<?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>137131</bug_id>
          
          <creation_ts>2014-09-25 15:37:19 -0700</creation_ts>
          <short_desc>Web Inspector: tests under LayoutTests/inspector/debugger are flaky</short_desc>
          <delta_ts>2019-10-31 10:08:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>528+ (Nightly 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=202649</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>
          
          <blocked>147093</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Burg">burg</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tsavell</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1037323</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-25 15:37:19 -0700</bug_when>
    <thetext>This bug tracks diagnosing and unskipping the test flakiness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037324</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-09-25 15:37:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/18461335&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572952</commentid>
    <comment_count>2</comment_count>
      <attachid>379285</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-20 16:55:02 -0700</bug_when>
    <thetext>Created attachment 379285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572969</commentid>
    <comment_count>3</comment_count>
      <attachid>379285</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-20 17:17:43 -0700</bug_when>
    <thetext>Comment on attachment 379285
Patch

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

&gt; LayoutTests/ChangeLog:14
&gt; +        * platform/gtk/inspector/debugger/breakpoints/resolved-dump-all-pause-locations-expected.txt: Added. I couldn&apos;t
&gt; +        figure out why this essentially JSC-specific test would have different output on GTK but it does. Perhaps configuration
&gt; +        in layout tests on GTK is slightly different.

Interesting! Do you have a diff between this and the baseline expected results? Was there a specific point in which the output changes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572982</commentid>
    <comment_count>4</comment_count>
      <attachid>379294</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-20 17:30:04 -0700</bug_when>
    <thetext>Created attachment 379294
testresolved-dump-all-pause-locations-pretty-diff

This is the diff. It&apos;s always the same. It&apos;s weird as it resolves breakpoint at line 98 first and then at 94.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572983</commentid>
    <comment_count>5</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-20 17:31:19 -0700</bug_when>
    <thetext>&gt; Interesting! Do you have a diff between this and the baseline expected
&gt; results? Was there a specific point in which the output changes?

The diff is always the same with 200+ iterations. I&apos;ve spent some time trying to see where the difference comes from but gave up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572991</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-20 17:48:19 -0700</bug_when>
    <thetext>(In reply to Yury Semikhatsky from comment #5)
&gt; &gt; Interesting! Do you have a diff between this and the baseline expected
&gt; &gt; results? Was there a specific point in which the output changes?
&gt; 
&gt; The diff is always the same with 200+ iterations. I&apos;ve spent some time
&gt; trying to see where the difference comes from but gave up.

Wow, very peculiar and somewhat concerning. It does look like it goes past a start position and comes back to it later.

Maybe there is an issue in the std::sort implementation?

    void DebuggerPausePositions::sort()
    {
        std::sort(m_positions.begin(), m_positions.end(), [] (const DebuggerPausePosition&amp; a, const DebuggerPausePosition&amp; b) {
            return a.position.offset &lt; b.position.offset;
        });
    }

Maybe the sorted results are incorrect. We could try std::stable_sort just to see if results might match?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573345</commentid>
    <comment_count>7</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-23 10:29:42 -0700</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #6)
&gt; Wow, very peculiar and somewhat concerning. It does look like it goes past a
&gt; start position and comes back to it later.
&gt; 
&gt; Maybe there is an issue in the std::sort implementation?
&gt; 
&gt;     void DebuggerPausePositions::sort()
&gt;     {
&gt;         std::sort(m_positions.begin(), m_positions.end(), [] (const
&gt; DebuggerPausePosition&amp; a, const DebuggerPausePosition&amp; b) {
&gt;             return a.position.offset &lt; b.position.offset;
&gt;         });
&gt;     }
&gt; 
&gt; Maybe the sorted results are incorrect. We could try std::stable_sort just
&gt; to see if results might match?

It turns out there is a couple of DebuggerPausePositions in DebuggerParseData whith exactly same position (equal offsets) but of type Enter and Pause:

(89,0) 1158 [1158]{2}
(89,6) 1164 [1158]{2}
(90,0) 1167 [1167]{2}
(90,7) 1174 [1167]{2}
(91,0) 1177 [1177]{0} &lt;----
(91,0) 1177 [1177]{2} &lt;----
(91,9) 1186 [1177]{2}
(91,11) 1188 [1177]{1}
(92,0) 1191 [1191]{0} &lt;----
(92,0) 1191 [1191]{2} &lt;----
(93,4) 1204 [1200]{2}
(94,0) 1206 [1206]{1}
(95,0) 1209 [1209]{0} &lt;----
(95,0) 1209 [1209]{2} &lt;----
(96,4) 1221 [1217]{2}
(97,0) 1228 [1228]{1}
(99,0) 1232 [1232]{2}

My hunch is that the binary search in breakpointLocationForLineColumn gets confused by that.

Is having multiple DebuggerPausePositions at the same offset legit? If so I can fix the resolution method to handle the case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573465</commentid>
    <comment_count>8</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-23 16:15:36 -0700</bug_when>
    <thetext>I&apos;m trying to make sense of the current expectations:

INSERTING AT: 89:8
PAUSES AT: 94:0
     86    
     87    x =&gt; x;
     88    () =&gt; 1;
 -&gt;  89    (x) =&gt; x#;
     90    (x) =&gt; { x };
     91    (x) =&gt; {
     92        x
     93    };
 =&gt;  94    |() =&gt; {
     95        var x;
     96    };
     97    
     98    var fObj = {
     99        f1: function() {

I&apos;d expect (89:8) to resolve to the assignment at like 98 (in accord with the description of https://trac.webkit.org/changeset/206653) or to (90:0) which is is first immediately following break location. Joe, can you clarify what is actually expected to happen in this scenario?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573528</commentid>
    <comment_count>9</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-23 19:20:21 -0700</bug_when>
    <thetext>&gt; Is having multiple DebuggerPausePositions at the same offset legit? If so I
&gt; can fix the resolution method to handle the case.

I believe so, yes. They should have different types, but can be at the same offset.

&gt; I&apos;d expect (89:8) to resolve to the assignment at like 98 (in accord with
&gt; the description of https://trac.webkit.org/changeset/206653) or to (90:0)
&gt; which is is first immediately following break location. Joe, can you clarify
&gt; what is actually expected to happen in this scenario?

I agree with what you&apos;re saying. Each of these is a statement, so it should resolve before the next statement. I&apos;d expect (90:0).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573721</commentid>
    <comment_count>10</comment_count>
      <attachid>379462</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-24 11:43:09 -0700</bug_when>
    <thetext>Created attachment 379462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573722</commentid>
    <comment_count>11</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-09-24 11:43:37 -0700</bug_when>
    <thetext>This patch modifies the inspector protocol. Please ensure that any frontend changes appropriately use feature checks for new protocol features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573838</commentid>
    <comment_count>12</comment_count>
      <attachid>379462</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2019-09-24 14:33:22 -0700</bug_when>
    <thetext>Comment on attachment 379462
Patch

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

r=me, however I would also like Joe to also take a look.

&gt; Source/JavaScriptCore/ChangeLog:19
&gt; +        legtmost one first.

nit: leftmost

&gt; Source/WebCore/ChangeLog:28
&gt; +        in one batched but for now I&apos;d like to keep it one per iteration.

nit: in one batch

&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:51
&gt; +        // We are guarenteed to have a Leave for an Entry so we don&apos;t need to bounds check.

nit: guaranteed

&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:83
&gt; +    for (++it; it != m_positions.end(); ++it) {

It&apos;s kind of unusual to put the ++ operator in the first clause, but I guess it&apos;s okay?

&gt; Source/WebCore/inspector/InspectorFrontendClientLocal.cpp:102
&gt; +        if (m_hasTaskInQueue)

It would be more consistent to name this m_hasScheduledTask or similar. Whether RunLoop uses a queue or not shouldn&apos;t leak out to its clients, as it&apos;s not accessible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573856</commentid>
    <comment_count>13</comment_count>
      <attachid>379462</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-24 15:16:41 -0700</bug_when>
    <thetext>Comment on attachment 379462
Patch

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

&gt; Source/JavaScriptCore/debugger/Debugger.cpp:-364
&gt; -    unsigned column = breakpoint.column ? breakpoint.column : Breakpoint::unspecifiedColumn;

There are a few other places that use `Breakpoint::unspecifiedColumn`.  Should we update those as well?
 - `Debugger::toggleBreakpoint`
 - `CodeBlock::hasOpDebugForLineAndColumn`
We could also then remove `Breakpoint::unspecifiedColumn` altogether =D

&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:45
&gt;  

Style: you could remove this newline.

&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:54
&gt; +                return Optional&lt;JSTextPosition&gt;(it-&gt;position);

I think this would be cleaner to read as:
```
    while (it-&gt;type == DebuggerPausePositionType::Enter)
        ++it;
    return it-&gt;position;
```

&gt;&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:83
&gt;&gt; +    for (++it; it != m_positions.end(); ++it) {
&gt; 
&gt; It&apos;s kind of unusual to put the ++ operator in the first clause, but I guess it&apos;s okay?

I agree.  I think I&apos;d rather have the first `++it` be outside the `for`, and just have an empty first clause.

&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:84
&gt; +        DebuggerPausePosition&amp; slidePosition = *it;

NIT: you could use `auto&amp;`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573914</commentid>
    <comment_count>14</comment_count>
      <attachid>379462</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-24 17:18:47 -0700</bug_when>
    <thetext>Comment on attachment 379462
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:19
&gt;&gt; +        legtmost one first.
&gt; 
&gt; nit: leftmost

Done.

&gt;&gt; Source/WebCore/ChangeLog:28
&gt;&gt; +        in one batched but for now I&apos;d like to keep it one per iteration.
&gt; 
&gt; nit: in one batch

Done.

&gt;&gt; Source/JavaScriptCore/debugger/Debugger.cpp:-364
&gt;&gt; -    unsigned column = breakpoint.column ? breakpoint.column : Breakpoint::unspecifiedColumn;
&gt; 
&gt; There are a few other places that use `Breakpoint::unspecifiedColumn`.  Should we update those as well?
&gt;  - `Debugger::toggleBreakpoint`
&gt;  - `CodeBlock::hasOpDebugForLineAndColumn`
&gt; We could also then remove `Breakpoint::unspecifiedColumn` altogether =D

Done. The reason I touched this code in the first place was somewhat obscure conversion UINT_MAX to -1 while casting column from unsigned to int before passing it to breakpointLocationForLineColumn. I&apos;ve updated this code to not rely on that and use int internally, while switching between signed/unsigned only in Debugger::resolveBreakpoint. It&apos;d be even better to address https://webkit.org/b/162771 but it&apos;s outside the scope of this CL.

&gt;&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:45
&gt;&gt;  
&gt; 
&gt; Style: you could remove this newline.

Done.

&gt;&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:51
&gt;&gt; +        // We are guarenteed to have a Leave for an Entry so we don&apos;t need to bounds check.
&gt; 
&gt; nit: guaranteed

Done.

&gt;&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:54
&gt;&gt; +                return Optional&lt;JSTextPosition&gt;(it-&gt;position);
&gt; 
&gt; I think this would be cleaner to read as:
&gt; ```
&gt;     while (it-&gt;type == DebuggerPausePositionType::Enter)
&gt;         ++it;
&gt;     return it-&gt;position;
&gt; ```

Done.

&gt;&gt;&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:83
&gt;&gt;&gt; +    for (++it; it != m_positions.end(); ++it) {
&gt;&gt; 
&gt;&gt; It&apos;s kind of unusual to put the ++ operator in the first clause, but I guess it&apos;s okay?
&gt; 
&gt; I agree.  I think I&apos;d rather have the first `++it` be outside the `for`, and just have an empty first clause.

Done. Moved this increment above.

&gt;&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:84
&gt;&gt; +        DebuggerPausePosition&amp; slidePosition = *it;
&gt; 
&gt; NIT: you could use `auto&amp;`.

Done.

&gt;&gt; Source/WebCore/inspector/InspectorFrontendClientLocal.cpp:102
&gt;&gt; +        if (m_hasTaskInQueue)
&gt; 
&gt; It would be more consistent to name this m_hasScheduledTask or similar. Whether RunLoop uses a queue or not shouldn&apos;t leak out to its clients, as it&apos;s not accessible.

Agreed. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573915</commentid>
    <comment_count>15</comment_count>
      <attachid>379517</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-24 17:19:45 -0700</bug_when>
    <thetext>Created attachment 379517
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573948</commentid>
    <comment_count>16</comment_count>
      <attachid>379517</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-24 22:16:24 -0700</bug_when>
    <thetext>Comment on attachment 379517
Patch

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

&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:1877
&gt; +            if (line == opDebugLine &amp;&amp; (!column.hasValue() || column == opDebugColumn))

You can drop the `hasValue`, as the `operator bool()` has the same effect.

&gt; Source/JavaScriptCore/debugger/Breakpoint.h:-60
&gt; -    static constexpr unsigned unspecifiedColumn = UINT_MAX;

Should we also make the `column` member variable `Optional&lt;unsigned&gt;` then?  That&apos;s much clearer IMO than having `0` be the &quot;not set&quot; value.

&gt; Source/JavaScriptCore/debugger/Debugger.cpp:285
&gt; +    if (column.hasValue()) {

Ditto

&gt; Source/JavaScriptCore/debugger/Debugger.cpp:375
&gt; +    Optional&lt;JSTextPosition&gt; resolvedPosition = parseData.pausePositions.breakpointLocationForLineColumn(line, column);

Interesting.  I&apos;d expect these parameters to be `unsigned` and `Optional&lt;unsigned&gt;` too, but I suppose this is fine.

&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:53
&gt; +        return Optional&lt;JSTextPosition&gt;(it-&gt;position);

NIT: you shouldn&apos;t need the `Optional&lt;JSTextPosition&gt;`.

&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:72
&gt; +    DebuggerPausePosition&amp; firstSlidePosition = *it++;

Doing this here means that we do extra work if the `firstSlidePosition` is valid to return.  We should keep the `++it` on it&apos;s own line.

Additionally, this is a pretty &quot;dense&quot; line of code, and future changes may easily confuse the fact that this _must_ be post-increment in order to function properly.  We can avoid that by making them separate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574113</commentid>
    <comment_count>17</comment_count>
      <attachid>379517</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-25 10:53:58 -0700</bug_when>
    <thetext>Comment on attachment 379517
Patch

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

&gt;&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:1877
&gt;&gt; +            if (line == opDebugLine &amp;&amp; (!column.hasValue() || column == opDebugColumn))
&gt; 
&gt; You can drop the `hasValue`, as the `operator bool()` has the same effect.

Done. The reason I used hasValue() as it&apos;s more obvious what is the expected behavior when *column == 0 and there is no implicit unsigned =&gt; bool conversion will be involved. But since Optional doesn&apos;t have operator T() it should be ok to use !column too.

&gt;&gt; Source/JavaScriptCore/debugger/Breakpoint.h:-60
&gt;&gt; -    static constexpr unsigned unspecifiedColumn = UINT_MAX;
&gt; 
&gt; Should we also make the `column` member variable `Optional&lt;unsigned&gt;` then?  That&apos;s much clearer IMO than having `0` be the &quot;not set&quot; value.

That may make sense, I haven&apos;t looked at all usages of the struct yet to tell. Let&apos;s contain the scope of this change to what is relevant to test flakiness. The refactoring you mention can be done in its own CL.

&gt;&gt; Source/JavaScriptCore/debugger/Debugger.cpp:285
&gt;&gt; +    if (column.hasValue()) {
&gt; 
&gt; Ditto

Done.

&gt;&gt; Source/JavaScriptCore/debugger/Debugger.cpp:375
&gt;&gt; +    Optional&lt;JSTextPosition&gt; resolvedPosition = parseData.pausePositions.breakpointLocationForLineColumn(line, column);
&gt; 
&gt; Interesting.  I&apos;d expect these parameters to be `unsigned` and `Optional&lt;unsigned&gt;` too, but I suppose this is fine.

At some point we need to define what position line, &lt;no column&gt; refers to and I&apos;d rather keep that place as close to the protocol handler (i.e. debugger agent) as possible and ideally do it a single place. It&apos;d be better if pause positions map was not in the business of dealing with missing column and carried single function which is finding closest pause location for given arguments. Do you see any advantage of making it Optional argument of breakpointLocationForLineColumn?

&gt;&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:53
&gt;&gt; +        return Optional&lt;JSTextPosition&gt;(it-&gt;position);
&gt; 
&gt; NIT: you shouldn&apos;t need the `Optional&lt;JSTextPosition&gt;`.

Done. That&apos;s the way it was written before.

&gt;&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:72
&gt;&gt; +    DebuggerPausePosition&amp; firstSlidePosition = *it++;
&gt; 
&gt; Doing this here means that we do extra work if the `firstSlidePosition` is valid to return.  We should keep the `++it` on it&apos;s own line.
&gt; 
&gt; Additionally, this is a pretty &quot;dense&quot; line of code, and future changes may easily confuse the fact that this _must_ be post-increment in order to function properly.  We can avoid that by making them separate.

Done. I don&apos;t think performance is a concern here, also good compiler might be able to optimize that properly.

I&apos;ve changed it to the following as you guys suggested:

    ++it;
    for (; it != m_positions.end(); ++it) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574114</commentid>
    <comment_count>18</comment_count>
      <attachid>379558</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-25 10:59:48 -0700</bug_when>
    <thetext>Created attachment 379558
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574336</commentid>
    <comment_count>19</comment_count>
      <attachid>379558</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-25 19:47:08 -0700</bug_when>
    <thetext>Comment on attachment 379558
Patch

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

Awesome!

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        Changed breakpoint resolution logic to make it cosistent across platforms and

Typo: &quot;cosistent&quot; =&gt; &quot;consistent&quot;

&gt; Source/WebCore/inspector/InspectorFrontendClientLocal.cpp:113
&gt; +    void dispatchOneMessage()
&gt;      {
&gt;          ASSERT(m_inspectedPageController);

The WebKit1 bot seems to crash:

    Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
    0   com.apple.JavaScriptCore      	0x0000000103ac5ce0 WTFCrash + 16
    1   com.apple.WebCore             	0x0000000111b77c2b WTFCrashWithInfo(int, char const*, char const*, int) + 27
    2   com.apple.WebCore             	0x00000001146d5c79 WebCore::InspectorBackendDispatchTask::dispatchOneMessage() + 105
    3   com.apple.WebCore             	0x00000001146d5bfc WebCore::InspectorBackendDispatchTask::scheduleOneShot()::&apos;lambda&apos;()::operator()() const + 28
    4   com.apple.WebCore             	0x00000001146d59a9 WTF::Detail::CallableWrapper&lt;WebCore::InspectorBackendDispatchTask::scheduleOneShot()::&apos;lambda&apos;(), void&gt;::call() + 25

Perhaps the assert is catching a real issue. Maybe we need to upgrade this assertion to an early return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574544</commentid>
    <comment_count>20</comment_count>
      <attachid>379558</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-26 11:15:58 -0700</bug_when>
    <thetext>Comment on attachment 379558
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:9
&gt;&gt; +        Changed breakpoint resolution logic to make it cosistent across platforms and
&gt; 
&gt; Typo: &quot;cosistent&quot; =&gt; &quot;consistent&quot;

Done.

&gt;&gt; Source/WebCore/inspector/InspectorFrontendClientLocal.cpp:113
&gt;&gt;          ASSERT(m_inspectedPageController);
&gt; 
&gt; The WebKit1 bot seems to crash:
&gt; 
&gt;     Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
&gt;     0   com.apple.JavaScriptCore      	0x0000000103ac5ce0 WTFCrash + 16
&gt;     1   com.apple.WebCore             	0x0000000111b77c2b WTFCrashWithInfo(int, char const*, char const*, int) + 27
&gt;     2   com.apple.WebCore             	0x00000001146d5c79 WebCore::InspectorBackendDispatchTask::dispatchOneMessage() + 105
&gt;     3   com.apple.WebCore             	0x00000001146d5bfc WebCore::InspectorBackendDispatchTask::scheduleOneShot()::&apos;lambda&apos;()::operator()() const + 28
&gt;     4   com.apple.WebCore             	0x00000001146d59a9 WTF::Detail::CallableWrapper&lt;WebCore::InspectorBackendDispatchTask::scheduleOneShot()::&apos;lambda&apos;(), void&gt;::call() + 25
&gt; 
&gt; Perhaps the assert is catching a real issue. Maybe we need to upgrade this assertion to an early return.

The reason it&apos;s failing is the following:

The following code in inspector-test.js

TestPage.addResult = function(text)
{
    // For early errors triggered when loading the test page, write to stderr.
    if (!document.body) {
        this.debugLog(text);
        this.completeTest();
    }

will trigger

    // Close inspector asynchrously in case we want to test tear-down behavior.
    setTimeout(() =&gt; {
        testRunner.closeWebInspector();

At the same time runTestCasesAndFinish in the front-end will call FrontendTestHarness.completeTest() which evaluates the same TestPage.completeTest() in the inspected page. It creates a race between testRunner.closeWebInspector() and dispatch of the eval of TestPage.completeTest(). When inspector is closed before dispatching the latter command the assertion fails.

The dispatcher should not assume that the front-end is still alive at the moment it is trigger by RunLoop as it can be closed independently. I&apos;ll update the logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574545</commentid>
    <comment_count>21</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-26 11:16:03 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=379558&amp;action=review

&gt;&gt; Source/JavaScriptCore/ChangeLog:9
&gt;&gt; +        Changed breakpoint resolution logic to make it cosistent across platforms and
&gt; 
&gt; Typo: &quot;cosistent&quot; =&gt; &quot;consistent&quot;

Done.

&gt;&gt; Source/WebCore/inspector/InspectorFrontendClientLocal.cpp:113
&gt;&gt;          ASSERT(m_inspectedPageController);
&gt; 
&gt; The WebKit1 bot seems to crash:
&gt; 
&gt;     Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
&gt;     0   com.apple.JavaScriptCore      	0x0000000103ac5ce0 WTFCrash + 16
&gt;     1   com.apple.WebCore             	0x0000000111b77c2b WTFCrashWithInfo(int, char const*, char const*, int) + 27
&gt;     2   com.apple.WebCore             	0x00000001146d5c79 WebCore::InspectorBackendDispatchTask::dispatchOneMessage() + 105
&gt;     3   com.apple.WebCore             	0x00000001146d5bfc WebCore::InspectorBackendDispatchTask::scheduleOneShot()::&apos;lambda&apos;()::operator()() const + 28
&gt;     4   com.apple.WebCore             	0x00000001146d59a9 WTF::Detail::CallableWrapper&lt;WebCore::InspectorBackendDispatchTask::scheduleOneShot()::&apos;lambda&apos;(), void&gt;::call() + 25
&gt; 
&gt; Perhaps the assert is catching a real issue. Maybe we need to upgrade this assertion to an early return.

The reason it&apos;s failing is the following:

The following code in inspector-test.js

TestPage.addResult = function(text)
{
    // For early errors triggered when loading the test page, write to stderr.
    if (!document.body) {
        this.debugLog(text);
        this.completeTest();
    }

will trigger

    // Close inspector asynchrously in case we want to test tear-down behavior.
    setTimeout(() =&gt; {
        testRunner.closeWebInspector();

At the same time runTestCasesAndFinish in the front-end will call FrontendTestHarness.completeTest() which evaluates the same TestPage.completeTest() in the inspected page. It creates a race between testRunner.closeWebInspector() and dispatch of the eval of TestPage.completeTest(). When inspector is closed before dispatching the latter command the assertion fails.

The dispatcher should not assume that the front-end is still alive at the moment it is trigger by RunLoop as it can be closed independently. I&apos;ll update the logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574558</commentid>
    <comment_count>22</comment_count>
      <attachid>379664</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-26 11:32:19 -0700</bug_when>
    <thetext>Created attachment 379664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574668</commentid>
    <comment_count>23</comment_count>
      <attachid>379664</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-26 15:59:47 -0700</bug_when>
    <thetext>Comment on attachment 379664
Patch

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

r=me, thanks for iterating!

&gt; Source/JavaScriptCore/ChangeLog:30
&gt; +        (JSC::DebuggerPausePositions::sort): use type as secondary ordering component.
&gt; +        * debugger/DebuggerParseData.h: Rearranged type constants so that Enter &lt; Pause &lt; Leave
&gt; +        this change along with sorting by type should guarantee that in case of several pause

This might deserve a comment in code since it is not immediately apparent by looking at the Enum that the order is required by comparisons later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574888</commentid>
    <comment_count>24</comment_count>
      <attachid>379664</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-27 10:59:16 -0700</bug_when>
    <thetext>Comment on attachment 379664
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:30
&gt;&gt; +        this change along with sorting by type should guarantee that in case of several pause
&gt; 
&gt; This might deserve a comment in code since it is not immediately apparent by looking at the Enum that the order is required by comparisons later.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574890</commentid>
    <comment_count>25</comment_count>
      <attachid>379743</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-27 10:59:42 -0700</bug_when>
    <thetext>Created attachment 379743
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575415</commentid>
    <comment_count>26</comment_count>
      <attachid>379743</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-09-30 19:22:13 -0700</bug_when>
    <thetext>Comment on attachment 379743
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575427</commentid>
    <comment_count>27</comment_count>
      <attachid>379743</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-09-30 21:10:37 -0700</bug_when>
    <thetext>Comment on attachment 379743
Patch

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

also r=me, with some minor remaining NIT/Style comments.

&gt; Source/JavaScriptCore/debugger/Debugger.cpp:380
&gt; +    int resolvedColumn = resolvedPosition-&gt;offset - resolvedPosition-&gt;lineStartOffset;

Can this use `resolvePosition-&gt;column()`?

&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:36
&gt; +    DebuggerPausePosition position;

Should we add a fourth &quot;invalid&quot; value to `DebuggerPausePositionType` so that we don&apos;t have a default/undefined value for `position.type`?

&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:38
&gt; +    position.position.line = line;
&gt; +    position.position.offset = column;

NIT: you could use uniform initialization syntax:
```
    DebuggerPausePosition position = { DebuggerPausePositionType::Invalid, JSTextPosition(line, column, 0) };
```

&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:39
&gt; +    position.position.lineStartOffset = 0;

NIT: this defaults to `0`, so is it necessary to specify it again here?

&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:72
&gt; +    DebuggerPausePosition&amp; firstSlidePosition = *it;

Style: `auto&amp;`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575429</commentid>
    <comment_count>28</comment_count>
      <attachid>379743</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-30 21:48:59 -0700</bug_when>
    <thetext>Comment on attachment 379743
Patch

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

&gt;&gt; Source/JavaScriptCore/debugger/Debugger.cpp:380
&gt;&gt; +    int resolvedColumn = resolvedPosition-&gt;offset - resolvedPosition-&gt;lineStartOffset;
&gt; 
&gt; Can this use `resolvePosition-&gt;column()`?

Done.

&gt;&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:36
&gt;&gt; +    DebuggerPausePosition position;
&gt; 
&gt; Should we add a fourth &quot;invalid&quot; value to `DebuggerPausePositionType` so that we don&apos;t have a default/undefined value for `position.type`?

Done.

&gt;&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:38
&gt;&gt; +    position.position.offset = column;
&gt; 
&gt; NIT: you could use uniform initialization syntax:
&gt; ```
&gt;     DebuggerPausePosition position = { DebuggerPausePositionType::Invalid, JSTextPosition(line, column, 0) };
&gt; ```

Done.

&gt;&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:39
&gt;&gt; +    position.position.lineStartOffset = 0;
&gt; 
&gt; NIT: this defaults to `0`, so is it necessary to specify it again here?

It makes the intent more obvious and doesn&apos;t require looking at what default is (0, -1 or what not). Replaced this code with initializer list anyway.

&gt;&gt; Source/JavaScriptCore/debugger/DebuggerParseData.cpp:72
&gt;&gt; +    DebuggerPausePosition&amp; firstSlidePosition = *it;
&gt; 
&gt; Style: `auto&amp;`

Done. Is there a rule for using auto vs. explicit type in webkit, I don&apos;t see it in the main style guide?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575432</commentid>
    <comment_count>29</comment_count>
      <attachid>379874</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-09-30 21:57:59 -0700</bug_when>
    <thetext>Created attachment 379874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576424</commentid>
    <comment_count>30</comment_count>
      <attachid>379874</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-03 08:46:37 -0700</bug_when>
    <thetext>Comment on attachment 379874
Patch

Clearing flags on attachment: 379874

Committed r250655: &lt;https://trac.webkit.org/changeset/250655&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576425</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-03 08:46:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576594</commentid>
    <comment_count>32</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-10-03 14:09:31 -0700</bug_when>
    <thetext>It looks like the changes in https://trac.webkit.org/changeset/250655/webkit

has caused two tests to become flakey failures:
inspector/layers/layers-for-node.html 
inspector/timeline/line-column.html

History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=inspector%2Flayers%2Flayers-for-node.html%20inspector%2Ftimeline%2Fline-column.html

Diff:
https://build.webkit.org/results/Apple%20Mojave%20Release%20WK1%20(Tests)/r250672%20(8069)/inspector/layers/layers-for-node-diff.txt
https://build.webkit.org/results/Apple%20Mojave%20Release%20WK1%20(Tests)/r250672%20(8069)/inspector/timeline/line-column-diff.txt

I was able to reproduce this locally by running these tests on a build of 250654 which passed in 2000 iterations, and on 250655 which failed almost instantly. 

These are severely flakey on the Mac queues, can this be resolved today? Otherwise we will need to roll this back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576692</commentid>
    <comment_count>33</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-10-03 19:26:13 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #32)
stantly. 
&gt; 
&gt; These are severely flakey on the Mac queues, can this be resolved today?
&gt; Otherwise we will need to roll this back.
Can we mark the two tests as flaky for now, I&apos;ll have a look tomorrow?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577022</commentid>
    <comment_count>34</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-10-04 14:51:30 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577023</commentid>
    <comment_count>35</comment_count>
      <attachid>380254</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-10-04 14:51:31 -0700</bug_when>
    <thetext>Created attachment 380254
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577029</commentid>
    <comment_count>36</comment_count>
      <attachid>380255</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-10-04 14:57:12 -0700</bug_when>
    <thetext>Created attachment 380255
initial layer tree diff

Initial layer tree sometimes has too small size of one of the layers like in this example. It feels like the test should be waiting for some key events to be sure that the layer sizes already computed. I&apos;d appreciate any help from people who understand how this layer tree inspection works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577398</commentid>
    <comment_count>37</comment_count>
      <attachid>380254</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-07 11:08:13 -0700</bug_when>
    <thetext>Comment on attachment 380254
Patch

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

rs=me

&gt; LayoutTests/ChangeLog:3
&gt; +        Web Inspector: tests under LayoutTests/inspector/debugger are flaky

It&apos;s a bit odd to have the title of this bug be about debugger when both of the tests being modified in this patch aren&apos;t related to the debugger at all.  I&apos;d either make a new bug, or include some explanation about how r250655 caused these tests to become &quot;more&quot; flakey.  My guess is the changes made to use the `RunLoop` instead of a `Timer` in `InspectorFrontendClientLocal`.  Some explanation of why this happened would be great :)

&gt; LayoutTests/inspector/layers/layers-for-node.html:29
&gt; +            callback: getDocument.bind(this, layersChanged)

This is really odd.  We usually try to avoid binding arguments like this.  Instead, please just create `let layersChanged = null;` outside this function and set it here, then use it inside `getDocument` (just like `documentNode` and `initialLayers`).

&gt; LayoutTests/inspector/layers/layers-for-node.html:35
&gt; +        layersChangedPromise.then(step({

`step` doesn&apos;t return a function, so I don&apos;t think this works as you expect.  You&apos;ll need to wrap it in a function.
```js
    layersChangedPromise.then(() =&gt; {
        step({
            ...
        });
    });
```

&gt; LayoutTests/inspector/timeline/line-column.html:44
&gt; +    const eventWhitelist = new Set([&quot;RenderingFrame&quot;, &quot;ConsoleProfile&quot;, &quot;EventDispatch&quot;, &quot;FunctionCall&quot;]);

Interesting idea!  Other than &quot;ScheduleStyleRecalculation&quot;, were there any other events that would sometimes get recorded? :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577451</commentid>
    <comment_count>38</comment_count>
      <attachid>380254</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-10-07 13:13:19 -0700</bug_when>
    <thetext>Comment on attachment 380254
Patch

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

Thanks for the review! I will upload updated patch to https://webkit.org/b/202649 to avoid confusion.

&gt;&gt; LayoutTests/ChangeLog:3
&gt;&gt; +        Web Inspector: tests under LayoutTests/inspector/debugger are flaky
&gt; 
&gt; It&apos;s a bit odd to have the title of this bug be about debugger when both of the tests being modified in this patch aren&apos;t related to the debugger at all.  I&apos;d either make a new bug, or include some explanation about how r250655 caused these tests to become &quot;more&quot; flakey.  My guess is the changes made to use the `RunLoop` instead of a `Timer` in `InspectorFrontendClientLocal`.  Some explanation of why this happened would be great :)

The root cause definitely has to do with the switch from Timer queue to RunLoop queue. Apparently timer events were fired after a longer delay than RunLoop events.  I don&apos;t have enough knowledge about the rendering layers to say what the test might have relied upon. graouts@ who wrote added the test may know the answer. I&apos;ve updated potentially racy places in the test and it passes now.

&gt;&gt; LayoutTests/inspector/layers/layers-for-node.html:29
&gt;&gt; +            callback: getDocument.bind(this, layersChanged)
&gt; 
&gt; This is really odd.  We usually try to avoid binding arguments like this.  Instead, please just create `let layersChanged = null;` outside this function and set it here, then use it inside `getDocument` (just like `documentNode` and `initialLayers`).

Changed. I&apos;m not sure it&apos;s better to add a bunch of unrelated variables to the outer scope (each of which is used just to pass some piece of information between two functions) than passing the same data only to the function where they are used but since the rest of the code uses former approach I&apos;ll follow the same style. I&apos;m curious to learn more about the reasons you prefer one style over the other.

&gt;&gt; LayoutTests/inspector/layers/layers-for-node.html:35
&gt;&gt; +        layersChangedPromise.then(step({
&gt; 
&gt; `step` doesn&apos;t return a function, so I don&apos;t think this works as you expect.  You&apos;ll need to wrap it in a function.
&gt; ```js
&gt;     layersChangedPromise.then(() =&gt; {
&gt;         step({
&gt;             ...
&gt;         });
&gt;     });
&gt; ```

Nice catch, thanks! This actually eliminated remaining flakiness in the initial tree that I mentioned in the bug. I&apos;ve managed to run the test with --iterations=10000 and 0 failures.

&gt;&gt; LayoutTests/inspector/timeline/line-column.html:44
&gt;&gt; +    const eventWhitelist = new Set([&quot;RenderingFrame&quot;, &quot;ConsoleProfile&quot;, &quot;EventDispatch&quot;, &quot;FunctionCall&quot;]);
&gt; 
&gt; Interesting idea!  Other than &quot;ScheduleStyleRecalculation&quot;, were there any other events that would sometimes get recorded? :P

This is the only one that I&apos;ve seen while running the test with --iterations=1000.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577452</commentid>
    <comment_count>39</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-10-07 13:13:24 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=380254&amp;action=review

Thanks for the review! I will upload updated patch to https://webkit.org/b/202649 to avoid confusion.

&gt;&gt; LayoutTests/ChangeLog:3
&gt;&gt; +        Web Inspector: tests under LayoutTests/inspector/debugger are flaky
&gt; 
&gt; It&apos;s a bit odd to have the title of this bug be about debugger when both of the tests being modified in this patch aren&apos;t related to the debugger at all.  I&apos;d either make a new bug, or include some explanation about how r250655 caused these tests to become &quot;more&quot; flakey.  My guess is the changes made to use the `RunLoop` instead of a `Timer` in `InspectorFrontendClientLocal`.  Some explanation of why this happened would be great :)

The root cause definitely has to do with the switch from Timer queue to RunLoop queue. Apparently timer events were fired after a longer delay than RunLoop events.  I don&apos;t have enough knowledge about the rendering layers to say what the test might have relied upon. graouts@ who wrote added the test may know the answer. I&apos;ve updated potentially racy places in the test and it passes now.

&gt;&gt; LayoutTests/inspector/layers/layers-for-node.html:29
&gt;&gt; +            callback: getDocument.bind(this, layersChanged)
&gt; 
&gt; This is really odd.  We usually try to avoid binding arguments like this.  Instead, please just create `let layersChanged = null;` outside this function and set it here, then use it inside `getDocument` (just like `documentNode` and `initialLayers`).

Changed. I&apos;m not sure it&apos;s better to add a bunch of unrelated variables to the outer scope (each of which is used just to pass some piece of information between two functions) than passing the same data only to the function where they are used but since the rest of the code uses former approach I&apos;ll follow the same style. I&apos;m curious to learn more about the reasons you prefer one style over the other.

&gt;&gt; LayoutTests/inspector/layers/layers-for-node.html:35
&gt;&gt; +        layersChangedPromise.then(step({
&gt; 
&gt; `step` doesn&apos;t return a function, so I don&apos;t think this works as you expect.  You&apos;ll need to wrap it in a function.
&gt; ```js
&gt;     layersChangedPromise.then(() =&gt; {
&gt;         step({
&gt;             ...
&gt;         });
&gt;     });
&gt; ```

Nice catch, thanks! This actually eliminated remaining flakiness in the initial tree that I mentioned in the bug. I&apos;ve managed to run the test with --iterations=10000 and 0 failures.

&gt;&gt; LayoutTests/inspector/timeline/line-column.html:44
&gt;&gt; +    const eventWhitelist = new Set([&quot;RenderingFrame&quot;, &quot;ConsoleProfile&quot;, &quot;EventDispatch&quot;, &quot;FunctionCall&quot;]);
&gt; 
&gt; Interesting idea!  Other than &quot;ScheduleStyleRecalculation&quot;, were there any other events that would sometimes get recorded? :P

This is the only one that I&apos;ve seen while running the test with --iterations=1000.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578756</commentid>
    <comment_count>40</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-10-10 11:32:28 -0700</bug_when>
    <thetext>Is there any further movement on this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578824</commentid>
    <comment_count>41</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-10-10 13:33:12 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #40)
&gt; Is there any further movement on this?

There is a bunch of problems with individual debugger tests, each of them have its own bugs. E.g. see https://bugs.webkit.org/show_bug.cgi?id=128736 and patch with a fix for it. If there are new issues, it&apos;d be better to file bugs with more specific problem descriptions for the failing tests as the root causes of their failures are likely different too.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379285</attachid>
            <date>2019-09-20 16:55:02 -0700</date>
            <delta_ts>2019-09-24 11:43:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137131-20190920165502.patch</filename>
            <type>text/plain</type>
            <size>59247</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNhN2JkYjIyM2IyODhl
NmFhNjU2ZWU1MDgzNGExOWI0NDEwMzFhNi4uNjU4YWNhNzg1MDQxZmI3ZTY5NTdjMGJmZjM1MTdk
MzQ1ZmE1ODhhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE5LTA5LTIwICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHRlc3RzIHVuZGVyIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlciBhcmUgZmxha3kK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzEzMQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTg0NjEzMzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGRlYnVnZ2VyIHRlc3RzIG9uIEdUSy4gQWxs
IHRlc3RzIHRoYXQgcGF1c2Ugb24gYnJlYWtwb2ludCBkaWRuJ3Qgd29yayBiZWNhdXNlCisgICAg
ICAgIGluIGxheW91dCB0ZXN0cyBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsIHdhcyB1c2lu
ZyBUaW1lciB0byBkaXNwYXRjaCBjb21tYW5kcworICAgICAgICBzZW50IGZyb20gdGhlIGxvY2Fs
IGZyb250LWVuZCBwYWdlIHRvIHRoZSBpbnNwZWN0ZWQgb25lLiBXaGVuIHBhdXNlZCBpbnNpZGUg
YSBzY3JpcHQKKyAgICAgICAgdHJpZ2dlcmVkIGJ5IHRoZSBmcm9udC1lbmQgbmVzdGVkIHRpbWVy
IGV2ZW50IHdvdWxkIGJlIHNjaGVkdWxlZCBidXQgbmV2ZXIgZmlyZWQKKyAgICAgICAgYmVjYXVz
ZSBpbiBnbGliIGltcGxlbWVudGF0aW9uIG9mIFJ1bkxvb3A6OlRpbWVyQmFzZSB1c2VzIGV2ZW50
IHNvdXJjZSB3aGljaCBkb2Vzbid0CisgICAgICAgIGFsbG93IHJlY3Vyc2lvbiAoZ19zb3VyY2Vf
c2V0X2Nhbl9yZWN1cnNlIGlzIG5vdCBjYWxsZWQgb24gdGhlIHNvdXJjZSksIHNvIGRpc3BhdGNo
aW5nCisgICAgICAgIERlYnVnZ2VyLnJlc3VtZSBjb21tYW5kIGRpZG4ndCB3b3JrIHdoZW4gcGF1
c2VkIGluc2lkZSBhbm90aGVyIGluc3BlY3RvciBjb21tYW5kIChlLmcuCisgICAgICAgIGV2YWwp
LiBSdW5Mb29wIGl0c2VsZiB1c2VzIGV2ZW50IHNvdXJjZSB3aGljaCBkb2VzIGFsbG93IHJlY3Vy
c2lvbi4gU28gaW5zdGVhZCBvZiB1c2luZworICAgICAgICBhIHRpbWVyIGZvciBhc3luY2hyb25v
dXMgY29tbWFuZCBkaXNwYXRjaGluZyB3aXRoIGRlbGF5PTAgd2Ugbm93IHNjaGVkdWxlIGEgdGFz
ayBpbgorICAgICAgICBSdW5Mb29wJ3MgcXVldWUuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hUYXNrOjpkaXNwYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRhc2s6OnNjaGVkdWxl
T25lU2hvdCk6IGVuc3VyZXMgdGhhdCB0aGVyZSBpcyBvbmUgaW5zcGVjdG9yCisgICAgICAgIGRp
c3BhdGNoIHRhc2sgaW4gdGhlIHF1ZXVlLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoVGFzazo6ZGlzcGF0Y2hPbmVNZXNzYWdlKTogdGhpcyBpcyBtb3N0bHkgdGhl
IHNhbWUgYmVoYXZpb3IKKyAgICAgICAgYXMgd2FzIHdpdGggdGltZXJGaXJlZCwgd2Ugc2hvdWxk
IGJlIGFibGUgdG8gZGlzcGF0Y2ggYWxsIGFjY3VtdWxhdGVkIG1lc3NhZ2VzIGZyb20gdGhlIHF1
ZXVlCisgICAgICAgIGluIG9uZSBiYXRjaGVkIGJ1dCBmb3Igbm93IEknZCBsaWtlIHRvIGtlZXAg
aXQgb25lIHBlciBpdGVyYXRpb24uCisKIDIwMTktMDktMTkgIFBlbmcgTGl1ICA8cGVuZy5saXU2
QGFwcGxlLmNvbT4KIAogICAgICAgICBIVE1MVmlkZW9FbGVtZW50IHdpdGggYSBicm9rZW4gcG9z
dGVyIGltYWdlIHdpbGwgdGFrZSBzcXVhcmUgZGltZW5zaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKaW5k
ZXggNzcyZWM3NDY5MTNjYzY4ZGI5OWVhYmFjOTEzMTEzOWU5Yjc0OGZmYS4uYzI2YWNjYmYxMzYy
MTk2MjNkZGUzZjVkMmFmODc3MThkMzcxZTk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcApAQCAtODEs
MTggKzgxLDM0IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUX0FSRyhtZXNzYWdlLCAhbWVzc2Fn
ZS5pc0VtcHR5KCkpOwogCiAgICAgICAgIG1fbWVzc2FnZXMuYXBwZW5kKG1lc3NhZ2UpOwotICAg
ICAgICBpZiAoIW1fdGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1fdGltZXIuc3RhcnRP
bmVTaG90KDBfcyk7CisgICAgICAgIHNjaGVkdWxlT25lU2hvdCgpOwogICAgIH0KIAogICAgIHZv
aWQgcmVzZXQoKQogICAgIHsKICAgICAgICAgbV9tZXNzYWdlcy5jbGVhcigpOwotICAgICAgICBt
X3RpbWVyLnN0b3AoKTsKICAgICAgICAgbV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxlciA9IG51bGxw
dHI7CiAgICAgfQogCi0gICAgdm9pZCB0aW1lckZpcmVkKCkKK3ByaXZhdGU6CisgICAgSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoVGFzayhJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0ZWRQYWdl
Q29udHJvbGxlcikKKyAgICAgICAgOiBtX2luc3BlY3RlZFBhZ2VDb250cm9sbGVyKGluc3BlY3Rl
ZFBhZ2VDb250cm9sbGVyKQorICAgIHsKKyAgICAgICAgQVNTRVJUX0FSRyhpbnNwZWN0ZWRQYWdl
Q29udHJvbGxlciwgaW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIpOworICAgIH0KKworICAgIHZvaWQg
c2NoZWR1bGVPbmVTaG90KCkKKyAgICB7CisgICAgICAgIGlmIChtX2hhc1Rhc2tJblF1ZXVlKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2hhc1Rhc2tJblF1ZXVlID0gdHJ1ZTsKKyAg
ICAgICAgUnVuTG9vcDo6Y3VycmVudCgpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgICAgIG1faGFzVGFza0luUXVldWUgPSBmYWxzZTsK
KyAgICAgICAgICAgIGRpc3BhdGNoT25lTWVzc2FnZSgpOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICB2b2lkIGRpc3BhdGNoT25lTWVzc2FnZSgpCiAgICAgewogICAgICAgICBBU1NFUlQobV9p
bnNwZWN0ZWRQYWdlQ29udHJvbGxlcik7CiAKQEAgLTEwNCwyMCArMTIwLDEyIEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXItPmRpc3BhdGNoTWVzc2FnZUZy
b21Gcm9udGVuZChtX21lc3NhZ2VzLnRha2VGaXJzdCgpKTsKIAogICAgICAgICBpZiAoIW1fbWVz
c2FnZXMuaXNFbXB0eSgpICYmIG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIpCi0gICAgICAgICAg
ICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBJbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RlZFBh
Z2VDb250cm9sbGVyKQotICAgICAgICA6IG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIoaW5zcGVj
dGVkUGFnZUNvbnRyb2xsZXIpCi0gICAgICAgICwgbV90aW1lcigqdGhpcywgJkluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaFRhc2s6OnRpbWVyRmlyZWQpCi0gICAgewotICAgICAgICBBU1NFUlRfQVJH
KGluc3BlY3RlZFBhZ2VDb250cm9sbGVyLCBpbnNwZWN0ZWRQYWdlQ29udHJvbGxlcik7CisgICAg
ICAgICAgICBzY2hlZHVsZU9uZVNob3QoKTsKICAgICB9CiAKICAgICBJbnNwZWN0b3JDb250cm9s
bGVyKiBtX2luc3BlY3RlZFBhZ2VDb250cm9sbGVyIHsgbnVsbHB0ciB9OwotICAgIFRpbWVyIG1f
dGltZXI7CiAgICAgRGVxdWU8U3RyaW5nPiBtX21lc3NhZ2VzOworICAgIGJvb2wgbV9oYXNUYXNr
SW5RdWV1ZSB7IGZhbHNlIH07CiB9OwogCiBTdHJpbmcgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbDo6U2V0dGluZ3M6OmdldFByb3BlcnR5KGNvbnN0IFN0cmluZyYpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTllZmQ1
ZGUwZmQ0MDZkZTZlYjJmMWJmNjZlNWJmZmNiMzBmNzE5Mi4uYmQ1ODk3ODRiMTY2YzNlMDZjYTc2
NjM2ZjJmODY5ZDA2ZDhhNTJhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTA5LTIwICBZ
dXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHRlc3RzIHVuZGVyIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlciBhcmUgZmxh
a3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzEz
MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTg0NjEzMzU+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIGluc3BlY3Rvci9kZWJ1Z2dlciB0
ZXN0cyBvbiBHVEsuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnRzL3Jl
c29sdmVkLWR1bXAtYWxsLXBhdXNlLWxvY2F0aW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLiBJIGNv
dWxkbid0CisgICAgICAgIGZpZ3VyZSBvdXQgd2h5IHRoaXMgZXNzZW50aWFsbHkgSlNDLXNwZWNp
ZmljIHRlc3Qgd291bGQgaGF2ZSBkaWZmZXJlbnQgb3V0cHV0IG9uIEdUSyBidXQgaXQgZG9lcy4g
UGVyaGFwcyBjb25maWd1cmF0aW9uCisgICAgICAgIGluIGxheW91dCB0ZXN0cyBvbiBHVEsgaXMg
c2xpZ2h0bHkgZGlmZmVyZW50LgorCiAyMDE5LTA5LTE5ICBQZW5nIExpdSAgPHBlbmcubGl1NkBh
cHBsZS5jb20+CiAKICAgICAgICAgSFRNTFZpZGVvRWxlbWVudCB3aXRoIGEgYnJva2VuIHBvc3Rl
ciBpbWFnZSB3aWxsIHRha2Ugc3F1YXJlIGRpbWVuc2lvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2ZTE5ZTE1MTIzZTQ0YWI3NzAyOGM1ZGYyNjQ5NDIw
YTdmNjIzOWVkLi45ZGFhYTg3YWYyYWM1ODNlODAwOGJhZjdhZWYyNTQyYmMzMDBhODM1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjMxMSwyMSArMjMx
MSw4IEBAIHdlYmtpdC5vcmcvYi8xMTY5NTcgbWVkaWEvdHJhY2svdHJhY2stYXV0b21hdGljLXN1
YnRpdGxlcy5odG1sIFsgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8xMjA2ODIgaW5zcGVjdG9y
L3BhZ2UvYXJjaGl2ZS5odG1sIFsgVGltZW91dCBdCiAKK3dlYmtpdC5vcmcvYi8xNDc1MTggaW5z
cGVjdG9yL2RlYnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLmh0bWwgWyBUaW1lb3V0IF0KIHdlYmtp
dC5vcmcvYi8xMjI1NzEgaHR0cC90ZXN0cy9pbnNwZWN0b3IvZG9tL2Nyb3NzLWRvbWFpbi1pbnNw
ZWN0ZWQtbm9kZS1hY2Nlc3MuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIy
NTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50Lmh0bWwgWyBUaW1lb3V0IFBhc3Mg
XQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5j
dGlvbi1uYW1lLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNw
ZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi5odG1sIFsgVGlt
ZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL3NldFBh
dXNlT25FeGNlcHRpb25zLWFsbC5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8x
MjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUuaHRtbCBb
IFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9j
YWxsLWZyYW1lLXRoaXMtaG9zdC5odG1sIFsgVGltZW91dCBQYXNzIENyYXNoIF0KLXdlYmtpdC5v
cmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVl
Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVi
dWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtdW5jYXVnaHQuaHRtbCBbIFRpbWVvdXQgUGFzcyBd
Ci13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWFj
dGlvbnMuaHRtbCBbIEZhaWx1cmUgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEg
aW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QuaHRtbCBbIFRpbWVv
dXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVh
a3BvaW50LWNvbHVtbi5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEg
aW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0bWwgWyBUaW1lb3V0
IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvcmVtb3ZlQnJl
YWtwb2ludC5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVj
dG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QuaHRtbCBbIFRpbWVvdXQgUGFzcyBd
CiB3ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kb20vcmVxdWVzdC1jaGlsZC1ub2Rlcy1k
ZXB0aC5odG1sIFsgVGltZW91dCBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9y
L2RvbS9mb2N1cy5odG1sIFsgRmFpbHVyZSBUaW1lb3V0IFBhc3MgXQogd2Via2l0Lm9yZy9iLzEy
MjU3MSBpbnNwZWN0b3IvcnVudGltZS9nZXRQcm9wZXJ0aWVzLmh0bWwgWyBUaW1lb3V0IFBhc3Mg
Q3Jhc2ggXQpAQCAtMjM3MCw3ICsyMzU3LDYgQEAgd2Via2l0Lm9yZy9iLzEzNjY3NCBtZWRpYS90
cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLXdpdGgtcGFkZGluZy5odG1sIFsgVGltZW91dAogCiB3
ZWJraXQub3JnL2IvMTM3Njk4IG1lZGlhL3ZpZGVvLWNvbnRyb2xzLWRyYWcuaHRtbCBbIFRpbWVv
dXQgXQogCi13ZWJraXQub3JnL2IvMTM3MTMxIGluc3BlY3Rvci9kZWJ1Z2dlciBbIFNraXAgXQog
d2Via2l0Lm9yZy9iLzE0NzUxOCBpbnNwZWN0b3IvZG9tIFsgU2tpcCBdCiB3ZWJraXQub3JnL2Iv
MTQ3NTE4IGluc3BlY3Rvci9tb2RlbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE0NzUxOCBpbnNw
ZWN0b3IvdGltZWxpbmUgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludHMvcmVzb2x2ZWQtZHVtcC1hbGwtcGF1
c2UtbG9jYXRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9pbnNw
ZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludHMvcmVzb2x2ZWQtZHVtcC1hbGwtcGF1c2UtbG9jYXRp
b25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzA4ZDk0OWNlYjQzZjk1OWZlMjc4YjZhNmRk
MTA0OTE5OGUwODQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50cy9yZXNvbHZlZC1kdW1wLWFsbC1wYXVzZS1s
b2NhdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjQxMSBAQAorQ2hlY2tpbmcgYWxsIHJl
c29sdmVkIGJyZWFrcG9pbnQgbG9jYXRpb25zIGluIGEgc2NyaXB0LgorCisKKz09IFJ1bm5pbmcg
dGVzdCBzdWl0ZTogRGVidWdnZXIucmVzb2x2ZWRCcmVha3BvaW50LmR1bXBBbGxMb2NhdGlvbnMK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5yZXNvbHZlZEJyZWFrcG9pbnQuZHVtcEFs
bExvY2F0aW9ucy5HZW5lcmFsCisKK0lOU0VSVElORyBBVDogMDowCitQQVVTRVMgQVQ6IDA6MAor
LT0+ICAgMCAgICB8bGV0IGE9ZnVuY3Rpb24oKXtyZXR1cm4gMH0KKyAgICAgIDEgICAgbGV0IGI9
ZnVuY3Rpb24oKXtyZXR1cm4gMH0KKyAgICAgIDIgICAgbGV0IGM9ZnVuY3Rpb24oKXtyZXR1cm4g
MH0KKyAgICAgIDMgICAgbGV0IGFycj1bXTsKKworSU5TRVJUSU5HIEFUOiAwOjEKK1BBVVNFUyBB
VDogMDoxNworLT0+ICAgMCAgICBsI2V0IGE9ZnVuY3Rpb24oKXt8cmV0dXJuIDB9CisgICAgICAx
ICAgIGxldCBiPWZ1bmN0aW9uKCl7cmV0dXJuIDB9CisgICAgICAyICAgIGxldCBjPWZ1bmN0aW9u
KCl7cmV0dXJuIDB9CisgICAgICAzICAgIGxldCBhcnI9W107CisKK0lOU0VSVElORyBBVDogMDox
OAorUEFVU0VTIEFUOiAwOjI1CistPT4gICAwICAgIGxldCBhPWZ1bmN0aW9uKCl7ciNldHVybiAw
fH0KKyAgICAgIDEgICAgbGV0IGI9ZnVuY3Rpb24oKXtyZXR1cm4gMH0KKyAgICAgIDIgICAgbGV0
IGM9ZnVuY3Rpb24oKXtyZXR1cm4gMH0KKyAgICAgIDMgICAgbGV0IGFycj1bXTsKKworSU5TRVJU
SU5HIEFUOiAwOjI2CitQQVVTRVMgQVQ6IDE6MAorIC0+ICAgMCAgICBsZXQgYT1mdW5jdGlvbigp
e3JldHVybiAwfSMKKyA9PiAgIDEgICAgfGxldCBiPWZ1bmN0aW9uKCl7cmV0dXJuIDB9CisgICAg
ICAyICAgIGxldCBjPWZ1bmN0aW9uKCl7cmV0dXJuIDB9CisgICAgICAzICAgIGxldCBhcnI9W107
CisgICAgICA0ICAgIGxldCBvYmo9e307CisKK0lOU0VSVElORyBBVDogMToxCitQQVVTRVMgQVQ6
IDE6MTcKKyAgICAgIDAgICAgbGV0IGE9ZnVuY3Rpb24oKXtyZXR1cm4gMH0KKy09PiAgIDEgICAg
bCNldCBiPWZ1bmN0aW9uKCl7fHJldHVybiAwfQorICAgICAgMiAgICBsZXQgYz1mdW5jdGlvbigp
e3JldHVybiAwfQorICAgICAgMyAgICBsZXQgYXJyPVtdOworICAgICAgNCAgICBsZXQgb2JqPXt9
OworCitJTlNFUlRJTkcgQVQ6IDE6MTgKK1BBVVNFUyBBVDogMToyNQorICAgICAgMCAgICBsZXQg
YT1mdW5jdGlvbigpe3JldHVybiAwfQorLT0+ICAgMSAgICBsZXQgYj1mdW5jdGlvbigpe3IjZXR1
cm4gMHx9CisgICAgICAyICAgIGxldCBjPWZ1bmN0aW9uKCl7cmV0dXJuIDB9CisgICAgICAzICAg
IGxldCBhcnI9W107CisgICAgICA0ICAgIGxldCBvYmo9e307CisKK0lOU0VSVElORyBBVDogMToy
NgorUEFVU0VTIEFUOiAyOjAKKyAgICAgIDAgICAgbGV0IGE9ZnVuY3Rpb24oKXtyZXR1cm4gMH0K
KyAtPiAgIDEgICAgbGV0IGI9ZnVuY3Rpb24oKXtyZXR1cm4gMH0jCisgPT4gICAyICAgIHxsZXQg
Yz1mdW5jdGlvbigpe3JldHVybiAwfQorICAgICAgMyAgICBsZXQgYXJyPVtdOworICAgICAgNCAg
ICBsZXQgb2JqPXt9OworICAgICAgNSAgICAKKworSU5TRVJUSU5HIEFUOiAyOjEKK1BBVVNFUyBB
VDogMjoxNworICAgICAgMCAgICBsZXQgYT1mdW5jdGlvbigpe3JldHVybiAwfQorICAgICAgMSAg
ICBsZXQgYj1mdW5jdGlvbigpe3JldHVybiAwfQorLT0+ICAgMiAgICBsI2V0IGM9ZnVuY3Rpb24o
KXt8cmV0dXJuIDB9CisgICAgICAzICAgIGxldCBhcnI9W107CisgICAgICA0ICAgIGxldCBvYmo9
e307CisgICAgICA1ICAgIAorCitJTlNFUlRJTkcgQVQ6IDI6MTgKK1BBVVNFUyBBVDogMjoyNQor
ICAgICAgMCAgICBsZXQgYT1mdW5jdGlvbigpe3JldHVybiAwfQorICAgICAgMSAgICBsZXQgYj1m
dW5jdGlvbigpe3JldHVybiAwfQorLT0+ICAgMiAgICBsZXQgYz1mdW5jdGlvbigpe3IjZXR1cm4g
MHx9CisgICAgICAzICAgIGxldCBhcnI9W107CisgICAgICA0ICAgIGxldCBvYmo9e307CisgICAg
ICA1ICAgIAorCitJTlNFUlRJTkcgQVQ6IDI6MjYKK1BBVVNFUyBBVDogMzowCisgICAgICAwICAg
IGxldCBhPWZ1bmN0aW9uKCl7cmV0dXJuIDB9CisgICAgICAxICAgIGxldCBiPWZ1bmN0aW9uKCl7
cmV0dXJuIDB9CisgLT4gICAyICAgIGxldCBjPWZ1bmN0aW9uKCl7cmV0dXJuIDB9IworID0+ICAg
MyAgICB8bGV0IGFycj1bXTsKKyAgICAgIDQgICAgbGV0IG9iaj17fTsKKyAgICAgIDUgICAgCisg
ICAgICA2ICAgIC8vIENvbnRyb2wgZmxvdworCitJTlNFUlRJTkcgQVQ6IDM6MQorUEFVU0VTIEFU
OiA0OjAKKyAgICAgIDAgICAgbGV0IGE9ZnVuY3Rpb24oKXtyZXR1cm4gMH0KKyAgICAgIDEgICAg
bGV0IGI9ZnVuY3Rpb24oKXtyZXR1cm4gMH0KKyAgICAgIDIgICAgbGV0IGM9ZnVuY3Rpb24oKXty
ZXR1cm4gMH0KKyAtPiAgIDMgICAgbCNldCBhcnI9W107CisgPT4gICA0ICAgIHxsZXQgb2JqPXt9
OworICAgICAgNSAgICAKKyAgICAgIDYgICAgLy8gQ29udHJvbCBmbG93CisgICAgICA3ICAgIAor
CitJTlNFUlRJTkcgQVQ6IDQ6MQorUEFVU0VTIEFUOiA4OjQKKyAgICAgIDEgICAgbGV0IGI9ZnVu
Y3Rpb24oKXtyZXR1cm4gMH0KKyAgICAgIDIgICAgbGV0IGM9ZnVuY3Rpb24oKXtyZXR1cm4gMH0K
KyAgICAgIDMgICAgbGV0IGFycj1bXTsKKyAtPiAgIDQgICAgbCNldCBvYmo9e307CisgICAgICA1
ICAgIAorICAgICAgNiAgICAvLyBDb250cm9sIGZsb3cKKyAgICAgIDcgICAgCisgPT4gICA4ICAg
IGlmICh8MCkKKyAgICAgIDkgICAgICAgIGEoKTsKKyAgICAgMTAgICAgCisgICAgIDExICAgIGlm
ICgwKSB7CisKK0lOU0VSVElORyBBVDogODo1CitQQVVTRVMgQVQ6IDk6NAorICAgICAgNSAgICAK
KyAgICAgIDYgICAgLy8gQ29udHJvbCBmbG93CisgICAgICA3ICAgIAorIC0+ICAgOCAgICBpZiAo
MCMpCisgPT4gICA5ICAgICAgICB8YSgpOworICAgICAxMCAgICAKKyAgICAgMTEgICAgaWYgKDAp
IHsKKyAgICAgMTIgICAgICAgIGEoKTsKKworSU5TRVJUSU5HIEFUOiA5OjUKK1BBVVNFUyBBVDog
MTE6NAorICAgICAgNiAgICAvLyBDb250cm9sIGZsb3cKKyAgICAgIDcgICAgCisgICAgICA4ICAg
IGlmICgwKQorIC0+ICAgOSAgICAgICAgYSMoKTsKKyAgICAgMTAgICAgCisgPT4gIDExICAgIGlm
ICh8MCkgeworICAgICAxMiAgICAgICAgYSgpOworICAgICAxMyAgICB9CisgICAgIDE0ICAgIAor
CitJTlNFUlRJTkcgQVQ6IDExOjUKK1BBVVNFUyBBVDogMTI6NAorICAgICAgOCAgICBpZiAoMCkK
KyAgICAgIDkgICAgICAgIGEoKTsKKyAgICAgMTAgICAgCisgLT4gIDExICAgIGlmICgwIykgewor
ID0+ICAxMiAgICAgICAgfGEoKTsKKyAgICAgMTMgICAgfQorICAgICAxNCAgICAKKyAgICAgMTUg
ICAgaWYgKDApCisKK0lOU0VSVElORyBBVDogMTI6NQorUEFVU0VTIEFUOiAxNTo0CisgICAgICA5
ICAgICAgICBhKCk7CisgICAgIDEwICAgIAorICAgICAxMSAgICBpZiAoMCkgeworIC0+ICAxMiAg
ICAgICAgYSMoKTsKKyAgICAgMTMgICAgfQorICAgICAxNCAgICAKKyA9PiAgMTUgICAgaWYgKHww
KQorICAgICAxNiAgICAgICAgYSgpOworICAgICAxNyAgICBlbHNlIGlmICgwKQorICAgICAxOCAg
ICAgICAgYSgpOworCitJTlNFUlRJTkcgQVQ6IDE1OjUKK1BBVVNFUyBBVDogMTY6NAorICAgICAx
MiAgICAgICAgYSgpOworICAgICAxMyAgICB9CisgICAgIDE0ICAgIAorIC0+ICAxNSAgICBpZiAo
MCMpCisgPT4gIDE2ICAgICAgICB8YSgpOworICAgICAxNyAgICBlbHNlIGlmICgwKQorICAgICAx
OCAgICAgICAgYSgpOworICAgICAxOSAgICBlbHNlCisKK0lOU0VSVElORyBBVDogMTY6NQorUEFV
U0VTIEFUOiAxNzo5CisgICAgIDEzICAgIH0KKyAgICAgMTQgICAgCisgICAgIDE1ICAgIGlmICgw
KQorIC0+ICAxNiAgICAgICAgYSMoKTsKKyA9PiAgMTcgICAgZWxzZSBpZiAofDApCisgICAgIDE4
ICAgICAgICBhKCk7CisgICAgIDE5ICAgIGVsc2UKKyAgICAgMjAgICAgICAgIGEoKTsKKworSU5T
RVJUSU5HIEFUOiAxNzoxMAorUEFVU0VTIEFUOiAxODo0CisgICAgIDE0ICAgIAorICAgICAxNSAg
ICBpZiAoMCkKKyAgICAgMTYgICAgICAgIGEoKTsKKyAtPiAgMTcgICAgZWxzZSBpZiAoMCMpCisg
PT4gIDE4ICAgICAgICB8YSgpOworICAgICAxOSAgICBlbHNlCisgICAgIDIwICAgICAgICBhKCk7
CisgICAgIDIxICAgIAorCitJTlNFUlRJTkcgQVQ6IDE4OjUKK1BBVVNFUyBBVDogMjA6NAorICAg
ICAxNSAgICBpZiAoMCkKKyAgICAgMTYgICAgICAgIGEoKTsKKyAgICAgMTcgICAgZWxzZSBpZiAo
MCkKKyAtPiAgMTggICAgICAgIGEjKCk7CisgICAgIDE5ICAgIGVsc2UKKyA9PiAgMjAgICAgICAg
IHxhKCk7CisgICAgIDIxICAgIAorICAgICAyMiAgICBhKCkgPyBiKCkgOiBjKCkKKyAgICAgMjMg
ICAgCisKK0lOU0VSVElORyBBVDogMjA6NQorUEFVU0VTIEFUOiAyMjowCisgICAgIDE3ICAgIGVs
c2UgaWYgKDApCisgICAgIDE4ICAgICAgICBhKCk7CisgICAgIDE5ICAgIGVsc2UKKyAtPiAgMjAg
ICAgICAgIGEjKCk7CisgICAgIDIxICAgIAorID0+ICAyMiAgICB8YSgpID8gYigpIDogYygpCisg
ICAgIDIzICAgIAorICAgICAyNCAgICAvLyBMb29wcworICAgICAyNSAgICAKKworSU5TRVJUSU5H
IEFUOiAyMjoxCitQQVVTRVMgQVQ6IDI2OjcKKyAgICAgMTkgICAgZWxzZQorICAgICAyMCAgICAg
ICAgYSgpOworICAgICAyMSAgICAKKyAtPiAgMjIgICAgYSMoKSA/IGIoKSA6IGMoKQorICAgICAy
MyAgICAKKyAgICAgMjQgICAgLy8gTG9vcHMKKyAgICAgMjUgICAgCisgPT4gIDI2ICAgIHdoaWxl
ICh8MCkKKyAgICAgMjcgICAgICAgIGEoKTsKKyAgICAgMjggICAgCisgICAgIDI5ICAgIHdoaWxl
ICgwKSB7CisKK0lOU0VSVElORyBBVDogMjY6OAorUEFVU0VTIEFUOiAyNzo0CisgICAgIDIzICAg
IAorICAgICAyNCAgICAvLyBMb29wcworICAgICAyNSAgICAKKyAtPiAgMjYgICAgd2hpbGUgKDAj
KQorID0+ICAyNyAgICAgICAgfGEoKTsKKyAgICAgMjggICAgCisgICAgIDI5ICAgIHdoaWxlICgw
KSB7CisgICAgIDMwICAgICAgICBhKCk7CisKK0lOU0VSVElORyBBVDogMjc6NQorUEFVU0VTIEFU
OiAyOTo3CisgICAgIDI0ICAgIC8vIExvb3BzCisgICAgIDI1ICAgIAorICAgICAyNiAgICB3aGls
ZSAoMCkKKyAtPiAgMjcgICAgICAgIGEjKCk7CisgICAgIDI4ICAgIAorID0+ICAyOSAgICB3aGls
ZSAofDApIHsKKyAgICAgMzAgICAgICAgIGEoKTsKKyAgICAgMzEgICAgfQorICAgICAzMiAgICAK
KworSU5TRVJUSU5HIEFUOiAyOTo4CitQQVVTRVMgQVQ6IDMwOjQKKyAgICAgMjYgICAgd2hpbGUg
KDApCisgICAgIDI3ICAgICAgICBhKCk7CisgICAgIDI4ICAgIAorIC0+ICAyOSAgICB3aGlsZSAo
MCMpIHsKKyA9PiAgMzAgICAgICAgIHxhKCk7CisgICAgIDMxICAgIH0KKyAgICAgMzIgICAgCisg
ICAgIDMzICAgIGRvIHsKKworSU5TRVJUSU5HIEFUOiAzMDo1CitQQVVTRVMgQVQ6IDM0OjQKKyAg
ICAgMjcgICAgICAgIGEoKTsKKyAgICAgMjggICAgCisgICAgIDI5ICAgIHdoaWxlICgwKSB7Cisg
LT4gIDMwICAgICAgICBhIygpOworICAgICAzMSAgICB9CisgICAgIDMyICAgIAorICAgICAzMyAg
ICBkbyB7CisgPT4gIDM0ICAgICAgICB8YSgpOworICAgICAzNSAgICB9IHdoaWxlICgwKTsKKyAg
ICAgMzYgICAgCisgICAgIDM3ICAgIGZvciAoYSgpOyBiKCk7IGMoKSkKKworSU5TRVJUSU5HIEFU
OiAzNDo1CitQQVVTRVMgQVQ6IDM1OjkKKyAgICAgMzEgICAgfQorICAgICAzMiAgICAKKyAgICAg
MzMgICAgZG8geworIC0+ICAzNCAgICAgICAgYSMoKTsKKyA9PiAgMzUgICAgfSB3aGlsZSAofDAp
OworICAgICAzNiAgICAKKyAgICAgMzcgICAgZm9yIChhKCk7IGIoKTsgYygpKQorICAgICAzOCAg
ICAgICAgYnJlYWs7CisKK0lOU0VSVElORyBBVDogMzU6MTAKK1BBVVNFUyBBVDogMzc6NQorICAg
ICAzMiAgICAKKyAgICAgMzMgICAgZG8geworICAgICAzNCAgICAgICAgYSgpOworIC0+ICAzNSAg
ICB9IHdoaWxlICgwIyk7CisgICAgIDM2ICAgIAorID0+ICAzNyAgICBmb3IgKHxhKCk7IGIoKTsg
YygpKQorICAgICAzOCAgICAgICAgYnJlYWs7CisgICAgIDM5ICAgIAorICAgICA0MCAgICBmb3Ig
KDsgYigpOyBjKCkpCisKK0lOU0VSVElORyBBVDogMzc6NgorUEFVU0VTIEFUOiAzNzoxMAorICAg
ICAzNCAgICAgICAgYSgpOworICAgICAzNSAgICB9IHdoaWxlICgwKTsKKyAgICAgMzYgICAgCist
PT4gIDM3ICAgIGZvciAoYSMoKTsgfGIoKTsgYygpKQorICAgICAzOCAgICAgICAgYnJlYWs7Cisg
ICAgIDM5ICAgIAorICAgICA0MCAgICBmb3IgKDsgYigpOyBjKCkpCisKK0lOU0VSVElORyBBVDog
Mzc6MTEKK1BBVVNFUyBBVDogMzc6MTUKKyAgICAgMzQgICAgICAgIGEoKTsKKyAgICAgMzUgICAg
fSB3aGlsZSAoMCk7CisgICAgIDM2ICAgIAorLT0+ICAzNyAgICBmb3IgKGEoKTsgYiMoKTsgfGMo
KSkKKyAgICAgMzggICAgICAgIGJyZWFrOworICAgICAzOSAgICAKKyAgICAgNDAgICAgZm9yICg7
IGIoKTsgYygpKQorCitJTlNFUlRJTkcgQVQ6IDM3OjE2CitQQVVTRVMgQVQ6IDM4OjQKKyAgICAg
MzQgICAgICAgIGEoKTsKKyAgICAgMzUgICAgfSB3aGlsZSAoMCk7CisgICAgIDM2ICAgIAorIC0+
ICAzNyAgICBmb3IgKGEoKTsgYigpOyBjIygpKQorID0+ICAzOCAgICAgICAgfGJyZWFrOworICAg
ICAzOSAgICAKKyAgICAgNDAgICAgZm9yICg7IGIoKTsgYygpKQorICAgICA0MSAgICAgICAgYnJl
YWs7CisKK0lOU0VSVElORyBBVDogMzg6NQorUEFVU0VTIEFUOiA0MDo3CisgICAgIDM1ICAgIH0g
d2hpbGUgKDApOworICAgICAzNiAgICAKKyAgICAgMzcgICAgZm9yIChhKCk7IGIoKTsgYygpKQor
IC0+ICAzOCAgICAgICAgYiNyZWFrOworICAgICAzOSAgICAKKyA9PiAgNDAgICAgZm9yICg7IHxi
KCk7IGMoKSkKKyAgICAgNDEgICAgICAgIGJyZWFrOworICAgICA0MiAgICAKKyAgICAgNDMgICAg
Zm9yIChhKCk7IGIoKTspCisKK0lOU0VSVElORyBBVDogNDA6OAorUEFVU0VTIEFUOiA0MDoxMgor
ICAgICAzNyAgICBmb3IgKGEoKTsgYigpOyBjKCkpCisgICAgIDM4ICAgICAgICBicmVhazsKKyAg
ICAgMzkgICAgCistPT4gIDQwICAgIGZvciAoOyBiIygpOyB8YygpKQorICAgICA0MSAgICAgICAg
YnJlYWs7CisgICAgIDQyICAgIAorICAgICA0MyAgICBmb3IgKGEoKTsgYigpOykKKworSU5TRVJU
SU5HIEFUOiA0MDoxMworUEFVU0VTIEFUOiA0MTo0CisgICAgIDM3ICAgIGZvciAoYSgpOyBiKCk7
IGMoKSkKKyAgICAgMzggICAgICAgIGJyZWFrOworICAgICAzOSAgICAKKyAtPiAgNDAgICAgZm9y
ICg7IGIoKTsgYyMoKSkKKyA9PiAgNDEgICAgICAgIHxicmVhazsKKyAgICAgNDIgICAgCisgICAg
IDQzICAgIGZvciAoYSgpOyBiKCk7KQorICAgICA0NCAgICAgICAgYnJlYWs7CisKK0lOU0VSVElO
RyBBVDogNDE6NQorUEFVU0VTIEFUOiA0Mzo1CisgICAgIDM4ICAgICAgICBicmVhazsKKyAgICAg
MzkgICAgCisgICAgIDQwICAgIGZvciAoOyBiKCk7IGMoKSkKKyAtPiAgNDEgICAgICAgIGIjcmVh
azsKKyAgICAgNDIgICAgCisgPT4gIDQzICAgIGZvciAofGEoKTsgYigpOykKKyAgICAgNDQgICAg
ICAgIGJyZWFrOworICAgICA0NSAgICAKKyAgICAgNDYgICAgZm9yIChhKCk7OyBjKCkpCisKK0lO
U0VSVElORyBBVDogNDM6NgorUEFVU0VTIEFUOiA0MzoxMAorICAgICA0MCAgICBmb3IgKDsgYigp
OyBjKCkpCisgICAgIDQxICAgICAgICBicmVhazsKKyAgICAgNDIgICAgCistPT4gIDQzICAgIGZv
ciAoYSMoKTsgfGIoKTspCisgICAgIDQ0ICAgICAgICBicmVhazsKKyAgICAgNDUgICAgCisgICAg
IDQ2ICAgIGZvciAoYSgpOzsgYygpKQorCitJTlNFUlRJTkcgQVQ6IDQzOjExCitQQVVTRVMgQVQ6
IDQ0OjQKKyAgICAgNDAgICAgZm9yICg7IGIoKTsgYygpKQorICAgICA0MSAgICAgICAgYnJlYWs7
CisgICAgIDQyICAgIAorIC0+ICA0MyAgICBmb3IgKGEoKTsgYiMoKTspCisgPT4gIDQ0ICAgICAg
ICB8YnJlYWs7CisgICAgIDQ1ICAgIAorICAgICA0NiAgICBmb3IgKGEoKTs7IGMoKSkKKyAgICAg
NDcgICAgICAgIGJyZWFrOworCitJTlNFUlRJTkcgQVQ6IDQ0OjUKK1BBVVNFUyBBVDogNDY6NQor
ICAgICA0MSAgICAgICAgYnJlYWs7CisgICAgIDQyICAgIAorICAgICA0MyAgICBmb3IgKGEoKTsg
YigpOykKKyAtPiAgNDQgICAgICAgIGIjcmVhazsKKyAgICAgNDUgICAgCisgPT4gIDQ2ICAgIGZv
ciAofGEoKTs7IGMoKSkKKyAgICAgNDcgICAgICAgIGJyZWFrOworICAgICA0OCAgICAKKyAgICAg
NDkgICAgZm9yIChhKCk7OykKKworSU5TRVJUSU5HIEFUOiA0Njo2CitQQVVTRVMgQVQ6IDQ2OjEx
CisgICAgIDQzICAgIGZvciAoYSgpOyBiKCk7KQorICAgICA0NCAgICAgICAgYnJlYWs7CisgICAg
IDQ1ICAgIAorLT0+ICA0NiAgICBmb3IgKGEjKCk7OyB8YygpKQorICAgICA0NyAgICAgICAgYnJl
YWs7CisgICAgIDQ4ICAgIAorICAgICA0OSAgICBmb3IgKGEoKTs7KQorCitJTlNFUlRJTkcgQVQ6
IDQ2OjEyCitQQVVTRVMgQVQ6IDQ3OjQKKyAgICAgNDMgICAgZm9yIChhKCk7IGIoKTspCisgICAg
IDQ0ICAgICAgICBicmVhazsKKyAgICAgNDUgICAgCisgLT4gIDQ2ICAgIGZvciAoYSgpOzsgYyMo
KSkKKyA9PiAgNDcgICAgICAgIHxicmVhazsKKyAgICAgNDggICAgCisgICAgIDQ5ICAgIGZvciAo
YSgpOzspCisgICAgIDUwICAgICAgICBicmVhazsKKworSU5TRVJUSU5HIEFUOiA0Nzo1CitQQVVT
RVMgQVQ6IDQ5OjUKKyAgICAgNDQgICAgICAgIGJyZWFrOworICAgICA0NSAgICAKKyAgICAgNDYg
ICAgZm9yIChhKCk7OyBjKCkpCisgLT4gIDQ3ICAgICAgICBiI3JlYWs7CisgICAgIDQ4ICAgIAor
ID0+ICA0OSAgICBmb3IgKHxhKCk7OykKKyAgICAgNTAgICAgICAgIGJyZWFrOworICAgICA1MSAg
ICAKKyAgICAgNTIgICAgZm9yICg7IGIoKTspCisKK0lOU0VSVElORyBBVDogNDk6NgorUEFVU0VT
IEFUOiA1MDo0CisgICAgIDQ2ICAgIGZvciAoYSgpOzsgYygpKQorICAgICA0NyAgICAgICAgYnJl
YWs7CisgICAgIDQ4ICAgIAorIC0+ICA0OSAgICBmb3IgKGEjKCk7OykKKyA9PiAgNTAgICAgICAg
IHxicmVhazsKKyAgICAgNTEgICAgCisgICAgIDUyICAgIGZvciAoOyBiKCk7KQorICAgICA1MyAg
ICAgICAgYnJlYWs7CisKK0lOU0VSVElORyBBVDogNTA6NQorUEFVU0VTIEFUOiA1Mjo3CisgICAg
IDQ3ICAgICAgICBicmVhazsKKyAgICAgNDggICAgCisgICAgIDQ5ICAgIGZvciAoYSgpOzspCisg
LT4gIDUwICAgICAgICBiI3JlYWs7CisgICAgIDUxICAgIAorID0+ICA1MiAgICBmb3IgKDsgfGIo
KTspCisgICAgIDUzICAgICAgICBicmVhazsKKyAgICAgNTQgICAgCisgICAgIDU1ICAgIGZvciAo
OzsgYygpKQorCitJTlNFUlRJTkcgQVQ6IDUyOjgKK1BBVVNFUyBBVDogNTM6NAorICAgICA0OSAg
ICBmb3IgKGEoKTs7KQorICAgICA1MCAgICAgICAgYnJlYWs7CisgICAgIDUxICAgIAorIC0+ICA1
MiAgICBmb3IgKDsgYiMoKTspCisgPT4gIDUzICAgICAgICB8YnJlYWs7CisgICAgIDU0ICAgIAor
ICAgICA1NSAgICBmb3IgKDs7IGMoKSkKKyAgICAgNTYgICAgICAgIGJyZWFrOworCitJTlNFUlRJ
TkcgQVQ6IDUzOjUKK1BBVVNFUyBBVDogNTU6OAorICAgICA1MCAgICAgICAgYnJlYWs7CisgICAg
IDUxICAgIAorICAgICA1MiAgICBmb3IgKDsgYigpOykKKyAtPiAgNTMgICAgICAgIGIjcmVhazsK
KyAgICAgNTQgICAgCisgPT4gIDU1ICAgIGZvciAoOzsgfGMoKSkKKyAgICAgNTYgICAgICAgIGJy
ZWFrOworICAgICA1NyAgICAKKyAgICAgNTggICAgZm9yICg7OykKKworSU5TRVJUSU5HIEFUOiA1
NTo5CitQQVVTRVMgQVQ6IDU2OjQKKyAgICAgNTIgICAgZm9yICg7IGIoKTspCisgICAgIDUzICAg
ICAgICBicmVhazsKKyAgICAgNTQgICAgCisgLT4gIDU1ICAgIGZvciAoOzsgYyMoKSkKKyA9PiAg
NTYgICAgICAgIHxicmVhazsKKyAgICAgNTcgICAgCisgICAgIDU4ICAgIGZvciAoOzspCisgICAg
IDU5ICAgICAgICBicmVhazsKKworSU5TRVJUSU5HIEFUOiA1Njo1CitQQVVTRVMgQVQ6IDU5OjQK
KyAgICAgNTMgICAgICAgIGJyZWFrOworICAgICA1NCAgICAKKyAgICAgNTUgICAgZm9yICg7OyBj
KCkpCisgLT4gIDU2ICAgICAgICBiI3JlYWs7CisgICAgIDU3ICAgIAorICAgICA1OCAgICBmb3Ig
KDs7KQorID0+ICA1OSAgICAgICAgfGJyZWFrOworICAgICA2MCAgICAKKyAgICAgNjEgICAgZm9y
IChhKCk7IGIoKTsgYygpKSB7CisgICAgIDYyICAgICAgICBicmVhazsKKworSU5TRVJUSU5HIEFU
OiA1OTo1CitQQVVTRVMgQVQ6IDYxOjUKKyAgICAgNTYgICAgICAgIGJyZWFrOworICAgICA1NyAg
ICAKKyAgICAgNTggICAgZm9yICg7OykKKyAtPiAgNTkgICAgICAgIGIjcmVhazsKKyAgICAgNjAg
ICAgCisgPT4gIDYxICAgIGZvciAofGEoKTsgYigpOyBjKCkpIHsKKyAgICAgNjIgICAgICAgIGJy
ZWFrOworICAgICA2MyAgICB9CisgICAgIDY0ICAgIAorCitJTlNFUlRJTkcgQVQ6IDYxOjYKK1BB
VVNFUyBBVDogNjE6MTAKKyAgICAgNTggICAgZm9yICg7OykKKyAgICAgNTkgICAgICAgIGJyZWFr
OworICAgICA2MCAgICAKKy09PiAgNjEgICAgZm9yIChhIygpOyB8YigpOyBjKCkpIHsKKyAgICAg
NjIgICAgICAgIGJyZWFrOworICAgICA2MyAgICB9CisgICAgIDY0ICAgIAorCitJTlNFUlRJTkcg
QVQ6IDYxOjExCitQQVVTRVMgQVQ6IDYxOjE1CisgICAgIDU4ICAgIGZvciAoOzspCisgICAgIDU5
ICAgICAgICBicmVhazsKKyAgICAgNjAgICAgCistPT4gIDYxICAgIGZvciAoYSgpOyBiIygpOyB8
YygpKSB7CisgICAgIDYyICAgICAgICBicmVhazsKKyAgICAgNjMgICAgfQorICAgICA2NCAgICAK
KworSU5TRVJUSU5HIEFUOiA2MToxNgorUEFVU0VTIEFUOiA2Mjo0CisgICAgIDU4ICAgIGZvciAo
OzspCisgICAgIDU5ICAgICAgICBicmVhazsKKyAgICAgNjAgICAgCisgLT4gIDYxICAgIGZvciAo
YSgpOyBiKCk7IGMjKCkpIHsKKyA9PiAgNjIgICAgICAgIHxicmVhazsKKyAgICAgNjMgICAgfQor
ICAgICA2NCAgICAKKyAgICAgNjUgICAgZm9yIChsZXQgeCBvZiBhcnIpCisKK0lOU0VSVElORyBB
VDogNjI6NQorUEFVU0VTIEFUOiA2NToxNAorICAgICA1OSAgICAgICAgYnJlYWs7CisgICAgIDYw
ICAgIAorICAgICA2MSAgICBmb3IgKGEoKTsgYigpOyBjKCkpIHsKKyAtPiAgNjIgICAgICAgIGIj
cmVhazsKKyAgICAgNjMgICAgfQorICAgICA2NCAgICAKKyA9PiAgNjUgICAgZm9yIChsZXQgeCBv
ZiB8YXJyKQorICAgICA2NiAgICAgICAgYnJlYWs7CisgICAgIDY3ICAgIAorICAgICA2OCAgICBm
b3IgKGxldCB4IGluIG9iaikKKworSU5TRVJUSU5HIEFUOiA2NToxNQorUEFVU0VTIEFUOiA2Njo0
CisgICAgIDYyICAgICAgICBicmVhazsKKyAgICAgNjMgICAgfQorICAgICA2NCAgICAKKyAtPiAg
NjUgICAgZm9yIChsZXQgeCBvZiBhI3JyKQorID0+ICA2NiAgICAgICAgfGJyZWFrOworICAgICA2
NyAgICAKKyAgICAgNjggICAgZm9yIChsZXQgeCBpbiBvYmopCisgICAgIDY5ICAgICAgICBicmVh
azsKKworSU5TRVJUSU5HIEFUOiA2Njo1CitQQVVTRVMgQVQ6IDY4OjE0CisgICAgIDYzICAgIH0K
KyAgICAgNjQgICAgCisgICAgIDY1ICAgIGZvciAobGV0IHggb2YgYXJyKQorIC0+ICA2NiAgICAg
ICAgYiNyZWFrOworICAgICA2NyAgICAKKyA9PiAgNjggICAgZm9yIChsZXQgeCBpbiB8b2JqKQor
ICAgICA2OSAgICAgICAgYnJlYWs7CisgICAgIDcwICAgIAorICAgICA3MSAgICAvLyBTd2l0Y2gK
KworSU5TRVJUSU5HIEFUOiA2ODoxNQorUEFVU0VTIEFUOiA2OTo0CisgICAgIDY1ICAgIGZvciAo
bGV0IHggb2YgYXJyKQorICAgICA2NiAgICAgICAgYnJlYWs7CisgICAgIDY3ICAgIAorIC0+ICA2
OCAgICBmb3IgKGxldCB4IGluIG8jYmopCisgPT4gIDY5ICAgICAgICB8YnJlYWs7CisgICAgIDcw
ICAgIAorICAgICA3MSAgICAvLyBTd2l0Y2gKKyAgICAgNzIgICAgCisKK0lOU0VSVElORyBBVDog
Njk6NQorUEFVU0VTIEFUOiA3Mzo4CisgICAgIDY2ICAgICAgICBicmVhazsKKyAgICAgNjcgICAg
CisgICAgIDY4ICAgIGZvciAobGV0IHggaW4gb2JqKQorIC0+ICA2OSAgICAgICAgYiNyZWFrOwor
ICAgICA3MCAgICAKKyAgICAgNzEgICAgLy8gU3dpdGNoCisgICAgIDcyICAgIAorID0+ICA3MyAg
ICBzd2l0Y2ggKHwwKSB7CisgICAgIDc0ICAgIGNhc2UgMToKKyAgICAgNzUgICAgICAgIGEoKTsK
KyAgICAgNzYgICAgICAgIGJyZWFrOworCitJTlNFUlRJTkcgQVQ6IDczOjkKK1BBVVNFUyBBVDog
NzU6NAorICAgICA3MCAgICAKKyAgICAgNzEgICAgLy8gU3dpdGNoCisgICAgIDcyICAgIAorIC0+
ICA3MyAgICBzd2l0Y2ggKDAjKSB7CisgICAgIDc0ICAgIGNhc2UgMToKKyA9PiAgNzUgICAgICAg
IHxhKCk7CisgICAgIDc2ICAgICAgICBicmVhazsKKyAgICAgNzcgICAgY2FzZSAyOgorICAgICA3
OCAgICAgICAgYSgpOworCitJTlNFUlRJTkcgQVQ6IDc1OjUKK1BBVVNFUyBBVDogNzY6NAorICAg
ICA3MiAgICAKKyAgICAgNzMgICAgc3dpdGNoICgwKSB7CisgICAgIDc0ICAgIGNhc2UgMToKKyAt
PiAgNzUgICAgICAgIGEjKCk7CisgPT4gIDc2ICAgICAgICB8YnJlYWs7CisgICAgIDc3ICAgIGNh
c2UgMjoKKyAgICAgNzggICAgICAgIGEoKTsKKyAgICAgNzkgICAgICAgIC8vIGZhbGx0aHJvdWdo
CisKK0lOU0VSVElORyBBVDogNzY6NQorUEFVU0VTIEFUOiA3ODo0CisgICAgIDczICAgIHN3aXRj
aCAoMCkgeworICAgICA3NCAgICBjYXNlIDE6CisgICAgIDc1ICAgICAgICBhKCk7CisgLT4gIDc2
ICAgICAgICBiI3JlYWs7CisgICAgIDc3ICAgIGNhc2UgMjoKKyA9PiAgNzggICAgICAgIHxhKCk7
CisgICAgIDc5ICAgICAgICAvLyBmYWxsdGhyb3VnaAorICAgICA4MCAgICBjYXNlIDM6CisgICAg
IDgxICAgICAgICBhKCk7CisKK0lOU0VSVElORyBBVDogNzg6NQorUEFVU0VTIEFUOiA4MTo0Cisg
ICAgIDc1ICAgICAgICBhKCk7CisgICAgIDc2ICAgICAgICBicmVhazsKKyAgICAgNzcgICAgY2Fz
ZSAyOgorIC0+ICA3OCAgICAgICAgYSMoKTsKKyAgICAgNzkgICAgICAgIC8vIGZhbGx0aHJvdWdo
CisgICAgIDgwICAgIGNhc2UgMzoKKyA9PiAgODEgICAgICAgIHxhKCk7CisgICAgIDgyICAgICAg
ICBicmVhazsKKyAgICAgODMgICAgZGVmYXVsdDoKKyAgICAgODQgICAgICAgIGEoKTsKKworSU5T
RVJUSU5HIEFUOiA4MTo1CitQQVVTRVMgQVQ6IDgyOjQKKyAgICAgNzggICAgICAgIGEoKTsKKyAg
ICAgNzkgICAgICAgIC8vIGZhbGx0aHJvdWdoCisgICAgIDgwICAgIGNhc2UgMzoKKyAtPiAgODEg
ICAgICAgIGEjKCk7CisgPT4gIDgyICAgICAgICB8YnJlYWs7CisgICAgIDgzICAgIGRlZmF1bHQ6
CisgICAgIDg0ICAgICAgICBhKCk7CisgICAgIDg1ICAgICAgICBicmVhazsKKworSU5TRVJUSU5H
IEFUOiA4Mjo1CitQQVVTRVMgQVQ6IDg0OjQKKyAgICAgNzkgICAgICAgIC8vIGZhbGx0aHJvdWdo
CisgICAgIDgwICAgIGNhc2UgMzoKKyAgICAgODEgICAgICAgIGEoKTsKKyAtPiAgODIgICAgICAg
IGIjcmVhazsKKyAgICAgODMgICAgZGVmYXVsdDoKKyA9PiAgODQgICAgICAgIHxhKCk7CisgICAg
IDg1ICAgICAgICBicmVhazsKKyAgICAgODYgICAgfQorICAgICA4NyAgICAKKworSU5TRVJUSU5H
IEFUOiA4NDo1CitQQVVTRVMgQVQ6IDg1OjQKKyAgICAgODEgICAgICAgIGEoKTsKKyAgICAgODIg
ICAgICAgIGJyZWFrOworICAgICA4MyAgICBkZWZhdWx0OgorIC0+ICA4NCAgICAgICAgYSMoKTsK
KyA9PiAgODUgICAgICAgIHxicmVhazsKKyAgICAgODYgICAgfQorICAgICA4NyAgICAKKyAgICAg
ODggICAgLy8gVHJ5L0NhdGNoCisKK0lOU0VSVElORyBBVDogODU6NQorUEFVU0VTIEFUOiA5MTo0
CisgICAgIDgyICAgICAgICBicmVhazsKKyAgICAgODMgICAgZGVmYXVsdDoKKyAgICAgODQgICAg
ICAgIGEoKTsKKyAtPiAgODUgICAgICAgIGIjcmVhazsKKyAgICAgODYgICAgfQorICAgICA4NyAg
ICAKKyAgICAgODggICAgLy8gVHJ5L0NhdGNoCisgICAgIDg5ICAgIAorICAgICA5MCAgICB0cnkg
eworID0+ICA5MSAgICAgICAgfGEoKTsKKyAgICAgOTIgICAgfSBjYXRjaCAoZSkgeworICAgICA5
MyAgICAgICAgc2hvdWxkTm90QmVSZWFjaGVkKCk7CisgICAgIDk0ICAgIH0gZmluYWxseSB7CisK
K0lOU0VSVElORyBBVDogOTE6NQorUEFVU0VTIEFUOiA5Mzo0CisgICAgIDg4ICAgIC8vIFRyeS9D
YXRjaAorICAgICA4OSAgICAKKyAgICAgOTAgICAgdHJ5IHsKKyAtPiAgOTEgICAgICAgIGEjKCk7
CisgICAgIDkyICAgIH0gY2F0Y2ggKGUpIHsKKyA9PiAgOTMgICAgICAgIHxzaG91bGROb3RCZVJl
YWNoZWQoKTsKKyAgICAgOTQgICAgfSBmaW5hbGx5IHsKKyAgICAgOTUgICAgICAgIGIoKTsKKyAg
ICAgOTYgICAgfQorCitJTlNFUlRJTkcgQVQ6IDkzOjUKK1BBVVNFUyBBVDogOTU6NAorICAgICA5
MCAgICB0cnkgeworICAgICA5MSAgICAgICAgYSgpOworICAgICA5MiAgICB9IGNhdGNoIChlKSB7
CisgLT4gIDkzICAgICAgICBzI2hvdWxkTm90QmVSZWFjaGVkKCk7CisgICAgIDk0ICAgIH0gZmlu
YWxseSB7CisgPT4gIDk1ICAgICAgICB8YigpOworICAgICA5NiAgICB9CisgICAgIDk3ICAgIAor
ICAgICA5OCAgICAvLyBDbGFzcworCitJTlNFUlRJTkcgQVQ6IDk1OjUKK1BBVVNFUyBBVDogMTUx
OjgKKyAgICAgOTIgICAgfSBjYXRjaCAoZSkgeworICAgICA5MyAgICAgICAgc2hvdWxkTm90QmVS
ZWFjaGVkKCk7CisgICAgIDk0ICAgIH0gZmluYWxseSB7CisgLT4gIDk1ICAgICAgICBiIygpOwor
ICAgICA5NiAgICB9CisgICAgIDk3ICAgIAorICAgICA5OCAgICAvLyBDbGFzcworICAgICA5OSAg
ICAKKyAgICAxMDAgICAgY2xhc3MgQmFzZSB7CisgICAgMTAxICAgICAgICBjb25zdHJ1Y3Rvcigp
CisgICAgMTAyICAgICAgICB7CisgICAgMTAzICAgICAgICAgICAgdGhpcy5fYmFzZSA9IHRydWU7
CisgICAgMTA0ICAgICAgICB9CisgICAgMTA1ICAgIAorICAgIDEwNiAgICAgICAgYmFzZU1ldGhv
ZCgpCisgICAgMTA3ICAgICAgICB7CisgICAgMTA4ICAgICAgICAgICAgYSgpOworICAgIDEwOSAg
ICAgICAgfQorICAgIDExMCAgICAKKyAgICAxMTEgICAgICAgIG1ldGhvZCgpCisgICAgMTEyICAg
ICAgICB7CisgICAgMTEzICAgICAgICAgICAgYSgpOworICAgIDExNCAgICAgICAgfQorICAgIDEx
NSAgICB9CisgICAgMTE2ICAgIAorICAgIDExNyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIEJhc2Ug
eworICAgIDExOCAgICAgICAgY29uc3RydWN0b3IoKQorICAgIDExOSAgICAgICAgeworICAgIDEy
MCAgICAgICAgICAgIHN1cGVyKCk7CisgICAgMTIxICAgICAgICAgICAgdGhpcy5fY2hpbGQgPSB0
cnVlOworICAgIDEyMiAgICAgICAgfQorICAgIDEyMyAgICAKKyAgICAxMjQgICAgICAgIGNoaWxk
TWV0aG9kKCkKKyAgICAxMjUgICAgICAgIHsKKyAgICAxMjYgICAgICAgICAgICBiKCk7CisgICAg
MTI3ICAgICAgICB9CisgICAgMTI4ICAgIAorICAgIDEyOSAgICAgICAgbWV0aG9kKCkKKyAgICAx
MzAgICAgICAgIHsKKyAgICAxMzEgICAgICAgICAgICBzdXBlci5tZXRob2QoKTsKKyAgICAxMzIg
ICAgICAgICAgICBiKCk7CisgICAgMTMzICAgICAgICB9CisgICAgMTM0ICAgIAorICAgIDEzNSAg
ICAgICAgZ2V0IG5hbWUoKQorICAgIDEzNiAgICAgICAgeworICAgIDEzNyAgICAgICAgICAgIHJl
dHVybiB0aGlzLl9uYW1lOworICAgIDEzOCAgICAgICAgfQorICAgIDEzOSAgICAgICAgCisgICAg
MTQwICAgICAgICBzZXQgbmFtZSh4KQorICAgIDE0MSAgICAgICAgeworICAgIDE0MiAgICAgICAg
ICAgIHRoaXMuX25hbWUgPSB4OworICAgIDE0MyAgICAgICAgfQorICAgIDE0NCAgICB9CisgICAg
MTQ1ICAgIAorICAgIDE0NiAgICAvLyAtLS0tLS0tLS0KKyAgICAxNDcgICAgLyogTWlzYyAqLwor
ICAgIDE0OCAgICAvLyAtLS0tLS0tLS0KKyAgICAxNDkgICAgCisgICAgMTUwICAgICAgICB7Cisg
PT4gMTUxICAgICAgICAgICAgfGEoKTsKKyAgICAxNTIgICAgICAgIH0KKyAgICAxNTMgICAgCisg
ICAgMTU0ICAgIGxhYmVsOgorCitJTlNFUlRJTkcgQVQ6IDEwMTowCitQQVVTRVMgQVQ6IDEwMzo4
CisgICAgIDk4ICAgIC8vIENsYXNzCisgICAgIDk5ICAgIAorICAgIDEwMCAgICBjbGFzcyBCYXNl
IHsKKyAtPiAxMDEgICAgIyAgICBjb25zdHJ1Y3RvcigpCisgICAgMTAyICAgICAgICB7CisgPT4g
MTAzICAgICAgICAgICAgfHRoaXMuX2Jhc2UgPSB0cnVlOworICAgIDEwNCAgICAgICAgfQorICAg
IDEwNSAgICAKKyAgICAxMDYgICAgICAgIGJhc2VNZXRob2QoKQorCitJTlNFUlRJTkcgQVQ6IDEw
Mzo5CitQQVVTRVMgQVQ6IDEwNDo0CisgICAgMTAwICAgIGNsYXNzIEJhc2UgeworICAgIDEwMSAg
ICAgICAgY29uc3RydWN0b3IoKQorICAgIDEwMiAgICAgICAgeworIC0+IDEwMyAgICAgICAgICAg
IHQjaGlzLl9iYXNlID0gdHJ1ZTsKKyA9PiAxMDQgICAgICAgIHx9CisgICAgMTA1ICAgIAorICAg
IDEwNiAgICAgICAgYmFzZU1ldGhvZCgpCisgICAgMTA3ICAgICAgICB7CisKK0lOU0VSVElORyBB
VDogMTA2OjAKK1BBVVNFUyBBVDogMTA4OjgKKyAgICAxMDMgICAgICAgICAgICB0aGlzLl9iYXNl
ID0gdHJ1ZTsKKyAgICAxMDQgICAgICAgIH0KKyAgICAxMDUgICAgCisgLT4gMTA2ICAgICMgICAg
YmFzZU1ldGhvZCgpCisgICAgMTA3ICAgICAgICB7CisgPT4gMTA4ICAgICAgICAgICAgfGEoKTsK
KyAgICAxMDkgICAgICAgIH0KKyAgICAxMTAgICAgCisgICAgMTExICAgICAgICBtZXRob2QoKQor
CitJTlNFUlRJTkcgQVQ6IDEwODo5CitQQVVTRVMgQVQ6IDEwOTo0CisgICAgMTA1ICAgIAorICAg
IDEwNiAgICAgICAgYmFzZU1ldGhvZCgpCisgICAgMTA3ICAgICAgICB7CisgLT4gMTA4ICAgICAg
ICAgICAgYSMoKTsKKyA9PiAxMDkgICAgICAgIHx9CisgICAgMTEwICAgIAorICAgIDExMSAgICAg
ICAgbWV0aG9kKCkKKyAgICAxMTIgICAgICAgIHsKKworSU5TRVJUSU5HIEFUOiAxMTE6MAorUEFV
U0VTIEFUOiAxMTM6OAorICAgIDEwOCAgICAgICAgICAgIGEoKTsKKyAgICAxMDkgICAgICAgIH0K
KyAgICAxMTAgICAgCisgLT4gMTExICAgICMgICAgbWV0aG9kKCkKKyAgICAxMTIgICAgICAgIHsK
KyA9PiAxMTMgICAgICAgICAgICB8YSgpOworICAgIDExNCAgICAgICAgfQorICAgIDExNSAgICB9
CisgICAgMTE2ICAgIAorCitJTlNFUlRJTkcgQVQ6IDExMzo5CitQQVVTRVMgQVQ6IDExNDo0Cisg
ICAgMTEwICAgIAorICAgIDExMSAgICAgICAgbWV0aG9kKCkKKyAgICAxMTIgICAgICAgIHsKKyAt
PiAxMTMgICAgICAgICAgICBhIygpOworID0+IDExNCAgICAgICAgfH0KKyAgICAxMTUgICAgfQor
ICAgIDExNiAgICAKKyAgICAxMTcgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBCYXNlIHsKKworSU5T
RVJUSU5HIEFUOiAxMTg6MAorUEFVU0VTIEFUOiAxMjA6OAorICAgIDExNSAgICB9CisgICAgMTE2
ICAgIAorICAgIDExNyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIEJhc2UgeworIC0+IDExOCAgICAj
ICAgIGNvbnN0cnVjdG9yKCkKKyAgICAxMTkgICAgICAgIHsKKyA9PiAxMjAgICAgICAgICAgICB8
c3VwZXIoKTsKKyAgICAxMjEgICAgICAgICAgICB0aGlzLl9jaGlsZCA9IHRydWU7CisgICAgMTIy
ICAgICAgICB9CisgICAgMTIzICAgIAorCitJTlNFUlRJTkcgQVQ6IDEyMDo5CitQQVVTRVMgQVQ6
IDEyMTo4CisgICAgMTE3ICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgQmFzZSB7CisgICAgMTE4ICAg
ICAgICBjb25zdHJ1Y3RvcigpCisgICAgMTE5ICAgICAgICB7CisgLT4gMTIwICAgICAgICAgICAg
cyN1cGVyKCk7CisgPT4gMTIxICAgICAgICAgICAgfHRoaXMuX2NoaWxkID0gdHJ1ZTsKKyAgICAx
MjIgICAgICAgIH0KKyAgICAxMjMgICAgCisgICAgMTI0ICAgICAgICBjaGlsZE1ldGhvZCgpCisK
K0lOU0VSVElORyBBVDogMTIxOjkKK1BBVVNFUyBBVDogMTIyOjQKKyAgICAxMTggICAgICAgIGNv
bnN0cnVjdG9yKCkKKyAgICAxMTkgICAgICAgIHsKKyAgICAxMjAgICAgICAgICAgICBzdXBlcigp
OworIC0+IDEyMSAgICAgICAgICAgIHQjaGlzLl9jaGlsZCA9IHRydWU7CisgPT4gMTIyICAgICAg
ICB8fQorICAgIDEyMyAgICAKKyAgICAxMjQgICAgICAgIGNoaWxkTWV0aG9kKCkKKyAgICAxMjUg
ICAgICAgIHsKKworSU5TRVJUSU5HIEFUOiAxMjQ6MAorUEFVU0VTIEFUOiAxMjY6OAorICAgIDEy
MSAgICAgICAgICAgIHRoaXMuX2NoaWxkID0gdHJ1ZTsKKyAgICAxMjIgICAgICAgIH0KKyAgICAx
MjMgICAgCisgLT4gMTI0ICAgICMgICAgY2hpbGRNZXRob2QoKQorICAgIDEyNSAgICAgICAgewor
ID0+IDEyNiAgICAgICAgICAgIHxiKCk7CisgICAgMTI3ICAgICAgICB9CisgICAgMTI4ICAgIAor
ICAgIDEyOSAgICAgICAgbWV0aG9kKCkKKworSU5TRVJUSU5HIEFUOiAxMjY6OQorUEFVU0VTIEFU
OiAxMjc6NAorICAgIDEyMyAgICAKKyAgICAxMjQgICAgICAgIGNoaWxkTWV0aG9kKCkKKyAgICAx
MjUgICAgICAgIHsKKyAtPiAxMjYgICAgICAgICAgICBiIygpOworID0+IDEyNyAgICAgICAgfH0K
KyAgICAxMjggICAgCisgICAgMTI5ICAgICAgICBtZXRob2QoKQorICAgIDEzMCAgICAgICAgewor
CitJTlNFUlRJTkcgQVQ6IDEyOTowCitQQVVTRVMgQVQ6IDEzMTo4CisgICAgMTI2ICAgICAgICAg
ICAgYigpOworICAgIDEyNyAgICAgICAgfQorICAgIDEyOCAgICAKKyAtPiAxMjkgICAgIyAgICBt
ZXRob2QoKQorICAgIDEzMCAgICAgICAgeworID0+IDEzMSAgICAgICAgICAgIHxzdXBlci5tZXRo
b2QoKTsKKyAgICAxMzIgICAgICAgICAgICBiKCk7CisgICAgMTMzICAgICAgICB9CisgICAgMTM0
ICAgIAorCitJTlNFUlRJTkcgQVQ6IDEzMTo5CitQQVVTRVMgQVQ6IDEzMjo4CisgICAgMTI4ICAg
IAorICAgIDEyOSAgICAgICAgbWV0aG9kKCkKKyAgICAxMzAgICAgICAgIHsKKyAtPiAxMzEgICAg
ICAgICAgICBzI3VwZXIubWV0aG9kKCk7CisgPT4gMTMyICAgICAgICAgICAgfGIoKTsKKyAgICAx
MzMgICAgICAgIH0KKyAgICAxMzQgICAgCisgICAgMTM1ICAgICAgICBnZXQgbmFtZSgpCisKK0lO
U0VSVElORyBBVDogMTMyOjkKK1BBVVNFUyBBVDogMTMzOjQKKyAgICAxMjkgICAgICAgIG1ldGhv
ZCgpCisgICAgMTMwICAgICAgICB7CisgICAgMTMxICAgICAgICAgICAgc3VwZXIubWV0aG9kKCk7
CisgLT4gMTMyICAgICAgICAgICAgYiMoKTsKKyA9PiAxMzMgICAgICAgIHx9CisgICAgMTM0ICAg
IAorICAgIDEzNSAgICAgICAgZ2V0IG5hbWUoKQorICAgIDEzNiAgICAgICAgeworCitJTlNFUlRJ
TkcgQVQ6IDEzNTowCitQQVVTRVMgQVQ6IDEzNzo4CisgICAgMTMyICAgICAgICAgICAgYigpOwor
ICAgIDEzMyAgICAgICAgfQorICAgIDEzNCAgICAKKyAtPiAxMzUgICAgIyAgICBnZXQgbmFtZSgp
CisgICAgMTM2ICAgICAgICB7CisgPT4gMTM3ICAgICAgICAgICAgfHJldHVybiB0aGlzLl9uYW1l
OworICAgIDEzOCAgICAgICAgfQorICAgIDEzOSAgICAgICAgCisgICAgMTQwICAgICAgICBzZXQg
bmFtZSh4KQorCitJTlNFUlRJTkcgQVQ6IDEzNzo5CitQQVVTRVMgQVQ6IDEzODo0CisgICAgMTM0
ICAgIAorICAgIDEzNSAgICAgICAgZ2V0IG5hbWUoKQorICAgIDEzNiAgICAgICAgeworIC0+IDEz
NyAgICAgICAgICAgIHIjZXR1cm4gdGhpcy5fbmFtZTsKKyA9PiAxMzggICAgICAgIHx9CisgICAg
MTM5ICAgICAgICAKKyAgICAxNDAgICAgICAgIHNldCBuYW1lKHgpCisgICAgMTQxICAgICAgICB7
CisKK0lOU0VSVElORyBBVDogMTQwOjAKK1BBVVNFUyBBVDogMTQyOjgKKyAgICAxMzcgICAgICAg
ICAgICByZXR1cm4gdGhpcy5fbmFtZTsKKyAgICAxMzggICAgICAgIH0KKyAgICAxMzkgICAgICAg
IAorIC0+IDE0MCAgICAjICAgIHNldCBuYW1lKHgpCisgICAgMTQxICAgICAgICB7CisgPT4gMTQy
ICAgICAgICAgICAgfHRoaXMuX25hbWUgPSB4OworICAgIDE0MyAgICAgICAgfQorICAgIDE0NCAg
ICB9CisgICAgMTQ1ICAgIAorCitJTlNFUlRJTkcgQVQ6IDE0Mjo5CitQQVVTRVMgQVQ6IDE0Mzo0
CisgICAgMTM5ICAgICAgICAKKyAgICAxNDAgICAgICAgIHNldCBuYW1lKHgpCisgICAgMTQxICAg
ICAgICB7CisgLT4gMTQyICAgICAgICAgICAgdCNoaXMuX25hbWUgPSB4OworID0+IDE0MyAgICAg
ICAgfH0KKyAgICAxNDQgICAgfQorICAgIDE0NSAgICAKKyAgICAxNDYgICAgLy8gLS0tLS0tLS0t
CisKK0lOU0VSVElORyBBVDogMTUxOjkKK1BBVVNFUyBBVDogMTU2OjgKKyAgICAxNDggICAgLy8g
LS0tLS0tLS0tCisgICAgMTQ5ICAgIAorICAgIDE1MCAgICAgICAgeworIC0+IDE1MSAgICAgICAg
ICAgIGEjKCk7CisgICAgMTUyICAgICAgICB9CisgICAgMTUzICAgIAorICAgIDE1NCAgICBsYWJl
bDoKKyAgICAxNTUgICAgICAgIHsKKyA9PiAxNTYgICAgICAgICAgICB8YSgpOworICAgIDE1NyAg
ICAgICAgfQorICAgIDE1OCAgICAKKyAgICAxNTkgICAgdmFyIHcxID0ge3g6MSwgeToyfTsKKwor
SU5TRVJUSU5HIEFUOiAxNTY6OQorUEFVU0VTIEFUOiAxNTk6MAorICAgIDE1MyAgICAKKyAgICAx
NTQgICAgbGFiZWw6CisgICAgMTU1ICAgICAgICB7CisgLT4gMTU2ICAgICAgICAgICAgYSMoKTsK
KyAgICAxNTcgICAgICAgIH0KKyAgICAxNTggICAgCisgPT4gMTU5ICAgIHx2YXIgdzEgPSB7eDox
LCB5OjJ9OworICAgIDE2MCAgICB3aXRoICh3MSkgeworICAgIDE2MSAgICAgICAgYSgpOworICAg
IDE2MiAgICB9CisKK0lOU0VSVElORyBBVDogMTU5OjEKK1BBVVNFUyBBVDogMTYwOjYKKyAgICAx
NTYgICAgICAgICAgICBhKCk7CisgICAgMTU3ICAgICAgICB9CisgICAgMTU4ICAgIAorIC0+IDE1
OSAgICB2I2FyIHcxID0ge3g6MSwgeToyfTsKKyA9PiAxNjAgICAgd2l0aCAofHcxKSB7CisgICAg
MTYxICAgICAgICBhKCk7CisgICAgMTYyICAgIH0KKyAgICAxNjMgICAgCisKK0lOU0VSVElORyBB
VDogMTYwOjcKK1BBVVNFUyBBVDogMTYxOjQKKyAgICAxNTcgICAgICAgIH0KKyAgICAxNTggICAg
CisgICAgMTU5ICAgIHZhciB3MSA9IHt4OjEsIHk6Mn07CisgLT4gMTYwICAgIHdpdGggKHcjMSkg
eworID0+IDE2MSAgICAgICAgfGEoKTsKKyAgICAxNjIgICAgfQorICAgIDE2MyAgICAKKyAgICAx
NjQgICAgdmFyIHYxID0gMSwKKworSU5TRVJUSU5HIEFUOiAxNjE6NQorUEFVU0VTIEFUOiAxNjQ6
MAorICAgIDE1OCAgICAKKyAgICAxNTkgICAgdmFyIHcxID0ge3g6MSwgeToyfTsKKyAgICAxNjAg
ICAgd2l0aCAodzEpIHsKKyAtPiAxNjEgICAgICAgIGEjKCk7CisgICAgMTYyICAgIH0KKyAgICAx
NjMgICAgCisgPT4gMTY0ICAgIHx2YXIgdjEgPSAxLAorICAgIDE2NSAgICAgICAgdjIgPSAxOwor
ICAgIDE2NiAgICBsZXQgbDEgPSAyLAorICAgIDE2NyAgICAgICAgbDIgPSAyOworCitJTlNFUlRJ
TkcgQVQ6IDE2NDoxCitQQVVTRVMgQVQ6IDE2NjowCisgICAgMTYxICAgICAgICBhKCk7CisgICAg
MTYyICAgIH0KKyAgICAxNjMgICAgCisgLT4gMTY0ICAgIHYjYXIgdjEgPSAxLAorICAgIDE2NSAg
ICAgICAgdjIgPSAxOworID0+IDE2NiAgICB8bGV0IGwxID0gMiwKKyAgICAxNjcgICAgICAgIGwy
ID0gMjsKKyAgICAxNjggICAgY29uc3QgYzEgPSAzLAorICAgIDE2OSAgICAgICAgYzIgPSAzOwor
CitJTlNFUlRJTkcgQVQ6IDE2NjoxCitQQVVTRVMgQVQ6IDE2ODowCisgICAgMTYzICAgIAorICAg
IDE2NCAgICB2YXIgdjEgPSAxLAorICAgIDE2NSAgICAgICAgdjIgPSAxOworIC0+IDE2NiAgICBs
I2V0IGwxID0gMiwKKyAgICAxNjcgICAgICAgIGwyID0gMjsKKyA9PiAxNjggICAgfGNvbnN0IGMx
ID0gMywKKyAgICAxNjkgICAgICAgIGMyID0gMzsKKyAgICAxNzAgICAgCisgICAgMTcxICAgIHYx
ID0gdjIgPSB2MTsKKworSU5TRVJUSU5HIEFUOiAxNjg6MQorUEFVU0VTIEFUOiAxNzE6MAorICAg
IDE2NSAgICAgICAgdjIgPSAxOworICAgIDE2NiAgICBsZXQgbDEgPSAyLAorICAgIDE2NyAgICAg
ICAgbDIgPSAyOworIC0+IDE2OCAgICBjI29uc3QgYzEgPSAzLAorICAgIDE2OSAgICAgICAgYzIg
PSAzOworICAgIDE3MCAgICAKKyA9PiAxNzEgICAgfHYxID0gdjIgPSB2MTsKKyAgICAxNzIgICAg
CisgICAgMTczICAgIHZhciB7eCwgeX0gPSBvYmo7CisgICAgMTc0ICAgIHZhciBbdywgel0gPSBh
cnI7CisKK0lOU0VSVElORyBBVDogMTcxOjEKK1BBVVNFUyBBVDogMTczOjAKKyAgICAxNjggICAg
Y29uc3QgYzEgPSAzLAorICAgIDE2OSAgICAgICAgYzIgPSAzOworICAgIDE3MCAgICAKKyAtPiAx
NzEgICAgdiMxID0gdjIgPSB2MTsKKyAgICAxNzIgICAgCisgPT4gMTczICAgIHx2YXIge3gsIHl9
ID0gb2JqOworICAgIDE3NCAgICB2YXIgW3csIHpdID0gYXJyOworICAgIDE3NSAgICAKKyAgICAx
NzYgICAgdmFyIG8xID0geworCitJTlNFUlRJTkcgQVQ6IDE3MzoxCitQQVVTRVMgQVQ6IDE3NDow
CisgICAgMTcwICAgIAorICAgIDE3MSAgICB2MSA9IHYyID0gdjE7CisgICAgMTcyICAgIAorIC0+
IDE3MyAgICB2I2FyIHt4LCB5fSA9IG9iajsKKyA9PiAxNzQgICAgfHZhciBbdywgel0gPSBhcnI7
CisgICAgMTc1ICAgIAorICAgIDE3NiAgICB2YXIgbzEgPSB7CisgICAgMTc3ICAgICAgICBwMTog
MSwKKworSU5TRVJUSU5HIEFUOiAxNzQ6MQorUEFVU0VTIEFUOiAxNzY6MAorICAgIDE3MSAgICB2
MSA9IHYyID0gdjE7CisgICAgMTcyICAgIAorICAgIDE3MyAgICB2YXIge3gsIHl9ID0gb2JqOwor
IC0+IDE3NCAgICB2I2FyIFt3LCB6XSA9IGFycjsKKyAgICAxNzUgICAgCisgPT4gMTc2ICAgIHx2
YXIgbzEgPSB7CisgICAgMTc3ICAgICAgICBwMTogMSwKKyAgICAxNzggICAgICAgIHAyOiBhKCks
CisgICAgMTc5ICAgICAgICBwMzogMSwKKworSU5TRVJUSU5HIEFUOiAxNzY6MQorUEFVU0VTIEFU
OiAxODQ6MAorICAgIDE3MyAgICB2YXIge3gsIHl9ID0gb2JqOworICAgIDE3NCAgICB2YXIgW3cs
IHpdID0gYXJyOworICAgIDE3NSAgICAKKyAtPiAxNzYgICAgdiNhciBvMSA9IHsKKyAgICAxNzcg
ICAgICAgIHAxOiAxLAorICAgIDE3OCAgICAgICAgcDI6IGEoKSwKKyAgICAxNzkgICAgICAgIHAz
OiAxLAorICAgIDE4MCAgICAgICAgWyJwNCJdOiAxLAorICAgIDE4MSAgICAgICAgW2IoKV06IDEs
CisgICAgMTgyICAgIH07CisgICAgMTgzICAgIAorID0+IDE4NCAgICB8dmFyIGExID0gWworICAg
IDE4NSAgICAgICAgMSwKKyAgICAxODYgICAgICAgIGEoKSwKKyAgICAxODcgICAgICAgIDEsCisK
K0lOU0VSVElORyBBVDogMTg0OjEKK1BBVVNFUyBBVDogMTkxOjAKKyAgICAxODEgICAgICAgIFti
KCldOiAxLAorICAgIDE4MiAgICB9OworICAgIDE4MyAgICAKKyAtPiAxODQgICAgdiNhciBhMSA9
IFsKKyAgICAxODUgICAgICAgIDEsCisgICAgMTg2ICAgICAgICBhKCksCisgICAgMTg3ICAgICAg
ICAxLAorICAgIDE4OCAgICAgICAgYigpLAorICAgIDE4OSAgICBdOworICAgIDE5MCAgICAKKyA9
PiAxOTEgICAgfHZhciBpMSA9IG5ldyBCYXNlOworICAgIDE5MiAgICB2YXIgaTIgPSBuZXcgQ2hp
bGQ7CisgICAgMTkzICAgIGkyLm5hbWU7CisgICAgMTk0ICAgIGkyLm5hbWUgPSAxOworCitJTlNF
UlRJTkcgQVQ6IDE5MToxCitQQVVTRVMgQVQ6IDE5MjowCisgICAgMTg4ICAgICAgICBiKCksCisg
ICAgMTg5ICAgIF07CisgICAgMTkwICAgIAorIC0+IDE5MSAgICB2I2FyIGkxID0gbmV3IEJhc2U7
CisgPT4gMTkyICAgIHx2YXIgaTIgPSBuZXcgQ2hpbGQ7CisgICAgMTkzICAgIGkyLm5hbWU7Cisg
ICAgMTk0ICAgIGkyLm5hbWUgPSAxOworICAgIDE5NSAgICBpMi5tZXRob2QoKTsKKworSU5TRVJU
SU5HIEFUOiAxOTI6MQorUEFVU0VTIEFUOiAxOTM6MAorICAgIDE4OSAgICBdOworICAgIDE5MCAg
ICAKKyAgICAxOTEgICAgdmFyIGkxID0gbmV3IEJhc2U7CisgLT4gMTkyICAgIHYjYXIgaTIgPSBu
ZXcgQ2hpbGQ7CisgPT4gMTkzICAgIHxpMi5uYW1lOworICAgIDE5NCAgICBpMi5uYW1lID0gMTsK
KyAgICAxOTUgICAgaTIubWV0aG9kKCk7CisgICAgMTk2ICAgIAorCitJTlNFUlRJTkcgQVQ6IDE5
MzoxCitQQVVTRVMgQVQ6IDE5NDowCisgICAgMTkwICAgIAorICAgIDE5MSAgICB2YXIgaTEgPSBu
ZXcgQmFzZTsKKyAgICAxOTIgICAgdmFyIGkyID0gbmV3IENoaWxkOworIC0+IDE5MyAgICBpIzIu
bmFtZTsKKyA9PiAxOTQgICAgfGkyLm5hbWUgPSAxOworICAgIDE5NSAgICBpMi5tZXRob2QoKTsK
KyAgICAxOTYgICAgCisgICAgMTk3ICAgIHZhciB0MSA9IGAkezF9ICR7eD0xfSAke2EoKX1gOwor
CitJTlNFUlRJTkcgQVQ6IDE5NDoxCitQQVVTRVMgQVQ6IDE5NTowCisgICAgMTkxICAgIHZhciBp
MSA9IG5ldyBCYXNlOworICAgIDE5MiAgICB2YXIgaTIgPSBuZXcgQ2hpbGQ7CisgICAgMTkzICAg
IGkyLm5hbWU7CisgLT4gMTk0ICAgIGkjMi5uYW1lID0gMTsKKyA9PiAxOTUgICAgfGkyLm1ldGhv
ZCgpOworICAgIDE5NiAgICAKKyAgICAxOTcgICAgdmFyIHQxID0gYCR7MX0gJHt4PTF9ICR7YSgp
fWA7CisgICAgMTk4ICAgIHZhciB0MiA9IGFgJHsxfSAke3g9MX0gJHthKCl9YDsKKworSU5TRVJU
SU5HIEFUOiAxOTU6MQorUEFVU0VTIEFUOiAxOTc6MAorICAgIDE5MiAgICB2YXIgaTIgPSBuZXcg
Q2hpbGQ7CisgICAgMTkzICAgIGkyLm5hbWU7CisgICAgMTk0ICAgIGkyLm5hbWUgPSAxOworIC0+
IDE5NSAgICBpIzIubWV0aG9kKCk7CisgICAgMTk2ICAgIAorID0+IDE5NyAgICB8dmFyIHQxID0g
YCR7MX0gJHt4PTF9ICR7YSgpfWA7CisgICAgMTk4ICAgIHZhciB0MiA9IGFgJHsxfSAke3g9MX0g
JHthKCl9YDsKKyAgICAxOTkgICAgCisgICAgMjAwICAgIGEoYSgpLCBiKCkpOworCitJTlNFUlRJ
TkcgQVQ6IDE5NzoxCitQQVVTRVMgQVQ6IDE5ODowCisgICAgMTk0ICAgIGkyLm5hbWUgPSAxOwor
ICAgIDE5NSAgICBpMi5tZXRob2QoKTsKKyAgICAxOTYgICAgCisgLT4gMTk3ICAgIHYjYXIgdDEg
PSBgJHsxfSAke3g9MX0gJHthKCl9YDsKKyA9PiAxOTggICAgfHZhciB0MiA9IGFgJHsxfSAke3g9
MX0gJHthKCl9YDsKKyAgICAxOTkgICAgCisgICAgMjAwICAgIGEoYSgpLCBiKCkpOworICAgIDIw
MSAgICAKKworSU5TRVJUSU5HIEFUOiAxOTg6MQorUEFVU0VTIEFUOiAyMDA6MAorICAgIDE5NSAg
ICBpMi5tZXRob2QoKTsKKyAgICAxOTYgICAgCisgICAgMTk3ICAgIHZhciB0MSA9IGAkezF9ICR7
eD0xfSAke2EoKX1gOworIC0+IDE5OCAgICB2I2FyIHQyID0gYWAkezF9ICR7eD0xfSAke2EoKX1g
OworICAgIDE5OSAgICAKKyA9PiAyMDAgICAgfGEoYSgpLCBiKCkpOworICAgIDIwMSAgICAKKyAg
ICAyMDIgICAgaWYgKG8xLnAxKQorICAgIDIwMyAgICAgICAgYSgpOworCitJTlNFUlRJTkcgQVQ6
IDIwMDoxCitQQVVTRVMgQVQ6IDIwMjo0CisgICAgMTk3ICAgIHZhciB0MSA9IGAkezF9ICR7eD0x
fSAke2EoKX1gOworICAgIDE5OCAgICB2YXIgdDIgPSBhYCR7MX0gJHt4PTF9ICR7YSgpfWA7Cisg
ICAgMTk5ICAgIAorIC0+IDIwMCAgICBhIyhhKCksIGIoKSk7CisgICAgMjAxICAgIAorID0+IDIw
MiAgICBpZiAofG8xLnAxKQorICAgIDIwMyAgICAgICAgYSgpOworICAgIDIwNCAgICAKKyAgICAy
MDUgICAgaWYgKG8xWyJwMSJdKQorCitJTlNFUlRJTkcgQVQ6IDIwMjo1CitQQVVTRVMgQVQ6IDIw
Mzo0CisgICAgMTk5ICAgIAorICAgIDIwMCAgICBhKGEoKSwgYigpKTsKKyAgICAyMDEgICAgCisg
LT4gMjAyICAgIGlmIChvIzEucDEpCisgPT4gMjAzICAgICAgICB8YSgpOworICAgIDIwNCAgICAK
KyAgICAyMDUgICAgaWYgKG8xWyJwMSJdKQorICAgIDIwNiAgICAgICAgYSgpOworCitJTlNFUlRJ
TkcgQVQ6IDIwMzo1CitQQVVTRVMgQVQ6IDIwNTo0CisgICAgMjAwICAgIGEoYSgpLCBiKCkpOwor
ICAgIDIwMSAgICAKKyAgICAyMDIgICAgaWYgKG8xLnAxKQorIC0+IDIwMyAgICAgICAgYSMoKTsK
KyAgICAyMDQgICAgCisgPT4gMjA1ICAgIGlmICh8bzFbInAxIl0pCisgICAgMjA2ICAgICAgICBh
KCk7CisgICAgMjA3ICAgIAorICAgIDIwOCAgICBpZiAoU3RyaW5nLnJhd2B0ZXN0YCkKKworSU5T
RVJUSU5HIEFUOiAyMDU6NQorUEFVU0VTIEFUOiAyMDY6NAorICAgIDIwMiAgICBpZiAobzEucDEp
CisgICAgMjAzICAgICAgICBhKCk7CisgICAgMjA0ICAgIAorIC0+IDIwNSAgICBpZiAobyMxWyJw
MSJdKQorID0+IDIwNiAgICAgICAgfGEoKTsKKyAgICAyMDcgICAgCisgICAgMjA4ICAgIGlmIChT
dHJpbmcucmF3YHRlc3RgKQorICAgIDIwOSAgICAgICAgYSgpOworCitJTlNFUlRJTkcgQVQ6IDIw
Njo1CitQQVVTRVMgQVQ6IDIwODo0CisgICAgMjAzICAgICAgICBhKCk7CisgICAgMjA0ICAgIAor
ICAgIDIwNSAgICBpZiAobzFbInAxIl0pCisgLT4gMjA2ICAgICAgICBhIygpOworICAgIDIwNyAg
ICAKKyA9PiAyMDggICAgaWYgKHxTdHJpbmcucmF3YHRlc3RgKQorICAgIDIwOSAgICAgICAgYSgp
OworICAgIDIxMCAgICAKKworSU5TRVJUSU5HIEFUOiAyMDg6NQorUEFVU0VTIEFUOiAyMDk6NAor
ICAgIDIwNSAgICBpZiAobzFbInAxIl0pCisgICAgMjA2ICAgICAgICBhKCk7CisgICAgMjA3ICAg
IAorIC0+IDIwOCAgICBpZiAoUyN0cmluZy5yYXdgdGVzdGApCisgPT4gMjA5ICAgICAgICB8YSgp
OworICAgIDIxMCAgICAKKworCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIucmVzb2x2
ZWRCcmVha3BvaW50LmR1bXBBbGxMb2NhdGlvbnMuRnVuY3Rpb25zCisKK0lOU0VSVElORyBBVDog
MDowCitQQVVTRVMgQVQ6IDA6MTkKKy09PiAgIDAgICAgI2Z1bmN0aW9uIGlubGluZSgpIHt8fQor
ICAgICAgMSAgICBmdW5jdGlvbiBuYW1lZCgpIHsKKyAgICAgIDIgICAgICAgIHZhciB4OworICAg
ICAgMyAgICB9CisKK0lOU0VSVElORyBBVDogMDoyMAorUEFVU0VTIEFUOiA0NDowCisgLT4gICAw
ICAgIGZ1bmN0aW9uIGlubGluZSgpIHt9IworICAgICAgMSAgICBmdW5jdGlvbiBuYW1lZCgpIHsK
KyAgICAgIDIgICAgICAgIHZhciB4OworICAgICAgMyAgICB9CisgICAgICA0ICAgIGZ1bmN0aW9u
IG91dGVyMSgpIHsKKyAgICAgIDUgICAgICAgIGZ1bmN0aW9uIGlubmVyKCkgeworICAgICAgNiAg
ICAgICAgICAgIHZhciB5OworICAgICAgNyAgICAgICAgfQorICAgICAgOCAgICB9CisgICAgICA5
ICAgIGZ1bmN0aW9uIG91dGVyMigpCisgICAgIDEwICAgIHsKKyAgICAgMTEgICAgICAgIGZ1bmN0
aW9uIGlubmVyKCkKKyAgICAgMTIgICAgICAgIHsKKyAgICAgMTMgICAgICAgICAgICB2YXIgeTsK
KyAgICAgMTQgICAgICAgIH0KKyAgICAgMTUgICAgfQorICAgICAxNiAgICBmdW5jdGlvbiBvdXRl
cjMoKSB7CisgICAgIDE3ICAgICAgICB2YXIgeDsKKyAgICAgMTggICAgICAgIGZ1bmN0aW9uIGlu
bmVyKCkgeyB2YXIgeTsgfQorICAgICAxOSAgICB9CisgICAgIDIwICAgIGZ1bmN0aW9uIG91dGVy
NCgpIHsKKyAgICAgMjEgICAgICAgIGZ1bmN0aW9uIGlubmVyKCkgeyB2YXIgeTsgfQorICAgICAy
MiAgICAgICAgdmFyIHg7CisgICAgIDIzICAgIH0KKyAgICAgMjQgICAgZnVuY3Rpb24gb3V0ZXI1
KCkgeworICAgICAyNSAgICAgICAgdmFyIHg7CisgICAgIDI2ICAgICAgICBmdW5jdGlvbiBpbm5l
cigpIHsgdmFyIHk7IH0KKyAgICAgMjcgICAgICAgIHZhciB4OworICAgICAyOCAgICB9CisgICAg
IDI5ICAgIGZ1bmN0aW9uIG91dGVyNigpIHsKKyAgICAgMzAgICAgICAgIGZ1bmN0aW9uIGlubmVy
MSgpIHsgdmFyIHk7IH0KKyAgICAgMzEgICAgICAgIHZhciB4OworICAgICAzMiAgICAgICAgZnVu
Y3Rpb24gaW5uZXIyKCkgeyB2YXIgejsgfQorICAgICAzMyAgICB9CisgICAgIDM0ICAgIGZ1bmN0
aW9uIG91dGVyNygpIHsKKyAgICAgMzUgICAgICAgIGZ1bmN0aW9uIGlubmVyMSgpIHsgdmFyIHk7
IH0KKyAgICAgMzYgICAgICAgIGZ1bmN0aW9uIGlubmVyMigpIHsgdmFyIHo7IH0KKyAgICAgMzcg
ICAgICAgIHZhciB4OworICAgICAzOCAgICB9CisgICAgIDM5ICAgIGZ1bmN0aW9uIG91dGVyNygp
IHsKKyAgICAgNDAgICAgICAgIGZ1bmN0aW9uIGlubmVyMSgpIHsgdmFyIHk7IH0KKyAgICAgNDEg
ICAgICAgIGZ1bmN0aW9uIGlubmVyMigpIHsgdmFyIHo7IH0KKyAgICAgNDIgICAgfQorICAgICA0
MyAgICAKKyA9PiAgNDQgICAgfChmdW5jdGlvbigpIHsKKyAgICAgNDUgICAgICAgIHZhciB4Owor
ICAgICA0NiAgICB9KSgpOworICAgICA0NyAgICAKKworSU5TRVJUSU5HIEFUOiAxOjAKK1BBVVNF
UyBBVDogMjo0CisgICAgICAwICAgIGZ1bmN0aW9uIGlubGluZSgpIHt9CisgLT4gICAxICAgICNm
dW5jdGlvbiBuYW1lZCgpIHsKKyA9PiAgIDIgICAgICAgIHx2YXIgeDsKKyAgICAgIDMgICAgfQor
ICAgICAgNCAgICBmdW5jdGlvbiBvdXRlcjEoKSB7CisgICAgICA1ICAgICAgICBmdW5jdGlvbiBp
bm5lcigpIHsKKworSU5TRVJUSU5HIEFUOiAyOjUKK1BBVVNFUyBBVDogMzowCisgICAgICAwICAg
IGZ1bmN0aW9uIGlubGluZSgpIHt9CisgICAgICAxICAgIGZ1bmN0aW9uIG5hbWVkKCkgeworIC0+
ICAgMiAgICAgICAgdiNhciB4OworID0+ICAgMyAgICB8fQorICAgICAgNCAgICBmdW5jdGlvbiBv
dXRlcjEoKSB7CisgICAgICA1ICAgICAgICBmdW5jdGlvbiBpbm5lcigpIHsKKyAgICAgIDYgICAg
ICAgICAgICB2YXIgeTsKKworSU5TRVJUSU5HIEFUOiA0OjAKK1BBVVNFUyBBVDogODowCisgICAg
ICAxICAgIGZ1bmN0aW9uIG5hbWVkKCkgeworICAgICAgMiAgICAgICAgdmFyIHg7CisgICAgICAz
ICAgIH0KKyAtPiAgIDQgICAgI2Z1bmN0aW9uIG91dGVyMSgpIHsKKyAgICAgIDUgICAgICAgIGZ1
bmN0aW9uIGlubmVyKCkgeworICAgICAgNiAgICAgICAgICAgIHZhciB5OworICAgICAgNyAgICAg
ICAgfQorID0+ICAgOCAgICB8fQorICAgICAgOSAgICBmdW5jdGlvbiBvdXRlcjIoKQorICAgICAx
MCAgICB7CisgICAgIDExICAgICAgICBmdW5jdGlvbiBpbm5lcigpCisKK0lOU0VSVElORyBBVDog
NDoxNQorUEFVU0VTIEFUOiA2OjgKKyAgICAgIDEgICAgZnVuY3Rpb24gbmFtZWQoKSB7CisgICAg
ICAyICAgICAgICB2YXIgeDsKKyAgICAgIDMgICAgfQorIC0+ICAgNCAgICBmdW5jdGlvbiBvdXRl
cjEjKCkgeworICAgICAgNSAgICAgICAgZnVuY3Rpb24gaW5uZXIoKSB7CisgPT4gICA2ICAgICAg
ICAgICAgfHZhciB5OworICAgICAgNyAgICAgICAgfQorICAgICAgOCAgICB9CisgICAgICA5ICAg
IGZ1bmN0aW9uIG91dGVyMigpCisKK0lOU0VSVElORyBBVDogNjo5CitQQVVTRVMgQVQ6IDc6NAor
ICAgICAgMyAgICB9CisgICAgICA0ICAgIGZ1bmN0aW9uIG91dGVyMSgpIHsKKyAgICAgIDUgICAg
ICAgIGZ1bmN0aW9uIGlubmVyKCkgeworIC0+ICAgNiAgICAgICAgICAgIHYjYXIgeTsKKyA9PiAg
IDcgICAgICAgIHx9CisgICAgICA4ICAgIH0KKyAgICAgIDkgICAgZnVuY3Rpb24gb3V0ZXIyKCkK
KyAgICAgMTAgICAgeworCitJTlNFUlRJTkcgQVQ6IDk6MAorUEFVU0VTIEFUOiAxNTowCisgICAg
ICA2ICAgICAgICAgICAgdmFyIHk7CisgICAgICA3ICAgICAgICB9CisgICAgICA4ICAgIH0KKyAt
PiAgIDkgICAgI2Z1bmN0aW9uIG91dGVyMigpCisgICAgIDEwICAgIHsKKyAgICAgMTEgICAgICAg
IGZ1bmN0aW9uIGlubmVyKCkKKyAgICAgMTIgICAgICAgIHsKKyAgICAgMTMgICAgICAgICAgICB2
YXIgeTsKKyAgICAgMTQgICAgICAgIH0KKyA9PiAgMTUgICAgfH0KKyAgICAgMTYgICAgZnVuY3Rp
b24gb3V0ZXIzKCkgeworICAgICAxNyAgICAgICAgdmFyIHg7CisgICAgIDE4ICAgICAgICBmdW5j
dGlvbiBpbm5lcigpIHsgdmFyIHk7IH0KKworSU5TRVJUSU5HIEFUOiA5OjE1CitQQVVTRVMgQVQ6
IDEzOjgKKyAgICAgIDYgICAgICAgICAgICB2YXIgeTsKKyAgICAgIDcgICAgICAgIH0KKyAgICAg
IDggICAgfQorIC0+ICAgOSAgICBmdW5jdGlvbiBvdXRlcjIjKCkKKyAgICAgMTAgICAgeworICAg
ICAxMSAgICAgICAgZnVuY3Rpb24gaW5uZXIoKQorICAgICAxMiAgICAgICAgeworID0+ICAxMyAg
ICAgICAgICAgIHx2YXIgeTsKKyAgICAgMTQgICAgICAgIH0KKyAgICAgMTUgICAgfQorICAgICAx
NiAgICBmdW5jdGlvbiBvdXRlcjMoKSB7CisKK0lOU0VSVElORyBBVDogMTM6OQorUEFVU0VTIEFU
OiAxNDo0CisgICAgIDEwICAgIHsKKyAgICAgMTEgICAgICAgIGZ1bmN0aW9uIGlubmVyKCkKKyAg
ICAgMTIgICAgICAgIHsKKyAtPiAgMTMgICAgICAgICAgICB2I2FyIHk7CisgPT4gIDE0ICAgICAg
ICB8fQorICAgICAxNSAgICB9CisgICAgIDE2ICAgIGZ1bmN0aW9uIG91dGVyMygpIHsKKyAgICAg
MTcgICAgICAgIHZhciB4OworCitJTlNFUlRJTkcgQVQ6IDE2OjAKK1BBVVNFUyBBVDogMTc6NAor
ICAgICAxMyAgICAgICAgICAgIHZhciB5OworICAgICAxNCAgICAgICAgfQorICAgICAxNSAgICB9
CisgLT4gIDE2ICAgICNmdW5jdGlvbiBvdXRlcjMoKSB7CisgPT4gIDE3ICAgICAgICB8dmFyIHg7
CisgICAgIDE4ICAgICAgICBmdW5jdGlvbiBpbm5lcigpIHsgdmFyIHk7IH0KKyAgICAgMTkgICAg
fQorICAgICAyMCAgICBmdW5jdGlvbiBvdXRlcjQoKSB7CisKK0lOU0VSVElORyBBVDogMTc6NQor
UEFVU0VTIEFUOiAxOTowCisgICAgIDE0ICAgICAgICB9CisgICAgIDE1ICAgIH0KKyAgICAgMTYg
ICAgZnVuY3Rpb24gb3V0ZXIzKCkgeworIC0+ICAxNyAgICAgICAgdiNhciB4OworICAgICAxOCAg
ICAgICAgZnVuY3Rpb24gaW5uZXIoKSB7IHZhciB5OyB9CisgPT4gIDE5ICAgIHx9CisgICAgIDIw
ICAgIGZ1bmN0aW9uIG91dGVyNCgpIHsKKyAgICAgMjEgICAgICAgIGZ1bmN0aW9uIGlubmVyKCkg
eyB2YXIgeTsgfQorICAgICAyMiAgICAgICAgdmFyIHg7CisKK0lOU0VSVElORyBBVDogMTg6MAor
UEFVU0VTIEFUOiAxODoyMworICAgICAxNSAgICB9CisgICAgIDE2ICAgIGZ1bmN0aW9uIG91dGVy
MygpIHsKKyAgICAgMTcgICAgICAgIHZhciB4OworLT0+ICAxOCAgICAjICAgIGZ1bmN0aW9uIGlu
bmVyKCkgeyB8dmFyIHk7IH0KKyAgICAgMTkgICAgfQorICAgICAyMCAgICBmdW5jdGlvbiBvdXRl
cjQoKSB7CisgICAgIDIxICAgICAgICBmdW5jdGlvbiBpbm5lcigpIHsgdmFyIHk7IH0KKworSU5T
RVJUSU5HIEFUOiAxODoyNAorUEFVU0VTIEFUOiAxODozMAorICAgICAxNSAgICB9CisgICAgIDE2
ICAgIGZ1bmN0aW9uIG91dGVyMygpIHsKKyAgICAgMTcgICAgICAgIHZhciB4OworLT0+ICAxOCAg
ICAgICAgZnVuY3Rpb24gaW5uZXIoKSB7IHYjYXIgeTsgfH0KKyAgICAgMTkgICAgfQorICAgICAy
MCAgICBmdW5jdGlvbiBvdXRlcjQoKSB7CisgICAgIDIxICAgICAgICBmdW5jdGlvbiBpbm5lcigp
IHsgdmFyIHk7IH0KKworSU5TRVJUSU5HIEFUOiAyMDowCitQQVVTRVMgQVQ6IDIyOjQKKyAgICAg
MTcgICAgICAgIHZhciB4OworICAgICAxOCAgICAgICAgZnVuY3Rpb24gaW5uZXIoKSB7IHZhciB5
OyB9CisgICAgIDE5ICAgIH0KKyAtPiAgMjAgICAgI2Z1bmN0aW9uIG91dGVyNCgpIHsKKyAgICAg
MjEgICAgICAgIGZ1bmN0aW9uIGlubmVyKCkgeyB2YXIgeTsgfQorID0+ICAyMiAgICAgICAgfHZh
ciB4OworICAgICAyMyAgICB9CisgICAgIDI0ICAgIGZ1bmN0aW9uIG91dGVyNSgpIHsKKyAgICAg
MjUgICAgICAgIHZhciB4OworCitJTlNFUlRJTkcgQVQ6IDIwOjE1CitQQVVTRVMgQVQ6IDIxOjIz
CisgICAgIDE3ICAgICAgICB2YXIgeDsKKyAgICAgMTggICAgICAgIGZ1bmN0aW9uIGlubmVyKCkg
eyB2YXIgeTsgfQorICAgICAxOSAgICB9CisgLT4gIDIwICAgIGZ1bmN0aW9uIG91dGVyNCMoKSB7
CisgPT4gIDIxICAgICAgICBmdW5jdGlvbiBpbm5lcigpIHsgfHZhciB5OyB9CisgICAgIDIyICAg
ICAgICB2YXIgeDsKKyAgICAgMjMgICAgfQorICAgICAyNCAgICBmdW5jdGlvbiBvdXRlcjUoKSB7
CisKK0lOU0VSVElORyBBVDogMjE6MjQKK1BBVVNFUyBBVDogMjE6MzAKKyAgICAgMTggICAgICAg
IGZ1bmN0aW9uIGlubmVyKCkgeyB2YXIgeTsgfQorICAgICAxOSAgICB9CisgICAgIDIwICAgIGZ1
bmN0aW9uIG91dGVyNCgpIHsKKy09PiAgMjEgICAgICAgIGZ1bmN0aW9uIGlubmVyKCkgeyB2I2Fy
IHk7IHx9CisgICAgIDIyICAgICAgICB2YXIgeDsKKyAgICAgMjMgICAgfQorICAgICAyNCAgICBm
dW5jdGlvbiBvdXRlcjUoKSB7CisKK0lOU0VSVElORyBBVDogMjI6NQorUEFVU0VTIEFUOiAyMzow
CisgICAgIDE5ICAgIH0KKyAgICAgMjAgICAgZnVuY3Rpb24gb3V0ZXI0KCkgeworICAgICAyMSAg
ICAgICAgZnVuY3Rpb24gaW5uZXIoKSB7IHZhciB5OyB9CisgLT4gIDIyICAgICAgICB2I2FyIHg7
CisgPT4gIDIzICAgIHx9CisgICAgIDI0ICAgIGZ1bmN0aW9uIG91dGVyNSgpIHsKKyAgICAgMjUg
ICAgICAgIHZhciB4OworICAgICAyNiAgICAgICAgZnVuY3Rpb24gaW5uZXIoKSB7IHZhciB5OyB9
CisKK0lOU0VSVElORyBBVDogMjQ6MAorUEFVU0VTIEFUOiAyNTo0CisgICAgIDIxICAgICAgICBm
dW5jdGlvbiBpbm5lcigpIHsgdmFyIHk7IH0KKyAgICAgMjIgICAgICAgIHZhciB4OworICAgICAy
MyAgICB9CisgLT4gIDI0ICAgICNmdW5jdGlvbiBvdXRlcjUoKSB7CisgPT4gIDI1ICAgICAgICB8
dmFyIHg7CisgICAgIDI2ICAgICAgICBmdW5jdGlvbiBpbm5lcigpIHsgdmFyIHk7IH0KKyAgICAg
MjcgICAgICAgIHZhciB4OworICAgICAyOCAgICB9CisKK0lOU0VSVElORyBBVDogMjU6NQorUEFV
U0VTIEFUOiAyNzo0CisgICAgIDIyICAgICAgICB2YXIgeDsKKyAgICAgMjMgICAgfQorICAgICAy
NCAgICBmdW5jdGlvbiBvdXRlcjUoKSB7CisgLT4gIDI1ICAgICAgICB2I2FyIHg7CisgICAgIDI2
ICAgICAgICBmdW5jdGlvbiBpbm5lcigpIHsgdmFyIHk7IH0KKyA9PiAgMjcgICAgICAgIHx2YXIg
eDsKKyAgICAgMjggICAgfQorICAgICAyOSAgICBmdW5jdGlvbiBvdXRlcjYoKSB7CisgICAgIDMw
ICAgICAgICBmdW5jdGlvbiBpbm5lcjEoKSB7IHZhciB5OyB9CisKK0lOU0VSVElORyBBVDogMjY6
MAorUEFVU0VTIEFUOiAyNjoyMworICAgICAyMyAgICB9CisgICAgIDI0ICAgIGZ1bmN0aW9uIG91
dGVyNSgpIHsKKyAgICAgMjUgICAgICAgIHZhciB4OworLT0+ICAyNiAgICAjICAgIGZ1bmN0aW9u
IGlubmVyKCkgeyB8dmFyIHk7IH0KKyAgICAgMjcgICAgICAgIHZhciB4OworICAgICAyOCAgICB9
CisgICAgIDI5ICAgIGZ1bmN0aW9uIG91dGVyNigpIHsKKworSU5TRVJUSU5HIEFUOiAyNjoyNAor
UEFVU0VTIEFUOiAyNjozMAorICAgICAyMyAgICB9CisgICAgIDI0ICAgIGZ1bmN0aW9uIG91dGVy
NSgpIHsKKyAgICAgMjUgICAgICAgIHZhciB4OworLT0+ICAyNiAgICAgICAgZnVuY3Rpb24gaW5u
ZXIoKSB7IHYjYXIgeTsgfH0KKyAgICAgMjcgICAgICAgIHZhciB4OworICAgICAyOCAgICB9Cisg
ICAgIDI5ICAgIGZ1bmN0aW9uIG91dGVyNigpIHsKKworSU5TRVJUSU5HIEFUOiAyNzo1CitQQVVT
RVMgQVQ6IDI4OjAKKyAgICAgMjQgICAgZnVuY3Rpb24gb3V0ZXI1KCkgeworICAgICAyNSAgICAg
ICAgdmFyIHg7CisgICAgIDI2ICAgICAgICBmdW5jdGlvbiBpbm5lcigpIHsgdmFyIHk7IH0KKyAt
PiAgMjcgICAgICAgIHYjYXIgeDsKKyA9PiAgMjggICAgfH0KKyAgICAgMjkgICAgZnVuY3Rpb24g
b3V0ZXI2KCkgeworICAgICAzMCAgICAgICAgZnVuY3Rpb24gaW5uZXIxKCkgeyB2YXIgeTsgfQor
ICAgICAzMSAgICAgICAgdmFyIHg7CisKK0lOU0VSVElORyBBVDogMjk6MAorUEFVU0VTIEFUOiAz
MTo0CisgICAgIDI2ICAgICAgICBmdW5jdGlvbiBpbm5lcigpIHsgdmFyIHk7IH0KKyAgICAgMjcg
ICAgICAgIHZhciB4OworICAgICAyOCAgICB9CisgLT4gIDI5ICAgICNmdW5jdGlvbiBvdXRlcjYo
KSB7CisgICAgIDMwICAgICAgICBmdW5jdGlvbiBpbm5lcjEoKSB7IHZhciB5OyB9CisgPT4gIDMx
ICAgICAgICB8dmFyIHg7CisgICAgIDMyICAgICAgICBmdW5jdGlvbiBpbm5lcjIoKSB7IHZhciB6
OyB9CisgICAgIDMzICAgIH0KKyAgICAgMzQgICAgZnVuY3Rpb24gb3V0ZXI3KCkgeworCitJTlNF
UlRJTkcgQVQ6IDI5OjE1CitQQVVTRVMgQVQ6IDMwOjI0CisgICAgIDI2ICAgICAgICBmdW5jdGlv
biBpbm5lcigpIHsgdmFyIHk7IH0KKyAgICAgMjcgICAgICAgIHZhciB4OworICAgICAyOCAgICB9
CisgLT4gIDI5ICAgIGZ1bmN0aW9uIG91dGVyNiMoKSB7CisgPT4gIDMwICAgICAgICBmdW5jdGlv
biBpbm5lcjEoKSB7IHx2YXIgeTsgfQorICAgICAzMSAgICAgICAgdmFyIHg7CisgICAgIDMyICAg
ICAgICBmdW5jdGlvbiBpbm5lcjIoKSB7IHZhciB6OyB9CisgICAgIDMzICAgIH0KKworSU5TRVJU
SU5HIEFUOiAzMDoyNQorUEFVU0VTIEFUOiAzMDozMQorICAgICAyNyAgICAgICAgdmFyIHg7Cisg
ICAgIDI4ICAgIH0KKyAgICAgMjkgICAgZnVuY3Rpb24gb3V0ZXI2KCkgeworLT0+ICAzMCAgICAg
ICAgZnVuY3Rpb24gaW5uZXIxKCkgeyB2I2FyIHk7IHx9CisgICAgIDMxICAgICAgICB2YXIgeDsK
KyAgICAgMzIgICAgICAgIGZ1bmN0aW9uIGlubmVyMigpIHsgdmFyIHo7IH0KKyAgICAgMzMgICAg
fQorCitJTlNFUlRJTkcgQVQ6IDMxOjUKK1BBVVNFUyBBVDogMzM6MAorICAgICAyOCAgICB9Cisg
ICAgIDI5ICAgIGZ1bmN0aW9uIG91dGVyNigpIHsKKyAgICAgMzAgICAgICAgIGZ1bmN0aW9uIGlu
bmVyMSgpIHsgdmFyIHk7IH0KKyAtPiAgMzEgICAgICAgIHYjYXIgeDsKKyAgICAgMzIgICAgICAg
IGZ1bmN0aW9uIGlubmVyMigpIHsgdmFyIHo7IH0KKyA9PiAgMzMgICAgfH0KKyAgICAgMzQgICAg
ZnVuY3Rpb24gb3V0ZXI3KCkgeworICAgICAzNSAgICAgICAgZnVuY3Rpb24gaW5uZXIxKCkgeyB2
YXIgeTsgfQorICAgICAzNiAgICAgICAgZnVuY3Rpb24gaW5uZXIyKCkgeyB2YXIgejsgfQorCitJ
TlNFUlRJTkcgQVQ6IDMyOjAKK1BBVVNFUyBBVDogMzI6MjQKKyAgICAgMjkgICAgZnVuY3Rpb24g
b3V0ZXI2KCkgeworICAgICAzMCAgICAgICAgZnVuY3Rpb24gaW5uZXIxKCkgeyB2YXIgeTsgfQor
ICAgICAzMSAgICAgICAgdmFyIHg7CistPT4gIDMyICAgICMgICAgZnVuY3Rpb24gaW5uZXIyKCkg
eyB8dmFyIHo7IH0KKyAgICAgMzMgICAgfQorICAgICAzNCAgICBmdW5jdGlvbiBvdXRlcjcoKSB7
CisgICAgIDM1ICAgICAgICBmdW5jdGlvbiBpbm5lcjEoKSB7IHZhciB5OyB9CisKK0lOU0VSVElO
RyBBVDogMzI6MjUKK1BBVVNFUyBBVDogMzI6MzEKKyAgICAgMjkgICAgZnVuY3Rpb24gb3V0ZXI2
KCkgeworICAgICAzMCAgICAgICAgZnVuY3Rpb24gaW5uZXIxKCkgeyB2YXIgeTsgfQorICAgICAz
MSAgICAgICAgdmFyIHg7CistPT4gIDMyICAgICAgICBmdW5jdGlvbiBpbm5lcjIoKSB7IHYjYXIg
ejsgfH0KKyAgICAgMzMgICAgfQorICAgICAzNCAgICBmdW5jdGlvbiBvdXRlcjcoKSB7CisgICAg
IDM1ICAgICAgICBmdW5jdGlvbiBpbm5lcjEoKSB7IHZhciB5OyB9CisKK0lOU0VSVElORyBBVDog
MzQ6MAorUEFVU0VTIEFUOiAzNzo0CisgICAgIDMxICAgICAgICB2YXIgeDsKKyAgICAgMzIgICAg
ICAgIGZ1bmN0aW9uIGlubmVyMigpIHsgdmFyIHo7IH0KKyAgICAgMzMgICAgfQorIC0+ICAzNCAg
ICAjZnVuY3Rpb24gb3V0ZXI3KCkgeworICAgICAzNSAgICAgICAgZnVuY3Rpb24gaW5uZXIxKCkg
eyB2YXIgeTsgfQorICAgICAzNiAgICAgICAgZnVuY3Rpb24gaW5uZXIyKCkgeyB2YXIgejsgfQor
ID0+ICAzNyAgICAgICAgfHZhciB4OworICAgICAzOCAgICB9CisgICAgIDM5ICAgIGZ1bmN0aW9u
IG91dGVyNygpIHsKKyAgICAgNDAgICAgICAgIGZ1bmN0aW9uIGlubmVyMSgpIHsgdmFyIHk7IH0K
KworSU5TRVJUSU5HIEFUOiAzNDoxNQorUEFVU0VTIEFUOiAzNToyNAorICAgICAzMSAgICAgICAg
dmFyIHg7CisgICAgIDMyICAgICAgICBmdW5jdGlvbiBpbm5lcjIoKSB7IHZhciB6OyB9CisgICAg
IDMzICAgIH0KKyAtPiAgMzQgICAgZnVuY3Rpb24gb3V0ZXI3IygpIHsKKyA9PiAgMzUgICAgICAg
IGZ1bmN0aW9uIGlubmVyMSgpIHsgfHZhciB5OyB9CisgICAgIDM2ICAgICAgICBmdW5jdGlvbiBp
bm5lcjIoKSB7IHZhciB6OyB9CisgICAgIDM3ICAgICAgICB2YXIgeDsKKyAgICAgMzggICAgfQor
CitJTlNFUlRJTkcgQVQ6IDM1OjI1CitQQVVTRVMgQVQ6IDM1OjMxCisgICAgIDMyICAgICAgICBm
dW5jdGlvbiBpbm5lcjIoKSB7IHZhciB6OyB9CisgICAgIDMzICAgIH0KKyAgICAgMzQgICAgZnVu
Y3Rpb24gb3V0ZXI3KCkgeworLT0+ICAzNSAgICAgICAgZnVuY3Rpb24gaW5uZXIxKCkgeyB2I2Fy
IHk7IHx9CisgICAgIDM2ICAgICAgICBmdW5jdGlvbiBpbm5lcjIoKSB7IHZhciB6OyB9CisgICAg
IDM3ICAgICAgICB2YXIgeDsKKyAgICAgMzggICAgfQorCitJTlNFUlRJTkcgQVQ6IDM2OjAKK1BB
VVNFUyBBVDogMzY6MjQKKyAgICAgMzMgICAgfQorICAgICAzNCAgICBmdW5jdGlvbiBvdXRlcjco
KSB7CisgICAgIDM1ICAgICAgICBmdW5jdGlvbiBpbm5lcjEoKSB7IHZhciB5OyB9CistPT4gIDM2
ICAgICMgICAgZnVuY3Rpb24gaW5uZXIyKCkgeyB8dmFyIHo7IH0KKyAgICAgMzcgICAgICAgIHZh
ciB4OworICAgICAzOCAgICB9CisgICAgIDM5ICAgIGZ1bmN0aW9uIG91dGVyNygpIHsKKworSU5T
RVJUSU5HIEFUOiAzNjoyNQorUEFVU0VTIEFUOiAzNjozMQorICAgICAzMyAgICB9CisgICAgIDM0
ICAgIGZ1bmN0aW9uIG91dGVyNygpIHsKKyAgICAgMzUgICAgICAgIGZ1bmN0aW9uIGlubmVyMSgp
IHsgdmFyIHk7IH0KKy09PiAgMzYgICAgICAgIGZ1bmN0aW9uIGlubmVyMigpIHsgdiNhciB6OyB8
fQorICAgICAzNyAgICAgICAgdmFyIHg7CisgICAgIDM4ICAgIH0KKyAgICAgMzkgICAgZnVuY3Rp
b24gb3V0ZXI3KCkgeworCitJTlNFUlRJTkcgQVQ6IDM3OjUKK1BBVVNFUyBBVDogMzg6MAorICAg
ICAzNCAgICBmdW5jdGlvbiBvdXRlcjcoKSB7CisgICAgIDM1ICAgICAgICBmdW5jdGlvbiBpbm5l
cjEoKSB7IHZhciB5OyB9CisgICAgIDM2ICAgICAgICBmdW5jdGlvbiBpbm5lcjIoKSB7IHZhciB6
OyB9CisgLT4gIDM3ICAgICAgICB2I2FyIHg7CisgPT4gIDM4ICAgIHx9CisgICAgIDM5ICAgIGZ1
bmN0aW9uIG91dGVyNygpIHsKKyAgICAgNDAgICAgICAgIGZ1bmN0aW9uIGlubmVyMSgpIHsgdmFy
IHk7IH0KKyAgICAgNDEgICAgICAgIGZ1bmN0aW9uIGlubmVyMigpIHsgdmFyIHo7IH0KKworSU5T
RVJUSU5HIEFUOiAzOTowCitQQVVTRVMgQVQ6IDQyOjAKKyAgICAgMzYgICAgICAgIGZ1bmN0aW9u
IGlubmVyMigpIHsgdmFyIHo7IH0KKyAgICAgMzcgICAgICAgIHZhciB4OworICAgICAzOCAgICB9
CisgLT4gIDM5ICAgICNmdW5jdGlvbiBvdXRlcjcoKSB7CisgICAgIDQwICAgICAgICBmdW5jdGlv
biBpbm5lcjEoKSB7IHZhciB5OyB9CisgICAgIDQxICAgICAgICBmdW5jdGlvbiBpbm5lcjIoKSB7
IHZhciB6OyB9CisgPT4gIDQyICAgIHx9CisgICAgIDQzICAgIAorICAgICA0NCAgICAoZnVuY3Rp
b24oKSB7CisgICAgIDQ1ICAgICAgICB2YXIgeDsKKworSU5TRVJUSU5HIEFUOiAzOToxNQorUEFV
U0VTIEFUOiA0MDoyNAorICAgICAzNiAgICAgICAgZnVuY3Rpb24gaW5uZXIyKCkgeyB2YXIgejsg
fQorICAgICAzNyAgICAgICAgdmFyIHg7CisgICAgIDM4ICAgIH0KKyAtPiAgMzkgICAgZnVuY3Rp
b24gb3V0ZXI3IygpIHsKKyA9PiAgNDAgICAgICAgIGZ1bmN0aW9uIGlubmVyMSgpIHsgfHZhciB5
OyB9CisgICAgIDQxICAgICAgICBmdW5jdGlvbiBpbm5lcjIoKSB7IHZhciB6OyB9CisgICAgIDQy
ICAgIH0KKyAgICAgNDMgICAgCisKK0lOU0VSVElORyBBVDogNDA6MjUKK1BBVVNFUyBBVDogNDA6
MzEKKyAgICAgMzcgICAgICAgIHZhciB4OworICAgICAzOCAgICB9CisgICAgIDM5ICAgIGZ1bmN0
aW9uIG91dGVyNygpIHsKKy09PiAgNDAgICAgICAgIGZ1bmN0aW9uIGlubmVyMSgpIHsgdiNhciB5
OyB8fQorICAgICA0MSAgICAgICAgZnVuY3Rpb24gaW5uZXIyKCkgeyB2YXIgejsgfQorICAgICA0
MiAgICB9CisgICAgIDQzICAgIAorCitJTlNFUlRJTkcgQVQ6IDQxOjAKK1BBVVNFUyBBVDogNDE6
MjQKKyAgICAgMzggICAgfQorICAgICAzOSAgICBmdW5jdGlvbiBvdXRlcjcoKSB7CisgICAgIDQw
ICAgICAgICBmdW5jdGlvbiBpbm5lcjEoKSB7IHZhciB5OyB9CistPT4gIDQxICAgICMgICAgZnVu
Y3Rpb24gaW5uZXIyKCkgeyB8dmFyIHo7IH0KKyAgICAgNDIgICAgfQorICAgICA0MyAgICAKKyAg
ICAgNDQgICAgKGZ1bmN0aW9uKCkgeworCitJTlNFUlRJTkcgQVQ6IDQxOjI1CitQQVVTRVMgQVQ6
IDQxOjMxCisgICAgIDM4ICAgIH0KKyAgICAgMzkgICAgZnVuY3Rpb24gb3V0ZXI3KCkgeworICAg
ICA0MCAgICAgICAgZnVuY3Rpb24gaW5uZXIxKCkgeyB2YXIgeTsgfQorLT0+ICA0MSAgICAgICAg
ZnVuY3Rpb24gaW5uZXIyKCkgeyB2I2FyIHo7IHx9CisgICAgIDQyICAgIH0KKyAgICAgNDMgICAg
CisgICAgIDQ0ICAgIChmdW5jdGlvbigpIHsKKworSU5TRVJUSU5HIEFUOiA0NDoxCitQQVVTRVMg
QVQ6IDQ1OjQKKyAgICAgNDEgICAgICAgIGZ1bmN0aW9uIGlubmVyMigpIHsgdmFyIHo7IH0KKyAg
ICAgNDIgICAgfQorICAgICA0MyAgICAKKyAtPiAgNDQgICAgKCNmdW5jdGlvbigpIHsKKyA9PiAg
NDUgICAgICAgIHx2YXIgeDsKKyAgICAgNDYgICAgfSkoKTsKKyAgICAgNDcgICAgCisgICAgIDQ4
ICAgICgoKSA9PiB7CisKK0lOU0VSVElORyBBVDogNDU6NQorUEFVU0VTIEFUOiA0NjowCisgICAg
IDQyICAgIH0KKyAgICAgNDMgICAgCisgICAgIDQ0ICAgIChmdW5jdGlvbigpIHsKKyAtPiAgNDUg
ICAgICAgIHYjYXIgeDsKKyA9PiAgNDYgICAgfH0pKCk7CisgICAgIDQ3ICAgIAorICAgICA0OCAg
ICAoKCkgPT4geworICAgICA0OSAgICAgICAgdmFyIHg7CisKK0lOU0VSVElORyBBVDogNDY6MQor
UEFVU0VTIEFUOiA0ODowCisgICAgIDQzICAgIAorICAgICA0NCAgICAoZnVuY3Rpb24oKSB7Cisg
ICAgIDQ1ICAgICAgICB2YXIgeDsKKyAtPiAgNDYgICAgfSMpKCk7CisgICAgIDQ3ICAgIAorID0+
ICA0OCAgICB8KCgpID0+IHsKKyAgICAgNDkgICAgICAgIHZhciB4OworICAgICA1MCAgICB9KTsK
KyAgICAgNTEgICAgCisKK0lOU0VSVElORyBBVDogNDg6MQorUEFVU0VTIEFUOiA0OTo0CisgICAg
IDQ1ICAgICAgICB2YXIgeDsKKyAgICAgNDYgICAgfSkoKTsKKyAgICAgNDcgICAgCisgLT4gIDQ4
ICAgICgjKCkgPT4geworID0+ICA0OSAgICAgICAgfHZhciB4OworICAgICA1MCAgICB9KTsKKyAg
ICAgNTEgICAgCisgICAgIDUyICAgIGZ1bmN0aW9uKiBnZW5lcmF0b3IoKSB7CisKK0lOU0VSVElO
RyBBVDogNDk6NQorUEFVU0VTIEFUOiA1MDowCisgICAgIDQ2ICAgIH0pKCk7CisgICAgIDQ3ICAg
IAorICAgICA0OCAgICAoKCkgPT4geworIC0+ICA0OSAgICAgICAgdiNhciB4OworID0+ICA1MCAg
ICB8fSk7CisgICAgIDUxICAgIAorICAgICA1MiAgICBmdW5jdGlvbiogZ2VuZXJhdG9yKCkgewor
ICAgICA1MyAgICAgICAgdmFyIHg7CisKK0lOU0VSVElORyBBVDogNTA6MQorUEFVU0VTIEFUOiA4
NzowCisgICAgIDQ3ICAgIAorICAgICA0OCAgICAoKCkgPT4geworICAgICA0OSAgICAgICAgdmFy
IHg7CisgLT4gIDUwICAgIH0jKTsKKyAgICAgNTEgICAgCisgICAgIDUyICAgIGZ1bmN0aW9uKiBn
ZW5lcmF0b3IoKSB7CisgICAgIDUzICAgICAgICB2YXIgeDsKKyAgICAgNTQgICAgfQorICAgICA1
NSAgICAKKyAgICAgNTYgICAgY2xhc3MgQ2xhc3MgeworICAgICA1NyAgICAgICAgc3RhdGljIHN0
YXRpY01ldGhvZDEoKSB7CisgICAgIDU4ICAgICAgICAgICAgdmFyIHg7CisgICAgIDU5ICAgICAg
ICB9CisgICAgIDYwICAgICAgICBzdGF0aWMgc3RhdGljTWV0aG9kMigpCisgICAgIDYxICAgICAg
ICB7CisgICAgIDYyICAgICAgICAgICAgdmFyIHg7CisgICAgIDYzICAgICAgICB9CisgICAgIDY0
ICAgICAgICBtZXRob2QxKCkgeworICAgICA2NSAgICAgICAgICAgIHZhciB4OworICAgICA2NiAg
ICAgICAgfQorICAgICA2NyAgICAgICAgbWV0aG9kMigpCisgICAgIDY4ICAgICAgICB7CisgICAg
IDY5ICAgICAgICAgICAgdmFyIHg7CisgICAgIDcwICAgICAgICB9CisgICAgIDcxICAgICAgICBn
ZXQgZ2V0dGVyMSgpIHsKKyAgICAgNzIgICAgICAgICAgICB2YXIgeDsKKyAgICAgNzMgICAgICAg
IH0KKyAgICAgNzQgICAgICAgIGdldCBnZXR0ZXIyKCkKKyAgICAgNzUgICAgICAgIHsKKyAgICAg
NzYgICAgICAgICAgICB2YXIgeDsKKyAgICAgNzcgICAgICAgIH0KKyAgICAgNzggICAgICAgIHNl
dCBzZXR0ZXIxKHgpIHsKKyAgICAgNzkgICAgICAgICAgICB2YXIgczsKKyAgICAgODAgICAgICAg
IH0KKyAgICAgODEgICAgICAgIHNldCBzZXR0ZXIyKHgpCisgICAgIDgyICAgICAgICB7CisgICAg
IDgzICAgICAgICAgICAgdmFyIHM7CisgICAgIDg0ICAgICAgICB9CisgICAgIDg1ICAgIH0KKyAg
ICAgODYgICAgCisgPT4gIDg3ICAgIHx4ID0+IHg7CisgICAgIDg4ICAgICgpID0+IDE7CisgICAg
IDg5ICAgICh4KSA9PiB4OworICAgICA5MCAgICAoeCkgPT4geyB4IH07CisKK0lOU0VSVElORyBB
VDogNTI6MAorUEFVU0VTIEFUOiA1Mzo0CisgICAgIDQ5ICAgICAgICB2YXIgeDsKKyAgICAgNTAg
ICAgfSk7CisgICAgIDUxICAgIAorIC0+ICA1MiAgICAjZnVuY3Rpb24qIGdlbmVyYXRvcigpIHsK
KyA9PiAgNTMgICAgICAgIHx2YXIgeDsKKyAgICAgNTQgICAgfQorICAgICA1NSAgICAKKyAgICAg
NTYgICAgY2xhc3MgQ2xhc3MgeworCitJTlNFUlRJTkcgQVQ6IDUzOjUKK1BBVVNFUyBBVDogNTQ6
MAorICAgICA1MCAgICB9KTsKKyAgICAgNTEgICAgCisgICAgIDUyICAgIGZ1bmN0aW9uKiBnZW5l
cmF0b3IoKSB7CisgLT4gIDUzICAgICAgICB2I2FyIHg7CisgPT4gIDU0ICAgIHx9CisgICAgIDU1
ICAgIAorICAgICA1NiAgICBjbGFzcyBDbGFzcyB7CisgICAgIDU3ICAgICAgICBzdGF0aWMgc3Rh
dGljTWV0aG9kMSgpIHsKKworSU5TRVJUSU5HIEFUOiA1NzowCitQQVVTRVMgQVQ6IDU4OjgKKyAg
ICAgNTQgICAgfQorICAgICA1NSAgICAKKyAgICAgNTYgICAgY2xhc3MgQ2xhc3MgeworIC0+ICA1
NyAgICAjICAgIHN0YXRpYyBzdGF0aWNNZXRob2QxKCkgeworID0+ICA1OCAgICAgICAgICAgIHx2
YXIgeDsKKyAgICAgNTkgICAgICAgIH0KKyAgICAgNjAgICAgICAgIHN0YXRpYyBzdGF0aWNNZXRo
b2QyKCkKKyAgICAgNjEgICAgICAgIHsKKworSU5TRVJUSU5HIEFUOiA1ODo5CitQQVVTRVMgQVQ6
IDU5OjQKKyAgICAgNTUgICAgCisgICAgIDU2ICAgIGNsYXNzIENsYXNzIHsKKyAgICAgNTcgICAg
ICAgIHN0YXRpYyBzdGF0aWNNZXRob2QxKCkgeworIC0+ICA1OCAgICAgICAgICAgIHYjYXIgeDsK
KyA9PiAgNTkgICAgICAgIHx9CisgICAgIDYwICAgICAgICBzdGF0aWMgc3RhdGljTWV0aG9kMigp
CisgICAgIDYxICAgICAgICB7CisgICAgIDYyICAgICAgICAgICAgdmFyIHg7CisKK0lOU0VSVElO
RyBBVDogNjA6MAorUEFVU0VTIEFUOiA2Mjo4CisgICAgIDU3ICAgICAgICBzdGF0aWMgc3RhdGlj
TWV0aG9kMSgpIHsKKyAgICAgNTggICAgICAgICAgICB2YXIgeDsKKyAgICAgNTkgICAgICAgIH0K
KyAtPiAgNjAgICAgIyAgICBzdGF0aWMgc3RhdGljTWV0aG9kMigpCisgICAgIDYxICAgICAgICB7
CisgPT4gIDYyICAgICAgICAgICAgfHZhciB4OworICAgICA2MyAgICAgICAgfQorICAgICA2NCAg
ICAgICAgbWV0aG9kMSgpIHsKKyAgICAgNjUgICAgICAgICAgICB2YXIgeDsKKworSU5TRVJUSU5H
IEFUOiA2Mjo5CitQQVVTRVMgQVQ6IDYzOjQKKyAgICAgNTkgICAgICAgIH0KKyAgICAgNjAgICAg
ICAgIHN0YXRpYyBzdGF0aWNNZXRob2QyKCkKKyAgICAgNjEgICAgICAgIHsKKyAtPiAgNjIgICAg
ICAgICAgICB2I2FyIHg7CisgPT4gIDYzICAgICAgICB8fQorICAgICA2NCAgICAgICAgbWV0aG9k
MSgpIHsKKyAgICAgNjUgICAgICAgICAgICB2YXIgeDsKKyAgICAgNjYgICAgICAgIH0KKworSU5T
RVJUSU5HIEFUOiA2NDowCitQQVVTRVMgQVQ6IDY1OjgKKyAgICAgNjEgICAgICAgIHsKKyAgICAg
NjIgICAgICAgICAgICB2YXIgeDsKKyAgICAgNjMgICAgICAgIH0KKyAtPiAgNjQgICAgIyAgICBt
ZXRob2QxKCkgeworID0+ICA2NSAgICAgICAgICAgIHx2YXIgeDsKKyAgICAgNjYgICAgICAgIH0K
KyAgICAgNjcgICAgICAgIG1ldGhvZDIoKQorICAgICA2OCAgICAgICAgeworCitJTlNFUlRJTkcg
QVQ6IDY1OjkKK1BBVVNFUyBBVDogNjY6NAorICAgICA2MiAgICAgICAgICAgIHZhciB4OworICAg
ICA2MyAgICAgICAgfQorICAgICA2NCAgICAgICAgbWV0aG9kMSgpIHsKKyAtPiAgNjUgICAgICAg
ICAgICB2I2FyIHg7CisgPT4gIDY2ICAgICAgICB8fQorICAgICA2NyAgICAgICAgbWV0aG9kMigp
CisgICAgIDY4ICAgICAgICB7CisgICAgIDY5ICAgICAgICAgICAgdmFyIHg7CisKK0lOU0VSVElO
RyBBVDogNjc6MAorUEFVU0VTIEFUOiA2OTo4CisgICAgIDY0ICAgICAgICBtZXRob2QxKCkgewor
ICAgICA2NSAgICAgICAgICAgIHZhciB4OworICAgICA2NiAgICAgICAgfQorIC0+ICA2NyAgICAj
ICAgIG1ldGhvZDIoKQorICAgICA2OCAgICAgICAgeworID0+ICA2OSAgICAgICAgICAgIHx2YXIg
eDsKKyAgICAgNzAgICAgICAgIH0KKyAgICAgNzEgICAgICAgIGdldCBnZXR0ZXIxKCkgeworICAg
ICA3MiAgICAgICAgICAgIHZhciB4OworCitJTlNFUlRJTkcgQVQ6IDY5OjkKK1BBVVNFUyBBVDog
NzA6NAorICAgICA2NiAgICAgICAgfQorICAgICA2NyAgICAgICAgbWV0aG9kMigpCisgICAgIDY4
ICAgICAgICB7CisgLT4gIDY5ICAgICAgICAgICAgdiNhciB4OworID0+ICA3MCAgICAgICAgfH0K
KyAgICAgNzEgICAgICAgIGdldCBnZXR0ZXIxKCkgeworICAgICA3MiAgICAgICAgICAgIHZhciB4
OworICAgICA3MyAgICAgICAgfQorCitJTlNFUlRJTkcgQVQ6IDcxOjAKK1BBVVNFUyBBVDogNzI6
OAorICAgICA2OCAgICAgICAgeworICAgICA2OSAgICAgICAgICAgIHZhciB4OworICAgICA3MCAg
ICAgICAgfQorIC0+ICA3MSAgICAjICAgIGdldCBnZXR0ZXIxKCkgeworID0+ICA3MiAgICAgICAg
ICAgIHx2YXIgeDsKKyAgICAgNzMgICAgICAgIH0KKyAgICAgNzQgICAgICAgIGdldCBnZXR0ZXIy
KCkKKyAgICAgNzUgICAgICAgIHsKKworSU5TRVJUSU5HIEFUOiA3Mjo5CitQQVVTRVMgQVQ6IDcz
OjQKKyAgICAgNjkgICAgICAgICAgICB2YXIgeDsKKyAgICAgNzAgICAgICAgIH0KKyAgICAgNzEg
ICAgICAgIGdldCBnZXR0ZXIxKCkgeworIC0+ICA3MiAgICAgICAgICAgIHYjYXIgeDsKKyA9PiAg
NzMgICAgICAgIHx9CisgICAgIDc0ICAgICAgICBnZXQgZ2V0dGVyMigpCisgICAgIDc1ICAgICAg
ICB7CisgICAgIDc2ICAgICAgICAgICAgdmFyIHg7CisKK0lOU0VSVElORyBBVDogNzQ6MAorUEFV
U0VTIEFUOiA3Njo4CisgICAgIDcxICAgICAgICBnZXQgZ2V0dGVyMSgpIHsKKyAgICAgNzIgICAg
ICAgICAgICB2YXIgeDsKKyAgICAgNzMgICAgICAgIH0KKyAtPiAgNzQgICAgIyAgICBnZXQgZ2V0
dGVyMigpCisgICAgIDc1ICAgICAgICB7CisgPT4gIDc2ICAgICAgICAgICAgfHZhciB4OworICAg
ICA3NyAgICAgICAgfQorICAgICA3OCAgICAgICAgc2V0IHNldHRlcjEoeCkgeworICAgICA3OSAg
ICAgICAgICAgIHZhciBzOworCitJTlNFUlRJTkcgQVQ6IDc2OjkKK1BBVVNFUyBBVDogNzc6NAor
ICAgICA3MyAgICAgICAgfQorICAgICA3NCAgICAgICAgZ2V0IGdldHRlcjIoKQorICAgICA3NSAg
ICAgICAgeworIC0+ICA3NiAgICAgICAgICAgIHYjYXIgeDsKKyA9PiAgNzcgICAgICAgIHx9Cisg
ICAgIDc4ICAgICAgICBzZXQgc2V0dGVyMSh4KSB7CisgICAgIDc5ICAgICAgICAgICAgdmFyIHM7
CisgICAgIDgwICAgICAgICB9CisKK0lOU0VSVElORyBBVDogNzg6MAorUEFVU0VTIEFUOiA3OTo4
CisgICAgIDc1ICAgICAgICB7CisgICAgIDc2ICAgICAgICAgICAgdmFyIHg7CisgICAgIDc3ICAg
ICAgICB9CisgLT4gIDc4ICAgICMgICAgc2V0IHNldHRlcjEoeCkgeworID0+ICA3OSAgICAgICAg
ICAgIHx2YXIgczsKKyAgICAgODAgICAgICAgIH0KKyAgICAgODEgICAgICAgIHNldCBzZXR0ZXIy
KHgpCisgICAgIDgyICAgICAgICB7CisKK0lOU0VSVElORyBBVDogNzk6OQorUEFVU0VTIEFUOiA4
MDo0CisgICAgIDc2ICAgICAgICAgICAgdmFyIHg7CisgICAgIDc3ICAgICAgICB9CisgICAgIDc4
ICAgICAgICBzZXQgc2V0dGVyMSh4KSB7CisgLT4gIDc5ICAgICAgICAgICAgdiNhciBzOworID0+
ICA4MCAgICAgICAgfH0KKyAgICAgODEgICAgICAgIHNldCBzZXR0ZXIyKHgpCisgICAgIDgyICAg
ICAgICB7CisgICAgIDgzICAgICAgICAgICAgdmFyIHM7CisKK0lOU0VSVElORyBBVDogODE6MAor
UEFVU0VTIEFUOiA4Mzo4CisgICAgIDc4ICAgICAgICBzZXQgc2V0dGVyMSh4KSB7CisgICAgIDc5
ICAgICAgICAgICAgdmFyIHM7CisgICAgIDgwICAgICAgICB9CisgLT4gIDgxICAgICMgICAgc2V0
IHNldHRlcjIoeCkKKyAgICAgODIgICAgICAgIHsKKyA9PiAgODMgICAgICAgICAgICB8dmFyIHM7
CisgICAgIDg0ICAgICAgICB9CisgICAgIDg1ICAgIH0KKyAgICAgODYgICAgCisKK0lOU0VSVElO
RyBBVDogODM6OQorUEFVU0VTIEFUOiA4NDo0CisgICAgIDgwICAgICAgICB9CisgICAgIDgxICAg
ICAgICBzZXQgc2V0dGVyMih4KQorICAgICA4MiAgICAgICAgeworIC0+ICA4MyAgICAgICAgICAg
IHYjYXIgczsKKyA9PiAgODQgICAgICAgIHx9CisgICAgIDg1ICAgIH0KKyAgICAgODYgICAgCisg
ICAgIDg3ICAgIHggPT4geDsKKworSU5TRVJUSU5HIEFUOiA4NzoxCitQQVVTRVMgQVQ6IDg3OjUK
KyAgICAgODQgICAgICAgIH0KKyAgICAgODUgICAgfQorICAgICA4NiAgICAKKy09PiAgODcgICAg
eCMgPT4gfHg7CisgICAgIDg4ICAgICgpID0+IDE7CisgICAgIDg5ICAgICh4KSA9PiB4OworICAg
ICA5MCAgICAoeCkgPT4geyB4IH07CisKK0lOU0VSVElORyBBVDogODc6NgorUEFVU0VTIEFUOiA4
ODowCisgICAgIDg0ICAgICAgICB9CisgICAgIDg1ICAgIH0KKyAgICAgODYgICAgCisgLT4gIDg3
ICAgIHggPT4geCM7CisgPT4gIDg4ICAgIHwoKSA9PiAxOworICAgICA4OSAgICAoeCkgPT4geDsK
KyAgICAgOTAgICAgKHgpID0+IHsgeCB9OworICAgICA5MSAgICAoeCkgPT4geworCitJTlNFUlRJ
TkcgQVQ6IDg4OjEKK1BBVVNFUyBBVDogODg6NgorICAgICA4NSAgICB9CisgICAgIDg2ICAgIAor
ICAgICA4NyAgICB4ID0+IHg7CistPT4gIDg4ICAgICgjKSA9PiB8MTsKKyAgICAgODkgICAgKHgp
ID0+IHg7CisgICAgIDkwICAgICh4KSA9PiB7IHggfTsKKyAgICAgOTEgICAgKHgpID0+IHsKKwor
SU5TRVJUSU5HIEFUOiA4ODo3CitQQVVTRVMgQVQ6IDg5OjAKKyAgICAgODUgICAgfQorICAgICA4
NiAgICAKKyAgICAgODcgICAgeCA9PiB4OworIC0+ICA4OCAgICAoKSA9PiAxIzsKKyA9PiAgODkg
ICAgfCh4KSA9PiB4OworICAgICA5MCAgICAoeCkgPT4geyB4IH07CisgICAgIDkxICAgICh4KSA9
PiB7CisgICAgIDkyICAgICAgICB4CisKK0lOU0VSVElORyBBVDogODk6MQorUEFVU0VTIEFUOiA4
OTo3CisgICAgIDg2ICAgIAorICAgICA4NyAgICB4ID0+IHg7CisgICAgIDg4ICAgICgpID0+IDE7
CistPT4gIDg5ICAgICgjeCkgPT4gfHg7CisgICAgIDkwICAgICh4KSA9PiB7IHggfTsKKyAgICAg
OTEgICAgKHgpID0+IHsKKyAgICAgOTIgICAgICAgIHgKKworSU5TRVJUSU5HIEFUOiA4OTo4CitQ
QVVTRVMgQVQ6IDk4OjAKKyAgICAgODYgICAgCisgICAgIDg3ICAgIHggPT4geDsKKyAgICAgODgg
ICAgKCkgPT4gMTsKKyAtPiAgODkgICAgKHgpID0+IHgjOworICAgICA5MCAgICAoeCkgPT4geyB4
IH07CisgICAgIDkxICAgICh4KSA9PiB7CisgICAgIDkyICAgICAgICB4CisgICAgIDkzICAgIH07
CisgICAgIDk0ICAgICgpID0+IHsKKyAgICAgOTUgICAgICAgIHZhciB4OworICAgICA5NiAgICB9
OworICAgICA5NyAgICAKKyA9PiAgOTggICAgfHZhciBmT2JqID0geworICAgICA5OSAgICAgICAg
ZjE6IGZ1bmN0aW9uKCkgeworICAgIDEwMCAgICAgICAgICAgIHZhciB4OworICAgIDEwMSAgICAg
ICAgfSwKKworSU5TRVJUSU5HIEFUOiA5MDowCitQQVVTRVMgQVQ6IDkwOjAKKyAgICAgODcgICAg
eCA9PiB4OworICAgICA4OCAgICAoKSA9PiAxOworICAgICA4OSAgICAoeCkgPT4geDsKKy09PiAg
OTAgICAgfCh4KSA9PiB7IHggfTsKKyAgICAgOTEgICAgKHgpID0+IHsKKyAgICAgOTIgICAgICAg
IHgKKyAgICAgOTMgICAgfTsKKworSU5TRVJUSU5HIEFUOiA5MDoxCitQQVVTRVMgQVQ6IDkwOjkK
KyAgICAgODcgICAgeCA9PiB4OworICAgICA4OCAgICAoKSA9PiAxOworICAgICA4OSAgICAoeCkg
PT4geDsKKy09PiAgOTAgICAgKCN4KSA9PiB7IHx4IH07CisgICAgIDkxICAgICh4KSA9PiB7Cisg
ICAgIDkyICAgICAgICB4CisgICAgIDkzICAgIH07CisKK0lOU0VSVElORyBBVDogOTA6MTAKK1BB
VVNFUyBBVDogOTA6MTEKKyAgICAgODcgICAgeCA9PiB4OworICAgICA4OCAgICAoKSA9PiAxOwor
ICAgICA4OSAgICAoeCkgPT4geDsKKy09PiAgOTAgICAgKHgpID0+IHsgeCMgfH07CisgICAgIDkx
ICAgICh4KSA9PiB7CisgICAgIDkyICAgICAgICB4CisgICAgIDkzICAgIH07CisKK0lOU0VSVElO
RyBBVDogOTE6MAorUEFVU0VTIEFUOiA5MTowCisgICAgIDg4ICAgICgpID0+IDE7CisgICAgIDg5
ICAgICh4KSA9PiB4OworICAgICA5MCAgICAoeCkgPT4geyB4IH07CistPT4gIDkxICAgIHwoeCkg
PT4geworICAgICA5MiAgICAgICAgeAorICAgICA5MyAgICB9OworICAgICA5NCAgICAoKSA9PiB7
CisKK0lOU0VSVElORyBBVDogOTE6MQorUEFVU0VTIEFUOiA5Mjo0CisgICAgIDg4ICAgICgpID0+
IDE7CisgICAgIDg5ICAgICh4KSA9PiB4OworICAgICA5MCAgICAoeCkgPT4geyB4IH07CisgLT4g
IDkxICAgICgjeCkgPT4geworID0+ICA5MiAgICAgICAgfHgKKyAgICAgOTMgICAgfTsKKyAgICAg
OTQgICAgKCkgPT4geworICAgICA5NSAgICAgICAgdmFyIHg7CisKK0lOU0VSVElORyBBVDogOTI6
NQorUEFVU0VTIEFUOiA5MzowCisgICAgIDg5ICAgICh4KSA9PiB4OworICAgICA5MCAgICAoeCkg
PT4geyB4IH07CisgICAgIDkxICAgICh4KSA9PiB7CisgLT4gIDkyICAgICAgICB4IworID0+ICA5
MyAgICB8fTsKKyAgICAgOTQgICAgKCkgPT4geworICAgICA5NSAgICAgICAgdmFyIHg7CisgICAg
IDk2ICAgIH07CisKK0lOU0VSVElORyBBVDogOTQ6MAorUEFVU0VTIEFUOiA5NDowCisgICAgIDkx
ICAgICh4KSA9PiB7CisgICAgIDkyICAgICAgICB4CisgICAgIDkzICAgIH07CistPT4gIDk0ICAg
IHwoKSA9PiB7CisgICAgIDk1ICAgICAgICB2YXIgeDsKKyAgICAgOTYgICAgfTsKKyAgICAgOTcg
ICAgCisKK0lOU0VSVElORyBBVDogOTQ6MQorUEFVU0VTIEFUOiA5NTo0CisgICAgIDkxICAgICh4
KSA9PiB7CisgICAgIDkyICAgICAgICB4CisgICAgIDkzICAgIH07CisgLT4gIDk0ICAgICgjKSA9
PiB7CisgPT4gIDk1ICAgICAgICB8dmFyIHg7CisgICAgIDk2ICAgIH07CisgICAgIDk3ICAgIAor
ICAgICA5OCAgICB2YXIgZk9iaiA9IHsKKworSU5TRVJUSU5HIEFUOiA5NTo1CitQQVVTRVMgQVQ6
IDk2OjAKKyAgICAgOTIgICAgICAgIHgKKyAgICAgOTMgICAgfTsKKyAgICAgOTQgICAgKCkgPT4g
eworIC0+ICA5NSAgICAgICAgdiNhciB4OworID0+ICA5NiAgICB8fTsKKyAgICAgOTcgICAgCisg
ICAgIDk4ICAgIHZhciBmT2JqID0geworICAgICA5OSAgICAgICAgZjE6IGZ1bmN0aW9uKCkgewor
CitJTlNFUlRJTkcgQVQ6IDk5OjAKK1BBVVNFUyBBVDogMTAwOjgKKyAgICAgOTYgICAgfTsKKyAg
ICAgOTcgICAgCisgICAgIDk4ICAgIHZhciBmT2JqID0geworIC0+ICA5OSAgICAjICAgIGYxOiBm
dW5jdGlvbigpIHsKKyA9PiAxMDAgICAgICAgICAgICB8dmFyIHg7CisgICAgMTAxICAgICAgICB9
LAorICAgIDEwMiAgICAgICAgZjI6IGZ1bmN0aW9uKCkKKyAgICAxMDMgICAgICAgIHsKKworSU5T
RVJUSU5HIEFUOiAxMDA6OQorUEFVU0VTIEFUOiAxMDE6NAorICAgICA5NyAgICAKKyAgICAgOTgg
ICAgdmFyIGZPYmogPSB7CisgICAgIDk5ICAgICAgICBmMTogZnVuY3Rpb24oKSB7CisgLT4gMTAw
ICAgICAgICAgICAgdiNhciB4OworID0+IDEwMSAgICAgICAgfH0sCisgICAgMTAyICAgICAgICBm
MjogZnVuY3Rpb24oKQorICAgIDEwMyAgICAgICAgeworICAgIDEwNCAgICAgICAgICAgIHZhciB4
OworCitJTlNFUlRJTkcgQVQ6IDEwMjowCitQQVVTRVMgQVQ6IDEwNDo4CisgICAgIDk5ICAgICAg
ICBmMTogZnVuY3Rpb24oKSB7CisgICAgMTAwICAgICAgICAgICAgdmFyIHg7CisgICAgMTAxICAg
ICAgICB9LAorIC0+IDEwMiAgICAjICAgIGYyOiBmdW5jdGlvbigpCisgICAgMTAzICAgICAgICB7
CisgPT4gMTA0ICAgICAgICAgICAgfHZhciB4OworICAgIDEwNSAgICAgICAgfSwKKyAgICAxMDYg
ICAgICAgIGYzOiAoKSA9PiB7CisgICAgMTA3ICAgICAgICAgICAgdmFyIHg7CisKK0lOU0VSVElO
RyBBVDogMTA0OjkKK1BBVVNFUyBBVDogMTA1OjQKKyAgICAxMDEgICAgICAgIH0sCisgICAgMTAy
ICAgICAgICBmMjogZnVuY3Rpb24oKQorICAgIDEwMyAgICAgICAgeworIC0+IDEwNCAgICAgICAg
ICAgIHYjYXIgeDsKKyA9PiAxMDUgICAgICAgIHx9LAorICAgIDEwNiAgICAgICAgZjM6ICgpID0+
IHsKKyAgICAxMDcgICAgICAgICAgICB2YXIgeDsKKyAgICAxMDggICAgICAgIH0sCisKK0lOU0VS
VElORyBBVDogMTA2OjAKK1BBVVNFUyBBVDogMTA3OjgKKyAgICAxMDMgICAgICAgIHsKKyAgICAx
MDQgICAgICAgICAgICB2YXIgeDsKKyAgICAxMDUgICAgICAgIH0sCisgLT4gMTA2ICAgICMgICAg
ZjM6ICgpID0+IHsKKyA9PiAxMDcgICAgICAgICAgICB8dmFyIHg7CisgICAgMTA4ICAgICAgICB9
LAorICAgIDEwOSAgICAgICAgZjQ6ICgpID0+CisgICAgMTEwICAgICAgICB7CisKK0lOU0VSVElO
RyBBVDogMTA3OjkKK1BBVVNFUyBBVDogMTA4OjQKKyAgICAxMDQgICAgICAgICAgICB2YXIgeDsK
KyAgICAxMDUgICAgICAgIH0sCisgICAgMTA2ICAgICAgICBmMzogKCkgPT4geworIC0+IDEwNyAg
ICAgICAgICAgIHYjYXIgeDsKKyA9PiAxMDggICAgICAgIHx9LAorICAgIDEwOSAgICAgICAgZjQ6
ICgpID0+CisgICAgMTEwICAgICAgICB7CisgICAgMTExICAgICAgICAgICAgdmFyIHg7CisKK0lO
U0VSVElORyBBVDogMTA5OjAKK1BBVVNFUyBBVDogMTExOjgKKyAgICAxMDYgICAgICAgIGYzOiAo
KSA9PiB7CisgICAgMTA3ICAgICAgICAgICAgdmFyIHg7CisgICAgMTA4ICAgICAgICB9LAorIC0+
IDEwOSAgICAjICAgIGY0OiAoKSA9PgorICAgIDExMCAgICAgICAgeworID0+IDExMSAgICAgICAg
ICAgIHx2YXIgeDsKKyAgICAxMTIgICAgICAgIH0gICAKKyAgICAxMTMgICAgfTsKKyAgICAxMTQg
ICAgCisKK0lOU0VSVElORyBBVDogMTExOjkKK1BBVVNFUyBBVDogMTEyOjQKKyAgICAxMDggICAg
ICAgIH0sCisgICAgMTA5ICAgICAgICBmNDogKCkgPT4KKyAgICAxMTAgICAgICAgIHsKKyAtPiAx
MTEgICAgICAgICAgICB2I2FyIHg7CisgPT4gMTEyICAgICAgICB8fSAgIAorICAgIDExMyAgICB9
OworICAgIDExNCAgICAKKworCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIucmVzb2x2
ZWRCcmVha3BvaW50LmR1bXBBbGxMb2NhdGlvbnMuVW5pY29kZQorCitJTlNFUlRJTkcgQVQ6IDA6
MAorUEFVU0VTIEFUOiAwOjAKKy09PiAgIDAgICAgfHZhciB1bmljb2RlVmFyaWFibGUxID0gZnVu
Y3Rpb24oKXt9OworICAgICAgMSAgICB2YXIgdW5pY29kZVZhcmlhYmxlU3RyID0gIk5vbi04LWJp
dCAn4oiZJyBjaGFyYWN0ZXIuIjsKKyAgICAgIDIgICAgdmFyIHVuaWNvZGVTdXJyb2dhdGVQYWly
U3RyID0gIkVtb2ppICfwn5iNJyBjaGFyYWN0ZXIuIjsKKyAgICAgIDMgICAgdmFyIHVuaWNvZGVW
YXJpYWJsZTIgPSAyOworCitJTlNFUlRJTkcgQVQ6IDA6MQorUEFVU0VTIEFUOiAwOjM0CistPT4g
ICAwICAgIHYjYXIgdW5pY29kZVZhcmlhYmxlMSA9IGZ1bmN0aW9uKCl7fH07CisgICAgICAxICAg
IHZhciB1bmljb2RlVmFyaWFibGVTdHIgPSAiTm9uLTgtYml0ICfiiJknIGNoYXJhY3Rlci4iOwor
ICAgICAgMiAgICB2YXIgdW5pY29kZVN1cnJvZ2F0ZVBhaXJTdHIgPSAiRW1vamkgJ/CfmI0nIGNo
YXJhY3Rlci4iOworICAgICAgMyAgICB2YXIgdW5pY29kZVZhcmlhYmxlMiA9IDI7CisKK0lOU0VS
VElORyBBVDogMDozNQorUEFVU0VTIEFUOiAxOjAKKyAtPiAgIDAgICAgdmFyIHVuaWNvZGVWYXJp
YWJsZTEgPSBmdW5jdGlvbigpe30jOworID0+ICAgMSAgICB8dmFyIHVuaWNvZGVWYXJpYWJsZVN0
ciA9ICJOb24tOC1iaXQgJ+KImScgY2hhcmFjdGVyLiI7CisgICAgICAyICAgIHZhciB1bmljb2Rl
U3Vycm9nYXRlUGFpclN0ciA9ICJFbW9qaSAn8J+YjScgY2hhcmFjdGVyLiI7CisgICAgICAzICAg
IHZhciB1bmljb2RlVmFyaWFibGUyID0gMjsKKyAgICAgIDQgICAgCisKK0lOU0VSVElORyBBVDog
MToxCitQQVVTRVMgQVQ6IDI6MAorICAgICAgMCAgICB2YXIgdW5pY29kZVZhcmlhYmxlMSA9IGZ1
bmN0aW9uKCl7fTsKKyAtPiAgIDEgICAgdiNhciB1bmljb2RlVmFyaWFibGVTdHIgPSAiTm9uLTgt
Yml0ICfiiJknIGNoYXJhY3Rlci4iOworID0+ICAgMiAgICB8dmFyIHVuaWNvZGVTdXJyb2dhdGVQ
YWlyU3RyID0gIkVtb2ppICfwn5iNJyBjaGFyYWN0ZXIuIjsKKyAgICAgIDMgICAgdmFyIHVuaWNv
ZGVWYXJpYWJsZTIgPSAyOworICAgICAgNCAgICAKKworSU5TRVJUSU5HIEFUOiAyOjEKK1BBVVNF
UyBBVDogMzowCisgICAgICAwICAgIHZhciB1bmljb2RlVmFyaWFibGUxID0gZnVuY3Rpb24oKXt9
OworICAgICAgMSAgICB2YXIgdW5pY29kZVZhcmlhYmxlU3RyID0gIk5vbi04LWJpdCAn4oiZJyBj
aGFyYWN0ZXIuIjsKKyAtPiAgIDIgICAgdiNhciB1bmljb2RlU3Vycm9nYXRlUGFpclN0ciA9ICJF
bW9qaSAn8J+YjScgY2hhcmFjdGVyLiI7CisgPT4gICAzICAgIHx2YXIgdW5pY29kZVZhcmlhYmxl
MiA9IDI7CisgICAgICA0ICAgIAorCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>379294</attachid>
            <date>2019-09-20 17:30:04 -0700</date>
            <delta_ts>2019-10-04 14:57:53 -0700</delta_ts>
            <desc>testresolved-dump-all-pause-locations-pretty-diff</desc>
            <filename>resolved-dump-all-pause-locations-pretty-diff.html</filename>
            <type>text/html</type>
            <size>16672</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8bWV0YSBjaGFyc2V0PSd1dGYtOCc+CjxzdHlsZT4KOmxpbmssIDp2aXNp
dGVkIHsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIGJvcmRlci1ib3R0b206IDFweCBk
b3R0ZWQ7Cn0KCjpsaW5rIHsKICAgIGNvbG9yOiAjMDM5Owp9CgouRmlsZURpZmYgewogICAgYmFj
a2dyb3VuZC1jb2xvcjogI2Y4ZjhmODsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICBm
b250LWZhbWlseTogbW9ub3NwYWNlOwogICAgbWFyZ2luOiAxZW0gMDsKICAgIHBvc2l0aW9uOiBy
ZWxhdGl2ZTsKfQoKaDEgewogICAgY29sb3I6ICMzMzM7CiAgICBmb250LWZhbWlseTogc2Fucy1z
ZXJpZjsKICAgIGZvbnQtc2l6ZTogMWVtOwogICAgbWFyZ2luLWxlZnQ6IDAuNWVtOwogICAgZGlz
cGxheTogaW5saW5lOwogICAgd2lkdGg6IDEwMCU7CiAgICBwYWRkaW5nOiAwLjVlbTsKfQoKaDEg
OmxpbmssIGgxIDp2aXNpdGVkIHsKICAgIGNvbG9yOiBpbmhlcml0Owp9CgpoMSA6aG92ZXIgewog
ICAgY29sb3I6ICM1NTU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOwp9CgouRGlmZkxpbmtz
IHsKICAgIGZsb2F0OiByaWdodDsKfQoKLkZpbGVEaWZmTGlua0NvbnRhaW5lciB7CiAgICBvcGFj
aXR5OiAwOwogICAgZGlzcGxheTogdGFibGUtY2VsbDsKICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVt
OwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKLkRpZmZTZWN0aW9uIHsKICAgIGJhY2tncm91
bmQtY29sb3I6IHdoaXRlOwogICAgYm9yZGVyOiBzb2xpZCAjZGRkOwogICAgYm9yZGVyLXdpZHRo
OiAxcHggMHB4Owp9CgouRXhwYW5zaW9uTGluZSwgLkxpbmVDb250YWluZXIgewogICAgd2hpdGUt
c3BhY2U6IG5vd3JhcDsKfQoKLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQuYWRkOmZpcnN0LWNo
aWxkIHsKICAgIGZsb2F0OiByaWdodDsKfQoKLkxpbmVTaWRlLAouc2lkZWJ5c2lkZSAuRGlmZkJs
b2NrUGFydC5yZW1vdmUsCi5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7CiAgICBkaXNw
bGF5OmlubGluZS1ibG9jazsKICAgIHdpZHRoOiA1MCU7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9w
Owp9Cgouc2lkZWJ5c2lkZSAucmVzaXplSGFuZGxlIHsKICAgIHdpZHRoOiA1cHg7CiAgICBoZWln
aHQ6IDEwMCU7CiAgICBjdXJzb3I6IG1vdmU7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0
b3A6IDA7CiAgICBsZWZ0OiA1MCU7Cn0KCi5zaWRlYnlzaWRlIC5yZXNpemVIYW5kbGU6aG92ZXIg
ewogICAgYmFja2dyb3VuZC1jb2xvcjogZ3JleTsKICAgIG9wYWNpdHk6IDAuNTsKfQoKLnNpZGVi
eXNpZGUgLkRpZmZCbG9ja1BhcnQucmVtb3ZlIC50bywKLnNpZGVieXNpZGUgLkRpZmZCbG9ja1Bh
cnQuYWRkIC5mcm9tIHsKICAgIGRpc3BsYXk6IG5vbmU7Cn0KCi5saW5lTnVtYmVyLCAuZXhwYW5z
aW9uTGluZU51bWJlciB7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzk5ODsKICAgIGJv
cmRlci1yaWdodDogMXB4IHNvbGlkICNkZGQ7CiAgICBjb2xvcjogIzQ0NDsKICAgIGRpc3BsYXk6
IGlubGluZS1ibG9jazsKICAgIHBhZGRpbmc6IDFweCA1cHggMHB4IDBweDsKICAgIHRleHQtYWxp
Z246IHJpZ2h0OwogICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTsKICAgIHdpZHRoOiAzZW07Cn0K
Ci5saW5lTnVtYmVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVkOwp9CgouZXhwYW5zaW9uTGlu
ZU51bWJlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKfQoKcHJlLCAudGV4dCB7CiAgICBw
YWRkaW5nLWxlZnQ6IDVweDsKICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgIHdvcmQtd3Jh
cDogYnJlYWstd29yZDsKfQoKLmltYWdlIHsKICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrOwp9
CgouY29udGV4dCwgLmNvbnRleHQgLmxpbmVOdW1iZXIgewogICAgY29sb3I6ICM4NDk7CiAgICBi
YWNrZ3JvdW5kLWNvbG9yOiAjZmVmOwp9CgouTGluZS5hZGQsIC5GaWxlRGlmZiAuYWRkIHsKICAg
IGJhY2tncm91bmQtY29sb3I6ICNkZmQ7Cn0KCi5MaW5lLmFkZCBpbnMgewogICAgYmFja2dyb3Vu
ZC1jb2xvcjogIzllOTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQoKLkxpbmUucmVtb3Zl
LCAuRmlsZURpZmYgLnJlbW92ZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRkOwp9CgouTGlu
ZS5yZW1vdmUgZGVsIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlOTk7CiAgICB0ZXh0LWRlY29y
YXRpb246IG5vbmU7Cn0KCi8qIFN1cHBvcnQgZm9yIGlubGluZSBjb21tZW50cyAqLwoKLmF1dGhv
ciB7CiAgZm9udC1zdHlsZTogaXRhbGljOwp9CgouY29tbWVudCB7CiAgcG9zaXRpb246IHJlbGF0
aXZlOwp9CgouY29tbWVudCB0ZXh0YXJlYSB7CiAgaGVpZ2h0OiA2ZW07Cn0KCi5vdmVyYWxsQ29t
bWVudHMgdGV4dGFyZWEgewogIGhlaWdodDogMmVtOwogIG1heC13aWR0aDogMTAwJTsKICBtaW4t
d2lkdGg6IDIwMHB4Owp9CgouY29tbWVudCB0ZXh0YXJlYSwgLm92ZXJhbGxDb21tZW50cyB0ZXh0
YXJlYSB7CiAgZGlzcGxheTogYmxvY2s7CiAgd2lkdGg6IDEwMCU7Cn0KCi5vdmVyYWxsQ29tbWVu
dHMgLm9wZW4gewogIC13ZWJraXQtdHJhbnNpdGlvbjogaGVpZ2h0IC4yczsKICBoZWlnaHQ6IDRl
bTsKfQoKLnN0YXR1c0J1YmJsZS53cmFwIHsKICBkaXNwbGF5OiBibG9jazsKfQoKI3Rvb2xiYXIg
ewogIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKICBkaXNwbGF5OiAtbW96LWZsZXg7CiAgcGFkZGlu
ZzogM3B4OwogIGxlZnQ6IDA7CiAgcmlnaHQ6IDA7CiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsK
ICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOwogIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOwogIHBv
c2l0aW9uOiBmaXhlZDsKICBib3R0b206IDA7Cn0KCiN0b29sYmFyIC5hY3Rpb25zIHsKICBmbG9h
dDogcmlnaHQ7Cn0KCi53aW50ZXIgewogIHBvc2l0aW9uOiBmaXhlZDsKICB6LWluZGV4OiA1Owog
IGxlZnQ6IDA7CiAgcmlnaHQ6IDA7CiAgdG9wOiAwOwogIGJvdHRvbTogMDsKICBiYWNrZ3JvdW5k
LWNvbG9yOiBibGFjazsKICBvcGFjaXR5OiAwLjg7Cn0KCi5pbmFjdGl2ZSB7CiAgZGlzcGxheTog
bm9uZTsKfQoKLmxpZ2h0Ym94IHsKICBwb3NpdGlvbjogZml4ZWQ7CiAgei1pbmRleDogNjsKICBs
ZWZ0OiAxMCU7CiAgcmlnaHQ6IDEwJTsKICB0b3A6IDEwJTsKICBib3R0b206IDEwJTsKICBiYWNr
Z3JvdW5kOiB3aGl0ZTsKfQoKLmxpZ2h0Ym94IGlmcmFtZSB7CiAgd2lkdGg6IDEwMCU7CiAgaGVp
Z2h0OiAxMDAlOwp9CgouY29tbWVudENvbnRleHQgLmxpbmVOdW1iZXIgewogIGJhY2tncm91bmQt
Y29sb3I6IHllbGxvdzsKfQoKLnNlbGVjdGVkIC5saW5lTnVtYmVyIHsKICBiYWNrZ3JvdW5kLWNv
bG9yOiAjNjlGOwogIGJvcmRlci1ib3R0b20tY29sb3I6ICM2OUY7CiAgYm9yZGVyLXJpZ2h0LWNv
bG9yOiAjNjlGOwp9CgouRXhwYW5kTGlua0NvbnRhaW5lciB7CiAgb3BhY2l0eTogMDsKICBib3Jk
ZXItdG9wOiAxcHggc29saWQgI2RkZDsKICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDsK
fQoKLkV4cGFuZEFyZWEgewogIG1hcmdpbjogMDsKfQoKLkV4cGFuZFRleHQgewogIG1hcmdpbi1s
ZWZ0OiAwLjY3ZW07Cn0KCi5MaW5rQ29udGFpbmVyIHsKICBmb250LWZhbWlseTogc2Fucy1zZXJp
ZjsKICBmb250LXNpemU6IHNtYWxsOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAtd2Via2l0LXRy
YW5zaXRpb246IG9wYWNpdHkgMC41czsKfQoKLkxpbmtDb250YWluZXIgYSB7CiAgYm9yZGVyOiAw
Owp9CgouTGlua0NvbnRhaW5lciBsYWJlbDphZnRlciwKLkxpbmtDb250YWluZXIgYTphZnRlciB7
CiAgY29udGVudDogIiB8ICI7CiAgY29sb3I6IGJsYWNrOwp9CgouTGlua0NvbnRhaW5lciBhOmxh
c3Qtb2YtdHlwZTphZnRlciB7CiAgY29udGVudDogIiI7Cn0KCi5MaW5rQ29udGFpbmVyIGxhYmVs
IHsKICBjb2xvcjogIzAzOTsKfQoKLmhlbHAgewogY29sb3I6IGdyYXk7CiBmb250LXN0eWxlOiBp
dGFsaWM7Cn0KCiNtZXNzYWdlIHsKICBmb250LXNpemU6IHNtYWxsOwogIGZvbnQtZmFtaWx5OiBz
YW5zLXNlcmlmOwp9CgouY29tbWVudFN0YXR1cyB7CiAgZm9udC1zdHlsZTogaXRhbGljOwp9Cgou
Y29tbWVudCwgLnByZXZpb3VzQ29tbWVudCwgLmZyb3plbkNvbW1lbnQgewogIGJhY2tncm91bmQt
Y29sb3I6ICNmZmQ7Cn0KCi5vdmVyYWxsQ29tbWVudHMgewogIC13ZWJraXQtZmxleDogMTsKICAt
bW96LWZsZXg6IDE7CiAgbWFyZ2luLXJpZ2h0OiAzcHg7Cn0KCi5wcmV2aW91c0NvbW1lbnQsIC5m
cm96ZW5Db21tZW50IHsKICBib3JkZXI6IGluc2V0IDFweDsKICBwYWRkaW5nOiA1cHg7CiAgd2hp
dGUtc3BhY2U6IHByZS13cmFwOwp9CgouY29tbWVudCBidXR0b24gewogIHdpZHRoOiA2ZW07Cn0K
CmRpdjpmb2N1cyB7CiAgb3V0bGluZTogMXB4IHNvbGlkIGJsdWU7CiAgb3V0bGluZS1vZmZzZXQ6
IC0xcHg7Cn0KCi5zdGF0dXNCdWJibGUgPiBpZnJhbWUgewogIC8qIFRoZSB3aWR0aC9oZWlnaHQg
Z2V0IHNldCB0byB0aGUgYnViYmxlIGNvbnRlbnRzIHZpYSBwb3N0TWVzc2FnZSBvbiBicm93c2Vy
cyB0aGF0IHN1cHBvcnQgaXQuICovCiAgd2lkdGg6IDQ2MHB4OwogIGhlaWdodDogMjBweDsKICBt
YXJnaW46IDJweCAycHggMCAwOwogIGJvcmRlcjogbm9uZTsKICB2ZXJ0aWNhbC1hbGlnbjogbWlk
ZGxlOwp9CgoucmV2aXNpb24gewogIGRpc3BsYXk6IG5vbmU7Cn0KCi5hdXRvc2F2ZS1zdGF0ZSB7
CiAgcG9zaXRpb246IGFic29sdXRlOwogIHJpZ2h0OiAwOwogIHRvcDogLTEuM2VtOwogIHBhZGRp
bmc6IDAgM3B4OwogIG91dGxpbmU6IDFweCBzb2xpZCAjREREOwogIGNvbG9yOiAjOEZERjVGOwog
IGZvbnQtc2l6ZTogc21hbGw7ICAgCiAgYmFja2dyb3VuZC1jb2xvcjogI0VFRTsKfQoKLmF1dG9z
YXZlLXN0YXRlOmVtcHR5IHsKICBvdXRsaW5lOiAwcHg7Cn0KLmF1dG9zYXZlLXN0YXRlLnNhdmlu
ZyB7CiAgY29sb3I6ICNFOTgwODA7Cn0KCi5jbGVhcl9mbG9hdCB7CiAgICBjbGVhcjogYm90aDsK
fQo8L3N0eWxlPgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly93ZWJraXQub3JnL2FqYXgvbGlicy9qcXVl
cnkvanF1ZXJ5LTEuNC4yLm1pbi5qcyI+PC9zY3JpcHQ+IAo8c2NyaXB0IHNyYz0ianMvc3RhdHVz
LWJ1YmJsZS5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJjb2RlLXJldmlldy5qcz92ZXJzaW9u
PTQ4Ij48L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4KPGRpdiBjbGFzcz0nRmlsZURpZmYnPgo8aDE+
L2hvbWUveXVyeXMvV2ViS2l0L1dlYktpdEJ1aWxkL1JlbGVhc2UvbGF5b3V0LXRlc3QtcmVzdWx0
cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludHMvcmVzb2x2ZWQtZHVtcC1hbGwtcGF1c2Ut
bG9jYXRpb25zLWFjdHVhbC50eHQ8L2gxPgo8ZGl2IGNsYXNzPSdEaWZmU2VjdGlvbic+CjxkaXYg
Y2xhc3M9J0RpZmZCbG9jayc+CjxkaXYgY2xhc3M9J0RpZmZCbG9ja1BhcnQgc2hhcmVkJz4KPGRp
diBjbGFzcz0nTGluZSBMaW5lQ29udGFpbmVyJz4KPHNwYW4gY2xhc3M9J2Zyb20gbGluZU51bWJl
cic+MjE2Njwvc3Bhbj48c3BhbiBjbGFzcz0ndG8gbGluZU51bWJlcic+MjE2Njwvc3Bhbj48c3Bh
biBjbGFzcz0ndGV4dCc+ICAgICA5MiAgICAgICAgeDwvc3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9
J0xpbmUgTGluZUNvbnRhaW5lcic+CjxzcGFuIGNsYXNzPSdmcm9tIGxpbmVOdW1iZXInPjIxNjc8
L3NwYW4+PHNwYW4gY2xhc3M9J3RvIGxpbmVOdW1iZXInPjIxNjc8L3NwYW4+PHNwYW4gY2xhc3M9
J3RleHQnPjwvc3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9J0xpbmUgTGluZUNvbnRhaW5lcic+Cjxz
cGFuIGNsYXNzPSdmcm9tIGxpbmVOdW1iZXInPjIxNjg8L3NwYW4+PHNwYW4gY2xhc3M9J3RvIGxp
bmVOdW1iZXInPjIxNjg8L3NwYW4+PHNwYW4gY2xhc3M9J3RleHQnPklOU0VSVElORyBBVDogODk6
ODwvc3Bhbj4KPC9kaXY+CjwvZGl2PjxkaXYgY2xhc3M9J2NsZWFyX2Zsb2F0Jz48L2Rpdj48L2Rp
dj4KPGRpdiBjbGFzcz0nRGlmZkJsb2NrJz4KPGRpdiBjbGFzcz0nRGlmZkJsb2NrUGFydCByZW1v
dmUnPgo8ZGl2IGNsYXNzPSdMaW5lIExpbmVDb250YWluZXIgcmVtb3ZlJz4KPHNwYW4gY2xhc3M9
J2Zyb20gbGluZU51bWJlcic+MjE2OTwvc3Bhbj48c3BhbiBjbGFzcz0ndG8gbGluZU51bWJlcic+
Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz5QQVVTRVMgQVQ6IDk8ZGVsPjQ8L2RlbD46
MDwvc3Bhbj4KPC9kaXY+CjwvZGl2PjxkaXYgY2xhc3M9J0RpZmZCbG9ja1BhcnQgYWRkJz4KPGRp
diBjbGFzcz0nTGluZSBMaW5lQ29udGFpbmVyIGFkZCc+CjxzcGFuIGNsYXNzPSdmcm9tIGxpbmVO
dW1iZXInPiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz0ndG8gbGluZU51bWJlcic+MjE2OTwvc3Bh
bj48c3BhbiBjbGFzcz0ndGV4dCc+UEFVU0VTIEFUOiA5PGlucz44PC9pbnM+OjA8L3NwYW4+Cjwv
ZGl2Pgo8L2Rpdj48ZGl2IGNsYXNzPSdjbGVhcl9mbG9hdCc+PC9kaXY+PC9kaXY+CjxkaXYgY2xh
c3M9J0RpZmZCbG9jayc+CjxkaXYgY2xhc3M9J0RpZmZCbG9ja1BhcnQgc2hhcmVkJz4KPGRpdiBj
bGFzcz0nTGluZSBMaW5lQ29udGFpbmVyJz4KPHNwYW4gY2xhc3M9J2Zyb20gbGluZU51bWJlcic+
MjE3MDwvc3Bhbj48c3BhbiBjbGFzcz0ndG8gbGluZU51bWJlcic+MjE3MDwvc3Bhbj48c3BhbiBj
bGFzcz0ndGV4dCc+ICAgICA4NiAgICA8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdMaW5lIExp
bmVDb250YWluZXInPgo8c3BhbiBjbGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4yMTcxPC9zcGFuPjxz
cGFuIGNsYXNzPSd0byBsaW5lTnVtYmVyJz4yMTcxPC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz4g
ICAgIDg3ICAgIHggPSZndDsgeDs8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdMaW5lIExpbmVD
b250YWluZXInPgo8c3BhbiBjbGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4yMTcyPC9zcGFuPjxzcGFu
IGNsYXNzPSd0byBsaW5lTnVtYmVyJz4yMTcyPC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz4gICAg
IDg4ICAgICgpID0mZ3Q7IDE7PC9zcGFuPgo8L2Rpdj4KPC9kaXY+PGRpdiBjbGFzcz0nY2xlYXJf
ZmxvYXQnPjwvZGl2PjwvZGl2Pgo8L2Rpdj4KPGJyPgo8ZGl2IGNsYXNzPSdEaWZmU2VjdGlvbic+
CjxkaXYgY2xhc3M9J0RpZmZCbG9jayc+CjxkaXYgY2xhc3M9J0RpZmZCbG9ja1BhcnQgc2hhcmVk
Jz4KPGRpdiBjbGFzcz0nTGluZSBMaW5lQ29udGFpbmVyJz4KPHNwYW4gY2xhc3M9J2Zyb20gbGlu
ZU51bWJlcic+MjE3NTwvc3Bhbj48c3BhbiBjbGFzcz0ndG8gbGluZU51bWJlcic+MjE3NTwvc3Bh
bj48c3BhbiBjbGFzcz0ndGV4dCc+ICAgICA5MSAgICAoeCkgPSZndDsgezwvc3Bhbj4KPC9kaXY+
CjxkaXYgY2xhc3M9J0xpbmUgTGluZUNvbnRhaW5lcic+CjxzcGFuIGNsYXNzPSdmcm9tIGxpbmVO
dW1iZXInPjIxNzY8L3NwYW4+PHNwYW4gY2xhc3M9J3RvIGxpbmVOdW1iZXInPjIxNzY8L3NwYW4+
PHNwYW4gY2xhc3M9J3RleHQnPiAgICAgOTIgICAgICAgIHg8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNs
YXNzPSdMaW5lIExpbmVDb250YWluZXInPgo8c3BhbiBjbGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4y
MTc3PC9zcGFuPjxzcGFuIGNsYXNzPSd0byBsaW5lTnVtYmVyJz4yMTc3PC9zcGFuPjxzcGFuIGNs
YXNzPSd0ZXh0Jz4gICAgIDkzICAgIH07PC9zcGFuPgo8L2Rpdj4KPC9kaXY+PGRpdiBjbGFzcz0n
Y2xlYXJfZmxvYXQnPjwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSdEaWZmQmxvY2snPgo8ZGl2IGNs
YXNzPSdEaWZmQmxvY2tQYXJ0IHJlbW92ZSc+CjxkaXYgY2xhc3M9J0xpbmUgTGluZUNvbnRhaW5l
ciByZW1vdmUnPgo8c3BhbiBjbGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4yMTc4PC9zcGFuPjxzcGFu
IGNsYXNzPSd0byBsaW5lTnVtYmVyJz4mbmJzcDs8L3NwYW4+PHNwYW4gY2xhc3M9J3RleHQnPjxk
ZWw+ID0mZ3Q7PC9kZWw+ICA5NCAgICA8ZGVsPnw8L2RlbD4oKSA9Jmd0OyB7PC9zcGFuPgo8L2Rp
dj4KPC9kaXY+PGRpdiBjbGFzcz0nRGlmZkJsb2NrUGFydCBhZGQnPgo8ZGl2IGNsYXNzPSdMaW5l
IExpbmVDb250YWluZXIgYWRkJz4KPHNwYW4gY2xhc3M9J2Zyb20gbGluZU51bWJlcic+Jm5ic3A7
PC9zcGFuPjxzcGFuIGNsYXNzPSd0byBsaW5lTnVtYmVyJz4yMTc4PC9zcGFuPjxzcGFuIGNsYXNz
PSd0ZXh0Jz48aW5zPiAgIDwvaW5zPiAgOTQgICAgKCkgPSZndDsgezwvc3Bhbj4KPC9kaXY+Cjwv
ZGl2PjxkaXYgY2xhc3M9J2NsZWFyX2Zsb2F0Jz48L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0nRGlm
ZkJsb2NrJz4KPGRpdiBjbGFzcz0nRGlmZkJsb2NrUGFydCBzaGFyZWQnPgo8ZGl2IGNsYXNzPSdM
aW5lIExpbmVDb250YWluZXInPgo8c3BhbiBjbGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4yMTc5PC9z
cGFuPjxzcGFuIGNsYXNzPSd0byBsaW5lTnVtYmVyJz4yMTc5PC9zcGFuPjxzcGFuIGNsYXNzPSd0
ZXh0Jz4gICAgIDk1ICAgICAgICB2YXIgeDs8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdMaW5l
IExpbmVDb250YWluZXInPgo8c3BhbiBjbGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4yMTgwPC9zcGFu
PjxzcGFuIGNsYXNzPSd0byBsaW5lTnVtYmVyJz4yMTgwPC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0
Jz4gICAgIDk2ICAgIH07PC9zcGFuPgo8L2Rpdj4KPGRpdiBjbGFzcz0nTGluZSBMaW5lQ29udGFp
bmVyJz4KPHNwYW4gY2xhc3M9J2Zyb20gbGluZU51bWJlcic+MjE4MTwvc3Bhbj48c3BhbiBjbGFz
cz0ndG8gbGluZU51bWJlcic+MjE4MTwvc3Bhbj48c3BhbiBjbGFzcz0ndGV4dCc+ICAgICA5NyAg
ICA8L3NwYW4+CjwvZGl2Pgo8L2Rpdj48ZGl2IGNsYXNzPSdjbGVhcl9mbG9hdCc+PC9kaXY+PC9k
aXY+CjxkaXYgY2xhc3M9J0RpZmZCbG9jayc+CjxkaXYgY2xhc3M9J0RpZmZCbG9ja1BhcnQgYWRk
Jz4KPGRpdiBjbGFzcz0nTGluZSBMaW5lQ29udGFpbmVyIGFkZCc+CjxzcGFuIGNsYXNzPSdmcm9t
IGxpbmVOdW1iZXInPiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz0ndG8gbGluZU51bWJlcic+MjE4
Mjwvc3Bhbj48c3BhbiBjbGFzcz0ndGV4dCc+ID0mZ3Q7ICA5OCAgICB8dmFyIGZPYmogPSB7PC9z
cGFuPgo8L2Rpdj4KPGRpdiBjbGFzcz0nTGluZSBMaW5lQ29udGFpbmVyIGFkZCc+CjxzcGFuIGNs
YXNzPSdmcm9tIGxpbmVOdW1iZXInPiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz0ndG8gbGluZU51
bWJlcic+MjE4Mzwvc3Bhbj48c3BhbiBjbGFzcz0ndGV4dCc+ICAgICA5OSAgICAgICAgZjE6IGZ1
bmN0aW9uKCkgezwvc3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9J0xpbmUgTGluZUNvbnRhaW5lciBh
ZGQnPgo8c3BhbiBjbGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4mbmJzcDs8L3NwYW4+PHNwYW4gY2xh
c3M9J3RvIGxpbmVOdW1iZXInPjIxODQ8L3NwYW4+PHNwYW4gY2xhc3M9J3RleHQnPiAgICAxMDAg
ICAgICAgICAgICB2YXIgeDs8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdMaW5lIExpbmVDb250
YWluZXIgYWRkJz4KPHNwYW4gY2xhc3M9J2Zyb20gbGluZU51bWJlcic+Jm5ic3A7PC9zcGFuPjxz
cGFuIGNsYXNzPSd0byBsaW5lTnVtYmVyJz4yMTg1PC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz4g
ICAgMTAxICAgICAgICB9LDwvc3Bhbj4KPC9kaXY+CjwvZGl2PjxkaXYgY2xhc3M9J2NsZWFyX2Zs
b2F0Jz48L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0nRGlmZkJsb2NrJz4KPGRpdiBjbGFzcz0nRGlm
ZkJsb2NrUGFydCBzaGFyZWQnPgo8ZGl2IGNsYXNzPSdMaW5lIExpbmVDb250YWluZXInPgo8c3Bh
biBjbGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4yMTgyPC9zcGFuPjxzcGFuIGNsYXNzPSd0byBsaW5l
TnVtYmVyJz4yMTg2PC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz48L3NwYW4+CjwvZGl2Pgo8ZGl2
IGNsYXNzPSdMaW5lIExpbmVDb250YWluZXInPgo8c3BhbiBjbGFzcz0nZnJvbSBsaW5lTnVtYmVy
Jz4yMTgzPC9zcGFuPjxzcGFuIGNsYXNzPSd0byBsaW5lTnVtYmVyJz4yMTg3PC9zcGFuPjxzcGFu
IGNsYXNzPSd0ZXh0Jz5JTlNFUlRJTkcgQVQ6IDkwOjA8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNz
PSdMaW5lIExpbmVDb250YWluZXInPgo8c3BhbiBjbGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4yMTg0
PC9zcGFuPjxzcGFuIGNsYXNzPSd0byBsaW5lTnVtYmVyJz4yMTg4PC9zcGFuPjxzcGFuIGNsYXNz
PSd0ZXh0Jz5QQVVTRVMgQVQ6IDkwOjA8L3NwYW4+CjwvZGl2Pgo8L2Rpdj48ZGl2IGNsYXNzPSdj
bGVhcl9mbG9hdCc+PC9kaXY+PC9kaXY+CjwvZGl2Pgo8YnI+CjxkaXYgY2xhc3M9J0RpZmZTZWN0
aW9uJz4KPGRpdiBjbGFzcz0nRGlmZkJsb2NrJz4KPGRpdiBjbGFzcz0nRGlmZkJsb2NrUGFydCBz
aGFyZWQnPgo8ZGl2IGNsYXNzPSdMaW5lIExpbmVDb250YWluZXInPgo8c3BhbiBjbGFzcz0nZnJv
bSBsaW5lTnVtYmVyJz4yMjQyPC9zcGFuPjxzcGFuIGNsYXNzPSd0byBsaW5lTnVtYmVyJz4yMjQ2
PC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz4gICAgIDk1ICAgICAgICB2YXIgeDs8L3NwYW4+Cjwv
ZGl2Pgo8ZGl2IGNsYXNzPSdMaW5lIExpbmVDb250YWluZXInPgo8c3BhbiBjbGFzcz0nZnJvbSBs
aW5lTnVtYmVyJz4yMjQzPC9zcGFuPjxzcGFuIGNsYXNzPSd0byBsaW5lTnVtYmVyJz4yMjQ3PC9z
cGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz4gICAgIDk2ICAgIH07PC9zcGFuPgo8L2Rpdj4KPGRpdiBj
bGFzcz0nTGluZSBMaW5lQ29udGFpbmVyJz4KPHNwYW4gY2xhc3M9J2Zyb20gbGluZU51bWJlcic+
MjI0NDwvc3Bhbj48c3BhbiBjbGFzcz0ndG8gbGluZU51bWJlcic+MjI0ODwvc3Bhbj48c3BhbiBj
bGFzcz0ndGV4dCc+PC9zcGFuPgo8L2Rpdj4KPC9kaXY+PGRpdiBjbGFzcz0nY2xlYXJfZmxvYXQn
PjwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSdEaWZmQmxvY2snPgo8ZGl2IGNsYXNzPSdEaWZmQmxv
Y2tQYXJ0IGFkZCc+CjxkaXYgY2xhc3M9J0xpbmUgTGluZUNvbnRhaW5lciBhZGQnPgo8c3BhbiBj
bGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4mbmJzcDs8L3NwYW4+PHNwYW4gY2xhc3M9J3RvIGxpbmVO
dW1iZXInPjIyNDk8L3NwYW4+PHNwYW4gY2xhc3M9J3RleHQnPklOU0VSVElORyBBVDogOTQ6MDwv
c3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9J0xpbmUgTGluZUNvbnRhaW5lciBhZGQnPgo8c3BhbiBj
bGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4mbmJzcDs8L3NwYW4+PHNwYW4gY2xhc3M9J3RvIGxpbmVO
dW1iZXInPjIyNTA8L3NwYW4+PHNwYW4gY2xhc3M9J3RleHQnPlBBVVNFUyBBVDogOTQ6MDwvc3Bh
bj4KPC9kaXY+CjxkaXYgY2xhc3M9J0xpbmUgTGluZUNvbnRhaW5lciBhZGQnPgo8c3BhbiBjbGFz
cz0nZnJvbSBsaW5lTnVtYmVyJz4mbmJzcDs8L3NwYW4+PHNwYW4gY2xhc3M9J3RvIGxpbmVOdW1i
ZXInPjIyNTE8L3NwYW4+PHNwYW4gY2xhc3M9J3RleHQnPiAgICAgOTEgICAgKHgpID0mZ3Q7IHs8
L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdMaW5lIExpbmVDb250YWluZXIgYWRkJz4KPHNwYW4g
Y2xhc3M9J2Zyb20gbGluZU51bWJlcic+Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSd0byBsaW5l
TnVtYmVyJz4yMjUyPC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz4gICAgIDkyICAgICAgICB4PC9z
cGFuPgo8L2Rpdj4KPGRpdiBjbGFzcz0nTGluZSBMaW5lQ29udGFpbmVyIGFkZCc+CjxzcGFuIGNs
YXNzPSdmcm9tIGxpbmVOdW1iZXInPiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz0ndG8gbGluZU51
bWJlcic+MjI1Mzwvc3Bhbj48c3BhbiBjbGFzcz0ndGV4dCc+ICAgICA5MyAgICB9Ozwvc3Bhbj4K
PC9kaXY+CjxkaXYgY2xhc3M9J0xpbmUgTGluZUNvbnRhaW5lciBhZGQnPgo8c3BhbiBjbGFzcz0n
ZnJvbSBsaW5lTnVtYmVyJz4mbmJzcDs8L3NwYW4+PHNwYW4gY2xhc3M9J3RvIGxpbmVOdW1iZXIn
PjIyNTQ8L3NwYW4+PHNwYW4gY2xhc3M9J3RleHQnPi09Jmd0OyAgOTQgICAgfCgpID0mZ3Q7IHs8
L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdMaW5lIExpbmVDb250YWluZXIgYWRkJz4KPHNwYW4g
Y2xhc3M9J2Zyb20gbGluZU51bWJlcic+Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSd0byBsaW5l
TnVtYmVyJz4yMjU1PC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz4gICAgIDk1ICAgICAgICB2YXIg
eDs8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdMaW5lIExpbmVDb250YWluZXIgYWRkJz4KPHNw
YW4gY2xhc3M9J2Zyb20gbGluZU51bWJlcic+Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSd0byBs
aW5lTnVtYmVyJz4yMjU2PC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz4gICAgIDk2ICAgIH07PC9z
cGFuPgo8L2Rpdj4KPGRpdiBjbGFzcz0nTGluZSBMaW5lQ29udGFpbmVyIGFkZCc+CjxzcGFuIGNs
YXNzPSdmcm9tIGxpbmVOdW1iZXInPiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz0ndG8gbGluZU51
bWJlcic+MjI1Nzwvc3Bhbj48c3BhbiBjbGFzcz0ndGV4dCc+ICAgICA5NyAgICA8L3NwYW4+Cjwv
ZGl2Pgo8ZGl2IGNsYXNzPSdMaW5lIExpbmVDb250YWluZXIgYWRkJz4KPHNwYW4gY2xhc3M9J2Zy
b20gbGluZU51bWJlcic+Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSd0byBsaW5lTnVtYmVyJz4y
MjU4PC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz48L3NwYW4+CjwvZGl2Pgo8L2Rpdj48ZGl2IGNs
YXNzPSdjbGVhcl9mbG9hdCc+PC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9J0RpZmZCbG9jayc+Cjxk
aXYgY2xhc3M9J0RpZmZCbG9ja1BhcnQgc2hhcmVkJz4KPGRpdiBjbGFzcz0nTGluZSBMaW5lQ29u
dGFpbmVyJz4KPHNwYW4gY2xhc3M9J2Zyb20gbGluZU51bWJlcic+MjI0NTwvc3Bhbj48c3BhbiBj
bGFzcz0ndG8gbGluZU51bWJlcic+MjI1OTwvc3Bhbj48c3BhbiBjbGFzcz0ndGV4dCc+SU5TRVJU
SU5HIEFUOiA5NDoxPC9zcGFuPgo8L2Rpdj4KPGRpdiBjbGFzcz0nTGluZSBMaW5lQ29udGFpbmVy
Jz4KPHNwYW4gY2xhc3M9J2Zyb20gbGluZU51bWJlcic+MjI0Njwvc3Bhbj48c3BhbiBjbGFzcz0n
dG8gbGluZU51bWJlcic+MjI2MDwvc3Bhbj48c3BhbiBjbGFzcz0ndGV4dCc+UEFVU0VTIEFUOiA5
NTo0PC9zcGFuPgo8L2Rpdj4KPGRpdiBjbGFzcz0nTGluZSBMaW5lQ29udGFpbmVyJz4KPHNwYW4g
Y2xhc3M9J2Zyb20gbGluZU51bWJlcic+MjI0Nzwvc3Bhbj48c3BhbiBjbGFzcz0ndG8gbGluZU51
bWJlcic+MjI2MTwvc3Bhbj48c3BhbiBjbGFzcz0ndGV4dCc+ICAgICA5MSAgICAoeCkgPSZndDsg
ezwvc3Bhbj4KPC9kaXY+CjwvZGl2PjxkaXYgY2xhc3M9J2NsZWFyX2Zsb2F0Jz48L2Rpdj48L2Rp
dj4KPC9kaXY+Cjxicj4KPGRpdiBjbGFzcz0nRGlmZlNlY3Rpb24nPgo8ZGl2IGNsYXNzPSdEaWZm
QmxvY2snPgo8ZGl2IGNsYXNzPSdEaWZmQmxvY2tQYXJ0IHNoYXJlZCc+CjxkaXYgY2xhc3M9J0xp
bmUgTGluZUNvbnRhaW5lcic+CjxzcGFuIGNsYXNzPSdmcm9tIGxpbmVOdW1iZXInPjIyNjM8L3Nw
YW4+PHNwYW4gY2xhc3M9J3RvIGxpbmVOdW1iZXInPjIyNzc8L3NwYW4+PHNwYW4gY2xhc3M9J3Rl
eHQnPiAgICAgOTcgICAgPC9zcGFuPgo8L2Rpdj4KPGRpdiBjbGFzcz0nTGluZSBMaW5lQ29udGFp
bmVyJz4KPHNwYW4gY2xhc3M9J2Zyb20gbGluZU51bWJlcic+MjI2NDwvc3Bhbj48c3BhbiBjbGFz
cz0ndG8gbGluZU51bWJlcic+MjI3ODwvc3Bhbj48c3BhbiBjbGFzcz0ndGV4dCc+ICAgICA5OCAg
ICB2YXIgZk9iaiA9IHs8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdMaW5lIExpbmVDb250YWlu
ZXInPgo8c3BhbiBjbGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4yMjY1PC9zcGFuPjxzcGFuIGNsYXNz
PSd0byBsaW5lTnVtYmVyJz4yMjc5PC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz4gICAgIDk5ICAg
ICAgICBmMTogZnVuY3Rpb24oKSB7PC9zcGFuPgo8L2Rpdj4KPC9kaXY+PGRpdiBjbGFzcz0nY2xl
YXJfZmxvYXQnPjwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSdEaWZmQmxvY2snPgo8ZGl2IGNsYXNz
PSdEaWZmQmxvY2tQYXJ0IHJlbW92ZSc+CjxkaXYgY2xhc3M9J0xpbmUgTGluZUNvbnRhaW5lciBy
ZW1vdmUnPgo8c3BhbiBjbGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4yMjY2PC9zcGFuPjxzcGFuIGNs
YXNzPSd0byBsaW5lTnVtYmVyJz4mbmJzcDs8L3NwYW4+PHNwYW4gY2xhc3M9J3RleHQnPjwvc3Bh
bj4KPC9kaXY+CjxkaXYgY2xhc3M9J0xpbmUgTGluZUNvbnRhaW5lciByZW1vdmUnPgo8c3BhbiBj
bGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4yMjY3PC9zcGFuPjxzcGFuIGNsYXNzPSd0byBsaW5lTnVt
YmVyJz4mbmJzcDs8L3NwYW4+PHNwYW4gY2xhc3M9J3RleHQnPklOU0VSVElORyBBVDogOTY6MTwv
c3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9J0xpbmUgTGluZUNvbnRhaW5lciByZW1vdmUnPgo8c3Bh
biBjbGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4yMjY4PC9zcGFuPjxzcGFuIGNsYXNzPSd0byBsaW5l
TnVtYmVyJz4mbmJzcDs8L3NwYW4+PHNwYW4gY2xhc3M9J3RleHQnPlBBVVNFUyBBVDogOTg6MDwv
c3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9J0xpbmUgTGluZUNvbnRhaW5lciByZW1vdmUnPgo8c3Bh
biBjbGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4yMjY5PC9zcGFuPjxzcGFuIGNsYXNzPSd0byBsaW5l
TnVtYmVyJz4mbmJzcDs8L3NwYW4+PHNwYW4gY2xhc3M9J3RleHQnPiAgICAgOTMgICAgfTs8L3Nw
YW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdMaW5lIExpbmVDb250YWluZXIgcmVtb3ZlJz4KPHNwYW4g
Y2xhc3M9J2Zyb20gbGluZU51bWJlcic+MjI3MDwvc3Bhbj48c3BhbiBjbGFzcz0ndG8gbGluZU51
bWJlcic+Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz4gICAgIDk0ICAgICgpID0mZ3Q7
IHs8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdMaW5lIExpbmVDb250YWluZXIgcmVtb3ZlJz4K
PHNwYW4gY2xhc3M9J2Zyb20gbGluZU51bWJlcic+MjI3MTwvc3Bhbj48c3BhbiBjbGFzcz0ndG8g
bGluZU51bWJlcic+Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz4gICAgIDk1ICAgICAg
ICB2YXIgeDs8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdMaW5lIExpbmVDb250YWluZXIgcmVt
b3ZlJz4KPHNwYW4gY2xhc3M9J2Zyb20gbGluZU51bWJlcic+MjI3Mjwvc3Bhbj48c3BhbiBjbGFz
cz0ndG8gbGluZU51bWJlcic+Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz4gLSZndDsg
IDk2ICAgIH0jOzwvc3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9J0xpbmUgTGluZUNvbnRhaW5lciBy
ZW1vdmUnPgo8c3BhbiBjbGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4yMjczPC9zcGFuPjxzcGFuIGNs
YXNzPSd0byBsaW5lTnVtYmVyJz4mbmJzcDs8L3NwYW4+PHNwYW4gY2xhc3M9J3RleHQnPiAgICAg
OTcgICAgPC9zcGFuPgo8L2Rpdj4KPGRpdiBjbGFzcz0nTGluZSBMaW5lQ29udGFpbmVyIHJlbW92
ZSc+CjxzcGFuIGNsYXNzPSdmcm9tIGxpbmVOdW1iZXInPjIyNzQ8L3NwYW4+PHNwYW4gY2xhc3M9
J3RvIGxpbmVOdW1iZXInPiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz0ndGV4dCc+ID0mZ3Q7ICA5
OCAgICB8dmFyIGZPYmogPSB7PC9zcGFuPgo8L2Rpdj4KPGRpdiBjbGFzcz0nTGluZSBMaW5lQ29u
dGFpbmVyIHJlbW92ZSc+CjxzcGFuIGNsYXNzPSdmcm9tIGxpbmVOdW1iZXInPjIyNzU8L3NwYW4+
PHNwYW4gY2xhc3M9J3RvIGxpbmVOdW1iZXInPiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz0ndGV4
dCc+ICAgICA5OSAgICAgICAgZjE6IGZ1bmN0aW9uKCkgezwvc3Bhbj4KPC9kaXY+CjxkaXYgY2xh
c3M9J0xpbmUgTGluZUNvbnRhaW5lciByZW1vdmUnPgo8c3BhbiBjbGFzcz0nZnJvbSBsaW5lTnVt
YmVyJz4yMjc2PC9zcGFuPjxzcGFuIGNsYXNzPSd0byBsaW5lTnVtYmVyJz4mbmJzcDs8L3NwYW4+
PHNwYW4gY2xhc3M9J3RleHQnPiAgICAxMDAgICAgICAgICAgICB2YXIgeDs8L3NwYW4+CjwvZGl2
Pgo8ZGl2IGNsYXNzPSdMaW5lIExpbmVDb250YWluZXIgcmVtb3ZlJz4KPHNwYW4gY2xhc3M9J2Zy
b20gbGluZU51bWJlcic+MjI3Nzwvc3Bhbj48c3BhbiBjbGFzcz0ndG8gbGluZU51bWJlcic+Jm5i
c3A7PC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz4gICAgMTAxICAgICAgICB9LDwvc3Bhbj4KPC9k
aXY+CjwvZGl2PjxkaXYgY2xhc3M9J2NsZWFyX2Zsb2F0Jz48L2Rpdj48L2Rpdj4KPGRpdiBjbGFz
cz0nRGlmZkJsb2NrJz4KPGRpdiBjbGFzcz0nRGlmZkJsb2NrUGFydCBzaGFyZWQnPgo8ZGl2IGNs
YXNzPSdMaW5lIExpbmVDb250YWluZXInPgo8c3BhbiBjbGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4y
Mjc4PC9zcGFuPjxzcGFuIGNsYXNzPSd0byBsaW5lTnVtYmVyJz4yMjgwPC9zcGFuPjxzcGFuIGNs
YXNzPSd0ZXh0Jz48L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdMaW5lIExpbmVDb250YWluZXIn
Pgo8c3BhbiBjbGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4yMjc5PC9zcGFuPjxzcGFuIGNsYXNzPSd0
byBsaW5lTnVtYmVyJz4yMjgxPC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz5JTlNFUlRJTkcgQVQ6
IDk5OjA8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdMaW5lIExpbmVDb250YWluZXInPgo8c3Bh
biBjbGFzcz0nZnJvbSBsaW5lTnVtYmVyJz4yMjgwPC9zcGFuPjxzcGFuIGNsYXNzPSd0byBsaW5l
TnVtYmVyJz4yMjgyPC9zcGFuPjxzcGFuIGNsYXNzPSd0ZXh0Jz5QQVVTRVMgQVQ6IDEwMDo4PC9z
cGFuPgo8L2Rpdj4KPC9kaXY+PGRpdiBjbGFzcz0nY2xlYXJfZmxvYXQnPjwvZGl2PjwvZGl2Pgo8
L2Rpdj4KPC9kaXY+CjwvYm9keT48L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379462</attachid>
            <date>2019-09-24 11:43:09 -0700</date>
            <delta_ts>2019-09-24 17:19:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137131-20190924114309.patch</filename>
            <type>text/plain</type>
            <size>20638</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MDRlODc5MTExZmRmNjE2OTRlYzhhNzM3OGYxOWZhZmZkNDVlZjliLi5mYTg3NGRkMTNhMDM3Mjkw
NDhhN2RjNWUxN2Y3MzQ4ZjQ2N2Y4YjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxOS0wOS0yNCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB0ZXN0cyB1bmRlciBMYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIgYXJlIGZsYWt5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzcxMzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE4NDYx
MzM1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENo
YW5nZWQgYnJlYWtwb2ludCByZXNvbHV0aW9uIGxvZ2ljIHRvIG1ha2UgaXQgY29zaXN0ZW50IGFj
cm9zcyBwbGF0Zm9ybXMgYW5kCisgICAgICAgIGJldHRlciBoYW5kbGUgdGhlIGNhc2Ugd2hlbiB0
aGVyZSBhcmUgc2V2ZXJhbCBEZWJ1Z2dlclBhdXNlUG9zaXRpb25zIGF0IHRoZSBzYW1lCisgICAg
ICAgIG9mZnNldCAoYnV0IHdpdGggZGlmZmVyZW50IHR5cGVzKS4KKworICAgICAgICAqIGRlYnVn
Z2VyL0RlYnVnZ2VyLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6OnJlc29sdmVCcmVha3Bv
aW50KTogY2xhcmlmaWVkIHRoYXQgaW4gdGhlIG1hcCBjb2x1bW5zIGFyZSAwLWJhc2VkLgorICAg
ICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyUGFyc2VEYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6RGVi
dWdnZXJQYXVzZVBvc2l0aW9uczo6YnJlYWtwb2ludExvY2F0aW9uRm9yTGluZUNvbHVtbik6IHJl
cGxhY2VkIGN1c3RvbQorICAgICAgICBiaW5hcnkgc2VhcmNoIHdpdGggc3RkOjpsb3dlcl9ib3Vu
ZC4gSWYgdGhlcmUgYXJlIHNldmVyYWwgcGF1c2UgcG9zaXRpb25zIGF0IHRoZQorICAgICAgICBz
YW1lIG9mZnNldCB0aGV5IHdpbGwgYmUgc29ydGVkIGJ5IHRoZSB0eXBlIGFuZCB0aGUgYWxnb3Jp
dGhtIGlzIGd1YXJhbnRlZWQgdG8gc2VlCisgICAgICAgIGxlZ3Rtb3N0IG9uZSBmaXJzdC4KKwor
ICAgICAgICAoSlNDOjpEZWJ1Z2dlclBhdXNlUG9zaXRpb25zOjpzb3J0KTogdXNlIHR5cGUgYXMg
c2Vjb25kYXJ5IG9yZGVyaW5nIGNvbXBvbmVudC4KKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dl
clBhcnNlRGF0YS5oOiBSZWFycmFuZ2VkIHR5cGUgY29uc3RhbnRzIHNvIHRoYXQgRW50ZXIgPCBQ
YXVzZSA8IExlYXZlCisgICAgICAgIHRoaXMgY2hhbmdlIGFsb25nIHdpdGggc29ydGluZyBieSB0
eXBlIHNob3VsZCBndWFyYW50ZWUgdGhhdCBpbiBjYXNlIG9mIHNldmVyYWwgcGF1c2UKKyAgICAg
ICAgcG9zaXRpb25zIGF0IHRoZSBzYW1lIGxpbmUgRW50ZXIgZ29lcyBiZWZvcmUgUGF1c2UgYmVm
b3JlIExlYXZlIGFuZCB0aGUgYnJlYWtwb2ludAorICAgICAgICByZXNvbHV0aW9uIHdpbGwgeWll
bGQgcmVzdWx0IHNpbWlsYXIgdG8gdGhhdCB3aGVuIGVhY2ggcGF1c2UgbG9jYXRpb25zIGhhcyBk
aWZmZXJlbnQKKyAgICAgICAgcG9zaXRpb24uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9j
b2wvRGVidWdnZXIuanNvbjogY2xhcmlmaWVkIHRoYXQgcG9zaXRpb25zIGFyZSAwLWJhc2VkLgor
ICAgICAgICAqIHBhcnNlci9QYXJzZXJUb2tlbnMuaDoKKyAgICAgICAgKEpTQzo6SlNUZXh0UG9z
aXRpb246OmNvbHVtbiBjb25zdCk6IGFkZGVkIGhlbHBlciBtZXRob2QgZm9yIGNvbXB1dGluZyBj
b2x1bW4uCisKIDIwMTktMDktMTkgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlZmFjdG9yaW5nOiBmaXggYnJva2VuIGluZGVudGF0aW9uIGluIEpTTm9uRGVzdHJ1
Y3RpYmxlUHJveHkuaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3M2E3YmRiMjIzYjI4OGU2YWE2NTZlZTUwODM0
YTE5YjQ0MTAzMWE2Li42NThhY2E3ODUwNDFmYjdlNjk1N2MwYmZmMzUxN2QzNDVmYTU4OGFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTktMDktMjAgIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdGVzdHMgdW5k
ZXIgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyIGFyZSBmbGFreQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MTMxCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8xODQ2MTMzNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBGaXggZGVidWdnZXIgdGVzdHMgb24gR1RLLiBBbGwgdGVzdHMgdGhhdCBw
YXVzZSBvbiBicmVha3BvaW50IGRpZG4ndCB3b3JrIGJlY2F1c2UKKyAgICAgICAgaW4gbGF5b3V0
IHRlc3RzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwgd2FzIHVzaW5nIFRpbWVyIHRvIGRp
c3BhdGNoIGNvbW1hbmRzCisgICAgICAgIHNlbnQgZnJvbSB0aGUgbG9jYWwgZnJvbnQtZW5kIHBh
Z2UgdG8gdGhlIGluc3BlY3RlZCBvbmUuIFdoZW4gcGF1c2VkIGluc2lkZSBhIHNjcmlwdAorICAg
ICAgICB0cmlnZ2VyZWQgYnkgdGhlIGZyb250LWVuZCBuZXN0ZWQgdGltZXIgZXZlbnQgd291bGQg
YmUgc2NoZWR1bGVkIGJ1dCBuZXZlciBmaXJlZAorICAgICAgICBiZWNhdXNlIGluIGdsaWIgaW1w
bGVtZW50YXRpb24gb2YgUnVuTG9vcDo6VGltZXJCYXNlIHVzZXMgZXZlbnQgc291cmNlIHdoaWNo
IGRvZXNuJ3QKKyAgICAgICAgYWxsb3cgcmVjdXJzaW9uIChnX3NvdXJjZV9zZXRfY2FuX3JlY3Vy
c2UgaXMgbm90IGNhbGxlZCBvbiB0aGUgc291cmNlKSwgc28gZGlzcGF0Y2hpbmcKKyAgICAgICAg
RGVidWdnZXIucmVzdW1lIGNvbW1hbmQgZGlkbid0IHdvcmsgd2hlbiBwYXVzZWQgaW5zaWRlIGFu
b3RoZXIgaW5zcGVjdG9yIGNvbW1hbmQgKGUuZy4KKyAgICAgICAgZXZhbCkuIFJ1bkxvb3AgaXRz
ZWxmIHVzZXMgZXZlbnQgc291cmNlIHdoaWNoIGRvZXMgYWxsb3cgcmVjdXJzaW9uLiBTbyBpbnN0
ZWFkIG9mIHVzaW5nCisgICAgICAgIGEgdGltZXIgZm9yIGFzeW5jaHJvbm91cyBjb21tYW5kIGRp
c3BhdGNoaW5nIHdpdGggZGVsYXk9MCB3ZSBub3cgc2NoZWR1bGUgYSB0YXNrIGluCisgICAgICAg
IFJ1bkxvb3AncyBxdWV1ZS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudExvY2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tlbmREaXNw
YXRjaFRhc2s6OmRpc3BhdGNoKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaFRhc2s6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaFRhc2s6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRhc2spOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoVGFzazo6c2NoZWR1bGVPbmVTaG90KTogZW5z
dXJlcyB0aGF0IHRoZXJlIGlzIG9uZSBpbnNwZWN0b3IKKyAgICAgICAgZGlzcGF0Y2ggdGFzayBp
biB0aGUgcXVldWUuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hU
YXNrOjpkaXNwYXRjaE9uZU1lc3NhZ2UpOiB0aGlzIGlzIG1vc3RseSB0aGUgc2FtZSBiZWhhdmlv
cgorICAgICAgICBhcyB3YXMgd2l0aCB0aW1lckZpcmVkLCB3ZSBzaG91bGQgYmUgYWJsZSB0byBk
aXNwYXRjaCBhbGwgYWNjdW11bGF0ZWQgbWVzc2FnZXMgZnJvbSB0aGUgcXVldWUKKyAgICAgICAg
aW4gb25lIGJhdGNoZWQgYnV0IGZvciBub3cgSSdkIGxpa2UgdG8ga2VlcCBpdCBvbmUgcGVyIGl0
ZXJhdGlvbi4KKwogMjAxOS0wOS0xOSAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgog
CiAgICAgICAgIEhUTUxWaWRlb0VsZW1lbnQgd2l0aCBhIGJyb2tlbiBwb3N0ZXIgaW1hZ2Ugd2ls
bCB0YWtlIHNxdWFyZSBkaW1lbnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIv
RGVidWdnZXIuY3BwCmluZGV4IGIwY2ZkZjg4YmQ0MTM3YzQ0ODhhMjMwMTMxOTAzYTQyM2M2OTdk
YjcuLmEwNWM4MzBhMWQ1ZjA1NGNlYTZhOGUzZTNlMmM1ZjliMDE2NDNmZTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcApAQCAtMzU5LDE0ICszNTksMTQg
QEAgdm9pZCBEZWJ1Z2dlcjo6cmVzb2x2ZUJyZWFrcG9pbnQoQnJlYWtwb2ludCYgYnJlYWtwb2lu
dCwgU291cmNlUHJvdmlkZXIqIHNvdXJjZVAKIAogICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJr
aXQub3JnL2IvMTYyNzcxPiBXZWIgSW5zcGVjdG9yOiBBZG9wdCBUZXh0UG9zaXRpb24gaW4gSW5z
cGVjdG9yIHRvIGF2b2lkIG9uZUJhc2VkSW50L3plcm9CYXNlZEludCBhbWJpZ3VpdHkKICAgICAv
LyBJbnNwZWN0b3IgYnJlYWtwb2ludCBsaW5lIGFuZCBjb2x1bW4gdmFsdWVzIGFyZSB6ZXJvLWJh
c2VkIGJ1dCB0aGUgZXhlY3V0YWJsZQotICAgIC8vIGFuZCBDb2RlQmxvY2sgbGluZSBhbmQgY29s
dW1uIHZhbHVlcyBhcmUgb25lLWJhc2VkLgorICAgIC8vIGFuZCBDb2RlQmxvY2sgbGluZSB2YWx1
ZXMgYXJlIG9uZS1iYXNlZCB3aGlsZSBjb2x1bW4gaXMgemVyby1iYXNlZC4KICAgICB1bnNpZ25l
ZCBsaW5lID0gYnJlYWtwb2ludC5saW5lICsgMTsKLSAgICB1bnNpZ25lZCBjb2x1bW4gPSBicmVh
a3BvaW50LmNvbHVtbiA/IGJyZWFrcG9pbnQuY29sdW1uIDogQnJlYWtwb2ludDo6dW5zcGVjaWZp
ZWRDb2x1bW47CisgICAgdW5zaWduZWQgY29sdW1uID0gYnJlYWtwb2ludC5jb2x1bW47CiAKICAg
ICAvLyBBY2NvdW50IGZvciBhIDxzY3JpcHQ+J3Mgc3RhcnQgcG9zaXRpb24gb24gdGhlIGZpcnN0
IGxpbmUgb25seS4KICAgICB1bnNpZ25lZCBwcm92aWRlclN0YXJ0TGluZSA9IHNvdXJjZVByb3Zp
ZGVyLT5zdGFydFBvc2l0aW9uKCkubV9saW5lLm9uZUJhc2VkSW50KCk7IC8vIE9uZSBiYXNlZCB0
byBtYXRjaCB0aGUgYWxyZWFkeSBhZGp1c3RlZCBsaW5lLgogICAgIHVuc2lnbmVkIHByb3ZpZGVy
U3RhcnRDb2x1bW4gPSBzb3VyY2VQcm92aWRlci0+c3RhcnRQb3NpdGlvbigpLm1fY29sdW1uLnpl
cm9CYXNlZEludCgpOyAvLyBaZXJvIGJhc2VkIHNvIGNvbHVtbiB6ZXJvIGlzIHplcm8uCi0gICAg
aWYgKGxpbmUgPT0gcHJvdmlkZXJTdGFydExpbmUgJiYgY29sdW1uICE9IEJyZWFrcG9pbnQ6OnVu
c3BlY2lmaWVkQ29sdW1uKSB7CisgICAgaWYgKGxpbmUgPT0gcHJvdmlkZXJTdGFydExpbmUgJiYg
YnJlYWtwb2ludC5jb2x1bW4pIHsKICAgICAgICAgQVNTRVJUKHByb3ZpZGVyU3RhcnRDb2x1bW4g
PD0gY29sdW1uKTsKICAgICAgICAgaWYgKHByb3ZpZGVyU3RhcnRDb2x1bW4pCiAgICAgICAgICAg
ICBjb2x1bW4gLT0gcHJvdmlkZXJTdGFydENvbHVtbjsKQEAgLTM3OCwxNiArMzc4LDE2IEBAIHZv
aWQgRGVidWdnZXI6OnJlc29sdmVCcmVha3BvaW50KEJyZWFrcG9pbnQmIGJyZWFrcG9pbnQsIFNv
dXJjZVByb3ZpZGVyKiBzb3VyY2VQCiAgICAgICAgIHJldHVybjsKIAogICAgIHVuc2lnbmVkIHJl
c29sdmVkTGluZSA9IHJlc29sdmVkUG9zaXRpb24tPmxpbmU7Ci0gICAgdW5zaWduZWQgcmVzb2x2
ZWRDb2x1bW4gPSByZXNvbHZlZFBvc2l0aW9uLT5vZmZzZXQgLSByZXNvbHZlZFBvc2l0aW9uLT5s
aW5lU3RhcnRPZmZzZXQgKyAxOworICAgIHVuc2lnbmVkIHJlc29sdmVkQ29sdW1uID0gcmVzb2x2
ZWRQb3NpdGlvbi0+b2Zmc2V0IC0gcmVzb2x2ZWRQb3NpdGlvbi0+bGluZVN0YXJ0T2Zmc2V0Owog
CiAgICAgLy8gUmUtYWNjb3VudCBmb3IgYSA8c2NyaXB0PidzIHN0YXJ0IHBvc2l0aW9uIG9uIHRo
ZSBmaXJzdCBsaW5lIG9ubHkuCi0gICAgaWYgKHJlc29sdmVkTGluZSA9PSBwcm92aWRlclN0YXJ0
TGluZSAmJiBjb2x1bW4gIT0gQnJlYWtwb2ludDo6dW5zcGVjaWZpZWRDb2x1bW4pIHsKKyAgICBp
ZiAocmVzb2x2ZWRMaW5lID09IHByb3ZpZGVyU3RhcnRMaW5lICYmIGJyZWFrcG9pbnQuY29sdW1u
KSB7CiAgICAgICAgIGlmIChwcm92aWRlclN0YXJ0Q29sdW1uKQogICAgICAgICAgICAgcmVzb2x2
ZWRDb2x1bW4gKz0gcHJvdmlkZXJTdGFydENvbHVtbjsKICAgICB9CiAKICAgICBicmVha3BvaW50
LmxpbmUgPSByZXNvbHZlZExpbmUgLSAxOwotICAgIGJyZWFrcG9pbnQuY29sdW1uID0gcmVzb2x2
ZWRDb2x1bW4gLSAxOworICAgIGJyZWFrcG9pbnQuY29sdW1uID0gcmVzb2x2ZWRDb2x1bW47CiAg
ICAgYnJlYWtwb2ludC5yZXNvbHZlZCA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclBhcnNlRGF0YS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJzZURhdGEuY3BwCmluZGV4IDljMzM1YTRi
YjEwYWZmODVhNTdmYjQ1YWE0YTA1ZjQ4NGJjNTI1OWEuLmU2ZjFhNWQ4NTZjMTFmNTI3MTA3OWRl
OWI0OGQ0Y2I0ZmJhMzNjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlclBhcnNlRGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyUGFyc2VEYXRhLmNwcApAQCAtMzMsNDMgKzMzLDI5IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiBPcHRpb25hbDxKU1RleHRQb3NpdGlvbj4gRGVidWdnZXJQYXVzZVBvc2l0aW9u
czo6YnJlYWtwb2ludExvY2F0aW9uRm9yTGluZUNvbHVtbihpbnQgbGluZSwgaW50IGNvbHVtbikK
IHsKLSAgICB1bnNpZ25lZCBzdGFydCA9IDA7Ci0gICAgdW5zaWduZWQgZW5kID0gbV9wb3NpdGlv
bnMuc2l6ZSgpOwotICAgIHdoaWxlIChzdGFydCAhPSBlbmQpIHsKLSAgICAgICAgdW5zaWduZWQg
bWlkZGxlID0gc3RhcnQgKyAoKGVuZCAtIHN0YXJ0KSAvIDIpOwotICAgICAgICBEZWJ1Z2dlclBh
dXNlUG9zaXRpb24mIHBhdXNlUG9zaXRpb24gPSBtX3Bvc2l0aW9uc1ttaWRkbGVdOwotICAgICAg
ICBpbnQgcGF1c2VMaW5lID0gcGF1c2VQb3NpdGlvbi5wb3NpdGlvbi5saW5lOwotICAgICAgICBp
bnQgcGF1c2VDb2x1bW4gPSBwYXVzZVBvc2l0aW9uLnBvc2l0aW9uLm9mZnNldCAtIHBhdXNlUG9z
aXRpb24ucG9zaXRpb24ubGluZVN0YXJ0T2Zmc2V0OwotCi0gICAgICAgIGlmIChsaW5lIDwgcGF1
c2VMaW5lKSB7Ci0gICAgICAgICAgICBlbmQgPSBtaWRkbGU7Ci0gICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAobGluZSA+IHBhdXNlTGluZSkgewotICAgICAgICAg
ICAgc3RhcnQgPSBtaWRkbGUgKyAxOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0K
KyAgICBEZWJ1Z2dlclBhdXNlUG9zaXRpb24gcG9zaXRpb247CisgICAgcG9zaXRpb24ucG9zaXRp
b24ubGluZSA9IGxpbmU7CisgICAgcG9zaXRpb24ucG9zaXRpb24ub2Zmc2V0ID0gY29sdW1uOwor
ICAgIHBvc2l0aW9uLnBvc2l0aW9uLmxpbmVTdGFydE9mZnNldCA9IDA7CisgICAgYXV0byBpdCA9
IHN0ZDo6bG93ZXJfYm91bmQobV9wb3NpdGlvbnMuYmVnaW4oKSwgbV9wb3NpdGlvbnMuZW5kKCks
IHBvc2l0aW9uLCBbXSAoY29uc3QgRGVidWdnZXJQYXVzZVBvc2l0aW9uJiBhLCBjb25zdCBEZWJ1
Z2dlclBhdXNlUG9zaXRpb24mIGIpIHsKKyAgICAgICAgaWYgKGEucG9zaXRpb24ubGluZSA9PSBi
LnBvc2l0aW9uLmxpbmUpCisgICAgICAgICAgICByZXR1cm4gYS5wb3NpdGlvbi5jb2x1bW4oKSA8
IGIucG9zaXRpb24uY29sdW1uKCk7CisgICAgICAgIHJldHVybiBhLnBvc2l0aW9uLmxpbmUgPCBi
LnBvc2l0aW9uLmxpbmU7CisgICAgfSk7CiAKLSAgICAgICAgaWYgKGNvbHVtbiA9PSBwYXVzZUNv
bHVtbikgewotICAgICAgICAgICAgLy8gRm91bmQgYW4gZXhhY3QgcG9zaXRpb24gbWF0Y2guIFJv
bGwgZm9yd2FyZCBpZiB0aGlzIHdhcyBhIGZ1bmN0aW9uIEVudHJ5LgotICAgICAgICAgICAgLy8g
V2UgYXJlIGd1YXJlbnRlZWQgdG8gaGF2ZSBhIExlYXZlIGZvciBhbiBFbnRyeSBzbyB3ZSBkb24n
dCBuZWVkIHRvIGJvdW5kcyBjaGVjay4KLSAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKHBhdXNlUG9zaXRpb24udHlwZSAhPSBEZWJ1Z2dlclBhdXNlUG9zaXRp
b25UeXBlOjpFbnRlcikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9wdGlvbmFsPEpTVGV4
dFBvc2l0aW9uPihwYXVzZVBvc2l0aW9uLnBvc2l0aW9uKTsKLSAgICAgICAgICAgICAgICBwYXVz
ZVBvc2l0aW9uID0gbV9wb3NpdGlvbnNbbWlkZGxlKytdOwotICAgICAgICAgICAgfQotICAgICAg
ICB9CisgICAgaWYgKGl0ID09IG1fcG9zaXRpb25zLmVuZCgpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwogCi0gICAgICAgIGlmIChjb2x1bW4gPCBwYXVzZUNvbHVtbikKLSAgICAgICAg
ICAgIGVuZCA9IG1pZGRsZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgc3RhcnQgPSBtaWRk
bGUgKyAxOworICAgIGlmIChsaW5lID09IGl0LT5wb3NpdGlvbi5saW5lICYmIGNvbHVtbiA9PSBp
dC0+cG9zaXRpb24uY29sdW1uKCkpIHsKKyAgICAgICAgLy8gRm91bmQgYW4gZXhhY3QgcG9zaXRp
b24gbWF0Y2guIFJvbGwgZm9yd2FyZCBpZiB0aGlzIHdhcyBhIGZ1bmN0aW9uIEVudHJ5LgorICAg
ICAgICAvLyBXZSBhcmUgZ3VhcmVudGVlZCB0byBoYXZlIGEgTGVhdmUgZm9yIGFuIEVudHJ5IHNv
IHdlIGRvbid0IG5lZWQgdG8gYm91bmRzIGNoZWNrLgorICAgICAgICB3aGlsZSAodHJ1ZSkgewor
ICAgICAgICAgICAgaWYgKGl0LT50eXBlICE9IERlYnVnZ2VyUGF1c2VQb3NpdGlvblR5cGU6OkVu
dGVyKQorICAgICAgICAgICAgICAgIHJldHVybiBPcHRpb25hbDxKU1RleHRQb3NpdGlvbj4oaXQt
PnBvc2l0aW9uKTsKKyAgICAgICAgICAgICsraXQ7CisgICAgICAgIH0KICAgICB9CiAKLSAgICAv
LyBQYXN0IHRoZSBlbmQsIG5vIHBvc3NpYmxlIHBhdXNlIGxvY2F0aW9ucy4KLSAgICBpZiAoc3Rh
cnQgPj0gbV9wb3NpdGlvbnMuc2l6ZSgpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owot
CiAgICAgLy8gSWYgdGhlIG5leHQgbG9jYXRpb24gaXMgYSBmdW5jdGlvbiBFbnRyeSB3ZSB3aWxs
IG5lZWQgdG8gZGVjaWRlIGlmIHdlIHNob3VsZCBnbyBpbnRvCiAgICAgLy8gdGhlIGZ1bmN0aW9u
IG9yIGdvIHBhc3QgdGhlIGZ1bmN0aW9uLiBXZSBkZWNpZGUgdG8gZ28gaW50byB0aGUgZnVuY3Rp
b24gaWYgdGhlCiAgICAgLy8gaW5wdXQgaXMgb24gdGhlIHNhbWUgbGluZSBhcyB0aGUgZnVuY3Rp
b24gZW50cnkuIEZvciBleGFtcGxlOgpAQCAtODYsNyArNzIsNyBAQCBPcHRpb25hbDxKU1RleHRQ
b3NpdGlvbj4gRGVidWdnZXJQYXVzZVBvc2l0aW9uczo6YnJlYWtwb2ludExvY2F0aW9uRm9yTGlu
ZUNvbHVtbgogICAgIC8vIElmIHRoZSBpbnB1dCB3YXMgbGluZSAzLCBnbyBpbnRvIHRoZSBmdW5j
dGlvbiB0byBwYXVzZSBvbiBsaW5lIDQuCiAKICAgICAvLyBWYWxpZCBwYXVzZSBsb2NhdGlvbi4g
VXNlIGl0LgotICAgIERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYgZmlyc3RTbGlkZVBvc2l0aW9uID0g
bV9wb3NpdGlvbnNbc3RhcnRdOworICAgIERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYgZmlyc3RTbGlk
ZVBvc2l0aW9uID0gKml0OwogICAgIGlmIChmaXJzdFNsaWRlUG9zaXRpb24udHlwZSAhPSBEZWJ1
Z2dlclBhdXNlUG9zaXRpb25UeXBlOjpFbnRlcikKICAgICAgICAgcmV0dXJuIE9wdGlvbmFsPEpT
VGV4dFBvc2l0aW9uPihmaXJzdFNsaWRlUG9zaXRpb24ucG9zaXRpb24pOwogCkBAIC05NCw4ICs4
MCw4IEBAIE9wdGlvbmFsPEpTVGV4dFBvc2l0aW9uPiBEZWJ1Z2dlclBhdXNlUG9zaXRpb25zOjpi
cmVha3BvaW50TG9jYXRpb25Gb3JMaW5lQ29sdW1uCiAgICAgLy8gSWYgZW50cnlTdGFja1NpemUg
aXMgPiAwIHdlIGFyZSBza2lwcGluZyBmdW5jdGlvbnMuCiAgICAgYm9vbCBzaG91bGRFbnRlckZ1
bmN0aW9uID0gZmlyc3RTbGlkZVBvc2l0aW9uLnBvc2l0aW9uLmxpbmUgPT0gbGluZTsKICAgICBp
bnQgZW50cnlTdGFja1NpemUgPSBzaG91bGRFbnRlckZ1bmN0aW9uID8gMCA6IDE7Ci0gICAgZm9y
ICh1bnNpZ25lZCBpID0gc3RhcnQgKyAxOyBpIDwgbV9wb3NpdGlvbnMuc2l6ZSgpOyArK2kpIHsK
LSAgICAgICAgRGVidWdnZXJQYXVzZVBvc2l0aW9uJiBzbGlkZVBvc2l0aW9uID0gbV9wb3NpdGlv
bnNbaV07CisgICAgZm9yICgrK2l0OyBpdCAhPSBtX3Bvc2l0aW9ucy5lbmQoKTsgKytpdCkgewor
ICAgICAgICBEZWJ1Z2dlclBhdXNlUG9zaXRpb24mIHNsaWRlUG9zaXRpb24gPSAqaXQ7CiAgICAg
ICAgIEFTU0VSVChlbnRyeVN0YWNrU2l6ZSA+PSAwKTsKIAogICAgICAgICAvLyBBbHJlYWR5IHNr
aXBwaW5nIGZ1bmN0aW9ucy4KQEAgLTEyNCw2ICsxMTAsOCBAQCBPcHRpb25hbDxKU1RleHRQb3Np
dGlvbj4gRGVidWdnZXJQYXVzZVBvc2l0aW9uczo6YnJlYWtwb2ludExvY2F0aW9uRm9yTGluZUNv
bHVtbgogdm9pZCBEZWJ1Z2dlclBhdXNlUG9zaXRpb25zOjpzb3J0KCkKIHsKICAgICBzdGQ6OnNv
cnQobV9wb3NpdGlvbnMuYmVnaW4oKSwgbV9wb3NpdGlvbnMuZW5kKCksIFtdIChjb25zdCBEZWJ1
Z2dlclBhdXNlUG9zaXRpb24mIGEsIGNvbnN0IERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYgYikgewor
ICAgICAgICBpZiAoYS5wb3NpdGlvbi5vZmZzZXQgPT0gYi5wb3NpdGlvbi5vZmZzZXQpCisgICAg
ICAgICAgICByZXR1cm4gYS50eXBlIDwgYi50eXBlOwogICAgICAgICByZXR1cm4gYS5wb3NpdGlv
bi5vZmZzZXQgPCBiLnBvc2l0aW9uLm9mZnNldDsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclBhcnNlRGF0YS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyUGFyc2VEYXRhLmgKaW5kZXggOTY1OWIx
ZDAyODNmM2RmOWNjOTVlN2E5M2MzYzY5ZThkMjNhMmRjMS4uNTY1OWJmODI3OGM1NWNhMjMxY2E2
N2ZiZTc3OWE2NmM1ZjIyN2Y0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyUGFyc2VEYXRhLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyUGFyc2VEYXRhLmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiBjbGFzcyBTb3VyY2VQcm92aWRlcjsKIGNsYXNzIFZNOwogCi1lbnVtIGNsYXNzIERlYnVn
Z2VyUGF1c2VQb3NpdGlvblR5cGUgeyBFbnRlciwgTGVhdmUsIFBhdXNlIH07CitlbnVtIGNsYXNz
IERlYnVnZ2VyUGF1c2VQb3NpdGlvblR5cGUgeyBFbnRlciwgUGF1c2UsIExlYXZlIH07CiBzdHJ1
Y3QgRGVidWdnZXJQYXVzZVBvc2l0aW9uIHsKICAgICBEZWJ1Z2dlclBhdXNlUG9zaXRpb25UeXBl
IHR5cGU7CiAgICAgSlNUZXh0UG9zaXRpb24gcG9zaXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpzb24gYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpzb24KaW5kZXggMTVh
YmQzNjI2NDBiYTdkYWM2ZjY2ODIyZmFlMjEyYTVhYTk5ODRmZS4uMTZkNDExMGZkMmQzMzUwODQy
Yzk2Y2FmYzg2NGFhNmI2ZTM4Nzk1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9wcm90b2NvbC9EZWJ1Z2dlci5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbgpAQCAtMjgsOCArMjgsOCBAQAog
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGluIHRoZSBzb3VyY2UgY29kZS4i
LAogICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJzY3JpcHRJZCIsICIkcmVmIjogIlNjcmlwdElkIiwgImRlc2NyaXB0aW9uIjogIlNjcmlwdCBp
ZGVudGlmaWVyIGFzIHJlcG9ydGVkIGluIHRoZSA8Y29kZT5EZWJ1Z2dlci5zY3JpcHRQYXJzZWQ8
L2NvZGU+LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImxpbmVOdW1iZXIiLCAidHlw
ZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIkxpbmUgbnVtYmVyIGluIHRoZSBzY3JpcHQu
IiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29sdW1uTnVtYmVyIiwgInR5cGUiOiAi
aW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDb2x1bW4gbnVtYmVy
IGluIHRoZSBzY3JpcHQuIiB9CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsaW5lTnVtYmVy
IiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJMaW5lIG51bWJlciBpbiB0aGUg
c2NyaXB0ICgwLWJhc2VkKS4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb2x1bW5O
dW1iZXIiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIkNvbHVtbiBudW1iZXIgaW4gdGhlIHNjcmlwdCAoMC1iYXNlZCkuIiB9CiAgICAgICAgICAg
ICBdCiAgICAgICAgIH0sCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1BhcnNlclRva2Vucy5oCmluZGV4IDcyMDY0YjkyODQ4MTY2ZjZkZTJiMjNmOGEzZjU4Yzk4MWI3
Njc5ZTkuLjdhZDBiOTkyNzRjYmI0ZTM5MDlhY2M3YmNkNzg4MjM3YTc3YmFjZTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaApAQCAtMjE3LDYgKzIxNyw4
IEBAIHN0cnVjdCBKU1RleHRQb3NpdGlvbiB7CiAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90
aGVyKTsKICAgICB9CiAKKyAgICBpbnQgY29sdW1uKCkgY29uc3QgeyByZXR1cm4gb2Zmc2V0IC0g
bGluZVN0YXJ0T2Zmc2V0OyB9CisKICAgICBpbnQgbGluZSB7IDAgfTsKICAgICBpbnQgb2Zmc2V0
IHsgMCB9OwogICAgIGludCBsaW5lU3RhcnRPZmZzZXQgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAK
aW5kZXggNzcyZWM3NDY5MTNjYzY4ZGI5OWVhYmFjOTEzMTEzOWU5Yjc0OGZmYS4uYzI2YWNjYmYx
MzYyMTk2MjNkZGUzZjVkMmFmODc3MThkMzcxZTk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcApAQCAt
ODEsMTggKzgxLDM0IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUX0FSRyhtZXNzYWdlLCAhbWVz
c2FnZS5pc0VtcHR5KCkpOwogCiAgICAgICAgIG1fbWVzc2FnZXMuYXBwZW5kKG1lc3NhZ2UpOwot
ICAgICAgICBpZiAoIW1fdGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1fdGltZXIuc3Rh
cnRPbmVTaG90KDBfcyk7CisgICAgICAgIHNjaGVkdWxlT25lU2hvdCgpOwogICAgIH0KIAogICAg
IHZvaWQgcmVzZXQoKQogICAgIHsKICAgICAgICAgbV9tZXNzYWdlcy5jbGVhcigpOwotICAgICAg
ICBtX3RpbWVyLnN0b3AoKTsKICAgICAgICAgbV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxlciA9IG51
bGxwdHI7CiAgICAgfQogCi0gICAgdm9pZCB0aW1lckZpcmVkKCkKK3ByaXZhdGU6CisgICAgSW5z
cGVjdG9yQmFja2VuZERpc3BhdGNoVGFzayhJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0ZWRQ
YWdlQ29udHJvbGxlcikKKyAgICAgICAgOiBtX2luc3BlY3RlZFBhZ2VDb250cm9sbGVyKGluc3Bl
Y3RlZFBhZ2VDb250cm9sbGVyKQorICAgIHsKKyAgICAgICAgQVNTRVJUX0FSRyhpbnNwZWN0ZWRQ
YWdlQ29udHJvbGxlciwgaW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIpOworICAgIH0KKworICAgIHZv
aWQgc2NoZWR1bGVPbmVTaG90KCkKKyAgICB7CisgICAgICAgIGlmIChtX2hhc1Rhc2tJblF1ZXVl
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2hhc1Rhc2tJblF1ZXVlID0gdHJ1ZTsK
KyAgICAgICAgUnVuTG9vcDo6Y3VycmVudCgpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgICAgIG1faGFzVGFza0luUXVldWUgPSBmYWxz
ZTsKKyAgICAgICAgICAgIGRpc3BhdGNoT25lTWVzc2FnZSgpOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICB2b2lkIGRpc3BhdGNoT25lTWVzc2FnZSgpCiAgICAgewogICAgICAgICBBU1NFUlQo
bV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxlcik7CiAKQEAgLTEwNCwyMCArMTIwLDEyIEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXItPmRpc3BhdGNoTWVzc2Fn
ZUZyb21Gcm9udGVuZChtX21lc3NhZ2VzLnRha2VGaXJzdCgpKTsKIAogICAgICAgICBpZiAoIW1f
bWVzc2FnZXMuaXNFbXB0eSgpICYmIG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIpCi0gICAgICAg
ICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3Rl
ZFBhZ2VDb250cm9sbGVyKQotICAgICAgICA6IG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIoaW5z
cGVjdGVkUGFnZUNvbnRyb2xsZXIpCi0gICAgICAgICwgbV90aW1lcigqdGhpcywgJkluc3BlY3Rv
ckJhY2tlbmREaXNwYXRjaFRhc2s6OnRpbWVyRmlyZWQpCi0gICAgewotICAgICAgICBBU1NFUlRf
QVJHKGluc3BlY3RlZFBhZ2VDb250cm9sbGVyLCBpbnNwZWN0ZWRQYWdlQ29udHJvbGxlcik7Cisg
ICAgICAgICAgICBzY2hlZHVsZU9uZVNob3QoKTsKICAgICB9CiAKICAgICBJbnNwZWN0b3JDb250
cm9sbGVyKiBtX2luc3BlY3RlZFBhZ2VDb250cm9sbGVyIHsgbnVsbHB0ciB9OwotICAgIFRpbWVy
IG1fdGltZXI7CiAgICAgRGVxdWU8U3RyaW5nPiBtX21lc3NhZ2VzOworICAgIGJvb2wgbV9oYXNU
YXNrSW5RdWV1ZSB7IGZhbHNlIH07CiB9OwogCiBTdHJpbmcgSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRMb2NhbDo6U2V0dGluZ3M6OmdldFByb3BlcnR5KGNvbnN0IFN0cmluZyYpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTll
ZmQ1ZGUwZmQ0MDZkZTZlYjJmMWJmNjZlNWJmZmNiMzBmNzE5Mi4uNmE1MDgwY2FiNGM4ZTdhOTlj
NzRjZWQ3MTg4ZGRmNWVlOTY5NGYxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTA5LTIw
ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IHRlc3RzIHVuZGVyIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlciBhcmUg
Zmxha3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
NzEzMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTg0NjEzMzU+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIGluc3BlY3Rvci9kZWJ1Z2dl
ciB0ZXN0cyBvbiBHVEsuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2lu
dHMvcmVzb2x2ZWQtZHVtcC1hbGwtcGF1c2UtbG9jYXRpb25zLWV4cGVjdGVkLnR4dDogUmViYXNl
bGluZWQgdGhlIHRlc3QKKyAgICAgICAgYWZ0ZXIgY2hhbmdlcyBpbiB0aGUgYnJlYWtwb2ludCBy
ZXNvbHV0aW9uIGNvZGUuIE5vdyB0aGUgb3V0cHV0IG9uIEdUSyBpcyB0aGUgc2FtZSBhcyBvbiBN
YWMuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTktMDkt
MTkgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBIVE1MVmlkZW9F
bGVtZW50IHdpdGggYSBicm9rZW4gcG9zdGVyIGltYWdlIHdpbGwgdGFrZSBzcXVhcmUgZGltZW5z
aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2lu
dHMvcmVzb2x2ZWQtZHVtcC1hbGwtcGF1c2UtbG9jYXRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50cy9yZXNvbHZlZC1kdW1wLWFsbC1w
YXVzZS1sb2NhdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IDYxYmIzZGMwYjcyOWExYmQ2ZDQ3MGRm
NmE3ZWI2NGQ1OTdlY2ExNGMuLmNjMDhkOTQ5Y2ViNDNmOTU5ZmUyNzhiNmE2ZGQxMDQ5MTk4ZTA4
NDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50
cy9yZXNvbHZlZC1kdW1wLWFsbC1wYXVzZS1sb2NhdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50cy9yZXNvbHZlZC1kdW1wLWFs
bC1wYXVzZS1sb2NhdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCBQQVVT
RVMgQVQ6IDg5OjcKICAgICAgOTIgICAgICAgIHgKIAogSU5TRVJUSU5HIEFUOiA4OTo4Ci1QQVVT
RVMgQVQ6IDk0OjAKK1BBVVNFUyBBVDogOTg6MAogICAgICA4NiAgICAKICAgICAgODcgICAgeCA9
PiB4OwogICAgICA4OCAgICAoKSA9PiAxOwpAQCAtMjE3NSwxMCArMjE3NSwxNCBAQCBQQVVTRVMg
QVQ6IDk0OjAKICAgICAgOTEgICAgKHgpID0+IHsKICAgICAgOTIgICAgICAgIHgKICAgICAgOTMg
ICAgfTsKLSA9PiAgOTQgICAgfCgpID0+IHsKKyAgICAgOTQgICAgKCkgPT4gewogICAgICA5NSAg
ICAgICAgdmFyIHg7CiAgICAgIDk2ICAgIH07CiAgICAgIDk3ICAgIAorID0+ICA5OCAgICB8dmFy
IGZPYmogPSB7CisgICAgIDk5ICAgICAgICBmMTogZnVuY3Rpb24oKSB7CisgICAgMTAwICAgICAg
ICAgICAgdmFyIHg7CisgICAgMTAxICAgICAgICB9LAogCiBJTlNFUlRJTkcgQVQ6IDkwOjAKIFBB
VVNFUyBBVDogOTA6MApAQCAtMjI0Miw2ICsyMjQ2LDE2IEBAIFBBVVNFUyBBVDogOTM6MAogICAg
ICA5NSAgICAgICAgdmFyIHg7CiAgICAgIDk2ICAgIH07CiAKK0lOU0VSVElORyBBVDogOTQ6MAor
UEFVU0VTIEFUOiA5NDowCisgICAgIDkxICAgICh4KSA9PiB7CisgICAgIDkyICAgICAgICB4Cisg
ICAgIDkzICAgIH07CistPT4gIDk0ICAgIHwoKSA9PiB7CisgICAgIDk1ICAgICAgICB2YXIgeDsK
KyAgICAgOTYgICAgfTsKKyAgICAgOTcgICAgCisKIElOU0VSVElORyBBVDogOTQ6MQogUEFVU0VT
IEFUOiA5NTo0CiAgICAgIDkxICAgICh4KSA9PiB7CkBAIC0yMjY0LDE4ICsyMjc4LDYgQEAgUEFV
U0VTIEFUOiA5NjowCiAgICAgIDk4ICAgIHZhciBmT2JqID0gewogICAgICA5OSAgICAgICAgZjE6
IGZ1bmN0aW9uKCkgewogCi1JTlNFUlRJTkcgQVQ6IDk2OjEKLVBBVVNFUyBBVDogOTg6MAotICAg
ICA5MyAgICB9OwotICAgICA5NCAgICAoKSA9PiB7Ci0gICAgIDk1ICAgICAgICB2YXIgeDsKLSAt
PiAgOTYgICAgfSM7Ci0gICAgIDk3ICAgIAotID0+ICA5OCAgICB8dmFyIGZPYmogPSB7Ci0gICAg
IDk5ICAgICAgICBmMTogZnVuY3Rpb24oKSB7Ci0gICAgMTAwICAgICAgICAgICAgdmFyIHg7Ci0g
ICAgMTAxICAgICAgICB9LAotCiBJTlNFUlRJTkcgQVQ6IDk5OjAKIFBBVVNFUyBBVDogMTAwOjgK
ICAgICAgOTYgICAgfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggNmUxOWUxNTEyM2U0NGFiNzcwMjhjNWRmMjY0OTQyMGE3ZjYyMzllZC4uOWRhYWE4N2Fm
MmFjNTgzZTgwMDhiYWY3YWVmMjU0MmJjMzAwYTgzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIzMTEsMjEgKzIzMTEsOCBAQCB3ZWJraXQub3JnL2Iv
MTE2OTU3IG1lZGlhL3RyYWNrL3RyYWNrLWF1dG9tYXRpYy1zdWJ0aXRsZXMuaHRtbCBbIFRpbWVv
dXQgXQogCiB3ZWJraXQub3JnL2IvMTIwNjgyIGluc3BlY3Rvci9wYWdlL2FyY2hpdmUuaHRtbCBb
IFRpbWVvdXQgXQogCit3ZWJraXQub3JnL2IvMTQ3NTE4IGluc3BlY3Rvci9kZWJ1Z2dlci9uZXN0
ZWQtaW5zcGVjdG9ycy5odG1sIFsgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvMTIyNTcxIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL2RvbS9jcm9zcy1kb21haW4taW5zcGVjdGVkLW5vZGUtYWNjZXNzLmh0
bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1
NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1sIFsgVGlt
ZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJy
ZWFrcG9pbnQtb3B0aW9ucy1leGNlcHRpb24uaHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQu
b3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1hbGwu
aHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1
Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1ub25lLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Vi
a2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3Qu
aHRtbCBbIFRpbWVvdXQgUGFzcyBDcmFzaCBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rv
ci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51ZS5odG1sIFsgVGltZW91dCBQYXNz
IF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNl
cHRpb25zLXVuY2F1Z2h0Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3
MSBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hY3Rpb25zLmh0bWwgWyBGYWlsdXJl
IFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9j
YWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9y
Zy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4uaHRtbCBb
IFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9z
ZXRCcmVha3BvaW50LWNvbmRpdGlvbi5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcv
Yi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQuaHRtbCBbIFRpbWVv
dXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZy
YW1lLXRoaXMtc3RyaWN0Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQogd2Via2l0Lm9yZy9iLzEyMjU3
MSBpbnNwZWN0b3IvZG9tL3JlcXVlc3QtY2hpbGQtbm9kZXMtZGVwdGguaHRtbCBbIFRpbWVvdXQg
UGFzcyBdCiB3ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kb20vZm9jdXMuaHRtbCBbIEZh
aWx1cmUgVGltZW91dCBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL3J1bnRp
bWUvZ2V0UHJvcGVydGllcy5odG1sIFsgVGltZW91dCBQYXNzIENyYXNoIF0KQEAgLTIzNzAsNyAr
MjM1Nyw2IEBAIHdlYmtpdC5vcmcvYi8xMzY2NzQgbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRl
cmluZy13aXRoLXBhZGRpbmcuaHRtbCBbIFRpbWVvdXQKIAogd2Via2l0Lm9yZy9iLzEzNzY5OCBt
ZWRpYS92aWRlby1jb250cm9scy1kcmFnLmh0bWwgWyBUaW1lb3V0IF0KIAotd2Via2l0Lm9yZy9i
LzEzNzEzMSBpbnNwZWN0b3IvZGVidWdnZXIgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNDc1MTgg
aW5zcGVjdG9yL2RvbSBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE0NzUxOCBpbnNwZWN0b3IvbW9k
ZWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNDc1MTggaW5zcGVjdG9yL3RpbWVsaW5lIFsgU2tp
cCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379517</attachid>
            <date>2019-09-24 17:19:45 -0700</date>
            <delta_ts>2019-09-25 10:59:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137131-20190924171945.patch</filename>
            <type>text/plain</type>
            <size>25187</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MDRlODc5MTExZmRmNjE2OTRlYzhhNzM3OGYxOWZhZmZkNDVlZjliLi5mODkxZGFhZTg5YjA2OTBk
NDVmMDJhZDhhNjBhMWFjMDcxZjRlNjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOS0wOS0yNCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB0ZXN0cyB1bmRlciBMYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIgYXJlIGZsYWt5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzcxMzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE4NDYx
MzM1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENo
YW5nZWQgYnJlYWtwb2ludCByZXNvbHV0aW9uIGxvZ2ljIHRvIG1ha2UgaXQgY29zaXN0ZW50IGFj
cm9zcyBwbGF0Zm9ybXMgYW5kCisgICAgICAgIGJldHRlciBoYW5kbGUgdGhlIGNhc2Ugd2hlbiB0
aGVyZSBhcmUgc2V2ZXJhbCBEZWJ1Z2dlclBhdXNlUG9zaXRpb25zIGF0IHRoZSBzYW1lCisgICAg
ICAgIG9mZnNldCAoYnV0IHdpdGggZGlmZmVyZW50IHR5cGVzKS4KKworICAgICAgICAqIGJ5dGVj
b2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6aGFzT3BEZWJ1Z0Zv
ckxpbmVBbmRDb2x1bW4pOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAg
ICAqIGRlYnVnZ2VyL0JyZWFrcG9pbnQuaDogUmVtb3ZlZCBCcmVha3BvaW50Ojp1bnNwZWNpZmll
ZENvbHVtbiwgT3B0aW9uYWw8dW5zaWduZWQ+CisgICAgICAgIGlzIHVzZWQgaW5zdGVhZCB3aGVy
ZSBuZWVkZWQuIEl0IGFsbG93cyB0byBhdm9pZCBjb2RlIHRoYXQgcmVsaWVzIG9uIChpbnQpVUlO
VF9NQVggPT4gLTEKKyAgICAgICAgY29udmVyc2lvbi4KKworICAgICAgICAqIGRlYnVnZ2VyL0Rl
YnVnZ2VyLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6OnJlc29sdmVCcmVha3BvaW50KTog
Y2xhcmlmaWVkIHRoYXQgaW4gdGhlIG1hcCBjb2x1bW5zIGFyZSAwLWJhc2VkLgorICAgICAgICAq
IGRlYnVnZ2VyL0RlYnVnZ2VyUGFyc2VEYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXJQ
YXVzZVBvc2l0aW9uczo6YnJlYWtwb2ludExvY2F0aW9uRm9yTGluZUNvbHVtbik6IHJlcGxhY2Vk
IGN1c3RvbQorICAgICAgICBiaW5hcnkgc2VhcmNoIHdpdGggc3RkOjpsb3dlcl9ib3VuZC4gSWYg
dGhlcmUgYXJlIHNldmVyYWwgcGF1c2UgcG9zaXRpb25zIGF0IHRoZQorICAgICAgICBzYW1lIG9m
ZnNldCB0aGV5IHdpbGwgYmUgc29ydGVkIGJ5IHRoZSB0eXBlIGFuZCB0aGUgYWxnb3JpdGhtIGlz
IGd1YXJhbnRlZWQgdG8gc2VlCisgICAgICAgIGxlZnRtb3N0IG9uZSBmaXJzdC4KKworICAgICAg
ICAoSlNDOjpEZWJ1Z2dlclBhdXNlUG9zaXRpb25zOjpzb3J0KTogdXNlIHR5cGUgYXMgc2Vjb25k
YXJ5IG9yZGVyaW5nIGNvbXBvbmVudC4KKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlclBhcnNl
RGF0YS5oOiBSZWFycmFuZ2VkIHR5cGUgY29uc3RhbnRzIHNvIHRoYXQgRW50ZXIgPCBQYXVzZSA8
IExlYXZlCisgICAgICAgIHRoaXMgY2hhbmdlIGFsb25nIHdpdGggc29ydGluZyBieSB0eXBlIHNo
b3VsZCBndWFyYW50ZWUgdGhhdCBpbiBjYXNlIG9mIHNldmVyYWwgcGF1c2UKKyAgICAgICAgcG9z
aXRpb25zIGF0IHRoZSBzYW1lIGxpbmUgRW50ZXIgZ29lcyBiZWZvcmUgUGF1c2UgYmVmb3JlIExl
YXZlIGFuZCB0aGUgYnJlYWtwb2ludAorICAgICAgICByZXNvbHV0aW9uIHdpbGwgeWllbGQgcmVz
dWx0IHNpbWlsYXIgdG8gdGhhdCB3aGVuIGVhY2ggcGF1c2UgbG9jYXRpb25zIGhhcyBkaWZmZXJl
bnQKKyAgICAgICAgcG9zaXRpb24uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvRGVi
dWdnZXIuanNvbjogY2xhcmlmaWVkIHRoYXQgcG9zaXRpb25zIGFyZSAwLWJhc2VkLgorICAgICAg
ICAqIHBhcnNlci9QYXJzZXJUb2tlbnMuaDoKKyAgICAgICAgKEpTQzo6SlNUZXh0UG9zaXRpb246
OmNvbHVtbiBjb25zdCk6IGFkZGVkIGhlbHBlciBtZXRob2QgZm9yIGNvbXB1dGluZyBjb2x1bW4u
CisKIDIwMTktMDktMTkgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IFJlZmFjdG9yaW5nOiBmaXggYnJva2VuIGluZGVudGF0aW9uIGluIEpTTm9uRGVzdHJ1Y3RpYmxl
UHJveHkuaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3M2E3YmRiMjIzYjI4OGU2YWE2NTZlZTUwODM0YTE5YjQ0
MTAzMWE2Li5kNGFlNjFjZmIwNzc5MWRlOTBkZGJhZDZhYTlmYWFjOTk1MWVkN2VjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTktMDktMjAgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5
c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdGVzdHMgdW5kZXIgTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyIGFyZSBmbGFreQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MTMxCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xODQ2MTMzNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBGaXggZGVidWdnZXIgdGVzdHMgb24gR1RLLiBBbGwgdGVzdHMgdGhhdCBwYXVzZSBv
biBicmVha3BvaW50IGRpZG4ndCB3b3JrIGJlY2F1c2UKKyAgICAgICAgaW4gbGF5b3V0IHRlc3Rz
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwgd2FzIHVzaW5nIFRpbWVyIHRvIGRpc3BhdGNo
IGNvbW1hbmRzCisgICAgICAgIHNlbnQgZnJvbSB0aGUgbG9jYWwgZnJvbnQtZW5kIHBhZ2UgdG8g
dGhlIGluc3BlY3RlZCBvbmUuIFdoZW4gcGF1c2VkIGluc2lkZSBhIHNjcmlwdAorICAgICAgICB0
cmlnZ2VyZWQgYnkgdGhlIGZyb250LWVuZCBuZXN0ZWQgdGltZXIgZXZlbnQgd291bGQgYmUgc2No
ZWR1bGVkIGJ1dCBuZXZlciBmaXJlZAorICAgICAgICBiZWNhdXNlIGluIGdsaWIgaW1wbGVtZW50
YXRpb24gb2YgUnVuTG9vcDo6VGltZXJCYXNlIHVzZXMgZXZlbnQgc291cmNlIHdoaWNoIGRvZXNu
J3QKKyAgICAgICAgYWxsb3cgcmVjdXJzaW9uIChnX3NvdXJjZV9zZXRfY2FuX3JlY3Vyc2UgaXMg
bm90IGNhbGxlZCBvbiB0aGUgc291cmNlKSwgc28gZGlzcGF0Y2hpbmcKKyAgICAgICAgRGVidWdn
ZXIucmVzdW1lIGNvbW1hbmQgZGlkbid0IHdvcmsgd2hlbiBwYXVzZWQgaW5zaWRlIGFub3RoZXIg
aW5zcGVjdG9yIGNvbW1hbmQgKGUuZy4KKyAgICAgICAgZXZhbCkuIFJ1bkxvb3AgaXRzZWxmIHVz
ZXMgZXZlbnQgc291cmNlIHdoaWNoIGRvZXMgYWxsb3cgcmVjdXJzaW9uLiBTbyBpbnN0ZWFkIG9m
IHVzaW5nCisgICAgICAgIGEgdGltZXIgZm9yIGFzeW5jaHJvbm91cyBjb21tYW5kIGRpc3BhdGNo
aW5nIHdpdGggZGVsYXk9MCB3ZSBub3cgc2NoZWR1bGUgYSB0YXNrIGluCisgICAgICAgIFJ1bkxv
b3AncyBxdWV1ZS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRh
c2s6OmRpc3BhdGNoKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tlbmREaXNwYXRj
aFRhc2s6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tlbmREaXNwYXRj
aFRhc2s6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRhc2spOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoVGFzazo6c2NoZWR1bGVPbmVTaG90KTogZW5zdXJlcyB0
aGF0IHRoZXJlIGlzIG9uZSBpbnNwZWN0b3IKKyAgICAgICAgZGlzcGF0Y2ggdGFzayBpbiB0aGUg
cXVldWUuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrOjpk
aXNwYXRjaE9uZU1lc3NhZ2UpOiB0aGlzIGlzIG1vc3RseSB0aGUgc2FtZSBiZWhhdmlvcgorICAg
ICAgICBhcyB3YXMgd2l0aCB0aW1lckZpcmVkLCB3ZSBzaG91bGQgYmUgYWJsZSB0byBkaXNwYXRj
aCBhbGwgYWNjdW11bGF0ZWQgbWVzc2FnZXMgZnJvbSB0aGUgcXVldWUKKyAgICAgICAgaW4gb25l
IGJhdGNoIGJ1dCBmb3Igbm93IEknZCBsaWtlIHRvIGtlZXAgaXQgb25lIHBlciBpdGVyYXRpb24u
CisKIDIwMTktMDktMTkgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAg
ICBIVE1MVmlkZW9FbGVtZW50IHdpdGggYSBicm9rZW4gcG9zdGVyIGltYWdlIHdpbGwgdGFrZSBz
cXVhcmUgZGltZW5zaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suY3BwCmluZGV4IDViNGFiMTUxZDZlOTJkYjNiYjZiMTA2NGI5ODJkNjA5YjMwZDhjMmYuLjNh
MDFiMjRhMzZhYWU0OWE2OTJkYzBlN2RlY2I4YTBhZTE1ODhjMWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0xODY1LDcgKzE4NjUsNyBAQCB2
b2lkIENvZGVCbG9jazo6ZXhwcmVzc2lvblJhbmdlRm9yQnl0ZWNvZGVPZmZzZXQodW5zaWduZWQg
Ynl0ZWNvZGVPZmZzZXQsIGludCYgZAogICAgIGxpbmUgKz0gb3duZXJFeGVjdXRhYmxlKCktPmZp
cnN0TGluZSgpOwogfQogCi1ib29sIENvZGVCbG9jazo6aGFzT3BEZWJ1Z0ZvckxpbmVBbmRDb2x1
bW4odW5zaWduZWQgbGluZSwgdW5zaWduZWQgY29sdW1uKQorYm9vbCBDb2RlQmxvY2s6Omhhc09w
RGVidWdGb3JMaW5lQW5kQ29sdW1uKHVuc2lnbmVkIGxpbmUsIE9wdGlvbmFsPHVuc2lnbmVkPiBj
b2x1bW4pCiB7CiAgICAgY29uc3QgSW5zdHJ1Y3Rpb25TdHJlYW0mIGluc3RydWN0aW9uU3RyZWFt
ID0gaW5zdHJ1Y3Rpb25zKCk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBpdCA6IGluc3RydWN0aW9u
U3RyZWFtKSB7CkBAIC0xODc0LDcgKzE4NzQsNyBAQCBib29sIENvZGVCbG9jazo6aGFzT3BEZWJ1
Z0ZvckxpbmVBbmRDb2x1bW4odW5zaWduZWQgbGluZSwgdW5zaWduZWQgY29sdW1uKQogICAgICAg
ICAgICAgdW5zaWduZWQgb3BEZWJ1Z0xpbmU7CiAgICAgICAgICAgICB1bnNpZ25lZCBvcERlYnVn
Q29sdW1uOwogICAgICAgICAgICAgZXhwcmVzc2lvblJhbmdlRm9yQnl0ZWNvZGVPZmZzZXQoaXQu
b2Zmc2V0KCksIHVudXNlZCwgdW51c2VkLCB1bnVzZWQsIG9wRGVidWdMaW5lLCBvcERlYnVnQ29s
dW1uKTsKLSAgICAgICAgICAgIGlmIChsaW5lID09IG9wRGVidWdMaW5lICYmIChjb2x1bW4gPT0g
QnJlYWtwb2ludDo6dW5zcGVjaWZpZWRDb2x1bW4gfHwgY29sdW1uID09IG9wRGVidWdDb2x1bW4p
KQorICAgICAgICAgICAgaWYgKGxpbmUgPT0gb3BEZWJ1Z0xpbmUgJiYgKCFjb2x1bW4uaGFzVmFs
dWUoKSB8fCBjb2x1bW4gPT0gb3BEZWJ1Z0NvbHVtbikpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q29kZUJsb2NrLmgKaW5kZXggYjFhODJiMzM2N2FlYzFhYjYxZjVlOGZiOGY5MTEyYTNmMzc3ZDI5
Ny4uODhjZmFlNGVlOTIxODlmYTBlMDliY2U4M2M0MGUxNDVhZGY1Y2Y5NCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaApAQCAtNzg3LDcgKzc4Nyw3IEBAIHB1
YmxpYzoKICAgICB1bnNpZ25lZCBmcmFtZVJlZ2lzdGVyQ291bnQoKTsKICAgICBpbnQgc3RhY2tQ
b2ludGVyT2Zmc2V0KCk7CiAKLSAgICBib29sIGhhc09wRGVidWdGb3JMaW5lQW5kQ29sdW1uKHVu
c2lnbmVkIGxpbmUsIHVuc2lnbmVkIGNvbHVtbik7CisgICAgYm9vbCBoYXNPcERlYnVnRm9yTGlu
ZUFuZENvbHVtbih1bnNpZ25lZCBsaW5lLCBPcHRpb25hbDx1bnNpZ25lZD4gY29sdW1uKTsKIAog
ICAgIGJvb2wgaGFzRGVidWdnZXJSZXF1ZXN0cygpIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdnZXJS
ZXF1ZXN0czsgfQogICAgIHZvaWQqIGRlYnVnZ2VyUmVxdWVzdHNBZGRyZXNzKCkgeyByZXR1cm4g
Jm1fZGVidWdnZXJSZXF1ZXN0czsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0JyZWFrcG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9C
cmVha3BvaW50LmgKaW5kZXggYmI4ZjBkZGJiOWQ0ZjcwNjNhNjhhMTQ3ODc1MWUzOTE0MzE5Njcw
NC4uMTQxOGUxNTk4YjMwYTFiMDU4MTRhYjhmZmFkMTVhMjMzNGNiZDJhZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0JyZWFrcG9pbnQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIvQnJlYWtwb2ludC5oCkBAIC01Nyw4ICs1Nyw2IEBAIHN0
cnVjdCBCcmVha3BvaW50IDogcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPEJyZWFrcG9pbnQ+
IHsKICAgICB1bnNpZ25lZCBoaXRDb3VudCB7IDAgfTsKICAgICBib29sIHJlc29sdmVkIHsgZmFs
c2UgfTsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgdW5zcGVjaWZpZWRDb2x1bW4g
PSBVSU5UX01BWDsKLQogcHJpdmF0ZToKICAgICBCcmVha3BvaW50KiBtX3ByZXY7CiAgICAgQnJl
YWtwb2ludCogbV9uZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVn
Z2VyL0RlYnVnZ2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
ci5jcHAKaW5kZXggYjBjZmRmODhiZDQxMzdjNDQ4OGEyMzAxMzE5MDNhNDIzYzY5N2RiNy4uYWQ1
MTZlZTdjYjU0ODNlY2RhNzI1OGJlMWE5NmFmMTJmNTIxMTk2NyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCkBAIC0yNjgsOSArMjY4LDYgQEAgdm9pZCBE
ZWJ1Z2dlcjo6dG9nZ2xlQnJlYWtwb2ludChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnJlYWtwb2lu
dCYgYnJlYWtwb2ludCwgQnIKICAgICBpZiAoYnJlYWtwb2ludC5zb3VyY2VJRCAhPSBzb3VyY2VJ
RCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdW5zaWduZWQgbGluZSA9IGJyZWFrcG9pbnQubGlu
ZTsKLSAgICB1bnNpZ25lZCBjb2x1bW4gPSBicmVha3BvaW50LmNvbHVtbjsKLQogICAgIHVuc2ln
bmVkIHN0YXJ0TGluZSA9IGV4ZWN1dGFibGUtPmZpcnN0TGluZSgpOwogICAgIHVuc2lnbmVkIHN0
YXJ0Q29sdW1uID0gZXhlY3V0YWJsZS0+c3RhcnRDb2x1bW4oKTsKICAgICB1bnNpZ25lZCBlbmRM
aW5lID0gZXhlY3V0YWJsZS0+bGFzdExpbmUoKTsKQEAgLTI3OCwxMiArMjc1LDE0IEBAIHZvaWQg
RGVidWdnZXI6OnRvZ2dsZUJyZWFrcG9pbnQoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJyZWFrcG9p
bnQmIGJyZWFrcG9pbnQsIEJyCiAKICAgICAvLyBJbnNwZWN0b3IgYnJlYWtwb2ludCBsaW5lIGFu
ZCBjb2x1bW4gdmFsdWVzIGFyZSB6ZXJvLWJhc2VkIGJ1dCB0aGUgZXhlY3V0YWJsZQogICAgIC8v
IGFuZCBDb2RlQmxvY2sgbGluZSBhbmQgY29sdW1uIHZhbHVlcyBhcmUgb25lLWJhc2VkLgotICAg
IGxpbmUgKz0gMTsKLSAgICBjb2x1bW4gPSBjb2x1bW4gPyBjb2x1bW4gKyAxIDogQnJlYWtwb2lu
dDo6dW5zcGVjaWZpZWRDb2x1bW47CisgICAgdW5zaWduZWQgbGluZSA9IGJyZWFrcG9pbnQubGlu
ZSArIDE7CisgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGNvbHVtbjsKKyAgICBpZiAoYnJlYWtwb2lu
dC5jb2x1bW4pCisgICAgICAgIGNvbHVtbiA9IGJyZWFrcG9pbnQuY29sdW1uICsgMTsKIAogICAg
IGlmIChsaW5lIDwgc3RhcnRMaW5lIHx8IGxpbmUgPiBlbmRMaW5lKQogICAgICAgICByZXR1cm47
Ci0gICAgaWYgKGNvbHVtbiAhPSBCcmVha3BvaW50Ojp1bnNwZWNpZmllZENvbHVtbikgeworICAg
IGlmIChjb2x1bW4uaGFzVmFsdWUoKSkgewogICAgICAgICBpZiAobGluZSA9PSBzdGFydExpbmUg
JiYgY29sdW1uIDwgc3RhcnRDb2x1bW4pCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlm
IChsaW5lID09IGVuZExpbmUgJiYgY29sdW1uID4gZW5kQ29sdW1uKQpAQCAtMzU5LDM1ICszNTgs
MzUgQEAgdm9pZCBEZWJ1Z2dlcjo6cmVzb2x2ZUJyZWFrcG9pbnQoQnJlYWtwb2ludCYgYnJlYWtw
b2ludCwgU291cmNlUHJvdmlkZXIqIHNvdXJjZVAKIAogICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93
ZWJraXQub3JnL2IvMTYyNzcxPiBXZWIgSW5zcGVjdG9yOiBBZG9wdCBUZXh0UG9zaXRpb24gaW4g
SW5zcGVjdG9yIHRvIGF2b2lkIG9uZUJhc2VkSW50L3plcm9CYXNlZEludCBhbWJpZ3VpdHkKICAg
ICAvLyBJbnNwZWN0b3IgYnJlYWtwb2ludCBsaW5lIGFuZCBjb2x1bW4gdmFsdWVzIGFyZSB6ZXJv
LWJhc2VkIGJ1dCB0aGUgZXhlY3V0YWJsZQotICAgIC8vIGFuZCBDb2RlQmxvY2sgbGluZSBhbmQg
Y29sdW1uIHZhbHVlcyBhcmUgb25lLWJhc2VkLgotICAgIHVuc2lnbmVkIGxpbmUgPSBicmVha3Bv
aW50LmxpbmUgKyAxOwotICAgIHVuc2lnbmVkIGNvbHVtbiA9IGJyZWFrcG9pbnQuY29sdW1uID8g
YnJlYWtwb2ludC5jb2x1bW4gOiBCcmVha3BvaW50Ojp1bnNwZWNpZmllZENvbHVtbjsKKyAgICAv
LyBhbmQgQ29kZUJsb2NrIGxpbmUgdmFsdWVzIGFyZSBvbmUtYmFzZWQgd2hpbGUgY29sdW1uIGlz
IHplcm8tYmFzZWQuCisgICAgaW50IGxpbmUgPSBicmVha3BvaW50LmxpbmUgKyAxOworICAgIGlu
dCBjb2x1bW4gPSBicmVha3BvaW50LmNvbHVtbjsKIAogICAgIC8vIEFjY291bnQgZm9yIGEgPHNj
cmlwdD4ncyBzdGFydCBwb3NpdGlvbiBvbiB0aGUgZmlyc3QgbGluZSBvbmx5LgotICAgIHVuc2ln
bmVkIHByb3ZpZGVyU3RhcnRMaW5lID0gc291cmNlUHJvdmlkZXItPnN0YXJ0UG9zaXRpb24oKS5t
X2xpbmUub25lQmFzZWRJbnQoKTsgLy8gT25lIGJhc2VkIHRvIG1hdGNoIHRoZSBhbHJlYWR5IGFk
anVzdGVkIGxpbmUuCi0gICAgdW5zaWduZWQgcHJvdmlkZXJTdGFydENvbHVtbiA9IHNvdXJjZVBy
b3ZpZGVyLT5zdGFydFBvc2l0aW9uKCkubV9jb2x1bW4uemVyb0Jhc2VkSW50KCk7IC8vIFplcm8g
YmFzZWQgc28gY29sdW1uIHplcm8gaXMgemVyby4KLSAgICBpZiAobGluZSA9PSBwcm92aWRlclN0
YXJ0TGluZSAmJiBjb2x1bW4gIT0gQnJlYWtwb2ludDo6dW5zcGVjaWZpZWRDb2x1bW4pIHsKKyAg
ICBpbnQgcHJvdmlkZXJTdGFydExpbmUgPSBzb3VyY2VQcm92aWRlci0+c3RhcnRQb3NpdGlvbigp
Lm1fbGluZS5vbmVCYXNlZEludCgpOyAvLyBPbmUgYmFzZWQgdG8gbWF0Y2ggdGhlIGFscmVhZHkg
YWRqdXN0ZWQgbGluZS4KKyAgICBpbnQgcHJvdmlkZXJTdGFydENvbHVtbiA9IHNvdXJjZVByb3Zp
ZGVyLT5zdGFydFBvc2l0aW9uKCkubV9jb2x1bW4uemVyb0Jhc2VkSW50KCk7IC8vIFplcm8gYmFz
ZWQgc28gY29sdW1uIHplcm8gaXMgemVyby4KKyAgICBpZiAobGluZSA9PSBwcm92aWRlclN0YXJ0
TGluZSAmJiBicmVha3BvaW50LmNvbHVtbikgewogICAgICAgICBBU1NFUlQocHJvdmlkZXJTdGFy
dENvbHVtbiA8PSBjb2x1bW4pOwogICAgICAgICBpZiAocHJvdmlkZXJTdGFydENvbHVtbikKICAg
ICAgICAgICAgIGNvbHVtbiAtPSBwcm92aWRlclN0YXJ0Q29sdW1uOwogICAgIH0KIAogICAgIERl
YnVnZ2VyUGFyc2VEYXRhJiBwYXJzZURhdGEgPSBkZWJ1Z2dlclBhcnNlRGF0YShicmVha3BvaW50
LnNvdXJjZUlELCBzb3VyY2VQcm92aWRlcik7Ci0gICAgT3B0aW9uYWw8SlNUZXh0UG9zaXRpb24+
IHJlc29sdmVkUG9zaXRpb24gPSBwYXJzZURhdGEucGF1c2VQb3NpdGlvbnMuYnJlYWtwb2ludExv
Y2F0aW9uRm9yTGluZUNvbHVtbigoaW50KWxpbmUsIChpbnQpY29sdW1uKTsKKyAgICBPcHRpb25h
bDxKU1RleHRQb3NpdGlvbj4gcmVzb2x2ZWRQb3NpdGlvbiA9IHBhcnNlRGF0YS5wYXVzZVBvc2l0
aW9ucy5icmVha3BvaW50TG9jYXRpb25Gb3JMaW5lQ29sdW1uKGxpbmUsIGNvbHVtbik7CiAgICAg
aWYgKCFyZXNvbHZlZFBvc2l0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICB1bnNpZ25lZCBy
ZXNvbHZlZExpbmUgPSByZXNvbHZlZFBvc2l0aW9uLT5saW5lOwotICAgIHVuc2lnbmVkIHJlc29s
dmVkQ29sdW1uID0gcmVzb2x2ZWRQb3NpdGlvbi0+b2Zmc2V0IC0gcmVzb2x2ZWRQb3NpdGlvbi0+
bGluZVN0YXJ0T2Zmc2V0ICsgMTsKKyAgICBpbnQgcmVzb2x2ZWRMaW5lID0gcmVzb2x2ZWRQb3Np
dGlvbi0+bGluZTsKKyAgICBpbnQgcmVzb2x2ZWRDb2x1bW4gPSByZXNvbHZlZFBvc2l0aW9uLT5v
ZmZzZXQgLSByZXNvbHZlZFBvc2l0aW9uLT5saW5lU3RhcnRPZmZzZXQ7CiAKICAgICAvLyBSZS1h
Y2NvdW50IGZvciBhIDxzY3JpcHQ+J3Mgc3RhcnQgcG9zaXRpb24gb24gdGhlIGZpcnN0IGxpbmUg
b25seS4KLSAgICBpZiAocmVzb2x2ZWRMaW5lID09IHByb3ZpZGVyU3RhcnRMaW5lICYmIGNvbHVt
biAhPSBCcmVha3BvaW50Ojp1bnNwZWNpZmllZENvbHVtbikgeworICAgIGlmIChyZXNvbHZlZExp
bmUgPT0gcHJvdmlkZXJTdGFydExpbmUgJiYgYnJlYWtwb2ludC5jb2x1bW4pIHsKICAgICAgICAg
aWYgKHByb3ZpZGVyU3RhcnRDb2x1bW4pCiAgICAgICAgICAgICByZXNvbHZlZENvbHVtbiArPSBw
cm92aWRlclN0YXJ0Q29sdW1uOwogICAgIH0KIAogICAgIGJyZWFrcG9pbnQubGluZSA9IHJlc29s
dmVkTGluZSAtIDE7Ci0gICAgYnJlYWtwb2ludC5jb2x1bW4gPSByZXNvbHZlZENvbHVtbiAtIDE7
CisgICAgYnJlYWtwb2ludC5jb2x1bW4gPSByZXNvbHZlZENvbHVtbjsKICAgICBicmVha3BvaW50
LnJlc29sdmVkID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyUGFyc2VEYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZWJ1Z2dlci9EZWJ1Z2dlclBhcnNlRGF0YS5jcHAKaW5kZXggOWMzMzVhNGJiMTBhZmY4NWE1N2Zi
NDVhYTRhMDVmNDg0YmM1MjU5YS4uMWMzZmRkODU5OWNkOTFkYzhhNWE4ZmNjYjg0MmRkYWI3NWNm
Nzg2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
UGFyc2VEYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJQYXJzZURhdGEuY3BwCkBAIC0zMyw0MyArMzMsMjYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIE9w
dGlvbmFsPEpTVGV4dFBvc2l0aW9uPiBEZWJ1Z2dlclBhdXNlUG9zaXRpb25zOjpicmVha3BvaW50
TG9jYXRpb25Gb3JMaW5lQ29sdW1uKGludCBsaW5lLCBpbnQgY29sdW1uKQogewotICAgIHVuc2ln
bmVkIHN0YXJ0ID0gMDsKLSAgICB1bnNpZ25lZCBlbmQgPSBtX3Bvc2l0aW9ucy5zaXplKCk7Ci0g
ICAgd2hpbGUgKHN0YXJ0ICE9IGVuZCkgewotICAgICAgICB1bnNpZ25lZCBtaWRkbGUgPSBzdGFy
dCArICgoZW5kIC0gc3RhcnQpIC8gMik7Ci0gICAgICAgIERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYg
cGF1c2VQb3NpdGlvbiA9IG1fcG9zaXRpb25zW21pZGRsZV07Ci0gICAgICAgIGludCBwYXVzZUxp
bmUgPSBwYXVzZVBvc2l0aW9uLnBvc2l0aW9uLmxpbmU7Ci0gICAgICAgIGludCBwYXVzZUNvbHVt
biA9IHBhdXNlUG9zaXRpb24ucG9zaXRpb24ub2Zmc2V0IC0gcGF1c2VQb3NpdGlvbi5wb3NpdGlv
bi5saW5lU3RhcnRPZmZzZXQ7Ci0KLSAgICAgICAgaWYgKGxpbmUgPCBwYXVzZUxpbmUpIHsKLSAg
ICAgICAgICAgIGVuZCA9IG1pZGRsZTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9
Ci0gICAgICAgIGlmIChsaW5lID4gcGF1c2VMaW5lKSB7Ci0gICAgICAgICAgICBzdGFydCA9IG1p
ZGRsZSArIDE7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlm
IChjb2x1bW4gPT0gcGF1c2VDb2x1bW4pIHsKLSAgICAgICAgICAgIC8vIEZvdW5kIGFuIGV4YWN0
IHBvc2l0aW9uIG1hdGNoLiBSb2xsIGZvcndhcmQgaWYgdGhpcyB3YXMgYSBmdW5jdGlvbiBFbnRy
eS4KLSAgICAgICAgICAgIC8vIFdlIGFyZSBndWFyZW50ZWVkIHRvIGhhdmUgYSBMZWF2ZSBmb3Ig
YW4gRW50cnkgc28gd2UgZG9uJ3QgbmVlZCB0byBib3VuZHMgY2hlY2suCi0gICAgICAgICAgICB3
aGlsZSAodHJ1ZSkgewotICAgICAgICAgICAgICAgIGlmIChwYXVzZVBvc2l0aW9uLnR5cGUgIT0g
RGVidWdnZXJQYXVzZVBvc2l0aW9uVHlwZTo6RW50ZXIpCi0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiBPcHRpb25hbDxKU1RleHRQb3NpdGlvbj4ocGF1c2VQb3NpdGlvbi5wb3NpdGlvbik7Ci0g
ICAgICAgICAgICAgICAgcGF1c2VQb3NpdGlvbiA9IG1fcG9zaXRpb25zW21pZGRsZSsrXTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQorICAgIERlYnVnZ2VyUGF1c2VQb3NpdGlvbiBwb3NpdGlv
bjsKKyAgICBwb3NpdGlvbi5wb3NpdGlvbi5saW5lID0gbGluZTsKKyAgICBwb3NpdGlvbi5wb3Np
dGlvbi5vZmZzZXQgPSBjb2x1bW47CisgICAgcG9zaXRpb24ucG9zaXRpb24ubGluZVN0YXJ0T2Zm
c2V0ID0gMDsKKyAgICBhdXRvIGl0ID0gc3RkOjpsb3dlcl9ib3VuZChtX3Bvc2l0aW9ucy5iZWdp
bigpLCBtX3Bvc2l0aW9ucy5lbmQoKSwgcG9zaXRpb24sIFtdIChjb25zdCBEZWJ1Z2dlclBhdXNl
UG9zaXRpb24mIGEsIGNvbnN0IERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYgYikgeworICAgICAgICBp
ZiAoYS5wb3NpdGlvbi5saW5lID09IGIucG9zaXRpb24ubGluZSkKKyAgICAgICAgICAgIHJldHVy
biBhLnBvc2l0aW9uLmNvbHVtbigpIDwgYi5wb3NpdGlvbi5jb2x1bW4oKTsKKyAgICAgICAgcmV0
dXJuIGEucG9zaXRpb24ubGluZSA8IGIucG9zaXRpb24ubGluZTsKKyAgICB9KTsKKyAgICBpZiAo
aXQgPT0gbV9wb3NpdGlvbnMuZW5kKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAK
LSAgICAgICAgaWYgKGNvbHVtbiA8IHBhdXNlQ29sdW1uKQotICAgICAgICAgICAgZW5kID0gbWlk
ZGxlOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBzdGFydCA9IG1pZGRsZSArIDE7CisgICAg
aWYgKGxpbmUgPT0gaXQtPnBvc2l0aW9uLmxpbmUgJiYgY29sdW1uID09IGl0LT5wb3NpdGlvbi5j
b2x1bW4oKSkgeworICAgICAgICAvLyBGb3VuZCBhbiBleGFjdCBwb3NpdGlvbiBtYXRjaC4gUm9s
bCBmb3J3YXJkIGlmIHRoaXMgd2FzIGEgZnVuY3Rpb24gRW50cnkuCisgICAgICAgIC8vIFdlIGFy
ZSBndWFyYW50ZWVkIHRvIGhhdmUgYSBMZWF2ZSBmb3IgYW4gRW50cnkgc28gd2UgZG9uJ3QgbmVl
ZCB0byBib3VuZHMgY2hlY2suCisgICAgICAgIHdoaWxlIChpdC0+dHlwZSA9PSBEZWJ1Z2dlclBh
dXNlUG9zaXRpb25UeXBlOjpFbnRlcikKKyAgICAgICAgICAgICsraXQ7CisgICAgICAgIHJldHVy
biBPcHRpb25hbDxKU1RleHRQb3NpdGlvbj4oaXQtPnBvc2l0aW9uKTsKICAgICB9CiAKLSAgICAv
LyBQYXN0IHRoZSBlbmQsIG5vIHBvc3NpYmxlIHBhdXNlIGxvY2F0aW9ucy4KLSAgICBpZiAoc3Rh
cnQgPj0gbV9wb3NpdGlvbnMuc2l6ZSgpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owot
CiAgICAgLy8gSWYgdGhlIG5leHQgbG9jYXRpb24gaXMgYSBmdW5jdGlvbiBFbnRyeSB3ZSB3aWxs
IG5lZWQgdG8gZGVjaWRlIGlmIHdlIHNob3VsZCBnbyBpbnRvCiAgICAgLy8gdGhlIGZ1bmN0aW9u
IG9yIGdvIHBhc3QgdGhlIGZ1bmN0aW9uLiBXZSBkZWNpZGUgdG8gZ28gaW50byB0aGUgZnVuY3Rp
b24gaWYgdGhlCiAgICAgLy8gaW5wdXQgaXMgb24gdGhlIHNhbWUgbGluZSBhcyB0aGUgZnVuY3Rp
b24gZW50cnkuIEZvciBleGFtcGxlOgpAQCAtODYsNyArNjksNyBAQCBPcHRpb25hbDxKU1RleHRQ
b3NpdGlvbj4gRGVidWdnZXJQYXVzZVBvc2l0aW9uczo6YnJlYWtwb2ludExvY2F0aW9uRm9yTGlu
ZUNvbHVtbgogICAgIC8vIElmIHRoZSBpbnB1dCB3YXMgbGluZSAzLCBnbyBpbnRvIHRoZSBmdW5j
dGlvbiB0byBwYXVzZSBvbiBsaW5lIDQuCiAKICAgICAvLyBWYWxpZCBwYXVzZSBsb2NhdGlvbi4g
VXNlIGl0LgotICAgIERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYgZmlyc3RTbGlkZVBvc2l0aW9uID0g
bV9wb3NpdGlvbnNbc3RhcnRdOworICAgIERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYgZmlyc3RTbGlk
ZVBvc2l0aW9uID0gKml0Kys7CiAgICAgaWYgKGZpcnN0U2xpZGVQb3NpdGlvbi50eXBlICE9IERl
YnVnZ2VyUGF1c2VQb3NpdGlvblR5cGU6OkVudGVyKQogICAgICAgICByZXR1cm4gT3B0aW9uYWw8
SlNUZXh0UG9zaXRpb24+KGZpcnN0U2xpZGVQb3NpdGlvbi5wb3NpdGlvbik7CiAKQEAgLTk0LDgg
Kzc3LDggQEAgT3B0aW9uYWw8SlNUZXh0UG9zaXRpb24+IERlYnVnZ2VyUGF1c2VQb3NpdGlvbnM6
OmJyZWFrcG9pbnRMb2NhdGlvbkZvckxpbmVDb2x1bW4KICAgICAvLyBJZiBlbnRyeVN0YWNrU2l6
ZSBpcyA+IDAgd2UgYXJlIHNraXBwaW5nIGZ1bmN0aW9ucy4KICAgICBib29sIHNob3VsZEVudGVy
RnVuY3Rpb24gPSBmaXJzdFNsaWRlUG9zaXRpb24ucG9zaXRpb24ubGluZSA9PSBsaW5lOwogICAg
IGludCBlbnRyeVN0YWNrU2l6ZSA9IHNob3VsZEVudGVyRnVuY3Rpb24gPyAwIDogMTsKLSAgICBm
b3IgKHVuc2lnbmVkIGkgPSBzdGFydCArIDE7IGkgPCBtX3Bvc2l0aW9ucy5zaXplKCk7ICsraSkg
ewotICAgICAgICBEZWJ1Z2dlclBhdXNlUG9zaXRpb24mIHNsaWRlUG9zaXRpb24gPSBtX3Bvc2l0
aW9uc1tpXTsKKyAgICBmb3IgKDsgaXQgIT0gbV9wb3NpdGlvbnMuZW5kKCk7ICsraXQpIHsKKyAg
ICAgICAgYXV0byYgc2xpZGVQb3NpdGlvbiA9ICppdDsKICAgICAgICAgQVNTRVJUKGVudHJ5U3Rh
Y2tTaXplID49IDApOwogCiAgICAgICAgIC8vIEFscmVhZHkgc2tpcHBpbmcgZnVuY3Rpb25zLgpA
QCAtMTI0LDYgKzEwNyw4IEBAIE9wdGlvbmFsPEpTVGV4dFBvc2l0aW9uPiBEZWJ1Z2dlclBhdXNl
UG9zaXRpb25zOjpicmVha3BvaW50TG9jYXRpb25Gb3JMaW5lQ29sdW1uCiB2b2lkIERlYnVnZ2Vy
UGF1c2VQb3NpdGlvbnM6OnNvcnQoKQogewogICAgIHN0ZDo6c29ydChtX3Bvc2l0aW9ucy5iZWdp
bigpLCBtX3Bvc2l0aW9ucy5lbmQoKSwgW10gKGNvbnN0IERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYg
YSwgY29uc3QgRGVidWdnZXJQYXVzZVBvc2l0aW9uJiBiKSB7CisgICAgICAgIGlmIChhLnBvc2l0
aW9uLm9mZnNldCA9PSBiLnBvc2l0aW9uLm9mZnNldCkKKyAgICAgICAgICAgIHJldHVybiBhLnR5
cGUgPCBiLnR5cGU7CiAgICAgICAgIHJldHVybiBhLnBvc2l0aW9uLm9mZnNldCA8IGIucG9zaXRp
b24ub2Zmc2V0OwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyUGFyc2VEYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJQYXJzZURhdGEuaAppbmRleCA5NjU5YjFkMDI4M2YzZGY5Y2M5NWU3YTkz
YzNjNjllOGQyM2EyZGMxLi41NjU5YmY4Mjc4YzU1Y2EyMzFjYTY3ZmJlNzc5YTY2YzVmMjI3ZjRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJz
ZURhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJz
ZURhdGEuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIFNvdXJjZVBy
b3ZpZGVyOwogY2xhc3MgVk07CiAKLWVudW0gY2xhc3MgRGVidWdnZXJQYXVzZVBvc2l0aW9uVHlw
ZSB7IEVudGVyLCBMZWF2ZSwgUGF1c2UgfTsKK2VudW0gY2xhc3MgRGVidWdnZXJQYXVzZVBvc2l0
aW9uVHlwZSB7IEVudGVyLCBQYXVzZSwgTGVhdmUgfTsKIHN0cnVjdCBEZWJ1Z2dlclBhdXNlUG9z
aXRpb24gewogICAgIERlYnVnZ2VyUGF1c2VQb3NpdGlvblR5cGUgdHlwZTsKICAgICBKU1RleHRQ
b3NpdGlvbiBwb3NpdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbgppbmRleCAxNWFiZDM2MjY0MGJhN2RhYzZmNjY4
MjJmYWUyMTJhNWFhOTk4NGZlLi4xNmQ0MTEwZmQyZDMzNTA4NDJjOTZjYWZjODY0YWE2YjZlMzg3
OTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29s
L0RlYnVnZ2VyLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90
b2NvbC9EZWJ1Z2dlci5qc29uCkBAIC0yOCw4ICsyOCw4IEBACiAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiTG9jYXRpb24gaW4gdGhlIHNvdXJjZSBjb2RlLiIsCiAgICAgICAgICAgICAicHJv
cGVydGllcyI6IFsKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNjcmlwdElkIiwgIiRyZWYi
OiAiU2NyaXB0SWQiLCAiZGVzY3JpcHRpb24iOiAiU2NyaXB0IGlkZW50aWZpZXIgYXMgcmVwb3J0
ZWQgaW4gdGhlIDxjb2RlPkRlYnVnZ2VyLnNjcmlwdFBhcnNlZDwvY29kZT4uIiB9LAotICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAibGluZU51bWJlciIsICJ0eXBlIjogImludGVnZXIiLCAiZGVz
Y3JpcHRpb24iOiAiTGluZSBudW1iZXIgaW4gdGhlIHNjcmlwdC4iIH0sCi0gICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJjb2x1bW5OdW1iZXIiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNvbHVtbiBudW1iZXIgaW4gdGhlIHNjcmlwdC4iIH0K
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImxpbmVOdW1iZXIiLCAidHlwZSI6ICJpbnRlZ2Vy
IiwgImRlc2NyaXB0aW9uIjogIkxpbmUgbnVtYmVyIGluIHRoZSBzY3JpcHQgKDAtYmFzZWQpLiIg
fSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbHVtbk51bWJlciIsICJ0eXBlIjogImlu
dGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29sdW1uIG51bWJlciBp
biB0aGUgc2NyaXB0ICgwLWJhc2VkKS4iIH0KICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAg
ICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJU
b2tlbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKaW5k
ZXggNzIwNjRiOTI4NDgxNjZmNmRlMmIyM2Y4YTNmNThjOTgxYjc2NzllOS4uN2FkMGI5OTI3NGNi
YjRlMzkwOWFjYzdiY2Q3ODgyMzdhNzdiYWNlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlclRva2Vucy5oCkBAIC0yMTcsNiArMjE3LDggQEAgc3RydWN0IEpTVGV4dFBv
c2l0aW9uIHsKICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOwogICAgIH0KIAorICAg
IGludCBjb2x1bW4oKSBjb25zdCB7IHJldHVybiBvZmZzZXQgLSBsaW5lU3RhcnRPZmZzZXQ7IH0K
KwogICAgIGludCBsaW5lIHsgMCB9OwogICAgIGludCBvZmZzZXQgeyAwIH07CiAgICAgaW50IGxp
bmVTdGFydE9mZnNldCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAppbmRleCA3NzJlYzc0NjkxM2Nj
NjhkYjk5ZWFiYWM5MTMxMTM5ZTliNzQ4ZmZhLi4xYmUxOTdiNjEzN2Y5ODRjY2I3N2Q5MDY3MjU3
MjM4ZGM0MDUxYzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCkBAIC04MSwxOCArODEsMzQgQEAgcHVi
bGljOgogICAgICAgICBBU1NFUlRfQVJHKG1lc3NhZ2UsICFtZXNzYWdlLmlzRW1wdHkoKSk7CiAK
ICAgICAgICAgbV9tZXNzYWdlcy5hcHBlbmQobWVzc2FnZSk7Ci0gICAgICAgIGlmICghbV90aW1l
ci5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMF9zKTsKKyAg
ICAgICAgc2NoZWR1bGVPbmVTaG90KCk7CiAgICAgfQogCiAgICAgdm9pZCByZXNldCgpCiAgICAg
ewogICAgICAgICBtX21lc3NhZ2VzLmNsZWFyKCk7Ci0gICAgICAgIG1fdGltZXIuc3RvcCgpOwog
ICAgICAgICBtX2luc3BlY3RlZFBhZ2VDb250cm9sbGVyID0gbnVsbHB0cjsKICAgICB9CiAKLSAg
ICB2b2lkIHRpbWVyRmlyZWQoKQorcHJpdmF0ZToKKyAgICBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hUYXNrKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RlZFBhZ2VDb250cm9sbGVyKQorICAg
ICAgICA6IG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIoaW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIp
CisgICAgeworICAgICAgICBBU1NFUlRfQVJHKGluc3BlY3RlZFBhZ2VDb250cm9sbGVyLCBpbnNw
ZWN0ZWRQYWdlQ29udHJvbGxlcik7CisgICAgfQorCisgICAgdm9pZCBzY2hlZHVsZU9uZVNob3Qo
KQorICAgIHsKKyAgICAgICAgaWYgKG1faGFzU2NoZWR1bGVkVGFzaykKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgbV9oYXNTY2hlZHVsZWRUYXNrID0gdHJ1ZTsKKyAgICAgICAgUnVuTG9v
cDo6Y3VycmVudCgpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyldIHsKKyAgICAgICAgICAgIG1faGFzU2NoZWR1bGVkVGFzayA9IGZhbHNlOworICAgICAgICAg
ICAgZGlzcGF0Y2hPbmVNZXNzYWdlKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIHZvaWQg
ZGlzcGF0Y2hPbmVNZXNzYWdlKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChtX2luc3BlY3RlZFBh
Z2VDb250cm9sbGVyKTsKIApAQCAtMTA0LDIwICsxMjAsMTIgQEAgcHVibGljOgogICAgICAgICAg
ICAgbV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxlci0+ZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5k
KG1fbWVzc2FnZXMudGFrZUZpcnN0KCkpOwogCiAgICAgICAgIGlmICghbV9tZXNzYWdlcy5pc0Vt
cHR5KCkgJiYgbV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxlcikKLSAgICAgICAgICAgIG1fdGltZXIu
c3RhcnRPbmVTaG90KDBfcyk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIEluc3BlY3RvckJhY2tl
bmREaXNwYXRjaFRhc2soSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdGVkUGFnZUNvbnRyb2xs
ZXIpCi0gICAgICAgIDogbV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxlcihpbnNwZWN0ZWRQYWdlQ29u
dHJvbGxlcikKLSAgICAgICAgLCBtX3RpbWVyKCp0aGlzLCAmSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoVGFzazo6dGltZXJGaXJlZCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVF9BUkcoaW5zcGVjdGVk
UGFnZUNvbnRyb2xsZXIsIGluc3BlY3RlZFBhZ2VDb250cm9sbGVyKTsKKyAgICAgICAgICAgIHNj
aGVkdWxlT25lU2hvdCgpOwogICAgIH0KIAogICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIG1faW5z
cGVjdGVkUGFnZUNvbnRyb2xsZXIgeyBudWxscHRyIH07Ci0gICAgVGltZXIgbV90aW1lcjsKICAg
ICBEZXF1ZTxTdHJpbmc+IG1fbWVzc2FnZXM7CisgICAgYm9vbCBtX2hhc1NjaGVkdWxlZFRhc2sg
eyBmYWxzZSB9OwogfTsKIAogU3RyaW5nIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OlNl
dHRpbmdzOjpnZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcmKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU5ZWZkNWRlMGZkNDA2
ZGU2ZWIyZjFiZjY2ZTViZmZjYjMwZjcxOTIuLjZhNTA4MGNhYjRjOGU3YTk5Yzc0Y2VkNzE4OGRk
ZjVlZTk2OTRmMWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0wOS0yMCAgWXVyeSBTZW1p
a2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB0
ZXN0cyB1bmRlciBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIgYXJlIGZsYWt5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzcxMzEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzE4NDYxMzM1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBpbnNwZWN0b3IvZGVidWdnZXIgdGVzdHMgb24g
R1RLLgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnRzL3Jlc29sdmVk
LWR1bXAtYWxsLXBhdXNlLWxvY2F0aW9ucy1leHBlY3RlZC50eHQ6IFJlYmFzZWxpbmVkIHRoZSB0
ZXN0CisgICAgICAgIGFmdGVyIGNoYW5nZXMgaW4gdGhlIGJyZWFrcG9pbnQgcmVzb2x1dGlvbiBj
b2RlLiBOb3cgdGhlIG91dHB1dCBvbiBHVEsgaXMgdGhlIHNhbWUgYXMgb24gTWFjLgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTA5LTE5ICBQZW5nIExp
dSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgSFRNTFZpZGVvRWxlbWVudCB3aXRo
IGEgYnJva2VuIHBvc3RlciBpbWFnZSB3aWxsIHRha2Ugc3F1YXJlIGRpbWVuc2lvbgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnRzL3Jlc29sdmVk
LWR1bXAtYWxsLXBhdXNlLWxvY2F0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludHMvcmVzb2x2ZWQtZHVtcC1hbGwtcGF1c2UtbG9jYXRp
b25zLWV4cGVjdGVkLnR4dAppbmRleCA2MWJiM2RjMGI3MjlhMWJkNmQ0NzBkZjZhN2ViNjRkNTk3
ZWNhMTRjLi5jYzA4ZDk0OWNlYjQzZjk1OWZlMjc4YjZhNmRkMTA0OTE5OGUwODQzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludHMvcmVzb2x2ZWQt
ZHVtcC1hbGwtcGF1c2UtbG9jYXRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludHMvcmVzb2x2ZWQtZHVtcC1hbGwtcGF1c2UtbG9j
YXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMjE2Niw3ICsyMTY2LDcgQEAgUEFVU0VTIEFUOiA4OTo3
CiAgICAgIDkyICAgICAgICB4CiAKIElOU0VSVElORyBBVDogODk6OAotUEFVU0VTIEFUOiA5NDow
CitQQVVTRVMgQVQ6IDk4OjAKICAgICAgODYgICAgCiAgICAgIDg3ICAgIHggPT4geDsKICAgICAg
ODggICAgKCkgPT4gMTsKQEAgLTIxNzUsMTAgKzIxNzUsMTQgQEAgUEFVU0VTIEFUOiA5NDowCiAg
ICAgIDkxICAgICh4KSA9PiB7CiAgICAgIDkyICAgICAgICB4CiAgICAgIDkzICAgIH07Ci0gPT4g
IDk0ICAgIHwoKSA9PiB7CisgICAgIDk0ICAgICgpID0+IHsKICAgICAgOTUgICAgICAgIHZhciB4
OwogICAgICA5NiAgICB9OwogICAgICA5NyAgICAKKyA9PiAgOTggICAgfHZhciBmT2JqID0gewor
ICAgICA5OSAgICAgICAgZjE6IGZ1bmN0aW9uKCkgeworICAgIDEwMCAgICAgICAgICAgIHZhciB4
OworICAgIDEwMSAgICAgICAgfSwKIAogSU5TRVJUSU5HIEFUOiA5MDowCiBQQVVTRVMgQVQ6IDkw
OjAKQEAgLTIyNDIsNiArMjI0NiwxNiBAQCBQQVVTRVMgQVQ6IDkzOjAKICAgICAgOTUgICAgICAg
IHZhciB4OwogICAgICA5NiAgICB9OwogCitJTlNFUlRJTkcgQVQ6IDk0OjAKK1BBVVNFUyBBVDog
OTQ6MAorICAgICA5MSAgICAoeCkgPT4geworICAgICA5MiAgICAgICAgeAorICAgICA5MyAgICB9
OworLT0+ICA5NCAgICB8KCkgPT4geworICAgICA5NSAgICAgICAgdmFyIHg7CisgICAgIDk2ICAg
IH07CisgICAgIDk3ICAgIAorCiBJTlNFUlRJTkcgQVQ6IDk0OjEKIFBBVVNFUyBBVDogOTU6NAog
ICAgICA5MSAgICAoeCkgPT4gewpAQCAtMjI2NCwxOCArMjI3OCw2IEBAIFBBVVNFUyBBVDogOTY6
MAogICAgICA5OCAgICB2YXIgZk9iaiA9IHsKICAgICAgOTkgICAgICAgIGYxOiBmdW5jdGlvbigp
IHsKIAotSU5TRVJUSU5HIEFUOiA5NjoxCi1QQVVTRVMgQVQ6IDk4OjAKLSAgICAgOTMgICAgfTsK
LSAgICAgOTQgICAgKCkgPT4gewotICAgICA5NSAgICAgICAgdmFyIHg7Ci0gLT4gIDk2ICAgIH0j
OwotICAgICA5NyAgICAKLSA9PiAgOTggICAgfHZhciBmT2JqID0gewotICAgICA5OSAgICAgICAg
ZjE6IGZ1bmN0aW9uKCkgewotICAgIDEwMCAgICAgICAgICAgIHZhciB4OwotICAgIDEwMSAgICAg
ICAgfSwKLQogSU5TRVJUSU5HIEFUOiA5OTowCiBQQVVTRVMgQVQ6IDEwMDo4CiAgICAgIDk2ICAg
IH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDZlMTll
MTUxMjNlNDRhYjc3MDI4YzVkZjI2NDk0MjBhN2Y2MjM5ZWQuLjlkYWFhODdhZjJhYzU4M2U4MDA4
YmFmN2FlZjI1NDJiYzMwMGE4MzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0yMzExLDIxICsyMzExLDggQEAgd2Via2l0Lm9yZy9iLzExNjk1NyBtZWRp
YS90cmFjay90cmFjay1hdXRvbWF0aWMtc3VidGl0bGVzLmh0bWwgWyBUaW1lb3V0IF0KIAogd2Vi
a2l0Lm9yZy9iLzEyMDY4MiBpbnNwZWN0b3IvcGFnZS9hcmNoaXZlLmh0bWwgWyBUaW1lb3V0IF0K
IAord2Via2l0Lm9yZy9iLzE0NzUxOCBpbnNwZWN0b3IvZGVidWdnZXIvbmVzdGVkLWluc3BlY3Rv
cnMuaHRtbCBbIFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzEyMjU3MSBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9kb20vY3Jvc3MtZG9tYWluLWluc3BlY3RlZC1ub2RlLWFjY2Vzcy5odG1sIFsgVGltZW91
dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFr
cG9pbnQuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rv
ci9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUuaHRtbCBbIFRpbWVvdXQgUGFzcyBd
Ci13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LW9w
dGlvbnMtZXhjZXB0aW9uLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3
MSBpbnNwZWN0b3IvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLmh0bWwgWyBUaW1l
b3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvc2V0UGF1
c2VPbkV4Y2VwdGlvbnMtbm9uZS5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8x
MjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwgWyBUaW1l
b3V0IFBhc3MgQ3Jhc2ggXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIv
c2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQu
b3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNh
dWdodC5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9y
L2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy5odG1sIFsgRmFpbHVyZSBUaW1lb3V0IFBh
c3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10
aGlzLW5vbnN0cmljdC5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEg
aW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLmh0bWwgWyBUaW1lb3V0IFBh
c3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2lu
dC1jb25kaXRpb24uaHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGlu
c3BlY3Rvci9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQot
d2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0
cmljdC5odG1sIFsgVGltZW91dCBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9y
L2RvbS9yZXF1ZXN0LWNoaWxkLW5vZGVzLWRlcHRoLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQogd2Vi
a2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZG9tL2ZvY3VzLmh0bWwgWyBGYWlsdXJlIFRpbWVv
dXQgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9ydW50aW1lL2dldFByb3Bl
cnRpZXMuaHRtbCBbIFRpbWVvdXQgUGFzcyBDcmFzaCBdCkBAIC0yMzcwLDcgKzIzNTcsNiBAQCB3
ZWJraXQub3JnL2IvMTM2Njc0IG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctd2l0aC1w
YWRkaW5nLmh0bWwgWyBUaW1lb3V0CiAKIHdlYmtpdC5vcmcvYi8xMzc2OTggbWVkaWEvdmlkZW8t
Y29udHJvbHMtZHJhZy5odG1sIFsgVGltZW91dCBdCiAKLXdlYmtpdC5vcmcvYi8xMzcxMzEgaW5z
cGVjdG9yL2RlYnVnZ2VyIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTQ3NTE4IGluc3BlY3Rvci9k
b20gWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNDc1MTggaW5zcGVjdG9yL21vZGVsIFsgU2tpcCBd
CiB3ZWJraXQub3JnL2IvMTQ3NTE4IGluc3BlY3Rvci90aW1lbGluZSBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379558</attachid>
            <date>2019-09-25 10:59:48 -0700</date>
            <delta_ts>2019-09-26 11:32:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137131-20190925105947.patch</filename>
            <type>text/plain</type>
            <size>25148</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MDRlODc5MTExZmRmNjE2OTRlYzhhNzM3OGYxOWZhZmZkNDVlZjliLi5mODkxZGFhZTg5YjA2OTBk
NDVmMDJhZDhhNjBhMWFjMDcxZjRlNjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOS0wOS0yNCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB0ZXN0cyB1bmRlciBMYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIgYXJlIGZsYWt5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzcxMzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE4NDYx
MzM1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENo
YW5nZWQgYnJlYWtwb2ludCByZXNvbHV0aW9uIGxvZ2ljIHRvIG1ha2UgaXQgY29zaXN0ZW50IGFj
cm9zcyBwbGF0Zm9ybXMgYW5kCisgICAgICAgIGJldHRlciBoYW5kbGUgdGhlIGNhc2Ugd2hlbiB0
aGVyZSBhcmUgc2V2ZXJhbCBEZWJ1Z2dlclBhdXNlUG9zaXRpb25zIGF0IHRoZSBzYW1lCisgICAg
ICAgIG9mZnNldCAoYnV0IHdpdGggZGlmZmVyZW50IHR5cGVzKS4KKworICAgICAgICAqIGJ5dGVj
b2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6aGFzT3BEZWJ1Z0Zv
ckxpbmVBbmRDb2x1bW4pOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAg
ICAqIGRlYnVnZ2VyL0JyZWFrcG9pbnQuaDogUmVtb3ZlZCBCcmVha3BvaW50Ojp1bnNwZWNpZmll
ZENvbHVtbiwgT3B0aW9uYWw8dW5zaWduZWQ+CisgICAgICAgIGlzIHVzZWQgaW5zdGVhZCB3aGVy
ZSBuZWVkZWQuIEl0IGFsbG93cyB0byBhdm9pZCBjb2RlIHRoYXQgcmVsaWVzIG9uIChpbnQpVUlO
VF9NQVggPT4gLTEKKyAgICAgICAgY29udmVyc2lvbi4KKworICAgICAgICAqIGRlYnVnZ2VyL0Rl
YnVnZ2VyLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6OnJlc29sdmVCcmVha3BvaW50KTog
Y2xhcmlmaWVkIHRoYXQgaW4gdGhlIG1hcCBjb2x1bW5zIGFyZSAwLWJhc2VkLgorICAgICAgICAq
IGRlYnVnZ2VyL0RlYnVnZ2VyUGFyc2VEYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXJQ
YXVzZVBvc2l0aW9uczo6YnJlYWtwb2ludExvY2F0aW9uRm9yTGluZUNvbHVtbik6IHJlcGxhY2Vk
IGN1c3RvbQorICAgICAgICBiaW5hcnkgc2VhcmNoIHdpdGggc3RkOjpsb3dlcl9ib3VuZC4gSWYg
dGhlcmUgYXJlIHNldmVyYWwgcGF1c2UgcG9zaXRpb25zIGF0IHRoZQorICAgICAgICBzYW1lIG9m
ZnNldCB0aGV5IHdpbGwgYmUgc29ydGVkIGJ5IHRoZSB0eXBlIGFuZCB0aGUgYWxnb3JpdGhtIGlz
IGd1YXJhbnRlZWQgdG8gc2VlCisgICAgICAgIGxlZnRtb3N0IG9uZSBmaXJzdC4KKworICAgICAg
ICAoSlNDOjpEZWJ1Z2dlclBhdXNlUG9zaXRpb25zOjpzb3J0KTogdXNlIHR5cGUgYXMgc2Vjb25k
YXJ5IG9yZGVyaW5nIGNvbXBvbmVudC4KKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlclBhcnNl
RGF0YS5oOiBSZWFycmFuZ2VkIHR5cGUgY29uc3RhbnRzIHNvIHRoYXQgRW50ZXIgPCBQYXVzZSA8
IExlYXZlCisgICAgICAgIHRoaXMgY2hhbmdlIGFsb25nIHdpdGggc29ydGluZyBieSB0eXBlIHNo
b3VsZCBndWFyYW50ZWUgdGhhdCBpbiBjYXNlIG9mIHNldmVyYWwgcGF1c2UKKyAgICAgICAgcG9z
aXRpb25zIGF0IHRoZSBzYW1lIGxpbmUgRW50ZXIgZ29lcyBiZWZvcmUgUGF1c2UgYmVmb3JlIExl
YXZlIGFuZCB0aGUgYnJlYWtwb2ludAorICAgICAgICByZXNvbHV0aW9uIHdpbGwgeWllbGQgcmVz
dWx0IHNpbWlsYXIgdG8gdGhhdCB3aGVuIGVhY2ggcGF1c2UgbG9jYXRpb25zIGhhcyBkaWZmZXJl
bnQKKyAgICAgICAgcG9zaXRpb24uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvRGVi
dWdnZXIuanNvbjogY2xhcmlmaWVkIHRoYXQgcG9zaXRpb25zIGFyZSAwLWJhc2VkLgorICAgICAg
ICAqIHBhcnNlci9QYXJzZXJUb2tlbnMuaDoKKyAgICAgICAgKEpTQzo6SlNUZXh0UG9zaXRpb246
OmNvbHVtbiBjb25zdCk6IGFkZGVkIGhlbHBlciBtZXRob2QgZm9yIGNvbXB1dGluZyBjb2x1bW4u
CisKIDIwMTktMDktMTkgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IFJlZmFjdG9yaW5nOiBmaXggYnJva2VuIGluZGVudGF0aW9uIGluIEpTTm9uRGVzdHJ1Y3RpYmxl
UHJveHkuaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3M2E3YmRiMjIzYjI4OGU2YWE2NTZlZTUwODM0YTE5YjQ0
MTAzMWE2Li5kNGFlNjFjZmIwNzc5MWRlOTBkZGJhZDZhYTlmYWFjOTk1MWVkN2VjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTktMDktMjAgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5
c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdGVzdHMgdW5kZXIgTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyIGFyZSBmbGFreQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MTMxCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xODQ2MTMzNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBGaXggZGVidWdnZXIgdGVzdHMgb24gR1RLLiBBbGwgdGVzdHMgdGhhdCBwYXVzZSBv
biBicmVha3BvaW50IGRpZG4ndCB3b3JrIGJlY2F1c2UKKyAgICAgICAgaW4gbGF5b3V0IHRlc3Rz
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwgd2FzIHVzaW5nIFRpbWVyIHRvIGRpc3BhdGNo
IGNvbW1hbmRzCisgICAgICAgIHNlbnQgZnJvbSB0aGUgbG9jYWwgZnJvbnQtZW5kIHBhZ2UgdG8g
dGhlIGluc3BlY3RlZCBvbmUuIFdoZW4gcGF1c2VkIGluc2lkZSBhIHNjcmlwdAorICAgICAgICB0
cmlnZ2VyZWQgYnkgdGhlIGZyb250LWVuZCBuZXN0ZWQgdGltZXIgZXZlbnQgd291bGQgYmUgc2No
ZWR1bGVkIGJ1dCBuZXZlciBmaXJlZAorICAgICAgICBiZWNhdXNlIGluIGdsaWIgaW1wbGVtZW50
YXRpb24gb2YgUnVuTG9vcDo6VGltZXJCYXNlIHVzZXMgZXZlbnQgc291cmNlIHdoaWNoIGRvZXNu
J3QKKyAgICAgICAgYWxsb3cgcmVjdXJzaW9uIChnX3NvdXJjZV9zZXRfY2FuX3JlY3Vyc2UgaXMg
bm90IGNhbGxlZCBvbiB0aGUgc291cmNlKSwgc28gZGlzcGF0Y2hpbmcKKyAgICAgICAgRGVidWdn
ZXIucmVzdW1lIGNvbW1hbmQgZGlkbid0IHdvcmsgd2hlbiBwYXVzZWQgaW5zaWRlIGFub3RoZXIg
aW5zcGVjdG9yIGNvbW1hbmQgKGUuZy4KKyAgICAgICAgZXZhbCkuIFJ1bkxvb3AgaXRzZWxmIHVz
ZXMgZXZlbnQgc291cmNlIHdoaWNoIGRvZXMgYWxsb3cgcmVjdXJzaW9uLiBTbyBpbnN0ZWFkIG9m
IHVzaW5nCisgICAgICAgIGEgdGltZXIgZm9yIGFzeW5jaHJvbm91cyBjb21tYW5kIGRpc3BhdGNo
aW5nIHdpdGggZGVsYXk9MCB3ZSBub3cgc2NoZWR1bGUgYSB0YXNrIGluCisgICAgICAgIFJ1bkxv
b3AncyBxdWV1ZS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRh
c2s6OmRpc3BhdGNoKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tlbmREaXNwYXRj
aFRhc2s6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tlbmREaXNwYXRj
aFRhc2s6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRhc2spOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoVGFzazo6c2NoZWR1bGVPbmVTaG90KTogZW5zdXJlcyB0
aGF0IHRoZXJlIGlzIG9uZSBpbnNwZWN0b3IKKyAgICAgICAgZGlzcGF0Y2ggdGFzayBpbiB0aGUg
cXVldWUuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrOjpk
aXNwYXRjaE9uZU1lc3NhZ2UpOiB0aGlzIGlzIG1vc3RseSB0aGUgc2FtZSBiZWhhdmlvcgorICAg
ICAgICBhcyB3YXMgd2l0aCB0aW1lckZpcmVkLCB3ZSBzaG91bGQgYmUgYWJsZSB0byBkaXNwYXRj
aCBhbGwgYWNjdW11bGF0ZWQgbWVzc2FnZXMgZnJvbSB0aGUgcXVldWUKKyAgICAgICAgaW4gb25l
IGJhdGNoIGJ1dCBmb3Igbm93IEknZCBsaWtlIHRvIGtlZXAgaXQgb25lIHBlciBpdGVyYXRpb24u
CisKIDIwMTktMDktMTkgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAg
ICBIVE1MVmlkZW9FbGVtZW50IHdpdGggYSBicm9rZW4gcG9zdGVyIGltYWdlIHdpbGwgdGFrZSBz
cXVhcmUgZGltZW5zaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suY3BwCmluZGV4IDViNGFiMTUxZDZlOTJkYjNiYjZiMTA2NGI5ODJkNjA5YjMwZDhjMmYuLjFm
MjExNDI5M2NjMTljODg2Y2Y4YWNkYTAxYTc1ZjFmMTg5MmM2YjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0xODY1LDcgKzE4NjUsNyBAQCB2
b2lkIENvZGVCbG9jazo6ZXhwcmVzc2lvblJhbmdlRm9yQnl0ZWNvZGVPZmZzZXQodW5zaWduZWQg
Ynl0ZWNvZGVPZmZzZXQsIGludCYgZAogICAgIGxpbmUgKz0gb3duZXJFeGVjdXRhYmxlKCktPmZp
cnN0TGluZSgpOwogfQogCi1ib29sIENvZGVCbG9jazo6aGFzT3BEZWJ1Z0ZvckxpbmVBbmRDb2x1
bW4odW5zaWduZWQgbGluZSwgdW5zaWduZWQgY29sdW1uKQorYm9vbCBDb2RlQmxvY2s6Omhhc09w
RGVidWdGb3JMaW5lQW5kQ29sdW1uKHVuc2lnbmVkIGxpbmUsIE9wdGlvbmFsPHVuc2lnbmVkPiBj
b2x1bW4pCiB7CiAgICAgY29uc3QgSW5zdHJ1Y3Rpb25TdHJlYW0mIGluc3RydWN0aW9uU3RyZWFt
ID0gaW5zdHJ1Y3Rpb25zKCk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBpdCA6IGluc3RydWN0aW9u
U3RyZWFtKSB7CkBAIC0xODc0LDcgKzE4NzQsNyBAQCBib29sIENvZGVCbG9jazo6aGFzT3BEZWJ1
Z0ZvckxpbmVBbmRDb2x1bW4odW5zaWduZWQgbGluZSwgdW5zaWduZWQgY29sdW1uKQogICAgICAg
ICAgICAgdW5zaWduZWQgb3BEZWJ1Z0xpbmU7CiAgICAgICAgICAgICB1bnNpZ25lZCBvcERlYnVn
Q29sdW1uOwogICAgICAgICAgICAgZXhwcmVzc2lvblJhbmdlRm9yQnl0ZWNvZGVPZmZzZXQoaXQu
b2Zmc2V0KCksIHVudXNlZCwgdW51c2VkLCB1bnVzZWQsIG9wRGVidWdMaW5lLCBvcERlYnVnQ29s
dW1uKTsKLSAgICAgICAgICAgIGlmIChsaW5lID09IG9wRGVidWdMaW5lICYmIChjb2x1bW4gPT0g
QnJlYWtwb2ludDo6dW5zcGVjaWZpZWRDb2x1bW4gfHwgY29sdW1uID09IG9wRGVidWdDb2x1bW4p
KQorICAgICAgICAgICAgaWYgKGxpbmUgPT0gb3BEZWJ1Z0xpbmUgJiYgKCFjb2x1bW4gfHwgY29s
dW1uID09IG9wRGVidWdDb2x1bW4pKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5o
CmluZGV4IGIxYTgyYjMzNjdhZWMxYWI2MWY1ZThmYjhmOTExMmEzZjM3N2QyOTcuLjg4Y2ZhZTRl
ZTkyMTg5ZmEwZTA5YmNlODNjNDBlMTQ1YWRmNWNmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTc4Nyw3ICs3ODcsNyBAQCBwdWJsaWM6CiAgICAg
dW5zaWduZWQgZnJhbWVSZWdpc3RlckNvdW50KCk7CiAgICAgaW50IHN0YWNrUG9pbnRlck9mZnNl
dCgpOwogCi0gICAgYm9vbCBoYXNPcERlYnVnRm9yTGluZUFuZENvbHVtbih1bnNpZ25lZCBsaW5l
LCB1bnNpZ25lZCBjb2x1bW4pOworICAgIGJvb2wgaGFzT3BEZWJ1Z0ZvckxpbmVBbmRDb2x1bW4o
dW5zaWduZWQgbGluZSwgT3B0aW9uYWw8dW5zaWduZWQ+IGNvbHVtbik7CiAKICAgICBib29sIGhh
c0RlYnVnZ2VyUmVxdWVzdHMoKSBjb25zdCB7IHJldHVybiBtX2RlYnVnZ2VyUmVxdWVzdHM7IH0K
ICAgICB2b2lkKiBkZWJ1Z2dlclJlcXVlc3RzQWRkcmVzcygpIHsgcmV0dXJuICZtX2RlYnVnZ2Vy
UmVxdWVzdHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9C
cmVha3BvaW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvQnJlYWtwb2ludC5o
CmluZGV4IGJiOGYwZGRiYjlkNGY3MDYzYTY4YTE0Nzg3NTFlMzkxNDMxOTY3MDQuLjE0MThlMTU5
OGIzMGExYjA1ODE0YWI4ZmZhZDE1YTIzMzRjYmQyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9CcmVha3BvaW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0JyZWFrcG9pbnQuaApAQCAtNTcsOCArNTcsNiBAQCBzdHJ1Y3QgQnJlYWtw
b2ludCA6IHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxCcmVha3BvaW50PiB7CiAgICAgdW5z
aWduZWQgaGl0Q291bnQgeyAwIH07CiAgICAgYm9vbCByZXNvbHZlZCB7IGZhbHNlIH07CiAKLSAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHVuc3BlY2lmaWVkQ29sdW1uID0gVUlOVF9NQVg7
Ci0KIHByaXZhdGU6CiAgICAgQnJlYWtwb2ludCogbV9wcmV2OwogICAgIEJyZWFrcG9pbnQqIG1f
bmV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCmluZGV4
IGIwY2ZkZjg4YmQ0MTM3YzQ0ODhhMjMwMTMxOTAzYTQyM2M2OTdkYjcuLjZlNjBiZTVlNTdlZTRi
MzJkYTRhMGMzYzg5OGFmNzhmZDI0YWI1ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyLmNwcApAQCAtMjY4LDkgKzI2OCw2IEBAIHZvaWQgRGVidWdnZXI6OnRv
Z2dsZUJyZWFrcG9pbnQoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJyZWFrcG9pbnQmIGJyZWFrcG9p
bnQsIEJyCiAgICAgaWYgKGJyZWFrcG9pbnQuc291cmNlSUQgIT0gc291cmNlSUQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIHVuc2lnbmVkIGxpbmUgPSBicmVha3BvaW50LmxpbmU7Ci0gICAgdW5z
aWduZWQgY29sdW1uID0gYnJlYWtwb2ludC5jb2x1bW47Ci0KICAgICB1bnNpZ25lZCBzdGFydExp
bmUgPSBleGVjdXRhYmxlLT5maXJzdExpbmUoKTsKICAgICB1bnNpZ25lZCBzdGFydENvbHVtbiA9
IGV4ZWN1dGFibGUtPnN0YXJ0Q29sdW1uKCk7CiAgICAgdW5zaWduZWQgZW5kTGluZSA9IGV4ZWN1
dGFibGUtPmxhc3RMaW5lKCk7CkBAIC0yNzgsMTIgKzI3NSwxNCBAQCB2b2lkIERlYnVnZ2VyOjp0
b2dnbGVCcmVha3BvaW50KENvZGVCbG9jayogY29kZUJsb2NrLCBCcmVha3BvaW50JiBicmVha3Bv
aW50LCBCcgogCiAgICAgLy8gSW5zcGVjdG9yIGJyZWFrcG9pbnQgbGluZSBhbmQgY29sdW1uIHZh
bHVlcyBhcmUgemVyby1iYXNlZCBidXQgdGhlIGV4ZWN1dGFibGUKICAgICAvLyBhbmQgQ29kZUJs
b2NrIGxpbmUgYW5kIGNvbHVtbiB2YWx1ZXMgYXJlIG9uZS1iYXNlZC4KLSAgICBsaW5lICs9IDE7
Ci0gICAgY29sdW1uID0gY29sdW1uID8gY29sdW1uICsgMSA6IEJyZWFrcG9pbnQ6OnVuc3BlY2lm
aWVkQ29sdW1uOworICAgIHVuc2lnbmVkIGxpbmUgPSBicmVha3BvaW50LmxpbmUgKyAxOworICAg
IE9wdGlvbmFsPHVuc2lnbmVkPiBjb2x1bW47CisgICAgaWYgKGJyZWFrcG9pbnQuY29sdW1uKQor
ICAgICAgICBjb2x1bW4gPSBicmVha3BvaW50LmNvbHVtbiArIDE7CiAKICAgICBpZiAobGluZSA8
IHN0YXJ0TGluZSB8fCBsaW5lID4gZW5kTGluZSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChj
b2x1bW4gIT0gQnJlYWtwb2ludDo6dW5zcGVjaWZpZWRDb2x1bW4pIHsKKyAgICBpZiAoY29sdW1u
KSB7CiAgICAgICAgIGlmIChsaW5lID09IHN0YXJ0TGluZSAmJiBjb2x1bW4gPCBzdGFydENvbHVt
bikKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKGxpbmUgPT0gZW5kTGluZSAmJiBj
b2x1bW4gPiBlbmRDb2x1bW4pCkBAIC0zNTksMzUgKzM1OCwzNSBAQCB2b2lkIERlYnVnZ2VyOjpy
ZXNvbHZlQnJlYWtwb2ludChCcmVha3BvaW50JiBicmVha3BvaW50LCBTb3VyY2VQcm92aWRlciog
c291cmNlUAogCiAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNjI3NzE+IFdl
YiBJbnNwZWN0b3I6IEFkb3B0IFRleHRQb3NpdGlvbiBpbiBJbnNwZWN0b3IgdG8gYXZvaWQgb25l
QmFzZWRJbnQvemVyb0Jhc2VkSW50IGFtYmlndWl0eQogICAgIC8vIEluc3BlY3RvciBicmVha3Bv
aW50IGxpbmUgYW5kIGNvbHVtbiB2YWx1ZXMgYXJlIHplcm8tYmFzZWQgYnV0IHRoZSBleGVjdXRh
YmxlCi0gICAgLy8gYW5kIENvZGVCbG9jayBsaW5lIGFuZCBjb2x1bW4gdmFsdWVzIGFyZSBvbmUt
YmFzZWQuCi0gICAgdW5zaWduZWQgbGluZSA9IGJyZWFrcG9pbnQubGluZSArIDE7Ci0gICAgdW5z
aWduZWQgY29sdW1uID0gYnJlYWtwb2ludC5jb2x1bW4gPyBicmVha3BvaW50LmNvbHVtbiA6IEJy
ZWFrcG9pbnQ6OnVuc3BlY2lmaWVkQ29sdW1uOworICAgIC8vIGFuZCBDb2RlQmxvY2sgbGluZSB2
YWx1ZXMgYXJlIG9uZS1iYXNlZCB3aGlsZSBjb2x1bW4gaXMgemVyby1iYXNlZC4KKyAgICBpbnQg
bGluZSA9IGJyZWFrcG9pbnQubGluZSArIDE7CisgICAgaW50IGNvbHVtbiA9IGJyZWFrcG9pbnQu
Y29sdW1uOwogCiAgICAgLy8gQWNjb3VudCBmb3IgYSA8c2NyaXB0PidzIHN0YXJ0IHBvc2l0aW9u
IG9uIHRoZSBmaXJzdCBsaW5lIG9ubHkuCi0gICAgdW5zaWduZWQgcHJvdmlkZXJTdGFydExpbmUg
PSBzb3VyY2VQcm92aWRlci0+c3RhcnRQb3NpdGlvbigpLm1fbGluZS5vbmVCYXNlZEludCgpOyAv
LyBPbmUgYmFzZWQgdG8gbWF0Y2ggdGhlIGFscmVhZHkgYWRqdXN0ZWQgbGluZS4KLSAgICB1bnNp
Z25lZCBwcm92aWRlclN0YXJ0Q29sdW1uID0gc291cmNlUHJvdmlkZXItPnN0YXJ0UG9zaXRpb24o
KS5tX2NvbHVtbi56ZXJvQmFzZWRJbnQoKTsgLy8gWmVybyBiYXNlZCBzbyBjb2x1bW4gemVybyBp
cyB6ZXJvLgotICAgIGlmIChsaW5lID09IHByb3ZpZGVyU3RhcnRMaW5lICYmIGNvbHVtbiAhPSBC
cmVha3BvaW50Ojp1bnNwZWNpZmllZENvbHVtbikgeworICAgIGludCBwcm92aWRlclN0YXJ0TGlu
ZSA9IHNvdXJjZVByb3ZpZGVyLT5zdGFydFBvc2l0aW9uKCkubV9saW5lLm9uZUJhc2VkSW50KCk7
IC8vIE9uZSBiYXNlZCB0byBtYXRjaCB0aGUgYWxyZWFkeSBhZGp1c3RlZCBsaW5lLgorICAgIGlu
dCBwcm92aWRlclN0YXJ0Q29sdW1uID0gc291cmNlUHJvdmlkZXItPnN0YXJ0UG9zaXRpb24oKS5t
X2NvbHVtbi56ZXJvQmFzZWRJbnQoKTsgLy8gWmVybyBiYXNlZCBzbyBjb2x1bW4gemVybyBpcyB6
ZXJvLgorICAgIGlmIChsaW5lID09IHByb3ZpZGVyU3RhcnRMaW5lICYmIGJyZWFrcG9pbnQuY29s
dW1uKSB7CiAgICAgICAgIEFTU0VSVChwcm92aWRlclN0YXJ0Q29sdW1uIDw9IGNvbHVtbik7CiAg
ICAgICAgIGlmIChwcm92aWRlclN0YXJ0Q29sdW1uKQogICAgICAgICAgICAgY29sdW1uIC09IHBy
b3ZpZGVyU3RhcnRDb2x1bW47CiAgICAgfQogCiAgICAgRGVidWdnZXJQYXJzZURhdGEmIHBhcnNl
RGF0YSA9IGRlYnVnZ2VyUGFyc2VEYXRhKGJyZWFrcG9pbnQuc291cmNlSUQsIHNvdXJjZVByb3Zp
ZGVyKTsKLSAgICBPcHRpb25hbDxKU1RleHRQb3NpdGlvbj4gcmVzb2x2ZWRQb3NpdGlvbiA9IHBh
cnNlRGF0YS5wYXVzZVBvc2l0aW9ucy5icmVha3BvaW50TG9jYXRpb25Gb3JMaW5lQ29sdW1uKChp
bnQpbGluZSwgKGludCljb2x1bW4pOworICAgIE9wdGlvbmFsPEpTVGV4dFBvc2l0aW9uPiByZXNv
bHZlZFBvc2l0aW9uID0gcGFyc2VEYXRhLnBhdXNlUG9zaXRpb25zLmJyZWFrcG9pbnRMb2NhdGlv
bkZvckxpbmVDb2x1bW4obGluZSwgY29sdW1uKTsKICAgICBpZiAoIXJlc29sdmVkUG9zaXRpb24p
CiAgICAgICAgIHJldHVybjsKIAotICAgIHVuc2lnbmVkIHJlc29sdmVkTGluZSA9IHJlc29sdmVk
UG9zaXRpb24tPmxpbmU7Ci0gICAgdW5zaWduZWQgcmVzb2x2ZWRDb2x1bW4gPSByZXNvbHZlZFBv
c2l0aW9uLT5vZmZzZXQgLSByZXNvbHZlZFBvc2l0aW9uLT5saW5lU3RhcnRPZmZzZXQgKyAxOwor
ICAgIGludCByZXNvbHZlZExpbmUgPSByZXNvbHZlZFBvc2l0aW9uLT5saW5lOworICAgIGludCBy
ZXNvbHZlZENvbHVtbiA9IHJlc29sdmVkUG9zaXRpb24tPm9mZnNldCAtIHJlc29sdmVkUG9zaXRp
b24tPmxpbmVTdGFydE9mZnNldDsKIAogICAgIC8vIFJlLWFjY291bnQgZm9yIGEgPHNjcmlwdD4n
cyBzdGFydCBwb3NpdGlvbiBvbiB0aGUgZmlyc3QgbGluZSBvbmx5LgotICAgIGlmIChyZXNvbHZl
ZExpbmUgPT0gcHJvdmlkZXJTdGFydExpbmUgJiYgY29sdW1uICE9IEJyZWFrcG9pbnQ6OnVuc3Bl
Y2lmaWVkQ29sdW1uKSB7CisgICAgaWYgKHJlc29sdmVkTGluZSA9PSBwcm92aWRlclN0YXJ0TGlu
ZSAmJiBicmVha3BvaW50LmNvbHVtbikgewogICAgICAgICBpZiAocHJvdmlkZXJTdGFydENvbHVt
bikKICAgICAgICAgICAgIHJlc29sdmVkQ29sdW1uICs9IHByb3ZpZGVyU3RhcnRDb2x1bW47CiAg
ICAgfQogCiAgICAgYnJlYWtwb2ludC5saW5lID0gcmVzb2x2ZWRMaW5lIC0gMTsKLSAgICBicmVh
a3BvaW50LmNvbHVtbiA9IHJlc29sdmVkQ29sdW1uIC0gMTsKKyAgICBicmVha3BvaW50LmNvbHVt
biA9IHJlc29sdmVkQ29sdW1uOwogICAgIGJyZWFrcG9pbnQucmVzb2x2ZWQgPSB0cnVlOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJz
ZURhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyUGFyc2VE
YXRhLmNwcAppbmRleCA5YzMzNWE0YmIxMGFmZjg1YTU3ZmI0NWFhNGEwNWY0ODRiYzUyNTlhLi42
OWJhNGQyMzVkYTIxZjkyOTk2MGFmYjI4N2RlOGNlNjRiY2UwMjQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJzZURhdGEuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclBhcnNlRGF0YS5jcHAKQEAgLTMz
LDQzICszMywyNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogT3B0aW9uYWw8SlNUZXh0UG9zaXRpb24+
IERlYnVnZ2VyUGF1c2VQb3NpdGlvbnM6OmJyZWFrcG9pbnRMb2NhdGlvbkZvckxpbmVDb2x1bW4o
aW50IGxpbmUsIGludCBjb2x1bW4pCiB7Ci0gICAgdW5zaWduZWQgc3RhcnQgPSAwOwotICAgIHVu
c2lnbmVkIGVuZCA9IG1fcG9zaXRpb25zLnNpemUoKTsKLSAgICB3aGlsZSAoc3RhcnQgIT0gZW5k
KSB7Ci0gICAgICAgIHVuc2lnbmVkIG1pZGRsZSA9IHN0YXJ0ICsgKChlbmQgLSBzdGFydCkgLyAy
KTsKLSAgICAgICAgRGVidWdnZXJQYXVzZVBvc2l0aW9uJiBwYXVzZVBvc2l0aW9uID0gbV9wb3Np
dGlvbnNbbWlkZGxlXTsKLSAgICAgICAgaW50IHBhdXNlTGluZSA9IHBhdXNlUG9zaXRpb24ucG9z
aXRpb24ubGluZTsKLSAgICAgICAgaW50IHBhdXNlQ29sdW1uID0gcGF1c2VQb3NpdGlvbi5wb3Np
dGlvbi5vZmZzZXQgLSBwYXVzZVBvc2l0aW9uLnBvc2l0aW9uLmxpbmVTdGFydE9mZnNldDsKLQot
ICAgICAgICBpZiAobGluZSA8IHBhdXNlTGluZSkgewotICAgICAgICAgICAgZW5kID0gbWlkZGxl
OwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGxpbmUgPiBw
YXVzZUxpbmUpIHsKLSAgICAgICAgICAgIHN0YXJ0ID0gbWlkZGxlICsgMTsKLSAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGNvbHVtbiA9PSBwYXVzZUNvbHVt
bikgewotICAgICAgICAgICAgLy8gRm91bmQgYW4gZXhhY3QgcG9zaXRpb24gbWF0Y2guIFJvbGwg
Zm9yd2FyZCBpZiB0aGlzIHdhcyBhIGZ1bmN0aW9uIEVudHJ5LgotICAgICAgICAgICAgLy8gV2Ug
YXJlIGd1YXJlbnRlZWQgdG8gaGF2ZSBhIExlYXZlIGZvciBhbiBFbnRyeSBzbyB3ZSBkb24ndCBu
ZWVkIHRvIGJvdW5kcyBjaGVjay4KLSAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKHBhdXNlUG9zaXRpb24udHlwZSAhPSBEZWJ1Z2dlclBhdXNlUG9zaXRpb25U
eXBlOjpFbnRlcikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9wdGlvbmFsPEpTVGV4dFBv
c2l0aW9uPihwYXVzZVBvc2l0aW9uLnBvc2l0aW9uKTsKLSAgICAgICAgICAgICAgICBwYXVzZVBv
c2l0aW9uID0gbV9wb3NpdGlvbnNbbWlkZGxlKytdOwotICAgICAgICAgICAgfQotICAgICAgICB9
CisgICAgRGVidWdnZXJQYXVzZVBvc2l0aW9uIHBvc2l0aW9uOworICAgIHBvc2l0aW9uLnBvc2l0
aW9uLmxpbmUgPSBsaW5lOworICAgIHBvc2l0aW9uLnBvc2l0aW9uLm9mZnNldCA9IGNvbHVtbjsK
KyAgICBwb3NpdGlvbi5wb3NpdGlvbi5saW5lU3RhcnRPZmZzZXQgPSAwOworICAgIGF1dG8gaXQg
PSBzdGQ6Omxvd2VyX2JvdW5kKG1fcG9zaXRpb25zLmJlZ2luKCksIG1fcG9zaXRpb25zLmVuZCgp
LCBwb3NpdGlvbiwgW10gKGNvbnN0IERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYgYSwgY29uc3QgRGVi
dWdnZXJQYXVzZVBvc2l0aW9uJiBiKSB7CisgICAgICAgIGlmIChhLnBvc2l0aW9uLmxpbmUgPT0g
Yi5wb3NpdGlvbi5saW5lKQorICAgICAgICAgICAgcmV0dXJuIGEucG9zaXRpb24uY29sdW1uKCkg
PCBiLnBvc2l0aW9uLmNvbHVtbigpOworICAgICAgICByZXR1cm4gYS5wb3NpdGlvbi5saW5lIDwg
Yi5wb3NpdGlvbi5saW5lOworICAgIH0pOworICAgIGlmIChpdCA9PSBtX3Bvc2l0aW9ucy5lbmQo
KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgICAgICBpZiAoY29sdW1uIDwg
cGF1c2VDb2x1bW4pCi0gICAgICAgICAgICBlbmQgPSBtaWRkbGU7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHN0YXJ0ID0gbWlkZGxlICsgMTsKKyAgICBpZiAobGluZSA9PSBpdC0+cG9zaXRp
b24ubGluZSAmJiBjb2x1bW4gPT0gaXQtPnBvc2l0aW9uLmNvbHVtbigpKSB7CisgICAgICAgIC8v
IEZvdW5kIGFuIGV4YWN0IHBvc2l0aW9uIG1hdGNoLiBSb2xsIGZvcndhcmQgaWYgdGhpcyB3YXMg
YSBmdW5jdGlvbiBFbnRyeS4KKyAgICAgICAgLy8gV2UgYXJlIGd1YXJhbnRlZWQgdG8gaGF2ZSBh
IExlYXZlIGZvciBhbiBFbnRyeSBzbyB3ZSBkb24ndCBuZWVkIHRvIGJvdW5kcyBjaGVjay4KKyAg
ICAgICAgd2hpbGUgKGl0LT50eXBlID09IERlYnVnZ2VyUGF1c2VQb3NpdGlvblR5cGU6OkVudGVy
KQorICAgICAgICAgICAgKytpdDsKKyAgICAgICAgcmV0dXJuIGl0LT5wb3NpdGlvbjsKICAgICB9
CiAKLSAgICAvLyBQYXN0IHRoZSBlbmQsIG5vIHBvc3NpYmxlIHBhdXNlIGxvY2F0aW9ucy4KLSAg
ICBpZiAoc3RhcnQgPj0gbV9wb3NpdGlvbnMuc2l6ZSgpKQotICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwotCiAgICAgLy8gSWYgdGhlIG5leHQgbG9jYXRpb24gaXMgYSBmdW5jdGlvbiBFbnRy
eSB3ZSB3aWxsIG5lZWQgdG8gZGVjaWRlIGlmIHdlIHNob3VsZCBnbyBpbnRvCiAgICAgLy8gdGhl
IGZ1bmN0aW9uIG9yIGdvIHBhc3QgdGhlIGZ1bmN0aW9uLiBXZSBkZWNpZGUgdG8gZ28gaW50byB0
aGUgZnVuY3Rpb24gaWYgdGhlCiAgICAgLy8gaW5wdXQgaXMgb24gdGhlIHNhbWUgbGluZSBhcyB0
aGUgZnVuY3Rpb24gZW50cnkuIEZvciBleGFtcGxlOgpAQCAtODYsNyArNjksNyBAQCBPcHRpb25h
bDxKU1RleHRQb3NpdGlvbj4gRGVidWdnZXJQYXVzZVBvc2l0aW9uczo6YnJlYWtwb2ludExvY2F0
aW9uRm9yTGluZUNvbHVtbgogICAgIC8vIElmIHRoZSBpbnB1dCB3YXMgbGluZSAzLCBnbyBpbnRv
IHRoZSBmdW5jdGlvbiB0byBwYXVzZSBvbiBsaW5lIDQuCiAKICAgICAvLyBWYWxpZCBwYXVzZSBs
b2NhdGlvbi4gVXNlIGl0LgotICAgIERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYgZmlyc3RTbGlkZVBv
c2l0aW9uID0gbV9wb3NpdGlvbnNbc3RhcnRdOworICAgIERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYg
Zmlyc3RTbGlkZVBvc2l0aW9uID0gKml0OwogICAgIGlmIChmaXJzdFNsaWRlUG9zaXRpb24udHlw
ZSAhPSBEZWJ1Z2dlclBhdXNlUG9zaXRpb25UeXBlOjpFbnRlcikKICAgICAgICAgcmV0dXJuIE9w
dGlvbmFsPEpTVGV4dFBvc2l0aW9uPihmaXJzdFNsaWRlUG9zaXRpb24ucG9zaXRpb24pOwogCkBA
IC05NCw4ICs3Nyw5IEBAIE9wdGlvbmFsPEpTVGV4dFBvc2l0aW9uPiBEZWJ1Z2dlclBhdXNlUG9z
aXRpb25zOjpicmVha3BvaW50TG9jYXRpb25Gb3JMaW5lQ29sdW1uCiAgICAgLy8gSWYgZW50cnlT
dGFja1NpemUgaXMgPiAwIHdlIGFyZSBza2lwcGluZyBmdW5jdGlvbnMuCiAgICAgYm9vbCBzaG91
bGRFbnRlckZ1bmN0aW9uID0gZmlyc3RTbGlkZVBvc2l0aW9uLnBvc2l0aW9uLmxpbmUgPT0gbGlu
ZTsKICAgICBpbnQgZW50cnlTdGFja1NpemUgPSBzaG91bGRFbnRlckZ1bmN0aW9uID8gMCA6IDE7
Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQgKyAxOyBpIDwgbV9wb3NpdGlvbnMuc2l6ZSgp
OyArK2kpIHsKLSAgICAgICAgRGVidWdnZXJQYXVzZVBvc2l0aW9uJiBzbGlkZVBvc2l0aW9uID0g
bV9wb3NpdGlvbnNbaV07CisgICAgKytpdDsKKyAgICBmb3IgKDsgaXQgIT0gbV9wb3NpdGlvbnMu
ZW5kKCk7ICsraXQpIHsKKyAgICAgICAgYXV0byYgc2xpZGVQb3NpdGlvbiA9ICppdDsKICAgICAg
ICAgQVNTRVJUKGVudHJ5U3RhY2tTaXplID49IDApOwogCiAgICAgICAgIC8vIEFscmVhZHkgc2tp
cHBpbmcgZnVuY3Rpb25zLgpAQCAtMTI0LDYgKzEwOCw4IEBAIE9wdGlvbmFsPEpTVGV4dFBvc2l0
aW9uPiBEZWJ1Z2dlclBhdXNlUG9zaXRpb25zOjpicmVha3BvaW50TG9jYXRpb25Gb3JMaW5lQ29s
dW1uCiB2b2lkIERlYnVnZ2VyUGF1c2VQb3NpdGlvbnM6OnNvcnQoKQogewogICAgIHN0ZDo6c29y
dChtX3Bvc2l0aW9ucy5iZWdpbigpLCBtX3Bvc2l0aW9ucy5lbmQoKSwgW10gKGNvbnN0IERlYnVn
Z2VyUGF1c2VQb3NpdGlvbiYgYSwgY29uc3QgRGVidWdnZXJQYXVzZVBvc2l0aW9uJiBiKSB7Cisg
ICAgICAgIGlmIChhLnBvc2l0aW9uLm9mZnNldCA9PSBiLnBvc2l0aW9uLm9mZnNldCkKKyAgICAg
ICAgICAgIHJldHVybiBhLnR5cGUgPCBiLnR5cGU7CiAgICAgICAgIHJldHVybiBhLnBvc2l0aW9u
Lm9mZnNldCA8IGIucG9zaXRpb24ub2Zmc2V0OwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyUGFyc2VEYXRhLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJzZURhdGEuaAppbmRleCA5NjU5YjFk
MDI4M2YzZGY5Y2M5NWU3YTkzYzNjNjllOGQyM2EyZGMxLi41NjU5YmY4Mjc4YzU1Y2EyMzFjYTY3
ZmJlNzc5YTY2YzVmMjI3ZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJQYXJzZURhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJQYXJzZURhdGEuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIGNsYXNzIFNvdXJjZVByb3ZpZGVyOwogY2xhc3MgVk07CiAKLWVudW0gY2xhc3MgRGVidWdn
ZXJQYXVzZVBvc2l0aW9uVHlwZSB7IEVudGVyLCBMZWF2ZSwgUGF1c2UgfTsKK2VudW0gY2xhc3Mg
RGVidWdnZXJQYXVzZVBvc2l0aW9uVHlwZSB7IEVudGVyLCBQYXVzZSwgTGVhdmUgfTsKIHN0cnVj
dCBEZWJ1Z2dlclBhdXNlUG9zaXRpb24gewogICAgIERlYnVnZ2VyUGF1c2VQb3NpdGlvblR5cGUg
dHlwZTsKICAgICBKU1RleHRQb3NpdGlvbiBwb3NpdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbgppbmRleCAxNWFi
ZDM2MjY0MGJhN2RhYzZmNjY4MjJmYWUyMTJhNWFhOTk4NGZlLi4xNmQ0MTEwZmQyZDMzNTA4NDJj
OTZjYWZjODY0YWE2YjZlMzg3OTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9wcm90b2NvbC9EZWJ1Z2dlci5qc29uCkBAIC0yOCw4ICsyOCw4IEBACiAg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gaW4gdGhlIHNvdXJjZSBjb2RlLiIs
CiAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNjcmlwdElkIiwgIiRyZWYiOiAiU2NyaXB0SWQiLCAiZGVzY3JpcHRpb24iOiAiU2NyaXB0IGlk
ZW50aWZpZXIgYXMgcmVwb3J0ZWQgaW4gdGhlIDxjb2RlPkRlYnVnZ2VyLnNjcmlwdFBhcnNlZDwv
Y29kZT4uIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibGluZU51bWJlciIsICJ0eXBl
IjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiTGluZSBudW1iZXIgaW4gdGhlIHNjcmlwdC4i
IH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb2x1bW5OdW1iZXIiLCAidHlwZSI6ICJp
bnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNvbHVtbiBudW1iZXIg
aW4gdGhlIHNjcmlwdC4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImxpbmVOdW1iZXIi
LCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIkxpbmUgbnVtYmVyIGluIHRoZSBz
Y3JpcHQgKDAtYmFzZWQpLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbHVtbk51
bWJlciIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiQ29sdW1uIG51bWJlciBpbiB0aGUgc2NyaXB0ICgwLWJhc2VkKS4iIH0KICAgICAgICAgICAg
IF0KICAgICAgICAgfSwKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
UGFyc2VyVG9rZW5zLmgKaW5kZXggNzIwNjRiOTI4NDgxNjZmNmRlMmIyM2Y4YTNmNThjOTgxYjc2
NzllOS4uN2FkMGI5OTI3NGNiYjRlMzkwOWFjYzdiY2Q3ODgyMzdhNzdiYWNlNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCkBAIC0yMTcsNiArMjE3LDgg
QEAgc3RydWN0IEpTVGV4dFBvc2l0aW9uIHsKICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3Ro
ZXIpOwogICAgIH0KIAorICAgIGludCBjb2x1bW4oKSBjb25zdCB7IHJldHVybiBvZmZzZXQgLSBs
aW5lU3RhcnRPZmZzZXQ7IH0KKwogICAgIGludCBsaW5lIHsgMCB9OwogICAgIGludCBvZmZzZXQg
eyAwIH07CiAgICAgaW50IGxpbmVTdGFydE9mZnNldCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcApp
bmRleCA3NzJlYzc0NjkxM2NjNjhkYjk5ZWFiYWM5MTMxMTM5ZTliNzQ4ZmZhLi4xYmUxOTdiNjEz
N2Y5ODRjY2I3N2Q5MDY3MjU3MjM4ZGM0MDUxYzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCkBAIC04
MSwxOCArODEsMzQgQEAgcHVibGljOgogICAgICAgICBBU1NFUlRfQVJHKG1lc3NhZ2UsICFtZXNz
YWdlLmlzRW1wdHkoKSk7CiAKICAgICAgICAgbV9tZXNzYWdlcy5hcHBlbmQobWVzc2FnZSk7Ci0g
ICAgICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgbV90aW1lci5zdGFy
dE9uZVNob3QoMF9zKTsKKyAgICAgICAgc2NoZWR1bGVPbmVTaG90KCk7CiAgICAgfQogCiAgICAg
dm9pZCByZXNldCgpCiAgICAgewogICAgICAgICBtX21lc3NhZ2VzLmNsZWFyKCk7Ci0gICAgICAg
IG1fdGltZXIuc3RvcCgpOwogICAgICAgICBtX2luc3BlY3RlZFBhZ2VDb250cm9sbGVyID0gbnVs
bHB0cjsKICAgICB9CiAKLSAgICB2b2lkIHRpbWVyRmlyZWQoKQorcHJpdmF0ZToKKyAgICBJbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RlZFBh
Z2VDb250cm9sbGVyKQorICAgICAgICA6IG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIoaW5zcGVj
dGVkUGFnZUNvbnRyb2xsZXIpCisgICAgeworICAgICAgICBBU1NFUlRfQVJHKGluc3BlY3RlZFBh
Z2VDb250cm9sbGVyLCBpbnNwZWN0ZWRQYWdlQ29udHJvbGxlcik7CisgICAgfQorCisgICAgdm9p
ZCBzY2hlZHVsZU9uZVNob3QoKQorICAgIHsKKyAgICAgICAgaWYgKG1faGFzU2NoZWR1bGVkVGFz
aykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9oYXNTY2hlZHVsZWRUYXNrID0gdHJ1
ZTsKKyAgICAgICAgUnVuTG9vcDo6Y3VycmVudCgpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgICAgIG1faGFzU2NoZWR1bGVkVGFzayA9
IGZhbHNlOworICAgICAgICAgICAgZGlzcGF0Y2hPbmVNZXNzYWdlKCk7CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIHZvaWQgZGlzcGF0Y2hPbmVNZXNzYWdlKCkKICAgICB7CiAgICAgICAgIEFT
U0VSVChtX2luc3BlY3RlZFBhZ2VDb250cm9sbGVyKTsKIApAQCAtMTA0LDIwICsxMjAsMTIgQEAg
cHVibGljOgogICAgICAgICAgICAgbV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxlci0+ZGlzcGF0Y2hN
ZXNzYWdlRnJvbUZyb250ZW5kKG1fbWVzc2FnZXMudGFrZUZpcnN0KCkpOwogCiAgICAgICAgIGlm
ICghbV9tZXNzYWdlcy5pc0VtcHR5KCkgJiYgbV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxlcikKLSAg
ICAgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDBfcyk7Ci0gICAgfQotCi1wcml2YXRlOgot
ICAgIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRhc2soSW5zcGVjdG9yQ29udHJvbGxlciogaW5z
cGVjdGVkUGFnZUNvbnRyb2xsZXIpCi0gICAgICAgIDogbV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxl
cihpbnNwZWN0ZWRQYWdlQ29udHJvbGxlcikKLSAgICAgICAgLCBtX3RpbWVyKCp0aGlzLCAmSW5z
cGVjdG9yQmFja2VuZERpc3BhdGNoVGFzazo6dGltZXJGaXJlZCkKLSAgICB7Ci0gICAgICAgIEFT
U0VSVF9BUkcoaW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIsIGluc3BlY3RlZFBhZ2VDb250cm9sbGVy
KTsKKyAgICAgICAgICAgIHNjaGVkdWxlT25lU2hvdCgpOwogICAgIH0KIAogICAgIEluc3BlY3Rv
ckNvbnRyb2xsZXIqIG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIgeyBudWxscHRyIH07Ci0gICAg
VGltZXIgbV90aW1lcjsKICAgICBEZXF1ZTxTdHJpbmc+IG1fbWVzc2FnZXM7CisgICAgYm9vbCBt
X2hhc1NjaGVkdWxlZFRhc2sgeyBmYWxzZSB9OwogfTsKIAogU3RyaW5nIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWw6OlNldHRpbmdzOjpnZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcmKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGU5ZWZkNWRlMGZkNDA2ZGU2ZWIyZjFiZjY2ZTViZmZjYjMwZjcxOTIuLjZhNTA4MGNhYjRj
OGU3YTk5Yzc0Y2VkNzE4OGRkZjVlZTk2OTRmMWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
OS0wOS0yMCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiB0ZXN0cyB1bmRlciBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIgYXJlIGZsYWt5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzcxMzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE4NDYxMzM1PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBpbnNwZWN0b3Iv
ZGVidWdnZXIgdGVzdHMgb24gR1RLLgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrcG9pbnRzL3Jlc29sdmVkLWR1bXAtYWxsLXBhdXNlLWxvY2F0aW9ucy1leHBlY3RlZC50eHQ6
IFJlYmFzZWxpbmVkIHRoZSB0ZXN0CisgICAgICAgIGFmdGVyIGNoYW5nZXMgaW4gdGhlIGJyZWFr
cG9pbnQgcmVzb2x1dGlvbiBjb2RlLiBOb3cgdGhlIG91dHB1dCBvbiBHVEsgaXMgdGhlIHNhbWUg
YXMgb24gTWFjLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorCiAy
MDE5LTA5LTE5ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgSFRN
TFZpZGVvRWxlbWVudCB3aXRoIGEgYnJva2VuIHBvc3RlciBpbWFnZSB3aWxsIHRha2Ugc3F1YXJl
IGRpbWVuc2lvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrcG9pbnRzL3Jlc29sdmVkLWR1bXAtYWxsLXBhdXNlLWxvY2F0aW9ucy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludHMvcmVzb2x2ZWQtZHVt
cC1hbGwtcGF1c2UtbG9jYXRpb25zLWV4cGVjdGVkLnR4dAppbmRleCA2MWJiM2RjMGI3MjlhMWJk
NmQ0NzBkZjZhN2ViNjRkNTk3ZWNhMTRjLi5jYzA4ZDk0OWNlYjQzZjk1OWZlMjc4YjZhNmRkMTA0
OTE5OGUwODQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWtwb2ludHMvcmVzb2x2ZWQtZHVtcC1hbGwtcGF1c2UtbG9jYXRpb25zLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludHMvcmVzb2x2ZWQt
ZHVtcC1hbGwtcGF1c2UtbG9jYXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMjE2Niw3ICsyMTY2LDcg
QEAgUEFVU0VTIEFUOiA4OTo3CiAgICAgIDkyICAgICAgICB4CiAKIElOU0VSVElORyBBVDogODk6
OAotUEFVU0VTIEFUOiA5NDowCitQQVVTRVMgQVQ6IDk4OjAKICAgICAgODYgICAgCiAgICAgIDg3
ICAgIHggPT4geDsKICAgICAgODggICAgKCkgPT4gMTsKQEAgLTIxNzUsMTAgKzIxNzUsMTQgQEAg
UEFVU0VTIEFUOiA5NDowCiAgICAgIDkxICAgICh4KSA9PiB7CiAgICAgIDkyICAgICAgICB4CiAg
ICAgIDkzICAgIH07Ci0gPT4gIDk0ICAgIHwoKSA9PiB7CisgICAgIDk0ICAgICgpID0+IHsKICAg
ICAgOTUgICAgICAgIHZhciB4OwogICAgICA5NiAgICB9OwogICAgICA5NyAgICAKKyA9PiAgOTgg
ICAgfHZhciBmT2JqID0geworICAgICA5OSAgICAgICAgZjE6IGZ1bmN0aW9uKCkgeworICAgIDEw
MCAgICAgICAgICAgIHZhciB4OworICAgIDEwMSAgICAgICAgfSwKIAogSU5TRVJUSU5HIEFUOiA5
MDowCiBQQVVTRVMgQVQ6IDkwOjAKQEAgLTIyNDIsNiArMjI0NiwxNiBAQCBQQVVTRVMgQVQ6IDkz
OjAKICAgICAgOTUgICAgICAgIHZhciB4OwogICAgICA5NiAgICB9OwogCitJTlNFUlRJTkcgQVQ6
IDk0OjAKK1BBVVNFUyBBVDogOTQ6MAorICAgICA5MSAgICAoeCkgPT4geworICAgICA5MiAgICAg
ICAgeAorICAgICA5MyAgICB9OworLT0+ICA5NCAgICB8KCkgPT4geworICAgICA5NSAgICAgICAg
dmFyIHg7CisgICAgIDk2ICAgIH07CisgICAgIDk3ICAgIAorCiBJTlNFUlRJTkcgQVQ6IDk0OjEK
IFBBVVNFUyBBVDogOTU6NAogICAgICA5MSAgICAoeCkgPT4gewpAQCAtMjI2NCwxOCArMjI3OCw2
IEBAIFBBVVNFUyBBVDogOTY6MAogICAgICA5OCAgICB2YXIgZk9iaiA9IHsKICAgICAgOTkgICAg
ICAgIGYxOiBmdW5jdGlvbigpIHsKIAotSU5TRVJUSU5HIEFUOiA5NjoxCi1QQVVTRVMgQVQ6IDk4
OjAKLSAgICAgOTMgICAgfTsKLSAgICAgOTQgICAgKCkgPT4gewotICAgICA5NSAgICAgICAgdmFy
IHg7Ci0gLT4gIDk2ICAgIH0jOwotICAgICA5NyAgICAKLSA9PiAgOTggICAgfHZhciBmT2JqID0g
ewotICAgICA5OSAgICAgICAgZjE6IGZ1bmN0aW9uKCkgewotICAgIDEwMCAgICAgICAgICAgIHZh
ciB4OwotICAgIDEwMSAgICAgICAgfSwKLQogSU5TRVJUSU5HIEFUOiA5OTowCiBQQVVTRVMgQVQ6
IDEwMDo4CiAgICAgIDk2ICAgIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDZlMTllMTUxMjNlNDRhYjc3MDI4YzVkZjI2NDk0MjBhN2Y2MjM5ZWQuLjlk
YWFhODdhZjJhYzU4M2U4MDA4YmFmN2FlZjI1NDJiYzMwMGE4MzUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMzExLDIxICsyMzExLDggQEAgd2Via2l0
Lm9yZy9iLzExNjk1NyBtZWRpYS90cmFjay90cmFjay1hdXRvbWF0aWMtc3VidGl0bGVzLmh0bWwg
WyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzEyMDY4MiBpbnNwZWN0b3IvcGFnZS9hcmNoaXZl
Lmh0bWwgWyBUaW1lb3V0IF0KIAord2Via2l0Lm9yZy9iLzE0NzUxOCBpbnNwZWN0b3IvZGVidWdn
ZXIvbmVzdGVkLWluc3BlY3RvcnMuaHRtbCBbIFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzEyMjU3
MSBodHRwL3Rlc3RzL2luc3BlY3Rvci9kb20vY3Jvc3MtZG9tYWluLWluc3BlY3RlZC1ub2RlLWFj
Y2Vzcy5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9y
L2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3Jn
L2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUuaHRt
bCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50LW9wdGlvbnMtZXhjZXB0aW9uLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQot
d2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlv
bnMtYWxsLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0
b3IvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS5odG1sIFsgVGltZW91dCBQYXNz
IF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhp
cy1ob3N0Lmh0bWwgWyBUaW1lb3V0IFBhc3MgQ3Jhc2ggXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBp
bnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbCBbIFRpbWVv
dXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRQYXVz
ZU9uRXhjZXB0aW9ucy11bmNhdWdodC5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcv
Yi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy5odG1sIFsg
RmFpbHVyZSBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVi
dWdnZXIvY2FsbC1mcmFtZS10aGlzLW5vbnN0cmljdC5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdl
YmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1u
Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24uaHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJr
aXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWwg
WyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIv
Y2FsbC1mcmFtZS10aGlzLXN0cmljdC5odG1sIFsgVGltZW91dCBQYXNzIF0KIHdlYmtpdC5vcmcv
Yi8xMjI1NzEgaW5zcGVjdG9yL2RvbS9yZXF1ZXN0LWNoaWxkLW5vZGVzLWRlcHRoLmh0bWwgWyBU
aW1lb3V0IFBhc3MgXQogd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZG9tL2ZvY3VzLmh0
bWwgWyBGYWlsdXJlIFRpbWVvdXQgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rv
ci9ydW50aW1lL2dldFByb3BlcnRpZXMuaHRtbCBbIFRpbWVvdXQgUGFzcyBDcmFzaCBdCkBAIC0y
MzcwLDcgKzIzNTcsNiBAQCB3ZWJraXQub3JnL2IvMTM2Njc0IG1lZGlhL3RyYWNrL3RyYWNrLWN1
ZS1yZW5kZXJpbmctd2l0aC1wYWRkaW5nLmh0bWwgWyBUaW1lb3V0CiAKIHdlYmtpdC5vcmcvYi8x
Mzc2OTggbWVkaWEvdmlkZW8tY29udHJvbHMtZHJhZy5odG1sIFsgVGltZW91dCBdCiAKLXdlYmtp
dC5vcmcvYi8xMzcxMzEgaW5zcGVjdG9yL2RlYnVnZ2VyIFsgU2tpcCBdCiB3ZWJraXQub3JnL2Iv
MTQ3NTE4IGluc3BlY3Rvci9kb20gWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNDc1MTggaW5zcGVj
dG9yL21vZGVsIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTQ3NTE4IGluc3BlY3Rvci90aW1lbGlu
ZSBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379664</attachid>
            <date>2019-09-26 11:32:19 -0700</date>
            <delta_ts>2019-09-27 10:59:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137131-20190926113219.patch</filename>
            <type>text/plain</type>
            <size>25724</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMzgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
YTE5MDQ5YmQzMDAxZWE5YTdmZjhlMGExYzIwMjRkMzdiOTMwNzhlLi4xMGE1NmMwNzgzNmRiMWIx
OWY5Zjg2NjYwNGVlOTkwZmVhYzk2NWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOS0wOS0yNCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB0ZXN0cyB1bmRlciBMYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIgYXJlIGZsYWt5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzcxMzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE4NDYx
MzM1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENo
YW5nZWQgYnJlYWtwb2ludCByZXNvbHV0aW9uIGxvZ2ljIHRvIG1ha2UgaXQgY29uc2lzdGVudCBh
Y3Jvc3MgcGxhdGZvcm1zIGFuZAorICAgICAgICBiZXR0ZXIgaGFuZGxlIHRoZSBjYXNlIHdoZW4g
dGhlcmUgYXJlIHNldmVyYWwgRGVidWdnZXJQYXVzZVBvc2l0aW9ucyBhdCB0aGUgc2FtZQorICAg
ICAgICBvZmZzZXQgKGJ1dCB3aXRoIGRpZmZlcmVudCB0eXBlcykuCisKKyAgICAgICAgKiBieXRl
Y29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6Omhhc09wRGVidWdG
b3JMaW5lQW5kQ29sdW1uKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAg
ICAgKiBkZWJ1Z2dlci9CcmVha3BvaW50Lmg6IFJlbW92ZWQgQnJlYWtwb2ludDo6dW5zcGVjaWZp
ZWRDb2x1bW4sIE9wdGlvbmFsPHVuc2lnbmVkPgorICAgICAgICBpcyB1c2VkIGluc3RlYWQgd2hl
cmUgbmVlZGVkLiBJdCBhbGxvd3MgdG8gYXZvaWQgY29kZSB0aGF0IHJlbGllcyBvbiAoaW50KVVJ
TlRfTUFYID0+IC0xCisgICAgICAgIGNvbnZlcnNpb24uCisKKyAgICAgICAgKiBkZWJ1Z2dlci9E
ZWJ1Z2dlci5jcHA6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyOjpyZXNvbHZlQnJlYWtwb2ludCk6
IGNsYXJpZmllZCB0aGF0IGluIHRoZSBtYXAgY29sdW1ucyBhcmUgMC1iYXNlZC4KKyAgICAgICAg
KiBkZWJ1Z2dlci9EZWJ1Z2dlclBhcnNlRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkRlYnVnZ2Vy
UGF1c2VQb3NpdGlvbnM6OmJyZWFrcG9pbnRMb2NhdGlvbkZvckxpbmVDb2x1bW4pOiByZXBsYWNl
ZCBjdXN0b20KKyAgICAgICAgYmluYXJ5IHNlYXJjaCB3aXRoIHN0ZDo6bG93ZXJfYm91bmQuIElm
IHRoZXJlIGFyZSBzZXZlcmFsIHBhdXNlIHBvc2l0aW9ucyBhdCB0aGUKKyAgICAgICAgc2FtZSBv
ZmZzZXQgdGhleSB3aWxsIGJlIHNvcnRlZCBieSB0aGUgdHlwZSBhbmQgdGhlIGFsZ29yaXRobSBp
cyBndWFyYW50ZWVkIHRvIHNlZQorICAgICAgICBsZWZ0bW9zdCBvbmUgZmlyc3QuCisKKyAgICAg
ICAgKEpTQzo6RGVidWdnZXJQYXVzZVBvc2l0aW9uczo6c29ydCk6IHVzZSB0eXBlIGFzIHNlY29u
ZGFyeSBvcmRlcmluZyBjb21wb25lbnQuCisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJQYXJz
ZURhdGEuaDogUmVhcnJhbmdlZCB0eXBlIGNvbnN0YW50cyBzbyB0aGF0IEVudGVyIDwgUGF1c2Ug
PCBMZWF2ZQorICAgICAgICB0aGlzIGNoYW5nZSBhbG9uZyB3aXRoIHNvcnRpbmcgYnkgdHlwZSBz
aG91bGQgZ3VhcmFudGVlIHRoYXQgaW4gY2FzZSBvZiBzZXZlcmFsIHBhdXNlCisgICAgICAgIHBv
c2l0aW9ucyBhdCB0aGUgc2FtZSBsaW5lIEVudGVyIGdvZXMgYmVmb3JlIFBhdXNlIGJlZm9yZSBM
ZWF2ZSBhbmQgdGhlIGJyZWFrcG9pbnQKKyAgICAgICAgcmVzb2x1dGlvbiB3aWxsIHlpZWxkIHJl
c3VsdCBzaW1pbGFyIHRvIHRoYXQgd2hlbiBlYWNoIHBhdXNlIGxvY2F0aW9ucyBoYXMgZGlmZmVy
ZW50CisgICAgICAgIHBvc2l0aW9uLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0Rl
YnVnZ2VyLmpzb246IGNsYXJpZmllZCB0aGF0IHBvc2l0aW9ucyBhcmUgMC1iYXNlZC4KKyAgICAg
ICAgKiBwYXJzZXIvUGFyc2VyVG9rZW5zLmg6CisgICAgICAgIChKU0M6OkpTVGV4dFBvc2l0aW9u
Ojpjb2x1bW4gY29uc3QpOiBhZGRlZCBoZWxwZXIgbWV0aG9kIGZvciBjb21wdXRpbmcgY29sdW1u
LgorCiAyMDE5LTA5LTI1ICBHdWlsbGF1bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdhbGlhLmNvbT4K
IAogICAgICAgICB0ZXN0YXBpOiBzbG93IGRldmljZXMgbmVlZCBtb3JlIHRpbWUgYmVmb3JlIHdh
dGNoZG9nIGZpcmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzRjZjFjY2U4YTZkY2JhZDEzOTk4MmNlZTI2OGZk
OWJlNmVmMDdmMS4uMTlhMWI1YzRkYjJjYmZmMjlkNDkzZWFmZWJjODc5YjkwZDQzZjU3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE5LTA5LTIwICBZdXJ5IFNlbWlraGF0c2t5ICA8
eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHRlc3RzIHVuZGVy
IExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlciBhcmUgZmxha3kKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzEzMQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMTg0NjEzMzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRml4IGRlYnVnZ2VyIHRlc3RzIG9uIEdUSy4gQWxsIHRlc3RzIHRoYXQgcGF1
c2Ugb24gYnJlYWtwb2ludCBkaWRuJ3Qgd29yayBiZWNhdXNlCisgICAgICAgIGluIGxheW91dCB0
ZXN0cyBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsIHdhcyB1c2luZyBUaW1lciB0byBkaXNw
YXRjaCBjb21tYW5kcworICAgICAgICBzZW50IGZyb20gdGhlIGxvY2FsIGZyb250LWVuZCBwYWdl
IHRvIHRoZSBpbnNwZWN0ZWQgb25lLiBXaGVuIHBhdXNlZCBpbnNpZGUgYSBzY3JpcHQKKyAgICAg
ICAgdHJpZ2dlcmVkIGJ5IHRoZSBmcm9udC1lbmQgbmVzdGVkIHRpbWVyIGV2ZW50IHdvdWxkIGJl
IHNjaGVkdWxlZCBidXQgbmV2ZXIgZmlyZWQKKyAgICAgICAgYmVjYXVzZSBpbiBnbGliIGltcGxl
bWVudGF0aW9uIG9mIFJ1bkxvb3A6OlRpbWVyQmFzZSB1c2VzIGV2ZW50IHNvdXJjZSB3aGljaCBk
b2Vzbid0CisgICAgICAgIGFsbG93IHJlY3Vyc2lvbiAoZ19zb3VyY2Vfc2V0X2Nhbl9yZWN1cnNl
IGlzIG5vdCBjYWxsZWQgb24gdGhlIHNvdXJjZSksIHNvIGRpc3BhdGNoaW5nCisgICAgICAgIERl
YnVnZ2VyLnJlc3VtZSBjb21tYW5kIGRpZG4ndCB3b3JrIHdoZW4gcGF1c2VkIGluc2lkZSBhbm90
aGVyIGluc3BlY3RvciBjb21tYW5kIChlLmcuCisgICAgICAgIGV2YWwpLiBSdW5Mb29wIGl0c2Vs
ZiB1c2VzIGV2ZW50IHNvdXJjZSB3aGljaCBkb2VzIGFsbG93IHJlY3Vyc2lvbi4gU28gaW5zdGVh
ZCBvZiB1c2luZworICAgICAgICBhIHRpbWVyIGZvciBhc3luY2hyb25vdXMgY29tbWFuZCBkaXNw
YXRjaGluZyB3aXRoIGRlbGF5PTAgd2Ugbm93IHNjaGVkdWxlIGEgdGFzayBpbgorICAgICAgICBS
dW5Mb29wJ3MgcXVldWUuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hUYXNrOjpkaXNwYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hUYXNrOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hUYXNrOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRhc2s6OnNjaGVkdWxlT25lU2hvdCk6IGVuc3Vy
ZXMgdGhhdCB0aGVyZSBpcyBvbmUgaW5zcGVjdG9yCisgICAgICAgIGRpc3BhdGNoIHRhc2sgaW4g
dGhlIHF1ZXVlLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoVGFz
azo6ZGlzcGF0Y2hPbmVNZXNzYWdlKTogdGhpcyBpcyBtb3N0bHkgdGhlIHNhbWUgYmVoYXZpb3IK
KyAgICAgICAgYXMgd2FzIHdpdGggdGltZXJGaXJlZCwgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZGlz
cGF0Y2ggYWxsIGFjY3VtdWxhdGVkIG1lc3NhZ2VzIGZyb20gdGhlIHF1ZXVlCisgICAgICAgIGlu
IG9uZSBiYXRjaCBidXQgZm9yIG5vdyBJJ2QgbGlrZSB0byBrZWVwIGl0IG9uZSBwZXIgaXRlcmF0
aW9uLgorCiAyMDE5LTA5LTI2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBGbGFreSBUZXN0OiBpbnNwZWN0b3IvY2FudmFzL3VwZGF0ZVNoYWRlci5odG1sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IGZhZDk1
ZTI5YWZjYzA4OTQ5YWIyMTM4ZWJlNTNjZDFhMTQ2MzA4Y2YuLjlkNDhlMGJiYTJjYWZmZTAyODE5
ZjAyNTU3ZGZkMjk2OGZjNWNhMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suY3BwCkBAIC0xODY2LDcgKzE4NjYsNyBAQCB2b2lkIENvZGVCbG9jazo6ZXhw
cmVzc2lvblJhbmdlRm9yQnl0ZWNvZGVPZmZzZXQodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQsIGlu
dCYgZAogICAgIGxpbmUgKz0gb3duZXJFeGVjdXRhYmxlKCktPmZpcnN0TGluZSgpOwogfQogCi1i
b29sIENvZGVCbG9jazo6aGFzT3BEZWJ1Z0ZvckxpbmVBbmRDb2x1bW4odW5zaWduZWQgbGluZSwg
dW5zaWduZWQgY29sdW1uKQorYm9vbCBDb2RlQmxvY2s6Omhhc09wRGVidWdGb3JMaW5lQW5kQ29s
dW1uKHVuc2lnbmVkIGxpbmUsIE9wdGlvbmFsPHVuc2lnbmVkPiBjb2x1bW4pCiB7CiAgICAgY29u
c3QgSW5zdHJ1Y3Rpb25TdHJlYW0mIGluc3RydWN0aW9uU3RyZWFtID0gaW5zdHJ1Y3Rpb25zKCk7
CiAgICAgZm9yIChjb25zdCBhdXRvJiBpdCA6IGluc3RydWN0aW9uU3RyZWFtKSB7CkBAIC0xODc1
LDcgKzE4NzUsNyBAQCBib29sIENvZGVCbG9jazo6aGFzT3BEZWJ1Z0ZvckxpbmVBbmRDb2x1bW4o
dW5zaWduZWQgbGluZSwgdW5zaWduZWQgY29sdW1uKQogICAgICAgICAgICAgdW5zaWduZWQgb3BE
ZWJ1Z0xpbmU7CiAgICAgICAgICAgICB1bnNpZ25lZCBvcERlYnVnQ29sdW1uOwogICAgICAgICAg
ICAgZXhwcmVzc2lvblJhbmdlRm9yQnl0ZWNvZGVPZmZzZXQoaXQub2Zmc2V0KCksIHVudXNlZCwg
dW51c2VkLCB1bnVzZWQsIG9wRGVidWdMaW5lLCBvcERlYnVnQ29sdW1uKTsKLSAgICAgICAgICAg
IGlmIChsaW5lID09IG9wRGVidWdMaW5lICYmIChjb2x1bW4gPT0gQnJlYWtwb2ludDo6dW5zcGVj
aWZpZWRDb2x1bW4gfHwgY29sdW1uID09IG9wRGVidWdDb2x1bW4pKQorICAgICAgICAgICAgaWYg
KGxpbmUgPT0gb3BEZWJ1Z0xpbmUgJiYgKCFjb2x1bW4gfHwgY29sdW1uID09IG9wRGVidWdDb2x1
bW4pKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCmluZGV4IGIxYTgyYjMzNjdh
ZWMxYWI2MWY1ZThmYjhmOTExMmEzZjM3N2QyOTcuLjg4Y2ZhZTRlZTkyMTg5ZmEwZTA5YmNlODNj
NDBlMTQ1YWRmNWNmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmgKQEAgLTc4Nyw3ICs3ODcsNyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgZnJhbWVSZWdp
c3RlckNvdW50KCk7CiAgICAgaW50IHN0YWNrUG9pbnRlck9mZnNldCgpOwogCi0gICAgYm9vbCBo
YXNPcERlYnVnRm9yTGluZUFuZENvbHVtbih1bnNpZ25lZCBsaW5lLCB1bnNpZ25lZCBjb2x1bW4p
OworICAgIGJvb2wgaGFzT3BEZWJ1Z0ZvckxpbmVBbmRDb2x1bW4odW5zaWduZWQgbGluZSwgT3B0
aW9uYWw8dW5zaWduZWQ+IGNvbHVtbik7CiAKICAgICBib29sIGhhc0RlYnVnZ2VyUmVxdWVzdHMo
KSBjb25zdCB7IHJldHVybiBtX2RlYnVnZ2VyUmVxdWVzdHM7IH0KICAgICB2b2lkKiBkZWJ1Z2dl
clJlcXVlc3RzQWRkcmVzcygpIHsgcmV0dXJuICZtX2RlYnVnZ2VyUmVxdWVzdHM7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9CcmVha3BvaW50LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvQnJlYWtwb2ludC5oCmluZGV4IGJiOGYwZGRiYjlk
NGY3MDYzYTY4YTE0Nzg3NTFlMzkxNDMxOTY3MDQuLjE0MThlMTU5OGIzMGExYjA1ODE0YWI4ZmZh
ZDE1YTIzMzRjYmQyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9CcmVha3BvaW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0JyZWFr
cG9pbnQuaApAQCAtNTcsOCArNTcsNiBAQCBzdHJ1Y3QgQnJlYWtwb2ludCA6IHB1YmxpYyBEb3Vi
bHlMaW5rZWRMaXN0Tm9kZTxCcmVha3BvaW50PiB7CiAgICAgdW5zaWduZWQgaGl0Q291bnQgeyAw
IH07CiAgICAgYm9vbCByZXNvbHZlZCB7IGZhbHNlIH07CiAKLSAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIHVuc3BlY2lmaWVkQ29sdW1uID0gVUlOVF9NQVg7Ci0KIHByaXZhdGU6CiAgICAg
QnJlYWtwb2ludCogbV9wcmV2OwogICAgIEJyZWFrcG9pbnQqIG1fbmV4dDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCmluZGV4IGIwY2ZkZjg4YmQ0MTM3YzQ0
ODhhMjMwMTMxOTAzYTQyM2M2OTdkYjcuLjZlNjBiZTVlNTdlZTRiMzJkYTRhMGMzYzg5OGFmNzhm
ZDI0YWI1ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNw
cApAQCAtMjY4LDkgKzI2OCw2IEBAIHZvaWQgRGVidWdnZXI6OnRvZ2dsZUJyZWFrcG9pbnQoQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIEJyZWFrcG9pbnQmIGJyZWFrcG9pbnQsIEJyCiAgICAgaWYgKGJy
ZWFrcG9pbnQuc291cmNlSUQgIT0gc291cmNlSUQpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVu
c2lnbmVkIGxpbmUgPSBicmVha3BvaW50LmxpbmU7Ci0gICAgdW5zaWduZWQgY29sdW1uID0gYnJl
YWtwb2ludC5jb2x1bW47Ci0KICAgICB1bnNpZ25lZCBzdGFydExpbmUgPSBleGVjdXRhYmxlLT5m
aXJzdExpbmUoKTsKICAgICB1bnNpZ25lZCBzdGFydENvbHVtbiA9IGV4ZWN1dGFibGUtPnN0YXJ0
Q29sdW1uKCk7CiAgICAgdW5zaWduZWQgZW5kTGluZSA9IGV4ZWN1dGFibGUtPmxhc3RMaW5lKCk7
CkBAIC0yNzgsMTIgKzI3NSwxNCBAQCB2b2lkIERlYnVnZ2VyOjp0b2dnbGVCcmVha3BvaW50KENv
ZGVCbG9jayogY29kZUJsb2NrLCBCcmVha3BvaW50JiBicmVha3BvaW50LCBCcgogCiAgICAgLy8g
SW5zcGVjdG9yIGJyZWFrcG9pbnQgbGluZSBhbmQgY29sdW1uIHZhbHVlcyBhcmUgemVyby1iYXNl
ZCBidXQgdGhlIGV4ZWN1dGFibGUKICAgICAvLyBhbmQgQ29kZUJsb2NrIGxpbmUgYW5kIGNvbHVt
biB2YWx1ZXMgYXJlIG9uZS1iYXNlZC4KLSAgICBsaW5lICs9IDE7Ci0gICAgY29sdW1uID0gY29s
dW1uID8gY29sdW1uICsgMSA6IEJyZWFrcG9pbnQ6OnVuc3BlY2lmaWVkQ29sdW1uOworICAgIHVu
c2lnbmVkIGxpbmUgPSBicmVha3BvaW50LmxpbmUgKyAxOworICAgIE9wdGlvbmFsPHVuc2lnbmVk
PiBjb2x1bW47CisgICAgaWYgKGJyZWFrcG9pbnQuY29sdW1uKQorICAgICAgICBjb2x1bW4gPSBi
cmVha3BvaW50LmNvbHVtbiArIDE7CiAKICAgICBpZiAobGluZSA8IHN0YXJ0TGluZSB8fCBsaW5l
ID4gZW5kTGluZSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChjb2x1bW4gIT0gQnJlYWtwb2lu
dDo6dW5zcGVjaWZpZWRDb2x1bW4pIHsKKyAgICBpZiAoY29sdW1uKSB7CiAgICAgICAgIGlmIChs
aW5lID09IHN0YXJ0TGluZSAmJiBjb2x1bW4gPCBzdGFydENvbHVtbikKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgaWYgKGxpbmUgPT0gZW5kTGluZSAmJiBjb2x1bW4gPiBlbmRDb2x1bW4p
CkBAIC0zNTksMzUgKzM1OCwzNSBAQCB2b2lkIERlYnVnZ2VyOjpyZXNvbHZlQnJlYWtwb2ludChC
cmVha3BvaW50JiBicmVha3BvaW50LCBTb3VyY2VQcm92aWRlciogc291cmNlUAogCiAgICAgLy8g
RklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNjI3NzE+IFdlYiBJbnNwZWN0b3I6IEFkb3B0
IFRleHRQb3NpdGlvbiBpbiBJbnNwZWN0b3IgdG8gYXZvaWQgb25lQmFzZWRJbnQvemVyb0Jhc2Vk
SW50IGFtYmlndWl0eQogICAgIC8vIEluc3BlY3RvciBicmVha3BvaW50IGxpbmUgYW5kIGNvbHVt
biB2YWx1ZXMgYXJlIHplcm8tYmFzZWQgYnV0IHRoZSBleGVjdXRhYmxlCi0gICAgLy8gYW5kIENv
ZGVCbG9jayBsaW5lIGFuZCBjb2x1bW4gdmFsdWVzIGFyZSBvbmUtYmFzZWQuCi0gICAgdW5zaWdu
ZWQgbGluZSA9IGJyZWFrcG9pbnQubGluZSArIDE7Ci0gICAgdW5zaWduZWQgY29sdW1uID0gYnJl
YWtwb2ludC5jb2x1bW4gPyBicmVha3BvaW50LmNvbHVtbiA6IEJyZWFrcG9pbnQ6OnVuc3BlY2lm
aWVkQ29sdW1uOworICAgIC8vIGFuZCBDb2RlQmxvY2sgbGluZSB2YWx1ZXMgYXJlIG9uZS1iYXNl
ZCB3aGlsZSBjb2x1bW4gaXMgemVyby1iYXNlZC4KKyAgICBpbnQgbGluZSA9IGJyZWFrcG9pbnQu
bGluZSArIDE7CisgICAgaW50IGNvbHVtbiA9IGJyZWFrcG9pbnQuY29sdW1uOwogCiAgICAgLy8g
QWNjb3VudCBmb3IgYSA8c2NyaXB0PidzIHN0YXJ0IHBvc2l0aW9uIG9uIHRoZSBmaXJzdCBsaW5l
IG9ubHkuCi0gICAgdW5zaWduZWQgcHJvdmlkZXJTdGFydExpbmUgPSBzb3VyY2VQcm92aWRlci0+
c3RhcnRQb3NpdGlvbigpLm1fbGluZS5vbmVCYXNlZEludCgpOyAvLyBPbmUgYmFzZWQgdG8gbWF0
Y2ggdGhlIGFscmVhZHkgYWRqdXN0ZWQgbGluZS4KLSAgICB1bnNpZ25lZCBwcm92aWRlclN0YXJ0
Q29sdW1uID0gc291cmNlUHJvdmlkZXItPnN0YXJ0UG9zaXRpb24oKS5tX2NvbHVtbi56ZXJvQmFz
ZWRJbnQoKTsgLy8gWmVybyBiYXNlZCBzbyBjb2x1bW4gemVybyBpcyB6ZXJvLgotICAgIGlmIChs
aW5lID09IHByb3ZpZGVyU3RhcnRMaW5lICYmIGNvbHVtbiAhPSBCcmVha3BvaW50Ojp1bnNwZWNp
ZmllZENvbHVtbikgeworICAgIGludCBwcm92aWRlclN0YXJ0TGluZSA9IHNvdXJjZVByb3ZpZGVy
LT5zdGFydFBvc2l0aW9uKCkubV9saW5lLm9uZUJhc2VkSW50KCk7IC8vIE9uZSBiYXNlZCB0byBt
YXRjaCB0aGUgYWxyZWFkeSBhZGp1c3RlZCBsaW5lLgorICAgIGludCBwcm92aWRlclN0YXJ0Q29s
dW1uID0gc291cmNlUHJvdmlkZXItPnN0YXJ0UG9zaXRpb24oKS5tX2NvbHVtbi56ZXJvQmFzZWRJ
bnQoKTsgLy8gWmVybyBiYXNlZCBzbyBjb2x1bW4gemVybyBpcyB6ZXJvLgorICAgIGlmIChsaW5l
ID09IHByb3ZpZGVyU3RhcnRMaW5lICYmIGJyZWFrcG9pbnQuY29sdW1uKSB7CiAgICAgICAgIEFT
U0VSVChwcm92aWRlclN0YXJ0Q29sdW1uIDw9IGNvbHVtbik7CiAgICAgICAgIGlmIChwcm92aWRl
clN0YXJ0Q29sdW1uKQogICAgICAgICAgICAgY29sdW1uIC09IHByb3ZpZGVyU3RhcnRDb2x1bW47
CiAgICAgfQogCiAgICAgRGVidWdnZXJQYXJzZURhdGEmIHBhcnNlRGF0YSA9IGRlYnVnZ2VyUGFy
c2VEYXRhKGJyZWFrcG9pbnQuc291cmNlSUQsIHNvdXJjZVByb3ZpZGVyKTsKLSAgICBPcHRpb25h
bDxKU1RleHRQb3NpdGlvbj4gcmVzb2x2ZWRQb3NpdGlvbiA9IHBhcnNlRGF0YS5wYXVzZVBvc2l0
aW9ucy5icmVha3BvaW50TG9jYXRpb25Gb3JMaW5lQ29sdW1uKChpbnQpbGluZSwgKGludCljb2x1
bW4pOworICAgIE9wdGlvbmFsPEpTVGV4dFBvc2l0aW9uPiByZXNvbHZlZFBvc2l0aW9uID0gcGFy
c2VEYXRhLnBhdXNlUG9zaXRpb25zLmJyZWFrcG9pbnRMb2NhdGlvbkZvckxpbmVDb2x1bW4obGlu
ZSwgY29sdW1uKTsKICAgICBpZiAoIXJlc29sdmVkUG9zaXRpb24pCiAgICAgICAgIHJldHVybjsK
IAotICAgIHVuc2lnbmVkIHJlc29sdmVkTGluZSA9IHJlc29sdmVkUG9zaXRpb24tPmxpbmU7Ci0g
ICAgdW5zaWduZWQgcmVzb2x2ZWRDb2x1bW4gPSByZXNvbHZlZFBvc2l0aW9uLT5vZmZzZXQgLSBy
ZXNvbHZlZFBvc2l0aW9uLT5saW5lU3RhcnRPZmZzZXQgKyAxOworICAgIGludCByZXNvbHZlZExp
bmUgPSByZXNvbHZlZFBvc2l0aW9uLT5saW5lOworICAgIGludCByZXNvbHZlZENvbHVtbiA9IHJl
c29sdmVkUG9zaXRpb24tPm9mZnNldCAtIHJlc29sdmVkUG9zaXRpb24tPmxpbmVTdGFydE9mZnNl
dDsKIAogICAgIC8vIFJlLWFjY291bnQgZm9yIGEgPHNjcmlwdD4ncyBzdGFydCBwb3NpdGlvbiBv
biB0aGUgZmlyc3QgbGluZSBvbmx5LgotICAgIGlmIChyZXNvbHZlZExpbmUgPT0gcHJvdmlkZXJT
dGFydExpbmUgJiYgY29sdW1uICE9IEJyZWFrcG9pbnQ6OnVuc3BlY2lmaWVkQ29sdW1uKSB7Cisg
ICAgaWYgKHJlc29sdmVkTGluZSA9PSBwcm92aWRlclN0YXJ0TGluZSAmJiBicmVha3BvaW50LmNv
bHVtbikgewogICAgICAgICBpZiAocHJvdmlkZXJTdGFydENvbHVtbikKICAgICAgICAgICAgIHJl
c29sdmVkQ29sdW1uICs9IHByb3ZpZGVyU3RhcnRDb2x1bW47CiAgICAgfQogCiAgICAgYnJlYWtw
b2ludC5saW5lID0gcmVzb2x2ZWRMaW5lIC0gMTsKLSAgICBicmVha3BvaW50LmNvbHVtbiA9IHJl
c29sdmVkQ29sdW1uIC0gMTsKKyAgICBicmVha3BvaW50LmNvbHVtbiA9IHJlc29sdmVkQ29sdW1u
OwogICAgIGJyZWFrcG9pbnQucmVzb2x2ZWQgPSB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJzZURhdGEuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyUGFyc2VEYXRhLmNwcAppbmRleCA5YzMz
NWE0YmIxMGFmZjg1YTU3ZmI0NWFhNGEwNWY0ODRiYzUyNTlhLi42OWJhNGQyMzVkYTIxZjkyOTk2
MGFmYjI4N2RlOGNlNjRiY2UwMjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJQYXJzZURhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlclBhcnNlRGF0YS5jcHAKQEAgLTMzLDQzICszMywyNiBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogT3B0aW9uYWw8SlNUZXh0UG9zaXRpb24+IERlYnVnZ2VyUGF1c2VQb3Np
dGlvbnM6OmJyZWFrcG9pbnRMb2NhdGlvbkZvckxpbmVDb2x1bW4oaW50IGxpbmUsIGludCBjb2x1
bW4pCiB7Ci0gICAgdW5zaWduZWQgc3RhcnQgPSAwOwotICAgIHVuc2lnbmVkIGVuZCA9IG1fcG9z
aXRpb25zLnNpemUoKTsKLSAgICB3aGlsZSAoc3RhcnQgIT0gZW5kKSB7Ci0gICAgICAgIHVuc2ln
bmVkIG1pZGRsZSA9IHN0YXJ0ICsgKChlbmQgLSBzdGFydCkgLyAyKTsKLSAgICAgICAgRGVidWdn
ZXJQYXVzZVBvc2l0aW9uJiBwYXVzZVBvc2l0aW9uID0gbV9wb3NpdGlvbnNbbWlkZGxlXTsKLSAg
ICAgICAgaW50IHBhdXNlTGluZSA9IHBhdXNlUG9zaXRpb24ucG9zaXRpb24ubGluZTsKLSAgICAg
ICAgaW50IHBhdXNlQ29sdW1uID0gcGF1c2VQb3NpdGlvbi5wb3NpdGlvbi5vZmZzZXQgLSBwYXVz
ZVBvc2l0aW9uLnBvc2l0aW9uLmxpbmVTdGFydE9mZnNldDsKLQotICAgICAgICBpZiAobGluZSA8
IHBhdXNlTGluZSkgewotICAgICAgICAgICAgZW5kID0gbWlkZGxlOwotICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGxpbmUgPiBwYXVzZUxpbmUpIHsKLSAgICAg
ICAgICAgIHN0YXJ0ID0gbWlkZGxlICsgMTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICB9Ci0KLSAgICAgICAgaWYgKGNvbHVtbiA9PSBwYXVzZUNvbHVtbikgewotICAgICAgICAgICAg
Ly8gRm91bmQgYW4gZXhhY3QgcG9zaXRpb24gbWF0Y2guIFJvbGwgZm9yd2FyZCBpZiB0aGlzIHdh
cyBhIGZ1bmN0aW9uIEVudHJ5LgotICAgICAgICAgICAgLy8gV2UgYXJlIGd1YXJlbnRlZWQgdG8g
aGF2ZSBhIExlYXZlIGZvciBhbiBFbnRyeSBzbyB3ZSBkb24ndCBuZWVkIHRvIGJvdW5kcyBjaGVj
ay4KLSAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHBhdXNl
UG9zaXRpb24udHlwZSAhPSBEZWJ1Z2dlclBhdXNlUG9zaXRpb25UeXBlOjpFbnRlcikKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIE9wdGlvbmFsPEpTVGV4dFBvc2l0aW9uPihwYXVzZVBvc2l0
aW9uLnBvc2l0aW9uKTsKLSAgICAgICAgICAgICAgICBwYXVzZVBvc2l0aW9uID0gbV9wb3NpdGlv
bnNbbWlkZGxlKytdOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgRGVidWdnZXJQYXVz
ZVBvc2l0aW9uIHBvc2l0aW9uOworICAgIHBvc2l0aW9uLnBvc2l0aW9uLmxpbmUgPSBsaW5lOwor
ICAgIHBvc2l0aW9uLnBvc2l0aW9uLm9mZnNldCA9IGNvbHVtbjsKKyAgICBwb3NpdGlvbi5wb3Np
dGlvbi5saW5lU3RhcnRPZmZzZXQgPSAwOworICAgIGF1dG8gaXQgPSBzdGQ6Omxvd2VyX2JvdW5k
KG1fcG9zaXRpb25zLmJlZ2luKCksIG1fcG9zaXRpb25zLmVuZCgpLCBwb3NpdGlvbiwgW10gKGNv
bnN0IERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYgYSwgY29uc3QgRGVidWdnZXJQYXVzZVBvc2l0aW9u
JiBiKSB7CisgICAgICAgIGlmIChhLnBvc2l0aW9uLmxpbmUgPT0gYi5wb3NpdGlvbi5saW5lKQor
ICAgICAgICAgICAgcmV0dXJuIGEucG9zaXRpb24uY29sdW1uKCkgPCBiLnBvc2l0aW9uLmNvbHVt
bigpOworICAgICAgICByZXR1cm4gYS5wb3NpdGlvbi5saW5lIDwgYi5wb3NpdGlvbi5saW5lOwor
ICAgIH0pOworICAgIGlmIChpdCA9PSBtX3Bvc2l0aW9ucy5lbmQoKSkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKIAotICAgICAgICBpZiAoY29sdW1uIDwgcGF1c2VDb2x1bW4pCi0gICAg
ICAgICAgICBlbmQgPSBtaWRkbGU7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHN0YXJ0ID0g
bWlkZGxlICsgMTsKKyAgICBpZiAobGluZSA9PSBpdC0+cG9zaXRpb24ubGluZSAmJiBjb2x1bW4g
PT0gaXQtPnBvc2l0aW9uLmNvbHVtbigpKSB7CisgICAgICAgIC8vIEZvdW5kIGFuIGV4YWN0IHBv
c2l0aW9uIG1hdGNoLiBSb2xsIGZvcndhcmQgaWYgdGhpcyB3YXMgYSBmdW5jdGlvbiBFbnRyeS4K
KyAgICAgICAgLy8gV2UgYXJlIGd1YXJhbnRlZWQgdG8gaGF2ZSBhIExlYXZlIGZvciBhbiBFbnRy
eSBzbyB3ZSBkb24ndCBuZWVkIHRvIGJvdW5kcyBjaGVjay4KKyAgICAgICAgd2hpbGUgKGl0LT50
eXBlID09IERlYnVnZ2VyUGF1c2VQb3NpdGlvblR5cGU6OkVudGVyKQorICAgICAgICAgICAgKytp
dDsKKyAgICAgICAgcmV0dXJuIGl0LT5wb3NpdGlvbjsKICAgICB9CiAKLSAgICAvLyBQYXN0IHRo
ZSBlbmQsIG5vIHBvc3NpYmxlIHBhdXNlIGxvY2F0aW9ucy4KLSAgICBpZiAoc3RhcnQgPj0gbV9w
b3NpdGlvbnMuc2l6ZSgpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCiAgICAgLy8g
SWYgdGhlIG5leHQgbG9jYXRpb24gaXMgYSBmdW5jdGlvbiBFbnRyeSB3ZSB3aWxsIG5lZWQgdG8g
ZGVjaWRlIGlmIHdlIHNob3VsZCBnbyBpbnRvCiAgICAgLy8gdGhlIGZ1bmN0aW9uIG9yIGdvIHBh
c3QgdGhlIGZ1bmN0aW9uLiBXZSBkZWNpZGUgdG8gZ28gaW50byB0aGUgZnVuY3Rpb24gaWYgdGhl
CiAgICAgLy8gaW5wdXQgaXMgb24gdGhlIHNhbWUgbGluZSBhcyB0aGUgZnVuY3Rpb24gZW50cnku
IEZvciBleGFtcGxlOgpAQCAtODYsNyArNjksNyBAQCBPcHRpb25hbDxKU1RleHRQb3NpdGlvbj4g
RGVidWdnZXJQYXVzZVBvc2l0aW9uczo6YnJlYWtwb2ludExvY2F0aW9uRm9yTGluZUNvbHVtbgog
ICAgIC8vIElmIHRoZSBpbnB1dCB3YXMgbGluZSAzLCBnbyBpbnRvIHRoZSBmdW5jdGlvbiB0byBw
YXVzZSBvbiBsaW5lIDQuCiAKICAgICAvLyBWYWxpZCBwYXVzZSBsb2NhdGlvbi4gVXNlIGl0Lgot
ICAgIERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYgZmlyc3RTbGlkZVBvc2l0aW9uID0gbV9wb3NpdGlv
bnNbc3RhcnRdOworICAgIERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYgZmlyc3RTbGlkZVBvc2l0aW9u
ID0gKml0OwogICAgIGlmIChmaXJzdFNsaWRlUG9zaXRpb24udHlwZSAhPSBEZWJ1Z2dlclBhdXNl
UG9zaXRpb25UeXBlOjpFbnRlcikKICAgICAgICAgcmV0dXJuIE9wdGlvbmFsPEpTVGV4dFBvc2l0
aW9uPihmaXJzdFNsaWRlUG9zaXRpb24ucG9zaXRpb24pOwogCkBAIC05NCw4ICs3Nyw5IEBAIE9w
dGlvbmFsPEpTVGV4dFBvc2l0aW9uPiBEZWJ1Z2dlclBhdXNlUG9zaXRpb25zOjpicmVha3BvaW50
TG9jYXRpb25Gb3JMaW5lQ29sdW1uCiAgICAgLy8gSWYgZW50cnlTdGFja1NpemUgaXMgPiAwIHdl
IGFyZSBza2lwcGluZyBmdW5jdGlvbnMuCiAgICAgYm9vbCBzaG91bGRFbnRlckZ1bmN0aW9uID0g
Zmlyc3RTbGlkZVBvc2l0aW9uLnBvc2l0aW9uLmxpbmUgPT0gbGluZTsKICAgICBpbnQgZW50cnlT
dGFja1NpemUgPSBzaG91bGRFbnRlckZ1bmN0aW9uID8gMCA6IDE7Ci0gICAgZm9yICh1bnNpZ25l
ZCBpID0gc3RhcnQgKyAxOyBpIDwgbV9wb3NpdGlvbnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
RGVidWdnZXJQYXVzZVBvc2l0aW9uJiBzbGlkZVBvc2l0aW9uID0gbV9wb3NpdGlvbnNbaV07Cisg
ICAgKytpdDsKKyAgICBmb3IgKDsgaXQgIT0gbV9wb3NpdGlvbnMuZW5kKCk7ICsraXQpIHsKKyAg
ICAgICAgYXV0byYgc2xpZGVQb3NpdGlvbiA9ICppdDsKICAgICAgICAgQVNTRVJUKGVudHJ5U3Rh
Y2tTaXplID49IDApOwogCiAgICAgICAgIC8vIEFscmVhZHkgc2tpcHBpbmcgZnVuY3Rpb25zLgpA
QCAtMTI0LDYgKzEwOCw4IEBAIE9wdGlvbmFsPEpTVGV4dFBvc2l0aW9uPiBEZWJ1Z2dlclBhdXNl
UG9zaXRpb25zOjpicmVha3BvaW50TG9jYXRpb25Gb3JMaW5lQ29sdW1uCiB2b2lkIERlYnVnZ2Vy
UGF1c2VQb3NpdGlvbnM6OnNvcnQoKQogewogICAgIHN0ZDo6c29ydChtX3Bvc2l0aW9ucy5iZWdp
bigpLCBtX3Bvc2l0aW9ucy5lbmQoKSwgW10gKGNvbnN0IERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYg
YSwgY29uc3QgRGVidWdnZXJQYXVzZVBvc2l0aW9uJiBiKSB7CisgICAgICAgIGlmIChhLnBvc2l0
aW9uLm9mZnNldCA9PSBiLnBvc2l0aW9uLm9mZnNldCkKKyAgICAgICAgICAgIHJldHVybiBhLnR5
cGUgPCBiLnR5cGU7CiAgICAgICAgIHJldHVybiBhLnBvc2l0aW9uLm9mZnNldCA8IGIucG9zaXRp
b24ub2Zmc2V0OwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyUGFyc2VEYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJQYXJzZURhdGEuaAppbmRleCA5NjU5YjFkMDI4M2YzZGY5Y2M5NWU3YTkz
YzNjNjllOGQyM2EyZGMxLi41NjU5YmY4Mjc4YzU1Y2EyMzFjYTY3ZmJlNzc5YTY2YzVmMjI3ZjRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJz
ZURhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJz
ZURhdGEuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIFNvdXJjZVBy
b3ZpZGVyOwogY2xhc3MgVk07CiAKLWVudW0gY2xhc3MgRGVidWdnZXJQYXVzZVBvc2l0aW9uVHlw
ZSB7IEVudGVyLCBMZWF2ZSwgUGF1c2UgfTsKK2VudW0gY2xhc3MgRGVidWdnZXJQYXVzZVBvc2l0
aW9uVHlwZSB7IEVudGVyLCBQYXVzZSwgTGVhdmUgfTsKIHN0cnVjdCBEZWJ1Z2dlclBhdXNlUG9z
aXRpb24gewogICAgIERlYnVnZ2VyUGF1c2VQb3NpdGlvblR5cGUgdHlwZTsKICAgICBKU1RleHRQ
b3NpdGlvbiBwb3NpdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbgppbmRleCAxNWFiZDM2MjY0MGJhN2RhYzZmNjY4
MjJmYWUyMTJhNWFhOTk4NGZlLi4xNmQ0MTEwZmQyZDMzNTA4NDJjOTZjYWZjODY0YWE2YjZlMzg3
OTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29s
L0RlYnVnZ2VyLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90
b2NvbC9EZWJ1Z2dlci5qc29uCkBAIC0yOCw4ICsyOCw4IEBACiAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiTG9jYXRpb24gaW4gdGhlIHNvdXJjZSBjb2RlLiIsCiAgICAgICAgICAgICAicHJv
cGVydGllcyI6IFsKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNjcmlwdElkIiwgIiRyZWYi
OiAiU2NyaXB0SWQiLCAiZGVzY3JpcHRpb24iOiAiU2NyaXB0IGlkZW50aWZpZXIgYXMgcmVwb3J0
ZWQgaW4gdGhlIDxjb2RlPkRlYnVnZ2VyLnNjcmlwdFBhcnNlZDwvY29kZT4uIiB9LAotICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAibGluZU51bWJlciIsICJ0eXBlIjogImludGVnZXIiLCAiZGVz
Y3JpcHRpb24iOiAiTGluZSBudW1iZXIgaW4gdGhlIHNjcmlwdC4iIH0sCi0gICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJjb2x1bW5OdW1iZXIiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNvbHVtbiBudW1iZXIgaW4gdGhlIHNjcmlwdC4iIH0K
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImxpbmVOdW1iZXIiLCAidHlwZSI6ICJpbnRlZ2Vy
IiwgImRlc2NyaXB0aW9uIjogIkxpbmUgbnVtYmVyIGluIHRoZSBzY3JpcHQgKDAtYmFzZWQpLiIg
fSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbHVtbk51bWJlciIsICJ0eXBlIjogImlu
dGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29sdW1uIG51bWJlciBp
biB0aGUgc2NyaXB0ICgwLWJhc2VkKS4iIH0KICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAg
ICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJU
b2tlbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKaW5k
ZXggNzIwNjRiOTI4NDgxNjZmNmRlMmIyM2Y4YTNmNThjOTgxYjc2NzllOS4uN2FkMGI5OTI3NGNi
YjRlMzkwOWFjYzdiY2Q3ODgyMzdhNzdiYWNlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlclRva2Vucy5oCkBAIC0yMTcsNiArMjE3LDggQEAgc3RydWN0IEpTVGV4dFBv
c2l0aW9uIHsKICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOwogICAgIH0KIAorICAg
IGludCBjb2x1bW4oKSBjb25zdCB7IHJldHVybiBvZmZzZXQgLSBsaW5lU3RhcnRPZmZzZXQ7IH0K
KwogICAgIGludCBsaW5lIHsgMCB9OwogICAgIGludCBvZmZzZXQgeyAwIH07CiAgICAgaW50IGxp
bmVTdGFydE9mZnNldCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAppbmRleCA3NzJlYzc0NjkxM2Nj
NjhkYjk5ZWFiYWM5MTMxMTM5ZTliNzQ4ZmZhLi4xYjNjODg3NmNjNjg3MzFiNWQ2MjhkZDJkZTJi
OWQ2MDRmMmE0NWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCkBAIC04MSw0MyArODEsNTQgQEAgcHVi
bGljOgogICAgICAgICBBU1NFUlRfQVJHKG1lc3NhZ2UsICFtZXNzYWdlLmlzRW1wdHkoKSk7CiAK
ICAgICAgICAgbV9tZXNzYWdlcy5hcHBlbmQobWVzc2FnZSk7Ci0gICAgICAgIGlmICghbV90aW1l
ci5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMF9zKTsKKyAg
ICAgICAgc2NoZWR1bGVPbmVTaG90KCk7CiAgICAgfQogCiAgICAgdm9pZCByZXNldCgpCiAgICAg
ewogICAgICAgICBtX21lc3NhZ2VzLmNsZWFyKCk7Ci0gICAgICAgIG1fdGltZXIuc3RvcCgpOwog
ICAgICAgICBtX2luc3BlY3RlZFBhZ2VDb250cm9sbGVyID0gbnVsbHB0cjsKICAgICB9CiAKLSAg
ICB2b2lkIHRpbWVyRmlyZWQoKQorcHJpdmF0ZToKKyAgICBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hUYXNrKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RlZFBhZ2VDb250cm9sbGVyKQorICAg
ICAgICA6IG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIoaW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIp
CisgICAgeworICAgICAgICBBU1NFUlRfQVJHKGluc3BlY3RlZFBhZ2VDb250cm9sbGVyLCBpbnNw
ZWN0ZWRQYWdlQ29udHJvbGxlcik7CisgICAgfQorCisgICAgdm9pZCBzY2hlZHVsZU9uZVNob3Qo
KQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIpOworICAg
ICAgICBpZiAobV9oYXNTY2hlZHVsZWRUYXNrKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICBtX2hhc1NjaGVkdWxlZFRhc2sgPSB0cnVlOworCisgICAgICAgIC8vIFRoZSBmcm9udGVuZCBj
YW4gYmUgY2xvc2VkIGFuZCBkZXN0cm95IHRoZSBvd25pbmcgZnJvbnRlbmQgY2xpZW50IGJlZm9y
ZSBvciBpbiB0aGUKKyAgICAgICAgLy8gcHJvY2VzcyBvZiBkaXNwYXRjaGluZyB0aGUgdGFzaywg
c28ga2VlcCBhIHByb3RlY3RvciByZWZlcmVuY2UgaGVyZS4KKyAgICAgICAgUnVuTG9vcDo6Y3Vy
cmVudCgpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsK
KyAgICAgICAgICAgIG1faGFzU2NoZWR1bGVkVGFzayA9IGZhbHNlOworICAgICAgICAgICAgZGlz
cGF0Y2hPbmVNZXNzYWdlKCk7CisgICAgICAgIH0pOworICAgIH0KIAotICAgICAgICAvLyBEaXNw
YXRjaGluZyBhIG1lc3NhZ2UgY2FuIHBvc3NpYmx5IGNsb3NlIHRoZSBmcm9udGVuZCBhbmQgZGVz
dHJveQotICAgICAgICAvLyB0aGUgb3duaW5nIGZyb250ZW5kIGNsaWVudCwgc28ga2VlcCBhIHBy
b3RlY3RvciByZWZlcmVuY2UgaGVyZS4KLSAgICAgICAgUmVmPEluc3BlY3RvckJhY2tlbmREaXNw
YXRjaFRhc2s+IHByb3RlY3RlZFRoaXMoKnRoaXMpOworICAgIHZvaWQgZGlzcGF0Y2hPbmVNZXNz
YWdlKCkKKyAgICB7CisgICAgICAgIC8vIE93bmluZyBmcm9udGVuZCBjbGllbnQgbWF5IGhhdmUg
YmVlbiBkZXN0cm95ZWQgYWZ0ZXIgdGhlIHRhc2sgd2FzIHNjaGVkdWxlZC4KKyAgICAgICAgaWYg
KCFtX2luc3BlY3RlZFBhZ2VDb250cm9sbGVyKSB7CisgICAgICAgICAgICBBU1NFUlQobV9tZXNz
YWdlcy5pc0VtcHR5KCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKICAgICAg
ICAgaWYgKCFtX21lc3NhZ2VzLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1faW5zcGVjdGVkUGFn
ZUNvbnRyb2xsZXItPmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChtX21lc3NhZ2VzLnRha2VG
aXJzdCgpKTsKIAogICAgICAgICBpZiAoIW1fbWVzc2FnZXMuaXNFbXB0eSgpICYmIG1faW5zcGVj
dGVkUGFnZUNvbnRyb2xsZXIpCi0gICAgICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwX3Mp
OwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrKElu
c3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RlZFBhZ2VDb250cm9sbGVyKQotICAgICAgICA6IG1f
aW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIoaW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIpCi0gICAgICAg
ICwgbV90aW1lcigqdGhpcywgJkluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRhc2s6OnRpbWVyRmly
ZWQpCi0gICAgewotICAgICAgICBBU1NFUlRfQVJHKGluc3BlY3RlZFBhZ2VDb250cm9sbGVyLCBp
bnNwZWN0ZWRQYWdlQ29udHJvbGxlcik7CisgICAgICAgICAgICBzY2hlZHVsZU9uZVNob3QoKTsK
ICAgICB9CiAKICAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBtX2luc3BlY3RlZFBhZ2VDb250cm9s
bGVyIHsgbnVsbHB0ciB9OwotICAgIFRpbWVyIG1fdGltZXI7CiAgICAgRGVxdWU8U3RyaW5nPiBt
X21lc3NhZ2VzOworICAgIGJvb2wgbV9oYXNTY2hlZHVsZWRUYXNrIHsgZmFsc2UgfTsKIH07CiAK
IFN0cmluZyBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpTZXR0aW5nczo6Z2V0UHJvcGVy
dHkoY29uc3QgU3RyaW5nJikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYTY5YWU2YTVlYThhN2JjODc2ZDhhMTEzZjc1MTA3
MzA5MTMyOTliLi4wNzA1MjBmYWY0YjNlNTdlMGFkNGRmOWFmNTM0OTVjNGQwNDliYzk3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDktMjAgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdGVzdHMgdW5kZXIgTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyIGFyZSBmbGFreQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MTMxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xODQ2MTMzNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBFbmFibGUgaW5zcGVjdG9yL2RlYnVnZ2VyIHRlc3RzIG9uIEdUSy4KKworICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50cy9yZXNvbHZlZC1kdW1wLWFsbC1wYXVzZS1s
b2NhdGlvbnMtZXhwZWN0ZWQudHh0OiBSZWJhc2VsaW5lZCB0aGUgdGVzdAorICAgICAgICBhZnRl
ciBjaGFuZ2VzIGluIHRoZSBicmVha3BvaW50IHJlc29sdXRpb24gY29kZS4gTm93IHRoZSBvdXRw
dXQgb24gR1RLIGlzIHRoZSBzYW1lIGFzIG9uIE1hYy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAxOS0wOS0yNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCB2ZXJ5IGJhc2ljIFBhZ2VDYWNoZSBzdXBwb3J0IGZvciBS
VENQZWVyQ29ubmVjdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrcG9pbnRzL3Jlc29sdmVkLWR1bXAtYWxsLXBhdXNlLWxvY2F0aW9ucy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludHMvcmVzb2x2
ZWQtZHVtcC1hbGwtcGF1c2UtbG9jYXRpb25zLWV4cGVjdGVkLnR4dAppbmRleCA2MWJiM2RjMGI3
MjlhMWJkNmQ0NzBkZjZhN2ViNjRkNTk3ZWNhMTRjLi5jYzA4ZDk0OWNlYjQzZjk1OWZlMjc4YjZh
NmRkMTA0OTE5OGUwODQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWtwb2ludHMvcmVzb2x2ZWQtZHVtcC1hbGwtcGF1c2UtbG9jYXRpb25zLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludHMvcmVz
b2x2ZWQtZHVtcC1hbGwtcGF1c2UtbG9jYXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMjE2Niw3ICsy
MTY2LDcgQEAgUEFVU0VTIEFUOiA4OTo3CiAgICAgIDkyICAgICAgICB4CiAKIElOU0VSVElORyBB
VDogODk6OAotUEFVU0VTIEFUOiA5NDowCitQQVVTRVMgQVQ6IDk4OjAKICAgICAgODYgICAgCiAg
ICAgIDg3ICAgIHggPT4geDsKICAgICAgODggICAgKCkgPT4gMTsKQEAgLTIxNzUsMTAgKzIxNzUs
MTQgQEAgUEFVU0VTIEFUOiA5NDowCiAgICAgIDkxICAgICh4KSA9PiB7CiAgICAgIDkyICAgICAg
ICB4CiAgICAgIDkzICAgIH07Ci0gPT4gIDk0ICAgIHwoKSA9PiB7CisgICAgIDk0ICAgICgpID0+
IHsKICAgICAgOTUgICAgICAgIHZhciB4OwogICAgICA5NiAgICB9OwogICAgICA5NyAgICAKKyA9
PiAgOTggICAgfHZhciBmT2JqID0geworICAgICA5OSAgICAgICAgZjE6IGZ1bmN0aW9uKCkgewor
ICAgIDEwMCAgICAgICAgICAgIHZhciB4OworICAgIDEwMSAgICAgICAgfSwKIAogSU5TRVJUSU5H
IEFUOiA5MDowCiBQQVVTRVMgQVQ6IDkwOjAKQEAgLTIyNDIsNiArMjI0NiwxNiBAQCBQQVVTRVMg
QVQ6IDkzOjAKICAgICAgOTUgICAgICAgIHZhciB4OwogICAgICA5NiAgICB9OwogCitJTlNFUlRJ
TkcgQVQ6IDk0OjAKK1BBVVNFUyBBVDogOTQ6MAorICAgICA5MSAgICAoeCkgPT4geworICAgICA5
MiAgICAgICAgeAorICAgICA5MyAgICB9OworLT0+ICA5NCAgICB8KCkgPT4geworICAgICA5NSAg
ICAgICAgdmFyIHg7CisgICAgIDk2ICAgIH07CisgICAgIDk3ICAgIAorCiBJTlNFUlRJTkcgQVQ6
IDk0OjEKIFBBVVNFUyBBVDogOTU6NAogICAgICA5MSAgICAoeCkgPT4gewpAQCAtMjI2NCwxOCAr
MjI3OCw2IEBAIFBBVVNFUyBBVDogOTY6MAogICAgICA5OCAgICB2YXIgZk9iaiA9IHsKICAgICAg
OTkgICAgICAgIGYxOiBmdW5jdGlvbigpIHsKIAotSU5TRVJUSU5HIEFUOiA5NjoxCi1QQVVTRVMg
QVQ6IDk4OjAKLSAgICAgOTMgICAgfTsKLSAgICAgOTQgICAgKCkgPT4gewotICAgICA5NSAgICAg
ICAgdmFyIHg7Ci0gLT4gIDk2ICAgIH0jOwotICAgICA5NyAgICAKLSA9PiAgOTggICAgfHZhciBm
T2JqID0gewotICAgICA5OSAgICAgICAgZjE6IGZ1bmN0aW9uKCkgewotICAgIDEwMCAgICAgICAg
ICAgIHZhciB4OwotICAgIDEwMSAgICAgICAgfSwKLQogSU5TRVJUSU5HIEFUOiA5OTowCiBQQVVT
RVMgQVQ6IDEwMDo4CiAgICAgIDk2ICAgIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGIwMGFiZjI5NDk0NjgwMzRjMzViZDIyMDZiMDQ2Mjc1NzY3OGQ3
YmYuLjNjYzIwOGQ3NmEwOTE2MWU4ZjY4ZTFlM2M4NDBkYzFjZGE2OTkyOTkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMzIwLDIxICsyMzIwLDggQEAg
d2Via2l0Lm9yZy9iLzExNjk1NyBtZWRpYS90cmFjay90cmFjay1hdXRvbWF0aWMtc3VidGl0bGVz
Lmh0bWwgWyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzEyMDY4MiBpbnNwZWN0b3IvcGFnZS9h
cmNoaXZlLmh0bWwgWyBUaW1lb3V0IF0KIAord2Via2l0Lm9yZy9iLzE0NzUxOCBpbnNwZWN0b3Iv
ZGVidWdnZXIvbmVzdGVkLWluc3BlY3RvcnMuaHRtbCBbIFRpbWVvdXQgXQogd2Via2l0Lm9yZy9i
LzEyMjU3MSBodHRwL3Rlc3RzL2luc3BlY3Rvci9kb20vY3Jvc3MtZG9tYWluLWluc3BlY3RlZC1u
b2RlLWFjY2Vzcy5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5z
cGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJr
aXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5h
bWUuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9k
ZWJ1Z2dlci9zZXRCcmVha3BvaW50LW9wdGlvbnMtZXhjZXB0aW9uLmh0bWwgWyBUaW1lb3V0IFBh
c3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvc2V0UGF1c2VPbkV4
Y2VwdGlvbnMtYWxsLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBp
bnNwZWN0b3IvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS5odG1sIFsgVGltZW91
dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJh
bWUtdGhpcy1ob3N0Lmh0bWwgWyBUaW1lb3V0IFBhc3MgQ3Jhc2ggXQotd2Via2l0Lm9yZy9iLzEy
MjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbCBb
IFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9z
ZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtp
dC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy5o
dG1sIFsgRmFpbHVyZSBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0
b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLW5vbnN0cmljdC5odG1sIFsgVGltZW91dCBQYXNz
IF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQt
Y29sdW1uLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0
b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24uaHRtbCBbIFRpbWVvdXQgUGFzcyBd
Ci13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50
Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVi
dWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC5odG1sIFsgVGltZW91dCBQYXNzIF0KIHdlYmtp
dC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RvbS9yZXF1ZXN0LWNoaWxkLW5vZGVzLWRlcHRoLmh0
bWwgWyBUaW1lb3V0IFBhc3MgXQogd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZG9tL2Zv
Y3VzLmh0bWwgWyBGYWlsdXJlIFRpbWVvdXQgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTIyNTcxIGlu
c3BlY3Rvci9ydW50aW1lL2dldFByb3BlcnRpZXMuaHRtbCBbIFRpbWVvdXQgUGFzcyBDcmFzaCBd
CkBAIC0yMzc5LDcgKzIzNjYsNiBAQCB3ZWJraXQub3JnL2IvMTM2Njc0IG1lZGlhL3RyYWNrL3Ry
YWNrLWN1ZS1yZW5kZXJpbmctd2l0aC1wYWRkaW5nLmh0bWwgWyBUaW1lb3V0CiAKIHdlYmtpdC5v
cmcvYi8xMzc2OTggbWVkaWEvdmlkZW8tY29udHJvbHMtZHJhZy5odG1sIFsgVGltZW91dCBdCiAK
LXdlYmtpdC5vcmcvYi8xMzcxMzEgaW5zcGVjdG9yL2RlYnVnZ2VyIFsgU2tpcCBdCiB3ZWJraXQu
b3JnL2IvMTQ3NTE4IGluc3BlY3Rvci9kb20gWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNDc1MTgg
aW5zcGVjdG9yL21vZGVsIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTQ3NTE4IGluc3BlY3Rvci90
aW1lbGluZSBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379743</attachid>
            <date>2019-09-27 10:59:42 -0700</date>
            <delta_ts>2019-09-30 21:57:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137131-20190927105941.patch</filename>
            <type>text/plain</type>
            <size>25916</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
N2UzOGNlYzEzMTY1MmQyOTZkNTczY2Q2MTIzNTJlZmY0NjIyMjAyLi4yMDYxZmQ3YmI0MjE1Yzk0
YjQ0ODNiNjdmOWVlNWIwNjQ1YzMzMTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOS0wOS0yNCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB0ZXN0cyB1bmRlciBMYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIgYXJlIGZsYWt5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzcxMzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE4NDYx
MzM1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENo
YW5nZWQgYnJlYWtwb2ludCByZXNvbHV0aW9uIGxvZ2ljIHRvIG1ha2UgaXQgY29uc2lzdGVudCBh
Y3Jvc3MgcGxhdGZvcm1zIGFuZAorICAgICAgICBiZXR0ZXIgaGFuZGxlIHRoZSBjYXNlIHdoZW4g
dGhlcmUgYXJlIHNldmVyYWwgRGVidWdnZXJQYXVzZVBvc2l0aW9ucyBhdCB0aGUgc2FtZQorICAg
ICAgICBvZmZzZXQgKGJ1dCB3aXRoIGRpZmZlcmVudCB0eXBlcykuCisKKyAgICAgICAgKiBieXRl
Y29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6Omhhc09wRGVidWdG
b3JMaW5lQW5kQ29sdW1uKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAg
ICAgKiBkZWJ1Z2dlci9CcmVha3BvaW50Lmg6IFJlbW92ZWQgQnJlYWtwb2ludDo6dW5zcGVjaWZp
ZWRDb2x1bW4sIE9wdGlvbmFsPHVuc2lnbmVkPgorICAgICAgICBpcyB1c2VkIGluc3RlYWQgd2hl
cmUgbmVlZGVkLiBJdCBhbGxvd3MgdG8gYXZvaWQgY29kZSB0aGF0IHJlbGllcyBvbiAoaW50KVVJ
TlRfTUFYID0+IC0xCisgICAgICAgIGNvbnZlcnNpb24uCisKKyAgICAgICAgKiBkZWJ1Z2dlci9E
ZWJ1Z2dlci5jcHA6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyOjpyZXNvbHZlQnJlYWtwb2ludCk6
IGNsYXJpZmllZCB0aGF0IGluIHRoZSBtYXAgY29sdW1ucyBhcmUgMC1iYXNlZC4KKyAgICAgICAg
KiBkZWJ1Z2dlci9EZWJ1Z2dlclBhcnNlRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkRlYnVnZ2Vy
UGF1c2VQb3NpdGlvbnM6OmJyZWFrcG9pbnRMb2NhdGlvbkZvckxpbmVDb2x1bW4pOiByZXBsYWNl
ZCBjdXN0b20KKyAgICAgICAgYmluYXJ5IHNlYXJjaCB3aXRoIHN0ZDo6bG93ZXJfYm91bmQuIElm
IHRoZXJlIGFyZSBzZXZlcmFsIHBhdXNlIHBvc2l0aW9ucyBhdCB0aGUKKyAgICAgICAgc2FtZSBv
ZmZzZXQgdGhleSB3aWxsIGJlIHNvcnRlZCBieSB0aGUgdHlwZSBhbmQgdGhlIGFsZ29yaXRobSBp
cyBndWFyYW50ZWVkIHRvIHNlZQorICAgICAgICBsZWZ0bW9zdCBvbmUgZmlyc3QuCisKKyAgICAg
ICAgKEpTQzo6RGVidWdnZXJQYXVzZVBvc2l0aW9uczo6c29ydCk6IHVzZSB0eXBlIGFzIHNlY29u
ZGFyeSBvcmRlcmluZyBjb21wb25lbnQuCisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJQYXJz
ZURhdGEuaDogUmVhcnJhbmdlZCB0eXBlIGNvbnN0YW50cyBzbyB0aGF0IEVudGVyIDwgUGF1c2Ug
PCBMZWF2ZQorICAgICAgICB0aGlzIGNoYW5nZSBhbG9uZyB3aXRoIHNvcnRpbmcgYnkgdHlwZSBz
aG91bGQgZ3VhcmFudGVlIHRoYXQgaW4gY2FzZSBvZiBzZXZlcmFsIHBhdXNlCisgICAgICAgIHBv
c2l0aW9ucyBhdCB0aGUgc2FtZSBsaW5lIEVudGVyIGdvZXMgYmVmb3JlIFBhdXNlIGJlZm9yZSBM
ZWF2ZSBhbmQgdGhlIGJyZWFrcG9pbnQKKyAgICAgICAgcmVzb2x1dGlvbiB3aWxsIHlpZWxkIHJl
c3VsdCBzaW1pbGFyIHRvIHRoYXQgd2hlbiBlYWNoIHBhdXNlIGxvY2F0aW9ucyBoYXMgZGlmZmVy
ZW50CisgICAgICAgIHBvc2l0aW9uLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0Rl
YnVnZ2VyLmpzb246IGNsYXJpZmllZCB0aGF0IHBvc2l0aW9ucyBhcmUgMC1iYXNlZC4KKyAgICAg
ICAgKiBwYXJzZXIvUGFyc2VyVG9rZW5zLmg6CisgICAgICAgIChKU0M6OkpTVGV4dFBvc2l0aW9u
Ojpjb2x1bW4gY29uc3QpOiBhZGRlZCBoZWxwZXIgbWV0aG9kIGZvciBjb21wdXRpbmcgY29sdW1u
LgorCiAyMDE5LTA5LTI2ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0pTQ10gREZHIHJlY3Vyc2l2ZS10YWlsLWNhbGwgb3B0aW1pemF0aW9uIHNob3VsZCBu
b3QgZW1pdCBqdW1wIHRvIGNhbGwtZnJhbWUgd2l0aCB2YXJhcmdzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Vj
MzllNDFjY2VkMjk3MGYxNjI5ZDNmMTA4ODhhZmUyOWNlMzJkOS4uNGJmZTc3Mzk0MTgxMzE1MDUx
ZGY3MDg4ZWQ4ZjdkOWRmYjA3MGE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE5
LTA5LTIwICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IHRlc3RzIHVuZGVyIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ciBhcmUgZmxha3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzNzEzMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTg0NjEzMzU+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGRlYnVnZ2VyIHRlc3Rz
IG9uIEdUSy4gQWxsIHRlc3RzIHRoYXQgcGF1c2Ugb24gYnJlYWtwb2ludCBkaWRuJ3Qgd29yayBi
ZWNhdXNlCisgICAgICAgIGluIGxheW91dCB0ZXN0cyBJbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsIHdhcyB1c2luZyBUaW1lciB0byBkaXNwYXRjaCBjb21tYW5kcworICAgICAgICBzZW50IGZy
b20gdGhlIGxvY2FsIGZyb250LWVuZCBwYWdlIHRvIHRoZSBpbnNwZWN0ZWQgb25lLiBXaGVuIHBh
dXNlZCBpbnNpZGUgYSBzY3JpcHQKKyAgICAgICAgdHJpZ2dlcmVkIGJ5IHRoZSBmcm9udC1lbmQg
bmVzdGVkIHRpbWVyIGV2ZW50IHdvdWxkIGJlIHNjaGVkdWxlZCBidXQgbmV2ZXIgZmlyZWQKKyAg
ICAgICAgYmVjYXVzZSBpbiBnbGliIGltcGxlbWVudGF0aW9uIG9mIFJ1bkxvb3A6OlRpbWVyQmFz
ZSB1c2VzIGV2ZW50IHNvdXJjZSB3aGljaCBkb2Vzbid0CisgICAgICAgIGFsbG93IHJlY3Vyc2lv
biAoZ19zb3VyY2Vfc2V0X2Nhbl9yZWN1cnNlIGlzIG5vdCBjYWxsZWQgb24gdGhlIHNvdXJjZSks
IHNvIGRpc3BhdGNoaW5nCisgICAgICAgIERlYnVnZ2VyLnJlc3VtZSBjb21tYW5kIGRpZG4ndCB3
b3JrIHdoZW4gcGF1c2VkIGluc2lkZSBhbm90aGVyIGluc3BlY3RvciBjb21tYW5kIChlLmcuCisg
ICAgICAgIGV2YWwpLiBSdW5Mb29wIGl0c2VsZiB1c2VzIGV2ZW50IHNvdXJjZSB3aGljaCBkb2Vz
IGFsbG93IHJlY3Vyc2lvbi4gU28gaW5zdGVhZCBvZiB1c2luZworICAgICAgICBhIHRpbWVyIGZv
ciBhc3luY2hyb25vdXMgY29tbWFuZCBkaXNwYXRjaGluZyB3aXRoIGRlbGF5PTAgd2Ugbm93IHNj
aGVkdWxlIGEgdGFzayBpbgorICAgICAgICBSdW5Mb29wJ3MgcXVldWUuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrOjpkaXNwYXRjaCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrOjpyZXNldCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrOjpJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRh
c2s6OnNjaGVkdWxlT25lU2hvdCk6IGVuc3VyZXMgdGhhdCB0aGVyZSBpcyBvbmUgaW5zcGVjdG9y
CisgICAgICAgIGRpc3BhdGNoIHRhc2sgaW4gdGhlIHF1ZXVlLgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoVGFzazo6ZGlzcGF0Y2hPbmVNZXNzYWdlKTogdGhpcyBp
cyBtb3N0bHkgdGhlIHNhbWUgYmVoYXZpb3IKKyAgICAgICAgYXMgd2FzIHdpdGggdGltZXJGaXJl
ZCwgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZGlzcGF0Y2ggYWxsIGFjY3VtdWxhdGVkIG1lc3NhZ2Vz
IGZyb20gdGhlIHF1ZXVlCisgICAgICAgIGluIG9uZSBiYXRjaCBidXQgZm9yIG5vdyBJJ2QgbGlr
ZSB0byBrZWVwIGl0IG9uZSBwZXIgaXRlcmF0aW9uLgorCiAyMDE5LTA5LTI3ICBaYWxhbiBCdWp0
YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBSZXBsYWNlIExpbmU6
OlJ1bidzIGxvZ2ljYWxSZWN0L3RleHRDb250ZXh0IHdpdGggRGlzcGxheTo6UnVuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IGZhZDk1ZTI5YWZj
YzA4OTQ5YWIyMTM4ZWJlNTNjZDFhMTQ2MzA4Y2YuLjlkNDhlMGJiYTJjYWZmZTAyODE5ZjAyNTU3
ZGZkMjk2OGZjNWNhMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suY3BwCkBAIC0xODY2LDcgKzE4NjYsNyBAQCB2b2lkIENvZGVCbG9jazo6ZXhwcmVzc2lv
blJhbmdlRm9yQnl0ZWNvZGVPZmZzZXQodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQsIGludCYgZAog
ICAgIGxpbmUgKz0gb3duZXJFeGVjdXRhYmxlKCktPmZpcnN0TGluZSgpOwogfQogCi1ib29sIENv
ZGVCbG9jazo6aGFzT3BEZWJ1Z0ZvckxpbmVBbmRDb2x1bW4odW5zaWduZWQgbGluZSwgdW5zaWdu
ZWQgY29sdW1uKQorYm9vbCBDb2RlQmxvY2s6Omhhc09wRGVidWdGb3JMaW5lQW5kQ29sdW1uKHVu
c2lnbmVkIGxpbmUsIE9wdGlvbmFsPHVuc2lnbmVkPiBjb2x1bW4pCiB7CiAgICAgY29uc3QgSW5z
dHJ1Y3Rpb25TdHJlYW0mIGluc3RydWN0aW9uU3RyZWFtID0gaW5zdHJ1Y3Rpb25zKCk7CiAgICAg
Zm9yIChjb25zdCBhdXRvJiBpdCA6IGluc3RydWN0aW9uU3RyZWFtKSB7CkBAIC0xODc1LDcgKzE4
NzUsNyBAQCBib29sIENvZGVCbG9jazo6aGFzT3BEZWJ1Z0ZvckxpbmVBbmRDb2x1bW4odW5zaWdu
ZWQgbGluZSwgdW5zaWduZWQgY29sdW1uKQogICAgICAgICAgICAgdW5zaWduZWQgb3BEZWJ1Z0xp
bmU7CiAgICAgICAgICAgICB1bnNpZ25lZCBvcERlYnVnQ29sdW1uOwogICAgICAgICAgICAgZXhw
cmVzc2lvblJhbmdlRm9yQnl0ZWNvZGVPZmZzZXQoaXQub2Zmc2V0KCksIHVudXNlZCwgdW51c2Vk
LCB1bnVzZWQsIG9wRGVidWdMaW5lLCBvcERlYnVnQ29sdW1uKTsKLSAgICAgICAgICAgIGlmIChs
aW5lID09IG9wRGVidWdMaW5lICYmIChjb2x1bW4gPT0gQnJlYWtwb2ludDo6dW5zcGVjaWZpZWRD
b2x1bW4gfHwgY29sdW1uID09IG9wRGVidWdDb2x1bW4pKQorICAgICAgICAgICAgaWYgKGxpbmUg
PT0gb3BEZWJ1Z0xpbmUgJiYgKCFjb2x1bW4gfHwgY29sdW1uID09IG9wRGVidWdDb2x1bW4pKQog
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCmluZGV4IGIxYTgyYjMzNjdhZWMxYWI2
MWY1ZThmYjhmOTExMmEzZjM3N2QyOTcuLjg4Y2ZhZTRlZTkyMTg5ZmEwZTA5YmNlODNjNDBlMTQ1
YWRmNWNmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgK
QEAgLTc4Nyw3ICs3ODcsNyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgZnJhbWVSZWdpc3RlckNv
dW50KCk7CiAgICAgaW50IHN0YWNrUG9pbnRlck9mZnNldCgpOwogCi0gICAgYm9vbCBoYXNPcERl
YnVnRm9yTGluZUFuZENvbHVtbih1bnNpZ25lZCBsaW5lLCB1bnNpZ25lZCBjb2x1bW4pOworICAg
IGJvb2wgaGFzT3BEZWJ1Z0ZvckxpbmVBbmRDb2x1bW4odW5zaWduZWQgbGluZSwgT3B0aW9uYWw8
dW5zaWduZWQ+IGNvbHVtbik7CiAKICAgICBib29sIGhhc0RlYnVnZ2VyUmVxdWVzdHMoKSBjb25z
dCB7IHJldHVybiBtX2RlYnVnZ2VyUmVxdWVzdHM7IH0KICAgICB2b2lkKiBkZWJ1Z2dlclJlcXVl
c3RzQWRkcmVzcygpIHsgcmV0dXJuICZtX2RlYnVnZ2VyUmVxdWVzdHM7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9CcmVha3BvaW50LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvQnJlYWtwb2ludC5oCmluZGV4IGJiOGYwZGRiYjlkNGY3MDYz
YTY4YTE0Nzg3NTFlMzkxNDMxOTY3MDQuLjE0MThlMTU5OGIzMGExYjA1ODE0YWI4ZmZhZDE1YTIz
MzRjYmQyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9CcmVh
a3BvaW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0JyZWFrcG9pbnQu
aApAQCAtNTcsOCArNTcsNiBAQCBzdHJ1Y3QgQnJlYWtwb2ludCA6IHB1YmxpYyBEb3VibHlMaW5r
ZWRMaXN0Tm9kZTxCcmVha3BvaW50PiB7CiAgICAgdW5zaWduZWQgaGl0Q291bnQgeyAwIH07CiAg
ICAgYm9vbCByZXNvbHZlZCB7IGZhbHNlIH07CiAKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIHVuc3BlY2lmaWVkQ29sdW1uID0gVUlOVF9NQVg7Ci0KIHByaXZhdGU6CiAgICAgQnJlYWtw
b2ludCogbV9wcmV2OwogICAgIEJyZWFrcG9pbnQqIG1fbmV4dDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCmluZGV4IGIwY2ZkZjg4YmQ0MTM3YzQ0ODhhMjMw
MTMxOTAzYTQyM2M2OTdkYjcuLjZlNjBiZTVlNTdlZTRiMzJkYTRhMGMzYzg5OGFmNzhmZDI0YWI1
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcApAQCAt
MjY4LDkgKzI2OCw2IEBAIHZvaWQgRGVidWdnZXI6OnRvZ2dsZUJyZWFrcG9pbnQoQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIEJyZWFrcG9pbnQmIGJyZWFrcG9pbnQsIEJyCiAgICAgaWYgKGJyZWFrcG9p
bnQuc291cmNlSUQgIT0gc291cmNlSUQpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVuc2lnbmVk
IGxpbmUgPSBicmVha3BvaW50LmxpbmU7Ci0gICAgdW5zaWduZWQgY29sdW1uID0gYnJlYWtwb2lu
dC5jb2x1bW47Ci0KICAgICB1bnNpZ25lZCBzdGFydExpbmUgPSBleGVjdXRhYmxlLT5maXJzdExp
bmUoKTsKICAgICB1bnNpZ25lZCBzdGFydENvbHVtbiA9IGV4ZWN1dGFibGUtPnN0YXJ0Q29sdW1u
KCk7CiAgICAgdW5zaWduZWQgZW5kTGluZSA9IGV4ZWN1dGFibGUtPmxhc3RMaW5lKCk7CkBAIC0y
NzgsMTIgKzI3NSwxNCBAQCB2b2lkIERlYnVnZ2VyOjp0b2dnbGVCcmVha3BvaW50KENvZGVCbG9j
ayogY29kZUJsb2NrLCBCcmVha3BvaW50JiBicmVha3BvaW50LCBCcgogCiAgICAgLy8gSW5zcGVj
dG9yIGJyZWFrcG9pbnQgbGluZSBhbmQgY29sdW1uIHZhbHVlcyBhcmUgemVyby1iYXNlZCBidXQg
dGhlIGV4ZWN1dGFibGUKICAgICAvLyBhbmQgQ29kZUJsb2NrIGxpbmUgYW5kIGNvbHVtbiB2YWx1
ZXMgYXJlIG9uZS1iYXNlZC4KLSAgICBsaW5lICs9IDE7Ci0gICAgY29sdW1uID0gY29sdW1uID8g
Y29sdW1uICsgMSA6IEJyZWFrcG9pbnQ6OnVuc3BlY2lmaWVkQ29sdW1uOworICAgIHVuc2lnbmVk
IGxpbmUgPSBicmVha3BvaW50LmxpbmUgKyAxOworICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBjb2x1
bW47CisgICAgaWYgKGJyZWFrcG9pbnQuY29sdW1uKQorICAgICAgICBjb2x1bW4gPSBicmVha3Bv
aW50LmNvbHVtbiArIDE7CiAKICAgICBpZiAobGluZSA8IHN0YXJ0TGluZSB8fCBsaW5lID4gZW5k
TGluZSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChjb2x1bW4gIT0gQnJlYWtwb2ludDo6dW5z
cGVjaWZpZWRDb2x1bW4pIHsKKyAgICBpZiAoY29sdW1uKSB7CiAgICAgICAgIGlmIChsaW5lID09
IHN0YXJ0TGluZSAmJiBjb2x1bW4gPCBzdGFydENvbHVtbikKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgaWYgKGxpbmUgPT0gZW5kTGluZSAmJiBjb2x1bW4gPiBlbmRDb2x1bW4pCkBAIC0z
NTksMzUgKzM1OCwzNSBAQCB2b2lkIERlYnVnZ2VyOjpyZXNvbHZlQnJlYWtwb2ludChCcmVha3Bv
aW50JiBicmVha3BvaW50LCBTb3VyY2VQcm92aWRlciogc291cmNlUAogCiAgICAgLy8gRklYTUU6
IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNjI3NzE+IFdlYiBJbnNwZWN0b3I6IEFkb3B0IFRleHRQ
b3NpdGlvbiBpbiBJbnNwZWN0b3IgdG8gYXZvaWQgb25lQmFzZWRJbnQvemVyb0Jhc2VkSW50IGFt
YmlndWl0eQogICAgIC8vIEluc3BlY3RvciBicmVha3BvaW50IGxpbmUgYW5kIGNvbHVtbiB2YWx1
ZXMgYXJlIHplcm8tYmFzZWQgYnV0IHRoZSBleGVjdXRhYmxlCi0gICAgLy8gYW5kIENvZGVCbG9j
ayBsaW5lIGFuZCBjb2x1bW4gdmFsdWVzIGFyZSBvbmUtYmFzZWQuCi0gICAgdW5zaWduZWQgbGlu
ZSA9IGJyZWFrcG9pbnQubGluZSArIDE7Ci0gICAgdW5zaWduZWQgY29sdW1uID0gYnJlYWtwb2lu
dC5jb2x1bW4gPyBicmVha3BvaW50LmNvbHVtbiA6IEJyZWFrcG9pbnQ6OnVuc3BlY2lmaWVkQ29s
dW1uOworICAgIC8vIGFuZCBDb2RlQmxvY2sgbGluZSB2YWx1ZXMgYXJlIG9uZS1iYXNlZCB3aGls
ZSBjb2x1bW4gaXMgemVyby1iYXNlZC4KKyAgICBpbnQgbGluZSA9IGJyZWFrcG9pbnQubGluZSAr
IDE7CisgICAgaW50IGNvbHVtbiA9IGJyZWFrcG9pbnQuY29sdW1uOwogCiAgICAgLy8gQWNjb3Vu
dCBmb3IgYSA8c2NyaXB0PidzIHN0YXJ0IHBvc2l0aW9uIG9uIHRoZSBmaXJzdCBsaW5lIG9ubHku
Ci0gICAgdW5zaWduZWQgcHJvdmlkZXJTdGFydExpbmUgPSBzb3VyY2VQcm92aWRlci0+c3RhcnRQ
b3NpdGlvbigpLm1fbGluZS5vbmVCYXNlZEludCgpOyAvLyBPbmUgYmFzZWQgdG8gbWF0Y2ggdGhl
IGFscmVhZHkgYWRqdXN0ZWQgbGluZS4KLSAgICB1bnNpZ25lZCBwcm92aWRlclN0YXJ0Q29sdW1u
ID0gc291cmNlUHJvdmlkZXItPnN0YXJ0UG9zaXRpb24oKS5tX2NvbHVtbi56ZXJvQmFzZWRJbnQo
KTsgLy8gWmVybyBiYXNlZCBzbyBjb2x1bW4gemVybyBpcyB6ZXJvLgotICAgIGlmIChsaW5lID09
IHByb3ZpZGVyU3RhcnRMaW5lICYmIGNvbHVtbiAhPSBCcmVha3BvaW50Ojp1bnNwZWNpZmllZENv
bHVtbikgeworICAgIGludCBwcm92aWRlclN0YXJ0TGluZSA9IHNvdXJjZVByb3ZpZGVyLT5zdGFy
dFBvc2l0aW9uKCkubV9saW5lLm9uZUJhc2VkSW50KCk7IC8vIE9uZSBiYXNlZCB0byBtYXRjaCB0
aGUgYWxyZWFkeSBhZGp1c3RlZCBsaW5lLgorICAgIGludCBwcm92aWRlclN0YXJ0Q29sdW1uID0g
c291cmNlUHJvdmlkZXItPnN0YXJ0UG9zaXRpb24oKS5tX2NvbHVtbi56ZXJvQmFzZWRJbnQoKTsg
Ly8gWmVybyBiYXNlZCBzbyBjb2x1bW4gemVybyBpcyB6ZXJvLgorICAgIGlmIChsaW5lID09IHBy
b3ZpZGVyU3RhcnRMaW5lICYmIGJyZWFrcG9pbnQuY29sdW1uKSB7CiAgICAgICAgIEFTU0VSVChw
cm92aWRlclN0YXJ0Q29sdW1uIDw9IGNvbHVtbik7CiAgICAgICAgIGlmIChwcm92aWRlclN0YXJ0
Q29sdW1uKQogICAgICAgICAgICAgY29sdW1uIC09IHByb3ZpZGVyU3RhcnRDb2x1bW47CiAgICAg
fQogCiAgICAgRGVidWdnZXJQYXJzZURhdGEmIHBhcnNlRGF0YSA9IGRlYnVnZ2VyUGFyc2VEYXRh
KGJyZWFrcG9pbnQuc291cmNlSUQsIHNvdXJjZVByb3ZpZGVyKTsKLSAgICBPcHRpb25hbDxKU1Rl
eHRQb3NpdGlvbj4gcmVzb2x2ZWRQb3NpdGlvbiA9IHBhcnNlRGF0YS5wYXVzZVBvc2l0aW9ucy5i
cmVha3BvaW50TG9jYXRpb25Gb3JMaW5lQ29sdW1uKChpbnQpbGluZSwgKGludCljb2x1bW4pOwor
ICAgIE9wdGlvbmFsPEpTVGV4dFBvc2l0aW9uPiByZXNvbHZlZFBvc2l0aW9uID0gcGFyc2VEYXRh
LnBhdXNlUG9zaXRpb25zLmJyZWFrcG9pbnRMb2NhdGlvbkZvckxpbmVDb2x1bW4obGluZSwgY29s
dW1uKTsKICAgICBpZiAoIXJlc29sdmVkUG9zaXRpb24pCiAgICAgICAgIHJldHVybjsKIAotICAg
IHVuc2lnbmVkIHJlc29sdmVkTGluZSA9IHJlc29sdmVkUG9zaXRpb24tPmxpbmU7Ci0gICAgdW5z
aWduZWQgcmVzb2x2ZWRDb2x1bW4gPSByZXNvbHZlZFBvc2l0aW9uLT5vZmZzZXQgLSByZXNvbHZl
ZFBvc2l0aW9uLT5saW5lU3RhcnRPZmZzZXQgKyAxOworICAgIGludCByZXNvbHZlZExpbmUgPSBy
ZXNvbHZlZFBvc2l0aW9uLT5saW5lOworICAgIGludCByZXNvbHZlZENvbHVtbiA9IHJlc29sdmVk
UG9zaXRpb24tPm9mZnNldCAtIHJlc29sdmVkUG9zaXRpb24tPmxpbmVTdGFydE9mZnNldDsKIAog
ICAgIC8vIFJlLWFjY291bnQgZm9yIGEgPHNjcmlwdD4ncyBzdGFydCBwb3NpdGlvbiBvbiB0aGUg
Zmlyc3QgbGluZSBvbmx5LgotICAgIGlmIChyZXNvbHZlZExpbmUgPT0gcHJvdmlkZXJTdGFydExp
bmUgJiYgY29sdW1uICE9IEJyZWFrcG9pbnQ6OnVuc3BlY2lmaWVkQ29sdW1uKSB7CisgICAgaWYg
KHJlc29sdmVkTGluZSA9PSBwcm92aWRlclN0YXJ0TGluZSAmJiBicmVha3BvaW50LmNvbHVtbikg
ewogICAgICAgICBpZiAocHJvdmlkZXJTdGFydENvbHVtbikKICAgICAgICAgICAgIHJlc29sdmVk
Q29sdW1uICs9IHByb3ZpZGVyU3RhcnRDb2x1bW47CiAgICAgfQogCiAgICAgYnJlYWtwb2ludC5s
aW5lID0gcmVzb2x2ZWRMaW5lIC0gMTsKLSAgICBicmVha3BvaW50LmNvbHVtbiA9IHJlc29sdmVk
Q29sdW1uIC0gMTsKKyAgICBicmVha3BvaW50LmNvbHVtbiA9IHJlc29sdmVkQ29sdW1uOwogICAg
IGJyZWFrcG9pbnQucmVzb2x2ZWQgPSB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJzZURhdGEuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyUGFyc2VEYXRhLmNwcAppbmRleCA5YzMzNWE0YmIx
MGFmZjg1YTU3ZmI0NWFhNGEwNWY0ODRiYzUyNTlhLi42OWJhNGQyMzVkYTIxZjkyOTk2MGFmYjI4
N2RlOGNlNjRiY2UwMjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJQYXJzZURhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlclBhcnNlRGF0YS5jcHAKQEAgLTMzLDQzICszMywyNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogT3B0aW9uYWw8SlNUZXh0UG9zaXRpb24+IERlYnVnZ2VyUGF1c2VQb3NpdGlvbnM6
OmJyZWFrcG9pbnRMb2NhdGlvbkZvckxpbmVDb2x1bW4oaW50IGxpbmUsIGludCBjb2x1bW4pCiB7
Ci0gICAgdW5zaWduZWQgc3RhcnQgPSAwOwotICAgIHVuc2lnbmVkIGVuZCA9IG1fcG9zaXRpb25z
LnNpemUoKTsKLSAgICB3aGlsZSAoc3RhcnQgIT0gZW5kKSB7Ci0gICAgICAgIHVuc2lnbmVkIG1p
ZGRsZSA9IHN0YXJ0ICsgKChlbmQgLSBzdGFydCkgLyAyKTsKLSAgICAgICAgRGVidWdnZXJQYXVz
ZVBvc2l0aW9uJiBwYXVzZVBvc2l0aW9uID0gbV9wb3NpdGlvbnNbbWlkZGxlXTsKLSAgICAgICAg
aW50IHBhdXNlTGluZSA9IHBhdXNlUG9zaXRpb24ucG9zaXRpb24ubGluZTsKLSAgICAgICAgaW50
IHBhdXNlQ29sdW1uID0gcGF1c2VQb3NpdGlvbi5wb3NpdGlvbi5vZmZzZXQgLSBwYXVzZVBvc2l0
aW9uLnBvc2l0aW9uLmxpbmVTdGFydE9mZnNldDsKLQotICAgICAgICBpZiAobGluZSA8IHBhdXNl
TGluZSkgewotICAgICAgICAgICAgZW5kID0gbWlkZGxlOwotICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGxpbmUgPiBwYXVzZUxpbmUpIHsKLSAgICAgICAgICAg
IHN0YXJ0ID0gbWlkZGxlICsgMTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0K
LSAgICAgICAgaWYgKGNvbHVtbiA9PSBwYXVzZUNvbHVtbikgewotICAgICAgICAgICAgLy8gRm91
bmQgYW4gZXhhY3QgcG9zaXRpb24gbWF0Y2guIFJvbGwgZm9yd2FyZCBpZiB0aGlzIHdhcyBhIGZ1
bmN0aW9uIEVudHJ5LgotICAgICAgICAgICAgLy8gV2UgYXJlIGd1YXJlbnRlZWQgdG8gaGF2ZSBh
IExlYXZlIGZvciBhbiBFbnRyeSBzbyB3ZSBkb24ndCBuZWVkIHRvIGJvdW5kcyBjaGVjay4KLSAg
ICAgICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHBhdXNlUG9zaXRp
b24udHlwZSAhPSBEZWJ1Z2dlclBhdXNlUG9zaXRpb25UeXBlOjpFbnRlcikKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIE9wdGlvbmFsPEpTVGV4dFBvc2l0aW9uPihwYXVzZVBvc2l0aW9uLnBv
c2l0aW9uKTsKLSAgICAgICAgICAgICAgICBwYXVzZVBvc2l0aW9uID0gbV9wb3NpdGlvbnNbbWlk
ZGxlKytdOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgRGVidWdnZXJQYXVzZVBvc2l0
aW9uIHBvc2l0aW9uOworICAgIHBvc2l0aW9uLnBvc2l0aW9uLmxpbmUgPSBsaW5lOworICAgIHBv
c2l0aW9uLnBvc2l0aW9uLm9mZnNldCA9IGNvbHVtbjsKKyAgICBwb3NpdGlvbi5wb3NpdGlvbi5s
aW5lU3RhcnRPZmZzZXQgPSAwOworICAgIGF1dG8gaXQgPSBzdGQ6Omxvd2VyX2JvdW5kKG1fcG9z
aXRpb25zLmJlZ2luKCksIG1fcG9zaXRpb25zLmVuZCgpLCBwb3NpdGlvbiwgW10gKGNvbnN0IERl
YnVnZ2VyUGF1c2VQb3NpdGlvbiYgYSwgY29uc3QgRGVidWdnZXJQYXVzZVBvc2l0aW9uJiBiKSB7
CisgICAgICAgIGlmIChhLnBvc2l0aW9uLmxpbmUgPT0gYi5wb3NpdGlvbi5saW5lKQorICAgICAg
ICAgICAgcmV0dXJuIGEucG9zaXRpb24uY29sdW1uKCkgPCBiLnBvc2l0aW9uLmNvbHVtbigpOwor
ICAgICAgICByZXR1cm4gYS5wb3NpdGlvbi5saW5lIDwgYi5wb3NpdGlvbi5saW5lOworICAgIH0p
OworICAgIGlmIChpdCA9PSBtX3Bvc2l0aW9ucy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKIAotICAgICAgICBpZiAoY29sdW1uIDwgcGF1c2VDb2x1bW4pCi0gICAgICAgICAg
ICBlbmQgPSBtaWRkbGU7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHN0YXJ0ID0gbWlkZGxl
ICsgMTsKKyAgICBpZiAobGluZSA9PSBpdC0+cG9zaXRpb24ubGluZSAmJiBjb2x1bW4gPT0gaXQt
PnBvc2l0aW9uLmNvbHVtbigpKSB7CisgICAgICAgIC8vIEZvdW5kIGFuIGV4YWN0IHBvc2l0aW9u
IG1hdGNoLiBSb2xsIGZvcndhcmQgaWYgdGhpcyB3YXMgYSBmdW5jdGlvbiBFbnRyeS4KKyAgICAg
ICAgLy8gV2UgYXJlIGd1YXJhbnRlZWQgdG8gaGF2ZSBhIExlYXZlIGZvciBhbiBFbnRyeSBzbyB3
ZSBkb24ndCBuZWVkIHRvIGJvdW5kcyBjaGVjay4KKyAgICAgICAgd2hpbGUgKGl0LT50eXBlID09
IERlYnVnZ2VyUGF1c2VQb3NpdGlvblR5cGU6OkVudGVyKQorICAgICAgICAgICAgKytpdDsKKyAg
ICAgICAgcmV0dXJuIGl0LT5wb3NpdGlvbjsKICAgICB9CiAKLSAgICAvLyBQYXN0IHRoZSBlbmQs
IG5vIHBvc3NpYmxlIHBhdXNlIGxvY2F0aW9ucy4KLSAgICBpZiAoc3RhcnQgPj0gbV9wb3NpdGlv
bnMuc2l6ZSgpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCiAgICAgLy8gSWYgdGhl
IG5leHQgbG9jYXRpb24gaXMgYSBmdW5jdGlvbiBFbnRyeSB3ZSB3aWxsIG5lZWQgdG8gZGVjaWRl
IGlmIHdlIHNob3VsZCBnbyBpbnRvCiAgICAgLy8gdGhlIGZ1bmN0aW9uIG9yIGdvIHBhc3QgdGhl
IGZ1bmN0aW9uLiBXZSBkZWNpZGUgdG8gZ28gaW50byB0aGUgZnVuY3Rpb24gaWYgdGhlCiAgICAg
Ly8gaW5wdXQgaXMgb24gdGhlIHNhbWUgbGluZSBhcyB0aGUgZnVuY3Rpb24gZW50cnkuIEZvciBl
eGFtcGxlOgpAQCAtODYsNyArNjksNyBAQCBPcHRpb25hbDxKU1RleHRQb3NpdGlvbj4gRGVidWdn
ZXJQYXVzZVBvc2l0aW9uczo6YnJlYWtwb2ludExvY2F0aW9uRm9yTGluZUNvbHVtbgogICAgIC8v
IElmIHRoZSBpbnB1dCB3YXMgbGluZSAzLCBnbyBpbnRvIHRoZSBmdW5jdGlvbiB0byBwYXVzZSBv
biBsaW5lIDQuCiAKICAgICAvLyBWYWxpZCBwYXVzZSBsb2NhdGlvbi4gVXNlIGl0LgotICAgIERl
YnVnZ2VyUGF1c2VQb3NpdGlvbiYgZmlyc3RTbGlkZVBvc2l0aW9uID0gbV9wb3NpdGlvbnNbc3Rh
cnRdOworICAgIERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYgZmlyc3RTbGlkZVBvc2l0aW9uID0gKml0
OwogICAgIGlmIChmaXJzdFNsaWRlUG9zaXRpb24udHlwZSAhPSBEZWJ1Z2dlclBhdXNlUG9zaXRp
b25UeXBlOjpFbnRlcikKICAgICAgICAgcmV0dXJuIE9wdGlvbmFsPEpTVGV4dFBvc2l0aW9uPihm
aXJzdFNsaWRlUG9zaXRpb24ucG9zaXRpb24pOwogCkBAIC05NCw4ICs3Nyw5IEBAIE9wdGlvbmFs
PEpTVGV4dFBvc2l0aW9uPiBEZWJ1Z2dlclBhdXNlUG9zaXRpb25zOjpicmVha3BvaW50TG9jYXRp
b25Gb3JMaW5lQ29sdW1uCiAgICAgLy8gSWYgZW50cnlTdGFja1NpemUgaXMgPiAwIHdlIGFyZSBz
a2lwcGluZyBmdW5jdGlvbnMuCiAgICAgYm9vbCBzaG91bGRFbnRlckZ1bmN0aW9uID0gZmlyc3RT
bGlkZVBvc2l0aW9uLnBvc2l0aW9uLmxpbmUgPT0gbGluZTsKICAgICBpbnQgZW50cnlTdGFja1Np
emUgPSBzaG91bGRFbnRlckZ1bmN0aW9uID8gMCA6IDE7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0g
c3RhcnQgKyAxOyBpIDwgbV9wb3NpdGlvbnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgRGVidWdn
ZXJQYXVzZVBvc2l0aW9uJiBzbGlkZVBvc2l0aW9uID0gbV9wb3NpdGlvbnNbaV07CisgICAgKytp
dDsKKyAgICBmb3IgKDsgaXQgIT0gbV9wb3NpdGlvbnMuZW5kKCk7ICsraXQpIHsKKyAgICAgICAg
YXV0byYgc2xpZGVQb3NpdGlvbiA9ICppdDsKICAgICAgICAgQVNTRVJUKGVudHJ5U3RhY2tTaXpl
ID49IDApOwogCiAgICAgICAgIC8vIEFscmVhZHkgc2tpcHBpbmcgZnVuY3Rpb25zLgpAQCAtMTI0
LDYgKzEwOCw4IEBAIE9wdGlvbmFsPEpTVGV4dFBvc2l0aW9uPiBEZWJ1Z2dlclBhdXNlUG9zaXRp
b25zOjpicmVha3BvaW50TG9jYXRpb25Gb3JMaW5lQ29sdW1uCiB2b2lkIERlYnVnZ2VyUGF1c2VQ
b3NpdGlvbnM6OnNvcnQoKQogewogICAgIHN0ZDo6c29ydChtX3Bvc2l0aW9ucy5iZWdpbigpLCBt
X3Bvc2l0aW9ucy5lbmQoKSwgW10gKGNvbnN0IERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYgYSwgY29u
c3QgRGVidWdnZXJQYXVzZVBvc2l0aW9uJiBiKSB7CisgICAgICAgIGlmIChhLnBvc2l0aW9uLm9m
ZnNldCA9PSBiLnBvc2l0aW9uLm9mZnNldCkKKyAgICAgICAgICAgIHJldHVybiBhLnR5cGUgPCBi
LnR5cGU7CiAgICAgICAgIHJldHVybiBhLnBvc2l0aW9uLm9mZnNldCA8IGIucG9zaXRpb24ub2Zm
c2V0OwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVn
Z2VyL0RlYnVnZ2VyUGFyc2VEYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIv
RGVidWdnZXJQYXJzZURhdGEuaAppbmRleCA5NjU5YjFkMDI4M2YzZGY5Y2M5NWU3YTkzYzNjNjll
OGQyM2EyZGMxLi4zOGZiMmVmYTFjYzBjNGZmNmU2Yzk1NWEzNTVhOTJlMGZjOWQ0YTMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJzZURhdGEu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJzZURhdGEu
aApAQCAtMzMsNyArMzMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIFNvdXJjZVByb3ZpZGVy
OwogY2xhc3MgVk07CiAKLWVudW0gY2xhc3MgRGVidWdnZXJQYXVzZVBvc2l0aW9uVHlwZSB7IEVu
dGVyLCBMZWF2ZSwgUGF1c2UgfTsKKy8vIFRoZSBvcmRlciBvZiB0aGUgY29uc3RhbnRzIGhlcmUg
bWF0dGVycyBhcyBpdCBpcyB1c2VkIGZvcgorLy8gc29ydGluZyBwYXVzZSBwb3NpdGlvbnMgdGhh
dCBoYXZlIHNhbWUgb2Zmc2V0LgorZW51bSBjbGFzcyBEZWJ1Z2dlclBhdXNlUG9zaXRpb25UeXBl
IHsgRW50ZXIsIFBhdXNlLCBMZWF2ZSB9Owogc3RydWN0IERlYnVnZ2VyUGF1c2VQb3NpdGlvbiB7
CiAgICAgRGVidWdnZXJQYXVzZVBvc2l0aW9uVHlwZSB0eXBlOwogICAgIEpTVGV4dFBvc2l0aW9u
IHBvc2l0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9w
cm90b2NvbC9EZWJ1Z2dlci5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9w
cm90b2NvbC9EZWJ1Z2dlci5qc29uCmluZGV4IDE1YWJkMzYyNjQwYmE3ZGFjNmY2NjgyMmZhZTIx
MmE1YWE5OTg0ZmUuLjE2ZDQxMTBmZDJkMzM1MDg0MmM5NmNhZmM4NjRhYTZiNmUzODc5NTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRGVidWdn
ZXIuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0Rl
YnVnZ2VyLmpzb24KQEAgLTI4LDggKzI4LDggQEAKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJMb2NhdGlvbiBpbiB0aGUgc291cmNlIGNvZGUuIiwKICAgICAgICAgICAgICJwcm9wZXJ0aWVz
IjogWwogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2NyaXB0SWQiLCAiJHJlZiI6ICJTY3Jp
cHRJZCIsICJkZXNjcmlwdGlvbiI6ICJTY3JpcHQgaWRlbnRpZmllciBhcyByZXBvcnRlZCBpbiB0
aGUgPGNvZGU+RGVidWdnZXIuc2NyaXB0UGFyc2VkPC9jb2RlPi4iIH0sCi0gICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJsaW5lTnVtYmVyIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlv
biI6ICJMaW5lIG51bWJlciBpbiB0aGUgc2NyaXB0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImNvbHVtbk51bWJlciIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiQ29sdW1uIG51bWJlciBpbiB0aGUgc2NyaXB0LiIgfQorICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAibGluZU51bWJlciIsICJ0eXBlIjogImludGVnZXIiLCAiZGVz
Y3JpcHRpb24iOiAiTGluZSBudW1iZXIgaW4gdGhlIHNjcmlwdCAoMC1iYXNlZCkuIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29sdW1uTnVtYmVyIiwgInR5cGUiOiAiaW50ZWdlciIs
ICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDb2x1bW4gbnVtYmVyIGluIHRoZSBz
Y3JpcHQgKDAtYmFzZWQpLiIgfQogICAgICAgICAgICAgXQogICAgICAgICB9LAogICAgICAgICB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaAppbmRleCA3MjA2
NGI5Mjg0ODE2NmY2ZGUyYjIzZjhhM2Y1OGM5ODFiNzY3OWU5Li43YWQwYjk5Mjc0Y2JiNGUzOTA5
YWNjN2JjZDc4ODIzN2E3N2JhY2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlclRva2Vucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
UGFyc2VyVG9rZW5zLmgKQEAgLTIxNyw2ICsyMTcsOCBAQCBzdHJ1Y3QgSlNUZXh0UG9zaXRpb24g
ewogICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7CiAgICAgfQogCisgICAgaW50IGNv
bHVtbigpIGNvbnN0IHsgcmV0dXJuIG9mZnNldCAtIGxpbmVTdGFydE9mZnNldDsgfQorCiAgICAg
aW50IGxpbmUgeyAwIH07CiAgICAgaW50IG9mZnNldCB7IDAgfTsKICAgICBpbnQgbGluZVN0YXJ0
T2Zmc2V0IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCmluZGV4IDc3MmVjNzQ2OTEzY2M2OGRiOTll
YWJhYzkxMzExMzllOWI3NDhmZmEuLjFiM2M4ODc2Y2M2ODczMWI1ZDYyOGRkMmRlMmI5ZDYwNGYy
YTQ1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKQEAgLTgxLDQzICs4MSw1NCBAQCBwdWJsaWM6CiAg
ICAgICAgIEFTU0VSVF9BUkcobWVzc2FnZSwgIW1lc3NhZ2UuaXNFbXB0eSgpKTsKIAogICAgICAg
ICBtX21lc3NhZ2VzLmFwcGVuZChtZXNzYWdlKTsKLSAgICAgICAgaWYgKCFtX3RpbWVyLmlzQWN0
aXZlKCkpCi0gICAgICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOworICAgICAgICBz
Y2hlZHVsZU9uZVNob3QoKTsKICAgICB9CiAKICAgICB2b2lkIHJlc2V0KCkKICAgICB7CiAgICAg
ICAgIG1fbWVzc2FnZXMuY2xlYXIoKTsKLSAgICAgICAgbV90aW1lci5zdG9wKCk7CiAgICAgICAg
IG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIgPSBudWxscHRyOwogICAgIH0KIAotICAgIHZvaWQg
dGltZXJGaXJlZCgpCitwcml2YXRlOgorICAgIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRhc2so
SW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIpCisgICAgICAgIDog
bV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxlcihpbnNwZWN0ZWRQYWdlQ29udHJvbGxlcikKKyAgICB7
CisgICAgICAgIEFTU0VSVF9BUkcoaW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIsIGluc3BlY3RlZFBh
Z2VDb250cm9sbGVyKTsKKyAgICB9CisKKyAgICB2b2lkIHNjaGVkdWxlT25lU2hvdCgpCiAgICAg
ewotICAgICAgICBBU1NFUlQobV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxlcik7CisgICAgICAgIGlm
IChtX2hhc1NjaGVkdWxlZFRhc2spCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1faGFz
U2NoZWR1bGVkVGFzayA9IHRydWU7CisKKyAgICAgICAgLy8gVGhlIGZyb250ZW5kIGNhbiBiZSBj
bG9zZWQgYW5kIGRlc3Ryb3kgdGhlIG93bmluZyBmcm9udGVuZCBjbGllbnQgYmVmb3JlIG9yIGlu
IHRoZQorICAgICAgICAvLyBwcm9jZXNzIG9mIGRpc3BhdGNoaW5nIHRoZSB0YXNrLCBzbyBrZWVw
IGEgcHJvdGVjdG9yIHJlZmVyZW5jZSBoZXJlLgorICAgICAgICBSdW5Mb29wOjpjdXJyZW50KCku
ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0geworICAgICAg
ICAgICAgbV9oYXNTY2hlZHVsZWRUYXNrID0gZmFsc2U7CisgICAgICAgICAgICBkaXNwYXRjaE9u
ZU1lc3NhZ2UoKTsKKyAgICAgICAgfSk7CisgICAgfQogCi0gICAgICAgIC8vIERpc3BhdGNoaW5n
IGEgbWVzc2FnZSBjYW4gcG9zc2libHkgY2xvc2UgdGhlIGZyb250ZW5kIGFuZCBkZXN0cm95Ci0g
ICAgICAgIC8vIHRoZSBvd25pbmcgZnJvbnRlbmQgY2xpZW50LCBzbyBrZWVwIGEgcHJvdGVjdG9y
IHJlZmVyZW5jZSBoZXJlLgotICAgICAgICBSZWY8SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoVGFz
az4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CisgICAgdm9pZCBkaXNwYXRjaE9uZU1lc3NhZ2UoKQor
ICAgIHsKKyAgICAgICAgLy8gT3duaW5nIGZyb250ZW5kIGNsaWVudCBtYXkgaGF2ZSBiZWVuIGRl
c3Ryb3llZCBhZnRlciB0aGUgdGFzayB3YXMgc2NoZWR1bGVkLgorICAgICAgICBpZiAoIW1faW5z
cGVjdGVkUGFnZUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIEFTU0VSVChtX21lc3NhZ2VzLmlz
RW1wdHkoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAogICAgICAgICBpZiAo
IW1fbWVzc2FnZXMuaXNFbXB0eSgpKQogICAgICAgICAgICAgbV9pbnNwZWN0ZWRQYWdlQ29udHJv
bGxlci0+ZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKG1fbWVzc2FnZXMudGFrZUZpcnN0KCkp
OwogCiAgICAgICAgIGlmICghbV9tZXNzYWdlcy5pc0VtcHR5KCkgJiYgbV9pbnNwZWN0ZWRQYWdl
Q29udHJvbGxlcikKLSAgICAgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDBfcyk7Ci0gICAg
fQotCi1wcml2YXRlOgotICAgIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRhc2soSW5zcGVjdG9y
Q29udHJvbGxlciogaW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIpCi0gICAgICAgIDogbV9pbnNwZWN0
ZWRQYWdlQ29udHJvbGxlcihpbnNwZWN0ZWRQYWdlQ29udHJvbGxlcikKLSAgICAgICAgLCBtX3Rp
bWVyKCp0aGlzLCAmSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoVGFzazo6dGltZXJGaXJlZCkKLSAg
ICB7Ci0gICAgICAgIEFTU0VSVF9BUkcoaW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIsIGluc3BlY3Rl
ZFBhZ2VDb250cm9sbGVyKTsKKyAgICAgICAgICAgIHNjaGVkdWxlT25lU2hvdCgpOwogICAgIH0K
IAogICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIgeyBu
dWxscHRyIH07Ci0gICAgVGltZXIgbV90aW1lcjsKICAgICBEZXF1ZTxTdHJpbmc+IG1fbWVzc2Fn
ZXM7CisgICAgYm9vbCBtX2hhc1NjaGVkdWxlZFRhc2sgeyBmYWxzZSB9OwogfTsKIAogU3RyaW5n
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OlNldHRpbmdzOjpnZXRQcm9wZXJ0eShjb25z
dCBTdHJpbmcmKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDllYzc0Mzg4ODkwM2FjMDYwMmQ0YzY2ZmVjY2MzZWRkZTg1NjIy
MGQuLjE1M2I1MjY4MDY0MTEzZDgyMTljYjM0YzM5YzI0ZjM5Mzk5M2EyNzUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxOS0wOS0yMCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB0ZXN0cyB1bmRlciBMYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIgYXJlIGZsYWt5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzcxMzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE4NDYx
MzM1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVu
YWJsZSBpbnNwZWN0b3IvZGVidWdnZXIgdGVzdHMgb24gR1RLLgorCisgICAgICAgICogaW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnRzL3Jlc29sdmVkLWR1bXAtYWxsLXBhdXNlLWxvY2F0aW9u
cy1leHBlY3RlZC50eHQ6IFJlYmFzZWxpbmVkIHRoZSB0ZXN0CisgICAgICAgIGFmdGVyIGNoYW5n
ZXMgaW4gdGhlIGJyZWFrcG9pbnQgcmVzb2x1dGlvbiBjb2RlLiBOb3cgdGhlIG91dHB1dCBvbiBH
VEsgaXMgdGhlIHNhbWUgYXMgb24gTWFjLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zOgorCiAyMDE5LTA5LTI3ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFN0b3JhZ2UgQWNjZXNzIEFQSTogZG9jdW1lbnQuaGFzU3RvcmFnZUFj
Y2VzcygpIHNob3VsZCByZXR1cm4gZmFsc2UgYnkgZGVmYXVsdApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnRzL3Jlc29sdmVkLWR1bXAtYWxsLXBh
dXNlLWxvY2F0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWtwb2ludHMvcmVzb2x2ZWQtZHVtcC1hbGwtcGF1c2UtbG9jYXRpb25zLWV4cGVjdGVk
LnR4dAppbmRleCA2MWJiM2RjMGI3MjlhMWJkNmQ0NzBkZjZhN2ViNjRkNTk3ZWNhMTRjLi5jYzA4
ZDk0OWNlYjQzZjk1OWZlMjc4YjZhNmRkMTA0OTE5OGUwODQzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludHMvcmVzb2x2ZWQtZHVtcC1hbGwtcGF1
c2UtbG9jYXRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWtwb2ludHMvcmVzb2x2ZWQtZHVtcC1hbGwtcGF1c2UtbG9jYXRpb25zLWV4cGVj
dGVkLnR4dApAQCAtMjE2Niw3ICsyMTY2LDcgQEAgUEFVU0VTIEFUOiA4OTo3CiAgICAgIDkyICAg
ICAgICB4CiAKIElOU0VSVElORyBBVDogODk6OAotUEFVU0VTIEFUOiA5NDowCitQQVVTRVMgQVQ6
IDk4OjAKICAgICAgODYgICAgCiAgICAgIDg3ICAgIHggPT4geDsKICAgICAgODggICAgKCkgPT4g
MTsKQEAgLTIxNzUsMTAgKzIxNzUsMTQgQEAgUEFVU0VTIEFUOiA5NDowCiAgICAgIDkxICAgICh4
KSA9PiB7CiAgICAgIDkyICAgICAgICB4CiAgICAgIDkzICAgIH07Ci0gPT4gIDk0ICAgIHwoKSA9
PiB7CisgICAgIDk0ICAgICgpID0+IHsKICAgICAgOTUgICAgICAgIHZhciB4OwogICAgICA5NiAg
ICB9OwogICAgICA5NyAgICAKKyA9PiAgOTggICAgfHZhciBmT2JqID0geworICAgICA5OSAgICAg
ICAgZjE6IGZ1bmN0aW9uKCkgeworICAgIDEwMCAgICAgICAgICAgIHZhciB4OworICAgIDEwMSAg
ICAgICAgfSwKIAogSU5TRVJUSU5HIEFUOiA5MDowCiBQQVVTRVMgQVQ6IDkwOjAKQEAgLTIyNDIs
NiArMjI0NiwxNiBAQCBQQVVTRVMgQVQ6IDkzOjAKICAgICAgOTUgICAgICAgIHZhciB4OwogICAg
ICA5NiAgICB9OwogCitJTlNFUlRJTkcgQVQ6IDk0OjAKK1BBVVNFUyBBVDogOTQ6MAorICAgICA5
MSAgICAoeCkgPT4geworICAgICA5MiAgICAgICAgeAorICAgICA5MyAgICB9OworLT0+ICA5NCAg
ICB8KCkgPT4geworICAgICA5NSAgICAgICAgdmFyIHg7CisgICAgIDk2ICAgIH07CisgICAgIDk3
ICAgIAorCiBJTlNFUlRJTkcgQVQ6IDk0OjEKIFBBVVNFUyBBVDogOTU6NAogICAgICA5MSAgICAo
eCkgPT4gewpAQCAtMjI2NCwxOCArMjI3OCw2IEBAIFBBVVNFUyBBVDogOTY6MAogICAgICA5OCAg
ICB2YXIgZk9iaiA9IHsKICAgICAgOTkgICAgICAgIGYxOiBmdW5jdGlvbigpIHsKIAotSU5TRVJU
SU5HIEFUOiA5NjoxCi1QQVVTRVMgQVQ6IDk4OjAKLSAgICAgOTMgICAgfTsKLSAgICAgOTQgICAg
KCkgPT4gewotICAgICA5NSAgICAgICAgdmFyIHg7Ci0gLT4gIDk2ICAgIH0jOwotICAgICA5NyAg
ICAKLSA9PiAgOTggICAgfHZhciBmT2JqID0gewotICAgICA5OSAgICAgICAgZjE6IGZ1bmN0aW9u
KCkgewotICAgIDEwMCAgICAgICAgICAgIHZhciB4OwotICAgIDEwMSAgICAgICAgfSwKLQogSU5T
RVJUSU5HIEFUOiA5OTowCiBQQVVTRVMgQVQ6IDEwMDo4CiAgICAgIDk2ICAgIH07CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGIwMGFiZjI5NDk0NjgwMzRj
MzViZDIyMDZiMDQ2Mjc1NzY3OGQ3YmYuLjNjYzIwOGQ3NmEwOTE2MWU4ZjY4ZTFlM2M4NDBkYzFj
ZGE2OTkyOTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBA
IC0yMzIwLDIxICsyMzIwLDggQEAgd2Via2l0Lm9yZy9iLzExNjk1NyBtZWRpYS90cmFjay90cmFj
ay1hdXRvbWF0aWMtc3VidGl0bGVzLmh0bWwgWyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzEy
MDY4MiBpbnNwZWN0b3IvcGFnZS9hcmNoaXZlLmh0bWwgWyBUaW1lb3V0IF0KIAord2Via2l0Lm9y
Zy9iLzE0NzUxOCBpbnNwZWN0b3IvZGVidWdnZXIvbmVzdGVkLWluc3BlY3RvcnMuaHRtbCBbIFRp
bWVvdXQgXQogd2Via2l0Lm9yZy9iLzEyMjU3MSBodHRwL3Rlc3RzL2luc3BlY3Rvci9kb20vY3Jv
c3MtZG9tYWluLWluc3BlY3RlZC1ub2RlLWFjY2Vzcy5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdl
YmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQuaHRtbCBb
IFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9j
YWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3Jn
L2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LW9wdGlvbnMtZXhjZXB0
aW9uLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3Iv
ZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQot
d2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlv
bnMtbm9uZS5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVj
dG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwgWyBUaW1lb3V0IFBhc3MgQ3Jh
c2ggXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2lu
dC1hdXRvQ29udGludWUuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcx
IGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC5odG1sIFsg
VGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtYWN0aW9ucy5odG1sIFsgRmFpbHVyZSBUaW1lb3V0IFBhc3MgXQotd2Via2l0
Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLW5vbnN0cmlj
dC5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0
Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24u
aHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1
Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9i
LzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC5odG1sIFsg
VGltZW91dCBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RvbS9yZXF1ZXN0
LWNoaWxkLW5vZGVzLWRlcHRoLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQogd2Via2l0Lm9yZy9iLzEy
MjU3MSBpbnNwZWN0b3IvZG9tL2ZvY3VzLmh0bWwgWyBGYWlsdXJlIFRpbWVvdXQgUGFzcyBdCiB3
ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9ydW50aW1lL2dldFByb3BlcnRpZXMuaHRtbCBb
IFRpbWVvdXQgUGFzcyBDcmFzaCBdCkBAIC0yMzc5LDcgKzIzNjYsNiBAQCB3ZWJraXQub3JnL2Iv
MTM2Njc0IG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctd2l0aC1wYWRkaW5nLmh0bWwg
WyBUaW1lb3V0CiAKIHdlYmtpdC5vcmcvYi8xMzc2OTggbWVkaWEvdmlkZW8tY29udHJvbHMtZHJh
Zy5odG1sIFsgVGltZW91dCBdCiAKLXdlYmtpdC5vcmcvYi8xMzcxMzEgaW5zcGVjdG9yL2RlYnVn
Z2VyIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTQ3NTE4IGluc3BlY3Rvci9kb20gWyBTa2lwIF0K
IHdlYmtpdC5vcmcvYi8xNDc1MTggaW5zcGVjdG9yL21vZGVsIFsgU2tpcCBdCiB3ZWJraXQub3Jn
L2IvMTQ3NTE4IGluc3BlY3Rvci90aW1lbGluZSBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379874</attachid>
            <date>2019-09-30 21:57:59 -0700</date>
            <delta_ts>2019-10-04 14:51:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137131-20190930215758.patch</filename>
            <type>text/plain</type>
            <size>25911</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
N2UzOGNlYzEzMTY1MmQyOTZkNTczY2Q2MTIzNTJlZmY0NjIyMjAyLi4yMDYxZmQ3YmI0MjE1Yzk0
YjQ0ODNiNjdmOWVlNWIwNjQ1YzMzMTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOS0wOS0yNCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB0ZXN0cyB1bmRlciBMYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIgYXJlIGZsYWt5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzcxMzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE4NDYx
MzM1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENo
YW5nZWQgYnJlYWtwb2ludCByZXNvbHV0aW9uIGxvZ2ljIHRvIG1ha2UgaXQgY29uc2lzdGVudCBh
Y3Jvc3MgcGxhdGZvcm1zIGFuZAorICAgICAgICBiZXR0ZXIgaGFuZGxlIHRoZSBjYXNlIHdoZW4g
dGhlcmUgYXJlIHNldmVyYWwgRGVidWdnZXJQYXVzZVBvc2l0aW9ucyBhdCB0aGUgc2FtZQorICAg
ICAgICBvZmZzZXQgKGJ1dCB3aXRoIGRpZmZlcmVudCB0eXBlcykuCisKKyAgICAgICAgKiBieXRl
Y29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6Omhhc09wRGVidWdG
b3JMaW5lQW5kQ29sdW1uKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAg
ICAgKiBkZWJ1Z2dlci9CcmVha3BvaW50Lmg6IFJlbW92ZWQgQnJlYWtwb2ludDo6dW5zcGVjaWZp
ZWRDb2x1bW4sIE9wdGlvbmFsPHVuc2lnbmVkPgorICAgICAgICBpcyB1c2VkIGluc3RlYWQgd2hl
cmUgbmVlZGVkLiBJdCBhbGxvd3MgdG8gYXZvaWQgY29kZSB0aGF0IHJlbGllcyBvbiAoaW50KVVJ
TlRfTUFYID0+IC0xCisgICAgICAgIGNvbnZlcnNpb24uCisKKyAgICAgICAgKiBkZWJ1Z2dlci9E
ZWJ1Z2dlci5jcHA6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyOjpyZXNvbHZlQnJlYWtwb2ludCk6
IGNsYXJpZmllZCB0aGF0IGluIHRoZSBtYXAgY29sdW1ucyBhcmUgMC1iYXNlZC4KKyAgICAgICAg
KiBkZWJ1Z2dlci9EZWJ1Z2dlclBhcnNlRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkRlYnVnZ2Vy
UGF1c2VQb3NpdGlvbnM6OmJyZWFrcG9pbnRMb2NhdGlvbkZvckxpbmVDb2x1bW4pOiByZXBsYWNl
ZCBjdXN0b20KKyAgICAgICAgYmluYXJ5IHNlYXJjaCB3aXRoIHN0ZDo6bG93ZXJfYm91bmQuIElm
IHRoZXJlIGFyZSBzZXZlcmFsIHBhdXNlIHBvc2l0aW9ucyBhdCB0aGUKKyAgICAgICAgc2FtZSBv
ZmZzZXQgdGhleSB3aWxsIGJlIHNvcnRlZCBieSB0aGUgdHlwZSBhbmQgdGhlIGFsZ29yaXRobSBp
cyBndWFyYW50ZWVkIHRvIHNlZQorICAgICAgICBsZWZ0bW9zdCBvbmUgZmlyc3QuCisKKyAgICAg
ICAgKEpTQzo6RGVidWdnZXJQYXVzZVBvc2l0aW9uczo6c29ydCk6IHVzZSB0eXBlIGFzIHNlY29u
ZGFyeSBvcmRlcmluZyBjb21wb25lbnQuCisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJQYXJz
ZURhdGEuaDogUmVhcnJhbmdlZCB0eXBlIGNvbnN0YW50cyBzbyB0aGF0IEVudGVyIDwgUGF1c2Ug
PCBMZWF2ZQorICAgICAgICB0aGlzIGNoYW5nZSBhbG9uZyB3aXRoIHNvcnRpbmcgYnkgdHlwZSBz
aG91bGQgZ3VhcmFudGVlIHRoYXQgaW4gY2FzZSBvZiBzZXZlcmFsIHBhdXNlCisgICAgICAgIHBv
c2l0aW9ucyBhdCB0aGUgc2FtZSBsaW5lIEVudGVyIGdvZXMgYmVmb3JlIFBhdXNlIGJlZm9yZSBM
ZWF2ZSBhbmQgdGhlIGJyZWFrcG9pbnQKKyAgICAgICAgcmVzb2x1dGlvbiB3aWxsIHlpZWxkIHJl
c3VsdCBzaW1pbGFyIHRvIHRoYXQgd2hlbiBlYWNoIHBhdXNlIGxvY2F0aW9ucyBoYXMgZGlmZmVy
ZW50CisgICAgICAgIHBvc2l0aW9uLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0Rl
YnVnZ2VyLmpzb246IGNsYXJpZmllZCB0aGF0IHBvc2l0aW9ucyBhcmUgMC1iYXNlZC4KKyAgICAg
ICAgKiBwYXJzZXIvUGFyc2VyVG9rZW5zLmg6CisgICAgICAgIChKU0M6OkpTVGV4dFBvc2l0aW9u
Ojpjb2x1bW4gY29uc3QpOiBhZGRlZCBoZWxwZXIgbWV0aG9kIGZvciBjb21wdXRpbmcgY29sdW1u
LgorCiAyMDE5LTA5LTI2ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0pTQ10gREZHIHJlY3Vyc2l2ZS10YWlsLWNhbGwgb3B0aW1pemF0aW9uIHNob3VsZCBu
b3QgZW1pdCBqdW1wIHRvIGNhbGwtZnJhbWUgd2l0aCB2YXJhcmdzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Vj
MzllNDFjY2VkMjk3MGYxNjI5ZDNmMTA4ODhhZmUyOWNlMzJkOS4uNGJmZTc3Mzk0MTgxMzE1MDUx
ZGY3MDg4ZWQ4ZjdkOWRmYjA3MGE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE5
LTA5LTIwICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IHRlc3RzIHVuZGVyIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ciBhcmUgZmxha3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzNzEzMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTg0NjEzMzU+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGRlYnVnZ2VyIHRlc3Rz
IG9uIEdUSy4gQWxsIHRlc3RzIHRoYXQgcGF1c2Ugb24gYnJlYWtwb2ludCBkaWRuJ3Qgd29yayBi
ZWNhdXNlCisgICAgICAgIGluIGxheW91dCB0ZXN0cyBJbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsIHdhcyB1c2luZyBUaW1lciB0byBkaXNwYXRjaCBjb21tYW5kcworICAgICAgICBzZW50IGZy
b20gdGhlIGxvY2FsIGZyb250LWVuZCBwYWdlIHRvIHRoZSBpbnNwZWN0ZWQgb25lLiBXaGVuIHBh
dXNlZCBpbnNpZGUgYSBzY3JpcHQKKyAgICAgICAgdHJpZ2dlcmVkIGJ5IHRoZSBmcm9udC1lbmQg
bmVzdGVkIHRpbWVyIGV2ZW50IHdvdWxkIGJlIHNjaGVkdWxlZCBidXQgbmV2ZXIgZmlyZWQKKyAg
ICAgICAgYmVjYXVzZSBpbiBnbGliIGltcGxlbWVudGF0aW9uIG9mIFJ1bkxvb3A6OlRpbWVyQmFz
ZSB1c2VzIGV2ZW50IHNvdXJjZSB3aGljaCBkb2Vzbid0CisgICAgICAgIGFsbG93IHJlY3Vyc2lv
biAoZ19zb3VyY2Vfc2V0X2Nhbl9yZWN1cnNlIGlzIG5vdCBjYWxsZWQgb24gdGhlIHNvdXJjZSks
IHNvIGRpc3BhdGNoaW5nCisgICAgICAgIERlYnVnZ2VyLnJlc3VtZSBjb21tYW5kIGRpZG4ndCB3
b3JrIHdoZW4gcGF1c2VkIGluc2lkZSBhbm90aGVyIGluc3BlY3RvciBjb21tYW5kIChlLmcuCisg
ICAgICAgIGV2YWwpLiBSdW5Mb29wIGl0c2VsZiB1c2VzIGV2ZW50IHNvdXJjZSB3aGljaCBkb2Vz
IGFsbG93IHJlY3Vyc2lvbi4gU28gaW5zdGVhZCBvZiB1c2luZworICAgICAgICBhIHRpbWVyIGZv
ciBhc3luY2hyb25vdXMgY29tbWFuZCBkaXNwYXRjaGluZyB3aXRoIGRlbGF5PTAgd2Ugbm93IHNj
aGVkdWxlIGEgdGFzayBpbgorICAgICAgICBSdW5Mb29wJ3MgcXVldWUuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrOjpkaXNwYXRjaCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrOjpyZXNldCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrOjpJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRh
c2s6OnNjaGVkdWxlT25lU2hvdCk6IGVuc3VyZXMgdGhhdCB0aGVyZSBpcyBvbmUgaW5zcGVjdG9y
CisgICAgICAgIGRpc3BhdGNoIHRhc2sgaW4gdGhlIHF1ZXVlLgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoVGFzazo6ZGlzcGF0Y2hPbmVNZXNzYWdlKTogdGhpcyBp
cyBtb3N0bHkgdGhlIHNhbWUgYmVoYXZpb3IKKyAgICAgICAgYXMgd2FzIHdpdGggdGltZXJGaXJl
ZCwgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZGlzcGF0Y2ggYWxsIGFjY3VtdWxhdGVkIG1lc3NhZ2Vz
IGZyb20gdGhlIHF1ZXVlCisgICAgICAgIGluIG9uZSBiYXRjaCBidXQgZm9yIG5vdyBJJ2QgbGlr
ZSB0byBrZWVwIGl0IG9uZSBwZXIgaXRlcmF0aW9uLgorCiAyMDE5LTA5LTI3ICBaYWxhbiBCdWp0
YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBSZXBsYWNlIExpbmU6
OlJ1bidzIGxvZ2ljYWxSZWN0L3RleHRDb250ZXh0IHdpdGggRGlzcGxheTo6UnVuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IGZhZDk1ZTI5YWZj
YzA4OTQ5YWIyMTM4ZWJlNTNjZDFhMTQ2MzA4Y2YuLjlkNDhlMGJiYTJjYWZmZTAyODE5ZjAyNTU3
ZGZkMjk2OGZjNWNhMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suY3BwCkBAIC0xODY2LDcgKzE4NjYsNyBAQCB2b2lkIENvZGVCbG9jazo6ZXhwcmVzc2lv
blJhbmdlRm9yQnl0ZWNvZGVPZmZzZXQodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQsIGludCYgZAog
ICAgIGxpbmUgKz0gb3duZXJFeGVjdXRhYmxlKCktPmZpcnN0TGluZSgpOwogfQogCi1ib29sIENv
ZGVCbG9jazo6aGFzT3BEZWJ1Z0ZvckxpbmVBbmRDb2x1bW4odW5zaWduZWQgbGluZSwgdW5zaWdu
ZWQgY29sdW1uKQorYm9vbCBDb2RlQmxvY2s6Omhhc09wRGVidWdGb3JMaW5lQW5kQ29sdW1uKHVu
c2lnbmVkIGxpbmUsIE9wdGlvbmFsPHVuc2lnbmVkPiBjb2x1bW4pCiB7CiAgICAgY29uc3QgSW5z
dHJ1Y3Rpb25TdHJlYW0mIGluc3RydWN0aW9uU3RyZWFtID0gaW5zdHJ1Y3Rpb25zKCk7CiAgICAg
Zm9yIChjb25zdCBhdXRvJiBpdCA6IGluc3RydWN0aW9uU3RyZWFtKSB7CkBAIC0xODc1LDcgKzE4
NzUsNyBAQCBib29sIENvZGVCbG9jazo6aGFzT3BEZWJ1Z0ZvckxpbmVBbmRDb2x1bW4odW5zaWdu
ZWQgbGluZSwgdW5zaWduZWQgY29sdW1uKQogICAgICAgICAgICAgdW5zaWduZWQgb3BEZWJ1Z0xp
bmU7CiAgICAgICAgICAgICB1bnNpZ25lZCBvcERlYnVnQ29sdW1uOwogICAgICAgICAgICAgZXhw
cmVzc2lvblJhbmdlRm9yQnl0ZWNvZGVPZmZzZXQoaXQub2Zmc2V0KCksIHVudXNlZCwgdW51c2Vk
LCB1bnVzZWQsIG9wRGVidWdMaW5lLCBvcERlYnVnQ29sdW1uKTsKLSAgICAgICAgICAgIGlmIChs
aW5lID09IG9wRGVidWdMaW5lICYmIChjb2x1bW4gPT0gQnJlYWtwb2ludDo6dW5zcGVjaWZpZWRD
b2x1bW4gfHwgY29sdW1uID09IG9wRGVidWdDb2x1bW4pKQorICAgICAgICAgICAgaWYgKGxpbmUg
PT0gb3BEZWJ1Z0xpbmUgJiYgKCFjb2x1bW4gfHwgY29sdW1uID09IG9wRGVidWdDb2x1bW4pKQog
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCmluZGV4IGIxYTgyYjMzNjdhZWMxYWI2
MWY1ZThmYjhmOTExMmEzZjM3N2QyOTcuLjg4Y2ZhZTRlZTkyMTg5ZmEwZTA5YmNlODNjNDBlMTQ1
YWRmNWNmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgK
QEAgLTc4Nyw3ICs3ODcsNyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgZnJhbWVSZWdpc3RlckNv
dW50KCk7CiAgICAgaW50IHN0YWNrUG9pbnRlck9mZnNldCgpOwogCi0gICAgYm9vbCBoYXNPcERl
YnVnRm9yTGluZUFuZENvbHVtbih1bnNpZ25lZCBsaW5lLCB1bnNpZ25lZCBjb2x1bW4pOworICAg
IGJvb2wgaGFzT3BEZWJ1Z0ZvckxpbmVBbmRDb2x1bW4odW5zaWduZWQgbGluZSwgT3B0aW9uYWw8
dW5zaWduZWQ+IGNvbHVtbik7CiAKICAgICBib29sIGhhc0RlYnVnZ2VyUmVxdWVzdHMoKSBjb25z
dCB7IHJldHVybiBtX2RlYnVnZ2VyUmVxdWVzdHM7IH0KICAgICB2b2lkKiBkZWJ1Z2dlclJlcXVl
c3RzQWRkcmVzcygpIHsgcmV0dXJuICZtX2RlYnVnZ2VyUmVxdWVzdHM7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9CcmVha3BvaW50LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvQnJlYWtwb2ludC5oCmluZGV4IGJiOGYwZGRiYjlkNGY3MDYz
YTY4YTE0Nzg3NTFlMzkxNDMxOTY3MDQuLjE0MThlMTU5OGIzMGExYjA1ODE0YWI4ZmZhZDE1YTIz
MzRjYmQyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9CcmVh
a3BvaW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0JyZWFrcG9pbnQu
aApAQCAtNTcsOCArNTcsNiBAQCBzdHJ1Y3QgQnJlYWtwb2ludCA6IHB1YmxpYyBEb3VibHlMaW5r
ZWRMaXN0Tm9kZTxCcmVha3BvaW50PiB7CiAgICAgdW5zaWduZWQgaGl0Q291bnQgeyAwIH07CiAg
ICAgYm9vbCByZXNvbHZlZCB7IGZhbHNlIH07CiAKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIHVuc3BlY2lmaWVkQ29sdW1uID0gVUlOVF9NQVg7Ci0KIHByaXZhdGU6CiAgICAgQnJlYWtw
b2ludCogbV9wcmV2OwogICAgIEJyZWFrcG9pbnQqIG1fbmV4dDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCmluZGV4IGIwY2ZkZjg4YmQ0MTM3YzQ0ODhhMjMw
MTMxOTAzYTQyM2M2OTdkYjcuLmUzY2M5ZTM5OGE2ZTViOGUxNGRhY2E0ZGE3ZDAzMDA2YzE2MzM3
NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcApAQCAt
MjY4LDkgKzI2OCw2IEBAIHZvaWQgRGVidWdnZXI6OnRvZ2dsZUJyZWFrcG9pbnQoQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIEJyZWFrcG9pbnQmIGJyZWFrcG9pbnQsIEJyCiAgICAgaWYgKGJyZWFrcG9p
bnQuc291cmNlSUQgIT0gc291cmNlSUQpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVuc2lnbmVk
IGxpbmUgPSBicmVha3BvaW50LmxpbmU7Ci0gICAgdW5zaWduZWQgY29sdW1uID0gYnJlYWtwb2lu
dC5jb2x1bW47Ci0KICAgICB1bnNpZ25lZCBzdGFydExpbmUgPSBleGVjdXRhYmxlLT5maXJzdExp
bmUoKTsKICAgICB1bnNpZ25lZCBzdGFydENvbHVtbiA9IGV4ZWN1dGFibGUtPnN0YXJ0Q29sdW1u
KCk7CiAgICAgdW5zaWduZWQgZW5kTGluZSA9IGV4ZWN1dGFibGUtPmxhc3RMaW5lKCk7CkBAIC0y
NzgsMTIgKzI3NSwxNCBAQCB2b2lkIERlYnVnZ2VyOjp0b2dnbGVCcmVha3BvaW50KENvZGVCbG9j
ayogY29kZUJsb2NrLCBCcmVha3BvaW50JiBicmVha3BvaW50LCBCcgogCiAgICAgLy8gSW5zcGVj
dG9yIGJyZWFrcG9pbnQgbGluZSBhbmQgY29sdW1uIHZhbHVlcyBhcmUgemVyby1iYXNlZCBidXQg
dGhlIGV4ZWN1dGFibGUKICAgICAvLyBhbmQgQ29kZUJsb2NrIGxpbmUgYW5kIGNvbHVtbiB2YWx1
ZXMgYXJlIG9uZS1iYXNlZC4KLSAgICBsaW5lICs9IDE7Ci0gICAgY29sdW1uID0gY29sdW1uID8g
Y29sdW1uICsgMSA6IEJyZWFrcG9pbnQ6OnVuc3BlY2lmaWVkQ29sdW1uOworICAgIHVuc2lnbmVk
IGxpbmUgPSBicmVha3BvaW50LmxpbmUgKyAxOworICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBjb2x1
bW47CisgICAgaWYgKGJyZWFrcG9pbnQuY29sdW1uKQorICAgICAgICBjb2x1bW4gPSBicmVha3Bv
aW50LmNvbHVtbiArIDE7CiAKICAgICBpZiAobGluZSA8IHN0YXJ0TGluZSB8fCBsaW5lID4gZW5k
TGluZSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChjb2x1bW4gIT0gQnJlYWtwb2ludDo6dW5z
cGVjaWZpZWRDb2x1bW4pIHsKKyAgICBpZiAoY29sdW1uKSB7CiAgICAgICAgIGlmIChsaW5lID09
IHN0YXJ0TGluZSAmJiBjb2x1bW4gPCBzdGFydENvbHVtbikKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgaWYgKGxpbmUgPT0gZW5kTGluZSAmJiBjb2x1bW4gPiBlbmRDb2x1bW4pCkBAIC0z
NTksMzUgKzM1OCwzNSBAQCB2b2lkIERlYnVnZ2VyOjpyZXNvbHZlQnJlYWtwb2ludChCcmVha3Bv
aW50JiBicmVha3BvaW50LCBTb3VyY2VQcm92aWRlciogc291cmNlUAogCiAgICAgLy8gRklYTUU6
IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNjI3NzE+IFdlYiBJbnNwZWN0b3I6IEFkb3B0IFRleHRQ
b3NpdGlvbiBpbiBJbnNwZWN0b3IgdG8gYXZvaWQgb25lQmFzZWRJbnQvemVyb0Jhc2VkSW50IGFt
YmlndWl0eQogICAgIC8vIEluc3BlY3RvciBicmVha3BvaW50IGxpbmUgYW5kIGNvbHVtbiB2YWx1
ZXMgYXJlIHplcm8tYmFzZWQgYnV0IHRoZSBleGVjdXRhYmxlCi0gICAgLy8gYW5kIENvZGVCbG9j
ayBsaW5lIGFuZCBjb2x1bW4gdmFsdWVzIGFyZSBvbmUtYmFzZWQuCi0gICAgdW5zaWduZWQgbGlu
ZSA9IGJyZWFrcG9pbnQubGluZSArIDE7Ci0gICAgdW5zaWduZWQgY29sdW1uID0gYnJlYWtwb2lu
dC5jb2x1bW4gPyBicmVha3BvaW50LmNvbHVtbiA6IEJyZWFrcG9pbnQ6OnVuc3BlY2lmaWVkQ29s
dW1uOworICAgIC8vIGFuZCBDb2RlQmxvY2sgbGluZSB2YWx1ZXMgYXJlIG9uZS1iYXNlZCB3aGls
ZSBjb2x1bW4gaXMgemVyby1iYXNlZC4KKyAgICBpbnQgbGluZSA9IGJyZWFrcG9pbnQubGluZSAr
IDE7CisgICAgaW50IGNvbHVtbiA9IGJyZWFrcG9pbnQuY29sdW1uOwogCiAgICAgLy8gQWNjb3Vu
dCBmb3IgYSA8c2NyaXB0PidzIHN0YXJ0IHBvc2l0aW9uIG9uIHRoZSBmaXJzdCBsaW5lIG9ubHku
Ci0gICAgdW5zaWduZWQgcHJvdmlkZXJTdGFydExpbmUgPSBzb3VyY2VQcm92aWRlci0+c3RhcnRQ
b3NpdGlvbigpLm1fbGluZS5vbmVCYXNlZEludCgpOyAvLyBPbmUgYmFzZWQgdG8gbWF0Y2ggdGhl
IGFscmVhZHkgYWRqdXN0ZWQgbGluZS4KLSAgICB1bnNpZ25lZCBwcm92aWRlclN0YXJ0Q29sdW1u
ID0gc291cmNlUHJvdmlkZXItPnN0YXJ0UG9zaXRpb24oKS5tX2NvbHVtbi56ZXJvQmFzZWRJbnQo
KTsgLy8gWmVybyBiYXNlZCBzbyBjb2x1bW4gemVybyBpcyB6ZXJvLgotICAgIGlmIChsaW5lID09
IHByb3ZpZGVyU3RhcnRMaW5lICYmIGNvbHVtbiAhPSBCcmVha3BvaW50Ojp1bnNwZWNpZmllZENv
bHVtbikgeworICAgIGludCBwcm92aWRlclN0YXJ0TGluZSA9IHNvdXJjZVByb3ZpZGVyLT5zdGFy
dFBvc2l0aW9uKCkubV9saW5lLm9uZUJhc2VkSW50KCk7IC8vIE9uZSBiYXNlZCB0byBtYXRjaCB0
aGUgYWxyZWFkeSBhZGp1c3RlZCBsaW5lLgorICAgIGludCBwcm92aWRlclN0YXJ0Q29sdW1uID0g
c291cmNlUHJvdmlkZXItPnN0YXJ0UG9zaXRpb24oKS5tX2NvbHVtbi56ZXJvQmFzZWRJbnQoKTsg
Ly8gWmVybyBiYXNlZCBzbyBjb2x1bW4gemVybyBpcyB6ZXJvLgorICAgIGlmIChsaW5lID09IHBy
b3ZpZGVyU3RhcnRMaW5lICYmIGJyZWFrcG9pbnQuY29sdW1uKSB7CiAgICAgICAgIEFTU0VSVChw
cm92aWRlclN0YXJ0Q29sdW1uIDw9IGNvbHVtbik7CiAgICAgICAgIGlmIChwcm92aWRlclN0YXJ0
Q29sdW1uKQogICAgICAgICAgICAgY29sdW1uIC09IHByb3ZpZGVyU3RhcnRDb2x1bW47CiAgICAg
fQogCiAgICAgRGVidWdnZXJQYXJzZURhdGEmIHBhcnNlRGF0YSA9IGRlYnVnZ2VyUGFyc2VEYXRh
KGJyZWFrcG9pbnQuc291cmNlSUQsIHNvdXJjZVByb3ZpZGVyKTsKLSAgICBPcHRpb25hbDxKU1Rl
eHRQb3NpdGlvbj4gcmVzb2x2ZWRQb3NpdGlvbiA9IHBhcnNlRGF0YS5wYXVzZVBvc2l0aW9ucy5i
cmVha3BvaW50TG9jYXRpb25Gb3JMaW5lQ29sdW1uKChpbnQpbGluZSwgKGludCljb2x1bW4pOwor
ICAgIE9wdGlvbmFsPEpTVGV4dFBvc2l0aW9uPiByZXNvbHZlZFBvc2l0aW9uID0gcGFyc2VEYXRh
LnBhdXNlUG9zaXRpb25zLmJyZWFrcG9pbnRMb2NhdGlvbkZvckxpbmVDb2x1bW4obGluZSwgY29s
dW1uKTsKICAgICBpZiAoIXJlc29sdmVkUG9zaXRpb24pCiAgICAgICAgIHJldHVybjsKIAotICAg
IHVuc2lnbmVkIHJlc29sdmVkTGluZSA9IHJlc29sdmVkUG9zaXRpb24tPmxpbmU7Ci0gICAgdW5z
aWduZWQgcmVzb2x2ZWRDb2x1bW4gPSByZXNvbHZlZFBvc2l0aW9uLT5vZmZzZXQgLSByZXNvbHZl
ZFBvc2l0aW9uLT5saW5lU3RhcnRPZmZzZXQgKyAxOworICAgIGludCByZXNvbHZlZExpbmUgPSBy
ZXNvbHZlZFBvc2l0aW9uLT5saW5lOworICAgIGludCByZXNvbHZlZENvbHVtbiA9IHJlc29sdmVk
UG9zaXRpb24tPmNvbHVtbigpOwogCiAgICAgLy8gUmUtYWNjb3VudCBmb3IgYSA8c2NyaXB0Pidz
IHN0YXJ0IHBvc2l0aW9uIG9uIHRoZSBmaXJzdCBsaW5lIG9ubHkuCi0gICAgaWYgKHJlc29sdmVk
TGluZSA9PSBwcm92aWRlclN0YXJ0TGluZSAmJiBjb2x1bW4gIT0gQnJlYWtwb2ludDo6dW5zcGVj
aWZpZWRDb2x1bW4pIHsKKyAgICBpZiAocmVzb2x2ZWRMaW5lID09IHByb3ZpZGVyU3RhcnRMaW5l
ICYmIGJyZWFrcG9pbnQuY29sdW1uKSB7CiAgICAgICAgIGlmIChwcm92aWRlclN0YXJ0Q29sdW1u
KQogICAgICAgICAgICAgcmVzb2x2ZWRDb2x1bW4gKz0gcHJvdmlkZXJTdGFydENvbHVtbjsKICAg
ICB9CiAKICAgICBicmVha3BvaW50LmxpbmUgPSByZXNvbHZlZExpbmUgLSAxOwotICAgIGJyZWFr
cG9pbnQuY29sdW1uID0gcmVzb2x2ZWRDb2x1bW4gLSAxOworICAgIGJyZWFrcG9pbnQuY29sdW1u
ID0gcmVzb2x2ZWRDb2x1bW47CiAgICAgYnJlYWtwb2ludC5yZXNvbHZlZCA9IHRydWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclBhcnNl
RGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJzZURh
dGEuY3BwCmluZGV4IDljMzM1YTRiYjEwYWZmODVhNTdmYjQ1YWE0YTA1ZjQ4NGJjNTI1OWEuLjdm
Y2I1ODUwMDAzNjYwOTI0YjRiNzk5NGZjYTdmMTA2ZjA4MGI2ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclBhcnNlRGF0YS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyUGFyc2VEYXRhLmNwcApAQCAtMzMs
NDMgKzMzLDIzIEBAIG5hbWVzcGFjZSBKU0MgewogCiBPcHRpb25hbDxKU1RleHRQb3NpdGlvbj4g
RGVidWdnZXJQYXVzZVBvc2l0aW9uczo6YnJlYWtwb2ludExvY2F0aW9uRm9yTGluZUNvbHVtbihp
bnQgbGluZSwgaW50IGNvbHVtbikKIHsKLSAgICB1bnNpZ25lZCBzdGFydCA9IDA7Ci0gICAgdW5z
aWduZWQgZW5kID0gbV9wb3NpdGlvbnMuc2l6ZSgpOwotICAgIHdoaWxlIChzdGFydCAhPSBlbmQp
IHsKLSAgICAgICAgdW5zaWduZWQgbWlkZGxlID0gc3RhcnQgKyAoKGVuZCAtIHN0YXJ0KSAvIDIp
OwotICAgICAgICBEZWJ1Z2dlclBhdXNlUG9zaXRpb24mIHBhdXNlUG9zaXRpb24gPSBtX3Bvc2l0
aW9uc1ttaWRkbGVdOwotICAgICAgICBpbnQgcGF1c2VMaW5lID0gcGF1c2VQb3NpdGlvbi5wb3Np
dGlvbi5saW5lOwotICAgICAgICBpbnQgcGF1c2VDb2x1bW4gPSBwYXVzZVBvc2l0aW9uLnBvc2l0
aW9uLm9mZnNldCAtIHBhdXNlUG9zaXRpb24ucG9zaXRpb24ubGluZVN0YXJ0T2Zmc2V0OwotCi0g
ICAgICAgIGlmIChsaW5lIDwgcGF1c2VMaW5lKSB7Ci0gICAgICAgICAgICBlbmQgPSBtaWRkbGU7
Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAobGluZSA+IHBh
dXNlTGluZSkgewotICAgICAgICAgICAgc3RhcnQgPSBtaWRkbGUgKyAxOwotICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoY29sdW1uID09IHBhdXNlQ29sdW1u
KSB7Ci0gICAgICAgICAgICAvLyBGb3VuZCBhbiBleGFjdCBwb3NpdGlvbiBtYXRjaC4gUm9sbCBm
b3J3YXJkIGlmIHRoaXMgd2FzIGEgZnVuY3Rpb24gRW50cnkuCi0gICAgICAgICAgICAvLyBXZSBh
cmUgZ3VhcmVudGVlZCB0byBoYXZlIGEgTGVhdmUgZm9yIGFuIEVudHJ5IHNvIHdlIGRvbid0IG5l
ZWQgdG8gYm91bmRzIGNoZWNrLgotICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAg
ICAgICAgICBpZiAocGF1c2VQb3NpdGlvbi50eXBlICE9IERlYnVnZ2VyUGF1c2VQb3NpdGlvblR5
cGU6OkVudGVyKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gT3B0aW9uYWw8SlNUZXh0UG9z
aXRpb24+KHBhdXNlUG9zaXRpb24ucG9zaXRpb24pOwotICAgICAgICAgICAgICAgIHBhdXNlUG9z
aXRpb24gPSBtX3Bvc2l0aW9uc1ttaWRkbGUrK107Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
KyAgICBEZWJ1Z2dlclBhdXNlUG9zaXRpb24gcG9zaXRpb24gPSB7IERlYnVnZ2VyUGF1c2VQb3Np
dGlvblR5cGU6OkludmFsaWQsIEpTVGV4dFBvc2l0aW9uKGxpbmUsIGNvbHVtbiwgMCkgfTsKKyAg
ICBhdXRvIGl0ID0gc3RkOjpsb3dlcl9ib3VuZChtX3Bvc2l0aW9ucy5iZWdpbigpLCBtX3Bvc2l0
aW9ucy5lbmQoKSwgcG9zaXRpb24sIFtdIChjb25zdCBEZWJ1Z2dlclBhdXNlUG9zaXRpb24mIGEs
IGNvbnN0IERlYnVnZ2VyUGF1c2VQb3NpdGlvbiYgYikgeworICAgICAgICBpZiAoYS5wb3NpdGlv
bi5saW5lID09IGIucG9zaXRpb24ubGluZSkKKyAgICAgICAgICAgIHJldHVybiBhLnBvc2l0aW9u
LmNvbHVtbigpIDwgYi5wb3NpdGlvbi5jb2x1bW4oKTsKKyAgICAgICAgcmV0dXJuIGEucG9zaXRp
b24ubGluZSA8IGIucG9zaXRpb24ubGluZTsKKyAgICB9KTsKKyAgICBpZiAoaXQgPT0gbV9wb3Np
dGlvbnMuZW5kKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICAgICAgaWYg
KGNvbHVtbiA8IHBhdXNlQ29sdW1uKQotICAgICAgICAgICAgZW5kID0gbWlkZGxlOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBzdGFydCA9IG1pZGRsZSArIDE7CisgICAgaWYgKGxpbmUgPT0g
aXQtPnBvc2l0aW9uLmxpbmUgJiYgY29sdW1uID09IGl0LT5wb3NpdGlvbi5jb2x1bW4oKSkgewor
ICAgICAgICAvLyBGb3VuZCBhbiBleGFjdCBwb3NpdGlvbiBtYXRjaC4gUm9sbCBmb3J3YXJkIGlm
IHRoaXMgd2FzIGEgZnVuY3Rpb24gRW50cnkuCisgICAgICAgIC8vIFdlIGFyZSBndWFyYW50ZWVk
IHRvIGhhdmUgYSBMZWF2ZSBmb3IgYW4gRW50cnkgc28gd2UgZG9uJ3QgbmVlZCB0byBib3VuZHMg
Y2hlY2suCisgICAgICAgIHdoaWxlIChpdC0+dHlwZSA9PSBEZWJ1Z2dlclBhdXNlUG9zaXRpb25U
eXBlOjpFbnRlcikKKyAgICAgICAgICAgICsraXQ7CisgICAgICAgIHJldHVybiBpdC0+cG9zaXRp
b247CiAgICAgfQogCi0gICAgLy8gUGFzdCB0aGUgZW5kLCBubyBwb3NzaWJsZSBwYXVzZSBsb2Nh
dGlvbnMuCi0gICAgaWYgKHN0YXJ0ID49IG1fcG9zaXRpb25zLnNpemUoKSkKLSAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKLQogICAgIC8vIElmIHRoZSBuZXh0IGxvY2F0aW9uIGlzIGEgZnVu
Y3Rpb24gRW50cnkgd2Ugd2lsbCBuZWVkIHRvIGRlY2lkZSBpZiB3ZSBzaG91bGQgZ28gaW50bwog
ICAgIC8vIHRoZSBmdW5jdGlvbiBvciBnbyBwYXN0IHRoZSBmdW5jdGlvbi4gV2UgZGVjaWRlIHRv
IGdvIGludG8gdGhlIGZ1bmN0aW9uIGlmIHRoZQogICAgIC8vIGlucHV0IGlzIG9uIHRoZSBzYW1l
IGxpbmUgYXMgdGhlIGZ1bmN0aW9uIGVudHJ5LiBGb3IgZXhhbXBsZToKQEAgLTg2LDcgKzY2LDcg
QEAgT3B0aW9uYWw8SlNUZXh0UG9zaXRpb24+IERlYnVnZ2VyUGF1c2VQb3NpdGlvbnM6OmJyZWFr
cG9pbnRMb2NhdGlvbkZvckxpbmVDb2x1bW4KICAgICAvLyBJZiB0aGUgaW5wdXQgd2FzIGxpbmUg
MywgZ28gaW50byB0aGUgZnVuY3Rpb24gdG8gcGF1c2Ugb24gbGluZSA0LgogCiAgICAgLy8gVmFs
aWQgcGF1c2UgbG9jYXRpb24uIFVzZSBpdC4KLSAgICBEZWJ1Z2dlclBhdXNlUG9zaXRpb24mIGZp
cnN0U2xpZGVQb3NpdGlvbiA9IG1fcG9zaXRpb25zW3N0YXJ0XTsKKyAgICBhdXRvJiBmaXJzdFNs
aWRlUG9zaXRpb24gPSAqaXQ7CiAgICAgaWYgKGZpcnN0U2xpZGVQb3NpdGlvbi50eXBlICE9IERl
YnVnZ2VyUGF1c2VQb3NpdGlvblR5cGU6OkVudGVyKQogICAgICAgICByZXR1cm4gT3B0aW9uYWw8
SlNUZXh0UG9zaXRpb24+KGZpcnN0U2xpZGVQb3NpdGlvbi5wb3NpdGlvbik7CiAKQEAgLTk0LDgg
Kzc0LDkgQEAgT3B0aW9uYWw8SlNUZXh0UG9zaXRpb24+IERlYnVnZ2VyUGF1c2VQb3NpdGlvbnM6
OmJyZWFrcG9pbnRMb2NhdGlvbkZvckxpbmVDb2x1bW4KICAgICAvLyBJZiBlbnRyeVN0YWNrU2l6
ZSBpcyA+IDAgd2UgYXJlIHNraXBwaW5nIGZ1bmN0aW9ucy4KICAgICBib29sIHNob3VsZEVudGVy
RnVuY3Rpb24gPSBmaXJzdFNsaWRlUG9zaXRpb24ucG9zaXRpb24ubGluZSA9PSBsaW5lOwogICAg
IGludCBlbnRyeVN0YWNrU2l6ZSA9IHNob3VsZEVudGVyRnVuY3Rpb24gPyAwIDogMTsKLSAgICBm
b3IgKHVuc2lnbmVkIGkgPSBzdGFydCArIDE7IGkgPCBtX3Bvc2l0aW9ucy5zaXplKCk7ICsraSkg
ewotICAgICAgICBEZWJ1Z2dlclBhdXNlUG9zaXRpb24mIHNsaWRlUG9zaXRpb24gPSBtX3Bvc2l0
aW9uc1tpXTsKKyAgICArK2l0OworICAgIGZvciAoOyBpdCAhPSBtX3Bvc2l0aW9ucy5lbmQoKTsg
KytpdCkgeworICAgICAgICBhdXRvJiBzbGlkZVBvc2l0aW9uID0gKml0OwogICAgICAgICBBU1NF
UlQoZW50cnlTdGFja1NpemUgPj0gMCk7CiAKICAgICAgICAgLy8gQWxyZWFkeSBza2lwcGluZyBm
dW5jdGlvbnMuCkBAIC0xMjQsNiArMTA1LDggQEAgT3B0aW9uYWw8SlNUZXh0UG9zaXRpb24+IERl
YnVnZ2VyUGF1c2VQb3NpdGlvbnM6OmJyZWFrcG9pbnRMb2NhdGlvbkZvckxpbmVDb2x1bW4KIHZv
aWQgRGVidWdnZXJQYXVzZVBvc2l0aW9uczo6c29ydCgpCiB7CiAgICAgc3RkOjpzb3J0KG1fcG9z
aXRpb25zLmJlZ2luKCksIG1fcG9zaXRpb25zLmVuZCgpLCBbXSAoY29uc3QgRGVidWdnZXJQYXVz
ZVBvc2l0aW9uJiBhLCBjb25zdCBEZWJ1Z2dlclBhdXNlUG9zaXRpb24mIGIpIHsKKyAgICAgICAg
aWYgKGEucG9zaXRpb24ub2Zmc2V0ID09IGIucG9zaXRpb24ub2Zmc2V0KQorICAgICAgICAgICAg
cmV0dXJuIGEudHlwZSA8IGIudHlwZTsKICAgICAgICAgcmV0dXJuIGEucG9zaXRpb24ub2Zmc2V0
IDwgYi5wb3NpdGlvbi5vZmZzZXQ7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQYXJzZURhdGEuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclBhcnNlRGF0YS5oCmluZGV4IDk2NTliMWQwMjgzZjNk
ZjljYzk1ZTdhOTNjM2M2OWU4ZDIzYTJkYzEuLjNiMDdjOTIzYzY4YTZmNzJhZGY4M2QzNmM3MjM2
Nzc1ZDU1YTBjNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlclBhcnNlRGF0YS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlclBhcnNlRGF0YS5oCkBAIC0zMyw5ICszMywxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIGNs
YXNzIFNvdXJjZVByb3ZpZGVyOwogY2xhc3MgVk07CiAKLWVudW0gY2xhc3MgRGVidWdnZXJQYXVz
ZVBvc2l0aW9uVHlwZSB7IEVudGVyLCBMZWF2ZSwgUGF1c2UgfTsKKy8vIFRoZSBvcmRlciBvZiB0
aGUgY29uc3RhbnRzIGhlcmUgbWF0dGVycyBhcyBpdCBpcyB1c2VkIGZvcgorLy8gc29ydGluZyBw
YXVzZSBwb3NpdGlvbnMgdGhhdCBoYXZlIHNhbWUgb2Zmc2V0LgorZW51bSBjbGFzcyBEZWJ1Z2dl
clBhdXNlUG9zaXRpb25UeXBlIHsgSW52YWxpZCwgRW50ZXIsIFBhdXNlLCBMZWF2ZSB9Owogc3Ry
dWN0IERlYnVnZ2VyUGF1c2VQb3NpdGlvbiB7Ci0gICAgRGVidWdnZXJQYXVzZVBvc2l0aW9uVHlw
ZSB0eXBlOworICAgIERlYnVnZ2VyUGF1c2VQb3NpdGlvblR5cGUgdHlwZSB7IERlYnVnZ2VyUGF1
c2VQb3NpdGlvblR5cGU6OkludmFsaWQgfTsKICAgICBKU1RleHRQb3NpdGlvbiBwb3NpdGlvbjsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9j
b2wvRGVidWdnZXIuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9j
b2wvRGVidWdnZXIuanNvbgppbmRleCAxNWFiZDM2MjY0MGJhN2RhYzZmNjY4MjJmYWUyMTJhNWFh
OTk4NGZlLi4xNmQ0MTEwZmQyZDMzNTA4NDJjOTZjYWZjODY0YWE2YjZlMzg3OTUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpz
b24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9EZWJ1Z2dl
ci5qc29uCkBAIC0yOCw4ICsyOCw4IEBACiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTG9j
YXRpb24gaW4gdGhlIHNvdXJjZSBjb2RlLiIsCiAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsK
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNjcmlwdElkIiwgIiRyZWYiOiAiU2NyaXB0SWQi
LCAiZGVzY3JpcHRpb24iOiAiU2NyaXB0IGlkZW50aWZpZXIgYXMgcmVwb3J0ZWQgaW4gdGhlIDxj
b2RlPkRlYnVnZ2VyLnNjcmlwdFBhcnNlZDwvY29kZT4uIiB9LAotICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAibGluZU51bWJlciIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAi
TGluZSBudW1iZXIgaW4gdGhlIHNjcmlwdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJjb2x1bW5OdW1iZXIiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRl
c2NyaXB0aW9uIjogIkNvbHVtbiBudW1iZXIgaW4gdGhlIHNjcmlwdC4iIH0KKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImxpbmVOdW1iZXIiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0
aW9uIjogIkxpbmUgbnVtYmVyIGluIHRoZSBzY3JpcHQgKDAtYmFzZWQpLiIgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImNvbHVtbk51bWJlciIsICJ0eXBlIjogImludGVnZXIiLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29sdW1uIG51bWJlciBpbiB0aGUgc2NyaXB0
ICgwLWJhc2VkKS4iIH0KICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAgICAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKaW5kZXggNzIwNjRiOTI4
NDgxNjZmNmRlMmIyM2Y4YTNmNThjOTgxYjc2NzllOS4uN2FkMGI5OTI3NGNiYjRlMzkwOWFjYzdi
Y2Q3ODgyMzdhNzdiYWNlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9QYXJzZXJUb2tlbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
clRva2Vucy5oCkBAIC0yMTcsNiArMjE3LDggQEAgc3RydWN0IEpTVGV4dFBvc2l0aW9uIHsKICAg
ICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOwogICAgIH0KIAorICAgIGludCBjb2x1bW4o
KSBjb25zdCB7IHJldHVybiBvZmZzZXQgLSBsaW5lU3RhcnRPZmZzZXQ7IH0KKwogICAgIGludCBs
aW5lIHsgMCB9OwogICAgIGludCBvZmZzZXQgeyAwIH07CiAgICAgaW50IGxpbmVTdGFydE9mZnNl
dCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAppbmRleCA3NzJlYzc0NjkxM2NjNjhkYjk5ZWFiYWM5
MTMxMTM5ZTliNzQ4ZmZhLi4xYjNjODg3NmNjNjg3MzFiNWQ2MjhkZDJkZTJiOWQ2MDRmMmE0NWZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwuY3BwCkBAIC04MSw0MyArODEsNTQgQEAgcHVibGljOgogICAgICAg
ICBBU1NFUlRfQVJHKG1lc3NhZ2UsICFtZXNzYWdlLmlzRW1wdHkoKSk7CiAKICAgICAgICAgbV9t
ZXNzYWdlcy5hcHBlbmQobWVzc2FnZSk7Ci0gICAgICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgp
KQotICAgICAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMF9zKTsKKyAgICAgICAgc2NoZWR1
bGVPbmVTaG90KCk7CiAgICAgfQogCiAgICAgdm9pZCByZXNldCgpCiAgICAgewogICAgICAgICBt
X21lc3NhZ2VzLmNsZWFyKCk7Ci0gICAgICAgIG1fdGltZXIuc3RvcCgpOwogICAgICAgICBtX2lu
c3BlY3RlZFBhZ2VDb250cm9sbGVyID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICB2b2lkIHRpbWVy
RmlyZWQoKQorcHJpdmF0ZToKKyAgICBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrKEluc3Bl
Y3RvckNvbnRyb2xsZXIqIGluc3BlY3RlZFBhZ2VDb250cm9sbGVyKQorICAgICAgICA6IG1faW5z
cGVjdGVkUGFnZUNvbnRyb2xsZXIoaW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIpCisgICAgeworICAg
ICAgICBBU1NFUlRfQVJHKGluc3BlY3RlZFBhZ2VDb250cm9sbGVyLCBpbnNwZWN0ZWRQYWdlQ29u
dHJvbGxlcik7CisgICAgfQorCisgICAgdm9pZCBzY2hlZHVsZU9uZVNob3QoKQogICAgIHsKLSAg
ICAgICAgQVNTRVJUKG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIpOworICAgICAgICBpZiAobV9o
YXNTY2hlZHVsZWRUYXNrKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2hhc1NjaGVk
dWxlZFRhc2sgPSB0cnVlOworCisgICAgICAgIC8vIFRoZSBmcm9udGVuZCBjYW4gYmUgY2xvc2Vk
IGFuZCBkZXN0cm95IHRoZSBvd25pbmcgZnJvbnRlbmQgY2xpZW50IGJlZm9yZSBvciBpbiB0aGUK
KyAgICAgICAgLy8gcHJvY2VzcyBvZiBkaXNwYXRjaGluZyB0aGUgdGFzaywgc28ga2VlcCBhIHBy
b3RlY3RvciByZWZlcmVuY2UgaGVyZS4KKyAgICAgICAgUnVuTG9vcDo6Y3VycmVudCgpLmRpc3Bh
dGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgICAg
IG1faGFzU2NoZWR1bGVkVGFzayA9IGZhbHNlOworICAgICAgICAgICAgZGlzcGF0Y2hPbmVNZXNz
YWdlKCk7CisgICAgICAgIH0pOworICAgIH0KIAotICAgICAgICAvLyBEaXNwYXRjaGluZyBhIG1l
c3NhZ2UgY2FuIHBvc3NpYmx5IGNsb3NlIHRoZSBmcm9udGVuZCBhbmQgZGVzdHJveQotICAgICAg
ICAvLyB0aGUgb3duaW5nIGZyb250ZW5kIGNsaWVudCwgc28ga2VlcCBhIHByb3RlY3RvciByZWZl
cmVuY2UgaGVyZS4KLSAgICAgICAgUmVmPEluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRhc2s+IHBy
b3RlY3RlZFRoaXMoKnRoaXMpOworICAgIHZvaWQgZGlzcGF0Y2hPbmVNZXNzYWdlKCkKKyAgICB7
CisgICAgICAgIC8vIE93bmluZyBmcm9udGVuZCBjbGllbnQgbWF5IGhhdmUgYmVlbiBkZXN0cm95
ZWQgYWZ0ZXIgdGhlIHRhc2sgd2FzIHNjaGVkdWxlZC4KKyAgICAgICAgaWYgKCFtX2luc3BlY3Rl
ZFBhZ2VDb250cm9sbGVyKSB7CisgICAgICAgICAgICBBU1NFUlQobV9tZXNzYWdlcy5pc0VtcHR5
KCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKICAgICAgICAgaWYgKCFtX21l
c3NhZ2VzLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIt
PmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChtX21lc3NhZ2VzLnRha2VGaXJzdCgpKTsKIAog
ICAgICAgICBpZiAoIW1fbWVzc2FnZXMuaXNFbXB0eSgpICYmIG1faW5zcGVjdGVkUGFnZUNvbnRy
b2xsZXIpCi0gICAgICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwotICAgIH0KLQot
cHJpdmF0ZToKLSAgICBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrKEluc3BlY3RvckNvbnRy
b2xsZXIqIGluc3BlY3RlZFBhZ2VDb250cm9sbGVyKQotICAgICAgICA6IG1faW5zcGVjdGVkUGFn
ZUNvbnRyb2xsZXIoaW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIpCi0gICAgICAgICwgbV90aW1lcigq
dGhpcywgJkluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRhc2s6OnRpbWVyRmlyZWQpCi0gICAgewot
ICAgICAgICBBU1NFUlRfQVJHKGluc3BlY3RlZFBhZ2VDb250cm9sbGVyLCBpbnNwZWN0ZWRQYWdl
Q29udHJvbGxlcik7CisgICAgICAgICAgICBzY2hlZHVsZU9uZVNob3QoKTsKICAgICB9CiAKICAg
ICBJbnNwZWN0b3JDb250cm9sbGVyKiBtX2luc3BlY3RlZFBhZ2VDb250cm9sbGVyIHsgbnVsbHB0
ciB9OwotICAgIFRpbWVyIG1fdGltZXI7CiAgICAgRGVxdWU8U3RyaW5nPiBtX21lc3NhZ2VzOwor
ICAgIGJvb2wgbV9oYXNTY2hlZHVsZWRUYXNrIHsgZmFsc2UgfTsKIH07CiAKIFN0cmluZyBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpTZXR0aW5nczo6Z2V0UHJvcGVydHkoY29uc3QgU3Ry
aW5nJikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA5ZWM3NDM4ODg5MDNhYzA2MDJkNGM2NmZlY2NjM2VkZGU4NTYyMjBkLi4x
NTNiNTI2ODA2NDExM2Q4MjE5Y2IzNGMzOWMyNGYzOTM5OTNhMjc1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTktMDktMjAgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdGVzdHMgdW5kZXIgTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyIGFyZSBmbGFreQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM3MTMxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xODQ2MTMzNT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGUg
aW5zcGVjdG9yL2RlYnVnZ2VyIHRlc3RzIG9uIEdUSy4KKworICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9icmVha3BvaW50cy9yZXNvbHZlZC1kdW1wLWFsbC1wYXVzZS1sb2NhdGlvbnMtZXhw
ZWN0ZWQudHh0OiBSZWJhc2VsaW5lZCB0aGUgdGVzdAorICAgICAgICBhZnRlciBjaGFuZ2VzIGlu
IHRoZSBicmVha3BvaW50IHJlc29sdXRpb24gY29kZS4gTm93IHRoZSBvdXRwdXQgb24gR1RLIGlz
IHRoZSBzYW1lIGFzIG9uIE1hYy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9uczoKKwogMjAxOS0wOS0yNyAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4K
IAogICAgICAgICBTdG9yYWdlIEFjY2VzcyBBUEk6IGRvY3VtZW50Lmhhc1N0b3JhZ2VBY2Nlc3Mo
KSBzaG91bGQgcmV0dXJuIGZhbHNlIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50cy9yZXNvbHZlZC1kdW1wLWFsbC1wYXVzZS1s
b2NhdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrcG9pbnRzL3Jlc29sdmVkLWR1bXAtYWxsLXBhdXNlLWxvY2F0aW9ucy1leHBlY3RlZC50eHQK
aW5kZXggNjFiYjNkYzBiNzI5YTFiZDZkNDcwZGY2YTdlYjY0ZDU5N2VjYTE0Yy4uY2MwOGQ5NDlj
ZWI0M2Y5NTlmZTI3OGI2YTZkZDEwNDkxOThlMDg0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnRzL3Jlc29sdmVkLWR1bXAtYWxsLXBhdXNlLWxv
Y2F0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2JyZWFrcG9pbnRzL3Jlc29sdmVkLWR1bXAtYWxsLXBhdXNlLWxvY2F0aW9ucy1leHBlY3RlZC50
eHQKQEAgLTIxNjYsNyArMjE2Niw3IEBAIFBBVVNFUyBBVDogODk6NwogICAgICA5MiAgICAgICAg
eAogCiBJTlNFUlRJTkcgQVQ6IDg5OjgKLVBBVVNFUyBBVDogOTQ6MAorUEFVU0VTIEFUOiA5ODow
CiAgICAgIDg2ICAgIAogICAgICA4NyAgICB4ID0+IHg7CiAgICAgIDg4ICAgICgpID0+IDE7CkBA
IC0yMTc1LDEwICsyMTc1LDE0IEBAIFBBVVNFUyBBVDogOTQ6MAogICAgICA5MSAgICAoeCkgPT4g
ewogICAgICA5MiAgICAgICAgeAogICAgICA5MyAgICB9OwotID0+ICA5NCAgICB8KCkgPT4gewor
ICAgICA5NCAgICAoKSA9PiB7CiAgICAgIDk1ICAgICAgICB2YXIgeDsKICAgICAgOTYgICAgfTsK
ICAgICAgOTcgICAgCisgPT4gIDk4ICAgIHx2YXIgZk9iaiA9IHsKKyAgICAgOTkgICAgICAgIGYx
OiBmdW5jdGlvbigpIHsKKyAgICAxMDAgICAgICAgICAgICB2YXIgeDsKKyAgICAxMDEgICAgICAg
IH0sCiAKIElOU0VSVElORyBBVDogOTA6MAogUEFVU0VTIEFUOiA5MDowCkBAIC0yMjQyLDYgKzIy
NDYsMTYgQEAgUEFVU0VTIEFUOiA5MzowCiAgICAgIDk1ICAgICAgICB2YXIgeDsKICAgICAgOTYg
ICAgfTsKIAorSU5TRVJUSU5HIEFUOiA5NDowCitQQVVTRVMgQVQ6IDk0OjAKKyAgICAgOTEgICAg
KHgpID0+IHsKKyAgICAgOTIgICAgICAgIHgKKyAgICAgOTMgICAgfTsKKy09PiAgOTQgICAgfCgp
ID0+IHsKKyAgICAgOTUgICAgICAgIHZhciB4OworICAgICA5NiAgICB9OworICAgICA5NyAgICAK
KwogSU5TRVJUSU5HIEFUOiA5NDoxCiBQQVVTRVMgQVQ6IDk1OjQKICAgICAgOTEgICAgKHgpID0+
IHsKQEAgLTIyNjQsMTggKzIyNzgsNiBAQCBQQVVTRVMgQVQ6IDk2OjAKICAgICAgOTggICAgdmFy
IGZPYmogPSB7CiAgICAgIDk5ICAgICAgICBmMTogZnVuY3Rpb24oKSB7CiAKLUlOU0VSVElORyBB
VDogOTY6MQotUEFVU0VTIEFUOiA5ODowCi0gICAgIDkzICAgIH07Ci0gICAgIDk0ICAgICgpID0+
IHsKLSAgICAgOTUgICAgICAgIHZhciB4OwotIC0+ICA5NiAgICB9IzsKLSAgICAgOTcgICAgCi0g
PT4gIDk4ICAgIHx2YXIgZk9iaiA9IHsKLSAgICAgOTkgICAgICAgIGYxOiBmdW5jdGlvbigpIHsK
LSAgICAxMDAgICAgICAgICAgICB2YXIgeDsKLSAgICAxMDEgICAgICAgIH0sCi0KIElOU0VSVElO
RyBBVDogOTk6MAogUEFVU0VTIEFUOiAxMDA6OAogICAgICA5NiAgICB9OwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiMDBhYmYyOTQ5NDY4MDM0YzM1YmQy
MjA2YjA0NjI3NTc2NzhkN2JmLi4zY2MyMDhkNzZhMDkxNjFlOGY2OGUxZTNjODQwZGMxY2RhNjk5
Mjk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjMy
MCwyMSArMjMyMCw4IEBAIHdlYmtpdC5vcmcvYi8xMTY5NTcgbWVkaWEvdHJhY2svdHJhY2stYXV0
b21hdGljLXN1YnRpdGxlcy5odG1sIFsgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8xMjA2ODIg
aW5zcGVjdG9yL3BhZ2UvYXJjaGl2ZS5odG1sIFsgVGltZW91dCBdCiAKK3dlYmtpdC5vcmcvYi8x
NDc1MTggaW5zcGVjdG9yL2RlYnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLmh0bWwgWyBUaW1lb3V0
IF0KIHdlYmtpdC5vcmcvYi8xMjI1NzEgaHR0cC90ZXN0cy9pbnNwZWN0b3IvZG9tL2Nyb3NzLWRv
bWFpbi1pbnNwZWN0ZWQtbm9kZS1hY2Nlc3MuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQu
b3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50Lmh0bWwgWyBUaW1l
b3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1m
cmFtZS1mdW5jdGlvbi1uYW1lLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEy
MjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi5o
dG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVn
Z2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFsbC5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtp
dC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5v
bmUuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9k
ZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC5odG1sIFsgVGltZW91dCBQYXNzIENyYXNoIF0K
LXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0
b0NvbnRpbnVlLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNw
ZWN0b3IvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtdW5jYXVnaHQuaHRtbCBbIFRpbWVv
dXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVh
a3BvaW50LWFjdGlvbnMuaHRtbCBbIEZhaWx1cmUgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcv
Yi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QuaHRt
bCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcv
Yi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0bWwg
WyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIv
cmVtb3ZlQnJlYWtwb2ludC5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1
NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QuaHRtbCBbIFRpbWVv
dXQgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kb20vcmVxdWVzdC1jaGls
ZC1ub2Rlcy1kZXB0aC5odG1sIFsgVGltZW91dCBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMjI1NzEg
aW5zcGVjdG9yL2RvbS9mb2N1cy5odG1sIFsgRmFpbHVyZSBUaW1lb3V0IFBhc3MgXQogd2Via2l0
Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvcnVudGltZS9nZXRQcm9wZXJ0aWVzLmh0bWwgWyBUaW1l
b3V0IFBhc3MgQ3Jhc2ggXQpAQCAtMjM3OSw3ICsyMzY2LDYgQEAgd2Via2l0Lm9yZy9iLzEzNjY3
NCBtZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLXdpdGgtcGFkZGluZy5odG1sIFsgVGlt
ZW91dAogCiB3ZWJraXQub3JnL2IvMTM3Njk4IG1lZGlhL3ZpZGVvLWNvbnRyb2xzLWRyYWcuaHRt
bCBbIFRpbWVvdXQgXQogCi13ZWJraXQub3JnL2IvMTM3MTMxIGluc3BlY3Rvci9kZWJ1Z2dlciBb
IFNraXAgXQogd2Via2l0Lm9yZy9iLzE0NzUxOCBpbnNwZWN0b3IvZG9tIFsgU2tpcCBdCiB3ZWJr
aXQub3JnL2IvMTQ3NTE4IGluc3BlY3Rvci9tb2RlbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE0
NzUxOCBpbnNwZWN0b3IvdGltZWxpbmUgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380254</attachid>
            <date>2019-10-04 14:51:31 -0700</date>
            <delta_ts>2019-10-31 10:08:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137131-20191004145130.patch</filename>
            <type>text/plain</type>
            <size>7051</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzI1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2M2MGIwNjYxY2NkMWE4MWIzN2Zh
YjM2OTI3NjlkMWQwYTVkOTMyOS4uYTFkY2IzMGNhNzdlOTJhYmI0OGRmNWM5NzEzNWQ2MWRjZDVk
NDUxMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTEwLTA0ICBZdXJ5IFNlbWlraGF0c2t5
ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHRlc3RzIHVu
ZGVyIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlciBhcmUgZmxha3kKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzEzMQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTg0NjEzMzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVW5mbGFrZSBhIGNvdXBsZSBvZiBpbnNwZWN0b3IgcHJvdG9jb2wgdGVz
dHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvbGF5ZXJzL2xheWVycy1mb3Itbm9kZS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2xheWVycy9sYXllcnMtZm9yLW5vZGUuaHRtbDog
VXBkYXRlZCB0aGUgdGVzdCB0byB3YWl0IGZvciB0aGUgZmlyc3QKKyAgICAgICAgTGF5ZXJUcmVl
LmxheWVyVHJlZURpZENoYW5nZSBldmVudCBiZWZvcmUgcmVxdWVzdGluZyBpbml0aWFsIGxheWVy
IHRyZWUuCisKKyAgICAgICAgQWxzbyBhZnRlciBhZGRpbmcgYSBub2RlIHdhaXQgZm9yIG5leHQg
UkFGIHRvIGF2b2lkIGZsYWtpbmVzcy4KKworICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS9s
aW5lLWNvbHVtbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL2xp
bmUtY29sdW1uLmh0bWw6IFRoZXJlIGEgc3R5bGUgcmVjYWxjIGV2ZW50CisgICAgICAgIHdoaWNo
IGFwcGVhcnMgaW50ZXJtaXR0ZW50bHkgaW4gdGhlIHJlY29yZGVkIHByb2ZpbGUgbWFraW5nIHRo
ZSB0ZXN0CisgICAgICAgIGZsYWt5LiBUbyBhdm9pZCB0aGF0IGR1bXAgb25seSBldmVudHMgdGhh
dCBhcmUgYWx3YXlzIHByZXNlbnQuCisKIDIwMTktMTAtMDQgIENocmlzIExvcmQgIDxjbG9yZEBp
Z2FsaWEuY29tPgogCiAgICAgICAgIEltcG9ydCAyZGNvbnRleHQgV2ViIFBsYXRmb3JtIFRlc3Rz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbGF5ZXJzL2xheWVycy1mb3Itbm9k
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbGF5ZXJzL2xheWVycy1mb3It
bm9kZS1leHBlY3RlZC50eHQKaW5kZXggMzk5YmFjYTJjOTk5NjNiOTE5YzA4ZWY1YWE0YjkxYThh
YWEyMTQ5Ni4uOGE1NzA2ODliNjE2ODkyY2EwYTI2NjM5NDZiMmIzZDZiZmYxNDkxMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2xheWVycy9sYXllcnMtZm9yLW5vZGUtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9sYXllcnMvbGF5ZXJzLWZvci1ub2Rl
LWV4cGVjdGVkLnR4dApAQCAtMTI2LDYgKzEyNiwxMCBAQCBQQVNTCiAKIFBBU1MKIAorPT09IFdh
aXQgZm9yIHJlcXVlc3RBbmltYXRpb25GcmFtZSA9PT0KKworUEFTUworCiA9PT0gR2V0IHRoZSBt
b2RpZmllZCBsYXllciB0cmVlID09PQogCiBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvbGF5ZXJzL2xheWVycy1mb3Itbm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2xheWVycy9sYXllcnMtZm9yLW5vZGUuaHRtbAppbmRleCA1M2I5ZTIwOGE5Y2RlM2IzZDgz
ZTZjOWFmM2EyZDk3NWZkMmU4MWYxLi45ZjhmZTBmYmM0NTRiNGYxMWUzNzhlYjU5ZTdlOWUyNjg5
YTE2NTQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbGF5ZXJzL2xheWVycy1m
b3Itbm9kZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9sYXllcnMvbGF5ZXJzLWZv
ci1ub2RlLmh0bWwKQEAgLTksMzggKzksMzUgQEAgZnVuY3Rpb24gYWRkQ29tcG9zaXRlZExheWVy
KCkKICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJjb21wb3NpdGVkIjsKICAgICBlbGVtZW50Lmlk
ID0gImxhc3QtZWxlbWVudCI7CiAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50
KTsKKyAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiByZXF1ZXN0QW5pbWF0aW9uRnJh
bWUocmVzb2x2ZSkpOwogfTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgdmFyIGRvY3VtZW50
Tm9kZTsKLSAgICB2YXIgaW5pdGlhbExheWVyczsKLSAgICB2YXIgZXZlbnRzQ291bnQgPSAwOwot
Ci0gICAgSW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJMYXllclRyZWUubGF5ZXJUcmVl
RGlkQ2hhbmdlIl0gPSBmdW5jdGlvbiAobWVzc2FnZU9iamVjdCkgewotICAgICAgICBldmVudHND
b3VudCsrOwotICAgIH07CisgICAgbGV0IGRvY3VtZW50Tm9kZTsKKyAgICBsZXQgaW5pdGlhbExh
eWVyczsKIAogICAgIGVuYWJsZUxheWVyVHJlZUFnZW50KCk7CiAKICAgICBmdW5jdGlvbiBlbmFi
bGVMYXllclRyZWVBZ2VudChyZXN1bHQpCiAgICAgeworICAgICAgICBsZXQgbGF5ZXJzQ2hhbmdl
ZCA9IEluc3BlY3RvclByb3RvY29sLmF3YWl0RXZlbnQoe2V2ZW50OiAiTGF5ZXJUcmVlLmxheWVy
VHJlZURpZENoYW5nZSJ9KQogICAgICAgICBzdGVwKHsKICAgICAgICAgICAgIG5hbWU6ICJFbmFi
bGUgdGhlIExheWVyVHJlZSBhZ2VudCIsCiAgICAgICAgICAgICBjb21tYW5kOiAiTGF5ZXJUcmVl
LmVuYWJsZSIsCiAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7fSwKLSAgICAgICAgICAgIGNhbGxi
YWNrOiBnZXREb2N1bWVudAorICAgICAgICAgICAgY2FsbGJhY2s6IGdldERvY3VtZW50LmJpbmQo
dGhpcywgbGF5ZXJzQ2hhbmdlZCkKICAgICAgICAgfSk7CiAgICAgfTsKLSAgICAKLSAgICBmdW5j
dGlvbiBnZXREb2N1bWVudChyZXN1bHQpCisKKyAgICBmdW5jdGlvbiBnZXREb2N1bWVudChsYXll
cnNDaGFuZ2VkUHJvbWlzZSkKICAgICB7Ci0gICAgICAgIHN0ZXAoeworICAgICAgICBsYXllcnND
aGFuZ2VkUHJvbWlzZS50aGVuKHN0ZXAoewogICAgICAgICAgICAgbmFtZTogIkdldCB0aGUgRG9j
dW1lbnQiLAogICAgICAgICAgICAgY29tbWFuZDogIkRPTS5nZXREb2N1bWVudCIsCiAgICAgICAg
ICAgICBwYXJhbWV0ZXJzOiB7fSwKICAgICAgICAgICAgIGNhbGxiYWNrOiBnZXRJbml0aWFsTGF5
ZXJUcmVlCi0gICAgICAgIH0pOworICAgICAgICB9KSk7CiAgICAgfTsKICAgICAKICAgICBmdW5j
dGlvbiBnZXRJbml0aWFsTGF5ZXJUcmVlKHJlc3VsdCkKQEAgLTY0LDYgKzYxLDE2IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICAgICAgbmFtZTogIk1lc3NhZ2UgdGhlIHBhZ2UgdG8gYWRkIGEg
bmV3IGNvbXBvc2l0ZWQgbGF5ZXIiLAogICAgICAgICAgICAgY29tbWFuZDogIlJ1bnRpbWUuZXZh
bHVhdGUiLAogICAgICAgICAgICAgcGFyYW1ldGVyczogeyJleHByZXNzaW9uIjogImFkZENvbXBv
c2l0ZWRMYXllcigpIn0sCisgICAgICAgICAgICBjYWxsYmFjazogYXdhaXRSZXF1ZXN0QW5pbWF0
aW9uRnJhbWUKKyAgICAgICAgfSk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGF3YWl0UmVxdWVz
dEFuaW1hdGlvbkZyYW1lKHJlc3VsdCkKKyAgICB7CisgICAgICAgIHN0ZXAoeworICAgICAgICAg
ICAgbmFtZTogIldhaXQgZm9yIHJlcXVlc3RBbmltYXRpb25GcmFtZSIsCisgICAgICAgICAgICBj
b21tYW5kOiAiUnVudGltZS5hd2FpdFByb21pc2UiLAorICAgICAgICAgICAgcGFyYW1ldGVyczog
eyJwcm9taXNlT2JqZWN0SWQiOiByZXN1bHQucmVzdWx0Lm9iamVjdElkfSwKICAgICAgICAgICAg
IGNhbGxiYWNrOiBnZXRNb2RpZmllZExheWVyVHJlZQogICAgICAgICB9KTsKICAgICB9OwpAQCAt
MTA2LDExICsxMTMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIGZpbmlzaFRl
c3QoKQogICAgIHsKLSAgICAgICAgaWYgKCFldmVudHNDb3VudCkKLSAgICAgICAgICAgIFByb3Rv
Y29sVGVzdC5sb2coIkZBSUw6IERpZCBub3QgcmVjZWl2ZSBsYXllclRyZWVEaWRDaGFuZ2UgZXZl
bnRzLiIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJcbj09
PSBUZXN0IGNvbXBsZXRlLCBhbGwgZXhwZWN0ZWQgY29uZGl0aW9ucyBtZXQgPT09Iik7Ci0KKyAg
ICAgICAgUHJvdG9jb2xUZXN0LmxvZygiXG49PT0gVGVzdCBjb21wbGV0ZSwgYWxsIGV4cGVjdGVk
IGNvbmRpdGlvbnMgbWV0ID09PSIpOwogICAgICAgICBQcm90b2NvbFRlc3QuY29tcGxldGVUZXN0
KCk7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
L2xpbmUtY29sdW1uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS9saW5lLWNvbHVtbi1leHBlY3RlZC50eHQKaW5kZXggNDZkODY2MGJlMzk5ODJlYmU0ZjliYzBl
MjNkZjZhY2IyMTExZmQyYi4uMjAzM2VhMWQzZjJkMWUyOTEyZTUxYzAyYzRkMTU5NzdkOWFlYzA4
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL2xpbmUtY29sdW1u
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvbGluZS1j
b2x1bW4tZXhwZWN0ZWQudHh0CkBAIC0xMCw0OSArMTAsNiBAQCBQQVNTOiBDYXB0dXJpbmcgc3Rh
cnRlZC4KICAgInN0YXJ0VGltZSI6ICI8ZmlsdGVyZWQ+IiwKICAgImRhdGEiOiB7fSwKICAgImNo
aWxkcmVuIjogWwotICAgIHsKLSAgICAgICJzdGFydFRpbWUiOiAiPGZpbHRlcmVkPiIsCi0gICAg
ICAic3RhY2tUcmFjZSI6IFsKLSAgICAgICAgewotICAgICAgICAgICJmdW5jdGlvbk5hbWUiOiAi
Y2xpY2siLAotICAgICAgICAgICJ1cmwiOiAiW25hdGl2ZSBjb2RlXSIsCi0gICAgICAgICAgInNj
cmlwdElkIjogIjxmaWx0ZXJlZD4iLAotICAgICAgICAgICJsaW5lTnVtYmVyIjogMCwKLSAgICAg
ICAgICAiY29sdW1uTnVtYmVyIjogMAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ImZ1bmN0aW9uTmFtZSI6ICJ3aWxsQ2FsbEZ1bmN0aW9uVGVzdCIsCi0gICAgICAgICAgInVybCI6
ICJ0aW1lbGluZS9saW5lLWNvbHVtbi5odG1sIiwKLSAgICAgICAgICAic2NyaXB0SWQiOiAiPGZp
bHRlcmVkPiIsCi0gICAgICAgICAgImxpbmVOdW1iZXIiOiAyNiwKLSAgICAgICAgICAiY29sdW1u
TnVtYmVyIjogNDQKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICJmdW5jdGlvbk5h
bWUiOiAiZ2xvYmFsIGNvZGUiLAotICAgICAgICAgICJ1cmwiOiAiIiwKLSAgICAgICAgICAic2Ny
aXB0SWQiOiAiPGZpbHRlcmVkPiIsCi0gICAgICAgICAgImxpbmVOdW1iZXIiOiAxLAotICAgICAg
ICAgICJjb2x1bW5OdW1iZXIiOiAyMQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ImZ1bmN0aW9uTmFtZSI6ICJldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbiIsCi0gICAgICAgICAg
InVybCI6ICJbbmF0aXZlIGNvZGVdIiwKLSAgICAgICAgICAic2NyaXB0SWQiOiAiPGZpbHRlcmVk
PiIsCi0gICAgICAgICAgImxpbmVOdW1iZXIiOiAwLAotICAgICAgICAgICJjb2x1bW5OdW1iZXIi
OiAwCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAiZnVuY3Rpb25OYW1lIjogIiIs
Ci0gICAgICAgICAgInVybCI6ICIiLAotICAgICAgICAgICJzY3JpcHRJZCI6ICI8ZmlsdGVyZWQ+
IiwKLSAgICAgICAgICAibGluZU51bWJlciI6IDE0MCwKLSAgICAgICAgICAiY29sdW1uTnVtYmVy
IjogOTcKLSAgICAgICAgfQotICAgICAgXSwKLSAgICAgICJkYXRhIjoge30sCi0gICAgICAiZnJh
bWVJZCI6ICI8ZmlsdGVyZWQ+IiwKLSAgICAgICJ0eXBlIjogIlNjaGVkdWxlU3R5bGVSZWNhbGN1
bGF0aW9uIgotICAgIH0sCiAgICAgewogICAgICAgInN0YXJ0VGltZSI6ICI8ZmlsdGVyZWQ+IiwK
ICAgICAgICJmcmFtZUlkIjogIjxmaWx0ZXJlZD4iLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3RpbWVsaW5lL2xpbmUtY29sdW1uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvdGltZWxpbmUvbGluZS1jb2x1bW4uaHRtbAppbmRleCA1NzQzN2VkYmIzZTBhYjNlN2IxYmFi
Y2FjNGQ2YTEwYWY3Y2RiNzI0Li5lZjFhNmJiMTJjNzRiZDNlNjM2MTNlODM1MzJlMzhiYTVjMDYw
NjhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvbGluZS1jb2x1
bW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvbGluZS1jb2x1bW4u
aHRtbApAQCAtNDAsNyArNDAsMTEgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgSW5zcGVjdG9yUHJv
dG9jb2wuc2VuZENvbW1hbmQoIlBhZ2UuZW5hYmxlIiwge30pOwogICAgIEluc3BlY3RvclByb3Rv
Y29sLnNlbmRDb21tYW5kKCJUaW1lbGluZS5lbmFibGUiKTsKIAorICAgIC8vIFRvIGF2b2lkIGZs
YWtpbmVzcyBwcmludCBvbmx5IGV2ZW50cyB0aGF0IHdlIGFsd2F5cyBleHBlY3QuCisgICAgY29u
c3QgZXZlbnRXaGl0ZWxpc3QgPSBuZXcgU2V0KFsiUmVuZGVyaW5nRnJhbWUiLCAiQ29uc29sZVBy
b2ZpbGUiLCAiRXZlbnREaXNwYXRjaCIsICJGdW5jdGlvbkNhbGwiXSk7CiAgICAgZnVuY3Rpb24g
cmVwbGFjZXIoa2V5LCB2YWx1ZSkgeworICAgICAgICBpZiAoa2V5ID09PSAiY2hpbGRyZW4iICYm
IHRoaXMuc3RhcnRUaW1lKQorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmZpbHRlcihlID0+IGV2
ZW50V2hpdGVsaXN0LmhhcyhlLnR5cGUpKTsKICAgICAgICAgaWYgKGtleSA9PT0gInN0YXJ0VGlt
ZSIgfHwga2V5ID09PSAiZW5kVGltZSIgfHwga2V5ID09PSAic2NyaXB0SWQiIHx8IGtleSA9PT0g
ImZyYW1lSWQiKQogICAgICAgICAgICAgcmV0dXJuICI8ZmlsdGVyZWQ+IjsKICAgICAgICAgaWYg
KGtleSA9PT0gInVybCIgfHwga2V5ID09PSAic2NyaXB0TmFtZSIpCg==
</data>
<flag name="review"
          id="395981"
          type_id="1"
          status="+"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>380255</attachid>
            <date>2019-10-04 14:57:12 -0700</date>
            <delta_ts>2019-10-04 14:57:12 -0700</delta_ts>
            <desc>initial layer tree diff</desc>
            <filename>layers-for-node-pretty-diff.htm</filename>
            <type>text/html</type>
            <size>9974</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">CjwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAxMTYpZmlsZTovLy9Vc2Vycy95dXJ5cy9XZWJLaXQvV2Vi
S2l0QnVpbGQvUmVsZWFzZS9sYXlvdXQtdGVzdC1yZXN1bHRzL2luc3BlY3Rvci9sYXllcnMvbGF5
ZXJzLWZvci1ub2RlLXByZXR0eS1kaWZmLmh0bWwgLS0+CjxodG1sPjxoZWFkPjxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4K
CjxzdHlsZT4KOmxpbmssIDp2aXNpdGVkIHsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAg
IGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7Cn0KCjpsaW5rIHsKICAgIGNvbG9yOiAjMDM5Owp9
CgouRmlsZURpZmYgewogICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODsKICAgIGJvcmRlcjog
MXB4IHNvbGlkICNkZGQ7CiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgbWFyZ2luOiAx
ZW0gMDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKaDEgewogICAgY29sb3I6ICMzMzM7CiAg
ICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsKICAgIGZvbnQtc2l6ZTogMWVtOwogICAgbWFyZ2lu
LWxlZnQ6IDAuNWVtOwogICAgZGlzcGxheTogaW5saW5lOwogICAgd2lkdGg6IDEwMCU7CiAgICBw
YWRkaW5nOiAwLjVlbTsKfQoKaDEgOmxpbmssIGgxIDp2aXNpdGVkIHsKICAgIGNvbG9yOiBpbmhl
cml0Owp9CgpoMSA6aG92ZXIgewogICAgY29sb3I6ICM1NTU7CiAgICBiYWNrZ3JvdW5kLWNvbG9y
OiAjZWVlOwp9CgouRGlmZkxpbmtzIHsKICAgIGZsb2F0OiByaWdodDsKfQoKLkZpbGVEaWZmTGlu
a0NvbnRhaW5lciB7CiAgICBvcGFjaXR5OiAwOwogICAgZGlzcGxheTogdGFibGUtY2VsbDsKICAg
IHBhZGRpbmctcmlnaHQ6IDAuNWVtOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKLkRpZmZT
ZWN0aW9uIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgYm9yZGVyOiBzb2xpZCAj
ZGRkOwogICAgYm9yZGVyLXdpZHRoOiAxcHggMHB4Owp9CgouRXhwYW5zaW9uTGluZSwgLkxpbmVD
b250YWluZXIgewogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKLnNpZGVieXNpZGUgLkRpZmZC
bG9ja1BhcnQuYWRkOmZpcnN0LWNoaWxkIHsKICAgIGZsb2F0OiByaWdodDsKfQoKLkxpbmVTaWRl
LAouc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUsCi5zaWRlYnlzaWRlIC5EaWZmQmxv
Y2tQYXJ0LmFkZCB7CiAgICBkaXNwbGF5OmlubGluZS1ibG9jazsKICAgIHdpZHRoOiA1MCU7CiAg
ICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwp9Cgouc2lkZWJ5c2lkZSAucmVzaXplSGFuZGxlIHsKICAg
IHdpZHRoOiA1cHg7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBjdXJzb3I6IG1vdmU7CiAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDA7CiAgICBsZWZ0OiA1MCU7Cn0KCi5zaWRlYnlzaWRl
IC5yZXNpemVIYW5kbGU6aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogZ3JleTsKICAgIG9w
YWNpdHk6IDAuNTsKfQoKLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQucmVtb3ZlIC50bywKLnNp
ZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQuYWRkIC5mcm9tIHsKICAgIGRpc3BsYXk6IG5vbmU7Cn0K
Ci5saW5lTnVtYmVyLCAuZXhwYW5zaW9uTGluZU51bWJlciB7CiAgICBib3JkZXItYm90dG9tOiAx
cHggc29saWQgIzk5ODsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkZGQ7CiAgICBjb2xv
cjogIzQ0NDsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHBhZGRpbmc6IDFweCA1cHgg
MHB4IDBweDsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgdmVydGljYWwtYWxpZ246IGJvdHRv
bTsKICAgIHdpZHRoOiAzZW07Cn0KCi5saW5lTnVtYmVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAj
ZWVkOwp9CgouZXhwYW5zaW9uTGluZU51bWJlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsK
fQoKcHJlLCAudGV4dCB7CiAgICBwYWRkaW5nLWxlZnQ6IDVweDsKICAgIHdoaXRlLXNwYWNlOiBw
cmUtd3JhcDsKICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKfQoKLmltYWdlIHsKICAgIGJvcmRl
cjogMnB4IHNvbGlkIGJsYWNrOwp9CgouY29udGV4dCwgLmNvbnRleHQgLmxpbmVOdW1iZXIgewog
ICAgY29sb3I6ICM4NDk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmOwp9CgouTGluZS5hZGQs
IC5GaWxlRGlmZiAuYWRkIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNkZmQ7Cn0KCi5MaW5lLmFk
ZCBpbnMgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzllOTsKICAgIHRleHQtZGVjb3JhdGlvbjog
bm9uZTsKfQoKLkxpbmUucmVtb3ZlLCAuRmlsZURpZmYgLnJlbW92ZSB7CiAgICBiYWNrZ3JvdW5k
LWNvbG9yOiAjZmRkOwp9CgouTGluZS5yZW1vdmUgZGVsIHsKICAgIGJhY2tncm91bmQtY29sb3I6
ICNlOTk7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KCi8qIFN1cHBvcnQgZm9yIGlubGlu
ZSBjb21tZW50cyAqLwoKLmF1dGhvciB7CiAgZm9udC1zdHlsZTogaXRhbGljOwp9CgouY29tbWVu
dCB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgouY29tbWVudCB0ZXh0YXJlYSB7CiAgaGVpZ2h0
OiA2ZW07Cn0KCi5vdmVyYWxsQ29tbWVudHMgdGV4dGFyZWEgewogIGhlaWdodDogMmVtOwogIG1h
eC13aWR0aDogMTAwJTsKICBtaW4td2lkdGg6IDIwMHB4Owp9CgouY29tbWVudCB0ZXh0YXJlYSwg
Lm92ZXJhbGxDb21tZW50cyB0ZXh0YXJlYSB7CiAgZGlzcGxheTogYmxvY2s7CiAgd2lkdGg6IDEw
MCU7Cn0KCi5vdmVyYWxsQ29tbWVudHMgLm9wZW4gewogIC13ZWJraXQtdHJhbnNpdGlvbjogaGVp
Z2h0IC4yczsKICBoZWlnaHQ6IDRlbTsKfQoKLnN0YXR1c0J1YmJsZS53cmFwIHsKICBkaXNwbGF5
OiBibG9jazsKfQoKI3Rvb2xiYXIgewogIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKICBkaXNwbGF5
OiAtbW96LWZsZXg7CiAgcGFkZGluZzogM3B4OwogIGxlZnQ6IDA7CiAgcmlnaHQ6IDA7CiAgYm9y
ZGVyOiAxcHggc29saWQgI2RkZDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOwogIGZvbnQtZmFt
aWx5OiBzYW5zLXNlcmlmOwogIHBvc2l0aW9uOiBmaXhlZDsKICBib3R0b206IDA7Cn0KCiN0b29s
YmFyIC5hY3Rpb25zIHsKICBmbG9hdDogcmlnaHQ7Cn0KCi53aW50ZXIgewogIHBvc2l0aW9uOiBm
aXhlZDsKICB6LWluZGV4OiA1OwogIGxlZnQ6IDA7CiAgcmlnaHQ6IDA7CiAgdG9wOiAwOwogIGJv
dHRvbTogMDsKICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKICBvcGFjaXR5OiAwLjg7Cn0KCi5p
bmFjdGl2ZSB7CiAgZGlzcGxheTogbm9uZTsKfQoKLmxpZ2h0Ym94IHsKICBwb3NpdGlvbjogZml4
ZWQ7CiAgei1pbmRleDogNjsKICBsZWZ0OiAxMCU7CiAgcmlnaHQ6IDEwJTsKICB0b3A6IDEwJTsK
ICBib3R0b206IDEwJTsKICBiYWNrZ3JvdW5kOiB3aGl0ZTsKfQoKLmxpZ2h0Ym94IGlmcmFtZSB7
CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwp9CgouY29tbWVudENvbnRleHQgLmxpbmVO
dW1iZXIgewogIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKfQoKLnNlbGVjdGVkIC5saW5lTnVt
YmVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjlGOwogIGJvcmRlci1ib3R0b20tY29sb3I6ICM2
OUY7CiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjNjlGOwp9CgouRXhwYW5kTGlua0NvbnRhaW5lciB7
CiAgb3BhY2l0eTogMDsKICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDsKICBib3JkZXItYm90
dG9tOiAxcHggc29saWQgI2RkZDsKfQoKLkV4cGFuZEFyZWEgewogIG1hcmdpbjogMDsKfQoKLkV4
cGFuZFRleHQgewogIG1hcmdpbi1sZWZ0OiAwLjY3ZW07Cn0KCi5MaW5rQ29udGFpbmVyIHsKICBm
b250LWZhbWlseTogc2Fucy1zZXJpZjsKICBmb250LXNpemU6IHNtYWxsOwogIGZvbnQtc3R5bGU6
IG5vcm1hbDsKICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC41czsKfQoKLkxpbmtDb250
YWluZXIgYSB7CiAgYm9yZGVyOiAwOwp9CgouTGlua0NvbnRhaW5lciBsYWJlbDphZnRlciwKLkxp
bmtDb250YWluZXIgYTphZnRlciB7CiAgY29udGVudDogIiB8ICI7CiAgY29sb3I6IGJsYWNrOwp9
CgouTGlua0NvbnRhaW5lciBhOmxhc3Qtb2YtdHlwZTphZnRlciB7CiAgY29udGVudDogIiI7Cn0K
Ci5MaW5rQ29udGFpbmVyIGxhYmVsIHsKICBjb2xvcjogIzAzOTsKfQoKLmhlbHAgewogY29sb3I6
IGdyYXk7CiBmb250LXN0eWxlOiBpdGFsaWM7Cn0KCiNtZXNzYWdlIHsKICBmb250LXNpemU6IHNt
YWxsOwogIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOwp9CgouY29tbWVudFN0YXR1cyB7CiAgZm9u
dC1zdHlsZTogaXRhbGljOwp9CgouY29tbWVudCwgLnByZXZpb3VzQ29tbWVudCwgLmZyb3plbkNv
bW1lbnQgewogIGJhY2tncm91bmQtY29sb3I6ICNmZmQ7Cn0KCi5vdmVyYWxsQ29tbWVudHMgewog
IC13ZWJraXQtZmxleDogMTsKICAtbW96LWZsZXg6IDE7CiAgbWFyZ2luLXJpZ2h0OiAzcHg7Cn0K
Ci5wcmV2aW91c0NvbW1lbnQsIC5mcm96ZW5Db21tZW50IHsKICBib3JkZXI6IGluc2V0IDFweDsK
ICBwYWRkaW5nOiA1cHg7CiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwp9CgouY29tbWVudCBidXR0
b24gewogIHdpZHRoOiA2ZW07Cn0KCmRpdjpmb2N1cyB7CiAgb3V0bGluZTogMXB4IHNvbGlkIGJs
dWU7CiAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7Cn0KCi5zdGF0dXNCdWJibGUgPiBpZnJhbWUgewog
IC8qIFRoZSB3aWR0aC9oZWlnaHQgZ2V0IHNldCB0byB0aGUgYnViYmxlIGNvbnRlbnRzIHZpYSBw
b3N0TWVzc2FnZSBvbiBicm93c2VycyB0aGF0IHN1cHBvcnQgaXQuICovCiAgd2lkdGg6IDQ2MHB4
OwogIGhlaWdodDogMjBweDsKICBtYXJnaW46IDJweCAycHggMCAwOwogIGJvcmRlcjogbm9uZTsK
ICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwp9CgoucmV2aXNpb24gewogIGRpc3BsYXk6IG5vbmU7
Cn0KCi5hdXRvc2F2ZS1zdGF0ZSB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHJpZ2h0OiAwOwog
IHRvcDogLTEuM2VtOwogIHBhZGRpbmc6IDAgM3B4OwogIG91dGxpbmU6IDFweCBzb2xpZCAjRERE
OwogIGNvbG9yOiAjOEZERjVGOwogIGZvbnQtc2l6ZTogc21hbGw7ICAgCiAgYmFja2dyb3VuZC1j
b2xvcjogI0VFRTsKfQoKLmF1dG9zYXZlLXN0YXRlOmVtcHR5IHsKICBvdXRsaW5lOiAwcHg7Cn0K
LmF1dG9zYXZlLXN0YXRlLnNhdmluZyB7CiAgY29sb3I6ICNFOTgwODA7Cn0KCi5jbGVhcl9mbG9h
dCB7CiAgICBjbGVhcjogYm90aDsKfQo8L3N0eWxlPgo8c2NyaXB0IHNyYz0iLi9sYXllcnMtZm9y
LW5vZGUtcHJldHR5LWRpZmZfZmlsZXMvanF1ZXJ5LTEuNC4yLm1pbi5qcyI+PC9zY3JpcHQ+IAo8
c2NyaXB0IHNyYz0iZmlsZTovLy9Vc2Vycy95dXJ5cy9XZWJLaXQvV2ViS2l0QnVpbGQvUmVsZWFz
ZS9sYXlvdXQtdGVzdC1yZXN1bHRzL2luc3BlY3Rvci9sYXllcnMvanMvc3RhdHVzLWJ1YmJsZS5q
cyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJmaWxlOi8vL1VzZXJzL3l1cnlzL1dlYktpdC9XZWJL
aXRCdWlsZC9SZWxlYXNlL2xheW91dC10ZXN0LXJlc3VsdHMvaW5zcGVjdG9yL2xheWVycy9jb2Rl
LXJldmlldy5qcz92ZXJzaW9uPTQ4Ij48L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4KPGRpdiBjbGFz
cz0iRmlsZURpZmYiPgo8aDE+L1VzZXJzL3l1cnlzL1dlYktpdC9XZWJLaXRCdWlsZC9SZWxlYXNl
L2xheW91dC10ZXN0LXJlc3VsdHMvaW5zcGVjdG9yL2xheWVycy9sYXllcnMtZm9yLW5vZGUtYWN0
dWFsLnR4dDwvaDE+CjxkaXYgY2xhc3M9IkRpZmZTZWN0aW9uIj4KPGRpdiBjbGFzcz0iRGlmZkJs
b2NrIj4KPGRpdiBjbGFzcz0iRGlmZkJsb2NrUGFydCBzaGFyZWQiPgo8ZGl2IGNsYXNzPSJMaW5l
IExpbmVDb250YWluZXIiPgo8c3BhbiBjbGFzcz0iZnJvbSBsaW5lTnVtYmVyIj4xMDk8L3NwYW4+
PHNwYW4gY2xhc3M9InRvIGxpbmVOdW1iZXIiPjEwOTwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dCI+
ICAgICAgICAgICAgIngiOiAwLDwvc3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9IkxpbmUgTGluZUNv
bnRhaW5lciI+CjxzcGFuIGNsYXNzPSJmcm9tIGxpbmVOdW1iZXIiPjExMDwvc3Bhbj48c3BhbiBj
bGFzcz0idG8gbGluZU51bWJlciI+MTEwPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0Ij4gICAgICAg
ICAgICAieSI6IDAsPC9zcGFuPgo8L2Rpdj4KPGRpdiBjbGFzcz0iTGluZSBMaW5lQ29udGFpbmVy
Ij4KPHNwYW4gY2xhc3M9ImZyb20gbGluZU51bWJlciI+MTExPC9zcGFuPjxzcGFuIGNsYXNzPSJ0
byBsaW5lTnVtYmVyIj4xMTE8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQiPiAgICAgICAgICAgICJ3
aWR0aCI6ICJudW1iZXIiLDwvc3Bhbj4KPC9kaXY+CjwvZGl2PjxkaXYgY2xhc3M9ImNsZWFyX2Zs
b2F0Ij48L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0iRGlmZkJsb2NrIj4KPGRpdiBjbGFzcz0iRGlm
ZkJsb2NrUGFydCByZW1vdmUiPgo8ZGl2IGNsYXNzPSJMaW5lIExpbmVDb250YWluZXIgcmVtb3Zl
Ij4KPHNwYW4gY2xhc3M9ImZyb20gbGluZU51bWJlciI+MTEyPC9zcGFuPjxzcGFuIGNsYXNzPSJ0
byBsaW5lTnVtYmVyIj4mbmJzcDs8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQiPiAgICAgICAgICAg
ICJoZWlnaHQiOiA8ZGVsPiJudW1iZXIiPC9kZWw+PC9zcGFuPgo8L2Rpdj4KPGRpdiBjbGFzcz0i
TGluZSBMaW5lQ29udGFpbmVyIHJlbW92ZSI+CjxzcGFuIGNsYXNzPSJmcm9tIGxpbmVOdW1iZXIi
PjExMzwvc3Bhbj48c3BhbiBjbGFzcz0idG8gbGluZU51bWJlciI+Jm5ic3A7PC9zcGFuPjxzcGFu
IGNsYXNzPSJ0ZXh0Ij4gICAgICAgIH0sPC9zcGFuPgo8L2Rpdj4KPGRpdiBjbGFzcz0iTGluZSBM
aW5lQ29udGFpbmVyIHJlbW92ZSI+CjxzcGFuIGNsYXNzPSJmcm9tIGxpbmVOdW1iZXIiPjExNDwv
c3Bhbj48c3BhbiBjbGFzcz0idG8gbGluZU51bWJlciI+Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNz
PSJ0ZXh0Ij4gICAgICAgICJtZW1vcnkiOiAibnVtYmVyIiw8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNs
YXNzPSJMaW5lIExpbmVDb250YWluZXIgcmVtb3ZlIj4KPHNwYW4gY2xhc3M9ImZyb20gbGluZU51
bWJlciI+MTE1PC9zcGFuPjxzcGFuIGNsYXNzPSJ0byBsaW5lTnVtYmVyIj4mbmJzcDs8L3NwYW4+
PHNwYW4gY2xhc3M9InRleHQiPiAgICAgICAgImNvbXBvc2l0ZWRCb3VuZHMiOiB7PC9zcGFuPgo8
L2Rpdj4KPGRpdiBjbGFzcz0iTGluZSBMaW5lQ29udGFpbmVyIHJlbW92ZSI+CjxzcGFuIGNsYXNz
PSJmcm9tIGxpbmVOdW1iZXIiPjExNjwvc3Bhbj48c3BhbiBjbGFzcz0idG8gbGluZU51bWJlciI+
Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0Ij4gICAgICAgICAgICAieCI6IDAsPC9zcGFu
Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iTGluZSBMaW5lQ29udGFpbmVyIHJlbW92ZSI+CjxzcGFuIGNs
YXNzPSJmcm9tIGxpbmVOdW1iZXIiPjExNzwvc3Bhbj48c3BhbiBjbGFzcz0idG8gbGluZU51bWJl
ciI+Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0Ij4gICAgICAgICAgICAieSI6IDAsPC9z
cGFuPgo8L2Rpdj4KPGRpdiBjbGFzcz0iTGluZSBMaW5lQ29udGFpbmVyIHJlbW92ZSI+CjxzcGFu
IGNsYXNzPSJmcm9tIGxpbmVOdW1iZXIiPjExODwvc3Bhbj48c3BhbiBjbGFzcz0idG8gbGluZU51
bWJlciI+Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0Ij4gICAgICAgICAgICAid2lkdGgi
OiAibnVtYmVyIiw8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJMaW5lIExpbmVDb250YWluZXIg
cmVtb3ZlIj4KPHNwYW4gY2xhc3M9ImZyb20gbGluZU51bWJlciI+MTE5PC9zcGFuPjxzcGFuIGNs
YXNzPSJ0byBsaW5lTnVtYmVyIj4mbmJzcDs8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQiPiAgICAg
ICAgICAgICJoZWlnaHQiOiA8ZGVsPiJudW1iZXIiPC9kZWw+PC9zcGFuPgo8L2Rpdj4KPC9kaXY+
PGRpdiBjbGFzcz0iRGlmZkJsb2NrUGFydCBhZGQiPgo8ZGl2IGNsYXNzPSJMaW5lIExpbmVDb250
YWluZXIgYWRkIj4KPHNwYW4gY2xhc3M9ImZyb20gbGluZU51bWJlciI+Jm5ic3A7PC9zcGFuPjxz
cGFuIGNsYXNzPSJ0byBsaW5lTnVtYmVyIj4xMTI8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQiPiAg
ICAgICAgICAgICJoZWlnaHQiOiA8aW5zPjU0PC9pbnM+PC9zcGFuPgo8L2Rpdj4KPGRpdiBjbGFz
cz0iTGluZSBMaW5lQ29udGFpbmVyIGFkZCI+CjxzcGFuIGNsYXNzPSJmcm9tIGxpbmVOdW1iZXIi
PiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz0idG8gbGluZU51bWJlciI+MTEzPC9zcGFuPjxzcGFu
IGNsYXNzPSJ0ZXh0Ij4gICAgICAgIH0sPC9zcGFuPgo8L2Rpdj4KPGRpdiBjbGFzcz0iTGluZSBM
aW5lQ29udGFpbmVyIGFkZCI+CjxzcGFuIGNsYXNzPSJmcm9tIGxpbmVOdW1iZXIiPiZuYnNwOzwv
c3Bhbj48c3BhbiBjbGFzcz0idG8gbGluZU51bWJlciI+MTE0PC9zcGFuPjxzcGFuIGNsYXNzPSJ0
ZXh0Ij4gICAgICAgICJtZW1vcnkiOiAibnVtYmVyIiw8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNz
PSJMaW5lIExpbmVDb250YWluZXIgYWRkIj4KPHNwYW4gY2xhc3M9ImZyb20gbGluZU51bWJlciI+
Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSJ0byBsaW5lTnVtYmVyIj4xMTU8L3NwYW4+PHNwYW4g
Y2xhc3M9InRleHQiPiAgICAgICAgImNvbXBvc2l0ZWRCb3VuZHMiOiB7PC9zcGFuPgo8L2Rpdj4K
PGRpdiBjbGFzcz0iTGluZSBMaW5lQ29udGFpbmVyIGFkZCI+CjxzcGFuIGNsYXNzPSJmcm9tIGxp
bmVOdW1iZXIiPiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz0idG8gbGluZU51bWJlciI+MTE2PC9z
cGFuPjxzcGFuIGNsYXNzPSJ0ZXh0Ij4gICAgICAgICAgICAieCI6IDAsPC9zcGFuPgo8L2Rpdj4K
PGRpdiBjbGFzcz0iTGluZSBMaW5lQ29udGFpbmVyIGFkZCI+CjxzcGFuIGNsYXNzPSJmcm9tIGxp
bmVOdW1iZXIiPiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz0idG8gbGluZU51bWJlciI+MTE3PC9z
cGFuPjxzcGFuIGNsYXNzPSJ0ZXh0Ij4gICAgICAgICAgICAieSI6IDAsPC9zcGFuPgo8L2Rpdj4K
PGRpdiBjbGFzcz0iTGluZSBMaW5lQ29udGFpbmVyIGFkZCI+CjxzcGFuIGNsYXNzPSJmcm9tIGxp
bmVOdW1iZXIiPiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz0idG8gbGluZU51bWJlciI+MTE4PC9z
cGFuPjxzcGFuIGNsYXNzPSJ0ZXh0Ij4gICAgICAgICAgICAid2lkdGgiOiAibnVtYmVyIiw8L3Nw
YW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJMaW5lIExpbmVDb250YWluZXIgYWRkIj4KPHNwYW4gY2xh
c3M9ImZyb20gbGluZU51bWJlciI+Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSJ0byBsaW5lTnVt
YmVyIj4xMTk8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQiPiAgICAgICAgICAgICJoZWlnaHQiOiA8
aW5zPjU0PC9pbnM+PC9zcGFuPgo8L2Rpdj4KPC9kaXY+PGRpdiBjbGFzcz0iY2xlYXJfZmxvYXQi
PjwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSJEaWZmQmxvY2siPgo8ZGl2IGNsYXNzPSJEaWZmQmxv
Y2tQYXJ0IHNoYXJlZCI+CjxkaXYgY2xhc3M9IkxpbmUgTGluZUNvbnRhaW5lciI+CjxzcGFuIGNs
YXNzPSJmcm9tIGxpbmVOdW1iZXIiPjEyMDwvc3Bhbj48c3BhbiBjbGFzcz0idG8gbGluZU51bWJl
ciI+MTIwPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0Ij4gICAgICAgIH0sPC9zcGFuPgo8L2Rpdj4K
PGRpdiBjbGFzcz0iTGluZSBMaW5lQ29udGFpbmVyIj4KPHNwYW4gY2xhc3M9ImZyb20gbGluZU51
bWJlciI+MTIxPC9zcGFuPjxzcGFuIGNsYXNzPSJ0byBsaW5lTnVtYmVyIj4xMjE8L3NwYW4+PHNw
YW4gY2xhc3M9InRleHQiPiAgICAgICAgInBhaW50Q291bnQiOiAibnVtYmVyIjwvc3Bhbj4KPC9k
aXY+CjxkaXYgY2xhc3M9IkxpbmUgTGluZUNvbnRhaW5lciI+CjxzcGFuIGNsYXNzPSJmcm9tIGxp
bmVOdW1iZXIiPjEyMjwvc3Bhbj48c3BhbiBjbGFzcz0idG8gbGluZU51bWJlciI+MTIyPC9zcGFu
PjxzcGFuIGNsYXNzPSJ0ZXh0Ij4gICAgfTwvc3Bhbj4KPC9kaXY+CjwvZGl2PjxkaXYgY2xhc3M9
ImNsZWFyX2Zsb2F0Ij48L2Rpdj48L2Rpdj4KPC9kaXY+CjwvZGl2PgoKPC9ib2R5PjwvaHRtbD4=
</data>

          </attachment>
      

    </bug>

</bugzilla>