<?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>217835</bug_id>
          
          <creation_ts>2020-10-16 11:05:31 -0700</creation_ts>
          <short_desc>Web Inspector: move InspectorFrontendAPIDispatcher to WebCore, clean up uses</short_desc>
          <delta_ts>2020-10-30 16:56:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>annulen</cc>
    
    <cc>bburg</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1698679</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-10-16 11:05:31 -0700</bug_when>
    <thetext>Splitting this off from 217783.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698680</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-16 11:05:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/70384407&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698742</commentid>
    <comment_count>2</comment_count>
      <attachid>411613</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-10-16 14:03:20 -0700</bug_when>
    <thetext>Created attachment 411613
Patch v1

This will probably take some iteration with EWS for non-Cocoa ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698763</commentid>
    <comment_count>3</comment_count>
      <attachid>411613</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-16 14:59:06 -0700</bug_when>
    <thetext>Comment on attachment 411613
Patch v1

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

r=me this looks fine to me, so I&apos;m gonna preemptively r+ on the assumption that you&apos;ll fix build/test failures :)

please let me know if anything significant changes while doing so and I can take another look

&gt; Source/WebCore/inspector/InspectorFrontendAPIDispatcher.h:45
&gt; +    void dispatchCommand(const String&amp; command, Vector&lt;Ref&lt;JSON::Value&gt;&gt;&amp;&amp; arguments);

How would you feel about using a different name?  Maybe something like `invoke` or `evaluate`?  Using &quot;command&quot; makes me thing this is related to protocol commands (which I think go through `dispatchMessageAsync`).

&gt; Source/WebCore/inspector/InspectorFrontendClientLocal.cpp:396
&gt;  bool InspectorFrontendClientLocal::evaluateAsBoolean(const String&amp; expression)

Why not also move this to `InspectorFrontendAPIDispatcher::evaluateAsBoolean` (or with a different/better name)?

&gt; Source/WebCore/inspector/InspectorFrontendClientLocal.cpp:-433
&gt; -    JSC::SuspendExceptionScope scope(&amp;m_frontendPage-&gt;inspectorController().vm());

Do we still need this somewhere?

&gt; Source/WebKit/WebProcess/Inspector/RemoteWebInspectorUI.cpp:75
&gt;      StringBuilder builder;
&gt;      JSON::Value::escapeString(builder, findString);

I think we can drop this now because you added a `writeJSON` call, which calls `escapeString`.

Actually, keeping this may result in over-escaping 😳

&gt; Source/WebKit/WebProcess/Inspector/RemoteWebInspectorUI.h:95
&gt; +    WebCore::InspectorFrontendAPIDispatcher&amp; frontendAPIDispatcher() final { return m_frontendAPIDispatcher; }

NIT: the `final` isn&apos;t necessary since this class is already `final`

&gt; Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp:247
&gt; +    m_frontendAPIDispatcher.dispatchCommand(&quot;setDockSide&quot;_s, { JSON::Value::create(String(dockSideString)) });

NIT: is the `String` necessary?

&gt; Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp:267
&gt;      StringBuilder builder;
&gt;      JSON::Value::escapeString(builder, findString);

ditto (RemoteWebInspectorUI.cpp:74)

&gt; Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp:334
&gt; +    m_frontendAPIDispatcher.dispatchCommand(&quot;showConsole&quot;_s, { });

you can add `= { }` to the declaration of `dispatchCommand` to avoid having to do this at callsites</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699458</commentid>
    <comment_count>4</comment_count>
      <attachid>411613</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2020-10-19 14:59:52 -0700</bug_when>
    <thetext>Comment on attachment 411613
Patch v1

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

&gt; Source/WebCore/inspector/InspectorFrontendAPIDispatcher.cpp:78
&gt; +    expression.appendLiteral(&quot;\&quot;&quot;);

I&apos;d love to see this just be `append(&apos;&quot;&apos;)`!

&gt; Source/WebCore/inspector/InspectorFrontendAPIDispatcher.cpp:91
&gt; +    evaluateOrQueueExpression(makeString(&quot;InspectorFrontendAPI.dispatchMessageAsync(&quot;, message, &quot;)&quot;));

Likewise &quot;)&quot; =&gt; &apos;)&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700842</commentid>
    <comment_count>5</comment_count>
      <attachid>412135</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-10-22 14:40:18 -0700</bug_when>
    <thetext>Created attachment 412135
Patch (with debug logging)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702553</commentid>
    <comment_count>6</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-10-28 16:32:57 -0700</bug_when>
    <thetext>Upon investigation, some evaluations are getting stuck because we suspend as the inspected page (i.e, also the inspector frontend page) pauses.

Prior to this patch, pagePaused() did not call suspend(), so I think for WK1 purposes we have to be okay with evaluating message dispatches in the frontend page while it is paused.

This seems gross and we should really get rid of this in-process stuff altogether.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702556</commentid>
    <comment_count>7</comment_count>
      <attachid>412587</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-10-28 16:33:59 -0700</bug_when>
    <thetext>Created attachment 412587
InspectorFrontendAPIDispatcher protocol logging w/ backtrace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702788</commentid>
    <comment_count>8</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-10-29 11:17:21 -0700</bug_when>
    <thetext>(In reply to Brian Burg from comment #6)
&gt; Upon investigation, some evaluations are getting stuck because we suspend as
&gt; the inspected page (i.e, also the inspector frontend page) pauses.
&gt; 
&gt; Prior to this patch, pagePaused() did not call suspend(), so I think for WK1
&gt; purposes we have to be okay with evaluating message dispatches in the
&gt; frontend page while it is paused.
&gt; 
&gt; This seems gross and we should really get rid of this in-process stuff
&gt; altogether.

I fixed the suspend/unsuspend behavior and related assertions. It still seems like the frontend is getting hung / evaluations aren&apos;t happening:

Test code:

 InspectorProtocol.sendCommand(&quot;Runtime.evaluate&quot;, {expression: &quot;this.should.trigger.an.exception&quot;}, function(messageObject) { ...

Logging:

PASS: Paused in debugger: reason = &quot;Breakpoint&quot;

BJ&gt;&gt; Okay, it got to onBreakpointHit and its sending the Runtime.evaluate command on the bad expression

frontend: {&quot;method&quot;:&quot;Runtime.evaluate&quot;,&quot;params&quot;:{&quot;expression&quot;:&quot;TestPage.log(unescape(\&quot;PASS%3A%20Paused%20in%20debugger%3A%20reason%20%3D%20%22Breakpoint%22\&quot;));&quot;},&quot;id&quot;:6}
frontend: {&quot;method&quot;:&quot;Runtime.evaluate&quot;,&quot;params&quot;:{&quot;expression&quot;:&quot;this.should.trigger.an.exception&quot;},&quot;id&quot;:7}
FrontendAPIDispatcher[0x351c7fa78, queue depth=0] evaluating: InspectorFrontendAPI.dispatchMessageAsync({&quot;method&quot;:&quot;Debugger.scriptParsed&quot;,&quot;params&quot;:{&quot;scriptId&quot;:&quot;9&quot;,&quot;url&quot;:&quot;&quot;,&quot;startLine&quot;:0,&quot;startColumn&quot;:0,&quot;endLine&quot;:0,&quot;endColumn&quot;:96,&quot;isContentScript&quot;:false,&quot;module&quot;:false}})

BJ&gt;&gt; Hmm, we should see &apos;backend: &lt;the same message&gt;&apos; being logged for every InspectorFrontendAPI.dispatchMessageAsync, but from here onwards I don&apos;t see it:

FrontendAPIDispatcher[0x351c7fa78, queue depth=0] evaluating: InspectorFrontendAPI.dispatchMessageAsync({&quot;result&quot;:{&quot;result&quot;:{&quot;type&quot;:&quot;undefined&quot;},&quot;wasThrown&quot;:false},&quot;id&quot;:6})
FrontendAPIDispatcher[0x351c7fa78, queue depth=0] evaluating: InspectorFrontendAPI.dispatchMessageAsync({&quot;method&quot;:&quot;Debugger.scriptParsed&quot;,&quot;params&quot;:{&quot;scriptId&quot;:&quot;10&quot;,&quot;url&quot;:&quot;&quot;,&quot;startLine&quot;:0,&quot;startColumn&quot;:0,&quot;endLine&quot;:0,&quot;endColumn&quot;:32,&quot;isContentScript&quot;:false,&quot;module&quot;:false}})
FrontendAPIDispatcher[0x351c7fa78, queue depth=0] evaluating: InspectorFrontendAPI.dispatchMessageAsync({&quot;result&quot;:{&quot;result&quot;:{&quot;type&quot;:&quot;object&quot;,&quot;objectId&quot;:&quot;{\&quot;injectedScriptId\&quot;:1,\&quot;id\&quot;:65}&quot;,&quot;subtype&quot;:&quot;error&quot;,&quot;className&quot;:&quot;TypeError&quot;,&quot;description&quot;:&quot;TypeError: undefined is not an object (evaluating &apos;this.should.trigger&apos;)&quot;},&quot;wasThrown&quot;:true},&quot;id&quot;:7})

BJ&gt;&gt; At this point, three messages have been &apos;evaluated&apos; with nothing actually happening. Hmm.. Maybe I messed up the evaluation worlds?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702820</commentid>
    <comment_count>9</comment_count>
      <attachid>412672</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-10-29 12:26:56 -0700</bug_when>
    <thetext>Created attachment 412672
Patch v2.1 (for EWS)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702872</commentid>
    <comment_count>10</comment_count>
      <attachid>412672</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-29 14:36:48 -0700</bug_when>
    <thetext>Comment on attachment 412672
Patch v2.1 (for EWS)

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

&gt; Source/WebKit/WebProcess/Inspector/RemoteWebInspectorUI.cpp:75
&gt; +    m_frontendAPIDispatcher-&gt;dispatchCommand(&quot;updateFindString&quot;_s, { JSON::Value::create(builder.toString()) });

btw this should use `findString` (kinda shocked that this isn&apos;t throwing an error about &quot;unused variable `findString&quot; 🤔) and drop `builder` altogether

&gt; Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp:267
&gt; +    m_frontendAPIDispatcher-&gt;dispatchCommand(&quot;updateFindString&quot;_s, { JSON::Value::create(builder.toString()) });

ditto (RemoteWebInspectorUI.cpp:75)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702894</commentid>
    <comment_count>11</comment_count>
      <attachid>412692</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-10-29 15:27:00 -0700</bug_when>
    <thetext>Created attachment 412692
Patch v2.2 - fix some protocol test bugs

This patch addresses all known issues, want to see what the bots do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702981</commentid>
    <comment_count>12</comment_count>
      <attachid>412716</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-10-29 23:12:31 -0700</bug_when>
    <thetext>Created attachment 412716
Patch v2.3 - for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703103</commentid>
    <comment_count>13</comment_count>
      <attachid>412761</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-10-30 10:03:31 -0700</bug_when>
    <thetext>Created attachment 412761
Patch v2.4 - for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703129</commentid>
    <comment_count>14</comment_count>
      <attachid>412761</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-30 10:59:02 -0700</bug_when>
    <thetext>Comment on attachment 412761
Patch v2.4 - for EWS

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

r=me, with two fixes for `updateFindString` (I still don&apos;t know how that&apos;s not throwing a compiler error because of the unused variable o_O)

&gt; Source/WebCore/inspector/InspectorFrontendAPIDispatcher.cpp:85
&gt; +            if (!protectedThis-&gt;isSuspended())
&gt; +                return;

NIT: this check seems unnecessary since it&apos;s repeated in `unsuspend`

&gt; Source/WebCore/inspector/InspectorFrontendAPIDispatcher.h:65
&gt; +    EvaluationResult dispatchCommandSync(const String&amp; command, Vector&lt;Ref&lt;JSON::Value&gt;&gt;&amp;&amp; arguments = { });

NIT: wouldn&apos;t it be more accurate to call this `dispatchCommandWithResultSync`?

&gt; Source/WebCore/inspector/InspectorFrontendAPIDispatcher.h:66
&gt; +    WEBCORE_EXPORT void dispatchCommandWithResult(const String&amp; command, Vector&lt;Ref&lt;JSON::Value&gt;&gt;&amp;&amp; arguments, EvaluationResultHandler&amp;&amp;);

Seeing as `dispatchCommand` and `dispatchCommandWithResult` basically have the same logic, could we combine them and avoid the repeated logic?
```
    EvaluationResult dispatchCommandWithResultSync(const String&amp; command, Vector&lt;Ref&lt;JSON::Value&gt;&gt;&amp;&amp; arguments = { });
    WEBCORE_EXPORT void dispatchCommandWithResultAsync(const String&amp; command, Vector&lt;Ref&lt;JSON::Value&gt;&gt;&amp;&amp; arguments = { }, EvaluationResultHandler&amp;&amp; = { });
```

&gt; Source/WebCore/inspector/InspectorFrontendAPIDispatcher.h:79
&gt; +    void evaluateOrQueueExpression(const String&amp;, WTF::Optional&lt;EvaluationResultHandler&gt;&amp;&amp; = WTF::nullopt);

it shouldn&apos;t be necessary to use `Optional` as `CompletionHandler` already has a way to check &quot;not set&quot;

&gt; Source/WebCore/inspector/InspectorFrontendAPIDispatcher.h:85
&gt; +    Vector&lt;std::pair&lt;String, Optional&lt;EvaluationResultHandler&gt;&gt;&gt; m_queuedEvaluations;

ditto (:79)

&gt; Source/WebCore/inspector/InspectorFrontendClientLocal.cpp:-188
&gt; -    m_frontendLoaded = true;

Don&apos;t we still need this?  It&apos;s still used later.

&gt; Source/WebCore/inspector/InspectorFrontendClientLocal.cpp:331
&gt; +    auto result = m_frontendAPIDispatcher-&gt;dispatchCommandSync(&quot;isDebuggingEnabled&quot;_s, { });

NIT: don&apos;t need the `{ }`

&gt; Source/WebCore/inspector/InspectorFrontendClientLocal.cpp:348
&gt; +    auto result = m_frontendAPIDispatcher-&gt;dispatchCommandSync(&quot;isTimelineProfilingEnabled&quot;_s, { });

ditto (:331)

&gt; Source/WebCore/inspector/InspectorFrontendClientLocal.cpp:369
&gt; +    if (!result || !result.value().toBoolean(m_frontendAPIDispatcher-&gt;frontendGlobalObject()))
&gt; +        return false;
&gt; +
&gt; +    return true;

NIT: you could simplify this
```
    return result &amp;&amp; result.value().toBoolean(m_frontendAPIDispatcher-&gt;frontendGlobalObject());
```

&gt; Source/WebKit/WebProcess/Inspector/RemoteWebInspectorUI.cpp:75
&gt; +    m_frontendAPIDispatcher-&gt;dispatchCommand(&quot;updateFindString&quot;_s, { JSON::Value::create(builder.toString()) });

this should use `findString`, not `builder`

&gt; Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp:267
&gt; +    m_frontendAPIDispatcher-&gt;dispatchCommand(&quot;updateFindString&quot;_s, { JSON::Value::create(builder.toString()) });

this should use `findString`, not `builder`

&gt; LayoutTests/inspector/dom/dom-remove-events.html:74
&gt; +            delete InspectorProtocol.eventHandler[&quot;DOM.setChildNodes&quot;];

I wonder if we should just change `ProtocolTest.completeTest` to automatically nuke `InspectorProtocol.eventHandler` and dispatch `disable` commands to every domain 🤔</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703141</commentid>
    <comment_count>15</comment_count>
      <attachid>412761</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-10-30 11:43:16 -0700</bug_when>
    <thetext>Comment on attachment 412761
Patch v2.4 - for EWS

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

&gt;&gt; Source/WebCore/inspector/InspectorFrontendAPIDispatcher.cpp:85
&gt;&gt; +                return;
&gt; 
&gt; NIT: this check seems unnecessary since it&apos;s repeated in `unsuspend`

Ah right. I think it was added when unsuspend() was more strict and asserted a value change.

&gt;&gt; Source/WebCore/inspector/InspectorFrontendAPIDispatcher.h:79
&gt;&gt; +    void evaluateOrQueueExpression(const String&amp;, WTF::Optional&lt;EvaluationResultHandler&gt;&amp;&amp; = WTF::nullopt);
&gt; 
&gt; it shouldn&apos;t be necessary to use `Optional` as `CompletionHandler` already has a way to check &quot;not set&quot;

Oh. :til:

&gt;&gt; Source/WebCore/inspector/InspectorFrontendClientLocal.cpp:-188
&gt;&gt; -    m_frontendLoaded = true;
&gt; 
&gt; Don&apos;t we still need this?  It&apos;s still used later.

It&apos;s only used to guard calls to isProfilingEnabled and the like. Since frontendAPIDispatcher will check for m_frontendLoaded and return an error if it&apos;s not loaded, I think this can be removed entirely.

&gt;&gt; LayoutTests/inspector/dom/dom-remove-events.html:74
&gt;&gt; +            delete InspectorProtocol.eventHandler[&quot;DOM.setChildNodes&quot;];
&gt; 
&gt; I wonder if we should just change `ProtocolTest.completeTest` to automatically nuke `InspectorProtocol.eventHandler` and dispatch `disable` commands to every domain 🤔

It would be better to nuke Protocol tests altogether, but alas, I have no more time to fiddle with old tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703142</commentid>
    <comment_count>16</comment_count>
      <attachid>412780</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-10-30 11:43:57 -0700</bug_when>
    <thetext>Created attachment 412780
Patch v2.5 - for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703190</commentid>
    <comment_count>17</comment_count>
      <attachid>412793</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-10-30 13:44:54 -0700</bug_when>
    <thetext>Created attachment 412793
Patch v2.6 - for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703249</commentid>
    <comment_count>18</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-30 16:30:13 -0700</bug_when>
    <thetext>ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703251</commentid>
    <comment_count>19</comment_count>
      <attachid>412793</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-30 16:30:38 -0700</bug_when>
    <thetext>Comment on attachment 412793
Patch v2.6 - for EWS

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703260</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-30 16:56:30 -0700</bug_when>
    <thetext>Committed r269210: &lt;https://trac.webkit.org/changeset/269210&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412793.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411613</attachid>
            <date>2020-10-16 14:03:20 -0700</date>
            <delta_ts>2020-10-22 14:40:17 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-217835-20201016140319.patch</filename>
            <type>text/plain</type>
            <size>51539</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWEzNjUyYmI4OWI5MTcx
NGRjYjM2NzFjMzNlYWZiNzg4NTBiZTRiNC4uMmY0ZTBlYmZlNjBjYzk0MDA0NTQ3NTQ1ZmMzOWNi
OGRlNTBjZjY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDIwLTEwLTE2ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUg
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIHRvIFdlYkNvcmUsIGNsZWFuIHVwIHVzZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgzNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzODQ0MDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRoZSBkaXNwYXRjaGVyIGFzIHBhcnQg
b2YgdGhlIEluc3BlY3RvckZyb250ZW5kQ2xpZW50IEFQSSBzbyB0aGF0IG90aGVyIGNvZGUKKyAg
ICAgICAgY2FuIHVzZSB0aGUgZGlzcGF0Y2hlciByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQncyBh
IFdlYkluc3BlY3RvclVJIG9yIFJlbW90ZVdlYkluc3BlY3RvclVJLgorCisgICAgICAgIEFkZCBh
biBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgaW5zdGFuY2UgYW5kIGdldHRlciB0byBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLgorCisgICAgICAgIEFkb3B0IHRoZSBKU09OVmFs
dWUtYmFzZWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpkaXNwYXRjaCgpIG1ldGhv
ZAorICAgICAgICBpbiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLiBSZW1vdmUgdGhlIHJl
ZHVuZGFudCBwYXJhbGxlbCBxdWV1aW5nIGltcGxlbWVudGF0aW9uLgorICAgICAgICBSZW1vdmUg
cmVkdW5kYW50IHB1YmxpYyBtZXRob2RzIHRoYXQgYXJlIGF2YWlsYWJsZSBvbiBJbnNwZWN0b3JG
cm9udGVuZEFQSURpc3BhdGNoZXIuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIE1vdmVkIGZpbGVz
LgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
cik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OnJl
c2V0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6
ZnJvbnRlbmRMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5k
QVBJRGlzcGF0Y2hlcjo6dW5zdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZy
b250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2hDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2hNZXNzYWdlQXN5bmMpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0
ZU9yUXVldWVFeHByZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5k
QVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVRdWV1ZWRFeHByZXNzaW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmV2YWx1YXRlRXhwcmVzc2lvbkZv
clRlc3RpbmcpOgorICAgICAgICBBZGQgbmV3IGRpc3BhdGNoKCkgbWV0aG9kLiBSZW1vdmUgb3Ro
ZXIgZGlzcGF0Y2ggbWV0aG9kcyB0aGF0IGNhbiBiZSBleHByZXNzZWQKKyAgICAgICAgdXNpbmcg
dGhlIG5ldyBKU09OOjpWYWx1ZS1iYXNlZCBtZXRob2QuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
ci5oLgorICAgICAgICBBZGQgbmV3IGRpc3BhdGNoKCkgbWV0aG9kIHdoaWNoIHRha2VzIGEgdmVj
dG9yIG9mIEpTT046OlZhbHVlIG9iamVjdHMgYW5kCisgICAgICAgIHNlcmlhbGl6ZXMgdGhlbSBp
bnRvIGNvbW1hbmQgYXJndW1lbnRzIGZvciB0aGUgZnJvbnRlbmQuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWw6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZnJvbnRlbmRMb2FkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RG9j
a2luZ1VuYXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWw6OnNldEF0dGFjaGVkV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldERlYnVnZ2luZ0VuYWJsZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0VGltZWxpbmVQcm9maWxpbmdF
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6
OnN0YXJ0UHJvZmlsaW5nSmF2YVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsOjpzdG9wUHJvZmlsaW5nSmF2YVNjcmlwdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzaG93Q29uc29sZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzaG93UmVzb3VyY2Vz
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNob3dN
YWluUmVzb3VyY2VGb3JGcmFtZSk6CisgICAgICAgIFVzZSBJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXIgdG8gZGlzcGF0Y2ggY29tbWFuZHMgdG8gdGhlIGZyb250ZW5kLgorCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNw
YXRjaE1lc3NhZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbDo6ZGlzcGF0Y2hNZXNzYWdlQXN5bmMpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZXZhbHVhdGVPbkxvYWQpOiBE
ZWxldGVkLgorICAgICAgICBUaGVzZSBhcmUgcmVkdW5kYW50IHdpdGggSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R1YkZyb250ZW5kOjpzZW5kTWVzc2FnZVRvRnJvbnRl
bmQpOiBVc2UgZnJvbnRlbmQgZGlzcGF0Y2hlciBkaXJlY3RseS4KKwogMjAyMC0xMC0xNiAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRp
b25dIEFsbG93IGltYWdlcyBpbiBpbmxpbmUgY29udGVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4MTg5MjJmMjAz
NWNlYzI2Y2UzZDBmY2MzNzg2MjJkYmQ4OWYxZWY4Li4wMWFhMzQzOWI4NGFlY2IwYzdkYjU2OWVj
MGRhOWQ1ZjQwMWJlN2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTEwLTE2ICBC
cmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1v
dmUgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIHRvIFdlYkNvcmUsIGNsZWFuIHVwIHVz
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgz
NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzODQ0MDc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRvcHQgdGhlIEpTT05WYWx1ZS1iYXNlZCBJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoKCkgbWV0aG9kCisgICAgICAg
IGluIFdlYkluc3BlY3RvclVJIGFuZCBSZW1vdGVJbnNwZWN0b3JVSSBtZXRob2RzIHRoYXQgZGlz
cGF0Y2ggdG8gdGhlIGZyb250ZW5kLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAg
ICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IE1vdmUgZmlsZXMuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OlJlbW90ZVdlYkluc3BlY3RvclVJKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmluaXRpYWxpemUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6dXBkYXRlRmluZFN0cmluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpkaWRTYXZlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmRpZEFwcGVuZCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpmcm9udGVuZExvYWRlZCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZSk6
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OldlYkluc3BlY3RvclVJKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSW5zcGVjdG9yVUk6OnNldERvY2tTaWRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5z
cGVjdG9yVUk6OnNldERvY2tpbmdVbmF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvclVJOjpzZXRJc1Zpc2libGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JV
STo6dXBkYXRlRmluZFN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpz
ZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3Bl
Y3RvclVJOjpzaG93Q29uc29sZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpz
aG93UmVzb3VyY2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnNob3dNYWlu
UmVzb3VyY2VGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzdGFy
dFBhZ2VQcm9maWxpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c3RvcFBh
Z2VQcm9maWxpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c3RhcnRFbGVt
ZW50U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnN0b3BFbGVt
ZW50U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OmRpZFNhdmUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6ZGlkQXBwZW5kKToKKwogMjAyMC0x
MC0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1
cHBvcnQgZm9yIEdQVVByb2Nlc3MgV2ViQXVkaW8gbWVkaWEgZWxlbWVudCBwcm92aWRlcnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvY2YvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9jZi9DaGFuZ2VMb2cKaW5kZXggMDZlNzk2MGVmZjZlYzA2NjE0YWVkZWRkYTNkZTBi
YTc3MTI0YTEzMC4uN2FlMWY5NDc3NjhjMzg3NzgxMDAzMWM4ODEwMmYzMjY1MjBlMjkwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9jZi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9jZi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0xMC0xNiAgQnJp
YW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3Zl
IEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlciB0byBXZWJDb3JlLCBjbGVhbiB1cCB1c2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc4MzUK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzg0NDA3PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50Q0YuY3BwOgorICAgICAgICAoV2ViSW5zcGVjdG9yQ2xpZW50OjpzZW5kTWVzc2FnZVRv
RnJvbnRlbmQpOgorCiAyMDE5LTA4LTE4ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CiAKICAgICAgICAgW1dURl0gQWRkIG1ha2VVbmlxdWU8VD4sIHdoaWNoIGVuc3VyZXMgVCBp
cyBmYXN0LWFsbG9jYXRlZCwgbWFrZVVuaXF1ZSAvIG1ha2VVbmlxdWVXaXRob3V0RmFzdE1hbGxv
Y0NoZWNrIHBhcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMDQ5NjgyMWUxM2VmZTI1N2YxM2I4NjNiMGEx
ZjVlZWRiMDEyZDM2Ni4uMTE1NTkxYmE3NDNkNjgwNDQwOTIxOWUwYjIyNGYwNzNlNjM3YTNjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTEzODcsNiArMTM4Nyw3IEBAIGluc3BlY3Rvci9JbnNwZWN0b3JB
dWRpdFJlc291cmNlc09iamVjdC5jcHAKIGluc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMuY3BwCiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKIGluc3BlY3Rvci9JbnNwZWN0b3JEYXRh
YmFzZVJlc291cmNlLmNwcAoraW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
ci5jcHAKIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAogaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKIGluc3BlY3Rvci9JbnNwZWN0b3JIaXN0b3J5
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDhkY2ZhZTUxMzkwNTllM2VjMGNkMTcxMDk5YTc3ZjQzNzFjNDQ0YzYuLmIxZDhi
YTNkNTQyNDcyOGVlZTIwZmVkZDZiMjUxNmQ0ODg1MDhiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI5NzAsNiArMjk3MCw3
IEBACiAJCTk4Q0U0MzJBMTI5RTAwRTUwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OENFNDMyOTEyOUUwMEU1MDA1
ODIxREMgLyogTGlua0xvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTk4RUIxRjk1MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRl
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOThFQjFG
OTQxMzEzRkUwNTAwRDBFMUVBIC8qIE5vdEltcGxlbWVudGVkLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTkyMDM5ODMxOEI5NUJDNjAwQjM5QUY5
IC8qIFVzZXJJbnB1dEJyaWRnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTkyMDM5ODExOEI5NUJDNjAwQjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk5NEM2
MDNBMjUzQTI3NzMwMEJERjA2MCAvKiBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NEM2MDM3MjUz
QTI3NzIwMEJERjA2MCAvKiBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5OTZFNTlERjFERjAx
MjhEMDA2NjEyQjkgLyogTmF2aWdhdG9yV2ViRHJpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZFNTlEQzFERjAwRDkwMDA2NjEyQjkgLyogTmF2
aWdhdG9yV2ViRHJpdmVyLmggKi87IH07CiAJCTk5RDFCMkQzMjNBQzE0MzEwMDgxMUNGMCAvKiBJ
bnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTlEMUIyRDEyM0FDMTQzMDAwODExQ0YwIC8qIEluc3BlY3RvckRlYnVn
Z2FibGVUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOUE1MjhFODQxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUE1MjhFODIxN0Q3RjUy
RjAwQUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTcxNSw2ICsxMTcxNiw4IEBACiAJCTk5MDhCMEZG
MUJDQUQwN0QwMEVEMzU3MiAvKiBSZWFkYWJsZVN0cmVhbUJZT0JSZWFkZXJCdWlsdGlucy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZWFkYWJsZVN0cmVhbUJZT0JSZWFkZXJC
dWlsdGlucy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9SZWFkYWJsZVN0cmVhbUJZ
T0JSZWFkZXJCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9Owog
CQk5OTIwMzk4MDE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklucHV0QnJpZGdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJJbnB1dEJyaWRnZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MjAzOTgxMThCOTVCQzYwMEIzOUFGOSAvKiBVc2Vy
SW5wdXRCcmlkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlcklucHV0
QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NEM2MDM3MjUzQTI3NzIw
MEJERjA2MCAvKiBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NEM2MDM5MjUzQTI3NzMwMEJERjA2MCAvKiBJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk2RTU5REIxREYwMEQ5MDAwNjYxMkI5IC8qIE5hdmln
YXRvcldlYkRyaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBO
YXZpZ2F0b3JXZWJEcml2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTZF
NTlEQzFERjAwRDkwMDA2NjEyQjkgLyogTmF2aWdhdG9yV2ViRHJpdmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRvcldlYkRyaXZlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OTZFNTlERDFERjAwRDkwMDA2NjEyQjkgLyogTmF2aWdhdG9yK1dl
YkRyaXZlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gIk5hdmlnYXRvcitXZWJEcml2ZXIu
aWRsIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MzEyLDYgKzE4MzE1LDggQEAK
IAkJCQk0MUYwNjIxMzBGNUYxOTI2MDBBMDdFQUMgLyogSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJj
ZS5jcHAgKi8sCiAJCQkJNDFGMDYyMTIwRjVGMTkyNjAwQTA3RUFDIC8qIEluc3BlY3RvckRhdGFi
YXNlUmVzb3VyY2UuaCAqLywKIAkJCQk5OUQxQjJEMTIzQUMxNDMwMDA4MTFDRjAgLyogSW5zcGVj
dG9yRGVidWdnYWJsZVR5cGUuaCAqLywKKwkJCQk5OTRDNjAzOTI1M0EyNzczMDBCREYwNjAgLyog
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcCAqLywKKwkJCQk5OTRDNjAzNzI1M0Ey
NzcyMDBCREYwNjAgLyogSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmggKi8sCiAJCQkJ
RjM0NEM3MTIxMTI1QjgyQzAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50LmggKi8s
CiAJCQkJRjM0NEM3NTcxMTI5NEZGNjAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWwuY3BwICovLAogCQkJCUYzNDRDNzUyMTEyOTREOUQwMEYyNkVFRSAvKiBJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsLmggKi8sCkBAIC0zNDcxMSw2ICszNDcxNiw3IEBACiAJCQkJRTFF
RThCOUQyNDEzMTk1MDAwRTc5NEQ2IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxRUU4QkEzMjQxMzE5NjMwMEU3OTRENiAvKiBXZWJYUlNlc3Npb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxRUU4QjdEMjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlNwYWNlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5OTRDNjAzQTI1M0EyNzczMDBCREYwNjAgLyogSW5zcGVjdG9y
RnJvbnRlbmRBUElEaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUVFOEI4OTI0MTMx
OTFGMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRUU4Qjg3
MjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRUU4
Qjc2MjQxMzE5MUYwMEU3OTRENiAvKiBXZWJYUlZpZXdlclBvc2UuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDllMTNmM2Q1YjY5NWZhOTBmMjIyMTQ1
ZTBmNGZiMjM0YmEyMzIyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAKQEAgLTAsMCArMSwxMjMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbnNwZWN0
b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCIKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTY3Jp
cHRTdGF0ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0luc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlcjo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyKFBhZ2UmIGZyb250ZW5k
UGFnZSkKKyAgICA6IG1fZnJvbnRlbmRQYWdlKGZyb250ZW5kUGFnZSkKK3sKK30KKwordm9pZCBJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OnJlc2V0KCkKK3sKKyAgICBtX2Zyb250ZW5k
TG9hZGVkID0gZmFsc2U7CisgICAgbV9zdXNwZW5kZWQgPSBmYWxzZTsKKyAgICBtX3F1ZXVlZEV4
cHJlc3Npb25zLmNsZWFyKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRj
aGVyOjpmcm9udGVuZExvYWRlZCgpCit7CisgICAgbV9mcm9udGVuZExvYWRlZCA9IHRydWU7CisK
KyAgICBldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyOjpzdXNwZW5kKCkKK3sKKyAgICBBU1NFUlQobV9mcm9udGVuZExv
YWRlZCk7CisgICAgQVNTRVJUKCFtX3N1c3BlbmRlZCk7CisgICAgQVNTRVJUKG1fcXVldWVkRXhw
cmVzc2lvbnMuaXNFbXB0eSgpKTsKKworICAgIG1fc3VzcGVuZGVkID0gdHJ1ZTsKK30KKwordm9p
ZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OnVuc3VzcGVuZCgpCit7CisgICAgQVNT
RVJUKG1fc3VzcGVuZGVkKTsKKworICAgIG1fc3VzcGVuZGVkID0gZmFsc2U7CisKKyAgICBldmFs
dWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyOjpkaXNwYXRjaENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kLCBWZWN0b3I8
UmVmPEpTT046OlZhbHVlPj4mJiBhcmd1bWVudHMpCit7CisgICAgU3RyaW5nQnVpbGRlciBleHBy
ZXNzaW9uOworICAgIGV4cHJlc3Npb24uYXBwZW5kTGl0ZXJhbCgiSW5zcGVjdG9yRnJvbnRlbmRB
UEkuZGlzcGF0Y2goW1wiIik7CisgICAgZXhwcmVzc2lvbi5hcHBlbmQoY29tbWFuZCk7CisgICAg
ZXhwcmVzc2lvbi5hcHBlbmRMaXRlcmFsKCJcIiIpOworCisgICAgZm9yIChhdXRvJiBhcmd1bWVu
dCA6IGFyZ3VtZW50cykgeworICAgICAgICBleHByZXNzaW9uLmFwcGVuZExpdGVyYWwoIiwgIik7
CisgICAgICAgIGFyZ3VtZW50LT53cml0ZUpTT04oZXhwcmVzc2lvbik7CisgICAgfQorCisgICAg
ZXhwcmVzc2lvbi5hcHBlbmRMaXRlcmFsKCJdKSIpOworICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJl
c3Npb24oZXhwcmVzc2lvbi50b1N0cmluZygpKTsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoTWVzc2FnZUFzeW5jKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKK3sKKyAgICBldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKG1ha2VTdHJpbmcoIkluc3BlY3Rv
ckZyb250ZW5kQVBJLmRpc3BhdGNoTWVzc2FnZUFzeW5jKCIsIG1lc3NhZ2UsICIpIikpOworfQor
Cit2b2lkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVPclF1ZXVlRXhw
cmVzc2lvbihjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24pCit7CisgICAgaWYgKCFtX2Zyb250ZW5k
TG9hZGVkIHx8IG1fc3VzcGVuZGVkKSB7CisgICAgICAgIG1fcXVldWVkRXhwcmVzc2lvbnMuYXBw
ZW5kKGV4cHJlc3Npb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKG1f
cXVldWVkRXhwcmVzc2lvbnMuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlQoIW1fZnJvbnRlbmRQYWdl
Lm1haW5GcmFtZSgpLnNjcmlwdCgpLmlzUGF1c2VkKCkpOworICAgIG1fZnJvbnRlbmRQYWdlLm1h
aW5GcmFtZSgpLnNjcmlwdCgpLmV4ZWN1dGVTY3JpcHRJZ25vcmluZ0V4Y2VwdGlvbihleHByZXNz
aW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmV2YWx1YXRl
UXVldWVkRXhwcmVzc2lvbnMoKQoreworICAgIGlmIChtX3F1ZXVlZEV4cHJlc3Npb25zLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBxdWV1ZWRFeHByZXNzaW9ucyA9IHN0
ZDo6ZXhjaGFuZ2UobV9xdWV1ZWRFeHByZXNzaW9ucywgeyB9KTsKKyAgICBmb3IgKGNvbnN0IFN0
cmluZyYgZXhwcmVzc2lvbiA6IHF1ZXVlZEV4cHJlc3Npb25zKSB7CisgICAgICAgIEFTU0VSVCgh
bV9mcm9udGVuZFBhZ2UubWFpbkZyYW1lKCkuc2NyaXB0KCkuaXNQYXVzZWQoKSk7CisgICAgICAg
IG1fZnJvbnRlbmRQYWdlLm1haW5GcmFtZSgpLnNjcmlwdCgpLmV4ZWN1dGVTY3JpcHRJZ25vcmlu
Z0V4Y2VwdGlvbihleHByZXNzaW9uKTsKKyAgICB9Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKGNvbnN0IFN0cmlu
ZyYgZXhwcmVzc2lvbikKK3sKKyAgICBldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKGV4cHJlc3Np
b24pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yYzFiODQ4ZDJkMDYxYzI0MzRmNTMzNzE5NzIwZWNkNmI3NWE4NmZhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlci5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQYWdlOworCitjbGFzcyBX
RUJDT1JFX0VYUE9SVCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgZmluYWwgeworcHVi
bGljOgorICAgIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcihQYWdlJik7CisKKyAgICB2
b2lkIHJlc2V0KCk7CisgICAgdm9pZCBmcm9udGVuZExvYWRlZCgpOworCisgICAgdm9pZCBzdXNw
ZW5kKCk7CisgICAgdm9pZCB1bnN1c3BlbmQoKTsKKworICAgIHZvaWQgZGlzcGF0Y2hDb21tYW5k
KGNvbnN0IFN0cmluZyYgY29tbWFuZCwgVmVjdG9yPFJlZjxKU09OOjpWYWx1ZT4+JiYgYXJndW1l
bnRzKTsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUFzeW5jKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSk7CisKKyAgICB2b2lkIGV2YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoY29uc3QgU3RyaW5n
Jik7Citwcml2YXRlOgorICAgIHZvaWQgZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbihjb25zdCBT
dHJpbmcmKTsKKyAgICB2b2lkIGV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKKworICAgIFBh
Z2UmIG1fZnJvbnRlbmRQYWdlOworICAgIFZlY3RvcjxTdHJpbmc+IG1fcXVldWVkRXhwcmVzc2lv
bnM7CisgICAgYm9vbCBtX2Zyb250ZW5kTG9hZGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc3Vz
cGVuZGVkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKaW5kZXgg
NGZlODhiN2U4ZjhiOGIwNzRlMTc4ZDA0NThhMTIwYmJiNWNlZjVkOC4uNDRiZDI2MWUzN2YxM2Ey
NjlhYTA5MWY3M2FkOTkwMzUxMGM4YzBiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKQEAgLTQxLDYgKzQxLDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmxvYXRSZWN0OworY2xhc3MgSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyOwogCiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudCB7CiBwdWJs
aWM6CkBAIC0xMDksNiArMTEwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWdlVW5w
YXVzZWQoKSB7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzZW5kTWVzc2Fn
ZVRvQmFja2VuZChjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXImIGZyb250ZW5kQVBJRGlzcGF0Y2hlcigp
ID0gMDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgYm9vbCBpc1VuZGVyVGVzdCgpID0g
MDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKaW5kZXggY2NlNTkwMzVlZGU1NzBhNjQ5YTEyNjc2YzM5
MzIyZDQ4ZTg0ZDhmNC4uMDBkYTYyZThiYmFjYzQ5NDYwMTg1YmQxYzA2YzVjNWRlMmMwOTYzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsLmNwcApAQCAtMTUwLDYgKzE1MCw3IEBAIEluc3BlY3RvckZyb250ZW5k
Q2xpZW50TG9jYWw6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwoSW5zcGVjdG9yQ29udHJv
bGxlcioKICAgICAsIG1fc2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpCiAgICAgLCBtX2RvY2tT
aWRlKERvY2tTaWRlOjpVbmRvY2tlZCkKICAgICAsIG1fZGlzcGF0Y2hUYXNrKEluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaFRhc2s6OmNyZWF0ZShpbnNwZWN0ZWRQYWdlQ29udHJvbGxlcikpCisgICAg
LCBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcigqZnJvbnRlbmRQYWdlKQogewogICAgIG1fZnJvbnRl
bmRQYWdlLT5zZXR0aW5ncygpLnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyh0cnVlKTsK
IH0KQEAgLTE4NSwxMCArMTg2LDggQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
Ojpmcm9udGVuZExvYWRlZCgpCiAgICAgLy8gVGh1cyBpZiB3ZSBjYWxsIGNhbkF0dGFjaFdpbmRv
dyBmaXJzdCB3ZSBjYW4gYXZvaWQgdGhpcyBwcm9ibGVtLiBUaGlzIGNoYW5nZSBkb2VzIG5vdCBj
YXVzZSBhbnkgcmVncmVzc2lvbnMgb24gTWFjLgogICAgIHNldERvY2tpbmdVbmF2YWlsYWJsZSgh
Y2FuQXR0YWNoV2luZG93KCkpOwogICAgIGJyaW5nVG9Gcm9udCgpOwotICAgIG1fZnJvbnRlbmRM
b2FkZWQgPSB0cnVlOwotICAgIGZvciAoYXV0byYgZXZhbHVhdGUgOiBtX2V2YWx1YXRlT25Mb2Fk
KQotICAgICAgICBldmFsdWF0ZU9uTG9hZChldmFsdWF0ZSk7Ci0gICAgbV9ldmFsdWF0ZU9uTG9h
ZC5jbGVhcigpOworCisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZnJvbnRlbmRMb2FkZWQo
KTsKIH0KIAogVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiBJbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsOjp1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkgY29uc3QKQEAgLTIyNyw3
ICsyMjYsNyBAQCBib29sIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNhbkF0dGFjaFdp
bmRvdygpCiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RG9ja2luZ1Vu
YXZhaWxhYmxlKGJvb2wgdW5hdmFpbGFibGUpCiB7Ci0gICAgZGlzcGF0Y2gobWFrZVN0cmluZygi
W1wic2V0RG9ja2luZ1VuYXZhaWxhYmxlXCIsICIsIHVuYXZhaWxhYmxlID8gInRydWUiIDogImZh
bHNlIiwgJ10nKSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5k
KCJzZXREb2NraW5nVW5hdmFpbGFibGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh1bmF2YWls
YWJsZSkgfSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6Y2hhbmdl
QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQgaGVpZ2h0KQpAQCAtMjk3LDcgKzI5Niw3IEBA
IHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0QXR0YWNoZWRXaW5kb3coRG9j
a1NpZGUgZG9ja1NpZGUpCiAKICAgICBtX2RvY2tTaWRlID0gZG9ja1NpZGU7CiAKLSAgICBkaXNw
YXRjaChtYWtlU3RyaW5nKCJbXCJzZXREb2NrU2lkZVwiLCBcIiIsIHNpZGUsICJcIl0iKSk7Cisg
ICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXREb2NrU2lkZSJf
cywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHNpZGUpIH0pOwogfQogCiB2b2lkIEluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWw6OnJlc3RvcmVBdHRhY2hlZFdpbmRvd0hlaWdodCgpCkBAIC0zMjEs
NyArMzIwLDcgQEAgYm9vbCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjppc0RlYnVnZ2lu
Z0VuYWJsZWQoKQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldERlYnVn
Z2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewotICAgIGRpc3BhdGNoKG1ha2VTdHJpbmcoIltc
InNldERlYnVnZ2luZ0VuYWJsZWRcIiwgIiwgZW5hYmxlZCA/ICJ0cnVlIiA6ICJmYWxzZSIsICdd
JykpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0RGVi
dWdnaW5nRW5hYmxlZCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKGVuYWJsZWQpIH0pOwogfQog
CiBib29sIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmlzVGltZWxpbmVQcm9maWxpbmdF
bmFibGVkKCkKQEAgLTMzMyw3ICszMzIsNyBAQCBib29sIEluc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWw6OmlzVGltZWxpbmVQcm9maWxpbmdFbmFibGVkKCkKIAogdm9pZCBJbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsOjpzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVk
KQogewotICAgIGRpc3BhdGNoKG1ha2VTdHJpbmcoIltcInNldFRpbWVsaW5lUHJvZmlsaW5nRW5h
YmxlZFwiLCAiLCBlbmFibGVkID8gInRydWUiIDogImZhbHNlIiwgJ10nKSk7CisgICAgbV9mcm9u
dGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXRUaW1lbGluZVByb2ZpbGluZ0Vu
YWJsZWQiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShlbmFibGVkKSB9KTsKIH0KIAogYm9vbCBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjppc1Byb2ZpbGluZ0phdmFTY3JpcHQoKQpAQCAt
MzQ1LDI4ICszNDQsMjggQEAgYm9vbCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjppc1By
b2ZpbGluZ0phdmFTY3JpcHQoKQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6
OnN0YXJ0UHJvZmlsaW5nSmF2YVNjcmlwdCgpCiB7Ci0gICAgZGlzcGF0Y2goIltcInN0YXJ0UHJv
ZmlsaW5nSmF2YVNjcmlwdFwiXSIpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3Bh
dGNoQ29tbWFuZCgic3RhcnRQcm9maWxpbmdKYXZhU2NyaXB0Il9zLCB7IH0pOwogfQogCiB2b2lk
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnN0b3BQcm9maWxpbmdKYXZhU2NyaXB0KCkK
IHsKLSAgICBkaXNwYXRjaCgiW1wic3RvcFByb2ZpbGluZ0phdmFTY3JpcHRcIl0iKTsKKyAgICBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInN0b3BQcm9maWxpbmdKYXZh
U2NyaXB0Il9zLCB7IH0pOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6
OnNob3dDb25zb2xlKCkKIHsKLSAgICBkaXNwYXRjaCgiW1wic2hvd0NvbnNvbGVcIl0iKTsKKyAg
ICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNob3dDb25zb2xlIl9z
LCB7IH0pOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNob3dSZXNv
dXJjZXMoKQogewotICAgIGRpc3BhdGNoKCJbXCJzaG93UmVzb3VyY2VzXCJdIik7CisgICAgbV9m
cm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzaG93UmVzb3VyY2VzIl9zLCB7
IH0pOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNob3dNYWluUmVz
b3VyY2VGb3JGcmFtZShGcmFtZSogZnJhbWUpCiB7CiAgICAgU3RyaW5nIGZyYW1lSWQgPSBtX2lu
c3BlY3RlZFBhZ2VDb250cm9sbGVyLT5lbnN1cmVQYWdlQWdlbnQoKS5mcmFtZUlkKGZyYW1lKTsK
LSAgICBkaXNwYXRjaChtYWtlU3RyaW5nKCJbXCJzaG93TWFpblJlc291cmNlRm9yRnJhbWVcIiwg
XCIiLCBmcmFtZUlkLCAiXCJdIikpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3Bh
dGNoQ29tbWFuZCgic2hvd01haW5SZXNvdXJjZUZvckZyYW1lIl9zLCB7IEpTT046OlZhbHVlOjpj
cmVhdGUoZnJhbWVJZCkgfSk7CiB9CiAKIHVuc2lnbmVkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWw6OmNvbnN0cmFpbmVkQXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQgcHJlZmVycmVk
SGVpZ2h0LCB1bnNpZ25lZCB0b3RhbFdpbmRvd0hlaWdodCkKQEAgLTM5NCw0NiArMzkzLDEyIEBA
IHVuc2lnbmVkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Omluc3BlY3Rpb25MZXZlbCgp
IGNvbnN0CiAgICAgcmV0dXJuIG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXItPmluc3BlY3Rpb25M
ZXZlbCgpICsgMTsKIH0KIAotdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNw
YXRjaChjb25zdCBTdHJpbmcmIHNpZ25hdHVyZSkKLXsKLSAgICBBU1NFUlQoIXNpZ25hdHVyZS5p
c0VtcHR5KCkpOwotICAgIEFTU0VSVChzaWduYXR1cmUuc3RhcnRzV2l0aCgnWycpKTsKLSAgICBB
U1NFUlQoc2lnbmF0dXJlLmVuZHNXaXRoKCddJykpOwotCi0gICAgZXZhbHVhdGVPbkxvYWQoIklu
c3BlY3RvckZyb250ZW5kQVBJLmRpc3BhdGNoKCIgKyBzaWduYXR1cmUgKyAiKSIpOwotfQotCi12
b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmRpc3BhdGNoTWVzc2FnZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2VPYmplY3QpCi17Ci0gICAgQVNTRVJUKCFtZXNzYWdlT2JqZWN0LmlzRW1w
dHkoKSk7Ci0KLSAgICBldmFsdWF0ZU9uTG9hZCgiSW5zcGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0
Y2hNZXNzYWdlKCIgKyBtZXNzYWdlT2JqZWN0ICsgIikiKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaE1lc3NhZ2VBc3luYyhjb25zdCBTdHJpbmcmIG1l
c3NhZ2VPYmplY3QpCi17Ci0gICAgQVNTRVJUKCFtZXNzYWdlT2JqZWN0LmlzRW1wdHkoKSk7Ci0K
LSAgICBldmFsdWF0ZU9uTG9hZCgiSW5zcGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0Y2hNZXNzYWdl
QXN5bmMoIiArIG1lc3NhZ2VPYmplY3QgKyAiKSIpOwotfQotCiBib29sIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWw6OmV2YWx1YXRlQXNCb29sZWFuKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lv
bikKIHsKICAgICBhdXRvJiBzdGF0ZSA9ICptYWluV29ybGRFeGVjU3RhdGUoJm1fZnJvbnRlbmRQ
YWdlLT5tYWluRnJhbWUoKSk7CiAgICAgcmV0dXJuIG1fZnJvbnRlbmRQYWdlLT5tYWluRnJhbWUo
KS5zY3JpcHQoKS5leGVjdXRlU2NyaXB0SWdub3JpbmdFeGNlcHRpb24oZXhwcmVzc2lvbikudG9X
VEZTdHJpbmcoJnN0YXRlKSA9PSAidHJ1ZSI7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbDo6ZXZhbHVhdGVPbkxvYWQoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQotewot
ICAgIGlmICghbV9mcm9udGVuZExvYWRlZCkgewotICAgICAgICBtX2V2YWx1YXRlT25Mb2FkLmFw
cGVuZChleHByZXNzaW9uKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEpTQzo6U3Vz
cGVuZEV4Y2VwdGlvblNjb3BlIHNjb3BlKCZtX2Zyb250ZW5kUGFnZS0+aW5zcGVjdG9yQ29udHJv
bGxlcigpLnZtKCkpOwotICAgIG1fZnJvbnRlbmRQYWdlLT5tYWluRnJhbWUoKS5zY3JpcHQoKS5l
dmFsdWF0ZUlnbm9yaW5nRXhjZXB0aW9uKFNjcmlwdFNvdXJjZUNvZGUoZXhwcmVzc2lvbikpOwot
fQotCiBQYWdlKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjppbnNwZWN0ZWRQYWdlKCkg
Y29uc3QKIHsKICAgICBpZiAoIW1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwu
aAppbmRleCA0M2EzZWNkYzc2OGQwZTBmZTczYWRmYTY1ZWUzYWYzZTc3MTNiODY4Li5jMzk4ZmI4
N2ZmYjAwYThjOTQ3YzJkZTY3NDhkNTY1Y2E5MGFlOWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgKQEAgLTMx
LDYgKzMxLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBA
IC05MSw2ICs5Miw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBpbnNw
ZWN0aW9uTGV2ZWwoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgYmFja2VuZENvbW1hbmRzVVJM
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gU3RyaW5nKCk7IH07CiAKKyAgICBJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXImIGZyb250ZW5kQVBJRGlzcGF0Y2hlcigpIGZpbmFsIHsgcmV0dXJu
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyOyB9CisgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBjYW5BdHRhY2hXaW5kb3coKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERvY2tpbmdV
bmF2YWlsYWJsZShib29sKTsKIApAQCAtMTE5LDEwICsxMjIsNiBAQCBwdWJsaWM6CiAgICAgV0VC
Q09SRV9FWFBPUlQgUGFnZSogaW5zcGVjdGVkUGFnZSgpIGNvbnN0OwogICAgIFBhZ2UqIGZyb250
ZW5kUGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJvbnRlbmRQYWdlOyB9CiAKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGRpc3BhdGNoKGNvbnN0IFN0cmluZyYgc2lnbmF0dXJlKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGRpc3BhdGNoTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2VPYmpl
Y3QpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0Y2hNZXNzYWdlQXN5bmMoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlT2JqZWN0KTsKLQogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBz
ZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkKSA9IDA7CkBAIC0xMzIsNyArMTMxLDYgQEAg
cHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIGJvb2wgZXZhbHVhdGVBc0Jvb2xlYW4oY29uc3Qg
U3RyaW5nJiBleHByZXNzaW9uKTsKLSAgICB2b2lkIGV2YWx1YXRlT25Mb2FkKGNvbnN0IFN0cmlu
ZyYgZXhwcmVzc2lvbik7CiAKICAgICBmcmllbmQgY2xhc3MgRnJvbnRlbmRNZW51UHJvdmlkZXI7
CiAgICAgSW5zcGVjdG9yQ29udHJvbGxlciogbV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxlciB7IG51
bGxwdHIgfTsKQEAgLTE0Miw4ICsxNDAsOCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0
cjxJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpTZXR0aW5ncz4gbV9zZXR0aW5nczsKICAg
ICBib29sIG1fZnJvbnRlbmRMb2FkZWQgeyBmYWxzZSB9OwogICAgIERvY2tTaWRlIG1fZG9ja1Np
ZGU7Ci0gICAgVmVjdG9yPFN0cmluZz4gbV9ldmFsdWF0ZU9uTG9hZDsKICAgICBSZWY8SW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoVGFzaz4gbV9kaXNwYXRjaFRhc2s7CisgICAgSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGEw
OTMwNWYyODRjZWNhNjVkNjg0NjE4OWU5N2RkYWI3NzU1MTA2ZDYuLmFmYTdlN2FhZWY0NGMzZWI3
ODI0ZTkwOTNmNjAwMzgzNmI4OTVkNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKQEAgLTQwNiw3ICs0MDYsNyBAQCB2b2lkIEluc3BlY3RvclN0dWJGcm9udGVuZDo6Y2xvc2VX
aW5kb3coKQogCiB2b2lkIEluc3BlY3RvclN0dWJGcm9udGVuZDo6c2VuZE1lc3NhZ2VUb0Zyb250
ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBkaXNwYXRjaE1lc3NhZ2VBc3luYyht
ZXNzYWdlKTsKKyAgICBmcm9udGVuZEFQSURpc3BhdGNoZXIoKS5kaXNwYXRjaE1lc3NhZ2VBc3lu
YyhtZXNzYWdlKTsKIH0KIAogc3RhdGljIGJvb2wgbWFya2VyVHlwZUZyb20oY29uc3QgU3RyaW5n
JiBtYXJrZXJUeXBlLCBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSYgcmVzdWx0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKaW5kZXggZGFmNWZiNzMxM2JkZDk4MDY4ZGVkZDM5Y2JhYzRkZmJlOTM3N2NhOC4uN2E2OWFh
YTg2MDI4ZmFkMzhmYWEyZjRmN2QyNDk2MzM1YjU0MDIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC01NDAs
NyArNTQwLDYgQEAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVS
YW5nZUhhbmRsZS5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJ
bnNwZWN0b3JVSS5jcHAKIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5jcHAKIFdl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckNsaWVudC5jcHAKLVdlYlByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAKIFdlYlByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXIuY3BwCiBXZWJQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHAKIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYlBh
Z2VJbnNwZWN0b3JUYXJnZXQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBmNGZiZmNmMGI3MDgxZGRmMjI3ZjdhMTZhZDM4YTVjOTY3
ZjdiMDFkLi4wYWU4MWI3MTk0ZTA2YmE4YTFjYWMzM2ZmY2IyYzFlNzIwYjQwYjc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NzUs
NyArMTQ3NSw2IEBACiAJCUE1NUJBODI1MUJBMjVDRkIwMDdDRDMzRCAvKiBSZW1vdGVXZWJJbnNw
ZWN0b3JQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNTVCQTgyMjFCQTI1QkI4MDA3Q0QzM0QgLyogUmVtb3RlV2ViSW5zcGVjdG9y
UHJveHlNZXNzYWdlcy5oICovOyB9OwogCQlBNTVCQTgyNjFCQTI1Q0ZEMDA3Q0QzM0QgLyogUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU1QkE4MjExQkEyNUJCODAwN0NEMzNEIC8q
IFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQTU1
QkE4MkIxQkEzOEU2MTAwN0NEMzNEIC8qIFdlYkluc3BlY3RvclV0aWxpdGllcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU1QkE4MjgxQkEzOEUxRTAw
N0NEMzNEIC8qIFdlYkluc3BlY3RvclV0aWxpdGllcy5oICovOyB9OwotCQlBNTVCQTgzNTFCQTNF
NzBBMDA3Q0QzM0QgLyogV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTVCQTgzMzFCQTNFNkZB
MDA3Q0QzM0QgLyogV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmggKi87IH07CiAJ
CUE1ODYwRTcxMjMwRjY3RkMwMDQ2MUFBRSAvKiBXZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1ODYw
RTcwMjMwRjY3REUwMDQ2MUFBRSAvKiBXZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuaCAq
LzsgfTsKIAkJQTU4QjZGMDgxOEZDQTczMzAwOENCQTUzIC8qIFdLRmlsZVVwbG9hZFBhbmVsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNThCNkYwNjE4
RkNBNzMzMDA4Q0JBNTMgLyogV0tGaWxlVXBsb2FkUGFuZWwuaCAqLzsgfTsKIAkJQTVDMEYwQTcy
MDAwNjU0RDAwNTM2NTM2IC8qIF9XS05TV2luZG93RXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNUMwRjBBNjIwMDA2NTQ0MDA1MzY1MzYgLyog
X1dLTlNXaW5kb3dFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtNDYzNSw4ICs0NjM0LDYgQEAKIAkJQTU1QkE4MjIxQkEyNUJCODAwN0NE
MzNEIC8qIFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBwYXRo
ID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCUE1NUJBODI3MUJBMzhF
MUUwMDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU1QkE4MjgxQkEzOEUxRTAwN0NEMzNEIC8qIFdlYkluc3Bl
Y3RvclV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJbnNw
ZWN0b3JVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTU1QkE4MzIx
QkEzRTZGQTAwN0NEMzNEIC8qIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNTVCQTgz
MzFCQTNFNkZBMDA3Q0QzM0QgLyogV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkluc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTg2MEU2RjIzMEY2
N0RFMDA0NjFBQUUgLyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFdlYlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxlci5jcHA7IHBhdGggPSBO
ZXR3b3JrL1dlYlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE1ODYwRTcwMjMwRjY3REUwMDQ2MUFBRSAvKiBXZWJSZXNvdXJjZUlu
dGVyY2VwdENvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViUmVzb3VyY2VJbnRlcmNlcHRD
b250cm9sbGVyLmg7IHBhdGggPSBOZXR3b3JrL1dlYlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNThCNkYwNjE4RkNBNzMzMDA4Q0JB
NTMgLyogV0tGaWxlVXBsb2FkUGFuZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV0tGaWxlVXBsb2FkUGFuZWwuaDsgcGF0aCA9IGlvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5l
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODYxNiw4ICs4NjEzLDYgQEAKIAkJ
CQkxQzhFMkExQzEyNzc4MzNGMDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluICov
LAogCQkJCUJDMTExQTU5MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJJbnNwZWN0b3JDbGllbnQuY3Bw
ICovLAogCQkJCUJDMDMyRDZEMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJJbnNwZWN0b3JDbGllbnQu
aCAqLywKLQkJCQlBNTVCQTgzMjFCQTNFNkZBMDA3Q0QzM0QgLyogV2ViSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyLmNwcCAqLywKLQkJCQlBNTVCQTgzMzFCQTNFNkZBMDA3Q0QzM0QgLyog
V2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmggKi8sCiAJCQkJRkVFNDNGRDAxRTY3
QUZDNjAwNzdENkQxIC8qIFdlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXIuY3BwICovLAog
CQkJCUZFRTQzRkQxMUU2N0FGQzYwMDc3RDZEMSAvKiBXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNw
YXRjaGVyLmggKi8sCiAJCQkJRkVFNDNGRDIxRTY3QUZDNjAwNzdENkQxIC8qIFdlYkluc3BlY3Rv
ckludGVycnVwdERpc3BhdGNoZXIubWVzc2FnZXMuaW4gKi8sCkBAIC0xMTQwMSw3ICsxMTM5Niw2
IEBACiAJCQkJQkNDRjZBQkQxMkM5MUVGOTAwOEY5QzM1IC8qIFdlYkltYWdlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQzhFMjgyMDEyNzVEMTU0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzAzMkQ4MjEwRjQzNzhEMDA1OEMxNUEgLyogV2ViSW5zcGVjdG9y
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlBNTVCQTgzNTFCQTNFNzBBMDA3Q0QzM0QgLyog
V2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RUU0M0ZEMzFFNjdCMDE4MDA3N0Q2RDEgLyogV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVEQkRDRDcxRTY4RDIwNTAwQTU5RjhGIC8qIFdlYklu
c3BlY3RvckludGVycnVwdERpc3BhdGNoZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUM4RTJBMzYxMjc3ODUyNDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
UmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAKaW5kZXggNDdkNmZhMzM4M2M0ZWRiYWYzMTQ4
MGRkNDJiZWM1MDZmODRjODNhZi4uYTEzOTUxOTQ1NzVjMWJhNzE5NDRjMzk0NjlhM2IxZmNlZGQ2
MmE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1v
dGVXZWJJbnNwZWN0b3JVSS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgUmVmPFJlbW90
ZVdlYkluc3BlY3RvclVJPiBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6Y3JlYXRlKFdlYlBhZ2UmIHBh
Z2UpCiAKIFJlbW90ZVdlYkluc3BlY3RvclVJOjpSZW1vdGVXZWJJbnNwZWN0b3JVSShXZWJQYWdl
JiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCi0gICAgLCBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hl
cihwYWdlKQorICAgICwgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIoKnBhZ2UuY29yZVBhZ2UoKSkK
IHsKICAgICBXZWJJbnNwZWN0b3JVSTo6ZW5hYmxlRnJvbnRlbmRGZWF0dXJlcygpOwogfQpAQCAt
NjYsMjQgKzY2LDI0IEBAIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OmluaXRpYWxpemUoRGVi
dWdnYWJsZUluZm9EYXRhJiYgZGVidWdnYWJsZUluZm8sIGNvbnN0CiAgICAgbV9wYWdlLmNvcmVQ
YWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5zZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudCh0
aGlzKTsKIAogICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLnJlc2V0KCk7Ci0gICAgbV9mcm9u
dGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXREb2NraW5nVW5hdmFpbGFibGUi
X3MsIHRydWUpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgi
c2V0RG9ja2luZ1VuYXZhaWxhYmxlIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUodHJ1ZSkgfSk7
CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnVwZGF0ZUZpbmRTdHJpbmcoY29uc3Qg
U3RyaW5nJiBmaW5kU3RyaW5nKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBK
U09OOjpWYWx1ZTo6ZXNjYXBlU3RyaW5nKGJ1aWxkZXIsIGZpbmRTdHJpbmcpOwotICAgIG1fZnJv
bnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgidXBkYXRlRmluZFN0cmluZyJfcywg
YnVpbGRlci50b1N0cmluZygpKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRj
aENvbW1hbmQoInVwZGF0ZUZpbmRTdHJpbmciX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShidWls
ZGVyLnRvU3RyaW5nKCkpIH0pOwogfQogCiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpkaWRT
YXZlKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRp
c3BhdGNoQ29tbWFuZCgic2F2ZWRVUkwiX3MsIHVybCk7CisgICAgbV9mcm9udGVuZEFQSURpc3Bh
dGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzYXZlZFVSTCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRl
KHVybCkgfSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OmRpZEFwcGVuZChjb25z
dCBTdHJpbmcmIHVybCkKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENv
bW1hbmQoImFwcGVuZGVkVG9VUkwiX3MsIHVybCk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNo
ZXIuZGlzcGF0Y2hDb21tYW5kKCJhcHBlbmRlZFRvVVJMIl9zLCB7IEpTT046OlZhbHVlOjpjcmVh
dGUodXJsKSB9KTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c2VuZE1lc3NhZ2VU
b0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lk
IFJlbW90ZVdlYkluc3BlY3RvclVJOjpmcm9udGVuZExvYWRlZCgpCiB7CiAgICAgbV9mcm9udGVu
ZEFQSURpc3BhdGNoZXIuZnJvbnRlbmRMb2FkZWQoKTsKIAotICAgIG1fZnJvbnRlbmRBUElEaXNw
YXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0SXNWaXNpYmxlIl9zLCB0cnVlKTsKKyAgICBtX2Zy
b250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNldElzVmlzaWJsZSJfcywgeyBK
U09OOjpWYWx1ZTo6Y3JlYXRlKHRydWUpIH0pOwogCiAgICAgYnJpbmdUb0Zyb250KCk7CiB9CkBA
IC0yNDYsNyArMjQ2LDcgQEAgdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c2V0RGlhZ25vc3Rp
Y0xvZ2dpbmdBdmFpbGFibGUoYm9vbCBhdmFpbGFibGUpCiAgICAgQVNTRVJUKCFhdmFpbGFibGUg
fHwgc3VwcG9ydHNEaWFnbm9zdGljTG9nZ2luZygpKTsKICAgICBtX2RpYWdub3N0aWNMb2dnaW5n
QXZhaWxhYmxlID0gYXZhaWxhYmxlOwogCi0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlz
cGF0Y2hDb21tYW5kKCJzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZSJfcywgbV9kaWFnbm9z
dGljTG9nZ2luZ0F2YWlsYWJsZSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0
Y2hDb21tYW5kKCJzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZSJfcywgeyBKU09OOjpWYWx1
ZTo6Y3JlYXRlKG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUpIH0pOwogfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2Vi
SW5zcGVjdG9yVUkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3Rl
V2ViSW5zcGVjdG9yVUkuaAppbmRleCBiNDk5ZWM1YzUzZmFjNjI3ZjVmNDdlZWZiYzRhOTAzODZj
ZGEwNmM2Li4zNWI5OGRiOTI4MjU5MzE3M2Y2ODk3YTQwZjMxMDZiYjVlZWZkNTI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3Rv
clVJLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJ
bnNwZWN0b3JVSS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpbmNsdWRlICJEZWJ1Z2dhYmxlSW5m
b0RhdGEuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKLSNpbmNsdWRlICJXZWJJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3Rv
ckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5kSG9zdC5o
PgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgpAQCAtOTIsNyArOTIsOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZv
aWQgc2hvd0NlcnRpZmljYXRlKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpIG92ZXJy
aWRlOwogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb0JhY2tlbmQoY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGU7Ci0KKyAgICBXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXImIGZyb250
ZW5kQVBJRGlzcGF0Y2hlcigpIGZpbmFsIHsgcmV0dXJuIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVy
OyB9CisgICAgCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9URUxFTUVUUlkpCiAgICAgYm9vbCBzdXBw
b3J0c0RpYWdub3N0aWNMb2dnaW5nKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBkaWFnbm9zdGljTG9n
Z2luZ0F2YWlsYWJsZSgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFp
bGFibGU7IH0KQEAgLTExMCw3ICsxMTEsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJlbW90
ZVdlYkluc3BlY3RvclVJKFdlYlBhZ2UmKTsKIAogICAgIFdlYlBhZ2UmIG1fcGFnZTsKLSAgICBX
ZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgbV9mcm9udGVuZEFQSURpc3BhdGNoZXI7
CisgICAgV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIG1fZnJvbnRlbmRB
UElEaXNwYXRjaGVyOwogICAgIFJlZlB0cjxXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q+
IG1fZnJvbnRlbmRIb3N0OwogICAgIERlYnVnZ2FibGVJbmZvRGF0YSBtX2RlYnVnZ2FibGVJbmZv
OwogICAgIFN0cmluZyBtX2JhY2tlbmRDb21tYW5kc1VSTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRj
aGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
RnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OWMzN2IwMDNjMWNiNzcxZDliM2Y3OWRkYTY1NTJhNDkwN2Q3ZWRkNy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSwxMjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIldlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIgotCi0j
aW5jbHVkZSAiV2ViUGFnZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdFN0
YXRlLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXI6OldlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcihXZWJQYWdlJiBwYWdl
KQotICAgIDogbV9wYWdlKHBhZ2UpCi17Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRB
UElEaXNwYXRjaGVyOjpyZXNldCgpCi17Ci0gICAgbV9mcm9udGVuZExvYWRlZCA9IGZhbHNlOwot
ICAgIG1fc3VzcGVuZGVkID0gZmFsc2U7Ci0gICAgbV9xdWV1ZS5jbGVhcigpOwotfQotCi12b2lk
IFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZnJvbnRlbmRMb2FkZWQoKQotewot
ICAgIG1fZnJvbnRlbmRMb2FkZWQgPSB0cnVlOwotCi0gICAgZXZhbHVhdGVRdWV1ZWRFeHByZXNz
aW9ucygpOwotfQotCi12b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6c3Vz
cGVuZCgpCi17Ci0gICAgQVNTRVJUKG1fZnJvbnRlbmRMb2FkZWQpOwotICAgIEFTU0VSVCghbV9z
dXNwZW5kZWQpOwotICAgIEFTU0VSVChtX3F1ZXVlLmlzRW1wdHkoKSk7Ci0KLSAgICBtX3N1c3Bl
bmRlZCA9IHRydWU7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
Ojp1bnN1c3BlbmQoKQotewotICAgIEFTU0VSVChtX3N1c3BlbmRlZCk7Ci0KLSAgICBtX3N1c3Bl
bmRlZCA9IGZhbHNlOwotCi0gICAgZXZhbHVhdGVRdWV1ZWRFeHByZXNzaW9ucygpOwotfQotCi12
b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2hDb21tYW5kKGNv
bnN0IFN0cmluZyYgY29tbWFuZCkKLXsKLSAgICBldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKG1h
a2VTdHJpbmcoIkluc3BlY3RvckZyb250ZW5kQVBJLmRpc3BhdGNoKFtcIiIsIGNvbW1hbmQsICJc
Il0pIikpOwotfQotCi12b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlz
cGF0Y2hDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZCwgY29uc3QgU3RyaW5nJiBhcmd1bWVu
dCkKLXsKLSAgICBldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKG1ha2VTdHJpbmcoIkluc3BlY3Rv
ckZyb250ZW5kQVBJLmRpc3BhdGNoKFtcIiIsIGNvbW1hbmQsICJcIiwgXCIiLCBhcmd1bWVudCwg
IlwiXSkiKSk7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpk
aXNwYXRjaENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kLCBib29sIGFyZ3VtZW50KQotewot
ICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24obWFrZVN0cmluZygiSW5zcGVjdG9yRnJvbnRl
bmRBUEkuZGlzcGF0Y2goW1wiIiwgY29tbWFuZCwgIlwiLCAiLCBhcmd1bWVudCA/ICJ0cnVlIiA6
ICJmYWxzZSIsICJdKSIpKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXI6OmRpc3BhdGNoTWVzc2FnZUFzeW5jKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKLXsKLSAg
ICBldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKG1ha2VTdHJpbmcoIkluc3BlY3RvckZyb250ZW5k
QVBJLmRpc3BhdGNoTWVzc2FnZUFzeW5jKCIsIG1lc3NhZ2UsICIpIikpOwotfQotCi12b2lkIFdl
Ykluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lv
bihjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24pCi17Ci0gICAgaWYgKCFtX2Zyb250ZW5kTG9hZGVk
IHx8IG1fc3VzcGVuZGVkKSB7Ci0gICAgICAgIG1fcXVldWUuYXBwZW5kKGV4cHJlc3Npb24pOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgQVNTRVJUKG1fcXVldWUuaXNFbXB0eSgpKTsK
LSAgICBBU1NFUlQoIW1fcGFnZS5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS5zY3JpcHQoKS5pc1Bh
dXNlZCgpKTsKLSAgICBtX3BhZ2UuY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkuc2NyaXB0KCkuZXhl
Y3V0ZVNjcmlwdElnbm9yaW5nRXhjZXB0aW9uKGV4cHJlc3Npb24pOwotfQotCi12b2lkIFdlYklu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVRdWV1ZWRFeHByZXNzaW9ucygp
Ci17Ci0gICAgaWYgKG1fcXVldWUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBm
b3IgKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiA6IG1fcXVldWUpIHsKLSAgICAgICAgQVNTRVJU
KCFtX3BhZ2UuY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkuc2NyaXB0KCkuaXNQYXVzZWQoKSk7Ci0g
ICAgICAgIG1fcGFnZS5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS5zY3JpcHQoKS5leGVjdXRlU2Ny
aXB0SWdub3JpbmdFeGNlcHRpb24oZXhwcmVzc2lvbik7Ci0gICAgfQotCi0gICAgbV9xdWV1ZS5j
bGVhcigpOwotfQotCi12b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZh
bHVhdGVFeHByZXNzaW9uRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24pCi17Ci0g
ICAgZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbihleHByZXNzaW9uKTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGI2OTBlNGE0MTYwN2FkZjEwMzRjYjhlNDVh
MGZiMGY1ZDY1ZmQ2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250
ZW5kQVBJRGlzcGF0Y2hlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNz
IFdlYlBhZ2U7Ci0KLWNsYXNzIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlciB7Ci1w
dWJsaWM6Ci0gICAgV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyKFdlYlBhZ2UmKTsK
LQotICAgIHZvaWQgcmVzZXQoKTsKLSAgICB2b2lkIGZyb250ZW5kTG9hZGVkKCk7Ci0KLSAgICB2
b2lkIHN1c3BlbmQoKTsKLSAgICB2b2lkIHVuc3VzcGVuZCgpOwotCi0gICAgdm9pZCBkaXNwYXRj
aENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kKTsKLSAgICB2b2lkIGRpc3BhdGNoQ29tbWFu
ZChjb25zdCBTdHJpbmcmIGNvbW1hbmQsIGNvbnN0IFN0cmluZyYgYXJndW1lbnQpOwotICAgIHZv
aWQgZGlzcGF0Y2hDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZCwgYm9vbCBhcmd1bWVudCk7
Ci0gICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VBc3luYyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwot
Ci0gICAgdm9pZCBldmFsdWF0ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYpOwot
cHJpdmF0ZToKLSAgICB2b2lkIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5n
Jik7Ci0gICAgdm9pZCBldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7Ci0KLSAgICBXZWJQYWdl
JiBtX3BhZ2U7Ci0gICAgRGVxdWU8U3RyaW5nPiBtX3F1ZXVlOwotICAgIGJvb2wgbV9mcm9udGVu
ZExvYWRlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3N1c3BlbmRlZCB7IGZhbHNlIH07Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHAKaW5kZXggZDc5YmY4YmM3YmRhNzAwZGRl
ZjYyNDBlZGQ0OWViMjRkMzQ3MmFiNC4uZTliMDIxY2VkMDcyN2U2MWE0ZTQ1MTlhOTc4Nzg2NGM4
ZjlmNDk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JVSS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JVSS5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JV
STo6ZW5hYmxlRnJvbnRlbmRGZWF0dXJlcygpCiAKIFdlYkluc3BlY3RvclVJOjpXZWJJbnNwZWN0
b3JVSShXZWJQYWdlJiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCi0gICAgLCBtX2Zyb250ZW5k
QVBJRGlzcGF0Y2hlcihwYWdlKQorICAgICwgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIoKnBhZ2Uu
Y29yZVBhZ2UoKSkKICAgICAsIG1fZGVidWdnYWJsZUluZm8oRGVidWdnYWJsZUluZm9EYXRhOjpl
bXB0eSgpKQogewogICAgIFdlYkluc3BlY3RvclVJOjplbmFibGVGcm9udGVuZEZlYXR1cmVzKCk7
CkBAIC0yNDQsMjggKzI0NCwyOCBAQCB2b2lkIFdlYkluc3BlY3RvclVJOjpzZXREb2NrU2lkZShE
b2NrU2lkZSBkb2NrU2lkZSkKIAogICAgIG1fZG9ja1NpZGUgPSBkb2NrU2lkZTsKIAotICAgIG1f
ZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0RG9ja1NpZGUiX3MsIFN0
cmluZyhkb2NrU2lkZVN0cmluZykpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3Bh
dGNoQ29tbWFuZCgic2V0RG9ja1NpZGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShTdHJpbmco
ZG9ja1NpZGVTdHJpbmcpKSB9KTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6c2V0RG9ja2lu
Z1VuYXZhaWxhYmxlKGJvb2wgdW5hdmFpbGFibGUpCiB7CiAgICAgbV9kb2NraW5nVW5hdmFpbGFi
bGUgPSB1bmF2YWlsYWJsZTsKIAotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNo
Q29tbWFuZCgic2V0RG9ja2luZ1VuYXZhaWxhYmxlIl9zLCB1bmF2YWlsYWJsZSk7CisgICAgbV9m
cm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXREb2NraW5nVW5hdmFpbGFi
bGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh1bmF2YWlsYWJsZSkgfSk7CiB9CiAKIHZvaWQg
V2ViSW5zcGVjdG9yVUk6OnNldElzVmlzaWJsZShib29sIHZpc2libGUpCiB7CiAgICAgbV9pc1Zp
c2libGUgPSB2aXNpYmxlOwogCi0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hD
b21tYW5kKCJzZXRJc1Zpc2libGUiX3MsIHZpc2libGUpOworICAgIG1fZnJvbnRlbmRBUElEaXNw
YXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0SXNWaXNpYmxlIl9zLCB7IEpTT046OlZhbHVlOjpj
cmVhdGUodmlzaWJsZSkgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnVwZGF0ZUZpbmRT
dHJpbmcoY29uc3QgU3RyaW5nJiBmaW5kU3RyaW5nKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKICAgICBKU09OOjpWYWx1ZTo6ZXNjYXBlU3RyaW5nKGJ1aWxkZXIsIGZpbmRTdHJpbmcp
OwotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgidXBkYXRlRmlu
ZFN0cmluZyJfcywgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0
Y2hlci5kaXNwYXRjaENvbW1hbmQoInVwZGF0ZUZpbmRTdHJpbmciX3MsIHsgSlNPTjo6VmFsdWU6
OmNyZWF0ZShidWlsZGVyLnRvU3RyaW5nKCkpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJ
OjpjaGFuZ2VBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCBoZWlnaHQpCkBAIC0zMjUsNTMg
KzMyNSw1MyBAQCB2b2lkIFdlYkluc3BlY3RvclVJOjpzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWls
YWJsZShib29sIGF2YWlsYWJsZSkKICAgICBBU1NFUlQoIWF2YWlsYWJsZSB8fCBzdXBwb3J0c0Rp
YWdub3N0aWNMb2dnaW5nKCkpOwogICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUgPSBh
dmFpbGFibGU7CiAKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQo
InNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlIl9zLCBtX2RpYWdub3N0aWNMb2dnaW5nQXZh
aWxhYmxlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNl
dERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUobV9k
aWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZSkgfSk7CiB9CiAjZW5kaWYKIAogdm9pZCBXZWJJbnNw
ZWN0b3JVSTo6c2hvd0NvbnNvbGUoKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRp
c3BhdGNoQ29tbWFuZCgic2hvd0NvbnNvbGUiX3MpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRj
aGVyLmRpc3BhdGNoQ29tbWFuZCgic2hvd0NvbnNvbGUiX3MsIHsgfSk7CiB9CiAKIHZvaWQgV2Vi
SW5zcGVjdG9yVUk6OnNob3dSZXNvdXJjZXMoKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRj
aGVyLmRpc3BhdGNoQ29tbWFuZCgic2hvd1Jlc291cmNlcyJfcyk7CisgICAgbV9mcm9udGVuZEFQ
SURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzaG93UmVzb3VyY2VzIl9zLCB7IH0pOwogfQog
CiB2b2lkIFdlYkluc3BlY3RvclVJOjpzaG93TWFpblJlc291cmNlRm9yRnJhbWUoY29uc3QgU3Ry
aW5nJiBmcmFtZUlkZW50aWZpZXIpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlz
cGF0Y2hDb21tYW5kKCJzaG93TWFpblJlc291cmNlRm9yRnJhbWUiX3MsIGZyYW1lSWRlbnRpZmll
cik7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzaG93TWFp
blJlc291cmNlRm9yRnJhbWUiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShmcmFtZUlkZW50aWZp
ZXIpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpzdGFydFBhZ2VQcm9maWxpbmcoKQog
ewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0VGltZWxp
bmVQcm9maWxpbmdFbmFibGVkIl9zLCB0cnVlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hl
ci5kaXNwYXRjaENvbW1hbmQoInNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZCJfcywgeyBKU09O
OjpWYWx1ZTo6Y3JlYXRlKHRydWUpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpzdG9w
UGFnZVByb2ZpbGluZygpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hD
b21tYW5kKCJzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQiX3MsIGZhbHNlKTsKKyAgICBtX2Zy
b250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNldFRpbWVsaW5lUHJvZmlsaW5n
RW5hYmxlZCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKGZhbHNlKSB9KTsKIH0KIAogdm9pZCBX
ZWJJbnNwZWN0b3JVSTo6c3RhcnRFbGVtZW50U2VsZWN0aW9uKCkKIHsKLSAgICBtX2Zyb250ZW5k
QVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNldEVsZW1lbnRTZWxlY3Rpb25FbmFibGVk
Il9zLCB0cnVlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQo
InNldEVsZW1lbnRTZWxlY3Rpb25FbmFibGVkIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUodHJ1
ZSkgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnN0b3BFbGVtZW50U2VsZWN0aW9uKCkK
IHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNldEVsZW1l
bnRTZWxlY3Rpb25FbmFibGVkIl9zLCBmYWxzZSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNo
ZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXRFbGVtZW50U2VsZWN0aW9uRW5hYmxlZCJfcywgeyBKU09O
OjpWYWx1ZTo6Y3JlYXRlKGZhbHNlKSB9KTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6ZGlk
U2F2ZShjb25zdCBTdHJpbmcmIHVybCkKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5k
aXNwYXRjaENvbW1hbmQoInNhdmVkVVJMIl9zLCB1cmwpOworICAgIG1fZnJvbnRlbmRBUElEaXNw
YXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2F2ZWRVUkwiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0
ZSh1cmwpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpkaWRBcHBlbmQoY29uc3QgU3Ry
aW5nJiB1cmwpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5k
KCJhcHBlbmRlZFRvVVJMIl9zLCB1cmwpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRp
c3BhdGNoQ29tbWFuZCgiYXBwZW5kZWRUb1VSTCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHVy
bCkgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKaW5kZXggMDI2YTcxMmEwODk5ZDA0NTVmMzE4NWFi
Nzk3NmMxNDAwNWQ4ZWJhYi4uYmVjYmJiYjhmNzk4NzllZTM2YTlmMTNjMThkNzU5YzcyOGVmMzFl
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yVUkuaApAQCAtMjcsOSArMjcsOSBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgog
I2luY2x1ZGUgIkRlYnVnZ2FibGVJbmZvRGF0YS5oIgotI2luY2x1ZGUgIldlYkluc3BlY3RvckZy
b250ZW5kQVBJRGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckRlYnVnZ2FibGVUeXBlLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0luc3BlY3RvckZyb250ZW5kQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNw
ZWN0b3JGcm9udGVuZEhvc3QuaD4KIApAQCAtMTQyLDYgKzE0Miw3IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvQmFja2VuZChjb25zdCBTdHJpbmcmKSBvdmVycmlk
ZTsKKyAgICBXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXImIGZyb250ZW5k
QVBJRGlzcGF0Y2hlcigpIGZpbmFsIHsgcmV0dXJuIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyOyB9
CiAKICAgICB2b2lkIHBhZ2VQYXVzZWQoKSBvdmVycmlkZTsKICAgICB2b2lkIHBhZ2VVbnBhdXNl
ZCgpIG92ZXJyaWRlOwpAQCAtMTUyLDcgKzE1Myw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
V2ViSW5zcGVjdG9yVUkoV2ViUGFnZSYpOwogCiAgICAgV2ViUGFnZSYgbV9wYWdlOwotICAgIFdl
Ykluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlciBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsK
KyAgICBXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgbV9mcm9udGVuZEFQ
SURpc3BhdGNoZXI7CiAgICAgUmVmUHRyPFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kSG9zdD4g
bV9mcm9udGVuZEhvc3Q7CiAKICAgICAvLyBLZWVwIGEgcG9pbnRlciB0byB0aGUgZnJvbnRlbmQn
cyBpbnNwZWN0b3IgY29udHJvbGxlciByYXRoZXIgdGhhbiBnb2luZyB0aHJvdWdoCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2NmL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNs
aWVudENGLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5z
cGVjdG9yQ2xpZW50Q0YuY3BwCmluZGV4IDdiODY5ODFhM2Y0OGU1MGY4YjNjY2FjMzcwNjkxN2Q0
YWYxZmRiZDYuLjE2ZGMxNDRkY2M5OGUyNTZjMDUzMjY3ZjUyZDFkM2U0ZTQ4OTU4M2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50Q0YuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvY2YvV2ViQ29yZVN1cHBvcnQv
V2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCkBAIC05Niw3ICs5Niw3IEBAIHN0YXRpYyB2b2lkIGRl
bGV0ZVNldHRpbmcoY29uc3QgU3RyaW5nJiBrZXkpCiAKIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50
OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewotICAgIG1f
ZnJvbnRlbmRDbGllbnQtPmRpc3BhdGNoTWVzc2FnZUFzeW5jKG1lc3NhZ2UpOworICAgIG1fZnJv
bnRlbmRDbGllbnQtPmZyb250ZW5kQVBJRGlzcGF0Y2hlcigpLmRpc3BhdGNoTWVzc2FnZUFzeW5j
KG1lc3NhZ2UpOwogfQogCiBib29sIFdlYkluc3BlY3RvckNsaWVudDo6aW5zcGVjdG9yQXR0YWNo
RGlzYWJsZWQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412135</attachid>
            <date>2020-10-22 14:40:18 -0700</date>
            <delta_ts>2020-10-29 12:26:55 -0700</delta_ts>
            <desc>Patch (with debug logging)</desc>
            <filename>bug-217835-20201022144018.patch</filename>
            <type>text/plain</type>
            <size>60017</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTFiNjY4NWVkMDNjZTc5
NDViNGYwMDI0MmM2YmYwZGM1MzhhMTMzMC4uNTRmZjM5MzgyYzYzODgwYzk2ZGYxMGZkNDJiNWE2
MTc5ODVmY2M2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIwLTEwLTE2ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUg
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIHRvIFdlYkNvcmUsIGNsZWFuIHVwIHVzZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgzNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzODQ0MDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGV2aW4gUm91c3NvLgorCisgICAgICAgIEV4cG9zZSB0aGUgZGlzcGF0Y2hlciBhcyBwYXJ0IG9m
IHRoZSBJbnNwZWN0b3JGcm9udGVuZENsaWVudCBBUEkgc28gdGhhdCBvdGhlciBjb2RlCisgICAg
ICAgIGNhbiB1c2UgdGhlIGRpc3BhdGNoZXIgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0J3MgYSBX
ZWJJbnNwZWN0b3JVSSBvciBSZW1vdGVXZWJJbnNwZWN0b3JVSS4KKworICAgICAgICBBZGQgYW4g
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIGluc3RhbmNlIGFuZCBnZXR0ZXIgdG8gSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC4KKworICAgICAgICBBZG9wdCB0aGUgSlNPTlZhbHVl
LWJhc2VkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2goKSBtZXRob2QK
KyAgICAgICAgaW4gSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC4gUmVtb3ZlIHRoZSByZWR1
bmRhbnQgcGFyYWxsZWwgcXVldWluZyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgUmVtb3ZlIHJl
ZHVuZGFudCBwdWJsaWMgbWV0aG9kcyB0aGF0IGFyZSBhdmFpbGFibGUgb24gSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBNb3ZlZCBmaWxlcy4K
KworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpyZXNl
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmZy
b250ZW5kTG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcjo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OnVuc3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoTWVzc2FnZUFzeW5jKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVP
clF1ZXVlRXhwcmVzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OmV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZUV4cHJlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0
ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKToKKyAgICAgICAgQWRkIG5ldyBkaXNwYXRjaCgpIG1ldGhv
ZC4gUmVtb3ZlIG90aGVyIGRpc3BhdGNoIG1ldGhvZHMgdGhhdCBjYW4gYmUgZXhwcmVzc2VkCisg
ICAgICAgIHVzaW5nIHRoZSBuZXcgSlNPTjo6VmFsdWUtYmFzZWQgbWV0aG9kLiBJZiBpdCdzIG5v
dCBwb3NzaWJsZSB0byBldmFsdWF0ZSBKUworICAgICAgICBpbW1lZGlhdGVseSwgc2NoZWR1bGUg
YSBvbmUtc2hvdCB0YXNrIHRvIHRyeSBhZ2FpbiBvbiBhIGRpZmZlcmVudCBldmVudCBsb29wIHR1
cm4uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oLgorICAgICAgICBBZGQgbmV3IGRpc3BhdGNo
KCkgbWV0aG9kIHdoaWNoIHRha2VzIGEgdmVjdG9yIG9mIEpTT046OlZhbHVlIG9iamVjdHMgYW5k
CisgICAgICAgIHNlcmlhbGl6ZXMgdGhlbSBpbnRvIGNvbW1hbmQgYXJndW1lbnRzIGZvciB0aGUg
ZnJvbnRlbmQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Okluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbDo6ZnJvbnRlbmRMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6cGFnZVBhdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpwYWdlVW5wYXVzZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RG9ja2luZ1VuYXZhaWxhYmxlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldEF0dGFj
aGVkV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9j
YWw6OnNldERlYnVnZ2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDo6c2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnN0YXJ0UHJvZmlsaW5nSmF2
YVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
OjpzdG9wUHJvZmlsaW5nSmF2YVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsOjpzaG93Q29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzaG93UmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNob3dNYWluUmVzb3VyY2VGb3JGcmFt
ZSk6CisgICAgICAgIFVzZSBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgdG8gZGlzcGF0
Y2ggY29tbWFuZHMgdG8gdGhlIGZyb250ZW5kLgorCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaE1lc3NhZ2UpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZGlz
cGF0Y2hNZXNzYWdlQXN5bmMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6ZXZhbHVhdGVPbkxvYWQpOiBEZWxldGVkLgorICAgICAgICBU
aGVzZSBhcmUgcmVkdW5kYW50IHdpdGggSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLgor
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yU3R1YkZyb250ZW5kOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOiBVc2UgZnJvbnRlbmQg
ZGlzcGF0Y2hlciBkaXJlY3RseS4KKwogMjAyMC0xMC0yMiAgTWFydGluIFJvYmluc29uICA8bXJv
Ymluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmVuYW1lIHNjcm9sbC1zbmFwLW1hcmdpbiB0
byBzY3JvbGwtbWFyZ2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFjNjlmZmI2NzE5ZDRlYzI3YzhlNTExOTNmZGUy
ODdlMDkyZGJhODIuLjBlMGU5ZWNiYWJkODdmMjFkYTY5OTc2ZGZmZjQyNjNmZmFhZjBmZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMjAtMTAtMjEgIEJyaWFuIEJ1cmcgIDxiYnVyZ0Bh
cHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXIgdG8gV2ViQ29yZSwgY2xlYW4gdXAgdXNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3ODM1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MDM4NDQwNz4KKworICAgICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28uCisK
KyAgICAgICAgQWRvcHQgdGhlIEpTT05WYWx1ZS1iYXNlZCBJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXI6OmRpc3BhdGNoKCkgbWV0aG9kCisgICAgICAgIGluIFdlYkluc3BlY3RvclVJIGFu
ZCBSZW1vdGVJbnNwZWN0b3JVSSBtZXRob2RzIHRoYXQgZGlzcGF0Y2ggdG8gdGhlIGZyb250ZW5k
LgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6IE1vdmUgZmlsZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3Bl
Y3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVj
dG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2Vi
SW5zcGVjdG9yVUk6OlJlbW90ZVdlYkluc3BlY3RvclVJKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlV2ViSW5zcGVjdG9yVUk6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVX
ZWJJbnNwZWN0b3JVSTo6dXBkYXRlRmluZFN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVdlYkluc3BlY3RvclVJOjpkaWRTYXZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5z
cGVjdG9yVUk6OmRpZEFwcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3Rv
clVJOjpmcm9udGVuZExvYWRlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3Rv
clVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJ
bnNwZWN0b3JVSTo6cGFnZVBhdXNlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3Bl
Y3RvclVJOjpwYWdlVW5wYXVzZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0
b3JVSTo6c2V0RGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUpOgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clVJOjpXZWJJbnNwZWN0b3JVSSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpz
ZXREb2NrU2lkZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzZXREb2NraW5n
VW5hdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2V0SXNWaXNp
YmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnVwZGF0ZUZpbmRTdHJpbmcp
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2V0RGlhZ25vc3RpY0xvZ2dpbmdB
dmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2hvd0NvbnNvbGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2hvd1Jlc291cmNlcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzaG93TWFpblJlc291cmNlRm9yRnJhbWUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c3RhcnRQYWdlUHJvZmlsaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnN0b3BQYWdlUHJvZmlsaW5nKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnN0YXJ0RWxlbWVudFNlbGVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzdG9wRWxlbWVudFNlbGVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpkaWRTYXZlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yVUk6OmRpZEFwcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0
b3JVSTo6ZXZhbHVhdGVJbkZyb250ZW5kRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3RvclVJOjpwYWdlUGF1c2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9y
VUk6OnBhZ2VVbnBhdXNlZCk6CisKIDIwMjAtMTAtMjEgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBs
ZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBJbnRyb2R1Y2UgX1dLSW5zcGVjdG9yQ29uZmlndXJh
dGlvbiBmb3IgY3VzdG9taXppbmcgbG9jYWwgYW5kIHJlbW90ZSBXZWIgSW5zcGVjdG9ycwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9jZi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L2NmL0NoYW5nZUxvZwppbmRleCAwNmU3OTYwZWZmNmVjMDY2MTRhZWRlZGRhM2RlMGJh
NzcxMjRhMTMwLi5lZTc0ZTE2NDg2NjEzZDU1M2ZhOGJhODAwOTQyNDkzMmFjOWI4MWUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2NmL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L2NmL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTEwLTE2ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUg
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIHRvIFdlYkNvcmUsIGNsZWFuIHVwIHVzZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgzNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzODQ0MDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGV2aW4gUm91c3NvLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xp
ZW50Q0YuY3BwOgorICAgICAgICAoV2ViSW5zcGVjdG9yQ2xpZW50OjpzZW5kTWVzc2FnZVRvRnJv
bnRlbmQpOgorCiAyMDE5LTA4LTE4ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+
CiAKICAgICAgICAgW1dURl0gQWRkIG1ha2VVbmlxdWU8VD4sIHdoaWNoIGVuc3VyZXMgVCBpcyBm
YXN0LWFsbG9jYXRlZCwgbWFrZVVuaXF1ZSAvIG1ha2VVbmlxdWVXaXRob3V0RmFzdE1hbGxvY0No
ZWNrIHBhcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGYyNzQ3Y2FmNzE0Mzk2ODY3ZmM2YTY3Yjlj
NzA0MjY5NThmNGE0ODAuLjg0NjQ3YWU5OGYzY2YxZGNiZmRiZmUzZTNjM2FkZTUxYjY4Y2RiNDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNjkyLDYgKzY5Miw3IEBAIHNldChXZWJDb3JlX1BSSVZB
VEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rv
ckRlYnVnZ2FibGVUeXBlLmgKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNw
YXRjaGVyLmgKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaAogICAgIGlu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgKICAgICBpbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggZmQ2ODVlMzI4OWVhYzZhZDk5
OGZkMWI4YmJkMjFjYjhmYWUyYzQ0My4uYmRkZTMzZDExNzk5NjIzNTAyZmFlOGNjMjc1ZWZmZWIy
NjI4Yzc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTEzOTgsNiArMTM5OCw3IEBAIGluc3BlY3Rvci9J
bnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5jcHAKIGluc3BlY3Rvci9JbnNwZWN0b3JDYW52
YXMuY3BwCiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKIGluc3BlY3Rvci9JbnNw
ZWN0b3JEYXRhYmFzZVJlc291cmNlLmNwcAoraW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5jcHAKIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNw
cAogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKIGluc3BlY3Rvci9JbnNwZWN0
b3JIaXN0b3J5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGZmNTZjMWRmMzIyMDc4N2FmNmRlYzgzNDVkNzc1NzY3MDA5OGZk
OTMuLjNlYjkxY2I1NjExYmU1MzY0ZDBmYWUzZGRiNTk1M2FmNGUwNzU3NGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI5ODAs
NiArMjk4MCw3IEBACiAJCTk4Q0U0MzJBMTI5RTAwRTUwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OENFNDMyOTEy
OUUwMEU1MDA1ODIxREMgLyogTGlua0xvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk4RUIxRjk1MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJ
bXBsZW1lbnRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOThFQjFGOTQxMzEzRkUwNTAwRDBFMUVBIC8qIE5vdEltcGxlbWVudGVkLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTkyMDM5ODMxOEI5NUJD
NjAwQjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTkyMDM5ODExOEI5NUJDNjAwQjM5QUY5IC8qIFVzZXJJbnB1
dEJyaWRnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTk5NEM2MDNBMjUzQTI3NzMwMEJERjA2MCAvKiBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5
NEM2MDM3MjUzQTI3NzIwMEJERjA2MCAvKiBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5OTZF
NTlERjFERjAxMjhEMDA2NjEyQjkgLyogTmF2aWdhdG9yV2ViRHJpdmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZFNTlEQzFERjAwRDkwMDA2NjEy
QjkgLyogTmF2aWdhdG9yV2ViRHJpdmVyLmggKi87IH07CiAJCTk5RDFCMkQzMjNBQzE0MzEwMDgx
MUNGMCAvKiBJbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlEMUIyRDEyM0FDMTQzMDAwODExQ0YwIC8qIEluc3Bl
Y3RvckRlYnVnZ2FibGVUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOUE1MjhFODQxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUE1MjhF
ODIxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTc1Miw2ICsxMTc1Myw4IEBACiAJ
CTk5MDhCMEZGMUJDQUQwN0QwMEVEMzU3MiAvKiBSZWFkYWJsZVN0cmVhbUJZT0JSZWFkZXJCdWls
dGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZWFkYWJsZVN0cmVhbUJZ
T0JSZWFkZXJCdWlsdGlucy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9SZWFkYWJs
ZVN0cmVhbUJZT0JSZWFkZXJCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQk5OTIwMzk4MDE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklucHV0QnJpZGdlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJJbnB1dEJyaWRnZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MjAzOTgxMThCOTVCQzYwMEIzOUFG
OSAvKiBVc2VySW5wdXRCcmlkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VXNlcklucHV0QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NEM2MDM3
MjUzQTI3NzIwMEJERjA2MCAvKiBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRj
aGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NEM2MDM5MjUzQTI3NzMwMEJE
RjA2MCAvKiBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk2RTU5REIxREYwMEQ5MDAwNjYxMkI5
IC8qIE5hdmlnYXRvcldlYkRyaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBOYXZpZ2F0b3JXZWJEcml2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5OTZFNTlEQzFERjAwRDkwMDA2NjEyQjkgLyogTmF2aWdhdG9yV2ViRHJpdmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRvcldlYkRyaXZlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTZFNTlERDFERjAwRDkwMDA2NjEyQjkgLyogTmF2
aWdhdG9yK1dlYkRyaXZlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gIk5hdmlnYXRvcitX
ZWJEcml2ZXIuaWRsIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MzkxLDYgKzE4
Mzk0LDggQEAKIAkJCQk0MUYwNjIxMzBGNUYxOTI2MDBBMDdFQUMgLyogSW5zcGVjdG9yRGF0YWJh
c2VSZXNvdXJjZS5jcHAgKi8sCiAJCQkJNDFGMDYyMTIwRjVGMTkyNjAwQTA3RUFDIC8qIEluc3Bl
Y3RvckRhdGFiYXNlUmVzb3VyY2UuaCAqLywKIAkJCQk5OUQxQjJEMTIzQUMxNDMwMDA4MTFDRjAg
LyogSW5zcGVjdG9yRGVidWdnYWJsZVR5cGUuaCAqLywKKwkJCQk5OTRDNjAzOTI1M0EyNzczMDBC
REYwNjAgLyogSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcCAqLywKKwkJCQk5OTRD
NjAzNzI1M0EyNzcyMDBCREYwNjAgLyogSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgg
Ki8sCiAJCQkJRjM0NEM3MTIxMTI1QjgyQzAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50LmggKi8sCiAJCQkJRjM0NEM3NTcxMTI5NEZGNjAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWwuY3BwICovLAogCQkJCUYzNDRDNzUyMTEyOTREOUQwMEYyNkVFRSAvKiBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggKi8sCkBAIC0zMjE0MSw2ICszMjE0Niw3IEBA
CiAJCQkJQTVCODFDQUIxRkFBNDQ2MjAwMzdEMUU2IC8qIEluc3BlY3RvckRPTUFnZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNUI4MUNBQzFGQUE0NDYyMDAzN0QxRTYgLyogSW5zcGVjdG9yRE9N
RGVidWdnZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQUQxRkFBNDQ2MjAwMzdE
MUU2IC8qIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk0
QzYwM0EyNTNBMjc3MzAwQkRGMDYwIC8qIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRjM0NEM3MTQxMTI1QjgyQzAwRjI2RUVFIC8qIEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGMzQ0Qzc1MzExMjk0RDlEMDBG
MjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0EwRTc3MEYxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwZDRiMWFiYmI5
MDYyMjU3YzhjNTMwY2Y0ODlkNWYwMGE2ZDIxMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcApAQCAt
MCwwICsxLDE2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIgorCisjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgor
I2luY2x1ZGUgIlNjcmlwdERpc2FsbG93ZWRTY29wZS5oIgorI2luY2x1ZGUgIlNjcmlwdFN0YXRl
LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnJhbWVUcmFjZXJzLmg+CisKKworI2luY2x1
ZGUgPHd0Zi9EZWJ1Z1V0aWxpdGllcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0luc3Bl
Y3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
KFBhZ2UmIGZyb250ZW5kUGFnZSkKKyAgICA6IG1fZnJvbnRlbmRQYWdlKG1ha2VXZWFrUHRyKGZy
b250ZW5kUGFnZSkpCit7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
OjpyZXNldCgpCit7CisgICAgbV9mcm9udGVuZExvYWRlZCA9IGZhbHNlOworICAgIG1fc3VzcGVu
ZGVkID0gZmFsc2U7CisgICAgbV9xdWV1ZWRFeHByZXNzaW9ucy5jbGVhcigpOworfQorCit2b2lk
IEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZnJvbnRlbmRMb2FkZWQoKQoreworICAg
IEFTU0VSVChtX2Zyb250ZW5kUGFnZSk7CisgICAgbV9mcm9udGVuZExvYWRlZCA9IHRydWU7CisK
KyAgICBTTEVFUF9USFJFQURfRk9SX0RFQlVHR0VSKCk7CisgICAgZXZhbHVhdGVRdWV1ZWRFeHBy
ZXNzaW9ucygpOworfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6c3Vz
cGVuZChib29sIHVuc3VzcGVuZFNvb24pCit7CisgICAgQVNTRVJUKG1fZnJvbnRlbmRMb2FkZWQp
OworCisgICAgaWYgKG1fc3VzcGVuZGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3N1c3Bl
bmRlZCA9IHRydWU7CisKKyAgICBpZiAodW5zdXNwZW5kU29vbikgeworICAgICAgICBSdW5Mb29w
OjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0geworICAg
ICAgICAgICAgLy8gSWYgdGhlIGZyb250ZW5kIHBhZ2UgaGFzIGJlZW4gZGVhbGxvY2F0ZWQsIHRo
ZXJlJ3Mgbm90aGluZyB0byBkby4KKyAgICAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9m
cm9udGVuZFBhZ2UpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAo
IXByb3RlY3RlZFRoaXMtPmlzU3VzcGVuZGVkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT51bnN1c3BlbmQoKTsKKyAgICAgICAgfSk7Cisg
ICAgfQorfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6dW5zdXNwZW5k
KCkKK3sKKyAgICBpZiAoIW1fc3VzcGVuZGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3N1
c3BlbmRlZCA9IGZhbHNlOworCisgICAgZXZhbHVhdGVRdWV1ZWRFeHByZXNzaW9ucygpOworfQor
Cit2b2lkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2hDb21tYW5kKGNv
bnN0IFN0cmluZyYgY29tbWFuZCwgVmVjdG9yPFJlZjxKU09OOjpWYWx1ZT4+JiYgYXJndW1lbnRz
KQoreworICAgIFN0cmluZ0J1aWxkZXIgZXhwcmVzc2lvbjsKKyAgICBleHByZXNzaW9uLmFwcGVu
ZExpdGVyYWwoIkluc3BlY3RvckZyb250ZW5kQVBJLmRpc3BhdGNoKFtcIiIpOworICAgIGV4cHJl
c3Npb24uYXBwZW5kKGNvbW1hbmQpOworICAgIGV4cHJlc3Npb24uYXBwZW5kKCciJyk7CisKKyAg
ICBmb3IgKGF1dG8mIGFyZ3VtZW50IDogYXJndW1lbnRzKSB7CisgICAgICAgIGV4cHJlc3Npb24u
YXBwZW5kTGl0ZXJhbCgiLCAiKTsKKyAgICAgICAgYXJndW1lbnQtPndyaXRlSlNPTihleHByZXNz
aW9uKTsKKyAgICB9CisKKyAgICBleHByZXNzaW9uLmFwcGVuZCgnKScpOworICAgIGV2YWx1YXRl
T3JRdWV1ZUV4cHJlc3Npb24oZXhwcmVzc2lvbi50b1N0cmluZygpKTsKK30KKwordm9pZCBJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoTWVzc2FnZUFzeW5jKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKK3sKKyAgICBldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKG1ha2VTdHJp
bmcoIkluc3BlY3RvckZyb250ZW5kQVBJLmRpc3BhdGNoTWVzc2FnZUFzeW5jKCIsIG1lc3NhZ2Us
ICIpIikpOworfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVh
dGVPclF1ZXVlRXhwcmVzc2lvbihjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24pCit7CisgICAgLy8g
SWYgdGhlIGZyb250ZW5kIHBhZ2UgaGFzIGJlZW4gZGVhbGxvY2F0ZWQsIHRoZW4gdGhlcmUgaXMg
bm90aGluZyB0byBkby4KKyAgICBpZiAoIW1fZnJvbnRlbmRQYWdlKQorICAgICAgICByZXR1cm47
CisKKyAgICAvLyBTb21ldGltZXMgd2UgZ2V0IGhlcmUgYnkgc2VuZGluZyBtZXNzYWdlcyBmb3Ig
ZXZlbnRzIHRyaWdnZXJlZCBieSBET00gbXV0YXRpb25zIGVhcmxpZXIgaW4gdGhlIGNhbGwgc3Rh
Y2suCisgICAgLy8gSWYgdGhpcyBpcyB0aGUgY2FzZSwgdGhlbiBpdCdzIG5vdCBzYWZlIHRvIGV2
YWx1YXRlIHNjcmlwdCBzeW5jaHJvbm91c2x5LCBzbyBkbyBpdCBsYXRlci4gVGhpcyBvbmx5IGFm
ZmVjdHMKKyAgICAvLyBXZWJLaXQxIGFuZCBzb21lIGxheW91dCB0ZXN0cyB0aGF0IHVzZSBhIHNp
bmdsZSB3ZWIgcHJvY2VzcyBmb3IgYm90aCB0aGUgaW5zcGVjdG9yIGFuZCBpbnNwZWN0ZWQgcGFn
ZS4KKyAgICBpZiAoIVNjcmlwdERpc2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFkOjppc1Njcmlw
dEFsbG93ZWQoKSkKKyAgICAgICAgc3VzcGVuZCh0cnVlKTsKKworICAgIGlmICghbV9mcm9udGVu
ZExvYWRlZCB8fCBtX3N1c3BlbmRlZCkgeworICAgICAgICBtX3F1ZXVlZEV4cHJlc3Npb25zLmFw
cGVuZChleHByZXNzaW9uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGV2YWx1YXRl
RXhwcmVzc2lvbihleHByZXNzaW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXI6OmV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKQoreworICAgIC8vIElmIHRoZSBm
cm9udGVuZCBwYWdlIGhhcyBiZWVuIGRlYWxsb2NhdGVkLCB0aGVuIHRoZXJlIGlzIG5vdGhpbmcg
dG8gZG8uCisgICAgaWYgKCFtX2Zyb250ZW5kUGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKG1fcXVldWVkRXhwcmVzc2lvbnMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBhdXRvIHF1ZXVlZEV4cHJlc3Npb25zID0gc3RkOjpleGNoYW5nZShtX3F1ZXVlZEV4cHJlc3Np
b25zLCB7IH0pOworICAgIGZvciAoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uIDogcXVldWVkRXhw
cmVzc2lvbnMpCisgICAgICAgIGV2YWx1YXRlRXhwcmVzc2lvbihleHByZXNzaW9uKTsKK30KKwor
dm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmV2YWx1YXRlRXhwcmVzc2lvbihj
b25zdCBTdHJpbmcmIGV4cHJlc3Npb24pCit7CisgICAgQVNTRVJUKG1fZnJvbnRlbmRQYWdlKTsK
KyAgICBBU1NFUlQoIW1fZnJvbnRlbmRQYWdlLT5tYWluRnJhbWUoKS5zY3JpcHQoKS5pc1BhdXNl
ZCgpKTsKKyAgICBBU1NFUlQoIW1fc3VzcGVuZGVkKTsKKyAgICBBU1NFUlQobV9xdWV1ZWRFeHBy
ZXNzaW9ucy5pc0VtcHR5KCkpOworCisgICAgSlNDOjpTdXNwZW5kRXhjZXB0aW9uU2NvcGUgc2Nv
cGUoJm1fZnJvbnRlbmRQYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkudm0oKSk7CisgICAgbV9m
cm9udGVuZFBhZ2UtPm1haW5GcmFtZSgpLnNjcmlwdCgpLmV4ZWN1dGVTY3JpcHRJZ25vcmluZ0V4
Y2VwdGlvbihleHByZXNzaW9uKTsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXI6OmV2YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBleHByZXNz
aW9uKQoreworICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24oZXhwcmVzc2lvbik7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyM2Jk
Y2ZhNzZmZTY5NTY1MzUwN2IwN2Y4YmE2YzIwMTU3MjJiZWUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgK
QEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlIDx3dGYvSlNPTlZhbHVlcy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQYWdlOworCitjbGFzcyBJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEluc3BlY3RvckZy
b250ZW5kQVBJRGlzcGF0Y2hlcj4gY3JlYXRlKFBhZ2UmIHBhZ2UpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIocGFnZSkp
OworICAgIH0KKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzZXQoKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGZyb250ZW5kTG9hZGVkKCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHN1c3BlbmQoYm9vbCB1bnN1c3BlbmRTb29uID0gZmFsc2UpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgdW5zdXNwZW5kKCk7CisgICAgYm9vbCBpc1N1c3BlbmRlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fc3VzcGVuZGVkOyB9CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc3BhdGNoQ29tbWFu
ZChjb25zdCBTdHJpbmcmIGNvbW1hbmQsIFZlY3RvcjxSZWY8SlNPTjo6VmFsdWU+PiYmIGFyZ3Vt
ZW50cyA9IHsgfSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNwYXRjaE1lc3NhZ2VBc3lu
Yyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBldmFs
dWF0ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYpOworcHJpdmF0ZToKKyAgICBX
RUJDT1JFX0VYUE9SVCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIoUGFnZSYpOworCisg
ICAgdm9pZCBldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKGNvbnN0IFN0cmluZyYpOworICAgIHZv
aWQgZXZhbHVhdGVRdWV1ZWRFeHByZXNzaW9ucygpOworICAgIHZvaWQgZXZhbHVhdGVFeHByZXNz
aW9uKGNvbnN0IFN0cmluZyYpOworCisgICAgV2Vha1B0cjxQYWdlPiBtX2Zyb250ZW5kUGFnZTsK
KyAgICBWZWN0b3I8U3RyaW5nPiBtX3F1ZXVlZEV4cHJlc3Npb25zOworICAgIGJvb2wgbV9mcm9u
dGVuZExvYWRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3N1c3BlbmRlZCB7IGZhbHNlIH07Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCmluZGV4IDRmZTg4YjdlOGY4YjhiMDc0ZTE3
OGQwNDU4YTEyMGJiYjVjZWY1ZDguLjBhNzlkODZiM2M0Njk3NzgxNGE2OGY0ZWFhZWRiOGE4ZWU5
ZmZiYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZENsaWVudC5oCkBAIC00MSw2ICs0MSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEZsb2F0UmVjdDsKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjsKIAog
Y2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQgewogcHVibGljOgpAQCAtNTYsNiArNTcsOSBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHdpbmRvd09iamVjdENs
ZWFyZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZyb250ZW5kTG9hZGVkKCkgPSAwOwogCisg
ICAgdmlydHVhbCB2b2lkIHBhZ2VQYXVzZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBhZ2VV
bnBhdXNlZCgpID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBzdGFydFdpbmRvd0RyYWcoKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIG1vdmVXaW5kb3dCeShmbG9hdCB4LCBmbG9hdCB5KSA9IDA7CiAK
QEAgLTEwNSwxMCArMTA5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9z
dGljRXZlbnQoY29uc3QgU3RyaW5nJiAvKiBldmVudE5hbWUgKi8sIGNvbnN0IERpYWdub3N0aWNM
b2dnaW5nQ2xpZW50OjpWYWx1ZURpY3Rpb25hcnkmKSB7IH0KICNlbmRpZgogCi0gICAgdmlydHVh
bCB2b2lkIHBhZ2VQYXVzZWQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGFnZVVucGF1c2VkKCkg
eyB9Ci0KICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2VuZE1lc3NhZ2VUb0JhY2tl
bmQoY29uc3QgU3RyaW5nJikgPSAwOworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyJiBmcm9udGVuZEFQSURpc3BhdGNoZXIoKSA9IDA7CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGJvb2wgaXNVbmRlclRlc3QoKSA9IDA7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
Q2xpZW50TG9jYWwuY3BwCmluZGV4IGNjZTU5MDM1ZWRlNTcwYTY0OWExMjY3NmMzOTMyMmQ0OGU4
NGQ4ZjQuLmQ2NDAzNGNjNDk1MWZhZjk3OWY4MGFiMTEwNWNiMTg0MDI3NWNhYTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRMb2NhbC5jcHAKQEAgLTE1MCw2ICsxNTAsNyBAQCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsKEluc3BlY3RvckNvbnRyb2xsZXIqCiAg
ICAgLCBtX3NldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKQogICAgICwgbV9kb2NrU2lkZShEb2Nr
U2lkZTo6VW5kb2NrZWQpCiAgICAgLCBtX2Rpc3BhdGNoVGFzayhJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hUYXNrOjpjcmVhdGUoaW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIpKQorICAgICwgbV9mcm9u
dGVuZEFQSURpc3BhdGNoZXIoSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpjcmVhdGUo
KmZyb250ZW5kUGFnZSkpCiB7CiAgICAgbV9mcm9udGVuZFBhZ2UtPnNldHRpbmdzKCkuc2V0QWxs
b3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKHRydWUpOwogfQpAQCAtMTg1LDEwICsxODYsMTggQEAg
dm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpmcm9udGVuZExvYWRlZCgpCiAgICAg
Ly8gVGh1cyBpZiB3ZSBjYWxsIGNhbkF0dGFjaFdpbmRvdyBmaXJzdCB3ZSBjYW4gYXZvaWQgdGhp
cyBwcm9ibGVtLiBUaGlzIGNoYW5nZSBkb2VzIG5vdCBjYXVzZSBhbnkgcmVncmVzc2lvbnMgb24g
TWFjLgogICAgIHNldERvY2tpbmdVbmF2YWlsYWJsZSghY2FuQXR0YWNoV2luZG93KCkpOwogICAg
IGJyaW5nVG9Gcm9udCgpOwotICAgIG1fZnJvbnRlbmRMb2FkZWQgPSB0cnVlOwotICAgIGZvciAo
YXV0byYgZXZhbHVhdGUgOiBtX2V2YWx1YXRlT25Mb2FkKQotICAgICAgICBldmFsdWF0ZU9uTG9h
ZChldmFsdWF0ZSk7Ci0gICAgbV9ldmFsdWF0ZU9uTG9hZC5jbGVhcigpOworCisgICAgbV9mcm9u
dGVuZEFQSURpc3BhdGNoZXItPmZyb250ZW5kTG9hZGVkKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6cGFnZVBhdXNlZCgpCit7CisgICAgbV9mcm9udGVuZEFQSURp
c3BhdGNoZXItPnN1c3BlbmQoKTsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsOjpwYWdlVW5wYXVzZWQoKQoreworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT51bnN1
c3BlbmQoKTsKIH0KIAogVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiBJbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsOjp1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkgY29uc3QKQEAg
LTIyNyw3ICsyMzYsNyBAQCBib29sIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNhbkF0
dGFjaFdpbmRvdygpCiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RG9j
a2luZ1VuYXZhaWxhYmxlKGJvb2wgdW5hdmFpbGFibGUpCiB7Ci0gICAgZGlzcGF0Y2gobWFrZVN0
cmluZygiW1wic2V0RG9ja2luZ1VuYXZhaWxhYmxlXCIsICIsIHVuYXZhaWxhYmxlID8gInRydWUi
IDogImZhbHNlIiwgJ10nKSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNo
Q29tbWFuZCgic2V0RG9ja2luZ1VuYXZhaWxhYmxlIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUo
dW5hdmFpbGFibGUpIH0pOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6
OmNoYW5nZUF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKQEAgLTI5Nyw3ICsz
MDYsNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldEF0dGFjaGVkV2lu
ZG93KERvY2tTaWRlIGRvY2tTaWRlKQogCiAgICAgbV9kb2NrU2lkZSA9IGRvY2tTaWRlOwogCi0g
ICAgZGlzcGF0Y2gobWFrZVN0cmluZygiW1wic2V0RG9ja1NpZGVcIiwgXCIiLCBzaWRlLCAiXCJd
IikpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNldERv
Y2tTaWRlIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUoc2lkZSkgfSk7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6cmVzdG9yZUF0dGFjaGVkV2luZG93SGVpZ2h0KCkK
QEAgLTMyMSw3ICszMzAsNyBAQCBib29sIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Omlz
RGVidWdnaW5nRW5hYmxlZCgpCiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6
c2V0RGVidWdnaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7Ci0gICAgZGlzcGF0Y2gobWFrZVN0
cmluZygiW1wic2V0RGVidWdnaW5nRW5hYmxlZFwiLCAiLCBlbmFibGVkID8gInRydWUiIDogImZh
bHNlIiwgJ10nKSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFu
ZCgic2V0RGVidWdnaW5nRW5hYmxlZCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKGVuYWJsZWQp
IH0pOwogfQogCiBib29sIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmlzVGltZWxpbmVQ
cm9maWxpbmdFbmFibGVkKCkKQEAgLTMzMyw3ICszNDIsNyBAQCBib29sIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWw6OmlzVGltZWxpbmVQcm9maWxpbmdFbmFibGVkKCkKIAogdm9pZCBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoYm9v
bCBlbmFibGVkKQogewotICAgIGRpc3BhdGNoKG1ha2VTdHJpbmcoIltcInNldFRpbWVsaW5lUHJv
ZmlsaW5nRW5hYmxlZFwiLCAiLCBlbmFibGVkID8gInRydWUiIDogImZhbHNlIiwgJ10nKSk7Cisg
ICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0VGltZWxpbmVQ
cm9maWxpbmdFbmFibGVkIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUoZW5hYmxlZCkgfSk7CiB9
CiAKIGJvb2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6aXNQcm9maWxpbmdKYXZhU2Ny
aXB0KCkKQEAgLTM0NSwyOCArMzU0LDI4IEBAIGJvb2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbDo6aXNQcm9maWxpbmdKYXZhU2NyaXB0KCkKIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsOjpzdGFydFByb2ZpbGluZ0phdmFTY3JpcHQoKQogewotICAgIGRpc3BhdGNoKCJb
XCJzdGFydFByb2ZpbGluZ0phdmFTY3JpcHRcIl0iKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0
Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzdGFydFByb2ZpbGluZ0phdmFTY3JpcHQiX3MpOwogfQog
CiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnN0b3BQcm9maWxpbmdKYXZhU2Ny
aXB0KCkKIHsKLSAgICBkaXNwYXRjaCgiW1wic3RvcFByb2ZpbGluZ0phdmFTY3JpcHRcIl0iKTsK
KyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzdG9wUHJvZmls
aW5nSmF2YVNjcmlwdCJfcyk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bDo6c2hvd0NvbnNvbGUoKQogewotICAgIGRpc3BhdGNoKCJbXCJzaG93Q29uc29sZVwiXSIpOwor
ICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNob3dDb25zb2xl
Il9zKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzaG93UmVzb3Vy
Y2VzKCkKIHsKLSAgICBkaXNwYXRjaCgiW1wic2hvd1Jlc291cmNlc1wiXSIpOworICAgIG1fZnJv
bnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNob3dSZXNvdXJjZXMiX3MpOwog
fQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNob3dNYWluUmVzb3VyY2VG
b3JGcmFtZShGcmFtZSogZnJhbWUpCiB7CiAgICAgU3RyaW5nIGZyYW1lSWQgPSBtX2luc3BlY3Rl
ZFBhZ2VDb250cm9sbGVyLT5lbnN1cmVQYWdlQWdlbnQoKS5mcmFtZUlkKGZyYW1lKTsKLSAgICBk
aXNwYXRjaChtYWtlU3RyaW5nKCJbXCJzaG93TWFpblJlc291cmNlRm9yRnJhbWVcIiwgXCIiLCBm
cmFtZUlkLCAiXCJdIikpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENv
bW1hbmQoInNob3dNYWluUmVzb3VyY2VGb3JGcmFtZSJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRl
KGZyYW1lSWQpIH0pOwogfQogCiB1bnNpZ25lZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
Ojpjb25zdHJhaW5lZEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIHByZWZlcnJlZEhlaWdo
dCwgdW5zaWduZWQgdG90YWxXaW5kb3dIZWlnaHQpCkBAIC0zOTQsNDYgKzQwMywxMiBAQCB1bnNp
Z25lZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjppbnNwZWN0aW9uTGV2ZWwoKSBjb25z
dAogICAgIHJldHVybiBtX2luc3BlY3RlZFBhZ2VDb250cm9sbGVyLT5pbnNwZWN0aW9uTGV2ZWwo
KSArIDE7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZGlzcGF0Y2go
Y29uc3QgU3RyaW5nJiBzaWduYXR1cmUpCi17Ci0gICAgQVNTRVJUKCFzaWduYXR1cmUuaXNFbXB0
eSgpKTsKLSAgICBBU1NFUlQoc2lnbmF0dXJlLnN0YXJ0c1dpdGgoJ1snKSk7Ci0gICAgQVNTRVJU
KHNpZ25hdHVyZS5lbmRzV2l0aCgnXScpKTsKLQotICAgIGV2YWx1YXRlT25Mb2FkKCJJbnNwZWN0
b3JGcm9udGVuZEFQSS5kaXNwYXRjaCgiICsgc2lnbmF0dXJlICsgIikiKTsKLX0KLQotdm9pZCBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaE1lc3NhZ2UoY29uc3QgU3RyaW5n
JiBtZXNzYWdlT2JqZWN0KQotewotICAgIEFTU0VSVCghbWVzc2FnZU9iamVjdC5pc0VtcHR5KCkp
OwotCi0gICAgZXZhbHVhdGVPbkxvYWQoIkluc3BlY3RvckZyb250ZW5kQVBJLmRpc3BhdGNoTWVz
c2FnZSgiICsgbWVzc2FnZU9iamVjdCArICIpIik7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbDo6ZGlzcGF0Y2hNZXNzYWdlQXN5bmMoY29uc3QgU3RyaW5nJiBtZXNzYWdl
T2JqZWN0KQotewotICAgIEFTU0VSVCghbWVzc2FnZU9iamVjdC5pc0VtcHR5KCkpOwotCi0gICAg
ZXZhbHVhdGVPbkxvYWQoIkluc3BlY3RvckZyb250ZW5kQVBJLmRpc3BhdGNoTWVzc2FnZUFzeW5j
KCIgKyBtZXNzYWdlT2JqZWN0ICsgIikiKTsKLX0KLQogYm9vbCBJbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsOjpldmFsdWF0ZUFzQm9vbGVhbihjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24pCiB7
CiAgICAgYXV0byYgc3RhdGUgPSAqbWFpbldvcmxkRXhlY1N0YXRlKCZtX2Zyb250ZW5kUGFnZS0+
bWFpbkZyYW1lKCkpOwogICAgIHJldHVybiBtX2Zyb250ZW5kUGFnZS0+bWFpbkZyYW1lKCkuc2Ny
aXB0KCkuZXhlY3V0ZVNjcmlwdElnbm9yaW5nRXhjZXB0aW9uKGV4cHJlc3Npb24pLnRvV1RGU3Ry
aW5nKCZzdGF0ZSkgPT0gInRydWUiOwogfQogCi12b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWw6OmV2YWx1YXRlT25Mb2FkKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKLXsKLSAgICBp
ZiAoIW1fZnJvbnRlbmRMb2FkZWQpIHsKLSAgICAgICAgbV9ldmFsdWF0ZU9uTG9hZC5hcHBlbmQo
ZXhwcmVzc2lvbik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBKU0M6OlN1c3BlbmRF
eGNlcHRpb25TY29wZSBzY29wZSgmbV9mcm9udGVuZFBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIo
KS52bSgpKTsKLSAgICBtX2Zyb250ZW5kUGFnZS0+bWFpbkZyYW1lKCkuc2NyaXB0KCkuZXZhbHVh
dGVJZ25vcmluZ0V4Y2VwdGlvbihTY3JpcHRTb3VyY2VDb2RlKGV4cHJlc3Npb24pKTsKLX0KLQog
UGFnZSogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6aW5zcGVjdGVkUGFnZSgpIGNvbnN0
CiB7CiAgICAgaWYgKCFtX2luc3BlY3RlZFBhZ2VDb250cm9sbGVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgKaW5k
ZXggNDNhM2VjZGM3NjhkMGUwZmU3M2FkZmE2NWVlM2FmM2U3NzEzYjg2OC4uODJiZDBmOGM1Y2Iz
NjkzYTRlNWMxYzg3OWYzOTUxOGZlMjgzMzZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oCkBAIC0zMSw2ICsz
MSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCIKICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNjYs
NiArNjcsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdpbmRvd09iamVj
dENsZWFyZWQoKSBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZyb250ZW5kTG9hZGVk
KCkgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwYWdlUGF1c2VkKCkgZmluYWw7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwYWdlVW5wYXVzZWQoKSBmaW5hbDsKIAogICAgIHZv
aWQgc3RhcnRXaW5kb3dEcmFnKCkgb3ZlcnJpZGUgeyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBtb3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkgZmluYWw7CkBAIC05MSw2ICs5NCw4IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBpbnNwZWN0aW9uTGV2ZWwoKSBj
b25zdCBmaW5hbDsKICAgICBTdHJpbmcgYmFja2VuZENvbW1hbmRzVVJMKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gU3RyaW5nKCk7IH07CiAKKyAgICBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNo
ZXImIGZyb250ZW5kQVBJRGlzcGF0Y2hlcigpIGZpbmFsIHsgcmV0dXJuIG1fZnJvbnRlbmRBUElE
aXNwYXRjaGVyOyB9CisKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhbkF0dGFjaFdpbmRvdygp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RG9ja2luZ1VuYXZhaWxhYmxlKGJvb2wpOwog
CkBAIC0xMTksMTAgKzEyNCw2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBQYWdlKiBp
bnNwZWN0ZWRQYWdlKCkgY29uc3Q7CiAgICAgUGFnZSogZnJvbnRlbmRQYWdlKCkgY29uc3QgeyBy
ZXR1cm4gbV9mcm9udGVuZFBhZ2U7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0
Y2goY29uc3QgU3RyaW5nJiBzaWduYXR1cmUpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlz
cGF0Y2hNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU9iamVjdCk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkaXNwYXRjaE1lc3NhZ2VBc3luYyhjb25zdCBTdHJpbmcmIG1lc3NhZ2VPYmpl
Y3QpOwotCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHNldEF0dGFjaGVkV2luZG93SGVp
Z2h0KHVuc2lnbmVkKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEF0dGFjaGVkV2luZG93V2lk
dGgodW5zaWduZWQpID0gMDsKQEAgLTEzMiw3ICsxMzMsNiBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZh
dGU6CiAgICAgYm9vbCBldmFsdWF0ZUFzQm9vbGVhbihjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24p
OwotICAgIHZvaWQgZXZhbHVhdGVPbkxvYWQoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKTsKIAog
ICAgIGZyaWVuZCBjbGFzcyBGcm9udGVuZE1lbnVQcm92aWRlcjsKICAgICBJbnNwZWN0b3JDb250
cm9sbGVyKiBtX2luc3BlY3RlZFBhZ2VDb250cm9sbGVyIHsgbnVsbHB0ciB9OwpAQCAtMTQyLDgg
KzE0Miw4IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3RvckZyb250ZW5k
Q2xpZW50TG9jYWw6OlNldHRpbmdzPiBtX3NldHRpbmdzOwogICAgIGJvb2wgbV9mcm9udGVuZExv
YWRlZCB7IGZhbHNlIH07CiAgICAgRG9ja1NpZGUgbV9kb2NrU2lkZTsKLSAgICBWZWN0b3I8U3Ry
aW5nPiBtX2V2YWx1YXRlT25Mb2FkOwogICAgIFJlZjxJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hU
YXNrPiBtX2Rpc3BhdGNoVGFzazsKKyAgICBSZWY8SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRj
aGVyPiBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAyYWY3OGRiZDliNzEyMTRm
YjJlZGU4MTMzMTdlMjZhNzM0ODEzODMwLi43ZjVhMGQxMjhhZjhiMmI3OTIxNTk2NmM2N2NlODll
NGFiMGMwMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC00MDgsNyAr
NDA4LDcgQEAgdm9pZCBJbnNwZWN0b3JTdHViRnJvbnRlbmQ6OmNsb3NlV2luZG93KCkKIAogdm9p
ZCBJbnNwZWN0b3JTdHViRnJvbnRlbmQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpCiB7Ci0gICAgZGlzcGF0Y2hNZXNzYWdlQXN5bmMobWVzc2FnZSk7CisgICAg
ZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkuZGlzcGF0Y2hNZXNzYWdlQXN5bmMobWVzc2FnZSk7CiB9
CiAKIHN0YXRpYyBib29sIG1hcmtlclR5cGVGcm9tKGNvbnN0IFN0cmluZyYgbWFya2VyVHlwZSwg
RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDA5NDdl
NDlkYmQ2NzY5ZmYwMzU2NjI4MjE1MDU4MmQ0ZmRmMmE0OTEuLjY5NzBiZmI3MGQ0MTZlODAzMzA0
Y2U1MjFkNWRlM2YwYTVmMzNiMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNTQ3LDcgKzU0Nyw2IEBAIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3Bw
IEBuby11bmlmeQogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3Bw
CiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuY3BwCiBXZWJQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCi1XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwCiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyLmNwcAogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yVUkuY3BwCiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlSW5zcGVjdG9yVGFy
Z2V0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggOTgxZWM5M2ZmZjRjZGNlYmFmNjdiYWFkNGU2YzBjYmQ3NWI4ZDNjNS4uMzY1ZmY2
MzAzMDBlM2I2NzRkYmEwZjI3Zjc3NjNlODk1MjI0MjBiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDkyLDcgKzE0OTIsNiBAQAog
CQlBNTVCQTgyNTFCQTI1Q0ZCMDA3Q0QzM0QgLyogUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU1
QkE4MjIxQkEyNUJCODAwN0NEMzNEIC8qIFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMu
aCAqLzsgfTsKIAkJQTU1QkE4MjYxQkEyNUNGRDAwN0NEMzNEIC8qIFJlbW90ZVdlYkluc3BlY3Rv
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE1NUJBODIxMUJBMjVCQjgwMDdDRDMzRCAvKiBSZW1vdGVXZWJJbnNw
ZWN0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUE1NUJBODJCMUJBMzhFNjEw
MDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NUJBODI4MUJBMzhFMUUwMDdDRDMzRCAvKiBXZWJJ
bnNwZWN0b3JVdGlsaXRpZXMuaCAqLzsgfTsKLQkJQTU1QkE4MzUxQkEzRTcwQTAwN0NEMzNEIC8q
IFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU1QkE4MzMxQkEzRTZGQTAwN0NEMzNEIC8qIFdl
Ykluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oICovOyB9OwogCQlBNTg2MEU3MTIzMEY2
N0ZDMDA0NjFBQUUgLyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTg2MEU3MDIzMEY2N0RFMDA0
NjFBQUUgLyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmggKi87IH07CiAJCUE1OEI2
RjA4MThGQ0E3MzMwMDhDQkE1MyAvKiBXS0ZpbGVVcGxvYWRQYW5lbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU4QjZGMDYxOEZDQTczMzAwOENCQTUz
IC8qIFdLRmlsZVVwbG9hZFBhbmVsLmggKi87IH07CiAJCUE1QzBGMEE3MjAwMDY1NEQwMDUzNjUz
NiAvKiBfV0tOU1dpbmRvd0V4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTVDMEYwQTYyMDAwNjU0NDAwNTM2NTM2IC8qIF9XS05TV2luZG93RXh0
cmFzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTQ2NzIsOCArNDY3MSw2IEBACiAJCUE1NUJBODIyMUJBMjVCQjgwMDdDRDMzRCAvKiBSZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlBNTVCQTgyNzFCQTM4RTFFMDA3Q0QzM0QgLyog
V2ViSW5zcGVjdG9yVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkluc3BlY3RvclV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE1NUJBODI4MUJBMzhFMUUwMDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JVdGlsaXRpZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSW5zcGVjdG9yVXRpbGl0aWVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE1NUJBODMyMUJBM0U2RkEwMDdDRDMz
RCAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTU1QkE4MzMxQkEzRTZGQTAwN0NE
MzNEIC8qIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU4NjBFNkYyMzBGNjdERTAwNDYxQUFFIC8q
IFdlYlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBX
ZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuY3BwOyBwYXRoID0gTmV0d29yay9XZWJSZXNv
dXJjZUludGVyY2VwdENvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNTg2MEU3MDIzMEY2N0RFMDA0NjFBQUUgLyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9s
bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxlci5oOyBw
YXRoID0gTmV0d29yay9XZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU4QjZGMDYxOEZDQTczMzAwOENCQTUzIC8qIFdLRmlsZVVw
bG9hZFBhbmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRmlsZVVwbG9h
ZFBhbmVsLmg7IHBhdGggPSBpb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg3MDcsOCArODcwNCw2IEBACiAJCQkJMUM4RTJBMUMxMjc3
ODMzRjAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvci5tZXNzYWdlcy5pbiAqLywKIAkJCQlCQzExMUE1
OTExMkY0RkJCMDAzMzdCQUIgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCAqLywKIAkJCQlCQzAz
MkQ2RDEwRjQzNzhEMDA1OEMxNUEgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmggKi8sCi0JCQkJQTU1
QkE4MzIxQkEzRTZGQTAwN0NEMzNEIC8qIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
ci5jcHAgKi8sCi0JCQkJQTU1QkE4MzMxQkEzRTZGQTAwN0NEMzNEIC8qIFdlYkluc3BlY3RvckZy
b250ZW5kQVBJRGlzcGF0Y2hlci5oICovLAogCQkJCUZFRTQzRkQwMUU2N0FGQzYwMDc3RDZEMSAv
KiBXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyLmNwcCAqLywKIAkJCQlGRUU0M0ZEMTFF
NjdBRkM2MDA3N0Q2RDEgLyogV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlci5oICovLAog
CQkJCUZFRTQzRkQyMUU2N0FGQzYwMDc3RDZEMSAvKiBXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNw
YXRjaGVyLm1lc3NhZ2VzLmluICovLApAQCAtMTE0OTksNyArMTE0OTQsNiBAQAogCQkJCUJDQ0Y2
QUJEMTJDOTFFRjkwMDhGOUMzNSAvKiBXZWJJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM4
RTI4MjAxMjc1RDE1NDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMwMzJEODIxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkluc3BlY3RvckNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJQTU1QkE4MzUxQkEzRTcwQTAwN0NEMzNEIC8qIFdlYkluc3BlY3RvckZy
b250ZW5kQVBJRGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVFNDNGRDMxRTY3QjAx
ODAwNzdENkQxIC8qIFdlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZFREJEQ0Q3MUU2OEQyMDUwMEE1OUY4RiAvKiBXZWJJbnNwZWN0b3JJbnRlcnJ1
cHREaXNwYXRjaGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDOEUyQTM2MTI3Nzg1
MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3Bl
Y3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2Vi
SW5zcGVjdG9yVUkuY3BwCmluZGV4IDQ3ZDZmYTMzODNjNGVkYmFmMzE0ODBkZDQyYmVjNTA2Zjg0
YzgzYWYuLjdlMGVkNjQyYTAwYTcxNDZmMGI0YTk0NTc3ZDlhZDIwNTA5YTg5ODYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9y
VUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2Vi
SW5zcGVjdG9yVUkuY3BwCkBAIC01Myw3ICs1Myw3IEBAIFJlZjxSZW1vdGVXZWJJbnNwZWN0b3JV
ST4gUmVtb3RlV2ViSW5zcGVjdG9yVUk6OmNyZWF0ZShXZWJQYWdlJiBwYWdlKQogCiBSZW1vdGVX
ZWJJbnNwZWN0b3JVSTo6UmVtb3RlV2ViSW5zcGVjdG9yVUkoV2ViUGFnZSYgcGFnZSkKICAgICA6
IG1fcGFnZShwYWdlKQotICAgICwgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIocGFnZSkKKyAgICAs
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyKEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6
Y3JlYXRlKCpwYWdlLmNvcmVQYWdlKCkpKQogewogICAgIFdlYkluc3BlY3RvclVJOjplbmFibGVG
cm9udGVuZEZlYXR1cmVzKCk7CiB9CkBAIC02NSwzMCArNjUsMjkgQEAgdm9pZCBSZW1vdGVXZWJJ
bnNwZWN0b3JVSTo6aW5pdGlhbGl6ZShEZWJ1Z2dhYmxlSW5mb0RhdGEmJiBkZWJ1Z2dhYmxlSW5m
bywgY29uc3QKIAogICAgIG1fcGFnZS5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCku
c2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQodGhpcyk7CiAKLSAgICBtX2Zyb250ZW5kQVBJRGlz
cGF0Y2hlci5yZXNldCgpOwotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29t
bWFuZCgic2V0RG9ja2luZ1VuYXZhaWxhYmxlIl9zLCB0cnVlKTsKKyAgICBtX2Zyb250ZW5kQVBJ
RGlzcGF0Y2hlci0+cmVzZXQoKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0
Y2hDb21tYW5kKCJzZXREb2NraW5nVW5hdmFpbGFibGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0
ZSh0cnVlKSB9KTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6dXBkYXRlRmluZFN0
cmluZyhjb25zdCBTdHJpbmcmIGZpbmRTdHJpbmcpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwotICAgIEpTT046OlZhbHVlOjplc2NhcGVTdHJpbmcoYnVpbGRlciwgZmluZFN0cmluZyk7
Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJ1cGRhdGVGaW5k
U3RyaW5nIl9zLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRj
aGVyLT5kaXNwYXRjaENvbW1hbmQoInVwZGF0ZUZpbmRTdHJpbmciX3MsIHsgSlNPTjo6VmFsdWU6
OmNyZWF0ZShidWlsZGVyLnRvU3RyaW5nKCkpIH0pOwogfQogCiB2b2lkIFJlbW90ZVdlYkluc3Bl
Y3RvclVJOjpkaWRTYXZlKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIG1fZnJvbnRlbmRBUElE
aXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2F2ZWRVUkwiX3MsIHVybCk7CisgICAgbV9mcm9u
dGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2F2ZWRVUkwiX3MsIHsgSlNPTjo6
VmFsdWU6OmNyZWF0ZSh1cmwpIH0pOwogfQogCiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpk
aWRBcHBlbmQoY29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNo
ZXIuZGlzcGF0Y2hDb21tYW5kKCJhcHBlbmRlZFRvVVJMIl9zLCB1cmwpOworICAgIG1fZnJvbnRl
bmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoImFwcGVuZGVkVG9VUkwiX3MsIHsgSlNP
Tjo6VmFsdWU6OmNyZWF0ZSh1cmwpIH0pOwogfQogCiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJ
OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewotICAgIG1f
ZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoTWVzc2FnZUFzeW5jKG1lc3NhZ2UpOworICAg
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaE1lc3NhZ2VBc3luYyhtZXNzYWdlKTsK
IH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c2VuZE1lc3NhZ2VUb0JhY2tlbmQoY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMTA3LDEzICsxMDYsMjMgQEAgdm9pZCBSZW1vdGVXZWJJ
bnNwZWN0b3JVSTo6d2luZG93T2JqZWN0Q2xlYXJlZCgpCiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVj
dG9yVUk6OmZyb250ZW5kTG9hZGVkKCkKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5m
cm9udGVuZExvYWRlZCgpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5mcm9udGVuZExv
YWRlZCgpOwogCi0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJz
ZXRJc1Zpc2libGUiX3MsIHRydWUpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNw
YXRjaENvbW1hbmQoInNldElzVmlzaWJsZSJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHRydWUp
IH0pOwogCiAgICAgYnJpbmdUb0Zyb250KCk7CiB9CiAKK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9y
VUk6OnBhZ2VQYXVzZWQoKQoreworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5zdXNwZW5k
KCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnBhZ2VVbnBhdXNlZCgpCit7Cisg
ICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPnVuc3VzcGVuZCgpOworfQorCiB2b2lkIFJlbW90
ZVdlYkluc3BlY3RvclVJOjpjaGFuZ2VTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQog
ewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpTZXRTaGVldFJlY3QocmVj
dCksIG1fcGFnZS5pZGVudGlmaWVyKCkpOwpAQCAtMjQ2LDcgKzI1NSw3IEBAIHZvaWQgUmVtb3Rl
V2ViSW5zcGVjdG9yVUk6OnNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKGJvb2wgYXZhaWxh
YmxlKQogICAgIEFTU0VSVCghYXZhaWxhYmxlIHx8IHN1cHBvcnRzRGlhZ25vc3RpY0xvZ2dpbmco
KSk7CiAgICAgbV9kaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZSA9IGF2YWlsYWJsZTsKIAotICAg
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0RGlhZ25vc3RpY0xv
Z2dpbmdBdmFpbGFibGUiX3MsIG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUpOworICAgIG1f
ZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNldERpYWdub3N0aWNMb2dn
aW5nQXZhaWxhYmxlIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUobV9kaWFnbm9zdGljTG9nZ2lu
Z0F2YWlsYWJsZSkgfSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oCmluZGV4IGI0OTll
YzVjNTNmYWM2MjdmNWY0N2VlZmJjNGE5MDM4NmNkYTA2YzYuLjAyNWVjOTBhMWQ0YWYxYzlmNTUz
ZGJjNDJmN2M5MzlmZDQzOTg0OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgKQEAgLTI3LDcgKzI3LDcg
QEAKIAogI2luY2x1ZGUgIkRlYnVnZ2FibGVJbmZvRGF0YS5oIgogI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlci5oIgotI2luY2x1ZGUgIldlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CkBA
IC02Miw2ICs2MiwxMCBAQCBwdWJsaWM6CiAgICAgLy8gV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQKICAgICB2b2lkIHdpbmRvd09iamVjdENsZWFyZWQoKSBvdmVycmlkZTsKICAgICB2
b2lkIGZyb250ZW5kTG9hZGVkKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHBhZ2VQYXVzZWQoKSBv
dmVycmlkZTsKKyAgICB2b2lkIHBhZ2VVbnBhdXNlZCgpIG92ZXJyaWRlOworCiAgICAgdm9pZCBj
aGFuZ2VTaGVldFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBzdGFydFdpbmRvd0RyYWcoKSBvdmVycmlkZTsKICAgICB2b2lkIG1vdmVXaW5kb3dCeShm
bG9hdCB4LCBmbG9hdCB5KSBvdmVycmlkZTsKQEAgLTkyLDYgKzk2LDcgQEAgcHVibGljOgogICAg
IHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2
b2lkIHNob3dDZXJ0aWZpY2F0ZShjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKSBvdmVy
cmlkZTsKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9CYWNrZW5kKGNvbnN0IFN0cmluZyYpIG92ZXJy
aWRlOworICAgIFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlciYgZnJvbnRl
bmRBUElEaXNwYXRjaGVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9mcm9udGVuZEFQSURpc3BhdGNo
ZXI7IH0KIAogI2lmIEVOQUJMRShJTlNQRUNUT1JfVEVMRU1FVFJZKQogICAgIGJvb2wgc3VwcG9y
dHNEaWFnbm9zdGljTG9nZ2luZygpIG92ZXJyaWRlOwpAQCAtMTEwLDcgKzExNSw3IEBAIHByaXZh
dGU6CiAgICAgZXhwbGljaXQgUmVtb3RlV2ViSW5zcGVjdG9yVUkoV2ViUGFnZSYpOwogCiAgICAg
V2ViUGFnZSYgbV9wYWdlOwotICAgIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlciBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsKKyAgICBSZWY8V2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyPiBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsKICAgICBSZWZQdHI8V2Vi
Q29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0PiBtX2Zyb250ZW5kSG9zdDsKICAgICBEZWJ1Z2dh
YmxlSW5mb0RhdGEgbV9kZWJ1Z2dhYmxlSW5mbzsKICAgICBTdHJpbmcgbV9iYWNrZW5kQ29tbWFu
ZHNVUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljMzdiMDAzYzFjYjc3MWQ5YjNmNzlkZGE2NTUy
YTQ5MDdkN2VkZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTIzICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJJbnNwZWN0b3JG
cm9udGVuZEFQSURpc3BhdGNoZXIuaCIKLQotI2luY2x1ZGUgIldlYlBhZ2UuaCIKLSNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRTdGF0ZS5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LQotV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpXZWJJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXIoV2ViUGFnZSYgcGFnZSkKLSAgICA6IG1fcGFnZShwYWdlKQotewotfQot
Ci12b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6cmVzZXQoKQotewotICAg
IG1fZnJvbnRlbmRMb2FkZWQgPSBmYWxzZTsKLSAgICBtX3N1c3BlbmRlZCA9IGZhbHNlOwotICAg
IG1fcXVldWUuY2xlYXIoKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXI6OmZyb250ZW5kTG9hZGVkKCkKLXsKLSAgICBtX2Zyb250ZW5kTG9hZGVkID0gdHJ1ZTsK
LQotICAgIGV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0
b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OnN1c3BlbmQoKQotewotICAgIEFTU0VSVChtX2Zyb250
ZW5kTG9hZGVkKTsKLSAgICBBU1NFUlQoIW1fc3VzcGVuZGVkKTsKLSAgICBBU1NFUlQobV9xdWV1
ZS5pc0VtcHR5KCkpOwotCi0gICAgbV9zdXNwZW5kZWQgPSB0cnVlOwotfQotCi12b2lkIFdlYklu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6dW5zdXNwZW5kKCkKLXsKLSAgICBBU1NFUlQo
bV9zdXNwZW5kZWQpOwotCi0gICAgbV9zdXNwZW5kZWQgPSBmYWxzZTsKLQotICAgIGV2YWx1YXRl
UXVldWVkRXhwcmVzc2lvbnMoKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmQpCi17Ci0gICAg
ZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbihtYWtlU3RyaW5nKCJJbnNwZWN0b3JGcm9udGVuZEFQ
SS5kaXNwYXRjaChbXCIiLCBjb21tYW5kLCAiXCJdKSIpKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0
b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZChjb25zdCBTdHJpbmcmIGNv
bW1hbmQsIGNvbnN0IFN0cmluZyYgYXJndW1lbnQpCi17Ci0gICAgZXZhbHVhdGVPclF1ZXVlRXhw
cmVzc2lvbihtYWtlU3RyaW5nKCJJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRjaChbXCIiLCBj
b21tYW5kLCAiXCIsIFwiIiwgYXJndW1lbnQsICJcIl0pIikpOwotfQotCi12b2lkIFdlYkluc3Bl
Y3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2hDb21tYW5kKGNvbnN0IFN0cmluZyYg
Y29tbWFuZCwgYm9vbCBhcmd1bWVudCkKLXsKLSAgICBldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9u
KG1ha2VTdHJpbmcoIkluc3BlY3RvckZyb250ZW5kQVBJLmRpc3BhdGNoKFtcIiIsIGNvbW1hbmQs
ICJcIiwgIiwgYXJndW1lbnQgPyAidHJ1ZSIgOiAiZmFsc2UiLCAiXSkiKSk7Ci19Ci0KLXZvaWQg
V2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpkaXNwYXRjaE1lc3NhZ2VBc3luYyhj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbiht
YWtlU3RyaW5nKCJJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRjaE1lc3NhZ2VBc3luYygiLCBt
ZXNzYWdlLCAiKSIpKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNo
ZXI6OmV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQot
ewotICAgIGlmICghbV9mcm9udGVuZExvYWRlZCB8fCBtX3N1c3BlbmRlZCkgewotICAgICAgICBt
X3F1ZXVlLmFwcGVuZChleHByZXNzaW9uKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IEFTU0VSVChtX3F1ZXVlLmlzRW1wdHkoKSk7Ci0gICAgQVNTRVJUKCFtX3BhZ2UuY29yZVBhZ2Uo
KS0+bWFpbkZyYW1lKCkuc2NyaXB0KCkuaXNQYXVzZWQoKSk7Ci0gICAgbV9wYWdlLmNvcmVQYWdl
KCktPm1haW5GcmFtZSgpLnNjcmlwdCgpLmV4ZWN1dGVTY3JpcHRJZ25vcmluZ0V4Y2VwdGlvbihl
eHByZXNzaW9uKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6
OmV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKQotewotICAgIGlmIChtX3F1ZXVlLmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZm9yIChjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24g
OiBtX3F1ZXVlKSB7Ci0gICAgICAgIEFTU0VSVCghbV9wYWdlLmNvcmVQYWdlKCktPm1haW5GcmFt
ZSgpLnNjcmlwdCgpLmlzUGF1c2VkKCkpOwotICAgICAgICBtX3BhZ2UuY29yZVBhZ2UoKS0+bWFp
bkZyYW1lKCkuc2NyaXB0KCkuZXhlY3V0ZVNjcmlwdElnbm9yaW5nRXhjZXB0aW9uKGV4cHJlc3Np
b24pOwotICAgIH0KLQotICAgIG1fcXVldWUuY2xlYXIoKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0
b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmV2YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoY29u
c3QgU3RyaW5nJiBleHByZXNzaW9uKQotewotICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24o
ZXhwcmVzc2lvbik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGRiNjkwZTRhNDE2MDdhZGYxMDM0Y2I4ZTQ1YTBmYjBmNWQ2NWZkNjkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0j
aW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0K
LW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJQYWdlOwotCi1jbGFzcyBXZWJJbnNwZWN0
b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgewotcHVibGljOgotICAgIFdlYkluc3BlY3RvckZyb250
ZW5kQVBJRGlzcGF0Y2hlcihXZWJQYWdlJik7Ci0KLSAgICB2b2lkIHJlc2V0KCk7Ci0gICAgdm9p
ZCBmcm9udGVuZExvYWRlZCgpOwotCi0gICAgdm9pZCBzdXNwZW5kKCk7Ci0gICAgdm9pZCB1bnN1
c3BlbmQoKTsKLQotICAgIHZvaWQgZGlzcGF0Y2hDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFu
ZCk7Ci0gICAgdm9pZCBkaXNwYXRjaENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kLCBjb25z
dCBTdHJpbmcmIGFyZ3VtZW50KTsKLSAgICB2b2lkIGRpc3BhdGNoQ29tbWFuZChjb25zdCBTdHJp
bmcmIGNvbW1hbmQsIGJvb2wgYXJndW1lbnQpOwotICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlQXN5
bmMoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLQotICAgIHZvaWQgZXZhbHVhdGVFeHByZXNzaW9u
Rm9yVGVzdGluZyhjb25zdCBTdHJpbmcmKTsKLXByaXZhdGU6Ci0gICAgdm9pZCBldmFsdWF0ZU9y
UXVldWVFeHByZXNzaW9uKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgZXZhbHVhdGVRdWV1ZWRF
eHByZXNzaW9ucygpOwotCi0gICAgV2ViUGFnZSYgbV9wYWdlOwotICAgIERlcXVlPFN0cmluZz4g
bV9xdWV1ZTsKLSAgICBib29sIG1fZnJvbnRlbmRMb2FkZWQgeyBmYWxzZSB9OwotICAgIGJvb2wg
bV9zdXNwZW5kZWQgeyBmYWxzZSB9OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJ
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUku
Y3BwCmluZGV4IGQ3OWJmOGJjN2JkYTcwMGRkZWY2MjQwZWRkNDllYjI0ZDM0NzJhYjQuLmIzNmZi
ZTMzOGY0N2IyNDRkMTIxODY3YTA0YzI3MTk2MWYxZmY3ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC01OSw3
ICs1OSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmVuYWJsZUZyb250ZW5kRmVhdHVyZXMoKQog
CiBXZWJJbnNwZWN0b3JVSTo6V2ViSW5zcGVjdG9yVUkoV2ViUGFnZSYgcGFnZSkKICAgICA6IG1f
cGFnZShwYWdlKQotICAgICwgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIocGFnZSkKKyAgICAsIG1f
ZnJvbnRlbmRBUElEaXNwYXRjaGVyKEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6Y3Jl
YXRlKCpwYWdlLmNvcmVQYWdlKCkpKQogICAgICwgbV9kZWJ1Z2dhYmxlSW5mbyhEZWJ1Z2dhYmxl
SW5mb0RhdGE6OmVtcHR5KCkpCiB7CiAgICAgV2ViSW5zcGVjdG9yVUk6OmVuYWJsZUZyb250ZW5k
RmVhdHVyZXMoKTsKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSTo6ZXN0YWJs
aXNoQ29ubmVjdGlvbihXZWJQYWdlUHJveHlJZGVudGlmaWVyIGluc3BlY3RlZFBhZ2VJZGUKICAg
ICBtX3VuZGVyVGVzdCA9IHVuZGVyVGVzdDsKICAgICBtX2luc3BlY3Rpb25MZXZlbCA9IGluc3Bl
Y3Rpb25MZXZlbDsKIAotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLnJlc2V0KCk7CisgICAg
bV9mcm9udGVuZEFQSURpc3BhdGNoZXItPnJlc2V0KCk7CiAKICAgICBtX2Zyb250ZW5kQ29udHJv
bGxlciA9ICZtX3BhZ2UuY29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpOwogICAgIG1f
ZnJvbnRlbmRDb250cm9sbGVyLT5zZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudCh0aGlzKTsKQEAg
LTEyMSw3ICsxMjEsNyBAQCB2b2lkIFdlYkluc3BlY3RvclVJOjp3aW5kb3dPYmplY3RDbGVhcmVk
KCkKIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6ZnJvbnRlbmRMb2FkZWQoKQogewotICAgIG1fZnJv
bnRlbmRBUElEaXNwYXRjaGVyLmZyb250ZW5kTG9hZGVkKCk7CisgICAgbV9mcm9udGVuZEFQSURp
c3BhdGNoZXItPmZyb250ZW5kTG9hZGVkKCk7CiAKICAgICAvLyBUZWxsIHRoZSBuZXcgZnJvbnRl
bmQgYWJvdXQgdGhlIGN1cnJlbnQgZG9jayBzdGF0ZS4gSWYgdGhlIHdpbmRvdyBvYmplY3QKICAg
ICAvLyBjbGVhcmVkIGR1ZSB0byBhIHJlbG9hZCwgdGhlIGRvY2sgc3RhdGUgd29uJ3QgYmUgcmVz
ZW50IGZyb20gVUlQcm9jZXNzLgpAQCAtMjQ0LDI4ICsyNDQsMjcgQEAgdm9pZCBXZWJJbnNwZWN0
b3JVSTo6c2V0RG9ja1NpZGUoRG9ja1NpZGUgZG9ja1NpZGUpCiAKICAgICBtX2RvY2tTaWRlID0g
ZG9ja1NpZGU7CiAKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQo
InNldERvY2tTaWRlIl9zLCBTdHJpbmcoZG9ja1NpZGVTdHJpbmcpKTsKKyAgICBtX2Zyb250ZW5k
QVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXREb2NrU2lkZSJfcywgeyBKU09OOjpW
YWx1ZTo6Y3JlYXRlKFN0cmluZyhkb2NrU2lkZVN0cmluZykpIH0pOwogfQogCiB2b2lkIFdlYklu
c3BlY3RvclVJOjpzZXREb2NraW5nVW5hdmFpbGFibGUoYm9vbCB1bmF2YWlsYWJsZSkKIHsKICAg
ICBtX2RvY2tpbmdVbmF2YWlsYWJsZSA9IHVuYXZhaWxhYmxlOwogCi0gICAgbV9mcm9udGVuZEFQ
SURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXREb2NraW5nVW5hdmFpbGFibGUiX3MsIHVu
YXZhaWxhYmxlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5k
KCJzZXREb2NraW5nVW5hdmFpbGFibGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh1bmF2YWls
YWJsZSkgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNldElzVmlzaWJsZShib29sIHZp
c2libGUpCiB7CiAgICAgbV9pc1Zpc2libGUgPSB2aXNpYmxlOwogCi0gICAgbV9mcm9udGVuZEFQ
SURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXRJc1Zpc2libGUiX3MsIHZpc2libGUpOwor
ICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNldElzVmlzaWJs
ZSJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHZpc2libGUpIH0pOwogfQogCiB2b2lkIFdlYklu
c3BlY3RvclVJOjp1cGRhdGVGaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgZmluZFN0cmluZykKIHsK
ICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgSlNPTjo6VmFsdWU6OmVzY2FwZVN0cmlu
ZyhidWlsZGVyLCBmaW5kU3RyaW5nKTsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNw
YXRjaENvbW1hbmQoInVwZGF0ZUZpbmRTdHJpbmciX3MsIGJ1aWxkZXIudG9TdHJpbmcoKSk7Cisg
ICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgidXBkYXRlRmluZFN0
cmluZyJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKGJ1aWxkZXIudG9TdHJpbmcoKSkgfSk7CiB9
CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmNoYW5nZUF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2ln
bmVkIGhlaWdodCkKQEAgLTMyNSw3MyArMzI0LDczIEBAIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNl
dERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKGJvb2wgYXZhaWxhYmxlKQogICAgIEFTU0VSVCgh
YXZhaWxhYmxlIHx8IHN1cHBvcnRzRGlhZ25vc3RpY0xvZ2dpbmcoKSk7CiAgICAgbV9kaWFnbm9z
dGljTG9nZ2luZ0F2YWlsYWJsZSA9IGF2YWlsYWJsZTsKIAotICAgIG1fZnJvbnRlbmRBUElEaXNw
YXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0RGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUiX3Ms
IG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRj
aGVyLT5kaXNwYXRjaENvbW1hbmQoInNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlIl9zLCB7
IEpTT046OlZhbHVlOjpjcmVhdGUobV9kaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZSkgfSk7CiB9
CiAjZW5kaWYKIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6c2hvd0NvbnNvbGUoKQogewotICAgIG1f
ZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2hvd0NvbnNvbGUiX3MpOwor
ICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNob3dDb25zb2xl
Il9zKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6c2hvd1Jlc291cmNlcygpCiB7Ci0gICAg
bV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzaG93UmVzb3VyY2VzIl9z
KTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzaG93UmVz
b3VyY2VzIl9zKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6c2hvd01haW5SZXNvdXJjZUZv
ckZyYW1lKGNvbnN0IFN0cmluZyYgZnJhbWVJZGVudGlmaWVyKQogewotICAgIG1fZnJvbnRlbmRB
UElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2hvd01haW5SZXNvdXJjZUZvckZyYW1lIl9z
LCBmcmFtZUlkZW50aWZpZXIpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRj
aENvbW1hbmQoInNob3dNYWluUmVzb3VyY2VGb3JGcmFtZSJfcywgeyBKU09OOjpWYWx1ZTo6Y3Jl
YXRlKGZyYW1lSWRlbnRpZmllcikgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnN0YXJ0
UGFnZVByb2ZpbGluZygpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hD
b21tYW5kKCJzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQiX3MsIHRydWUpOworICAgIG1fZnJv
bnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNldFRpbWVsaW5lUHJvZmlsaW5n
RW5hYmxlZCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHRydWUpIH0pOwogfQogCiB2b2lkIFdl
Ykluc3BlY3RvclVJOjpzdG9wUGFnZVByb2ZpbGluZygpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURp
c3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQiX3Ms
IGZhbHNlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJz
ZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShmYWxz
ZSkgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnN0YXJ0RWxlbWVudFNlbGVjdGlvbigp
CiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXRFbGVt
ZW50U2VsZWN0aW9uRW5hYmxlZCJfcywgdHJ1ZSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNo
ZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0RWxlbWVudFNlbGVjdGlvbkVuYWJsZWQiX3MsIHsgSlNP
Tjo6VmFsdWU6OmNyZWF0ZSh0cnVlKSB9KTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6c3Rv
cEVsZW1lbnRTZWxlY3Rpb24oKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3Bh
dGNoQ29tbWFuZCgic2V0RWxlbWVudFNlbGVjdGlvbkVuYWJsZWQiX3MsIGZhbHNlKTsKKyAgICBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXRFbGVtZW50U2VsZWN0
aW9uRW5hYmxlZCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKGZhbHNlKSB9KTsKIH0KIAogdm9p
ZCBXZWJJbnNwZWN0b3JVSTo6ZGlkU2F2ZShjb25zdCBTdHJpbmcmIHVybCkKIHsKLSAgICBtX2Zy
b250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNhdmVkVVJMIl9zLCB1cmwpOwor
ICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNhdmVkVVJMIl9z
LCB7IEpTT046OlZhbHVlOjpjcmVhdGUodXJsKSB9KTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JV
STo6ZGlkQXBwZW5kKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNw
YXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgiYXBwZW5kZWRUb1VSTCJfcywgdXJsKTsKKyAgICBtX2Zy
b250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJhcHBlbmRlZFRvVVJMIl9zLCB7
IEpTT046OlZhbHVlOjpjcmVhdGUodXJsKSB9KTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6
c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBtX2Zy
b250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaE1lc3NhZ2VBc3luYyhtZXNzYWdlKTsKKyAgICBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hNZXNzYWdlQXN5bmMobWVzc2FnZSk7CiB9
CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmV2YWx1YXRlSW5Gcm9udGVuZEZvclRlc3RpbmcoY29u
c3QgU3RyaW5nJiBleHByZXNzaW9uKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmV2
YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoZXhwcmVzc2lvbik7CisgICAgbV9mcm9udGVuZEFQ
SURpc3BhdGNoZXItPmV2YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoZXhwcmVzc2lvbik7CiB9
CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnBhZ2VQYXVzZWQoKQogewotICAgIG1fZnJvbnRlbmRB
UElEaXNwYXRjaGVyLnN1c3BlbmQoKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+c3Vz
cGVuZCgpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpwYWdlVW5wYXVzZWQoKQogewotICAg
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLnVuc3VzcGVuZCgpOworICAgIG1fZnJvbnRlbmRBUElE
aXNwYXRjaGVyLT51bnN1c3BlbmQoKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6c2VuZE1l
c3NhZ2VUb0JhY2tlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oCmluZGV4IDAyNmE3MTJh
MDg5OWQwNDU1ZjMxODVhYjc5NzZjMTQwMDVkOGViYWIuLmE2ZWU3MTMzOTM5ZWYyYTA0YjZiODYy
YjI4ZTgyMTdmZTIwZGIxZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKQEAgLTI3LDkgKzI3LDkgQEAKIAogI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJEZWJ1Z2dhYmxlSW5mb0RhdGEuaCIKLSNpbmNsdWRl
ICJXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJXZWJQYWdl
UHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JEZWJ1Z2dhYmxl
VHlwZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmg+CiAKQEAgLTE0Miw2ICsxNDIsNyBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb0JhY2tlbmQoY29uc3Qg
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNw
YXRjaGVyJiBmcm9udGVuZEFQSURpc3BhdGNoZXIoKSBmaW5hbCB7IHJldHVybiBtX2Zyb250ZW5k
QVBJRGlzcGF0Y2hlcjsgfQogCiAgICAgdm9pZCBwYWdlUGF1c2VkKCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBwYWdlVW5wYXVzZWQoKSBvdmVycmlkZTsKQEAgLTE1Miw3ICsxNTMsNyBAQCBwcml2YXRl
OgogICAgIGV4cGxpY2l0IFdlYkluc3BlY3RvclVJKFdlYlBhZ2UmKTsKIAogICAgIFdlYlBhZ2Um
IG1fcGFnZTsKLSAgICBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgbV9mcm9udGVu
ZEFQSURpc3BhdGNoZXI7CisgICAgUmVmPFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcj4gbV9mcm9udGVuZEFQSURpc3BhdGNoZXI7CiAgICAgUmVmUHRyPFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kSG9zdD4gbV9mcm9udGVuZEhvc3Q7CiAKICAgICAvLyBLZWVwIGEgcG9p
bnRlciB0byB0aGUgZnJvbnRlbmQncyBpbnNwZWN0b3IgY29udHJvbGxlciByYXRoZXIgdGhhbiBn
b2luZyB0aHJvdWdoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2NmL1dlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvY2Yv
V2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCmluZGV4IDdiODY5ODFhM2Y0
OGU1MGY4YjNjY2FjMzcwNjkxN2Q0YWYxZmRiZDYuLjE2ZGMxNDRkY2M5OGUyNTZjMDUzMjY3ZjUy
ZDFkM2U0ZTQ4OTU4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvY2YvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCkBAIC05Niw3ICs5
Niw3IEBAIHN0YXRpYyB2b2lkIGRlbGV0ZVNldHRpbmcoY29uc3QgU3RyaW5nJiBrZXkpCiAKIHZv
aWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQogewotICAgIG1fZnJvbnRlbmRDbGllbnQtPmRpc3BhdGNoTWVzc2FnZUFzeW5j
KG1lc3NhZ2UpOworICAgIG1fZnJvbnRlbmRDbGllbnQtPmZyb250ZW5kQVBJRGlzcGF0Y2hlcigp
LmRpc3BhdGNoTWVzc2FnZUFzeW5jKG1lc3NhZ2UpOwogfQogCiBib29sIFdlYkluc3BlY3RvckNs
aWVudDo6aW5zcGVjdG9yQXR0YWNoRGlzYWJsZWQoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcwppbmRl
eCA4MzFhNjFmNjc4NWU0NDg4YjEyZDdkZmRlZjFmZTY2ZDM3NTUxMjIyLi5mMjBlZDliMmUzZmIz
NDZjY2RmOGVmZmI1MDhhYzgzMjI5Y2Y5ODhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcworKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcwpAQCAt
NjUsMTEgKzY1LDEyIEBAIFRlc3RQYWdlLmxvZyA9IHdpbmRvdy5sb2cgPSBmdW5jdGlvbih0ZXh0
KQogCiBUZXN0UGFnZS5jbG9zZVRlc3QgPSB3aW5kb3cuY2xvc2VUZXN0ID0gZnVuY3Rpb24oKQog
ewotICAgIHdpbmRvdy5pbnRlcm5hbHMuY2xvc2VEdW1teUluc3BlY3RvckZyb250ZW5kKCk7Ci0K
ICAgICAvLyBUaGlzIGNvZGUgbWlnaHQgYmUgZXhlY3V0ZWQgd2hpbGUgdGhlIGRlYnVnZ2VyIGlz
IHN0aWxsIHJ1bm5pbmcgdGhyb3VnaCBhIHN0YWNrIGJhc2VkIEV2ZW50TG9vcC4KICAgICAvLyBV
c2UgYSBzZXRUaW1lb3V0IHRvIGRlZmVyIHRvIGEgY2xlYW4gc3RhY2sgYmVmb3JlIGxldHRpbmcg
dGhlIHRlc3RSdW5uZXIgbG9hZCB0aGUgbmV4dCB0ZXN0LgotICAgIHNldFRpbWVvdXQoKCkgPT4g
eyB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsgfSwgMCk7CisgICAgc2V0VGltZW91dCgoKSA9PiB7
CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuY2xvc2VEdW1teUluc3BlY3RvckZyb250ZW5kKCk7
CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0sIDApOwogfTsKIAogVGVz
dFBhZ2UucnVuVGVzdCA9IHdpbmRvdy5ydW5UZXN0ID0gZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2Vw
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZh
bC13aXRoLWV4Y2VwdGlvbi5odG1sCmluZGV4IDczNDhjMzU2MzVhYmI3YzUyZjAxMGNlODFhNGEx
ZDhjMDdlOGFhMzcuLmE3MDY1MjZlOTMyNGVlMjM2MjVkZWMyZTA4OThhY2UwZjZmYWJiODkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwt
d2l0aC1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
YnJlYWtwb2ludC1ldmFsLXdpdGgtZXhjZXB0aW9uLmh0bWwKQEAgLTUsNiArNSw4IEBACiA8c2Ny
aXB0PgogZnVuY3Rpb24gdGVzdCgpCiB7CisgICAgUHJvdG9jb2xUZXN0LmRlYnVnKCk7CisKICAg
ICBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJd
ID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CiAgICAgICAgIGlmICgvcmVzb3VyY2Vz
XC9icmVha3BvaW50XC5qcyQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>412587</attachid>
            <date>2020-10-28 16:33:59 -0700</date>
            <delta_ts>2020-10-28 16:33:59 -0700</delta_ts>
            <desc>InspectorFrontendAPIDispatcher protocol logging w/ backtrace</desc>
            <filename>breakpoint-eval-with-exception-stderr.txt</filename>
            <type>text/plain</type>
            <size>40378</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">UGFzc2VkIElUUCBlbmFibGVkIHN0YXRlICgxKSBkb2VzIG5vdCBtYXRjaCBUQ0Mgc2V0dGluZyAo
MCkKRnJvbnRlbmRBUElEaXNwYXRjaGVyWzB4Nzg5ZDg1YTc4LCBxdWV1ZSBkZXB0aD0xXTogZW5x
dWV1aW5nIGV2YWx1YXRpb246IEluc3BlY3RvckZyb250ZW5kQVBJLmRpc3BhdGNoKFsic2V0RG9j
a2luZ1VuYXZhaWxhYmxlIiwgZmFsc2VdKQpGcm9udGVuZEFQSURpc3BhdGNoZXJbMHg3ODlkODVh
NzhdOiBjYWxsZWQgZnJvbnRlbmRMb2FkZWQoKQpGcm9udGVuZEFQSURpc3BhdGNoZXJbMHg3ODlk
ODVhNzgsIHF1ZXVlIGRlcHRoPTFdOiBjYWxsZWQgZXZhbHVhdGVRdWV1ZWRFeHByZXNzaW9ucygp
CkZyb250ZW5kQVBJRGlzcGF0Y2hlclsweDc4OWQ4NWE3OCwgcXVldWUgZGVwdGg9MF0gZXZhbHVh
dGluZzogSW5zcGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0Y2goWyJzZXREb2NraW5nVW5hdmFpbGFi
bGUiLCBmYWxzZV0pCmZyb250ZW5kOiB7Im1ldGhvZCI6IkRlYnVnZ2VyLmVuYWJsZSIsInBhcmFt
cyI6e30sImlkIjowfQpmcm9udGVuZDogeyJtZXRob2QiOiJEZWJ1Z2dlci5zZXRCcmVha3BvaW50
c0FjdGl2ZSIsInBhcmFtcyI6eyJhY3RpdmUiOnRydWV9LCJpZCI6MX0KRnJvbnRlbmRBUElEaXNw
YXRjaGVyWzB4Nzg5ZDg1YTc4LCBxdWV1ZSBkZXB0aD0wXSBldmFsdWF0aW5nOiBJbnNwZWN0b3JG
cm9udGVuZEFQSS5kaXNwYXRjaE1lc3NhZ2VBc3luYyh7Im1ldGhvZCI6IkRlYnVnZ2VyLnNjcmlw
dFBhcnNlZCIsInBhcmFtcyI6eyJzY3JpcHRJZCI6IjEiLCJ1cmwiOiJmaWxlOi8vL1VzZXJzL2Ji
dXJnL3JlcG9zL3dlYmtpdC9PcGVuU291cmNlL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24uaHRtbCIsInN0YXJ0TGluZSI6NCwic3Rh
cnRDb2x1bW4iOjgsImVuZExpbmUiOjYyLCJlbmRDb2x1bW4iOjAsImlzQ29udGVudFNjcmlwdCI6
ZmFsc2UsIm1vZHVsZSI6ZmFsc2V9fSkKYmFja2VuZDogeyJtZXRob2QiOiJEZWJ1Z2dlci5zY3Jp
cHRQYXJzZWQiLCJwYXJhbXMiOnsic2NyaXB0SWQiOiIxIiwidXJsIjoiZmlsZTovLy9Vc2Vycy9i
YnVyZy9yZXBvcy93ZWJraXQvT3BlblNvdXJjZS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWtwb2ludC1ldmFsLXdpdGgtZXhjZXB0aW9uLmh0bWwiLCJzdGFydExpbmUiOjQsInN0
YXJ0Q29sdW1uIjo4LCJlbmRMaW5lIjo2MiwiZW5kQ29sdW1uIjowLCJpc0NvbnRlbnRTY3JpcHQi
OmZhbHNlLCJtb2R1bGUiOmZhbHNlfX0KRnJvbnRlbmRBUElEaXNwYXRjaGVyWzB4Nzg5ZDg1YTc4
LCBxdWV1ZSBkZXB0aD0wXSBldmFsdWF0aW5nOiBJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRj
aE1lc3NhZ2VBc3luYyh7Im1ldGhvZCI6IkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCIsInBhcmFtcyI6
eyJzY3JpcHRJZCI6IjIiLCJ1cmwiOiJmaWxlOi8vL1VzZXJzL2JidXJnL3JlcG9zL3dlYmtpdC9P
cGVuU291cmNlL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvYnJlYWtw
b2ludC5qcyIsInN0YXJ0TGluZSI6MCwic3RhcnRDb2x1bW4iOjAsImVuZExpbmUiOjExNSwiZW5k
Q29sdW1uIjowLCJpc0NvbnRlbnRTY3JpcHQiOmZhbHNlLCJtb2R1bGUiOmZhbHNlfX0pCmJhY2tl
bmQ6IHsibWV0aG9kIjoiRGVidWdnZXIuc2NyaXB0UGFyc2VkIiwicGFyYW1zIjp7InNjcmlwdElk
IjoiMiIsInVybCI6ImZpbGU6Ly8vVXNlcnMvYmJ1cmcvcmVwb3Mvd2Via2l0L09wZW5Tb3VyY2Uv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9icmVha3BvaW50LmpzIiwi
c3RhcnRMaW5lIjowLCJzdGFydENvbHVtbiI6MCwiZW5kTGluZSI6MTE1LCJlbmRDb2x1bW4iOjAs
ImlzQ29udGVudFNjcmlwdCI6ZmFsc2UsIm1vZHVsZSI6ZmFsc2V9fQpGb3VuZCBicmVha3BvaW50
LmpzCmZyb250ZW5kOiB7Im1ldGhvZCI6IlJ1bnRpbWUuZXZhbHVhdGUiLCJwYXJhbXMiOnsiZXhw
cmVzc2lvbiI6IlRlc3RQYWdlLmxvZyh1bmVzY2FwZShcIkZvdW5kJTIwYnJlYWtwb2ludC5qc1wi
KSk7In0sImlkIjoyfQpmcm9udGVuZDogeyJtZXRob2QiOiJEZWJ1Z2dlci5zZXRCcmVha3BvaW50
IiwicGFyYW1zIjp7ImxvY2F0aW9uIjp7InNjcmlwdElkIjoiMiIsImxpbmVOdW1iZXIiOjMsImNv
bHVtbk51bWJlciI6MH19LCJpZCI6M30KZnJvbnRlbmQ6IHsibWV0aG9kIjoiRGVidWdnZXIuc2V0
UGF1c2VPbkV4Y2VwdGlvbnMiLCJwYXJhbXMiOnsic3RhdGUiOiJhbGwifSwiaWQiOjR9CmZyb250
ZW5kOiB7Im1ldGhvZCI6IlJ1bnRpbWUuZXZhbHVhdGUiLCJwYXJhbXMiOnsiZXhwcmVzc2lvbiI6
ImJyZWFrcG9pbnRCYXNpYygpIn0sImlkIjo1fQpGcm9udGVuZEFQSURpc3BhdGNoZXJbMHg3ODlk
ODVhNzgsIHF1ZXVlIGRlcHRoPTBdIGV2YWx1YXRpbmc6IEluc3BlY3RvckZyb250ZW5kQVBJLmRp
c3BhdGNoTWVzc2FnZUFzeW5jKHsibWV0aG9kIjoiRGVidWdnZXIuc2NyaXB0UGFyc2VkIiwicGFy
YW1zIjp7InNjcmlwdElkIjoiMyIsInVybCI6ImZpbGU6Ly8vVXNlcnMvYmJ1cmcvcmVwb3Mvd2Vi
a2l0L09wZW5Tb3VyY2UvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
L3Byb3RvY29sLXRlc3QuanMiLCJzdGFydExpbmUiOjAsInN0YXJ0Q29sdW1uIjowLCJlbmRMaW5l
IjoxMzcsImVuZENvbHVtbiI6MCwiaXNDb250ZW50U2NyaXB0IjpmYWxzZSwibW9kdWxlIjpmYWxz
ZX19KQpiYWNrZW5kOiB7Im1ldGhvZCI6IkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCIsInBhcmFtcyI6
eyJzY3JpcHRJZCI6IjMiLCJ1cmwiOiJmaWxlOi8vL1VzZXJzL2JidXJnL3JlcG9zL3dlYmtpdC9P
cGVuU291cmNlL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90
b2NvbC10ZXN0LmpzIiwic3RhcnRMaW5lIjowLCJzdGFydENvbHVtbiI6MCwiZW5kTGluZSI6MTM3
LCJlbmRDb2x1bW4iOjAsImlzQ29udGVudFNjcmlwdCI6ZmFsc2UsIm1vZHVsZSI6ZmFsc2V9fQpG
cm9udGVuZEFQSURpc3BhdGNoZXJbMHg3ODlkODVhNzgsIHF1ZXVlIGRlcHRoPTBdIGV2YWx1YXRp
bmc6IEluc3BlY3RvckZyb250ZW5kQVBJLmRpc3BhdGNoTWVzc2FnZUFzeW5jKHsibWV0aG9kIjoi
RGVidWdnZXIuc2NyaXB0UGFyc2VkIiwicGFyYW1zIjp7InNjcmlwdElkIjoiNCIsInVybCI6ImZp
bGU6Ly8vVXNlcnMvYmJ1cmcvcmVwb3Mvd2Via2l0L09wZW5Tb3VyY2UvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlvbi5odG1sIiwic3Rh
cnRMaW5lIjo2NCwic3RhcnRDb2x1bW4iOjI1LCJlbmRMaW5lIjo2NiwiZW5kQ29sdW1uIjoxLCJp
c0NvbnRlbnRTY3JpcHQiOmZhbHNlLCJtb2R1bGUiOmZhbHNlfX0pCmJhY2tlbmQ6IHsibWV0aG9k
IjoiRGVidWdnZXIuc2NyaXB0UGFyc2VkIiwicGFyYW1zIjp7InNjcmlwdElkIjoiNCIsInVybCI6
ImZpbGU6Ly8vVXNlcnMvYmJ1cmcvcmVwb3Mvd2Via2l0L09wZW5Tb3VyY2UvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlvbi5odG1sIiwi
c3RhcnRMaW5lIjo2NCwic3RhcnRDb2x1bW4iOjI1LCJlbmRMaW5lIjo2NiwiZW5kQ29sdW1uIjox
LCJpc0NvbnRlbnRTY3JpcHQiOmZhbHNlLCJtb2R1bGUiOmZhbHNlfX0KRnJvbnRlbmRBUElEaXNw
YXRjaGVyWzB4Nzg5ZDg1YTc4LCBxdWV1ZSBkZXB0aD0wXSBldmFsdWF0aW5nOiBJbnNwZWN0b3JG
cm9udGVuZEFQSS5kaXNwYXRjaE1lc3NhZ2VBc3luYyh7InJlc3VsdCI6e30sImlkIjowfSkKYmFj
a2VuZDogeyJyZXN1bHQiOnt9LCJpZCI6MH0KRnJvbnRlbmRBUElEaXNwYXRjaGVyWzB4Nzg5ZDg1
YTc4LCBxdWV1ZSBkZXB0aD0wXSBldmFsdWF0aW5nOiBJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNw
YXRjaE1lc3NhZ2VBc3luYyh7InJlc3VsdCI6e30sImlkIjoxfSkKYmFja2VuZDogeyJyZXN1bHQi
Ont9LCJpZCI6MX0KRnJvbnRlbmRBUElEaXNwYXRjaGVyWzB4Nzg5ZDg1YTc4LCBxdWV1ZSBkZXB0
aD0wXSBldmFsdWF0aW5nOiBJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRjaE1lc3NhZ2VBc3lu
Yyh7Im1ldGhvZCI6IkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCIsInBhcmFtcyI6eyJzY3JpcHRJZCI6
IjUiLCJ1cmwiOiIiLCJzdGFydExpbmUiOjAsInN0YXJ0Q29sdW1uIjowLCJlbmRMaW5lIjozNzYs
ImVuZENvbHVtbiI6MCwiaXNDb250ZW50U2NyaXB0IjpmYWxzZSwic291cmNlVVJMIjoiX19Jbmpl
Y3RlZFNjcmlwdF9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcyIsIm1vZHVsZSI6ZmFsc2V9fSkKYmFj
a2VuZDogeyJtZXRob2QiOiJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiLCJwYXJhbXMiOnsic2NyaXB0
SWQiOiI1IiwidXJsIjoiIiwic3RhcnRMaW5lIjowLCJzdGFydENvbHVtbiI6MCwiZW5kTGluZSI6
Mzc2LCJlbmRDb2x1bW4iOjAsImlzQ29udGVudFNjcmlwdCI6ZmFsc2UsInNvdXJjZVVSTCI6Il9f
SW5qZWN0ZWRTY3JpcHRfSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMiLCJtb2R1bGUiOmZhbHNlfX0K
RnJvbnRlbmRBUElEaXNwYXRjaGVyWzB4Nzg5ZDg1YTc4LCBxdWV1ZSBkZXB0aD0wXSBldmFsdWF0
aW5nOiBJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRjaE1lc3NhZ2VBc3luYyh7Im1ldGhvZCI6
IkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCIsInBhcmFtcyI6eyJzY3JpcHRJZCI6IjYiLCJ1cmwiOiIi
LCJzdGFydExpbmUiOjAsInN0YXJ0Q29sdW1uIjowLCJlbmRMaW5lIjozNSwiZW5kQ29sdW1uIjox
LCJpc0NvbnRlbnRTY3JpcHQiOmZhbHNlLCJzb3VyY2VVUkwiOiJfX0luamVjdGVkU2NyaXB0X0Nv
bW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmpzIiwibW9kdWxlIjpmYWxzZX19KQpiYWNrZW5kOiB7
Im1ldGhvZCI6IkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCIsInBhcmFtcyI6eyJzY3JpcHRJZCI6IjYi
LCJ1cmwiOiIiLCJzdGFydExpbmUiOjAsInN0YXJ0Q29sdW1uIjowLCJlbmRMaW5lIjozNSwiZW5k
Q29sdW1uIjoxLCJpc0NvbnRlbnRTY3JpcHQiOmZhbHNlLCJzb3VyY2VVUkwiOiJfX0luamVjdGVk
U2NyaXB0X0NvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmpzIiwibW9kdWxlIjpmYWxzZX19CkZy
b250ZW5kQVBJRGlzcGF0Y2hlclsweDc4OWQ4NWE3OCwgcXVldWUgZGVwdGg9MF0gZXZhbHVhdGlu
ZzogSW5zcGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0Y2hNZXNzYWdlQXN5bmMoeyJtZXRob2QiOiJE
ZWJ1Z2dlci5zY3JpcHRQYXJzZWQiLCJwYXJhbXMiOnsic2NyaXB0SWQiOiI3IiwidXJsIjoiIiwi
c3RhcnRMaW5lIjowLCJzdGFydENvbHVtbiI6MCwiZW5kTGluZSI6MCwiZW5kQ29sdW1uIjo0OCwi
aXNDb250ZW50U2NyaXB0IjpmYWxzZSwibW9kdWxlIjpmYWxzZX19KQpiYWNrZW5kOiB7Im1ldGhv
ZCI6IkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCIsInBhcmFtcyI6eyJzY3JpcHRJZCI6IjciLCJ1cmwi
OiIiLCJzdGFydExpbmUiOjAsInN0YXJ0Q29sdW1uIjowLCJlbmRMaW5lIjowLCJlbmRDb2x1bW4i
OjQ4LCJpc0NvbnRlbnRTY3JpcHQiOmZhbHNlLCJtb2R1bGUiOmZhbHNlfX0KRnJvbnRlbmRBUElE
aXNwYXRjaGVyWzB4Nzg5ZDg1YTc4LCBxdWV1ZSBkZXB0aD0wXSBldmFsdWF0aW5nOiBJbnNwZWN0
b3JGcm9udGVuZEFQSS5kaXNwYXRjaE1lc3NhZ2VBc3luYyh7InJlc3VsdCI6eyJyZXN1bHQiOnsi
dHlwZSI6InVuZGVmaW5lZCJ9LCJ3YXNUaHJvd24iOmZhbHNlfSwiaWQiOjJ9KQpiYWNrZW5kOiB7
InJlc3VsdCI6eyJyZXN1bHQiOnsidHlwZSI6InVuZGVmaW5lZCJ9LCJ3YXNUaHJvd24iOmZhbHNl
fSwiaWQiOjJ9CkZyb250ZW5kQVBJRGlzcGF0Y2hlclsweDc4OWQ4NWE3OCwgcXVldWUgZGVwdGg9
MF0gZXZhbHVhdGluZzogSW5zcGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0Y2hNZXNzYWdlQXN5bmMo
eyJyZXN1bHQiOnsiYnJlYWtwb2ludElkIjoiMjozOjAiLCJhY3R1YWxMb2NhdGlvbiI6eyJzY3Jp
cHRJZCI6IjIiLCJsaW5lTnVtYmVyIjozLCJjb2x1bW5OdW1iZXIiOjB9fSwiaWQiOjN9KQpiYWNr
ZW5kOiB7InJlc3VsdCI6eyJicmVha3BvaW50SWQiOiIyOjM6MCIsImFjdHVhbExvY2F0aW9uIjp7
InNjcmlwdElkIjoiMiIsImxpbmVOdW1iZXIiOjMsImNvbHVtbk51bWJlciI6MH19LCJpZCI6M30K
RnJvbnRlbmRBUElEaXNwYXRjaGVyWzB4Nzg5ZDg1YTc4LCBxdWV1ZSBkZXB0aD0wXSBldmFsdWF0
aW5nOiBJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRjaE1lc3NhZ2VBc3luYyh7InJlc3VsdCI6
e30sImlkIjo0fSkKYmFja2VuZDogeyJyZXN1bHQiOnt9LCJpZCI6NH0KRnJvbnRlbmRBUElEaXNw
YXRjaGVyWzB4Nzg5ZDg1YTc4LCBxdWV1ZSBkZXB0aD0wXSBldmFsdWF0aW5nOiBJbnNwZWN0b3JG
cm9udGVuZEFQSS5kaXNwYXRjaE1lc3NhZ2VBc3luYyh7Im1ldGhvZCI6IkRlYnVnZ2VyLnNjcmlw
dFBhcnNlZCIsInBhcmFtcyI6eyJzY3JpcHRJZCI6IjgiLCJ1cmwiOiIiLCJzdGFydExpbmUiOjAs
InN0YXJ0Q29sdW1uIjowLCJlbmRMaW5lIjowLCJlbmRDb2x1bW4iOjE3LCJpc0NvbnRlbnRTY3Jp
cHQiOmZhbHNlLCJtb2R1bGUiOmZhbHNlfX0pCmJhY2tlbmQ6IHsibWV0aG9kIjoiRGVidWdnZXIu
c2NyaXB0UGFyc2VkIiwicGFyYW1zIjp7InNjcmlwdElkIjoiOCIsInVybCI6IiIsInN0YXJ0TGlu
ZSI6MCwic3RhcnRDb2x1bW4iOjAsImVuZExpbmUiOjAsImVuZENvbHVtbiI6MTcsImlzQ29udGVu
dFNjcmlwdCI6ZmFsc2UsIm1vZHVsZSI6ZmFsc2V9fQpGcm9udGVuZEFQSURpc3BhdGNoZXJbMHg3
ODlkODVhNzgsIHF1ZXVlIGRlcHRoPTBdIGV2YWx1YXRpbmc6IEluc3BlY3RvckZyb250ZW5kQVBJ
LmRpc3BhdGNoTWVzc2FnZUFzeW5jKHsibWV0aG9kIjoiRGVidWdnZXIucGF1c2VkIiwicGFyYW1z
Ijp7ImNhbGxGcmFtZXMiOlt7ImNhbGxGcmFtZUlkIjoie1wib3JkaW5hbFwiOjAsXCJpbmplY3Rl
ZFNjcmlwdElkXCI6MX0iLCJmdW5jdGlvbk5hbWUiOiJicmVha3BvaW50QmFzaWMiLCJsb2NhdGlv
biI6eyJzY3JpcHRJZCI6IjIiLCJsaW5lTnVtYmVyIjozLCJjb2x1bW5OdW1iZXIiOjF9LCJzY29w
ZUNoYWluIjpbeyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0
ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjF9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52aXJvbm1l
bnQiLCJkZXNjcmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJjbG9zdXJl
IiwibmFtZSI6ImJyZWFrcG9pbnRCYXNpYyIsImxvY2F0aW9uIjp7InNjcmlwdElkIjoiMiIsImxp
bmVOdW1iZXIiOjEsImNvbHVtbk51bWJlciI6MjV9LCJlbXB0eSI6dHJ1ZX0seyJvYmplY3QiOnsi
dHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwi
OjJ9IiwiY2xhc3NOYW1lIjoiSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNjcmlwdGlv
biI6IkpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJnbG9iYWxMZXhpY2FsRW52
aXJvbm1lbnQifSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmpl
Y3RlZFNjcmlwdElkXCI6MSxcImlkXCI6M30iLCJjbGFzc05hbWUiOiJXaW5kb3ciLCJkZXNjcmlw
dGlvbiI6IldpbmRvdyJ9LCJ0eXBlIjoiZ2xvYmFsIn1dLCJ0aGlzIjp7InR5cGUiOiJvYmplY3Qi
LCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjo0fSIsImNsYXNzTmFt
ZSI6IldpbmRvdyIsImRlc2NyaXB0aW9uIjoiV2luZG93In0sImlzVGFpbERlbGV0ZWQiOmZhbHNl
fSx7ImNhbGxGcmFtZUlkIjoie1wib3JkaW5hbFwiOjEsXCJpbmplY3RlZFNjcmlwdElkXCI6MX0i
LCJmdW5jdGlvbk5hbWUiOiJnbG9iYWwgY29kZSIsImxvY2F0aW9uIjp7InNjcmlwdElkIjoiOCIs
ImxpbmVOdW1iZXIiOjAsImNvbHVtbk51bWJlciI6MTV9LCJzY29wZUNoYWluIjpbeyJvYmplY3Qi
OnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJp
ZFwiOjV9IiwiY2xhc3NOYW1lIjoiSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNjcmlw
dGlvbiI6IkpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJnbG9iYWxMZXhpY2Fs
RW52aXJvbm1lbnQifSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJp
bmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6Nn0iLCJjbGFzc05hbWUiOiJXaW5kb3ciLCJkZXNj
cmlwdGlvbiI6IldpbmRvdyJ9LCJ0eXBlIjoiZ2xvYmFsIn1dLCJ0aGlzIjp7InR5cGUiOiJvYmpl
Y3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjo3fSIsImNsYXNz
TmFtZSI6IldpbmRvdyIsImRlc2NyaXB0aW9uIjoiV2luZG93In0sImlzVGFpbERlbGV0ZWQiOmZh
bHNlfSx7ImNhbGxGcmFtZUlkIjoie1wib3JkaW5hbFwiOjIsXCJpbmplY3RlZFNjcmlwdElkXCI6
MX0iLCJmdW5jdGlvbk5hbWUiOiJfZXZhbHVhdGVPbiIsImxvY2F0aW9uIjp7InNjcmlwdElkIjoi
NSIsImxpbmVOdW1iZXIiOjE0OCwiY29sdW1uTnVtYmVyIjoxMDJ9LCJzY29wZUNoYWluIjpbeyJv
YmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwi
OjEsXCJpZFwiOjh9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNjcmlw
dGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJjbG9zdXJlIiwibmFtZSI6Il9l
dmFsdWF0ZU9uIiwibG9jYXRpb24iOnsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MTQ3LCJj
b2x1bW5OdW1iZXIiOjEyfX0seyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoi
e1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjl9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2Fs
RW52aXJvbm1lbnQiLCJkZXNjcmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUi
OiJjbG9zdXJlIiwibmFtZSI6Il9ldmFsdWF0ZU9uIiwibG9jYXRpb24iOnsic2NyaXB0SWQiOiI1
IiwibGluZU51bWJlciI6MTQ3LCJjb2x1bW5OdW1iZXIiOjEyfX0seyJvYmplY3QiOnsidHlwZSI6
Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjEwfSIs
ImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVudmlyb25tZW50IiwiZGVzY3JpcHRpb24iOiJKU0xleGlj
YWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoibmVzdGVkTGV4aWNhbCIsImxvY2F0aW9uIjp7InNjcmlw
dElkIjoiNSIsImxpbmVOdW1iZXIiOjIsImNvbHVtbk51bWJlciI6MTB9fSx7Im9iamVjdCI6eyJ0
eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6
MTF9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNjcmlwdGlvbiI6IkpT
TGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJjbG9zdXJlIiwibG9jYXRpb24iOnsic2NyaXB0
SWQiOiI1IiwibGluZU51bWJlciI6MiwiY29sdW1uTnVtYmVyIjoxMH19LHsib2JqZWN0Ijp7InR5
cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjox
Mn0iLCJjbGFzc05hbWUiOiJKU0xleGljYWxFbnZpcm9ubWVudCIsImRlc2NyaXB0aW9uIjoiSlNM
ZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6ImNsb3N1cmUiLCJsb2NhdGlvbiI6eyJzY3JpcHRJ
ZCI6IjUiLCJsaW5lTnVtYmVyIjoyLCJjb2x1bW5OdW1iZXIiOjEwfX0seyJvYmplY3QiOnsidHlw
ZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjEz
fSIsImNsYXNzTmFtZSI6IkpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50IiwiZGVzY3JpcHRpb24i
OiJKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoiZ2xvYmFsTGV4aWNhbEVudmly
b25tZW50In0seyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0
ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjE0fSIsImNsYXNzTmFtZSI6IldpbmRvdyIsImRlc2NyaXB0
aW9uIjoiV2luZG93In0sInR5cGUiOiJnbG9iYWwifV0sInRoaXMiOnsidHlwZSI6Im9iamVjdCIs
Im9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjE1fSIsImNsYXNzTmFt
ZSI6IkluamVjdGVkU2NyaXB0IiwiZGVzY3JpcHRpb24iOiJJbmplY3RlZFNjcmlwdCJ9LCJpc1Rh
aWxEZWxldGVkIjp0cnVlfSx7ImNhbGxGcmFtZUlkIjoie1wib3JkaW5hbFwiOjMsXCJpbmplY3Rl
ZFNjcmlwdElkXCI6MX0iLCJmdW5jdGlvbk5hbWUiOiIiLCJsb2NhdGlvbiI6eyJzY3JpcHRJZCI6
IjUiLCJsaW5lTnVtYmVyIjoxMzksImNvbHVtbk51bWJlciI6MTExfSwic2NvcGVDaGFpbiI6W3si
b2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRc
IjoxLFwiaWRcIjoxNn0iLCJjbGFzc05hbWUiOiJKU0xleGljYWxFbnZpcm9ubWVudCIsImRlc2Ny
aXB0aW9uIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6ImNsb3N1cmUiLCJsb2NhdGlv
biI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoxNDAsImNvbHVtbk51bWJlciI6ODR9LCJl
bXB0eSI6dHJ1ZX0seyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5q
ZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjE3fSIsImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVudmly
b25tZW50IiwiZGVzY3JpcHRpb24iOiJKU0xleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoiY2xv
c3VyZSIsIm5hbWUiOiJfZXZhbHVhdGVBbmRXcmFwIiwibG9jYXRpb24iOnsic2NyaXB0SWQiOiI1
IiwibGluZU51bWJlciI6MTM5LCJjb2x1bW5OdW1iZXIiOjE3fX0seyJvYmplY3QiOnsidHlwZSI6
Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjE4fSIs
ImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVudmlyb25tZW50IiwiZGVzY3JpcHRpb24iOiJKU0xleGlj
YWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoibmVzdGVkTGV4aWNhbCIsImxvY2F0aW9uIjp7InNjcmlw
dElkIjoiNSIsImxpbmVOdW1iZXIiOjIsImNvbHVtbk51bWJlciI6MTB9fSx7Im9iamVjdCI6eyJ0
eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6
MTl9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNjcmlwdGlvbiI6IkpT
TGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJjbG9zdXJlIiwibG9jYXRpb24iOnsic2NyaXB0
SWQiOiI1IiwibGluZU51bWJlciI6MiwiY29sdW1uTnVtYmVyIjoxMH19LHsib2JqZWN0Ijp7InR5
cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjoy
MH0iLCJjbGFzc05hbWUiOiJKU0xleGljYWxFbnZpcm9ubWVudCIsImRlc2NyaXB0aW9uIjoiSlNM
ZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6ImNsb3N1cmUiLCJsb2NhdGlvbiI6eyJzY3JpcHRJ
ZCI6IjUiLCJsaW5lTnVtYmVyIjoyLCJjb2x1bW5OdW1iZXIiOjEwfX0seyJvYmplY3QiOnsidHlw
ZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjIx
fSIsImNsYXNzTmFtZSI6IkpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50IiwiZGVzY3JpcHRpb24i
OiJKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoiZ2xvYmFsTGV4aWNhbEVudmly
b25tZW50In0seyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0
ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjIyfSIsImNsYXNzTmFtZSI6IldpbmRvdyIsImRlc2NyaXB0
aW9uIjoiV2luZG93In0sInR5cGUiOiJnbG9iYWwifV0sInRoaXMiOnsidHlwZSI6Im9iamVjdCIs
Im9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjIzfSIsImNsYXNzTmFt
ZSI6IkluamVjdGVkU2NyaXB0IiwiZGVzY3JpcHRpb24iOiJJbmplY3RlZFNjcmlwdCJ9LCJpc1Rh
aWxEZWxldGVkIjp0cnVlfSx7ImNhbGxGcmFtZUlkIjoie1wib3JkaW5hbFwiOjQsXCJpbmplY3Rl
ZFNjcmlwdElkXCI6MX0iLCJmdW5jdGlvbk5hbWUiOiIiLCJsb2NhdGlvbiI6eyJzY3JpcHRJZCI6
IjAiLCJsaW5lTnVtYmVyIjotMSwiY29sdW1uTnVtYmVyIjotMX0sInNjb3BlQ2hhaW4iOlt7Im9i
amVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6
MSxcImlkXCI6MjR9IiwiY2xhc3NOYW1lIjoiV2luZG93IiwiZGVzY3JpcHRpb24iOiJXaW5kb3ci
fSwidHlwZSI6Imdsb2JhbCJ9XSwidGhpcyI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7
XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6MjV9IiwiY2xhc3NOYW1lIjoiSW5qZWN0ZWRT
Y3JpcHRIb3N0IiwiZGVzY3JpcHRpb24iOiJJbmplY3RlZFNjcmlwdEhvc3QifSwiaXNUYWlsRGVs
ZXRlZCI6ZmFsc2V9LHsiY2FsbEZyYW1lSWQiOiJ7XCJvcmRpbmFsXCI6NSxcImluamVjdGVkU2Ny
aXB0SWRcIjoxfSIsImZ1bmN0aW9uTmFtZSI6IiIsImxvY2F0aW9uIjp7InNjcmlwdElkIjoiNSIs
ImxpbmVOdW1iZXIiOjE0MSwiY29sdW1uTnVtYmVyIjo5Nn0sInNjb3BlQ2hhaW4iOlt7Im9iamVj
dCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxc
ImlkXCI6MjZ9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNjcmlwdGlv
biI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJjbG9zdXJlIiwibG9jYXRpb24iOnsi
c2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MTQyLCJjb2x1bW5OdW1iZXIiOjc3fX0seyJvYmpl
Y3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEs
XCJpZFwiOjI3fSIsImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVudmlyb25tZW50IiwiZGVzY3JpcHRp
b24iOiJKU0xleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoiY2xvc3VyZSIsImxvY2F0aW9uIjp7
InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjE0MiwiY29sdW1uTnVtYmVyIjo3N30sImVtcHR5
Ijp0cnVlfSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3Rl
ZFNjcmlwdElkXCI6MSxcImlkXCI6Mjh9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52aXJvbm1l
bnQiLCJkZXNjcmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJjbG9zdXJl
IiwibmFtZSI6Il93cmFwQW5kU2F2ZUNhbGwiLCJsb2NhdGlvbiI6eyJzY3JpcHRJZCI6IjUiLCJs
aW5lTnVtYmVyIjoxNDEsImNvbHVtbk51bWJlciI6MTd9fSx7Im9iamVjdCI6eyJ0eXBlIjoib2Jq
ZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6Mjl9IiwiY2xh
c3NOYW1lIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNjcmlwdGlvbiI6IkpTTGV4aWNhbEVu
dmlyb25tZW50In0sInR5cGUiOiJuZXN0ZWRMZXhpY2FsIiwibG9jYXRpb24iOnsic2NyaXB0SWQi
OiI1IiwibGluZU51bWJlciI6MiwiY29sdW1uTnVtYmVyIjoxMH19LHsib2JqZWN0Ijp7InR5cGUi
OiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjozMH0i
LCJjbGFzc05hbWUiOiJKU0xleGljYWxFbnZpcm9ubWVudCIsImRlc2NyaXB0aW9uIjoiSlNMZXhp
Y2FsRW52aXJvbm1lbnQifSwidHlwZSI6ImNsb3N1cmUiLCJsb2NhdGlvbiI6eyJzY3JpcHRJZCI6
IjUiLCJsaW5lTnVtYmVyIjoyLCJjb2x1bW5OdW1iZXIiOjEwfX0seyJvYmplY3QiOnsidHlwZSI6
Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjMxfSIs
ImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVudmlyb25tZW50IiwiZGVzY3JpcHRpb24iOiJKU0xleGlj
YWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoiY2xvc3VyZSIsImxvY2F0aW9uIjp7InNjcmlwdElkIjoi
NSIsImxpbmVOdW1iZXIiOjIsImNvbHVtbk51bWJlciI6MTB9fSx7Im9iamVjdCI6eyJ0eXBlIjoi
b2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6MzJ9Iiwi
Y2xhc3NOYW1lIjoiSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNjcmlwdGlvbiI6IkpT
R2xvYmFsTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJnbG9iYWxMZXhpY2FsRW52aXJvbm1l
bnQifSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNj
cmlwdElkXCI6MSxcImlkXCI6MzN9IiwiY2xhc3NOYW1lIjoiV2luZG93IiwiZGVzY3JpcHRpb24i
OiJXaW5kb3cifSwidHlwZSI6Imdsb2JhbCJ9XSwidGhpcyI6eyJ0eXBlIjoib2JqZWN0Iiwib2Jq
ZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6MzR9IiwiY2xhc3NOYW1lIjoi
SW5qZWN0ZWRTY3JpcHQiLCJkZXNjcmlwdGlvbiI6IkluamVjdGVkU2NyaXB0In0sImlzVGFpbERl
bGV0ZWQiOmZhbHNlfSx7ImNhbGxGcmFtZUlkIjoie1wib3JkaW5hbFwiOjYsXCJpbmplY3RlZFNj
cmlwdElkXCI6MX0iLCJmdW5jdGlvbk5hbWUiOiJfd3JhcENhbGwiLCJsb2NhdGlvbiI6eyJzY3Jp
cHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoxNDQsImNvbHVtbk51bWJlciI6OTV9LCJzY29wZUNoYWlu
IjpbeyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3Jp
cHRJZFwiOjEsXCJpZFwiOjM1fSIsImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVudmlyb25tZW50Iiwi
ZGVzY3JpcHRpb24iOiJKU0xleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoibmVzdGVkTGV4aWNh
bCIsIm5hbWUiOiJfd3JhcENhbGwiLCJsb2NhdGlvbiI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVt
YmVyIjoxNDQsImNvbHVtbk51bWJlciI6MTB9fSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwi
b2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6MzZ9IiwiY2xhc3NOYW1l
IjoiSlNMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNjcmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25t
ZW50In0sInR5cGUiOiJjbG9zdXJlIiwibmFtZSI6Il93cmFwQ2FsbCIsImxvY2F0aW9uIjp7InNj
cmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjE0NCwiY29sdW1uTnVtYmVyIjoxMH19LHsib2JqZWN0
Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwi
aWRcIjozN30iLCJjbGFzc05hbWUiOiJKU0xleGljYWxFbnZpcm9ubWVudCIsImRlc2NyaXB0aW9u
IjoiSlNMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6Im5lc3RlZExleGljYWwiLCJsb2NhdGlv
biI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoyLCJjb2x1bW5OdW1iZXIiOjEwfX0seyJv
YmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwi
OjEsXCJpZFwiOjM4fSIsImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVudmlyb25tZW50IiwiZGVzY3Jp
cHRpb24iOiJKU0xleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoiY2xvc3VyZSIsImxvY2F0aW9u
Ijp7InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjIsImNvbHVtbk51bWJlciI6MTB9fSx7Im9i
amVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6
MSxcImlkXCI6Mzl9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNjcmlw
dGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJjbG9zdXJlIiwibG9jYXRpb24i
Onsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MiwiY29sdW1uTnVtYmVyIjoxMH19LHsib2Jq
ZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjox
LFwiaWRcIjo0MH0iLCJjbGFzc05hbWUiOiJKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudCIsImRl
c2NyaXB0aW9uIjoiSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6Imdsb2JhbExl
eGljYWxFbnZpcm9ubWVudCJ9LHsib2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6
IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjo0MX0iLCJjbGFzc05hbWUiOiJXaW5kb3ci
LCJkZXNjcmlwdGlvbiI6IldpbmRvdyJ9LCJ0eXBlIjoiZ2xvYmFsIn1dLCJ0aGlzIjp7InR5cGUi
OiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjo0Mn0i
LCJjbGFzc05hbWUiOiJJbmplY3RlZFNjcmlwdCIsImRlc2NyaXB0aW9uIjoiSW5qZWN0ZWRTY3Jp
cHQifSwiaXNUYWlsRGVsZXRlZCI6ZmFsc2V9LHsiY2FsbEZyYW1lSWQiOiJ7XCJvcmRpbmFsXCI6
NyxcImluamVjdGVkU2NyaXB0SWRcIjoxfSIsImZ1bmN0aW9uTmFtZSI6Il93cmFwQW5kU2F2ZUNh
bGwiLCJsb2NhdGlvbiI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoxNDEsImNvbHVtbk51
bWJlciI6MjJ9LCJzY29wZUNoYWluIjpbeyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVj
dElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjQzfSIsImNsYXNzTmFtZSI6IkpT
TGV4aWNhbEVudmlyb25tZW50IiwiZGVzY3JpcHRpb24iOiJKU0xleGljYWxFbnZpcm9ubWVudCJ9
LCJ0eXBlIjoiY2xvc3VyZSIsIm5hbWUiOiJfd3JhcEFuZFNhdmVDYWxsIiwibG9jYXRpb24iOnsi
c2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MTQxLCJjb2x1bW5OdW1iZXIiOjE3fX0seyJvYmpl
Y3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEs
XCJpZFwiOjQ0fSIsImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVudmlyb25tZW50IiwiZGVzY3JpcHRp
b24iOiJKU0xleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoibmVzdGVkTGV4aWNhbCIsImxvY2F0
aW9uIjp7InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjIsImNvbHVtbk51bWJlciI6MTB9fSx7
Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElk
XCI6MSxcImlkXCI6NDV9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNj
cmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJjbG9zdXJlIiwibG9jYXRp
b24iOnsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MiwiY29sdW1uTnVtYmVyIjoxMH19LHsi
b2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRc
IjoxLFwiaWRcIjo0Nn0iLCJjbGFzc05hbWUiOiJKU0xleGljYWxFbnZpcm9ubWVudCIsImRlc2Ny
aXB0aW9uIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6ImNsb3N1cmUiLCJsb2NhdGlv
biI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoyLCJjb2x1bW5OdW1iZXIiOjEwfX0seyJv
YmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwi
OjEsXCJpZFwiOjQ3fSIsImNsYXNzTmFtZSI6IkpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50Iiwi
ZGVzY3JpcHRpb24iOiJKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoiZ2xvYmFs
TGV4aWNhbEVudmlyb25tZW50In0seyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElk
Ijoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjQ4fSIsImNsYXNzTmFtZSI6IldpbmRv
dyIsImRlc2NyaXB0aW9uIjoiV2luZG93In0sInR5cGUiOiJnbG9iYWwifV0sInRoaXMiOnsidHlw
ZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjQ5
fSIsImNsYXNzTmFtZSI6IkluamVjdGVkU2NyaXB0IiwiZGVzY3JpcHRpb24iOiJJbmplY3RlZFNj
cmlwdCJ9LCJpc1RhaWxEZWxldGVkIjp0cnVlfSx7ImNhbGxGcmFtZUlkIjoie1wib3JkaW5hbFwi
OjgsXCJpbmplY3RlZFNjcmlwdElkXCI6MX0iLCJmdW5jdGlvbk5hbWUiOiJfZXZhbHVhdGVBbmRX
cmFwIiwibG9jYXRpb24iOnsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MTM5LCJjb2x1bW5O
dW1iZXIiOjI5fSwic2NvcGVDaGFpbiI6W3sib2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmpl
Y3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjo1MH0iLCJjbGFzc05hbWUiOiJK
U0xleGljYWxFbnZpcm9ubWVudCIsImRlc2NyaXB0aW9uIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQi
fSwidHlwZSI6ImNsb3N1cmUiLCJuYW1lIjoiX2V2YWx1YXRlQW5kV3JhcCIsImxvY2F0aW9uIjp7
InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjEzOSwiY29sdW1uTnVtYmVyIjoxN319LHsib2Jq
ZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjox
LFwiaWRcIjo1MX0iLCJjbGFzc05hbWUiOiJKU0xleGljYWxFbnZpcm9ubWVudCIsImRlc2NyaXB0
aW9uIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6Im5lc3RlZExleGljYWwiLCJsb2Nh
dGlvbiI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoyLCJjb2x1bW5OdW1iZXIiOjEwfX0s
eyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJ
ZFwiOjEsXCJpZFwiOjUyfSIsImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVudmlyb25tZW50IiwiZGVz
Y3JpcHRpb24iOiJKU0xleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoiY2xvc3VyZSIsImxvY2F0
aW9uIjp7InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjIsImNvbHVtbk51bWJlciI6MTB9fSx7
Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElk
XCI6MSxcImlkXCI6NTN9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNj
cmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJjbG9zdXJlIiwibG9jYXRp
b24iOnsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MiwiY29sdW1uTnVtYmVyIjoxMH19LHsi
b2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRc
IjoxLFwiaWRcIjo1NH0iLCJjbGFzc05hbWUiOiJKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudCIs
ImRlc2NyaXB0aW9uIjoiSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6Imdsb2Jh
bExleGljYWxFbnZpcm9ubWVudCJ9LHsib2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJ
ZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjo1NX0iLCJjbGFzc05hbWUiOiJXaW5k
b3ciLCJkZXNjcmlwdGlvbiI6IldpbmRvdyJ9LCJ0eXBlIjoiZ2xvYmFsIn1dLCJ0aGlzIjp7InR5
cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjo1
Nn0iLCJjbGFzc05hbWUiOiJJbmplY3RlZFNjcmlwdCIsImRlc2NyaXB0aW9uIjoiSW5qZWN0ZWRT
Y3JpcHQifSwiaXNUYWlsRGVsZXRlZCI6dHJ1ZX0seyJjYWxsRnJhbWVJZCI6IntcIm9yZGluYWxc
Ijo5LFwiaW5qZWN0ZWRTY3JpcHRJZFwiOjF9IiwiZnVuY3Rpb25OYW1lIjoiZXZhbHVhdGUiLCJs
b2NhdGlvbiI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoyNywiY29sdW1uTnVtYmVyIjo1
OX0sInNjb3BlQ2hhaW4iOlt7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7
XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6NTd9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2Fs
RW52aXJvbm1lbnQiLCJkZXNjcmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUi
OiJjbG9zdXJlIiwibmFtZSI6ImV2YWx1YXRlIiwibG9jYXRpb24iOnsic2NyaXB0SWQiOiI1Iiwi
bGluZU51bWJlciI6MjcsImNvbHVtbk51bWJlciI6OX19LHsib2JqZWN0Ijp7InR5cGUiOiJvYmpl
Y3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjo1OH0iLCJjbGFz
c05hbWUiOiJKU0xleGljYWxFbnZpcm9ubWVudCIsImRlc2NyaXB0aW9uIjoiSlNMZXhpY2FsRW52
aXJvbm1lbnQifSwidHlwZSI6ImNsb3N1cmUiLCJuYW1lIjoiZXZhbHVhdGUiLCJsb2NhdGlvbiI6
eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoyNywiY29sdW1uTnVtYmVyIjo5fX0seyJvYmpl
Y3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEs
XCJpZFwiOjU5fSIsImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVudmlyb25tZW50IiwiZGVzY3JpcHRp
b24iOiJKU0xleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoibmVzdGVkTGV4aWNhbCIsImxvY2F0
aW9uIjp7InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjIsImNvbHVtbk51bWJlciI6MTB9fSx7
Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElk
XCI6MSxcImlkXCI6NjB9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNj
cmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJjbG9zdXJlIiwibG9jYXRp
b24iOnsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MiwiY29sdW1uTnVtYmVyIjoxMH19LHsi
b2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRc
IjoxLFwiaWRcIjo2MX0iLCJjbGFzc05hbWUiOiJKU0xleGljYWxFbnZpcm9ubWVudCIsImRlc2Ny
aXB0aW9uIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6ImNsb3N1cmUiLCJsb2NhdGlv
biI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoyLCJjb2x1bW5OdW1iZXIiOjEwfX0seyJv
YmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwi
OjEsXCJpZFwiOjYyfSIsImNsYXNzTmFtZSI6IkpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50Iiwi
ZGVzY3JpcHRpb24iOiJKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoiZ2xvYmFs
TGV4aWNhbEVudmlyb25tZW50In0seyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElk
Ijoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjYzfSIsImNsYXNzTmFtZSI6IldpbmRv
dyIsImRlc2NyaXB0aW9uIjoiV2luZG93In0sInR5cGUiOiJnbG9iYWwifV0sInRoaXMiOnsidHlw
ZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjY0
fSIsImNsYXNzTmFtZSI6IkluamVjdGVkU2NyaXB0IiwiZGVzY3JpcHRpb24iOiJJbmplY3RlZFNj
cmlwdCJ9LCJpc1RhaWxEZWxldGVkIjp0cnVlfV0sInJlYXNvbiI6IkJyZWFrcG9pbnQiLCJkYXRh
Ijp7ImJyZWFrcG9pbnRJZCI6IjI6MzowIn19fSkKYmFja2VuZDogeyJtZXRob2QiOiJEZWJ1Z2dl
ci5wYXVzZWQiLCJwYXJhbXMiOnsiY2FsbEZyYW1lcyI6W3siY2FsbEZyYW1lSWQiOiJ7XCJvcmRp
bmFsXCI6MCxcImluamVjdGVkU2NyaXB0SWRcIjoxfSIsImZ1bmN0aW9uTmFtZSI6ImJyZWFrcG9p
bnRCYXNpYyIsImxvY2F0aW9uIjp7InNjcmlwdElkIjoiMiIsImxpbmVOdW1iZXIiOjMsImNvbHVt
bk51bWJlciI6MX0sInNjb3BlQ2hhaW4iOlt7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2Jq
ZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6MX0iLCJjbGFzc05hbWUiOiJK
U0xleGljYWxFbnZpcm9ubWVudCIsImRlc2NyaXB0aW9uIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQi
fSwidHlwZSI6ImNsb3N1cmUiLCJuYW1lIjoiYnJlYWtwb2ludEJhc2ljIiwibG9jYXRpb24iOnsi
c2NyaXB0SWQiOiIyIiwibGluZU51bWJlciI6MSwiY29sdW1uTnVtYmVyIjoyNX0sImVtcHR5Ijp0
cnVlfSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNj
cmlwdElkXCI6MSxcImlkXCI6Mn0iLCJjbGFzc05hbWUiOiJKU0dsb2JhbExleGljYWxFbnZpcm9u
bWVudCIsImRlc2NyaXB0aW9uIjoiSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6
Imdsb2JhbExleGljYWxFbnZpcm9ubWVudCJ9LHsib2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJv
YmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjozfSIsImNsYXNzTmFtZSI6
IldpbmRvdyIsImRlc2NyaXB0aW9uIjoiV2luZG93In0sInR5cGUiOiJnbG9iYWwifV0sInRoaXMi
OnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJp
ZFwiOjR9IiwiY2xhc3NOYW1lIjoiV2luZG93IiwiZGVzY3JpcHRpb24iOiJXaW5kb3cifSwiaXNU
YWlsRGVsZXRlZCI6ZmFsc2V9LHsiY2FsbEZyYW1lSWQiOiJ7XCJvcmRpbmFsXCI6MSxcImluamVj
dGVkU2NyaXB0SWRcIjoxfSIsImZ1bmN0aW9uTmFtZSI6Imdsb2JhbCBjb2RlIiwibG9jYXRpb24i
Onsic2NyaXB0SWQiOiI4IiwibGluZU51bWJlciI6MCwiY29sdW1uTnVtYmVyIjoxNX0sInNjb3Bl
Q2hhaW4iOlt7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3Rl
ZFNjcmlwdElkXCI6MSxcImlkXCI6NX0iLCJjbGFzc05hbWUiOiJKU0dsb2JhbExleGljYWxFbnZp
cm9ubWVudCIsImRlc2NyaXB0aW9uIjoiSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQifSwidHlw
ZSI6Imdsb2JhbExleGljYWxFbnZpcm9ubWVudCJ9LHsib2JqZWN0Ijp7InR5cGUiOiJvYmplY3Qi
LCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjo2fSIsImNsYXNzTmFt
ZSI6IldpbmRvdyIsImRlc2NyaXB0aW9uIjoiV2luZG93In0sInR5cGUiOiJnbG9iYWwifV0sInRo
aXMiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEs
XCJpZFwiOjd9IiwiY2xhc3NOYW1lIjoiV2luZG93IiwiZGVzY3JpcHRpb24iOiJXaW5kb3cifSwi
aXNUYWlsRGVsZXRlZCI6ZmFsc2V9LHsiY2FsbEZyYW1lSWQiOiJ7XCJvcmRpbmFsXCI6MixcImlu
amVjdGVkU2NyaXB0SWRcIjoxfSIsImZ1bmN0aW9uTmFtZSI6Il9ldmFsdWF0ZU9uIiwibG9jYXRp
b24iOnsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MTQ4LCJjb2x1bW5OdW1iZXIiOjEwMn0s
InNjb3BlQ2hhaW4iOlt7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJp
bmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6OH0iLCJjbGFzc05hbWUiOiJKU0xleGljYWxFbnZp
cm9ubWVudCIsImRlc2NyaXB0aW9uIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6ImNs
b3N1cmUiLCJuYW1lIjoiX2V2YWx1YXRlT24iLCJsb2NhdGlvbiI6eyJzY3JpcHRJZCI6IjUiLCJs
aW5lTnVtYmVyIjoxNDcsImNvbHVtbk51bWJlciI6MTJ9fSx7Im9iamVjdCI6eyJ0eXBlIjoib2Jq
ZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6OX0iLCJjbGFz
c05hbWUiOiJKU0xleGljYWxFbnZpcm9ubWVudCIsImRlc2NyaXB0aW9uIjoiSlNMZXhpY2FsRW52
aXJvbm1lbnQifSwidHlwZSI6ImNsb3N1cmUiLCJuYW1lIjoiX2V2YWx1YXRlT24iLCJsb2NhdGlv
biI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoxNDcsImNvbHVtbk51bWJlciI6MTJ9fSx7
Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElk
XCI6MSxcImlkXCI6MTB9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNj
cmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJuZXN0ZWRMZXhpY2FsIiwi
bG9jYXRpb24iOnsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MiwiY29sdW1uTnVtYmVyIjox
MH19LHsib2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2Ny
aXB0SWRcIjoxLFwiaWRcIjoxMX0iLCJjbGFzc05hbWUiOiJKU0xleGljYWxFbnZpcm9ubWVudCIs
ImRlc2NyaXB0aW9uIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6ImNsb3N1cmUiLCJs
b2NhdGlvbiI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoyLCJjb2x1bW5OdW1iZXIiOjEw
fX0seyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3Jp
cHRJZFwiOjEsXCJpZFwiOjEyfSIsImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVudmlyb25tZW50Iiwi
ZGVzY3JpcHRpb24iOiJKU0xleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoiY2xvc3VyZSIsImxv
Y2F0aW9uIjp7InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjIsImNvbHVtbk51bWJlciI6MTB9
fSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlw
dElkXCI6MSxcImlkXCI6MTN9IiwiY2xhc3NOYW1lIjoiSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1l
bnQiLCJkZXNjcmlwdGlvbiI6IkpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJn
bG9iYWxMZXhpY2FsRW52aXJvbm1lbnQifSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2Jq
ZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6MTR9IiwiY2xhc3NOYW1lIjoi
V2luZG93IiwiZGVzY3JpcHRpb24iOiJXaW5kb3cifSwidHlwZSI6Imdsb2JhbCJ9XSwidGhpcyI6
eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlk
XCI6MTV9IiwiY2xhc3NOYW1lIjoiSW5qZWN0ZWRTY3JpcHQiLCJkZXNjcmlwdGlvbiI6IkluamVj
dGVkU2NyaXB0In0sImlzVGFpbERlbGV0ZWQiOnRydWV9LHsiY2FsbEZyYW1lSWQiOiJ7XCJvcmRp
bmFsXCI6MyxcImluamVjdGVkU2NyaXB0SWRcIjoxfSIsImZ1bmN0aW9uTmFtZSI6IiIsImxvY2F0
aW9uIjp7InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjEzOSwiY29sdW1uTnVtYmVyIjoxMTF9
LCJzY29wZUNoYWluIjpbeyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wi
aW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjE2fSIsImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVu
dmlyb25tZW50IiwiZGVzY3JpcHRpb24iOiJKU0xleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoi
Y2xvc3VyZSIsImxvY2F0aW9uIjp7InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjE0MCwiY29s
dW1uTnVtYmVyIjo4NH0sImVtcHR5Ijp0cnVlfSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwi
b2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6MTd9IiwiY2xhc3NOYW1l
IjoiSlNMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNjcmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25t
ZW50In0sInR5cGUiOiJjbG9zdXJlIiwibmFtZSI6Il9ldmFsdWF0ZUFuZFdyYXAiLCJsb2NhdGlv
biI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoxMzksImNvbHVtbk51bWJlciI6MTd9fSx7
Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElk
XCI6MSxcImlkXCI6MTh9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNj
cmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJuZXN0ZWRMZXhpY2FsIiwi
bG9jYXRpb24iOnsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MiwiY29sdW1uTnVtYmVyIjox
MH19LHsib2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2Ny
aXB0SWRcIjoxLFwiaWRcIjoxOX0iLCJjbGFzc05hbWUiOiJKU0xleGljYWxFbnZpcm9ubWVudCIs
ImRlc2NyaXB0aW9uIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6ImNsb3N1cmUiLCJs
b2NhdGlvbiI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoyLCJjb2x1bW5OdW1iZXIiOjEw
fX0seyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3Jp
cHRJZFwiOjEsXCJpZFwiOjIwfSIsImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVudmlyb25tZW50Iiwi
ZGVzY3JpcHRpb24iOiJKU0xleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoiY2xvc3VyZSIsImxv
Y2F0aW9uIjp7InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjIsImNvbHVtbk51bWJlciI6MTB9
fSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlw
dElkXCI6MSxcImlkXCI6MjF9IiwiY2xhc3NOYW1lIjoiSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1l
bnQiLCJkZXNjcmlwdGlvbiI6IkpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJn
bG9iYWxMZXhpY2FsRW52aXJvbm1lbnQifSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2Jq
ZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6MjJ9IiwiY2xhc3NOYW1lIjoi
V2luZG93IiwiZGVzY3JpcHRpb24iOiJXaW5kb3cifSwidHlwZSI6Imdsb2JhbCJ9XSwidGhpcyI6
eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlk
XCI6MjN9IiwiY2xhc3NOYW1lIjoiSW5qZWN0ZWRTY3JpcHQiLCJkZXNjcmlwdGlvbiI6IkluamVj
dGVkU2NyaXB0In0sImlzVGFpbERlbGV0ZWQiOnRydWV9LHsiY2FsbEZyYW1lSWQiOiJ7XCJvcmRp
bmFsXCI6NCxcImluamVjdGVkU2NyaXB0SWRcIjoxfSIsImZ1bmN0aW9uTmFtZSI6IiIsImxvY2F0
aW9uIjp7InNjcmlwdElkIjoiMCIsImxpbmVOdW1iZXIiOi0xLCJjb2x1bW5OdW1iZXIiOi0xfSwi
c2NvcGVDaGFpbiI6W3sib2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImlu
amVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjoyNH0iLCJjbGFzc05hbWUiOiJXaW5kb3ciLCJkZXNj
cmlwdGlvbiI6IldpbmRvdyJ9LCJ0eXBlIjoiZ2xvYmFsIn1dLCJ0aGlzIjp7InR5cGUiOiJvYmpl
Y3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjoyNX0iLCJjbGFz
c05hbWUiOiJJbmplY3RlZFNjcmlwdEhvc3QiLCJkZXNjcmlwdGlvbiI6IkluamVjdGVkU2NyaXB0
SG9zdCJ9LCJpc1RhaWxEZWxldGVkIjpmYWxzZX0seyJjYWxsRnJhbWVJZCI6IntcIm9yZGluYWxc
Ijo1LFwiaW5qZWN0ZWRTY3JpcHRJZFwiOjF9IiwiZnVuY3Rpb25OYW1lIjoiIiwibG9jYXRpb24i
Onsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MTQxLCJjb2x1bW5OdW1iZXIiOjk2fSwic2Nv
cGVDaGFpbiI6W3sib2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVj
dGVkU2NyaXB0SWRcIjoxLFwiaWRcIjoyNn0iLCJjbGFzc05hbWUiOiJKU0xleGljYWxFbnZpcm9u
bWVudCIsImRlc2NyaXB0aW9uIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6ImNsb3N1
cmUiLCJsb2NhdGlvbiI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoxNDIsImNvbHVtbk51
bWJlciI6Nzd9fSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmpl
Y3RlZFNjcmlwdElkXCI6MSxcImlkXCI6Mjd9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52aXJv
bm1lbnQiLCJkZXNjcmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJjbG9z
dXJlIiwibG9jYXRpb24iOnsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MTQyLCJjb2x1bW5O
dW1iZXIiOjc3fSwiZW1wdHkiOnRydWV9LHsib2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmpl
Y3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjoyOH0iLCJjbGFzc05hbWUiOiJK
U0xleGljYWxFbnZpcm9ubWVudCIsImRlc2NyaXB0aW9uIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQi
fSwidHlwZSI6ImNsb3N1cmUiLCJuYW1lIjoiX3dyYXBBbmRTYXZlQ2FsbCIsImxvY2F0aW9uIjp7
InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjE0MSwiY29sdW1uTnVtYmVyIjoxN319LHsib2Jq
ZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjox
LFwiaWRcIjoyOX0iLCJjbGFzc05hbWUiOiJKU0xleGljYWxFbnZpcm9ubWVudCIsImRlc2NyaXB0
aW9uIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6Im5lc3RlZExleGljYWwiLCJsb2Nh
dGlvbiI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoyLCJjb2x1bW5OdW1iZXIiOjEwfX0s
eyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJ
ZFwiOjEsXCJpZFwiOjMwfSIsImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVudmlyb25tZW50IiwiZGVz
Y3JpcHRpb24iOiJKU0xleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoiY2xvc3VyZSIsImxvY2F0
aW9uIjp7InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjIsImNvbHVtbk51bWJlciI6MTB9fSx7
Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElk
XCI6MSxcImlkXCI6MzF9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNj
cmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJjbG9zdXJlIiwibG9jYXRp
b24iOnsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MiwiY29sdW1uTnVtYmVyIjoxMH19LHsi
b2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRc
IjoxLFwiaWRcIjozMn0iLCJjbGFzc05hbWUiOiJKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudCIs
ImRlc2NyaXB0aW9uIjoiSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6Imdsb2Jh
bExleGljYWxFbnZpcm9ubWVudCJ9LHsib2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJ
ZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjozM30iLCJjbGFzc05hbWUiOiJXaW5k
b3ciLCJkZXNjcmlwdGlvbiI6IldpbmRvdyJ9LCJ0eXBlIjoiZ2xvYmFsIn1dLCJ0aGlzIjp7InR5
cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjoz
NH0iLCJjbGFzc05hbWUiOiJJbmplY3RlZFNjcmlwdCIsImRlc2NyaXB0aW9uIjoiSW5qZWN0ZWRT
Y3JpcHQifSwiaXNUYWlsRGVsZXRlZCI6ZmFsc2V9LHsiY2FsbEZyYW1lSWQiOiJ7XCJvcmRpbmFs
XCI6NixcImluamVjdGVkU2NyaXB0SWRcIjoxfSIsImZ1bmN0aW9uTmFtZSI6Il93cmFwQ2FsbCIs
ImxvY2F0aW9uIjp7InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjE0NCwiY29sdW1uTnVtYmVy
Ijo5NX0sInNjb3BlQ2hhaW4iOlt7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQi
OiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6MzV9IiwiY2xhc3NOYW1lIjoiSlNMZXhp
Y2FsRW52aXJvbm1lbnQiLCJkZXNjcmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5
cGUiOiJuZXN0ZWRMZXhpY2FsIiwibmFtZSI6Il93cmFwQ2FsbCIsImxvY2F0aW9uIjp7InNjcmlw
dElkIjoiNSIsImxpbmVOdW1iZXIiOjE0NCwiY29sdW1uTnVtYmVyIjoxMH19LHsib2JqZWN0Ijp7
InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRc
IjozNn0iLCJjbGFzc05hbWUiOiJKU0xleGljYWxFbnZpcm9ubWVudCIsImRlc2NyaXB0aW9uIjoi
SlNMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6ImNsb3N1cmUiLCJuYW1lIjoiX3dyYXBDYWxs
IiwibG9jYXRpb24iOnsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MTQ0LCJjb2x1bW5OdW1i
ZXIiOjEwfX0seyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0
ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjM3fSIsImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVudmlyb25t
ZW50IiwiZGVzY3JpcHRpb24iOiJKU0xleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoibmVzdGVk
TGV4aWNhbCIsImxvY2F0aW9uIjp7InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjIsImNvbHVt
bk51bWJlciI6MTB9fSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJp
bmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6Mzh9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52
aXJvbm1lbnQiLCJkZXNjcmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJj
bG9zdXJlIiwibG9jYXRpb24iOnsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MiwiY29sdW1u
TnVtYmVyIjoxMH19LHsib2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6IntcImlu
amVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjozOX0iLCJjbGFzc05hbWUiOiJKU0xleGljYWxFbnZp
cm9ubWVudCIsImRlc2NyaXB0aW9uIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6ImNs
b3N1cmUiLCJsb2NhdGlvbiI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoyLCJjb2x1bW5O
dW1iZXIiOjEwfX0seyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5q
ZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjQwfSIsImNsYXNzTmFtZSI6IkpTR2xvYmFsTGV4aWNh
bEVudmlyb25tZW50IiwiZGVzY3JpcHRpb24iOiJKU0dsb2JhbExleGljYWxFbnZpcm9ubWVudCJ9
LCJ0eXBlIjoiZ2xvYmFsTGV4aWNhbEVudmlyb25tZW50In0seyJvYmplY3QiOnsidHlwZSI6Im9i
amVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjQxfSIsImNs
YXNzTmFtZSI6IldpbmRvdyIsImRlc2NyaXB0aW9uIjoiV2luZG93In0sInR5cGUiOiJnbG9iYWwi
fV0sInRoaXMiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJ
ZFwiOjEsXCJpZFwiOjQyfSIsImNsYXNzTmFtZSI6IkluamVjdGVkU2NyaXB0IiwiZGVzY3JpcHRp
b24iOiJJbmplY3RlZFNjcmlwdCJ9LCJpc1RhaWxEZWxldGVkIjpmYWxzZX0seyJjYWxsRnJhbWVJ
ZCI6IntcIm9yZGluYWxcIjo3LFwiaW5qZWN0ZWRTY3JpcHRJZFwiOjF9IiwiZnVuY3Rpb25OYW1l
IjoiX3dyYXBBbmRTYXZlQ2FsbCIsImxvY2F0aW9uIjp7InNjcmlwdElkIjoiNSIsImxpbmVOdW1i
ZXIiOjE0MSwiY29sdW1uTnVtYmVyIjoyMn0sInNjb3BlQ2hhaW4iOlt7Im9iamVjdCI6eyJ0eXBl
Ijoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6NDN9
IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQiLCJkZXNjcmlwdGlvbiI6IkpTTGV4
aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJjbG9zdXJlIiwibmFtZSI6Il93cmFwQW5kU2F2ZUNh
bGwiLCJsb2NhdGlvbiI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoxNDEsImNvbHVtbk51
bWJlciI6MTd9fSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmpl
Y3RlZFNjcmlwdElkXCI6MSxcImlkXCI6NDR9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52aXJv
bm1lbnQiLCJkZXNjcmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJuZXN0
ZWRMZXhpY2FsIiwibG9jYXRpb24iOnsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MiwiY29s
dW1uTnVtYmVyIjoxMH19LHsib2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6Intc
ImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjo0NX0iLCJjbGFzc05hbWUiOiJKU0xleGljYWxF
bnZpcm9ubWVudCIsImRlc2NyaXB0aW9uIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6
ImNsb3N1cmUiLCJsb2NhdGlvbiI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoyLCJjb2x1
bW5OdW1iZXIiOjEwfX0seyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wi
aW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjQ2fSIsImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVu
dmlyb25tZW50IiwiZGVzY3JpcHRpb24iOiJKU0xleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoi
Y2xvc3VyZSIsImxvY2F0aW9uIjp7InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjIsImNvbHVt
bk51bWJlciI6MTB9fSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJp
bmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6NDd9IiwiY2xhc3NOYW1lIjoiSlNHbG9iYWxMZXhp
Y2FsRW52aXJvbm1lbnQiLCJkZXNjcmlwdGlvbiI6IkpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50
In0sInR5cGUiOiJnbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQifSx7Im9iamVjdCI6eyJ0eXBlIjoi
b2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6NDh9Iiwi
Y2xhc3NOYW1lIjoiV2luZG93IiwiZGVzY3JpcHRpb24iOiJXaW5kb3cifSwidHlwZSI6Imdsb2Jh
bCJ9XSwidGhpcyI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlw
dElkXCI6MSxcImlkXCI6NDl9IiwiY2xhc3NOYW1lIjoiSW5qZWN0ZWRTY3JpcHQiLCJkZXNjcmlw
dGlvbiI6IkluamVjdGVkU2NyaXB0In0sImlzVGFpbERlbGV0ZWQiOnRydWV9LHsiY2FsbEZyYW1l
SWQiOiJ7XCJvcmRpbmFsXCI6OCxcImluamVjdGVkU2NyaXB0SWRcIjoxfSIsImZ1bmN0aW9uTmFt
ZSI6Il9ldmFsdWF0ZUFuZFdyYXAiLCJsb2NhdGlvbiI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVt
YmVyIjoxMzksImNvbHVtbk51bWJlciI6Mjl9LCJzY29wZUNoYWluIjpbeyJvYmplY3QiOnsidHlw
ZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjUw
fSIsImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVudmlyb25tZW50IiwiZGVzY3JpcHRpb24iOiJKU0xl
eGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoiY2xvc3VyZSIsIm5hbWUiOiJfZXZhbHVhdGVBbmRX
cmFwIiwibG9jYXRpb24iOnsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MTM5LCJjb2x1bW5O
dW1iZXIiOjE3fX0seyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5q
ZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjUxfSIsImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVudmly
b25tZW50IiwiZGVzY3JpcHRpb24iOiJKU0xleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoibmVz
dGVkTGV4aWNhbCIsImxvY2F0aW9uIjp7InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjIsImNv
bHVtbk51bWJlciI6MTB9fSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7
XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6NTJ9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2Fs
RW52aXJvbm1lbnQiLCJkZXNjcmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUi
OiJjbG9zdXJlIiwibG9jYXRpb24iOnsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MiwiY29s
dW1uTnVtYmVyIjoxMH19LHsib2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6Intc
ImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjo1M30iLCJjbGFzc05hbWUiOiJKU0xleGljYWxF
bnZpcm9ubWVudCIsImRlc2NyaXB0aW9uIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6
ImNsb3N1cmUiLCJsb2NhdGlvbiI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoyLCJjb2x1
bW5OdW1iZXIiOjEwfX0seyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wi
aW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjU0fSIsImNsYXNzTmFtZSI6IkpTR2xvYmFsTGV4
aWNhbEVudmlyb25tZW50IiwiZGVzY3JpcHRpb24iOiJKU0dsb2JhbExleGljYWxFbnZpcm9ubWVu
dCJ9LCJ0eXBlIjoiZ2xvYmFsTGV4aWNhbEVudmlyb25tZW50In0seyJvYmplY3QiOnsidHlwZSI6
Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjU1fSIs
ImNsYXNzTmFtZSI6IldpbmRvdyIsImRlc2NyaXB0aW9uIjoiV2luZG93In0sInR5cGUiOiJnbG9i
YWwifV0sInRoaXMiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3Jp
cHRJZFwiOjEsXCJpZFwiOjU2fSIsImNsYXNzTmFtZSI6IkluamVjdGVkU2NyaXB0IiwiZGVzY3Jp
cHRpb24iOiJJbmplY3RlZFNjcmlwdCJ9LCJpc1RhaWxEZWxldGVkIjp0cnVlfSx7ImNhbGxGcmFt
ZUlkIjoie1wib3JkaW5hbFwiOjksXCJpbmplY3RlZFNjcmlwdElkXCI6MX0iLCJmdW5jdGlvbk5h
bWUiOiJldmFsdWF0ZSIsImxvY2F0aW9uIjp7InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjI3
LCJjb2x1bW5OdW1iZXIiOjU5fSwic2NvcGVDaGFpbiI6W3sib2JqZWN0Ijp7InR5cGUiOiJvYmpl
Y3QiLCJvYmplY3RJZCI6IntcImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjo1N30iLCJjbGFz
c05hbWUiOiJKU0xleGljYWxFbnZpcm9ubWVudCIsImRlc2NyaXB0aW9uIjoiSlNMZXhpY2FsRW52
aXJvbm1lbnQifSwidHlwZSI6ImNsb3N1cmUiLCJuYW1lIjoiZXZhbHVhdGUiLCJsb2NhdGlvbiI6
eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoyNywiY29sdW1uTnVtYmVyIjo5fX0seyJvYmpl
Y3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOjEs
XCJpZFwiOjU4fSIsImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVudmlyb25tZW50IiwiZGVzY3JpcHRp
b24iOiJKU0xleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoiY2xvc3VyZSIsIm5hbWUiOiJldmFs
dWF0ZSIsImxvY2F0aW9uIjp7InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjI3LCJjb2x1bW5O
dW1iZXIiOjl9fSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmpl
Y3RlZFNjcmlwdElkXCI6MSxcImlkXCI6NTl9IiwiY2xhc3NOYW1lIjoiSlNMZXhpY2FsRW52aXJv
bm1lbnQiLCJkZXNjcmlwdGlvbiI6IkpTTGV4aWNhbEVudmlyb25tZW50In0sInR5cGUiOiJuZXN0
ZWRMZXhpY2FsIiwibG9jYXRpb24iOnsic2NyaXB0SWQiOiI1IiwibGluZU51bWJlciI6MiwiY29s
dW1uTnVtYmVyIjoxMH19LHsib2JqZWN0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6Intc
ImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjo2MH0iLCJjbGFzc05hbWUiOiJKU0xleGljYWxF
bnZpcm9ubWVudCIsImRlc2NyaXB0aW9uIjoiSlNMZXhpY2FsRW52aXJvbm1lbnQifSwidHlwZSI6
ImNsb3N1cmUiLCJsb2NhdGlvbiI6eyJzY3JpcHRJZCI6IjUiLCJsaW5lTnVtYmVyIjoyLCJjb2x1
bW5OdW1iZXIiOjEwfX0seyJvYmplY3QiOnsidHlwZSI6Im9iamVjdCIsIm9iamVjdElkIjoie1wi
aW5qZWN0ZWRTY3JpcHRJZFwiOjEsXCJpZFwiOjYxfSIsImNsYXNzTmFtZSI6IkpTTGV4aWNhbEVu
dmlyb25tZW50IiwiZGVzY3JpcHRpb24iOiJKU0xleGljYWxFbnZpcm9ubWVudCJ9LCJ0eXBlIjoi
Y2xvc3VyZSIsImxvY2F0aW9uIjp7InNjcmlwdElkIjoiNSIsImxpbmVOdW1iZXIiOjIsImNvbHVt
bk51bWJlciI6MTB9fSx7Im9iamVjdCI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJp
bmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6NjJ9IiwiY2xhc3NOYW1lIjoiSlNHbG9iYWxMZXhp
Y2FsRW52aXJvbm1lbnQiLCJkZXNjcmlwdGlvbiI6IkpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50
In0sInR5cGUiOiJnbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQifSx7Im9iamVjdCI6eyJ0eXBlIjoi
b2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlwdElkXCI6MSxcImlkXCI6NjN9Iiwi
Y2xhc3NOYW1lIjoiV2luZG93IiwiZGVzY3JpcHRpb24iOiJXaW5kb3cifSwidHlwZSI6Imdsb2Jh
bCJ9XSwidGhpcyI6eyJ0eXBlIjoib2JqZWN0Iiwib2JqZWN0SWQiOiJ7XCJpbmplY3RlZFNjcmlw
dElkXCI6MSxcImlkXCI6NjR9IiwiY2xhc3NOYW1lIjoiSW5qZWN0ZWRTY3JpcHQiLCJkZXNjcmlw
dGlvbiI6IkluamVjdGVkU2NyaXB0In0sImlzVGFpbERlbGV0ZWQiOnRydWV9XSwicmVhc29uIjoi
QnJlYWtwb2ludCIsImRhdGEiOnsiYnJlYWtwb2ludElkIjoiMjozOjAifX19ClBBU1M6IFBhdXNl
ZCBpbiBkZWJ1Z2dlcjogcmVhc29uID0gIkJyZWFrcG9pbnQiCmZyb250ZW5kOiB7Im1ldGhvZCI6
IlJ1bnRpbWUuZXZhbHVhdGUiLCJwYXJhbXMiOnsiZXhwcmVzc2lvbiI6IlRlc3RQYWdlLmxvZyh1
bmVzY2FwZShcIlBBU1MlM0ElMjBQYXVzZWQlMjBpbiUyMGRlYnVnZ2VyJTNBJTIwcmVhc29uJTIw
JTNEJTIwJTIyQnJlYWtwb2ludCUyMlwiKSk7In0sImlkIjo2fQpmcm9udGVuZDogeyJtZXRob2Qi
OiJSdW50aW1lLmV2YWx1YXRlIiwicGFyYW1zIjp7ImV4cHJlc3Npb24iOiJ0aGlzLnNob3VsZC50
cmlnZ2VyLmFuLmV4Y2VwdGlvbiJ9LCJpZCI6N30KRnJvbnRlbmRBUElEaXNwYXRjaGVyWzB4Nzg5
ZDg1YTc4XTogY2FsbGVkIHN1c3BlbmQoKQoxICAgMHg3NjFlNGQ3OGEgV2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpzdXNwZW5kKFdlYkNvcmU6Okluc3BlY3RvckZyb250
ZW5kQVBJRGlzcGF0Y2hlcjo6VW5zdXNwZW5kU29vbikKMiAgIDB4NzYxZTRmNTliIFdlYkNvcmU6
Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnBhZ2VQYXVzZWQoKQozICAgMHg3NjFlOGM4
MGEgV2ViQ29yZTo6UGFnZURlYnVnZ2VyOjpzZXRKYXZhU2NyaXB0UGF1c2VkKFdlYkNvcmU6OlBh
Z2VHcm91cCBjb25zdCYsIGJvb2wpCjQgICAweDc2MWU4YzZhOCBXZWJDb3JlOjpQYWdlRGVidWdn
ZXI6OmRpZFBhdXNlKEpTQzo6SlNHbG9iYWxPYmplY3QqKQo1ICAgMHg3N2UzYTQ4Y2IgSlNDOjpE
ZWJ1Z2dlcjo6aGFuZGxlUGF1c2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RGVidWdnZXI6
OlJlYXNvbkZvclBhdXNlKQo2ICAgMHg3N2UzYTNmNTAgSlNDOjpEZWJ1Z2dlcjo6cGF1c2VJZk5l
ZWRlZChKU0M6OkpTR2xvYmFsT2JqZWN0KikKNyAgIDB4NzdlM2E0MzdmIEpTQzo6RGVidWdnZXI6
OnVwZGF0ZUNhbGxGcmFtZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqLCBK
U0M6OkRlYnVnZ2VyOjpDYWxsRnJhbWVVcGRhdGVBY3Rpb24pCjggICAweDc3ZTNhNTdiOSBKU0M6
OkRlYnVnZ2VyOjpyZXR1cm5FdmVudChKU0M6OkNhbGxGcmFtZSopCjkgICAweDc3ZWFhODMyOCBK
U0M6OkludGVycHJldGVyOjpkZWJ1ZyhKU0M6OkNhbGxGcmFtZSosIEpTQzo6RGVidWdIb29rVHlw
ZSkKMTAgIDB4NzdlYmUzOWFhIGxsaW50X3Nsb3dfcGF0aF9kZWJ1ZwoxMSAgMHg3N2RjN2ZjY2Eg
bGxpbnRfZW50cnkKMTIgIDB4NzdkYzdkNWY5IGxsaW50X2VudHJ5CjEzICAweDc3ZGM1YTczMCB2
bUVudHJ5VG9KYXZhU2NyaXB0CjE0ICAweDc3ZWFhNWM3YiBKU0M6OkpJVENvZGU6OmV4ZWN1dGUo
SlNDOjpWTSosIEpTQzo6UHJvdG9DYWxsRnJhbWUqKQoxNSAgMHg3N2VhYTUxYjIgSlNDOjpJbnRl
cnByZXRlcjo6ZXhlY3V0ZVByb2dyYW0oSlNDOjpTb3VyY2VDb2RlIGNvbnN0JiwgSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6SlNPYmplY3QqKQoxNiAgMHg3N2VlNTljMzcgSlNDOjpldmFsdWF0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpTb3VyY2VDb2RlIGNvbnN0JiwgSlNDOjpKU1Zh
bHVlLCBXVEY6Ok5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYpCjE3ICAweDc3ZWU1OWU1MSBKU0M6
OmV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OlNv
dXJjZUNvZGUgY29uc3QmLCBKU0M6OkpTT2JqZWN0KiwgV1RGOjpOYWtlZFB0cjxKU0M6OkV4Y2Vw
dGlvbj4mKQoxOCAgMHg3N2VhMmM1NDAgSW5zcGVjdG9yOjpKU0luamVjdGVkU2NyaXB0SG9zdDo6
ZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKikKMTkgIDB4NzdlYTM0OGIzIEluc3BlY3Rvcjo6anNJbmplY3RlZFNjcmlwdEhvc3RQ
cm90b3R5cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopCjIwICAweDQxMTNiOTIwMTE3OAoyMSAgMHg3N2RjN2Q1
ZjkgbGxpbnRfZW50cnkKMjIgIDB4NzdkYzdkNWY5IGxsaW50X2VudHJ5CjIzICAweDc3ZGM1YTcz
MCB2bUVudHJ5VG9KYXZhU2NyaXB0CjI0ICAweDc3ZWFhNWM3YiBKU0M6OkpJVENvZGU6OmV4ZWN1
dGUoSlNDOjpWTSosIEpTQzo6UHJvdG9DYWxsRnJhbWUqKQoyNSAgMHg3N2VhYTY0MzcgSlNDOjpJ
bnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkNhbGxEYXRhIGNvbnN0JiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkFyZ0xpc3QgY29u
c3QmKQoyNiAgMHg3N2VkZWFkMmQgSlNDOjpjYWxsKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkpTVmFsdWUsIEpTQzo6Q2FsbERhdGEgY29uc3QmLCBKU0M6OkpTVmFsdWUsIEpTQzo6QXJnTGlz
dCBjb25zdCYpCjI3ICAweDc3ZWRlYWUwZiBKU0M6OmNhbGwoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6SlNWYWx1ZSwgSlNDOjpDYWxsRGF0YSBjb25zdCYsIEpTQzo6SlNWYWx1ZSwgSlNDOjpB
cmdMaXN0IGNvbnN0JiwgV1RGOjpOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4mKQoyOCAgMHg3NjBm
YjRhY2EgV2ViQ29yZTo6SlNFeGVjU3RhdGU6OmNhbGwoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6SlNWYWx1ZSwgSlNDOjpDYWxsRGF0YSBjb25zdCYsIEpTQzo6SlNWYWx1ZSwgSlNDOjpBcmdM
aXN0IGNvbnN0JiwgV1RGOjpOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4mKQoyOSAgMHg3NjBmZDFk
M2QgV2ViQ29yZTo6ZnVuY3Rpb25DYWxsSGFuZGxlckZyb21BbnlUaHJlYWQoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6SlNWYWx1ZSwgSlNDOjpDYWxsRGF0YSBjb25zdCYsIEpTQzo6SlNWYWx1
ZSwgSlNDOjpBcmdMaXN0IGNvbnN0JiwgV1RGOjpOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4mKQoz
MCAgMHg3N2UwZTkwM2QgRGVwcmVjYXRlZDo6U2NyaXB0RnVuY3Rpb25DYWxsOjpjYWxsKCkKMzEg
IDB4NzdlOTY1YmE1IEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRCYXNlOjpjYWxsRnVuY3Rpb25X
aXRoRXZhbEVuYWJsZWQoRGVwcmVjYXRlZDo6U2NyaXB0RnVuY3Rpb25DYWxsJikgY29uc3QKRnJv
bnRlbmRBUElEaXNwYXRjaGVyWzB4Nzg5ZDg1YTc4LCBxdWV1ZSBkZXB0aD0xXTogZW5xdWV1aW5n
IGV2YWx1YXRpb246IEluc3BlY3RvckZyb250ZW5kQVBJLmRpc3BhdGNoTWVzc2FnZUFzeW5jKHsi
bWV0aG9kIjoiRGVidWdnZXIuc2NyaXB0UGFyc2VkIiwicGFyYW1zIjp7InNjcmlwdElkIjoiOSIs
InVybCI6IiIsInN0YXJ0TGluZSI6MCwic3RhcnRDb2x1bW4iOjAsImVuZExpbmUiOjAsImVuZENv
bHVtbiI6OTYsImlzQ29udGVudFNjcmlwdCI6ZmFsc2UsIm1vZHVsZSI6ZmFsc2V9fSkKRnJvbnRl
bmRBUElEaXNwYXRjaGVyWzB4Nzg5ZDg1YTc4LCBxdWV1ZSBkZXB0aD0yXTogZW5xdWV1aW5nIGV2
YWx1YXRpb246IEluc3BlY3RvckZyb250ZW5kQVBJLmRpc3BhdGNoTWVzc2FnZUFzeW5jKHsicmVz
dWx0Ijp7InJlc3VsdCI6eyJ0eXBlIjoidW5kZWZpbmVkIn0sIndhc1Rocm93biI6ZmFsc2V9LCJp
ZCI6Nn0pCkZyb250ZW5kQVBJRGlzcGF0Y2hlclsweDc4OWQ4NWE3OCwgcXVldWUgZGVwdGg9M106
IGVucXVldWluZyBldmFsdWF0aW9uOiBJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRjaE1lc3Nh
Z2VBc3luYyh7Im1ldGhvZCI6IkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCIsInBhcmFtcyI6eyJzY3Jp
cHRJZCI6IjEwIiwidXJsIjoiIiwic3RhcnRMaW5lIjowLCJzdGFydENvbHVtbiI6MCwiZW5kTGlu
ZSI6MCwiZW5kQ29sdW1uIjozMiwiaXNDb250ZW50U2NyaXB0IjpmYWxzZSwibW9kdWxlIjpmYWxz
ZX19KQpGcm9udGVuZEFQSURpc3BhdGNoZXJbMHg3ODlkODVhNzgsIHF1ZXVlIGRlcHRoPTRdOiBl
bnF1ZXVpbmcgZXZhbHVhdGlvbjogSW5zcGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0Y2hNZXNzYWdl
QXN5bmMoeyJyZXN1bHQiOnsicmVzdWx0Ijp7InR5cGUiOiJvYmplY3QiLCJvYmplY3RJZCI6Intc
ImluamVjdGVkU2NyaXB0SWRcIjoxLFwiaWRcIjo2NX0iLCJzdWJ0eXBlIjoiZXJyb3IiLCJjbGFz
c05hbWUiOiJUeXBlRXJyb3IiLCJkZXNjcmlwdGlvbiI6IlR5cGVFcnJvcjogdW5kZWZpbmVkIGlz
IG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3RoaXMuc2hvdWxkLnRyaWdnZXInKSJ9LCJ3YXNU
aHJvd24iOnRydWV9LCJpZCI6N30pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412672</attachid>
            <date>2020-10-29 12:26:56 -0700</date>
            <delta_ts>2020-10-29 15:26:59 -0700</delta_ts>
            <desc>Patch v2.1 (for EWS)</desc>
            <filename>bug-217835-20201029122656.patch</filename>
            <type>text/plain</type>
            <size>65213</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDZmZTI5M2Y2ZjZhYjhl
Mzc3ODU3ZmFkYmEzYzg1NDRkY2UyMzQwYy4uZjI4M2RiMzA2OTMxNmFiOTYzNjZkZWI3YTRlMzFj
ODE5OTYxZThkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIwLTEwLTE2ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUg
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIHRvIFdlYkNvcmUsIGNsZWFuIHVwIHVzZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgzNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzODQ0MDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGV2aW4gUm91c3NvLgorCisgICAgICAgIEV4cG9zZSB0aGUgZGlzcGF0Y2hlciBhcyBwYXJ0IG9m
IHRoZSBJbnNwZWN0b3JGcm9udGVuZENsaWVudCBBUEkgc28gdGhhdCBvdGhlciBjb2RlCisgICAg
ICAgIGNhbiB1c2UgdGhlIGRpc3BhdGNoZXIgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0J3MgYSBX
ZWJJbnNwZWN0b3JVSSBvciBSZW1vdGVXZWJJbnNwZWN0b3JVSS4KKworICAgICAgICBBZGQgYW4g
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIGluc3RhbmNlIGFuZCBnZXR0ZXIgdG8gSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC4KKworICAgICAgICBBZG9wdCB0aGUgSlNPTlZhbHVl
LWJhc2VkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2goKSBtZXRob2QK
KyAgICAgICAgaW4gSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC4gUmVtb3ZlIHRoZSByZWR1
bmRhbnQgcGFyYWxsZWwgcXVldWluZyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgUmVtb3ZlIHJl
ZHVuZGFudCBwdWJsaWMgbWV0aG9kcyB0aGF0IGFyZSBhdmFpbGFibGUgb24gSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBNb3ZlZCBmaWxlcy4K
KworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpyZXNl
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmZy
b250ZW5kTG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcjo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OnVuc3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoTWVzc2FnZUFzeW5jKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVP
clF1ZXVlRXhwcmVzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OmV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZUV4cHJlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0
ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKToKKyAgICAgICAgQWRkIG5ldyBkaXNwYXRjaCgpIG1ldGhv
ZC4gUmVtb3ZlIG90aGVyIGRpc3BhdGNoIG1ldGhvZHMgdGhhdCBjYW4gYmUgZXhwcmVzc2VkCisg
ICAgICAgIHVzaW5nIHRoZSBuZXcgSlNPTjo6VmFsdWUtYmFzZWQgbWV0aG9kLiBJZiBpdCdzIG5v
dCBwb3NzaWJsZSB0byBldmFsdWF0ZSBKUworICAgICAgICBpbW1lZGlhdGVseSwgc2NoZWR1bGUg
YSBvbmUtc2hvdCB0YXNrIHRvIHRyeSBhZ2FpbiBvbiBhIGRpZmZlcmVudCBldmVudCBsb29wIHR1
cm4uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oLgorICAgICAgICBBZGQgbmV3IGRpc3BhdGNo
KCkgbWV0aG9kIHdoaWNoIHRha2VzIGEgdmVjdG9yIG9mIEpTT046OlZhbHVlIG9iamVjdHMgYW5k
CisgICAgICAgIHNlcmlhbGl6ZXMgdGhlbSBpbnRvIGNvbW1hbmQgYXJndW1lbnRzIGZvciB0aGUg
ZnJvbnRlbmQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Okluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbDo6ZnJvbnRlbmRMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6cGFnZVBhdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpwYWdlVW5wYXVzZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RG9ja2luZ1VuYXZhaWxhYmxlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldEF0dGFj
aGVkV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9j
YWw6OnNldERlYnVnZ2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDo6c2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnN0YXJ0UHJvZmlsaW5nSmF2
YVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
OjpzdG9wUHJvZmlsaW5nSmF2YVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsOjpzaG93Q29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzaG93UmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNob3dNYWluUmVzb3VyY2VGb3JGcmFt
ZSk6CisgICAgICAgIFVzZSBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgdG8gZGlzcGF0
Y2ggY29tbWFuZHMgdG8gdGhlIGZyb250ZW5kLgorCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaE1lc3NhZ2UpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZGlz
cGF0Y2hNZXNzYWdlQXN5bmMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6ZXZhbHVhdGVPbkxvYWQpOiBEZWxldGVkLgorICAgICAgICBU
aGVzZSBhcmUgcmVkdW5kYW50IHdpdGggSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLgor
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yU3R1YkZyb250ZW5kOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOiBVc2UgZnJvbnRlbmQg
ZGlzcGF0Y2hlciBkaXJlY3RseS4KKwogMjAyMC0xMC0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQcm9jZXNzXSBVc2UgYXN5bmMgSVBDIGZvciBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcidzIFN0YXJ0QXVkaW9EZXN0aW5hdGlvbiAvIFN0b3BB
dWRpb0Rlc3RpbmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJjOGMxMzQ2OGQwNmZkMTIyM2FhZTg1Mjk3YTZi
MmY4NzkxNzgzYjAuLjkwODhiZjFlYjM4ODZjMjQ3MjhmZjRkNjFlZDhhODNlZDIyYjM1Y2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMjAtMTAtMjEgIEJyaWFuIEJ1cmcgIDxiYnVyZ0Bh
cHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXIgdG8gV2ViQ29yZSwgY2xlYW4gdXAgdXNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3ODM1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MDM4NDQwNz4KKworICAgICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28uCisK
KyAgICAgICAgQWRvcHQgdGhlIEpTT05WYWx1ZS1iYXNlZCBJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXI6OmRpc3BhdGNoKCkgbWV0aG9kCisgICAgICAgIGluIFdlYkluc3BlY3RvclVJIGFu
ZCBSZW1vdGVJbnNwZWN0b3JVSSBtZXRob2RzIHRoYXQgZGlzcGF0Y2ggdG8gdGhlIGZyb250ZW5k
LgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6IE1vdmUgZmlsZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3Bl
Y3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVj
dG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2Vi
SW5zcGVjdG9yVUk6OlJlbW90ZVdlYkluc3BlY3RvclVJKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlV2ViSW5zcGVjdG9yVUk6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVX
ZWJJbnNwZWN0b3JVSTo6dXBkYXRlRmluZFN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVdlYkluc3BlY3RvclVJOjpkaWRTYXZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5z
cGVjdG9yVUk6OmRpZEFwcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3Rv
clVJOjpmcm9udGVuZExvYWRlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3Rv
clVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJ
bnNwZWN0b3JVSTo6cGFnZVBhdXNlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3Bl
Y3RvclVJOjpwYWdlVW5wYXVzZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0
b3JVSTo6c2V0RGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUpOgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clVJOjpXZWJJbnNwZWN0b3JVSSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpz
ZXREb2NrU2lkZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzZXREb2NraW5n
VW5hdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2V0SXNWaXNp
YmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnVwZGF0ZUZpbmRTdHJpbmcp
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2V0RGlhZ25vc3RpY0xvZ2dpbmdB
dmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2hvd0NvbnNvbGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2hvd1Jlc291cmNlcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzaG93TWFpblJlc291cmNlRm9yRnJhbWUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c3RhcnRQYWdlUHJvZmlsaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnN0b3BQYWdlUHJvZmlsaW5nKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnN0YXJ0RWxlbWVudFNlbGVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzdG9wRWxlbWVudFNlbGVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpkaWRTYXZlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yVUk6OmRpZEFwcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0
b3JVSTo6ZXZhbHVhdGVJbkZyb250ZW5kRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3RvclVJOjpwYWdlUGF1c2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9y
VUk6OnBhZ2VVbnBhdXNlZCk6CisKIDIwMjAtMTAtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBbR1BVUHJvY2Vzc10gVXNlIGFzeW5jIElQQyBmb3IgUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIncyBTdGFydEF1ZGlvRGVzdGluYXRpb24gLyBTdG9wQXVk
aW9EZXN0aW5hdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9jZi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2NmL0NoYW5nZUxvZwppbmRleCAwNmU3OTYwZWZmNmVj
MDY2MTRhZWRlZGRhM2RlMGJhNzcxMjRhMTMwLi5lZTc0ZTE2NDg2NjEzZDU1M2ZhOGJhODAwOTQy
NDkzMmFjOWI4MWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2NmL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2NmL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIwLTEwLTE2ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IG1vdmUgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIHRvIFdlYkNv
cmUsIGNsZWFuIHVwIHVzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNzgzNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzODQ0MDc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwOgorICAgICAgICAoV2ViSW5zcGVjdG9yQ2xpZW50
OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorCiAyMDE5LTA4LTE4ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dURl0gQWRkIG1ha2VVbmlxdWU8VD4sIHdo
aWNoIGVuc3VyZXMgVCBpcyBmYXN0LWFsbG9jYXRlZCwgbWFrZVVuaXF1ZSAvIG1ha2VVbmlxdWVX
aXRob3V0RmFzdE1hbGxvY0NoZWNrIHBhcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDY4ODRkMGY4
NmQyOWRjMTQ5MTY2MTE3YmE1Yzk2NGQxMGIzM2JkZGYuLmU3MTA1OGVhODcwMWZhNTY3ZjBmYzk3
YTJmMDUxYmMyYWJjMTA1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNjk2LDYgKzY5Niw3IEBA
IHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBpbnNwZWN0b3IvSW5z
cGVjdG9yQ2xpZW50LmgKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCiAgICAg
aW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2FibGVUeXBlLmgKKyAgICBpbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQuaAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgK
ICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
MmZmMjU1YjVlZjEzNTFhZTYzZjZjZTk1ZDNmYTZlMDE3NDJhZWE4Yi4uMzAxODY3NzEzN2QwNTRl
OGI4ZDQ4ODkxOWQ3ZTNkYjY1YWIyYTk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE0MDIsNiArMTQw
Miw3IEBAIGluc3BlY3Rvci9JbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5jcHAKIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDYW52YXMuY3BwCiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKIGluc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmNwcAoraW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAKIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsLmNwcAogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAK
IGluc3BlY3Rvci9JbnNwZWN0b3JIaXN0b3J5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY5NDAzOGIwODBlZjYxOTQzODQ1
ODIwYmRjYzQ5ZGE5ZTZkMjkxMTEuLjE5ZDYzYzQxNGI2MDJlMjgzY2UwMDRlNGMyZTI4MjRhN2E2
MmU5MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTI5NzksNiArMjk3OSw3IEBACiAJCTk4Q0U0MzJBMTI5RTAwRTUwMDU4MjFE
QyAvKiBMaW5rTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5OENFNDMyOTEyOUUwMEU1MDA1ODIxREMgLyogTGlua0xvYWRlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk4RUIxRjk1MTMxM0ZF
MDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOThFQjFGOTQxMzEzRkUwNTAwRDBFMUVBIC8qIE5vdEltcGxl
bWVudGVkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTkyMDM5ODMxOEI5NUJDNjAwQjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkyMDM5ODExOEI5NUJDNjAw
QjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTk5NEM2MDNBMjUzQTI3NzMwMEJERjA2MCAvKiBJbnNwZWN0
b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk5NEM2MDM3MjUzQTI3NzIwMEJERjA2MCAvKiBJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5OTZFNTlERjFERjAxMjhEMDA2NjEyQjkgLyogTmF2aWdhdG9yV2ViRHJp
dmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZF
NTlEQzFERjAwRDkwMDA2NjEyQjkgLyogTmF2aWdhdG9yV2ViRHJpdmVyLmggKi87IH07CiAJCTk5
RDFCMkQzMjNBQzE0MzEwMDgxMUNGMCAvKiBJbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlEMUIyRDEyM0FDMTQz
MDAwODExQ0YwIC8qIEluc3BlY3RvckRlYnVnZ2FibGVUeXBlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUE1MjhFODQxN0Q3RjUyRjAwQUE5NTE4
IC8qIEZsb2F0aW5nT2JqZWN0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUE1MjhFODIxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTc2
MCw2ICsxMTc2MSw4IEBACiAJCTk5MDhCMEZGMUJDQUQwN0QwMEVEMzU3MiAvKiBSZWFkYWJsZVN0
cmVhbUJZT0JSZWFkZXJCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBSZWFkYWJsZVN0cmVhbUJZT0JSZWFkZXJCdWlsdGlucy5oOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9SZWFkYWJsZVN0cmVhbUJZT0JSZWFkZXJCdWlsdGlucy5oOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk5OTIwMzk4MDE4Qjk1QkM2MDBCMzlBRjkgLyog
VXNlcklucHV0QnJpZGdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFVzZXJJbnB1dEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MjAz
OTgxMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVXNlcklucHV0QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk5NEM2MDM3MjUzQTI3NzIwMEJERjA2MCAvKiBJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9y
RnJvbnRlbmRBUElEaXNwYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5
NEM2MDM5MjUzQTI3NzMwMEJERjA2MCAvKiBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk2RTU5
REIxREYwMEQ5MDAwNjYxMkI5IC8qIE5hdmlnYXRvcldlYkRyaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXZpZ2F0b3JXZWJEcml2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5OTZFNTlEQzFERjAwRDkwMDA2NjEyQjkgLyogTmF2aWdh
dG9yV2ViRHJpdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRv
cldlYkRyaXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTZFNTlERDFERjAw
RDkwMDA2NjEyQjkgLyogTmF2aWdhdG9yK1dlYkRyaXZlci5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gIk5hdmlnYXRvcitXZWJEcml2ZXIuaWRsIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE4NDA4LDYgKzE4NDExLDggQEAKIAkJCQk0MUYwNjIxMzBGNUYxOTI2MDBBMDdFQUMg
LyogSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAgKi8sCiAJCQkJNDFGMDYyMTIwRjVGMTky
NjAwQTA3RUFDIC8qIEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuaCAqLywKIAkJCQk5OUQxQjJE
MTIzQUMxNDMwMDA4MTFDRjAgLyogSW5zcGVjdG9yRGVidWdnYWJsZVR5cGUuaCAqLywKKwkJCQk5
OTRDNjAzOTI1M0EyNzczMDBCREYwNjAgLyogSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
LmNwcCAqLywKKwkJCQk5OTRDNjAzNzI1M0EyNzcyMDBCREYwNjAgLyogSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyLmggKi8sCiAJCQkJRjM0NEM3MTIxMTI1QjgyQzAwRjI2RUVFIC8qIElu
c3BlY3RvckZyb250ZW5kQ2xpZW50LmggKi8sCiAJCQkJRjM0NEM3NTcxMTI5NEZGNjAwRjI2RUVF
IC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwICovLAogCQkJCUYzNDRDNzUyMTEy
OTREOUQwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggKi8sCkBAIC0z
MjE2MCw2ICszMjE2NSw3IEBACiAJCQkJQTVCODFDQUIxRkFBNDQ2MjAwMzdEMUU2IC8qIEluc3Bl
Y3RvckRPTUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNBQzFGQUE0NDYyMDAzN0Qx
RTYgLyogSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVC
ODFDQUQxRkFBNDQ2MjAwMzdEMUU2IC8qIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTk0QzYwM0EyNTNBMjc3MzAwQkRGMDYwIC8qIEluc3BlY3RvckZyb250
ZW5kQVBJRGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjM0NEM3MTQxMTI1QjgyQzAw
RjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlG
MzQ0Qzc1MzExMjk0RDlEMDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0EwRTc3MEYxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3Rv
ckZyb250ZW5kSG9zdC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjljZDMzNDE4MTcxNzA3YWIxY2JlYjlmYTEyYjdmYzMwNDA2YmVhYWIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyLmNwcApAQCAtMCwwICsxLDIxOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5o
IgorCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU2Ny
aXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdERpc2FsbG93ZWRTY29wZS5oIgorI2lu
Y2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKyNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ZyYW1lVHJhY2Vycy5oPgorCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKwordXNpbmcgRXZhbHVhdGlvbkVycm9yID0gSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNw
YXRjaGVyOjpFdmFsdWF0aW9uRXJyb3I7Cit1c2luZyBFdmFsdWF0aW9uUmVzdWx0SGFuZGxlciA9
IENvbXBsZXRpb25IYW5kbGVyPEV4cGVjdGVkPEpTQzo6SlNWYWx1ZSwgRXZhbHVhdGlvbkVycm9y
Pj47CisKK0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6SW5zcGVjdG9yRnJvbnRlbmRB
UElEaXNwYXRjaGVyKFBhZ2UmIGZyb250ZW5kUGFnZSkKKyAgICA6IG1fZnJvbnRlbmRQYWdlKG1h
a2VXZWFrUHRyKGZyb250ZW5kUGFnZSkpCit7Cit9CisKK0luc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcjo6fkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcigpCit7CisgICAgaW52YWxp
ZGF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyOjpyZXNldCgpCit7CisgICAgbV9mcm9udGVuZExvYWRlZCA9IGZhbHNlOworICAg
IG1fc3VzcGVuZGVkID0gZmFsc2U7CisKKyAgICBpbnZhbGlkYXRlUXVldWVkRXhwcmVzc2lvbnMo
KTsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmZyb250ZW5kTG9h
ZGVkKCkKK3sKKyAgICBBU1NFUlQobV9mcm9udGVuZFBhZ2UpOworICAgIG1fZnJvbnRlbmRMb2Fk
ZWQgPSB0cnVlOworCisgICAgZXZhbHVhdGVRdWV1ZWRFeHByZXNzaW9ucygpOworfQorCit2b2lk
IEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6c3VzcGVuZChVbnN1c3BlbmRTb29uIHVu
c3VzcGVuZFNvb24pCit7CisgICAgQVNTRVJUKG1fZnJvbnRlbmRMb2FkZWQpOworCisgICAgaWYg
KG1fc3VzcGVuZGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3N1c3BlbmRlZCA9IHRydWU7
CisKKyAgICBpZiAodW5zdXNwZW5kU29vbiA9PSBVbnN1c3BlbmRTb29uOjpZZXMpIHsKKyAgICAg
ICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyldIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSBmcm9udGVuZCBwYWdlIGhhcyBiZWVuIGRlYWxs
b2NhdGVkLCB0aGVyZSdzIG5vdGhpbmcgdG8gZG8uCisgICAgICAgICAgICBpZiAoIXByb3RlY3Rl
ZFRoaXMtPm1fZnJvbnRlbmRQYWdlKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5pc1N1c3BlbmRlZCgpKQorICAgICAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+dW5zdXNwZW5kKCk7CisgICAg
ICAgIH0pOworICAgIH0KK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6
OnVuc3VzcGVuZCgpCit7CisgICAgaWYgKCFtX3N1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9zdXNwZW5kZWQgPSBmYWxzZTsKKworICAgIGV2YWx1YXRlUXVldWVkRXhwcmVzc2lv
bnMoKTsKK30KKworSlNHbG9iYWxPYmplY3QqIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
cjo6ZnJvbnRlbmRHbG9iYWxPYmplY3QoKQoreworICAgIGlmICghbV9mcm9udGVuZFBhZ2UpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIAorICAgIHJldHVybiBtX2Zyb250ZW5kUGFnZS0+
bWFpbkZyYW1lKCkuc2NyaXB0KCkuZ2xvYmFsT2JqZWN0KG1haW5UaHJlYWROb3JtYWxXb3JsZCgp
KTsKK30KKworc3RhdGljIFN0cmluZyBleHByZXNzaW9uRm9yRXZhbHVhdGluZ0NvbW1hbmQoY29u
c3QgU3RyaW5nJiBjb21tYW5kLCBWZWN0b3I8UmVmPEpTT046OlZhbHVlPj4mJiBhcmd1bWVudHMp
Cit7CisgICAgU3RyaW5nQnVpbGRlciBleHByZXNzaW9uOworICAgIGV4cHJlc3Npb24uYXBwZW5k
TGl0ZXJhbCgiSW5zcGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0Y2goW1wiIik7CisgICAgZXhwcmVz
c2lvbi5hcHBlbmQoY29tbWFuZCk7CisgICAgZXhwcmVzc2lvbi5hcHBlbmQoJyInKTsKKworICAg
IGZvciAoYXV0byYgYXJndW1lbnQgOiBhcmd1bWVudHMpIHsKKyAgICAgICAgZXhwcmVzc2lvbi5h
cHBlbmRMaXRlcmFsKCIsICIpOworICAgICAgICBhcmd1bWVudC0+d3JpdGVKU09OKGV4cHJlc3Np
b24pOworICAgIH0KKworICAgIGV4cHJlc3Npb24uYXBwZW5kKCddJyk7CisgICAgZXhwcmVzc2lv
bi5hcHBlbmQoJyknKTsKKyAgICByZXR1cm4gZXhwcmVzc2lvbi50b1N0cmluZygpOworfQorCit2
b2lkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2hDb21tYW5kKGNvbnN0
IFN0cmluZyYgY29tbWFuZCwgVmVjdG9yPFJlZjxKU09OOjpWYWx1ZT4+JiYgYXJndW1lbnRzKQor
eworICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24oZXhwcmVzc2lvbkZvckV2YWx1YXRpbmdD
b21tYW5kKGNvbW1hbmQsIFdURk1vdmUoYXJndW1lbnRzKSksIFdURjo6bnVsbG9wdCk7Cit9CisK
K0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6RXZhbHVhdGlvblJlc3VsdCBJbnNwZWN0
b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZFN5bmMoY29uc3QgU3RyaW5n
JiBjb21tYW5kLCBWZWN0b3I8UmVmPEpTT046OlZhbHVlPj4mJiBhcmd1bWVudHMpCit7CisgICAg
aWYgKG1fc3VzcGVuZGVkKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRXZhbHVhdGlv
bkVycm9yOjpFeGVjdXRpb25TdXNwZW5kZWQpOworCisgICAgcmV0dXJuIGV2YWx1YXRlRXhwcmVz
c2lvbihleHByZXNzaW9uRm9yRXZhbHVhdGluZ0NvbW1hbmQoY29tbWFuZCwgV1RGTW92ZShhcmd1
bWVudHMpKSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpkaXNw
YXRjaENvbW1hbmRXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgY29tbWFuZCwgVmVjdG9yPFJlZjxK
U09OOjpWYWx1ZT4+JiYgYXJndW1lbnRzLCBFdmFsdWF0aW9uUmVzdWx0SGFuZGxlciYmIHJlc3Vs
dEhhbmRsZXIpCit7CisgICAgZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbihleHByZXNzaW9uRm9y
RXZhbHVhdGluZ0NvbW1hbmQoY29tbWFuZCwgV1RGTW92ZShhcmd1bWVudHMpKSwgT3B0aW9uYWwo
V1RGTW92ZShyZXN1bHRIYW5kbGVyKSkpOworfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hNZXNzYWdlQXN5bmMoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQor
eworICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24obWFrZVN0cmluZygiSW5zcGVjdG9yRnJv
bnRlbmRBUEkuZGlzcGF0Y2hNZXNzYWdlQXN5bmMoIiwgbWVzc2FnZSwgIikiKSk7Cit9CisKK3Zv
aWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZU9yUXVldWVFeHByZXNz
aW9uKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgT3B0aW9uYWw8RXZhbHVhdGlvblJlc3VsdEhh
bmRsZXI+JiYgb3B0aW9uYWxSZXN1bHRIYW5kbGVyKQoreworICAgIC8vIElmIHRoZSBmcm9udGVu
ZCBwYWdlIGhhcyBiZWVuIGRlYWxsb2NhdGVkLCB0aGVuIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG8u
CisgICAgaWYgKCFtX2Zyb250ZW5kUGFnZSkgeworICAgICAgICBpZiAob3B0aW9uYWxSZXN1bHRI
YW5kbGVyKQorICAgICAgICAgICAgKCpvcHRpb25hbFJlc3VsdEhhbmRsZXIpKG1ha2VVbmV4cGVj
dGVkKEV2YWx1YXRpb25FcnJvcjo6Q29udGV4dERlc3Ryb3llZCkpOworCisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICAvLyBTb21ldGltZXMgd2UgZ2V0IGhlcmUgYnkgc2VuZGluZyBtZXNz
YWdlcyBmb3IgZXZlbnRzIHRyaWdnZXJlZCBieSBET00gbXV0YXRpb25zIGVhcmxpZXIgaW4gdGhl
IGNhbGwgc3RhY2suCisgICAgLy8gSWYgdGhpcyBpcyB0aGUgY2FzZSwgdGhlbiBpdCdzIG5vdCBz
YWZlIHRvIGV2YWx1YXRlIHNjcmlwdCBzeW5jaHJvbm91c2x5LCBzbyBkbyBpdCBsYXRlci4gVGhp
cyBvbmx5IGFmZmVjdHMKKyAgICAvLyBXZWJLaXQxIGFuZCBzb21lIGxheW91dCB0ZXN0cyB0aGF0
IHVzZSBhIHNpbmdsZSB3ZWIgcHJvY2VzcyBmb3IgYm90aCB0aGUgaW5zcGVjdG9yIGFuZCBpbnNw
ZWN0ZWQgcGFnZS4KKyAgICBpZiAoIVNjcmlwdERpc2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFk
Ojppc1NjcmlwdEFsbG93ZWQoKSkKKyAgICAgICAgc3VzcGVuZChVbnN1c3BlbmRTb29uOjpZZXMp
OworCisgICAgaWYgKCFtX2Zyb250ZW5kTG9hZGVkIHx8IG1fc3VzcGVuZGVkKSB7CisgICAgICAg
IG1fcXVldWVkRXZhbHVhdGlvbnMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGV4cHJlc3Npb24sIFdU
Rk1vdmUob3B0aW9uYWxSZXN1bHRIYW5kbGVyKSkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGV2YWx1YXRlRXhwcmVzc2lvbihleHByZXNzaW9u
KTsKKyAgICBpZiAob3B0aW9uYWxSZXN1bHRIYW5kbGVyKQorICAgICAgICAoKm9wdGlvbmFsUmVz
dWx0SGFuZGxlcikocmVzdWx0KTsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXI6OmludmFsaWRhdGVRdWV1ZWRFeHByZXNzaW9ucygpCit7CisgICAgYXV0byBxdWV1ZWRF
dmFsdWF0aW9ucyA9IHN0ZDo6ZXhjaGFuZ2UobV9xdWV1ZWRFdmFsdWF0aW9ucywgeyB9KTsKKyAg
ICBmb3IgKGF1dG8mIHBhaXIgOiBxdWV1ZWRFdmFsdWF0aW9ucykgeworICAgICAgICBhdXRvIHJl
c3VsdEhhbmRsZXIgPSBXVEZNb3ZlKHBhaXIuc2Vjb25kKTsKKyAgICAgICAgaWYgKHJlc3VsdEhh
bmRsZXIpCisgICAgICAgICAgICAoKnJlc3VsdEhhbmRsZXIpKG1ha2VVbmV4cGVjdGVkKEV2YWx1
YXRpb25FcnJvcjo6Q29udGV4dERlc3Ryb3llZCkpOworICAgIH0KK30KKwordm9pZCBJbnNwZWN0
b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKQorewor
ICAgIC8vIElmIHRoZSBmcm9udGVuZCBwYWdlIGhhcyBiZWVuIGRlYWxsb2NhdGVkLCB0aGVuIHRo
ZXJlIGlzIG5vdGhpbmcgdG8gZG8uCisgICAgaWYgKCFtX2Zyb250ZW5kUGFnZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKG1fcXVldWVkRXZhbHVhdGlvbnMuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvIHF1ZXVlZEV2YWx1YXRpb25zID0gc3RkOjpleGNoYW5nZSht
X3F1ZXVlZEV2YWx1YXRpb25zLCB7IH0pOworICAgIGZvciAoYXV0byYgcGFpciA6IHF1ZXVlZEV2
YWx1YXRpb25zKSB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gZXZhbHVhdGVFeHByZXNzaW9uKHBh
aXIuZmlyc3QpOworICAgICAgICBpZiAoYXV0byByZXN1bHRIYW5kbGVyID0gV1RGTW92ZShwYWly
LnNlY29uZCkpCisgICAgICAgICAgICAoKnJlc3VsdEhhbmRsZXIpKHJlc3VsdCk7CisgICAgfQor
fQorCitKU0M6OkpTVmFsdWUgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0
ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQoreworICAgIEFTU0VSVChtX2Zy
b250ZW5kUGFnZSk7CisgICAgQVNTRVJUKCFtX3N1c3BlbmRlZCk7CisgICAgQVNTRVJUKG1fcXVl
dWVkRXZhbHVhdGlvbnMuaXNFbXB0eSgpKTsKKworICAgIEpTQzo6U3VzcGVuZEV4Y2VwdGlvblNj
b3BlIHNjb3BlKCZtX2Zyb250ZW5kUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLnZtKCkpOwor
ICAgIHJldHVybiBtX2Zyb250ZW5kUGFnZS0+bWFpbkZyYW1lKCkuc2NyaXB0KCkuZXZhbHVhdGVJ
Z25vcmluZ0V4Y2VwdGlvbihTY3JpcHRTb3VyY2VDb2RlKGV4cHJlc3Npb24pKTsKK30KKwordm9p
ZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmV2YWx1YXRlRXhwcmVzc2lvbkZvclRl
c3RpbmcoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQoreworICAgIGV2YWx1YXRlT3JRdWV1ZUV4
cHJlc3Npb24oZXhwcmVzc2lvbik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0
Y2hlci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiODViYWNhZGM4MTU4NGU0YTA2MjBhYmQ4NzUzYWY1OGVi
NGFlYzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVl
Lmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0V4
cGVjdGVkLmg+CisjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFnZTsKKworY2xh
c3MgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50
ZWQ8SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyPiB7CitwdWJsaWM6CisgICAgZW51bSBj
bGFzcyBFdmFsdWF0aW9uRXJyb3IgeyBFeGVjdXRpb25TdXNwZW5kZWQsIENvbnRleHREZXN0cm95
ZWQgfTsKKyAgICB1c2luZyBFdmFsdWF0aW9uUmVzdWx0ID0gRXhwZWN0ZWQ8SlNDOjpKU1ZhbHVl
LCBFdmFsdWF0aW9uRXJyb3I+OworICAgIHVzaW5nIEV2YWx1YXRpb25SZXN1bHRIYW5kbGVyID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFdmFsdWF0aW9uUmVzdWx0KT47CisKKyAgICBlbnVtIGNs
YXNzIFVuc3VzcGVuZFNvb24geyBZZXMsIE5vIH07CisgICAgCisgICAgV0VCQ09SRV9FWFBPUlQg
fkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcigpOworCisgICAgc3RhdGljIFJlZjxJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI+IGNyZWF0ZShQYWdlJiBwYWdlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
KHBhZ2UpKTsKKyAgICB9CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc2V0KCk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBmcm9udGVuZExvYWRlZCgpOworCisgICAgLy8gSWYgaXQncyBu
b3QgY3VycmVudGx5IHNhZmUgdG8gZXZhbHVhdGUgSmF2YVNjcmlwdCBvbiB0aGUgZnJvbnRlbmQg
cGFnZSwgdGhlCisgICAgLy8gZGlzcGF0Y2hlciB3aWxsIGJlY29tZSBzdXNwZW5kZWQgYW5kIGRp
c3BhdGNoIGFueSBxdWV1ZWQgZXZhbHVhdGlvbnMgd2hlbiB1bnN1c3BlbmRlZC4KKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHN1c3BlbmQoVW5zdXNwZW5kU29vbiA9IFVuc3VzcGVuZFNvb246Ok5v
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuc3VzcGVuZCgpOworICAgIGJvb2wgaXNTdXNw
ZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX3N1c3BlbmRlZDsgfQorCisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBkaXNwYXRjaENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kLCBWZWN0b3I8UmVm
PEpTT046OlZhbHVlPj4mJiBhcmd1bWVudHMgPSB7IH0pOworICAgIEV2YWx1YXRpb25SZXN1bHQg
ZGlzcGF0Y2hDb21tYW5kU3luYyhjb25zdCBTdHJpbmcmIGNvbW1hbmQsIFZlY3RvcjxSZWY8SlNP
Tjo6VmFsdWU+PiYmIGFyZ3VtZW50cyA9IHsgfSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
aXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgY29tbWFuZCwgVmVjdG9yPFJl
ZjxKU09OOjpWYWx1ZT4+JiYgYXJndW1lbnRzLCBFdmFsdWF0aW9uUmVzdWx0SGFuZGxlciYmKTsK
KworICAgIC8vIFVzZWQgdG8gZm9yd2FyZCBtZXNzYWdlcyBmcm9tIHRoZSBiYWNrZW5kIGNvbm5l
Y3Rpb24gdG8gdGhlIGZyb250ZW5kLgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0Y2hN
ZXNzYWdlQXN5bmMoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZXZhbHVhdGVFeHByZXNzaW9uRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmKTsKKyAgICAK
KyAgICAvLyBDb252ZW5pZW5jZSBtZXRob2QgdG8gb2J0YWluIGEgSlNHbG9iYWxPYmplY3QgZm9y
IHRoZSBmcm9udGVuZCBwYWdlLgorICAgIC8vIFRoaXMgaXMgdXNlZCB0byBjb252ZXJ0IGJldHdl
ZW4gQysrIHZhbHVlcyBhbmQgZnJvbnRlbmQgSlNDOjpKU1ZhbHVlIG9iamVjdHMuCisgICAgV0VC
Q09SRV9FWFBPUlQgSlNDOjpKU0dsb2JhbE9iamVjdCogZnJvbnRlbmRHbG9iYWxPYmplY3QoKTsK
K3ByaXZhdGU6CisgICAgV0VCQ09SRV9FWFBPUlQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRj
aGVyKFBhZ2UmKTsKKworICAgIHZvaWQgZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbihjb25zdCBT
dHJpbmcmLCBXVEY6Ok9wdGlvbmFsPEV2YWx1YXRpb25SZXN1bHRIYW5kbGVyPiYmID0gV1RGOjpu
dWxsb3B0KTsKKyAgICB2b2lkIGV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKKyAgICB2b2lk
IGludmFsaWRhdGVRdWV1ZWRFeHByZXNzaW9ucygpOworICAgIEpTQzo6SlNWYWx1ZSBldmFsdWF0
ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJik7CisKKyAgICBXZWFrUHRyPFBhZ2U+IG1fZnJvbnRl
bmRQYWdlOworICAgIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBPcHRpb25hbDxFdmFsdWF0aW9u
UmVzdWx0SGFuZGxlcj4+PiBtX3F1ZXVlZEV2YWx1YXRpb25zOworICAgIGJvb2wgbV9mcm9udGVu
ZExvYWRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3N1c3BlbmRlZCB7IGZhbHNlIH07Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCmluZGV4IDRmZTg4YjdlOGY4YjhiMDc0ZTE3OGQw
NDU4YTEyMGJiYjVjZWY1ZDguLjBhNzlkODZiM2M0Njk3NzgxNGE2OGY0ZWFhZWRiOGE4ZWU5ZmZi
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudC5oCkBAIC00MSw2ICs0MSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEZsb2F0UmVjdDsKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjsKIAogY2xh
c3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQgewogcHVibGljOgpAQCAtNTYsNiArNTcsOSBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHdpbmRvd09iamVjdENsZWFy
ZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZyb250ZW5kTG9hZGVkKCkgPSAwOwogCisgICAg
dmlydHVhbCB2b2lkIHBhZ2VQYXVzZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBhZ2VVbnBh
dXNlZCgpID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBzdGFydFdpbmRvd0RyYWcoKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIG1vdmVXaW5kb3dCeShmbG9hdCB4LCBmbG9hdCB5KSA9IDA7CiAKQEAg
LTEwNSwxMCArMTA5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGlj
RXZlbnQoY29uc3QgU3RyaW5nJiAvKiBldmVudE5hbWUgKi8sIGNvbnN0IERpYWdub3N0aWNMb2dn
aW5nQ2xpZW50OjpWYWx1ZURpY3Rpb25hcnkmKSB7IH0KICNlbmRpZgogCi0gICAgdmlydHVhbCB2
b2lkIHBhZ2VQYXVzZWQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGFnZVVucGF1c2VkKCkgeyB9
Ci0KICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2VuZE1lc3NhZ2VUb0JhY2tlbmQo
Y29uc3QgU3RyaW5nJikgPSAwOworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgSW5zcGVjdG9y
RnJvbnRlbmRBUElEaXNwYXRjaGVyJiBmcm9udGVuZEFQSURpc3BhdGNoZXIoKSA9IDA7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGJvb2wgaXNVbmRlclRlc3QoKSA9IDA7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWwuY3BwCmluZGV4IGNjZTU5MDM1ZWRlNTcwYTY0OWExMjY3NmMzOTMyMmQ0OGU4NGQ4
ZjQuLjdkNGJiOGE1NDkxODAzMjM4ZjY2NjIwMDZkYzZiYmFkMGVlMDdmMTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbC5jcHAKQEAgLTE1MCw2ICsxNTAsNyBAQCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsKEluc3BlY3RvckNvbnRyb2xsZXIqCiAgICAg
LCBtX3NldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKQogICAgICwgbV9kb2NrU2lkZShEb2NrU2lk
ZTo6VW5kb2NrZWQpCiAgICAgLCBtX2Rpc3BhdGNoVGFzayhJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hUYXNrOjpjcmVhdGUoaW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIpKQorICAgICwgbV9mcm9udGVu
ZEFQSURpc3BhdGNoZXIoSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpjcmVhdGUoKmZy
b250ZW5kUGFnZSkpCiB7CiAgICAgbV9mcm9udGVuZFBhZ2UtPnNldHRpbmdzKCkuc2V0QWxsb3dG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzKHRydWUpOwogfQpAQCAtMTg1LDEwICsxODYsMjAgQEAgdm9p
ZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpmcm9udGVuZExvYWRlZCgpCiAgICAgLy8g
VGh1cyBpZiB3ZSBjYWxsIGNhbkF0dGFjaFdpbmRvdyBmaXJzdCB3ZSBjYW4gYXZvaWQgdGhpcyBw
cm9ibGVtLiBUaGlzIGNoYW5nZSBkb2VzIG5vdCBjYXVzZSBhbnkgcmVncmVzc2lvbnMgb24gTWFj
LgogICAgIHNldERvY2tpbmdVbmF2YWlsYWJsZSghY2FuQXR0YWNoV2luZG93KCkpOwogICAgIGJy
aW5nVG9Gcm9udCgpOwotICAgIG1fZnJvbnRlbmRMb2FkZWQgPSB0cnVlOwotICAgIGZvciAoYXV0
byYgZXZhbHVhdGUgOiBtX2V2YWx1YXRlT25Mb2FkKQotICAgICAgICBldmFsdWF0ZU9uTG9hZChl
dmFsdWF0ZSk7Ci0gICAgbV9ldmFsdWF0ZU9uTG9hZC5jbGVhcigpOworCisgICAgbV9mcm9udGVu
ZEFQSURpc3BhdGNoZXItPmZyb250ZW5kTG9hZGVkKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDo6cGFnZVBhdXNlZCgpCit7CisgICAgLy8gTk9URTogcGFnZVBhdXNl
ZCgpIGFuZCBwYWdlVW5wYXVzZWQoKSBkbyBub3Qgc3VzcGVuZC91bnN1c3BlbmQgdGhlIGZyb250
ZW5kIEFQSSBkaXNwYXRjaGVyCisgICAgLy8gZm9yIHRoaXMgc3ViY2xhc3Mgb2YgSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQuIFRoZSBpbnNwZWN0ZWQgcGFnZSBhbmQgdGhlIGZyb250ZW5kIHBhZ2UK
KyAgICAvLyBleGlzdCBpbiB0aGUgc2FtZSB3ZWIgcHJvY2Vzcywgc28gbWVzc2FnZXMgbmVlZCB0
byBiZSBzZW50IGV2ZW4gd2hpbGUgdGhlIGRlYnVnZ2VyIGlzIHBhdXNlZC4KKyAgICAvLyBTdXNw
ZW5kaW5nIGhlcmUgd291bGQgc3RhbGwgb3V0IGxhdGVyIGNvbW1hbmRzIHRoYXQgcmVzdW1lIHRo
ZSBkZWJ1Z2dlciwgY2F1c2luZyB0aGUgdGVzdCB0byB0aW1lIG91dC4KK30KKwordm9pZCBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpwYWdlVW5wYXVzZWQoKQorewogfQogCiBVc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnVzZXJJ
bnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSBjb25zdApAQCAtMjI3LDcgKzIzOCw3IEBAIGJvb2wg
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6Y2FuQXR0YWNoV2luZG93KCkKIAogdm9pZCBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzZXREb2NraW5nVW5hdmFpbGFibGUoYm9vbCB1
bmF2YWlsYWJsZSkKIHsKLSAgICBkaXNwYXRjaChtYWtlU3RyaW5nKCJbXCJzZXREb2NraW5nVW5h
dmFpbGFibGVcIiwgIiwgdW5hdmFpbGFibGUgPyAidHJ1ZSIgOiAiZmFsc2UiLCAnXScpKTsKKyAg
ICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXREb2NraW5nVW5h
dmFpbGFibGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh1bmF2YWlsYWJsZSkgfSk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6Y2hhbmdlQXR0YWNoZWRXaW5kb3dI
ZWlnaHQodW5zaWduZWQgaGVpZ2h0KQpAQCAtMjk3LDcgKzMwOCw3IEBAIHZvaWQgSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0QXR0YWNoZWRXaW5kb3coRG9ja1NpZGUgZG9ja1NpZGUp
CiAKICAgICBtX2RvY2tTaWRlID0gZG9ja1NpZGU7CiAKLSAgICBkaXNwYXRjaChtYWtlU3RyaW5n
KCJbXCJzZXREb2NrU2lkZVwiLCBcIiIsIHNpZGUsICJcIl0iKSk7CisgICAgbV9mcm9udGVuZEFQ
SURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0RG9ja1NpZGUiX3MsIHsgSlNPTjo6VmFs
dWU6OmNyZWF0ZShzaWRlKSB9KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsOjpyZXN0b3JlQXR0YWNoZWRXaW5kb3dIZWlnaHQoKQpAQCAtMzE0LDU5ICszMjUsNzQgQEAg
dm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpyZXN0b3JlQXR0YWNoZWRXaW5kb3dI
ZWlnaHQoKQogCiBib29sIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmlzRGVidWdnaW5n
RW5hYmxlZCgpCiB7Ci0gICAgaWYgKG1fZnJvbnRlbmRMb2FkZWQpCi0gICAgICAgIHJldHVybiBl
dmFsdWF0ZUFzQm9vbGVhbigiW1wiaXNEZWJ1Z2dpbmdFbmFibGVkXCJdIik7Ci0gICAgcmV0dXJu
IGZhbHNlOworICAgIGlmICghbV9mcm9udGVuZExvYWRlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgYXV0byByZXN1bHQgPSBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hD
b21tYW5kU3luYygiaXNEZWJ1Z2dpbmdFbmFibGVkIl9zLCB7IH0pOworICAgIGlmICghcmVzdWx0
IHx8ICFyZXN1bHQudmFsdWUoKS50b0Jvb2xlYW4obV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmZy
b250ZW5kR2xvYmFsT2JqZWN0KCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1
cm4gdHJ1ZTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzZXREZWJ1
Z2dpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKLSAgICBkaXNwYXRjaChtYWtlU3RyaW5nKCJb
XCJzZXREZWJ1Z2dpbmdFbmFibGVkXCIsICIsIGVuYWJsZWQgPyAidHJ1ZSIgOiAiZmFsc2UiLCAn
XScpKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXRE
ZWJ1Z2dpbmdFbmFibGVkIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUoZW5hYmxlZCkgfSk7CiB9
CiAKIGJvb2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6aXNUaW1lbGluZVByb2ZpbGlu
Z0VuYWJsZWQoKQogewotICAgIGlmIChtX2Zyb250ZW5kTG9hZGVkKQotICAgICAgICByZXR1cm4g
ZXZhbHVhdGVBc0Jvb2xlYW4oIltcImlzVGltZWxpbmVQcm9maWxpbmdFbmFibGVkXCJdIik7Ci0g
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghbV9mcm9udGVuZExvYWRlZCkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgYXV0byByZXN1bHQgPSBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+
ZGlzcGF0Y2hDb21tYW5kU3luYygiaXNUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQiX3MsIHsgfSk7
CisgICAgaWYgKCFyZXN1bHQgfHwgIXJlc3VsdC52YWx1ZSgpLnRvQm9vbGVhbihtX2Zyb250ZW5k
QVBJRGlzcGF0Y2hlci0+ZnJvbnRlbmRHbG9iYWxPYmplY3QoKSkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWw6OnNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7Ci0g
ICAgZGlzcGF0Y2gobWFrZVN0cmluZygiW1wic2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkXCIs
ICIsIGVuYWJsZWQgPyAidHJ1ZSIgOiAiZmFsc2UiLCAnXScpKTsKKyAgICBtX2Zyb250ZW5kQVBJ
RGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQi
X3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShlbmFibGVkKSB9KTsKIH0KIAogYm9vbCBJbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsOjppc1Byb2ZpbGluZ0phdmFTY3JpcHQoKQogewotICAgIGlm
IChtX2Zyb250ZW5kTG9hZGVkKQotICAgICAgICByZXR1cm4gZXZhbHVhdGVBc0Jvb2xlYW4oIltc
ImlzUHJvZmlsaW5nSmF2YVNjcmlwdFwiXSIpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAo
IW1fZnJvbnRlbmRMb2FkZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gcmVz
dWx0ID0gbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFN5bmMoImlzUHJv
ZmlsaW5nSmF2YVNjcmlwdCJfcywgeyB9KTsKKyAgICBpZiAoIXJlc3VsdCB8fCAhcmVzdWx0LnZh
bHVlKCkudG9Cb29sZWFuKG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5mcm9udGVuZEdsb2JhbE9i
amVjdCgpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c3RhcnRQcm9maWxpbmdKYXZhU2Ny
aXB0KCkKIHsKLSAgICBkaXNwYXRjaCgiW1wic3RhcnRQcm9maWxpbmdKYXZhU2NyaXB0XCJdIik7
CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic3RhcnRQcm9m
aWxpbmdKYXZhU2NyaXB0Il9zKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsOjpzdG9wUHJvZmlsaW5nSmF2YVNjcmlwdCgpCiB7Ci0gICAgZGlzcGF0Y2goIltcInN0b3BQ
cm9maWxpbmdKYXZhU2NyaXB0XCJdIik7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRp
c3BhdGNoQ29tbWFuZCgic3RvcFByb2ZpbGluZ0phdmFTY3JpcHQiX3MpOwogfQogCiB2b2lkIElu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNob3dDb25zb2xlKCkKIHsKLSAgICBkaXNwYXRj
aCgiW1wic2hvd0NvbnNvbGVcIl0iKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlz
cGF0Y2hDb21tYW5kKCJzaG93Q29uc29sZSJfcyk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbDo6c2hvd1Jlc291cmNlcygpCiB7Ci0gICAgZGlzcGF0Y2goIltcInNob3dS
ZXNvdXJjZXNcIl0iKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21t
YW5kKCJzaG93UmVzb3VyY2VzIl9zKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsOjpzaG93TWFpblJlc291cmNlRm9yRnJhbWUoRnJhbWUqIGZyYW1lKQogewogICAgIFN0
cmluZyBmcmFtZUlkID0gbV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxlci0+ZW5zdXJlUGFnZUFnZW50
KCkuZnJhbWVJZChmcmFtZSk7Ci0gICAgZGlzcGF0Y2gobWFrZVN0cmluZygiW1wic2hvd01haW5S
ZXNvdXJjZUZvckZyYW1lXCIsIFwiIiwgZnJhbWVJZCwgIlwiXSIpKTsKKyAgICBtX2Zyb250ZW5k
QVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzaG93TWFpblJlc291cmNlRm9yRnJhbWUi
X3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShmcmFtZUlkKSB9KTsKIH0KIAogdW5zaWduZWQgSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6Y29uc3RyYWluZWRBdHRhY2hlZFdpbmRvd0hlaWdo
dCh1bnNpZ25lZCBwcmVmZXJyZWRIZWlnaHQsIHVuc2lnbmVkIHRvdGFsV2luZG93SGVpZ2h0KQpA
QCAtMzk0LDQ2ICs0MjAsNiBAQCB1bnNpZ25lZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
OjppbnNwZWN0aW9uTGV2ZWwoKSBjb25zdAogICAgIHJldHVybiBtX2luc3BlY3RlZFBhZ2VDb250
cm9sbGVyLT5pbnNwZWN0aW9uTGV2ZWwoKSArIDE7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbDo6ZGlzcGF0Y2goY29uc3QgU3RyaW5nJiBzaWduYXR1cmUpCi17Ci0gICAg
QVNTRVJUKCFzaWduYXR1cmUuaXNFbXB0eSgpKTsKLSAgICBBU1NFUlQoc2lnbmF0dXJlLnN0YXJ0
c1dpdGgoJ1snKSk7Ci0gICAgQVNTRVJUKHNpZ25hdHVyZS5lbmRzV2l0aCgnXScpKTsKLQotICAg
IGV2YWx1YXRlT25Mb2FkKCJJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRjaCgiICsgc2lnbmF0
dXJlICsgIikiKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNw
YXRjaE1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlT2JqZWN0KQotewotICAgIEFTU0VSVCgh
bWVzc2FnZU9iamVjdC5pc0VtcHR5KCkpOwotCi0gICAgZXZhbHVhdGVPbkxvYWQoIkluc3BlY3Rv
ckZyb250ZW5kQVBJLmRpc3BhdGNoTWVzc2FnZSgiICsgbWVzc2FnZU9iamVjdCArICIpIik7Ci19
Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZGlzcGF0Y2hNZXNzYWdlQXN5
bmMoY29uc3QgU3RyaW5nJiBtZXNzYWdlT2JqZWN0KQotewotICAgIEFTU0VSVCghbWVzc2FnZU9i
amVjdC5pc0VtcHR5KCkpOwotCi0gICAgZXZhbHVhdGVPbkxvYWQoIkluc3BlY3RvckZyb250ZW5k
QVBJLmRpc3BhdGNoTWVzc2FnZUFzeW5jKCIgKyBtZXNzYWdlT2JqZWN0ICsgIikiKTsKLX0KLQot
Ym9vbCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpldmFsdWF0ZUFzQm9vbGVhbihjb25z
dCBTdHJpbmcmIGV4cHJlc3Npb24pCi17Ci0gICAgYXV0byYgc3RhdGUgPSAqbWFpbldvcmxkRXhl
Y1N0YXRlKCZtX2Zyb250ZW5kUGFnZS0+bWFpbkZyYW1lKCkpOwotICAgIHJldHVybiBtX2Zyb250
ZW5kUGFnZS0+bWFpbkZyYW1lKCkuc2NyaXB0KCkuZXhlY3V0ZVNjcmlwdElnbm9yaW5nRXhjZXB0
aW9uKGV4cHJlc3Npb24pLnRvV1RGU3RyaW5nKCZzdGF0ZSkgPT0gInRydWUiOwotfQotCi12b2lk
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmV2YWx1YXRlT25Mb2FkKGNvbnN0IFN0cmlu
ZyYgZXhwcmVzc2lvbikKLXsKLSAgICBpZiAoIW1fZnJvbnRlbmRMb2FkZWQpIHsKLSAgICAgICAg
bV9ldmFsdWF0ZU9uTG9hZC5hcHBlbmQoZXhwcmVzc2lvbik7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBKU0M6OlN1c3BlbmRFeGNlcHRpb25TY29wZSBzY29wZSgmbV9mcm9udGVuZFBh
Z2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS52bSgpKTsKLSAgICBtX2Zyb250ZW5kUGFnZS0+bWFp
bkZyYW1lKCkuc2NyaXB0KCkuZXZhbHVhdGVJZ25vcmluZ0V4Y2VwdGlvbihTY3JpcHRTb3VyY2VD
b2RlKGV4cHJlc3Npb24pKTsKLX0KLQogUGFnZSogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bDo6aW5zcGVjdGVkUGFnZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2luc3BlY3RlZFBhZ2VDb250
cm9sbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsLmgKaW5kZXggNDNhM2VjZGM3NjhkMGUwZmU3M2FkZmE2NWVlM2Fm
M2U3NzEzYjg2OC4uODFjMmM2ODQ4N2U1YWY2NDNkYzZiMDMzOTAwOWUwZWRjZjZiYjYwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbC5oCkBAIC0zMSw2ICszMSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSAiSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNjYsNiArNjcsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHdpbmRvd09iamVjdENsZWFyZWQoKSBmaW5hbDsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGZyb250ZW5kTG9hZGVkKCkgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBwYWdlUGF1c2VkKCkgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwYWdlVW5w
YXVzZWQoKSBmaW5hbDsKIAogICAgIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCkgb3ZlcnJpZGUgeyB9
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkg
ZmluYWw7CkBAIC05MSw2ICs5NCw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB1bnNp
Z25lZCBpbnNwZWN0aW9uTGV2ZWwoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgYmFja2VuZENv
bW1hbmRzVVJMKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU3RyaW5nKCk7IH07CiAKKyAgICBJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXImIGZyb250ZW5kQVBJRGlzcGF0Y2hlcigpIGZpbmFs
IHsgcmV0dXJuIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyOyB9CisKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIGNhbkF0dGFjaFdpbmRvdygpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RG9j
a2luZ1VuYXZhaWxhYmxlKGJvb2wpOwogCkBAIC0xMTksMTAgKzEyNCw2IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCBQYWdlKiBpbnNwZWN0ZWRQYWdlKCkgY29uc3Q7CiAgICAgUGFnZSog
ZnJvbnRlbmRQYWdlKCkgY29uc3QgeyByZXR1cm4gbV9mcm9udGVuZFBhZ2U7IH0KIAotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0Y2goY29uc3QgU3RyaW5nJiBzaWduYXR1cmUpOwotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0Y2hNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZU9iamVjdCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNwYXRjaE1lc3NhZ2VBc3luYyhj
b25zdCBTdHJpbmcmIG1lc3NhZ2VPYmplY3QpOwotCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2
b2lkIHNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQpID0gMDsKQEAgLTEzMSwxMCArMTMy
LDggQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTaGVldFJlY3QoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JikgPSAwOwogCiBwcml2YXRlOgotICAgIGJvb2wgZXZhbHVhdGVBc0Jv
b2xlYW4oY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKTsKLSAgICB2b2lkIGV2YWx1YXRlT25Mb2Fk
KGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbik7Ci0KICAgICBmcmllbmQgY2xhc3MgRnJvbnRlbmRN
ZW51UHJvdmlkZXI7CisKICAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBtX2luc3BlY3RlZFBhZ2VD
b250cm9sbGVyIHsgbnVsbHB0ciB9OwogICAgIFBhZ2UqIG1fZnJvbnRlbmRQYWdlIHsgbnVsbHB0
ciB9OwogICAgIC8vIFRPRE8oeXVyeXMpOiB0aGlzIHJlZiBzaG91bGRuJ3QgYmUgbmVlZGVkLgpA
QCAtMTQyLDggKzE0MSw4IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50TG9jYWw6OlNldHRpbmdzPiBtX3NldHRpbmdzOwogICAgIGJvb2wgbV9m
cm9udGVuZExvYWRlZCB7IGZhbHNlIH07CiAgICAgRG9ja1NpZGUgbV9kb2NrU2lkZTsKLSAgICBW
ZWN0b3I8U3RyaW5nPiBtX2V2YWx1YXRlT25Mb2FkOwogICAgIFJlZjxJbnNwZWN0b3JCYWNrZW5k
RGlzcGF0Y2hUYXNrPiBtX2Rpc3BhdGNoVGFzazsKKyAgICBSZWY8SW5zcGVjdG9yRnJvbnRlbmRB
UElEaXNwYXRjaGVyPiBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAyYWY3OGRi
ZDliNzEyMTRmYjJlZGU4MTMzMTdlMjZhNzM0ODEzODMwLi43ZjVhMGQxMjhhZjhiMmI3OTIxNTk2
NmM2N2NlODllNGFiMGMwMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBA
IC00MDgsNyArNDA4LDcgQEAgdm9pZCBJbnNwZWN0b3JTdHViRnJvbnRlbmQ6OmNsb3NlV2luZG93
KCkKIAogdm9pZCBJbnNwZWN0b3JTdHViRnJvbnRlbmQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgZGlzcGF0Y2hNZXNzYWdlQXN5bmMobWVzc2Fn
ZSk7CisgICAgZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkuZGlzcGF0Y2hNZXNzYWdlQXN5bmMobWVz
c2FnZSk7CiB9CiAKIHN0YXRpYyBib29sIG1hcmtlclR5cGVGcm9tKGNvbnN0IFN0cmluZyYgbWFy
a2VyVHlwZSwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUmIHJlc3VsdCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cmlu
ZGV4IGZmZTk3ODdkZWFlNTQ3NTI2NzM2ZTIxMTAwNDJiMGI5ZjhkYzA4MDEuLmUwYWI3NDM2YmFk
YzM0NjM3NDk0NjYzMzQ3MTliNDVlZGZkMmIzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNTQ3LDcgKzU0
Nyw2IEBAIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VI
YW5kbGUuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVj
dG9yVUkuY3BwCiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuY3BwCiBXZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCi1XZWJQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwCiBXZWJQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyLmNwcAogV2ViUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlSW5z
cGVjdG9yVGFyZ2V0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNDQwNmU5YjZlN2U2ZjRhMDM2MmU2YzU2YmI4NDliZmViZWM4YzBj
Ny4uNDY2NWNjYjdiYzZhZjdhN2EwODkxNWZkZTQ2NzI2ZDk2N2Y1ZmNiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDkyLDcgKzE0
OTIsNiBAQAogCQlBNTVCQTgyNTFCQTI1Q0ZCMDA3Q0QzM0QgLyogUmVtb3RlV2ViSW5zcGVjdG9y
UHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTU1QkE4MjIxQkEyNUJCODAwN0NEMzNEIC8qIFJlbW90ZVdlYkluc3BlY3RvclByb3h5
TWVzc2FnZXMuaCAqLzsgfTsKIAkJQTU1QkE4MjYxQkEyNUNGRDAwN0NEMzNEIC8qIFJlbW90ZVdl
Ykluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NUJBODIxMUJBMjVCQjgwMDdDRDMzRCAvKiBSZW1v
dGVXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUE1NUJBODJC
MUJBMzhFNjEwMDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NUJBODI4MUJBMzhFMUUwMDdDRDMz
RCAvKiBXZWJJbnNwZWN0b3JVdGlsaXRpZXMuaCAqLzsgfTsKLQkJQTU1QkE4MzUxQkEzRTcwQTAw
N0NEMzNEIC8qIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU1QkE4MzMxQkEzRTZGQTAwN0NE
MzNEIC8qIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oICovOyB9OwogCQlBNTg2
MEU3MTIzMEY2N0ZDMDA0NjFBQUUgLyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTg2MEU3MDIz
MEY2N0RFMDA0NjFBQUUgLyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmggKi87IH07
CiAJCUE1OEI2RjA4MThGQ0E3MzMwMDhDQkE1MyAvKiBXS0ZpbGVVcGxvYWRQYW5lbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU4QjZGMDYxOEZDQTcz
MzAwOENCQTUzIC8qIFdLRmlsZVVwbG9hZFBhbmVsLmggKi87IH07CiAJCUE1QzBGMEE3MjAwMDY1
NEQwMDUzNjUzNiAvKiBfV0tOU1dpbmRvd0V4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVDMEYwQTYyMDAwNjU0NDAwNTM2NTM2IC8qIF9XS05T
V2luZG93RXh0cmFzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTQ2NzIsOCArNDY3MSw2IEBACiAJCUE1NUJBODIyMUJBMjVCQjgwMDdDRDMzRCAv
KiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlBNTVCQTgyNzFCQTM4RTFFMDA3
Q0QzM0QgLyogV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkluc3BlY3RvclV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE1NUJBODI4MUJBMzhFMUUwMDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JV
dGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSW5zcGVjdG9y
VXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE1NUJBODMyMUJBM0U2
RkEwMDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTU1QkE4MzMxQkEz
RTZGQTAwN0NEMzNEIC8qIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU4NjBFNkYyMzBGNjdERTAw
NDYxQUFFIC8qIFdlYlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBXZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuY3BwOyBwYXRoID0gTmV0d29y
ay9XZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNTg2MEU3MDIzMEY2N0RFMDA0NjFBQUUgLyogV2ViUmVzb3VyY2VJbnRlcmNl
cHRDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlJlc291cmNlSW50ZXJjZXB0Q29udHJv
bGxlci5oOyBwYXRoID0gTmV0d29yay9XZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU4QjZGMDYxOEZDQTczMzAwOENCQTUzIC8q
IFdLRmlsZVVwbG9hZFBhbmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdL
RmlsZVVwbG9hZFBhbmVsLmg7IHBhdGggPSBpb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg3MDcsOCArODcwNCw2IEBACiAJCQkJMUM4
RTJBMUMxMjc3ODMzRjAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvci5tZXNzYWdlcy5pbiAqLywKIAkJ
CQlCQzExMUE1OTExMkY0RkJCMDAzMzdCQUIgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCAqLywK
IAkJCQlCQzAzMkQ2RDEwRjQzNzhEMDA1OEMxNUEgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmggKi8s
Ci0JCQkJQTU1QkE4MzIxQkEzRTZGQTAwN0NEMzNEIC8qIFdlYkluc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5jcHAgKi8sCi0JCQkJQTU1QkE4MzMxQkEzRTZGQTAwN0NEMzNEIC8qIFdlYklu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oICovLAogCQkJCUZFRTQzRkQwMUU2N0FGQzYw
MDc3RDZEMSAvKiBXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyLmNwcCAqLywKIAkJCQlG
RUU0M0ZEMTFFNjdBRkM2MDA3N0Q2RDEgLyogV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hl
ci5oICovLAogCQkJCUZFRTQzRkQyMUU2N0FGQzYwMDc3RDZEMSAvKiBXZWJJbnNwZWN0b3JJbnRl
cnJ1cHREaXNwYXRjaGVyLm1lc3NhZ2VzLmluICovLApAQCAtMTE0OTksNyArMTE0OTQsNiBAQAog
CQkJCUJDQ0Y2QUJEMTJDOTFFRjkwMDhGOUMzNSAvKiBXZWJJbWFnZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUM4RTI4MjAxMjc1RDE1NDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMwMzJEODIxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkluc3BlY3RvckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTU1QkE4MzUxQkEzRTcwQTAwN0NEMzNEIC8qIFdlYklu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVFNDNG
RDMxRTY3QjAxODAwNzdENkQxIC8qIFdlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUZFREJEQ0Q3MUU2OEQyMDUwMEE1OUY4RiAvKiBXZWJJbnNwZWN0
b3JJbnRlcnJ1cHREaXNwYXRjaGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDOEUy
QTM2MTI3Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90
ZVdlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
UmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IDQ3ZDZmYTMzODNjNGVkYmFmMzE0ODBkZDQy
YmVjNTA2Zjg0YzgzYWYuLjdlMGVkNjQyYTAwYTcxNDZmMGI0YTk0NTc3ZDlhZDIwNTA5YTg5ODYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2Vi
SW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
UmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC01Myw3ICs1Myw3IEBAIFJlZjxSZW1vdGVXZWJJ
bnNwZWN0b3JVST4gUmVtb3RlV2ViSW5zcGVjdG9yVUk6OmNyZWF0ZShXZWJQYWdlJiBwYWdlKQog
CiBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6UmVtb3RlV2ViSW5zcGVjdG9yVUkoV2ViUGFnZSYgcGFn
ZSkKICAgICA6IG1fcGFnZShwYWdlKQotICAgICwgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIocGFn
ZSkKKyAgICAsIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyKEluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcjo6Y3JlYXRlKCpwYWdlLmNvcmVQYWdlKCkpKQogewogICAgIFdlYkluc3BlY3RvclVJ
OjplbmFibGVGcm9udGVuZEZlYXR1cmVzKCk7CiB9CkBAIC02NSwzMCArNjUsMjkgQEAgdm9pZCBS
ZW1vdGVXZWJJbnNwZWN0b3JVSTo6aW5pdGlhbGl6ZShEZWJ1Z2dhYmxlSW5mb0RhdGEmJiBkZWJ1
Z2dhYmxlSW5mbywgY29uc3QKIAogICAgIG1fcGFnZS5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250
cm9sbGVyKCkuc2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQodGhpcyk7CiAKLSAgICBtX2Zyb250
ZW5kQVBJRGlzcGF0Y2hlci5yZXNldCgpOwotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRp
c3BhdGNoQ29tbWFuZCgic2V0RG9ja2luZ1VuYXZhaWxhYmxlIl9zLCB0cnVlKTsKKyAgICBtX2Zy
b250ZW5kQVBJRGlzcGF0Y2hlci0+cmVzZXQoKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hl
ci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXREb2NraW5nVW5hdmFpbGFibGUiX3MsIHsgSlNPTjo6VmFs
dWU6OmNyZWF0ZSh0cnVlKSB9KTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6dXBk
YXRlRmluZFN0cmluZyhjb25zdCBTdHJpbmcmIGZpbmRTdHJpbmcpCiB7CiAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwotICAgIEpTT046OlZhbHVlOjplc2NhcGVTdHJpbmcoYnVpbGRlciwgZmlu
ZFN0cmluZyk7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJ1
cGRhdGVGaW5kU3RyaW5nIl9zLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIG1fZnJvbnRlbmRB
UElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInVwZGF0ZUZpbmRTdHJpbmciX3MsIHsgSlNP
Tjo6VmFsdWU6OmNyZWF0ZShidWlsZGVyLnRvU3RyaW5nKCkpIH0pOwogfQogCiB2b2lkIFJlbW90
ZVdlYkluc3BlY3RvclVJOjpkaWRTYXZlKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIG1fZnJv
bnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2F2ZWRVUkwiX3MsIHVybCk7Cisg
ICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2F2ZWRVUkwiX3Ms
IHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh1cmwpIH0pOwogfQogCiB2b2lkIFJlbW90ZVdlYkluc3Bl
Y3RvclVJOjpkaWRBcHBlbmQoY29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgbV9mcm9udGVuZEFQ
SURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJhcHBlbmRlZFRvVVJMIl9zLCB1cmwpOworICAg
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoImFwcGVuZGVkVG9VUkwi
X3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh1cmwpIH0pOwogfQogCiB2b2lkIFJlbW90ZVdlYklu
c3BlY3RvclVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQog
ewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoTWVzc2FnZUFzeW5jKG1lc3Nh
Z2UpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaE1lc3NhZ2VBc3luYyht
ZXNzYWdlKTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c2VuZE1lc3NhZ2VUb0Jh
Y2tlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMTA3LDEzICsxMDYsMjMgQEAgdm9pZCBS
ZW1vdGVXZWJJbnNwZWN0b3JVSTo6d2luZG93T2JqZWN0Q2xlYXJlZCgpCiAKIHZvaWQgUmVtb3Rl
V2ViSW5zcGVjdG9yVUk6OmZyb250ZW5kTG9hZGVkKCkKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlz
cGF0Y2hlci5mcm9udGVuZExvYWRlZCgpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5m
cm9udGVuZExvYWRlZCgpOwogCi0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hD
b21tYW5kKCJzZXRJc1Zpc2libGUiX3MsIHRydWUpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRj
aGVyLT5kaXNwYXRjaENvbW1hbmQoInNldElzVmlzaWJsZSJfcywgeyBKU09OOjpWYWx1ZTo6Y3Jl
YXRlKHRydWUpIH0pOwogCiAgICAgYnJpbmdUb0Zyb250KCk7CiB9CiAKK3ZvaWQgUmVtb3RlV2Vi
SW5zcGVjdG9yVUk6OnBhZ2VQYXVzZWQoKQoreworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVy
LT5zdXNwZW5kKCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnBhZ2VVbnBhdXNl
ZCgpCit7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPnVuc3VzcGVuZCgpOworfQorCiB2
b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpjaGFuZ2VTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0
JiByZWN0KQogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpTZXRTaGVl
dFJlY3QocmVjdCksIG1fcGFnZS5pZGVudGlmaWVyKCkpOwpAQCAtMjQ2LDcgKzI1NSw3IEBAIHZv
aWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKGJv
b2wgYXZhaWxhYmxlKQogICAgIEFTU0VSVCghYXZhaWxhYmxlIHx8IHN1cHBvcnRzRGlhZ25vc3Rp
Y0xvZ2dpbmcoKSk7CiAgICAgbV9kaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZSA9IGF2YWlsYWJs
ZTsKIAotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0RGlh
Z25vc3RpY0xvZ2dpbmdBdmFpbGFibGUiX3MsIG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUp
OworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNldERpYWdu
b3N0aWNMb2dnaW5nQXZhaWxhYmxlIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUobV9kaWFnbm9z
dGljTG9nZ2luZ0F2YWlsYWJsZSkgfSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oCmlu
ZGV4IGI0OTllYzVjNTNmYWM2MjdmNWY0N2VlZmJjNGE5MDM4NmNkYTA2YzYuLjAyNWVjOTBhMWQ0
YWYxYzlmNTUzZGJjNDJmN2M5MzlmZDQzOTg0OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgKQEAgLTI3
LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkRlYnVnZ2FibGVJbmZvRGF0YS5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgotI2luY2x1ZGUgIldlYkluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRj
aGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmg+CiAjaW5jbHVkZSA8d3RmL0Rl
cXVlLmg+CkBAIC02Miw2ICs2MiwxMCBAQCBwdWJsaWM6CiAgICAgLy8gV2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQKICAgICB2b2lkIHdpbmRvd09iamVjdENsZWFyZWQoKSBvdmVycmlk
ZTsKICAgICB2b2lkIGZyb250ZW5kTG9hZGVkKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHBhZ2VQ
YXVzZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHBhZ2VVbnBhdXNlZCgpIG92ZXJyaWRlOworCiAg
ICAgdm9pZCBjaGFuZ2VTaGVldFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzdGFydFdpbmRvd0RyYWcoKSBvdmVycmlkZTsKICAgICB2b2lkIG1vdmVX
aW5kb3dCeShmbG9hdCB4LCBmbG9hdCB5KSBvdmVycmlkZTsKQEAgLTkyLDYgKzk2LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNob3dDZXJ0aWZpY2F0ZShjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUlu
Zm8mKSBvdmVycmlkZTsKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9CYWNrZW5kKGNvbnN0IFN0cmlu
ZyYpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
ciYgZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9mcm9udGVuZEFQ
SURpc3BhdGNoZXI7IH0KIAogI2lmIEVOQUJMRShJTlNQRUNUT1JfVEVMRU1FVFJZKQogICAgIGJv
b2wgc3VwcG9ydHNEaWFnbm9zdGljTG9nZ2luZygpIG92ZXJyaWRlOwpAQCAtMTEwLDcgKzExNSw3
IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVtb3RlV2ViSW5zcGVjdG9yVUkoV2ViUGFnZSYp
OwogCiAgICAgV2ViUGFnZSYgbV9wYWdlOwotICAgIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlciBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsKKyAgICBSZWY8V2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyPiBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsKICAgICBS
ZWZQdHI8V2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0PiBtX2Zyb250ZW5kSG9zdDsKICAg
ICBEZWJ1Z2dhYmxlSW5mb0RhdGEgbV9kZWJ1Z2dhYmxlSW5mbzsKICAgICBTdHJpbmcgbV9iYWNr
ZW5kQ29tbWFuZHNVUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
ci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljMzdiMDAzYzFjYjc3MWQ5YjNm
NzlkZGE2NTUyYTQ5MDdkN2VkZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0
b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTIzICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCIKLQotI2luY2x1ZGUgIldlYlBhZ2UuaCIK
LSNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250
cm9sbGVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRTdGF0ZS5oPgotCi1uYW1lc3BhY2Ug
V2ViS2l0IHsKLQotV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpXZWJJbnNwZWN0
b3JGcm9udGVuZEFQSURpc3BhdGNoZXIoV2ViUGFnZSYgcGFnZSkKLSAgICA6IG1fcGFnZShwYWdl
KQotewotfQotCi12b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6cmVzZXQo
KQotewotICAgIG1fZnJvbnRlbmRMb2FkZWQgPSBmYWxzZTsKLSAgICBtX3N1c3BlbmRlZCA9IGZh
bHNlOwotICAgIG1fcXVldWUuY2xlYXIoKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXI6OmZyb250ZW5kTG9hZGVkKCkKLXsKLSAgICBtX2Zyb250ZW5kTG9hZGVk
ID0gdHJ1ZTsKLQotICAgIGV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKLX0KLQotdm9pZCBX
ZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OnN1c3BlbmQoKQotewotICAgIEFTU0VS
VChtX2Zyb250ZW5kTG9hZGVkKTsKLSAgICBBU1NFUlQoIW1fc3VzcGVuZGVkKTsKLSAgICBBU1NF
UlQobV9xdWV1ZS5pc0VtcHR5KCkpOwotCi0gICAgbV9zdXNwZW5kZWQgPSB0cnVlOwotfQotCi12
b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6dW5zdXNwZW5kKCkKLXsKLSAg
ICBBU1NFUlQobV9zdXNwZW5kZWQpOwotCi0gICAgbV9zdXNwZW5kZWQgPSBmYWxzZTsKLQotICAg
IGV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmQp
Ci17Ci0gICAgZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbihtYWtlU3RyaW5nKCJJbnNwZWN0b3JG
cm9udGVuZEFQSS5kaXNwYXRjaChbXCIiLCBjb21tYW5kLCAiXCJdKSIpKTsKLX0KLQotdm9pZCBX
ZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZChjb25zdCBT
dHJpbmcmIGNvbW1hbmQsIGNvbnN0IFN0cmluZyYgYXJndW1lbnQpCi17Ci0gICAgZXZhbHVhdGVP
clF1ZXVlRXhwcmVzc2lvbihtYWtlU3RyaW5nKCJJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRj
aChbXCIiLCBjb21tYW5kLCAiXCIsIFwiIiwgYXJndW1lbnQsICJcIl0pIikpOwotfQotCi12b2lk
IFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2hDb21tYW5kKGNvbnN0
IFN0cmluZyYgY29tbWFuZCwgYm9vbCBhcmd1bWVudCkKLXsKLSAgICBldmFsdWF0ZU9yUXVldWVF
eHByZXNzaW9uKG1ha2VTdHJpbmcoIkluc3BlY3RvckZyb250ZW5kQVBJLmRpc3BhdGNoKFtcIiIs
IGNvbW1hbmQsICJcIiwgIiwgYXJndW1lbnQgPyAidHJ1ZSIgOiAiZmFsc2UiLCAiXSkiKSk7Ci19
Ci0KLXZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpkaXNwYXRjaE1lc3Nh
Z2VBc3luYyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgZXZhbHVhdGVPclF1ZXVlRXhw
cmVzc2lvbihtYWtlU3RyaW5nKCJJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRjaE1lc3NhZ2VB
c3luYygiLCBtZXNzYWdlLCAiKSIpKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OmV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBleHBy
ZXNzaW9uKQotewotICAgIGlmICghbV9mcm9udGVuZExvYWRlZCB8fCBtX3N1c3BlbmRlZCkgewot
ICAgICAgICBtX3F1ZXVlLmFwcGVuZChleHByZXNzaW9uKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIEFTU0VSVChtX3F1ZXVlLmlzRW1wdHkoKSk7Ci0gICAgQVNTRVJUKCFtX3BhZ2Uu
Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkuc2NyaXB0KCkuaXNQYXVzZWQoKSk7Ci0gICAgbV9wYWdl
LmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnNjcmlwdCgpLmV4ZWN1dGVTY3JpcHRJZ25vcmluZ0V4
Y2VwdGlvbihleHByZXNzaW9uKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXI6OmV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKQotewotICAgIGlmIChtX3F1ZXVl
LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZm9yIChjb25zdCBTdHJpbmcmIGV4
cHJlc3Npb24gOiBtX3F1ZXVlKSB7Ci0gICAgICAgIEFTU0VSVCghbV9wYWdlLmNvcmVQYWdlKCkt
Pm1haW5GcmFtZSgpLnNjcmlwdCgpLmlzUGF1c2VkKCkpOwotICAgICAgICBtX3BhZ2UuY29yZVBh
Z2UoKS0+bWFpbkZyYW1lKCkuc2NyaXB0KCkuZXhlY3V0ZVNjcmlwdElnbm9yaW5nRXhjZXB0aW9u
KGV4cHJlc3Npb24pOwotICAgIH0KLQotICAgIG1fcXVldWUuY2xlYXIoKTsKLX0KLQotdm9pZCBX
ZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmV2YWx1YXRlRXhwcmVzc2lvbkZvclRl
c3RpbmcoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQotewotICAgIGV2YWx1YXRlT3JRdWV1ZUV4
cHJlc3Npb24oZXhwcmVzc2lvbik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGRiNjkwZTRhNDE2MDdhZGYxMDM0Y2I4ZTQ1YTBmYjBmNWQ2NWZkNjkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaAor
KysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQt
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJQYWdlOwotCi1jbGFzcyBX
ZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgewotcHVibGljOgotICAgIFdlYkluc3Bl
Y3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcihXZWJQYWdlJik7Ci0KLSAgICB2b2lkIHJlc2V0KCk7
Ci0gICAgdm9pZCBmcm9udGVuZExvYWRlZCgpOwotCi0gICAgdm9pZCBzdXNwZW5kKCk7Ci0gICAg
dm9pZCB1bnN1c3BlbmQoKTsKLQotICAgIHZvaWQgZGlzcGF0Y2hDb21tYW5kKGNvbnN0IFN0cmlu
ZyYgY29tbWFuZCk7Ci0gICAgdm9pZCBkaXNwYXRjaENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21t
YW5kLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50KTsKLSAgICB2b2lkIGRpc3BhdGNoQ29tbWFuZChj
b25zdCBTdHJpbmcmIGNvbW1hbmQsIGJvb2wgYXJndW1lbnQpOwotICAgIHZvaWQgZGlzcGF0Y2hN
ZXNzYWdlQXN5bmMoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLQotICAgIHZvaWQgZXZhbHVhdGVF
eHByZXNzaW9uRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmKTsKLXByaXZhdGU6Ci0gICAgdm9pZCBl
dmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgZXZhbHVh
dGVRdWV1ZWRFeHByZXNzaW9ucygpOwotCi0gICAgV2ViUGFnZSYgbV9wYWdlOwotICAgIERlcXVl
PFN0cmluZz4gbV9xdWV1ZTsKLSAgICBib29sIG1fZnJvbnRlbmRMb2FkZWQgeyBmYWxzZSB9Owot
ICAgIGJvb2wgbV9zdXNwZW5kZWQgeyBmYWxzZSB9OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yVUkuY3BwCmluZGV4IGQ3OWJmOGJjN2JkYTcwMGRkZWY2MjQwZWRkNDllYjI0ZDM0NzJh
YjQuLmIzNmZiZTMzOGY0N2IyNDRkMTIxODY3YTA0YzI3MTk2MWYxZmY3ZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3Bw
CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmVuYWJsZUZyb250ZW5kRmVh
dHVyZXMoKQogCiBXZWJJbnNwZWN0b3JVSTo6V2ViSW5zcGVjdG9yVUkoV2ViUGFnZSYgcGFnZSkK
ICAgICA6IG1fcGFnZShwYWdlKQotICAgICwgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIocGFnZSkK
KyAgICAsIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyKEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0
Y2hlcjo6Y3JlYXRlKCpwYWdlLmNvcmVQYWdlKCkpKQogICAgICwgbV9kZWJ1Z2dhYmxlSW5mbyhE
ZWJ1Z2dhYmxlSW5mb0RhdGE6OmVtcHR5KCkpCiB7CiAgICAgV2ViSW5zcGVjdG9yVUk6OmVuYWJs
ZUZyb250ZW5kRmVhdHVyZXMoKTsKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JV
STo6ZXN0YWJsaXNoQ29ubmVjdGlvbihXZWJQYWdlUHJveHlJZGVudGlmaWVyIGluc3BlY3RlZFBh
Z2VJZGUKICAgICBtX3VuZGVyVGVzdCA9IHVuZGVyVGVzdDsKICAgICBtX2luc3BlY3Rpb25MZXZl
bCA9IGluc3BlY3Rpb25MZXZlbDsKIAotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLnJlc2V0
KCk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPnJlc2V0KCk7CiAKICAgICBtX2Zyb250
ZW5kQ29udHJvbGxlciA9ICZtX3BhZ2UuY29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
OwogICAgIG1fZnJvbnRlbmRDb250cm9sbGVyLT5zZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudCh0
aGlzKTsKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIFdlYkluc3BlY3RvclVJOjp3aW5kb3dPYmpl
Y3RDbGVhcmVkKCkKIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6ZnJvbnRlbmRMb2FkZWQoKQogewot
ICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmZyb250ZW5kTG9hZGVkKCk7CisgICAgbV9mcm9u
dGVuZEFQSURpc3BhdGNoZXItPmZyb250ZW5kTG9hZGVkKCk7CiAKICAgICAvLyBUZWxsIHRoZSBu
ZXcgZnJvbnRlbmQgYWJvdXQgdGhlIGN1cnJlbnQgZG9jayBzdGF0ZS4gSWYgdGhlIHdpbmRvdyBv
YmplY3QKICAgICAvLyBjbGVhcmVkIGR1ZSB0byBhIHJlbG9hZCwgdGhlIGRvY2sgc3RhdGUgd29u
J3QgYmUgcmVzZW50IGZyb20gVUlQcm9jZXNzLgpAQCAtMjQ0LDI4ICsyNDQsMjcgQEAgdm9pZCBX
ZWJJbnNwZWN0b3JVSTo6c2V0RG9ja1NpZGUoRG9ja1NpZGUgZG9ja1NpZGUpCiAKICAgICBtX2Rv
Y2tTaWRlID0gZG9ja1NpZGU7CiAKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRj
aENvbW1hbmQoInNldERvY2tTaWRlIl9zLCBTdHJpbmcoZG9ja1NpZGVTdHJpbmcpKTsKKyAgICBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXREb2NrU2lkZSJfcywg
eyBKU09OOjpWYWx1ZTo6Y3JlYXRlKFN0cmluZyhkb2NrU2lkZVN0cmluZykpIH0pOwogfQogCiB2
b2lkIFdlYkluc3BlY3RvclVJOjpzZXREb2NraW5nVW5hdmFpbGFibGUoYm9vbCB1bmF2YWlsYWJs
ZSkKIHsKICAgICBtX2RvY2tpbmdVbmF2YWlsYWJsZSA9IHVuYXZhaWxhYmxlOwogCi0gICAgbV9m
cm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXREb2NraW5nVW5hdmFpbGFi
bGUiX3MsIHVuYXZhaWxhYmxlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0
Y2hDb21tYW5kKCJzZXREb2NraW5nVW5hdmFpbGFibGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0
ZSh1bmF2YWlsYWJsZSkgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNldElzVmlzaWJs
ZShib29sIHZpc2libGUpCiB7CiAgICAgbV9pc1Zpc2libGUgPSB2aXNpYmxlOwogCi0gICAgbV9m
cm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXRJc1Zpc2libGUiX3MsIHZp
c2libGUpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNl
dElzVmlzaWJsZSJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHZpc2libGUpIH0pOwogfQogCiB2
b2lkIFdlYkluc3BlY3RvclVJOjp1cGRhdGVGaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgZmluZFN0
cmluZykKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgSlNPTjo6VmFsdWU6OmVz
Y2FwZVN0cmluZyhidWlsZGVyLCBmaW5kU3RyaW5nKTsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0
Y2hlci5kaXNwYXRjaENvbW1hbmQoInVwZGF0ZUZpbmRTdHJpbmciX3MsIGJ1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgidXBk
YXRlRmluZFN0cmluZyJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKGJ1aWxkZXIudG9TdHJpbmco
KSkgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmNoYW5nZUF0dGFjaGVkV2luZG93SGVp
Z2h0KHVuc2lnbmVkIGhlaWdodCkKQEAgLTMyNSw3MyArMzI0LDczIEBAIHZvaWQgV2ViSW5zcGVj
dG9yVUk6OnNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKGJvb2wgYXZhaWxhYmxlKQogICAg
IEFTU0VSVCghYXZhaWxhYmxlIHx8IHN1cHBvcnRzRGlhZ25vc3RpY0xvZ2dpbmcoKSk7CiAgICAg
bV9kaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZSA9IGF2YWlsYWJsZTsKIAotICAgIG1fZnJvbnRl
bmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0RGlhZ25vc3RpY0xvZ2dpbmdBdmFp
bGFibGUiX3MsIG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUpOworICAgIG1fZnJvbnRlbmRB
UElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxh
YmxlIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUobV9kaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJs
ZSkgfSk7CiB9CiAjZW5kaWYKIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6c2hvd0NvbnNvbGUoKQog
ewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2hvd0NvbnNv
bGUiX3MpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNo
b3dDb25zb2xlIl9zKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6c2hvd1Jlc291cmNlcygp
CiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzaG93UmVz
b3VyY2VzIl9zKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5k
KCJzaG93UmVzb3VyY2VzIl9zKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6c2hvd01haW5S
ZXNvdXJjZUZvckZyYW1lKGNvbnN0IFN0cmluZyYgZnJhbWVJZGVudGlmaWVyKQogewotICAgIG1f
ZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2hvd01haW5SZXNvdXJjZUZv
ckZyYW1lIl9zLCBmcmFtZUlkZW50aWZpZXIpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVy
LT5kaXNwYXRjaENvbW1hbmQoInNob3dNYWluUmVzb3VyY2VGb3JGcmFtZSJfcywgeyBKU09OOjpW
YWx1ZTo6Y3JlYXRlKGZyYW1lSWRlbnRpZmllcikgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9y
VUk6OnN0YXJ0UGFnZVByb2ZpbGluZygpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIu
ZGlzcGF0Y2hDb21tYW5kKCJzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQiX3MsIHRydWUpOwor
ICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNldFRpbWVsaW5l
UHJvZmlsaW5nRW5hYmxlZCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHRydWUpIH0pOwogfQog
CiB2b2lkIFdlYkluc3BlY3RvclVJOjpzdG9wUGFnZVByb2ZpbGluZygpCiB7Ci0gICAgbV9mcm9u
dGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXRUaW1lbGluZVByb2ZpbGluZ0Vu
YWJsZWQiX3MsIGZhbHNlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hD
b21tYW5kKCJzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQiX3MsIHsgSlNPTjo6VmFsdWU6OmNy
ZWF0ZShmYWxzZSkgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnN0YXJ0RWxlbWVudFNl
bGVjdGlvbigpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5k
KCJzZXRFbGVtZW50U2VsZWN0aW9uRW5hYmxlZCJfcywgdHJ1ZSk7CisgICAgbV9mcm9udGVuZEFQ
SURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0RWxlbWVudFNlbGVjdGlvbkVuYWJsZWQi
X3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh0cnVlKSB9KTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0
b3JVSTo6c3RvcEVsZW1lbnRTZWxlY3Rpb24oKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRj
aGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0RWxlbWVudFNlbGVjdGlvbkVuYWJsZWQiX3MsIGZhbHNl
KTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXRFbGVt
ZW50U2VsZWN0aW9uRW5hYmxlZCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKGZhbHNlKSB9KTsK
IH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6ZGlkU2F2ZShjb25zdCBTdHJpbmcmIHVybCkKIHsK
LSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNhdmVkVVJMIl9z
LCB1cmwpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNh
dmVkVVJMIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUodXJsKSB9KTsKIH0KIAogdm9pZCBXZWJJ
bnNwZWN0b3JVSTo6ZGlkQXBwZW5kKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIG1fZnJvbnRl
bmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgiYXBwZW5kZWRUb1VSTCJfcywgdXJsKTsK
KyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJhcHBlbmRlZFRv
VVJMIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUodXJsKSB9KTsKIH0KIAogdm9pZCBXZWJJbnNw
ZWN0b3JVSTo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsK
LSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaE1lc3NhZ2VBc3luYyhtZXNzYWdl
KTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hNZXNzYWdlQXN5bmMobWVz
c2FnZSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmV2YWx1YXRlSW5Gcm9udGVuZEZvclRl
c3RpbmcoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNw
YXRjaGVyLmV2YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoZXhwcmVzc2lvbik7CisgICAgbV9m
cm9udGVuZEFQSURpc3BhdGNoZXItPmV2YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoZXhwcmVz
c2lvbik7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnBhZ2VQYXVzZWQoKQogewotICAgIG1f
ZnJvbnRlbmRBUElEaXNwYXRjaGVyLnN1c3BlbmQoKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0
Y2hlci0+c3VzcGVuZCgpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpwYWdlVW5wYXVzZWQo
KQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLnVuc3VzcGVuZCgpOworICAgIG1fZnJv
bnRlbmRBUElEaXNwYXRjaGVyLT51bnN1c3BlbmQoKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JV
STo6c2VuZE1lc3NhZ2VUb0JhY2tlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oCmluZGV4
IDAyNmE3MTJhMDg5OWQwNDU1ZjMxODVhYjc5NzZjMTQwMDVkOGViYWIuLmE2ZWU3MTMzOTM5ZWYy
YTA0YjZiODYyYjI4ZTgyMTdmZTIwZGIxZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKQEAgLTI3LDkgKzI3LDkgQEAKIAog
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJEZWJ1Z2dhYmxlSW5mb0RhdGEuaCIK
LSNpbmNsdWRlICJXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCIKICNpbmNsdWRl
ICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JE
ZWJ1Z2dhYmxlVHlwZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmg+CiAKQEAgLTE0Miw2
ICsxNDIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb0JhY2tl
bmQoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyJiBmcm9udGVuZEFQSURpc3BhdGNoZXIoKSBmaW5hbCB7IHJldHVybiBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsgfQogCiAgICAgdm9pZCBwYWdlUGF1c2VkKCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBwYWdlVW5wYXVzZWQoKSBvdmVycmlkZTsKQEAgLTE1Miw3ICsxNTMsNyBA
QCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYkluc3BlY3RvclVJKFdlYlBhZ2UmKTsKIAogICAg
IFdlYlBhZ2UmIG1fcGFnZTsKLSAgICBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIg
bV9mcm9udGVuZEFQSURpc3BhdGNoZXI7CisgICAgUmVmPFdlYkNvcmU6Okluc3BlY3RvckZyb250
ZW5kQVBJRGlzcGF0Y2hlcj4gbV9mcm9udGVuZEFQSURpc3BhdGNoZXI7CiAgICAgUmVmUHRyPFdl
YkNvcmU6Okluc3BlY3RvckZyb250ZW5kSG9zdD4gbV9mcm9udGVuZEhvc3Q7CiAKICAgICAvLyBL
ZWVwIGEgcG9pbnRlciB0byB0aGUgZnJvbnRlbmQncyBpbnNwZWN0b3IgY29udHJvbGxlciByYXRo
ZXIgdGhhbiBnb2luZyB0aHJvdWdoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2Nm
L1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCmluZGV4IDdi
ODY5ODFhM2Y0OGU1MGY4YjNjY2FjMzcwNjkxN2Q0YWYxZmRiZDYuLjE2ZGMxNDRkY2M5OGUyNTZj
MDUzMjY3ZjUyZDFkM2U0ZTQ4OTU4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
Y2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCkBA
IC05Niw3ICs5Niw3IEBAIHN0YXRpYyB2b2lkIGRlbGV0ZVNldHRpbmcoY29uc3QgU3RyaW5nJiBr
ZXkpCiAKIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQogewotICAgIG1fZnJvbnRlbmRDbGllbnQtPmRpc3BhdGNoTWVz
c2FnZUFzeW5jKG1lc3NhZ2UpOworICAgIG1fZnJvbnRlbmRDbGllbnQtPmZyb250ZW5kQVBJRGlz
cGF0Y2hlcigpLmRpc3BhdGNoTWVzc2FnZUFzeW5jKG1lc3NhZ2UpOwogfQogCiBib29sIFdlYklu
c3BlY3RvckNsaWVudDo6aW5zcGVjdG9yQXR0YWNoRGlzYWJsZWQoKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVz
dC5qcwppbmRleCA4MzFhNjFmNjc4NWU0NDg4YjEyZDdkZmRlZjFmZTY2ZDM3NTUxMjIyLi5mMjBl
ZDliMmUzZmIzNDZjY2RmOGVmZmI1MDhhYzgzMjI5Y2Y5ODhjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcworKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVz
dC5qcwpAQCAtNjUsMTEgKzY1LDEyIEBAIFRlc3RQYWdlLmxvZyA9IHdpbmRvdy5sb2cgPSBmdW5j
dGlvbih0ZXh0KQogCiBUZXN0UGFnZS5jbG9zZVRlc3QgPSB3aW5kb3cuY2xvc2VUZXN0ID0gZnVu
Y3Rpb24oKQogewotICAgIHdpbmRvdy5pbnRlcm5hbHMuY2xvc2VEdW1teUluc3BlY3RvckZyb250
ZW5kKCk7Ci0KICAgICAvLyBUaGlzIGNvZGUgbWlnaHQgYmUgZXhlY3V0ZWQgd2hpbGUgdGhlIGRl
YnVnZ2VyIGlzIHN0aWxsIHJ1bm5pbmcgdGhyb3VnaCBhIHN0YWNrIGJhc2VkIEV2ZW50TG9vcC4K
ICAgICAvLyBVc2UgYSBzZXRUaW1lb3V0IHRvIGRlZmVyIHRvIGEgY2xlYW4gc3RhY2sgYmVmb3Jl
IGxldHRpbmcgdGhlIHRlc3RSdW5uZXIgbG9hZCB0aGUgbmV4dCB0ZXN0LgotICAgIHNldFRpbWVv
dXQoKCkgPT4geyB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsgfSwgMCk7CisgICAgc2V0VGltZW91
dCgoKSA9PiB7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuY2xvc2VEdW1teUluc3BlY3RvckZy
b250ZW5kKCk7CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0sIDApOwog
fTsKIAogVGVzdFBhZ2UucnVuVGVzdCA9IHdpbmRvdy5ydW5UZXN0ID0gZnVuY3Rpb24oKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13
aXRoLWV4Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
cG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlvbi5odG1sCmluZGV4IDczNDhjMzU2MzVhYmI3YzUyZjAx
MGNlODFhNGExZDhjMDdlOGFhMzcuLmE3MDY1MjZlOTMyNGVlMjM2MjVkZWMyZTA4OThhY2UwZjZm
YWJiODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3Bv
aW50LWV2YWwtd2l0aC1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWtwb2ludC1ldmFsLXdpdGgtZXhjZXB0aW9uLmh0bWwKQEAgLTUsNiArNSw4
IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gdGVzdCgpCiB7CisgICAgUHJvdG9jb2xUZXN0LmRlYnVn
KCk7CisKICAgICBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlw
dFBhcnNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CiAgICAgICAgIGlmICgv
cmVzb3VyY2VzXC9icmVha3BvaW50XC5qcyQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJs
KSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412692</attachid>
            <date>2020-10-29 15:27:00 -0700</date>
            <delta_ts>2020-10-29 23:12:28 -0700</delta_ts>
            <desc>Patch v2.2 - fix some protocol test bugs</desc>
            <filename>bug-217835-20201029152659.patch</filename>
            <type>text/plain</type>
            <size>73809</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDZmZTI5M2Y2ZjZhYjhl
Mzc3ODU3ZmFkYmEzYzg1NDRkY2UyMzQwYy4uZjI4M2RiMzA2OTMxNmFiOTYzNjZkZWI3YTRlMzFj
ODE5OTYxZThkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIwLTEwLTE2ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUg
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIHRvIFdlYkNvcmUsIGNsZWFuIHVwIHVzZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgzNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzODQ0MDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGV2aW4gUm91c3NvLgorCisgICAgICAgIEV4cG9zZSB0aGUgZGlzcGF0Y2hlciBhcyBwYXJ0IG9m
IHRoZSBJbnNwZWN0b3JGcm9udGVuZENsaWVudCBBUEkgc28gdGhhdCBvdGhlciBjb2RlCisgICAg
ICAgIGNhbiB1c2UgdGhlIGRpc3BhdGNoZXIgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0J3MgYSBX
ZWJJbnNwZWN0b3JVSSBvciBSZW1vdGVXZWJJbnNwZWN0b3JVSS4KKworICAgICAgICBBZGQgYW4g
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIGluc3RhbmNlIGFuZCBnZXR0ZXIgdG8gSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC4KKworICAgICAgICBBZG9wdCB0aGUgSlNPTlZhbHVl
LWJhc2VkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2goKSBtZXRob2QK
KyAgICAgICAgaW4gSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC4gUmVtb3ZlIHRoZSByZWR1
bmRhbnQgcGFyYWxsZWwgcXVldWluZyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgUmVtb3ZlIHJl
ZHVuZGFudCBwdWJsaWMgbWV0aG9kcyB0aGF0IGFyZSBhdmFpbGFibGUgb24gSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBNb3ZlZCBmaWxlcy4K
KworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpyZXNl
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmZy
b250ZW5kTG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcjo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OnVuc3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoTWVzc2FnZUFzeW5jKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVP
clF1ZXVlRXhwcmVzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OmV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZUV4cHJlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0
ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKToKKyAgICAgICAgQWRkIG5ldyBkaXNwYXRjaCgpIG1ldGhv
ZC4gUmVtb3ZlIG90aGVyIGRpc3BhdGNoIG1ldGhvZHMgdGhhdCBjYW4gYmUgZXhwcmVzc2VkCisg
ICAgICAgIHVzaW5nIHRoZSBuZXcgSlNPTjo6VmFsdWUtYmFzZWQgbWV0aG9kLiBJZiBpdCdzIG5v
dCBwb3NzaWJsZSB0byBldmFsdWF0ZSBKUworICAgICAgICBpbW1lZGlhdGVseSwgc2NoZWR1bGUg
YSBvbmUtc2hvdCB0YXNrIHRvIHRyeSBhZ2FpbiBvbiBhIGRpZmZlcmVudCBldmVudCBsb29wIHR1
cm4uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oLgorICAgICAgICBBZGQgbmV3IGRpc3BhdGNo
KCkgbWV0aG9kIHdoaWNoIHRha2VzIGEgdmVjdG9yIG9mIEpTT046OlZhbHVlIG9iamVjdHMgYW5k
CisgICAgICAgIHNlcmlhbGl6ZXMgdGhlbSBpbnRvIGNvbW1hbmQgYXJndW1lbnRzIGZvciB0aGUg
ZnJvbnRlbmQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Okluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbDo6ZnJvbnRlbmRMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6cGFnZVBhdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpwYWdlVW5wYXVzZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RG9ja2luZ1VuYXZhaWxhYmxlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldEF0dGFj
aGVkV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9j
YWw6OnNldERlYnVnZ2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDo6c2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnN0YXJ0UHJvZmlsaW5nSmF2
YVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
OjpzdG9wUHJvZmlsaW5nSmF2YVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsOjpzaG93Q29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzaG93UmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNob3dNYWluUmVzb3VyY2VGb3JGcmFt
ZSk6CisgICAgICAgIFVzZSBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgdG8gZGlzcGF0
Y2ggY29tbWFuZHMgdG8gdGhlIGZyb250ZW5kLgorCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaE1lc3NhZ2UpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZGlz
cGF0Y2hNZXNzYWdlQXN5bmMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6ZXZhbHVhdGVPbkxvYWQpOiBEZWxldGVkLgorICAgICAgICBU
aGVzZSBhcmUgcmVkdW5kYW50IHdpdGggSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLgor
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yU3R1YkZyb250ZW5kOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOiBVc2UgZnJvbnRlbmQg
ZGlzcGF0Y2hlciBkaXJlY3RseS4KKwogMjAyMC0xMC0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQcm9jZXNzXSBVc2UgYXN5bmMgSVBDIGZvciBSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcidzIFN0YXJ0QXVkaW9EZXN0aW5hdGlvbiAvIFN0b3BB
dWRpb0Rlc3RpbmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJjOGMxMzQ2OGQwNmZkMTIyM2FhZTg1Mjk3YTZi
MmY4NzkxNzgzYjAuLjkwODhiZjFlYjM4ODZjMjQ3MjhmZjRkNjFlZDhhODNlZDIyYjM1Y2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMjAtMTAtMjEgIEJyaWFuIEJ1cmcgIDxiYnVyZ0Bh
cHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXIgdG8gV2ViQ29yZSwgY2xlYW4gdXAgdXNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3ODM1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MDM4NDQwNz4KKworICAgICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28uCisK
KyAgICAgICAgQWRvcHQgdGhlIEpTT05WYWx1ZS1iYXNlZCBJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXI6OmRpc3BhdGNoKCkgbWV0aG9kCisgICAgICAgIGluIFdlYkluc3BlY3RvclVJIGFu
ZCBSZW1vdGVJbnNwZWN0b3JVSSBtZXRob2RzIHRoYXQgZGlzcGF0Y2ggdG8gdGhlIGZyb250ZW5k
LgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6IE1vdmUgZmlsZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3Bl
Y3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVj
dG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2Vi
SW5zcGVjdG9yVUk6OlJlbW90ZVdlYkluc3BlY3RvclVJKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlV2ViSW5zcGVjdG9yVUk6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVX
ZWJJbnNwZWN0b3JVSTo6dXBkYXRlRmluZFN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVdlYkluc3BlY3RvclVJOjpkaWRTYXZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5z
cGVjdG9yVUk6OmRpZEFwcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3Rv
clVJOjpmcm9udGVuZExvYWRlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3Rv
clVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJ
bnNwZWN0b3JVSTo6cGFnZVBhdXNlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3Bl
Y3RvclVJOjpwYWdlVW5wYXVzZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0
b3JVSTo6c2V0RGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUpOgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clVJOjpXZWJJbnNwZWN0b3JVSSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpz
ZXREb2NrU2lkZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzZXREb2NraW5n
VW5hdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2V0SXNWaXNp
YmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnVwZGF0ZUZpbmRTdHJpbmcp
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2V0RGlhZ25vc3RpY0xvZ2dpbmdB
dmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2hvd0NvbnNvbGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2hvd1Jlc291cmNlcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzaG93TWFpblJlc291cmNlRm9yRnJhbWUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c3RhcnRQYWdlUHJvZmlsaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnN0b3BQYWdlUHJvZmlsaW5nKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnN0YXJ0RWxlbWVudFNlbGVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzdG9wRWxlbWVudFNlbGVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpkaWRTYXZlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yVUk6OmRpZEFwcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0
b3JVSTo6ZXZhbHVhdGVJbkZyb250ZW5kRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3RvclVJOjpwYWdlUGF1c2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9y
VUk6OnBhZ2VVbnBhdXNlZCk6CisKIDIwMjAtMTAtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBbR1BVUHJvY2Vzc10gVXNlIGFzeW5jIElQQyBmb3IgUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIncyBTdGFydEF1ZGlvRGVzdGluYXRpb24gLyBTdG9wQXVk
aW9EZXN0aW5hdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9jZi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2NmL0NoYW5nZUxvZwppbmRleCAwNmU3OTYwZWZmNmVj
MDY2MTRhZWRlZGRhM2RlMGJhNzcxMjRhMTMwLi5lZTc0ZTE2NDg2NjEzZDU1M2ZhOGJhODAwOTQy
NDkzMmFjOWI4MWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2NmL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2NmL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIwLTEwLTE2ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IG1vdmUgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIHRvIFdlYkNv
cmUsIGNsZWFuIHVwIHVzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNzgzNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzODQ0MDc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwOgorICAgICAgICAoV2ViSW5zcGVjdG9yQ2xpZW50
OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorCiAyMDE5LTA4LTE4ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dURl0gQWRkIG1ha2VVbmlxdWU8VD4sIHdo
aWNoIGVuc3VyZXMgVCBpcyBmYXN0LWFsbG9jYXRlZCwgbWFrZVVuaXF1ZSAvIG1ha2VVbmlxdWVX
aXRob3V0RmFzdE1hbGxvY0NoZWNrIHBhcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDY4ODRkMGY4
NmQyOWRjMTQ5MTY2MTE3YmE1Yzk2NGQxMGIzM2JkZGYuLmU3MTA1OGVhODcwMWZhNTY3ZjBmYzk3
YTJmMDUxYmMyYWJjMTA1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNjk2LDYgKzY5Niw3IEBA
IHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBpbnNwZWN0b3IvSW5z
cGVjdG9yQ2xpZW50LmgKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCiAgICAg
aW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2FibGVUeXBlLmgKKyAgICBpbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQuaAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgK
ICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
MmZmMjU1YjVlZjEzNTFhZTYzZjZjZTk1ZDNmYTZlMDE3NDJhZWE4Yi4uMzAxODY3NzEzN2QwNTRl
OGI4ZDQ4ODkxOWQ3ZTNkYjY1YWIyYTk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE0MDIsNiArMTQw
Miw3IEBAIGluc3BlY3Rvci9JbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5jcHAKIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDYW52YXMuY3BwCiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKIGluc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmNwcAoraW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAKIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsLmNwcAogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAK
IGluc3BlY3Rvci9JbnNwZWN0b3JIaXN0b3J5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY5NDAzOGIwODBlZjYxOTQzODQ1
ODIwYmRjYzQ5ZGE5ZTZkMjkxMTEuLjE5ZDYzYzQxNGI2MDJlMjgzY2UwMDRlNGMyZTI4MjRhN2E2
MmU5MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTI5NzksNiArMjk3OSw3IEBACiAJCTk4Q0U0MzJBMTI5RTAwRTUwMDU4MjFE
QyAvKiBMaW5rTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5OENFNDMyOTEyOUUwMEU1MDA1ODIxREMgLyogTGlua0xvYWRlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk4RUIxRjk1MTMxM0ZF
MDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOThFQjFGOTQxMzEzRkUwNTAwRDBFMUVBIC8qIE5vdEltcGxl
bWVudGVkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTkyMDM5ODMxOEI5NUJDNjAwQjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkyMDM5ODExOEI5NUJDNjAw
QjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTk5NEM2MDNBMjUzQTI3NzMwMEJERjA2MCAvKiBJbnNwZWN0
b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk5NEM2MDM3MjUzQTI3NzIwMEJERjA2MCAvKiBJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5OTZFNTlERjFERjAxMjhEMDA2NjEyQjkgLyogTmF2aWdhdG9yV2ViRHJp
dmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZF
NTlEQzFERjAwRDkwMDA2NjEyQjkgLyogTmF2aWdhdG9yV2ViRHJpdmVyLmggKi87IH07CiAJCTk5
RDFCMkQzMjNBQzE0MzEwMDgxMUNGMCAvKiBJbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlEMUIyRDEyM0FDMTQz
MDAwODExQ0YwIC8qIEluc3BlY3RvckRlYnVnZ2FibGVUeXBlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUE1MjhFODQxN0Q3RjUyRjAwQUE5NTE4
IC8qIEZsb2F0aW5nT2JqZWN0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUE1MjhFODIxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTc2
MCw2ICsxMTc2MSw4IEBACiAJCTk5MDhCMEZGMUJDQUQwN0QwMEVEMzU3MiAvKiBSZWFkYWJsZVN0
cmVhbUJZT0JSZWFkZXJCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBSZWFkYWJsZVN0cmVhbUJZT0JSZWFkZXJCdWlsdGlucy5oOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9SZWFkYWJsZVN0cmVhbUJZT0JSZWFkZXJCdWlsdGlucy5oOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk5OTIwMzk4MDE4Qjk1QkM2MDBCMzlBRjkgLyog
VXNlcklucHV0QnJpZGdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFVzZXJJbnB1dEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MjAz
OTgxMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVXNlcklucHV0QnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk5NEM2MDM3MjUzQTI3NzIwMEJERjA2MCAvKiBJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9y
RnJvbnRlbmRBUElEaXNwYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5
NEM2MDM5MjUzQTI3NzMwMEJERjA2MCAvKiBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk2RTU5
REIxREYwMEQ5MDAwNjYxMkI5IC8qIE5hdmlnYXRvcldlYkRyaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXZpZ2F0b3JXZWJEcml2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5OTZFNTlEQzFERjAwRDkwMDA2NjEyQjkgLyogTmF2aWdh
dG9yV2ViRHJpdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRv
cldlYkRyaXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTZFNTlERDFERjAw
RDkwMDA2NjEyQjkgLyogTmF2aWdhdG9yK1dlYkRyaXZlci5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gIk5hdmlnYXRvcitXZWJEcml2ZXIuaWRsIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE4NDA4LDYgKzE4NDExLDggQEAKIAkJCQk0MUYwNjIxMzBGNUYxOTI2MDBBMDdFQUMg
LyogSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAgKi8sCiAJCQkJNDFGMDYyMTIwRjVGMTky
NjAwQTA3RUFDIC8qIEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuaCAqLywKIAkJCQk5OUQxQjJE
MTIzQUMxNDMwMDA4MTFDRjAgLyogSW5zcGVjdG9yRGVidWdnYWJsZVR5cGUuaCAqLywKKwkJCQk5
OTRDNjAzOTI1M0EyNzczMDBCREYwNjAgLyogSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
LmNwcCAqLywKKwkJCQk5OTRDNjAzNzI1M0EyNzcyMDBCREYwNjAgLyogSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyLmggKi8sCiAJCQkJRjM0NEM3MTIxMTI1QjgyQzAwRjI2RUVFIC8qIElu
c3BlY3RvckZyb250ZW5kQ2xpZW50LmggKi8sCiAJCQkJRjM0NEM3NTcxMTI5NEZGNjAwRjI2RUVF
IC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwICovLAogCQkJCUYzNDRDNzUyMTEy
OTREOUQwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggKi8sCkBAIC0z
MjE2MCw2ICszMjE2NSw3IEBACiAJCQkJQTVCODFDQUIxRkFBNDQ2MjAwMzdEMUU2IC8qIEluc3Bl
Y3RvckRPTUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNBQzFGQUE0NDYyMDAzN0Qx
RTYgLyogSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVC
ODFDQUQxRkFBNDQ2MjAwMzdEMUU2IC8qIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTk0QzYwM0EyNTNBMjc3MzAwQkRGMDYwIC8qIEluc3BlY3RvckZyb250
ZW5kQVBJRGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjM0NEM3MTQxMTI1QjgyQzAw
RjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlG
MzQ0Qzc1MzExMjk0RDlEMDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0EwRTc3MEYxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3Rv
ckZyb250ZW5kSG9zdC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjljZDMzNDE4MTcxNzA3YWIxY2JlYjlmYTEyYjdmYzMwNDA2YmVhYWIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyLmNwcApAQCAtMCwwICsxLDIxOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5o
IgorCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU2Ny
aXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdERpc2FsbG93ZWRTY29wZS5oIgorI2lu
Y2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKyNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ZyYW1lVHJhY2Vycy5oPgorCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKwordXNpbmcgRXZhbHVhdGlvbkVycm9yID0gSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNw
YXRjaGVyOjpFdmFsdWF0aW9uRXJyb3I7Cit1c2luZyBFdmFsdWF0aW9uUmVzdWx0SGFuZGxlciA9
IENvbXBsZXRpb25IYW5kbGVyPEV4cGVjdGVkPEpTQzo6SlNWYWx1ZSwgRXZhbHVhdGlvbkVycm9y
Pj47CisKK0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6SW5zcGVjdG9yRnJvbnRlbmRB
UElEaXNwYXRjaGVyKFBhZ2UmIGZyb250ZW5kUGFnZSkKKyAgICA6IG1fZnJvbnRlbmRQYWdlKG1h
a2VXZWFrUHRyKGZyb250ZW5kUGFnZSkpCit7Cit9CisKK0luc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcjo6fkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcigpCit7CisgICAgaW52YWxp
ZGF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyOjpyZXNldCgpCit7CisgICAgbV9mcm9udGVuZExvYWRlZCA9IGZhbHNlOworICAg
IG1fc3VzcGVuZGVkID0gZmFsc2U7CisKKyAgICBpbnZhbGlkYXRlUXVldWVkRXhwcmVzc2lvbnMo
KTsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmZyb250ZW5kTG9h
ZGVkKCkKK3sKKyAgICBBU1NFUlQobV9mcm9udGVuZFBhZ2UpOworICAgIG1fZnJvbnRlbmRMb2Fk
ZWQgPSB0cnVlOworCisgICAgZXZhbHVhdGVRdWV1ZWRFeHByZXNzaW9ucygpOworfQorCit2b2lk
IEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6c3VzcGVuZChVbnN1c3BlbmRTb29uIHVu
c3VzcGVuZFNvb24pCit7CisgICAgQVNTRVJUKG1fZnJvbnRlbmRMb2FkZWQpOworCisgICAgaWYg
KG1fc3VzcGVuZGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3N1c3BlbmRlZCA9IHRydWU7
CisKKyAgICBpZiAodW5zdXNwZW5kU29vbiA9PSBVbnN1c3BlbmRTb29uOjpZZXMpIHsKKyAgICAg
ICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyldIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSBmcm9udGVuZCBwYWdlIGhhcyBiZWVuIGRlYWxs
b2NhdGVkLCB0aGVyZSdzIG5vdGhpbmcgdG8gZG8uCisgICAgICAgICAgICBpZiAoIXByb3RlY3Rl
ZFRoaXMtPm1fZnJvbnRlbmRQYWdlKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5pc1N1c3BlbmRlZCgpKQorICAgICAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+dW5zdXNwZW5kKCk7CisgICAg
ICAgIH0pOworICAgIH0KK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6
OnVuc3VzcGVuZCgpCit7CisgICAgaWYgKCFtX3N1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9zdXNwZW5kZWQgPSBmYWxzZTsKKworICAgIGV2YWx1YXRlUXVldWVkRXhwcmVzc2lv
bnMoKTsKK30KKworSlNHbG9iYWxPYmplY3QqIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
cjo6ZnJvbnRlbmRHbG9iYWxPYmplY3QoKQoreworICAgIGlmICghbV9mcm9udGVuZFBhZ2UpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIAorICAgIHJldHVybiBtX2Zyb250ZW5kUGFnZS0+
bWFpbkZyYW1lKCkuc2NyaXB0KCkuZ2xvYmFsT2JqZWN0KG1haW5UaHJlYWROb3JtYWxXb3JsZCgp
KTsKK30KKworc3RhdGljIFN0cmluZyBleHByZXNzaW9uRm9yRXZhbHVhdGluZ0NvbW1hbmQoY29u
c3QgU3RyaW5nJiBjb21tYW5kLCBWZWN0b3I8UmVmPEpTT046OlZhbHVlPj4mJiBhcmd1bWVudHMp
Cit7CisgICAgU3RyaW5nQnVpbGRlciBleHByZXNzaW9uOworICAgIGV4cHJlc3Npb24uYXBwZW5k
TGl0ZXJhbCgiSW5zcGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0Y2goW1wiIik7CisgICAgZXhwcmVz
c2lvbi5hcHBlbmQoY29tbWFuZCk7CisgICAgZXhwcmVzc2lvbi5hcHBlbmQoJyInKTsKKworICAg
IGZvciAoYXV0byYgYXJndW1lbnQgOiBhcmd1bWVudHMpIHsKKyAgICAgICAgZXhwcmVzc2lvbi5h
cHBlbmRMaXRlcmFsKCIsICIpOworICAgICAgICBhcmd1bWVudC0+d3JpdGVKU09OKGV4cHJlc3Np
b24pOworICAgIH0KKworICAgIGV4cHJlc3Npb24uYXBwZW5kKCddJyk7CisgICAgZXhwcmVzc2lv
bi5hcHBlbmQoJyknKTsKKyAgICByZXR1cm4gZXhwcmVzc2lvbi50b1N0cmluZygpOworfQorCit2
b2lkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2hDb21tYW5kKGNvbnN0
IFN0cmluZyYgY29tbWFuZCwgVmVjdG9yPFJlZjxKU09OOjpWYWx1ZT4+JiYgYXJndW1lbnRzKQor
eworICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24oZXhwcmVzc2lvbkZvckV2YWx1YXRpbmdD
b21tYW5kKGNvbW1hbmQsIFdURk1vdmUoYXJndW1lbnRzKSksIFdURjo6bnVsbG9wdCk7Cit9CisK
K0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6RXZhbHVhdGlvblJlc3VsdCBJbnNwZWN0
b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZFN5bmMoY29uc3QgU3RyaW5n
JiBjb21tYW5kLCBWZWN0b3I8UmVmPEpTT046OlZhbHVlPj4mJiBhcmd1bWVudHMpCit7CisgICAg
aWYgKG1fc3VzcGVuZGVkKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRXZhbHVhdGlv
bkVycm9yOjpFeGVjdXRpb25TdXNwZW5kZWQpOworCisgICAgcmV0dXJuIGV2YWx1YXRlRXhwcmVz
c2lvbihleHByZXNzaW9uRm9yRXZhbHVhdGluZ0NvbW1hbmQoY29tbWFuZCwgV1RGTW92ZShhcmd1
bWVudHMpKSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpkaXNw
YXRjaENvbW1hbmRXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgY29tbWFuZCwgVmVjdG9yPFJlZjxK
U09OOjpWYWx1ZT4+JiYgYXJndW1lbnRzLCBFdmFsdWF0aW9uUmVzdWx0SGFuZGxlciYmIHJlc3Vs
dEhhbmRsZXIpCit7CisgICAgZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbihleHByZXNzaW9uRm9y
RXZhbHVhdGluZ0NvbW1hbmQoY29tbWFuZCwgV1RGTW92ZShhcmd1bWVudHMpKSwgT3B0aW9uYWwo
V1RGTW92ZShyZXN1bHRIYW5kbGVyKSkpOworfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hNZXNzYWdlQXN5bmMoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQor
eworICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24obWFrZVN0cmluZygiSW5zcGVjdG9yRnJv
bnRlbmRBUEkuZGlzcGF0Y2hNZXNzYWdlQXN5bmMoIiwgbWVzc2FnZSwgIikiKSk7Cit9CisKK3Zv
aWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZU9yUXVldWVFeHByZXNz
aW9uKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgT3B0aW9uYWw8RXZhbHVhdGlvblJlc3VsdEhh
bmRsZXI+JiYgb3B0aW9uYWxSZXN1bHRIYW5kbGVyKQoreworICAgIC8vIElmIHRoZSBmcm9udGVu
ZCBwYWdlIGhhcyBiZWVuIGRlYWxsb2NhdGVkLCB0aGVuIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG8u
CisgICAgaWYgKCFtX2Zyb250ZW5kUGFnZSkgeworICAgICAgICBpZiAob3B0aW9uYWxSZXN1bHRI
YW5kbGVyKQorICAgICAgICAgICAgKCpvcHRpb25hbFJlc3VsdEhhbmRsZXIpKG1ha2VVbmV4cGVj
dGVkKEV2YWx1YXRpb25FcnJvcjo6Q29udGV4dERlc3Ryb3llZCkpOworCisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICAvLyBTb21ldGltZXMgd2UgZ2V0IGhlcmUgYnkgc2VuZGluZyBtZXNz
YWdlcyBmb3IgZXZlbnRzIHRyaWdnZXJlZCBieSBET00gbXV0YXRpb25zIGVhcmxpZXIgaW4gdGhl
IGNhbGwgc3RhY2suCisgICAgLy8gSWYgdGhpcyBpcyB0aGUgY2FzZSwgdGhlbiBpdCdzIG5vdCBz
YWZlIHRvIGV2YWx1YXRlIHNjcmlwdCBzeW5jaHJvbm91c2x5LCBzbyBkbyBpdCBsYXRlci4gVGhp
cyBvbmx5IGFmZmVjdHMKKyAgICAvLyBXZWJLaXQxIGFuZCBzb21lIGxheW91dCB0ZXN0cyB0aGF0
IHVzZSBhIHNpbmdsZSB3ZWIgcHJvY2VzcyBmb3IgYm90aCB0aGUgaW5zcGVjdG9yIGFuZCBpbnNw
ZWN0ZWQgcGFnZS4KKyAgICBpZiAoIVNjcmlwdERpc2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFk
Ojppc1NjcmlwdEFsbG93ZWQoKSkKKyAgICAgICAgc3VzcGVuZChVbnN1c3BlbmRTb29uOjpZZXMp
OworCisgICAgaWYgKCFtX2Zyb250ZW5kTG9hZGVkIHx8IG1fc3VzcGVuZGVkKSB7CisgICAgICAg
IG1fcXVldWVkRXZhbHVhdGlvbnMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGV4cHJlc3Npb24sIFdU
Rk1vdmUob3B0aW9uYWxSZXN1bHRIYW5kbGVyKSkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGV2YWx1YXRlRXhwcmVzc2lvbihleHByZXNzaW9u
KTsKKyAgICBpZiAob3B0aW9uYWxSZXN1bHRIYW5kbGVyKQorICAgICAgICAoKm9wdGlvbmFsUmVz
dWx0SGFuZGxlcikocmVzdWx0KTsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXI6OmludmFsaWRhdGVRdWV1ZWRFeHByZXNzaW9ucygpCit7CisgICAgYXV0byBxdWV1ZWRF
dmFsdWF0aW9ucyA9IHN0ZDo6ZXhjaGFuZ2UobV9xdWV1ZWRFdmFsdWF0aW9ucywgeyB9KTsKKyAg
ICBmb3IgKGF1dG8mIHBhaXIgOiBxdWV1ZWRFdmFsdWF0aW9ucykgeworICAgICAgICBhdXRvIHJl
c3VsdEhhbmRsZXIgPSBXVEZNb3ZlKHBhaXIuc2Vjb25kKTsKKyAgICAgICAgaWYgKHJlc3VsdEhh
bmRsZXIpCisgICAgICAgICAgICAoKnJlc3VsdEhhbmRsZXIpKG1ha2VVbmV4cGVjdGVkKEV2YWx1
YXRpb25FcnJvcjo6Q29udGV4dERlc3Ryb3llZCkpOworICAgIH0KK30KKwordm9pZCBJbnNwZWN0
b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKQorewor
ICAgIC8vIElmIHRoZSBmcm9udGVuZCBwYWdlIGhhcyBiZWVuIGRlYWxsb2NhdGVkLCB0aGVuIHRo
ZXJlIGlzIG5vdGhpbmcgdG8gZG8uCisgICAgaWYgKCFtX2Zyb250ZW5kUGFnZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKG1fcXVldWVkRXZhbHVhdGlvbnMuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvIHF1ZXVlZEV2YWx1YXRpb25zID0gc3RkOjpleGNoYW5nZSht
X3F1ZXVlZEV2YWx1YXRpb25zLCB7IH0pOworICAgIGZvciAoYXV0byYgcGFpciA6IHF1ZXVlZEV2
YWx1YXRpb25zKSB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gZXZhbHVhdGVFeHByZXNzaW9uKHBh
aXIuZmlyc3QpOworICAgICAgICBpZiAoYXV0byByZXN1bHRIYW5kbGVyID0gV1RGTW92ZShwYWly
LnNlY29uZCkpCisgICAgICAgICAgICAoKnJlc3VsdEhhbmRsZXIpKHJlc3VsdCk7CisgICAgfQor
fQorCitKU0M6OkpTVmFsdWUgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0
ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQoreworICAgIEFTU0VSVChtX2Zy
b250ZW5kUGFnZSk7CisgICAgQVNTRVJUKCFtX3N1c3BlbmRlZCk7CisgICAgQVNTRVJUKG1fcXVl
dWVkRXZhbHVhdGlvbnMuaXNFbXB0eSgpKTsKKworICAgIEpTQzo6U3VzcGVuZEV4Y2VwdGlvblNj
b3BlIHNjb3BlKCZtX2Zyb250ZW5kUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLnZtKCkpOwor
ICAgIHJldHVybiBtX2Zyb250ZW5kUGFnZS0+bWFpbkZyYW1lKCkuc2NyaXB0KCkuZXZhbHVhdGVJ
Z25vcmluZ0V4Y2VwdGlvbihTY3JpcHRTb3VyY2VDb2RlKGV4cHJlc3Npb24pKTsKK30KKwordm9p
ZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmV2YWx1YXRlRXhwcmVzc2lvbkZvclRl
c3RpbmcoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQoreworICAgIGV2YWx1YXRlT3JRdWV1ZUV4
cHJlc3Npb24oZXhwcmVzc2lvbik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0
Y2hlci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiODViYWNhZGM4MTU4NGU0YTA2MjBhYmQ4NzUzYWY1OGVi
NGFlYzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVl
Lmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0V4
cGVjdGVkLmg+CisjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFnZTsKKworY2xh
c3MgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50
ZWQ8SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyPiB7CitwdWJsaWM6CisgICAgZW51bSBj
bGFzcyBFdmFsdWF0aW9uRXJyb3IgeyBFeGVjdXRpb25TdXNwZW5kZWQsIENvbnRleHREZXN0cm95
ZWQgfTsKKyAgICB1c2luZyBFdmFsdWF0aW9uUmVzdWx0ID0gRXhwZWN0ZWQ8SlNDOjpKU1ZhbHVl
LCBFdmFsdWF0aW9uRXJyb3I+OworICAgIHVzaW5nIEV2YWx1YXRpb25SZXN1bHRIYW5kbGVyID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFdmFsdWF0aW9uUmVzdWx0KT47CisKKyAgICBlbnVtIGNs
YXNzIFVuc3VzcGVuZFNvb24geyBZZXMsIE5vIH07CisgICAgCisgICAgV0VCQ09SRV9FWFBPUlQg
fkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcigpOworCisgICAgc3RhdGljIFJlZjxJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI+IGNyZWF0ZShQYWdlJiBwYWdlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
KHBhZ2UpKTsKKyAgICB9CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc2V0KCk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBmcm9udGVuZExvYWRlZCgpOworCisgICAgLy8gSWYgaXQncyBu
b3QgY3VycmVudGx5IHNhZmUgdG8gZXZhbHVhdGUgSmF2YVNjcmlwdCBvbiB0aGUgZnJvbnRlbmQg
cGFnZSwgdGhlCisgICAgLy8gZGlzcGF0Y2hlciB3aWxsIGJlY29tZSBzdXNwZW5kZWQgYW5kIGRp
c3BhdGNoIGFueSBxdWV1ZWQgZXZhbHVhdGlvbnMgd2hlbiB1bnN1c3BlbmRlZC4KKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHN1c3BlbmQoVW5zdXNwZW5kU29vbiA9IFVuc3VzcGVuZFNvb246Ok5v
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuc3VzcGVuZCgpOworICAgIGJvb2wgaXNTdXNw
ZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX3N1c3BlbmRlZDsgfQorCisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBkaXNwYXRjaENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kLCBWZWN0b3I8UmVm
PEpTT046OlZhbHVlPj4mJiBhcmd1bWVudHMgPSB7IH0pOworICAgIEV2YWx1YXRpb25SZXN1bHQg
ZGlzcGF0Y2hDb21tYW5kU3luYyhjb25zdCBTdHJpbmcmIGNvbW1hbmQsIFZlY3RvcjxSZWY8SlNP
Tjo6VmFsdWU+PiYmIGFyZ3VtZW50cyA9IHsgfSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
aXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgY29tbWFuZCwgVmVjdG9yPFJl
ZjxKU09OOjpWYWx1ZT4+JiYgYXJndW1lbnRzLCBFdmFsdWF0aW9uUmVzdWx0SGFuZGxlciYmKTsK
KworICAgIC8vIFVzZWQgdG8gZm9yd2FyZCBtZXNzYWdlcyBmcm9tIHRoZSBiYWNrZW5kIGNvbm5l
Y3Rpb24gdG8gdGhlIGZyb250ZW5kLgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0Y2hN
ZXNzYWdlQXN5bmMoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZXZhbHVhdGVFeHByZXNzaW9uRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmKTsKKyAgICAK
KyAgICAvLyBDb252ZW5pZW5jZSBtZXRob2QgdG8gb2J0YWluIGEgSlNHbG9iYWxPYmplY3QgZm9y
IHRoZSBmcm9udGVuZCBwYWdlLgorICAgIC8vIFRoaXMgaXMgdXNlZCB0byBjb252ZXJ0IGJldHdl
ZW4gQysrIHZhbHVlcyBhbmQgZnJvbnRlbmQgSlNDOjpKU1ZhbHVlIG9iamVjdHMuCisgICAgV0VC
Q09SRV9FWFBPUlQgSlNDOjpKU0dsb2JhbE9iamVjdCogZnJvbnRlbmRHbG9iYWxPYmplY3QoKTsK
K3ByaXZhdGU6CisgICAgV0VCQ09SRV9FWFBPUlQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRj
aGVyKFBhZ2UmKTsKKworICAgIHZvaWQgZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbihjb25zdCBT
dHJpbmcmLCBXVEY6Ok9wdGlvbmFsPEV2YWx1YXRpb25SZXN1bHRIYW5kbGVyPiYmID0gV1RGOjpu
dWxsb3B0KTsKKyAgICB2b2lkIGV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKKyAgICB2b2lk
IGludmFsaWRhdGVRdWV1ZWRFeHByZXNzaW9ucygpOworICAgIEpTQzo6SlNWYWx1ZSBldmFsdWF0
ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJik7CisKKyAgICBXZWFrUHRyPFBhZ2U+IG1fZnJvbnRl
bmRQYWdlOworICAgIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBPcHRpb25hbDxFdmFsdWF0aW9u
UmVzdWx0SGFuZGxlcj4+PiBtX3F1ZXVlZEV2YWx1YXRpb25zOworICAgIGJvb2wgbV9mcm9udGVu
ZExvYWRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3N1c3BlbmRlZCB7IGZhbHNlIH07Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCmluZGV4IDRmZTg4YjdlOGY4YjhiMDc0ZTE3OGQw
NDU4YTEyMGJiYjVjZWY1ZDguLjBhNzlkODZiM2M0Njk3NzgxNGE2OGY0ZWFhZWRiOGE4ZWU5ZmZi
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudC5oCkBAIC00MSw2ICs0MSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEZsb2F0UmVjdDsKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjsKIAogY2xh
c3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQgewogcHVibGljOgpAQCAtNTYsNiArNTcsOSBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHdpbmRvd09iamVjdENsZWFy
ZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZyb250ZW5kTG9hZGVkKCkgPSAwOwogCisgICAg
dmlydHVhbCB2b2lkIHBhZ2VQYXVzZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBhZ2VVbnBh
dXNlZCgpID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBzdGFydFdpbmRvd0RyYWcoKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIG1vdmVXaW5kb3dCeShmbG9hdCB4LCBmbG9hdCB5KSA9IDA7CiAKQEAg
LTEwNSwxMCArMTA5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGlj
RXZlbnQoY29uc3QgU3RyaW5nJiAvKiBldmVudE5hbWUgKi8sIGNvbnN0IERpYWdub3N0aWNMb2dn
aW5nQ2xpZW50OjpWYWx1ZURpY3Rpb25hcnkmKSB7IH0KICNlbmRpZgogCi0gICAgdmlydHVhbCB2
b2lkIHBhZ2VQYXVzZWQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGFnZVVucGF1c2VkKCkgeyB9
Ci0KICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2VuZE1lc3NhZ2VUb0JhY2tlbmQo
Y29uc3QgU3RyaW5nJikgPSAwOworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgSW5zcGVjdG9y
RnJvbnRlbmRBUElEaXNwYXRjaGVyJiBmcm9udGVuZEFQSURpc3BhdGNoZXIoKSA9IDA7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGJvb2wgaXNVbmRlclRlc3QoKSA9IDA7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWwuY3BwCmluZGV4IGNjZTU5MDM1ZWRlNTcwYTY0OWExMjY3NmMzOTMyMmQ0OGU4NGQ4
ZjQuLjdkNGJiOGE1NDkxODAzMjM4ZjY2NjIwMDZkYzZiYmFkMGVlMDdmMTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbC5jcHAKQEAgLTE1MCw2ICsxNTAsNyBAQCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsKEluc3BlY3RvckNvbnRyb2xsZXIqCiAgICAg
LCBtX3NldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKQogICAgICwgbV9kb2NrU2lkZShEb2NrU2lk
ZTo6VW5kb2NrZWQpCiAgICAgLCBtX2Rpc3BhdGNoVGFzayhJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hUYXNrOjpjcmVhdGUoaW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIpKQorICAgICwgbV9mcm9udGVu
ZEFQSURpc3BhdGNoZXIoSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpjcmVhdGUoKmZy
b250ZW5kUGFnZSkpCiB7CiAgICAgbV9mcm9udGVuZFBhZ2UtPnNldHRpbmdzKCkuc2V0QWxsb3dG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzKHRydWUpOwogfQpAQCAtMTg1LDEwICsxODYsMjAgQEAgdm9p
ZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpmcm9udGVuZExvYWRlZCgpCiAgICAgLy8g
VGh1cyBpZiB3ZSBjYWxsIGNhbkF0dGFjaFdpbmRvdyBmaXJzdCB3ZSBjYW4gYXZvaWQgdGhpcyBw
cm9ibGVtLiBUaGlzIGNoYW5nZSBkb2VzIG5vdCBjYXVzZSBhbnkgcmVncmVzc2lvbnMgb24gTWFj
LgogICAgIHNldERvY2tpbmdVbmF2YWlsYWJsZSghY2FuQXR0YWNoV2luZG93KCkpOwogICAgIGJy
aW5nVG9Gcm9udCgpOwotICAgIG1fZnJvbnRlbmRMb2FkZWQgPSB0cnVlOwotICAgIGZvciAoYXV0
byYgZXZhbHVhdGUgOiBtX2V2YWx1YXRlT25Mb2FkKQotICAgICAgICBldmFsdWF0ZU9uTG9hZChl
dmFsdWF0ZSk7Ci0gICAgbV9ldmFsdWF0ZU9uTG9hZC5jbGVhcigpOworCisgICAgbV9mcm9udGVu
ZEFQSURpc3BhdGNoZXItPmZyb250ZW5kTG9hZGVkKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDo6cGFnZVBhdXNlZCgpCit7CisgICAgLy8gTk9URTogcGFnZVBhdXNl
ZCgpIGFuZCBwYWdlVW5wYXVzZWQoKSBkbyBub3Qgc3VzcGVuZC91bnN1c3BlbmQgdGhlIGZyb250
ZW5kIEFQSSBkaXNwYXRjaGVyCisgICAgLy8gZm9yIHRoaXMgc3ViY2xhc3Mgb2YgSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQuIFRoZSBpbnNwZWN0ZWQgcGFnZSBhbmQgdGhlIGZyb250ZW5kIHBhZ2UK
KyAgICAvLyBleGlzdCBpbiB0aGUgc2FtZSB3ZWIgcHJvY2Vzcywgc28gbWVzc2FnZXMgbmVlZCB0
byBiZSBzZW50IGV2ZW4gd2hpbGUgdGhlIGRlYnVnZ2VyIGlzIHBhdXNlZC4KKyAgICAvLyBTdXNw
ZW5kaW5nIGhlcmUgd291bGQgc3RhbGwgb3V0IGxhdGVyIGNvbW1hbmRzIHRoYXQgcmVzdW1lIHRo
ZSBkZWJ1Z2dlciwgY2F1c2luZyB0aGUgdGVzdCB0byB0aW1lIG91dC4KK30KKwordm9pZCBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpwYWdlVW5wYXVzZWQoKQorewogfQogCiBVc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnVzZXJJ
bnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSBjb25zdApAQCAtMjI3LDcgKzIzOCw3IEBAIGJvb2wg
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6Y2FuQXR0YWNoV2luZG93KCkKIAogdm9pZCBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzZXREb2NraW5nVW5hdmFpbGFibGUoYm9vbCB1
bmF2YWlsYWJsZSkKIHsKLSAgICBkaXNwYXRjaChtYWtlU3RyaW5nKCJbXCJzZXREb2NraW5nVW5h
dmFpbGFibGVcIiwgIiwgdW5hdmFpbGFibGUgPyAidHJ1ZSIgOiAiZmFsc2UiLCAnXScpKTsKKyAg
ICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXREb2NraW5nVW5h
dmFpbGFibGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh1bmF2YWlsYWJsZSkgfSk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6Y2hhbmdlQXR0YWNoZWRXaW5kb3dI
ZWlnaHQodW5zaWduZWQgaGVpZ2h0KQpAQCAtMjk3LDcgKzMwOCw3IEBAIHZvaWQgSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0QXR0YWNoZWRXaW5kb3coRG9ja1NpZGUgZG9ja1NpZGUp
CiAKICAgICBtX2RvY2tTaWRlID0gZG9ja1NpZGU7CiAKLSAgICBkaXNwYXRjaChtYWtlU3RyaW5n
KCJbXCJzZXREb2NrU2lkZVwiLCBcIiIsIHNpZGUsICJcIl0iKSk7CisgICAgbV9mcm9udGVuZEFQ
SURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0RG9ja1NpZGUiX3MsIHsgSlNPTjo6VmFs
dWU6OmNyZWF0ZShzaWRlKSB9KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsOjpyZXN0b3JlQXR0YWNoZWRXaW5kb3dIZWlnaHQoKQpAQCAtMzE0LDU5ICszMjUsNzQgQEAg
dm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpyZXN0b3JlQXR0YWNoZWRXaW5kb3dI
ZWlnaHQoKQogCiBib29sIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmlzRGVidWdnaW5n
RW5hYmxlZCgpCiB7Ci0gICAgaWYgKG1fZnJvbnRlbmRMb2FkZWQpCi0gICAgICAgIHJldHVybiBl
dmFsdWF0ZUFzQm9vbGVhbigiW1wiaXNEZWJ1Z2dpbmdFbmFibGVkXCJdIik7Ci0gICAgcmV0dXJu
IGZhbHNlOworICAgIGlmICghbV9mcm9udGVuZExvYWRlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgYXV0byByZXN1bHQgPSBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hD
b21tYW5kU3luYygiaXNEZWJ1Z2dpbmdFbmFibGVkIl9zLCB7IH0pOworICAgIGlmICghcmVzdWx0
IHx8ICFyZXN1bHQudmFsdWUoKS50b0Jvb2xlYW4obV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmZy
b250ZW5kR2xvYmFsT2JqZWN0KCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1
cm4gdHJ1ZTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzZXREZWJ1
Z2dpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKLSAgICBkaXNwYXRjaChtYWtlU3RyaW5nKCJb
XCJzZXREZWJ1Z2dpbmdFbmFibGVkXCIsICIsIGVuYWJsZWQgPyAidHJ1ZSIgOiAiZmFsc2UiLCAn
XScpKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXRE
ZWJ1Z2dpbmdFbmFibGVkIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUoZW5hYmxlZCkgfSk7CiB9
CiAKIGJvb2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6aXNUaW1lbGluZVByb2ZpbGlu
Z0VuYWJsZWQoKQogewotICAgIGlmIChtX2Zyb250ZW5kTG9hZGVkKQotICAgICAgICByZXR1cm4g
ZXZhbHVhdGVBc0Jvb2xlYW4oIltcImlzVGltZWxpbmVQcm9maWxpbmdFbmFibGVkXCJdIik7Ci0g
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghbV9mcm9udGVuZExvYWRlZCkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgYXV0byByZXN1bHQgPSBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+
ZGlzcGF0Y2hDb21tYW5kU3luYygiaXNUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQiX3MsIHsgfSk7
CisgICAgaWYgKCFyZXN1bHQgfHwgIXJlc3VsdC52YWx1ZSgpLnRvQm9vbGVhbihtX2Zyb250ZW5k
QVBJRGlzcGF0Y2hlci0+ZnJvbnRlbmRHbG9iYWxPYmplY3QoKSkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWw6OnNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7Ci0g
ICAgZGlzcGF0Y2gobWFrZVN0cmluZygiW1wic2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkXCIs
ICIsIGVuYWJsZWQgPyAidHJ1ZSIgOiAiZmFsc2UiLCAnXScpKTsKKyAgICBtX2Zyb250ZW5kQVBJ
RGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQi
X3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShlbmFibGVkKSB9KTsKIH0KIAogYm9vbCBJbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsOjppc1Byb2ZpbGluZ0phdmFTY3JpcHQoKQogewotICAgIGlm
IChtX2Zyb250ZW5kTG9hZGVkKQotICAgICAgICByZXR1cm4gZXZhbHVhdGVBc0Jvb2xlYW4oIltc
ImlzUHJvZmlsaW5nSmF2YVNjcmlwdFwiXSIpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAo
IW1fZnJvbnRlbmRMb2FkZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gcmVz
dWx0ID0gbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFN5bmMoImlzUHJv
ZmlsaW5nSmF2YVNjcmlwdCJfcywgeyB9KTsKKyAgICBpZiAoIXJlc3VsdCB8fCAhcmVzdWx0LnZh
bHVlKCkudG9Cb29sZWFuKG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5mcm9udGVuZEdsb2JhbE9i
amVjdCgpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c3RhcnRQcm9maWxpbmdKYXZhU2Ny
aXB0KCkKIHsKLSAgICBkaXNwYXRjaCgiW1wic3RhcnRQcm9maWxpbmdKYXZhU2NyaXB0XCJdIik7
CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic3RhcnRQcm9m
aWxpbmdKYXZhU2NyaXB0Il9zKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsOjpzdG9wUHJvZmlsaW5nSmF2YVNjcmlwdCgpCiB7Ci0gICAgZGlzcGF0Y2goIltcInN0b3BQ
cm9maWxpbmdKYXZhU2NyaXB0XCJdIik7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRp
c3BhdGNoQ29tbWFuZCgic3RvcFByb2ZpbGluZ0phdmFTY3JpcHQiX3MpOwogfQogCiB2b2lkIElu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNob3dDb25zb2xlKCkKIHsKLSAgICBkaXNwYXRj
aCgiW1wic2hvd0NvbnNvbGVcIl0iKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlz
cGF0Y2hDb21tYW5kKCJzaG93Q29uc29sZSJfcyk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbDo6c2hvd1Jlc291cmNlcygpCiB7Ci0gICAgZGlzcGF0Y2goIltcInNob3dS
ZXNvdXJjZXNcIl0iKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21t
YW5kKCJzaG93UmVzb3VyY2VzIl9zKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsOjpzaG93TWFpblJlc291cmNlRm9yRnJhbWUoRnJhbWUqIGZyYW1lKQogewogICAgIFN0
cmluZyBmcmFtZUlkID0gbV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxlci0+ZW5zdXJlUGFnZUFnZW50
KCkuZnJhbWVJZChmcmFtZSk7Ci0gICAgZGlzcGF0Y2gobWFrZVN0cmluZygiW1wic2hvd01haW5S
ZXNvdXJjZUZvckZyYW1lXCIsIFwiIiwgZnJhbWVJZCwgIlwiXSIpKTsKKyAgICBtX2Zyb250ZW5k
QVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzaG93TWFpblJlc291cmNlRm9yRnJhbWUi
X3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShmcmFtZUlkKSB9KTsKIH0KIAogdW5zaWduZWQgSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6Y29uc3RyYWluZWRBdHRhY2hlZFdpbmRvd0hlaWdo
dCh1bnNpZ25lZCBwcmVmZXJyZWRIZWlnaHQsIHVuc2lnbmVkIHRvdGFsV2luZG93SGVpZ2h0KQpA
QCAtMzk0LDQ2ICs0MjAsNiBAQCB1bnNpZ25lZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
OjppbnNwZWN0aW9uTGV2ZWwoKSBjb25zdAogICAgIHJldHVybiBtX2luc3BlY3RlZFBhZ2VDb250
cm9sbGVyLT5pbnNwZWN0aW9uTGV2ZWwoKSArIDE7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbDo6ZGlzcGF0Y2goY29uc3QgU3RyaW5nJiBzaWduYXR1cmUpCi17Ci0gICAg
QVNTRVJUKCFzaWduYXR1cmUuaXNFbXB0eSgpKTsKLSAgICBBU1NFUlQoc2lnbmF0dXJlLnN0YXJ0
c1dpdGgoJ1snKSk7Ci0gICAgQVNTRVJUKHNpZ25hdHVyZS5lbmRzV2l0aCgnXScpKTsKLQotICAg
IGV2YWx1YXRlT25Mb2FkKCJJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRjaCgiICsgc2lnbmF0
dXJlICsgIikiKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNw
YXRjaE1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlT2JqZWN0KQotewotICAgIEFTU0VSVCgh
bWVzc2FnZU9iamVjdC5pc0VtcHR5KCkpOwotCi0gICAgZXZhbHVhdGVPbkxvYWQoIkluc3BlY3Rv
ckZyb250ZW5kQVBJLmRpc3BhdGNoTWVzc2FnZSgiICsgbWVzc2FnZU9iamVjdCArICIpIik7Ci19
Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZGlzcGF0Y2hNZXNzYWdlQXN5
bmMoY29uc3QgU3RyaW5nJiBtZXNzYWdlT2JqZWN0KQotewotICAgIEFTU0VSVCghbWVzc2FnZU9i
amVjdC5pc0VtcHR5KCkpOwotCi0gICAgZXZhbHVhdGVPbkxvYWQoIkluc3BlY3RvckZyb250ZW5k
QVBJLmRpc3BhdGNoTWVzc2FnZUFzeW5jKCIgKyBtZXNzYWdlT2JqZWN0ICsgIikiKTsKLX0KLQot
Ym9vbCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpldmFsdWF0ZUFzQm9vbGVhbihjb25z
dCBTdHJpbmcmIGV4cHJlc3Npb24pCi17Ci0gICAgYXV0byYgc3RhdGUgPSAqbWFpbldvcmxkRXhl
Y1N0YXRlKCZtX2Zyb250ZW5kUGFnZS0+bWFpbkZyYW1lKCkpOwotICAgIHJldHVybiBtX2Zyb250
ZW5kUGFnZS0+bWFpbkZyYW1lKCkuc2NyaXB0KCkuZXhlY3V0ZVNjcmlwdElnbm9yaW5nRXhjZXB0
aW9uKGV4cHJlc3Npb24pLnRvV1RGU3RyaW5nKCZzdGF0ZSkgPT0gInRydWUiOwotfQotCi12b2lk
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmV2YWx1YXRlT25Mb2FkKGNvbnN0IFN0cmlu
ZyYgZXhwcmVzc2lvbikKLXsKLSAgICBpZiAoIW1fZnJvbnRlbmRMb2FkZWQpIHsKLSAgICAgICAg
bV9ldmFsdWF0ZU9uTG9hZC5hcHBlbmQoZXhwcmVzc2lvbik7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBKU0M6OlN1c3BlbmRFeGNlcHRpb25TY29wZSBzY29wZSgmbV9mcm9udGVuZFBh
Z2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS52bSgpKTsKLSAgICBtX2Zyb250ZW5kUGFnZS0+bWFp
bkZyYW1lKCkuc2NyaXB0KCkuZXZhbHVhdGVJZ25vcmluZ0V4Y2VwdGlvbihTY3JpcHRTb3VyY2VD
b2RlKGV4cHJlc3Npb24pKTsKLX0KLQogUGFnZSogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bDo6aW5zcGVjdGVkUGFnZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2luc3BlY3RlZFBhZ2VDb250
cm9sbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsLmgKaW5kZXggNDNhM2VjZGM3NjhkMGUwZmU3M2FkZmE2NWVlM2Fm
M2U3NzEzYjg2OC4uODFjMmM2ODQ4N2U1YWY2NDNkYzZiMDMzOTAwOWUwZWRjZjZiYjYwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbC5oCkBAIC0zMSw2ICszMSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSAiSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNjYsNiArNjcsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHdpbmRvd09iamVjdENsZWFyZWQoKSBmaW5hbDsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGZyb250ZW5kTG9hZGVkKCkgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBwYWdlUGF1c2VkKCkgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwYWdlVW5w
YXVzZWQoKSBmaW5hbDsKIAogICAgIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCkgb3ZlcnJpZGUgeyB9
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkg
ZmluYWw7CkBAIC05MSw2ICs5NCw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB1bnNp
Z25lZCBpbnNwZWN0aW9uTGV2ZWwoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgYmFja2VuZENv
bW1hbmRzVVJMKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU3RyaW5nKCk7IH07CiAKKyAgICBJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXImIGZyb250ZW5kQVBJRGlzcGF0Y2hlcigpIGZpbmFs
IHsgcmV0dXJuIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyOyB9CisKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIGNhbkF0dGFjaFdpbmRvdygpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RG9j
a2luZ1VuYXZhaWxhYmxlKGJvb2wpOwogCkBAIC0xMTksMTAgKzEyNCw2IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCBQYWdlKiBpbnNwZWN0ZWRQYWdlKCkgY29uc3Q7CiAgICAgUGFnZSog
ZnJvbnRlbmRQYWdlKCkgY29uc3QgeyByZXR1cm4gbV9mcm9udGVuZFBhZ2U7IH0KIAotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0Y2goY29uc3QgU3RyaW5nJiBzaWduYXR1cmUpOwotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0Y2hNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZU9iamVjdCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNwYXRjaE1lc3NhZ2VBc3luYyhj
b25zdCBTdHJpbmcmIG1lc3NhZ2VPYmplY3QpOwotCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2
b2lkIHNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQpID0gMDsKQEAgLTEzMSwxMCArMTMy
LDggQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTaGVldFJlY3QoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JikgPSAwOwogCiBwcml2YXRlOgotICAgIGJvb2wgZXZhbHVhdGVBc0Jv
b2xlYW4oY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKTsKLSAgICB2b2lkIGV2YWx1YXRlT25Mb2Fk
KGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbik7Ci0KICAgICBmcmllbmQgY2xhc3MgRnJvbnRlbmRN
ZW51UHJvdmlkZXI7CisKICAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBtX2luc3BlY3RlZFBhZ2VD
b250cm9sbGVyIHsgbnVsbHB0ciB9OwogICAgIFBhZ2UqIG1fZnJvbnRlbmRQYWdlIHsgbnVsbHB0
ciB9OwogICAgIC8vIFRPRE8oeXVyeXMpOiB0aGlzIHJlZiBzaG91bGRuJ3QgYmUgbmVlZGVkLgpA
QCAtMTQyLDggKzE0MSw4IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50TG9jYWw6OlNldHRpbmdzPiBtX3NldHRpbmdzOwogICAgIGJvb2wgbV9m
cm9udGVuZExvYWRlZCB7IGZhbHNlIH07CiAgICAgRG9ja1NpZGUgbV9kb2NrU2lkZTsKLSAgICBW
ZWN0b3I8U3RyaW5nPiBtX2V2YWx1YXRlT25Mb2FkOwogICAgIFJlZjxJbnNwZWN0b3JCYWNrZW5k
RGlzcGF0Y2hUYXNrPiBtX2Rpc3BhdGNoVGFzazsKKyAgICBSZWY8SW5zcGVjdG9yRnJvbnRlbmRB
UElEaXNwYXRjaGVyPiBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAyYWY3OGRi
ZDliNzEyMTRmYjJlZGU4MTMzMTdlMjZhNzM0ODEzODMwLi43ZjVhMGQxMjhhZjhiMmI3OTIxNTk2
NmM2N2NlODllNGFiMGMwMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBA
IC00MDgsNyArNDA4LDcgQEAgdm9pZCBJbnNwZWN0b3JTdHViRnJvbnRlbmQ6OmNsb3NlV2luZG93
KCkKIAogdm9pZCBJbnNwZWN0b3JTdHViRnJvbnRlbmQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgZGlzcGF0Y2hNZXNzYWdlQXN5bmMobWVzc2Fn
ZSk7CisgICAgZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkuZGlzcGF0Y2hNZXNzYWdlQXN5bmMobWVz
c2FnZSk7CiB9CiAKIHN0YXRpYyBib29sIG1hcmtlclR5cGVGcm9tKGNvbnN0IFN0cmluZyYgbWFy
a2VyVHlwZSwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUmIHJlc3VsdCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cmlu
ZGV4IGZmZTk3ODdkZWFlNTQ3NTI2NzM2ZTIxMTAwNDJiMGI5ZjhkYzA4MDEuLmUwYWI3NDM2YmFk
YzM0NjM3NDk0NjYzMzQ3MTliNDVlZGZkMmIzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNTQ3LDcgKzU0
Nyw2IEBAIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VI
YW5kbGUuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVj
dG9yVUkuY3BwCiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuY3BwCiBXZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCi1XZWJQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwCiBXZWJQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyLmNwcAogV2ViUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlSW5z
cGVjdG9yVGFyZ2V0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNDQwNmU5YjZlN2U2ZjRhMDM2MmU2YzU2YmI4NDliZmViZWM4YzBj
Ny4uNDY2NWNjYjdiYzZhZjdhN2EwODkxNWZkZTQ2NzI2ZDk2N2Y1ZmNiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDkyLDcgKzE0
OTIsNiBAQAogCQlBNTVCQTgyNTFCQTI1Q0ZCMDA3Q0QzM0QgLyogUmVtb3RlV2ViSW5zcGVjdG9y
UHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTU1QkE4MjIxQkEyNUJCODAwN0NEMzNEIC8qIFJlbW90ZVdlYkluc3BlY3RvclByb3h5
TWVzc2FnZXMuaCAqLzsgfTsKIAkJQTU1QkE4MjYxQkEyNUNGRDAwN0NEMzNEIC8qIFJlbW90ZVdl
Ykluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NUJBODIxMUJBMjVCQjgwMDdDRDMzRCAvKiBSZW1v
dGVXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUE1NUJBODJC
MUJBMzhFNjEwMDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NUJBODI4MUJBMzhFMUUwMDdDRDMz
RCAvKiBXZWJJbnNwZWN0b3JVdGlsaXRpZXMuaCAqLzsgfTsKLQkJQTU1QkE4MzUxQkEzRTcwQTAw
N0NEMzNEIC8qIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU1QkE4MzMxQkEzRTZGQTAwN0NE
MzNEIC8qIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oICovOyB9OwogCQlBNTg2
MEU3MTIzMEY2N0ZDMDA0NjFBQUUgLyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTg2MEU3MDIz
MEY2N0RFMDA0NjFBQUUgLyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmggKi87IH07
CiAJCUE1OEI2RjA4MThGQ0E3MzMwMDhDQkE1MyAvKiBXS0ZpbGVVcGxvYWRQYW5lbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU4QjZGMDYxOEZDQTcz
MzAwOENCQTUzIC8qIFdLRmlsZVVwbG9hZFBhbmVsLmggKi87IH07CiAJCUE1QzBGMEE3MjAwMDY1
NEQwMDUzNjUzNiAvKiBfV0tOU1dpbmRvd0V4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVDMEYwQTYyMDAwNjU0NDAwNTM2NTM2IC8qIF9XS05T
V2luZG93RXh0cmFzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTQ2NzIsOCArNDY3MSw2IEBACiAJCUE1NUJBODIyMUJBMjVCQjgwMDdDRDMzRCAv
KiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlBNTVCQTgyNzFCQTM4RTFFMDA3
Q0QzM0QgLyogV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkluc3BlY3RvclV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE1NUJBODI4MUJBMzhFMUUwMDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JV
dGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSW5zcGVjdG9y
VXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE1NUJBODMyMUJBM0U2
RkEwMDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTU1QkE4MzMxQkEz
RTZGQTAwN0NEMzNEIC8qIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU4NjBFNkYyMzBGNjdERTAw
NDYxQUFFIC8qIFdlYlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBXZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuY3BwOyBwYXRoID0gTmV0d29y
ay9XZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNTg2MEU3MDIzMEY2N0RFMDA0NjFBQUUgLyogV2ViUmVzb3VyY2VJbnRlcmNl
cHRDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlJlc291cmNlSW50ZXJjZXB0Q29udHJv
bGxlci5oOyBwYXRoID0gTmV0d29yay9XZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU4QjZGMDYxOEZDQTczMzAwOENCQTUzIC8q
IFdLRmlsZVVwbG9hZFBhbmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdL
RmlsZVVwbG9hZFBhbmVsLmg7IHBhdGggPSBpb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg3MDcsOCArODcwNCw2IEBACiAJCQkJMUM4
RTJBMUMxMjc3ODMzRjAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvci5tZXNzYWdlcy5pbiAqLywKIAkJ
CQlCQzExMUE1OTExMkY0RkJCMDAzMzdCQUIgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCAqLywK
IAkJCQlCQzAzMkQ2RDEwRjQzNzhEMDA1OEMxNUEgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmggKi8s
Ci0JCQkJQTU1QkE4MzIxQkEzRTZGQTAwN0NEMzNEIC8qIFdlYkluc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5jcHAgKi8sCi0JCQkJQTU1QkE4MzMxQkEzRTZGQTAwN0NEMzNEIC8qIFdlYklu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oICovLAogCQkJCUZFRTQzRkQwMUU2N0FGQzYw
MDc3RDZEMSAvKiBXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyLmNwcCAqLywKIAkJCQlG
RUU0M0ZEMTFFNjdBRkM2MDA3N0Q2RDEgLyogV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hl
ci5oICovLAogCQkJCUZFRTQzRkQyMUU2N0FGQzYwMDc3RDZEMSAvKiBXZWJJbnNwZWN0b3JJbnRl
cnJ1cHREaXNwYXRjaGVyLm1lc3NhZ2VzLmluICovLApAQCAtMTE0OTksNyArMTE0OTQsNiBAQAog
CQkJCUJDQ0Y2QUJEMTJDOTFFRjkwMDhGOUMzNSAvKiBXZWJJbWFnZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUM4RTI4MjAxMjc1RDE1NDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMwMzJEODIxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkluc3BlY3RvckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTU1QkE4MzUxQkEzRTcwQTAwN0NEMzNEIC8qIFdlYklu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVFNDNG
RDMxRTY3QjAxODAwNzdENkQxIC8qIFdlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUZFREJEQ0Q3MUU2OEQyMDUwMEE1OUY4RiAvKiBXZWJJbnNwZWN0
b3JJbnRlcnJ1cHREaXNwYXRjaGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDOEUy
QTM2MTI3Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90
ZVdlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
UmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IDQ3ZDZmYTMzODNjNGVkYmFmMzE0ODBkZDQy
YmVjNTA2Zjg0YzgzYWYuLjdlMGVkNjQyYTAwYTcxNDZmMGI0YTk0NTc3ZDlhZDIwNTA5YTg5ODYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2Vi
SW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
UmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC01Myw3ICs1Myw3IEBAIFJlZjxSZW1vdGVXZWJJ
bnNwZWN0b3JVST4gUmVtb3RlV2ViSW5zcGVjdG9yVUk6OmNyZWF0ZShXZWJQYWdlJiBwYWdlKQog
CiBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6UmVtb3RlV2ViSW5zcGVjdG9yVUkoV2ViUGFnZSYgcGFn
ZSkKICAgICA6IG1fcGFnZShwYWdlKQotICAgICwgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIocGFn
ZSkKKyAgICAsIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyKEluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcjo6Y3JlYXRlKCpwYWdlLmNvcmVQYWdlKCkpKQogewogICAgIFdlYkluc3BlY3RvclVJ
OjplbmFibGVGcm9udGVuZEZlYXR1cmVzKCk7CiB9CkBAIC02NSwzMCArNjUsMjkgQEAgdm9pZCBS
ZW1vdGVXZWJJbnNwZWN0b3JVSTo6aW5pdGlhbGl6ZShEZWJ1Z2dhYmxlSW5mb0RhdGEmJiBkZWJ1
Z2dhYmxlSW5mbywgY29uc3QKIAogICAgIG1fcGFnZS5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250
cm9sbGVyKCkuc2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQodGhpcyk7CiAKLSAgICBtX2Zyb250
ZW5kQVBJRGlzcGF0Y2hlci5yZXNldCgpOwotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRp
c3BhdGNoQ29tbWFuZCgic2V0RG9ja2luZ1VuYXZhaWxhYmxlIl9zLCB0cnVlKTsKKyAgICBtX2Zy
b250ZW5kQVBJRGlzcGF0Y2hlci0+cmVzZXQoKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hl
ci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXREb2NraW5nVW5hdmFpbGFibGUiX3MsIHsgSlNPTjo6VmFs
dWU6OmNyZWF0ZSh0cnVlKSB9KTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6dXBk
YXRlRmluZFN0cmluZyhjb25zdCBTdHJpbmcmIGZpbmRTdHJpbmcpCiB7CiAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwotICAgIEpTT046OlZhbHVlOjplc2NhcGVTdHJpbmcoYnVpbGRlciwgZmlu
ZFN0cmluZyk7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJ1
cGRhdGVGaW5kU3RyaW5nIl9zLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIG1fZnJvbnRlbmRB
UElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInVwZGF0ZUZpbmRTdHJpbmciX3MsIHsgSlNP
Tjo6VmFsdWU6OmNyZWF0ZShidWlsZGVyLnRvU3RyaW5nKCkpIH0pOwogfQogCiB2b2lkIFJlbW90
ZVdlYkluc3BlY3RvclVJOjpkaWRTYXZlKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIG1fZnJv
bnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2F2ZWRVUkwiX3MsIHVybCk7Cisg
ICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2F2ZWRVUkwiX3Ms
IHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh1cmwpIH0pOwogfQogCiB2b2lkIFJlbW90ZVdlYkluc3Bl
Y3RvclVJOjpkaWRBcHBlbmQoY29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgbV9mcm9udGVuZEFQ
SURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJhcHBlbmRlZFRvVVJMIl9zLCB1cmwpOworICAg
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoImFwcGVuZGVkVG9VUkwi
X3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh1cmwpIH0pOwogfQogCiB2b2lkIFJlbW90ZVdlYklu
c3BlY3RvclVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQog
ewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoTWVzc2FnZUFzeW5jKG1lc3Nh
Z2UpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaE1lc3NhZ2VBc3luYyht
ZXNzYWdlKTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c2VuZE1lc3NhZ2VUb0Jh
Y2tlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMTA3LDEzICsxMDYsMjMgQEAgdm9pZCBS
ZW1vdGVXZWJJbnNwZWN0b3JVSTo6d2luZG93T2JqZWN0Q2xlYXJlZCgpCiAKIHZvaWQgUmVtb3Rl
V2ViSW5zcGVjdG9yVUk6OmZyb250ZW5kTG9hZGVkKCkKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlz
cGF0Y2hlci5mcm9udGVuZExvYWRlZCgpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5m
cm9udGVuZExvYWRlZCgpOwogCi0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hD
b21tYW5kKCJzZXRJc1Zpc2libGUiX3MsIHRydWUpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRj
aGVyLT5kaXNwYXRjaENvbW1hbmQoInNldElzVmlzaWJsZSJfcywgeyBKU09OOjpWYWx1ZTo6Y3Jl
YXRlKHRydWUpIH0pOwogCiAgICAgYnJpbmdUb0Zyb250KCk7CiB9CiAKK3ZvaWQgUmVtb3RlV2Vi
SW5zcGVjdG9yVUk6OnBhZ2VQYXVzZWQoKQoreworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVy
LT5zdXNwZW5kKCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnBhZ2VVbnBhdXNl
ZCgpCit7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPnVuc3VzcGVuZCgpOworfQorCiB2
b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpjaGFuZ2VTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0
JiByZWN0KQogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpTZXRTaGVl
dFJlY3QocmVjdCksIG1fcGFnZS5pZGVudGlmaWVyKCkpOwpAQCAtMjQ2LDcgKzI1NSw3IEBAIHZv
aWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKGJv
b2wgYXZhaWxhYmxlKQogICAgIEFTU0VSVCghYXZhaWxhYmxlIHx8IHN1cHBvcnRzRGlhZ25vc3Rp
Y0xvZ2dpbmcoKSk7CiAgICAgbV9kaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZSA9IGF2YWlsYWJs
ZTsKIAotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0RGlh
Z25vc3RpY0xvZ2dpbmdBdmFpbGFibGUiX3MsIG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUp
OworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNldERpYWdu
b3N0aWNMb2dnaW5nQXZhaWxhYmxlIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUobV9kaWFnbm9z
dGljTG9nZ2luZ0F2YWlsYWJsZSkgfSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oCmlu
ZGV4IGI0OTllYzVjNTNmYWM2MjdmNWY0N2VlZmJjNGE5MDM4NmNkYTA2YzYuLjAyNWVjOTBhMWQ0
YWYxYzlmNTUzZGJjNDJmN2M5MzlmZDQzOTg0OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgKQEAgLTI3
LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkRlYnVnZ2FibGVJbmZvRGF0YS5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgotI2luY2x1ZGUgIldlYkluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRj
aGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmg+CiAjaW5jbHVkZSA8d3RmL0Rl
cXVlLmg+CkBAIC02Miw2ICs2MiwxMCBAQCBwdWJsaWM6CiAgICAgLy8gV2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQKICAgICB2b2lkIHdpbmRvd09iamVjdENsZWFyZWQoKSBvdmVycmlk
ZTsKICAgICB2b2lkIGZyb250ZW5kTG9hZGVkKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHBhZ2VQ
YXVzZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHBhZ2VVbnBhdXNlZCgpIG92ZXJyaWRlOworCiAg
ICAgdm9pZCBjaGFuZ2VTaGVldFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzdGFydFdpbmRvd0RyYWcoKSBvdmVycmlkZTsKICAgICB2b2lkIG1vdmVX
aW5kb3dCeShmbG9hdCB4LCBmbG9hdCB5KSBvdmVycmlkZTsKQEAgLTkyLDYgKzk2LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNob3dDZXJ0aWZpY2F0ZShjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUlu
Zm8mKSBvdmVycmlkZTsKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9CYWNrZW5kKGNvbnN0IFN0cmlu
ZyYpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
ciYgZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9mcm9udGVuZEFQ
SURpc3BhdGNoZXI7IH0KIAogI2lmIEVOQUJMRShJTlNQRUNUT1JfVEVMRU1FVFJZKQogICAgIGJv
b2wgc3VwcG9ydHNEaWFnbm9zdGljTG9nZ2luZygpIG92ZXJyaWRlOwpAQCAtMTEwLDcgKzExNSw3
IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVtb3RlV2ViSW5zcGVjdG9yVUkoV2ViUGFnZSYp
OwogCiAgICAgV2ViUGFnZSYgbV9wYWdlOwotICAgIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlciBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsKKyAgICBSZWY8V2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyPiBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsKICAgICBS
ZWZQdHI8V2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0PiBtX2Zyb250ZW5kSG9zdDsKICAg
ICBEZWJ1Z2dhYmxlSW5mb0RhdGEgbV9kZWJ1Z2dhYmxlSW5mbzsKICAgICBTdHJpbmcgbV9iYWNr
ZW5kQ29tbWFuZHNVUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
ci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljMzdiMDAzYzFjYjc3MWQ5YjNm
NzlkZGE2NTUyYTQ5MDdkN2VkZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0
b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTIzICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCIKLQotI2luY2x1ZGUgIldlYlBhZ2UuaCIK
LSNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250
cm9sbGVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRTdGF0ZS5oPgotCi1uYW1lc3BhY2Ug
V2ViS2l0IHsKLQotV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpXZWJJbnNwZWN0
b3JGcm9udGVuZEFQSURpc3BhdGNoZXIoV2ViUGFnZSYgcGFnZSkKLSAgICA6IG1fcGFnZShwYWdl
KQotewotfQotCi12b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6cmVzZXQo
KQotewotICAgIG1fZnJvbnRlbmRMb2FkZWQgPSBmYWxzZTsKLSAgICBtX3N1c3BlbmRlZCA9IGZh
bHNlOwotICAgIG1fcXVldWUuY2xlYXIoKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXI6OmZyb250ZW5kTG9hZGVkKCkKLXsKLSAgICBtX2Zyb250ZW5kTG9hZGVk
ID0gdHJ1ZTsKLQotICAgIGV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKLX0KLQotdm9pZCBX
ZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OnN1c3BlbmQoKQotewotICAgIEFTU0VS
VChtX2Zyb250ZW5kTG9hZGVkKTsKLSAgICBBU1NFUlQoIW1fc3VzcGVuZGVkKTsKLSAgICBBU1NF
UlQobV9xdWV1ZS5pc0VtcHR5KCkpOwotCi0gICAgbV9zdXNwZW5kZWQgPSB0cnVlOwotfQotCi12
b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6dW5zdXNwZW5kKCkKLXsKLSAg
ICBBU1NFUlQobV9zdXNwZW5kZWQpOwotCi0gICAgbV9zdXNwZW5kZWQgPSBmYWxzZTsKLQotICAg
IGV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmQp
Ci17Ci0gICAgZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbihtYWtlU3RyaW5nKCJJbnNwZWN0b3JG
cm9udGVuZEFQSS5kaXNwYXRjaChbXCIiLCBjb21tYW5kLCAiXCJdKSIpKTsKLX0KLQotdm9pZCBX
ZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZChjb25zdCBT
dHJpbmcmIGNvbW1hbmQsIGNvbnN0IFN0cmluZyYgYXJndW1lbnQpCi17Ci0gICAgZXZhbHVhdGVP
clF1ZXVlRXhwcmVzc2lvbihtYWtlU3RyaW5nKCJJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRj
aChbXCIiLCBjb21tYW5kLCAiXCIsIFwiIiwgYXJndW1lbnQsICJcIl0pIikpOwotfQotCi12b2lk
IFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2hDb21tYW5kKGNvbnN0
IFN0cmluZyYgY29tbWFuZCwgYm9vbCBhcmd1bWVudCkKLXsKLSAgICBldmFsdWF0ZU9yUXVldWVF
eHByZXNzaW9uKG1ha2VTdHJpbmcoIkluc3BlY3RvckZyb250ZW5kQVBJLmRpc3BhdGNoKFtcIiIs
IGNvbW1hbmQsICJcIiwgIiwgYXJndW1lbnQgPyAidHJ1ZSIgOiAiZmFsc2UiLCAiXSkiKSk7Ci19
Ci0KLXZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpkaXNwYXRjaE1lc3Nh
Z2VBc3luYyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgZXZhbHVhdGVPclF1ZXVlRXhw
cmVzc2lvbihtYWtlU3RyaW5nKCJJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRjaE1lc3NhZ2VB
c3luYygiLCBtZXNzYWdlLCAiKSIpKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OmV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBleHBy
ZXNzaW9uKQotewotICAgIGlmICghbV9mcm9udGVuZExvYWRlZCB8fCBtX3N1c3BlbmRlZCkgewot
ICAgICAgICBtX3F1ZXVlLmFwcGVuZChleHByZXNzaW9uKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIEFTU0VSVChtX3F1ZXVlLmlzRW1wdHkoKSk7Ci0gICAgQVNTRVJUKCFtX3BhZ2Uu
Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkuc2NyaXB0KCkuaXNQYXVzZWQoKSk7Ci0gICAgbV9wYWdl
LmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnNjcmlwdCgpLmV4ZWN1dGVTY3JpcHRJZ25vcmluZ0V4
Y2VwdGlvbihleHByZXNzaW9uKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXI6OmV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKQotewotICAgIGlmIChtX3F1ZXVl
LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZm9yIChjb25zdCBTdHJpbmcmIGV4
cHJlc3Npb24gOiBtX3F1ZXVlKSB7Ci0gICAgICAgIEFTU0VSVCghbV9wYWdlLmNvcmVQYWdlKCkt
Pm1haW5GcmFtZSgpLnNjcmlwdCgpLmlzUGF1c2VkKCkpOwotICAgICAgICBtX3BhZ2UuY29yZVBh
Z2UoKS0+bWFpbkZyYW1lKCkuc2NyaXB0KCkuZXhlY3V0ZVNjcmlwdElnbm9yaW5nRXhjZXB0aW9u
KGV4cHJlc3Npb24pOwotICAgIH0KLQotICAgIG1fcXVldWUuY2xlYXIoKTsKLX0KLQotdm9pZCBX
ZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmV2YWx1YXRlRXhwcmVzc2lvbkZvclRl
c3RpbmcoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQotewotICAgIGV2YWx1YXRlT3JRdWV1ZUV4
cHJlc3Npb24oZXhwcmVzc2lvbik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGRiNjkwZTRhNDE2MDdhZGYxMDM0Y2I4ZTQ1YTBmYjBmNWQ2NWZkNjkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaAor
KysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQt
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJQYWdlOwotCi1jbGFzcyBX
ZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgewotcHVibGljOgotICAgIFdlYkluc3Bl
Y3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcihXZWJQYWdlJik7Ci0KLSAgICB2b2lkIHJlc2V0KCk7
Ci0gICAgdm9pZCBmcm9udGVuZExvYWRlZCgpOwotCi0gICAgdm9pZCBzdXNwZW5kKCk7Ci0gICAg
dm9pZCB1bnN1c3BlbmQoKTsKLQotICAgIHZvaWQgZGlzcGF0Y2hDb21tYW5kKGNvbnN0IFN0cmlu
ZyYgY29tbWFuZCk7Ci0gICAgdm9pZCBkaXNwYXRjaENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21t
YW5kLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50KTsKLSAgICB2b2lkIGRpc3BhdGNoQ29tbWFuZChj
b25zdCBTdHJpbmcmIGNvbW1hbmQsIGJvb2wgYXJndW1lbnQpOwotICAgIHZvaWQgZGlzcGF0Y2hN
ZXNzYWdlQXN5bmMoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLQotICAgIHZvaWQgZXZhbHVhdGVF
eHByZXNzaW9uRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmKTsKLXByaXZhdGU6Ci0gICAgdm9pZCBl
dmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgZXZhbHVh
dGVRdWV1ZWRFeHByZXNzaW9ucygpOwotCi0gICAgV2ViUGFnZSYgbV9wYWdlOwotICAgIERlcXVl
PFN0cmluZz4gbV9xdWV1ZTsKLSAgICBib29sIG1fZnJvbnRlbmRMb2FkZWQgeyBmYWxzZSB9Owot
ICAgIGJvb2wgbV9zdXNwZW5kZWQgeyBmYWxzZSB9OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yVUkuY3BwCmluZGV4IGQ3OWJmOGJjN2JkYTcwMGRkZWY2MjQwZWRkNDllYjI0ZDM0NzJh
YjQuLmIzNmZiZTMzOGY0N2IyNDRkMTIxODY3YTA0YzI3MTk2MWYxZmY3ZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3Bw
CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmVuYWJsZUZyb250ZW5kRmVh
dHVyZXMoKQogCiBXZWJJbnNwZWN0b3JVSTo6V2ViSW5zcGVjdG9yVUkoV2ViUGFnZSYgcGFnZSkK
ICAgICA6IG1fcGFnZShwYWdlKQotICAgICwgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIocGFnZSkK
KyAgICAsIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyKEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0
Y2hlcjo6Y3JlYXRlKCpwYWdlLmNvcmVQYWdlKCkpKQogICAgICwgbV9kZWJ1Z2dhYmxlSW5mbyhE
ZWJ1Z2dhYmxlSW5mb0RhdGE6OmVtcHR5KCkpCiB7CiAgICAgV2ViSW5zcGVjdG9yVUk6OmVuYWJs
ZUZyb250ZW5kRmVhdHVyZXMoKTsKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JV
STo6ZXN0YWJsaXNoQ29ubmVjdGlvbihXZWJQYWdlUHJveHlJZGVudGlmaWVyIGluc3BlY3RlZFBh
Z2VJZGUKICAgICBtX3VuZGVyVGVzdCA9IHVuZGVyVGVzdDsKICAgICBtX2luc3BlY3Rpb25MZXZl
bCA9IGluc3BlY3Rpb25MZXZlbDsKIAotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLnJlc2V0
KCk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPnJlc2V0KCk7CiAKICAgICBtX2Zyb250
ZW5kQ29udHJvbGxlciA9ICZtX3BhZ2UuY29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
OwogICAgIG1fZnJvbnRlbmRDb250cm9sbGVyLT5zZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudCh0
aGlzKTsKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIFdlYkluc3BlY3RvclVJOjp3aW5kb3dPYmpl
Y3RDbGVhcmVkKCkKIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6ZnJvbnRlbmRMb2FkZWQoKQogewot
ICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmZyb250ZW5kTG9hZGVkKCk7CisgICAgbV9mcm9u
dGVuZEFQSURpc3BhdGNoZXItPmZyb250ZW5kTG9hZGVkKCk7CiAKICAgICAvLyBUZWxsIHRoZSBu
ZXcgZnJvbnRlbmQgYWJvdXQgdGhlIGN1cnJlbnQgZG9jayBzdGF0ZS4gSWYgdGhlIHdpbmRvdyBv
YmplY3QKICAgICAvLyBjbGVhcmVkIGR1ZSB0byBhIHJlbG9hZCwgdGhlIGRvY2sgc3RhdGUgd29u
J3QgYmUgcmVzZW50IGZyb20gVUlQcm9jZXNzLgpAQCAtMjQ0LDI4ICsyNDQsMjcgQEAgdm9pZCBX
ZWJJbnNwZWN0b3JVSTo6c2V0RG9ja1NpZGUoRG9ja1NpZGUgZG9ja1NpZGUpCiAKICAgICBtX2Rv
Y2tTaWRlID0gZG9ja1NpZGU7CiAKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRj
aENvbW1hbmQoInNldERvY2tTaWRlIl9zLCBTdHJpbmcoZG9ja1NpZGVTdHJpbmcpKTsKKyAgICBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXREb2NrU2lkZSJfcywg
eyBKU09OOjpWYWx1ZTo6Y3JlYXRlKFN0cmluZyhkb2NrU2lkZVN0cmluZykpIH0pOwogfQogCiB2
b2lkIFdlYkluc3BlY3RvclVJOjpzZXREb2NraW5nVW5hdmFpbGFibGUoYm9vbCB1bmF2YWlsYWJs
ZSkKIHsKICAgICBtX2RvY2tpbmdVbmF2YWlsYWJsZSA9IHVuYXZhaWxhYmxlOwogCi0gICAgbV9m
cm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXREb2NraW5nVW5hdmFpbGFi
bGUiX3MsIHVuYXZhaWxhYmxlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0
Y2hDb21tYW5kKCJzZXREb2NraW5nVW5hdmFpbGFibGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0
ZSh1bmF2YWlsYWJsZSkgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNldElzVmlzaWJs
ZShib29sIHZpc2libGUpCiB7CiAgICAgbV9pc1Zpc2libGUgPSB2aXNpYmxlOwogCi0gICAgbV9m
cm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXRJc1Zpc2libGUiX3MsIHZp
c2libGUpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNl
dElzVmlzaWJsZSJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHZpc2libGUpIH0pOwogfQogCiB2
b2lkIFdlYkluc3BlY3RvclVJOjp1cGRhdGVGaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgZmluZFN0
cmluZykKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgSlNPTjo6VmFsdWU6OmVz
Y2FwZVN0cmluZyhidWlsZGVyLCBmaW5kU3RyaW5nKTsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0
Y2hlci5kaXNwYXRjaENvbW1hbmQoInVwZGF0ZUZpbmRTdHJpbmciX3MsIGJ1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgidXBk
YXRlRmluZFN0cmluZyJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKGJ1aWxkZXIudG9TdHJpbmco
KSkgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmNoYW5nZUF0dGFjaGVkV2luZG93SGVp
Z2h0KHVuc2lnbmVkIGhlaWdodCkKQEAgLTMyNSw3MyArMzI0LDczIEBAIHZvaWQgV2ViSW5zcGVj
dG9yVUk6OnNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKGJvb2wgYXZhaWxhYmxlKQogICAg
IEFTU0VSVCghYXZhaWxhYmxlIHx8IHN1cHBvcnRzRGlhZ25vc3RpY0xvZ2dpbmcoKSk7CiAgICAg
bV9kaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZSA9IGF2YWlsYWJsZTsKIAotICAgIG1fZnJvbnRl
bmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0RGlhZ25vc3RpY0xvZ2dpbmdBdmFp
bGFibGUiX3MsIG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUpOworICAgIG1fZnJvbnRlbmRB
UElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxh
YmxlIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUobV9kaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJs
ZSkgfSk7CiB9CiAjZW5kaWYKIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6c2hvd0NvbnNvbGUoKQog
ewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2hvd0NvbnNv
bGUiX3MpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNo
b3dDb25zb2xlIl9zKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6c2hvd1Jlc291cmNlcygp
CiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzaG93UmVz
b3VyY2VzIl9zKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5k
KCJzaG93UmVzb3VyY2VzIl9zKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6c2hvd01haW5S
ZXNvdXJjZUZvckZyYW1lKGNvbnN0IFN0cmluZyYgZnJhbWVJZGVudGlmaWVyKQogewotICAgIG1f
ZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2hvd01haW5SZXNvdXJjZUZv
ckZyYW1lIl9zLCBmcmFtZUlkZW50aWZpZXIpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVy
LT5kaXNwYXRjaENvbW1hbmQoInNob3dNYWluUmVzb3VyY2VGb3JGcmFtZSJfcywgeyBKU09OOjpW
YWx1ZTo6Y3JlYXRlKGZyYW1lSWRlbnRpZmllcikgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9y
VUk6OnN0YXJ0UGFnZVByb2ZpbGluZygpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIu
ZGlzcGF0Y2hDb21tYW5kKCJzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQiX3MsIHRydWUpOwor
ICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNldFRpbWVsaW5l
UHJvZmlsaW5nRW5hYmxlZCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHRydWUpIH0pOwogfQog
CiB2b2lkIFdlYkluc3BlY3RvclVJOjpzdG9wUGFnZVByb2ZpbGluZygpCiB7Ci0gICAgbV9mcm9u
dGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXRUaW1lbGluZVByb2ZpbGluZ0Vu
YWJsZWQiX3MsIGZhbHNlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hD
b21tYW5kKCJzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQiX3MsIHsgSlNPTjo6VmFsdWU6OmNy
ZWF0ZShmYWxzZSkgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnN0YXJ0RWxlbWVudFNl
bGVjdGlvbigpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5k
KCJzZXRFbGVtZW50U2VsZWN0aW9uRW5hYmxlZCJfcywgdHJ1ZSk7CisgICAgbV9mcm9udGVuZEFQ
SURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0RWxlbWVudFNlbGVjdGlvbkVuYWJsZWQi
X3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh0cnVlKSB9KTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0
b3JVSTo6c3RvcEVsZW1lbnRTZWxlY3Rpb24oKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRj
aGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0RWxlbWVudFNlbGVjdGlvbkVuYWJsZWQiX3MsIGZhbHNl
KTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXRFbGVt
ZW50U2VsZWN0aW9uRW5hYmxlZCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKGZhbHNlKSB9KTsK
IH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6ZGlkU2F2ZShjb25zdCBTdHJpbmcmIHVybCkKIHsK
LSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNhdmVkVVJMIl9z
LCB1cmwpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNh
dmVkVVJMIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUodXJsKSB9KTsKIH0KIAogdm9pZCBXZWJJ
bnNwZWN0b3JVSTo6ZGlkQXBwZW5kKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIG1fZnJvbnRl
bmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgiYXBwZW5kZWRUb1VSTCJfcywgdXJsKTsK
KyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJhcHBlbmRlZFRv
VVJMIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUodXJsKSB9KTsKIH0KIAogdm9pZCBXZWJJbnNw
ZWN0b3JVSTo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsK
LSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaE1lc3NhZ2VBc3luYyhtZXNzYWdl
KTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hNZXNzYWdlQXN5bmMobWVz
c2FnZSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmV2YWx1YXRlSW5Gcm9udGVuZEZvclRl
c3RpbmcoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNw
YXRjaGVyLmV2YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoZXhwcmVzc2lvbik7CisgICAgbV9m
cm9udGVuZEFQSURpc3BhdGNoZXItPmV2YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoZXhwcmVz
c2lvbik7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnBhZ2VQYXVzZWQoKQogewotICAgIG1f
ZnJvbnRlbmRBUElEaXNwYXRjaGVyLnN1c3BlbmQoKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0
Y2hlci0+c3VzcGVuZCgpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpwYWdlVW5wYXVzZWQo
KQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLnVuc3VzcGVuZCgpOworICAgIG1fZnJv
bnRlbmRBUElEaXNwYXRjaGVyLT51bnN1c3BlbmQoKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JV
STo6c2VuZE1lc3NhZ2VUb0JhY2tlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oCmluZGV4
IDAyNmE3MTJhMDg5OWQwNDU1ZjMxODVhYjc5NzZjMTQwMDVkOGViYWIuLmE2ZWU3MTMzOTM5ZWYy
YTA0YjZiODYyYjI4ZTgyMTdmZTIwZGIxZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKQEAgLTI3LDkgKzI3LDkgQEAKIAog
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJEZWJ1Z2dhYmxlSW5mb0RhdGEuaCIK
LSNpbmNsdWRlICJXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCIKICNpbmNsdWRl
ICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JE
ZWJ1Z2dhYmxlVHlwZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmg+CiAKQEAgLTE0Miw2
ICsxNDIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb0JhY2tl
bmQoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyJiBmcm9udGVuZEFQSURpc3BhdGNoZXIoKSBmaW5hbCB7IHJldHVybiBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsgfQogCiAgICAgdm9pZCBwYWdlUGF1c2VkKCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBwYWdlVW5wYXVzZWQoKSBvdmVycmlkZTsKQEAgLTE1Miw3ICsxNTMsNyBA
QCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYkluc3BlY3RvclVJKFdlYlBhZ2UmKTsKIAogICAg
IFdlYlBhZ2UmIG1fcGFnZTsKLSAgICBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIg
bV9mcm9udGVuZEFQSURpc3BhdGNoZXI7CisgICAgUmVmPFdlYkNvcmU6Okluc3BlY3RvckZyb250
ZW5kQVBJRGlzcGF0Y2hlcj4gbV9mcm9udGVuZEFQSURpc3BhdGNoZXI7CiAgICAgUmVmUHRyPFdl
YkNvcmU6Okluc3BlY3RvckZyb250ZW5kSG9zdD4gbV9mcm9udGVuZEhvc3Q7CiAKICAgICAvLyBL
ZWVwIGEgcG9pbnRlciB0byB0aGUgZnJvbnRlbmQncyBpbnNwZWN0b3IgY29udHJvbGxlciByYXRo
ZXIgdGhhbiBnb2luZyB0aHJvdWdoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2Nm
L1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCmluZGV4IDdi
ODY5ODFhM2Y0OGU1MGY4YjNjY2FjMzcwNjkxN2Q0YWYxZmRiZDYuLjE2ZGMxNDRkY2M5OGUyNTZj
MDUzMjY3ZjUyZDFkM2U0ZTQ4OTU4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
Y2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvY2YvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwCkBA
IC05Niw3ICs5Niw3IEBAIHN0YXRpYyB2b2lkIGRlbGV0ZVNldHRpbmcoY29uc3QgU3RyaW5nJiBr
ZXkpCiAKIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQogewotICAgIG1fZnJvbnRlbmRDbGllbnQtPmRpc3BhdGNoTWVz
c2FnZUFzeW5jKG1lc3NhZ2UpOworICAgIG1fZnJvbnRlbmRDbGllbnQtPmZyb250ZW5kQVBJRGlz
cGF0Y2hlcigpLmRpc3BhdGNoTWVzc2FnZUFzeW5jKG1lc3NhZ2UpOwogfQogCiBib29sIFdlYklu
c3BlY3RvckNsaWVudDo6aW5zcGVjdG9yQXR0YWNoRGlzYWJsZWQoKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFkOWE1MTBi
M2IyMmE0ZGU0ZDg3MzA0MDY4NWU3ZGFhZGI0M2JlMTIuLmY3ZDRmZTgyNzQzN2I5ZGE3ZThlNTJl
ZmZiNTA5MmU1MTNlNDM1YmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMC0xMC0yOSAgQnJp
YW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3Zl
IEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlciB0byBXZWJDb3JlLCBjbGVhbiB1cCB1c2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc4MzUK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzg0NDA3PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJh
bWUtZnVuY3Rpb24tbmFtZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9jYWxs
LWZyYW1lLXRoaXMtaG9zdC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9oaXQt
YnJlYWtwb2ludC1mcm9tLWNvbnNvbGUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1
Z2dlci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNlVVJMLmh0bWw6CisgICAgICAgIFNvbWUgdGVz
dHMgc2VlbSB0byBjYWxsIFByb3RvY29sVGVzdC5jb21wbGV0ZVRlc3QoKSBmcm9tIHRoZSBoYW5k
bGVyIG9mIERlYnVnZ2VyLnBhdXNlZCwgd2hlbgorICAgICAgICB0aGUgZGVidWdnZXIgaXMgc3Rp
bGwgcGF1c2VkLiBUaGlzIGNhdXNlcyB0aW1lb3V0cyBhZnRlciB0aGlzIHJlZmFjdG9yaW5nLCBz
aW5jZSBub3QgcmVzdW1pbmcgbWVhbnMgdGhhdAorICAgICAgICB3ZSdsbCBnZXQgc3R1Y2sgaW4g
dGhlIGRlYnVnZ2VyJ3MgbmVzdGVkIHJ1biBsb29wIGFuZCBuZXZlciByZXR1cm4uCisKIDIwMjAt
MTAtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUHJv
Y2Vzc10gVXNlIGFzeW5jIElQQyBmb3IgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIncyBT
dGFydEF1ZGlvRGVzdGluYXRpb24gLyBTdG9wQXVkaW9EZXN0aW5hdGlvbgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3Qu
anMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wt
dGVzdC5qcwppbmRleCA4MzFhNjFmNjc4NWU0NDg4YjEyZDdkZmRlZjFmZTY2ZDM3NTUxMjIyLi5m
MjBlZDliMmUzZmIzNDZjY2RmOGVmZmI1MDhhYzgzMjI5Y2Y5ODhjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcwor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wt
dGVzdC5qcwpAQCAtNjUsMTEgKzY1LDEyIEBAIFRlc3RQYWdlLmxvZyA9IHdpbmRvdy5sb2cgPSBm
dW5jdGlvbih0ZXh0KQogCiBUZXN0UGFnZS5jbG9zZVRlc3QgPSB3aW5kb3cuY2xvc2VUZXN0ID0g
ZnVuY3Rpb24oKQogewotICAgIHdpbmRvdy5pbnRlcm5hbHMuY2xvc2VEdW1teUluc3BlY3RvckZy
b250ZW5kKCk7Ci0KICAgICAvLyBUaGlzIGNvZGUgbWlnaHQgYmUgZXhlY3V0ZWQgd2hpbGUgdGhl
IGRlYnVnZ2VyIGlzIHN0aWxsIHJ1bm5pbmcgdGhyb3VnaCBhIHN0YWNrIGJhc2VkIEV2ZW50TG9v
cC4KICAgICAvLyBVc2UgYSBzZXRUaW1lb3V0IHRvIGRlZmVyIHRvIGEgY2xlYW4gc3RhY2sgYmVm
b3JlIGxldHRpbmcgdGhlIHRlc3RSdW5uZXIgbG9hZCB0aGUgbmV4dCB0ZXN0LgotICAgIHNldFRp
bWVvdXQoKCkgPT4geyB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsgfSwgMCk7CisgICAgc2V0VGlt
ZW91dCgoKSA9PiB7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuY2xvc2VEdW1teUluc3BlY3Rv
ckZyb250ZW5kKCk7CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0sIDAp
OwogfTsKIAogVGVzdFBhZ2UucnVuVGVzdCA9IHdpbmRvdy5ydW5UZXN0ID0gZnVuY3Rpb24oKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZh
bC13aXRoLWV4Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlvbi5odG1sCmluZGV4IDczNDhjMzU2MzVhYmI3YzUy
ZjAxMGNlODFhNGExZDhjMDdlOGFhMzcuLmE3MDY1MjZlOTMyNGVlMjM2MjVkZWMyZTA4OThhY2Uw
ZjZmYWJiODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVh
a3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvYnJlYWtwb2ludC1ldmFsLXdpdGgtZXhjZXB0aW9uLmh0bWwKQEAgLTUsNiAr
NSw4IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gdGVzdCgpCiB7CisgICAgUHJvdG9jb2xUZXN0LmRl
YnVnKCk7CisKICAgICBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNj
cmlwdFBhcnNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CiAgICAgICAgIGlm
ICgvcmVzb3VyY2VzXC9icmVha3BvaW50XC5qcyQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMu
dXJsKSkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwt
ZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1sCmluZGV4IGU3ZTk3ZTgxMjNlZDFkNWIyYTU4
ZjYwMjBmM2M5MzBlMmU4YjllZDQuLjY3ZTA5NDJlN2EyMmIzYjE3ZjQwMTYyMThlYThlZGZiZTUx
NjhkMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZy
YW1lLWZ1bmN0aW9uLW5hbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1lLmh0bWwKQEAgLTMyLDYgKzMyLDggQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgSW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5w
YXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgewogICAgICAgICBQcm90b2Nv
bFRlc3QubG9nKCJIaXQgQnJlYWtwb2ludCEiKTsKKyAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wu
c2VuZENvbW1hbmQoIkRlYnVnZ2VyLmRpc2FibGUiKTsKKwogICAgICAgICB2YXIgZnVuY3Rpb25O
YW1lcyA9IFsgXTsKICAgICAgICAgdmFyIGk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAzOyBp
KyspCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFt
ZS10aGlzLWhvc3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZy
YW1lLXRoaXMtaG9zdC5odG1sCmluZGV4IDRmNzE4NTI5NDBiMzhkNzM2Y2ZhZTA4YzRmZTkwZWI0
ODlhMzY1NzguLmU3M2Y4ODg2MmFlNDZjZDJkYTViMzgzMDdhOWU4NDgyNjIyYzdjN2UgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9z
dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRo
aXMtaG9zdC5odG1sCkBAIC0zMiw2ICszMiw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIEluc3Bl
Y3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbiht
ZXNzYWdlT2JqZWN0KQogICAgIHsKICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiSGl0IEJyZWFr
cG9pbnQhIik7CisgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dl
ci5kaXNhYmxlIik7CisKICAgICAgICAgdmFyIHRoaXNWYWx1ZXMgPSBbIF07CiAgICAgICAgIHZh
ciBpOwogICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2hpdC1icmVha3BvaW50LWZyb20tY29uc29sZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2hpdC1icmVha3BvaW50LWZyb20tY29u
c29sZS5odG1sCmluZGV4IDUyMWM5ZTQxNzllODIwZjNlYmJkYjhlNWUzNmQ4ZmFlOTE4NmM3YTcu
LjE1NDYyYTQ3MGQyNzlmNjM4ZjJjMGE4ZWRmMWNjM2I1ZTY0M2QzMmUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9oaXQtYnJlYWtwb2ludC1mcm9tLWNvbnNvbGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvaGl0LWJyZWFrcG9pbnQt
ZnJvbS1jb25zb2xlLmh0bWwKQEAgLTMwLDYgKzMwLDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAg
SW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0
aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgewogICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJIaXQg
QnJlYWtwb2ludCEiKTsKKyAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRl
YnVnZ2VyLmRpc2FibGUiKTsKKwogICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJQQVNTIik7CiAg
ICAgICAgIFByb3RvY29sVGVzdC5jb21wbGV0ZVRlc3QoKTsKICAgICB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9D
b250aW51ZS5odG1sCmluZGV4IDFmZWQ2N2M0NmZkNWI5NDIzOTg2MTk5MzliMDRhMDcwMGNmZjU5
NTIuLjBmNWEzMTU0YjM3MTM3Zjc5ZTQ2NmQ5N2I0MDM0NjM4Zjg2M2I3NTQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWF1dG9Db250aW51ZS5odG1sCkBAIC00NCw2ICs0NCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
IEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5j
dGlvbihtZXNzYWdlT2JqZWN0KQogICAgIHsKICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiSGl0
IEJyZWFrcG9pbnQhIik7CisgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJE
ZWJ1Z2dlci5kaXNhYmxlIik7CiAKICAgICAgICAgaWYgKCFhbGxvd2VkVG9IaXRCcmVha3BvaW50
KSB7CiAgICAgICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJGQUlMOiBzaG91bGQgbm90IGhhdmUg
aGl0IGJyZWFrcG9pbnQuIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sCmluZGV4IGZiNjM1MzEyMjk4ZDZmYTY5
NDk1ZTExMmFhMWUzOGEzNjllNmJjZDQuLjc4NjkyZmRhMDBjZDc0NjEzZTIxN2Y3YmYxNWViYWI5
NDI4ZTliNmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRC
cmVha3BvaW50LWNvbHVtbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sCkBAIC0zNyw2ICszNyw4IEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRXZhbHV0ZWQgdmFsdWUgb2YgYGFg
IChleHBlY3RpbmcgbnVtYmVyIDEpIHdhczogIiArIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2VPYmpl
Y3QucmVzdWx0LnJlc3VsdCkpOwogICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENv
bW1hbmQoIkRlYnVnZ2VyLmV2YWx1YXRlT25DYWxsRnJhbWUiLCB7Y2FsbEZyYW1lSWQ6IGNhbGxG
cmFtZUlkZW50aWZpZXIsIGV4cHJlc3Npb246ICJiIn0sIGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3Qp
IHsKICAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJFdmFsdXRlZCB2YWx1ZSBvZiBg
YmAgKGV4cGVjdGluZyB1bmRlZmluZWQpIHdhczogIiArIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2VP
YmplY3QucmVzdWx0LnJlc3VsdCkpOworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9j
b2wuc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmRpc2FibGUiKTsKICAgICAgICAgICAgICAgICBQcm90
b2NvbFRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1j
b25kaXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50LWNvbmRpdGlvbi5odG1sCmluZGV4IGMyYTcyOTU2YTNlNTI3ZDIyZDQxYmI4MDQwODQ5ZGUw
NzBhMDBlMTkuLmZhNmJlYzI2MzgxYWZlNDhlZmNkNDVmZmIzODY1NWE4YzdmZDMxOWIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRp
dGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50LWNvbmRpdGlvbi5odG1sCkBAIC0zLDYgKzMsMTIgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JyZWFrcG9pbnQuanMiPjwvc2NyaXB0PgogPHNjcmlw
dD4KK2Z1bmN0aW9uIGRpc2FibGVEZWJ1Z2dlckFuZENvbXBsZXRlVGVzdCgpCit7CisgICAgSW5z
cGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKKyAgICBQ
cm90b2NvbFRlc3QuY29tcGxldGVUZXN0KCk7Cit9CisKIGZ1bmN0aW9uIHRlc3QoKQogewogICAg
IEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7CkBA
IC00OSwxMiArNTUsMTIgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmV2YWx1YXRlT25DYWxsRnJhbWUiLCB7
Y2FsbEZyYW1lSWQ6IGNhbGxGcmFtZUlkZW50aWZpZXIsIGV4cHJlc3Npb246ICJiIn0sIGZ1bmN0
aW9uKG1lc3NhZ2VPYmplY3QpIHsKICAgICAgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0Lmxv
ZygiRXZhbHV0ZWQgdmFsdWUgb2YgYGJgIChleHBlY3RpbmcgbnVtYmVyIDcpIHdhczogIiArIEpT
T04uc3RyaW5naWZ5KG1lc3NhZ2VPYmplY3QucmVzdWx0LnJlc3VsdCkpOwogICAgICAgICAgICAg
ICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJQQVNTOiBoaXQgYnJlYWtwb2ludHMgd2l0aCBleHBl
Y3RlZCB2YWx1ZXMiKTsKLSAgICAgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmNvbXBsZXRl
VGVzdCgpOworICAgICAgICAgICAgICAgICAgICBkaXNhYmxlRGVidWdnZXJBbmRDb21wbGV0ZVRl
c3QoKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogaGl0IHRvbyBtYW55IGJy
ZWFrcG9pbnRzLiIpOwotICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmNvbXBsZXRlVGVzdCgpOwor
ICAgICAgICAgICAgZGlzYWJsZURlYnVnZ2VyQW5kQ29tcGxldGVUZXN0KCk7CiAgICAgICAgIH0K
ICAgICB9CiAKQEAgLTY5LDcgKzc1LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIGlmICghaW5CcmVha3BvaW50
KSB7CiAgICAgICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IERpZCBub3Qg
aGl0IGNvbmRpdGlvbmFsIGJyZWFrcG9pbnQgdGhlIHNlY29uZCB0aW1lIik7Ci0gICAgICAgICAg
ICAgICAgICAgIFByb3RvY29sVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgICAgICAg
ICAgZGlzYWJsZURlYnVnZ2VyQW5kQ29tcGxldGVUZXN0KCk7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfSwgMTAwKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQuaHRtbAppbmRleCBhYzNkYmI2NzViYTkxNzA1
NTA0NjdlZTY1OGNmYzYwMTlkN2M3MjM0Li43MDM0OGE5ZDY3YWMxMTk2YzFmOGMwNDNmZmM1OTQ3
NTM5MDBjNmIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0
QnJlYWtwb2ludC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRC
cmVha3BvaW50Lmh0bWwKQEAgLTMzLDYgKzMzLDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgSW5z
cGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9u
KG1lc3NhZ2VPYmplY3QpCiAgICAgewogICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJIaXQgQnJl
YWtwb2ludCEiKTsKKyAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLmRpc2FibGUiKTsKKwogICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJQQVNTIik7CiAgICAg
ICAgIFByb3RvY29sVGVzdC5jb21wbGV0ZVRlc3QoKTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1z
b3VyY2VVUkwuaHRtbAppbmRleCBmN2E5ZWFmMzNjYTQ3ZGM2N2M2OWFiMDU2MWFmNjFiNzdiYWUx
YWNhLi41NzM0MzZiZTU5NzE5YWViNWJiNzQxZmQ4OWNjZTBlNWQxZjEzOWQ3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJj
ZVVSTC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50QnlVcmwtc291cmNlVVJMLmh0bWwKQEAgLTMyLDYgKzMyLDggQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJFdmFsdXRlZCB2YWx1ZSBvZiBgYWAgKGV4
cGVjdGluZyBudW1iZXIgMSkgd2FzOiAiICsgSlNPTi5zdHJpbmdpZnkobWVzc2FnZU9iamVjdC5y
ZXN1bHQucmVzdWx0KSk7CiAgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFu
ZCgiRGVidWdnZXIuZXZhbHVhdGVPbkNhbGxGcmFtZSIsIHtjYWxsRnJhbWVJZDogY2FsbEZyYW1l
SWRlbnRpZmllciwgZXhwcmVzc2lvbjogImMifSwgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgewog
ICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIkV2YWx1dGVkIHZhbHVlIG9mIGBjYCAo
ZXhwZWN0aW5nIHVuZGVmaW5lZCkgd2FzOiAiICsgSlNPTi5zdHJpbmdpZnkobWVzc2FnZU9iamVj
dC5yZXN1bHQucmVzdWx0KSk7CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5z
ZW5kQ29tbWFuZCgiRGVidWdnZXIuZGlzYWJsZSIpOwogICAgICAgICAgICAgICAgIFByb3RvY29s
VGVzdC5jb21wbGV0ZVRlc3QoKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412716</attachid>
            <date>2020-10-29 23:12:31 -0700</date>
            <delta_ts>2020-10-30 10:03:29 -0700</delta_ts>
            <desc>Patch v2.3 - for EWS</desc>
            <filename>bug-217835-20201029231230.patch</filename>
            <type>text/plain</type>
            <size>74633</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI2OWI0YzJlYzgyOTE2
NzA1NGU2ZmMzMWVlN2I1NDU5ZDQ3NDRhMi4uYWFiMzRkOGZlMTZmZDM5NWZmOTNkYzYwM2NmOGUz
NDQ2NmEyMjAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIwLTEwLTE2ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUg
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIHRvIFdlYkNvcmUsIGNsZWFuIHVwIHVzZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgzNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzODQ0MDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGV2aW4gUm91c3NvLgorCisgICAgICAgIEV4cG9zZSB0aGUgZGlzcGF0Y2hlciBhcyBwYXJ0IG9m
IHRoZSBJbnNwZWN0b3JGcm9udGVuZENsaWVudCBBUEkgc28gdGhhdCBvdGhlciBjb2RlCisgICAg
ICAgIGNhbiB1c2UgdGhlIGRpc3BhdGNoZXIgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0J3MgYSBX
ZWJJbnNwZWN0b3JVSSBvciBSZW1vdGVXZWJJbnNwZWN0b3JVSS4KKworICAgICAgICBBZGQgYW4g
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIGluc3RhbmNlIGFuZCBnZXR0ZXIgdG8gSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC4KKworICAgICAgICBBZG9wdCB0aGUgSlNPTlZhbHVl
LWJhc2VkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2goKSBtZXRob2QK
KyAgICAgICAgaW4gSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC4gUmVtb3ZlIHRoZSByZWR1
bmRhbnQgcGFyYWxsZWwgcXVldWluZyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgUmVtb3ZlIHJl
ZHVuZGFudCBwdWJsaWMgbWV0aG9kcyB0aGF0IGFyZSBhdmFpbGFibGUgb24gSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBNb3ZlZCBmaWxlcy4K
KworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpyZXNl
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmZy
b250ZW5kTG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcjo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OnVuc3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoTWVzc2FnZUFzeW5jKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVP
clF1ZXVlRXhwcmVzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OmV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZUV4cHJlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0
ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKToKKyAgICAgICAgQWRkIG5ldyBkaXNwYXRjaCgpIG1ldGhv
ZC4gUmVtb3ZlIG90aGVyIGRpc3BhdGNoIG1ldGhvZHMgdGhhdCBjYW4gYmUgZXhwcmVzc2VkCisg
ICAgICAgIHVzaW5nIHRoZSBuZXcgSlNPTjo6VmFsdWUtYmFzZWQgbWV0aG9kLiBJZiBpdCdzIG5v
dCBwb3NzaWJsZSB0byBldmFsdWF0ZSBKUworICAgICAgICBpbW1lZGlhdGVseSwgc2NoZWR1bGUg
YSBvbmUtc2hvdCB0YXNrIHRvIHRyeSBhZ2FpbiBvbiBhIGRpZmZlcmVudCBldmVudCBsb29wIHR1
cm4uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oLgorICAgICAgICBBZGQgbmV3IGRpc3BhdGNo
KCkgbWV0aG9kIHdoaWNoIHRha2VzIGEgdmVjdG9yIG9mIEpTT046OlZhbHVlIG9iamVjdHMgYW5k
CisgICAgICAgIHNlcmlhbGl6ZXMgdGhlbSBpbnRvIGNvbW1hbmQgYXJndW1lbnRzIGZvciB0aGUg
ZnJvbnRlbmQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Okluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbDo6ZnJvbnRlbmRMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6cGFnZVBhdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpwYWdlVW5wYXVzZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RG9ja2luZ1VuYXZhaWxhYmxlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldEF0dGFj
aGVkV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9j
YWw6OnNldERlYnVnZ2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDo6c2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnN0YXJ0UHJvZmlsaW5nSmF2
YVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
OjpzdG9wUHJvZmlsaW5nSmF2YVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsOjpzaG93Q29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzaG93UmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNob3dNYWluUmVzb3VyY2VGb3JGcmFt
ZSk6CisgICAgICAgIFVzZSBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgdG8gZGlzcGF0
Y2ggY29tbWFuZHMgdG8gdGhlIGZyb250ZW5kLgorCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaE1lc3NhZ2UpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZGlz
cGF0Y2hNZXNzYWdlQXN5bmMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6ZXZhbHVhdGVPbkxvYWQpOiBEZWxldGVkLgorICAgICAgICBU
aGVzZSBhcmUgcmVkdW5kYW50IHdpdGggSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLgor
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yU3R1YkZyb250ZW5kOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOiBVc2UgZnJvbnRlbmQg
ZGlzcGF0Y2hlciBkaXJlY3RseS4KKwogMjAyMC0xMC0yOSAgQWRpdHlhIEtlZXJ0aGkgIDxha2Vl
cnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBSZW1vdmUgc29mdCBsaW5raW5nIG9m
IE5ldHdvcmtFeHRlbnNpb24uZnJhbWV3b3JrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc2NDUzZDgxYjNmZWQzOTNl
NjBmZmQ3ZmQ2ZTc0NzZhYjcwYjYyNzYuLmQ5ODQ4YmE4ZmMyYzU0ODJiNWE2OTdhNDA4ZDU5M2Fm
YmVlMmRhNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMTAtMjEgIEJyaWFuIEJ1
cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgdG8gV2ViQ29yZSwgY2xlYW4gdXAgdXNlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3ODM1CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MDM4NDQwNz4KKworICAgICAgICBSZXZpZXdlZCBieSBEZXZp
biBSb3Vzc28uCisKKyAgICAgICAgQWRvcHQgdGhlIEpTT05WYWx1ZS1iYXNlZCBJbnNwZWN0b3JG
cm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoKCkgbWV0aG9kCisgICAgICAgIGluIFdlYklu
c3BlY3RvclVJIGFuZCBSZW1vdGVJbnNwZWN0b3JVSSBtZXRob2RzIHRoYXQgZGlzcGF0Y2ggdG8g
dGhlIGZyb250ZW5kLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IE1vdmUgZmlsZXMuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OlJlbW90ZVdlYkluc3BlY3RvclVJKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmluaXRpYWxpemUpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6dXBkYXRlRmluZFN0cmluZyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpkaWRTYXZlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmRpZEFwcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVdlYkluc3BlY3RvclVJOjpmcm9udGVuZExvYWRlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVdlYkluc3BlY3RvclVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6cGFnZVBhdXNlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVdlYkluc3BlY3RvclVJOjpwYWdlVW5wYXVzZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVXZWJJbnNwZWN0b3JVSTo6c2V0RGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUpOgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkluc3BlY3RvclVJOjpXZWJJbnNwZWN0b3JVSSk6CisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvclVJOjpzZXREb2NrU2lkZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJ
OjpzZXREb2NraW5nVW5hdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JV
STo6c2V0SXNWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnVwZGF0
ZUZpbmRTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2V0RGlhZ25v
c3RpY0xvZ2dpbmdBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6
c2hvd0NvbnNvbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2hvd1Jlc291
cmNlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzaG93TWFpblJlc291cmNl
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c3RhcnRQYWdlUHJv
ZmlsaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnN0b3BQYWdlUHJvZmls
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnN0YXJ0RWxlbWVudFNlbGVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzdG9wRWxlbWVudFNlbGVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpkaWRTYXZlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OmRpZEFwcGVuZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkluc3BlY3RvclVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJJbnNwZWN0b3JVSTo6ZXZhbHVhdGVJbkZyb250ZW5kRm9yVGVzdGluZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpwYWdlUGF1c2VkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yVUk6OnBhZ2VVbnBhdXNlZCk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIEFkZCBtaXNzaW5nIGhl
YWRlciBpbmNsdWRlcyAocmVsYXRlZCB0byB1bmlmaWVkIHNvdXJjZXMgY2hhbmdlcyBmcm9tIHIy
NjkxNjgpLgorCiAyMDIwLTEwLTI5ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNv
bT4KIAogICAgICAgICBbQ29jb2FdIFJlbW92ZSBzb2Z0IGxpbmtpbmcgb2YgTmV0d29ya0V4dGVu
c2lvbi5mcmFtZXdvcmsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvY2YvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9jZi9DaGFuZ2VMb2cKaW5kZXggMDZlNzk2MGVmZjZl
YzA2NjE0YWVkZWRkYTNkZTBiYTc3MTI0YTEzMC4uZWU3NGUxNjQ4NjYxM2Q1NTNmYThiYTgwMDk0
MjQ5MzJhYzliODFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9jZi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9jZi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAyMC0xMC0xNiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBtb3ZlIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlciB0byBXZWJD
b3JlLCBjbGVhbiB1cCB1c2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTc4MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzg0NDA3PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcDoKKyAgICAgICAgKFdlYkluc3BlY3RvckNsaWVu
dDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKToKKwogMjAxOS0wOC0xOCAgWXVzdWtlIFN1enVraSAg
PHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtXVEZdIEFkZCBtYWtlVW5pcXVlPFQ+LCB3
aGljaCBlbnN1cmVzIFQgaXMgZmFzdC1hbGxvY2F0ZWQsIG1ha2VVbmlxdWUgLyBtYWtlVW5pcXVl
V2l0aG91dEZhc3RNYWxsb2NDaGVjayBwYXJ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA2ODg0ZDBm
ODZkMjlkYzE0OTE2NjExN2JhNWM5NjRkMTBiMzNiZGRmLi5lNzEwNThlYTg3MDFmYTU2N2YwZmM5
N2EyZjA1MWJjMmFiYzEwNWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTY5Niw2ICs2OTYsNyBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgaW5zcGVjdG9yL0lu
c3BlY3RvckNsaWVudC5oCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAogICAg
IGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZS5oCisgICAgaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kQ2xpZW50LmgKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5o
CiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4
IDc2YmFmMDkxNzBhODg4MWM5ODlkZDQwZTM1YTJiNzU0OTY0YzA0Y2EuLjYzNzcxYjA0MDU4N2E5
NDg1ZjQ0NjA4ZjhjMTI4M2VmNzZjNjE1ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNDA0LDYgKzE0
MDQsNyBAQCBpbnNwZWN0b3IvSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuY3BwCiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmNwcAogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCiBpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAKK2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwCiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC5jcHAKIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3Bw
CiBpbnNwZWN0b3IvSW5zcGVjdG9ySGlzdG9yeS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ZGU5NWE3YTI2OTg4M2Q1MmM2
Yjk3OGY3YmE1YzRkMWJkMTBlMDBjLi4xZTQ4ZDNlN2M3ZjkyMjEwNTIyZjJlNGJhNmUzNDM5YWNj
YzY1MWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0yOTc5LDYgKzI5NzksNyBAQAogCQk5OENFNDMyQTEyOUUwMEU1MDA1ODIx
REMgLyogTGlua0xvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOThDRTQzMjkxMjlFMDBFNTAwNTgyMURDIC8qIExpbmtMb2FkZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5OEVCMUY5NTEzMTNG
RTA1MDBEMEUxRUEgLyogTm90SW1wbGVtZW50ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk4RUIxRjk0MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBs
ZW1lbnRlZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTk5MjAzOTgzMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MjAzOTgxMThCOTVCQzYw
MEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk5OTRDNjAzQTI1M0EyNzczMDBCREYwNjAgLyogSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5OTRDNjAzNzI1M0EyNzcyMDBCREYwNjAgLyogSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTk2RTU5REYxREYwMTI4RDAwNjYxMkI5IC8qIE5hdmlnYXRvcldlYkRy
aXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk2
RTU5REMxREYwMEQ5MDAwNjYxMkI5IC8qIE5hdmlnYXRvcldlYkRyaXZlci5oICovOyB9OwogCQk5
OUQxQjJEMzIzQUMxNDMxMDA4MTFDRjAgLyogSW5zcGVjdG9yRGVidWdnYWJsZVR5cGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RDFCMkQxMjNBQzE0
MzAwMDgxMUNGMCAvKiBJbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlBNTI4RTg0MTdEN0Y1MkYwMEFBOTUx
OCAvKiBGbG9hdGluZ09iamVjdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlBNTI4RTgyMTdEN0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE3
NjIsNiArMTE3NjMsOCBAQAogCQk5OTA4QjBGRjFCQ0FEMDdEMDBFRDM1NzIgLyogUmVhZGFibGVT
dHJlYW1CWU9CUmVhZGVyQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gUmVhZGFibGVTdHJlYW1CWU9CUmVhZGVyQnVpbHRpbnMuaDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvUmVhZGFibGVTdHJlYW1CWU9CUmVhZGVyQnVpbHRpbnMuaDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJOTkyMDM5ODAxOEI5NUJDNjAwQjM5QUY5IC8q
IFVzZXJJbnB1dEJyaWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBVc2VySW5wdXRCcmlkZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTIw
Mzk4MTE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklucHV0QnJpZGdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJJbnB1dEJyaWRnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5OTRDNjAzNzI1M0EyNzcyMDBCREYwNjAgLyogSW5zcGVjdG9yRnJvbnRlbmRB
UElEaXNwYXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rv
ckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
OTRDNjAzOTI1M0EyNzczMDBCREYwNjAgLyogSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckZyb250
ZW5kQVBJRGlzcGF0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5NkU1
OURCMURGMDBEOTAwMDY2MTJCOSAvKiBOYXZpZ2F0b3JXZWJEcml2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdG9yV2ViRHJpdmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk2RTU5REMxREYwMEQ5MDAwNjYxMkI5IC8qIE5hdmln
YXRvcldlYkRyaXZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXZpZ2F0
b3JXZWJEcml2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk2RTU5REQxREYw
MEQ5MDAwNjYxMkI5IC8qIE5hdmlnYXRvcitXZWJEcml2ZXIuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9ICJOYXZpZ2F0b3IrV2ViRHJpdmVyLmlkbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xODQxMCw2ICsxODQxMyw4IEBACiAJCQkJNDFGMDYyMTMwRjVGMTkyNjAwQTA3RUFD
IC8qIEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwICovLAogCQkJCTQxRjA2MjEyMEY1RjE5
MjYwMEEwN0VBQyAvKiBJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmggKi8sCiAJCQkJOTlEMUIy
RDEyM0FDMTQzMDAwODExQ0YwIC8qIEluc3BlY3RvckRlYnVnZ2FibGVUeXBlLmggKi8sCisJCQkJ
OTk0QzYwMzkyNTNBMjc3MzAwQkRGMDYwIC8qIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
ci5jcHAgKi8sCisJCQkJOTk0QzYwMzcyNTNBMjc3MjAwQkRGMDYwIC8qIEluc3BlY3RvckZyb250
ZW5kQVBJRGlzcGF0Y2hlci5oICovLAogCQkJCUYzNDRDNzEyMTEyNUI4MkMwMEYyNkVFRSAvKiBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudC5oICovLAogCQkJCUYzNDRDNzU3MTEyOTRGRjYwMEYyNkVF
RSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCAqLywKIAkJCQlGMzQ0Qzc1MjEx
Mjk0RDlEMDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oICovLApAQCAt
MzIxNjQsNiArMzIxNjksNyBAQAogCQkJCUE1QjgxQ0FCMUZBQTQ0NjIwMDM3RDFFNiAvKiBJbnNw
ZWN0b3JET01BZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQUMxRkFBNDQ2MjAwMzdE
MUU2IC8qIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
QjgxQ0FEMUZBQTQ0NjIwMDM3RDFFNiAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTk5NEM2MDNBMjUzQTI3NzMwMEJERjA2MCAvKiBJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzNDRDNzE0MTEyNUI4MkMw
MEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RjM0NEM3NTMxMTI5NEQ5RDAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCTdBMEU3NzBGMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0
b3JGcm9udGVuZEhvc3QuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45Y2QzMzQxODE3MTcwN2FiMWNiZWI5ZmExMmI3ZmMzMDQwNmJlYWFiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5jcHAKQEAgLTAsMCArMSwyMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIu
aCIKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNj
cmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTY3JpcHREaXNhbGxvd2VkU2NvcGUuaCIKKyNp
bmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GcmFtZVRyYWNlcnMuaD4KKworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3VzaW5nIEV2YWx1YXRpb25FcnJvciA9IEluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcjo6RXZhbHVhdGlvbkVycm9yOwordXNpbmcgRXZhbHVhdGlvblJlc3VsdEhhbmRsZXIg
PSBDb21wbGV0aW9uSGFuZGxlcjxFeHBlY3RlZDxKU0M6OkpTVmFsdWUsIEV2YWx1YXRpb25FcnJv
cj4+OworCitJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6Okluc3BlY3RvckZyb250ZW5k
QVBJRGlzcGF0Y2hlcihQYWdlJiBmcm9udGVuZFBhZ2UpCisgICAgOiBtX2Zyb250ZW5kUGFnZSht
YWtlV2Vha1B0cihmcm9udGVuZFBhZ2UpKQoreworfQorCitJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXI6On5JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIoKQoreworICAgIGludmFs
aWRhdGVRdWV1ZWRFeHByZXNzaW9ucygpOworfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlcjo6cmVzZXQoKQoreworICAgIG1fZnJvbnRlbmRMb2FkZWQgPSBmYWxzZTsKKyAg
ICBtX3N1c3BlbmRlZCA9IGZhbHNlOworCisgICAgaW52YWxpZGF0ZVF1ZXVlZEV4cHJlc3Npb25z
KCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpmcm9udGVuZExv
YWRlZCgpCit7CisgICAgQVNTRVJUKG1fZnJvbnRlbmRQYWdlKTsKKyAgICBtX2Zyb250ZW5kTG9h
ZGVkID0gdHJ1ZTsKKworICAgIGV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKK30KKwordm9p
ZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OnN1c3BlbmQoVW5zdXNwZW5kU29vbiB1
bnN1c3BlbmRTb29uKQoreworICAgIEFTU0VSVChtX2Zyb250ZW5kTG9hZGVkKTsKKworICAgIGlm
IChtX3N1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zdXNwZW5kZWQgPSB0cnVl
OworCisgICAgaWYgKHVuc3VzcGVuZFNvb24gPT0gVW5zdXNwZW5kU29vbjo6WWVzKSB7CisgICAg
ICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpXSB7CisgICAgICAgICAgICAvLyBJZiB0aGUgZnJvbnRlbmQgcGFnZSBoYXMgYmVlbiBkZWFs
bG9jYXRlZCwgdGhlcmUncyBub3RoaW5nIHRvIGRvLgorICAgICAgICAgICAgaWYgKCFwcm90ZWN0
ZWRUaGlzLT5tX2Zyb250ZW5kUGFnZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+aXNTdXNwZW5kZWQoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPnVuc3VzcGVuZCgpOworICAg
ICAgICB9KTsKKyAgICB9Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
Ojp1bnN1c3BlbmQoKQoreworICAgIGlmICghbV9zdXNwZW5kZWQpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fc3VzcGVuZGVkID0gZmFsc2U7CisKKyAgICBldmFsdWF0ZVF1ZXVlZEV4cHJlc3Np
b25zKCk7Cit9CisKK0pTR2xvYmFsT2JqZWN0KiBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNo
ZXI6OmZyb250ZW5kR2xvYmFsT2JqZWN0KCkKK3sKKyAgICBpZiAoIW1fZnJvbnRlbmRQYWdlKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAKKyAgICByZXR1cm4gbV9mcm9udGVuZFBhZ2Ut
Pm1haW5GcmFtZSgpLnNjcmlwdCgpLmdsb2JhbE9iamVjdChtYWluVGhyZWFkTm9ybWFsV29ybGQo
KSk7Cit9CisKK3N0YXRpYyBTdHJpbmcgZXhwcmVzc2lvbkZvckV2YWx1YXRpbmdDb21tYW5kKGNv
bnN0IFN0cmluZyYgY29tbWFuZCwgVmVjdG9yPFJlZjxKU09OOjpWYWx1ZT4+JiYgYXJndW1lbnRz
KQoreworICAgIFN0cmluZ0J1aWxkZXIgZXhwcmVzc2lvbjsKKyAgICBleHByZXNzaW9uLmFwcGVu
ZExpdGVyYWwoIkluc3BlY3RvckZyb250ZW5kQVBJLmRpc3BhdGNoKFtcIiIpOworICAgIGV4cHJl
c3Npb24uYXBwZW5kKGNvbW1hbmQpOworICAgIGV4cHJlc3Npb24uYXBwZW5kKCciJyk7CisKKyAg
ICBmb3IgKGF1dG8mIGFyZ3VtZW50IDogYXJndW1lbnRzKSB7CisgICAgICAgIGV4cHJlc3Npb24u
YXBwZW5kTGl0ZXJhbCgiLCAiKTsKKyAgICAgICAgYXJndW1lbnQtPndyaXRlSlNPTihleHByZXNz
aW9uKTsKKyAgICB9CisKKyAgICBleHByZXNzaW9uLmFwcGVuZCgnXScpOworICAgIGV4cHJlc3Np
b24uYXBwZW5kKCcpJyk7CisgICAgcmV0dXJuIGV4cHJlc3Npb24udG9TdHJpbmcoKTsKK30KKwor
dm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZChjb25z
dCBTdHJpbmcmIGNvbW1hbmQsIFZlY3RvcjxSZWY8SlNPTjo6VmFsdWU+PiYmIGFyZ3VtZW50cykK
K3sKKyAgICBldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKGV4cHJlc3Npb25Gb3JFdmFsdWF0aW5n
Q29tbWFuZChjb21tYW5kLCBXVEZNb3ZlKGFyZ3VtZW50cykpLCBXVEY6Om51bGxvcHQpOworfQor
CitJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OkV2YWx1YXRpb25SZXN1bHQgSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpkaXNwYXRjaENvbW1hbmRTeW5jKGNvbnN0IFN0cmlu
ZyYgY29tbWFuZCwgVmVjdG9yPFJlZjxKU09OOjpWYWx1ZT4+JiYgYXJndW1lbnRzKQoreworICAg
IGlmIChtX3N1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEV2YWx1YXRp
b25FcnJvcjo6RXhlY3V0aW9uU3VzcGVuZGVkKTsKKworICAgIHJldHVybiBldmFsdWF0ZUV4cHJl
c3Npb24oZXhwcmVzc2lvbkZvckV2YWx1YXRpbmdDb21tYW5kKGNvbW1hbmQsIFdURk1vdmUoYXJn
dW1lbnRzKSkpOworfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlz
cGF0Y2hDb21tYW5kV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIGNvbW1hbmQsIFZlY3RvcjxSZWY8
SlNPTjo6VmFsdWU+PiYmIGFyZ3VtZW50cywgRXZhbHVhdGlvblJlc3VsdEhhbmRsZXImJiByZXN1
bHRIYW5kbGVyKQoreworICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24oZXhwcmVzc2lvbkZv
ckV2YWx1YXRpbmdDb21tYW5kKGNvbW1hbmQsIFdURk1vdmUoYXJndW1lbnRzKSksIE9wdGlvbmFs
KFdURk1vdmUocmVzdWx0SGFuZGxlcikpKTsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OmRpc3BhdGNoTWVzc2FnZUFzeW5jKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
K3sKKyAgICBldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKG1ha2VTdHJpbmcoIkluc3BlY3RvckZy
b250ZW5kQVBJLmRpc3BhdGNoTWVzc2FnZUFzeW5jKCIsIG1lc3NhZ2UsICIpIikpOworfQorCit2
b2lkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVPclF1ZXVlRXhwcmVz
c2lvbihjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIE9wdGlvbmFsPEV2YWx1YXRpb25SZXN1bHRI
YW5kbGVyPiYmIG9wdGlvbmFsUmVzdWx0SGFuZGxlcikKK3sKKyAgICAvLyBJZiB0aGUgZnJvbnRl
bmQgcGFnZSBoYXMgYmVlbiBkZWFsbG9jYXRlZCwgdGhlbiB0aGVyZSBpcyBub3RoaW5nIHRvIGRv
LgorICAgIGlmICghbV9mcm9udGVuZFBhZ2UpIHsKKyAgICAgICAgaWYgKG9wdGlvbmFsUmVzdWx0
SGFuZGxlcikKKyAgICAgICAgICAgICgqb3B0aW9uYWxSZXN1bHRIYW5kbGVyKShtYWtlVW5leHBl
Y3RlZChFdmFsdWF0aW9uRXJyb3I6OkNvbnRleHREZXN0cm95ZWQpKTsKKworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgLy8gU29tZXRpbWVzIHdlIGdldCBoZXJlIGJ5IHNlbmRpbmcgbWVz
c2FnZXMgZm9yIGV2ZW50cyB0cmlnZ2VyZWQgYnkgRE9NIG11dGF0aW9ucyBlYXJsaWVyIGluIHRo
ZSBjYWxsIHN0YWNrLgorICAgIC8vIElmIHRoaXMgaXMgdGhlIGNhc2UsIHRoZW4gaXQncyBub3Qg
c2FmZSB0byBldmFsdWF0ZSBzY3JpcHQgc3luY2hyb25vdXNseSwgc28gZG8gaXQgbGF0ZXIuIFRo
aXMgb25seSBhZmZlY3RzCisgICAgLy8gV2ViS2l0MSBhbmQgc29tZSBsYXlvdXQgdGVzdHMgdGhh
dCB1c2UgYSBzaW5nbGUgd2ViIHByb2Nlc3MgZm9yIGJvdGggdGhlIGluc3BlY3RvciBhbmQgaW5z
cGVjdGVkIHBhZ2UuCisgICAgaWYgKCFTY3JpcHREaXNhbGxvd2VkU2NvcGU6OkluTWFpblRocmVh
ZDo6aXNTY3JpcHRBbGxvd2VkKCkpCisgICAgICAgIHN1c3BlbmQoVW5zdXNwZW5kU29vbjo6WWVz
KTsKKworICAgIGlmICghbV9mcm9udGVuZExvYWRlZCB8fCBtX3N1c3BlbmRlZCkgeworICAgICAg
ICBtX3F1ZXVlZEV2YWx1YXRpb25zLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihleHByZXNzaW9uLCBX
VEZNb3ZlKG9wdGlvbmFsUmVzdWx0SGFuZGxlcikpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSBldmFsdWF0ZUV4cHJlc3Npb24oZXhwcmVzc2lv
bik7CisgICAgaWYgKG9wdGlvbmFsUmVzdWx0SGFuZGxlcikKKyAgICAgICAgKCpvcHRpb25hbFJl
c3VsdEhhbmRsZXIpKHJlc3VsdCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNw
YXRjaGVyOjppbnZhbGlkYXRlUXVldWVkRXhwcmVzc2lvbnMoKQoreworICAgIGF1dG8gcXVldWVk
RXZhbHVhdGlvbnMgPSBzdGQ6OmV4Y2hhbmdlKG1fcXVldWVkRXZhbHVhdGlvbnMsIHsgfSk7Cisg
ICAgZm9yIChhdXRvJiBwYWlyIDogcXVldWVkRXZhbHVhdGlvbnMpIHsKKyAgICAgICAgYXV0byBy
ZXN1bHRIYW5kbGVyID0gV1RGTW92ZShwYWlyLnNlY29uZCk7CisgICAgICAgIGlmIChyZXN1bHRI
YW5kbGVyKQorICAgICAgICAgICAgKCpyZXN1bHRIYW5kbGVyKShtYWtlVW5leHBlY3RlZChFdmFs
dWF0aW9uRXJyb3I6OkNvbnRleHREZXN0cm95ZWQpKTsKKyAgICB9Cit9CisKK3ZvaWQgSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCkKK3sK
KyAgICAvLyBJZiB0aGUgZnJvbnRlbmQgcGFnZSBoYXMgYmVlbiBkZWFsbG9jYXRlZCwgdGhlbiB0
aGVyZSBpcyBub3RoaW5nIHRvIGRvLgorICAgIGlmICghbV9mcm9udGVuZFBhZ2UpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChtX3F1ZXVlZEV2YWx1YXRpb25zLmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byBxdWV1ZWRFdmFsdWF0aW9ucyA9IHN0ZDo6ZXhjaGFuZ2Uo
bV9xdWV1ZWRFdmFsdWF0aW9ucywgeyB9KTsKKyAgICBmb3IgKGF1dG8mIHBhaXIgOiBxdWV1ZWRF
dmFsdWF0aW9ucykgeworICAgICAgICBhdXRvIHJlc3VsdCA9IGV2YWx1YXRlRXhwcmVzc2lvbihw
YWlyLmZpcnN0KTsKKyAgICAgICAgaWYgKGF1dG8gcmVzdWx0SGFuZGxlciA9IFdURk1vdmUocGFp
ci5zZWNvbmQpKQorICAgICAgICAgICAgKCpyZXN1bHRIYW5kbGVyKShyZXN1bHQpOworICAgIH0K
K30KKworSlNDOjpKU1ZhbHVlIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVh
dGVFeHByZXNzaW9uKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKK3sKKyAgICBBU1NFUlQobV9m
cm9udGVuZFBhZ2UpOworICAgIEFTU0VSVCghbV9zdXNwZW5kZWQpOworICAgIEFTU0VSVChtX3F1
ZXVlZEV2YWx1YXRpb25zLmlzRW1wdHkoKSk7CisKKyAgICBKU0M6OlN1c3BlbmRFeGNlcHRpb25T
Y29wZSBzY29wZSgmbV9mcm9udGVuZFBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS52bSgpKTsK
KyAgICByZXR1cm4gbV9mcm9udGVuZFBhZ2UtPm1haW5GcmFtZSgpLnNjcmlwdCgpLmV2YWx1YXRl
SWdub3JpbmdFeGNlcHRpb24oU2NyaXB0U291cmNlQ29kZShleHByZXNzaW9uKSk7Cit9CisKK3Zv
aWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZUV4cHJlc3Npb25Gb3JU
ZXN0aW5nKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKK3sKKyAgICBldmFsdWF0ZU9yUXVldWVF
eHByZXNzaW9uKGV4cHJlc3Npb24pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Yjg1YmFjYWRjODE1ODRlNGEwNjIwYWJkODc1M2FmNThl
YjRhZWM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1
ZS5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9F
eHBlY3RlZC5oPgorI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBhZ2U7CisKK2Ns
YXNzIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcj4geworcHVibGljOgorICAgIGVudW0g
Y2xhc3MgRXZhbHVhdGlvbkVycm9yIHsgRXhlY3V0aW9uU3VzcGVuZGVkLCBDb250ZXh0RGVzdHJv
eWVkIH07CisgICAgdXNpbmcgRXZhbHVhdGlvblJlc3VsdCA9IEV4cGVjdGVkPEpTQzo6SlNWYWx1
ZSwgRXZhbHVhdGlvbkVycm9yPjsKKyAgICB1c2luZyBFdmFsdWF0aW9uUmVzdWx0SGFuZGxlciA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXZhbHVhdGlvblJlc3VsdCk+OworCisgICAgZW51bSBj
bGFzcyBVbnN1c3BlbmRTb29uIHsgWWVzLCBObyB9OworICAgIAorICAgIFdFQkNPUkVfRVhQT1JU
IH5JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIoKTsKKworICAgIHN0YXRpYyBSZWY8SW5z
cGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyPiBjcmVhdGUoUGFnZSYgcGFnZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
cihwYWdlKSk7CisgICAgfQorCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXNldCgpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZnJvbnRlbmRMb2FkZWQoKTsKKworICAgIC8vIElmIGl0J3Mg
bm90IGN1cnJlbnRseSBzYWZlIHRvIGV2YWx1YXRlIEphdmFTY3JpcHQgb24gdGhlIGZyb250ZW5k
IHBhZ2UsIHRoZQorICAgIC8vIGRpc3BhdGNoZXIgd2lsbCBiZWNvbWUgc3VzcGVuZGVkIGFuZCBk
aXNwYXRjaCBhbnkgcXVldWVkIGV2YWx1YXRpb25zIHdoZW4gdW5zdXNwZW5kZWQuCisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzdXNwZW5kKFVuc3VzcGVuZFNvb24gPSBVbnN1c3BlbmRTb29uOjpO
byk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1bnN1c3BlbmQoKTsKKyAgICBib29sIGlzU3Vz
cGVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9zdXNwZW5kZWQ7IH0KKworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGlzcGF0Y2hDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZCwgVmVjdG9yPFJl
ZjxKU09OOjpWYWx1ZT4+JiYgYXJndW1lbnRzID0geyB9KTsKKyAgICBFdmFsdWF0aW9uUmVzdWx0
IGRpc3BhdGNoQ29tbWFuZFN5bmMoY29uc3QgU3RyaW5nJiBjb21tYW5kLCBWZWN0b3I8UmVmPEpT
T046OlZhbHVlPj4mJiBhcmd1bWVudHMgPSB7IH0pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIGNvbW1hbmQsIFZlY3RvcjxS
ZWY8SlNPTjo6VmFsdWU+PiYmIGFyZ3VtZW50cywgRXZhbHVhdGlvblJlc3VsdEhhbmRsZXImJik7
CisKKyAgICAvLyBVc2VkIHRvIGZvcndhcmQgbWVzc2FnZXMgZnJvbSB0aGUgYmFja2VuZCBjb25u
ZWN0aW9uIHRvIHRoZSBmcm9udGVuZC4KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc3BhdGNo
TWVzc2FnZUFzeW5jKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGV2YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7CisgICAg
CisgICAgLy8gQ29udmVuaWVuY2UgbWV0aG9kIHRvIG9idGFpbiBhIEpTR2xvYmFsT2JqZWN0IGZv
ciB0aGUgZnJvbnRlbmQgcGFnZS4KKyAgICAvLyBUaGlzIGlzIHVzZWQgdG8gY29udmVydCBiZXR3
ZWVuIEMrKyB2YWx1ZXMgYW5kIGZyb250ZW5kIEpTQzo6SlNWYWx1ZSBvYmplY3RzLgorICAgIFdF
QkNPUkVfRVhQT1JUIEpTQzo6SlNHbG9iYWxPYmplY3QqIGZyb250ZW5kR2xvYmFsT2JqZWN0KCk7
Citwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0
Y2hlcihQYWdlJik7CisKKyAgICB2b2lkIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24oY29uc3Qg
U3RyaW5nJiwgV1RGOjpPcHRpb25hbDxFdmFsdWF0aW9uUmVzdWx0SGFuZGxlcj4mJiA9IFdURjo6
bnVsbG9wdCk7CisgICAgdm9pZCBldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7CisgICAgdm9p
ZCBpbnZhbGlkYXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKKyAgICBKU0M6OkpTVmFsdWUgZXZhbHVh
dGVFeHByZXNzaW9uKGNvbnN0IFN0cmluZyYpOworCisgICAgV2Vha1B0cjxQYWdlPiBtX2Zyb250
ZW5kUGFnZTsKKyAgICBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgT3B0aW9uYWw8RXZhbHVhdGlv
blJlc3VsdEhhbmRsZXI+Pj4gbV9xdWV1ZWRFdmFsdWF0aW9uczsKKyAgICBib29sIG1fZnJvbnRl
bmRMb2FkZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zdXNwZW5kZWQgeyBmYWxzZSB9OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaAppbmRleCA0ZmU4OGI3ZThmOGI4YjA3NGUxNzhk
MDQ1OGExMjBiYmI1Y2VmNWQ4Li4wYTc5ZDg2YjNjNDY5Nzc4MTRhNjhmNGVhYWVkYjhhOGVlOWZm
YmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQuaApAQCAtNDEsNiArNDEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBGbG9hdFJlY3Q7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI7CiAKIGNs
YXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTU2LDYgKzU3LDkgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCB3aW5kb3dPYmplY3RDbGVh
cmVkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmcm9udGVuZExvYWRlZCgpID0gMDsKIAorICAg
IHZpcnR1YWwgdm9pZCBwYWdlUGF1c2VkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYWdlVW5w
YXVzZWQoKSA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBtb3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkgPSAwOwogCkBA
IC0xMDUsMTAgKzEwOSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3Rp
Y0V2ZW50KGNvbnN0IFN0cmluZyYgLyogZXZlbnROYW1lICovLCBjb25zdCBEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudDo6VmFsdWVEaWN0aW9uYXJ5JikgeyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwg
dm9pZCBwYWdlUGF1c2VkKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHBhZ2VVbnBhdXNlZCgpIHsg
fQotCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNlbmRNZXNzYWdlVG9CYWNrZW5k
KGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEluc3BlY3Rv
ckZyb250ZW5kQVBJRGlzcGF0Y2hlciYgZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkgPSAwOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBib29sIGlzVW5kZXJUZXN0KCkgPSAwOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsLmNwcAppbmRleCBjY2U1OTAzNWVkZTU3MGE2NDlhMTI2NzZjMzkzMjJkNDhlODRk
OGY0Li43ZDRiYjhhNTQ5MTgwMzIzOGY2NjYyMDA2ZGM2YmJhZDBlZTA3ZjEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWwuY3BwCkBAIC0xNTAsNiArMTUwLDcgQEAgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bDo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbChJbnNwZWN0b3JDb250cm9sbGVyKgogICAg
ICwgbV9zZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSkKICAgICAsIG1fZG9ja1NpZGUoRG9ja1Np
ZGU6OlVuZG9ja2VkKQogICAgICwgbV9kaXNwYXRjaFRhc2soSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoVGFzazo6Y3JlYXRlKGluc3BlY3RlZFBhZ2VDb250cm9sbGVyKSkKKyAgICAsIG1fZnJvbnRl
bmRBUElEaXNwYXRjaGVyKEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6Y3JlYXRlKCpm
cm9udGVuZFBhZ2UpKQogewogICAgIG1fZnJvbnRlbmRQYWdlLT5zZXR0aW5ncygpLnNldEFsbG93
RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyh0cnVlKTsKIH0KQEAgLTE4NSwxMCArMTg2LDIwIEBAIHZv
aWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZnJvbnRlbmRMb2FkZWQoKQogICAgIC8v
IFRodXMgaWYgd2UgY2FsbCBjYW5BdHRhY2hXaW5kb3cgZmlyc3Qgd2UgY2FuIGF2b2lkIHRoaXMg
cHJvYmxlbS4gVGhpcyBjaGFuZ2UgZG9lcyBub3QgY2F1c2UgYW55IHJlZ3Jlc3Npb25zIG9uIE1h
Yy4KICAgICBzZXREb2NraW5nVW5hdmFpbGFibGUoIWNhbkF0dGFjaFdpbmRvdygpKTsKICAgICBi
cmluZ1RvRnJvbnQoKTsKLSAgICBtX2Zyb250ZW5kTG9hZGVkID0gdHJ1ZTsKLSAgICBmb3IgKGF1
dG8mIGV2YWx1YXRlIDogbV9ldmFsdWF0ZU9uTG9hZCkKLSAgICAgICAgZXZhbHVhdGVPbkxvYWQo
ZXZhbHVhdGUpOwotICAgIG1fZXZhbHVhdGVPbkxvYWQuY2xlYXIoKTsKKworICAgIG1fZnJvbnRl
bmRBUElEaXNwYXRjaGVyLT5mcm9udGVuZExvYWRlZCgpOworfQorCit2b2lkIEluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWw6OnBhZ2VQYXVzZWQoKQoreworICAgIC8vIE5PVEU6IHBhZ2VQYXVz
ZWQoKSBhbmQgcGFnZVVucGF1c2VkKCkgZG8gbm90IHN1c3BlbmQvdW5zdXNwZW5kIHRoZSBmcm9u
dGVuZCBBUEkgZGlzcGF0Y2hlcgorICAgIC8vIGZvciB0aGlzIHN1YmNsYXNzIG9mIEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50LiBUaGUgaW5zcGVjdGVkIHBhZ2UgYW5kIHRoZSBmcm9udGVuZCBwYWdl
CisgICAgLy8gZXhpc3QgaW4gdGhlIHNhbWUgd2ViIHByb2Nlc3MsIHNvIG1lc3NhZ2VzIG5lZWQg
dG8gYmUgc2VudCBldmVuIHdoaWxlIHRoZSBkZWJ1Z2dlciBpcyBwYXVzZWQuCisgICAgLy8gU3Vz
cGVuZGluZyBoZXJlIHdvdWxkIHN0YWxsIG91dCBsYXRlciBjb21tYW5kcyB0aGF0IHJlc3VtZSB0
aGUgZGVidWdnZXIsIGNhdXNpbmcgdGhlIHRlc3QgdG8gdGltZSBvdXQuCit9CisKK3ZvaWQgSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6cGFnZVVucGF1c2VkKCkKK3sKIH0KIAogVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjp1c2Vy
SW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkgY29uc3QKQEAgLTIyNyw3ICsyMzgsNyBAQCBib29s
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNhbkF0dGFjaFdpbmRvdygpCiAKIHZvaWQg
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RG9ja2luZ1VuYXZhaWxhYmxlKGJvb2wg
dW5hdmFpbGFibGUpCiB7Ci0gICAgZGlzcGF0Y2gobWFrZVN0cmluZygiW1wic2V0RG9ja2luZ1Vu
YXZhaWxhYmxlXCIsICIsIHVuYXZhaWxhYmxlID8gInRydWUiIDogImZhbHNlIiwgJ10nKSk7Cisg
ICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0RG9ja2luZ1Vu
YXZhaWxhYmxlIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUodW5hdmFpbGFibGUpIH0pOwogfQog
CiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNoYW5nZUF0dGFjaGVkV2luZG93
SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKQEAgLTI5Nyw3ICszMDgsNyBAQCB2b2lkIEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldEF0dGFjaGVkV2luZG93KERvY2tTaWRlIGRvY2tTaWRl
KQogCiAgICAgbV9kb2NrU2lkZSA9IGRvY2tTaWRlOwogCi0gICAgZGlzcGF0Y2gobWFrZVN0cmlu
ZygiW1wic2V0RG9ja1NpZGVcIiwgXCIiLCBzaWRlLCAiXCJdIikpOworICAgIG1fZnJvbnRlbmRB
UElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNldERvY2tTaWRlIl9zLCB7IEpTT046OlZh
bHVlOjpjcmVhdGUoc2lkZSkgfSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbDo6cmVzdG9yZUF0dGFjaGVkV2luZG93SGVpZ2h0KCkKQEAgLTMxNCw1OSArMzI1LDc0IEBA
IHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6cmVzdG9yZUF0dGFjaGVkV2luZG93
SGVpZ2h0KCkKIAogYm9vbCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjppc0RlYnVnZ2lu
Z0VuYWJsZWQoKQogewotICAgIGlmIChtX2Zyb250ZW5kTG9hZGVkKQotICAgICAgICByZXR1cm4g
ZXZhbHVhdGVBc0Jvb2xlYW4oIltcImlzRGVidWdnaW5nRW5hYmxlZFwiXSIpOwotICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAoIW1fZnJvbnRlbmRMb2FkZWQpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGF1dG8gcmVzdWx0ID0gbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNo
Q29tbWFuZFN5bmMoImlzRGVidWdnaW5nRW5hYmxlZCJfcywgeyB9KTsKKyAgICBpZiAoIXJlc3Vs
dCB8fCAhcmVzdWx0LnZhbHVlKCkudG9Cb29sZWFuKG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5m
cm9udGVuZEdsb2JhbE9iamVjdCgpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0
dXJuIHRydWU7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RGVi
dWdnaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7Ci0gICAgZGlzcGF0Y2gobWFrZVN0cmluZygi
W1wic2V0RGVidWdnaW5nRW5hYmxlZFwiLCAiLCBlbmFibGVkID8gInRydWUiIDogImZhbHNlIiwg
J10nKSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0
RGVidWdnaW5nRW5hYmxlZCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKGVuYWJsZWQpIH0pOwog
fQogCiBib29sIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmlzVGltZWxpbmVQcm9maWxp
bmdFbmFibGVkKCkKIHsKLSAgICBpZiAobV9mcm9udGVuZExvYWRlZCkKLSAgICAgICAgcmV0dXJu
IGV2YWx1YXRlQXNCb29sZWFuKCJbXCJpc1RpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZFwiXSIpOwot
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIW1fZnJvbnRlbmRMb2FkZWQpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGF1dG8gcmVzdWx0ID0gbV9mcm9udGVuZEFQSURpc3BhdGNoZXIt
PmRpc3BhdGNoQ29tbWFuZFN5bmMoImlzVGltZWxpbmVQcm9maWxpbmdFbmFibGVkIl9zLCB7IH0p
OworICAgIGlmICghcmVzdWx0IHx8ICFyZXN1bHQudmFsdWUoKS50b0Jvb2xlYW4obV9mcm9udGVu
ZEFQSURpc3BhdGNoZXItPmZyb250ZW5kR2xvYmFsT2JqZWN0KCkpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsOjpzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewot
ICAgIGRpc3BhdGNoKG1ha2VTdHJpbmcoIltcInNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZFwi
LCAiLCBlbmFibGVkID8gInRydWUiIDogImZhbHNlIiwgJ10nKSk7CisgICAgbV9mcm9udGVuZEFQ
SURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVk
Il9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUoZW5hYmxlZCkgfSk7CiB9CiAKIGJvb2wgSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6aXNQcm9maWxpbmdKYXZhU2NyaXB0KCkKIHsKLSAgICBp
ZiAobV9mcm9udGVuZExvYWRlZCkKLSAgICAgICAgcmV0dXJuIGV2YWx1YXRlQXNCb29sZWFuKCJb
XCJpc1Byb2ZpbGluZ0phdmFTY3JpcHRcIl0iKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KCFtX2Zyb250ZW5kTG9hZGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIHJl
c3VsdCA9IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmRTeW5jKCJpc1By
b2ZpbGluZ0phdmFTY3JpcHQiX3MsIHsgfSk7CisgICAgaWYgKCFyZXN1bHQgfHwgIXJlc3VsdC52
YWx1ZSgpLnRvQm9vbGVhbihtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZnJvbnRlbmRHbG9iYWxP
YmplY3QoKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwogfQog
CiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnN0YXJ0UHJvZmlsaW5nSmF2YVNj
cmlwdCgpCiB7Ci0gICAgZGlzcGF0Y2goIltcInN0YXJ0UHJvZmlsaW5nSmF2YVNjcmlwdFwiXSIp
OworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInN0YXJ0UHJv
ZmlsaW5nSmF2YVNjcmlwdCJfcyk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbDo6c3RvcFByb2ZpbGluZ0phdmFTY3JpcHQoKQogewotICAgIGRpc3BhdGNoKCJbXCJzdG9w
UHJvZmlsaW5nSmF2YVNjcmlwdFwiXSIpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5k
aXNwYXRjaENvbW1hbmQoInN0b3BQcm9maWxpbmdKYXZhU2NyaXB0Il9zKTsKIH0KIAogdm9pZCBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzaG93Q29uc29sZSgpCiB7Ci0gICAgZGlzcGF0
Y2goIltcInNob3dDb25zb2xlXCJdIik7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRp
c3BhdGNoQ29tbWFuZCgic2hvd0NvbnNvbGUiX3MpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWw6OnNob3dSZXNvdXJjZXMoKQogewotICAgIGRpc3BhdGNoKCJbXCJzaG93
UmVzb3VyY2VzXCJdIik7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29t
bWFuZCgic2hvd1Jlc291cmNlcyJfcyk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRMb2NhbDo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKEZyYW1lKiBmcmFtZSkKIHsKICAgICBT
dHJpbmcgZnJhbWVJZCA9IG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXItPmVuc3VyZVBhZ2VBZ2Vu
dCgpLmZyYW1lSWQoZnJhbWUpOwotICAgIGRpc3BhdGNoKG1ha2VTdHJpbmcoIltcInNob3dNYWlu
UmVzb3VyY2VGb3JGcmFtZVwiLCBcIiIsIGZyYW1lSWQsICJcIl0iKSk7CisgICAgbV9mcm9udGVu
ZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2hvd01haW5SZXNvdXJjZUZvckZyYW1l
Il9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUoZnJhbWVJZCkgfSk7CiB9CiAKIHVuc2lnbmVkIElu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNvbnN0cmFpbmVkQXR0YWNoZWRXaW5kb3dIZWln
aHQodW5zaWduZWQgcHJlZmVycmVkSGVpZ2h0LCB1bnNpZ25lZCB0b3RhbFdpbmRvd0hlaWdodCkK
QEAgLTM5NCw0NiArNDIwLDYgQEAgdW5zaWduZWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bDo6aW5zcGVjdGlvbkxldmVsKCkgY29uc3QKICAgICByZXR1cm4gbV9pbnNwZWN0ZWRQYWdlQ29u
dHJvbGxlci0+aW5zcGVjdGlvbkxldmVsKCkgKyAxOwogfQogCi12b2lkIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWw6OmRpc3BhdGNoKGNvbnN0IFN0cmluZyYgc2lnbmF0dXJlKQotewotICAg
IEFTU0VSVCghc2lnbmF0dXJlLmlzRW1wdHkoKSk7Ci0gICAgQVNTRVJUKHNpZ25hdHVyZS5zdGFy
dHNXaXRoKCdbJykpOwotICAgIEFTU0VSVChzaWduYXR1cmUuZW5kc1dpdGgoJ10nKSk7Ci0KLSAg
ICBldmFsdWF0ZU9uTG9hZCgiSW5zcGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0Y2goIiArIHNpZ25h
dHVyZSArICIpIik7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZGlz
cGF0Y2hNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU9iamVjdCkKLXsKLSAgICBBU1NFUlQo
IW1lc3NhZ2VPYmplY3QuaXNFbXB0eSgpKTsKLQotICAgIGV2YWx1YXRlT25Mb2FkKCJJbnNwZWN0
b3JGcm9udGVuZEFQSS5kaXNwYXRjaE1lc3NhZ2UoIiArIG1lc3NhZ2VPYmplY3QgKyAiKSIpOwot
fQotCi12b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmRpc3BhdGNoTWVzc2FnZUFz
eW5jKGNvbnN0IFN0cmluZyYgbWVzc2FnZU9iamVjdCkKLXsKLSAgICBBU1NFUlQoIW1lc3NhZ2VP
YmplY3QuaXNFbXB0eSgpKTsKLQotICAgIGV2YWx1YXRlT25Mb2FkKCJJbnNwZWN0b3JGcm9udGVu
ZEFQSS5kaXNwYXRjaE1lc3NhZ2VBc3luYygiICsgbWVzc2FnZU9iamVjdCArICIpIik7Ci19Ci0K
LWJvb2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZXZhbHVhdGVBc0Jvb2xlYW4oY29u
c3QgU3RyaW5nJiBleHByZXNzaW9uKQotewotICAgIGF1dG8mIHN0YXRlID0gKm1haW5Xb3JsZEV4
ZWNTdGF0ZSgmbV9mcm9udGVuZFBhZ2UtPm1haW5GcmFtZSgpKTsKLSAgICByZXR1cm4gbV9mcm9u
dGVuZFBhZ2UtPm1haW5GcmFtZSgpLnNjcmlwdCgpLmV4ZWN1dGVTY3JpcHRJZ25vcmluZ0V4Y2Vw
dGlvbihleHByZXNzaW9uKS50b1dURlN0cmluZygmc3RhdGUpID09ICJ0cnVlIjsKLX0KLQotdm9p
ZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpldmFsdWF0ZU9uTG9hZChjb25zdCBTdHJp
bmcmIGV4cHJlc3Npb24pCi17Ci0gICAgaWYgKCFtX2Zyb250ZW5kTG9hZGVkKSB7Ci0gICAgICAg
IG1fZXZhbHVhdGVPbkxvYWQuYXBwZW5kKGV4cHJlc3Npb24pOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgSlNDOjpTdXNwZW5kRXhjZXB0aW9uU2NvcGUgc2NvcGUoJm1fZnJvbnRlbmRQ
YWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkudm0oKSk7Ci0gICAgbV9mcm9udGVuZFBhZ2UtPm1h
aW5GcmFtZSgpLnNjcmlwdCgpLmV2YWx1YXRlSWdub3JpbmdFeGNlcHRpb24oU2NyaXB0U291cmNl
Q29kZShleHByZXNzaW9uKSk7Ci19Ci0KIFBhZ2UqIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9j
YWw6Omluc3BlY3RlZFBhZ2UoKSBjb25zdAogewogICAgIGlmICghbV9pbnNwZWN0ZWRQYWdlQ29u
dHJvbGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbC5oCmluZGV4IDQzYTNlY2RjNzY4ZDBlMGZlNzNhZGZhNjVlZTNh
ZjNlNzcxM2I4NjguLjgxYzJjNjg0ODdlNWFmNjQzZGM2YjAzMzkwMDllMGVkY2Y2YmI2MDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
Q2xpZW50TG9jYWwuaApAQCAtMzEsNiArMzEsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KQEAgLTY2LDYgKzY3LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCB3aW5kb3dPYmplY3RDbGVhcmVkKCkgZmluYWw7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBmcm9udGVuZExvYWRlZCgpIG92ZXJyaWRlOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcGFnZVBhdXNlZCgpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcGFnZVVu
cGF1c2VkKCkgZmluYWw7CiAKICAgICB2b2lkIHN0YXJ0V2luZG93RHJhZygpIG92ZXJyaWRlIHsg
fQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW92ZVdpbmRvd0J5KGZsb2F0IHgsIGZsb2F0IHkp
IGZpbmFsOwpAQCAtOTEsNiArOTQsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdW5z
aWduZWQgaW5zcGVjdGlvbkxldmVsKCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIGJhY2tlbmRD
b21tYW5kc1VSTCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFN0cmluZygpOyB9OwogCisgICAgSW5z
cGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyJiBmcm9udGVuZEFQSURpc3BhdGNoZXIoKSBmaW5h
bCB7IHJldHVybiBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsgfQorCiAgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBjYW5BdHRhY2hXaW5kb3coKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERv
Y2tpbmdVbmF2YWlsYWJsZShib29sKTsKIApAQCAtMTE5LDEwICsxMjQsNiBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgUGFnZSogaW5zcGVjdGVkUGFnZSgpIGNvbnN0OwogICAgIFBhZ2Uq
IGZyb250ZW5kUGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJvbnRlbmRQYWdlOyB9CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGRpc3BhdGNoKGNvbnN0IFN0cmluZyYgc2lnbmF0dXJlKTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc3BhdGNoTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3Nh
Z2VPYmplY3QpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0Y2hNZXNzYWdlQXN5bmMo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlT2JqZWN0KTsKLQogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkKSA9IDA7CkBAIC0xMzEsMTAgKzEz
Miw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hlZXRSZWN0KGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYpID0gMDsKIAogcHJpdmF0ZToKLSAgICBib29sIGV2YWx1YXRlQXNC
b29sZWFuKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbik7Ci0gICAgdm9pZCBldmFsdWF0ZU9uTG9h
ZChjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24pOwotCiAgICAgZnJpZW5kIGNsYXNzIEZyb250ZW5k
TWVudVByb3ZpZGVyOworCiAgICAgSW5zcGVjdG9yQ29udHJvbGxlciogbV9pbnNwZWN0ZWRQYWdl
Q29udHJvbGxlciB7IG51bGxwdHIgfTsKICAgICBQYWdlKiBtX2Zyb250ZW5kUGFnZSB7IG51bGxw
dHIgfTsKICAgICAvLyBUT0RPKHl1cnlzKTogdGhpcyByZWYgc2hvdWxkbid0IGJlIG5lZWRlZC4K
QEAgLTE0Miw4ICsxNDEsOCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsOjpTZXR0aW5ncz4gbV9zZXR0aW5nczsKICAgICBib29sIG1f
ZnJvbnRlbmRMb2FkZWQgeyBmYWxzZSB9OwogICAgIERvY2tTaWRlIG1fZG9ja1NpZGU7Ci0gICAg
VmVjdG9yPFN0cmluZz4gbV9ldmFsdWF0ZU9uTG9hZDsKICAgICBSZWY8SW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoVGFzaz4gbV9kaXNwYXRjaFRhc2s7CisgICAgUmVmPEluc3BlY3RvckZyb250ZW5k
QVBJRGlzcGF0Y2hlcj4gbV9mcm9udGVuZEFQSURpc3BhdGNoZXI7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMmFmNzhk
YmQ5YjcxMjE0ZmIyZWRlODEzMzE3ZTI2YTczNDgxMzgzMC4uN2Y1YTBkMTI4YWY4YjJiNzkyMTU5
NjZjNjdjZTg5ZTRhYjBjMDBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApA
QCAtNDA4LDcgKzQwOCw3IEBAIHZvaWQgSW5zcGVjdG9yU3R1YkZyb250ZW5kOjpjbG9zZVdpbmRv
dygpCiAKIHZvaWQgSW5zcGVjdG9yU3R1YkZyb250ZW5kOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewotICAgIGRpc3BhdGNoTWVzc2FnZUFzeW5jKG1lc3Nh
Z2UpOworICAgIGZyb250ZW5kQVBJRGlzcGF0Y2hlcigpLmRpc3BhdGNoTWVzc2FnZUFzeW5jKG1l
c3NhZ2UpOwogfQogCiBzdGF0aWMgYm9vbCBtYXJrZXJUeXBlRnJvbShjb25zdCBTdHJpbmcmIG1h
cmtlclR5cGUsIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlJiByZXN1bHQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApp
bmRleCBmZmU5Nzg3ZGVhZTU0NzUyNjczNmUyMTEwMDQyYjBiOWY4ZGMwODAxLi5lMGFiNzQzNmJh
ZGMzNDYzNzQ5NDY2MzM0NzE5YjQ1ZWRmZDJiMzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTU0Nyw3ICs1
NDcsNiBAQCBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdl
SGFuZGxlLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3Bl
Y3RvclVJLmNwcAogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yLmNwcAogV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAotV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcAogV2ViUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlci5jcHAKIFdlYlByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvclVJLmNwcAogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZUlu
c3BlY3RvclRhcmdldC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDQ0MDZlOWI2ZTdlNmY0YTAzNjJlNmM1NmJiODQ5YmZlYmVjOGMw
YzcuLjQ2NjVjY2I3YmM2YWY3YTdhMDg5MTVmZGU0NjcyNmQ5NjdmNWZjYjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ5Miw3ICsx
NDkyLDYgQEAKIAkJQTU1QkE4MjUxQkEyNUNGQjAwN0NEMzNEIC8qIFJlbW90ZVdlYkluc3BlY3Rv
clByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE1NUJBODIyMUJBMjVCQjgwMDdDRDMzRCAvKiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94
eU1lc3NhZ2VzLmggKi87IH07CiAJCUE1NUJBODI2MUJBMjVDRkQwMDdDRDMzRCAvKiBSZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTVCQTgyMTFCQTI1QkI4MDA3Q0QzM0QgLyogUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlBNTVCQTgy
QjFCQTM4RTYxMDA3Q0QzM0QgLyogV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTVCQTgyODFCQTM4RTFFMDA3Q0Qz
M0QgLyogV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmggKi87IH07Ci0JCUE1NUJBODM1MUJBM0U3MEEw
MDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NUJBODMzMUJBM0U2RkEwMDdD
RDMzRCAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCAqLzsgfTsKIAkJQTU4
NjBFNzEyMzBGNjdGQzAwNDYxQUFFIC8qIFdlYlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU4NjBFNzAy
MzBGNjdERTAwNDYxQUFFIC8qIFdlYlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxlci5oICovOyB9
OwogCQlBNThCNkYwODE4RkNBNzMzMDA4Q0JBNTMgLyogV0tGaWxlVXBsb2FkUGFuZWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1OEI2RjA2MThGQ0E3
MzMwMDhDQkE1MyAvKiBXS0ZpbGVVcGxvYWRQYW5lbC5oICovOyB9OwogCQlBNUMwRjBBNzIwMDA2
NTREMDA1MzY1MzYgLyogX1dLTlNXaW5kb3dFeHRyYXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1QzBGMEE2MjAwMDY1NDQwMDUzNjUzNiAvKiBfV0tO
U1dpbmRvd0V4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC00NjcyLDggKzQ2NzEsNiBAQAogCQlBNTVCQTgyMjFCQTI1QkI4MDA3Q0QzM0Qg
LyogUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJQTU1QkE4MjcxQkEzOEUxRTAw
N0NEMzNEIC8qIFdlYkluc3BlY3RvclV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJJbnNwZWN0b3JVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNTVCQTgyODFCQTM4RTFFMDA3Q0QzM0QgLyogV2ViSW5zcGVjdG9y
VXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkluc3BlY3Rv
clV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNTVCQTgzMjFCQTNF
NkZBMDA3Q0QzM0QgLyogV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkluc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE1NUJBODMzMUJB
M0U2RkEwMDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNw
YXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1ODYwRTZGMjMwRjY3REUw
MDQ2MUFBRSAvKiBXZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmNwcDsgcGF0aCA9IE5ldHdv
cmsvV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTU4NjBFNzAyMzBGNjdERTAwNDYxQUFFIC8qIFdlYlJlc291cmNlSW50ZXJj
ZXB0Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJSZXNvdXJjZUludGVyY2VwdENvbnRy
b2xsZXIuaDsgcGF0aCA9IE5ldHdvcmsvV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1OEI2RjA2MThGQ0E3MzMwMDhDQkE1MyAv
KiBXS0ZpbGVVcGxvYWRQYW5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
S0ZpbGVVcGxvYWRQYW5lbC5oOyBwYXRoID0gaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NzA3LDggKzg3MDQsNiBAQAogCQkJCTFD
OEUyQTFDMTI3NzgzM0YwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4gKi8sCiAJ
CQkJQkMxMTFBNTkxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkluc3BlY3RvckNsaWVudC5jcHAgKi8s
CiAJCQkJQkMwMzJENkQxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkluc3BlY3RvckNsaWVudC5oICov
LAotCQkJCUE1NUJBODMyMUJBM0U2RkEwMDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXIuY3BwICovLAotCQkJCUE1NUJBODMzMUJBM0U2RkEwMDdDRDMzRCAvKiBXZWJJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCAqLywKIAkJCQlGRUU0M0ZEMDFFNjdBRkM2
MDA3N0Q2RDEgLyogV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlci5jcHAgKi8sCiAJCQkJ
RkVFNDNGRDExRTY3QUZDNjAwNzdENkQxIC8qIFdlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNo
ZXIuaCAqLywKIAkJCQlGRUU0M0ZEMjFFNjdBRkM2MDA3N0Q2RDEgLyogV2ViSW5zcGVjdG9ySW50
ZXJydXB0RGlzcGF0Y2hlci5tZXNzYWdlcy5pbiAqLywKQEAgLTExNDk5LDcgKzExNDk0LDYgQEAK
IAkJCQlCQ0NGNkFCRDEyQzkxRUY5MDA4RjlDMzUgLyogV2ViSW1hZ2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFDOEUyODIwMTI3NUQxNTQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMDMyRDgyMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJJbnNwZWN0b3JDbGll
bnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUE1NUJBODM1MUJBM0U3MEEwMDdDRDMzRCAvKiBXZWJJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFRTQz
RkQzMUU2N0IwMTgwMDc3RDZEMSAvKiBXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRURCRENENzFFNjhEMjA1MDBBNTlGOEYgLyogV2ViSW5zcGVj
dG9ySW50ZXJydXB0RGlzcGF0Y2hlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzhF
MkEzNjEyNzc4NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1v
dGVXZWJJbnNwZWN0b3JVSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcAppbmRleCA0N2Q2ZmEzMzgzYzRlZGJhZjMxNDgwZGQ0
MmJlYzUwNmY4NGM4M2FmLi43ZTBlZDY0MmEwMGE3MTQ2ZjBiNGE5NDU3N2Q5YWQyMDUwOWE4OTg2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdl
Ykluc3BlY3RvclVJLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZWY8UmVtb3RlV2Vi
SW5zcGVjdG9yVUk+IFJlbW90ZVdlYkluc3BlY3RvclVJOjpjcmVhdGUoV2ViUGFnZSYgcGFnZSkK
IAogUmVtb3RlV2ViSW5zcGVjdG9yVUk6OlJlbW90ZVdlYkluc3BlY3RvclVJKFdlYlBhZ2UmIHBh
Z2UpCiAgICAgOiBtX3BhZ2UocGFnZSkKLSAgICAsIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyKHBh
Z2UpCisgICAgLCBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcihJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXI6OmNyZWF0ZSgqcGFnZS5jb3JlUGFnZSgpKSkKIHsKICAgICBXZWJJbnNwZWN0b3JV
STo6ZW5hYmxlRnJvbnRlbmRGZWF0dXJlcygpOwogfQpAQCAtNjUsMzAgKzY1LDI5IEBAIHZvaWQg
UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmluaXRpYWxpemUoRGVidWdnYWJsZUluZm9EYXRhJiYgZGVi
dWdnYWJsZUluZm8sIGNvbnN0CiAKICAgICBtX3BhZ2UuY29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29u
dHJvbGxlcigpLnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50KHRoaXMpOwogCi0gICAgbV9mcm9u
dGVuZEFQSURpc3BhdGNoZXIucmVzZXQoKTsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5k
aXNwYXRjaENvbW1hbmQoInNldERvY2tpbmdVbmF2YWlsYWJsZSJfcywgdHJ1ZSk7CisgICAgbV9m
cm9udGVuZEFQSURpc3BhdGNoZXItPnJlc2V0KCk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNo
ZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0RG9ja2luZ1VuYXZhaWxhYmxlIl9zLCB7IEpTT046OlZh
bHVlOjpjcmVhdGUodHJ1ZSkgfSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnVw
ZGF0ZUZpbmRTdHJpbmcoY29uc3QgU3RyaW5nJiBmaW5kU3RyaW5nKQogewogICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKLSAgICBKU09OOjpWYWx1ZTo6ZXNjYXBlU3RyaW5nKGJ1aWxkZXIsIGZp
bmRTdHJpbmcpOwotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgi
dXBkYXRlRmluZFN0cmluZyJfcywgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBtX2Zyb250ZW5k
QVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJ1cGRhdGVGaW5kU3RyaW5nIl9zLCB7IEpT
T046OlZhbHVlOjpjcmVhdGUoYnVpbGRlci50b1N0cmluZygpKSB9KTsKIH0KIAogdm9pZCBSZW1v
dGVXZWJJbnNwZWN0b3JVSTo6ZGlkU2F2ZShjb25zdCBTdHJpbmcmIHVybCkKIHsKLSAgICBtX2Zy
b250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNhdmVkVVJMIl9zLCB1cmwpOwor
ICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNhdmVkVVJMIl9z
LCB7IEpTT046OlZhbHVlOjpjcmVhdGUodXJsKSB9KTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNw
ZWN0b3JVSTo6ZGlkQXBwZW5kKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIG1fZnJvbnRlbmRB
UElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgiYXBwZW5kZWRUb1VSTCJfcywgdXJsKTsKKyAg
ICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJhcHBlbmRlZFRvVVJM
Il9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUodXJsKSB9KTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJ
bnNwZWN0b3JVSTo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
IHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaE1lc3NhZ2VBc3luYyhtZXNz
YWdlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hNZXNzYWdlQXN5bmMo
bWVzc2FnZSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnNlbmRNZXNzYWdlVG9C
YWNrZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKQEAgLTEwNywxMyArMTA2LDIzIEBAIHZvaWQg
UmVtb3RlV2ViSW5zcGVjdG9yVUk6OndpbmRvd09iamVjdENsZWFyZWQoKQogCiB2b2lkIFJlbW90
ZVdlYkluc3BlY3RvclVJOjpmcm9udGVuZExvYWRlZCgpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURp
c3BhdGNoZXIuZnJvbnRlbmRMb2FkZWQoKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+
ZnJvbnRlbmRMb2FkZWQoKTsKIAotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNo
Q29tbWFuZCgic2V0SXNWaXNpYmxlIl9zLCB0cnVlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0
Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXRJc1Zpc2libGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNy
ZWF0ZSh0cnVlKSB9KTsKIAogICAgIGJyaW5nVG9Gcm9udCgpOwogfQogCit2b2lkIFJlbW90ZVdl
Ykluc3BlY3RvclVJOjpwYWdlUGF1c2VkKCkKK3sKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hl
ci0+c3VzcGVuZCgpOworfQorCit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpwYWdlVW5wYXVz
ZWQoKQoreworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT51bnN1c3BlbmQoKTsKK30KKwog
dm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6Y2hhbmdlU2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCkKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6U2V0U2hl
ZXRSZWN0KHJlY3QpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKQEAgLTI0Niw3ICsyNTUsNyBAQCB2
b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZShi
b29sIGF2YWlsYWJsZSkKICAgICBBU1NFUlQoIWF2YWlsYWJsZSB8fCBzdXBwb3J0c0RpYWdub3N0
aWNMb2dnaW5nKCkpOwogICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUgPSBhdmFpbGFi
bGU7CiAKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNldERp
YWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlIl9zLCBtX2RpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxl
KTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXREaWFn
bm9zdGljTG9nZ2luZ0F2YWlsYWJsZSJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKG1fZGlhZ25v
c3RpY0xvZ2dpbmdBdmFpbGFibGUpIH0pOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaApp
bmRleCBiNDk5ZWM1YzUzZmFjNjI3ZjVmNDdlZWZiYzRhOTAzODZjZGEwNmM2Li4wMjVlYzkwYTFk
NGFmMWM5ZjU1M2RiYzQyZjdjOTM5ZmQ0Mzk4NDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oCkBAIC0y
Nyw3ICsyNyw3IEBACiAKICNpbmNsdWRlICJEZWJ1Z2dhYmxlSW5mb0RhdGEuaCIKICNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKLSNpbmNsdWRlICJXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0
Y2hlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5kSG9zdC5oPgogI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgpAQCAtNjIsNiArNjIsMTAgQEAgcHVibGljOgogICAgIC8vIFdlYkNvcmU6Okluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50CiAgICAgdm9pZCB3aW5kb3dPYmplY3RDbGVhcmVkKCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBmcm9udGVuZExvYWRlZCgpIG92ZXJyaWRlOworCisgICAgdm9pZCBwYWdl
UGF1c2VkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwYWdlVW5wYXVzZWQoKSBvdmVycmlkZTsKKwog
ICAgIHZvaWQgY2hhbmdlU2hlZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJy
aWRlOwogICAgIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBtb3Zl
V2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkgb3ZlcnJpZGU7CkBAIC05Miw2ICs5Niw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzaG93Q2VydGlmaWNhdGUoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvQmFja2VuZChjb25zdCBTdHJp
bmcmKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNo
ZXImIGZyb250ZW5kQVBJRGlzcGF0Y2hlcigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fZnJvbnRlbmRB
UElEaXNwYXRjaGVyOyB9CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX1RFTEVNRVRSWSkKICAgICBi
b29sIHN1cHBvcnRzRGlhZ25vc3RpY0xvZ2dpbmcoKSBvdmVycmlkZTsKQEAgLTExMCw3ICsxMTUs
NyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJlbW90ZVdlYkluc3BlY3RvclVJKFdlYlBhZ2Um
KTsKIAogICAgIFdlYlBhZ2UmIG1fcGFnZTsKLSAgICBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXIgbV9mcm9udGVuZEFQSURpc3BhdGNoZXI7CisgICAgUmVmPFdlYkNvcmU6Okluc3Bl
Y3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcj4gbV9mcm9udGVuZEFQSURpc3BhdGNoZXI7CiAgICAg
UmVmUHRyPFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kSG9zdD4gbV9mcm9udGVuZEhvc3Q7CiAg
ICAgRGVidWdnYWJsZUluZm9EYXRhIG1fZGVidWdnYWJsZUluZm87CiAgICAgU3RyaW5nIG1fYmFj
a2VuZENvbW1hbmRzVVJMOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNo
ZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YzM3YjAwM2MxY2I3NzFkOWIz
Zjc5ZGRhNjU1MmE0OTA3ZDdlZGQ3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEyMyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2Vi
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgiCi0KLSNpbmNsdWRlICJXZWJQYWdlLmgi
Ci0jaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29u
dHJvbGxlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0U3RhdGUuaD4KLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLVdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6V2ViSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyKFdlYlBhZ2UmIHBhZ2UpCi0gICAgOiBtX3BhZ2UocGFn
ZSkKLXsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OnJlc2V0
KCkKLXsKLSAgICBtX2Zyb250ZW5kTG9hZGVkID0gZmFsc2U7Ci0gICAgbV9zdXNwZW5kZWQgPSBm
YWxzZTsKLSAgICBtX3F1ZXVlLmNsZWFyKCk7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyOjpmcm9udGVuZExvYWRlZCgpCi17Ci0gICAgbV9mcm9udGVuZExvYWRl
ZCA9IHRydWU7Ci0KLSAgICBldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7Ci19Ci0KLXZvaWQg
V2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpzdXNwZW5kKCkKLXsKLSAgICBBU1NF
UlQobV9mcm9udGVuZExvYWRlZCk7Ci0gICAgQVNTRVJUKCFtX3N1c3BlbmRlZCk7Ci0gICAgQVNT
RVJUKG1fcXVldWUuaXNFbXB0eSgpKTsKLQotICAgIG1fc3VzcGVuZGVkID0gdHJ1ZTsKLX0KLQot
dm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OnVuc3VzcGVuZCgpCi17Ci0g
ICAgQVNTRVJUKG1fc3VzcGVuZGVkKTsKLQotICAgIG1fc3VzcGVuZGVkID0gZmFsc2U7Ci0KLSAg
ICBldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyOjpkaXNwYXRjaENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5k
KQotewotICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24obWFrZVN0cmluZygiSW5zcGVjdG9y
RnJvbnRlbmRBUEkuZGlzcGF0Y2goW1wiIiwgY29tbWFuZCwgIlwiXSkiKSk7Ci19Ci0KLXZvaWQg
V2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpkaXNwYXRjaENvbW1hbmQoY29uc3Qg
U3RyaW5nJiBjb21tYW5kLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50KQotewotICAgIGV2YWx1YXRl
T3JRdWV1ZUV4cHJlc3Npb24obWFrZVN0cmluZygiSW5zcGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0
Y2goW1wiIiwgY29tbWFuZCwgIlwiLCBcIiIsIGFyZ3VtZW50LCAiXCJdKSIpKTsKLX0KLQotdm9p
ZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZChjb25z
dCBTdHJpbmcmIGNvbW1hbmQsIGJvb2wgYXJndW1lbnQpCi17Ci0gICAgZXZhbHVhdGVPclF1ZXVl
RXhwcmVzc2lvbihtYWtlU3RyaW5nKCJJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRjaChbXCIi
LCBjb21tYW5kLCAiXCIsICIsIGFyZ3VtZW50ID8gInRydWUiIDogImZhbHNlIiwgIl0pIikpOwot
fQotCi12b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2hNZXNz
YWdlQXN5bmMoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAgIGV2YWx1YXRlT3JRdWV1ZUV4
cHJlc3Npb24obWFrZVN0cmluZygiSW5zcGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0Y2hNZXNzYWdl
QXN5bmMoIiwgbWVzc2FnZSwgIikiKSk7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRB
UElEaXNwYXRjaGVyOjpldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKGNvbnN0IFN0cmluZyYgZXhw
cmVzc2lvbikKLXsKLSAgICBpZiAoIW1fZnJvbnRlbmRMb2FkZWQgfHwgbV9zdXNwZW5kZWQpIHsK
LSAgICAgICAgbV9xdWV1ZS5hcHBlbmQoZXhwcmVzc2lvbik7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBBU1NFUlQobV9xdWV1ZS5pc0VtcHR5KCkpOwotICAgIEFTU0VSVCghbV9wYWdl
LmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnNjcmlwdCgpLmlzUGF1c2VkKCkpOwotICAgIG1fcGFn
ZS5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS5zY3JpcHQoKS5leGVjdXRlU2NyaXB0SWdub3JpbmdF
eGNlcHRpb24oZXhwcmVzc2lvbik7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyOjpldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCkKLXsKLSAgICBpZiAobV9xdWV1
ZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZvciAoY29uc3QgU3RyaW5nJiBl
eHByZXNzaW9uIDogbV9xdWV1ZSkgewotICAgICAgICBBU1NFUlQoIW1fcGFnZS5jb3JlUGFnZSgp
LT5tYWluRnJhbWUoKS5zY3JpcHQoKS5pc1BhdXNlZCgpKTsKLSAgICAgICAgbV9wYWdlLmNvcmVQ
YWdlKCktPm1haW5GcmFtZSgpLnNjcmlwdCgpLmV4ZWN1dGVTY3JpcHRJZ25vcmluZ0V4Y2VwdGlv
bihleHByZXNzaW9uKTsKLSAgICB9Ci0KLSAgICBtX3F1ZXVlLmNsZWFyKCk7Ci19Ci0KLXZvaWQg
V2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZUV4cHJlc3Npb25Gb3JU
ZXN0aW5nKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKLXsKLSAgICBldmFsdWF0ZU9yUXVldWVF
eHByZXNzaW9uKGV4cHJlc3Npb24pOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBkYjY5MGU0YTQxNjA3YWRmMTAzNGNiOGU0NWEwZmIwZjVkNjVmZDY5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0
LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21h
IG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViUGFnZTsKLQotY2xhc3Mg
V2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIHsKLXB1YmxpYzoKLSAgICBXZWJJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIoV2ViUGFnZSYpOwotCi0gICAgdm9pZCByZXNldCgp
OwotICAgIHZvaWQgZnJvbnRlbmRMb2FkZWQoKTsKLQotICAgIHZvaWQgc3VzcGVuZCgpOwotICAg
IHZvaWQgdW5zdXNwZW5kKCk7Ci0KLSAgICB2b2lkIGRpc3BhdGNoQ29tbWFuZChjb25zdCBTdHJp
bmcmIGNvbW1hbmQpOwotICAgIHZvaWQgZGlzcGF0Y2hDb21tYW5kKGNvbnN0IFN0cmluZyYgY29t
bWFuZCwgY29uc3QgU3RyaW5nJiBhcmd1bWVudCk7Ci0gICAgdm9pZCBkaXNwYXRjaENvbW1hbmQo
Y29uc3QgU3RyaW5nJiBjb21tYW5kLCBib29sIGFyZ3VtZW50KTsKLSAgICB2b2lkIGRpc3BhdGNo
TWVzc2FnZUFzeW5jKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7Ci0KLSAgICB2b2lkIGV2YWx1YXRl
RXhwcmVzc2lvbkZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7Ci1wcml2YXRlOgotICAgIHZvaWQg
ZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbihjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGV2YWx1
YXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKLQotICAgIFdlYlBhZ2UmIG1fcGFnZTsKLSAgICBEZXF1
ZTxTdHJpbmc+IG1fcXVldWU7Ci0gICAgYm9vbCBtX2Zyb250ZW5kTG9hZGVkIHsgZmFsc2UgfTsK
LSAgICBib29sIG1fc3VzcGVuZGVkIHsgZmFsc2UgfTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JVSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclVJLmNwcAppbmRleCBkNzliZjhiYzdiZGE3MDBkZGVmNjI0MGVkZDQ5ZWIyNGQzNDcy
YWI0Li5iMzZmYmUzMzhmNDdiMjQ0ZDEyMTg2N2EwNGMyNzE5NjFmMWZmN2ZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmNw
cApAQCAtNTksNyArNTksNyBAQCB2b2lkIFdlYkluc3BlY3RvclVJOjplbmFibGVGcm9udGVuZEZl
YXR1cmVzKCkKIAogV2ViSW5zcGVjdG9yVUk6OldlYkluc3BlY3RvclVJKFdlYlBhZ2UmIHBhZ2Up
CiAgICAgOiBtX3BhZ2UocGFnZSkKLSAgICAsIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyKHBhZ2Up
CisgICAgLCBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcihJbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXI6OmNyZWF0ZSgqcGFnZS5jb3JlUGFnZSgpKSkKICAgICAsIG1fZGVidWdnYWJsZUluZm8o
RGVidWdnYWJsZUluZm9EYXRhOjplbXB0eSgpKQogewogICAgIFdlYkluc3BlY3RvclVJOjplbmFi
bGVGcm9udGVuZEZlYXR1cmVzKCk7CkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgV2ViSW5zcGVjdG9y
VUk6OmVzdGFibGlzaENvbm5lY3Rpb24oV2ViUGFnZVByb3h5SWRlbnRpZmllciBpbnNwZWN0ZWRQ
YWdlSWRlCiAgICAgbV91bmRlclRlc3QgPSB1bmRlclRlc3Q7CiAgICAgbV9pbnNwZWN0aW9uTGV2
ZWwgPSBpbnNwZWN0aW9uTGV2ZWw7CiAKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5yZXNl
dCgpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5yZXNldCgpOwogCiAgICAgbV9mcm9u
dGVuZENvbnRyb2xsZXIgPSAmbV9wYWdlLmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIo
KTsKICAgICBtX2Zyb250ZW5kQ29udHJvbGxlci0+c2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQo
dGhpcyk7CkBAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSTo6d2luZG93T2Jq
ZWN0Q2xlYXJlZCgpCiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmZyb250ZW5kTG9hZGVkKCkKIHsK
LSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5mcm9udGVuZExvYWRlZCgpOworICAgIG1fZnJv
bnRlbmRBUElEaXNwYXRjaGVyLT5mcm9udGVuZExvYWRlZCgpOwogCiAgICAgLy8gVGVsbCB0aGUg
bmV3IGZyb250ZW5kIGFib3V0IHRoZSBjdXJyZW50IGRvY2sgc3RhdGUuIElmIHRoZSB3aW5kb3cg
b2JqZWN0CiAgICAgLy8gY2xlYXJlZCBkdWUgdG8gYSByZWxvYWQsIHRoZSBkb2NrIHN0YXRlIHdv
bid0IGJlIHJlc2VudCBmcm9tIFVJUHJvY2Vzcy4KQEAgLTI0NCwyOCArMjQ0LDI3IEBAIHZvaWQg
V2ViSW5zcGVjdG9yVUk6OnNldERvY2tTaWRlKERvY2tTaWRlIGRvY2tTaWRlKQogCiAgICAgbV9k
b2NrU2lkZSA9IGRvY2tTaWRlOwogCi0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0
Y2hDb21tYW5kKCJzZXREb2NrU2lkZSJfcywgU3RyaW5nKGRvY2tTaWRlU3RyaW5nKSk7CisgICAg
bV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0RG9ja1NpZGUiX3Ms
IHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShTdHJpbmcoZG9ja1NpZGVTdHJpbmcpKSB9KTsKIH0KIAog
dm9pZCBXZWJJbnNwZWN0b3JVSTo6c2V0RG9ja2luZ1VuYXZhaWxhYmxlKGJvb2wgdW5hdmFpbGFi
bGUpCiB7CiAgICAgbV9kb2NraW5nVW5hdmFpbGFibGUgPSB1bmF2YWlsYWJsZTsKIAotICAgIG1f
ZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0RG9ja2luZ1VuYXZhaWxh
YmxlIl9zLCB1bmF2YWlsYWJsZSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3Bh
dGNoQ29tbWFuZCgic2V0RG9ja2luZ1VuYXZhaWxhYmxlIl9zLCB7IEpTT046OlZhbHVlOjpjcmVh
dGUodW5hdmFpbGFibGUpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpzZXRJc1Zpc2li
bGUoYm9vbCB2aXNpYmxlKQogewogICAgIG1faXNWaXNpYmxlID0gdmlzaWJsZTsKIAotICAgIG1f
ZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0SXNWaXNpYmxlIl9zLCB2
aXNpYmxlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJz
ZXRJc1Zpc2libGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh2aXNpYmxlKSB9KTsKIH0KIAog
dm9pZCBXZWJJbnNwZWN0b3JVSTo6dXBkYXRlRmluZFN0cmluZyhjb25zdCBTdHJpbmcmIGZpbmRT
dHJpbmcpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIEpTT046OlZhbHVlOjpl
c2NhcGVTdHJpbmcoYnVpbGRlciwgZmluZFN0cmluZyk7Ci0gICAgbV9mcm9udGVuZEFQSURpc3Bh
dGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJ1cGRhdGVGaW5kU3RyaW5nIl9zLCBidWlsZGVyLnRvU3Ry
aW5nKCkpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInVw
ZGF0ZUZpbmRTdHJpbmciX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShidWlsZGVyLnRvU3RyaW5n
KCkpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpjaGFuZ2VBdHRhY2hlZFdpbmRvd0hl
aWdodCh1bnNpZ25lZCBoZWlnaHQpCkBAIC0zMjUsNzMgKzMyNCw3MyBAQCB2b2lkIFdlYkluc3Bl
Y3RvclVJOjpzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZShib29sIGF2YWlsYWJsZSkKICAg
ICBBU1NFUlQoIWF2YWlsYWJsZSB8fCBzdXBwb3J0c0RpYWdub3N0aWNMb2dnaW5nKCkpOwogICAg
IG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUgPSBhdmFpbGFibGU7CiAKLSAgICBtX2Zyb250
ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNldERpYWdub3N0aWNMb2dnaW5nQXZh
aWxhYmxlIl9zLCBtX2RpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKTsKKyAgICBtX2Zyb250ZW5k
QVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWls
YWJsZSJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFi
bGUpIH0pOwogfQogI2VuZGlmCiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNob3dDb25zb2xlKCkK
IHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNob3dDb25z
b2xlIl9zKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJz
aG93Q29uc29sZSJfcyk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNob3dSZXNvdXJjZXMo
KQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2hvd1Jl
c291cmNlcyJfcyk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFu
ZCgic2hvd1Jlc291cmNlcyJfcyk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNob3dNYWlu
UmVzb3VyY2VGb3JGcmFtZShjb25zdCBTdHJpbmcmIGZyYW1lSWRlbnRpZmllcikKIHsKLSAgICBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNob3dNYWluUmVzb3VyY2VG
b3JGcmFtZSJfcywgZnJhbWVJZGVudGlmaWVyKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hl
ci0+ZGlzcGF0Y2hDb21tYW5kKCJzaG93TWFpblJlc291cmNlRm9yRnJhbWUiX3MsIHsgSlNPTjo6
VmFsdWU6OmNyZWF0ZShmcmFtZUlkZW50aWZpZXIpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3Rv
clVJOjpzdGFydFBhZ2VQcm9maWxpbmcoKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVy
LmRpc3BhdGNoQ29tbWFuZCgic2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkIl9zLCB0cnVlKTsK
KyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXRUaW1lbGlu
ZVByb2ZpbGluZ0VuYWJsZWQiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh0cnVlKSB9KTsKIH0K
IAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6c3RvcFBhZ2VQcm9maWxpbmcoKQogewotICAgIG1fZnJv
bnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0VGltZWxpbmVQcm9maWxpbmdF
bmFibGVkIl9zLCBmYWxzZSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNo
Q29tbWFuZCgic2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkIl9zLCB7IEpTT046OlZhbHVlOjpj
cmVhdGUoZmFsc2UpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpzdGFydEVsZW1lbnRT
ZWxlY3Rpb24oKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFu
ZCgic2V0RWxlbWVudFNlbGVjdGlvbkVuYWJsZWQiX3MsIHRydWUpOworICAgIG1fZnJvbnRlbmRB
UElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNldEVsZW1lbnRTZWxlY3Rpb25FbmFibGVk
Il9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUodHJ1ZSkgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVj
dG9yVUk6OnN0b3BFbGVtZW50U2VsZWN0aW9uKCkKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0
Y2hlci5kaXNwYXRjaENvbW1hbmQoInNldEVsZW1lbnRTZWxlY3Rpb25FbmFibGVkIl9zLCBmYWxz
ZSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0RWxl
bWVudFNlbGVjdGlvbkVuYWJsZWQiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShmYWxzZSkgfSk7
CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmRpZFNhdmUoY29uc3QgU3RyaW5nJiB1cmwpCiB7
Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzYXZlZFVSTCJf
cywgdXJsKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJz
YXZlZFVSTCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHVybCkgfSk7CiB9CiAKIHZvaWQgV2Vi
SW5zcGVjdG9yVUk6OmRpZEFwcGVuZChjb25zdCBTdHJpbmcmIHVybCkKIHsKLSAgICBtX2Zyb250
ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoImFwcGVuZGVkVG9VUkwiX3MsIHVybCk7
CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgiYXBwZW5kZWRU
b1VSTCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHVybCkgfSk7CiB9CiAKIHZvaWQgV2ViSW5z
cGVjdG9yVUk6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7
Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hNZXNzYWdlQXN5bmMobWVzc2Fn
ZSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoTWVzc2FnZUFzeW5jKG1l
c3NhZ2UpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpldmFsdWF0ZUluRnJvbnRlbmRGb3JU
ZXN0aW5nKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlz
cGF0Y2hlci5ldmFsdWF0ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKGV4cHJlc3Npb24pOworICAgIG1f
ZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5ldmFsdWF0ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKGV4cHJl
c3Npb24pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpwYWdlUGF1c2VkKCkKIHsKLSAgICBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5zdXNwZW5kKCk7CisgICAgbV9mcm9udGVuZEFQSURpc3Bh
dGNoZXItPnN1c3BlbmQoKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6cGFnZVVucGF1c2Vk
KCkKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci51bnN1c3BlbmQoKTsKKyAgICBtX2Zy
b250ZW5kQVBJRGlzcGF0Y2hlci0+dW5zdXNwZW5kKCk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9y
VUk6OnNlbmRNZXNzYWdlVG9CYWNrZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaAppbmRl
eCAwMjZhNzEyYTA4OTlkMDQ1NWYzMTg1YWI3OTc2YzE0MDA1ZDhlYmFiLi5hNmVlNzEzMzkzOWVm
MmEwNGI2Yjg2MmIyOGU4MjE3ZmUyMGRiMWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oCkBAIC0yNyw5ICsyNyw5IEBACiAK
ICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRGVidWdnYWJsZUluZm9EYXRhLmgi
Ci0jaW5jbHVkZSAiV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgiCiAjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9y
RGVidWdnYWJsZVR5cGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5kSG9zdC5oPgogCkBAIC0xNDIs
NiArMTQyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9CYWNr
ZW5kKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6Okluc3BlY3RvckZyb250
ZW5kQVBJRGlzcGF0Y2hlciYgZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkgZmluYWwgeyByZXR1cm4g
bV9mcm9udGVuZEFQSURpc3BhdGNoZXI7IH0KIAogICAgIHZvaWQgcGFnZVBhdXNlZCgpIG92ZXJy
aWRlOwogICAgIHZvaWQgcGFnZVVucGF1c2VkKCkgb3ZlcnJpZGU7CkBAIC0xNTIsNyArMTUzLDcg
QEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJJbnNwZWN0b3JVSShXZWJQYWdlJik7CiAKICAg
ICBXZWJQYWdlJiBtX3BhZ2U7Ci0gICAgV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyOworICAgIFJlZjxXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXI+IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyOwogICAgIFJlZlB0cjxX
ZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q+IG1fZnJvbnRlbmRIb3N0OwogCiAgICAgLy8g
S2VlcCBhIHBvaW50ZXIgdG8gdGhlIGZyb250ZW5kJ3MgaW5zcGVjdG9yIGNvbnRyb2xsZXIgcmF0
aGVyIHRoYW4gZ29pbmcgdGhyb3VnaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA0ZjE5YTBl
ZDZjZDI0YWMzMzQzOTE4ZmJiYjliM2Y2MjY3YWMxMDk3Li4yNDQ1MmI2ODJmNDkzZjA0MDNkY2Zl
NjFiY2FhNzIwYzZlNGZhMDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTAzLDYgKzEw
Myw4IEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCisjaW5jbHVkZSAiV2ViQXV0
aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJBdXRoblBy
b2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrV2ViQXV0aGVudGljYXRp
b25Db25maWd1cmF0aW9uLmg+CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9jZi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnRDRi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L2NmL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcApp
bmRleCA3Yjg2OTgxYTNmNDhlNTBmOGIzY2NhYzM3MDY5MTdkNGFmMWZkYmQ2Li4xNmRjMTQ0ZGNj
OThlMjU2YzA1MzI2N2Y1MmQxZDNlNGU0ODk1ODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L2NmL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L2NmL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENG
LmNwcApAQCAtOTYsNyArOTYsNyBAQCBzdGF0aWMgdm9pZCBkZWxldGVTZXR0aW5nKGNvbnN0IFN0
cmluZyYga2V5KQogCiB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6c2VuZE1lc3NhZ2VUb0Zyb250
ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBtX2Zyb250ZW5kQ2xpZW50LT5kaXNw
YXRjaE1lc3NhZ2VBc3luYyhtZXNzYWdlKTsKKyAgICBtX2Zyb250ZW5kQ2xpZW50LT5mcm9udGVu
ZEFQSURpc3BhdGNoZXIoKS5kaXNwYXRjaE1lc3NhZ2VBc3luYyhtZXNzYWdlKTsKIH0KIAogYm9v
bCBXZWJJbnNwZWN0b3JDbGllbnQ6Omluc3BlY3RvckF0dGFjaERpc2FibGVkKCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4
MjZiYTJmMzk1NmY2MjBiMGFlNDQ1ZTZkZGE5NzhkNWMzZjIwZjE5Li45YmEzZWJhM2ZkOTQyZjM1
NzkxMDA0ODRlNzc4YThmYWU5NDhlZTg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMTAt
MjkgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogbW92ZSBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgdG8gV2ViQ29yZSwgY2xlYW4g
dXAgdXNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3ODM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM4NDQwNz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9j
YWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvY2FsbC1mcmFtZS10aGlzLWhvc3QuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvaGl0LWJyZWFrcG9pbnQtZnJvbS1jb25zb2xlLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0bWw6CisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sOgorICAgICAgICBT
b21lIHRlc3RzIHNlZW0gdG8gY2FsbCBQcm90b2NvbFRlc3QuY29tcGxldGVUZXN0KCkgZnJvbSB0
aGUgaGFuZGxlciBvZiBEZWJ1Z2dlci5wYXVzZWQsIHdoZW4KKyAgICAgICAgdGhlIGRlYnVnZ2Vy
IGlzIHN0aWxsIHBhdXNlZC4gVGhpcyBjYXVzZXMgdGltZW91dHMgYWZ0ZXIgdGhpcyByZWZhY3Rv
cmluZywgc2luY2Ugbm90IHJlc3VtaW5nIG1lYW5zIHRoYXQKKyAgICAgICAgd2UnbGwgZ2V0IHN0
dWNrIGluIHRoZSBkZWJ1Z2dlcidzIG5lc3RlZCBydW4gbG9vcCBhbmQgbmV2ZXIgcmV0dXJuLgor
CiAyMDIwLTEwLTI5ICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gR2FyZGVuaW5nIG9mIG5ldyBmYWlsdXJlcyBhZnRl
ciByMjY5MTc3IGFuZCBtYXJrIG1vcmUgZmxha3kgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0Lmpz
CmluZGV4IDgzMWE2MWY2Nzg1ZTQ0ODhiMTJkN2RmZGVmMWZlNjZkMzc1NTEyMjIuLmYyMGVkOWIy
ZTNmYjM0NmNjZGY4ZWZmYjUwOGFjODMyMjljZjk4OGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0Lmpz
CkBAIC02NSwxMSArNjUsMTIgQEAgVGVzdFBhZ2UubG9nID0gd2luZG93LmxvZyA9IGZ1bmN0aW9u
KHRleHQpCiAKIFRlc3RQYWdlLmNsb3NlVGVzdCA9IHdpbmRvdy5jbG9zZVRlc3QgPSBmdW5jdGlv
bigpCiB7Ci0gICAgd2luZG93LmludGVybmFscy5jbG9zZUR1bW15SW5zcGVjdG9yRnJvbnRlbmQo
KTsKLQogICAgIC8vIFRoaXMgY29kZSBtaWdodCBiZSBleGVjdXRlZCB3aGlsZSB0aGUgZGVidWdn
ZXIgaXMgc3RpbGwgcnVubmluZyB0aHJvdWdoIGEgc3RhY2sgYmFzZWQgRXZlbnRMb29wLgogICAg
IC8vIFVzZSBhIHNldFRpbWVvdXQgdG8gZGVmZXIgdG8gYSBjbGVhbiBzdGFjayBiZWZvcmUgbGV0
dGluZyB0aGUgdGVzdFJ1bm5lciBsb2FkIHRoZSBuZXh0IHRlc3QuCi0gICAgc2V0VGltZW91dCgo
KSA9PiB7IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOyB9LCAwKTsKKyAgICBzZXRUaW1lb3V0KCgp
ID0+IHsKKyAgICAgICAgd2luZG93LmludGVybmFscy5jbG9zZUR1bW15SW5zcGVjdG9yRnJvbnRl
bmQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSwgMCk7CiB9Owog
CiBUZXN0UGFnZS5ydW5UZXN0ID0gd2luZG93LnJ1blRlc3QgPSBmdW5jdGlvbigpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1ldmFsLXdpdGgt
ZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2lu
dC1ldmFsLXdpdGgtZXhjZXB0aW9uLmh0bWwKaW5kZXggNzM0OGMzNTYzNWFiYjdjNTJmMDEwY2U4
MWE0YTFkOGMwN2U4YWEzNy4uYTcwNjUyNmU5MzI0ZWUyMzYyNWRlYzJlMDg5OGFjZTBmNmZhYmI4
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQt
ZXZhbC13aXRoLWV4Y2VwdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24uaHRtbApAQCAtNSw2ICs1LDggQEAK
IDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkKIHsKKyAgICBQcm90b2NvbFRlc3QuZGVidWcoKTsK
KwogICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFy
c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgIHsKICAgICAgICAgaWYgKC9yZXNv
dXJjZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVzdChtZXNzYWdlT2JqZWN0LnBhcmFtcy51cmwpKSB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS1m
dW5jdGlvbi1uYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1m
cmFtZS1mdW5jdGlvbi1uYW1lLmh0bWwKaW5kZXggZTdlOTdlODEyM2VkMWQ1YjJhNThmNjAyMGYz
YzkzMGUyZThiOWVkNC4uNjdlMDk0MmU3YTIyYjNiMTdmNDAxNjIxOGVhOGVkZmJlNTE2OGQwMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVu
Y3Rpb24tbmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxs
LWZyYW1lLWZ1bmN0aW9uLW5hbWUuaHRtbApAQCAtMzIsNiArMzIsOCBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNlZCJd
ID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CiAgICAgICAgIFByb3RvY29sVGVzdC5s
b2coIkhpdCBCcmVha3BvaW50ISIpOworICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuZGlzYWJsZSIpOworCiAgICAgICAgIHZhciBmdW5jdGlvbk5hbWVzID0g
WyBdOwogICAgICAgICB2YXIgaTsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IDM7IGkrKykKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMt
aG9zdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhp
cy1ob3N0Lmh0bWwKaW5kZXggNGY3MTg1Mjk0MGIzOGQ3MzZjZmFlMDhjNGZlOTBlYjQ4OWEzNjU3
OC4uZTczZjg4ODYyYWU0NmNkMmRhNWIzODMwN2E5ZTg0ODI2MjJjN2M3ZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0
Lmh0bWwKQEAgLTMyLDYgKzMyLDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgSW5zcGVjdG9yUHJv
dG9jb2wuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VP
YmplY3QpCiAgICAgewogICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJIaXQgQnJlYWtwb2ludCEi
KTsKKyAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmRpc2Fi
bGUiKTsKKwogICAgICAgICB2YXIgdGhpc1ZhbHVlcyA9IFsgXTsKICAgICAgICAgdmFyIGk7CiAg
ICAgICAgIGZvciAoaSA9IDA7IGkgPCAzOyBpKyspCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvaGl0LWJyZWFrcG9pbnQtZnJvbS1jb25zb2xlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvaGl0LWJyZWFrcG9pbnQtZnJvbS1jb25zb2xlLmh0
bWwKaW5kZXggNTIxYzllNDE3OWU4MjBmM2ViYmRiOGU1ZTM2ZDhmYWU5MTg2YzdhNy4uMTU0NjJh
NDcwZDI3OWY2MzhmMmMwYThlZGYxY2MzYjVlNjQzZDMyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2hpdC1icmVha3BvaW50LWZyb20tY29uc29sZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9oaXQtYnJlYWtwb2ludC1mcm9tLWNv
bnNvbGUuaHRtbApAQCAtMzAsNiArMzAsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBJbnNwZWN0
b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNlZCJdID0gZnVuY3Rpb24obWVz
c2FnZU9iamVjdCkKICAgICB7CiAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIkhpdCBCcmVha3Bv
aW50ISIpOworICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgiRGVidWdnZXIu
ZGlzYWJsZSIpOworCiAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIlBBU1MiKTsKICAgICAgICAg
UHJvdG9jb2xUZXN0LmNvbXBsZXRlVGVzdCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVl
Lmh0bWwKaW5kZXggMWZlZDY3YzQ2ZmQ1Yjk0MjM5ODYxOTkzOWIwNGEwNzAwY2ZmNTk1Mi4uMGY1
YTMxNTRiMzcxMzdmNzllNDY2ZDk3YjQwMzQ2MzhmODYzYjc1NCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0Nv
bnRpbnVlLmh0bWwKQEAgLTQ0LDYgKzQ0LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgSW5zcGVj
dG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1l
c3NhZ2VPYmplY3QpCiAgICAgewogICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJIaXQgQnJlYWtw
b2ludCEiKTsKKyAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVnZ2Vy
LmRpc2FibGUiKTsKIAogICAgICAgICBpZiAoIWFsbG93ZWRUb0hpdEJyZWFrcG9pbnQpIHsKICAg
ICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IHNob3VsZCBub3QgaGF2ZSBoaXQgYnJl
YWtwb2ludC4iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9z
ZXRCcmVha3BvaW50LWNvbHVtbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtY29sdW1uLmh0bWwKaW5kZXggZmI2MzUzMTIyOThkNmZhNjk0OTVlMTEy
YWExZTM4YTM2OWU2YmNkNC4uNzg2OTJmZGEwMGNkNzQ2MTNlMjE3ZjdiZjE1ZWJhYjk0MjhlOWI2
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9p
bnQtY29sdW1uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJy
ZWFrcG9pbnQtY29sdW1uLmh0bWwKQEAgLTM3LDYgKzM3LDggQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJFdmFsdXRlZCB2YWx1ZSBvZiBgYWAgKGV4cGVj
dGluZyBudW1iZXIgMSkgd2FzOiAiICsgSlNPTi5zdHJpbmdpZnkobWVzc2FnZU9iamVjdC5yZXN1
bHQucmVzdWx0KSk7CiAgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgi
RGVidWdnZXIuZXZhbHVhdGVPbkNhbGxGcmFtZSIsIHtjYWxsRnJhbWVJZDogY2FsbEZyYW1lSWRl
bnRpZmllciwgZXhwcmVzc2lvbjogImIifSwgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgewogICAg
ICAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIkV2YWx1dGVkIHZhbHVlIG9mIGBiYCAoZXhw
ZWN0aW5nIHVuZGVmaW5lZCkgd2FzOiAiICsgSlNPTi5zdHJpbmdpZnkobWVzc2FnZU9iamVjdC5y
ZXN1bHQucmVzdWx0KSk7CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5k
Q29tbWFuZCgiRGVidWdnZXIuZGlzYWJsZSIpOwogICAgICAgICAgICAgICAgIFByb3RvY29sVGVz
dC5jb21wbGV0ZVRlc3QoKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlv
bi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29u
ZGl0aW9uLmh0bWwKaW5kZXggYzJhNzI5NTZhM2U1MjdkMjJkNDFiYjgwNDA4NDlkZTA3MGEwMGUx
OS4uYzliYjlkODNiOTVjYTEzOWQ3ZDg1YTFlNDkzZjIwMTU1MDdjMTllNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29u
ZGl0aW9uLmh0bWwKQEAgLTMsNiArMywxMiBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgorZnVu
Y3Rpb24gZGlzYWJsZURlYnVnZ2VyQW5kQ29tcGxldGVUZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JQ
cm90b2NvbC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZGlzYWJsZSIpOworICAgIFByb3RvY29sVGVz
dC5jb21wbGV0ZVRlc3QoKTsKK30KKwogZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgSW5zcGVjdG9y
UHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKQEAgLTQ4LDEzICs1
NCwxNSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QubG9n
KCJFdmFsdXRlZCB2YWx1ZSBvZiBgYWAgKGV4cGVjdGluZyBudW1iZXIgNCkgd2FzOiAiICsgSlNP
Ti5zdHJpbmdpZnkobWVzc2FnZU9iamVjdC5yZXN1bHQucmVzdWx0KSk7CiAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmV2YWx1YXRlT25DYWxs
RnJhbWUiLCB7Y2FsbEZyYW1lSWQ6IGNhbGxGcmFtZUlkZW50aWZpZXIsIGV4cHJlc3Npb246ICJi
In0sIGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKICAgICAgICAgICAgICAgICAgICAgUHJvdG9j
b2xUZXN0LmxvZygiRXZhbHV0ZWQgdmFsdWUgb2YgYGJgIChleHBlY3RpbmcgbnVtYmVyIDcpIHdh
czogIiArIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2VPYmplY3QucmVzdWx0LnJlc3VsdCkpOworCisg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dl
ci5kaXNhYmxlIik7CiAgICAgICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIlBBU1M6
IGhpdCBicmVha3BvaW50cyB3aXRoIGV4cGVjdGVkIHZhbHVlcyIpOwotICAgICAgICAgICAgICAg
ICAgICBQcm90b2NvbFRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICAgICAgICAgIGRp
c2FibGVEZWJ1Z2dlckFuZENvbXBsZXRlVGVzdCgpOwogICAgICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBQcm90b2NvbFRlc3Qu
bG9nKCJGQUlMOiBoaXQgdG9vIG1hbnkgYnJlYWtwb2ludHMuIik7Ci0gICAgICAgICAgICBQcm90
b2NvbFRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICBkaXNhYmxlRGVidWdnZXJBbmRD
b21wbGV0ZVRlc3QoKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNjksNyArNzcsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICAgICAgaWYgKCFpbkJyZWFrcG9pbnQpIHsKICAgICAgICAgICAgICAgICAgICAgUHJvdG9j
b2xUZXN0LmxvZygiRkFJTDogRGlkIG5vdCBoaXQgY29uZGl0aW9uYWwgYnJlYWtwb2ludCB0aGUg
c2Vjb25kIHRpbWUiKTsKLSAgICAgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmNvbXBsZXRl
VGVzdCgpOworICAgICAgICAgICAgICAgICAgICBkaXNhYmxlRGVidWdnZXJBbmRDb21wbGV0ZVRl
c3QoKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LCAxMDApOwogICAgICAgICB9
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC5o
dG1sCmluZGV4IGFjM2RiYjY3NWJhOTE3MDU1MDQ2N2VlNjU4Y2ZjNjAxOWQ3YzcyMzQuLjcwMzQ4
YTlkNjdhYzExOTZjMWY4YzA0M2ZmYzU5NDc1MzkwMGM2YjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQuaHRtbApAQCAtMzMsNiArMzMsOCBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIkRl
YnVnZ2VyLnBhdXNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CiAgICAgICAg
IFByb3RvY29sVGVzdC5sb2coIkhpdCBCcmVha3BvaW50ISIpOworICAgICAgICBJbnNwZWN0b3JQ
cm90b2NvbC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZGlzYWJsZSIpOworCiAgICAgICAgIFByb3Rv
Y29sVGVzdC5sb2coIlBBU1MiKTsKICAgICAgICAgUHJvdG9jb2xUZXN0LmNvbXBsZXRlVGVzdCgp
OwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRC
cmVha3BvaW50QnlVcmwtc291cmNlVVJMLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sCmluZGV4IGY3YTllYWYzM2Nh
NDdkYzY3YzY5YWIwNTYxYWY2MWI3N2JhZTFhY2EuLjU3MzQzNmJlNTk3MTlhZWI1YmI3NDFmZDg5
Y2NlMGU1ZDFmMTM5ZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNlVVJMLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwuaHRtbApAQCAtMzIs
NiArMzIsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2co
IkV2YWx1dGVkIHZhbHVlIG9mIGBhYCAoZXhwZWN0aW5nIG51bWJlciAxKSB3YXM6ICIgKyBKU09O
LnN0cmluZ2lmeShtZXNzYWdlT2JqZWN0LnJlc3VsdC5yZXN1bHQpKTsKICAgICAgICAgICAgIElu
c3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZyYW1l
Iiwge2NhbGxGcmFtZUlkOiBjYWxsRnJhbWVJZGVudGlmaWVyLCBleHByZXNzaW9uOiAiYyJ9LCBm
dW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7CiAgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0Lmxv
ZygiRXZhbHV0ZWQgdmFsdWUgb2YgYGNgIChleHBlY3RpbmcgdW5kZWZpbmVkKSB3YXM6ICIgKyBK
U09OLnN0cmluZ2lmeShtZXNzYWdlT2JqZWN0LnJlc3VsdC5yZXN1bHQpKTsKKworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5kaXNhYmxlIik7
CiAgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmNvbXBsZXRlVGVzdCgpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412761</attachid>
            <date>2020-10-30 10:03:31 -0700</date>
            <delta_ts>2020-10-30 11:43:55 -0700</delta_ts>
            <desc>Patch v2.4 - for EWS</desc>
            <filename>bug-217835-20201030100330.patch</filename>
            <type>text/plain</type>
            <size>76803</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI2OWI0YzJlYzgyOTE2
NzA1NGU2ZmMzMWVlN2I1NDU5ZDQ3NDRhMi4uYWFiMzRkOGZlMTZmZDM5NWZmOTNkYzYwM2NmOGUz
NDQ2NmEyMjAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIwLTEwLTE2ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUg
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIHRvIFdlYkNvcmUsIGNsZWFuIHVwIHVzZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgzNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzODQ0MDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGV2aW4gUm91c3NvLgorCisgICAgICAgIEV4cG9zZSB0aGUgZGlzcGF0Y2hlciBhcyBwYXJ0IG9m
IHRoZSBJbnNwZWN0b3JGcm9udGVuZENsaWVudCBBUEkgc28gdGhhdCBvdGhlciBjb2RlCisgICAg
ICAgIGNhbiB1c2UgdGhlIGRpc3BhdGNoZXIgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0J3MgYSBX
ZWJJbnNwZWN0b3JVSSBvciBSZW1vdGVXZWJJbnNwZWN0b3JVSS4KKworICAgICAgICBBZGQgYW4g
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIGluc3RhbmNlIGFuZCBnZXR0ZXIgdG8gSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC4KKworICAgICAgICBBZG9wdCB0aGUgSlNPTlZhbHVl
LWJhc2VkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2goKSBtZXRob2QK
KyAgICAgICAgaW4gSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC4gUmVtb3ZlIHRoZSByZWR1
bmRhbnQgcGFyYWxsZWwgcXVldWluZyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgUmVtb3ZlIHJl
ZHVuZGFudCBwdWJsaWMgbWV0aG9kcyB0aGF0IGFyZSBhdmFpbGFibGUgb24gSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBNb3ZlZCBmaWxlcy4K
KworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpyZXNl
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmZy
b250ZW5kTG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcjo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OnVuc3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoTWVzc2FnZUFzeW5jKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVP
clF1ZXVlRXhwcmVzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OmV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZUV4cHJlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0
ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKToKKyAgICAgICAgQWRkIG5ldyBkaXNwYXRjaCgpIG1ldGhv
ZC4gUmVtb3ZlIG90aGVyIGRpc3BhdGNoIG1ldGhvZHMgdGhhdCBjYW4gYmUgZXhwcmVzc2VkCisg
ICAgICAgIHVzaW5nIHRoZSBuZXcgSlNPTjo6VmFsdWUtYmFzZWQgbWV0aG9kLiBJZiBpdCdzIG5v
dCBwb3NzaWJsZSB0byBldmFsdWF0ZSBKUworICAgICAgICBpbW1lZGlhdGVseSwgc2NoZWR1bGUg
YSBvbmUtc2hvdCB0YXNrIHRvIHRyeSBhZ2FpbiBvbiBhIGRpZmZlcmVudCBldmVudCBsb29wIHR1
cm4uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oLgorICAgICAgICBBZGQgbmV3IGRpc3BhdGNo
KCkgbWV0aG9kIHdoaWNoIHRha2VzIGEgdmVjdG9yIG9mIEpTT046OlZhbHVlIG9iamVjdHMgYW5k
CisgICAgICAgIHNlcmlhbGl6ZXMgdGhlbSBpbnRvIGNvbW1hbmQgYXJndW1lbnRzIGZvciB0aGUg
ZnJvbnRlbmQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Okluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbDo6ZnJvbnRlbmRMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6cGFnZVBhdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpwYWdlVW5wYXVzZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RG9ja2luZ1VuYXZhaWxhYmxlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldEF0dGFj
aGVkV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9j
YWw6OnNldERlYnVnZ2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDo6c2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnN0YXJ0UHJvZmlsaW5nSmF2
YVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
OjpzdG9wUHJvZmlsaW5nSmF2YVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsOjpzaG93Q29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzaG93UmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNob3dNYWluUmVzb3VyY2VGb3JGcmFt
ZSk6CisgICAgICAgIFVzZSBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgdG8gZGlzcGF0
Y2ggY29tbWFuZHMgdG8gdGhlIGZyb250ZW5kLgorCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaE1lc3NhZ2UpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZGlz
cGF0Y2hNZXNzYWdlQXN5bmMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6ZXZhbHVhdGVPbkxvYWQpOiBEZWxldGVkLgorICAgICAgICBU
aGVzZSBhcmUgcmVkdW5kYW50IHdpdGggSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLgor
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yU3R1YkZyb250ZW5kOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOiBVc2UgZnJvbnRlbmQg
ZGlzcGF0Y2hlciBkaXJlY3RseS4KKwogMjAyMC0xMC0yOSAgQWRpdHlhIEtlZXJ0aGkgIDxha2Vl
cnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBSZW1vdmUgc29mdCBsaW5raW5nIG9m
IE5ldHdvcmtFeHRlbnNpb24uZnJhbWV3b3JrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc2NDUzZDgxYjNmZWQzOTNl
NjBmZmQ3ZmQ2ZTc0NzZhYjcwYjYyNzYuLmQ5ODQ4YmE4ZmMyYzU0ODJiNWE2OTdhNDA4ZDU5M2Fm
YmVlMmRhNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMTAtMjEgIEJyaWFuIEJ1
cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgdG8gV2ViQ29yZSwgY2xlYW4gdXAgdXNlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3ODM1CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MDM4NDQwNz4KKworICAgICAgICBSZXZpZXdlZCBieSBEZXZp
biBSb3Vzc28uCisKKyAgICAgICAgQWRvcHQgdGhlIEpTT05WYWx1ZS1iYXNlZCBJbnNwZWN0b3JG
cm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoKCkgbWV0aG9kCisgICAgICAgIGluIFdlYklu
c3BlY3RvclVJIGFuZCBSZW1vdGVJbnNwZWN0b3JVSSBtZXRob2RzIHRoYXQgZGlzcGF0Y2ggdG8g
dGhlIGZyb250ZW5kLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IE1vdmUgZmlsZXMuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OlJlbW90ZVdlYkluc3BlY3RvclVJKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmluaXRpYWxpemUpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6dXBkYXRlRmluZFN0cmluZyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpkaWRTYXZlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmRpZEFwcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVdlYkluc3BlY3RvclVJOjpmcm9udGVuZExvYWRlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVdlYkluc3BlY3RvclVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6cGFnZVBhdXNlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVdlYkluc3BlY3RvclVJOjpwYWdlVW5wYXVzZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVXZWJJbnNwZWN0b3JVSTo6c2V0RGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUpOgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkluc3BlY3RvclVJOjpXZWJJbnNwZWN0b3JVSSk6CisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvclVJOjpzZXREb2NrU2lkZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJ
OjpzZXREb2NraW5nVW5hdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JV
STo6c2V0SXNWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnVwZGF0
ZUZpbmRTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2V0RGlhZ25v
c3RpY0xvZ2dpbmdBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6
c2hvd0NvbnNvbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2hvd1Jlc291
cmNlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzaG93TWFpblJlc291cmNl
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c3RhcnRQYWdlUHJv
ZmlsaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnN0b3BQYWdlUHJvZmls
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnN0YXJ0RWxlbWVudFNlbGVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzdG9wRWxlbWVudFNlbGVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpkaWRTYXZlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OmRpZEFwcGVuZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkluc3BlY3RvclVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJJbnNwZWN0b3JVSTo6ZXZhbHVhdGVJbkZyb250ZW5kRm9yVGVzdGluZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpwYWdlUGF1c2VkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yVUk6OnBhZ2VVbnBhdXNlZCk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIEFkZCBtaXNzaW5nIGhl
YWRlciBpbmNsdWRlcyAocmVsYXRlZCB0byB1bmlmaWVkIHNvdXJjZXMgY2hhbmdlcyBmcm9tIHIy
NjkxNjgpLgorCiAyMDIwLTEwLTI5ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNv
bT4KIAogICAgICAgICBbQ29jb2FdIFJlbW92ZSBzb2Z0IGxpbmtpbmcgb2YgTmV0d29ya0V4dGVu
c2lvbi5mcmFtZXdvcmsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvY2YvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9jZi9DaGFuZ2VMb2cKaW5kZXggMDZlNzk2MGVmZjZl
YzA2NjE0YWVkZWRkYTNkZTBiYTc3MTI0YTEzMC4uZWU3NGUxNjQ4NjYxM2Q1NTNmYThiYTgwMDk0
MjQ5MzJhYzliODFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9jZi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9jZi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAyMC0xMC0xNiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBtb3ZlIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlciB0byBXZWJD
b3JlLCBjbGVhbiB1cCB1c2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTc4MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzg0NDA3PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcDoKKyAgICAgICAgKFdlYkluc3BlY3RvckNsaWVu
dDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKToKKwogMjAxOS0wOC0xOCAgWXVzdWtlIFN1enVraSAg
PHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtXVEZdIEFkZCBtYWtlVW5pcXVlPFQ+LCB3
aGljaCBlbnN1cmVzIFQgaXMgZmFzdC1hbGxvY2F0ZWQsIG1ha2VVbmlxdWUgLyBtYWtlVW5pcXVl
V2l0aG91dEZhc3RNYWxsb2NDaGVjayBwYXJ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA2ODg0ZDBm
ODZkMjlkYzE0OTE2NjExN2JhNWM5NjRkMTBiMzNiZGRmLi5lNzEwNThlYTg3MDFmYTU2N2YwZmM5
N2EyZjA1MWJjMmFiYzEwNWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTY5Niw2ICs2OTYsNyBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgaW5zcGVjdG9yL0lu
c3BlY3RvckNsaWVudC5oCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAogICAg
IGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZS5oCisgICAgaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kQ2xpZW50LmgKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5o
CiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4
IDc2YmFmMDkxNzBhODg4MWM5ODlkZDQwZTM1YTJiNzU0OTY0YzA0Y2EuLjYzNzcxYjA0MDU4N2E5
NDg1ZjQ0NjA4ZjhjMTI4M2VmNzZjNjE1ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNDA0LDYgKzE0
MDQsNyBAQCBpbnNwZWN0b3IvSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuY3BwCiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmNwcAogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCiBpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAKK2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwCiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC5jcHAKIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3Bw
CiBpbnNwZWN0b3IvSW5zcGVjdG9ySGlzdG9yeS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ZGU5NWE3YTI2OTg4M2Q1MmM2
Yjk3OGY3YmE1YzRkMWJkMTBlMDBjLi4xZTQ4ZDNlN2M3ZjkyMjEwNTIyZjJlNGJhNmUzNDM5YWNj
YzY1MWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0yOTc5LDYgKzI5NzksNyBAQAogCQk5OENFNDMyQTEyOUUwMEU1MDA1ODIx
REMgLyogTGlua0xvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOThDRTQzMjkxMjlFMDBFNTAwNTgyMURDIC8qIExpbmtMb2FkZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5OEVCMUY5NTEzMTNG
RTA1MDBEMEUxRUEgLyogTm90SW1wbGVtZW50ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk4RUIxRjk0MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBs
ZW1lbnRlZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTk5MjAzOTgzMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MjAzOTgxMThCOTVCQzYw
MEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk5OTRDNjAzQTI1M0EyNzczMDBCREYwNjAgLyogSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5OTRDNjAzNzI1M0EyNzcyMDBCREYwNjAgLyogSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTk2RTU5REYxREYwMTI4RDAwNjYxMkI5IC8qIE5hdmlnYXRvcldlYkRy
aXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk2
RTU5REMxREYwMEQ5MDAwNjYxMkI5IC8qIE5hdmlnYXRvcldlYkRyaXZlci5oICovOyB9OwogCQk5
OUQxQjJEMzIzQUMxNDMxMDA4MTFDRjAgLyogSW5zcGVjdG9yRGVidWdnYWJsZVR5cGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RDFCMkQxMjNBQzE0
MzAwMDgxMUNGMCAvKiBJbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlBNTI4RTg0MTdEN0Y1MkYwMEFBOTUx
OCAvKiBGbG9hdGluZ09iamVjdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlBNTI4RTgyMTdEN0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE3
NjIsNiArMTE3NjMsOCBAQAogCQk5OTA4QjBGRjFCQ0FEMDdEMDBFRDM1NzIgLyogUmVhZGFibGVT
dHJlYW1CWU9CUmVhZGVyQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gUmVhZGFibGVTdHJlYW1CWU9CUmVhZGVyQnVpbHRpbnMuaDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvUmVhZGFibGVTdHJlYW1CWU9CUmVhZGVyQnVpbHRpbnMuaDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJOTkyMDM5ODAxOEI5NUJDNjAwQjM5QUY5IC8q
IFVzZXJJbnB1dEJyaWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBVc2VySW5wdXRCcmlkZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTIw
Mzk4MTE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklucHV0QnJpZGdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJJbnB1dEJyaWRnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5OTRDNjAzNzI1M0EyNzcyMDBCREYwNjAgLyogSW5zcGVjdG9yRnJvbnRlbmRB
UElEaXNwYXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rv
ckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
OTRDNjAzOTI1M0EyNzczMDBCREYwNjAgLyogSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckZyb250
ZW5kQVBJRGlzcGF0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5NkU1
OURCMURGMDBEOTAwMDY2MTJCOSAvKiBOYXZpZ2F0b3JXZWJEcml2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdG9yV2ViRHJpdmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk2RTU5REMxREYwMEQ5MDAwNjYxMkI5IC8qIE5hdmln
YXRvcldlYkRyaXZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXZpZ2F0
b3JXZWJEcml2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk2RTU5REQxREYw
MEQ5MDAwNjYxMkI5IC8qIE5hdmlnYXRvcitXZWJEcml2ZXIuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9ICJOYXZpZ2F0b3IrV2ViRHJpdmVyLmlkbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xODQxMCw2ICsxODQxMyw4IEBACiAJCQkJNDFGMDYyMTMwRjVGMTkyNjAwQTA3RUFD
IC8qIEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwICovLAogCQkJCTQxRjA2MjEyMEY1RjE5
MjYwMEEwN0VBQyAvKiBJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmggKi8sCiAJCQkJOTlEMUIy
RDEyM0FDMTQzMDAwODExQ0YwIC8qIEluc3BlY3RvckRlYnVnZ2FibGVUeXBlLmggKi8sCisJCQkJ
OTk0QzYwMzkyNTNBMjc3MzAwQkRGMDYwIC8qIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
ci5jcHAgKi8sCisJCQkJOTk0QzYwMzcyNTNBMjc3MjAwQkRGMDYwIC8qIEluc3BlY3RvckZyb250
ZW5kQVBJRGlzcGF0Y2hlci5oICovLAogCQkJCUYzNDRDNzEyMTEyNUI4MkMwMEYyNkVFRSAvKiBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudC5oICovLAogCQkJCUYzNDRDNzU3MTEyOTRGRjYwMEYyNkVF
RSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCAqLywKIAkJCQlGMzQ0Qzc1MjEx
Mjk0RDlEMDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oICovLApAQCAt
MzIxNjQsNiArMzIxNjksNyBAQAogCQkJCUE1QjgxQ0FCMUZBQTQ0NjIwMDM3RDFFNiAvKiBJbnNw
ZWN0b3JET01BZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQUMxRkFBNDQ2MjAwMzdE
MUU2IC8qIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
QjgxQ0FEMUZBQTQ0NjIwMDM3RDFFNiAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTk5NEM2MDNBMjUzQTI3NzMwMEJERjA2MCAvKiBJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzNDRDNzE0MTEyNUI4MkMw
MEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RjM0NEM3NTMxMTI5NEQ5RDAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCTdBMEU3NzBGMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0
b3JGcm9udGVuZEhvc3QuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45Y2QzMzQxODE3MTcwN2FiMWNiZWI5ZmExMmI3ZmMzMDQwNmJlYWFiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5jcHAKQEAgLTAsMCArMSwyMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIu
aCIKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNj
cmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTY3JpcHREaXNhbGxvd2VkU2NvcGUuaCIKKyNp
bmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GcmFtZVRyYWNlcnMuaD4KKworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3VzaW5nIEV2YWx1YXRpb25FcnJvciA9IEluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcjo6RXZhbHVhdGlvbkVycm9yOwordXNpbmcgRXZhbHVhdGlvblJlc3VsdEhhbmRsZXIg
PSBDb21wbGV0aW9uSGFuZGxlcjxFeHBlY3RlZDxKU0M6OkpTVmFsdWUsIEV2YWx1YXRpb25FcnJv
cj4+OworCitJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6Okluc3BlY3RvckZyb250ZW5k
QVBJRGlzcGF0Y2hlcihQYWdlJiBmcm9udGVuZFBhZ2UpCisgICAgOiBtX2Zyb250ZW5kUGFnZSht
YWtlV2Vha1B0cihmcm9udGVuZFBhZ2UpKQoreworfQorCitJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXI6On5JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIoKQoreworICAgIGludmFs
aWRhdGVRdWV1ZWRFeHByZXNzaW9ucygpOworfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlcjo6cmVzZXQoKQoreworICAgIG1fZnJvbnRlbmRMb2FkZWQgPSBmYWxzZTsKKyAg
ICBtX3N1c3BlbmRlZCA9IGZhbHNlOworCisgICAgaW52YWxpZGF0ZVF1ZXVlZEV4cHJlc3Npb25z
KCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpmcm9udGVuZExv
YWRlZCgpCit7CisgICAgQVNTRVJUKG1fZnJvbnRlbmRQYWdlKTsKKyAgICBtX2Zyb250ZW5kTG9h
ZGVkID0gdHJ1ZTsKKworICAgIGV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKK30KKwordm9p
ZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OnN1c3BlbmQoVW5zdXNwZW5kU29vbiB1
bnN1c3BlbmRTb29uKQoreworICAgIEFTU0VSVChtX2Zyb250ZW5kTG9hZGVkKTsKKworICAgIGlm
IChtX3N1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zdXNwZW5kZWQgPSB0cnVl
OworCisgICAgaWYgKHVuc3VzcGVuZFNvb24gPT0gVW5zdXNwZW5kU29vbjo6WWVzKSB7CisgICAg
ICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpXSB7CisgICAgICAgICAgICAvLyBJZiB0aGUgZnJvbnRlbmQgcGFnZSBoYXMgYmVlbiBkZWFs
bG9jYXRlZCwgdGhlcmUncyBub3RoaW5nIHRvIGRvLgorICAgICAgICAgICAgaWYgKCFwcm90ZWN0
ZWRUaGlzLT5tX2Zyb250ZW5kUGFnZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+aXNTdXNwZW5kZWQoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPnVuc3VzcGVuZCgpOworICAg
ICAgICB9KTsKKyAgICB9Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
Ojp1bnN1c3BlbmQoKQoreworICAgIGlmICghbV9zdXNwZW5kZWQpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fc3VzcGVuZGVkID0gZmFsc2U7CisKKyAgICBldmFsdWF0ZVF1ZXVlZEV4cHJlc3Np
b25zKCk7Cit9CisKK0pTR2xvYmFsT2JqZWN0KiBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNo
ZXI6OmZyb250ZW5kR2xvYmFsT2JqZWN0KCkKK3sKKyAgICBpZiAoIW1fZnJvbnRlbmRQYWdlKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAKKyAgICByZXR1cm4gbV9mcm9udGVuZFBhZ2Ut
Pm1haW5GcmFtZSgpLnNjcmlwdCgpLmdsb2JhbE9iamVjdChtYWluVGhyZWFkTm9ybWFsV29ybGQo
KSk7Cit9CisKK3N0YXRpYyBTdHJpbmcgZXhwcmVzc2lvbkZvckV2YWx1YXRpbmdDb21tYW5kKGNv
bnN0IFN0cmluZyYgY29tbWFuZCwgVmVjdG9yPFJlZjxKU09OOjpWYWx1ZT4+JiYgYXJndW1lbnRz
KQoreworICAgIFN0cmluZ0J1aWxkZXIgZXhwcmVzc2lvbjsKKyAgICBleHByZXNzaW9uLmFwcGVu
ZExpdGVyYWwoIkluc3BlY3RvckZyb250ZW5kQVBJLmRpc3BhdGNoKFtcIiIpOworICAgIGV4cHJl
c3Npb24uYXBwZW5kKGNvbW1hbmQpOworICAgIGV4cHJlc3Npb24uYXBwZW5kKCciJyk7CisKKyAg
ICBmb3IgKGF1dG8mIGFyZ3VtZW50IDogYXJndW1lbnRzKSB7CisgICAgICAgIGV4cHJlc3Npb24u
YXBwZW5kTGl0ZXJhbCgiLCAiKTsKKyAgICAgICAgYXJndW1lbnQtPndyaXRlSlNPTihleHByZXNz
aW9uKTsKKyAgICB9CisKKyAgICBleHByZXNzaW9uLmFwcGVuZCgnXScpOworICAgIGV4cHJlc3Np
b24uYXBwZW5kKCcpJyk7CisgICAgcmV0dXJuIGV4cHJlc3Npb24udG9TdHJpbmcoKTsKK30KKwor
dm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZChjb25z
dCBTdHJpbmcmIGNvbW1hbmQsIFZlY3RvcjxSZWY8SlNPTjo6VmFsdWU+PiYmIGFyZ3VtZW50cykK
K3sKKyAgICBldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKGV4cHJlc3Npb25Gb3JFdmFsdWF0aW5n
Q29tbWFuZChjb21tYW5kLCBXVEZNb3ZlKGFyZ3VtZW50cykpLCBXVEY6Om51bGxvcHQpOworfQor
CitJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OkV2YWx1YXRpb25SZXN1bHQgSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpkaXNwYXRjaENvbW1hbmRTeW5jKGNvbnN0IFN0cmlu
ZyYgY29tbWFuZCwgVmVjdG9yPFJlZjxKU09OOjpWYWx1ZT4+JiYgYXJndW1lbnRzKQoreworICAg
IGlmIChtX3N1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEV2YWx1YXRp
b25FcnJvcjo6RXhlY3V0aW9uU3VzcGVuZGVkKTsKKworICAgIHJldHVybiBldmFsdWF0ZUV4cHJl
c3Npb24oZXhwcmVzc2lvbkZvckV2YWx1YXRpbmdDb21tYW5kKGNvbW1hbmQsIFdURk1vdmUoYXJn
dW1lbnRzKSkpOworfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlz
cGF0Y2hDb21tYW5kV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIGNvbW1hbmQsIFZlY3RvcjxSZWY8
SlNPTjo6VmFsdWU+PiYmIGFyZ3VtZW50cywgRXZhbHVhdGlvblJlc3VsdEhhbmRsZXImJiByZXN1
bHRIYW5kbGVyKQoreworICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24oZXhwcmVzc2lvbkZv
ckV2YWx1YXRpbmdDb21tYW5kKGNvbW1hbmQsIFdURk1vdmUoYXJndW1lbnRzKSksIE9wdGlvbmFs
KFdURk1vdmUocmVzdWx0SGFuZGxlcikpKTsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OmRpc3BhdGNoTWVzc2FnZUFzeW5jKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
K3sKKyAgICBldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKG1ha2VTdHJpbmcoIkluc3BlY3RvckZy
b250ZW5kQVBJLmRpc3BhdGNoTWVzc2FnZUFzeW5jKCIsIG1lc3NhZ2UsICIpIikpOworfQorCit2
b2lkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVPclF1ZXVlRXhwcmVz
c2lvbihjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIE9wdGlvbmFsPEV2YWx1YXRpb25SZXN1bHRI
YW5kbGVyPiYmIG9wdGlvbmFsUmVzdWx0SGFuZGxlcikKK3sKKyAgICAvLyBJZiB0aGUgZnJvbnRl
bmQgcGFnZSBoYXMgYmVlbiBkZWFsbG9jYXRlZCwgdGhlbiB0aGVyZSBpcyBub3RoaW5nIHRvIGRv
LgorICAgIGlmICghbV9mcm9udGVuZFBhZ2UpIHsKKyAgICAgICAgaWYgKG9wdGlvbmFsUmVzdWx0
SGFuZGxlcikKKyAgICAgICAgICAgICgqb3B0aW9uYWxSZXN1bHRIYW5kbGVyKShtYWtlVW5leHBl
Y3RlZChFdmFsdWF0aW9uRXJyb3I6OkNvbnRleHREZXN0cm95ZWQpKTsKKworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgLy8gU29tZXRpbWVzIHdlIGdldCBoZXJlIGJ5IHNlbmRpbmcgbWVz
c2FnZXMgZm9yIGV2ZW50cyB0cmlnZ2VyZWQgYnkgRE9NIG11dGF0aW9ucyBlYXJsaWVyIGluIHRo
ZSBjYWxsIHN0YWNrLgorICAgIC8vIElmIHRoaXMgaXMgdGhlIGNhc2UsIHRoZW4gaXQncyBub3Qg
c2FmZSB0byBldmFsdWF0ZSBzY3JpcHQgc3luY2hyb25vdXNseSwgc28gZG8gaXQgbGF0ZXIuIFRo
aXMgb25seSBhZmZlY3RzCisgICAgLy8gV2ViS2l0MSBhbmQgc29tZSBsYXlvdXQgdGVzdHMgdGhh
dCB1c2UgYSBzaW5nbGUgd2ViIHByb2Nlc3MgZm9yIGJvdGggdGhlIGluc3BlY3RvciBhbmQgaW5z
cGVjdGVkIHBhZ2UuCisgICAgaWYgKCFTY3JpcHREaXNhbGxvd2VkU2NvcGU6OkluTWFpblRocmVh
ZDo6aXNTY3JpcHRBbGxvd2VkKCkpCisgICAgICAgIHN1c3BlbmQoVW5zdXNwZW5kU29vbjo6WWVz
KTsKKworICAgIGlmICghbV9mcm9udGVuZExvYWRlZCB8fCBtX3N1c3BlbmRlZCkgeworICAgICAg
ICBtX3F1ZXVlZEV2YWx1YXRpb25zLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihleHByZXNzaW9uLCBX
VEZNb3ZlKG9wdGlvbmFsUmVzdWx0SGFuZGxlcikpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSBldmFsdWF0ZUV4cHJlc3Npb24oZXhwcmVzc2lv
bik7CisgICAgaWYgKG9wdGlvbmFsUmVzdWx0SGFuZGxlcikKKyAgICAgICAgKCpvcHRpb25hbFJl
c3VsdEhhbmRsZXIpKHJlc3VsdCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNw
YXRjaGVyOjppbnZhbGlkYXRlUXVldWVkRXhwcmVzc2lvbnMoKQoreworICAgIGF1dG8gcXVldWVk
RXZhbHVhdGlvbnMgPSBzdGQ6OmV4Y2hhbmdlKG1fcXVldWVkRXZhbHVhdGlvbnMsIHsgfSk7Cisg
ICAgZm9yIChhdXRvJiBwYWlyIDogcXVldWVkRXZhbHVhdGlvbnMpIHsKKyAgICAgICAgYXV0byBy
ZXN1bHRIYW5kbGVyID0gV1RGTW92ZShwYWlyLnNlY29uZCk7CisgICAgICAgIGlmIChyZXN1bHRI
YW5kbGVyKQorICAgICAgICAgICAgKCpyZXN1bHRIYW5kbGVyKShtYWtlVW5leHBlY3RlZChFdmFs
dWF0aW9uRXJyb3I6OkNvbnRleHREZXN0cm95ZWQpKTsKKyAgICB9Cit9CisKK3ZvaWQgSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCkKK3sK
KyAgICAvLyBJZiB0aGUgZnJvbnRlbmQgcGFnZSBoYXMgYmVlbiBkZWFsbG9jYXRlZCwgdGhlbiB0
aGVyZSBpcyBub3RoaW5nIHRvIGRvLgorICAgIGlmICghbV9mcm9udGVuZFBhZ2UpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChtX3F1ZXVlZEV2YWx1YXRpb25zLmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byBxdWV1ZWRFdmFsdWF0aW9ucyA9IHN0ZDo6ZXhjaGFuZ2Uo
bV9xdWV1ZWRFdmFsdWF0aW9ucywgeyB9KTsKKyAgICBmb3IgKGF1dG8mIHBhaXIgOiBxdWV1ZWRF
dmFsdWF0aW9ucykgeworICAgICAgICBhdXRvIHJlc3VsdCA9IGV2YWx1YXRlRXhwcmVzc2lvbihw
YWlyLmZpcnN0KTsKKyAgICAgICAgaWYgKGF1dG8gcmVzdWx0SGFuZGxlciA9IFdURk1vdmUocGFp
ci5zZWNvbmQpKQorICAgICAgICAgICAgKCpyZXN1bHRIYW5kbGVyKShyZXN1bHQpOworICAgIH0K
K30KKworSlNDOjpKU1ZhbHVlIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVh
dGVFeHByZXNzaW9uKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKK3sKKyAgICBBU1NFUlQobV9m
cm9udGVuZFBhZ2UpOworICAgIEFTU0VSVCghbV9zdXNwZW5kZWQpOworICAgIEFTU0VSVChtX3F1
ZXVlZEV2YWx1YXRpb25zLmlzRW1wdHkoKSk7CisKKyAgICBKU0M6OlN1c3BlbmRFeGNlcHRpb25T
Y29wZSBzY29wZSgmbV9mcm9udGVuZFBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS52bSgpKTsK
KyAgICByZXR1cm4gbV9mcm9udGVuZFBhZ2UtPm1haW5GcmFtZSgpLnNjcmlwdCgpLmV2YWx1YXRl
SWdub3JpbmdFeGNlcHRpb24oU2NyaXB0U291cmNlQ29kZShleHByZXNzaW9uKSk7Cit9CisKK3Zv
aWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZUV4cHJlc3Npb25Gb3JU
ZXN0aW5nKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKK3sKKyAgICBldmFsdWF0ZU9yUXVldWVF
eHByZXNzaW9uKGV4cHJlc3Npb24pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Yjg1YmFjYWRjODE1ODRlNGEwNjIwYWJkODc1M2FmNThl
YjRhZWM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1
ZS5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9F
eHBlY3RlZC5oPgorI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBhZ2U7CisKK2Ns
YXNzIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcj4geworcHVibGljOgorICAgIGVudW0g
Y2xhc3MgRXZhbHVhdGlvbkVycm9yIHsgRXhlY3V0aW9uU3VzcGVuZGVkLCBDb250ZXh0RGVzdHJv
eWVkIH07CisgICAgdXNpbmcgRXZhbHVhdGlvblJlc3VsdCA9IEV4cGVjdGVkPEpTQzo6SlNWYWx1
ZSwgRXZhbHVhdGlvbkVycm9yPjsKKyAgICB1c2luZyBFdmFsdWF0aW9uUmVzdWx0SGFuZGxlciA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXZhbHVhdGlvblJlc3VsdCk+OworCisgICAgZW51bSBj
bGFzcyBVbnN1c3BlbmRTb29uIHsgWWVzLCBObyB9OworICAgIAorICAgIFdFQkNPUkVfRVhQT1JU
IH5JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIoKTsKKworICAgIHN0YXRpYyBSZWY8SW5z
cGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyPiBjcmVhdGUoUGFnZSYgcGFnZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
cihwYWdlKSk7CisgICAgfQorCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXNldCgpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZnJvbnRlbmRMb2FkZWQoKTsKKworICAgIC8vIElmIGl0J3Mg
bm90IGN1cnJlbnRseSBzYWZlIHRvIGV2YWx1YXRlIEphdmFTY3JpcHQgb24gdGhlIGZyb250ZW5k
IHBhZ2UsIHRoZQorICAgIC8vIGRpc3BhdGNoZXIgd2lsbCBiZWNvbWUgc3VzcGVuZGVkIGFuZCBk
aXNwYXRjaCBhbnkgcXVldWVkIGV2YWx1YXRpb25zIHdoZW4gdW5zdXNwZW5kZWQuCisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzdXNwZW5kKFVuc3VzcGVuZFNvb24gPSBVbnN1c3BlbmRTb29uOjpO
byk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1bnN1c3BlbmQoKTsKKyAgICBib29sIGlzU3Vz
cGVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9zdXNwZW5kZWQ7IH0KKworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGlzcGF0Y2hDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZCwgVmVjdG9yPFJl
ZjxKU09OOjpWYWx1ZT4+JiYgYXJndW1lbnRzID0geyB9KTsKKyAgICBFdmFsdWF0aW9uUmVzdWx0
IGRpc3BhdGNoQ29tbWFuZFN5bmMoY29uc3QgU3RyaW5nJiBjb21tYW5kLCBWZWN0b3I8UmVmPEpT
T046OlZhbHVlPj4mJiBhcmd1bWVudHMgPSB7IH0pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIGNvbW1hbmQsIFZlY3RvcjxS
ZWY8SlNPTjo6VmFsdWU+PiYmIGFyZ3VtZW50cywgRXZhbHVhdGlvblJlc3VsdEhhbmRsZXImJik7
CisKKyAgICAvLyBVc2VkIHRvIGZvcndhcmQgbWVzc2FnZXMgZnJvbSB0aGUgYmFja2VuZCBjb25u
ZWN0aW9uIHRvIHRoZSBmcm9udGVuZC4KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc3BhdGNo
TWVzc2FnZUFzeW5jKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGV2YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7CisgICAg
CisgICAgLy8gQ29udmVuaWVuY2UgbWV0aG9kIHRvIG9idGFpbiBhIEpTR2xvYmFsT2JqZWN0IGZv
ciB0aGUgZnJvbnRlbmQgcGFnZS4KKyAgICAvLyBUaGlzIGlzIHVzZWQgdG8gY29udmVydCBiZXR3
ZWVuIEMrKyB2YWx1ZXMgYW5kIGZyb250ZW5kIEpTQzo6SlNWYWx1ZSBvYmplY3RzLgorICAgIFdF
QkNPUkVfRVhQT1JUIEpTQzo6SlNHbG9iYWxPYmplY3QqIGZyb250ZW5kR2xvYmFsT2JqZWN0KCk7
Citwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0
Y2hlcihQYWdlJik7CisKKyAgICB2b2lkIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24oY29uc3Qg
U3RyaW5nJiwgV1RGOjpPcHRpb25hbDxFdmFsdWF0aW9uUmVzdWx0SGFuZGxlcj4mJiA9IFdURjo6
bnVsbG9wdCk7CisgICAgdm9pZCBldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7CisgICAgdm9p
ZCBpbnZhbGlkYXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKKyAgICBKU0M6OkpTVmFsdWUgZXZhbHVh
dGVFeHByZXNzaW9uKGNvbnN0IFN0cmluZyYpOworCisgICAgV2Vha1B0cjxQYWdlPiBtX2Zyb250
ZW5kUGFnZTsKKyAgICBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgT3B0aW9uYWw8RXZhbHVhdGlv
blJlc3VsdEhhbmRsZXI+Pj4gbV9xdWV1ZWRFdmFsdWF0aW9uczsKKyAgICBib29sIG1fZnJvbnRl
bmRMb2FkZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zdXNwZW5kZWQgeyBmYWxzZSB9OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaAppbmRleCA0ZmU4OGI3ZThmOGI4YjA3NGUxNzhk
MDQ1OGExMjBiYmI1Y2VmNWQ4Li4wYTc5ZDg2YjNjNDY5Nzc4MTRhNjhmNGVhYWVkYjhhOGVlOWZm
YmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQuaApAQCAtNDEsNiArNDEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBGbG9hdFJlY3Q7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI7CiAKIGNs
YXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTU2LDYgKzU3LDkgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCB3aW5kb3dPYmplY3RDbGVh
cmVkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmcm9udGVuZExvYWRlZCgpID0gMDsKIAorICAg
IHZpcnR1YWwgdm9pZCBwYWdlUGF1c2VkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYWdlVW5w
YXVzZWQoKSA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBtb3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkgPSAwOwogCkBA
IC0xMDUsMTAgKzEwOSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3Rp
Y0V2ZW50KGNvbnN0IFN0cmluZyYgLyogZXZlbnROYW1lICovLCBjb25zdCBEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudDo6VmFsdWVEaWN0aW9uYXJ5JikgeyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwg
dm9pZCBwYWdlUGF1c2VkKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHBhZ2VVbnBhdXNlZCgpIHsg
fQotCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNlbmRNZXNzYWdlVG9CYWNrZW5k
KGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEluc3BlY3Rv
ckZyb250ZW5kQVBJRGlzcGF0Y2hlciYgZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkgPSAwOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBib29sIGlzVW5kZXJUZXN0KCkgPSAwOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsLmNwcAppbmRleCBjY2U1OTAzNWVkZTU3MGE2NDlhMTI2NzZjMzkzMjJkNDhlODRk
OGY0Li43ZDRiYjhhNTQ5MTgwMzIzOGY2NjYyMDA2ZGM2YmJhZDBlZTA3ZjEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWwuY3BwCkBAIC0xNTAsNiArMTUwLDcgQEAgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bDo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbChJbnNwZWN0b3JDb250cm9sbGVyKgogICAg
ICwgbV9zZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSkKICAgICAsIG1fZG9ja1NpZGUoRG9ja1Np
ZGU6OlVuZG9ja2VkKQogICAgICwgbV9kaXNwYXRjaFRhc2soSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoVGFzazo6Y3JlYXRlKGluc3BlY3RlZFBhZ2VDb250cm9sbGVyKSkKKyAgICAsIG1fZnJvbnRl
bmRBUElEaXNwYXRjaGVyKEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6Y3JlYXRlKCpm
cm9udGVuZFBhZ2UpKQogewogICAgIG1fZnJvbnRlbmRQYWdlLT5zZXR0aW5ncygpLnNldEFsbG93
RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyh0cnVlKTsKIH0KQEAgLTE4NSwxMCArMTg2LDIwIEBAIHZv
aWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZnJvbnRlbmRMb2FkZWQoKQogICAgIC8v
IFRodXMgaWYgd2UgY2FsbCBjYW5BdHRhY2hXaW5kb3cgZmlyc3Qgd2UgY2FuIGF2b2lkIHRoaXMg
cHJvYmxlbS4gVGhpcyBjaGFuZ2UgZG9lcyBub3QgY2F1c2UgYW55IHJlZ3Jlc3Npb25zIG9uIE1h
Yy4KICAgICBzZXREb2NraW5nVW5hdmFpbGFibGUoIWNhbkF0dGFjaFdpbmRvdygpKTsKICAgICBi
cmluZ1RvRnJvbnQoKTsKLSAgICBtX2Zyb250ZW5kTG9hZGVkID0gdHJ1ZTsKLSAgICBmb3IgKGF1
dG8mIGV2YWx1YXRlIDogbV9ldmFsdWF0ZU9uTG9hZCkKLSAgICAgICAgZXZhbHVhdGVPbkxvYWQo
ZXZhbHVhdGUpOwotICAgIG1fZXZhbHVhdGVPbkxvYWQuY2xlYXIoKTsKKworICAgIG1fZnJvbnRl
bmRBUElEaXNwYXRjaGVyLT5mcm9udGVuZExvYWRlZCgpOworfQorCit2b2lkIEluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWw6OnBhZ2VQYXVzZWQoKQoreworICAgIC8vIE5PVEU6IHBhZ2VQYXVz
ZWQoKSBhbmQgcGFnZVVucGF1c2VkKCkgZG8gbm90IHN1c3BlbmQvdW5zdXNwZW5kIHRoZSBmcm9u
dGVuZCBBUEkgZGlzcGF0Y2hlcgorICAgIC8vIGZvciB0aGlzIHN1YmNsYXNzIG9mIEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50LiBUaGUgaW5zcGVjdGVkIHBhZ2UgYW5kIHRoZSBmcm9udGVuZCBwYWdl
CisgICAgLy8gZXhpc3QgaW4gdGhlIHNhbWUgd2ViIHByb2Nlc3MsIHNvIG1lc3NhZ2VzIG5lZWQg
dG8gYmUgc2VudCBldmVuIHdoaWxlIHRoZSBkZWJ1Z2dlciBpcyBwYXVzZWQuCisgICAgLy8gU3Vz
cGVuZGluZyBoZXJlIHdvdWxkIHN0YWxsIG91dCBsYXRlciBjb21tYW5kcyB0aGF0IHJlc3VtZSB0
aGUgZGVidWdnZXIsIGNhdXNpbmcgdGhlIHRlc3QgdG8gdGltZSBvdXQuCit9CisKK3ZvaWQgSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6cGFnZVVucGF1c2VkKCkKK3sKIH0KIAogVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjp1c2Vy
SW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkgY29uc3QKQEAgLTIyNyw3ICsyMzgsNyBAQCBib29s
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNhbkF0dGFjaFdpbmRvdygpCiAKIHZvaWQg
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RG9ja2luZ1VuYXZhaWxhYmxlKGJvb2wg
dW5hdmFpbGFibGUpCiB7Ci0gICAgZGlzcGF0Y2gobWFrZVN0cmluZygiW1wic2V0RG9ja2luZ1Vu
YXZhaWxhYmxlXCIsICIsIHVuYXZhaWxhYmxlID8gInRydWUiIDogImZhbHNlIiwgJ10nKSk7Cisg
ICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0RG9ja2luZ1Vu
YXZhaWxhYmxlIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUodW5hdmFpbGFibGUpIH0pOwogfQog
CiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNoYW5nZUF0dGFjaGVkV2luZG93
SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKQEAgLTI5Nyw3ICszMDgsNyBAQCB2b2lkIEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldEF0dGFjaGVkV2luZG93KERvY2tTaWRlIGRvY2tTaWRl
KQogCiAgICAgbV9kb2NrU2lkZSA9IGRvY2tTaWRlOwogCi0gICAgZGlzcGF0Y2gobWFrZVN0cmlu
ZygiW1wic2V0RG9ja1NpZGVcIiwgXCIiLCBzaWRlLCAiXCJdIikpOworICAgIG1fZnJvbnRlbmRB
UElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNldERvY2tTaWRlIl9zLCB7IEpTT046OlZh
bHVlOjpjcmVhdGUoc2lkZSkgfSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbDo6cmVzdG9yZUF0dGFjaGVkV2luZG93SGVpZ2h0KCkKQEAgLTMxNCw1OSArMzI1LDc0IEBA
IHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6cmVzdG9yZUF0dGFjaGVkV2luZG93
SGVpZ2h0KCkKIAogYm9vbCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjppc0RlYnVnZ2lu
Z0VuYWJsZWQoKQogewotICAgIGlmIChtX2Zyb250ZW5kTG9hZGVkKQotICAgICAgICByZXR1cm4g
ZXZhbHVhdGVBc0Jvb2xlYW4oIltcImlzRGVidWdnaW5nRW5hYmxlZFwiXSIpOwotICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAoIW1fZnJvbnRlbmRMb2FkZWQpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGF1dG8gcmVzdWx0ID0gbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNo
Q29tbWFuZFN5bmMoImlzRGVidWdnaW5nRW5hYmxlZCJfcywgeyB9KTsKKyAgICBpZiAoIXJlc3Vs
dCB8fCAhcmVzdWx0LnZhbHVlKCkudG9Cb29sZWFuKG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5m
cm9udGVuZEdsb2JhbE9iamVjdCgpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0
dXJuIHRydWU7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RGVi
dWdnaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7Ci0gICAgZGlzcGF0Y2gobWFrZVN0cmluZygi
W1wic2V0RGVidWdnaW5nRW5hYmxlZFwiLCAiLCBlbmFibGVkID8gInRydWUiIDogImZhbHNlIiwg
J10nKSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0
RGVidWdnaW5nRW5hYmxlZCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKGVuYWJsZWQpIH0pOwog
fQogCiBib29sIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmlzVGltZWxpbmVQcm9maWxp
bmdFbmFibGVkKCkKIHsKLSAgICBpZiAobV9mcm9udGVuZExvYWRlZCkKLSAgICAgICAgcmV0dXJu
IGV2YWx1YXRlQXNCb29sZWFuKCJbXCJpc1RpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZFwiXSIpOwot
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIW1fZnJvbnRlbmRMb2FkZWQpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGF1dG8gcmVzdWx0ID0gbV9mcm9udGVuZEFQSURpc3BhdGNoZXIt
PmRpc3BhdGNoQ29tbWFuZFN5bmMoImlzVGltZWxpbmVQcm9maWxpbmdFbmFibGVkIl9zLCB7IH0p
OworICAgIGlmICghcmVzdWx0IHx8ICFyZXN1bHQudmFsdWUoKS50b0Jvb2xlYW4obV9mcm9udGVu
ZEFQSURpc3BhdGNoZXItPmZyb250ZW5kR2xvYmFsT2JqZWN0KCkpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsOjpzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewot
ICAgIGRpc3BhdGNoKG1ha2VTdHJpbmcoIltcInNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZFwi
LCAiLCBlbmFibGVkID8gInRydWUiIDogImZhbHNlIiwgJ10nKSk7CisgICAgbV9mcm9udGVuZEFQ
SURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVk
Il9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUoZW5hYmxlZCkgfSk7CiB9CiAKIGJvb2wgSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6aXNQcm9maWxpbmdKYXZhU2NyaXB0KCkKIHsKLSAgICBp
ZiAobV9mcm9udGVuZExvYWRlZCkKLSAgICAgICAgcmV0dXJuIGV2YWx1YXRlQXNCb29sZWFuKCJb
XCJpc1Byb2ZpbGluZ0phdmFTY3JpcHRcIl0iKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KCFtX2Zyb250ZW5kTG9hZGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIHJl
c3VsdCA9IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmRTeW5jKCJpc1By
b2ZpbGluZ0phdmFTY3JpcHQiX3MsIHsgfSk7CisgICAgaWYgKCFyZXN1bHQgfHwgIXJlc3VsdC52
YWx1ZSgpLnRvQm9vbGVhbihtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZnJvbnRlbmRHbG9iYWxP
YmplY3QoKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwogfQog
CiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnN0YXJ0UHJvZmlsaW5nSmF2YVNj
cmlwdCgpCiB7Ci0gICAgZGlzcGF0Y2goIltcInN0YXJ0UHJvZmlsaW5nSmF2YVNjcmlwdFwiXSIp
OworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInN0YXJ0UHJv
ZmlsaW5nSmF2YVNjcmlwdCJfcyk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbDo6c3RvcFByb2ZpbGluZ0phdmFTY3JpcHQoKQogewotICAgIGRpc3BhdGNoKCJbXCJzdG9w
UHJvZmlsaW5nSmF2YVNjcmlwdFwiXSIpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5k
aXNwYXRjaENvbW1hbmQoInN0b3BQcm9maWxpbmdKYXZhU2NyaXB0Il9zKTsKIH0KIAogdm9pZCBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzaG93Q29uc29sZSgpCiB7Ci0gICAgZGlzcGF0
Y2goIltcInNob3dDb25zb2xlXCJdIik7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRp
c3BhdGNoQ29tbWFuZCgic2hvd0NvbnNvbGUiX3MpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWw6OnNob3dSZXNvdXJjZXMoKQogewotICAgIGRpc3BhdGNoKCJbXCJzaG93
UmVzb3VyY2VzXCJdIik7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29t
bWFuZCgic2hvd1Jlc291cmNlcyJfcyk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRMb2NhbDo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKEZyYW1lKiBmcmFtZSkKIHsKICAgICBT
dHJpbmcgZnJhbWVJZCA9IG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXItPmVuc3VyZVBhZ2VBZ2Vu
dCgpLmZyYW1lSWQoZnJhbWUpOwotICAgIGRpc3BhdGNoKG1ha2VTdHJpbmcoIltcInNob3dNYWlu
UmVzb3VyY2VGb3JGcmFtZVwiLCBcIiIsIGZyYW1lSWQsICJcIl0iKSk7CisgICAgbV9mcm9udGVu
ZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2hvd01haW5SZXNvdXJjZUZvckZyYW1l
Il9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUoZnJhbWVJZCkgfSk7CiB9CiAKIHVuc2lnbmVkIElu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNvbnN0cmFpbmVkQXR0YWNoZWRXaW5kb3dIZWln
aHQodW5zaWduZWQgcHJlZmVycmVkSGVpZ2h0LCB1bnNpZ25lZCB0b3RhbFdpbmRvd0hlaWdodCkK
QEAgLTM5NCw0NiArNDIwLDYgQEAgdW5zaWduZWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bDo6aW5zcGVjdGlvbkxldmVsKCkgY29uc3QKICAgICByZXR1cm4gbV9pbnNwZWN0ZWRQYWdlQ29u
dHJvbGxlci0+aW5zcGVjdGlvbkxldmVsKCkgKyAxOwogfQogCi12b2lkIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWw6OmRpc3BhdGNoKGNvbnN0IFN0cmluZyYgc2lnbmF0dXJlKQotewotICAg
IEFTU0VSVCghc2lnbmF0dXJlLmlzRW1wdHkoKSk7Ci0gICAgQVNTRVJUKHNpZ25hdHVyZS5zdGFy
dHNXaXRoKCdbJykpOwotICAgIEFTU0VSVChzaWduYXR1cmUuZW5kc1dpdGgoJ10nKSk7Ci0KLSAg
ICBldmFsdWF0ZU9uTG9hZCgiSW5zcGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0Y2goIiArIHNpZ25h
dHVyZSArICIpIik7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZGlz
cGF0Y2hNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU9iamVjdCkKLXsKLSAgICBBU1NFUlQo
IW1lc3NhZ2VPYmplY3QuaXNFbXB0eSgpKTsKLQotICAgIGV2YWx1YXRlT25Mb2FkKCJJbnNwZWN0
b3JGcm9udGVuZEFQSS5kaXNwYXRjaE1lc3NhZ2UoIiArIG1lc3NhZ2VPYmplY3QgKyAiKSIpOwot
fQotCi12b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmRpc3BhdGNoTWVzc2FnZUFz
eW5jKGNvbnN0IFN0cmluZyYgbWVzc2FnZU9iamVjdCkKLXsKLSAgICBBU1NFUlQoIW1lc3NhZ2VP
YmplY3QuaXNFbXB0eSgpKTsKLQotICAgIGV2YWx1YXRlT25Mb2FkKCJJbnNwZWN0b3JGcm9udGVu
ZEFQSS5kaXNwYXRjaE1lc3NhZ2VBc3luYygiICsgbWVzc2FnZU9iamVjdCArICIpIik7Ci19Ci0K
LWJvb2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZXZhbHVhdGVBc0Jvb2xlYW4oY29u
c3QgU3RyaW5nJiBleHByZXNzaW9uKQotewotICAgIGF1dG8mIHN0YXRlID0gKm1haW5Xb3JsZEV4
ZWNTdGF0ZSgmbV9mcm9udGVuZFBhZ2UtPm1haW5GcmFtZSgpKTsKLSAgICByZXR1cm4gbV9mcm9u
dGVuZFBhZ2UtPm1haW5GcmFtZSgpLnNjcmlwdCgpLmV4ZWN1dGVTY3JpcHRJZ25vcmluZ0V4Y2Vw
dGlvbihleHByZXNzaW9uKS50b1dURlN0cmluZygmc3RhdGUpID09ICJ0cnVlIjsKLX0KLQotdm9p
ZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpldmFsdWF0ZU9uTG9hZChjb25zdCBTdHJp
bmcmIGV4cHJlc3Npb24pCi17Ci0gICAgaWYgKCFtX2Zyb250ZW5kTG9hZGVkKSB7Ci0gICAgICAg
IG1fZXZhbHVhdGVPbkxvYWQuYXBwZW5kKGV4cHJlc3Npb24pOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgSlNDOjpTdXNwZW5kRXhjZXB0aW9uU2NvcGUgc2NvcGUoJm1fZnJvbnRlbmRQ
YWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkudm0oKSk7Ci0gICAgbV9mcm9udGVuZFBhZ2UtPm1h
aW5GcmFtZSgpLnNjcmlwdCgpLmV2YWx1YXRlSWdub3JpbmdFeGNlcHRpb24oU2NyaXB0U291cmNl
Q29kZShleHByZXNzaW9uKSk7Ci19Ci0KIFBhZ2UqIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9j
YWw6Omluc3BlY3RlZFBhZ2UoKSBjb25zdAogewogICAgIGlmICghbV9pbnNwZWN0ZWRQYWdlQ29u
dHJvbGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbC5oCmluZGV4IDQzYTNlY2RjNzY4ZDBlMGZlNzNhZGZhNjVlZTNh
ZjNlNzcxM2I4NjguLjgxYzJjNjg0ODdlNWFmNjQzZGM2YjAzMzkwMDllMGVkY2Y2YmI2MDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
Q2xpZW50TG9jYWwuaApAQCAtMzEsNiArMzEsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KQEAgLTY2LDYgKzY3LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCB3aW5kb3dPYmplY3RDbGVhcmVkKCkgZmluYWw7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBmcm9udGVuZExvYWRlZCgpIG92ZXJyaWRlOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcGFnZVBhdXNlZCgpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcGFnZVVu
cGF1c2VkKCkgZmluYWw7CiAKICAgICB2b2lkIHN0YXJ0V2luZG93RHJhZygpIG92ZXJyaWRlIHsg
fQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW92ZVdpbmRvd0J5KGZsb2F0IHgsIGZsb2F0IHkp
IGZpbmFsOwpAQCAtOTEsNiArOTQsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdW5z
aWduZWQgaW5zcGVjdGlvbkxldmVsKCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIGJhY2tlbmRD
b21tYW5kc1VSTCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFN0cmluZygpOyB9OwogCisgICAgSW5z
cGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyJiBmcm9udGVuZEFQSURpc3BhdGNoZXIoKSBmaW5h
bCB7IHJldHVybiBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsgfQorCiAgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBjYW5BdHRhY2hXaW5kb3coKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERv
Y2tpbmdVbmF2YWlsYWJsZShib29sKTsKIApAQCAtMTE5LDEwICsxMjQsNiBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgUGFnZSogaW5zcGVjdGVkUGFnZSgpIGNvbnN0OwogICAgIFBhZ2Uq
IGZyb250ZW5kUGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJvbnRlbmRQYWdlOyB9CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGRpc3BhdGNoKGNvbnN0IFN0cmluZyYgc2lnbmF0dXJlKTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc3BhdGNoTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3Nh
Z2VPYmplY3QpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0Y2hNZXNzYWdlQXN5bmMo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlT2JqZWN0KTsKLQogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkKSA9IDA7CkBAIC0xMzEsMTAgKzEz
Miw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hlZXRSZWN0KGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYpID0gMDsKIAogcHJpdmF0ZToKLSAgICBib29sIGV2YWx1YXRlQXNC
b29sZWFuKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbik7Ci0gICAgdm9pZCBldmFsdWF0ZU9uTG9h
ZChjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24pOwotCiAgICAgZnJpZW5kIGNsYXNzIEZyb250ZW5k
TWVudVByb3ZpZGVyOworCiAgICAgSW5zcGVjdG9yQ29udHJvbGxlciogbV9pbnNwZWN0ZWRQYWdl
Q29udHJvbGxlciB7IG51bGxwdHIgfTsKICAgICBQYWdlKiBtX2Zyb250ZW5kUGFnZSB7IG51bGxw
dHIgfTsKICAgICAvLyBUT0RPKHl1cnlzKTogdGhpcyByZWYgc2hvdWxkbid0IGJlIG5lZWRlZC4K
QEAgLTE0Miw4ICsxNDEsOCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsOjpTZXR0aW5ncz4gbV9zZXR0aW5nczsKICAgICBib29sIG1f
ZnJvbnRlbmRMb2FkZWQgeyBmYWxzZSB9OwogICAgIERvY2tTaWRlIG1fZG9ja1NpZGU7Ci0gICAg
VmVjdG9yPFN0cmluZz4gbV9ldmFsdWF0ZU9uTG9hZDsKICAgICBSZWY8SW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoVGFzaz4gbV9kaXNwYXRjaFRhc2s7CisgICAgUmVmPEluc3BlY3RvckZyb250ZW5k
QVBJRGlzcGF0Y2hlcj4gbV9mcm9udGVuZEFQSURpc3BhdGNoZXI7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMmFmNzhk
YmQ5YjcxMjE0ZmIyZWRlODEzMzE3ZTI2YTczNDgxMzgzMC4uN2Y1YTBkMTI4YWY4YjJiNzkyMTU5
NjZjNjdjZTg5ZTRhYjBjMDBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApA
QCAtNDA4LDcgKzQwOCw3IEBAIHZvaWQgSW5zcGVjdG9yU3R1YkZyb250ZW5kOjpjbG9zZVdpbmRv
dygpCiAKIHZvaWQgSW5zcGVjdG9yU3R1YkZyb250ZW5kOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewotICAgIGRpc3BhdGNoTWVzc2FnZUFzeW5jKG1lc3Nh
Z2UpOworICAgIGZyb250ZW5kQVBJRGlzcGF0Y2hlcigpLmRpc3BhdGNoTWVzc2FnZUFzeW5jKG1l
c3NhZ2UpOwogfQogCiBzdGF0aWMgYm9vbCBtYXJrZXJUeXBlRnJvbShjb25zdCBTdHJpbmcmIG1h
cmtlclR5cGUsIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlJiByZXN1bHQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApp
bmRleCBmZmU5Nzg3ZGVhZTU0NzUyNjczNmUyMTEwMDQyYjBiOWY4ZGMwODAxLi5lMGFiNzQzNmJh
ZGMzNDYzNzQ5NDY2MzM0NzE5YjQ1ZWRmZDJiMzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTU0Nyw3ICs1
NDcsNiBAQCBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdl
SGFuZGxlLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3Bl
Y3RvclVJLmNwcAogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yLmNwcAogV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAotV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcAogV2ViUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlci5jcHAKIFdlYlByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvclVJLmNwcAogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZUlu
c3BlY3RvclRhcmdldC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDQ0MDZlOWI2ZTdlNmY0YTAzNjJlNmM1NmJiODQ5YmZlYmVjOGMw
YzcuLjQ2NjVjY2I3YmM2YWY3YTdhMDg5MTVmZGU0NjcyNmQ5NjdmNWZjYjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ5Miw3ICsx
NDkyLDYgQEAKIAkJQTU1QkE4MjUxQkEyNUNGQjAwN0NEMzNEIC8qIFJlbW90ZVdlYkluc3BlY3Rv
clByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE1NUJBODIyMUJBMjVCQjgwMDdDRDMzRCAvKiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94
eU1lc3NhZ2VzLmggKi87IH07CiAJCUE1NUJBODI2MUJBMjVDRkQwMDdDRDMzRCAvKiBSZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTVCQTgyMTFCQTI1QkI4MDA3Q0QzM0QgLyogUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlBNTVCQTgy
QjFCQTM4RTYxMDA3Q0QzM0QgLyogV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTVCQTgyODFCQTM4RTFFMDA3Q0Qz
M0QgLyogV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmggKi87IH07Ci0JCUE1NUJBODM1MUJBM0U3MEEw
MDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NUJBODMzMUJBM0U2RkEwMDdD
RDMzRCAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCAqLzsgfTsKIAkJQTU4
NjBFNzEyMzBGNjdGQzAwNDYxQUFFIC8qIFdlYlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU4NjBFNzAy
MzBGNjdERTAwNDYxQUFFIC8qIFdlYlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxlci5oICovOyB9
OwogCQlBNThCNkYwODE4RkNBNzMzMDA4Q0JBNTMgLyogV0tGaWxlVXBsb2FkUGFuZWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1OEI2RjA2MThGQ0E3
MzMwMDhDQkE1MyAvKiBXS0ZpbGVVcGxvYWRQYW5lbC5oICovOyB9OwogCQlBNUMwRjBBNzIwMDA2
NTREMDA1MzY1MzYgLyogX1dLTlNXaW5kb3dFeHRyYXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1QzBGMEE2MjAwMDY1NDQwMDUzNjUzNiAvKiBfV0tO
U1dpbmRvd0V4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC00NjcyLDggKzQ2NzEsNiBAQAogCQlBNTVCQTgyMjFCQTI1QkI4MDA3Q0QzM0Qg
LyogUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJQTU1QkE4MjcxQkEzOEUxRTAw
N0NEMzNEIC8qIFdlYkluc3BlY3RvclV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJJbnNwZWN0b3JVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNTVCQTgyODFCQTM4RTFFMDA3Q0QzM0QgLyogV2ViSW5zcGVjdG9y
VXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkluc3BlY3Rv
clV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNTVCQTgzMjFCQTNF
NkZBMDA3Q0QzM0QgLyogV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkluc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE1NUJBODMzMUJB
M0U2RkEwMDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNw
YXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1ODYwRTZGMjMwRjY3REUw
MDQ2MUFBRSAvKiBXZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmNwcDsgcGF0aCA9IE5ldHdv
cmsvV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTU4NjBFNzAyMzBGNjdERTAwNDYxQUFFIC8qIFdlYlJlc291cmNlSW50ZXJj
ZXB0Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJSZXNvdXJjZUludGVyY2VwdENvbnRy
b2xsZXIuaDsgcGF0aCA9IE5ldHdvcmsvV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1OEI2RjA2MThGQ0E3MzMwMDhDQkE1MyAv
KiBXS0ZpbGVVcGxvYWRQYW5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
S0ZpbGVVcGxvYWRQYW5lbC5oOyBwYXRoID0gaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NzA3LDggKzg3MDQsNiBAQAogCQkJCTFD
OEUyQTFDMTI3NzgzM0YwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4gKi8sCiAJ
CQkJQkMxMTFBNTkxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkluc3BlY3RvckNsaWVudC5jcHAgKi8s
CiAJCQkJQkMwMzJENkQxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkluc3BlY3RvckNsaWVudC5oICov
LAotCQkJCUE1NUJBODMyMUJBM0U2RkEwMDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXIuY3BwICovLAotCQkJCUE1NUJBODMzMUJBM0U2RkEwMDdDRDMzRCAvKiBXZWJJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCAqLywKIAkJCQlGRUU0M0ZEMDFFNjdBRkM2
MDA3N0Q2RDEgLyogV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlci5jcHAgKi8sCiAJCQkJ
RkVFNDNGRDExRTY3QUZDNjAwNzdENkQxIC8qIFdlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNo
ZXIuaCAqLywKIAkJCQlGRUU0M0ZEMjFFNjdBRkM2MDA3N0Q2RDEgLyogV2ViSW5zcGVjdG9ySW50
ZXJydXB0RGlzcGF0Y2hlci5tZXNzYWdlcy5pbiAqLywKQEAgLTExNDk5LDcgKzExNDk0LDYgQEAK
IAkJCQlCQ0NGNkFCRDEyQzkxRUY5MDA4RjlDMzUgLyogV2ViSW1hZ2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFDOEUyODIwMTI3NUQxNTQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMDMyRDgyMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJJbnNwZWN0b3JDbGll
bnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUE1NUJBODM1MUJBM0U3MEEwMDdDRDMzRCAvKiBXZWJJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFRTQz
RkQzMUU2N0IwMTgwMDc3RDZEMSAvKiBXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRURCRENENzFFNjhEMjA1MDBBNTlGOEYgLyogV2ViSW5zcGVj
dG9ySW50ZXJydXB0RGlzcGF0Y2hlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzhF
MkEzNjEyNzc4NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1v
dGVXZWJJbnNwZWN0b3JVSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcAppbmRleCA0N2Q2ZmEzMzgzYzRlZGJhZjMxNDgwZGQ0
MmJlYzUwNmY4NGM4M2FmLi43ZTBlZDY0MmEwMGE3MTQ2ZjBiNGE5NDU3N2Q5YWQyMDUwOWE4OTg2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdl
Ykluc3BlY3RvclVJLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZWY8UmVtb3RlV2Vi
SW5zcGVjdG9yVUk+IFJlbW90ZVdlYkluc3BlY3RvclVJOjpjcmVhdGUoV2ViUGFnZSYgcGFnZSkK
IAogUmVtb3RlV2ViSW5zcGVjdG9yVUk6OlJlbW90ZVdlYkluc3BlY3RvclVJKFdlYlBhZ2UmIHBh
Z2UpCiAgICAgOiBtX3BhZ2UocGFnZSkKLSAgICAsIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyKHBh
Z2UpCisgICAgLCBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcihJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXI6OmNyZWF0ZSgqcGFnZS5jb3JlUGFnZSgpKSkKIHsKICAgICBXZWJJbnNwZWN0b3JV
STo6ZW5hYmxlRnJvbnRlbmRGZWF0dXJlcygpOwogfQpAQCAtNjUsMzAgKzY1LDI5IEBAIHZvaWQg
UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmluaXRpYWxpemUoRGVidWdnYWJsZUluZm9EYXRhJiYgZGVi
dWdnYWJsZUluZm8sIGNvbnN0CiAKICAgICBtX3BhZ2UuY29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29u
dHJvbGxlcigpLnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50KHRoaXMpOwogCi0gICAgbV9mcm9u
dGVuZEFQSURpc3BhdGNoZXIucmVzZXQoKTsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5k
aXNwYXRjaENvbW1hbmQoInNldERvY2tpbmdVbmF2YWlsYWJsZSJfcywgdHJ1ZSk7CisgICAgbV9m
cm9udGVuZEFQSURpc3BhdGNoZXItPnJlc2V0KCk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNo
ZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0RG9ja2luZ1VuYXZhaWxhYmxlIl9zLCB7IEpTT046OlZh
bHVlOjpjcmVhdGUodHJ1ZSkgfSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnVw
ZGF0ZUZpbmRTdHJpbmcoY29uc3QgU3RyaW5nJiBmaW5kU3RyaW5nKQogewogICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKLSAgICBKU09OOjpWYWx1ZTo6ZXNjYXBlU3RyaW5nKGJ1aWxkZXIsIGZp
bmRTdHJpbmcpOwotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgi
dXBkYXRlRmluZFN0cmluZyJfcywgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBtX2Zyb250ZW5k
QVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJ1cGRhdGVGaW5kU3RyaW5nIl9zLCB7IEpT
T046OlZhbHVlOjpjcmVhdGUoYnVpbGRlci50b1N0cmluZygpKSB9KTsKIH0KIAogdm9pZCBSZW1v
dGVXZWJJbnNwZWN0b3JVSTo6ZGlkU2F2ZShjb25zdCBTdHJpbmcmIHVybCkKIHsKLSAgICBtX2Zy
b250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNhdmVkVVJMIl9zLCB1cmwpOwor
ICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNhdmVkVVJMIl9z
LCB7IEpTT046OlZhbHVlOjpjcmVhdGUodXJsKSB9KTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNw
ZWN0b3JVSTo6ZGlkQXBwZW5kKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIG1fZnJvbnRlbmRB
UElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgiYXBwZW5kZWRUb1VSTCJfcywgdXJsKTsKKyAg
ICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJhcHBlbmRlZFRvVVJM
Il9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUodXJsKSB9KTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJ
bnNwZWN0b3JVSTo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
IHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaE1lc3NhZ2VBc3luYyhtZXNz
YWdlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hNZXNzYWdlQXN5bmMo
bWVzc2FnZSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnNlbmRNZXNzYWdlVG9C
YWNrZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKQEAgLTEwNywxMyArMTA2LDIzIEBAIHZvaWQg
UmVtb3RlV2ViSW5zcGVjdG9yVUk6OndpbmRvd09iamVjdENsZWFyZWQoKQogCiB2b2lkIFJlbW90
ZVdlYkluc3BlY3RvclVJOjpmcm9udGVuZExvYWRlZCgpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURp
c3BhdGNoZXIuZnJvbnRlbmRMb2FkZWQoKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+
ZnJvbnRlbmRMb2FkZWQoKTsKIAotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNo
Q29tbWFuZCgic2V0SXNWaXNpYmxlIl9zLCB0cnVlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0
Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXRJc1Zpc2libGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNy
ZWF0ZSh0cnVlKSB9KTsKIAogICAgIGJyaW5nVG9Gcm9udCgpOwogfQogCit2b2lkIFJlbW90ZVdl
Ykluc3BlY3RvclVJOjpwYWdlUGF1c2VkKCkKK3sKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hl
ci0+c3VzcGVuZCgpOworfQorCit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpwYWdlVW5wYXVz
ZWQoKQoreworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT51bnN1c3BlbmQoKTsKK30KKwog
dm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6Y2hhbmdlU2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCkKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6U2V0U2hl
ZXRSZWN0KHJlY3QpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKQEAgLTI0Niw3ICsyNTUsNyBAQCB2
b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZShi
b29sIGF2YWlsYWJsZSkKICAgICBBU1NFUlQoIWF2YWlsYWJsZSB8fCBzdXBwb3J0c0RpYWdub3N0
aWNMb2dnaW5nKCkpOwogICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUgPSBhdmFpbGFi
bGU7CiAKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNldERp
YWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlIl9zLCBtX2RpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxl
KTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXREaWFn
bm9zdGljTG9nZ2luZ0F2YWlsYWJsZSJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKG1fZGlhZ25v
c3RpY0xvZ2dpbmdBdmFpbGFibGUpIH0pOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaApp
bmRleCBiNDk5ZWM1YzUzZmFjNjI3ZjVmNDdlZWZiYzRhOTAzODZjZGEwNmM2Li4wMjVlYzkwYTFk
NGFmMWM5ZjU1M2RiYzQyZjdjOTM5ZmQ0Mzk4NDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oCkBAIC0y
Nyw3ICsyNyw3IEBACiAKICNpbmNsdWRlICJEZWJ1Z2dhYmxlSW5mb0RhdGEuaCIKICNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKLSNpbmNsdWRlICJXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0
Y2hlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5kSG9zdC5oPgogI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgpAQCAtNjIsNiArNjIsMTAgQEAgcHVibGljOgogICAgIC8vIFdlYkNvcmU6Okluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50CiAgICAgdm9pZCB3aW5kb3dPYmplY3RDbGVhcmVkKCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBmcm9udGVuZExvYWRlZCgpIG92ZXJyaWRlOworCisgICAgdm9pZCBwYWdl
UGF1c2VkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwYWdlVW5wYXVzZWQoKSBvdmVycmlkZTsKKwog
ICAgIHZvaWQgY2hhbmdlU2hlZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJy
aWRlOwogICAgIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBtb3Zl
V2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkgb3ZlcnJpZGU7CkBAIC05Miw2ICs5Niw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzaG93Q2VydGlmaWNhdGUoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvQmFja2VuZChjb25zdCBTdHJp
bmcmKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNo
ZXImIGZyb250ZW5kQVBJRGlzcGF0Y2hlcigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fZnJvbnRlbmRB
UElEaXNwYXRjaGVyOyB9CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX1RFTEVNRVRSWSkKICAgICBi
b29sIHN1cHBvcnRzRGlhZ25vc3RpY0xvZ2dpbmcoKSBvdmVycmlkZTsKQEAgLTExMCw3ICsxMTUs
NyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJlbW90ZVdlYkluc3BlY3RvclVJKFdlYlBhZ2Um
KTsKIAogICAgIFdlYlBhZ2UmIG1fcGFnZTsKLSAgICBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXIgbV9mcm9udGVuZEFQSURpc3BhdGNoZXI7CisgICAgUmVmPFdlYkNvcmU6Okluc3Bl
Y3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcj4gbV9mcm9udGVuZEFQSURpc3BhdGNoZXI7CiAgICAg
UmVmUHRyPFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kSG9zdD4gbV9mcm9udGVuZEhvc3Q7CiAg
ICAgRGVidWdnYWJsZUluZm9EYXRhIG1fZGVidWdnYWJsZUluZm87CiAgICAgU3RyaW5nIG1fYmFj
a2VuZENvbW1hbmRzVVJMOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNo
ZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YzM3YjAwM2MxY2I3NzFkOWIz
Zjc5ZGRhNjU1MmE0OTA3ZDdlZGQ3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEyMyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2Vi
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgiCi0KLSNpbmNsdWRlICJXZWJQYWdlLmgi
Ci0jaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29u
dHJvbGxlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0U3RhdGUuaD4KLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLVdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6V2ViSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyKFdlYlBhZ2UmIHBhZ2UpCi0gICAgOiBtX3BhZ2UocGFn
ZSkKLXsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OnJlc2V0
KCkKLXsKLSAgICBtX2Zyb250ZW5kTG9hZGVkID0gZmFsc2U7Ci0gICAgbV9zdXNwZW5kZWQgPSBm
YWxzZTsKLSAgICBtX3F1ZXVlLmNsZWFyKCk7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyOjpmcm9udGVuZExvYWRlZCgpCi17Ci0gICAgbV9mcm9udGVuZExvYWRl
ZCA9IHRydWU7Ci0KLSAgICBldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7Ci19Ci0KLXZvaWQg
V2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpzdXNwZW5kKCkKLXsKLSAgICBBU1NF
UlQobV9mcm9udGVuZExvYWRlZCk7Ci0gICAgQVNTRVJUKCFtX3N1c3BlbmRlZCk7Ci0gICAgQVNT
RVJUKG1fcXVldWUuaXNFbXB0eSgpKTsKLQotICAgIG1fc3VzcGVuZGVkID0gdHJ1ZTsKLX0KLQot
dm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OnVuc3VzcGVuZCgpCi17Ci0g
ICAgQVNTRVJUKG1fc3VzcGVuZGVkKTsKLQotICAgIG1fc3VzcGVuZGVkID0gZmFsc2U7Ci0KLSAg
ICBldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyOjpkaXNwYXRjaENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5k
KQotewotICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24obWFrZVN0cmluZygiSW5zcGVjdG9y
RnJvbnRlbmRBUEkuZGlzcGF0Y2goW1wiIiwgY29tbWFuZCwgIlwiXSkiKSk7Ci19Ci0KLXZvaWQg
V2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpkaXNwYXRjaENvbW1hbmQoY29uc3Qg
U3RyaW5nJiBjb21tYW5kLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50KQotewotICAgIGV2YWx1YXRl
T3JRdWV1ZUV4cHJlc3Npb24obWFrZVN0cmluZygiSW5zcGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0
Y2goW1wiIiwgY29tbWFuZCwgIlwiLCBcIiIsIGFyZ3VtZW50LCAiXCJdKSIpKTsKLX0KLQotdm9p
ZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZChjb25z
dCBTdHJpbmcmIGNvbW1hbmQsIGJvb2wgYXJndW1lbnQpCi17Ci0gICAgZXZhbHVhdGVPclF1ZXVl
RXhwcmVzc2lvbihtYWtlU3RyaW5nKCJJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRjaChbXCIi
LCBjb21tYW5kLCAiXCIsICIsIGFyZ3VtZW50ID8gInRydWUiIDogImZhbHNlIiwgIl0pIikpOwot
fQotCi12b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2hNZXNz
YWdlQXN5bmMoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAgIGV2YWx1YXRlT3JRdWV1ZUV4
cHJlc3Npb24obWFrZVN0cmluZygiSW5zcGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0Y2hNZXNzYWdl
QXN5bmMoIiwgbWVzc2FnZSwgIikiKSk7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRB
UElEaXNwYXRjaGVyOjpldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKGNvbnN0IFN0cmluZyYgZXhw
cmVzc2lvbikKLXsKLSAgICBpZiAoIW1fZnJvbnRlbmRMb2FkZWQgfHwgbV9zdXNwZW5kZWQpIHsK
LSAgICAgICAgbV9xdWV1ZS5hcHBlbmQoZXhwcmVzc2lvbik7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBBU1NFUlQobV9xdWV1ZS5pc0VtcHR5KCkpOwotICAgIEFTU0VSVCghbV9wYWdl
LmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnNjcmlwdCgpLmlzUGF1c2VkKCkpOwotICAgIG1fcGFn
ZS5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS5zY3JpcHQoKS5leGVjdXRlU2NyaXB0SWdub3JpbmdF
eGNlcHRpb24oZXhwcmVzc2lvbik7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyOjpldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCkKLXsKLSAgICBpZiAobV9xdWV1
ZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZvciAoY29uc3QgU3RyaW5nJiBl
eHByZXNzaW9uIDogbV9xdWV1ZSkgewotICAgICAgICBBU1NFUlQoIW1fcGFnZS5jb3JlUGFnZSgp
LT5tYWluRnJhbWUoKS5zY3JpcHQoKS5pc1BhdXNlZCgpKTsKLSAgICAgICAgbV9wYWdlLmNvcmVQ
YWdlKCktPm1haW5GcmFtZSgpLnNjcmlwdCgpLmV4ZWN1dGVTY3JpcHRJZ25vcmluZ0V4Y2VwdGlv
bihleHByZXNzaW9uKTsKLSAgICB9Ci0KLSAgICBtX3F1ZXVlLmNsZWFyKCk7Ci19Ci0KLXZvaWQg
V2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZUV4cHJlc3Npb25Gb3JU
ZXN0aW5nKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKLXsKLSAgICBldmFsdWF0ZU9yUXVldWVF
eHByZXNzaW9uKGV4cHJlc3Npb24pOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBkYjY5MGU0YTQxNjA3YWRmMTAzNGNiOGU0NWEwZmIwZjVkNjVmZDY5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0
LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21h
IG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViUGFnZTsKLQotY2xhc3Mg
V2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIHsKLXB1YmxpYzoKLSAgICBXZWJJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIoV2ViUGFnZSYpOwotCi0gICAgdm9pZCByZXNldCgp
OwotICAgIHZvaWQgZnJvbnRlbmRMb2FkZWQoKTsKLQotICAgIHZvaWQgc3VzcGVuZCgpOwotICAg
IHZvaWQgdW5zdXNwZW5kKCk7Ci0KLSAgICB2b2lkIGRpc3BhdGNoQ29tbWFuZChjb25zdCBTdHJp
bmcmIGNvbW1hbmQpOwotICAgIHZvaWQgZGlzcGF0Y2hDb21tYW5kKGNvbnN0IFN0cmluZyYgY29t
bWFuZCwgY29uc3QgU3RyaW5nJiBhcmd1bWVudCk7Ci0gICAgdm9pZCBkaXNwYXRjaENvbW1hbmQo
Y29uc3QgU3RyaW5nJiBjb21tYW5kLCBib29sIGFyZ3VtZW50KTsKLSAgICB2b2lkIGRpc3BhdGNo
TWVzc2FnZUFzeW5jKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7Ci0KLSAgICB2b2lkIGV2YWx1YXRl
RXhwcmVzc2lvbkZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7Ci1wcml2YXRlOgotICAgIHZvaWQg
ZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbihjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGV2YWx1
YXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKLQotICAgIFdlYlBhZ2UmIG1fcGFnZTsKLSAgICBEZXF1
ZTxTdHJpbmc+IG1fcXVldWU7Ci0gICAgYm9vbCBtX2Zyb250ZW5kTG9hZGVkIHsgZmFsc2UgfTsK
LSAgICBib29sIG1fc3VzcGVuZGVkIHsgZmFsc2UgfTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JVSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclVJLmNwcAppbmRleCBkNzliZjhiYzdiZGE3MDBkZGVmNjI0MGVkZDQ5ZWIyNGQzNDcy
YWI0Li5iMzZmYmUzMzhmNDdiMjQ0ZDEyMTg2N2EwNGMyNzE5NjFmMWZmN2ZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmNw
cApAQCAtNTksNyArNTksNyBAQCB2b2lkIFdlYkluc3BlY3RvclVJOjplbmFibGVGcm9udGVuZEZl
YXR1cmVzKCkKIAogV2ViSW5zcGVjdG9yVUk6OldlYkluc3BlY3RvclVJKFdlYlBhZ2UmIHBhZ2Up
CiAgICAgOiBtX3BhZ2UocGFnZSkKLSAgICAsIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyKHBhZ2Up
CisgICAgLCBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcihJbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXI6OmNyZWF0ZSgqcGFnZS5jb3JlUGFnZSgpKSkKICAgICAsIG1fZGVidWdnYWJsZUluZm8o
RGVidWdnYWJsZUluZm9EYXRhOjplbXB0eSgpKQogewogICAgIFdlYkluc3BlY3RvclVJOjplbmFi
bGVGcm9udGVuZEZlYXR1cmVzKCk7CkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgV2ViSW5zcGVjdG9y
VUk6OmVzdGFibGlzaENvbm5lY3Rpb24oV2ViUGFnZVByb3h5SWRlbnRpZmllciBpbnNwZWN0ZWRQ
YWdlSWRlCiAgICAgbV91bmRlclRlc3QgPSB1bmRlclRlc3Q7CiAgICAgbV9pbnNwZWN0aW9uTGV2
ZWwgPSBpbnNwZWN0aW9uTGV2ZWw7CiAKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5yZXNl
dCgpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5yZXNldCgpOwogCiAgICAgbV9mcm9u
dGVuZENvbnRyb2xsZXIgPSAmbV9wYWdlLmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIo
KTsKICAgICBtX2Zyb250ZW5kQ29udHJvbGxlci0+c2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQo
dGhpcyk7CkBAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSTo6d2luZG93T2Jq
ZWN0Q2xlYXJlZCgpCiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmZyb250ZW5kTG9hZGVkKCkKIHsK
LSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5mcm9udGVuZExvYWRlZCgpOworICAgIG1fZnJv
bnRlbmRBUElEaXNwYXRjaGVyLT5mcm9udGVuZExvYWRlZCgpOwogCiAgICAgLy8gVGVsbCB0aGUg
bmV3IGZyb250ZW5kIGFib3V0IHRoZSBjdXJyZW50IGRvY2sgc3RhdGUuIElmIHRoZSB3aW5kb3cg
b2JqZWN0CiAgICAgLy8gY2xlYXJlZCBkdWUgdG8gYSByZWxvYWQsIHRoZSBkb2NrIHN0YXRlIHdv
bid0IGJlIHJlc2VudCBmcm9tIFVJUHJvY2Vzcy4KQEAgLTI0NCwyOCArMjQ0LDI3IEBAIHZvaWQg
V2ViSW5zcGVjdG9yVUk6OnNldERvY2tTaWRlKERvY2tTaWRlIGRvY2tTaWRlKQogCiAgICAgbV9k
b2NrU2lkZSA9IGRvY2tTaWRlOwogCi0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0
Y2hDb21tYW5kKCJzZXREb2NrU2lkZSJfcywgU3RyaW5nKGRvY2tTaWRlU3RyaW5nKSk7CisgICAg
bV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0RG9ja1NpZGUiX3Ms
IHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShTdHJpbmcoZG9ja1NpZGVTdHJpbmcpKSB9KTsKIH0KIAog
dm9pZCBXZWJJbnNwZWN0b3JVSTo6c2V0RG9ja2luZ1VuYXZhaWxhYmxlKGJvb2wgdW5hdmFpbGFi
bGUpCiB7CiAgICAgbV9kb2NraW5nVW5hdmFpbGFibGUgPSB1bmF2YWlsYWJsZTsKIAotICAgIG1f
ZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0RG9ja2luZ1VuYXZhaWxh
YmxlIl9zLCB1bmF2YWlsYWJsZSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3Bh
dGNoQ29tbWFuZCgic2V0RG9ja2luZ1VuYXZhaWxhYmxlIl9zLCB7IEpTT046OlZhbHVlOjpjcmVh
dGUodW5hdmFpbGFibGUpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpzZXRJc1Zpc2li
bGUoYm9vbCB2aXNpYmxlKQogewogICAgIG1faXNWaXNpYmxlID0gdmlzaWJsZTsKIAotICAgIG1f
ZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0SXNWaXNpYmxlIl9zLCB2
aXNpYmxlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJz
ZXRJc1Zpc2libGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh2aXNpYmxlKSB9KTsKIH0KIAog
dm9pZCBXZWJJbnNwZWN0b3JVSTo6dXBkYXRlRmluZFN0cmluZyhjb25zdCBTdHJpbmcmIGZpbmRT
dHJpbmcpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIEpTT046OlZhbHVlOjpl
c2NhcGVTdHJpbmcoYnVpbGRlciwgZmluZFN0cmluZyk7Ci0gICAgbV9mcm9udGVuZEFQSURpc3Bh
dGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJ1cGRhdGVGaW5kU3RyaW5nIl9zLCBidWlsZGVyLnRvU3Ry
aW5nKCkpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInVw
ZGF0ZUZpbmRTdHJpbmciX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShidWlsZGVyLnRvU3RyaW5n
KCkpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpjaGFuZ2VBdHRhY2hlZFdpbmRvd0hl
aWdodCh1bnNpZ25lZCBoZWlnaHQpCkBAIC0zMjUsNzMgKzMyNCw3MyBAQCB2b2lkIFdlYkluc3Bl
Y3RvclVJOjpzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZShib29sIGF2YWlsYWJsZSkKICAg
ICBBU1NFUlQoIWF2YWlsYWJsZSB8fCBzdXBwb3J0c0RpYWdub3N0aWNMb2dnaW5nKCkpOwogICAg
IG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUgPSBhdmFpbGFibGU7CiAKLSAgICBtX2Zyb250
ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNldERpYWdub3N0aWNMb2dnaW5nQXZh
aWxhYmxlIl9zLCBtX2RpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKTsKKyAgICBtX2Zyb250ZW5k
QVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWls
YWJsZSJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFi
bGUpIH0pOwogfQogI2VuZGlmCiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNob3dDb25zb2xlKCkK
IHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNob3dDb25z
b2xlIl9zKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJz
aG93Q29uc29sZSJfcyk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNob3dSZXNvdXJjZXMo
KQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2hvd1Jl
c291cmNlcyJfcyk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFu
ZCgic2hvd1Jlc291cmNlcyJfcyk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNob3dNYWlu
UmVzb3VyY2VGb3JGcmFtZShjb25zdCBTdHJpbmcmIGZyYW1lSWRlbnRpZmllcikKIHsKLSAgICBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNob3dNYWluUmVzb3VyY2VG
b3JGcmFtZSJfcywgZnJhbWVJZGVudGlmaWVyKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hl
ci0+ZGlzcGF0Y2hDb21tYW5kKCJzaG93TWFpblJlc291cmNlRm9yRnJhbWUiX3MsIHsgSlNPTjo6
VmFsdWU6OmNyZWF0ZShmcmFtZUlkZW50aWZpZXIpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3Rv
clVJOjpzdGFydFBhZ2VQcm9maWxpbmcoKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVy
LmRpc3BhdGNoQ29tbWFuZCgic2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkIl9zLCB0cnVlKTsK
KyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJzZXRUaW1lbGlu
ZVByb2ZpbGluZ0VuYWJsZWQiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh0cnVlKSB9KTsKIH0K
IAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6c3RvcFBhZ2VQcm9maWxpbmcoKQogewotICAgIG1fZnJv
bnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0VGltZWxpbmVQcm9maWxpbmdF
bmFibGVkIl9zLCBmYWxzZSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNo
Q29tbWFuZCgic2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkIl9zLCB7IEpTT046OlZhbHVlOjpj
cmVhdGUoZmFsc2UpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpzdGFydEVsZW1lbnRT
ZWxlY3Rpb24oKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFu
ZCgic2V0RWxlbWVudFNlbGVjdGlvbkVuYWJsZWQiX3MsIHRydWUpOworICAgIG1fZnJvbnRlbmRB
UElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmQoInNldEVsZW1lbnRTZWxlY3Rpb25FbmFibGVk
Il9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUodHJ1ZSkgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVj
dG9yVUk6OnN0b3BFbGVtZW50U2VsZWN0aW9uKCkKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0
Y2hlci5kaXNwYXRjaENvbW1hbmQoInNldEVsZW1lbnRTZWxlY3Rpb25FbmFibGVkIl9zLCBmYWxz
ZSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgic2V0RWxl
bWVudFNlbGVjdGlvbkVuYWJsZWQiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShmYWxzZSkgfSk7
CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmRpZFNhdmUoY29uc3QgU3RyaW5nJiB1cmwpCiB7
Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzYXZlZFVSTCJf
cywgdXJsKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kKCJz
YXZlZFVSTCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHVybCkgfSk7CiB9CiAKIHZvaWQgV2Vi
SW5zcGVjdG9yVUk6OmRpZEFwcGVuZChjb25zdCBTdHJpbmcmIHVybCkKIHsKLSAgICBtX2Zyb250
ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoImFwcGVuZGVkVG9VUkwiX3MsIHVybCk7
CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZCgiYXBwZW5kZWRU
b1VSTCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHVybCkgfSk7CiB9CiAKIHZvaWQgV2ViSW5z
cGVjdG9yVUk6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7
Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hNZXNzYWdlQXN5bmMobWVzc2Fn
ZSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoTWVzc2FnZUFzeW5jKG1l
c3NhZ2UpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpldmFsdWF0ZUluRnJvbnRlbmRGb3JU
ZXN0aW5nKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlz
cGF0Y2hlci5ldmFsdWF0ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKGV4cHJlc3Npb24pOworICAgIG1f
ZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5ldmFsdWF0ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKGV4cHJl
c3Npb24pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpwYWdlUGF1c2VkKCkKIHsKLSAgICBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5zdXNwZW5kKCk7CisgICAgbV9mcm9udGVuZEFQSURpc3Bh
dGNoZXItPnN1c3BlbmQoKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6cGFnZVVucGF1c2Vk
KCkKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci51bnN1c3BlbmQoKTsKKyAgICBtX2Zy
b250ZW5kQVBJRGlzcGF0Y2hlci0+dW5zdXNwZW5kKCk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9y
VUk6OnNlbmRNZXNzYWdlVG9CYWNrZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaAppbmRl
eCAwMjZhNzEyYTA4OTlkMDQ1NWYzMTg1YWI3OTc2YzE0MDA1ZDhlYmFiLi5hNmVlNzEzMzkzOWVm
MmEwNGI2Yjg2MmIyOGU4MjE3ZmUyMGRiMWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oCkBAIC0yNyw5ICsyNyw5IEBACiAK
ICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRGVidWdnYWJsZUluZm9EYXRhLmgi
Ci0jaW5jbHVkZSAiV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgiCiAjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9y
RGVidWdnYWJsZVR5cGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5kSG9zdC5oPgogCkBAIC0xNDIs
NiArMTQyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9CYWNr
ZW5kKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6Okluc3BlY3RvckZyb250
ZW5kQVBJRGlzcGF0Y2hlciYgZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkgZmluYWwgeyByZXR1cm4g
bV9mcm9udGVuZEFQSURpc3BhdGNoZXI7IH0KIAogICAgIHZvaWQgcGFnZVBhdXNlZCgpIG92ZXJy
aWRlOwogICAgIHZvaWQgcGFnZVVucGF1c2VkKCkgb3ZlcnJpZGU7CkBAIC0xNTIsNyArMTUzLDcg
QEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJJbnNwZWN0b3JVSShXZWJQYWdlJik7CiAKICAg
ICBXZWJQYWdlJiBtX3BhZ2U7Ci0gICAgV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyOworICAgIFJlZjxXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXI+IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyOwogICAgIFJlZlB0cjxX
ZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q+IG1fZnJvbnRlbmRIb3N0OwogCiAgICAgLy8g
S2VlcCBhIHBvaW50ZXIgdG8gdGhlIGZyb250ZW5kJ3MgaW5zcGVjdG9yIGNvbnRyb2xsZXIgcmF0
aGVyIHRoYW4gZ29pbmcgdGhyb3VnaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA0ZjE5YTBl
ZDZjZDI0YWMzMzQzOTE4ZmJiYjliM2Y2MjY3YWMxMDk3Li4yNDQ1MmI2ODJmNDkzZjA0MDNkY2Zl
NjFiY2FhNzIwYzZlNGZhMDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTAzLDYgKzEw
Myw4IEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCisjaW5jbHVkZSAiV2ViQXV0
aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJBdXRoblBy
b2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrV2ViQXV0aGVudGljYXRp
b25Db25maWd1cmF0aW9uLmg+CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9jZi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnRDRi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L2NmL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcApp
bmRleCA3Yjg2OTgxYTNmNDhlNTBmOGIzY2NhYzM3MDY5MTdkNGFmMWZkYmQ2Li4xNmRjMTQ0ZGNj
OThlMjU2YzA1MzI2N2Y1MmQxZDNlNGU0ODk1ODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L2NmL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L2NmL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENG
LmNwcApAQCAtOTYsNyArOTYsNyBAQCBzdGF0aWMgdm9pZCBkZWxldGVTZXR0aW5nKGNvbnN0IFN0
cmluZyYga2V5KQogCiB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6c2VuZE1lc3NhZ2VUb0Zyb250
ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBtX2Zyb250ZW5kQ2xpZW50LT5kaXNw
YXRjaE1lc3NhZ2VBc3luYyhtZXNzYWdlKTsKKyAgICBtX2Zyb250ZW5kQ2xpZW50LT5mcm9udGVu
ZEFQSURpc3BhdGNoZXIoKS5kaXNwYXRjaE1lc3NhZ2VBc3luYyhtZXNzYWdlKTsKIH0KIAogYm9v
bCBXZWJJbnNwZWN0b3JDbGllbnQ6Omluc3BlY3RvckF0dGFjaERpc2FibGVkKCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4
MjZiYTJmMzk1NmY2MjBiMGFlNDQ1ZTZkZGE5NzhkNWMzZjIwZjE5Li40NTM2MDAxNzk0ZWRkYTE4
ZTg2ZTAzYWEwMzI2ZDA4YTBjZDA3YTUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMTAt
MjkgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogbW92ZSBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgdG8gV2ViQ29yZSwgY2xlYW4g
dXAgdXNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3ODM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM4NDQwNz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9kb20vZG9tLXJl
bW92ZS1ldmVudHMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL3JlbW92ZS1tdWx0aXBs
ZS1ub2Rlcy5odG1sOgorICAgICAgICBUaGUgb3JkZXIgb2YgZXZlbnRzIHJlY2VpdmVkIGhhcyBj
aGFuZ2VkIHNsaWdodGx5IGR1ZSB0byB0aGUgbmV3IGF1dG8tc3VzcGVuZCBiZWhhdmlvcgorICAg
ICAgICBpbiBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuIFJlbW92ZSBldmVudCBoYW5k
bGVycyB3aGVuIHRoZSB0ZXN0IGlzIGNvbXBsZXRlIHRvIAorICAgICAgICBlbnN1cmUgdGhhdCBl
dmVudHMgd2hpY2ggYXJyaXZlIGFmdGVyIHRoZSB0ZXN0IGhhcyBmaW5pc2hlZCBkbyBub3Qgc3Rv
bXAgb24gdGhlIGV4cGVjdGVkIHJlc3VsdHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1lLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Rl
YnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Rl
YnVnZ2VyL2hpdC1icmVha3BvaW50LWZyb20tY29uc29sZS5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51ZS5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50Lmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwuaHRtbDoKKyAgICAg
ICAgU29tZSB0ZXN0cyBzZWVtIHRvIGNhbGwgUHJvdG9jb2xUZXN0LmNvbXBsZXRlVGVzdCgpIGZy
b20gdGhlIGhhbmRsZXIgb2YgRGVidWdnZXIucGF1c2VkLCB3aGVuCisgICAgICAgIHRoZSBkZWJ1
Z2dlciBpcyBzdGlsbCBwYXVzZWQuIFRoaXMgY2F1c2VzIHRpbWVvdXRzIGFmdGVyIHRoaXMgcmVm
YWN0b3JpbmcsIHNpbmNlIG5vdCByZXN1bWluZyBtZWFucyB0aGF0CisgICAgICAgIHdlJ2xsIGdl
dCBzdHVjayBpbiB0aGUgZGVidWdnZXIncyBuZXN0ZWQgcnVuIGxvb3AgYW5kIG5ldmVyIHJldHVy
bi4KKwogMjAyMC0xMC0yOSAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEdhcmRlbmluZyBvZiBuZXcgZmFpbHVyZXMg
YWZ0ZXIgcjI2OTE3NyBhbmQgbWFyayBtb3JlIGZsYWt5IHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVz
dC5qcwppbmRleCA4MzFhNjFmNjc4NWU0NDg4YjEyZDdkZmRlZjFmZTY2ZDM3NTUxMjIyLi5mMjBl
ZDliMmUzZmIzNDZjY2RmOGVmZmI1MDhhYzgzMjI5Y2Y5ODhjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcworKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVz
dC5qcwpAQCAtNjUsMTEgKzY1LDEyIEBAIFRlc3RQYWdlLmxvZyA9IHdpbmRvdy5sb2cgPSBmdW5j
dGlvbih0ZXh0KQogCiBUZXN0UGFnZS5jbG9zZVRlc3QgPSB3aW5kb3cuY2xvc2VUZXN0ID0gZnVu
Y3Rpb24oKQogewotICAgIHdpbmRvdy5pbnRlcm5hbHMuY2xvc2VEdW1teUluc3BlY3RvckZyb250
ZW5kKCk7Ci0KICAgICAvLyBUaGlzIGNvZGUgbWlnaHQgYmUgZXhlY3V0ZWQgd2hpbGUgdGhlIGRl
YnVnZ2VyIGlzIHN0aWxsIHJ1bm5pbmcgdGhyb3VnaCBhIHN0YWNrIGJhc2VkIEV2ZW50TG9vcC4K
ICAgICAvLyBVc2UgYSBzZXRUaW1lb3V0IHRvIGRlZmVyIHRvIGEgY2xlYW4gc3RhY2sgYmVmb3Jl
IGxldHRpbmcgdGhlIHRlc3RSdW5uZXIgbG9hZCB0aGUgbmV4dCB0ZXN0LgotICAgIHNldFRpbWVv
dXQoKCkgPT4geyB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsgfSwgMCk7CisgICAgc2V0VGltZW91
dCgoKSA9PiB7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuY2xvc2VEdW1teUluc3BlY3RvckZy
b250ZW5kKCk7CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0sIDApOwog
fTsKIAogVGVzdFBhZ2UucnVuVGVzdCA9IHdpbmRvdy5ydW5UZXN0ID0gZnVuY3Rpb24oKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rp
b24tbmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUt
ZnVuY3Rpb24tbmFtZS5odG1sCmluZGV4IGU3ZTk3ZTgxMjNlZDFkNWIyYTU4ZjYwMjBmM2M5MzBl
MmU4YjllZDQuLjY3ZTA5NDJlN2EyMmIzYjE3ZjQwMTYyMThlYThlZGZiZTUxNjhkMDMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9u
LW5hbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFt
ZS1mdW5jdGlvbi1uYW1lLmh0bWwKQEAgLTMyLDYgKzMyLDggQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgSW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1
bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgewogICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJI
aXQgQnJlYWtwb2ludCEiKTsKKyAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQo
IkRlYnVnZ2VyLmRpc2FibGUiKTsKKwogICAgICAgICB2YXIgZnVuY3Rpb25OYW1lcyA9IFsgXTsK
ICAgICAgICAgdmFyIGk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAzOyBpKyspCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3Qu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9z
dC5odG1sCmluZGV4IDRmNzE4NTI5NDBiMzhkNzM2Y2ZhZTA4YzRmZTkwZWI0ODlhMzY1NzguLmU3
M2Y4ODg2MmFlNDZjZDJkYTViMzgzMDdhOWU4NDgyNjIyYzdjN2UgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC5odG1s
CkBAIC0zMiw2ICszMiw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIEluc3BlY3RvclByb3RvY29s
LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0
KQogICAgIHsKICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiSGl0IEJyZWFrcG9pbnQhIik7Cisg
ICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5kaXNhYmxlIik7
CisKICAgICAgICAgdmFyIHRoaXNWYWx1ZXMgPSBbIF07CiAgICAgICAgIHZhciBpOwogICAgICAg
ICBmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2hpdC1icmVha3BvaW50LWZyb20tY29uc29sZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2hpdC1icmVha3BvaW50LWZyb20tY29uc29sZS5odG1sCmlu
ZGV4IDUyMWM5ZTQxNzllODIwZjNlYmJkYjhlNWUzNmQ4ZmFlOTE4NmM3YTcuLjE1NDYyYTQ3MGQy
NzlmNjM4ZjJjMGE4ZWRmMWNjM2I1ZTY0M2QzMmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9oaXQtYnJlYWtwb2ludC1mcm9tLWNvbnNvbGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvaGl0LWJyZWFrcG9pbnQtZnJvbS1jb25zb2xl
Lmh0bWwKQEAgLTMwLDYgKzMwLDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgSW5zcGVjdG9yUHJv
dG9jb2wuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VP
YmplY3QpCiAgICAgewogICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJIaXQgQnJlYWtwb2ludCEi
KTsKKyAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmRpc2Fi
bGUiKTsKKwogICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJQQVNTIik7CiAgICAgICAgIFByb3Rv
Y29sVGVzdC5jb21wbGV0ZVRlc3QoKTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51ZS5odG1s
CmluZGV4IDFmZWQ2N2M0NmZkNWI5NDIzOTg2MTk5MzliMDRhMDcwMGNmZjU5NTIuLjBmNWEzMTU0
YjM3MTM3Zjc5ZTQ2NmQ5N2I0MDM0NjM4Zjg2M2I3NTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51ZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51
ZS5odG1sCkBAIC00NCw2ICs0NCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIEluc3BlY3RvclBy
b3RvY29sLmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdl
T2JqZWN0KQogICAgIHsKICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiSGl0IEJyZWFrcG9pbnQh
Iik7CisgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5kaXNh
YmxlIik7CiAKICAgICAgICAgaWYgKCFhbGxvd2VkVG9IaXRCcmVha3BvaW50KSB7CiAgICAgICAg
ICAgICBQcm90b2NvbFRlc3QubG9nKCJGQUlMOiBzaG91bGQgbm90IGhhdmUgaGl0IGJyZWFrcG9p
bnQuIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJl
YWtwb2ludC1jb2x1bW4uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRC
cmVha3BvaW50LWNvbHVtbi5odG1sCmluZGV4IGZiNjM1MzEyMjk4ZDZmYTY5NDk1ZTExMmFhMWUz
OGEzNjllNmJjZDQuLjc4NjkyZmRhMDBjZDc0NjEzZTIxN2Y3YmYxNWViYWI5NDI4ZTliNmUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNv
bHVtbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50LWNvbHVtbi5odG1sCkBAIC0zNyw2ICszNyw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAg
ICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRXZhbHV0ZWQgdmFsdWUgb2YgYGFgIChleHBlY3Rpbmcg
bnVtYmVyIDEpIHdhczogIiArIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2VPYmplY3QucmVzdWx0LnJl
c3VsdCkpOwogICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLmV2YWx1YXRlT25DYWxsRnJhbWUiLCB7Y2FsbEZyYW1lSWQ6IGNhbGxGcmFtZUlkZW50aWZp
ZXIsIGV4cHJlc3Npb246ICJiIn0sIGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKICAgICAgICAg
ICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJFdmFsdXRlZCB2YWx1ZSBvZiBgYmAgKGV4cGVjdGlu
ZyB1bmRlZmluZWQpIHdhczogIiArIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2VPYmplY3QucmVzdWx0
LnJlc3VsdCkpOworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1h
bmQoIkRlYnVnZ2VyLmRpc2FibGUiKTsKICAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QuY29t
cGxldGVUZXN0KCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlv
bi5odG1sCmluZGV4IGMyYTcyOTU2YTNlNTI3ZDIyZDQxYmI4MDQwODQ5ZGUwNzBhMDBlMTkuLmM5
NjhkNWQ5N2EyN2NlYTU2YjdlYzNhODlmYmUwYWI4NzgyYjBiZjcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlv
bi5odG1sCkBAIC0zLDYgKzMsNyBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgorCiBmdW5jdGlv
biB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgiRGVidWdnZXIu
ZW5hYmxlIiwge30pOwpAQCAtMTAsNiArMTEsMTUgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICB2
YXIgaW5CcmVha3BvaW50ID0gZmFsc2U7CiAgICAgdmFyIGJyZWFrcG9pbnRUcmlnZ2VyZWQgPSAw
OworICAgIHZhciBjb21wbGV0ZWRUZXN0ID0gZmFsc2U7CisKKyAgICBmdW5jdGlvbiBkaXNhYmxl
RGVidWdnZXJBbmRDb21wbGV0ZVRlc3QoKQorICAgIHsKKyAgICAgICAgY29tcGxldGVkVGVzdCA9
IHRydWU7IC8vIEZvcmNlIERlYnVnZ2VyLnJlc3VtZWQgY2FsbGJhY2sgdG8gYmFpbCBvdXQuCisg
ICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5kaXNhYmxlIik7
CisgICAgICAgIFByb3RvY29sVGVzdC5sb2coIlRlc3QgaXMgY29tcGxldGUsIGRpc2FibGluZyBi
cmVha3BvaW50cy4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmNvbXBsZXRlVGVzdCgpOworICAg
IH0KIAogICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0
UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgIHsKQEAgLTQ4LDE4ICs1OCwy
MiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJF
dmFsdXRlZCB2YWx1ZSBvZiBgYWAgKGV4cGVjdGluZyBudW1iZXIgNCkgd2FzOiAiICsgSlNPTi5z
dHJpbmdpZnkobWVzc2FnZU9iamVjdC5yZXN1bHQucmVzdWx0KSk7CiAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmV2YWx1YXRlT25DYWxsRnJh
bWUiLCB7Y2FsbEZyYW1lSWQ6IGNhbGxGcmFtZUlkZW50aWZpZXIsIGV4cHJlc3Npb246ICJiIn0s
IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKICAgICAgICAgICAgICAgICAgICAgUHJvdG9jb2xU
ZXN0LmxvZygiRXZhbHV0ZWQgdmFsdWUgb2YgYGJgIChleHBlY3RpbmcgbnVtYmVyIDcpIHdhczog
IiArIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2VPYmplY3QucmVzdWx0LnJlc3VsdCkpOworCiAgICAg
ICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIlBBU1M6IGhpdCBicmVha3BvaW50cyB3
aXRoIGV4cGVjdGVkIHZhbHVlcyIpOwotICAgICAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3Qu
Y29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICAgICAgICAgIGRpc2FibGVEZWJ1Z2dlckFuZENv
bXBsZXRlVGVzdCgpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJGQUlMOiBoaXQgdG9v
IG1hbnkgYnJlYWtwb2ludHMuIik7Ci0gICAgICAgICAgICBQcm90b2NvbFRlc3QuY29tcGxldGVU
ZXN0KCk7CisgICAgICAgICAgICBkaXNhYmxlRGVidWdnZXJBbmRDb21wbGV0ZVRlc3QoKTsKICAg
ICAgICAgfQogICAgIH0KIAogICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRGVi
dWdnZXIucmVzdW1lZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CisgICAgICAg
IGlmIChjb21wbGV0ZWRUZXN0KQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIFByb3Rv
Y29sVGVzdC5sb2coIlJlc3VtZWQsIHJ1bm5pbmcgYnJlYWtwb2ludFdpdGhDb25kaXRpb24gbXVs
dGlwbGUgdGltZXMgYWdhaW4iKTsKICAgICAgICAgaW5CcmVha3BvaW50ID0gZmFsc2U7CiAKQEAg
LTY5LDcgKzgzLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIGlmICghaW5CcmVha3BvaW50KSB7CiAgICAgICAg
ICAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IERpZCBub3QgaGl0IGNvbmRpdGlv
bmFsIGJyZWFrcG9pbnQgdGhlIHNlY29uZCB0aW1lIik7Ci0gICAgICAgICAgICAgICAgICAgIFBy
b3RvY29sVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgZGlzYWJsZURl
YnVnZ2VyQW5kQ29tcGxldGVUZXN0KCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fSwgMTAwKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvc2V0QnJlYWtwb2ludC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3NldEJyZWFrcG9pbnQuaHRtbAppbmRleCBhYzNkYmI2NzViYTkxNzA1NTA0NjdlZTY1OGNm
YzYwMTlkN2M3MjM0Li43MDM0OGE5ZDY3YWMxMTk2YzFmOGMwNDNmZmM1OTQ3NTM5MDBjNmIwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50Lmh0
bWwKQEAgLTMzLDYgKzMzLDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgSW5zcGVjdG9yUHJvdG9j
b2wuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmpl
Y3QpCiAgICAgewogICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJIaXQgQnJlYWtwb2ludCEiKTsK
KyAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmRpc2FibGUi
KTsKKwogICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJQQVNTIik7CiAgICAgICAgIFByb3RvY29s
VGVzdC5jb21wbGV0ZVRlc3QoKTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwuaHRt
bAppbmRleCBmN2E5ZWFmMzNjYTQ3ZGM2N2M2OWFiMDU2MWFmNjFiNzdiYWUxYWNhLi41NzM0MzZi
ZTU5NzE5YWViNWJiNzQxZmQ4OWNjZTBlNWQxZjEzOWQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50QnlVcmwtc291
cmNlVVJMLmh0bWwKQEAgLTMyLDYgKzMyLDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAg
ICBQcm90b2NvbFRlc3QubG9nKCJFdmFsdXRlZCB2YWx1ZSBvZiBgYWAgKGV4cGVjdGluZyBudW1i
ZXIgMSkgd2FzOiAiICsgSlNPTi5zdHJpbmdpZnkobWVzc2FnZU9iamVjdC5yZXN1bHQucmVzdWx0
KSk7CiAgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgiRGVidWdnZXIu
ZXZhbHVhdGVPbkNhbGxGcmFtZSIsIHtjYWxsRnJhbWVJZDogY2FsbEZyYW1lSWRlbnRpZmllciwg
ZXhwcmVzc2lvbjogImMifSwgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgewogICAgICAgICAgICAg
ICAgIFByb3RvY29sVGVzdC5sb2coIkV2YWx1dGVkIHZhbHVlIG9mIGBjYCAoZXhwZWN0aW5nIHVu
ZGVmaW5lZCkgd2FzOiAiICsgSlNPTi5zdHJpbmdpZnkobWVzc2FnZU9iamVjdC5yZXN1bHQucmVz
dWx0KSk7CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgi
RGVidWdnZXIuZGlzYWJsZSIpOwogICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5jb21wbGV0
ZVRlc3QoKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kb20vZG9tLXJlbW92ZS1ldmVudHMuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kb20vZG9tLXJlbW92ZS1ldmVudHMuaHRtbAppbmRleCA0ODE3ZWU3MTc3ZTQ3
ZDRmOTk0MTQwMjY3NmIwZWMwYjMwYTg1ZmNkLi5kNWM1OGM0Yzc4OTU3OTRjNTVkOWQ3ZWUxYmJm
MGUzMjBmMTdhMTZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbS1y
ZW1vdmUtZXZlbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9kb20tcmVt
b3ZlLWV2ZW50cy5odG1sCkBAIC03MSw2ICs3MSw5IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAg
ICAvLyBNYWtlIHN1cmUgd2UgcmVjZWl2ZSB0aGUgY2hpbGRyZW4gb2YgdGhlICIjZmluYWxfY29u
dGFpbmVyIiBhcyB0aGV5IGFyZSBhZGRlZC4KICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2Vu
ZENvbW1hbmQoIkRPTS5yZXF1ZXN0Q2hpbGROb2RlcyIsIHtub2RlSWQ6IHJlc3BvbnNlLnJlc3Vs
dC5ub2RlSWR9KTsKICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIlJ1bnRp
bWUuZXZhbHVhdGUiLCB7ImV4cHJlc3Npb24iOiAibW92ZU5vZGUoKSJ9LCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIGRlbGV0ZSBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIkRPTS5z
ZXRDaGlsZE5vZGVzIl07CisgICAgICAgICAgICBkZWxldGUgSW5zcGVjdG9yUHJvdG9jb2wuZXZl
bnRIYW5kbGVyWyJET00uY2hpbGROb2RlUmVtb3ZlZCJdOworICAgICAgICAgICAgZGVsZXRlIElu
c3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRE9NLmNoaWxkTm9kZUluc2VydGVkIl07CiAg
ICAgICAgICAgICBQcm90b2NvbFRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgICAgIH0pOwogICAg
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcmVtb3ZlLW11bHRpcGxl
LW5vZGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3JlbW92ZS1tdWx0aXBsZS1u
b2Rlcy5odG1sCmluZGV4IDZlNjBjNjVmMmEwOTA1M2M3OTU2MDM2MDNkMTRiNDk0ZWE0NGZjOGUu
LjZkZDExNTkyZTRjNDZiNzA1MjIwMjkxNGEyMTZjZTIzMmUzNWY2MDggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20vcmVtb3ZlLW11bHRpcGxlLW5vZGVzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9yZW1vdmUtbXVsdGlwbGUtbm9kZXMuaHRtbApAQCAt
OTIsNiArOTIsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIEluc3BlY3RvclByb3Rv
Y29sLnNlbmRDb21tYW5kKCJET00ucmVxdWVzdENoaWxkTm9kZXMiLCB7bm9kZUlkOiByZXNwb25z
ZS5yZXN1bHQubm9kZUlkc1tpXX0pOwogICAgICAgICAKICAgICAgICAgSW5zcGVjdG9yUHJvdG9j
b2wuc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ImV4cHJlc3Npb24iOiAibW92ZU5v
ZGUoKSJ9LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGRlbGV0ZSBJbnNwZWN0b3JQcm90b2Nv
bC5ldmVudEhhbmRsZXJbIkRPTS5zZXRDaGlsZE5vZGVzIl07CisgICAgICAgICAgICBkZWxldGUg
SW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJET00uY2hpbGROb2RlUmVtb3ZlZCJdOwor
ICAgICAgICAgICAgZGVsZXRlIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRE9NLmNo
aWxkTm9kZUluc2VydGVkIl07CiAgICAgICAgICAgICBQcm90b2NvbFRlc3QuY29tcGxldGVUZXN0
KCk7CiAgICAgICAgIH0pOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412780</attachid>
            <date>2020-10-30 11:43:57 -0700</date>
            <delta_ts>2020-10-30 13:44:53 -0700</delta_ts>
            <desc>Patch v2.5 - for EWS</desc>
            <filename>bug-217835-20201030114356.patch</filename>
            <type>text/plain</type>
            <size>76555</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI2OWI0YzJlYzgyOTE2
NzA1NGU2ZmMzMWVlN2I1NDU5ZDQ3NDRhMi4uYWFiMzRkOGZlMTZmZDM5NWZmOTNkYzYwM2NmOGUz
NDQ2NmEyMjAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIwLTEwLTE2ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUg
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIHRvIFdlYkNvcmUsIGNsZWFuIHVwIHVzZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgzNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzODQ0MDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGV2aW4gUm91c3NvLgorCisgICAgICAgIEV4cG9zZSB0aGUgZGlzcGF0Y2hlciBhcyBwYXJ0IG9m
IHRoZSBJbnNwZWN0b3JGcm9udGVuZENsaWVudCBBUEkgc28gdGhhdCBvdGhlciBjb2RlCisgICAg
ICAgIGNhbiB1c2UgdGhlIGRpc3BhdGNoZXIgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0J3MgYSBX
ZWJJbnNwZWN0b3JVSSBvciBSZW1vdGVXZWJJbnNwZWN0b3JVSS4KKworICAgICAgICBBZGQgYW4g
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIGluc3RhbmNlIGFuZCBnZXR0ZXIgdG8gSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC4KKworICAgICAgICBBZG9wdCB0aGUgSlNPTlZhbHVl
LWJhc2VkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2goKSBtZXRob2QK
KyAgICAgICAgaW4gSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC4gUmVtb3ZlIHRoZSByZWR1
bmRhbnQgcGFyYWxsZWwgcXVldWluZyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgUmVtb3ZlIHJl
ZHVuZGFudCBwdWJsaWMgbWV0aG9kcyB0aGF0IGFyZSBhdmFpbGFibGUgb24gSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBNb3ZlZCBmaWxlcy4K
KworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpyZXNl
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmZy
b250ZW5kTG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcjo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OnVuc3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoTWVzc2FnZUFzeW5jKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVP
clF1ZXVlRXhwcmVzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OmV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZUV4cHJlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0
ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKToKKyAgICAgICAgQWRkIG5ldyBkaXNwYXRjaCgpIG1ldGhv
ZC4gUmVtb3ZlIG90aGVyIGRpc3BhdGNoIG1ldGhvZHMgdGhhdCBjYW4gYmUgZXhwcmVzc2VkCisg
ICAgICAgIHVzaW5nIHRoZSBuZXcgSlNPTjo6VmFsdWUtYmFzZWQgbWV0aG9kLiBJZiBpdCdzIG5v
dCBwb3NzaWJsZSB0byBldmFsdWF0ZSBKUworICAgICAgICBpbW1lZGlhdGVseSwgc2NoZWR1bGUg
YSBvbmUtc2hvdCB0YXNrIHRvIHRyeSBhZ2FpbiBvbiBhIGRpZmZlcmVudCBldmVudCBsb29wIHR1
cm4uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oLgorICAgICAgICBBZGQgbmV3IGRpc3BhdGNo
KCkgbWV0aG9kIHdoaWNoIHRha2VzIGEgdmVjdG9yIG9mIEpTT046OlZhbHVlIG9iamVjdHMgYW5k
CisgICAgICAgIHNlcmlhbGl6ZXMgdGhlbSBpbnRvIGNvbW1hbmQgYXJndW1lbnRzIGZvciB0aGUg
ZnJvbnRlbmQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Okluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbDo6ZnJvbnRlbmRMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6cGFnZVBhdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpwYWdlVW5wYXVzZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RG9ja2luZ1VuYXZhaWxhYmxlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldEF0dGFj
aGVkV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9j
YWw6OnNldERlYnVnZ2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDo6c2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnN0YXJ0UHJvZmlsaW5nSmF2
YVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
OjpzdG9wUHJvZmlsaW5nSmF2YVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsOjpzaG93Q29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzaG93UmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNob3dNYWluUmVzb3VyY2VGb3JGcmFt
ZSk6CisgICAgICAgIFVzZSBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgdG8gZGlzcGF0
Y2ggY29tbWFuZHMgdG8gdGhlIGZyb250ZW5kLgorCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaE1lc3NhZ2UpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZGlz
cGF0Y2hNZXNzYWdlQXN5bmMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6ZXZhbHVhdGVPbkxvYWQpOiBEZWxldGVkLgorICAgICAgICBU
aGVzZSBhcmUgcmVkdW5kYW50IHdpdGggSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLgor
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yU3R1YkZyb250ZW5kOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOiBVc2UgZnJvbnRlbmQg
ZGlzcGF0Y2hlciBkaXJlY3RseS4KKwogMjAyMC0xMC0yOSAgQWRpdHlhIEtlZXJ0aGkgIDxha2Vl
cnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBSZW1vdmUgc29mdCBsaW5raW5nIG9m
IE5ldHdvcmtFeHRlbnNpb24uZnJhbWV3b3JrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc2NDUzZDgxYjNmZWQzOTNl
NjBmZmQ3ZmQ2ZTc0NzZhYjcwYjYyNzYuLmQ5ODQ4YmE4ZmMyYzU0ODJiNWE2OTdhNDA4ZDU5M2Fm
YmVlMmRhNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMTAtMjEgIEJyaWFuIEJ1
cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgdG8gV2ViQ29yZSwgY2xlYW4gdXAgdXNlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3ODM1CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MDM4NDQwNz4KKworICAgICAgICBSZXZpZXdlZCBieSBEZXZp
biBSb3Vzc28uCisKKyAgICAgICAgQWRvcHQgdGhlIEpTT05WYWx1ZS1iYXNlZCBJbnNwZWN0b3JG
cm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoKCkgbWV0aG9kCisgICAgICAgIGluIFdlYklu
c3BlY3RvclVJIGFuZCBSZW1vdGVJbnNwZWN0b3JVSSBtZXRob2RzIHRoYXQgZGlzcGF0Y2ggdG8g
dGhlIGZyb250ZW5kLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IE1vdmUgZmlsZXMuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OlJlbW90ZVdlYkluc3BlY3RvclVJKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmluaXRpYWxpemUpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6dXBkYXRlRmluZFN0cmluZyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpkaWRTYXZlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmRpZEFwcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVdlYkluc3BlY3RvclVJOjpmcm9udGVuZExvYWRlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVdlYkluc3BlY3RvclVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6cGFnZVBhdXNlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVdlYkluc3BlY3RvclVJOjpwYWdlVW5wYXVzZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVXZWJJbnNwZWN0b3JVSTo6c2V0RGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUpOgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkluc3BlY3RvclVJOjpXZWJJbnNwZWN0b3JVSSk6CisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvclVJOjpzZXREb2NrU2lkZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJ
OjpzZXREb2NraW5nVW5hdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JV
STo6c2V0SXNWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnVwZGF0
ZUZpbmRTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2V0RGlhZ25v
c3RpY0xvZ2dpbmdBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6
c2hvd0NvbnNvbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2hvd1Jlc291
cmNlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzaG93TWFpblJlc291cmNl
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c3RhcnRQYWdlUHJv
ZmlsaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnN0b3BQYWdlUHJvZmls
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnN0YXJ0RWxlbWVudFNlbGVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzdG9wRWxlbWVudFNlbGVj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpkaWRTYXZlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OmRpZEFwcGVuZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkluc3BlY3RvclVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJJbnNwZWN0b3JVSTo6ZXZhbHVhdGVJbkZyb250ZW5kRm9yVGVzdGluZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpwYWdlUGF1c2VkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yVUk6OnBhZ2VVbnBhdXNlZCk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIEFkZCBtaXNzaW5nIGhl
YWRlciBpbmNsdWRlcyAocmVsYXRlZCB0byB1bmlmaWVkIHNvdXJjZXMgY2hhbmdlcyBmcm9tIHIy
NjkxNjgpLgorCiAyMDIwLTEwLTI5ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNv
bT4KIAogICAgICAgICBbQ29jb2FdIFJlbW92ZSBzb2Z0IGxpbmtpbmcgb2YgTmV0d29ya0V4dGVu
c2lvbi5mcmFtZXdvcmsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvY2YvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9jZi9DaGFuZ2VMb2cKaW5kZXggMDZlNzk2MGVmZjZl
YzA2NjE0YWVkZWRkYTNkZTBiYTc3MTI0YTEzMC4uZWU3NGUxNjQ4NjYxM2Q1NTNmYThiYTgwMDk0
MjQ5MzJhYzliODFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9jZi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9jZi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAyMC0xMC0xNiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBtb3ZlIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlciB0byBXZWJD
b3JlLCBjbGVhbiB1cCB1c2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTc4MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMzg0NDA3PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcDoKKyAgICAgICAgKFdlYkluc3BlY3RvckNsaWVu
dDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKToKKwogMjAxOS0wOC0xOCAgWXVzdWtlIFN1enVraSAg
PHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtXVEZdIEFkZCBtYWtlVW5pcXVlPFQ+LCB3
aGljaCBlbnN1cmVzIFQgaXMgZmFzdC1hbGxvY2F0ZWQsIG1ha2VVbmlxdWUgLyBtYWtlVW5pcXVl
V2l0aG91dEZhc3RNYWxsb2NDaGVjayBwYXJ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA2ODg0ZDBm
ODZkMjlkYzE0OTE2NjExN2JhNWM5NjRkMTBiMzNiZGRmLi5lNzEwNThlYTg3MDFmYTU2N2YwZmM5
N2EyZjA1MWJjMmFiYzEwNWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTY5Niw2ICs2OTYsNyBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgaW5zcGVjdG9yL0lu
c3BlY3RvckNsaWVudC5oCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAogICAg
IGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZS5oCisgICAgaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kQ2xpZW50LmgKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5o
CiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4
IDc2YmFmMDkxNzBhODg4MWM5ODlkZDQwZTM1YTJiNzU0OTY0YzA0Y2EuLjYzNzcxYjA0MDU4N2E5
NDg1ZjQ0NjA4ZjhjMTI4M2VmNzZjNjE1ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNDA0LDYgKzE0
MDQsNyBAQCBpbnNwZWN0b3IvSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuY3BwCiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmNwcAogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCiBpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAKK2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwCiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC5jcHAKIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3Bw
CiBpbnNwZWN0b3IvSW5zcGVjdG9ySGlzdG9yeS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ZGU5NWE3YTI2OTg4M2Q1MmM2
Yjk3OGY3YmE1YzRkMWJkMTBlMDBjLi4xZTQ4ZDNlN2M3ZjkyMjEwNTIyZjJlNGJhNmUzNDM5YWNj
YzY1MWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0yOTc5LDYgKzI5NzksNyBAQAogCQk5OENFNDMyQTEyOUUwMEU1MDA1ODIx
REMgLyogTGlua0xvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOThDRTQzMjkxMjlFMDBFNTAwNTgyMURDIC8qIExpbmtMb2FkZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5OEVCMUY5NTEzMTNG
RTA1MDBEMEUxRUEgLyogTm90SW1wbGVtZW50ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk4RUIxRjk0MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBs
ZW1lbnRlZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTk5MjAzOTgzMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MjAzOTgxMThCOTVCQzYw
MEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk5OTRDNjAzQTI1M0EyNzczMDBCREYwNjAgLyogSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5OTRDNjAzNzI1M0EyNzcyMDBCREYwNjAgLyogSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTk2RTU5REYxREYwMTI4RDAwNjYxMkI5IC8qIE5hdmlnYXRvcldlYkRy
aXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk2
RTU5REMxREYwMEQ5MDAwNjYxMkI5IC8qIE5hdmlnYXRvcldlYkRyaXZlci5oICovOyB9OwogCQk5
OUQxQjJEMzIzQUMxNDMxMDA4MTFDRjAgLyogSW5zcGVjdG9yRGVidWdnYWJsZVR5cGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RDFCMkQxMjNBQzE0
MzAwMDgxMUNGMCAvKiBJbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlBNTI4RTg0MTdEN0Y1MkYwMEFBOTUx
OCAvKiBGbG9hdGluZ09iamVjdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlBNTI4RTgyMTdEN0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE3
NjIsNiArMTE3NjMsOCBAQAogCQk5OTA4QjBGRjFCQ0FEMDdEMDBFRDM1NzIgLyogUmVhZGFibGVT
dHJlYW1CWU9CUmVhZGVyQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gUmVhZGFibGVTdHJlYW1CWU9CUmVhZGVyQnVpbHRpbnMuaDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvUmVhZGFibGVTdHJlYW1CWU9CUmVhZGVyQnVpbHRpbnMuaDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJOTkyMDM5ODAxOEI5NUJDNjAwQjM5QUY5IC8q
IFVzZXJJbnB1dEJyaWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBVc2VySW5wdXRCcmlkZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTIw
Mzk4MTE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklucHV0QnJpZGdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJJbnB1dEJyaWRnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5OTRDNjAzNzI1M0EyNzcyMDBCREYwNjAgLyogSW5zcGVjdG9yRnJvbnRlbmRB
UElEaXNwYXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rv
ckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
OTRDNjAzOTI1M0EyNzczMDBCREYwNjAgLyogSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckZyb250
ZW5kQVBJRGlzcGF0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5NkU1
OURCMURGMDBEOTAwMDY2MTJCOSAvKiBOYXZpZ2F0b3JXZWJEcml2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdG9yV2ViRHJpdmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk2RTU5REMxREYwMEQ5MDAwNjYxMkI5IC8qIE5hdmln
YXRvcldlYkRyaXZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXZpZ2F0
b3JXZWJEcml2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk2RTU5REQxREYw
MEQ5MDAwNjYxMkI5IC8qIE5hdmlnYXRvcitXZWJEcml2ZXIuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9ICJOYXZpZ2F0b3IrV2ViRHJpdmVyLmlkbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xODQxMCw2ICsxODQxMyw4IEBACiAJCQkJNDFGMDYyMTMwRjVGMTkyNjAwQTA3RUFD
IC8qIEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwICovLAogCQkJCTQxRjA2MjEyMEY1RjE5
MjYwMEEwN0VBQyAvKiBJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmggKi8sCiAJCQkJOTlEMUIy
RDEyM0FDMTQzMDAwODExQ0YwIC8qIEluc3BlY3RvckRlYnVnZ2FibGVUeXBlLmggKi8sCisJCQkJ
OTk0QzYwMzkyNTNBMjc3MzAwQkRGMDYwIC8qIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
ci5jcHAgKi8sCisJCQkJOTk0QzYwMzcyNTNBMjc3MjAwQkRGMDYwIC8qIEluc3BlY3RvckZyb250
ZW5kQVBJRGlzcGF0Y2hlci5oICovLAogCQkJCUYzNDRDNzEyMTEyNUI4MkMwMEYyNkVFRSAvKiBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudC5oICovLAogCQkJCUYzNDRDNzU3MTEyOTRGRjYwMEYyNkVF
RSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCAqLywKIAkJCQlGMzQ0Qzc1MjEx
Mjk0RDlEMDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oICovLApAQCAt
MzIxNjQsNiArMzIxNjksNyBAQAogCQkJCUE1QjgxQ0FCMUZBQTQ0NjIwMDM3RDFFNiAvKiBJbnNw
ZWN0b3JET01BZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQUMxRkFBNDQ2MjAwMzdE
MUU2IC8qIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
QjgxQ0FEMUZBQTQ0NjIwMDM3RDFFNiAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTk5NEM2MDNBMjUzQTI3NzMwMEJERjA2MCAvKiBJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzNDRDNzE0MTEyNUI4MkMw
MEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RjM0NEM3NTMxMTI5NEQ5RDAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCTdBMEU3NzBGMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0
b3JGcm9udGVuZEhvc3QuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hZmVmNGFjMGMyNjA5NGMxZjBkOTZjY2EzOWFlY2E0ZTQ1OGRiNTUxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5jcHAKQEAgLTAsMCArMSwyMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIu
aCIKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNj
cmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTY3JpcHREaXNhbGxvd2VkU2NvcGUuaCIKKyNp
bmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GcmFtZVRyYWNlcnMuaD4KKworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3VzaW5nIEV2YWx1YXRpb25FcnJvciA9IEluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcjo6RXZhbHVhdGlvbkVycm9yOwordXNpbmcgRXZhbHVhdGlvblJlc3VsdEhhbmRsZXIg
PSBDb21wbGV0aW9uSGFuZGxlcjxFeHBlY3RlZDxKU0M6OkpTVmFsdWUsIEV2YWx1YXRpb25FcnJv
cj4+OworCitJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6Okluc3BlY3RvckZyb250ZW5k
QVBJRGlzcGF0Y2hlcihQYWdlJiBmcm9udGVuZFBhZ2UpCisgICAgOiBtX2Zyb250ZW5kUGFnZSht
YWtlV2Vha1B0cihmcm9udGVuZFBhZ2UpKQoreworfQorCitJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXI6On5JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIoKQoreworICAgIGludmFs
aWRhdGVRdWV1ZWRFeHByZXNzaW9ucygpOworfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlcjo6cmVzZXQoKQoreworICAgIG1fZnJvbnRlbmRMb2FkZWQgPSBmYWxzZTsKKyAg
ICBtX3N1c3BlbmRlZCA9IGZhbHNlOworCisgICAgaW52YWxpZGF0ZVF1ZXVlZEV4cHJlc3Npb25z
KCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpmcm9udGVuZExv
YWRlZCgpCit7CisgICAgQVNTRVJUKG1fZnJvbnRlbmRQYWdlKTsKKyAgICBtX2Zyb250ZW5kTG9h
ZGVkID0gdHJ1ZTsKKworICAgIGV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKK30KKwordm9p
ZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OnN1c3BlbmQoVW5zdXNwZW5kU29vbiB1
bnN1c3BlbmRTb29uKQoreworICAgIEFTU0VSVChtX2Zyb250ZW5kTG9hZGVkKTsKKworICAgIGlm
IChtX3N1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zdXNwZW5kZWQgPSB0cnVl
OworCisgICAgaWYgKHVuc3VzcGVuZFNvb24gPT0gVW5zdXNwZW5kU29vbjo6WWVzKSB7CisgICAg
ICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpXSB7CisgICAgICAgICAgICAvLyBJZiB0aGUgZnJvbnRlbmQgcGFnZSBoYXMgYmVlbiBkZWFs
bG9jYXRlZCwgdGhlcmUncyBub3RoaW5nIHRvIGRvLgorICAgICAgICAgICAgaWYgKCFwcm90ZWN0
ZWRUaGlzLT5tX2Zyb250ZW5kUGFnZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgICAgIHByb3RlY3RlZFRoaXMtPnVuc3VzcGVuZCgpOworICAgICAgICB9KTsKKyAgICB9Cit9
CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjp1bnN1c3BlbmQoKQorewor
ICAgIGlmICghbV9zdXNwZW5kZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc3VzcGVuZGVk
ID0gZmFsc2U7CisKKyAgICBldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7Cit9CisKK0pTR2xv
YmFsT2JqZWN0KiBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmZyb250ZW5kR2xvYmFs
T2JqZWN0KCkKK3sKKyAgICBpZiAoIW1fZnJvbnRlbmRQYWdlKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICAKKyAgICByZXR1cm4gbV9mcm9udGVuZFBhZ2UtPm1haW5GcmFtZSgpLnNjcmlw
dCgpLmdsb2JhbE9iamVjdChtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7Cit9CisKK3N0YXRpYyBT
dHJpbmcgZXhwcmVzc2lvbkZvckV2YWx1YXRpbmdDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFu
ZCwgVmVjdG9yPFJlZjxKU09OOjpWYWx1ZT4+JiYgYXJndW1lbnRzKQoreworICAgIFN0cmluZ0J1
aWxkZXIgZXhwcmVzc2lvbjsKKyAgICBleHByZXNzaW9uLmFwcGVuZExpdGVyYWwoIkluc3BlY3Rv
ckZyb250ZW5kQVBJLmRpc3BhdGNoKFtcIiIpOworICAgIGV4cHJlc3Npb24uYXBwZW5kKGNvbW1h
bmQpOworICAgIGV4cHJlc3Npb24uYXBwZW5kKCciJyk7CisKKyAgICBmb3IgKGF1dG8mIGFyZ3Vt
ZW50IDogYXJndW1lbnRzKSB7CisgICAgICAgIGV4cHJlc3Npb24uYXBwZW5kTGl0ZXJhbCgiLCAi
KTsKKyAgICAgICAgYXJndW1lbnQtPndyaXRlSlNPTihleHByZXNzaW9uKTsKKyAgICB9CisKKyAg
ICBleHByZXNzaW9uLmFwcGVuZCgnXScpOworICAgIGV4cHJlc3Npb24uYXBwZW5kKCcpJyk7Cisg
ICAgcmV0dXJuIGV4cHJlc3Npb24udG9TdHJpbmcoKTsKK30KKworSW5zcGVjdG9yRnJvbnRlbmRB
UElEaXNwYXRjaGVyOjpFdmFsdWF0aW9uUmVzdWx0IEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0
Y2hlcjo6ZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdFN5bmMoY29uc3QgU3RyaW5nJiBjb21tYW5k
LCBWZWN0b3I8UmVmPEpTT046OlZhbHVlPj4mJiBhcmd1bWVudHMpCit7CisgICAgaWYgKG1fc3Vz
cGVuZGVkKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRXZhbHVhdGlvbkVycm9yOjpF
eGVjdXRpb25TdXNwZW5kZWQpOworCisgICAgcmV0dXJuIGV2YWx1YXRlRXhwcmVzc2lvbihleHBy
ZXNzaW9uRm9yRXZhbHVhdGluZ0NvbW1hbmQoY29tbWFuZCwgV1RGTW92ZShhcmd1bWVudHMpKSk7
Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpkaXNwYXRjaENvbW1h
bmRXaXRoUmVzdWx0QXN5bmMoY29uc3QgU3RyaW5nJiBjb21tYW5kLCBWZWN0b3I8UmVmPEpTT046
OlZhbHVlPj4mJiBhcmd1bWVudHMsIEV2YWx1YXRpb25SZXN1bHRIYW5kbGVyJiYgcmVzdWx0SGFu
ZGxlcikKK3sKKyAgICBldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKGV4cHJlc3Npb25Gb3JFdmFs
dWF0aW5nQ29tbWFuZChjb21tYW5kLCBXVEZNb3ZlKGFyZ3VtZW50cykpLCBXVEZNb3ZlKHJlc3Vs
dEhhbmRsZXIpKTsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRp
c3BhdGNoTWVzc2FnZUFzeW5jKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBldmFsdWF0
ZU9yUXVldWVFeHByZXNzaW9uKG1ha2VTdHJpbmcoIkluc3BlY3RvckZyb250ZW5kQVBJLmRpc3Bh
dGNoTWVzc2FnZUFzeW5jKCIsIG1lc3NhZ2UsICIpIikpOworfQorCit2b2lkIEluc3BlY3RvckZy
b250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbihjb25zdCBTdHJp
bmcmIGV4cHJlc3Npb24sIEV2YWx1YXRpb25SZXN1bHRIYW5kbGVyJiYgb3B0aW9uYWxSZXN1bHRI
YW5kbGVyKQoreworICAgIC8vIElmIHRoZSBmcm9udGVuZCBwYWdlIGhhcyBiZWVuIGRlYWxsb2Nh
dGVkLCB0aGVuIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG8uCisgICAgaWYgKCFtX2Zyb250ZW5kUGFn
ZSkgeworICAgICAgICBpZiAob3B0aW9uYWxSZXN1bHRIYW5kbGVyKQorICAgICAgICAgICAgb3B0
aW9uYWxSZXN1bHRIYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEV2YWx1YXRpb25FcnJvcjo6Q29udGV4
dERlc3Ryb3llZCkpOworCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBTb21ldGlt
ZXMgd2UgZ2V0IGhlcmUgYnkgc2VuZGluZyBtZXNzYWdlcyBmb3IgZXZlbnRzIHRyaWdnZXJlZCBi
eSBET00gbXV0YXRpb25zIGVhcmxpZXIgaW4gdGhlIGNhbGwgc3RhY2suCisgICAgLy8gSWYgdGhp
cyBpcyB0aGUgY2FzZSwgdGhlbiBpdCdzIG5vdCBzYWZlIHRvIGV2YWx1YXRlIHNjcmlwdCBzeW5j
aHJvbm91c2x5LCBzbyBkbyBpdCBsYXRlci4gVGhpcyBvbmx5IGFmZmVjdHMKKyAgICAvLyBXZWJL
aXQxIGFuZCBzb21lIGxheW91dCB0ZXN0cyB0aGF0IHVzZSBhIHNpbmdsZSB3ZWIgcHJvY2VzcyBm
b3IgYm90aCB0aGUgaW5zcGVjdG9yIGFuZCBpbnNwZWN0ZWQgcGFnZS4KKyAgICBpZiAoIVNjcmlw
dERpc2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFkOjppc1NjcmlwdEFsbG93ZWQoKSkKKyAgICAg
ICAgc3VzcGVuZChVbnN1c3BlbmRTb29uOjpZZXMpOworCisgICAgaWYgKCFtX2Zyb250ZW5kTG9h
ZGVkIHx8IG1fc3VzcGVuZGVkKSB7CisgICAgICAgIG1fcXVldWVkRXZhbHVhdGlvbnMuYXBwZW5k
KHN0ZDo6bWFrZV9wYWlyKGV4cHJlc3Npb24sIFdURk1vdmUob3B0aW9uYWxSZXN1bHRIYW5kbGVy
KSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9
IGV2YWx1YXRlRXhwcmVzc2lvbihleHByZXNzaW9uKTsKKyAgICBpZiAob3B0aW9uYWxSZXN1bHRI
YW5kbGVyKQorICAgICAgICBvcHRpb25hbFJlc3VsdEhhbmRsZXIocmVzdWx0KTsKK30KKwordm9p
ZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmludmFsaWRhdGVRdWV1ZWRFeHByZXNz
aW9ucygpCit7CisgICAgYXV0byBxdWV1ZWRFdmFsdWF0aW9ucyA9IHN0ZDo6ZXhjaGFuZ2UobV9x
dWV1ZWRFdmFsdWF0aW9ucywgeyB9KTsKKyAgICBmb3IgKGF1dG8mIHBhaXIgOiBxdWV1ZWRFdmFs
dWF0aW9ucykgeworICAgICAgICBhdXRvIHJlc3VsdEhhbmRsZXIgPSBXVEZNb3ZlKHBhaXIuc2Vj
b25kKTsKKyAgICAgICAgaWYgKHJlc3VsdEhhbmRsZXIpCisgICAgICAgICAgICByZXN1bHRIYW5k
bGVyKG1ha2VVbmV4cGVjdGVkKEV2YWx1YXRpb25FcnJvcjo6Q29udGV4dERlc3Ryb3llZCkpOwor
ICAgIH0KK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmV2YWx1YXRl
UXVldWVkRXhwcmVzc2lvbnMoKQoreworICAgIC8vIElmIHRoZSBmcm9udGVuZCBwYWdlIGhhcyBi
ZWVuIGRlYWxsb2NhdGVkLCB0aGVuIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG8uCisgICAgaWYgKCFt
X2Zyb250ZW5kUGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcXVldWVkRXZhbHVh
dGlvbnMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHF1ZXVlZEV2YWx1
YXRpb25zID0gc3RkOjpleGNoYW5nZShtX3F1ZXVlZEV2YWx1YXRpb25zLCB7IH0pOworICAgIGZv
ciAoYXV0byYgcGFpciA6IHF1ZXVlZEV2YWx1YXRpb25zKSB7CisgICAgICAgIGF1dG8gcmVzdWx0
ID0gZXZhbHVhdGVFeHByZXNzaW9uKHBhaXIuZmlyc3QpOworICAgICAgICBpZiAoYXV0byByZXN1
bHRIYW5kbGVyID0gV1RGTW92ZShwYWlyLnNlY29uZCkpCisgICAgICAgICAgICByZXN1bHRIYW5k
bGVyKHJlc3VsdCk7CisgICAgfQorfQorCitKU0M6OkpTVmFsdWUgSW5zcGVjdG9yRnJvbnRlbmRB
UElEaXNwYXRjaGVyOjpldmFsdWF0ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBleHByZXNzaW9u
KQoreworICAgIEFTU0VSVChtX2Zyb250ZW5kUGFnZSk7CisgICAgQVNTRVJUKCFtX3N1c3BlbmRl
ZCk7CisgICAgQVNTRVJUKG1fcXVldWVkRXZhbHVhdGlvbnMuaXNFbXB0eSgpKTsKKworICAgIEpT
Qzo6U3VzcGVuZEV4Y2VwdGlvblNjb3BlIHNjb3BlKCZtX2Zyb250ZW5kUGFnZS0+aW5zcGVjdG9y
Q29udHJvbGxlcigpLnZtKCkpOworICAgIHJldHVybiBtX2Zyb250ZW5kUGFnZS0+bWFpbkZyYW1l
KCkuc2NyaXB0KCkuZXZhbHVhdGVJZ25vcmluZ0V4Y2VwdGlvbihTY3JpcHRTb3VyY2VDb2RlKGV4
cHJlc3Npb24pKTsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmV2
YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQorewor
ICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24oZXhwcmVzc2lvbik7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5NmFkZWNlYjMwMGUy
MDU0YTVhM2ZjZDQ4NTJjOTE3ZDY5OGRmOTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgKQEAgLTAsMCAr
MSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0NKU1ZhbHVlLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVy
Lmg+CisjaW5jbHVkZSA8d3RmL0V4cGVjdGVkLmg+CisjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgUGFnZTsKKworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIGZp
bmFsIDogcHVibGljIFJlZkNvdW50ZWQ8SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyPiB7
CitwdWJsaWM6CisgICAgZW51bSBjbGFzcyBFdmFsdWF0aW9uRXJyb3IgeyBFeGVjdXRpb25TdXNw
ZW5kZWQsIENvbnRleHREZXN0cm95ZWQgfTsKKyAgICB1c2luZyBFdmFsdWF0aW9uUmVzdWx0ID0g
RXhwZWN0ZWQ8SlNDOjpKU1ZhbHVlLCBFdmFsdWF0aW9uRXJyb3I+OworICAgIHVzaW5nIEV2YWx1
YXRpb25SZXN1bHRIYW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFdmFsdWF0aW9uUmVz
dWx0KT47CisKKyAgICBlbnVtIGNsYXNzIFVuc3VzcGVuZFNvb24geyBZZXMsIE5vIH07CisgICAg
CisgICAgV0VCQ09SRV9FWFBPUlQgfkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcigpOwor
CisgICAgc3RhdGljIFJlZjxJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI+IGNyZWF0ZShQ
YWdlJiBwYWdlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zcGVjdG9y
RnJvbnRlbmRBUElEaXNwYXRjaGVyKHBhZ2UpKTsKKyAgICB9CisKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlc2V0KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmcm9udGVuZExvYWRlZCgp
OworCisgICAgLy8gSWYgaXQncyBub3QgY3VycmVudGx5IHNhZmUgdG8gZXZhbHVhdGUgSmF2YVNj
cmlwdCBvbiB0aGUgZnJvbnRlbmQgcGFnZSwgdGhlCisgICAgLy8gZGlzcGF0Y2hlciB3aWxsIGJl
Y29tZSBzdXNwZW5kZWQgYW5kIGRpc3BhdGNoIGFueSBxdWV1ZWQgZXZhbHVhdGlvbnMgd2hlbiB1
bnN1c3BlbmRlZC4KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN1c3BlbmQoVW5zdXNwZW5kU29v
biA9IFVuc3VzcGVuZFNvb246Ok5vKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuc3VzcGVu
ZCgpOworICAgIGJvb2wgaXNTdXNwZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX3N1c3BlbmRlZDsg
fQorCisgICAgRXZhbHVhdGlvblJlc3VsdCBkaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0U3luYyhj
b25zdCBTdHJpbmcmIGNvbW1hbmQsIFZlY3RvcjxSZWY8SlNPTjo6VmFsdWU+PiYmIGFyZ3VtZW50
cyA9IHsgfSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNwYXRjaENvbW1hbmRXaXRoUmVz
dWx0QXN5bmMoY29uc3QgU3RyaW5nJiBjb21tYW5kLCBWZWN0b3I8UmVmPEpTT046OlZhbHVlPj4m
JiBhcmd1bWVudHMgPSB7IH0sIEV2YWx1YXRpb25SZXN1bHRIYW5kbGVyJiYgaGFuZGxlciA9IHsg
fSk7CisKKyAgICAvLyBVc2VkIHRvIGZvcndhcmQgbWVzc2FnZXMgZnJvbSB0aGUgYmFja2VuZCBj
b25uZWN0aW9uIHRvIHRoZSBmcm9udGVuZC4KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc3Bh
dGNoTWVzc2FnZUFzeW5jKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGV2YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7Cisg
ICAgCisgICAgLy8gQ29udmVuaWVuY2UgbWV0aG9kIHRvIG9idGFpbiBhIEpTR2xvYmFsT2JqZWN0
IGZvciB0aGUgZnJvbnRlbmQgcGFnZS4KKyAgICAvLyBUaGlzIGlzIHVzZWQgdG8gY29udmVydCBi
ZXR3ZWVuIEMrKyB2YWx1ZXMgYW5kIGZyb250ZW5kIEpTQzo6SlNWYWx1ZSBvYmplY3RzLgorICAg
IFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNHbG9iYWxPYmplY3QqIGZyb250ZW5kR2xvYmFsT2JqZWN0
KCk7Citwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIEluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcihQYWdlJik7CisKKyAgICB2b2lkIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24oY29u
c3QgU3RyaW5nJiwgRXZhbHVhdGlvblJlc3VsdEhhbmRsZXImJiBoYW5kbGVyID0geyB9KTsKKyAg
ICB2b2lkIGV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKKyAgICB2b2lkIGludmFsaWRhdGVR
dWV1ZWRFeHByZXNzaW9ucygpOworICAgIEpTQzo6SlNWYWx1ZSBldmFsdWF0ZUV4cHJlc3Npb24o
Y29uc3QgU3RyaW5nJik7CisKKyAgICBXZWFrUHRyPFBhZ2U+IG1fZnJvbnRlbmRQYWdlOworICAg
IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBFdmFsdWF0aW9uUmVzdWx0SGFuZGxlcj4+IG1fcXVl
dWVkRXZhbHVhdGlvbnM7CisgICAgYm9vbCBtX2Zyb250ZW5kTG9hZGVkIHsgZmFsc2UgfTsKKyAg
ICBib29sIG1fc3VzcGVuZGVkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xp
ZW50LmgKaW5kZXggNGZlODhiN2U4ZjhiOGIwNzRlMTc4ZDA0NThhMTIwYmJiNWNlZjVkOC4uMGE3
OWQ4NmIzYzQ2OTc3ODE0YTY4ZjRlYWFlZGI4YThlZTlmZmJhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKQEAgLTQxLDYgKzQx
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmxvYXRSZWN0OworY2xhc3MgSW5z
cGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOwogCiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENs
aWVudCB7CiBwdWJsaWM6CkBAIC01Niw2ICs1Nyw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIHZvaWQgd2luZG93T2JqZWN0Q2xlYXJlZCgpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZnJvbnRlbmRMb2FkZWQoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZVBhdXNl
ZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZVVucGF1c2VkKCkgPSAwOworCiAgICAgdmly
dHVhbCB2b2lkIHN0YXJ0V2luZG93RHJhZygpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbW92ZVdp
bmRvd0J5KGZsb2F0IHgsIGZsb2F0IHkpID0gMDsKIApAQCAtMTA1LDEwICsxMDksOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNFdmVudChjb25zdCBTdHJpbmcmIC8q
IGV2ZW50TmFtZSAqLywgY29uc3QgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OlZhbHVlRGljdGlv
bmFyeSYpIHsgfQogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFnZVBhdXNlZCgpIHsgfQot
ICAgIHZpcnR1YWwgdm9pZCBwYWdlVW5wYXVzZWQoKSB7IH0KLQogICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgdm9pZCBzZW5kTWVzc2FnZVRvQmFja2VuZChjb25zdCBTdHJpbmcmKSA9IDA7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIm
IGZyb250ZW5kQVBJRGlzcGF0Y2hlcigpID0gMDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1
YWwgYm9vbCBpc1VuZGVyVGVzdCgpID0gMDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKaW5kZXggY2Nl
NTkwMzVlZGU1NzBhNjQ5YTEyNjc2YzM5MzIyZDQ4ZTg0ZDhmNC4uNDdiY2RmNzVkNWY1Nzg3Mzc2
MzU0NWEzNzA5YTNmNzUwZDJiZjg2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcApAQCAtMTUwLDYgKzE1
MCw3IEBAIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Okluc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWwoSW5zcGVjdG9yQ29udHJvbGxlcioKICAgICAsIG1fc2V0dGluZ3MoV1RGTW92ZShz
ZXR0aW5ncykpCiAgICAgLCBtX2RvY2tTaWRlKERvY2tTaWRlOjpVbmRvY2tlZCkKICAgICAsIG1f
ZGlzcGF0Y2hUYXNrKEluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRhc2s6OmNyZWF0ZShpbnNwZWN0
ZWRQYWdlQ29udHJvbGxlcikpCisgICAgLCBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcihJbnNwZWN0
b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmNyZWF0ZSgqZnJvbnRlbmRQYWdlKSkKIHsKICAgICBt
X2Zyb250ZW5kUGFnZS0+c2V0dGluZ3MoKS5zZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMo
dHJ1ZSk7CiB9CkBAIC0xODUsMTAgKzE4NiwyMCBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWw6OmZyb250ZW5kTG9hZGVkKCkKICAgICAvLyBUaHVzIGlmIHdlIGNhbGwgY2FuQXR0
YWNoV2luZG93IGZpcnN0IHdlIGNhbiBhdm9pZCB0aGlzIHByb2JsZW0uIFRoaXMgY2hhbmdlIGRv
ZXMgbm90IGNhdXNlIGFueSByZWdyZXNzaW9ucyBvbiBNYWMuCiAgICAgc2V0RG9ja2luZ1VuYXZh
aWxhYmxlKCFjYW5BdHRhY2hXaW5kb3coKSk7CiAgICAgYnJpbmdUb0Zyb250KCk7Ci0gICAgbV9m
cm9udGVuZExvYWRlZCA9IHRydWU7Ci0gICAgZm9yIChhdXRvJiBldmFsdWF0ZSA6IG1fZXZhbHVh
dGVPbkxvYWQpCi0gICAgICAgIGV2YWx1YXRlT25Mb2FkKGV2YWx1YXRlKTsKLSAgICBtX2V2YWx1
YXRlT25Mb2FkLmNsZWFyKCk7CisKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZnJvbnRl
bmRMb2FkZWQoKTsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpwYWdl
UGF1c2VkKCkKK3sKKyAgICAvLyBOT1RFOiBwYWdlUGF1c2VkKCkgYW5kIHBhZ2VVbnBhdXNlZCgp
IGRvIG5vdCBzdXNwZW5kL3Vuc3VzcGVuZCB0aGUgZnJvbnRlbmQgQVBJIGRpc3BhdGNoZXIKKyAg
ICAvLyBmb3IgdGhpcyBzdWJjbGFzcyBvZiBJbnNwZWN0b3JGcm9udGVuZENsaWVudC4gVGhlIGlu
c3BlY3RlZCBwYWdlIGFuZCB0aGUgZnJvbnRlbmQgcGFnZQorICAgIC8vIGV4aXN0IGluIHRoZSBz
YW1lIHdlYiBwcm9jZXNzLCBzbyBtZXNzYWdlcyBuZWVkIHRvIGJlIHNlbnQgZXZlbiB3aGlsZSB0
aGUgZGVidWdnZXIgaXMgcGF1c2VkLgorICAgIC8vIFN1c3BlbmRpbmcgaGVyZSB3b3VsZCBzdGFs
bCBvdXQgbGF0ZXIgY29tbWFuZHMgdGhhdCByZXN1bWUgdGhlIGRlYnVnZ2VyLCBjYXVzaW5nIHRo
ZSB0ZXN0IHRvIHRpbWUgb3V0LgorfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9j
YWw6OnBhZ2VVbnBhdXNlZCgpCit7CiB9CiAKIFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24g
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6dXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
bigpIGNvbnN0CkBAIC0yMjcsNyArMjM4LDcgQEAgYm9vbCBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsOjpjYW5BdHRhY2hXaW5kb3coKQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWw6OnNldERvY2tpbmdVbmF2YWlsYWJsZShib29sIHVuYXZhaWxhYmxlKQogewotICAgIGRp
c3BhdGNoKG1ha2VTdHJpbmcoIltcInNldERvY2tpbmdVbmF2YWlsYWJsZVwiLCAiLCB1bmF2YWls
YWJsZSA/ICJ0cnVlIiA6ICJmYWxzZSIsICddJykpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRj
aGVyLT5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0QXN5bmMoInNldERvY2tpbmdVbmF2YWlsYWJs
ZSJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHVuYXZhaWxhYmxlKSB9KTsKIH0KIAogdm9pZCBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpjaGFuZ2VBdHRhY2hlZFdpbmRvd0hlaWdodCh1
bnNpZ25lZCBoZWlnaHQpCkBAIC0yOTcsNyArMzA4LDcgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVu
ZENsaWVudExvY2FsOjpzZXRBdHRhY2hlZFdpbmRvdyhEb2NrU2lkZSBkb2NrU2lkZSkKIAogICAg
IG1fZG9ja1NpZGUgPSBkb2NrU2lkZTsKIAotICAgIGRpc3BhdGNoKG1ha2VTdHJpbmcoIltcInNl
dERvY2tTaWRlXCIsIFwiIiwgc2lkZSwgIlwiXSIpKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0
Y2hlci0+ZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdEFzeW5jKCJzZXREb2NrU2lkZSJfcywgeyBK
U09OOjpWYWx1ZTo6Y3JlYXRlKHNpZGUpIH0pOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5k
Q2xpZW50TG9jYWw6OnJlc3RvcmVBdHRhY2hlZFdpbmRvd0hlaWdodCgpCkBAIC0zMTQsNTkgKzMy
NSw1NyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnJlc3RvcmVBdHRhY2hl
ZFdpbmRvd0hlaWdodCgpCiAKIGJvb2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6aXNE
ZWJ1Z2dpbmdFbmFibGVkKCkKIHsKLSAgICBpZiAobV9mcm9udGVuZExvYWRlZCkKLSAgICAgICAg
cmV0dXJuIGV2YWx1YXRlQXNCb29sZWFuKCJbXCJpc0RlYnVnZ2luZ0VuYWJsZWRcIl0iKTsKLSAg
ICByZXR1cm4gZmFsc2U7CisgICAgYXV0byByZXN1bHQgPSBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hl
ci0+ZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdFN5bmMoImlzRGVidWdnaW5nRW5hYmxlZCJfcyk7
CisgICAgcmV0dXJuIHJlc3VsdCAmJiByZXN1bHQudmFsdWUoKS50b0Jvb2xlYW4obV9mcm9udGVu
ZEFQSURpc3BhdGNoZXItPmZyb250ZW5kR2xvYmFsT2JqZWN0KCkpOworCiB9CiAKIHZvaWQgSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RGVidWdnaW5nRW5hYmxlZChib29sIGVuYWJs
ZWQpCiB7Ci0gICAgZGlzcGF0Y2gobWFrZVN0cmluZygiW1wic2V0RGVidWdnaW5nRW5hYmxlZFwi
LCAiLCBlbmFibGVkID8gInRydWUiIDogImZhbHNlIiwgJ10nKSk7CisgICAgbV9mcm9udGVuZEFQ
SURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3luYygic2V0RGVidWdnaW5n
RW5hYmxlZCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKGVuYWJsZWQpIH0pOwogfQogCiBib29s
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmlzVGltZWxpbmVQcm9maWxpbmdFbmFibGVk
KCkKIHsKLSAgICBpZiAobV9mcm9udGVuZExvYWRlZCkKLSAgICAgICAgcmV0dXJuIGV2YWx1YXRl
QXNCb29sZWFuKCJbXCJpc1RpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZFwiXSIpOwotICAgIHJldHVy
biBmYWxzZTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNw
YXRjaENvbW1hbmRXaXRoUmVzdWx0U3luYygiaXNUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQiX3Mp
OworICAgIHJldHVybiByZXN1bHQgJiYgcmVzdWx0LnZhbHVlKCkudG9Cb29sZWFuKG1fZnJvbnRl
bmRBUElEaXNwYXRjaGVyLT5mcm9udGVuZEdsb2JhbE9iamVjdCgpKTsKIH0KIAogdm9pZCBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoYm9v
bCBlbmFibGVkKQogewotICAgIGRpc3BhdGNoKG1ha2VTdHJpbmcoIltcInNldFRpbWVsaW5lUHJv
ZmlsaW5nRW5hYmxlZFwiLCAiLCBlbmFibGVkID8gInRydWUiIDogImZhbHNlIiwgJ10nKSk7Cisg
ICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3lu
Yygic2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUo
ZW5hYmxlZCkgfSk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6aXNQ
cm9maWxpbmdKYXZhU2NyaXB0KCkKIHsKLSAgICBpZiAobV9mcm9udGVuZExvYWRlZCkKLSAgICAg
ICAgcmV0dXJuIGV2YWx1YXRlQXNCb29sZWFuKCJbXCJpc1Byb2ZpbGluZ0phdmFTY3JpcHRcIl0i
KTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0byByZXN1bHQgPSBtX2Zyb250ZW5kQVBJRGlz
cGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdFN5bmMoImlzUHJvZmlsaW5nSmF2YVNj
cmlwdCJfcyk7CisgICAgcmV0dXJuIHJlc3VsdCAmJiByZXN1bHQudmFsdWUoKS50b0Jvb2xlYW4o
bV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmZyb250ZW5kR2xvYmFsT2JqZWN0KCkpOwogfQogCiB2
b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnN0YXJ0UHJvZmlsaW5nSmF2YVNjcmlw
dCgpCiB7Ci0gICAgZGlzcGF0Y2goIltcInN0YXJ0UHJvZmlsaW5nSmF2YVNjcmlwdFwiXSIpOwor
ICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0QXN5
bmMoInN0YXJ0UHJvZmlsaW5nSmF2YVNjcmlwdCJfcyk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDo6c3RvcFByb2ZpbGluZ0phdmFTY3JpcHQoKQogewotICAgIGRpc3Bh
dGNoKCJbXCJzdG9wUHJvZmlsaW5nSmF2YVNjcmlwdFwiXSIpOworICAgIG1fZnJvbnRlbmRBUElE
aXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0QXN5bmMoInN0b3BQcm9maWxpbmdK
YXZhU2NyaXB0Il9zKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpz
aG93Q29uc29sZSgpCiB7Ci0gICAgZGlzcGF0Y2goIltcInNob3dDb25zb2xlXCJdIik7CisgICAg
bV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3luYygi
c2hvd0NvbnNvbGUiX3MpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6
OnNob3dSZXNvdXJjZXMoKQogewotICAgIGRpc3BhdGNoKCJbXCJzaG93UmVzb3VyY2VzXCJdIik7
CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRB
c3luYygic2hvd1Jlc291cmNlcyJfcyk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRMb2NhbDo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKEZyYW1lKiBmcmFtZSkKIHsKICAgICBT
dHJpbmcgZnJhbWVJZCA9IG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXItPmVuc3VyZVBhZ2VBZ2Vu
dCgpLmZyYW1lSWQoZnJhbWUpOwotICAgIGRpc3BhdGNoKG1ha2VTdHJpbmcoIltcInNob3dNYWlu
UmVzb3VyY2VGb3JGcmFtZVwiLCBcIiIsIGZyYW1lSWQsICJcIl0iKSk7CisgICAgbV9mcm9udGVu
ZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3luYygic2hvd01haW5S
ZXNvdXJjZUZvckZyYW1lIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUoZnJhbWVJZCkgfSk7CiB9
CiAKIHVuc2lnbmVkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNvbnN0cmFpbmVkQXR0
YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQgcHJlZmVycmVkSGVpZ2h0LCB1bnNpZ25lZCB0b3Rh
bFdpbmRvd0hlaWdodCkKQEAgLTM5NCw0NiArNDAzLDYgQEAgdW5zaWduZWQgSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDo6aW5zcGVjdGlvbkxldmVsKCkgY29uc3QKICAgICByZXR1cm4gbV9p
bnNwZWN0ZWRQYWdlQ29udHJvbGxlci0+aW5zcGVjdGlvbkxldmVsKCkgKyAxOwogfQogCi12b2lk
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmRpc3BhdGNoKGNvbnN0IFN0cmluZyYgc2ln
bmF0dXJlKQotewotICAgIEFTU0VSVCghc2lnbmF0dXJlLmlzRW1wdHkoKSk7Ci0gICAgQVNTRVJU
KHNpZ25hdHVyZS5zdGFydHNXaXRoKCdbJykpOwotICAgIEFTU0VSVChzaWduYXR1cmUuZW5kc1dp
dGgoJ10nKSk7Ci0KLSAgICBldmFsdWF0ZU9uTG9hZCgiSW5zcGVjdG9yRnJvbnRlbmRBUEkuZGlz
cGF0Y2goIiArIHNpZ25hdHVyZSArICIpIik7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbDo6ZGlzcGF0Y2hNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU9iamVjdCkK
LXsKLSAgICBBU1NFUlQoIW1lc3NhZ2VPYmplY3QuaXNFbXB0eSgpKTsKLQotICAgIGV2YWx1YXRl
T25Mb2FkKCJJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRjaE1lc3NhZ2UoIiArIG1lc3NhZ2VP
YmplY3QgKyAiKSIpOwotfQotCi12b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmRp
c3BhdGNoTWVzc2FnZUFzeW5jKGNvbnN0IFN0cmluZyYgbWVzc2FnZU9iamVjdCkKLXsKLSAgICBB
U1NFUlQoIW1lc3NhZ2VPYmplY3QuaXNFbXB0eSgpKTsKLQotICAgIGV2YWx1YXRlT25Mb2FkKCJJ
bnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRjaE1lc3NhZ2VBc3luYygiICsgbWVzc2FnZU9iamVj
dCArICIpIik7Ci19Ci0KLWJvb2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZXZhbHVh
dGVBc0Jvb2xlYW4oY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQotewotICAgIGF1dG8mIHN0YXRl
ID0gKm1haW5Xb3JsZEV4ZWNTdGF0ZSgmbV9mcm9udGVuZFBhZ2UtPm1haW5GcmFtZSgpKTsKLSAg
ICByZXR1cm4gbV9mcm9udGVuZFBhZ2UtPm1haW5GcmFtZSgpLnNjcmlwdCgpLmV4ZWN1dGVTY3Jp
cHRJZ25vcmluZ0V4Y2VwdGlvbihleHByZXNzaW9uKS50b1dURlN0cmluZygmc3RhdGUpID09ICJ0
cnVlIjsKLX0KLQotdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpldmFsdWF0ZU9u
TG9hZChjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24pCi17Ci0gICAgaWYgKCFtX2Zyb250ZW5kTG9h
ZGVkKSB7Ci0gICAgICAgIG1fZXZhbHVhdGVPbkxvYWQuYXBwZW5kKGV4cHJlc3Npb24pOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgSlNDOjpTdXNwZW5kRXhjZXB0aW9uU2NvcGUgc2Nv
cGUoJm1fZnJvbnRlbmRQYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkudm0oKSk7Ci0gICAgbV9m
cm9udGVuZFBhZ2UtPm1haW5GcmFtZSgpLnNjcmlwdCgpLmV2YWx1YXRlSWdub3JpbmdFeGNlcHRp
b24oU2NyaXB0U291cmNlQ29kZShleHByZXNzaW9uKSk7Ci19Ci0KIFBhZ2UqIEluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWw6Omluc3BlY3RlZFBhZ2UoKSBjb25zdAogewogICAgIGlmICghbV9p
bnNwZWN0ZWRQYWdlQ29udHJvbGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oCmluZGV4IDQzYTNlY2RjNzY4ZDBl
MGZlNzNhZGZhNjVlZTNhZjNlNzcxM2I4NjguLjExODFhMjA5NmMxNzYwZGYyMjkzMjYwMTA2YzVk
MDk1YzQxZDM0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaApAQCAtMzEsNiArMzEsNyBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIgogI2lu
Y2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTY2LDYgKzY3LDggQEAgcHVibGlj
OgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aW5kb3dPYmplY3RDbGVhcmVkKCkgZmluYWw7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmcm9udGVuZExvYWRlZCgpIG92ZXJyaWRlOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcGFnZVBhdXNlZCgpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcGFnZVVucGF1c2VkKCkgZmluYWw7CiAKICAgICB2b2lkIHN0YXJ0V2luZG93RHJh
ZygpIG92ZXJyaWRlIHsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW92ZVdpbmRvd0J5KGZs
b2F0IHgsIGZsb2F0IHkpIGZpbmFsOwpAQCAtOTEsNiArOTQsOCBAQCBwdWJsaWM6CiAgICAgV0VC
Q09SRV9FWFBPUlQgdW5zaWduZWQgaW5zcGVjdGlvbkxldmVsKCkgY29uc3QgZmluYWw7CiAgICAg
U3RyaW5nIGJhY2tlbmRDb21tYW5kc1VSTCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFN0cmluZygp
OyB9OwogCisgICAgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyJiBmcm9udGVuZEFQSURp
c3BhdGNoZXIoKSBmaW5hbCB7IHJldHVybiBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsgfQorCiAg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjYW5BdHRhY2hXaW5kb3coKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldERvY2tpbmdVbmF2YWlsYWJsZShib29sKTsKIApAQCAtMTE5LDEwICsxMjQs
NiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgUGFnZSogaW5zcGVjdGVkUGFnZSgpIGNv
bnN0OwogICAgIFBhZ2UqIGZyb250ZW5kUGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJvbnRlbmRQ
YWdlOyB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc3BhdGNoKGNvbnN0IFN0cmluZyYg
c2lnbmF0dXJlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc3BhdGNoTWVzc2FnZShjb25z
dCBTdHJpbmcmIG1lc3NhZ2VPYmplY3QpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0
Y2hNZXNzYWdlQXN5bmMoY29uc3QgU3RyaW5nJiBtZXNzYWdlT2JqZWN0KTsKLQogcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkKSA9IDA7
CkBAIC0xMzEsMTkgKzEzMiwxNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHNldFNo
ZWV0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSA9IDA7CiAKIHByaXZhdGU6Ci0gICAg
Ym9vbCBldmFsdWF0ZUFzQm9vbGVhbihjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24pOwotICAgIHZv
aWQgZXZhbHVhdGVPbkxvYWQoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKTsKLQogICAgIGZyaWVu
ZCBjbGFzcyBGcm9udGVuZE1lbnVQcm92aWRlcjsKKwogICAgIEluc3BlY3RvckNvbnRyb2xsZXIq
IG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXIgeyBudWxscHRyIH07CiAgICAgUGFnZSogbV9mcm9u
dGVuZFBhZ2UgeyBudWxscHRyIH07CiAgICAgLy8gVE9ETyh5dXJ5cyk6IHRoaXMgcmVmIHNob3Vs
ZG4ndCBiZSBuZWVkZWQuCiAgICAgUmVmUHRyPEluc3BlY3RvckZyb250ZW5kSG9zdD4gbV9mcm9u
dGVuZEhvc3Q7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9j
YWw6OlNldHRpbmdzPiBtX3NldHRpbmdzOwotICAgIGJvb2wgbV9mcm9udGVuZExvYWRlZCB7IGZh
bHNlIH07CiAgICAgRG9ja1NpZGUgbV9kb2NrU2lkZTsKLSAgICBWZWN0b3I8U3RyaW5nPiBtX2V2
YWx1YXRlT25Mb2FkOwogICAgIFJlZjxJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrPiBtX2Rp
c3BhdGNoVGFzazsKKyAgICBSZWY8SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyPiBtX2Zy
b250ZW5kQVBJRGlzcGF0Y2hlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAyYWY3OGRiZDliNzEyMTRmYjJlZGU4MTMz
MTdlMjZhNzM0ODEzODMwLi43ZjVhMGQxMjhhZjhiMmI3OTIxNTk2NmM2N2NlODllNGFiMGMwMGZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC00MDgsNyArNDA4LDcgQEAg
dm9pZCBJbnNwZWN0b3JTdHViRnJvbnRlbmQ6OmNsb3NlV2luZG93KCkKIAogdm9pZCBJbnNwZWN0
b3JTdHViRnJvbnRlbmQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCiB7Ci0gICAgZGlzcGF0Y2hNZXNzYWdlQXN5bmMobWVzc2FnZSk7CisgICAgZnJvbnRlbmRB
UElEaXNwYXRjaGVyKCkuZGlzcGF0Y2hNZXNzYWdlQXN5bmMobWVzc2FnZSk7CiB9CiAKIHN0YXRp
YyBib29sIG1hcmtlclR5cGVGcm9tKGNvbnN0IFN0cmluZyYgbWFya2VyVHlwZSwgRG9jdW1lbnRN
YXJrZXI6Ok1hcmtlclR5cGUmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGZmZTk3ODdkZWFlNTQ3
NTI2NzM2ZTIxMTAwNDJiMGI5ZjhkYzA4MDEuLmUwYWI3NDM2YmFkYzM0NjM3NDk0NjYzMzQ3MTli
NDVlZGZkMmIzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNTQ3LDcgKzU0Nyw2IEBAIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwIEBuby11bmlm
eQogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCiBXZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuY3BwCiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JDbGllbnQuY3BwCi1XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXIuY3BwCiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JJ
bnRlcnJ1cHREaXNwYXRjaGVyLmNwcAogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
VUkuY3BwCiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlSW5zcGVjdG9yVGFyZ2V0LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NDQwNmU5YjZlN2U2ZjRhMDM2MmU2YzU2YmI4NDliZmViZWM4YzBjNy4uNDY2NWNjYjdiYzZhZjdh
N2EwODkxNWZkZTQ2NzI2ZDk2N2Y1ZmNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDkyLDcgKzE0OTIsNiBAQAogCQlBNTVCQTgy
NTFCQTI1Q0ZCMDA3Q0QzM0QgLyogUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU1QkE4MjIxQkEy
NUJCODAwN0NEMzNEIC8qIFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLzsgfTsK
IAkJQTU1QkE4MjYxQkEyNUNGRDAwN0NEMzNEIC8qIFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE1NUJBODIxMUJBMjVCQjgwMDdDRDMzRCAvKiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUE1NUJBODJCMUJBMzhFNjEwMDdDRDMzRCAv
KiBXZWJJbnNwZWN0b3JVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE1NUJBODI4MUJBMzhFMUUwMDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JV
dGlsaXRpZXMuaCAqLzsgfTsKLQkJQTU1QkE4MzUxQkEzRTcwQTAwN0NEMzNEIC8qIFdlYkluc3Bl
Y3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTU1QkE4MzMxQkEzRTZGQTAwN0NEMzNEIC8qIFdlYkluc3BlY3Rv
ckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oICovOyB9OwogCQlBNTg2MEU3MTIzMEY2N0ZDMDA0NjFB
QUUgLyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTg2MEU3MDIzMEY2N0RFMDA0NjFBQUUgLyog
V2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmggKi87IH07CiAJCUE1OEI2RjA4MThGQ0E3
MzMwMDhDQkE1MyAvKiBXS0ZpbGVVcGxvYWRQYW5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU4QjZGMDYxOEZDQTczMzAwOENCQTUzIC8qIFdLRmls
ZVVwbG9hZFBhbmVsLmggKi87IH07CiAJCUE1QzBGMEE3MjAwMDY1NEQwMDUzNjUzNiAvKiBfV0tO
U1dpbmRvd0V4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTVDMEYwQTYyMDAwNjU0NDAwNTM2NTM2IC8qIF9XS05TV2luZG93RXh0cmFzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQ2NzIsOCAr
NDY3MSw2IEBACiAJCUE1NUJBODIyMUJBMjVCQjgwMDdDRDMzRCAvKiBSZW1vdGVXZWJJbnNwZWN0
b3JQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90
ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQlBNTVCQTgyNzFCQTM4RTFFMDA3Q0QzM0QgLyogV2ViSW5zcGVj
dG9yVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
Ykluc3BlY3RvclV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1
NUJBODI4MUJBMzhFMUUwMDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JVdGlsaXRpZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE1NUJBODMyMUJBM0U2RkEwMDdDRDMzRCAvKiBXZWJJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTU1QkE4MzMxQkEzRTZGQTAwN0NEMzNEIC8qIFdl
Ykluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU4NjBFNkYyMzBGNjdERTAwNDYxQUFFIC8qIFdlYlJlc291
cmNlSW50ZXJjZXB0Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJSZXNvdXJj
ZUludGVyY2VwdENvbnRyb2xsZXIuY3BwOyBwYXRoID0gTmV0d29yay9XZWJSZXNvdXJjZUludGVy
Y2VwdENvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTg2MEU3
MDIzMEY2N0RFMDA0NjFBQUUgLyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdlYlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxlci5oOyBwYXRoID0gTmV0
d29yay9XZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTU4QjZGMDYxOEZDQTczMzAwOENCQTUzIC8qIFdLRmlsZVVwbG9hZFBhbmVs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRmlsZVVwbG9hZFBhbmVsLmg7
IHBhdGggPSBpb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTg3MDcsOCArODcwNCw2IEBACiAJCQkJMUM4RTJBMUMxMjc3ODMzRjAwQkM3
QkQwIC8qIFdlYkluc3BlY3Rvci5tZXNzYWdlcy5pbiAqLywKIAkJCQlCQzExMUE1OTExMkY0RkJC
MDAzMzdCQUIgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCAqLywKIAkJCQlCQzAzMkQ2RDEwRjQz
NzhEMDA1OEMxNUEgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmggKi8sCi0JCQkJQTU1QkE4MzIxQkEz
RTZGQTAwN0NEMzNEIC8qIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAgKi8s
Ci0JCQkJQTU1QkE4MzMxQkEzRTZGQTAwN0NEMzNEIC8qIFdlYkluc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5oICovLAogCQkJCUZFRTQzRkQwMUU2N0FGQzYwMDc3RDZEMSAvKiBXZWJJbnNw
ZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyLmNwcCAqLywKIAkJCQlGRUU0M0ZEMTFFNjdBRkM2MDA3
N0Q2RDEgLyogV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlci5oICovLAogCQkJCUZFRTQz
RkQyMUU2N0FGQzYwMDc3RDZEMSAvKiBXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyLm1l
c3NhZ2VzLmluICovLApAQCAtMTE0OTksNyArMTE0OTQsNiBAQAogCQkJCUJDQ0Y2QUJEMTJDOTFF
RjkwMDhGOUMzNSAvKiBXZWJJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM4RTI4MjAxMjc1
RDE1NDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJE
ODIxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkluc3BlY3RvckNsaWVudC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQTU1QkE4MzUxQkEzRTcwQTAwN0NEMzNEIC8qIFdlYkluc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVFNDNGRDMxRTY3QjAxODAwNzdENkQx
IC8qIFdlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFREJEQ0Q3MUU2OEQyMDUwMEE1OUY4RiAvKiBXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRj
aGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDOEUyQTM2MTI3Nzg1MjQwMEJDN0JE
MCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9y
VUkuY3BwCmluZGV4IDQ3ZDZmYTMzODNjNGVkYmFmMzE0ODBkZDQyYmVjNTA2Zjg0YzgzYWYuLjY3
NzFjNmYwZGU2MzFmY2MxNDJlZjYwODZmZTBhYWJlNzRjN2Y2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9y
VUkuY3BwCkBAIC01Myw3ICs1Myw3IEBAIFJlZjxSZW1vdGVXZWJJbnNwZWN0b3JVST4gUmVtb3Rl
V2ViSW5zcGVjdG9yVUk6OmNyZWF0ZShXZWJQYWdlJiBwYWdlKQogCiBSZW1vdGVXZWJJbnNwZWN0
b3JVSTo6UmVtb3RlV2ViSW5zcGVjdG9yVUkoV2ViUGFnZSYgcGFnZSkKICAgICA6IG1fcGFnZShw
YWdlKQotICAgICwgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIocGFnZSkKKyAgICAsIG1fZnJvbnRl
bmRBUElEaXNwYXRjaGVyKEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6Y3JlYXRlKCpw
YWdlLmNvcmVQYWdlKCkpKQogewogICAgIFdlYkluc3BlY3RvclVJOjplbmFibGVGcm9udGVuZEZl
YXR1cmVzKCk7CiB9CkBAIC02NSwzMCArNjUsMjggQEAgdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JV
STo6aW5pdGlhbGl6ZShEZWJ1Z2dhYmxlSW5mb0RhdGEmJiBkZWJ1Z2dhYmxlSW5mbywgY29uc3QK
IAogICAgIG1fcGFnZS5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuc2V0SW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQodGhpcyk7CiAKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5y
ZXNldCgpOwotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0
RG9ja2luZ1VuYXZhaWxhYmxlIl9zLCB0cnVlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hl
ci0+cmVzZXQoKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5k
V2l0aFJlc3VsdEFzeW5jKCJzZXREb2NraW5nVW5hdmFpbGFibGUiX3MsIHsgSlNPTjo6VmFsdWU6
OmNyZWF0ZSh0cnVlKSB9KTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6dXBkYXRl
RmluZFN0cmluZyhjb25zdCBTdHJpbmcmIGZpbmRTdHJpbmcpCiB7Ci0gICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwotICAgIEpTT046OlZhbHVlOjplc2NhcGVTdHJpbmcoYnVpbGRlciwgZmluZFN0
cmluZyk7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJ1cGRh
dGVGaW5kU3RyaW5nIl9zLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIG1fZnJvbnRlbmRBUElE
aXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0QXN5bmMoInVwZGF0ZUZpbmRTdHJp
bmciX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShmaW5kU3RyaW5nKSB9KTsKIH0KIAogdm9pZCBS
ZW1vdGVXZWJJbnNwZWN0b3JVSTo6ZGlkU2F2ZShjb25zdCBTdHJpbmcmIHVybCkKIHsKLSAgICBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNhdmVkVVJMIl9zLCB1cmwp
OworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0
QXN5bmMoInNhdmVkVVJMIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUodXJsKSB9KTsKIH0KIAog
dm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6ZGlkQXBwZW5kKGNvbnN0IFN0cmluZyYgdXJsKQog
ewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgiYXBwZW5kZWRU
b1VSTCJfcywgdXJsKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21t
YW5kV2l0aFJlc3VsdEFzeW5jKCJhcHBlbmRlZFRvVVJMIl9zLCB7IEpTT046OlZhbHVlOjpjcmVh
dGUodXJsKSB9KTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c2VuZE1lc3NhZ2VU
b0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlz
cGF0Y2hlci5kaXNwYXRjaE1lc3NhZ2VBc3luYyhtZXNzYWdlKTsKKyAgICBtX2Zyb250ZW5kQVBJ
RGlzcGF0Y2hlci0+ZGlzcGF0Y2hNZXNzYWdlQXN5bmMobWVzc2FnZSk7CiB9CiAKIHZvaWQgUmVt
b3RlV2ViSW5zcGVjdG9yVUk6OnNlbmRNZXNzYWdlVG9CYWNrZW5kKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKQEAgLTEwNywxMyArMTA1LDIzIEBAIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6Ondp
bmRvd09iamVjdENsZWFyZWQoKQogCiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpmcm9udGVu
ZExvYWRlZCgpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZnJvbnRlbmRMb2FkZWQo
KTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZnJvbnRlbmRMb2FkZWQoKTsKIAotICAg
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0SXNWaXNpYmxlIl9z
LCB0cnVlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kV2l0
aFJlc3VsdEFzeW5jKCJzZXRJc1Zpc2libGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh0cnVl
KSB9KTsKIAogICAgIGJyaW5nVG9Gcm9udCgpOwogfQogCit2b2lkIFJlbW90ZVdlYkluc3BlY3Rv
clVJOjpwYWdlUGF1c2VkKCkKK3sKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+c3VzcGVu
ZCgpOworfQorCit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpwYWdlVW5wYXVzZWQoKQorewor
ICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT51bnN1c3BlbmQoKTsKK30KKwogdm9pZCBSZW1v
dGVXZWJJbnNwZWN0b3JVSTo6Y2hhbmdlU2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkK
IHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6U2V0U2hlZXRSZWN0KHJl
Y3QpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKQEAgLTI0Niw3ICsyNTQsNyBAQCB2b2lkIFJlbW90
ZVdlYkluc3BlY3RvclVJOjpzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZShib29sIGF2YWls
YWJsZSkKICAgICBBU1NFUlQoIWF2YWlsYWJsZSB8fCBzdXBwb3J0c0RpYWdub3N0aWNMb2dnaW5n
KCkpOwogICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUgPSBhdmFpbGFibGU7CiAKLSAg
ICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNldERpYWdub3N0aWNM
b2dnaW5nQXZhaWxhYmxlIl9zLCBtX2RpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKTsKKyAgICBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdEFzeW5jKCJz
ZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZSJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKG1f
ZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUpIH0pOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9y
VUkuaAppbmRleCBiNDk5ZWM1YzUzZmFjNjI3ZjVmNDdlZWZiYzRhOTAzODZjZGEwNmM2Li4wMjVl
YzkwYTFkNGFmMWM5ZjU1M2RiYzQyZjdjOTM5ZmQ0Mzk4NDkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5o
CkBAIC0yNyw3ICsyNyw3IEBACiAKICNpbmNsdWRlICJEZWJ1Z2dhYmxlSW5mb0RhdGEuaCIKICNp
bmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKLSNpbmNsdWRlICJXZWJJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5kSG9zdC5oPgogI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgpAQCAtNjIsNiArNjIsMTAgQEAgcHVibGljOgogICAgIC8vIFdlYkNvcmU6
Okluc3BlY3RvckZyb250ZW5kQ2xpZW50CiAgICAgdm9pZCB3aW5kb3dPYmplY3RDbGVhcmVkKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBmcm9udGVuZExvYWRlZCgpIG92ZXJyaWRlOworCisgICAgdm9p
ZCBwYWdlUGF1c2VkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwYWdlVW5wYXVzZWQoKSBvdmVycmlk
ZTsKKwogICAgIHZvaWQgY2hhbmdlU2hlZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
IG92ZXJyaWRlOwogICAgIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBtb3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkgb3ZlcnJpZGU7CkBAIC05Miw2ICs5Niw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzaG93Q2VydGlmaWNhdGUoY29uc3QgV2ViQ29yZTo6Q2VydGlm
aWNhdGVJbmZvJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvQmFja2VuZChjb25z
dCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXImIGZyb250ZW5kQVBJRGlzcGF0Y2hlcigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fZnJv
bnRlbmRBUElEaXNwYXRjaGVyOyB9CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX1RFTEVNRVRSWSkK
ICAgICBib29sIHN1cHBvcnRzRGlhZ25vc3RpY0xvZ2dpbmcoKSBvdmVycmlkZTsKQEAgLTExMCw3
ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJlbW90ZVdlYkluc3BlY3RvclVJKFdl
YlBhZ2UmKTsKIAogICAgIFdlYlBhZ2UmIG1fcGFnZTsKLSAgICBXZWJJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXIgbV9mcm9udGVuZEFQSURpc3BhdGNoZXI7CisgICAgUmVmPFdlYkNvcmU6
Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcj4gbV9mcm9udGVuZEFQSURpc3BhdGNoZXI7
CiAgICAgUmVmUHRyPFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kSG9zdD4gbV9mcm9udGVuZEhv
c3Q7CiAgICAgRGVidWdnYWJsZUluZm9EYXRhIG1fZGVidWdnYWJsZUluZm87CiAgICAgU3RyaW5n
IG1fYmFja2VuZENvbW1hbmRzVVJMOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YzM3YjAwM2MxY2I3
NzFkOWIzZjc5ZGRhNjU1MmE0OTA3ZDdlZGQ3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEy
MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgiCi0KLSNpbmNsdWRlICJXZWJQ
YWdlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2Ny
aXB0Q29udHJvbGxlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0U3RhdGUuaD4KLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci0KLVdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6V2Vi
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyKFdlYlBhZ2UmIHBhZ2UpCi0gICAgOiBtX3Bh
Z2UocGFnZSkKLXsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6
OnJlc2V0KCkKLXsKLSAgICBtX2Zyb250ZW5kTG9hZGVkID0gZmFsc2U7Ci0gICAgbV9zdXNwZW5k
ZWQgPSBmYWxzZTsKLSAgICBtX3F1ZXVlLmNsZWFyKCk7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9y
RnJvbnRlbmRBUElEaXNwYXRjaGVyOjpmcm9udGVuZExvYWRlZCgpCi17Ci0gICAgbV9mcm9udGVu
ZExvYWRlZCA9IHRydWU7Ci0KLSAgICBldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7Ci19Ci0K
LXZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpzdXNwZW5kKCkKLXsKLSAg
ICBBU1NFUlQobV9mcm9udGVuZExvYWRlZCk7Ci0gICAgQVNTRVJUKCFtX3N1c3BlbmRlZCk7Ci0g
ICAgQVNTRVJUKG1fcXVldWUuaXNFbXB0eSgpKTsKLQotICAgIG1fc3VzcGVuZGVkID0gdHJ1ZTsK
LX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OnVuc3VzcGVuZCgp
Ci17Ci0gICAgQVNTRVJUKG1fc3VzcGVuZGVkKTsKLQotICAgIG1fc3VzcGVuZGVkID0gZmFsc2U7
Ci0KLSAgICBldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7Ci19Ci0KLXZvaWQgV2ViSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpkaXNwYXRjaENvbW1hbmQoY29uc3QgU3RyaW5nJiBj
b21tYW5kKQotewotICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24obWFrZVN0cmluZygiSW5z
cGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0Y2goW1wiIiwgY29tbWFuZCwgIlwiXSkiKSk7Ci19Ci0K
LXZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpkaXNwYXRjaENvbW1hbmQo
Y29uc3QgU3RyaW5nJiBjb21tYW5kLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50KQotewotICAgIGV2
YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24obWFrZVN0cmluZygiSW5zcGVjdG9yRnJvbnRlbmRBUEku
ZGlzcGF0Y2goW1wiIiwgY29tbWFuZCwgIlwiLCBcIiIsIGFyZ3VtZW50LCAiXCJdKSIpKTsKLX0K
LQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFu
ZChjb25zdCBTdHJpbmcmIGNvbW1hbmQsIGJvb2wgYXJndW1lbnQpCi17Ci0gICAgZXZhbHVhdGVP
clF1ZXVlRXhwcmVzc2lvbihtYWtlU3RyaW5nKCJJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRj
aChbXCIiLCBjb21tYW5kLCAiXCIsICIsIGFyZ3VtZW50ID8gInRydWUiIDogImZhbHNlIiwgIl0p
IikpOwotfQotCi12b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0
Y2hNZXNzYWdlQXN5bmMoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAgIGV2YWx1YXRlT3JR
dWV1ZUV4cHJlc3Npb24obWFrZVN0cmluZygiSW5zcGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0Y2hN
ZXNzYWdlQXN5bmMoIiwgbWVzc2FnZSwgIikiKSk7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKGNvbnN0IFN0cmlu
ZyYgZXhwcmVzc2lvbikKLXsKLSAgICBpZiAoIW1fZnJvbnRlbmRMb2FkZWQgfHwgbV9zdXNwZW5k
ZWQpIHsKLSAgICAgICAgbV9xdWV1ZS5hcHBlbmQoZXhwcmVzc2lvbik7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBBU1NFUlQobV9xdWV1ZS5pc0VtcHR5KCkpOwotICAgIEFTU0VSVCgh
bV9wYWdlLmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnNjcmlwdCgpLmlzUGF1c2VkKCkpOwotICAg
IG1fcGFnZS5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS5zY3JpcHQoKS5leGVjdXRlU2NyaXB0SWdu
b3JpbmdFeGNlcHRpb24oZXhwcmVzc2lvbik7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCkKLXsKLSAgICBpZiAo
bV9xdWV1ZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZvciAoY29uc3QgU3Ry
aW5nJiBleHByZXNzaW9uIDogbV9xdWV1ZSkgewotICAgICAgICBBU1NFUlQoIW1fcGFnZS5jb3Jl
UGFnZSgpLT5tYWluRnJhbWUoKS5zY3JpcHQoKS5pc1BhdXNlZCgpKTsKLSAgICAgICAgbV9wYWdl
LmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnNjcmlwdCgpLmV4ZWN1dGVTY3JpcHRJZ25vcmluZ0V4
Y2VwdGlvbihleHByZXNzaW9uKTsKLSAgICB9Ci0KLSAgICBtX3F1ZXVlLmNsZWFyKCk7Ci19Ci0K
LXZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZUV4cHJlc3Np
b25Gb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKLXsKLSAgICBldmFsdWF0ZU9y
UXVldWVFeHByZXNzaW9uKGV4cHJlc3Npb24pOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkYjY5MGU0YTQxNjA3YWRmMTAzNGNiOGU0NWEwZmIwZjVkNjVmZDY5
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRj
aGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE0LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
cHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViUGFnZTsKLQot
Y2xhc3MgV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIHsKLXB1YmxpYzoKLSAgICBX
ZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIoV2ViUGFnZSYpOwotCi0gICAgdm9pZCBy
ZXNldCgpOwotICAgIHZvaWQgZnJvbnRlbmRMb2FkZWQoKTsKLQotICAgIHZvaWQgc3VzcGVuZCgp
OwotICAgIHZvaWQgdW5zdXNwZW5kKCk7Ci0KLSAgICB2b2lkIGRpc3BhdGNoQ29tbWFuZChjb25z
dCBTdHJpbmcmIGNvbW1hbmQpOwotICAgIHZvaWQgZGlzcGF0Y2hDb21tYW5kKGNvbnN0IFN0cmlu
ZyYgY29tbWFuZCwgY29uc3QgU3RyaW5nJiBhcmd1bWVudCk7Ci0gICAgdm9pZCBkaXNwYXRjaENv
bW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kLCBib29sIGFyZ3VtZW50KTsKLSAgICB2b2lkIGRp
c3BhdGNoTWVzc2FnZUFzeW5jKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7Ci0KLSAgICB2b2lkIGV2
YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7Ci1wcml2YXRlOgotICAg
IHZvaWQgZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbihjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lk
IGV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKLQotICAgIFdlYlBhZ2UmIG1fcGFnZTsKLSAg
ICBEZXF1ZTxTdHJpbmc+IG1fcXVldWU7Ci0gICAgYm9vbCBtX2Zyb250ZW5kTG9hZGVkIHsgZmFs
c2UgfTsKLSAgICBib29sIG1fc3VzcGVuZGVkIHsgZmFsc2UgfTsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JVSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclVJLmNwcAppbmRleCBkNzliZjhiYzdiZGE3MDBkZGVmNjI0MGVkZDQ5ZWIy
NGQzNDcyYWI0Li44MjgwOWFkYjZkZWU2YTU1YmI5NTI2NzgzNTEzOGFjMjM2Nzk1ZTVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJ
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
clVJLmNwcApAQCAtNTksNyArNTksNyBAQCB2b2lkIFdlYkluc3BlY3RvclVJOjplbmFibGVGcm9u
dGVuZEZlYXR1cmVzKCkKIAogV2ViSW5zcGVjdG9yVUk6OldlYkluc3BlY3RvclVJKFdlYlBhZ2Um
IHBhZ2UpCiAgICAgOiBtX3BhZ2UocGFnZSkKLSAgICAsIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVy
KHBhZ2UpCisgICAgLCBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcihJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OmNyZWF0ZSgqcGFnZS5jb3JlUGFnZSgpKSkKICAgICAsIG1fZGVidWdnYWJs
ZUluZm8oRGVidWdnYWJsZUluZm9EYXRhOjplbXB0eSgpKQogewogICAgIFdlYkluc3BlY3RvclVJ
OjplbmFibGVGcm9udGVuZEZlYXR1cmVzKCk7CkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgV2ViSW5z
cGVjdG9yVUk6OmVzdGFibGlzaENvbm5lY3Rpb24oV2ViUGFnZVByb3h5SWRlbnRpZmllciBpbnNw
ZWN0ZWRQYWdlSWRlCiAgICAgbV91bmRlclRlc3QgPSB1bmRlclRlc3Q7CiAgICAgbV9pbnNwZWN0
aW9uTGV2ZWwgPSBpbnNwZWN0aW9uTGV2ZWw7CiAKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hl
ci5yZXNldCgpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5yZXNldCgpOwogCiAgICAg
bV9mcm9udGVuZENvbnRyb2xsZXIgPSAmbV9wYWdlLmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRy
b2xsZXIoKTsKICAgICBtX2Zyb250ZW5kQ29udHJvbGxlci0+c2V0SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQodGhpcyk7CkBAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSTo6d2lu
ZG93T2JqZWN0Q2xlYXJlZCgpCiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmZyb250ZW5kTG9hZGVk
KCkKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5mcm9udGVuZExvYWRlZCgpOworICAg
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5mcm9udGVuZExvYWRlZCgpOwogCiAgICAgLy8gVGVs
bCB0aGUgbmV3IGZyb250ZW5kIGFib3V0IHRoZSBjdXJyZW50IGRvY2sgc3RhdGUuIElmIHRoZSB3
aW5kb3cgb2JqZWN0CiAgICAgLy8gY2xlYXJlZCBkdWUgdG8gYSByZWxvYWQsIHRoZSBkb2NrIHN0
YXRlIHdvbid0IGJlIHJlc2VudCBmcm9tIFVJUHJvY2Vzcy4KQEAgLTI0NCwyOCArMjQ0LDI2IEBA
IHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNldERvY2tTaWRlKERvY2tTaWRlIGRvY2tTaWRlKQogCiAg
ICAgbV9kb2NrU2lkZSA9IGRvY2tTaWRlOwogCi0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIu
ZGlzcGF0Y2hDb21tYW5kKCJzZXREb2NrU2lkZSJfcywgU3RyaW5nKGRvY2tTaWRlU3RyaW5nKSk7
CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRB
c3luYygic2V0RG9ja1NpZGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShTdHJpbmcoZG9ja1Np
ZGVTdHJpbmcpKSB9KTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6c2V0RG9ja2luZ1VuYXZh
aWxhYmxlKGJvb2wgdW5hdmFpbGFibGUpCiB7CiAgICAgbV9kb2NraW5nVW5hdmFpbGFibGUgPSB1
bmF2YWlsYWJsZTsKIAotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFu
ZCgic2V0RG9ja2luZ1VuYXZhaWxhYmxlIl9zLCB1bmF2YWlsYWJsZSk7CisgICAgbV9mcm9udGVu
ZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3luYygic2V0RG9ja2lu
Z1VuYXZhaWxhYmxlIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUodW5hdmFpbGFibGUpIH0pOwog
fQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpzZXRJc1Zpc2libGUoYm9vbCB2aXNpYmxlKQogewog
ICAgIG1faXNWaXNpYmxlID0gdmlzaWJsZTsKIAotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVy
LmRpc3BhdGNoQ29tbWFuZCgic2V0SXNWaXNpYmxlIl9zLCB2aXNpYmxlKTsKKyAgICBtX2Zyb250
ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdEFzeW5jKCJzZXRJc1Zp
c2libGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh2aXNpYmxlKSB9KTsKIH0KIAogdm9pZCBX
ZWJJbnNwZWN0b3JVSTo6dXBkYXRlRmluZFN0cmluZyhjb25zdCBTdHJpbmcmIGZpbmRTdHJpbmcp
CiB7Ci0gICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIEpTT046OlZhbHVlOjplc2NhcGVT
dHJpbmcoYnVpbGRlciwgZmluZFN0cmluZyk7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIu
ZGlzcGF0Y2hDb21tYW5kKCJ1cGRhdGVGaW5kU3RyaW5nIl9zLCBidWlsZGVyLnRvU3RyaW5nKCkp
OworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0
QXN5bmMoInVwZGF0ZUZpbmRTdHJpbmciX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShmaW5kU3Ry
aW5nKSB9KTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6Y2hhbmdlQXR0YWNoZWRXaW5kb3dI
ZWlnaHQodW5zaWduZWQgaGVpZ2h0KQpAQCAtMzI1LDczICszMjMsNzMgQEAgdm9pZCBXZWJJbnNw
ZWN0b3JVSTo6c2V0RGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUoYm9vbCBhdmFpbGFibGUpCiAg
ICAgQVNTRVJUKCFhdmFpbGFibGUgfHwgc3VwcG9ydHNEaWFnbm9zdGljTG9nZ2luZygpKTsKICAg
ICBtX2RpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlID0gYXZhaWxhYmxlOwogCi0gICAgbV9mcm9u
dGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXREaWFnbm9zdGljTG9nZ2luZ0F2
YWlsYWJsZSJfcywgbV9kaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZSk7CisgICAgbV9mcm9udGVu
ZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3luYygic2V0RGlhZ25v
c3RpY0xvZ2dpbmdBdmFpbGFibGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShtX2RpYWdub3N0
aWNMb2dnaW5nQXZhaWxhYmxlKSB9KTsKIH0KICNlbmRpZgogCiB2b2lkIFdlYkluc3BlY3RvclVJ
OjpzaG93Q29uc29sZSgpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hD
b21tYW5kKCJzaG93Q29uc29sZSJfcyk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRp
c3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3luYygic2hvd0NvbnNvbGUiX3MpOwogfQogCiB2b2lk
IFdlYkluc3BlY3RvclVJOjpzaG93UmVzb3VyY2VzKCkKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlz
cGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNob3dSZXNvdXJjZXMiX3MpOworICAgIG1fZnJvbnRl
bmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0QXN5bmMoInNob3dSZXNv
dXJjZXMiX3MpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpzaG93TWFpblJlc291cmNlRm9y
RnJhbWUoY29uc3QgU3RyaW5nJiBmcmFtZUlkZW50aWZpZXIpCiB7Ci0gICAgbV9mcm9udGVuZEFQ
SURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzaG93TWFpblJlc291cmNlRm9yRnJhbWUiX3Ms
IGZyYW1lSWRlbnRpZmllcik7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNo
Q29tbWFuZFdpdGhSZXN1bHRBc3luYygic2hvd01haW5SZXNvdXJjZUZvckZyYW1lIl9zLCB7IEpT
T046OlZhbHVlOjpjcmVhdGUoZnJhbWVJZGVudGlmaWVyKSB9KTsKIH0KIAogdm9pZCBXZWJJbnNw
ZWN0b3JVSTo6c3RhcnRQYWdlUHJvZmlsaW5nKCkKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0
Y2hlci5kaXNwYXRjaENvbW1hbmQoInNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZCJfcywgdHJ1
ZSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1
bHRBc3luYygic2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkIl9zLCB7IEpTT046OlZhbHVlOjpj
cmVhdGUodHJ1ZSkgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnN0b3BQYWdlUHJvZmls
aW5nKCkKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNl
dFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZCJfcywgZmFsc2UpOworICAgIG1fZnJvbnRlbmRBUElE
aXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0QXN5bmMoInNldFRpbWVsaW5lUHJv
ZmlsaW5nRW5hYmxlZCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKGZhbHNlKSB9KTsKIH0KIAog
dm9pZCBXZWJJbnNwZWN0b3JVSTo6c3RhcnRFbGVtZW50U2VsZWN0aW9uKCkKIHsKLSAgICBtX2Zy
b250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNldEVsZW1lbnRTZWxlY3Rpb25F
bmFibGVkIl9zLCB0cnVlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hD
b21tYW5kV2l0aFJlc3VsdEFzeW5jKCJzZXRFbGVtZW50U2VsZWN0aW9uRW5hYmxlZCJfcywgeyBK
U09OOjpWYWx1ZTo6Y3JlYXRlKHRydWUpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpz
dG9wRWxlbWVudFNlbGVjdGlvbigpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlz
cGF0Y2hDb21tYW5kKCJzZXRFbGVtZW50U2VsZWN0aW9uRW5hYmxlZCJfcywgZmFsc2UpOworICAg
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0QXN5bmMo
InNldEVsZW1lbnRTZWxlY3Rpb25FbmFibGVkIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUoZmFs
c2UpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpkaWRTYXZlKGNvbnN0IFN0cmluZyYg
dXJsKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2F2
ZWRVUkwiX3MsIHVybCk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29t
bWFuZFdpdGhSZXN1bHRBc3luYygic2F2ZWRVUkwiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh1
cmwpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpkaWRBcHBlbmQoY29uc3QgU3RyaW5n
JiB1cmwpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJh
cHBlbmRlZFRvVVJMIl9zLCB1cmwpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNw
YXRjaENvbW1hbmRXaXRoUmVzdWx0QXN5bmMoImFwcGVuZGVkVG9VUkwiX3MsIHsgSlNPTjo6VmFs
dWU6OmNyZWF0ZSh1cmwpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpzZW5kTWVzc2Fn
ZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewotICAgIG1fZnJvbnRlbmRBUElE
aXNwYXRjaGVyLmRpc3BhdGNoTWVzc2FnZUFzeW5jKG1lc3NhZ2UpOworICAgIG1fZnJvbnRlbmRB
UElEaXNwYXRjaGVyLT5kaXNwYXRjaE1lc3NhZ2VBc3luYyhtZXNzYWdlKTsKIH0KIAogdm9pZCBX
ZWJJbnNwZWN0b3JVSTo6ZXZhbHVhdGVJbkZyb250ZW5kRm9yVGVzdGluZyhjb25zdCBTdHJpbmcm
IGV4cHJlc3Npb24pCiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZXZhbHVhdGVFeHBy
ZXNzaW9uRm9yVGVzdGluZyhleHByZXNzaW9uKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hl
ci0+ZXZhbHVhdGVFeHByZXNzaW9uRm9yVGVzdGluZyhleHByZXNzaW9uKTsKIH0KIAogdm9pZCBX
ZWJJbnNwZWN0b3JVSTo6cGFnZVBhdXNlZCgpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNo
ZXIuc3VzcGVuZCgpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5zdXNwZW5kKCk7CiB9
CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnBhZ2VVbnBhdXNlZCgpCiB7Ci0gICAgbV9mcm9udGVu
ZEFQSURpc3BhdGNoZXIudW5zdXNwZW5kKCk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIt
PnVuc3VzcGVuZCgpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpzZW5kTWVzc2FnZVRvQmFj
a2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKaW5kZXggMDI2YTcxMmEwODk5ZDA0NTVm
MzE4NWFiNzk3NmMxNDAwNWQ4ZWJhYi4uYTZlZTcxMzM5MzllZjJhMDRiNmI4NjJiMjhlODIxN2Zl
MjBkYjFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JVSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUkuaApAQCAtMjcsOSArMjcsOSBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlv
bi5oIgogI2luY2x1ZGUgIkRlYnVnZ2FibGVJbmZvRGF0YS5oIgotI2luY2x1ZGUgIldlYkluc3Bl
Y3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckRlYnVnZ2FibGVUeXBlLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5kQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaD4KIApAQCAtMTQyLDYgKzE0Miw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvQmFja2VuZChjb25zdCBTdHJpbmcmKSBv
dmVycmlkZTsKKyAgICBXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXImIGZy
b250ZW5kQVBJRGlzcGF0Y2hlcigpIGZpbmFsIHsgcmV0dXJuIG1fZnJvbnRlbmRBUElEaXNwYXRj
aGVyOyB9CiAKICAgICB2b2lkIHBhZ2VQYXVzZWQoKSBvdmVycmlkZTsKICAgICB2b2lkIHBhZ2VV
bnBhdXNlZCgpIG92ZXJyaWRlOwpAQCAtMTUyLDcgKzE1Myw3IEBAIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgV2ViSW5zcGVjdG9yVUkoV2ViUGFnZSYpOwogCiAgICAgV2ViUGFnZSYgbV9wYWdlOwot
ICAgIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlciBtX2Zyb250ZW5kQVBJRGlzcGF0
Y2hlcjsKKyAgICBSZWY8V2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyPiBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsKICAgICBSZWZQdHI8V2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRIb3N0PiBtX2Zyb250ZW5kSG9zdDsKIAogICAgIC8vIEtlZXAgYSBwb2ludGVyIHRvIHRo
ZSBmcm9udGVuZCdzIGluc3BlY3RvciBjb250cm9sbGVyIHJhdGhlciB0aGFuIGdvaW5nIHRocm91
Z2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNGYxOWEwZWQ2Y2QyNGFjMzM0MzkxOGZiYmI5
YjNmNjI2N2FjMTA5Ny4uMjQ0NTJiNjgyZjQ5M2YwNDAzZGNmZTYxYmNhYTcyMGM2ZTRmYTA4YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEwMyw2ICsxMDMsOCBAQAogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoV0VCX0FVVEhOKQorI2luY2x1ZGUgIldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oPgog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvY2YvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS9jZi9XZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnRDRi5jcHAKaW5kZXggN2I4Njk4MWEzZjQ4ZTUw
ZjhiM2NjYWMzNzA2OTE3ZDRhZjFmZGJkNi4uMTZkYzE0NGRjYzk4ZTI1NmMwNTMyNjdmNTJkMWQz
ZTRlNDg5NTgzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9jZi9XZWJDb3JlU3Vw
cG9ydC9XZWJJbnNwZWN0b3JDbGllbnRDRi5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9j
Zi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnRDRi5jcHAKQEAgLTk2LDcgKzk2LDcg
QEAgc3RhdGljIHZvaWQgZGVsZXRlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSkKIAogdm9pZCBX
ZWJJbnNwZWN0b3JDbGllbnQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCiB7Ci0gICAgbV9mcm9udGVuZENsaWVudC0+ZGlzcGF0Y2hNZXNzYWdlQXN5bmMobWVz
c2FnZSk7CisgICAgbV9mcm9udGVuZENsaWVudC0+ZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkuZGlz
cGF0Y2hNZXNzYWdlQXN5bmMobWVzc2FnZSk7CiB9CiAKIGJvb2wgV2ViSW5zcGVjdG9yQ2xpZW50
OjppbnNwZWN0b3JBdHRhY2hEaXNhYmxlZCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODI2YmEyZjM5NTZmNjIwYjBhZTQ0
NWU2ZGRhOTc4ZDVjM2YyMGYxOS4uNDUzNjAwMTc5NGVkZGExOGU4NmUwM2FhMDMyNmQwOGEwY2Qw
N2E1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTEwLTI5ICBCcmlhbiBCdXJnICA8YmJ1
cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUgSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyIHRvIFdlYkNvcmUsIGNsZWFuIHVwIHVzZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgzNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNzAzODQ0MDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL2RvbS1yZW1vdmUtZXZlbnRzLmh0bWw6Cisg
ICAgICAgICogaW5zcGVjdG9yL2RvbS9yZW1vdmUtbXVsdGlwbGUtbm9kZXMuaHRtbDoKKyAgICAg
ICAgVGhlIG9yZGVyIG9mIGV2ZW50cyByZWNlaXZlZCBoYXMgY2hhbmdlZCBzbGlnaHRseSBkdWUg
dG8gdGhlIG5ldyBhdXRvLXN1c3BlbmQgYmVoYXZpb3IKKyAgICAgICAgaW4gSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyLiBSZW1vdmUgZXZlbnQgaGFuZGxlcnMgd2hlbiB0aGUgdGVzdCBp
cyBjb21wbGV0ZSB0byAKKyAgICAgICAgZW5zdXJlIHRoYXQgZXZlbnRzIHdoaWNoIGFycml2ZSBh
ZnRlciB0aGUgdGVzdCBoYXMgZmluaXNoZWQgZG8gbm90IHN0b21wIG9uIHRoZSBleHBlY3RlZCBy
ZXN1bHRzLgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rp
b24tbmFtZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRo
aXMtaG9zdC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9oaXQtYnJlYWtwb2lu
dC1mcm9tLWNvbnNvbGUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJl
YWtwb2ludC1hdXRvQ29udGludWUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
c2V0QnJlYWtwb2ludC1jb2x1bW4uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
c2V0QnJlYWtwb2ludC1jb25kaXRpb24uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRC
cmVha3BvaW50QnlVcmwtc291cmNlVVJMLmh0bWw6CisgICAgICAgIFNvbWUgdGVzdHMgc2VlbSB0
byBjYWxsIFByb3RvY29sVGVzdC5jb21wbGV0ZVRlc3QoKSBmcm9tIHRoZSBoYW5kbGVyIG9mIERl
YnVnZ2VyLnBhdXNlZCwgd2hlbgorICAgICAgICB0aGUgZGVidWdnZXIgaXMgc3RpbGwgcGF1c2Vk
LiBUaGlzIGNhdXNlcyB0aW1lb3V0cyBhZnRlciB0aGlzIHJlZmFjdG9yaW5nLCBzaW5jZSBub3Qg
cmVzdW1pbmcgbWVhbnMgdGhhdAorICAgICAgICB3ZSdsbCBnZXQgc3R1Y2sgaW4gdGhlIGRlYnVn
Z2VyJ3MgbmVzdGVkIHJ1biBsb29wIGFuZCBuZXZlciByZXR1cm4uCisKIDIwMjAtMTAtMjkgIENh
cmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS11bV1BFXSBHYXJkZW5pbmcgb2YgbmV3IGZhaWx1cmVzIGFmdGVyIHIyNjkxNzcgYW5kIG1h
cmsgbW9yZSBmbGFreSB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMKaW5kZXggODMxYTYxZjY3
ODVlNDQ4OGIxMmQ3ZGZkZWYxZmU2NmQzNzU1MTIyMi4uZjIwZWQ5YjJlM2ZiMzQ2Y2NkZjhlZmZi
NTA4YWM4MzIyOWNmOTg4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMKQEAgLTY1LDExICs2NSwx
MiBAQCBUZXN0UGFnZS5sb2cgPSB3aW5kb3cubG9nID0gZnVuY3Rpb24odGV4dCkKIAogVGVzdFBh
Z2UuY2xvc2VUZXN0ID0gd2luZG93LmNsb3NlVGVzdCA9IGZ1bmN0aW9uKCkKIHsKLSAgICB3aW5k
b3cuaW50ZXJuYWxzLmNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgpOwotCiAgICAgLy8gVGhp
cyBjb2RlIG1pZ2h0IGJlIGV4ZWN1dGVkIHdoaWxlIHRoZSBkZWJ1Z2dlciBpcyBzdGlsbCBydW5u
aW5nIHRocm91Z2ggYSBzdGFjayBiYXNlZCBFdmVudExvb3AuCiAgICAgLy8gVXNlIGEgc2V0VGlt
ZW91dCB0byBkZWZlciB0byBhIGNsZWFuIHN0YWNrIGJlZm9yZSBsZXR0aW5nIHRoZSB0ZXN0UnVu
bmVyIGxvYWQgdGhlIG5leHQgdGVzdC4KLSAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7IH0sIDApOworICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICB3
aW5kb3cuaW50ZXJuYWxzLmNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgpOworICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9LCAwKTsKIH07CiAKIFRlc3RQYWdlLnJ1blRl
c3QgPSB3aW5kb3cucnVuVGVzdCA9IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUuaHRtbApp
bmRleCBlN2U5N2U4MTIzZWQxZDViMmE1OGY2MDIwZjNjOTMwZTJlOGI5ZWQ0Li42N2UwOTQyZTdh
MjJiM2IxN2Y0MDE2MjE4ZWE4ZWRmYmU1MTY4ZDAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1lLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1s
CkBAIC0zMiw2ICszMiw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIEluc3BlY3RvclByb3RvY29s
LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0
KQogICAgIHsKICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiSGl0IEJyZWFrcG9pbnQhIik7Cisg
ICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5kaXNhYmxlIik7
CisKICAgICAgICAgdmFyIGZ1bmN0aW9uTmFtZXMgPSBbIF07CiAgICAgICAgIHZhciBpOwogICAg
ICAgICBmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3QuaHRtbAppbmRleCA0ZjcxODUy
OTQwYjM4ZDczNmNmYWUwOGM0ZmU5MGViNDg5YTM2NTc4Li5lNzNmODg4NjJhZTQ2Y2QyZGE1YjM4
MzA3YTllODQ4MjYyMmM3YzdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3QuaHRtbApAQCAtMzIsNiArMzIsOCBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIkRlYnVn
Z2VyLnBhdXNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CiAgICAgICAgIFBy
b3RvY29sVGVzdC5sb2coIkhpdCBCcmVha3BvaW50ISIpOworICAgICAgICBJbnNwZWN0b3JQcm90
b2NvbC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZGlzYWJsZSIpOworCiAgICAgICAgIHZhciB0aGlz
VmFsdWVzID0gWyBdOwogICAgICAgICB2YXIgaTsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IDM7
IGkrKykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9oaXQtYnJl
YWtwb2ludC1mcm9tLWNvbnNvbGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9oaXQtYnJlYWtwb2ludC1mcm9tLWNvbnNvbGUuaHRtbAppbmRleCA1MjFjOWU0MTc5ZTgyMGYz
ZWJiZGI4ZTVlMzZkOGZhZTkxODZjN2E3Li4xNTQ2MmE0NzBkMjc5ZjYzOGYyYzBhOGVkZjFjYzNi
NWU2NDNkMzJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvaGl0
LWJyZWFrcG9pbnQtZnJvbS1jb25zb2xlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2hpdC1icmVha3BvaW50LWZyb20tY29uc29sZS5odG1sCkBAIC0zMCw2ICszMCw4
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsi
RGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgIHsKICAgICAg
ICAgUHJvdG9jb2xUZXN0LmxvZygiSGl0IEJyZWFrcG9pbnQhIik7CisgICAgICAgIEluc3BlY3Rv
clByb3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5kaXNhYmxlIik7CisKICAgICAgICAgUHJv
dG9jb2xUZXN0LmxvZygiUEFTUyIpOwogICAgICAgICBQcm90b2NvbFRlc3QuY29tcGxldGVUZXN0
KCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbAppbmRleCAxZmVkNjdjNDZmZDVi
OTQyMzk4NjE5OTM5YjA0YTA3MDBjZmY1OTUyLi4wZjVhMzE1NGIzNzEzN2Y3OWU0NjZkOTdiNDAz
NDYzOGY4NjNiNzU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
c2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbApAQCAtNDQsNiArNDQs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJb
IkRlYnVnZ2VyLnBhdXNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CiAgICAg
ICAgIFByb3RvY29sVGVzdC5sb2coIkhpdCBCcmVha3BvaW50ISIpOworICAgICAgICBJbnNwZWN0
b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZGlzYWJsZSIpOwogCiAgICAgICAgIGlm
ICghYWxsb3dlZFRvSGl0QnJlYWtwb2ludCkgewogICAgICAgICAgICAgUHJvdG9jb2xUZXN0Lmxv
ZygiRkFJTDogc2hvdWxkIG5vdCBoYXZlIGhpdCBicmVha3BvaW50LiIpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4uaHRt
bAppbmRleCBmYjYzNTMxMjI5OGQ2ZmE2OTQ5NWUxMTJhYTFlMzhhMzY5ZTZiY2Q0Li43ODY5MmZk
YTAwY2Q3NDYxM2UyMTdmN2JmMTVlYmFiOTQyOGU5YjZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4uaHRtbApAQCAt
MzcsNiArMzcsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIFByb3RvY29sVGVzdC5s
b2coIkV2YWx1dGVkIHZhbHVlIG9mIGBhYCAoZXhwZWN0aW5nIG51bWJlciAxKSB3YXM6ICIgKyBK
U09OLnN0cmluZ2lmeShtZXNzYWdlT2JqZWN0LnJlc3VsdC5yZXN1bHQpKTsKICAgICAgICAgICAg
IEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZy
YW1lIiwge2NhbGxGcmFtZUlkOiBjYWxsRnJhbWVJZGVudGlmaWVyLCBleHByZXNzaW9uOiAiYiJ9
LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7CiAgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0
LmxvZygiRXZhbHV0ZWQgdmFsdWUgb2YgYGJgIChleHBlY3RpbmcgdW5kZWZpbmVkKSB3YXM6ICIg
KyBKU09OLnN0cmluZ2lmeShtZXNzYWdlT2JqZWN0LnJlc3VsdC5yZXN1bHQpKTsKKworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5kaXNhYmxl
Iik7CiAgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmNvbXBsZXRlVGVzdCgpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24uaHRtbAppbmRleCBjMmE3Mjk1
NmEzZTUyN2QyMmQ0MWJiODA0MDg0OWRlMDcwYTAwZTE5Li5jOTY4ZDVkOTdhMjdjZWE1NmI3ZWMz
YTg5ZmJlMGFiODc4MmIwYmY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24uaHRtbApAQCAtMyw2ICszLDcg
QEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJv
dG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JyZWFrcG9p
bnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KKwogZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgSW5z
cGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKQEAgLTEw
LDYgKzExLDE1IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgdmFyIGluQnJlYWtwb2ludCA9IGZh
bHNlOwogICAgIHZhciBicmVha3BvaW50VHJpZ2dlcmVkID0gMDsKKyAgICB2YXIgY29tcGxldGVk
VGVzdCA9IGZhbHNlOworCisgICAgZnVuY3Rpb24gZGlzYWJsZURlYnVnZ2VyQW5kQ29tcGxldGVU
ZXN0KCkKKyAgICB7CisgICAgICAgIGNvbXBsZXRlZFRlc3QgPSB0cnVlOyAvLyBGb3JjZSBEZWJ1
Z2dlci5yZXN1bWVkIGNhbGxiYWNrIHRvIGJhaWwgb3V0LgorICAgICAgICBJbnNwZWN0b3JQcm90
b2NvbC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZGlzYWJsZSIpOworICAgICAgICBQcm90b2NvbFRl
c3QubG9nKCJUZXN0IGlzIGNvbXBsZXRlLCBkaXNhYmxpbmcgYnJlYWtwb2ludHMuIik7CisgICAg
ICAgIFByb3RvY29sVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CiAKICAgICBJbnNwZWN0b3JQ
cm90b2NvbC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0gZnVuY3Rpb24o
bWVzc2FnZU9iamVjdCkKICAgICB7CkBAIC00OCwxOCArNTgsMjIgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRXZhbHV0ZWQgdmFsdWUgb2YgYGFg
IChleHBlY3RpbmcgbnVtYmVyIDQpIHdhczogIiArIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2VPYmpl
Y3QucmVzdWx0LnJlc3VsdCkpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNl
bmRDb21tYW5kKCJEZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZyYW1lIiwge2NhbGxGcmFtZUlkOiBj
YWxsRnJhbWVJZGVudGlmaWVyLCBleHByZXNzaW9uOiAiYiJ9LCBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KSB7CiAgICAgICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIkV2YWx1dGVkIHZh
bHVlIG9mIGBiYCAoZXhwZWN0aW5nIG51bWJlciA3KSB3YXM6ICIgKyBKU09OLnN0cmluZ2lmeSht
ZXNzYWdlT2JqZWN0LnJlc3VsdC5yZXN1bHQpKTsKKwogICAgICAgICAgICAgICAgICAgICBQcm90
b2NvbFRlc3QubG9nKCJQQVNTOiBoaXQgYnJlYWtwb2ludHMgd2l0aCBleHBlY3RlZCB2YWx1ZXMi
KTsKLSAgICAgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmNvbXBsZXRlVGVzdCgpOworICAg
ICAgICAgICAgICAgICAgICBkaXNhYmxlRGVidWdnZXJBbmRDb21wbGV0ZVRlc3QoKTsKICAgICAg
ICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogaGl0IHRvbyBtYW55IGJyZWFrcG9pbnRzLiIp
OwotICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAg
ZGlzYWJsZURlYnVnZ2VyQW5kQ29tcGxldGVUZXN0KCk7CiAgICAgICAgIH0KICAgICB9CiAKICAg
ICBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnJlc3VtZWQiXSA9IGZ1
bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgeworICAgICAgICBpZiAoY29tcGxldGVkVGVzdCkK
KyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJSZXN1bWVk
LCBydW5uaW5nIGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIG11bHRpcGxlIHRpbWVzIGFnYWluIik7
CiAgICAgICAgIGluQnJlYWtwb2ludCA9IGZhbHNlOwogCkBAIC02OSw3ICs4Myw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgICAgICBpZiAoIWluQnJlYWtwb2ludCkgewogICAgICAgICAgICAgICAgICAgICBQcm90b2Nv
bFRlc3QubG9nKCJGQUlMOiBEaWQgbm90IGhpdCBjb25kaXRpb25hbCBicmVha3BvaW50IHRoZSBz
ZWNvbmQgdGltZSIpOwotICAgICAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QuY29tcGxldGVU
ZXN0KCk7CisgICAgICAgICAgICAgICAgICAgIGRpc2FibGVEZWJ1Z2dlckFuZENvbXBsZXRlVGVz
dCgpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0sIDEwMCk7CiAgICAgICAgIH0p
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9p
bnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50Lmh0
bWwKaW5kZXggYWMzZGJiNjc1YmE5MTcwNTUwNDY3ZWU2NThjZmM2MDE5ZDdjNzIzNC4uNzAzNDhh
OWQ2N2FjMTE5NmMxZjhjMDQzZmZjNTk0NzUzOTAwYzZiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC5odG1sCkBAIC0zMyw2ICszMyw4IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRGVi
dWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgIHsKICAgICAgICAg
UHJvdG9jb2xUZXN0LmxvZygiSGl0IEJyZWFrcG9pbnQhIik7CisgICAgICAgIEluc3BlY3RvclBy
b3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5kaXNhYmxlIik7CisKICAgICAgICAgUHJvdG9j
b2xUZXN0LmxvZygiUEFTUyIpOwogICAgICAgICBQcm90b2NvbFRlc3QuY29tcGxldGVUZXN0KCk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJy
ZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNlVVJMLmh0bWwKaW5kZXggZjdhOWVhZjMzY2E0
N2RjNjdjNjlhYjA1NjFhZjYxYjc3YmFlMWFjYS4uNTczNDM2YmU1OTcxOWFlYjViYjc0MWZkODlj
Y2UwZTVkMWYxMzlkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sCkBAIC0zMiw2
ICszMiw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygi
RXZhbHV0ZWQgdmFsdWUgb2YgYGFgIChleHBlY3RpbmcgbnVtYmVyIDEpIHdhczogIiArIEpTT04u
c3RyaW5naWZ5KG1lc3NhZ2VPYmplY3QucmVzdWx0LnJlc3VsdCkpOwogICAgICAgICAgICAgSW5z
cGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmV2YWx1YXRlT25DYWxsRnJhbWUi
LCB7Y2FsbEZyYW1lSWQ6IGNhbGxGcmFtZUlkZW50aWZpZXIsIGV4cHJlc3Npb246ICJjIn0sIGZ1
bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKICAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QubG9n
KCJFdmFsdXRlZCB2YWx1ZSBvZiBgY2AgKGV4cGVjdGluZyB1bmRlZmluZWQpIHdhczogIiArIEpT
T04uc3RyaW5naWZ5KG1lc3NhZ2VPYmplY3QucmVzdWx0LnJlc3VsdCkpOworCisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmRpc2FibGUiKTsK
ICAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9t
L2RvbS1yZW1vdmUtZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbS1y
ZW1vdmUtZXZlbnRzLmh0bWwKaW5kZXggNDgxN2VlNzE3N2U0N2Q0Zjk5NDE0MDI2NzZiMGVjMGIz
MGE4NWZjZC4uZDVjNThjNGM3ODk1Nzk0YzU1ZDlkN2VlMWJiZjBlMzIwZjE3YTE2YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9kb20tcmVtb3ZlLWV2ZW50cy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZG9tLXJlbW92ZS1ldmVudHMuaHRtbApAQCAt
NzEsNiArNzEsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIHJl
Y2VpdmUgdGhlIGNoaWxkcmVuIG9mIHRoZSAiI2ZpbmFsX2NvbnRhaW5lciIgYXMgdGhleSBhcmUg
YWRkZWQuCiAgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJET00ucmVxdWVz
dENoaWxkTm9kZXMiLCB7bm9kZUlkOiByZXNwb25zZS5yZXN1bHQubm9kZUlkfSk7CiAgICAgICAg
IEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgeyJleHBy
ZXNzaW9uIjogIm1vdmVOb2RlKCkifSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkZWxldGUg
SW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJET00uc2V0Q2hpbGROb2RlcyJdOworICAg
ICAgICAgICAgZGVsZXRlIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRE9NLmNoaWxk
Tm9kZVJlbW92ZWQiXTsKKyAgICAgICAgICAgIGRlbGV0ZSBJbnNwZWN0b3JQcm90b2NvbC5ldmVu
dEhhbmRsZXJbIkRPTS5jaGlsZE5vZGVJbnNlcnRlZCJdOwogICAgICAgICAgICAgUHJvdG9jb2xU
ZXN0LmNvbXBsZXRlVGVzdCgpOwogICAgICAgICB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZG9tL3JlbW92ZS1tdWx0aXBsZS1ub2Rlcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RvbS9yZW1vdmUtbXVsdGlwbGUtbm9kZXMuaHRtbAppbmRleCA2ZTYw
YzY1ZjJhMDkwNTNjNzk1NjAzNjAzZDE0YjQ5NGVhNDRmYzhlLi42ZGQxMTU5MmU0YzQ2YjcwNTIy
MDI5MTRhMjE2Y2UyMzJlMzVmNjA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZG9tL3JlbW92ZS1tdWx0aXBsZS1ub2Rlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kb20vcmVtb3ZlLW11bHRpcGxlLW5vZGVzLmh0bWwKQEAgLTkyLDYgKzkyLDkgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgiRE9N
LnJlcXVlc3RDaGlsZE5vZGVzIiwge25vZGVJZDogcmVzcG9uc2UucmVzdWx0Lm5vZGVJZHNbaV19
KTsKICAgICAgICAgCiAgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJSdW50
aW1lLmV2YWx1YXRlIiwgeyJleHByZXNzaW9uIjogIm1vdmVOb2RlKCkifSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBkZWxldGUgSW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJET00u
c2V0Q2hpbGROb2RlcyJdOworICAgICAgICAgICAgZGVsZXRlIEluc3BlY3RvclByb3RvY29sLmV2
ZW50SGFuZGxlclsiRE9NLmNoaWxkTm9kZVJlbW92ZWQiXTsKKyAgICAgICAgICAgIGRlbGV0ZSBJ
bnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIkRPTS5jaGlsZE5vZGVJbnNlcnRlZCJdOwog
ICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmNvbXBsZXRlVGVzdCgpOwogICAgICAgICB9KTsKICAg
ICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412793</attachid>
            <date>2020-10-30 13:44:54 -0700</date>
            <delta_ts>2020-10-30 16:56:31 -0700</delta_ts>
            <desc>Patch v2.6 - for EWS</desc>
            <filename>bug-217835-20201030134454.patch</filename>
            <type>text/plain</type>
            <size>77098</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFjMjk4MjVmNjA3YzVk
OWM5MzUzOThmOWQ0MmZjMTdmMDdjNDdkYi4uODA4YjAyZGUwOWQyZTU2Y2RmMTE0ODkzMjJkZDU1
NTI3YjViM2M4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIwLTEwLTE2ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUg
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIHRvIFdlYkNvcmUsIGNsZWFuIHVwIHVzZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgzNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAzODQ0MDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGV2aW4gUm91c3NvLgorCisgICAgICAgIEV4cG9zZSB0aGUgZGlzcGF0Y2hlciBhcyBwYXJ0IG9m
IHRoZSBJbnNwZWN0b3JGcm9udGVuZENsaWVudCBBUEkgc28gdGhhdCBvdGhlciBjb2RlCisgICAg
ICAgIGNhbiB1c2UgdGhlIGRpc3BhdGNoZXIgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0J3MgYSBX
ZWJJbnNwZWN0b3JVSSBvciBSZW1vdGVXZWJJbnNwZWN0b3JVSS4KKworICAgICAgICBBZGQgYW4g
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyIGluc3RhbmNlIGFuZCBnZXR0ZXIgdG8gSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC4KKworICAgICAgICBBZG9wdCB0aGUgSlNPTlZhbHVl
LWJhc2VkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2goKSBtZXRob2QK
KyAgICAgICAgaW4gSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC4gUmVtb3ZlIHRoZSByZWR1
bmRhbnQgcGFyYWxsZWwgcXVldWluZyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgUmVtb3ZlIHJl
ZHVuZGFudCBwdWJsaWMgbWV0aG9kcyB0aGF0IGFyZSBhdmFpbGFibGUgb24gSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBNb3ZlZCBmaWxlcy4K
KworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpyZXNl
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmZy
b250ZW5kTG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcjo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OnVuc3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNoTWVzc2FnZUFzeW5jKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVP
clF1ZXVlRXhwcmVzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OmV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZUV4cHJlc3Npb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0
ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKToKKyAgICAgICAgQWRkIG5ldyBkaXNwYXRjaCgpIG1ldGhv
ZC4gUmVtb3ZlIG90aGVyIGRpc3BhdGNoIG1ldGhvZHMgdGhhdCBjYW4gYmUgZXhwcmVzc2VkCisg
ICAgICAgIHVzaW5nIHRoZSBuZXcgSlNPTjo6VmFsdWUtYmFzZWQgbWV0aG9kLiBJZiBpdCdzIG5v
dCBwb3NzaWJsZSB0byBldmFsdWF0ZSBKUworICAgICAgICBpbW1lZGlhdGVseSwgc2NoZWR1bGUg
YSBvbmUtc2hvdCB0YXNrIHRvIHRyeSBhZ2FpbiBvbiBhIGRpZmZlcmVudCBldmVudCBsb29wIHR1
cm4uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVy
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oLgorICAgICAgICBBZGQgbmV3IGRpc3BhdGNo
KCkgbWV0aG9kIHdoaWNoIHRha2VzIGEgdmVjdG9yIG9mIEpTT046OlZhbHVlIG9iamVjdHMgYW5k
CisgICAgICAgIHNlcmlhbGl6ZXMgdGhlbSBpbnRvIGNvbW1hbmQgYXJndW1lbnRzIGZvciB0aGUg
ZnJvbnRlbmQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Okluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbDo6ZnJvbnRlbmRMb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6cGFnZVBhdXNlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpwYWdlVW5wYXVzZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RG9ja2luZ1VuYXZhaWxhYmxlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldEF0dGFj
aGVkV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9j
YWw6OnNldERlYnVnZ2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDo6c2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnN0YXJ0UHJvZmlsaW5nSmF2
YVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
OjpzdG9wUHJvZmlsaW5nSmF2YVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsOjpzaG93Q29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzaG93UmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNob3dNYWluUmVzb3VyY2VGb3JGcmFt
ZSk6CisgICAgICAgIFVzZSBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgdG8gZGlzcGF0
Y2ggY29tbWFuZHMgdG8gdGhlIGZyb250ZW5kLgorCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaE1lc3NhZ2UpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZGlz
cGF0Y2hNZXNzYWdlQXN5bmMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6ZXZhbHVhdGVPbkxvYWQpOiBEZWxldGVkLgorICAgICAgICBU
aGVzZSBhcmUgcmVkdW5kYW50IHdpdGggSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLgor
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yU3R1YkZyb250ZW5kOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOiBVc2UgZnJvbnRlbmQg
ZGlzcGF0Y2hlciBkaXJlY3RseS4KKwogMjAyMC0xMC0zMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgSW5jcmVhc2UgY2FtZXJhIGZhaWxpbmcgdGltZXIgdG8g
MzAgc2Vjb25kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBmZmQ0Y2U2ZTMzOWY4Y2U0YzI4OTBlYzk2Y2VlYTRjYjc3
OGI1YTcwLi43NTQxN2Q0NjU5NjZhYWVhMDUzMzdhN2ZkOWI2YWM4ZjhiOGFkY2UxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTEwLTIxICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUu
Y29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUgSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyIHRvIFdlYkNvcmUsIGNsZWFuIHVwIHVzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgzNQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzAzODQ0MDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAg
ICAgIEFkb3B0IHRoZSBKU09OVmFsdWUtYmFzZWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRj
aGVyOjpkaXNwYXRjaCgpIG1ldGhvZAorICAgICAgICBpbiBXZWJJbnNwZWN0b3JVSSBhbmQgUmVt
b3RlSW5zcGVjdG9yVUkgbWV0aG9kcyB0aGF0IGRpc3BhdGNoIHRvIHRoZSBmcm9udGVuZC4KKwor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOiBNb3ZlIGZpbGVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
UmVtb3RlV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9S
ZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3Bl
Y3RvclVJOjpSZW1vdGVXZWJJbnNwZWN0b3JVSSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdl
Ykluc3BlY3RvclVJOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5z
cGVjdG9yVUk6OnVwZGF0ZUZpbmRTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJ
bnNwZWN0b3JVSTo6ZGlkU2F2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3Rv
clVJOjpkaWRBcHBlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6
ZnJvbnRlbmRMb2FkZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6
c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVj
dG9yVUk6OnBhZ2VQYXVzZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JV
STo6cGFnZVVucGF1c2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6
OnNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKToKKworICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6
V2ViSW5zcGVjdG9yVUkpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2V0RG9j
a1NpZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2V0RG9ja2luZ1VuYXZh
aWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnNldElzVmlzaWJsZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjp1cGRhdGVGaW5kU3RyaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxh
YmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnNob3dDb25zb2xlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnNob3dSZXNvdXJjZXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OnN0YXJ0UGFnZVByb2ZpbGluZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzdG9wUGFnZVByb2ZpbGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkluc3BlY3RvclVJOjpzdGFydEVsZW1lbnRTZWxlY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6c3RvcEVsZW1lbnRTZWxlY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6ZGlkU2F2ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvclVJOjpkaWRBcHBlbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6
c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6
OmV2YWx1YXRlSW5Gcm9udGVuZEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNw
ZWN0b3JVSTo6cGFnZVBhdXNlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpw
YWdlVW5wYXVzZWQpOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwOgorICAgICAgICBBZGQgbWlzc2luZyBoZWFkZXIgaW5jbHVkZXMgKHJl
bGF0ZWQgdG8gdW5pZmllZCBzb3VyY2VzIGNoYW5nZXMgZnJvbSByMjY5MTY4KS4KKwogMjAyMC0x
MC0zMCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBDb3Jy
ZWN0IHNhbmRib3ggdmlvbGF0aW9ucyBpbiBHUFUgUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9jZi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2NmL0NoYW5n
ZUxvZwppbmRleCAwNmU3OTYwZWZmNmVjMDY2MTRhZWRlZGRhM2RlMGJhNzcxMjRhMTMwLi5lZTc0
ZTE2NDg2NjEzZDU1M2ZhOGJhODAwOTQyNDkzMmFjOWI4MWUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L2NmL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2NmL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTEwLTE2ICBCcmlhbiBCdXJnICA8YmJ1cmdA
YXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUgSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyIHRvIFdlYkNvcmUsIGNsZWFuIHVwIHVzZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzgzNQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzAzODQ0MDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yQ2xpZW50OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorCiAyMDE5
LTA4LTE4ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dU
Rl0gQWRkIG1ha2VVbmlxdWU8VD4sIHdoaWNoIGVuc3VyZXMgVCBpcyBmYXN0LWFsbG9jYXRlZCwg
bWFrZVVuaXF1ZSAvIG1ha2VVbmlxdWVXaXRob3V0RmFzdE1hbGxvY0NoZWNrIHBhcnQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IDY4ODRkMGY4NmQyOWRjMTQ5MTY2MTE3YmE1Yzk2NGQxMGIzM2JkZGYu
LmU3MTA1OGVhODcwMWZhNTY3ZjBmYzk3YTJmMDUxYmMyYWJjMTA1YTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtNjk2LDYgKzY5Niw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hF
QURFUlMKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKICAgICBpbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5oCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2FibGVUeXBl
LmgKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgKICAgICBp
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaAogICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsLmgKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKaW5kZXggNzZiYWYwOTE3MGE4ODgxYzk4OWRkNDBlMzVhMmI3NTQ5
NjRjMDRjYS4uNjM3NzFiMDQwNTg3YTk0ODVmNDQ2MDhmOGMxMjgzZWY3NmM2MTVmOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKQEAgLTE0MDQsNiArMTQwNCw3IEBAIGluc3BlY3Rvci9JbnNwZWN0b3JBdWRpdFJl
c291cmNlc09iamVjdC5jcHAKIGluc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMuY3BwCiBpbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKIGluc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZVJl
c291cmNlLmNwcAoraW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAK
IGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAogaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kSG9zdC5jcHAKIGluc3BlY3Rvci9JbnNwZWN0b3JIaXN0b3J5LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDZkZTk1YTdhMjY5ODgzZDUyYzZiOTc4ZjdiYTVjNGQxYmQxMGUwMGMuLjFlNDhkM2U3Yzdm
OTIyMTA1MjJmMmU0YmE2ZTM0MzlhY2NjNjUxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI5NzksNiArMjk3OSw3IEBACiAJ
CTk4Q0U0MzJBMTI5RTAwRTUwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OENFNDMyOTEyOUUwMEU1MDA1ODIxREMg
LyogTGlua0xvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTk4RUIxRjk1MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOThFQjFGOTQxMzEz
RkUwNTAwRDBFMUVBIC8qIE5vdEltcGxlbWVudGVkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTkyMDM5ODMxOEI5NUJDNjAwQjM5QUY5IC8qIFVz
ZXJJbnB1dEJyaWRnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTkyMDM5ODExOEI5NUJDNjAwQjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk5NEM2MDNBMjUz
QTI3NzMwMEJERjA2MCAvKiBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NEM2MDM3MjUzQTI3NzIw
MEJERjA2MCAvKiBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5OTZFNTlERjFERjAxMjhEMDA2
NjEyQjkgLyogTmF2aWdhdG9yV2ViRHJpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZFNTlEQzFERjAwRDkwMDA2NjEyQjkgLyogTmF2aWdhdG9y
V2ViRHJpdmVyLmggKi87IH07CiAJCTk5RDFCMkQzMjNBQzE0MzEwMDgxMUNGMCAvKiBJbnNwZWN0
b3JEZWJ1Z2dhYmxlVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTlEMUIyRDEyM0FDMTQzMDAwODExQ0YwIC8qIEluc3BlY3RvckRlYnVnZ2FibGVU
eXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OUE1MjhFODQxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUE1MjhFODIxN0Q3RjUyRjAwQUE5
NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0xMTc2Miw2ICsxMTc2Myw4IEBACiAJCTk5MDhCMEZGMUJDQUQw
N0QwMEVEMzU3MiAvKiBSZWFkYWJsZVN0cmVhbUJZT0JSZWFkZXJCdWlsdGlucy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZWFkYWJsZVN0cmVhbUJZT0JSZWFkZXJCdWlsdGlu
cy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9SZWFkYWJsZVN0cmVhbUJZT0JSZWFk
ZXJCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk5OTIw
Mzk4MDE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklucHV0QnJpZGdlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJJbnB1dEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk5MjAzOTgxMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRC
cmlkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlcklucHV0QnJpZGdl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NEM2MDM3MjUzQTI3NzIwMEJERjA2
MCAvKiBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NEM2MDM5MjUzQTI3NzMwMEJERjA2MCAvKiBJbnNwZWN0
b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTk2RTU5REIxREYwMEQ5MDAwNjYxMkI5IC8qIE5hdmlnYXRvcldl
YkRyaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXZpZ2F0
b3JXZWJEcml2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTZFNTlEQzFE
RjAwRDkwMDA2NjEyQjkgLyogTmF2aWdhdG9yV2ViRHJpdmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRvcldlYkRyaXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5OTZFNTlERDFERjAwRDkwMDA2NjEyQjkgLyogTmF2aWdhdG9yK1dlYkRyaXZl
ci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gIk5hdmlnYXRvcitXZWJEcml2ZXIuaWRsIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NDEwLDYgKzE4NDEzLDggQEAKIAkJCQk0
MUYwNjIxMzBGNUYxOTI2MDBBMDdFQUMgLyogSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAg
Ki8sCiAJCQkJNDFGMDYyMTIwRjVGMTkyNjAwQTA3RUFDIC8qIEluc3BlY3RvckRhdGFiYXNlUmVz
b3VyY2UuaCAqLywKIAkJCQk5OUQxQjJEMTIzQUMxNDMwMDA4MTFDRjAgLyogSW5zcGVjdG9yRGVi
dWdnYWJsZVR5cGUuaCAqLywKKwkJCQk5OTRDNjAzOTI1M0EyNzczMDBCREYwNjAgLyogSW5zcGVj
dG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcCAqLywKKwkJCQk5OTRDNjAzNzI1M0EyNzcyMDBC
REYwNjAgLyogSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmggKi8sCiAJCQkJRjM0NEM3
MTIxMTI1QjgyQzAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50LmggKi8sCiAJCQkJ
RjM0NEM3NTcxMTI5NEZGNjAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwu
Y3BwICovLAogCQkJCUYzNDRDNzUyMTEyOTREOUQwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVu
ZENsaWVudExvY2FsLmggKi8sCkBAIC0zMjE2NCw2ICszMjE2OSw3IEBACiAJCQkJQTVCODFDQUIx
RkFBNDQ2MjAwMzdEMUU2IC8qIEluc3BlY3RvckRPTUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNUI4MUNBQzFGQUE0NDYyMDAzN0QxRTYgLyogSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQUQxRkFBNDQ2MjAwMzdEMUU2IC8qIEluc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk0QzYwM0EyNTNBMjc3MzAw
QkRGMDYwIC8qIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRjM0NEM3MTQxMTI1QjgyQzAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGMzQ0Qzc1MzExMjk0RDlEMDBGMjZFRUUgLyogSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0EwRTc3MEYxMEMw
MEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmZWY0YWMwYzI2MDk0YzFmMGQ5NmNjYTM5
YWVjYTRlNDU4ZGI1NTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcApAQCAtMCwwICsxLDIxMCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkluc3BlY3Rv
ckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIgorCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJQYWdlLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlw
dERpc2FsbG93ZWRTY29wZS5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKyNpbmNs
dWRlICJTY3JpcHRTdGF0ZS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ZyYW1lVHJhY2Vy
cy5oPgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgRXZhbHVhdGlvbkVycm9yID0g
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpFdmFsdWF0aW9uRXJyb3I7Cit1c2luZyBF
dmFsdWF0aW9uUmVzdWx0SGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyPEV4cGVjdGVkPEpTQzo6
SlNWYWx1ZSwgRXZhbHVhdGlvbkVycm9yPj47CisKK0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0
Y2hlcjo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyKFBhZ2UmIGZyb250ZW5kUGFnZSkK
KyAgICA6IG1fZnJvbnRlbmRQYWdlKG1ha2VXZWFrUHRyKGZyb250ZW5kUGFnZSkpCit7Cit9CisK
K0luc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6fkluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcigpCit7CisgICAgaW52YWxpZGF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7Cit9CisKK3Zv
aWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpyZXNldCgpCit7CisgICAgbV9mcm9u
dGVuZExvYWRlZCA9IGZhbHNlOworICAgIG1fc3VzcGVuZGVkID0gZmFsc2U7CisKKyAgICBpbnZh
bGlkYXRlUXVldWVkRXhwcmVzc2lvbnMoKTsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OmZyb250ZW5kTG9hZGVkKCkKK3sKKyAgICBBU1NFUlQobV9mcm9udGVuZFBh
Z2UpOworICAgIG1fZnJvbnRlbmRMb2FkZWQgPSB0cnVlOworCisgICAgZXZhbHVhdGVRdWV1ZWRF
eHByZXNzaW9ucygpOworfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6
c3VzcGVuZChVbnN1c3BlbmRTb29uIHVuc3VzcGVuZFNvb24pCit7CisgICAgQVNTRVJUKG1fZnJv
bnRlbmRMb2FkZWQpOworCisgICAgaWYgKG1fc3VzcGVuZGVkKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX3N1c3BlbmRlZCA9IHRydWU7CisKKyAgICBpZiAodW5zdXNwZW5kU29vbiA9PSBVbnN1
c3BlbmRTb29uOjpZZXMpIHsKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSBmcm9u
dGVuZCBwYWdlIGhhcyBiZWVuIGRlYWxsb2NhdGVkLCB0aGVyZSdzIG5vdGhpbmcgdG8gZG8uCisg
ICAgICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMtPm1fZnJvbnRlbmRQYWdlKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+dW5zdXNwZW5kKCk7
CisgICAgICAgIH0pOworICAgIH0KK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXI6OnVuc3VzcGVuZCgpCit7CisgICAgaWYgKCFtX3N1c3BlbmRlZCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9zdXNwZW5kZWQgPSBmYWxzZTsKKworICAgIGV2YWx1YXRlUXVldWVkRXhw
cmVzc2lvbnMoKTsKK30KKworSlNHbG9iYWxPYmplY3QqIEluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcjo6ZnJvbnRlbmRHbG9iYWxPYmplY3QoKQoreworICAgIGlmICghbV9mcm9udGVuZFBh
Z2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIAorICAgIHJldHVybiBtX2Zyb250ZW5k
UGFnZS0+bWFpbkZyYW1lKCkuc2NyaXB0KCkuZ2xvYmFsT2JqZWN0KG1haW5UaHJlYWROb3JtYWxX
b3JsZCgpKTsKK30KKworc3RhdGljIFN0cmluZyBleHByZXNzaW9uRm9yRXZhbHVhdGluZ0NvbW1h
bmQoY29uc3QgU3RyaW5nJiBjb21tYW5kLCBWZWN0b3I8UmVmPEpTT046OlZhbHVlPj4mJiBhcmd1
bWVudHMpCit7CisgICAgU3RyaW5nQnVpbGRlciBleHByZXNzaW9uOworICAgIGV4cHJlc3Npb24u
YXBwZW5kTGl0ZXJhbCgiSW5zcGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0Y2goW1wiIik7CisgICAg
ZXhwcmVzc2lvbi5hcHBlbmQoY29tbWFuZCk7CisgICAgZXhwcmVzc2lvbi5hcHBlbmQoJyInKTsK
KworICAgIGZvciAoYXV0byYgYXJndW1lbnQgOiBhcmd1bWVudHMpIHsKKyAgICAgICAgZXhwcmVz
c2lvbi5hcHBlbmRMaXRlcmFsKCIsICIpOworICAgICAgICBhcmd1bWVudC0+d3JpdGVKU09OKGV4
cHJlc3Npb24pOworICAgIH0KKworICAgIGV4cHJlc3Npb24uYXBwZW5kKCddJyk7CisgICAgZXhw
cmVzc2lvbi5hcHBlbmQoJyknKTsKKyAgICByZXR1cm4gZXhwcmVzc2lvbi50b1N0cmluZygpOwor
fQorCitJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OkV2YWx1YXRpb25SZXN1bHQgSW5z
cGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpkaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0U3lu
Yyhjb25zdCBTdHJpbmcmIGNvbW1hbmQsIFZlY3RvcjxSZWY8SlNPTjo6VmFsdWU+PiYmIGFyZ3Vt
ZW50cykKK3sKKyAgICBpZiAobV9zdXNwZW5kZWQpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChFdmFsdWF0aW9uRXJyb3I6OkV4ZWN1dGlvblN1c3BlbmRlZCk7CisKKyAgICByZXR1cm4g
ZXZhbHVhdGVFeHByZXNzaW9uKGV4cHJlc3Npb25Gb3JFdmFsdWF0aW5nQ29tbWFuZChjb21tYW5k
LCBXVEZNb3ZlKGFyZ3VtZW50cykpKTsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXI6OmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3luYyhjb25zdCBTdHJpbmcmIGNv
bW1hbmQsIFZlY3RvcjxSZWY8SlNPTjo6VmFsdWU+PiYmIGFyZ3VtZW50cywgRXZhbHVhdGlvblJl
c3VsdEhhbmRsZXImJiByZXN1bHRIYW5kbGVyKQoreworICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJl
c3Npb24oZXhwcmVzc2lvbkZvckV2YWx1YXRpbmdDb21tYW5kKGNvbW1hbmQsIFdURk1vdmUoYXJn
dW1lbnRzKSksIFdURk1vdmUocmVzdWx0SGFuZGxlcikpOworfQorCit2b2lkIEluc3BlY3RvckZy
b250ZW5kQVBJRGlzcGF0Y2hlcjo6ZGlzcGF0Y2hNZXNzYWdlQXN5bmMoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQoreworICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24obWFrZVN0cmluZygiSW5z
cGVjdG9yRnJvbnRlbmRBUEkuZGlzcGF0Y2hNZXNzYWdlQXN5bmMoIiwgbWVzc2FnZSwgIikiKSk7
Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZU9yUXVl
dWVFeHByZXNzaW9uKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgRXZhbHVhdGlvblJlc3VsdEhh
bmRsZXImJiBvcHRpb25hbFJlc3VsdEhhbmRsZXIpCit7CisgICAgLy8gSWYgdGhlIGZyb250ZW5k
IHBhZ2UgaGFzIGJlZW4gZGVhbGxvY2F0ZWQsIHRoZW4gdGhlcmUgaXMgbm90aGluZyB0byBkby4K
KyAgICBpZiAoIW1fZnJvbnRlbmRQYWdlKSB7CisgICAgICAgIGlmIChvcHRpb25hbFJlc3VsdEhh
bmRsZXIpCisgICAgICAgICAgICBvcHRpb25hbFJlc3VsdEhhbmRsZXIobWFrZVVuZXhwZWN0ZWQo
RXZhbHVhdGlvbkVycm9yOjpDb250ZXh0RGVzdHJveWVkKSk7CisKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIC8vIFNvbWV0aW1lcyB3ZSBnZXQgaGVyZSBieSBzZW5kaW5nIG1lc3NhZ2Vz
IGZvciBldmVudHMgdHJpZ2dlcmVkIGJ5IERPTSBtdXRhdGlvbnMgZWFybGllciBpbiB0aGUgY2Fs
bCBzdGFjay4KKyAgICAvLyBJZiB0aGlzIGlzIHRoZSBjYXNlLCB0aGVuIGl0J3Mgbm90IHNhZmUg
dG8gZXZhbHVhdGUgc2NyaXB0IHN5bmNocm9ub3VzbHksIHNvIGRvIGl0IGxhdGVyLiBUaGlzIG9u
bHkgYWZmZWN0cworICAgIC8vIFdlYktpdDEgYW5kIHNvbWUgbGF5b3V0IHRlc3RzIHRoYXQgdXNl
IGEgc2luZ2xlIHdlYiBwcm9jZXNzIGZvciBib3RoIHRoZSBpbnNwZWN0b3IgYW5kIGluc3BlY3Rl
ZCBwYWdlLgorICAgIGlmICghU2NyaXB0RGlzYWxsb3dlZFNjb3BlOjpJbk1haW5UaHJlYWQ6Omlz
U2NyaXB0QWxsb3dlZCgpKQorICAgICAgICBzdXNwZW5kKFVuc3VzcGVuZFNvb246Olllcyk7CisK
KyAgICBpZiAoIW1fZnJvbnRlbmRMb2FkZWQgfHwgbV9zdXNwZW5kZWQpIHsKKyAgICAgICAgbV9x
dWV1ZWRFdmFsdWF0aW9ucy5hcHBlbmQoc3RkOjptYWtlX3BhaXIoZXhwcmVzc2lvbiwgV1RGTW92
ZShvcHRpb25hbFJlc3VsdEhhbmRsZXIpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gZXZhbHVhdGVFeHByZXNzaW9uKGV4cHJlc3Npb24pOwor
ICAgIGlmIChvcHRpb25hbFJlc3VsdEhhbmRsZXIpCisgICAgICAgIG9wdGlvbmFsUmVzdWx0SGFu
ZGxlcihyZXN1bHQpOworfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6
aW52YWxpZGF0ZVF1ZXVlZEV4cHJlc3Npb25zKCkKK3sKKyAgICBhdXRvIHF1ZXVlZEV2YWx1YXRp
b25zID0gc3RkOjpleGNoYW5nZShtX3F1ZXVlZEV2YWx1YXRpb25zLCB7IH0pOworICAgIGZvciAo
YXV0byYgcGFpciA6IHF1ZXVlZEV2YWx1YXRpb25zKSB7CisgICAgICAgIGF1dG8gcmVzdWx0SGFu
ZGxlciA9IFdURk1vdmUocGFpci5zZWNvbmQpOworICAgICAgICBpZiAocmVzdWx0SGFuZGxlcikK
KyAgICAgICAgICAgIHJlc3VsdEhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoRXZhbHVhdGlvbkVycm9y
OjpDb250ZXh0RGVzdHJveWVkKSk7CisgICAgfQorfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5k
QVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVRdWV1ZWRFeHByZXNzaW9ucygpCit7CisgICAgLy8gSWYg
dGhlIGZyb250ZW5kIHBhZ2UgaGFzIGJlZW4gZGVhbGxvY2F0ZWQsIHRoZW4gdGhlcmUgaXMgbm90
aGluZyB0byBkby4KKyAgICBpZiAoIW1fZnJvbnRlbmRQYWdlKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAobV9xdWV1ZWRFdmFsdWF0aW9ucy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGF1dG8gcXVldWVkRXZhbHVhdGlvbnMgPSBzdGQ6OmV4Y2hhbmdlKG1fcXVldWVkRXZh
bHVhdGlvbnMsIHsgfSk7CisgICAgZm9yIChhdXRvJiBwYWlyIDogcXVldWVkRXZhbHVhdGlvbnMp
IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSBldmFsdWF0ZUV4cHJlc3Npb24ocGFpci5maXJzdCk7
CisgICAgICAgIGlmIChhdXRvIHJlc3VsdEhhbmRsZXIgPSBXVEZNb3ZlKHBhaXIuc2Vjb25kKSkK
KyAgICAgICAgICAgIHJlc3VsdEhhbmRsZXIocmVzdWx0KTsKKyAgICB9Cit9CisKK0pTQzo6SlNW
YWx1ZSBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmV2YWx1YXRlRXhwcmVzc2lvbihj
b25zdCBTdHJpbmcmIGV4cHJlc3Npb24pCit7CisgICAgQVNTRVJUKG1fZnJvbnRlbmRQYWdlKTsK
KyAgICBBU1NFUlQoIW1fc3VzcGVuZGVkKTsKKyAgICBBU1NFUlQobV9xdWV1ZWRFdmFsdWF0aW9u
cy5pc0VtcHR5KCkpOworCisgICAgSlNDOjpTdXNwZW5kRXhjZXB0aW9uU2NvcGUgc2NvcGUoJm1f
ZnJvbnRlbmRQYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkudm0oKSk7CisgICAgcmV0dXJuIG1f
ZnJvbnRlbmRQYWdlLT5tYWluRnJhbWUoKS5zY3JpcHQoKS5ldmFsdWF0ZUlnbm9yaW5nRXhjZXB0
aW9uKFNjcmlwdFNvdXJjZUNvZGUoZXhwcmVzc2lvbikpOworfQorCit2b2lkIEluc3BlY3RvckZy
b250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVFeHByZXNzaW9uRm9yVGVzdGluZyhjb25zdCBT
dHJpbmcmIGV4cHJlc3Npb24pCit7CisgICAgZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbihleHBy
ZXNzaW9uKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDk2YWRlY2ViMzAwZTIwNTRhNWEzZmNkNDg1MmM5MTdkNjk4ZGY5MwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXIuaApAQCAtMCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KKyNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Cisj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQYWdlOworCitjbGFzcyBJbnNwZWN0b3JG
cm9udGVuZEFQSURpc3BhdGNoZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnNwZWN0b3JG
cm9udGVuZEFQSURpc3BhdGNoZXI+IHsKK3B1YmxpYzoKKyAgICBlbnVtIGNsYXNzIEV2YWx1YXRp
b25FcnJvciB7IEV4ZWN1dGlvblN1c3BlbmRlZCwgQ29udGV4dERlc3Ryb3llZCB9OworICAgIHVz
aW5nIEV2YWx1YXRpb25SZXN1bHQgPSBFeHBlY3RlZDxKU0M6OkpTVmFsdWUsIEV2YWx1YXRpb25F
cnJvcj47CisgICAgdXNpbmcgRXZhbHVhdGlvblJlc3VsdEhhbmRsZXIgPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV2YWx1YXRpb25SZXN1bHQpPjsKKworICAgIGVudW0gY2xhc3MgVW5zdXNwZW5k
U29vbiB7IFllcywgTm8gfTsKKyAgICAKKyAgICBXRUJDT1JFX0VYUE9SVCB+SW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyKCk7CisKKyAgICBzdGF0aWMgUmVmPEluc3BlY3RvckZyb250ZW5k
QVBJRGlzcGF0Y2hlcj4gY3JlYXRlKFBhZ2UmIHBhZ2UpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIocGFnZSkpOworICAg
IH0KKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzZXQoKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGZyb250ZW5kTG9hZGVkKCk7CisKKyAgICAvLyBJZiBpdCdzIG5vdCBjdXJyZW50bHkg
c2FmZSB0byBldmFsdWF0ZSBKYXZhU2NyaXB0IG9uIHRoZSBmcm9udGVuZCBwYWdlLCB0aGUKKyAg
ICAvLyBkaXNwYXRjaGVyIHdpbGwgYmVjb21lIHN1c3BlbmRlZCBhbmQgZGlzcGF0Y2ggYW55IHF1
ZXVlZCBldmFsdWF0aW9ucyB3aGVuIHVuc3VzcGVuZGVkLgorICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc3VzcGVuZChVbnN1c3BlbmRTb29uID0gVW5zdXNwZW5kU29vbjo6Tm8pOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgdW5zdXNwZW5kKCk7CisgICAgYm9vbCBpc1N1c3BlbmRlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fc3VzcGVuZGVkOyB9CisKKyAgICBFdmFsdWF0aW9uUmVzdWx0IGRpc3BhdGNo
Q29tbWFuZFdpdGhSZXN1bHRTeW5jKGNvbnN0IFN0cmluZyYgY29tbWFuZCwgVmVjdG9yPFJlZjxK
U09OOjpWYWx1ZT4+JiYgYXJndW1lbnRzID0geyB9KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3luYyhjb25zdCBTdHJpbmcmIGNvbW1hbmQsIFZl
Y3RvcjxSZWY8SlNPTjo6VmFsdWU+PiYmIGFyZ3VtZW50cyA9IHsgfSwgRXZhbHVhdGlvblJlc3Vs
dEhhbmRsZXImJiBoYW5kbGVyID0geyB9KTsKKworICAgIC8vIFVzZWQgdG8gZm9yd2FyZCBtZXNz
YWdlcyBmcm9tIHRoZSBiYWNrZW5kIGNvbm5lY3Rpb24gdG8gdGhlIGZyb250ZW5kLgorICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZGlzcGF0Y2hNZXNzYWdlQXN5bmMoY29uc3QgU3RyaW5nJiBtZXNz
YWdlKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXZhbHVhdGVFeHByZXNzaW9uRm9yVGVz
dGluZyhjb25zdCBTdHJpbmcmKTsKKyAgICAKKyAgICAvLyBDb252ZW5pZW5jZSBtZXRob2QgdG8g
b2J0YWluIGEgSlNHbG9iYWxPYmplY3QgZm9yIHRoZSBmcm9udGVuZCBwYWdlLgorICAgIC8vIFRo
aXMgaXMgdXNlZCB0byBjb252ZXJ0IGJldHdlZW4gQysrIHZhbHVlcyBhbmQgZnJvbnRlbmQgSlND
OjpKU1ZhbHVlIG9iamVjdHMuCisgICAgV0VCQ09SRV9FWFBPUlQgSlNDOjpKU0dsb2JhbE9iamVj
dCogZnJvbnRlbmRHbG9iYWxPYmplY3QoKTsKK3ByaXZhdGU6CisgICAgV0VCQ09SRV9FWFBPUlQg
SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyKFBhZ2UmKTsKKworICAgIHZvaWQgZXZhbHVh
dGVPclF1ZXVlRXhwcmVzc2lvbihjb25zdCBTdHJpbmcmLCBFdmFsdWF0aW9uUmVzdWx0SGFuZGxl
ciYmIGhhbmRsZXIgPSB7IH0pOworICAgIHZvaWQgZXZhbHVhdGVRdWV1ZWRFeHByZXNzaW9ucygp
OworICAgIHZvaWQgaW52YWxpZGF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7CisgICAgSlNDOjpKU1Zh
bHVlIGV2YWx1YXRlRXhwcmVzc2lvbihjb25zdCBTdHJpbmcmKTsKKworICAgIFdlYWtQdHI8UGFn
ZT4gbV9mcm9udGVuZFBhZ2U7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIEV2YWx1YXRp
b25SZXN1bHRIYW5kbGVyPj4gbV9xdWV1ZWRFdmFsdWF0aW9uczsKKyAgICBib29sIG1fZnJvbnRl
bmRMb2FkZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zdXNwZW5kZWQgeyBmYWxzZSB9OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaAppbmRleCA0ZmU4OGI3ZThmOGI4YjA3NGUxNzhk
MDQ1OGExMjBiYmI1Y2VmNWQ4Li4wYTc5ZDg2YjNjNDY5Nzc4MTRhNjhmNGVhYWVkYjhhOGVlOWZm
YmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQuaApAQCAtNDEsNiArNDEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBGbG9hdFJlY3Q7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI7CiAKIGNs
YXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTU2LDYgKzU3LDkgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCB3aW5kb3dPYmplY3RDbGVh
cmVkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmcm9udGVuZExvYWRlZCgpID0gMDsKIAorICAg
IHZpcnR1YWwgdm9pZCBwYWdlUGF1c2VkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYWdlVW5w
YXVzZWQoKSA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBtb3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkgPSAwOwogCkBA
IC0xMDUsMTAgKzEwOSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3Rp
Y0V2ZW50KGNvbnN0IFN0cmluZyYgLyogZXZlbnROYW1lICovLCBjb25zdCBEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudDo6VmFsdWVEaWN0aW9uYXJ5JikgeyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwg
dm9pZCBwYWdlUGF1c2VkKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHBhZ2VVbnBhdXNlZCgpIHsg
fQotCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNlbmRNZXNzYWdlVG9CYWNrZW5k
KGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEluc3BlY3Rv
ckZyb250ZW5kQVBJRGlzcGF0Y2hlciYgZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkgPSAwOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBib29sIGlzVW5kZXJUZXN0KCkgPSAwOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsLmNwcAppbmRleCBjY2U1OTAzNWVkZTU3MGE2NDlhMTI2NzZjMzkzMjJkNDhlODRk
OGY0Li40N2JjZGY3NWQ1ZjU3ODczNzYzNTQ1YTM3MDlhM2Y3NTBkMmJmODZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWwuY3BwCkBAIC0xNTAsNiArMTUwLDcgQEAgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bDo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbChJbnNwZWN0b3JDb250cm9sbGVyKgogICAg
ICwgbV9zZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSkKICAgICAsIG1fZG9ja1NpZGUoRG9ja1Np
ZGU6OlVuZG9ja2VkKQogICAgICwgbV9kaXNwYXRjaFRhc2soSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoVGFzazo6Y3JlYXRlKGluc3BlY3RlZFBhZ2VDb250cm9sbGVyKSkKKyAgICAsIG1fZnJvbnRl
bmRBUElEaXNwYXRjaGVyKEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6Y3JlYXRlKCpm
cm9udGVuZFBhZ2UpKQogewogICAgIG1fZnJvbnRlbmRQYWdlLT5zZXR0aW5ncygpLnNldEFsbG93
RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyh0cnVlKTsKIH0KQEAgLTE4NSwxMCArMTg2LDIwIEBAIHZv
aWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZnJvbnRlbmRMb2FkZWQoKQogICAgIC8v
IFRodXMgaWYgd2UgY2FsbCBjYW5BdHRhY2hXaW5kb3cgZmlyc3Qgd2UgY2FuIGF2b2lkIHRoaXMg
cHJvYmxlbS4gVGhpcyBjaGFuZ2UgZG9lcyBub3QgY2F1c2UgYW55IHJlZ3Jlc3Npb25zIG9uIE1h
Yy4KICAgICBzZXREb2NraW5nVW5hdmFpbGFibGUoIWNhbkF0dGFjaFdpbmRvdygpKTsKICAgICBi
cmluZ1RvRnJvbnQoKTsKLSAgICBtX2Zyb250ZW5kTG9hZGVkID0gdHJ1ZTsKLSAgICBmb3IgKGF1
dG8mIGV2YWx1YXRlIDogbV9ldmFsdWF0ZU9uTG9hZCkKLSAgICAgICAgZXZhbHVhdGVPbkxvYWQo
ZXZhbHVhdGUpOwotICAgIG1fZXZhbHVhdGVPbkxvYWQuY2xlYXIoKTsKKworICAgIG1fZnJvbnRl
bmRBUElEaXNwYXRjaGVyLT5mcm9udGVuZExvYWRlZCgpOworfQorCit2b2lkIEluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWw6OnBhZ2VQYXVzZWQoKQoreworICAgIC8vIE5PVEU6IHBhZ2VQYXVz
ZWQoKSBhbmQgcGFnZVVucGF1c2VkKCkgZG8gbm90IHN1c3BlbmQvdW5zdXNwZW5kIHRoZSBmcm9u
dGVuZCBBUEkgZGlzcGF0Y2hlcgorICAgIC8vIGZvciB0aGlzIHN1YmNsYXNzIG9mIEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50LiBUaGUgaW5zcGVjdGVkIHBhZ2UgYW5kIHRoZSBmcm9udGVuZCBwYWdl
CisgICAgLy8gZXhpc3QgaW4gdGhlIHNhbWUgd2ViIHByb2Nlc3MsIHNvIG1lc3NhZ2VzIG5lZWQg
dG8gYmUgc2VudCBldmVuIHdoaWxlIHRoZSBkZWJ1Z2dlciBpcyBwYXVzZWQuCisgICAgLy8gU3Vz
cGVuZGluZyBoZXJlIHdvdWxkIHN0YWxsIG91dCBsYXRlciBjb21tYW5kcyB0aGF0IHJlc3VtZSB0
aGUgZGVidWdnZXIsIGNhdXNpbmcgdGhlIHRlc3QgdG8gdGltZSBvdXQuCit9CisKK3ZvaWQgSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6cGFnZVVucGF1c2VkKCkKK3sKIH0KIAogVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjp1c2Vy
SW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkgY29uc3QKQEAgLTIyNyw3ICsyMzgsNyBAQCBib29s
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNhbkF0dGFjaFdpbmRvdygpCiAKIHZvaWQg
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RG9ja2luZ1VuYXZhaWxhYmxlKGJvb2wg
dW5hdmFpbGFibGUpCiB7Ci0gICAgZGlzcGF0Y2gobWFrZVN0cmluZygiW1wic2V0RG9ja2luZ1Vu
YXZhaWxhYmxlXCIsICIsIHVuYXZhaWxhYmxlID8gInRydWUiIDogImZhbHNlIiwgJ10nKSk7Cisg
ICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3lu
Yygic2V0RG9ja2luZ1VuYXZhaWxhYmxlIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUodW5hdmFp
bGFibGUpIH0pOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNoYW5n
ZUF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKQEAgLTI5Nyw3ICszMDgsNyBA
QCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldEF0dGFjaGVkV2luZG93KERv
Y2tTaWRlIGRvY2tTaWRlKQogCiAgICAgbV9kb2NrU2lkZSA9IGRvY2tTaWRlOwogCi0gICAgZGlz
cGF0Y2gobWFrZVN0cmluZygiW1wic2V0RG9ja1NpZGVcIiwgXCIiLCBzaWRlLCAiXCJdIikpOwor
ICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0QXN5
bmMoInNldERvY2tTaWRlIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUoc2lkZSkgfSk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6cmVzdG9yZUF0dGFjaGVkV2luZG93
SGVpZ2h0KCkKQEAgLTMxNCw1OSArMzI1LDU3IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRMb2NhbDo6cmVzdG9yZUF0dGFjaGVkV2luZG93SGVpZ2h0KCkKIAogYm9vbCBJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsOjppc0RlYnVnZ2luZ0VuYWJsZWQoKQogewotICAgIGlmIChtX2Zy
b250ZW5kTG9hZGVkKQotICAgICAgICByZXR1cm4gZXZhbHVhdGVBc0Jvb2xlYW4oIltcImlzRGVi
dWdnaW5nRW5hYmxlZFwiXSIpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBhdXRvIHJlc3VsdCA9
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0U3luYygi
aXNEZWJ1Z2dpbmdFbmFibGVkIl9zKTsKKyAgICByZXR1cm4gcmVzdWx0ICYmIHJlc3VsdC52YWx1
ZSgpLnRvQm9vbGVhbihtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZnJvbnRlbmRHbG9iYWxPYmpl
Y3QoKSk7CisKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzZXREZWJ1
Z2dpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKLSAgICBkaXNwYXRjaChtYWtlU3RyaW5nKCJb
XCJzZXREZWJ1Z2dpbmdFbmFibGVkXCIsICIsIGVuYWJsZWQgPyAidHJ1ZSIgOiAiZmFsc2UiLCAn
XScpKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kV2l0aFJl
c3VsdEFzeW5jKCJzZXREZWJ1Z2dpbmdFbmFibGVkIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUo
ZW5hYmxlZCkgfSk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6aXNU
aW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoKQogewotICAgIGlmIChtX2Zyb250ZW5kTG9hZGVkKQot
ICAgICAgICByZXR1cm4gZXZhbHVhdGVBc0Jvb2xlYW4oIltcImlzVGltZWxpbmVQcm9maWxpbmdF
bmFibGVkXCJdIik7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGF1dG8gcmVzdWx0ID0gbV9mcm9u
dGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRTeW5jKCJpc1RpbWVs
aW5lUHJvZmlsaW5nRW5hYmxlZCJfcyk7CisgICAgcmV0dXJuIHJlc3VsdCAmJiByZXN1bHQudmFs
dWUoKS50b0Jvb2xlYW4obV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmZyb250ZW5kR2xvYmFsT2Jq
ZWN0KCkpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldFRpbWVs
aW5lUHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7Ci0gICAgZGlzcGF0Y2gobWFrZVN0
cmluZygiW1wic2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkXCIsICIsIGVuYWJsZWQgPyAidHJ1
ZSIgOiAiZmFsc2UiLCAnXScpKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0
Y2hDb21tYW5kV2l0aFJlc3VsdEFzeW5jKCJzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQiX3Ms
IHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShlbmFibGVkKSB9KTsKIH0KIAogYm9vbCBJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsOjppc1Byb2ZpbGluZ0phdmFTY3JpcHQoKQogewotICAgIGlmICht
X2Zyb250ZW5kTG9hZGVkKQotICAgICAgICByZXR1cm4gZXZhbHVhdGVBc0Jvb2xlYW4oIltcImlz
UHJvZmlsaW5nSmF2YVNjcmlwdFwiXSIpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBhdXRvIHJl
c3VsdCA9IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0
U3luYygiaXNQcm9maWxpbmdKYXZhU2NyaXB0Il9zKTsKKyAgICByZXR1cm4gcmVzdWx0ICYmIHJl
c3VsdC52YWx1ZSgpLnRvQm9vbGVhbihtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZnJvbnRlbmRH
bG9iYWxPYmplY3QoKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6
c3RhcnRQcm9maWxpbmdKYXZhU2NyaXB0KCkKIHsKLSAgICBkaXNwYXRjaCgiW1wic3RhcnRQcm9m
aWxpbmdKYXZhU2NyaXB0XCJdIik7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3Bh
dGNoQ29tbWFuZFdpdGhSZXN1bHRBc3luYygic3RhcnRQcm9maWxpbmdKYXZhU2NyaXB0Il9zKTsK
IH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzdG9wUHJvZmlsaW5nSmF2
YVNjcmlwdCgpCiB7Ci0gICAgZGlzcGF0Y2goIltcInN0b3BQcm9maWxpbmdKYXZhU2NyaXB0XCJd
Iik7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1
bHRBc3luYygic3RvcFByb2ZpbGluZ0phdmFTY3JpcHQiX3MpOwogfQogCiB2b2lkIEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50TG9jYWw6OnNob3dDb25zb2xlKCkKIHsKLSAgICBkaXNwYXRjaCgiW1wi
c2hvd0NvbnNvbGVcIl0iKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hD
b21tYW5kV2l0aFJlc3VsdEFzeW5jKCJzaG93Q29uc29sZSJfcyk7CiB9CiAKIHZvaWQgSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2hvd1Jlc291cmNlcygpCiB7Ci0gICAgZGlzcGF0Y2go
IltcInNob3dSZXNvdXJjZXNcIl0iKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlz
cGF0Y2hDb21tYW5kV2l0aFJlc3VsdEFzeW5jKCJzaG93UmVzb3VyY2VzIl9zKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzaG93TWFpblJlc291cmNlRm9yRnJhbWUo
RnJhbWUqIGZyYW1lKQogewogICAgIFN0cmluZyBmcmFtZUlkID0gbV9pbnNwZWN0ZWRQYWdlQ29u
dHJvbGxlci0+ZW5zdXJlUGFnZUFnZW50KCkuZnJhbWVJZChmcmFtZSk7Ci0gICAgZGlzcGF0Y2go
bWFrZVN0cmluZygiW1wic2hvd01haW5SZXNvdXJjZUZvckZyYW1lXCIsIFwiIiwgZnJhbWVJZCwg
IlwiXSIpKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kV2l0
aFJlc3VsdEFzeW5jKCJzaG93TWFpblJlc291cmNlRm9yRnJhbWUiX3MsIHsgSlNPTjo6VmFsdWU6
OmNyZWF0ZShmcmFtZUlkKSB9KTsKIH0KIAogdW5zaWduZWQgSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRMb2NhbDo6Y29uc3RyYWluZWRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCBwcmVmZXJy
ZWRIZWlnaHQsIHVuc2lnbmVkIHRvdGFsV2luZG93SGVpZ2h0KQpAQCAtMzk0LDQ2ICs0MDMsNiBA
QCB1bnNpZ25lZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjppbnNwZWN0aW9uTGV2ZWwo
KSBjb25zdAogICAgIHJldHVybiBtX2luc3BlY3RlZFBhZ2VDb250cm9sbGVyLT5pbnNwZWN0aW9u
TGV2ZWwoKSArIDE7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6ZGlz
cGF0Y2goY29uc3QgU3RyaW5nJiBzaWduYXR1cmUpCi17Ci0gICAgQVNTRVJUKCFzaWduYXR1cmUu
aXNFbXB0eSgpKTsKLSAgICBBU1NFUlQoc2lnbmF0dXJlLnN0YXJ0c1dpdGgoJ1snKSk7Ci0gICAg
QVNTRVJUKHNpZ25hdHVyZS5lbmRzV2l0aCgnXScpKTsKLQotICAgIGV2YWx1YXRlT25Mb2FkKCJJ
bnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRjaCgiICsgc2lnbmF0dXJlICsgIikiKTsKLX0KLQot
dm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpkaXNwYXRjaE1lc3NhZ2UoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlT2JqZWN0KQotewotICAgIEFTU0VSVCghbWVzc2FnZU9iamVjdC5pc0Vt
cHR5KCkpOwotCi0gICAgZXZhbHVhdGVPbkxvYWQoIkluc3BlY3RvckZyb250ZW5kQVBJLmRpc3Bh
dGNoTWVzc2FnZSgiICsgbWVzc2FnZU9iamVjdCArICIpIik7Ci19Ci0KLXZvaWQgSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6ZGlzcGF0Y2hNZXNzYWdlQXN5bmMoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlT2JqZWN0KQotewotICAgIEFTU0VSVCghbWVzc2FnZU9iamVjdC5pc0VtcHR5KCkpOwot
Ci0gICAgZXZhbHVhdGVPbkxvYWQoIkluc3BlY3RvckZyb250ZW5kQVBJLmRpc3BhdGNoTWVzc2Fn
ZUFzeW5jKCIgKyBtZXNzYWdlT2JqZWN0ICsgIikiKTsKLX0KLQotYm9vbCBJbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsOjpldmFsdWF0ZUFzQm9vbGVhbihjb25zdCBTdHJpbmcmIGV4cHJlc3Np
b24pCi17Ci0gICAgYXV0byYgc3RhdGUgPSAqbWFpbldvcmxkRXhlY1N0YXRlKCZtX2Zyb250ZW5k
UGFnZS0+bWFpbkZyYW1lKCkpOwotICAgIHJldHVybiBtX2Zyb250ZW5kUGFnZS0+bWFpbkZyYW1l
KCkuc2NyaXB0KCkuZXhlY3V0ZVNjcmlwdElnbm9yaW5nRXhjZXB0aW9uKGV4cHJlc3Npb24pLnRv
V1RGU3RyaW5nKCZzdGF0ZSkgPT0gInRydWUiOwotfQotCi12b2lkIEluc3BlY3RvckZyb250ZW5k
Q2xpZW50TG9jYWw6OmV2YWx1YXRlT25Mb2FkKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKLXsK
LSAgICBpZiAoIW1fZnJvbnRlbmRMb2FkZWQpIHsKLSAgICAgICAgbV9ldmFsdWF0ZU9uTG9hZC5h
cHBlbmQoZXhwcmVzc2lvbik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBKU0M6OlN1
c3BlbmRFeGNlcHRpb25TY29wZSBzY29wZSgmbV9mcm9udGVuZFBhZ2UtPmluc3BlY3RvckNvbnRy
b2xsZXIoKS52bSgpKTsKLSAgICBtX2Zyb250ZW5kUGFnZS0+bWFpbkZyYW1lKCkuc2NyaXB0KCku
ZXZhbHVhdGVJZ25vcmluZ0V4Y2VwdGlvbihTY3JpcHRTb3VyY2VDb2RlKGV4cHJlc3Npb24pKTsK
LX0KLQogUGFnZSogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6aW5zcGVjdGVkUGFnZSgp
IGNvbnN0CiB7CiAgICAgaWYgKCFtX2luc3BlY3RlZFBhZ2VDb250cm9sbGVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
LmgKaW5kZXggNDNhM2VjZGM3NjhkMGUwZmU3M2FkZmE2NWVlM2FmM2U3NzEzYjg2OC4uMTE4MWEy
MDk2YzE3NjBkZjIyOTMyNjAxMDZjNWQwOTVjNDFkMzQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oCkBAIC0z
MSw2ICszMSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCIK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpA
QCAtNjYsNiArNjcsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdpbmRv
d09iamVjdENsZWFyZWQoKSBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZyb250ZW5k
TG9hZGVkKCkgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwYWdlUGF1c2VkKCkg
ZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwYWdlVW5wYXVzZWQoKSBmaW5hbDsKIAog
ICAgIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCkgb3ZlcnJpZGUgeyB9CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBtb3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkgZmluYWw7CkBAIC05MSw2ICs5
NCw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBpbnNwZWN0aW9uTGV2
ZWwoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgYmFja2VuZENvbW1hbmRzVVJMKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gU3RyaW5nKCk7IH07CiAKKyAgICBJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXImIGZyb250ZW5kQVBJRGlzcGF0Y2hlcigpIGZpbmFsIHsgcmV0dXJuIG1fZnJvbnRl
bmRBUElEaXNwYXRjaGVyOyB9CisKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhbkF0dGFjaFdp
bmRvdygpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RG9ja2luZ1VuYXZhaWxhYmxlKGJv
b2wpOwogCkBAIC0xMTksMTAgKzEyNCw2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBQ
YWdlKiBpbnNwZWN0ZWRQYWdlKCkgY29uc3Q7CiAgICAgUGFnZSogZnJvbnRlbmRQYWdlKCkgY29u
c3QgeyByZXR1cm4gbV9mcm9udGVuZFBhZ2U7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZGlzcGF0Y2goY29uc3QgU3RyaW5nJiBzaWduYXR1cmUpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZGlzcGF0Y2hNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU9iamVjdCk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBkaXNwYXRjaE1lc3NhZ2VBc3luYyhjb25zdCBTdHJpbmcmIG1lc3Nh
Z2VPYmplY3QpOwotCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHNldEF0dGFjaGVkV2lu
ZG93SGVpZ2h0KHVuc2lnbmVkKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEF0dGFjaGVkV2lu
ZG93V2lkdGgodW5zaWduZWQpID0gMDsKQEAgLTEzMSwxOSArMTMyLDE2IEBAIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hlZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
ID0gMDsKIAogcHJpdmF0ZToKLSAgICBib29sIGV2YWx1YXRlQXNCb29sZWFuKGNvbnN0IFN0cmlu
ZyYgZXhwcmVzc2lvbik7Ci0gICAgdm9pZCBldmFsdWF0ZU9uTG9hZChjb25zdCBTdHJpbmcmIGV4
cHJlc3Npb24pOwotCiAgICAgZnJpZW5kIGNsYXNzIEZyb250ZW5kTWVudVByb3ZpZGVyOworCiAg
ICAgSW5zcGVjdG9yQ29udHJvbGxlciogbV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxlciB7IG51bGxw
dHIgfTsKICAgICBQYWdlKiBtX2Zyb250ZW5kUGFnZSB7IG51bGxwdHIgfTsKICAgICAvLyBUT0RP
KHl1cnlzKTogdGhpcyByZWYgc2hvdWxkbid0IGJlIG5lZWRlZC4KICAgICBSZWZQdHI8SW5zcGVj
dG9yRnJvbnRlbmRIb3N0PiBtX2Zyb250ZW5kSG9zdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6U2V0dGluZ3M+IG1fc2V0dGluZ3M7Ci0gICAgYm9v
bCBtX2Zyb250ZW5kTG9hZGVkIHsgZmFsc2UgfTsKICAgICBEb2NrU2lkZSBtX2RvY2tTaWRlOwot
ICAgIFZlY3RvcjxTdHJpbmc+IG1fZXZhbHVhdGVPbkxvYWQ7CiAgICAgUmVmPEluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaFRhc2s+IG1fZGlzcGF0Y2hUYXNrOworICAgIFJlZjxJbnNwZWN0b3JGcm9u
dGVuZEFQSURpc3BhdGNoZXI+IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDJh
Zjc4ZGJkOWI3MTIxNGZiMmVkZTgxMzMxN2UyNmE3MzQ4MTM4MzAuLjdmNWEwZDEyOGFmOGIyYjc5
MjE1OTY2YzY3Y2U4OWU0YWIwYzAwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKQEAgLTQwOCw3ICs0MDgsNyBAQCB2b2lkIEluc3BlY3RvclN0dWJGcm9udGVuZDo6Y2xvc2VX
aW5kb3coKQogCiB2b2lkIEluc3BlY3RvclN0dWJGcm9udGVuZDo6c2VuZE1lc3NhZ2VUb0Zyb250
ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBkaXNwYXRjaE1lc3NhZ2VBc3luYyht
ZXNzYWdlKTsKKyAgICBmcm9udGVuZEFQSURpc3BhdGNoZXIoKS5kaXNwYXRjaE1lc3NhZ2VBc3lu
YyhtZXNzYWdlKTsKIH0KIAogc3RhdGljIGJvb2wgbWFya2VyVHlwZUZyb20oY29uc3QgU3RyaW5n
JiBtYXJrZXJUeXBlLCBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSYgcmVzdWx0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKaW5kZXggZmZlOTc4N2RlYWU1NDc1MjY3MzZlMjExMDA0MmIwYjlmOGRjMDgwMS4uZTBhYjc0
MzZiYWRjMzQ2Mzc0OTQ2NjMzNDcxOWI0NWVkZmQyYjMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC01NDcs
NyArNTQ3LDYgQEAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVS
YW5nZUhhbmRsZS5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJ
bnNwZWN0b3JVSS5jcHAKIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5jcHAKIFdl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckNsaWVudC5jcHAKLVdlYlByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAKIFdlYlByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXIuY3BwCiBXZWJQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHAKIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYlBh
Z2VJbnNwZWN0b3JUYXJnZXQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA0NDA2ZTliNmU3ZTZmNGEwMzYyZTZjNTZiYjg0OWJmZWJl
YzhjMGM3Li40NjY1Y2NiN2JjNmFmN2E3YTA4OTE1ZmRlNDY3MjZkOTY3ZjVmY2I0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0OTIs
NyArMTQ5Miw2IEBACiAJCUE1NUJBODI1MUJBMjVDRkIwMDdDRDMzRCAvKiBSZW1vdGVXZWJJbnNw
ZWN0b3JQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNTVCQTgyMjFCQTI1QkI4MDA3Q0QzM0QgLyogUmVtb3RlV2ViSW5zcGVjdG9y
UHJveHlNZXNzYWdlcy5oICovOyB9OwogCQlBNTVCQTgyNjFCQTI1Q0ZEMDA3Q0QzM0QgLyogUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU1QkE4MjExQkEyNUJCODAwN0NEMzNEIC8q
IFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQTU1
QkE4MkIxQkEzOEU2MTAwN0NEMzNEIC8qIFdlYkluc3BlY3RvclV0aWxpdGllcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU1QkE4MjgxQkEzOEUxRTAw
N0NEMzNEIC8qIFdlYkluc3BlY3RvclV0aWxpdGllcy5oICovOyB9OwotCQlBNTVCQTgzNTFCQTNF
NzBBMDA3Q0QzM0QgLyogV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTVCQTgzMzFCQTNFNkZB
MDA3Q0QzM0QgLyogV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmggKi87IH07CiAJ
CUE1ODYwRTcxMjMwRjY3RkMwMDQ2MUFBRSAvKiBXZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1ODYw
RTcwMjMwRjY3REUwMDQ2MUFBRSAvKiBXZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuaCAq
LzsgfTsKIAkJQTU4QjZGMDgxOEZDQTczMzAwOENCQTUzIC8qIFdLRmlsZVVwbG9hZFBhbmVsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNThCNkYwNjE4
RkNBNzMzMDA4Q0JBNTMgLyogV0tGaWxlVXBsb2FkUGFuZWwuaCAqLzsgfTsKIAkJQTVDMEYwQTcy
MDAwNjU0RDAwNTM2NTM2IC8qIF9XS05TV2luZG93RXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNUMwRjBBNjIwMDA2NTQ0MDA1MzY1MzYgLyog
X1dLTlNXaW5kb3dFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtNDY3Miw4ICs0NjcxLDYgQEAKIAkJQTU1QkE4MjIxQkEyNUJCODAwN0NE
MzNEIC8qIFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBwYXRo
ID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCUE1NUJBODI3MUJBMzhF
MUUwMDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU1QkE4MjgxQkEzOEUxRTAwN0NEMzNEIC8qIFdlYkluc3Bl
Y3RvclV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJbnNw
ZWN0b3JVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTU1QkE4MzIx
QkEzRTZGQTAwN0NEMzNEIC8qIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNTVCQTgz
MzFCQTNFNkZBMDA3Q0QzM0QgLyogV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkluc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTg2MEU2RjIzMEY2
N0RFMDA0NjFBQUUgLyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFdlYlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxlci5jcHA7IHBhdGggPSBO
ZXR3b3JrL1dlYlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE1ODYwRTcwMjMwRjY3REUwMDQ2MUFBRSAvKiBXZWJSZXNvdXJjZUlu
dGVyY2VwdENvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViUmVzb3VyY2VJbnRlcmNlcHRD
b250cm9sbGVyLmg7IHBhdGggPSBOZXR3b3JrL1dlYlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNThCNkYwNjE4RkNBNzMzMDA4Q0JB
NTMgLyogV0tGaWxlVXBsb2FkUGFuZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV0tGaWxlVXBsb2FkUGFuZWwuaDsgcGF0aCA9IGlvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5l
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODcwNyw4ICs4NzA0LDYgQEAKIAkJ
CQkxQzhFMkExQzEyNzc4MzNGMDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluICov
LAogCQkJCUJDMTExQTU5MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJJbnNwZWN0b3JDbGllbnQuY3Bw
ICovLAogCQkJCUJDMDMyRDZEMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJJbnNwZWN0b3JDbGllbnQu
aCAqLywKLQkJCQlBNTVCQTgzMjFCQTNFNkZBMDA3Q0QzM0QgLyogV2ViSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyLmNwcCAqLywKLQkJCQlBNTVCQTgzMzFCQTNFNkZBMDA3Q0QzM0QgLyog
V2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmggKi8sCiAJCQkJRkVFNDNGRDAxRTY3
QUZDNjAwNzdENkQxIC8qIFdlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXIuY3BwICovLAog
CQkJCUZFRTQzRkQxMUU2N0FGQzYwMDc3RDZEMSAvKiBXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNw
YXRjaGVyLmggKi8sCiAJCQkJRkVFNDNGRDIxRTY3QUZDNjAwNzdENkQxIC8qIFdlYkluc3BlY3Rv
ckludGVycnVwdERpc3BhdGNoZXIubWVzc2FnZXMuaW4gKi8sCkBAIC0xMTQ5OSw3ICsxMTQ5NCw2
IEBACiAJCQkJQkNDRjZBQkQxMkM5MUVGOTAwOEY5QzM1IC8qIFdlYkltYWdlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQzhFMjgyMDEyNzVEMTU0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzAzMkQ4MjEwRjQzNzhEMDA1OEMxNUEgLyogV2ViSW5zcGVjdG9y
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlBNTVCQTgzNTFCQTNFNzBBMDA3Q0QzM0QgLyog
V2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RUU0M0ZEMzFFNjdCMDE4MDA3N0Q2RDEgLyogV2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVEQkRDRDcxRTY4RDIwNTAwQTU5RjhGIC8qIFdlYklu
c3BlY3RvckludGVycnVwdERpc3BhdGNoZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUM4RTJBMzYxMjc3ODUyNDAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
UmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAKaW5kZXggNDdkNmZhMzM4M2M0ZWRiYWYzMTQ4
MGRkNDJiZWM1MDZmODRjODNhZi4uNjc3MWM2ZjBkZTYzMWZjYzE0MmVmNjA4NmZlMGFhYmU3NGM3
ZjY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1v
dGVXZWJJbnNwZWN0b3JVSS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgUmVmPFJlbW90
ZVdlYkluc3BlY3RvclVJPiBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6Y3JlYXRlKFdlYlBhZ2UmIHBh
Z2UpCiAKIFJlbW90ZVdlYkluc3BlY3RvclVJOjpSZW1vdGVXZWJJbnNwZWN0b3JVSShXZWJQYWdl
JiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCi0gICAgLCBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hl
cihwYWdlKQorICAgICwgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIoSW5zcGVjdG9yRnJvbnRlbmRB
UElEaXNwYXRjaGVyOjpjcmVhdGUoKnBhZ2UuY29yZVBhZ2UoKSkpCiB7CiAgICAgV2ViSW5zcGVj
dG9yVUk6OmVuYWJsZUZyb250ZW5kRmVhdHVyZXMoKTsKIH0KQEAgLTY1LDMwICs2NSwyOCBAQCB2
b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjppbml0aWFsaXplKERlYnVnZ2FibGVJbmZvRGF0YSYm
IGRlYnVnZ2FibGVJbmZvLCBjb25zdAogCiAgICAgbV9wYWdlLmNvcmVQYWdlKCktPmluc3BlY3Rv
ckNvbnRyb2xsZXIoKS5zZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudCh0aGlzKTsKIAotICAgIG1f
ZnJvbnRlbmRBUElEaXNwYXRjaGVyLnJlc2V0KCk7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNo
ZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXREb2NraW5nVW5hdmFpbGFibGUiX3MsIHRydWUpOworICAg
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5yZXNldCgpOworICAgIG1fZnJvbnRlbmRBUElEaXNw
YXRjaGVyLT5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0QXN5bmMoInNldERvY2tpbmdVbmF2YWls
YWJsZSJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHRydWUpIH0pOwogfQogCiB2b2lkIFJlbW90
ZVdlYkluc3BlY3RvclVJOjp1cGRhdGVGaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgZmluZFN0cmlu
ZykKIHsKLSAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgSlNPTjo6VmFsdWU6OmVzY2Fw
ZVN0cmluZyhidWlsZGVyLCBmaW5kU3RyaW5nKTsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hl
ci5kaXNwYXRjaENvbW1hbmQoInVwZGF0ZUZpbmRTdHJpbmciX3MsIGJ1aWxkZXIudG9TdHJpbmco
KSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1
bHRBc3luYygidXBkYXRlRmluZFN0cmluZyJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKGZpbmRT
dHJpbmcpIH0pOwogfQogCiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpkaWRTYXZlKGNvbnN0
IFN0cmluZyYgdXJsKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29t
bWFuZCgic2F2ZWRVUkwiX3MsIHVybCk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRp
c3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3luYygic2F2ZWRVUkwiX3MsIHsgSlNPTjo6VmFsdWU6
OmNyZWF0ZSh1cmwpIH0pOwogfQogCiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpkaWRBcHBl
bmQoY29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlz
cGF0Y2hDb21tYW5kKCJhcHBlbmRlZFRvVVJMIl9zLCB1cmwpOworICAgIG1fZnJvbnRlbmRBUElE
aXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0QXN5bmMoImFwcGVuZGVkVG9VUkwi
X3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh1cmwpIH0pOwogfQogCiB2b2lkIFJlbW90ZVdlYklu
c3BlY3RvclVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQog
ewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoTWVzc2FnZUFzeW5jKG1lc3Nh
Z2UpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaE1lc3NhZ2VBc3luYyht
ZXNzYWdlKTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c2VuZE1lc3NhZ2VUb0Jh
Y2tlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMTA3LDEzICsxMDUsMjMgQEAgdm9pZCBS
ZW1vdGVXZWJJbnNwZWN0b3JVSTo6d2luZG93T2JqZWN0Q2xlYXJlZCgpCiAKIHZvaWQgUmVtb3Rl
V2ViSW5zcGVjdG9yVUk6OmZyb250ZW5kTG9hZGVkKCkKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlz
cGF0Y2hlci5mcm9udGVuZExvYWRlZCgpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5m
cm9udGVuZExvYWRlZCgpOwogCi0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hD
b21tYW5kKCJzZXRJc1Zpc2libGUiX3MsIHRydWUpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRj
aGVyLT5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0QXN5bmMoInNldElzVmlzaWJsZSJfcywgeyBK
U09OOjpWYWx1ZTo6Y3JlYXRlKHRydWUpIH0pOwogCiAgICAgYnJpbmdUb0Zyb250KCk7CiB9CiAK
K3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnBhZ2VQYXVzZWQoKQoreworICAgIG1fZnJvbnRl
bmRBUElEaXNwYXRjaGVyLT5zdXNwZW5kKCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9y
VUk6OnBhZ2VVbnBhdXNlZCgpCit7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPnVuc3Vz
cGVuZCgpOworfQorCiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpjaGFuZ2VTaGVldFJlY3Qo
Y29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3Rv
clByb3h5OjpTZXRTaGVldFJlY3QocmVjdCksIG1fcGFnZS5pZGVudGlmaWVyKCkpOwpAQCAtMjQ2
LDcgKzI1NCw3IEBAIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnNldERpYWdub3N0aWNMb2dn
aW5nQXZhaWxhYmxlKGJvb2wgYXZhaWxhYmxlKQogICAgIEFTU0VSVCghYXZhaWxhYmxlIHx8IHN1
cHBvcnRzRGlhZ25vc3RpY0xvZ2dpbmcoKSk7CiAgICAgbV9kaWFnbm9zdGljTG9nZ2luZ0F2YWls
YWJsZSA9IGF2YWlsYWJsZTsKIAotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNo
Q29tbWFuZCgic2V0RGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUiX3MsIG1fZGlhZ25vc3RpY0xv
Z2dpbmdBdmFpbGFibGUpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENv
bW1hbmRXaXRoUmVzdWx0QXN5bmMoInNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlIl9zLCB7
IEpTT046OlZhbHVlOjpjcmVhdGUobV9kaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZSkgfSk7CiB9
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rv
ci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oCmluZGV4IGI0OTllYzVjNTNmYWM2MjdmNWY0N2Vl
ZmJjNGE5MDM4NmNkYTA2YzYuLjAyNWVjOTBhMWQ0YWYxYzlmNTUzZGJjNDJmN2M5MzlmZDQzOTg0
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3Rl
V2ViSW5zcGVjdG9yVUkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1JlbW90ZVdlYkluc3BlY3RvclVJLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkRl
YnVnZ2FibGVJbmZvRGF0YS5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgotI2luY2x1
ZGUgIldlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9J
bnNwZWN0b3JGcm9udGVuZENsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJv
bnRlbmRIb3N0Lmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CkBAIC02Miw2ICs2MiwxMCBAQCBw
dWJsaWM6CiAgICAgLy8gV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQKICAgICB2b2lk
IHdpbmRvd09iamVjdENsZWFyZWQoKSBvdmVycmlkZTsKICAgICB2b2lkIGZyb250ZW5kTG9hZGVk
KCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHBhZ2VQYXVzZWQoKSBvdmVycmlkZTsKKyAgICB2b2lk
IHBhZ2VVbnBhdXNlZCgpIG92ZXJyaWRlOworCiAgICAgdm9pZCBjaGFuZ2VTaGVldFJlY3QoY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdGFydFdpbmRvd0Ry
YWcoKSBvdmVycmlkZTsKICAgICB2b2lkIG1vdmVXaW5kb3dCeShmbG9hdCB4LCBmbG9hdCB5KSBv
dmVycmlkZTsKQEAgLTkyLDYgKzk2LDcgQEAgcHVibGljOgogICAgIHZvaWQgaW5zcGVjdGVkVVJM
Q2hhbmdlZChjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHNob3dDZXJ0aWZpY2F0
ZShjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKSBvdmVycmlkZTsKICAgICB2b2lkIHNl
bmRNZXNzYWdlVG9CYWNrZW5kKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6
Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlciYgZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkg
b3ZlcnJpZGUgeyByZXR1cm4gbV9mcm9udGVuZEFQSURpc3BhdGNoZXI7IH0KIAogI2lmIEVOQUJM
RShJTlNQRUNUT1JfVEVMRU1FVFJZKQogICAgIGJvb2wgc3VwcG9ydHNEaWFnbm9zdGljTG9nZ2lu
ZygpIG92ZXJyaWRlOwpAQCAtMTEwLDcgKzExNSw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
UmVtb3RlV2ViSW5zcGVjdG9yVUkoV2ViUGFnZSYpOwogCiAgICAgV2ViUGFnZSYgbV9wYWdlOwot
ICAgIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlciBtX2Zyb250ZW5kQVBJRGlzcGF0
Y2hlcjsKKyAgICBSZWY8V2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyPiBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsKICAgICBSZWZQdHI8V2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRIb3N0PiBtX2Zyb250ZW5kSG9zdDsKICAgICBEZWJ1Z2dhYmxlSW5mb0RhdGEgbV9kZWJ1
Z2dhYmxlSW5mbzsKICAgICBTdHJpbmcgbV9iYWNrZW5kQ29tbWFuZHNVUkw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5k
QVBJRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDljMzdiMDAzYzFjYjc3MWQ5YjNmNzlkZGE2NTUyYTQ5MDdkN2VkZDcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMTIzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNo
ZXIuaCIKLQotI2luY2x1ZGUgIldlYlBhZ2UuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9TY3JpcHRTdGF0ZS5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyOjpXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIoV2Vi
UGFnZSYgcGFnZSkKLSAgICA6IG1fcGFnZShwYWdlKQotewotfQotCi12b2lkIFdlYkluc3BlY3Rv
ckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6cmVzZXQoKQotewotICAgIG1fZnJvbnRlbmRMb2FkZWQg
PSBmYWxzZTsKLSAgICBtX3N1c3BlbmRlZCA9IGZhbHNlOwotICAgIG1fcXVldWUuY2xlYXIoKTsK
LX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmZyb250ZW5kTG9h
ZGVkKCkKLXsKLSAgICBtX2Zyb250ZW5kTG9hZGVkID0gdHJ1ZTsKLQotICAgIGV2YWx1YXRlUXVl
dWVkRXhwcmVzc2lvbnMoKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXI6OnN1c3BlbmQoKQotewotICAgIEFTU0VSVChtX2Zyb250ZW5kTG9hZGVkKTsKLSAgICBB
U1NFUlQoIW1fc3VzcGVuZGVkKTsKLSAgICBBU1NFUlQobV9xdWV1ZS5pc0VtcHR5KCkpOwotCi0g
ICAgbV9zdXNwZW5kZWQgPSB0cnVlOwotfQotCi12b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlcjo6dW5zdXNwZW5kKCkKLXsKLSAgICBBU1NFUlQobV9zdXNwZW5kZWQpOwotCi0g
ICAgbV9zdXNwZW5kZWQgPSBmYWxzZTsKLQotICAgIGV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMo
KTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmRpc3BhdGNo
Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmQpCi17Ci0gICAgZXZhbHVhdGVPclF1ZXVlRXhw
cmVzc2lvbihtYWtlU3RyaW5nKCJJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRjaChbXCIiLCBj
b21tYW5kLCAiXCJdKSIpKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXI6OmRpc3BhdGNoQ29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmQsIGNvbnN0IFN0cmlu
ZyYgYXJndW1lbnQpCi17Ci0gICAgZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbihtYWtlU3RyaW5n
KCJJbnNwZWN0b3JGcm9udGVuZEFQSS5kaXNwYXRjaChbXCIiLCBjb21tYW5kLCAiXCIsIFwiIiwg
YXJndW1lbnQsICJcIl0pIikpOwotfQotCi12b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlz
cGF0Y2hlcjo6ZGlzcGF0Y2hDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZCwgYm9vbCBhcmd1
bWVudCkKLXsKLSAgICBldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKG1ha2VTdHJpbmcoIkluc3Bl
Y3RvckZyb250ZW5kQVBJLmRpc3BhdGNoKFtcIiIsIGNvbW1hbmQsICJcIiwgIiwgYXJndW1lbnQg
PyAidHJ1ZSIgOiAiZmFsc2UiLCAiXSkiKSk7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyOjpkaXNwYXRjaE1lc3NhZ2VBc3luYyhjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCi17Ci0gICAgZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lvbihtYWtlU3RyaW5nKCJJbnNwZWN0
b3JGcm9udGVuZEFQSS5kaXNwYXRjaE1lc3NhZ2VBc3luYygiLCBtZXNzYWdlLCAiKSIpKTsKLX0K
LQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmV2YWx1YXRlT3JRdWV1
ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQotewotICAgIGlmICghbV9mcm9u
dGVuZExvYWRlZCB8fCBtX3N1c3BlbmRlZCkgewotICAgICAgICBtX3F1ZXVlLmFwcGVuZChleHBy
ZXNzaW9uKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEFTU0VSVChtX3F1ZXVlLmlz
RW1wdHkoKSk7Ci0gICAgQVNTRVJUKCFtX3BhZ2UuY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkuc2Ny
aXB0KCkuaXNQYXVzZWQoKSk7Ci0gICAgbV9wYWdlLmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnNj
cmlwdCgpLmV4ZWN1dGVTY3JpcHRJZ25vcmluZ0V4Y2VwdGlvbihleHByZXNzaW9uKTsKLX0KLQot
dm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmV2YWx1YXRlUXVldWVkRXhw
cmVzc2lvbnMoKQotewotICAgIGlmIChtX3F1ZXVlLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgZm9yIChjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24gOiBtX3F1ZXVlKSB7Ci0gICAg
ICAgIEFTU0VSVCghbV9wYWdlLmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnNjcmlwdCgpLmlzUGF1
c2VkKCkpOwotICAgICAgICBtX3BhZ2UuY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkuc2NyaXB0KCku
ZXhlY3V0ZVNjcmlwdElnbm9yaW5nRXhjZXB0aW9uKGV4cHJlc3Npb24pOwotICAgIH0KLQotICAg
IG1fcXVldWUuY2xlYXIoKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXI6OmV2YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBleHByZXNz
aW9uKQotewotICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24oZXhwcmVzc2lvbik7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNw
YXRjaGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiNjkwZTRhNDE2MDdhZGYx
MDM0Y2I4ZTQ1YTBmYjBmNWQ2NWZkNjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL0RlcXVl
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1jbGFzcyBXZWJQYWdlOwotCi1jbGFzcyBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3Bh
dGNoZXIgewotcHVibGljOgotICAgIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcihX
ZWJQYWdlJik7Ci0KLSAgICB2b2lkIHJlc2V0KCk7Ci0gICAgdm9pZCBmcm9udGVuZExvYWRlZCgp
OwotCi0gICAgdm9pZCBzdXNwZW5kKCk7Ci0gICAgdm9pZCB1bnN1c3BlbmQoKTsKLQotICAgIHZv
aWQgZGlzcGF0Y2hDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZCk7Ci0gICAgdm9pZCBkaXNw
YXRjaENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50
KTsKLSAgICB2b2lkIGRpc3BhdGNoQ29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmQsIGJvb2wg
YXJndW1lbnQpOwotICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlQXN5bmMoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKTsKLQotICAgIHZvaWQgZXZhbHVhdGVFeHByZXNzaW9uRm9yVGVzdGluZyhjb25zdCBT
dHJpbmcmKTsKLXByaXZhdGU6Ci0gICAgdm9pZCBldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKGNv
bnN0IFN0cmluZyYpOwotICAgIHZvaWQgZXZhbHVhdGVRdWV1ZWRFeHByZXNzaW9ucygpOwotCi0g
ICAgV2ViUGFnZSYgbV9wYWdlOwotICAgIERlcXVlPFN0cmluZz4gbV9xdWV1ZTsKLSAgICBib29s
IG1fZnJvbnRlbmRMb2FkZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9zdXNwZW5kZWQgeyBmYWxz
ZSB9OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IGQ3OWJmOGJj
N2JkYTcwMGRkZWY2MjQwZWRkNDllYjI0ZDM0NzJhYjQuLjgyODA5YWRiNmRlZTZhNTViYjk1MjY3
ODM1MTM4YWMyMzY3OTVlNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgV2Vi
SW5zcGVjdG9yVUk6OmVuYWJsZUZyb250ZW5kRmVhdHVyZXMoKQogCiBXZWJJbnNwZWN0b3JVSTo6
V2ViSW5zcGVjdG9yVUkoV2ViUGFnZSYgcGFnZSkKICAgICA6IG1fcGFnZShwYWdlKQotICAgICwg
bV9mcm9udGVuZEFQSURpc3BhdGNoZXIocGFnZSkKKyAgICAsIG1fZnJvbnRlbmRBUElEaXNwYXRj
aGVyKEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6Y3JlYXRlKCpwYWdlLmNvcmVQYWdl
KCkpKQogICAgICwgbV9kZWJ1Z2dhYmxlSW5mbyhEZWJ1Z2dhYmxlSW5mb0RhdGE6OmVtcHR5KCkp
CiB7CiAgICAgV2ViSW5zcGVjdG9yVUk6OmVuYWJsZUZyb250ZW5kRmVhdHVyZXMoKTsKQEAgLTcy
LDcgKzcyLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSTo6ZXN0YWJsaXNoQ29ubmVjdGlvbihXZWJQ
YWdlUHJveHlJZGVudGlmaWVyIGluc3BlY3RlZFBhZ2VJZGUKICAgICBtX3VuZGVyVGVzdCA9IHVu
ZGVyVGVzdDsKICAgICBtX2luc3BlY3Rpb25MZXZlbCA9IGluc3BlY3Rpb25MZXZlbDsKIAotICAg
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLnJlc2V0KCk7CisgICAgbV9mcm9udGVuZEFQSURpc3Bh
dGNoZXItPnJlc2V0KCk7CiAKICAgICBtX2Zyb250ZW5kQ29udHJvbGxlciA9ICZtX3BhZ2UuY29y
ZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpOwogICAgIG1fZnJvbnRlbmRDb250cm9sbGVy
LT5zZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudCh0aGlzKTsKQEAgLTEyMSw3ICsxMjEsNyBAQCB2
b2lkIFdlYkluc3BlY3RvclVJOjp3aW5kb3dPYmplY3RDbGVhcmVkKCkKIAogdm9pZCBXZWJJbnNw
ZWN0b3JVSTo6ZnJvbnRlbmRMb2FkZWQoKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVy
LmZyb250ZW5kTG9hZGVkKCk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmZyb250ZW5k
TG9hZGVkKCk7CiAKICAgICAvLyBUZWxsIHRoZSBuZXcgZnJvbnRlbmQgYWJvdXQgdGhlIGN1cnJl
bnQgZG9jayBzdGF0ZS4gSWYgdGhlIHdpbmRvdyBvYmplY3QKICAgICAvLyBjbGVhcmVkIGR1ZSB0
byBhIHJlbG9hZCwgdGhlIGRvY2sgc3RhdGUgd29uJ3QgYmUgcmVzZW50IGZyb20gVUlQcm9jZXNz
LgpAQCAtMjQ0LDI4ICsyNDQsMjYgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSTo6c2V0RG9ja1NpZGUo
RG9ja1NpZGUgZG9ja1NpZGUpCiAKICAgICBtX2RvY2tTaWRlID0gZG9ja1NpZGU7CiAKLSAgICBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNldERvY2tTaWRlIl9zLCBT
dHJpbmcoZG9ja1NpZGVTdHJpbmcpKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlz
cGF0Y2hDb21tYW5kV2l0aFJlc3VsdEFzeW5jKCJzZXREb2NrU2lkZSJfcywgeyBKU09OOjpWYWx1
ZTo6Y3JlYXRlKFN0cmluZyhkb2NrU2lkZVN0cmluZykpIH0pOwogfQogCiB2b2lkIFdlYkluc3Bl
Y3RvclVJOjpzZXREb2NraW5nVW5hdmFpbGFibGUoYm9vbCB1bmF2YWlsYWJsZSkKIHsKICAgICBt
X2RvY2tpbmdVbmF2YWlsYWJsZSA9IHVuYXZhaWxhYmxlOwogCi0gICAgbV9mcm9udGVuZEFQSURp
c3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXREb2NraW5nVW5hdmFpbGFibGUiX3MsIHVuYXZh
aWxhYmxlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kV2l0
aFJlc3VsdEFzeW5jKCJzZXREb2NraW5nVW5hdmFpbGFibGUiX3MsIHsgSlNPTjo6VmFsdWU6OmNy
ZWF0ZSh1bmF2YWlsYWJsZSkgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNldElzVmlz
aWJsZShib29sIHZpc2libGUpCiB7CiAgICAgbV9pc1Zpc2libGUgPSB2aXNpYmxlOwogCi0gICAg
bV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hDb21tYW5kKCJzZXRJc1Zpc2libGUiX3Ms
IHZpc2libGUpOworICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmRX
aXRoUmVzdWx0QXN5bmMoInNldElzVmlzaWJsZSJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHZp
c2libGUpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjp1cGRhdGVGaW5kU3RyaW5nKGNv
bnN0IFN0cmluZyYgZmluZFN0cmluZykKIHsKLSAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0g
ICAgSlNPTjo6VmFsdWU6OmVzY2FwZVN0cmluZyhidWlsZGVyLCBmaW5kU3RyaW5nKTsKLSAgICBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInVwZGF0ZUZpbmRTdHJpbmci
X3MsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRp
c3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3luYygidXBkYXRlRmluZFN0cmluZyJfcywgeyBKU09O
OjpWYWx1ZTo6Y3JlYXRlKGZpbmRTdHJpbmcpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJ
OjpjaGFuZ2VBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCBoZWlnaHQpCkBAIC0zMjUsNzMg
KzMyMyw3MyBAQCB2b2lkIFdlYkluc3BlY3RvclVJOjpzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWls
YWJsZShib29sIGF2YWlsYWJsZSkKICAgICBBU1NFUlQoIWF2YWlsYWJsZSB8fCBzdXBwb3J0c0Rp
YWdub3N0aWNMb2dnaW5nKCkpOwogICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUgPSBh
dmFpbGFibGU7CiAKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQo
InNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlIl9zLCBtX2RpYWdub3N0aWNMb2dnaW5nQXZh
aWxhYmxlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kV2l0
aFJlc3VsdEFzeW5jKCJzZXREaWFnbm9zdGljTG9nZ2luZ0F2YWlsYWJsZSJfcywgeyBKU09OOjpW
YWx1ZTo6Y3JlYXRlKG1fZGlhZ25vc3RpY0xvZ2dpbmdBdmFpbGFibGUpIH0pOwogfQogI2VuZGlm
CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNob3dDb25zb2xlKCkKIHsKLSAgICBtX2Zyb250ZW5k
QVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNob3dDb25zb2xlIl9zKTsKKyAgICBtX2Zy
b250ZW5kQVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdEFzeW5jKCJzaG93
Q29uc29sZSJfcyk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNob3dSZXNvdXJjZXMoKQog
ewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2hvd1Jlc291
cmNlcyJfcyk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFdp
dGhSZXN1bHRBc3luYygic2hvd1Jlc291cmNlcyJfcyk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9y
VUk6OnNob3dNYWluUmVzb3VyY2VGb3JGcmFtZShjb25zdCBTdHJpbmcmIGZyYW1lSWRlbnRpZmll
cikKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNob3dN
YWluUmVzb3VyY2VGb3JGcmFtZSJfcywgZnJhbWVJZGVudGlmaWVyKTsKKyAgICBtX2Zyb250ZW5k
QVBJRGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdEFzeW5jKCJzaG93TWFpblJl
c291cmNlRm9yRnJhbWUiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZShmcmFtZUlkZW50aWZpZXIp
IH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpzdGFydFBhZ2VQcm9maWxpbmcoKQogewot
ICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0VGltZWxpbmVQ
cm9maWxpbmdFbmFibGVkIl9zLCB0cnVlKTsKKyAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+
ZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdEFzeW5jKCJzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJs
ZWQiX3MsIHsgSlNPTjo6VmFsdWU6OmNyZWF0ZSh0cnVlKSB9KTsKIH0KIAogdm9pZCBXZWJJbnNw
ZWN0b3JVSTo6c3RvcFBhZ2VQcm9maWxpbmcoKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRj
aGVyLmRpc3BhdGNoQ29tbWFuZCgic2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkIl9zLCBmYWxz
ZSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1
bHRBc3luYygic2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkIl9zLCB7IEpTT046OlZhbHVlOjpj
cmVhdGUoZmFsc2UpIH0pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpzdGFydEVsZW1lbnRT
ZWxlY3Rpb24oKQogewotICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoQ29tbWFu
ZCgic2V0RWxlbWVudFNlbGVjdGlvbkVuYWJsZWQiX3MsIHRydWUpOworICAgIG1fZnJvbnRlbmRB
UElEaXNwYXRjaGVyLT5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0QXN5bmMoInNldEVsZW1lbnRT
ZWxlY3Rpb25FbmFibGVkIl9zLCB7IEpTT046OlZhbHVlOjpjcmVhdGUodHJ1ZSkgfSk7CiB9CiAK
IHZvaWQgV2ViSW5zcGVjdG9yVUk6OnN0b3BFbGVtZW50U2VsZWN0aW9uKCkKIHsKLSAgICBtX2Zy
b250ZW5kQVBJRGlzcGF0Y2hlci5kaXNwYXRjaENvbW1hbmQoInNldEVsZW1lbnRTZWxlY3Rpb25F
bmFibGVkIl9zLCBmYWxzZSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNo
Q29tbWFuZFdpdGhSZXN1bHRBc3luYygic2V0RWxlbWVudFNlbGVjdGlvbkVuYWJsZWQiX3MsIHsg
SlNPTjo6VmFsdWU6OmNyZWF0ZShmYWxzZSkgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6
OmRpZFNhdmUoY29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNo
ZXIuZGlzcGF0Y2hDb21tYW5kKCJzYXZlZFVSTCJfcywgdXJsKTsKKyAgICBtX2Zyb250ZW5kQVBJ
RGlzcGF0Y2hlci0+ZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdEFzeW5jKCJzYXZlZFVSTCJfcywg
eyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHVybCkgfSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6
OmRpZEFwcGVuZChjb25zdCBTdHJpbmcmIHVybCkKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0
Y2hlci5kaXNwYXRjaENvbW1hbmQoImFwcGVuZGVkVG9VUkwiX3MsIHVybCk7CisgICAgbV9mcm9u
dGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3luYygiYXBwZW5k
ZWRUb1VSTCJfcywgeyBKU09OOjpWYWx1ZTo6Y3JlYXRlKHVybCkgfSk7CiB9CiAKIHZvaWQgV2Vi
SW5zcGVjdG9yVUk6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
CiB7Ci0gICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0Y2hNZXNzYWdlQXN5bmMobWVz
c2FnZSk7CisgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXItPmRpc3BhdGNoTWVzc2FnZUFzeW5j
KG1lc3NhZ2UpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpldmFsdWF0ZUluRnJvbnRlbmRG
b3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKIHsKLSAgICBtX2Zyb250ZW5kQVBJ
RGlzcGF0Y2hlci5ldmFsdWF0ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKGV4cHJlc3Npb24pOworICAg
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLT5ldmFsdWF0ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKGV4
cHJlc3Npb24pOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpwYWdlUGF1c2VkKCkKIHsKLSAg
ICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci5zdXNwZW5kKCk7CisgICAgbV9mcm9udGVuZEFQSURp
c3BhdGNoZXItPnN1c3BlbmQoKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSTo6cGFnZVVucGF1
c2VkKCkKIHsKLSAgICBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlci51bnN1c3BlbmQoKTsKKyAgICBt
X2Zyb250ZW5kQVBJRGlzcGF0Y2hlci0+dW5zdXNwZW5kKCk7CiB9CiAKIHZvaWQgV2ViSW5zcGVj
dG9yVUk6OnNlbmRNZXNzYWdlVG9CYWNrZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaApp
bmRleCAwMjZhNzEyYTA4OTlkMDQ1NWYzMTg1YWI3OTc2YzE0MDA1ZDhlYmFiLi5hNmVlNzEzMzkz
OWVmMmEwNGI2Yjg2MmIyOGU4MjE3ZmUyMGRiMWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oCkBAIC0yNyw5ICsyNyw5IEBA
CiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRGVidWdnYWJsZUluZm9EYXRh
LmgiCi0jaW5jbHVkZSAiV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVj
dG9yRGVidWdnYWJsZVR5cGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5k
QVBJRGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5kSG9zdC5oPgogCkBAIC0x
NDIsNiArMTQyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9C
YWNrZW5kKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6Okluc3BlY3RvckZy
b250ZW5kQVBJRGlzcGF0Y2hlciYgZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkgZmluYWwgeyByZXR1
cm4gbV9mcm9udGVuZEFQSURpc3BhdGNoZXI7IH0KIAogICAgIHZvaWQgcGFnZVBhdXNlZCgpIG92
ZXJyaWRlOwogICAgIHZvaWQgcGFnZVVucGF1c2VkKCkgb3ZlcnJpZGU7CkBAIC0xNTIsNyArMTUz
LDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJJbnNwZWN0b3JVSShXZWJQYWdlJik7CiAK
ICAgICBXZWJQYWdlJiBtX3BhZ2U7Ci0gICAgV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRj
aGVyIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyOworICAgIFJlZjxXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZEFQSURpc3BhdGNoZXI+IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyOwogICAgIFJlZlB0
cjxXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q+IG1fZnJvbnRlbmRIb3N0OwogCiAgICAg
Ly8gS2VlcCBhIHBvaW50ZXIgdG8gdGhlIGZyb250ZW5kJ3MgaW5zcGVjdG9yIGNvbnRyb2xsZXIg
cmF0aGVyIHRoYW4gZ29pbmcgdGhyb3VnaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA0ZjE5
YTBlZDZjZDI0YWMzMzQzOTE4ZmJiYjliM2Y2MjY3YWMxMDk3Li4yNDQ1MmI2ODJmNDkzZjA0MDNk
Y2ZlNjFiY2FhNzIwYzZlNGZhMDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTAzLDYg
KzEwMyw4IEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCisjaW5jbHVkZSAiV2Vi
QXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJBdXRo
blByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrV2ViQXV0aGVudGlj
YXRpb25Db25maWd1cmF0aW9uLmg+CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9jZi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnRDRi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L2NmL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNw
cAppbmRleCA3Yjg2OTgxYTNmNDhlNTBmOGIzY2NhYzM3MDY5MTdkNGFmMWZkYmQ2Li4xNmRjMTQ0
ZGNjOThlMjU2YzA1MzI2N2Y1MmQxZDNlNGU0ODk1ODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L2NmL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudENGLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2NmL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVu
dENGLmNwcApAQCAtOTYsNyArOTYsNyBAQCBzdGF0aWMgdm9pZCBkZWxldGVTZXR0aW5nKGNvbnN0
IFN0cmluZyYga2V5KQogCiB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6c2VuZE1lc3NhZ2VUb0Zy
b250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBtX2Zyb250ZW5kQ2xpZW50LT5k
aXNwYXRjaE1lc3NhZ2VBc3luYyhtZXNzYWdlKTsKKyAgICBtX2Zyb250ZW5kQ2xpZW50LT5mcm9u
dGVuZEFQSURpc3BhdGNoZXIoKS5kaXNwYXRjaE1lc3NhZ2VBc3luYyhtZXNzYWdlKTsKIH0KIAog
Ym9vbCBXZWJJbnNwZWN0b3JDbGllbnQ6Omluc3BlY3RvckF0dGFjaERpc2FibGVkKCkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBkZjExMDBmZDE4Y2JhNDAzNTMwODU2NGJjNzNjNTYyZjU3Y2FkMzM1Li5hMTMxNGFlODQyYTY4
ODA1Y2JhMTExYjdkMTZmNmQ4ODQ2YzFhMDNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAt
MTAtMjkgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogbW92ZSBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIgdG8gV2ViQ29yZSwgY2xl
YW4gdXAgdXNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE3ODM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDM4NDQwNz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9kb20vZG9t
LXJlbW92ZS1ldmVudHMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL3JlbW92ZS1tdWx0
aXBsZS1ub2Rlcy5odG1sOgorICAgICAgICBUaGUgb3JkZXIgb2YgZXZlbnRzIHJlY2VpdmVkIGhh
cyBjaGFuZ2VkIHNsaWdodGx5IGR1ZSB0byB0aGUgbmV3IGF1dG8tc3VzcGVuZCBiZWhhdmlvcgor
ICAgICAgICBpbiBJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuIFJlbW92ZSBldmVudCBo
YW5kbGVycyB3aGVuIHRoZSB0ZXN0IGlzIGNvbXBsZXRlIHRvIAorICAgICAgICBlbnN1cmUgdGhh
dCBldmVudHMgd2hpY2ggYXJyaXZlIGFmdGVyIHRoZSB0ZXN0IGhhcyBmaW5pc2hlZCBkbyBub3Qg
c3RvbXAgb24gdGhlIGV4cGVjdGVkIHJlc3VsdHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVi
dWdnZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1lLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL2hpdC1icmVha3BvaW50LWZyb20tY29uc29sZS5odG1sOgorICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51ZS5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50Lmh0bWw6CisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwuaHRtbDoKKyAg
ICAgICAgU29tZSB0ZXN0cyBzZWVtIHRvIGNhbGwgUHJvdG9jb2xUZXN0LmNvbXBsZXRlVGVzdCgp
IGZyb20gdGhlIGhhbmRsZXIgb2YgRGVidWdnZXIucGF1c2VkLCB3aGVuCisgICAgICAgIHRoZSBk
ZWJ1Z2dlciBpcyBzdGlsbCBwYXVzZWQuIFRoaXMgY2F1c2VzIHRpbWVvdXRzIGFmdGVyIHRoaXMg
cmVmYWN0b3JpbmcsIHNpbmNlIG5vdCByZXN1bWluZyBtZWFucyB0aGF0CisgICAgICAgIHdlJ2xs
IGdldCBzdHVjayBpbiB0aGUgZGVidWdnZXIncyBuZXN0ZWQgcnVuIGxvb3AgYW5kIG5ldmVyIHJl
dHVybi4KKwogMjAyMC0xMC0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlc3luYyB3ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzIHRlc3RzIGZyb20gdXBz
dHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9wcm90b2NvbC10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMKaW5kZXggODMxYTYxZjY3ODVlNDQ4OGIxMmQ3ZGZk
ZWYxZmU2NmQzNzU1MTIyMi4uZjIwZWQ5YjJlM2ZiMzQ2Y2NkZjhlZmZiNTA4YWM4MzIyOWNmOTg4
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
L3Byb3RvY29sLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMKQEAgLTY1LDExICs2NSwxMiBAQCBUZXN0UGFnZS5s
b2cgPSB3aW5kb3cubG9nID0gZnVuY3Rpb24odGV4dCkKIAogVGVzdFBhZ2UuY2xvc2VUZXN0ID0g
d2luZG93LmNsb3NlVGVzdCA9IGZ1bmN0aW9uKCkKIHsKLSAgICB3aW5kb3cuaW50ZXJuYWxzLmNs
b3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgpOwotCiAgICAgLy8gVGhpcyBjb2RlIG1pZ2h0IGJl
IGV4ZWN1dGVkIHdoaWxlIHRoZSBkZWJ1Z2dlciBpcyBzdGlsbCBydW5uaW5nIHRocm91Z2ggYSBz
dGFjayBiYXNlZCBFdmVudExvb3AuCiAgICAgLy8gVXNlIGEgc2V0VGltZW91dCB0byBkZWZlciB0
byBhIGNsZWFuIHN0YWNrIGJlZm9yZSBsZXR0aW5nIHRoZSB0ZXN0UnVubmVyIGxvYWQgdGhlIG5l
eHQgdGVzdC4KLSAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
IH0sIDApOworICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LmNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgpOworICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICB9LCAwKTsKIH07CiAKIFRlc3RQYWdlLnJ1blRlc3QgPSB3aW5kb3cucnVu
VGVzdCA9IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUuaHRtbAppbmRleCBlN2U5N2U4MTIz
ZWQxZDViMmE1OGY2MDIwZjNjOTMwZTJlOGI5ZWQ0Li42N2UwOTQyZTdhMjJiM2IxN2Y0MDE2MjE4
ZWE4ZWRmYmU1MTY4ZDAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1sCkBAIC0zMiw2ICszMiw4
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsi
RGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgIHsKICAgICAg
ICAgUHJvdG9jb2xUZXN0LmxvZygiSGl0IEJyZWFrcG9pbnQhIik7CisgICAgICAgIEluc3BlY3Rv
clByb3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5kaXNhYmxlIik7CisKICAgICAgICAgdmFy
IGZ1bmN0aW9uTmFtZXMgPSBbIF07CiAgICAgICAgIHZhciBpOwogICAgICAgICBmb3IgKGkgPSAw
OyBpIDwgMzsgaSsrKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvY2FsbC1mcmFtZS10aGlzLWhvc3QuaHRtbAppbmRleCA0ZjcxODUyOTQwYjM4ZDczNmNmYWUw
OGM0ZmU5MGViNDg5YTM2NTc4Li5lNzNmODg4NjJhZTQ2Y2QyZGE1YjM4MzA3YTllODQ4MjYyMmM3
YzdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFt
ZS10aGlzLWhvc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2Fs
bC1mcmFtZS10aGlzLWhvc3QuaHRtbApAQCAtMzIsNiArMzIsOCBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNlZCJdID0g
ZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CiAgICAgICAgIFByb3RvY29sVGVzdC5sb2co
IkhpdCBCcmVha3BvaW50ISIpOworICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFu
ZCgiRGVidWdnZXIuZGlzYWJsZSIpOworCiAgICAgICAgIHZhciB0aGlzVmFsdWVzID0gWyBdOwog
ICAgICAgICB2YXIgaTsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IDM7IGkrKykKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9oaXQtYnJlYWtwb2ludC1mcm9tLWNv
bnNvbGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9oaXQtYnJlYWtwb2lu
dC1mcm9tLWNvbnNvbGUuaHRtbAppbmRleCA1MjFjOWU0MTc5ZTgyMGYzZWJiZGI4ZTVlMzZkOGZh
ZTkxODZjN2E3Li4xNTQ2MmE0NzBkMjc5ZjYzOGYyYzBhOGVkZjFjYzNiNWU2NDNkMzJlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvaGl0LWJyZWFrcG9pbnQtZnJv
bS1jb25zb2xlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2hpdC1i
cmVha3BvaW50LWZyb20tY29uc29sZS5odG1sCkBAIC0zMCw2ICszMCw4IEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2Vk
Il0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgIHsKICAgICAgICAgUHJvdG9jb2xUZXN0
LmxvZygiSGl0IEJyZWFrcG9pbnQhIik7CisgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRD
b21tYW5kKCJEZWJ1Z2dlci5kaXNhYmxlIik7CisKICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygi
UEFTUyIpOwogICAgICAgICBQcm90b2NvbFRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0
b0NvbnRpbnVlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtw
b2ludC1hdXRvQ29udGludWUuaHRtbAppbmRleCAxZmVkNjdjNDZmZDViOTQyMzk4NjE5OTM5YjA0
YTA3MDBjZmY1OTUyLi4wZjVhMzE1NGIzNzEzN2Y3OWU0NjZkOTdiNDAzNDYzOGY4NjNiNzU0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1h
dXRvQ29udGludWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0
QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbApAQCAtNDQsNiArNDQsNyBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNl
ZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CiAgICAgICAgIFByb3RvY29sVGVz
dC5sb2coIkhpdCBCcmVha3BvaW50ISIpOworICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5k
Q29tbWFuZCgiRGVidWdnZXIuZGlzYWJsZSIpOwogCiAgICAgICAgIGlmICghYWxsb3dlZFRvSGl0
QnJlYWtwb2ludCkgewogICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogc2hvdWxk
IG5vdCBoYXZlIGhpdCBicmVha3BvaW50LiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4uaHRtbAppbmRleCBmYjYzNTMx
MjI5OGQ2ZmE2OTQ5NWUxMTJhYTFlMzhhMzY5ZTZiY2Q0Li43ODY5MmZkYTAwY2Q3NDYxM2UyMTdm
N2JmMTVlYmFiOTQyOGU5YjZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4uaHRtbApAQCAtMzcsNiArMzcsOCBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIkV2YWx1dGVkIHZh
bHVlIG9mIGBhYCAoZXhwZWN0aW5nIG51bWJlciAxKSB3YXM6ICIgKyBKU09OLnN0cmluZ2lmeSht
ZXNzYWdlT2JqZWN0LnJlc3VsdC5yZXN1bHQpKTsKICAgICAgICAgICAgIEluc3BlY3RvclByb3Rv
Y29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZyYW1lIiwge2NhbGxGcmFt
ZUlkOiBjYWxsRnJhbWVJZGVudGlmaWVyLCBleHByZXNzaW9uOiAiYiJ9LCBmdW5jdGlvbihtZXNz
YWdlT2JqZWN0KSB7CiAgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRXZhbHV0ZWQg
dmFsdWUgb2YgYGJgIChleHBlY3RpbmcgdW5kZWZpbmVkKSB3YXM6ICIgKyBKU09OLnN0cmluZ2lm
eShtZXNzYWdlT2JqZWN0LnJlc3VsdC5yZXN1bHQpKTsKKworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5kaXNhYmxlIik7CiAgICAgICAgICAg
ICAgICAgUHJvdG9jb2xUZXN0LmNvbXBsZXRlVGVzdCgpOwogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJy
ZWFrcG9pbnQtY29uZGl0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi1leHBlY3RlZC50eHQKaW5kZXggYTUyZTZi
OTBlZGJjYjc2MGRiMjhiN2ZlYzQxM2JjYzc5MmRkMzJmMC4uNWM0ZGQ3ZWRmOTVlMjVlMTZiMWY0
MDkxMDdmMzgzZDA3ZWYyMmMyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24tZXhwZWN0ZWQu
dHh0CkBAIC0xNiw0ICsxNiw1IEBAIEhpdCBCcmVha3BvaW50IQogRXZhbHV0ZWQgdmFsdWUgb2Yg
YGFgIChleHBlY3RpbmcgbnVtYmVyIDQpIHdhczogeyJ0eXBlIjoibnVtYmVyIiwidmFsdWUiOjQs
ImRlc2NyaXB0aW9uIjoiNCJ9CiBFdmFsdXRlZCB2YWx1ZSBvZiBgYmAgKGV4cGVjdGluZyBudW1i
ZXIgNykgd2FzOiB7InR5cGUiOiJudW1iZXIiLCJ2YWx1ZSI6NywiZGVzY3JpcHRpb24iOiI3In0K
IFBBU1M6IGhpdCBicmVha3BvaW50cyB3aXRoIGV4cGVjdGVkIHZhbHVlcworVGVzdCBpcyBjb21w
bGV0ZSwgZGlzYWJsaW5nIGJyZWFrcG9pbnRzLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24uaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi5odG1sCmluZGV4
IGMyYTcyOTU2YTNlNTI3ZDIyZDQxYmI4MDQwODQ5ZGUwNzBhMDBlMTkuLjZiMTQ3Yjg5M2YxMmY5
ZDMxY2YzMTUxZTc4OTI4MTA1MWVlMzVkNGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi5odG1sCkBAIC0z
LDYgKzMsNyBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
YnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgorCiBmdW5jdGlvbiB0ZXN0KCkKIHsK
ICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30p
OwpAQCAtMTEsNiArMTIsMTcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgdmFyIGluQnJlYWtwb2lu
dCA9IGZhbHNlOwogICAgIHZhciBicmVha3BvaW50VHJpZ2dlcmVkID0gMDsKIAorICAgIGZ1bmN0
aW9uIGRpc2FibGVEZWJ1Z2dlckFuZENvbXBsZXRlVGVzdCgpCisgICAgeworICAgICAgICBkZWxl
dGUgSW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQi
XTsKKyAgICAgICAgZGVsZXRlIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRGVidWdn
ZXIucGF1c2VkIl07CisgICAgICAgIGRlbGV0ZSBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRs
ZXJbIkRlYnVnZ2VyLnJlc3VtZWQiXTsKKworICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5k
Q29tbWFuZCgiRGVidWdnZXIuZGlzYWJsZSIpOworICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJU
ZXN0IGlzIGNvbXBsZXRlLCBkaXNhYmxpbmcgYnJlYWtwb2ludHMuIik7CisgICAgICAgIFByb3Rv
Y29sVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKICAgICBJbnNwZWN0b3JQcm90b2NvbC5l
dmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9i
amVjdCkKICAgICB7CiAgICAgICAgIGlmICgvcmVzb3VyY2VzXC9icmVha3BvaW50XC5qcyQvLnRl
c3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSkgewpAQCAtNDgsMTMgKzYwLDE0IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIkV2YWx1dGVkIHZh
bHVlIG9mIGBhYCAoZXhwZWN0aW5nIG51bWJlciA0KSB3YXM6ICIgKyBKU09OLnN0cmluZ2lmeSht
ZXNzYWdlT2JqZWN0LnJlc3VsdC5yZXN1bHQpKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JQ
cm90b2NvbC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZXZhbHVhdGVPbkNhbGxGcmFtZSIsIHtjYWxs
RnJhbWVJZDogY2FsbEZyYW1lSWRlbnRpZmllciwgZXhwcmVzc2lvbjogImIifSwgZnVuY3Rpb24o
bWVzc2FnZU9iamVjdCkgewogICAgICAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJF
dmFsdXRlZCB2YWx1ZSBvZiBgYmAgKGV4cGVjdGluZyBudW1iZXIgNykgd2FzOiAiICsgSlNPTi5z
dHJpbmdpZnkobWVzc2FnZU9iamVjdC5yZXN1bHQucmVzdWx0KSk7CisKICAgICAgICAgICAgICAg
ICAgICAgUHJvdG9jb2xUZXN0LmxvZygiUEFTUzogaGl0IGJyZWFrcG9pbnRzIHdpdGggZXhwZWN0
ZWQgdmFsdWVzIik7Ci0gICAgICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5jb21wbGV0ZVRl
c3QoKTsKKyAgICAgICAgICAgICAgICAgICAgZGlzYWJsZURlYnVnZ2VyQW5kQ29tcGxldGVUZXN0
KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IGhpdCB0b28gbWFueSBicmVh
a3BvaW50cy4iKTsKLSAgICAgICAgICAgIFByb3RvY29sVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAg
ICAgICAgICAgIGRpc2FibGVEZWJ1Z2dlckFuZENvbXBsZXRlVGVzdCgpOwogICAgICAgICB9CiAg
ICAgfQogCkBAIC02OSw3ICs4Miw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBpZiAoIWluQnJlYWtwb2ludCkg
ewogICAgICAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJGQUlMOiBEaWQgbm90IGhp
dCBjb25kaXRpb25hbCBicmVha3BvaW50IHRoZSBzZWNvbmQgdGltZSIpOwotICAgICAgICAgICAg
ICAgICAgICBQcm90b2NvbFRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICAgICAgICAg
IGRpc2FibGVEZWJ1Z2dlckFuZENvbXBsZXRlVGVzdCgpOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0sIDEwMCk7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50Lmh0bWwKaW5kZXggYWMzZGJiNjc1YmE5MTcwNTUw
NDY3ZWU2NThjZmM2MDE5ZDdjNzIzNC4uNzAzNDhhOWQ2N2FjMTE5NmMxZjhjMDQzZmZjNTk0NzUz
OTAwYzZiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJy
ZWFrcG9pbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJl
YWtwb2ludC5odG1sCkBAIC0zMyw2ICszMyw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIEluc3Bl
Y3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbiht
ZXNzYWdlT2JqZWN0KQogICAgIHsKICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiSGl0IEJyZWFr
cG9pbnQhIik7CisgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dl
ci5kaXNhYmxlIik7CisKICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiUEFTUyIpOwogICAgICAg
ICBQcm90b2NvbFRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50QnlVcmwtc291
cmNlVVJMLmh0bWwKaW5kZXggZjdhOWVhZjMzY2E0N2RjNjdjNjlhYjA1NjFhZjYxYjc3YmFlMWFj
YS4uNTczNDM2YmU1OTcxOWFlYjViYjc0MWZkODljY2UwZTVkMWYxMzlkNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VV
UkwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2lu
dEJ5VXJsLXNvdXJjZVVSTC5odG1sCkBAIC0zMiw2ICszMiw4IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRXZhbHV0ZWQgdmFsdWUgb2YgYGFgIChleHBl
Y3RpbmcgbnVtYmVyIDEpIHdhczogIiArIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2VPYmplY3QucmVz
dWx0LnJlc3VsdCkpOwogICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQo
IkRlYnVnZ2VyLmV2YWx1YXRlT25DYWxsRnJhbWUiLCB7Y2FsbEZyYW1lSWQ6IGNhbGxGcmFtZUlk
ZW50aWZpZXIsIGV4cHJlc3Npb246ICJjIn0sIGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKICAg
ICAgICAgICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJFdmFsdXRlZCB2YWx1ZSBvZiBgY2AgKGV4
cGVjdGluZyB1bmRlZmluZWQpIHdhczogIiArIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2VPYmplY3Qu
cmVzdWx0LnJlc3VsdCkpOworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2Vu
ZENvbW1hbmQoIkRlYnVnZ2VyLmRpc2FibGUiKTsKICAgICAgICAgICAgICAgICBQcm90b2NvbFRl
c3QuY29tcGxldGVUZXN0KCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbS1yZW1vdmUtZXZlbnRzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbS1yZW1vdmUtZXZlbnRzLmh0bWwKaW5kZXggNDgx
N2VlNzE3N2U0N2Q0Zjk5NDE0MDI2NzZiMGVjMGIzMGE4NWZjZC4uZDVjNThjNGM3ODk1Nzk0YzU1
ZDlkN2VlMWJiZjBlMzIwZjE3YTE2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RvbS9kb20tcmVtb3ZlLWV2ZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
b20vZG9tLXJlbW92ZS1ldmVudHMuaHRtbApAQCAtNzEsNiArNzEsOSBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIHJlY2VpdmUgdGhlIGNoaWxkcmVuIG9mIHRoZSAi
I2ZpbmFsX2NvbnRhaW5lciIgYXMgdGhleSBhcmUgYWRkZWQuCiAgICAgICAgIEluc3BlY3RvclBy
b3RvY29sLnNlbmRDb21tYW5kKCJET00ucmVxdWVzdENoaWxkTm9kZXMiLCB7bm9kZUlkOiByZXNw
b25zZS5yZXN1bHQubm9kZUlkfSk7CiAgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21t
YW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgeyJleHByZXNzaW9uIjogIm1vdmVOb2RlKCkifSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBkZWxldGUgSW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5k
bGVyWyJET00uc2V0Q2hpbGROb2RlcyJdOworICAgICAgICAgICAgZGVsZXRlIEluc3BlY3RvclBy
b3RvY29sLmV2ZW50SGFuZGxlclsiRE9NLmNoaWxkTm9kZVJlbW92ZWQiXTsKKyAgICAgICAgICAg
IGRlbGV0ZSBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIkRPTS5jaGlsZE5vZGVJbnNl
cnRlZCJdOwogICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmNvbXBsZXRlVGVzdCgpOwogICAgICAg
ICB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3JlbW92
ZS1tdWx0aXBsZS1ub2Rlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9yZW1vdmUt
bXVsdGlwbGUtbm9kZXMuaHRtbAppbmRleCA2ZTYwYzY1ZjJhMDkwNTNjNzk1NjAzNjAzZDE0YjQ5
NGVhNDRmYzhlLi42ZGQxMTU5MmU0YzQ2YjcwNTIyMDI5MTRhMjE2Y2UyMzJlMzVmNjA4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3JlbW92ZS1tdWx0aXBsZS1ub2Rlcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcmVtb3ZlLW11bHRpcGxlLW5vZGVz
Lmh0bWwKQEAgLTkyLDYgKzkyLDkgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBJbnNw
ZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgiRE9NLnJlcXVlc3RDaGlsZE5vZGVzIiwge25vZGVJ
ZDogcmVzcG9uc2UucmVzdWx0Lm5vZGVJZHNbaV19KTsKICAgICAgICAgCiAgICAgICAgIEluc3Bl
Y3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgeyJleHByZXNzaW9u
IjogIm1vdmVOb2RlKCkifSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkZWxldGUgSW5zcGVj
dG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJET00uc2V0Q2hpbGROb2RlcyJdOworICAgICAgICAg
ICAgZGVsZXRlIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRE9NLmNoaWxkTm9kZVJl
bW92ZWQiXTsKKyAgICAgICAgICAgIGRlbGV0ZSBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRs
ZXJbIkRPTS5jaGlsZE5vZGVJbnNlcnRlZCJdOwogICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmNv
bXBsZXRlVGVzdCgpOwogICAgICAgICB9KTsKICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>