<?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>210588</bug_id>
          
          <creation_ts>2020-04-15 19:42:00 -0700</creation_ts>
          <short_desc>Web Inspector: Debugger: Step Over should only step through comma expressions if they are comma statements</short_desc>
          <delta_ts>2020-04-22 10:25:18 -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>Web Inspector</component>
          <version>WebKit Local Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=209998</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>210324</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</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>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1642110</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-15 19:42:00 -0700</bug_when>
    <thetext>Step Over should be able to step through
```
    a(), b(), c()
```
but NOT through
```
    true &amp;&amp; (a(), b(), c()) &amp;&amp; true
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642312</commentid>
    <comment_count>1</comment_count>
      <attachid>396663</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-16 10:18:52 -0700</bug_when>
    <thetext>Created attachment 396663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643667</commentid>
    <comment_count>2</comment_count>
      <attachid>396663</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-04-20 15:45:27 -0700</bug_when>
    <thetext>Comment on attachment 396663
Patch

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

Looks good overall to me, though it would be good to have Keith, Yusuke, or Saam double check the AST / emitter changes.

&gt; Source/JavaScriptCore/parser/Parser.cpp:3204
&gt; +    TreeExpression expression = parseExpression(context, true);

Ugh, &apos;true&apos; as an argument. This seems like an ideal case to do something like enum class IsStatement::{Yes,No}.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643755</commentid>
    <comment_count>3</comment_count>
      <attachid>396663</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-04-20 20:54:17 -0700</bug_when>
    <thetext>Comment on attachment 396663
Patch

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

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:3277
&gt; +    // If the expression is not a comma chain, pre-prime the `Debugger` to pause on sub-expressions.
&gt; +    // If the expression is a comma chain, each sub-expression is treated as a standalone statement.
&gt; +    if (!m_expr-&gt;isCommaNode())
&gt; +        generator.emitDebugHook(WillExecuteExpression, position());

I don&apos;t really get why this is needed. Can you explain?
(You say what it&apos;s doing, but not why.)

Does the debugger already have a way of stepping through expressions in Inspector?

&gt;&gt; Source/JavaScriptCore/parser/Parser.cpp:3204
&gt;&gt; +    TreeExpression expression = parseExpression(context, true);
&gt; 
&gt; Ugh, &apos;true&apos; as an argument. This seems like an ideal case to do something like enum class IsStatement::{Yes,No}.

agreed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643776</commentid>
    <comment_count>4</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-20 22:14:50 -0700</bug_when>
    <thetext>I don&apos;t think &quot;statement&quot; is the descriptor you want here -- it&apos;s never the case that an expression *is* a statement, and there&apos;s no difference between the two examples in comment 0 in terms of their status as expressions.

This is also a property specific to comma expressions, so perhaps you could just add `m_isStepDebuggable`* to CommaNode itself and set it from createCommaExpr?

(* There may be a better name than this, but I think I&apos;d recommend naming it from Web Inspector&apos;s perspective because I&apos;m not certain that it can be coherently named from the AST perspective. We can&apos;t say m_parentIsStatement unless you want this apply to if/while/return/throw/etc., and I&apos;m not sure that there&apos;s anything that *just* ExpressionStatement and DeclarationStatement can be said to have in common.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643943</commentid>
    <comment_count>5</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-21 11:40:00 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #4)
&gt; I don&apos;t think &quot;statement&quot; is the descriptor you want here -- it&apos;s never the case that an expression *is* a statement, and there&apos;s no difference between the two examples in comment 0 in terms of their status as expressions.
In the example in comment 0, I&apos;m specifically focusing on the `a(), b(), c()` sub-expression in both cases.  I agree that they&apos;re both expressions, but in the eyes of developers there is a distinction: the former expression (`a(), b(), c()`) effectively _is_ the statement, whereas the latter (`a(), b(), c()` inside `true &amp;&amp; (a(), b(), c()) &amp;&amp; true`) is a sub-expression as part of a larger expression/statement.  Similar to how there is an `ExprStatementNode`, the `m_isStatement` is intended to convey that this `ExpressionNode` is held by an `ExprStatementNode`, and therefore may want different considerations (such as described above).

&gt; This is also a property specific to comma expressions, so perhaps you could just add `m_isStepDebuggable`* to CommaNode itself and set it from createCommaExpr?
For now, yes it&apos;s specific to comma expressions.  In the future, however, we may want to do other things.  I try to have things that are added by Web Inspector be non-specific so that if it can be used by something else too, we don&apos;t end up duplicating things.

&gt; (* There may be a better name than this, but I think I&apos;d recommend naming it from Web Inspector&apos;s perspective because I&apos;m not certain that it can be coherently named from the AST perspective. We can&apos;t say m_parentIsStatement unless you want this apply to if/while/return/throw/etc., and I&apos;m not sure that there&apos;s anything that *just* ExpressionStatement and DeclarationStatement can be said to have in common.)
I totally forgot about `return` and `throw`!  I think those should also be included.

As far as `if` and `while`, those are complex statements, in that they&apos;re not just a prefix identifier (e.g. `let` or `return`) followed by a regular expression.  I don&apos;t think developers think of `while (a(), b(), c()) { }` in the same way as either of the examples in comment 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643944</commentid>
    <comment_count>6</comment_count>
      <attachid>396663</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-21 11:40:15 -0700</bug_when>
    <thetext>Comment on attachment 396663
Patch

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

&gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:3277
&gt;&gt; +        generator.emitDebugHook(WillExecuteExpression, position());
&gt; 
&gt; I don&apos;t really get why this is needed. Can you explain?
&gt; (You say what it&apos;s doing, but not why.)
&gt; 
&gt; Does the debugger already have a way of stepping through expressions in Inspector?

Actually, this is probably the wrong approach.  I&apos;m gonna think about this a bit more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643974</commentid>
    <comment_count>7</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-21 13:00:32 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #5)
&gt; For now, yes it&apos;s specific to comma expressions.  In the future, however, we
&gt; may want to do other things.  I try to have things that are added by Web
&gt; Inspector be non-specific so that if it can be used by something else too,
&gt; we don&apos;t end up duplicating things.

It would be easy to broaden it to expressions in general later though. What&apos;s dangerous is to pretend something is broad when it isn&apos;t -- i.e. to have a m_parentIsStatement flag and then only set it in a small subset of &quot;parent is statement&quot; cases.

&gt; As far as `if` and `while`, those are complex statements, in that they&apos;re
&gt; not just a prefix identifier (e.g. `let` or `return`) followed by a regular
&gt; expression.  I don&apos;t think developers think of `while (a(), b(), c()) { }`
&gt; in the same way as either of the examples in comment 0.

But developers aren&apos;t generally using the comma operator in the first place outside of declaration lists, in which setting they&apos;re not thinking of it as an operator at all. :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643978</commentid>
    <comment_count>8</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-21 13:12:04 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #7)
&gt; (In reply to Devin Rousso from comment #5)
&gt; &gt; For now, yes it&apos;s specific to comma expressions.  In the future, however, we may want to do other things.  I try to have things that are added by Web Inspector be non-specific so that if it can be used by something else too, we don&apos;t end up duplicating things.
&gt; 
&gt; It would be easy to broaden it to expressions in general later though. What&apos;s dangerous is to pretend something is broad when it isn&apos;t -- i.e. to have a m_parentIsStatement flag and then only set it in a small subset of &quot;parent is statement&quot; cases.

I&apos;m working on a patch that adds `return` and `throw` as well.  I don&apos;t think I&apos;m missing any other cases, but if I am I think we should add them now as well.

&gt; &gt; As far as `if` and `while`, those are complex statements, in that they&apos;re not just a prefix identifier (e.g. `let` or `return`) followed by a regular expression.  I don&apos;t think developers think of `while (a(), b(), c()) { }` in the same way as either of the examples in comment 0.
&gt; 
&gt; But developers aren&apos;t generally using the comma operator in the first place outside of declaration lists, in which setting they&apos;re not thinking of it as an operator at all. :P

Minifiers use commas all the time.  We&apos;ve gotten a bunch of bugs in the past (and recently) about having to deal with the comma operator when trying to debug minified code.  It may not be common for developers to write this intentionally, but it&apos;s seen in a huge portion of code that&apos;s actually sent to users.  Frankly, this improvement is likely something that a developer will never encounter _unless_ they are debugging minified code.  This was a big motivator for bug 209998 (r259781) and bug 210324 (r260113),</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643982</commentid>
    <comment_count>9</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-21 13:20:17 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #8)
&gt; I&apos;m working on a patch that adds `return` and `throw` as well.  I don&apos;t
&gt; think I&apos;m missing any other cases, but if I am I think we should add them
&gt; now as well.

But you didn&apos;t want to include if/while/for, right? So then we can&apos;t say anything about StatementNodes as a whole...

&gt; Minifiers use commas all the time.  We&apos;ve gotten a bunch of bugs in the past
&gt; (and recently) about having to deal with the comma operator when trying to
&gt; debug minified code.  It may not be common for developers to write this
&gt; intentionally, but it&apos;s seen in a huge portion of code that&apos;s actually sent
&gt; to users.  Frankly, this improvement is likely something that a developer
&gt; will never encounter _unless_ they are debugging minified code.  This was a
&gt; big motivator for bug 209998 (r259781) and bug 210324 (r260113),

Right, that definitely makes sense -- I just mean that folks might think of comma expressions in if/while/for heads the same way if minifiers actually produced that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643996</commentid>
    <comment_count>10</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-21 13:36:13 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #9)
&gt; (In reply to Devin Rousso from comment #8)
&gt; &gt; I&apos;m working on a patch that adds `return` and `throw` as well.  I don&apos;t think I&apos;m missing any other cases, but if I am I think we should add them now as well.
&gt; 
&gt; But you didn&apos;t want to include if/while/for, right? So then we can&apos;t say anything about StatementNodes as a whole...

In the case of if/while/for, the comma expression there is sub-expression (emphasis on sub), whereas in the case of `ExprStatement`/declaration/return/throw the expression effectively _is_ the statement.  One way I&apos;m looking at this is how much overlap there is between the parent statement and the child expression.  In the case of `ExprStatement`/declaration/return/throw, the range of the child expression almost entirely overlaps that of the parent statement, with the only difference being a keyword (e.g. `let`, `return`, `throw`, etc.), and in the case of `ExprStatement` the range overlap is 100%.  The idea behind `isStatement` is to indicate that the expression actually _is_ the statement, not that it&apos;s _part_ of a parent statement but that it _is_ the parent statement (with the only &quot;allowed&quot; difference being what I described in the last sentence).  if/while/for don&apos;t follow that logic, as the child expression not only doesn&apos;t overlap in the same way, but is also in an entirely different grammatical context.

&gt; &gt; Minifiers use commas all the time.  We&apos;ve gotten a bunch of bugs in the past (and recently) about having to deal with the comma operator when trying to debug minified code.  It may not be common for developers to write this intentionally, but it&apos;s seen in a huge portion of code that&apos;s actually sent to users.  Frankly, this improvement is likely something that a developer will never encounter _unless_ they are debugging minified code.  This was a big motivator for bug 209998 (r259781) and bug 210324 (r260113),
&gt; 
&gt; Right, that definitely makes sense -- I just mean that folks might think of comma expressions in if/while/for heads the same way if minifiers actually produced that.

What do you mean by &quot;if minifiers actually produced that&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644009</commentid>
    <comment_count>11</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-21 14:10:01 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #10)
&gt; In the case of if/while/for, the comma expression there is sub-expression
&gt; (emphasis on sub), whereas in the case of
&gt; `ExprStatement`/declaration/return/throw the expression effectively _is_ the
&gt; statement.  One way I&apos;m looking at this is how much overlap there is between
&gt; the parent statement and the child expression.  In the case of
&gt; `ExprStatement`/declaration/return/throw, the range of the child expression
&gt; almost entirely overlaps that of the parent statement, with the only
&gt; difference being a keyword (e.g. `let`, `return`, `throw`, etc.), and in the
&gt; case of `ExprStatement` the range overlap is 100%.  The idea behind
&gt; `isStatement` is to indicate that the expression actually _is_ the
&gt; statement, not that it&apos;s _part_ of a parent statement but that it _is_ the
&gt; parent statement (with the only &quot;allowed&quot; difference being what I described
&gt; in the last sentence).  if/while/for don&apos;t follow that logic, as the child
&gt; expression not only doesn&apos;t overlap in the same way, but is also in an
&gt; entirely different grammatical context.

Yeah, but you see how that&apos;s completely arbitrary from the AST perspective, right? Statements are statements and some of them have expressions as children. :) Everything but an ExprStatement itself will add non-trivial logic on top of the expression.

WI should certainly do whatever&apos;s most helpful for developers, but somebody working in JSC&apos;s parser is not usually thinking about WI. In general, trying to have a flag not be WI-specific is good, but this is only realistic if the flag has a motivation independent of WI. I believe the only motivation here is &quot;what WI wants to be able to step over&quot; so it would be most helpful to be honest about that in the naming.

&gt; &gt; Right, that definitely makes sense -- I just mean that folks might think of comma expressions in if/while/for heads the same way if minifiers actually produced that.
&gt; 
&gt; What do you mean by &quot;if minifiers actually produced that&quot;?

You were saying that developers will encounter `a(), b(), c();` in minified code but not `while (a(), b(), c()) { ... }`. Presumably the former is originally three statements and the return values for the first two are unused. Now, we can&apos;t have three statements in a while condition, but we could have `while (c()) { ... a(); b(); }`, so it&apos;s still conceivable to commatize that, in which case you might want to step over in the same way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644018</commentid>
    <comment_count>12</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-21 14:37:16 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #11)
&gt; (In reply to Devin Rousso from comment #10)
&gt; &gt; In the case of if/while/for, the comma expression there is sub-expression (emphasis on sub), whereas in the case of `ExprStatement`/declaration/return/throw the expression effectively _is_ the statement.  One way I&apos;m looking at this is how much overlap there is between the parent statement and the child expression.  In the case of `ExprStatement`/declaration/return/throw, the range of the child expression almost entirely overlaps that of the parent statement, with the only difference being a keyword (e.g. `let`, `return`, `throw`, etc.), and in the case of `ExprStatement` the range overlap is 100%.  The idea behind `isStatement` is to indicate that the expression actually _is_ the statement, not that it&apos;s _part_ of a parent statement but that it _is_ the parent statement (with the only &quot;allowed&quot; difference being what I described in the last sentence).  if/while/for don&apos;t follow that logic, as the child expression not only doesn&apos;t overlap in the same way, but is also in an entirely different grammatical context.
&gt; 
&gt; Yeah, but you see how that&apos;s completely arbitrary from the AST perspective, right? Statements are statements and some of them have expressions as children. :) Everything but an ExprStatement itself will add non-trivial logic on top of the expression.

I think this is codifying that relationship of &quot;statement has an expression child&quot; so that the child expression is able to reason about itself.

&gt; &gt; &gt; Right, that definitely makes sense -- I just mean that folks might think of comma expressions in if/while/for heads the same way if minifiers actually produced that.
&gt; &gt; 
&gt; &gt; What do you mean by &quot;if minifiers actually produced that&quot;?
&gt; 
&gt; You were saying that developers will encounter `a(), b(), c();` in minified code but not `while (a(), b(), c()) { ... }`. Presumably the former is originally three statements and the return values for the first two are unused. Now, we can&apos;t have three statements in a while condition, but we could have `while (c()) { ... a(); b(); }`, so it&apos;s still conceivable to commatize that, in which case you might want to step over in the same way.

I&apos;ve seen `while (a(), b(), c()) { ... }` _many_ times.  Even more so with `if`.  Minifiers do super funky things :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644044</commentid>
    <comment_count>13</comment_count>
      <attachid>397131</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-21 15:22:12 -0700</bug_when>
    <thetext>Created attachment 397131
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644047</commentid>
    <comment_count>14</comment_count>
      <attachid>397131</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-21 15:40:25 -0700</bug_when>
    <thetext>Comment on attachment 397131
Patch

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

&gt; Source/JavaScriptCore/parser/NodeConstructors.h:837
&gt; +        m_expr-&gt;setIsOnlyChildOfStatement();

You don&apos;t need a setter at all if you follow the pattern of something like isLocation(). :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644051</commentid>
    <comment_count>15</comment_count>
      <attachid>397131</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-21 15:44:29 -0700</bug_when>
    <thetext>Comment on attachment 397131
Patch

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

&gt;&gt; Source/JavaScriptCore/parser/NodeConstructors.h:837
&gt;&gt; +        m_expr-&gt;setIsOnlyChildOfStatement();
&gt; 
&gt; You don&apos;t need a setter at all if you follow the pattern of something like isLocation(). :D

Er sorry, I&apos;m being silly, this isn&apos;t true. Maybe we could move the logic to ASTBuilder though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644374</commentid>
    <comment_count>16</comment_count>
      <attachid>397131</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-04-22 10:20:03 -0700</bug_when>
    <thetext>Comment on attachment 397131
Patch

r=me, nice work!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644378</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-22 10:24:19 -0700</bug_when>
    <thetext>Committed r260520: &lt;https://trac.webkit.org/changeset/260520&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397131.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644380</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-22 10:25:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/62193674&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396663</attachid>
            <date>2020-04-16 10:18:52 -0700</date>
            <delta_ts>2020-04-21 15:22:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210588-20200416111851.patch</filename>
            <type>text/plain</type>
            <size>62116</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDhhMTBlOWFhYTI5NzJhYzAwYTc0NjdhYWMyYTdk
MTdkYjljYzY4NjUuLmFkMjcwMmJlMTI3N2FjOGQzNmY0ZDY2ZDM5ZTIwNmZkMjNkNmRiY2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA0LTE2ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBE
ZWJ1Z2dlcjogU3RlcCBPdmVyIHNob3VsZCBvbmx5IHN0ZXAgdGhyb3VnaCBjb21tYSBleHByZXNz
aW9ucyBpZiB0aGV5IGFyZSBjb21tYSBzdGF0ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA1ODgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAoSlND
OjpFeHByZXNzaW9uTm9kZTo6aXNTdGF0ZW1lbnQgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKEpT
Qzo6RXhwcmVzc2lvbk5vZGU6OnNldElzU3RhdGVtZW50KTogQWRkZWQuCisgICAgICAgICogcGFy
c2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpTQzo6RXhwclN0YXRlbWVudE5vZGU6
OkV4cHJTdGF0ZW1lbnROb2RlKToKKyAgICAgICAgKEpTQzo6RGVjbGFyYXRpb25TdGF0ZW1lbnQ6
OkRlY2xhcmF0aW9uU3RhdGVtZW50KToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2Rl
Z2VuLmNwcDoKKyAgICAgICAgKEpTQzo6Q29tbWFOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAg
ICAoSlNDOjpFeHByU3RhdGVtZW50Tm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgT25seSBl
bWl0IGBXaWxsRXhlY3V0ZVN0YXRlbWVudGAgZGVidWcgaG9va3MgaW5zaWRlIGBDb21tYU5vZGVg
IGlmIGl0J3MgZGlyZWN0IHBhcmVudCBpcyBhCisgICAgICAgIHN0YXRlbWVudCAoZS5nLiBgYSgp
LCBiKCksIGMoKWAgdnMgYHRydWUgJiYgKGEoKSwgYigpLCBjKCkpICYmIHRydWVgKS4KKworICAg
ICAgICAqIHBhcnNlci9QYXJzZXIuaDoKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAg
ICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlRXhwcmVzc2lvbk9yTGFiZWxTdGF0
ZW1lbnQpOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VFeHByZXNzaW9u
U3RhdGVtZW50KToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlRXhwcmVz
c2lvbik6CisgICAgICAgIE9ubHkgcmVjb3JkIGEgcGF1c2UgbG9jYXRpb24gZm9yIGVhY2ggc3Vi
LWV4cHJlc3Npb24gaW4gYSBjb21tYSBzZXBhcmF0ZWQgZXhwcmVzc2lvbiBpZiBpdAorICAgICAg
ICBpcyBhIHN0YXRlbWVudCBleHByZXNzaW9uIChlLmcuIGBhKCksIGIoKSwgYygpYCB2cyBgdHJ1
ZSAmJiAoYSgpLCBiKCksIGMoKSkgJiYgdHJ1ZWApLgorCiAyMDIwLTA0LTE1ICBLZWl0aCBNaWxs
ZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUgU3RvcmUtbG9h
ZCBwYWlyIGF1dG8tdmVjdG9yaXphdGlvbiBmb3IgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggNTRjM2E5ZjgxOWRl
MDU0NmQ5NDdlZjY3NGVkNTAxYWU0NmIxY2I4YS4uZTFmOWMxYWJkMmIzYzBjNjY3ZmQ0ZDhmNGM0
ODMzNGIyOTQ4ZTE3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMzIxMCwxMiArMzIxMCwxNCBAQCBSZWdpc3RlcklE
KiBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYgZwogCiBSZWdpc3RlcklEKiBDb21tYU5vZGU6OmVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCiB7CisgICAgRGVidWdI
b29rVHlwZSBkZWJ1Z0hvb2tUeXBlID0gaXNTdGF0ZW1lbnQoKSA/IFdpbGxFeGVjdXRlU3RhdGVt
ZW50IDogV2lsbEV4ZWN1dGVFeHByZXNzaW9uOworCiAgICAgQ29tbWFOb2RlKiBub2RlID0gdGhp
czsKICAgICBmb3IgKDsgbm9kZS0+bmV4dCgpOyBub2RlID0gbm9kZS0+bmV4dCgpKSB7Ci0gICAg
ICAgIGdlbmVyYXRvci5lbWl0RGVidWdIb29rKG5vZGUtPm1fZXhwcik7CisgICAgICAgIGdlbmVy
YXRvci5lbWl0RGVidWdIb29rKGRlYnVnSG9va1R5cGUsIG5vZGUtPm1fZXhwci0+cG9zaXRpb24o
KSk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0Tm9kZShnZW5lcmF0b3IuaWdub3JlZFJlc3VsdCgp
LCBub2RlLT5tX2V4cHIpOwogICAgIH0KLSAgICBnZW5lcmF0b3IuZW1pdERlYnVnSG9vayhub2Rl
LT5tX2V4cHIpOworICAgIGdlbmVyYXRvci5lbWl0RGVidWdIb29rKGRlYnVnSG9va1R5cGUsIG5v
ZGUtPm1fZXhwci0+cG9zaXRpb24oKSk7CiAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0Tm9kZUlu
VGFpbFBvc2l0aW9uKGRzdCwgbm9kZS0+bV9leHByKTsKIH0KIApAQCAtMzI2OCw2ICszMjcwLDEy
IEBAIHZvaWQgRGVidWdnZXJTdGF0ZW1lbnROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJCiB2b2lkIEV4cHJTdGF0ZW1lbnROb2RlOjplbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQog
ewogICAgIEFTU0VSVChtX2V4cHIpOworCisgICAgLy8gSWYgdGhlIGV4cHJlc3Npb24gaXMgbm90
IGEgY29tbWEgY2hhaW4sIHByZS1wcmltZSB0aGUgYERlYnVnZ2VyYCB0byBwYXVzZSBvbiBzdWIt
ZXhwcmVzc2lvbnMuCisgICAgLy8gSWYgdGhlIGV4cHJlc3Npb24gaXMgYSBjb21tYSBjaGFpbiwg
ZWFjaCBzdWItZXhwcmVzc2lvbiBpcyB0cmVhdGVkIGFzIGEgc3RhbmRhbG9uZSBzdGF0ZW1lbnQu
CisgICAgaWYgKCFtX2V4cHItPmlzQ29tbWFOb2RlKCkpCisgICAgICAgIGdlbmVyYXRvci5lbWl0
RGVidWdIb29rKFdpbGxFeGVjdXRlRXhwcmVzc2lvbiwgcG9zaXRpb24oKSk7CisKICAgICBnZW5l
cmF0b3IuZW1pdE5vZGUoZHN0LCBtX2V4cHIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCmluZGV4IDlkNWY5MzFlNzJmNmE1ZTg1MjVk
MDYyNDNiMTNhYWRhMTk0YmExYTAuLmU3ZDdmMmZjZmFmYmJlOTQ3NjUzZmM3NDE3MDcyMDQ0NTMx
ZWJlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0
cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVj
dG9ycy5oCkBAIC04MzQsMTIgKzgzNCwxNCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgOiBT
dGF0ZW1lbnROb2RlKGxvY2F0aW9uKQogICAgICAgICAsIG1fZXhwcihleHByKQogICAgIHsKKyAg
ICAgICAgbV9leHByLT5zZXRJc1N0YXRlbWVudCgpOwogICAgIH0KIAogICAgIGlubGluZSBEZWNs
YXJhdGlvblN0YXRlbWVudDo6RGVjbGFyYXRpb25TdGF0ZW1lbnQoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIpCiAgICAgICAgIDogU3RhdGVtZW50
Tm9kZShsb2NhdGlvbikKICAgICAgICAgLCBtX2V4cHIoZXhwcikKICAgICB7CisgICAgICAgIG1f
ZXhwci0+c2V0SXNTdGF0ZW1lbnQoKTsKICAgICB9CiAKICAgICBpbmxpbmUgTW9kdWxlRGVjbGFy
YXRpb25Ob2RlOjpNb2R1bGVEZWNsYXJhdGlvbk5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBs
b2NhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCBiNTE1NjA0YTY4
YWE2YmU0MzhmNGRmZTc5YWI0YTgwNDJjOGFmZDhjLi40ZmFiNDE3YTRjMjJjNWNmYjc2NjcwZDBk
ZTEzNjQ5MTg1MzlkMTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC0y
MTgsMTEgKzIxOCwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBSZXN1bHRUeXBlIHJl
c3VsdERlc2NyaXB0b3IoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdFR5cGU7IH0KIAorICAgICAg
ICBib29sIGlzU3RhdGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9pc1N0YXRlbWVudDsgfQorICAg
ICAgICB2b2lkIHNldElzU3RhdGVtZW50KCkgeyBtX2lzU3RhdGVtZW50ID0gdHJ1ZTsgfQorCiAg
ICAgICAgIGJvb2wgaXNPcHRpb25hbENoYWluQmFzZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNPcHRp
b25hbENoYWluQmFzZTsgfQogICAgICAgICB2b2lkIHNldElzT3B0aW9uYWxDaGFpbkJhc2UoKSB7
IG1faXNPcHRpb25hbENoYWluQmFzZSA9IHRydWU7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAg
IFJlc3VsdFR5cGUgbV9yZXN1bHRUeXBlOworICAgICAgICBib29sIG1faXNTdGF0ZW1lbnQgeyBm
YWxzZSB9OwogICAgICAgICBib29sIG1faXNPcHRpb25hbENoYWluQmFzZSB7IGZhbHNlIH07CiAg
ICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IDk3Njc1
N2JkNDk0ZGZhOTBiYmQwMjhmNzNkYzY5M2EzNTA0OTJjMmUuLjYzZmRkNjI2ZDRjOWM1YmRiZjQ2
ZTIwNGYzZDZlN2RhZjlhOGQ5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
ci5jcHAKQEAgLTMxMzQsNyArMzEzNCw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4g
VHJlZVN0YXRlbWVudCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VFeHByZXNzaW9uT3JMCiAgICAg
ICAgICAgICAvLyBJZiB3ZSBoaXQgdGhpcyBwYXRoIHdlJ3JlIG1ha2luZyBhIGV4cHJlc3Npb24g
c3RhdGVtZW50LCB3aGljaAogICAgICAgICAgICAgLy8gYnkgZGVmaW5pdGlvbiBjYW4ndCBtYWtl
IHVzZSBvZiBjb250aW51ZS9icmVhayBzbyB3ZSBjYW4ganVzdAogICAgICAgICAgICAgLy8gaWdu
b3JlIGFueSBsYWJlbHMgd2UgbWlnaHQgaGF2ZSBhY2N1bXVsYXRlZC4KLSAgICAgICAgICAgIFRy
ZWVFeHByZXNzaW9uIGV4cHJlc3Npb24gPSBwYXJzZUV4cHJlc3Npb24oY29udGV4dCk7CisgICAg
ICAgICAgICBUcmVlRXhwcmVzc2lvbiBleHByZXNzaW9uID0gcGFyc2VFeHByZXNzaW9uKGNvbnRl
eHQsIHRydWUpOwogICAgICAgICAgICAgZmFpbElmRmFsc2UoZXhwcmVzc2lvbiwgIkNhbm5vdCBw
YXJzZSBleHByZXNzaW9uIHN0YXRlbWVudCIpOwogICAgICAgICAgICAgaWYgKCFhdXRvU2VtaUNv
bG9uKCkpCiAgICAgICAgICAgICAgICAgZmFpbER1ZVRvVW5leHBlY3RlZFRva2VuKCk7CkBAIC0z
MjAxLDcgKzMyMDEsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1l
bnQgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlRXhwcmVzc2lvblN0YQogICAgIH0KICAgICBKU1Rl
eHRQb3NpdGlvbiBzdGFydCA9IHRva2VuU3RhcnRQb3NpdGlvbigpOwogICAgIEpTVG9rZW5Mb2Nh
dGlvbiBsb2NhdGlvbih0b2tlbkxvY2F0aW9uKCkpOwotICAgIFRyZWVFeHByZXNzaW9uIGV4cHJl
c3Npb24gPSBwYXJzZUV4cHJlc3Npb24oY29udGV4dCk7CisgICAgVHJlZUV4cHJlc3Npb24gZXhw
cmVzc2lvbiA9IHBhcnNlRXhwcmVzc2lvbihjb250ZXh0LCB0cnVlKTsKICAgICBmYWlsSWZGYWxz
ZShleHByZXNzaW9uLCAiQ2Fubm90IHBhcnNlIGV4cHJlc3Npb24gc3RhdGVtZW50Iik7CiAgICAg
ZmFpbElmRmFsc2UoYXV0b1NlbWlDb2xvbigpLCAiUGFyc2UgZXJyb3IiKTsKICAgICByZXR1cm4g
Y29udGV4dC5jcmVhdGVFeHByU3RhdGVtZW50KGxvY2F0aW9uLCBleHByZXNzaW9uLCBzdGFydCwg
bV9sYXN0VG9rZW5FbmRQb3NpdGlvbi5saW5lKTsKQEAgLTM3MDMsNyArMzcwMyw3IEBAIHRlbXBs
YXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWVudCBQYXJzZXI8TGV4ZXJUeXBlPjo6
cGFyc2VFeHBvcnREZWNsYXJhCiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+Ci10
ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5
cGU+OjpwYXJzZUV4cHJlc3Npb24oVHJlZUJ1aWxkZXImIGNvbnRleHQpCit0ZW1wbGF0ZSA8Y2xh
c3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUV4
cHJlc3Npb24oVHJlZUJ1aWxkZXImIGNvbnRleHQsIGJvb2wgaXNTdGF0ZW1lbnQpCiB7CiAgICAg
ZmFpbElmU3RhY2tPdmVyZmxvdygpOwogICAgIEpTVG9rZW5Mb2NhdGlvbiBoZWFkTG9jYXRpb24o
dG9rZW5Mb2NhdGlvbigpKTsKQEAgLTM3MjAsOSArMzcyMCwxMSBAQCB0ZW1wbGF0ZSA8Y2xhc3Mg
VHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUV4cHJl
c3Npb24oVAogICAgIGZhaWxJZkZhbHNlKHJpZ2h0LCAiQ2Fubm90IHBhcnNlIGV4cHJlc3Npb24g
aW4gYSBjb21tYSBleHByZXNzaW9uIik7CiAgICAgY29udGV4dC5zZXRFbmRPZmZzZXQocmlnaHQs
IG1fbGFzdFRva2VuRW5kUG9zaXRpb24ub2Zmc2V0KTsKICAgICB0eXBlbmFtZSBUcmVlQnVpbGRl
cjo6Q29tbWEgaGVhZCA9IGNvbnRleHQuY3JlYXRlQ29tbWFFeHByKGhlYWRMb2NhdGlvbiwgbm9k
ZSk7Ci0gICAgcmVjb3JkUGF1c2VMb2NhdGlvbihjb250ZXh0LmJyZWFrcG9pbnRMb2NhdGlvbiho
ZWFkKSk7CisgICAgaWYgKGlzU3RhdGVtZW50KQorICAgICAgICByZWNvcmRQYXVzZUxvY2F0aW9u
KGNvbnRleHQuYnJlYWtwb2ludExvY2F0aW9uKGhlYWQpKTsKICAgICB0eXBlbmFtZSBUcmVlQnVp
bGRlcjo6Q29tbWEgdGFpbCA9IGNvbnRleHQuYXBwZW5kVG9Db21tYUV4cHIodGFpbExvY2F0aW9u
LCBoZWFkLCBoZWFkLCByaWdodCk7Ci0gICAgcmVjb3JkUGF1c2VMb2NhdGlvbihjb250ZXh0LmJy
ZWFrcG9pbnRMb2NhdGlvbih0YWlsKSk7CisgICAgaWYgKGlzU3RhdGVtZW50KQorICAgICAgICBy
ZWNvcmRQYXVzZUxvY2F0aW9uKGNvbnRleHQuYnJlYWtwb2ludExvY2F0aW9uKHRhaWwpKTsKICAg
ICB3aGlsZSAobWF0Y2goQ09NTUEpKSB7CiAgICAgICAgIG5leHQoVHJlZUJ1aWxkZXI6OkRvbnRC
dWlsZFN0cmluZ3MpOwogICAgICAgICB0YWlsTG9jYXRpb24gPSB0b2tlbkxvY2F0aW9uKCk7CkBA
IC0zNzMwLDcgKzM3MzIsOCBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHBy
ZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUV4cHJlc3Npb24oVAogICAgICAgICBmYWls
SWZGYWxzZShyaWdodCwgIkNhbm5vdCBwYXJzZSBleHByZXNzaW9uIGluIGEgY29tbWEgZXhwcmVz
c2lvbiIpOwogICAgICAgICBjb250ZXh0LnNldEVuZE9mZnNldChyaWdodCwgbV9sYXN0VG9rZW5F
bmRQb3NpdGlvbi5vZmZzZXQpOwogICAgICAgICB0YWlsID0gY29udGV4dC5hcHBlbmRUb0NvbW1h
RXhwcih0YWlsTG9jYXRpb24sIGhlYWQsIHRhaWwsIHJpZ2h0KTsKLSAgICAgICAgcmVjb3JkUGF1
c2VMb2NhdGlvbihjb250ZXh0LmJyZWFrcG9pbnRMb2NhdGlvbih0YWlsKSk7CisgICAgICAgIGlm
IChpc1N0YXRlbWVudCkKKyAgICAgICAgICAgIHJlY29yZFBhdXNlTG9jYXRpb24oY29udGV4dC5i
cmVha3BvaW50TG9jYXRpb24odGFpbCkpOwogICAgIH0KICAgICBjb250ZXh0LnNldEVuZE9mZnNl
dChoZWFkLCBtX2xhc3RUb2tlbkVuZFBvc2l0aW9uLm9mZnNldCk7CiAgICAgcmV0dXJuIGhlYWQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAppbmRleCBmMWQ1ZDkyODk0NDAwZWE2
YjgxZTFkYmQ5NzI3NjBhMTY4MTI0ZTgxLi5kNTc1ODFmYWFjMDM4NmM5MDI4YjQxMGNkODM0YmQ1
OWU3NGQwYzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKQEAgLTE2NDYs
NyArMTY0Niw3IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBU
cmVlU3RhdGVtZW50IHBhcnNlRXhwcmVzc2lvbk9yTGFiZWxTdGF0ZW1lbnQoVHJlZUJ1aWxkZXIm
LCBib29sIGFsbG93RnVuY3Rpb25EZWNsYXJhdGlvbkFzU3RhdGVtZW50KTsKICAgICB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lbnQgcGFyc2VJZlN0YXRlbWVudChUcmVl
QnVpbGRlciYpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWVu
dCBwYXJzZUJsb2NrU3RhdGVtZW50KFRyZWVCdWlsZGVyJiwgYm9vbCBpc0NhdGNoQmxvY2sgPSBm
YWxzZSk7Ci0gICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBw
YXJzZUV4cHJlc3Npb24oVHJlZUJ1aWxkZXImKTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1
aWxkZXI+IFRyZWVFeHByZXNzaW9uIHBhcnNlRXhwcmVzc2lvbihUcmVlQnVpbGRlciYsIGJvb2wg
aXNTdGF0ZW1lbnQgPSBmYWxzZSk7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBU
cmVlRXhwcmVzc2lvbiBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKFRyZWVCdWlsZGVyJiwgRXhw
cmVzc2lvbkVycm9yQ2xhc3NpZmllciYpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRl
cj4gVHJlZUV4cHJlc3Npb24gcGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbihUcmVlQnVpbGRlciYp
OwogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gcGFyc2VB
c3NpZ25tZW50RXhwcmVzc2lvbk9yUHJvcGFnYXRlRXJyb3JDbGFzcyhUcmVlQnVpbGRlciYpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDYxODRhZjcwNDM3MGI0ODcyMzA3OTBiZmYxYTgwOGFhODNkZDgyOGYuLjg5ZmU2N2Fi
NjQ0MWU0NDY5NzUwOGZiY2NhMzM5YzEwZWI5YTI0OWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAor
MjAyMC0wNC0xNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogRGVidWdnZXI6IFN0ZXAgT3ZlciBzaG91bGQgb25seSBzdGVwIHRocm91
Z2ggY29tbWEgZXhwcmVzc2lvbnMgaWYgdGhleSBhcmUgY29tbWEgc3RhdGVtZW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNTg4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVi
dWdnZXIvcmVzb3VyY2VzL2xvZy1wYXVzZS1sb2NhdGlvbi5qczoKKyAgICAgICAgKFRlc3RQYWdl
LnJlZ2lzdGVySW5pdGlhbGl6ZXIud2luZG93LnN0ZXApOgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9icmVha3BvaW50cy9yZXNvbHZlZC1kdW1wLWFsbC1wYXVzZS1sb2NhdGlvbnMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwSW50
by5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwSW50by1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBO
ZXh0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBOZXh0
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3Rl
cE91dC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwT3V0
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3Rl
cE92ZXIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcE92
ZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9z
dGVwcGluZy1jb250cm9sLWZsb3cuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
c3RlcHBpbmcvc3RlcHBpbmctY29udHJvbC1mbG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcHBpbmctZnVuY3Rpb24tY2FsbHMuaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcHBpbmctZnVuY3Rpb24t
Y2FsbHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGlu
Zy9zdGVwcGluZy1sb29wcy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zdGVw
cGluZy9zdGVwcGluZy1sb29wcy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDQtMTUgIEpvaG4gV2ls
YW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFNQSSB0byBjb25maWd1
cmUgV2Vic2l0ZURhdGFTdG9yZXMgd2l0aCBhIFVSTCBmb3Igc3RhbmRhbG9uZSB3ZWIgYXBwbGlj
YXRpb25zIGFuZCB1c2UgaXQgdG8gZGlzYWJsZSBmaXJzdC1wYXJ0eSB3ZWJzaXRlIGRhdGEgcmVt
b3ZhbCBpbiBJVFAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9i
cmVha3BvaW50cy9yZXNvbHZlZC1kdW1wLWFsbC1wYXVzZS1sb2NhdGlvbnMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnRzL3Jlc29sdmVkLWR1
bXAtYWxsLXBhdXNlLWxvY2F0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggODM3ZDI5ZmE4ZGQ4MjQ0
NDE0YjQyYWI5YTI4NmQ2Njk2YzA5MDNjMC4uN2NhMTUxODgxMTdiZjg5NWNkMDJhMmMzMGU5NmQ5
YTk5Y2I2NzYzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrcG9pbnRzL3Jlc29sdmVkLWR1bXAtYWxsLXBhdXNlLWxvY2F0aW9ucy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnRzL3Jlc29sdmVk
LWR1bXAtYWxsLXBhdXNlLWxvY2F0aW9ucy1leHBlY3RlZC50eHQKQEAgLTE0MzQsMzAgKzE0MzQs
NiBAQCBQQVVTRVMgQVQ6IDIxNzowCiAgPT4gMjE3ICAgIHx0cnVlICYmIChhKCksIGIoKSwgYygp
KTsKICAgICAyMTggICAgCiAKLUlOU0VSVElORyBBVDogMjE3OjEKLVBBVVNFUyBBVDogMjE3OjkK
LSAgICAyMTQgICAgYigpLAotICAgIDIxNSAgICBjKCk7Ci0gICAgMjE2ICAgIAotLT0+IDIxNyAg
ICB0I3J1ZSAmJiAofGEoKSwgYigpLCBjKCkpOwotICAgIDIxOCAgICAKLQotSU5TRVJUSU5HIEFU
OiAyMTc6MTAKLVBBVVNFUyBBVDogMjE3OjE0Ci0gICAgMjE0ICAgIGIoKSwKLSAgICAyMTUgICAg
YygpOwotICAgIDIxNiAgICAKLS09PiAyMTcgICAgdHJ1ZSAmJiAoYSMoKSwgfGIoKSwgYygpKTsK
LSAgICAyMTggICAgCi0KLUlOU0VSVElORyBBVDogMjE3OjE1Ci1QQVVTRVMgQVQ6IDIxNzoxOQot
ICAgIDIxNCAgICBiKCksCi0gICAgMjE1ICAgIGMoKTsKLSAgICAyMTYgICAgCi0tPT4gMjE3ICAg
IHRydWUgJiYgKGEoKSwgYiMoKSwgfGMoKSk7Ci0gICAgMjE4ICAgIAotCiAKIC0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBEZWJ1Z2dlci5yZXNvbHZlZEJyZWFrcG9pbnQuZHVtcEFsbExvY2F0aW9ucy5G
dW5jdGlvbnMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jl
c291cmNlcy9sb2ctcGF1c2UtbG9jYXRpb24uanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvcmVzb3VyY2VzL2xvZy1wYXVzZS1sb2NhdGlvbi5qcwppbmRleCA1NTE0YzY0ZjBiOTQ3
M2Y2NGM3NWMyMzk1OTBmOGE2MTMzZmRjMjc4Li5mMjI1NGQ3NTgyMDUzOGRiZmUyOTY3MTBlYWFl
NmFmZTM2NDE4NThiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
cmVzb3VyY2VzL2xvZy1wYXVzZS1sb2NhdGlvbi5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvcmVzb3VyY2VzL2xvZy1wYXVzZS1sb2NhdGlvbi5qcwpAQCAtMTU1LDYgKzE1
NSwxMCBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJBQ1RJT046IHN0ZXAtb3V0Iik7CiAgICAgICAgICAgICBXSS5k
ZWJ1Z2dlck1hbmFnZXIuc3RlcE91dCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgIm5leHQiOgorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkFDVElPTjogc3RlcC1u
ZXh0Iik7CisgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuc3RlcE5leHQoKTsKKyAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICJyZXN1bWUiOgogICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIkFDVElPTjogcmVzdW1lIik7CiAgICAgICAgICAgICBXSS5kZWJ1Z2dlck1h
bmFnZXIucmVzdW1lKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc3RlcHBpbmcvc3RlcEludG8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBJbnRvLWV4cGVjdGVkLnR4dAppbmRleCA5ZTU0MjJjNzcw
ZGFlOWZlNzU3YjA2OGYyZGVhZWE4MmU5MDJjNTkzLi44OTdkZWFlZGZhM2NkYzE0NzY3MWI5MmU3
ODU4OWFmNTRjNTI2ZDRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc3RlcHBpbmcvc3RlcEludG8tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwSW50by1leHBlY3RlZC50eHQKQEAgLTQyLDcgKzQy
LDcgQEAgUEFVU0UgQVQgdGVzdFN0YXRlbWVudHM6MTU6MgogCiBSRVNVTUVECiAKLS0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zdGVwSW50by5mdW5jdGlvbgorLS0gUnVubmluZyB0ZXN0
IGNhc2U6IERlYnVnZ2VyLnN0ZXBJbnRvLmZ1bmN0aW9ucwogUEFVU0VEIChkZWJ1Z2dlci1zdGF0
ZW1lbnQpCiBQQVVTRSBBVCB0ZXN0RnVuY3Rpb25zOjE4OjUKICAgICAgMTQgICAgfQpAQCAtMTUx
LDcgKzE1MSw3IEBAIFBBVVNFIEFUIHRlc3RFdmFsOjI4OjUKICAtPiAgMjcgICAgICAgIHxsZXQg
YWZ0ZXIgPSAyOwogICAgICAyOCAgICB9CiAgICAgIDI5ICAgIAotICAgICAzMCAgICBmdW5jdGlv
biB0ZXN0SW5uZXJGdW5jdGlvbigpIHsKKyAgICAgMzAgICAgZnVuY3Rpb24gdGVzdEFub255bW91
c0Z1bmN0aW9uKCkgewogCiBQQVVTRSBBVCB0ZXN0RXZhbDoyOToyCiAgICAgIDI1ICAgICAgICBs
ZXQgYmVmb3JlID0gMTsKQEAgLTE1OSwxNiArMTU5LDE2IEBAIFBBVVNFIEFUIHRlc3RFdmFsOjI5
OjIKICAgICAgMjcgICAgICAgIGxldCBhZnRlciA9IDI7CiAgLT4gIDI4ICAgIH18CiAgICAgIDI5
ICAgIAotICAgICAzMCAgICBmdW5jdGlvbiB0ZXN0SW5uZXJGdW5jdGlvbigpIHsKKyAgICAgMzAg
ICAgZnVuY3Rpb24gdGVzdEFub255bW91c0Z1bmN0aW9uKCkgewogICAgICAzMSAgICAgICAgKGZ1
bmN0aW9uKCkgewogCiBSRVNVTUVECiAKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5z
dGVwSW50by5pbm5lckZ1bmN0aW9uCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIuc3Rl
cEludG8uYW5vbnltb3VzRnVuY3Rpb24KIFBBVVNFRCAoZGVidWdnZXItc3RhdGVtZW50KQogUEFV
U0UgQVQgPGFub255bW91cz46MzM6OQogICAgICAyOSAgICAKLSAgICAgMzAgICAgZnVuY3Rpb24g
dGVzdElubmVyRnVuY3Rpb24oKSB7CisgICAgIDMwICAgIGZ1bmN0aW9uIHRlc3RBbm9ueW1vdXNG
dW5jdGlvbigpIHsKICAgICAgMzEgICAgICAgIChmdW5jdGlvbigpIHsKICAtPiAgMzIgICAgICAg
ICAgICB8ZGVidWdnZXI7CiAgICAgIDMzICAgICAgICAgICAgbGV0IGlubmVyID0gMTsKQEAgLTE3
Niw3ICsxNzYsNyBAQCBQQVVTRSBBVCA8YW5vbnltb3VzPjozMzo5CiAgICAgIDM1ICAgICAgICBs
ZXQgb3V0ZXIgPSAyOwogCiBQQVVTRSBBVCA8YW5vbnltb3VzPjozNDo5Ci0gICAgIDMwICAgIGZ1
bmN0aW9uIHRlc3RJbm5lckZ1bmN0aW9uKCkgeworICAgICAzMCAgICBmdW5jdGlvbiB0ZXN0QW5v
bnltb3VzRnVuY3Rpb24oKSB7CiAgICAgIDMxICAgICAgICAoZnVuY3Rpb24oKSB7CiAgICAgIDMy
ICAgICAgICAgICAgZGVidWdnZXI7CiAgLT4gIDMzICAgICAgICAgICAgfGxldCBpbm5lciA9IDE7
CkBAIC0xOTMsNyArMTkzLDcgQEAgUEFVU0UgQVQgPGFub255bW91cz46MzU6NgogICAgICAzNiAg
ICB9CiAgICAgIDM3ICAgIAogCi1QQVVTRSBBVCB0ZXN0SW5uZXJGdW5jdGlvbjozNjo1CitQQVVT
RSBBVCB0ZXN0QW5vbnltb3VzRnVuY3Rpb246MzY6NQogICAgICAzMiAgICAgICAgICAgIGRlYnVn
Z2VyOwogICAgICAzMyAgICAgICAgICAgIGxldCBpbm5lciA9IDE7CiAgICAgIDM0ICAgICAgICB9
KSgpOwpAQCAtMjAyLDcgKzIwMiw3IEBAIFBBVVNFIEFUIHRlc3RJbm5lckZ1bmN0aW9uOjM2OjUK
ICAgICAgMzcgICAgCiAgICAgIDM4ICAgIGZ1bmN0aW9uIHRlc3RDb21tYXMoKSB7CiAKLVBBVVNF
IEFUIHRlc3RJbm5lckZ1bmN0aW9uOjM3OjIKK1BBVVNFIEFUIHRlc3RBbm9ueW1vdXNGdW5jdGlv
bjozNzoyCiAgICAgIDMzICAgICAgICAgICAgbGV0IGlubmVyID0gMTsKICAgICAgMzQgICAgICAg
IH0pKCk7CiAgICAgIDM1ICAgICAgICBsZXQgb3V0ZXIgPSAyOwpAQCAtMjQwLDcgKzI0MCw3IEBA
IFBBVVNFIEFUIHRlc3RDb21tYXM6NDI6OQogIC0+ICA0MSAgICAgICAgICAgIHx5ID0gMiwKICAg
ICAgNDIgICAgICAgICAgICB6ID0gMzsKICAgICAgNDMgICAgICAgIGEoKSwgYigpLCBjKCk7Ci0g
ICAgIDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKTsKKyAgICAgNDQgICAgICAgIHRy
dWUgJiYgKGEoKSwgYigpLCBjKCkpICYmIHRydWU7CiAKIFBBVVNFIEFUIHRlc3RDb21tYXM6NDM6
OQogICAgICAzOSAgICAgICAgZGVidWdnZXI7CkBAIC0yNDgsNyArMjQ4LDcgQEAgUEFVU0UgQVQg
dGVzdENvbW1hczo0Mzo5CiAgICAgIDQxICAgICAgICAgICAgeSA9IDIsCiAgLT4gIDQyICAgICAg
ICAgICAgfHogPSAzOwogICAgICA0MyAgICAgICAgYSgpLCBiKCksIGMoKTsKLSAgICAgNDQgICAg
ICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkpOworICAgICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgp
LCBiKCksIGMoKSkgJiYgdHJ1ZTsKICAgICAgNDUgICAgfQogCiBQQVVTRSBBVCB0ZXN0Q29tbWFz
OjQ0OjUKQEAgLTI1Niw3ICsyNTYsNyBAQCBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQ0OjUKICAgICAg
NDEgICAgICAgICAgICB5ID0gMiwKICAgICAgNDIgICAgICAgICAgICB6ID0gMzsKICAtPiAgNDMg
ICAgICAgIHxhKCksIGIoKSwgYygpOwotICAgICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgpLCBiKCks
IGMoKSk7CisgICAgIDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKSAmJiB0cnVlOwog
ICAgICA0NSAgICB9CiAgICAgIDQ2ICAgIAogCkBAIC0yODMsNyArMjgzLDcgQEAgUEFVU0UgQVQg
dGVzdENvbW1hczo0NDoxMAogICAgICA0MSAgICAgICAgICAgIHkgPSAyLAogICAgICA0MiAgICAg
ICAgICAgIHogPSAzOwogIC0+ICA0MyAgICAgICAgYSgpLCB8YigpLCBjKCk7Ci0gICAgIDQ0ICAg
ICAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKTsKKyAgICAgNDQgICAgICAgIHRydWUgJiYgKGEo
KSwgYigpLCBjKCkpICYmIHRydWU7CiAgICAgIDQ1ICAgIH0KICAgICAgNDYgICAgCiAKQEAgLTMx
MCw3ICszMTAsNyBAQCBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQ0OjE1CiAgICAgIDQxICAgICAgICAg
ICAgeSA9IDIsCiAgICAgIDQyICAgICAgICAgICAgeiA9IDM7CiAgLT4gIDQzICAgICAgICBhKCks
IGIoKSwgfGMoKTsKLSAgICAgNDQgICAgICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkpOworICAg
ICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSkgJiYgdHJ1ZTsKICAgICAgNDUgICAg
fQogICAgICA0NiAgICAKIApAQCAtMzM2LDcgKzMzNiw3IEBAIFBBVVNFIEFUIHRlc3RDb21tYXM6
NDU6NQogICAgICA0MSAgICAgICAgICAgIHkgPSAyLAogICAgICA0MiAgICAgICAgICAgIHogPSAz
OwogICAgICA0MyAgICAgICAgYSgpLCBiKCksIGMoKTsKLSAtPiAgNDQgICAgICAgIHx0cnVlICYm
IChhKCksIGIoKSwgYygpKTsKKyAtPiAgNDQgICAgICAgIHx0cnVlICYmIChhKCksIGIoKSwgYygp
KSAmJiB0cnVlOwogICAgICA0NSAgICB9CiAgICAgIDQ2ICAgIAogICAgICA0NyAgICBmdW5jdGlv
biB0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zKCkgewpAQCAtMzQ1LDcgKzM0NSw3IEBAIFBBVVNFIEFU
IHRlc3RDb21tYXM6NDU6MTQKICAgICAgNDEgICAgICAgICAgICB5ID0gMiwKICAgICAgNDIgICAg
ICAgICAgICB6ID0gMzsKICAgICAgNDMgICAgICAgIGEoKSwgYigpLCBjKCk7Ci0gLT4gIDQ0ICAg
ICAgICB0cnVlICYmICh8YSgpLCBiKCksIGMoKSk7CisgLT4gIDQ0ICAgICAgICB0cnVlICYmICh8
YSgpLCBiKCksIGMoKSkgJiYgdHJ1ZTsKICAgICAgNDUgICAgfQogICAgICA0NiAgICAKICAgICAg
NDcgICAgZnVuY3Rpb24gdGVzdENoYWluZWRFeHByZXNzaW9ucygpIHsKQEAgLTM3Miw3ICszNzIs
NyBAQCBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQ1OjE5CiAgICAgIDQxICAgICAgICAgICAgeSA9IDIs
CiAgICAgIDQyICAgICAgICAgICAgeiA9IDM7CiAgICAgIDQzICAgICAgICBhKCksIGIoKSwgYygp
OwotIC0+ICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgpLCB8YigpLCBjKCkpOworIC0+ICA0NCAgICAg
ICAgdHJ1ZSAmJiAoYSgpLCB8YigpLCBjKCkpICYmIHRydWU7CiAgICAgIDQ1ICAgIH0KICAgICAg
NDYgICAgCiAgICAgIDQ3ICAgIGZ1bmN0aW9uIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnMoKSB7CkBA
IC0zOTksNyArMzk5LDcgQEAgUEFVU0UgQVQgdGVzdENvbW1hczo0NToyNAogICAgICA0MSAgICAg
ICAgICAgIHkgPSAyLAogICAgICA0MiAgICAgICAgICAgIHogPSAzOwogICAgICA0MyAgICAgICAg
YSgpLCBiKCksIGMoKTsKLSAtPiAgNDQgICAgICAgIHRydWUgJiYgKGEoKSwgYigpLCB8YygpKTsK
KyAtPiAgNDQgICAgICAgIHRydWUgJiYgKGEoKSwgYigpLCB8YygpKSAmJiB0cnVlOwogICAgICA0
NSAgICB9CiAgICAgIDQ2ICAgIAogICAgICA0NyAgICBmdW5jdGlvbiB0ZXN0Q2hhaW5lZEV4cHJl
c3Npb25zKCkgewpAQCAtNDI1LDcgKzQyNSw3IEBAIFBBVVNFIEFUIGM6OToyOQogUEFVU0UgQVQg
dGVzdENvbW1hczo0NjoyCiAgICAgIDQyICAgICAgICAgICAgeiA9IDM7CiAgICAgIDQzICAgICAg
ICBhKCksIGIoKSwgYygpOwotICAgICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSk7
CisgICAgIDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKSAmJiB0cnVlOwogIC0+ICA0
NSAgICB9fAogICAgICA0NiAgICAKICAgICAgNDcgICAgZnVuY3Rpb24gdGVzdENoYWluZWRFeHBy
ZXNzaW9ucygpIHsKQEAgLTQ1MSw3ICs0NTEsNyBAQCBQQVVTRSBBVCB0ZXN0Q2hhaW5lZEV4cHJl
c3Npb25zOjUwOjUKICAtPiAgNDkgICAgICAgIHxhKCkgJiYgYigpICYmIGMoKTsKICAgICAgNTAg
ICAgfQogICAgICA1MSAgICAKLSAgICAgNTIgICAgLy8gLS0tLS0tLS0tCisgICAgIDUyICAgIGZ1
bmN0aW9uIHRlc3REZWNsYXJhdGlvbnMoKSB7CiAKIFBBVVNFIEFUIGE6NzoxNgogICAgICAgMyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KQEAgLTQ3OCw3ICs0NzgsNyBAQCBQQVVTRSBBVCB0
ZXN0Q2hhaW5lZEV4cHJlc3Npb25zOjUwOjEyCiAgLT4gIDQ5ICAgICAgICBhKCkgJiYgfGIoKSAm
JiBjKCk7CiAgICAgIDUwICAgIH0KICAgICAgNTEgICAgCi0gICAgIDUyICAgIC8vIC0tLS0tLS0t
LQorICAgICA1MiAgICBmdW5jdGlvbiB0ZXN0RGVjbGFyYXRpb25zKCkgewogCiBQQVVTRSBBVCBi
Ojg6MTYKICAgICAgIDQgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9sb2ctcGF1c2UtbG9j
YXRpb24uanMiPjwvc2NyaXB0PgpAQCAtNTA1LDcgKzUwNSw3IEBAIFBBVVNFIEFUIHRlc3RDaGFp
bmVkRXhwcmVzc2lvbnM6NTA6MTkKICAtPiAgNDkgICAgICAgIGEoKSAmJiBiKCkgJiYgfGMoKTsK
ICAgICAgNTAgICAgfQogICAgICA1MSAgICAKLSAgICAgNTIgICAgLy8gLS0tLS0tLS0tCisgICAg
IDUyICAgIGZ1bmN0aW9uIHRlc3REZWNsYXJhdGlvbnMoKSB7CiAKIFBBVVNFIEFUIGM6OToxNgog
ICAgICAgNSAgICA8c2NyaXB0PgpAQCAtNTMxLDggKzUzMSwxNTEgQEAgUEFVU0UgQVQgdGVzdENo
YWluZWRFeHByZXNzaW9uczo1MToyCiAgICAgIDQ5ICAgICAgICBhKCkgJiYgYigpICYmIGMoKTsK
ICAtPiAgNTAgICAgfXwKICAgICAgNTEgICAgCi0gICAgIDUyICAgIC8vIC0tLS0tLS0tLQotICAg
ICA1MyAgICAKKyAgICAgNTIgICAgZnVuY3Rpb24gdGVzdERlY2xhcmF0aW9ucygpIHsKKyAgICAg
NTMgICAgICAgIGRlYnVnZ2VyOworCitSRVNVTUVECisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBE
ZWJ1Z2dlci5zdGVwSW50by5kZWNsYXJhdGlvbnMKK1BBVVNFRCAoZGVidWdnZXItc3RhdGVtZW50
KQorUEFVU0UgQVQgdGVzdERlY2xhcmF0aW9uczo1NDo1CisgICAgIDUwICAgIH0KKyAgICAgNTEg
ICAgCisgICAgIDUyICAgIGZ1bmN0aW9uIHRlc3REZWNsYXJhdGlvbnMoKSB7CisgLT4gIDUzICAg
ICAgICB8ZGVidWdnZXI7CisgICAgIDU0ICAgICAgICBsZXQgeCA9IGEoKSwKKyAgICAgNTUgICAg
ICAgICAgICB5ID0gYigpLAorICAgICA1NiAgICAgICAgICAgIHogPSBjKCk7CisKK1BBVVNFIEFU
IHRlc3REZWNsYXJhdGlvbnM6NTU6NQorICAgICA1MSAgICAKKyAgICAgNTIgICAgZnVuY3Rpb24g
dGVzdERlY2xhcmF0aW9ucygpIHsKKyAgICAgNTMgICAgICAgIGRlYnVnZ2VyOworIC0+ICA1NCAg
ICAgICAgfGxldCB4ID0gYSgpLAorICAgICA1NSAgICAgICAgICAgIHkgPSBiKCksCisgICAgIDU2
ICAgICAgICAgICAgeiA9IGMoKTsKKyAgICAgNTcgICAgfQorCitQQVVTRSBBVCBhOjc6MTYKKyAg
ICAgIDMgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICA0ICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvbG9nLXBhdXNlLWxvY2F0aW9uLmpzIj48L3NjcmlwdD4KKyAgICAgIDUg
ICAgPHNjcmlwdD4KKyAtPiAgIDYgICAgZnVuY3Rpb24gYSgpIHsgfHJldHVybiAiYSI7IH0KKyAg
ICAgIDcgICAgZnVuY3Rpb24gYigpIHsgcmV0dXJuICJiIjsgfQorICAgICAgOCAgICBmdW5jdGlv
biBjKCkgeyByZXR1cm4gImMiOyB9CisgICAgICA5ICAgIAorCitQQVVTRSBBVCBhOjc6MjkKKyAg
ICAgIDMgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICA0ICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvbG9nLXBhdXNlLWxvY2F0aW9uLmpzIj48L3NjcmlwdD4KKyAgICAgIDUg
ICAgPHNjcmlwdD4KKyAtPiAgIDYgICAgZnVuY3Rpb24gYSgpIHsgcmV0dXJuICJhIjsgfXwKKyAg
ICAgIDcgICAgZnVuY3Rpb24gYigpIHsgcmV0dXJuICJiIjsgfQorICAgICAgOCAgICBmdW5jdGlv
biBjKCkgeyByZXR1cm4gImMiOyB9CisgICAgICA5ICAgIAorCitQQVVTRSBBVCB0ZXN0RGVjbGFy
YXRpb25zOjU2OjkKKyAgICAgNTIgICAgZnVuY3Rpb24gdGVzdERlY2xhcmF0aW9ucygpIHsKKyAg
ICAgNTMgICAgICAgIGRlYnVnZ2VyOworICAgICA1NCAgICAgICAgbGV0IHggPSBhKCksCisgLT4g
IDU1ICAgICAgICAgICAgfHkgPSBiKCksCisgICAgIDU2ICAgICAgICAgICAgeiA9IGMoKTsKKyAg
ICAgNTcgICAgfQorICAgICA1OCAgICAKKworUEFVU0UgQVQgYjo4OjE2CisgICAgICA0ICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbG9nLXBhdXNlLWxvY2F0aW9uLmpzIj48L3NjcmlwdD4K
KyAgICAgIDUgICAgPHNjcmlwdD4KKyAgICAgIDYgICAgZnVuY3Rpb24gYSgpIHsgcmV0dXJuICJh
IjsgfQorIC0+ICAgNyAgICBmdW5jdGlvbiBiKCkgeyB8cmV0dXJuICJiIjsgfQorICAgICAgOCAg
ICBmdW5jdGlvbiBjKCkgeyByZXR1cm4gImMiOyB9CisgICAgICA5ICAgIAorICAgICAxMCAgICBm
dW5jdGlvbiB0ZXN0U3RhdGVtZW50cygpIHsKKworUEFVU0UgQVQgYjo4OjI5CisgICAgICA0ICAg
IDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbG9nLXBhdXNlLWxvY2F0aW9uLmpzIj48L3Njcmlw
dD4KKyAgICAgIDUgICAgPHNjcmlwdD4KKyAgICAgIDYgICAgZnVuY3Rpb24gYSgpIHsgcmV0dXJu
ICJhIjsgfQorIC0+ICAgNyAgICBmdW5jdGlvbiBiKCkgeyByZXR1cm4gImIiOyB9fAorICAgICAg
OCAgICBmdW5jdGlvbiBjKCkgeyByZXR1cm4gImMiOyB9CisgICAgICA5ICAgIAorICAgICAxMCAg
ICBmdW5jdGlvbiB0ZXN0U3RhdGVtZW50cygpIHsKKworUEFVU0UgQVQgdGVzdERlY2xhcmF0aW9u
czo1Nzo5CisgICAgIDUzICAgICAgICBkZWJ1Z2dlcjsKKyAgICAgNTQgICAgICAgIGxldCB4ID0g
YSgpLAorICAgICA1NSAgICAgICAgICAgIHkgPSBiKCksCisgLT4gIDU2ICAgICAgICAgICAgfHog
PSBjKCk7CisgICAgIDU3ICAgIH0KKyAgICAgNTggICAgCisgICAgIDU5ICAgIGZ1bmN0aW9uIHRl
c3RJbm5lckZ1bmN0aW9uKCkgeworCitQQVVTRSBBVCBjOjk6MTYKKyAgICAgIDUgICAgPHNjcmlw
dD4KKyAgICAgIDYgICAgZnVuY3Rpb24gYSgpIHsgcmV0dXJuICJhIjsgfQorICAgICAgNyAgICBm
dW5jdGlvbiBiKCkgeyByZXR1cm4gImIiOyB9CisgLT4gICA4ICAgIGZ1bmN0aW9uIGMoKSB7IHxy
ZXR1cm4gImMiOyB9CisgICAgICA5ICAgIAorICAgICAxMCAgICBmdW5jdGlvbiB0ZXN0U3RhdGVt
ZW50cygpIHsKKyAgICAgMTEgICAgICAgIGRlYnVnZ2VyOworCitQQVVTRSBBVCBjOjk6MjkKKyAg
ICAgIDUgICAgPHNjcmlwdD4KKyAgICAgIDYgICAgZnVuY3Rpb24gYSgpIHsgcmV0dXJuICJhIjsg
fQorICAgICAgNyAgICBmdW5jdGlvbiBiKCkgeyByZXR1cm4gImIiOyB9CisgLT4gICA4ICAgIGZ1
bmN0aW9uIGMoKSB7IHJldHVybiAiYyI7IH18CisgICAgICA5ICAgIAorICAgICAxMCAgICBmdW5j
dGlvbiB0ZXN0U3RhdGVtZW50cygpIHsKKyAgICAgMTEgICAgICAgIGRlYnVnZ2VyOworCitQQVVT
RSBBVCB0ZXN0RGVjbGFyYXRpb25zOjU4OjIKKyAgICAgNTQgICAgICAgIGxldCB4ID0gYSgpLAor
ICAgICA1NSAgICAgICAgICAgIHkgPSBiKCksCisgICAgIDU2ICAgICAgICAgICAgeiA9IGMoKTsK
KyAtPiAgNTcgICAgfXwKKyAgICAgNTggICAgCisgICAgIDU5ICAgIGZ1bmN0aW9uIHRlc3RJbm5l
ckZ1bmN0aW9uKCkgeworICAgICA2MCAgICAgICAgZnVuY3Rpb24gYWxwaGEoKSB7CisKK1JFU1VN
RUQKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnN0ZXBJbnRvLmlubmVyRnVuY3Rp
b24KK1BBVVNFRCAoZGVidWdnZXItc3RhdGVtZW50KQorUEFVU0UgQVQgYmV0YTo2NTo5CisgICAg
IDYxICAgICAgICAgICAgYmV0YSgpOworICAgICA2MiAgICAgICAgfQorICAgICA2MyAgICAgICAg
ZnVuY3Rpb24gYmV0YSgpIHsKKyAtPiAgNjQgICAgICAgICAgICB8ZGVidWdnZXI7CisgICAgIDY1
ICAgICAgICB9CisgICAgIDY2ICAgICAgICBhbHBoYSgpOworICAgICA2NyAgICB9CisKK1BBVVNF
IEFUIGJldGE6NjY6NgorICAgICA2MiAgICAgICAgfQorICAgICA2MyAgICAgICAgZnVuY3Rpb24g
YmV0YSgpIHsKKyAgICAgNjQgICAgICAgICAgICBkZWJ1Z2dlcjsKKyAtPiAgNjUgICAgICAgIH18
CisgICAgIDY2ICAgICAgICBhbHBoYSgpOworICAgICA2NyAgICB9CisgICAgIDY4ICAgIAorCitQ
QVVTRSBBVCBhbHBoYTo2Mzo2CisgICAgIDU5ICAgIGZ1bmN0aW9uIHRlc3RJbm5lckZ1bmN0aW9u
KCkgeworICAgICA2MCAgICAgICAgZnVuY3Rpb24gYWxwaGEoKSB7CisgICAgIDYxICAgICAgICAg
ICAgYmV0YSgpOworIC0+ICA2MiAgICAgICAgfXwKKyAgICAgNjMgICAgICAgIGZ1bmN0aW9uIGJl
dGEoKSB7CisgICAgIDY0ICAgICAgICAgICAgZGVidWdnZXI7CisgICAgIDY1ICAgICAgICB9CisK
K1BBVVNFIEFUIHRlc3RJbm5lckZ1bmN0aW9uOjY4OjIKKyAgICAgNjQgICAgICAgICAgICBkZWJ1
Z2dlcjsKKyAgICAgNjUgICAgICAgIH0KKyAgICAgNjYgICAgICAgIGFscGhhKCk7CisgLT4gIDY3
ICAgIH18CisgICAgIDY4ICAgIAorICAgICA2OSAgICAvLyAtLS0tLS0tLS0KKyAgICAgNzAgICAg
CiAKIFJFU1VNRUQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3N0ZXBwaW5nL3N0ZXBJbnRvLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
c3RlcHBpbmcvc3RlcEludG8uaHRtbAppbmRleCAyNjIzMjEzNmZjZTRiNzhiNWZjMjMxMGZjYTk5
OTI4ZjVkM2VmMzBkLi41ZGVlOTFlYTA4YTYzZTU1ZmM3ZjZmYTdmYmFhMzhjYzM4ODhhZjczIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcElu
dG8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3Rl
cEludG8uaHRtbApAQCAtMjgsNyArMjgsNyBAQCBmdW5jdGlvbiB0ZXN0RXZhbCgpIHsKICAgICBs
ZXQgYWZ0ZXIgPSAyOwogfQogCi1mdW5jdGlvbiB0ZXN0SW5uZXJGdW5jdGlvbigpIHsKK2Z1bmN0
aW9uIHRlc3RBbm9ueW1vdXNGdW5jdGlvbigpIHsKICAgICAoZnVuY3Rpb24oKSB7CiAgICAgICAg
IGRlYnVnZ2VyOwogICAgICAgICBsZXQgaW5uZXIgPSAxOwpAQCAtNDIsNyArNDIsNyBAQCBmdW5j
dGlvbiB0ZXN0Q29tbWFzKCkgewogICAgICAgICB5ID0gMiwKICAgICAgICAgeiA9IDM7CiAgICAg
YSgpLCBiKCksIGMoKTsKLSAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKTsKKyAgICB0cnVlICYm
IChhKCksIGIoKSwgYygpKSAmJiB0cnVlOwogfQogCiBmdW5jdGlvbiB0ZXN0Q2hhaW5lZEV4cHJl
c3Npb25zKCkgewpAQCAtNTAsMTMgKzUwLDMwIEBAIGZ1bmN0aW9uIHRlc3RDaGFpbmVkRXhwcmVz
c2lvbnMoKSB7CiAgICAgYSgpICYmIGIoKSAmJiBjKCk7CiB9CiAKK2Z1bmN0aW9uIHRlc3REZWNs
YXJhdGlvbnMoKSB7CisgICAgZGVidWdnZXI7CisgICAgbGV0IHggPSBhKCksCisgICAgICAgIHkg
PSBiKCksCisgICAgICAgIHogPSBjKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RJbm5lckZ1bmN0aW9u
KCkgeworICAgIGZ1bmN0aW9uIGFscGhhKCkgeworICAgICAgICBiZXRhKCk7CisgICAgfQorICAg
IGZ1bmN0aW9uIGJldGEoKSB7CisgICAgICAgIGRlYnVnZ2VyOworICAgIH0KKyAgICBhbHBoYSgp
OworfQorCiAvLyAtLS0tLS0tLS0KIAogZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgbGV0IHN1aXRl
ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJEZWJ1Z2dlci5zdGVwSW50byIpOwog
Ci0gICAgLy8gQWx3YXlzIHN0ZXAtaW4gd2hlbiBjYWxsIGZyYW1lcyBjaGFuZ2UuCisgICAgLy8g
QWx3YXlzIHN0ZXAtaW50byB3aGVuIGNhbGwgZnJhbWVzIGNoYW5nZS4KICAgICBXSS5kZWJ1Z2dl
ck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQ2FsbEZy
YW1lc0RpZENoYW5nZSwgKGV2ZW50KSA9PiB7CiAgICAgICAgIGlmICghV0kuZGVidWdnZXJNYW5h
Z2VyLmFjdGl2ZUNhbGxGcmFtZSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTg3LDcgKzEwNCw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIH0pOwogCiAgICAgYWRkVGVzdENhc2UoewotICAgICAg
ICBuYW1lOiAiRGVidWdnZXIuc3RlcEludG8uZnVuY3Rpb24iLAorICAgICAgICBuYW1lOiAiRGVi
dWdnZXIuc3RlcEludG8uZnVuY3Rpb25zIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJzdGVwLWlu
dG8gc2hvdWxkIHN0ZXAgaW50byBmdW5jdGlvbiBjYWxscy4iLAogICAgICAgICBleHByZXNzaW9u
OiAic2V0VGltZW91dCh0ZXN0RnVuY3Rpb25zKSIsCiAgICAgfSk7CkBAIC05OSw5ICsxMTYsOSBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICB9KTsKIAogICAgIGFkZFRlc3RDYXNlKHsKLSAgICAgICAg
bmFtZTogIkRlYnVnZ2VyLnN0ZXBJbnRvLmlubmVyRnVuY3Rpb24iLAorICAgICAgICBuYW1lOiAi
RGVidWdnZXIuc3RlcEludG8uYW5vbnltb3VzRnVuY3Rpb24iLAogICAgICAgICBkZXNjcmlwdGlv
bjogInN0ZXAtaW50byBzaG91bGQgc3RlcCBvdXQgb2YgYSBmdW5jdGlvbiB0byBpdHMgY2FsbGVy
LiIsCi0gICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RJbm5lckZ1bmN0aW9uKSIs
CisgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RBbm9ueW1vdXNGdW5jdGlvbiki
LAogICAgIH0pOwogCiAgICAgYWRkVGVzdENhc2UoewpAQCAtMTE2LDYgKzEzMywxOCBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQodGVzdENoYWluZWRF
eHByZXNzaW9ucykiLAogICAgIH0pOwogCisgICAgYWRkVGVzdENhc2UoeworICAgICAgICBuYW1l
OiAiRGVidWdnZXIuc3RlcEludG8uZGVjbGFyYXRpb25zIiwKKyAgICAgICAgZGVzY3JpcHRpb246
ICJzdGVwLWludG8gc2hvdWxkIHN0ZXAgaW50byBlYWNoIGRlY2xhcmF0aW9uLiIsCisgICAgICAg
IGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3REZWNsYXJhdGlvbnMpIiwKKyAgICB9KTsKKwor
ICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLnN0ZXBJbnRvLmlubmVy
RnVuY3Rpb24iLAorICAgICAgICBkZXNjcmlwdGlvbjogInN0ZXAtaW50byBzaG91bGQgc3RlcCBv
dXQgb2YgYSBmdW5jdGlvbiB0byBpdHMgY2FsbGVyLiIsCisgICAgICAgIGV4cHJlc3Npb246ICJz
ZXRUaW1lb3V0KHRlc3RJbm5lckZ1bmN0aW9uKSIsCisgICAgfSk7CisKICAgICBsb2FkTWFpblBh
Z2VDb250ZW50KCkudGhlbigoKSA9PiB7CiAgICAgICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZp
bmlzaCgpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3N0ZXBwaW5nL3N0ZXBOZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwTmV4dC1leHBlY3RlZC50eHQKaW5kZXggZGRiMWVhMjc5
NjY1MWQ1N2QyYjQzOTVhNDI1Mjg0ZTBmODE2ZjQ4Ni4uMWNkNjk1NmFlODhiNzNkMTcyYjMzMzNi
NThjOWQzMjViZTBlZmJmMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3N0ZXBwaW5nL3N0ZXBOZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcE5leHQtZXhwZWN0ZWQudHh0CkBAIC00Miw3ICs0
Miw3IEBAIFBBVVNFIEFUIHRlc3RTdGF0ZW1lbnRzOjE1OjIKIAogUkVTVU1FRAogCi0tLSBSdW5u
aW5nIHRlc3QgY2FzZTogRGVidWdnZXIuc3RlcE5leHQuZnVuY3Rpb24KKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBEZWJ1Z2dlci5zdGVwTmV4dC5mdW5jdGlvbnMKIFBBVVNFRCAoZGVidWdnZXItc3Rh
dGVtZW50KQogUEFVU0UgQVQgdGVzdEZ1bmN0aW9uczoxODo1CiAgICAgIDE0ICAgIH0KQEAgLTEy
Nyw3ICsxMjcsNyBAQCBQQVVTRSBBVCB0ZXN0RXZhbDoyODo1CiAgLT4gIDI3ICAgICAgICB8bGV0
IGFmdGVyID0gMjsKICAgICAgMjggICAgfQogICAgICAyOSAgICAKLSAgICAgMzAgICAgZnVuY3Rp
b24gdGVzdElubmVyRnVuY3Rpb24oKSB7CisgICAgIDMwICAgIGZ1bmN0aW9uIHRlc3RBbm9ueW1v
dXNGdW5jdGlvbigpIHsKIAogUEFVU0UgQVQgdGVzdEV2YWw6Mjk6MgogICAgICAyNSAgICAgICAg
bGV0IGJlZm9yZSA9IDE7CkBAIC0xMzUsMTYgKzEzNSwxNiBAQCBQQVVTRSBBVCB0ZXN0RXZhbDoy
OToyCiAgICAgIDI3ICAgICAgICBsZXQgYWZ0ZXIgPSAyOwogIC0+ICAyOCAgICB9fAogICAgICAy
OSAgICAKLSAgICAgMzAgICAgZnVuY3Rpb24gdGVzdElubmVyRnVuY3Rpb24oKSB7CisgICAgIDMw
ICAgIGZ1bmN0aW9uIHRlc3RBbm9ueW1vdXNGdW5jdGlvbigpIHsKICAgICAgMzEgICAgICAgIChm
dW5jdGlvbigpIHsKIAogUkVTVU1FRAogCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIu
c3RlcE5leHQuaW5uZXJGdW5jdGlvbgorLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnN0
ZXBOZXh0LmFub255bW91c0Z1bmN0aW9uCiBQQVVTRUQgKGRlYnVnZ2VyLXN0YXRlbWVudCkKIFBB
VVNFIEFUIDxhbm9ueW1vdXM+OjMzOjkKICAgICAgMjkgICAgCi0gICAgIDMwICAgIGZ1bmN0aW9u
IHRlc3RJbm5lckZ1bmN0aW9uKCkgeworICAgICAzMCAgICBmdW5jdGlvbiB0ZXN0QW5vbnltb3Vz
RnVuY3Rpb24oKSB7CiAgICAgIDMxICAgICAgICAoZnVuY3Rpb24oKSB7CiAgLT4gIDMyICAgICAg
ICAgICAgfGRlYnVnZ2VyOwogICAgICAzMyAgICAgICAgICAgIGxldCBpbm5lciA9IDE7CkBAIC0x
NTIsNyArMTUyLDcgQEAgUEFVU0UgQVQgPGFub255bW91cz46MzM6OQogICAgICAzNSAgICAgICAg
bGV0IG91dGVyID0gMjsKIAogUEFVU0UgQVQgPGFub255bW91cz46MzQ6OQotICAgICAzMCAgICBm
dW5jdGlvbiB0ZXN0SW5uZXJGdW5jdGlvbigpIHsKKyAgICAgMzAgICAgZnVuY3Rpb24gdGVzdEFu
b255bW91c0Z1bmN0aW9uKCkgewogICAgICAzMSAgICAgICAgKGZ1bmN0aW9uKCkgewogICAgICAz
MiAgICAgICAgICAgIGRlYnVnZ2VyOwogIC0+ICAzMyAgICAgICAgICAgIHxsZXQgaW5uZXIgPSAx
OwpAQCAtMTY5LDcgKzE2OSw3IEBAIFBBVVNFIEFUIDxhbm9ueW1vdXM+OjM1OjYKICAgICAgMzYg
ICAgfQogICAgICAzNyAgICAKIAotUEFVU0UgQVQgdGVzdElubmVyRnVuY3Rpb246MzY6NQorUEFV
U0UgQVQgdGVzdEFub255bW91c0Z1bmN0aW9uOjM2OjUKICAgICAgMzIgICAgICAgICAgICBkZWJ1
Z2dlcjsKICAgICAgMzMgICAgICAgICAgICBsZXQgaW5uZXIgPSAxOwogICAgICAzNCAgICAgICAg
fSkoKTsKQEAgLTE3OCw3ICsxNzgsNyBAQCBQQVVTRSBBVCB0ZXN0SW5uZXJGdW5jdGlvbjozNjo1
CiAgICAgIDM3ICAgIAogICAgICAzOCAgICBmdW5jdGlvbiB0ZXN0Q29tbWFzKCkgewogCi1QQVVT
RSBBVCB0ZXN0SW5uZXJGdW5jdGlvbjozNzoyCitQQVVTRSBBVCB0ZXN0QW5vbnltb3VzRnVuY3Rp
b246Mzc6MgogICAgICAzMyAgICAgICAgICAgIGxldCBpbm5lciA9IDE7CiAgICAgIDM0ICAgICAg
ICB9KSgpOwogICAgICAzNSAgICAgICAgbGV0IG91dGVyID0gMjsKQEAgLTIxNiw3ICsyMTYsNyBA
QCBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQyOjkKICAtPiAgNDEgICAgICAgICAgICB8eSA9IDIsCiAg
ICAgIDQyICAgICAgICAgICAgeiA9IDM7CiAgICAgIDQzICAgICAgICBhKCksIGIoKSwgYygpOwot
ICAgICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSk7CisgICAgIDQ0ICAgICAgICB0
cnVlICYmIChhKCksIGIoKSwgYygpKSAmJiB0cnVlOwogCiBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQz
OjkKICAgICAgMzkgICAgICAgIGRlYnVnZ2VyOwpAQCAtMjI0LDcgKzIyNCw3IEBAIFBBVVNFIEFU
IHRlc3RDb21tYXM6NDM6OQogICAgICA0MSAgICAgICAgICAgIHkgPSAyLAogIC0+ICA0MiAgICAg
ICAgICAgIHx6ID0gMzsKICAgICAgNDMgICAgICAgIGEoKSwgYigpLCBjKCk7Ci0gICAgIDQ0ICAg
ICAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKTsKKyAgICAgNDQgICAgICAgIHRydWUgJiYgKGEo
KSwgYigpLCBjKCkpICYmIHRydWU7CiAgICAgIDQ1ICAgIH0KIAogUEFVU0UgQVQgdGVzdENvbW1h
czo0NDo1CkBAIC0yMzIsNyArMjMyLDcgQEAgUEFVU0UgQVQgdGVzdENvbW1hczo0NDo1CiAgICAg
IDQxICAgICAgICAgICAgeSA9IDIsCiAgICAgIDQyICAgICAgICAgICAgeiA9IDM7CiAgLT4gIDQz
ICAgICAgICB8YSgpLCBiKCksIGMoKTsKLSAgICAgNDQgICAgICAgIHRydWUgJiYgKGEoKSwgYigp
LCBjKCkpOworICAgICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSkgJiYgdHJ1ZTsK
ICAgICAgNDUgICAgfQogICAgICA0NiAgICAKIApAQCAtMjQxLDcgKzI0MSw3IEBAIFBBVVNFIEFU
IHRlc3RDb21tYXM6NDQ6MTAKICAgICAgNDEgICAgICAgICAgICB5ID0gMiwKICAgICAgNDIgICAg
ICAgICAgICB6ID0gMzsKICAtPiAgNDMgICAgICAgIGEoKSwgfGIoKSwgYygpOwotICAgICA0NCAg
ICAgICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSk7CisgICAgIDQ0ICAgICAgICB0cnVlICYmIChh
KCksIGIoKSwgYygpKSAmJiB0cnVlOwogICAgICA0NSAgICB9CiAgICAgIDQ2ICAgIAogCkBAIC0y
NTAsNyArMjUwLDcgQEAgUEFVU0UgQVQgdGVzdENvbW1hczo0NDoxNQogICAgICA0MSAgICAgICAg
ICAgIHkgPSAyLAogICAgICA0MiAgICAgICAgICAgIHogPSAzOwogIC0+ICA0MyAgICAgICAgYSgp
LCBiKCksIHxjKCk7Ci0gICAgIDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKTsKKyAg
ICAgNDQgICAgICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkpICYmIHRydWU7CiAgICAgIDQ1ICAg
IH0KICAgICAgNDYgICAgCiAKQEAgLTI1OCw3ICsyNTgsNyBAQCBQQVVTRSBBVCB0ZXN0Q29tbWFz
OjQ1OjUKICAgICAgNDEgICAgICAgICAgICB5ID0gMiwKICAgICAgNDIgICAgICAgICAgICB6ID0g
MzsKICAgICAgNDMgICAgICAgIGEoKSwgYigpLCBjKCk7Ci0gLT4gIDQ0ICAgICAgICB8dHJ1ZSAm
JiAoYSgpLCBiKCksIGMoKSk7CisgLT4gIDQ0ICAgICAgICB8dHJ1ZSAmJiAoYSgpLCBiKCksIGMo
KSkgJiYgdHJ1ZTsKICAgICAgNDUgICAgfQogICAgICA0NiAgICAKICAgICAgNDcgICAgZnVuY3Rp
b24gdGVzdENoYWluZWRFeHByZXNzaW9ucygpIHsKQEAgLTI2Nyw3ICsyNjcsNyBAQCBQQVVTRSBB
VCB0ZXN0Q29tbWFzOjQ1OjE0CiAgICAgIDQxICAgICAgICAgICAgeSA9IDIsCiAgICAgIDQyICAg
ICAgICAgICAgeiA9IDM7CiAgICAgIDQzICAgICAgICBhKCksIGIoKSwgYygpOwotIC0+ICA0NCAg
ICAgICAgdHJ1ZSAmJiAofGEoKSwgYigpLCBjKCkpOworIC0+ICA0NCAgICAgICAgdHJ1ZSAmJiAo
fGEoKSwgYigpLCBjKCkpICYmIHRydWU7CiAgICAgIDQ1ICAgIH0KICAgICAgNDYgICAgCiAgICAg
IDQ3ICAgIGZ1bmN0aW9uIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnMoKSB7CkBAIC0yNzYsNyArMjc2
LDcgQEAgUEFVU0UgQVQgdGVzdENvbW1hczo0NToxOQogICAgICA0MSAgICAgICAgICAgIHkgPSAy
LAogICAgICA0MiAgICAgICAgICAgIHogPSAzOwogICAgICA0MyAgICAgICAgYSgpLCBiKCksIGMo
KTsKLSAtPiAgNDQgICAgICAgIHRydWUgJiYgKGEoKSwgfGIoKSwgYygpKTsKKyAtPiAgNDQgICAg
ICAgIHRydWUgJiYgKGEoKSwgfGIoKSwgYygpKSAmJiB0cnVlOwogICAgICA0NSAgICB9CiAgICAg
IDQ2ICAgIAogICAgICA0NyAgICBmdW5jdGlvbiB0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zKCkgewpA
QCAtMjg1LDcgKzI4NSw3IEBAIFBBVVNFIEFUIHRlc3RDb21tYXM6NDU6MjQKICAgICAgNDEgICAg
ICAgICAgICB5ID0gMiwKICAgICAgNDIgICAgICAgICAgICB6ID0gMzsKICAgICAgNDMgICAgICAg
IGEoKSwgYigpLCBjKCk7Ci0gLT4gIDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgfGMoKSk7
CisgLT4gIDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgfGMoKSkgJiYgdHJ1ZTsKICAgICAg
NDUgICAgfQogICAgICA0NiAgICAKICAgICAgNDcgICAgZnVuY3Rpb24gdGVzdENoYWluZWRFeHBy
ZXNzaW9ucygpIHsKQEAgLTI5Myw3ICsyOTMsNyBAQCBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQ1OjI0
CiBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQ2OjIKICAgICAgNDIgICAgICAgICAgICB6ID0gMzsKICAg
ICAgNDMgICAgICAgIGEoKSwgYigpLCBjKCk7Ci0gICAgIDQ0ICAgICAgICB0cnVlICYmIChhKCks
IGIoKSwgYygpKTsKKyAgICAgNDQgICAgICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkpICYmIHRy
dWU7CiAgLT4gIDQ1ICAgIH18CiAgICAgIDQ2ICAgIAogICAgICA0NyAgICBmdW5jdGlvbiB0ZXN0
Q2hhaW5lZEV4cHJlc3Npb25zKCkgewpAQCAtMzE5LDcgKzMxOSw3IEBAIFBBVVNFIEFUIHRlc3RD
aGFpbmVkRXhwcmVzc2lvbnM6NTA6NQogIC0+ICA0OSAgICAgICAgfGEoKSAmJiBiKCkgJiYgYygp
OwogICAgICA1MCAgICB9CiAgICAgIDUxICAgIAotICAgICA1MiAgICAvLyAtLS0tLS0tLS0KKyAg
ICAgNTIgICAgZnVuY3Rpb24gdGVzdERlY2xhcmF0aW9ucygpIHsKIAogUEFVU0UgQVQgdGVzdENo
YWluZWRFeHByZXNzaW9uczo1MDoxMgogICAgICA0NiAgICAKQEAgLTMyOCw3ICszMjgsNyBAQCBQ
QVVTRSBBVCB0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zOjUwOjEyCiAgLT4gIDQ5ICAgICAgICBhKCkg
JiYgfGIoKSAmJiBjKCk7CiAgICAgIDUwICAgIH0KICAgICAgNTEgICAgCi0gICAgIDUyICAgIC8v
IC0tLS0tLS0tLQorICAgICA1MiAgICBmdW5jdGlvbiB0ZXN0RGVjbGFyYXRpb25zKCkgewogCiBQ
QVVTRSBBVCB0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zOjUwOjE5CiAgICAgIDQ2ICAgIApAQCAtMzM3
LDcgKzMzNyw3IEBAIFBBVVNFIEFUIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnM6NTA6MTkKICAtPiAg
NDkgICAgICAgIGEoKSAmJiBiKCkgJiYgfGMoKTsKICAgICAgNTAgICAgfQogICAgICA1MSAgICAK
LSAgICAgNTIgICAgLy8gLS0tLS0tLS0tCisgICAgIDUyICAgIGZ1bmN0aW9uIHRlc3REZWNsYXJh
dGlvbnMoKSB7CiAKIFBBVVNFIEFUIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnM6NTE6MgogICAgICA0
NyAgICBmdW5jdGlvbiB0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zKCkgewpAQCAtMzQ1LDggKzM0NSw5
NyBAQCBQQVVTRSBBVCB0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zOjUxOjIKICAgICAgNDkgICAgICAg
IGEoKSAmJiBiKCkgJiYgYygpOwogIC0+ICA1MCAgICB9fAogICAgICA1MSAgICAKLSAgICAgNTIg
ICAgLy8gLS0tLS0tLS0tCi0gICAgIDUzICAgIAorICAgICA1MiAgICBmdW5jdGlvbiB0ZXN0RGVj
bGFyYXRpb25zKCkgeworICAgICA1MyAgICAgICAgZGVidWdnZXI7CisKK1JFU1VNRUQKKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnN0ZXBOZXh0LmRlY2xhcmF0aW9ucworUEFVU0VE
IChkZWJ1Z2dlci1zdGF0ZW1lbnQpCitQQVVTRSBBVCB0ZXN0RGVjbGFyYXRpb25zOjU0OjUKKyAg
ICAgNTAgICAgfQorICAgICA1MSAgICAKKyAgICAgNTIgICAgZnVuY3Rpb24gdGVzdERlY2xhcmF0
aW9ucygpIHsKKyAtPiAgNTMgICAgICAgIHxkZWJ1Z2dlcjsKKyAgICAgNTQgICAgICAgIGxldCB4
ID0gYSgpLAorICAgICA1NSAgICAgICAgICAgIHkgPSBiKCksCisgICAgIDU2ICAgICAgICAgICAg
eiA9IGMoKTsKKworUEFVU0UgQVQgdGVzdERlY2xhcmF0aW9uczo1NTo1CisgICAgIDUxICAgIAor
ICAgICA1MiAgICBmdW5jdGlvbiB0ZXN0RGVjbGFyYXRpb25zKCkgeworICAgICA1MyAgICAgICAg
ZGVidWdnZXI7CisgLT4gIDU0ICAgICAgICB8bGV0IHggPSBhKCksCisgICAgIDU1ICAgICAgICAg
ICAgeSA9IGIoKSwKKyAgICAgNTYgICAgICAgICAgICB6ID0gYygpOworICAgICA1NyAgICB9CisK
K1BBVVNFIEFUIHRlc3REZWNsYXJhdGlvbnM6NTY6OQorICAgICA1MiAgICBmdW5jdGlvbiB0ZXN0
RGVjbGFyYXRpb25zKCkgeworICAgICA1MyAgICAgICAgZGVidWdnZXI7CisgICAgIDU0ICAgICAg
ICBsZXQgeCA9IGEoKSwKKyAtPiAgNTUgICAgICAgICAgICB8eSA9IGIoKSwKKyAgICAgNTYgICAg
ICAgICAgICB6ID0gYygpOworICAgICA1NyAgICB9CisgICAgIDU4ICAgIAorCitQQVVTRSBBVCB0
ZXN0RGVjbGFyYXRpb25zOjU3OjkKKyAgICAgNTMgICAgICAgIGRlYnVnZ2VyOworICAgICA1NCAg
ICAgICAgbGV0IHggPSBhKCksCisgICAgIDU1ICAgICAgICAgICAgeSA9IGIoKSwKKyAtPiAgNTYg
ICAgICAgICAgICB8eiA9IGMoKTsKKyAgICAgNTcgICAgfQorICAgICA1OCAgICAKKyAgICAgNTkg
ICAgZnVuY3Rpb24gdGVzdElubmVyRnVuY3Rpb24oKSB7CisKK1BBVVNFIEFUIHRlc3REZWNsYXJh
dGlvbnM6NTg6MgorICAgICA1NCAgICAgICAgbGV0IHggPSBhKCksCisgICAgIDU1ICAgICAgICAg
ICAgeSA9IGIoKSwKKyAgICAgNTYgICAgICAgICAgICB6ID0gYygpOworIC0+ICA1NyAgICB9fAor
ICAgICA1OCAgICAKKyAgICAgNTkgICAgZnVuY3Rpb24gdGVzdElubmVyRnVuY3Rpb24oKSB7Cisg
ICAgIDYwICAgICAgICBmdW5jdGlvbiBhbHBoYSgpIHsKKworUkVTVU1FRAorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogRGVidWdnZXIuc3RlcE5leHQuaW5uZXJGdW5jdGlvbgorUEFVU0VEIChkZWJ1
Z2dlci1zdGF0ZW1lbnQpCitQQVVTRSBBVCBiZXRhOjY1OjkKKyAgICAgNjEgICAgICAgICAgICBi
ZXRhKCk7CisgICAgIDYyICAgICAgICB9CisgICAgIDYzICAgICAgICBmdW5jdGlvbiBiZXRhKCkg
eworIC0+ICA2NCAgICAgICAgICAgIHxkZWJ1Z2dlcjsKKyAgICAgNjUgICAgICAgIH0KKyAgICAg
NjYgICAgICAgIGFscGhhKCk7CisgICAgIDY3ICAgIH0KKworUEFVU0UgQVQgYmV0YTo2Njo2Cisg
ICAgIDYyICAgICAgICB9CisgICAgIDYzICAgICAgICBmdW5jdGlvbiBiZXRhKCkgeworICAgICA2
NCAgICAgICAgICAgIGRlYnVnZ2VyOworIC0+ICA2NSAgICAgICAgfXwKKyAgICAgNjYgICAgICAg
IGFscGhhKCk7CisgICAgIDY3ICAgIH0KKyAgICAgNjggICAgCisKK1BBVVNFIEFUIGFscGhhOjYz
OjYKKyAgICAgNTkgICAgZnVuY3Rpb24gdGVzdElubmVyRnVuY3Rpb24oKSB7CisgICAgIDYwICAg
ICAgICBmdW5jdGlvbiBhbHBoYSgpIHsKKyAgICAgNjEgICAgICAgICAgICBiZXRhKCk7CisgLT4g
IDYyICAgICAgICB9fAorICAgICA2MyAgICAgICAgZnVuY3Rpb24gYmV0YSgpIHsKKyAgICAgNjQg
ICAgICAgICAgICBkZWJ1Z2dlcjsKKyAgICAgNjUgICAgICAgIH0KKworUEFVU0UgQVQgdGVzdElu
bmVyRnVuY3Rpb246Njg6MgorICAgICA2NCAgICAgICAgICAgIGRlYnVnZ2VyOworICAgICA2NSAg
ICAgICAgfQorICAgICA2NiAgICAgICAgYWxwaGEoKTsKKyAtPiAgNjcgICAgfXwKKyAgICAgNjgg
ICAgCisgICAgIDY5ICAgIC8vIC0tLS0tLS0tLQorICAgICA3MCAgICAKIAogUkVTVU1FRAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcE5l
eHQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwTmV4
dC5odG1sCmluZGV4IDJlZGRkYTFjMjdjMWFiMGNjYjM4MWRkZDVjYzA5YTAwODJjYTQ2OTguLmU1
MmQ2MTM2NTcxZmEzNGQxMGVhMTkyNTJlNGQ4MTE3MmMzNmVkMTUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwTmV4dC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwTmV4dC5odG1sCkBAIC0y
OCw3ICsyOCw3IEBAIGZ1bmN0aW9uIHRlc3RFdmFsKCkgewogICAgIGxldCBhZnRlciA9IDI7CiB9
CiAKLWZ1bmN0aW9uIHRlc3RJbm5lckZ1bmN0aW9uKCkgeworZnVuY3Rpb24gdGVzdEFub255bW91
c0Z1bmN0aW9uKCkgewogICAgIChmdW5jdGlvbigpIHsKICAgICAgICAgZGVidWdnZXI7CiAgICAg
ICAgIGxldCBpbm5lciA9IDE7CkBAIC00Miw3ICs0Miw3IEBAIGZ1bmN0aW9uIHRlc3RDb21tYXMo
KSB7CiAgICAgICAgIHkgPSAyLAogICAgICAgICB6ID0gMzsKICAgICBhKCksIGIoKSwgYygpOwot
ICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkpOworICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkp
ICYmIHRydWU7CiB9CiAKIGZ1bmN0aW9uIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnMoKSB7CkBAIC01
MCw2ICs1MCwyMyBAQCBmdW5jdGlvbiB0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zKCkgewogICAgIGEo
KSAmJiBiKCkgJiYgYygpOwogfQogCitmdW5jdGlvbiB0ZXN0RGVjbGFyYXRpb25zKCkgeworICAg
IGRlYnVnZ2VyOworICAgIGxldCB4ID0gYSgpLAorICAgICAgICB5ID0gYigpLAorICAgICAgICB6
ID0gYygpOworfQorCitmdW5jdGlvbiB0ZXN0SW5uZXJGdW5jdGlvbigpIHsKKyAgICBmdW5jdGlv
biBhbHBoYSgpIHsKKyAgICAgICAgYmV0YSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBiZXRhKCkg
eworICAgICAgICBkZWJ1Z2dlcjsKKyAgICB9CisgICAgYWxwaGEoKTsKK30KKwogLy8gLS0tLS0t
LS0tCiAKIGZ1bmN0aW9uIHRlc3QoKQpAQCAtODcsNyArMTA0LDcgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgfSk7CiAKICAgICBhZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5z
dGVwTmV4dC5mdW5jdGlvbiIsCisgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zdGVwTmV4dC5mdW5j
dGlvbnMiLAogICAgICAgICBkZXNjcmlwdGlvbjogInN0ZXAtbmV4dCBzaG91bGQgc3RlcCBvdmVy
IGZ1bmN0aW9uIGNhbGxzLiIsCiAgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RG
dW5jdGlvbnMpIiwKICAgICB9KTsKQEAgLTk5LDkgKzExNiw5IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgIH0pOwogCiAgICAgYWRkVGVzdENhc2UoewotICAgICAgICBuYW1lOiAiRGVidWdnZXIuc3Rl
cE5leHQuaW5uZXJGdW5jdGlvbiIsCisgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zdGVwTmV4dC5h
bm9ueW1vdXNGdW5jdGlvbiIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAic3RlcC1uZXh0IHNob3Vs
ZCBzdGVwIG91dCBvZiBhIGZ1bmN0aW9uIHRvIGl0cyBjYWxsZXIuIiwKLSAgICAgICAgZXhwcmVz
c2lvbjogInNldFRpbWVvdXQodGVzdElubmVyRnVuY3Rpb24pIiwKKyAgICAgICAgZXhwcmVzc2lv
bjogInNldFRpbWVvdXQodGVzdEFub255bW91c0Z1bmN0aW9uKSIsCiAgICAgfSk7CiAKICAgICBh
ZGRUZXN0Q2FzZSh7CkBAIC0xMTYsNiArMTMzLDE4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAg
ICBleHByZXNzaW9uOiAic2V0VGltZW91dCh0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zKSIsCiAgICAg
fSk7CiAKKyAgICBhZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zdGVwTmV4
dC5kZWNsYXJhdGlvbnMiLAorICAgICAgICBkZXNjcmlwdGlvbjogInN0ZXAtbmV4dCBzaG91bGQg
c3RlcCB0byBlYWNoIGRlY2xhcmF0aW9uLiIsCisgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1l
b3V0KHRlc3REZWNsYXJhdGlvbnMpIiwKKyAgICB9KTsKKworICAgIGFkZFRlc3RDYXNlKHsKKyAg
ICAgICAgbmFtZTogIkRlYnVnZ2VyLnN0ZXBOZXh0LmlubmVyRnVuY3Rpb24iLAorICAgICAgICBk
ZXNjcmlwdGlvbjogInN0ZXAtbmV4dCBzaG91bGQgc3RlcCBvdXQgb2YgYSBmdW5jdGlvbiB0byBp
dHMgY2FsbGVyLiIsCisgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RJbm5lckZ1
bmN0aW9uKSIsCisgICAgfSk7CisKICAgICBsb2FkTWFpblBhZ2VDb250ZW50KCkudGhlbigoKSA9
PiB7CiAgICAgICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOwogICAgIH0pOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBPdXQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0
ZXBPdXQtZXhwZWN0ZWQudHh0CmluZGV4IDE2YzFhMmE0ODc4M2NjNWQxMWIwYTkxYWEyM2M5ZjBh
ZjkxNGU3OTYuLmJhODYxY2Q2NGFhMTllNmNiMGNmMzQwNjFiZjYxMDc4MTc2ZmU1ZjYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwT3V0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcv
c3RlcE91dC1leHBlY3RlZC50eHQKQEAgLTQsMTAgKzQsMTAgQEAgQ2hlY2tpbmcgcGF1c2UgbG9j
YXRpb25zIHdoZW4gc3RlcHBpbmcgd2l0aCAic3RlcE91dCIuCiA9PSBSdW5uaW5nIHRlc3Qgc3Vp
dGU6IERlYnVnZ2VyLnN0ZXBPdXQKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zdGVw
T3V0LmZ1bmN0aW9uCiBQQVVTRUQgKGRlYnVnZ2VyLXN0YXRlbWVudCkKLVBBVVNFIEFUIHRlc3RG
dW5jdGlvbnM6MTI6NQorUEFVU0UgQVQgdGVzdEZ1bmN0aW9uOjEyOjUKICAgICAgIDggICAgZnVu
Y3Rpb24gYygpIHsgcmV0dXJuICJjIjsgfQogICAgICAgOSAgICAKLSAgICAgMTAgICAgZnVuY3Rp
b24gdGVzdEZ1bmN0aW9ucygpIHsKKyAgICAgMTAgICAgZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKCkg
ewogIC0+ICAxMSAgICAgICAgfGRlYnVnZ2VyOwogICAgICAxMiAgICAgICAgbGV0IHggPSAxOwog
ICAgICAxMyAgICAgICAgbGV0IHkgPSAyOwpAQCAtMTAxLDMgKzEwMSwxNiBAQCBQQVVTRSBBVCB0
ZXN0Q2hhaW5lZEV4cHJlc3Npb25zOjUxOjUKIAogUkVTVU1FRAogCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogRGVidWdnZXIuc3RlcE91dC5kZWNsYXJhdGlvbnMKK1BBVVNFRCAoZGVidWdnZXItc3Rh
dGVtZW50KQorUEFVU0UgQVQgdGVzdERlY2xhcmF0aW9uczo1Njo1CisgICAgIDUyICAgIH0KKyAg
ICAgNTMgICAgCisgICAgIDU0ICAgIGZ1bmN0aW9uIHRlc3REZWNsYXJhdGlvbnMoKSB7CisgLT4g
IDU1ICAgICAgICB8ZGVidWdnZXI7CisgICAgIDU2ICAgICAgICBsZXQgeCA9IGEoKSwKKyAgICAg
NTcgICAgICAgICAgICB5ID0gYigpLAorICAgICA1OCAgICAgICAgICAgIHogPSBjKCk7CisKK1JF
U1VNRUQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBw
aW5nL3N0ZXBPdXQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGlu
Zy9zdGVwT3V0Lmh0bWwKaW5kZXggMDc2ZjczZTY0YjBlODg0Y2Q2NGFlZTExYmIzZjQ3NjZjN2Vk
ZDBjMC4uYzY5YjkzNzU1ODE5OTU1YTQ2NDY1MWEwZmI1NGNmNmU4MmVmNTllNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBPdXQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcE91dC5odG1s
CkBAIC04LDcgKzgsNyBAQCBmdW5jdGlvbiBhKCkgeyByZXR1cm4gImEiOyB9CiBmdW5jdGlvbiBi
KCkgeyByZXR1cm4gImIiOyB9CiBmdW5jdGlvbiBjKCkgeyByZXR1cm4gImMiOyB9CiAKLWZ1bmN0
aW9uIHRlc3RGdW5jdGlvbnMoKSB7CitmdW5jdGlvbiB0ZXN0RnVuY3Rpb24oKSB7CiAgICAgZGVi
dWdnZXI7CiAgICAgbGV0IHggPSAxOwogICAgIGxldCB5ID0gMjsKQEAgLTQ0LDcgKzQ0LDcgQEAg
ZnVuY3Rpb24gdGVzdENvbW1hcygpIHsKICAgICAgICAgeSA9IDIsCiAgICAgICAgIHogPSAzOwog
ICAgIGEoKSwgYigpLCBjKCk7Ci0gICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSk7CisgICAgdHJ1
ZSAmJiAoYSgpLCBiKCksIGMoKSkgJiYgdHJ1ZTsKIH0KIAogZnVuY3Rpb24gdGVzdENoYWluZWRF
eHByZXNzaW9ucygpIHsKQEAgLTUyLDYgKzUyLDEzIEBAIGZ1bmN0aW9uIHRlc3RDaGFpbmVkRXhw
cmVzc2lvbnMoKSB7CiAgICAgYSgpICYmIGIoKSAmJiBjKCk7CiB9CiAKK2Z1bmN0aW9uIHRlc3RE
ZWNsYXJhdGlvbnMoKSB7CisgICAgZGVidWdnZXI7CisgICAgbGV0IHggPSBhKCksCisgICAgICAg
IHkgPSBiKCksCisgICAgICAgIHogPSBjKCk7Cit9CisKIC8vIC0tLS0tLS0tLQogCiBmdW5jdGlv
biB0ZXN0KCkKQEAgLTg1LDcgKzkyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgYWRkVGVzdENh
c2UoewogICAgICAgICBuYW1lOiAiRGVidWdnZXIuc3RlcE91dC5mdW5jdGlvbiIsCiAgICAgICAg
IGRlc2NyaXB0aW9uOiAic3RlcC1vdXQgc2hvdWxkIGxlYXZlIGEgZnVuY3Rpb24uIiwKLSAgICAg
ICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQodGVzdEZ1bmN0aW9ucykiLAorICAgICAgICBleHBy
ZXNzaW9uOiAic2V0VGltZW91dCh0ZXN0RnVuY3Rpb24pIiwKICAgICB9KTsKIAogICAgIGFkZFRl
c3RDYXNlKHsKQEAgLTExOCw2ICsxMjUsMTIgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIGV4
cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RDaGFpbmVkRXhwcmVzc2lvbnMpIiwKICAgICB9KTsK
IAorICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLnN0ZXBPdXQuZGVj
bGFyYXRpb25zIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJzdGVwLW91dCBzaG91bGQgbGVhdmUg
YSBmdW5jdGlvbi4iLAorICAgICAgICBleHByZXNzaW9uOiAic2V0VGltZW91dCh0ZXN0RGVjbGFy
YXRpb25zKSIsCisgICAgfSk7CisKICAgICBsb2FkTWFpblBhZ2VDb250ZW50KCkudGhlbigoKSA9
PiB7CiAgICAgICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOwogICAgIH0pOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBPdmVy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9z
dGVwT3Zlci1leHBlY3RlZC50eHQKaW5kZXggN2MxZTU4ZjEyNGNiMzc3Yjk1NmYzMjMxZGE1ZWEz
ZWU1ZGZjM2QxYi4uMjE1NWE4MDFjZTdlMTNjOTRiZjM1NThlYTZiMjdlMDhiNDI1OWI1ZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBPdmVy
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBp
bmcvc3RlcE92ZXItZXhwZWN0ZWQudHh0CkBAIC00Miw3ICs0Miw3IEBAIFBBVVNFIEFUIHRlc3RT
dGF0ZW1lbnRzOjE1OjIKIAogUkVTVU1FRAogCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdn
ZXIuc3RlcE92ZXIuZnVuY3Rpb24KKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zdGVw
T3Zlci5mdW5jdGlvbnMKIFBBVVNFRCAoZGVidWdnZXItc3RhdGVtZW50KQogUEFVU0UgQVQgdGVz
dEZ1bmN0aW9uczoxODo1CiAgICAgIDE0ICAgIH0KQEAgLTEyNyw3ICsxMjcsNyBAQCBQQVVTRSBB
VCB0ZXN0RXZhbDoyODo1CiAgLT4gIDI3ICAgICAgICB8bGV0IGFmdGVyID0gMjsKICAgICAgMjgg
ICAgfQogICAgICAyOSAgICAKLSAgICAgMzAgICAgZnVuY3Rpb24gdGVzdElubmVyRnVuY3Rpb24o
KSB7CisgICAgIDMwICAgIGZ1bmN0aW9uIHRlc3RBbm9ueW1vdXNGdW5jdGlvbigpIHsKIAogUEFV
U0UgQVQgdGVzdEV2YWw6Mjk6MgogICAgICAyNSAgICAgICAgbGV0IGJlZm9yZSA9IDE7CkBAIC0x
MzUsMTYgKzEzNSwxNiBAQCBQQVVTRSBBVCB0ZXN0RXZhbDoyOToyCiAgICAgIDI3ICAgICAgICBs
ZXQgYWZ0ZXIgPSAyOwogIC0+ICAyOCAgICB9fAogICAgICAyOSAgICAKLSAgICAgMzAgICAgZnVu
Y3Rpb24gdGVzdElubmVyRnVuY3Rpb24oKSB7CisgICAgIDMwICAgIGZ1bmN0aW9uIHRlc3RBbm9u
eW1vdXNGdW5jdGlvbigpIHsKICAgICAgMzEgICAgICAgIChmdW5jdGlvbigpIHsKIAogUkVTVU1F
RAogCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIuc3RlcE92ZXIuaW5uZXJGdW5jdGlv
bgorLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnN0ZXBPdmVyLmFub255bW91c0Z1bmN0
aW9uCiBQQVVTRUQgKGRlYnVnZ2VyLXN0YXRlbWVudCkKIFBBVVNFIEFUIDxhbm9ueW1vdXM+OjMz
OjkKICAgICAgMjkgICAgCi0gICAgIDMwICAgIGZ1bmN0aW9uIHRlc3RJbm5lckZ1bmN0aW9uKCkg
eworICAgICAzMCAgICBmdW5jdGlvbiB0ZXN0QW5vbnltb3VzRnVuY3Rpb24oKSB7CiAgICAgIDMx
ICAgICAgICAoZnVuY3Rpb24oKSB7CiAgLT4gIDMyICAgICAgICAgICAgfGRlYnVnZ2VyOwogICAg
ICAzMyAgICAgICAgICAgIGxldCBpbm5lciA9IDE7CkBAIC0xNTIsNyArMTUyLDcgQEAgUEFVU0Ug
QVQgPGFub255bW91cz46MzM6OQogICAgICAzNSAgICAgICAgbGV0IG91dGVyID0gMjsKIAogUEFV
U0UgQVQgPGFub255bW91cz46MzQ6OQotICAgICAzMCAgICBmdW5jdGlvbiB0ZXN0SW5uZXJGdW5j
dGlvbigpIHsKKyAgICAgMzAgICAgZnVuY3Rpb24gdGVzdEFub255bW91c0Z1bmN0aW9uKCkgewog
ICAgICAzMSAgICAgICAgKGZ1bmN0aW9uKCkgewogICAgICAzMiAgICAgICAgICAgIGRlYnVnZ2Vy
OwogIC0+ICAzMyAgICAgICAgICAgIHxsZXQgaW5uZXIgPSAxOwpAQCAtMTY5LDcgKzE2OSw3IEBA
IFBBVVNFIEFUIDxhbm9ueW1vdXM+OjM1OjYKICAgICAgMzYgICAgfQogICAgICAzNyAgICAKIAot
UEFVU0UgQVQgdGVzdElubmVyRnVuY3Rpb246MzY6NQorUEFVU0UgQVQgdGVzdEFub255bW91c0Z1
bmN0aW9uOjM2OjUKICAgICAgMzIgICAgICAgICAgICBkZWJ1Z2dlcjsKICAgICAgMzMgICAgICAg
ICAgICBsZXQgaW5uZXIgPSAxOwogICAgICAzNCAgICAgICAgfSkoKTsKQEAgLTE3OCw3ICsxNzgs
NyBAQCBQQVVTRSBBVCB0ZXN0SW5uZXJGdW5jdGlvbjozNjo1CiAgICAgIDM3ICAgIAogICAgICAz
OCAgICBmdW5jdGlvbiB0ZXN0Q29tbWFzKCkgewogCi1QQVVTRSBBVCB0ZXN0SW5uZXJGdW5jdGlv
bjozNzoyCitQQVVTRSBBVCB0ZXN0QW5vbnltb3VzRnVuY3Rpb246Mzc6MgogICAgICAzMyAgICAg
ICAgICAgIGxldCBpbm5lciA9IDE7CiAgICAgIDM0ICAgICAgICB9KSgpOwogICAgICAzNSAgICAg
ICAgbGV0IG91dGVyID0gMjsKQEAgLTIxNiw3ICsyMTYsNyBAQCBQQVVTRSBBVCB0ZXN0Q29tbWFz
OjQyOjkKICAtPiAgNDEgICAgICAgICAgICB8eSA9IDIsCiAgICAgIDQyICAgICAgICAgICAgeiA9
IDM7CiAgICAgIDQzICAgICAgICBhKCksIGIoKSwgYygpOwotICAgICA0NCAgICAgICAgdHJ1ZSAm
JiAoYSgpLCBiKCksIGMoKSk7CisgICAgIDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgYygp
KSAmJiB0cnVlOwogCiBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQzOjkKICAgICAgMzkgICAgICAgIGRl
YnVnZ2VyOwpAQCAtMjI0LDcgKzIyNCw3IEBAIFBBVVNFIEFUIHRlc3RDb21tYXM6NDM6OQogICAg
ICA0MSAgICAgICAgICAgIHkgPSAyLAogIC0+ICA0MiAgICAgICAgICAgIHx6ID0gMzsKICAgICAg
NDMgICAgICAgIGEoKSwgYigpLCBjKCk7Ci0gICAgIDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIo
KSwgYygpKTsKKyAgICAgNDQgICAgICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkpICYmIHRydWU7
CiAgICAgIDQ1ICAgIH0KIAogUEFVU0UgQVQgdGVzdENvbW1hczo0NDo1CkBAIC0yMzIsNyArMjMy
LDcgQEAgUEFVU0UgQVQgdGVzdENvbW1hczo0NDo1CiAgICAgIDQxICAgICAgICAgICAgeSA9IDIs
CiAgICAgIDQyICAgICAgICAgICAgeiA9IDM7CiAgLT4gIDQzICAgICAgICB8YSgpLCBiKCksIGMo
KTsKLSAgICAgNDQgICAgICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkpOworICAgICA0NCAgICAg
ICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSkgJiYgdHJ1ZTsKICAgICAgNDUgICAgfQogICAgICA0
NiAgICAKIApAQCAtMjQxLDcgKzI0MSw3IEBAIFBBVVNFIEFUIHRlc3RDb21tYXM6NDQ6MTAKICAg
ICAgNDEgICAgICAgICAgICB5ID0gMiwKICAgICAgNDIgICAgICAgICAgICB6ID0gMzsKICAtPiAg
NDMgICAgICAgIGEoKSwgfGIoKSwgYygpOwotICAgICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgpLCBi
KCksIGMoKSk7CisgICAgIDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKSAmJiB0cnVl
OwogICAgICA0NSAgICB9CiAgICAgIDQ2ICAgIAogCkBAIC0yNTAsNyArMjUwLDcgQEAgUEFVU0Ug
QVQgdGVzdENvbW1hczo0NDoxNQogICAgICA0MSAgICAgICAgICAgIHkgPSAyLAogICAgICA0MiAg
ICAgICAgICAgIHogPSAzOwogIC0+ICA0MyAgICAgICAgYSgpLCBiKCksIHxjKCk7Ci0gICAgIDQ0
ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKTsKKyAgICAgNDQgICAgICAgIHRydWUgJiYg
KGEoKSwgYigpLCBjKCkpICYmIHRydWU7CiAgICAgIDQ1ICAgIH0KICAgICAgNDYgICAgCiAKQEAg
LTI1OCwzNCArMjU4LDcgQEAgUEFVU0UgQVQgdGVzdENvbW1hczo0NTo1CiAgICAgIDQxICAgICAg
ICAgICAgeSA9IDIsCiAgICAgIDQyICAgICAgICAgICAgeiA9IDM7CiAgICAgIDQzICAgICAgICBh
KCksIGIoKSwgYygpOwotIC0+ICA0NCAgICAgICAgfHRydWUgJiYgKGEoKSwgYigpLCBjKCkpOwot
ICAgICA0NSAgICB9Ci0gICAgIDQ2ICAgIAotICAgICA0NyAgICBmdW5jdGlvbiB0ZXN0Q2hhaW5l
ZEV4cHJlc3Npb25zKCkgewotCi1QQVVTRSBBVCB0ZXN0Q29tbWFzOjQ1OjE0Ci0gICAgIDQxICAg
ICAgICAgICAgeSA9IDIsCi0gICAgIDQyICAgICAgICAgICAgeiA9IDM7Ci0gICAgIDQzICAgICAg
ICBhKCksIGIoKSwgYygpOwotIC0+ICA0NCAgICAgICAgdHJ1ZSAmJiAofGEoKSwgYigpLCBjKCkp
OwotICAgICA0NSAgICB9Ci0gICAgIDQ2ICAgIAotICAgICA0NyAgICBmdW5jdGlvbiB0ZXN0Q2hh
aW5lZEV4cHJlc3Npb25zKCkgewotCi1QQVVTRSBBVCB0ZXN0Q29tbWFzOjQ1OjE5Ci0gICAgIDQx
ICAgICAgICAgICAgeSA9IDIsCi0gICAgIDQyICAgICAgICAgICAgeiA9IDM7Ci0gICAgIDQzICAg
ICAgICBhKCksIGIoKSwgYygpOwotIC0+ICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgpLCB8YigpLCBj
KCkpOwotICAgICA0NSAgICB9Ci0gICAgIDQ2ICAgIAotICAgICA0NyAgICBmdW5jdGlvbiB0ZXN0
Q2hhaW5lZEV4cHJlc3Npb25zKCkgewotCi1QQVVTRSBBVCB0ZXN0Q29tbWFzOjQ1OjI0Ci0gICAg
IDQxICAgICAgICAgICAgeSA9IDIsCi0gICAgIDQyICAgICAgICAgICAgeiA9IDM7Ci0gICAgIDQz
ICAgICAgICBhKCksIGIoKSwgYygpOwotIC0+ICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgpLCBiKCks
IHxjKCkpOworIC0+ICA0NCAgICAgICAgfHRydWUgJiYgKGEoKSwgYigpLCBjKCkpICYmIHRydWU7
CiAgICAgIDQ1ICAgIH0KICAgICAgNDYgICAgCiAgICAgIDQ3ICAgIGZ1bmN0aW9uIHRlc3RDaGFp
bmVkRXhwcmVzc2lvbnMoKSB7CkBAIC0yOTMsNyArMjY2LDcgQEAgUEFVU0UgQVQgdGVzdENvbW1h
czo0NToyNAogUEFVU0UgQVQgdGVzdENvbW1hczo0NjoyCiAgICAgIDQyICAgICAgICAgICAgeiA9
IDM7CiAgICAgIDQzICAgICAgICBhKCksIGIoKSwgYygpOwotICAgICA0NCAgICAgICAgdHJ1ZSAm
JiAoYSgpLCBiKCksIGMoKSk7CisgICAgIDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgYygp
KSAmJiB0cnVlOwogIC0+ICA0NSAgICB9fAogICAgICA0NiAgICAKICAgICAgNDcgICAgZnVuY3Rp
b24gdGVzdENoYWluZWRFeHByZXNzaW9ucygpIHsKQEAgLTMxOSw3ICsyOTIsNyBAQCBQQVVTRSBB
VCB0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zOjUwOjUKICAtPiAgNDkgICAgICAgIHxhKCkgJiYgYigp
ICYmIGMoKTsKICAgICAgNTAgICAgfQogICAgICA1MSAgICAKLSAgICAgNTIgICAgLy8gLS0tLS0t
LS0tCisgICAgIDUyICAgIGZ1bmN0aW9uIHRlc3REZWNsYXJhdGlvbnMoKSB7CiAKIFBBVVNFIEFU
IHRlc3RDaGFpbmVkRXhwcmVzc2lvbnM6NTE6MgogICAgICA0NyAgICBmdW5jdGlvbiB0ZXN0Q2hh
aW5lZEV4cHJlc3Npb25zKCkgewpAQCAtMzI3LDggKzMwMCw5NyBAQCBQQVVTRSBBVCB0ZXN0Q2hh
aW5lZEV4cHJlc3Npb25zOjUxOjIKICAgICAgNDkgICAgICAgIGEoKSAmJiBiKCkgJiYgYygpOwog
IC0+ICA1MCAgICB9fAogICAgICA1MSAgICAKLSAgICAgNTIgICAgLy8gLS0tLS0tLS0tCi0gICAg
IDUzICAgIAorICAgICA1MiAgICBmdW5jdGlvbiB0ZXN0RGVjbGFyYXRpb25zKCkgeworICAgICA1
MyAgICAgICAgZGVidWdnZXI7CisKK1JFU1VNRUQKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IERl
YnVnZ2VyLnN0ZXBPdmVyLmRlY2xhcmF0aW9ucworUEFVU0VEIChkZWJ1Z2dlci1zdGF0ZW1lbnQp
CitQQVVTRSBBVCB0ZXN0RGVjbGFyYXRpb25zOjU0OjUKKyAgICAgNTAgICAgfQorICAgICA1MSAg
ICAKKyAgICAgNTIgICAgZnVuY3Rpb24gdGVzdERlY2xhcmF0aW9ucygpIHsKKyAtPiAgNTMgICAg
ICAgIHxkZWJ1Z2dlcjsKKyAgICAgNTQgICAgICAgIGxldCB4ID0gYSgpLAorICAgICA1NSAgICAg
ICAgICAgIHkgPSBiKCksCisgICAgIDU2ICAgICAgICAgICAgeiA9IGMoKTsKKworUEFVU0UgQVQg
dGVzdERlY2xhcmF0aW9uczo1NTo1CisgICAgIDUxICAgIAorICAgICA1MiAgICBmdW5jdGlvbiB0
ZXN0RGVjbGFyYXRpb25zKCkgeworICAgICA1MyAgICAgICAgZGVidWdnZXI7CisgLT4gIDU0ICAg
ICAgICB8bGV0IHggPSBhKCksCisgICAgIDU1ICAgICAgICAgICAgeSA9IGIoKSwKKyAgICAgNTYg
ICAgICAgICAgICB6ID0gYygpOworICAgICA1NyAgICB9CisKK1BBVVNFIEFUIHRlc3REZWNsYXJh
dGlvbnM6NTY6OQorICAgICA1MiAgICBmdW5jdGlvbiB0ZXN0RGVjbGFyYXRpb25zKCkgeworICAg
ICA1MyAgICAgICAgZGVidWdnZXI7CisgICAgIDU0ICAgICAgICBsZXQgeCA9IGEoKSwKKyAtPiAg
NTUgICAgICAgICAgICB8eSA9IGIoKSwKKyAgICAgNTYgICAgICAgICAgICB6ID0gYygpOworICAg
ICA1NyAgICB9CisgICAgIDU4ICAgIAorCitQQVVTRSBBVCB0ZXN0RGVjbGFyYXRpb25zOjU3OjkK
KyAgICAgNTMgICAgICAgIGRlYnVnZ2VyOworICAgICA1NCAgICAgICAgbGV0IHggPSBhKCksCisg
ICAgIDU1ICAgICAgICAgICAgeSA9IGIoKSwKKyAtPiAgNTYgICAgICAgICAgICB8eiA9IGMoKTsK
KyAgICAgNTcgICAgfQorICAgICA1OCAgICAKKyAgICAgNTkgICAgZnVuY3Rpb24gdGVzdElubmVy
RnVuY3Rpb24oKSB7CisKK1BBVVNFIEFUIHRlc3REZWNsYXJhdGlvbnM6NTg6MgorICAgICA1NCAg
ICAgICAgbGV0IHggPSBhKCksCisgICAgIDU1ICAgICAgICAgICAgeSA9IGIoKSwKKyAgICAgNTYg
ICAgICAgICAgICB6ID0gYygpOworIC0+ICA1NyAgICB9fAorICAgICA1OCAgICAKKyAgICAgNTkg
ICAgZnVuY3Rpb24gdGVzdElubmVyRnVuY3Rpb24oKSB7CisgICAgIDYwICAgICAgICBmdW5jdGlv
biBhbHBoYSgpIHsKKworUkVTVU1FRAorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIu
c3RlcE92ZXIuaW5uZXJGdW5jdGlvbgorUEFVU0VEIChkZWJ1Z2dlci1zdGF0ZW1lbnQpCitQQVVT
RSBBVCBiZXRhOjY1OjkKKyAgICAgNjEgICAgICAgICAgICBiZXRhKCk7CisgICAgIDYyICAgICAg
ICB9CisgICAgIDYzICAgICAgICBmdW5jdGlvbiBiZXRhKCkgeworIC0+ICA2NCAgICAgICAgICAg
IHxkZWJ1Z2dlcjsKKyAgICAgNjUgICAgICAgIH0KKyAgICAgNjYgICAgICAgIGFscGhhKCk7Cisg
ICAgIDY3ICAgIH0KKworUEFVU0UgQVQgYmV0YTo2Njo2CisgICAgIDYyICAgICAgICB9CisgICAg
IDYzICAgICAgICBmdW5jdGlvbiBiZXRhKCkgeworICAgICA2NCAgICAgICAgICAgIGRlYnVnZ2Vy
OworIC0+ICA2NSAgICAgICAgfXwKKyAgICAgNjYgICAgICAgIGFscGhhKCk7CisgICAgIDY3ICAg
IH0KKyAgICAgNjggICAgCisKK1BBVVNFIEFUIGFscGhhOjYzOjYKKyAgICAgNTkgICAgZnVuY3Rp
b24gdGVzdElubmVyRnVuY3Rpb24oKSB7CisgICAgIDYwICAgICAgICBmdW5jdGlvbiBhbHBoYSgp
IHsKKyAgICAgNjEgICAgICAgICAgICBiZXRhKCk7CisgLT4gIDYyICAgICAgICB9fAorICAgICA2
MyAgICAgICAgZnVuY3Rpb24gYmV0YSgpIHsKKyAgICAgNjQgICAgICAgICAgICBkZWJ1Z2dlcjsK
KyAgICAgNjUgICAgICAgIH0KKworUEFVU0UgQVQgdGVzdElubmVyRnVuY3Rpb246Njg6MgorICAg
ICA2NCAgICAgICAgICAgIGRlYnVnZ2VyOworICAgICA2NSAgICAgICAgfQorICAgICA2NiAgICAg
ICAgYWxwaGEoKTsKKyAtPiAgNjcgICAgfXwKKyAgICAgNjggICAgCisgICAgIDY5ICAgIC8vIC0t
LS0tLS0tLQorICAgICA3MCAgICAKIAogUkVTVU1FRAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcE92ZXIuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwT3Zlci5odG1sCmluZGV4IDNiZmExNjIx
OTUwNjBhNTVhMTZhYmVjZDZiMTk1ZDQ5NjU5MDk2NDIuLjRlMDg5YmNlNGIyMWI5OWE0NzNlNDU0
ZDA1YzI0NzBjMzI5OTYwMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zdGVwcGluZy9zdGVwT3Zlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9zdGVwcGluZy9zdGVwT3Zlci5odG1sCkBAIC0yOCw3ICsyOCw3IEBAIGZ1bmN0aW9u
IHRlc3RFdmFsKCkgewogICAgIGxldCBhZnRlciA9IDI7CiB9CiAKLWZ1bmN0aW9uIHRlc3RJbm5l
ckZ1bmN0aW9uKCkgeworZnVuY3Rpb24gdGVzdEFub255bW91c0Z1bmN0aW9uKCkgewogICAgIChm
dW5jdGlvbigpIHsKICAgICAgICAgZGVidWdnZXI7CiAgICAgICAgIGxldCBpbm5lciA9IDE7CkBA
IC00Miw3ICs0Miw3IEBAIGZ1bmN0aW9uIHRlc3RDb21tYXMoKSB7CiAgICAgICAgIHkgPSAyLAog
ICAgICAgICB6ID0gMzsKICAgICBhKCksIGIoKSwgYygpOwotICAgIHRydWUgJiYgKGEoKSwgYigp
LCBjKCkpOworICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkpICYmIHRydWU7CiB9CiAKIGZ1bmN0
aW9uIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnMoKSB7CkBAIC01MCw2ICs1MCwyMyBAQCBmdW5jdGlv
biB0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zKCkgewogICAgIGEoKSAmJiBiKCkgJiYgYygpOwogfQog
CitmdW5jdGlvbiB0ZXN0RGVjbGFyYXRpb25zKCkgeworICAgIGRlYnVnZ2VyOworICAgIGxldCB4
ID0gYSgpLAorICAgICAgICB5ID0gYigpLAorICAgICAgICB6ID0gYygpOworfQorCitmdW5jdGlv
biB0ZXN0SW5uZXJGdW5jdGlvbigpIHsKKyAgICBmdW5jdGlvbiBhbHBoYSgpIHsKKyAgICAgICAg
YmV0YSgpOworICAgIH0KKyAgICBmdW5jdGlvbiBiZXRhKCkgeworICAgICAgICBkZWJ1Z2dlcjsK
KyAgICB9CisgICAgYWxwaGEoKTsKK30KKwogLy8gLS0tLS0tLS0tCiAKIGZ1bmN0aW9uIHRlc3Qo
KQpAQCAtODcsNyArMTA0LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgfSk7CiAKICAgICBhZGRU
ZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zdGVwT3Zlci5mdW5jdGlvbiIsCisg
ICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zdGVwT3Zlci5mdW5jdGlvbnMiLAogICAgICAgICBkZXNj
cmlwdGlvbjogInN0ZXAtb3ZlciBzaG91bGQgc3RlcCBvdmVyIGZ1bmN0aW9uIGNhbGxzLiIsCiAg
ICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RGdW5jdGlvbnMpIiwKICAgICB9KTsK
QEAgLTk5LDkgKzExNiw5IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIH0pOwogCiAgICAgYWRkVGVz
dENhc2UoewotICAgICAgICBuYW1lOiAiRGVidWdnZXIuc3RlcE92ZXIuaW5uZXJGdW5jdGlvbiIs
CisgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zdGVwT3Zlci5hbm9ueW1vdXNGdW5jdGlvbiIsCiAg
ICAgICAgIGRlc2NyaXB0aW9uOiAic3RlcC1vdmVyIHNob3VsZCBzdGVwIG91dCBvZiBhIGZ1bmN0
aW9uIHRvIGl0cyBjYWxsZXIuIiwKLSAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQodGVz
dElubmVyRnVuY3Rpb24pIiwKKyAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQodGVzdEFu
b255bW91c0Z1bmN0aW9uKSIsCiAgICAgfSk7CiAKICAgICBhZGRUZXN0Q2FzZSh7CkBAIC0xMTYs
NiArMTMzLDE4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBleHByZXNzaW9uOiAic2V0VGlt
ZW91dCh0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zKSIsCiAgICAgfSk7CiAKKyAgICBhZGRUZXN0Q2Fz
ZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zdGVwT3Zlci5kZWNsYXJhdGlvbnMiLAorICAg
ICAgICBkZXNjcmlwdGlvbjogInN0ZXAtb3ZlciBzaG91bGQgc3RlcCBvdmVyIGVhY2ggZGVjbGFy
YXRpb24uIiwKKyAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQodGVzdERlY2xhcmF0aW9u
cykiLAorICAgIH0pOworCisgICAgYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRGVidWdn
ZXIuc3RlcE92ZXIuaW5uZXJGdW5jdGlvbiIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAic3RlcC1v
dmVyIHNob3VsZCBzdGVwIG91dCBvZiBhIGZ1bmN0aW9uIHRvIGl0cyBjYWxsZXIuIiwKKyAgICAg
ICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQodGVzdElubmVyRnVuY3Rpb24pIiwKKyAgICB9KTsK
KwogICAgIGxvYWRNYWluUGFnZUNvbnRlbnQoKS50aGVuKCgpID0+IHsKICAgICAgICAgc3VpdGUu
cnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcHBpbmctY29udHJvbC1mbG93LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwcGlu
Zy1jb250cm9sLWZsb3ctZXhwZWN0ZWQudHh0CmluZGV4IDEwYTZlZmIyNDk1ZGMwOGMwOWI2Y2M0
MGMyMjZkN2RjZDgyMWUzYmIuLjlkNmQ3NGU3NzdmMjczMjVkZjVhOTk4YmQ4NDUwOTY0ZmNhNDRm
OTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9z
dGVwcGluZy1jb250cm9sLWZsb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwcGluZy1jb250cm9sLWZsb3ctZXhwZWN0ZWQudHh0
CkBAIC04MjgsNyArODI4LDcgQEAgUEFTUzogU2hvdWxkIGhhdmUgdXNlZCBhbGwgc3RlcHMuCiAK
IC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zdGVwcGluZy5JZldpdGhDb21tYXMKIEVY
UFJFU1NJT046IHNldFRpbWVvdXQoZW50cnlJZldpdGhDb21tYXMpCi1TVEVQUzogb3Zlciwgb3Zl
ciwgb3Zlciwgb3Zlciwgb3ZlciwgcmVzdW1lCitTVEVQUzogb3ZlciwgbmV4dCwgbmV4dCwgbmV4
dCwgb3ZlciwgcmVzdW1lCiBQQVVTRUQgKGRlYnVnZ2VyLXN0YXRlbWVudCkKIFBBVVNFIEFUIGVu
dHJ5SWZXaXRoQ29tbWFzOjExMjo1CiAgICAgMTA4ICAgIH0KQEAgLTg0OSw3ICs4NDksNyBAQCBQ
QVVTRSBBVCBlbnRyeUlmV2l0aENvbW1hczoxMTM6OQogICAgIDExNCAgICB9CiAgICAgMTE1ICAg
IAogCi1BQ1RJT046IHN0ZXAtb3ZlcgorQUNUSU9OOiBzdGVwLW5leHQKIFBBVVNFIEFUIGVudHJ5
SWZXaXRoQ29tbWFzOjExMzoxNAogICAgIDEwOSAgICAKICAgICAxMTAgICAgZnVuY3Rpb24gZW50
cnlJZldpdGhDb21tYXMoKSB7CkBAIC04NTksNyArODU5LDcgQEAgUEFVU0UgQVQgZW50cnlJZldp
dGhDb21tYXM6MTEzOjE0CiAgICAgMTE0ICAgIH0KICAgICAxMTUgICAgCiAKLUFDVElPTjogc3Rl
cC1vdmVyCitBQ1RJT046IHN0ZXAtbmV4dAogUEFVU0UgQVQgZW50cnlJZldpdGhDb21tYXM6MTEz
OjE5CiAgICAgMTA5ICAgIAogICAgIDExMCAgICBmdW5jdGlvbiBlbnRyeUlmV2l0aENvbW1hcygp
IHsKQEAgLTg2OSw3ICs4NjksNyBAQCBQQVVTRSBBVCBlbnRyeUlmV2l0aENvbW1hczoxMTM6MTkK
ICAgICAxMTQgICAgfQogICAgIDExNSAgICAKIAotQUNUSU9OOiBzdGVwLW92ZXIKK0FDVElPTjog
c3RlcC1uZXh0CiBQQVVTRSBBVCBlbnRyeUlmV2l0aENvbW1hczoxMTQ6OQogICAgIDExMCAgICBm
dW5jdGlvbiBlbnRyeUlmV2l0aENvbW1hcygpIHsKICAgICAxMTEgICAgICAgIGRlYnVnZ2VyOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBw
aW5nLWNvbnRyb2wtZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0
ZXBwaW5nL3N0ZXBwaW5nLWNvbnRyb2wtZmxvdy5odG1sCmluZGV4IDRjYzg3ZGYxYTQ2YzUzZjUx
NmFmMjg1OWQ2MmZkZGIyMzhmMWY2N2IuLmNhYjU5NGJlNjUzMDAxOTg4MzdhNmNiYjBjYWI2OTI2
MTJmMGE1ODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVw
cGluZy9zdGVwcGluZy1jb250cm9sLWZsb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcHBpbmctY29udHJvbC1mbG93Lmh0bWwKQEAgLTI5OCw5
ICsyOTgsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVv
dXQoZW50cnlJZldpdGhDb21tYXMpIiwKICAgICAgICAgc3RlcHM6IFsKICAgICAgICAgICAgICJv
dmVyIiwKLSAgICAgICAgICAgICAgICAib3ZlciIsIC8vIGEoKQotICAgICAgICAgICAgICAgICJv
dmVyIiwgLy8gYigpCi0gICAgICAgICAgICAgICAgIm92ZXIiLCAvLyBhKCkKKyAgICAgICAgICAg
ICAgICAibmV4dCIsIC8vIGEoKQorICAgICAgICAgICAgICAgICJuZXh0IiwgLy8gYigpCisgICAg
ICAgICAgICAgICAgIm5leHQiLCAvLyBhKCkKICAgICAgICAgICAgICAgICAib3ZlciIsIC8vIGEo
KSAtIGxlYXZpbmcgZW50cnkKICAgICAgICAgICAgICJyZXN1bWUiLAogICAgICAgICBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcHBpbmct
ZnVuY3Rpb24tY2FsbHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3N0ZXBwaW5nL3N0ZXBwaW5nLWZ1bmN0aW9uLWNhbGxzLWV4cGVjdGVkLnR4dAppbmRleCBj
ODlhNmE3Y2U1Nzg1ZWEyNmI0MTU5Y2UxNjdmOTJkMTljZGQ1MjFhLi5kYWM1ZTY2ZjU0ZWZiYzJi
M2Q3OWExMTg0MmU1Y2Q5NTQ4NDgxYjFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcHBpbmctZnVuY3Rpb24tY2FsbHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwcGluZy1m
dW5jdGlvbi1jYWxscy1leHBlY3RlZC50eHQKQEAgLTExOCw3ICsxMTgsNyBAQCBQQVNTOiBTaG91
bGQgaGF2ZSB1c2VkIGFsbCBzdGVwcy4KIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2Vy
LnN0ZXBwaW5nLk11bHRpcGxlQ2FsbHNJbk9uZVN0YXRlbWVudDEKIEVYUFJFU1NJT046IHNldFRp
bWVvdXQoZW50cnlNdWx0aXBsZUNhbGxzSW5PbmVTdGF0ZW1lbnQpCi1TVEVQUzogb3ZlciwgaW4s
IG91dCwgaW4sIG91dCwgaW4sIG91dCwgcmVzdW1lCitTVEVQUzogb3ZlciwgbmV4dCwgaW4sIG91
dCwgaW4sIG91dCwgaW4sIG91dCwgcmVzdW1lCiBQQVVTRUQgKGRlYnVnZ2VyLXN0YXRlbWVudCkK
IFBBVVNFIEFUIGVudHJ5TXVsdGlwbGVDYWxsc0luT25lU3RhdGVtZW50OjI1OjUKICAgICAgMjEg
ICAgfQpAQCAtMTM5LDYgKzEzOSwxNiBAQCBQQVVTRSBBVCBlbnRyeU11bHRpcGxlQ2FsbHNJbk9u
ZVN0YXRlbWVudDoyNjo1CiAgICAgIDI3ICAgIAogICAgICAyOCAgICBmdW5jdGlvbiBlbnRyeU11
bHRpbGluZVN0YXRlbWVudCgpIHsKIAorQUNUSU9OOiBzdGVwLW5leHQKK1BBVVNFIEFUIGVudHJ5
TXVsdGlwbGVDYWxsc0luT25lU3RhdGVtZW50OjI2OjkKKyAgICAgMjIgICAgCisgICAgIDIzICAg
IGZ1bmN0aW9uIGVudHJ5TXVsdGlwbGVDYWxsc0luT25lU3RhdGVtZW50KCkgeworICAgICAyNCAg
ICAgICAgZGVidWdnZXI7CisgLT4gIDI1ICAgICAgICBhZGQofGEoKSwgYigpKTsKKyAgICAgMjYg
ICAgfQorICAgICAyNyAgICAKKyAgICAgMjggICAgZnVuY3Rpb24gZW50cnlNdWx0aWxpbmVTdGF0
ZW1lbnQoKSB7CisKIEFDVElPTjogc3RlcC1pbgogUEFVU0UgQVQgYToxMjo1CiAgICAgICA4ICAg
IH0KQEAgLTIwNSw3ICsyMTUsNyBAQCBQQVNTOiBTaG91bGQgaGF2ZSB1c2VkIGFsbCBzdGVwcy4K
IAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnN0ZXBwaW5nLk11bHRpcGxlQ2FsbHNJ
bk9uZVN0YXRlbWVudDIKIEVYUFJFU1NJT046IHNldFRpbWVvdXQoZW50cnlNdWx0aXBsZUNhbGxz
SW5PbmVTdGF0ZW1lbnQpCi1TVEVQUzogb3ZlciwgaW4sIG91dCwgb3ZlciwgcmVzdW1lCitTVEVQ
Uzogb3ZlciwgbmV4dCwgaW4sIG91dCwgb3ZlciwgcmVzdW1lCiBQQVVTRUQgKGRlYnVnZ2VyLXN0
YXRlbWVudCkKIFBBVVNFIEFUIGVudHJ5TXVsdGlwbGVDYWxsc0luT25lU3RhdGVtZW50OjI1OjUK
ICAgICAgMjEgICAgfQpAQCAtMjI2LDYgKzIzNiwxNiBAQCBQQVVTRSBBVCBlbnRyeU11bHRpcGxl
Q2FsbHNJbk9uZVN0YXRlbWVudDoyNjo1CiAgICAgIDI3ICAgIAogICAgICAyOCAgICBmdW5jdGlv
biBlbnRyeU11bHRpbGluZVN0YXRlbWVudCgpIHsKIAorQUNUSU9OOiBzdGVwLW5leHQKK1BBVVNF
IEFUIGVudHJ5TXVsdGlwbGVDYWxsc0luT25lU3RhdGVtZW50OjI2OjkKKyAgICAgMjIgICAgCisg
ICAgIDIzICAgIGZ1bmN0aW9uIGVudHJ5TXVsdGlwbGVDYWxsc0luT25lU3RhdGVtZW50KCkgewor
ICAgICAyNCAgICAgICAgZGVidWdnZXI7CisgLT4gIDI1ICAgICAgICBhZGQofGEoKSwgYigpKTsK
KyAgICAgMjYgICAgfQorICAgICAyNyAgICAKKyAgICAgMjggICAgZnVuY3Rpb24gZW50cnlNdWx0
aWxpbmVTdGF0ZW1lbnQoKSB7CisKIEFDVElPTjogc3RlcC1pbgogUEFVU0UgQVQgYToxMjo1CiAg
ICAgICA4ICAgIH0KQEAgLTI2Miw3ICsyODIsNyBAQCBQQVNTOiBTaG91bGQgaGF2ZSB1c2VkIGFs
bCBzdGVwcy4KIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnN0ZXBwaW5nLk11bHRp
cGxlQ2FsbHNJbk9uZVN0YXRlbWVudDMKIEVYUFJFU1NJT046IHNldFRpbWVvdXQoZW50cnlNdWx0
aXBsZUNhbGxzSW5PbmVTdGF0ZW1lbnQpCi1TVEVQUzogb3ZlciwgaW4sIGluLCBpbiwgaW4sIGlu
LCBpbiwgaW4sIGluLCBpbiwgcmVzdW1lCitTVEVQUzogb3ZlciwgaW4sIGluLCBpbiwgaW4sIGlu
LCBpbiwgaW4sIGluLCBpbiwgaW4sIHJlc3VtZQogUEFVU0VEIChkZWJ1Z2dlci1zdGF0ZW1lbnQp
CiBQQVVTRSBBVCBlbnRyeU11bHRpcGxlQ2FsbHNJbk9uZVN0YXRlbWVudDoyNTo1CiAgICAgIDIx
ICAgIH0KQEAgLTI4Myw2ICszMDMsMTYgQEAgUEFVU0UgQVQgZW50cnlNdWx0aXBsZUNhbGxzSW5P
bmVTdGF0ZW1lbnQ6MjY6NQogICAgICAyNyAgICAKICAgICAgMjggICAgZnVuY3Rpb24gZW50cnlN
dWx0aWxpbmVTdGF0ZW1lbnQoKSB7CiAKK0FDVElPTjogc3RlcC1pbgorUEFVU0UgQVQgZW50cnlN
dWx0aXBsZUNhbGxzSW5PbmVTdGF0ZW1lbnQ6MjY6OQorICAgICAyMiAgICAKKyAgICAgMjMgICAg
ZnVuY3Rpb24gZW50cnlNdWx0aXBsZUNhbGxzSW5PbmVTdGF0ZW1lbnQoKSB7CisgICAgIDI0ICAg
ICAgICBkZWJ1Z2dlcjsKKyAtPiAgMjUgICAgICAgIGFkZCh8YSgpLCBiKCkpOworICAgICAyNiAg
ICB9CisgICAgIDI3ICAgIAorICAgICAyOCAgICBmdW5jdGlvbiBlbnRyeU11bHRpbGluZVN0YXRl
bWVudCgpIHsKKwogQUNUSU9OOiBzdGVwLWluCiBQQVVTRSBBVCBhOjEyOjUKICAgICAgIDggICAg
fQpAQCAtMzc5LDcgKzQwOSw3IEBAIFBBU1M6IFNob3VsZCBoYXZlIHVzZWQgYWxsIHN0ZXBzLgog
CiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIuc3RlcHBpbmcuTXVsdGlwbGVDYWxsc0lu
T25lU3RhdGVtZW50NAogRVhQUkVTU0lPTjogc2V0VGltZW91dChlbnRyeU11bHRpcGxlQ2FsbHNJ
bk9uZVN0YXRlbWVudCkKLVNURVBTOiBvdmVyLCBpbiwgb3Zlciwgb3ZlciwgaW4sIG92ZXIsIG92
ZXIsIGluLCBvdmVyLCBvdmVyLCByZXN1bWUKK1NURVBTOiBvdmVyLCBuZXh0LCBpbiwgb3Zlciwg
b3ZlciwgaW4sIG92ZXIsIG92ZXIsIGluLCBvdmVyLCBvdmVyLCByZXN1bWUKIFBBVVNFRCAoZGVi
dWdnZXItc3RhdGVtZW50KQogUEFVU0UgQVQgZW50cnlNdWx0aXBsZUNhbGxzSW5PbmVTdGF0ZW1l
bnQ6MjU6NQogICAgICAyMSAgICB9CkBAIC00MDAsNiArNDMwLDE2IEBAIFBBVVNFIEFUIGVudHJ5
TXVsdGlwbGVDYWxsc0luT25lU3RhdGVtZW50OjI2OjUKICAgICAgMjcgICAgCiAgICAgIDI4ICAg
IGZ1bmN0aW9uIGVudHJ5TXVsdGlsaW5lU3RhdGVtZW50KCkgewogCitBQ1RJT046IHN0ZXAtbmV4
dAorUEFVU0UgQVQgZW50cnlNdWx0aXBsZUNhbGxzSW5PbmVTdGF0ZW1lbnQ6MjY6OQorICAgICAy
MiAgICAKKyAgICAgMjMgICAgZnVuY3Rpb24gZW50cnlNdWx0aXBsZUNhbGxzSW5PbmVTdGF0ZW1l
bnQoKSB7CisgICAgIDI0ICAgICAgICBkZWJ1Z2dlcjsKKyAtPiAgMjUgICAgICAgIGFkZCh8YSgp
LCBiKCkpOworICAgICAyNiAgICB9CisgICAgIDI3ICAgIAorICAgICAyOCAgICBmdW5jdGlvbiBl
bnRyeU11bHRpbGluZVN0YXRlbWVudCgpIHsKKwogQUNUSU9OOiBzdGVwLWluCiBQQVVTRSBBVCBh
OjEyOjUKICAgICAgIDggICAgfQpAQCAtNTMzLDcgKzU3Myw3IEBAIFBBU1M6IFNob3VsZCBoYXZl
IHVzZWQgYWxsIHN0ZXBzLgogCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIuc3RlcHBp
bmcuTXVsdGlwbGVDYWxsc0luT25lU3RhdGVtZW50NgogRVhQUkVTU0lPTjogc2V0VGltZW91dChl
bnRyeU11bHRpbGluZVN0YXRlbWVudCkKLVNURVBTOiBvdmVyLCBpbiwgb3V0LCBvdmVyLCByZXN1
bWUKK1NURVBTOiBvdmVyLCBuZXh0LCBpbiwgb3V0LCBvdmVyLCByZXN1bWUKIFBBVVNFRCAoZGVi
dWdnZXItc3RhdGVtZW50KQogUEFVU0UgQVQgZW50cnlNdWx0aWxpbmVTdGF0ZW1lbnQ6MzA6NQog
ICAgICAyNiAgICB9CkBAIC01NTQsNiArNTk0LDE2IEBAIFBBVVNFIEFUIGVudHJ5TXVsdGlsaW5l
U3RhdGVtZW50OjMxOjUKICAgICAgMzIgICAgICAgICAgICAsCiAgICAgIDMzICAgICAgICAgICAg
YigpCiAKK0FDVElPTjogc3RlcC1uZXh0CitQQVVTRSBBVCBlbnRyeU11bHRpbGluZVN0YXRlbWVu
dDozMjo5CisgICAgIDI4ICAgIGZ1bmN0aW9uIGVudHJ5TXVsdGlsaW5lU3RhdGVtZW50KCkgewor
ICAgICAyOSAgICAgICAgZGVidWdnZXI7CisgICAgIDMwICAgICAgICBhZGQoCisgLT4gIDMxICAg
ICAgICAgICAgfGEoKQorICAgICAzMiAgICAgICAgICAgICwKKyAgICAgMzMgICAgICAgICAgICBi
KCkKKyAgICAgMzQgICAgICAgICk7CisKIEFDVElPTjogc3RlcC1pbgogUEFVU0UgQVQgYToxMjo1
CiAgICAgICA4ICAgIH0KQEAgLTcyNCw3ICs3NzQsNyBAQCBQQVNTOiBTaG91bGQgaGF2ZSB1c2Vk
IGFsbCBzdGVwcy4KIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnN0ZXBwaW5nLkNv
bXBsZXhTdGF0ZW1lbnQxCiBFWFBSRVNTSU9OOiBzZXRUaW1lb3V0KGVudHJ5Q29tcGxleFN0YXRl
bWVudCkKLVNURVBTOiBvdmVyLCBpbiwgb3V0LCBpbiwgb3V0LCByZXN1bWUKK1NURVBTOiBvdmVy
LCBuZXh0LCBpbiwgb3V0LCBpbiwgb3V0LCByZXN1bWUKIFBBVVNFRCAoZGVidWdnZXItc3RhdGVt
ZW50KQogUEFVU0UgQVQgZW50cnlDb21wbGV4U3RhdGVtZW50OjQ2OjUKICAgICAgNDIgICAgCkBA
IC03NDUsNiArNzk1LDE2IEBAIFBBVVNFIEFUIGVudHJ5Q29tcGxleFN0YXRlbWVudDo0Nzo1CiAg
ICAgIDQ4ICAgIAogICAgICA0OSAgICBmdW5jdGlvbiBlbnRyeUNvbW1hRXhwcmVzc2lvbigpIHsK
IAorQUNUSU9OOiBzdGVwLW5leHQKK1BBVVNFIEFUIGVudHJ5Q29tcGxleFN0YXRlbWVudDo0Nzo5
CisgICAgIDQzICAgIGZ1bmN0aW9uIGVudHJ5Q29tcGxleFN0YXRlbWVudCgpIHsKKyAgICAgNDQg
ICAgICAgIHZhciB4OworICAgICA0NSAgICAgICAgZGVidWdnZXI7CisgLT4gIDQ2ICAgICAgICBh
ZGQofGEoKSwgeCA9IDEsIGIoKSk7CisgICAgIDQ3ICAgIH0KKyAgICAgNDggICAgCisgICAgIDQ5
ICAgIGZ1bmN0aW9uIGVudHJ5Q29tbWFFeHByZXNzaW9uKCkgeworCiBBQ1RJT046IHN0ZXAtaW4K
IFBBVVNFIEFUIGE6MTI6NQogICAgICAgOCAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcHBpbmctZnVuY3Rpb24tY2FsbHMuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwcGluZy1mdW5jdGlv
bi1jYWxscy5odG1sCmluZGV4IDExZGNhNDFiNmE1NmE2NWM5NDYxMWQyYjZlNTJjMzVmNDU3OGJl
YTguLjFhODVlMWZmYTZmMGRhNTA4M2JjOGRmN2NlMTk3YTMyN2JhZWE2OGYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwcGluZy1mdW5jdGlv
bi1jYWxscy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGlu
Zy9zdGVwcGluZy1mdW5jdGlvbi1jYWxscy5odG1sCkBAIC0xNDEsNiArMTQxLDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgICAgIC8vIGFkZChhKCksIGIoKSkKICAgICAgICAgc3RlcHM6IFsKICAg
ICAgICAgICAgICJvdmVyIiwKKyAgICAgICAgICAgICAgICAibmV4dCIsIC8vIGEoKQogICAgICAg
ICAgICAgICAgICJpbiIsICAgLy8gaW50byBhCiAgICAgICAgICAgICAgICAgIm91dCIsICAvLyBv
dXQgb2YgYQogICAgICAgICAgICAgICAgICJpbiIsICAgLy8gaW50byBiCkBAIC0xNTgsNiArMTU5
LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIC8vIGFkZChhKCksIGIoKSkKICAgICAgICAg
c3RlcHM6IFsKICAgICAgICAgICAgICJvdmVyIiwKKyAgICAgICAgICAgICAgICAibmV4dCIsIC8v
IGEoKQogICAgICAgICAgICAgICAgICJpbiIsICAgLy8gaW50byBhCiAgICAgICAgICAgICAgICAg
Im91dCIsICAvLyBvdXQgb2YgYQogICAgICAgICAgICAgICAgICJvdmVyIiwgLy8gY29tcGxldGU6
IGFkZChhKCksIGIoKSkKQEAgLTE3Miw2ICsxNzQsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAg
ICAgLy8gYWRkKGEoKSwgYigpKQogICAgICAgICBzdGVwczogWwogICAgICAgICAgICAgIm92ZXIi
LAorICAgICAgICAgICAgICAgICJpbiIsIC8vIGEoKQogICAgICAgICAgICAgICAgICJpbiIsIC8v
IGludG8gYSAtIGJlZm9yZSByZXR1cm4gc3RhdGVtZW50CiAgICAgICAgICAgICAgICAgImluIiwg
Ly8gbGVhdmluZyBhCiAgICAgICAgICAgICAgICAgImluIiwgLy8gYmVmb3JlIGIoKQpAQCAtMTky
LDYgKzE5NSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAvLyBhZGQoYSgpLCBiKCkpCiAg
ICAgICAgIHN0ZXBzOiBbCiAgICAgICAgICAgICAib3ZlciIsCisgICAgICAgICAgICAgICAgIm5l
eHQiLCAvLyBhKCkKICAgICAgICAgICAgICAgICAiaW4iLCAgIC8vIGludG8gYSAtIGJlZm9yZSBy
ZXR1cm4gc3RhdGVtZW50CiAgICAgICAgICAgICAgICAgIm92ZXIiLCAvLyBsZWF2aW5nIGEKICAg
ICAgICAgICAgICAgICAib3ZlciIsIC8vIGJlZm9yZSBiKCkKQEAgLTIzMiw2ICsyMzYsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICAgICAgLy8gKTsKICAgICAgICAgc3RlcHM6IFsKICAgICAgICAg
ICAgICJvdmVyIiwKKyAgICAgICAgICAgICAgICAibmV4dCIsIC8vIGEoKQogICAgICAgICAgICAg
ICAgICJpbiIsICAgLy8gaW50byBhCiAgICAgICAgICAgICAgICAgIm91dCIsICAvLyBvdXQgb2Yg
YQogICAgICAgICAgICAgICAgICJvdmVyIiwgLy8gY29tcGxldGU6IGFkZChhKCksIGIoKSkKQEAg
LTI3NiwxMSArMjgxLDEyIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAvLyBhZGQoYSgpLCB4
ID0gMSwgYigpKTsKICAgICAgICAgc3RlcHM6IFsKICAgICAgICAgICAgICJvdmVyIiwKLSAgICAg
ICAgICAgICAgICAiaW4iLCAgLy8gaW50byBhCi0gICAgICAgICAgICAgICAgIm91dCIsIC8vIG91
dCBvZiBhCi0gICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBPcHBvcnR1bml0eSB0byBw
YXVzZSBhdCBhc3NpZ25tZW50IGV4cHJlc3Npb25zLgotICAgICAgICAgICAgICAgICJpbiIsICAv
LyBpbnRvIGIKLSAgICAgICAgICAgICAgICAib3V0IiwgLy8gb3V0IG9mIGIKKyAgICAgICAgICAg
ICAgICAibmV4dCIsIC8vIGEoKQorICAgICAgICAgICAgICAgICJpbiIsICAgLy8gaW50byBhCisg
ICAgICAgICAgICAgICAgIm91dCIsICAvLyBvdXQgb2YgYQorICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gRklYTUU6IE9wcG9ydHVuaXR5IHRvIHBhdXNlIGF0IGFzc2lnbm1lbnQgZXhwcmVzc2lv
bnMuCisgICAgICAgICAgICAgICAgImluIiwgICAvLyBpbnRvIGIKKyAgICAgICAgICAgICAgICAi
b3V0IiwgIC8vIG91dCBvZiBiCiAgICAgICAgICAgICAicmVzdW1lIgogICAgICAgICBdCiAgICAg
fSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcv
c3RlcHBpbmctbG9vcHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3N0ZXBwaW5nL3N0ZXBwaW5nLWxvb3BzLWV4cGVjdGVkLnR4dAppbmRleCBjZWIzYjg5NjI0
NjUyOGNhMDE0MGEzYzlmYjA3MmQzY2VmODEyZDY3Li42Mzc5MTE3MzU4YzQ0MTk2NmY0ZWIwMGUx
ZWViMjk3NzA2NGU0NDU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc3RlcHBpbmcvc3RlcHBpbmctbG9vcHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwcGluZy1sb29wcy1leHBlY3RlZC50eHQK
QEAgLTg0Nyw3ICs4NDcsNyBAQCBQQVNTOiBTaG91bGQgaGF2ZSB1c2VkIGFsbCBzdGVwcy4KIAog
LS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnN0ZXBwaW5nLkZvcldpdGhDb21tYXNTdGVw
T3ZlcgogRVhQUkVTU0lPTjogc2V0VGltZW91dChlbnRyeUZvcldpdGhDb21tYXMpCi1TVEVQUzog
b3Zlciwgb3Zlciwgb3Zlciwgb3Zlciwgb3Zlciwgb3Zlciwgb3Zlciwgb3Zlciwgb3Zlciwgb3Zl
ciwgb3Zlciwgb3Zlciwgb3Zlciwgb3Zlciwgb3ZlciwgcmVzdW1lCitTVEVQUzogb3ZlciwgbmV4
dCwgb3ZlciwgbmV4dCwgb3Zlciwgb3ZlciwgbmV4dCwgb3ZlciwgbmV4dCwgb3Zlciwgb3Zlciwg
bmV4dCwgb3ZlciwgbmV4dCwgb3ZlciwgcmVzdW1lCiBQQVVTRUQgKGRlYnVnZ2VyLXN0YXRlbWVu
dCkKIFBBVVNFIEFUIGVudHJ5Rm9yV2l0aENvbW1hczo3ODo1CiAgICAgIDc0ICAgIH0KQEAgLTg2
OCw3ICs4NjgsNyBAQCBQQVVTRSBBVCBlbnRyeUZvcldpdGhDb21tYXM6Nzk6MTAKICAgICAgODAg
ICAgfQogICAgICA4MSAgICAKIAotQUNUSU9OOiBzdGVwLW92ZXIKK0FDVElPTjogc3RlcC1uZXh0
CiBQQVVTRSBBVCBlbnRyeUZvcldpdGhDb21tYXM6Nzk6MjEKICAgICAgNzUgICAgCiAgICAgIDc2
ICAgIGZ1bmN0aW9uIGVudHJ5Rm9yV2l0aENvbW1hcygpIHsKQEAgLTg4OCw3ICs4ODgsNyBAQCBQ
QVVTRSBBVCBlbnRyeUZvcldpdGhDb21tYXM6Nzk6MzMKICAgICAgODAgICAgfQogICAgICA4MSAg
ICAKIAotQUNUSU9OOiBzdGVwLW92ZXIKK0FDVElPTjogc3RlcC1uZXh0CiBQQVVTRSBBVCBlbnRy
eUZvcldpdGhDb21tYXM6Nzk6NDUKICAgICAgNzUgICAgCiAgICAgIDc2ICAgIGZ1bmN0aW9uIGVu
dHJ5Rm9yV2l0aENvbW1hcygpIHsKQEAgLTkxOCw3ICs5MTgsNyBAQCBQQVVTRSBBVCBlbnRyeUZv
cldpdGhDb21tYXM6Nzk6NTcKICAgICAgODAgICAgfQogICAgICA4MSAgICAKIAotQUNUSU9OOiBz
dGVwLW92ZXIKK0FDVElPTjogc3RlcC1uZXh0CiBQQVVTRSBBVCBlbnRyeUZvcldpdGhDb21tYXM6
Nzk6NjkKICAgICAgNzUgICAgCiAgICAgIDc2ICAgIGZ1bmN0aW9uIGVudHJ5Rm9yV2l0aENvbW1h
cygpIHsKQEAgLTkzOCw3ICs5MzgsNyBAQCBQQVVTRSBBVCBlbnRyeUZvcldpdGhDb21tYXM6Nzk6
MzMKICAgICAgODAgICAgfQogICAgICA4MSAgICAKIAotQUNUSU9OOiBzdGVwLW92ZXIKK0FDVElP
Tjogc3RlcC1uZXh0CiBQQVVTRSBBVCBlbnRyeUZvcldpdGhDb21tYXM6Nzk6NDUKICAgICAgNzUg
ICAgCiAgICAgIDc2ICAgIGZ1bmN0aW9uIGVudHJ5Rm9yV2l0aENvbW1hcygpIHsKQEAgLTk2OCw3
ICs5NjgsNyBAQCBQQVVTRSBBVCBlbnRyeUZvcldpdGhDb21tYXM6Nzk6NTcKICAgICAgODAgICAg
fQogICAgICA4MSAgICAKIAotQUNUSU9OOiBzdGVwLW92ZXIKK0FDVElPTjogc3RlcC1uZXh0CiBQ
QVVTRSBBVCBlbnRyeUZvcldpdGhDb21tYXM6Nzk6NjkKICAgICAgNzUgICAgCiAgICAgIDc2ICAg
IGZ1bmN0aW9uIGVudHJ5Rm9yV2l0aENvbW1hcygpIHsKQEAgLTk4OCw3ICs5ODgsNyBAQCBQQVVT
RSBBVCBlbnRyeUZvcldpdGhDb21tYXM6Nzk6MzMKICAgICAgODAgICAgfQogICAgICA4MSAgICAK
IAotQUNUSU9OOiBzdGVwLW92ZXIKK0FDVElPTjogc3RlcC1uZXh0CiBQQVVTRSBBVCBlbnRyeUZv
cldpdGhDb21tYXM6Nzk6NDUKICAgICAgNzUgICAgCiAgICAgIDc2ICAgIGZ1bmN0aW9uIGVudHJ5
Rm9yV2l0aENvbW1hcygpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zdGVwcGluZy9zdGVwcGluZy1sb29wcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBwaW5nLWxvb3BzLmh0bWwKaW5kZXggMWZjYjdmN2Q1ZDE5
YmYxMGM5NDMyZjM2YjExZWM4NDQwNDZjZDBlMy4uZTM5NjUxN2NkN2JiYTI3MDNjY2Q3MmNkZmZj
NzMxMTYyNDdiNjU3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3N0ZXBwaW5nL3N0ZXBwaW5nLWxvb3BzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBwaW5nLWxvb3BzLmh0bWwKQEAgLTI0NiwxOSArMjQ2LDE5
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBleHByZXNzaW9uOiAic2V0VGltZW91dChlbnRy
eUZvcldpdGhDb21tYXMpIiwKICAgICAgICAgc3RlcHM6IFsKICAgICAgICAgICAgICJvdmVyIiwK
LSAgICAgICAgICAgICAgICAib3ZlciIsIC8vIGNvbXBsZXRlOiBsZXQgaSA9IDAKKyAgICAgICAg
ICAgICAgICAibmV4dCIsIC8vIGNvbXBsZXRlOiBsZXQgaSA9IDAKICAgICAgICAgICAgICAgICAi
b3ZlciIsIC8vIGNvbXBsZXRlOiBsZW5ndGggPSAwCi0gICAgICAgICAgICAgICAgIm92ZXIiLCAv
LyBjb21wbGV0ZTogbGVuZ3RoID0gMgorICAgICAgICAgICAgICAgICJuZXh0IiwgLy8gY29tcGxl
dGU6IGxlbmd0aCA9IDIKICAgICAgICAgICAgICAgICAib3ZlciIsIC8vIGNvbXBsZXRlOiBpIDwg
bGVuZ3RoCiAgICAgICAgICAgICAgICAgIm92ZXIiLCAvLyBjb21wbGV0ZTogYSgpCi0gICAgICAg
ICAgICAgICAgIm92ZXIiLCAvLyBjb21wbGV0ZTogbGVuZ3RoID0gMQorICAgICAgICAgICAgICAg
ICJuZXh0IiwgLy8gY29tcGxldGU6IGxlbmd0aCA9IDEKICAgICAgICAgICAgICAgICAib3ZlciIs
IC8vIGNvbXBsZXRlOiArK2kKLSAgICAgICAgICAgICAgICAib3ZlciIsIC8vIGNvbXBsZXRlOiBs
ZW5ndGggPSAyCisgICAgICAgICAgICAgICAgIm5leHQiLCAvLyBjb21wbGV0ZTogbGVuZ3RoID0g
MgogICAgICAgICAgICAgICAgICJvdmVyIiwgLy8gY29tcGxldGU6IGkgPCBsZW5ndGggW2k9MV0K
ICAgICAgICAgICAgICAgICAib3ZlciIsIC8vIGNvbXBsZXRlOiBhKCkKLSAgICAgICAgICAgICAg
ICAib3ZlciIsIC8vIGNvbXBsZXRlOiBsZW5ndGggPSAxCisgICAgICAgICAgICAgICAgIm5leHQi
LCAvLyBjb21wbGV0ZTogbGVuZ3RoID0gMQogICAgICAgICAgICAgICAgICJvdmVyIiwgLy8gY29t
cGxldGU6ICsraQotICAgICAgICAgICAgICAgICJvdmVyIiwgLy8gY29tcGxldGU6IGxlbmd0aCA9
IDIKKyAgICAgICAgICAgICAgICAibmV4dCIsIC8vIGNvbXBsZXRlOiBsZW5ndGggPSAyCiAgICAg
ICAgICAgICAgICAgIm92ZXIiLCAvLyBjb21wbGV0ZTogaSA8IGxlbmd0aCBbaT0yXSAtIGxlYXZp
bmcgZW50cnkKICAgICAgICAgICAgICJyZXN1bWUiLAogICAgICAgICBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397131</attachid>
            <date>2020-04-21 15:22:12 -0700</date>
            <delta_ts>2020-04-22 10:24:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210588-20200421162211.patch</filename>
            <type>text/plain</type>
            <size>79716</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGMyMTMyNTk4NDNhNDYxNjQ4NzMzZTA1YmQ0ZGRi
Nzk5NDQxY2IyNGUuLjhhMDlhOWQ4MjBlYTU0ZmYxZDRiN2FmZDk4ZGQzMzE1NjBiNTJlNzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTA0LTIxICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBE
ZWJ1Z2dlcjogU3RlcCBPdmVyIHNob3VsZCBvbmx5IHN0ZXAgdGhyb3VnaCBjb21tYSBleHByZXNz
aW9ucyBpZiB0aGV5IGFyZSBjb21tYSBzdGF0ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA1ODgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAoSlND
OjpFeHByZXNzaW9uTm9kZTo6aXNTdGF0ZW1lbnQgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKEpT
Qzo6RXhwcmVzc2lvbk5vZGU6OnNldElzU3RhdGVtZW50KTogQWRkZWQuCisgICAgICAgICogcGFy
c2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpTQzo6RXhwclN0YXRlbWVudE5vZGU6
OkV4cHJTdGF0ZW1lbnROb2RlKToKKyAgICAgICAgKEpTQzo6RGVjbGFyYXRpb25TdGF0ZW1lbnQ6
OkRlY2xhcmF0aW9uU3RhdGVtZW50KToKKyAgICAgICAgKEpTQzo6UmV0dXJuTm9kZTo6UmV0dXJu
Tm9kZSk6CisgICAgICAgIChKU0M6OlRocm93Tm9kZTo6VGhyb3dOb2RlKToKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6Q29tbWFOb2RlOjpl
bWl0Qnl0ZWNvZGUpOgorICAgICAgICBPbmx5IGVtaXQgYFdpbGxFeGVjdXRlU3RhdGVtZW50YCBk
ZWJ1ZyBob29rcyBpbnNpZGUgYENvbW1hTm9kZWAgaWYgaXQncyB0aGUgb25seSBjaGlsZCBvZiBh
CisgICAgICAgIHN0YXRlbWVudCBwYXJlbnQgbm9kZSAoZS5nLiBgYSgpLCBiKCksIGMoKWAgdnMg
YHRydWUgJiYgKGEoKSwgYigpLCBjKCkpICYmIHRydWVgKS4KKworICAgICAgICAqIHBhcnNlci9Q
YXJzZXIuaDoKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFy
c2VyPExleGVyVHlwZT46OnBhcnNlUmV0dXJuU3RhdGVtZW50KToKKyAgICAgICAgKEpTQzo6UGFy
c2VyPExleGVyVHlwZT46OnBhcnNlVGhyb3dTdGF0ZW1lbnQpOgorICAgICAgICAoSlNDOjpQYXJz
ZXI8TGV4ZXJUeXBlPjo6cGFyc2VFeHByZXNzaW9uT3JMYWJlbFN0YXRlbWVudCk6CisgICAgICAg
IChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUV4cHJlc3Npb25TdGF0ZW1lbnQpOgorICAg
ICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VFeHByZXNzaW9uKToKKyAgICAgICAg
T25seSByZWNvcmQgYSBwYXVzZSBsb2NhdGlvbiBmb3IgZWFjaCBzdWItZXhwcmVzc2lvbiBpbiBh
IGNvbW1hIHNlcGFyYXRlZCBleHByZXNzaW9uIGlmIGl0J3MKKyAgICAgICAgdGhlIG9ubHkgY2hp
bGQgb2YgYSBzdGF0ZW1lbnQgKGUuZy4gYGEoKSwgYigpLCBjKClgIHZzIGB0cnVlICYmIChhKCks
IGIoKSwgYygpKSAmJiB0cnVlYCkuCisKIDIwMjAtMDQtMjEgIEFsZXhleSBTaHZheWthICA8c2h2
YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIGNvbnN0cnVjdE9iamVjdEZyb21Qcm9wZXJ0
eURlc2NyaXB0b3IoKSBpcyBpbmNvcnJlY3Qgd2l0aCBwYXJ0aWFsIGRlc2NyaXB0b3JzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAK
aW5kZXggNmYzN2E4Y2VkMWQ5OWE2YWNkNjQ5NDBhMTM5NTUxMTdhOGEwNzYwZC4uMTNkNGJhNzQ4
MTIxMTE1YTc5ZGE5MjQyZTZmMjE4YWNiZTZjYTY4NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMzI5NCwxMiArMzI5
NCwxNCBAQCBSZWdpc3RlcklEKiBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGU6OmVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZwogCiBSZWdpc3RlcklEKiBDb21tYU5vZGU6
OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBk
c3QpCiB7CisgICAgRGVidWdIb29rVHlwZSBkZWJ1Z0hvb2tUeXBlID0gaXNPbmx5Q2hpbGRPZlN0
YXRlbWVudCgpID8gV2lsbEV4ZWN1dGVTdGF0ZW1lbnQgOiBXaWxsRXhlY3V0ZUV4cHJlc3Npb247
CisKICAgICBDb21tYU5vZGUqIG5vZGUgPSB0aGlzOwogICAgIGZvciAoOyBub2RlLT5uZXh0KCk7
IG5vZGUgPSBub2RlLT5uZXh0KCkpIHsKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXREZWJ1Z0hvb2so
bm9kZS0+bV9leHByKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXREZWJ1Z0hvb2soZGVidWdIb29r
VHlwZSwgbm9kZS0+bV9leHByLT5wb3NpdGlvbigpKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRO
b2RlKGdlbmVyYXRvci5pZ25vcmVkUmVzdWx0KCksIG5vZGUtPm1fZXhwcik7CiAgICAgfQotICAg
IGdlbmVyYXRvci5lbWl0RGVidWdIb29rKG5vZGUtPm1fZXhwcik7CisgICAgZ2VuZXJhdG9yLmVt
aXREZWJ1Z0hvb2soZGVidWdIb29rVHlwZSwgbm9kZS0+bV9leHByLT5wb3NpdGlvbigpKTsKICAg
ICByZXR1cm4gZ2VuZXJhdG9yLmVtaXROb2RlSW5UYWlsUG9zaXRpb24oZHN0LCBub2RlLT5tX2V4
cHIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVD
b25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVj
dG9ycy5oCmluZGV4IDlkNWY5MzFlNzJmNmE1ZTg1MjVkMDYyNDNiMTNhYWRhMTk0YmExYTAuLjJj
ZWVjMzhiNjZlZTYxNjA5OWNjMjM5YjMxNzY1MjNkNzFiZTAxMDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCkBAIC04MzQsMTIgKzgzNCwx
NCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgOiBTdGF0ZW1lbnROb2RlKGxvY2F0aW9uKQog
ICAgICAgICAsIG1fZXhwcihleHByKQogICAgIHsKKyAgICAgICAgbV9leHByLT5zZXRJc09ubHlD
aGlsZE9mU3RhdGVtZW50KCk7CiAgICAgfQogCiAgICAgaW5saW5lIERlY2xhcmF0aW9uU3RhdGVt
ZW50OjpEZWNsYXJhdGlvblN0YXRlbWVudChjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9u
LCBFeHByZXNzaW9uTm9kZSogZXhwcikKICAgICAgICAgOiBTdGF0ZW1lbnROb2RlKGxvY2F0aW9u
KQogICAgICAgICAsIG1fZXhwcihleHByKQogICAgIHsKKyAgICAgICAgbV9leHByLT5zZXRJc09u
bHlDaGlsZE9mU3RhdGVtZW50KCk7CiAgICAgfQogCiAgICAgaW5saW5lIE1vZHVsZURlY2xhcmF0
aW9uTm9kZTo6TW9kdWxlRGVjbGFyYXRpb25Ob2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9j
YXRpb24pCkBAIC05NjEsNiArOTYzLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIDogU3Rh
dGVtZW50Tm9kZShsb2NhdGlvbikKICAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQogICAgIHsKKyAg
ICAgICAgaWYgKG1fdmFsdWUpCisgICAgICAgICAgICBtX3ZhbHVlLT5zZXRJc09ubHlDaGlsZE9m
U3RhdGVtZW50KCk7CiAgICAgfQogCiAgICAgaW5saW5lIFdpdGhOb2RlOjpXaXRoTm9kZShjb25z
dCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9uTm9kZSogZXhwciwgU3RhdGVt
ZW50Tm9kZSogc3RhdGVtZW50LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIHVpbnQzMl90
IGV4cHJlc3Npb25MZW5ndGgpCkBAIC05ODMsNiArOTg3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIDogU3RhdGVtZW50Tm9kZShsb2NhdGlvbikKICAgICAgICAgLCBtX2V4cHIoZXhwcikK
ICAgICB7CisgICAgICAgIG1fZXhwci0+c2V0SXNPbmx5Q2hpbGRPZlN0YXRlbWVudCgpOwogICAg
IH0KIAogICAgIGlubGluZSBUcnlOb2RlOjpUcnlOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYg
bG9jYXRpb24sIFN0YXRlbWVudE5vZGUqIHRyeUJsb2NrLCBEZXN0cnVjdHVyaW5nUGF0dGVybk5v
ZGUqIGNhdGNoUGF0dGVybiwgU3RhdGVtZW50Tm9kZSogY2F0Y2hCbG9jaywgVmFyaWFibGVFbnZp
cm9ubWVudCYgY2F0Y2hFbnZpcm9ubWVudCwgU3RhdGVtZW50Tm9kZSogZmluYWxseUJsb2NrKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IGMyOTc0ZWFkMTAxMGFjMzJiYTMx
ODNkY2VlMTFkNDU4YjdjMDBkNTEuLmE3OTVhOGMxNjllMGJhNzBlZmUwMjRmNzU2YjlhZTFiOWIw
OTEzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTIxOCwxMSArMjE4
LDE1IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIFJlc3VsdFR5cGUgcmVzdWx0RGVzY3Jp
cHRvcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0VHlwZTsgfQogCisgICAgICAgIGJvb2wgaXNP
bmx5Q2hpbGRPZlN0YXRlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faXNPbmx5Q2hpbGRPZlN0YXRl
bWVudDsgfQorICAgICAgICB2b2lkIHNldElzT25seUNoaWxkT2ZTdGF0ZW1lbnQoKSB7IG1faXNP
bmx5Q2hpbGRPZlN0YXRlbWVudCA9IHRydWU7IH0KKwogICAgICAgICBib29sIGlzT3B0aW9uYWxD
aGFpbkJhc2UoKSBjb25zdCB7IHJldHVybiBtX2lzT3B0aW9uYWxDaGFpbkJhc2U7IH0KICAgICAg
ICAgdm9pZCBzZXRJc09wdGlvbmFsQ2hhaW5CYXNlKCkgeyBtX2lzT3B0aW9uYWxDaGFpbkJhc2Ug
PSB0cnVlOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBSZXN1bHRUeXBlIG1fcmVzdWx0VHlw
ZTsKKyAgICAgICAgYm9vbCBtX2lzT25seUNoaWxkT2ZTdGF0ZW1lbnQgeyBmYWxzZSB9OwogICAg
ICAgICBib29sIG1faXNPcHRpb25hbENoYWluQmFzZSB7IGZhbHNlIH07CiAgICAgfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IGEzOTcxOWViNzRhZWI5NjY2
OTcwY2RmM2Q3ODZkNDBkMjkxZTAxYmIuLjc2NmEyYjNlYTY3MTU3ZjdmNDI1YWYzYTFlNzllZmFl
MDQzNDgwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTE2
MTEsNyArMTYxMSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWVu
dCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VSZXR1cm5TdGF0ZW1lCiAKICAgICBpZiAoYXV0b1Nl
bWlDb2xvbigpKQogICAgICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVSZXR1cm5TdGF0ZW1lbnQo
bG9jYXRpb24sIDAsIHN0YXJ0LCBlbmQpOwotICAgIFRyZWVFeHByZXNzaW9uIGV4cHIgPSBwYXJz
ZUV4cHJlc3Npb24oY29udGV4dCk7CisgICAgVHJlZUV4cHJlc3Npb24gZXhwciA9IHBhcnNlRXhw
cmVzc2lvbihjb250ZXh0LCBJc09ubHlDaGlsZE9mU3RhdGVtZW50OjpZZXMpOwogICAgIGZhaWxJ
ZkZhbHNlKGV4cHIsICJDYW5ub3QgcGFyc2UgdGhlIHJldHVybiBleHByZXNzaW9uIik7CiAgICAg
ZW5kID0gbGFzdFRva2VuRW5kUG9zaXRpb24oKTsKICAgICBpZiAobWF0Y2goU0VNSUNPTE9OKSkK
QEAgLTE2MzEsNyArMTYzMSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0
YXRlbWVudCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VUaHJvd1N0YXRlbWVuCiAgICAgZmFpbElm
VHJ1ZShtYXRjaChTRU1JQ09MT04pLCAiRXhwZWN0ZWQgZXhwcmVzc2lvbiBhZnRlciAndGhyb3cn
Iik7CiAgICAgc2VtYW50aWNGYWlsSWZUcnVlKGF1dG9TZW1pQ29sb24oKSwgIkNhbm5vdCBoYXZl
IGEgbmV3bGluZSBhZnRlciAndGhyb3cnIik7CiAgICAgCi0gICAgVHJlZUV4cHJlc3Npb24gZXhw
ciA9IHBhcnNlRXhwcmVzc2lvbihjb250ZXh0KTsKKyAgICBUcmVlRXhwcmVzc2lvbiBleHByID0g
cGFyc2VFeHByZXNzaW9uKGNvbnRleHQsIElzT25seUNoaWxkT2ZTdGF0ZW1lbnQ6Olllcyk7CiAg
ICAgZmFpbElmRmFsc2UoZXhwciwgIkNhbm5vdCBwYXJzZSBleHByZXNzaW9uIGZvciB0aHJvdyBz
dGF0ZW1lbnQiKTsKICAgICBKU1RleHRQb3NpdGlvbiBlbmQgPSBsYXN0VG9rZW5FbmRQb3NpdGlv
bigpOwogICAgIGZhaWxJZkZhbHNlKGF1dG9TZW1pQ29sb24oKSwgIkV4cGVjdGVkIGEgJzsnIGFm
dGVyIGEgdGhyb3cgc3RhdGVtZW50Iik7CkBAIC0zMTM0LDcgKzMxMzQsNyBAQCB0ZW1wbGF0ZSA8
Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lbnQgUGFyc2VyPExleGVyVHlwZT46OnBhcnNl
RXhwcmVzc2lvbk9yTAogICAgICAgICAgICAgLy8gSWYgd2UgaGl0IHRoaXMgcGF0aCB3ZSdyZSBt
YWtpbmcgYSBleHByZXNzaW9uIHN0YXRlbWVudCwgd2hpY2gKICAgICAgICAgICAgIC8vIGJ5IGRl
ZmluaXRpb24gY2FuJ3QgbWFrZSB1c2Ugb2YgY29udGludWUvYnJlYWsgc28gd2UgY2FuIGp1c3QK
ICAgICAgICAgICAgIC8vIGlnbm9yZSBhbnkgbGFiZWxzIHdlIG1pZ2h0IGhhdmUgYWNjdW11bGF0
ZWQuCi0gICAgICAgICAgICBUcmVlRXhwcmVzc2lvbiBleHByZXNzaW9uID0gcGFyc2VFeHByZXNz
aW9uKGNvbnRleHQpOworICAgICAgICAgICAgVHJlZUV4cHJlc3Npb24gZXhwcmVzc2lvbiA9IHBh
cnNlRXhwcmVzc2lvbihjb250ZXh0LCBJc09ubHlDaGlsZE9mU3RhdGVtZW50OjpZZXMpOwogICAg
ICAgICAgICAgZmFpbElmRmFsc2UoZXhwcmVzc2lvbiwgIkNhbm5vdCBwYXJzZSBleHByZXNzaW9u
IHN0YXRlbWVudCIpOwogICAgICAgICAgICAgaWYgKCFhdXRvU2VtaUNvbG9uKCkpCiAgICAgICAg
ICAgICAgICAgZmFpbER1ZVRvVW5leHBlY3RlZFRva2VuKCk7CkBAIC0zMjAxLDcgKzMyMDEsNyBA
QCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lbnQgUGFyc2VyPExleGVy
VHlwZT46OnBhcnNlRXhwcmVzc2lvblN0YQogICAgIH0KICAgICBKU1RleHRQb3NpdGlvbiBzdGFy
dCA9IHRva2VuU3RhcnRQb3NpdGlvbigpOwogICAgIEpTVG9rZW5Mb2NhdGlvbiBsb2NhdGlvbih0
b2tlbkxvY2F0aW9uKCkpOwotICAgIFRyZWVFeHByZXNzaW9uIGV4cHJlc3Npb24gPSBwYXJzZUV4
cHJlc3Npb24oY29udGV4dCk7CisgICAgVHJlZUV4cHJlc3Npb24gZXhwcmVzc2lvbiA9IHBhcnNl
RXhwcmVzc2lvbihjb250ZXh0LCBJc09ubHlDaGlsZE9mU3RhdGVtZW50OjpZZXMpOwogICAgIGZh
aWxJZkZhbHNlKGV4cHJlc3Npb24sICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lvbiBzdGF0ZW1lbnQi
KTsKICAgICBmYWlsSWZGYWxzZShhdXRvU2VtaUNvbG9uKCksICJQYXJzZSBlcnJvciIpOwogICAg
IHJldHVybiBjb250ZXh0LmNyZWF0ZUV4cHJTdGF0ZW1lbnQobG9jYXRpb24sIGV4cHJlc3Npb24s
IHN0YXJ0LCBtX2xhc3RUb2tlbkVuZFBvc2l0aW9uLmxpbmUpOwpAQCAtMzcwMyw3ICszNzAzLDcg
QEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZW50IFBhcnNlcjxMZXhl
clR5cGU+OjpwYXJzZUV4cG9ydERlY2xhcmEKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIExleGVy
VHlwZT4KLXRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2Vy
PExleGVyVHlwZT46OnBhcnNlRXhwcmVzc2lvbihUcmVlQnVpbGRlciYgY29udGV4dCkKK3RlbXBs
YXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46
OnBhcnNlRXhwcmVzc2lvbihUcmVlQnVpbGRlciYgY29udGV4dCwgSXNPbmx5Q2hpbGRPZlN0YXRl
bWVudCBpc1N0YXRlbWVudCkKIHsKICAgICBmYWlsSWZTdGFja092ZXJmbG93KCk7CiAgICAgSlNU
b2tlbkxvY2F0aW9uIGhlYWRMb2NhdGlvbih0b2tlbkxvY2F0aW9uKCkpOwpAQCAtMzcyMCw5ICsz
NzIwLDExIEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFy
c2VyPExleGVyVHlwZT46OnBhcnNlRXhwcmVzc2lvbihUCiAgICAgZmFpbElmRmFsc2UocmlnaHQs
ICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lvbiBpbiBhIGNvbW1hIGV4cHJlc3Npb24iKTsKICAgICBj
b250ZXh0LnNldEVuZE9mZnNldChyaWdodCwgbV9sYXN0VG9rZW5FbmRQb3NpdGlvbi5vZmZzZXQp
OwogICAgIHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpDb21tYSBoZWFkID0gY29udGV4dC5jcmVhdGVD
b21tYUV4cHIoaGVhZExvY2F0aW9uLCBub2RlKTsKLSAgICByZWNvcmRQYXVzZUxvY2F0aW9uKGNv
bnRleHQuYnJlYWtwb2ludExvY2F0aW9uKGhlYWQpKTsKKyAgICBpZiAoaXNTdGF0ZW1lbnQgPT0g
SXNPbmx5Q2hpbGRPZlN0YXRlbWVudDo6WWVzKQorICAgICAgICByZWNvcmRQYXVzZUxvY2F0aW9u
KGNvbnRleHQuYnJlYWtwb2ludExvY2F0aW9uKGhlYWQpKTsKICAgICB0eXBlbmFtZSBUcmVlQnVp
bGRlcjo6Q29tbWEgdGFpbCA9IGNvbnRleHQuYXBwZW5kVG9Db21tYUV4cHIodGFpbExvY2F0aW9u
LCBoZWFkLCBoZWFkLCByaWdodCk7Ci0gICAgcmVjb3JkUGF1c2VMb2NhdGlvbihjb250ZXh0LmJy
ZWFrcG9pbnRMb2NhdGlvbih0YWlsKSk7CisgICAgaWYgKGlzU3RhdGVtZW50ID09IElzT25seUNo
aWxkT2ZTdGF0ZW1lbnQ6OlllcykKKyAgICAgICAgcmVjb3JkUGF1c2VMb2NhdGlvbihjb250ZXh0
LmJyZWFrcG9pbnRMb2NhdGlvbih0YWlsKSk7CiAgICAgd2hpbGUgKG1hdGNoKENPTU1BKSkgewog
ICAgICAgICBuZXh0KFRyZWVCdWlsZGVyOjpEb250QnVpbGRTdHJpbmdzKTsKICAgICAgICAgdGFp
bExvY2F0aW9uID0gdG9rZW5Mb2NhdGlvbigpOwpAQCAtMzczMCw3ICszNzMyLDggQEAgdGVtcGxh
dGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6
cGFyc2VFeHByZXNzaW9uKFQKICAgICAgICAgZmFpbElmRmFsc2UocmlnaHQsICJDYW5ub3QgcGFy
c2UgZXhwcmVzc2lvbiBpbiBhIGNvbW1hIGV4cHJlc3Npb24iKTsKICAgICAgICAgY29udGV4dC5z
ZXRFbmRPZmZzZXQocmlnaHQsIG1fbGFzdFRva2VuRW5kUG9zaXRpb24ub2Zmc2V0KTsKICAgICAg
ICAgdGFpbCA9IGNvbnRleHQuYXBwZW5kVG9Db21tYUV4cHIodGFpbExvY2F0aW9uLCBoZWFkLCB0
YWlsLCByaWdodCk7Ci0gICAgICAgIHJlY29yZFBhdXNlTG9jYXRpb24oY29udGV4dC5icmVha3Bv
aW50TG9jYXRpb24odGFpbCkpOworICAgICAgICBpZiAoaXNTdGF0ZW1lbnQgPT0gSXNPbmx5Q2hp
bGRPZlN0YXRlbWVudDo6WWVzKQorICAgICAgICAgICAgcmVjb3JkUGF1c2VMb2NhdGlvbihjb250
ZXh0LmJyZWFrcG9pbnRMb2NhdGlvbih0YWlsKSk7CiAgICAgfQogICAgIGNvbnRleHQuc2V0RW5k
T2Zmc2V0KGhlYWQsIG1fbGFzdFRva2VuRW5kUG9zaXRpb24ub2Zmc2V0KTsKICAgICByZXR1cm4g
aGVhZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCmluZGV4IGYxZDVkOTI4OTQ0
MDBlYTZiODFlMWRiZDk3Mjc2MGExNjgxMjRlODEuLjE2OGI2ZmY3ZWY4ZWNlZjVmZDMyYzcxNTgy
ZjBiMDRmNzY5ZGIxY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
UGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaApAQCAt
MTY0Niw3ICsxNjQ2LDEwIEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWls
ZGVyPiBUcmVlU3RhdGVtZW50IHBhcnNlRXhwcmVzc2lvbk9yTGFiZWxTdGF0ZW1lbnQoVHJlZUJ1
aWxkZXImLCBib29sIGFsbG93RnVuY3Rpb25EZWNsYXJhdGlvbkFzU3RhdGVtZW50KTsKICAgICB0
ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lbnQgcGFyc2VJZlN0YXRlbWVu
dChUcmVlQnVpbGRlciYpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0
YXRlbWVudCBwYXJzZUJsb2NrU3RhdGVtZW50KFRyZWVCdWlsZGVyJiwgYm9vbCBpc0NhdGNoQmxv
Y2sgPSBmYWxzZSk7Ci0gICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVz
c2lvbiBwYXJzZUV4cHJlc3Npb24oVHJlZUJ1aWxkZXImKTsKKworICAgIGVudW0gY2xhc3MgSXNP
bmx5Q2hpbGRPZlN0YXRlbWVudCB7IFllcywgTm8gfTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJl
ZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIHBhcnNlRXhwcmVzc2lvbihUcmVlQnVpbGRlciYsIElz
T25seUNoaWxkT2ZTdGF0ZW1lbnQgPSBJc09ubHlDaGlsZE9mU3RhdGVtZW50OjpObyk7CisKICAg
ICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIHBhcnNlQXNzaWdu
bWVudEV4cHJlc3Npb24oVHJlZUJ1aWxkZXImLCBFeHByZXNzaW9uRXJyb3JDbGFzc2lmaWVyJik7
CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBwYXJzZUFz
c2lnbm1lbnRFeHByZXNzaW9uKFRyZWVCdWlsZGVyJik7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRy
ZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uT3JQcm9w
YWdhdGVFcnJvckNsYXNzKFRyZWVCdWlsZGVyJik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGYwZDQ5ZDNjZmY5Mjk0MDY1
OTFlMzczYzYxYzhmZTUyOGZmZjE3Yy4uMGE0MWJjYjZkMTY1MDM4ZjE0NzdkNmZkNTMwYWU0ZDQx
YWQ1Yjg5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTA0LTIxICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBEZWJ1Z2dlcjog
U3RlcCBPdmVyIHNob3VsZCBvbmx5IHN0ZXAgdGhyb3VnaCBjb21tYSBleHByZXNzaW9ucyBpZiB0
aGV5IGFyZSBjb21tYSBzdGF0ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTA1ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvbG9nLXBhdXNl
LWxvY2F0aW9uLmpzOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci53aW5k
b3cuc3RlcCk6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnRzL3Jlc291
cmNlcy9kdW1wLWZ1bmN0aW9ucy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWtwb2ludHMvcmVzb3VyY2VzL2R1bXAtZ2VuZXJhbC5qczoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWtwb2ludHMvcmVzb2x2ZWQtZHVtcC1hbGwtcGF1c2UtbG9jYXRpb25zLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludHMvcmVz
b2x2ZWQtZHVtcC1lYWNoLWxpbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9zdGVwcGluZy9zdGVwSW50by5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1
Z2dlci9zdGVwcGluZy9zdGVwSW50by1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBOZXh0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Rl
YnVnZ2VyL3N0ZXBwaW5nL3N0ZXBOZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcE91dC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9zdGVwcGluZy9zdGVwT3V0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcE92ZXIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvc3RlcHBpbmcvc3RlcE92ZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3Bl
Y3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwcGluZy1jb250cm9sLWZsb3cuaHRtbDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcHBpbmctY29udHJvbC1mbG93LWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcHBp
bmctbG9vcHMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3Rl
cHBpbmctbG9vcHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9mb3JtYXR0aW5n
L3Jlc291cmNlcy9qYXZhc2NyaXB0LXRlc3RzL2Fycm93LWZ1bmN0aW9ucy5qczoKKyAgICAgICAg
KiBpbnNwZWN0b3IvZm9ybWF0dGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC10ZXN0cy9hcnJvdy1m
dW5jdGlvbnMtZXhwZWN0ZWQuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zvcm1hdHRpbmcvcmVz
b3VyY2VzL2phdmFzY3JpcHQtdGVzdHMvZnVuY3Rpb25zLmpzOgorICAgICAgICAqIGluc3BlY3Rv
ci9mb3JtYXR0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0LXRlc3RzL2Z1bmN0aW9ucy1leHBlY3Rl
ZC5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZm9ybWF0dGluZy9yZXNvdXJjZXMvamF2YXNjcmlw
dC10ZXN0cy90cnktY2F0Y2gtZmluYWxseS1zdGF0ZW1lbnRzLmpzOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mb3JtYXR0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0LXRlc3RzL3RyeS1jYXRjaC1maW5h
bGx5LXN0YXRlbWVudHMtZXhwZWN0ZWQuanM6CisKIDIwMjAtMDQtMjAgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgSG9yaXpvbnRhbCBvdmVyZmxvdyBv
dmVybGF5IHNjcm9sbGJhciBpcyBtaXNwbGFjZWQgaW4gUlRMCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludHMvcmVzb2x2ZWQtZHVtcC1hbGwtcGF1
c2UtbG9jYXRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9icmVha3BvaW50cy9yZXNvbHZlZC1kdW1wLWFsbC1wYXVzZS1sb2NhdGlvbnMtZXhwZWN0ZWQu
dHh0CmluZGV4IDgzN2QyOWZhOGRkODI0NDQxNGI0MmFiOWEyODZkNjY5NmMwOTAzYzAuLmM5YWU5
YWUyMjExNTU5MTE3ZWZiODI4YTllYWU4MDk3OTc2MzhjNTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50cy9yZXNvbHZlZC1kdW1wLWFsbC1wYXVz
ZS1sb2NhdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9icmVha3BvaW50cy9yZXNvbHZlZC1kdW1wLWFsbC1wYXVzZS1sb2NhdGlvbnMtZXhwZWN0
ZWQudHh0CkBAIC0xNDExLDcgKzE0MTEsNyBAQCBQQVVTRVMgQVQ6IDIxNDowCiAgPT4gMjE0ICAg
IHxiKCksCiAgICAgMjE1ICAgIGMoKTsKICAgICAyMTYgICAgCi0gICAgMjE3ICAgIHRydWUgJiYg
KGEoKSwgYigpLCBjKCkpOworICAgIDIxNyAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKSAmJiB0
cnVlOwogCiBJTlNFUlRJTkcgQVQ6IDIxNDoxCiBQQVVTRVMgQVQ6IDIxNTowCkBAIC0xNDIxLDcg
KzE0MjEsNyBAQCBQQVVTRVMgQVQ6IDIxNTowCiAgLT4gMjE0ICAgIGIjKCksCiAgPT4gMjE1ICAg
IHxjKCk7CiAgICAgMjE2ICAgIAotICAgIDIxNyAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKTsK
KyAgICAyMTcgICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSkgJiYgdHJ1ZTsKICAgICAyMTggICAg
CiAKIElOU0VSVElORyBBVDogMjE1OjEKQEAgLTE0MzEsMzIgKzE0MzEsMTE0IEBAIFBBVVNFUyBB
VDogMjE3OjAKICAgICAyMTQgICAgYigpLAogIC0+IDIxNSAgICBjIygpOwogICAgIDIxNiAgICAK
LSA9PiAyMTcgICAgfHRydWUgJiYgKGEoKSwgYigpLCBjKCkpOworID0+IDIxNyAgICB8dHJ1ZSAm
JiAoYSgpLCBiKCksIGMoKSkgJiYgdHJ1ZTsKICAgICAyMTggICAgCisgICAgMjE5ICAgIHRydWUg
JiYgKAorICAgIDIyMCAgICAgICAgYSgpLAogCiBJTlNFUlRJTkcgQVQ6IDIxNzoxCi1QQVVTRVMg
QVQ6IDIxNzo5CitQQVVTRVMgQVQ6IDIxOTowCiAgICAgMjE0ICAgIGIoKSwKICAgICAyMTUgICAg
YygpOwogICAgIDIxNiAgICAKLS09PiAyMTcgICAgdCNydWUgJiYgKHxhKCksIGIoKSwgYygpKTsK
KyAtPiAyMTcgICAgdCNydWUgJiYgKGEoKSwgYigpLCBjKCkpICYmIHRydWU7CiAgICAgMjE4ICAg
IAorID0+IDIxOSAgICB8dHJ1ZSAmJiAoCisgICAgMjIwICAgICAgICBhKCksCisgICAgMjIxICAg
ICAgICBiKCksCisgICAgMjIyICAgICAgICBjKCkKIAotSU5TRVJUSU5HIEFUOiAyMTc6MTAKLVBB
VVNFUyBBVDogMjE3OjE0Ci0gICAgMjE0ICAgIGIoKSwKLSAgICAyMTUgICAgYygpOworSU5TRVJU
SU5HIEFUOiAyMTk6MQorUEFVU0VTIEFUOiAyMjY6NAogICAgIDIxNiAgICAKLS09PiAyMTcgICAg
dHJ1ZSAmJiAoYSMoKSwgfGIoKSwgYygpKTsKKyAgICAyMTcgICAgdHJ1ZSAmJiAoYSgpLCBiKCks
IGMoKSkgJiYgdHJ1ZTsKICAgICAyMTggICAgCisgLT4gMjE5ICAgIHQjcnVlICYmICgKKyAgICAy
MjAgICAgICAgIGEoKSwKKyAgICAyMjEgICAgICAgIGIoKSwKKyAgICAyMjIgICAgICAgIGMoKQor
ICAgIDIyMyAgICApICYmIHRydWU7CisgICAgMjI0ICAgIAorICAgIDIyNSAgICB0cnkgeworID0+
IDIyNiAgICAgICAgfHRocm93IGEoKSwgYigpLCBjKCk7CisgICAgMjI3ICAgIH0gY2F0Y2ggeyB9
CisgICAgMjI4ICAgIAorICAgIDIyOSAgICB0cnkgewogCi1JTlNFUlRJTkcgQVQ6IDIxNzoxNQot
UEFVU0VTIEFUOiAyMTc6MTkKLSAgICAyMTQgICAgYigpLAotICAgIDIxNSAgICBjKCk7Ci0gICAg
MjE2ICAgIAotLT0+IDIxNyAgICB0cnVlICYmIChhKCksIGIjKCksIHxjKCkpOwotICAgIDIxOCAg
ICAKK0lOU0VSVElORyBBVDogMjI2OjUKK1BBVVNFUyBBVDogMjI2OjEwCisgICAgMjIzICAgICkg
JiYgdHJ1ZTsKKyAgICAyMjQgICAgCisgICAgMjI1ICAgIHRyeSB7CistPT4gMjI2ICAgICAgICB0
I2hyb3cgfGEoKSwgYigpLCBjKCk7CisgICAgMjI3ICAgIH0gY2F0Y2ggeyB9CisgICAgMjI4ICAg
IAorICAgIDIyOSAgICB0cnkgeworCitJTlNFUlRJTkcgQVQ6IDIyNjoxMQorUEFVU0VTIEFUOiAy
MjY6MTUKKyAgICAyMjMgICAgKSAmJiB0cnVlOworICAgIDIyNCAgICAKKyAgICAyMjUgICAgdHJ5
IHsKKy09PiAyMjYgICAgICAgIHRocm93IGEjKCksIHxiKCksIGMoKTsKKyAgICAyMjcgICAgfSBj
YXRjaCB7IH0KKyAgICAyMjggICAgCisgICAgMjI5ICAgIHRyeSB7CisKK0lOU0VSVElORyBBVDog
MjI2OjE2CitQQVVTRVMgQVQ6IDIyNjoyMAorICAgIDIyMyAgICApICYmIHRydWU7CisgICAgMjI0
ICAgIAorICAgIDIyNSAgICB0cnkgeworLT0+IDIyNiAgICAgICAgdGhyb3cgYSgpLCBiIygpLCB8
YygpOworICAgIDIyNyAgICB9IGNhdGNoIHsgfQorICAgIDIyOCAgICAKKyAgICAyMjkgICAgdHJ5
IHsKKworSU5TRVJUSU5HIEFUOiAyMjY6MjEKK1BBVVNFUyBBVDogMjMwOjQKKyAgICAyMjMgICAg
KSAmJiB0cnVlOworICAgIDIyNCAgICAKKyAgICAyMjUgICAgdHJ5IHsKKyAtPiAyMjYgICAgICAg
IHRocm93IGEoKSwgYigpLCBjIygpOworICAgIDIyNyAgICB9IGNhdGNoIHsgfQorICAgIDIyOCAg
ICAKKyAgICAyMjkgICAgdHJ5IHsKKyA9PiAyMzAgICAgICAgIHx0aHJvdyBhKCksCisgICAgMjMx
ICAgICAgICAgICAgYigpLAorICAgIDIzMiAgICAgICAgICAgIGMoKTsKKyAgICAyMzMgICAgfSBj
YXRjaCB7IH0KKworSU5TRVJUSU5HIEFUOiAyMzA6NQorUEFVU0VTIEFUOiAyMzA6MTAKKyAgICAy
MjcgICAgfSBjYXRjaCB7IH0KKyAgICAyMjggICAgCisgICAgMjI5ICAgIHRyeSB7CistPT4gMjMw
ICAgICAgICB0I2hyb3cgfGEoKSwKKyAgICAyMzEgICAgICAgICAgICBiKCksCisgICAgMjMyICAg
ICAgICAgICAgYygpOworICAgIDIzMyAgICB9IGNhdGNoIHsgfQorCitJTlNFUlRJTkcgQVQ6IDIz
MDoxMQorUEFVU0VTIEFUOiAyMzE6OAorICAgIDIyNyAgICB9IGNhdGNoIHsgfQorICAgIDIyOCAg
ICAKKyAgICAyMjkgICAgdHJ5IHsKKyAtPiAyMzAgICAgICAgIHRocm93IGEjKCksCisgPT4gMjMx
ICAgICAgICAgICAgfGIoKSwKKyAgICAyMzIgICAgICAgICAgICBjKCk7CisgICAgMjMzICAgIH0g
Y2F0Y2ggeyB9CisgICAgMjM0ICAgIAorCitJTlNFUlRJTkcgQVQ6IDIzMTo5CitQQVVTRVMgQVQ6
IDIzMjo4CisgICAgMjI4ICAgIAorICAgIDIyOSAgICB0cnkgeworICAgIDIzMCAgICAgICAgdGhy
b3cgYSgpLAorIC0+IDIzMSAgICAgICAgICAgIGIjKCksCisgPT4gMjMyICAgICAgICAgICAgfGMo
KTsKKyAgICAyMzMgICAgfSBjYXRjaCB7IH0KKyAgICAyMzQgICAgCiAKIAogLS0gUnVubmluZyB0
ZXN0IGNhc2U6IERlYnVnZ2VyLnJlc29sdmVkQnJlYWtwb2ludC5kdW1wQWxsTG9jYXRpb25zLkZ1
bmN0aW9ucwpAQCAtMjU3NCw2ICsyNjU2LDcgQEAgUEFVU0VTIEFUOiAxMjI6NAogID0+IDEyMiAg
ICAgICAgfGlubGluZSgpOwogICAgIDEyMyAgICB9CiAgICAgMTI0ICAgIAorICAgIDEyNSAgICBm
dW5jdGlvbiByZXR1cm5PbmVMaW5lKCkgewogCiBJTlNFUlRJTkcgQVQ6IDEyMjo1CiBQQVVTRVMg
QVQ6IDEyMzowCkBAIC0yNTgzLDYgKzI2NjYsMTExIEBAIFBBVVNFUyBBVDogMTIzOjAKICAtPiAx
MjIgICAgICAgIGkjbmxpbmUoKTsKICA9PiAxMjMgICAgfH0KICAgICAxMjQgICAgCisgICAgMTI1
ICAgIGZ1bmN0aW9uIHJldHVybk9uZUxpbmUoKSB7CisgICAgMTI2ICAgICAgICByZXR1cm4gaW5s
aW5lKCksIGlubGluZSgpLCBpbmxpbmUoKTsKKworSU5TRVJUSU5HIEFUOiAxMjU6MAorUEFVU0VT
IEFUOiAxMjY6NAorICAgIDEyMiAgICAgICAgaW5saW5lKCk7CisgICAgMTIzICAgIH0KKyAgICAx
MjQgICAgCisgLT4gMTI1ICAgICNmdW5jdGlvbiByZXR1cm5PbmVMaW5lKCkgeworID0+IDEyNiAg
ICAgICAgfHJldHVybiBpbmxpbmUoKSwgaW5saW5lKCksIGlubGluZSgpOworICAgIDEyNyAgICB9
CisgICAgMTI4ICAgIAorICAgIDEyOSAgICBmdW5jdGlvbiByZXR1cm5NdWx0aUxpbmUoKSB7CisK
K0lOU0VSVElORyBBVDogMTI2OjUKK1BBVVNFUyBBVDogMTI2OjExCisgICAgMTIzICAgIH0KKyAg
ICAxMjQgICAgCisgICAgMTI1ICAgIGZ1bmN0aW9uIHJldHVybk9uZUxpbmUoKSB7CistPT4gMTI2
ICAgICAgICByI2V0dXJuIHxpbmxpbmUoKSwgaW5saW5lKCksIGlubGluZSgpOworICAgIDEyNyAg
ICB9CisgICAgMTI4ICAgIAorICAgIDEyOSAgICBmdW5jdGlvbiByZXR1cm5NdWx0aUxpbmUoKSB7
CisKK0lOU0VSVElORyBBVDogMTI2OjEyCitQQVVTRVMgQVQ6IDEyNjoyMQorICAgIDEyMyAgICB9
CisgICAgMTI0ICAgIAorICAgIDEyNSAgICBmdW5jdGlvbiByZXR1cm5PbmVMaW5lKCkgeworLT0+
IDEyNiAgICAgICAgcmV0dXJuIGkjbmxpbmUoKSwgfGlubGluZSgpLCBpbmxpbmUoKTsKKyAgICAx
MjcgICAgfQorICAgIDEyOCAgICAKKyAgICAxMjkgICAgZnVuY3Rpb24gcmV0dXJuTXVsdGlMaW5l
KCkgeworCitJTlNFUlRJTkcgQVQ6IDEyNjoyMgorUEFVU0VTIEFUOiAxMjY6MzEKKyAgICAxMjMg
ICAgfQorICAgIDEyNCAgICAKKyAgICAxMjUgICAgZnVuY3Rpb24gcmV0dXJuT25lTGluZSgpIHsK
Ky09PiAxMjYgICAgICAgIHJldHVybiBpbmxpbmUoKSwgaSNubGluZSgpLCB8aW5saW5lKCk7Cisg
ICAgMTI3ICAgIH0KKyAgICAxMjggICAgCisgICAgMTI5ICAgIGZ1bmN0aW9uIHJldHVybk11bHRp
TGluZSgpIHsKKworSU5TRVJUSU5HIEFUOiAxMjY6MzIKK1BBVVNFUyBBVDogMTI3OjAKKyAgICAx
MjMgICAgfQorICAgIDEyNCAgICAKKyAgICAxMjUgICAgZnVuY3Rpb24gcmV0dXJuT25lTGluZSgp
IHsKKyAtPiAxMjYgICAgICAgIHJldHVybiBpbmxpbmUoKSwgaW5saW5lKCksIGkjbmxpbmUoKTsK
KyA9PiAxMjcgICAgfH0KKyAgICAxMjggICAgCisgICAgMTI5ICAgIGZ1bmN0aW9uIHJldHVybk11
bHRpTGluZSgpIHsKKyAgICAxMzAgICAgICAgIHJldHVybiBpbmxpbmUoKSwKKworSU5TRVJUSU5H
IEFUOiAxMjk6MAorUEFVU0VTIEFUOiAxMzA6NAorICAgIDEyNiAgICAgICAgcmV0dXJuIGlubGlu
ZSgpLCBpbmxpbmUoKSwgaW5saW5lKCk7CisgICAgMTI3ICAgIH0KKyAgICAxMjggICAgCisgLT4g
MTI5ICAgICNmdW5jdGlvbiByZXR1cm5NdWx0aUxpbmUoKSB7CisgPT4gMTMwICAgICAgICB8cmV0
dXJuIGlubGluZSgpLAorICAgIDEzMSAgICAgICAgICAgIGlubGluZSgpLAorICAgIDEzMiAgICAg
ICAgICAgIGlubGluZSgpOworICAgIDEzMyAgICB9CisKK0lOU0VSVElORyBBVDogMTMwOjUKK1BB
VVNFUyBBVDogMTMwOjExCisgICAgMTI3ICAgIH0KKyAgICAxMjggICAgCisgICAgMTI5ICAgIGZ1
bmN0aW9uIHJldHVybk11bHRpTGluZSgpIHsKKy09PiAxMzAgICAgICAgIHIjZXR1cm4gfGlubGlu
ZSgpLAorICAgIDEzMSAgICAgICAgICAgIGlubGluZSgpLAorICAgIDEzMiAgICAgICAgICAgIGlu
bGluZSgpOworICAgIDEzMyAgICB9CisKK0lOU0VSVElORyBBVDogMTMwOjEyCitQQVVTRVMgQVQ6
IDEzMTo4CisgICAgMTI3ICAgIH0KKyAgICAxMjggICAgCisgICAgMTI5ICAgIGZ1bmN0aW9uIHJl
dHVybk11bHRpTGluZSgpIHsKKyAtPiAxMzAgICAgICAgIHJldHVybiBpI25saW5lKCksCisgPT4g
MTMxICAgICAgICAgICAgfGlubGluZSgpLAorICAgIDEzMiAgICAgICAgICAgIGlubGluZSgpOwor
ICAgIDEzMyAgICB9CisgICAgMTM0ICAgIAorCitJTlNFUlRJTkcgQVQ6IDEzMTo5CitQQVVTRVMg
QVQ6IDEzMjo4CisgICAgMTI4ICAgIAorICAgIDEyOSAgICBmdW5jdGlvbiByZXR1cm5NdWx0aUxp
bmUoKSB7CisgICAgMTMwICAgICAgICByZXR1cm4gaW5saW5lKCksCisgLT4gMTMxICAgICAgICAg
ICAgaSNubGluZSgpLAorID0+IDEzMiAgICAgICAgICAgIHxpbmxpbmUoKTsKKyAgICAxMzMgICAg
fQorICAgIDEzNCAgICAKKworSU5TRVJUSU5HIEFUOiAxMzI6OQorUEFVU0VTIEFUOiAxMzM6MAor
ICAgIDEyOSAgICBmdW5jdGlvbiByZXR1cm5NdWx0aUxpbmUoKSB7CisgICAgMTMwICAgICAgICBy
ZXR1cm4gaW5saW5lKCksCisgICAgMTMxICAgICAgICAgICAgaW5saW5lKCksCisgLT4gMTMyICAg
ICAgICAgICAgaSNubGluZSgpOworID0+IDEzMyAgICB8fQorICAgIDEzNCAgICAKIAogCiAtLSBS
dW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIucmVzb2x2ZWRCcmVha3BvaW50LmR1bXBBbGxMb2Nh
dGlvbnMuVW5pY29kZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2JyZWFrcG9pbnRzL3Jlc29sdmVkLWR1bXAtZWFjaC1saW5lLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50cy9yZXNvbHZlZC1kdW1wLWVhY2gt
bGluZS1leHBlY3RlZC50eHQKaW5kZXggYmMyZTAwNWY1YjA4NjNhMWNmYTNhMTA2MTMwMTg2YzQ0
MDFlOGUzMC4uNjA1N2UyYjA1ZTI0Y2JhYjYxNzlhNzViMjExODg3MmRhMGNiMzk0OCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnRzL3Jlc29sdmVk
LWR1bXAtZWFjaC1saW5lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWtwb2ludHMvcmVzb2x2ZWQtZHVtcC1lYWNoLWxpbmUtZXhwZWN0ZWQudHh0
CkBAIC0zMDkzLDcgKzMwOTMsNyBAQCBQQVVTRVMgQVQ6IDIxNDowCiAtPT4gMjE0ICAgIHxiKCks
CiAgICAgMjE1ICAgIGMoKTsKICAgICAyMTYgICAgCi0gICAgMjE3ICAgIHRydWUgJiYgKGEoKSwg
YigpLCBjKCkpOworICAgIDIxNyAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKSAmJiB0cnVlOwog
CiAKIElOU0VSVElORyBBVDogMjE1OjAKQEAgLTMxMDMsNyArMzEwMyw3IEBAIFBBVVNFUyBBVDog
MjE1OjAKICAgICAyMTQgICAgYigpLAogLT0+IDIxNSAgICB8YygpOwogICAgIDIxNiAgICAKLSAg
ICAyMTcgICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSk7CisgICAgMjE3ICAgIHRydWUgJiYgKGEo
KSwgYigpLCBjKCkpICYmIHRydWU7CiAgICAgMjE4ICAgIAogCiAKQEAgLTMxMTMsOCArMzExMywx
MCBAQCBQQVVTRVMgQVQ6IDIxNzowCiAgICAgMjE0ICAgIGIoKSwKICAgICAyMTUgICAgYygpOwog
IC0+IDIxNiAgICAjCi0gPT4gMjE3ICAgIHx0cnVlICYmIChhKCksIGIoKSwgYygpKTsKKyA9PiAy
MTcgICAgfHRydWUgJiYgKGEoKSwgYigpLCBjKCkpICYmIHRydWU7CiAgICAgMjE4ICAgIAorICAg
IDIxOSAgICB0cnVlICYmICgKKyAgICAyMjAgICAgICAgIGEoKSwKIAogCiBJTlNFUlRJTkcgQVQ6
IDIxNzowCkBAIC0zMTIyLDExICszMTI0LDIwOCBAQCBQQVVTRVMgQVQ6IDIxNzowCiAgICAgMjE0
ICAgIGIoKSwKICAgICAyMTUgICAgYygpOwogICAgIDIxNiAgICAKLS09PiAyMTcgICAgfHRydWUg
JiYgKGEoKSwgYigpLCBjKCkpOworLT0+IDIxNyAgICB8dHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSkg
JiYgdHJ1ZTsKICAgICAyMTggICAgCisgICAgMjE5ICAgIHRydWUgJiYgKAorICAgIDIyMCAgICAg
ICAgYSgpLAogCiAKIElOU0VSVElORyBBVDogMjE4OjAKK1BBVVNFUyBBVDogMjE5OjAKKyAgICAy
MTUgICAgYygpOworICAgIDIxNiAgICAKKyAgICAyMTcgICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMo
KSkgJiYgdHJ1ZTsKKyAtPiAyMTggICAgIworID0+IDIxOSAgICB8dHJ1ZSAmJiAoCisgICAgMjIw
ICAgICAgICBhKCksCisgICAgMjIxICAgICAgICBiKCksCisgICAgMjIyICAgICAgICBjKCkKKwor
CitJTlNFUlRJTkcgQVQ6IDIxOTowCitQQVVTRVMgQVQ6IDIxOTowCisgICAgMjE2ICAgIAorICAg
IDIxNyAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKSAmJiB0cnVlOworICAgIDIxOCAgICAKKy09
PiAyMTkgICAgfHRydWUgJiYgKAorICAgIDIyMCAgICAgICAgYSgpLAorICAgIDIyMSAgICAgICAg
YigpLAorICAgIDIyMiAgICAgICAgYygpCisKKworSU5TRVJUSU5HIEFUOiAyMjA6MAorUEFVU0VT
IEFUOiAyMjY6NAorICAgIDIxNyAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKSAmJiB0cnVlOwor
ICAgIDIxOCAgICAKKyAgICAyMTkgICAgdHJ1ZSAmJiAoCisgLT4gMjIwICAgICMgICAgYSgpLAor
ICAgIDIyMSAgICAgICAgYigpLAorICAgIDIyMiAgICAgICAgYygpCisgICAgMjIzICAgICkgJiYg
dHJ1ZTsKKyAgICAyMjQgICAgCisgICAgMjI1ICAgIHRyeSB7CisgPT4gMjI2ICAgICAgICB8dGhy
b3cgYSgpLCBiKCksIGMoKTsKKyAgICAyMjcgICAgfSBjYXRjaCB7IH0KKyAgICAyMjggICAgCisg
ICAgMjI5ICAgIHRyeSB7CisKKworSU5TRVJUSU5HIEFUOiAyMjE6MAorUEFVU0VTIEFUOiAyMjY6
NAorICAgIDIxOCAgICAKKyAgICAyMTkgICAgdHJ1ZSAmJiAoCisgICAgMjIwICAgICAgICBhKCks
CisgLT4gMjIxICAgICMgICAgYigpLAorICAgIDIyMiAgICAgICAgYygpCisgICAgMjIzICAgICkg
JiYgdHJ1ZTsKKyAgICAyMjQgICAgCisgICAgMjI1ICAgIHRyeSB7CisgPT4gMjI2ICAgICAgICB8
dGhyb3cgYSgpLCBiKCksIGMoKTsKKyAgICAyMjcgICAgfSBjYXRjaCB7IH0KKyAgICAyMjggICAg
CisgICAgMjI5ICAgIHRyeSB7CisKKworSU5TRVJUSU5HIEFUOiAyMjI6MAorUEFVU0VTIEFUOiAy
MjY6NAorICAgIDIxOSAgICB0cnVlICYmICgKKyAgICAyMjAgICAgICAgIGEoKSwKKyAgICAyMjEg
ICAgICAgIGIoKSwKKyAtPiAyMjIgICAgIyAgICBjKCkKKyAgICAyMjMgICAgKSAmJiB0cnVlOwor
ICAgIDIyNCAgICAKKyAgICAyMjUgICAgdHJ5IHsKKyA9PiAyMjYgICAgICAgIHx0aHJvdyBhKCks
IGIoKSwgYygpOworICAgIDIyNyAgICB9IGNhdGNoIHsgfQorICAgIDIyOCAgICAKKyAgICAyMjkg
ICAgdHJ5IHsKKworCitJTlNFUlRJTkcgQVQ6IDIyMzowCitQQVVTRVMgQVQ6IDIyNjo0CisgICAg
MjIwICAgICAgICBhKCksCisgICAgMjIxICAgICAgICBiKCksCisgICAgMjIyICAgICAgICBjKCkK
KyAtPiAyMjMgICAgIykgJiYgdHJ1ZTsKKyAgICAyMjQgICAgCisgICAgMjI1ICAgIHRyeSB7Cisg
PT4gMjI2ICAgICAgICB8dGhyb3cgYSgpLCBiKCksIGMoKTsKKyAgICAyMjcgICAgfSBjYXRjaCB7
IH0KKyAgICAyMjggICAgCisgICAgMjI5ICAgIHRyeSB7CisKKworSU5TRVJUSU5HIEFUOiAyMjQ6
MAorUEFVU0VTIEFUOiAyMjY6NAorICAgIDIyMSAgICAgICAgYigpLAorICAgIDIyMiAgICAgICAg
YygpCisgICAgMjIzICAgICkgJiYgdHJ1ZTsKKyAtPiAyMjQgICAgIworICAgIDIyNSAgICB0cnkg
eworID0+IDIyNiAgICAgICAgfHRocm93IGEoKSwgYigpLCBjKCk7CisgICAgMjI3ICAgIH0gY2F0
Y2ggeyB9CisgICAgMjI4ICAgIAorICAgIDIyOSAgICB0cnkgeworCisKK0lOU0VSVElORyBBVDog
MjI1OjAKK1BBVVNFUyBBVDogMjI2OjQKKyAgICAyMjIgICAgICAgIGMoKQorICAgIDIyMyAgICAp
ICYmIHRydWU7CisgICAgMjI0ICAgIAorIC0+IDIyNSAgICAjdHJ5IHsKKyA9PiAyMjYgICAgICAg
IHx0aHJvdyBhKCksIGIoKSwgYygpOworICAgIDIyNyAgICB9IGNhdGNoIHsgfQorICAgIDIyOCAg
ICAKKyAgICAyMjkgICAgdHJ5IHsKKworCitJTlNFUlRJTkcgQVQ6IDIyNjowCitQQVVTRVMgQVQ6
IDIyNjo0CisgICAgMjIzICAgICkgJiYgdHJ1ZTsKKyAgICAyMjQgICAgCisgICAgMjI1ICAgIHRy
eSB7CistPT4gMjI2ICAgICMgICAgfHRocm93IGEoKSwgYigpLCBjKCk7CisgICAgMjI3ICAgIH0g
Y2F0Y2ggeyB9CisgICAgMjI4ICAgIAorICAgIDIyOSAgICB0cnkgeworCisKK0lOU0VSVElORyBB
VDogMjI3OjAKK1BBVVNFUyBBVDogMjMwOjQKKyAgICAyMjQgICAgCisgICAgMjI1ICAgIHRyeSB7
CisgICAgMjI2ICAgICAgICB0aHJvdyBhKCksIGIoKSwgYygpOworIC0+IDIyNyAgICAjfSBjYXRj
aCB7IH0KKyAgICAyMjggICAgCisgICAgMjI5ICAgIHRyeSB7CisgPT4gMjMwICAgICAgICB8dGhy
b3cgYSgpLAorICAgIDIzMSAgICAgICAgICAgIGIoKSwKKyAgICAyMzIgICAgICAgICAgICBjKCk7
CisgICAgMjMzICAgIH0gY2F0Y2ggeyB9CisKKworSU5TRVJUSU5HIEFUOiAyMjg6MAorUEFVU0VT
IEFUOiAyMzA6NAorICAgIDIyNSAgICB0cnkgeworICAgIDIyNiAgICAgICAgdGhyb3cgYSgpLCBi
KCksIGMoKTsKKyAgICAyMjcgICAgfSBjYXRjaCB7IH0KKyAtPiAyMjggICAgIworICAgIDIyOSAg
ICB0cnkgeworID0+IDIzMCAgICAgICAgfHRocm93IGEoKSwKKyAgICAyMzEgICAgICAgICAgICBi
KCksCisgICAgMjMyICAgICAgICAgICAgYygpOworICAgIDIzMyAgICB9IGNhdGNoIHsgfQorCisK
K0lOU0VSVElORyBBVDogMjI5OjAKK1BBVVNFUyBBVDogMjMwOjQKKyAgICAyMjYgICAgICAgIHRo
cm93IGEoKSwgYigpLCBjKCk7CisgICAgMjI3ICAgIH0gY2F0Y2ggeyB9CisgICAgMjI4ICAgIAor
IC0+IDIyOSAgICAjdHJ5IHsKKyA9PiAyMzAgICAgICAgIHx0aHJvdyBhKCksCisgICAgMjMxICAg
ICAgICAgICAgYigpLAorICAgIDIzMiAgICAgICAgICAgIGMoKTsKKyAgICAyMzMgICAgfSBjYXRj
aCB7IH0KKworCitJTlNFUlRJTkcgQVQ6IDIzMDowCitQQVVTRVMgQVQ6IDIzMDo0CisgICAgMjI3
ICAgIH0gY2F0Y2ggeyB9CisgICAgMjI4ICAgIAorICAgIDIyOSAgICB0cnkgeworLT0+IDIzMCAg
ICAjICAgIHx0aHJvdyBhKCksCisgICAgMjMxICAgICAgICAgICAgYigpLAorICAgIDIzMiAgICAg
ICAgICAgIGMoKTsKKyAgICAyMzMgICAgfSBjYXRjaCB7IH0KKworCitJTlNFUlRJTkcgQVQ6IDIz
MTowCitQQVVTRVMgQVQ6IDIzMTo4CisgICAgMjI4ICAgIAorICAgIDIyOSAgICB0cnkgeworICAg
IDIzMCAgICAgICAgdGhyb3cgYSgpLAorLT0+IDIzMSAgICAjICAgICAgICB8YigpLAorICAgIDIz
MiAgICAgICAgICAgIGMoKTsKKyAgICAyMzMgICAgfSBjYXRjaCB7IH0KKyAgICAyMzQgICAgCisK
KworSU5TRVJUSU5HIEFUOiAyMzI6MAorUEFVU0VTIEFUOiAyMzI6OAorICAgIDIyOSAgICB0cnkg
eworICAgIDIzMCAgICAgICAgdGhyb3cgYSgpLAorICAgIDIzMSAgICAgICAgICAgIGIoKSwKKy09
PiAyMzIgICAgIyAgICAgICAgfGMoKTsKKyAgICAyMzMgICAgfSBjYXRjaCB7IH0KKyAgICAyMzQg
ICAgCisKKworSU5TRVJUSU5HIEFUOiAyMzM6MAorUFJPRFVDRVM6IENvdWxkIG5vdCByZXNvbHZl
IGJyZWFrcG9pbnQKKworSU5TRVJUSU5HIEFUOiAyMzQ6MAogUFJPRFVDRVM6IENvdWxkIG5vdCBy
ZXNvbHZlIGJyZWFrcG9pbnQKIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnJlc29s
dmVkQnJlYWtwb2ludC5kdW1wRWFjaExpbmUuRnVuY3Rpb25zCkBAIC00NjE1LDYgKzQ4MTQsNyBA
QCBQQVVTRVMgQVQ6IDEyMjo0CiAtPT4gMTIyICAgICMgICAgfGlubGluZSgpOwogICAgIDEyMyAg
ICB9CiAgICAgMTI0ICAgIAorICAgIDEyNSAgICBmdW5jdGlvbiByZXR1cm5PbmVMaW5lKCkgewog
CiAKIElOU0VSVElORyBBVDogMTIzOjAKQEAgLTQ2MjQsMTEgKzQ4MjQsMTA2IEBAIFBBVVNFUyBB
VDogMTIzOjAKICAgICAxMjIgICAgICAgIGlubGluZSgpOwogLT0+IDEyMyAgICB8fQogICAgIDEy
NCAgICAKKyAgICAxMjUgICAgZnVuY3Rpb24gcmV0dXJuT25lTGluZSgpIHsKKyAgICAxMjYgICAg
ICAgIHJldHVybiBpbmxpbmUoKSwgaW5saW5lKCksIGlubGluZSgpOwogCiAKIElOU0VSVElORyBB
VDogMTI0OjAKIFBST0RVQ0VTOiBDb3VsZCBub3QgcmVzb2x2ZSBicmVha3BvaW50CiAKK0lOU0VS
VElORyBBVDogMTI1OjAKK1BBVVNFUyBBVDogMTI2OjQKKyAgICAxMjIgICAgICAgIGlubGluZSgp
OworICAgIDEyMyAgICB9CisgICAgMTI0ICAgIAorIC0+IDEyNSAgICAjZnVuY3Rpb24gcmV0dXJu
T25lTGluZSgpIHsKKyA9PiAxMjYgICAgICAgIHxyZXR1cm4gaW5saW5lKCksIGlubGluZSgpLCBp
bmxpbmUoKTsKKyAgICAxMjcgICAgfQorICAgIDEyOCAgICAKKyAgICAxMjkgICAgZnVuY3Rpb24g
cmV0dXJuTXVsdGlMaW5lKCkgeworCisKK0lOU0VSVElORyBBVDogMTI2OjAKK1BBVVNFUyBBVDog
MTI2OjQKKyAgICAxMjMgICAgfQorICAgIDEyNCAgICAKKyAgICAxMjUgICAgZnVuY3Rpb24gcmV0
dXJuT25lTGluZSgpIHsKKy09PiAxMjYgICAgIyAgICB8cmV0dXJuIGlubGluZSgpLCBpbmxpbmUo
KSwgaW5saW5lKCk7CisgICAgMTI3ICAgIH0KKyAgICAxMjggICAgCisgICAgMTI5ICAgIGZ1bmN0
aW9uIHJldHVybk11bHRpTGluZSgpIHsKKworCitJTlNFUlRJTkcgQVQ6IDEyNzowCitQQVVTRVMg
QVQ6IDEyNzowCisgICAgMTI0ICAgIAorICAgIDEyNSAgICBmdW5jdGlvbiByZXR1cm5PbmVMaW5l
KCkgeworICAgIDEyNiAgICAgICAgcmV0dXJuIGlubGluZSgpLCBpbmxpbmUoKSwgaW5saW5lKCk7
CistPT4gMTI3ICAgIHx9CisgICAgMTI4ICAgIAorICAgIDEyOSAgICBmdW5jdGlvbiByZXR1cm5N
dWx0aUxpbmUoKSB7CisgICAgMTMwICAgICAgICByZXR1cm4gaW5saW5lKCksCisKKworSU5TRVJU
SU5HIEFUOiAxMjg6MAorUFJPRFVDRVM6IENvdWxkIG5vdCByZXNvbHZlIGJyZWFrcG9pbnQKKwor
SU5TRVJUSU5HIEFUOiAxMjk6MAorUEFVU0VTIEFUOiAxMzA6NAorICAgIDEyNiAgICAgICAgcmV0
dXJuIGlubGluZSgpLCBpbmxpbmUoKSwgaW5saW5lKCk7CisgICAgMTI3ICAgIH0KKyAgICAxMjgg
ICAgCisgLT4gMTI5ICAgICNmdW5jdGlvbiByZXR1cm5NdWx0aUxpbmUoKSB7CisgPT4gMTMwICAg
ICAgICB8cmV0dXJuIGlubGluZSgpLAorICAgIDEzMSAgICAgICAgICAgIGlubGluZSgpLAorICAg
IDEzMiAgICAgICAgICAgIGlubGluZSgpOworICAgIDEzMyAgICB9CisKKworSU5TRVJUSU5HIEFU
OiAxMzA6MAorUEFVU0VTIEFUOiAxMzA6NAorICAgIDEyNyAgICB9CisgICAgMTI4ICAgIAorICAg
IDEyOSAgICBmdW5jdGlvbiByZXR1cm5NdWx0aUxpbmUoKSB7CistPT4gMTMwICAgICMgICAgfHJl
dHVybiBpbmxpbmUoKSwKKyAgICAxMzEgICAgICAgICAgICBpbmxpbmUoKSwKKyAgICAxMzIgICAg
ICAgICAgICBpbmxpbmUoKTsKKyAgICAxMzMgICAgfQorCisKK0lOU0VSVElORyBBVDogMTMxOjAK
K1BBVVNFUyBBVDogMTMxOjgKKyAgICAxMjggICAgCisgICAgMTI5ICAgIGZ1bmN0aW9uIHJldHVy
bk11bHRpTGluZSgpIHsKKyAgICAxMzAgICAgICAgIHJldHVybiBpbmxpbmUoKSwKKy09PiAxMzEg
ICAgIyAgICAgICAgfGlubGluZSgpLAorICAgIDEzMiAgICAgICAgICAgIGlubGluZSgpOworICAg
IDEzMyAgICB9CisgICAgMTM0ICAgIAorCisKK0lOU0VSVElORyBBVDogMTMyOjAKK1BBVVNFUyBB
VDogMTMyOjgKKyAgICAxMjkgICAgZnVuY3Rpb24gcmV0dXJuTXVsdGlMaW5lKCkgeworICAgIDEz
MCAgICAgICAgcmV0dXJuIGlubGluZSgpLAorICAgIDEzMSAgICAgICAgICAgIGlubGluZSgpLAor
LT0+IDEzMiAgICAjICAgICAgICB8aW5saW5lKCk7CisgICAgMTMzICAgIH0KKyAgICAxMzQgICAg
CisKKworSU5TRVJUSU5HIEFUOiAxMzM6MAorUEFVU0VTIEFUOiAxMzM6MAorICAgIDEzMCAgICAg
ICAgcmV0dXJuIGlubGluZSgpLAorICAgIDEzMSAgICAgICAgICAgIGlubGluZSgpLAorICAgIDEz
MiAgICAgICAgICAgIGlubGluZSgpOworLT0+IDEzMyAgICB8fQorICAgIDEzNCAgICAKKworCitJ
TlNFUlRJTkcgQVQ6IDEzNDowCitQUk9EVUNFUzogQ291bGQgbm90IHJlc29sdmUgYnJlYWtwb2lu
dAorCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIucmVzb2x2ZWRCcmVha3BvaW50LmR1
bXBFYWNoTGluZS5Vbmljb2RlCiAKIElOU0VSVElORyBBVDogMDowCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludHMvcmVzb3VyY2VzL2R1bXAtZnVu
Y3Rpb25zLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnRzL3Jl
c291cmNlcy9kdW1wLWZ1bmN0aW9ucy5qcwppbmRleCA3YjQ3ODhjMGI5ZGE4MTYyZmE1OGMyZTMz
ODNiYmIzMjA0YjkxMWUxLi5kYjViZTg5ZWJiZDk1NTk0ZmUyN2VmNzA0MzQ4MWMzYWU2MWJlNGNm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludHMv
cmVzb3VyY2VzL2R1bXAtZnVuY3Rpb25zLmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9icmVha3BvaW50cy9yZXNvdXJjZXMvZHVtcC1mdW5jdGlvbnMuanMKQEAgLTEyMiwz
ICsxMjIsMTMgQEAgZnVuY3Rpb24gY29tbWFNdWx0aUxpbmUoKSB7CiAgICAgaW5saW5lKCksCiAg
ICAgaW5saW5lKCk7CiB9CisKK2Z1bmN0aW9uIHJldHVybk9uZUxpbmUoKSB7CisgICAgcmV0dXJu
IGlubGluZSgpLCBpbmxpbmUoKSwgaW5saW5lKCk7Cit9CisKK2Z1bmN0aW9uIHJldHVybk11bHRp
TGluZSgpIHsKKyAgICByZXR1cm4gaW5saW5lKCksCisgICAgICAgIGlubGluZSgpLAorICAgICAg
ICBpbmxpbmUoKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9icmVha3BvaW50cy9yZXNvdXJjZXMvZHVtcC1nZW5lcmFsLmpzIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnRzL3Jlc291cmNlcy9kdW1wLWdlbmVyYWwuanMKaW5k
ZXggODFjMDVjNjQ0OWE1YjE0Mjg0NTQ5MTFmNmIxYWFiZDc4YWJmMTRhMS4uMjRlMjI3MTI0YTdj
MTgzMzhiOTA2ZGRkOWQzODRmNDFiNGQzZjc2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnRzL3Jlc291cmNlcy9kdW1wLWdlbmVyYWwuanMKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnRzL3Jlc291cmNlcy9k
dW1wLWdlbmVyYWwuanMKQEAgLTIxNSw0ICsyMTUsMjAgQEAgYSgpLAogYigpLAogYygpOwogCi10
cnVlICYmIChhKCksIGIoKSwgYygpKTsKK3RydWUgJiYgKGEoKSwgYigpLCBjKCkpICYmIHRydWU7
CisKK3RydWUgJiYgKAorICAgIGEoKSwKKyAgICBiKCksCisgICAgYygpCispICYmIHRydWU7CisK
K3RyeSB7CisgICAgdGhyb3cgYSgpLCBiKCksIGMoKTsKK30gY2F0Y2ggeyB9CisKK3RyeSB7Cisg
ICAgdGhyb3cgYSgpLAorICAgICAgICBiKCksCisgICAgICAgIGMoKTsKK30gY2F0Y2ggeyB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL2xvZy1w
YXVzZS1sb2NhdGlvbi5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJj
ZXMvbG9nLXBhdXNlLWxvY2F0aW9uLmpzCmluZGV4IDU1MTRjNjRmMGI5NDczZjY0Yzc1YzIzOTU5
MGY4YTYxMzNmZGMyNzguLmYyMjU0ZDc1ODIwNTM4ZGJmZTI5NjcxMGVhYWU2YWZlMzY0MTg1OGIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvbG9n
LXBhdXNlLWxvY2F0aW9uLmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9y
ZXNvdXJjZXMvbG9nLXBhdXNlLWxvY2F0aW9uLmpzCkBAIC0xNTUsNiArMTU1LDEwIEBAIFRlc3RQ
YWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkFDVElPTjogc3RlcC1vdXQiKTsKICAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdl
ci5zdGVwT3V0KCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAibmV4dCI6Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQUNUSU9OOiBzdGVwLW5leHQiKTsKKyAgICAg
ICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5zdGVwTmV4dCgpOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgInJlc3VtZSI6CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
QUNUSU9OOiByZXN1bWUiKTsKICAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUo
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9z
dGVwSW50by1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3Rl
cHBpbmcvc3RlcEludG8tZXhwZWN0ZWQudHh0CmluZGV4IDllNTQyMmM3NzBkYWU5ZmU3NTdiMDY4
ZjJkZWFlYTgyZTkwMmM1OTMuLjc4YTAxMjAyODg3NjM1NDJmNjI3MmM4MzZhYTU2ZWVjOTg4Mjkx
OWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9z
dGVwSW50by1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3N0ZXBwaW5nL3N0ZXBJbnRvLWV4cGVjdGVkLnR4dApAQCAtNDIsNyArNDIsNyBAQCBQQVVTRSBB
VCB0ZXN0U3RhdGVtZW50czoxNToyCiAKIFJFU1VNRUQKIAotLS0gUnVubmluZyB0ZXN0IGNhc2U6
IERlYnVnZ2VyLnN0ZXBJbnRvLmZ1bmN0aW9uCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdn
ZXIuc3RlcEludG8uZnVuY3Rpb25zCiBQQVVTRUQgKGRlYnVnZ2VyLXN0YXRlbWVudCkKIFBBVVNF
IEFUIHRlc3RGdW5jdGlvbnM6MTg6NQogICAgICAxNCAgICB9CkBAIC0xNTEsNyArMTUxLDcgQEAg
UEFVU0UgQVQgdGVzdEV2YWw6Mjg6NQogIC0+ICAyNyAgICAgICAgfGxldCBhZnRlciA9IDI7CiAg
ICAgIDI4ICAgIH0KICAgICAgMjkgICAgCi0gICAgIDMwICAgIGZ1bmN0aW9uIHRlc3RJbm5lckZ1
bmN0aW9uKCkgeworICAgICAzMCAgICBmdW5jdGlvbiB0ZXN0QW5vbnltb3VzRnVuY3Rpb24oKSB7
CiAKIFBBVVNFIEFUIHRlc3RFdmFsOjI5OjIKICAgICAgMjUgICAgICAgIGxldCBiZWZvcmUgPSAx
OwpAQCAtMTU5LDE2ICsxNTksMTYgQEAgUEFVU0UgQVQgdGVzdEV2YWw6Mjk6MgogICAgICAyNyAg
ICAgICAgbGV0IGFmdGVyID0gMjsKICAtPiAgMjggICAgfXwKICAgICAgMjkgICAgCi0gICAgIDMw
ICAgIGZ1bmN0aW9uIHRlc3RJbm5lckZ1bmN0aW9uKCkgeworICAgICAzMCAgICBmdW5jdGlvbiB0
ZXN0QW5vbnltb3VzRnVuY3Rpb24oKSB7CiAgICAgIDMxICAgICAgICAoZnVuY3Rpb24oKSB7CiAK
IFJFU1VNRUQKIAotLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnN0ZXBJbnRvLmlubmVy
RnVuY3Rpb24KKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zdGVwSW50by5hbm9ueW1v
dXNGdW5jdGlvbgogUEFVU0VEIChkZWJ1Z2dlci1zdGF0ZW1lbnQpCiBQQVVTRSBBVCA8YW5vbnlt
b3VzPjozMzo5CiAgICAgIDI5ICAgIAotICAgICAzMCAgICBmdW5jdGlvbiB0ZXN0SW5uZXJGdW5j
dGlvbigpIHsKKyAgICAgMzAgICAgZnVuY3Rpb24gdGVzdEFub255bW91c0Z1bmN0aW9uKCkgewog
ICAgICAzMSAgICAgICAgKGZ1bmN0aW9uKCkgewogIC0+ICAzMiAgICAgICAgICAgIHxkZWJ1Z2dl
cjsKICAgICAgMzMgICAgICAgICAgICBsZXQgaW5uZXIgPSAxOwpAQCAtMTc2LDcgKzE3Niw3IEBA
IFBBVVNFIEFUIDxhbm9ueW1vdXM+OjMzOjkKICAgICAgMzUgICAgICAgIGxldCBvdXRlciA9IDI7
CiAKIFBBVVNFIEFUIDxhbm9ueW1vdXM+OjM0OjkKLSAgICAgMzAgICAgZnVuY3Rpb24gdGVzdElu
bmVyRnVuY3Rpb24oKSB7CisgICAgIDMwICAgIGZ1bmN0aW9uIHRlc3RBbm9ueW1vdXNGdW5jdGlv
bigpIHsKICAgICAgMzEgICAgICAgIChmdW5jdGlvbigpIHsKICAgICAgMzIgICAgICAgICAgICBk
ZWJ1Z2dlcjsKICAtPiAgMzMgICAgICAgICAgICB8bGV0IGlubmVyID0gMTsKQEAgLTE5Myw3ICsx
OTMsNyBAQCBQQVVTRSBBVCA8YW5vbnltb3VzPjozNTo2CiAgICAgIDM2ICAgIH0KICAgICAgMzcg
ICAgCiAKLVBBVVNFIEFUIHRlc3RJbm5lckZ1bmN0aW9uOjM2OjUKK1BBVVNFIEFUIHRlc3RBbm9u
eW1vdXNGdW5jdGlvbjozNjo1CiAgICAgIDMyICAgICAgICAgICAgZGVidWdnZXI7CiAgICAgIDMz
ICAgICAgICAgICAgbGV0IGlubmVyID0gMTsKICAgICAgMzQgICAgICAgIH0pKCk7CkBAIC0yMDIs
NyArMjAyLDcgQEAgUEFVU0UgQVQgdGVzdElubmVyRnVuY3Rpb246MzY6NQogICAgICAzNyAgICAK
ICAgICAgMzggICAgZnVuY3Rpb24gdGVzdENvbW1hcygpIHsKIAotUEFVU0UgQVQgdGVzdElubmVy
RnVuY3Rpb246Mzc6MgorUEFVU0UgQVQgdGVzdEFub255bW91c0Z1bmN0aW9uOjM3OjIKICAgICAg
MzMgICAgICAgICAgICBsZXQgaW5uZXIgPSAxOwogICAgICAzNCAgICAgICAgfSkoKTsKICAgICAg
MzUgICAgICAgIGxldCBvdXRlciA9IDI7CkBAIC0yNDAsNyArMjQwLDcgQEAgUEFVU0UgQVQgdGVz
dENvbW1hczo0Mjo5CiAgLT4gIDQxICAgICAgICAgICAgfHkgPSAyLAogICAgICA0MiAgICAgICAg
ICAgIHogPSAzOwogICAgICA0MyAgICAgICAgYSgpLCBiKCksIGMoKTsKLSAgICAgNDQgICAgICAg
IHRydWUgJiYgKGEoKSwgYigpLCBjKCkpOworICAgICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgpLCBi
KCksIGMoKSkgJiYgdHJ1ZTsKIAogUEFVU0UgQVQgdGVzdENvbW1hczo0Mzo5CiAgICAgIDM5ICAg
ICAgICBkZWJ1Z2dlcjsKQEAgLTI0OCw3ICsyNDgsNyBAQCBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQz
OjkKICAgICAgNDEgICAgICAgICAgICB5ID0gMiwKICAtPiAgNDIgICAgICAgICAgICB8eiA9IDM7
CiAgICAgIDQzICAgICAgICBhKCksIGIoKSwgYygpOwotICAgICA0NCAgICAgICAgdHJ1ZSAmJiAo
YSgpLCBiKCksIGMoKSk7CisgICAgIDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKSAm
JiB0cnVlOwogICAgICA0NSAgICB9CiAKIFBBVVNFIEFUIHRlc3RDb21tYXM6NDQ6NQpAQCAtMjU2
LDcgKzI1Niw3IEBAIFBBVVNFIEFUIHRlc3RDb21tYXM6NDQ6NQogICAgICA0MSAgICAgICAgICAg
IHkgPSAyLAogICAgICA0MiAgICAgICAgICAgIHogPSAzOwogIC0+ICA0MyAgICAgICAgfGEoKSwg
YigpLCBjKCk7Ci0gICAgIDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKTsKKyAgICAg
NDQgICAgICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkpICYmIHRydWU7CiAgICAgIDQ1ICAgIH0K
ICAgICAgNDYgICAgCiAKQEAgLTI4Myw3ICsyODMsNyBAQCBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQ0
OjEwCiAgICAgIDQxICAgICAgICAgICAgeSA9IDIsCiAgICAgIDQyICAgICAgICAgICAgeiA9IDM7
CiAgLT4gIDQzICAgICAgICBhKCksIHxiKCksIGMoKTsKLSAgICAgNDQgICAgICAgIHRydWUgJiYg
KGEoKSwgYigpLCBjKCkpOworICAgICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSkg
JiYgdHJ1ZTsKICAgICAgNDUgICAgfQogICAgICA0NiAgICAKIApAQCAtMzEwLDcgKzMxMCw3IEBA
IFBBVVNFIEFUIHRlc3RDb21tYXM6NDQ6MTUKICAgICAgNDEgICAgICAgICAgICB5ID0gMiwKICAg
ICAgNDIgICAgICAgICAgICB6ID0gMzsKICAtPiAgNDMgICAgICAgIGEoKSwgYigpLCB8YygpOwot
ICAgICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSk7CisgICAgIDQ0ICAgICAgICB0
cnVlICYmIChhKCksIGIoKSwgYygpKSAmJiB0cnVlOwogICAgICA0NSAgICB9CiAgICAgIDQ2ICAg
IAogCkBAIC0zMzYsMTYgKzMzNiw3IEBAIFBBVVNFIEFUIHRlc3RDb21tYXM6NDU6NQogICAgICA0
MSAgICAgICAgICAgIHkgPSAyLAogICAgICA0MiAgICAgICAgICAgIHogPSAzOwogICAgICA0MyAg
ICAgICAgYSgpLCBiKCksIGMoKTsKLSAtPiAgNDQgICAgICAgIHx0cnVlICYmIChhKCksIGIoKSwg
YygpKTsKLSAgICAgNDUgICAgfQotICAgICA0NiAgICAKLSAgICAgNDcgICAgZnVuY3Rpb24gdGVz
dENoYWluZWRFeHByZXNzaW9ucygpIHsKLQotUEFVU0UgQVQgdGVzdENvbW1hczo0NToxNAotICAg
ICA0MSAgICAgICAgICAgIHkgPSAyLAotICAgICA0MiAgICAgICAgICAgIHogPSAzOwotICAgICA0
MyAgICAgICAgYSgpLCBiKCksIGMoKTsKLSAtPiAgNDQgICAgICAgIHRydWUgJiYgKHxhKCksIGIo
KSwgYygpKTsKKyAtPiAgNDQgICAgICAgIHx0cnVlICYmIChhKCksIGIoKSwgYygpKSAmJiB0cnVl
OwogICAgICA0NSAgICB9CiAgICAgIDQ2ICAgIAogICAgICA0NyAgICBmdW5jdGlvbiB0ZXN0Q2hh
aW5lZEV4cHJlc3Npb25zKCkgewpAQCAtMzcyLDcgKzM2Myw3IEBAIFBBVVNFIEFUIHRlc3RDb21t
YXM6NDU6MTkKICAgICAgNDEgICAgICAgICAgICB5ID0gMiwKICAgICAgNDIgICAgICAgICAgICB6
ID0gMzsKICAgICAgNDMgICAgICAgIGEoKSwgYigpLCBjKCk7Ci0gLT4gIDQ0ICAgICAgICB0cnVl
ICYmIChhKCksIHxiKCksIGMoKSk7CisgLT4gIDQ0ICAgICAgICB0cnVlICYmIChhKCksIHxiKCks
IGMoKSkgJiYgdHJ1ZTsKICAgICAgNDUgICAgfQogICAgICA0NiAgICAKICAgICAgNDcgICAgZnVu
Y3Rpb24gdGVzdENoYWluZWRFeHByZXNzaW9ucygpIHsKQEAgLTM5OSw3ICszOTAsNyBAQCBQQVVT
RSBBVCB0ZXN0Q29tbWFzOjQ1OjI0CiAgICAgIDQxICAgICAgICAgICAgeSA9IDIsCiAgICAgIDQy
ICAgICAgICAgICAgeiA9IDM7CiAgICAgIDQzICAgICAgICBhKCksIGIoKSwgYygpOwotIC0+ICA0
NCAgICAgICAgdHJ1ZSAmJiAoYSgpLCBiKCksIHxjKCkpOworIC0+ICA0NCAgICAgICAgdHJ1ZSAm
JiAoYSgpLCBiKCksIHxjKCkpICYmIHRydWU7CiAgICAgIDQ1ICAgIH0KICAgICAgNDYgICAgCiAg
ICAgIDQ3ICAgIGZ1bmN0aW9uIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnMoKSB7CkBAIC00MjUsNyAr
NDE2LDcgQEAgUEFVU0UgQVQgYzo5OjI5CiBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQ2OjIKICAgICAg
NDIgICAgICAgICAgICB6ID0gMzsKICAgICAgNDMgICAgICAgIGEoKSwgYigpLCBjKCk7Ci0gICAg
IDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKTsKKyAgICAgNDQgICAgICAgIHRydWUg
JiYgKGEoKSwgYigpLCBjKCkpICYmIHRydWU7CiAgLT4gIDQ1ICAgIH18CiAgICAgIDQ2ICAgIAog
ICAgICA0NyAgICBmdW5jdGlvbiB0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zKCkgewpAQCAtNDUxLDcg
KzQ0Miw3IEBAIFBBVVNFIEFUIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnM6NTA6NQogIC0+ICA0OSAg
ICAgICAgfGEoKSAmJiBiKCkgJiYgYygpOwogICAgICA1MCAgICB9CiAgICAgIDUxICAgIAotICAg
ICA1MiAgICAvLyAtLS0tLS0tLS0KKyAgICAgNTIgICAgZnVuY3Rpb24gdGVzdERlY2xhcmF0aW9u
cygpIHsKIAogUEFVU0UgQVQgYTo3OjE2CiAgICAgICAzICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgpAQCAtNDc4LDcgKzQ2OSw3IEBAIFBBVVNFIEFUIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnM6
NTA6MTIKICAtPiAgNDkgICAgICAgIGEoKSAmJiB8YigpICYmIGMoKTsKICAgICAgNTAgICAgfQog
ICAgICA1MSAgICAKLSAgICAgNTIgICAgLy8gLS0tLS0tLS0tCisgICAgIDUyICAgIGZ1bmN0aW9u
IHRlc3REZWNsYXJhdGlvbnMoKSB7CiAKIFBBVVNFIEFUIGI6ODoxNgogICAgICAgNCAgICA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2xvZy1wYXVzZS1sb2NhdGlvbi5qcyI+PC9zY3JpcHQ+CkBA
IC01MDUsNyArNDk2LDcgQEAgUEFVU0UgQVQgdGVzdENoYWluZWRFeHByZXNzaW9uczo1MDoxOQog
IC0+ICA0OSAgICAgICAgYSgpICYmIGIoKSAmJiB8YygpOwogICAgICA1MCAgICB9CiAgICAgIDUx
ICAgIAotICAgICA1MiAgICAvLyAtLS0tLS0tLS0KKyAgICAgNTIgICAgZnVuY3Rpb24gdGVzdERl
Y2xhcmF0aW9ucygpIHsKIAogUEFVU0UgQVQgYzo5OjE2CiAgICAgICA1ICAgIDxzY3JpcHQ+CkBA
IC01MzEsOCArNTIyLDE1MSBAQCBQQVVTRSBBVCB0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zOjUxOjIK
ICAgICAgNDkgICAgICAgIGEoKSAmJiBiKCkgJiYgYygpOwogIC0+ICA1MCAgICB9fAogICAgICA1
MSAgICAKLSAgICAgNTIgICAgLy8gLS0tLS0tLS0tCi0gICAgIDUzICAgIAorICAgICA1MiAgICBm
dW5jdGlvbiB0ZXN0RGVjbGFyYXRpb25zKCkgeworICAgICA1MyAgICAgICAgZGVidWdnZXI7CisK
K1JFU1VNRUQKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnN0ZXBJbnRvLmRlY2xh
cmF0aW9ucworUEFVU0VEIChkZWJ1Z2dlci1zdGF0ZW1lbnQpCitQQVVTRSBBVCB0ZXN0RGVjbGFy
YXRpb25zOjU0OjUKKyAgICAgNTAgICAgfQorICAgICA1MSAgICAKKyAgICAgNTIgICAgZnVuY3Rp
b24gdGVzdERlY2xhcmF0aW9ucygpIHsKKyAtPiAgNTMgICAgICAgIHxkZWJ1Z2dlcjsKKyAgICAg
NTQgICAgICAgIGxldCB4ID0gYSgpLAorICAgICA1NSAgICAgICAgICAgIHkgPSBiKCksCisgICAg
IDU2ICAgICAgICAgICAgeiA9IGMoKTsKKworUEFVU0UgQVQgdGVzdERlY2xhcmF0aW9uczo1NTo1
CisgICAgIDUxICAgIAorICAgICA1MiAgICBmdW5jdGlvbiB0ZXN0RGVjbGFyYXRpb25zKCkgewor
ICAgICA1MyAgICAgICAgZGVidWdnZXI7CisgLT4gIDU0ICAgICAgICB8bGV0IHggPSBhKCksCisg
ICAgIDU1ICAgICAgICAgICAgeSA9IGIoKSwKKyAgICAgNTYgICAgICAgICAgICB6ID0gYygpOwor
ICAgICA1NyAgICB9CisKK1BBVVNFIEFUIGE6NzoxNgorICAgICAgMyAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgICAgIDQgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9sb2ctcGF1
c2UtbG9jYXRpb24uanMiPjwvc2NyaXB0PgorICAgICAgNSAgICA8c2NyaXB0PgorIC0+ICAgNiAg
ICBmdW5jdGlvbiBhKCkgeyB8cmV0dXJuICJhIjsgfQorICAgICAgNyAgICBmdW5jdGlvbiBiKCkg
eyByZXR1cm4gImIiOyB9CisgICAgICA4ICAgIGZ1bmN0aW9uIGMoKSB7IHJldHVybiAiYyI7IH0K
KyAgICAgIDkgICAgCisKK1BBVVNFIEFUIGE6NzoyOQorICAgICAgMyAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgICAgIDQgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9sb2ctcGF1
c2UtbG9jYXRpb24uanMiPjwvc2NyaXB0PgorICAgICAgNSAgICA8c2NyaXB0PgorIC0+ICAgNiAg
ICBmdW5jdGlvbiBhKCkgeyByZXR1cm4gImEiOyB9fAorICAgICAgNyAgICBmdW5jdGlvbiBiKCkg
eyByZXR1cm4gImIiOyB9CisgICAgICA4ICAgIGZ1bmN0aW9uIGMoKSB7IHJldHVybiAiYyI7IH0K
KyAgICAgIDkgICAgCisKK1BBVVNFIEFUIHRlc3REZWNsYXJhdGlvbnM6NTY6OQorICAgICA1MiAg
ICBmdW5jdGlvbiB0ZXN0RGVjbGFyYXRpb25zKCkgeworICAgICA1MyAgICAgICAgZGVidWdnZXI7
CisgICAgIDU0ICAgICAgICBsZXQgeCA9IGEoKSwKKyAtPiAgNTUgICAgICAgICAgICB8eSA9IGIo
KSwKKyAgICAgNTYgICAgICAgICAgICB6ID0gYygpOworICAgICA1NyAgICB9CisgICAgIDU4ICAg
IAorCitQQVVTRSBBVCBiOjg6MTYKKyAgICAgIDQgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9sb2ctcGF1c2UtbG9jYXRpb24uanMiPjwvc2NyaXB0PgorICAgICAgNSAgICA8c2NyaXB0Pgor
ICAgICAgNiAgICBmdW5jdGlvbiBhKCkgeyByZXR1cm4gImEiOyB9CisgLT4gICA3ICAgIGZ1bmN0
aW9uIGIoKSB7IHxyZXR1cm4gImIiOyB9CisgICAgICA4ICAgIGZ1bmN0aW9uIGMoKSB7IHJldHVy
biAiYyI7IH0KKyAgICAgIDkgICAgCisgICAgIDEwICAgIGZ1bmN0aW9uIHRlc3RTdGF0ZW1lbnRz
KCkgeworCitQQVVTRSBBVCBiOjg6MjkKKyAgICAgIDQgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9sb2ctcGF1c2UtbG9jYXRpb24uanMiPjwvc2NyaXB0PgorICAgICAgNSAgICA8c2NyaXB0
PgorICAgICAgNiAgICBmdW5jdGlvbiBhKCkgeyByZXR1cm4gImEiOyB9CisgLT4gICA3ICAgIGZ1
bmN0aW9uIGIoKSB7IHJldHVybiAiYiI7IH18CisgICAgICA4ICAgIGZ1bmN0aW9uIGMoKSB7IHJl
dHVybiAiYyI7IH0KKyAgICAgIDkgICAgCisgICAgIDEwICAgIGZ1bmN0aW9uIHRlc3RTdGF0ZW1l
bnRzKCkgeworCitQQVVTRSBBVCB0ZXN0RGVjbGFyYXRpb25zOjU3OjkKKyAgICAgNTMgICAgICAg
IGRlYnVnZ2VyOworICAgICA1NCAgICAgICAgbGV0IHggPSBhKCksCisgICAgIDU1ICAgICAgICAg
ICAgeSA9IGIoKSwKKyAtPiAgNTYgICAgICAgICAgICB8eiA9IGMoKTsKKyAgICAgNTcgICAgfQor
ICAgICA1OCAgICAKKyAgICAgNTkgICAgZnVuY3Rpb24gdGVzdElubmVyRnVuY3Rpb24oKSB7CisK
K1BBVVNFIEFUIGM6OToxNgorICAgICAgNSAgICA8c2NyaXB0PgorICAgICAgNiAgICBmdW5jdGlv
biBhKCkgeyByZXR1cm4gImEiOyB9CisgICAgICA3ICAgIGZ1bmN0aW9uIGIoKSB7IHJldHVybiAi
YiI7IH0KKyAtPiAgIDggICAgZnVuY3Rpb24gYygpIHsgfHJldHVybiAiYyI7IH0KKyAgICAgIDkg
ICAgCisgICAgIDEwICAgIGZ1bmN0aW9uIHRlc3RTdGF0ZW1lbnRzKCkgeworICAgICAxMSAgICAg
ICAgZGVidWdnZXI7CisKK1BBVVNFIEFUIGM6OToyOQorICAgICAgNSAgICA8c2NyaXB0PgorICAg
ICAgNiAgICBmdW5jdGlvbiBhKCkgeyByZXR1cm4gImEiOyB9CisgICAgICA3ICAgIGZ1bmN0aW9u
IGIoKSB7IHJldHVybiAiYiI7IH0KKyAtPiAgIDggICAgZnVuY3Rpb24gYygpIHsgcmV0dXJuICJj
IjsgfXwKKyAgICAgIDkgICAgCisgICAgIDEwICAgIGZ1bmN0aW9uIHRlc3RTdGF0ZW1lbnRzKCkg
eworICAgICAxMSAgICAgICAgZGVidWdnZXI7CisKK1BBVVNFIEFUIHRlc3REZWNsYXJhdGlvbnM6
NTg6MgorICAgICA1NCAgICAgICAgbGV0IHggPSBhKCksCisgICAgIDU1ICAgICAgICAgICAgeSA9
IGIoKSwKKyAgICAgNTYgICAgICAgICAgICB6ID0gYygpOworIC0+ICA1NyAgICB9fAorICAgICA1
OCAgICAKKyAgICAgNTkgICAgZnVuY3Rpb24gdGVzdElubmVyRnVuY3Rpb24oKSB7CisgICAgIDYw
ICAgICAgICBmdW5jdGlvbiBhbHBoYSgpIHsKKworUkVTVU1FRAorCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogRGVidWdnZXIuc3RlcEludG8uaW5uZXJGdW5jdGlvbgorUEFVU0VEIChkZWJ1Z2dlci1z
dGF0ZW1lbnQpCitQQVVTRSBBVCBiZXRhOjY1OjkKKyAgICAgNjEgICAgICAgICAgICBiZXRhKCk7
CisgICAgIDYyICAgICAgICB9CisgICAgIDYzICAgICAgICBmdW5jdGlvbiBiZXRhKCkgeworIC0+
ICA2NCAgICAgICAgICAgIHxkZWJ1Z2dlcjsKKyAgICAgNjUgICAgICAgIH0KKyAgICAgNjYgICAg
ICAgIGFscGhhKCk7CisgICAgIDY3ICAgIH0KKworUEFVU0UgQVQgYmV0YTo2Njo2CisgICAgIDYy
ICAgICAgICB9CisgICAgIDYzICAgICAgICBmdW5jdGlvbiBiZXRhKCkgeworICAgICA2NCAgICAg
ICAgICAgIGRlYnVnZ2VyOworIC0+ICA2NSAgICAgICAgfXwKKyAgICAgNjYgICAgICAgIGFscGhh
KCk7CisgICAgIDY3ICAgIH0KKyAgICAgNjggICAgCisKK1BBVVNFIEFUIGFscGhhOjYzOjYKKyAg
ICAgNTkgICAgZnVuY3Rpb24gdGVzdElubmVyRnVuY3Rpb24oKSB7CisgICAgIDYwICAgICAgICBm
dW5jdGlvbiBhbHBoYSgpIHsKKyAgICAgNjEgICAgICAgICAgICBiZXRhKCk7CisgLT4gIDYyICAg
ICAgICB9fAorICAgICA2MyAgICAgICAgZnVuY3Rpb24gYmV0YSgpIHsKKyAgICAgNjQgICAgICAg
ICAgICBkZWJ1Z2dlcjsKKyAgICAgNjUgICAgICAgIH0KKworUEFVU0UgQVQgdGVzdElubmVyRnVu
Y3Rpb246Njg6MgorICAgICA2NCAgICAgICAgICAgIGRlYnVnZ2VyOworICAgICA2NSAgICAgICAg
fQorICAgICA2NiAgICAgICAgYWxwaGEoKTsKKyAtPiAgNjcgICAgfXwKKyAgICAgNjggICAgCisg
ICAgIDY5ICAgIC8vIC0tLS0tLS0tLQorICAgICA3MCAgICAKIAogUkVTVU1FRAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcEludG8uaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwSW50by5odG1s
CmluZGV4IDI2MjMyMTM2ZmNlNGI3OGI1ZmMyMzEwZmNhOTk5MjhmNWQzZWYzMGQuLjVkZWU5MWVh
MDhhNjNlNTVmYzdmNmZhN2ZiYWEzOGNjMzg4OGFmNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwSW50by5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwSW50by5odG1sCkBAIC0yOCw3ICsy
OCw3IEBAIGZ1bmN0aW9uIHRlc3RFdmFsKCkgewogICAgIGxldCBhZnRlciA9IDI7CiB9CiAKLWZ1
bmN0aW9uIHRlc3RJbm5lckZ1bmN0aW9uKCkgeworZnVuY3Rpb24gdGVzdEFub255bW91c0Z1bmN0
aW9uKCkgewogICAgIChmdW5jdGlvbigpIHsKICAgICAgICAgZGVidWdnZXI7CiAgICAgICAgIGxl
dCBpbm5lciA9IDE7CkBAIC00Miw3ICs0Miw3IEBAIGZ1bmN0aW9uIHRlc3RDb21tYXMoKSB7CiAg
ICAgICAgIHkgPSAyLAogICAgICAgICB6ID0gMzsKICAgICBhKCksIGIoKSwgYygpOwotICAgIHRy
dWUgJiYgKGEoKSwgYigpLCBjKCkpOworICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkpICYmIHRy
dWU7CiB9CiAKIGZ1bmN0aW9uIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnMoKSB7CkBAIC01MCwxMyAr
NTAsMzAgQEAgZnVuY3Rpb24gdGVzdENoYWluZWRFeHByZXNzaW9ucygpIHsKICAgICBhKCkgJiYg
YigpICYmIGMoKTsKIH0KIAorZnVuY3Rpb24gdGVzdERlY2xhcmF0aW9ucygpIHsKKyAgICBkZWJ1
Z2dlcjsKKyAgICBsZXQgeCA9IGEoKSwKKyAgICAgICAgeSA9IGIoKSwKKyAgICAgICAgeiA9IGMo
KTsKK30KKworZnVuY3Rpb24gdGVzdElubmVyRnVuY3Rpb24oKSB7CisgICAgZnVuY3Rpb24gYWxw
aGEoKSB7CisgICAgICAgIGJldGEoKTsKKyAgICB9CisgICAgZnVuY3Rpb24gYmV0YSgpIHsKKyAg
ICAgICAgZGVidWdnZXI7CisgICAgfQorICAgIGFscGhhKCk7Cit9CisKIC8vIC0tLS0tLS0tLQog
CiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0
ZUFzeW5jU3VpdGUoIkRlYnVnZ2VyLnN0ZXBJbnRvIik7CiAKLSAgICAvLyBBbHdheXMgc3RlcC1p
biB3aGVuIGNhbGwgZnJhbWVzIGNoYW5nZS4KKyAgICAvLyBBbHdheXMgc3RlcC1pbnRvIHdoZW4g
Y2FsbCBmcmFtZXMgY2hhbmdlLgogICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3Rl
bmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCAoZXZlbnQp
ID0+IHsKICAgICAgICAgaWYgKCFXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lKQog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtODcsNyArMTA0LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgfSk7CiAKICAgICBhZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zdGVw
SW50by5mdW5jdGlvbiIsCisgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zdGVwSW50by5mdW5jdGlv
bnMiLAogICAgICAgICBkZXNjcmlwdGlvbjogInN0ZXAtaW50byBzaG91bGQgc3RlcCBpbnRvIGZ1
bmN0aW9uIGNhbGxzLiIsCiAgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RGdW5j
dGlvbnMpIiwKICAgICB9KTsKQEAgLTk5LDkgKzExNiw5IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
IH0pOwogCiAgICAgYWRkVGVzdENhc2UoewotICAgICAgICBuYW1lOiAiRGVidWdnZXIuc3RlcElu
dG8uaW5uZXJGdW5jdGlvbiIsCisgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zdGVwSW50by5hbm9u
eW1vdXNGdW5jdGlvbiIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAic3RlcC1pbnRvIHNob3VsZCBz
dGVwIG91dCBvZiBhIGZ1bmN0aW9uIHRvIGl0cyBjYWxsZXIuIiwKLSAgICAgICAgZXhwcmVzc2lv
bjogInNldFRpbWVvdXQodGVzdElubmVyRnVuY3Rpb24pIiwKKyAgICAgICAgZXhwcmVzc2lvbjog
InNldFRpbWVvdXQodGVzdEFub255bW91c0Z1bmN0aW9uKSIsCiAgICAgfSk7CiAKICAgICBhZGRU
ZXN0Q2FzZSh7CkBAIC0xMTYsNiArMTMzLDE4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBl
eHByZXNzaW9uOiAic2V0VGltZW91dCh0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zKSIsCiAgICAgfSk7
CiAKKyAgICBhZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zdGVwSW50by5k
ZWNsYXJhdGlvbnMiLAorICAgICAgICBkZXNjcmlwdGlvbjogInN0ZXAtaW50byBzaG91bGQgc3Rl
cCBpbnRvIGVhY2ggZGVjbGFyYXRpb24uIiwKKyAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVv
dXQodGVzdERlY2xhcmF0aW9ucykiLAorICAgIH0pOworCisgICAgYWRkVGVzdENhc2UoeworICAg
ICAgICBuYW1lOiAiRGVidWdnZXIuc3RlcEludG8uaW5uZXJGdW5jdGlvbiIsCisgICAgICAgIGRl
c2NyaXB0aW9uOiAic3RlcC1pbnRvIHNob3VsZCBzdGVwIG91dCBvZiBhIGZ1bmN0aW9uIHRvIGl0
cyBjYWxsZXIuIiwKKyAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQodGVzdElubmVyRnVu
Y3Rpb24pIiwKKyAgICB9KTsKKwogICAgIGxvYWRNYWluUGFnZUNvbnRlbnQoKS50aGVuKCgpID0+
IHsKICAgICAgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CiAgICAgfSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcE5leHQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0
ZXBOZXh0LWV4cGVjdGVkLnR4dAppbmRleCBkZGIxZWEyNzk2NjUxZDU3ZDJiNDM5NWE0MjUyODRl
MGY4MTZmNDg2Li42MWNhMGIxOTg5Y2M3MGQxNjEwYmY4N2U3NmYxMGI2NThkZWQ5MGI1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcE5leHQt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGlu
Zy9zdGVwTmV4dC1leHBlY3RlZC50eHQKQEAgLTQyLDcgKzQyLDcgQEAgUEFVU0UgQVQgdGVzdFN0
YXRlbWVudHM6MTU6MgogCiBSRVNVTUVECiAKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dl
ci5zdGVwTmV4dC5mdW5jdGlvbgorLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnN0ZXBO
ZXh0LmZ1bmN0aW9ucwogUEFVU0VEIChkZWJ1Z2dlci1zdGF0ZW1lbnQpCiBQQVVTRSBBVCB0ZXN0
RnVuY3Rpb25zOjE4OjUKICAgICAgMTQgICAgfQpAQCAtMTI3LDcgKzEyNyw3IEBAIFBBVVNFIEFU
IHRlc3RFdmFsOjI4OjUKICAtPiAgMjcgICAgICAgIHxsZXQgYWZ0ZXIgPSAyOwogICAgICAyOCAg
ICB9CiAgICAgIDI5ICAgIAotICAgICAzMCAgICBmdW5jdGlvbiB0ZXN0SW5uZXJGdW5jdGlvbigp
IHsKKyAgICAgMzAgICAgZnVuY3Rpb24gdGVzdEFub255bW91c0Z1bmN0aW9uKCkgewogCiBQQVVT
RSBBVCB0ZXN0RXZhbDoyOToyCiAgICAgIDI1ICAgICAgICBsZXQgYmVmb3JlID0gMTsKQEAgLTEz
NSwxNiArMTM1LDE2IEBAIFBBVVNFIEFUIHRlc3RFdmFsOjI5OjIKICAgICAgMjcgICAgICAgIGxl
dCBhZnRlciA9IDI7CiAgLT4gIDI4ICAgIH18CiAgICAgIDI5ICAgIAotICAgICAzMCAgICBmdW5j
dGlvbiB0ZXN0SW5uZXJGdW5jdGlvbigpIHsKKyAgICAgMzAgICAgZnVuY3Rpb24gdGVzdEFub255
bW91c0Z1bmN0aW9uKCkgewogICAgICAzMSAgICAgICAgKGZ1bmN0aW9uKCkgewogCiBSRVNVTUVE
CiAKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zdGVwTmV4dC5pbm5lckZ1bmN0aW9u
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIuc3RlcE5leHQuYW5vbnltb3VzRnVuY3Rp
b24KIFBBVVNFRCAoZGVidWdnZXItc3RhdGVtZW50KQogUEFVU0UgQVQgPGFub255bW91cz46MzM6
OQogICAgICAyOSAgICAKLSAgICAgMzAgICAgZnVuY3Rpb24gdGVzdElubmVyRnVuY3Rpb24oKSB7
CisgICAgIDMwICAgIGZ1bmN0aW9uIHRlc3RBbm9ueW1vdXNGdW5jdGlvbigpIHsKICAgICAgMzEg
ICAgICAgIChmdW5jdGlvbigpIHsKICAtPiAgMzIgICAgICAgICAgICB8ZGVidWdnZXI7CiAgICAg
IDMzICAgICAgICAgICAgbGV0IGlubmVyID0gMTsKQEAgLTE1Miw3ICsxNTIsNyBAQCBQQVVTRSBB
VCA8YW5vbnltb3VzPjozMzo5CiAgICAgIDM1ICAgICAgICBsZXQgb3V0ZXIgPSAyOwogCiBQQVVT
RSBBVCA8YW5vbnltb3VzPjozNDo5Ci0gICAgIDMwICAgIGZ1bmN0aW9uIHRlc3RJbm5lckZ1bmN0
aW9uKCkgeworICAgICAzMCAgICBmdW5jdGlvbiB0ZXN0QW5vbnltb3VzRnVuY3Rpb24oKSB7CiAg
ICAgIDMxICAgICAgICAoZnVuY3Rpb24oKSB7CiAgICAgIDMyICAgICAgICAgICAgZGVidWdnZXI7
CiAgLT4gIDMzICAgICAgICAgICAgfGxldCBpbm5lciA9IDE7CkBAIC0xNjksNyArMTY5LDcgQEAg
UEFVU0UgQVQgPGFub255bW91cz46MzU6NgogICAgICAzNiAgICB9CiAgICAgIDM3ICAgIAogCi1Q
QVVTRSBBVCB0ZXN0SW5uZXJGdW5jdGlvbjozNjo1CitQQVVTRSBBVCB0ZXN0QW5vbnltb3VzRnVu
Y3Rpb246MzY6NQogICAgICAzMiAgICAgICAgICAgIGRlYnVnZ2VyOwogICAgICAzMyAgICAgICAg
ICAgIGxldCBpbm5lciA9IDE7CiAgICAgIDM0ICAgICAgICB9KSgpOwpAQCAtMTc4LDcgKzE3OCw3
IEBAIFBBVVNFIEFUIHRlc3RJbm5lckZ1bmN0aW9uOjM2OjUKICAgICAgMzcgICAgCiAgICAgIDM4
ICAgIGZ1bmN0aW9uIHRlc3RDb21tYXMoKSB7CiAKLVBBVVNFIEFUIHRlc3RJbm5lckZ1bmN0aW9u
OjM3OjIKK1BBVVNFIEFUIHRlc3RBbm9ueW1vdXNGdW5jdGlvbjozNzoyCiAgICAgIDMzICAgICAg
ICAgICAgbGV0IGlubmVyID0gMTsKICAgICAgMzQgICAgICAgIH0pKCk7CiAgICAgIDM1ICAgICAg
ICBsZXQgb3V0ZXIgPSAyOwpAQCAtMjE2LDcgKzIxNiw3IEBAIFBBVVNFIEFUIHRlc3RDb21tYXM6
NDI6OQogIC0+ICA0MSAgICAgICAgICAgIHx5ID0gMiwKICAgICAgNDIgICAgICAgICAgICB6ID0g
MzsKICAgICAgNDMgICAgICAgIGEoKSwgYigpLCBjKCk7Ci0gICAgIDQ0ICAgICAgICB0cnVlICYm
IChhKCksIGIoKSwgYygpKTsKKyAgICAgNDQgICAgICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkp
ICYmIHRydWU7CiAKIFBBVVNFIEFUIHRlc3RDb21tYXM6NDM6OQogICAgICAzOSAgICAgICAgZGVi
dWdnZXI7CkBAIC0yMjQsNyArMjI0LDcgQEAgUEFVU0UgQVQgdGVzdENvbW1hczo0Mzo5CiAgICAg
IDQxICAgICAgICAgICAgeSA9IDIsCiAgLT4gIDQyICAgICAgICAgICAgfHogPSAzOwogICAgICA0
MyAgICAgICAgYSgpLCBiKCksIGMoKTsKLSAgICAgNDQgICAgICAgIHRydWUgJiYgKGEoKSwgYigp
LCBjKCkpOworICAgICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSkgJiYgdHJ1ZTsK
ICAgICAgNDUgICAgfQogCiBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQ0OjUKQEAgLTIzMiw3ICsyMzIs
NyBAQCBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQ0OjUKICAgICAgNDEgICAgICAgICAgICB5ID0gMiwK
ICAgICAgNDIgICAgICAgICAgICB6ID0gMzsKICAtPiAgNDMgICAgICAgIHxhKCksIGIoKSwgYygp
OwotICAgICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSk7CisgICAgIDQ0ICAgICAg
ICB0cnVlICYmIChhKCksIGIoKSwgYygpKSAmJiB0cnVlOwogICAgICA0NSAgICB9CiAgICAgIDQ2
ICAgIAogCkBAIC0yNDEsNyArMjQxLDcgQEAgUEFVU0UgQVQgdGVzdENvbW1hczo0NDoxMAogICAg
ICA0MSAgICAgICAgICAgIHkgPSAyLAogICAgICA0MiAgICAgICAgICAgIHogPSAzOwogIC0+ICA0
MyAgICAgICAgYSgpLCB8YigpLCBjKCk7Ci0gICAgIDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIo
KSwgYygpKTsKKyAgICAgNDQgICAgICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkpICYmIHRydWU7
CiAgICAgIDQ1ICAgIH0KICAgICAgNDYgICAgCiAKQEAgLTI1MCw3ICsyNTAsNyBAQCBQQVVTRSBB
VCB0ZXN0Q29tbWFzOjQ0OjE1CiAgICAgIDQxICAgICAgICAgICAgeSA9IDIsCiAgICAgIDQyICAg
ICAgICAgICAgeiA9IDM7CiAgLT4gIDQzICAgICAgICBhKCksIGIoKSwgfGMoKTsKLSAgICAgNDQg
ICAgICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkpOworICAgICA0NCAgICAgICAgdHJ1ZSAmJiAo
YSgpLCBiKCksIGMoKSkgJiYgdHJ1ZTsKICAgICAgNDUgICAgfQogICAgICA0NiAgICAKIApAQCAt
MjU4LDE2ICsyNTgsNyBAQCBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQ1OjUKICAgICAgNDEgICAgICAg
ICAgICB5ID0gMiwKICAgICAgNDIgICAgICAgICAgICB6ID0gMzsKICAgICAgNDMgICAgICAgIGEo
KSwgYigpLCBjKCk7Ci0gLT4gIDQ0ICAgICAgICB8dHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSk7Ci0g
ICAgIDQ1ICAgIH0KLSAgICAgNDYgICAgCi0gICAgIDQ3ICAgIGZ1bmN0aW9uIHRlc3RDaGFpbmVk
RXhwcmVzc2lvbnMoKSB7Ci0KLVBBVVNFIEFUIHRlc3RDb21tYXM6NDU6MTQKLSAgICAgNDEgICAg
ICAgICAgICB5ID0gMiwKLSAgICAgNDIgICAgICAgICAgICB6ID0gMzsKLSAgICAgNDMgICAgICAg
IGEoKSwgYigpLCBjKCk7Ci0gLT4gIDQ0ICAgICAgICB0cnVlICYmICh8YSgpLCBiKCksIGMoKSk7
CisgLT4gIDQ0ICAgICAgICB8dHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSkgJiYgdHJ1ZTsKICAgICAg
NDUgICAgfQogICAgICA0NiAgICAKICAgICAgNDcgICAgZnVuY3Rpb24gdGVzdENoYWluZWRFeHBy
ZXNzaW9ucygpIHsKQEAgLTI3Niw3ICsyNjcsNyBAQCBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQ1OjE5
CiAgICAgIDQxICAgICAgICAgICAgeSA9IDIsCiAgICAgIDQyICAgICAgICAgICAgeiA9IDM7CiAg
ICAgIDQzICAgICAgICBhKCksIGIoKSwgYygpOwotIC0+ICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgp
LCB8YigpLCBjKCkpOworIC0+ICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgpLCB8YigpLCBjKCkpICYm
IHRydWU7CiAgICAgIDQ1ICAgIH0KICAgICAgNDYgICAgCiAgICAgIDQ3ICAgIGZ1bmN0aW9uIHRl
c3RDaGFpbmVkRXhwcmVzc2lvbnMoKSB7CkBAIC0yODUsNyArMjc2LDcgQEAgUEFVU0UgQVQgdGVz
dENvbW1hczo0NToyNAogICAgICA0MSAgICAgICAgICAgIHkgPSAyLAogICAgICA0MiAgICAgICAg
ICAgIHogPSAzOwogICAgICA0MyAgICAgICAgYSgpLCBiKCksIGMoKTsKLSAtPiAgNDQgICAgICAg
IHRydWUgJiYgKGEoKSwgYigpLCB8YygpKTsKKyAtPiAgNDQgICAgICAgIHRydWUgJiYgKGEoKSwg
YigpLCB8YygpKSAmJiB0cnVlOwogICAgICA0NSAgICB9CiAgICAgIDQ2ICAgIAogICAgICA0NyAg
ICBmdW5jdGlvbiB0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zKCkgewpAQCAtMjkzLDcgKzI4NCw3IEBA
IFBBVVNFIEFUIHRlc3RDb21tYXM6NDU6MjQKIFBBVVNFIEFUIHRlc3RDb21tYXM6NDY6MgogICAg
ICA0MiAgICAgICAgICAgIHogPSAzOwogICAgICA0MyAgICAgICAgYSgpLCBiKCksIGMoKTsKLSAg
ICAgNDQgICAgICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkpOworICAgICA0NCAgICAgICAgdHJ1
ZSAmJiAoYSgpLCBiKCksIGMoKSkgJiYgdHJ1ZTsKICAtPiAgNDUgICAgfXwKICAgICAgNDYgICAg
CiAgICAgIDQ3ICAgIGZ1bmN0aW9uIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnMoKSB7CkBAIC0zMTks
NyArMzEwLDcgQEAgUEFVU0UgQVQgdGVzdENoYWluZWRFeHByZXNzaW9uczo1MDo1CiAgLT4gIDQ5
ICAgICAgICB8YSgpICYmIGIoKSAmJiBjKCk7CiAgICAgIDUwICAgIH0KICAgICAgNTEgICAgCi0g
ICAgIDUyICAgIC8vIC0tLS0tLS0tLQorICAgICA1MiAgICBmdW5jdGlvbiB0ZXN0RGVjbGFyYXRp
b25zKCkgewogCiBQQVVTRSBBVCB0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zOjUwOjEyCiAgICAgIDQ2
ICAgIApAQCAtMzI4LDcgKzMxOSw3IEBAIFBBVVNFIEFUIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnM6
NTA6MTIKICAtPiAgNDkgICAgICAgIGEoKSAmJiB8YigpICYmIGMoKTsKICAgICAgNTAgICAgfQog
ICAgICA1MSAgICAKLSAgICAgNTIgICAgLy8gLS0tLS0tLS0tCisgICAgIDUyICAgIGZ1bmN0aW9u
IHRlc3REZWNsYXJhdGlvbnMoKSB7CiAKIFBBVVNFIEFUIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnM6
NTA6MTkKICAgICAgNDYgICAgCkBAIC0zMzcsNyArMzI4LDcgQEAgUEFVU0UgQVQgdGVzdENoYWlu
ZWRFeHByZXNzaW9uczo1MDoxOQogIC0+ICA0OSAgICAgICAgYSgpICYmIGIoKSAmJiB8YygpOwog
ICAgICA1MCAgICB9CiAgICAgIDUxICAgIAotICAgICA1MiAgICAvLyAtLS0tLS0tLS0KKyAgICAg
NTIgICAgZnVuY3Rpb24gdGVzdERlY2xhcmF0aW9ucygpIHsKIAogUEFVU0UgQVQgdGVzdENoYWlu
ZWRFeHByZXNzaW9uczo1MToyCiAgICAgIDQ3ICAgIGZ1bmN0aW9uIHRlc3RDaGFpbmVkRXhwcmVz
c2lvbnMoKSB7CkBAIC0zNDUsOCArMzM2LDk3IEBAIFBBVVNFIEFUIHRlc3RDaGFpbmVkRXhwcmVz
c2lvbnM6NTE6MgogICAgICA0OSAgICAgICAgYSgpICYmIGIoKSAmJiBjKCk7CiAgLT4gIDUwICAg
IH18CiAgICAgIDUxICAgIAotICAgICA1MiAgICAvLyAtLS0tLS0tLS0KLSAgICAgNTMgICAgCisg
ICAgIDUyICAgIGZ1bmN0aW9uIHRlc3REZWNsYXJhdGlvbnMoKSB7CisgICAgIDUzICAgICAgICBk
ZWJ1Z2dlcjsKKworUkVTVU1FRAorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIuc3Rl
cE5leHQuZGVjbGFyYXRpb25zCitQQVVTRUQgKGRlYnVnZ2VyLXN0YXRlbWVudCkKK1BBVVNFIEFU
IHRlc3REZWNsYXJhdGlvbnM6NTQ6NQorICAgICA1MCAgICB9CisgICAgIDUxICAgIAorICAgICA1
MiAgICBmdW5jdGlvbiB0ZXN0RGVjbGFyYXRpb25zKCkgeworIC0+ICA1MyAgICAgICAgfGRlYnVn
Z2VyOworICAgICA1NCAgICAgICAgbGV0IHggPSBhKCksCisgICAgIDU1ICAgICAgICAgICAgeSA9
IGIoKSwKKyAgICAgNTYgICAgICAgICAgICB6ID0gYygpOworCitQQVVTRSBBVCB0ZXN0RGVjbGFy
YXRpb25zOjU1OjUKKyAgICAgNTEgICAgCisgICAgIDUyICAgIGZ1bmN0aW9uIHRlc3REZWNsYXJh
dGlvbnMoKSB7CisgICAgIDUzICAgICAgICBkZWJ1Z2dlcjsKKyAtPiAgNTQgICAgICAgIHxsZXQg
eCA9IGEoKSwKKyAgICAgNTUgICAgICAgICAgICB5ID0gYigpLAorICAgICA1NiAgICAgICAgICAg
IHogPSBjKCk7CisgICAgIDU3ICAgIH0KKworUEFVU0UgQVQgdGVzdERlY2xhcmF0aW9uczo1Njo5
CisgICAgIDUyICAgIGZ1bmN0aW9uIHRlc3REZWNsYXJhdGlvbnMoKSB7CisgICAgIDUzICAgICAg
ICBkZWJ1Z2dlcjsKKyAgICAgNTQgICAgICAgIGxldCB4ID0gYSgpLAorIC0+ICA1NSAgICAgICAg
ICAgIHx5ID0gYigpLAorICAgICA1NiAgICAgICAgICAgIHogPSBjKCk7CisgICAgIDU3ICAgIH0K
KyAgICAgNTggICAgCisKK1BBVVNFIEFUIHRlc3REZWNsYXJhdGlvbnM6NTc6OQorICAgICA1MyAg
ICAgICAgZGVidWdnZXI7CisgICAgIDU0ICAgICAgICBsZXQgeCA9IGEoKSwKKyAgICAgNTUgICAg
ICAgICAgICB5ID0gYigpLAorIC0+ICA1NiAgICAgICAgICAgIHx6ID0gYygpOworICAgICA1NyAg
ICB9CisgICAgIDU4ICAgIAorICAgICA1OSAgICBmdW5jdGlvbiB0ZXN0SW5uZXJGdW5jdGlvbigp
IHsKKworUEFVU0UgQVQgdGVzdERlY2xhcmF0aW9uczo1ODoyCisgICAgIDU0ICAgICAgICBsZXQg
eCA9IGEoKSwKKyAgICAgNTUgICAgICAgICAgICB5ID0gYigpLAorICAgICA1NiAgICAgICAgICAg
IHogPSBjKCk7CisgLT4gIDU3ICAgIH18CisgICAgIDU4ICAgIAorICAgICA1OSAgICBmdW5jdGlv
biB0ZXN0SW5uZXJGdW5jdGlvbigpIHsKKyAgICAgNjAgICAgICAgIGZ1bmN0aW9uIGFscGhhKCkg
eworCitSRVNVTUVECisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zdGVwTmV4dC5p
bm5lckZ1bmN0aW9uCitQQVVTRUQgKGRlYnVnZ2VyLXN0YXRlbWVudCkKK1BBVVNFIEFUIGJldGE6
NjU6OQorICAgICA2MSAgICAgICAgICAgIGJldGEoKTsKKyAgICAgNjIgICAgICAgIH0KKyAgICAg
NjMgICAgICAgIGZ1bmN0aW9uIGJldGEoKSB7CisgLT4gIDY0ICAgICAgICAgICAgfGRlYnVnZ2Vy
OworICAgICA2NSAgICAgICAgfQorICAgICA2NiAgICAgICAgYWxwaGEoKTsKKyAgICAgNjcgICAg
fQorCitQQVVTRSBBVCBiZXRhOjY2OjYKKyAgICAgNjIgICAgICAgIH0KKyAgICAgNjMgICAgICAg
IGZ1bmN0aW9uIGJldGEoKSB7CisgICAgIDY0ICAgICAgICAgICAgZGVidWdnZXI7CisgLT4gIDY1
ICAgICAgICB9fAorICAgICA2NiAgICAgICAgYWxwaGEoKTsKKyAgICAgNjcgICAgfQorICAgICA2
OCAgICAKKworUEFVU0UgQVQgYWxwaGE6NjM6NgorICAgICA1OSAgICBmdW5jdGlvbiB0ZXN0SW5u
ZXJGdW5jdGlvbigpIHsKKyAgICAgNjAgICAgICAgIGZ1bmN0aW9uIGFscGhhKCkgeworICAgICA2
MSAgICAgICAgICAgIGJldGEoKTsKKyAtPiAgNjIgICAgICAgIH18CisgICAgIDYzICAgICAgICBm
dW5jdGlvbiBiZXRhKCkgeworICAgICA2NCAgICAgICAgICAgIGRlYnVnZ2VyOworICAgICA2NSAg
ICAgICAgfQorCitQQVVTRSBBVCB0ZXN0SW5uZXJGdW5jdGlvbjo2ODoyCisgICAgIDY0ICAgICAg
ICAgICAgZGVidWdnZXI7CisgICAgIDY1ICAgICAgICB9CisgICAgIDY2ICAgICAgICBhbHBoYSgp
OworIC0+ICA2NyAgICB9fAorICAgICA2OCAgICAKKyAgICAgNjkgICAgLy8gLS0tLS0tLS0tCisg
ICAgIDcwICAgIAogCiBSRVNVTUVECiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwTmV4dC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBOZXh0Lmh0bWwKaW5kZXggMmVkZGRhMWMyN2MxYWIwY2Ni
MzgxZGRkNWNjMDlhMDA4MmNhNDY5OC4uZTUyZDYxMzY1NzFmYTM0ZDEwZWExOTI1MmU0ZDgxMTcy
YzM2ZWQxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBw
aW5nL3N0ZXBOZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0
ZXBwaW5nL3N0ZXBOZXh0Lmh0bWwKQEAgLTI4LDcgKzI4LDcgQEAgZnVuY3Rpb24gdGVzdEV2YWwo
KSB7CiAgICAgbGV0IGFmdGVyID0gMjsKIH0KIAotZnVuY3Rpb24gdGVzdElubmVyRnVuY3Rpb24o
KSB7CitmdW5jdGlvbiB0ZXN0QW5vbnltb3VzRnVuY3Rpb24oKSB7CiAgICAgKGZ1bmN0aW9uKCkg
ewogICAgICAgICBkZWJ1Z2dlcjsKICAgICAgICAgbGV0IGlubmVyID0gMTsKQEAgLTQyLDcgKzQy
LDcgQEAgZnVuY3Rpb24gdGVzdENvbW1hcygpIHsKICAgICAgICAgeSA9IDIsCiAgICAgICAgIHog
PSAzOwogICAgIGEoKSwgYigpLCBjKCk7Ci0gICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSk7Cisg
ICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSkgJiYgdHJ1ZTsKIH0KIAogZnVuY3Rpb24gdGVzdENo
YWluZWRFeHByZXNzaW9ucygpIHsKQEAgLTUwLDYgKzUwLDIzIEBAIGZ1bmN0aW9uIHRlc3RDaGFp
bmVkRXhwcmVzc2lvbnMoKSB7CiAgICAgYSgpICYmIGIoKSAmJiBjKCk7CiB9CiAKK2Z1bmN0aW9u
IHRlc3REZWNsYXJhdGlvbnMoKSB7CisgICAgZGVidWdnZXI7CisgICAgbGV0IHggPSBhKCksCisg
ICAgICAgIHkgPSBiKCksCisgICAgICAgIHogPSBjKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RJbm5l
ckZ1bmN0aW9uKCkgeworICAgIGZ1bmN0aW9uIGFscGhhKCkgeworICAgICAgICBiZXRhKCk7Cisg
ICAgfQorICAgIGZ1bmN0aW9uIGJldGEoKSB7CisgICAgICAgIGRlYnVnZ2VyOworICAgIH0KKyAg
ICBhbHBoYSgpOworfQorCiAvLyAtLS0tLS0tLS0KIAogZnVuY3Rpb24gdGVzdCgpCkBAIC04Nyw3
ICsxMDQsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB9KTsKIAogICAgIGFkZFRlc3RDYXNlKHsK
LSAgICAgICAgbmFtZTogIkRlYnVnZ2VyLnN0ZXBOZXh0LmZ1bmN0aW9uIiwKKyAgICAgICAgbmFt
ZTogIkRlYnVnZ2VyLnN0ZXBOZXh0LmZ1bmN0aW9ucyIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAi
c3RlcC1uZXh0IHNob3VsZCBzdGVwIG92ZXIgZnVuY3Rpb24gY2FsbHMuIiwKICAgICAgICAgZXhw
cmVzc2lvbjogInNldFRpbWVvdXQodGVzdEZ1bmN0aW9ucykiLAogICAgIH0pOwpAQCAtOTksOSAr
MTE2LDkgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgfSk7CiAKICAgICBhZGRUZXN0Q2FzZSh7Ci0g
ICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zdGVwTmV4dC5pbm5lckZ1bmN0aW9uIiwKKyAgICAgICAg
bmFtZTogIkRlYnVnZ2VyLnN0ZXBOZXh0LmFub255bW91c0Z1bmN0aW9uIiwKICAgICAgICAgZGVz
Y3JpcHRpb246ICJzdGVwLW5leHQgc2hvdWxkIHN0ZXAgb3V0IG9mIGEgZnVuY3Rpb24gdG8gaXRz
IGNhbGxlci4iLAotICAgICAgICBleHByZXNzaW9uOiAic2V0VGltZW91dCh0ZXN0SW5uZXJGdW5j
dGlvbikiLAorICAgICAgICBleHByZXNzaW9uOiAic2V0VGltZW91dCh0ZXN0QW5vbnltb3VzRnVu
Y3Rpb24pIiwKICAgICB9KTsKIAogICAgIGFkZFRlc3RDYXNlKHsKQEAgLTExNiw2ICsxMzMsMTgg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RD
aGFpbmVkRXhwcmVzc2lvbnMpIiwKICAgICB9KTsKIAorICAgIGFkZFRlc3RDYXNlKHsKKyAgICAg
ICAgbmFtZTogIkRlYnVnZ2VyLnN0ZXBOZXh0LmRlY2xhcmF0aW9ucyIsCisgICAgICAgIGRlc2Ny
aXB0aW9uOiAic3RlcC1uZXh0IHNob3VsZCBzdGVwIHRvIGVhY2ggZGVjbGFyYXRpb24uIiwKKyAg
ICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQodGVzdERlY2xhcmF0aW9ucykiLAorICAgIH0p
OworCisgICAgYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRGVidWdnZXIuc3RlcE5leHQu
aW5uZXJGdW5jdGlvbiIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAic3RlcC1uZXh0IHNob3VsZCBz
dGVwIG91dCBvZiBhIGZ1bmN0aW9uIHRvIGl0cyBjYWxsZXIuIiwKKyAgICAgICAgZXhwcmVzc2lv
bjogInNldFRpbWVvdXQodGVzdElubmVyRnVuY3Rpb24pIiwKKyAgICB9KTsKKwogICAgIGxvYWRN
YWluUGFnZUNvbnRlbnQoKS50aGVuKCgpID0+IHsKICAgICAgICAgc3VpdGUucnVuVGVzdENhc2Vz
QW5kRmluaXNoKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvc3RlcHBpbmcvc3RlcE91dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcE91dC1leHBlY3RlZC50eHQKaW5kZXggMTZjMWEy
YTQ4NzgzY2M1ZDExYjBhOTFhYTIzYzlmMGFmOTE0ZTc5Ni4uYmE4NjFjZDY0YWExOWU2Y2IwY2Yz
NDA2MWJmNjEwNzgxNzZmZTVmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3N0ZXBwaW5nL3N0ZXBPdXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwT3V0LWV4cGVjdGVkLnR4dApAQCAtNCwxMCAr
NCwxMCBAQCBDaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBzdGVwcGluZyB3aXRoICJzdGVw
T3V0Ii4KID09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogRGVidWdnZXIuc3RlcE91dAogLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnN0ZXBPdXQuZnVuY3Rpb24KIFBBVVNFRCAoZGVidWdnZXIt
c3RhdGVtZW50KQotUEFVU0UgQVQgdGVzdEZ1bmN0aW9uczoxMjo1CitQQVVTRSBBVCB0ZXN0RnVu
Y3Rpb246MTI6NQogICAgICAgOCAgICBmdW5jdGlvbiBjKCkgeyByZXR1cm4gImMiOyB9CiAgICAg
ICA5ICAgIAotICAgICAxMCAgICBmdW5jdGlvbiB0ZXN0RnVuY3Rpb25zKCkgeworICAgICAxMCAg
ICBmdW5jdGlvbiB0ZXN0RnVuY3Rpb24oKSB7CiAgLT4gIDExICAgICAgICB8ZGVidWdnZXI7CiAg
ICAgIDEyICAgICAgICBsZXQgeCA9IDE7CiAgICAgIDEzICAgICAgICBsZXQgeSA9IDI7CkBAIC0x
MDEsMyArMTAxLDE2IEBAIFBBVVNFIEFUIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnM6NTE6NQogCiBS
RVNVTUVECiAKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zdGVwT3V0LmRlY2xhcmF0
aW9ucworUEFVU0VEIChkZWJ1Z2dlci1zdGF0ZW1lbnQpCitQQVVTRSBBVCB0ZXN0RGVjbGFyYXRp
b25zOjU2OjUKKyAgICAgNTIgICAgfQorICAgICA1MyAgICAKKyAgICAgNTQgICAgZnVuY3Rpb24g
dGVzdERlY2xhcmF0aW9ucygpIHsKKyAtPiAgNTUgICAgICAgIHxkZWJ1Z2dlcjsKKyAgICAgNTYg
ICAgICAgIGxldCB4ID0gYSgpLAorICAgICA1NyAgICAgICAgICAgIHkgPSBiKCksCisgICAgIDU4
ICAgICAgICAgICAgeiA9IGMoKTsKKworUkVTVU1FRAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcE91dC5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBPdXQuaHRtbAppbmRleCAwNzZmNzNlNjRi
MGU4ODRjZDY0YWVlMTFiYjNmNDc2NmM3ZWRkMGMwLi5jNjliOTM3NTU4MTk5NTVhNDY0NjUxYTBm
YjU0Y2Y2ZTgyZWY1OWU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc3RlcHBpbmcvc3RlcE91dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zdGVwcGluZy9zdGVwT3V0Lmh0bWwKQEAgLTgsNyArOCw3IEBAIGZ1bmN0aW9uIGEoKSB7
IHJldHVybiAiYSI7IH0KIGZ1bmN0aW9uIGIoKSB7IHJldHVybiAiYiI7IH0KIGZ1bmN0aW9uIGMo
KSB7IHJldHVybiAiYyI7IH0KIAotZnVuY3Rpb24gdGVzdEZ1bmN0aW9ucygpIHsKK2Z1bmN0aW9u
IHRlc3RGdW5jdGlvbigpIHsKICAgICBkZWJ1Z2dlcjsKICAgICBsZXQgeCA9IDE7CiAgICAgbGV0
IHkgPSAyOwpAQCAtNDQsNyArNDQsNyBAQCBmdW5jdGlvbiB0ZXN0Q29tbWFzKCkgewogICAgICAg
ICB5ID0gMiwKICAgICAgICAgeiA9IDM7CiAgICAgYSgpLCBiKCksIGMoKTsKLSAgICB0cnVlICYm
IChhKCksIGIoKSwgYygpKTsKKyAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKSAmJiB0cnVlOwog
fQogCiBmdW5jdGlvbiB0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zKCkgewpAQCAtNTIsNiArNTIsMTMg
QEAgZnVuY3Rpb24gdGVzdENoYWluZWRFeHByZXNzaW9ucygpIHsKICAgICBhKCkgJiYgYigpICYm
IGMoKTsKIH0KIAorZnVuY3Rpb24gdGVzdERlY2xhcmF0aW9ucygpIHsKKyAgICBkZWJ1Z2dlcjsK
KyAgICBsZXQgeCA9IGEoKSwKKyAgICAgICAgeSA9IGIoKSwKKyAgICAgICAgeiA9IGMoKTsKK30K
KwogLy8gLS0tLS0tLS0tCiAKIGZ1bmN0aW9uIHRlc3QoKQpAQCAtODUsNyArOTIsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICBhZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5z
dGVwT3V0LmZ1bmN0aW9uIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJzdGVwLW91dCBzaG91bGQg
bGVhdmUgYSBmdW5jdGlvbi4iLAotICAgICAgICBleHByZXNzaW9uOiAic2V0VGltZW91dCh0ZXN0
RnVuY3Rpb25zKSIsCisgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RGdW5jdGlv
bikiLAogICAgIH0pOwogCiAgICAgYWRkVGVzdENhc2UoewpAQCAtMTE4LDYgKzEyNSwxMiBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQodGVzdENoYWlu
ZWRFeHByZXNzaW9ucykiLAogICAgIH0pOwogCisgICAgYWRkVGVzdENhc2UoeworICAgICAgICBu
YW1lOiAiRGVidWdnZXIuc3RlcE91dC5kZWNsYXJhdGlvbnMiLAorICAgICAgICBkZXNjcmlwdGlv
bjogInN0ZXAtb3V0IHNob3VsZCBsZWF2ZSBhIGZ1bmN0aW9uLiIsCisgICAgICAgIGV4cHJlc3Np
b246ICJzZXRUaW1lb3V0KHRlc3REZWNsYXJhdGlvbnMpIiwKKyAgICB9KTsKKwogICAgIGxvYWRN
YWluUGFnZUNvbnRlbnQoKS50aGVuKCgpID0+IHsKICAgICAgICAgc3VpdGUucnVuVGVzdENhc2Vz
QW5kRmluaXNoKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvc3RlcHBpbmcvc3RlcE92ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBPdmVyLWV4cGVjdGVkLnR4dAppbmRleCA3YzFl
NThmMTI0Y2IzNzdiOTU2ZjMyMzFkYTVlYTNlZTVkZmMzZDFiLi4yMTU1YTgwMWNlN2UxM2M5NGJm
MzU1OGVhNmIyN2UwOGI0MjU5YjVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvc3RlcHBpbmcvc3RlcE92ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwT3Zlci1leHBlY3RlZC50eHQKQEAgLTQy
LDcgKzQyLDcgQEAgUEFVU0UgQVQgdGVzdFN0YXRlbWVudHM6MTU6MgogCiBSRVNVTUVECiAKLS0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zdGVwT3Zlci5mdW5jdGlvbgorLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnN0ZXBPdmVyLmZ1bmN0aW9ucwogUEFVU0VEIChkZWJ1Z2dl
ci1zdGF0ZW1lbnQpCiBQQVVTRSBBVCB0ZXN0RnVuY3Rpb25zOjE4OjUKICAgICAgMTQgICAgfQpA
QCAtMTI3LDcgKzEyNyw3IEBAIFBBVVNFIEFUIHRlc3RFdmFsOjI4OjUKICAtPiAgMjcgICAgICAg
IHxsZXQgYWZ0ZXIgPSAyOwogICAgICAyOCAgICB9CiAgICAgIDI5ICAgIAotICAgICAzMCAgICBm
dW5jdGlvbiB0ZXN0SW5uZXJGdW5jdGlvbigpIHsKKyAgICAgMzAgICAgZnVuY3Rpb24gdGVzdEFu
b255bW91c0Z1bmN0aW9uKCkgewogCiBQQVVTRSBBVCB0ZXN0RXZhbDoyOToyCiAgICAgIDI1ICAg
ICAgICBsZXQgYmVmb3JlID0gMTsKQEAgLTEzNSwxNiArMTM1LDE2IEBAIFBBVVNFIEFUIHRlc3RF
dmFsOjI5OjIKICAgICAgMjcgICAgICAgIGxldCBhZnRlciA9IDI7CiAgLT4gIDI4ICAgIH18CiAg
ICAgIDI5ICAgIAotICAgICAzMCAgICBmdW5jdGlvbiB0ZXN0SW5uZXJGdW5jdGlvbigpIHsKKyAg
ICAgMzAgICAgZnVuY3Rpb24gdGVzdEFub255bW91c0Z1bmN0aW9uKCkgewogICAgICAzMSAgICAg
ICAgKGZ1bmN0aW9uKCkgewogCiBSRVNVTUVECiAKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1
Z2dlci5zdGVwT3Zlci5pbm5lckZ1bmN0aW9uCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdn
ZXIuc3RlcE92ZXIuYW5vbnltb3VzRnVuY3Rpb24KIFBBVVNFRCAoZGVidWdnZXItc3RhdGVtZW50
KQogUEFVU0UgQVQgPGFub255bW91cz46MzM6OQogICAgICAyOSAgICAKLSAgICAgMzAgICAgZnVu
Y3Rpb24gdGVzdElubmVyRnVuY3Rpb24oKSB7CisgICAgIDMwICAgIGZ1bmN0aW9uIHRlc3RBbm9u
eW1vdXNGdW5jdGlvbigpIHsKICAgICAgMzEgICAgICAgIChmdW5jdGlvbigpIHsKICAtPiAgMzIg
ICAgICAgICAgICB8ZGVidWdnZXI7CiAgICAgIDMzICAgICAgICAgICAgbGV0IGlubmVyID0gMTsK
QEAgLTE1Miw3ICsxNTIsNyBAQCBQQVVTRSBBVCA8YW5vbnltb3VzPjozMzo5CiAgICAgIDM1ICAg
ICAgICBsZXQgb3V0ZXIgPSAyOwogCiBQQVVTRSBBVCA8YW5vbnltb3VzPjozNDo5Ci0gICAgIDMw
ICAgIGZ1bmN0aW9uIHRlc3RJbm5lckZ1bmN0aW9uKCkgeworICAgICAzMCAgICBmdW5jdGlvbiB0
ZXN0QW5vbnltb3VzRnVuY3Rpb24oKSB7CiAgICAgIDMxICAgICAgICAoZnVuY3Rpb24oKSB7CiAg
ICAgIDMyICAgICAgICAgICAgZGVidWdnZXI7CiAgLT4gIDMzICAgICAgICAgICAgfGxldCBpbm5l
ciA9IDE7CkBAIC0xNjksNyArMTY5LDcgQEAgUEFVU0UgQVQgPGFub255bW91cz46MzU6NgogICAg
ICAzNiAgICB9CiAgICAgIDM3ICAgIAogCi1QQVVTRSBBVCB0ZXN0SW5uZXJGdW5jdGlvbjozNjo1
CitQQVVTRSBBVCB0ZXN0QW5vbnltb3VzRnVuY3Rpb246MzY6NQogICAgICAzMiAgICAgICAgICAg
IGRlYnVnZ2VyOwogICAgICAzMyAgICAgICAgICAgIGxldCBpbm5lciA9IDE7CiAgICAgIDM0ICAg
ICAgICB9KSgpOwpAQCAtMTc4LDcgKzE3OCw3IEBAIFBBVVNFIEFUIHRlc3RJbm5lckZ1bmN0aW9u
OjM2OjUKICAgICAgMzcgICAgCiAgICAgIDM4ICAgIGZ1bmN0aW9uIHRlc3RDb21tYXMoKSB7CiAK
LVBBVVNFIEFUIHRlc3RJbm5lckZ1bmN0aW9uOjM3OjIKK1BBVVNFIEFUIHRlc3RBbm9ueW1vdXNG
dW5jdGlvbjozNzoyCiAgICAgIDMzICAgICAgICAgICAgbGV0IGlubmVyID0gMTsKICAgICAgMzQg
ICAgICAgIH0pKCk7CiAgICAgIDM1ICAgICAgICBsZXQgb3V0ZXIgPSAyOwpAQCAtMjE2LDcgKzIx
Niw3IEBAIFBBVVNFIEFUIHRlc3RDb21tYXM6NDI6OQogIC0+ICA0MSAgICAgICAgICAgIHx5ID0g
MiwKICAgICAgNDIgICAgICAgICAgICB6ID0gMzsKICAgICAgNDMgICAgICAgIGEoKSwgYigpLCBj
KCk7Ci0gICAgIDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKTsKKyAgICAgNDQgICAg
ICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkpICYmIHRydWU7CiAKIFBBVVNFIEFUIHRlc3RDb21t
YXM6NDM6OQogICAgICAzOSAgICAgICAgZGVidWdnZXI7CkBAIC0yMjQsNyArMjI0LDcgQEAgUEFV
U0UgQVQgdGVzdENvbW1hczo0Mzo5CiAgICAgIDQxICAgICAgICAgICAgeSA9IDIsCiAgLT4gIDQy
ICAgICAgICAgICAgfHogPSAzOwogICAgICA0MyAgICAgICAgYSgpLCBiKCksIGMoKTsKLSAgICAg
NDQgICAgICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkpOworICAgICA0NCAgICAgICAgdHJ1ZSAm
JiAoYSgpLCBiKCksIGMoKSkgJiYgdHJ1ZTsKICAgICAgNDUgICAgfQogCiBQQVVTRSBBVCB0ZXN0
Q29tbWFzOjQ0OjUKQEAgLTIzMiw3ICsyMzIsNyBAQCBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQ0OjUK
ICAgICAgNDEgICAgICAgICAgICB5ID0gMiwKICAgICAgNDIgICAgICAgICAgICB6ID0gMzsKICAt
PiAgNDMgICAgICAgIHxhKCksIGIoKSwgYygpOwotICAgICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgp
LCBiKCksIGMoKSk7CisgICAgIDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKSAmJiB0
cnVlOwogICAgICA0NSAgICB9CiAgICAgIDQ2ICAgIAogCkBAIC0yNDEsNyArMjQxLDcgQEAgUEFV
U0UgQVQgdGVzdENvbW1hczo0NDoxMAogICAgICA0MSAgICAgICAgICAgIHkgPSAyLAogICAgICA0
MiAgICAgICAgICAgIHogPSAzOwogIC0+ICA0MyAgICAgICAgYSgpLCB8YigpLCBjKCk7Ci0gICAg
IDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKTsKKyAgICAgNDQgICAgICAgIHRydWUg
JiYgKGEoKSwgYigpLCBjKCkpICYmIHRydWU7CiAgICAgIDQ1ICAgIH0KICAgICAgNDYgICAgCiAK
QEAgLTI1MCw3ICsyNTAsNyBAQCBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQ0OjE1CiAgICAgIDQxICAg
ICAgICAgICAgeSA9IDIsCiAgICAgIDQyICAgICAgICAgICAgeiA9IDM7CiAgLT4gIDQzICAgICAg
ICBhKCksIGIoKSwgfGMoKTsKLSAgICAgNDQgICAgICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkp
OworICAgICA0NCAgICAgICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSkgJiYgdHJ1ZTsKICAgICAg
NDUgICAgfQogICAgICA0NiAgICAKIApAQCAtMjU4LDM0ICsyNTgsNyBAQCBQQVVTRSBBVCB0ZXN0
Q29tbWFzOjQ1OjUKICAgICAgNDEgICAgICAgICAgICB5ID0gMiwKICAgICAgNDIgICAgICAgICAg
ICB6ID0gMzsKICAgICAgNDMgICAgICAgIGEoKSwgYigpLCBjKCk7Ci0gLT4gIDQ0ICAgICAgICB8
dHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSk7Ci0gICAgIDQ1ICAgIH0KLSAgICAgNDYgICAgCi0gICAg
IDQ3ICAgIGZ1bmN0aW9uIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnMoKSB7Ci0KLVBBVVNFIEFUIHRl
c3RDb21tYXM6NDU6MTQKLSAgICAgNDEgICAgICAgICAgICB5ID0gMiwKLSAgICAgNDIgICAgICAg
ICAgICB6ID0gMzsKLSAgICAgNDMgICAgICAgIGEoKSwgYigpLCBjKCk7Ci0gLT4gIDQ0ICAgICAg
ICB0cnVlICYmICh8YSgpLCBiKCksIGMoKSk7Ci0gICAgIDQ1ICAgIH0KLSAgICAgNDYgICAgCi0g
ICAgIDQ3ICAgIGZ1bmN0aW9uIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnMoKSB7Ci0KLVBBVVNFIEFU
IHRlc3RDb21tYXM6NDU6MTkKLSAgICAgNDEgICAgICAgICAgICB5ID0gMiwKLSAgICAgNDIgICAg
ICAgICAgICB6ID0gMzsKLSAgICAgNDMgICAgICAgIGEoKSwgYigpLCBjKCk7Ci0gLT4gIDQ0ICAg
ICAgICB0cnVlICYmIChhKCksIHxiKCksIGMoKSk7Ci0gICAgIDQ1ICAgIH0KLSAgICAgNDYgICAg
Ci0gICAgIDQ3ICAgIGZ1bmN0aW9uIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnMoKSB7Ci0KLVBBVVNF
IEFUIHRlc3RDb21tYXM6NDU6MjQKLSAgICAgNDEgICAgICAgICAgICB5ID0gMiwKLSAgICAgNDIg
ICAgICAgICAgICB6ID0gMzsKLSAgICAgNDMgICAgICAgIGEoKSwgYigpLCBjKCk7Ci0gLT4gIDQ0
ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgfGMoKSk7CisgLT4gIDQ0ICAgICAgICB8dHJ1ZSAm
JiAoYSgpLCBiKCksIGMoKSkgJiYgdHJ1ZTsKICAgICAgNDUgICAgfQogICAgICA0NiAgICAKICAg
ICAgNDcgICAgZnVuY3Rpb24gdGVzdENoYWluZWRFeHByZXNzaW9ucygpIHsKQEAgLTI5Myw3ICsy
NjYsNyBAQCBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQ1OjI0CiBQQVVTRSBBVCB0ZXN0Q29tbWFzOjQ2
OjIKICAgICAgNDIgICAgICAgICAgICB6ID0gMzsKICAgICAgNDMgICAgICAgIGEoKSwgYigpLCBj
KCk7Ci0gICAgIDQ0ICAgICAgICB0cnVlICYmIChhKCksIGIoKSwgYygpKTsKKyAgICAgNDQgICAg
ICAgIHRydWUgJiYgKGEoKSwgYigpLCBjKCkpICYmIHRydWU7CiAgLT4gIDQ1ICAgIH18CiAgICAg
IDQ2ICAgIAogICAgICA0NyAgICBmdW5jdGlvbiB0ZXN0Q2hhaW5lZEV4cHJlc3Npb25zKCkgewpA
QCAtMzE5LDcgKzI5Miw3IEBAIFBBVVNFIEFUIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnM6NTA6NQog
IC0+ICA0OSAgICAgICAgfGEoKSAmJiBiKCkgJiYgYygpOwogICAgICA1MCAgICB9CiAgICAgIDUx
ICAgIAotICAgICA1MiAgICAvLyAtLS0tLS0tLS0KKyAgICAgNTIgICAgZnVuY3Rpb24gdGVzdERl
Y2xhcmF0aW9ucygpIHsKIAogUEFVU0UgQVQgdGVzdENoYWluZWRFeHByZXNzaW9uczo1MToyCiAg
ICAgIDQ3ICAgIGZ1bmN0aW9uIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnMoKSB7CkBAIC0zMjcsOCAr
MzAwLDk3IEBAIFBBVVNFIEFUIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnM6NTE6MgogICAgICA0OSAg
ICAgICAgYSgpICYmIGIoKSAmJiBjKCk7CiAgLT4gIDUwICAgIH18CiAgICAgIDUxICAgIAotICAg
ICA1MiAgICAvLyAtLS0tLS0tLS0KLSAgICAgNTMgICAgCisgICAgIDUyICAgIGZ1bmN0aW9uIHRl
c3REZWNsYXJhdGlvbnMoKSB7CisgICAgIDUzICAgICAgICBkZWJ1Z2dlcjsKKworUkVTVU1FRAor
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIuc3RlcE92ZXIuZGVjbGFyYXRpb25zCitQ
QVVTRUQgKGRlYnVnZ2VyLXN0YXRlbWVudCkKK1BBVVNFIEFUIHRlc3REZWNsYXJhdGlvbnM6NTQ6
NQorICAgICA1MCAgICB9CisgICAgIDUxICAgIAorICAgICA1MiAgICBmdW5jdGlvbiB0ZXN0RGVj
bGFyYXRpb25zKCkgeworIC0+ICA1MyAgICAgICAgfGRlYnVnZ2VyOworICAgICA1NCAgICAgICAg
bGV0IHggPSBhKCksCisgICAgIDU1ICAgICAgICAgICAgeSA9IGIoKSwKKyAgICAgNTYgICAgICAg
ICAgICB6ID0gYygpOworCitQQVVTRSBBVCB0ZXN0RGVjbGFyYXRpb25zOjU1OjUKKyAgICAgNTEg
ICAgCisgICAgIDUyICAgIGZ1bmN0aW9uIHRlc3REZWNsYXJhdGlvbnMoKSB7CisgICAgIDUzICAg
ICAgICBkZWJ1Z2dlcjsKKyAtPiAgNTQgICAgICAgIHxsZXQgeCA9IGEoKSwKKyAgICAgNTUgICAg
ICAgICAgICB5ID0gYigpLAorICAgICA1NiAgICAgICAgICAgIHogPSBjKCk7CisgICAgIDU3ICAg
IH0KKworUEFVU0UgQVQgdGVzdERlY2xhcmF0aW9uczo1Njo5CisgICAgIDUyICAgIGZ1bmN0aW9u
IHRlc3REZWNsYXJhdGlvbnMoKSB7CisgICAgIDUzICAgICAgICBkZWJ1Z2dlcjsKKyAgICAgNTQg
ICAgICAgIGxldCB4ID0gYSgpLAorIC0+ICA1NSAgICAgICAgICAgIHx5ID0gYigpLAorICAgICA1
NiAgICAgICAgICAgIHogPSBjKCk7CisgICAgIDU3ICAgIH0KKyAgICAgNTggICAgCisKK1BBVVNF
IEFUIHRlc3REZWNsYXJhdGlvbnM6NTc6OQorICAgICA1MyAgICAgICAgZGVidWdnZXI7CisgICAg
IDU0ICAgICAgICBsZXQgeCA9IGEoKSwKKyAgICAgNTUgICAgICAgICAgICB5ID0gYigpLAorIC0+
ICA1NiAgICAgICAgICAgIHx6ID0gYygpOworICAgICA1NyAgICB9CisgICAgIDU4ICAgIAorICAg
ICA1OSAgICBmdW5jdGlvbiB0ZXN0SW5uZXJGdW5jdGlvbigpIHsKKworUEFVU0UgQVQgdGVzdERl
Y2xhcmF0aW9uczo1ODoyCisgICAgIDU0ICAgICAgICBsZXQgeCA9IGEoKSwKKyAgICAgNTUgICAg
ICAgICAgICB5ID0gYigpLAorICAgICA1NiAgICAgICAgICAgIHogPSBjKCk7CisgLT4gIDU3ICAg
IH18CisgICAgIDU4ICAgIAorICAgICA1OSAgICBmdW5jdGlvbiB0ZXN0SW5uZXJGdW5jdGlvbigp
IHsKKyAgICAgNjAgICAgICAgIGZ1bmN0aW9uIGFscGhhKCkgeworCitSRVNVTUVECisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zdGVwT3Zlci5pbm5lckZ1bmN0aW9uCitQQVVTRUQg
KGRlYnVnZ2VyLXN0YXRlbWVudCkKK1BBVVNFIEFUIGJldGE6NjU6OQorICAgICA2MSAgICAgICAg
ICAgIGJldGEoKTsKKyAgICAgNjIgICAgICAgIH0KKyAgICAgNjMgICAgICAgIGZ1bmN0aW9uIGJl
dGEoKSB7CisgLT4gIDY0ICAgICAgICAgICAgfGRlYnVnZ2VyOworICAgICA2NSAgICAgICAgfQor
ICAgICA2NiAgICAgICAgYWxwaGEoKTsKKyAgICAgNjcgICAgfQorCitQQVVTRSBBVCBiZXRhOjY2
OjYKKyAgICAgNjIgICAgICAgIH0KKyAgICAgNjMgICAgICAgIGZ1bmN0aW9uIGJldGEoKSB7Cisg
ICAgIDY0ICAgICAgICAgICAgZGVidWdnZXI7CisgLT4gIDY1ICAgICAgICB9fAorICAgICA2NiAg
ICAgICAgYWxwaGEoKTsKKyAgICAgNjcgICAgfQorICAgICA2OCAgICAKKworUEFVU0UgQVQgYWxw
aGE6NjM6NgorICAgICA1OSAgICBmdW5jdGlvbiB0ZXN0SW5uZXJGdW5jdGlvbigpIHsKKyAgICAg
NjAgICAgICAgIGZ1bmN0aW9uIGFscGhhKCkgeworICAgICA2MSAgICAgICAgICAgIGJldGEoKTsK
KyAtPiAgNjIgICAgICAgIH18CisgICAgIDYzICAgICAgICBmdW5jdGlvbiBiZXRhKCkgeworICAg
ICA2NCAgICAgICAgICAgIGRlYnVnZ2VyOworICAgICA2NSAgICAgICAgfQorCitQQVVTRSBBVCB0
ZXN0SW5uZXJGdW5jdGlvbjo2ODoyCisgICAgIDY0ICAgICAgICAgICAgZGVidWdnZXI7CisgICAg
IDY1ICAgICAgICB9CisgICAgIDY2ICAgICAgICBhbHBoYSgpOworIC0+ICA2NyAgICB9fAorICAg
ICA2OCAgICAKKyAgICAgNjkgICAgLy8gLS0tLS0tLS0tCisgICAgIDcwICAgIAogCiBSRVNVTUVE
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9z
dGVwT3Zlci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0
ZXBPdmVyLmh0bWwKaW5kZXggM2JmYTE2MjE5NTA2MGE1NWExNmFiZWNkNmIxOTVkNDk2NTkwOTY0
Mi4uNGUwODliY2U0YjIxYjk5YTQ3M2U0NTRkMDVjMjQ3MGMzMjk5NjAzMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBPdmVyLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBPdmVyLmh0bWwK
QEAgLTI4LDcgKzI4LDcgQEAgZnVuY3Rpb24gdGVzdEV2YWwoKSB7CiAgICAgbGV0IGFmdGVyID0g
MjsKIH0KIAotZnVuY3Rpb24gdGVzdElubmVyRnVuY3Rpb24oKSB7CitmdW5jdGlvbiB0ZXN0QW5v
bnltb3VzRnVuY3Rpb24oKSB7CiAgICAgKGZ1bmN0aW9uKCkgewogICAgICAgICBkZWJ1Z2dlcjsK
ICAgICAgICAgbGV0IGlubmVyID0gMTsKQEAgLTQyLDcgKzQyLDcgQEAgZnVuY3Rpb24gdGVzdENv
bW1hcygpIHsKICAgICAgICAgeSA9IDIsCiAgICAgICAgIHogPSAzOwogICAgIGEoKSwgYigpLCBj
KCk7Ci0gICAgdHJ1ZSAmJiAoYSgpLCBiKCksIGMoKSk7CisgICAgdHJ1ZSAmJiAoYSgpLCBiKCks
IGMoKSkgJiYgdHJ1ZTsKIH0KIAogZnVuY3Rpb24gdGVzdENoYWluZWRFeHByZXNzaW9ucygpIHsK
QEAgLTUwLDYgKzUwLDIzIEBAIGZ1bmN0aW9uIHRlc3RDaGFpbmVkRXhwcmVzc2lvbnMoKSB7CiAg
ICAgYSgpICYmIGIoKSAmJiBjKCk7CiB9CiAKK2Z1bmN0aW9uIHRlc3REZWNsYXJhdGlvbnMoKSB7
CisgICAgZGVidWdnZXI7CisgICAgbGV0IHggPSBhKCksCisgICAgICAgIHkgPSBiKCksCisgICAg
ICAgIHogPSBjKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RJbm5lckZ1bmN0aW9uKCkgeworICAgIGZ1
bmN0aW9uIGFscGhhKCkgeworICAgICAgICBiZXRhKCk7CisgICAgfQorICAgIGZ1bmN0aW9uIGJl
dGEoKSB7CisgICAgICAgIGRlYnVnZ2VyOworICAgIH0KKyAgICBhbHBoYSgpOworfQorCiAvLyAt
LS0tLS0tLS0KIAogZnVuY3Rpb24gdGVzdCgpCkBAIC04Nyw3ICsxMDQsNyBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICB9KTsKIAogICAgIGFkZFRlc3RDYXNlKHsKLSAgICAgICAgbmFtZTogIkRlYnVn
Z2VyLnN0ZXBPdmVyLmZ1bmN0aW9uIiwKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLnN0ZXBPdmVy
LmZ1bmN0aW9ucyIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAic3RlcC1vdmVyIHNob3VsZCBzdGVw
IG92ZXIgZnVuY3Rpb24gY2FsbHMuIiwKICAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQo
dGVzdEZ1bmN0aW9ucykiLAogICAgIH0pOwpAQCAtOTksOSArMTE2LDkgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgfSk7CiAKICAgICBhZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJEZWJ1Z2dl
ci5zdGVwT3Zlci5pbm5lckZ1bmN0aW9uIiwKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLnN0ZXBP
dmVyLmFub255bW91c0Z1bmN0aW9uIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJzdGVwLW92ZXIg
c2hvdWxkIHN0ZXAgb3V0IG9mIGEgZnVuY3Rpb24gdG8gaXRzIGNhbGxlci4iLAotICAgICAgICBl
eHByZXNzaW9uOiAic2V0VGltZW91dCh0ZXN0SW5uZXJGdW5jdGlvbikiLAorICAgICAgICBleHBy
ZXNzaW9uOiAic2V0VGltZW91dCh0ZXN0QW5vbnltb3VzRnVuY3Rpb24pIiwKICAgICB9KTsKIAog
ICAgIGFkZFRlc3RDYXNlKHsKQEAgLTExNiw2ICsxMzMsMTggQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RDaGFpbmVkRXhwcmVzc2lvbnMpIiwK
ICAgICB9KTsKIAorICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLnN0
ZXBPdmVyLmRlY2xhcmF0aW9ucyIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAic3RlcC1vdmVyIHNo
b3VsZCBzdGVwIG92ZXIgZWFjaCBkZWNsYXJhdGlvbi4iLAorICAgICAgICBleHByZXNzaW9uOiAi
c2V0VGltZW91dCh0ZXN0RGVjbGFyYXRpb25zKSIsCisgICAgfSk7CisKKyAgICBhZGRUZXN0Q2Fz
ZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zdGVwT3Zlci5pbm5lckZ1bmN0aW9uIiwKKyAg
ICAgICAgZGVzY3JpcHRpb246ICJzdGVwLW92ZXIgc2hvdWxkIHN0ZXAgb3V0IG9mIGEgZnVuY3Rp
b24gdG8gaXRzIGNhbGxlci4iLAorICAgICAgICBleHByZXNzaW9uOiAic2V0VGltZW91dCh0ZXN0
SW5uZXJGdW5jdGlvbikiLAorICAgIH0pOworCiAgICAgbG9hZE1haW5QYWdlQ29udGVudCgpLnRo
ZW4oKCkgPT4gewogICAgICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKICAgICB9
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9z
dGVwcGluZy1jb250cm9sLWZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBwaW5nLWNvbnRyb2wtZmxvdy1leHBlY3RlZC50eHQKaW5k
ZXggMTBhNmVmYjI0OTVkYzA4YzA5YjZjYzQwYzIyNmQ3ZGNkODIxZTNiYi4uZTBiMzgyYmVlOTRj
MTZjMTRmMjlhMTBhYzFiZTcyMDBmMDE5Njc0ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBwaW5nLWNvbnRyb2wtZmxvdy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBwaW5n
LWNvbnRyb2wtZmxvdy1leHBlY3RlZC50eHQKQEAgLTgyOCw3ICs4MjgsNyBAQCBQQVNTOiBTaG91
bGQgaGF2ZSB1c2VkIGFsbCBzdGVwcy4KIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2Vy
LnN0ZXBwaW5nLklmV2l0aENvbW1hcwogRVhQUkVTU0lPTjogc2V0VGltZW91dChlbnRyeUlmV2l0
aENvbW1hcykKLVNURVBTOiBvdmVyLCBvdmVyLCBvdmVyLCBvdmVyLCBvdmVyLCByZXN1bWUKK1NU
RVBTOiBvdmVyLCBuZXh0LCBuZXh0LCBuZXh0LCBvdmVyLCByZXN1bWUKIFBBVVNFRCAoZGVidWdn
ZXItc3RhdGVtZW50KQogUEFVU0UgQVQgZW50cnlJZldpdGhDb21tYXM6MTEyOjUKICAgICAxMDgg
ICAgfQpAQCAtODQ5LDcgKzg0OSw3IEBAIFBBVVNFIEFUIGVudHJ5SWZXaXRoQ29tbWFzOjExMzo5
CiAgICAgMTE0ICAgIH0KICAgICAxMTUgICAgCiAKLUFDVElPTjogc3RlcC1vdmVyCitBQ1RJT046
IHN0ZXAtbmV4dAogUEFVU0UgQVQgZW50cnlJZldpdGhDb21tYXM6MTEzOjE0CiAgICAgMTA5ICAg
IAogICAgIDExMCAgICBmdW5jdGlvbiBlbnRyeUlmV2l0aENvbW1hcygpIHsKQEAgLTg1OSw3ICs4
NTksNyBAQCBQQVVTRSBBVCBlbnRyeUlmV2l0aENvbW1hczoxMTM6MTQKICAgICAxMTQgICAgfQog
ICAgIDExNSAgICAKIAotQUNUSU9OOiBzdGVwLW92ZXIKK0FDVElPTjogc3RlcC1uZXh0CiBQQVVT
RSBBVCBlbnRyeUlmV2l0aENvbW1hczoxMTM6MTkKICAgICAxMDkgICAgCiAgICAgMTEwICAgIGZ1
bmN0aW9uIGVudHJ5SWZXaXRoQ29tbWFzKCkgewpAQCAtODY5LDcgKzg2OSw3IEBAIFBBVVNFIEFU
IGVudHJ5SWZXaXRoQ29tbWFzOjExMzoxOQogICAgIDExNCAgICB9CiAgICAgMTE1ICAgIAogCi1B
Q1RJT046IHN0ZXAtb3ZlcgorQUNUSU9OOiBzdGVwLW5leHQKIFBBVVNFIEFUIGVudHJ5SWZXaXRo
Q29tbWFzOjExNDo5CiAgICAgMTEwICAgIGZ1bmN0aW9uIGVudHJ5SWZXaXRoQ29tbWFzKCkgewog
ICAgIDExMSAgICAgICAgZGVidWdnZXI7CkBAIC04NzcsNyArODc3LDcgQEAgUEFVU0UgQVQgZW50
cnlJZldpdGhDb21tYXM6MTE0OjkKICAtPiAxMTMgICAgICAgICAgICB8YigpOwogICAgIDExNCAg
ICB9CiAgICAgMTE1ICAgIAotICAgIDExNiAgICAvLyAtLS0tLS0tLS0KKyAgICAxMTYgICAgZnVu
Y3Rpb24gZW50cnlSZXR1cm5XaXRoQ29tbWFzKCkgewogCiBBQ1RJT046IHN0ZXAtb3ZlcgogUEFV
U0UgQVQgZW50cnlJZldpdGhDb21tYXM6MTE1OjIKQEAgLTg4Niw4ICs4ODYsMTQyIEBAIFBBVVNF
IEFUIGVudHJ5SWZXaXRoQ29tbWFzOjExNToyCiAgICAgMTEzICAgICAgICAgICAgYigpOwogIC0+
IDExNCAgICB9fAogICAgIDExNSAgICAKLSAgICAxMTYgICAgLy8gLS0tLS0tLS0tCi0gICAgMTE3
ICAgIAorICAgIDExNiAgICBmdW5jdGlvbiBlbnRyeVJldHVybldpdGhDb21tYXMoKSB7CisgICAg
MTE3ICAgICAgICBkZWJ1Z2dlcjsKKworQUNUSU9OOiByZXN1bWUKK1JFU1VNRUQKK1BBU1M6IFNo
b3VsZCBoYXZlIHVzZWQgYWxsIHN0ZXBzLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdn
ZXIuc3RlcHBpbmcuUmV0dXJuV2l0aENvbW1hcworRVhQUkVTU0lPTjogc2V0VGltZW91dChlbnRy
eVJldHVybldpdGhDb21tYXMpCitTVEVQUzogb3ZlciwgbmV4dCwgbmV4dCwgbmV4dCwgb3Zlciwg
cmVzdW1lCitQQVVTRUQgKGRlYnVnZ2VyLXN0YXRlbWVudCkKK1BBVVNFIEFUIGVudHJ5UmV0dXJu
V2l0aENvbW1hczoxMTg6NQorICAgIDExNCAgICB9CisgICAgMTE1ICAgIAorICAgIDExNiAgICBm
dW5jdGlvbiBlbnRyeVJldHVybldpdGhDb21tYXMoKSB7CisgLT4gMTE3ICAgICAgICB8ZGVidWdn
ZXI7CisgICAgMTE4ICAgICAgICByZXR1cm4gYSgpLCBiKCksIGEoKTsKKyAgICAxMTkgICAgfQor
ICAgIDEyMCAgICAKKworQUNUSU9OOiBzdGVwLW92ZXIKK1BBVVNFIEFUIGVudHJ5UmV0dXJuV2l0
aENvbW1hczoxMTk6NQorICAgIDExNSAgICAKKyAgICAxMTYgICAgZnVuY3Rpb24gZW50cnlSZXR1
cm5XaXRoQ29tbWFzKCkgeworICAgIDExNyAgICAgICAgZGVidWdnZXI7CisgLT4gMTE4ICAgICAg
ICB8cmV0dXJuIGEoKSwgYigpLCBhKCk7CisgICAgMTE5ICAgIH0KKyAgICAxMjAgICAgCisgICAg
MTIxICAgIGZ1bmN0aW9uIGVudHJ5VGhyb3dXaXRoQ29tbWFzKCkgeworCitBQ1RJT046IHN0ZXAt
bmV4dAorUEFVU0UgQVQgZW50cnlSZXR1cm5XaXRoQ29tbWFzOjExOToxMgorICAgIDExNSAgICAK
KyAgICAxMTYgICAgZnVuY3Rpb24gZW50cnlSZXR1cm5XaXRoQ29tbWFzKCkgeworICAgIDExNyAg
ICAgICAgZGVidWdnZXI7CisgLT4gMTE4ICAgICAgICByZXR1cm4gfGEoKSwgYigpLCBhKCk7Cisg
ICAgMTE5ICAgIH0KKyAgICAxMjAgICAgCisgICAgMTIxICAgIGZ1bmN0aW9uIGVudHJ5VGhyb3dX
aXRoQ29tbWFzKCkgeworCitBQ1RJT046IHN0ZXAtbmV4dAorUEFVU0UgQVQgZW50cnlSZXR1cm5X
aXRoQ29tbWFzOjExOToxNworICAgIDExNSAgICAKKyAgICAxMTYgICAgZnVuY3Rpb24gZW50cnlS
ZXR1cm5XaXRoQ29tbWFzKCkgeworICAgIDExNyAgICAgICAgZGVidWdnZXI7CisgLT4gMTE4ICAg
ICAgICByZXR1cm4gYSgpLCB8YigpLCBhKCk7CisgICAgMTE5ICAgIH0KKyAgICAxMjAgICAgCisg
ICAgMTIxICAgIGZ1bmN0aW9uIGVudHJ5VGhyb3dXaXRoQ29tbWFzKCkgeworCitBQ1RJT046IHN0
ZXAtbmV4dAorUEFVU0UgQVQgZW50cnlSZXR1cm5XaXRoQ29tbWFzOjExOToyMgorICAgIDExNSAg
ICAKKyAgICAxMTYgICAgZnVuY3Rpb24gZW50cnlSZXR1cm5XaXRoQ29tbWFzKCkgeworICAgIDEx
NyAgICAgICAgZGVidWdnZXI7CisgLT4gMTE4ICAgICAgICByZXR1cm4gYSgpLCBiKCksIHxhKCk7
CisgICAgMTE5ICAgIH0KKyAgICAxMjAgICAgCisgICAgMTIxICAgIGZ1bmN0aW9uIGVudHJ5VGhy
b3dXaXRoQ29tbWFzKCkgeworCitBQ1RJT046IHN0ZXAtb3ZlcgorUEFVU0UgQVQgZW50cnlSZXR1
cm5XaXRoQ29tbWFzOjEyMDoyCisgICAgMTE2ICAgIGZ1bmN0aW9uIGVudHJ5UmV0dXJuV2l0aENv
bW1hcygpIHsKKyAgICAxMTcgICAgICAgIGRlYnVnZ2VyOworICAgIDExOCAgICAgICAgcmV0dXJu
IGEoKSwgYigpLCBhKCk7CisgLT4gMTE5ICAgIH18CisgICAgMTIwICAgIAorICAgIDEyMSAgICBm
dW5jdGlvbiBlbnRyeVRocm93V2l0aENvbW1hcygpIHsKKyAgICAxMjIgICAgICAgIGRlYnVnZ2Vy
OworCitBQ1RJT046IHJlc3VtZQorUkVTVU1FRAorUEFTUzogU2hvdWxkIGhhdmUgdXNlZCBhbGwg
c3RlcHMuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zdGVwcGluZy5UaHJvd1dp
dGhDb21tYXMKK0VYUFJFU1NJT046IHNldFRpbWVvdXQoZW50cnlUaHJvd1dpdGhDb21tYXMpCitT
VEVQUzogb3ZlciwgbmV4dCwgbmV4dCwgbmV4dCwgb3ZlciwgcmVzdW1lCitQQVVTRUQgKGRlYnVn
Z2VyLXN0YXRlbWVudCkKK1BBVVNFIEFUIGVudHJ5VGhyb3dXaXRoQ29tbWFzOjEyMzo1CisgICAg
MTE5ICAgIH0KKyAgICAxMjAgICAgCisgICAgMTIxICAgIGZ1bmN0aW9uIGVudHJ5VGhyb3dXaXRo
Q29tbWFzKCkgeworIC0+IDEyMiAgICAgICAgfGRlYnVnZ2VyOworICAgIDEyMyAgICAgICAgdHJ5
IHsKKyAgICAxMjQgICAgICAgICAgICB0aHJvdyBhKCksIGIoKSwgYSgpOworICAgIDEyNSAgICAg
ICAgfSBjYXRjaCB7IH0KKworQUNUSU9OOiBzdGVwLW92ZXIKK1BBVVNFIEFUIGVudHJ5VGhyb3dX
aXRoQ29tbWFzOjEyNTo5CisgICAgMTIxICAgIGZ1bmN0aW9uIGVudHJ5VGhyb3dXaXRoQ29tbWFz
KCkgeworICAgIDEyMiAgICAgICAgZGVidWdnZXI7CisgICAgMTIzICAgICAgICB0cnkgeworIC0+
IDEyNCAgICAgICAgICAgIHx0aHJvdyBhKCksIGIoKSwgYSgpOworICAgIDEyNSAgICAgICAgfSBj
YXRjaCB7IH0KKyAgICAxMjYgICAgfQorICAgIDEyNyAgICAKKworQUNUSU9OOiBzdGVwLW5leHQK
K1BBVVNFIEFUIGVudHJ5VGhyb3dXaXRoQ29tbWFzOjEyNToxNQorICAgIDEyMSAgICBmdW5jdGlv
biBlbnRyeVRocm93V2l0aENvbW1hcygpIHsKKyAgICAxMjIgICAgICAgIGRlYnVnZ2VyOworICAg
IDEyMyAgICAgICAgdHJ5IHsKKyAtPiAxMjQgICAgICAgICAgICB0aHJvdyB8YSgpLCBiKCksIGEo
KTsKKyAgICAxMjUgICAgICAgIH0gY2F0Y2ggeyB9CisgICAgMTI2ICAgIH0KKyAgICAxMjcgICAg
CisKK0FDVElPTjogc3RlcC1uZXh0CitQQVVTRSBBVCBlbnRyeVRocm93V2l0aENvbW1hczoxMjU6
MjAKKyAgICAxMjEgICAgZnVuY3Rpb24gZW50cnlUaHJvd1dpdGhDb21tYXMoKSB7CisgICAgMTIy
ICAgICAgICBkZWJ1Z2dlcjsKKyAgICAxMjMgICAgICAgIHRyeSB7CisgLT4gMTI0ICAgICAgICAg
ICAgdGhyb3cgYSgpLCB8YigpLCBhKCk7CisgICAgMTI1ICAgICAgICB9IGNhdGNoIHsgfQorICAg
IDEyNiAgICB9CisgICAgMTI3ICAgIAorCitBQ1RJT046IHN0ZXAtbmV4dAorUEFVU0UgQVQgZW50
cnlUaHJvd1dpdGhDb21tYXM6MTI1OjI1CisgICAgMTIxICAgIGZ1bmN0aW9uIGVudHJ5VGhyb3dX
aXRoQ29tbWFzKCkgeworICAgIDEyMiAgICAgICAgZGVidWdnZXI7CisgICAgMTIzICAgICAgICB0
cnkgeworIC0+IDEyNCAgICAgICAgICAgIHRocm93IGEoKSwgYigpLCB8YSgpOworICAgIDEyNSAg
ICAgICAgfSBjYXRjaCB7IH0KKyAgICAxMjYgICAgfQorICAgIDEyNyAgICAKKworQUNUSU9OOiBz
dGVwLW92ZXIKK1BBVVNFIEFUIGVudHJ5VGhyb3dXaXRoQ29tbWFzOjEyNzoyCisgICAgMTIzICAg
ICAgICB0cnkgeworICAgIDEyNCAgICAgICAgICAgIHRocm93IGEoKSwgYigpLCBhKCk7CisgICAg
MTI1ICAgICAgICB9IGNhdGNoIHsgfQorIC0+IDEyNiAgICB9fAorICAgIDEyNyAgICAKKyAgICAx
MjggICAgLy8gLS0tLS0tLS0tCisgICAgMTI5ICAgIAogCiBBQ1RJT046IHJlc3VtZQogUkVTVU1F
RApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0
ZXBwaW5nLWNvbnRyb2wtZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3N0ZXBwaW5nL3N0ZXBwaW5nLWNvbnRyb2wtZmxvdy5odG1sCmluZGV4IDRjYzg3ZGYxYTQ2YzUz
ZjUxNmFmMjg1OWQ2MmZkZGIyMzhmMWY2N2IuLmY0OTdlZWI5NTFiYjc0MjM0YjM0MmQyMDg2ZmY5
ZTVhZTA1NWNjMTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9z
dGVwcGluZy9zdGVwcGluZy1jb250cm9sLWZsb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcHBpbmctY29udHJvbC1mbG93Lmh0bWwKQEAgLTEx
NCw2ICsxMTQsMTggQEAgZnVuY3Rpb24gZW50cnlJZldpdGhDb21tYXMoKSB7CiAgICAgICAgIGIo
KTsKIH0KIAorZnVuY3Rpb24gZW50cnlSZXR1cm5XaXRoQ29tbWFzKCkgeworICAgIGRlYnVnZ2Vy
OworICAgIHJldHVybiBhKCksIGIoKSwgYSgpOworfQorCitmdW5jdGlvbiBlbnRyeVRocm93V2l0
aENvbW1hcygpIHsKKyAgICBkZWJ1Z2dlcjsKKyAgICB0cnkgeworICAgICAgICB0aHJvdyBhKCks
IGIoKSwgYSgpOworICAgIH0gY2F0Y2ggeyB9Cit9CisKIC8vIC0tLS0tLS0tLQogCiBmdW5jdGlv
biB0ZXN0KCkKQEAgLTI5OCw5ICszMTAsMzcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIGV4
cHJlc3Npb246ICJzZXRUaW1lb3V0KGVudHJ5SWZXaXRoQ29tbWFzKSIsCiAgICAgICAgIHN0ZXBz
OiBbCiAgICAgICAgICAgICAib3ZlciIsCi0gICAgICAgICAgICAgICAgIm92ZXIiLCAvLyBhKCkK
LSAgICAgICAgICAgICAgICAib3ZlciIsIC8vIGIoKQotICAgICAgICAgICAgICAgICJvdmVyIiwg
Ly8gYSgpCisgICAgICAgICAgICAgICAgIm5leHQiLCAvLyBhKCkKKyAgICAgICAgICAgICAgICAi
bmV4dCIsIC8vIGIoKQorICAgICAgICAgICAgICAgICJuZXh0IiwgLy8gYSgpCisgICAgICAgICAg
ICAgICAgIm92ZXIiLCAvLyBhKCkgLSBsZWF2aW5nIGVudHJ5CisgICAgICAgICAgICAicmVzdW1l
IiwKKyAgICAgICAgXQorICAgIH0pOworCisgICAgYWRkU3RlcHBpbmdUZXN0Q2FzZSh7CisgICAg
ICAgIG5hbWU6ICJEZWJ1Z2dlci5zdGVwcGluZy5SZXR1cm5XaXRoQ29tbWFzIiwKKyAgICAgICAg
ZGVzY3JpcHRpb246ICJTaG91bGQgcGF1c2UgYmVmb3JlIGVhY2ggY29tbWEgc3ViLWV4cHJlc3Np
b24uIiwKKyAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZW50cnlSZXR1cm5XaXRoQ29t
bWFzKSIsCisgICAgICAgIHN0ZXBzOiBbCisgICAgICAgICAgICAib3ZlciIsCisgICAgICAgICAg
ICAgICAgIm5leHQiLCAvLyBhKCkKKyAgICAgICAgICAgICAgICAibmV4dCIsIC8vIGIoKQorICAg
ICAgICAgICAgICAgICJuZXh0IiwgLy8gYSgpCisgICAgICAgICAgICAgICAgIm92ZXIiLCAvLyBh
KCkgLSBsZWF2aW5nIGVudHJ5CisgICAgICAgICAgICAicmVzdW1lIiwKKyAgICAgICAgXQorICAg
IH0pOworCisgICAgYWRkU3RlcHBpbmdUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1Z2dl
ci5zdGVwcGluZy5UaHJvd1dpdGhDb21tYXMiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlNob3Vs
ZCBwYXVzZSBiZWZvcmUgZWFjaCBjb21tYSBzdWItZXhwcmVzc2lvbi4iLAorICAgICAgICBleHBy
ZXNzaW9uOiAic2V0VGltZW91dChlbnRyeVRocm93V2l0aENvbW1hcykiLAorICAgICAgICBzdGVw
czogWworICAgICAgICAgICAgIm92ZXIiLAorICAgICAgICAgICAgICAgICJuZXh0IiwgLy8gYSgp
CisgICAgICAgICAgICAgICAgIm5leHQiLCAvLyBiKCkKKyAgICAgICAgICAgICAgICAibmV4dCIs
IC8vIGEoKQogICAgICAgICAgICAgICAgICJvdmVyIiwgLy8gYSgpIC0gbGVhdmluZyBlbnRyeQog
ICAgICAgICAgICAgInJlc3VtZSIsCiAgICAgICAgIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwcGluZy1sb29wcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcHBpbmctbG9vcHMt
ZXhwZWN0ZWQudHh0CmluZGV4IGNlYjNiODk2MjQ2NTI4Y2EwMTQwYTNjOWZiMDcyZDNjZWY4MTJk
NjcuLjYzNzkxMTczNThjNDQxOTY2ZjRlYjAwZTFlZWIyOTc3MDY0ZTQ0NTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwcGluZy1sb29wcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5n
L3N0ZXBwaW5nLWxvb3BzLWV4cGVjdGVkLnR4dApAQCAtODQ3LDcgKzg0Nyw3IEBAIFBBU1M6IFNo
b3VsZCBoYXZlIHVzZWQgYWxsIHN0ZXBzLgogCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdn
ZXIuc3RlcHBpbmcuRm9yV2l0aENvbW1hc1N0ZXBPdmVyCiBFWFBSRVNTSU9OOiBzZXRUaW1lb3V0
KGVudHJ5Rm9yV2l0aENvbW1hcykKLVNURVBTOiBvdmVyLCBvdmVyLCBvdmVyLCBvdmVyLCBvdmVy
LCBvdmVyLCBvdmVyLCBvdmVyLCBvdmVyLCBvdmVyLCBvdmVyLCBvdmVyLCBvdmVyLCBvdmVyLCBv
dmVyLCByZXN1bWUKK1NURVBTOiBvdmVyLCBuZXh0LCBvdmVyLCBuZXh0LCBvdmVyLCBvdmVyLCBu
ZXh0LCBvdmVyLCBuZXh0LCBvdmVyLCBvdmVyLCBuZXh0LCBvdmVyLCBuZXh0LCBvdmVyLCByZXN1
bWUKIFBBVVNFRCAoZGVidWdnZXItc3RhdGVtZW50KQogUEFVU0UgQVQgZW50cnlGb3JXaXRoQ29t
bWFzOjc4OjUKICAgICAgNzQgICAgfQpAQCAtODY4LDcgKzg2OCw3IEBAIFBBVVNFIEFUIGVudHJ5
Rm9yV2l0aENvbW1hczo3OToxMAogICAgICA4MCAgICB9CiAgICAgIDgxICAgIAogCi1BQ1RJT046
IHN0ZXAtb3ZlcgorQUNUSU9OOiBzdGVwLW5leHQKIFBBVVNFIEFUIGVudHJ5Rm9yV2l0aENvbW1h
czo3OToyMQogICAgICA3NSAgICAKICAgICAgNzYgICAgZnVuY3Rpb24gZW50cnlGb3JXaXRoQ29t
bWFzKCkgewpAQCAtODg4LDcgKzg4OCw3IEBAIFBBVVNFIEFUIGVudHJ5Rm9yV2l0aENvbW1hczo3
OTozMwogICAgICA4MCAgICB9CiAgICAgIDgxICAgIAogCi1BQ1RJT046IHN0ZXAtb3ZlcgorQUNU
SU9OOiBzdGVwLW5leHQKIFBBVVNFIEFUIGVudHJ5Rm9yV2l0aENvbW1hczo3OTo0NQogICAgICA3
NSAgICAKICAgICAgNzYgICAgZnVuY3Rpb24gZW50cnlGb3JXaXRoQ29tbWFzKCkgewpAQCAtOTE4
LDcgKzkxOCw3IEBAIFBBVVNFIEFUIGVudHJ5Rm9yV2l0aENvbW1hczo3OTo1NwogICAgICA4MCAg
ICB9CiAgICAgIDgxICAgIAogCi1BQ1RJT046IHN0ZXAtb3ZlcgorQUNUSU9OOiBzdGVwLW5leHQK
IFBBVVNFIEFUIGVudHJ5Rm9yV2l0aENvbW1hczo3OTo2OQogICAgICA3NSAgICAKICAgICAgNzYg
ICAgZnVuY3Rpb24gZW50cnlGb3JXaXRoQ29tbWFzKCkgewpAQCAtOTM4LDcgKzkzOCw3IEBAIFBB
VVNFIEFUIGVudHJ5Rm9yV2l0aENvbW1hczo3OTozMwogICAgICA4MCAgICB9CiAgICAgIDgxICAg
IAogCi1BQ1RJT046IHN0ZXAtb3ZlcgorQUNUSU9OOiBzdGVwLW5leHQKIFBBVVNFIEFUIGVudHJ5
Rm9yV2l0aENvbW1hczo3OTo0NQogICAgICA3NSAgICAKICAgICAgNzYgICAgZnVuY3Rpb24gZW50
cnlGb3JXaXRoQ29tbWFzKCkgewpAQCAtOTY4LDcgKzk2OCw3IEBAIFBBVVNFIEFUIGVudHJ5Rm9y
V2l0aENvbW1hczo3OTo1NwogICAgICA4MCAgICB9CiAgICAgIDgxICAgIAogCi1BQ1RJT046IHN0
ZXAtb3ZlcgorQUNUSU9OOiBzdGVwLW5leHQKIFBBVVNFIEFUIGVudHJ5Rm9yV2l0aENvbW1hczo3
OTo2OQogICAgICA3NSAgICAKICAgICAgNzYgICAgZnVuY3Rpb24gZW50cnlGb3JXaXRoQ29tbWFz
KCkgewpAQCAtOTg4LDcgKzk4OCw3IEBAIFBBVVNFIEFUIGVudHJ5Rm9yV2l0aENvbW1hczo3OToz
MwogICAgICA4MCAgICB9CiAgICAgIDgxICAgIAogCi1BQ1RJT046IHN0ZXAtb3ZlcgorQUNUSU9O
OiBzdGVwLW5leHQKIFBBVVNFIEFUIGVudHJ5Rm9yV2l0aENvbW1hczo3OTo0NQogICAgICA3NSAg
ICAKICAgICAgNzYgICAgZnVuY3Rpb24gZW50cnlGb3JXaXRoQ29tbWFzKCkgewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXBwaW5nL3N0ZXBwaW5nLWxvb3Bz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcHBpbmct
bG9vcHMuaHRtbAppbmRleCAxZmNiN2Y3ZDVkMTliZjEwYzk0MzJmMzZiMTFlYzg0NDA0NmNkMGUz
Li5lMzk2NTE3Y2Q3YmJhMjcwM2NjZDcyY2RmZmM3MzExNjI0N2I2NTdiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcHBpbmctbG9vcHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcvc3RlcHBpbmct
bG9vcHMuaHRtbApAQCAtMjQ2LDE5ICsyNDYsMTkgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAg
IGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KGVudHJ5Rm9yV2l0aENvbW1hcykiLAogICAgICAgICBz
dGVwczogWwogICAgICAgICAgICAgIm92ZXIiLAotICAgICAgICAgICAgICAgICJvdmVyIiwgLy8g
Y29tcGxldGU6IGxldCBpID0gMAorICAgICAgICAgICAgICAgICJuZXh0IiwgLy8gY29tcGxldGU6
IGxldCBpID0gMAogICAgICAgICAgICAgICAgICJvdmVyIiwgLy8gY29tcGxldGU6IGxlbmd0aCA9
IDAKLSAgICAgICAgICAgICAgICAib3ZlciIsIC8vIGNvbXBsZXRlOiBsZW5ndGggPSAyCisgICAg
ICAgICAgICAgICAgIm5leHQiLCAvLyBjb21wbGV0ZTogbGVuZ3RoID0gMgogICAgICAgICAgICAg
ICAgICJvdmVyIiwgLy8gY29tcGxldGU6IGkgPCBsZW5ndGgKICAgICAgICAgICAgICAgICAib3Zl
ciIsIC8vIGNvbXBsZXRlOiBhKCkKLSAgICAgICAgICAgICAgICAib3ZlciIsIC8vIGNvbXBsZXRl
OiBsZW5ndGggPSAxCisgICAgICAgICAgICAgICAgIm5leHQiLCAvLyBjb21wbGV0ZTogbGVuZ3Ro
ID0gMQogICAgICAgICAgICAgICAgICJvdmVyIiwgLy8gY29tcGxldGU6ICsraQotICAgICAgICAg
ICAgICAgICJvdmVyIiwgLy8gY29tcGxldGU6IGxlbmd0aCA9IDIKKyAgICAgICAgICAgICAgICAi
bmV4dCIsIC8vIGNvbXBsZXRlOiBsZW5ndGggPSAyCiAgICAgICAgICAgICAgICAgIm92ZXIiLCAv
LyBjb21wbGV0ZTogaSA8IGxlbmd0aCBbaT0xXQogICAgICAgICAgICAgICAgICJvdmVyIiwgLy8g
Y29tcGxldGU6IGEoKQotICAgICAgICAgICAgICAgICJvdmVyIiwgLy8gY29tcGxldGU6IGxlbmd0
aCA9IDEKKyAgICAgICAgICAgICAgICAibmV4dCIsIC8vIGNvbXBsZXRlOiBsZW5ndGggPSAxCiAg
ICAgICAgICAgICAgICAgIm92ZXIiLCAvLyBjb21wbGV0ZTogKytpCi0gICAgICAgICAgICAgICAg
Im92ZXIiLCAvLyBjb21wbGV0ZTogbGVuZ3RoID0gMgorICAgICAgICAgICAgICAgICJuZXh0Iiwg
Ly8gY29tcGxldGU6IGxlbmd0aCA9IDIKICAgICAgICAgICAgICAgICAib3ZlciIsIC8vIGNvbXBs
ZXRlOiBpIDwgbGVuZ3RoIFtpPTJdIC0gbGVhdmluZyBlbnRyeQogICAgICAgICAgICAgInJlc3Vt
ZSIsCiAgICAgICAgIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0
aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0LXRlc3RzL2Fycm93LWZ1bmN0aW9ucy1leHBlY3RlZC5q
cyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0
LXRlc3RzL2Fycm93LWZ1bmN0aW9ucy1leHBlY3RlZC5qcwppbmRleCBlNjFmNTlkZWZmZmYyN2Y1
MDVmNDdlM2FmN2ZkZjAyMzYzOTQxMWViLi44ZWIxMGZiZjI0YTBmMzdjNTBiYTczYTdiZjliZGU3
YWI2Y2NhOGZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9y
ZXNvdXJjZXMvamF2YXNjcmlwdC10ZXN0cy9hcnJvdy1mdW5jdGlvbnMtZXhwZWN0ZWQuanMKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQt
dGVzdHMvYXJyb3ctZnVuY3Rpb25zLWV4cGVjdGVkLmpzCkBAIC01OSwzICs1OSwxOSBAQCBhID0+
IHsKICAgICAgICAgMgogICAgIH0KIH0KKworKCkgPT4geworICAgIGEoKSwKKyAgICBiKCksCisg
ICAgYygpCit9CisKKygpID0+IHsKKyAgICByZXR1cm4KK30KKygpID0+IHsKKyAgICByZXR1cm4g
NDIKK30KKygpID0+IHsKKyAgICByZXR1cm4gNDIsIGEoKSwgYigpCit9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC10ZXN0
cy9hcnJvdy1mdW5jdGlvbnMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9y
ZXNvdXJjZXMvamF2YXNjcmlwdC10ZXN0cy9hcnJvdy1mdW5jdGlvbnMuanMKaW5kZXggY2RhMWNj
M2Y1MTY4ZGRlNjIzNzQyMmJmMGY5MDkzNWRkN2M0NzQ5MS4uZDg3NjJkYWE1OTdkNDA1NzRlM2Fm
NmQzOWVkMDM3MGE2ZDZhOWMzMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zv
cm1hdHRpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQtdGVzdHMvYXJyb3ctZnVuY3Rpb25zLmpzCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0
LXRlc3RzL2Fycm93LWZ1bmN0aW9ucy5qcwpAQCAtMzAsMyArMzAsOSBAQCBhc3luYyh4KT0+e3h9
CiAKIGE9Pntmb3IoYiBvZltdKTt9CiAoKT0+e3RyeXsxfWNhdGNoezJ9fQorCisoKT0+e2EoKSxi
KCksYygpfQorCisoKT0+e3JldHVybn0KKygpPT57cmV0dXJuIDQyfQorKCk9PntyZXR1cm4gNDIs
IGEoKSwgYigpfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcv
cmVzb3VyY2VzL2phdmFzY3JpcHQtdGVzdHMvZnVuY3Rpb25zLWV4cGVjdGVkLmpzIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQtdGVzdHMvZnVu
Y3Rpb25zLWV4cGVjdGVkLmpzCmluZGV4IDdhMWQ0YWFlMTU2MWQ5MmIwMzkyYTJmMDVmN2YxMzJm
NTllNzkzZDIuLmZlZjhlNzZlODBlZGMwOWI0ODkxYjNhYTBkZDk4NWNmMGMyMGNmNWUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL3Jlc291cmNlcy9qYXZhc2Ny
aXB0LXRlc3RzL2Z1bmN0aW9ucy1leHBlY3RlZC5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZm9ybWF0dGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC10ZXN0cy9mdW5jdGlvbnMtZXhwZWN0
ZWQuanMKQEAgLTE1OSwzICsxNTksMjIgQEAgbyA9IHsKIG8gPSB7CiAgICAgZm9vOiBhc3luYyBm
dW5jdGlvbigpIHt9CiB9CisvLyBDb21tYXMKKworZnVuY3Rpb24gZm9vKCkgeworICAgIGEoKSwK
KyAgICBiKCksCisgICAgYygpCit9CisKKy8vIFJldHVybgorCitmdW5jdGlvbiBmb28oKSB7Cisg
ICAgcmV0dXJuCit9CitmdW5jdGlvbiBmb28oKSB7CisgICAgcmV0dXJuIDQyCit9CitmdW5jdGlv
biBmb28oKSB7CisgICAgcmV0dXJuIDQyLCBhKCksIGIoKQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQtdGVzdHMvZnVu
Y3Rpb25zLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvcmVzb3VyY2VzL2ph
dmFzY3JpcHQtdGVzdHMvZnVuY3Rpb25zLmpzCmluZGV4IDUzMDliZDVjYjdhY2Y1ZjRhZDIzYWIz
MTkxMmQ3ZGI4ODFkMGI0NjMuLjlkMGI3NzdmZDkxOGYxZjJiMmM1ZWJkMjMwNDFlYjRjNmFmODgx
ZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL3Jlc291cmNl
cy9qYXZhc2NyaXB0LXRlc3RzL2Z1bmN0aW9ucy5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZm9ybWF0dGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC10ZXN0cy9mdW5jdGlvbnMuanMKQEAg
LTcxLDMgKzcxLDEzIEBAIG89e2FzeW5jIDEoKXt9fQogbz17YXN5bmMiZm9vIigpe319CiBvPXth
c3luY1siZm9vIl0oKXt9fQogbz17Zm9vOmFzeW5jIGZ1bmN0aW9uKCl7fX0KKworLy8gQ29tbWFz
CisKK2Z1bmN0aW9uIGZvbygpe2EoKSxiKCksYygpfQorCisvLyBSZXR1cm4KKworZnVuY3Rpb24g
Zm9vKCl7cmV0dXJufQorZnVuY3Rpb24gZm9vKCl7cmV0dXJuIDQyfQorZnVuY3Rpb24gZm9vKCl7
cmV0dXJuIDQyLCBhKCksIGIoKX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9m
b3JtYXR0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0LXRlc3RzL3RyeS1jYXRjaC1maW5hbGx5LXN0
YXRlbWVudHMtZXhwZWN0ZWQuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9y
ZXNvdXJjZXMvamF2YXNjcmlwdC10ZXN0cy90cnktY2F0Y2gtZmluYWxseS1zdGF0ZW1lbnRzLWV4
cGVjdGVkLmpzCmluZGV4IGM0Zjk4YzUxZjE3NjZhMmIyNGM0Yjk3NTliY2U0YzllNmQzZmQ1ZjAu
LmYxNDg1OTNjYTQyNjA4MDM4MDZmYTc1ZjIzNTI3ZGIwZDkwMWI2MDkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0LXRlc3Rz
L3RyeS1jYXRjaC1maW5hbGx5LXN0YXRlbWVudHMtZXhwZWN0ZWQuanMKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQtdGVzdHMvdHJ5LWNh
dGNoLWZpbmFsbHktc3RhdGVtZW50cy1leHBlY3RlZC5qcwpAQCAtODQsMyArODQsNSBAQCB0cnkg
ewogfSBmaW5hbGx5IHsKICAgICAyCiB9CisKK3Rocm93IGEoKSwgYigpLCBjKCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9yZXNvdXJjZXMvamF2YXNjcmlw
dC10ZXN0cy90cnktY2F0Y2gtZmluYWxseS1zdGF0ZW1lbnRzLmpzIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2Zvcm1hdHRpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQtdGVzdHMvdHJ5LWNhdGNoLWZp
bmFsbHktc3RhdGVtZW50cy5qcwppbmRleCAwM2M3YmNmYjg1NmQ3YzUxZDhlMGYyOTE3ZGM2M2U1
ODZlOGE5NmU3Li43NjM3ZDQwYjdlNzA3NjRhZWIyZDY2YzVkYmUwM2QwYTE4ZjAwODllIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9yZXNvdXJjZXMvamF2YXNj
cmlwdC10ZXN0cy90cnktY2F0Y2gtZmluYWxseS1zdGF0ZW1lbnRzLmpzCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0LXRlc3RzL3RyeS1j
YXRjaC1maW5hbGx5LXN0YXRlbWVudHMuanMKQEAgLTI4LDMgKzI4LDUgQEAgdHJ5e31jYXRjaChl
KXt9ZmluYWxseXsxfQogdHJ5e31jYXRjaChlKXt9ZmluYWxseXt9dHJ5e31jYXRjaChlKXt9Zmlu
YWxseXt9CiAKIHRyeXsxfWNhdGNoKGUpezF9ZmluYWxseXsxfXRyeXsyfWNhdGNoKGUpezJ9Zmlu
YWxseXsyfQorCit0aHJvdyBhKCksYigpLGMoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>