<?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>40675</bug_id>
          
          <creation_ts>2010-06-16 05:47:07 -0700</creation_ts>
          <short_desc>Web Inspector: native serialization support in the bindings for WebInspector.</short_desc>
          <delta_ts>2010-07-06 12:10:57 -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 (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>238825</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-06-16 05:47:07 -0700</bug_when>
    <thetext>On the way to Remote Debuging we want to support JSON serialization on both sides of WebInspector transport.
As far as InspectorFrontend class is a simple proxy to WebInspector it would be better to generate it from an IDL file.
We have generator infostructure for binding and will reuse it for new generator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238827</commentid>
    <comment_count>1</comment_count>
      <attachid>58890</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-06-16 06:02:20 -0700</bug_when>
    <thetext>Created attachment 58890
[patch] initial version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238836</commentid>
    <comment_count>2</comment_count>
      <attachid>58890</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-16 06:45:14 -0700</bug_when>
    <thetext>Comment on attachment 58890
[patch] initial version. 


WebCore/WebCore.gyp/WebCore.gyp:624
 +              &apos;generator_include_dirs&apos;: [
why do you need this?

WebCore/bindings/scripts/CodeGeneratorWI.pm:108
 +   * 1. Redistributions of source code must retain the above copyright
Please fix the license header.

WebCore/bindings/scripts/IDLStructure.pm:83
 +  our $supportedTypes = &quot;((?:unsigned )?(?:int|short|(?:long )?long)|(?:$idlIdNs*))&quot;;
revert?

WebCore/inspector/InspectorFrontend2.wii:72
 +  //        void pausedScript(SerializedScriptValue* callFrames);
remove all commented code
WebCore/inspector/TimelineRecordFactory.cpp:53
 +  //    if (ScriptCallStack::stackTrace(5, frontend-&gt;scriptState(), stackTrace))
Please uncomment this. Also I don&apos;t understand why ScriptState used here is that of the front end.

WebKit/gtk/ChangeLog:5
 +          WebInspector: bugfix.
Change log should be more descriptive.

WebKit/qt/ChangeLog:5
 +          WebInspector: bugfix.
Change log should be more descriptive.

WebCore/CMakeLists.txt:290
 +      inspector/InspectorFrontend2.wii
I really don&apos;t like the idea of using .wii extension for idl files just to associate them with another code generator. Is it possible to leave .idl extension for them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238838</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-16 06:52:12 -0700</bug_when>
    <thetext>Attachment 58890 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3314227</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238899</commentid>
    <comment_count>4</comment_count>
      <attachid>58890</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-06-16 08:26:41 -0700</bug_when>
    <thetext>Comment on attachment 58890
[patch] initial version. 

Our IDL is not for bindings, so that the generation process should be separate. I don&apos;t think we can get away with current approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239319</commentid>
    <comment_count>5</comment_count>
      <attachid>58975</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-06-17 03:10:21 -0700</bug_when>
    <thetext>Created attachment 58975
[patch] second iteration

.wii extension was changed to .inspector
CodeGeneratorWI.pm was moved to inspector folder as CodeGeneratorInspector.pm
StackTrace support was implemented.
Other minor changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239331</commentid>
    <comment_count>6</comment_count>
      <attachid>58975</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-17 04:43:55 -0700</bug_when>
    <thetext>Comment on attachment 58975
[patch] second iteration

WebCore/WebCore.gyp/WebCore.gyp:613
 +              &apos;../inspector/CodeGeneratorInspector.pm&apos;,
Can we put this to inspector/scripts/ the same way as with bindings?

WebCore/bindings/scripts/generate-bindings.pl:59
 +  #die(&apos;Must specify IDL search path.&apos;) unless @idlDirectories;
Remove this line?

WebCore/bindings/v8/ScriptCallStack.cpp:100
 +      v8::Context::Scope contextScope(v8::Context::GetCurrent());
There may be no current context. Please add a check.

WebCore/inspector/CodeGeneratorInspector.pm:1
 +  # Copyright (C) 2005, 2006 Nikolas Zimmermann &lt;zimmermann@kde.org&gt;
Please change the license header.

WebCore/CMakeLists.txt:290
 +      inspector/InspectorFrontend2.inspector
Maybe .inspectoridl or something like that, it would be too long though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239332</commentid>
    <comment_count>7</comment_count>
      <attachid>58978</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-06-17 04:49:15 -0700</bug_when>
    <thetext>Created attachment 58978
[patch] second iteration. rebaselined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239333</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-17 04:51:53 -0700</bug_when>
    <thetext>Attachment 58978 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/inspector/TimelineRecordFactory.cpp:55:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239334</commentid>
    <comment_count>9</comment_count>
      <attachid>58978</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-06-17 04:55:01 -0700</bug_when>
    <thetext>Comment on attachment 58978
[patch] second iteration. rebaselined.

two files are missing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239335</commentid>
    <comment_count>10</comment_count>
      <attachid>58979</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-06-17 04:57:16 -0700</bug_when>
    <thetext>Created attachment 58979
[patch] third iteration. with new files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239337</commentid>
    <comment_count>11</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-06-17 05:01:56 -0700</bug_when>
    <thetext>Attachment 58978 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/3285276</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239346</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-17 05:31:43 -0700</bug_when>
    <thetext>Attachment 58979 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3319262</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239349</commentid>
    <comment_count>13</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-17 05:38:48 -0700</bug_when>
    <thetext>Please address the comments at least those regarding v8::Context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239380</commentid>
    <comment_count>14</comment_count>
      <attachid>58993</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-06-17 07:34:24 -0700</bug_when>
    <thetext>Created attachment 58993
[patch] fourth iteration.

inspector -&gt; inspectorIDL
ScriptCallStack was fixed.
License was fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239389</commentid>
    <comment_count>15</comment_count>
      <attachid>58993</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-17 07:56:58 -0700</bug_when>
    <thetext>Comment on attachment 58993
[patch] fourth iteration.

WebCore/bindings/v8/ScriptCallStack.cpp:102
 +      if (context.IsEmpty())
You don&apos;t need this check because of the one above. Please remove.

WebCore/bindings/v8/ScriptCallStack.cpp:104
 +      v8::HandleScope scope;
This line should go before v8::Context::GetCurrent() call which returns a local handle.

r- for that, otherwise looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239553</commentid>
    <comment_count>16</comment_count>
      <attachid>58993</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-06-17 13:24:45 -0700</bug_when>
    <thetext>Comment on attachment 58993
[patch] fourth iteration.

WebCore/GNUmakefile.am:324
 +  INSPECTOR_INTERFACES += WebCore/inspector/InspectorFrontend2.inspectorIDL
Could we please use standard .idl extension?

WebCore/WebCore.gypi:197
 +              &apos;inspector/InspectorFrontend2.inspectorIDL&apos;,
We can create a separate folder for new idl files and call it &apos;remote&apos; if this makes life of your code generator easier.


WebCore/WebCore.vcproj/WebCore.vcproj:20068
 +  				RelativePath=&quot;$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\WebInspectorFrontend2.cpp&quot;
Nit: I would use &apos;Remote&apos; as a part of the name. Such as &apos;RemoteInspectorFrontend&apos;.

WebCore/inspector/InspectorTimelineAgent.cpp: 
 +          ScriptObject record = TimelineRecordFactory::createGenericRecord(m_frontend, i-&gt;startTime);
I think apu agent is sniffing those on the chromium side. So the change is going to break SpeedTracer and alike. r- for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239761</commentid>
    <comment_count>17</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-06-17 22:15:12 -0700</bug_when>
    <thetext>
&gt; +$typeTransform{&quot;Object&quot;} = {
&gt; +    &quot;param&quot; =&gt; &quot;const RefPtr&lt;InspectorObject&gt;&amp;&quot;,
&gt; +    &quot;return&quot; =&gt; &quot;PassRefPtr&lt;InspectorObject&gt;&quot;,
&gt; +    &quot;forward&quot; =&gt; &quot;InspectorObject&quot;,
&gt; +    &quot;header&quot; =&gt; &quot;InspectorValues.h&quot;,
&gt; +    &quot;push&quot; =&gt; &quot;push&quot;
&gt; +};

This uses &quot;return&quot; and all the others use &quot;retVal&quot;.
Easy to overlook because, as expected, the entire
interface returns &quot;void&quot; =)

---------------------------------

I see some missing functions in InspectorFrontend2.inspectorIDL that are
in InspectorFrontend.h. I take it, based on their non-simple implementations
that these would need to be manually implemented. Some of them have simple
implementations. But would it be worth adding these to the inspectorIDL
file, but commenting them out so they are remembered?

  ------
    void addConsoleMessage(const ScriptObject&amp; messageObj, const Vector&lt;ScriptString&gt;&amp; frames, const Vector&lt;RefPtr&lt;SerializedScriptValue&gt; &gt;&amp; arguments, const String&amp; message);
    void pausedScript(SerializedScriptValue* callFrames);

  #if ENABLE(WORKERS)
    void didCreateWorker(const InspectorWorkerResource&amp;);
    void didDestroyWorker(const InspectorWorkerResource&amp;);
  #endif // ENABLE(WORKER)
  
    void didEditScriptSource(long callId, bool success, const String&amp; result, SerializedScriptValue* newCallFrames);
    void didGetScriptSource(long callId, const String&amp; result);
    void didDispatchOnInjectedScript(long callId, SerializedScriptValue* result, bool isException);
  ------


Also, in InspectorFrontend these returns a bool, but its void in
the new version:

  ------ 
    bool updateResource(unsigned long identifier, const ScriptObject&amp; resourceObj);
    bool addDatabase(const ScriptObject&amp; dbObj);
    bool addDOMStorage(const ScriptObject&amp; domStorageObj);
  ------
    void updateResource(in unsigned long identifier, in Object resourceObj);
    void addDatabase(in Object dbObj);
    void addDOMStorage(in Object domStorageObj);
  ------

It looks like the addDOMStorage&apos;s return value is never used, so that
could certainly be changed to void in both files for now. I&apos;m guessing
the others as well. I think it would be worth changing the original
file to void (or the new version to bool) to keep them in sync again.


Many of the build file changes look like pure magic to me, so I&apos;m
trusting all of your judgement =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239893</commentid>
    <comment_count>18</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-06-18 06:20:15 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; &gt; +$typeTransform{&quot;Object&quot;} = {
&gt; &gt; +    &quot;param&quot; =&gt; &quot;const RefPtr&lt;InspectorObject&gt;&amp;&quot;,
&gt; &gt; +    &quot;return&quot; =&gt; &quot;PassRefPtr&lt;InspectorObject&gt;&quot;,
&gt; &gt; +    &quot;forward&quot; =&gt; &quot;InspectorObject&quot;,
&gt; &gt; +    &quot;header&quot; =&gt; &quot;InspectorValues.h&quot;,
&gt; &gt; +    &quot;push&quot; =&gt; &quot;push&quot;
&gt; &gt; +};
&gt; 
&gt; This uses &quot;return&quot; and all the others use &quot;retVal&quot;.
&gt; Easy to overlook because, as expected, the entire
&gt; interface returns &quot;void&quot; =)

fixed.

&gt; I see some missing functions in InspectorFrontend2.inspectorIDL that are
&gt; in InspectorFrontend.h. I take it, based on their non-simple implementations
&gt; that these would need to be manually implemented. Some of them have simple
&gt; implementations. But would it be worth adding these to the inspectorIDL
&gt; file, but commenting them out so they are remembered?

I&apos;ll keep only one currently used function. All the others will be added later in order of changing corresponding *inspector*Agents.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240351</commentid>
    <comment_count>19</comment_count>
      <attachid>59186</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-06-19 09:26:12 -0700</bug_when>
    <thetext>Created attachment 59186
[patch] next iteration.

idl extension is used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240359</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-19 09:51:23 -0700</bug_when>
    <thetext>Attachment 59186 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3328380</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246592</commentid>
    <comment_count>21</comment_count>
      <attachid>60517</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-07-05 05:29:45 -0700</bug_when>
    <thetext>Created attachment 60517
[patch] rebaselined. for check at trybots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246601</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-05 05:48:49 -0700</bug_when>
    <thetext>Attachment 60517 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3409251</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246623</commentid>
    <comment_count>23</comment_count>
      <attachid>60517</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-05 07:10:37 -0700</bug_when>
    <thetext>Comment on attachment 60517
[patch] rebaselined. for check at trybots.

WebCore/bindings/js/ScriptCallStack.h:60
 +          static bool stackTrace(int, const RefPtr&lt;InspectorArray&gt;&amp;);
Changes related to ScriptCallStack may well go in its own patch. Could you file a separate bug and create a separate patch for that? This would reduce the size of this huge patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246657</commentid>
    <comment_count>24</comment_count>
      <attachid>60538</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-07-05 08:15:18 -0700</bug_when>
    <thetext>Created attachment 60538
[patch] Minimized version without generator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246662</commentid>
    <comment_count>25</comment_count>
      <attachid>60538</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-05 08:33:15 -0700</bug_when>
    <thetext>Comment on attachment 60538
[patch] Minimized version without generator.

WebCore/ChangeLog:9
 +          infostructure for binding and will reuse it for new generator.
typo: infostructure -&gt; infrastructure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247022</commentid>
    <comment_count>26</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-07-06 04:44:26 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/bindings/js/ScriptCallStack.cpp
	M	WebCore/bindings/js/ScriptCallStack.h
	M	WebCore/bindings/v8/ScriptCallStack.cpp
	M	WebCore/bindings/v8/ScriptCallStack.h
	M	WebCore/inspector/InspectorFrontend.cpp
	M	WebCore/inspector/InspectorFrontend.h
	M	WebCore/inspector/InspectorTimelineAgent.cpp
	M	WebCore/inspector/InspectorTimelineAgent.h
	M	WebCore/inspector/TimelineRecordFactory.cpp
	M	WebCore/inspector/TimelineRecordFactory.h
	M	WebKit/chromium/src/WebDevToolsAgentImpl.cpp
	M	WebKit/gtk/ChangeLog
	M	WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp
	M	WebKit/qt/ChangeLog
	M	WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
Committed r62542</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247167</commentid>
    <comment_count>27</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-06 12:10:57 -0700</bug_when>
    <thetext>I think all those functions returning a RefPtr should instead return a PassRefPtr,
by doing &quot;return data.release()&quot;. See the examples on:
http://webkit.org/coding/RefPtr.html

&gt; If a function’s result is a new object or ownership is being
&gt; transferred for any other reason, the result should be a PassRefPtr.
&gt; Since local variables are typically RefPtr, it’s common to call
&gt; release in the return statement to transfer the RefPtr to the
&gt; PassRefPtr.

I think the current approach does extra reference count arithmetic.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58890</attachid>
            <date>2010-06-16 06:02:20 -0700</date>
            <delta_ts>2010-06-17 03:10:21 -0700</delta_ts>
            <desc>[patch] initial version. </desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>83731</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlMmNhODYwLi44OWEzZjhl
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMDYtMTYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE9uIHRoZSB3YXkgdG8gUmVtb3RlIERlYnVnaW5nIHdlIHdhbnQgdG8gc3VwcG9ydCBKU09O
CisgICAgICAgIHNlcmlhbGl6YXRpb24gb24gYm90aCBzaWRlcyBvZiBXZWJJbnNwZWN0b3IgdHJh
bnNwb3J0LiBBcyBmYXIgYXMKKyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmQgY2xhc3MgaXMgYSBz
aW1wbGUgcHJveHkgdG8gV2ViSW5zcGVjdG9yIGl0IHdvdWxkCisgICAgICAgIGJlIGJldHRlciB0
byBnZW5lcmF0ZSBpdCBmcm9tIGFuIElETCBmaWxlLiBXZSBoYXZlIGdlbmVyYXRvcgorICAgICAg
ICBpbmZvc3RydWN0dXJlIGZvciBiaW5kaW5nIGFuZCB3aWxsIHJldXNlIGl0IGZvciBuZXcgZ2Vu
ZXJhdG9yLiBOZXcKKyAgICAgICAga2luZCBvZiBpZGwgZmlsZXMgaXMgaW50cm9kdWNlZDogV2Vi
SW5zcGVjdG9ySW50ZXJmYWNlIHdpdGgKKyAgICAgICAgZXh0ZW5zaW9uICd3aWknLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA2NzUKKworICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOgorCiAyMDEwLTA2LTE1ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdh
bGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL0dO
VW1ha2VmaWxlLmFtIGIvR05VbWFrZWZpbGUuYW0KaW5kZXggYzJiMWMxYy4uYzIwMTNiMyAxMDA2
NDQKLS0tIGEvR05VbWFrZWZpbGUuYW0KKysrIGIvR05VbWFrZWZpbGUuYW0KQEAgLTU1LDYgKzU1
LDcgQEAgbm9pbnN0X0hFQURFUlMgOj0KIG5vaW5zdF9MVExJQlJBUklFUyA6PQogbGliX0xJQlJB
UklFUyA6PQogSURMX0JJTkRJTkdTIDo9CitXSUlfQklORElOR1MgOj0KIFRFU1RfUFJPR1MgOj0K
IFBPRklMRVMgOj0KIE1PRklMRVMgOj0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDk5OGMyYzYuLjNkNmU1MjcgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtMjg3LDYgKzI4Nyw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogCiAgICAgaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2Vu
ZC5pZGwKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLndpaQogICAgIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsCiAgICAgaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxs
RnJhbWUuaWRsCiAgICAgaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFkZGYzMmEuLjI1ZDE3
YmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsODkgQEAKKzIwMTAtMDYtMTYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IE9uIHRoZSB3YXkgdG8gUmVtb3RlIERlYnVnaW5nIHdlIHdh
bnQgdG8gc3VwcG9ydCBKU09OCisgICAgICAgIHNlcmlhbGl6YXRpb24gb24gYm90aCBzaWRlcyBv
ZiBXZWJJbnNwZWN0b3IgdHJhbnNwb3J0LiBBcyBmYXIgYXMKKyAgICAgICAgSW5zcGVjdG9yRnJv
bnRlbmQgY2xhc3MgaXMgYSBzaW1wbGUgcHJveHkgdG8gV2ViSW5zcGVjdG9yIGl0IHdvdWxkCisg
ICAgICAgIGJlIGJldHRlciB0byBnZW5lcmF0ZSBpdCBmcm9tIGFuIElETCBmaWxlLiBXZSBoYXZl
IGdlbmVyYXRvcgorICAgICAgICBpbmZvc3RydWN0dXJlIGZvciBiaW5kaW5nIGFuZCB3aWxsIHJl
dXNlIGl0IGZvciBuZXcgZ2VuZXJhdG9yLiBOZXcKKyAgICAgICAga2luZCBvZiBpZGwgZmlsZXMg
aXMgaW50cm9kdWNlZDogV2ViSW5zcGVjdG9ySW50ZXJmYWNlIHdpdGgKKyAgICAgICAgZXh0ZW5z
aW9uICd3aWknLiBUaGUgZmlyc3QgcmVhbCB1c2VyIG9mIHRoYXQgaXMgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQwNjc1CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUu
Z3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX2Rl
cml2ZWRzb3VyY2VzYWxsaW5vbmUucHk6CisgICAgICAgICogV2ViQ29yZS5neXAvc2NyaXB0cy9y
dWxlX2JpbmRpbmcucHk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNv
cmUucHJpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG06CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yV0kucG06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURM
UGFyc2VyLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGw6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNvbnRyb2xsZXI6OnN0YXJ0VGltZWxpbmVQcm9maWxlcik6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIud2lpOiBBZGRlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnB1c2hHQ0V2ZW50
UmVjb3Jkcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxs
Q2FsbEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OndpbGxEaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OndpbGxMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6d2lsbFJlY2FsY3VsYXRlU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6d2lsbFBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OndpbGxXcml0ZUhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6ZGlkV3JpdGVIVE1MKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZEluc3RhbGxUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZW1vdmVUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRmlyZVRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxDaGFuZ2VYSFJSZWFkeVN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxMb2FkWEhSKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxFdmFsdWF0ZVNjcmlwdCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRTY2hlZHVsZVJl
c291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojp3aWxsU2VuZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JU
aW1lbGluZUFnZW50Ojp3aWxsUmVjZWl2ZVJlc291cmNlRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmluaXNoTG9hZGlu
Z1Jlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRp
ZE1hcmtUaW1lbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRNYXJrRE9NQ29udGVudEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmRpZE1hcmtMb2FkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6cmVzZXRGcm9udGVuZFByb3h5T2JqZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFkZFJlY29yZFRvVGltZWxpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c2V0SGVhcFNpemVTdGF0aXN0
aWMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tcGxl
dGVDdXJyZW50UmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OnB1c2hDdXJyZW50UmVjb3JkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
VGltZWxpbmVSZWNvcmRFbnRyeTo6VGltZWxpbmVSZWNvcmRFbnRyeSk6CisgICAgICAgICogaW5z
cGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHQ0V2ZW50RGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUZ1bmN0aW9uQ2FsbERhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmVudERpc3Bh
dGNoRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZUdlbmVyaWNUaW1lckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVUaW1lckluc3RhbGxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSUmVhZHlTdGF0ZUNoYW5nZURhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJMb2FkRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUV2YWx1YXRlU2NyaXB0
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZU1h
cmtUaW1lbGluZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVTY2hlZHVsZVJlc291cmNlUmVxdWVzdERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlUmVj
ZWl2ZVJlc3BvbnNlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rv
cnk6OmNyZWF0ZVJlc291cmNlRmluaXNoRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlY2VpdmVSZXNvdXJjZURhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYWludERhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYXJzZUhUTUxEYXRhKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5Lmg6CisKIDIwMTAtMDYtMTUg
IE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBi
eSBEYXZpZCBIYXJyaXNvbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZSBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA3ZWM5MTVmLi44N2JjNzM3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC00NjIsOSArNDYyLDExIEBAIERPTV9DTEFTU0VTID0gXAogICAg
IFhTTFRQcm9jZXNzb3IgXAogIwogCitJTlNQRUNUT1JfQ0xBU1NFUyA9IEluc3BlY3RvckZyb250
ZW5kMgorCiAuUEhPTlkgOiBhbGwKIAotSlNfRE9NX0hFQURFUlM9JChmaWx0ZXItb3V0IEpTRXZl
bnRMaXN0ZW5lci5oIEpTRXZlbnRUYXJnZXQuaCwkKERPTV9DTEFTU0VTOiU9SlMlLmgpKQorSlNf
RE9NX0hFQURFUlM9JChmaWx0ZXItb3V0IEpTRXZlbnRMaXN0ZW5lci5oIEpTRXZlbnRUYXJnZXQu
aCwkKERPTV9DTEFTU0VTOiU9SlMlLmgpICQoSU5TUEVDVE9SX0NMQVNTRVM6JT1XZWIlLmgpKQog
CiBhbGwgOiBcCiAgICAgJChKU19ET01fSEVBREVSUykgXApAQCAtODI3LDYgKzgyOSw5IEBAIEdF
TkVSQVRFX0JJTkRJTkdTX1NDUklQVFMgPSBcCiBKUyUuaCA6ICUuaWRsICQoR0VORVJBVEVfQklO
RElOR1NfU0NSSVBUUykgYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KIAkkKEdF
TkVSQVRFX0JJTkRJTkdTKSAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTKSAkKEFERElUSU9O
QUxfSURMX0RFRklORVMpIExBTkdVQUdFX0pBVkFTQ1JJUFQiIC0tZ2VuZXJhdG9yIEpTICQ8CiAK
K1dlYiUuaCA6ICUud2lpICQoR0VORVJBVEVfQklORElOR1NfU0NSSVBUUykgYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yV0kucG0KKwkkKEdFTkVSQVRFX0JJTkRJTkdTKSAtLWRlZmluZXMg
IiQoRkVBVFVSRV9ERUZJTkVTKSAkKEFERElUSU9OQUxfSURMX0RFRklORVMpIExBTkdVQUdFX0pB
VkFTQ1JJUFQiIC0tZ2VuZXJhdG9yIFdJICQ8CisKIC1pbmNsdWRlICQoSlNfRE9NX0hFQURFUlM6
Lmg9LmRlcCkKIAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDM0NTZmZDUu
Ljk4MGZjMGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQpAQCAtMzIxLDYgKzMyMSw4IEBAIElETF9CSU5ESU5HUyArPSBcCiAJ
V2ViQ29yZS94bWwvWE1MU2VyaWFsaXplci5pZGwgXAogCVdlYkNvcmUveG1sL1hTTFRQcm9jZXNz
b3IuaWRsCiAKK1dJSV9CSU5ESU5HUyArPSBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZDIud2lpCisKIHdlYmNvcmVndGtfZG9tX3NvdXJjZXMgPSBcCiAJV2ViQ29yZS9iaW5kaW5n
cy9nb2JqZWN0L0NvbnZlcnRUb1VURjhTdHJpbmcuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2dv
YmplY3QvQ29udmVydFRvVVRGOFN0cmluZy5oIFwKQEAgLTM4ODcsMTMgKzM4ODksMTkgQEAgSURM
X1BBVEggOj0gXAogICAgICQoV2ViQ29yZSkvd29ya2VycwogCiB2cGF0aCAlLmlkbCA9ICQoSURM
X1BBVEgpCit2cGF0aCAlLndpaSA9ICQoV2ViQ29yZSkvaW5zcGVjdG9yCiAKIERlcml2ZWRTb3Vy
Y2VzL0pTJS5oOiBEZXJpdmVkU291cmNlcy9KUyUuY3BwOwogCitEZXJpdmVkU291cmNlcy9XZWIl
Lmg6IERlcml2ZWRTb3VyY2VzL1dlYiUuY3BwOworCiAuU0VDT05EQVJZOgogRGVyaXZlZFNvdXJj
ZXMvSlMlLmNwcDogJS5pZGwgJChTQ1JJUFRTX0JJTkRJTkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChXZWJD
b3JlKS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0
ZS1iaW5kaW5ncy5wbCAkKElETF9QQVRIOiU9LS1pbmNsdWRlICIlIikgLS1vdXRwdXREaXIgIiQo
R0VOU09VUkNFUykiIC0tZGVmaW5lcyAiTEFOR1VBR0VfSkFWQVNDUklQVD0xICQoRkVBVFVSRV9E
RUZJTkVTKSIgLS1nZW5lcmF0b3IgSlMgJDwKIAorRGVyaXZlZFNvdXJjZXMvV2ViJS5jcHA6ICUu
d2lpICQoU0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JXSS5wbQorCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mv
c2NyaXB0cyAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwg
JChJRExfUEFUSDolPS0taW5jbHVkZSAiJSIpIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAt
LWRlZmluZXMgIkxBTkdVQUdFX0pBVkFTQ1JJUFQ9MSAkKEZFQVRVUkVfREVGSU5FUykiIC0tZ2Vu
ZXJhdG9yIFdJICQ8CisKIElETF9CSU5ESU5HU19KU19QVVJFIDo9IFwKIAlXZWJDb3JlL3N2Zy9F
bGVtZW50VGltZUNvbnRyb2wuaWRsIFwKIAlXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGhEYXRh
LmlkbCBcCkBAIC0zOTEzLDggKzM5MjEsMTEgQEAgSURMX0JJTkRJTkdTX0pTX1BVUkUgOj0gXAog
SURMX0JJTkRJTkdTX0pTIDo9ICQoZmlsdGVyLW91dCAkKElETF9CSU5ESU5HU19KU19QVVJFKSwk
KElETF9CSU5ESU5HUykpCiAKIHdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzICs9ICQocGF0c3Vic3Qg
JS5pZGwsRGVyaXZlZFNvdXJjZXMvSlMlLmgsJChub3RkaXIgJChJRExfQklORElOR1MpKSkKK3dl
YmNvcmVfYnVpbHRfbm9zb3VyY2VzICs9ICQocGF0c3Vic3QgJS53aWksRGVyaXZlZFNvdXJjZXMv
V2ViJS5oLCQobm90ZGlyICQoV0lJX0JJTkRJTkdTKSkpCiAKLXdlYmNvcmVfYnVpbHRfbm9zb3Vy
Y2VzICs9ICQocGF0c3Vic3QgJS5pZGwsRGVyaXZlZFNvdXJjZXMvSlMlLmNwcCwkKG5vdGRpciAk
KElETF9CSU5ESU5HU19KUykpKQord2ViY29yZV9idWlsdF9jcHAgPSAkKHBhdHN1YnN0ICUuaWRs
LERlcml2ZWRTb3VyY2VzL0pTJS5jcHAsJChub3RkaXIgJChJRExfQklORElOR1NfSlMpKSkKK3dl
YmNvcmVfYnVpbHRfY3BwICs9ICQocGF0c3Vic3QgJS53aWksRGVyaXZlZFNvdXJjZXMvV2ViJS5j
cHAsJChub3RkaXIgJChXSUlfQklORElOR1MpKSkKK3dlYmNvcmVfYnVpbHRfbm9zb3VyY2VzICs9
ICQod2ViY29yZV9idWlsdF9jcHApCiAKIHdlYmNvcmVfYnVpbHRfb2JqZWN0cyA9IDo9ICQocGF0
c3Vic3QgJS5jcHAsJS5sbywkKHdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzKSkKIApAQCAtMzkyMiw5
ICszOTMzLDkgQEAgJCh3ZWJjb3JlX2J1aWx0X29iamVjdHMpOiBBTV9DUFBGTEFHUys9JChjb3Jl
a2l0X2NwcGZsYWdzKQogCiAkKHdlYmNvcmVfYnVpbHRfb2JqZWN0cyk6IEFNX0NYWEZMQUdTKz0k
KGxpYndlYmtpdF8xXzBfbGFfQ1hYRkxBR1MpCiAKLWxpYldlYkNvcmVKU19vYmplY3RzIDo9ICQo
cGF0c3Vic3QgJS5pZGwsRGVyaXZlZFNvdXJjZXMvSlMlLmxvLCQobm90ZGlyICQoSURMX0JJTkRJ
TkdTX0pTKSkpCitsaWJXZWJDb3JlSlNfb2JqZWN0cyA6PSAkKHBhdHN1YnN0ICUuY3BwLCUubG8s
JCh3ZWJjb3JlX2J1aWx0X2NwcCkpCiAKLWxpYldlYkNvcmVKU19kZXBmaWxlcyA6PSAkKHBhdHN1
YnN0ICUuaWRsLERlcml2ZWRTb3VyY2VzLyQoREVQRElSKS9KUyUuUGxvLCQobm90ZGlyICQoSURM
X0JJTkRJTkdTX0pTKSkpCitsaWJXZWJDb3JlSlNfZGVwZmlsZXMgOj0gJChwYXRzdWJzdCAlLmNw
cCxEZXJpdmVkU291cmNlcy8kKERFUERJUikvJS5QbG8sJChub3RkaXIgJCh3ZWJjb3JlX2J1aWx0
X2NwcCkpKQogCiAjIE9sZGVyIGF1dG9tYWtlIHZlcnNpb25zICgxLjcpIHBsYWNlIFBsbyBmaWxl
cyBpbiBhIGRpZmZlcmVudCBwbGFjZToKIGxpYldlYkNvcmVKU19kZXBmaWxlcyArPSAkKHBhdHN1
YnN0ICUubG8sJChERVBESVIpLyUuUGxvLCQobGliV2ViQ29yZUpTX29iamVjdHMpKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cCBiL1dlYkNvcmUvV2ViQ29yZS5n
eXAvV2ViQ29yZS5neXAKaW5kZXggMTZmMTlkOS4uOTIzMDRmOCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNv
cmUuZ3lwCkBAIC01ODksNiArNTg5LDcgQEAKICAgICAgICAgICAnYWN0aW9uJzogWwogICAgICAg
ICAgICAgJ3B5dGhvbicsCiAgICAgICAgICAgICAnc2NyaXB0cy9ydWxlX2JpbmRpbmcucHknLAor
ICAgICAgICAgICAgJ3Y4JywKICAgICAgICAgICAgICc8KFJVTEVfSU5QVVRfUEFUSCknLAogICAg
ICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmNvcmUvYmluZGluZ3MnLAog
ICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9iaW5kaW5ncycs
CkBAIC02MDEsNiArNjAyLDUwIEBACiAgICAgICAgICAgXSwKICAgICAgICAgICAnbWVzc2FnZSc6
ICdHZW5lcmF0aW5nIGJpbmRpbmcgZnJvbSA8KFJVTEVfSU5QVVRfUEFUSCknLAogICAgICAgICB9
LAorICAgICAgICAjIFJ1bGUgdG8gYnVpbGQgZ2VuZXJhdGVkIFdlYkluc3BlY3RvciBiaW5kaW5n
cyBmcm9tIC53aWkgc291cmNlLgorICAgICAgICB7CisgICAgICAgICAgJ3J1bGVfbmFtZSc6ICdp
bnNwZWN0b3InLAorICAgICAgICAgICdleHRlbnNpb24nOiAnd2lpJywKKyAgICAgICAgICAnbXN2
c19leHRlcm5hbF9ydWxlJzogMSwKKyAgICAgICAgICAnaW5wdXRzJzogWworICAgICAgICAgICAg
Jy4uL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwnLAorICAgICAgICAgICAg
Jy4uL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbScsCisgICAgICAgICAgICAnLi4v
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yV0kucG0nLAorICAgICAgICAgICAgJy4uL2Jp
bmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtJywKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9z
Y3JpcHRzL0lETFN0cnVjdHVyZS5wbScsCisgICAgICAgICAgXSwKKyAgICAgICAgICAnb3V0cHV0
cyc6IFsKKyAgICAgICAgICAgICMgRklYTUU6ICBUaGUgLmNwcCBmaWxlIHNob3VsZCBiZSBpbiB3
ZWJraXQvYmluZGluZ3Mgb25jZQorICAgICAgICAgICAgIyB3ZSBjb2F4IEdZUCBpbnRvIHN1cHBv
cnRpbmcgaXQgKHNlZSAnYWN0aW9uJyBiZWxvdykuCisgICAgICAgICAgICAnPChTSEFSRURfSU5U
RVJNRURJQVRFX0RJUikvd2ViY29yZS9iaW5kaW5ncy9XZWI8KFJVTEVfSU5QVVRfUk9PVCkuY3Bw
JywKKyAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGlu
Z3MvV2ViPChSVUxFX0lOUFVUX1JPT1QpLmgnLAorICAgICAgICAgIF0sCisgICAgICAgICAgJ3Zh
cmlhYmxlcyc6IHsKKyAgICAgICAgICAgICdnZW5lcmF0b3JfaW5jbHVkZV9kaXJzJzogWworICAg
ICAgICAgICAgICAnLS1pbmNsdWRlJywgJy4uL3htbCcsCisgICAgICAgICAgICBdLAorICAgICAg
ICAgIH0sCisgICAgICAgICAgIyBGSVhNRTogIE5vdGUgdGhhdCB3ZSBwdXQgdGhlIC5jcHAgZmls
ZXMgaW4gd2ViY29yZS9iaW5kaW5ncworICAgICAgICAgICMgYnV0IHRoZSAuaCBmaWxlcyBpbiB3
ZWJraXQvYmluZGluZ3MuICBUaGlzIGlzIHRvIHdvcmsgYXJvdW5kCisgICAgICAgICAgIyB0aGUg
dW5mb3J0dW5hdGUgZmFjdCB0aGF0IEdZUCBzdHJpcHMgZHVwbGljYXRlIGFyZ3VtZW50cworICAg
ICAgICAgICMgZnJvbSBsaXN0cy4gIFdoZW4gd2UgaGF2ZSBhIGJldHRlciBHWVAgd2F5IHRvIHN1
cHByZXNzIHRoYXQKKyAgICAgICAgICAjIGJlaGF2aW9yLCBjaGFuZ2UgdGhlIG91dHB1dCBsb2Nh
dGlvbi4KKyAgICAgICAgICAnYWN0aW9uJzogWworICAgICAgICAgICAgJ3B5dGhvbicsCisgICAg
ICAgICAgICAnc2NyaXB0cy9ydWxlX2JpbmRpbmcucHknLAorICAgICAgICAgICAgJ1dlYicsCisg
ICAgICAgICAgICAnPChSVUxFX0lOUFVUX1BBVEgpJywKKyAgICAgICAgICAgICc8KFNIQVJFRF9J
TlRFUk1FRElBVEVfRElSKS93ZWJjb3JlL2JpbmRpbmdzJywKKyAgICAgICAgICAgICc8KFNIQVJF
RF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGluZ3MnLAorICAgICAgICAgICAgJy0tJywK
KyAgICAgICAgICAgICc8QChfaW5wdXRzKScsCisgICAgICAgICAgICAnLS0nLAorICAgICAgICAg
ICAgJy0tZGVmaW5lcycsICdMQU5HVUFHRV9KQVZBU0NSSVBUJywKKyAgICAgICAgICAgICctLWdl
bmVyYXRvcicsICdXSScsCisgICAgICAgICAgICAnPEAoZ2VuZXJhdG9yX2luY2x1ZGVfZGlycykn
CisgICAgICAgICAgXSwKKyAgICAgICAgICAnbWVzc2FnZSc6ICdHZW5lcmF0aW5nIEluc3BlY3Rv
ciBiaW5kaW5nIGZyb20gPChSVUxFX0lOUFVUX1BBVEgpJywKKyAgICAgICAgfSwKICAgICAgIF0s
CiAgICAgfSwKICAgICB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMv
YWN0aW9uX2Rlcml2ZWRzb3VyY2VzYWxsaW5vbmUucHkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwL3Nj
cmlwdHMvYWN0aW9uX2Rlcml2ZWRzb3VyY2VzYWxsaW5vbmUucHkKaW5kZXggYzljNWJmNS4uNmNm
NjBhYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9kZXJp
dmVkc291cmNlc2FsbGlub25lLnB5CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9h
Y3Rpb25fZGVyaXZlZHNvdXJjZXNhbGxpbm9uZS5weQpAQCAtMTIzLDEyICsxMjMsMTYgQEAgZGVm
IGV4dHJhY3RNZXRhRGF0YShmaWxlUGF0aHMpOgogICAgICAgICAocGFyZW50UGF0aCwgZmlsZU5h
bWUpID0gb3MucGF0aC5zcGxpdChmKQogICAgICAgICAoaW50ZXJmYWNlTmFtZSwgZXh0KSA9IG9z
LnBhdGguc3BsaXRleHQoZmlsZU5hbWUpCiAKLSAgICAgICAgaWYgbm90IGV4dCA9PSAnLmlkbCc6
CisgICAgICAgIGlmIGV4dCA9PSAnLmlkbCc6CisgICAgICAgICAgICBmaWxlTmFtZSA9ICdWOCVz
JyAlIGludGVyZmFjZU5hbWUKKyAgICAgICAgZWxpZiBleHQgPT0gJy53aWknOgorICAgICAgICAg
ICAgZmlsZU5hbWUgPSAnV2ViJXMnICUgaW50ZXJmYWNlTmFtZQorICAgICAgICBlbHNlOgogICAg
ICAgICAgICAgY29udGludWUKIAogICAgICAgICBtZXRhRGF0YSA9IHsKICAgICAgICAgICAgICdj
b25kaXRpb25hbCc6IGV4dHJhY3RDb25kaXRpb25hbChmKSwKLSAgICAgICAgICAgICduYW1lJzog
aW50ZXJmYWNlTmFtZSwKKyAgICAgICAgICAgICduYW1lJzogZmlsZU5hbWUsCiAgICAgICAgIH0K
IAogICAgICAgICBtZXRhRGF0YUxpc3QuYXBwZW5kKG1ldGFEYXRhKQpAQCAtMTU5LDcgKzE2Myw3
IEBAIGRlZiBnZW5lcmF0ZUNvbnRlbnQoZmlsZXNNZXRhRGF0YSwgcGFydGl0aW9uLCB0b3RhbFBh
cnRpdGlvbnMpOgogICAgICAgICBpZiBjb25kaXRpb25hbCBhbmQgcHJldkNvbmRpdGlvbmFsICE9
IGNvbmRpdGlvbmFsOgogICAgICAgICAgICAgb3V0cHV0LmFwcGVuZCgnXG4jaWYgJXNcbicgJSBm
b3JtYXRDb25kaXRpb25hbChjb25kaXRpb25hbCkpCiAKLSAgICAgICAgb3V0cHV0LmFwcGVuZCgn
I2luY2x1ZGUgImJpbmRpbmdzL1Y4JXMuY3BwIlxuJyAlIG5hbWUpCisgICAgICAgIG91dHB1dC5h
cHBlbmQoJyNpbmNsdWRlICJiaW5kaW5ncy8lcy5jcHAiXG4nICUgbmFtZSkKIAogICAgICAgICBw
cmV2Q29uZGl0aW9uYWwgPSBjb25kaXRpb25hbAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwL3NjcmlwdHMvcnVsZV9iaW5kaW5nLnB5IGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3Jp
cHRzL3J1bGVfYmluZGluZy5weQppbmRleCAyNGQxNzhmLi5jZGQ0MjhkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvcnVsZV9iaW5kaW5nLnB5CisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5neXAvc2NyaXB0cy9ydWxlX2JpbmRpbmcucHkKQEAgLTgyLDggKzgyLDggQEAgZGVm
IG1haW4oYXJncyk6CiAgICAgYXNzZXJ0IGxlbihzZWN0aW9ucykgPT0gMywgc2VjdGlvbnMKICAg
ICAoYmFzZSwgaW5wdXRzLCBvcHRpb25zKSA9IHNlY3Rpb25zCiAKLSAgICBhc3NlcnQgbGVuKGJh
c2UpID09IDMsIGJhc2UKLSAgICAoaW5wdXQsIGNwcGRpciwgaGRpcikgPSBiYXNlCisgICAgYXNz
ZXJ0IGxlbihiYXNlKSA9PSA0LCBiYXNlCisgICAgKHByZWZpeCwgaW5wdXQsIGNwcGRpciwgaGRp
cikgPSBiYXNlCiAKICAgICBhc3NlcnQgbGVuKGlucHV0cykgPiAxLCBpbnB1dHMKICAgICBnZW5l
cmF0ZUJpbmRpbmdzID0gaW5wdXRzWzBdCkBAIC0xMjIsNyArMTIyLDcgQEAgZGVmIG1haW4oYXJn
cyk6CiAgICAgaWYgY3BwZGlyICE9IGhkaXI6CiAgICAgICAgIGlucHV0QmFzZW5hbWUgPSBvcy5w
YXRoLmJhc2VuYW1lKGlucHV0KQogICAgICAgICAocm9vdCwgZXh0KSA9IG9zLnBhdGguc3BsaXRl
eHQoaW5wdXRCYXNlbmFtZSkKLSAgICAgICAgaG5hbWUgPSAnVjglcy5oJyAlIHJvb3QKKyAgICAg
ICAgaG5hbWUgPSAnJXMlcy5oJyAlIChwcmVmaXgudXBwZXIoKSwgcm9vdCkKICAgICAgICAgaHNy
YyA9IG9zLnBhdGguam9pbihjcHBkaXIsIGhuYW1lKQogICAgICAgICBoZHN0ID0gb3MucGF0aC5q
b2luKGhkaXIsIGhuYW1lKQogICAgICAgICBzaHV0aWwuY29weWZpbGUoaHNyYywgaGRzdCkKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggYmY0MzI1MS4uMDU5ZWExYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE5NCw2ICsxOTQsNyBAQAogICAgICAgICAgICAg
J2h0bWwvVm9pZENhbGxiYWNrLmlkbCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0SG9zdC5pZGwnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5k
LmlkbCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi53aWknLAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsJywKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5pZGwnLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUucHJpIGIvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCBmNGFiYzI3Li5kYTA1YTRmIDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAg
LTYzNSw2ICs2MzUsOCBAQCBJRExfQklORElOR1MgKz0gXAogICAgIHhtbC9YUGF0aEV2YWx1YXRv
ci5pZGwgXAogICAgIHhtbC9YU0xUUHJvY2Vzc29yLmlkbAogCitXSUlfQklORElOR1MgPSBpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLndpaQorCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVf
TUFUSE1MPTEpIHsKICAgICBtYXRobWxuYW1lcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09V
UkNFU19ESVJ9L01hdGhNTE5hbWVzLmNwcAogICAgIG1hdGhtbG5hbWVzLmlucHV0ID0gTUFUSE1M
X05BTUVTCkBAIC03MDAsNiArNzAyLDE4IEBAIGlkbC5kZXBlbmRzID0gJCRQV0QvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtIFwKICAgICAgICAgICAgICAgJCRQV0QvYmluZGluZ3Mv
c2NyaXB0cy9JbkZpbGVzUGFyc2VyLnBtCiBhZGRFeHRyYUNvbXBpbGVyKGlkbCkKIAorIyBHRU5F
UkFUT1IgMjogV0lJIGNvbXBpbGVyCit3aWkub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJD
RVNfRElSfS9XZWIke1FNQUtFX0ZJTEVfQkFTRX0uY3BwCit3aWkuaW5wdXQgPSBXSUlfQklORElO
R1MKK3dpaS53a1NjcmlwdCA9ICQkUFdEL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGlu
Z3MucGwKK3dpaS5jb21tYW5kcyA9IHBlcmwgLUkkJFBXRC9iaW5kaW5ncy9zY3JpcHRzICQkaWRs
LndrU2NyaXB0IC0tZGVmaW5lcyBcIiQke0ZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUfVwiIC0t
Z2VuZXJhdG9yIFdJIC0taW5jbHVkZSAkJFBXRC9kb20gLS1pbmNsdWRlICQkUFdEL2h0bWwgLS1p
bmNsdWRlICQkUFdEL3htbCAtLWluY2x1ZGUgJCRQV0Qvc3ZnIC0tb3V0cHV0RGlyICQkV0NfR0VO
RVJBVEVEX1NPVVJDRVNfRElSIC0tcHJlcHJvY2Vzc29yIFwiJCR7UU1BS0VfTU9DfSAtRVwiICR7
UU1BS0VfRklMRV9OQU1FfQoraWRsLmRlcGVuZHMgPSAkJFBXRC9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3IucG0gXAorICAgICAgICAgICAgICAkJFBXRC9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JXSS5wbSBcCisgICAgICAgICAgICAgICQkUFdEL2JpbmRpbmdzL3NjcmlwdHMv
SURMUGFyc2VyLnBtIFwKKyAgICAgICAgICAgICAgJCRQV0QvYmluZGluZ3Mvc2NyaXB0cy9JRExT
dHJ1Y3R1cmUucG0gXAorICAgICAgICAgICAgICAkJFBXRC9iaW5kaW5ncy9zY3JpcHRzL0luRmls
ZXNQYXJzZXIucG0KK2FkZEV4dHJhQ29tcGlsZXIod2lpKQorCiAjIEdFTkVSQVRPUiAzOiB0b2tl
bml6ZXIgKGZsZXgpCiB0b2tlbml6ZXIub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNf
RElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uY3BwCiB0b2tlbml6ZXIuaW5wdXQgPSBUT0tFTklaRVIK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDIzMGY3MzQuLmQ5NDAzNTYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjAwNjUsNiArMjAwNjUs
MTQgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0i
JChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJJ
bnNwZWN0b3JGcm9udGVuZDIuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xXZWJJbnNwZWN0b3JGcm9udGVuZDIuaCINCisJCQkJPg0KKwkJCTwvRmls
ZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV01MRWxlbWVudEZhY3RvcnkuY3BwIg0KIAkJ
CQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMzgwN2ZmMC4uZTQ0N2NiNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTk5Niw2ICs5OTYsNyBAQAogCQk0RjE1MzRFMDExQjUzMzAyMDAy
MUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5n
QmVoYXZpb3JUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTRGMzI4OUI1MTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYzMjg5QjMx
MUE0MkFBQjAwNUFCRTdFIC8qIEluc3BlY3RvclZhbHVlcy5jcHAgKi87IH07CiAJCTRGMzI4OUI2
MTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGMzI4OUI0MTFBNDJBQUIwMDVBQkU3RSAvKiBJ
bnNwZWN0b3JWYWx1ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk0Rjc5NjA0RDExQzgwREEyMDBDMENDM0MgLyogV2ViSW5zcGVjdG9yRnJvbnRl
bmQyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRG
Nzk2MDMyMTFDODBDOEEwMEMwQ0MzQyAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZDIuY3BwICovOyB9
OwogCQk0RkQ4RDBGMjExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkQ4RDBGMDExOUM3MThC
MDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5jcHAgKi87IH07CiAJCTRGRDhEMEYzMTE5QzcxOEIw
MDJGQTgyNSAvKiBTY3JpcHRHQ0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0RkQ4RDBGMTExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NFdmVu
dC5oICovOyB9OwogCQk1MTAxODQ2OTBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMTg0NjcwQjA4
NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjYxNSw2ICs2NjE2LDkgQEAKIAkJNEYxNTM0REYxMUI1
MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEVkaXRpbmdCZWhhdmlvclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTRGMzI4OUIzMTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yVmFsdWVz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEYzMjg5QjQxMUE0MkFBQjAwNUFC
RTdFIC8qIEluc3BlY3RvclZhbHVlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbnNwZWN0b3JWYWx1ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEY3OTYw
MEYxMUM3RTNFOTAwQzBDQzNDIC8qIEluc3BlY3RvckZyb250ZW5kMi53aWkgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmQyLndpaTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNEY3OTYwMzIxMUM4MEM4QTAwQzBDQzNDIC8qIFdlYkluc3BlY3RvckZyb250ZW5k
Mi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJbnNwZWN0b3JG
cm9udGVuZDIuY3BwOyBwYXRoID0gLi4vV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9XZWJJbnNwZWN0b3JGcm9udGVuZDIuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JP
T1Q7IH07CisJCTRGNzk2MDMzMTFDODBDOEEwMEMwQ0MzQyAvKiBXZWJJbnNwZWN0b3JGcm9udGVu
ZDIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVjdG9yRnJvbnRl
bmQyLmg7IHBhdGggPSAuLi9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L1dlYkluc3BlY3RvckZyb250ZW5kMi5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJ
CTRGRDhEMEYwMTE5QzcxOEIwMDJGQTgyNSAvKiBTY3JpcHRHQ0V2ZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEdDRXZlbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0RkQ4RDBGMTExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NF
dmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRHQ0V2ZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDE4NDY3MEIwODYwMkEwMDRBODI1RiAv
KiBDYWNoZWRQYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFBh
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMTcwLDYgKzExMTc0LDggQEAK
IAkJCQk5RkEzN0VGNzExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlLmggKi8sCiAJ
CQkJOUZBMzdFRjgxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwICov
LAogCQkJCTlGQTM3RUY5MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2RlLmgg
Ki8sCisJCQkJNEY3OTYwMzIxMUM4MEM4QTAwQzBDQzNDIC8qIFdlYkluc3BlY3RvckZyb250ZW5k
Mi5jcHAgKi8sCisJCQkJNEY3OTYwMzMxMUM4MEM4QTAwQzBDQzNDIC8qIFdlYkluc3BlY3RvckZy
b250ZW5kMi5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBJbnNwZWN0b3I7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtMTEyMDEsNiArMTEyMDcsNyBAQAogCQkJCTQxRjA2MTcyMEY1RjAw
QUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCAqLywKIAkJCQk3QUVE
M0UwMzBGQkIxRUFBMDBEMkIwM0MgLyogSW5zcGVjdG9yRnJvbnRlbmQuY3BwICovLAogCQkJCTdB
RUQzRTA0MEZCQjFFQUEwMEQyQjAzQyAvKiBJbnNwZWN0b3JGcm9udGVuZC5oICovLAorCQkJCTRG
Nzk2MDBGMTFDN0UzRTkwMEMwQ0MzQyAvKiBJbnNwZWN0b3JGcm9udGVuZDIud2lpICovLAogCQkJ
CUYzNDRDNzEyMTEyNUI4MkMwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oICov
LAogCQkJCUYzNDRDNzU3MTEyOTRGRjYwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmNwcCAqLywKIAkJCQlGMzQ0Qzc1MjExMjk0RDlEMDBGMjZFRUUgLyogSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbC5oICovLApAQCAtMjE3MjAsNiArMjE3MjcsNyBAQAogCQkJCUI2
QjA1NDA5MTFCNjhGMTAwMDI1NjRDNSAvKiBJREJPYmplY3RTdG9yZUltcGwuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODE2QzgwNjgxMUJFODg3RTAwOUE0NUU5IC8qIElEQktleVJhbmdlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTgxNkM4MEIxMTFCRTk5MzQwMDlBNDVFOSAvKiBKU0lEQktleVJh
bmdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRGNzk2MDREMTFDODBEQTIwMEMwQ0MzQyAvKiBX
ZWJJbnNwZWN0b3JGcm9udGVuZDIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbSBiL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCmluZGV4IDdjMGY0MjcuLjdmODBiMTMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCisrKyBiL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCkBAIC04Myw2ICs4Myw3IEBAIHN1
YiBuZXcKICAgICAkdXNlTGF5ZXJPblRvcCA9IHNoaWZ0OwogICAgICRwcmVwcm9jZXNzb3IgPSBz
aGlmdDsKICAgICAkd3JpdGVEZXBlbmRlbmNpZXMgPSBzaGlmdDsKKyAgICAkdmVyYm9zZSA9IHNo
aWZ0OwogCiAgICAgYmxlc3MoJHJlZmVyZW5jZSwgJG9iamVjdCk7CiAgICAgcmV0dXJuICRyZWZl
cmVuY2U7CkBAIC0xMDYsNyArMTA3LDcgQEAgc3ViIFByb2Nlc3NEb2N1bWVudAogCiAgICAgIyBE
eW5hbWljYWxseSBsb2FkIGV4dGVybmFsIGNvZGUgZ2VuZXJhdGlvbiBwZXJsIG1vZHVsZQogICAg
IHJlcXVpcmUgJGlmYWNlTmFtZSAuICIucG0iOwotICAgICRjb2RlR2VuZXJhdG9yID0gJGlmYWNl
TmFtZS0+bmV3KCRvYmplY3QsICR1c2VPdXRwdXREaXIsICR1c2VMYXllck9uVG9wLCAkcHJlcHJv
Y2Vzc29yLCAkd3JpdGVEZXBlbmRlbmNpZXMpOworICAgICRjb2RlR2VuZXJhdG9yID0gJGlmYWNl
TmFtZS0+bmV3KCRvYmplY3QsICR1c2VPdXRwdXREaXIsICR1c2VMYXllck9uVG9wLCAkcHJlcHJv
Y2Vzc29yLCAkd3JpdGVEZXBlbmRlbmNpZXMsICR2ZXJib3NlKTsKICAgICB1bmxlc3MgKGRlZmlu
ZWQoJGNvZGVHZW5lcmF0b3IpKSB7CiAgICAgICAgIG15ICRjbGFzc2VzID0gJHVzZURvY3VtZW50
LT5jbGFzc2VzOwogICAgICAgICBmb3JlYWNoIG15ICRjbGFzcyAoQCRjbGFzc2VzKSB7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvcldJLnBtIGIvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JXSS5wbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4yNDM3YjAwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JXSS5wbQpAQCAtMCwwICsxLDM2NiBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIworIyAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIyAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgorIyAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorIyAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorIyBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworCitwYWNrYWdlIENvZGVHZW5lcmF0b3JXSTsKKwordXNlIHN0
cmljdDsKKwordXNlIEZpbGU6OnN0YXQ7CisKK215ICV0eXBlVHJhbnNmb3JtOworJHR5cGVUcmFu
c2Zvcm17Ikluc3BlY3RvckNsaWVudCJ9ID0geworICAgICJmb3J3YXJkIiA9PiAiSW5zcGVjdG9y
Q2xpZW50IiwKKyAgICAiaGVhZGVyIiA9PiAiSW5zcGVjdG9yQ2xpZW50LmgiLAorfTsKKyR0eXBl
VHJhbnNmb3JteyJSZWZQdHIifSA9IHsKKyAgICAiZm9yd2FyZEhlYWRlciIgPT4gInd0Zi9SZWZQ
dHIuaCIsCit9OworJHR5cGVUcmFuc2Zvcm17Ik9iamVjdCJ9ID0geworICAgICJwYXJhbSIgPT4g
ImNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiIsCisgICAgInJldHVybiIgPT4gIlBhc3NS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiIsCisgICAgImZvcndhcmQiID0+ICJJbnNwZWN0b3JPYmpl
Y3QiLAorICAgICJoZWFkZXIiID0+ICJJbnNwZWN0b3JWYWx1ZXMuaCIsCisgICAgInB1c2giID0+
ICJwdXNoIgorfTsKKyR0eXBlVHJhbnNmb3JteyJBcnJheSJ9ID0geworICAgICJwYXJhbSIgPT4g
ImNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIiwKKyAgICAicmV0VmFsIiA9PiAiUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JBcnJheT4iLAorICAgICJmb3J3YXJkIiA9PiAiSW5zcGVjdG9yQXJyYXki
LAorICAgICJoZWFkZXIiID0+ICJJbnNwZWN0b3JWYWx1ZXMuaCIsCisgICAgInB1c2giID0+ICJw
dXNoIgorfTsKKyR0eXBlVHJhbnNmb3JteyJWYWx1ZSJ9ID0geworICAgICJwYXJhbSIgPT4gImNv
bnN0IFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4mIiwKKyAgICAicmV0VmFsdWUiID0+ICJQYXNzUmVm
UHRyPEluc3BlY3RvclZhbHVlPiIsCisgICAgImZvcndhcmQiID0+ICJJbnNwZWN0b3JWYWx1ZSIs
CisgICAgImhlYWRlciIgPT4gIkluc3BlY3RvclZhbHVlcy5oIiwKKyAgICAicHVzaCIgPT4gInB1
c2giCit9OworJHR5cGVUcmFuc2Zvcm17IlN0cmluZyJ9ID0geworICAgICJwYXJhbSIgPT4gImNv
bnN0IFN0cmluZyYiLAorICAgICJyZXRWYWwiID0+ICJTdHJpbmciLAorICAgICJmb3J3YXJkIiA9
PiAiU3RyaW5nIiwKKyAgICAiaGVhZGVyIiA9PiAiUGxhdGZvcm1TdHJpbmcuaCIsCisgICAgInB1
c2giID0+ICJwdXNoU3RyaW5nIgorfTsKKyR0eXBlVHJhbnNmb3JteyJsb25nIn0gPSB7CisgICAg
InBhcmFtIiA9PiAibG9uZyIsCisgICAgInJldFZhbCIgPT4gImxvbmciLAorICAgICJmb3J3YXJk
IiA9PiAiIiwKKyAgICAiaGVhZGVyIiA9PiAiIiwKKyAgICAicHVzaCIgPT4gInB1c2hOdW1iZXIi
Cit9OworJHR5cGVUcmFuc2Zvcm17InVuc2lnbmVkIGxvbmcifSA9IHsKKyAgICAicGFyYW0iID0+
ICJ1bnNpZ25lZCBsb25nIiwKKyAgICAicmV0VmFsIiA9PiAidW5zaWduZWQgbG9uZyIsCisgICAg
ImZvcndhcmQiID0+ICIiLAorICAgICJoZWFkZXIiID0+ICIiLAorICAgICJwdXNoIiA9PiAicHVz
aE51bWJlciIKK307CiskdHlwZVRyYW5zZm9ybXsiYm9vbGVhbiJ9ID0geworICAgICJwYXJhbSIg
PT4gImJvb2wiLAorICAgICJyZXRWYWwiPT4gImJvb2wiLAorICAgICJmb3J3YXJkIiA9PiAiIiwK
KyAgICAiaGVhZGVyIiA9PiAiIiwKKyAgICAicHVzaCIgPT4gInB1c2hCb29sIgorfTsKKyR0eXBl
VHJhbnNmb3JteyJ2b2lkIn0gPSB7CisgICAgInJldFZhbCIgPT4gInZvaWQiLAorICAgICJmb3J3
YXJkIiA9PiAiIiwKKyAgICAiaGVhZGVyIiA9PiAiIgorfTsKKworIyBEZWZhdWx0IExpY2Vuc2Ug
VGVtcGxhdGVzCitteSAkaGVhZGVyTGljZW5zZVRlbXBsYXRlID0gPDwgIkVPRiI7CisvKgorKiBU
aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4gc291cmNlIHByb2plY3QuCisqIFRo
aXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3MucGwuIERPIE5P
VCBNT0RJRlkhCisqCisqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK0VPRgorCitteSAkaW1wbGVtZW50YXRpb25MaWNlbnNlVGVtcGxh
dGUgPSA8PCAiRU9GIjsKKy8qCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9w
ZW4gc291cmNlIHByb2plY3QuCisgKiBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdl
bmVyYXRlLWJpbmRpbmdzLnBsLiBETyBOT1QgTU9ESUZZIQorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK0VPRgorCitteSAkY29k
ZUdlbmVyYXRvcjsKK215ICRvdXRwdXREaXI7CitteSAkd3JpdGVEZXBlbmRlbmNpZXM7CitteSAk
dmVyYm9zZTsKKworbXkgJG5hbWVzcGFjZTsKK215ICRmaWxlTmFtZTsKK215ICVkaXNjb3ZlcmVk
VHlwZXM7CisKK215IEBjbGFzc0RlZmluaXRpb247CitteSBAZnVuY3Rpb25EZWZpbml0aW9uczsK
Kworc3ViIHR5cGVTcGVjCit7CisgICAgbXkgJHBhcmFtID0gc2hpZnQ7CisgICAgbXkgJHJldFZh
bHVlID0gc2hpZnQ7CisKKyAgICBteSAkdHlwZSA9ICR0eXBlVHJhbnNmb3JteyRwYXJhbS0+dHlw
ZX0tPnskcmV0VmFsdWUgPyAicmV0VmFsIiA6ICJwYXJhbSJ9OworICAgICRkaXNjb3ZlcmVkVHlw
ZXN7JHBhcmFtLT50eXBlfSA9IDE7CisgICAgJHR5cGUgb3IgZGllICJpbnZhbGlkIHR5cGUgc3Bl
Y2lmaWNhdGlvbiBcIiIgLiAkcGFyYW0tPnR5cGUgLiJcIiI7CisgICAgcmV0dXJuICR0eXBlOwor
fQorCisjIERlZmF1bHQgY29uc3RydWN0b3IKK3N1YiBuZXcKK3sKKyAgICBteSAkb2JqZWN0ID0g
c2hpZnQ7CisgICAgbXkgJHJlZmVyZW5jZSA9IHsgfTsKKworICAgICRjb2RlR2VuZXJhdG9yID0g
c2hpZnQ7CisgICAgJG91dHB1dERpciA9IHNoaWZ0OworICAgIHNoaWZ0OyAjICR1c2VMYXllck9u
VG9wCisgICAgc2hpZnQ7ICMgJHByZXByb2Nlc3NvcgorICAgICR3cml0ZURlcGVuZGVuY2llcyA9
IHNoaWZ0OworICAgICR2ZXJib3NlID0gc2hpZnQ7CisKKyAgICBibGVzcygkcmVmZXJlbmNlLCAk
b2JqZWN0KTsKKyAgICByZXR1cm4gJHJlZmVyZW5jZTsKK30KKworIyBQYXJhbXM6ICdpZGxEb2N1
bWVudCcgc3RydWN0CitzdWIgR2VuZXJhdGVNb2R1bGUKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hp
ZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAkbmFtZXNwYWNlID0gJGRhdGFO
b2RlLT5tb2R1bGU7Cit9CisKKyMgUGFyYW1zOiAnaWRsRG9jdW1lbnQnIHN0cnVjdAorc3ViIEdl
bmVyYXRlSW50ZXJmYWNlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRpbnRl
cmZhY2UgPSBzaGlmdDsKKyAgICBteSAkZGVmaW5lcyA9IHNoaWZ0OworCisgICAgbXkgJGNsYXNz
TmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CisgICAgJGZpbGVOYW1lID0gJGNsYXNzTmFtZTsKKwor
ICAgICRkaXNjb3ZlcmVkVHlwZXN7Ikluc3BlY3RvckNsaWVudCJ9ID0gMTsKKyAgICAkZGlzY292
ZXJlZFR5cGVzeyJSZWZQdHIifSA9IDE7CisKKyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICJj
bGFzcyAkY2xhc3NOYW1lIHsiKTsKKyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICJwdWJsaWM6
Iik7CisgICAgcHVzaChAY2xhc3NEZWZpbml0aW9uLCAiICAgICRjbGFzc05hbWUoSW5zcGVjdG9y
Q2xpZW50KiBpbnNwZWN0b3JDbGllbnQpIDogbV9pbnNwZWN0b3JDbGllbnQoaW5zcGVjdG9yQ2xp
ZW50KSB7IH0iKTsKKyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICIiKTsKKyAgICBwdXNoKEBj
bGFzc0RlZmluaXRpb24sIGdlbmVyYXRlRnVuY3Rpb25zRGVjbGFyYXRpb25zKCRpbnRlcmZhY2Us
ICRjbGFzc05hbWUpKTsKKyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICIiKTsKKyAgICBwdXNo
KEBjbGFzc0RlZmluaXRpb24sICJwcml2YXRlOiIpOworICAgIHB1c2goQGNsYXNzRGVmaW5pdGlv
biwgIiAgICB2b2lkIHNlbmRTaW1wbGVNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmKTsi
KTsKKyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICIgICAgSW5zcGVjdG9yQ2xpZW50KiBtX2lu
c3BlY3RvckNsaWVudDsiKTsKKyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICJ9OyIpOworCisg
ICAgcHVzaChAZnVuY3Rpb25EZWZpbml0aW9ucywgInZvaWQgJHtjbGFzc05hbWV9OjpzZW5kU2lt
cGxlTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBmdW5jdGlvbk5hbWUpIik7CisgICAg
cHVzaChAZnVuY3Rpb25EZWZpbml0aW9ucywgInsiKTsKKyAgICBwdXNoKEBmdW5jdGlvbkRlZmlu
aXRpb25zLCAiICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gYXJndW1lbnRzID0gSW5zcGVjdG9y
QXJyYXk6OmNyZWF0ZSgpOyIpOworICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5pdGlvbnMsICIgICAg
YXJndW1lbnRzLT5wdXNoU3RyaW5nKGZ1bmN0aW9uTmFtZSk7Iik7CisgICAgcHVzaChAZnVuY3Rp
b25EZWZpbml0aW9ucywgIiAgICBtX2luc3BlY3RvckNsaWVudC0+c2VuZE1lc3NhZ2VUb0Zyb250
ZW5kKGFyZ3VtZW50cy0+dG9KU09OU3RyaW5nKCkpOyIpOworICAgIHB1c2goQGZ1bmN0aW9uRGVm
aW5pdGlvbnMsICJ9Iik7Cit9CisKK3N1YiBnZW5lcmF0ZUZ1bmN0aW9uc0RlY2xhcmF0aW9ucwor
eworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7
CisKKyAgICBteSBAZnVuY3Rpb25EZWNsYXJhdGlvbnM7CisgICAgZm9yZWFjaCBteSAkZnVuY3Rp
b24gKEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgeworICAgICAgICBteSAkZnVuY3Rpb25OYW1l
ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CisgICAgICAgIG15ICRhYnN0cmFjdCA9ICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiYWJzdHJhY3QifTsKKyAg
ICAgICAgbXkgJGFyZ3VtZW50cyA9ICIiOworICAgICAgICBmb3JlYWNoIG15ICRwYXJhbWV0ZXIg
KEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAgJHBhcmFtZXRlci0+bmFt
ZSBvciBkaWUgImVtcHR5IGFyZ3VtZW50IG5hbWUgc3BlY2lmaWVkIGZvciBmdW5jdGlvbiAke2Ns
YXNzTmFtZX06OiRmdW5jdGlvbk5hbWUgYW5kIGFyZ3VtZW50IHR5cGUgIiAuICRwYXJhbWV0ZXIt
PnR5cGU7CisgICAgICAgICAgICAkYXJndW1lbnRzID0gJGFyZ3VtZW50cyAuICIsICIgaWYgKCRh
cmd1bWVudHMpOworICAgICAgICAgICAgJGFyZ3VtZW50cyA9ICRhcmd1bWVudHMgLiB0eXBlU3Bl
YygkcGFyYW1ldGVyKSAuICIgIiAuICRwYXJhbWV0ZXItPm5hbWU7CisgICAgICAgIH0KKyAgICAg
ICAgbXkgJHNpZ25hdHVyZSA9ICIgICAgIiAuIHR5cGVTcGVjKCRmdW5jdGlvbi0+c2lnbmF0dXJl
LCAxKSAuICIgJGZ1bmN0aW9uTmFtZSgkYXJndW1lbnRzKSI7CisgICAgICAgIHB1c2goQGZ1bmN0
aW9uRGVjbGFyYXRpb25zLCAkYWJzdHJhY3QgPyAiJHNpZ25hdHVyZSA9IDA7IiA6ICIkc2lnbmF0
dXJlOyIpOworICAgICAgICBwdXNoKEBmdW5jdGlvbkRlZmluaXRpb25zLCBnZW5lcmF0ZUZ1bmN0
aW9uc0ltcGwoJGNsYXNzTmFtZSwgJGZ1bmN0aW9uLCAkYXJndW1lbnRzKSkgaWYgISRhYnN0cmFj
dDsKKyAgICB9CisgICAgcmV0dXJuIEBmdW5jdGlvbkRlY2xhcmF0aW9uczsKK30KKworc3ViIGdl
bmVyYXRlSGVhZGVyCit7CisgICAgbXkgQGhlYWRlckNvbnRlbnQgPSBzcGxpdCgiXHIiLCAkaGVh
ZGVyTGljZW5zZVRlbXBsYXRlKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2lmbmRlZiAk
e2ZpbGVOYW1lfV9oIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNkZWZpbmUgJHtmaWxl
TmFtZX1faCIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIiKTsKKworICAgIG15IEBmb3J3
YXJkSGVhZGVyczsKKyAgICBmb3JlYWNoIG15ICR0eXBlIChrZXlzICVkaXNjb3ZlcmVkVHlwZXMp
IHsKKyAgICAgICAgcHVzaChAZm9yd2FyZEhlYWRlcnMsICIjaW5jbHVkZSA8IiAuICR0eXBlVHJh
bnNmb3JteyR0eXBlfS0+eyJmb3J3YXJkSGVhZGVyIn0gLiAiPiIpIGlmICEkdHlwZVRyYW5zZm9y
bXskdHlwZX0tPnsiZm9yd2FyZEhlYWRlciJ9IGVxICAiIjsKKyAgICB9CisgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgc29ydCBAZm9yd2FyZEhlYWRlcnMpOworICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIiKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAibmFtZXNwYWNlICRuYW1lc3BhY2Ug
eyIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIiKTsKKworICAgIG15IEBmb3J3YXJkRGVj
bGFyYXRpb25zOworICAgIGZvcmVhY2ggbXkgJHR5cGUgKGtleXMgJWRpc2NvdmVyZWRUeXBlcykg
eworICAgICAgICBwdXNoKEBmb3J3YXJkRGVjbGFyYXRpb25zLCAiY2xhc3MgIiAuICR0eXBlVHJh
bnNmb3JteyR0eXBlfS0+eyJmb3J3YXJkIn0gLiAiOyIpIGlmICEkdHlwZVRyYW5zZm9ybXskdHlw
ZX0tPnsiZm9yd2FyZCJ9IGVxICAiIjsKKyAgICB9CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
c29ydCBAZm9yd2FyZERlY2xhcmF0aW9ucyk7CisKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
Iik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgQGNsYXNzRGVmaW5pdGlvbik7CisgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9IC8vIG5h
bWVzcGFjZSAkbmFtZXNwYWNlIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiIpOworICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5kaWYgLy8gIWRlZmluZWQoJHtmaWxlTmFtZX1faCki
KTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiIik7CisgICAgcmV0dXJuIEBoZWFkZXJDb250
ZW50OworfQorCitzdWIgZ2VuZXJhdGVTb3VyY2UKK3sKKyAgICBteSBAc291cmNlQ29udGVudCA9
IHNwbGl0KCJcciIsICRpbXBsZW1lbnRhdGlvbkxpY2Vuc2VUZW1wbGF0ZSk7CisgICAgcHVzaChA
c291cmNlQ29udGVudCwgIlxuI2luY2x1ZGUgXCJjb25maWcuaFwiIik7CisgICAgcHVzaChAc291
cmNlQ29udGVudCwgIiNpbmNsdWRlIFwiV2ViJGZpbGVOYW1lLmhcIiIpOworICAgIHB1c2goQHNv
dXJjZUNvbnRlbnQsICIiKTsKKyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiI2lmIEVOQUJMRShJ
TlNQRUNUT1IpIik7CisgICAgcHVzaChAc291cmNlQ29udGVudCwgIiIpOworCisgICAgbXkgJWhl
YWRlcnM7CisgICAgZm9yZWFjaCBteSAkdHlwZSAoa2V5cyAlZGlzY292ZXJlZFR5cGVzKSB7Cisg
ICAgICAgICRoZWFkZXJzeyIjaW5jbHVkZSBcIiIgLiAkdHlwZVRyYW5zZm9ybXskdHlwZX0tPnsi
aGVhZGVyIn0gLiAiXCIifSA9IDEgaWYgISR0eXBlVHJhbnNmb3JteyR0eXBlfS0+eyJoZWFkZXIi
fSBlcSAgIiI7CisgICAgfQorICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsIHNvcnQga2V5cyAlaGVh
ZGVycyk7CisgICAgcHVzaChAc291cmNlQ29udGVudCwgIiIpOworICAgIHB1c2goQHNvdXJjZUNv
bnRlbnQsICJuYW1lc3BhY2UgJG5hbWVzcGFjZSB7Iik7CisgICAgcHVzaChAc291cmNlQ29udGVu
dCwgIiIpOworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsIEBmdW5jdGlvbkRlZmluaXRpb25zKTsK
KyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiIik7CisgICAgcHVzaChAc291cmNlQ29udGVudCwg
In0gLy8gbmFtZXNwYWNlICRuYW1lc3BhY2UiKTsKKyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAi
Iik7CisgICAgcHVzaChAc291cmNlQ29udGVudCwgIiNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9S
KSIpOworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICIiKTsKKyAgICByZXR1cm4gQHNvdXJjZUNv
bnRlbnQ7Cit9CisKK3N1YiBnZW5lcmF0ZUZ1bmN0aW9uc0ltcGwKK3sKKyAgICBteSAkY2xhc3NO
YW1lID0gc2hpZnQ7CisgICAgbXkgJGZ1bmN0aW9uID0gc2hpZnQ7CisgICAgbXkgJGFyZ3VtZW50
cyA9IHNoaWZ0OworCisgICAgbXkgQGZ1bmM7CisKKyAgICBteSAkZnVuY3Rpb25OYW1lID0gJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CisKKyAgICBwdXNoKEBmdW5jLCB0eXBlU3BlYygkZnVu
Y3Rpb24tPnNpZ25hdHVyZSwgMSkgLiAiICIgLiAkY2xhc3NOYW1lIC4gIjo6IiAuICRmdW5jdGlv
bk5hbWUgLiAiKCIgLiAkYXJndW1lbnRzIC4gIikiKTsKKyAgICBwdXNoKEBmdW5jLCAieyIpOwor
CisgICAgbXkgJG51bVBhcmFtZXRlcnMgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc307CisgICAg
aWYgKCRudW1QYXJhbWV0ZXJzID4gMCkgeworICAgICAgICBwdXNoKEBmdW5jLCAiICAgIFJlZlB0
cjxJbnNwZWN0b3JBcnJheT4gYXJndW1lbnRzID0gSW5zcGVjdG9yQXJyYXk6OmNyZWF0ZSgpOyIp
OworICAgICAgICBwdXNoKEBmdW5jLCAiICAgIGFyZ3VtZW50cy0+cHVzaFN0cmluZyhcIiRmdW5j
dGlvbk5hbWVcIik7Iik7CisgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtZXRlciAoQHskZnVuY3Rp
b24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAgICBteSAkcHVzaENhbGwgPSAgJHR5cGVUcmFu
c2Zvcm17JHBhcmFtZXRlci0+dHlwZX0tPnsicHVzaCJ9OworICAgICAgICAgICAgcHVzaChAZnVu
YywgIiAgICBhcmd1bWVudHMtPiRwdXNoQ2FsbCgiIC4gJHBhcmFtZXRlci0+bmFtZSAuICIpOyIp
OworICAgICAgICB9CisgICAgICAgIHB1c2goQGZ1bmMsICIgICAgbV9pbnNwZWN0b3JDbGllbnQt
PnNlbmRNZXNzYWdlVG9Gcm9udGVuZChhcmd1bWVudHMtPnRvSlNPTlN0cmluZygpKTsiKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBwdXNoKEBmdW5jLCAiICAgIHNlbmRTaW1wbGVNZXNzYWdlVG9G
cm9udGVuZChcIiRmdW5jdGlvbk5hbWVcIik7Iik7CisgICAgfQorCisgICAgcHVzaChAZnVuYywg
In0iKTsKKyAgICBwdXNoKEBmdW5jLCAiIik7CisgICAgcmV0dXJuIEBmdW5jOworfQorCitzdWIg
ZmluaXNoCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworCisgICAgb3BlbihteSAkU09VUkNF
LCAiPiRvdXRwdXREaXIvV2ViJGZpbGVOYW1lLmNwcCIpIHx8IGRpZSAiQ291bGRuJ3Qgb3BlbiBm
aWxlICRvdXRwdXREaXIvV2ViJGZpbGVOYW1lLmNwcCI7CisgICAgb3BlbihteSAkSEVBREVSLCAi
PiRvdXRwdXREaXIvV2ViJGZpbGVOYW1lLmgiKSB8fCBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAk
b3V0cHV0RGlyL1dlYiRmaWxlTmFtZS5oIjsKKworICAgIHByaW50ICRTT1VSQ0Ugam9pbigiXG4i
LCBnZW5lcmF0ZVNvdXJjZSgpKTsKKyAgICBjbG9zZSgkU09VUkNFKTsKKyAgICB1bmRlZigkU09V
UkNFKTsKKworICAgIHByaW50ICRIRUFERVIgam9pbigiXG4iLCBnZW5lcmF0ZUhlYWRlcigpKTsK
KyAgICBjbG9zZSgkSEVBREVSKTsKKyAgICB1bmRlZigkSEVBREVSKTsKK30KKworMTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0gYi9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCmluZGV4IDNkZjk2YWIuLmUyNTBhNGQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQpAQCAtMjU5LDcgKzI1OSw3IEBAIHN1YiBQ
YXJzZUludGVyZmFjZQogICAgICAgICBteSBAaW50ZXJmYWNlTWV0aG9kcyA9IHNwbGl0KC87Lywg
JGludGVyZmFjZURhdGEpOwogCiAgICAgICAgIGZvcmVhY2ggbXkgJGxpbmUgKEBpbnRlcmZhY2VN
ZXRob2RzKSB7Ci0gICAgICAgICAgICBpZiAoJGxpbmUgPX4gL2F0dHJpYnV0ZS8pIHsKKyAgICAg
ICAgICAgIGlmICgkbGluZSA9fiAvXFdhdHRyaWJ1dGVcVy8pIHsKICAgICAgICAgICAgICAgICAk
bGluZSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNlQXR0cmlidXRlU2VsZWN0b3IvOwogCiAg
ICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZVR5cGUgPSAoZGVmaW5lZCgkMSkgPyAkMSA6IGRp
ZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFN0cnVjdHVyZS5wbSBiL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9JRExTdHJ1Y3R1cmUucG0KaW5kZXggZDYxZmNlMS4uMjI2ZGVkNyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFN0cnVjdHVyZS5wbQorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtCkBAIC04MCw3ICs4MCw3IEBAIG91ciAk
aWRsVHlwZSA9ICdbYS16QS1aMC05X10nOyAgICAgICMgR2VuZXJpYyB0eXBlLyJ2YWx1ZSBzdHJp
bmciIGlkZW50aWZpZXIKIG91ciAkaWRsRGF0YVR5cGUgPSAnW2EtekEtWjAtOVwgXSc7ICAgIyBH
ZW5lcmljIGRhdGEgdHlwZSBpZGVudGlmaWVyCiAKICMgTWFnaWMgSURMIHBhcnNpbmcgcmVndWxh
ciBleHByZXNzaW9ucwotbXkgJHN1cHBvcnRlZFR5cGVzID0gIigoPzp1bnNpZ25lZCApPyg/Omlu
dHxzaG9ydHwoPzpsb25nICk/bG9uZyl8KD86JGlkbElkTnMqKSkiOworb3VyICRzdXBwb3J0ZWRU
eXBlcyA9ICIoKD86dW5zaWduZWQgKT8oPzppbnR8c2hvcnR8KD86bG9uZyApP2xvbmcpfCg/OiRp
ZGxJZE5zKikpIjsKIAogIyBTcGVjaWFsIElETCBub3RhdGlvbnMKIG91ciAkZXh0ZW5kZWRBdHRy
aWJ1dGVTeW50YXggPSAnXFtbXl1dKlxdJzsgIyBVc2VkIGZvciBleHRlbmRlZCBhdHRyaWJ1dGVz
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3Mu
cGwgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwKaW5kZXgg
NDRlZDRkMy4uY2ZmYTI0YSAxMDA3NTUKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dl
bmVyYXRlLWJpbmRpbmdzLnBsCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0
ZS1iaW5kaW5ncy5wbApAQCAtNDMsMTIgKzQzLDE0IEBAIG15ICRnZW5lcmF0b3I7CiBteSAkZGVm
aW5lczsKIG15ICRwcmVwcm9jZXNzb3I7CiBteSAkd3JpdGVEZXBlbmRlbmNpZXM7CitteSAkdmVy
Ym9zZTsKIAogR2V0T3B0aW9ucygnaW5jbHVkZT1zQCcgPT4gXEBpZGxEaXJlY3RvcmllcywKICAg
ICAgICAgICAgJ291dHB1dERpcj1zJyA9PiBcJG91dHB1dERpcmVjdG9yeSwKICAgICAgICAgICAg
J2dlbmVyYXRvcj1zJyA9PiBcJGdlbmVyYXRvciwKICAgICAgICAgICAgJ2RlZmluZXM9cycgPT4g
XCRkZWZpbmVzLAogICAgICAgICAgICAncHJlcHJvY2Vzc29yPXMnID0+IFwkcHJlcHJvY2Vzc29y
LAorICAgICAgICAgICAndmVyYm9zZScgPT4gXCR2ZXJib3NlLAogICAgICAgICAgICAnd3JpdGUt
ZGVwZW5kZW5jaWVzJyA9PiBcJHdyaXRlRGVwZW5kZW5jaWVzKTsKIAogbXkgJGlkbEZpbGUgPSAk
QVJHVlswXTsKQEAgLTU5LDEyICs2MSwxNSBAQCBkaWUoJ011c3Qgc3BlY2lmeSBnZW5lcmF0b3In
KSB1bmxlc3MgZGVmaW5lZCgkZ2VuZXJhdG9yKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IG91dHB1dCBk
aXJlY3RvcnkuJykgdW5sZXNzIGRlZmluZWQoJG91dHB1dERpcmVjdG9yeSk7CiBkaWUoJ011c3Qg
c3BlY2lmeSBkZWZpbmVzJykgdW5sZXNzIGRlZmluZWQoJGRlZmluZXMpOwogCitpZiAoJHZlcmJv
c2UpIHsKKyAgICBwcmludCAiJGdlbmVyYXRvcjogJGlkbEZpbGVcbiI7Cit9CiAkZGVmaW5lcyA9
fiBzL15ccyt8XHMrJC8vZzsgIyB0cmltIHdoaXRlc3BhY2UKIAogIyBQYXJzZSB0aGUgZ2l2ZW4g
SURMIGZpbGUuCi1teSAkcGFyc2VyID0gSURMUGFyc2VyLT5uZXcoMSk7CitteSAkcGFyc2VyID0g
SURMUGFyc2VyLT5uZXcoISR2ZXJib3NlKTsKIG15ICRkb2N1bWVudCA9ICRwYXJzZXItPlBhcnNl
KCRpZGxGaWxlLCAkZGVmaW5lcywgJHByZXByb2Nlc3Nvcik7CiAKICMgR2VuZXJhdGUgZGVzaXJl
ZCBvdXRwdXQgZm9yIGdpdmVuIElETCBmaWxlLgotbXkgJGNvZGVHZW4gPSBDb2RlR2VuZXJhdG9y
LT5uZXcoXEBpZGxEaXJlY3RvcmllcywgJGdlbmVyYXRvciwgJG91dHB1dERpcmVjdG9yeSwgMCwg
JHByZXByb2Nlc3NvciwgJHdyaXRlRGVwZW5kZW5jaWVzKTsKK215ICRjb2RlR2VuID0gQ29kZUdl
bmVyYXRvci0+bmV3KFxAaWRsRGlyZWN0b3JpZXMsICRnZW5lcmF0b3IsICRvdXRwdXREaXJlY3Rv
cnksIDAsICRwcmVwcm9jZXNzb3IsICR3cml0ZURlcGVuZGVuY2llcywgJHZlcmJvc2UpOwogJGNv
ZGVHZW4tPlByb2Nlc3NEb2N1bWVudCgkZG9jdW1lbnQsICRkZWZpbmVzKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggMzI1ZTEyYy4uNWMyZmU5ZiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTgzLDYgKzgzLDcg
QEAKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIK
ICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3JGcm9udGVu
ZDIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CkBAIC00MzUsMTAgKzQzNiwx
MSBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZChjb25zdCBTY3Jp
cHRPYmplY3QmIHdlYkluc3BlY3RvcikKIHsKICAgICBtX29wZW5pbmdGcm9udGVuZCA9IGZhbHNl
OwogICAgIG1fZnJvbnRlbmQgPSBuZXcgSW5zcGVjdG9yRnJvbnRlbmQod2ViSW5zcGVjdG9yLCBt
X2NsaWVudCk7CisgICAgbV9mcm9udGVuZDIgPSBuZXcgSW5zcGVjdG9yRnJvbnRlbmQyKG1fY2xp
ZW50KTsKICAgICByZWxlYXNlRE9NQWdlbnQoKTsKICAgICBtX2RvbUFnZW50ID0gSW5zcGVjdG9y
RE9NQWdlbnQ6OmNyZWF0ZShtX2Nzc1N0b3JlLmdldCgpLCBtX2Zyb250ZW5kLmdldCgpKTsKICAg
ICBpZiAobV90aW1lbGluZUFnZW50KQotICAgICAgICBtX3RpbWVsaW5lQWdlbnQtPnJlc2V0RnJv
bnRlbmRQcm94eU9iamVjdChtX2Zyb250ZW5kLmdldCgpKTsKKyAgICAgICAgbV90aW1lbGluZUFn
ZW50LT5yZXNldEZyb250ZW5kUHJveHlPYmplY3QobV9mcm9udGVuZDIuZ2V0KCkpOwogCiAgICAg
Ly8gSW5pdGlhbGl6ZSBXZWIgSW5zcGVjdG9yIHRpdGxlLgogICAgIG1fZnJvbnRlbmQtPmluc3Bl
Y3RlZFVSTENoYW5nZWQobV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPnVy
bCgpLnN0cmluZygpKTsKQEAgLTEwOTAsNyArMTA5Miw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJv
bGxlcjo6c3RhcnRUaW1lbGluZVByb2ZpbGVyKCkKICAgICBpZiAobV90aW1lbGluZUFnZW50KQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX3RpbWVsaW5lQWdlbnQgPSBuZXcgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudChtX2Zyb250ZW5kLmdldCgpKTsKKyAgICBtX3RpbWVsaW5lQWdlbnQgPSBuZXcg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudChtX2Zyb250ZW5kMi5nZXQoKSk7CiAgICAgaWYgKG1fZnJv
bnRlbmQpCiAgICAgICAgIG1fZnJvbnRlbmQtPnRpbWVsaW5lUHJvZmlsZXJXYXNTdGFydGVkKCk7
CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggYWYzNjM4My4u
OGFmODcxNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtNjgs
NiArNjgsNyBAQCBjbGFzcyBJbnNwZWN0b3JCYWNrZW5kOwogY2xhc3MgSW5zcGVjdG9yQ2xpZW50
OwogY2xhc3MgSW5zcGVjdG9yQ1NTU3RvcmU7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKK2Ns
YXNzIEluc3BlY3RvckZyb250ZW5kMjsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50Owog
Y2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDsKIGNsYXNzIEtVUkw7CkBAIC0zMzAsNiArMzMx
LDcgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ+IG1faW5z
cGVjdG9yRnJvbnRlbmRDbGllbnQ7CiAgICAgYm9vbCBtX29wZW5pbmdGcm9udGVuZDsKICAgICBP
d25QdHI8SW5zcGVjdG9yRnJvbnRlbmQ+IG1fZnJvbnRlbmQ7CisgICAgT3duUHRyPEluc3BlY3Rv
ckZyb250ZW5kMj4gbV9mcm9udGVuZDI7CiAgICAgUmVmUHRyPEluc3BlY3RvckRPTUFnZW50PiBt
X2RvbUFnZW50OwogICAgIE93blB0cjxJbnNwZWN0b3JDU1NTdG9yZT4gbV9jc3NTdG9yZTsKICAg
ICBPd25QdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4gbV90aW1lbGluZUFnZW50OwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuY3BwIGIvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuY3BwCmluZGV4IGM5YWE3MzAuLjhhZDU2YmYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcAorKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAKQEAgLTI5MSwxNCArMjkxLDYg
QEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6dGltZWxpbmVQcm9maWxlcldhc1N0b3BwZWQoKQog
ICAgIGNhbGxTaW1wbGVGdW5jdGlvbigidGltZWxpbmVQcm9maWxlcldhc1N0b3BwZWQiKTsKIH0K
IAotdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6YWRkUmVjb3JkVG9UaW1lbGluZShjb25zdCBTY3Jp
cHRPYmplY3QmIHJlY29yZCkKLXsKLSAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV93
ZWJJbnNwZWN0b3IsICJkaXNwYXRjaCIpOyAKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudCgi
YWRkUmVjb3JkVG9UaW1lbGluZSIpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHJlY29y
ZCk7Ci0gICAgZnVuY3Rpb24uY2FsbCgpOwotfQotCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVC
VUdHRVIpCiB2b2lkIEluc3BlY3RvckZyb250ZW5kOjphdHRhY2hEZWJ1Z2dlcldoZW5TaG93bigp
CiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5oIGIv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaAppbmRleCAxNzYyMDE0Li4wMDBj
ODY0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5oCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmgKQEAgLTE1Nyw3ICsxNTcs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCB0aW1lbGluZVByb2ZpbGVy
V2FzU3RhcnRlZCgpOwogICAgICAgICB2b2lkIHRpbWVsaW5lUHJvZmlsZXJXYXNTdG9wcGVkKCk7
Ci0gICAgICAgIHZvaWQgYWRkUmVjb3JkVG9UaW1lbGluZShjb25zdCBTY3JpcHRPYmplY3QmKTsK
IAogI2lmIEVOQUJMRShXT1JLRVJTKQogICAgICAgICB2b2lkIGRpZENyZWF0ZVdvcmtlcihjb25z
dCBJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZSYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmQyLndpaSBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kMi53aWkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJhYmVkOAot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi53
aWkKQEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgV2ViQ29yZSB7CisKKyAgICBpbnRlcmZhY2UgW0Nv
bmRpdGlvbmFsPUlOU1BFQ1RPUiwgSlNdIEluc3BlY3RvckZyb250ZW5kMiB7CisgICAgICAgIHZv
aWQgZGlkQ29tbWl0TG9hZCgpOworCisgICAgICAgIHZvaWQgcG9wdWxhdGVGcm9udGVuZFNldHRp
bmdzKGluIFN0cmluZyBzZXR0aW5ncyk7CisKKyAgICAgICAgdm9pZCB1cGRhdGVDb25zb2xlTWVz
c2FnZUV4cGlyZWRDb3VudChpbiB1bnNpZ25lZCBsb25nIGNvdW50KTsKKy8vICAgICAgICB2b2lk
IGFkZENvbnNvbGVNZXNzYWdlKGluIE9iamVjdCBtZXNzYWdlT2JqLCBjb25zdCBBcnJheSBmcmFt
ZXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiA+JiBhcmd1bWVu
dHMsIGluIFN0cmluZyBtZXNzYWdlKTsKKyAgICAgICAgdm9pZCB1cGRhdGVDb25zb2xlTWVzc2Fn
ZVJlcGVhdENvdW50KGluIHVuc2lnbmVkIGxvbmcgY291bnQpOworICAgICAgICB2b2lkIGNsZWFy
Q29uc29sZU1lc3NhZ2VzKCk7CisKKyAgICAgICAgdm9pZCB1cGRhdGVSZXNvdXJjZShpbiB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGluIE9iamVjdCByZXNvdXJjZU9iaik7CisgICAgICAgIHZv
aWQgcmVtb3ZlUmVzb3VyY2UoaW4gdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKKyAgICAgICAg
dm9pZCBkaWRHZXRSZXNvdXJjZUNvbnRlbnQoaW4gbG9uZyBjYWxsSWQsIGluIFN0cmluZyBjb250
ZW50KTsKKworICAgICAgICB2b2lkIHVwZGF0ZUZvY3VzZWROb2RlKGluIGxvbmcgbm9kZUlkKTsK
KyAgICAgICAgdm9pZCBzZXRBdHRhY2hlZFdpbmRvdyhpbiBib29sZWFuIGF0dGFjaGVkKTsKKyAg
ICAgICAgdm9pZCBzaG93UGFuZWwoaW4gbG9uZyBwYW5lbCk7CisgICAgICAgIHZvaWQgcG9wdWxh
dGVJbnRlcmZhY2UoKTsKKyAgICAgICAgdm9pZCByZXNldCgpOworCisgICAgICAgIHZvaWQgYnJp
bmdUb0Zyb250KCk7CisgICAgICAgIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChpbiBTdHJpbmcg
dXJsKTsKKworICAgICAgICB2b2lkIHJlc291cmNlVHJhY2tpbmdXYXNFbmFibGVkKCk7CisgICAg
ICAgIHZvaWQgcmVzb3VyY2VUcmFja2luZ1dhc0Rpc2FibGVkKCk7CisKKyAgICAgICAgdm9pZCBz
ZWFyY2hpbmdGb3JOb2RlV2FzRW5hYmxlZCgpOworICAgICAgICB2b2lkIHNlYXJjaGluZ0Zvck5v
ZGVXYXNEaXNhYmxlZCgpOworCisgICAgICAgIHZvaWQgdXBkYXRlUGF1c2VPbkV4Y2VwdGlvbnNT
dGF0ZShpbiBsb25nIHN0YXRlKTsKKworI2lmIGRlZmluZWQoSkFWQVNDUklQVF9ERUJVR0dFUikK
KyAgICAgICAgdm9pZCBhdHRhY2hEZWJ1Z2dlcldoZW5TaG93bigpOworICAgICAgICB2b2lkIGRl
YnVnZ2VyV2FzRW5hYmxlZCgpOworICAgICAgICB2b2lkIGRlYnVnZ2VyV2FzRGlzYWJsZWQoKTsK
KworICAgICAgICB2b2lkIHBhcnNlZFNjcmlwdFNvdXJjZShpbiBTdHJpbmcgc291cmNlSUQsIGlu
IFN0cmluZyB1cmwsIGluIFN0cmluZyBkYXRhLCBpbiBsb25nIGZpcnN0TGluZSwgaW4gbG9uZyBz
Y3JpcHRXb3JsZFR5cGUpOworICAgICAgICB2b2lkIHJlc3RvcmVkQnJlYWtwb2ludChpbiBTdHJp
bmcgc291cmNlSUQsIGluIFN0cmluZyB1cmwsIGluIGxvbmcgbGluZSwgaW4gYm9vbGVhbiBlbmFi
bGVkLCBpbiBTdHJpbmcgY29uZGl0aW9uKTsKKyAgICAgICAgdm9pZCBmYWlsZWRUb1BhcnNlU2Ny
aXB0U291cmNlKGluIFN0cmluZyB1cmwsIGluIFN0cmluZyBkYXRhLCBpbiBsb25nIGZpcnN0TGlu
ZSwgaW4gbG9uZyBlcnJvckxpbmUsIGluIFN0cmluZyBlcnJvck1lc3NhZ2UpOworLy8gICAgICAg
IHZvaWQgcGF1c2VkU2NyaXB0KFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogY2FsbEZyYW1lcyk7Cisg
ICAgICAgIHZvaWQgcmVzdW1lZFNjcmlwdCgpOworCisgICAgICAgIHZvaWQgcHJvZmlsZXJXYXNF
bmFibGVkKCk7CisgICAgICAgIHZvaWQgcHJvZmlsZXJXYXNEaXNhYmxlZCgpOworICAgICAgICB2
b2lkIGFkZFByb2ZpbGVIZWFkZXIoaW4gVmFsdWUgcHJvZmlsZSk7CisgICAgICAgIHZvaWQgc2V0
UmVjb3JkaW5nUHJvZmlsZShpbiBib29sZWFuIGlzUHJvZmlsaW5nKTsKKyAgICAgICAgdm9pZCBk
aWRHZXRQcm9maWxlSGVhZGVycyhpbiBsb25nIGNhbGxJZCwgaW4gQXJyYXkgaGVhZGVycyk7Cisg
ICAgICAgIHZvaWQgZGlkR2V0UHJvZmlsZShpbiBsb25nIGNhbGxJZCwgaW4gVmFsdWUgcHJvZmls
ZSk7CisjZW5kaWYKKworI2lmICBkZWZpbmVkKEVOQUJMRV9EQVRBQkFTRSkKKyAgICAgICAgdm9p
ZCBhZGREYXRhYmFzZShpbiBPYmplY3QgZGJPYmopOworICAgICAgICB2b2lkIHNlbGVjdERhdGFi
YXNlKGluIGxvbmcgZGF0YWJhc2VJZCk7CisgICAgICAgIHZvaWQgZGlkR2V0RGF0YWJhc2VUYWJs
ZU5hbWVzKGluIGxvbmcgY2FsbElkLCBpbiBBcnJheSB0YWJsZU5hbWVzKTsKKyNlbmRpZgorCisj
aWYgZGVmaW5lZChFTkFCTEVfRE9NX1NUT1JBR0UpCisgICAgICAgIHZvaWQgYWRkRE9NU3RvcmFn
ZShpbiBPYmplY3QgZG9tU3RvcmFnZU9iaik7CisgICAgICAgIHZvaWQgc2VsZWN0RE9NU3RvcmFn
ZShpbiBsb25nIHN0b3JhZ2VJZCk7CisgICAgICAgIHZvaWQgZGlkR2V0RE9NU3RvcmFnZUVudHJp
ZXMoaW4gbG9uZyBjYWxsSWQsIGluIEFycmF5IGVudHJpZXMpOworICAgICAgICB2b2lkIGRpZFNl
dERPTVN0b3JhZ2VJdGVtKGluIGxvbmcgY2FsbElkLCBpbiBib29sZWFuIHN1Y2Nlc3MpOworICAg
ICAgICB2b2lkIGRpZFJlbW92ZURPTVN0b3JhZ2VJdGVtKGluIGxvbmcgY2FsbElkLCBpbiBib29s
ZWFuIHN1Y2Nlc3MpOworICAgICAgICB2b2lkIHVwZGF0ZURPTVN0b3JhZ2UoaW4gbG9uZyBzdG9y
YWdlSWQpOworI2VuZGlmCisKKyAgICAgICAgdm9pZCBzZXREb2N1bWVudChpbiBPYmplY3Qgcm9v
dCk7CisgICAgICAgIHZvaWQgc2V0RGV0YWNoZWRSb290KGluIE9iamVjdCByb290KTsKKyAgICAg
ICAgdm9pZCBzZXRDaGlsZE5vZGVzKGluIGxvbmcgcGFyZW50SWQsIGluIEFycmF5IG5vZGVzKTsK
KyAgICAgICAgdm9pZCBjaGlsZE5vZGVDb3VudFVwZGF0ZWQoaW4gbG9uZyBpZCwgaW4gbG9uZyBu
ZXdWYWx1ZSk7CisgICAgICAgIHZvaWQgY2hpbGROb2RlSW5zZXJ0ZWQoaW4gbG9uZyBwYXJlbnRJ
ZCwgaW4gbG9uZyBwcmV2SWQsIGluIE9iamVjdCBub2RlKTsKKyAgICAgICAgdm9pZCBjaGlsZE5v
ZGVSZW1vdmVkKGluIGxvbmcgcGFyZW50SWQsIGluIGxvbmcgaWQpOworICAgICAgICB2b2lkIGF0
dHJpYnV0ZXNVcGRhdGVkKGluIGxvbmcgaWQsIGluIEFycmF5IGF0dHJpYnV0ZXMpOworICAgICAg
ICB2b2lkIGRpZEdldENoaWxkTm9kZXMoaW4gbG9uZyBjYWxsSWQpOworICAgICAgICB2b2lkIGRp
ZEFwcGx5RG9tQ2hhbmdlKGluIGxvbmcgY2FsbElkLCBpbiBib29sZWFuIHN1Y2Nlc3MpOworICAg
ICAgICB2b2lkIGRpZEdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZShpbiBsb25nIGNhbGxJZCwgaW4g
bG9uZyBub2RlSWQsIGluIEFycmF5IGxpc3RlbmVyc0FycmF5KTsKKyAgICAgICAgdm9pZCBkaWRS
ZW1vdmVOb2RlKGluIGxvbmcgY2FsbElkLCBpbiBsb25nIG5vZGVJZCk7CisgICAgICAgIHZvaWQg
ZGlkQ2hhbmdlVGFnTmFtZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBub2RlSWQpOworCisgICAg
ICAgIHZvaWQgZGlkR2V0U3R5bGVzKGluIGxvbmcgY2FsbElkLCBpbiBWYWx1ZSBzdHlsZXMpOwor
ICAgICAgICB2b2lkIGRpZEdldEFsbFN0eWxlcyhpbiBsb25nIGNhbGxJZCwgaW4gQXJyYXkgc3R5
bGVzKTsKKyAgICAgICAgdm9pZCBkaWRHZXRJbmxpbmVTdHlsZShpbiBsb25nIGNhbGxJZCwgaW4g
VmFsdWUgc3R5bGUpOworICAgICAgICB2b2lkIGRpZEdldFN0eWxlU2hlZXQoaW4gbG9uZyBjYWxs
SWQsIGluIFZhbHVlIHN0eWxlU2hlZXQpOworICAgICAgICB2b2lkIGRpZEdldENvbXB1dGVkU3R5
bGUoaW4gbG9uZyBjYWxsSWQsIGluIFZhbHVlIHN0eWxlKTsKKyAgICAgICAgdm9pZCBkaWRBcHBs
eVN0eWxlVGV4dChpbiBsb25nIGNhbGxJZCwgaW4gYm9vbGVhbiBzdWNjZXNzLCBpbiBWYWx1ZSBz
dHlsZSwgaW4gQXJyYXkgY2hhbmdlZFByb3BlcnRpZXMpOworICAgICAgICB2b2lkIGRpZFNldFN0
eWxlVGV4dChpbiBsb25nIGNhbGxJZCwgaW4gYm9vbGVhbiBzdWNjZXNzKTsKKyAgICAgICAgdm9p
ZCBkaWRTZXRTdHlsZVByb3BlcnR5KGluIGxvbmcgY2FsbElkLCBpbiBib29sZWFuIHN1Y2Nlc3Mp
OworICAgICAgICB2b2lkIGRpZFRvZ2dsZVN0eWxlRW5hYmxlZChpbiBsb25nIGNhbGxJZCwgaW4g
VmFsdWUgc3R5bGUpOworICAgICAgICB2b2lkIGRpZFNldFJ1bGVTZWxlY3RvcihpbiBsb25nIGNh
bGxJZCwgaW4gVmFsdWUgcnVsZSwgaW4gYm9vbGVhbiBzZWxlY3RvckFmZmVjdHNOb2RlKTsKKyAg
ICAgICAgdm9pZCBkaWRBZGRSdWxlKGluIGxvbmcgY2FsbElkLCBpbiBWYWx1ZSBydWxlLCBpbiBi
b29sZWFuIHNlbGVjdG9yQWZmZWN0c05vZGUpOworCisgICAgICAgIHZvaWQgdGltZWxpbmVQcm9m
aWxlcldhc1N0YXJ0ZWQoKTsKKyAgICAgICAgdm9pZCB0aW1lbGluZVByb2ZpbGVyV2FzU3RvcHBl
ZCgpOworICAgICAgICB2b2lkIGFkZFJlY29yZFRvVGltZWxpbmUoaW4gT2JqZWN0IHJlY29yZCk7
CisKKyAgICAgICAgdm9pZCBkaWRHZXRDb29raWVzKGluIGxvbmcgY2FsbElkLCBpbiBBcnJheSBj
b29raWVzLCBpbiBTdHJpbmcgY29va2llc1N0cmluZyk7CisvLyAgICAgICAgdm9pZCBkaWREaXNw
YXRjaE9uSW5qZWN0ZWRTY3JpcHQoaW4gbG9uZyBjYWxsSWQsIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSogcmVzdWx0LCBpbiBib29sZWFuIGlzRXhjZXB0aW9uKTsKKworICAgICAgICB2b2lkIGFkZE5v
ZGVzVG9TZWFyY2hSZXN1bHQoaW4gU3RyaW5nIG5vZGVJZHMpOworCisgICAgICAgIHZvaWQgY29u
dGV4dE1lbnVJdGVtU2VsZWN0ZWQoaW4gbG9uZyBpdGVtSWQpOworICAgICAgICB2b2lkIGNvbnRl
eHRNZW51Q2xlYXJlZCgpOworCisgICAgICAgIHZvaWQgZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVu
ZChpbiBsb25nIGNhbGxJZCwgaW4gU3RyaW5nIHNjcmlwdCk7CisgICAgfTsKK30KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggYWI1MzMxOS4uNjdl
ZmJjOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAK
QEAgLTM0LDExICszNCwxMSBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJF
dmVudC5oIgotI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW50UmVj
dC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVz
cG9uc2UuaCIKICNpbmNsdWRlICJUaW1lbGluZVJlY29yZEZhY3RvcnkuaCIKKyNpbmNsdWRlICJX
ZWJJbnNwZWN0b3JGcm9udGVuZDIuaCIKIAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgog
CkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogaW50IEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OnNfaW5zdGFuY2VDb3VudCA9IDA7CiAKLUluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQor
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnNwZWN0b3JG
cm9udGVuZDIqIGZyb250ZW5kKQogICAgIDogbV9mcm9udGVuZChmcm9udGVuZCkKIHsKICAgICAr
K3NfaW5zdGFuY2VDb3VudDsKQEAgLTYyLDkgKzYyLDkgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpwdXNoR0NFdmVudFJlY29yZHMoKQogICAgIEdDRXZlbnRzIGV2ZW50cyA9IG1fZ2NF
dmVudHM7CiAgICAgbV9nY0V2ZW50cy5jbGVhcigpOwogICAgIGZvciAoR0NFdmVudHM6Oml0ZXJh
dG9yIGkgPSBldmVudHMuYmVnaW4oKTsgaSAhPSBldmVudHMuZW5kKCk7ICsraSkgewotICAgICAg
ICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5l
cmljUmVjb3JkKG1fZnJvbnRlbmQsIGktPnN0YXJ0VGltZSk7Ci0gICAgICAgIHJlY29yZC5zZXQo
ImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdDRXZlbnREYXRhKG1fZnJvbnRl
bmQsIGktPmNvbGxlY3RlZEJ5dGVzKSk7Ci0gICAgICAgIHJlY29yZC5zZXQoImVuZFRpbWUiLCBp
LT5lbmRUaW1lKTsKKyAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKGktPnN0YXJ0VGltZSk7Cisg
ICAgICAgIHJlY29yZC0+c2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVH
Q0V2ZW50RGF0YShpLT5jb2xsZWN0ZWRCeXRlcykpOworICAgICAgICByZWNvcmQtPnNldE51bWJl
cigiZW5kVGltZSIsIGktPmVuZFRpbWUpOwogICAgICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJl
Y29yZCwgR0NFdmVudFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAgICAgfQogfQpAQCAtODMsNyArODMs
NyBAQCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp+SW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpCiAK
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENhbGxGdW5jdGlvbihjb25zdCBTdHJp
bmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKQogewotICAgIHB1c2hDdXJyZW50UmVjb3Jk
KFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRnVuY3Rpb25DYWxsRGF0YShtX2Zyb250ZW5k
LCBzY3JpcHROYW1lLCBzY3JpcHRMaW5lKSwgRnVuY3Rpb25DYWxsVGltZWxpbmVSZWNvcmRUeXBl
KTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUZ1
bmN0aW9uQ2FsbERhdGEoc2NyaXB0TmFtZSwgc2NyaXB0TGluZSksIEZ1bmN0aW9uQ2FsbFRpbWVs
aW5lUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ2Fs
bEZ1bmN0aW9uKCkKQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRDYWxsRnVuY3Rpb24oKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxE
aXNwYXRjaEV2ZW50KGNvbnN0IEV2ZW50JiBldmVudCkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29y
ZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUV2ZW50RGlzcGF0Y2hEYXRhKG1fZnJvbnRl
bmQsIGV2ZW50KSwKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZUV2ZW50RGlzcGF0Y2hEYXRhKGV2ZW50KSwKICAgICAgICAgRXZlbnREaXNwYXRjaFRp
bWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZERpc3BhdGNoRXZlbnQoKQogCiB2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OndpbGxMYXlvdXQoKQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKG1fZnJvbnRl
bmQtPm5ld1NjcmlwdE9iamVjdCgpLCBMYXlvdXRUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHB1
c2hDdXJyZW50UmVjb3JkKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCksIExheW91dFRpbWVsaW5l
UmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTGF5b3V0
KCkKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZExh
eW91dCgpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFJlY2FsY3VsYXRlU3R5
bGUoKQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKG1fZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVj
dCgpLCBSZWNhbGN1bGF0ZVN0eWxlc1RpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgcHVzaEN1cnJl
bnRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgUmVjYWxjdWxhdGVTdHlsZXNUaW1l
bGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJl
Y2FsY3VsYXRlU3R5bGUoKQpAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6ZGlkUmVjYWxjdWxhdGVTdHlsZSgpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6d2lsbFBhaW50KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgcHVzaEN1cnJlbnRS
ZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYWludERhdGEobV9mcm9udGVuZCwg
cmVjdCksIFBhaW50VGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhaW50RGF0YShyZWN0KSwgUGFpbnRUaW1lbGlu
ZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFBhaW50
KCkKQEAgLTEzNCwxNCArMTM0LDE0IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlk
UGFpbnQoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxXcml0ZUhUTUwodW5z
aWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSkKIHsKLSAgICBwdXNoQ3Vy
cmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhcnNlSFRNTERhdGEobV9m
cm9udGVuZCwgbGVuZ3RoLCBzdGFydExpbmUpLCBQYXJzZUhUTUxUaW1lbGluZVJlY29yZFR5cGUp
OworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFy
c2VIVE1MRGF0YShsZW5ndGgsIHN0YXJ0TGluZSksIFBhcnNlSFRNTFRpbWVsaW5lUmVjb3JkVHlw
ZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkV3JpdGVIVE1MKHVuc2ln
bmVkIGludCBlbmRMaW5lKQogewogICAgIGlmICghbV9yZWNvcmRTdGFjay5pc0VtcHR5KCkpIHsK
ICAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeSBlbnRyeSA9IG1fcmVjb3JkU3RhY2subGFzdCgp
OwotICAgICAgICBlbnRyeS5kYXRhLnNldCgiZW5kTGluZSIsIGVuZExpbmUpOworICAgICAgICBl
bnRyeS5kYXRhLT5zZXROdW1iZXIoImVuZExpbmUiLCBlbmRMaW5lKTsKICAgICAgICAgZGlkQ29t
cGxldGVDdXJyZW50UmVjb3JkKFBhcnNlSFRNTFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAgICAgfQog
fQpAQCAtMTQ5LDIyICsxNDksMjIgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRX
cml0ZUhUTUwodW5zaWduZWQgaW50IGVuZExpbmUpCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmRpZEluc3RhbGxUaW1lcihpbnQgdGltZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xl
U2hvdCkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKLSAgICBTY3JpcHRPYmplY3QgcmVj
b3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRl
bmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKLSAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1lckluc3RhbGxEYXRhKG1fZnJvbnRlbmQsIHRpbWVy
SWQsIHRpbWVvdXQsIHNpbmdsZVNob3QpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBy
ZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoV1RGOjpj
dXJyZW50VGltZU1TKCkpOworICAgIHJlY29yZC0+c2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVUaW1lckluc3RhbGxEYXRhKHRpbWVySWQsIHRpbWVvdXQsIHNpbmdsZVNo
b3QpKTsKICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCwgVGltZXJJbnN0YWxsVGltZWxp
bmVSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZW1v
dmVUaW1lcihpbnQgdGltZXJJZCkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKLSAgICBT
Y3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmlj
UmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKLSAgICByZWNvcmQuc2V0
KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJEYXRhKG1f
ZnJvbnRlbmQsIHRpbWVySWQpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQg
PSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoV1RGOjpjdXJyZW50
VGltZU1TKCkpOworICAgIHJlY29yZC0+c2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVHZW5lcmljVGltZXJEYXRhKHRpbWVySWQpKTsKICAgICBhZGRSZWNvcmRUb1RpbWVs
aW5lKHJlY29yZCwgVGltZXJSZW1vdmVUaW1lbGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxGaXJlVGltZXIoaW50IHRpbWVySWQpCiB7Ci0gICAg
cHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGlt
ZXJEYXRhKG1fZnJvbnRlbmQsIHRpbWVySWQpLCBUaW1lckZpcmVUaW1lbGluZVJlY29yZFR5cGUp
OyAKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdl
bmVyaWNUaW1lckRhdGEodGltZXJJZCksIFRpbWVyRmlyZVRpbWVsaW5lUmVjb3JkVHlwZSk7CiB9
CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmlyZVRpbWVyKCkKQEAgLTE3NCw3
ICsxNzQsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEZpcmVUaW1lcigpCiAK
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENoYW5nZVhIUlJlYWR5U3RhdGUoY29u
c3QgU3RyaW5nJiB1cmwsIGludCByZWFkeVN0YXRlKQogewotICAgIHB1c2hDdXJyZW50UmVjb3Jk
KFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSUmVhZHlTdGF0ZUNoYW5nZURhdGEobV9m
cm9udGVuZCwgdXJsLCByZWFkeVN0YXRlKSwgWEhSUmVhZHlTdGF0ZUNoYW5nZVJlY29yZFR5cGUp
OworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhS
UmVhZHlTdGF0ZUNoYW5nZURhdGEodXJsLCByZWFkeVN0YXRlKSwgWEhSUmVhZHlTdGF0ZUNoYW5n
ZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENoYW5n
ZVhIUlJlYWR5U3RhdGUoKQpAQCAtMTg0LDcgKzE4NCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6ZGlkQ2hhbmdlWEhSUmVhZHlTdGF0ZSgpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6d2lsbExvYWRYSFIoY29uc3QgU3RyaW5nJiB1cmwpIAogewotICAgIHB1c2hDdXJy
ZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSTG9hZERhdGEobV9mcm9u
dGVuZCwgdXJsKSwgWEhSTG9hZFJlY29yZFR5cGUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSTG9hZERhdGEodXJsKSwgWEhSTG9hZFJlY29y
ZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZExvYWRYSFIoKQpA
QCAtMTk0LDcgKzE5NCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTG9hZFhI
UigpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbEV2YWx1YXRlU2NyaXB0KGNv
bnN0IFN0cmluZyYgdXJsLCBpbnQgbGluZU51bWJlcikKIHsKLSAgICBwdXNoQ3VycmVudFJlY29y
ZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUV2YWx1YXRlU2NyaXB0RGF0YShtX2Zyb250
ZW5kLCB1cmwsIGxpbmVOdW1iZXIpLCBFdmFsdWF0ZVNjcmlwdFRpbWVsaW5lUmVjb3JkVHlwZSk7
CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmFs
dWF0ZVNjcmlwdERhdGEodXJsLCBsaW5lTnVtYmVyKSwgRXZhbHVhdGVTY3JpcHRUaW1lbGluZVJl
Y29yZFR5cGUpOwogfQogICAgIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRFdmFs
dWF0ZVNjcmlwdCgpCkBAIC0yMDUsOSArMjA1LDkgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRFdmFsdWF0ZVNjcmlwdCgpCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRp
ZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIHB1c2hH
Q0V2ZW50UmVjb3JkcygpOwotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29y
ZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGlt
ZU1TKCkpOwotICAgIHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZVNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0RGF0YShtX2Zyb250ZW5kLCB1cmwpKTsKLSAgICBy
ZWNvcmQuc2V0KCJ0eXBlIiwgU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3RUaW1lbGluZVJlY29yZFR5
cGUpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAg
cmVjb3JkLT5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVNjaGVkdWxl
UmVzb3VyY2VSZXF1ZXN0RGF0YSh1cmwpKTsKKyAgICByZWNvcmQtPnNldE51bWJlcigidHlwZSIs
IFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0VGltZWxpbmVSZWNvcmRUeXBlKTsKICAgICBhZGRSZWNv
cmRUb1RpbWVsaW5lKHJlY29yZCwgU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3RUaW1lbGluZVJlY29y
ZFR5cGUpOwogfQogCkBAIC0yMTUsMTYgKzIxNSwxNiBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OndpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
YgogICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBwdXNoR0NFdmVu
dFJlY29yZHMoKTsKLSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygp
KTsKLSAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVS
ZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YShtX2Zyb250ZW5kLCBpZGVudGlmaWVyLCBpc01haW5SZXNv
dXJjZSwgcmVxdWVzdCkpOwotICAgIHJlY29yZC5zZXQoInR5cGUiLCBSZXNvdXJjZVNlbmRSZXF1
ZXN0VGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNv
cmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoV1RGOjpjdXJy
ZW50VGltZU1TKCkpOworICAgIHJlY29yZC0+c2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YShpZGVudGlmaWVyLCBpc01haW5SZXNv
dXJjZSwgcmVxdWVzdCkpOworICAgIHJlY29yZC0+c2V0TnVtYmVyKCJ0eXBlIiwgUmVzb3VyY2VT
ZW5kUmVxdWVzdFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAgICAgc2V0SGVhcFNpemVTdGF0aXN0aWMo
cmVjb3JkKTsKICAgICBtX2Zyb250ZW5kLT5hZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCk7CiB9
CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFJlY2VpdmVSZXNvdXJjZURhdGEo
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVjZWl2ZVJlc291cmNlRGF0YShtX2Zyb250ZW5kLCBp
ZGVudGlmaWVyKSwgUmVjZWl2ZVJlc291cmNlRGF0YVRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAg
cHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZWNlaXZlUmVz
b3VyY2VEYXRhKGlkZW50aWZpZXIpLCBSZWNlaXZlUmVzb3VyY2VEYXRhVGltZWxpbmVSZWNvcmRU
eXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZWNlaXZlUmVzb3Vy
Y2VEYXRhKCkKQEAgLTIzNCw3ICsyMzQsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZFJlY2VpdmVSZXNvdXJjZURhdGEoKQogICAgIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50Ojp3aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSAgICBwdXNoQ3VycmVudFJl
Y29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlUmVjZWl2ZVJlc3BvbnNl
RGF0YShtX2Zyb250ZW5kLCBpZGVudGlmaWVyLCByZXNwb25zZSksIFJlc291cmNlUmVjZWl2ZVJl
c3BvbnNlVGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlUmVjZWl2ZVJlc3BvbnNlRGF0YShpZGVudGlm
aWVyLCByZXNwb25zZSksIFJlc291cmNlUmVjZWl2ZVJlc3BvbnNlVGltZWxpbmVSZWNvcmRUeXBl
KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZWNlaXZlUmVzb3VyY2VS
ZXNwb25zZSgpCkBAIC0yNDUsOSArMjQ1LDkgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSgpCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGJv
b2wgZGlkRmFpbCkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKLSAgICBTY3JpcHRPYmpl
Y3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1f
ZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKLSAgICByZWNvcmQuc2V0KCJkYXRhIiwg
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZUZpbmlzaERhdGEobV9mcm9udGVu
ZCwgaWRlbnRpZmllciwgZGlkRmFpbCkpOwotICAgIHJlY29yZC5zZXQoInR5cGUiLCBSZXNvdXJj
ZUZpbmlzaFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
cmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKFdURjo6
Y3VycmVudFRpbWVNUygpKTsKKyAgICByZWNvcmQtPnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKGlkZW50aWZpZXIsIGRpZEZhaWwpKTsK
KyAgICByZWNvcmQtPnNldE51bWJlcigidHlwZSIsIFJlc291cmNlRmluaXNoVGltZWxpbmVSZWNv
cmRUeXBlKTsKICAgICBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhyZWNvcmQpOwogICAgIG1fZnJvbnRl
bmQtPmFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkKTsKIH0KQEAgLTI1NSwyMiArMjU1LDIyIEBA
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlk
TWFya1RpbWVsaW5lKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBwdXNoR0NFdmVudFJl
Y29yZHMoKTsKLSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsK
LSAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVNYXJr
VGltZWxpbmVEYXRhKG1fZnJvbnRlbmQsIG1lc3NhZ2UpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNv
cmQoV1RGOjpjdXJyZW50VGltZU1TKCkpOworICAgIHJlY29yZC0+c2V0KCJkYXRhIiwgVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVNYXJrVGltZWxpbmVEYXRhKG1lc3NhZ2UpKTsKICAgICBh
ZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCwgTWFya1RpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTWFya0RPTUNvbnRlbnRFdmVudCgpCiB7
CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6
OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0g
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKFdURjo6Y3VycmVudFRp
bWVNUygpKTsKICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCwgTWFya0RPTUNvbnRlbnRF
dmVudFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZE1hcmtMb2Fk
RXZlbnQoKQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwotICAgIFNjcmlwdE9iamVjdCBy
ZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9u
dGVuZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChXVEY6
OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIE1hcmtM
b2FkRXZlbnRUeXBlKTsKIH0KIApAQCAtMjc5LDMyICsyNzksMzIgQEAgdm9pZCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpyZXNldCgpCiAgICAgbV9yZWNvcmRTdGFjay5jbGVhcigpOwogfQogCi12
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChJbnNw
ZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnJl
c2V0RnJvbnRlbmRQcm94eU9iamVjdChJbnNwZWN0b3JGcm9udGVuZDIqIGZyb250ZW5kKQogewog
ICAgIEFTU0VSVChmcm9udGVuZCk7CiAgICAgcmVzZXQoKTsKICAgICBtX2Zyb250ZW5kID0gZnJv
bnRlbmQ7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6YWRkUmVjb3JkVG9UaW1l
bGluZShTY3JpcHRPYmplY3QgcmVjb3JkLCBUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkKK3ZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6YWRkUmVjb3JkVG9UaW1lbGluZShjb25zdCBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiYgcmVjb3JkLCBUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkKIHsKLSAg
ICByZWNvcmQuc2V0KCJ0eXBlIiwgdHlwZSk7CisgICAgcmVjb3JkLT5zZXROdW1iZXIoInR5cGUi
LCB0eXBlKTsKICAgICBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhyZWNvcmQpOwogICAgIGlmIChtX3Jl
Y29yZFN0YWNrLmlzRW1wdHkoKSkKICAgICAgICAgbV9mcm9udGVuZC0+YWRkUmVjb3JkVG9UaW1l
bGluZShyZWNvcmQpOwogICAgIGVsc2UgewogICAgICAgICBUaW1lbGluZVJlY29yZEVudHJ5IHBh
cmVudCA9IG1fcmVjb3JkU3RhY2subGFzdCgpOwotICAgICAgICBwYXJlbnQuY2hpbGRyZW4uc2V0
KHBhcmVudC5jaGlsZHJlbi5sZW5ndGgoKSwgcmVjb3JkKTsKKyAgICAgICAgcGFyZW50LmNoaWxk
cmVuLT5wdXNoKHJlY29yZCk7CiAgICAgfQogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKFNjcmlwdE9iamVjdCByZWNvcmQpCit2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKGNvbnN0IFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+JiByZWNvcmQpCiB7CiAgICAgc2l6ZV90IHVzZWRIZWFwU2l6ZSA9IDA7CiAg
ICAgc2l6ZV90IHRvdGFsSGVhcFNpemUgPSAwOwogICAgIFNjcmlwdEdDRXZlbnQ6OmdldEhlYXBT
aXplKHVzZWRIZWFwU2l6ZSwgdG90YWxIZWFwU2l6ZSk7Ci0gICAgcmVjb3JkLnNldCgidXNlZEhl
YXBTaXplIiwgdXNlZEhlYXBTaXplKTsKLSAgICByZWNvcmQuc2V0KCJ0b3RhbEhlYXBTaXplIiwg
dG90YWxIZWFwU2l6ZSk7CisgICAgcmVjb3JkLT5zZXROdW1iZXIoInVzZWRIZWFwU2l6ZSIsIHVz
ZWRIZWFwU2l6ZSk7CisgICAgcmVjb3JkLT5zZXROdW1iZXIoInRvdGFsSGVhcFNpemUiLCB0b3Rh
bEhlYXBTaXplKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21wbGV0
ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlIHR5cGUpCkBAIC0zMTYsMTggKzMxNiwx
OCBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29y
ZChUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkKICAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeSBl
bnRyeSA9IG1fcmVjb3JkU3RhY2subGFzdCgpOwogICAgICAgICBtX3JlY29yZFN0YWNrLnJlbW92
ZUxhc3QoKTsKICAgICAgICAgQVNTRVJUKGVudHJ5LnR5cGUgPT0gdHlwZSk7Ci0gICAgICAgIGVu
dHJ5LnJlY29yZC5zZXQoImRhdGEiLCBlbnRyeS5kYXRhKTsKLSAgICAgICAgZW50cnkucmVjb3Jk
LnNldCgiY2hpbGRyZW4iLCBlbnRyeS5jaGlsZHJlbik7Ci0gICAgICAgIGVudHJ5LnJlY29yZC5z
ZXQoImVuZFRpbWUiLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgICAgIGVudHJ5LnJlY29y
ZC0+c2V0KCJkYXRhIiwgZW50cnkuZGF0YSk7CisgICAgICAgIGVudHJ5LnJlY29yZC0+c2V0KCJj
aGlsZHJlbiIsIGVudHJ5LmNoaWxkcmVuKTsKKyAgICAgICAgZW50cnkucmVjb3JkLT5zZXROdW1i
ZXIoImVuZFRpbWUiLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAgICAgIGFkZFJlY29yZFRv
VGltZWxpbmUoZW50cnkucmVjb3JkLCB0eXBlKTsKICAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6cHVzaEN1cnJlbnRSZWNvcmQoU2NyaXB0T2JqZWN0IGRhdGEsIFRpbWVs
aW5lUmVjb3JkVHlwZSB0eXBlKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ3Vy
cmVudFJlY29yZChjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgZGF0YSwgVGltZWxpbmVS
ZWNvcmRUeXBlIHR5cGUpCiB7CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2NyaXB0
T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29y
ZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7Ci0gICAgbV9yZWNvcmRTdGFjay5h
cHBlbmQoVGltZWxpbmVSZWNvcmRFbnRyeShyZWNvcmQsIGRhdGEsIG1fZnJvbnRlbmQtPm5ld1Nj
cmlwdEFycmF5KCksIHR5cGUpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQg
PSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoV1RGOjpjdXJyZW50
VGltZU1TKCkpOworICAgIG1fcmVjb3JkU3RhY2suYXBwZW5kKFRpbWVsaW5lUmVjb3JkRW50cnko
cmVjb3JkLCBkYXRhLCBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCksIHR5cGUpKTsKIH0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oCmluZGV4IGZlMzM0YmUuLjEwZThhNjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTM0LDE2ICszNCwxNSBAQAogI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkluc3BlY3RvclZhbHVl
cy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTY3Jp
cHRHQ0V2ZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0R0NFdmVudExpc3RlbmVyLmgiCi0jaW5jbHVk
ZSAiU2NyaXB0T2JqZWN0LmgiCi0jaW5jbHVkZSAiU2NyaXB0QXJyYXkuaCIKICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEV2ZW50OwotY2xhc3Mg
SW5zcGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDI7CiBjbGFzcyBJbnRS
ZWN0OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKQEAg
LTc1LDExICs3NCwxMSBAQCBlbnVtIFRpbWVsaW5lUmVjb3JkVHlwZSB7CiAKIGNsYXNzIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQgOiBTY3JpcHRHQ0V2ZW50TGlzdGVuZXIsIHB1YmxpYyBOb25jb3B5
YWJsZSB7CiBwdWJsaWM6Ci0gICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnNwZWN0b3JGcm9u
dGVuZCogZnJvbnRlbmQpOworICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zcGVjdG9yRnJv
bnRlbmQyKiBmcm9udGVuZCk7CiAgICAgfkluc3BlY3RvclRpbWVsaW5lQWdlbnQoKTsKIAogICAg
IHZvaWQgcmVzZXQoKTsKLSAgICB2b2lkIHJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChJbnNwZWN0
b3JGcm9udGVuZCopOworICAgIHZvaWQgcmVzZXRGcm9udGVuZFByb3h5T2JqZWN0KEluc3BlY3Rv
ckZyb250ZW5kMiopOwogCiAgICAgLy8gTWV0aG9kcyBjYWxsZWQgZnJvbSBXZWJDb3JlLgogICAg
IHZvaWQgd2lsbENhbGxGdW5jdGlvbihjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3Jp
cHRMaW5lKTsKQEAgLTEzNCwyNiArMTMzLDI2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBz
dHJ1Y3QgVGltZWxpbmVSZWNvcmRFbnRyeSB7Ci0gICAgICAgIFRpbWVsaW5lUmVjb3JkRW50cnko
U2NyaXB0T2JqZWN0IHJlY29yZCwgU2NyaXB0T2JqZWN0IGRhdGEsIFNjcmlwdEFycmF5IGNoaWxk
cmVuLCBUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkKKyAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRy
eShjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgcmVjb3JkLCBjb25zdCBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiYgZGF0YSwgY29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5PiYgY2hpbGRy
ZW4sIFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlKQogICAgICAgICAgICAgOiByZWNvcmQocmVjb3Jk
KSwgZGF0YShkYXRhKSwgY2hpbGRyZW4oY2hpbGRyZW4pLCB0eXBlKHR5cGUpCiAgICAgICAgIHsK
ICAgICAgICAgfQotICAgICAgICBTY3JpcHRPYmplY3QgcmVjb3JkOwotICAgICAgICBTY3JpcHRP
YmplY3QgZGF0YTsKLSAgICAgICAgU2NyaXB0QXJyYXkgY2hpbGRyZW47CisgICAgICAgIFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZDsKKyAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gZGF0YTsKKyAgICAgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiBjaGlsZHJlbjsKICAgICAg
ICAgVGltZWxpbmVSZWNvcmRUeXBlIHR5cGU7CiAgICAgfTsKICAgICAgICAgCi0gICAgdm9pZCBw
dXNoQ3VycmVudFJlY29yZChTY3JpcHRPYmplY3QsIFRpbWVsaW5lUmVjb3JkVHlwZSk7Ci0gICAg
dm9pZCBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhTY3JpcHRPYmplY3QgcmVjb3JkKTsKKyAgICB2b2lk
IHB1c2hDdXJyZW50UmVjb3JkKGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiwgVGltZWxp
bmVSZWNvcmRUeXBlKTsKKyAgICB2b2lkIHNldEhlYXBTaXplU3RhdGlzdGljKGNvbnN0IFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+JiByZWNvcmQpOwogICAgICAgICAKICAgICB2b2lkIGRpZENvbXBs
ZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGUpOwogCi0gICAgdm9pZCBhZGRSZWNv
cmRUb1RpbWVsaW5lKFNjcmlwdE9iamVjdCwgVGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICB2b2lk
IGFkZFJlY29yZFRvVGltZWxpbmUoY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mLCBUaW1l
bGluZVJlY29yZFR5cGUpOwogCiAgICAgdm9pZCBwdXNoR0NFdmVudFJlY29yZHMoKTsKIAotICAg
IEluc3BlY3RvckZyb250ZW5kKiBtX2Zyb250ZW5kOworICAgIEluc3BlY3RvckZyb250ZW5kMiog
bV9mcm9udGVuZDsKIAogICAgIFZlY3RvcjxUaW1lbGluZVJlY29yZEVudHJ5PiBtX3JlY29yZFN0
YWNrOwogICAgIHN0YXRpYyBpbnQgc19pbnN0YW5jZUNvdW50OwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9y
L1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKaW5kZXggYmRiNWYzZC4uMGFjMWFhNSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAorKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCkBAIC0zNSwxNTEgKzM1
LDE1MSBAQAogCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVu
ZC5oIgorI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNl
LmgiCiAjaW5jbHVkZSAiU2NyaXB0QXJyYXkuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2su
aCIKLSNpbmNsdWRlICJTY3JpcHRPYmplY3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1T
Y3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKElu
c3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgZG91YmxlIHN0YXJ0VGltZSkKK1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChk
b3VibGUgc3RhcnRUaW1lKQogewotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBmcm9udGVuZC0+
bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgcmVjb3JkLnNldCgic3RhcnRUaW1lIiwgc3RhcnRUaW1l
KTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBJbnNwZWN0b3JPYmplY3Q6
OmNyZWF0ZSgpOworICAgIHJlY29yZC0+c2V0TnVtYmVyKCJzdGFydFRpbWUiLCBzdGFydFRpbWUp
OwogCiAgICAgU2NyaXB0QXJyYXkgc3RhY2tUcmFjZTsKLSAgICBpZiAoU2NyaXB0Q2FsbFN0YWNr
OjpzdGFja1RyYWNlKDUsIGZyb250ZW5kLT5zY3JpcHRTdGF0ZSgpLCBzdGFja1RyYWNlKSkKLSAg
ICAgICAgcmVjb3JkLnNldCgic3RhY2tUcmFjZSIsIHN0YWNrVHJhY2UpOworLy8gICAgaWYgKFNj
cmlwdENhbGxTdGFjazo6c3RhY2tUcmFjZSg1LCBmcm9udGVuZC0+c2NyaXB0U3RhdGUoKSwgc3Rh
Y2tUcmFjZSkpCisvLyAgICAgICAgcmVjb3JkLT5zZXQoInN0YWNrVHJhY2UiLCBzdGFja1RyYWNl
KTsKICAgICByZXR1cm4gcmVjb3JkOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVHQ0V2ZW50RGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNv
bnN0IHNpemVfdCB1c2VkSGVhcFNpemVEZWx0YSkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR0NFdmVudERhdGEoY29uc3Qgc2l6ZV90IHVzZWRI
ZWFwU2l6ZURlbHRhKQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1Nj
cmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJ1c2VkSGVhcFNpemVEZWx0YSIsIHVzZWRIZWFw
U2l6ZURlbHRhKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9y
T2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoInVzZWRIZWFwU2l6ZURlbHRh
IiwgdXNlZEhlYXBTaXplRGVsdGEpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmpl
Y3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVGdW5jdGlvbkNhbGxEYXRhKEluc3BlY3Rv
ckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0
TGluZSkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlRnVuY3Rpb25DYWxsRGF0YShjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRM
aW5lKQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVj
dCgpOwotICAgIGRhdGEuc2V0KCJzY3JpcHROYW1lIiwgc2NyaXB0TmFtZSk7Ci0gICAgZGF0YS5z
ZXQoInNjcmlwdExpbmUiLCBzY3JpcHRMaW5lKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXRTdHJpbmco
InNjcmlwdE5hbWUiLCBzY3JpcHROYW1lKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoInNjcmlwdExp
bmUiLCBzY3JpcHRMaW5lKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZlbnREaXNwYXRjaERhdGEoSW5zcGVjdG9yRnJv
bnRlbmQqIGZyb250ZW5kLCBjb25zdCBFdmVudCYgZXZlbnQpCitSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUV2ZW50RGlzcGF0Y2hEYXRhKGNvbnN0
IEV2ZW50JiBldmVudCkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdT
Y3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgidHlwZSIsIGV2ZW50LnR5cGUoKS5zdHJpbmco
KSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6
Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0U3RyaW5nKCJ0eXBlIiwgZXZlbnQudHlwZSgpLnN0cmlu
ZygpKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1RpbWVyRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRl
bmQsIGludCB0aW1lcklkKQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJEYXRhKGludCB0aW1lcklkKQogewotICAgIFNjcmlw
dE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0
KCJ0aW1lcklkIiwgdGltZXJJZCk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9
IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJ0aW1lcklk
IiwgdGltZXJJZCk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVRpbWVySW5zdGFsbERhdGEoSW5zcGVjdG9yRnJvbnRlbmQq
IGZyb250ZW5kLCBpbnQgdGltZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCkKK1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlVGltZXJJ
bnN0YWxsRGF0YShpbnQgdGltZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCkKIHsK
LSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAg
ICBkYXRhLnNldCgidGltZXJJZCIsIHRpbWVySWQpOwotICAgIGRhdGEuc2V0KCJ0aW1lb3V0Iiwg
dGltZW91dCk7Ci0gICAgZGF0YS5zZXQoInNpbmdsZVNob3QiLCBzaW5nbGVTaG90KTsKKyAgICBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsK
KyAgICBkYXRhLT5zZXROdW1iZXIoInRpbWVySWQiLCB0aW1lcklkKTsKKyAgICBkYXRhLT5zZXRO
dW1iZXIoInRpbWVvdXQiLCB0aW1lb3V0KTsKKyAgICBkYXRhLT5zZXRCb29sKCJzaW5nbGVTaG90
Iiwgc2luZ2xlU2hvdCk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUlJlYWR5U3RhdGVDaGFuZ2VEYXRhKEluc3BlY3Rv
ckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3QgU3RyaW5nJiB1cmwsIGludCByZWFkeVN0YXRlKQor
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJS
ZWFkeVN0YXRlQ2hhbmdlRGF0YShjb25zdCBTdHJpbmcmIHVybCwgaW50IHJlYWR5U3RhdGUpCiB7
Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0g
ICAgZGF0YS5zZXQoInVybCIsIHVybCk7Ci0gICAgZGF0YS5zZXQoInJlYWR5U3RhdGUiLCByZWFk
eVN0YXRlKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXRTdHJpbmcoInVybCIsIHVybCk7CisgICAgZGF0
YS0+c2V0TnVtYmVyKCJyZWFkeVN0YXRlIiwgcmVhZHlTdGF0ZSk7CiAgICAgcmV0dXJuIGRhdGE7
CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUkxvYWRE
YXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3QgU3RyaW5nJiB1cmwpCitSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUkxvYWRE
YXRhKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRl
bmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJ1cmwiLCB1cmwpOworICAgIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwor
ICAgIGRhdGEtPnNldFN0cmluZygidXJsIiwgdXJsKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAot
U2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZhbHVhdGVTY3JpcHRE
YXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJs
ZSBsaW5lTnVtYmVyKSAKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlRXZhbHVhdGVTY3JpcHREYXRhKGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUg
bGluZU51bWJlcikKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3Jp
cHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgidXJsIiwgdXJsKTsKLSAgICBkYXRhLnNldCgibGlu
ZU51bWJlciIsIGxpbmVOdW1iZXIpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEg
PSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldFN0cmluZygidXJsIiwg
dXJsKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoImxpbmVOdW1iZXIiLCBsaW5lTnVtYmVyKTsKICAg
ICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlTWFya1RpbWVsaW5lRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkgCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29y
ZEZhY3Rvcnk6OmNyZWF0ZU1hcmtUaW1lbGluZURhdGEoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQog
ewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwot
ICAgIGRhdGEuc2V0KCJtZXNzYWdlIiwgbWVzc2FnZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0U3Ry
aW5nKCJtZXNzYWdlIiwgbWVzc2FnZSk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9i
amVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0
RGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IFN0cmluZyYgdXJsKQorUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVTY2hlZHVs
ZVJlc291cmNlUmVxdWVzdERhdGEoY29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgU2NyaXB0T2Jq
ZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQoInVy
bCIsIHVybCk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9i
amVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0U3RyaW5nKCJ1cmwiLCB1cmwpOwogICAgIHJl
dHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgYm9vbCBpc01haW5SZXNvdXJjZSwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YSh1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGJvb2wgaXNNYWluUmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmpl
Y3QoKTsKLSAgICBkYXRhLnNldCgiaWRlbnRpZmllciIsIGlkZW50aWZpZXIpOwotICAgIGRhdGEu
c2V0KCJ1cmwiLCByZXF1ZXN0LnVybCgpLnN0cmluZygpKTsKLSAgICBkYXRhLnNldCgicmVxdWVz
dE1ldGhvZCIsIHJlcXVlc3QuaHR0cE1ldGhvZCgpKTsKLSAgICBkYXRhLnNldCgiaXNNYWluUmVz
b3VyY2UiLCBpc01haW5SZXNvdXJjZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0
YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJpZGVu
dGlmaWVyIiwgaWRlbnRpZmllcik7CisgICAgZGF0YS0+c2V0U3RyaW5nKCJ1cmwiLCByZXF1ZXN0
LnVybCgpLnN0cmluZygpKTsKKyAgICBkYXRhLT5zZXRTdHJpbmcoInJlcXVlc3RNZXRob2QiLCBy
ZXF1ZXN0Lmh0dHBNZXRob2QoKSk7CisgICAgZGF0YS0+c2V0Qm9vbCgiaXNNYWluUmVzb3VyY2Ui
LCBpc01haW5SZXNvdXJjZSk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlUmVjZWl2ZVJlc3BvbnNlRGF0YShJ
bnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlUmVjZWl2ZVJlc3BvbnNlRGF0YSh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgp
OwotICAgIGRhdGEuc2V0KCJpZGVudGlmaWVyIiwgaWRlbnRpZmllcik7Ci0gICAgZGF0YS5zZXQo
InN0YXR1c0NvZGUiLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKLSAgICBkYXRhLnNldCgi
bWltZVR5cGUiLCByZXNwb25zZS5taW1lVHlwZSgpKTsKLSAgICBkYXRhLnNldCgiZXhwZWN0ZWRD
b250ZW50TGVuZ3RoIiwgcmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCkpOworICAgIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwor
ICAgIGRhdGEtPnNldE51bWJlcigiaWRlbnRpZmllciIsIGlkZW50aWZpZXIpOworICAgIGRhdGEt
PnNldE51bWJlcigic3RhdHVzQ29kZSIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOworICAg
IGRhdGEtPnNldFN0cmluZygibWltZVR5cGUiLCByZXNwb25zZS5taW1lVHlwZSgpKTsKKyAgICBk
YXRhLT5zZXROdW1iZXIoImV4cGVjdGVkQ29udGVudExlbmd0aCIsIHJlc3BvbnNlLmV4cGVjdGVk
Q29udGVudExlbmd0aCgpKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKEluc3BlY3RvckZy
b250ZW5kKiBmcm9udGVuZCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBib29sIGRpZEZhaWwp
CitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJl
c291cmNlRmluaXNoRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGJvb2wgZGlkRmFpbCkK
IHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsK
LSAgICBkYXRhLnNldCgiaWRlbnRpZmllciIsIGlkZW50aWZpZXIpOwotICAgIGRhdGEuc2V0KCJk
aWRGYWlsIiwgZGlkRmFpbCk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IElu
c3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJpZGVudGlmaWVy
IiwgaWRlbnRpZmllcik7CisgICAgZGF0YS0+c2V0Qm9vbCgiZGlkRmFpbCIsIGRpZEZhaWwpOwog
ICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwg
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllcikKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3Jp
cHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgiaWRlbnRpZmllciIsIGlkZW50aWZpZXIpOworICAg
IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgp
OworICAgIGRhdGEtPnNldE51bWJlcigiaWRlbnRpZmllciIsIGlkZW50aWZpZXIpOwogICAgIHJl
dHVybiBkYXRhOwogfQogICAgIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlUGFpbnREYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3QgSW50UmVj
dCYgcmVjdCkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlUGFpbnREYXRhKGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgU2NyaXB0T2JqZWN0
IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQoIngiLCBy
ZWN0LngoKSk7Ci0gICAgZGF0YS5zZXQoInkiLCByZWN0LnkoKSk7Ci0gICAgZGF0YS5zZXQoIndp
ZHRoIiwgcmVjdC53aWR0aCgpKTsKLSAgICBkYXRhLnNldCgiaGVpZ2h0IiwgcmVjdC5oZWlnaHQo
KSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6
Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJ4IiwgcmVjdC54KCkpOworICAgIGRhdGEt
PnNldE51bWJlcigieSIsIHJlY3QueSgpKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoIndpZHRoIiwg
cmVjdC53aWR0aCgpKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoImhlaWdodCIsIHJlY3QuaGVpZ2h0
KCkpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVQYXJzZUhUTUxEYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwg
dW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSkKK1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFyc2VIVE1MRGF0YSh1
bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKQogewotICAgIFNjcmlw
dE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0
KCJsZW5ndGgiLCBsZW5ndGgpOwotICAgIGRhdGEuc2V0KCJzdGFydExpbmUiLCBzdGFydExpbmUp
OworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpOworICAgIGRhdGEtPnNldE51bWJlcigibGVuZ3RoIiwgbGVuZ3RoKTsKKyAgICBkYXRh
LT5zZXROdW1iZXIoInN0YXJ0TGluZSIsIHN0YXJ0TGluZSk7CiAgICAgcmV0dXJuIGRhdGE7CiB9
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5o
IGIvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKaW5kZXggZjkwNWVj
Yy4uNmI1N2E2ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgK
QEAgLTM3LDQ3ICszNyw0NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBFdmVu
dDsKICAgICBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKKyAgICBjbGFzcyBJbnNwZWN0b3JPYmpl
Y3Q7CiAgICAgY2xhc3MgSW50UmVjdDsKICAgICBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAgICAg
Y2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLSAgICBjbGFzcyBTY3JpcHRPYmplY3Q7CiAKICAgICBj
bGFzcyBUaW1lbGluZVJlY29yZEZhY3RvcnkgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGlj
IFNjcmlwdE9iamVjdCBjcmVhdGVHZW5lcmljUmVjb3JkKEluc3BlY3RvckZyb250ZW5kKiwgZG91
YmxlIHN0YXJ0VGltZSk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBj
cmVhdGVHZW5lcmljUmVjb3JkKGRvdWJsZSBzdGFydFRpbWUpOwogCi0gICAgICAgIHN0YXRpYyBT
Y3JpcHRPYmplY3QgY3JlYXRlR0NFdmVudERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5k
LCBjb25zdCBzaXplX3QgdXNlZEhlYXBTaXplRGVsdGEpOworICAgICAgICBzdGF0aWMgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gY3JlYXRlR0NFdmVudERhdGEoY29uc3Qgc2l6ZV90IHVzZWRIZWFw
U2l6ZURlbHRhKTsKIAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZUZ1bmN0aW9u
Q2FsbERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGlu
dCBzY3JpcHRMaW5lKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNy
ZWF0ZUZ1bmN0aW9uQ2FsbERhdGEoY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0
TGluZSk7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVFdmVudERpc3BhdGNo
RGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGNvbnN0IEV2ZW50Jik7CisgICAgICAgIHN0YXRpYyBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVFdmVudERpc3BhdGNoRGF0YShjb25zdCBFdmVu
dCYpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlR2VuZXJpY1RpbWVyRGF0
YShJbnNwZWN0b3JGcm9udGVuZCosIGludCB0aW1lcklkKTsKKyAgICAgICAgc3RhdGljIFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUdlbmVyaWNUaW1lckRhdGEoaW50IHRpbWVySWQpOwog
Ci0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlVGltZXJJbnN0YWxsRGF0YShJbnNw
ZWN0b3JGcm9udGVuZCosIGludCB0aW1lcklkLCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90
KTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVRpbWVySW5z
dGFsbERhdGEoaW50IHRpbWVySWQsIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpOwogCi0g
ICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlWEhSUmVhZHlTdGF0ZUNoYW5nZURhdGEo
SW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBTdHJpbmcmIHVybCwgaW50IHJlYWR5U3RhdGUpOwor
ICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlWEhSUmVhZHlTdGF0
ZUNoYW5nZURhdGEoY29uc3QgU3RyaW5nJiB1cmwsIGludCByZWFkeVN0YXRlKTsKIAotICAgICAg
ICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVhIUkxvYWREYXRhKEluc3BlY3RvckZyb250ZW5k
KiwgY29uc3QgU3RyaW5nJiB1cmwpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gY3JlYXRlWEhSTG9hZERhdGEoY29uc3QgU3RyaW5nJiB1cmwpOwogCi0gICAgICAgIHN0
YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlRXZhbHVhdGVTY3JpcHREYXRhKEluc3BlY3RvckZyb250
ZW5kKiwgY29uc3QgU3RyaW5nJiwgZG91YmxlIGxpbmVOdW1iZXIpOworICAgICAgICBzdGF0aWMg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlRXZhbHVhdGVTY3JpcHREYXRhKGNvbnN0IFN0
cmluZyYsIGRvdWJsZSBsaW5lTnVtYmVyKTsKIAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0
IGNyZWF0ZU1hcmtUaW1lbGluZURhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBTdHJpbmcm
KTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZU1hcmtUaW1l
bGluZURhdGEoY29uc3QgU3RyaW5nJik7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBj
cmVhdGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YShJbnNwZWN0b3JGcm9udGVuZCosIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IGNyZWF0ZVJlc291cmNlU2VuZFJlcXVlc3REYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwK
ICAgICAgICAgICAgIGJvb2wgaXNNYWluUmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYp
OwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlU2NoZWR1bGVSZXNvdXJjZVJl
cXVlc3REYXRhKEluc3BlY3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJik7CisgICAgICAgIHN0
YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVTY2hlZHVsZVJlc291cmNlUmVxdWVz
dERhdGEoY29uc3QgU3RyaW5nJik7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVh
dGVSZXNvdXJjZVJlY2VpdmVSZXNwb25zZURhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICAgICAgc3Rh
dGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVJlc291cmNlUmVjZWl2ZVJlc3BvbnNl
RGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsK
IAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVJlY2VpdmVSZXNvdXJjZURhdGEo
SW5zcGVjdG9yRnJvbnRlbmQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOworICAgICAgICBz
dGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlUmVjZWl2ZVJlc291cmNlRGF0YSh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3Qg
Y3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBib29sIGRpZEZhaWwpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gY3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgYm9vbCBkaWRGYWlsKTsKIAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0
ZVBhaW50RGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGNvbnN0IEludFJlY3QmKTsKKyAgICAgICAg
c3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVBhaW50RGF0YShjb25zdCBJbnRS
ZWN0Jik7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVQYXJzZUhUTUxEYXRh
KEluc3BlY3RvckZyb250ZW5kKiwgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0
YXJ0TGluZSk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVQ
YXJzZUhUTUxEYXRhKHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUp
OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgVGltZWxpbmVSZWNvcmRGYWN0b3J5KCkgeyB9CmRp
ZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmlu
ZGV4IDUwNWY1Y2MuLjA0YjRjZDUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDYtMTYgIEls
eWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkluc3BlY3RvcjogYnVnZml4LgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorCiAyMDEw
LTA2LTE1ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXggY29t
cGlsYXRpb24gd2l0aCBvbGRlciBHVEsrLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwCmluZGV4IDRiYzNjMzIuLjYxNjgzNGIgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcAorKysg
Yi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAKQEAgLTEz
NCw3ICsxMzQsNyBAQCBib29sIEluc3BlY3RvckNsaWVudDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5k
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBpZiAoIXNjcmlwdENvbnRyb2xsZXIpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIFN0cmluZyBkaXNwYXRjaFRvRnJvbnRlbmQoIldlYklu
c3BlY3Rvci5kaXNwYXRjaE1lc3NhZ2VUb0Zyb250ZW5kKCIpOworICAgIFN0cmluZyBkaXNwYXRj
aFRvRnJvbnRlbmQoIldlYkluc3BlY3Rvci5kaXNwYXRjaE1lc3NhZ2VGcm9tQmFja2VuZCgiKTsK
ICAgICBkaXNwYXRjaFRvRnJvbnRlbmQgKz0gbWVzc2FnZTsKICAgICBkaXNwYXRjaFRvRnJvbnRl
bmQgKz0gIik7IjsKICAgICBzY3JpcHRDb250cm9sbGVyLT5leGVjdXRlU2NyaXB0KGRpc3BhdGNo
VG9Gcm9udGVuZCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0
L0NoYW5nZUxvZwppbmRleCBhZTdiNDQ3Li44MTRmZTk0IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAx
MC0wNi0xNiAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViSW5zcGVjdG9yOiBi
dWdmaXguCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRRdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRRdDo6c2VuZE1lc3NhZ2VUb0Zyb250
ZW5kKToKKwogMjAxMC0wNi0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgRml4IGJ1aWxkLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0lu
c3BlY3RvckNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JD
bGllbnRRdC5jcHAKaW5kZXggZmRlMDU1Ni4uNDUwMzExZCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50UXQuY3BwCkBAIC0xODQsNyArMTg0LDcgQEAgYm9v
bCBJbnNwZWN0b3JDbGllbnRRdDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKICAgICBpZiAoIXNjcmlwdENvbnRyb2xsZXIpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIFN0cmluZyBkaXNwYXRjaFRvRnJvbnRlbmQoIldlYkluc3BlY3Rvci5kaXNwYXRj
aE1lc3NhZ2VUb0Zyb250ZW5kKCIpOworICAgIFN0cmluZyBkaXNwYXRjaFRvRnJvbnRlbmQoIldl
Ykluc3BlY3Rvci5kaXNwYXRjaE1lc3NhZ2VGcm9tQmFja2VuZCgiKTsKICAgICBkaXNwYXRjaFRv
RnJvbnRlbmQgKz0gbWVzc2FnZTsKICAgICBkaXNwYXRjaFRvRnJvbnRlbmQgKz0gIik7IjsKICAg
ICBzY3JpcHRDb250cm9sbGVyLT5leGVjdXRlU2NyaXB0KGRpc3BhdGNoVG9Gcm9udGVuZCk7Cg==
</data>
<flag name="review"
          id="45409"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58975</attachid>
            <date>2010-06-17 03:10:21 -0700</date>
            <delta_ts>2010-06-17 04:49:15 -0700</delta_ts>
            <desc>[patch] second iteration</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>87197</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlMmNhODYwLi5mNGE4ZTJm
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMDYtMTYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE9uIHRoZSB3YXkgdG8gUmVtb3RlIERlYnVnaW5nIHdlIHdhbnQgdG8gc3VwcG9ydCBKU09O
CisgICAgICAgIHNlcmlhbGl6YXRpb24gb24gYm90aCBzaWRlcyBvZiBXZWJJbnNwZWN0b3IgdHJh
bnNwb3J0LiBBcyBmYXIgYXMKKyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmQgY2xhc3MgaXMgYSBz
aW1wbGUgcHJveHkgdG8gV2ViSW5zcGVjdG9yIGl0IHdvdWxkCisgICAgICAgIGJlIGJldHRlciB0
byBnZW5lcmF0ZSBpdCBmcm9tIGFuIElETCBmaWxlLiBXZSBoYXZlIGdlbmVyYXRvcgorICAgICAg
ICBpbmZvc3RydWN0dXJlIGZvciBiaW5kaW5nIGFuZCB3aWxsIHJldXNlIGl0IGZvciBuZXcgZ2Vu
ZXJhdG9yLiBOZXcKKyAgICAgICAga2luZCBvZiBpZGwgZmlsZXMgaXMgaW50cm9kdWNlZDogV2Vi
SW5zcGVjdG9ySW50ZXJmYWNlIHdpdGgKKyAgICAgICAgZXh0ZW5zaW9uICdpbnNwZWN0b3InLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA2NzUKKwor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorCiAyMDEwLTA2LTE1ICBYYW4gTG9wZXogIDx4bG9w
ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KZGlmZiAtLWdp
dCBhL0dOVW1ha2VmaWxlLmFtIGIvR05VbWFrZWZpbGUuYW0KaW5kZXggYzJiMWMxYy4uOThiZWU4
MCAxMDA2NDQKLS0tIGEvR05VbWFrZWZpbGUuYW0KKysrIGIvR05VbWFrZWZpbGUuYW0KQEAgLTU1
LDYgKzU1LDcgQEAgbm9pbnN0X0hFQURFUlMgOj0KIG5vaW5zdF9MVExJQlJBUklFUyA6PQogbGli
X0xJQlJBUklFUyA6PQogSURMX0JJTkRJTkdTIDo9CitJTlNQRUNUT1JfSU5URVJGQUNFUyA6PQog
VEVTVF9QUk9HUyA6PQogUE9GSUxFUyA6PQogTU9GSUxFUyA6PQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTk4YzJjNi4u
OGUwMGM0MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0yODcsNiArMjg3LDcgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVT
CiAKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmlkbAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JCYWNrZW5kLmlkbAorICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIuaW5z
cGVjdG9yCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKICAgICBpbnNw
ZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5pZGwKICAgICBpbnNwZWN0b3IvU2NyaXB0UHJvZmls
ZS5pZGwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYWRkZjMyYS4uMGJhZGNmOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4OSBAQAorMjAxMC0wNi0xNiAgSWx5YSBU
aWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogT24gdGhlIHdheSB0byBS
ZW1vdGUgRGVidWdpbmcgd2Ugd2FudCB0byBzdXBwb3J0IEpTT04KKyAgICAgICAgc2VyaWFsaXph
dGlvbiBvbiBib3RoIHNpZGVzIG9mIFdlYkluc3BlY3RvciB0cmFuc3BvcnQuIEFzIGZhciBhcwor
ICAgICAgICBJbnNwZWN0b3JGcm9udGVuZCBjbGFzcyBpcyBhIHNpbXBsZSBwcm94eSB0byBXZWJJ
bnNwZWN0b3IgaXQgd291bGQKKyAgICAgICAgYmUgYmV0dGVyIHRvIGdlbmVyYXRlIGl0IGZyb20g
YW4gSURMIGZpbGUuIFdlIGhhdmUgZ2VuZXJhdG9yCisgICAgICAgIGluZm9zdHJ1Y3R1cmUgZm9y
IGJpbmRpbmcgYW5kIHdpbGwgcmV1c2UgaXQgZm9yIG5ldyBnZW5lcmF0b3IuIE5ldworICAgICAg
ICBraW5kIG9mIGlkbCBmaWxlcyBpcyBpbnRyb2R1Y2VkOiBXZWJJbnNwZWN0b3JJbnRlcmZhY2Ug
d2l0aAorICAgICAgICBleHRlbnNpb24gJ2luc3BlY3RvcicuIFRoZSBmaXJzdCByZWFsIHVzZXIg
b2YgdGhhdCBpcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA2NzUKKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR05VbWFrZWZp
bGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXAvV2ViQ29yZS5neXA6CisgICAgICAgICogV2Vi
Q29yZS5neXAvc2NyaXB0cy9hY3Rpb25fZGVyaXZlZHNvdXJjZXNhbGxpbm9uZS5weToKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cC9zY3JpcHRzL3J1bGVfYmluZGluZy5weToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0lETFN0cnVjdHVyZS5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL2dl
bmVyYXRlLWJpbmRpbmdzLnBsOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RG
cm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpzdGFydFRp
bWVsaW5lUHJvZmlsZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9Db2RlR2VuZXJhdG9yLnBtOiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHA6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kMi5pbnNwZWN0b3I6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1l
bGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6cHVzaEdDRXZlbnRSZWNvcmRzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxDYWxsRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbERpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbExheW91dCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsUmVjYWxjdWxhdGVTdHlsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsUGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFdyaXRlSFRNTCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRXcml0ZUhUTUwpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkSW5zdGFsbFRpbWVyKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJlbW92ZVRpbWVy
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxGaXJlVGlt
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENoYW5n
ZVhIUlJlYWR5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6d2lsbExvYWRYSFIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6d2lsbEV2YWx1YXRlU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OmRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNlaXZlUmVzb3VyY2VE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNl
aXZlUmVzb3VyY2VSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpkaWRGaW5pc2hMb2FkaW5nUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTWFya1RpbWVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZE1hcmtET01Db250ZW50RXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTWFya0xvYWRFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpyZXNldEZyb250ZW5kUHJv
eHlPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6YWRk
UmVjb3JkVG9UaW1lbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpzZXRIZWFwU2l6ZVN0YXRpc3RpYyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaEN1cnJlbnRSZWNvcmQpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjpUaW1lbGluZVJlY29yZEVudHJ5OjpUaW1lbGluZVJlY29y
ZEVudHJ5KToKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1Jl
Y29yZCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdD
RXZlbnREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlRnVuY3Rpb25DYWxsRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZh
Y3Rvcnk6OmNyZWF0ZUV2ZW50RGlzcGF0Y2hEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1RpbWVyRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVRpbWVySW5zdGFsbERhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJSZWFkeVN0YXRl
Q2hhbmdlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZVhIUkxvYWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlRXZhbHVhdGVTY3JpcHREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlTWFya1RpbWVsaW5lRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0RGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291
cmNlU2VuZFJlcXVlc3REYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VEYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVjZWl2ZVJlc291
cmNlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZVBhaW50RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZVBhcnNlSFRNTERhdGEpOgorICAgICAgICAqIGluc3BlY3Rvci9UaW1lbGluZVJlY29yZEZh
Y3RvcnkuaDoKKwogMjAxMC0wNi0xNSAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IERhdmlkIEhhcnJpc29uLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmlu
ZGV4IDdlYzkxNWYuLjIyYmExMmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQ2Miw5ICs0NjIsMTEg
QEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgWFNMVFByb2Nlc3NvciBcCiAjCiAKK0lOU1BFQ1RPUl9D
TEFTU0VTID0gSW5zcGVjdG9yRnJvbnRlbmQyCisKIC5QSE9OWSA6IGFsbAogCi1KU19ET01fSEVB
REVSUz0kKGZpbHRlci1vdXQgSlNFdmVudExpc3RlbmVyLmggSlNFdmVudFRhcmdldC5oLCQoRE9N
X0NMQVNTRVM6JT1KUyUuaCkpCitKU19ET01fSEVBREVSUz0kKGZpbHRlci1vdXQgSlNFdmVudExp
c3RlbmVyLmggSlNFdmVudFRhcmdldC5oLCQoRE9NX0NMQVNTRVM6JT1KUyUuaCkgJChJTlNQRUNU
T1JfQ0xBU1NFUzolPVdlYiUuaCkpCiAKIGFsbCA6IFwKICAgICAkKEpTX0RPTV9IRUFERVJTKSBc
CkBAIC04MTIsMjAgKzgxNCwzMiBAQCBlbmRpZgogCiAjIC0tLS0tLS0tCiAKLSMgSmF2YVNjcmlw
dCBiaW5kaW5ncwotCi1HRU5FUkFURV9CSU5ESU5HUyA9IHBlcmwgLUkgJChXZWJDb3JlKS9iaW5k
aW5ncy9zY3JpcHRzICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5n
cy5wbCBcCi0gICAgLS1pbmNsdWRlIGRvbSAtLWluY2x1ZGUgaHRtbCAtLWluY2x1ZGUgY3NzIC0t
aW5jbHVkZSBwYWdlIC0taW5jbHVkZSBub3RpZmljYXRpb25zIC0taW5jbHVkZSB4bWwgLS1pbmNs
dWRlIHN2ZyAtLXdyaXRlLWRlcGVuZGVuY2llcyAtLW91dHB1dERpciAuCisjIENvbW1vbiBnZW5l
cmF0b3IgdGhpbmdzCiAKLUdFTkVSQVRFX0JJTkRJTkdTX1NDUklQVFMgPSBcCitHRU5FUkFURV9T
Q1JJUFRTID0gXAogICAgIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbSBcCiAgICAg
YmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0gXAogICAgIGJpbmRpbmdzL3NjcmlwdHMvSURM
U3RydWN0dXJlLnBtIFwKLSAgICBiaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBs
IFwKLSMKKyAgICBiaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCisKK2dlbmVy
YXRvcl9zY3JpcHQgPSBwZXJsICQoYWRkcHJlZml4IC1JICQoV2ViQ29yZSkvLCAkKHNvcnQgJChk
aXIgJCgxKSkpKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3Mu
cGwKKworIyBKUyBiaW5kaW5ncyBnZW5lcmF0b3IKKworSURMX0lOQ0xVREVTID0gZG9tIGh0bWwg
Y3NzIHBhZ2Ugbm90aWZpY2F0aW9ucyB4bWwgc3ZnCitJRExfQ09NTU9OX0FSR1MgPSAkKElETF9J
TkNMVURFUzolPS0taW5jbHVkZSAlKSAtLXdyaXRlLWRlcGVuZGVuY2llcyAtLW91dHB1dERpciAu
CisKK0pTX0JJTkRJTkdTX1NDUklQVFMgPSAkKEdFTkVSQVRFX1NDUklQVFMpIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisKK0pTJS5oIDogJS5pZGwgJChKU19CSU5ESU5HU19T
Q1JJUFRTKQorCSQoY2FsbCBnZW5lcmF0b3Jfc2NyaXB0LCAkKEpTX0JJTkRJTkdTX1NDUklQVFMp
KSAkKElETF9DT01NT05fQVJHUykgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykgJChBRERJ
VElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRvciBKUyAk
PAorCisjIEluc3BlY3RvciBpbnRlcmZhY2VzIGdlbmVyYXRvcgorCitJTlNQRUNUT1JfR0VORVJB
VE9SX1NDUklQVFMgPSAkKEdFTkVSQVRFX1NDUklQVFMpIGluc3BlY3Rvci9Db2RlR2VuZXJhdG9y
SW5zcGVjdG9yLnBtCiAKLUpTJS5oIDogJS5pZGwgJChHRU5FUkFURV9CSU5ESU5HU19TQ1JJUFRT
KSBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQotCSQoR0VORVJBVEVfQklORElO
R1MpIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMpICQoQURESVRJT05BTF9JRExfREVGSU5F
UykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1nZW5lcmF0b3IgSlMgJDwKK1dlYiUuaCA6ICUuaW5z
cGVjdG9yICQoSU5TUEVDVE9SX0dFTkVSQVRPUl9TQ1JJUFRTKQorCSQoY2FsbCBnZW5lcmF0b3Jf
c2NyaXB0LCAkKElOU1BFQ1RPUl9HRU5FUkFUT1JfU0NSSVBUUykpIC0tb3V0cHV0RGlyIC4gIC0t
ZGVmaW5lcyAiTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1nZW5lcmF0b3IgSW5zcGVjdG9yICQ8CiAK
IC1pbmNsdWRlICQoSlNfRE9NX0hFQURFUlM6Lmg9LmRlcCkKIApAQCAtOTI2LDggKzk0MCw5IEBA
IFdlYkNvcmUuTFA2NC5leHAgOiBXZWJDb3JlLmV4cAogCiAjIE9iamVjdGl2ZS1DIGJpbmRpbmdz
CiAKLURPTSUuaCA6ICUuaWRsICQoR0VORVJBVEVfQklORElOR1NfU0NSSVBUUykgYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbSBiaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVy
ZmFjZXMuaAotCSQoR0VORVJBVEVfQklORElOR1MpIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklO
RVMpICQoQURESVRJT05BTF9JRExfREVGSU5FUykgTEFOR1VBR0VfT0JKRUNUSVZFX0MiIC0tZ2Vu
ZXJhdG9yIE9iakMgJDwKK0RPTV9CSU5ESU5HU19TQ1JJUFRTID0gJChHRU5FUkFURV9CSU5ESU5H
X1NDUklQVFMpIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KK0RPTSUuaCA6
ICUuaWRsICQoRE9NX0JJTkRJTkdTX1NDUklQVFMpIGJpbmRpbmdzL29iamMvUHVibGljRE9NSW50
ZXJmYWNlcy5oCisJJChjYWxsIGdlbmVyYXRvcl9zY3JpcHQsICQoRE9NX0JJTkRJTkdTX1NDUklQ
VFMpKSAkKElETF9DT01NT05fQVJHUykgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykgJChB
RERJVElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFHRV9PQkpFQ1RJVkVfQyIgLS1nZW5lcmF0b3Ig
T2JqQyAkPAogCiAtaW5jbHVkZSAkKE9CSkNfRE9NX0hFQURFUlM6Lmg9LmRlcCkKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5k
ZXggMzQ1NmZkNS4uZDZjZDlhMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQor
KysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0zMjEsNiArMzIxLDggQEAgSURMX0JJTkRJ
TkdTICs9IFwKIAlXZWJDb3JlL3htbC9YTUxTZXJpYWxpemVyLmlkbCBcCiAJV2ViQ29yZS94bWwv
WFNMVFByb2Nlc3Nvci5pZGwKIAorSU5TUEVDVE9SX0lOVEVSRkFDRVMgKz0gV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmluc3BlY3RvcgorCiB3ZWJjb3JlZ3RrX2RvbV9zb3Vy
Y2VzID0gXAogCVdlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9Db252ZXJ0VG9VVEY4U3RyaW5nLmNw
cCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0NvbnZlcnRUb1VURjhTdHJpbmcuaCBcCkBA
IC0zODg3LDEzICszODg5LDE5IEBAIElETF9QQVRIIDo9IFwKICAgICAkKFdlYkNvcmUpL3dvcmtl
cnMKIAogdnBhdGggJS5pZGwgPSAkKElETF9QQVRIKQordnBhdGggJS5pbnNwZWN0b3IgPSAkKFdl
YkNvcmUpL2luc3BlY3RvcgogCiBEZXJpdmVkU291cmNlcy9KUyUuaDogRGVyaXZlZFNvdXJjZXMv
SlMlLmNwcDsKIAorRGVyaXZlZFNvdXJjZXMvV2ViJS5oOiBEZXJpdmVkU291cmNlcy9XZWIlLmNw
cDsKKwogLlNFQ09OREFSWToKIERlcml2ZWRTb3VyY2VzL0pTJS5jcHA6ICUuaWRsICQoU0NSSVBU
U19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkKFdl
YkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgJChJRExfUEFUSDol
PS0taW5jbHVkZSAiJSIpIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAtLWRlZmluZXMgIkxB
TkdVQUdFX0pBVkFTQ1JJUFQ9MSAkKEZFQVRVUkVfREVGSU5FUykiIC0tZ2VuZXJhdG9yIEpTICQ8
CiAKK0Rlcml2ZWRTb3VyY2VzL1dlYiUuY3BwOiAlLmluc3BlY3RvciAkKFNDUklQVFNfQklORElO
R1MpICQoV2ViQ29yZSkvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KKwkkKEFN
X1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgLUkkKFdlYkNvcmUp
L2luc3BlY3RvciAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3Mu
cGwgJChJRExfUEFUSDolPS0taW5jbHVkZSAiJSIpIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMp
IiAtLWRlZmluZXMgIkxBTkdVQUdFX0pBVkFTQ1JJUFQ9MSAkKEZFQVRVUkVfREVGSU5FUykiIC0t
Z2VuZXJhdG9yIEluc3BlY3RvciAkPAorCiBJRExfQklORElOR1NfSlNfUFVSRSA6PSBcCiAJV2Vi
Q29yZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlkbCBcCiAJV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRQYXRoRGF0YS5pZGwgXApAQCAtMzkxMyw4ICszOTIxLDExIEBAIElETF9CSU5ESU5HU19KU19Q
VVJFIDo9IFwKIElETF9CSU5ESU5HU19KUyA6PSAkKGZpbHRlci1vdXQgJChJRExfQklORElOR1Nf
SlNfUFVSRSksJChJRExfQklORElOR1MpKQogCiB3ZWJjb3JlX2J1aWx0X25vc291cmNlcyArPSAk
KHBhdHN1YnN0ICUuaWRsLERlcml2ZWRTb3VyY2VzL0pTJS5oLCQobm90ZGlyICQoSURMX0JJTkRJ
TkdTKSkpCit3ZWJjb3JlX2J1aWx0X25vc291cmNlcyArPSAkKHBhdHN1YnN0ICUuaW5zcGVjdG9y
LERlcml2ZWRTb3VyY2VzL1dlYiUuaCwkKG5vdGRpciAkKElOU1BFQ1RPUl9JTlRFUkZBQ0VTKSkp
CiAKLXdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzICs9ICQocGF0c3Vic3QgJS5pZGwsRGVyaXZlZFNv
dXJjZXMvSlMlLmNwcCwkKG5vdGRpciAkKElETF9CSU5ESU5HU19KUykpKQord2ViY29yZV9idWls
dF9jcHAgPSAkKHBhdHN1YnN0ICUuaWRsLERlcml2ZWRTb3VyY2VzL0pTJS5jcHAsJChub3RkaXIg
JChJRExfQklORElOR1NfSlMpKSkKK3dlYmNvcmVfYnVpbHRfY3BwICs9ICQocGF0c3Vic3QgJS5p
bnNwZWN0b3IsRGVyaXZlZFNvdXJjZXMvV2ViJS5jcHAsJChub3RkaXIgJChJTlNQRUNUT1JfSU5U
RVJGQUNFUykpKQord2ViY29yZV9idWlsdF9ub3NvdXJjZXMgKz0gJCh3ZWJjb3JlX2J1aWx0X2Nw
cCkKIAogd2ViY29yZV9idWlsdF9vYmplY3RzID0gOj0gJChwYXRzdWJzdCAlLmNwcCwlLmxvLCQo
d2ViY29yZV9idWlsdF9ub3NvdXJjZXMpKQogCkBAIC0zOTIyLDkgKzM5MzMsOSBAQCAkKHdlYmNv
cmVfYnVpbHRfb2JqZWN0cyk6IEFNX0NQUEZMQUdTKz0kKGNvcmVraXRfY3BwZmxhZ3MpCiAKICQo
d2ViY29yZV9idWlsdF9vYmplY3RzKTogQU1fQ1hYRkxBR1MrPSQobGlid2Via2l0XzFfMF9sYV9D
WFhGTEFHUykKIAotbGliV2ViQ29yZUpTX29iamVjdHMgOj0gJChwYXRzdWJzdCAlLmlkbCxEZXJp
dmVkU291cmNlcy9KUyUubG8sJChub3RkaXIgJChJRExfQklORElOR1NfSlMpKSkKK2xpYldlYkNv
cmVKU19vYmplY3RzIDo9ICQocGF0c3Vic3QgJS5jcHAsJS5sbywkKHdlYmNvcmVfYnVpbHRfY3Bw
KSkKIAotbGliV2ViQ29yZUpTX2RlcGZpbGVzIDo9ICQocGF0c3Vic3QgJS5pZGwsRGVyaXZlZFNv
dXJjZXMvJChERVBESVIpL0pTJS5QbG8sJChub3RkaXIgJChJRExfQklORElOR1NfSlMpKSkKK2xp
YldlYkNvcmVKU19kZXBmaWxlcyA6PSAkKHBhdHN1YnN0ICUuY3BwLERlcml2ZWRTb3VyY2VzLyQo
REVQRElSKS8lLlBsbywkKG5vdGRpciAkKHdlYmNvcmVfYnVpbHRfY3BwKSkpCiAKICMgT2xkZXIg
YXV0b21ha2UgdmVyc2lvbnMgKDEuNykgcGxhY2UgUGxvIGZpbGVzIGluIGEgZGlmZmVyZW50IHBs
YWNlOgogbGliV2ViQ29yZUpTX2RlcGZpbGVzICs9ICQocGF0c3Vic3QgJS5sbywkKERFUERJUikv
JS5QbG8sJChsaWJXZWJDb3JlSlNfb2JqZWN0cykpCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwL1dlYkNvcmUuZ3lwIGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRl
eCAxNmYxOWQ5Li42MTNjODYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNv
cmUuZ3lwCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKQEAgLTU4OSw2ICs1
ODksNyBAQAogICAgICAgICAgICdhY3Rpb24nOiBbCiAgICAgICAgICAgICAncHl0aG9uJywKICAg
ICAgICAgICAgICdzY3JpcHRzL3J1bGVfYmluZGluZy5weScsCisgICAgICAgICAgICAndjgnLAog
ICAgICAgICAgICAgJzwoUlVMRV9JTlBVVF9QQVRIKScsCiAgICAgICAgICAgICAnPChTSEFSRURf
SU5URVJNRURJQVRFX0RJUikvd2ViY29yZS9iaW5kaW5ncycsCiAgICAgICAgICAgICAnPChTSEFS
RURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L2JpbmRpbmdzJywKQEAgLTYwMSw2ICs2MDIsNDkg
QEAKICAgICAgICAgICBdLAogICAgICAgICAgICdtZXNzYWdlJzogJ0dlbmVyYXRpbmcgYmluZGlu
ZyBmcm9tIDwoUlVMRV9JTlBVVF9QQVRIKScsCiAgICAgICAgIH0sCisgICAgICAgICMgUnVsZSB0
byBidWlsZCBnZW5lcmF0ZWQgV2ViSW5zcGVjdG9yIGJpbmRpbmdzIGZyb20gLmluc3BlY3RvciBz
b3VyY2UuCisgICAgICAgIHsKKyAgICAgICAgICAncnVsZV9uYW1lJzogJ2luc3BlY3RvcicsCisg
ICAgICAgICAgJ2V4dGVuc2lvbic6ICdpbnNwZWN0b3InLAorICAgICAgICAgICdtc3ZzX2V4dGVy
bmFsX3J1bGUnOiAxLAorICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAgICAnLi4vYmlu
ZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCcsCisgICAgICAgICAgICAnLi4vYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtJywKKyAgICAgICAgICAgICcuLi9pbnNwZWN0
b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbScsCisgICAgICAgICAgICAnLi4vYmluZGluZ3Mv
c2NyaXB0cy9JRExQYXJzZXIucG0nLAorICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMv
SURMU3RydWN0dXJlLnBtJywKKyAgICAgICAgICBdLAorICAgICAgICAgICdvdXRwdXRzJzogWwor
ICAgICAgICAgICAgIyBGSVhNRTogIFRoZSAuY3BwIGZpbGUgc2hvdWxkIGJlIGluIHdlYmtpdC9i
aW5kaW5ncyBvbmNlCisgICAgICAgICAgICAjIHdlIGNvYXggR1lQIGludG8gc3VwcG9ydGluZyBp
dCAoc2VlICdhY3Rpb24nIGJlbG93KS4KKyAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElB
VEVfRElSKS93ZWJjb3JlL2JpbmRpbmdzL1dlYjwoUlVMRV9JTlBVVF9ST09UKS5jcHAnLAorICAg
ICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9iaW5kaW5ncy9XZWI8
KFJVTEVfSU5QVVRfUk9PVCkuaCcsCisgICAgICAgICAgXSwKKyAgICAgICAgICAndmFyaWFibGVz
JzogeworICAgICAgICAgICAgJ2dlbmVyYXRvcl9pbmNsdWRlX2RpcnMnOiBbCisgICAgICAgICAg
ICBdLAorICAgICAgICAgIH0sCisgICAgICAgICAgIyBGSVhNRTogIE5vdGUgdGhhdCB3ZSBwdXQg
dGhlIC5jcHAgZmlsZXMgaW4gd2ViY29yZS9iaW5kaW5ncworICAgICAgICAgICMgYnV0IHRoZSAu
aCBmaWxlcyBpbiB3ZWJraXQvYmluZGluZ3MuICBUaGlzIGlzIHRvIHdvcmsgYXJvdW5kCisgICAg
ICAgICAgIyB0aGUgdW5mb3J0dW5hdGUgZmFjdCB0aGF0IEdZUCBzdHJpcHMgZHVwbGljYXRlIGFy
Z3VtZW50cworICAgICAgICAgICMgZnJvbSBsaXN0cy4gIFdoZW4gd2UgaGF2ZSBhIGJldHRlciBH
WVAgd2F5IHRvIHN1cHByZXNzIHRoYXQKKyAgICAgICAgICAjIGJlaGF2aW9yLCBjaGFuZ2UgdGhl
IG91dHB1dCBsb2NhdGlvbi4KKyAgICAgICAgICAnYWN0aW9uJzogWworICAgICAgICAgICAgJ3B5
dGhvbicsCisgICAgICAgICAgICAnc2NyaXB0cy9ydWxlX2JpbmRpbmcucHknLAorICAgICAgICAg
ICAgJ1dlYicsCisgICAgICAgICAgICAnPChSVUxFX0lOUFVUX1BBVEgpJywKKyAgICAgICAgICAg
ICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJjb3JlL2JpbmRpbmdzJywKKyAgICAgICAg
ICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGluZ3MnLAorICAgICAg
ICAgICAgJy0tJywKKyAgICAgICAgICAgICc8QChfaW5wdXRzKScsCisgICAgICAgICAgICAnLS0n
LAorICAgICAgICAgICAgJy0tZGVmaW5lcycsICdMQU5HVUFHRV9KQVZBU0NSSVBUJywKKyAgICAg
ICAgICAgICctLWdlbmVyYXRvcicsICdJbnNwZWN0b3InLAorICAgICAgICAgICAgJzxAKGdlbmVy
YXRvcl9pbmNsdWRlX2RpcnMpJworICAgICAgICAgIF0sCisgICAgICAgICAgJ21lc3NhZ2UnOiAn
R2VuZXJhdGluZyBJbnNwZWN0b3IgdHJhbnNwb3J0IGNsYXNzIGZyb20gPChSVUxFX0lOUFVUX1BB
VEgpJywKKyAgICAgICAgfSwKICAgICAgIF0sCiAgICAgfSwKICAgICB7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX2Rlcml2ZWRzb3VyY2VzYWxsaW5vbmUu
cHkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX2Rlcml2ZWRzb3VyY2VzYWxs
aW5vbmUucHkKaW5kZXggYzljNWJmNS4uNDcwMDYzYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9kZXJpdmVkc291cmNlc2FsbGlub25lLnB5CisrKyBiL1dl
YkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9hY3Rpb25fZGVyaXZlZHNvdXJjZXNhbGxpbm9uZS5w
eQpAQCAtMTIzLDEyICsxMjMsMTYgQEAgZGVmIGV4dHJhY3RNZXRhRGF0YShmaWxlUGF0aHMpOgog
ICAgICAgICAocGFyZW50UGF0aCwgZmlsZU5hbWUpID0gb3MucGF0aC5zcGxpdChmKQogICAgICAg
ICAoaW50ZXJmYWNlTmFtZSwgZXh0KSA9IG9zLnBhdGguc3BsaXRleHQoZmlsZU5hbWUpCiAKLSAg
ICAgICAgaWYgbm90IGV4dCA9PSAnLmlkbCc6CisgICAgICAgIGlmIGV4dCA9PSAnLmlkbCc6Cisg
ICAgICAgICAgICBmaWxlTmFtZSA9ICdWOCVzJyAlIGludGVyZmFjZU5hbWUKKyAgICAgICAgZWxp
ZiBleHQgPT0gJy5pbnNwZWN0b3InOgorICAgICAgICAgICAgZmlsZU5hbWUgPSAnV2ViJXMnICUg
aW50ZXJmYWNlTmFtZQorICAgICAgICBlbHNlOgogICAgICAgICAgICAgY29udGludWUKIAogICAg
ICAgICBtZXRhRGF0YSA9IHsKICAgICAgICAgICAgICdjb25kaXRpb25hbCc6IGV4dHJhY3RDb25k
aXRpb25hbChmKSwKLSAgICAgICAgICAgICduYW1lJzogaW50ZXJmYWNlTmFtZSwKKyAgICAgICAg
ICAgICduYW1lJzogZmlsZU5hbWUsCiAgICAgICAgIH0KIAogICAgICAgICBtZXRhRGF0YUxpc3Qu
YXBwZW5kKG1ldGFEYXRhKQpAQCAtMTU5LDcgKzE2Myw3IEBAIGRlZiBnZW5lcmF0ZUNvbnRlbnQo
ZmlsZXNNZXRhRGF0YSwgcGFydGl0aW9uLCB0b3RhbFBhcnRpdGlvbnMpOgogICAgICAgICBpZiBj
b25kaXRpb25hbCBhbmQgcHJldkNvbmRpdGlvbmFsICE9IGNvbmRpdGlvbmFsOgogICAgICAgICAg
ICAgb3V0cHV0LmFwcGVuZCgnXG4jaWYgJXNcbicgJSBmb3JtYXRDb25kaXRpb25hbChjb25kaXRp
b25hbCkpCiAKLSAgICAgICAgb3V0cHV0LmFwcGVuZCgnI2luY2x1ZGUgImJpbmRpbmdzL1Y4JXMu
Y3BwIlxuJyAlIG5hbWUpCisgICAgICAgIG91dHB1dC5hcHBlbmQoJyNpbmNsdWRlICJiaW5kaW5n
cy8lcy5jcHAiXG4nICUgbmFtZSkKIAogICAgICAgICBwcmV2Q29uZGl0aW9uYWwgPSBjb25kaXRp
b25hbAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvcnVsZV9iaW5k
aW5nLnB5IGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL3J1bGVfYmluZGluZy5weQppbmRl
eCAyNGQxNzhmLi5jZGQ0MjhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3Njcmlw
dHMvcnVsZV9iaW5kaW5nLnB5CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9ydWxl
X2JpbmRpbmcucHkKQEAgLTgyLDggKzgyLDggQEAgZGVmIG1haW4oYXJncyk6CiAgICAgYXNzZXJ0
IGxlbihzZWN0aW9ucykgPT0gMywgc2VjdGlvbnMKICAgICAoYmFzZSwgaW5wdXRzLCBvcHRpb25z
KSA9IHNlY3Rpb25zCiAKLSAgICBhc3NlcnQgbGVuKGJhc2UpID09IDMsIGJhc2UKLSAgICAoaW5w
dXQsIGNwcGRpciwgaGRpcikgPSBiYXNlCisgICAgYXNzZXJ0IGxlbihiYXNlKSA9PSA0LCBiYXNl
CisgICAgKHByZWZpeCwgaW5wdXQsIGNwcGRpciwgaGRpcikgPSBiYXNlCiAKICAgICBhc3NlcnQg
bGVuKGlucHV0cykgPiAxLCBpbnB1dHMKICAgICBnZW5lcmF0ZUJpbmRpbmdzID0gaW5wdXRzWzBd
CkBAIC0xMjIsNyArMTIyLDcgQEAgZGVmIG1haW4oYXJncyk6CiAgICAgaWYgY3BwZGlyICE9IGhk
aXI6CiAgICAgICAgIGlucHV0QmFzZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKGlucHV0KQogICAg
ICAgICAocm9vdCwgZXh0KSA9IG9zLnBhdGguc3BsaXRleHQoaW5wdXRCYXNlbmFtZSkKLSAgICAg
ICAgaG5hbWUgPSAnVjglcy5oJyAlIHJvb3QKKyAgICAgICAgaG5hbWUgPSAnJXMlcy5oJyAlIChw
cmVmaXgudXBwZXIoKSwgcm9vdCkKICAgICAgICAgaHNyYyA9IG9zLnBhdGguam9pbihjcHBkaXIs
IGhuYW1lKQogICAgICAgICBoZHN0ID0gb3MucGF0aC5qb2luKGhkaXIsIGhuYW1lKQogICAgICAg
ICBzaHV0aWwuY29weWZpbGUoaHNyYywgaGRzdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYmY0MzI1MS4uN2E4NjcxYiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTE5NCw2ICsxOTQsNyBAQAogICAgICAgICAgICAgJ2h0bWwvVm9pZENhbGxiYWNrLmlkbCcs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwnLAogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmlkbCcsCisgICAgICAgICAgICAnaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pbnNwZWN0b3InLAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
SmF2YVNjcmlwdENhbGxGcmFtZS5pZGwnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9TY3JpcHRQ
cm9maWxlLmlkbCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9X
ZWJDb3JlLnByaQppbmRleCBmNGFiYzI3Li5jZTY1ZjZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTYzNSw2ICs2MzUsOCBAQCBJ
RExfQklORElOR1MgKz0gXAogICAgIHhtbC9YUGF0aEV2YWx1YXRvci5pZGwgXAogICAgIHhtbC9Y
U0xUUHJvY2Vzc29yLmlkbAogCitJTlNQRUNUT1JfSU5URVJGQUNFUyA9IGluc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZDIuaW5zcGVjdG9yCisKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9NQVRI
TUw9MSkgewogICAgIG1hdGhtbG5hbWVzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUn0vTWF0aE1MTmFtZXMuY3BwCiAgICAgbWF0aG1sbmFtZXMuaW5wdXQgPSBNQVRITUxfTkFN
RVMKQEAgLTcwMCw2ICs3MDIsMTggQEAgaWRsLmRlcGVuZHMgPSAkJFBXRC9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3IucG0gXAogICAgICAgICAgICAgICAkJFBXRC9iaW5kaW5ncy9zY3Jp
cHRzL0luRmlsZXNQYXJzZXIucG0KIGFkZEV4dHJhQ29tcGlsZXIoaWRsKQogCisjIEdFTkVSQVRP
UiAyOiBJbnNwZWN0b3IgY29tcGlsZXIKK2luc3BlY3Rvci5vdXRwdXQgPSAkJHtXQ19HRU5FUkFU
RURfU09VUkNFU19ESVJ9L1dlYiR7UU1BS0VfRklMRV9CQVNFfS5jcHAKK2luc3BlY3Rvci5pbnB1
dCA9IElOU1BFQ1RPUl9JTlRFUkZBQ0VTCitpbnNwZWN0b3Iud2tTY3JpcHQgPSAkJFBXRC9iaW5k
aW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCitpbnNwZWN0b3IuY29tbWFuZHMgPSBw
ZXJsIC1JJCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAtSSQkUFdEL2luc3BlY3RvciAkJGluc3BlY3Rv
ci53a1NjcmlwdCAtLWRlZmluZXMgXCIkJHtGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVH1cIiAt
LWdlbmVyYXRvciBJbnNwZWN0b3IgLS1vdXRwdXREaXIgJCRXQ19HRU5FUkFURURfU09VUkNFU19E
SVIgLS1wcmVwcm9jZXNzb3IgXCIkJHtRTUFLRV9NT0N9IC1FXCIgJHtRTUFLRV9GSUxFX05BTUV9
CitpbnNwZWN0b3IuZGVwZW5kcyA9ICQkUFdEL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ci5wbSBcCisgICAgICAgICAgICAgICQkUFdEL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVj
dG9yLnBtIFwKKyAgICAgICAgICAgICAgJCRQV0QvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIu
cG0gXAorICAgICAgICAgICAgICAkJFBXRC9iaW5kaW5ncy9zY3JpcHRzL0lETFN0cnVjdHVyZS5w
bSBcCisgICAgICAgICAgICAgICQkUFdEL2JpbmRpbmdzL3NjcmlwdHMvSW5GaWxlc1BhcnNlci5w
bQorYWRkRXh0cmFDb21waWxlcihpbnNwZWN0b3IpCisKICMgR0VORVJBVE9SIDM6IHRva2VuaXpl
ciAoZmxleCkKIHRva2VuaXplci5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9
LyR7UU1BS0VfRklMRV9CQVNFfS5jcHAKIHRva2VuaXplci5pbnB1dCA9IFRPS0VOSVpFUgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMjMwZjczNC4uZDk0MDM1NiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMDA2NSw2ICsyMDA2NSwxNCBA
QAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdl
YktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkluc3Bl
Y3RvckZyb250ZW5kMi5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJ
UmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXFdlYkluc3BlY3RvckZyb250ZW5kMi5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0K
KwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXTUxFbGVtZW50RmFjdG9yeS5jcHAiDQogCQkJCT4N
CiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAzODA3ZmYwLi43NGQ4OTczIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtOTk2LDYgKzk5Niw3IEBACiAJCTRGMTUzNEUwMTFCNTMzMDIwMDIxRkQ4
NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhh
dmlvclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNEYzMjg5QjUxMUE0MkFBQjAwNUFCRTdFIC8qIEluc3BlY3RvclZhbHVlcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjMyODlCMzExQTQy
QUFCMDA1QUJFN0UgLyogSW5zcGVjdG9yVmFsdWVzLmNwcCAqLzsgfTsKIAkJNEYzMjg5QjYxMUE0
MkFBQjAwNUFCRTdFIC8qIEluc3BlY3RvclZhbHVlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYzMjg5QjQxMUE0MkFBQjAwNUFCRTdFIC8qIEluc3Bl
Y3RvclZhbHVlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTRGNzk2MDREMTFDODBEQTIwMEMwQ0MzQyAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZDIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY3OTYw
MzIxMUM4MEM4QTAwQzBDQzNDIC8qIFdlYkluc3BlY3RvckZyb250ZW5kMi5jcHAgKi87IH07CiAJ
CTRGRDhEMEYyMTE5QzcxOEIwMDJGQTgyNSAvKiBTY3JpcHRHQ0V2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGRDhEMEYwMTE5QzcxOEIwMDJG
QTgyNSAvKiBTY3JpcHRHQ0V2ZW50LmNwcCAqLzsgfTsKIAkJNEZEOEQwRjMxMTlDNzE4QjAwMkZB
ODI1IC8qIFNjcmlwdEdDRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRGRDhEMEYxMTE5QzcxOEIwMDJGQTgyNSAvKiBTY3JpcHRHQ0V2ZW50Lmgg
Ki87IH07CiAJCTUxMDE4NDY5MEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAxODQ2NzBCMDg2MDJB
MDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC02NjE1LDYgKzY2MTYsOSBAQAogCQk0RjE1MzRERjExQjUzMzAy
MDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRWRpdGluZ0JlaGF2aW9yVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNEYzMjg5QjMxMUE0MkFBQjAwNUFCRTdFIC8qIEluc3BlY3RvclZhbHVlcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JWYWx1ZXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RjMyODlCNDExQTQyQUFCMDA1QUJFN0Ug
LyogSW5zcGVjdG9yVmFsdWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
c3BlY3RvclZhbHVlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0Rjc5NjAwRjEx
QzdFM0U5MDBDMENDM0MgLyogSW5zcGVjdG9yRnJvbnRlbmQyLmluc3BlY3RvciAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBJbnNwZWN0b3JGcm9udGVuZDIuaW5zcGVjdG9yOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0Rjc5NjAzMjExQzgwQzhBMDBDMENDM0MgLyogV2ViSW5zcGVjdG9y
RnJvbnRlbmQyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYklu
c3BlY3RvckZyb250ZW5kMi5jcHA7IHBhdGggPSAuLi9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL1dlYkluc3BlY3RvckZyb250ZW5kMi5jcHA7IHNvdXJjZVRyZWUgPSBT
T1VSQ0VfUk9PVDsgfTsKKwkJNEY3OTYwMzMxMUM4MEM4QTAwQzBDQzNDIC8qIFdlYkluc3BlY3Rv
ckZyb250ZW5kMi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0
b3JGcm9udGVuZDIuaDsgcGF0aCA9IC4uL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvV2ViSW5zcGVjdG9yRnJvbnRlbmQyLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9P
VDsgfTsKIAkJNEZEOEQwRjAxMTlDNzE4QjAwMkZBODI1IC8qIFNjcmlwdEdDRXZlbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0R0NFdmVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGRDhEMEYxMTE5QzcxOEIwMDJGQTgyNSAvKiBT
Y3JpcHRHQ0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdEdD
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMTg0NjcwQjA4NjAyQTAw
NEE4MjVGIC8qIENhY2hlZFBhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q2FjaGVkUGFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTExNzAsNiArMTEx
NzQsOCBAQAogCQkJCTlGQTM3RUY3MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUu
aCAqLywKIAkJCQk5RkEzN0VGODExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9k
ZS5jcHAgKi8sCiAJCQkJOUZBMzdFRjkxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmls
ZU5vZGUuaCAqLywKKwkJCQk0Rjc5NjAzMjExQzgwQzhBMDBDMENDM0MgLyogV2ViSW5zcGVjdG9y
RnJvbnRlbmQyLmNwcCAqLywKKwkJCQk0Rjc5NjAzMzExQzgwQzhBMDBDMENDM0MgLyogV2ViSW5z
cGVjdG9yRnJvbnRlbmQyLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IEluc3BlY3RvcjsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMTIwMSw2ICsxMTIwNyw3IEBACiAJCQkJNDFGMDYx
NzIwRjVGMDBBQzAwQTA3RUFDIC8qIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oICovLAog
CQkJCTdBRUQzRTAzMEZCQjFFQUEwMEQyQjAzQyAvKiBJbnNwZWN0b3JGcm9udGVuZC5jcHAgKi8s
CiAJCQkJN0FFRDNFMDQwRkJCMUVBQTAwRDJCMDNDIC8qIEluc3BlY3RvckZyb250ZW5kLmggKi8s
CisJCQkJNEY3OTYwMEYxMUM3RTNFOTAwQzBDQzNDIC8qIEluc3BlY3RvckZyb250ZW5kMi5pbnNw
ZWN0b3IgKi8sCiAJCQkJRjM0NEM3MTIxMTI1QjgyQzAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50LmggKi8sCiAJCQkJRjM0NEM3NTcxMTI5NEZGNjAwRjI2RUVFIC8qIEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwICovLAogCQkJCUYzNDRDNzUyMTEyOTREOUQwMEYyNkVF
RSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggKi8sCkBAIC0yMTcyMCw2ICsyMTcy
Nyw3IEBACiAJCQkJQjZCMDU0MDkxMUI2OEYxMDAwMjU2NEM1IC8qIElEQk9iamVjdFN0b3JlSW1w
bC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MTZDODA2ODExQkU4ODdFMDA5QTQ1RTkgLyogSURC
S2V5UmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODE2QzgwQjExMUJFOTkzNDAwOUE0NUU5
IC8qIEpTSURCS2V5UmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNEY3OTYwNEQxMUM4MERB
MjAwQzBDQzNDIC8qIFdlYkluc3BlY3RvckZyb250ZW5kMi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrLmNwcAppbmRleCA4NmRkY2QxLi5jOWJiOGIw
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2suY3BwCkBAIC0xMDAsNyArMTAw
LDcgQEAgdm9pZCBTY3JpcHRDYWxsU3RhY2s6OmluaXRpYWxpemUoKQogICAgIG1faW5pdGlhbGl6
ZWQgPSB0cnVlOwogfQogCi1ib29sIFNjcmlwdENhbGxTdGFjazo6c3RhY2tUcmFjZShpbnQsIFNj
cmlwdFN0YXRlKiwgU2NyaXB0QXJyYXkmKQorYm9vbCBTY3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJh
Y2UoaW50LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JikKIHsKICAgICByZXR1cm4gZmFs
c2U7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5o
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2suaAppbmRleCA2Y2Y3Njc5Li40
OTUwZGFlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5o
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrLmgKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogI2luY2x1ZGUgIlNjcmlwdFN0cmluZy5o
IgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
IAogbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgRXhlY1N0YXRlOwpAQCAtNDMsNiArNDQsOCBA
QCBuYW1lc3BhY2UgSlNDIHsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorICAgIGNs
YXNzIEluc3BlY3RvckFycmF5OwogCiAgICAgY2xhc3MgU2NyaXB0Q2FsbFN0YWNrIDogcHVibGlj
IE5vbmNvcHlhYmxlIHsKICAgICBwdWJsaWM6CkBAIC01NCw3ICs1Nyw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgLy8gZnJhbWUgcmV0cmlldmFsIG1ldGhvZHMKICAgICAgICAgY29u
c3QgU2NyaXB0Q2FsbEZyYW1lICZhdCh1bnNpZ25lZCk7CiAgICAgICAgIHVuc2lnbmVkIHNpemUo
KTsKLSAgICAgICAgc3RhdGljIGJvb2wgc3RhY2tUcmFjZShpbnQsIFNjcmlwdFN0YXRlKiwgU2Ny
aXB0QXJyYXkmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgc3RhY2tUcmFjZShpbnQsIGNvbnN0IFJl
ZlB0cjxJbnNwZWN0b3JBcnJheT4mKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgaW5p
dGlhbGl6ZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3IucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQppbmRl
eCA3YzBmNDI3Li5jNjlkYzFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvci5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvci5wbQpAQCAtODMsNiArODMsNyBAQCBzdWIgbmV3CiAgICAgJHVzZUxheWVyT25Ub3AgPSBz
aGlmdDsKICAgICAkcHJlcHJvY2Vzc29yID0gc2hpZnQ7CiAgICAgJHdyaXRlRGVwZW5kZW5jaWVz
ID0gc2hpZnQ7CisgICAgJHZlcmJvc2UgPSBzaGlmdDsKIAogICAgIGJsZXNzKCRyZWZlcmVuY2Us
ICRvYmplY3QpOwogICAgIHJldHVybiAkcmVmZXJlbmNlOwpAQCAtMTAzLDEwICsxMDQsMTAgQEAg
c3ViIFByb2Nlc3NEb2N1bWVudAogICAgICRkZWZpbmVzID0gc2hpZnQ7CiAKICAgICBteSAkaWZh
Y2VOYW1lID0gIkNvZGVHZW5lcmF0b3IiIC4gJHVzZUdlbmVyYXRvcjsKKyAgICByZXF1aXJlICRp
ZmFjZU5hbWUgLiAiLnBtIjsKIAogICAgICMgRHluYW1pY2FsbHkgbG9hZCBleHRlcm5hbCBjb2Rl
IGdlbmVyYXRpb24gcGVybCBtb2R1bGUKLSAgICByZXF1aXJlICRpZmFjZU5hbWUgLiAiLnBtIjsK
LSAgICAkY29kZUdlbmVyYXRvciA9ICRpZmFjZU5hbWUtPm5ldygkb2JqZWN0LCAkdXNlT3V0cHV0
RGlyLCAkdXNlTGF5ZXJPblRvcCwgJHByZXByb2Nlc3NvciwgJHdyaXRlRGVwZW5kZW5jaWVzKTsK
KyAgICAkY29kZUdlbmVyYXRvciA9ICRpZmFjZU5hbWUtPm5ldygkb2JqZWN0LCAkdXNlT3V0cHV0
RGlyLCAkdXNlTGF5ZXJPblRvcCwgJHByZXByb2Nlc3NvciwgJHdyaXRlRGVwZW5kZW5jaWVzLCAk
dmVyYm9zZSk7CiAgICAgdW5sZXNzIChkZWZpbmVkKCRjb2RlR2VuZXJhdG9yKSkgewogICAgICAg
ICBteSAkY2xhc3NlcyA9ICR1c2VEb2N1bWVudC0+Y2xhc3NlczsKICAgICAgICAgZm9yZWFjaCBt
eSAkY2xhc3MgKEAkY2xhc3NlcykgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0lETFBhcnNlci5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0K
aW5kZXggM2RmOTZhYi4uZTI1MGE0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0lETFBhcnNlci5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2Vy
LnBtCkBAIC0yNTksNyArMjU5LDcgQEAgc3ViIFBhcnNlSW50ZXJmYWNlCiAgICAgICAgIG15IEBp
bnRlcmZhY2VNZXRob2RzID0gc3BsaXQoLzsvLCAkaW50ZXJmYWNlRGF0YSk7CiAKICAgICAgICAg
Zm9yZWFjaCBteSAkbGluZSAoQGludGVyZmFjZU1ldGhvZHMpIHsKLSAgICAgICAgICAgIGlmICgk
bGluZSA9fiAvYXR0cmlidXRlLykgeworICAgICAgICAgICAgaWYgKCRsaW5lID1+IC9cV2F0dHJp
YnV0ZVxXLykgewogICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjppbnRl
cmZhY2VBdHRyaWJ1dGVTZWxlY3Rvci87CiAKICAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRl
VHlwZSA9IChkZWZpbmVkKCQxKSA/ICQxIDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxu
JGxpbmVcbikiKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJh
dGUtYmluZGluZ3MucGwgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGlu
Z3MucGwKaW5kZXggNDRlZDRkMy4uNzIxOTJmZiAxMDA3NTUKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbApAQCAtNDMsMjggKzQzLDMzIEBAIG15ICRnZW5lcmF0
b3I7CiBteSAkZGVmaW5lczsKIG15ICRwcmVwcm9jZXNzb3I7CiBteSAkd3JpdGVEZXBlbmRlbmNp
ZXM7CitteSAkdmVyYm9zZTsKIAogR2V0T3B0aW9ucygnaW5jbHVkZT1zQCcgPT4gXEBpZGxEaXJl
Y3RvcmllcywKICAgICAgICAgICAgJ291dHB1dERpcj1zJyA9PiBcJG91dHB1dERpcmVjdG9yeSwK
ICAgICAgICAgICAgJ2dlbmVyYXRvcj1zJyA9PiBcJGdlbmVyYXRvciwKICAgICAgICAgICAgJ2Rl
ZmluZXM9cycgPT4gXCRkZWZpbmVzLAogICAgICAgICAgICAncHJlcHJvY2Vzc29yPXMnID0+IFwk
cHJlcHJvY2Vzc29yLAorICAgICAgICAgICAndmVyYm9zZScgPT4gXCR2ZXJib3NlLAogICAgICAg
ICAgICAnd3JpdGUtZGVwZW5kZW5jaWVzJyA9PiBcJHdyaXRlRGVwZW5kZW5jaWVzKTsKIAogbXkg
JGlkbEZpbGUgPSAkQVJHVlswXTsKIAogZGllKCdNdXN0IHNwZWNpZnkgaW5wdXQgZmlsZS4nKSB1
bmxlc3MgZGVmaW5lZCgkaWRsRmlsZSk7Ci1kaWUoJ011c3Qgc3BlY2lmeSBJREwgc2VhcmNoIHBh
dGguJykgdW5sZXNzIEBpZGxEaXJlY3RvcmllczsKKyNkaWUoJ011c3Qgc3BlY2lmeSBJREwgc2Vh
cmNoIHBhdGguJykgdW5sZXNzIEBpZGxEaXJlY3RvcmllczsKIGRpZSgnTXVzdCBzcGVjaWZ5IGdl
bmVyYXRvcicpIHVubGVzcyBkZWZpbmVkKCRnZW5lcmF0b3IpOwogZGllKCdNdXN0IHNwZWNpZnkg
b3V0cHV0IGRpcmVjdG9yeS4nKSB1bmxlc3MgZGVmaW5lZCgkb3V0cHV0RGlyZWN0b3J5KTsKIGRp
ZSgnTXVzdCBzcGVjaWZ5IGRlZmluZXMnKSB1bmxlc3MgZGVmaW5lZCgkZGVmaW5lcyk7CiAKK2lm
ICgkdmVyYm9zZSkgeworICAgIHByaW50ICIkZ2VuZXJhdG9yOiAkaWRsRmlsZVxuIjsKK30KICRk
ZWZpbmVzID1+IHMvXlxzK3xccyskLy9nOyAjIHRyaW0gd2hpdGVzcGFjZQogCiAjIFBhcnNlIHRo
ZSBnaXZlbiBJREwgZmlsZS4KLW15ICRwYXJzZXIgPSBJRExQYXJzZXItPm5ldygxKTsKK215ICRw
YXJzZXIgPSBJRExQYXJzZXItPm5ldyghJHZlcmJvc2UpOwogbXkgJGRvY3VtZW50ID0gJHBhcnNl
ci0+UGFyc2UoJGlkbEZpbGUsICRkZWZpbmVzLCAkcHJlcHJvY2Vzc29yKTsKIAogIyBHZW5lcmF0
ZSBkZXNpcmVkIG91dHB1dCBmb3IgZ2l2ZW4gSURMIGZpbGUuCi1teSAkY29kZUdlbiA9IENvZGVH
ZW5lcmF0b3ItPm5ldyhcQGlkbERpcmVjdG9yaWVzLCAkZ2VuZXJhdG9yLCAkb3V0cHV0RGlyZWN0
b3J5LCAwLCAkcHJlcHJvY2Vzc29yLCAkd3JpdGVEZXBlbmRlbmNpZXMpOworbXkgJGNvZGVHZW4g
PSBDb2RlR2VuZXJhdG9yLT5uZXcoXEBpZGxEaXJlY3RvcmllcywgJGdlbmVyYXRvciwgJG91dHB1
dERpcmVjdG9yeSwgMCwgJHByZXByb2Nlc3NvciwgJHdyaXRlRGVwZW5kZW5jaWVzLCAkdmVyYm9z
ZSk7CiAkY29kZUdlbi0+UHJvY2Vzc0RvY3VtZW50KCRkb2N1bWVudCwgJGRlZmluZXMpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2suY3BwIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2suY3BwCmluZGV4IDg5ODA5YjIuLmZjNTQwODYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q2FsbFN0YWNrLmNwcAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFjay5jcHAKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKIAor
I2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIlNjcmlwdFNjb3BlLmgiCiAj
aW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdERlYnVnU2VydmVy
LmgiCkBAIC05MywxMyArOTQsMjUgQEAgY29uc3QgU2NyaXB0Q2FsbEZyYW1lJiBTY3JpcHRDYWxs
U3RhY2s6OmF0KHVuc2lnbmVkIGluZGV4KSBjb25zdAogICAgIHJldHVybiBtX2xhc3RDYWxsZXI7
CiB9CiAKLWJvb2wgU2NyaXB0Q2FsbFN0YWNrOjpzdGFja1RyYWNlKGludCBmcmFtZUxpbWl0LCBT
Y3JpcHRTdGF0ZSogc3RhdGUsIFNjcmlwdEFycmF5JiBzdGFja1RyYWNlKQorYm9vbCBTY3JpcHRD
YWxsU3RhY2s6OnN0YWNrVHJhY2UoaW50IGZyYW1lTGltaXQsIGNvbnN0IFJlZlB0cjxJbnNwZWN0
b3JBcnJheT4mIHN0YWNrVHJhY2UpCiB7Ci0gICAgU2NyaXB0U2NvcGUgc2NvcGUoc3RhdGUpOwor
ICAgIHY4OjpIYW5kbGVTY29wZSBzY29wZTsKKyAgICB2ODo6Q29udGV4dDo6U2NvcGUgY29udGV4
dFNjb3BlKHY4OjpDb250ZXh0OjpHZXRDdXJyZW50KCkpOwogICAgIHY4OjpIYW5kbGU8djg6OlN0
YWNrVHJhY2U+IHRyYWNlKHY4OjpTdGFja1RyYWNlOjpDdXJyZW50U3RhY2tUcmFjZShmcmFtZUxp
bWl0KSk7Ci0gICAgaWYgKHRyYWNlLklzRW1wdHkoKSB8fCAhdHJhY2UtPkdldEZyYW1lQ291bnQo
KSkKKyAgICBpbnQgZnJhbWVDb3VudCA9IHRyYWNlLT5HZXRGcmFtZUNvdW50KCk7CisgICAgaWYg
KHRyYWNlLklzRW1wdHkoKSB8fCAhZnJhbWVDb3VudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIHN0YWNrVHJhY2UgPSBTY3JpcHRBcnJheShzdGF0ZSwgdHJhY2UtPkFzQXJyYXkoKSk7Cisg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmcmFtZUNvdW50OyArK2kpIHsKKyAgICAgICAgdjg6Okhh
bmRsZTx2ODo6U3RhY2tGcmFtZT4gZnJhbWUgPSB0cmFjZS0+R2V0RnJhbWUoaSk7CisgICAgICAg
IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGZyYW1lT2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0Ojpj
cmVhdGUoKTsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpTdHJpbmc+IHNjcmlwdE5hbWUgPSBmcmFt
ZS0+R2V0U2NyaXB0TmFtZSgpOworICAgICAgICBmcmFtZU9iamVjdC0+c2V0U3RyaW5nKCJzY3Jp
cHROYW1lIiwgc2NyaXB0TmFtZS5Jc0VtcHR5KCkgPyAiIiA6IHRvV2ViQ29yZVN0cmluZyhzY3Jp
cHROYW1lKSk7ICAgICAgICAKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpTdHJpbmc+IGZ1bmN0aW9u
TmFtZSA9IGZyYW1lLT5HZXRGdW5jdGlvbk5hbWUoKTsKKyAgICAgICAgZnJhbWVPYmplY3QtPnNl
dFN0cmluZygiZnVuY3Rpb25OYW1lIiwgZnVuY3Rpb25OYW1lLklzRW1wdHkoKSA/ICIiIDogdG9X
ZWJDb3JlU3RyaW5nKGZ1bmN0aW9uTmFtZSkpOyAgICAgICAgCisgICAgICAgIGZyYW1lT2JqZWN0
LT5zZXROdW1iZXIoImxpbmVOdW1iZXIiLCBmcmFtZS0+R2V0TGluZU51bWJlcigpKTsKKyAgICAg
ICAgZnJhbWVPYmplY3QtPnNldE51bWJlcigiY29sdW1uIiwgZnJhbWUtPkdldENvbHVtbigpKTsK
KyAgICAgICAgc3RhY2tUcmFjZS0+cHVzaChmcmFtZU9iamVjdCk7CisgICAgfQogICAgIHJldHVy
biB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxT
dGFjay5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2suaAppbmRleCA4YjAy
ODE0Li45MzQ3OGJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxT
dGFjay5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q2FsbFN0YWNrLmgKQEAgLTM2
LDYgKzM2LDcgQEAKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogI2luY2x1ZGUgIlNjcmlwdFZh
bHVlLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogCiBuYW1lc3BhY2UgdjggewogICAgIGNsYXNzIEFyZ3VtZW50czsKQEAgLTQzLDYgKzQ0
LDggQEAgbmFtZXNwYWNlIHY4IHsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBJbnNw
ZWN0b3JBcnJheTsKKyAgICAKIGNsYXNzIFNjcmlwdENhbGxTdGFjayA6IHB1YmxpYyBOb25jb3B5
YWJsZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFNjcmlwdENhbGxTdGFjayogY3JlYXRlKGNvbnN0
IHY4OjpBcmd1bWVudHMmLCB1bnNpZ25lZCBza2lwQXJndW1lbnRDb3VudCA9IDApOwpAQCAtNTcs
NyArNjAsNyBAQCBwdWJsaWM6CiAgICAgLy8gICBsaW5lTnVtYmVyOiA8MSBiYXNlZCBsaW5lIG51
bWJlcj4KICAgICAvLyAgIGNvbHVtbjogPDEgYmFzZWQgY29sdW1uIG9mZnNldCBvbiB0aGUgbGlu
ZT4KICAgICAvLyB9Ci0gICAgc3RhdGljIGJvb2wgc3RhY2tUcmFjZShpbnQgZnJhbWVMaW1pdCwg
U2NyaXB0U3RhdGUqIHN0YXRlLCBTY3JpcHRBcnJheSYgc3RhY2tUcmFjZSk7CisgICAgc3RhdGlj
IGJvb2wgc3RhY2tUcmFjZShpbnQgZnJhbWVMaW1pdCwgY29uc3QgUmVmUHRyPEluc3BlY3RvckFy
cmF5PiYgc3RhY2tUcmFjZSk7CiAKICAgICBjb25zdCBTY3JpcHRDYWxsRnJhbWUmIGF0KHVuc2ln
bmVkKSBjb25zdDsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50IHJldHJpZXZpbmcgYW5kIHN0b3Jp
bmcgY2FsbCBzdGFjayB0cmFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdl
bmVyYXRvckluc3BlY3Rvci5wbSBiL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNw
ZWN0b3IucG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmRlYjkyNwotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3Iu
cG0KQEAgLTAsMCArMSwzMjggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2IE5pa29sYXMg
WmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgorIyBDb3B5cmlnaHQgKEMpIDIwMDYgQW5k
ZXJzIENhcmxzc29uIDxhbmRlcnNjYUBtYWMuY29tPgorIyBDb3B5cmlnaHQgKEMpIDIwMDYgU2Ft
dWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CisjIENvcHlyaWdodCAoQykgMjAwNiBB
bGV4ZXkgUHJvc2t1cnlha292IDxhcEB3ZWJraXQub3JnPgorIyBDb3B5cmlnaHQgKEMpIDIwMDYg
QXBwbGUgQ29tcHV0ZXIsIEluYy4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5LCAy
MDEwIEdvb2dsZSBJbmMuCisjIENvcHlyaWdodCAoQykgMjAwOSBDYW1lcm9uIE1jQ29ybWFjayA8
Y2FtQG1jYy5pZC5hdT4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNl
IC0gU3VpdGUgMzMwLAorIyBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyMKKworcGFja2Fn
ZSBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yOworCit1c2Ugc3RyaWN0OworCit1c2UgRmlsZTo6c3Rh
dDsKKworbXkgJXR5cGVUcmFuc2Zvcm07CiskdHlwZVRyYW5zZm9ybXsiSW5zcGVjdG9yQ2xpZW50
In0gPSB7CisgICAgImZvcndhcmQiID0+ICJJbnNwZWN0b3JDbGllbnQiLAorICAgICJoZWFkZXIi
ID0+ICJJbnNwZWN0b3JDbGllbnQuaCIsCit9OworJHR5cGVUcmFuc2Zvcm17IlJlZlB0ciJ9ID0g
eworICAgICJmb3J3YXJkSGVhZGVyIiA9PiAid3RmL1JlZlB0ci5oIiwKK307CiskdHlwZVRyYW5z
Zm9ybXsiT2JqZWN0In0gPSB7CisgICAgInBhcmFtIiA9PiAiY29uc3QgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4mIiwKKyAgICAicmV0dXJuIiA9PiAiUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IiwKKyAgICAiZm9yd2FyZCIgPT4gIkluc3BlY3Rvck9iamVjdCIsCisgICAgImhlYWRlciIgPT4g
Ikluc3BlY3RvclZhbHVlcy5oIiwKKyAgICAicHVzaCIgPT4gInB1c2giCit9OworJHR5cGVUcmFu
c2Zvcm17IkFycmF5In0gPSB7CisgICAgInBhcmFtIiA9PiAiY29uc3QgUmVmUHRyPEluc3BlY3Rv
ckFycmF5PiYiLAorICAgICJyZXRWYWwiID0+ICJQYXNzUmVmUHRyPEluc3BlY3RvckFycmF5PiIs
CisgICAgImZvcndhcmQiID0+ICJJbnNwZWN0b3JBcnJheSIsCisgICAgImhlYWRlciIgPT4gIklu
c3BlY3RvclZhbHVlcy5oIiwKKyAgICAicHVzaCIgPT4gInB1c2giCit9OworJHR5cGVUcmFuc2Zv
cm17IlZhbHVlIn0gPSB7CisgICAgInBhcmFtIiA9PiAiY29uc3QgUmVmUHRyPEluc3BlY3RvclZh
bHVlPiYiLAorICAgICJyZXRWYWx1ZSIgPT4gIlBhc3NSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IiwK
KyAgICAiZm9yd2FyZCIgPT4gIkluc3BlY3RvclZhbHVlIiwKKyAgICAiaGVhZGVyIiA9PiAiSW5z
cGVjdG9yVmFsdWVzLmgiLAorICAgICJwdXNoIiA9PiAicHVzaCIKK307CiskdHlwZVRyYW5zZm9y
bXsiU3RyaW5nIn0gPSB7CisgICAgInBhcmFtIiA9PiAiY29uc3QgU3RyaW5nJiIsCisgICAgInJl
dFZhbCIgPT4gIlN0cmluZyIsCisgICAgImZvcndhcmQiID0+ICJTdHJpbmciLAorICAgICJoZWFk
ZXIiID0+ICJQbGF0Zm9ybVN0cmluZy5oIiwKKyAgICAicHVzaCIgPT4gInB1c2hTdHJpbmciCit9
OworJHR5cGVUcmFuc2Zvcm17ImxvbmcifSA9IHsKKyAgICAicGFyYW0iID0+ICJsb25nIiwKKyAg
ICAicmV0VmFsIiA9PiAibG9uZyIsCisgICAgImZvcndhcmQiID0+ICIiLAorICAgICJoZWFkZXIi
ID0+ICIiLAorICAgICJwdXNoIiA9PiAicHVzaE51bWJlciIKK307CiskdHlwZVRyYW5zZm9ybXsi
dW5zaWduZWQgbG9uZyJ9ID0geworICAgICJwYXJhbSIgPT4gInVuc2lnbmVkIGxvbmciLAorICAg
ICJyZXRWYWwiID0+ICJ1bnNpZ25lZCBsb25nIiwKKyAgICAiZm9yd2FyZCIgPT4gIiIsCisgICAg
ImhlYWRlciIgPT4gIiIsCisgICAgInB1c2giID0+ICJwdXNoTnVtYmVyIgorfTsKKyR0eXBlVHJh
bnNmb3JteyJib29sZWFuIn0gPSB7CisgICAgInBhcmFtIiA9PiAiYm9vbCIsCisgICAgInJldFZh
bCI9PiAiYm9vbCIsCisgICAgImZvcndhcmQiID0+ICIiLAorICAgICJoZWFkZXIiID0+ICIiLAor
ICAgICJwdXNoIiA9PiAicHVzaEJvb2wiCit9OworJHR5cGVUcmFuc2Zvcm17InZvaWQifSA9IHsK
KyAgICAicmV0VmFsIiA9PiAidm9pZCIsCisgICAgImZvcndhcmQiID0+ICIiLAorICAgICJoZWFk
ZXIiID0+ICIiCit9OworCisjIERlZmF1bHQgTGljZW5zZSBUZW1wbGF0ZXMKKworbXkgJGxpY2Vu
c2VUZW1wbGF0ZSA9IDw8ICJFT0YiOworLyoKKyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdl
YktpdCBvcGVuIHNvdXJjZSBwcm9qZWN0LgorKiBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVk
IGJ5IGdlbmVyYXRlLWJpbmRpbmdzLnBsLiBETyBOT1QgTU9ESUZZIQorKgorKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorKgorKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisqCisqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorKiBCb3N0b24sIE1BIDAy
MTExLTEzMDcsIFVTQS4KKyovCitFT0YKKworbXkgJGNvZGVHZW5lcmF0b3I7CitteSAkb3V0cHV0
RGlyOworbXkgJHdyaXRlRGVwZW5kZW5jaWVzOworbXkgJHZlcmJvc2U7CisKK215ICRuYW1lc3Bh
Y2U7CitteSAkZmlsZU5hbWU7CitteSAlZGlzY292ZXJlZFR5cGVzOworCitteSBAY2xhc3NEZWZp
bml0aW9uOworbXkgQGZ1bmN0aW9uRGVmaW5pdGlvbnM7CisKK3N1YiB0eXBlU3BlYworeworICAg
IG15ICRwYXJhbSA9IHNoaWZ0OworICAgIG15ICRyZXRWYWx1ZSA9IHNoaWZ0OworCisgICAgbXkg
JHR5cGUgPSAkdHlwZVRyYW5zZm9ybXskcGFyYW0tPnR5cGV9LT57JHJldFZhbHVlID8gInJldFZh
bCIgOiAicGFyYW0ifTsKKyAgICAkZGlzY292ZXJlZFR5cGVzeyRwYXJhbS0+dHlwZX0gPSAxOwor
ICAgICR0eXBlIG9yIGRpZSAiaW52YWxpZCB0eXBlIHNwZWNpZmljYXRpb24gXCIiIC4gJHBhcmFt
LT50eXBlIC4iXCIiOworICAgIHJldHVybiAkdHlwZTsKK30KKworIyBEZWZhdWx0IGNvbnN0cnVj
dG9yCitzdWIgbmV3Cit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRyZWZlcmVu
Y2UgPSB7IH07CisKKyAgICAkY29kZUdlbmVyYXRvciA9IHNoaWZ0OworICAgICRvdXRwdXREaXIg
PSBzaGlmdDsKKyAgICBzaGlmdDsgIyAkdXNlTGF5ZXJPblRvcAorICAgIHNoaWZ0OyAjICRwcmVw
cm9jZXNzb3IKKyAgICAkd3JpdGVEZXBlbmRlbmNpZXMgPSBzaGlmdDsKKyAgICAkdmVyYm9zZSA9
IHNoaWZ0OworCisgICAgYmxlc3MoJHJlZmVyZW5jZSwgJG9iamVjdCk7CisgICAgcmV0dXJuICRy
ZWZlcmVuY2U7Cit9CisKKyMgUGFyYW1zOiAnaWRsRG9jdW1lbnQnIHN0cnVjdAorc3ViIEdlbmVy
YXRlTW9kdWxlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9
IHNoaWZ0OworCisgICAgJG5hbWVzcGFjZSA9ICRkYXRhTm9kZS0+bW9kdWxlOworfQorCisjIFBh
cmFtczogJ2lkbERvY3VtZW50JyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZUludGVyZmFjZQoreworICAg
IG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisgICAgbXkg
JGRlZmluZXMgPSBzaGlmdDsKKworICAgIG15ICRjbGFzc05hbWUgPSAkaW50ZXJmYWNlLT5uYW1l
OworICAgICRmaWxlTmFtZSA9ICRjbGFzc05hbWU7CisKKyAgICAkZGlzY292ZXJlZFR5cGVzeyJJ
bnNwZWN0b3JDbGllbnQifSA9IDE7CisgICAgJGRpc2NvdmVyZWRUeXBlc3siUmVmUHRyIn0gPSAx
OworCisgICAgcHVzaChAY2xhc3NEZWZpbml0aW9uLCAiY2xhc3MgJGNsYXNzTmFtZSB7Iik7Cisg
ICAgcHVzaChAY2xhc3NEZWZpbml0aW9uLCAicHVibGljOiIpOworICAgIHB1c2goQGNsYXNzRGVm
aW5pdGlvbiwgIiAgICAkY2xhc3NOYW1lKEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQ2xpZW50
KSA6IG1faW5zcGVjdG9yQ2xpZW50KGluc3BlY3RvckNsaWVudCkgeyB9Iik7CisgICAgcHVzaChA
Y2xhc3NEZWZpbml0aW9uLCAiIik7CisgICAgcHVzaChAY2xhc3NEZWZpbml0aW9uLCBnZW5lcmF0
ZUZ1bmN0aW9uc0RlY2xhcmF0aW9ucygkaW50ZXJmYWNlLCAkY2xhc3NOYW1lKSk7CisgICAgcHVz
aChAY2xhc3NEZWZpbml0aW9uLCAiIik7CisgICAgcHVzaChAY2xhc3NEZWZpbml0aW9uLCAicHJp
dmF0ZToiKTsKKyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICIgICAgdm9pZCBzZW5kU2ltcGxl
TWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJik7Iik7CisgICAgcHVzaChAY2xhc3NEZWZp
bml0aW9uLCAiICAgIEluc3BlY3RvckNsaWVudCogbV9pbnNwZWN0b3JDbGllbnQ7Iik7CisgICAg
cHVzaChAY2xhc3NEZWZpbml0aW9uLCAifTsiKTsKKworICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5p
dGlvbnMsICJ2b2lkICR7Y2xhc3NOYW1lfTo6c2VuZFNpbXBsZU1lc3NhZ2VUb0Zyb250ZW5kKGNv
bnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lKSIpOworICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5pdGlv
bnMsICJ7Iik7CisgICAgcHVzaChAZnVuY3Rpb25EZWZpbml0aW9ucywgIiAgICBSZWZQdHI8SW5z
cGVjdG9yQXJyYXk+IGFyZ3VtZW50cyA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsiKTsKKyAg
ICBwdXNoKEBmdW5jdGlvbkRlZmluaXRpb25zLCAiICAgIGFyZ3VtZW50cy0+cHVzaFN0cmluZyhm
dW5jdGlvbk5hbWUpOyIpOworICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5pdGlvbnMsICIgICAgbV9p
bnNwZWN0b3JDbGllbnQtPnNlbmRNZXNzYWdlVG9Gcm9udGVuZChhcmd1bWVudHMtPnRvSlNPTlN0
cmluZygpKTsiKTsKKyAgICBwdXNoKEBmdW5jdGlvbkRlZmluaXRpb25zLCAifSIpOworfQorCitz
dWIgZ2VuZXJhdGVGdW5jdGlvbnNEZWNsYXJhdGlvbnMKK3sKKyAgICBteSAkaW50ZXJmYWNlID0g
c2hpZnQ7CisgICAgbXkgJGNsYXNzTmFtZSA9IHNoaWZ0OworCisgICAgbXkgQGZ1bmN0aW9uRGVj
bGFyYXRpb25zOworICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1bmN0
aW9uc30pIHsKKyAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5uYW1lOworICAgICAgICBteSAkYWJzdHJhY3QgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57ImFic3RyYWN0In07CisgICAgICAgIG15ICRhcmd1bWVudHMgPSAi
IjsKKyAgICAgICAgZm9yZWFjaCBteSAkcGFyYW1ldGVyIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVy
c30pIHsKKyAgICAgICAgICAgICRwYXJhbWV0ZXItPm5hbWUgb3IgZGllICJlbXB0eSBhcmd1bWVu
dCBuYW1lIHNwZWNpZmllZCBmb3IgZnVuY3Rpb24gJHtjbGFzc05hbWV9OjokZnVuY3Rpb25OYW1l
IGFuZCBhcmd1bWVudCB0eXBlICIgLiAkcGFyYW1ldGVyLT50eXBlOworICAgICAgICAgICAgJGFy
Z3VtZW50cyA9ICRhcmd1bWVudHMgLiAiLCAiIGlmICgkYXJndW1lbnRzKTsKKyAgICAgICAgICAg
ICRhcmd1bWVudHMgPSAkYXJndW1lbnRzIC4gdHlwZVNwZWMoJHBhcmFtZXRlcikgLiAiICIgLiAk
cGFyYW1ldGVyLT5uYW1lOworICAgICAgICB9CisgICAgICAgIG15ICRzaWduYXR1cmUgPSAiICAg
ICIgLiB0eXBlU3BlYygkZnVuY3Rpb24tPnNpZ25hdHVyZSwgMSkgLiAiICRmdW5jdGlvbk5hbWUo
JGFyZ3VtZW50cykiOworICAgICAgICBwdXNoKEBmdW5jdGlvbkRlY2xhcmF0aW9ucywgJGFic3Ry
YWN0ID8gIiRzaWduYXR1cmUgPSAwOyIgOiAiJHNpZ25hdHVyZTsiKTsKKyAgICAgICAgcHVzaChA
ZnVuY3Rpb25EZWZpbml0aW9ucywgZ2VuZXJhdGVGdW5jdGlvbnNJbXBsKCRjbGFzc05hbWUsICRm
dW5jdGlvbiwgJGFyZ3VtZW50cykpIGlmICEkYWJzdHJhY3Q7CisgICAgfQorICAgIHJldHVybiBA
ZnVuY3Rpb25EZWNsYXJhdGlvbnM7Cit9CisKK3N1YiBnZW5lcmF0ZUhlYWRlcgoreworICAgIG15
IEBoZWFkZXJDb250ZW50ID0gc3BsaXQoIlxyIiwgJGxpY2Vuc2VUZW1wbGF0ZSk7CisgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiNpZm5kZWYgJHtmaWxlTmFtZX1faCIpOworICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIjZGVmaW5lICR7ZmlsZU5hbWV9X2giKTsKKyAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiIik7CisKKyAgICBteSBAZm9yd2FyZEhlYWRlcnM7CisgICAgZm9yZWFjaCBteSAk
dHlwZSAoa2V5cyAlZGlzY292ZXJlZFR5cGVzKSB7CisgICAgICAgIHB1c2goQGZvcndhcmRIZWFk
ZXJzLCAiI2luY2x1ZGUgPCIgLiAkdHlwZVRyYW5zZm9ybXskdHlwZX0tPnsiZm9yd2FyZEhlYWRl
ciJ9IC4gIj4iKSBpZiAhJHR5cGVUcmFuc2Zvcm17JHR5cGV9LT57ImZvcndhcmRIZWFkZXIifSBl
cSAgIiI7CisgICAgfQorICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIHNvcnQgQGZvcndhcmRIZWFk
ZXJzKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiIik7CisgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIm5hbWVzcGFjZSAkbmFtZXNwYWNlIHsiKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiIik7CisKKyAgICBteSBAZm9yd2FyZERlY2xhcmF0aW9uczsKKyAgICBmb3JlYWNoIG15ICR0
eXBlIChrZXlzICVkaXNjb3ZlcmVkVHlwZXMpIHsKKyAgICAgICAgcHVzaChAZm9yd2FyZERlY2xh
cmF0aW9ucywgImNsYXNzICIgLiAkdHlwZVRyYW5zZm9ybXskdHlwZX0tPnsiZm9yd2FyZCJ9IC4g
IjsiKSBpZiAhJHR5cGVUcmFuc2Zvcm17JHR5cGV9LT57ImZvcndhcmQifSBlcSAgIiI7CisgICAg
fQorICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIHNvcnQgQGZvcndhcmREZWNsYXJhdGlvbnMpOwor
CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
IEBjbGFzc0RlZmluaXRpb24pOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIiKTsKKyAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAifSAvLyBuYW1lc3BhY2UgJG5hbWVzcGFjZSIpOworICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIiKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2VuZGlm
IC8vICFkZWZpbmVkKCR7ZmlsZU5hbWV9X2gpIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiIpOworICAgIHJldHVybiBAaGVhZGVyQ29udGVudDsKK30KKworc3ViIGdlbmVyYXRlU291cmNl
Cit7CisgICAgbXkgQHNvdXJjZUNvbnRlbnQgPSBzcGxpdCgiXHIiLCAkbGljZW5zZVRlbXBsYXRl
KTsKKyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiXG4jaW5jbHVkZSBcImNvbmZpZy5oXCIiKTsK
KyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiI2luY2x1ZGUgXCJXZWIkZmlsZU5hbWUuaFwiIik7
CisgICAgcHVzaChAc291cmNlQ29udGVudCwgIiIpOworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQs
ICIjaWYgRU5BQkxFKElOU1BFQ1RPUikiKTsKKyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiIik7
CisKKyAgICBteSAlaGVhZGVyczsKKyAgICBmb3JlYWNoIG15ICR0eXBlIChrZXlzICVkaXNjb3Zl
cmVkVHlwZXMpIHsKKyAgICAgICAgJGhlYWRlcnN7IiNpbmNsdWRlIFwiIiAuICR0eXBlVHJhbnNm
b3JteyR0eXBlfS0+eyJoZWFkZXIifSAuICJcIiJ9ID0gMSBpZiAhJHR5cGVUcmFuc2Zvcm17JHR5
cGV9LT57ImhlYWRlciJ9IGVxICAiIjsKKyAgICB9CisgICAgcHVzaChAc291cmNlQ29udGVudCwg
c29ydCBrZXlzICVoZWFkZXJzKTsKKyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiIik7CisgICAg
cHVzaChAc291cmNlQ29udGVudCwgIm5hbWVzcGFjZSAkbmFtZXNwYWNlIHsiKTsKKyAgICBwdXNo
KEBzb3VyY2VDb250ZW50LCAiIik7CisgICAgcHVzaChAc291cmNlQ29udGVudCwgQGZ1bmN0aW9u
RGVmaW5pdGlvbnMpOworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICIiKTsKKyAgICBwdXNoKEBz
b3VyY2VDb250ZW50LCAifSAvLyBuYW1lc3BhY2UgJG5hbWVzcGFjZSIpOworICAgIHB1c2goQHNv
dXJjZUNvbnRlbnQsICIiKTsKKyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiI2VuZGlmIC8vIEVO
QUJMRShJTlNQRUNUT1IpIik7CisgICAgcHVzaChAc291cmNlQ29udGVudCwgIiIpOworICAgIHJl
dHVybiBAc291cmNlQ29udGVudDsKK30KKworc3ViIGdlbmVyYXRlRnVuY3Rpb25zSW1wbAorewor
ICAgIG15ICRjbGFzc05hbWUgPSBzaGlmdDsKKyAgICBteSAkZnVuY3Rpb24gPSBzaGlmdDsKKyAg
ICBteSAkYXJndW1lbnRzID0gc2hpZnQ7CisKKyAgICBteSBAZnVuYzsKKworICAgIG15ICRmdW5j
dGlvbk5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKKworICAgIHB1c2goQGZ1bmMs
IHR5cGVTcGVjKCRmdW5jdGlvbi0+c2lnbmF0dXJlLCAxKSAuICIgIiAuICRjbGFzc05hbWUgLiAi
OjoiIC4gJGZ1bmN0aW9uTmFtZSAuICIoIiAuICRhcmd1bWVudHMgLiAiKSIpOworICAgIHB1c2go
QGZ1bmMsICJ7Iik7CisKKyAgICBteSAkbnVtUGFyYW1ldGVycyA9IEB7JGZ1bmN0aW9uLT5wYXJh
bWV0ZXJzfTsKKyAgICBpZiAoJG51bVBhcmFtZXRlcnMgPiAwKSB7CisgICAgICAgIHB1c2goQGZ1
bmMsICIgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiBhcmd1bWVudHMgPSBJbnNwZWN0b3JBcnJh
eTo6Y3JlYXRlKCk7Iik7CisgICAgICAgIHB1c2goQGZ1bmMsICIgICAgYXJndW1lbnRzLT5wdXNo
U3RyaW5nKFwiJGZ1bmN0aW9uTmFtZVwiKTsiKTsKKyAgICAgICAgZm9yZWFjaCBteSAkcGFyYW1l
dGVyIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKKyAgICAgICAgICAgIG15ICRwdXNoQ2Fs
bCA9ICAkdHlwZVRyYW5zZm9ybXskcGFyYW1ldGVyLT50eXBlfS0+eyJwdXNoIn07CisgICAgICAg
ICAgICBwdXNoKEBmdW5jLCAiICAgIGFyZ3VtZW50cy0+JHB1c2hDYWxsKCIgLiAkcGFyYW1ldGVy
LT5uYW1lIC4gIik7Iik7CisgICAgICAgIH0KKyAgICAgICAgcHVzaChAZnVuYywgIiAgICBtX2lu
c3BlY3RvckNsaWVudC0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGFyZ3VtZW50cy0+dG9KU09OU3Ry
aW5nKCkpOyIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHB1c2goQGZ1bmMsICIgICAgc2VuZFNp
bXBsZU1lc3NhZ2VUb0Zyb250ZW5kKFwiJGZ1bmN0aW9uTmFtZVwiKTsiKTsKKyAgICB9CisKKyAg
ICBwdXNoKEBmdW5jLCAifSIpOworICAgIHB1c2goQGZ1bmMsICIiKTsKKyAgICByZXR1cm4gQGZ1
bmM7Cit9CisKK3N1YiBmaW5pc2gKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisKKyAgICBv
cGVuKG15ICRTT1VSQ0UsICI+JG91dHB1dERpci9XZWIkZmlsZU5hbWUuY3BwIikgfHwgZGllICJD
b3VsZG4ndCBvcGVuIGZpbGUgJG91dHB1dERpci9XZWIkZmlsZU5hbWUuY3BwIjsKKyAgICBvcGVu
KG15ICRIRUFERVIsICI+JG91dHB1dERpci9XZWIkZmlsZU5hbWUuaCIpIHx8IGRpZSAiQ291bGRu
J3Qgb3BlbiBmaWxlICRvdXRwdXREaXIvV2ViJGZpbGVOYW1lLmgiOworCisgICAgcHJpbnQgJFNP
VVJDRSBqb2luKCJcbiIsIGdlbmVyYXRlU291cmNlKCkpOworICAgIGNsb3NlKCRTT1VSQ0UpOwor
ICAgIHVuZGVmKCRTT1VSQ0UpOworCisgICAgcHJpbnQgJEhFQURFUiBqb2luKCJcbiIsIGdlbmVy
YXRlSGVhZGVyKCkpOworICAgIGNsb3NlKCRIRUFERVIpOworICAgIHVuZGVmKCRIRUFERVIpOwor
fQorCisxOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCAz
MjVlMTJjLi41YzJmZTlmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcApAQCAtODMsNiArODMsNyBAQAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1
ZGUgIlRleHRFbmNvZGluZy5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUg
IldlYkluc3BlY3RvckZyb250ZW5kMi5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQu
aD4KQEAgLTQzNSwxMCArNDM2LDExIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVj
dEZyb250ZW5kKGNvbnN0IFNjcmlwdE9iamVjdCYgd2ViSW5zcGVjdG9yKQogewogICAgIG1fb3Bl
bmluZ0Zyb250ZW5kID0gZmFsc2U7CiAgICAgbV9mcm9udGVuZCA9IG5ldyBJbnNwZWN0b3JGcm9u
dGVuZCh3ZWJJbnNwZWN0b3IsIG1fY2xpZW50KTsKKyAgICBtX2Zyb250ZW5kMiA9IG5ldyBJbnNw
ZWN0b3JGcm9udGVuZDIobV9jbGllbnQpOwogICAgIHJlbGVhc2VET01BZ2VudCgpOwogICAgIG1f
ZG9tQWdlbnQgPSBJbnNwZWN0b3JET01BZ2VudDo6Y3JlYXRlKG1fY3NzU3RvcmUuZ2V0KCksIG1f
ZnJvbnRlbmQuZ2V0KCkpOwogICAgIGlmIChtX3RpbWVsaW5lQWdlbnQpCi0gICAgICAgIG1fdGlt
ZWxpbmVBZ2VudC0+cmVzZXRGcm9udGVuZFByb3h5T2JqZWN0KG1fZnJvbnRlbmQuZ2V0KCkpOwor
ICAgICAgICBtX3RpbWVsaW5lQWdlbnQtPnJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChtX2Zyb250
ZW5kMi5nZXQoKSk7CiAKICAgICAvLyBJbml0aWFsaXplIFdlYiBJbnNwZWN0b3IgdGl0bGUuCiAg
ICAgbV9mcm9udGVuZC0+aW5zcGVjdGVkVVJMQ2hhbmdlZChtX2luc3BlY3RlZFBhZ2UtPm1haW5G
cmFtZSgpLT5sb2FkZXIoKS0+dXJsKCkuc3RyaW5nKCkpOwpAQCAtMTA5MCw3ICsxMDkyLDcgQEAg
dm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzdGFydFRpbWVsaW5lUHJvZmlsZXIoKQogICAgIGlm
IChtX3RpbWVsaW5lQWdlbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fdGltZWxpbmVBZ2Vu
dCA9IG5ldyBJbnNwZWN0b3JUaW1lbGluZUFnZW50KG1fZnJvbnRlbmQuZ2V0KCkpOworICAgIG1f
dGltZWxpbmVBZ2VudCA9IG5ldyBJbnNwZWN0b3JUaW1lbGluZUFnZW50KG1fZnJvbnRlbmQyLmdl
dCgpKTsKICAgICBpZiAobV9mcm9udGVuZCkKICAgICAgICAgbV9mcm9udGVuZC0+dGltZWxpbmVQ
cm9maWxlcldhc1N0YXJ0ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuaAppbmRleCBhZjM2MzgzLi44YWY4NzE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5oCkBAIC02OCw2ICs2OCw3IEBAIGNsYXNzIEluc3BlY3RvckJhY2tlbmQ7CiBj
bGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JDU1NTdG9yZTsKIGNsYXNzIElu
c3BlY3RvckZyb250ZW5kOworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQyOwogY2xhc3MgSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50OwogY2xhc3Mg
S1VSTDsKQEAgLTMzMCw2ICszMzEsNyBAQCBwcml2YXRlOgogICAgIE93blB0cjxJbnNwZWN0b3JG
cm9udGVuZENsaWVudD4gbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudDsKICAgICBib29sIG1fb3Bl
bmluZ0Zyb250ZW5kOwogICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZD4gbV9mcm9udGVuZDsK
KyAgICBPd25QdHI8SW5zcGVjdG9yRnJvbnRlbmQyPiBtX2Zyb250ZW5kMjsKICAgICBSZWZQdHI8
SW5zcGVjdG9yRE9NQWdlbnQ+IG1fZG9tQWdlbnQ7CiAgICAgT3duUHRyPEluc3BlY3RvckNTU1N0
b3JlPiBtX2Nzc1N0b3JlOwogICAgIE93blB0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBtX3Rp
bWVsaW5lQWdlbnQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAKaW5kZXgg
YzlhYTczMC4uOGFkNTZiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNw
cApAQCAtMjkxLDE0ICsyOTEsNiBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kOjp0aW1lbGluZVBy
b2ZpbGVyV2FzU3RvcHBlZCgpCiAgICAgY2FsbFNpbXBsZUZ1bmN0aW9uKCJ0aW1lbGluZVByb2Zp
bGVyV2FzU3RvcHBlZCIpOwogfQogCi12b2lkIEluc3BlY3RvckZyb250ZW5kOjphZGRSZWNvcmRU
b1RpbWVsaW5lKGNvbnN0IFNjcmlwdE9iamVjdCYgcmVjb3JkKQotewotICAgIFNjcmlwdEZ1bmN0
aW9uQ2FsbCBmdW5jdGlvbihtX3dlYkluc3BlY3RvciwgImRpc3BhdGNoIik7IAotICAgIGZ1bmN0
aW9uLmFwcGVuZEFyZ3VtZW50KCJhZGRSZWNvcmRUb1RpbWVsaW5lIik7Ci0gICAgZnVuY3Rpb24u
YXBwZW5kQXJndW1lbnQocmVjb3JkKTsKLSAgICBmdW5jdGlvbi5jYWxsKCk7Ci19Ci0KICNpZiBF
TkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmF0dGFj
aERlYnVnZ2VyV2hlblNob3duKCkKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5o
CmluZGV4IDE3NjIwMTQuLjAwMGM4NjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmQuaApAQCAtMTU3LDcgKzE1Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2
b2lkIHRpbWVsaW5lUHJvZmlsZXJXYXNTdGFydGVkKCk7CiAgICAgICAgIHZvaWQgdGltZWxpbmVQ
cm9maWxlcldhc1N0b3BwZWQoKTsKLSAgICAgICAgdm9pZCBhZGRSZWNvcmRUb1RpbWVsaW5lKGNv
bnN0IFNjcmlwdE9iamVjdCYpOwogCiAjaWYgRU5BQkxFKFdPUktFUlMpCiAgICAgICAgIHZvaWQg
ZGlkQ3JlYXRlV29ya2VyKGNvbnN0IEluc3BlY3RvcldvcmtlclJlc291cmNlJik7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIuaW5zcGVjdG9yIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmluc3BlY3RvcgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNGEyNDY5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmluc3BlY3RvcgpAQCAtMCwwICsxLDEzNCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K21vZHVsZSBXZWJDb3JlIHsKKworICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9SU5TUEVDVE9S
LCBKU10gSW5zcGVjdG9yRnJvbnRlbmQyIHsKKyAgICAgICAgdm9pZCBkaWRDb21taXRMb2FkKCk7
CisKKyAgICAgICAgdm9pZCBwb3B1bGF0ZUZyb250ZW5kU2V0dGluZ3MoaW4gU3RyaW5nIHNldHRp
bmdzKTsKKworICAgICAgICB2b2lkIHVwZGF0ZUNvbnNvbGVNZXNzYWdlRXhwaXJlZENvdW50KGlu
IHVuc2lnbmVkIGxvbmcgY291bnQpOworICAgICAgICB2b2lkIHVwZGF0ZUNvbnNvbGVNZXNzYWdl
UmVwZWF0Q291bnQoaW4gdW5zaWduZWQgbG9uZyBjb3VudCk7CisgICAgICAgIHZvaWQgY2xlYXJD
b25zb2xlTWVzc2FnZXMoKTsKKworICAgICAgICB2b2lkIHVwZGF0ZVJlc291cmNlKGluIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgaW4gT2JqZWN0IHJlc291cmNlT2JqKTsKKyAgICAgICAgdm9p
ZCByZW1vdmVSZXNvdXJjZShpbiB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOworICAgICAgICB2
b2lkIGRpZEdldFJlc291cmNlQ29udGVudChpbiBsb25nIGNhbGxJZCwgaW4gU3RyaW5nIGNvbnRl
bnQpOworCisgICAgICAgIHZvaWQgdXBkYXRlRm9jdXNlZE5vZGUoaW4gbG9uZyBub2RlSWQpOwor
ICAgICAgICB2b2lkIHNldEF0dGFjaGVkV2luZG93KGluIGJvb2xlYW4gYXR0YWNoZWQpOworICAg
ICAgICB2b2lkIHNob3dQYW5lbChpbiBsb25nIHBhbmVsKTsKKyAgICAgICAgdm9pZCBwb3B1bGF0
ZUludGVyZmFjZSgpOworICAgICAgICB2b2lkIHJlc2V0KCk7CisKKyAgICAgICAgdm9pZCBicmlu
Z1RvRnJvbnQoKTsKKyAgICAgICAgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGluIFN0cmluZyB1
cmwpOworCisgICAgICAgIHZvaWQgcmVzb3VyY2VUcmFja2luZ1dhc0VuYWJsZWQoKTsKKyAgICAg
ICAgdm9pZCByZXNvdXJjZVRyYWNraW5nV2FzRGlzYWJsZWQoKTsKKworICAgICAgICB2b2lkIHNl
YXJjaGluZ0Zvck5vZGVXYXNFbmFibGVkKCk7CisgICAgICAgIHZvaWQgc2VhcmNoaW5nRm9yTm9k
ZVdhc0Rpc2FibGVkKCk7CisKKyAgICAgICAgdm9pZCB1cGRhdGVQYXVzZU9uRXhjZXB0aW9uc1N0
YXRlKGluIGxvbmcgc3RhdGUpOworCisjaWYgZGVmaW5lZChKQVZBU0NSSVBUX0RFQlVHR0VSKQor
ICAgICAgICB2b2lkIGF0dGFjaERlYnVnZ2VyV2hlblNob3duKCk7CisgICAgICAgIHZvaWQgZGVi
dWdnZXJXYXNFbmFibGVkKCk7CisgICAgICAgIHZvaWQgZGVidWdnZXJXYXNEaXNhYmxlZCgpOwor
CisgICAgICAgIHZvaWQgcGFyc2VkU2NyaXB0U291cmNlKGluIFN0cmluZyBzb3VyY2VJRCwgaW4g
U3RyaW5nIHVybCwgaW4gU3RyaW5nIGRhdGEsIGluIGxvbmcgZmlyc3RMaW5lLCBpbiBsb25nIHNj
cmlwdFdvcmxkVHlwZSk7CisgICAgICAgIHZvaWQgcmVzdG9yZWRCcmVha3BvaW50KGluIFN0cmlu
ZyBzb3VyY2VJRCwgaW4gU3RyaW5nIHVybCwgaW4gbG9uZyBsaW5lLCBpbiBib29sZWFuIGVuYWJs
ZWQsIGluIFN0cmluZyBjb25kaXRpb24pOworICAgICAgICB2b2lkIGZhaWxlZFRvUGFyc2VTY3Jp
cHRTb3VyY2UoaW4gU3RyaW5nIHVybCwgaW4gU3RyaW5nIGRhdGEsIGluIGxvbmcgZmlyc3RMaW5l
LCBpbiBsb25nIGVycm9yTGluZSwgaW4gU3RyaW5nIGVycm9yTWVzc2FnZSk7CisgICAgICAgIHZv
aWQgcmVzdW1lZFNjcmlwdCgpOworCisgICAgICAgIHZvaWQgcHJvZmlsZXJXYXNFbmFibGVkKCk7
CisgICAgICAgIHZvaWQgcHJvZmlsZXJXYXNEaXNhYmxlZCgpOworICAgICAgICB2b2lkIGFkZFBy
b2ZpbGVIZWFkZXIoaW4gVmFsdWUgcHJvZmlsZSk7CisgICAgICAgIHZvaWQgc2V0UmVjb3JkaW5n
UHJvZmlsZShpbiBib29sZWFuIGlzUHJvZmlsaW5nKTsKKyAgICAgICAgdm9pZCBkaWRHZXRQcm9m
aWxlSGVhZGVycyhpbiBsb25nIGNhbGxJZCwgaW4gQXJyYXkgaGVhZGVycyk7CisgICAgICAgIHZv
aWQgZGlkR2V0UHJvZmlsZShpbiBsb25nIGNhbGxJZCwgaW4gVmFsdWUgcHJvZmlsZSk7CisjZW5k
aWYKKworI2lmICBkZWZpbmVkKEVOQUJMRV9EQVRBQkFTRSkKKyAgICAgICAgdm9pZCBhZGREYXRh
YmFzZShpbiBPYmplY3QgZGJPYmopOworICAgICAgICB2b2lkIHNlbGVjdERhdGFiYXNlKGluIGxv
bmcgZGF0YWJhc2VJZCk7CisgICAgICAgIHZvaWQgZGlkR2V0RGF0YWJhc2VUYWJsZU5hbWVzKGlu
IGxvbmcgY2FsbElkLCBpbiBBcnJheSB0YWJsZU5hbWVzKTsKKyNlbmRpZgorCisjaWYgZGVmaW5l
ZChFTkFCTEVfRE9NX1NUT1JBR0UpCisgICAgICAgIHZvaWQgYWRkRE9NU3RvcmFnZShpbiBPYmpl
Y3QgZG9tU3RvcmFnZU9iaik7CisgICAgICAgIHZvaWQgc2VsZWN0RE9NU3RvcmFnZShpbiBsb25n
IHN0b3JhZ2VJZCk7CisgICAgICAgIHZvaWQgZGlkR2V0RE9NU3RvcmFnZUVudHJpZXMoaW4gbG9u
ZyBjYWxsSWQsIGluIEFycmF5IGVudHJpZXMpOworICAgICAgICB2b2lkIGRpZFNldERPTVN0b3Jh
Z2VJdGVtKGluIGxvbmcgY2FsbElkLCBpbiBib29sZWFuIHN1Y2Nlc3MpOworICAgICAgICB2b2lk
IGRpZFJlbW92ZURPTVN0b3JhZ2VJdGVtKGluIGxvbmcgY2FsbElkLCBpbiBib29sZWFuIHN1Y2Nl
c3MpOworICAgICAgICB2b2lkIHVwZGF0ZURPTVN0b3JhZ2UoaW4gbG9uZyBzdG9yYWdlSWQpOwor
I2VuZGlmCisKKyAgICAgICAgdm9pZCBzZXREb2N1bWVudChpbiBPYmplY3Qgcm9vdCk7CisgICAg
ICAgIHZvaWQgc2V0RGV0YWNoZWRSb290KGluIE9iamVjdCByb290KTsKKyAgICAgICAgdm9pZCBz
ZXRDaGlsZE5vZGVzKGluIGxvbmcgcGFyZW50SWQsIGluIEFycmF5IG5vZGVzKTsKKyAgICAgICAg
dm9pZCBjaGlsZE5vZGVDb3VudFVwZGF0ZWQoaW4gbG9uZyBpZCwgaW4gbG9uZyBuZXdWYWx1ZSk7
CisgICAgICAgIHZvaWQgY2hpbGROb2RlSW5zZXJ0ZWQoaW4gbG9uZyBwYXJlbnRJZCwgaW4gbG9u
ZyBwcmV2SWQsIGluIE9iamVjdCBub2RlKTsKKyAgICAgICAgdm9pZCBjaGlsZE5vZGVSZW1vdmVk
KGluIGxvbmcgcGFyZW50SWQsIGluIGxvbmcgaWQpOworICAgICAgICB2b2lkIGF0dHJpYnV0ZXNV
cGRhdGVkKGluIGxvbmcgaWQsIGluIEFycmF5IGF0dHJpYnV0ZXMpOworICAgICAgICB2b2lkIGRp
ZEdldENoaWxkTm9kZXMoaW4gbG9uZyBjYWxsSWQpOworICAgICAgICB2b2lkIGRpZEFwcGx5RG9t
Q2hhbmdlKGluIGxvbmcgY2FsbElkLCBpbiBib29sZWFuIHN1Y2Nlc3MpOworICAgICAgICB2b2lk
IGRpZEdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBub2Rl
SWQsIGluIEFycmF5IGxpc3RlbmVyc0FycmF5KTsKKyAgICAgICAgdm9pZCBkaWRSZW1vdmVOb2Rl
KGluIGxvbmcgY2FsbElkLCBpbiBsb25nIG5vZGVJZCk7CisgICAgICAgIHZvaWQgZGlkQ2hhbmdl
VGFnTmFtZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBub2RlSWQpOworCisgICAgICAgIHZvaWQg
ZGlkR2V0U3R5bGVzKGluIGxvbmcgY2FsbElkLCBpbiBWYWx1ZSBzdHlsZXMpOworICAgICAgICB2
b2lkIGRpZEdldEFsbFN0eWxlcyhpbiBsb25nIGNhbGxJZCwgaW4gQXJyYXkgc3R5bGVzKTsKKyAg
ICAgICAgdm9pZCBkaWRHZXRJbmxpbmVTdHlsZShpbiBsb25nIGNhbGxJZCwgaW4gVmFsdWUgc3R5
bGUpOworICAgICAgICB2b2lkIGRpZEdldFN0eWxlU2hlZXQoaW4gbG9uZyBjYWxsSWQsIGluIFZh
bHVlIHN0eWxlU2hlZXQpOworICAgICAgICB2b2lkIGRpZEdldENvbXB1dGVkU3R5bGUoaW4gbG9u
ZyBjYWxsSWQsIGluIFZhbHVlIHN0eWxlKTsKKyAgICAgICAgdm9pZCBkaWRBcHBseVN0eWxlVGV4
dChpbiBsb25nIGNhbGxJZCwgaW4gYm9vbGVhbiBzdWNjZXNzLCBpbiBWYWx1ZSBzdHlsZSwgaW4g
QXJyYXkgY2hhbmdlZFByb3BlcnRpZXMpOworICAgICAgICB2b2lkIGRpZFNldFN0eWxlVGV4dChp
biBsb25nIGNhbGxJZCwgaW4gYm9vbGVhbiBzdWNjZXNzKTsKKyAgICAgICAgdm9pZCBkaWRTZXRT
dHlsZVByb3BlcnR5KGluIGxvbmcgY2FsbElkLCBpbiBib29sZWFuIHN1Y2Nlc3MpOworICAgICAg
ICB2b2lkIGRpZFRvZ2dsZVN0eWxlRW5hYmxlZChpbiBsb25nIGNhbGxJZCwgaW4gVmFsdWUgc3R5
bGUpOworICAgICAgICB2b2lkIGRpZFNldFJ1bGVTZWxlY3RvcihpbiBsb25nIGNhbGxJZCwgaW4g
VmFsdWUgcnVsZSwgaW4gYm9vbGVhbiBzZWxlY3RvckFmZmVjdHNOb2RlKTsKKyAgICAgICAgdm9p
ZCBkaWRBZGRSdWxlKGluIGxvbmcgY2FsbElkLCBpbiBWYWx1ZSBydWxlLCBpbiBib29sZWFuIHNl
bGVjdG9yQWZmZWN0c05vZGUpOworCisgICAgICAgIHZvaWQgdGltZWxpbmVQcm9maWxlcldhc1N0
YXJ0ZWQoKTsKKyAgICAgICAgdm9pZCB0aW1lbGluZVByb2ZpbGVyV2FzU3RvcHBlZCgpOworICAg
ICAgICB2b2lkIGFkZFJlY29yZFRvVGltZWxpbmUoaW4gT2JqZWN0IHJlY29yZCk7CisKKyAgICAg
ICAgdm9pZCBkaWRHZXRDb29raWVzKGluIGxvbmcgY2FsbElkLCBpbiBBcnJheSBjb29raWVzLCBp
biBTdHJpbmcgY29va2llc1N0cmluZyk7CisKKyAgICAgICAgdm9pZCBhZGROb2Rlc1RvU2VhcmNo
UmVzdWx0KGluIFN0cmluZyBub2RlSWRzKTsKKworICAgICAgICB2b2lkIGNvbnRleHRNZW51SXRl
bVNlbGVjdGVkKGluIGxvbmcgaXRlbUlkKTsKKyAgICAgICAgdm9pZCBjb250ZXh0TWVudUNsZWFy
ZWQoKTsKKworICAgICAgICB2b2lkIGV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoaW4gbG9uZyBj
YWxsSWQsIGluIFN0cmluZyBzY3JpcHQpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IGFiNTMzMTkuLjY3ZWZiYzggMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC0zNCwxMSAr
MzQsMTEgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCiAjaW5jbHVkZSAiRXZlbnQuaCIKLSNp
bmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNs
dWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAj
aW5jbHVkZSAiVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9y
RnJvbnRlbmQyLmgiCiAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIApAQCAtNDYsNyAr
NDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGludCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpzX2luc3RhbmNlQ291bnQgPSAwOwogCi1JbnNwZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0
b3JUaW1lbGluZUFnZW50KEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKK0luc3BlY3RvclRp
bWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zcGVjdG9yRnJvbnRlbmQyKiBm
cm9udGVuZCkKICAgICA6IG1fZnJvbnRlbmQoZnJvbnRlbmQpCiB7CiAgICAgKytzX2luc3RhbmNl
Q291bnQ7CkBAIC02Miw5ICs2Miw5IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVz
aEdDRXZlbnRSZWNvcmRzKCkKICAgICBHQ0V2ZW50cyBldmVudHMgPSBtX2djRXZlbnRzOwogICAg
IG1fZ2NFdmVudHMuY2xlYXIoKTsKICAgICBmb3IgKEdDRXZlbnRzOjppdGVyYXRvciBpID0gZXZl
bnRzLmJlZ2luKCk7IGkgIT0gZXZlbnRzLmVuZCgpOyArK2kpIHsKLSAgICAgICAgU2NyaXB0T2Jq
ZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZCht
X2Zyb250ZW5kLCBpLT5zdGFydFRpbWUpOwotICAgICAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHQ0V2ZW50RGF0YShtX2Zyb250ZW5kLCBpLT5jb2xs
ZWN0ZWRCeXRlcykpOwotICAgICAgICByZWNvcmQuc2V0KCJlbmRUaW1lIiwgaS0+ZW5kVGltZSk7
CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChpLT5zdGFydFRpbWUpOworICAgICAgICByZWNv
cmQtPnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR0NFdmVudERhdGEo
aS0+Y29sbGVjdGVkQnl0ZXMpKTsKKyAgICAgICAgcmVjb3JkLT5zZXROdW1iZXIoImVuZFRpbWUi
LCBpLT5lbmRUaW1lKTsKICAgICAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIEdDRXZl
bnRUaW1lbGluZVJlY29yZFR5cGUpOwogICAgIH0KIH0KQEAgLTgzLDcgKzgzLDcgQEAgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6fkluc3BlY3RvclRpbWVsaW5lQWdlbnQoKQogCiB2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxDYWxsRnVuY3Rpb24oY29uc3QgU3RyaW5nJiBzY3JpcHRO
YW1lLCBpbnQgc2NyaXB0TGluZSkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJl
Y29yZEZhY3Rvcnk6OmNyZWF0ZUZ1bmN0aW9uQ2FsbERhdGEobV9mcm9udGVuZCwgc2NyaXB0TmFt
ZSwgc2NyaXB0TGluZSksIEZ1bmN0aW9uQ2FsbFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgcHVz
aEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVGdW5jdGlvbkNhbGxE
YXRhKHNjcmlwdE5hbWUsIHNjcmlwdExpbmUpLCBGdW5jdGlvbkNhbGxUaW1lbGluZVJlY29yZFR5
cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENhbGxGdW5jdGlvbigp
CkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ2FsbEZ1
bmN0aW9uKCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRGlzcGF0Y2hFdmVu
dChjb25zdCBFdmVudCYgZXZlbnQpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmVudERpc3BhdGNoRGF0YShtX2Zyb250ZW5kLCBldmVudCks
CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmVu
dERpc3BhdGNoRGF0YShldmVudCksCiAgICAgICAgIEV2ZW50RGlzcGF0Y2hUaW1lbGluZVJlY29y
ZFR5cGUpOwogfQogCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWREaXNwYXRjaEV2ZW50KCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3
aWxsTGF5b3V0KCkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChtX2Zyb250ZW5kLT5uZXdTY3Jp
cHRPYmplY3QoKSwgTGF5b3V0VGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBwdXNoQ3VycmVudFJl
Y29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBMYXlvdXRUaW1lbGluZVJlY29yZFR5cGUp
OwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZExheW91dCgpCkBAIC0xMTQs
NyArMTE0LDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRMYXlvdXQoKQogCiB2
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNhbGN1bGF0ZVN0eWxlKCkKIHsKLSAg
ICBwdXNoQ3VycmVudFJlY29yZChtX2Zyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKSwgUmVjYWxj
dWxhdGVTdHlsZXNUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKElu
c3BlY3Rvck9iamVjdDo6Y3JlYXRlKCksIFJlY2FsY3VsYXRlU3R5bGVzVGltZWxpbmVSZWNvcmRU
eXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZWNhbGN1bGF0ZVN0
eWxlKCkKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRp
ZFJlY2FsY3VsYXRlU3R5bGUoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQ
YWludChjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFpbnREYXRhKG1fZnJvbnRlbmQsIHJlY3QpLCBQYWlu
dFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVQYWludERhdGEocmVjdCksIFBhaW50VGltZWxpbmVSZWNvcmRUeXBl
KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRQYWludCgpCkBAIC0xMzQs
MTQgKzEzNCwxNCBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFBhaW50KCkKIAog
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsV3JpdGVIVE1MKHVuc2lnbmVkIGludCBs
ZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQo
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYXJzZUhUTUxEYXRhKG1fZnJvbnRlbmQsIGxl
bmd0aCwgc3RhcnRMaW5lKSwgUGFyc2VIVE1MVGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBwdXNo
Q3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhcnNlSFRNTERhdGEo
bGVuZ3RoLCBzdGFydExpbmUpLCBQYXJzZUhUTUxUaW1lbGluZVJlY29yZFR5cGUpOwogfQogCiB2
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFdyaXRlSFRNTCh1bnNpZ25lZCBpbnQgZW5k
TGluZSkKIHsKICAgICBpZiAoIW1fcmVjb3JkU3RhY2suaXNFbXB0eSgpKSB7CiAgICAgICAgIFRp
bWVsaW5lUmVjb3JkRW50cnkgZW50cnkgPSBtX3JlY29yZFN0YWNrLmxhc3QoKTsKLSAgICAgICAg
ZW50cnkuZGF0YS5zZXQoImVuZExpbmUiLCBlbmRMaW5lKTsKKyAgICAgICAgZW50cnkuZGF0YS0+
c2V0TnVtYmVyKCJlbmRMaW5lIiwgZW5kTGluZSk7CiAgICAgICAgIGRpZENvbXBsZXRlQ3VycmVu
dFJlY29yZChQYXJzZUhUTUxUaW1lbGluZVJlY29yZFR5cGUpOwogICAgIH0KIH0KQEAgLTE0OSwy
MiArMTQ5LDIyIEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkV3JpdGVIVE1MKHVu
c2lnbmVkIGludCBlbmRMaW5lKQogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRJbnN0
YWxsVGltZXIoaW50IHRpbWVySWQsIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpCiB7CiAg
ICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1
cnJlbnRUaW1lTVMoKSk7Ci0gICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlVGltZXJJbnN0YWxsRGF0YShtX2Zyb250ZW5kLCB0aW1lcklkLCB0aW1lb3V0
LCBzaW5nbGVTaG90KSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKFdURjo6Y3VycmVudFRpbWVN
UygpKTsKKyAgICByZWNvcmQtPnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlVGltZXJJbnN0YWxsRGF0YSh0aW1lcklkLCB0aW1lb3V0LCBzaW5nbGVTaG90KSk7CiAgICAg
YWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIFRpbWVySW5zdGFsbFRpbWVsaW5lUmVjb3JkVHlw
ZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVtb3ZlVGltZXIoaW50
IHRpbWVySWQpCiB7CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0
IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zy
b250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7Ci0gICAgcmVjb3JkLnNldCgiZGF0YSIsIFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1RpbWVyRGF0YShtX2Zyb250ZW5kLCB0
aW1lcklkKSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKFdURjo6Y3VycmVudFRpbWVNUygpKTsK
KyAgICByZWNvcmQtPnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2Vu
ZXJpY1RpbWVyRGF0YSh0aW1lcklkKSk7CiAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQs
IFRpbWVyUmVtb3ZlVGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp3aWxsRmlyZVRpbWVyKGludCB0aW1lcklkKQogewotICAgIHB1c2hDdXJyZW50
UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1RpbWVyRGF0YShtX2Zy
b250ZW5kLCB0aW1lcklkKSwgVGltZXJGaXJlVGltZWxpbmVSZWNvcmRUeXBlKTsgCisgICAgcHVz
aEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJE
YXRhKHRpbWVySWQpLCBUaW1lckZpcmVUaW1lbGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEZpcmVUaW1lcigpCkBAIC0xNzQsNyArMTc0LDcgQEAg
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRGaXJlVGltZXIoKQogCiB2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxDaGFuZ2VYSFJSZWFkeVN0YXRlKGNvbnN0IFN0cmluZyYg
dXJsLCBpbnQgcmVhZHlTdGF0ZSkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJl
Y29yZEZhY3Rvcnk6OmNyZWF0ZVhIUlJlYWR5U3RhdGVDaGFuZ2VEYXRhKG1fZnJvbnRlbmQsIHVy
bCwgcmVhZHlTdGF0ZSksIFhIUlJlYWR5U3RhdGVDaGFuZ2VSZWNvcmRUeXBlKTsKKyAgICBwdXNo
Q3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUlJlYWR5U3RhdGVD
aGFuZ2VEYXRhKHVybCwgcmVhZHlTdGF0ZSksIFhIUlJlYWR5U3RhdGVDaGFuZ2VSZWNvcmRUeXBl
KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDaGFuZ2VYSFJSZWFkeVN0
YXRlKCkKQEAgLTE4NCw3ICsxODQsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRp
ZENoYW5nZVhIUlJlYWR5U3RhdGUoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Ondp
bGxMb2FkWEhSKGNvbnN0IFN0cmluZyYgdXJsKSAKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUkxvYWREYXRhKG1fZnJvbnRlbmQsIHVybCks
IFhIUkxvYWRSZWNvcmRUeXBlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29y
ZEZhY3Rvcnk6OmNyZWF0ZVhIUkxvYWREYXRhKHVybCksIFhIUkxvYWRSZWNvcmRUeXBlKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRMb2FkWEhSKCkKQEAgLTE5NCw3ICsx
OTQsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZExvYWRYSFIoKQogCiB2b2lk
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxFdmFsdWF0ZVNjcmlwdChjb25zdCBTdHJpbmcm
IHVybCwgaW50IGxpbmVOdW1iZXIpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmFsdWF0ZVNjcmlwdERhdGEobV9mcm9udGVuZCwgdXJsLCBs
aW5lTnVtYmVyKSwgRXZhbHVhdGVTY3JpcHRUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHB1c2hD
dXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZhbHVhdGVTY3JpcHRE
YXRhKHVybCwgbGluZU51bWJlciksIEV2YWx1YXRlU2NyaXB0VGltZWxpbmVSZWNvcmRUeXBlKTsK
IH0KICAgICAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRXZhbHVhdGVTY3JpcHQo
KQpAQCAtMjA1LDkgKzIwNSw5IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRXZh
bHVhdGVTY3JpcHQoKQogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRTY2hlZHVsZVJl
c291cmNlUmVxdWVzdChjb25zdCBTdHJpbmcmIHVybCkKIHsKICAgICBwdXNoR0NFdmVudFJlY29y
ZHMoKTsKLSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5Ojpj
cmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKLSAg
ICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVTY2hlZHVs
ZVJlc291cmNlUmVxdWVzdERhdGEobV9mcm9udGVuZCwgdXJsKSk7Ci0gICAgcmVjb3JkLnNldCgi
dHlwZSIsIFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0VGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUdlbmVyaWNSZWNvcmQoV1RGOjpjdXJyZW50VGltZU1TKCkpOworICAgIHJlY29yZC0+c2V0
KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVTY2hlZHVsZVJlc291cmNlUmVx
dWVzdERhdGEodXJsKSk7CisgICAgcmVjb3JkLT5zZXROdW1iZXIoInR5cGUiLCBTY2hlZHVsZVJl
c291cmNlUmVxdWVzdFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAgICAgYWRkUmVjb3JkVG9UaW1lbGlu
ZShyZWNvcmQsIFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0VGltZWxpbmVSZWNvcmRUeXBlKTsKIH0K
IApAQCAtMjE1LDE2ICsyMTUsMTYgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxs
U2VuZFJlc291cmNlUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGIKICAgICBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7
Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
R2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7Ci0gICAgcmVj
b3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VTZW5k
UmVxdWVzdERhdGEobV9mcm9udGVuZCwgaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UsIHJlcXVl
c3QpKTsKLSAgICByZWNvcmQuc2V0KCJ0eXBlIiwgUmVzb3VyY2VTZW5kUmVxdWVzdFRpbWVsaW5l
UmVjb3JkVHlwZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKFdURjo6Y3VycmVudFRpbWVNUygp
KTsKKyAgICByZWNvcmQtPnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
UmVzb3VyY2VTZW5kUmVxdWVzdERhdGEoaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UsIHJlcXVl
c3QpKTsKKyAgICByZWNvcmQtPnNldE51bWJlcigidHlwZSIsIFJlc291cmNlU2VuZFJlcXVlc3RU
aW1lbGluZVJlY29yZFR5cGUpOwogICAgIHNldEhlYXBTaXplU3RhdGlzdGljKHJlY29yZCk7CiAg
ICAgbV9mcm9udGVuZC0+YWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQpOwogfQogCiB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNlaXZlUmVzb3VyY2VEYXRhKHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllcikKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZh
Y3Rvcnk6OmNyZWF0ZVJlY2VpdmVSZXNvdXJjZURhdGEobV9mcm9udGVuZCwgaWRlbnRpZmllciks
IFJlY2VpdmVSZXNvdXJjZURhdGFUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHB1c2hDdXJyZW50
UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVjZWl2ZVJlc291cmNlRGF0YShp
ZGVudGlmaWVyKSwgUmVjZWl2ZVJlc291cmNlRGF0YVRpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVjZWl2ZVJlc291cmNlRGF0YSgpCkBA
IC0yMzQsNyArMjM0LDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZWNlaXZl
UmVzb3VyY2VEYXRhKCkKICAgICAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFJl
Y2VpdmVSZXNvdXJjZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVJlY2VpdmVSZXNwb25zZURhdGEobV9mcm9u
dGVuZCwgaWRlbnRpZmllciwgcmVzcG9uc2UpLCBSZXNvdXJjZVJlY2VpdmVSZXNwb25zZVRpbWVs
aW5lUmVjb3JkVHlwZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVSZXNvdXJjZVJlY2VpdmVSZXNwb25zZURhdGEoaWRlbnRpZmllciwgcmVzcG9u
c2UpLCBSZXNvdXJjZVJlY2VpdmVSZXNwb25zZVRpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoKQpA
QCAtMjQ1LDkgKzI0NSw5IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVjZWl2
ZVJlc291cmNlUmVzcG9uc2UoKQogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRGaW5p
c2hMb2FkaW5nUmVzb3VyY2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBib29sIGRpZEZhaWwp
CiB7CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBX
VEY6OmN1cnJlbnRUaW1lTVMoKSk7Ci0gICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVj
b3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKG1fZnJvbnRlbmQsIGlkZW50aWZp
ZXIsIGRpZEZhaWwpKTsKLSAgICByZWNvcmQuc2V0KCJ0eXBlIiwgUmVzb3VyY2VGaW5pc2hUaW1l
bGluZVJlY29yZFR5cGUpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChXVEY6OmN1cnJlbnRUaW1l
TVMoKSk7CisgICAgcmVjb3JkLT5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZVJlc291cmNlRmluaXNoRGF0YShpZGVudGlmaWVyLCBkaWRGYWlsKSk7CisgICAgcmVjb3Jk
LT5zZXROdW1iZXIoInR5cGUiLCBSZXNvdXJjZUZpbmlzaFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAg
ICAgc2V0SGVhcFNpemVTdGF0aXN0aWMocmVjb3JkKTsKICAgICBtX2Zyb250ZW5kLT5hZGRSZWNv
cmRUb1RpbWVsaW5lKHJlY29yZCk7CiB9CkBAIC0yNTUsMjIgKzI1NSwyMiBAQCB2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZSh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZE1hcmtUaW1lbGlu
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0g
ICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2Vu
ZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7Ci0gICAgcmVjb3Jk
LnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlTWFya1RpbWVsaW5lRGF0
YShtX2Zyb250ZW5kLCBtZXNzYWdlKSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVj
b3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKFdURjo6Y3Vy
cmVudFRpbWVNUygpKTsKKyAgICByZWNvcmQtPnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlTWFya1RpbWVsaW5lRGF0YShtZXNzYWdlKSk7CiAgICAgYWRkUmVjb3JkVG9U
aW1lbGluZShyZWNvcmQsIE1hcmtUaW1lbGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OmRpZE1hcmtET01Db250ZW50RXZlbnQoKQogewogICAgIHB1c2hH
Q0V2ZW50UmVjb3JkcygpOwotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29y
ZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGlt
ZU1TKCkpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVj
b3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CiAg
ICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIE1hcmtET01Db250ZW50RXZlbnRUeXBlKTsK
IH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrTG9hZEV2ZW50KCkKIHsK
ICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKLSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6
Y3VycmVudFRpbWVNUygpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoV1RGOjpjdXJyZW50VGlt
ZU1TKCkpOwogICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBNYXJrTG9hZEV2ZW50VHlw
ZSk7CiB9CiAKQEAgLTI3OSwzMiArMjc5LDMyIEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6cmVzZXQoKQogICAgIG1fcmVjb3JkU3RhY2suY2xlYXIoKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpyZXNldEZyb250ZW5kUHJveHlPYmplY3QoSW5zcGVjdG9yRnJvbnRl
bmQqIGZyb250ZW5kKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpyZXNldEZyb250ZW5k
UHJveHlPYmplY3QoSW5zcGVjdG9yRnJvbnRlbmQyKiBmcm9udGVuZCkKIHsKICAgICBBU1NFUlQo
ZnJvbnRlbmQpOwogICAgIHJlc2V0KCk7CiAgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kOwogfQog
Ci12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFkZFJlY29yZFRvVGltZWxpbmUoU2NyaXB0
T2JqZWN0IHJlY29yZCwgVGltZWxpbmVSZWNvcmRUeXBlIHR5cGUpCit2b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmFkZFJlY29yZFRvVGltZWxpbmUoY29uc3QgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4mIHJlY29yZCwgVGltZWxpbmVSZWNvcmRUeXBlIHR5cGUpCiB7Ci0gICAgcmVjb3JkLnNl
dCgidHlwZSIsIHR5cGUpOworICAgIHJlY29yZC0+c2V0TnVtYmVyKCJ0eXBlIiwgdHlwZSk7CiAg
ICAgc2V0SGVhcFNpemVTdGF0aXN0aWMocmVjb3JkKTsKICAgICBpZiAobV9yZWNvcmRTdGFjay5p
c0VtcHR5KCkpCiAgICAgICAgIG1fZnJvbnRlbmQtPmFkZFJlY29yZFRvVGltZWxpbmUocmVjb3Jk
KTsKICAgICBlbHNlIHsKICAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeSBwYXJlbnQgPSBtX3Jl
Y29yZFN0YWNrLmxhc3QoKTsKLSAgICAgICAgcGFyZW50LmNoaWxkcmVuLnNldChwYXJlbnQuY2hp
bGRyZW4ubGVuZ3RoKCksIHJlY29yZCk7CisgICAgICAgIHBhcmVudC5jaGlsZHJlbi0+cHVzaChy
ZWNvcmQpOwogICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzZXRIZWFw
U2l6ZVN0YXRpc3RpYyhTY3JpcHRPYmplY3QgcmVjb3JkKQordm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpzZXRIZWFwU2l6ZVN0YXRpc3RpYyhjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiYgcmVjb3JkKQogewogICAgIHNpemVfdCB1c2VkSGVhcFNpemUgPSAwOwogICAgIHNpemVfdCB0
b3RhbEhlYXBTaXplID0gMDsKICAgICBTY3JpcHRHQ0V2ZW50OjpnZXRIZWFwU2l6ZSh1c2VkSGVh
cFNpemUsIHRvdGFsSGVhcFNpemUpOwotICAgIHJlY29yZC5zZXQoInVzZWRIZWFwU2l6ZSIsIHVz
ZWRIZWFwU2l6ZSk7Ci0gICAgcmVjb3JkLnNldCgidG90YWxIZWFwU2l6ZSIsIHRvdGFsSGVhcFNp
emUpOworICAgIHJlY29yZC0+c2V0TnVtYmVyKCJ1c2VkSGVhcFNpemUiLCB1c2VkSGVhcFNpemUp
OworICAgIHJlY29yZC0+c2V0TnVtYmVyKCJ0b3RhbEhlYXBTaXplIiwgdG90YWxIZWFwU2l6ZSk7
CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tcGxldGVDdXJyZW50UmVj
b3JkKFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlKQpAQCAtMzE2LDE4ICszMTYsMTggQEAgdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVS
ZWNvcmRUeXBlIHR5cGUpCiAgICAgICAgIFRpbWVsaW5lUmVjb3JkRW50cnkgZW50cnkgPSBtX3Jl
Y29yZFN0YWNrLmxhc3QoKTsKICAgICAgICAgbV9yZWNvcmRTdGFjay5yZW1vdmVMYXN0KCk7CiAg
ICAgICAgIEFTU0VSVChlbnRyeS50eXBlID09IHR5cGUpOwotICAgICAgICBlbnRyeS5yZWNvcmQu
c2V0KCJkYXRhIiwgZW50cnkuZGF0YSk7Ci0gICAgICAgIGVudHJ5LnJlY29yZC5zZXQoImNoaWxk
cmVuIiwgZW50cnkuY2hpbGRyZW4pOwotICAgICAgICBlbnRyeS5yZWNvcmQuc2V0KCJlbmRUaW1l
IiwgV1RGOjpjdXJyZW50VGltZU1TKCkpOworICAgICAgICBlbnRyeS5yZWNvcmQtPnNldCgiZGF0
YSIsIGVudHJ5LmRhdGEpOworICAgICAgICBlbnRyeS5yZWNvcmQtPnNldCgiY2hpbGRyZW4iLCBl
bnRyeS5jaGlsZHJlbik7CisgICAgICAgIGVudHJ5LnJlY29yZC0+c2V0TnVtYmVyKCJlbmRUaW1l
IiwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwogICAgICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKGVu
dHJ5LnJlY29yZCwgdHlwZSk7CiAgICAgfQogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OnB1c2hDdXJyZW50UmVjb3JkKFNjcmlwdE9iamVjdCBkYXRhLCBUaW1lbGluZVJlY29yZFR5
cGUgdHlwZSkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaEN1cnJlbnRSZWNvcmQo
Y29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIGRhdGEsIFRpbWVsaW5lUmVjb3JkVHlwZSB0
eXBlKQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwotICAgIFNjcmlwdE9iamVjdCByZWNv
cmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVu
ZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwotICAgIG1fcmVjb3JkU3RhY2suYXBwZW5kKFRpbWVs
aW5lUmVjb3JkRW50cnkocmVjb3JkLCBkYXRhLCBtX2Zyb250ZW5kLT5uZXdTY3JpcHRBcnJheSgp
LCB0eXBlKSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKFdURjo6Y3VycmVudFRpbWVNUygpKTsK
KyAgICBtX3JlY29yZFN0YWNrLmFwcGVuZChUaW1lbGluZVJlY29yZEVudHJ5KHJlY29yZCwgZGF0
YSwgSW5zcGVjdG9yQXJyYXk6OmNyZWF0ZSgpLCB0eXBlKSk7CiB9CiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRl
eCBmZTMzNGJlLi4xMGU4YTY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5oCkBAIC0zNCwxNiArMzQsMTUgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2NyaXB0R0NFdmVudC5o
IgogI2luY2x1ZGUgIlNjcmlwdEdDRXZlbnRMaXN0ZW5lci5oIgotI2luY2x1ZGUgIlNjcmlwdE9i
amVjdC5oIgotI2luY2x1ZGUgIlNjcmlwdEFycmF5LmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFdmVudDsKLWNsYXNzIEluc3BlY3RvckZy
b250ZW5kOworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQyOwogY2xhc3MgSW50UmVjdDsKIGNsYXNz
IFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CkBAIC03NSwxMSArNzQs
MTEgQEAgZW51bSBUaW1lbGluZVJlY29yZFR5cGUgewogCiBjbGFzcyBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50IDogU2NyaXB0R0NFdmVudExpc3RlbmVyLCBwdWJsaWMgTm9uY29weWFibGUgewogcHVi
bGljOgotICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250
ZW5kKTsKKyAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3BlY3RvckZyb250ZW5kMiogZnJv
bnRlbmQpOwogICAgIH5JbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7CiAKICAgICB2b2lkIHJlc2V0
KCk7Ci0gICAgdm9pZCByZXNldEZyb250ZW5kUHJveHlPYmplY3QoSW5zcGVjdG9yRnJvbnRlbmQq
KTsKKyAgICB2b2lkIHJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChJbnNwZWN0b3JGcm9udGVuZDIq
KTsKIAogICAgIC8vIE1ldGhvZHMgY2FsbGVkIGZyb20gV2ViQ29yZS4KICAgICB2b2lkIHdpbGxD
YWxsRnVuY3Rpb24oY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSk7CkBA
IC0xMzQsMjYgKzEzMywyNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IFRpbWVs
aW5lUmVjb3JkRW50cnkgewotICAgICAgICBUaW1lbGluZVJlY29yZEVudHJ5KFNjcmlwdE9iamVj
dCByZWNvcmQsIFNjcmlwdE9iamVjdCBkYXRhLCBTY3JpcHRBcnJheSBjaGlsZHJlbiwgVGltZWxp
bmVSZWNvcmRUeXBlIHR5cGUpCisgICAgICAgIFRpbWVsaW5lUmVjb3JkRW50cnkoY29uc3QgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4mIHJlY29yZCwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4mIGRhdGEsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIGNoaWxkcmVuLCBUaW1lbGlu
ZVJlY29yZFR5cGUgdHlwZSkKICAgICAgICAgICAgIDogcmVjb3JkKHJlY29yZCksIGRhdGEoZGF0
YSksIGNoaWxkcmVuKGNoaWxkcmVuKSwgdHlwZSh0eXBlKQogICAgICAgICB7CiAgICAgICAgIH0K
LSAgICAgICAgU2NyaXB0T2JqZWN0IHJlY29yZDsKLSAgICAgICAgU2NyaXB0T2JqZWN0IGRhdGE7
Ci0gICAgICAgIFNjcmlwdEFycmF5IGNoaWxkcmVuOworICAgICAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiByZWNvcmQ7CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGE7Cisg
ICAgICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gY2hpbGRyZW47CiAgICAgICAgIFRpbWVsaW5l
UmVjb3JkVHlwZSB0eXBlOwogICAgIH07CiAgICAgICAgIAotICAgIHZvaWQgcHVzaEN1cnJlbnRS
ZWNvcmQoU2NyaXB0T2JqZWN0LCBUaW1lbGluZVJlY29yZFR5cGUpOwotICAgIHZvaWQgc2V0SGVh
cFNpemVTdGF0aXN0aWMoU2NyaXB0T2JqZWN0IHJlY29yZCk7CisgICAgdm9pZCBwdXNoQ3VycmVu
dFJlY29yZChjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYsIFRpbWVsaW5lUmVjb3JkVHlw
ZSk7CisgICAgdm9pZCBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhjb25zdCBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiYgcmVjb3JkKTsKICAgICAgICAgCiAgICAgdm9pZCBkaWRDb21wbGV0ZUN1cnJlbnRS
ZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlKTsKIAotICAgIHZvaWQgYWRkUmVjb3JkVG9UaW1lbGlu
ZShTY3JpcHRPYmplY3QsIFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgdm9pZCBhZGRSZWNvcmRU
b1RpbWVsaW5lKGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiwgVGltZWxpbmVSZWNvcmRU
eXBlKTsKIAogICAgIHZvaWQgcHVzaEdDRXZlbnRSZWNvcmRzKCk7CiAKLSAgICBJbnNwZWN0b3JG
cm9udGVuZCogbV9mcm9udGVuZDsKKyAgICBJbnNwZWN0b3JGcm9udGVuZDIqIG1fZnJvbnRlbmQ7
CiAKICAgICBWZWN0b3I8VGltZWxpbmVSZWNvcmRFbnRyeT4gbV9yZWNvcmRTdGFjazsKICAgICBz
dGF0aWMgaW50IHNfaW5zdGFuY2VDb3VudDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwCmluZGV4IGJkYjVmM2QuLmVkYjUxODEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcApAQCAtMzUsMTUxICszNSwxNTIgQEAKIAog
I2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKKyNpbmNs
dWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1
ZGUgIlNjcmlwdEFycmF5LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCi0jaW5jbHVk
ZSAiU2NyaXB0T2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2NyaXB0T2JqZWN0
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChJbnNwZWN0b3JGcm9u
dGVuZCogZnJvbnRlbmQsIGRvdWJsZSBzdGFydFRpbWUpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoZG91YmxlIHN0YXJ0
VGltZSkKIHsKLSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9i
amVjdCgpOwotICAgIHJlY29yZC5zZXQoInN0YXJ0VGltZSIsIHN0YXJ0VGltZSk7CisgICAgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsK
KyAgICByZWNvcmQtPnNldE51bWJlcigic3RhcnRUaW1lIiwgc3RhcnRUaW1lKTsKIAotICAgIFNj
cmlwdEFycmF5IHN0YWNrVHJhY2U7Ci0gICAgaWYgKFNjcmlwdENhbGxTdGFjazo6c3RhY2tUcmFj
ZSg1LCBmcm9udGVuZC0+c2NyaXB0U3RhdGUoKSwgc3RhY2tUcmFjZSkpCi0gICAgICAgIHJlY29y
ZC5zZXQoInN0YWNrVHJhY2UiLCBzdGFja1RyYWNlKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yQXJy
YXk+IHN0YWNrVHJhY2UgPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7CisgICAgaWYgKFNjcmlw
dENhbGxTdGFjazo6c3RhY2tUcmFjZSg1LCBzdGFja1RyYWNlKSkgeworICAgICAgICByZWNvcmQt
PnNldCgic3RhY2tUcmFjZSIsIHN0YWNrVHJhY2UpOworICAgIH0KICAgICByZXR1cm4gcmVjb3Jk
OwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHQ0V2ZW50
RGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IHNpemVfdCB1c2VkSGVhcFNp
emVEZWx0YSkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlR0NFdmVudERhdGEoY29uc3Qgc2l6ZV90IHVzZWRIZWFwU2l6ZURlbHRhKQogewotICAg
IFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRh
dGEuc2V0KCJ1c2VkSGVhcFNpemVEZWx0YSIsIHVzZWRIZWFwU2l6ZURlbHRhKTsKKyAgICBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAg
ICBkYXRhLT5zZXROdW1iZXIoInVzZWRIZWFwU2l6ZURlbHRhIiwgdXNlZEhlYXBTaXplRGVsdGEp
OwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVGdW5jdGlvbkNhbGxEYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwg
Y29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSkKK1JlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRnVuY3Rpb25DYWxsRGF0YShj
b25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKQogewotICAgIFNjcmlwdE9i
amVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJz
Y3JpcHROYW1lIiwgc2NyaXB0TmFtZSk7Ci0gICAgZGF0YS5zZXQoInNjcmlwdExpbmUiLCBzY3Jp
cHRMaW5lKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXRTdHJpbmcoInNjcmlwdE5hbWUiLCBzY3JpcHRO
YW1lKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoInNjcmlwdExpbmUiLCBzY3JpcHRMaW5lKTsKICAg
ICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlRXZlbnREaXNwYXRjaERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25z
dCBFdmVudCYgZXZlbnQpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZh
Y3Rvcnk6OmNyZWF0ZUV2ZW50RGlzcGF0Y2hEYXRhKGNvbnN0IEV2ZW50JiBldmVudCkKIHsKLSAg
ICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBk
YXRhLnNldCgidHlwZSIsIGV2ZW50LnR5cGUoKS5zdHJpbmcoKSk7CisgICAgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+
c2V0U3RyaW5nKCJ0eXBlIiwgZXZlbnQudHlwZSgpLnN0cmluZygpKTsKICAgICByZXR1cm4gZGF0
YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJp
Y1RpbWVyRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGludCB0aW1lcklkKQorUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmlj
VGltZXJEYXRhKGludCB0aW1lcklkKQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRl
bmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJ0aW1lcklkIiwgdGltZXJJZCk7
CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3Jl
YXRlKCk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJ0aW1lcklkIiwgdGltZXJJZCk7CiAgICAgcmV0
dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZVRpbWVySW5zdGFsbERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBpbnQgdGltZXJJ
ZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlVGltZXJJbnN0YWxsRGF0YShpbnQgdGltZXJJ
ZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0
YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgidGltZXJJZCIs
IHRpbWVySWQpOwotICAgIGRhdGEuc2V0KCJ0aW1lb3V0IiwgdGltZW91dCk7Ci0gICAgZGF0YS5z
ZXQoInNpbmdsZVNob3QiLCBzaW5nbGVTaG90KTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXROdW1iZXIo
InRpbWVySWQiLCB0aW1lcklkKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoInRpbWVvdXQiLCB0aW1l
b3V0KTsKKyAgICBkYXRhLT5zZXRCb29sKCJzaW5nbGVTaG90Iiwgc2luZ2xlU2hvdCk7CiAgICAg
cmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZVhIUlJlYWR5U3RhdGVDaGFuZ2VEYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwg
Y29uc3QgU3RyaW5nJiB1cmwsIGludCByZWFkeVN0YXRlKQorUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJSZWFkeVN0YXRlQ2hhbmdlRGF0YShj
b25zdCBTdHJpbmcmIHVybCwgaW50IHJlYWR5U3RhdGUpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRh
dGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQoInVybCIsIHVy
bCk7Ci0gICAgZGF0YS5zZXQoInJlYWR5U3RhdGUiLCByZWFkeVN0YXRlKTsKKyAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBk
YXRhLT5zZXRTdHJpbmcoInVybCIsIHVybCk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJyZWFkeVN0
YXRlIiwgcmVhZHlTdGF0ZSk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUkxvYWREYXRhKEluc3BlY3RvckZyb250ZW5k
KiBmcm9udGVuZCwgY29uc3QgU3RyaW5nJiB1cmwpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUkxvYWREYXRhKGNvbnN0IFN0cmluZyYgdXJs
KQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgp
OwotICAgIGRhdGEuc2V0KCJ1cmwiLCB1cmwpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldFN0cmluZygi
dXJsIiwgdXJsKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZhbHVhdGVTY3JpcHREYXRhKEluc3BlY3RvckZyb250ZW5k
KiBmcm9udGVuZCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBsaW5lTnVtYmVyKSAKK1JlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZhbHVhdGVT
Y3JpcHREYXRhKGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUgbGluZU51bWJlcikKIHsKLSAgICBT
Y3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRh
LnNldCgidXJsIiwgdXJsKTsKLSAgICBkYXRhLnNldCgibGluZU51bWJlciIsIGxpbmVOdW1iZXIp
OworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpOworICAgIGRhdGEtPnNldFN0cmluZygidXJsIiwgdXJsKTsKKyAgICBkYXRhLT5zZXRO
dW1iZXIoImxpbmVOdW1iZXIiLCBsaW5lTnVtYmVyKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAot
U2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlTWFya1RpbWVsaW5lRGF0
YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgCitS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZU1hcmtU
aW1lbGluZURhdGEoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewotICAgIFNjcmlwdE9iamVjdCBk
YXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJtZXNzYWdl
IiwgbWVzc2FnZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rv
ck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0U3RyaW5nKCJtZXNzYWdlIiwgbWVzc2Fn
ZSk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZh
Y3Rvcnk6OmNyZWF0ZVNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0RGF0YShJbnNwZWN0b3JGcm9udGVu
ZCogZnJvbnRlbmQsIGNvbnN0IFN0cmluZyYgdXJsKQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVTY2hlZHVsZVJlc291cmNlUmVxdWVzdERhdGEo
Y29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+
bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQoInVybCIsIHVybCk7CisgICAgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAg
ZGF0YS0+c2V0U3RyaW5nKCJ1cmwiLCB1cmwpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3Jp
cHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVNlbmRSZXF1ZXN0
RGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgYm9vbCBpc01haW5SZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQor
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNv
dXJjZVNlbmRSZXF1ZXN0RGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGJvb2wgaXNNYWlu
UmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBTY3JpcHRP
YmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgi
aWRlbnRpZmllciIsIGlkZW50aWZpZXIpOwotICAgIGRhdGEuc2V0KCJ1cmwiLCByZXF1ZXN0LnVy
bCgpLnN0cmluZygpKTsKLSAgICBkYXRhLnNldCgicmVxdWVzdE1ldGhvZCIsIHJlcXVlc3QuaHR0
cE1ldGhvZCgpKTsKLSAgICBkYXRhLnNldCgiaXNNYWluUmVzb3VyY2UiLCBpc01haW5SZXNvdXJj
ZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6
Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJpZGVudGlmaWVyIiwgaWRlbnRpZmllcik7
CisgICAgZGF0YS0+c2V0U3RyaW5nKCJ1cmwiLCByZXF1ZXN0LnVybCgpLnN0cmluZygpKTsKKyAg
ICBkYXRhLT5zZXRTdHJpbmcoInJlcXVlc3RNZXRob2QiLCByZXF1ZXN0Lmh0dHBNZXRob2QoKSk7
CisgICAgZGF0YS0+c2V0Qm9vbCgiaXNNYWluUmVzb3VyY2UiLCBpc01haW5SZXNvdXJjZSk7CiAg
ICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZVJlc291cmNlUmVjZWl2ZVJlc3BvbnNlRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJv
bnRlbmQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZVJlc291cmNlUmVjZWl2ZVJlc3BvbnNlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIFNjcmlwdE9iamVj
dCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJpZGVu
dGlmaWVyIiwgaWRlbnRpZmllcik7Ci0gICAgZGF0YS5zZXQoInN0YXR1c0NvZGUiLCByZXNwb25z
ZS5odHRwU3RhdHVzQ29kZSgpKTsKLSAgICBkYXRhLnNldCgibWltZVR5cGUiLCByZXNwb25zZS5t
aW1lVHlwZSgpKTsKLSAgICBkYXRhLnNldCgiZXhwZWN0ZWRDb250ZW50TGVuZ3RoIiwgcmVzcG9u
c2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCkpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldE51bWJlcigi
aWRlbnRpZmllciIsIGlkZW50aWZpZXIpOworICAgIGRhdGEtPnNldE51bWJlcigic3RhdHVzQ29k
ZSIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOworICAgIGRhdGEtPnNldFN0cmluZygibWlt
ZVR5cGUiLCByZXNwb25zZS5taW1lVHlwZSgpKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoImV4cGVj
dGVkQ29udGVudExlbmd0aCIsIHJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKTsKICAg
ICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBib29sIGRpZEZhaWwpCitSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlRmluaXNoRGF0YSh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGJvb2wgZGlkRmFpbCkKIHsKLSAgICBTY3JpcHRPYmplY3Qg
ZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgiaWRlbnRp
ZmllciIsIGlkZW50aWZpZXIpOwotICAgIGRhdGEuc2V0KCJkaWRGYWlsIiwgZGlkRmFpbCk7Cisg
ICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRl
KCk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJpZGVudGlmaWVyIiwgaWRlbnRpZmllcik7CisgICAg
ZGF0YS0+c2V0Qm9vbCgiZGlkRmFpbCIsIGRpZEZhaWwpOwogICAgIHJldHVybiBkYXRhOwogfQog
Ci1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZWNlaXZlUmVzb3Vy
Y2VEYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyKQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVSZWNlaXZlUmVzb3VyY2VEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKIHsKLSAgICBT
Y3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRh
LnNldCgiaWRlbnRpZmllciIsIGlkZW50aWZpZXIpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldE51bWJl
cigiaWRlbnRpZmllciIsIGlkZW50aWZpZXIpOwogICAgIHJldHVybiBkYXRhOwogfQogICAgIAot
U2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFpbnREYXRhKEluc3Bl
Y3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFpbnREYXRhKGNvbnN0
IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3
U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQoIngiLCByZWN0LngoKSk7Ci0gICAgZGF0YS5z
ZXQoInkiLCByZWN0LnkoKSk7Ci0gICAgZGF0YS5zZXQoIndpZHRoIiwgcmVjdC53aWR0aCgpKTsK
LSAgICBkYXRhLnNldCgiaGVpZ2h0IiwgcmVjdC5oZWlnaHQoKSk7CisgICAgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+
c2V0TnVtYmVyKCJ4IiwgcmVjdC54KCkpOworICAgIGRhdGEtPnNldE51bWJlcigieSIsIHJlY3Qu
eSgpKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoIndpZHRoIiwgcmVjdC53aWR0aCgpKTsKKyAgICBk
YXRhLT5zZXROdW1iZXIoImhlaWdodCIsIHJlY3QuaGVpZ2h0KCkpOwogICAgIHJldHVybiBkYXRh
OwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYXJzZUhU
TUxEYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgdW5zaWduZWQgaW50IGxlbmd0aCwg
dW5zaWduZWQgaW50IHN0YXJ0TGluZSkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFyc2VIVE1MRGF0YSh1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1
bnNpZ25lZCBpbnQgc3RhcnRMaW5lKQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRl
bmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJsZW5ndGgiLCBsZW5ndGgpOwot
ICAgIGRhdGEuc2V0KCJzdGFydExpbmUiLCBzdGFydExpbmUpOworICAgIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNl
dE51bWJlcigibGVuZ3RoIiwgbGVuZ3RoKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoInN0YXJ0TGlu
ZSIsIHN0YXJ0TGluZSk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKaW5kZXggZjkwNWVjYy4uNmI1N2E2ZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKQEAgLTM3LDQ3ICszNyw0NyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBFdmVudDsKICAgICBjbGFzcyBJbnNwZWN0
b3JGcm9udGVuZDsKKyAgICBjbGFzcyBJbnNwZWN0b3JPYmplY3Q7CiAgICAgY2xhc3MgSW50UmVj
dDsKICAgICBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXNwb25z
ZTsKLSAgICBjbGFzcyBTY3JpcHRPYmplY3Q7CiAKICAgICBjbGFzcyBUaW1lbGluZVJlY29yZEZh
Y3RvcnkgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVH
ZW5lcmljUmVjb3JkKEluc3BlY3RvckZyb250ZW5kKiwgZG91YmxlIHN0YXJ0VGltZSk7CisgICAg
ICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVHZW5lcmljUmVjb3JkKGRv
dWJsZSBzdGFydFRpbWUpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlR0NF
dmVudERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBzaXplX3QgdXNlZEhl
YXBTaXplRGVsdGEpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3Jl
YXRlR0NFdmVudERhdGEoY29uc3Qgc2l6ZV90IHVzZWRIZWFwU2l6ZURlbHRhKTsKIAotICAgICAg
ICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZUZ1bmN0aW9uQ2FsbERhdGEoSW5zcGVjdG9yRnJv
bnRlbmQqLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKTsKKyAgICAg
ICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUZ1bmN0aW9uQ2FsbERhdGEo
Y29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSk7CiAKLSAgICAgICAgc3Rh
dGljIFNjcmlwdE9iamVjdCBjcmVhdGVFdmVudERpc3BhdGNoRGF0YShJbnNwZWN0b3JGcm9udGVu
ZCosIGNvbnN0IEV2ZW50Jik7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBjcmVhdGVFdmVudERpc3BhdGNoRGF0YShjb25zdCBFdmVudCYpOwogCi0gICAgICAgIHN0YXRp
YyBTY3JpcHRPYmplY3QgY3JlYXRlR2VuZXJpY1RpbWVyRGF0YShJbnNwZWN0b3JGcm9udGVuZCos
IGludCB0aW1lcklkKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNy
ZWF0ZUdlbmVyaWNUaW1lckRhdGEoaW50IHRpbWVySWQpOwogCi0gICAgICAgIHN0YXRpYyBTY3Jp
cHRPYmplY3QgY3JlYXRlVGltZXJJbnN0YWxsRGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGludCB0
aW1lcklkLCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKKyAgICAgICAgc3RhdGljIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVRpbWVySW5zdGFsbERhdGEoaW50IHRpbWVySWQs
IGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRP
YmplY3QgY3JlYXRlWEhSUmVhZHlTdGF0ZUNoYW5nZURhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBj
b25zdCBTdHJpbmcmIHVybCwgaW50IHJlYWR5U3RhdGUpOworICAgICAgICBzdGF0aWMgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gY3JlYXRlWEhSUmVhZHlTdGF0ZUNoYW5nZURhdGEoY29uc3QgU3Ry
aW5nJiB1cmwsIGludCByZWFkeVN0YXRlKTsKIAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0
IGNyZWF0ZVhIUkxvYWREYXRhKEluc3BlY3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJiB1cmwp
OworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlWEhSTG9hZERh
dGEoY29uc3QgU3RyaW5nJiB1cmwpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3Jl
YXRlRXZhbHVhdGVTY3JpcHREYXRhKEluc3BlY3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJiwg
ZG91YmxlIGxpbmVOdW1iZXIpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gY3JlYXRlRXZhbHVhdGVTY3JpcHREYXRhKGNvbnN0IFN0cmluZyYsIGRvdWJsZSBsaW5lTnVt
YmVyKTsKIAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZU1hcmtUaW1lbGluZURh
dGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBTdHJpbmcmKTsKKyAgICAgICAgc3RhdGljIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZU1hcmtUaW1lbGluZURhdGEoY29uc3QgU3RyaW5n
Jik7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVSZXNvdXJjZVNlbmRSZXF1
ZXN0RGF0YShJbnNwZWN0b3JGcm9udGVuZCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwKKyAg
ICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVJlc291cmNlU2VuZFJl
cXVlc3REYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwKICAgICAgICAgICAgIGJvb2wgaXNN
YWluUmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwogCi0gICAgICAgIHN0YXRpYyBT
Y3JpcHRPYmplY3QgY3JlYXRlU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3REYXRhKEluc3BlY3RvckZy
b250ZW5kKiwgY29uc3QgU3RyaW5nJik7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBjcmVhdGVTY2hlZHVsZVJlc291cmNlUmVxdWVzdERhdGEoY29uc3QgU3RyaW5nJik7
CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVSZXNvdXJjZVJlY2VpdmVSZXNw
b25zZURhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IGNyZWF0ZVJlc291cmNlUmVjZWl2ZVJlc3BvbnNlRGF0YSh1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKIAotICAgICAgICBzdGF0aWMgU2Ny
aXB0T2JqZWN0IGNyZWF0ZVJlY2VpdmVSZXNvdXJjZURhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gY3JlYXRlUmVjZWl2ZVJlc291cmNlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlUmVzb3VyY2VGaW5pc2hE
YXRhKEluc3BlY3RvckZyb250ZW5kKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBib29sIGRp
ZEZhaWwpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlUmVz
b3VyY2VGaW5pc2hEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgYm9vbCBkaWRGYWlsKTsK
IAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVBhaW50RGF0YShJbnNwZWN0b3JG
cm9udGVuZCosIGNvbnN0IEludFJlY3QmKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IGNyZWF0ZVBhaW50RGF0YShjb25zdCBJbnRSZWN0Jik7CiAKLSAgICAgICAgc3Rh
dGljIFNjcmlwdE9iamVjdCBjcmVhdGVQYXJzZUhUTUxEYXRhKEluc3BlY3RvckZyb250ZW5kKiwg
dW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSk7CisgICAgICAgIHN0
YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVQYXJzZUhUTUxEYXRhKHVuc2lnbmVk
IGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUpOwogCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgVGltZWxpbmVSZWNvcmRGYWN0b3J5KCkgeyB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDUwNWY1Y2MuLjI1MjFkZTIg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDYtMTYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lz
bG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdlYkluc3BlY3RvcjoganMgZnVuY3Rpb24gbmFtZSB3YXMgZml4ZWQuCisgICAg
ICAgIGRpc3BhdGNoTWVzc2FnZVRvRnJvbnRlbmQgLT4gZGlzcGF0Y2hNZXNzYWdlRnJvbUJhY2tl
bmQuICAgICAgICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MDY3NQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50
R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50OjpzZW5kTWVzc2FnZVRv
RnJvbnRlbmQpOgorCiAyMDEwLTA2LTE1ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4K
IAogICAgICAgICBGaXggY29tcGlsYXRpb24gd2l0aCBvbGRlciBHVEsrLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwIGIvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwCmluZGV4IDRiYzNjMzIu
LjYxNjgzNGIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9y
Q2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNs
aWVudEd0ay5jcHAKQEAgLTEzNCw3ICsxMzQsNyBAQCBib29sIEluc3BlY3RvckNsaWVudDo6c2Vu
ZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBpZiAoIXNjcmlw
dENvbnRyb2xsZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFN0cmluZyBkaXNwYXRj
aFRvRnJvbnRlbmQoIldlYkluc3BlY3Rvci5kaXNwYXRjaE1lc3NhZ2VUb0Zyb250ZW5kKCIpOwor
ICAgIFN0cmluZyBkaXNwYXRjaFRvRnJvbnRlbmQoIldlYkluc3BlY3Rvci5kaXNwYXRjaE1lc3Nh
Z2VGcm9tQmFja2VuZCgiKTsKICAgICBkaXNwYXRjaFRvRnJvbnRlbmQgKz0gbWVzc2FnZTsKICAg
ICBkaXNwYXRjaFRvRnJvbnRlbmQgKz0gIik7IjsKICAgICBzY3JpcHRDb250cm9sbGVyLT5leGVj
dXRlU2NyaXB0KGRpc3BhdGNoVG9Gcm9udGVuZCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hh
bmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBhZTdiNDQ3Li5mMmU2Mzk2IDEwMDY0
NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAxMC0wNi0xNiAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2ViSW5zcGVjdG9yOiBqcyBmdW5jdGlvbiBuYW1lIHdhcyBmaXhlZC4KKyAgICAgICAgZGlz
cGF0Y2hNZXNzYWdlVG9Gcm9udGVuZCAtPiBkaXNwYXRjaE1lc3NhZ2VGcm9tQmFja2VuZC4gCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDY3NQorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50UXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50UXQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZCk6CisKIDIw
MTAtMDYtMTUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBi
dWlsZC4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50UXQuY3Bw
CmluZGV4IGZkZTA1NTYuLjQ1MDMxMWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9JbnNwZWN0b3JDbGllbnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0luc3BlY3RvckNsaWVudFF0LmNwcApAQCAtMTg0LDcgKzE4NCw3IEBAIGJvb2wgSW5zcGVjdG9y
Q2xpZW50UXQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAg
ICAgaWYgKCFzY3JpcHRDb250cm9sbGVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBT
dHJpbmcgZGlzcGF0Y2hUb0Zyb250ZW5kKCJXZWJJbnNwZWN0b3IuZGlzcGF0Y2hNZXNzYWdlVG9G
cm9udGVuZCgiKTsKKyAgICBTdHJpbmcgZGlzcGF0Y2hUb0Zyb250ZW5kKCJXZWJJbnNwZWN0b3Iu
ZGlzcGF0Y2hNZXNzYWdlRnJvbUJhY2tlbmQoIik7CiAgICAgZGlzcGF0Y2hUb0Zyb250ZW5kICs9
IG1lc3NhZ2U7CiAgICAgZGlzcGF0Y2hUb0Zyb250ZW5kICs9ICIpOyI7CiAgICAgc2NyaXB0Q29u
dHJvbGxlci0+ZXhlY3V0ZVNjcmlwdChkaXNwYXRjaFRvRnJvbnRlbmQpOwo=
</data>
<flag name="review"
          id="45542"
          type_id="1"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58978</attachid>
            <date>2010-06-17 04:49:15 -0700</date>
            <delta_ts>2010-06-17 04:57:16 -0700</delta_ts>
            <desc>[patch] second iteration. rebaselined.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>67915</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBhYWZjZGU3Li5hODJjZGZh
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMDYtMTYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE9uIHRoZSB3YXkgdG8gUmVtb3RlIERlYnVnaW5nIHdlIHdhbnQgdG8gc3VwcG9ydCBKU09O
CisgICAgICAgIHNlcmlhbGl6YXRpb24gb24gYm90aCBzaWRlcyBvZiBXZWJJbnNwZWN0b3IgdHJh
bnNwb3J0LiBBcyBmYXIgYXMKKyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmQgY2xhc3MgaXMgYSBz
aW1wbGUgcHJveHkgdG8gV2ViSW5zcGVjdG9yIGl0IHdvdWxkCisgICAgICAgIGJlIGJldHRlciB0
byBnZW5lcmF0ZSBpdCBmcm9tIGFuIElETCBmaWxlLiBXZSBoYXZlIGdlbmVyYXRvcgorICAgICAg
ICBpbmZvc3RydWN0dXJlIGZvciBiaW5kaW5nIGFuZCB3aWxsIHJldXNlIGl0IGZvciBuZXcgZ2Vu
ZXJhdG9yLiBOZXcKKyAgICAgICAga2luZCBvZiBpZGwgZmlsZXMgaXMgaW50cm9kdWNlZDogV2Vi
SW5zcGVjdG9ySW50ZXJmYWNlIHdpdGgKKyAgICAgICAgZXh0ZW5zaW9uICdpbnNwZWN0b3InLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA2NzUKKwor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorCiAyMDEwLTA2LTE3ICBNYXJrIEJyYW5kICA8bWFi
cmFuZEBtYWJyYW5kLm5sPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpk
aWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5hbQppbmRleCBjMmIxYzFj
Li45OGJlZTgwIDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysgYi9HTlVtYWtlZmlsZS5h
bQpAQCAtNTUsNiArNTUsNyBAQCBub2luc3RfSEVBREVSUyA6PQogbm9pbnN0X0xUTElCUkFSSUVT
IDo9CiBsaWJfTElCUkFSSUVTIDo9CiBJRExfQklORElOR1MgOj0KK0lOU1BFQ1RPUl9JTlRFUkZB
Q0VTIDo9CiBURVNUX1BST0dTIDo9CiBQT0ZJTEVTIDo9CiBNT0ZJTEVTIDo9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5
ZjI3ZjUyLi5lM2JmMzdjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI4Nyw2ICsyODcsNyBAQCBTRVQoV2ViQ29yZV9J
RExfRklMRVMKIAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaWRsCiAgICAgaW5z
cGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaWRsCisgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kMi5pbnNwZWN0b3IKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAog
ICAgIGluc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmlkbAogICAgIGluc3BlY3Rvci9TY3Jp
cHRQcm9maWxlLmlkbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MzcyNTQ5Li4xNTFhNmVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEwLTA2LTE2
ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBPbiB0aGUg
d2F5IHRvIFJlbW90ZSBEZWJ1Z2luZyB3ZSB3YW50IHRvIHN1cHBvcnQgSlNPTgorICAgICAgICBz
ZXJpYWxpemF0aW9uIG9uIGJvdGggc2lkZXMgb2YgV2ViSW5zcGVjdG9yIHRyYW5zcG9ydC4gQXMg
ZmFyIGFzCisgICAgICAgIEluc3BlY3RvckZyb250ZW5kIGNsYXNzIGlzIGEgc2ltcGxlIHByb3h5
IHRvIFdlYkluc3BlY3RvciBpdCB3b3VsZAorICAgICAgICBiZSBiZXR0ZXIgdG8gZ2VuZXJhdGUg
aXQgZnJvbSBhbiBJREwgZmlsZS4gV2UgaGF2ZSBnZW5lcmF0b3IKKyAgICAgICAgaW5mb3N0cnVj
dHVyZSBmb3IgYmluZGluZyBhbmQgd2lsbCByZXVzZSBpdCBmb3IgbmV3IGdlbmVyYXRvci4gTmV3
CisgICAgICAgIGtpbmQgb2YgaWRsIGZpbGVzIGlzIGludHJvZHVjZWQ6IFdlYkluc3BlY3Rvcklu
dGVyZmFjZSB3aXRoCisgICAgICAgIGV4dGVuc2lvbiAnaW5zcGVjdG9yJy4gVGhlIGZpcnN0IHJl
YWwgdXNlciBvZiB0aGF0IGlzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDY3NQorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBH
TlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cC9XZWJDb3JlLmd5cDoKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9kZXJpdmVkc291cmNlc2FsbGlub25lLnB5
OgorICAgICAgICAqIFdlYkNvcmUuZ3lwL3NjcmlwdHMvcnVsZV9iaW5kaW5nLnB5OgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGw6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6
Y29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6
OnN0YXJ0VGltZWxpbmVQcm9maWxlcik6CisgICAgICAgICogaW5zcGVjdG9yL0NvZGVHZW5lcmF0
b3IucG06IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmQyLmluc3BlY3RvcjogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoR0NFdmVudFJlY29yZHMpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENhbGxGdW5jdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRGlzcGF0Y2hFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsTGF5b3V0KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNhbGN1bGF0ZVN0eWxl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQYWludCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsV3JpdGVIVE1M
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFdyaXRlSFRN
TCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRJbnN0YWxs
VGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVt
b3ZlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2ls
bEZpcmVUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3
aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp3aWxsTG9hZFhIUik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp3aWxsRXZhbHVhdGVTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6ZGlkU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFNlbmRSZXNvdXJjZVJlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFJlY2VpdmVS
ZXNvdXJjZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrVGltZWxpbmUpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTWFya0RPTUNvbnRlbnRFdmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrTG9hZEV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnJlc2V0RnJv
bnRlbmRQcm94eU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29yZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ3VycmVudFJlY29yZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OlRpbWVsaW5lUmVjb3JkRW50cnk6OlRpbWVs
aW5lUmVjb3JkRW50cnkpOgorICAgICAgICAqIGluc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3Rv
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVH
ZW5lcmljUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlR0NFdmVudERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVGdW5jdGlvbkNhbGxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZlbnREaXNwYXRjaERhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlVGltZXJJbnN0YWxsRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUlJl
YWR5U3RhdGVDaGFuZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlWEhSTG9hZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVFdmFsdWF0ZVNjcmlwdERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVNYXJrVGltZWxpbmVEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlU2NoZWR1bGVSZXNvdXJjZVJl
cXVlc3REYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlUmVzb3VyY2VTZW5kUmVxdWVzdERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVJlY2VpdmVSZXNwb25zZURhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZUZpbmlzaERh
dGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZWNl
aXZlUmVzb3VyY2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlUGFpbnREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlUGFyc2VIVE1MRGF0YSk6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5l
UmVjb3JkRmFjdG9yeS5oOgorCiAyMDEwLTA2LTE3ICBNYXJrIEJyYW5kICA8bWFicmFuZEBtYWJy
YW5kLm5sPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCmluZGV4IDdlYzkxNWYuLjIyYmExMmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQ2Miw5ICs0
NjIsMTEgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgWFNMVFByb2Nlc3NvciBcCiAjCiAKK0lOU1BF
Q1RPUl9DTEFTU0VTID0gSW5zcGVjdG9yRnJvbnRlbmQyCisKIC5QSE9OWSA6IGFsbAogCi1KU19E
T01fSEVBREVSUz0kKGZpbHRlci1vdXQgSlNFdmVudExpc3RlbmVyLmggSlNFdmVudFRhcmdldC5o
LCQoRE9NX0NMQVNTRVM6JT1KUyUuaCkpCitKU19ET01fSEVBREVSUz0kKGZpbHRlci1vdXQgSlNF
dmVudExpc3RlbmVyLmggSlNFdmVudFRhcmdldC5oLCQoRE9NX0NMQVNTRVM6JT1KUyUuaCkgJChJ
TlNQRUNUT1JfQ0xBU1NFUzolPVdlYiUuaCkpCiAKIGFsbCA6IFwKICAgICAkKEpTX0RPTV9IRUFE
RVJTKSBcCkBAIC04MTIsMjAgKzgxNCwzMiBAQCBlbmRpZgogCiAjIC0tLS0tLS0tCiAKLSMgSmF2
YVNjcmlwdCBiaW5kaW5ncwotCi1HRU5FUkFURV9CSU5ESU5HUyA9IHBlcmwgLUkgJChXZWJDb3Jl
KS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1i
aW5kaW5ncy5wbCBcCi0gICAgLS1pbmNsdWRlIGRvbSAtLWluY2x1ZGUgaHRtbCAtLWluY2x1ZGUg
Y3NzIC0taW5jbHVkZSBwYWdlIC0taW5jbHVkZSBub3RpZmljYXRpb25zIC0taW5jbHVkZSB4bWwg
LS1pbmNsdWRlIHN2ZyAtLXdyaXRlLWRlcGVuZGVuY2llcyAtLW91dHB1dERpciAuCisjIENvbW1v
biBnZW5lcmF0b3IgdGhpbmdzCiAKLUdFTkVSQVRFX0JJTkRJTkdTX1NDUklQVFMgPSBcCitHRU5F
UkFURV9TQ1JJUFRTID0gXAogICAgIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbSBc
CiAgICAgYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0gXAogICAgIGJpbmRpbmdzL3Njcmlw
dHMvSURMU3RydWN0dXJlLnBtIFwKLSAgICBiaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRp
bmdzLnBsIFwKLSMKKyAgICBiaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCisK
K2dlbmVyYXRvcl9zY3JpcHQgPSBwZXJsICQoYWRkcHJlZml4IC1JICQoV2ViQ29yZSkvLCAkKHNv
cnQgJChkaXIgJCgxKSkpKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmlu
ZGluZ3MucGwKKworIyBKUyBiaW5kaW5ncyBnZW5lcmF0b3IKKworSURMX0lOQ0xVREVTID0gZG9t
IGh0bWwgY3NzIHBhZ2Ugbm90aWZpY2F0aW9ucyB4bWwgc3ZnCitJRExfQ09NTU9OX0FSR1MgPSAk
KElETF9JTkNMVURFUzolPS0taW5jbHVkZSAlKSAtLXdyaXRlLWRlcGVuZGVuY2llcyAtLW91dHB1
dERpciAuCisKK0pTX0JJTkRJTkdTX1NDUklQVFMgPSAkKEdFTkVSQVRFX1NDUklQVFMpIGJpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisKK0pTJS5oIDogJS5pZGwgJChKU19CSU5E
SU5HU19TQ1JJUFRTKQorCSQoY2FsbCBnZW5lcmF0b3Jfc2NyaXB0LCAkKEpTX0JJTkRJTkdTX1ND
UklQVFMpKSAkKElETF9DT01NT05fQVJHUykgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykg
JChBRERJVElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRv
ciBKUyAkPAorCisjIEluc3BlY3RvciBpbnRlcmZhY2VzIGdlbmVyYXRvcgorCitJTlNQRUNUT1Jf
R0VORVJBVE9SX1NDUklQVFMgPSAkKEdFTkVSQVRFX1NDUklQVFMpIGluc3BlY3Rvci9Db2RlR2Vu
ZXJhdG9ySW5zcGVjdG9yLnBtCiAKLUpTJS5oIDogJS5pZGwgJChHRU5FUkFURV9CSU5ESU5HU19T
Q1JJUFRTKSBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQotCSQoR0VORVJBVEVf
QklORElOR1MpIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMpICQoQURESVRJT05BTF9JRExf
REVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1nZW5lcmF0b3IgSlMgJDwKK1dlYiUuaCA6
ICUuaW5zcGVjdG9yICQoSU5TUEVDVE9SX0dFTkVSQVRPUl9TQ1JJUFRTKQorCSQoY2FsbCBnZW5l
cmF0b3Jfc2NyaXB0LCAkKElOU1BFQ1RPUl9HRU5FUkFUT1JfU0NSSVBUUykpIC0tb3V0cHV0RGly
IC4gIC0tZGVmaW5lcyAiTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1nZW5lcmF0b3IgSW5zcGVjdG9y
ICQ8CiAKIC1pbmNsdWRlICQoSlNfRE9NX0hFQURFUlM6Lmg9LmRlcCkKIApAQCAtOTI2LDggKzk0
MCw5IEBAIFdlYkNvcmUuTFA2NC5leHAgOiBXZWJDb3JlLmV4cAogCiAjIE9iamVjdGl2ZS1DIGJp
bmRpbmdzCiAKLURPTSUuaCA6ICUuaWRsICQoR0VORVJBVEVfQklORElOR1NfU0NSSVBUUykgYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbSBiaW5kaW5ncy9vYmpjL1B1YmxpY0RP
TUludGVyZmFjZXMuaAotCSQoR0VORVJBVEVfQklORElOR1MpIC0tZGVmaW5lcyAiJChGRUFUVVJF
X0RFRklORVMpICQoQURESVRJT05BTF9JRExfREVGSU5FUykgTEFOR1VBR0VfT0JKRUNUSVZFX0Mi
IC0tZ2VuZXJhdG9yIE9iakMgJDwKK0RPTV9CSU5ESU5HU19TQ1JJUFRTID0gJChHRU5FUkFURV9C
SU5ESU5HX1NDUklQVFMpIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KK0RP
TSUuaCA6ICUuaWRsICQoRE9NX0JJTkRJTkdTX1NDUklQVFMpIGJpbmRpbmdzL29iamMvUHVibGlj
RE9NSW50ZXJmYWNlcy5oCisJJChjYWxsIGdlbmVyYXRvcl9zY3JpcHQsICQoRE9NX0JJTkRJTkdT
X1NDUklQVFMpKSAkKElETF9DT01NT05fQVJHUykgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5F
UykgJChBRERJVElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFHRV9PQkpFQ1RJVkVfQyIgLS1nZW5l
cmF0b3IgT2JqQyAkPAogCiAtaW5jbHVkZSAkKE9CSkNfRE9NX0hFQURFUlM6Lmg9LmRlcCkKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0KaW5kZXggNDlhMWM4Yi4uYjk4YzNmYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0zMjEsNiArMzIxLDggQEAgSURM
X0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3htbC9YTUxTZXJpYWxpemVyLmlkbCBcCiAJV2ViQ29y
ZS94bWwvWFNMVFByb2Nlc3Nvci5pZGwKIAorSU5TUEVDVE9SX0lOVEVSRkFDRVMgKz0gV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmluc3BlY3RvcgorCiB3ZWJjb3JlZ3RrX2Rv
bV9zb3VyY2VzID0gXAogCVdlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9Db252ZXJ0VG9VVEY4U3Ry
aW5nLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0NvbnZlcnRUb1VURjhTdHJpbmcu
aCBcCkBAIC0zODkwLDEzICszODkyLDE5IEBAIElETF9QQVRIIDo9IFwKICAgICAkKFdlYkNvcmUp
L3dvcmtlcnMKIAogdnBhdGggJS5pZGwgPSAkKElETF9QQVRIKQordnBhdGggJS5pbnNwZWN0b3Ig
PSAkKFdlYkNvcmUpL2luc3BlY3RvcgogCiBEZXJpdmVkU291cmNlcy9KUyUuaDogRGVyaXZlZFNv
dXJjZXMvSlMlLmNwcDsKIAorRGVyaXZlZFNvdXJjZXMvV2ViJS5oOiBEZXJpdmVkU291cmNlcy9X
ZWIlLmNwcDsKKwogLlNFQ09OREFSWToKIERlcml2ZWRTb3VyY2VzL0pTJS5jcHA6ICUuaWRsICQo
U0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cyAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgJChJRExf
UEFUSDolPS0taW5jbHVkZSAiJSIpIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAtLWRlZmlu
ZXMgIkxBTkdVQUdFX0pBVkFTQ1JJUFQ9MSAkKEZFQVRVUkVfREVGSU5FUykiIC0tZ2VuZXJhdG9y
IEpTICQ8CiAKK0Rlcml2ZWRTb3VyY2VzL1dlYiUuY3BwOiAlLmluc3BlY3RvciAkKFNDUklQVFNf
QklORElOR1MpICQoV2ViQ29yZSkvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0K
KwkkKEFNX1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgLUkkKFdl
YkNvcmUpL2luc3BlY3RvciAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmlu
ZGluZ3MucGwgJChJRExfUEFUSDolPS0taW5jbHVkZSAiJSIpIC0tb3V0cHV0RGlyICIkKEdFTlNP
VVJDRVMpIiAtLWRlZmluZXMgIkxBTkdVQUdFX0pBVkFTQ1JJUFQ9MSAkKEZFQVRVUkVfREVGSU5F
UykiIC0tZ2VuZXJhdG9yIEluc3BlY3RvciAkPAorCiBJRExfQklORElOR1NfSlNfUFVSRSA6PSBc
CiAJV2ViQ29yZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlkbCBcCiAJV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRQYXRoRGF0YS5pZGwgXApAQCAtMzkxNiw4ICszOTI0LDExIEBAIElETF9CSU5ESU5H
U19KU19QVVJFIDo9IFwKIElETF9CSU5ESU5HU19KUyA6PSAkKGZpbHRlci1vdXQgJChJRExfQklO
RElOR1NfSlNfUFVSRSksJChJRExfQklORElOR1MpKQogCiB3ZWJjb3JlX2J1aWx0X25vc291cmNl
cyArPSAkKHBhdHN1YnN0ICUuaWRsLERlcml2ZWRTb3VyY2VzL0pTJS5oLCQobm90ZGlyICQoSURM
X0JJTkRJTkdTKSkpCit3ZWJjb3JlX2J1aWx0X25vc291cmNlcyArPSAkKHBhdHN1YnN0ICUuaW5z
cGVjdG9yLERlcml2ZWRTb3VyY2VzL1dlYiUuaCwkKG5vdGRpciAkKElOU1BFQ1RPUl9JTlRFUkZB
Q0VTKSkpCiAKLXdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzICs9ICQocGF0c3Vic3QgJS5pZGwsRGVy
aXZlZFNvdXJjZXMvSlMlLmNwcCwkKG5vdGRpciAkKElETF9CSU5ESU5HU19KUykpKQord2ViY29y
ZV9idWlsdF9jcHAgPSAkKHBhdHN1YnN0ICUuaWRsLERlcml2ZWRTb3VyY2VzL0pTJS5jcHAsJChu
b3RkaXIgJChJRExfQklORElOR1NfSlMpKSkKK3dlYmNvcmVfYnVpbHRfY3BwICs9ICQocGF0c3Vi
c3QgJS5pbnNwZWN0b3IsRGVyaXZlZFNvdXJjZXMvV2ViJS5jcHAsJChub3RkaXIgJChJTlNQRUNU
T1JfSU5URVJGQUNFUykpKQord2ViY29yZV9idWlsdF9ub3NvdXJjZXMgKz0gJCh3ZWJjb3JlX2J1
aWx0X2NwcCkKIAogd2ViY29yZV9idWlsdF9vYmplY3RzID0gOj0gJChwYXRzdWJzdCAlLmNwcCwl
LmxvLCQod2ViY29yZV9idWlsdF9ub3NvdXJjZXMpKQogCkBAIC0zOTI1LDkgKzM5MzYsOSBAQCAk
KHdlYmNvcmVfYnVpbHRfb2JqZWN0cyk6IEFNX0NQUEZMQUdTKz0kKGNvcmVraXRfY3BwZmxhZ3Mp
CiAKICQod2ViY29yZV9idWlsdF9vYmplY3RzKTogQU1fQ1hYRkxBR1MrPSQobGlid2Via2l0XzFf
MF9sYV9DWFhGTEFHUykKIAotbGliV2ViQ29yZUpTX29iamVjdHMgOj0gJChwYXRzdWJzdCAlLmlk
bCxEZXJpdmVkU291cmNlcy9KUyUubG8sJChub3RkaXIgJChJRExfQklORElOR1NfSlMpKSkKK2xp
YldlYkNvcmVKU19vYmplY3RzIDo9ICQocGF0c3Vic3QgJS5jcHAsJS5sbywkKHdlYmNvcmVfYnVp
bHRfY3BwKSkKIAotbGliV2ViQ29yZUpTX2RlcGZpbGVzIDo9ICQocGF0c3Vic3QgJS5pZGwsRGVy
aXZlZFNvdXJjZXMvJChERVBESVIpL0pTJS5QbG8sJChub3RkaXIgJChJRExfQklORElOR1NfSlMp
KSkKK2xpYldlYkNvcmVKU19kZXBmaWxlcyA6PSAkKHBhdHN1YnN0ICUuY3BwLERlcml2ZWRTb3Vy
Y2VzLyQoREVQRElSKS8lLlBsbywkKG5vdGRpciAkKHdlYmNvcmVfYnVpbHRfY3BwKSkpCiAKICMg
T2xkZXIgYXV0b21ha2UgdmVyc2lvbnMgKDEuNykgcGxhY2UgUGxvIGZpbGVzIGluIGEgZGlmZmVy
ZW50IHBsYWNlOgogbGliV2ViQ29yZUpTX2RlcGZpbGVzICs9ICQocGF0c3Vic3QgJS5sbywkKERF
UERJUikvJS5QbG8sJChsaWJXZWJDb3JlSlNfb2JqZWN0cykpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5
cAppbmRleCAxNmYxOWQ5Li42MTNjODYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lw
L1dlYkNvcmUuZ3lwCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKQEAgLTU4
OSw2ICs1ODksNyBAQAogICAgICAgICAgICdhY3Rpb24nOiBbCiAgICAgICAgICAgICAncHl0aG9u
JywKICAgICAgICAgICAgICdzY3JpcHRzL3J1bGVfYmluZGluZy5weScsCisgICAgICAgICAgICAn
djgnLAogICAgICAgICAgICAgJzwoUlVMRV9JTlBVVF9QQVRIKScsCiAgICAgICAgICAgICAnPChT
SEFSRURfSU5URVJNRURJQVRFX0RJUikvd2ViY29yZS9iaW5kaW5ncycsCiAgICAgICAgICAgICAn
PChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L2JpbmRpbmdzJywKQEAgLTYwMSw2ICs2
MDIsNDkgQEAKICAgICAgICAgICBdLAogICAgICAgICAgICdtZXNzYWdlJzogJ0dlbmVyYXRpbmcg
YmluZGluZyBmcm9tIDwoUlVMRV9JTlBVVF9QQVRIKScsCiAgICAgICAgIH0sCisgICAgICAgICMg
UnVsZSB0byBidWlsZCBnZW5lcmF0ZWQgV2ViSW5zcGVjdG9yIGJpbmRpbmdzIGZyb20gLmluc3Bl
Y3RvciBzb3VyY2UuCisgICAgICAgIHsKKyAgICAgICAgICAncnVsZV9uYW1lJzogJ2luc3BlY3Rv
cicsCisgICAgICAgICAgJ2V4dGVuc2lvbic6ICdpbnNwZWN0b3InLAorICAgICAgICAgICdtc3Zz
X2V4dGVybmFsX3J1bGUnOiAxLAorICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAgICAn
Li4vYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCcsCisgICAgICAgICAgICAn
Li4vYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtJywKKyAgICAgICAgICAgICcuLi9p
bnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbScsCisgICAgICAgICAgICAnLi4vYmlu
ZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0nLAorICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3Nj
cmlwdHMvSURMU3RydWN0dXJlLnBtJywKKyAgICAgICAgICBdLAorICAgICAgICAgICdvdXRwdXRz
JzogWworICAgICAgICAgICAgIyBGSVhNRTogIFRoZSAuY3BwIGZpbGUgc2hvdWxkIGJlIGluIHdl
YmtpdC9iaW5kaW5ncyBvbmNlCisgICAgICAgICAgICAjIHdlIGNvYXggR1lQIGludG8gc3VwcG9y
dGluZyBpdCAoc2VlICdhY3Rpb24nIGJlbG93KS4KKyAgICAgICAgICAgICc8KFNIQVJFRF9JTlRF
Uk1FRElBVEVfRElSKS93ZWJjb3JlL2JpbmRpbmdzL1dlYjwoUlVMRV9JTlBVVF9ST09UKS5jcHAn
LAorICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9iaW5kaW5n
cy9XZWI8KFJVTEVfSU5QVVRfUk9PVCkuaCcsCisgICAgICAgICAgXSwKKyAgICAgICAgICAndmFy
aWFibGVzJzogeworICAgICAgICAgICAgJ2dlbmVyYXRvcl9pbmNsdWRlX2RpcnMnOiBbCisgICAg
ICAgICAgICBdLAorICAgICAgICAgIH0sCisgICAgICAgICAgIyBGSVhNRTogIE5vdGUgdGhhdCB3
ZSBwdXQgdGhlIC5jcHAgZmlsZXMgaW4gd2ViY29yZS9iaW5kaW5ncworICAgICAgICAgICMgYnV0
IHRoZSAuaCBmaWxlcyBpbiB3ZWJraXQvYmluZGluZ3MuICBUaGlzIGlzIHRvIHdvcmsgYXJvdW5k
CisgICAgICAgICAgIyB0aGUgdW5mb3J0dW5hdGUgZmFjdCB0aGF0IEdZUCBzdHJpcHMgZHVwbGlj
YXRlIGFyZ3VtZW50cworICAgICAgICAgICMgZnJvbSBsaXN0cy4gIFdoZW4gd2UgaGF2ZSBhIGJl
dHRlciBHWVAgd2F5IHRvIHN1cHByZXNzIHRoYXQKKyAgICAgICAgICAjIGJlaGF2aW9yLCBjaGFu
Z2UgdGhlIG91dHB1dCBsb2NhdGlvbi4KKyAgICAgICAgICAnYWN0aW9uJzogWworICAgICAgICAg
ICAgJ3B5dGhvbicsCisgICAgICAgICAgICAnc2NyaXB0cy9ydWxlX2JpbmRpbmcucHknLAorICAg
ICAgICAgICAgJ1dlYicsCisgICAgICAgICAgICAnPChSVUxFX0lOUFVUX1BBVEgpJywKKyAgICAg
ICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJjb3JlL2JpbmRpbmdzJywKKyAg
ICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGluZ3MnLAor
ICAgICAgICAgICAgJy0tJywKKyAgICAgICAgICAgICc8QChfaW5wdXRzKScsCisgICAgICAgICAg
ICAnLS0nLAorICAgICAgICAgICAgJy0tZGVmaW5lcycsICdMQU5HVUFHRV9KQVZBU0NSSVBUJywK
KyAgICAgICAgICAgICctLWdlbmVyYXRvcicsICdJbnNwZWN0b3InLAorICAgICAgICAgICAgJzxA
KGdlbmVyYXRvcl9pbmNsdWRlX2RpcnMpJworICAgICAgICAgIF0sCisgICAgICAgICAgJ21lc3Nh
Z2UnOiAnR2VuZXJhdGluZyBJbnNwZWN0b3IgdHJhbnNwb3J0IGNsYXNzIGZyb20gPChSVUxFX0lO
UFVUX1BBVEgpJywKKyAgICAgICAgfSwKICAgICAgIF0sCiAgICAgfSwKICAgICB7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX2Rlcml2ZWRzb3VyY2VzYWxs
aW5vbmUucHkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX2Rlcml2ZWRzb3Vy
Y2VzYWxsaW5vbmUucHkKaW5kZXggYzljNWJmNS4uNDcwMDYzYiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9kZXJpdmVkc291cmNlc2FsbGlub25lLnB5Cisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9hY3Rpb25fZGVyaXZlZHNvdXJjZXNhbGxp
bm9uZS5weQpAQCAtMTIzLDEyICsxMjMsMTYgQEAgZGVmIGV4dHJhY3RNZXRhRGF0YShmaWxlUGF0
aHMpOgogICAgICAgICAocGFyZW50UGF0aCwgZmlsZU5hbWUpID0gb3MucGF0aC5zcGxpdChmKQog
ICAgICAgICAoaW50ZXJmYWNlTmFtZSwgZXh0KSA9IG9zLnBhdGguc3BsaXRleHQoZmlsZU5hbWUp
CiAKLSAgICAgICAgaWYgbm90IGV4dCA9PSAnLmlkbCc6CisgICAgICAgIGlmIGV4dCA9PSAnLmlk
bCc6CisgICAgICAgICAgICBmaWxlTmFtZSA9ICdWOCVzJyAlIGludGVyZmFjZU5hbWUKKyAgICAg
ICAgZWxpZiBleHQgPT0gJy5pbnNwZWN0b3InOgorICAgICAgICAgICAgZmlsZU5hbWUgPSAnV2Vi
JXMnICUgaW50ZXJmYWNlTmFtZQorICAgICAgICBlbHNlOgogICAgICAgICAgICAgY29udGludWUK
IAogICAgICAgICBtZXRhRGF0YSA9IHsKICAgICAgICAgICAgICdjb25kaXRpb25hbCc6IGV4dHJh
Y3RDb25kaXRpb25hbChmKSwKLSAgICAgICAgICAgICduYW1lJzogaW50ZXJmYWNlTmFtZSwKKyAg
ICAgICAgICAgICduYW1lJzogZmlsZU5hbWUsCiAgICAgICAgIH0KIAogICAgICAgICBtZXRhRGF0
YUxpc3QuYXBwZW5kKG1ldGFEYXRhKQpAQCAtMTU5LDcgKzE2Myw3IEBAIGRlZiBnZW5lcmF0ZUNv
bnRlbnQoZmlsZXNNZXRhRGF0YSwgcGFydGl0aW9uLCB0b3RhbFBhcnRpdGlvbnMpOgogICAgICAg
ICBpZiBjb25kaXRpb25hbCBhbmQgcHJldkNvbmRpdGlvbmFsICE9IGNvbmRpdGlvbmFsOgogICAg
ICAgICAgICAgb3V0cHV0LmFwcGVuZCgnXG4jaWYgJXNcbicgJSBmb3JtYXRDb25kaXRpb25hbChj
b25kaXRpb25hbCkpCiAKLSAgICAgICAgb3V0cHV0LmFwcGVuZCgnI2luY2x1ZGUgImJpbmRpbmdz
L1Y4JXMuY3BwIlxuJyAlIG5hbWUpCisgICAgICAgIG91dHB1dC5hcHBlbmQoJyNpbmNsdWRlICJi
aW5kaW5ncy8lcy5jcHAiXG4nICUgbmFtZSkKIAogICAgICAgICBwcmV2Q29uZGl0aW9uYWwgPSBj
b25kaXRpb25hbAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvcnVs
ZV9iaW5kaW5nLnB5IGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL3J1bGVfYmluZGluZy5w
eQppbmRleCAyNGQxNzhmLi5jZGQ0MjhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lw
L3NjcmlwdHMvcnVsZV9iaW5kaW5nLnB5CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0
cy9ydWxlX2JpbmRpbmcucHkKQEAgLTgyLDggKzgyLDggQEAgZGVmIG1haW4oYXJncyk6CiAgICAg
YXNzZXJ0IGxlbihzZWN0aW9ucykgPT0gMywgc2VjdGlvbnMKICAgICAoYmFzZSwgaW5wdXRzLCBv
cHRpb25zKSA9IHNlY3Rpb25zCiAKLSAgICBhc3NlcnQgbGVuKGJhc2UpID09IDMsIGJhc2UKLSAg
ICAoaW5wdXQsIGNwcGRpciwgaGRpcikgPSBiYXNlCisgICAgYXNzZXJ0IGxlbihiYXNlKSA9PSA0
LCBiYXNlCisgICAgKHByZWZpeCwgaW5wdXQsIGNwcGRpciwgaGRpcikgPSBiYXNlCiAKICAgICBh
c3NlcnQgbGVuKGlucHV0cykgPiAxLCBpbnB1dHMKICAgICBnZW5lcmF0ZUJpbmRpbmdzID0gaW5w
dXRzWzBdCkBAIC0xMjIsNyArMTIyLDcgQEAgZGVmIG1haW4oYXJncyk6CiAgICAgaWYgY3BwZGly
ICE9IGhkaXI6CiAgICAgICAgIGlucHV0QmFzZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKGlucHV0
KQogICAgICAgICAocm9vdCwgZXh0KSA9IG9zLnBhdGguc3BsaXRleHQoaW5wdXRCYXNlbmFtZSkK
LSAgICAgICAgaG5hbWUgPSAnVjglcy5oJyAlIHJvb3QKKyAgICAgICAgaG5hbWUgPSAnJXMlcy5o
JyAlIChwcmVmaXgudXBwZXIoKSwgcm9vdCkKICAgICAgICAgaHNyYyA9IG9zLnBhdGguam9pbihj
cHBkaXIsIGhuYW1lKQogICAgICAgICBoZHN0ID0gb3MucGF0aC5qb2luKGhkaXIsIGhuYW1lKQog
ICAgICAgICBzaHV0aWwuY29weWZpbGUoaHNyYywgaGRzdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMGMwZjU4MC4uNjI5MWQw
YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKQEAgLTE5NCw2ICsxOTQsNyBAQAogICAgICAgICAgICAgJ2h0bWwvVm9pZENhbGxiYWNr
LmlkbCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwnLAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmlkbCcsCisgICAgICAgICAg
ICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pbnNwZWN0b3InLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5pZGwnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9T
Y3JpcHRQcm9maWxlLmlkbCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2Vi
Q29yZS9XZWJDb3JlLnByaQppbmRleCBmNGFiYzI3Li5jZTY1ZjZiIDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTYzNSw2ICs2MzUs
OCBAQCBJRExfQklORElOR1MgKz0gXAogICAgIHhtbC9YUGF0aEV2YWx1YXRvci5pZGwgXAogICAg
IHhtbC9YU0xUUHJvY2Vzc29yLmlkbAogCitJTlNQRUNUT1JfSU5URVJGQUNFUyA9IGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZDIuaW5zcGVjdG9yCisKIGNvbnRhaW5zKERFRklORVMsIEVOQUJM
RV9NQVRITUw9MSkgewogICAgIG1hdGhtbG5hbWVzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9T
T1VSQ0VTX0RJUn0vTWF0aE1MTmFtZXMuY3BwCiAgICAgbWF0aG1sbmFtZXMuaW5wdXQgPSBNQVRI
TUxfTkFNRVMKQEAgLTcwMCw2ICs3MDIsMTggQEAgaWRsLmRlcGVuZHMgPSAkJFBXRC9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0gXAogICAgICAgICAgICAgICAkJFBXRC9iaW5kaW5n
cy9zY3JpcHRzL0luRmlsZXNQYXJzZXIucG0KIGFkZEV4dHJhQ29tcGlsZXIoaWRsKQogCisjIEdF
TkVSQVRPUiAyOiBJbnNwZWN0b3IgY29tcGlsZXIKK2luc3BlY3Rvci5vdXRwdXQgPSAkJHtXQ19H
RU5FUkFURURfU09VUkNFU19ESVJ9L1dlYiR7UU1BS0VfRklMRV9CQVNFfS5jcHAKK2luc3BlY3Rv
ci5pbnB1dCA9IElOU1BFQ1RPUl9JTlRFUkZBQ0VTCitpbnNwZWN0b3Iud2tTY3JpcHQgPSAkJFBX
RC9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCitpbnNwZWN0b3IuY29tbWFu
ZHMgPSBwZXJsIC1JJCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAtSSQkUFdEL2luc3BlY3RvciAkJGlu
c3BlY3Rvci53a1NjcmlwdCAtLWRlZmluZXMgXCIkJHtGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQ
VH1cIiAtLWdlbmVyYXRvciBJbnNwZWN0b3IgLS1vdXRwdXREaXIgJCRXQ19HRU5FUkFURURfU09V
UkNFU19ESVIgLS1wcmVwcm9jZXNzb3IgXCIkJHtRTUFLRV9NT0N9IC1FXCIgJHtRTUFLRV9GSUxF
X05BTUV9CitpbnNwZWN0b3IuZGVwZW5kcyA9ICQkUFdEL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvci5wbSBcCisgICAgICAgICAgICAgICQkUFdEL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9y
SW5zcGVjdG9yLnBtIFwKKyAgICAgICAgICAgICAgJCRQV0QvYmluZGluZ3Mvc2NyaXB0cy9JRExQ
YXJzZXIucG0gXAorICAgICAgICAgICAgICAkJFBXRC9iaW5kaW5ncy9zY3JpcHRzL0lETFN0cnVj
dHVyZS5wbSBcCisgICAgICAgICAgICAgICQkUFdEL2JpbmRpbmdzL3NjcmlwdHMvSW5GaWxlc1Bh
cnNlci5wbQorYWRkRXh0cmFDb21waWxlcihpbnNwZWN0b3IpCisKICMgR0VORVJBVE9SIDM6IHRv
a2VuaXplciAoZmxleCkKIHRva2VuaXplci5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNF
U19ESVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5jcHAKIHRva2VuaXplci5pbnB1dCA9IFRPS0VOSVpF
UgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMTA4ODk1ZS4uMmY2MDhk
ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMDA2NSw2ICsyMDA2
NSwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRo
PSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdl
Ykluc3BlY3RvckZyb250ZW5kMi5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXFdlYkluc3BlY3RvckZyb250ZW5kMi5oIg0KKwkJCQk+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXTUxFbGVtZW50RmFjdG9yeS5jcHAiDQog
CQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBjNjQyNzdkLi4zZDA4OThiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNjYyMSw2ICs2NjIxLDkgQEAKIAkJNEYxNTM0REYxMUI1MzMw
MjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEVkaXRpbmdCZWhhdmlvclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTRGMzI4OUIzMTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yVmFsdWVzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEYzMjg5QjQxMUE0MkFBQjAwNUFCRTdF
IC8qIEluc3BlY3RvclZhbHVlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bnNwZWN0b3JWYWx1ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEY3OTYwMEYx
MUM3RTNFOTAwQzBDQzNDIC8qIEluc3BlY3RvckZyb250ZW5kMi5pbnNwZWN0b3IgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmQyLmluc3BlY3Rvcjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNEY3OTYwMzIxMUM4MEM4QTAwQzBDQzNDIC8qIFdlYkluc3BlY3Rv
ckZyb250ZW5kMi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJ
bnNwZWN0b3JGcm9udGVuZDIuY3BwOyBwYXRoID0gLi4vV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9XZWJJbnNwZWN0b3JGcm9udGVuZDIuY3BwOyBzb3VyY2VUcmVlID0g
U09VUkNFX1JPT1Q7IH07CisJCTRGNzk2MDMzMTFDODBDOEEwMEMwQ0MzQyAvKiBXZWJJbnNwZWN0
b3JGcm9udGVuZDIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVj
dG9yRnJvbnRlbmQyLmg7IHBhdGggPSAuLi9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL1dlYkluc3BlY3RvckZyb250ZW5kMi5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JP
T1Q7IH07CiAJCTRGRDhEMEYwMTE5QzcxOEIwMDJGQTgyNSAvKiBTY3JpcHRHQ0V2ZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEdDRXZlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RkQ4RDBGMTExOUM3MThCMDAyRkE4MjUgLyog
U2NyaXB0R0NFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRH
Q0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDE4NDY3MEIwODYwMkEw
MDRBODI1RiAvKiBDYWNoZWRQYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENhY2hlZFBhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMTc2LDYgKzEx
MTc5LDggQEAKIAkJCQk5RkEzN0VGNzExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxl
LmggKi8sCiAJCQkJOUZBMzdFRjgxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5v
ZGUuY3BwICovLAogCQkJCTlGQTM3RUY5MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2Zp
bGVOb2RlLmggKi8sCisJCQkJNEY3OTYwMzIxMUM4MEM4QTAwQzBDQzNDIC8qIFdlYkluc3BlY3Rv
ckZyb250ZW5kMi5jcHAgKi8sCisJCQkJNEY3OTYwMzMxMUM4MEM4QTAwQzBDQzNDIC8qIFdlYklu
c3BlY3RvckZyb250ZW5kMi5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBJbnNwZWN0b3I7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTEyMDcsNiArMTEyMTIsNyBAQAogCQkJCTQxRjA2
MTcyMEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCAqLywK
IAkJCQk3QUVEM0UwMzBGQkIxRUFBMDBEMkIwM0MgLyogSW5zcGVjdG9yRnJvbnRlbmQuY3BwICov
LAogCQkJCTdBRUQzRTA0MEZCQjFFQUEwMEQyQjAzQyAvKiBJbnNwZWN0b3JGcm9udGVuZC5oICov
LAorCQkJCTRGNzk2MDBGMTFDN0UzRTkwMEMwQ0MzQyAvKiBJbnNwZWN0b3JGcm9udGVuZDIuaW5z
cGVjdG9yICovLAogCQkJCUYzNDRDNzEyMTEyNUI4MkMwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9u
dGVuZENsaWVudC5oICovLAogCQkJCUYzNDRDNzU3MTEyOTRGRjYwMEYyNkVFRSAvKiBJbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCAqLywKIAkJCQlGMzQ0Qzc1MjExMjk0RDlEMDBGMjZF
RUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oICovLApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2suY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDYWxsU3RhY2suY3BwCmluZGV4IDg2ZGRjZDEuLmM5YmI4YjAgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lkIFNj
cmlwdENhbGxTdGFjazo6aW5pdGlhbGl6ZSgpCiAgICAgbV9pbml0aWFsaXplZCA9IHRydWU7CiB9
CiAKLWJvb2wgU2NyaXB0Q2FsbFN0YWNrOjpzdGFja1RyYWNlKGludCwgU2NyaXB0U3RhdGUqLCBT
Y3JpcHRBcnJheSYpCitib29sIFNjcmlwdENhbGxTdGFjazo6c3RhY2tUcmFjZShpbnQsIGNvbnN0
IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mKQogewogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrLmggYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5oCmluZGV4IDZjZjc2NzkuLjQ5NTBkYWUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrLmgKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2suaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1
ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RyaW5nLmgiCiAjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2Ug
SlNDIHsKICAgICBjbGFzcyBFeGVjU3RhdGU7CkBAIC00Myw2ICs0NCw4IEBAIG5hbWVzcGFjZSBK
U0MgewogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCisgICAgY2xhc3MgSW5zcGVjdG9y
QXJyYXk7CiAKICAgICBjbGFzcyBTY3JpcHRDYWxsU3RhY2sgOiBwdWJsaWMgTm9uY29weWFibGUg
ewogICAgIHB1YmxpYzoKQEAgLTU0LDcgKzU3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICAvLyBmcmFtZSByZXRyaWV2YWwgbWV0aG9kcwogICAgICAgICBjb25zdCBTY3JpcHRDYWxs
RnJhbWUgJmF0KHVuc2lnbmVkKTsKICAgICAgICAgdW5zaWduZWQgc2l6ZSgpOwotICAgICAgICBz
dGF0aWMgYm9vbCBzdGFja1RyYWNlKGludCwgU2NyaXB0U3RhdGUqLCBTY3JpcHRBcnJheSYpOwor
ICAgICAgICBzdGF0aWMgYm9vbCBzdGFja1RyYWNlKGludCwgY29uc3QgUmVmUHRyPEluc3BlY3Rv
ckFycmF5PiYpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBpbml0aWFsaXplKCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbSBiL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCmluZGV4IDdjMGY0MjcuLmM2
OWRjMWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCkBAIC04
Myw2ICs4Myw3IEBAIHN1YiBuZXcKICAgICAkdXNlTGF5ZXJPblRvcCA9IHNoaWZ0OwogICAgICRw
cmVwcm9jZXNzb3IgPSBzaGlmdDsKICAgICAkd3JpdGVEZXBlbmRlbmNpZXMgPSBzaGlmdDsKKyAg
ICAkdmVyYm9zZSA9IHNoaWZ0OwogCiAgICAgYmxlc3MoJHJlZmVyZW5jZSwgJG9iamVjdCk7CiAg
ICAgcmV0dXJuICRyZWZlcmVuY2U7CkBAIC0xMDMsMTAgKzEwNCwxMCBAQCBzdWIgUHJvY2Vzc0Rv
Y3VtZW50CiAgICAgJGRlZmluZXMgPSBzaGlmdDsKIAogICAgIG15ICRpZmFjZU5hbWUgPSAiQ29k
ZUdlbmVyYXRvciIgLiAkdXNlR2VuZXJhdG9yOworICAgIHJlcXVpcmUgJGlmYWNlTmFtZSAuICIu
cG0iOwogCiAgICAgIyBEeW5hbWljYWxseSBsb2FkIGV4dGVybmFsIGNvZGUgZ2VuZXJhdGlvbiBw
ZXJsIG1vZHVsZQotICAgIHJlcXVpcmUgJGlmYWNlTmFtZSAuICIucG0iOwotICAgICRjb2RlR2Vu
ZXJhdG9yID0gJGlmYWNlTmFtZS0+bmV3KCRvYmplY3QsICR1c2VPdXRwdXREaXIsICR1c2VMYXll
ck9uVG9wLCAkcHJlcHJvY2Vzc29yLCAkd3JpdGVEZXBlbmRlbmNpZXMpOworICAgICRjb2RlR2Vu
ZXJhdG9yID0gJGlmYWNlTmFtZS0+bmV3KCRvYmplY3QsICR1c2VPdXRwdXREaXIsICR1c2VMYXll
ck9uVG9wLCAkcHJlcHJvY2Vzc29yLCAkd3JpdGVEZXBlbmRlbmNpZXMsICR2ZXJib3NlKTsKICAg
ICB1bmxlc3MgKGRlZmluZWQoJGNvZGVHZW5lcmF0b3IpKSB7CiAgICAgICAgIG15ICRjbGFzc2Vz
ID0gJHVzZURvY3VtZW50LT5jbGFzc2VzOwogICAgICAgICBmb3JlYWNoIG15ICRjbGFzcyAoQCRj
bGFzc2VzKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2Vy
LnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQppbmRleCAzZGY5NmFi
Li5lMjUwYTRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2Vy
LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KQEAgLTI1OSw3
ICsyNTksNyBAQCBzdWIgUGFyc2VJbnRlcmZhY2UKICAgICAgICAgbXkgQGludGVyZmFjZU1ldGhv
ZHMgPSBzcGxpdCgvOy8sICRpbnRlcmZhY2VEYXRhKTsKIAogICAgICAgICBmb3JlYWNoIG15ICRs
aW5lIChAaW50ZXJmYWNlTWV0aG9kcykgewotICAgICAgICAgICAgaWYgKCRsaW5lID1+IC9hdHRy
aWJ1dGUvKSB7CisgICAgICAgICAgICBpZiAoJGxpbmUgPX4gL1xXYXR0cmlidXRlXFcvKSB7CiAg
ICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmludGVyZmFjZUF0dHJpYnV0
ZVNlbGVjdG9yLzsKIAogICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVUeXBlID0gKGRlZmlu
ZWQoJDEpID8gJDEgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5w
bCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbAppbmRleCA0
NGVkNGQzLi43MjE5MmZmIDEwMDc1NQotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2Vu
ZXJhdGUtYmluZGluZ3MucGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRl
LWJpbmRpbmdzLnBsCkBAIC00MywyOCArNDMsMzMgQEAgbXkgJGdlbmVyYXRvcjsKIG15ICRkZWZp
bmVzOwogbXkgJHByZXByb2Nlc3NvcjsKIG15ICR3cml0ZURlcGVuZGVuY2llczsKK215ICR2ZXJi
b3NlOwogCiBHZXRPcHRpb25zKCdpbmNsdWRlPXNAJyA9PiBcQGlkbERpcmVjdG9yaWVzLAogICAg
ICAgICAgICAnb3V0cHV0RGlyPXMnID0+IFwkb3V0cHV0RGlyZWN0b3J5LAogICAgICAgICAgICAn
Z2VuZXJhdG9yPXMnID0+IFwkZ2VuZXJhdG9yLAogICAgICAgICAgICAnZGVmaW5lcz1zJyA9PiBc
JGRlZmluZXMsCiAgICAgICAgICAgICdwcmVwcm9jZXNzb3I9cycgPT4gXCRwcmVwcm9jZXNzb3Is
CisgICAgICAgICAgICd2ZXJib3NlJyA9PiBcJHZlcmJvc2UsCiAgICAgICAgICAgICd3cml0ZS1k
ZXBlbmRlbmNpZXMnID0+IFwkd3JpdGVEZXBlbmRlbmNpZXMpOwogCiBteSAkaWRsRmlsZSA9ICRB
UkdWWzBdOwogCiBkaWUoJ011c3Qgc3BlY2lmeSBpbnB1dCBmaWxlLicpIHVubGVzcyBkZWZpbmVk
KCRpZGxGaWxlKTsKLWRpZSgnTXVzdCBzcGVjaWZ5IElETCBzZWFyY2ggcGF0aC4nKSB1bmxlc3Mg
QGlkbERpcmVjdG9yaWVzOworI2RpZSgnTXVzdCBzcGVjaWZ5IElETCBzZWFyY2ggcGF0aC4nKSB1
bmxlc3MgQGlkbERpcmVjdG9yaWVzOwogZGllKCdNdXN0IHNwZWNpZnkgZ2VuZXJhdG9yJykgdW5s
ZXNzIGRlZmluZWQoJGdlbmVyYXRvcik7CiBkaWUoJ011c3Qgc3BlY2lmeSBvdXRwdXQgZGlyZWN0
b3J5LicpIHVubGVzcyBkZWZpbmVkKCRvdXRwdXREaXJlY3RvcnkpOwogZGllKCdNdXN0IHNwZWNp
ZnkgZGVmaW5lcycpIHVubGVzcyBkZWZpbmVkKCRkZWZpbmVzKTsKIAoraWYgKCR2ZXJib3NlKSB7
CisgICAgcHJpbnQgIiRnZW5lcmF0b3I6ICRpZGxGaWxlXG4iOworfQogJGRlZmluZXMgPX4gcy9e
XHMrfFxzKyQvL2c7ICMgdHJpbSB3aGl0ZXNwYWNlCiAKICMgUGFyc2UgdGhlIGdpdmVuIElETCBm
aWxlLgotbXkgJHBhcnNlciA9IElETFBhcnNlci0+bmV3KDEpOworbXkgJHBhcnNlciA9IElETFBh
cnNlci0+bmV3KCEkdmVyYm9zZSk7CiBteSAkZG9jdW1lbnQgPSAkcGFyc2VyLT5QYXJzZSgkaWRs
RmlsZSwgJGRlZmluZXMsICRwcmVwcm9jZXNzb3IpOwogCiAjIEdlbmVyYXRlIGRlc2lyZWQgb3V0
cHV0IGZvciBnaXZlbiBJREwgZmlsZS4KLW15ICRjb2RlR2VuID0gQ29kZUdlbmVyYXRvci0+bmV3
KFxAaWRsRGlyZWN0b3JpZXMsICRnZW5lcmF0b3IsICRvdXRwdXREaXJlY3RvcnksIDAsICRwcmVw
cm9jZXNzb3IsICR3cml0ZURlcGVuZGVuY2llcyk7CitteSAkY29kZUdlbiA9IENvZGVHZW5lcmF0
b3ItPm5ldyhcQGlkbERpcmVjdG9yaWVzLCAkZ2VuZXJhdG9yLCAkb3V0cHV0RGlyZWN0b3J5LCAw
LCAkcHJlcHJvY2Vzc29yLCAkd3JpdGVEZXBlbmRlbmNpZXMsICR2ZXJib3NlKTsKICRjb2RlR2Vu
LT5Qcm9jZXNzRG9jdW1lbnQoJGRvY3VtZW50LCAkZGVmaW5lcyk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFjay5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjcmlwdENhbGxTdGFjay5jcHAKaW5kZXggODk4MDliMi4uZmM1NDA4NiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2suY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvU2NyaXB0Q2FsbFN0YWNrLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogCisjaW5jbHVkZSAiSW5z
cGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0U2NvcGUuaCIKICNpbmNsdWRlICJTY3Jp
cHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RGVidWdTZXJ2ZXIuaCIKQEAgLTkzLDEz
ICs5NCwyNSBAQCBjb25zdCBTY3JpcHRDYWxsRnJhbWUmIFNjcmlwdENhbGxTdGFjazo6YXQodW5z
aWduZWQgaW5kZXgpIGNvbnN0CiAgICAgcmV0dXJuIG1fbGFzdENhbGxlcjsKIH0KIAotYm9vbCBT
Y3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UoaW50IGZyYW1lTGltaXQsIFNjcmlwdFN0YXRlKiBz
dGF0ZSwgU2NyaXB0QXJyYXkmIHN0YWNrVHJhY2UpCitib29sIFNjcmlwdENhbGxTdGFjazo6c3Rh
Y2tUcmFjZShpbnQgZnJhbWVMaW1pdCwgY29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5PiYgc3Rh
Y2tUcmFjZSkKIHsKLSAgICBTY3JpcHRTY29wZSBzY29wZShzdGF0ZSk7CisgICAgdjg6OkhhbmRs
ZVNjb3BlIHNjb3BlOworICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUodjg6OkNv
bnRleHQ6OkdldEN1cnJlbnQoKSk7CiAgICAgdjg6OkhhbmRsZTx2ODo6U3RhY2tUcmFjZT4gdHJh
Y2Uodjg6OlN0YWNrVHJhY2U6OkN1cnJlbnRTdGFja1RyYWNlKGZyYW1lTGltaXQpKTsKLSAgICBp
ZiAodHJhY2UuSXNFbXB0eSgpIHx8ICF0cmFjZS0+R2V0RnJhbWVDb3VudCgpKQorICAgIGludCBm
cmFtZUNvdW50ID0gdHJhY2UtPkdldEZyYW1lQ291bnQoKTsKKyAgICBpZiAodHJhY2UuSXNFbXB0
eSgpIHx8ICFmcmFtZUNvdW50KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgc3RhY2tUcmFj
ZSA9IFNjcmlwdEFycmF5KHN0YXRlLCB0cmFjZS0+QXNBcnJheSgpKTsKKyAgICBmb3IgKGludCBp
ID0gMDsgaSA8IGZyYW1lQ291bnQ7ICsraSkgeworICAgICAgICB2ODo6SGFuZGxlPHY4OjpTdGFj
a0ZyYW1lPiBmcmFtZSA9IHRyYWNlLT5HZXRGcmFtZShpKTsKKyAgICAgICAgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gZnJhbWVPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAg
ICAgICB2ODo6TG9jYWw8djg6OlN0cmluZz4gc2NyaXB0TmFtZSA9IGZyYW1lLT5HZXRTY3JpcHRO
YW1lKCk7CisgICAgICAgIGZyYW1lT2JqZWN0LT5zZXRTdHJpbmcoInNjcmlwdE5hbWUiLCBzY3Jp
cHROYW1lLklzRW1wdHkoKSA/ICIiIDogdG9XZWJDb3JlU3RyaW5nKHNjcmlwdE5hbWUpKTsgICAg
ICAgIAorICAgICAgICB2ODo6TG9jYWw8djg6OlN0cmluZz4gZnVuY3Rpb25OYW1lID0gZnJhbWUt
PkdldEZ1bmN0aW9uTmFtZSgpOworICAgICAgICBmcmFtZU9iamVjdC0+c2V0U3RyaW5nKCJmdW5j
dGlvbk5hbWUiLCBmdW5jdGlvbk5hbWUuSXNFbXB0eSgpID8gIiIgOiB0b1dlYkNvcmVTdHJpbmco
ZnVuY3Rpb25OYW1lKSk7ICAgICAgICAKKyAgICAgICAgZnJhbWVPYmplY3QtPnNldE51bWJlcigi
bGluZU51bWJlciIsIGZyYW1lLT5HZXRMaW5lTnVtYmVyKCkpOworICAgICAgICBmcmFtZU9iamVj
dC0+c2V0TnVtYmVyKCJjb2x1bW4iLCBmcmFtZS0+R2V0Q29sdW1uKCkpOworICAgICAgICBzdGFj
a1RyYWNlLT5wdXNoKGZyYW1lT2JqZWN0KTsKKyAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q2FsbFN0YWNrLmggYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFjay5oCmluZGV4IDhiMDI4MTQuLjkzNDc4YmIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q2FsbFN0YWNrLmgKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2suaApAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVz
cGFjZSB2OCB7CiAgICAgY2xhc3MgQXJndW1lbnRzOwpAQCAtNDMsNiArNDQsOCBAQCBuYW1lc3Bh
Y2UgdjggewogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEluc3BlY3RvckFycmF5Owor
ICAgIAogY2xhc3MgU2NyaXB0Q2FsbFN0YWNrIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgU2NyaXB0Q2FsbFN0YWNrKiBjcmVhdGUoY29uc3Qgdjg6OkFyZ3VtZW50
cyYsIHVuc2lnbmVkIHNraXBBcmd1bWVudENvdW50ID0gMCk7CkBAIC01Nyw3ICs2MCw3IEBAIHB1
YmxpYzoKICAgICAvLyAgIGxpbmVOdW1iZXI6IDwxIGJhc2VkIGxpbmUgbnVtYmVyPgogICAgIC8v
ICAgY29sdW1uOiA8MSBiYXNlZCBjb2x1bW4gb2Zmc2V0IG9uIHRoZSBsaW5lPgogICAgIC8vIH0K
LSAgICBzdGF0aWMgYm9vbCBzdGFja1RyYWNlKGludCBmcmFtZUxpbWl0LCBTY3JpcHRTdGF0ZSog
c3RhdGUsIFNjcmlwdEFycmF5JiBzdGFja1RyYWNlKTsKKyAgICBzdGF0aWMgYm9vbCBzdGFja1Ry
YWNlKGludCBmcmFtZUxpbWl0LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiBzdGFja1Ry
YWNlKTsKIAogICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSYgYXQodW5zaWduZWQpIGNvbnN0Owog
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcmV0cmlldmluZyBhbmQgc3RvcmluZyBjYWxsIHN0YWNr
IHRyYWNlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDMy
NWUxMmMuLjVjMmZlOWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCkBAIC04Myw2ICs4Myw3IEBACiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVk
ZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAi
V2ViSW5zcGVjdG9yRnJvbnRlbmQyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5o
PgpAQCAtNDM1LDEwICs0MzYsMTEgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0
RnJvbnRlbmQoY29uc3QgU2NyaXB0T2JqZWN0JiB3ZWJJbnNwZWN0b3IpCiB7CiAgICAgbV9vcGVu
aW5nRnJvbnRlbmQgPSBmYWxzZTsKICAgICBtX2Zyb250ZW5kID0gbmV3IEluc3BlY3RvckZyb250
ZW5kKHdlYkluc3BlY3RvciwgbV9jbGllbnQpOworICAgIG1fZnJvbnRlbmQyID0gbmV3IEluc3Bl
Y3RvckZyb250ZW5kMihtX2NsaWVudCk7CiAgICAgcmVsZWFzZURPTUFnZW50KCk7CiAgICAgbV9k
b21BZ2VudCA9IEluc3BlY3RvckRPTUFnZW50OjpjcmVhdGUobV9jc3NTdG9yZS5nZXQoKSwgbV9m
cm9udGVuZC5nZXQoKSk7CiAgICAgaWYgKG1fdGltZWxpbmVBZ2VudCkKLSAgICAgICAgbV90aW1l
bGluZUFnZW50LT5yZXNldEZyb250ZW5kUHJveHlPYmplY3QobV9mcm9udGVuZC5nZXQoKSk7Cisg
ICAgICAgIG1fdGltZWxpbmVBZ2VudC0+cmVzZXRGcm9udGVuZFByb3h5T2JqZWN0KG1fZnJvbnRl
bmQyLmdldCgpKTsKIAogICAgIC8vIEluaXRpYWxpemUgV2ViIEluc3BlY3RvciB0aXRsZS4KICAg
ICBtX2Zyb250ZW5kLT5pbnNwZWN0ZWRVUkxDaGFuZ2VkKG1faW5zcGVjdGVkUGFnZS0+bWFpbkZy
YW1lKCktPmxvYWRlcigpLT51cmwoKS5zdHJpbmcoKSk7CkBAIC0xMDkwLDcgKzEwOTIsNyBAQCB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnN0YXJ0VGltZWxpbmVQcm9maWxlcigpCiAgICAgaWYg
KG1fdGltZWxpbmVBZ2VudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV90aW1lbGluZUFnZW50
ID0gbmV3IEluc3BlY3RvclRpbWVsaW5lQWdlbnQobV9mcm9udGVuZC5nZXQoKSk7CisgICAgbV90
aW1lbGluZUFnZW50ID0gbmV3IEluc3BlY3RvclRpbWVsaW5lQWdlbnQobV9mcm9udGVuZDIuZ2V0
KCkpOwogICAgIGlmIChtX2Zyb250ZW5kKQogICAgICAgICBtX2Zyb250ZW5kLT50aW1lbGluZVBy
b2ZpbGVyV2FzU3RhcnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5oCmluZGV4IGFmMzYzODMuLjhhZjg3MTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmgKQEAgLTY4LDYgKzY4LDcgQEAgY2xhc3MgSW5zcGVjdG9yQmFja2VuZDsKIGNs
YXNzIEluc3BlY3RvckNsaWVudDsKIGNsYXNzIEluc3BlY3RvckNTU1N0b3JlOwogY2xhc3MgSW5z
cGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDI7CiBjbGFzcyBJbnNwZWN0
b3JGcm9udGVuZENsaWVudDsKIGNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ7CiBjbGFzcyBL
VVJMOwpAQCAtMzMwLDYgKzMzMSw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEluc3BlY3RvckZy
b250ZW5kQ2xpZW50PiBtX2luc3BlY3RvckZyb250ZW5kQ2xpZW50OwogICAgIGJvb2wgbV9vcGVu
aW5nRnJvbnRlbmQ7CiAgICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kPiBtX2Zyb250ZW5kOwor
ICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZDI+IG1fZnJvbnRlbmQyOwogICAgIFJlZlB0cjxJ
bnNwZWN0b3JET01BZ2VudD4gbV9kb21BZ2VudDsKICAgICBPd25QdHI8SW5zcGVjdG9yQ1NTU3Rv
cmU+IG1fY3NzU3RvcmU7CiAgICAgT3duUHRyPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+IG1fdGlt
ZWxpbmVBZ2VudDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcAppbmRleCBm
YWQzMzAzLi4yZDViYTgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuY3Bw
CkBAIC0yOTEsMTQgKzI5MSw2IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OnRpbWVsaW5lUHJv
ZmlsZXJXYXNTdG9wcGVkKCkKICAgICBjYWxsU2ltcGxlRnVuY3Rpb24oInRpbWVsaW5lUHJvZmls
ZXJXYXNTdG9wcGVkIik7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmFkZFJlY29yZFRv
VGltZWxpbmUoY29uc3QgU2NyaXB0T2JqZWN0JiByZWNvcmQpCi17Ci0gICAgU2NyaXB0RnVuY3Rp
b25DYWxsIGZ1bmN0aW9uKG1fd2ViSW5zcGVjdG9yLCAiZGlzcGF0Y2giKTsgCi0gICAgZnVuY3Rp
b24uYXBwZW5kQXJndW1lbnQoImFkZFJlY29yZFRvVGltZWxpbmUiKTsKLSAgICBmdW5jdGlvbi5h
cHBlbmRBcmd1bWVudChyZWNvcmQpOwotICAgIGZ1bmN0aW9uLmNhbGwoKTsKLX0KLQogI2lmIEVO
QUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6YXR0YWNo
RGVidWdnZXJXaGVuU2hvd24oKQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmgK
aW5kZXggMGU5NjY4OC4uMzVlNjkzNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZC5oCkBAIC0xNTksNyArMTU5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZv
aWQgdGltZWxpbmVQcm9maWxlcldhc1N0YXJ0ZWQoKTsKICAgICAgICAgdm9pZCB0aW1lbGluZVBy
b2ZpbGVyV2FzU3RvcHBlZCgpOwotICAgICAgICB2b2lkIGFkZFJlY29yZFRvVGltZWxpbmUoY29u
c3QgU2NyaXB0T2JqZWN0Jik7CiAKICNpZiBFTkFCTEUoV09SS0VSUykKICAgICAgICAgdm9pZCBk
aWRDcmVhdGVXb3JrZXIoY29uc3QgSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UmKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggYWI1MzMxOS4uNjdl
ZmJjOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAK
QEAgLTM0LDExICszNCwxMSBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJF
dmVudC5oIgotI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW50UmVj
dC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVz
cG9uc2UuaCIKICNpbmNsdWRlICJUaW1lbGluZVJlY29yZEZhY3RvcnkuaCIKKyNpbmNsdWRlICJX
ZWJJbnNwZWN0b3JGcm9udGVuZDIuaCIKIAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgog
CkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogaW50IEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OnNfaW5zdGFuY2VDb3VudCA9IDA7CiAKLUluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQor
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnNwZWN0b3JG
cm9udGVuZDIqIGZyb250ZW5kKQogICAgIDogbV9mcm9udGVuZChmcm9udGVuZCkKIHsKICAgICAr
K3NfaW5zdGFuY2VDb3VudDsKQEAgLTYyLDkgKzYyLDkgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpwdXNoR0NFdmVudFJlY29yZHMoKQogICAgIEdDRXZlbnRzIGV2ZW50cyA9IG1fZ2NF
dmVudHM7CiAgICAgbV9nY0V2ZW50cy5jbGVhcigpOwogICAgIGZvciAoR0NFdmVudHM6Oml0ZXJh
dG9yIGkgPSBldmVudHMuYmVnaW4oKTsgaSAhPSBldmVudHMuZW5kKCk7ICsraSkgewotICAgICAg
ICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5l
cmljUmVjb3JkKG1fZnJvbnRlbmQsIGktPnN0YXJ0VGltZSk7Ci0gICAgICAgIHJlY29yZC5zZXQo
ImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdDRXZlbnREYXRhKG1fZnJvbnRl
bmQsIGktPmNvbGxlY3RlZEJ5dGVzKSk7Ci0gICAgICAgIHJlY29yZC5zZXQoImVuZFRpbWUiLCBp
LT5lbmRUaW1lKTsKKyAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKGktPnN0YXJ0VGltZSk7Cisg
ICAgICAgIHJlY29yZC0+c2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVH
Q0V2ZW50RGF0YShpLT5jb2xsZWN0ZWRCeXRlcykpOworICAgICAgICByZWNvcmQtPnNldE51bWJl
cigiZW5kVGltZSIsIGktPmVuZFRpbWUpOwogICAgICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJl
Y29yZCwgR0NFdmVudFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAgICAgfQogfQpAQCAtODMsNyArODMs
NyBAQCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp+SW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpCiAK
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENhbGxGdW5jdGlvbihjb25zdCBTdHJp
bmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKQogewotICAgIHB1c2hDdXJyZW50UmVjb3Jk
KFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRnVuY3Rpb25DYWxsRGF0YShtX2Zyb250ZW5k
LCBzY3JpcHROYW1lLCBzY3JpcHRMaW5lKSwgRnVuY3Rpb25DYWxsVGltZWxpbmVSZWNvcmRUeXBl
KTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUZ1
bmN0aW9uQ2FsbERhdGEoc2NyaXB0TmFtZSwgc2NyaXB0TGluZSksIEZ1bmN0aW9uQ2FsbFRpbWVs
aW5lUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ2Fs
bEZ1bmN0aW9uKCkKQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRDYWxsRnVuY3Rpb24oKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxE
aXNwYXRjaEV2ZW50KGNvbnN0IEV2ZW50JiBldmVudCkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29y
ZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUV2ZW50RGlzcGF0Y2hEYXRhKG1fZnJvbnRl
bmQsIGV2ZW50KSwKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZUV2ZW50RGlzcGF0Y2hEYXRhKGV2ZW50KSwKICAgICAgICAgRXZlbnREaXNwYXRjaFRp
bWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZERpc3BhdGNoRXZlbnQoKQogCiB2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OndpbGxMYXlvdXQoKQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKG1fZnJvbnRl
bmQtPm5ld1NjcmlwdE9iamVjdCgpLCBMYXlvdXRUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHB1
c2hDdXJyZW50UmVjb3JkKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCksIExheW91dFRpbWVsaW5l
UmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTGF5b3V0
KCkKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZExh
eW91dCgpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFJlY2FsY3VsYXRlU3R5
bGUoKQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKG1fZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVj
dCgpLCBSZWNhbGN1bGF0ZVN0eWxlc1RpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgcHVzaEN1cnJl
bnRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgUmVjYWxjdWxhdGVTdHlsZXNUaW1l
bGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJl
Y2FsY3VsYXRlU3R5bGUoKQpAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6ZGlkUmVjYWxjdWxhdGVTdHlsZSgpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6d2lsbFBhaW50KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgcHVzaEN1cnJlbnRS
ZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYWludERhdGEobV9mcm9udGVuZCwg
cmVjdCksIFBhaW50VGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhaW50RGF0YShyZWN0KSwgUGFpbnRUaW1lbGlu
ZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFBhaW50
KCkKQEAgLTEzNCwxNCArMTM0LDE0IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlk
UGFpbnQoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxXcml0ZUhUTUwodW5z
aWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSkKIHsKLSAgICBwdXNoQ3Vy
cmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhcnNlSFRNTERhdGEobV9m
cm9udGVuZCwgbGVuZ3RoLCBzdGFydExpbmUpLCBQYXJzZUhUTUxUaW1lbGluZVJlY29yZFR5cGUp
OworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFy
c2VIVE1MRGF0YShsZW5ndGgsIHN0YXJ0TGluZSksIFBhcnNlSFRNTFRpbWVsaW5lUmVjb3JkVHlw
ZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkV3JpdGVIVE1MKHVuc2ln
bmVkIGludCBlbmRMaW5lKQogewogICAgIGlmICghbV9yZWNvcmRTdGFjay5pc0VtcHR5KCkpIHsK
ICAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeSBlbnRyeSA9IG1fcmVjb3JkU3RhY2subGFzdCgp
OwotICAgICAgICBlbnRyeS5kYXRhLnNldCgiZW5kTGluZSIsIGVuZExpbmUpOworICAgICAgICBl
bnRyeS5kYXRhLT5zZXROdW1iZXIoImVuZExpbmUiLCBlbmRMaW5lKTsKICAgICAgICAgZGlkQ29t
cGxldGVDdXJyZW50UmVjb3JkKFBhcnNlSFRNTFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAgICAgfQog
fQpAQCAtMTQ5LDIyICsxNDksMjIgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRX
cml0ZUhUTUwodW5zaWduZWQgaW50IGVuZExpbmUpCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmRpZEluc3RhbGxUaW1lcihpbnQgdGltZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xl
U2hvdCkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKLSAgICBTY3JpcHRPYmplY3QgcmVj
b3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRl
bmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKLSAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1lckluc3RhbGxEYXRhKG1fZnJvbnRlbmQsIHRpbWVy
SWQsIHRpbWVvdXQsIHNpbmdsZVNob3QpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBy
ZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoV1RGOjpj
dXJyZW50VGltZU1TKCkpOworICAgIHJlY29yZC0+c2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVUaW1lckluc3RhbGxEYXRhKHRpbWVySWQsIHRpbWVvdXQsIHNpbmdsZVNo
b3QpKTsKICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCwgVGltZXJJbnN0YWxsVGltZWxp
bmVSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZW1v
dmVUaW1lcihpbnQgdGltZXJJZCkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKLSAgICBT
Y3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmlj
UmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKLSAgICByZWNvcmQuc2V0
KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJEYXRhKG1f
ZnJvbnRlbmQsIHRpbWVySWQpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQg
PSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoV1RGOjpjdXJyZW50
VGltZU1TKCkpOworICAgIHJlY29yZC0+c2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVHZW5lcmljVGltZXJEYXRhKHRpbWVySWQpKTsKICAgICBhZGRSZWNvcmRUb1RpbWVs
aW5lKHJlY29yZCwgVGltZXJSZW1vdmVUaW1lbGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxGaXJlVGltZXIoaW50IHRpbWVySWQpCiB7Ci0gICAg
cHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGlt
ZXJEYXRhKG1fZnJvbnRlbmQsIHRpbWVySWQpLCBUaW1lckZpcmVUaW1lbGluZVJlY29yZFR5cGUp
OyAKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdl
bmVyaWNUaW1lckRhdGEodGltZXJJZCksIFRpbWVyRmlyZVRpbWVsaW5lUmVjb3JkVHlwZSk7CiB9
CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmlyZVRpbWVyKCkKQEAgLTE3NCw3
ICsxNzQsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEZpcmVUaW1lcigpCiAK
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENoYW5nZVhIUlJlYWR5U3RhdGUoY29u
c3QgU3RyaW5nJiB1cmwsIGludCByZWFkeVN0YXRlKQogewotICAgIHB1c2hDdXJyZW50UmVjb3Jk
KFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSUmVhZHlTdGF0ZUNoYW5nZURhdGEobV9m
cm9udGVuZCwgdXJsLCByZWFkeVN0YXRlKSwgWEhSUmVhZHlTdGF0ZUNoYW5nZVJlY29yZFR5cGUp
OworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhS
UmVhZHlTdGF0ZUNoYW5nZURhdGEodXJsLCByZWFkeVN0YXRlKSwgWEhSUmVhZHlTdGF0ZUNoYW5n
ZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENoYW5n
ZVhIUlJlYWR5U3RhdGUoKQpAQCAtMTg0LDcgKzE4NCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6ZGlkQ2hhbmdlWEhSUmVhZHlTdGF0ZSgpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6d2lsbExvYWRYSFIoY29uc3QgU3RyaW5nJiB1cmwpIAogewotICAgIHB1c2hDdXJy
ZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSTG9hZERhdGEobV9mcm9u
dGVuZCwgdXJsKSwgWEhSTG9hZFJlY29yZFR5cGUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSTG9hZERhdGEodXJsKSwgWEhSTG9hZFJlY29y
ZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZExvYWRYSFIoKQpA
QCAtMTk0LDcgKzE5NCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTG9hZFhI
UigpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbEV2YWx1YXRlU2NyaXB0KGNv
bnN0IFN0cmluZyYgdXJsLCBpbnQgbGluZU51bWJlcikKIHsKLSAgICBwdXNoQ3VycmVudFJlY29y
ZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUV2YWx1YXRlU2NyaXB0RGF0YShtX2Zyb250
ZW5kLCB1cmwsIGxpbmVOdW1iZXIpLCBFdmFsdWF0ZVNjcmlwdFRpbWVsaW5lUmVjb3JkVHlwZSk7
CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmFs
dWF0ZVNjcmlwdERhdGEodXJsLCBsaW5lTnVtYmVyKSwgRXZhbHVhdGVTY3JpcHRUaW1lbGluZVJl
Y29yZFR5cGUpOwogfQogICAgIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRFdmFs
dWF0ZVNjcmlwdCgpCkBAIC0yMDUsOSArMjA1LDkgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRFdmFsdWF0ZVNjcmlwdCgpCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRp
ZFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIHB1c2hH
Q0V2ZW50UmVjb3JkcygpOwotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29y
ZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGlt
ZU1TKCkpOwotICAgIHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZVNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0RGF0YShtX2Zyb250ZW5kLCB1cmwpKTsKLSAgICBy
ZWNvcmQuc2V0KCJ0eXBlIiwgU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3RUaW1lbGluZVJlY29yZFR5
cGUpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAg
cmVjb3JkLT5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVNjaGVkdWxl
UmVzb3VyY2VSZXF1ZXN0RGF0YSh1cmwpKTsKKyAgICByZWNvcmQtPnNldE51bWJlcigidHlwZSIs
IFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0VGltZWxpbmVSZWNvcmRUeXBlKTsKICAgICBhZGRSZWNv
cmRUb1RpbWVsaW5lKHJlY29yZCwgU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3RUaW1lbGluZVJlY29y
ZFR5cGUpOwogfQogCkBAIC0yMTUsMTYgKzIxNSwxNiBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OndpbGxTZW5kUmVzb3VyY2VSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
YgogICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBwdXNoR0NFdmVu
dFJlY29yZHMoKTsKLSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygp
KTsKLSAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVS
ZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YShtX2Zyb250ZW5kLCBpZGVudGlmaWVyLCBpc01haW5SZXNv
dXJjZSwgcmVxdWVzdCkpOwotICAgIHJlY29yZC5zZXQoInR5cGUiLCBSZXNvdXJjZVNlbmRSZXF1
ZXN0VGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNv
cmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoV1RGOjpjdXJy
ZW50VGltZU1TKCkpOworICAgIHJlY29yZC0+c2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YShpZGVudGlmaWVyLCBpc01haW5SZXNv
dXJjZSwgcmVxdWVzdCkpOworICAgIHJlY29yZC0+c2V0TnVtYmVyKCJ0eXBlIiwgUmVzb3VyY2VT
ZW5kUmVxdWVzdFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAgICAgc2V0SGVhcFNpemVTdGF0aXN0aWMo
cmVjb3JkKTsKICAgICBtX2Zyb250ZW5kLT5hZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCk7CiB9
CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFJlY2VpdmVSZXNvdXJjZURhdGEo
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVjZWl2ZVJlc291cmNlRGF0YShtX2Zyb250ZW5kLCBp
ZGVudGlmaWVyKSwgUmVjZWl2ZVJlc291cmNlRGF0YVRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAg
cHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZWNlaXZlUmVz
b3VyY2VEYXRhKGlkZW50aWZpZXIpLCBSZWNlaXZlUmVzb3VyY2VEYXRhVGltZWxpbmVSZWNvcmRU
eXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZWNlaXZlUmVzb3Vy
Y2VEYXRhKCkKQEAgLTIzNCw3ICsyMzQsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZFJlY2VpdmVSZXNvdXJjZURhdGEoKQogICAgIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50Ojp3aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSAgICBwdXNoQ3VycmVudFJl
Y29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlUmVjZWl2ZVJlc3BvbnNl
RGF0YShtX2Zyb250ZW5kLCBpZGVudGlmaWVyLCByZXNwb25zZSksIFJlc291cmNlUmVjZWl2ZVJl
c3BvbnNlVGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlUmVjZWl2ZVJlc3BvbnNlRGF0YShpZGVudGlm
aWVyLCByZXNwb25zZSksIFJlc291cmNlUmVjZWl2ZVJlc3BvbnNlVGltZWxpbmVSZWNvcmRUeXBl
KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZWNlaXZlUmVzb3VyY2VS
ZXNwb25zZSgpCkBAIC0yNDUsOSArMjQ1LDkgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSgpCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGJv
b2wgZGlkRmFpbCkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKLSAgICBTY3JpcHRPYmpl
Y3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1f
ZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKLSAgICByZWNvcmQuc2V0KCJkYXRhIiwg
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZUZpbmlzaERhdGEobV9mcm9udGVu
ZCwgaWRlbnRpZmllciwgZGlkRmFpbCkpOwotICAgIHJlY29yZC5zZXQoInR5cGUiLCBSZXNvdXJj
ZUZpbmlzaFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
cmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKFdURjo6
Y3VycmVudFRpbWVNUygpKTsKKyAgICByZWNvcmQtPnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKGlkZW50aWZpZXIsIGRpZEZhaWwpKTsK
KyAgICByZWNvcmQtPnNldE51bWJlcigidHlwZSIsIFJlc291cmNlRmluaXNoVGltZWxpbmVSZWNv
cmRUeXBlKTsKICAgICBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhyZWNvcmQpOwogICAgIG1fZnJvbnRl
bmQtPmFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkKTsKIH0KQEAgLTI1NSwyMiArMjU1LDIyIEBA
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlk
TWFya1RpbWVsaW5lKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBwdXNoR0NFdmVudFJl
Y29yZHMoKTsKLSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsK
LSAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVNYXJr
VGltZWxpbmVEYXRhKG1fZnJvbnRlbmQsIG1lc3NhZ2UpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNv
cmQoV1RGOjpjdXJyZW50VGltZU1TKCkpOworICAgIHJlY29yZC0+c2V0KCJkYXRhIiwgVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVNYXJrVGltZWxpbmVEYXRhKG1lc3NhZ2UpKTsKICAgICBh
ZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCwgTWFya1RpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTWFya0RPTUNvbnRlbnRFdmVudCgpCiB7
CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6
OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0g
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKFdURjo6Y3VycmVudFRp
bWVNUygpKTsKICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCwgTWFya0RPTUNvbnRlbnRF
dmVudFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZE1hcmtMb2Fk
RXZlbnQoKQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwotICAgIFNjcmlwdE9iamVjdCBy
ZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9u
dGVuZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChXVEY6
OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIE1hcmtM
b2FkRXZlbnRUeXBlKTsKIH0KIApAQCAtMjc5LDMyICsyNzksMzIgQEAgdm9pZCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpyZXNldCgpCiAgICAgbV9yZWNvcmRTdGFjay5jbGVhcigpOwogfQogCi12
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChJbnNw
ZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnJl
c2V0RnJvbnRlbmRQcm94eU9iamVjdChJbnNwZWN0b3JGcm9udGVuZDIqIGZyb250ZW5kKQogewog
ICAgIEFTU0VSVChmcm9udGVuZCk7CiAgICAgcmVzZXQoKTsKICAgICBtX2Zyb250ZW5kID0gZnJv
bnRlbmQ7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6YWRkUmVjb3JkVG9UaW1l
bGluZShTY3JpcHRPYmplY3QgcmVjb3JkLCBUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkKK3ZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6YWRkUmVjb3JkVG9UaW1lbGluZShjb25zdCBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiYgcmVjb3JkLCBUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkKIHsKLSAg
ICByZWNvcmQuc2V0KCJ0eXBlIiwgdHlwZSk7CisgICAgcmVjb3JkLT5zZXROdW1iZXIoInR5cGUi
LCB0eXBlKTsKICAgICBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhyZWNvcmQpOwogICAgIGlmIChtX3Jl
Y29yZFN0YWNrLmlzRW1wdHkoKSkKICAgICAgICAgbV9mcm9udGVuZC0+YWRkUmVjb3JkVG9UaW1l
bGluZShyZWNvcmQpOwogICAgIGVsc2UgewogICAgICAgICBUaW1lbGluZVJlY29yZEVudHJ5IHBh
cmVudCA9IG1fcmVjb3JkU3RhY2subGFzdCgpOwotICAgICAgICBwYXJlbnQuY2hpbGRyZW4uc2V0
KHBhcmVudC5jaGlsZHJlbi5sZW5ndGgoKSwgcmVjb3JkKTsKKyAgICAgICAgcGFyZW50LmNoaWxk
cmVuLT5wdXNoKHJlY29yZCk7CiAgICAgfQogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKFNjcmlwdE9iamVjdCByZWNvcmQpCit2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKGNvbnN0IFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+JiByZWNvcmQpCiB7CiAgICAgc2l6ZV90IHVzZWRIZWFwU2l6ZSA9IDA7CiAg
ICAgc2l6ZV90IHRvdGFsSGVhcFNpemUgPSAwOwogICAgIFNjcmlwdEdDRXZlbnQ6OmdldEhlYXBT
aXplKHVzZWRIZWFwU2l6ZSwgdG90YWxIZWFwU2l6ZSk7Ci0gICAgcmVjb3JkLnNldCgidXNlZEhl
YXBTaXplIiwgdXNlZEhlYXBTaXplKTsKLSAgICByZWNvcmQuc2V0KCJ0b3RhbEhlYXBTaXplIiwg
dG90YWxIZWFwU2l6ZSk7CisgICAgcmVjb3JkLT5zZXROdW1iZXIoInVzZWRIZWFwU2l6ZSIsIHVz
ZWRIZWFwU2l6ZSk7CisgICAgcmVjb3JkLT5zZXROdW1iZXIoInRvdGFsSGVhcFNpemUiLCB0b3Rh
bEhlYXBTaXplKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21wbGV0
ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlIHR5cGUpCkBAIC0zMTYsMTggKzMxNiwx
OCBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29y
ZChUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkKICAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeSBl
bnRyeSA9IG1fcmVjb3JkU3RhY2subGFzdCgpOwogICAgICAgICBtX3JlY29yZFN0YWNrLnJlbW92
ZUxhc3QoKTsKICAgICAgICAgQVNTRVJUKGVudHJ5LnR5cGUgPT0gdHlwZSk7Ci0gICAgICAgIGVu
dHJ5LnJlY29yZC5zZXQoImRhdGEiLCBlbnRyeS5kYXRhKTsKLSAgICAgICAgZW50cnkucmVjb3Jk
LnNldCgiY2hpbGRyZW4iLCBlbnRyeS5jaGlsZHJlbik7Ci0gICAgICAgIGVudHJ5LnJlY29yZC5z
ZXQoImVuZFRpbWUiLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgICAgIGVudHJ5LnJlY29y
ZC0+c2V0KCJkYXRhIiwgZW50cnkuZGF0YSk7CisgICAgICAgIGVudHJ5LnJlY29yZC0+c2V0KCJj
aGlsZHJlbiIsIGVudHJ5LmNoaWxkcmVuKTsKKyAgICAgICAgZW50cnkucmVjb3JkLT5zZXROdW1i
ZXIoImVuZFRpbWUiLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAgICAgIGFkZFJlY29yZFRv
VGltZWxpbmUoZW50cnkucmVjb3JkLCB0eXBlKTsKICAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6cHVzaEN1cnJlbnRSZWNvcmQoU2NyaXB0T2JqZWN0IGRhdGEsIFRpbWVs
aW5lUmVjb3JkVHlwZSB0eXBlKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ3Vy
cmVudFJlY29yZChjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgZGF0YSwgVGltZWxpbmVS
ZWNvcmRUeXBlIHR5cGUpCiB7CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2NyaXB0
T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29y
ZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7Ci0gICAgbV9yZWNvcmRTdGFjay5h
cHBlbmQoVGltZWxpbmVSZWNvcmRFbnRyeShyZWNvcmQsIGRhdGEsIG1fZnJvbnRlbmQtPm5ld1Nj
cmlwdEFycmF5KCksIHR5cGUpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQg
PSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoV1RGOjpjdXJyZW50
VGltZU1TKCkpOworICAgIG1fcmVjb3JkU3RhY2suYXBwZW5kKFRpbWVsaW5lUmVjb3JkRW50cnko
cmVjb3JkLCBkYXRhLCBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCksIHR5cGUpKTsKIH0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oCmluZGV4IGZlMzM0YmUuLjEwZThhNjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTM0LDE2ICszNCwxNSBAQAogI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkluc3BlY3RvclZhbHVl
cy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTY3Jp
cHRHQ0V2ZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0R0NFdmVudExpc3RlbmVyLmgiCi0jaW5jbHVk
ZSAiU2NyaXB0T2JqZWN0LmgiCi0jaW5jbHVkZSAiU2NyaXB0QXJyYXkuaCIKICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEV2ZW50OwotY2xhc3Mg
SW5zcGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDI7CiBjbGFzcyBJbnRS
ZWN0OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKQEAg
LTc1LDExICs3NCwxMSBAQCBlbnVtIFRpbWVsaW5lUmVjb3JkVHlwZSB7CiAKIGNsYXNzIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQgOiBTY3JpcHRHQ0V2ZW50TGlzdGVuZXIsIHB1YmxpYyBOb25jb3B5
YWJsZSB7CiBwdWJsaWM6Ci0gICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnNwZWN0b3JGcm9u
dGVuZCogZnJvbnRlbmQpOworICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zcGVjdG9yRnJv
bnRlbmQyKiBmcm9udGVuZCk7CiAgICAgfkluc3BlY3RvclRpbWVsaW5lQWdlbnQoKTsKIAogICAg
IHZvaWQgcmVzZXQoKTsKLSAgICB2b2lkIHJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChJbnNwZWN0
b3JGcm9udGVuZCopOworICAgIHZvaWQgcmVzZXRGcm9udGVuZFByb3h5T2JqZWN0KEluc3BlY3Rv
ckZyb250ZW5kMiopOwogCiAgICAgLy8gTWV0aG9kcyBjYWxsZWQgZnJvbSBXZWJDb3JlLgogICAg
IHZvaWQgd2lsbENhbGxGdW5jdGlvbihjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3Jp
cHRMaW5lKTsKQEAgLTEzNCwyNiArMTMzLDI2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBz
dHJ1Y3QgVGltZWxpbmVSZWNvcmRFbnRyeSB7Ci0gICAgICAgIFRpbWVsaW5lUmVjb3JkRW50cnko
U2NyaXB0T2JqZWN0IHJlY29yZCwgU2NyaXB0T2JqZWN0IGRhdGEsIFNjcmlwdEFycmF5IGNoaWxk
cmVuLCBUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkKKyAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRy
eShjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgcmVjb3JkLCBjb25zdCBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiYgZGF0YSwgY29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5PiYgY2hpbGRy
ZW4sIFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlKQogICAgICAgICAgICAgOiByZWNvcmQocmVjb3Jk
KSwgZGF0YShkYXRhKSwgY2hpbGRyZW4oY2hpbGRyZW4pLCB0eXBlKHR5cGUpCiAgICAgICAgIHsK
ICAgICAgICAgfQotICAgICAgICBTY3JpcHRPYmplY3QgcmVjb3JkOwotICAgICAgICBTY3JpcHRP
YmplY3QgZGF0YTsKLSAgICAgICAgU2NyaXB0QXJyYXkgY2hpbGRyZW47CisgICAgICAgIFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZDsKKyAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gZGF0YTsKKyAgICAgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiBjaGlsZHJlbjsKICAgICAg
ICAgVGltZWxpbmVSZWNvcmRUeXBlIHR5cGU7CiAgICAgfTsKICAgICAgICAgCi0gICAgdm9pZCBw
dXNoQ3VycmVudFJlY29yZChTY3JpcHRPYmplY3QsIFRpbWVsaW5lUmVjb3JkVHlwZSk7Ci0gICAg
dm9pZCBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhTY3JpcHRPYmplY3QgcmVjb3JkKTsKKyAgICB2b2lk
IHB1c2hDdXJyZW50UmVjb3JkKGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiwgVGltZWxp
bmVSZWNvcmRUeXBlKTsKKyAgICB2b2lkIHNldEhlYXBTaXplU3RhdGlzdGljKGNvbnN0IFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+JiByZWNvcmQpOwogICAgICAgICAKICAgICB2b2lkIGRpZENvbXBs
ZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGUpOwogCi0gICAgdm9pZCBhZGRSZWNv
cmRUb1RpbWVsaW5lKFNjcmlwdE9iamVjdCwgVGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICB2b2lk
IGFkZFJlY29yZFRvVGltZWxpbmUoY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mLCBUaW1l
bGluZVJlY29yZFR5cGUpOwogCiAgICAgdm9pZCBwdXNoR0NFdmVudFJlY29yZHMoKTsKIAotICAg
IEluc3BlY3RvckZyb250ZW5kKiBtX2Zyb250ZW5kOworICAgIEluc3BlY3RvckZyb250ZW5kMiog
bV9mcm9udGVuZDsKIAogICAgIFZlY3RvcjxUaW1lbGluZVJlY29yZEVudHJ5PiBtX3JlY29yZFN0
YWNrOwogICAgIHN0YXRpYyBpbnQgc19pbnN0YW5jZUNvdW50OwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9y
L1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKaW5kZXggYmRiNWYzZC4uZWRiNTE4MSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAorKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCkBAIC0zNSwxNTEgKzM1
LDE1MiBAQAogCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVu
ZC5oIgorI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNl
LmgiCiAjaW5jbHVkZSAiU2NyaXB0QXJyYXkuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2su
aCIKLSNpbmNsdWRlICJTY3JpcHRPYmplY3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1T
Y3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKElu
c3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgZG91YmxlIHN0YXJ0VGltZSkKK1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChk
b3VibGUgc3RhcnRUaW1lKQogewotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBmcm9udGVuZC0+
bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgcmVjb3JkLnNldCgic3RhcnRUaW1lIiwgc3RhcnRUaW1l
KTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBJbnNwZWN0b3JPYmplY3Q6
OmNyZWF0ZSgpOworICAgIHJlY29yZC0+c2V0TnVtYmVyKCJzdGFydFRpbWUiLCBzdGFydFRpbWUp
OwogCi0gICAgU2NyaXB0QXJyYXkgc3RhY2tUcmFjZTsKLSAgICBpZiAoU2NyaXB0Q2FsbFN0YWNr
OjpzdGFja1RyYWNlKDUsIGZyb250ZW5kLT5zY3JpcHRTdGF0ZSgpLCBzdGFja1RyYWNlKSkKLSAg
ICAgICAgcmVjb3JkLnNldCgic3RhY2tUcmFjZSIsIHN0YWNrVHJhY2UpOworICAgIFJlZlB0cjxJ
bnNwZWN0b3JBcnJheT4gc3RhY2tUcmFjZSA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKKyAg
ICBpZiAoU2NyaXB0Q2FsbFN0YWNrOjpzdGFja1RyYWNlKDUsIHN0YWNrVHJhY2UpKSB7CisgICAg
ICAgIHJlY29yZC0+c2V0KCJzdGFja1RyYWNlIiwgc3RhY2tUcmFjZSk7CisgICAgfQogICAgIHJl
dHVybiByZWNvcmQ7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUdDRXZlbnREYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3Qgc2l6ZV90
IHVzZWRIZWFwU2l6ZURlbHRhKQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVHQ0V2ZW50RGF0YShjb25zdCBzaXplX3QgdXNlZEhlYXBTaXplRGVs
dGEpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0
KCk7Ci0gICAgZGF0YS5zZXQoInVzZWRIZWFwU2l6ZURlbHRhIiwgdXNlZEhlYXBTaXplRGVsdGEp
OworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpOworICAgIGRhdGEtPnNldE51bWJlcigidXNlZEhlYXBTaXplRGVsdGEiLCB1c2VkSGVh
cFNpemVEZWx0YSk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUZ1bmN0aW9uQ2FsbERhdGEoSW5zcGVjdG9yRnJvbnRlbmQq
IGZyb250ZW5kLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKQorUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVGdW5jdGlv
bkNhbGxEYXRhKGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUpCiB7Ci0g
ICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAg
ZGF0YS5zZXQoInNjcmlwdE5hbWUiLCBzY3JpcHROYW1lKTsKLSAgICBkYXRhLnNldCgic2NyaXB0
TGluZSIsIHNjcmlwdExpbmUpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJ
bnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldFN0cmluZygic2NyaXB0TmFt
ZSIsIHNjcmlwdE5hbWUpOworICAgIGRhdGEtPnNldE51bWJlcigic2NyaXB0TGluZSIsIHNjcmlw
dExpbmUpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVFdmVudERpc3BhdGNoRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJv
bnRlbmQsIGNvbnN0IEV2ZW50JiBldmVudCkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZlbnREaXNwYXRjaERhdGEoY29uc3QgRXZlbnQmIGV2
ZW50KQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVj
dCgpOwotICAgIGRhdGEuc2V0KCJ0eXBlIiwgZXZlbnQudHlwZSgpLnN0cmluZygpKTsKKyAgICBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsK
KyAgICBkYXRhLT5zZXRTdHJpbmcoInR5cGUiLCBldmVudC50eXBlKCkuc3RyaW5nKCkpOwogICAg
IHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5Ojpj
cmVhdGVHZW5lcmljVGltZXJEYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgaW50IHRp
bWVySWQpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUdlbmVyaWNUaW1lckRhdGEoaW50IHRpbWVySWQpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRh
dGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQoInRpbWVySWQi
LCB0aW1lcklkKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9y
T2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoInRpbWVySWQiLCB0aW1lcklk
KTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlVGltZXJJbnN0YWxsRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQs
IGludCB0aW1lcklkLCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQorUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1lckluc3RhbGxEYXRh
KGludCB0aW1lcklkLCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQogewotICAgIFNjcmlw
dE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0
KCJ0aW1lcklkIiwgdGltZXJJZCk7Ci0gICAgZGF0YS5zZXQoInRpbWVvdXQiLCB0aW1lb3V0KTsK
LSAgICBkYXRhLnNldCgic2luZ2xlU2hvdCIsIHNpbmdsZVNob3QpOworICAgIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEt
PnNldE51bWJlcigidGltZXJJZCIsIHRpbWVySWQpOworICAgIGRhdGEtPnNldE51bWJlcigidGlt
ZW91dCIsIHRpbWVvdXQpOworICAgIGRhdGEtPnNldEJvb2woInNpbmdsZVNob3QiLCBzaW5nbGVT
aG90KTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlWEhSUmVhZHlTdGF0ZUNoYW5nZURhdGEoSW5zcGVjdG9yRnJvbnRlbmQq
IGZyb250ZW5kLCBjb25zdCBTdHJpbmcmIHVybCwgaW50IHJlYWR5U3RhdGUpCitSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUlJlYWR5U3RhdGVD
aGFuZ2VEYXRhKGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgcmVhZHlTdGF0ZSkKIHsKLSAgICBTY3Jp
cHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNl
dCgidXJsIiwgdXJsKTsKLSAgICBkYXRhLnNldCgicmVhZHlTdGF0ZSIsIHJlYWR5U3RhdGUpOwor
ICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0
ZSgpOworICAgIGRhdGEtPnNldFN0cmluZygidXJsIiwgdXJsKTsKKyAgICBkYXRhLT5zZXROdW1i
ZXIoInJlYWR5U3RhdGUiLCByZWFkeVN0YXRlKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2Ny
aXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSTG9hZERhdGEoSW5zcGVj
dG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBTdHJpbmcmIHVybCkKK1JlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSTG9hZERhdGEoY29uc3Qg
U3RyaW5nJiB1cmwpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2Ny
aXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQoInVybCIsIHVybCk7CisgICAgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+
c2V0U3RyaW5nKCJ1cmwiLCB1cmwpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmpl
Y3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmFsdWF0ZVNjcmlwdERhdGEoSW5zcGVj
dG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGxpbmVOdW1i
ZXIpIAorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVFdmFsdWF0ZVNjcmlwdERhdGEoY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBsaW5lTnVtYmVy
KQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgp
OwotICAgIGRhdGEuc2V0KCJ1cmwiLCB1cmwpOwotICAgIGRhdGEuc2V0KCJsaW5lTnVtYmVyIiwg
bGluZU51bWJlcik7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rv
ck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0U3RyaW5nKCJ1cmwiLCB1cmwpOworICAg
IGRhdGEtPnNldE51bWJlcigibGluZU51bWJlciIsIGxpbmVOdW1iZXIpOwogICAgIHJldHVybiBk
YXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVNYXJr
VGltZWxpbmVEYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKSAKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlTWFya1RpbWVsaW5lRGF0YShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgU2Ny
aXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5z
ZXQoIm1lc3NhZ2UiLCBtZXNzYWdlKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRh
ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXRTdHJpbmcoIm1lc3Nh
Z2UiLCBtZXNzYWdlKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3REYXRhKEluc3Bl
Y3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3QgU3RyaW5nJiB1cmwpCitSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVNjaGVkdWxlUmVzb3VyY2VS
ZXF1ZXN0RGF0YShjb25zdCBTdHJpbmcmIHVybCkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9
IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgidXJsIiwgdXJsKTsK
KyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVh
dGUoKTsKKyAgICBkYXRhLT5zZXRTdHJpbmcoInVybCIsIHVybCk7CiAgICAgcmV0dXJuIGRhdGE7
CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNl
U2VuZFJlcXVlc3REYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBib29sIGlzTWFpblJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZVJlc291cmNlU2VuZFJlcXVlc3REYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
Ym9vbCBpc01haW5SZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewot
ICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAg
IGRhdGEuc2V0KCJpZGVudGlmaWVyIiwgaWRlbnRpZmllcik7Ci0gICAgZGF0YS5zZXQoInVybCIs
IHJlcXVlc3QudXJsKCkuc3RyaW5nKCkpOwotICAgIGRhdGEuc2V0KCJyZXF1ZXN0TWV0aG9kIiwg
cmVxdWVzdC5odHRwTWV0aG9kKCkpOwotICAgIGRhdGEuc2V0KCJpc01haW5SZXNvdXJjZSIsIGlz
TWFpblJlc291cmNlKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVj
dG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoImlkZW50aWZpZXIiLCBp
ZGVudGlmaWVyKTsKKyAgICBkYXRhLT5zZXRTdHJpbmcoInVybCIsIHJlcXVlc3QudXJsKCkuc3Ry
aW5nKCkpOworICAgIGRhdGEtPnNldFN0cmluZygicmVxdWVzdE1ldGhvZCIsIHJlcXVlc3QuaHR0
cE1ldGhvZCgpKTsKKyAgICBkYXRhLT5zZXRCb29sKCJpc01haW5SZXNvdXJjZSIsIGlzTWFpblJl
c291cmNlKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVj
b3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VEYXRhKEluc3BlY3RvckZy
b250ZW5kKiBmcm9udGVuZCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVj
b3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VEYXRhKHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAg
U2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0
YS5zZXQoImlkZW50aWZpZXIiLCBpZGVudGlmaWVyKTsKLSAgICBkYXRhLnNldCgic3RhdHVzQ29k
ZSIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOwotICAgIGRhdGEuc2V0KCJtaW1lVHlwZSIs
IHJlc3BvbnNlLm1pbWVUeXBlKCkpOwotICAgIGRhdGEuc2V0KCJleHBlY3RlZENvbnRlbnRMZW5n
dGgiLCByZXNwb25zZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKSk7CisgICAgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+
c2V0TnVtYmVyKCJpZGVudGlmaWVyIiwgaWRlbnRpZmllcik7CisgICAgZGF0YS0+c2V0TnVtYmVy
KCJzdGF0dXNDb2RlIiwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CisgICAgZGF0YS0+c2V0
U3RyaW5nKCJtaW1lVHlwZSIsIHJlc3BvbnNlLm1pbWVUeXBlKCkpOworICAgIGRhdGEtPnNldE51
bWJlcigiZXhwZWN0ZWRDb250ZW50TGVuZ3RoIiwgcmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVu
Z3RoKCkpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZUZpbmlzaERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZy
b250ZW5kLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGJvb2wgZGlkRmFpbCkKK1JlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VGaW5p
c2hEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgYm9vbCBkaWRGYWlsKQogewotICAgIFNj
cmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEu
c2V0KCJpZGVudGlmaWVyIiwgaWRlbnRpZmllcik7Ci0gICAgZGF0YS5zZXQoImRpZEZhaWwiLCBk
aWRGYWlsKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoImlkZW50aWZpZXIiLCBpZGVudGlm
aWVyKTsKKyAgICBkYXRhLT5zZXRCb29sKCJkaWRGYWlsIiwgZGlkRmFpbCk7CiAgICAgcmV0dXJu
IGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJl
Y2VpdmVSZXNvdXJjZURhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZh
Y3Rvcnk6OmNyZWF0ZVJlY2VpdmVSZXNvdXJjZURhdGEodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
KQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgp
OwotICAgIGRhdGEuc2V0KCJpZGVudGlmaWVyIiwgaWRlbnRpZmllcik7CisgICAgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0
YS0+c2V0TnVtYmVyKCJpZGVudGlmaWVyIiwgaWRlbnRpZmllcik7CiAgICAgcmV0dXJuIGRhdGE7
CiB9CiAgICAgCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYWlu
dERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBJbnRSZWN0JiByZWN0KQor
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYWlu
dERhdGEoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZy
b250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgieCIsIHJlY3QueCgpKTsK
LSAgICBkYXRhLnNldCgieSIsIHJlY3QueSgpKTsKLSAgICBkYXRhLnNldCgid2lkdGgiLCByZWN0
LndpZHRoKCkpOwotICAgIGRhdGEuc2V0KCJoZWlnaHQiLCByZWN0LmhlaWdodCgpKTsKKyAgICBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsK
KyAgICBkYXRhLT5zZXROdW1iZXIoIngiLCByZWN0LngoKSk7CisgICAgZGF0YS0+c2V0TnVtYmVy
KCJ5IiwgcmVjdC55KCkpOworICAgIGRhdGEtPnNldE51bWJlcigid2lkdGgiLCByZWN0LndpZHRo
KCkpOworICAgIGRhdGEtPnNldE51bWJlcigiaGVpZ2h0IiwgcmVjdC5oZWlnaHQoKSk7CiAgICAg
cmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZVBhcnNlSFRNTERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCB1bnNpZ25lZCBp
bnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKQorUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYXJzZUhUTUxEYXRhKHVuc2lnbmVkIGlu
dCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRh
dGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQoImxlbmd0aCIs
IGxlbmd0aCk7Ci0gICAgZGF0YS5zZXQoInN0YXJ0TGluZSIsIHN0YXJ0TGluZSk7CisgICAgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Cisg
ICAgZGF0YS0+c2V0TnVtYmVyKCJsZW5ndGgiLCBsZW5ndGgpOworICAgIGRhdGEtPnNldE51bWJl
cigic3RhcnRMaW5lIiwgc3RhcnRMaW5lKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggYi9XZWJDb3Jl
L2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaAppbmRleCBmOTA1ZWNjLi42YjU3YTZk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaAor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaApAQCAtMzcsNDcg
KzM3LDQ3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIEV2ZW50OwogICAgIGNs
YXNzIEluc3BlY3RvckZyb250ZW5kOworICAgIGNsYXNzIEluc3BlY3Rvck9iamVjdDsKICAgICBj
bGFzcyBJbnRSZWN0OwogICAgIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKICAgICBjbGFzcyBSZXNv
dXJjZVJlc3BvbnNlOwotICAgIGNsYXNzIFNjcmlwdE9iamVjdDsKIAogICAgIGNsYXNzIFRpbWVs
aW5lUmVjb3JkRmFjdG9yeSB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgU2NyaXB0T2Jq
ZWN0IGNyZWF0ZUdlbmVyaWNSZWNvcmQoSW5zcGVjdG9yRnJvbnRlbmQqLCBkb3VibGUgc3RhcnRU
aW1lKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUdlbmVy
aWNSZWNvcmQoZG91YmxlIHN0YXJ0VGltZSk7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVj
dCBjcmVhdGVHQ0V2ZW50RGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IHNp
emVfdCB1c2VkSGVhcFNpemVEZWx0YSk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBjcmVhdGVHQ0V2ZW50RGF0YShjb25zdCBzaXplX3QgdXNlZEhlYXBTaXplRGVsdGEp
OwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlRnVuY3Rpb25DYWxsRGF0YShJ
bnNwZWN0b3JGcm9udGVuZCosIGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExp
bmUpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlRnVuY3Rp
b25DYWxsRGF0YShjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKTsKIAot
ICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZUV2ZW50RGlzcGF0Y2hEYXRhKEluc3Bl
Y3RvckZyb250ZW5kKiwgY29uc3QgRXZlbnQmKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IGNyZWF0ZUV2ZW50RGlzcGF0Y2hEYXRhKGNvbnN0IEV2ZW50Jik7CiAKLSAg
ICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVHZW5lcmljVGltZXJEYXRhKEluc3BlY3Rv
ckZyb250ZW5kKiwgaW50IHRpbWVySWQpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gY3JlYXRlR2VuZXJpY1RpbWVyRGF0YShpbnQgdGltZXJJZCk7CiAKLSAgICAgICAg
c3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVUaW1lckluc3RhbGxEYXRhKEluc3BlY3RvckZyb250
ZW5kKiwgaW50IHRpbWVySWQsIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpOworICAgICAg
ICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlVGltZXJJbnN0YWxsRGF0YShp
bnQgdGltZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCk7CiAKLSAgICAgICAgc3Rh
dGljIFNjcmlwdE9iamVjdCBjcmVhdGVYSFJSZWFkeVN0YXRlQ2hhbmdlRGF0YShJbnNwZWN0b3JG
cm9udGVuZCosIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgcmVhZHlTdGF0ZSk7CisgICAgICAgIHN0
YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVYSFJSZWFkeVN0YXRlQ2hhbmdlRGF0
YShjb25zdCBTdHJpbmcmIHVybCwgaW50IHJlYWR5U3RhdGUpOwogCi0gICAgICAgIHN0YXRpYyBT
Y3JpcHRPYmplY3QgY3JlYXRlWEhSTG9hZERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBT
dHJpbmcmIHVybCk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVh
dGVYSFJMb2FkRGF0YShjb25zdCBTdHJpbmcmIHVybCk7CiAKLSAgICAgICAgc3RhdGljIFNjcmlw
dE9iamVjdCBjcmVhdGVFdmFsdWF0ZVNjcmlwdERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBjb25z
dCBTdHJpbmcmLCBkb3VibGUgbGluZU51bWJlcik7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiBjcmVhdGVFdmFsdWF0ZVNjcmlwdERhdGEoY29uc3QgU3RyaW5nJiwgZG91
YmxlIGxpbmVOdW1iZXIpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlTWFy
a1RpbWVsaW5lRGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGNvbnN0IFN0cmluZyYpOworICAgICAg
ICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlTWFya1RpbWVsaW5lRGF0YShj
b25zdCBTdHJpbmcmKTsKIAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVJlc291
cmNlU2VuZFJlcXVlc3REYXRhKEluc3BlY3RvckZyb250ZW5kKiwgdW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLAorICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlUmVz
b3VyY2VTZW5kUmVxdWVzdERhdGEodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLAogICAgICAgICAg
ICAgYm9vbCBpc01haW5SZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAKLSAgICAg
ICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVTY2hlZHVsZVJlc291cmNlUmVxdWVzdERhdGEo
SW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBTdHJpbmcmKTsKKyAgICAgICAgc3RhdGljIFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0RGF0YShjb25z
dCBTdHJpbmcmKTsKIAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVJlc291cmNl
UmVjZWl2ZVJlc3BvbnNlRGF0YShJbnNwZWN0b3JGcm9udGVuZCosIHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworICAgICAgICBzdGF0aWMgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gY3JlYXRlUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VEYXRhKHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogCi0gICAgICAg
IHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlUmVjZWl2ZVJlc291cmNlRGF0YShJbnNwZWN0b3JG
cm9udGVuZCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CisgICAgICAgIHN0YXRpYyBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllcik7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVSZXNv
dXJjZUZpbmlzaERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGJvb2wgZGlkRmFpbCk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBjcmVhdGVSZXNvdXJjZUZpbmlzaERhdGEodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBib29s
IGRpZEZhaWwpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlUGFpbnREYXRh
KEluc3BlY3RvckZyb250ZW5kKiwgY29uc3QgSW50UmVjdCYpOworICAgICAgICBzdGF0aWMgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlUGFpbnREYXRhKGNvbnN0IEludFJlY3QmKTsKIAot
ICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVBhcnNlSFRNTERhdGEoSW5zcGVjdG9y
RnJvbnRlbmQqLCB1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKTsK
KyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVBhcnNlSFRNTERh
dGEodW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSk7CiAKICAgICBw
cml2YXRlOgogICAgICAgICBUaW1lbGluZVJlY29yZEZhY3RvcnkoKSB7IH0KZGlmZiAtLWdpdCBh
L1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZjlmYjI1
MC4uYTcyNGM2YiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wNi0xNiAgSWx5YSBUaWtob25v
dnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViSW5zcGVjdG9yOiBqcyBmdW5jdGlvbiBuYW1lIHdhcyBm
aXhlZC4KKyAgICAgICAgZGlzcGF0Y2hNZXNzYWdlVG9Gcm9udGVuZCAtPiBkaXNwYXRjaE1lc3Nh
Z2VGcm9tQmFja2VuZC4gICAgICAgICAgICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQwNjc1CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNw
ZWN0b3JDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6OnNl
bmRNZXNzYWdlVG9Gcm9udGVuZCk6CisKIDIwMTAtMDYtMTYgIE1hcnRpbiBSb2JpbnNvbiAgPG1y
b2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25o
YSBTaWx2YS4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9y
Q2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50
R3RrLmNwcAppbmRleCA0YmMzYzMyLi42MTY4MzRiIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAgYm9v
bCBJbnNwZWN0b3JDbGllbnQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCiAgICAgaWYgKCFzY3JpcHRDb250cm9sbGVyKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBTdHJpbmcgZGlzcGF0Y2hUb0Zyb250ZW5kKCJXZWJJbnNwZWN0b3IuZGlzcGF0Y2hN
ZXNzYWdlVG9Gcm9udGVuZCgiKTsKKyAgICBTdHJpbmcgZGlzcGF0Y2hUb0Zyb250ZW5kKCJXZWJJ
bnNwZWN0b3IuZGlzcGF0Y2hNZXNzYWdlRnJvbUJhY2tlbmQoIik7CiAgICAgZGlzcGF0Y2hUb0Zy
b250ZW5kICs9IG1lc3NhZ2U7CiAgICAgZGlzcGF0Y2hUb0Zyb250ZW5kICs9ICIpOyI7CiAgICAg
c2NyaXB0Q29udHJvbGxlci0+ZXhlY3V0ZVNjcmlwdChkaXNwYXRjaFRvRnJvbnRlbmQpOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXgg
MDAwM2IyMS4uN2U5Zjc1NSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDYtMTYgIElseWEgVGlr
aG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkluc3BlY3RvcjoganMgZnVuY3Rpb24gbmFtZSB3
YXMgZml4ZWQuCisgICAgICAgIGRpc3BhdGNoTWVzc2FnZVRvRnJvbnRlbmQgLT4gZGlzcGF0Y2hN
ZXNzYWdlRnJvbUJhY2tlbmQuIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDA2NzUKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNs
aWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudFF0OjpzZW5kTWVz
c2FnZVRvRnJvbnRlbmQpOgorCiAyMDEwLTA2LTE3ICBNYXJrIEJyYW5kICA8bWFicmFuZEBtYWJy
YW5kLm5sPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFF0LmNwcCBiL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRRdC5jcHAKaW5kZXggZmRlMDU1Ni4u
NDUwMzExZCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNs
aWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50
UXQuY3BwCkBAIC0xODQsNyArMTg0LDcgQEAgYm9vbCBJbnNwZWN0b3JDbGllbnRRdDo6c2VuZE1l
c3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBpZiAoIXNjcmlwdENv
bnRyb2xsZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFN0cmluZyBkaXNwYXRjaFRv
RnJvbnRlbmQoIldlYkluc3BlY3Rvci5kaXNwYXRjaE1lc3NhZ2VUb0Zyb250ZW5kKCIpOworICAg
IFN0cmluZyBkaXNwYXRjaFRvRnJvbnRlbmQoIldlYkluc3BlY3Rvci5kaXNwYXRjaE1lc3NhZ2VG
cm9tQmFja2VuZCgiKTsKICAgICBkaXNwYXRjaFRvRnJvbnRlbmQgKz0gbWVzc2FnZTsKICAgICBk
aXNwYXRjaFRvRnJvbnRlbmQgKz0gIik7IjsKICAgICBzY3JpcHRDb250cm9sbGVyLT5leGVjdXRl
U2NyaXB0KGRpc3BhdGNoVG9Gcm9udGVuZCk7Cg==
</data>
<flag name="review"
          id="45544"
          type_id="1"
          status="-"
          setter="loislo"
    />
    <flag name="commit-queue"
          id="45545"
          type_id="3"
          status="-"
          setter="loislo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58979</attachid>
            <date>2010-06-17 04:57:16 -0700</date>
            <delta_ts>2010-06-17 07:34:24 -0700</delta_ts>
            <desc>[patch] third iteration. with new files.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>82455</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBhYWZjZGU3Li5hODJjZGZh
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMDYtMTYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE9uIHRoZSB3YXkgdG8gUmVtb3RlIERlYnVnaW5nIHdlIHdhbnQgdG8gc3VwcG9ydCBKU09O
CisgICAgICAgIHNlcmlhbGl6YXRpb24gb24gYm90aCBzaWRlcyBvZiBXZWJJbnNwZWN0b3IgdHJh
bnNwb3J0LiBBcyBmYXIgYXMKKyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmQgY2xhc3MgaXMgYSBz
aW1wbGUgcHJveHkgdG8gV2ViSW5zcGVjdG9yIGl0IHdvdWxkCisgICAgICAgIGJlIGJldHRlciB0
byBnZW5lcmF0ZSBpdCBmcm9tIGFuIElETCBmaWxlLiBXZSBoYXZlIGdlbmVyYXRvcgorICAgICAg
ICBpbmZvc3RydWN0dXJlIGZvciBiaW5kaW5nIGFuZCB3aWxsIHJldXNlIGl0IGZvciBuZXcgZ2Vu
ZXJhdG9yLiBOZXcKKyAgICAgICAga2luZCBvZiBpZGwgZmlsZXMgaXMgaW50cm9kdWNlZDogV2Vi
SW5zcGVjdG9ySW50ZXJmYWNlIHdpdGgKKyAgICAgICAgZXh0ZW5zaW9uICdpbnNwZWN0b3InLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA2NzUKKwor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorCiAyMDEwLTA2LTE3ICBNYXJrIEJyYW5kICA8bWFi
cmFuZEBtYWJyYW5kLm5sPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpk
aWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5hbQppbmRleCBjMmIxYzFj
Li45OGJlZTgwIDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysgYi9HTlVtYWtlZmlsZS5h
bQpAQCAtNTUsNiArNTUsNyBAQCBub2luc3RfSEVBREVSUyA6PQogbm9pbnN0X0xUTElCUkFSSUVT
IDo9CiBsaWJfTElCUkFSSUVTIDo9CiBJRExfQklORElOR1MgOj0KK0lOU1BFQ1RPUl9JTlRFUkZB
Q0VTIDo9CiBURVNUX1BST0dTIDo9CiBQT0ZJTEVTIDo9CiBNT0ZJTEVTIDo9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5
ZjI3ZjUyLi5lM2JmMzdjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI4Nyw2ICsyODcsNyBAQCBTRVQoV2ViQ29yZV9J
RExfRklMRVMKIAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaWRsCiAgICAgaW5z
cGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaWRsCisgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kMi5pbnNwZWN0b3IKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAog
ICAgIGluc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmlkbAogICAgIGluc3BlY3Rvci9TY3Jp
cHRQcm9maWxlLmlkbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MzcyNTQ5Li4xNTFhNmVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEwLTA2LTE2
ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBPbiB0aGUg
d2F5IHRvIFJlbW90ZSBEZWJ1Z2luZyB3ZSB3YW50IHRvIHN1cHBvcnQgSlNPTgorICAgICAgICBz
ZXJpYWxpemF0aW9uIG9uIGJvdGggc2lkZXMgb2YgV2ViSW5zcGVjdG9yIHRyYW5zcG9ydC4gQXMg
ZmFyIGFzCisgICAgICAgIEluc3BlY3RvckZyb250ZW5kIGNsYXNzIGlzIGEgc2ltcGxlIHByb3h5
IHRvIFdlYkluc3BlY3RvciBpdCB3b3VsZAorICAgICAgICBiZSBiZXR0ZXIgdG8gZ2VuZXJhdGUg
aXQgZnJvbSBhbiBJREwgZmlsZS4gV2UgaGF2ZSBnZW5lcmF0b3IKKyAgICAgICAgaW5mb3N0cnVj
dHVyZSBmb3IgYmluZGluZyBhbmQgd2lsbCByZXVzZSBpdCBmb3IgbmV3IGdlbmVyYXRvci4gTmV3
CisgICAgICAgIGtpbmQgb2YgaWRsIGZpbGVzIGlzIGludHJvZHVjZWQ6IFdlYkluc3BlY3Rvcklu
dGVyZmFjZSB3aXRoCisgICAgICAgIGV4dGVuc2lvbiAnaW5zcGVjdG9yJy4gVGhlIGZpcnN0IHJl
YWwgdXNlciBvZiB0aGF0IGlzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDY3NQorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBH
TlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cC9XZWJDb3JlLmd5cDoKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9kZXJpdmVkc291cmNlc2FsbGlub25lLnB5
OgorICAgICAgICAqIFdlYkNvcmUuZ3lwL3NjcmlwdHMvcnVsZV9iaW5kaW5nLnB5OgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGw6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6
Y29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6
OnN0YXJ0VGltZWxpbmVQcm9maWxlcik6CisgICAgICAgICogaW5zcGVjdG9yL0NvZGVHZW5lcmF0
b3IucG06IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmQyLmluc3BlY3RvcjogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoR0NFdmVudFJlY29yZHMpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENhbGxGdW5jdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRGlzcGF0Y2hFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsTGF5b3V0KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNhbGN1bGF0ZVN0eWxl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQYWludCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsV3JpdGVIVE1M
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFdyaXRlSFRN
TCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRJbnN0YWxs
VGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVt
b3ZlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2ls
bEZpcmVUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3
aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp3aWxsTG9hZFhIUik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp3aWxsRXZhbHVhdGVTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6ZGlkU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFNlbmRSZXNvdXJjZVJlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFJlY2VpdmVS
ZXNvdXJjZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrVGltZWxpbmUpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTWFya0RPTUNvbnRlbnRFdmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrTG9hZEV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnJlc2V0RnJv
bnRlbmRQcm94eU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29yZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ3VycmVudFJlY29yZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OlRpbWVsaW5lUmVjb3JkRW50cnk6OlRpbWVs
aW5lUmVjb3JkRW50cnkpOgorICAgICAgICAqIGluc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3Rv
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVH
ZW5lcmljUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlR0NFdmVudERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVGdW5jdGlvbkNhbGxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZlbnREaXNwYXRjaERhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlVGltZXJJbnN0YWxsRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUlJl
YWR5U3RhdGVDaGFuZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlWEhSTG9hZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVFdmFsdWF0ZVNjcmlwdERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVNYXJrVGltZWxpbmVEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlU2NoZWR1bGVSZXNvdXJjZVJl
cXVlc3REYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlUmVzb3VyY2VTZW5kUmVxdWVzdERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVJlY2VpdmVSZXNwb25zZURhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZUZpbmlzaERh
dGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZWNl
aXZlUmVzb3VyY2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlUGFpbnREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlUGFyc2VIVE1MRGF0YSk6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5l
UmVjb3JkRmFjdG9yeS5oOgorCiAyMDEwLTA2LTE3ICBNYXJrIEJyYW5kICA8bWFicmFuZEBtYWJy
YW5kLm5sPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCmluZGV4IDdlYzkxNWYuLjIyYmExMmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQ2Miw5ICs0
NjIsMTEgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgWFNMVFByb2Nlc3NvciBcCiAjCiAKK0lOU1BF
Q1RPUl9DTEFTU0VTID0gSW5zcGVjdG9yRnJvbnRlbmQyCisKIC5QSE9OWSA6IGFsbAogCi1KU19E
T01fSEVBREVSUz0kKGZpbHRlci1vdXQgSlNFdmVudExpc3RlbmVyLmggSlNFdmVudFRhcmdldC5o
LCQoRE9NX0NMQVNTRVM6JT1KUyUuaCkpCitKU19ET01fSEVBREVSUz0kKGZpbHRlci1vdXQgSlNF
dmVudExpc3RlbmVyLmggSlNFdmVudFRhcmdldC5oLCQoRE9NX0NMQVNTRVM6JT1KUyUuaCkgJChJ
TlNQRUNUT1JfQ0xBU1NFUzolPVdlYiUuaCkpCiAKIGFsbCA6IFwKICAgICAkKEpTX0RPTV9IRUFE
RVJTKSBcCkBAIC04MTIsMjAgKzgxNCwzMiBAQCBlbmRpZgogCiAjIC0tLS0tLS0tCiAKLSMgSmF2
YVNjcmlwdCBiaW5kaW5ncwotCi1HRU5FUkFURV9CSU5ESU5HUyA9IHBlcmwgLUkgJChXZWJDb3Jl
KS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1i
aW5kaW5ncy5wbCBcCi0gICAgLS1pbmNsdWRlIGRvbSAtLWluY2x1ZGUgaHRtbCAtLWluY2x1ZGUg
Y3NzIC0taW5jbHVkZSBwYWdlIC0taW5jbHVkZSBub3RpZmljYXRpb25zIC0taW5jbHVkZSB4bWwg
LS1pbmNsdWRlIHN2ZyAtLXdyaXRlLWRlcGVuZGVuY2llcyAtLW91dHB1dERpciAuCisjIENvbW1v
biBnZW5lcmF0b3IgdGhpbmdzCiAKLUdFTkVSQVRFX0JJTkRJTkdTX1NDUklQVFMgPSBcCitHRU5F
UkFURV9TQ1JJUFRTID0gXAogICAgIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbSBc
CiAgICAgYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0gXAogICAgIGJpbmRpbmdzL3Njcmlw
dHMvSURMU3RydWN0dXJlLnBtIFwKLSAgICBiaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRp
bmdzLnBsIFwKLSMKKyAgICBiaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCisK
K2dlbmVyYXRvcl9zY3JpcHQgPSBwZXJsICQoYWRkcHJlZml4IC1JICQoV2ViQ29yZSkvLCAkKHNv
cnQgJChkaXIgJCgxKSkpKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmlu
ZGluZ3MucGwKKworIyBKUyBiaW5kaW5ncyBnZW5lcmF0b3IKKworSURMX0lOQ0xVREVTID0gZG9t
IGh0bWwgY3NzIHBhZ2Ugbm90aWZpY2F0aW9ucyB4bWwgc3ZnCitJRExfQ09NTU9OX0FSR1MgPSAk
KElETF9JTkNMVURFUzolPS0taW5jbHVkZSAlKSAtLXdyaXRlLWRlcGVuZGVuY2llcyAtLW91dHB1
dERpciAuCisKK0pTX0JJTkRJTkdTX1NDUklQVFMgPSAkKEdFTkVSQVRFX1NDUklQVFMpIGJpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisKK0pTJS5oIDogJS5pZGwgJChKU19CSU5E
SU5HU19TQ1JJUFRTKQorCSQoY2FsbCBnZW5lcmF0b3Jfc2NyaXB0LCAkKEpTX0JJTkRJTkdTX1ND
UklQVFMpKSAkKElETF9DT01NT05fQVJHUykgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykg
JChBRERJVElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRv
ciBKUyAkPAorCisjIEluc3BlY3RvciBpbnRlcmZhY2VzIGdlbmVyYXRvcgorCitJTlNQRUNUT1Jf
R0VORVJBVE9SX1NDUklQVFMgPSAkKEdFTkVSQVRFX1NDUklQVFMpIGluc3BlY3Rvci9Db2RlR2Vu
ZXJhdG9ySW5zcGVjdG9yLnBtCiAKLUpTJS5oIDogJS5pZGwgJChHRU5FUkFURV9CSU5ESU5HU19T
Q1JJUFRTKSBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQotCSQoR0VORVJBVEVf
QklORElOR1MpIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMpICQoQURESVRJT05BTF9JRExf
REVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1nZW5lcmF0b3IgSlMgJDwKK1dlYiUuaCA6
ICUuaW5zcGVjdG9yICQoSU5TUEVDVE9SX0dFTkVSQVRPUl9TQ1JJUFRTKQorCSQoY2FsbCBnZW5l
cmF0b3Jfc2NyaXB0LCAkKElOU1BFQ1RPUl9HRU5FUkFUT1JfU0NSSVBUUykpIC0tb3V0cHV0RGly
IC4gIC0tZGVmaW5lcyAiTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1nZW5lcmF0b3IgSW5zcGVjdG9y
ICQ8CiAKIC1pbmNsdWRlICQoSlNfRE9NX0hFQURFUlM6Lmg9LmRlcCkKIApAQCAtOTI2LDggKzk0
MCw5IEBAIFdlYkNvcmUuTFA2NC5leHAgOiBXZWJDb3JlLmV4cAogCiAjIE9iamVjdGl2ZS1DIGJp
bmRpbmdzCiAKLURPTSUuaCA6ICUuaWRsICQoR0VORVJBVEVfQklORElOR1NfU0NSSVBUUykgYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbSBiaW5kaW5ncy9vYmpjL1B1YmxpY0RP
TUludGVyZmFjZXMuaAotCSQoR0VORVJBVEVfQklORElOR1MpIC0tZGVmaW5lcyAiJChGRUFUVVJF
X0RFRklORVMpICQoQURESVRJT05BTF9JRExfREVGSU5FUykgTEFOR1VBR0VfT0JKRUNUSVZFX0Mi
IC0tZ2VuZXJhdG9yIE9iakMgJDwKK0RPTV9CSU5ESU5HU19TQ1JJUFRTID0gJChHRU5FUkFURV9C
SU5ESU5HX1NDUklQVFMpIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KK0RP
TSUuaCA6ICUuaWRsICQoRE9NX0JJTkRJTkdTX1NDUklQVFMpIGJpbmRpbmdzL29iamMvUHVibGlj
RE9NSW50ZXJmYWNlcy5oCisJJChjYWxsIGdlbmVyYXRvcl9zY3JpcHQsICQoRE9NX0JJTkRJTkdT
X1NDUklQVFMpKSAkKElETF9DT01NT05fQVJHUykgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5F
UykgJChBRERJVElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFHRV9PQkpFQ1RJVkVfQyIgLS1nZW5l
cmF0b3IgT2JqQyAkPAogCiAtaW5jbHVkZSAkKE9CSkNfRE9NX0hFQURFUlM6Lmg9LmRlcCkKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0KaW5kZXggNDlhMWM4Yi4uYjk4YzNmYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0zMjEsNiArMzIxLDggQEAgSURM
X0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3htbC9YTUxTZXJpYWxpemVyLmlkbCBcCiAJV2ViQ29y
ZS94bWwvWFNMVFByb2Nlc3Nvci5pZGwKIAorSU5TUEVDVE9SX0lOVEVSRkFDRVMgKz0gV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmluc3BlY3RvcgorCiB3ZWJjb3JlZ3RrX2Rv
bV9zb3VyY2VzID0gXAogCVdlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9Db252ZXJ0VG9VVEY4U3Ry
aW5nLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0NvbnZlcnRUb1VURjhTdHJpbmcu
aCBcCkBAIC0zODkwLDEzICszODkyLDE5IEBAIElETF9QQVRIIDo9IFwKICAgICAkKFdlYkNvcmUp
L3dvcmtlcnMKIAogdnBhdGggJS5pZGwgPSAkKElETF9QQVRIKQordnBhdGggJS5pbnNwZWN0b3Ig
PSAkKFdlYkNvcmUpL2luc3BlY3RvcgogCiBEZXJpdmVkU291cmNlcy9KUyUuaDogRGVyaXZlZFNv
dXJjZXMvSlMlLmNwcDsKIAorRGVyaXZlZFNvdXJjZXMvV2ViJS5oOiBEZXJpdmVkU291cmNlcy9X
ZWIlLmNwcDsKKwogLlNFQ09OREFSWToKIERlcml2ZWRTb3VyY2VzL0pTJS5jcHA6ICUuaWRsICQo
U0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cyAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgJChJRExf
UEFUSDolPS0taW5jbHVkZSAiJSIpIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAtLWRlZmlu
ZXMgIkxBTkdVQUdFX0pBVkFTQ1JJUFQ9MSAkKEZFQVRVUkVfREVGSU5FUykiIC0tZ2VuZXJhdG9y
IEpTICQ8CiAKK0Rlcml2ZWRTb3VyY2VzL1dlYiUuY3BwOiAlLmluc3BlY3RvciAkKFNDUklQVFNf
QklORElOR1MpICQoV2ViQ29yZSkvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0K
KwkkKEFNX1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgLUkkKFdl
YkNvcmUpL2luc3BlY3RvciAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmlu
ZGluZ3MucGwgJChJRExfUEFUSDolPS0taW5jbHVkZSAiJSIpIC0tb3V0cHV0RGlyICIkKEdFTlNP
VVJDRVMpIiAtLWRlZmluZXMgIkxBTkdVQUdFX0pBVkFTQ1JJUFQ9MSAkKEZFQVRVUkVfREVGSU5F
UykiIC0tZ2VuZXJhdG9yIEluc3BlY3RvciAkPAorCiBJRExfQklORElOR1NfSlNfUFVSRSA6PSBc
CiAJV2ViQ29yZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlkbCBcCiAJV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRQYXRoRGF0YS5pZGwgXApAQCAtMzkxNiw4ICszOTI0LDExIEBAIElETF9CSU5ESU5H
U19KU19QVVJFIDo9IFwKIElETF9CSU5ESU5HU19KUyA6PSAkKGZpbHRlci1vdXQgJChJRExfQklO
RElOR1NfSlNfUFVSRSksJChJRExfQklORElOR1MpKQogCiB3ZWJjb3JlX2J1aWx0X25vc291cmNl
cyArPSAkKHBhdHN1YnN0ICUuaWRsLERlcml2ZWRTb3VyY2VzL0pTJS5oLCQobm90ZGlyICQoSURM
X0JJTkRJTkdTKSkpCit3ZWJjb3JlX2J1aWx0X25vc291cmNlcyArPSAkKHBhdHN1YnN0ICUuaW5z
cGVjdG9yLERlcml2ZWRTb3VyY2VzL1dlYiUuaCwkKG5vdGRpciAkKElOU1BFQ1RPUl9JTlRFUkZB
Q0VTKSkpCiAKLXdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzICs9ICQocGF0c3Vic3QgJS5pZGwsRGVy
aXZlZFNvdXJjZXMvSlMlLmNwcCwkKG5vdGRpciAkKElETF9CSU5ESU5HU19KUykpKQord2ViY29y
ZV9idWlsdF9jcHAgPSAkKHBhdHN1YnN0ICUuaWRsLERlcml2ZWRTb3VyY2VzL0pTJS5jcHAsJChu
b3RkaXIgJChJRExfQklORElOR1NfSlMpKSkKK3dlYmNvcmVfYnVpbHRfY3BwICs9ICQocGF0c3Vi
c3QgJS5pbnNwZWN0b3IsRGVyaXZlZFNvdXJjZXMvV2ViJS5jcHAsJChub3RkaXIgJChJTlNQRUNU
T1JfSU5URVJGQUNFUykpKQord2ViY29yZV9idWlsdF9ub3NvdXJjZXMgKz0gJCh3ZWJjb3JlX2J1
aWx0X2NwcCkKIAogd2ViY29yZV9idWlsdF9vYmplY3RzID0gOj0gJChwYXRzdWJzdCAlLmNwcCwl
LmxvLCQod2ViY29yZV9idWlsdF9ub3NvdXJjZXMpKQogCkBAIC0zOTI1LDkgKzM5MzYsOSBAQCAk
KHdlYmNvcmVfYnVpbHRfb2JqZWN0cyk6IEFNX0NQUEZMQUdTKz0kKGNvcmVraXRfY3BwZmxhZ3Mp
CiAKICQod2ViY29yZV9idWlsdF9vYmplY3RzKTogQU1fQ1hYRkxBR1MrPSQobGlid2Via2l0XzFf
MF9sYV9DWFhGTEFHUykKIAotbGliV2ViQ29yZUpTX29iamVjdHMgOj0gJChwYXRzdWJzdCAlLmlk
bCxEZXJpdmVkU291cmNlcy9KUyUubG8sJChub3RkaXIgJChJRExfQklORElOR1NfSlMpKSkKK2xp
YldlYkNvcmVKU19vYmplY3RzIDo9ICQocGF0c3Vic3QgJS5jcHAsJS5sbywkKHdlYmNvcmVfYnVp
bHRfY3BwKSkKIAotbGliV2ViQ29yZUpTX2RlcGZpbGVzIDo9ICQocGF0c3Vic3QgJS5pZGwsRGVy
aXZlZFNvdXJjZXMvJChERVBESVIpL0pTJS5QbG8sJChub3RkaXIgJChJRExfQklORElOR1NfSlMp
KSkKK2xpYldlYkNvcmVKU19kZXBmaWxlcyA6PSAkKHBhdHN1YnN0ICUuY3BwLERlcml2ZWRTb3Vy
Y2VzLyQoREVQRElSKS8lLlBsbywkKG5vdGRpciAkKHdlYmNvcmVfYnVpbHRfY3BwKSkpCiAKICMg
T2xkZXIgYXV0b21ha2UgdmVyc2lvbnMgKDEuNykgcGxhY2UgUGxvIGZpbGVzIGluIGEgZGlmZmVy
ZW50IHBsYWNlOgogbGliV2ViQ29yZUpTX2RlcGZpbGVzICs9ICQocGF0c3Vic3QgJS5sbywkKERF
UERJUikvJS5QbG8sJChsaWJXZWJDb3JlSlNfb2JqZWN0cykpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5
cAppbmRleCAxNmYxOWQ5Li42MTNjODYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lw
L1dlYkNvcmUuZ3lwCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKQEAgLTU4
OSw2ICs1ODksNyBAQAogICAgICAgICAgICdhY3Rpb24nOiBbCiAgICAgICAgICAgICAncHl0aG9u
JywKICAgICAgICAgICAgICdzY3JpcHRzL3J1bGVfYmluZGluZy5weScsCisgICAgICAgICAgICAn
djgnLAogICAgICAgICAgICAgJzwoUlVMRV9JTlBVVF9QQVRIKScsCiAgICAgICAgICAgICAnPChT
SEFSRURfSU5URVJNRURJQVRFX0RJUikvd2ViY29yZS9iaW5kaW5ncycsCiAgICAgICAgICAgICAn
PChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L2JpbmRpbmdzJywKQEAgLTYwMSw2ICs2
MDIsNDkgQEAKICAgICAgICAgICBdLAogICAgICAgICAgICdtZXNzYWdlJzogJ0dlbmVyYXRpbmcg
YmluZGluZyBmcm9tIDwoUlVMRV9JTlBVVF9QQVRIKScsCiAgICAgICAgIH0sCisgICAgICAgICMg
UnVsZSB0byBidWlsZCBnZW5lcmF0ZWQgV2ViSW5zcGVjdG9yIGJpbmRpbmdzIGZyb20gLmluc3Bl
Y3RvciBzb3VyY2UuCisgICAgICAgIHsKKyAgICAgICAgICAncnVsZV9uYW1lJzogJ2luc3BlY3Rv
cicsCisgICAgICAgICAgJ2V4dGVuc2lvbic6ICdpbnNwZWN0b3InLAorICAgICAgICAgICdtc3Zz
X2V4dGVybmFsX3J1bGUnOiAxLAorICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAgICAn
Li4vYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCcsCisgICAgICAgICAgICAn
Li4vYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtJywKKyAgICAgICAgICAgICcuLi9p
bnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbScsCisgICAgICAgICAgICAnLi4vYmlu
ZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0nLAorICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3Nj
cmlwdHMvSURMU3RydWN0dXJlLnBtJywKKyAgICAgICAgICBdLAorICAgICAgICAgICdvdXRwdXRz
JzogWworICAgICAgICAgICAgIyBGSVhNRTogIFRoZSAuY3BwIGZpbGUgc2hvdWxkIGJlIGluIHdl
YmtpdC9iaW5kaW5ncyBvbmNlCisgICAgICAgICAgICAjIHdlIGNvYXggR1lQIGludG8gc3VwcG9y
dGluZyBpdCAoc2VlICdhY3Rpb24nIGJlbG93KS4KKyAgICAgICAgICAgICc8KFNIQVJFRF9JTlRF
Uk1FRElBVEVfRElSKS93ZWJjb3JlL2JpbmRpbmdzL1dlYjwoUlVMRV9JTlBVVF9ST09UKS5jcHAn
LAorICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9iaW5kaW5n
cy9XZWI8KFJVTEVfSU5QVVRfUk9PVCkuaCcsCisgICAgICAgICAgXSwKKyAgICAgICAgICAndmFy
aWFibGVzJzogeworICAgICAgICAgICAgJ2dlbmVyYXRvcl9pbmNsdWRlX2RpcnMnOiBbCisgICAg
ICAgICAgICBdLAorICAgICAgICAgIH0sCisgICAgICAgICAgIyBGSVhNRTogIE5vdGUgdGhhdCB3
ZSBwdXQgdGhlIC5jcHAgZmlsZXMgaW4gd2ViY29yZS9iaW5kaW5ncworICAgICAgICAgICMgYnV0
IHRoZSAuaCBmaWxlcyBpbiB3ZWJraXQvYmluZGluZ3MuICBUaGlzIGlzIHRvIHdvcmsgYXJvdW5k
CisgICAgICAgICAgIyB0aGUgdW5mb3J0dW5hdGUgZmFjdCB0aGF0IEdZUCBzdHJpcHMgZHVwbGlj
YXRlIGFyZ3VtZW50cworICAgICAgICAgICMgZnJvbSBsaXN0cy4gIFdoZW4gd2UgaGF2ZSBhIGJl
dHRlciBHWVAgd2F5IHRvIHN1cHByZXNzIHRoYXQKKyAgICAgICAgICAjIGJlaGF2aW9yLCBjaGFu
Z2UgdGhlIG91dHB1dCBsb2NhdGlvbi4KKyAgICAgICAgICAnYWN0aW9uJzogWworICAgICAgICAg
ICAgJ3B5dGhvbicsCisgICAgICAgICAgICAnc2NyaXB0cy9ydWxlX2JpbmRpbmcucHknLAorICAg
ICAgICAgICAgJ1dlYicsCisgICAgICAgICAgICAnPChSVUxFX0lOUFVUX1BBVEgpJywKKyAgICAg
ICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJjb3JlL2JpbmRpbmdzJywKKyAg
ICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGluZ3MnLAor
ICAgICAgICAgICAgJy0tJywKKyAgICAgICAgICAgICc8QChfaW5wdXRzKScsCisgICAgICAgICAg
ICAnLS0nLAorICAgICAgICAgICAgJy0tZGVmaW5lcycsICdMQU5HVUFHRV9KQVZBU0NSSVBUJywK
KyAgICAgICAgICAgICctLWdlbmVyYXRvcicsICdJbnNwZWN0b3InLAorICAgICAgICAgICAgJzxA
KGdlbmVyYXRvcl9pbmNsdWRlX2RpcnMpJworICAgICAgICAgIF0sCisgICAgICAgICAgJ21lc3Nh
Z2UnOiAnR2VuZXJhdGluZyBJbnNwZWN0b3IgdHJhbnNwb3J0IGNsYXNzIGZyb20gPChSVUxFX0lO
UFVUX1BBVEgpJywKKyAgICAgICAgfSwKICAgICAgIF0sCiAgICAgfSwKICAgICB7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX2Rlcml2ZWRzb3VyY2VzYWxs
aW5vbmUucHkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX2Rlcml2ZWRzb3Vy
Y2VzYWxsaW5vbmUucHkKaW5kZXggYzljNWJmNS4uNDcwMDYzYiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9kZXJpdmVkc291cmNlc2FsbGlub25lLnB5Cisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9hY3Rpb25fZGVyaXZlZHNvdXJjZXNhbGxp
bm9uZS5weQpAQCAtMTIzLDEyICsxMjMsMTYgQEAgZGVmIGV4dHJhY3RNZXRhRGF0YShmaWxlUGF0
aHMpOgogICAgICAgICAocGFyZW50UGF0aCwgZmlsZU5hbWUpID0gb3MucGF0aC5zcGxpdChmKQog
ICAgICAgICAoaW50ZXJmYWNlTmFtZSwgZXh0KSA9IG9zLnBhdGguc3BsaXRleHQoZmlsZU5hbWUp
CiAKLSAgICAgICAgaWYgbm90IGV4dCA9PSAnLmlkbCc6CisgICAgICAgIGlmIGV4dCA9PSAnLmlk
bCc6CisgICAgICAgICAgICBmaWxlTmFtZSA9ICdWOCVzJyAlIGludGVyZmFjZU5hbWUKKyAgICAg
ICAgZWxpZiBleHQgPT0gJy5pbnNwZWN0b3InOgorICAgICAgICAgICAgZmlsZU5hbWUgPSAnV2Vi
JXMnICUgaW50ZXJmYWNlTmFtZQorICAgICAgICBlbHNlOgogICAgICAgICAgICAgY29udGludWUK
IAogICAgICAgICBtZXRhRGF0YSA9IHsKICAgICAgICAgICAgICdjb25kaXRpb25hbCc6IGV4dHJh
Y3RDb25kaXRpb25hbChmKSwKLSAgICAgICAgICAgICduYW1lJzogaW50ZXJmYWNlTmFtZSwKKyAg
ICAgICAgICAgICduYW1lJzogZmlsZU5hbWUsCiAgICAgICAgIH0KIAogICAgICAgICBtZXRhRGF0
YUxpc3QuYXBwZW5kKG1ldGFEYXRhKQpAQCAtMTU5LDcgKzE2Myw3IEBAIGRlZiBnZW5lcmF0ZUNv
bnRlbnQoZmlsZXNNZXRhRGF0YSwgcGFydGl0aW9uLCB0b3RhbFBhcnRpdGlvbnMpOgogICAgICAg
ICBpZiBjb25kaXRpb25hbCBhbmQgcHJldkNvbmRpdGlvbmFsICE9IGNvbmRpdGlvbmFsOgogICAg
ICAgICAgICAgb3V0cHV0LmFwcGVuZCgnXG4jaWYgJXNcbicgJSBmb3JtYXRDb25kaXRpb25hbChj
b25kaXRpb25hbCkpCiAKLSAgICAgICAgb3V0cHV0LmFwcGVuZCgnI2luY2x1ZGUgImJpbmRpbmdz
L1Y4JXMuY3BwIlxuJyAlIG5hbWUpCisgICAgICAgIG91dHB1dC5hcHBlbmQoJyNpbmNsdWRlICJi
aW5kaW5ncy8lcy5jcHAiXG4nICUgbmFtZSkKIAogICAgICAgICBwcmV2Q29uZGl0aW9uYWwgPSBj
b25kaXRpb25hbAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvcnVs
ZV9iaW5kaW5nLnB5IGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL3J1bGVfYmluZGluZy5w
eQppbmRleCAyNGQxNzhmLi5jZGQ0MjhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lw
L3NjcmlwdHMvcnVsZV9iaW5kaW5nLnB5CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0
cy9ydWxlX2JpbmRpbmcucHkKQEAgLTgyLDggKzgyLDggQEAgZGVmIG1haW4oYXJncyk6CiAgICAg
YXNzZXJ0IGxlbihzZWN0aW9ucykgPT0gMywgc2VjdGlvbnMKICAgICAoYmFzZSwgaW5wdXRzLCBv
cHRpb25zKSA9IHNlY3Rpb25zCiAKLSAgICBhc3NlcnQgbGVuKGJhc2UpID09IDMsIGJhc2UKLSAg
ICAoaW5wdXQsIGNwcGRpciwgaGRpcikgPSBiYXNlCisgICAgYXNzZXJ0IGxlbihiYXNlKSA9PSA0
LCBiYXNlCisgICAgKHByZWZpeCwgaW5wdXQsIGNwcGRpciwgaGRpcikgPSBiYXNlCiAKICAgICBh
c3NlcnQgbGVuKGlucHV0cykgPiAxLCBpbnB1dHMKICAgICBnZW5lcmF0ZUJpbmRpbmdzID0gaW5w
dXRzWzBdCkBAIC0xMjIsNyArMTIyLDcgQEAgZGVmIG1haW4oYXJncyk6CiAgICAgaWYgY3BwZGly
ICE9IGhkaXI6CiAgICAgICAgIGlucHV0QmFzZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKGlucHV0
KQogICAgICAgICAocm9vdCwgZXh0KSA9IG9zLnBhdGguc3BsaXRleHQoaW5wdXRCYXNlbmFtZSkK
LSAgICAgICAgaG5hbWUgPSAnVjglcy5oJyAlIHJvb3QKKyAgICAgICAgaG5hbWUgPSAnJXMlcy5o
JyAlIChwcmVmaXgudXBwZXIoKSwgcm9vdCkKICAgICAgICAgaHNyYyA9IG9zLnBhdGguam9pbihj
cHBkaXIsIGhuYW1lKQogICAgICAgICBoZHN0ID0gb3MucGF0aC5qb2luKGhkaXIsIGhuYW1lKQog
ICAgICAgICBzaHV0aWwuY29weWZpbGUoaHNyYywgaGRzdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMGMwZjU4MC4uNjI5MWQw
YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKQEAgLTE5NCw2ICsxOTQsNyBAQAogICAgICAgICAgICAgJ2h0bWwvVm9pZENhbGxiYWNr
LmlkbCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwnLAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmlkbCcsCisgICAgICAgICAg
ICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pbnNwZWN0b3InLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5pZGwnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9T
Y3JpcHRQcm9maWxlLmlkbCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2Vi
Q29yZS9XZWJDb3JlLnByaQppbmRleCBmNGFiYzI3Li5jZTY1ZjZiIDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTYzNSw2ICs2MzUs
OCBAQCBJRExfQklORElOR1MgKz0gXAogICAgIHhtbC9YUGF0aEV2YWx1YXRvci5pZGwgXAogICAg
IHhtbC9YU0xUUHJvY2Vzc29yLmlkbAogCitJTlNQRUNUT1JfSU5URVJGQUNFUyA9IGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZDIuaW5zcGVjdG9yCisKIGNvbnRhaW5zKERFRklORVMsIEVOQUJM
RV9NQVRITUw9MSkgewogICAgIG1hdGhtbG5hbWVzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9T
T1VSQ0VTX0RJUn0vTWF0aE1MTmFtZXMuY3BwCiAgICAgbWF0aG1sbmFtZXMuaW5wdXQgPSBNQVRI
TUxfTkFNRVMKQEAgLTcwMCw2ICs3MDIsMTggQEAgaWRsLmRlcGVuZHMgPSAkJFBXRC9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0gXAogICAgICAgICAgICAgICAkJFBXRC9iaW5kaW5n
cy9zY3JpcHRzL0luRmlsZXNQYXJzZXIucG0KIGFkZEV4dHJhQ29tcGlsZXIoaWRsKQogCisjIEdF
TkVSQVRPUiAyOiBJbnNwZWN0b3IgY29tcGlsZXIKK2luc3BlY3Rvci5vdXRwdXQgPSAkJHtXQ19H
RU5FUkFURURfU09VUkNFU19ESVJ9L1dlYiR7UU1BS0VfRklMRV9CQVNFfS5jcHAKK2luc3BlY3Rv
ci5pbnB1dCA9IElOU1BFQ1RPUl9JTlRFUkZBQ0VTCitpbnNwZWN0b3Iud2tTY3JpcHQgPSAkJFBX
RC9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCitpbnNwZWN0b3IuY29tbWFu
ZHMgPSBwZXJsIC1JJCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAtSSQkUFdEL2luc3BlY3RvciAkJGlu
c3BlY3Rvci53a1NjcmlwdCAtLWRlZmluZXMgXCIkJHtGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQ
VH1cIiAtLWdlbmVyYXRvciBJbnNwZWN0b3IgLS1vdXRwdXREaXIgJCRXQ19HRU5FUkFURURfU09V
UkNFU19ESVIgLS1wcmVwcm9jZXNzb3IgXCIkJHtRTUFLRV9NT0N9IC1FXCIgJHtRTUFLRV9GSUxF
X05BTUV9CitpbnNwZWN0b3IuZGVwZW5kcyA9ICQkUFdEL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvci5wbSBcCisgICAgICAgICAgICAgICQkUFdEL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9y
SW5zcGVjdG9yLnBtIFwKKyAgICAgICAgICAgICAgJCRQV0QvYmluZGluZ3Mvc2NyaXB0cy9JRExQ
YXJzZXIucG0gXAorICAgICAgICAgICAgICAkJFBXRC9iaW5kaW5ncy9zY3JpcHRzL0lETFN0cnVj
dHVyZS5wbSBcCisgICAgICAgICAgICAgICQkUFdEL2JpbmRpbmdzL3NjcmlwdHMvSW5GaWxlc1Bh
cnNlci5wbQorYWRkRXh0cmFDb21waWxlcihpbnNwZWN0b3IpCisKICMgR0VORVJBVE9SIDM6IHRv
a2VuaXplciAoZmxleCkKIHRva2VuaXplci5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNF
U19ESVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5jcHAKIHRva2VuaXplci5pbnB1dCA9IFRPS0VOSVpF
UgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMTA4ODk1ZS4uMmY2MDhk
ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMDA2NSw2ICsyMDA2
NSwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRo
PSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdl
Ykluc3BlY3RvckZyb250ZW5kMi5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXFdlYkluc3BlY3RvckZyb250ZW5kMi5oIg0KKwkJCQk+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXTUxFbGVtZW50RmFjdG9yeS5jcHAiDQog
CQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBjNjQyNzdkLi4zZDA4OThiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNjYyMSw2ICs2NjIxLDkgQEAKIAkJNEYxNTM0REYxMUI1MzMw
MjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEVkaXRpbmdCZWhhdmlvclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTRGMzI4OUIzMTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yVmFsdWVzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEYzMjg5QjQxMUE0MkFBQjAwNUFCRTdF
IC8qIEluc3BlY3RvclZhbHVlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bnNwZWN0b3JWYWx1ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEY3OTYwMEYx
MUM3RTNFOTAwQzBDQzNDIC8qIEluc3BlY3RvckZyb250ZW5kMi5pbnNwZWN0b3IgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmQyLmluc3BlY3Rvcjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNEY3OTYwMzIxMUM4MEM4QTAwQzBDQzNDIC8qIFdlYkluc3BlY3Rv
ckZyb250ZW5kMi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJ
bnNwZWN0b3JGcm9udGVuZDIuY3BwOyBwYXRoID0gLi4vV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9XZWJJbnNwZWN0b3JGcm9udGVuZDIuY3BwOyBzb3VyY2VUcmVlID0g
U09VUkNFX1JPT1Q7IH07CisJCTRGNzk2MDMzMTFDODBDOEEwMEMwQ0MzQyAvKiBXZWJJbnNwZWN0
b3JGcm9udGVuZDIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVj
dG9yRnJvbnRlbmQyLmg7IHBhdGggPSAuLi9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL1dlYkluc3BlY3RvckZyb250ZW5kMi5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JP
T1Q7IH07CiAJCTRGRDhEMEYwMTE5QzcxOEIwMDJGQTgyNSAvKiBTY3JpcHRHQ0V2ZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEdDRXZlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RkQ4RDBGMTExOUM3MThCMDAyRkE4MjUgLyog
U2NyaXB0R0NFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRH
Q0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDE4NDY3MEIwODYwMkEw
MDRBODI1RiAvKiBDYWNoZWRQYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENhY2hlZFBhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMTc2LDYgKzEx
MTc5LDggQEAKIAkJCQk5RkEzN0VGNzExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxl
LmggKi8sCiAJCQkJOUZBMzdFRjgxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5v
ZGUuY3BwICovLAogCQkJCTlGQTM3RUY5MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2Zp
bGVOb2RlLmggKi8sCisJCQkJNEY3OTYwMzIxMUM4MEM4QTAwQzBDQzNDIC8qIFdlYkluc3BlY3Rv
ckZyb250ZW5kMi5jcHAgKi8sCisJCQkJNEY3OTYwMzMxMUM4MEM4QTAwQzBDQzNDIC8qIFdlYklu
c3BlY3RvckZyb250ZW5kMi5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBJbnNwZWN0b3I7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTEyMDcsNiArMTEyMTIsNyBAQAogCQkJCTQxRjA2
MTcyMEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCAqLywK
IAkJCQk3QUVEM0UwMzBGQkIxRUFBMDBEMkIwM0MgLyogSW5zcGVjdG9yRnJvbnRlbmQuY3BwICov
LAogCQkJCTdBRUQzRTA0MEZCQjFFQUEwMEQyQjAzQyAvKiBJbnNwZWN0b3JGcm9udGVuZC5oICov
LAorCQkJCTRGNzk2MDBGMTFDN0UzRTkwMEMwQ0MzQyAvKiBJbnNwZWN0b3JGcm9udGVuZDIuaW5z
cGVjdG9yICovLAogCQkJCUYzNDRDNzEyMTEyNUI4MkMwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9u
dGVuZENsaWVudC5oICovLAogCQkJCUYzNDRDNzU3MTEyOTRGRjYwMEYyNkVFRSAvKiBJbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCAqLywKIAkJCQlGMzQ0Qzc1MjExMjk0RDlEMDBGMjZF
RUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oICovLApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2suY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDYWxsU3RhY2suY3BwCmluZGV4IDg2ZGRjZDEuLmM5YmI4YjAgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lkIFNj
cmlwdENhbGxTdGFjazo6aW5pdGlhbGl6ZSgpCiAgICAgbV9pbml0aWFsaXplZCA9IHRydWU7CiB9
CiAKLWJvb2wgU2NyaXB0Q2FsbFN0YWNrOjpzdGFja1RyYWNlKGludCwgU2NyaXB0U3RhdGUqLCBT
Y3JpcHRBcnJheSYpCitib29sIFNjcmlwdENhbGxTdGFjazo6c3RhY2tUcmFjZShpbnQsIGNvbnN0
IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mKQogewogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrLmggYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5oCmluZGV4IDZjZjc2NzkuLjQ5NTBkYWUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrLmgKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2suaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1
ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RyaW5nLmgiCiAjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2Ug
SlNDIHsKICAgICBjbGFzcyBFeGVjU3RhdGU7CkBAIC00Myw2ICs0NCw4IEBAIG5hbWVzcGFjZSBK
U0MgewogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCisgICAgY2xhc3MgSW5zcGVjdG9y
QXJyYXk7CiAKICAgICBjbGFzcyBTY3JpcHRDYWxsU3RhY2sgOiBwdWJsaWMgTm9uY29weWFibGUg
ewogICAgIHB1YmxpYzoKQEAgLTU0LDcgKzU3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICAvLyBmcmFtZSByZXRyaWV2YWwgbWV0aG9kcwogICAgICAgICBjb25zdCBTY3JpcHRDYWxs
RnJhbWUgJmF0KHVuc2lnbmVkKTsKICAgICAgICAgdW5zaWduZWQgc2l6ZSgpOwotICAgICAgICBz
dGF0aWMgYm9vbCBzdGFja1RyYWNlKGludCwgU2NyaXB0U3RhdGUqLCBTY3JpcHRBcnJheSYpOwor
ICAgICAgICBzdGF0aWMgYm9vbCBzdGFja1RyYWNlKGludCwgY29uc3QgUmVmUHRyPEluc3BlY3Rv
ckFycmF5PiYpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBpbml0aWFsaXplKCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbSBiL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCmluZGV4IDdjMGY0MjcuLmM2
OWRjMWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCkBAIC04
Myw2ICs4Myw3IEBAIHN1YiBuZXcKICAgICAkdXNlTGF5ZXJPblRvcCA9IHNoaWZ0OwogICAgICRw
cmVwcm9jZXNzb3IgPSBzaGlmdDsKICAgICAkd3JpdGVEZXBlbmRlbmNpZXMgPSBzaGlmdDsKKyAg
ICAkdmVyYm9zZSA9IHNoaWZ0OwogCiAgICAgYmxlc3MoJHJlZmVyZW5jZSwgJG9iamVjdCk7CiAg
ICAgcmV0dXJuICRyZWZlcmVuY2U7CkBAIC0xMDMsMTAgKzEwNCwxMCBAQCBzdWIgUHJvY2Vzc0Rv
Y3VtZW50CiAgICAgJGRlZmluZXMgPSBzaGlmdDsKIAogICAgIG15ICRpZmFjZU5hbWUgPSAiQ29k
ZUdlbmVyYXRvciIgLiAkdXNlR2VuZXJhdG9yOworICAgIHJlcXVpcmUgJGlmYWNlTmFtZSAuICIu
cG0iOwogCiAgICAgIyBEeW5hbWljYWxseSBsb2FkIGV4dGVybmFsIGNvZGUgZ2VuZXJhdGlvbiBw
ZXJsIG1vZHVsZQotICAgIHJlcXVpcmUgJGlmYWNlTmFtZSAuICIucG0iOwotICAgICRjb2RlR2Vu
ZXJhdG9yID0gJGlmYWNlTmFtZS0+bmV3KCRvYmplY3QsICR1c2VPdXRwdXREaXIsICR1c2VMYXll
ck9uVG9wLCAkcHJlcHJvY2Vzc29yLCAkd3JpdGVEZXBlbmRlbmNpZXMpOworICAgICRjb2RlR2Vu
ZXJhdG9yID0gJGlmYWNlTmFtZS0+bmV3KCRvYmplY3QsICR1c2VPdXRwdXREaXIsICR1c2VMYXll
ck9uVG9wLCAkcHJlcHJvY2Vzc29yLCAkd3JpdGVEZXBlbmRlbmNpZXMsICR2ZXJib3NlKTsKICAg
ICB1bmxlc3MgKGRlZmluZWQoJGNvZGVHZW5lcmF0b3IpKSB7CiAgICAgICAgIG15ICRjbGFzc2Vz
ID0gJHVzZURvY3VtZW50LT5jbGFzc2VzOwogICAgICAgICBmb3JlYWNoIG15ICRjbGFzcyAoQCRj
bGFzc2VzKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2Vy
LnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQppbmRleCAzZGY5NmFi
Li5lMjUwYTRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2Vy
LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KQEAgLTI1OSw3
ICsyNTksNyBAQCBzdWIgUGFyc2VJbnRlcmZhY2UKICAgICAgICAgbXkgQGludGVyZmFjZU1ldGhv
ZHMgPSBzcGxpdCgvOy8sICRpbnRlcmZhY2VEYXRhKTsKIAogICAgICAgICBmb3JlYWNoIG15ICRs
aW5lIChAaW50ZXJmYWNlTWV0aG9kcykgewotICAgICAgICAgICAgaWYgKCRsaW5lID1+IC9hdHRy
aWJ1dGUvKSB7CisgICAgICAgICAgICBpZiAoJGxpbmUgPX4gL1xXYXR0cmlidXRlXFcvKSB7CiAg
ICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmludGVyZmFjZUF0dHJpYnV0
ZVNlbGVjdG9yLzsKIAogICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVUeXBlID0gKGRlZmlu
ZWQoJDEpID8gJDEgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5w
bCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbAppbmRleCA0
NGVkNGQzLi43MjE5MmZmIDEwMDc1NQotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2Vu
ZXJhdGUtYmluZGluZ3MucGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRl
LWJpbmRpbmdzLnBsCkBAIC00MywyOCArNDMsMzMgQEAgbXkgJGdlbmVyYXRvcjsKIG15ICRkZWZp
bmVzOwogbXkgJHByZXByb2Nlc3NvcjsKIG15ICR3cml0ZURlcGVuZGVuY2llczsKK215ICR2ZXJi
b3NlOwogCiBHZXRPcHRpb25zKCdpbmNsdWRlPXNAJyA9PiBcQGlkbERpcmVjdG9yaWVzLAogICAg
ICAgICAgICAnb3V0cHV0RGlyPXMnID0+IFwkb3V0cHV0RGlyZWN0b3J5LAogICAgICAgICAgICAn
Z2VuZXJhdG9yPXMnID0+IFwkZ2VuZXJhdG9yLAogICAgICAgICAgICAnZGVmaW5lcz1zJyA9PiBc
JGRlZmluZXMsCiAgICAgICAgICAgICdwcmVwcm9jZXNzb3I9cycgPT4gXCRwcmVwcm9jZXNzb3Is
CisgICAgICAgICAgICd2ZXJib3NlJyA9PiBcJHZlcmJvc2UsCiAgICAgICAgICAgICd3cml0ZS1k
ZXBlbmRlbmNpZXMnID0+IFwkd3JpdGVEZXBlbmRlbmNpZXMpOwogCiBteSAkaWRsRmlsZSA9ICRB
UkdWWzBdOwogCiBkaWUoJ011c3Qgc3BlY2lmeSBpbnB1dCBmaWxlLicpIHVubGVzcyBkZWZpbmVk
KCRpZGxGaWxlKTsKLWRpZSgnTXVzdCBzcGVjaWZ5IElETCBzZWFyY2ggcGF0aC4nKSB1bmxlc3Mg
QGlkbERpcmVjdG9yaWVzOworI2RpZSgnTXVzdCBzcGVjaWZ5IElETCBzZWFyY2ggcGF0aC4nKSB1
bmxlc3MgQGlkbERpcmVjdG9yaWVzOwogZGllKCdNdXN0IHNwZWNpZnkgZ2VuZXJhdG9yJykgdW5s
ZXNzIGRlZmluZWQoJGdlbmVyYXRvcik7CiBkaWUoJ011c3Qgc3BlY2lmeSBvdXRwdXQgZGlyZWN0
b3J5LicpIHVubGVzcyBkZWZpbmVkKCRvdXRwdXREaXJlY3RvcnkpOwogZGllKCdNdXN0IHNwZWNp
ZnkgZGVmaW5lcycpIHVubGVzcyBkZWZpbmVkKCRkZWZpbmVzKTsKIAoraWYgKCR2ZXJib3NlKSB7
CisgICAgcHJpbnQgIiRnZW5lcmF0b3I6ICRpZGxGaWxlXG4iOworfQogJGRlZmluZXMgPX4gcy9e
XHMrfFxzKyQvL2c7ICMgdHJpbSB3aGl0ZXNwYWNlCiAKICMgUGFyc2UgdGhlIGdpdmVuIElETCBm
aWxlLgotbXkgJHBhcnNlciA9IElETFBhcnNlci0+bmV3KDEpOworbXkgJHBhcnNlciA9IElETFBh
cnNlci0+bmV3KCEkdmVyYm9zZSk7CiBteSAkZG9jdW1lbnQgPSAkcGFyc2VyLT5QYXJzZSgkaWRs
RmlsZSwgJGRlZmluZXMsICRwcmVwcm9jZXNzb3IpOwogCiAjIEdlbmVyYXRlIGRlc2lyZWQgb3V0
cHV0IGZvciBnaXZlbiBJREwgZmlsZS4KLW15ICRjb2RlR2VuID0gQ29kZUdlbmVyYXRvci0+bmV3
KFxAaWRsRGlyZWN0b3JpZXMsICRnZW5lcmF0b3IsICRvdXRwdXREaXJlY3RvcnksIDAsICRwcmVw
cm9jZXNzb3IsICR3cml0ZURlcGVuZGVuY2llcyk7CitteSAkY29kZUdlbiA9IENvZGVHZW5lcmF0
b3ItPm5ldyhcQGlkbERpcmVjdG9yaWVzLCAkZ2VuZXJhdG9yLCAkb3V0cHV0RGlyZWN0b3J5LCAw
LCAkcHJlcHJvY2Vzc29yLCAkd3JpdGVEZXBlbmRlbmNpZXMsICR2ZXJib3NlKTsKICRjb2RlR2Vu
LT5Qcm9jZXNzRG9jdW1lbnQoJGRvY3VtZW50LCAkZGVmaW5lcyk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFjay5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjcmlwdENhbGxTdGFjay5jcHAKaW5kZXggODk4MDliMi4uZmM1NDA4NiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2suY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvU2NyaXB0Q2FsbFN0YWNrLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogCisjaW5jbHVkZSAiSW5z
cGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0U2NvcGUuaCIKICNpbmNsdWRlICJTY3Jp
cHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RGVidWdTZXJ2ZXIuaCIKQEAgLTkzLDEz
ICs5NCwyNSBAQCBjb25zdCBTY3JpcHRDYWxsRnJhbWUmIFNjcmlwdENhbGxTdGFjazo6YXQodW5z
aWduZWQgaW5kZXgpIGNvbnN0CiAgICAgcmV0dXJuIG1fbGFzdENhbGxlcjsKIH0KIAotYm9vbCBT
Y3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UoaW50IGZyYW1lTGltaXQsIFNjcmlwdFN0YXRlKiBz
dGF0ZSwgU2NyaXB0QXJyYXkmIHN0YWNrVHJhY2UpCitib29sIFNjcmlwdENhbGxTdGFjazo6c3Rh
Y2tUcmFjZShpbnQgZnJhbWVMaW1pdCwgY29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5PiYgc3Rh
Y2tUcmFjZSkKIHsKLSAgICBTY3JpcHRTY29wZSBzY29wZShzdGF0ZSk7CisgICAgdjg6OkhhbmRs
ZVNjb3BlIHNjb3BlOworICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUodjg6OkNv
bnRleHQ6OkdldEN1cnJlbnQoKSk7CiAgICAgdjg6OkhhbmRsZTx2ODo6U3RhY2tUcmFjZT4gdHJh
Y2Uodjg6OlN0YWNrVHJhY2U6OkN1cnJlbnRTdGFja1RyYWNlKGZyYW1lTGltaXQpKTsKLSAgICBp
ZiAodHJhY2UuSXNFbXB0eSgpIHx8ICF0cmFjZS0+R2V0RnJhbWVDb3VudCgpKQorICAgIGludCBm
cmFtZUNvdW50ID0gdHJhY2UtPkdldEZyYW1lQ291bnQoKTsKKyAgICBpZiAodHJhY2UuSXNFbXB0
eSgpIHx8ICFmcmFtZUNvdW50KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgc3RhY2tUcmFj
ZSA9IFNjcmlwdEFycmF5KHN0YXRlLCB0cmFjZS0+QXNBcnJheSgpKTsKKyAgICBmb3IgKGludCBp
ID0gMDsgaSA8IGZyYW1lQ291bnQ7ICsraSkgeworICAgICAgICB2ODo6SGFuZGxlPHY4OjpTdGFj
a0ZyYW1lPiBmcmFtZSA9IHRyYWNlLT5HZXRGcmFtZShpKTsKKyAgICAgICAgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gZnJhbWVPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAg
ICAgICB2ODo6TG9jYWw8djg6OlN0cmluZz4gc2NyaXB0TmFtZSA9IGZyYW1lLT5HZXRTY3JpcHRO
YW1lKCk7CisgICAgICAgIGZyYW1lT2JqZWN0LT5zZXRTdHJpbmcoInNjcmlwdE5hbWUiLCBzY3Jp
cHROYW1lLklzRW1wdHkoKSA/ICIiIDogdG9XZWJDb3JlU3RyaW5nKHNjcmlwdE5hbWUpKTsgICAg
ICAgIAorICAgICAgICB2ODo6TG9jYWw8djg6OlN0cmluZz4gZnVuY3Rpb25OYW1lID0gZnJhbWUt
PkdldEZ1bmN0aW9uTmFtZSgpOworICAgICAgICBmcmFtZU9iamVjdC0+c2V0U3RyaW5nKCJmdW5j
dGlvbk5hbWUiLCBmdW5jdGlvbk5hbWUuSXNFbXB0eSgpID8gIiIgOiB0b1dlYkNvcmVTdHJpbmco
ZnVuY3Rpb25OYW1lKSk7ICAgICAgICAKKyAgICAgICAgZnJhbWVPYmplY3QtPnNldE51bWJlcigi
bGluZU51bWJlciIsIGZyYW1lLT5HZXRMaW5lTnVtYmVyKCkpOworICAgICAgICBmcmFtZU9iamVj
dC0+c2V0TnVtYmVyKCJjb2x1bW4iLCBmcmFtZS0+R2V0Q29sdW1uKCkpOworICAgICAgICBzdGFj
a1RyYWNlLT5wdXNoKGZyYW1lT2JqZWN0KTsKKyAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q2FsbFN0YWNrLmggYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFjay5oCmluZGV4IDhiMDI4MTQuLjkzNDc4YmIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q2FsbFN0YWNrLmgKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2suaApAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVz
cGFjZSB2OCB7CiAgICAgY2xhc3MgQXJndW1lbnRzOwpAQCAtNDMsNiArNDQsOCBAQCBuYW1lc3Bh
Y2UgdjggewogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEluc3BlY3RvckFycmF5Owor
ICAgIAogY2xhc3MgU2NyaXB0Q2FsbFN0YWNrIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgU2NyaXB0Q2FsbFN0YWNrKiBjcmVhdGUoY29uc3Qgdjg6OkFyZ3VtZW50
cyYsIHVuc2lnbmVkIHNraXBBcmd1bWVudENvdW50ID0gMCk7CkBAIC01Nyw3ICs2MCw3IEBAIHB1
YmxpYzoKICAgICAvLyAgIGxpbmVOdW1iZXI6IDwxIGJhc2VkIGxpbmUgbnVtYmVyPgogICAgIC8v
ICAgY29sdW1uOiA8MSBiYXNlZCBjb2x1bW4gb2Zmc2V0IG9uIHRoZSBsaW5lPgogICAgIC8vIH0K
LSAgICBzdGF0aWMgYm9vbCBzdGFja1RyYWNlKGludCBmcmFtZUxpbWl0LCBTY3JpcHRTdGF0ZSog
c3RhdGUsIFNjcmlwdEFycmF5JiBzdGFja1RyYWNlKTsKKyAgICBzdGF0aWMgYm9vbCBzdGFja1Ry
YWNlKGludCBmcmFtZUxpbWl0LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiBzdGFja1Ry
YWNlKTsKIAogICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSYgYXQodW5zaWduZWQpIGNvbnN0Owog
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcmV0cmlldmluZyBhbmQgc3RvcmluZyBjYWxsIHN0YWNr
IHRyYWNlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVj
dG9yLnBtIGIvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTRjMzA0Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbQpAQCAtMCwwICsx
LDI5MCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTAgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0Ug
ZmlsZS4KKworcGFja2FnZSBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yOworCit1c2Ugc3RyaWN0Owor
Cit1c2UgRmlsZTo6c3RhdDsKKworbXkgJXR5cGVUcmFuc2Zvcm07CiskdHlwZVRyYW5zZm9ybXsi
SW5zcGVjdG9yQ2xpZW50In0gPSB7CisgICAgImZvcndhcmQiID0+ICJJbnNwZWN0b3JDbGllbnQi
LAorICAgICJoZWFkZXIiID0+ICJJbnNwZWN0b3JDbGllbnQuaCIsCit9OworJHR5cGVUcmFuc2Zv
cm17IlJlZlB0ciJ9ID0geworICAgICJmb3J3YXJkSGVhZGVyIiA9PiAid3RmL1JlZlB0ci5oIiwK
K307CiskdHlwZVRyYW5zZm9ybXsiT2JqZWN0In0gPSB7CisgICAgInBhcmFtIiA9PiAiY29uc3Qg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIiwKKyAgICAicmV0dXJuIiA9PiAiUGFzc1JlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IiwKKyAgICAiZm9yd2FyZCIgPT4gIkluc3BlY3Rvck9iamVjdCIsCisg
ICAgImhlYWRlciIgPT4gIkluc3BlY3RvclZhbHVlcy5oIiwKKyAgICAicHVzaCIgPT4gInB1c2gi
Cit9OworJHR5cGVUcmFuc2Zvcm17IkFycmF5In0gPSB7CisgICAgInBhcmFtIiA9PiAiY29uc3Qg
UmVmUHRyPEluc3BlY3RvckFycmF5PiYiLAorICAgICJyZXRWYWwiID0+ICJQYXNzUmVmUHRyPElu
c3BlY3RvckFycmF5PiIsCisgICAgImZvcndhcmQiID0+ICJJbnNwZWN0b3JBcnJheSIsCisgICAg
ImhlYWRlciIgPT4gIkluc3BlY3RvclZhbHVlcy5oIiwKKyAgICAicHVzaCIgPT4gInB1c2giCit9
OworJHR5cGVUcmFuc2Zvcm17IlZhbHVlIn0gPSB7CisgICAgInBhcmFtIiA9PiAiY29uc3QgUmVm
UHRyPEluc3BlY3RvclZhbHVlPiYiLAorICAgICJyZXRWYWx1ZSIgPT4gIlBhc3NSZWZQdHI8SW5z
cGVjdG9yVmFsdWU+IiwKKyAgICAiZm9yd2FyZCIgPT4gIkluc3BlY3RvclZhbHVlIiwKKyAgICAi
aGVhZGVyIiA9PiAiSW5zcGVjdG9yVmFsdWVzLmgiLAorICAgICJwdXNoIiA9PiAicHVzaCIKK307
CiskdHlwZVRyYW5zZm9ybXsiU3RyaW5nIn0gPSB7CisgICAgInBhcmFtIiA9PiAiY29uc3QgU3Ry
aW5nJiIsCisgICAgInJldFZhbCIgPT4gIlN0cmluZyIsCisgICAgImZvcndhcmQiID0+ICJTdHJp
bmciLAorICAgICJoZWFkZXIiID0+ICJQbGF0Zm9ybVN0cmluZy5oIiwKKyAgICAicHVzaCIgPT4g
InB1c2hTdHJpbmciCit9OworJHR5cGVUcmFuc2Zvcm17ImxvbmcifSA9IHsKKyAgICAicGFyYW0i
ID0+ICJsb25nIiwKKyAgICAicmV0VmFsIiA9PiAibG9uZyIsCisgICAgImZvcndhcmQiID0+ICIi
LAorICAgICJoZWFkZXIiID0+ICIiLAorICAgICJwdXNoIiA9PiAicHVzaE51bWJlciIKK307Cisk
dHlwZVRyYW5zZm9ybXsidW5zaWduZWQgbG9uZyJ9ID0geworICAgICJwYXJhbSIgPT4gInVuc2ln
bmVkIGxvbmciLAorICAgICJyZXRWYWwiID0+ICJ1bnNpZ25lZCBsb25nIiwKKyAgICAiZm9yd2Fy
ZCIgPT4gIiIsCisgICAgImhlYWRlciIgPT4gIiIsCisgICAgInB1c2giID0+ICJwdXNoTnVtYmVy
IgorfTsKKyR0eXBlVHJhbnNmb3JteyJib29sZWFuIn0gPSB7CisgICAgInBhcmFtIiA9PiAiYm9v
bCIsCisgICAgInJldFZhbCI9PiAiYm9vbCIsCisgICAgImZvcndhcmQiID0+ICIiLAorICAgICJo
ZWFkZXIiID0+ICIiLAorICAgICJwdXNoIiA9PiAicHVzaEJvb2wiCit9OworJHR5cGVUcmFuc2Zv
cm17InZvaWQifSA9IHsKKyAgICAicmV0VmFsIiA9PiAidm9pZCIsCisgICAgImZvcndhcmQiID0+
ICIiLAorICAgICJoZWFkZXIiID0+ICIiCit9OworCisjIERlZmF1bHQgTGljZW5zZSBUZW1wbGF0
ZXMKKworbXkgJGxpY2Vuc2VUZW1wbGF0ZSA9IDw8ICJFT0YiOworLy8gQ29weXJpZ2h0IChjKSAy
MDEwIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0
IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KK0VPRgorCitteSAkY29kZUdl
bmVyYXRvcjsKK215ICRvdXRwdXREaXI7CitteSAkd3JpdGVEZXBlbmRlbmNpZXM7CitteSAkdmVy
Ym9zZTsKKworbXkgJG5hbWVzcGFjZTsKK215ICRmaWxlTmFtZTsKK215ICVkaXNjb3ZlcmVkVHlw
ZXM7CisKK215IEBjbGFzc0RlZmluaXRpb247CitteSBAZnVuY3Rpb25EZWZpbml0aW9uczsKKwor
c3ViIHR5cGVTcGVjCit7CisgICAgbXkgJHBhcmFtID0gc2hpZnQ7CisgICAgbXkgJHJldFZhbHVl
ID0gc2hpZnQ7CisKKyAgICBteSAkdHlwZSA9ICR0eXBlVHJhbnNmb3JteyRwYXJhbS0+dHlwZX0t
PnskcmV0VmFsdWUgPyAicmV0VmFsIiA6ICJwYXJhbSJ9OworICAgICRkaXNjb3ZlcmVkVHlwZXN7
JHBhcmFtLT50eXBlfSA9IDE7CisgICAgJHR5cGUgb3IgZGllICJpbnZhbGlkIHR5cGUgc3BlY2lm
aWNhdGlvbiBcIiIgLiAkcGFyYW0tPnR5cGUgLiJcIiI7CisgICAgcmV0dXJuICR0eXBlOworfQor
CisjIERlZmF1bHQgY29uc3RydWN0b3IKK3N1YiBuZXcKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hp
ZnQ7CisgICAgbXkgJHJlZmVyZW5jZSA9IHsgfTsKKworICAgICRjb2RlR2VuZXJhdG9yID0gc2hp
ZnQ7CisgICAgJG91dHB1dERpciA9IHNoaWZ0OworICAgIHNoaWZ0OyAjICR1c2VMYXllck9uVG9w
CisgICAgc2hpZnQ7ICMgJHByZXByb2Nlc3NvcgorICAgICR3cml0ZURlcGVuZGVuY2llcyA9IHNo
aWZ0OworICAgICR2ZXJib3NlID0gc2hpZnQ7CisKKyAgICBibGVzcygkcmVmZXJlbmNlLCAkb2Jq
ZWN0KTsKKyAgICByZXR1cm4gJHJlZmVyZW5jZTsKK30KKworIyBQYXJhbXM6ICdpZGxEb2N1bWVu
dCcgc3RydWN0CitzdWIgR2VuZXJhdGVNb2R1bGUKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7
CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAkbmFtZXNwYWNlID0gJGRhdGFOb2Rl
LT5tb2R1bGU7Cit9CisKKyMgUGFyYW1zOiAnaWRsRG9jdW1lbnQnIHN0cnVjdAorc3ViIEdlbmVy
YXRlSW50ZXJmYWNlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRpbnRlcmZh
Y2UgPSBzaGlmdDsKKyAgICBteSAkZGVmaW5lcyA9IHNoaWZ0OworCisgICAgbXkgJGNsYXNzTmFt
ZSA9ICRpbnRlcmZhY2UtPm5hbWU7CisgICAgJGZpbGVOYW1lID0gJGNsYXNzTmFtZTsKKworICAg
ICRkaXNjb3ZlcmVkVHlwZXN7Ikluc3BlY3RvckNsaWVudCJ9ID0gMTsKKyAgICAkZGlzY292ZXJl
ZFR5cGVzeyJSZWZQdHIifSA9IDE7CisKKyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICJjbGFz
cyAkY2xhc3NOYW1lIHsiKTsKKyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICJwdWJsaWM6Iik7
CisgICAgcHVzaChAY2xhc3NEZWZpbml0aW9uLCAiICAgICRjbGFzc05hbWUoSW5zcGVjdG9yQ2xp
ZW50KiBpbnNwZWN0b3JDbGllbnQpIDogbV9pbnNwZWN0b3JDbGllbnQoaW5zcGVjdG9yQ2xpZW50
KSB7IH0iKTsKKyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICIiKTsKKyAgICBwdXNoKEBjbGFz
c0RlZmluaXRpb24sIGdlbmVyYXRlRnVuY3Rpb25zRGVjbGFyYXRpb25zKCRpbnRlcmZhY2UsICRj
bGFzc05hbWUpKTsKKyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICIiKTsKKyAgICBwdXNoKEBj
bGFzc0RlZmluaXRpb24sICJwcml2YXRlOiIpOworICAgIHB1c2goQGNsYXNzRGVmaW5pdGlvbiwg
IiAgICB2b2lkIHNlbmRTaW1wbGVNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmKTsiKTsK
KyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICIgICAgSW5zcGVjdG9yQ2xpZW50KiBtX2luc3Bl
Y3RvckNsaWVudDsiKTsKKyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICJ9OyIpOworCisgICAg
cHVzaChAZnVuY3Rpb25EZWZpbml0aW9ucywgInZvaWQgJHtjbGFzc05hbWV9OjpzZW5kU2ltcGxl
TWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBmdW5jdGlvbk5hbWUpIik7CisgICAgcHVz
aChAZnVuY3Rpb25EZWZpbml0aW9ucywgInsiKTsKKyAgICBwdXNoKEBmdW5jdGlvbkRlZmluaXRp
b25zLCAiICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gYXJndW1lbnRzID0gSW5zcGVjdG9yQXJy
YXk6OmNyZWF0ZSgpOyIpOworICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5pdGlvbnMsICIgICAgYXJn
dW1lbnRzLT5wdXNoU3RyaW5nKGZ1bmN0aW9uTmFtZSk7Iik7CisgICAgcHVzaChAZnVuY3Rpb25E
ZWZpbml0aW9ucywgIiAgICBtX2luc3BlY3RvckNsaWVudC0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5k
KGFyZ3VtZW50cy0+dG9KU09OU3RyaW5nKCkpOyIpOworICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5p
dGlvbnMsICJ9Iik7Cit9CisKK3N1YiBnZW5lcmF0ZUZ1bmN0aW9uc0RlY2xhcmF0aW9ucworewor
ICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CisK
KyAgICBteSBAZnVuY3Rpb25EZWNsYXJhdGlvbnM7CisgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24g
KEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgeworICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0g
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CisgICAgICAgIG15ICRhYnN0cmFjdCA9ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiYWJzdHJhY3QifTsKKyAgICAg
ICAgbXkgJGFyZ3VtZW50cyA9ICIiOworICAgICAgICBmb3JlYWNoIG15ICRwYXJhbWV0ZXIgKEB7
JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAgJHBhcmFtZXRlci0+bmFtZSBv
ciBkaWUgImVtcHR5IGFyZ3VtZW50IG5hbWUgc3BlY2lmaWVkIGZvciBmdW5jdGlvbiAke2NsYXNz
TmFtZX06OiRmdW5jdGlvbk5hbWUgYW5kIGFyZ3VtZW50IHR5cGUgIiAuICRwYXJhbWV0ZXItPnR5
cGU7CisgICAgICAgICAgICAkYXJndW1lbnRzID0gJGFyZ3VtZW50cyAuICIsICIgaWYgKCRhcmd1
bWVudHMpOworICAgICAgICAgICAgJGFyZ3VtZW50cyA9ICRhcmd1bWVudHMgLiB0eXBlU3BlYygk
cGFyYW1ldGVyKSAuICIgIiAuICRwYXJhbWV0ZXItPm5hbWU7CisgICAgICAgIH0KKyAgICAgICAg
bXkgJHNpZ25hdHVyZSA9ICIgICAgIiAuIHR5cGVTcGVjKCRmdW5jdGlvbi0+c2lnbmF0dXJlLCAx
KSAuICIgJGZ1bmN0aW9uTmFtZSgkYXJndW1lbnRzKSI7CisgICAgICAgIHB1c2goQGZ1bmN0aW9u
RGVjbGFyYXRpb25zLCAkYWJzdHJhY3QgPyAiJHNpZ25hdHVyZSA9IDA7IiA6ICIkc2lnbmF0dXJl
OyIpOworICAgICAgICBwdXNoKEBmdW5jdGlvbkRlZmluaXRpb25zLCBnZW5lcmF0ZUZ1bmN0aW9u
c0ltcGwoJGNsYXNzTmFtZSwgJGZ1bmN0aW9uLCAkYXJndW1lbnRzKSkgaWYgISRhYnN0cmFjdDsK
KyAgICB9CisgICAgcmV0dXJuIEBmdW5jdGlvbkRlY2xhcmF0aW9uczsKK30KKworc3ViIGdlbmVy
YXRlSGVhZGVyCit7CisgICAgbXkgQGhlYWRlckNvbnRlbnQgPSBzcGxpdCgiXHIiLCAkbGljZW5z
ZVRlbXBsYXRlKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2lmbmRlZiAke2ZpbGVOYW1l
fV9oIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNkZWZpbmUgJHtmaWxlTmFtZX1faCIp
OworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIiKTsKKworICAgIG15IEBmb3J3YXJkSGVhZGVy
czsKKyAgICBmb3JlYWNoIG15ICR0eXBlIChrZXlzICVkaXNjb3ZlcmVkVHlwZXMpIHsKKyAgICAg
ICAgcHVzaChAZm9yd2FyZEhlYWRlcnMsICIjaW5jbHVkZSA8IiAuICR0eXBlVHJhbnNmb3JteyR0
eXBlfS0+eyJmb3J3YXJkSGVhZGVyIn0gLiAiPiIpIGlmICEkdHlwZVRyYW5zZm9ybXskdHlwZX0t
PnsiZm9yd2FyZEhlYWRlciJ9IGVxICAiIjsKKyAgICB9CisgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgc29ydCBAZm9yd2FyZEhlYWRlcnMpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIiKTsK
KyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAibmFtZXNwYWNlICRuYW1lc3BhY2UgeyIpOworICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIiKTsKKworICAgIG15IEBmb3J3YXJkRGVjbGFyYXRpb25z
OworICAgIGZvcmVhY2ggbXkgJHR5cGUgKGtleXMgJWRpc2NvdmVyZWRUeXBlcykgeworICAgICAg
ICBwdXNoKEBmb3J3YXJkRGVjbGFyYXRpb25zLCAiY2xhc3MgIiAuICR0eXBlVHJhbnNmb3JteyR0
eXBlfS0+eyJmb3J3YXJkIn0gLiAiOyIpIGlmICEkdHlwZVRyYW5zZm9ybXskdHlwZX0tPnsiZm9y
d2FyZCJ9IGVxICAiIjsKKyAgICB9CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgc29ydCBAZm9y
d2FyZERlY2xhcmF0aW9ucyk7CisKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiIik7CisgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgQGNsYXNzRGVmaW5pdGlvbik7CisgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9IC8vIG5hbWVzcGFjZSAk
bmFtZXNwYWNlIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiIpOworICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIjZW5kaWYgLy8gIWRlZmluZWQoJHtmaWxlTmFtZX1faCkiKTsKKyAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiIik7CisgICAgcmV0dXJuIEBoZWFkZXJDb250ZW50OworfQor
CitzdWIgZ2VuZXJhdGVTb3VyY2UKK3sKKyAgICBteSBAc291cmNlQ29udGVudCA9IHNwbGl0KCJc
ciIsICRsaWNlbnNlVGVtcGxhdGUpOworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICJcbiNpbmNs
dWRlIFwiY29uZmlnLmhcIiIpOworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICIjaW5jbHVkZSBc
IldlYiRmaWxlTmFtZS5oXCIiKTsKKyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiIik7CisgICAg
cHVzaChAc291cmNlQ29udGVudCwgIiNpZiBFTkFCTEUoSU5TUEVDVE9SKSIpOworICAgIHB1c2go
QHNvdXJjZUNvbnRlbnQsICIiKTsKKworICAgIG15ICVoZWFkZXJzOworICAgIGZvcmVhY2ggbXkg
JHR5cGUgKGtleXMgJWRpc2NvdmVyZWRUeXBlcykgeworICAgICAgICAkaGVhZGVyc3siI2luY2x1
ZGUgXCIiIC4gJHR5cGVUcmFuc2Zvcm17JHR5cGV9LT57ImhlYWRlciJ9IC4gIlwiIn0gPSAxIGlm
ICEkdHlwZVRyYW5zZm9ybXskdHlwZX0tPnsiaGVhZGVyIn0gZXEgICIiOworICAgIH0KKyAgICBw
dXNoKEBzb3VyY2VDb250ZW50LCBzb3J0IGtleXMgJWhlYWRlcnMpOworICAgIHB1c2goQHNvdXJj
ZUNvbnRlbnQsICIiKTsKKyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAibmFtZXNwYWNlICRuYW1l
c3BhY2UgeyIpOworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICIiKTsKKyAgICBwdXNoKEBzb3Vy
Y2VDb250ZW50LCBAZnVuY3Rpb25EZWZpbml0aW9ucyk7CisgICAgcHVzaChAc291cmNlQ29udGVu
dCwgIiIpOworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICJ9IC8vIG5hbWVzcGFjZSAkbmFtZXNw
YWNlIik7CisgICAgcHVzaChAc291cmNlQ29udGVudCwgIiIpOworICAgIHB1c2goQHNvdXJjZUNv
bnRlbnQsICIjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikiKTsKKyAgICBwdXNoKEBzb3VyY2VD
b250ZW50LCAiIik7CisgICAgcmV0dXJuIEBzb3VyY2VDb250ZW50OworfQorCitzdWIgZ2VuZXJh
dGVGdW5jdGlvbnNJbXBsCit7CisgICAgbXkgJGNsYXNzTmFtZSA9IHNoaWZ0OworICAgIG15ICRm
dW5jdGlvbiA9IHNoaWZ0OworICAgIG15ICRhcmd1bWVudHMgPSBzaGlmdDsKKworICAgIG15IEBm
dW5jOworCisgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1l
OworCisgICAgcHVzaChAZnVuYywgdHlwZVNwZWMoJGZ1bmN0aW9uLT5zaWduYXR1cmUsIDEpIC4g
IiAiIC4gJGNsYXNzTmFtZSAuICI6OiIgLiAkZnVuY3Rpb25OYW1lIC4gIigiIC4gJGFyZ3VtZW50
cyAuICIpIik7CisgICAgcHVzaChAZnVuYywgInsiKTsKKworICAgIG15ICRudW1QYXJhbWV0ZXJz
ID0gQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9OworICAgIGlmICgkbnVtUGFyYW1ldGVycyA+IDAp
IHsKKyAgICAgICAgcHVzaChAZnVuYywgIiAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGFyZ3Vt
ZW50cyA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsiKTsKKyAgICAgICAgcHVzaChAZnVuYywg
IiAgICBhcmd1bWVudHMtPnB1c2hTdHJpbmcoXCIkZnVuY3Rpb25OYW1lXCIpOyIpOworICAgICAg
ICBmb3JlYWNoIG15ICRwYXJhbWV0ZXIgKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAg
ICAgICAgICAgbXkgJHB1c2hDYWxsID0gICR0eXBlVHJhbnNmb3JteyRwYXJhbWV0ZXItPnR5cGV9
LT57InB1c2gifTsKKyAgICAgICAgICAgIHB1c2goQGZ1bmMsICIgICAgYXJndW1lbnRzLT4kcHVz
aENhbGwoIiAuICRwYXJhbWV0ZXItPm5hbWUgLiAiKTsiKTsKKyAgICAgICAgfQorICAgICAgICBw
dXNoKEBmdW5jLCAiICAgIG1faW5zcGVjdG9yQ2xpZW50LT5zZW5kTWVzc2FnZVRvRnJvbnRlbmQo
YXJndW1lbnRzLT50b0pTT05TdHJpbmcoKSk7Iik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHVz
aChAZnVuYywgIiAgICBzZW5kU2ltcGxlTWVzc2FnZVRvRnJvbnRlbmQoXCIkZnVuY3Rpb25OYW1l
XCIpOyIpOworICAgIH0KKworICAgIHB1c2goQGZ1bmMsICJ9Iik7CisgICAgcHVzaChAZnVuYywg
IiIpOworICAgIHJldHVybiBAZnVuYzsKK30KKworc3ViIGZpbmlzaAoreworICAgIG15ICRvYmpl
Y3QgPSBzaGlmdDsKKworICAgIG9wZW4obXkgJFNPVVJDRSwgIj4kb3V0cHV0RGlyL1dlYiRmaWxl
TmFtZS5jcHAiKSB8fCBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkb3V0cHV0RGlyL1dlYiRmaWxl
TmFtZS5jcHAiOworICAgIG9wZW4obXkgJEhFQURFUiwgIj4kb3V0cHV0RGlyL1dlYiRmaWxlTmFt
ZS5oIikgfHwgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJG91dHB1dERpci9XZWIkZmlsZU5hbWUu
aCI7CisKKyAgICBwcmludCAkU09VUkNFIGpvaW4oIlxuIiwgZ2VuZXJhdGVTb3VyY2UoKSk7Cisg
ICAgY2xvc2UoJFNPVVJDRSk7CisgICAgdW5kZWYoJFNPVVJDRSk7CisKKyAgICBwcmludCAkSEVB
REVSIGpvaW4oIlxuIiwgZ2VuZXJhdGVIZWFkZXIoKSk7CisgICAgY2xvc2UoJEhFQURFUik7Cisg
ICAgdW5kZWYoJEhFQURFUik7Cit9CisKKzE7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCmluZGV4IDMyNWUxMmMuLjVjMmZlOWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC04Myw2ICs4Myw3IEBACiAjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5jbHVkZSAiVGV4dEl0
ZXJhdG9yLmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yRnJvbnRlbmQyLmgiCiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1
ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgpAQCAtNDM1LDEwICs0MzYsMTEgQEAgdm9pZCBJbnNwZWN0
b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoY29uc3QgU2NyaXB0T2JqZWN0JiB3ZWJJbnNw
ZWN0b3IpCiB7CiAgICAgbV9vcGVuaW5nRnJvbnRlbmQgPSBmYWxzZTsKICAgICBtX2Zyb250ZW5k
ID0gbmV3IEluc3BlY3RvckZyb250ZW5kKHdlYkluc3BlY3RvciwgbV9jbGllbnQpOworICAgIG1f
ZnJvbnRlbmQyID0gbmV3IEluc3BlY3RvckZyb250ZW5kMihtX2NsaWVudCk7CiAgICAgcmVsZWFz
ZURPTUFnZW50KCk7CiAgICAgbV9kb21BZ2VudCA9IEluc3BlY3RvckRPTUFnZW50OjpjcmVhdGUo
bV9jc3NTdG9yZS5nZXQoKSwgbV9mcm9udGVuZC5nZXQoKSk7CiAgICAgaWYgKG1fdGltZWxpbmVB
Z2VudCkKLSAgICAgICAgbV90aW1lbGluZUFnZW50LT5yZXNldEZyb250ZW5kUHJveHlPYmplY3Qo
bV9mcm9udGVuZC5nZXQoKSk7CisgICAgICAgIG1fdGltZWxpbmVBZ2VudC0+cmVzZXRGcm9udGVu
ZFByb3h5T2JqZWN0KG1fZnJvbnRlbmQyLmdldCgpKTsKIAogICAgIC8vIEluaXRpYWxpemUgV2Vi
IEluc3BlY3RvciB0aXRsZS4KICAgICBtX2Zyb250ZW5kLT5pbnNwZWN0ZWRVUkxDaGFuZ2VkKG1f
aW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT51cmwoKS5zdHJpbmcoKSk7CkBA
IC0xMDkwLDcgKzEwOTIsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnN0YXJ0VGltZWxp
bmVQcm9maWxlcigpCiAgICAgaWYgKG1fdGltZWxpbmVBZ2VudCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgbV90aW1lbGluZUFnZW50ID0gbmV3IEluc3BlY3RvclRpbWVsaW5lQWdlbnQobV9mcm9u
dGVuZC5nZXQoKSk7CisgICAgbV90aW1lbGluZUFnZW50ID0gbmV3IEluc3BlY3RvclRpbWVsaW5l
QWdlbnQobV9mcm9udGVuZDIuZ2V0KCkpOwogICAgIGlmIChtX2Zyb250ZW5kKQogICAgICAgICBt
X2Zyb250ZW5kLT50aW1lbGluZVByb2ZpbGVyV2FzU3RhcnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IGFmMzYzODMuLjhhZjg3MTcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTY4LDYgKzY4LDcgQEAgY2xhc3Mg
SW5zcGVjdG9yQmFja2VuZDsKIGNsYXNzIEluc3BlY3RvckNsaWVudDsKIGNsYXNzIEluc3BlY3Rv
ckNTU1N0b3JlOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJbnNwZWN0b3JGcm9u
dGVuZDI7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudDsKIGNsYXNzIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ7CiBjbGFzcyBLVVJMOwpAQCAtMzMwLDYgKzMzMSw3IEBAIHByaXZhdGU6CiAg
ICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kQ2xpZW50PiBtX2luc3BlY3RvckZyb250ZW5kQ2xp
ZW50OwogICAgIGJvb2wgbV9vcGVuaW5nRnJvbnRlbmQ7CiAgICAgT3duUHRyPEluc3BlY3RvckZy
b250ZW5kPiBtX2Zyb250ZW5kOworICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZDI+IG1fZnJv
bnRlbmQyOwogICAgIFJlZlB0cjxJbnNwZWN0b3JET01BZ2VudD4gbV9kb21BZ2VudDsKICAgICBP
d25QdHI8SW5zcGVjdG9yQ1NTU3RvcmU+IG1fY3NzU3RvcmU7CiAgICAgT3duUHRyPEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ+IG1fdGltZWxpbmVBZ2VudDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kLmNwcAppbmRleCBmYWQzMzAzLi4yZDViYTgwIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmQuY3BwCkBAIC0yOTEsMTQgKzI5MSw2IEBAIHZvaWQgSW5zcGVjdG9y
RnJvbnRlbmQ6OnRpbWVsaW5lUHJvZmlsZXJXYXNTdG9wcGVkKCkKICAgICBjYWxsU2ltcGxlRnVu
Y3Rpb24oInRpbWVsaW5lUHJvZmlsZXJXYXNTdG9wcGVkIik7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
RnJvbnRlbmQ6OmFkZFJlY29yZFRvVGltZWxpbmUoY29uc3QgU2NyaXB0T2JqZWN0JiByZWNvcmQp
Ci17Ci0gICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1fd2ViSW5zcGVjdG9yLCAiZGlz
cGF0Y2giKTsgCi0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoImFkZFJlY29yZFRvVGltZWxp
bmUiKTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChyZWNvcmQpOwotICAgIGZ1bmN0aW9u
LmNhbGwoKTsKLX0KLQogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogdm9pZCBJbnNw
ZWN0b3JGcm9udGVuZDo6YXR0YWNoRGVidWdnZXJXaGVuU2hvd24oKQogewpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaCBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kLmgKaW5kZXggMGU5NjY4OC4uMzVlNjkzNiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaAorKysgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZC5oCkBAIC0xNTksNyArMTU5LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAgICAgICAgIHZvaWQgdGltZWxpbmVQcm9maWxlcldhc1N0YXJ0ZWQoKTsKICAg
ICAgICAgdm9pZCB0aW1lbGluZVByb2ZpbGVyV2FzU3RvcHBlZCgpOwotICAgICAgICB2b2lkIGFk
ZFJlY29yZFRvVGltZWxpbmUoY29uc3QgU2NyaXB0T2JqZWN0Jik7CiAKICNpZiBFTkFCTEUoV09S
S0VSUykKICAgICAgICAgdm9pZCBkaWRDcmVhdGVXb3JrZXIoY29uc3QgSW5zcGVjdG9yV29ya2Vy
UmVzb3VyY2UmKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kMi5pbnNwZWN0b3IgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIuaW5z
cGVjdG9yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiMjg3YTkKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIuaW5zcGVj
dG9yCkBAIC0wLDAgKzEsMTA4IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMDkgVGhlIENocm9taXVt
IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3Vu
ZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCittb2R1bGUgV2ViQ29yZSB7CisKKyAgICBpbnRlcmZh
Y2UgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUiwgSlNdIEluc3BlY3RvckZyb250ZW5kMiB7CisgICAg
ICAgIHZvaWQgZGlkQ29tbWl0TG9hZCgpOworCisgICAgICAgIHZvaWQgcG9wdWxhdGVGcm9udGVu
ZFNldHRpbmdzKGluIFN0cmluZyBzZXR0aW5ncyk7CisKKyAgICAgICAgdm9pZCB1cGRhdGVDb25z
b2xlTWVzc2FnZUV4cGlyZWRDb3VudChpbiB1bnNpZ25lZCBsb25nIGNvdW50KTsKKyAgICAgICAg
dm9pZCB1cGRhdGVDb25zb2xlTWVzc2FnZVJlcGVhdENvdW50KGluIHVuc2lnbmVkIGxvbmcgY291
bnQpOworICAgICAgICB2b2lkIGNsZWFyQ29uc29sZU1lc3NhZ2VzKCk7CisKKyAgICAgICAgdm9p
ZCB1cGRhdGVSZXNvdXJjZShpbiB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGluIE9iamVjdCBy
ZXNvdXJjZU9iaik7CisgICAgICAgIHZvaWQgcmVtb3ZlUmVzb3VyY2UoaW4gdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyKTsKKyAgICAgICAgdm9pZCBkaWRHZXRSZXNvdXJjZUNvbnRlbnQoaW4gbG9u
ZyBjYWxsSWQsIGluIFN0cmluZyBjb250ZW50KTsKKworICAgICAgICB2b2lkIHVwZGF0ZUZvY3Vz
ZWROb2RlKGluIGxvbmcgbm9kZUlkKTsKKyAgICAgICAgdm9pZCBzZXRBdHRhY2hlZFdpbmRvdyhp
biBib29sZWFuIGF0dGFjaGVkKTsKKyAgICAgICAgdm9pZCBzaG93UGFuZWwoaW4gbG9uZyBwYW5l
bCk7CisgICAgICAgIHZvaWQgcG9wdWxhdGVJbnRlcmZhY2UoKTsKKyAgICAgICAgdm9pZCByZXNl
dCgpOworCisgICAgICAgIHZvaWQgYnJpbmdUb0Zyb250KCk7CisgICAgICAgIHZvaWQgaW5zcGVj
dGVkVVJMQ2hhbmdlZChpbiBTdHJpbmcgdXJsKTsKKworICAgICAgICB2b2lkIHJlc291cmNlVHJh
Y2tpbmdXYXNFbmFibGVkKCk7CisgICAgICAgIHZvaWQgcmVzb3VyY2VUcmFja2luZ1dhc0Rpc2Fi
bGVkKCk7CisKKyAgICAgICAgdm9pZCBzZWFyY2hpbmdGb3JOb2RlV2FzRW5hYmxlZCgpOworICAg
ICAgICB2b2lkIHNlYXJjaGluZ0Zvck5vZGVXYXNEaXNhYmxlZCgpOworCisgICAgICAgIHZvaWQg
dXBkYXRlUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShpbiBsb25nIHN0YXRlKTsKKworI2lmIGRlZmlu
ZWQoSkFWQVNDUklQVF9ERUJVR0dFUikKKyAgICAgICAgdm9pZCBhdHRhY2hEZWJ1Z2dlcldoZW5T
aG93bigpOworICAgICAgICB2b2lkIGRlYnVnZ2VyV2FzRW5hYmxlZCgpOworICAgICAgICB2b2lk
IGRlYnVnZ2VyV2FzRGlzYWJsZWQoKTsKKworICAgICAgICB2b2lkIHBhcnNlZFNjcmlwdFNvdXJj
ZShpbiBTdHJpbmcgc291cmNlSUQsIGluIFN0cmluZyB1cmwsIGluIFN0cmluZyBkYXRhLCBpbiBs
b25nIGZpcnN0TGluZSwgaW4gbG9uZyBzY3JpcHRXb3JsZFR5cGUpOworICAgICAgICB2b2lkIHJl
c3RvcmVkQnJlYWtwb2ludChpbiBTdHJpbmcgc291cmNlSUQsIGluIFN0cmluZyB1cmwsIGluIGxv
bmcgbGluZSwgaW4gYm9vbGVhbiBlbmFibGVkLCBpbiBTdHJpbmcgY29uZGl0aW9uKTsKKyAgICAg
ICAgdm9pZCBmYWlsZWRUb1BhcnNlU2NyaXB0U291cmNlKGluIFN0cmluZyB1cmwsIGluIFN0cmlu
ZyBkYXRhLCBpbiBsb25nIGZpcnN0TGluZSwgaW4gbG9uZyBlcnJvckxpbmUsIGluIFN0cmluZyBl
cnJvck1lc3NhZ2UpOworICAgICAgICB2b2lkIHJlc3VtZWRTY3JpcHQoKTsKKworICAgICAgICB2
b2lkIHByb2ZpbGVyV2FzRW5hYmxlZCgpOworICAgICAgICB2b2lkIHByb2ZpbGVyV2FzRGlzYWJs
ZWQoKTsKKyAgICAgICAgdm9pZCBhZGRQcm9maWxlSGVhZGVyKGluIFZhbHVlIHByb2ZpbGUpOwor
ICAgICAgICB2b2lkIHNldFJlY29yZGluZ1Byb2ZpbGUoaW4gYm9vbGVhbiBpc1Byb2ZpbGluZyk7
CisgICAgICAgIHZvaWQgZGlkR2V0UHJvZmlsZUhlYWRlcnMoaW4gbG9uZyBjYWxsSWQsIGluIEFy
cmF5IGhlYWRlcnMpOworICAgICAgICB2b2lkIGRpZEdldFByb2ZpbGUoaW4gbG9uZyBjYWxsSWQs
IGluIFZhbHVlIHByb2ZpbGUpOworI2VuZGlmCisKKyNpZiAgZGVmaW5lZChFTkFCTEVfREFUQUJB
U0UpCisgICAgICAgIHZvaWQgYWRkRGF0YWJhc2UoaW4gT2JqZWN0IGRiT2JqKTsKKyAgICAgICAg
dm9pZCBzZWxlY3REYXRhYmFzZShpbiBsb25nIGRhdGFiYXNlSWQpOworICAgICAgICB2b2lkIGRp
ZEdldERhdGFiYXNlVGFibGVOYW1lcyhpbiBsb25nIGNhbGxJZCwgaW4gQXJyYXkgdGFibGVOYW1l
cyk7CisjZW5kaWYKKworI2lmIGRlZmluZWQoRU5BQkxFX0RPTV9TVE9SQUdFKQorICAgICAgICB2
b2lkIGFkZERPTVN0b3JhZ2UoaW4gT2JqZWN0IGRvbVN0b3JhZ2VPYmopOworICAgICAgICB2b2lk
IHNlbGVjdERPTVN0b3JhZ2UoaW4gbG9uZyBzdG9yYWdlSWQpOworICAgICAgICB2b2lkIGRpZEdl
dERPTVN0b3JhZ2VFbnRyaWVzKGluIGxvbmcgY2FsbElkLCBpbiBBcnJheSBlbnRyaWVzKTsKKyAg
ICAgICAgdm9pZCBkaWRTZXRET01TdG9yYWdlSXRlbShpbiBsb25nIGNhbGxJZCwgaW4gYm9vbGVh
biBzdWNjZXNzKTsKKyAgICAgICAgdm9pZCBkaWRSZW1vdmVET01TdG9yYWdlSXRlbShpbiBsb25n
IGNhbGxJZCwgaW4gYm9vbGVhbiBzdWNjZXNzKTsKKyAgICAgICAgdm9pZCB1cGRhdGVET01TdG9y
YWdlKGluIGxvbmcgc3RvcmFnZUlkKTsKKyNlbmRpZgorCisgICAgICAgIHZvaWQgc2V0RG9jdW1l
bnQoaW4gT2JqZWN0IHJvb3QpOworICAgICAgICB2b2lkIHNldERldGFjaGVkUm9vdChpbiBPYmpl
Y3Qgcm9vdCk7CisgICAgICAgIHZvaWQgc2V0Q2hpbGROb2RlcyhpbiBsb25nIHBhcmVudElkLCBp
biBBcnJheSBub2Rlcyk7CisgICAgICAgIHZvaWQgY2hpbGROb2RlQ291bnRVcGRhdGVkKGluIGxv
bmcgaWQsIGluIGxvbmcgbmV3VmFsdWUpOworICAgICAgICB2b2lkIGNoaWxkTm9kZUluc2VydGVk
KGluIGxvbmcgcGFyZW50SWQsIGluIGxvbmcgcHJldklkLCBpbiBPYmplY3Qgbm9kZSk7CisgICAg
ICAgIHZvaWQgY2hpbGROb2RlUmVtb3ZlZChpbiBsb25nIHBhcmVudElkLCBpbiBsb25nIGlkKTsK
KyAgICAgICAgdm9pZCBhdHRyaWJ1dGVzVXBkYXRlZChpbiBsb25nIGlkLCBpbiBBcnJheSBhdHRy
aWJ1dGVzKTsKKyAgICAgICAgdm9pZCBkaWRHZXRDaGlsZE5vZGVzKGluIGxvbmcgY2FsbElkKTsK
KyAgICAgICAgdm9pZCBkaWRBcHBseURvbUNoYW5nZShpbiBsb25nIGNhbGxJZCwgaW4gYm9vbGVh
biBzdWNjZXNzKTsKKyAgICAgICAgdm9pZCBkaWRHZXRFdmVudExpc3RlbmVyc0Zvck5vZGUoaW4g
bG9uZyBjYWxsSWQsIGluIGxvbmcgbm9kZUlkLCBpbiBBcnJheSBsaXN0ZW5lcnNBcnJheSk7Cisg
ICAgICAgIHZvaWQgZGlkUmVtb3ZlTm9kZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBub2RlSWQp
OworICAgICAgICB2b2lkIGRpZENoYW5nZVRhZ05hbWUoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcg
bm9kZUlkKTsKKworICAgICAgICB2b2lkIGRpZEdldFN0eWxlcyhpbiBsb25nIGNhbGxJZCwgaW4g
VmFsdWUgc3R5bGVzKTsKKyAgICAgICAgdm9pZCBkaWRHZXRBbGxTdHlsZXMoaW4gbG9uZyBjYWxs
SWQsIGluIEFycmF5IHN0eWxlcyk7CisgICAgICAgIHZvaWQgZGlkR2V0SW5saW5lU3R5bGUoaW4g
bG9uZyBjYWxsSWQsIGluIFZhbHVlIHN0eWxlKTsKKyAgICAgICAgdm9pZCBkaWRHZXRTdHlsZVNo
ZWV0KGluIGxvbmcgY2FsbElkLCBpbiBWYWx1ZSBzdHlsZVNoZWV0KTsKKyAgICAgICAgdm9pZCBk
aWRHZXRDb21wdXRlZFN0eWxlKGluIGxvbmcgY2FsbElkLCBpbiBWYWx1ZSBzdHlsZSk7CisgICAg
ICAgIHZvaWQgZGlkQXBwbHlTdHlsZVRleHQoaW4gbG9uZyBjYWxsSWQsIGluIGJvb2xlYW4gc3Vj
Y2VzcywgaW4gVmFsdWUgc3R5bGUsIGluIEFycmF5IGNoYW5nZWRQcm9wZXJ0aWVzKTsKKyAgICAg
ICAgdm9pZCBkaWRTZXRTdHlsZVRleHQoaW4gbG9uZyBjYWxsSWQsIGluIGJvb2xlYW4gc3VjY2Vz
cyk7CisgICAgICAgIHZvaWQgZGlkU2V0U3R5bGVQcm9wZXJ0eShpbiBsb25nIGNhbGxJZCwgaW4g
Ym9vbGVhbiBzdWNjZXNzKTsKKyAgICAgICAgdm9pZCBkaWRUb2dnbGVTdHlsZUVuYWJsZWQoaW4g
bG9uZyBjYWxsSWQsIGluIFZhbHVlIHN0eWxlKTsKKyAgICAgICAgdm9pZCBkaWRTZXRSdWxlU2Vs
ZWN0b3IoaW4gbG9uZyBjYWxsSWQsIGluIFZhbHVlIHJ1bGUsIGluIGJvb2xlYW4gc2VsZWN0b3JB
ZmZlY3RzTm9kZSk7CisgICAgICAgIHZvaWQgZGlkQWRkUnVsZShpbiBsb25nIGNhbGxJZCwgaW4g
VmFsdWUgcnVsZSwgaW4gYm9vbGVhbiBzZWxlY3RvckFmZmVjdHNOb2RlKTsKKworICAgICAgICB2
b2lkIHRpbWVsaW5lUHJvZmlsZXJXYXNTdGFydGVkKCk7CisgICAgICAgIHZvaWQgdGltZWxpbmVQ
cm9maWxlcldhc1N0b3BwZWQoKTsKKyAgICAgICAgdm9pZCBhZGRSZWNvcmRUb1RpbWVsaW5lKGlu
IE9iamVjdCByZWNvcmQpOworCisgICAgICAgIHZvaWQgZGlkR2V0Q29va2llcyhpbiBsb25nIGNh
bGxJZCwgaW4gQXJyYXkgY29va2llcywgaW4gU3RyaW5nIGNvb2tpZXNTdHJpbmcpOworCisgICAg
ICAgIHZvaWQgYWRkTm9kZXNUb1NlYXJjaFJlc3VsdChpbiBTdHJpbmcgbm9kZUlkcyk7CisKKyAg
ICAgICAgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChpbiBsb25nIGl0ZW1JZCk7CisgICAg
ICAgIHZvaWQgY29udGV4dE1lbnVDbGVhcmVkKCk7CisKKyAgICAgICAgdm9pZCBldmFsdWF0ZUZv
clRlc3RJbkZyb250ZW5kKGluIGxvbmcgY2FsbElkLCBpbiBTdHJpbmcgc2NyaXB0KTsKKyAgICB9
OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRl
eCBhYjUzMzE5Li42N2VmYmM4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1l
bGluZUFnZW50LmNwcApAQCAtMzQsMTEgKzM0LDExIEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikK
IAogI2luY2x1ZGUgIkV2ZW50LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNp
bmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlRpbWVsaW5lUmVjb3JkRmFjdG9yeS5o
IgorI2luY2x1ZGUgIldlYkluc3BlY3RvckZyb250ZW5kMi5oIgogCiAjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CiAKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBp
bnQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c19pbnN0YW5jZUNvdW50ID0gMDsKIAotSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnNwZWN0b3JGcm9udGVu
ZCogZnJvbnRlbmQpCitJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0b3JUaW1lbGluZUFn
ZW50KEluc3BlY3RvckZyb250ZW5kMiogZnJvbnRlbmQpCiAgICAgOiBtX2Zyb250ZW5kKGZyb250
ZW5kKQogewogICAgICsrc19pbnN0YW5jZUNvdW50OwpAQCAtNjIsOSArNjIsOSBAQCB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OnB1c2hHQ0V2ZW50UmVjb3JkcygpCiAgICAgR0NFdmVudHMg
ZXZlbnRzID0gbV9nY0V2ZW50czsKICAgICBtX2djRXZlbnRzLmNsZWFyKCk7CiAgICAgZm9yIChH
Q0V2ZW50czo6aXRlcmF0b3IgaSA9IGV2ZW50cy5iZWdpbigpOyBpICE9IGV2ZW50cy5lbmQoKTsg
KytpKSB7Ci0gICAgICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rv
cnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgaS0+c3RhcnRUaW1lKTsKLSAgICAg
ICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR0NFdmVu
dERhdGEobV9mcm9udGVuZCwgaS0+Y29sbGVjdGVkQnl0ZXMpKTsKLSAgICAgICAgcmVjb3JkLnNl
dCgiZW5kVGltZSIsIGktPmVuZFRpbWUpOworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoaS0+
c3RhcnRUaW1lKTsKKyAgICAgICAgcmVjb3JkLT5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZh
Y3Rvcnk6OmNyZWF0ZUdDRXZlbnREYXRhKGktPmNvbGxlY3RlZEJ5dGVzKSk7CisgICAgICAgIHJl
Y29yZC0+c2V0TnVtYmVyKCJlbmRUaW1lIiwgaS0+ZW5kVGltZSk7CiAgICAgICAgIGFkZFJlY29y
ZFRvVGltZWxpbmUocmVjb3JkLCBHQ0V2ZW50VGltZWxpbmVSZWNvcmRUeXBlKTsKICAgICB9CiB9
CkBAIC04Myw3ICs4Myw3IEBAIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6On5JbnNwZWN0b3JUaW1l
bGluZUFnZW50KCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsQ2FsbEZ1bmN0
aW9uKGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUpCiB7Ci0gICAgcHVz
aEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVGdW5jdGlvbkNhbGxE
YXRhKG1fZnJvbnRlbmQsIHNjcmlwdE5hbWUsIHNjcmlwdExpbmUpLCBGdW5jdGlvbkNhbGxUaW1l
bGluZVJlY29yZFR5cGUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlRnVuY3Rpb25DYWxsRGF0YShzY3JpcHROYW1lLCBzY3JpcHRMaW5lKSwgRnVu
Y3Rpb25DYWxsVGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpkaWRDYWxsRnVuY3Rpb24oKQpAQCAtOTMsNyArOTMsNyBAQCB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZENhbGxGdW5jdGlvbigpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6d2lsbERpc3BhdGNoRXZlbnQoY29uc3QgRXZlbnQmIGV2ZW50KQogewotICAgIHB1
c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZlbnREaXNwYXRj
aERhdGEobV9mcm9udGVuZCwgZXZlbnQpLAorICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZlbnREaXNwYXRjaERhdGEoZXZlbnQpLAogICAgICAgICBF
dmVudERpc3BhdGNoVGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KIApAQCAtMTA0LDcgKzEwNCw3IEBA
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRGlzcGF0Y2hFdmVudCgpCiAKIHZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbExheW91dCgpCiB7Ci0gICAgcHVzaEN1cnJlbnRS
ZWNvcmQobV9mcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCksIExheW91dFRpbWVsaW5lUmVjb3Jk
VHlwZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwg
TGF5b3V0VGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRMYXlvdXQoKQpAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6ZGlkTGF5b3V0KCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxs
UmVjYWxjdWxhdGVTdHlsZSgpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQobV9mcm9udGVuZC0+
bmV3U2NyaXB0T2JqZWN0KCksIFJlY2FsY3VsYXRlU3R5bGVzVGltZWxpbmVSZWNvcmRUeXBlKTsK
KyAgICBwdXNoQ3VycmVudFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBSZWNhbGN1
bGF0ZVN0eWxlc1RpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6ZGlkUmVjYWxjdWxhdGVTdHlsZSgpCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZWNhbGN1bGF0ZVN0eWxlKCkKIAogdm9pZCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsUGFpbnQoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSAg
ICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhaW50RGF0
YShtX2Zyb250ZW5kLCByZWN0KSwgUGFpbnRUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHB1c2hD
dXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFpbnREYXRhKHJlY3Qp
LCBQYWludFRpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6ZGlkUGFpbnQoKQpAQCAtMTM0LDE0ICsxMzQsMTQgQEAgdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpkaWRQYWludCgpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2ls
bFdyaXRlSFRNTCh1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKQog
ewotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFy
c2VIVE1MRGF0YShtX2Zyb250ZW5kLCBsZW5ndGgsIHN0YXJ0TGluZSksIFBhcnNlSFRNTFRpbWVs
aW5lUmVjb3JkVHlwZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVQYXJzZUhUTUxEYXRhKGxlbmd0aCwgc3RhcnRMaW5lKSwgUGFyc2VIVE1MVGlt
ZWxpbmVSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRX
cml0ZUhUTUwodW5zaWduZWQgaW50IGVuZExpbmUpCiB7CiAgICAgaWYgKCFtX3JlY29yZFN0YWNr
LmlzRW1wdHkoKSkgewogICAgICAgICBUaW1lbGluZVJlY29yZEVudHJ5IGVudHJ5ID0gbV9yZWNv
cmRTdGFjay5sYXN0KCk7Ci0gICAgICAgIGVudHJ5LmRhdGEuc2V0KCJlbmRMaW5lIiwgZW5kTGlu
ZSk7CisgICAgICAgIGVudHJ5LmRhdGEtPnNldE51bWJlcigiZW5kTGluZSIsIGVuZExpbmUpOwog
ICAgICAgICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoUGFyc2VIVE1MVGltZWxpbmVSZWNvcmRU
eXBlKTsKICAgICB9CiB9CkBAIC0xNDksMjIgKzE0OSwyMiBAQCB2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OmRpZFdyaXRlSFRNTCh1bnNpZ25lZCBpbnQgZW5kTGluZSkKIHZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6ZGlkSW5zdGFsbFRpbWVyKGludCB0aW1lcklkLCBpbnQgdGltZW91
dCwgYm9vbCBzaW5nbGVTaG90KQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwotICAgIFNj
cmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNS
ZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwotICAgIHJlY29yZC5zZXQo
ImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVRpbWVySW5zdGFsbERhdGEobV9m
cm9udGVuZCwgdGltZXJJZCwgdGltZW91dCwgc2luZ2xlU2hvdCkpOworICAgIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJp
Y1JlY29yZChXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgcmVjb3JkLT5zZXQoImRhdGEiLCBU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVRpbWVySW5zdGFsbERhdGEodGltZXJJZCwgdGlt
ZW91dCwgc2luZ2xlU2hvdCkpOwogICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBUaW1l
ckluc3RhbGxUaW1lbGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZFJlbW92ZVRpbWVyKGludCB0aW1lcklkKQogewogICAgIHB1c2hHQ0V2ZW50UmVj
b3JkcygpOwotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwot
ICAgIHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVy
aWNUaW1lckRhdGEobV9mcm9udGVuZCwgdGltZXJJZCkpOworICAgIFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29y
ZChXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgcmVjb3JkLT5zZXQoImRhdGEiLCBUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNUaW1lckRhdGEodGltZXJJZCkpOwogICAgIGFk
ZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBUaW1lclJlbW92ZVRpbWVsaW5lUmVjb3JkVHlwZSk7
CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbEZpcmVUaW1lcihpbnQgdGlt
ZXJJZCkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUdlbmVyaWNUaW1lckRhdGEobV9mcm9udGVuZCwgdGltZXJJZCksIFRpbWVyRmlyZVRpbWVs
aW5lUmVjb3JkVHlwZSk7IAorICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlR2VuZXJpY1RpbWVyRGF0YSh0aW1lcklkKSwgVGltZXJGaXJlVGltZWxpbmVS
ZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRGaXJlVGlt
ZXIoKQpAQCAtMTc0LDcgKzE3NCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlk
RmlyZVRpbWVyKCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsQ2hhbmdlWEhS
UmVhZHlTdGF0ZShjb25zdCBTdHJpbmcmIHVybCwgaW50IHJlYWR5U3RhdGUpCiB7Ci0gICAgcHVz
aEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJSZWFkeVN0YXRl
Q2hhbmdlRGF0YShtX2Zyb250ZW5kLCB1cmwsIHJlYWR5U3RhdGUpLCBYSFJSZWFkeVN0YXRlQ2hh
bmdlUmVjb3JkVHlwZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVYSFJSZWFkeVN0YXRlQ2hhbmdlRGF0YSh1cmwsIHJlYWR5U3RhdGUpLCBYSFJS
ZWFkeVN0YXRlQ2hhbmdlUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6ZGlkQ2hhbmdlWEhSUmVhZHlTdGF0ZSgpCkBAIC0xODQsNyArMTg0LDcgQEAgdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDaGFuZ2VYSFJSZWFkeVN0YXRlKCkKIAogdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsTG9hZFhIUihjb25zdCBTdHJpbmcmIHVybCkgCiB7
Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJM
b2FkRGF0YShtX2Zyb250ZW5kLCB1cmwpLCBYSFJMb2FkUmVjb3JkVHlwZSk7CisgICAgcHVzaEN1
cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJMb2FkRGF0YSh1cmwp
LCBYSFJMb2FkUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
ZGlkTG9hZFhIUigpCkBAIC0xOTQsNyArMTk0LDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRMb2FkWEhSKCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRXZh
bHVhdGVTY3JpcHQoY29uc3QgU3RyaW5nJiB1cmwsIGludCBsaW5lTnVtYmVyKQogewotICAgIHB1
c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZhbHVhdGVTY3Jp
cHREYXRhKG1fZnJvbnRlbmQsIHVybCwgbGluZU51bWJlciksIEV2YWx1YXRlU2NyaXB0VGltZWxp
bmVSZWNvcmRUeXBlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rv
cnk6OmNyZWF0ZUV2YWx1YXRlU2NyaXB0RGF0YSh1cmwsIGxpbmVOdW1iZXIpLCBFdmFsdWF0ZVNj
cmlwdFRpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAgICAgCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZEV2YWx1YXRlU2NyaXB0KCkKQEAgLTIwNSw5ICsyMDUsOSBAQCB2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OmRpZEV2YWx1YXRlU2NyaXB0KCkKIHZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6ZGlkU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3QoY29uc3QgU3RyaW5nJiB1cmwp
CiB7CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBX
VEY6OmN1cnJlbnRUaW1lTVMoKSk7Ci0gICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVj
b3JkRmFjdG9yeTo6Y3JlYXRlU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3REYXRhKG1fZnJvbnRlbmQs
IHVybCkpOwotICAgIHJlY29yZC5zZXQoInR5cGUiLCBTY2hlZHVsZVJlc291cmNlUmVxdWVzdFRp
bWVsaW5lUmVjb3JkVHlwZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0g
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKFdURjo6Y3VycmVudFRp
bWVNUygpKTsKKyAgICByZWNvcmQtPnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3REYXRhKHVybCkpOworICAgIHJlY29yZC0+c2V0
TnVtYmVyKCJ0eXBlIiwgU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3RUaW1lbGluZVJlY29yZFR5cGUp
OwogICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBTY2hlZHVsZVJlc291cmNlUmVxdWVz
dFRpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKQEAgLTIxNSwxNiArMjE1LDE2IEBAIHZvaWQgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFNlbmRSZXNvdXJjZVJlcXVlc3QodW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBiCiAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewog
ICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpj
dXJyZW50VGltZU1TKCkpOwotICAgIHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZh
Y3Rvcnk6OmNyZWF0ZVJlc291cmNlU2VuZFJlcXVlc3REYXRhKG1fZnJvbnRlbmQsIGlkZW50aWZp
ZXIsIGlzTWFpblJlc291cmNlLCByZXF1ZXN0KSk7Ci0gICAgcmVjb3JkLnNldCgidHlwZSIsIFJl
c291cmNlU2VuZFJlcXVlc3RUaW1lbGluZVJlY29yZFR5cGUpOworICAgIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1Jl
Y29yZChXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgcmVjb3JkLT5zZXQoImRhdGEiLCBUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlU2VuZFJlcXVlc3REYXRhKGlkZW50aWZp
ZXIsIGlzTWFpblJlc291cmNlLCByZXF1ZXN0KSk7CisgICAgcmVjb3JkLT5zZXROdW1iZXIoInR5
cGUiLCBSZXNvdXJjZVNlbmRSZXF1ZXN0VGltZWxpbmVSZWNvcmRUeXBlKTsKICAgICBzZXRIZWFw
U2l6ZVN0YXRpc3RpYyhyZWNvcmQpOwogICAgIG1fZnJvbnRlbmQtPmFkZFJlY29yZFRvVGltZWxp
bmUocmVjb3JkKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsUmVjZWl2
ZVJlc291cmNlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCiB7Ci0gICAgcHVzaEN1cnJl
bnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRh
KG1fZnJvbnRlbmQsIGlkZW50aWZpZXIpLCBSZWNlaXZlUmVzb3VyY2VEYXRhVGltZWxpbmVSZWNv
cmRUeXBlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZVJlY2VpdmVSZXNvdXJjZURhdGEoaWRlbnRpZmllciksIFJlY2VpdmVSZXNvdXJjZURhdGFU
aW1lbGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRp
ZFJlY2VpdmVSZXNvdXJjZURhdGEoKQpAQCAtMjM0LDcgKzIzNCw3IEBAIHZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6ZGlkUmVjZWl2ZVJlc291cmNlRGF0YSgpCiAgICAgCiB2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAg
IHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VS
ZWNlaXZlUmVzcG9uc2VEYXRhKG1fZnJvbnRlbmQsIGlkZW50aWZpZXIsIHJlc3BvbnNlKSwgUmVz
b3VyY2VSZWNlaXZlUmVzcG9uc2VUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHB1c2hDdXJyZW50
UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VSZWNlaXZlUmVzcG9u
c2VEYXRhKGlkZW50aWZpZXIsIHJlc3BvbnNlKSwgUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VUaW1l
bGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJl
Y2VpdmVSZXNvdXJjZVJlc3BvbnNlKCkKQEAgLTI0NSw5ICsyNDUsOSBAQCB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKCkKIHZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgYm9vbCBkaWRGYWlsKQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwot
ICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdl
bmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwotICAgIHJlY29y
ZC5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlRmluaXNo
RGF0YShtX2Zyb250ZW5kLCBpZGVudGlmaWVyLCBkaWRGYWlsKSk7Ci0gICAgcmVjb3JkLnNldCgi
dHlwZSIsIFJlc291cmNlRmluaXNoVGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVy
aWNSZWNvcmQoV1RGOjpjdXJyZW50VGltZU1TKCkpOworICAgIHJlY29yZC0+c2V0KCJkYXRhIiwg
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZUZpbmlzaERhdGEoaWRlbnRpZmll
ciwgZGlkRmFpbCkpOworICAgIHJlY29yZC0+c2V0TnVtYmVyKCJ0eXBlIiwgUmVzb3VyY2VGaW5p
c2hUaW1lbGluZVJlY29yZFR5cGUpOwogICAgIHNldEhlYXBTaXplU3RhdGlzdGljKHJlY29yZCk7
CiAgICAgbV9mcm9udGVuZC0+YWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQpOwogfQpAQCAtMjU1
LDIyICsyNTUsMjIgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRGaW5pc2hMb2Fk
aW5nUmVzb3VyY2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLAogdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpkaWRNYXJrVGltZWxpbmUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAg
IHB1c2hHQ0V2ZW50UmVjb3JkcygpOwotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJy
ZW50VGltZU1TKCkpOwotICAgIHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rv
cnk6OmNyZWF0ZU1hcmtUaW1lbGluZURhdGEobV9mcm9udGVuZCwgbWVzc2FnZSkpOworICAgIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlR2VuZXJpY1JlY29yZChXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgcmVjb3JkLT5zZXQo
ImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZU1hcmtUaW1lbGluZURhdGEobWVz
c2FnZSkpOwogICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBNYXJrVGltZWxpbmVSZWNv
cmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrRE9NQ29u
dGVudEV2ZW50KCkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKLSAgICBTY3JpcHRPYmpl
Y3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1f
ZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQo
V1RGOjpjdXJyZW50VGltZU1TKCkpOwogICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBN
YXJrRE9NQ29udGVudEV2ZW50VHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6ZGlkTWFya0xvYWRFdmVudCgpCiB7CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAg
U2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJp
Y1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5l
cmljUmVjb3JkKFdURjo6Y3VycmVudFRpbWVNUygpKTsKICAgICBhZGRSZWNvcmRUb1RpbWVsaW5l
KHJlY29yZCwgTWFya0xvYWRFdmVudFR5cGUpOwogfQogCkBAIC0yNzksMzIgKzI3OSwzMiBAQCB2
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnJlc2V0KCkKICAgICBtX3JlY29yZFN0YWNrLmNs
ZWFyKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cmVzZXRGcm9udGVuZFBy
b3h5T2JqZWN0KEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKK3ZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6cmVzZXRGcm9udGVuZFByb3h5T2JqZWN0KEluc3BlY3RvckZyb250ZW5kMiog
ZnJvbnRlbmQpCiB7CiAgICAgQVNTRVJUKGZyb250ZW5kKTsKICAgICByZXNldCgpOwogICAgIG1f
ZnJvbnRlbmQgPSBmcm9udGVuZDsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojph
ZGRSZWNvcmRUb1RpbWVsaW5lKFNjcmlwdE9iamVjdCByZWNvcmQsIFRpbWVsaW5lUmVjb3JkVHlw
ZSB0eXBlKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5l
KGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiByZWNvcmQsIFRpbWVsaW5lUmVjb3JkVHlw
ZSB0eXBlKQogewotICAgIHJlY29yZC5zZXQoInR5cGUiLCB0eXBlKTsKKyAgICByZWNvcmQtPnNl
dE51bWJlcigidHlwZSIsIHR5cGUpOwogICAgIHNldEhlYXBTaXplU3RhdGlzdGljKHJlY29yZCk7
CiAgICAgaWYgKG1fcmVjb3JkU3RhY2suaXNFbXB0eSgpKQogICAgICAgICBtX2Zyb250ZW5kLT5h
ZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCk7CiAgICAgZWxzZSB7CiAgICAgICAgIFRpbWVsaW5l
UmVjb3JkRW50cnkgcGFyZW50ID0gbV9yZWNvcmRTdGFjay5sYXN0KCk7Ci0gICAgICAgIHBhcmVu
dC5jaGlsZHJlbi5zZXQocGFyZW50LmNoaWxkcmVuLmxlbmd0aCgpLCByZWNvcmQpOworICAgICAg
ICBwYXJlbnQuY2hpbGRyZW4tPnB1c2gocmVjb3JkKTsKICAgICB9CiB9CiAKLXZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6c2V0SGVhcFNpemVTdGF0aXN0aWMoU2NyaXB0T2JqZWN0IHJlY29y
ZCkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c2V0SGVhcFNpemVTdGF0aXN0aWMoY29u
c3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIHJlY29yZCkKIHsKICAgICBzaXplX3QgdXNlZEhl
YXBTaXplID0gMDsKICAgICBzaXplX3QgdG90YWxIZWFwU2l6ZSA9IDA7CiAgICAgU2NyaXB0R0NF
dmVudDo6Z2V0SGVhcFNpemUodXNlZEhlYXBTaXplLCB0b3RhbEhlYXBTaXplKTsKLSAgICByZWNv
cmQuc2V0KCJ1c2VkSGVhcFNpemUiLCB1c2VkSGVhcFNpemUpOwotICAgIHJlY29yZC5zZXQoInRv
dGFsSGVhcFNpemUiLCB0b3RhbEhlYXBTaXplKTsKKyAgICByZWNvcmQtPnNldE51bWJlcigidXNl
ZEhlYXBTaXplIiwgdXNlZEhlYXBTaXplKTsKKyAgICByZWNvcmQtPnNldE51bWJlcigidG90YWxI
ZWFwU2l6ZSIsIHRvdGFsSGVhcFNpemUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkKQEAg
LTMxNiwxOCArMzE2LDE4IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tcGxl
dGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlKQogICAgICAgICBUaW1lbGlu
ZVJlY29yZEVudHJ5IGVudHJ5ID0gbV9yZWNvcmRTdGFjay5sYXN0KCk7CiAgICAgICAgIG1fcmVj
b3JkU3RhY2sucmVtb3ZlTGFzdCgpOwogICAgICAgICBBU1NFUlQoZW50cnkudHlwZSA9PSB0eXBl
KTsKLSAgICAgICAgZW50cnkucmVjb3JkLnNldCgiZGF0YSIsIGVudHJ5LmRhdGEpOwotICAgICAg
ICBlbnRyeS5yZWNvcmQuc2V0KCJjaGlsZHJlbiIsIGVudHJ5LmNoaWxkcmVuKTsKLSAgICAgICAg
ZW50cnkucmVjb3JkLnNldCgiZW5kVGltZSIsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKKyAgICAg
ICAgZW50cnkucmVjb3JkLT5zZXQoImRhdGEiLCBlbnRyeS5kYXRhKTsKKyAgICAgICAgZW50cnku
cmVjb3JkLT5zZXQoImNoaWxkcmVuIiwgZW50cnkuY2hpbGRyZW4pOworICAgICAgICBlbnRyeS5y
ZWNvcmQtPnNldE51bWJlcigiZW5kVGltZSIsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKICAgICAg
ICAgYWRkUmVjb3JkVG9UaW1lbGluZShlbnRyeS5yZWNvcmQsIHR5cGUpOwogICAgIH0KIH0KIAot
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ3VycmVudFJlY29yZChTY3JpcHRPYmpl
Y3QgZGF0YSwgVGltZWxpbmVSZWNvcmRUeXBlIHR5cGUpCit2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OnB1c2hDdXJyZW50UmVjb3JkKGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBk
YXRhLCBUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMo
KTsKLSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKLSAgICBt
X3JlY29yZFN0YWNrLmFwcGVuZChUaW1lbGluZVJlY29yZEVudHJ5KHJlY29yZCwgZGF0YSwgbV9m
cm9udGVuZC0+bmV3U2NyaXB0QXJyYXkoKSwgdHlwZSkpOworICAgIFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29y
ZChXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgbV9yZWNvcmRTdGFjay5hcHBlbmQoVGltZWxp
bmVSZWNvcmRFbnRyeShyZWNvcmQsIGRhdGEsIEluc3BlY3RvckFycmF5OjpjcmVhdGUoKSwgdHlw
ZSkpOwogfQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggZmUzMzRiZS4uMTBlOGE2NSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtMzQsMTYgKzM0LDE1IEBACiAj
aWYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
SW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgog
I2luY2x1ZGUgIlNjcmlwdEdDRXZlbnQuaCIKICNpbmNsdWRlICJTY3JpcHRHQ0V2ZW50TGlzdGVu
ZXIuaCIKLSNpbmNsdWRlICJTY3JpcHRPYmplY3QuaCIKLSNpbmNsdWRlICJTY3JpcHRBcnJheS5o
IgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
RXZlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKK2NsYXNzIEluc3BlY3RvckZyb250ZW5k
MjsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJj
ZVJlc3BvbnNlOwpAQCAtNzUsMTEgKzc0LDExIEBAIGVudW0gVGltZWxpbmVSZWNvcmRUeXBlIHsK
IAogY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCA6IFNjcmlwdEdDRXZlbnRMaXN0ZW5lciwg
cHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKLSAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50
KEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCk7CisgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dChJbnNwZWN0b3JGcm9udGVuZDIqIGZyb250ZW5kKTsKICAgICB+SW5zcGVjdG9yVGltZWxpbmVB
Z2VudCgpOwogCiAgICAgdm9pZCByZXNldCgpOwotICAgIHZvaWQgcmVzZXRGcm9udGVuZFByb3h5
T2JqZWN0KEluc3BlY3RvckZyb250ZW5kKik7CisgICAgdm9pZCByZXNldEZyb250ZW5kUHJveHlP
YmplY3QoSW5zcGVjdG9yRnJvbnRlbmQyKik7CiAKICAgICAvLyBNZXRob2RzIGNhbGxlZCBmcm9t
IFdlYkNvcmUuCiAgICAgdm9pZCB3aWxsQ2FsbEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgc2NyaXB0
TmFtZSwgaW50IHNjcmlwdExpbmUpOwpAQCAtMTM0LDI2ICsxMzMsMjYgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIHN0cnVjdCBUaW1lbGluZVJlY29yZEVudHJ5IHsKLSAgICAgICAgVGltZWxp
bmVSZWNvcmRFbnRyeShTY3JpcHRPYmplY3QgcmVjb3JkLCBTY3JpcHRPYmplY3QgZGF0YSwgU2Ny
aXB0QXJyYXkgY2hpbGRyZW4sIFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlKQorICAgICAgICBUaW1l
bGluZVJlY29yZEVudHJ5KGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiByZWNvcmQsIGNv
bnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBkYXRhLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9y
QXJyYXk+JiBjaGlsZHJlbiwgVGltZWxpbmVSZWNvcmRUeXBlIHR5cGUpCiAgICAgICAgICAgICA6
IHJlY29yZChyZWNvcmQpLCBkYXRhKGRhdGEpLCBjaGlsZHJlbihjaGlsZHJlbiksIHR5cGUodHlw
ZSkKICAgICAgICAgewogICAgICAgICB9Ci0gICAgICAgIFNjcmlwdE9iamVjdCByZWNvcmQ7Ci0g
ICAgICAgIFNjcmlwdE9iamVjdCBkYXRhOwotICAgICAgICBTY3JpcHRBcnJheSBjaGlsZHJlbjsK
KyAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkOworICAgICAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBkYXRhOworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGNo
aWxkcmVuOwogICAgICAgICBUaW1lbGluZVJlY29yZFR5cGUgdHlwZTsKICAgICB9OwogICAgICAg
ICAKLSAgICB2b2lkIHB1c2hDdXJyZW50UmVjb3JkKFNjcmlwdE9iamVjdCwgVGltZWxpbmVSZWNv
cmRUeXBlKTsKLSAgICB2b2lkIHNldEhlYXBTaXplU3RhdGlzdGljKFNjcmlwdE9iamVjdCByZWNv
cmQpOworICAgIHZvaWQgcHVzaEN1cnJlbnRSZWNvcmQoY29uc3QgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4mLCBUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHZvaWQgc2V0SGVhcFNpemVTdGF0aXN0
aWMoY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIHJlY29yZCk7CiAgICAgICAgIAogICAg
IHZvaWQgZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAKLSAg
ICB2b2lkIGFkZFJlY29yZFRvVGltZWxpbmUoU2NyaXB0T2JqZWN0LCBUaW1lbGluZVJlY29yZFR5
cGUpOworICAgIHZvaWQgYWRkUmVjb3JkVG9UaW1lbGluZShjb25zdCBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiYsIFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAKICAgICB2b2lkIHB1c2hHQ0V2ZW50UmVj
b3JkcygpOwogCi0gICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7CisgICAgSW5zcGVj
dG9yRnJvbnRlbmQyKiBtX2Zyb250ZW5kOwogCiAgICAgVmVjdG9yPFRpbWVsaW5lUmVjb3JkRW50
cnk+IG1fcmVjb3JkU3RhY2s7CiAgICAgc3RhdGljIGludCBzX2luc3RhbmNlQ291bnQ7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAppbmRleCBiZGI1ZjNkLi4z
MjViNGM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3Rv
cnkuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAK
QEAgLTM1LDE1MSArMzUsMTUxIEBACiAKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIklu
c3BlY3RvckZyb250ZW5kLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVk
ZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJl
c291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTY3JpcHRBcnJheS5oIgogI2luY2x1ZGUgIlNj
cmlwdENhbGxTdGFjay5oIgotI2luY2x1ZGUgIlNjcmlwdE9iamVjdC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdl
bmVyaWNSZWNvcmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBkb3VibGUgc3RhcnRUaW1l
KQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVH
ZW5lcmljUmVjb3JkKGRvdWJsZSBzdGFydFRpbWUpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29y
ZCA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICByZWNvcmQuc2V0KCJzdGFydFRp
bWUiLCBzdGFydFRpbWUpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IElu
c3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgcmVjb3JkLT5zZXROdW1iZXIoInN0YXJ0VGlt
ZSIsIHN0YXJ0VGltZSk7CiAKLSAgICBTY3JpcHRBcnJheSBzdGFja1RyYWNlOwotICAgIGlmIChT
Y3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UoNSwgZnJvbnRlbmQtPnNjcmlwdFN0YXRlKCksIHN0
YWNrVHJhY2UpKQotICAgICAgICByZWNvcmQuc2V0KCJzdGFja1RyYWNlIiwgc3RhY2tUcmFjZSk7
CisgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiBzdGFja1RyYWNlID0gSW5zcGVjdG9yQXJyYXk6
OmNyZWF0ZSgpOworICAgIGlmIChTY3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UoNSwgc3RhY2tU
cmFjZSkpCisgICAgICAgIHJlY29yZC0+c2V0KCJzdGFja1RyYWNlIiwgc3RhY2tUcmFjZSk7CiAg
ICAgcmV0dXJuIHJlY29yZDsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlR0NFdmVudERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBz
aXplX3QgdXNlZEhlYXBTaXplRGVsdGEpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdDRXZlbnREYXRhKGNvbnN0IHNpemVfdCB1c2VkSGVhcFNp
emVEZWx0YSkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRP
YmplY3QoKTsKLSAgICBkYXRhLnNldCgidXNlZEhlYXBTaXplRGVsdGEiLCB1c2VkSGVhcFNpemVE
ZWx0YSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVj
dDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJ1c2VkSGVhcFNpemVEZWx0YSIsIHVz
ZWRIZWFwU2l6ZURlbHRhKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRnVuY3Rpb25DYWxsRGF0YShJbnNwZWN0b3JGcm9u
dGVuZCogZnJvbnRlbmQsIGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUp
CitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUZ1
bmN0aW9uQ2FsbERhdGEoY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSkK
IHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsK
LSAgICBkYXRhLnNldCgic2NyaXB0TmFtZSIsIHNjcmlwdE5hbWUpOwotICAgIGRhdGEuc2V0KCJz
Y3JpcHRMaW5lIiwgc2NyaXB0TGluZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0
YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0U3RyaW5nKCJzY3Jp
cHROYW1lIiwgc2NyaXB0TmFtZSk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJzY3JpcHRMaW5lIiwg
c2NyaXB0TGluZSk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUV2ZW50RGlzcGF0Y2hEYXRhKEluc3BlY3RvckZyb250ZW5k
KiBmcm9udGVuZCwgY29uc3QgRXZlbnQmIGV2ZW50KQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmVudERpc3BhdGNoRGF0YShjb25zdCBFdmVu
dCYgZXZlbnQpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0
T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQoInR5cGUiLCBldmVudC50eXBlKCkuc3RyaW5nKCkpOwor
ICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0
ZSgpOworICAgIGRhdGEtPnNldFN0cmluZygidHlwZSIsIGV2ZW50LnR5cGUoKS5zdHJpbmcoKSk7
CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rv
cnk6OmNyZWF0ZUdlbmVyaWNUaW1lckRhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBp
bnQgdGltZXJJZCkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlR2VuZXJpY1RpbWVyRGF0YShpbnQgdGltZXJJZCkKIHsKLSAgICBTY3JpcHRPYmpl
Y3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgidGlt
ZXJJZCIsIHRpbWVySWQpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNw
ZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldE51bWJlcigidGltZXJJZCIsIHRp
bWVySWQpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVUaW1lckluc3RhbGxEYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9u
dGVuZCwgaW50IHRpbWVySWQsIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpCitSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVRpbWVySW5zdGFs
bERhdGEoaW50IHRpbWVySWQsIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpCiB7Ci0gICAg
U2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0
YS5zZXQoInRpbWVySWQiLCB0aW1lcklkKTsKLSAgICBkYXRhLnNldCgidGltZW91dCIsIHRpbWVv
dXQpOwotICAgIGRhdGEuc2V0KCJzaW5nbGVTaG90Iiwgc2luZ2xlU2hvdCk7CisgICAgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAg
ZGF0YS0+c2V0TnVtYmVyKCJ0aW1lcklkIiwgdGltZXJJZCk7CisgICAgZGF0YS0+c2V0TnVtYmVy
KCJ0aW1lb3V0IiwgdGltZW91dCk7CisgICAgZGF0YS0+c2V0Qm9vbCgic2luZ2xlU2hvdCIsIHNp
bmdsZVNob3QpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJSZWFkeVN0YXRlQ2hhbmdlRGF0YShJbnNwZWN0b3JGcm9u
dGVuZCogZnJvbnRlbmQsIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgcmVhZHlTdGF0ZSkKK1JlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSUmVhZHlT
dGF0ZUNoYW5nZURhdGEoY29uc3QgU3RyaW5nJiB1cmwsIGludCByZWFkeVN0YXRlKQogewotICAg
IFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRh
dGEuc2V0KCJ1cmwiLCB1cmwpOwotICAgIGRhdGEuc2V0KCJyZWFkeVN0YXRlIiwgcmVhZHlTdGF0
ZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6
Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0U3RyaW5nKCJ1cmwiLCB1cmwpOworICAgIGRhdGEtPnNl
dE51bWJlcigicmVhZHlTdGF0ZSIsIHJlYWR5U3RhdGUpOwogICAgIHJldHVybiBkYXRhOwogfQog
Ci1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJMb2FkRGF0YShJ
bnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IFN0cmluZyYgdXJsKQorUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJMb2FkRGF0YShj
b25zdCBTdHJpbmcmIHVybCkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5u
ZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgidXJsIiwgdXJsKTsKKyAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBk
YXRhLT5zZXRTdHJpbmcoInVybCIsIHVybCk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlw
dE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUV2YWx1YXRlU2NyaXB0RGF0YShJ
bnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUgbGlu
ZU51bWJlcikgCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZUV2YWx1YXRlU2NyaXB0RGF0YShjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGxpbmVO
dW1iZXIpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2Jq
ZWN0KCk7Ci0gICAgZGF0YS5zZXQoInVybCIsIHVybCk7Ci0gICAgZGF0YS5zZXQoImxpbmVOdW1i
ZXIiLCBsaW5lTnVtYmVyKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5z
cGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXRTdHJpbmcoInVybCIsIHVybCk7
CisgICAgZGF0YS0+c2V0TnVtYmVyKCJsaW5lTnVtYmVyIiwgbGluZU51bWJlcik7CiAgICAgcmV0
dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZU1hcmtUaW1lbGluZURhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpIAorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVNYXJrVGltZWxpbmVEYXRhKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAg
ICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBk
YXRhLnNldCgibWVzc2FnZSIsIG1lc3NhZ2UpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldFN0cmluZygi
bWVzc2FnZSIsIG1lc3NhZ2UpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3Qg
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVTY2hlZHVsZVJlc291cmNlUmVxdWVzdERhdGEo
SW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBTdHJpbmcmIHVybCkKK1JlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlU2NoZWR1bGVSZXNv
dXJjZVJlcXVlc3REYXRhKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIFNjcmlwdE9iamVjdCBk
YXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJ1cmwiLCB1
cmwpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6
OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldFN0cmluZygidXJsIiwgdXJsKTsKICAgICByZXR1cm4g
ZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVz
b3VyY2VTZW5kUmVxdWVzdERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGJvb2wgaXNNYWluUmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlUmVzb3VyY2VTZW5kUmVxdWVzdERhdGEodW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBib29sIGlzTWFpblJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qp
CiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7
Ci0gICAgZGF0YS5zZXQoImlkZW50aWZpZXIiLCBpZGVudGlmaWVyKTsKLSAgICBkYXRhLnNldCgi
dXJsIiwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKSk7Ci0gICAgZGF0YS5zZXQoInJlcXVlc3RNZXRo
b2QiLCByZXF1ZXN0Lmh0dHBNZXRob2QoKSk7Ci0gICAgZGF0YS5zZXQoImlzTWFpblJlc291cmNl
IiwgaXNNYWluUmVzb3VyY2UpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJ
bnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldE51bWJlcigiaWRlbnRpZmll
ciIsIGlkZW50aWZpZXIpOworICAgIGRhdGEtPnNldFN0cmluZygidXJsIiwgcmVxdWVzdC51cmwo
KS5zdHJpbmcoKSk7CisgICAgZGF0YS0+c2V0U3RyaW5nKCJyZXF1ZXN0TWV0aG9kIiwgcmVxdWVz
dC5odHRwTWV0aG9kKCkpOworICAgIGRhdGEtPnNldEJvb2woImlzTWFpblJlc291cmNlIiwgaXNN
YWluUmVzb3VyY2UpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVJlY2VpdmVSZXNwb25zZURhdGEoSW5zcGVj
dG9yRnJvbnRlbmQqIGZyb250ZW5kLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVJlY2VpdmVSZXNwb25zZURhdGEodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsK
LSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAg
ICBkYXRhLnNldCgiaWRlbnRpZmllciIsIGlkZW50aWZpZXIpOwotICAgIGRhdGEuc2V0KCJzdGF0
dXNDb2RlIiwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7Ci0gICAgZGF0YS5zZXQoIm1pbWVU
eXBlIiwgcmVzcG9uc2UubWltZVR5cGUoKSk7Ci0gICAgZGF0YS5zZXQoImV4cGVjdGVkQ29udGVu
dExlbmd0aCIsIHJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKTsKKyAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBk
YXRhLT5zZXROdW1iZXIoImlkZW50aWZpZXIiLCBpZGVudGlmaWVyKTsKKyAgICBkYXRhLT5zZXRO
dW1iZXIoInN0YXR1c0NvZGUiLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKKyAgICBkYXRh
LT5zZXRTdHJpbmcoIm1pbWVUeXBlIiwgcmVzcG9uc2UubWltZVR5cGUoKSk7CisgICAgZGF0YS0+
c2V0TnVtYmVyKCJleHBlY3RlZENvbnRlbnRMZW5ndGgiLCByZXNwb25zZS5leHBlY3RlZENvbnRl
bnRMZW5ndGgoKSk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlRmluaXNoRGF0YShJbnNwZWN0b3JGcm9udGVu
ZCogZnJvbnRlbmQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgYm9vbCBkaWRGYWlsKQorUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJj
ZUZpbmlzaERhdGEodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBib29sIGRpZEZhaWwpCiB7Ci0g
ICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAg
ZGF0YS5zZXQoImlkZW50aWZpZXIiLCBpZGVudGlmaWVyKTsKLSAgICBkYXRhLnNldCgiZGlkRmFp
bCIsIGRpZEZhaWwpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldE51bWJlcigiaWRlbnRpZmllciIsIGlk
ZW50aWZpZXIpOworICAgIGRhdGEtPnNldEJvb2woImRpZEZhaWwiLCBkaWRGYWlsKTsKICAgICBy
ZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlUmVjZWl2ZVJlc291cmNlRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllcikKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVj
b3JkRmFjdG9yeTo6Y3JlYXRlUmVjZWl2ZVJlc291cmNlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2Jq
ZWN0KCk7Ci0gICAgZGF0YS5zZXQoImlkZW50aWZpZXIiLCBpZGVudGlmaWVyKTsKKyAgICBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAg
ICBkYXRhLT5zZXROdW1iZXIoImlkZW50aWZpZXIiLCBpZGVudGlmaWVyKTsKICAgICByZXR1cm4g
ZGF0YTsKIH0KICAgICAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZVBhaW50RGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IEludFJlY3QmIHJl
Y3QpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZVBhaW50RGF0YShjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIFNjcmlwdE9iamVjdCBkYXRh
ID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJ4IiwgcmVjdC54
KCkpOwotICAgIGRhdGEuc2V0KCJ5IiwgcmVjdC55KCkpOwotICAgIGRhdGEuc2V0KCJ3aWR0aCIs
IHJlY3Qud2lkdGgoKSk7Ci0gICAgZGF0YS5zZXQoImhlaWdodCIsIHJlY3QuaGVpZ2h0KCkpOwor
ICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0
ZSgpOworICAgIGRhdGEtPnNldE51bWJlcigieCIsIHJlY3QueCgpKTsKKyAgICBkYXRhLT5zZXRO
dW1iZXIoInkiLCByZWN0LnkoKSk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJ3aWR0aCIsIHJlY3Qu
d2lkdGgoKSk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJoZWlnaHQiLCByZWN0LmhlaWdodCgpKTsK
ICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlUGFyc2VIVE1MRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIHVuc2ln
bmVkIGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUpCitSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhcnNlSFRNTERhdGEodW5zaWdu
ZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSkKIHsKLSAgICBTY3JpcHRPYmpl
Y3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgibGVu
Z3RoIiwgbGVuZ3RoKTsKLSAgICBkYXRhLnNldCgic3RhcnRMaW5lIiwgc3RhcnRMaW5lKTsKKyAg
ICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUo
KTsKKyAgICBkYXRhLT5zZXROdW1iZXIoImxlbmd0aCIsIGxlbmd0aCk7CisgICAgZGF0YS0+c2V0
TnVtYmVyKCJzdGFydExpbmUiLCBzdGFydExpbmUpOwogICAgIHJldHVybiBkYXRhOwogfQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaCBiL1dl
YkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oCmluZGV4IGY5MDVlY2MuLjZi
NTdhNmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9y
eS5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oCkBAIC0z
Nyw0NyArMzcsNDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgRXZlbnQ7CiAg
ICAgY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CisgICAgY2xhc3MgSW5zcGVjdG9yT2JqZWN0Owog
ICAgIGNsYXNzIEludFJlY3Q7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogICAgIGNsYXNz
IFJlc291cmNlUmVzcG9uc2U7Ci0gICAgY2xhc3MgU2NyaXB0T2JqZWN0OwogCiAgICAgY2xhc3Mg
VGltZWxpbmVSZWNvcmRGYWN0b3J5IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBTY3Jp
cHRPYmplY3QgY3JlYXRlR2VuZXJpY1JlY29yZChJbnNwZWN0b3JGcm9udGVuZCosIGRvdWJsZSBz
dGFydFRpbWUpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRl
R2VuZXJpY1JlY29yZChkb3VibGUgc3RhcnRUaW1lKTsKIAotICAgICAgICBzdGF0aWMgU2NyaXB0
T2JqZWN0IGNyZWF0ZUdDRXZlbnREYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29u
c3Qgc2l6ZV90IHVzZWRIZWFwU2l6ZURlbHRhKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IGNyZWF0ZUdDRXZlbnREYXRhKGNvbnN0IHNpemVfdCB1c2VkSGVhcFNpemVE
ZWx0YSk7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVGdW5jdGlvbkNhbGxE
YXRhKEluc3BlY3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2Ny
aXB0TGluZSk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVG
dW5jdGlvbkNhbGxEYXRhKGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUp
OwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlRXZlbnREaXNwYXRjaERhdGEo
SW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBFdmVudCYpOworICAgICAgICBzdGF0aWMgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gY3JlYXRlRXZlbnREaXNwYXRjaERhdGEoY29uc3QgRXZlbnQmKTsK
IAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZUdlbmVyaWNUaW1lckRhdGEoSW5z
cGVjdG9yRnJvbnRlbmQqLCBpbnQgdGltZXJJZCk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiBjcmVhdGVHZW5lcmljVGltZXJEYXRhKGludCB0aW1lcklkKTsKIAotICAg
ICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVRpbWVySW5zdGFsbERhdGEoSW5zcGVjdG9y
RnJvbnRlbmQqLCBpbnQgdGltZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCk7Cisg
ICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVUaW1lckluc3RhbGxE
YXRhKGludCB0aW1lcklkLCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKIAotICAgICAg
ICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVhIUlJlYWR5U3RhdGVDaGFuZ2VEYXRhKEluc3Bl
Y3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJiB1cmwsIGludCByZWFkeVN0YXRlKTsKKyAgICAg
ICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVhIUlJlYWR5U3RhdGVDaGFu
Z2VEYXRhKGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgcmVhZHlTdGF0ZSk7CiAKLSAgICAgICAgc3Rh
dGljIFNjcmlwdE9iamVjdCBjcmVhdGVYSFJMb2FkRGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGNv
bnN0IFN0cmluZyYgdXJsKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IGNyZWF0ZVhIUkxvYWREYXRhKGNvbnN0IFN0cmluZyYgdXJsKTsKIAotICAgICAgICBzdGF0aWMg
U2NyaXB0T2JqZWN0IGNyZWF0ZUV2YWx1YXRlU2NyaXB0RGF0YShJbnNwZWN0b3JGcm9udGVuZCos
IGNvbnN0IFN0cmluZyYsIGRvdWJsZSBsaW5lTnVtYmVyKTsKKyAgICAgICAgc3RhdGljIFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUV2YWx1YXRlU2NyaXB0RGF0YShjb25zdCBTdHJpbmcm
LCBkb3VibGUgbGluZU51bWJlcik7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVh
dGVNYXJrVGltZWxpbmVEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJik7Cisg
ICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVNYXJrVGltZWxpbmVE
YXRhKGNvbnN0IFN0cmluZyYpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRl
UmVzb3VyY2VTZW5kUmVxdWVzdERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsCisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVh
dGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsCiAgICAg
ICAgICAgICBib29sIGlzTWFpblJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKIAot
ICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0
RGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGNvbnN0IFN0cmluZyYpOworICAgICAgICBzdGF0aWMg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3REYXRh
KGNvbnN0IFN0cmluZyYpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlUmVz
b3VyY2VSZWNlaXZlUmVzcG9uc2VEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgICAgIHN0YXRpYyBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVSZXNvdXJjZVJlY2VpdmVSZXNwb25zZURhdGEo
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAKLSAg
ICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKEluc3Bl
Y3RvckZyb250ZW5kKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKKyAgICAgICAgc3RhdGlj
IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVJlY2VpdmVSZXNvdXJjZURhdGEodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyKTsKIAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0
ZVJlc291cmNlRmluaXNoRGF0YShJbnNwZWN0b3JGcm9udGVuZCosIHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgYm9vbCBkaWRGYWlsKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IGNyZWF0ZVJlc291cmNlRmluaXNoRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGJvb2wgZGlkRmFpbCk7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVQYWlu
dERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBJbnRSZWN0Jik7CisgICAgICAgIHN0YXRp
YyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVQYWludERhdGEoY29uc3QgSW50UmVjdCYp
OwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlUGFyc2VIVE1MRGF0YShJbnNw
ZWN0b3JGcm9udGVuZCosIHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExp
bmUpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlUGFyc2VI
VE1MRGF0YSh1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKTsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIFRpbWVsaW5lUmVjb3JkRmFjdG9yeSgpIHsgfQpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBm
OWZiMjUwLi5hNzI0YzZiIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEwLTA2LTE2ICBJbHlhIFRp
a2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJJbnNwZWN0b3I6IGpzIGZ1bmN0aW9uIG5hbWUg
d2FzIGZpeGVkLgorICAgICAgICBkaXNwYXRjaE1lc3NhZ2VUb0Zyb250ZW5kIC0+IGRpc3BhdGNo
TWVzc2FnZUZyb21CYWNrZW5kLiAgICAgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA2NzUKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0luc3BlY3RvckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVu
dDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKToKKwogMjAxMC0wNi0xNiAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBO
b3JvbmhhIFNpbHZhLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNw
ZWN0b3JDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JD
bGllbnRHdGsuY3BwCmluZGV4IDRiYzNjMzIuLjYxNjgzNGIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAKQEAgLTEzNCw3ICsxMzQsNyBA
QCBib29sIEluc3BlY3RvckNsaWVudDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkKICAgICBpZiAoIXNjcmlwdENvbnRyb2xsZXIpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIFN0cmluZyBkaXNwYXRjaFRvRnJvbnRlbmQoIldlYkluc3BlY3Rvci5kaXNw
YXRjaE1lc3NhZ2VUb0Zyb250ZW5kKCIpOworICAgIFN0cmluZyBkaXNwYXRjaFRvRnJvbnRlbmQo
IldlYkluc3BlY3Rvci5kaXNwYXRjaE1lc3NhZ2VGcm9tQmFja2VuZCgiKTsKICAgICBkaXNwYXRj
aFRvRnJvbnRlbmQgKz0gbWVzc2FnZTsKICAgICBkaXNwYXRjaFRvRnJvbnRlbmQgKz0gIik7IjsK
ICAgICBzY3JpcHRDb250cm9sbGVyLT5leGVjdXRlU2NyaXB0KGRpc3BhdGNoVG9Gcm9udGVuZCk7
CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpp
bmRleCAwMDAzYjIxLi43ZTlmNzU1IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wNi0xNiAgSWx5
YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViSW5zcGVjdG9yOiBqcyBmdW5jdGlvbiBu
YW1lIHdhcyBmaXhlZC4KKyAgICAgICAgZGlzcGF0Y2hNZXNzYWdlVG9Gcm9udGVuZCAtPiBkaXNw
YXRjaE1lc3NhZ2VGcm9tQmFja2VuZC4gCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MDY3NQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50UXQ6OnNl
bmRNZXNzYWdlVG9Gcm9udGVuZCk6CisKIDIwMTAtMDYtMTcgIE1hcmsgQnJhbmQgIDxtYWJyYW5k
QG1hYnJhbmQubmw+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYg
LS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50UXQuY3BwIGIv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFF0LmNwcAppbmRleCBmZGUw
NTU2Li40NTAzMTFkIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JD
bGllbnRRdC5jcHAKQEAgLTE4NCw3ICsxODQsNyBAQCBib29sIEluc3BlY3RvckNsaWVudFF0Ojpz
ZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIGlmICghc2Ny
aXB0Q29udHJvbGxlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgU3RyaW5nIGRpc3Bh
dGNoVG9Gcm9udGVuZCgiV2ViSW5zcGVjdG9yLmRpc3BhdGNoTWVzc2FnZVRvRnJvbnRlbmQoIik7
CisgICAgU3RyaW5nIGRpc3BhdGNoVG9Gcm9udGVuZCgiV2ViSW5zcGVjdG9yLmRpc3BhdGNoTWVz
c2FnZUZyb21CYWNrZW5kKCIpOwogICAgIGRpc3BhdGNoVG9Gcm9udGVuZCArPSBtZXNzYWdlOwog
ICAgIGRpc3BhdGNoVG9Gcm9udGVuZCArPSAiKTsiOwogICAgIHNjcmlwdENvbnRyb2xsZXItPmV4
ZWN1dGVTY3JpcHQoZGlzcGF0Y2hUb0Zyb250ZW5kKTsK
</data>
<flag name="review"
          id="45546"
          type_id="1"
          status="-"
          setter="yurys"
    />
    <flag name="commit-queue"
          id="45547"
          type_id="3"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58993</attachid>
            <date>2010-06-17 07:34:24 -0700</date>
            <delta_ts>2010-06-19 09:26:12 -0700</delta_ts>
            <desc>[patch] fourth iteration.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>82640</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBhYWZjZGU3Li44ZGNjYmYx
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMDYtMTYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE9uIHRoZSB3YXkgdG8gUmVtb3RlIERlYnVnaW5nIHdlIHdhbnQgdG8gc3VwcG9ydCBKU09O
CisgICAgICAgIHNlcmlhbGl6YXRpb24gb24gYm90aCBzaWRlcyBvZiBXZWJJbnNwZWN0b3IgdHJh
bnNwb3J0LiBBcyBmYXIgYXMKKyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmQgY2xhc3MgaXMgYSBz
aW1wbGUgcHJveHkgdG8gV2ViSW5zcGVjdG9yIGl0IHdvdWxkCisgICAgICAgIGJlIGJldHRlciB0
byBnZW5lcmF0ZSBpdCBmcm9tIGFuIElETCBmaWxlLiBXZSBoYXZlIGdlbmVyYXRvcgorICAgICAg
ICBpbmZvc3RydWN0dXJlIGZvciBiaW5kaW5nIGFuZCB3aWxsIHJldXNlIGl0IGZvciBuZXcgZ2Vu
ZXJhdG9yLiBOZXcKKyAgICAgICAga2luZCBvZiBpZGwgZmlsZXMgaXMgaW50cm9kdWNlZDogV2Vi
SW5zcGVjdG9ySW50ZXJmYWNlIHdpdGgKKyAgICAgICAgZXh0ZW5zaW9uICdpbnNwZWN0b3JJREwn
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA2NzUK
KworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorCiAyMDEwLTA2LTE3ICBNYXJrIEJyYW5kICA8
bWFicmFuZEBtYWJyYW5kLm5sPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5u
LgpkaWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtlZmlsZS5hbQppbmRleCBjMmIx
YzFjLi45OGJlZTgwIDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5hbQorKysgYi9HTlVtYWtlZmls
ZS5hbQpAQCAtNTUsNiArNTUsNyBAQCBub2luc3RfSEVBREVSUyA6PQogbm9pbnN0X0xUTElCUkFS
SUVTIDo9CiBsaWJfTElCUkFSSUVTIDo9CiBJRExfQklORElOR1MgOj0KK0lOU1BFQ1RPUl9JTlRF
UkZBQ0VTIDo9CiBURVNUX1BST0dTIDo9CiBQT0ZJTEVTIDo9CiBNT0ZJTEVTIDo9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCA5ZjI3ZjUyLi5lNDdkMWIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI4Nyw2ICsyODcsNyBAQCBTRVQoV2ViQ29y
ZV9JRExfRklMRVMKIAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaWRsCiAgICAg
aW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaWRsCisgICAgaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kMi5pbnNwZWN0b3JJREwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0
LmlkbAogICAgIGluc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmlkbAogICAgIGluc3BlY3Rv
ci9TY3JpcHRQcm9maWxlLmlkbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA3MzcyNTQ5Li5lN2ZmY2U2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEw
LTA2LTE2ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBP
biB0aGUgd2F5IHRvIFJlbW90ZSBEZWJ1Z2luZyB3ZSB3YW50IHRvIHN1cHBvcnQgSlNPTgorICAg
ICAgICBzZXJpYWxpemF0aW9uIG9uIGJvdGggc2lkZXMgb2YgV2ViSW5zcGVjdG9yIHRyYW5zcG9y
dC4gQXMgZmFyIGFzCisgICAgICAgIEluc3BlY3RvckZyb250ZW5kIGNsYXNzIGlzIGEgc2ltcGxl
IHByb3h5IHRvIFdlYkluc3BlY3RvciBpdCB3b3VsZAorICAgICAgICBiZSBiZXR0ZXIgdG8gZ2Vu
ZXJhdGUgaXQgZnJvbSBhbiBJREwgZmlsZS4gV2UgaGF2ZSBnZW5lcmF0b3IKKyAgICAgICAgaW5m
b3N0cnVjdHVyZSBmb3IgYmluZGluZyBhbmQgd2lsbCByZXVzZSBpdCBmb3IgbmV3IGdlbmVyYXRv
ci4gTmV3CisgICAgICAgIGtpbmQgb2YgaWRsIGZpbGVzIGlzIGludHJvZHVjZWQ6IFdlYkluc3Bl
Y3RvckludGVyZmFjZSB3aXRoCisgICAgICAgIGV4dGVuc2lvbiAnaW5zcGVjdG9ySURMJy4gVGhl
IGZpcnN0IHJlYWwgdXNlciBvZiB0aGF0IGlzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDY3NQorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cC9XZWJDb3JlLmd5
cDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9kZXJpdmVkc291cmNlc2Fs
bGlub25lLnB5OgorICAgICAgICAqIFdlYkNvcmUuZ3lwL3NjcmlwdHMvcnVsZV9iaW5kaW5nLnB5
OgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAg
ICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGw6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29u
dHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNv
bnRyb2xsZXI6OnN0YXJ0VGltZWxpbmVQcm9maWxlcik6CisgICAgICAgICogaW5zcGVjdG9yL0Nv
ZGVHZW5lcmF0b3IucG06IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmluc3BlY3RvcklETDogQWRkZWQuCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoR0NFdmVudFJlY29yZHMpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENhbGxGdW5jdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRGlzcGF0Y2hF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsTGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNh
bGN1bGF0ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OndpbGxQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3
aWxsV3JpdGVIVE1MKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZFdyaXRlSFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRJbnN0YWxsVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6ZGlkUmVtb3ZlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6d2lsbEZpcmVUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsTG9hZFhIUik6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRXZhbHVhdGVTY3JpcHQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFNlbmRSZXNv
dXJjZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
d2lsbFJlY2VpdmVSZXNvdXJjZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrVGltZWxpbmUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTWFya0RPTUNv
bnRlbnRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpk
aWRNYXJrTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OnJlc2V0RnJvbnRlbmRQcm94eU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29y
ZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ3VycmVu
dFJlY29yZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OlRpbWVsaW5lUmVjb3Jk
RW50cnk6OlRpbWVsaW5lUmVjb3JkRW50cnkpOgorICAgICAgICAqIGluc3BlY3Rvci9UaW1lbGlu
ZVJlY29yZEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVj
b3JkRmFjdG9yeTo6Y3JlYXRlR0NFdmVudERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVGdW5jdGlvbkNhbGxEYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZlbnREaXNwYXRjaERhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlVGlt
ZXJJbnN0YWxsRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZVhIUlJlYWR5U3RhdGVDaGFuZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSTG9hZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmFsdWF0ZVNjcmlwdERhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVNYXJrVGltZWxpbmVEYXRh
KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlU2NoZWR1
bGVSZXNvdXJjZVJlcXVlc3REYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VTZW5kUmVxdWVzdERhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVJlY2VpdmVSZXNwb25zZURh
dGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNv
dXJjZUZpbmlzaERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFpbnREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFyc2VIVE1MRGF0YSk6CisgICAgICAgICogaW5zcGVj
dG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oOgorCiAyMDEwLTA2LTE3ICBNYXJrIEJyYW5kICA8
bWFicmFuZEBtYWJyYW5kLm5sPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5u
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCmluZGV4IDdlYzkxNWYuLjViNzM0YmIgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
QEAgLTQ2Miw5ICs0NjIsMTEgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgWFNMVFByb2Nlc3NvciBc
CiAjCiAKK0lOU1BFQ1RPUl9DTEFTU0VTID0gSW5zcGVjdG9yRnJvbnRlbmQyCisKIC5QSE9OWSA6
IGFsbAogCi1KU19ET01fSEVBREVSUz0kKGZpbHRlci1vdXQgSlNFdmVudExpc3RlbmVyLmggSlNF
dmVudFRhcmdldC5oLCQoRE9NX0NMQVNTRVM6JT1KUyUuaCkpCitKU19ET01fSEVBREVSUz0kKGZp
bHRlci1vdXQgSlNFdmVudExpc3RlbmVyLmggSlNFdmVudFRhcmdldC5oLCQoRE9NX0NMQVNTRVM6
JT1KUyUuaCkgJChJTlNQRUNUT1JfQ0xBU1NFUzolPVdlYiUuaCkpCiAKIGFsbCA6IFwKICAgICAk
KEpTX0RPTV9IRUFERVJTKSBcCkBAIC04MTIsMjAgKzgxNCwzMiBAQCBlbmRpZgogCiAjIC0tLS0t
LS0tCiAKLSMgSmF2YVNjcmlwdCBiaW5kaW5ncwotCi1HRU5FUkFURV9CSU5ESU5HUyA9IHBlcmwg
LUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCBcCi0gICAgLS1pbmNsdWRlIGRvbSAtLWluY2x1ZGUgaHRt
bCAtLWluY2x1ZGUgY3NzIC0taW5jbHVkZSBwYWdlIC0taW5jbHVkZSBub3RpZmljYXRpb25zIC0t
aW5jbHVkZSB4bWwgLS1pbmNsdWRlIHN2ZyAtLXdyaXRlLWRlcGVuZGVuY2llcyAtLW91dHB1dERp
ciAuCisjIENvbW1vbiBnZW5lcmF0b3IgdGhpbmdzCiAKLUdFTkVSQVRFX0JJTkRJTkdTX1NDUklQ
VFMgPSBcCitHRU5FUkFURV9TQ1JJUFRTID0gXAogICAgIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvci5wbSBcCiAgICAgYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0gXAogICAgIGJp
bmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtIFwKLSAgICBiaW5kaW5ncy9zY3JpcHRzL2dl
bmVyYXRlLWJpbmRpbmdzLnBsIFwKLSMKKyAgICBiaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJp
bmRpbmdzLnBsCisKK2dlbmVyYXRvcl9zY3JpcHQgPSBwZXJsICQoYWRkcHJlZml4IC1JICQoV2Vi
Q29yZSkvLCAkKHNvcnQgJChkaXIgJCgxKSkpKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMv
Z2VuZXJhdGUtYmluZGluZ3MucGwKKworIyBKUyBiaW5kaW5ncyBnZW5lcmF0b3IKKworSURMX0lO
Q0xVREVTID0gZG9tIGh0bWwgY3NzIHBhZ2Ugbm90aWZpY2F0aW9ucyB4bWwgc3ZnCitJRExfQ09N
TU9OX0FSR1MgPSAkKElETF9JTkNMVURFUzolPS0taW5jbHVkZSAlKSAtLXdyaXRlLWRlcGVuZGVu
Y2llcyAtLW91dHB1dERpciAuCisKK0pTX0JJTkRJTkdTX1NDUklQVFMgPSAkKEdFTkVSQVRFX1ND
UklQVFMpIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisKK0pTJS5oIDogJS5p
ZGwgJChKU19CSU5ESU5HU19TQ1JJUFRTKQorCSQoY2FsbCBnZW5lcmF0b3Jfc2NyaXB0LCAkKEpT
X0JJTkRJTkdTX1NDUklQVFMpKSAkKElETF9DT01NT05fQVJHUykgLS1kZWZpbmVzICIkKEZFQVRV
UkVfREVGSU5FUykgJChBRERJVElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBU
IiAtLWdlbmVyYXRvciBKUyAkPAorCisjIEluc3BlY3RvciBpbnRlcmZhY2VzIGdlbmVyYXRvcgor
CitJTlNQRUNUT1JfR0VORVJBVE9SX1NDUklQVFMgPSAkKEdFTkVSQVRFX1NDUklQVFMpIGluc3Bl
Y3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCiAKLUpTJS5oIDogJS5pZGwgJChHRU5FUkFU
RV9CSU5ESU5HU19TQ1JJUFRTKSBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQot
CSQoR0VORVJBVEVfQklORElOR1MpIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMpICQoQURE
SVRJT05BTF9JRExfREVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1nZW5lcmF0b3IgSlMg
JDwKK1dlYiUuaCA6ICUuaW5zcGVjdG9ySURMICQoSU5TUEVDVE9SX0dFTkVSQVRPUl9TQ1JJUFRT
KQorCSQoY2FsbCBnZW5lcmF0b3Jfc2NyaXB0LCAkKElOU1BFQ1RPUl9HRU5FUkFUT1JfU0NSSVBU
UykpIC0tb3V0cHV0RGlyIC4gIC0tZGVmaW5lcyAiTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1nZW5l
cmF0b3IgSW5zcGVjdG9yICQ8CiAKIC1pbmNsdWRlICQoSlNfRE9NX0hFQURFUlM6Lmg9LmRlcCkK
IApAQCAtOTI2LDggKzk0MCw5IEBAIFdlYkNvcmUuTFA2NC5leHAgOiBXZWJDb3JlLmV4cAogCiAj
IE9iamVjdGl2ZS1DIGJpbmRpbmdzCiAKLURPTSUuaCA6ICUuaWRsICQoR0VORVJBVEVfQklORElO
R1NfU0NSSVBUUykgYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbSBiaW5kaW5n
cy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaAotCSQoR0VORVJBVEVfQklORElOR1MpIC0tZGVm
aW5lcyAiJChGRUFUVVJFX0RFRklORVMpICQoQURESVRJT05BTF9JRExfREVGSU5FUykgTEFOR1VB
R0VfT0JKRUNUSVZFX0MiIC0tZ2VuZXJhdG9yIE9iakMgJDwKK0RPTV9CSU5ESU5HU19TQ1JJUFRT
ID0gJChHRU5FUkFURV9CSU5ESU5HX1NDUklQVFMpIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvck9iakMucG0KK0RPTSUuaCA6ICUuaWRsICQoRE9NX0JJTkRJTkdTX1NDUklQVFMpIGJpbmRp
bmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oCisJJChjYWxsIGdlbmVyYXRvcl9zY3JpcHQs
ICQoRE9NX0JJTkRJTkdTX1NDUklQVFMpKSAkKElETF9DT01NT05fQVJHUykgLS1kZWZpbmVzICIk
KEZFQVRVUkVfREVGSU5FUykgJChBRERJVElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFHRV9PQkpF
Q1RJVkVfQyIgLS1nZW5lcmF0b3IgT2JqQyAkPAogCiAtaW5jbHVkZSAkKE9CSkNfRE9NX0hFQURF
UlM6Lmg9LmRlcCkKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNDlhMWM4Yi4uNjE3YzgyZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0zMjEs
NiArMzIxLDggQEAgSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3htbC9YTUxTZXJpYWxpemVy
LmlkbCBcCiAJV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5pZGwKIAorSU5TUEVDVE9SX0lOVEVS
RkFDRVMgKz0gV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmluc3BlY3RvcklE
TAorCiB3ZWJjb3JlZ3RrX2RvbV9zb3VyY2VzID0gXAogCVdlYkNvcmUvYmluZGluZ3MvZ29iamVj
dC9Db252ZXJ0VG9VVEY4U3RyaW5nLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0Nv
bnZlcnRUb1VURjhTdHJpbmcuaCBcCkBAIC0zODkwLDEzICszODkyLDE5IEBAIElETF9QQVRIIDo9
IFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMKIAogdnBhdGggJS5pZGwgPSAkKElETF9QQVRIKQor
dnBhdGggJS5pbnNwZWN0b3JJREwgPSAkKFdlYkNvcmUpL2luc3BlY3RvcgogCiBEZXJpdmVkU291
cmNlcy9KUyUuaDogRGVyaXZlZFNvdXJjZXMvSlMlLmNwcDsKIAorRGVyaXZlZFNvdXJjZXMvV2Vi
JS5oOiBEZXJpdmVkU291cmNlcy9XZWIlLmNwcDsKKwogLlNFQ09OREFSWToKIERlcml2ZWRTb3Vy
Y2VzL0pTJS5jcHA6ICUuaWRsICQoU0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQogCSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2Vi
Q29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJh
dGUtYmluZGluZ3MucGwgJChJRExfUEFUSDolPS0taW5jbHVkZSAiJSIpIC0tb3V0cHV0RGlyICIk
KEdFTlNPVVJDRVMpIiAtLWRlZmluZXMgIkxBTkdVQUdFX0pBVkFTQ1JJUFQ9MSAkKEZFQVRVUkVf
REVGSU5FUykiIC0tZ2VuZXJhdG9yIEpTICQ8CiAKK0Rlcml2ZWRTb3VyY2VzL1dlYiUuY3BwOiAl
Lmluc3BlY3RvcklETCAkKFNDUklQVFNfQklORElOR1MpICQoV2ViQ29yZSkvaW5zcGVjdG9yL0Nv
ZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KKwkkKEFNX1ZfR0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUp
L2JpbmRpbmdzL3NjcmlwdHMgLUkkKFdlYkNvcmUpL2luc3BlY3RvciAkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgJChJRExfUEFUSDolPS0taW5jbHVkZSAi
JSIpIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAtLWRlZmluZXMgIkxBTkdVQUdFX0pBVkFT
Q1JJUFQ9MSAkKEZFQVRVUkVfREVGSU5FUykiIC0tZ2VuZXJhdG9yIEluc3BlY3RvciAkPAorCiBJ
RExfQklORElOR1NfSlNfUFVSRSA6PSBcCiAJV2ViQ29yZS9zdmcvRWxlbWVudFRpbWVDb250cm9s
LmlkbCBcCiAJV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5pZGwgXApAQCAtMzkxNiw4
ICszOTI0LDExIEBAIElETF9CSU5ESU5HU19KU19QVVJFIDo9IFwKIElETF9CSU5ESU5HU19KUyA6
PSAkKGZpbHRlci1vdXQgJChJRExfQklORElOR1NfSlNfUFVSRSksJChJRExfQklORElOR1MpKQog
CiB3ZWJjb3JlX2J1aWx0X25vc291cmNlcyArPSAkKHBhdHN1YnN0ICUuaWRsLERlcml2ZWRTb3Vy
Y2VzL0pTJS5oLCQobm90ZGlyICQoSURMX0JJTkRJTkdTKSkpCit3ZWJjb3JlX2J1aWx0X25vc291
cmNlcyArPSAkKHBhdHN1YnN0ICUuaW5zcGVjdG9ySURMLERlcml2ZWRTb3VyY2VzL1dlYiUuaCwk
KG5vdGRpciAkKElOU1BFQ1RPUl9JTlRFUkZBQ0VTKSkpCiAKLXdlYmNvcmVfYnVpbHRfbm9zb3Vy
Y2VzICs9ICQocGF0c3Vic3QgJS5pZGwsRGVyaXZlZFNvdXJjZXMvSlMlLmNwcCwkKG5vdGRpciAk
KElETF9CSU5ESU5HU19KUykpKQord2ViY29yZV9idWlsdF9jcHAgPSAkKHBhdHN1YnN0ICUuaWRs
LERlcml2ZWRTb3VyY2VzL0pTJS5jcHAsJChub3RkaXIgJChJRExfQklORElOR1NfSlMpKSkKK3dl
YmNvcmVfYnVpbHRfY3BwICs9ICQocGF0c3Vic3QgJS5pbnNwZWN0b3JJREwsRGVyaXZlZFNvdXJj
ZXMvV2ViJS5jcHAsJChub3RkaXIgJChJTlNQRUNUT1JfSU5URVJGQUNFUykpKQord2ViY29yZV9i
dWlsdF9ub3NvdXJjZXMgKz0gJCh3ZWJjb3JlX2J1aWx0X2NwcCkKIAogd2ViY29yZV9idWlsdF9v
YmplY3RzID0gOj0gJChwYXRzdWJzdCAlLmNwcCwlLmxvLCQod2ViY29yZV9idWlsdF9ub3NvdXJj
ZXMpKQogCkBAIC0zOTI1LDkgKzM5MzYsOSBAQCAkKHdlYmNvcmVfYnVpbHRfb2JqZWN0cyk6IEFN
X0NQUEZMQUdTKz0kKGNvcmVraXRfY3BwZmxhZ3MpCiAKICQod2ViY29yZV9idWlsdF9vYmplY3Rz
KTogQU1fQ1hYRkxBR1MrPSQobGlid2Via2l0XzFfMF9sYV9DWFhGTEFHUykKIAotbGliV2ViQ29y
ZUpTX29iamVjdHMgOj0gJChwYXRzdWJzdCAlLmlkbCxEZXJpdmVkU291cmNlcy9KUyUubG8sJChu
b3RkaXIgJChJRExfQklORElOR1NfSlMpKSkKK2xpYldlYkNvcmVKU19vYmplY3RzIDo9ICQocGF0
c3Vic3QgJS5jcHAsJS5sbywkKHdlYmNvcmVfYnVpbHRfY3BwKSkKIAotbGliV2ViQ29yZUpTX2Rl
cGZpbGVzIDo9ICQocGF0c3Vic3QgJS5pZGwsRGVyaXZlZFNvdXJjZXMvJChERVBESVIpL0pTJS5Q
bG8sJChub3RkaXIgJChJRExfQklORElOR1NfSlMpKSkKK2xpYldlYkNvcmVKU19kZXBmaWxlcyA6
PSAkKHBhdHN1YnN0ICUuY3BwLERlcml2ZWRTb3VyY2VzLyQoREVQRElSKS8lLlBsbywkKG5vdGRp
ciAkKHdlYmNvcmVfYnVpbHRfY3BwKSkpCiAKICMgT2xkZXIgYXV0b21ha2UgdmVyc2lvbnMgKDEu
NykgcGxhY2UgUGxvIGZpbGVzIGluIGEgZGlmZmVyZW50IHBsYWNlOgogbGliV2ViQ29yZUpTX2Rl
cGZpbGVzICs9ICQocGF0c3Vic3QgJS5sbywkKERFUERJUikvJS5QbG8sJChsaWJXZWJDb3JlSlNf
b2JqZWN0cykpCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIv
V2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRleCAxNmYxOWQ5Li41NGEzNmJmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5neXAvV2ViQ29yZS5neXAKQEAgLTU4OSw2ICs1ODksNyBAQAogICAgICAgICAgICdh
Y3Rpb24nOiBbCiAgICAgICAgICAgICAncHl0aG9uJywKICAgICAgICAgICAgICdzY3JpcHRzL3J1
bGVfYmluZGluZy5weScsCisgICAgICAgICAgICAndjgnLAogICAgICAgICAgICAgJzwoUlVMRV9J
TlBVVF9QQVRIKScsCiAgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Vi
Y29yZS9iaW5kaW5ncycsCiAgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikv
d2Via2l0L2JpbmRpbmdzJywKQEAgLTYwMSw2ICs2MDIsNDkgQEAKICAgICAgICAgICBdLAogICAg
ICAgICAgICdtZXNzYWdlJzogJ0dlbmVyYXRpbmcgYmluZGluZyBmcm9tIDwoUlVMRV9JTlBVVF9Q
QVRIKScsCiAgICAgICAgIH0sCisgICAgICAgICMgUnVsZSB0byBidWlsZCBnZW5lcmF0ZWQgV2Vi
SW5zcGVjdG9yIGJpbmRpbmdzIGZyb20gLmluc3BlY3RvcklETCBzb3VyY2UuCisgICAgICAgIHsK
KyAgICAgICAgICAncnVsZV9uYW1lJzogJ2luc3BlY3RvcklETCcsCisgICAgICAgICAgJ2V4dGVu
c2lvbic6ICdpbnNwZWN0b3JJREwnLAorICAgICAgICAgICdtc3ZzX2V4dGVybmFsX3J1bGUnOiAx
LAorICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0
cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCcsCisgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yLnBtJywKKyAgICAgICAgICAgICcuLi9pbnNwZWN0b3IvQ29kZUdlbmVy
YXRvckluc3BlY3Rvci5wbScsCisgICAgICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9JRExQ
YXJzZXIucG0nLAorICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJl
LnBtJywKKyAgICAgICAgICBdLAorICAgICAgICAgICdvdXRwdXRzJzogWworICAgICAgICAgICAg
IyBGSVhNRTogIFRoZSAuY3BwIGZpbGUgc2hvdWxkIGJlIGluIHdlYmtpdC9iaW5kaW5ncyBvbmNl
CisgICAgICAgICAgICAjIHdlIGNvYXggR1lQIGludG8gc3VwcG9ydGluZyBpdCAoc2VlICdhY3Rp
b24nIGJlbG93KS4KKyAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJj
b3JlL2JpbmRpbmdzL1dlYjwoUlVMRV9JTlBVVF9ST09UKS5jcHAnLAorICAgICAgICAgICAgJzwo
U0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9iaW5kaW5ncy9XZWI8KFJVTEVfSU5QVVRf
Uk9PVCkuaCcsCisgICAgICAgICAgXSwKKyAgICAgICAgICAndmFyaWFibGVzJzogeworICAgICAg
ICAgICAgJ2dlbmVyYXRvcl9pbmNsdWRlX2RpcnMnOiBbCisgICAgICAgICAgICBdLAorICAgICAg
ICAgIH0sCisgICAgICAgICAgIyBGSVhNRTogIE5vdGUgdGhhdCB3ZSBwdXQgdGhlIC5jcHAgZmls
ZXMgaW4gd2ViY29yZS9iaW5kaW5ncworICAgICAgICAgICMgYnV0IHRoZSAuaCBmaWxlcyBpbiB3
ZWJraXQvYmluZGluZ3MuICBUaGlzIGlzIHRvIHdvcmsgYXJvdW5kCisgICAgICAgICAgIyB0aGUg
dW5mb3J0dW5hdGUgZmFjdCB0aGF0IEdZUCBzdHJpcHMgZHVwbGljYXRlIGFyZ3VtZW50cworICAg
ICAgICAgICMgZnJvbSBsaXN0cy4gIFdoZW4gd2UgaGF2ZSBhIGJldHRlciBHWVAgd2F5IHRvIHN1
cHByZXNzIHRoYXQKKyAgICAgICAgICAjIGJlaGF2aW9yLCBjaGFuZ2UgdGhlIG91dHB1dCBsb2Nh
dGlvbi4KKyAgICAgICAgICAnYWN0aW9uJzogWworICAgICAgICAgICAgJ3B5dGhvbicsCisgICAg
ICAgICAgICAnc2NyaXB0cy9ydWxlX2JpbmRpbmcucHknLAorICAgICAgICAgICAgJ1dlYicsCisg
ICAgICAgICAgICAnPChSVUxFX0lOUFVUX1BBVEgpJywKKyAgICAgICAgICAgICc8KFNIQVJFRF9J
TlRFUk1FRElBVEVfRElSKS93ZWJjb3JlL2JpbmRpbmdzJywKKyAgICAgICAgICAgICc8KFNIQVJF
RF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGluZ3MnLAorICAgICAgICAgICAgJy0tJywK
KyAgICAgICAgICAgICc8QChfaW5wdXRzKScsCisgICAgICAgICAgICAnLS0nLAorICAgICAgICAg
ICAgJy0tZGVmaW5lcycsICdMQU5HVUFHRV9KQVZBU0NSSVBUJywKKyAgICAgICAgICAgICctLWdl
bmVyYXRvcicsICdJbnNwZWN0b3InLAorICAgICAgICAgICAgJzxAKGdlbmVyYXRvcl9pbmNsdWRl
X2RpcnMpJworICAgICAgICAgIF0sCisgICAgICAgICAgJ21lc3NhZ2UnOiAnR2VuZXJhdGluZyBJ
bnNwZWN0b3IgdHJhbnNwb3J0IGNsYXNzIGZyb20gPChSVUxFX0lOUFVUX1BBVEgpJywKKyAgICAg
ICAgfSwKICAgICAgIF0sCiAgICAgfSwKICAgICB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwL3NjcmlwdHMvYWN0aW9uX2Rlcml2ZWRzb3VyY2VzYWxsaW5vbmUucHkgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX2Rlcml2ZWRzb3VyY2VzYWxsaW5vbmUucHkKaW5k
ZXggYzljNWJmNS4uNmUwZDczMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3Jp
cHRzL2FjdGlvbl9kZXJpdmVkc291cmNlc2FsbGlub25lLnB5CisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5neXAvc2NyaXB0cy9hY3Rpb25fZGVyaXZlZHNvdXJjZXNhbGxpbm9uZS5weQpAQCAtMTIzLDEy
ICsxMjMsMTYgQEAgZGVmIGV4dHJhY3RNZXRhRGF0YShmaWxlUGF0aHMpOgogICAgICAgICAocGFy
ZW50UGF0aCwgZmlsZU5hbWUpID0gb3MucGF0aC5zcGxpdChmKQogICAgICAgICAoaW50ZXJmYWNl
TmFtZSwgZXh0KSA9IG9zLnBhdGguc3BsaXRleHQoZmlsZU5hbWUpCiAKLSAgICAgICAgaWYgbm90
IGV4dCA9PSAnLmlkbCc6CisgICAgICAgIGlmIGV4dCA9PSAnLmlkbCc6CisgICAgICAgICAgICBm
aWxlTmFtZSA9ICdWOCVzJyAlIGludGVyZmFjZU5hbWUKKyAgICAgICAgZWxpZiBleHQgPT0gJy5p
bnNwZWN0b3JJREwnOgorICAgICAgICAgICAgZmlsZU5hbWUgPSAnV2ViJXMnICUgaW50ZXJmYWNl
TmFtZQorICAgICAgICBlbHNlOgogICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICBtZXRh
RGF0YSA9IHsKICAgICAgICAgICAgICdjb25kaXRpb25hbCc6IGV4dHJhY3RDb25kaXRpb25hbChm
KSwKLSAgICAgICAgICAgICduYW1lJzogaW50ZXJmYWNlTmFtZSwKKyAgICAgICAgICAgICduYW1l
JzogZmlsZU5hbWUsCiAgICAgICAgIH0KIAogICAgICAgICBtZXRhRGF0YUxpc3QuYXBwZW5kKG1l
dGFEYXRhKQpAQCAtMTU5LDcgKzE2Myw3IEBAIGRlZiBnZW5lcmF0ZUNvbnRlbnQoZmlsZXNNZXRh
RGF0YSwgcGFydGl0aW9uLCB0b3RhbFBhcnRpdGlvbnMpOgogICAgICAgICBpZiBjb25kaXRpb25h
bCBhbmQgcHJldkNvbmRpdGlvbmFsICE9IGNvbmRpdGlvbmFsOgogICAgICAgICAgICAgb3V0cHV0
LmFwcGVuZCgnXG4jaWYgJXNcbicgJSBmb3JtYXRDb25kaXRpb25hbChjb25kaXRpb25hbCkpCiAK
LSAgICAgICAgb3V0cHV0LmFwcGVuZCgnI2luY2x1ZGUgImJpbmRpbmdzL1Y4JXMuY3BwIlxuJyAl
IG5hbWUpCisgICAgICAgIG91dHB1dC5hcHBlbmQoJyNpbmNsdWRlICJiaW5kaW5ncy8lcy5jcHAi
XG4nICUgbmFtZSkKIAogICAgICAgICBwcmV2Q29uZGl0aW9uYWwgPSBjb25kaXRpb25hbAogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvcnVsZV9iaW5kaW5nLnB5IGIv
V2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL3J1bGVfYmluZGluZy5weQppbmRleCAyNGQxNzhm
Li5jZGQ0MjhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvcnVsZV9i
aW5kaW5nLnB5CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9ydWxlX2JpbmRpbmcu
cHkKQEAgLTgyLDggKzgyLDggQEAgZGVmIG1haW4oYXJncyk6CiAgICAgYXNzZXJ0IGxlbihzZWN0
aW9ucykgPT0gMywgc2VjdGlvbnMKICAgICAoYmFzZSwgaW5wdXRzLCBvcHRpb25zKSA9IHNlY3Rp
b25zCiAKLSAgICBhc3NlcnQgbGVuKGJhc2UpID09IDMsIGJhc2UKLSAgICAoaW5wdXQsIGNwcGRp
ciwgaGRpcikgPSBiYXNlCisgICAgYXNzZXJ0IGxlbihiYXNlKSA9PSA0LCBiYXNlCisgICAgKHBy
ZWZpeCwgaW5wdXQsIGNwcGRpciwgaGRpcikgPSBiYXNlCiAKICAgICBhc3NlcnQgbGVuKGlucHV0
cykgPiAxLCBpbnB1dHMKICAgICBnZW5lcmF0ZUJpbmRpbmdzID0gaW5wdXRzWzBdCkBAIC0xMjIs
NyArMTIyLDcgQEAgZGVmIG1haW4oYXJncyk6CiAgICAgaWYgY3BwZGlyICE9IGhkaXI6CiAgICAg
ICAgIGlucHV0QmFzZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKGlucHV0KQogICAgICAgICAocm9v
dCwgZXh0KSA9IG9zLnBhdGguc3BsaXRleHQoaW5wdXRCYXNlbmFtZSkKLSAgICAgICAgaG5hbWUg
PSAnVjglcy5oJyAlIHJvb3QKKyAgICAgICAgaG5hbWUgPSAnJXMlcy5oJyAlIChwcmVmaXgudXBw
ZXIoKSwgcm9vdCkKICAgICAgICAgaHNyYyA9IG9zLnBhdGguam9pbihjcHBkaXIsIGhuYW1lKQog
ICAgICAgICBoZHN0ID0gb3MucGF0aC5qb2luKGhkaXIsIGhuYW1lKQogICAgICAgICBzaHV0aWwu
Y29weWZpbGUoaHNyYywgaGRzdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMGMwZjU4MC4uNGFiOGQ3YiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE5NCw2
ICsxOTQsNyBAQAogICAgICAgICAgICAgJ2h0bWwvVm9pZENhbGxiYWNrLmlkbCcsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmlkbCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kMi5pbnNwZWN0b3JJREwnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSmF2YVNj
cmlwdENhbGxGcmFtZS5pZGwnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9TY3JpcHRQcm9maWxl
LmlkbCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJDb3Jl
LnByaQppbmRleCBmNGFiYzI3Li42NTEzNTZlIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
cHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTYzNSw2ICs2MzUsOCBAQCBJRExfQklO
RElOR1MgKz0gXAogICAgIHhtbC9YUGF0aEV2YWx1YXRvci5pZGwgXAogICAgIHhtbC9YU0xUUHJv
Y2Vzc29yLmlkbAogCitJTlNQRUNUT1JfSU5URVJGQUNFUyA9IGluc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZDIuaW5zcGVjdG9ySURMCisKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9NQVRITUw9
MSkgewogICAgIG1hdGhtbG5hbWVzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJ
Un0vTWF0aE1MTmFtZXMuY3BwCiAgICAgbWF0aG1sbmFtZXMuaW5wdXQgPSBNQVRITUxfTkFNRVMK
QEAgLTcwMCw2ICs3MDIsMTggQEAgaWRsLmRlcGVuZHMgPSAkJFBXRC9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3IucG0gXAogICAgICAgICAgICAgICAkJFBXRC9iaW5kaW5ncy9zY3JpcHRz
L0luRmlsZXNQYXJzZXIucG0KIGFkZEV4dHJhQ29tcGlsZXIoaWRsKQogCisjIEdFTkVSQVRPUiAy
OiBpbnNwZWN0b3JJREwgY29tcGlsZXIKK2luc3BlY3RvcklETC5vdXRwdXQgPSAkJHtXQ19HRU5F
UkFURURfU09VUkNFU19ESVJ9L1dlYiR7UU1BS0VfRklMRV9CQVNFfS5jcHAKK2luc3BlY3RvcklE
TC5pbnB1dCA9IElOU1BFQ1RPUl9JTlRFUkZBQ0VTCitpbnNwZWN0b3JJREwud2tTY3JpcHQgPSAk
JFBXRC9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCitpbnNwZWN0b3JJREwu
Y29tbWFuZHMgPSBwZXJsIC1JJCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAtSSQkUFdEL2luc3BlY3Rv
ciAkJGluc3BlY3RvcklETC53a1NjcmlwdCAtLWRlZmluZXMgXCIkJHtGRUFUVVJFX0RFRklORVNf
SkFWQVNDUklQVH1cIiAtLWdlbmVyYXRvciBJbnNwZWN0b3IgLS1vdXRwdXREaXIgJCRXQ19HRU5F
UkFURURfU09VUkNFU19ESVIgLS1wcmVwcm9jZXNzb3IgXCIkJHtRTUFLRV9NT0N9IC1FXCIgJHtR
TUFLRV9GSUxFX05BTUV9CitpbnNwZWN0b3JJREwuZGVwZW5kcyA9ICQkUFdEL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvci5wbSBcCisgICAgICAgICAgICAgICQkUFdEL2luc3BlY3Rvci9D
b2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtIFwKKyAgICAgICAgICAgICAgJCRQV0QvYmluZGluZ3Mv
c2NyaXB0cy9JRExQYXJzZXIucG0gXAorICAgICAgICAgICAgICAkJFBXRC9iaW5kaW5ncy9zY3Jp
cHRzL0lETFN0cnVjdHVyZS5wbSBcCisgICAgICAgICAgICAgICQkUFdEL2JpbmRpbmdzL3Njcmlw
dHMvSW5GaWxlc1BhcnNlci5wbQorYWRkRXh0cmFDb21waWxlcihpbnNwZWN0b3JJREwpCisKICMg
R0VORVJBVE9SIDM6IHRva2VuaXplciAoZmxleCkKIHRva2VuaXplci5vdXRwdXQgPSAkJHtXQ19H
RU5FUkFURURfU09VUkNFU19ESVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5jcHAKIHRva2VuaXplci5p
bnB1dCA9IFRPS0VOSVpFUgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXgg
MTA4ODk1ZS4uMmY2MDhkZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBA
IC0yMDA2NSw2ICsyMDA2NSwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJ
CQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXFdlYkluc3BlY3RvckZyb250ZW5kMi5jcHAiDQorCQkJCT4NCisJCQk8L0Zp
bGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkluc3BlY3RvckZyb250ZW5kMi5oIg0K
KwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJL
aXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXTUxFbGVtZW50
RmFjdG9yeS5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjNjQyNzdkLi5iNGMwNTE1IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjYyMSw2ICs2NjIxLDkgQEAKIAkJ
NEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5cGVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRpbmdCZWhhdmlvclR5cGVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGMzI4OUIzMTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNw
ZWN0b3JWYWx1ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5z
cGVjdG9yVmFsdWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEYzMjg5QjQx
MUE0MkFBQjAwNUFCRTdFIC8qIEluc3BlY3RvclZhbHVlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JWYWx1ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNEY3OTYwMEYxMUM3RTNFOTAwQzBDQzNDIC8qIEluc3BlY3RvckZyb250ZW5kMi5pbnNw
ZWN0b3JJREwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmQyLmluc3Bl
Y3RvcklETDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEY3OTYwMzIxMUM4MEM4QTAw
QzBDQzNDIC8qIFdlYkluc3BlY3RvckZyb250ZW5kMi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBXZWJJbnNwZWN0b3JGcm9udGVuZDIuY3BwOyBwYXRoID0gLi4vV2Vi
S2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9XZWJJbnNwZWN0b3JGcm9udGVu
ZDIuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCTRGNzk2MDMzMTFDODBDOEEw
MEMwQ0MzQyAvKiBXZWJJbnNwZWN0b3JGcm9udGVuZDIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gV2ViSW5zcGVjdG9yRnJvbnRlbmQyLmg7IHBhdGggPSAuLi9XZWJLaXRCdWls
ZC9EZWJ1Zy9EZXJpdmVkU291cmNlcy9XZWJDb3JlL1dlYkluc3BlY3RvckZyb250ZW5kMi5oOyBz
b3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTRGRDhEMEYwMTE5QzcxOEIwMDJGQTgyNSAv
KiBTY3JpcHRHQ0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNjcmlwdEdDRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RkQ4RDBG
MTExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JpcHRHQ0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxMDE4NDY3MEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFBhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTExMTc2LDYgKzExMTc5LDggQEAKIAkJCQk5RkEzN0VGNzExNzJGRDkzMDBDNENE
NTUgLyogSlNTY3JpcHRQcm9maWxlLmggKi8sCiAJCQkJOUZBMzdFRjgxMTcyRkQ5MzAwQzRDRDU1
IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwICovLAogCQkJCTlGQTM3RUY5MTE3MkZEOTMwMEM0
Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2RlLmggKi8sCisJCQkJNEY3OTYwMzIxMUM4MEM4QTAw
QzBDQzNDIC8qIFdlYkluc3BlY3RvckZyb250ZW5kMi5jcHAgKi8sCisJCQkJNEY3OTYwMzMxMUM4
MEM4QTAwQzBDQzNDIC8qIFdlYkluc3BlY3RvckZyb250ZW5kMi5oICovLAogCQkJKTsKIAkJCW5h
bWUgPSBJbnNwZWN0b3I7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTEyMDcsNiAr
MTEyMTIsNyBAQAogCQkJCTQxRjA2MTcyMEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01T
dG9yYWdlUmVzb3VyY2UuaCAqLywKIAkJCQk3QUVEM0UwMzBGQkIxRUFBMDBEMkIwM0MgLyogSW5z
cGVjdG9yRnJvbnRlbmQuY3BwICovLAogCQkJCTdBRUQzRTA0MEZCQjFFQUEwMEQyQjAzQyAvKiBJ
bnNwZWN0b3JGcm9udGVuZC5oICovLAorCQkJCTRGNzk2MDBGMTFDN0UzRTkwMEMwQ0MzQyAvKiBJ
bnNwZWN0b3JGcm9udGVuZDIuaW5zcGVjdG9ySURMICovLAogCQkJCUYzNDRDNzEyMTEyNUI4MkMw
MEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oICovLAogCQkJCUYzNDRDNzU3MTEy
OTRGRjYwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCAqLywKIAkJ
CQlGMzQ0Qzc1MjExMjk0RDlEMDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bC5oICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2su
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2suY3BwCmluZGV4IDg2ZGRj
ZDEuLmM5YmI4YjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0
YWNrLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5jcHAKQEAg
LTEwMCw3ICsxMDAsNyBAQCB2b2lkIFNjcmlwdENhbGxTdGFjazo6aW5pdGlhbGl6ZSgpCiAgICAg
bV9pbml0aWFsaXplZCA9IHRydWU7CiB9CiAKLWJvb2wgU2NyaXB0Q2FsbFN0YWNrOjpzdGFja1Ry
YWNlKGludCwgU2NyaXB0U3RhdGUqLCBTY3JpcHRBcnJheSYpCitib29sIFNjcmlwdENhbGxTdGFj
azo6c3RhY2tUcmFjZShpbnQsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mKQogewogICAg
IHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q2FsbFN0YWNrLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5oCmluZGV4
IDZjZjc2NzkuLjQ5NTBkYWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q2FsbFN0YWNrLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2suaApA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0U3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBFeGVjU3RhdGU7CkBAIC00
Myw2ICs0NCw4IEBAIG5hbWVzcGFjZSBKU0MgewogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgCisgICAgY2xhc3MgSW5zcGVjdG9yQXJyYXk7CiAKICAgICBjbGFzcyBTY3JpcHRDYWxsU3Rh
Y2sgOiBwdWJsaWMgTm9uY29weWFibGUgewogICAgIHB1YmxpYzoKQEAgLTU0LDcgKzU3LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBmcmFtZSByZXRyaWV2YWwgbWV0aG9kcwog
ICAgICAgICBjb25zdCBTY3JpcHRDYWxsRnJhbWUgJmF0KHVuc2lnbmVkKTsKICAgICAgICAgdW5z
aWduZWQgc2l6ZSgpOwotICAgICAgICBzdGF0aWMgYm9vbCBzdGFja1RyYWNlKGludCwgU2NyaXB0
U3RhdGUqLCBTY3JpcHRBcnJheSYpOworICAgICAgICBzdGF0aWMgYm9vbCBzdGFja1RyYWNlKGlu
dCwgY29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5PiYpOwogCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgdm9pZCBpbml0aWFsaXplKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvci5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yLnBtCmluZGV4IDdjMGY0MjcuLmM2OWRjMWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yLnBtCkBAIC04Myw2ICs4Myw3IEBAIHN1YiBuZXcKICAgICAkdXNlTGF5
ZXJPblRvcCA9IHNoaWZ0OwogICAgICRwcmVwcm9jZXNzb3IgPSBzaGlmdDsKICAgICAkd3JpdGVE
ZXBlbmRlbmNpZXMgPSBzaGlmdDsKKyAgICAkdmVyYm9zZSA9IHNoaWZ0OwogCiAgICAgYmxlc3Mo
JHJlZmVyZW5jZSwgJG9iamVjdCk7CiAgICAgcmV0dXJuICRyZWZlcmVuY2U7CkBAIC0xMDMsMTAg
KzEwNCwxMCBAQCBzdWIgUHJvY2Vzc0RvY3VtZW50CiAgICAgJGRlZmluZXMgPSBzaGlmdDsKIAog
ICAgIG15ICRpZmFjZU5hbWUgPSAiQ29kZUdlbmVyYXRvciIgLiAkdXNlR2VuZXJhdG9yOworICAg
IHJlcXVpcmUgJGlmYWNlTmFtZSAuICIucG0iOwogCiAgICAgIyBEeW5hbWljYWxseSBsb2FkIGV4
dGVybmFsIGNvZGUgZ2VuZXJhdGlvbiBwZXJsIG1vZHVsZQotICAgIHJlcXVpcmUgJGlmYWNlTmFt
ZSAuICIucG0iOwotICAgICRjb2RlR2VuZXJhdG9yID0gJGlmYWNlTmFtZS0+bmV3KCRvYmplY3Qs
ICR1c2VPdXRwdXREaXIsICR1c2VMYXllck9uVG9wLCAkcHJlcHJvY2Vzc29yLCAkd3JpdGVEZXBl
bmRlbmNpZXMpOworICAgICRjb2RlR2VuZXJhdG9yID0gJGlmYWNlTmFtZS0+bmV3KCRvYmplY3Qs
ICR1c2VPdXRwdXREaXIsICR1c2VMYXllck9uVG9wLCAkcHJlcHJvY2Vzc29yLCAkd3JpdGVEZXBl
bmRlbmNpZXMsICR2ZXJib3NlKTsKICAgICB1bmxlc3MgKGRlZmluZWQoJGNvZGVHZW5lcmF0b3Ip
KSB7CiAgICAgICAgIG15ICRjbGFzc2VzID0gJHVzZURvY3VtZW50LT5jbGFzc2VzOwogICAgICAg
ICBmb3JlYWNoIG15ICRjbGFzcyAoQCRjbGFzc2VzKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lE
TFBhcnNlci5wbQppbmRleCAzZGY5NmFiLi5lMjUwYTRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9JRExQYXJzZXIucG0KQEAgLTI1OSw3ICsyNTksNyBAQCBzdWIgUGFyc2VJbnRlcmZhY2UKICAg
ICAgICAgbXkgQGludGVyZmFjZU1ldGhvZHMgPSBzcGxpdCgvOy8sICRpbnRlcmZhY2VEYXRhKTsK
IAogICAgICAgICBmb3JlYWNoIG15ICRsaW5lIChAaW50ZXJmYWNlTWV0aG9kcykgewotICAgICAg
ICAgICAgaWYgKCRsaW5lID1+IC9hdHRyaWJ1dGUvKSB7CisgICAgICAgICAgICBpZiAoJGxpbmUg
PX4gL1xXYXR0cmlidXRlXFcvKSB7CiAgICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1
Y3R1cmU6OmludGVyZmFjZUF0dHJpYnV0ZVNlbGVjdG9yLzsKIAogICAgICAgICAgICAgICAgIG15
ICRhdHRyaWJ1dGVUeXBlID0gKGRlZmluZWQoJDEpID8gJDEgOiBkaWUoIlBhcnNpbmcgZXJyb3Ih
XG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5l
cmF0ZS1iaW5kaW5ncy5wbAppbmRleCA0NGVkNGQzLi5mZWUxMWNiIDEwMDc1NQotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCkBAIC00MywyOCArNDMsMzIgQEAg
bXkgJGdlbmVyYXRvcjsKIG15ICRkZWZpbmVzOwogbXkgJHByZXByb2Nlc3NvcjsKIG15ICR3cml0
ZURlcGVuZGVuY2llczsKK215ICR2ZXJib3NlOwogCiBHZXRPcHRpb25zKCdpbmNsdWRlPXNAJyA9
PiBcQGlkbERpcmVjdG9yaWVzLAogICAgICAgICAgICAnb3V0cHV0RGlyPXMnID0+IFwkb3V0cHV0
RGlyZWN0b3J5LAogICAgICAgICAgICAnZ2VuZXJhdG9yPXMnID0+IFwkZ2VuZXJhdG9yLAogICAg
ICAgICAgICAnZGVmaW5lcz1zJyA9PiBcJGRlZmluZXMsCiAgICAgICAgICAgICdwcmVwcm9jZXNz
b3I9cycgPT4gXCRwcmVwcm9jZXNzb3IsCisgICAgICAgICAgICd2ZXJib3NlJyA9PiBcJHZlcmJv
c2UsCiAgICAgICAgICAgICd3cml0ZS1kZXBlbmRlbmNpZXMnID0+IFwkd3JpdGVEZXBlbmRlbmNp
ZXMpOwogCiBteSAkaWRsRmlsZSA9ICRBUkdWWzBdOwogCiBkaWUoJ011c3Qgc3BlY2lmeSBpbnB1
dCBmaWxlLicpIHVubGVzcyBkZWZpbmVkKCRpZGxGaWxlKTsKLWRpZSgnTXVzdCBzcGVjaWZ5IElE
TCBzZWFyY2ggcGF0aC4nKSB1bmxlc3MgQGlkbERpcmVjdG9yaWVzOwogZGllKCdNdXN0IHNwZWNp
ZnkgZ2VuZXJhdG9yJykgdW5sZXNzIGRlZmluZWQoJGdlbmVyYXRvcik7CiBkaWUoJ011c3Qgc3Bl
Y2lmeSBvdXRwdXQgZGlyZWN0b3J5LicpIHVubGVzcyBkZWZpbmVkKCRvdXRwdXREaXJlY3Rvcnkp
OwogZGllKCdNdXN0IHNwZWNpZnkgZGVmaW5lcycpIHVubGVzcyBkZWZpbmVkKCRkZWZpbmVzKTsK
IAoraWYgKCR2ZXJib3NlKSB7CisgICAgcHJpbnQgIiRnZW5lcmF0b3I6ICRpZGxGaWxlXG4iOwor
fQogJGRlZmluZXMgPX4gcy9eXHMrfFxzKyQvL2c7ICMgdHJpbSB3aGl0ZXNwYWNlCiAKICMgUGFy
c2UgdGhlIGdpdmVuIElETCBmaWxlLgotbXkgJHBhcnNlciA9IElETFBhcnNlci0+bmV3KDEpOwor
bXkgJHBhcnNlciA9IElETFBhcnNlci0+bmV3KCEkdmVyYm9zZSk7CiBteSAkZG9jdW1lbnQgPSAk
cGFyc2VyLT5QYXJzZSgkaWRsRmlsZSwgJGRlZmluZXMsICRwcmVwcm9jZXNzb3IpOwogCiAjIEdl
bmVyYXRlIGRlc2lyZWQgb3V0cHV0IGZvciBnaXZlbiBJREwgZmlsZS4KLW15ICRjb2RlR2VuID0g
Q29kZUdlbmVyYXRvci0+bmV3KFxAaWRsRGlyZWN0b3JpZXMsICRnZW5lcmF0b3IsICRvdXRwdXRE
aXJlY3RvcnksIDAsICRwcmVwcm9jZXNzb3IsICR3cml0ZURlcGVuZGVuY2llcyk7CitteSAkY29k
ZUdlbiA9IENvZGVHZW5lcmF0b3ItPm5ldyhcQGlkbERpcmVjdG9yaWVzLCAkZ2VuZXJhdG9yLCAk
b3V0cHV0RGlyZWN0b3J5LCAwLCAkcHJlcHJvY2Vzc29yLCAkd3JpdGVEZXBlbmRlbmNpZXMsICR2
ZXJib3NlKTsKICRjb2RlR2VuLT5Qcm9jZXNzRG9jdW1lbnQoJGRvY3VtZW50LCAkZGVmaW5lcyk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFjay5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFjay5jcHAKaW5kZXggODk4MDliMi4uMmZl
OTQ5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2suY3Bw
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q2FsbFN0YWNrLmNwcApAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5o
IgogCisjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0U2NvcGUu
aCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RGVidWdT
ZXJ2ZXIuaCIKQEAgLTkzLDEzICs5NCwzMCBAQCBjb25zdCBTY3JpcHRDYWxsRnJhbWUmIFNjcmlw
dENhbGxTdGFjazo6YXQodW5zaWduZWQgaW5kZXgpIGNvbnN0CiAgICAgcmV0dXJuIG1fbGFzdENh
bGxlcjsKIH0KIAotYm9vbCBTY3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UoaW50IGZyYW1lTGlt
aXQsIFNjcmlwdFN0YXRlKiBzdGF0ZSwgU2NyaXB0QXJyYXkmIHN0YWNrVHJhY2UpCitib29sIFNj
cmlwdENhbGxTdGFjazo6c3RhY2tUcmFjZShpbnQgZnJhbWVMaW1pdCwgY29uc3QgUmVmUHRyPElu
c3BlY3RvckFycmF5PiYgc3RhY2tUcmFjZSkKIHsKLSAgICBTY3JpcHRTY29wZSBzY29wZShzdGF0
ZSk7CisgICAgaWYgKCF2ODo6Q29udGV4dDo6SW5Db250ZXh0KCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gdjg6OkNvbnRleHQ6
OkdldEN1cnJlbnQoKTsKKyAgICBpZiAoY29udGV4dC5Jc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB2ODo6SGFuZGxlU2NvcGUgc2NvcGU7CisgICAgdjg6OkNvbnRleHQ6OlNj
b3BlIGNvbnRleHRTY29wZShjb250ZXh0KTsKICAgICB2ODo6SGFuZGxlPHY4OjpTdGFja1RyYWNl
PiB0cmFjZSh2ODo6U3RhY2tUcmFjZTo6Q3VycmVudFN0YWNrVHJhY2UoZnJhbWVMaW1pdCkpOwot
ICAgIGlmICh0cmFjZS5Jc0VtcHR5KCkgfHwgIXRyYWNlLT5HZXRGcmFtZUNvdW50KCkpCisgICAg
aW50IGZyYW1lQ291bnQgPSB0cmFjZS0+R2V0RnJhbWVDb3VudCgpOworICAgIGlmICh0cmFjZS5J
c0VtcHR5KCkgfHwgIWZyYW1lQ291bnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBzdGFj
a1RyYWNlID0gU2NyaXB0QXJyYXkoc3RhdGUsIHRyYWNlLT5Bc0FycmF5KCkpOworICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgZnJhbWVDb3VudDsgKytpKSB7CisgICAgICAgIHY4OjpIYW5kbGU8djg6
OlN0YWNrRnJhbWU+IGZyYW1lID0gdHJhY2UtPkdldEZyYW1lKGkpOworICAgICAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBmcmFtZU9iamVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7
CisgICAgICAgIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBzY3JpcHROYW1lID0gZnJhbWUtPkdldFNj
cmlwdE5hbWUoKTsKKyAgICAgICAgZnJhbWVPYmplY3QtPnNldFN0cmluZygic2NyaXB0TmFtZSIs
IHNjcmlwdE5hbWUuSXNFbXB0eSgpID8gIiIgOiB0b1dlYkNvcmVTdHJpbmcoc2NyaXB0TmFtZSkp
OyAgICAgICAgCisgICAgICAgIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBmdW5jdGlvbk5hbWUgPSBm
cmFtZS0+R2V0RnVuY3Rpb25OYW1lKCk7CisgICAgICAgIGZyYW1lT2JqZWN0LT5zZXRTdHJpbmco
ImZ1bmN0aW9uTmFtZSIsIGZ1bmN0aW9uTmFtZS5Jc0VtcHR5KCkgPyAiIiA6IHRvV2ViQ29yZVN0
cmluZyhmdW5jdGlvbk5hbWUpKTsgICAgICAgIAorICAgICAgICBmcmFtZU9iamVjdC0+c2V0TnVt
YmVyKCJsaW5lTnVtYmVyIiwgZnJhbWUtPkdldExpbmVOdW1iZXIoKSk7CisgICAgICAgIGZyYW1l
T2JqZWN0LT5zZXROdW1iZXIoImNvbHVtbiIsIGZyYW1lLT5HZXRDb2x1bW4oKSk7CisgICAgICAg
IHN0YWNrVHJhY2UtPnB1c2goZnJhbWVPYmplY3QpOworICAgIH0KICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2suaCBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q2FsbFN0YWNrLmgKaW5kZXggOGIwMjgxNC4uOTM0
NzhiYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2suaAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFjay5oCkBAIC0zNiw2ICszNiw3
IEBACiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAog
bmFtZXNwYWNlIHY4IHsKICAgICBjbGFzcyBBcmd1bWVudHM7CkBAIC00Myw2ICs0NCw4IEBAIG5h
bWVzcGFjZSB2OCB7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSW5zcGVjdG9yQXJy
YXk7CisgICAgCiBjbGFzcyBTY3JpcHRDYWxsU3RhY2sgOiBwdWJsaWMgTm9uY29weWFibGUgewog
cHVibGljOgogICAgIHN0YXRpYyBTY3JpcHRDYWxsU3RhY2sqIGNyZWF0ZShjb25zdCB2ODo6QXJn
dW1lbnRzJiwgdW5zaWduZWQgc2tpcEFyZ3VtZW50Q291bnQgPSAwKTsKQEAgLTU3LDcgKzYwLDcg
QEAgcHVibGljOgogICAgIC8vICAgbGluZU51bWJlcjogPDEgYmFzZWQgbGluZSBudW1iZXI+CiAg
ICAgLy8gICBjb2x1bW46IDwxIGJhc2VkIGNvbHVtbiBvZmZzZXQgb24gdGhlIGxpbmU+CiAgICAg
Ly8gfQotICAgIHN0YXRpYyBib29sIHN0YWNrVHJhY2UoaW50IGZyYW1lTGltaXQsIFNjcmlwdFN0
YXRlKiBzdGF0ZSwgU2NyaXB0QXJyYXkmIHN0YWNrVHJhY2UpOworICAgIHN0YXRpYyBib29sIHN0
YWNrVHJhY2UoaW50IGZyYW1lTGltaXQsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIHN0
YWNrVHJhY2UpOwogCiAgICAgY29uc3QgU2NyaXB0Q2FsbEZyYW1lJiBhdCh1bnNpZ25lZCkgY29u
c3Q7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudCByZXRyaWV2aW5nIGFuZCBzdG9yaW5nIGNhbGwg
c3RhY2sgdHJhY2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJ
bnNwZWN0b3IucG0gYi9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBt
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlNGMzMDQKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCkBAIC0w
LDAgKzEsMjkwIEBACisjIENvcHlyaWdodCAoYykgMjAxMCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElD
RU5TRSBmaWxlLgorCitwYWNrYWdlIENvZGVHZW5lcmF0b3JJbnNwZWN0b3I7CisKK3VzZSBzdHJp
Y3Q7CisKK3VzZSBGaWxlOjpzdGF0OworCitteSAldHlwZVRyYW5zZm9ybTsKKyR0eXBlVHJhbnNm
b3JteyJJbnNwZWN0b3JDbGllbnQifSA9IHsKKyAgICAiZm9yd2FyZCIgPT4gIkluc3BlY3RvckNs
aWVudCIsCisgICAgImhlYWRlciIgPT4gIkluc3BlY3RvckNsaWVudC5oIiwKK307CiskdHlwZVRy
YW5zZm9ybXsiUmVmUHRyIn0gPSB7CisgICAgImZvcndhcmRIZWFkZXIiID0+ICJ3dGYvUmVmUHRy
LmgiLAorfTsKKyR0eXBlVHJhbnNmb3JteyJPYmplY3QifSA9IHsKKyAgICAicGFyYW0iID0+ICJj
b25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYiLAorICAgICJyZXR1cm4iID0+ICJQYXNzUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4iLAorICAgICJmb3J3YXJkIiA9PiAiSW5zcGVjdG9yT2JqZWN0
IiwKKyAgICAiaGVhZGVyIiA9PiAiSW5zcGVjdG9yVmFsdWVzLmgiLAorICAgICJwdXNoIiA9PiAi
cHVzaCIKK307CiskdHlwZVRyYW5zZm9ybXsiQXJyYXkifSA9IHsKKyAgICAicGFyYW0iID0+ICJj
b25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiIsCisgICAgInJldFZhbCIgPT4gIlBhc3NSZWZQ
dHI8SW5zcGVjdG9yQXJyYXk+IiwKKyAgICAiZm9yd2FyZCIgPT4gIkluc3BlY3RvckFycmF5IiwK
KyAgICAiaGVhZGVyIiA9PiAiSW5zcGVjdG9yVmFsdWVzLmgiLAorICAgICJwdXNoIiA9PiAicHVz
aCIKK307CiskdHlwZVRyYW5zZm9ybXsiVmFsdWUifSA9IHsKKyAgICAicGFyYW0iID0+ICJjb25z
dCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+JiIsCisgICAgInJldFZhbHVlIiA9PiAiUGFzc1JlZlB0
cjxJbnNwZWN0b3JWYWx1ZT4iLAorICAgICJmb3J3YXJkIiA9PiAiSW5zcGVjdG9yVmFsdWUiLAor
ICAgICJoZWFkZXIiID0+ICJJbnNwZWN0b3JWYWx1ZXMuaCIsCisgICAgInB1c2giID0+ICJwdXNo
IgorfTsKKyR0eXBlVHJhbnNmb3JteyJTdHJpbmcifSA9IHsKKyAgICAicGFyYW0iID0+ICJjb25z
dCBTdHJpbmcmIiwKKyAgICAicmV0VmFsIiA9PiAiU3RyaW5nIiwKKyAgICAiZm9yd2FyZCIgPT4g
IlN0cmluZyIsCisgICAgImhlYWRlciIgPT4gIlBsYXRmb3JtU3RyaW5nLmgiLAorICAgICJwdXNo
IiA9PiAicHVzaFN0cmluZyIKK307CiskdHlwZVRyYW5zZm9ybXsibG9uZyJ9ID0geworICAgICJw
YXJhbSIgPT4gImxvbmciLAorICAgICJyZXRWYWwiID0+ICJsb25nIiwKKyAgICAiZm9yd2FyZCIg
PT4gIiIsCisgICAgImhlYWRlciIgPT4gIiIsCisgICAgInB1c2giID0+ICJwdXNoTnVtYmVyIgor
fTsKKyR0eXBlVHJhbnNmb3JteyJ1bnNpZ25lZCBsb25nIn0gPSB7CisgICAgInBhcmFtIiA9PiAi
dW5zaWduZWQgbG9uZyIsCisgICAgInJldFZhbCIgPT4gInVuc2lnbmVkIGxvbmciLAorICAgICJm
b3J3YXJkIiA9PiAiIiwKKyAgICAiaGVhZGVyIiA9PiAiIiwKKyAgICAicHVzaCIgPT4gInB1c2hO
dW1iZXIiCit9OworJHR5cGVUcmFuc2Zvcm17ImJvb2xlYW4ifSA9IHsKKyAgICAicGFyYW0iID0+
ICJib29sIiwKKyAgICAicmV0VmFsIj0+ICJib29sIiwKKyAgICAiZm9yd2FyZCIgPT4gIiIsCisg
ICAgImhlYWRlciIgPT4gIiIsCisgICAgInB1c2giID0+ICJwdXNoQm9vbCIKK307CiskdHlwZVRy
YW5zZm9ybXsidm9pZCJ9ID0geworICAgICJyZXRWYWwiID0+ICJ2b2lkIiwKKyAgICAiZm9yd2Fy
ZCIgPT4gIiIsCisgICAgImhlYWRlciIgPT4gIiIKK307CisKKyMgRGVmYXVsdCBMaWNlbnNlIFRl
bXBsYXRlcworCitteSAkbGljZW5zZVRlbXBsYXRlID0gPDwgIkVPRiI7CisvLyBDb3B5cmlnaHQg
KGMpIDIwMTAgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNl
IHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorRU9GCisKK215ICRj
b2RlR2VuZXJhdG9yOworbXkgJG91dHB1dERpcjsKK215ICR3cml0ZURlcGVuZGVuY2llczsKK215
ICR2ZXJib3NlOworCitteSAkbmFtZXNwYWNlOworbXkgJGZpbGVOYW1lOworbXkgJWRpc2NvdmVy
ZWRUeXBlczsKKworbXkgQGNsYXNzRGVmaW5pdGlvbjsKK215IEBmdW5jdGlvbkRlZmluaXRpb25z
OworCitzdWIgdHlwZVNwZWMKK3sKKyAgICBteSAkcGFyYW0gPSBzaGlmdDsKKyAgICBteSAkcmV0
VmFsdWUgPSBzaGlmdDsKKworICAgIG15ICR0eXBlID0gJHR5cGVUcmFuc2Zvcm17JHBhcmFtLT50
eXBlfS0+eyRyZXRWYWx1ZSA/ICJyZXRWYWwiIDogInBhcmFtIn07CisgICAgJGRpc2NvdmVyZWRU
eXBlc3skcGFyYW0tPnR5cGV9ID0gMTsKKyAgICAkdHlwZSBvciBkaWUgImludmFsaWQgdHlwZSBz
cGVjaWZpY2F0aW9uIFwiIiAuICRwYXJhbS0+dHlwZSAuIlwiIjsKKyAgICByZXR1cm4gJHR5cGU7
Cit9CisKKyMgRGVmYXVsdCBjb25zdHJ1Y3Rvcgorc3ViIG5ldworeworICAgIG15ICRvYmplY3Qg
PSBzaGlmdDsKKyAgICBteSAkcmVmZXJlbmNlID0geyB9OworCisgICAgJGNvZGVHZW5lcmF0b3Ig
PSBzaGlmdDsKKyAgICAkb3V0cHV0RGlyID0gc2hpZnQ7CisgICAgc2hpZnQ7ICMgJHVzZUxheWVy
T25Ub3AKKyAgICBzaGlmdDsgIyAkcHJlcHJvY2Vzc29yCisgICAgJHdyaXRlRGVwZW5kZW5jaWVz
ID0gc2hpZnQ7CisgICAgJHZlcmJvc2UgPSBzaGlmdDsKKworICAgIGJsZXNzKCRyZWZlcmVuY2Us
ICRvYmplY3QpOworICAgIHJldHVybiAkcmVmZXJlbmNlOworfQorCisjIFBhcmFtczogJ2lkbERv
Y3VtZW50JyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZU1vZHVsZQoreworICAgIG15ICRvYmplY3QgPSBz
aGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgICRuYW1lc3BhY2UgPSAkZGF0
YU5vZGUtPm1vZHVsZTsKK30KKworIyBQYXJhbXM6ICdpZGxEb2N1bWVudCcgc3RydWN0CitzdWIg
R2VuZXJhdGVJbnRlcmZhY2UKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGlu
dGVyZmFjZSA9IHNoaWZ0OworICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7CisKKyAgICBteSAkY2xh
c3NOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKKyAgICAkZmlsZU5hbWUgPSAkY2xhc3NOYW1lOwor
CisgICAgJGRpc2NvdmVyZWRUeXBlc3siSW5zcGVjdG9yQ2xpZW50In0gPSAxOworICAgICRkaXNj
b3ZlcmVkVHlwZXN7IlJlZlB0ciJ9ID0gMTsKKworICAgIHB1c2goQGNsYXNzRGVmaW5pdGlvbiwg
ImNsYXNzICRjbGFzc05hbWUgeyIpOworICAgIHB1c2goQGNsYXNzRGVmaW5pdGlvbiwgInB1Ymxp
YzoiKTsKKyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICIgICAgJGNsYXNzTmFtZShJbnNwZWN0
b3JDbGllbnQqIGluc3BlY3RvckNsaWVudCkgOiBtX2luc3BlY3RvckNsaWVudChpbnNwZWN0b3JD
bGllbnQpIHsgfSIpOworICAgIHB1c2goQGNsYXNzRGVmaW5pdGlvbiwgIiIpOworICAgIHB1c2go
QGNsYXNzRGVmaW5pdGlvbiwgZ2VuZXJhdGVGdW5jdGlvbnNEZWNsYXJhdGlvbnMoJGludGVyZmFj
ZSwgJGNsYXNzTmFtZSkpOworICAgIHB1c2goQGNsYXNzRGVmaW5pdGlvbiwgIiIpOworICAgIHB1
c2goQGNsYXNzRGVmaW5pdGlvbiwgInByaXZhdGU6Iik7CisgICAgcHVzaChAY2xhc3NEZWZpbml0
aW9uLCAiICAgIHZvaWQgc2VuZFNpbXBsZU1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYp
OyIpOworICAgIHB1c2goQGNsYXNzRGVmaW5pdGlvbiwgIiAgICBJbnNwZWN0b3JDbGllbnQqIG1f
aW5zcGVjdG9yQ2xpZW50OyIpOworICAgIHB1c2goQGNsYXNzRGVmaW5pdGlvbiwgIn07Iik7CisK
KyAgICBwdXNoKEBmdW5jdGlvbkRlZmluaXRpb25zLCAidm9pZCAke2NsYXNzTmFtZX06OnNlbmRT
aW1wbGVNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIGZ1bmN0aW9uTmFtZSkiKTsKKyAg
ICBwdXNoKEBmdW5jdGlvbkRlZmluaXRpb25zLCAieyIpOworICAgIHB1c2goQGZ1bmN0aW9uRGVm
aW5pdGlvbnMsICIgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiBhcmd1bWVudHMgPSBJbnNwZWN0
b3JBcnJheTo6Y3JlYXRlKCk7Iik7CisgICAgcHVzaChAZnVuY3Rpb25EZWZpbml0aW9ucywgIiAg
ICBhcmd1bWVudHMtPnB1c2hTdHJpbmcoZnVuY3Rpb25OYW1lKTsiKTsKKyAgICBwdXNoKEBmdW5j
dGlvbkRlZmluaXRpb25zLCAiICAgIG1faW5zcGVjdG9yQ2xpZW50LT5zZW5kTWVzc2FnZVRvRnJv
bnRlbmQoYXJndW1lbnRzLT50b0pTT05TdHJpbmcoKSk7Iik7CisgICAgcHVzaChAZnVuY3Rpb25E
ZWZpbml0aW9ucywgIn0iKTsKK30KKworc3ViIGdlbmVyYXRlRnVuY3Rpb25zRGVjbGFyYXRpb25z
Cit7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAgIG15ICRjbGFzc05hbWUgPSBzaGlm
dDsKKworICAgIG15IEBmdW5jdGlvbkRlY2xhcmF0aW9uczsKKyAgICBmb3JlYWNoIG15ICRmdW5j
dGlvbiAoQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7CisgICAgICAgIG15ICRmdW5jdGlvbk5h
bWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAgbXkgJGFic3RyYWN0ID0g
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJhYnN0cmFjdCJ9Owor
ICAgICAgICBteSAkYXJndW1lbnRzID0gIiI7CisgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtZXRl
ciAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAgICAkcGFyYW1ldGVyLT5u
YW1lIG9yIGRpZSAiZW1wdHkgYXJndW1lbnQgbmFtZSBzcGVjaWZpZWQgZm9yIGZ1bmN0aW9uICR7
Y2xhc3NOYW1lfTo6JGZ1bmN0aW9uTmFtZSBhbmQgYXJndW1lbnQgdHlwZSAiIC4gJHBhcmFtZXRl
ci0+dHlwZTsKKyAgICAgICAgICAgICRhcmd1bWVudHMgPSAkYXJndW1lbnRzIC4gIiwgIiBpZiAo
JGFyZ3VtZW50cyk7CisgICAgICAgICAgICAkYXJndW1lbnRzID0gJGFyZ3VtZW50cyAuIHR5cGVT
cGVjKCRwYXJhbWV0ZXIpIC4gIiAiIC4gJHBhcmFtZXRlci0+bmFtZTsKKyAgICAgICAgfQorICAg
ICAgICBteSAkc2lnbmF0dXJlID0gIiAgICAiIC4gdHlwZVNwZWMoJGZ1bmN0aW9uLT5zaWduYXR1
cmUsIDEpIC4gIiAkZnVuY3Rpb25OYW1lKCRhcmd1bWVudHMpIjsKKyAgICAgICAgcHVzaChAZnVu
Y3Rpb25EZWNsYXJhdGlvbnMsICRhYnN0cmFjdCA/ICIkc2lnbmF0dXJlID0gMDsiIDogIiRzaWdu
YXR1cmU7Iik7CisgICAgICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5pdGlvbnMsIGdlbmVyYXRlRnVu
Y3Rpb25zSW1wbCgkY2xhc3NOYW1lLCAkZnVuY3Rpb24sICRhcmd1bWVudHMpKSBpZiAhJGFic3Ry
YWN0OworICAgIH0KKyAgICByZXR1cm4gQGZ1bmN0aW9uRGVjbGFyYXRpb25zOworfQorCitzdWIg
Z2VuZXJhdGVIZWFkZXIKK3sKKyAgICBteSBAaGVhZGVyQ29udGVudCA9IHNwbGl0KCJcciIsICRs
aWNlbnNlVGVtcGxhdGUpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjaWZuZGVmICR7Zmls
ZU5hbWV9X2giKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2RlZmluZSAke2ZpbGVOYW1l
fV9oIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiIpOworCisgICAgbXkgQGZvcndhcmRI
ZWFkZXJzOworICAgIGZvcmVhY2ggbXkgJHR5cGUgKGtleXMgJWRpc2NvdmVyZWRUeXBlcykgewor
ICAgICAgICBwdXNoKEBmb3J3YXJkSGVhZGVycywgIiNpbmNsdWRlIDwiIC4gJHR5cGVUcmFuc2Zv
cm17JHR5cGV9LT57ImZvcndhcmRIZWFkZXIifSAuICI+IikgaWYgISR0eXBlVHJhbnNmb3JteyR0
eXBlfS0+eyJmb3J3YXJkSGVhZGVyIn0gZXEgICIiOworICAgIH0KKyAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCBzb3J0IEBmb3J3YXJkSGVhZGVycyk7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJuYW1lc3BhY2UgJG5hbWVzcGFjZSB7Iik7
CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiIpOworCisgICAgbXkgQGZvcndhcmREZWNsYXJh
dGlvbnM7CisgICAgZm9yZWFjaCBteSAkdHlwZSAoa2V5cyAlZGlzY292ZXJlZFR5cGVzKSB7Cisg
ICAgICAgIHB1c2goQGZvcndhcmREZWNsYXJhdGlvbnMsICJjbGFzcyAiIC4gJHR5cGVUcmFuc2Zv
cm17JHR5cGV9LT57ImZvcndhcmQifSAuICI7IikgaWYgISR0eXBlVHJhbnNmb3JteyR0eXBlfS0+
eyJmb3J3YXJkIn0gZXEgICIiOworICAgIH0KKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBzb3J0
IEBmb3J3YXJkRGVjbGFyYXRpb25zKTsKKworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIiKTsK
KyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBAY2xhc3NEZWZpbml0aW9uKTsKKyAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn0gLy8gbmFtZXNw
YWNlICRuYW1lc3BhY2UiKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiIik7CisgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiNlbmRpZiAvLyAhZGVmaW5lZCgke2ZpbGVOYW1lfV9oKSIpOwor
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIiKTsKKyAgICByZXR1cm4gQGhlYWRlckNvbnRlbnQ7
Cit9CisKK3N1YiBnZW5lcmF0ZVNvdXJjZQoreworICAgIG15IEBzb3VyY2VDb250ZW50ID0gc3Bs
aXQoIlxyIiwgJGxpY2Vuc2VUZW1wbGF0ZSk7CisgICAgcHVzaChAc291cmNlQ29udGVudCwgIlxu
I2luY2x1ZGUgXCJjb25maWcuaFwiIik7CisgICAgcHVzaChAc291cmNlQ29udGVudCwgIiNpbmNs
dWRlIFwiV2ViJGZpbGVOYW1lLmhcIiIpOworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICIiKTsK
KyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiI2lmIEVOQUJMRShJTlNQRUNUT1IpIik7CisgICAg
cHVzaChAc291cmNlQ29udGVudCwgIiIpOworCisgICAgbXkgJWhlYWRlcnM7CisgICAgZm9yZWFj
aCBteSAkdHlwZSAoa2V5cyAlZGlzY292ZXJlZFR5cGVzKSB7CisgICAgICAgICRoZWFkZXJzeyIj
aW5jbHVkZSBcIiIgLiAkdHlwZVRyYW5zZm9ybXskdHlwZX0tPnsiaGVhZGVyIn0gLiAiXCIifSA9
IDEgaWYgISR0eXBlVHJhbnNmb3JteyR0eXBlfS0+eyJoZWFkZXIifSBlcSAgIiI7CisgICAgfQor
ICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsIHNvcnQga2V5cyAlaGVhZGVycyk7CisgICAgcHVzaChA
c291cmNlQ29udGVudCwgIiIpOworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICJuYW1lc3BhY2Ug
JG5hbWVzcGFjZSB7Iik7CisgICAgcHVzaChAc291cmNlQ29udGVudCwgIiIpOworICAgIHB1c2go
QHNvdXJjZUNvbnRlbnQsIEBmdW5jdGlvbkRlZmluaXRpb25zKTsKKyAgICBwdXNoKEBzb3VyY2VD
b250ZW50LCAiIik7CisgICAgcHVzaChAc291cmNlQ29udGVudCwgIn0gLy8gbmFtZXNwYWNlICRu
YW1lc3BhY2UiKTsKKyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiIik7CisgICAgcHVzaChAc291
cmNlQ29udGVudCwgIiNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKSIpOworICAgIHB1c2goQHNv
dXJjZUNvbnRlbnQsICIiKTsKKyAgICByZXR1cm4gQHNvdXJjZUNvbnRlbnQ7Cit9CisKK3N1YiBn
ZW5lcmF0ZUZ1bmN0aW9uc0ltcGwKK3sKKyAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CisgICAg
bXkgJGZ1bmN0aW9uID0gc2hpZnQ7CisgICAgbXkgJGFyZ3VtZW50cyA9IHNoaWZ0OworCisgICAg
bXkgQGZ1bmM7CisKKyAgICBteSAkZnVuY3Rpb25OYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUt
Pm5hbWU7CisKKyAgICBwdXNoKEBmdW5jLCB0eXBlU3BlYygkZnVuY3Rpb24tPnNpZ25hdHVyZSwg
MSkgLiAiICIgLiAkY2xhc3NOYW1lIC4gIjo6IiAuICRmdW5jdGlvbk5hbWUgLiAiKCIgLiAkYXJn
dW1lbnRzIC4gIikiKTsKKyAgICBwdXNoKEBmdW5jLCAieyIpOworCisgICAgbXkgJG51bVBhcmFt
ZXRlcnMgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc307CisgICAgaWYgKCRudW1QYXJhbWV0ZXJz
ID4gMCkgeworICAgICAgICBwdXNoKEBmdW5jLCAiICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4g
YXJndW1lbnRzID0gSW5zcGVjdG9yQXJyYXk6OmNyZWF0ZSgpOyIpOworICAgICAgICBwdXNoKEBm
dW5jLCAiICAgIGFyZ3VtZW50cy0+cHVzaFN0cmluZyhcIiRmdW5jdGlvbk5hbWVcIik7Iik7Cisg
ICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtZXRlciAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7
CisgICAgICAgICAgICBteSAkcHVzaENhbGwgPSAgJHR5cGVUcmFuc2Zvcm17JHBhcmFtZXRlci0+
dHlwZX0tPnsicHVzaCJ9OworICAgICAgICAgICAgcHVzaChAZnVuYywgIiAgICBhcmd1bWVudHMt
PiRwdXNoQ2FsbCgiIC4gJHBhcmFtZXRlci0+bmFtZSAuICIpOyIpOworICAgICAgICB9CisgICAg
ICAgIHB1c2goQGZ1bmMsICIgICAgbV9pbnNwZWN0b3JDbGllbnQtPnNlbmRNZXNzYWdlVG9Gcm9u
dGVuZChhcmd1bWVudHMtPnRvSlNPTlN0cmluZygpKTsiKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBwdXNoKEBmdW5jLCAiICAgIHNlbmRTaW1wbGVNZXNzYWdlVG9Gcm9udGVuZChcIiRmdW5jdGlv
bk5hbWVcIik7Iik7CisgICAgfQorCisgICAgcHVzaChAZnVuYywgIn0iKTsKKyAgICBwdXNoKEBm
dW5jLCAiIik7CisgICAgcmV0dXJuIEBmdW5jOworfQorCitzdWIgZmluaXNoCit7CisgICAgbXkg
JG9iamVjdCA9IHNoaWZ0OworCisgICAgb3BlbihteSAkU09VUkNFLCAiPiRvdXRwdXREaXIvV2Vi
JGZpbGVOYW1lLmNwcCIpIHx8IGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRvdXRwdXREaXIvV2Vi
JGZpbGVOYW1lLmNwcCI7CisgICAgb3BlbihteSAkSEVBREVSLCAiPiRvdXRwdXREaXIvV2ViJGZp
bGVOYW1lLmgiKSB8fCBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkb3V0cHV0RGlyL1dlYiRmaWxl
TmFtZS5oIjsKKworICAgIHByaW50ICRTT1VSQ0Ugam9pbigiXG4iLCBnZW5lcmF0ZVNvdXJjZSgp
KTsKKyAgICBjbG9zZSgkU09VUkNFKTsKKyAgICB1bmRlZigkU09VUkNFKTsKKworICAgIHByaW50
ICRIRUFERVIgam9pbigiXG4iLCBnZW5lcmF0ZUhlYWRlcigpKTsKKyAgICBjbG9zZSgkSEVBREVS
KTsKKyAgICB1bmRlZigkSEVBREVSKTsKK30KKworMTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5jcHAKaW5kZXggMzI1ZTEyYy4uNWMyZmU5ZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTgzLDYgKzgzLDcgQEAKICNpbmNsdWRl
ICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKICNpbmNsdWRlICJU
ZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3JGcm9udGVuZDIuaCIKICNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAj
aW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CkBAIC00MzUsMTAgKzQzNiwxMSBAQCB2b2lkIElu
c3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZChjb25zdCBTY3JpcHRPYmplY3QmIHdl
Ykluc3BlY3RvcikKIHsKICAgICBtX29wZW5pbmdGcm9udGVuZCA9IGZhbHNlOwogICAgIG1fZnJv
bnRlbmQgPSBuZXcgSW5zcGVjdG9yRnJvbnRlbmQod2ViSW5zcGVjdG9yLCBtX2NsaWVudCk7Cisg
ICAgbV9mcm9udGVuZDIgPSBuZXcgSW5zcGVjdG9yRnJvbnRlbmQyKG1fY2xpZW50KTsKICAgICBy
ZWxlYXNlRE9NQWdlbnQoKTsKICAgICBtX2RvbUFnZW50ID0gSW5zcGVjdG9yRE9NQWdlbnQ6OmNy
ZWF0ZShtX2Nzc1N0b3JlLmdldCgpLCBtX2Zyb250ZW5kLmdldCgpKTsKICAgICBpZiAobV90aW1l
bGluZUFnZW50KQotICAgICAgICBtX3RpbWVsaW5lQWdlbnQtPnJlc2V0RnJvbnRlbmRQcm94eU9i
amVjdChtX2Zyb250ZW5kLmdldCgpKTsKKyAgICAgICAgbV90aW1lbGluZUFnZW50LT5yZXNldEZy
b250ZW5kUHJveHlPYmplY3QobV9mcm9udGVuZDIuZ2V0KCkpOwogCiAgICAgLy8gSW5pdGlhbGl6
ZSBXZWIgSW5zcGVjdG9yIHRpdGxlLgogICAgIG1fZnJvbnRlbmQtPmluc3BlY3RlZFVSTENoYW5n
ZWQobV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPnVybCgpLnN0cmluZygp
KTsKQEAgLTEwOTAsNyArMTA5Miw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c3RhcnRU
aW1lbGluZVByb2ZpbGVyKCkKICAgICBpZiAobV90aW1lbGluZUFnZW50KQogICAgICAgICByZXR1
cm47CiAKLSAgICBtX3RpbWVsaW5lQWdlbnQgPSBuZXcgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCht
X2Zyb250ZW5kLmdldCgpKTsKKyAgICBtX3RpbWVsaW5lQWdlbnQgPSBuZXcgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudChtX2Zyb250ZW5kMi5nZXQoKSk7CiAgICAgaWYgKG1fZnJvbnRlbmQpCiAgICAg
ICAgIG1fZnJvbnRlbmQtPnRpbWVsaW5lUHJvZmlsZXJXYXNTdGFydGVkKCk7CiB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggYWYzNjM4My4uOGFmODcxNyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtNjgsNiArNjgsNyBAQCBj
bGFzcyBJbnNwZWN0b3JCYWNrZW5kOwogY2xhc3MgSW5zcGVjdG9yQ2xpZW50OwogY2xhc3MgSW5z
cGVjdG9yQ1NTU3RvcmU7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKK2NsYXNzIEluc3BlY3Rv
ckZyb250ZW5kMjsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50OwogY2xhc3MgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDsKIGNsYXNzIEtVUkw7CkBAIC0zMzAsNiArMzMxLDcgQEAgcHJpdmF0
ZToKICAgICBPd25QdHI8SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ+IG1faW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQ7CiAgICAgYm9vbCBtX29wZW5pbmdGcm9udGVuZDsKICAgICBPd25QdHI8SW5zcGVj
dG9yRnJvbnRlbmQ+IG1fZnJvbnRlbmQ7CisgICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kMj4g
bV9mcm9udGVuZDI7CiAgICAgUmVmUHRyPEluc3BlY3RvckRPTUFnZW50PiBtX2RvbUFnZW50Owog
ICAgIE93blB0cjxJbnNwZWN0b3JDU1NTdG9yZT4gbV9jc3NTdG9yZTsKICAgICBPd25QdHI8SW5z
cGVjdG9yVGltZWxpbmVBZ2VudD4gbV90aW1lbGluZUFnZW50OwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmQuY3BwCmluZGV4IGZhZDMzMDMuLjJkNWJhODAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcAorKysgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAKQEAgLTI5MSwxNCArMjkxLDYgQEAgdm9pZCBJbnNw
ZWN0b3JGcm9udGVuZDo6dGltZWxpbmVQcm9maWxlcldhc1N0b3BwZWQoKQogICAgIGNhbGxTaW1w
bGVGdW5jdGlvbigidGltZWxpbmVQcm9maWxlcldhc1N0b3BwZWQiKTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JGcm9udGVuZDo6YWRkUmVjb3JkVG9UaW1lbGluZShjb25zdCBTY3JpcHRPYmplY3QmIHJl
Y29yZCkKLXsKLSAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV93ZWJJbnNwZWN0b3Is
ICJkaXNwYXRjaCIpOyAKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudCgiYWRkUmVjb3JkVG9U
aW1lbGluZSIpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHJlY29yZCk7Ci0gICAgZnVu
Y3Rpb24uY2FsbCgpOwotfQotCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiB2b2lk
IEluc3BlY3RvckZyb250ZW5kOjphdHRhY2hEZWJ1Z2dlcldoZW5TaG93bigpCiB7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5oIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaAppbmRleCAwZTk2Njg4Li4zNWU2OTM2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5oCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmgKQEAgLTE1OSw3ICsxNTksNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCB0aW1lbGluZVByb2ZpbGVyV2FzU3RhcnRlZCgp
OwogICAgICAgICB2b2lkIHRpbWVsaW5lUHJvZmlsZXJXYXNTdG9wcGVkKCk7Ci0gICAgICAgIHZv
aWQgYWRkUmVjb3JkVG9UaW1lbGluZShjb25zdCBTY3JpcHRPYmplY3QmKTsKIAogI2lmIEVOQUJM
RShXT1JLRVJTKQogICAgICAgICB2b2lkIGRpZENyZWF0ZVdvcmtlcihjb25zdCBJbnNwZWN0b3JX
b3JrZXJSZXNvdXJjZSYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmQyLmluc3BlY3RvcklETCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kMi5pbnNwZWN0b3JJREwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Iy
ODdhOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kMi5pbnNwZWN0b3JJREwKQEAgLTAsMCArMSwxMDggQEAKKy8vIENvcHlyaWdodCAoYykgMjAw
OSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBj
YW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK21vZHVsZSBXZWJDb3JlIHsK
KworICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SLCBKU10gSW5zcGVjdG9yRnJv
bnRlbmQyIHsKKyAgICAgICAgdm9pZCBkaWRDb21taXRMb2FkKCk7CisKKyAgICAgICAgdm9pZCBw
b3B1bGF0ZUZyb250ZW5kU2V0dGluZ3MoaW4gU3RyaW5nIHNldHRpbmdzKTsKKworICAgICAgICB2
b2lkIHVwZGF0ZUNvbnNvbGVNZXNzYWdlRXhwaXJlZENvdW50KGluIHVuc2lnbmVkIGxvbmcgY291
bnQpOworICAgICAgICB2b2lkIHVwZGF0ZUNvbnNvbGVNZXNzYWdlUmVwZWF0Q291bnQoaW4gdW5z
aWduZWQgbG9uZyBjb3VudCk7CisgICAgICAgIHZvaWQgY2xlYXJDb25zb2xlTWVzc2FnZXMoKTsK
KworICAgICAgICB2b2lkIHVwZGF0ZVJlc291cmNlKGluIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgaW4gT2JqZWN0IHJlc291cmNlT2JqKTsKKyAgICAgICAgdm9pZCByZW1vdmVSZXNvdXJjZShp
biB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOworICAgICAgICB2b2lkIGRpZEdldFJlc291cmNl
Q29udGVudChpbiBsb25nIGNhbGxJZCwgaW4gU3RyaW5nIGNvbnRlbnQpOworCisgICAgICAgIHZv
aWQgdXBkYXRlRm9jdXNlZE5vZGUoaW4gbG9uZyBub2RlSWQpOworICAgICAgICB2b2lkIHNldEF0
dGFjaGVkV2luZG93KGluIGJvb2xlYW4gYXR0YWNoZWQpOworICAgICAgICB2b2lkIHNob3dQYW5l
bChpbiBsb25nIHBhbmVsKTsKKyAgICAgICAgdm9pZCBwb3B1bGF0ZUludGVyZmFjZSgpOworICAg
ICAgICB2b2lkIHJlc2V0KCk7CisKKyAgICAgICAgdm9pZCBicmluZ1RvRnJvbnQoKTsKKyAgICAg
ICAgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGluIFN0cmluZyB1cmwpOworCisgICAgICAgIHZv
aWQgcmVzb3VyY2VUcmFja2luZ1dhc0VuYWJsZWQoKTsKKyAgICAgICAgdm9pZCByZXNvdXJjZVRy
YWNraW5nV2FzRGlzYWJsZWQoKTsKKworICAgICAgICB2b2lkIHNlYXJjaGluZ0Zvck5vZGVXYXNF
bmFibGVkKCk7CisgICAgICAgIHZvaWQgc2VhcmNoaW5nRm9yTm9kZVdhc0Rpc2FibGVkKCk7CisK
KyAgICAgICAgdm9pZCB1cGRhdGVQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKGluIGxvbmcgc3RhdGUp
OworCisjaWYgZGVmaW5lZChKQVZBU0NSSVBUX0RFQlVHR0VSKQorICAgICAgICB2b2lkIGF0dGFj
aERlYnVnZ2VyV2hlblNob3duKCk7CisgICAgICAgIHZvaWQgZGVidWdnZXJXYXNFbmFibGVkKCk7
CisgICAgICAgIHZvaWQgZGVidWdnZXJXYXNEaXNhYmxlZCgpOworCisgICAgICAgIHZvaWQgcGFy
c2VkU2NyaXB0U291cmNlKGluIFN0cmluZyBzb3VyY2VJRCwgaW4gU3RyaW5nIHVybCwgaW4gU3Ry
aW5nIGRhdGEsIGluIGxvbmcgZmlyc3RMaW5lLCBpbiBsb25nIHNjcmlwdFdvcmxkVHlwZSk7Cisg
ICAgICAgIHZvaWQgcmVzdG9yZWRCcmVha3BvaW50KGluIFN0cmluZyBzb3VyY2VJRCwgaW4gU3Ry
aW5nIHVybCwgaW4gbG9uZyBsaW5lLCBpbiBib29sZWFuIGVuYWJsZWQsIGluIFN0cmluZyBjb25k
aXRpb24pOworICAgICAgICB2b2lkIGZhaWxlZFRvUGFyc2VTY3JpcHRTb3VyY2UoaW4gU3RyaW5n
IHVybCwgaW4gU3RyaW5nIGRhdGEsIGluIGxvbmcgZmlyc3RMaW5lLCBpbiBsb25nIGVycm9yTGlu
ZSwgaW4gU3RyaW5nIGVycm9yTWVzc2FnZSk7CisgICAgICAgIHZvaWQgcmVzdW1lZFNjcmlwdCgp
OworCisgICAgICAgIHZvaWQgcHJvZmlsZXJXYXNFbmFibGVkKCk7CisgICAgICAgIHZvaWQgcHJv
ZmlsZXJXYXNEaXNhYmxlZCgpOworICAgICAgICB2b2lkIGFkZFByb2ZpbGVIZWFkZXIoaW4gVmFs
dWUgcHJvZmlsZSk7CisgICAgICAgIHZvaWQgc2V0UmVjb3JkaW5nUHJvZmlsZShpbiBib29sZWFu
IGlzUHJvZmlsaW5nKTsKKyAgICAgICAgdm9pZCBkaWRHZXRQcm9maWxlSGVhZGVycyhpbiBsb25n
IGNhbGxJZCwgaW4gQXJyYXkgaGVhZGVycyk7CisgICAgICAgIHZvaWQgZGlkR2V0UHJvZmlsZShp
biBsb25nIGNhbGxJZCwgaW4gVmFsdWUgcHJvZmlsZSk7CisjZW5kaWYKKworI2lmICBkZWZpbmVk
KEVOQUJMRV9EQVRBQkFTRSkKKyAgICAgICAgdm9pZCBhZGREYXRhYmFzZShpbiBPYmplY3QgZGJP
YmopOworICAgICAgICB2b2lkIHNlbGVjdERhdGFiYXNlKGluIGxvbmcgZGF0YWJhc2VJZCk7Cisg
ICAgICAgIHZvaWQgZGlkR2V0RGF0YWJhc2VUYWJsZU5hbWVzKGluIGxvbmcgY2FsbElkLCBpbiBB
cnJheSB0YWJsZU5hbWVzKTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChFTkFCTEVfRE9NX1NUT1JB
R0UpCisgICAgICAgIHZvaWQgYWRkRE9NU3RvcmFnZShpbiBPYmplY3QgZG9tU3RvcmFnZU9iaik7
CisgICAgICAgIHZvaWQgc2VsZWN0RE9NU3RvcmFnZShpbiBsb25nIHN0b3JhZ2VJZCk7CisgICAg
ICAgIHZvaWQgZGlkR2V0RE9NU3RvcmFnZUVudHJpZXMoaW4gbG9uZyBjYWxsSWQsIGluIEFycmF5
IGVudHJpZXMpOworICAgICAgICB2b2lkIGRpZFNldERPTVN0b3JhZ2VJdGVtKGluIGxvbmcgY2Fs
bElkLCBpbiBib29sZWFuIHN1Y2Nlc3MpOworICAgICAgICB2b2lkIGRpZFJlbW92ZURPTVN0b3Jh
Z2VJdGVtKGluIGxvbmcgY2FsbElkLCBpbiBib29sZWFuIHN1Y2Nlc3MpOworICAgICAgICB2b2lk
IHVwZGF0ZURPTVN0b3JhZ2UoaW4gbG9uZyBzdG9yYWdlSWQpOworI2VuZGlmCisKKyAgICAgICAg
dm9pZCBzZXREb2N1bWVudChpbiBPYmplY3Qgcm9vdCk7CisgICAgICAgIHZvaWQgc2V0RGV0YWNo
ZWRSb290KGluIE9iamVjdCByb290KTsKKyAgICAgICAgdm9pZCBzZXRDaGlsZE5vZGVzKGluIGxv
bmcgcGFyZW50SWQsIGluIEFycmF5IG5vZGVzKTsKKyAgICAgICAgdm9pZCBjaGlsZE5vZGVDb3Vu
dFVwZGF0ZWQoaW4gbG9uZyBpZCwgaW4gbG9uZyBuZXdWYWx1ZSk7CisgICAgICAgIHZvaWQgY2hp
bGROb2RlSW5zZXJ0ZWQoaW4gbG9uZyBwYXJlbnRJZCwgaW4gbG9uZyBwcmV2SWQsIGluIE9iamVj
dCBub2RlKTsKKyAgICAgICAgdm9pZCBjaGlsZE5vZGVSZW1vdmVkKGluIGxvbmcgcGFyZW50SWQs
IGluIGxvbmcgaWQpOworICAgICAgICB2b2lkIGF0dHJpYnV0ZXNVcGRhdGVkKGluIGxvbmcgaWQs
IGluIEFycmF5IGF0dHJpYnV0ZXMpOworICAgICAgICB2b2lkIGRpZEdldENoaWxkTm9kZXMoaW4g
bG9uZyBjYWxsSWQpOworICAgICAgICB2b2lkIGRpZEFwcGx5RG9tQ2hhbmdlKGluIGxvbmcgY2Fs
bElkLCBpbiBib29sZWFuIHN1Y2Nlc3MpOworICAgICAgICB2b2lkIGRpZEdldEV2ZW50TGlzdGVu
ZXJzRm9yTm9kZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBub2RlSWQsIGluIEFycmF5IGxpc3Rl
bmVyc0FycmF5KTsKKyAgICAgICAgdm9pZCBkaWRSZW1vdmVOb2RlKGluIGxvbmcgY2FsbElkLCBp
biBsb25nIG5vZGVJZCk7CisgICAgICAgIHZvaWQgZGlkQ2hhbmdlVGFnTmFtZShpbiBsb25nIGNh
bGxJZCwgaW4gbG9uZyBub2RlSWQpOworCisgICAgICAgIHZvaWQgZGlkR2V0U3R5bGVzKGluIGxv
bmcgY2FsbElkLCBpbiBWYWx1ZSBzdHlsZXMpOworICAgICAgICB2b2lkIGRpZEdldEFsbFN0eWxl
cyhpbiBsb25nIGNhbGxJZCwgaW4gQXJyYXkgc3R5bGVzKTsKKyAgICAgICAgdm9pZCBkaWRHZXRJ
bmxpbmVTdHlsZShpbiBsb25nIGNhbGxJZCwgaW4gVmFsdWUgc3R5bGUpOworICAgICAgICB2b2lk
IGRpZEdldFN0eWxlU2hlZXQoaW4gbG9uZyBjYWxsSWQsIGluIFZhbHVlIHN0eWxlU2hlZXQpOwor
ICAgICAgICB2b2lkIGRpZEdldENvbXB1dGVkU3R5bGUoaW4gbG9uZyBjYWxsSWQsIGluIFZhbHVl
IHN0eWxlKTsKKyAgICAgICAgdm9pZCBkaWRBcHBseVN0eWxlVGV4dChpbiBsb25nIGNhbGxJZCwg
aW4gYm9vbGVhbiBzdWNjZXNzLCBpbiBWYWx1ZSBzdHlsZSwgaW4gQXJyYXkgY2hhbmdlZFByb3Bl
cnRpZXMpOworICAgICAgICB2b2lkIGRpZFNldFN0eWxlVGV4dChpbiBsb25nIGNhbGxJZCwgaW4g
Ym9vbGVhbiBzdWNjZXNzKTsKKyAgICAgICAgdm9pZCBkaWRTZXRTdHlsZVByb3BlcnR5KGluIGxv
bmcgY2FsbElkLCBpbiBib29sZWFuIHN1Y2Nlc3MpOworICAgICAgICB2b2lkIGRpZFRvZ2dsZVN0
eWxlRW5hYmxlZChpbiBsb25nIGNhbGxJZCwgaW4gVmFsdWUgc3R5bGUpOworICAgICAgICB2b2lk
IGRpZFNldFJ1bGVTZWxlY3RvcihpbiBsb25nIGNhbGxJZCwgaW4gVmFsdWUgcnVsZSwgaW4gYm9v
bGVhbiBzZWxlY3RvckFmZmVjdHNOb2RlKTsKKyAgICAgICAgdm9pZCBkaWRBZGRSdWxlKGluIGxv
bmcgY2FsbElkLCBpbiBWYWx1ZSBydWxlLCBpbiBib29sZWFuIHNlbGVjdG9yQWZmZWN0c05vZGUp
OworCisgICAgICAgIHZvaWQgdGltZWxpbmVQcm9maWxlcldhc1N0YXJ0ZWQoKTsKKyAgICAgICAg
dm9pZCB0aW1lbGluZVByb2ZpbGVyV2FzU3RvcHBlZCgpOworICAgICAgICB2b2lkIGFkZFJlY29y
ZFRvVGltZWxpbmUoaW4gT2JqZWN0IHJlY29yZCk7CisKKyAgICAgICAgdm9pZCBkaWRHZXRDb29r
aWVzKGluIGxvbmcgY2FsbElkLCBpbiBBcnJheSBjb29raWVzLCBpbiBTdHJpbmcgY29va2llc1N0
cmluZyk7CisKKyAgICAgICAgdm9pZCBhZGROb2Rlc1RvU2VhcmNoUmVzdWx0KGluIFN0cmluZyBu
b2RlSWRzKTsKKworICAgICAgICB2b2lkIGNvbnRleHRNZW51SXRlbVNlbGVjdGVkKGluIGxvbmcg
aXRlbUlkKTsKKyAgICAgICAgdm9pZCBjb250ZXh0TWVudUNsZWFyZWQoKTsKKworICAgICAgICB2
b2lkIGV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoaW4gbG9uZyBjYWxsSWQsIGluIFN0cmluZyBz
Y3JpcHQpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuY3BwCmluZGV4IGFiNTMzMTkuLjY3ZWZiYzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC0zNCwxMSArMzQsMTEgQEAKICNpZiBFTkFC
TEUoSU5TUEVDVE9SKQogCiAjaW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JG
cm9udGVuZC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVl
c3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiVGltZWxpbmVS
ZWNvcmRGYWN0b3J5LmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yRnJvbnRlbmQyLmgiCiAKICNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGludCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzX2luc3RhbmNlQ291bnQg
PSAwOwogCi1JbnNwZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KElu
c3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKK0luc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQoSW5zcGVjdG9yRnJvbnRlbmQyKiBmcm9udGVuZCkKICAgICA6IG1f
ZnJvbnRlbmQoZnJvbnRlbmQpCiB7CiAgICAgKytzX2luc3RhbmNlQ291bnQ7CkBAIC02Miw5ICs2
Miw5IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaEdDRXZlbnRSZWNvcmRzKCkK
ICAgICBHQ0V2ZW50cyBldmVudHMgPSBtX2djRXZlbnRzOwogICAgIG1fZ2NFdmVudHMuY2xlYXIo
KTsKICAgICBmb3IgKEdDRXZlbnRzOjppdGVyYXRvciBpID0gZXZlbnRzLmJlZ2luKCk7IGkgIT0g
ZXZlbnRzLmVuZCgpOyArK2kpIHsKLSAgICAgICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBpLT5zdGFy
dFRpbWUpOwotICAgICAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVHQ0V2ZW50RGF0YShtX2Zyb250ZW5kLCBpLT5jb2xsZWN0ZWRCeXRlcykpOwotICAg
ICAgICByZWNvcmQuc2V0KCJlbmRUaW1lIiwgaS0+ZW5kVGltZSk7CisgICAgICAgIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2Vu
ZXJpY1JlY29yZChpLT5zdGFydFRpbWUpOworICAgICAgICByZWNvcmQtPnNldCgiZGF0YSIsIFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR0NFdmVudERhdGEoaS0+Y29sbGVjdGVkQnl0ZXMp
KTsKKyAgICAgICAgcmVjb3JkLT5zZXROdW1iZXIoImVuZFRpbWUiLCBpLT5lbmRUaW1lKTsKICAg
ICAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIEdDRXZlbnRUaW1lbGluZVJlY29yZFR5
cGUpOwogICAgIH0KIH0KQEAgLTgzLDcgKzgzLDcgQEAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
fkluc3BlY3RvclRpbWVsaW5lQWdlbnQoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OndpbGxDYWxsRnVuY3Rpb24oY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGlu
ZSkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZUZ1bmN0aW9uQ2FsbERhdGEobV9mcm9udGVuZCwgc2NyaXB0TmFtZSwgc2NyaXB0TGluZSksIEZ1
bmN0aW9uQ2FsbFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVGdW5jdGlvbkNhbGxEYXRhKHNjcmlwdE5hbWUsIHNj
cmlwdExpbmUpLCBGdW5jdGlvbkNhbGxUaW1lbGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENhbGxGdW5jdGlvbigpCkBAIC05Myw3ICs5Myw3IEBA
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ2FsbEZ1bmN0aW9uKCkKIAogdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRGlzcGF0Y2hFdmVudChjb25zdCBFdmVudCYgZXZl
bnQpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVFdmVudERpc3BhdGNoRGF0YShtX2Zyb250ZW5kLCBldmVudCksCisgICAgcHVzaEN1cnJlbnRS
ZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmVudERpc3BhdGNoRGF0YShldmVu
dCksCiAgICAgICAgIEV2ZW50RGlzcGF0Y2hUaW1lbGluZVJlY29yZFR5cGUpOwogfQogCkBAIC0x
MDQsNyArMTA0LDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWREaXNwYXRjaEV2
ZW50KCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsTGF5b3V0KCkKIHsKLSAg
ICBwdXNoQ3VycmVudFJlY29yZChtX2Zyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKSwgTGF5b3V0
VGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChJbnNwZWN0b3JPYmpl
Y3Q6OmNyZWF0ZSgpLCBMYXlvdXRUaW1lbGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OmRpZExheW91dCgpCkBAIC0xMTQsNyArMTE0LDcgQEAgdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRMYXlvdXQoKQogCiB2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OndpbGxSZWNhbGN1bGF0ZVN0eWxlKCkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29y
ZChtX2Zyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKSwgUmVjYWxjdWxhdGVTdHlsZXNUaW1lbGlu
ZVJlY29yZFR5cGUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKEluc3BlY3Rvck9iamVjdDo6Y3Jl
YXRlKCksIFJlY2FsY3VsYXRlU3R5bGVzVGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZWNhbGN1bGF0ZVN0eWxlKCkKQEAgLTEyNCw3ICsx
MjQsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJlY2FsY3VsYXRlU3R5bGUo
KQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQYWludChjb25zdCBJbnRSZWN0
JiByZWN0KQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlUGFpbnREYXRhKG1fZnJvbnRlbmQsIHJlY3QpLCBQYWludFRpbWVsaW5lUmVjb3JkVHlw
ZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQ
YWludERhdGEocmVjdCksIFBhaW50VGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpkaWRQYWludCgpCkBAIC0xMzQsMTQgKzEzNCwxNCBAQCB2b2lk
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFBhaW50KCkKIAogdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp3aWxsV3JpdGVIVE1MKHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVkIGlu
dCBzdGFydExpbmUpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVQYXJzZUhUTUxEYXRhKG1fZnJvbnRlbmQsIGxlbmd0aCwgc3RhcnRMaW5lKSwg
UGFyc2VIVE1MVGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhcnNlSFRNTERhdGEobGVuZ3RoLCBzdGFydExpbmUp
LCBQYXJzZUhUTUxUaW1lbGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OmRpZFdyaXRlSFRNTCh1bnNpZ25lZCBpbnQgZW5kTGluZSkKIHsKICAgICBpZiAo
IW1fcmVjb3JkU3RhY2suaXNFbXB0eSgpKSB7CiAgICAgICAgIFRpbWVsaW5lUmVjb3JkRW50cnkg
ZW50cnkgPSBtX3JlY29yZFN0YWNrLmxhc3QoKTsKLSAgICAgICAgZW50cnkuZGF0YS5zZXQoImVu
ZExpbmUiLCBlbmRMaW5lKTsKKyAgICAgICAgZW50cnkuZGF0YS0+c2V0TnVtYmVyKCJlbmRMaW5l
IiwgZW5kTGluZSk7CiAgICAgICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChQYXJzZUhUTUxU
aW1lbGluZVJlY29yZFR5cGUpOwogICAgIH0KIH0KQEAgLTE0OSwyMiArMTQ5LDIyIEBAIHZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkV3JpdGVIVE1MKHVuc2lnbmVkIGludCBlbmRMaW5l
KQogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRJbnN0YWxsVGltZXIoaW50IHRpbWVy
SWQsIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpCiB7CiAgICAgcHVzaEdDRXZlbnRSZWNv
cmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7Ci0g
ICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlVGltZXJJ
bnN0YWxsRGF0YShtX2Zyb250ZW5kLCB0aW1lcklkLCB0aW1lb3V0LCBzaW5nbGVTaG90KSk7Cisg
ICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVHZW5lcmljUmVjb3JkKFdURjo6Y3VycmVudFRpbWVNUygpKTsKKyAgICByZWNvcmQt
PnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlVGltZXJJbnN0YWxsRGF0
YSh0aW1lcklkLCB0aW1lb3V0LCBzaW5nbGVTaG90KSk7CiAgICAgYWRkUmVjb3JkVG9UaW1lbGlu
ZShyZWNvcmQsIFRpbWVySW5zdGFsbFRpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVtb3ZlVGltZXIoaW50IHRpbWVySWQpCiB7CiAgICAg
cHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJl
bnRUaW1lTVMoKSk7Ci0gICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlR2VuZXJpY1RpbWVyRGF0YShtX2Zyb250ZW5kLCB0aW1lcklkKSk7CisgICAgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVHZW5lcmljUmVjb3JkKFdURjo6Y3VycmVudFRpbWVNUygpKTsKKyAgICByZWNvcmQtPnNldCgi
ZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1RpbWVyRGF0YSh0aW1l
cklkKSk7CiAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIFRpbWVyUmVtb3ZlVGltZWxp
bmVSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRmly
ZVRpbWVyKGludCB0aW1lcklkKQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVj
b3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1RpbWVyRGF0YShtX2Zyb250ZW5kLCB0aW1lcklkKSwg
VGltZXJGaXJlVGltZWxpbmVSZWNvcmRUeXBlKTsgCisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJEYXRhKHRpbWVySWQpLCBUaW1l
ckZpcmVUaW1lbGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmRpZEZpcmVUaW1lcigpCkBAIC0xNzQsNyArMTc0LDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpkaWRGaXJlVGltZXIoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OndpbGxDaGFuZ2VYSFJSZWFkeVN0YXRlKGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgcmVhZHlTdGF0
ZSkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZVhIUlJlYWR5U3RhdGVDaGFuZ2VEYXRhKG1fZnJvbnRlbmQsIHVybCwgcmVhZHlTdGF0ZSksIFhI
UlJlYWR5U3RhdGVDaGFuZ2VSZWNvcmRUeXBlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUlJlYWR5U3RhdGVDaGFuZ2VEYXRhKHVybCwgcmVh
ZHlTdGF0ZSksIFhIUlJlYWR5U3RhdGVDaGFuZ2VSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDaGFuZ2VYSFJSZWFkeVN0YXRlKCkKQEAgLTE4NCw3ICsx
ODQsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENoYW5nZVhIUlJlYWR5U3Rh
dGUoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxMb2FkWEhSKGNvbnN0IFN0
cmluZyYgdXJsKSAKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rv
cnk6OmNyZWF0ZVhIUkxvYWREYXRhKG1fZnJvbnRlbmQsIHVybCksIFhIUkxvYWRSZWNvcmRUeXBl
KTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhI
UkxvYWREYXRhKHVybCksIFhIUkxvYWRSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpkaWRMb2FkWEhSKCkKQEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OmRpZExvYWRYSFIoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OndpbGxFdmFsdWF0ZVNjcmlwdChjb25zdCBTdHJpbmcmIHVybCwgaW50IGxpbmVOdW1i
ZXIpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVFdmFsdWF0ZVNjcmlwdERhdGEobV9mcm9udGVuZCwgdXJsLCBsaW5lTnVtYmVyKSwgRXZhbHVh
dGVTY3JpcHRUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZhbHVhdGVTY3JpcHREYXRhKHVybCwgbGluZU51bWJl
ciksIEV2YWx1YXRlU2NyaXB0VGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KICAgICAKIHZvaWQgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRXZhbHVhdGVTY3JpcHQoKQpAQCAtMjA1LDkgKzIwNSw5
IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRXZhbHVhdGVTY3JpcHQoKQogdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdChjb25z
dCBTdHJpbmcmIHVybCkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKLSAgICBTY3JpcHRP
YmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3Jk
KG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKLSAgICByZWNvcmQuc2V0KCJkYXRh
IiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVTY2hlZHVsZVJlc291cmNlUmVxdWVzdERh
dGEobV9mcm9udGVuZCwgdXJsKSk7Ci0gICAgcmVjb3JkLnNldCgidHlwZSIsIFNjaGVkdWxlUmVz
b3VyY2VSZXF1ZXN0VGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQo
V1RGOjpjdXJyZW50VGltZU1TKCkpOworICAgIHJlY29yZC0+c2V0KCJkYXRhIiwgVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVTY2hlZHVsZVJlc291cmNlUmVxdWVzdERhdGEodXJsKSk7Cisg
ICAgcmVjb3JkLT5zZXROdW1iZXIoInR5cGUiLCBTY2hlZHVsZVJlc291cmNlUmVxdWVzdFRpbWVs
aW5lUmVjb3JkVHlwZSk7CiAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIFNjaGVkdWxl
UmVzb3VyY2VSZXF1ZXN0VGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KIApAQCAtMjE1LDE2ICsyMTUs
MTYgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsU2VuZFJlc291cmNlUmVxdWVz
dCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGIKICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCiB7CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0
IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zy
b250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7Ci0gICAgcmVjb3JkLnNldCgiZGF0YSIsIFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VTZW5kUmVxdWVzdERhdGEobV9mcm9u
dGVuZCwgaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UsIHJlcXVlc3QpKTsKLSAgICByZWNvcmQu
c2V0KCJ0eXBlIiwgUmVzb3VyY2VTZW5kUmVxdWVzdFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5Ojpj
cmVhdGVHZW5lcmljUmVjb3JkKFdURjo6Y3VycmVudFRpbWVNUygpKTsKKyAgICByZWNvcmQtPnNl
dCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VTZW5kUmVxdWVz
dERhdGEoaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UsIHJlcXVlc3QpKTsKKyAgICByZWNvcmQt
PnNldE51bWJlcigidHlwZSIsIFJlc291cmNlU2VuZFJlcXVlc3RUaW1lbGluZVJlY29yZFR5cGUp
OwogICAgIHNldEhlYXBTaXplU3RhdGlzdGljKHJlY29yZCk7CiAgICAgbV9mcm9udGVuZC0+YWRk
UmVjb3JkVG9UaW1lbGluZShyZWNvcmQpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OndpbGxSZWNlaXZlUmVzb3VyY2VEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKIHsK
LSAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlY2Vp
dmVSZXNvdXJjZURhdGEobV9mcm9udGVuZCwgaWRlbnRpZmllciksIFJlY2VpdmVSZXNvdXJjZURh
dGFUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVj
b3JkRmFjdG9yeTo6Y3JlYXRlUmVjZWl2ZVJlc291cmNlRGF0YShpZGVudGlmaWVyKSwgUmVjZWl2
ZVJlc291cmNlRGF0YVRpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6ZGlkUmVjZWl2ZVJlc291cmNlRGF0YSgpCkBAIC0yMzQsNyArMjM0LDcgQEAg
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZWNlaXZlUmVzb3VyY2VEYXRhKCkKICAg
ICAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3Bv
bnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5Ojpj
cmVhdGVSZXNvdXJjZVJlY2VpdmVSZXNwb25zZURhdGEobV9mcm9udGVuZCwgaWRlbnRpZmllciwg
cmVzcG9uc2UpLCBSZXNvdXJjZVJlY2VpdmVSZXNwb25zZVRpbWVsaW5lUmVjb3JkVHlwZSk7Cisg
ICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJj
ZVJlY2VpdmVSZXNwb25zZURhdGEoaWRlbnRpZmllciwgcmVzcG9uc2UpLCBSZXNvdXJjZVJlY2Vp
dmVSZXNwb25zZVRpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoKQpAQCAtMjQ1LDkgKzI0NSw5IEBA
IHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2Uo
KQogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRGaW5pc2hMb2FkaW5nUmVzb3VyY2Uo
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBib29sIGRpZEZhaWwpCiB7CiAgICAgcHVzaEdDRXZl
bnRSZWNvcmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMo
KSk7Ci0gICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
UmVzb3VyY2VGaW5pc2hEYXRhKG1fZnJvbnRlbmQsIGlkZW50aWZpZXIsIGRpZEZhaWwpKTsKLSAg
ICByZWNvcmQuc2V0KCJ0eXBlIiwgUmVzb3VyY2VGaW5pc2hUaW1lbGluZVJlY29yZFR5cGUpOwor
ICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlR2VuZXJpY1JlY29yZChXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgcmVjb3Jk
LT5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlRmluaXNo
RGF0YShpZGVudGlmaWVyLCBkaWRGYWlsKSk7CisgICAgcmVjb3JkLT5zZXROdW1iZXIoInR5cGUi
LCBSZXNvdXJjZUZpbmlzaFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAgICAgc2V0SGVhcFNpemVTdGF0
aXN0aWMocmVjb3JkKTsKICAgICBtX2Zyb250ZW5kLT5hZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29y
ZCk7CiB9CkBAIC0yNTUsMjIgKzI1NSwyMiBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsCiB2b2lk
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZE1hcmtUaW1lbGluZShjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCiB7CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0IHJl
Y29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250
ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7Ci0gICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlTWFya1RpbWVsaW5lRGF0YShtX2Zyb250ZW5kLCBtZXNz
YWdlKSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gVGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKFdURjo6Y3VycmVudFRpbWVNUygpKTsKKyAg
ICByZWNvcmQtPnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlTWFya1Rp
bWVsaW5lRGF0YShtZXNzYWdlKSk7CiAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIE1h
cmtUaW1lbGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmRpZE1hcmtET01Db250ZW50RXZlbnQoKQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwot
ICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdl
bmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOworICAgIFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
R2VuZXJpY1JlY29yZChXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAgYWRkUmVjb3JkVG9UaW1l
bGluZShyZWNvcmQsIE1hcmtET01Db250ZW50RXZlbnRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrTG9hZEV2ZW50KCkKIHsKICAgICBwdXNoR0NFdmVudFJl
Y29yZHMoKTsKLSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsK
KyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rv
cnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoV1RGOjpjdXJyZW50VGltZU1TKCkpOwogICAgIGFkZFJl
Y29yZFRvVGltZWxpbmUocmVjb3JkLCBNYXJrTG9hZEV2ZW50VHlwZSk7CiB9CiAKQEAgLTI3OSwz
MiArMjc5LDMyIEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cmVzZXQoKQogICAgIG1f
cmVjb3JkU3RhY2suY2xlYXIoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpy
ZXNldEZyb250ZW5kUHJveHlPYmplY3QoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQordm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpyZXNldEZyb250ZW5kUHJveHlPYmplY3QoSW5zcGVj
dG9yRnJvbnRlbmQyKiBmcm9udGVuZCkKIHsKICAgICBBU1NFUlQoZnJvbnRlbmQpOwogICAgIHJl
c2V0KCk7CiAgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kOwogfQogCi12b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmFkZFJlY29yZFRvVGltZWxpbmUoU2NyaXB0T2JqZWN0IHJlY29yZCwgVGlt
ZWxpbmVSZWNvcmRUeXBlIHR5cGUpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFkZFJl
Y29yZFRvVGltZWxpbmUoY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIHJlY29yZCwgVGlt
ZWxpbmVSZWNvcmRUeXBlIHR5cGUpCiB7Ci0gICAgcmVjb3JkLnNldCgidHlwZSIsIHR5cGUpOwor
ICAgIHJlY29yZC0+c2V0TnVtYmVyKCJ0eXBlIiwgdHlwZSk7CiAgICAgc2V0SGVhcFNpemVTdGF0
aXN0aWMocmVjb3JkKTsKICAgICBpZiAobV9yZWNvcmRTdGFjay5pc0VtcHR5KCkpCiAgICAgICAg
IG1fZnJvbnRlbmQtPmFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkKTsKICAgICBlbHNlIHsKICAg
ICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeSBwYXJlbnQgPSBtX3JlY29yZFN0YWNrLmxhc3QoKTsK
LSAgICAgICAgcGFyZW50LmNoaWxkcmVuLnNldChwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoKCksIHJl
Y29yZCk7CisgICAgICAgIHBhcmVudC5jaGlsZHJlbi0+cHVzaChyZWNvcmQpOwogICAgIH0KIH0K
IAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzZXRIZWFwU2l6ZVN0YXRpc3RpYyhTY3Jp
cHRPYmplY3QgcmVjb3JkKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzZXRIZWFwU2l6
ZVN0YXRpc3RpYyhjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgcmVjb3JkKQogewogICAg
IHNpemVfdCB1c2VkSGVhcFNpemUgPSAwOwogICAgIHNpemVfdCB0b3RhbEhlYXBTaXplID0gMDsK
ICAgICBTY3JpcHRHQ0V2ZW50OjpnZXRIZWFwU2l6ZSh1c2VkSGVhcFNpemUsIHRvdGFsSGVhcFNp
emUpOwotICAgIHJlY29yZC5zZXQoInVzZWRIZWFwU2l6ZSIsIHVzZWRIZWFwU2l6ZSk7Ci0gICAg
cmVjb3JkLnNldCgidG90YWxIZWFwU2l6ZSIsIHRvdGFsSGVhcFNpemUpOworICAgIHJlY29yZC0+
c2V0TnVtYmVyKCJ1c2VkSGVhcFNpemUiLCB1c2VkSGVhcFNpemUpOworICAgIHJlY29yZC0+c2V0
TnVtYmVyKCJ0b3RhbEhlYXBTaXplIiwgdG90YWxIZWFwU2l6ZSk7CiB9CiAKIHZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3Jk
VHlwZSB0eXBlKQpAQCAtMzE2LDE4ICszMTYsMTggQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlIHR5cGUpCiAg
ICAgICAgIFRpbWVsaW5lUmVjb3JkRW50cnkgZW50cnkgPSBtX3JlY29yZFN0YWNrLmxhc3QoKTsK
ICAgICAgICAgbV9yZWNvcmRTdGFjay5yZW1vdmVMYXN0KCk7CiAgICAgICAgIEFTU0VSVChlbnRy
eS50eXBlID09IHR5cGUpOwotICAgICAgICBlbnRyeS5yZWNvcmQuc2V0KCJkYXRhIiwgZW50cnku
ZGF0YSk7Ci0gICAgICAgIGVudHJ5LnJlY29yZC5zZXQoImNoaWxkcmVuIiwgZW50cnkuY2hpbGRy
ZW4pOwotICAgICAgICBlbnRyeS5yZWNvcmQuc2V0KCJlbmRUaW1lIiwgV1RGOjpjdXJyZW50VGlt
ZU1TKCkpOworICAgICAgICBlbnRyeS5yZWNvcmQtPnNldCgiZGF0YSIsIGVudHJ5LmRhdGEpOwor
ICAgICAgICBlbnRyeS5yZWNvcmQtPnNldCgiY2hpbGRyZW4iLCBlbnRyeS5jaGlsZHJlbik7Cisg
ICAgICAgIGVudHJ5LnJlY29yZC0+c2V0TnVtYmVyKCJlbmRUaW1lIiwgV1RGOjpjdXJyZW50VGlt
ZU1TKCkpOwogICAgICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKGVudHJ5LnJlY29yZCwgdHlwZSk7
CiAgICAgfQogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnB1c2hDdXJyZW50UmVj
b3JkKFNjcmlwdE9iamVjdCBkYXRhLCBUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkKK3ZvaWQgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaEN1cnJlbnRSZWNvcmQoY29uc3QgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4mIGRhdGEsIFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlKQogewogICAgIHB1c2hH
Q0V2ZW50UmVjb3JkcygpOwotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29y
ZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGlt
ZU1TKCkpOwotICAgIG1fcmVjb3JkU3RhY2suYXBwZW5kKFRpbWVsaW5lUmVjb3JkRW50cnkocmVj
b3JkLCBkYXRhLCBtX2Zyb250ZW5kLT5uZXdTY3JpcHRBcnJheSgpLCB0eXBlKSk7CisgICAgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVHZW5lcmljUmVjb3JkKFdURjo6Y3VycmVudFRpbWVNUygpKTsKKyAgICBtX3JlY29yZFN0YWNr
LmFwcGVuZChUaW1lbGluZVJlY29yZEVudHJ5KHJlY29yZCwgZGF0YSwgSW5zcGVjdG9yQXJyYXk6
OmNyZWF0ZSgpLCB0eXBlKSk7CiB9CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCBmZTMzNGJlLi4xMGU4YTY1
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgK
KysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCkBAIC0zNCwx
NiArMzQsMTUgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2NyaXB0R0NFdmVudC5oIgogI2luY2x1ZGUgIlNjcmlw
dEdDRXZlbnRMaXN0ZW5lci5oIgotI2luY2x1ZGUgIlNjcmlwdE9iamVjdC5oIgotI2luY2x1ZGUg
IlNjcmlwdEFycmF5LmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBFdmVudDsKLWNsYXNzIEluc3BlY3RvckZyb250ZW5kOworY2xhc3MgSW5z
cGVjdG9yRnJvbnRlbmQyOwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsK
IGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CkBAIC03NSwxMSArNzQsMTEgQEAgZW51bSBUaW1lbGlu
ZVJlY29yZFR5cGUgewogCiBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50IDogU2NyaXB0R0NF
dmVudExpc3RlbmVyLCBwdWJsaWMgTm9uY29weWFibGUgewogcHVibGljOgotICAgIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKTsKKyAgICBJbnNwZWN0
b3JUaW1lbGluZUFnZW50KEluc3BlY3RvckZyb250ZW5kMiogZnJvbnRlbmQpOwogICAgIH5JbnNw
ZWN0b3JUaW1lbGluZUFnZW50KCk7CiAKICAgICB2b2lkIHJlc2V0KCk7Ci0gICAgdm9pZCByZXNl
dEZyb250ZW5kUHJveHlPYmplY3QoSW5zcGVjdG9yRnJvbnRlbmQqKTsKKyAgICB2b2lkIHJlc2V0
RnJvbnRlbmRQcm94eU9iamVjdChJbnNwZWN0b3JGcm9udGVuZDIqKTsKIAogICAgIC8vIE1ldGhv
ZHMgY2FsbGVkIGZyb20gV2ViQ29yZS4KICAgICB2b2lkIHdpbGxDYWxsRnVuY3Rpb24oY29uc3Qg
U3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSk7CkBAIC0xMzQsMjYgKzEzMywyNiBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IFRpbWVsaW5lUmVjb3JkRW50cnkgewot
ICAgICAgICBUaW1lbGluZVJlY29yZEVudHJ5KFNjcmlwdE9iamVjdCByZWNvcmQsIFNjcmlwdE9i
amVjdCBkYXRhLCBTY3JpcHRBcnJheSBjaGlsZHJlbiwgVGltZWxpbmVSZWNvcmRUeXBlIHR5cGUp
CisgICAgICAgIFRpbWVsaW5lUmVjb3JkRW50cnkoY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4mIHJlY29yZCwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIGRhdGEsIGNvbnN0IFJl
ZlB0cjxJbnNwZWN0b3JBcnJheT4mIGNoaWxkcmVuLCBUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkK
ICAgICAgICAgICAgIDogcmVjb3JkKHJlY29yZCksIGRhdGEoZGF0YSksIGNoaWxkcmVuKGNoaWxk
cmVuKSwgdHlwZSh0eXBlKQogICAgICAgICB7CiAgICAgICAgIH0KLSAgICAgICAgU2NyaXB0T2Jq
ZWN0IHJlY29yZDsKLSAgICAgICAgU2NyaXB0T2JqZWN0IGRhdGE7Ci0gICAgICAgIFNjcmlwdEFy
cmF5IGNoaWxkcmVuOworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQ7Cisg
ICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGE7CisgICAgICAgIFJlZlB0cjxJbnNw
ZWN0b3JBcnJheT4gY2hpbGRyZW47CiAgICAgICAgIFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlOwog
ICAgIH07CiAgICAgICAgIAotICAgIHZvaWQgcHVzaEN1cnJlbnRSZWNvcmQoU2NyaXB0T2JqZWN0
LCBUaW1lbGluZVJlY29yZFR5cGUpOwotICAgIHZvaWQgc2V0SGVhcFNpemVTdGF0aXN0aWMoU2Ny
aXB0T2JqZWN0IHJlY29yZCk7CisgICAgdm9pZCBwdXNoQ3VycmVudFJlY29yZChjb25zdCBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiYsIFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgdm9pZCBzZXRI
ZWFwU2l6ZVN0YXRpc3RpYyhjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgcmVjb3JkKTsK
ICAgICAgICAgCiAgICAgdm9pZCBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNv
cmRUeXBlKTsKIAotICAgIHZvaWQgYWRkUmVjb3JkVG9UaW1lbGluZShTY3JpcHRPYmplY3QsIFRp
bWVsaW5lUmVjb3JkVHlwZSk7CisgICAgdm9pZCBhZGRSZWNvcmRUb1RpbWVsaW5lKGNvbnN0IFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiwgVGltZWxpbmVSZWNvcmRUeXBlKTsKIAogICAgIHZvaWQg
cHVzaEdDRXZlbnRSZWNvcmRzKCk7CiAKLSAgICBJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVu
ZDsKKyAgICBJbnNwZWN0b3JGcm9udGVuZDIqIG1fZnJvbnRlbmQ7CiAKICAgICBWZWN0b3I8VGlt
ZWxpbmVSZWNvcmRFbnRyeT4gbV9yZWNvcmRTdGFjazsKICAgICBzdGF0aWMgaW50IHNfaW5zdGFu
Y2VDb3VudDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFj
dG9yeS5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCmlu
ZGV4IGJkYjVmM2QuLjMyNWI0YzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVs
aW5lUmVjb3JkRmFjdG9yeS5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNv
cmRGYWN0b3J5LmNwcApAQCAtMzUsMTUxICszNSwxNTEgQEAKIAogI2luY2x1ZGUgIkV2ZW50Lmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JWYWx1
ZXMuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlNjcmlwdEFycmF5Lmgi
CiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCi0jaW5jbHVkZSAiU2NyaXB0T2JqZWN0Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGRv
dWJsZSBzdGFydFRpbWUpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZh
Y3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoZG91YmxlIHN0YXJ0VGltZSkKIHsKLSAgICBTY3Jp
cHRPYmplY3QgcmVjb3JkID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIHJlY29y
ZC5zZXQoInN0YXJ0VGltZSIsIHN0YXJ0VGltZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gcmVjb3JkID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICByZWNvcmQtPnNldE51
bWJlcigic3RhcnRUaW1lIiwgc3RhcnRUaW1lKTsKIAotICAgIFNjcmlwdEFycmF5IHN0YWNrVHJh
Y2U7Ci0gICAgaWYgKFNjcmlwdENhbGxTdGFjazo6c3RhY2tUcmFjZSg1LCBmcm9udGVuZC0+c2Ny
aXB0U3RhdGUoKSwgc3RhY2tUcmFjZSkpCi0gICAgICAgIHJlY29yZC5zZXQoInN0YWNrVHJhY2Ui
LCBzdGFja1RyYWNlKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IHN0YWNrVHJhY2UgPSBJ
bnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7CisgICAgaWYgKFNjcmlwdENhbGxTdGFjazo6c3RhY2tU
cmFjZSg1LCBzdGFja1RyYWNlKSkKKyAgICAgICAgcmVjb3JkLT5zZXQoInN0YWNrVHJhY2UiLCBz
dGFja1RyYWNlKTsKICAgICByZXR1cm4gcmVjb3JkOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHQ0V2ZW50RGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJv
bnRlbmQsIGNvbnN0IHNpemVfdCB1c2VkSGVhcFNpemVEZWx0YSkKK1JlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR0NFdmVudERhdGEoY29uc3Qgc2l6
ZV90IHVzZWRIZWFwU2l6ZURlbHRhKQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRl
bmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJ1c2VkSGVhcFNpemVEZWx0YSIs
IHVzZWRIZWFwU2l6ZURlbHRhKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0g
SW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoInVzZWRIZWFw
U2l6ZURlbHRhIiwgdXNlZEhlYXBTaXplRGVsdGEpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1T
Y3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVGdW5jdGlvbkNhbGxEYXRh
KEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBp
bnQgc2NyaXB0TGluZSkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlRnVuY3Rpb25DYWxsRGF0YShjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGlu
dCBzY3JpcHRMaW5lKQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1Nj
cmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJzY3JpcHROYW1lIiwgc2NyaXB0TmFtZSk7Ci0g
ICAgZGF0YS5zZXQoInNjcmlwdExpbmUiLCBzY3JpcHRMaW5lKTsKKyAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5z
ZXRTdHJpbmcoInNjcmlwdE5hbWUiLCBzY3JpcHROYW1lKTsKKyAgICBkYXRhLT5zZXROdW1iZXIo
InNjcmlwdExpbmUiLCBzY3JpcHRMaW5lKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0
T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZlbnREaXNwYXRjaERhdGEoSW5z
cGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBFdmVudCYgZXZlbnQpCitSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUV2ZW50RGlzcGF0Y2hE
YXRhKGNvbnN0IEV2ZW50JiBldmVudCkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250
ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgidHlwZSIsIGV2ZW50LnR5cGUo
KS5zdHJpbmcoKSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rv
ck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0U3RyaW5nKCJ0eXBlIiwgZXZlbnQudHlw
ZSgpLnN0cmluZygpKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1RpbWVyRGF0YShJbnNwZWN0b3JGcm9udGVu
ZCogZnJvbnRlbmQsIGludCB0aW1lcklkKQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJEYXRhKGludCB0aW1lcklkKQogewot
ICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAg
IGRhdGEuc2V0KCJ0aW1lcklkIiwgdGltZXJJZCk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0TnVtYmVy
KCJ0aW1lcklkIiwgdGltZXJJZCk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVj
dCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVRpbWVySW5zdGFsbERhdGEoSW5zcGVjdG9y
RnJvbnRlbmQqIGZyb250ZW5kLCBpbnQgdGltZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xl
U2hvdCkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlVGltZXJJbnN0YWxsRGF0YShpbnQgdGltZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xl
U2hvdCkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmpl
Y3QoKTsKLSAgICBkYXRhLnNldCgidGltZXJJZCIsIHRpbWVySWQpOwotICAgIGRhdGEuc2V0KCJ0
aW1lb3V0IiwgdGltZW91dCk7Ci0gICAgZGF0YS5zZXQoInNpbmdsZVNob3QiLCBzaW5nbGVTaG90
KTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0Ojpj
cmVhdGUoKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoInRpbWVySWQiLCB0aW1lcklkKTsKKyAgICBk
YXRhLT5zZXROdW1iZXIoInRpbWVvdXQiLCB0aW1lb3V0KTsKKyAgICBkYXRhLT5zZXRCb29sKCJz
aW5nbGVTaG90Iiwgc2luZ2xlU2hvdCk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9i
amVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUlJlYWR5U3RhdGVDaGFuZ2VEYXRh
KEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3QgU3RyaW5nJiB1cmwsIGludCByZWFk
eVN0YXRlKQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5Ojpj
cmVhdGVYSFJSZWFkeVN0YXRlQ2hhbmdlRGF0YShjb25zdCBTdHJpbmcmIHVybCwgaW50IHJlYWR5
U3RhdGUpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2Jq
ZWN0KCk7Ci0gICAgZGF0YS5zZXQoInVybCIsIHVybCk7Ci0gICAgZGF0YS5zZXQoInJlYWR5U3Rh
dGUiLCByZWFkeVN0YXRlKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5z
cGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXRTdHJpbmcoInVybCIsIHVybCk7
CisgICAgZGF0YS0+c2V0TnVtYmVyKCJyZWFkeVN0YXRlIiwgcmVhZHlTdGF0ZSk7CiAgICAgcmV0
dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZVhIUkxvYWREYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3QgU3RyaW5nJiB1
cmwpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZVhIUkxvYWREYXRhKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIFNjcmlwdE9iamVjdCBkYXRh
ID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJ1cmwiLCB1cmwp
OworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpOworICAgIGRhdGEtPnNldFN0cmluZygidXJsIiwgdXJsKTsKICAgICByZXR1cm4gZGF0
YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZhbHVh
dGVTY3JpcHREYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3QgU3RyaW5nJiB1
cmwsIGRvdWJsZSBsaW5lTnVtYmVyKSAKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZhbHVhdGVTY3JpcHREYXRhKGNvbnN0IFN0cmluZyYgdXJs
LCBkb3VibGUgbGluZU51bWJlcikKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5k
LT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgidXJsIiwgdXJsKTsKLSAgICBkYXRh
LnNldCgibGluZU51bWJlciIsIGxpbmVOdW1iZXIpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldFN0cmlu
ZygidXJsIiwgdXJsKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoImxpbmVOdW1iZXIiLCBsaW5lTnVt
YmVyKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlTWFya1RpbWVsaW5lRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRl
bmQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZU1hcmtUaW1lbGluZURhdGEoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9i
amVjdCgpOwotICAgIGRhdGEuc2V0KCJtZXNzYWdlIiwgbWVzc2FnZSk7CisgICAgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0
YS0+c2V0U3RyaW5nKCJtZXNzYWdlIiwgbWVzc2FnZSk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAK
LVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVNjaGVkdWxlUmVzb3Vy
Y2VSZXF1ZXN0RGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IFN0cmluZyYg
dXJsKQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVTY2hlZHVsZVJlc291cmNlUmVxdWVzdERhdGEoY29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAg
U2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0
YS5zZXQoInVybCIsIHVybCk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IElu
c3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0U3RyaW5nKCJ1cmwiLCB1cmwp
OwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJv
bnRlbmQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgYm9vbCBpc01haW5SZXNvdXJjZSwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YSh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGJvb2wgaXNNYWluUmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdT
Y3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgiaWRlbnRpZmllciIsIGlkZW50aWZpZXIpOwot
ICAgIGRhdGEuc2V0KCJ1cmwiLCByZXF1ZXN0LnVybCgpLnN0cmluZygpKTsKLSAgICBkYXRhLnNl
dCgicmVxdWVzdE1ldGhvZCIsIHJlcXVlc3QuaHR0cE1ldGhvZCgpKTsKLSAgICBkYXRhLnNldCgi
aXNNYWluUmVzb3VyY2UiLCBpc01haW5SZXNvdXJjZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0TnVt
YmVyKCJpZGVudGlmaWVyIiwgaWRlbnRpZmllcik7CisgICAgZGF0YS0+c2V0U3RyaW5nKCJ1cmwi
LCByZXF1ZXN0LnVybCgpLnN0cmluZygpKTsKKyAgICBkYXRhLT5zZXRTdHJpbmcoInJlcXVlc3RN
ZXRob2QiLCByZXF1ZXN0Lmh0dHBNZXRob2QoKSk7CisgICAgZGF0YS0+c2V0Qm9vbCgiaXNNYWlu
UmVzb3VyY2UiLCBpc01haW5SZXNvdXJjZSk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlw
dE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlUmVjZWl2ZVJlc3Bv
bnNlRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCitSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlUmVjZWl2ZVJlc3Bv
bnNlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlKQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1Njcmlw
dE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJpZGVudGlmaWVyIiwgaWRlbnRpZmllcik7Ci0gICAg
ZGF0YS5zZXQoInN0YXR1c0NvZGUiLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKLSAgICBk
YXRhLnNldCgibWltZVR5cGUiLCByZXNwb25zZS5taW1lVHlwZSgpKTsKLSAgICBkYXRhLnNldCgi
ZXhwZWN0ZWRDb250ZW50TGVuZ3RoIiwgcmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCkp
OworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpOworICAgIGRhdGEtPnNldE51bWJlcigiaWRlbnRpZmllciIsIGlkZW50aWZpZXIpOwor
ICAgIGRhdGEtPnNldE51bWJlcigic3RhdHVzQ29kZSIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2Rl
KCkpOworICAgIGRhdGEtPnNldFN0cmluZygibWltZVR5cGUiLCByZXNwb25zZS5taW1lVHlwZSgp
KTsKKyAgICBkYXRhLT5zZXROdW1iZXIoImV4cGVjdGVkQ29udGVudExlbmd0aCIsIHJlc3BvbnNl
LmV4cGVjdGVkQ29udGVudExlbmd0aCgpKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0
T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKElu
c3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBib29s
IGRpZEZhaWwpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZVJlc291cmNlRmluaXNoRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGJvb2wg
ZGlkRmFpbCkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRP
YmplY3QoKTsKLSAgICBkYXRhLnNldCgiaWRlbnRpZmllciIsIGlkZW50aWZpZXIpOwotICAgIGRh
dGEuc2V0KCJkaWRGYWlsIiwgZGlkRmFpbCk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
ZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJp
ZGVudGlmaWVyIiwgaWRlbnRpZmllcik7CisgICAgZGF0YS0+c2V0Qm9vbCgiZGlkRmFpbCIsIGRp
ZEZhaWwpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKEluc3BlY3RvckZyb250ZW5kKiBm
cm9udGVuZCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQorUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllcikKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5k
LT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgiaWRlbnRpZmllciIsIGlkZW50aWZp
ZXIpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6
OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldE51bWJlcigiaWRlbnRpZmllciIsIGlkZW50aWZpZXIp
OwogICAgIHJldHVybiBkYXRhOwogfQogICAgIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlUGFpbnREYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29u
c3QgSW50UmVjdCYgcmVjdCkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlUGFpbnREYXRhKGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgU2Ny
aXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5z
ZXQoIngiLCByZWN0LngoKSk7Ci0gICAgZGF0YS5zZXQoInkiLCByZWN0LnkoKSk7Ci0gICAgZGF0
YS5zZXQoIndpZHRoIiwgcmVjdC53aWR0aCgpKTsKLSAgICBkYXRhLnNldCgiaGVpZ2h0IiwgcmVj
dC5oZWlnaHQoKSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rv
ck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJ4IiwgcmVjdC54KCkpOwor
ICAgIGRhdGEtPnNldE51bWJlcigieSIsIHJlY3QueSgpKTsKKyAgICBkYXRhLT5zZXROdW1iZXIo
IndpZHRoIiwgcmVjdC53aWR0aCgpKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoImhlaWdodCIsIHJl
Y3QuaGVpZ2h0KCkpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYXJzZUhUTUxEYXRhKEluc3BlY3RvckZyb250ZW5kKiBm
cm9udGVuZCwgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSkKK1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFyc2VI
VE1MRGF0YSh1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKQogewot
ICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAg
IGRhdGEuc2V0KCJsZW5ndGgiLCBsZW5ndGgpOwotICAgIGRhdGEuc2V0KCJzdGFydExpbmUiLCBz
dGFydExpbmUpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JP
YmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldE51bWJlcigibGVuZ3RoIiwgbGVuZ3RoKTsK
KyAgICBkYXRhLT5zZXROdW1iZXIoInN0YXJ0TGluZSIsIHN0YXJ0TGluZSk7CiAgICAgcmV0dXJu
IGRhdGE7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3Jk
RmFjdG9yeS5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKaW5k
ZXggZjkwNWVjYy4uNmI1N2E2ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxp
bmVSZWNvcmRGYWN0b3J5LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmgKQEAgLTM3LDQ3ICszNyw0NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBj
bGFzcyBFdmVudDsKICAgICBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKKyAgICBjbGFzcyBJbnNw
ZWN0b3JPYmplY3Q7CiAgICAgY2xhc3MgSW50UmVjdDsKICAgICBjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLSAgICBjbGFzcyBTY3JpcHRPYmplY3Q7
CiAKICAgICBjbGFzcyBUaW1lbGluZVJlY29yZEZhY3RvcnkgewogICAgIHB1YmxpYzoKLSAgICAg
ICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVHZW5lcmljUmVjb3JkKEluc3BlY3RvckZyb250
ZW5kKiwgZG91YmxlIHN0YXJ0VGltZSk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBjcmVhdGVHZW5lcmljUmVjb3JkKGRvdWJsZSBzdGFydFRpbWUpOwogCi0gICAgICAg
IHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlR0NFdmVudERhdGEoSW5zcGVjdG9yRnJvbnRlbmQq
IGZyb250ZW5kLCBjb25zdCBzaXplX3QgdXNlZEhlYXBTaXplRGVsdGEpOworICAgICAgICBzdGF0
aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlR0NFdmVudERhdGEoY29uc3Qgc2l6ZV90
IHVzZWRIZWFwU2l6ZURlbHRhKTsKIAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0
ZUZ1bmN0aW9uQ2FsbERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBTdHJpbmcmIHNjcmlw
dE5hbWUsIGludCBzY3JpcHRMaW5lKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IGNyZWF0ZUZ1bmN0aW9uQ2FsbERhdGEoY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBp
bnQgc2NyaXB0TGluZSk7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVFdmVu
dERpc3BhdGNoRGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGNvbnN0IEV2ZW50Jik7CisgICAgICAg
IHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVFdmVudERpc3BhdGNoRGF0YShj
b25zdCBFdmVudCYpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlR2VuZXJp
Y1RpbWVyRGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGludCB0aW1lcklkKTsKKyAgICAgICAgc3Rh
dGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUdlbmVyaWNUaW1lckRhdGEoaW50IHRp
bWVySWQpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlVGltZXJJbnN0YWxs
RGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGludCB0aW1lcklkLCBpbnQgdGltZW91dCwgYm9vbCBz
aW5nbGVTaG90KTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0
ZVRpbWVySW5zdGFsbERhdGEoaW50IHRpbWVySWQsIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNo
b3QpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlWEhSUmVhZHlTdGF0ZUNo
YW5nZURhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBTdHJpbmcmIHVybCwgaW50IHJlYWR5
U3RhdGUpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlWEhS
UmVhZHlTdGF0ZUNoYW5nZURhdGEoY29uc3QgU3RyaW5nJiB1cmwsIGludCByZWFkeVN0YXRlKTsK
IAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVhIUkxvYWREYXRhKEluc3BlY3Rv
ckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJiB1cmwpOworICAgICAgICBzdGF0aWMgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gY3JlYXRlWEhSTG9hZERhdGEoY29uc3QgU3RyaW5nJiB1cmwpOwogCi0g
ICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlRXZhbHVhdGVTY3JpcHREYXRhKEluc3Bl
Y3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJiwgZG91YmxlIGxpbmVOdW1iZXIpOworICAgICAg
ICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlRXZhbHVhdGVTY3JpcHREYXRh
KGNvbnN0IFN0cmluZyYsIGRvdWJsZSBsaW5lTnVtYmVyKTsKIAotICAgICAgICBzdGF0aWMgU2Ny
aXB0T2JqZWN0IGNyZWF0ZU1hcmtUaW1lbGluZURhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBjb25z
dCBTdHJpbmcmKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0
ZU1hcmtUaW1lbGluZURhdGEoY29uc3QgU3RyaW5nJik7CiAKLSAgICAgICAgc3RhdGljIFNjcmlw
dE9iamVjdCBjcmVhdGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YShJbnNwZWN0b3JGcm9udGVuZCos
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IGNyZWF0ZVJlc291cmNlU2VuZFJlcXVlc3REYXRhKHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwKICAgICAgICAgICAgIGJvb2wgaXNNYWluUmVzb3VyY2UsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlU2NoZWR1bGVS
ZXNvdXJjZVJlcXVlc3REYXRhKEluc3BlY3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJik7Cisg
ICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVTY2hlZHVsZVJlc291
cmNlUmVxdWVzdERhdGEoY29uc3QgU3RyaW5nJik7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9i
amVjdCBjcmVhdGVSZXNvdXJjZVJlY2VpdmVSZXNwb25zZURhdGEoSW5zcGVjdG9yRnJvbnRlbmQq
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAg
ICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVJlc291cmNlUmVjZWl2
ZVJlc3BvbnNlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKTsKIAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVJlY2VpdmVSZXNv
dXJjZURhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwor
ICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlUmVjZWl2ZVJlc291
cmNlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwogCi0gICAgICAgIHN0YXRpYyBTY3Jp
cHRPYmplY3QgY3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBib29sIGRpZEZhaWwpOworICAgICAgICBzdGF0aWMgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgYm9vbCBkaWRGYWlsKTsKIAotICAgICAgICBzdGF0aWMgU2NyaXB0T2Jq
ZWN0IGNyZWF0ZVBhaW50RGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGNvbnN0IEludFJlY3QmKTsK
KyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVBhaW50RGF0YShj
b25zdCBJbnRSZWN0Jik7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVQYXJz
ZUhUTUxEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWdu
ZWQgaW50IHN0YXJ0TGluZSk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBjcmVhdGVQYXJzZUhUTUxEYXRhKHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBz
dGFydExpbmUpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgVGltZWxpbmVSZWNvcmRGYWN0b3J5
KCkgeyB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCmluZGV4IGY5ZmIyNTAuLmE3MjRjNmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAt
MDYtMTYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkluc3BlY3RvcjoganMg
ZnVuY3Rpb24gbmFtZSB3YXMgZml4ZWQuCisgICAgICAgIGRpc3BhdGNoTWVzc2FnZVRvRnJvbnRl
bmQgLT4gZGlzcGF0Y2hNZXNzYWdlRnJvbUJhY2tlbmQuICAgICAgICAgICAgCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDY3NQorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
SW5zcGVjdG9yQ2xpZW50OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorCiAyMDEwLTA2LTE2ICBN
YXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAKaW5kZXggNGJjM2MzMi4uNjE2ODM0YiAxMDA2NDQK
LS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwCisr
KyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcApAQCAt
MTM0LDcgKzEzNCw3IEBAIGJvb2wgSW5zcGVjdG9yQ2xpZW50OjpzZW5kTWVzc2FnZVRvRnJvbnRl
bmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIGlmICghc2NyaXB0Q29udHJvbGxlcikKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgU3RyaW5nIGRpc3BhdGNoVG9Gcm9udGVuZCgiV2Vi
SW5zcGVjdG9yLmRpc3BhdGNoTWVzc2FnZVRvRnJvbnRlbmQoIik7CisgICAgU3RyaW5nIGRpc3Bh
dGNoVG9Gcm9udGVuZCgiV2ViSW5zcGVjdG9yLmRpc3BhdGNoTWVzc2FnZUZyb21CYWNrZW5kKCIp
OwogICAgIGRpc3BhdGNoVG9Gcm9udGVuZCArPSBtZXNzYWdlOwogICAgIGRpc3BhdGNoVG9Gcm9u
dGVuZCArPSAiKTsiOwogICAgIHNjcmlwdENvbnRyb2xsZXItPmV4ZWN1dGVTY3JpcHQoZGlzcGF0
Y2hUb0Zyb250ZW5kKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQv
cXQvQ2hhbmdlTG9nCmluZGV4IDAwMDNiMjEuLjdlOWY3NTUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9x
dC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDEwLTA2LTE2ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJJbnNwZWN0b3I6
IGpzIGZ1bmN0aW9uIG5hbWUgd2FzIGZpeGVkLgorICAgICAgICBkaXNwYXRjaE1lc3NhZ2VUb0Zy
b250ZW5kIC0+IGRpc3BhdGNoTWVzc2FnZUZyb21CYWNrZW5kLiAKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNjc1CisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9JbnNwZWN0b3JDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDbGllbnRRdDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKToKKwogMjAxMC0wNi0xNyAgTWFyayBC
cmFuZCAgPG1hYnJhbmRAbWFicmFuZC5ubD4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBI
YXVzbWFubi4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JD
bGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50UXQu
Y3BwCmluZGV4IGZkZTA1NTYuLjQ1MDMxMWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9JbnNwZWN0b3JDbGllbnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0luc3BlY3RvckNsaWVudFF0LmNwcApAQCAtMTg0LDcgKzE4NCw3IEBAIGJvb2wgSW5zcGVj
dG9yQ2xpZW50UXQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
CiAgICAgaWYgKCFzY3JpcHRDb250cm9sbGVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBTdHJpbmcgZGlzcGF0Y2hUb0Zyb250ZW5kKCJXZWJJbnNwZWN0b3IuZGlzcGF0Y2hNZXNzYWdl
VG9Gcm9udGVuZCgiKTsKKyAgICBTdHJpbmcgZGlzcGF0Y2hUb0Zyb250ZW5kKCJXZWJJbnNwZWN0
b3IuZGlzcGF0Y2hNZXNzYWdlRnJvbUJhY2tlbmQoIik7CiAgICAgZGlzcGF0Y2hUb0Zyb250ZW5k
ICs9IG1lc3NhZ2U7CiAgICAgZGlzcGF0Y2hUb0Zyb250ZW5kICs9ICIpOyI7CiAgICAgc2NyaXB0
Q29udHJvbGxlci0+ZXhlY3V0ZVNjcmlwdChkaXNwYXRjaFRvRnJvbnRlbmQpOwo=
</data>
<flag name="review"
          id="45564"
          type_id="1"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59186</attachid>
            <date>2010-06-19 09:26:12 -0700</date>
            <delta_ts>2010-07-05 05:29:45 -0700</delta_ts>
            <desc>[patch] next iteration.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>77300</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBiZTBiOWY0Li42MTQ5NzVk
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMDYtMTkgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE9uIHRoZSB3YXkgdG8gUmVtb3RlIERlYnVnaW5nIHdlIHdhbnQgdG8gc3VwcG9ydCBKU09O
CisgICAgICAgIHNlcmlhbGl6YXRpb24gb24gYm90aCBzaWRlcyBvZiBXZWJJbnNwZWN0b3IgdHJh
bnNwb3J0LiBBcyBmYXIgYXMKKyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmQgY2xhc3MgaXMgYSBz
aW1wbGUgcHJveHkgdG8gV2ViSW5zcGVjdG9yIGl0IHdvdWxkCisgICAgICAgIGJlIGJldHRlciB0
byBnZW5lcmF0ZSBpdCBmcm9tIGFuIElETCBmaWxlLiBXZSBoYXZlIGdlbmVyYXRvcgorICAgICAg
ICBpbmZvc3RydWN0dXJlIGZvciBiaW5kaW5nIGFuZCB3aWxsIHJldXNlIGl0IGZvciBuZXcgZ2Vu
ZXJhdG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDA2NzUKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorCiAyMDEwLTA2LTE3ICBTaHUgQ2hh
bmcgIDxjaGFuZy5zaHVAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGgg
Um9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVtYWtl
ZmlsZS5hbQppbmRleCBjMmIxYzFjLi45OGJlZTgwIDEwMDY0NAotLS0gYS9HTlVtYWtlZmlsZS5h
bQorKysgYi9HTlVtYWtlZmlsZS5hbQpAQCAtNTUsNiArNTUsNyBAQCBub2luc3RfSEVBREVSUyA6
PQogbm9pbnN0X0xUTElCUkFSSUVTIDo9CiBsaWJfTElCUkFSSUVTIDo9CiBJRExfQklORElOR1Mg
Oj0KK0lOU1BFQ1RPUl9JTlRFUkZBQ0VTIDo9CiBURVNUX1BST0dTIDo9CiBQT0ZJTEVTIDo9CiBN
T0ZJTEVTIDo9CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCBkMzEyM2I0Li41NDU4MDcxIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI4Nyw2ICsy
ODcsNyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKIAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNj
cmlwdEhvc3QuaWRsCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaWRsCisgICAgaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LmlkbAogICAgIGluc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmlkbAogICAg
IGluc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlMWQwNjkxLi5iYWQ5ODA4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkx
IEBACisyMDEwLTA2LTE5ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBPbiB0aGUgd2F5IHRvIFJlbW90ZSBEZWJ1Z2luZyB3ZSB3YW50IHRvIHN1cHBvcnQg
SlNPTgorICAgICAgICBzZXJpYWxpemF0aW9uIG9uIGJvdGggc2lkZXMgb2YgV2ViSW5zcGVjdG9y
IHRyYW5zcG9ydC4gQXMgZmFyIGFzCisgICAgICAgIEluc3BlY3RvckZyb250ZW5kIGNsYXNzIGlz
IGEgc2ltcGxlIHByb3h5IHRvIFdlYkluc3BlY3RvciBpdCB3b3VsZAorICAgICAgICBiZSBiZXR0
ZXIgdG8gZ2VuZXJhdGUgaXQgZnJvbSBhbiBJREwgZmlsZS4gV2UgaGF2ZSBnZW5lcmF0b3IKKyAg
ICAgICAgaW5mb3N0cnVjdHVyZSBmb3IgYmluZGluZyBhbmQgd2lsbCByZXVzZSBpdCBmb3IgbmV3
IGdlbmVyYXRvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwNjc1CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNv
cmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUuZ3lwL3NjcmlwdHMvcnVsZV9i
aW5kaW5nLnB5OgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBy
aToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMv
U2NyaXB0Q2FsbFN0YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENhbGxTdGFjazo6
c3RhY2tUcmFjZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrLmg6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
Z2VuZXJhdGUtYmluZGluZ3MucGw6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0Q2FsbFN0
YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENhbGxTdGFjazo6c3RhY2tUcmFjZSk6
CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0Q2FsbFN0YWNrLmg6CisgICAgICAgICogaW5z
cGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG06IEFkZGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDb250cm9sbGVyOjpzdGFydFRpbWVsaW5lUHJvZmlsZXIpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kLmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbDogQWRkZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoR0NFdmVudFJlY29yZHMp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENhbGxGdW5j
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRGlz
cGF0Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3
aWxsTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Ondp
bGxSZWNhbGN1bGF0ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OndpbGxQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFn
ZW50Ojp3aWxsV3JpdGVIVE1MKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZFdyaXRlSFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpkaWRJbnN0YWxsVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6ZGlkUmVtb3ZlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6d2lsbEZpcmVUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JUaW1lbGluZUFnZW50Ojp3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsTG9hZFhIUik6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRXZhbHVhdGVTY3JpcHQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkU2NoZWR1bGVSZXNvdXJjZVJl
cXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFNl
bmRSZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6d2lsbFJlY2VpdmVSZXNvdXJjZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEZpbmlzaExvYWRpbmdSZXNvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrVGlt
ZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTWFy
a0RPTUNvbnRlbnRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRNYXJrTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OnJlc2V0RnJvbnRlbmRQcm94eU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVu
dFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNo
Q3VycmVudFJlY29yZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdl
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OlRpbWVsaW5l
UmVjb3JkRW50cnk6OlRpbWVsaW5lUmVjb3JkRW50cnkpOgorICAgICAgICAqIGluc3BlY3Rvci9U
aW1lbGluZVJlY29yZEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR0NFdmVudERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVGdW5jdGlvbkNhbGxEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZlbnREaXNwYXRjaERhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmlj
VGltZXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlVGltZXJJbnN0YWxsRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZh
Y3Rvcnk6OmNyZWF0ZVhIUlJlYWR5U3RhdGVDaGFuZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSTG9hZERhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmFsdWF0ZVNjcmlwdERhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVNYXJrVGltZWxp
bmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
U2NoZWR1bGVSZXNvdXJjZVJlcXVlc3REYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VTZW5kUmVxdWVzdERhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVJlY2VpdmVSZXNw
b25zZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVSZXNvdXJjZUZpbmlzaERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFpbnREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFyc2VIVE1MRGF0YSk6CisgICAgICAgICog
aW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oOgorCiAyMDEwLTA2LTE5ICBUaG9tYXMg
VmFuIExlbnRlbiAgPHRob21hc3ZsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBi
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA3ZWM5MTVmLi41YWU5NGZiIDEwMDY0
NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCkBAIC00NjIsOSArNDYyLDExIEBAIERPTV9DTEFTU0VTID0gXAogICAgIFhT
TFRQcm9jZXNzb3IgXAogIwogCitJTlNQRUNUT1JfQ0xBU1NFUyA9IEluc3BlY3RvckZyb250ZW5k
MgorCiAuUEhPTlkgOiBhbGwKIAotSlNfRE9NX0hFQURFUlM9JChmaWx0ZXItb3V0IEpTRXZlbnRM
aXN0ZW5lci5oIEpTRXZlbnRUYXJnZXQuaCwkKERPTV9DTEFTU0VTOiU9SlMlLmgpKQorSlNfRE9N
X0hFQURFUlM9JChmaWx0ZXItb3V0IEpTRXZlbnRMaXN0ZW5lci5oIEpTRXZlbnRUYXJnZXQuaCwk
KERPTV9DTEFTU0VTOiU9SlMlLmgpICQoSU5TUEVDVE9SX0NMQVNTRVM6JT1SZW1vdGUlLmgpKQog
CiBhbGwgOiBcCiAgICAgJChKU19ET01fSEVBREVSUykgXApAQCAtODEyLDIwICs4MTQsMzIgQEAg
ZW5kaWYKIAogIyAtLS0tLS0tLQogCi0jIEphdmFTY3JpcHQgYmluZGluZ3MKLQotR0VORVJBVEVf
QklORElOR1MgPSBwZXJsIC1JICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkKFdlYkNvcmUp
L2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgXAotICAgIC0taW5jbHVkZSBk
b20gLS1pbmNsdWRlIGh0bWwgLS1pbmNsdWRlIGNzcyAtLWluY2x1ZGUgcGFnZSAtLWluY2x1ZGUg
bm90aWZpY2F0aW9ucyAtLWluY2x1ZGUgeG1sIC0taW5jbHVkZSBzdmcgLS13cml0ZS1kZXBlbmRl
bmNpZXMgLS1vdXRwdXREaXIgLgorIyBDb21tb24gZ2VuZXJhdG9yIHRoaW5ncwogCi1HRU5FUkFU
RV9CSU5ESU5HU19TQ1JJUFRTID0gXAorR0VORVJBVEVfU0NSSVBUUyA9IFwKICAgICBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0gXAogICAgIGJpbmRpbmdzL3NjcmlwdHMvSURMUGFy
c2VyLnBtIFwKICAgICBiaW5kaW5ncy9zY3JpcHRzL0lETFN0cnVjdHVyZS5wbSBcCi0gICAgYmlu
ZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCBcCi0jCisgICAgYmluZGluZ3Mvc2Ny
aXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbAorCitnZW5lcmF0b3Jfc2NyaXB0ID0gcGVybCAkKGFk
ZHByZWZpeCAtSSAkKFdlYkNvcmUpLywgJChzb3J0ICQoZGlyICQoMSkpKSkgJChXZWJDb3JlKS9i
aW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCisKKyMgSlMgYmluZGluZ3MgZ2Vu
ZXJhdG9yCisKK0lETF9JTkNMVURFUyA9IGRvbSBodG1sIGNzcyBwYWdlIG5vdGlmaWNhdGlvbnMg
eG1sIHN2ZworSURMX0NPTU1PTl9BUkdTID0gJChJRExfSU5DTFVERVM6JT0tLWluY2x1ZGUgJSkg
LS13cml0ZS1kZXBlbmRlbmNpZXMgLS1vdXRwdXREaXIgLgorCitKU19CSU5ESU5HU19TQ1JJUFRT
ID0gJChHRU5FUkFURV9TQ1JJUFRTKSBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQorCitKUyUuaCA6ICUuaWRsICQoSlNfQklORElOR1NfU0NSSVBUUykKKwkkKGNhbGwgZ2VuZXJh
dG9yX3NjcmlwdCwgJChKU19CSU5ESU5HU19TQ1JJUFRTKSkgJChJRExfQ09NTU9OX0FSR1MpIC0t
ZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMpICQoQURESVRJT05BTF9JRExfREVGSU5FUykgTEFO
R1VBR0VfSkFWQVNDUklQVCIgLS1nZW5lcmF0b3IgSlMgJDwKKworIyBJbnNwZWN0b3IgaW50ZXJm
YWNlcyBnZW5lcmF0b3IKKworSU5TUEVDVE9SX0dFTkVSQVRPUl9TQ1JJUFRTID0gJChHRU5FUkFU
RV9TQ1JJUFRTKSBpbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbQogCi1KUyUuaCA6
ICUuaWRsICQoR0VORVJBVEVfQklORElOR1NfU0NSSVBUUykgYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KLQkkKEdFTkVSQVRFX0JJTkRJTkdTKSAtLWRlZmluZXMgIiQoRkVBVFVS
RV9ERUZJTkVTKSAkKEFERElUSU9OQUxfSURMX0RFRklORVMpIExBTkdVQUdFX0pBVkFTQ1JJUFQi
IC0tZ2VuZXJhdG9yIEpTICQ8CitSZW1vdGUlLmggOiAlLmlkbCAkKElOU1BFQ1RPUl9HRU5FUkFU
T1JfU0NSSVBUUykKKwkkKGNhbGwgZ2VuZXJhdG9yX3NjcmlwdCwgJChJTlNQRUNUT1JfR0VORVJB
VE9SX1NDUklQVFMpKSAtLW91dHB1dERpciAuICAtLWRlZmluZXMgIkxBTkdVQUdFX0pBVkFTQ1JJ
UFQiIC0tZ2VuZXJhdG9yIEluc3BlY3RvciAkPAogCiAtaW5jbHVkZSAkKEpTX0RPTV9IRUFERVJT
Oi5oPS5kZXApCiAKQEAgLTkyNiw4ICs5NDAsOSBAQCBXZWJDb3JlLkxQNjQuZXhwIDogV2ViQ29y
ZS5leHAKIAogIyBPYmplY3RpdmUtQyBiaW5kaW5ncwogCi1ET00lLmggOiAlLmlkbCAkKEdFTkVS
QVRFX0JJTkRJTkdTX1NDUklQVFMpIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMu
cG0gYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmgKLQkkKEdFTkVSQVRFX0JJTkRJ
TkdTKSAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTKSAkKEFERElUSU9OQUxfSURMX0RFRklO
RVMpIExBTkdVQUdFX09CSkVDVElWRV9DIiAtLWdlbmVyYXRvciBPYmpDICQ8CitET01fQklORElO
R1NfU0NSSVBUUyA9ICQoR0VORVJBVEVfQklORElOR19TQ1JJUFRTKSBiaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JPYmpDLnBtCitET00lLmggOiAlLmlkbCAkKERPTV9CSU5ESU5HU19TQ1JJ
UFRTKSBiaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaAorCSQoY2FsbCBnZW5lcmF0
b3Jfc2NyaXB0LCAkKERPTV9CSU5ESU5HU19TQ1JJUFRTKSkgJChJRExfQ09NTU9OX0FSR1MpIC0t
ZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMpICQoQURESVRJT05BTF9JRExfREVGSU5FUykgTEFO
R1VBR0VfT0JKRUNUSVZFX0MiIC0tZ2VuZXJhdG9yIE9iakMgJDwKIAogLWluY2x1ZGUgJChPQkpD
X0RPTV9IRUFERVJTOi5oPS5kZXApCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGU3ODU3NDkuLmRkZmM1NmIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQpAQCAtMzIxLDYgKzMyMSw4IEBAIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS94bWwvWE1M
U2VyaWFsaXplci5pZGwgXAogCVdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuaWRsCiAKK0lOU1BF
Q1RPUl9JTlRFUkZBQ0VTICs9IFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5p
ZGwKKwogd2ViY29yZWd0a19kb21fc291cmNlcyA9IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2dvYmpl
Y3QvQ29udmVydFRvVVRGOFN0cmluZy5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9D
b252ZXJ0VG9VVEY4U3RyaW5nLmggXApAQCAtMzg5OCwxMCArMzkwMCwxNSBAQCB2cGF0aCAlLmlk
bCA9ICQoSURMX1BBVEgpCiAKIERlcml2ZWRTb3VyY2VzL0pTJS5oOiBEZXJpdmVkU291cmNlcy9K
UyUuY3BwOwogCitEZXJpdmVkU291cmNlcy9SZW1vdGUlLmg6IERlcml2ZWRTb3VyY2VzL1JlbW90
ZSUuY3BwOworCiAuU0VDT05EQVJZOgogRGVyaXZlZFNvdXJjZXMvSlMlLmNwcDogJS5pZGwgJChT
Q1JJUFRTX0JJTkRJTkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRz
ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAkKElETF9Q
QVRIOiU9LS1pbmNsdWRlICIlIikgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiIC0tZGVmaW5l
cyAiTEFOR1VBR0VfSkFWQVNDUklQVD0xICQoRkVBVFVSRV9ERUZJTkVTKSIgLS1nZW5lcmF0b3Ig
SlMgJDwKIAorRGVyaXZlZFNvdXJjZXMvUmVtb3RlJS5jcHA6ICUuaWRsICQoU0NSSVBUU19CSU5E
SU5HUykgJChXZWJDb3JlKS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbQorCSQo
QU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAtSSQoV2ViQ29y
ZSkvaW5zcGVjdG9yICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5n
cy5wbCAkKElETF9QQVRIOiU9LS1pbmNsdWRlICIlIikgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNF
UykiIC0tZGVmaW5lcyAiTEFOR1VBR0VfSkFWQVNDUklQVD0xICQoRkVBVFVSRV9ERUZJTkVTKSIg
LS1nZW5lcmF0b3IgSW5zcGVjdG9yICQ8CisKIElETF9CSU5ESU5HU19KU19QVVJFIDo9IFwKIAlX
ZWJDb3JlL3N2Zy9FbGVtZW50VGltZUNvbnRyb2wuaWRsIFwKIAlXZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZFBhdGhEYXRhLmlkbCBcCkBAIC0zOTIxLDggKzM5MjgsMTEgQEAgSURMX0JJTkRJTkdTX0pT
X1BVUkUgOj0gXAogSURMX0JJTkRJTkdTX0pTIDo9ICQoZmlsdGVyLW91dCAkKElETF9CSU5ESU5H
U19KU19QVVJFKSwkKElETF9CSU5ESU5HUykpCiAKIHdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzICs9
ICQocGF0c3Vic3QgJS5pZGwsRGVyaXZlZFNvdXJjZXMvSlMlLmgsJChub3RkaXIgJChJRExfQklO
RElOR1MpKSkKK3dlYmNvcmVfYnVpbHRfbm9zb3VyY2VzICs9ICQocGF0c3Vic3QgJS5pZGwsRGVy
aXZlZFNvdXJjZXMvUmVtb3RlJS5oLCQobm90ZGlyICQoSU5TUEVDVE9SX0lOVEVSRkFDRVMpKSkK
IAotd2ViY29yZV9idWlsdF9ub3NvdXJjZXMgKz0gJChwYXRzdWJzdCAlLmlkbCxEZXJpdmVkU291
cmNlcy9KUyUuY3BwLCQobm90ZGlyICQoSURMX0JJTkRJTkdTX0pTKSkpCit3ZWJjb3JlX2J1aWx0
X2NwcCA9ICQocGF0c3Vic3QgJS5pZGwsRGVyaXZlZFNvdXJjZXMvSlMlLmNwcCwkKG5vdGRpciAk
KElETF9CSU5ESU5HU19KUykpKQord2ViY29yZV9idWlsdF9jcHAgKz0gJChwYXRzdWJzdCAlLmlk
bCxEZXJpdmVkU291cmNlcy9SZW1vdGUlLmNwcCwkKG5vdGRpciAkKElOU1BFQ1RPUl9JTlRFUkZB
Q0VTKSkpCit3ZWJjb3JlX2J1aWx0X25vc291cmNlcyArPSAkKHdlYmNvcmVfYnVpbHRfY3BwKQog
CiB3ZWJjb3JlX2J1aWx0X29iamVjdHMgPSA6PSAkKHBhdHN1YnN0ICUuY3BwLCUubG8sJCh3ZWJj
b3JlX2J1aWx0X25vc291cmNlcykpCiAKQEAgLTM5MzAsOSArMzk0MCw5IEBAICQod2ViY29yZV9i
dWlsdF9vYmplY3RzKTogQU1fQ1BQRkxBR1MrPSQoY29yZWtpdF9jcHBmbGFncykKIAogJCh3ZWJj
b3JlX2J1aWx0X29iamVjdHMpOiBBTV9DWFhGTEFHUys9JChsaWJ3ZWJraXRfMV8wX2xhX0NYWEZM
QUdTKQogCi1saWJXZWJDb3JlSlNfb2JqZWN0cyA6PSAkKHBhdHN1YnN0ICUuaWRsLERlcml2ZWRT
b3VyY2VzL0pTJS5sbywkKG5vdGRpciAkKElETF9CSU5ESU5HU19KUykpKQorbGliV2ViQ29yZUpT
X29iamVjdHMgOj0gJChwYXRzdWJzdCAlLmNwcCwlLmxvLCQod2ViY29yZV9idWlsdF9jcHApKQog
Ci1saWJXZWJDb3JlSlNfZGVwZmlsZXMgOj0gJChwYXRzdWJzdCAlLmlkbCxEZXJpdmVkU291cmNl
cy8kKERFUERJUikvSlMlLlBsbywkKG5vdGRpciAkKElETF9CSU5ESU5HU19KUykpKQorbGliV2Vi
Q29yZUpTX2RlcGZpbGVzIDo9ICQocGF0c3Vic3QgJS5jcHAsRGVyaXZlZFNvdXJjZXMvJChERVBE
SVIpLyUuUGxvLCQobm90ZGlyICQod2ViY29yZV9idWlsdF9jcHApKSkKIAogIyBPbGRlciBhdXRv
bWFrZSB2ZXJzaW9ucyAoMS43KSBwbGFjZSBQbG8gZmlsZXMgaW4gYSBkaWZmZXJlbnQgcGxhY2U6
CiBsaWJXZWJDb3JlSlNfZGVwZmlsZXMgKz0gJChwYXRzdWJzdCAlLmxvLCQoREVQRElSKS8lLlBs
bywkKGxpYldlYkNvcmVKU19vYmplY3RzKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5n
eXAvV2ViQ29yZS5neXAgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCmluZGV4IGNj
MjM2ZjUuLjE5ZDQyMmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5n
eXAKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApAQCAtNDUyLDYgKzQ1Miw0
MCBAQAogICAgICAgICAgIF0sCiAgICAgICAgIH0sCiAgICAgICAgIHsKKyAgICAgICAgICAnYWN0
aW9uX25hbWUnOiAnSW5zcGVjdG9yRnJvbnRlbmQyJywKKyAgICAgICAgICAnaW5wdXRzJzogWwor
ICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwnLAor
ICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbScsCisgICAg
ICAgICAgICAnLi4vYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0nLAorICAgICAgICAgICAg
Jy4uL2JpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtJywKKyAgICAgICAgICAgICcuLi9p
bnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbScsCisgICAgICAgICAgICAnLi4vaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGwnLAorICAgICAgICAgIF0sCisgICAgICAgICAg
J291dHB1dHMnOiBbCisgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Vi
Y29yZS9iaW5kaW5ncy9SZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuY3BwJywKKyAgICAgICAgICAg
ICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGluZ3MvUmVtb3RlSW5zcGVj
dG9yRnJvbnRlbmQyLmgnLAorICAgICAgICAgIF0sCisgICAgICAgICAgJ3ZhcmlhYmxlcyc6IHsK
KyAgICAgICAgICAgICdnZW5lcmF0b3JfaW5jbHVkZV9kaXJzJzogWworICAgICAgICAgICAgXSwK
KyAgICAgICAgICB9LAorICAgICAgICAgICdhY3Rpb24nOiBbCisgICAgICAgICAgICAncHl0aG9u
JywKKyAgICAgICAgICAgICdzY3JpcHRzL3J1bGVfYmluZGluZy5weScsCisgICAgICAgICAgICAn
UmVtb3RlJywKKyAgICAgICAgICAgICcuLi9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlk
bCcsCisgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2ViY29yZS9iaW5k
aW5ncycsCisgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L2Jp
bmRpbmdzJywKKyAgICAgICAgICAgICctLScsCisgICAgICAgICAgICAnPEAoX2lucHV0cyknLAor
ICAgICAgICAgICAgJy0tJywKKyAgICAgICAgICAgICctLWRlZmluZXMnLCAnTEFOR1VBR0VfSkFW
QVNDUklQVCcsCisgICAgICAgICAgICAnLS1nZW5lcmF0b3InLCAnSW5zcGVjdG9yJywKKyAgICAg
ICAgICAgICc8QChnZW5lcmF0b3JfaW5jbHVkZV9kaXJzKScKKyAgICAgICAgICBdLAorICAgICAg
ICAgICdtZXNzYWdlJzogJ0dlbmVyYXRpbmcgSW5zcGVjdG9yRnJvbnRlbmQyIGNsYXNzIGZyb20g
SW5zcGVjdG9yRnJvbnRlbmQyLmlkbCcsCisgICAgICAgIH0sCisgICAgICAgIHsKICAgICAgICAg
ICAnYWN0aW9uX25hbWUnOiAnWE1MTmFtZXMnLAogICAgICAgICAgICdpbnB1dHMnOiBbCiAgICAg
ICAgICAgICAnLi4vZG9tL21ha2VfbmFtZXMucGwnLApAQCAtNTg5LDYgKzYyMyw3IEBACiAgICAg
ICAgICAgJ2FjdGlvbic6IFsKICAgICAgICAgICAgICdweXRob24nLAogICAgICAgICAgICAgJ3Nj
cmlwdHMvcnVsZV9iaW5kaW5nLnB5JywKKyAgICAgICAgICAgICd2OCcsCiAgICAgICAgICAgICAn
PChSVUxFX0lOUFVUX1BBVEgpJywKICAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVf
RElSKS93ZWJjb3JlL2JpbmRpbmdzJywKICAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElB
VEVfRElSKS93ZWJraXQvYmluZGluZ3MnLApAQCAtNjUzLDYgKzY4OCw5IEBACiAgICAgICAgICMg
QWRkaXRpb25hbCAuY3BwIGZpbGVzIGZyb20gdGhlIHdlYmNvcmVfYmluZGluZ3Nfc291cmNlcyBy
dWxlcy4KICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NHcmFt
bWFyLmNwcCcsCiAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvWFBh
dGhHcmFtbWFyLmNwcCcsCisKKyAgICAgICAgIyBBZGRpdGlvbmFsIC5jcHAgZmlsZXMgZnJvbSB0
aGUgd2ViY29yZV9pbnNwZWN0b3Jfc291cmNlcyBsaXN0LgorICAgICAgICAnPChTSEFSRURfSU5U
RVJNRURJQVRFX0RJUikvd2ViY29yZS9iaW5kaW5ncy9SZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIu
Y3BwJywKICAgICAgIF0sCiAgICAgICAnY29uZGl0aW9ucyc6IFsKICAgICAgICAgWydqYXZhc2Ny
aXB0X2VuZ2luZT09InY4IicsIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXAvc2Ny
aXB0cy9ydWxlX2JpbmRpbmcucHkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvcnVsZV9i
aW5kaW5nLnB5CmluZGV4IDI0ZDE3OGYuLmNkZDQyOGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS5neXAvc2NyaXB0cy9ydWxlX2JpbmRpbmcucHkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5
cC9zY3JpcHRzL3J1bGVfYmluZGluZy5weQpAQCAtODIsOCArODIsOCBAQCBkZWYgbWFpbihhcmdz
KToKICAgICBhc3NlcnQgbGVuKHNlY3Rpb25zKSA9PSAzLCBzZWN0aW9ucwogICAgIChiYXNlLCBp
bnB1dHMsIG9wdGlvbnMpID0gc2VjdGlvbnMKIAotICAgIGFzc2VydCBsZW4oYmFzZSkgPT0gMywg
YmFzZQotICAgIChpbnB1dCwgY3BwZGlyLCBoZGlyKSA9IGJhc2UKKyAgICBhc3NlcnQgbGVuKGJh
c2UpID09IDQsIGJhc2UKKyAgICAocHJlZml4LCBpbnB1dCwgY3BwZGlyLCBoZGlyKSA9IGJhc2UK
IAogICAgIGFzc2VydCBsZW4oaW5wdXRzKSA+IDEsIGlucHV0cwogICAgIGdlbmVyYXRlQmluZGlu
Z3MgPSBpbnB1dHNbMF0KQEAgLTEyMiw3ICsxMjIsNyBAQCBkZWYgbWFpbihhcmdzKToKICAgICBp
ZiBjcHBkaXIgIT0gaGRpcjoKICAgICAgICAgaW5wdXRCYXNlbmFtZSA9IG9zLnBhdGguYmFzZW5h
bWUoaW5wdXQpCiAgICAgICAgIChyb290LCBleHQpID0gb3MucGF0aC5zcGxpdGV4dChpbnB1dEJh
c2VuYW1lKQotICAgICAgICBobmFtZSA9ICdWOCVzLmgnICUgcm9vdAorICAgICAgICBobmFtZSA9
ICclcyVzLmgnICUgKHByZWZpeC51cHBlcigpLCByb290KQogICAgICAgICBoc3JjID0gb3MucGF0
aC5qb2luKGNwcGRpciwgaG5hbWUpCiAgICAgICAgIGhkc3QgPSBvcy5wYXRoLmpvaW4oaGRpciwg
aG5hbWUpCiAgICAgICAgIHNodXRpbC5jb3B5ZmlsZShoc3JjLCBoZHN0KQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBmMmNkZDY3
Li4wZWI1NGZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMjcwLDYgKzI3MCw5IEBACiAgICAgICAgICAgICAneG1sL1hQYXRo
UmVzdWx0LmlkbCcsCiAgICAgICAgICAgICAneG1sL1hTTFRQcm9jZXNzb3IuaWRsJywKICAgICAg
ICAgXSwKKyAgICAgICAgJ3dlYmNvcmVfaW5zcGVjdG9yX2lkbF9maWxlcyc6IFsKKyAgICAgICAg
ICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbCcsCisgICAgICAgIF0sCiAgICAg
ICAgICd3ZWJjb3JlX3N2Z19iaW5kaW5nc19pZGxfZmlsZXMnOiBbCiAgICAgICAgICAgICAnc3Zn
L0VsZW1lbnRUaW1lQ29udHJvbC5pZGwnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBRWxlbWVudC5p
ZGwnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29yZS5w
cmkKaW5kZXggMjVjOTVmZi4uZGQyZTgyYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBy
aQorKysgYi9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC02MzgsNiArNjM4LDggQEAgSURMX0JJTkRJ
TkdTICs9IFwKICAgICB4bWwvWFBhdGhFdmFsdWF0b3IuaWRsIFwKICAgICB4bWwvWFNMVFByb2Nl
c3Nvci5pZGwKIAorSU5TUEVDVE9SX0lOVEVSRkFDRVMgPSBpbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmQyLmlkbAorCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfTUFUSE1MPTEpIHsKICAgICBt
YXRobWxuYW1lcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L01hdGhNTE5h
bWVzLmNwcAogICAgIG1hdGhtbG5hbWVzLmlucHV0ID0gTUFUSE1MX05BTUVTCkBAIC03MDMsNiAr
NzA1LDE4IEBAIGlkbC5kZXBlbmRzID0gJCRQV0QvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yLnBtIFwKICAgICAgICAgICAgICAgJCRQV0QvYmluZGluZ3Mvc2NyaXB0cy9JbkZpbGVzUGFy
c2VyLnBtCiBhZGRFeHRyYUNvbXBpbGVyKGlkbCkKIAorIyBHRU5FUkFUT1IgMjogaW5zcGVjdG9y
IGlkbCBjb21waWxlcgoraW5zcGVjdG9ySURMLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUn0vUmVtb3RlJHtRTUFLRV9GSUxFX0JBU0V9LmNwcAoraW5zcGVjdG9ySURMLmlucHV0
ID0gSU5TUEVDVE9SX0lOVEVSRkFDRVMKK2luc3BlY3RvcklETC53a1NjcmlwdCA9ICQkUFdEL2Jp
bmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwKK2luc3BlY3RvcklETC5jb21tYW5k
cyA9IHBlcmwgLUkkJFBXRC9iaW5kaW5ncy9zY3JpcHRzIC1JJCRQV0QvaW5zcGVjdG9yICQkaW5z
cGVjdG9ySURMLndrU2NyaXB0IC0tZGVmaW5lcyBcIiQke0ZFQVRVUkVfREVGSU5FU19KQVZBU0NS
SVBUfVwiIC0tZ2VuZXJhdG9yIEluc3BlY3RvciAtLW91dHB1dERpciAkJFdDX0dFTkVSQVRFRF9T
T1VSQ0VTX0RJUiAtLXByZXByb2Nlc3NvciBcIiQke1FNQUtFX01PQ30gLUVcIiAke1FNQUtFX0ZJ
TEVfTkFNRX0KK2luc3BlY3RvcklETC5kZXBlbmRzID0gJCRQV0QvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yLnBtIFwKKyAgICAgICAgICAgICAgJCRQV0QvaW5zcGVjdG9yL0NvZGVHZW5l
cmF0b3JJbnNwZWN0b3IucG0gXAorICAgICAgICAgICAgICAkJFBXRC9iaW5kaW5ncy9zY3JpcHRz
L0lETFBhcnNlci5wbSBcCisgICAgICAgICAgICAgICQkUFdEL2JpbmRpbmdzL3NjcmlwdHMvSURM
U3RydWN0dXJlLnBtIFwKKyAgICAgICAgICAgICAgJCRQV0QvYmluZGluZ3Mvc2NyaXB0cy9JbkZp
bGVzUGFyc2VyLnBtCithZGRFeHRyYUNvbXBpbGVyKGluc3BlY3RvcklETCkKKwogIyBHRU5FUkFU
T1IgMzogdG9rZW5pemVyIChmbGV4KQogdG9rZW5pemVyLm91dHB1dCA9ICQke1dDX0dFTkVSQVRF
RF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9LmNwcAogdG9rZW5pemVyLmlucHV0ID0g
VE9LRU5JWkVSCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA2MjRkNDMz
Li5kZWU2NWFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTIwMDY1
LDYgKzIwMDY1LDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQyLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQyLmgiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktp
dE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdNTEVsZW1lbnRG
YWN0b3J5LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkxNTMzMmYuLjE4YzRiNmMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDAzLDYgKzEwMDMsNyBAQAogCQk0
RjE1MzRFMDExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGMTUzNERGMTFCNTMzMDIw
MDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRGMzI4OUI1MTFBNDJBQUIwMDVBQkU3RSAvKiBJ
bnNwZWN0b3JWYWx1ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNEYzMjg5QjMxMUE0MkFBQjAwNUFCRTdFIC8qIEluc3BlY3RvclZhbHVlcy5jcHAg
Ki87IH07CiAJCTRGMzI4OUI2MTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGMzI4OUI0MTFB
NDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0RjRGNUZGQjExQ0JEMkUxMDBBMTg2QkYgLyog
UmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRGNEY1RkZBMTFDQkQyRDIwMEExODZCRiAvKiBSZW1vdGVJbnNw
ZWN0b3JGcm9udGVuZDIuY3BwICovOyB9OwogCQk0RkQ4RDBGMjExOUM3MThCMDAyRkE4MjUgLyog
U2NyaXB0R0NFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0RkQ4RDBGMDExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5jcHAgKi87
IH07CiAJCTRGRDhEMEYzMTE5QzcxOEIwMDJGQTgyNSAvKiBTY3JpcHRHQ0V2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkQ4RDBGMTExOUM3MThC
MDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5oICovOyB9OwogCQk1MTAxODQ2OTBCMDg2MDJBMDA0
QTgyNUYgLyogQ2FjaGVkUGFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTEwMTg0NjcwQjA4NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjYzMiw2ICs2
NjMzLDggQEAKIAkJNEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5
cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRpbmdCZWhhdmlvclR5
cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGMzI4OUIzMTFBNDJBQUIwMDVB
QkU3RSAvKiBJbnNwZWN0b3JWYWx1ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSW5zcGVjdG9yVmFsdWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNEYzMjg5QjQxMUE0MkFBQjAwNUFCRTdFIC8qIEluc3BlY3RvclZhbHVlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JWYWx1ZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNEY0RjVGRkExMUNCRDJEMjAwQTE4NkJGIC8qIFJlbW90ZUluc3Bl
Y3RvckZyb250ZW5kMi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0RjRGNUZGQzExQ0JEMzAxMDBBMTg2QkYgLyogUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUluc3BlY3RvckZyb250ZW5k
Mi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RkQ4RDBGMDExOUM3MThCMDAyRkE4
MjUgLyogU2NyaXB0R0NFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTY3JpcHRHQ0V2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEZE
OEQwRjExMTlDNzE4QjAwMkZBODI1IC8qIFNjcmlwdEdDRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0R0NFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTAxODQ2NzBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRQYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMTE5MCw2ICsxMTE5Myw4IEBACiAJCQkJOUZBMzdFRjcxMTcyRkQ5MzAw
QzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZS5oICovLAogCQkJCTlGQTM3RUY4MTE3MkZEOTMwMEM0
Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2RlLmNwcCAqLywKIAkJCQk5RkEzN0VGOTExNzJGRDkz
MDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5oICovLAorCQkJCTRGNEY1RkZBMTFDQkQy
RDIwMEExODZCRiAvKiBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuY3BwICovLAorCQkJCTRGNEY1
RkZDMTFDQkQzMDEwMEExODZCRiAvKiBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuaCAqLywKIAkJ
CSk7CiAJCQluYW1lID0gSW5zcGVjdG9yOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTIxNzYwLDYgKzIxNzY1LDcgQEAKIAkJCQk5N0RENEQ4NjBGREY0RDZFMDBFQ0Y5QTQgLyogWFNT
QXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyMDBCMTkwOTExQzI3N0Q5MDBEQ0NEM0Eg
LyogU2NyaXB0QnJlYWtwb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUQ4RjgxQzExQ0FC
OUU5MDBFOTNFNTQgLyogUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTRGNEY1RkZCMTFDQkQyRTEwMEExODZCRiAvKiBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENh
bGxTdGFjay5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5jcHAKaW5k
ZXggODZkZGNkMS4uYzliYjhiMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDYWxsU3RhY2suY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNr
LmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgU2NyaXB0Q2FsbFN0YWNrOjppbml0aWFsaXpl
KCkKICAgICBtX2luaXRpYWxpemVkID0gdHJ1ZTsKIH0KIAotYm9vbCBTY3JpcHRDYWxsU3RhY2s6
OnN0YWNrVHJhY2UoaW50LCBTY3JpcHRTdGF0ZSosIFNjcmlwdEFycmF5JikKK2Jvb2wgU2NyaXB0
Q2FsbFN0YWNrOjpzdGFja1RyYWNlKGludCwgY29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5PiYp
CiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDYWxsU3RhY2suaCBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNr
LmgKaW5kZXggNmNmNzY3OS4uZTQ2MWFjMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDYWxsU3RhY2suaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxT
dGFjay5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNs
dWRlICJTY3JpcHRTdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEV4ZWNTdGF0
ZTsKQEAgLTQ0LDYgKzQ1LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorICAgIGNsYXNzIEluc3BlY3RvckFycmF5OworCiAgICAgY2xhc3MgU2NyaXB0Q2FsbFN0
YWNrIDogcHVibGljIE5vbmNvcHlhYmxlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFNjcmlwdENh
bGxTdGFjayhKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHNraXBBcmd1bWVudENvdW50ID0gMCk7
CkBAIC01NCw3ICs1Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gZnJhbWUg
cmV0cmlldmFsIG1ldGhvZHMKICAgICAgICAgY29uc3QgU2NyaXB0Q2FsbEZyYW1lICZhdCh1bnNp
Z25lZCk7CiAgICAgICAgIHVuc2lnbmVkIHNpemUoKTsKLSAgICAgICAgc3RhdGljIGJvb2wgc3Rh
Y2tUcmFjZShpbnQsIFNjcmlwdFN0YXRlKiwgU2NyaXB0QXJyYXkmKTsKKyAgICAgICAgc3RhdGlj
IGJvb2wgc3RhY2tUcmFjZShpbnQsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mKTsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgaW5pdGlhbGl6ZSgpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0gYi9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQppbmRleCBmYmNlZTAyLi45MTRjYzQ2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQpAQCAtODMsNiArODMsNyBAQCBz
dWIgbmV3CiAgICAgJHVzZUxheWVyT25Ub3AgPSBzaGlmdDsKICAgICAkcHJlcHJvY2Vzc29yID0g
c2hpZnQ7CiAgICAgJHdyaXRlRGVwZW5kZW5jaWVzID0gc2hpZnQ7CisgICAgJHZlcmJvc2UgPSBz
aGlmdDsKIAogICAgIGJsZXNzKCRyZWZlcmVuY2UsICRvYmplY3QpOwogICAgIHJldHVybiAkcmVm
ZXJlbmNlOwpAQCAtMTAzLDEwICsxMDQsMTAgQEAgc3ViIFByb2Nlc3NEb2N1bWVudAogICAgICRk
ZWZpbmVzID0gc2hpZnQ7CiAKICAgICBteSAkaWZhY2VOYW1lID0gIkNvZGVHZW5lcmF0b3IiIC4g
JHVzZUdlbmVyYXRvcjsKKyAgICByZXF1aXJlICRpZmFjZU5hbWUgLiAiLnBtIjsKIAogICAgICMg
RHluYW1pY2FsbHkgbG9hZCBleHRlcm5hbCBjb2RlIGdlbmVyYXRpb24gcGVybCBtb2R1bGUKLSAg
ICByZXF1aXJlICRpZmFjZU5hbWUgLiAiLnBtIjsKLSAgICAkY29kZUdlbmVyYXRvciA9ICRpZmFj
ZU5hbWUtPm5ldygkb2JqZWN0LCAkdXNlT3V0cHV0RGlyLCAkdXNlTGF5ZXJPblRvcCwgJHByZXBy
b2Nlc3NvciwgJHdyaXRlRGVwZW5kZW5jaWVzKTsKKyAgICAkY29kZUdlbmVyYXRvciA9ICRpZmFj
ZU5hbWUtPm5ldygkb2JqZWN0LCAkdXNlT3V0cHV0RGlyLCAkdXNlTGF5ZXJPblRvcCwgJHByZXBy
b2Nlc3NvciwgJHdyaXRlRGVwZW5kZW5jaWVzLCAkdmVyYm9zZSk7CiAgICAgdW5sZXNzIChkZWZp
bmVkKCRjb2RlR2VuZXJhdG9yKSkgewogICAgICAgICBteSAkY2xhc3NlcyA9ICR1c2VEb2N1bWVu
dC0+Y2xhc3NlczsKICAgICAgICAgZm9yZWFjaCBteSAkY2xhc3MgKEAkY2xhc3NlcykgewpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbSBiL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KaW5kZXggM2RmOTZhYi4uZTI1MGE0ZCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCkBAIC0yNTksNyArMjU5LDcgQEAgc3Vi
IFBhcnNlSW50ZXJmYWNlCiAgICAgICAgIG15IEBpbnRlcmZhY2VNZXRob2RzID0gc3BsaXQoLzsv
LCAkaW50ZXJmYWNlRGF0YSk7CiAKICAgICAgICAgZm9yZWFjaCBteSAkbGluZSAoQGludGVyZmFj
ZU1ldGhvZHMpIHsKLSAgICAgICAgICAgIGlmICgkbGluZSA9fiAvYXR0cmlidXRlLykgeworICAg
ICAgICAgICAgaWYgKCRsaW5lID1+IC9cV2F0dHJpYnV0ZVxXLykgewogICAgICAgICAgICAgICAg
ICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjppbnRlcmZhY2VBdHRyaWJ1dGVTZWxlY3Rvci87CiAK
ICAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlVHlwZSA9IChkZWZpbmVkKCQxKSA/ICQxIDog
ZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgYi9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwKaW5kZXggNDRlZDRkMy4uZmVlMTFj
YiAxMDA3NTUKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdz
LnBsCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbApA
QCAtNDMsMjggKzQzLDMyIEBAIG15ICRnZW5lcmF0b3I7CiBteSAkZGVmaW5lczsKIG15ICRwcmVw
cm9jZXNzb3I7CiBteSAkd3JpdGVEZXBlbmRlbmNpZXM7CitteSAkdmVyYm9zZTsKIAogR2V0T3B0
aW9ucygnaW5jbHVkZT1zQCcgPT4gXEBpZGxEaXJlY3RvcmllcywKICAgICAgICAgICAgJ291dHB1
dERpcj1zJyA9PiBcJG91dHB1dERpcmVjdG9yeSwKICAgICAgICAgICAgJ2dlbmVyYXRvcj1zJyA9
PiBcJGdlbmVyYXRvciwKICAgICAgICAgICAgJ2RlZmluZXM9cycgPT4gXCRkZWZpbmVzLAogICAg
ICAgICAgICAncHJlcHJvY2Vzc29yPXMnID0+IFwkcHJlcHJvY2Vzc29yLAorICAgICAgICAgICAn
dmVyYm9zZScgPT4gXCR2ZXJib3NlLAogICAgICAgICAgICAnd3JpdGUtZGVwZW5kZW5jaWVzJyA9
PiBcJHdyaXRlRGVwZW5kZW5jaWVzKTsKIAogbXkgJGlkbEZpbGUgPSAkQVJHVlswXTsKIAogZGll
KCdNdXN0IHNwZWNpZnkgaW5wdXQgZmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkaWRsRmlsZSk7Ci1k
aWUoJ011c3Qgc3BlY2lmeSBJREwgc2VhcmNoIHBhdGguJykgdW5sZXNzIEBpZGxEaXJlY3Rvcmll
czsKIGRpZSgnTXVzdCBzcGVjaWZ5IGdlbmVyYXRvcicpIHVubGVzcyBkZWZpbmVkKCRnZW5lcmF0
b3IpOwogZGllKCdNdXN0IHNwZWNpZnkgb3V0cHV0IGRpcmVjdG9yeS4nKSB1bmxlc3MgZGVmaW5l
ZCgkb3V0cHV0RGlyZWN0b3J5KTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGRlZmluZXMnKSB1bmxlc3Mg
ZGVmaW5lZCgkZGVmaW5lcyk7CiAKK2lmICgkdmVyYm9zZSkgeworICAgIHByaW50ICIkZ2VuZXJh
dG9yOiAkaWRsRmlsZVxuIjsKK30KICRkZWZpbmVzID1+IHMvXlxzK3xccyskLy9nOyAjIHRyaW0g
d2hpdGVzcGFjZQogCiAjIFBhcnNlIHRoZSBnaXZlbiBJREwgZmlsZS4KLW15ICRwYXJzZXIgPSBJ
RExQYXJzZXItPm5ldygxKTsKK215ICRwYXJzZXIgPSBJRExQYXJzZXItPm5ldyghJHZlcmJvc2Up
OwogbXkgJGRvY3VtZW50ID0gJHBhcnNlci0+UGFyc2UoJGlkbEZpbGUsICRkZWZpbmVzLCAkcHJl
cHJvY2Vzc29yKTsKIAogIyBHZW5lcmF0ZSBkZXNpcmVkIG91dHB1dCBmb3IgZ2l2ZW4gSURMIGZp
bGUuCi1teSAkY29kZUdlbiA9IENvZGVHZW5lcmF0b3ItPm5ldyhcQGlkbERpcmVjdG9yaWVzLCAk
Z2VuZXJhdG9yLCAkb3V0cHV0RGlyZWN0b3J5LCAwLCAkcHJlcHJvY2Vzc29yLCAkd3JpdGVEZXBl
bmRlbmNpZXMpOworbXkgJGNvZGVHZW4gPSBDb2RlR2VuZXJhdG9yLT5uZXcoXEBpZGxEaXJlY3Rv
cmllcywgJGdlbmVyYXRvciwgJG91dHB1dERpcmVjdG9yeSwgMCwgJHByZXByb2Nlc3NvciwgJHdy
aXRlRGVwZW5kZW5jaWVzLCAkdmVyYm9zZSk7CiAkY29kZUdlbi0+UHJvY2Vzc0RvY3VtZW50KCRk
b2N1bWVudCwgJGRlZmluZXMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3Jp
cHRDYWxsU3RhY2suY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2suY3Bw
CmluZGV4IDg5ODA5YjIuLmNkYzk2NjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvdjgv
U2NyaXB0Q2FsbFN0YWNrLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxT
dGFjay5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJTY3JpcHRDYWxsU3RhY2suaCIKIAorI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2lu
Y2x1ZGUgIlNjcmlwdFNjb3BlLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIlNjcmlwdERlYnVnU2VydmVyLmgiCkBAIC05MywxMyArOTQsMzAgQEAgY29uc3QgU2Ny
aXB0Q2FsbEZyYW1lJiBTY3JpcHRDYWxsU3RhY2s6OmF0KHVuc2lnbmVkIGluZGV4KSBjb25zdAog
ICAgIHJldHVybiBtX2xhc3RDYWxsZXI7CiB9CiAKLWJvb2wgU2NyaXB0Q2FsbFN0YWNrOjpzdGFj
a1RyYWNlKGludCBmcmFtZUxpbWl0LCBTY3JpcHRTdGF0ZSogc3RhdGUsIFNjcmlwdEFycmF5JiBz
dGFja1RyYWNlKQorYm9vbCBTY3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UoaW50IGZyYW1lTGlt
aXQsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIHN0YWNrVHJhY2UpCiB7Ci0gICAgU2Ny
aXB0U2NvcGUgc2NvcGUoc3RhdGUpOworICAgIGlmICghdjg6OkNvbnRleHQ6OkluQ29udGV4dCgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29u
dGV4dCA9IHY4OjpDb250ZXh0OjpHZXRDdXJyZW50KCk7CisgICAgaWYgKGNvbnRleHQuSXNFbXB0
eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOwor
ICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUoY29udGV4dCk7CiAgICAgdjg6Okhh
bmRsZTx2ODo6U3RhY2tUcmFjZT4gdHJhY2Uodjg6OlN0YWNrVHJhY2U6OkN1cnJlbnRTdGFja1Ry
YWNlKGZyYW1lTGltaXQpKTsKLSAgICBpZiAodHJhY2UuSXNFbXB0eSgpIHx8ICF0cmFjZS0+R2V0
RnJhbWVDb3VudCgpKQorICAgIGludCBmcmFtZUNvdW50ID0gdHJhY2UtPkdldEZyYW1lQ291bnQo
KTsKKyAgICBpZiAodHJhY2UuSXNFbXB0eSgpIHx8ICFmcmFtZUNvdW50KQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgc3RhY2tUcmFjZSA9IFNjcmlwdEFycmF5KHN0YXRlLCB0cmFjZS0+QXNB
cnJheSgpKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGZyYW1lQ291bnQ7ICsraSkgeworICAg
ICAgICB2ODo6SGFuZGxlPHY4OjpTdGFja0ZyYW1lPiBmcmFtZSA9IHRyYWNlLT5HZXRGcmFtZShp
KTsKKyAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZnJhbWVPYmplY3QgPSBJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgICAgICB2ODo6TG9jYWw8djg6OlN0cmluZz4gc2NyaXB0
TmFtZSA9IGZyYW1lLT5HZXRTY3JpcHROYW1lKCk7CisgICAgICAgIGZyYW1lT2JqZWN0LT5zZXRT
dHJpbmcoInNjcmlwdE5hbWUiLCBzY3JpcHROYW1lLklzRW1wdHkoKSA/ICIiIDogdG9XZWJDb3Jl
U3RyaW5nKHNjcmlwdE5hbWUpKTsKKyAgICAgICAgdjg6OkxvY2FsPHY4OjpTdHJpbmc+IGZ1bmN0
aW9uTmFtZSA9IGZyYW1lLT5HZXRGdW5jdGlvbk5hbWUoKTsKKyAgICAgICAgZnJhbWVPYmplY3Qt
PnNldFN0cmluZygiZnVuY3Rpb25OYW1lIiwgZnVuY3Rpb25OYW1lLklzRW1wdHkoKSA/ICIiIDog
dG9XZWJDb3JlU3RyaW5nKGZ1bmN0aW9uTmFtZSkpOworICAgICAgICBmcmFtZU9iamVjdC0+c2V0
TnVtYmVyKCJsaW5lTnVtYmVyIiwgZnJhbWUtPkdldExpbmVOdW1iZXIoKSk7CisgICAgICAgIGZy
YW1lT2JqZWN0LT5zZXROdW1iZXIoImNvbHVtbiIsIGZyYW1lLT5HZXRDb2x1bW4oKSk7CisgICAg
ICAgIHN0YWNrVHJhY2UtPnB1c2goZnJhbWVPYmplY3QpOworICAgIH0KICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2su
aCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q2FsbFN0YWNrLmgKaW5kZXggOGIwMjgxNC4u
ODBkNWY3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2su
aAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFjay5oCkBAIC0zNiw2ICsz
Niw3IEBACiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5o
IgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
IAogbmFtZXNwYWNlIHY4IHsKICAgICBjbGFzcyBBcmd1bWVudHM7CkBAIC00Myw2ICs0NCw4IEBA
IG5hbWVzcGFjZSB2OCB7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSW5zcGVjdG9y
QXJyYXk7CisKIGNsYXNzIFNjcmlwdENhbGxTdGFjayA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFNjcmlwdENhbGxTdGFjayogY3JlYXRlKGNvbnN0IHY4OjpBcmd1
bWVudHMmLCB1bnNpZ25lZCBza2lwQXJndW1lbnRDb3VudCA9IDApOwpAQCAtNTcsNyArNjAsNyBA
QCBwdWJsaWM6CiAgICAgLy8gICBsaW5lTnVtYmVyOiA8MSBiYXNlZCBsaW5lIG51bWJlcj4KICAg
ICAvLyAgIGNvbHVtbjogPDEgYmFzZWQgY29sdW1uIG9mZnNldCBvbiB0aGUgbGluZT4KICAgICAv
LyB9Ci0gICAgc3RhdGljIGJvb2wgc3RhY2tUcmFjZShpbnQgZnJhbWVMaW1pdCwgU2NyaXB0U3Rh
dGUqIHN0YXRlLCBTY3JpcHRBcnJheSYgc3RhY2tUcmFjZSk7CisgICAgc3RhdGljIGJvb2wgc3Rh
Y2tUcmFjZShpbnQgZnJhbWVMaW1pdCwgY29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5PiYgc3Rh
Y2tUcmFjZSk7CiAKICAgICBjb25zdCBTY3JpcHRDYWxsRnJhbWUmIGF0KHVuc2lnbmVkKSBjb25z
dDsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50IHJldHJpZXZpbmcgYW5kIHN0b3JpbmcgY2FsbCBz
dGFjayB0cmFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvcklu
c3BlY3Rvci5wbSBiL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVjZGE1OQotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KQEAgLTAs
MCArMSwyOTEgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDEwIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUuCisKK3BhY2thZ2UgQ29kZUdlbmVyYXRvckluc3BlY3RvcjsKKwordXNlIHN0cmlj
dDsKKwordXNlIEZpbGU6OnN0YXQ7CisKK215ICV0eXBlVHJhbnNmb3JtOworJHR5cGVUcmFuc2Zv
cm17Ikluc3BlY3RvckNsaWVudCJ9ID0geworICAgICJmb3J3YXJkIiA9PiAiSW5zcGVjdG9yQ2xp
ZW50IiwKKyAgICAiaGVhZGVyIiA9PiAiSW5zcGVjdG9yQ2xpZW50LmgiLAorfTsKKyR0eXBlVHJh
bnNmb3JteyJSZWZQdHIifSA9IHsKKyAgICAiZm9yd2FyZEhlYWRlciIgPT4gInd0Zi9SZWZQdHIu
aCIsCit9OworJHR5cGVUcmFuc2Zvcm17Ik9iamVjdCJ9ID0geworICAgICJwYXJhbSIgPT4gImNv
bnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiIsCisgICAgInJldFZhbCIgPT4gIlBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiIsCisgICAgImZvcndhcmQiID0+ICJJbnNwZWN0b3JPYmplY3Qi
LAorICAgICJoZWFkZXIiID0+ICJJbnNwZWN0b3JWYWx1ZXMuaCIsCisgICAgInB1c2giID0+ICJw
dXNoIgorfTsKKyR0eXBlVHJhbnNmb3JteyJBcnJheSJ9ID0geworICAgICJwYXJhbSIgPT4gImNv
bnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIiwKKyAgICAicmV0VmFsIiA9PiAiUGFzc1JlZlB0
cjxJbnNwZWN0b3JBcnJheT4iLAorICAgICJmb3J3YXJkIiA9PiAiSW5zcGVjdG9yQXJyYXkiLAor
ICAgICJoZWFkZXIiID0+ICJJbnNwZWN0b3JWYWx1ZXMuaCIsCisgICAgInB1c2giID0+ICJwdXNo
IgorfTsKKyR0eXBlVHJhbnNmb3JteyJWYWx1ZSJ9ID0geworICAgICJwYXJhbSIgPT4gImNvbnN0
IFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4mIiwKKyAgICAicmV0VmFsIiA9PiAiUGFzc1JlZlB0cjxJ
bnNwZWN0b3JWYWx1ZT4iLAorICAgICJmb3J3YXJkIiA9PiAiSW5zcGVjdG9yVmFsdWUiLAorICAg
ICJoZWFkZXIiID0+ICJJbnNwZWN0b3JWYWx1ZXMuaCIsCisgICAgInB1c2giID0+ICJwdXNoIgor
fTsKKyR0eXBlVHJhbnNmb3JteyJTdHJpbmcifSA9IHsKKyAgICAicGFyYW0iID0+ICJjb25zdCBT
dHJpbmcmIiwKKyAgICAicmV0VmFsIiA9PiAiU3RyaW5nIiwKKyAgICAiZm9yd2FyZCIgPT4gIlN0
cmluZyIsCisgICAgImhlYWRlciIgPT4gIlBsYXRmb3JtU3RyaW5nLmgiLAorICAgICJwdXNoIiA9
PiAicHVzaFN0cmluZyIKK307CiskdHlwZVRyYW5zZm9ybXsibG9uZyJ9ID0geworICAgICJwYXJh
bSIgPT4gImxvbmciLAorICAgICJyZXRWYWwiID0+ICJsb25nIiwKKyAgICAiZm9yd2FyZCIgPT4g
IiIsCisgICAgImhlYWRlciIgPT4gIiIsCisgICAgInB1c2giID0+ICJwdXNoTnVtYmVyIgorfTsK
KyR0eXBlVHJhbnNmb3JteyJ1bnNpZ25lZCBsb25nIn0gPSB7CisgICAgInBhcmFtIiA9PiAidW5z
aWduZWQgbG9uZyIsCisgICAgInJldFZhbCIgPT4gInVuc2lnbmVkIGxvbmciLAorICAgICJmb3J3
YXJkIiA9PiAiIiwKKyAgICAiaGVhZGVyIiA9PiAiIiwKKyAgICAicHVzaCIgPT4gInB1c2hOdW1i
ZXIiCit9OworJHR5cGVUcmFuc2Zvcm17ImJvb2xlYW4ifSA9IHsKKyAgICAicGFyYW0iID0+ICJi
b29sIiwKKyAgICAicmV0VmFsIj0+ICJib29sIiwKKyAgICAiZm9yd2FyZCIgPT4gIiIsCisgICAg
ImhlYWRlciIgPT4gIiIsCisgICAgInB1c2giID0+ICJwdXNoQm9vbCIKK307CiskdHlwZVRyYW5z
Zm9ybXsidm9pZCJ9ID0geworICAgICJyZXRWYWwiID0+ICJ2b2lkIiwKKyAgICAiZm9yd2FyZCIg
PT4gIiIsCisgICAgImhlYWRlciIgPT4gIiIKK307CisKKyMgRGVmYXVsdCBMaWNlbnNlIFRlbXBs
YXRlcworCitteSAkbGljZW5zZVRlbXBsYXRlID0gPDwgIkVPRiI7CisvLyBDb3B5cmlnaHQgKGMp
IDIwMTAgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorRU9GCisKK215ICRjb2Rl
R2VuZXJhdG9yOworbXkgJG91dHB1dERpcjsKK215ICR3cml0ZURlcGVuZGVuY2llczsKK215ICR2
ZXJib3NlOworCitteSAkbmFtZXNwYWNlOworbXkgJGZpbGVOYW1lOworbXkgJWRpc2NvdmVyZWRU
eXBlczsKKworbXkgQGNsYXNzRGVmaW5pdGlvbjsKK215IEBmdW5jdGlvbkRlZmluaXRpb25zOwor
CitzdWIgdHlwZVNwZWMKK3sKKyAgICBteSAkcGFyYW0gPSBzaGlmdDsKKyAgICBteSAkcmV0VmFs
dWUgPSBzaGlmdDsKKworICAgIG15ICR0eXBlID0gJHR5cGVUcmFuc2Zvcm17JHBhcmFtLT50eXBl
fS0+eyRyZXRWYWx1ZSA/ICJyZXRWYWwiIDogInBhcmFtIn07CisgICAgJGRpc2NvdmVyZWRUeXBl
c3skcGFyYW0tPnR5cGV9ID0gMTsKKyAgICAkdHlwZSBvciBkaWUgImludmFsaWQgdHlwZSBzcGVj
aWZpY2F0aW9uIFwiIiAuICRwYXJhbS0+dHlwZSAuIlwiIjsKKyAgICByZXR1cm4gJHR5cGU7Cit9
CisKKyMgRGVmYXVsdCBjb25zdHJ1Y3Rvcgorc3ViIG5ldworeworICAgIG15ICRvYmplY3QgPSBz
aGlmdDsKKyAgICBteSAkcmVmZXJlbmNlID0geyB9OworCisgICAgJGNvZGVHZW5lcmF0b3IgPSBz
aGlmdDsKKyAgICAkb3V0cHV0RGlyID0gc2hpZnQ7CisgICAgc2hpZnQ7ICMgJHVzZUxheWVyT25U
b3AKKyAgICBzaGlmdDsgIyAkcHJlcHJvY2Vzc29yCisgICAgJHdyaXRlRGVwZW5kZW5jaWVzID0g
c2hpZnQ7CisgICAgJHZlcmJvc2UgPSBzaGlmdDsKKworICAgIGJsZXNzKCRyZWZlcmVuY2UsICRv
YmplY3QpOworICAgIHJldHVybiAkcmVmZXJlbmNlOworfQorCisjIFBhcmFtczogJ2lkbERvY3Vt
ZW50JyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZU1vZHVsZQoreworICAgIG15ICRvYmplY3QgPSBzaGlm
dDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgICRuYW1lc3BhY2UgPSAkZGF0YU5v
ZGUtPm1vZHVsZTsKK30KKworIyBQYXJhbXM6ICdpZGxEb2N1bWVudCcgc3RydWN0CitzdWIgR2Vu
ZXJhdGVJbnRlcmZhY2UKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGludGVy
ZmFjZSA9IHNoaWZ0OworICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7CisKKyAgICBteSAkY2xhc3NO
YW1lID0gJGludGVyZmFjZS0+bmFtZTsKKyAgICAkZmlsZU5hbWUgPSAkY2xhc3NOYW1lOworCisg
ICAgJGRpc2NvdmVyZWRUeXBlc3siU3RyaW5nIn0gPSAxOworICAgICRkaXNjb3ZlcmVkVHlwZXN7
Ikluc3BlY3RvckNsaWVudCJ9ID0gMTsKKyAgICAkZGlzY292ZXJlZFR5cGVzeyJSZWZQdHIifSA9
IDE7CisKKyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICJjbGFzcyAkY2xhc3NOYW1lIHsiKTsK
KyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICJwdWJsaWM6Iik7CisgICAgcHVzaChAY2xhc3NE
ZWZpbml0aW9uLCAiICAgICRjbGFzc05hbWUoSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGll
bnQpIDogbV9pbnNwZWN0b3JDbGllbnQoaW5zcGVjdG9yQ2xpZW50KSB7IH0iKTsKKyAgICBwdXNo
KEBjbGFzc0RlZmluaXRpb24sICIiKTsKKyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sIGdlbmVy
YXRlRnVuY3Rpb25zRGVjbGFyYXRpb25zKCRpbnRlcmZhY2UsICRjbGFzc05hbWUpKTsKKyAgICBw
dXNoKEBjbGFzc0RlZmluaXRpb24sICIiKTsKKyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICJw
cml2YXRlOiIpOworICAgIHB1c2goQGNsYXNzRGVmaW5pdGlvbiwgIiAgICB2b2lkIHNlbmRTaW1w
bGVNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmKTsiKTsKKyAgICBwdXNoKEBjbGFzc0Rl
ZmluaXRpb24sICIgICAgSW5zcGVjdG9yQ2xpZW50KiBtX2luc3BlY3RvckNsaWVudDsiKTsKKyAg
ICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICJ9OyIpOworCisgICAgcHVzaChAZnVuY3Rpb25EZWZp
bml0aW9ucywgInZvaWQgJHtjbGFzc05hbWV9OjpzZW5kU2ltcGxlTWVzc2FnZVRvRnJvbnRlbmQo
Y29uc3QgU3RyaW5nJiBmdW5jdGlvbk5hbWUpIik7CisgICAgcHVzaChAZnVuY3Rpb25EZWZpbml0
aW9ucywgInsiKTsKKyAgICBwdXNoKEBmdW5jdGlvbkRlZmluaXRpb25zLCAiICAgIFJlZlB0cjxJ
bnNwZWN0b3JBcnJheT4gYXJndW1lbnRzID0gSW5zcGVjdG9yQXJyYXk6OmNyZWF0ZSgpOyIpOwor
ICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5pdGlvbnMsICIgICAgYXJndW1lbnRzLT5wdXNoU3RyaW5n
KGZ1bmN0aW9uTmFtZSk7Iik7CisgICAgcHVzaChAZnVuY3Rpb25EZWZpbml0aW9ucywgIiAgICBt
X2luc3BlY3RvckNsaWVudC0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGFyZ3VtZW50cy0+dG9KU09O
U3RyaW5nKCkpOyIpOworICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5pdGlvbnMsICJ9Iik7Cit9CisK
K3N1YiBnZW5lcmF0ZUZ1bmN0aW9uc0RlY2xhcmF0aW9ucworeworICAgIG15ICRpbnRlcmZhY2Ug
PSBzaGlmdDsKKyAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CisKKyAgICBteSBAZnVuY3Rpb25E
ZWNsYXJhdGlvbnM7CisgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+ZnVu
Y3Rpb25zfSkgeworICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPm5hbWU7CisgICAgICAgIG15ICRhYnN0cmFjdCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiYWJzdHJhY3QifTsKKyAgICAgICAgbXkgJGFyZ3VtZW50cyA9
ICIiOworICAgICAgICBmb3JlYWNoIG15ICRwYXJhbWV0ZXIgKEB7JGZ1bmN0aW9uLT5wYXJhbWV0
ZXJzfSkgeworICAgICAgICAgICAgJHBhcmFtZXRlci0+bmFtZSBvciBkaWUgImVtcHR5IGFyZ3Vt
ZW50IG5hbWUgc3BlY2lmaWVkIGZvciBmdW5jdGlvbiAke2NsYXNzTmFtZX06OiRmdW5jdGlvbk5h
bWUgYW5kIGFyZ3VtZW50IHR5cGUgIiAuICRwYXJhbWV0ZXItPnR5cGU7CisgICAgICAgICAgICAk
YXJndW1lbnRzID0gJGFyZ3VtZW50cyAuICIsICIgaWYgKCRhcmd1bWVudHMpOworICAgICAgICAg
ICAgJGFyZ3VtZW50cyA9ICRhcmd1bWVudHMgLiB0eXBlU3BlYygkcGFyYW1ldGVyKSAuICIgIiAu
ICRwYXJhbWV0ZXItPm5hbWU7CisgICAgICAgIH0KKyAgICAgICAgbXkgJHNpZ25hdHVyZSA9ICIg
ICAgIiAuIHR5cGVTcGVjKCRmdW5jdGlvbi0+c2lnbmF0dXJlLCAxKSAuICIgJGZ1bmN0aW9uTmFt
ZSgkYXJndW1lbnRzKSI7CisgICAgICAgIHB1c2goQGZ1bmN0aW9uRGVjbGFyYXRpb25zLCAkYWJz
dHJhY3QgPyAiJHNpZ25hdHVyZSA9IDA7IiA6ICIkc2lnbmF0dXJlOyIpOworICAgICAgICBwdXNo
KEBmdW5jdGlvbkRlZmluaXRpb25zLCBnZW5lcmF0ZUZ1bmN0aW9uc0ltcGwoJGNsYXNzTmFtZSwg
JGZ1bmN0aW9uLCAkYXJndW1lbnRzKSkgaWYgISRhYnN0cmFjdDsKKyAgICB9CisgICAgcmV0dXJu
IEBmdW5jdGlvbkRlY2xhcmF0aW9uczsKK30KKworc3ViIGdlbmVyYXRlSGVhZGVyCit7CisgICAg
bXkgQGhlYWRlckNvbnRlbnQgPSBzcGxpdCgiXHIiLCAkbGljZW5zZVRlbXBsYXRlKTsKKyAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiI2lmbmRlZiAke2ZpbGVOYW1lfV9oIik7CisgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiNkZWZpbmUgJHtmaWxlTmFtZX1faCIpOworICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIiKTsKKworICAgIG15IEBmb3J3YXJkSGVhZGVyczsKKyAgICBmb3JlYWNoIG15
ICR0eXBlIChrZXlzICVkaXNjb3ZlcmVkVHlwZXMpIHsKKyAgICAgICAgcHVzaChAZm9yd2FyZEhl
YWRlcnMsICIjaW5jbHVkZSA8IiAuICR0eXBlVHJhbnNmb3JteyR0eXBlfS0+eyJmb3J3YXJkSGVh
ZGVyIn0gLiAiPiIpIGlmICEkdHlwZVRyYW5zZm9ybXskdHlwZX0tPnsiZm9yd2FyZEhlYWRlciJ9
IGVxICAiIjsKKyAgICB9CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgc29ydCBAZm9yd2FyZEhl
YWRlcnMpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIiKTsKKyAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAibmFtZXNwYWNlICRuYW1lc3BhY2UgeyIpOworICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIiKTsKKworICAgIG15IEBmb3J3YXJkRGVjbGFyYXRpb25zOworICAgIGZvcmVhY2ggbXkg
JHR5cGUgKGtleXMgJWRpc2NvdmVyZWRUeXBlcykgeworICAgICAgICBwdXNoKEBmb3J3YXJkRGVj
bGFyYXRpb25zLCAiY2xhc3MgIiAuICR0eXBlVHJhbnNmb3JteyR0eXBlfS0+eyJmb3J3YXJkIn0g
LiAiOyIpIGlmICEkdHlwZVRyYW5zZm9ybXskdHlwZX0tPnsiZm9yd2FyZCJ9IGVxICAiIjsKKyAg
ICB9CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgc29ydCBAZm9yd2FyZERlY2xhcmF0aW9ucyk7
CisKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgQGNsYXNzRGVmaW5pdGlvbik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiIpOworICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICJ9IC8vIG5hbWVzcGFjZSAkbmFtZXNwYWNlIik7CisgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5k
aWYgLy8gIWRlZmluZWQoJHtmaWxlTmFtZX1faCkiKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiIik7CisgICAgcmV0dXJuIEBoZWFkZXJDb250ZW50OworfQorCitzdWIgZ2VuZXJhdGVTb3Vy
Y2UKK3sKKyAgICBteSBAc291cmNlQ29udGVudCA9IHNwbGl0KCJcciIsICRsaWNlbnNlVGVtcGxh
dGUpOworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICJcbiNpbmNsdWRlIFwiY29uZmlnLmhcIiIp
OworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICIjaW5jbHVkZSBcIlJlbW90ZSRmaWxlTmFtZS5o
XCIiKTsKKyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiIik7CisgICAgcHVzaChAc291cmNlQ29u
dGVudCwgIiNpZiBFTkFCTEUoSU5TUEVDVE9SKSIpOworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQs
ICIiKTsKKworICAgIG15ICVoZWFkZXJzOworICAgIGZvcmVhY2ggbXkgJHR5cGUgKGtleXMgJWRp
c2NvdmVyZWRUeXBlcykgeworICAgICAgICAkaGVhZGVyc3siI2luY2x1ZGUgXCIiIC4gJHR5cGVU
cmFuc2Zvcm17JHR5cGV9LT57ImhlYWRlciJ9IC4gIlwiIn0gPSAxIGlmICEkdHlwZVRyYW5zZm9y
bXskdHlwZX0tPnsiaGVhZGVyIn0gZXEgICIiOworICAgIH0KKyAgICBwdXNoKEBzb3VyY2VDb250
ZW50LCBzb3J0IGtleXMgJWhlYWRlcnMpOworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICIiKTsK
KyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAibmFtZXNwYWNlICRuYW1lc3BhY2UgeyIpOworICAg
IHB1c2goQHNvdXJjZUNvbnRlbnQsICIiKTsKKyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCBAZnVu
Y3Rpb25EZWZpbml0aW9ucyk7CisgICAgcHVzaChAc291cmNlQ29udGVudCwgIiIpOworICAgIHB1
c2goQHNvdXJjZUNvbnRlbnQsICJ9IC8vIG5hbWVzcGFjZSAkbmFtZXNwYWNlIik7CisgICAgcHVz
aChAc291cmNlQ29udGVudCwgIiIpOworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICIjZW5kaWYg
Ly8gRU5BQkxFKElOU1BFQ1RPUikiKTsKKyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiIik7Cisg
ICAgcmV0dXJuIEBzb3VyY2VDb250ZW50OworfQorCitzdWIgZ2VuZXJhdGVGdW5jdGlvbnNJbXBs
Cit7CisgICAgbXkgJGNsYXNzTmFtZSA9IHNoaWZ0OworICAgIG15ICRmdW5jdGlvbiA9IHNoaWZ0
OworICAgIG15ICRhcmd1bWVudHMgPSBzaGlmdDsKKworICAgIG15IEBmdW5jOworCisgICAgbXkg
JGZ1bmN0aW9uTmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOworCisgICAgcHVzaChA
ZnVuYywgdHlwZVNwZWMoJGZ1bmN0aW9uLT5zaWduYXR1cmUsIDEpIC4gIiAiIC4gJGNsYXNzTmFt
ZSAuICI6OiIgLiAkZnVuY3Rpb25OYW1lIC4gIigiIC4gJGFyZ3VtZW50cyAuICIpIik7CisgICAg
cHVzaChAZnVuYywgInsiKTsKKworICAgIG15ICRudW1QYXJhbWV0ZXJzID0gQHskZnVuY3Rpb24t
PnBhcmFtZXRlcnN9OworICAgIGlmICgkbnVtUGFyYW1ldGVycyA+IDApIHsKKyAgICAgICAgcHVz
aChAZnVuYywgIiAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGFyZ3VtZW50cyA9IEluc3BlY3Rv
ckFycmF5OjpjcmVhdGUoKTsiKTsKKyAgICAgICAgcHVzaChAZnVuYywgIiAgICBhcmd1bWVudHMt
PnB1c2hTdHJpbmcoXCIkZnVuY3Rpb25OYW1lXCIpOyIpOworICAgICAgICBmb3JlYWNoIG15ICRw
YXJhbWV0ZXIgKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAgbXkgJHB1
c2hDYWxsID0gICR0eXBlVHJhbnNmb3JteyRwYXJhbWV0ZXItPnR5cGV9LT57InB1c2gifTsKKyAg
ICAgICAgICAgIHB1c2goQGZ1bmMsICIgICAgYXJndW1lbnRzLT4kcHVzaENhbGwoIiAuICRwYXJh
bWV0ZXItPm5hbWUgLiAiKTsiKTsKKyAgICAgICAgfQorICAgICAgICBwdXNoKEBmdW5jLCAiICAg
IG1faW5zcGVjdG9yQ2xpZW50LT5zZW5kTWVzc2FnZVRvRnJvbnRlbmQoYXJndW1lbnRzLT50b0pT
T05TdHJpbmcoKSk7Iik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHVzaChAZnVuYywgIiAgICBz
ZW5kU2ltcGxlTWVzc2FnZVRvRnJvbnRlbmQoXCIkZnVuY3Rpb25OYW1lXCIpOyIpOworICAgIH0K
KworICAgIHB1c2goQGZ1bmMsICJ9Iik7CisgICAgcHVzaChAZnVuYywgIiIpOworICAgIHJldHVy
biBAZnVuYzsKK30KKworc3ViIGZpbmlzaAoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKwor
ICAgIG9wZW4obXkgJFNPVVJDRSwgIj4kb3V0cHV0RGlyL1JlbW90ZSRmaWxlTmFtZS5jcHAiKSB8
fCBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkb3V0cHV0RGlyL1JlbW90ZSRmaWxlTmFtZS5jcHAi
OworICAgIG9wZW4obXkgJEhFQURFUiwgIj4kb3V0cHV0RGlyL1JlbW90ZSRmaWxlTmFtZS5oIikg
fHwgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJG91dHB1dERpci9SZW1vdGUkZmlsZU5hbWUuaCI7
CisKKyAgICBwcmludCAkU09VUkNFIGpvaW4oIlxuIiwgZ2VuZXJhdGVTb3VyY2UoKSk7CisgICAg
Y2xvc2UoJFNPVVJDRSk7CisgICAgdW5kZWYoJFNPVVJDRSk7CisKKyAgICBwcmludCAkSEVBREVS
IGpvaW4oIlxuIiwgZ2VuZXJhdGVIZWFkZXIoKSk7CisgICAgY2xvc2UoJEhFQURFUik7CisgICAg
dW5kZWYoJEhFQURFUik7Cit9CisKKzE7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwCmluZGV4IDVlYWM5MzYuLmQ4OWE5Y2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC02OCw2ICs2OCw3IEBACiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCisjaW5j
bHVkZSAiUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQyLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5l
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNw
b25zZS5oIgpAQCAtNDc1LDEwICs0NzYsMTEgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpj
b25uZWN0RnJvbnRlbmQoY29uc3QgU2NyaXB0T2JqZWN0JiB3ZWJJbnNwZWN0b3IpCiB7CiAgICAg
bV9vcGVuaW5nRnJvbnRlbmQgPSBmYWxzZTsKICAgICBtX2Zyb250ZW5kID0gbmV3IEluc3BlY3Rv
ckZyb250ZW5kKHdlYkluc3BlY3RvciwgbV9jbGllbnQpOworICAgIG1fZnJvbnRlbmQyID0gbmV3
IEluc3BlY3RvckZyb250ZW5kMihtX2NsaWVudCk7CiAgICAgcmVsZWFzZURPTUFnZW50KCk7CiAg
ICAgbV9kb21BZ2VudCA9IEluc3BlY3RvckRPTUFnZW50OjpjcmVhdGUobV9jc3NTdG9yZS5nZXQo
KSwgbV9mcm9udGVuZC5nZXQoKSk7CiAgICAgaWYgKG1fdGltZWxpbmVBZ2VudCkKLSAgICAgICAg
bV90aW1lbGluZUFnZW50LT5yZXNldEZyb250ZW5kUHJveHlPYmplY3QobV9mcm9udGVuZC5nZXQo
KSk7CisgICAgICAgIG1fdGltZWxpbmVBZ2VudC0+cmVzZXRGcm9udGVuZFByb3h5T2JqZWN0KG1f
ZnJvbnRlbmQyLmdldCgpKTsKIAogICAgIC8vIEluaXRpYWxpemUgV2ViIEluc3BlY3RvciB0aXRs
ZS4KICAgICBtX2Zyb250ZW5kLT5pbnNwZWN0ZWRVUkxDaGFuZ2VkKG1faW5zcGVjdGVkUGFnZS0+
bWFpbkZyYW1lKCktPmxvYWRlcigpLT51cmwoKS5zdHJpbmcoKSk7CkBAIC0xMTQzLDcgKzExNDUs
NyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnN0YXJ0VGltZWxpbmVQcm9maWxlcigpCiAg
ICAgaWYgKG1fdGltZWxpbmVBZ2VudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV90aW1lbGlu
ZUFnZW50ID0gbmV3IEluc3BlY3RvclRpbWVsaW5lQWdlbnQobV9mcm9udGVuZC5nZXQoKSk7Cisg
ICAgbV90aW1lbGluZUFnZW50ID0gbmV3IEluc3BlY3RvclRpbWVsaW5lQWdlbnQobV9mcm9udGVu
ZDIuZ2V0KCkpOwogICAgIGlmIChtX2Zyb250ZW5kKQogICAgICAgICBtX2Zyb250ZW5kLT50aW1l
bGluZVByb2ZpbGVyV2FzU3RhcnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5oCmluZGV4IGIyZDFkNWEuLmRhYTljNTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmgKQEAgLTY3LDYgKzY3LDcgQEAgY2xhc3MgSW5zcGVjdG9yQmFja2Vu
ZDsKIGNsYXNzIEluc3BlY3RvckNsaWVudDsKIGNsYXNzIEluc3BlY3RvckNTU1N0b3JlOwogY2xh
c3MgSW5zcGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDI7CiBjbGFzcyBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudDsKIGNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ7CiBj
bGFzcyBJbnNwZWN0b3JWYWx1ZTsKQEAgLTM0MCw2ICszNDEsNyBAQCBwcml2YXRlOgogICAgIE93
blB0cjxJbnNwZWN0b3JGcm9udGVuZENsaWVudD4gbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudDsK
ICAgICBib29sIG1fb3BlbmluZ0Zyb250ZW5kOwogICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVu
ZD4gbV9mcm9udGVuZDsKKyAgICBPd25QdHI8SW5zcGVjdG9yRnJvbnRlbmQyPiBtX2Zyb250ZW5k
MjsKICAgICBSZWZQdHI8SW5zcGVjdG9yRE9NQWdlbnQ+IG1fZG9tQWdlbnQ7CiAgICAgT3duUHRy
PEluc3BlY3RvckNTU1N0b3JlPiBtX2Nzc1N0b3JlOwogICAgIE93blB0cjxJbnNwZWN0b3JUaW1l
bGluZUFnZW50PiBtX3RpbWVsaW5lQWdlbnQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZC5jcHAKaW5kZXggMjg3ZTY3Zi4uY2NlZjMzMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kLmNwcApAQCAtMzAwLDE0ICszMDAsNiBAQCB2b2lkIEluc3BlY3RvckZyb250
ZW5kOjp0aW1lbGluZVByb2ZpbGVyV2FzU3RvcHBlZCgpCiAgICAgY2FsbFNpbXBsZUZ1bmN0aW9u
KCJ0aW1lbGluZVByb2ZpbGVyV2FzU3RvcHBlZCIpOwogfQogCi12b2lkIEluc3BlY3RvckZyb250
ZW5kOjphZGRSZWNvcmRUb1RpbWVsaW5lKGNvbnN0IFNjcmlwdE9iamVjdCYgcmVjb3JkKQotewot
ICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihtX3dlYkluc3BlY3RvciwgImRpc3BhdGNo
Iik7IAotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KCJhZGRSZWNvcmRUb1RpbWVsaW5lIik7
Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQocmVjb3JkKTsKLSAgICBmdW5jdGlvbi5jYWxs
KCk7Ci19Ci0KICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKIHZvaWQgSW5zcGVjdG9y
RnJvbnRlbmQ6OmF0dGFjaERlYnVnZ2VyV2hlblNob3duKCkKIHsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZC5oCmluZGV4IGQzMGUyM2MuLjU2YzgxYWYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmQuaApAQCAtMTYyLDcgKzE2Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICB2b2lkIHRpbWVsaW5lUHJvZmlsZXJXYXNTdGFydGVkKCk7CiAgICAgICAg
IHZvaWQgdGltZWxpbmVQcm9maWxlcldhc1N0b3BwZWQoKTsKLSAgICAgICAgdm9pZCBhZGRSZWNv
cmRUb1RpbWVsaW5lKGNvbnN0IFNjcmlwdE9iamVjdCYpOwogCiAjaWYgRU5BQkxFKFdPUktFUlMp
CiAgICAgICAgIHZvaWQgZGlkQ3JlYXRlV29ya2VyKGNvbnN0IEluc3BlY3RvcldvcmtlclJlc291
cmNlJik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIu
aWRsIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTliM2JlCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbApAQCAtMCwwICsxLDEwIEBACisv
LyBDb3B5cmlnaHQgKGMpIDIwMDkgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgor
Cittb2R1bGUgV2ViQ29yZSB7CisKKyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPUlOU1BFQ1RP
UiwgSlNdIEluc3BlY3RvckZyb250ZW5kMiB7CisgICAgICAgIHZvaWQgYWRkUmVjb3JkVG9UaW1l
bGluZShpbiBPYmplY3QgcmVjb3JkKTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCBhYjUzMzE5Li45ODAzNjFkIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtMzQsOCArMzQs
OCBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUg
IlJlbW90ZUluc3BlY3RvckZyb250ZW5kMi5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5o
IgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJUaW1lbGluZVJlY29y
ZEZhY3RvcnkuaCIKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBpbnQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c19pbnN0YW5jZUNvdW50ID0gMDsKIAotSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnNwZWN0b3JGcm9udGVuZCog
ZnJvbnRlbmQpCitJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
KEluc3BlY3RvckZyb250ZW5kMiogZnJvbnRlbmQpCiAgICAgOiBtX2Zyb250ZW5kKGZyb250ZW5k
KQogewogICAgICsrc19pbnN0YW5jZUNvdW50OwpAQCAtNjIsOSArNjIsOSBAQCB2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OnB1c2hHQ0V2ZW50UmVjb3JkcygpCiAgICAgR0NFdmVudHMgZXZl
bnRzID0gbV9nY0V2ZW50czsKICAgICBtX2djRXZlbnRzLmNsZWFyKCk7CiAgICAgZm9yIChHQ0V2
ZW50czo6aXRlcmF0b3IgaSA9IGV2ZW50cy5iZWdpbigpOyBpICE9IGV2ZW50cy5lbmQoKTsgKytp
KSB7Ci0gICAgICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgaS0+c3RhcnRUaW1lKTsKLSAgICAgICAg
cmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR0NFdmVudERh
dGEobV9mcm9udGVuZCwgaS0+Y29sbGVjdGVkQnl0ZXMpKTsKLSAgICAgICAgcmVjb3JkLnNldCgi
ZW5kVGltZSIsIGktPmVuZFRpbWUpOworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBy
ZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoaS0+c3Rh
cnRUaW1lKTsKKyAgICAgICAgcmVjb3JkLT5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rv
cnk6OmNyZWF0ZUdDRXZlbnREYXRhKGktPmNvbGxlY3RlZEJ5dGVzKSk7CisgICAgICAgIHJlY29y
ZC0+c2V0TnVtYmVyKCJlbmRUaW1lIiwgaS0+ZW5kVGltZSk7CiAgICAgICAgIGFkZFJlY29yZFRv
VGltZWxpbmUocmVjb3JkLCBHQ0V2ZW50VGltZWxpbmVSZWNvcmRUeXBlKTsKICAgICB9CiB9CkBA
IC04Myw3ICs4Myw3IEBAIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6On5JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsQ2FsbEZ1bmN0aW9u
KGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUpCiB7Ci0gICAgcHVzaEN1
cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVGdW5jdGlvbkNhbGxEYXRh
KG1fZnJvbnRlbmQsIHNjcmlwdE5hbWUsIHNjcmlwdExpbmUpLCBGdW5jdGlvbkNhbGxUaW1lbGlu
ZVJlY29yZFR5cGUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlRnVuY3Rpb25DYWxsRGF0YShzY3JpcHROYW1lLCBzY3JpcHRMaW5lKSwgRnVuY3Rp
b25DYWxsVGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRDYWxsRnVuY3Rpb24oKQpAQCAtOTMsNyArOTMsNyBAQCB2b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmRpZENhbGxGdW5jdGlvbigpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6d2lsbERpc3BhdGNoRXZlbnQoY29uc3QgRXZlbnQmIGV2ZW50KQogewotICAgIHB1c2hD
dXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZlbnREaXNwYXRjaERh
dGEobV9mcm9udGVuZCwgZXZlbnQpLAorICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVj
b3JkRmFjdG9yeTo6Y3JlYXRlRXZlbnREaXNwYXRjaERhdGEoZXZlbnQpLAogICAgICAgICBFdmVu
dERpc3BhdGNoVGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KIApAQCAtMTA0LDcgKzEwNCw3IEBAIHZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRGlzcGF0Y2hFdmVudCgpCiAKIHZvaWQgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbExheW91dCgpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNv
cmQobV9mcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCksIExheW91dFRpbWVsaW5lUmVjb3JkVHlw
ZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgTGF5
b3V0VGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRMYXlvdXQoKQpAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6ZGlkTGF5b3V0KCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsUmVj
YWxjdWxhdGVTdHlsZSgpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQobV9mcm9udGVuZC0+bmV3
U2NyaXB0T2JqZWN0KCksIFJlY2FsY3VsYXRlU3R5bGVzVGltZWxpbmVSZWNvcmRUeXBlKTsKKyAg
ICBwdXNoQ3VycmVudFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBSZWNhbGN1bGF0
ZVN0eWxlc1RpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6ZGlkUmVjYWxjdWxhdGVTdHlsZSgpCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpkaWRSZWNhbGN1bGF0ZVN0eWxlKCkKIAogdm9pZCBJbnNwZWN0
b3JUaW1lbGluZUFnZW50Ojp3aWxsUGFpbnQoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSAgICBw
dXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhaW50RGF0YSht
X2Zyb250ZW5kLCByZWN0KSwgUGFpbnRUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHB1c2hDdXJy
ZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFpbnREYXRhKHJlY3QpLCBQ
YWludFRpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6ZGlkUGFpbnQoKQpAQCAtMTM0LDE0ICsxMzQsMTQgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpkaWRQYWludCgpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFdy
aXRlSFRNTCh1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKQogewot
ICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFyc2VI
VE1MRGF0YShtX2Zyb250ZW5kLCBsZW5ndGgsIHN0YXJ0TGluZSksIFBhcnNlSFRNTFRpbWVsaW5l
UmVjb3JkVHlwZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVQYXJzZUhUTUxEYXRhKGxlbmd0aCwgc3RhcnRMaW5lKSwgUGFyc2VIVE1MVGltZWxp
bmVSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRXcml0
ZUhUTUwodW5zaWduZWQgaW50IGVuZExpbmUpCiB7CiAgICAgaWYgKCFtX3JlY29yZFN0YWNrLmlz
RW1wdHkoKSkgewogICAgICAgICBUaW1lbGluZVJlY29yZEVudHJ5IGVudHJ5ID0gbV9yZWNvcmRT
dGFjay5sYXN0KCk7Ci0gICAgICAgIGVudHJ5LmRhdGEuc2V0KCJlbmRMaW5lIiwgZW5kTGluZSk7
CisgICAgICAgIGVudHJ5LmRhdGEtPnNldE51bWJlcigiZW5kTGluZSIsIGVuZExpbmUpOwogICAg
ICAgICBkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoUGFyc2VIVE1MVGltZWxpbmVSZWNvcmRUeXBl
KTsKICAgICB9CiB9CkBAIC0xNDksMjIgKzE0OSwyMiBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZFdyaXRlSFRNTCh1bnNpZ25lZCBpbnQgZW5kTGluZSkKIHZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6ZGlkSW5zdGFsbFRpbWVyKGludCB0aW1lcklkLCBpbnQgdGltZW91dCwg
Ym9vbCBzaW5nbGVTaG90KQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwotICAgIFNjcmlw
dE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNv
cmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwotICAgIHJlY29yZC5zZXQoImRh
dGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVRpbWVySW5zdGFsbERhdGEobV9mcm9u
dGVuZCwgdGltZXJJZCwgdGltZW91dCwgc2luZ2xlU2hvdCkpOworICAgIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1Jl
Y29yZChXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgcmVjb3JkLT5zZXQoImRhdGEiLCBUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVRpbWVySW5zdGFsbERhdGEodGltZXJJZCwgdGltZW91
dCwgc2luZ2xlU2hvdCkpOwogICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBUaW1lcklu
c3RhbGxUaW1lbGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmRpZFJlbW92ZVRpbWVyKGludCB0aW1lcklkKQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3Jk
cygpOwotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwotICAg
IHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNU
aW1lckRhdGEobV9mcm9udGVuZCwgdGltZXJJZCkpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChX
VEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgcmVjb3JkLT5zZXQoImRhdGEiLCBUaW1lbGluZVJl
Y29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNUaW1lckRhdGEodGltZXJJZCkpOwogICAgIGFkZFJl
Y29yZFRvVGltZWxpbmUocmVjb3JkLCBUaW1lclJlbW92ZVRpbWVsaW5lUmVjb3JkVHlwZSk7CiB9
CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbEZpcmVUaW1lcihpbnQgdGltZXJJ
ZCkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZUdlbmVyaWNUaW1lckRhdGEobV9mcm9udGVuZCwgdGltZXJJZCksIFRpbWVyRmlyZVRpbWVsaW5l
UmVjb3JkVHlwZSk7IAorICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlR2VuZXJpY1RpbWVyRGF0YSh0aW1lcklkKSwgVGltZXJGaXJlVGltZWxpbmVSZWNv
cmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRGaXJlVGltZXIo
KQpAQCAtMTc0LDcgKzE3NCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmly
ZVRpbWVyKCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsQ2hhbmdlWEhSUmVh
ZHlTdGF0ZShjb25zdCBTdHJpbmcmIHVybCwgaW50IHJlYWR5U3RhdGUpCiB7Ci0gICAgcHVzaEN1
cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJSZWFkeVN0YXRlQ2hh
bmdlRGF0YShtX2Zyb250ZW5kLCB1cmwsIHJlYWR5U3RhdGUpLCBYSFJSZWFkeVN0YXRlQ2hhbmdl
UmVjb3JkVHlwZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVYSFJSZWFkeVN0YXRlQ2hhbmdlRGF0YSh1cmwsIHJlYWR5U3RhdGUpLCBYSFJSZWFk
eVN0YXRlQ2hhbmdlUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6ZGlkQ2hhbmdlWEhSUmVhZHlTdGF0ZSgpCkBAIC0xODQsNyArMTg0LDcgQEAgdm9pZCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDaGFuZ2VYSFJSZWFkeVN0YXRlKCkKIAogdm9pZCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsTG9hZFhIUihjb25zdCBTdHJpbmcmIHVybCkgCiB7Ci0g
ICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJMb2Fk
RGF0YShtX2Zyb250ZW5kLCB1cmwpLCBYSFJMb2FkUmVjb3JkVHlwZSk7CisgICAgcHVzaEN1cnJl
bnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJMb2FkRGF0YSh1cmwpLCBY
SFJMb2FkUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlk
TG9hZFhIUigpCkBAIC0xOTQsNyArMTk0LDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRMb2FkWEhSKCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRXZhbHVh
dGVTY3JpcHQoY29uc3QgU3RyaW5nJiB1cmwsIGludCBsaW5lTnVtYmVyKQogewotICAgIHB1c2hD
dXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZhbHVhdGVTY3JpcHRE
YXRhKG1fZnJvbnRlbmQsIHVybCwgbGluZU51bWJlciksIEV2YWx1YXRlU2NyaXB0VGltZWxpbmVS
ZWNvcmRUeXBlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZUV2YWx1YXRlU2NyaXB0RGF0YSh1cmwsIGxpbmVOdW1iZXIpLCBFdmFsdWF0ZVNjcmlw
dFRpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAgICAgCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmRpZEV2YWx1YXRlU2NyaXB0KCkKQEAgLTIwNSw5ICsyMDUsOSBAQCB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZEV2YWx1YXRlU2NyaXB0KCkKIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6ZGlkU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3QoY29uc3QgU3RyaW5nJiB1cmwpCiB7
CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6
OmN1cnJlbnRUaW1lTVMoKSk7Ci0gICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3REYXRhKG1fZnJvbnRlbmQsIHVy
bCkpOwotICAgIHJlY29yZC5zZXQoInR5cGUiLCBTY2hlZHVsZVJlc291cmNlUmVxdWVzdFRpbWVs
aW5lUmVjb3JkVHlwZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKFdURjo6Y3VycmVudFRpbWVN
UygpKTsKKyAgICByZWNvcmQtPnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3REYXRhKHVybCkpOworICAgIHJlY29yZC0+c2V0TnVt
YmVyKCJ0eXBlIiwgU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3RUaW1lbGluZVJlY29yZFR5cGUpOwog
ICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBTY2hlZHVsZVJlc291cmNlUmVxdWVzdFRp
bWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKQEAgLTIxNSwxNiArMjE1LDE2IEBAIHZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6d2lsbFNlbmRSZXNvdXJjZVJlcXVlc3QodW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBiCiAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAg
IHB1c2hHQ0V2ZW50UmVjb3JkcygpOwotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJy
ZW50VGltZU1TKCkpOwotICAgIHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rv
cnk6OmNyZWF0ZVJlc291cmNlU2VuZFJlcXVlc3REYXRhKG1fZnJvbnRlbmQsIGlkZW50aWZpZXIs
IGlzTWFpblJlc291cmNlLCByZXF1ZXN0KSk7Ci0gICAgcmVjb3JkLnNldCgidHlwZSIsIFJlc291
cmNlU2VuZFJlcXVlc3RUaW1lbGluZVJlY29yZFR5cGUpOworICAgIFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29y
ZChXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgcmVjb3JkLT5zZXQoImRhdGEiLCBUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlU2VuZFJlcXVlc3REYXRhKGlkZW50aWZpZXIs
IGlzTWFpblJlc291cmNlLCByZXF1ZXN0KSk7CisgICAgcmVjb3JkLT5zZXROdW1iZXIoInR5cGUi
LCBSZXNvdXJjZVNlbmRSZXF1ZXN0VGltZWxpbmVSZWNvcmRUeXBlKTsKICAgICBzZXRIZWFwU2l6
ZVN0YXRpc3RpYyhyZWNvcmQpOwogICAgIG1fZnJvbnRlbmQtPmFkZFJlY29yZFRvVGltZWxpbmUo
cmVjb3JkKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsUmVjZWl2ZVJl
c291cmNlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCiB7Ci0gICAgcHVzaEN1cnJlbnRS
ZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKG1f
ZnJvbnRlbmQsIGlkZW50aWZpZXIpLCBSZWNlaXZlUmVzb3VyY2VEYXRhVGltZWxpbmVSZWNvcmRU
eXBlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZVJlY2VpdmVSZXNvdXJjZURhdGEoaWRlbnRpZmllciksIFJlY2VpdmVSZXNvdXJjZURhdGFUaW1l
bGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJl
Y2VpdmVSZXNvdXJjZURhdGEoKQpAQCAtMjM0LDcgKzIzNCw3IEBAIHZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6ZGlkUmVjZWl2ZVJlc291cmNlRGF0YSgpCiAgICAgCiB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIHB1
c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VSZWNl
aXZlUmVzcG9uc2VEYXRhKG1fZnJvbnRlbmQsIGlkZW50aWZpZXIsIHJlc3BvbnNlKSwgUmVzb3Vy
Y2VSZWNlaXZlUmVzcG9uc2VUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHB1c2hDdXJyZW50UmVj
b3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VE
YXRhKGlkZW50aWZpZXIsIHJlc3BvbnNlKSwgUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VUaW1lbGlu
ZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJlY2Vp
dmVSZXNvdXJjZVJlc3BvbnNlKCkKQEAgLTI0NSw5ICsyNDUsOSBAQCB2b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKCkKIHZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6ZGlkRmluaXNoTG9hZGluZ1Jlc291cmNlKHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgYm9vbCBkaWRGYWlsKQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwotICAg
IFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVy
aWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwotICAgIHJlY29yZC5z
ZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlRmluaXNoRGF0
YShtX2Zyb250ZW5kLCBpZGVudGlmaWVyLCBkaWRGYWlsKSk7Ci0gICAgcmVjb3JkLnNldCgidHlw
ZSIsIFJlc291cmNlRmluaXNoVGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNS
ZWNvcmQoV1RGOjpjdXJyZW50VGltZU1TKCkpOworICAgIHJlY29yZC0+c2V0KCJkYXRhIiwgVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZUZpbmlzaERhdGEoaWRlbnRpZmllciwg
ZGlkRmFpbCkpOworICAgIHJlY29yZC0+c2V0TnVtYmVyKCJ0eXBlIiwgUmVzb3VyY2VGaW5pc2hU
aW1lbGluZVJlY29yZFR5cGUpOwogICAgIHNldEhlYXBTaXplU3RhdGlzdGljKHJlY29yZCk7CiAg
ICAgbV9mcm9udGVuZC0+YWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQpOwogfQpAQCAtMjU1LDIy
ICsyNTUsMjIgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRGaW5pc2hMb2FkaW5n
UmVzb3VyY2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLAogdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpkaWRNYXJrVGltZWxpbmUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIHB1
c2hHQ0V2ZW50UmVjb3JkcygpOwotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJl
Y29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50
VGltZU1TKCkpOwotICAgIHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZU1hcmtUaW1lbGluZURhdGEobV9mcm9udGVuZCwgbWVzc2FnZSkpOworICAgIFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
R2VuZXJpY1JlY29yZChXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgcmVjb3JkLT5zZXQoImRh
dGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZU1hcmtUaW1lbGluZURhdGEobWVzc2Fn
ZSkpOwogICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBNYXJrVGltZWxpbmVSZWNvcmRU
eXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrRE9NQ29udGVu
dEV2ZW50KCkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKLSAgICBTY3JpcHRPYmplY3Qg
cmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJv
bnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoV1RG
OjpjdXJyZW50VGltZU1TKCkpOwogICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBNYXJr
RE9NQ29udGVudEV2ZW50VHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
ZGlkTWFya0xvYWRFdmVudCgpCiB7CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2Ny
aXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1Jl
Y29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmlj
UmVjb3JkKFdURjo6Y3VycmVudFRpbWVNUygpKTsKICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJl
Y29yZCwgTWFya0xvYWRFdmVudFR5cGUpOwogfQogCkBAIC0yNzksMzIgKzI3OSwzMiBAQCB2b2lk
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnJlc2V0KCkKICAgICBtX3JlY29yZFN0YWNrLmNsZWFy
KCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cmVzZXRGcm9udGVuZFByb3h5
T2JqZWN0KEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKK3ZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6cmVzZXRGcm9udGVuZFByb3h5T2JqZWN0KEluc3BlY3RvckZyb250ZW5kMiogZnJv
bnRlbmQpCiB7CiAgICAgQVNTRVJUKGZyb250ZW5kKTsKICAgICByZXNldCgpOwogICAgIG1fZnJv
bnRlbmQgPSBmcm9udGVuZDsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRS
ZWNvcmRUb1RpbWVsaW5lKFNjcmlwdE9iamVjdCByZWNvcmQsIFRpbWVsaW5lUmVjb3JkVHlwZSB0
eXBlKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKGNv
bnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiByZWNvcmQsIFRpbWVsaW5lUmVjb3JkVHlwZSB0
eXBlKQogewotICAgIHJlY29yZC5zZXQoInR5cGUiLCB0eXBlKTsKKyAgICByZWNvcmQtPnNldE51
bWJlcigidHlwZSIsIHR5cGUpOwogICAgIHNldEhlYXBTaXplU3RhdGlzdGljKHJlY29yZCk7Ci0g
ICAgaWYgKG1fcmVjb3JkU3RhY2suaXNFbXB0eSgpKQorICAgIGlmIChtX3JlY29yZFN0YWNrLmlz
RW1wdHkoKSkgCiAgICAgICAgIG1fZnJvbnRlbmQtPmFkZFJlY29yZFRvVGltZWxpbmUocmVjb3Jk
KTsKICAgICBlbHNlIHsKICAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeSBwYXJlbnQgPSBtX3Jl
Y29yZFN0YWNrLmxhc3QoKTsKLSAgICAgICAgcGFyZW50LmNoaWxkcmVuLnNldChwYXJlbnQuY2hp
bGRyZW4ubGVuZ3RoKCksIHJlY29yZCk7CisgICAgICAgIHBhcmVudC5jaGlsZHJlbi0+cHVzaChy
ZWNvcmQpOwogICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzZXRIZWFw
U2l6ZVN0YXRpc3RpYyhTY3JpcHRPYmplY3QgcmVjb3JkKQordm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpzZXRIZWFwU2l6ZVN0YXRpc3RpYyhjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiYgcmVjb3JkKQogewogICAgIHNpemVfdCB1c2VkSGVhcFNpemUgPSAwOwogICAgIHNpemVfdCB0
b3RhbEhlYXBTaXplID0gMDsKICAgICBTY3JpcHRHQ0V2ZW50OjpnZXRIZWFwU2l6ZSh1c2VkSGVh
cFNpemUsIHRvdGFsSGVhcFNpemUpOwotICAgIHJlY29yZC5zZXQoInVzZWRIZWFwU2l6ZSIsIHVz
ZWRIZWFwU2l6ZSk7Ci0gICAgcmVjb3JkLnNldCgidG90YWxIZWFwU2l6ZSIsIHRvdGFsSGVhcFNp
emUpOworICAgIHJlY29yZC0+c2V0TnVtYmVyKCJ1c2VkSGVhcFNpemUiLCB1c2VkSGVhcFNpemUp
OworICAgIHJlY29yZC0+c2V0TnVtYmVyKCJ0b3RhbEhlYXBTaXplIiwgdG90YWxIZWFwU2l6ZSk7
CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tcGxldGVDdXJyZW50UmVj
b3JkKFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlKQpAQCAtMzE2LDE4ICszMTYsMTggQEAgdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21wbGV0ZUN1cnJlbnRSZWNvcmQoVGltZWxpbmVS
ZWNvcmRUeXBlIHR5cGUpCiAgICAgICAgIFRpbWVsaW5lUmVjb3JkRW50cnkgZW50cnkgPSBtX3Jl
Y29yZFN0YWNrLmxhc3QoKTsKICAgICAgICAgbV9yZWNvcmRTdGFjay5yZW1vdmVMYXN0KCk7CiAg
ICAgICAgIEFTU0VSVChlbnRyeS50eXBlID09IHR5cGUpOwotICAgICAgICBlbnRyeS5yZWNvcmQu
c2V0KCJkYXRhIiwgZW50cnkuZGF0YSk7Ci0gICAgICAgIGVudHJ5LnJlY29yZC5zZXQoImNoaWxk
cmVuIiwgZW50cnkuY2hpbGRyZW4pOwotICAgICAgICBlbnRyeS5yZWNvcmQuc2V0KCJlbmRUaW1l
IiwgV1RGOjpjdXJyZW50VGltZU1TKCkpOworICAgICAgICBlbnRyeS5yZWNvcmQtPnNldCgiZGF0
YSIsIGVudHJ5LmRhdGEpOworICAgICAgICBlbnRyeS5yZWNvcmQtPnNldCgiY2hpbGRyZW4iLCBl
bnRyeS5jaGlsZHJlbik7CisgICAgICAgIGVudHJ5LnJlY29yZC0+c2V0TnVtYmVyKCJlbmRUaW1l
IiwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwogICAgICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKGVu
dHJ5LnJlY29yZCwgdHlwZSk7CiAgICAgfQogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OnB1c2hDdXJyZW50UmVjb3JkKFNjcmlwdE9iamVjdCBkYXRhLCBUaW1lbGluZVJlY29yZFR5
cGUgdHlwZSkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaEN1cnJlbnRSZWNvcmQo
Y29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIGRhdGEsIFRpbWVsaW5lUmVjb3JkVHlwZSB0
eXBlKQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwotICAgIFNjcmlwdE9iamVjdCByZWNv
cmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVu
ZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwotICAgIG1fcmVjb3JkU3RhY2suYXBwZW5kKFRpbWVs
aW5lUmVjb3JkRW50cnkocmVjb3JkLCBkYXRhLCBtX2Zyb250ZW5kLT5uZXdTY3JpcHRBcnJheSgp
LCB0eXBlKSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKFdURjo6Y3VycmVudFRpbWVNUygpKTsK
KyAgICBtX3JlY29yZFN0YWNrLmFwcGVuZChUaW1lbGluZVJlY29yZEVudHJ5KHJlY29yZCwgZGF0
YSwgSW5zcGVjdG9yQXJyYXk6OmNyZWF0ZSgpLCB0eXBlKSk7CiB9CiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRl
eCBmZTMzNGJlLi4xMGU4YTY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5oCkBAIC0zNCwxNiArMzQsMTUgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2NyaXB0R0NFdmVudC5o
IgogI2luY2x1ZGUgIlNjcmlwdEdDRXZlbnRMaXN0ZW5lci5oIgotI2luY2x1ZGUgIlNjcmlwdE9i
amVjdC5oIgotI2luY2x1ZGUgIlNjcmlwdEFycmF5LmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFdmVudDsKLWNsYXNzIEluc3BlY3RvckZy
b250ZW5kOworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQyOwogY2xhc3MgSW50UmVjdDsKIGNsYXNz
IFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CkBAIC03NSwxMSArNzQs
MTEgQEAgZW51bSBUaW1lbGluZVJlY29yZFR5cGUgewogCiBjbGFzcyBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50IDogU2NyaXB0R0NFdmVudExpc3RlbmVyLCBwdWJsaWMgTm9uY29weWFibGUgewogcHVi
bGljOgotICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250
ZW5kKTsKKyAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3BlY3RvckZyb250ZW5kMiogZnJv
bnRlbmQpOwogICAgIH5JbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7CiAKICAgICB2b2lkIHJlc2V0
KCk7Ci0gICAgdm9pZCByZXNldEZyb250ZW5kUHJveHlPYmplY3QoSW5zcGVjdG9yRnJvbnRlbmQq
KTsKKyAgICB2b2lkIHJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChJbnNwZWN0b3JGcm9udGVuZDIq
KTsKIAogICAgIC8vIE1ldGhvZHMgY2FsbGVkIGZyb20gV2ViQ29yZS4KICAgICB2b2lkIHdpbGxD
YWxsRnVuY3Rpb24oY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSk7CkBA
IC0xMzQsMjYgKzEzMywyNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IFRpbWVs
aW5lUmVjb3JkRW50cnkgewotICAgICAgICBUaW1lbGluZVJlY29yZEVudHJ5KFNjcmlwdE9iamVj
dCByZWNvcmQsIFNjcmlwdE9iamVjdCBkYXRhLCBTY3JpcHRBcnJheSBjaGlsZHJlbiwgVGltZWxp
bmVSZWNvcmRUeXBlIHR5cGUpCisgICAgICAgIFRpbWVsaW5lUmVjb3JkRW50cnkoY29uc3QgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4mIHJlY29yZCwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4mIGRhdGEsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIGNoaWxkcmVuLCBUaW1lbGlu
ZVJlY29yZFR5cGUgdHlwZSkKICAgICAgICAgICAgIDogcmVjb3JkKHJlY29yZCksIGRhdGEoZGF0
YSksIGNoaWxkcmVuKGNoaWxkcmVuKSwgdHlwZSh0eXBlKQogICAgICAgICB7CiAgICAgICAgIH0K
LSAgICAgICAgU2NyaXB0T2JqZWN0IHJlY29yZDsKLSAgICAgICAgU2NyaXB0T2JqZWN0IGRhdGE7
Ci0gICAgICAgIFNjcmlwdEFycmF5IGNoaWxkcmVuOworICAgICAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiByZWNvcmQ7CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGE7Cisg
ICAgICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gY2hpbGRyZW47CiAgICAgICAgIFRpbWVsaW5l
UmVjb3JkVHlwZSB0eXBlOwogICAgIH07CiAgICAgICAgIAotICAgIHZvaWQgcHVzaEN1cnJlbnRS
ZWNvcmQoU2NyaXB0T2JqZWN0LCBUaW1lbGluZVJlY29yZFR5cGUpOwotICAgIHZvaWQgc2V0SGVh
cFNpemVTdGF0aXN0aWMoU2NyaXB0T2JqZWN0IHJlY29yZCk7CisgICAgdm9pZCBwdXNoQ3VycmVu
dFJlY29yZChjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYsIFRpbWVsaW5lUmVjb3JkVHlw
ZSk7CisgICAgdm9pZCBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhjb25zdCBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiYgcmVjb3JkKTsKICAgICAgICAgCiAgICAgdm9pZCBkaWRDb21wbGV0ZUN1cnJlbnRS
ZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlKTsKIAotICAgIHZvaWQgYWRkUmVjb3JkVG9UaW1lbGlu
ZShTY3JpcHRPYmplY3QsIFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgdm9pZCBhZGRSZWNvcmRU
b1RpbWVsaW5lKGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiwgVGltZWxpbmVSZWNvcmRU
eXBlKTsKIAogICAgIHZvaWQgcHVzaEdDRXZlbnRSZWNvcmRzKCk7CiAKLSAgICBJbnNwZWN0b3JG
cm9udGVuZCogbV9mcm9udGVuZDsKKyAgICBJbnNwZWN0b3JGcm9udGVuZDIqIG1fZnJvbnRlbmQ7
CiAKICAgICBWZWN0b3I8VGltZWxpbmVSZWNvcmRFbnRyeT4gbV9yZWNvcmRTdGFjazsKICAgICBz
dGF0aWMgaW50IHNfaW5zdGFuY2VDb3VudDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwCmluZGV4IGJkYjVmM2QuLjMyNWI0YzkgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcApAQCAtMzUsMTUxICszNSwxNTEgQEAKIAog
I2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKKyNpbmNs
dWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1
ZGUgIlNjcmlwdEFycmF5LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCi0jaW5jbHVk
ZSAiU2NyaXB0T2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2NyaXB0T2JqZWN0
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChJbnNwZWN0b3JGcm9u
dGVuZCogZnJvbnRlbmQsIGRvdWJsZSBzdGFydFRpbWUpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoZG91YmxlIHN0YXJ0
VGltZSkKIHsKLSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9i
amVjdCgpOwotICAgIHJlY29yZC5zZXQoInN0YXJ0VGltZSIsIHN0YXJ0VGltZSk7CisgICAgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsK
KyAgICByZWNvcmQtPnNldE51bWJlcigic3RhcnRUaW1lIiwgc3RhcnRUaW1lKTsKIAotICAgIFNj
cmlwdEFycmF5IHN0YWNrVHJhY2U7Ci0gICAgaWYgKFNjcmlwdENhbGxTdGFjazo6c3RhY2tUcmFj
ZSg1LCBmcm9udGVuZC0+c2NyaXB0U3RhdGUoKSwgc3RhY2tUcmFjZSkpCi0gICAgICAgIHJlY29y
ZC5zZXQoInN0YWNrVHJhY2UiLCBzdGFja1RyYWNlKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yQXJy
YXk+IHN0YWNrVHJhY2UgPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7CisgICAgaWYgKFNjcmlw
dENhbGxTdGFjazo6c3RhY2tUcmFjZSg1LCBzdGFja1RyYWNlKSkKKyAgICAgICAgcmVjb3JkLT5z
ZXQoInN0YWNrVHJhY2UiLCBzdGFja1RyYWNlKTsKICAgICByZXR1cm4gcmVjb3JkOwogfQogCi1T
Y3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHQ0V2ZW50RGF0YShJbnNw
ZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IHNpemVfdCB1c2VkSGVhcFNpemVEZWx0YSkK
K1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR0NF
dmVudERhdGEoY29uc3Qgc2l6ZV90IHVzZWRIZWFwU2l6ZURlbHRhKQogewotICAgIFNjcmlwdE9i
amVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJ1
c2VkSGVhcFNpemVEZWx0YSIsIHVzZWRIZWFwU2l6ZURlbHRhKTsKKyAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5z
ZXROdW1iZXIoInVzZWRIZWFwU2l6ZURlbHRhIiwgdXNlZEhlYXBTaXplRGVsdGEpOwogICAgIHJl
dHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVGdW5jdGlvbkNhbGxEYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3QgU3Ry
aW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRnVuY3Rpb25DYWxsRGF0YShjb25zdCBTdHJp
bmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKQogewotICAgIFNjcmlwdE9iamVjdCBkYXRh
ID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJzY3JpcHROYW1l
Iiwgc2NyaXB0TmFtZSk7Ci0gICAgZGF0YS5zZXQoInNjcmlwdExpbmUiLCBzY3JpcHRMaW5lKTsK
KyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVh
dGUoKTsKKyAgICBkYXRhLT5zZXRTdHJpbmcoInNjcmlwdE5hbWUiLCBzY3JpcHROYW1lKTsKKyAg
ICBkYXRhLT5zZXROdW1iZXIoInNjcmlwdExpbmUiLCBzY3JpcHRMaW5lKTsKICAgICByZXR1cm4g
ZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZl
bnREaXNwYXRjaERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBFdmVudCYg
ZXZlbnQpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUV2ZW50RGlzcGF0Y2hEYXRhKGNvbnN0IEV2ZW50JiBldmVudCkKIHsKLSAgICBTY3JpcHRP
YmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgi
dHlwZSIsIGV2ZW50LnR5cGUoKS5zdHJpbmcoKSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0U3RyaW5n
KCJ0eXBlIiwgZXZlbnQudHlwZSgpLnN0cmluZygpKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAot
U2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1RpbWVyRGF0
YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGludCB0aW1lcklkKQorUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJEYXRh
KGludCB0aW1lcklkKQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1Nj
cmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJ0aW1lcklkIiwgdGltZXJJZCk7CisgICAgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Cisg
ICAgZGF0YS0+c2V0TnVtYmVyKCJ0aW1lcklkIiwgdGltZXJJZCk7CiAgICAgcmV0dXJuIGRhdGE7
CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVRpbWVySW5z
dGFsbERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBpbnQgdGltZXJJZCwgaW50IHRp
bWVvdXQsIGJvb2wgc2luZ2xlU2hvdCkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlVGltZXJJbnN0YWxsRGF0YShpbnQgdGltZXJJZCwgaW50IHRp
bWVvdXQsIGJvb2wgc2luZ2xlU2hvdCkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250
ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgidGltZXJJZCIsIHRpbWVySWQp
OwotICAgIGRhdGEuc2V0KCJ0aW1lb3V0IiwgdGltZW91dCk7Ci0gICAgZGF0YS5zZXQoInNpbmds
ZVNob3QiLCBzaW5nbGVTaG90KTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0g
SW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoInRpbWVySWQi
LCB0aW1lcklkKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoInRpbWVvdXQiLCB0aW1lb3V0KTsKKyAg
ICBkYXRhLT5zZXRCb29sKCJzaW5nbGVTaG90Iiwgc2luZ2xlU2hvdCk7CiAgICAgcmV0dXJuIGRh
dGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUlJl
YWR5U3RhdGVDaGFuZ2VEYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3QgU3Ry
aW5nJiB1cmwsIGludCByZWFkeVN0YXRlKQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJSZWFkeVN0YXRlQ2hhbmdlRGF0YShjb25zdCBTdHJp
bmcmIHVybCwgaW50IHJlYWR5U3RhdGUpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9u
dGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQoInVybCIsIHVybCk7Ci0gICAg
ZGF0YS5zZXQoInJlYWR5U3RhdGUiLCByZWFkeVN0YXRlKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXRT
dHJpbmcoInVybCIsIHVybCk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJyZWFkeVN0YXRlIiwgcmVh
ZHlTdGF0ZSk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJl
Y29yZEZhY3Rvcnk6OmNyZWF0ZVhIUkxvYWREYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVu
ZCwgY29uc3QgU3RyaW5nJiB1cmwpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJl
Y29yZEZhY3Rvcnk6OmNyZWF0ZVhIUkxvYWREYXRhKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAg
IFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRh
dGEuc2V0KCJ1cmwiLCB1cmwpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJ
bnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldFN0cmluZygidXJsIiwgdXJs
KTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlRXZhbHVhdGVTY3JpcHREYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVu
ZCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBsaW5lTnVtYmVyKSAKK1JlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZhbHVhdGVTY3JpcHREYXRh
KGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUgbGluZU51bWJlcikKIHsKLSAgICBTY3JpcHRPYmpl
Y3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgidXJs
IiwgdXJsKTsKLSAgICBkYXRhLnNldCgibGluZU51bWJlciIsIGxpbmVOdW1iZXIpOworICAgIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwor
ICAgIGRhdGEtPnNldFN0cmluZygidXJsIiwgdXJsKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoImxp
bmVOdW1iZXIiLCBsaW5lTnVtYmVyKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2Jq
ZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlTWFya1RpbWVsaW5lRGF0YShJbnNwZWN0
b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgCitSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZU1hcmtUaW1lbGluZURh
dGEoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJv
bnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJtZXNzYWdlIiwgbWVzc2Fn
ZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6
Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0U3RyaW5nKCJtZXNzYWdlIiwgbWVzc2FnZSk7CiAgICAg
cmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZVNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0RGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRl
bmQsIGNvbnN0IFN0cmluZyYgdXJsKQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVTY2hlZHVsZVJlc291cmNlUmVxdWVzdERhdGEoY29uc3QgU3Ry
aW5nJiB1cmwpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0
T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQoInVybCIsIHVybCk7CisgICAgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0
U3RyaW5nKCJ1cmwiLCB1cmwpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3Qg
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YShJbnNw
ZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgYm9vbCBp
c01haW5SZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVNlbmRS
ZXF1ZXN0RGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGJvb2wgaXNNYWluUmVzb3VyY2Us
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0
YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgiaWRlbnRpZmll
ciIsIGlkZW50aWZpZXIpOwotICAgIGRhdGEuc2V0KCJ1cmwiLCByZXF1ZXN0LnVybCgpLnN0cmlu
ZygpKTsKLSAgICBkYXRhLnNldCgicmVxdWVzdE1ldGhvZCIsIHJlcXVlc3QuaHR0cE1ldGhvZCgp
KTsKLSAgICBkYXRhLnNldCgiaXNNYWluUmVzb3VyY2UiLCBpc01haW5SZXNvdXJjZSk7CisgICAg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7
CisgICAgZGF0YS0+c2V0TnVtYmVyKCJpZGVudGlmaWVyIiwgaWRlbnRpZmllcik7CisgICAgZGF0
YS0+c2V0U3RyaW5nKCJ1cmwiLCByZXF1ZXN0LnVybCgpLnN0cmluZygpKTsKKyAgICBkYXRhLT5z
ZXRTdHJpbmcoInJlcXVlc3RNZXRob2QiLCByZXF1ZXN0Lmh0dHBNZXRob2QoKSk7CisgICAgZGF0
YS0+c2V0Qm9vbCgiaXNNYWluUmVzb3VyY2UiLCBpc01haW5SZXNvdXJjZSk7CiAgICAgcmV0dXJu
IGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJl
c291cmNlUmVjZWl2ZVJlc3BvbnNlRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
CitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJl
c291cmNlUmVjZWl2ZVJlc3BvbnNlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0g
ZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJpZGVudGlmaWVyIiwg
aWRlbnRpZmllcik7Ci0gICAgZGF0YS5zZXQoInN0YXR1c0NvZGUiLCByZXNwb25zZS5odHRwU3Rh
dHVzQ29kZSgpKTsKLSAgICBkYXRhLnNldCgibWltZVR5cGUiLCByZXNwb25zZS5taW1lVHlwZSgp
KTsKLSAgICBkYXRhLnNldCgiZXhwZWN0ZWRDb250ZW50TGVuZ3RoIiwgcmVzcG9uc2UuZXhwZWN0
ZWRDb250ZW50TGVuZ3RoKCkpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJ
bnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldE51bWJlcigiaWRlbnRpZmll
ciIsIGlkZW50aWZpZXIpOworICAgIGRhdGEtPnNldE51bWJlcigic3RhdHVzQ29kZSIsIHJlc3Bv
bnNlLmh0dHBTdGF0dXNDb2RlKCkpOworICAgIGRhdGEtPnNldFN0cmluZygibWltZVR5cGUiLCBy
ZXNwb25zZS5taW1lVHlwZSgpKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoImV4cGVjdGVkQ29udGVu
dExlbmd0aCIsIHJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKTsKICAgICByZXR1cm4g
ZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVz
b3VyY2VGaW5pc2hEYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBib29sIGRpZEZhaWwpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlRmluaXNoRGF0YSh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGJvb2wgZGlkRmFpbCkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZy
b250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgiaWRlbnRpZmllciIsIGlk
ZW50aWZpZXIpOwotICAgIGRhdGEuc2V0KCJkaWRGYWlsIiwgZGlkRmFpbCk7CisgICAgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAg
ZGF0YS0+c2V0TnVtYmVyKCJpZGVudGlmaWVyIiwgaWRlbnRpZmllcik7CisgICAgZGF0YS0+c2V0
Qm9vbCgiZGlkRmFpbCIsIGRpZEZhaWwpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRP
YmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKElu
c3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQorUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZWNlaXZl
UmVzb3VyY2VEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKIHsKLSAgICBTY3JpcHRPYmpl
Y3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgiaWRl
bnRpZmllciIsIGlkZW50aWZpZXIpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEg
PSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldE51bWJlcigiaWRlbnRp
ZmllciIsIGlkZW50aWZpZXIpOwogICAgIHJldHVybiBkYXRhOwogfQogICAgIAotU2NyaXB0T2Jq
ZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFpbnREYXRhKEluc3BlY3RvckZyb250
ZW5kKiBmcm9udGVuZCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFpbnREYXRhKGNvbnN0IEludFJlY3Qm
IHJlY3QpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2Jq
ZWN0KCk7Ci0gICAgZGF0YS5zZXQoIngiLCByZWN0LngoKSk7Ci0gICAgZGF0YS5zZXQoInkiLCBy
ZWN0LnkoKSk7Ci0gICAgZGF0YS5zZXQoIndpZHRoIiwgcmVjdC53aWR0aCgpKTsKLSAgICBkYXRh
LnNldCgiaGVpZ2h0IiwgcmVjdC5oZWlnaHQoKSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0TnVtYmVy
KCJ4IiwgcmVjdC54KCkpOworICAgIGRhdGEtPnNldE51bWJlcigieSIsIHJlY3QueSgpKTsKKyAg
ICBkYXRhLT5zZXROdW1iZXIoIndpZHRoIiwgcmVjdC53aWR0aCgpKTsKKyAgICBkYXRhLT5zZXRO
dW1iZXIoImhlaWdodCIsIHJlY3QuaGVpZ2h0KCkpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1T
Y3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYXJzZUhUTUxEYXRhKElu
c3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQg
aW50IHN0YXJ0TGluZSkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlUGFyc2VIVE1MRGF0YSh1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBp
bnQgc3RhcnRMaW5lKQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1Nj
cmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJsZW5ndGgiLCBsZW5ndGgpOwotICAgIGRhdGEu
c2V0KCJzdGFydExpbmUiLCBzdGFydExpbmUpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldE51bWJlcigi
bGVuZ3RoIiwgbGVuZ3RoKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoInN0YXJ0TGluZSIsIHN0YXJ0
TGluZSk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVS
ZWNvcmRGYWN0b3J5LmgKaW5kZXggZjkwNWVjYy4uNmI1N2E2ZCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKQEAgLTM3LDQ3ICszNyw0NyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICBjbGFzcyBFdmVudDsKICAgICBjbGFzcyBJbnNwZWN0b3JGcm9udGVu
ZDsKKyAgICBjbGFzcyBJbnNwZWN0b3JPYmplY3Q7CiAgICAgY2xhc3MgSW50UmVjdDsKICAgICBj
bGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLSAgICBj
bGFzcyBTY3JpcHRPYmplY3Q7CiAKICAgICBjbGFzcyBUaW1lbGluZVJlY29yZEZhY3Rvcnkgewog
ICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVHZW5lcmljUmVj
b3JkKEluc3BlY3RvckZyb250ZW5kKiwgZG91YmxlIHN0YXJ0VGltZSk7CisgICAgICAgIHN0YXRp
YyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVHZW5lcmljUmVjb3JkKGRvdWJsZSBzdGFy
dFRpbWUpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlR0NFdmVudERhdGEo
SW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBzaXplX3QgdXNlZEhlYXBTaXplRGVs
dGEpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlR0NFdmVu
dERhdGEoY29uc3Qgc2l6ZV90IHVzZWRIZWFwU2l6ZURlbHRhKTsKIAotICAgICAgICBzdGF0aWMg
U2NyaXB0T2JqZWN0IGNyZWF0ZUZ1bmN0aW9uQ2FsbERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBj
b25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKTsKKyAgICAgICAgc3RhdGlj
IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUZ1bmN0aW9uQ2FsbERhdGEoY29uc3QgU3Ry
aW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSk7CiAKLSAgICAgICAgc3RhdGljIFNjcmlw
dE9iamVjdCBjcmVhdGVFdmVudERpc3BhdGNoRGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGNvbnN0
IEV2ZW50Jik7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVF
dmVudERpc3BhdGNoRGF0YShjb25zdCBFdmVudCYpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRP
YmplY3QgY3JlYXRlR2VuZXJpY1RpbWVyRGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGludCB0aW1l
cklkKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUdlbmVy
aWNUaW1lckRhdGEoaW50IHRpbWVySWQpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3Qg
Y3JlYXRlVGltZXJJbnN0YWxsRGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGludCB0aW1lcklkLCBp
bnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IGNyZWF0ZVRpbWVySW5zdGFsbERhdGEoaW50IHRpbWVySWQsIGludCB0aW1l
b3V0LCBib29sIHNpbmdsZVNob3QpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3Jl
YXRlWEhSUmVhZHlTdGF0ZUNoYW5nZURhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBTdHJp
bmcmIHVybCwgaW50IHJlYWR5U3RhdGUpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gY3JlYXRlWEhSUmVhZHlTdGF0ZUNoYW5nZURhdGEoY29uc3QgU3RyaW5nJiB1cmws
IGludCByZWFkeVN0YXRlKTsKIAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVhI
UkxvYWREYXRhKEluc3BlY3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJiB1cmwpOworICAgICAg
ICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlWEhSTG9hZERhdGEoY29uc3Qg
U3RyaW5nJiB1cmwpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlRXZhbHVh
dGVTY3JpcHREYXRhKEluc3BlY3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJiwgZG91YmxlIGxp
bmVOdW1iZXIpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRl
RXZhbHVhdGVTY3JpcHREYXRhKGNvbnN0IFN0cmluZyYsIGRvdWJsZSBsaW5lTnVtYmVyKTsKIAot
ICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZU1hcmtUaW1lbGluZURhdGEoSW5zcGVj
dG9yRnJvbnRlbmQqLCBjb25zdCBTdHJpbmcmKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IGNyZWF0ZU1hcmtUaW1lbGluZURhdGEoY29uc3QgU3RyaW5nJik7CiAKLSAg
ICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YShJ
bnNwZWN0b3JGcm9udGVuZCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwKKyAgICAgICAgc3Rh
dGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVJlc291cmNlU2VuZFJlcXVlc3REYXRh
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwKICAgICAgICAgICAgIGJvb2wgaXNNYWluUmVzb3Vy
Y2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmpl
Y3QgY3JlYXRlU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3REYXRhKEluc3BlY3RvckZyb250ZW5kKiwg
Y29uc3QgU3RyaW5nJik7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBj
cmVhdGVTY2hlZHVsZVJlc291cmNlUmVxdWVzdERhdGEoY29uc3QgU3RyaW5nJik7CiAKLSAgICAg
ICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVSZXNvdXJjZVJlY2VpdmVSZXNwb25zZURhdGEo
SW5zcGVjdG9yRnJvbnRlbmQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNy
ZWF0ZVJlc291cmNlUmVjZWl2ZVJlc3BvbnNlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKIAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0
IGNyZWF0ZVJlY2VpdmVSZXNvdXJjZURhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
Y3JlYXRlUmVjZWl2ZVJlc291cmNlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwogCi0g
ICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKEluc3Bl
Y3RvckZyb250ZW5kKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBib29sIGRpZEZhaWwpOwor
ICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlUmVzb3VyY2VGaW5p
c2hEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgYm9vbCBkaWRGYWlsKTsKIAotICAgICAg
ICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVBhaW50RGF0YShJbnNwZWN0b3JGcm9udGVuZCos
IGNvbnN0IEludFJlY3QmKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IGNyZWF0ZVBhaW50RGF0YShjb25zdCBJbnRSZWN0Jik7CiAKLSAgICAgICAgc3RhdGljIFNjcmlw
dE9iamVjdCBjcmVhdGVQYXJzZUhUTUxEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgdW5zaWduZWQg
aW50IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSk7CisgICAgICAgIHN0YXRpYyBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVQYXJzZUhUTUxEYXRhKHVuc2lnbmVkIGludCBsZW5n
dGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5KCkgeyB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDJlMjM0NWQuLmMxNmM3NTUgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTAtMDYtMTkgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdlYkluc3BlY3RvcjoganMgZnVuY3Rpb24gbmFtZSB3YXMgZml4ZWQuCisgICAgICAgIGRpc3Bh
dGNoTWVzc2FnZVRvRnJvbnRlbmQgLT4gZGlzcGF0Y2hNZXNzYWdlRnJvbUJhY2tlbmQuICAgICAg
ICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MDY3NQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQp
OgorCiAyMDEwLTA2LTE1ICBEdW1pdHJ1IERhbmlsaXVjICA8ZHVtaUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcAppbmRleCA0YmMzYzMyLi42MTY4MzRiIDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5j
cHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3Bw
CkBAIC0xMzQsNyArMTM0LDcgQEAgYm9vbCBJbnNwZWN0b3JDbGllbnQ6OnNlbmRNZXNzYWdlVG9G
cm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgaWYgKCFzY3JpcHRDb250cm9sbGVy
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBTdHJpbmcgZGlzcGF0Y2hUb0Zyb250ZW5k
KCJXZWJJbnNwZWN0b3IuZGlzcGF0Y2hNZXNzYWdlVG9Gcm9udGVuZCgiKTsKKyAgICBTdHJpbmcg
ZGlzcGF0Y2hUb0Zyb250ZW5kKCJXZWJJbnNwZWN0b3IuZGlzcGF0Y2hNZXNzYWdlRnJvbUJhY2tl
bmQoIik7CiAgICAgZGlzcGF0Y2hUb0Zyb250ZW5kICs9IG1lc3NhZ2U7CiAgICAgZGlzcGF0Y2hU
b0Zyb250ZW5kICs9ICIpOyI7CiAgICAgc2NyaXB0Q29udHJvbGxlci0+ZXhlY3V0ZVNjcmlwdChk
aXNwYXRjaFRvRnJvbnRlbmQpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dl
YktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMzZiMjQ2OC4uZDAyNDU3MiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTAtMDYtMTkgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkluc3Bl
Y3RvcjoganMgZnVuY3Rpb24gbmFtZSB3YXMgZml4ZWQuCisgICAgICAgIGRpc3BhdGNoTWVzc2Fn
ZVRvRnJvbnRlbmQgLT4gZGlzcGF0Y2hNZXNzYWdlRnJvbUJhY2tlbmQuICAgCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDY3NQorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ2xpZW50UXQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZCk6CisKIDIwMTAtMDYtMTkg
IE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9JbnNwZWN0b3JDbGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yQ2xpZW50UXQuY3BwCmluZGV4IGZkZTA1NTYuLjQ1MDMxMWQgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRRdC5jcHAKKysrIGIvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFF0LmNwcApAQCAtMTg0LDcgKzE4
NCw3IEBAIGJvb2wgSW5zcGVjdG9yQ2xpZW50UXQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgaWYgKCFzY3JpcHRDb250cm9sbGVyKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBTdHJpbmcgZGlzcGF0Y2hUb0Zyb250ZW5kKCJXZWJJbnNwZWN0
b3IuZGlzcGF0Y2hNZXNzYWdlVG9Gcm9udGVuZCgiKTsKKyAgICBTdHJpbmcgZGlzcGF0Y2hUb0Zy
b250ZW5kKCJXZWJJbnNwZWN0b3IuZGlzcGF0Y2hNZXNzYWdlRnJvbUJhY2tlbmQoIik7CiAgICAg
ZGlzcGF0Y2hUb0Zyb250ZW5kICs9IG1lc3NhZ2U7CiAgICAgZGlzcGF0Y2hUb0Zyb250ZW5kICs9
ICIpOyI7CiAgICAgc2NyaXB0Q29udHJvbGxlci0+ZXhlY3V0ZVNjcmlwdChkaXNwYXRjaFRvRnJv
bnRlbmQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60517</attachid>
            <date>2010-07-05 05:29:45 -0700</date>
            <delta_ts>2010-07-05 08:15:18 -0700</delta_ts>
            <desc>[patch] rebaselined. for check at trybots.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>77545</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBmNjQwNzI0Li41YjM0Y2Fh
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMDYtMTkgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE9uIHRoZSB3YXkgdG8gUmVtb3RlIERlYnVnaW5nIHdlIHdhbnQgdG8gc3VwcG9ydCBKU09O
CisgICAgICAgIHNlcmlhbGl6YXRpb24gb24gYm90aCBzaWRlcyBvZiBXZWJJbnNwZWN0b3IgdHJh
bnNwb3J0LiBBcyBmYXIgYXMKKyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmQgY2xhc3MgaXMgYSBz
aW1wbGUgcHJveHkgdG8gV2ViSW5zcGVjdG9yIGl0IHdvdWxkCisgICAgICAgIGJlIGJldHRlciB0
byBnZW5lcmF0ZSBpdCBmcm9tIGFuIElETCBmaWxlLiBXZSBoYXZlIGdlbmVyYXRvcgorICAgICAg
ICBpbmZvc3RydWN0dXJlIGZvciBiaW5kaW5nIGFuZCB3aWxsIHJldXNlIGl0IGZvciBuZXcgZ2Vu
ZXJhdG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDA2NzUKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorCiAyMDEwLTA2LTIzICBNYXJ0aW4g
Um9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBH
dXN0YXZvIE5vcm9uaGEgU2lsdmEuCmRpZmYgLS1naXQgYS9HTlVtYWtlZmlsZS5hbSBiL0dOVW1h
a2VmaWxlLmFtCmluZGV4IGNjYmUyOGYuLjQxNGNiOTEgMTAwNjQ0Ci0tLSBhL0dOVW1ha2VmaWxl
LmFtCisrKyBiL0dOVW1ha2VmaWxlLmFtCkBAIC01Nyw2ICs1Nyw3IEBAIG5vaW5zdF9IRUFERVJT
IDo9CiBub2luc3RfTFRMSUJSQVJJRVMgOj0KIGxpYl9MVExJQlJBUklFUyA6PQogSURMX0JJTkRJ
TkdTIDo9CitJTlNQRUNUT1JfSU5URVJGQUNFUyA6PQogVEVTVF9QUk9HUyA6PQogUE9GSUxFUyA6
PQogTU9GSUxFUyA6PQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYzhmZGRlNS4uOGQ4ZDNkNSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yODks
NiArMjg5LDcgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAKICAgICBpbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRIb3N0LmlkbAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmlkbAorICAg
IGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIuaWRsCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5pZGwKICAgICBpbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5pZGwK
ICAgICBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQ2MGYwNC4uMmYxNzU4NSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw5MSBAQAorMjAxMC0wNi0xOSAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogT24gdGhlIHdheSB0byBSZW1vdGUgRGVidWdpbmcgd2Ugd2FudCB0byBzdXBw
b3J0IEpTT04KKyAgICAgICAgc2VyaWFsaXphdGlvbiBvbiBib3RoIHNpZGVzIG9mIFdlYkluc3Bl
Y3RvciB0cmFuc3BvcnQuIEFzIGZhciBhcworICAgICAgICBJbnNwZWN0b3JGcm9udGVuZCBjbGFz
cyBpcyBhIHNpbXBsZSBwcm94eSB0byBXZWJJbnNwZWN0b3IgaXQgd291bGQKKyAgICAgICAgYmUg
YmV0dGVyIHRvIGdlbmVyYXRlIGl0IGZyb20gYW4gSURMIGZpbGUuIFdlIGhhdmUgZ2VuZXJhdG9y
CisgICAgICAgIGluZm9zdHJ1Y3R1cmUgZm9yIGJpbmRpbmcgYW5kIHdpbGwgcmV1c2UgaXQgZm9y
IG5ldyBnZW5lcmF0b3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MDY3NQorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBX
ZWJDb3JlLmd5cC9XZWJDb3JlLmd5cDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cC9zY3JpcHRzL3J1
bGVfYmluZGluZy5weToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS5wcmk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1NjcmlwdENhbGxTdGFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDYWxsU3Rh
Y2s6OnN0YWNrVHJhY2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5o
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdENh
bGxTdGFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJh
Y2UpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFjay5oOgorICAgICAgICAq
IGluc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtOiBBZGRlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ29udHJvbGxlcjo6c3RhcnRUaW1lbGluZVByb2ZpbGVyKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmg6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGw6IEFkZGVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaEdDRXZlbnRSZWNv
cmRzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxDYWxs
RnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2ls
bERpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6d2lsbExheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojp3aWxsUmVjYWxjdWxhdGVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp3aWxsUGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6d2lsbFdyaXRlSFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpkaWRXcml0ZUhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6ZGlkSW5zdGFsbFRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmRpZFJlbW92ZVRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxGaXJlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENoYW5nZVhIUlJlYWR5U3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbExvYWRYSFIpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbEV2YWx1YXRlU2NyaXB0KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFNjaGVkdWxlUmVzb3Vy
Y2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Ondp
bGxTZW5kUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OndpbGxSZWNlaXZlUmVzb3VyY2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRGaW5pc2hMb2FkaW5nUmVz
b3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTWFy
a1RpbWVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRp
ZE1hcmtET01Db250ZW50RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6ZGlkTWFya0xvYWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpyZXNldEZyb250ZW5kUHJveHlPYmplY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6YWRkUmVjb3JkVG9UaW1lbGluZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzZXRIZWFwU2l6ZVN0YXRpc3RpYyk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21wbGV0ZUN1
cnJlbnRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
cHVzaEN1cnJlbnRSZWNvcmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpUaW1l
bGluZVJlY29yZEVudHJ5OjpUaW1lbGluZVJlY29yZEVudHJ5KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdDRXZlbnREYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRnVuY3Rpb25DYWxsRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUV2ZW50RGlzcGF0Y2hE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2Vu
ZXJpY1RpbWVyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZVRpbWVySW5zdGFsbERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVYSFJSZWFkeVN0YXRlQ2hhbmdlRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUkxvYWREYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZhbHVhdGVTY3JpcHREYXRh
KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlTWFya1Rp
bWVsaW5lRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZVNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlU2VuZFJlcXVlc3REYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VSZWNlaXZl
UmVzcG9uc2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVj
b3JkRmFjdG9yeTo6Y3JlYXRlUmVjZWl2ZVJlc291cmNlRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhaW50RGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhcnNlSFRNTERhdGEpOgorICAgICAg
ICAqIGluc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaDoKKwogMjAxMC0wNy0wNCAgQWxp
Y2UgTGl1ICA8YWxpY2UubGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4g
QmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDVlODBmMmUuLmFmNDA4M2IgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTQ3MCw5ICs0NzAsMTEgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgWFNMVFBy
b2Nlc3NvciBcCiAjCiAKK0lOU1BFQ1RPUl9DTEFTU0VTID0gSW5zcGVjdG9yRnJvbnRlbmQyCisK
IC5QSE9OWSA6IGFsbAogCi1KU19ET01fSEVBREVSUz0kKGZpbHRlci1vdXQgSlNFdmVudExpc3Rl
bmVyLmggSlNFdmVudFRhcmdldC5oLCQoRE9NX0NMQVNTRVM6JT1KUyUuaCkpCitKU19ET01fSEVB
REVSUz0kKGZpbHRlci1vdXQgSlNFdmVudExpc3RlbmVyLmggSlNFdmVudFRhcmdldC5oLCQoRE9N
X0NMQVNTRVM6JT1KUyUuaCkgJChJTlNQRUNUT1JfQ0xBU1NFUzolPVJlbW90ZSUuaCkpCiAKIGFs
bCA6IFwKICAgICAkKEpTX0RPTV9IRUFERVJTKSBcCkBAIC04MjAsMjAgKzgyMiwzMiBAQCBlbmRp
ZgogCiAjIC0tLS0tLS0tCiAKLSMgSmF2YVNjcmlwdCBiaW5kaW5ncwotCi1HRU5FUkFURV9CSU5E
SU5HUyA9IHBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCBcCi0gICAgLS1pbmNsdWRlIGRvbSAt
LWluY2x1ZGUgaHRtbCAtLWluY2x1ZGUgY3NzIC0taW5jbHVkZSBwYWdlIC0taW5jbHVkZSBub3Rp
ZmljYXRpb25zIC0taW5jbHVkZSB4bWwgLS1pbmNsdWRlIHN2ZyAtLXdyaXRlLWRlcGVuZGVuY2ll
cyAtLW91dHB1dERpciAuCisjIENvbW1vbiBnZW5lcmF0b3IgdGhpbmdzCiAKLUdFTkVSQVRFX0JJ
TkRJTkdTX1NDUklQVFMgPSBcCitHRU5FUkFURV9TQ1JJUFRTID0gXAogICAgIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvci5wbSBcCiAgICAgYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIu
cG0gXAogICAgIGJpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtIFwKLSAgICBiaW5kaW5n
cy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIFwKLSMKKyAgICBiaW5kaW5ncy9zY3JpcHRz
L2dlbmVyYXRlLWJpbmRpbmdzLnBsCisKK2dlbmVyYXRvcl9zY3JpcHQgPSBwZXJsICQoYWRkcHJl
Zml4IC1JICQoV2ViQ29yZSkvLCAkKHNvcnQgJChkaXIgJCgxKSkpKSAkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwKKworIyBKUyBiaW5kaW5ncyBnZW5lcmF0
b3IKKworSURMX0lOQ0xVREVTID0gZG9tIGh0bWwgY3NzIHBhZ2Ugbm90aWZpY2F0aW9ucyB4bWwg
c3ZnCitJRExfQ09NTU9OX0FSR1MgPSAkKElETF9JTkNMVURFUzolPS0taW5jbHVkZSAlKSAtLXdy
aXRlLWRlcGVuZGVuY2llcyAtLW91dHB1dERpciAuCisKK0pTX0JJTkRJTkdTX1NDUklQVFMgPSAk
KEdFTkVSQVRFX1NDUklQVFMpIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisK
K0pTJS5oIDogJS5pZGwgJChKU19CSU5ESU5HU19TQ1JJUFRTKQorCSQoY2FsbCBnZW5lcmF0b3Jf
c2NyaXB0LCAkKEpTX0JJTkRJTkdTX1NDUklQVFMpKSAkKElETF9DT01NT05fQVJHUykgLS1kZWZp
bmVzICIkKEZFQVRVUkVfREVGSU5FUykgJChBRERJVElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFH
RV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRvciBKUyAkPAorCisjIEluc3BlY3RvciBpbnRlcmZhY2Vz
IGdlbmVyYXRvcgorCitJTlNQRUNUT1JfR0VORVJBVE9SX1NDUklQVFMgPSAkKEdFTkVSQVRFX1ND
UklQVFMpIGluc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCiAKLUpTJS5oIDogJS5p
ZGwgJChHRU5FUkFURV9CSU5ESU5HU19TQ1JJUFRTKSBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQotCSQoR0VORVJBVEVfQklORElOR1MpIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RF
RklORVMpICQoQURESVRJT05BTF9JRExfREVGSU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1n
ZW5lcmF0b3IgSlMgJDwKK1JlbW90ZSUuaCA6ICUuaWRsICQoSU5TUEVDVE9SX0dFTkVSQVRPUl9T
Q1JJUFRTKQorCSQoY2FsbCBnZW5lcmF0b3Jfc2NyaXB0LCAkKElOU1BFQ1RPUl9HRU5FUkFUT1Jf
U0NSSVBUUykpIC0tb3V0cHV0RGlyIC4gIC0tZGVmaW5lcyAiTEFOR1VBR0VfSkFWQVNDUklQVCIg
LS1nZW5lcmF0b3IgSW5zcGVjdG9yICQ8CiAKIC1pbmNsdWRlICQoSlNfRE9NX0hFQURFUlM6Lmg9
LmRlcCkKIApAQCAtOTM4LDggKzk1Miw5IEBAIFdlYkNvcmUuTFA2NC5leHAgOiBXZWJDb3JlLmV4
cAogCiAjIE9iamVjdGl2ZS1DIGJpbmRpbmdzCiAKLURPTSUuaCA6ICUuaWRsICQoR0VORVJBVEVf
QklORElOR1NfU0NSSVBUUykgYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbSBi
aW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaAotCSQoR0VORVJBVEVfQklORElOR1Mp
IC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMpICQoQURESVRJT05BTF9JRExfREVGSU5FUykg
TEFOR1VBR0VfT0JKRUNUSVZFX0MiIC0tZ2VuZXJhdG9yIE9iakMgJDwKK0RPTV9CSU5ESU5HU19T
Q1JJUFRTID0gJChHRU5FUkFURV9CSU5ESU5HX1NDUklQVFMpIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvck9iakMucG0KK0RPTSUuaCA6ICUuaWRsICQoRE9NX0JJTkRJTkdTX1NDUklQVFMp
IGJpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oCisJJChjYWxsIGdlbmVyYXRvcl9z
Y3JpcHQsICQoRE9NX0JJTkRJTkdTX1NDUklQVFMpKSAkKElETF9DT01NT05fQVJHUykgLS1kZWZp
bmVzICIkKEZFQVRVUkVfREVGSU5FUykgJChBRERJVElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFH
RV9PQkpFQ1RJVkVfQyIgLS1nZW5lcmF0b3IgT2JqQyAkPAogCiAtaW5jbHVkZSAkKE9CSkNfRE9N
X0hFQURFUlM6Lmg9LmRlcCkKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBi
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggYmYxOTdmYy4uNGE0NmFiOSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBA
IC0zMzMsNiArMzMzLDggQEAgSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3htbC9YTUxTZXJp
YWxpemVyLmlkbCBcCiAJV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5pZGwKIAorSU5TUEVDVE9S
X0lOVEVSRkFDRVMgKz0gV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbAor
CiB3ZWJjb3JlZ3RrX2RvbV9zb3VyY2VzID0gXAogCVdlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9D
b252ZXJ0VG9VVEY4U3RyaW5nLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0NvbnZl
cnRUb1VURjhTdHJpbmcuaCBcCkBAIC0zOTkxLDEwICszOTkzLDE1IEBAIHZwYXRoICUuaWRsID0g
JChJRExfUEFUSCkKIAogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KUyUuaDogRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KUyUuY3BwOwogCitEZXJpdmVkU291cmNlcy9XZWJDb3JlL1JlbW90ZSUuaDog
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9SZW1vdGUlLmNwcDsKKwogLlNFQ09OREFSWToKIERlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlMlLmNwcDogJS5pZGwgJChTQ1JJUFRTX0JJTkRJTkdTKSAkKFdl
YkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCiAJJChBTV9WX0dFTikk
KFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkvYmluZGluZ3Mv
c2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAkKElETF9QQVRIOiU9LS1pbmNsdWRlICIlIikg
LS1vdXRwdXREaXIgIiQoR0VOU09VUkNFU19XRUJDT1JFKSIgLS1kZWZpbmVzICJMQU5HVUFHRV9K
QVZBU0NSSVBUPTEgJChGRUFUVVJFX0RFRklORVMpIiAtLWdlbmVyYXRvciBKUyAkPAogCitEZXJp
dmVkU291cmNlcy9XZWJDb3JlL1JlbW90ZSUuY3BwOiAlLmlkbCAkKFNDUklQVFNfQklORElOR1Mp
ICQoV2ViQ29yZSkvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KKwkkKEFNX1Zf
R0VOKSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgLUkkKFdlYkNvcmUpL2lu
c3BlY3RvciAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwg
JChJRExfUEFUSDolPS0taW5jbHVkZSAiJSIpIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAt
LWRlZmluZXMgIkxBTkdVQUdFX0pBVkFTQ1JJUFQ9MSAkKEZFQVRVUkVfREVGSU5FUykiIC0tZ2Vu
ZXJhdG9yIEluc3BlY3RvciAkPAorCiBJRExfQklORElOR1NfSlNfUFVSRSA6PSBcCiAJV2ViQ29y
ZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlkbCBcCiAJV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQ
YXRoRGF0YS5pZGwgXApAQCAtNDAxNCw4ICs0MDIxLDExIEBAIElETF9CSU5ESU5HU19KU19QVVJF
IDo9IFwKIElETF9CSU5ESU5HU19KUyA6PSAkKGZpbHRlci1vdXQgJChJRExfQklORElOR1NfSlNf
UFVSRSksJChJRExfQklORElOR1MpKQogCiB3ZWJjb3JlX2J1aWx0X25vc291cmNlcyArPSAkKHBh
dHN1YnN0ICUuaWRsLERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlMlLmgsJChub3RkaXIgJChJRExf
QklORElOR1MpKSkKK3dlYmNvcmVfYnVpbHRfbm9zb3VyY2VzICs9ICQocGF0c3Vic3QgJS5pZGws
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9SZW1vdGUlLmgsJChub3RkaXIgJChJTlNQRUNUT1JfSU5U
RVJGQUNFUykpKQogCi13ZWJjb3JlX2J1aWx0X25vc291cmNlcyArPSAkKHBhdHN1YnN0ICUuaWRs
LERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlMlLmNwcCwkKG5vdGRpciAkKElETF9CSU5ESU5HU19K
UykpKQord2ViY29yZV9idWlsdF9jcHAgPSAkKHBhdHN1YnN0ICUuaWRsLERlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlMlLmNwcCwkKG5vdGRpciAkKElETF9CSU5ESU5HU19KUykpKQord2ViY29yZV9i
dWlsdF9jcHAgKz0gJChwYXRzdWJzdCAlLmlkbCxEZXJpdmVkU291cmNlcy9XZWJDb3JlL1JlbW90
ZSUuY3BwLCQobm90ZGlyICQoSU5TUEVDVE9SX0lOVEVSRkFDRVMpKSkKK3dlYmNvcmVfYnVpbHRf
bm9zb3VyY2VzICs9ICQod2ViY29yZV9idWlsdF9jcHApCiAKIHdlYmNvcmVfYnVpbHRfb2JqZWN0
cyA9IDo9ICQocGF0c3Vic3QgJS5jcHAsJS5sbywkKHdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzKSkK
IApAQCAtNDAyMyw5ICs0MDMzLDkgQEAgJCh3ZWJjb3JlX2J1aWx0X29iamVjdHMpOiBBTV9DUFBG
TEFHUys9JChjb3Jla2l0X2NwcGZsYWdzKQogCiAkKHdlYmNvcmVfYnVpbHRfb2JqZWN0cyk6IEFN
X0NYWEZMQUdTKz0kKGxpYndlYmtpdGd0a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQF9A
V0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQF9sYV9DWFhGTEFHUykKIAotbGliV2ViQ29yZUpT
X29iamVjdHMgOj0gJChwYXRzdWJzdCAlLmlkbCxEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTJS5s
bywkKG5vdGRpciAkKElETF9CSU5ESU5HU19KUykpKQorbGliV2ViQ29yZUpTX29iamVjdHMgOj0g
JChwYXRzdWJzdCAlLmNwcCwlLmxvLCQod2ViY29yZV9idWlsdF9jcHApKQogCi1saWJXZWJDb3Jl
SlNfZGVwZmlsZXMgOj0gJChwYXRzdWJzdCAlLmlkbCxEZXJpdmVkU291cmNlcy9XZWJDb3JlLyQo
REVQRElSKS9KUyUuUGxvLCQobm90ZGlyICQoSURMX0JJTkRJTkdTX0pTKSkpCitsaWJXZWJDb3Jl
SlNfZGVwZmlsZXMgOj0gJChwYXRzdWJzdCAlLmNwcCxEZXJpdmVkU291cmNlcy9XZWJDb3JlLyQo
REVQRElSKS8lLlBsbywkKG5vdGRpciAkKHdlYmNvcmVfYnVpbHRfY3BwKSkpCiAKICMgT2xkZXIg
YXV0b21ha2UgdmVyc2lvbnMgKDEuNykgcGxhY2UgUGxvIGZpbGVzIGluIGEgZGlmZmVyZW50IHBs
YWNlOgogbGliV2ViQ29yZUpTX2RlcGZpbGVzICs9ICQocGF0c3Vic3QgJS5sbywkKERFUERJUikv
JS5QbG8sJChsaWJXZWJDb3JlSlNfb2JqZWN0cykpCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwL1dlYkNvcmUuZ3lwIGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRl
eCAxODIxZmZjLi4xNWE0N2Q5IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNv
cmUuZ3lwCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKQEAgLTQ1NCw2ICs0
NTQsNDAgQEAKICAgICAgICAgICBdLAogICAgICAgICB9LAogICAgICAgICB7CisgICAgICAgICAg
J2FjdGlvbl9uYW1lJzogJ0luc3BlY3RvckZyb250ZW5kMicsCisgICAgICAgICAgJ2lucHV0cyc6
IFsKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBs
JywKKyAgICAgICAgICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0nLAor
ICAgICAgICAgICAgJy4uL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtJywKKyAgICAgICAg
ICAgICcuLi9iaW5kaW5ncy9zY3JpcHRzL0lETFN0cnVjdHVyZS5wbScsCisgICAgICAgICAgICAn
Li4vaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0nLAorICAgICAgICAgICAgJy4u
L2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIuaWRsJywKKyAgICAgICAgICBdLAorICAgICAg
ICAgICdvdXRwdXRzJzogWworICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIp
L3dlYmNvcmUvYmluZGluZ3MvUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQyLmNwcCcsCisgICAgICAg
ICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L2JpbmRpbmdzL1JlbW90ZUlu
c3BlY3RvckZyb250ZW5kMi5oJywKKyAgICAgICAgICBdLAorICAgICAgICAgICd2YXJpYWJsZXMn
OiB7CisgICAgICAgICAgICAnZ2VuZXJhdG9yX2luY2x1ZGVfZGlycyc6IFsKKyAgICAgICAgICAg
IF0sCisgICAgICAgICAgfSwKKyAgICAgICAgICAnYWN0aW9uJzogWworICAgICAgICAgICAgJ3B5
dGhvbicsCisgICAgICAgICAgICAnc2NyaXB0cy9ydWxlX2JpbmRpbmcucHknLAorICAgICAgICAg
ICAgJ1JlbW90ZScsCisgICAgICAgICAgICAnLi4vaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
Mi5pZGwnLAorICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmNvcmUv
YmluZGluZ3MnLAorICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtp
dC9iaW5kaW5ncycsCisgICAgICAgICAgICAnLS0nLAorICAgICAgICAgICAgJzxAKF9pbnB1dHMp
JywKKyAgICAgICAgICAgICctLScsCisgICAgICAgICAgICAnLS1kZWZpbmVzJywgJ0xBTkdVQUdF
X0pBVkFTQ1JJUFQnLAorICAgICAgICAgICAgJy0tZ2VuZXJhdG9yJywgJ0luc3BlY3RvcicsCisg
ICAgICAgICAgICAnPEAoZ2VuZXJhdG9yX2luY2x1ZGVfZGlycyknCisgICAgICAgICAgXSwKKyAg
ICAgICAgICAnbWVzc2FnZSc6ICdHZW5lcmF0aW5nIEluc3BlY3RvckZyb250ZW5kMiBjbGFzcyBm
cm9tIEluc3BlY3RvckZyb250ZW5kMi5pZGwnLAorICAgICAgICB9LAorICAgICAgICB7CiAgICAg
ICAgICAgJ2FjdGlvbl9uYW1lJzogJ1hNTE5hbWVzJywKICAgICAgICAgICAnaW5wdXRzJzogWwog
ICAgICAgICAgICAgJy4uL2RvbS9tYWtlX25hbWVzLnBsJywKQEAgLTU5MSw2ICs2MjUsNyBAQAog
ICAgICAgICAgICdhY3Rpb24nOiBbCiAgICAgICAgICAgICAncHl0aG9uJywKICAgICAgICAgICAg
ICdzY3JpcHRzL3J1bGVfYmluZGluZy5weScsCisgICAgICAgICAgICAndjgnLAogICAgICAgICAg
ICAgJzwoUlVMRV9JTlBVVF9QQVRIKScsCiAgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJ
QVRFX0RJUikvd2ViY29yZS9iaW5kaW5ncycsCiAgICAgICAgICAgICAnPChTSEFSRURfSU5URVJN
RURJQVRFX0RJUikvd2Via2l0L2JpbmRpbmdzJywKQEAgLTY1NSw2ICs2OTAsOSBAQAogICAgICAg
ICAjIEFkZGl0aW9uYWwgLmNwcCBmaWxlcyBmcm9tIHRoZSB3ZWJjb3JlX2JpbmRpbmdzX3NvdXJj
ZXMgcnVsZXMuCiAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvQ1NT
R3JhbW1hci5jcHAnLAogICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0
L1hQYXRoR3JhbW1hci5jcHAnLAorCisgICAgICAgICMgQWRkaXRpb25hbCAuY3BwIGZpbGVzIGZy
b20gdGhlIHdlYmNvcmVfaW5zcGVjdG9yX3NvdXJjZXMgbGlzdC4KKyAgICAgICAgJzwoU0hBUkVE
X0lOVEVSTUVESUFURV9ESVIpL3dlYmNvcmUvYmluZGluZ3MvUmVtb3RlSW5zcGVjdG9yRnJvbnRl
bmQyLmNwcCcsCiAgICAgICBdLAogICAgICAgJ2NvbmRpdGlvbnMnOiBbCiAgICAgICAgIFsnamF2
YXNjcmlwdF9lbmdpbmU9PSJ2OCInLCB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lw
L3NjcmlwdHMvcnVsZV9iaW5kaW5nLnB5IGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL3J1
bGVfYmluZGluZy5weQppbmRleCAyNGQxNzhmLi5jZGQ0MjhkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwL3NjcmlwdHMvcnVsZV9iaW5kaW5nLnB5CisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5neXAvc2NyaXB0cy9ydWxlX2JpbmRpbmcucHkKQEAgLTgyLDggKzgyLDggQEAgZGVmIG1haW4o
YXJncyk6CiAgICAgYXNzZXJ0IGxlbihzZWN0aW9ucykgPT0gMywgc2VjdGlvbnMKICAgICAoYmFz
ZSwgaW5wdXRzLCBvcHRpb25zKSA9IHNlY3Rpb25zCiAKLSAgICBhc3NlcnQgbGVuKGJhc2UpID09
IDMsIGJhc2UKLSAgICAoaW5wdXQsIGNwcGRpciwgaGRpcikgPSBiYXNlCisgICAgYXNzZXJ0IGxl
bihiYXNlKSA9PSA0LCBiYXNlCisgICAgKHByZWZpeCwgaW5wdXQsIGNwcGRpciwgaGRpcikgPSBi
YXNlCiAKICAgICBhc3NlcnQgbGVuKGlucHV0cykgPiAxLCBpbnB1dHMKICAgICBnZW5lcmF0ZUJp
bmRpbmdzID0gaW5wdXRzWzBdCkBAIC0xMjIsNyArMTIyLDcgQEAgZGVmIG1haW4oYXJncyk6CiAg
ICAgaWYgY3BwZGlyICE9IGhkaXI6CiAgICAgICAgIGlucHV0QmFzZW5hbWUgPSBvcy5wYXRoLmJh
c2VuYW1lKGlucHV0KQogICAgICAgICAocm9vdCwgZXh0KSA9IG9zLnBhdGguc3BsaXRleHQoaW5w
dXRCYXNlbmFtZSkKLSAgICAgICAgaG5hbWUgPSAnVjglcy5oJyAlIHJvb3QKKyAgICAgICAgaG5h
bWUgPSAnJXMlcy5oJyAlIChwcmVmaXgudXBwZXIoKSwgcm9vdCkKICAgICAgICAgaHNyYyA9IG9z
LnBhdGguam9pbihjcHBkaXIsIGhuYW1lKQogICAgICAgICBoZHN0ID0gb3MucGF0aC5qb2luKGhk
aXIsIGhuYW1lKQogICAgICAgICBzaHV0aWwuY29weWZpbGUoaHNyYywgaGRzdCkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMmMy
MjFkOS4uNGE2Zjk2MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKQEAgLTI3Nyw2ICsyNzcsOSBAQAogICAgICAgICAgICAgJ3htbC9Y
UGF0aFJlc3VsdC5pZGwnLAogICAgICAgICAgICAgJ3htbC9YU0xUUHJvY2Vzc29yLmlkbCcsCiAg
ICAgICAgIF0sCisgICAgICAgICd3ZWJjb3JlX2luc3BlY3Rvcl9pZGxfZmlsZXMnOiBbCisgICAg
ICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGwnLAorICAgICAgICBdLAog
ICAgICAgICAnd2ViY29yZV9zdmdfYmluZGluZ3NfaWRsX2ZpbGVzJzogWwogICAgICAgICAgICAg
J3N2Zy9FbGVtZW50VGltZUNvbnRyb2wuaWRsJywKICAgICAgICAgICAgICdzdmcvU1ZHQUVsZW1l
bnQuaWRsJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNv
cmUucHJpCmluZGV4IDYyM2RiYjYuLjZjYzdhYTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtNjUyLDYgKzY1Miw4IEBAIElETF9C
SU5ESU5HUyArPSBcCiAgICAgeG1sL1hQYXRoRXZhbHVhdG9yLmlkbCBcCiAgICAgeG1sL1hTTFRQ
cm9jZXNzb3IuaWRsCiAKK0lOU1BFQ1RPUl9JTlRFUkZBQ0VTID0gaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kMi5pZGwKKwogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX01BVEhNTD0xKSB7CiAg
ICAgbWF0aG1sbmFtZXMub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9NYXRo
TUxOYW1lcy5jcHAKICAgICBtYXRobWxuYW1lcy5pbnB1dCA9IE1BVEhNTF9OQU1FUwpAQCAtNzE3
LDYgKzcxOSwxOCBAQCBpZGwuZGVwZW5kcyA9ICQkUFdEL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvci5wbSBcCiAgICAgICAgICAgICAgICQkUFdEL2JpbmRpbmdzL3NjcmlwdHMvSW5GaWxl
c1BhcnNlci5wbQogYWRkRXh0cmFDb21waWxlcihpZGwpCiAKKyMgR0VORVJBVE9SIDI6IGluc3Bl
Y3RvciBpZGwgY29tcGlsZXIKK2luc3BlY3RvcklETC5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURf
U09VUkNFU19ESVJ9L1JlbW90ZSR7UU1BS0VfRklMRV9CQVNFfS5jcHAKK2luc3BlY3RvcklETC5p
bnB1dCA9IElOU1BFQ1RPUl9JTlRFUkZBQ0VTCitpbnNwZWN0b3JJREwud2tTY3JpcHQgPSAkJFBX
RC9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCitpbnNwZWN0b3JJREwuY29t
bWFuZHMgPSBwZXJsIC1JJCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAtSSQkUFdEL2luc3BlY3RvciAk
JGluc3BlY3RvcklETC53a1NjcmlwdCAtLWRlZmluZXMgXCIkJHtGRUFUVVJFX0RFRklORVNfSkFW
QVNDUklQVH1cIiAtLWdlbmVyYXRvciBJbnNwZWN0b3IgLS1vdXRwdXREaXIgJCRXQ19HRU5FUkFU
RURfU09VUkNFU19ESVIgLS1wcmVwcm9jZXNzb3IgXCIkJHtRTUFLRV9NT0N9IC1FXCIgJHtRTUFL
RV9GSUxFX05BTUV9CitpbnNwZWN0b3JJREwuZGVwZW5kcyA9ICQkUFdEL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvci5wbSBcCisgICAgICAgICAgICAgICQkUFdEL2luc3BlY3Rvci9Db2Rl
R2VuZXJhdG9ySW5zcGVjdG9yLnBtIFwKKyAgICAgICAgICAgICAgJCRQV0QvYmluZGluZ3Mvc2Ny
aXB0cy9JRExQYXJzZXIucG0gXAorICAgICAgICAgICAgICAkJFBXRC9iaW5kaW5ncy9zY3JpcHRz
L0lETFN0cnVjdHVyZS5wbSBcCisgICAgICAgICAgICAgICQkUFdEL2JpbmRpbmdzL3NjcmlwdHMv
SW5GaWxlc1BhcnNlci5wbQorYWRkRXh0cmFDb21waWxlcihpbnNwZWN0b3JJREwpCisKICMgR0VO
RVJBVE9SIDM6IHRva2VuaXplciAoZmxleCkKIHRva2VuaXplci5vdXRwdXQgPSAkJHtXQ19HRU5F
UkFURURfU09VUkNFU19ESVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5jcHAKIHRva2VuaXplci5pbnB1
dCA9IFRPS0VOSVpFUgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYjg3
OWUwMy4uNDY1ZTNlOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0y
MDc0NSw2ICsyMDc0NSwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJ
UmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXFJlbW90ZUluc3BlY3RvckZyb250ZW5kMi5jcHAiDQorCQkJCT4NCisJCQk8L0Zp
bGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFJlbW90ZUluc3BlY3RvckZyb250ZW5kMi5o
Ig0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChX
ZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXTUxFbGVt
ZW50RmFjdG9yeS5jcHAiDQogCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwMjE1YWMwLi43OWU4OTM0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAxOSw2
ICsxMDE5LDcgQEAKIAkJNEYxNTM0RTAxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlv
clR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
RjE1MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0RjMyODlCNTExQTQy
QUFCMDA1QUJFN0UgLyogSW5zcGVjdG9yVmFsdWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGMzI4OUIzMTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNw
ZWN0b3JWYWx1ZXMuY3BwICovOyB9OwogCQk0RjMyODlCNjExQTQyQUFCMDA1QUJFN0UgLyogSW5z
cGVjdG9yVmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0RjMyODlCNDExQTQyQUFCMDA1QUJFN0UgLyogSW5zcGVjdG9yVmFsdWVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNEY0RjVGRkIxMUNC
RDJFMTAwQTE4NkJGIC8qIFJlbW90ZUluc3BlY3RvckZyb250ZW5kMi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjRGNUZGQTExQ0JEMkQyMDBBMTg2
QkYgLyogUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQyLmNwcCAqLzsgfTsKIAkJNEZEOEQwRjIxMTlD
NzE4QjAwMkZBODI1IC8qIFNjcmlwdEdDRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZEOEQwRjAxMTlDNzE4QjAwMkZBODI1IC8qIFNjcmlw
dEdDRXZlbnQuY3BwICovOyB9OwogCQk0RkQ4RDBGMzExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0
R0NFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NEZEOEQwRjExMTlDNzE4QjAwMkZBODI1IC8qIFNjcmlwdEdDRXZlbnQuaCAqLzsgfTsKIAkJNTEw
MTg0NjkwQjA4NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDE4NDY3MEIwODYwMkEwMDRBODI1RiAvKiBD
YWNoZWRQYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTY3MTQsNiArNjcxNSw4IEBACiAJCTRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBF
ZGl0aW5nQmVoYXZpb3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
ZGl0aW5nQmVoYXZpb3JUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RjMy
ODlCMzExQTQyQUFCMDA1QUJFN0UgLyogSW5zcGVjdG9yVmFsdWVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclZhbHVlcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTRGMzI4OUI0MTFBNDJBQUIwMDVBQkU3RSAvKiBJbnNwZWN0b3JW
YWx1ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yVmFsdWVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRGNEY1RkZBMTFDQkQyRDIwMEExODZC
RiAvKiBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNEY0RjVGRkMxMUNCRDMwMTAwQTE4NkJGIC8qIFJlbW90ZUluc3Bl
Y3RvckZyb250ZW5kMi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVJ
bnNwZWN0b3JGcm9udGVuZDIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEZEOEQw
RjAxMTlDNzE4QjAwMkZBODI1IC8qIFNjcmlwdEdDRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0R0NFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTRGRDhEMEYxMTE5QzcxOEIwMDJGQTgyNSAvKiBTY3JpcHRHQ0V2ZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdEdDRXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMTg0NjcwQjA4NjAyQTAwNEE4MjVGIC8qIENhY2hl
ZFBhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkUGFnZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEzMjksNiArMTEzMzIsOCBAQAogCQkJCTlG
QTM3RUY3MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuaCAqLywKIAkJCQk5RkEz
N0VGODExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5jcHAgKi8sCiAJCQkJ
OUZBMzdFRjkxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuaCAqLywKKwkJ
CQk0RjRGNUZGQTExQ0JEMkQyMDBBMTg2QkYgLyogUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQyLmNw
cCAqLywKKwkJCQk0RjRGNUZGQzExQ0JEMzAxMDBBMTg2QkYgLyogUmVtb3RlSW5zcGVjdG9yRnJv
bnRlbmQyLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IEluc3BlY3RvcjsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CkBAIC0yMjAzMiw2ICsyMjAzNyw3IEBACiAJCQkJOTNGMTlCMDUwODI0NUU1
OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTdERDREODYwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1ZGl0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNEY0RjVGRkIxMUNCRDJFMTAwQTE4NkJGIC8qIFJlbW90ZUluc3Bl
Y3RvckZyb250ZW5kMi5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q2FsbFN0YWNrLmNwcAppbmRleCA4NmRkY2QxLi5jOWJiOGIwIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDYWxsU3RhY2suY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBTY3JpcHRDYWxs
U3RhY2s6OmluaXRpYWxpemUoKQogICAgIG1faW5pdGlhbGl6ZWQgPSB0cnVlOwogfQogCi1ib29s
IFNjcmlwdENhbGxTdGFjazo6c3RhY2tUcmFjZShpbnQsIFNjcmlwdFN0YXRlKiwgU2NyaXB0QXJy
YXkmKQorYm9vbCBTY3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UoaW50LCBjb25zdCBSZWZQdHI8
SW5zcGVjdG9yQXJyYXk+JikKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5oIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDYWxsU3RhY2suaAppbmRleCA2Y2Y3Njc5Li5lNDYxYWMzIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5oCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q2FsbFN0YWNrLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJTY3Jp
cHRTdGF0ZS5oIgogI2luY2x1ZGUgIlNjcmlwdFN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAg
ICAgY2xhc3MgRXhlY1N0YXRlOwpAQCAtNDQsNiArNDUsOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCisgICAgY2xhc3MgSW5zcGVjdG9yQXJyYXk7CisKICAgICBj
bGFzcyBTY3JpcHRDYWxsU3RhY2sgOiBwdWJsaWMgTm9uY29weWFibGUgewogICAgIHB1YmxpYzoK
ICAgICAgICAgU2NyaXB0Q2FsbFN0YWNrKEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgc2tpcEFy
Z3VtZW50Q291bnQgPSAwKTsKQEAgLTU0LDcgKzU3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICAvLyBmcmFtZSByZXRyaWV2YWwgbWV0aG9kcwogICAgICAgICBjb25zdCBTY3JpcHRD
YWxsRnJhbWUgJmF0KHVuc2lnbmVkKTsKICAgICAgICAgdW5zaWduZWQgc2l6ZSgpOwotICAgICAg
ICBzdGF0aWMgYm9vbCBzdGFja1RyYWNlKGludCwgU2NyaXB0U3RhdGUqLCBTY3JpcHRBcnJheSYp
OworICAgICAgICBzdGF0aWMgYm9vbCBzdGFja1RyYWNlKGludCwgY29uc3QgUmVmUHRyPEluc3Bl
Y3RvckFycmF5PiYpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBpbml0aWFsaXplKCk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbSBi
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCmluZGV4IGZiY2VlMDIu
LjkxNGNjNDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCkBA
IC04Myw2ICs4Myw3IEBAIHN1YiBuZXcKICAgICAkdXNlTGF5ZXJPblRvcCA9IHNoaWZ0OwogICAg
ICRwcmVwcm9jZXNzb3IgPSBzaGlmdDsKICAgICAkd3JpdGVEZXBlbmRlbmNpZXMgPSBzaGlmdDsK
KyAgICAkdmVyYm9zZSA9IHNoaWZ0OwogCiAgICAgYmxlc3MoJHJlZmVyZW5jZSwgJG9iamVjdCk7
CiAgICAgcmV0dXJuICRyZWZlcmVuY2U7CkBAIC0xMDMsMTAgKzEwNCwxMCBAQCBzdWIgUHJvY2Vz
c0RvY3VtZW50CiAgICAgJGRlZmluZXMgPSBzaGlmdDsKIAogICAgIG15ICRpZmFjZU5hbWUgPSAi
Q29kZUdlbmVyYXRvciIgLiAkdXNlR2VuZXJhdG9yOworICAgIHJlcXVpcmUgJGlmYWNlTmFtZSAu
ICIucG0iOwogCiAgICAgIyBEeW5hbWljYWxseSBsb2FkIGV4dGVybmFsIGNvZGUgZ2VuZXJhdGlv
biBwZXJsIG1vZHVsZQotICAgIHJlcXVpcmUgJGlmYWNlTmFtZSAuICIucG0iOwotICAgICRjb2Rl
R2VuZXJhdG9yID0gJGlmYWNlTmFtZS0+bmV3KCRvYmplY3QsICR1c2VPdXRwdXREaXIsICR1c2VM
YXllck9uVG9wLCAkcHJlcHJvY2Vzc29yLCAkd3JpdGVEZXBlbmRlbmNpZXMpOworICAgICRjb2Rl
R2VuZXJhdG9yID0gJGlmYWNlTmFtZS0+bmV3KCRvYmplY3QsICR1c2VPdXRwdXREaXIsICR1c2VM
YXllck9uVG9wLCAkcHJlcHJvY2Vzc29yLCAkd3JpdGVEZXBlbmRlbmNpZXMsICR2ZXJib3NlKTsK
ICAgICB1bmxlc3MgKGRlZmluZWQoJGNvZGVHZW5lcmF0b3IpKSB7CiAgICAgICAgIG15ICRjbGFz
c2VzID0gJHVzZURvY3VtZW50LT5jbGFzc2VzOwogICAgICAgICBmb3JlYWNoIG15ICRjbGFzcyAo
QCRjbGFzc2VzKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFy
c2VyLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQppbmRleCAzZGY5
NmFiLi5lMjUwYTRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFy
c2VyLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KQEAgLTI1
OSw3ICsyNTksNyBAQCBzdWIgUGFyc2VJbnRlcmZhY2UKICAgICAgICAgbXkgQGludGVyZmFjZU1l
dGhvZHMgPSBzcGxpdCgvOy8sICRpbnRlcmZhY2VEYXRhKTsKIAogICAgICAgICBmb3JlYWNoIG15
ICRsaW5lIChAaW50ZXJmYWNlTWV0aG9kcykgewotICAgICAgICAgICAgaWYgKCRsaW5lID1+IC9h
dHRyaWJ1dGUvKSB7CisgICAgICAgICAgICBpZiAoJGxpbmUgPX4gL1xXYXR0cmlidXRlXFcvKSB7
CiAgICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmludGVyZmFjZUF0dHJp
YnV0ZVNlbGVjdG9yLzsKIAogICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVUeXBlID0gKGRl
ZmluZWQoJDEpID8gJDEgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIp
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5n
cy5wbCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbAppbmRl
eCA0NGVkNGQzLi5mZWUxMWNiIDEwMDc1NQotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Z2VuZXJhdGUtYmluZGluZ3MucGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVy
YXRlLWJpbmRpbmdzLnBsCkBAIC00MywyOCArNDMsMzIgQEAgbXkgJGdlbmVyYXRvcjsKIG15ICRk
ZWZpbmVzOwogbXkgJHByZXByb2Nlc3NvcjsKIG15ICR3cml0ZURlcGVuZGVuY2llczsKK215ICR2
ZXJib3NlOwogCiBHZXRPcHRpb25zKCdpbmNsdWRlPXNAJyA9PiBcQGlkbERpcmVjdG9yaWVzLAog
ICAgICAgICAgICAnb3V0cHV0RGlyPXMnID0+IFwkb3V0cHV0RGlyZWN0b3J5LAogICAgICAgICAg
ICAnZ2VuZXJhdG9yPXMnID0+IFwkZ2VuZXJhdG9yLAogICAgICAgICAgICAnZGVmaW5lcz1zJyA9
PiBcJGRlZmluZXMsCiAgICAgICAgICAgICdwcmVwcm9jZXNzb3I9cycgPT4gXCRwcmVwcm9jZXNz
b3IsCisgICAgICAgICAgICd2ZXJib3NlJyA9PiBcJHZlcmJvc2UsCiAgICAgICAgICAgICd3cml0
ZS1kZXBlbmRlbmNpZXMnID0+IFwkd3JpdGVEZXBlbmRlbmNpZXMpOwogCiBteSAkaWRsRmlsZSA9
ICRBUkdWWzBdOwogCiBkaWUoJ011c3Qgc3BlY2lmeSBpbnB1dCBmaWxlLicpIHVubGVzcyBkZWZp
bmVkKCRpZGxGaWxlKTsKLWRpZSgnTXVzdCBzcGVjaWZ5IElETCBzZWFyY2ggcGF0aC4nKSB1bmxl
c3MgQGlkbERpcmVjdG9yaWVzOwogZGllKCdNdXN0IHNwZWNpZnkgZ2VuZXJhdG9yJykgdW5sZXNz
IGRlZmluZWQoJGdlbmVyYXRvcik7CiBkaWUoJ011c3Qgc3BlY2lmeSBvdXRwdXQgZGlyZWN0b3J5
LicpIHVubGVzcyBkZWZpbmVkKCRvdXRwdXREaXJlY3RvcnkpOwogZGllKCdNdXN0IHNwZWNpZnkg
ZGVmaW5lcycpIHVubGVzcyBkZWZpbmVkKCRkZWZpbmVzKTsKIAoraWYgKCR2ZXJib3NlKSB7Cisg
ICAgcHJpbnQgIiRnZW5lcmF0b3I6ICRpZGxGaWxlXG4iOworfQogJGRlZmluZXMgPX4gcy9eXHMr
fFxzKyQvL2c7ICMgdHJpbSB3aGl0ZXNwYWNlCiAKICMgUGFyc2UgdGhlIGdpdmVuIElETCBmaWxl
LgotbXkgJHBhcnNlciA9IElETFBhcnNlci0+bmV3KDEpOworbXkgJHBhcnNlciA9IElETFBhcnNl
ci0+bmV3KCEkdmVyYm9zZSk7CiBteSAkZG9jdW1lbnQgPSAkcGFyc2VyLT5QYXJzZSgkaWRsRmls
ZSwgJGRlZmluZXMsICRwcmVwcm9jZXNzb3IpOwogCiAjIEdlbmVyYXRlIGRlc2lyZWQgb3V0cHV0
IGZvciBnaXZlbiBJREwgZmlsZS4KLW15ICRjb2RlR2VuID0gQ29kZUdlbmVyYXRvci0+bmV3KFxA
aWRsRGlyZWN0b3JpZXMsICRnZW5lcmF0b3IsICRvdXRwdXREaXJlY3RvcnksIDAsICRwcmVwcm9j
ZXNzb3IsICR3cml0ZURlcGVuZGVuY2llcyk7CitteSAkY29kZUdlbiA9IENvZGVHZW5lcmF0b3It
Pm5ldyhcQGlkbERpcmVjdG9yaWVzLCAkZ2VuZXJhdG9yLCAkb3V0cHV0RGlyZWN0b3J5LCAwLCAk
cHJlcHJvY2Vzc29yLCAkd3JpdGVEZXBlbmRlbmNpZXMsICR2ZXJib3NlKTsKICRjb2RlR2VuLT5Q
cm9jZXNzRG9jdW1lbnQoJGRvY3VtZW50LCAkZGVmaW5lcyk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFjay5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdENhbGxTdGFjay5jcHAKaW5kZXggODk4MDliMi4uY2RjOTY2MiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2suY3BwCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2NyaXB0Q2FsbFN0YWNrLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogCisjaW5jbHVkZSAiSW5zcGVj
dG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0U2NvcGUuaCIKICNpbmNsdWRlICJTY3JpcHRD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RGVidWdTZXJ2ZXIuaCIKQEAgLTkzLDEzICs5
NCwzMCBAQCBjb25zdCBTY3JpcHRDYWxsRnJhbWUmIFNjcmlwdENhbGxTdGFjazo6YXQodW5zaWdu
ZWQgaW5kZXgpIGNvbnN0CiAgICAgcmV0dXJuIG1fbGFzdENhbGxlcjsKIH0KIAotYm9vbCBTY3Jp
cHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UoaW50IGZyYW1lTGltaXQsIFNjcmlwdFN0YXRlKiBzdGF0
ZSwgU2NyaXB0QXJyYXkmIHN0YWNrVHJhY2UpCitib29sIFNjcmlwdENhbGxTdGFjazo6c3RhY2tU
cmFjZShpbnQgZnJhbWVMaW1pdCwgY29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5PiYgc3RhY2tU
cmFjZSkKIHsKLSAgICBTY3JpcHRTY29wZSBzY29wZShzdGF0ZSk7CisgICAgaWYgKCF2ODo6Q29u
dGV4dDo6SW5Db250ZXh0KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB2ODo6SGFuZGxl
PHY4OjpDb250ZXh0PiBjb250ZXh0ID0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKTsKKyAgICBp
ZiAoY29udGV4dC5Jc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB2ODo6SGFu
ZGxlU2NvcGUgc2NvcGU7CisgICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNvbnRleHRTY29wZShjb250
ZXh0KTsKICAgICB2ODo6SGFuZGxlPHY4OjpTdGFja1RyYWNlPiB0cmFjZSh2ODo6U3RhY2tUcmFj
ZTo6Q3VycmVudFN0YWNrVHJhY2UoZnJhbWVMaW1pdCkpOwotICAgIGlmICh0cmFjZS5Jc0VtcHR5
KCkgfHwgIXRyYWNlLT5HZXRGcmFtZUNvdW50KCkpCisgICAgaW50IGZyYW1lQ291bnQgPSB0cmFj
ZS0+R2V0RnJhbWVDb3VudCgpOworICAgIGlmICh0cmFjZS5Jc0VtcHR5KCkgfHwgIWZyYW1lQ291
bnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBzdGFja1RyYWNlID0gU2NyaXB0QXJyYXko
c3RhdGUsIHRyYWNlLT5Bc0FycmF5KCkpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZnJhbWVD
b3VudDsgKytpKSB7CisgICAgICAgIHY4OjpIYW5kbGU8djg6OlN0YWNrRnJhbWU+IGZyYW1lID0g
dHJhY2UtPkdldEZyYW1lKGkpOworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBmcmFt
ZU9iamVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgICAgIHY4OjpMb2NhbDx2
ODo6U3RyaW5nPiBzY3JpcHROYW1lID0gZnJhbWUtPkdldFNjcmlwdE5hbWUoKTsKKyAgICAgICAg
ZnJhbWVPYmplY3QtPnNldFN0cmluZygic2NyaXB0TmFtZSIsIHNjcmlwdE5hbWUuSXNFbXB0eSgp
ID8gIiIgOiB0b1dlYkNvcmVTdHJpbmcoc2NyaXB0TmFtZSkpOworICAgICAgICB2ODo6TG9jYWw8
djg6OlN0cmluZz4gZnVuY3Rpb25OYW1lID0gZnJhbWUtPkdldEZ1bmN0aW9uTmFtZSgpOworICAg
ICAgICBmcmFtZU9iamVjdC0+c2V0U3RyaW5nKCJmdW5jdGlvbk5hbWUiLCBmdW5jdGlvbk5hbWUu
SXNFbXB0eSgpID8gIiIgOiB0b1dlYkNvcmVTdHJpbmcoZnVuY3Rpb25OYW1lKSk7CisgICAgICAg
IGZyYW1lT2JqZWN0LT5zZXROdW1iZXIoImxpbmVOdW1iZXIiLCBmcmFtZS0+R2V0TGluZU51bWJl
cigpKTsKKyAgICAgICAgZnJhbWVPYmplY3QtPnNldE51bWJlcigiY29sdW1uIiwgZnJhbWUtPkdl
dENvbHVtbigpKTsKKyAgICAgICAgc3RhY2tUcmFjZS0+cHVzaChmcmFtZU9iamVjdCk7CisgICAg
fQogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjcmlwdENhbGxTdGFjay5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2su
aAppbmRleCA4YjAyODE0Li44MGQ1Zjc2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjcmlwdENhbGxTdGFjay5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q2FsbFN0
YWNrLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogI2luY2x1
ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgdjggewogICAgIGNsYXNzIEFyZ3VtZW50czsK
QEAgLTQzLDYgKzQ0LDggQEAgbmFtZXNwYWNlIHY4IHsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBJbnNwZWN0b3JBcnJheTsKKwogY2xhc3MgU2NyaXB0Q2FsbFN0YWNrIDogcHVibGlj
IE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgU2NyaXB0Q2FsbFN0YWNrKiBjcmVh
dGUoY29uc3Qgdjg6OkFyZ3VtZW50cyYsIHVuc2lnbmVkIHNraXBBcmd1bWVudENvdW50ID0gMCk7
CkBAIC01Nyw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICAvLyAgIGxpbmVOdW1iZXI6IDwxIGJhc2Vk
IGxpbmUgbnVtYmVyPgogICAgIC8vICAgY29sdW1uOiA8MSBiYXNlZCBjb2x1bW4gb2Zmc2V0IG9u
IHRoZSBsaW5lPgogICAgIC8vIH0KLSAgICBzdGF0aWMgYm9vbCBzdGFja1RyYWNlKGludCBmcmFt
ZUxpbWl0LCBTY3JpcHRTdGF0ZSogc3RhdGUsIFNjcmlwdEFycmF5JiBzdGFja1RyYWNlKTsKKyAg
ICBzdGF0aWMgYm9vbCBzdGFja1RyYWNlKGludCBmcmFtZUxpbWl0LCBjb25zdCBSZWZQdHI8SW5z
cGVjdG9yQXJyYXk+JiBzdGFja1RyYWNlKTsKIAogICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSYg
YXQodW5zaWduZWQpIGNvbnN0OwogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcmV0cmlldmluZyBh
bmQgc3RvcmluZyBjYWxsIHN0YWNrIHRyYWNlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtIGIvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVy
YXRvckluc3BlY3Rvci5wbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NWNk
YTU5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvcklu
c3BlY3Rvci5wbQpAQCAtMCwwICsxLDI5MSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTAgVGhlIENo
cm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMg
Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworcGFja2FnZSBDb2RlR2VuZXJhdG9ySW5zcGVj
dG9yOworCit1c2Ugc3RyaWN0OworCit1c2UgRmlsZTo6c3RhdDsKKworbXkgJXR5cGVUcmFuc2Zv
cm07CiskdHlwZVRyYW5zZm9ybXsiSW5zcGVjdG9yQ2xpZW50In0gPSB7CisgICAgImZvcndhcmQi
ID0+ICJJbnNwZWN0b3JDbGllbnQiLAorICAgICJoZWFkZXIiID0+ICJJbnNwZWN0b3JDbGllbnQu
aCIsCit9OworJHR5cGVUcmFuc2Zvcm17IlJlZlB0ciJ9ID0geworICAgICJmb3J3YXJkSGVhZGVy
IiA9PiAid3RmL1JlZlB0ci5oIiwKK307CiskdHlwZVRyYW5zZm9ybXsiT2JqZWN0In0gPSB7Cisg
ICAgInBhcmFtIiA9PiAiY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIiwKKyAgICAicmV0
VmFsIiA9PiAiUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IiwKKyAgICAiZm9yd2FyZCIgPT4g
Ikluc3BlY3Rvck9iamVjdCIsCisgICAgImhlYWRlciIgPT4gIkluc3BlY3RvclZhbHVlcy5oIiwK
KyAgICAicHVzaCIgPT4gInB1c2giCit9OworJHR5cGVUcmFuc2Zvcm17IkFycmF5In0gPSB7Cisg
ICAgInBhcmFtIiA9PiAiY29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5PiYiLAorICAgICJyZXRW
YWwiID0+ICJQYXNzUmVmUHRyPEluc3BlY3RvckFycmF5PiIsCisgICAgImZvcndhcmQiID0+ICJJ
bnNwZWN0b3JBcnJheSIsCisgICAgImhlYWRlciIgPT4gIkluc3BlY3RvclZhbHVlcy5oIiwKKyAg
ICAicHVzaCIgPT4gInB1c2giCit9OworJHR5cGVUcmFuc2Zvcm17IlZhbHVlIn0gPSB7CisgICAg
InBhcmFtIiA9PiAiY29uc3QgUmVmUHRyPEluc3BlY3RvclZhbHVlPiYiLAorICAgICJyZXRWYWwi
ID0+ICJQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVlPiIsCisgICAgImZvcndhcmQiID0+ICJJbnNw
ZWN0b3JWYWx1ZSIsCisgICAgImhlYWRlciIgPT4gIkluc3BlY3RvclZhbHVlcy5oIiwKKyAgICAi
cHVzaCIgPT4gInB1c2giCit9OworJHR5cGVUcmFuc2Zvcm17IlN0cmluZyJ9ID0geworICAgICJw
YXJhbSIgPT4gImNvbnN0IFN0cmluZyYiLAorICAgICJyZXRWYWwiID0+ICJTdHJpbmciLAorICAg
ICJmb3J3YXJkIiA9PiAiU3RyaW5nIiwKKyAgICAiaGVhZGVyIiA9PiAiUGxhdGZvcm1TdHJpbmcu
aCIsCisgICAgInB1c2giID0+ICJwdXNoU3RyaW5nIgorfTsKKyR0eXBlVHJhbnNmb3JteyJsb25n
In0gPSB7CisgICAgInBhcmFtIiA9PiAibG9uZyIsCisgICAgInJldFZhbCIgPT4gImxvbmciLAor
ICAgICJmb3J3YXJkIiA9PiAiIiwKKyAgICAiaGVhZGVyIiA9PiAiIiwKKyAgICAicHVzaCIgPT4g
InB1c2hOdW1iZXIiCit9OworJHR5cGVUcmFuc2Zvcm17InVuc2lnbmVkIGxvbmcifSA9IHsKKyAg
ICAicGFyYW0iID0+ICJ1bnNpZ25lZCBsb25nIiwKKyAgICAicmV0VmFsIiA9PiAidW5zaWduZWQg
bG9uZyIsCisgICAgImZvcndhcmQiID0+ICIiLAorICAgICJoZWFkZXIiID0+ICIiLAorICAgICJw
dXNoIiA9PiAicHVzaE51bWJlciIKK307CiskdHlwZVRyYW5zZm9ybXsiYm9vbGVhbiJ9ID0gewor
ICAgICJwYXJhbSIgPT4gImJvb2wiLAorICAgICJyZXRWYWwiPT4gImJvb2wiLAorICAgICJmb3J3
YXJkIiA9PiAiIiwKKyAgICAiaGVhZGVyIiA9PiAiIiwKKyAgICAicHVzaCIgPT4gInB1c2hCb29s
IgorfTsKKyR0eXBlVHJhbnNmb3JteyJ2b2lkIn0gPSB7CisgICAgInJldFZhbCIgPT4gInZvaWQi
LAorICAgICJmb3J3YXJkIiA9PiAiIiwKKyAgICAiaGVhZGVyIiA9PiAiIgorfTsKKworIyBEZWZh
dWx0IExpY2Vuc2UgVGVtcGxhdGVzCisKK215ICRsaWNlbnNlVGVtcGxhdGUgPSA8PCAiRU9GIjsK
Ky8vIENvcHlyaWdodCAoYykgMjAxMCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNE
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUu
CitFT0YKKworbXkgJGNvZGVHZW5lcmF0b3I7CitteSAkb3V0cHV0RGlyOworbXkgJHdyaXRlRGVw
ZW5kZW5jaWVzOworbXkgJHZlcmJvc2U7CisKK215ICRuYW1lc3BhY2U7CitteSAkZmlsZU5hbWU7
CitteSAlZGlzY292ZXJlZFR5cGVzOworCitteSBAY2xhc3NEZWZpbml0aW9uOworbXkgQGZ1bmN0
aW9uRGVmaW5pdGlvbnM7CisKK3N1YiB0eXBlU3BlYworeworICAgIG15ICRwYXJhbSA9IHNoaWZ0
OworICAgIG15ICRyZXRWYWx1ZSA9IHNoaWZ0OworCisgICAgbXkgJHR5cGUgPSAkdHlwZVRyYW5z
Zm9ybXskcGFyYW0tPnR5cGV9LT57JHJldFZhbHVlID8gInJldFZhbCIgOiAicGFyYW0ifTsKKyAg
ICAkZGlzY292ZXJlZFR5cGVzeyRwYXJhbS0+dHlwZX0gPSAxOworICAgICR0eXBlIG9yIGRpZSAi
aW52YWxpZCB0eXBlIHNwZWNpZmljYXRpb24gXCIiIC4gJHBhcmFtLT50eXBlIC4iXCIiOworICAg
IHJldHVybiAkdHlwZTsKK30KKworIyBEZWZhdWx0IGNvbnN0cnVjdG9yCitzdWIgbmV3Cit7Cisg
ICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRyZWZlcmVuY2UgPSB7IH07CisKKyAgICAk
Y29kZUdlbmVyYXRvciA9IHNoaWZ0OworICAgICRvdXRwdXREaXIgPSBzaGlmdDsKKyAgICBzaGlm
dDsgIyAkdXNlTGF5ZXJPblRvcAorICAgIHNoaWZ0OyAjICRwcmVwcm9jZXNzb3IKKyAgICAkd3Jp
dGVEZXBlbmRlbmNpZXMgPSBzaGlmdDsKKyAgICAkdmVyYm9zZSA9IHNoaWZ0OworCisgICAgYmxl
c3MoJHJlZmVyZW5jZSwgJG9iamVjdCk7CisgICAgcmV0dXJuICRyZWZlcmVuY2U7Cit9CisKKyMg
UGFyYW1zOiAnaWRsRG9jdW1lbnQnIHN0cnVjdAorc3ViIEdlbmVyYXRlTW9kdWxlCit7CisgICAg
bXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAgJG5h
bWVzcGFjZSA9ICRkYXRhTm9kZS0+bW9kdWxlOworfQorCisjIFBhcmFtczogJ2lkbERvY3VtZW50
JyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZUludGVyZmFjZQoreworICAgIG15ICRvYmplY3QgPSBzaGlm
dDsKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisgICAgbXkgJGRlZmluZXMgPSBzaGlmdDsK
KworICAgIG15ICRjbGFzc05hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOworICAgICRmaWxlTmFtZSA9
ICRjbGFzc05hbWU7CisKKyAgICAkZGlzY292ZXJlZFR5cGVzeyJTdHJpbmcifSA9IDE7CisgICAg
JGRpc2NvdmVyZWRUeXBlc3siSW5zcGVjdG9yQ2xpZW50In0gPSAxOworICAgICRkaXNjb3ZlcmVk
VHlwZXN7IlJlZlB0ciJ9ID0gMTsKKworICAgIHB1c2goQGNsYXNzRGVmaW5pdGlvbiwgImNsYXNz
ICRjbGFzc05hbWUgeyIpOworICAgIHB1c2goQGNsYXNzRGVmaW5pdGlvbiwgInB1YmxpYzoiKTsK
KyAgICBwdXNoKEBjbGFzc0RlZmluaXRpb24sICIgICAgJGNsYXNzTmFtZShJbnNwZWN0b3JDbGll
bnQqIGluc3BlY3RvckNsaWVudCkgOiBtX2luc3BlY3RvckNsaWVudChpbnNwZWN0b3JDbGllbnQp
IHsgfSIpOworICAgIHB1c2goQGNsYXNzRGVmaW5pdGlvbiwgIiIpOworICAgIHB1c2goQGNsYXNz
RGVmaW5pdGlvbiwgZ2VuZXJhdGVGdW5jdGlvbnNEZWNsYXJhdGlvbnMoJGludGVyZmFjZSwgJGNs
YXNzTmFtZSkpOworICAgIHB1c2goQGNsYXNzRGVmaW5pdGlvbiwgIiIpOworICAgIHB1c2goQGNs
YXNzRGVmaW5pdGlvbiwgInByaXZhdGU6Iik7CisgICAgcHVzaChAY2xhc3NEZWZpbml0aW9uLCAi
ICAgIHZvaWQgc2VuZFNpbXBsZU1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYpOyIpOwor
ICAgIHB1c2goQGNsYXNzRGVmaW5pdGlvbiwgIiAgICBJbnNwZWN0b3JDbGllbnQqIG1faW5zcGVj
dG9yQ2xpZW50OyIpOworICAgIHB1c2goQGNsYXNzRGVmaW5pdGlvbiwgIn07Iik7CisKKyAgICBw
dXNoKEBmdW5jdGlvbkRlZmluaXRpb25zLCAidm9pZCAke2NsYXNzTmFtZX06OnNlbmRTaW1wbGVN
ZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIGZ1bmN0aW9uTmFtZSkiKTsKKyAgICBwdXNo
KEBmdW5jdGlvbkRlZmluaXRpb25zLCAieyIpOworICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5pdGlv
bnMsICIgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiBhcmd1bWVudHMgPSBJbnNwZWN0b3JBcnJh
eTo6Y3JlYXRlKCk7Iik7CisgICAgcHVzaChAZnVuY3Rpb25EZWZpbml0aW9ucywgIiAgICBhcmd1
bWVudHMtPnB1c2hTdHJpbmcoZnVuY3Rpb25OYW1lKTsiKTsKKyAgICBwdXNoKEBmdW5jdGlvbkRl
ZmluaXRpb25zLCAiICAgIG1faW5zcGVjdG9yQ2xpZW50LT5zZW5kTWVzc2FnZVRvRnJvbnRlbmQo
YXJndW1lbnRzLT50b0pTT05TdHJpbmcoKSk7Iik7CisgICAgcHVzaChAZnVuY3Rpb25EZWZpbml0
aW9ucywgIn0iKTsKK30KKworc3ViIGdlbmVyYXRlRnVuY3Rpb25zRGVjbGFyYXRpb25zCit7Cisg
ICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAgIG15ICRjbGFzc05hbWUgPSBzaGlmdDsKKwor
ICAgIG15IEBmdW5jdGlvbkRlY2xhcmF0aW9uczsKKyAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAo
QHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7CisgICAgICAgIG15ICRmdW5jdGlvbk5hbWUgPSAk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAgbXkgJGFic3RyYWN0ID0gJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJhYnN0cmFjdCJ9OworICAgICAg
ICBteSAkYXJndW1lbnRzID0gIiI7CisgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtZXRlciAoQHsk
ZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAgICAkcGFyYW1ldGVyLT5uYW1lIG9y
IGRpZSAiZW1wdHkgYXJndW1lbnQgbmFtZSBzcGVjaWZpZWQgZm9yIGZ1bmN0aW9uICR7Y2xhc3NO
YW1lfTo6JGZ1bmN0aW9uTmFtZSBhbmQgYXJndW1lbnQgdHlwZSAiIC4gJHBhcmFtZXRlci0+dHlw
ZTsKKyAgICAgICAgICAgICRhcmd1bWVudHMgPSAkYXJndW1lbnRzIC4gIiwgIiBpZiAoJGFyZ3Vt
ZW50cyk7CisgICAgICAgICAgICAkYXJndW1lbnRzID0gJGFyZ3VtZW50cyAuIHR5cGVTcGVjKCRw
YXJhbWV0ZXIpIC4gIiAiIC4gJHBhcmFtZXRlci0+bmFtZTsKKyAgICAgICAgfQorICAgICAgICBt
eSAkc2lnbmF0dXJlID0gIiAgICAiIC4gdHlwZVNwZWMoJGZ1bmN0aW9uLT5zaWduYXR1cmUsIDEp
IC4gIiAkZnVuY3Rpb25OYW1lKCRhcmd1bWVudHMpIjsKKyAgICAgICAgcHVzaChAZnVuY3Rpb25E
ZWNsYXJhdGlvbnMsICRhYnN0cmFjdCA/ICIkc2lnbmF0dXJlID0gMDsiIDogIiRzaWduYXR1cmU7
Iik7CisgICAgICAgIHB1c2goQGZ1bmN0aW9uRGVmaW5pdGlvbnMsIGdlbmVyYXRlRnVuY3Rpb25z
SW1wbCgkY2xhc3NOYW1lLCAkZnVuY3Rpb24sICRhcmd1bWVudHMpKSBpZiAhJGFic3RyYWN0Owor
ICAgIH0KKyAgICByZXR1cm4gQGZ1bmN0aW9uRGVjbGFyYXRpb25zOworfQorCitzdWIgZ2VuZXJh
dGVIZWFkZXIKK3sKKyAgICBteSBAaGVhZGVyQ29udGVudCA9IHNwbGl0KCJcciIsICRsaWNlbnNl
VGVtcGxhdGUpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjaWZuZGVmICR7ZmlsZU5hbWV9
X2giKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2RlZmluZSAke2ZpbGVOYW1lfV9oIik7
CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiIpOworCisgICAgbXkgQGZvcndhcmRIZWFkZXJz
OworICAgIGZvcmVhY2ggbXkgJHR5cGUgKGtleXMgJWRpc2NvdmVyZWRUeXBlcykgeworICAgICAg
ICBwdXNoKEBmb3J3YXJkSGVhZGVycywgIiNpbmNsdWRlIDwiIC4gJHR5cGVUcmFuc2Zvcm17JHR5
cGV9LT57ImZvcndhcmRIZWFkZXIifSAuICI+IikgaWYgISR0eXBlVHJhbnNmb3JteyR0eXBlfS0+
eyJmb3J3YXJkSGVhZGVyIn0gZXEgICIiOworICAgIH0KKyAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCBzb3J0IEBmb3J3YXJkSGVhZGVycyk7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiIpOwor
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJuYW1lc3BhY2UgJG5hbWVzcGFjZSB7Iik7CisgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiIpOworCisgICAgbXkgQGZvcndhcmREZWNsYXJhdGlvbnM7
CisgICAgZm9yZWFjaCBteSAkdHlwZSAoa2V5cyAlZGlzY292ZXJlZFR5cGVzKSB7CisgICAgICAg
IHB1c2goQGZvcndhcmREZWNsYXJhdGlvbnMsICJjbGFzcyAiIC4gJHR5cGVUcmFuc2Zvcm17JHR5
cGV9LT57ImZvcndhcmQifSAuICI7IikgaWYgISR0eXBlVHJhbnNmb3JteyR0eXBlfS0+eyJmb3J3
YXJkIn0gZXEgICIiOworICAgIH0KKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBzb3J0IEBmb3J3
YXJkRGVjbGFyYXRpb25zKTsKKworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIiKTsKKyAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCBAY2xhc3NEZWZpbml0aW9uKTsKKyAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn0gLy8gbmFtZXNwYWNlICRu
YW1lc3BhY2UiKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiIik7CisgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiNlbmRpZiAvLyAhZGVmaW5lZCgke2ZpbGVOYW1lfV9oKSIpOworICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIiKTsKKyAgICByZXR1cm4gQGhlYWRlckNvbnRlbnQ7Cit9CisK
K3N1YiBnZW5lcmF0ZVNvdXJjZQoreworICAgIG15IEBzb3VyY2VDb250ZW50ID0gc3BsaXQoIlxy
IiwgJGxpY2Vuc2VUZW1wbGF0ZSk7CisgICAgcHVzaChAc291cmNlQ29udGVudCwgIlxuI2luY2x1
ZGUgXCJjb25maWcuaFwiIik7CisgICAgcHVzaChAc291cmNlQ29udGVudCwgIiNpbmNsdWRlIFwi
UmVtb3RlJGZpbGVOYW1lLmhcIiIpOworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICIiKTsKKyAg
ICBwdXNoKEBzb3VyY2VDb250ZW50LCAiI2lmIEVOQUJMRShJTlNQRUNUT1IpIik7CisgICAgcHVz
aChAc291cmNlQ29udGVudCwgIiIpOworCisgICAgbXkgJWhlYWRlcnM7CisgICAgZm9yZWFjaCBt
eSAkdHlwZSAoa2V5cyAlZGlzY292ZXJlZFR5cGVzKSB7CisgICAgICAgICRoZWFkZXJzeyIjaW5j
bHVkZSBcIiIgLiAkdHlwZVRyYW5zZm9ybXskdHlwZX0tPnsiaGVhZGVyIn0gLiAiXCIifSA9IDEg
aWYgISR0eXBlVHJhbnNmb3JteyR0eXBlfS0+eyJoZWFkZXIifSBlcSAgIiI7CisgICAgfQorICAg
IHB1c2goQHNvdXJjZUNvbnRlbnQsIHNvcnQga2V5cyAlaGVhZGVycyk7CisgICAgcHVzaChAc291
cmNlQ29udGVudCwgIiIpOworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICJuYW1lc3BhY2UgJG5h
bWVzcGFjZSB7Iik7CisgICAgcHVzaChAc291cmNlQ29udGVudCwgIiIpOworICAgIHB1c2goQHNv
dXJjZUNvbnRlbnQsIEBmdW5jdGlvbkRlZmluaXRpb25zKTsKKyAgICBwdXNoKEBzb3VyY2VDb250
ZW50LCAiIik7CisgICAgcHVzaChAc291cmNlQ29udGVudCwgIn0gLy8gbmFtZXNwYWNlICRuYW1l
c3BhY2UiKTsKKyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiIik7CisgICAgcHVzaChAc291cmNl
Q29udGVudCwgIiNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKSIpOworICAgIHB1c2goQHNvdXJj
ZUNvbnRlbnQsICIiKTsKKyAgICByZXR1cm4gQHNvdXJjZUNvbnRlbnQ7Cit9CisKK3N1YiBnZW5l
cmF0ZUZ1bmN0aW9uc0ltcGwKK3sKKyAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CisgICAgbXkg
JGZ1bmN0aW9uID0gc2hpZnQ7CisgICAgbXkgJGFyZ3VtZW50cyA9IHNoaWZ0OworCisgICAgbXkg
QGZ1bmM7CisKKyAgICBteSAkZnVuY3Rpb25OYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5h
bWU7CisKKyAgICBwdXNoKEBmdW5jLCB0eXBlU3BlYygkZnVuY3Rpb24tPnNpZ25hdHVyZSwgMSkg
LiAiICIgLiAkY2xhc3NOYW1lIC4gIjo6IiAuICRmdW5jdGlvbk5hbWUgLiAiKCIgLiAkYXJndW1l
bnRzIC4gIikiKTsKKyAgICBwdXNoKEBmdW5jLCAieyIpOworCisgICAgbXkgJG51bVBhcmFtZXRl
cnMgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc307CisgICAgaWYgKCRudW1QYXJhbWV0ZXJzID4g
MCkgeworICAgICAgICBwdXNoKEBmdW5jLCAiICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gYXJn
dW1lbnRzID0gSW5zcGVjdG9yQXJyYXk6OmNyZWF0ZSgpOyIpOworICAgICAgICBwdXNoKEBmdW5j
LCAiICAgIGFyZ3VtZW50cy0+cHVzaFN0cmluZyhcIiRmdW5jdGlvbk5hbWVcIik7Iik7CisgICAg
ICAgIGZvcmVhY2ggbXkgJHBhcmFtZXRlciAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7Cisg
ICAgICAgICAgICBteSAkcHVzaENhbGwgPSAgJHR5cGVUcmFuc2Zvcm17JHBhcmFtZXRlci0+dHlw
ZX0tPnsicHVzaCJ9OworICAgICAgICAgICAgcHVzaChAZnVuYywgIiAgICBhcmd1bWVudHMtPiRw
dXNoQ2FsbCgiIC4gJHBhcmFtZXRlci0+bmFtZSAuICIpOyIpOworICAgICAgICB9CisgICAgICAg
IHB1c2goQGZ1bmMsICIgICAgbV9pbnNwZWN0b3JDbGllbnQtPnNlbmRNZXNzYWdlVG9Gcm9udGVu
ZChhcmd1bWVudHMtPnRvSlNPTlN0cmluZygpKTsiKTsKKyAgICB9IGVsc2UgeworICAgICAgICBw
dXNoKEBmdW5jLCAiICAgIHNlbmRTaW1wbGVNZXNzYWdlVG9Gcm9udGVuZChcIiRmdW5jdGlvbk5h
bWVcIik7Iik7CisgICAgfQorCisgICAgcHVzaChAZnVuYywgIn0iKTsKKyAgICBwdXNoKEBmdW5j
LCAiIik7CisgICAgcmV0dXJuIEBmdW5jOworfQorCitzdWIgZmluaXNoCit7CisgICAgbXkgJG9i
amVjdCA9IHNoaWZ0OworCisgICAgb3BlbihteSAkU09VUkNFLCAiPiRvdXRwdXREaXIvUmVtb3Rl
JGZpbGVOYW1lLmNwcCIpIHx8IGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRvdXRwdXREaXIvUmVt
b3RlJGZpbGVOYW1lLmNwcCI7CisgICAgb3BlbihteSAkSEVBREVSLCAiPiRvdXRwdXREaXIvUmVt
b3RlJGZpbGVOYW1lLmgiKSB8fCBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkb3V0cHV0RGlyL1Jl
bW90ZSRmaWxlTmFtZS5oIjsKKworICAgIHByaW50ICRTT1VSQ0Ugam9pbigiXG4iLCBnZW5lcmF0
ZVNvdXJjZSgpKTsKKyAgICBjbG9zZSgkU09VUkNFKTsKKyAgICB1bmRlZigkU09VUkNFKTsKKwor
ICAgIHByaW50ICRIRUFERVIgam9pbigiXG4iLCBnZW5lcmF0ZUhlYWRlcigpKTsKKyAgICBjbG9z
ZSgkSEVBREVSKTsKKyAgICB1bmRlZigkSEVBREVSKTsKK30KKworMTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggMjI1NjA0MS4uODE1MGM4ZiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcgQEAK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVk
ZSAiUmFuZ2UuaCIKKyNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JGcm9udGVuZDIuaCIKICNpbmNs
dWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNs
dWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCkBAIC00ODAsMTAgKzQ4MSwxMSBAQCB2b2lkIEluc3Bl
Y3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZChjb25zdCBTY3JpcHRPYmplY3QmIHdlYklu
c3BlY3RvcikKIHsKICAgICBtX29wZW5pbmdGcm9udGVuZCA9IGZhbHNlOwogICAgIG1fZnJvbnRl
bmQgPSBuZXcgSW5zcGVjdG9yRnJvbnRlbmQod2ViSW5zcGVjdG9yLCBtX2NsaWVudCk7CisgICAg
bV9mcm9udGVuZDIgPSBuZXcgSW5zcGVjdG9yRnJvbnRlbmQyKG1fY2xpZW50KTsKICAgICByZWxl
YXNlRE9NQWdlbnQoKTsKICAgICBtX2RvbUFnZW50ID0gSW5zcGVjdG9yRE9NQWdlbnQ6OmNyZWF0
ZShtX2Nzc1N0b3JlLmdldCgpLCBtX2Zyb250ZW5kLmdldCgpKTsKICAgICBpZiAobV90aW1lbGlu
ZUFnZW50KQotICAgICAgICBtX3RpbWVsaW5lQWdlbnQtPnJlc2V0RnJvbnRlbmRQcm94eU9iamVj
dChtX2Zyb250ZW5kLmdldCgpKTsKKyAgICAgICAgbV90aW1lbGluZUFnZW50LT5yZXNldEZyb250
ZW5kUHJveHlPYmplY3QobV9mcm9udGVuZDIuZ2V0KCkpOwogCiAgICAgLy8gSW5pdGlhbGl6ZSBX
ZWIgSW5zcGVjdG9yIHRpdGxlLgogICAgIG1fZnJvbnRlbmQtPmluc3BlY3RlZFVSTENoYW5nZWQo
bV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPnVybCgpLnN0cmluZygpKTsK
QEAgLTExNDksNyArMTE1MSw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c3RhcnRUaW1l
bGluZVByb2ZpbGVyKCkKICAgICBpZiAobV90aW1lbGluZUFnZW50KQogICAgICAgICByZXR1cm47
CiAKLSAgICBtX3RpbWVsaW5lQWdlbnQgPSBuZXcgSW5zcGVjdG9yVGltZWxpbmVBZ2VudChtX2Zy
b250ZW5kLmdldCgpKTsKKyAgICBtX3RpbWVsaW5lQWdlbnQgPSBuZXcgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudChtX2Zyb250ZW5kMi5nZXQoKSk7CiAgICAgaWYgKG1fZnJvbnRlbmQpCiAgICAgICAg
IG1fZnJvbnRlbmQtPnRpbWVsaW5lUHJvZmlsZXJXYXNTdGFydGVkKCk7CiAgICAgbV9jbGllbnQt
PnRpbWVsaW5lUHJvZmlsZXJXYXNTdGFydGVkKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmgKaW5kZXggNGM5NGQ2ZC4uN2VkZDIwNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuaApAQCAtNjcsNiArNjcsNyBAQCBjbGFzcyBJbnNwZWN0b3JCYWNr
ZW5kOwogY2xhc3MgSW5zcGVjdG9yQ2xpZW50OwogY2xhc3MgSW5zcGVjdG9yQ1NTU3RvcmU7CiBj
bGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kMjsKIGNsYXNz
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50OwogY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDsK
IGNsYXNzIEluc3BlY3RvclZhbHVlOwpAQCAtMzQwLDYgKzM0MSw3IEBAIHByaXZhdGU6CiAgICAg
T3duUHRyPEluc3BlY3RvckZyb250ZW5kQ2xpZW50PiBtX2luc3BlY3RvckZyb250ZW5kQ2xpZW50
OwogICAgIGJvb2wgbV9vcGVuaW5nRnJvbnRlbmQ7CiAgICAgT3duUHRyPEluc3BlY3RvckZyb250
ZW5kPiBtX2Zyb250ZW5kOworICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZDI+IG1fZnJvbnRl
bmQyOwogICAgIFJlZlB0cjxJbnNwZWN0b3JET01BZ2VudD4gbV9kb21BZ2VudDsKICAgICBPd25Q
dHI8SW5zcGVjdG9yQ1NTU3RvcmU+IG1fY3NzU3RvcmU7CiAgICAgT3duUHRyPEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ+IG1fdGltZWxpbmVBZ2VudDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kLmNwcAppbmRleCBmZWU0NjMwLi4yYzY5ZTMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmQuY3BwCkBAIC0yOTcsMTQgKzI5Nyw2IEBAIHZvaWQgSW5zcGVjdG9yRnJv
bnRlbmQ6OnRpbWVsaW5lUHJvZmlsZXJXYXNTdG9wcGVkKCkKICAgICBjYWxsU2ltcGxlRnVuY3Rp
b24oInRpbWVsaW5lUHJvZmlsZXJXYXNTdG9wcGVkIik7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRnJv
bnRlbmQ6OmFkZFJlY29yZFRvVGltZWxpbmUoY29uc3QgU2NyaXB0T2JqZWN0JiByZWNvcmQpCi17
Ci0gICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1fd2ViSW5zcGVjdG9yLCAiZGlzcGF0
Y2giKTsgCi0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoImFkZFJlY29yZFRvVGltZWxpbmUi
KTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChyZWNvcmQpOwotICAgIGZ1bmN0aW9uLmNh
bGwoKTsKLX0KLQogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogdm9pZCBJbnNwZWN0
b3JGcm9udGVuZDo6YXR0YWNoRGVidWdnZXJXaGVuU2hvd24oKQogewpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kLmgKaW5kZXggZTAyYjY2MS4uOGZjYjE1MCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZC5oCkBAIC0xNjUsNyArMTY1LDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIHZvaWQgdGltZWxpbmVQcm9maWxlcldhc1N0YXJ0ZWQoKTsKICAgICAg
ICAgdm9pZCB0aW1lbGluZVByb2ZpbGVyV2FzU3RvcHBlZCgpOwotICAgICAgICB2b2lkIGFkZFJl
Y29yZFRvVGltZWxpbmUoY29uc3QgU2NyaXB0T2JqZWN0Jik7CiAKICNpZiBFTkFCTEUoV09SS0VS
UykKICAgICAgICAgdm9pZCBkaWRDcmVhdGVXb3JrZXIoY29uc3QgSW5zcGVjdG9yV29ya2VyUmVz
b3VyY2UmKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
Mi5pZGwgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIuaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxOWIzYmUKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIuaWRsCkBAIC0wLDAgKzEsMTAgQEAK
Ky8vIENvcHlyaWdodCAoYykgMjAwOSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNE
LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUu
CisKK21vZHVsZSBXZWJDb3JlIHsKKworICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9SU5TUEVD
VE9SLCBKU10gSW5zcGVjdG9yRnJvbnRlbmQyIHsKKyAgICAgICAgdm9pZCBhZGRSZWNvcmRUb1Rp
bWVsaW5lKGluIE9iamVjdCByZWNvcmQpOworICAgIH07Cit9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IGFiNTMzMTkuLjk4MDM2MWQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC0zNCw4ICsz
NCw4IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1ZGUgIkV2ZW50LmgiCi0jaW5j
bHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVk
ZSAiUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlRpbWVsaW5lUmVj
b3JkRmFjdG9yeS5oIgpAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGlu
dCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzX2luc3RhbmNlQ291bnQgPSAwOwogCi1JbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3BlY3RvckZyb250ZW5k
KiBmcm9udGVuZCkKK0luc3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdl
bnQoSW5zcGVjdG9yRnJvbnRlbmQyKiBmcm9udGVuZCkKICAgICA6IG1fZnJvbnRlbmQoZnJvbnRl
bmQpCiB7CiAgICAgKytzX2luc3RhbmNlQ291bnQ7CkBAIC02Miw5ICs2Miw5IEBAIHZvaWQgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaEdDRXZlbnRSZWNvcmRzKCkKICAgICBHQ0V2ZW50cyBl
dmVudHMgPSBtX2djRXZlbnRzOwogICAgIG1fZ2NFdmVudHMuY2xlYXIoKTsKICAgICBmb3IgKEdD
RXZlbnRzOjppdGVyYXRvciBpID0gZXZlbnRzLmJlZ2luKCk7IGkgIT0gZXZlbnRzLmVuZCgpOyAr
K2kpIHsKLSAgICAgICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBpLT5zdGFydFRpbWUpOwotICAgICAg
ICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHQ0V2ZW50
RGF0YShtX2Zyb250ZW5kLCBpLT5jb2xsZWN0ZWRCeXRlcykpOwotICAgICAgICByZWNvcmQuc2V0
KCJlbmRUaW1lIiwgaS0+ZW5kVGltZSk7CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChpLT5z
dGFydFRpbWUpOworICAgICAgICByZWNvcmQtPnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlR0NFdmVudERhdGEoaS0+Y29sbGVjdGVkQnl0ZXMpKTsKKyAgICAgICAgcmVj
b3JkLT5zZXROdW1iZXIoImVuZFRpbWUiLCBpLT5lbmRUaW1lKTsKICAgICAgICAgYWRkUmVjb3Jk
VG9UaW1lbGluZShyZWNvcmQsIEdDRXZlbnRUaW1lbGluZVJlY29yZFR5cGUpOwogICAgIH0KIH0K
QEAgLTgzLDcgKzgzLDcgQEAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6fkluc3BlY3RvclRpbWVs
aW5lQWdlbnQoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxDYWxsRnVuY3Rp
b24oY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSkKIHsKLSAgICBwdXNo
Q3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUZ1bmN0aW9uQ2FsbERh
dGEobV9mcm9udGVuZCwgc2NyaXB0TmFtZSwgc2NyaXB0TGluZSksIEZ1bmN0aW9uQ2FsbFRpbWVs
aW5lUmVjb3JkVHlwZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVGdW5jdGlvbkNhbGxEYXRhKHNjcmlwdE5hbWUsIHNjcmlwdExpbmUpLCBGdW5j
dGlvbkNhbGxUaW1lbGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmRpZENhbGxGdW5jdGlvbigpCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6ZGlkQ2FsbEZ1bmN0aW9uKCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50Ojp3aWxsRGlzcGF0Y2hFdmVudChjb25zdCBFdmVudCYgZXZlbnQpCiB7Ci0gICAgcHVz
aEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmVudERpc3BhdGNo
RGF0YShtX2Zyb250ZW5kLCBldmVudCksCisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmVudERpc3BhdGNoRGF0YShldmVudCksCiAgICAgICAgIEV2
ZW50RGlzcGF0Y2hUaW1lbGluZVJlY29yZFR5cGUpOwogfQogCkBAIC0xMDQsNyArMTA0LDcgQEAg
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWREaXNwYXRjaEV2ZW50KCkKIAogdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsTGF5b3V0KCkKIHsKLSAgICBwdXNoQ3VycmVudFJl
Y29yZChtX2Zyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKSwgTGF5b3V0VGltZWxpbmVSZWNvcmRU
eXBlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBM
YXlvdXRUaW1lbGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmRpZExheW91dCgpCkBAIC0xMTQsNyArMTE0LDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpkaWRMYXlvdXQoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxS
ZWNhbGN1bGF0ZVN0eWxlKCkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChtX2Zyb250ZW5kLT5u
ZXdTY3JpcHRPYmplY3QoKSwgUmVjYWxjdWxhdGVTdHlsZXNUaW1lbGluZVJlY29yZFR5cGUpOwor
ICAgIHB1c2hDdXJyZW50UmVjb3JkKEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCksIFJlY2FsY3Vs
YXRlU3R5bGVzVGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpkaWRSZWNhbGN1bGF0ZVN0eWxlKCkKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJlY2FsY3VsYXRlU3R5bGUoKQogCiB2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxQYWludChjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAg
IHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFpbnREYXRh
KG1fZnJvbnRlbmQsIHJlY3QpLCBQYWludFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgcHVzaEN1
cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYWludERhdGEocmVjdCks
IFBhaW50VGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRQYWludCgpCkBAIC0xMzQsMTQgKzEzNCwxNCBAQCB2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OmRpZFBhaW50KCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxs
V3JpdGVIVE1MKHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUpCiB7
Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYXJz
ZUhUTUxEYXRhKG1fZnJvbnRlbmQsIGxlbmd0aCwgc3RhcnRMaW5lKSwgUGFyc2VIVE1MVGltZWxp
bmVSZWNvcmRUeXBlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rv
cnk6OmNyZWF0ZVBhcnNlSFRNTERhdGEobGVuZ3RoLCBzdGFydExpbmUpLCBQYXJzZUhUTUxUaW1l
bGluZVJlY29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFdy
aXRlSFRNTCh1bnNpZ25lZCBpbnQgZW5kTGluZSkKIHsKICAgICBpZiAoIW1fcmVjb3JkU3RhY2su
aXNFbXB0eSgpKSB7CiAgICAgICAgIFRpbWVsaW5lUmVjb3JkRW50cnkgZW50cnkgPSBtX3JlY29y
ZFN0YWNrLmxhc3QoKTsKLSAgICAgICAgZW50cnkuZGF0YS5zZXQoImVuZExpbmUiLCBlbmRMaW5l
KTsKKyAgICAgICAgZW50cnkuZGF0YS0+c2V0TnVtYmVyKCJlbmRMaW5lIiwgZW5kTGluZSk7CiAg
ICAgICAgIGRpZENvbXBsZXRlQ3VycmVudFJlY29yZChQYXJzZUhUTUxUaW1lbGluZVJlY29yZFR5
cGUpOwogICAgIH0KIH0KQEAgLTE0OSwyMiArMTQ5LDIyIEBAIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6ZGlkV3JpdGVIVE1MKHVuc2lnbmVkIGludCBlbmRMaW5lKQogdm9pZCBJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpkaWRJbnN0YWxsVGltZXIoaW50IHRpbWVySWQsIGludCB0aW1lb3V0
LCBib29sIHNpbmdsZVNob3QpCiB7CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2Ny
aXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1Jl
Y29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7Ci0gICAgcmVjb3JkLnNldCgi
ZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlVGltZXJJbnN0YWxsRGF0YShtX2Zy
b250ZW5kLCB0aW1lcklkLCB0aW1lb3V0LCBzaW5nbGVTaG90KSk7CisgICAgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmlj
UmVjb3JkKFdURjo6Y3VycmVudFRpbWVNUygpKTsKKyAgICByZWNvcmQtPnNldCgiZGF0YSIsIFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlVGltZXJJbnN0YWxsRGF0YSh0aW1lcklkLCB0aW1l
b3V0LCBzaW5nbGVTaG90KSk7CiAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIFRpbWVy
SW5zdGFsbFRpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6ZGlkUmVtb3ZlVGltZXIoaW50IHRpbWVySWQpCiB7CiAgICAgcHVzaEdDRXZlbnRSZWNv
cmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7Ci0g
ICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJp
Y1RpbWVyRGF0YShtX2Zyb250ZW5kLCB0aW1lcklkKSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3Jk
KFdURjo6Y3VycmVudFRpbWVNUygpKTsKKyAgICByZWNvcmQtPnNldCgiZGF0YSIsIFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1RpbWVyRGF0YSh0aW1lcklkKSk7CiAgICAgYWRk
UmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIFRpbWVyUmVtb3ZlVGltZWxpbmVSZWNvcmRUeXBlKTsK
IH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRmlyZVRpbWVyKGludCB0aW1l
cklkKQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlR2VuZXJpY1RpbWVyRGF0YShtX2Zyb250ZW5kLCB0aW1lcklkKSwgVGltZXJGaXJlVGltZWxp
bmVSZWNvcmRUeXBlKTsgCisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVHZW5lcmljVGltZXJEYXRhKHRpbWVySWQpLCBUaW1lckZpcmVUaW1lbGluZVJl
Y29yZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEZpcmVUaW1l
cigpCkBAIC0xNzQsNyArMTc0LDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRG
aXJlVGltZXIoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxDaGFuZ2VYSFJS
ZWFkeVN0YXRlKGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgcmVhZHlTdGF0ZSkKIHsKLSAgICBwdXNo
Q3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUlJlYWR5U3RhdGVD
aGFuZ2VEYXRhKG1fZnJvbnRlbmQsIHVybCwgcmVhZHlTdGF0ZSksIFhIUlJlYWR5U3RhdGVDaGFu
Z2VSZWNvcmRUeXBlKTsKKyAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rv
cnk6OmNyZWF0ZVhIUlJlYWR5U3RhdGVDaGFuZ2VEYXRhKHVybCwgcmVhZHlTdGF0ZSksIFhIUlJl
YWR5U3RhdGVDaGFuZ2VSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRDaGFuZ2VYSFJSZWFkeVN0YXRlKCkKQEAgLTE4NCw3ICsxODQsNyBAQCB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENoYW5nZVhIUlJlYWR5U3RhdGUoKQogCiB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxMb2FkWEhSKGNvbnN0IFN0cmluZyYgdXJsKSAKIHsK
LSAgICBwdXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUkxv
YWREYXRhKG1fZnJvbnRlbmQsIHVybCksIFhIUkxvYWRSZWNvcmRUeXBlKTsKKyAgICBwdXNoQ3Vy
cmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUkxvYWREYXRhKHVybCks
IFhIUkxvYWRSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpk
aWRMb2FkWEhSKCkKQEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmRpZExvYWRYSFIoKQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxFdmFs
dWF0ZVNjcmlwdChjb25zdCBTdHJpbmcmIHVybCwgaW50IGxpbmVOdW1iZXIpCiB7Ci0gICAgcHVz
aEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmFsdWF0ZVNjcmlw
dERhdGEobV9mcm9udGVuZCwgdXJsLCBsaW5lTnVtYmVyKSwgRXZhbHVhdGVTY3JpcHRUaW1lbGlu
ZVJlY29yZFR5cGUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlRXZhbHVhdGVTY3JpcHREYXRhKHVybCwgbGluZU51bWJlciksIEV2YWx1YXRlU2Ny
aXB0VGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KICAgICAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6ZGlkRXZhbHVhdGVTY3JpcHQoKQpAQCAtMjA1LDkgKzIwNSw5IEBAIHZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6ZGlkRXZhbHVhdGVTY3JpcHQoKQogdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpkaWRTY2hlZHVsZVJlc291cmNlUmVxdWVzdChjb25zdCBTdHJpbmcmIHVybCkK
IHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKLSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0g
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIFdU
Rjo6Y3VycmVudFRpbWVNUygpKTsKLSAgICByZWNvcmQuc2V0KCJkYXRhIiwgVGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVTY2hlZHVsZVJlc291cmNlUmVxdWVzdERhdGEobV9mcm9udGVuZCwg
dXJsKSk7Ci0gICAgcmVjb3JkLnNldCgidHlwZSIsIFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0VGlt
ZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoV1RGOjpjdXJyZW50VGlt
ZU1TKCkpOworICAgIHJlY29yZC0+c2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5Ojpj
cmVhdGVTY2hlZHVsZVJlc291cmNlUmVxdWVzdERhdGEodXJsKSk7CisgICAgcmVjb3JkLT5zZXRO
dW1iZXIoInR5cGUiLCBTY2hlZHVsZVJlc291cmNlUmVxdWVzdFRpbWVsaW5lUmVjb3JkVHlwZSk7
CiAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIFNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0
VGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KIApAQCAtMjE1LDE2ICsyMTUsMTYgQEAgdm9pZCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsU2VuZFJlc291cmNlUmVxdWVzdCh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGIKICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAg
ICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1
cnJlbnRUaW1lTVMoKSk7Ci0gICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlUmVzb3VyY2VTZW5kUmVxdWVzdERhdGEobV9mcm9udGVuZCwgaWRlbnRpZmll
ciwgaXNNYWluUmVzb3VyY2UsIHJlcXVlc3QpKTsKLSAgICByZWNvcmQuc2V0KCJ0eXBlIiwgUmVz
b3VyY2VTZW5kUmVxdWVzdFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVj
b3JkKFdURjo6Y3VycmVudFRpbWVNUygpKTsKKyAgICByZWNvcmQtPnNldCgiZGF0YSIsIFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VTZW5kUmVxdWVzdERhdGEoaWRlbnRpZmll
ciwgaXNNYWluUmVzb3VyY2UsIHJlcXVlc3QpKTsKKyAgICByZWNvcmQtPnNldE51bWJlcigidHlw
ZSIsIFJlc291cmNlU2VuZFJlcXVlc3RUaW1lbGluZVJlY29yZFR5cGUpOwogICAgIHNldEhlYXBT
aXplU3RhdGlzdGljKHJlY29yZCk7CiAgICAgbV9mcm9udGVuZC0+YWRkUmVjb3JkVG9UaW1lbGlu
ZShyZWNvcmQpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxSZWNlaXZl
UmVzb3VyY2VEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKIHsKLSAgICBwdXNoQ3VycmVu
dFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlY2VpdmVSZXNvdXJjZURhdGEo
bV9mcm9udGVuZCwgaWRlbnRpZmllciksIFJlY2VpdmVSZXNvdXJjZURhdGFUaW1lbGluZVJlY29y
ZFR5cGUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlUmVjZWl2ZVJlc291cmNlRGF0YShpZGVudGlmaWVyKSwgUmVjZWl2ZVJlc291cmNlRGF0YVRp
bWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlk
UmVjZWl2ZVJlc291cmNlRGF0YSgpCkBAIC0yMzQsNyArMjM0LDcgQEAgdm9pZCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpkaWRSZWNlaXZlUmVzb3VyY2VEYXRhKCkKICAgICAKIHZvaWQgSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAg
cHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVJl
Y2VpdmVSZXNwb25zZURhdGEobV9mcm9udGVuZCwgaWRlbnRpZmllciwgcmVzcG9uc2UpLCBSZXNv
dXJjZVJlY2VpdmVSZXNwb25zZVRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgcHVzaEN1cnJlbnRS
ZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVJlY2VpdmVSZXNwb25z
ZURhdGEoaWRlbnRpZmllciwgcmVzcG9uc2UpLCBSZXNvdXJjZVJlY2VpdmVSZXNwb25zZVRpbWVs
aW5lUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVj
ZWl2ZVJlc291cmNlUmVzcG9uc2UoKQpAQCAtMjQ1LDkgKzI0NSw5IEBAIHZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoKQogdm9pZCBJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpkaWRGaW5pc2hMb2FkaW5nUmVzb3VyY2UodW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBib29sIGRpZEZhaWwpCiB7CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0g
ICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2Vu
ZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7Ci0gICAgcmVjb3Jk
LnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VGaW5pc2hE
YXRhKG1fZnJvbnRlbmQsIGlkZW50aWZpZXIsIGRpZEZhaWwpKTsKLSAgICByZWNvcmQuc2V0KCJ0
eXBlIiwgUmVzb3VyY2VGaW5pc2hUaW1lbGluZVJlY29yZFR5cGUpOworICAgIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJp
Y1JlY29yZChXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgcmVjb3JkLT5zZXQoImRhdGEiLCBU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlRmluaXNoRGF0YShpZGVudGlmaWVy
LCBkaWRGYWlsKSk7CisgICAgcmVjb3JkLT5zZXROdW1iZXIoInR5cGUiLCBSZXNvdXJjZUZpbmlz
aFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAgICAgc2V0SGVhcFNpemVTdGF0aXN0aWMocmVjb3JkKTsK
ICAgICBtX2Zyb250ZW5kLT5hZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCk7CiB9CkBAIC0yNTUs
MjIgKzI1NSwyMiBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEZpbmlzaExvYWRp
bmdSZXNvdXJjZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsCiB2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OmRpZE1hcmtUaW1lbGluZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAg
cHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJl
bnRUaW1lTVMoKSk7Ci0gICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlTWFya1RpbWVsaW5lRGF0YShtX2Zyb250ZW5kLCBtZXNzYWdlKSk7CisgICAgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVh
dGVHZW5lcmljUmVjb3JkKFdURjo6Y3VycmVudFRpbWVNUygpKTsKKyAgICByZWNvcmQtPnNldCgi
ZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlTWFya1RpbWVsaW5lRGF0YShtZXNz
YWdlKSk7CiAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIE1hcmtUaW1lbGluZVJlY29y
ZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZE1hcmtET01Db250
ZW50RXZlbnQoKQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwotICAgIFNjcmlwdE9iamVj
dCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9m
cm9udGVuZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChX
VEY6OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQsIE1h
cmtET01Db250ZW50RXZlbnRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRNYXJrTG9hZEV2ZW50KCkKIHsKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKLSAgICBT
Y3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmlj
UmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygpKTsKKyAgICBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVy
aWNSZWNvcmQoV1RGOjpjdXJyZW50VGltZU1TKCkpOwogICAgIGFkZFJlY29yZFRvVGltZWxpbmUo
cmVjb3JkLCBNYXJrTG9hZEV2ZW50VHlwZSk7CiB9CiAKQEAgLTI3OSwzMiArMjc5LDMyIEBAIHZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cmVzZXQoKQogICAgIG1fcmVjb3JkU3RhY2suY2xl
YXIoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpyZXNldEZyb250ZW5kUHJv
eHlPYmplY3QoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQordm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpyZXNldEZyb250ZW5kUHJveHlPYmplY3QoSW5zcGVjdG9yRnJvbnRlbmQyKiBm
cm9udGVuZCkKIHsKICAgICBBU1NFUlQoZnJvbnRlbmQpOwogICAgIHJlc2V0KCk7CiAgICAgbV9m
cm9udGVuZCA9IGZyb250ZW5kOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFk
ZFJlY29yZFRvVGltZWxpbmUoU2NyaXB0T2JqZWN0IHJlY29yZCwgVGltZWxpbmVSZWNvcmRUeXBl
IHR5cGUpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFkZFJlY29yZFRvVGltZWxpbmUo
Y29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIHJlY29yZCwgVGltZWxpbmVSZWNvcmRUeXBl
IHR5cGUpCiB7Ci0gICAgcmVjb3JkLnNldCgidHlwZSIsIHR5cGUpOworICAgIHJlY29yZC0+c2V0
TnVtYmVyKCJ0eXBlIiwgdHlwZSk7CiAgICAgc2V0SGVhcFNpemVTdGF0aXN0aWMocmVjb3JkKTsK
LSAgICBpZiAobV9yZWNvcmRTdGFjay5pc0VtcHR5KCkpCisgICAgaWYgKG1fcmVjb3JkU3RhY2su
aXNFbXB0eSgpKSAKICAgICAgICAgbV9mcm9udGVuZC0+YWRkUmVjb3JkVG9UaW1lbGluZShyZWNv
cmQpOwogICAgIGVsc2UgewogICAgICAgICBUaW1lbGluZVJlY29yZEVudHJ5IHBhcmVudCA9IG1f
cmVjb3JkU3RhY2subGFzdCgpOwotICAgICAgICBwYXJlbnQuY2hpbGRyZW4uc2V0KHBhcmVudC5j
aGlsZHJlbi5sZW5ndGgoKSwgcmVjb3JkKTsKKyAgICAgICAgcGFyZW50LmNoaWxkcmVuLT5wdXNo
KHJlY29yZCk7CiAgICAgfQogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNldEhl
YXBTaXplU3RhdGlzdGljKFNjcmlwdE9iamVjdCByZWNvcmQpCit2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OnNldEhlYXBTaXplU3RhdGlzdGljKGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+JiByZWNvcmQpCiB7CiAgICAgc2l6ZV90IHVzZWRIZWFwU2l6ZSA9IDA7CiAgICAgc2l6ZV90
IHRvdGFsSGVhcFNpemUgPSAwOwogICAgIFNjcmlwdEdDRXZlbnQ6OmdldEhlYXBTaXplKHVzZWRI
ZWFwU2l6ZSwgdG90YWxIZWFwU2l6ZSk7Ci0gICAgcmVjb3JkLnNldCgidXNlZEhlYXBTaXplIiwg
dXNlZEhlYXBTaXplKTsKLSAgICByZWNvcmQuc2V0KCJ0b3RhbEhlYXBTaXplIiwgdG90YWxIZWFw
U2l6ZSk7CisgICAgcmVjb3JkLT5zZXROdW1iZXIoInVzZWRIZWFwU2l6ZSIsIHVzZWRIZWFwU2l6
ZSk7CisgICAgcmVjb3JkLT5zZXROdW1iZXIoInRvdGFsSGVhcFNpemUiLCB0b3RhbEhlYXBTaXpl
KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21wbGV0ZUN1cnJlbnRS
ZWNvcmQoVGltZWxpbmVSZWNvcmRUeXBlIHR5cGUpCkBAIC0zMTYsMTggKzMxNiwxOCBAQCB2b2lk
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGlu
ZVJlY29yZFR5cGUgdHlwZSkKICAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeSBlbnRyeSA9IG1f
cmVjb3JkU3RhY2subGFzdCgpOwogICAgICAgICBtX3JlY29yZFN0YWNrLnJlbW92ZUxhc3QoKTsK
ICAgICAgICAgQVNTRVJUKGVudHJ5LnR5cGUgPT0gdHlwZSk7Ci0gICAgICAgIGVudHJ5LnJlY29y
ZC5zZXQoImRhdGEiLCBlbnRyeS5kYXRhKTsKLSAgICAgICAgZW50cnkucmVjb3JkLnNldCgiY2hp
bGRyZW4iLCBlbnRyeS5jaGlsZHJlbik7Ci0gICAgICAgIGVudHJ5LnJlY29yZC5zZXQoImVuZFRp
bWUiLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgICAgIGVudHJ5LnJlY29yZC0+c2V0KCJk
YXRhIiwgZW50cnkuZGF0YSk7CisgICAgICAgIGVudHJ5LnJlY29yZC0+c2V0KCJjaGlsZHJlbiIs
IGVudHJ5LmNoaWxkcmVuKTsKKyAgICAgICAgZW50cnkucmVjb3JkLT5zZXROdW1iZXIoImVuZFRp
bWUiLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CiAgICAgICAgIGFkZFJlY29yZFRvVGltZWxpbmUo
ZW50cnkucmVjb3JkLCB0eXBlKTsKICAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6cHVzaEN1cnJlbnRSZWNvcmQoU2NyaXB0T2JqZWN0IGRhdGEsIFRpbWVsaW5lUmVjb3Jk
VHlwZSB0eXBlKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ3VycmVudFJlY29y
ZChjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgZGF0YSwgVGltZWxpbmVSZWNvcmRUeXBl
IHR5cGUpCiB7CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0IHJl
Y29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250
ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7Ci0gICAgbV9yZWNvcmRTdGFjay5hcHBlbmQoVGlt
ZWxpbmVSZWNvcmRFbnRyeShyZWNvcmQsIGRhdGEsIG1fZnJvbnRlbmQtPm5ld1NjcmlwdEFycmF5
KCksIHR5cGUpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoV1RGOjpjdXJyZW50VGltZU1TKCkp
OworICAgIG1fcmVjb3JkU3RhY2suYXBwZW5kKFRpbWVsaW5lUmVjb3JkRW50cnkocmVjb3JkLCBk
YXRhLCBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCksIHR5cGUpKTsKIH0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmlu
ZGV4IGZlMzM0YmUuLjEwZThhNjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1l
bGluZUFnZW50LmgKQEAgLTM0LDE2ICszNCwxNSBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTY3JpcHRHQ0V2ZW50
LmgiCiAjaW5jbHVkZSAiU2NyaXB0R0NFdmVudExpc3RlbmVyLmgiCi0jaW5jbHVkZSAiU2NyaXB0
T2JqZWN0LmgiCi0jaW5jbHVkZSAiU2NyaXB0QXJyYXkuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEV2ZW50OwotY2xhc3MgSW5zcGVjdG9y
RnJvbnRlbmQ7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDI7CiBjbGFzcyBJbnRSZWN0OwogY2xh
c3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKQEAgLTc1LDExICs3
NCwxMSBAQCBlbnVtIFRpbWVsaW5lUmVjb3JkVHlwZSB7CiAKIGNsYXNzIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQgOiBTY3JpcHRHQ0V2ZW50TGlzdGVuZXIsIHB1YmxpYyBOb25jb3B5YWJsZSB7CiBw
dWJsaWM6Ci0gICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnNwZWN0b3JGcm9udGVuZCogZnJv
bnRlbmQpOworICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zcGVjdG9yRnJvbnRlbmQyKiBm
cm9udGVuZCk7CiAgICAgfkluc3BlY3RvclRpbWVsaW5lQWdlbnQoKTsKIAogICAgIHZvaWQgcmVz
ZXQoKTsKLSAgICB2b2lkIHJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChJbnNwZWN0b3JGcm9udGVu
ZCopOworICAgIHZvaWQgcmVzZXRGcm9udGVuZFByb3h5T2JqZWN0KEluc3BlY3RvckZyb250ZW5k
MiopOwogCiAgICAgLy8gTWV0aG9kcyBjYWxsZWQgZnJvbSBXZWJDb3JlLgogICAgIHZvaWQgd2ls
bENhbGxGdW5jdGlvbihjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKTsK
QEAgLTEzNCwyNiArMTMzLDI2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBzdHJ1Y3QgVGlt
ZWxpbmVSZWNvcmRFbnRyeSB7Ci0gICAgICAgIFRpbWVsaW5lUmVjb3JkRW50cnkoU2NyaXB0T2Jq
ZWN0IHJlY29yZCwgU2NyaXB0T2JqZWN0IGRhdGEsIFNjcmlwdEFycmF5IGNoaWxkcmVuLCBUaW1l
bGluZVJlY29yZFR5cGUgdHlwZSkKKyAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeShjb25zdCBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgcmVjb3JkLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiYgZGF0YSwgY29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5PiYgY2hpbGRyZW4sIFRpbWVs
aW5lUmVjb3JkVHlwZSB0eXBlKQogICAgICAgICAgICAgOiByZWNvcmQocmVjb3JkKSwgZGF0YShk
YXRhKSwgY2hpbGRyZW4oY2hpbGRyZW4pLCB0eXBlKHR5cGUpCiAgICAgICAgIHsKICAgICAgICAg
fQotICAgICAgICBTY3JpcHRPYmplY3QgcmVjb3JkOwotICAgICAgICBTY3JpcHRPYmplY3QgZGF0
YTsKLSAgICAgICAgU2NyaXB0QXJyYXkgY2hpbGRyZW47CisgICAgICAgIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IHJlY29yZDsKKyAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YTsK
KyAgICAgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiBjaGlsZHJlbjsKICAgICAgICAgVGltZWxp
bmVSZWNvcmRUeXBlIHR5cGU7CiAgICAgfTsKICAgICAgICAgCi0gICAgdm9pZCBwdXNoQ3VycmVu
dFJlY29yZChTY3JpcHRPYmplY3QsIFRpbWVsaW5lUmVjb3JkVHlwZSk7Ci0gICAgdm9pZCBzZXRI
ZWFwU2l6ZVN0YXRpc3RpYyhTY3JpcHRPYmplY3QgcmVjb3JkKTsKKyAgICB2b2lkIHB1c2hDdXJy
ZW50UmVjb3JkKGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiwgVGltZWxpbmVSZWNvcmRU
eXBlKTsKKyAgICB2b2lkIHNldEhlYXBTaXplU3RhdGlzdGljKGNvbnN0IFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+JiByZWNvcmQpOwogICAgICAgICAKICAgICB2b2lkIGRpZENvbXBsZXRlQ3VycmVu
dFJlY29yZChUaW1lbGluZVJlY29yZFR5cGUpOwogCi0gICAgdm9pZCBhZGRSZWNvcmRUb1RpbWVs
aW5lKFNjcmlwdE9iamVjdCwgVGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICB2b2lkIGFkZFJlY29y
ZFRvVGltZWxpbmUoY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mLCBUaW1lbGluZVJlY29y
ZFR5cGUpOwogCiAgICAgdm9pZCBwdXNoR0NFdmVudFJlY29yZHMoKTsKIAotICAgIEluc3BlY3Rv
ckZyb250ZW5kKiBtX2Zyb250ZW5kOworICAgIEluc3BlY3RvckZyb250ZW5kMiogbV9mcm9udGVu
ZDsKIAogICAgIFZlY3RvcjxUaW1lbGluZVJlY29yZEVudHJ5PiBtX3JlY29yZFN0YWNrOwogICAg
IHN0YXRpYyBpbnQgc19pbnN0YW5jZUNvdW50OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5l
UmVjb3JkRmFjdG9yeS5jcHAKaW5kZXggYmRiNWYzZC4uMzI1YjRjOSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAorKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCkBAIC0zNSwxNTEgKzM1LDE1MSBAQAog
CiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgorI2lu
Y2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRl
ICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5j
bHVkZSAiU2NyaXB0QXJyYXkuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKLSNpbmNs
dWRlICJTY3JpcHRPYmplY3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TY3JpcHRPYmpl
Y3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKEluc3BlY3RvckZy
b250ZW5kKiBmcm9udGVuZCwgZG91YmxlIHN0YXJ0VGltZSkKK1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChkb3VibGUgc3Rh
cnRUaW1lKQogewotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBmcm9udGVuZC0+bmV3U2NyaXB0
T2JqZWN0KCk7Ci0gICAgcmVjb3JkLnNldCgic3RhcnRUaW1lIiwgc3RhcnRUaW1lKTsKKyAgICBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgp
OworICAgIHJlY29yZC0+c2V0TnVtYmVyKCJzdGFydFRpbWUiLCBzdGFydFRpbWUpOwogCi0gICAg
U2NyaXB0QXJyYXkgc3RhY2tUcmFjZTsKLSAgICBpZiAoU2NyaXB0Q2FsbFN0YWNrOjpzdGFja1Ry
YWNlKDUsIGZyb250ZW5kLT5zY3JpcHRTdGF0ZSgpLCBzdGFja1RyYWNlKSkKLSAgICAgICAgcmVj
b3JkLnNldCgic3RhY2tUcmFjZSIsIHN0YWNrVHJhY2UpOworICAgIFJlZlB0cjxJbnNwZWN0b3JB
cnJheT4gc3RhY2tUcmFjZSA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKKyAgICBpZiAoU2Ny
aXB0Q2FsbFN0YWNrOjpzdGFja1RyYWNlKDUsIHN0YWNrVHJhY2UpKQorICAgICAgICByZWNvcmQt
PnNldCgic3RhY2tUcmFjZSIsIHN0YWNrVHJhY2UpOwogICAgIHJldHVybiByZWNvcmQ7CiB9CiAK
LVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdDRXZlbnREYXRhKElu
c3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3Qgc2l6ZV90IHVzZWRIZWFwU2l6ZURlbHRh
KQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVH
Q0V2ZW50RGF0YShjb25zdCBzaXplX3QgdXNlZEhlYXBTaXplRGVsdGEpCiB7Ci0gICAgU2NyaXB0
T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQo
InVzZWRIZWFwU2l6ZURlbHRhIiwgdXNlZEhlYXBTaXplRGVsdGEpOworICAgIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEt
PnNldE51bWJlcigidXNlZEhlYXBTaXplRGVsdGEiLCB1c2VkSGVhcFNpemVEZWx0YSk7CiAgICAg
cmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUZ1bmN0aW9uQ2FsbERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBT
dHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKQorUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVGdW5jdGlvbkNhbGxEYXRhKGNvbnN0IFN0
cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRh
dGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQoInNjcmlwdE5h
bWUiLCBzY3JpcHROYW1lKTsKLSAgICBkYXRhLnNldCgic2NyaXB0TGluZSIsIHNjcmlwdExpbmUp
OworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpOworICAgIGRhdGEtPnNldFN0cmluZygic2NyaXB0TmFtZSIsIHNjcmlwdE5hbWUpOwor
ICAgIGRhdGEtPnNldE51bWJlcigic2NyaXB0TGluZSIsIHNjcmlwdExpbmUpOwogICAgIHJldHVy
biBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVF
dmVudERpc3BhdGNoRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IEV2ZW50
JiBldmVudCkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlRXZlbnREaXNwYXRjaERhdGEoY29uc3QgRXZlbnQmIGV2ZW50KQogewotICAgIFNjcmlw
dE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0
KCJ0eXBlIiwgZXZlbnQudHlwZSgpLnN0cmluZygpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXRTdHJp
bmcoInR5cGUiLCBldmVudC50eXBlKCkuc3RyaW5nKCkpOwogICAgIHJldHVybiBkYXRhOwogfQog
Ci1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljVGltZXJE
YXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgaW50IHRpbWVySWQpCitSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNUaW1lckRh
dGEoaW50IHRpbWVySWQpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3
U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQoInRpbWVySWQiLCB0aW1lcklkKTsKKyAgICBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsK
KyAgICBkYXRhLT5zZXROdW1iZXIoInRpbWVySWQiLCB0aW1lcklkKTsKICAgICByZXR1cm4gZGF0
YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlVGltZXJJ
bnN0YWxsRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGludCB0aW1lcklkLCBpbnQg
dGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1lckluc3RhbGxEYXRhKGludCB0aW1lcklkLCBpbnQg
dGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJv
bnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJ0aW1lcklkIiwgdGltZXJJ
ZCk7Ci0gICAgZGF0YS5zZXQoInRpbWVvdXQiLCB0aW1lb3V0KTsKLSAgICBkYXRhLnNldCgic2lu
Z2xlU2hvdCIsIHNpbmdsZVNob3QpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEg
PSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldE51bWJlcigidGltZXJJ
ZCIsIHRpbWVySWQpOworICAgIGRhdGEtPnNldE51bWJlcigidGltZW91dCIsIHRpbWVvdXQpOwor
ICAgIGRhdGEtPnNldEJvb2woInNpbmdsZVNob3QiLCBzaW5nbGVTaG90KTsKICAgICByZXR1cm4g
ZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhS
UmVhZHlTdGF0ZUNoYW5nZURhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBT
dHJpbmcmIHVybCwgaW50IHJlYWR5U3RhdGUpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1l
bGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVhIUlJlYWR5U3RhdGVDaGFuZ2VEYXRhKGNvbnN0IFN0
cmluZyYgdXJsLCBpbnQgcmVhZHlTdGF0ZSkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZy
b250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgidXJsIiwgdXJsKTsKLSAg
ICBkYXRhLnNldCgicmVhZHlTdGF0ZSIsIHJlYWR5U3RhdGUpOworICAgIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNl
dFN0cmluZygidXJsIiwgdXJsKTsKKyAgICBkYXRhLT5zZXROdW1iZXIoInJlYWR5U3RhdGUiLCBy
ZWFkeVN0YXRlKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSTG9hZERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250
ZW5kLCBjb25zdCBTdHJpbmcmIHVybCkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSTG9hZERhdGEoY29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0g
ICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAg
ZGF0YS5zZXQoInVybCIsIHVybCk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9
IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0U3RyaW5nKCJ1cmwiLCB1
cmwpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVFdmFsdWF0ZVNjcmlwdERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250
ZW5kLCBjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGxpbmVOdW1iZXIpIAorUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmFsdWF0ZVNjcmlwdERh
dGEoY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBsaW5lTnVtYmVyKQogewotICAgIFNjcmlwdE9i
amVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJ1
cmwiLCB1cmwpOwotICAgIGRhdGEuc2V0KCJsaW5lTnVtYmVyIiwgbGluZU51bWJlcik7CisgICAg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7
CisgICAgZGF0YS0+c2V0U3RyaW5nKCJ1cmwiLCB1cmwpOworICAgIGRhdGEtPnNldE51bWJlcigi
bGluZU51bWJlciIsIGxpbmVOdW1iZXIpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRP
YmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVNYXJrVGltZWxpbmVEYXRhKEluc3Bl
Y3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSAKK1JlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlTWFya1RpbWVsaW5l
RGF0YShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBm
cm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQoIm1lc3NhZ2UiLCBtZXNz
YWdlKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0
OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXRTdHJpbmcoIm1lc3NhZ2UiLCBtZXNzYWdlKTsKICAg
ICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3REYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9u
dGVuZCwgY29uc3QgU3RyaW5nJiB1cmwpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0RGF0YShjb25zdCBT
dHJpbmcmIHVybCkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3Jp
cHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgidXJsIiwgdXJsKTsKKyAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5z
ZXRTdHJpbmcoInVybCIsIHVybCk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVj
dCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlU2VuZFJlcXVlc3REYXRhKElu
c3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBib29s
IGlzTWFpblJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlU2Vu
ZFJlcXVlc3REYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgYm9vbCBpc01haW5SZXNvdXJj
ZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIFNjcmlwdE9iamVjdCBk
YXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJpZGVudGlm
aWVyIiwgaWRlbnRpZmllcik7Ci0gICAgZGF0YS5zZXQoInVybCIsIHJlcXVlc3QudXJsKCkuc3Ry
aW5nKCkpOwotICAgIGRhdGEuc2V0KCJyZXF1ZXN0TWV0aG9kIiwgcmVxdWVzdC5odHRwTWV0aG9k
KCkpOwotICAgIGRhdGEuc2V0KCJpc01haW5SZXNvdXJjZSIsIGlzTWFpblJlc291cmNlKTsKKyAg
ICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUo
KTsKKyAgICBkYXRhLT5zZXROdW1iZXIoImlkZW50aWZpZXIiLCBpZGVudGlmaWVyKTsKKyAgICBk
YXRhLT5zZXRTdHJpbmcoInVybCIsIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkpOworICAgIGRhdGEt
PnNldFN0cmluZygicmVxdWVzdE1ldGhvZCIsIHJlcXVlc3QuaHR0cE1ldGhvZCgpKTsKKyAgICBk
YXRhLT5zZXRCb29sKCJpc01haW5SZXNvdXJjZSIsIGlzTWFpblJlc291cmNlKTsKICAgICByZXR1
cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
UmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VEYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwg
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
UmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEg
PSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQoImlkZW50aWZpZXIi
LCBpZGVudGlmaWVyKTsKLSAgICBkYXRhLnNldCgic3RhdHVzQ29kZSIsIHJlc3BvbnNlLmh0dHBT
dGF0dXNDb2RlKCkpOwotICAgIGRhdGEuc2V0KCJtaW1lVHlwZSIsIHJlc3BvbnNlLm1pbWVUeXBl
KCkpOwotICAgIGRhdGEuc2V0KCJleHBlY3RlZENvbnRlbnRMZW5ndGgiLCByZXNwb25zZS5leHBl
Y3RlZENvbnRlbnRMZW5ndGgoKSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9
IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJpZGVudGlm
aWVyIiwgaWRlbnRpZmllcik7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJzdGF0dXNDb2RlIiwgcmVz
cG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CisgICAgZGF0YS0+c2V0U3RyaW5nKCJtaW1lVHlwZSIs
IHJlc3BvbnNlLm1pbWVUeXBlKCkpOworICAgIGRhdGEtPnNldE51bWJlcigiZXhwZWN0ZWRDb250
ZW50TGVuZ3RoIiwgcmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCkpOwogICAgIHJldHVy
biBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVS
ZXNvdXJjZUZpbmlzaERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGJvb2wgZGlkRmFpbCkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VGaW5pc2hEYXRhKHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgYm9vbCBkaWRGYWlsKQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0g
ZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJpZGVudGlmaWVyIiwg
aWRlbnRpZmllcik7Ci0gICAgZGF0YS5zZXQoImRpZEZhaWwiLCBkaWRGYWlsKTsKKyAgICBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAg
ICBkYXRhLT5zZXROdW1iZXIoImlkZW50aWZpZXIiLCBpZGVudGlmaWVyKTsKKyAgICBkYXRhLT5z
ZXRCb29sKCJkaWRGYWlsIiwgZGlkRmFpbCk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlw
dE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlY2VpdmVSZXNvdXJjZURhdGEo
SW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCitS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlY2Vp
dmVSZXNvdXJjZURhdGEodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQogewotICAgIFNjcmlwdE9i
amVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJp
ZGVudGlmaWVyIiwgaWRlbnRpZmllcik7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0
YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJpZGVu
dGlmaWVyIiwgaWRlbnRpZmllcik7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAgICAgCi1TY3JpcHRP
YmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYWludERhdGEoSW5zcGVjdG9yRnJv
bnRlbmQqIGZyb250ZW5kLCBjb25zdCBJbnRSZWN0JiByZWN0KQorUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYWludERhdGEoY29uc3QgSW50UmVj
dCYgcmVjdCkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRP
YmplY3QoKTsKLSAgICBkYXRhLnNldCgieCIsIHJlY3QueCgpKTsKLSAgICBkYXRhLnNldCgieSIs
IHJlY3QueSgpKTsKLSAgICBkYXRhLnNldCgid2lkdGgiLCByZWN0LndpZHRoKCkpOwotICAgIGRh
dGEuc2V0KCJoZWlnaHQiLCByZWN0LmhlaWdodCgpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXROdW1i
ZXIoIngiLCByZWN0LngoKSk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJ5IiwgcmVjdC55KCkpOwor
ICAgIGRhdGEtPnNldE51bWJlcigid2lkdGgiLCByZWN0LndpZHRoKCkpOworICAgIGRhdGEtPnNl
dE51bWJlcigiaGVpZ2h0IiwgcmVjdC5oZWlnaHQoKSk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAK
LVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhcnNlSFRNTERhdGEo
SW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCB1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25l
ZCBpbnQgc3RhcnRMaW5lKQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVQYXJzZUhUTUxEYXRhKHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVk
IGludCBzdGFydExpbmUpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3
U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQoImxlbmd0aCIsIGxlbmd0aCk7Ci0gICAgZGF0
YS5zZXQoInN0YXJ0TGluZSIsIHN0YXJ0TGluZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0TnVtYmVy
KCJsZW5ndGgiLCBsZW5ndGgpOworICAgIGRhdGEtPnNldE51bWJlcigic3RhcnRMaW5lIiwgc3Rh
cnRMaW5lKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNw
ZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggYi9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGlu
ZVJlY29yZEZhY3RvcnkuaAppbmRleCBmOTA1ZWNjLi42YjU3YTZkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaAorKysgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaApAQCAtMzcsNDcgKzM3LDQ3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIEV2ZW50OwogICAgIGNsYXNzIEluc3BlY3RvckZyb250
ZW5kOworICAgIGNsYXNzIEluc3BlY3Rvck9iamVjdDsKICAgICBjbGFzcyBJbnRSZWN0OwogICAg
IGNsYXNzIFJlc291cmNlUmVxdWVzdDsKICAgICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotICAg
IGNsYXNzIFNjcmlwdE9iamVjdDsKIAogICAgIGNsYXNzIFRpbWVsaW5lUmVjb3JkRmFjdG9yeSB7
CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZUdlbmVyaWNS
ZWNvcmQoSW5zcGVjdG9yRnJvbnRlbmQqLCBkb3VibGUgc3RhcnRUaW1lKTsKKyAgICAgICAgc3Rh
dGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUdlbmVyaWNSZWNvcmQoZG91YmxlIHN0
YXJ0VGltZSk7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVHQ0V2ZW50RGF0
YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IHNpemVfdCB1c2VkSGVhcFNpemVE
ZWx0YSk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVHQ0V2
ZW50RGF0YShjb25zdCBzaXplX3QgdXNlZEhlYXBTaXplRGVsdGEpOwogCi0gICAgICAgIHN0YXRp
YyBTY3JpcHRPYmplY3QgY3JlYXRlRnVuY3Rpb25DYWxsRGF0YShJbnNwZWN0b3JGcm9udGVuZCos
IGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUpOworICAgICAgICBzdGF0
aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlRnVuY3Rpb25DYWxsRGF0YShjb25zdCBT
dHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKTsKIAotICAgICAgICBzdGF0aWMgU2Ny
aXB0T2JqZWN0IGNyZWF0ZUV2ZW50RGlzcGF0Y2hEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgY29u
c3QgRXZlbnQmKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0
ZUV2ZW50RGlzcGF0Y2hEYXRhKGNvbnN0IEV2ZW50Jik7CiAKLSAgICAgICAgc3RhdGljIFNjcmlw
dE9iamVjdCBjcmVhdGVHZW5lcmljVGltZXJEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgaW50IHRp
bWVySWQpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlR2Vu
ZXJpY1RpbWVyRGF0YShpbnQgdGltZXJJZCk7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVj
dCBjcmVhdGVUaW1lckluc3RhbGxEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgaW50IHRpbWVySWQs
IGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpOworICAgICAgICBzdGF0aWMgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gY3JlYXRlVGltZXJJbnN0YWxsRGF0YShpbnQgdGltZXJJZCwgaW50IHRp
bWVvdXQsIGJvb2wgc2luZ2xlU2hvdCk7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBj
cmVhdGVYSFJSZWFkeVN0YXRlQ2hhbmdlRGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGNvbnN0IFN0
cmluZyYgdXJsLCBpbnQgcmVhZHlTdGF0ZSk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBjcmVhdGVYSFJSZWFkeVN0YXRlQ2hhbmdlRGF0YShjb25zdCBTdHJpbmcmIHVy
bCwgaW50IHJlYWR5U3RhdGUpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRl
WEhSTG9hZERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBTdHJpbmcmIHVybCk7CisgICAg
ICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVYSFJMb2FkRGF0YShjb25z
dCBTdHJpbmcmIHVybCk7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVFdmFs
dWF0ZVNjcmlwdERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBTdHJpbmcmLCBkb3VibGUg
bGluZU51bWJlcik7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVh
dGVFdmFsdWF0ZVNjcmlwdERhdGEoY29uc3QgU3RyaW5nJiwgZG91YmxlIGxpbmVOdW1iZXIpOwog
Ci0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlTWFya1RpbWVsaW5lRGF0YShJbnNw
ZWN0b3JGcm9udGVuZCosIGNvbnN0IFN0cmluZyYpOworICAgICAgICBzdGF0aWMgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gY3JlYXRlTWFya1RpbWVsaW5lRGF0YShjb25zdCBTdHJpbmcmKTsKIAot
ICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVJlc291cmNlU2VuZFJlcXVlc3REYXRh
KEluc3BlY3RvckZyb250ZW5kKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLAorICAgICAgICBz
dGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlUmVzb3VyY2VTZW5kUmVxdWVzdERh
dGEodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLAogICAgICAgICAgICAgYm9vbCBpc01haW5SZXNv
dXJjZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9i
amVjdCBjcmVhdGVTY2hlZHVsZVJlc291cmNlUmVxdWVzdERhdGEoSW5zcGVjdG9yRnJvbnRlbmQq
LCBjb25zdCBTdHJpbmcmKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IGNyZWF0ZVNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0RGF0YShjb25zdCBTdHJpbmcmKTsKIAotICAg
ICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVJlc291cmNlUmVjZWl2ZVJlc3BvbnNlRGF0
YShJbnNwZWN0b3JGcm9udGVuZCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
Y3JlYXRlUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmpl
Y3QgY3JlYXRlUmVjZWl2ZVJlc291cmNlRGF0YShJbnNwZWN0b3JGcm9udGVuZCosIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllcik7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CiAK
LSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVSZXNvdXJjZUZpbmlzaERhdGEoSW5z
cGVjdG9yRnJvbnRlbmQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGJvb2wgZGlkRmFpbCk7
CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVSZXNvdXJjZUZp
bmlzaERhdGEodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBib29sIGRpZEZhaWwpOwogCi0gICAg
ICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlUGFpbnREYXRhKEluc3BlY3RvckZyb250ZW5k
KiwgY29uc3QgSW50UmVjdCYpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gY3JlYXRlUGFpbnREYXRhKGNvbnN0IEludFJlY3QmKTsKIAotICAgICAgICBzdGF0aWMgU2Ny
aXB0T2JqZWN0IGNyZWF0ZVBhcnNlSFRNTERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCB1bnNpZ25l
ZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKTsKKyAgICAgICAgc3RhdGljIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVBhcnNlSFRNTERhdGEodW5zaWduZWQgaW50IGxl
bmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBU
aW1lbGluZVJlY29yZEZhY3RvcnkoKSB7IH0KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdl
TG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYTMzNTA2Yy4uNDU1NTI1ZSAxMDA2NDQK
LS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAxMC0wNi0xOSAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2ViSW5zcGVjdG9yOiBqcyBmdW5jdGlvbiBuYW1lIHdhcyBmaXhlZC4KKyAgICAgICAgZGlz
cGF0Y2hNZXNzYWdlVG9Gcm9udGVuZCAtPiBkaXNwYXRjaE1lc3NhZ2VGcm9tQmFja2VuZC4gICAg
ICAgICAgICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQwNjc1CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVu
ZCk6CisKIDIwMTAtMDYtMjMgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCBiL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcAppbmRleCA0YmMz
YzMyLi42MTY4MzRiIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3Bl
Y3RvckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0
b3JDbGllbnRHdGsuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAgYm9vbCBJbnNwZWN0b3JDbGllbnQ6
OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgaWYgKCFz
Y3JpcHRDb250cm9sbGVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBTdHJpbmcgZGlz
cGF0Y2hUb0Zyb250ZW5kKCJXZWJJbnNwZWN0b3IuZGlzcGF0Y2hNZXNzYWdlVG9Gcm9udGVuZCgi
KTsKKyAgICBTdHJpbmcgZGlzcGF0Y2hUb0Zyb250ZW5kKCJXZWJJbnNwZWN0b3IuZGlzcGF0Y2hN
ZXNzYWdlRnJvbUJhY2tlbmQoIik7CiAgICAgZGlzcGF0Y2hUb0Zyb250ZW5kICs9IG1lc3NhZ2U7
CiAgICAgZGlzcGF0Y2hUb0Zyb250ZW5kICs9ICIpOyI7CiAgICAgc2NyaXB0Q29udHJvbGxlci0+
ZXhlY3V0ZVNjcmlwdChkaXNwYXRjaFRvRnJvbnRlbmQpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMmE2NDlmNi4uMTgwZWJkYiAx
MDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDYtMTkgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlYkluc3BlY3RvcjoganMgZnVuY3Rpb24gbmFtZSB3YXMgZml4ZWQuCisgICAgICAg
IGRpc3BhdGNoTWVzc2FnZVRvRnJvbnRlbmQgLT4gZGlzcGF0Y2hNZXNzYWdlRnJvbUJhY2tlbmQu
ICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDY3
NQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50UXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50UXQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZCk6
CisKIDIwMTAtMDctMDMgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFF0LmNwcCBiL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRRdC5jcHAKaW5kZXggZmRlMDU1Ni4uNDUw
MzExZCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVu
dFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50UXQu
Y3BwCkBAIC0xODQsNyArMTg0LDcgQEAgYm9vbCBJbnNwZWN0b3JDbGllbnRRdDo6c2VuZE1lc3Nh
Z2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBpZiAoIXNjcmlwdENvbnRy
b2xsZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFN0cmluZyBkaXNwYXRjaFRvRnJv
bnRlbmQoIldlYkluc3BlY3Rvci5kaXNwYXRjaE1lc3NhZ2VUb0Zyb250ZW5kKCIpOworICAgIFN0
cmluZyBkaXNwYXRjaFRvRnJvbnRlbmQoIldlYkluc3BlY3Rvci5kaXNwYXRjaE1lc3NhZ2VGcm9t
QmFja2VuZCgiKTsKICAgICBkaXNwYXRjaFRvRnJvbnRlbmQgKz0gbWVzc2FnZTsKICAgICBkaXNw
YXRjaFRvRnJvbnRlbmQgKz0gIik7IjsKICAgICBzY3JpcHRDb250cm9sbGVyLT5leGVjdXRlU2Ny
aXB0KGRpc3BhdGNoVG9Gcm9udGVuZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60538</attachid>
            <date>2010-07-05 08:15:18 -0700</date>
            <delta_ts>2010-07-05 08:33:14 -0700</delta_ts>
            <desc>[patch] Minimized version without generator.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>42948</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MmQ2MGYwNC4uN2IwOWVjZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxMC0wNy0wNSAgSWx5YSBUaWtob25v
dnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogT24gdGhlIHdheSB0byBSZW1vdGUg
RGVidWdpbmcgd2Ugd2FudCB0byBzdXBwb3J0IEpTT04KKyAgICAgICAgc2VyaWFsaXphdGlvbiBv
biBib3RoIHNpZGVzIG9mIFdlYkluc3BlY3RvciB0cmFuc3BvcnQuIEFzIGZhciBhcworICAgICAg
ICBJbnNwZWN0b3JGcm9udGVuZCBjbGFzcyBpcyBhIHNpbXBsZSBwcm94eSB0byBXZWJJbnNwZWN0
b3IgaXQgd291bGQKKyAgICAgICAgYmUgYmV0dGVyIHRvIGdlbmVyYXRlIGl0IGZyb20gYW4gSURM
IGZpbGUuIFdlIGhhdmUgZ2VuZXJhdG9yCisgICAgICAgIGluZm9zdHJ1Y3R1cmUgZm9yIGJpbmRp
bmcgYW5kIHdpbGwgcmV1c2UgaXQgZm9yIG5ldyBnZW5lcmF0b3IuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDY3NQorCisgICAgICAgICogYmluZGlu
Z3MvanMvU2NyaXB0Q2FsbFN0YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENhbGxT
dGFjazo6c3RhY2tUcmFjZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNr
Lmg6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0Q2FsbFN0YWNrLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdENhbGxTdGFjazo6c3RhY2tUcmFjZSk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvU2NyaXB0Q2FsbFN0YWNrLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kOjphZGRSZWNv
cmRUb1RpbWVsaW5lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoR0NFdmVudFJlY29yZHMpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENhbGxGdW5jdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRGlzcGF0
Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxs
TGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxS
ZWNhbGN1bGF0ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OndpbGxQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojp3aWxsV3JpdGVIVE1MKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OmRpZFdyaXRlSFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OjpkaWRJbnN0YWxsVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6ZGlkUmVtb3ZlVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6d2lsbEZpcmVUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JU
aW1lbGluZUFnZW50Ojp3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsTG9hZFhIUik6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRXZhbHVhdGVTY3JpcHQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkU2NoZWR1bGVSZXNvdXJjZVJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFNlbmRS
ZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6d2lsbFJlY2VpdmVSZXNvdXJjZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrVGltZWxp
bmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTWFya0RP
TUNvbnRlbnRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRNYXJrTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmFkZFJlY29yZFRvVGltZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6c2V0SGVhcFNpemVTdGF0aXN0aWMpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnB1c2hDdXJyZW50UmVjb3JkKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6VGltZWxpbmVSZWNvcmRFbnRyeTo6VGlt
ZWxpbmVSZWNvcmRFbnRyeSk6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFj
dG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZUdlbmVyaWNSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVHQ0V2ZW50RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZh
Y3Rvcnk6OmNyZWF0ZUZ1bmN0aW9uQ2FsbERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmVudERpc3BhdGNoRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNUaW1lckRhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVUaW1lckluc3RhbGxE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhS
UmVhZHlTdGF0ZUNoYW5nZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVYSFJMb2FkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJl
Y29yZEZhY3Rvcnk6OmNyZWF0ZUV2YWx1YXRlU2NyaXB0RGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZU1hcmtUaW1lbGluZURhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVTY2hlZHVsZVJlc291cmNl
UmVxdWVzdERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0b3J5Ojpj
cmVhdGVSZXNvdXJjZVNlbmRSZXF1ZXN0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlUmVjZWl2ZVJlc3BvbnNlRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlRmluaXNo
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJl
Y2VpdmVSZXNvdXJjZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVQYWludERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVQYXJzZUhUTUxEYXRhKToKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxp
bmVSZWNvcmRGYWN0b3J5Lmg6CisKIDIwMTAtMDctMDQgIEFsaWNlIExpdSAgPGFsaWNlLmxpdUBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrLmNwcCBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrLmNwcAppbmRleCA4NmRkY2QxLi5jOWJiOGIwIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5jcHAKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2suY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAg
dm9pZCBTY3JpcHRDYWxsU3RhY2s6OmluaXRpYWxpemUoKQogICAgIG1faW5pdGlhbGl6ZWQgPSB0
cnVlOwogfQogCi1ib29sIFNjcmlwdENhbGxTdGFjazo6c3RhY2tUcmFjZShpbnQsIFNjcmlwdFN0
YXRlKiwgU2NyaXB0QXJyYXkmKQorYm9vbCBTY3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UoaW50
LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JikKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5oIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2suaAppbmRleCA2Y2Y3Njc5Li5lNDYxYWMz
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFjay5oCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrLmgKQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogI2luY2x1ZGUgIlNjcmlwdFN0cmluZy5oIgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFt
ZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgRXhlY1N0YXRlOwpAQCAtNDQsNiArNDUsOCBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisgICAgY2xhc3MgSW5zcGVjdG9y
QXJyYXk7CisKICAgICBjbGFzcyBTY3JpcHRDYWxsU3RhY2sgOiBwdWJsaWMgTm9uY29weWFibGUg
ewogICAgIHB1YmxpYzoKICAgICAgICAgU2NyaXB0Q2FsbFN0YWNrKEpTQzo6RXhlY1N0YXRlKiwg
dW5zaWduZWQgc2tpcEFyZ3VtZW50Q291bnQgPSAwKTsKQEAgLTU0LDcgKzU3LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICAvLyBmcmFtZSByZXRyaWV2YWwgbWV0aG9kcwogICAgICAg
ICBjb25zdCBTY3JpcHRDYWxsRnJhbWUgJmF0KHVuc2lnbmVkKTsKICAgICAgICAgdW5zaWduZWQg
c2l6ZSgpOwotICAgICAgICBzdGF0aWMgYm9vbCBzdGFja1RyYWNlKGludCwgU2NyaXB0U3RhdGUq
LCBTY3JpcHRBcnJheSYpOworICAgICAgICBzdGF0aWMgYm9vbCBzdGFja1RyYWNlKGludCwgY29u
c3QgUmVmUHRyPEluc3BlY3RvckFycmF5PiYpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9p
ZCBpbml0aWFsaXplKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENh
bGxTdGFjay5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFjay5jcHAKaW5k
ZXggODk4MDliMi4uY2RjOTY2MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3Jp
cHRDYWxsU3RhY2suY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q2FsbFN0YWNr
LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNj
cmlwdENhbGxTdGFjay5oIgogCisjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0U2NvcGUuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RGVidWdTZXJ2ZXIuaCIKQEAgLTkzLDEzICs5NCwzMCBAQCBjb25zdCBTY3JpcHRD
YWxsRnJhbWUmIFNjcmlwdENhbGxTdGFjazo6YXQodW5zaWduZWQgaW5kZXgpIGNvbnN0CiAgICAg
cmV0dXJuIG1fbGFzdENhbGxlcjsKIH0KIAotYm9vbCBTY3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJh
Y2UoaW50IGZyYW1lTGltaXQsIFNjcmlwdFN0YXRlKiBzdGF0ZSwgU2NyaXB0QXJyYXkmIHN0YWNr
VHJhY2UpCitib29sIFNjcmlwdENhbGxTdGFjazo6c3RhY2tUcmFjZShpbnQgZnJhbWVMaW1pdCwg
Y29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5PiYgc3RhY2tUcmFjZSkKIHsKLSAgICBTY3JpcHRT
Y29wZSBzY29wZShzdGF0ZSk7CisgICAgaWYgKCF2ODo6Q29udGV4dDo6SW5Db250ZXh0KCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0
ID0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKTsKKyAgICBpZiAoY29udGV4dC5Jc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB2ODo6SGFuZGxlU2NvcGUgc2NvcGU7CisgICAg
djg6OkNvbnRleHQ6OlNjb3BlIGNvbnRleHRTY29wZShjb250ZXh0KTsKICAgICB2ODo6SGFuZGxl
PHY4OjpTdGFja1RyYWNlPiB0cmFjZSh2ODo6U3RhY2tUcmFjZTo6Q3VycmVudFN0YWNrVHJhY2Uo
ZnJhbWVMaW1pdCkpOwotICAgIGlmICh0cmFjZS5Jc0VtcHR5KCkgfHwgIXRyYWNlLT5HZXRGcmFt
ZUNvdW50KCkpCisgICAgaW50IGZyYW1lQ291bnQgPSB0cmFjZS0+R2V0RnJhbWVDb3VudCgpOwor
ICAgIGlmICh0cmFjZS5Jc0VtcHR5KCkgfHwgIWZyYW1lQ291bnQpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBzdGFja1RyYWNlID0gU2NyaXB0QXJyYXkoc3RhdGUsIHRyYWNlLT5Bc0FycmF5
KCkpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZnJhbWVDb3VudDsgKytpKSB7CisgICAgICAg
IHY4OjpIYW5kbGU8djg6OlN0YWNrRnJhbWU+IGZyYW1lID0gdHJhY2UtPkdldEZyYW1lKGkpOwor
ICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBmcmFtZU9iamVjdCA9IEluc3BlY3Rvck9i
amVjdDo6Y3JlYXRlKCk7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBzY3JpcHROYW1l
ID0gZnJhbWUtPkdldFNjcmlwdE5hbWUoKTsKKyAgICAgICAgZnJhbWVPYmplY3QtPnNldFN0cmlu
Zygic2NyaXB0TmFtZSIsIHNjcmlwdE5hbWUuSXNFbXB0eSgpID8gIiIgOiB0b1dlYkNvcmVTdHJp
bmcoc2NyaXB0TmFtZSkpOworICAgICAgICB2ODo6TG9jYWw8djg6OlN0cmluZz4gZnVuY3Rpb25O
YW1lID0gZnJhbWUtPkdldEZ1bmN0aW9uTmFtZSgpOworICAgICAgICBmcmFtZU9iamVjdC0+c2V0
U3RyaW5nKCJmdW5jdGlvbk5hbWUiLCBmdW5jdGlvbk5hbWUuSXNFbXB0eSgpID8gIiIgOiB0b1dl
YkNvcmVTdHJpbmcoZnVuY3Rpb25OYW1lKSk7CisgICAgICAgIGZyYW1lT2JqZWN0LT5zZXROdW1i
ZXIoImxpbmVOdW1iZXIiLCBmcmFtZS0+R2V0TGluZU51bWJlcigpKTsKKyAgICAgICAgZnJhbWVP
YmplY3QtPnNldE51bWJlcigiY29sdW1uIiwgZnJhbWUtPkdldENvbHVtbigpKTsKKyAgICAgICAg
c3RhY2tUcmFjZS0+cHVzaChmcmFtZU9iamVjdCk7CisgICAgfQogICAgIHJldHVybiB0cnVlOwog
fQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFjay5oIGIv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2suaAppbmRleCA4YjAyODE0Li44MGQ1
Zjc2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFjay5oCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q2FsbFN0YWNrLmgKQEAgLTM2LDYgKzM2LDcg
QEAKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBu
YW1lc3BhY2UgdjggewogICAgIGNsYXNzIEFyZ3VtZW50czsKQEAgLTQzLDYgKzQ0LDggQEAgbmFt
ZXNwYWNlIHY4IHsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBJbnNwZWN0b3JBcnJh
eTsKKwogY2xhc3MgU2NyaXB0Q2FsbFN0YWNrIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgU2NyaXB0Q2FsbFN0YWNrKiBjcmVhdGUoY29uc3Qgdjg6OkFyZ3VtZW50
cyYsIHVuc2lnbmVkIHNraXBBcmd1bWVudENvdW50ID0gMCk7CkBAIC01Nyw3ICs2MCw3IEBAIHB1
YmxpYzoKICAgICAvLyAgIGxpbmVOdW1iZXI6IDwxIGJhc2VkIGxpbmUgbnVtYmVyPgogICAgIC8v
ICAgY29sdW1uOiA8MSBiYXNlZCBjb2x1bW4gb2Zmc2V0IG9uIHRoZSBsaW5lPgogICAgIC8vIH0K
LSAgICBzdGF0aWMgYm9vbCBzdGFja1RyYWNlKGludCBmcmFtZUxpbWl0LCBTY3JpcHRTdGF0ZSog
c3RhdGUsIFNjcmlwdEFycmF5JiBzdGFja1RyYWNlKTsKKyAgICBzdGF0aWMgYm9vbCBzdGFja1Ry
YWNlKGludCBmcmFtZUxpbWl0LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiBzdGFja1Ry
YWNlKTsKIAogICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSYgYXQodW5zaWduZWQpIGNvbnN0Owog
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcmV0cmlldmluZyBhbmQgc3RvcmluZyBjYWxsIHN0YWNr
IHRyYWNlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5j
cHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAKaW5kZXggZmVlNDYz
MC4uMTUxZjFiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcApAQCAt
Mjk3LDEyICsyOTcsMTIgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6dGltZWxpbmVQcm9maWxl
cldhc1N0b3BwZWQoKQogICAgIGNhbGxTaW1wbGVGdW5jdGlvbigidGltZWxpbmVQcm9maWxlcldh
c1N0b3BwZWQiKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6YWRkUmVjb3JkVG9UaW1l
bGluZShjb25zdCBTY3JpcHRPYmplY3QmIHJlY29yZCkKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6
OmFkZFJlY29yZFRvVGltZWxpbmUoY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIHJlY29y
ZCkKIHsKLSAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV93ZWJJbnNwZWN0b3IsICJk
aXNwYXRjaCIpOyAKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudCgiYWRkUmVjb3JkVG9UaW1l
bGluZSIpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHJlY29yZCk7Ci0gICAgZnVuY3Rp
b24uY2FsbCgpOworICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gYXJndW1lbnRzID0gSW5zcGVj
dG9yQXJyYXk6OmNyZWF0ZSgpOworICAgIGFyZ3VtZW50cy0+cHVzaFN0cmluZygiYWRkUmVjb3Jk
VG9UaW1lbGluZSIpOworICAgIGFyZ3VtZW50cy0+cHVzaChyZWNvcmQpOworICAgIG1faW5zcGVj
dG9yQ2xpZW50LT5zZW5kTWVzc2FnZVRvRnJvbnRlbmQoYXJndW1lbnRzLT50b0pTT05TdHJpbmco
KSk7CiB9CiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmggYi9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZC5oCmluZGV4IGUwMmI2NjEuLjEyZjNiZGIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmQuaApAQCAtMTY1LDcgKzE2NSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgICAgICB2b2lkIHRpbWVsaW5lUHJvZmlsZXJXYXNTdGFydGVkKCk7CiAgICAg
ICAgIHZvaWQgdGltZWxpbmVQcm9maWxlcldhc1N0b3BwZWQoKTsKLSAgICAgICAgdm9pZCBhZGRS
ZWNvcmRUb1RpbWVsaW5lKGNvbnN0IFNjcmlwdE9iamVjdCYpOworICAgICAgICB2b2lkIGFkZFJl
Y29yZFRvVGltZWxpbmUoY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIHJlY29yZCk7CiAK
ICNpZiBFTkFCTEUoV09SS0VSUykKICAgICAgICAgdm9pZCBkaWRDcmVhdGVXb3JrZXIoY29uc3Qg
SW5zcGVjdG9yV29ya2VyUmVzb3VyY2UmKTsKQEAgLTE4Myw2ICsxODMsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fd2ViSW5zcGVjdG9yLnNjcmlwdFN0YXRlKCk7IH0KIAogICAgICAgICB2b2lkIGV2YWx1
YXRlRm9yVGVzdEluRnJvbnRlbmQobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYgc2NyaXB0KTsK
KwogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgY2FsbFNpbXBsZUZ1bmN0aW9uKGNvbnN0IFN0
cmluZyYgZnVuY3Rpb25OYW1lKTsKICAgICAgICAgU2NyaXB0T2JqZWN0IG1fd2ViSW5zcGVjdG9y
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5j
cHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCBh
YjUzMzE5Li5jNzAwMWMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmNwcApAQCAtNjIsOSArNjIsOSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OnB1c2hHQ0V2ZW50UmVjb3JkcygpCiAgICAgR0NFdmVudHMgZXZlbnRzID0gbV9nY0V2ZW50czsK
ICAgICBtX2djRXZlbnRzLmNsZWFyKCk7CiAgICAgZm9yIChHQ0V2ZW50czo6aXRlcmF0b3IgaSA9
IGV2ZW50cy5iZWdpbigpOyBpICE9IGV2ZW50cy5lbmQoKTsgKytpKSB7Ci0gICAgICAgIFNjcmlw
dE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNv
cmQobV9mcm9udGVuZCwgaS0+c3RhcnRUaW1lKTsKLSAgICAgICAgcmVjb3JkLnNldCgiZGF0YSIs
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR0NFdmVudERhdGEobV9mcm9udGVuZCwgaS0+
Y29sbGVjdGVkQnl0ZXMpKTsKLSAgICAgICAgcmVjb3JkLnNldCgiZW5kVGltZSIsIGktPmVuZFRp
bWUpOworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJl
Y29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoaS0+c3RhcnRUaW1lKTsKKyAgICAgICAg
cmVjb3JkLT5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdDRXZlbnRE
YXRhKGktPmNvbGxlY3RlZEJ5dGVzKSk7CisgICAgICAgIHJlY29yZC0+c2V0TnVtYmVyKCJlbmRU
aW1lIiwgaS0+ZW5kVGltZSk7CiAgICAgICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBH
Q0V2ZW50VGltZWxpbmVSZWNvcmRUeXBlKTsKICAgICB9CiB9CkBAIC04Myw3ICs4Myw3IEBAIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6On5JbnNwZWN0b3JUaW1lbGluZUFnZW50KCkKIAogdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsQ2FsbEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgc2Ny
aXB0TmFtZSwgaW50IHNjcmlwdExpbmUpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVGdW5jdGlvbkNhbGxEYXRhKG1fZnJvbnRlbmQsIHNjcmlw
dE5hbWUsIHNjcmlwdExpbmUpLCBGdW5jdGlvbkNhbGxUaW1lbGluZVJlY29yZFR5cGUpOworICAg
IHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRnVuY3Rpb25D
YWxsRGF0YShzY3JpcHROYW1lLCBzY3JpcHRMaW5lKSwgRnVuY3Rpb25DYWxsVGltZWxpbmVSZWNv
cmRUeXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDYWxsRnVuY3Rp
b24oKQpAQCAtOTMsNyArOTMsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENh
bGxGdW5jdGlvbigpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbERpc3BhdGNo
RXZlbnQoY29uc3QgRXZlbnQmIGV2ZW50KQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZlbnREaXNwYXRjaERhdGEobV9mcm9udGVuZCwgZXZl
bnQpLAorICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
RXZlbnREaXNwYXRjaERhdGEoZXZlbnQpLAogICAgICAgICBFdmVudERpc3BhdGNoVGltZWxpbmVS
ZWNvcmRUeXBlKTsKIH0KIApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6ZGlkRGlzcGF0Y2hFdmVudCgpCiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6d2lsbExheW91dCgpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQobV9mcm9udGVuZC0+bmV3
U2NyaXB0T2JqZWN0KCksIExheW91dFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAgcHVzaEN1cnJl
bnRSZWNvcmQoSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSwgTGF5b3V0VGltZWxpbmVSZWNvcmRU
eXBlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRMYXlvdXQoKQpAQCAt
MTE0LDcgKzExNCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTGF5b3V0KCkK
IAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsUmVjYWxjdWxhdGVTdHlsZSgpCiB7
Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQobV9mcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCksIFJl
Y2FsY3VsYXRlU3R5bGVzVGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBwdXNoQ3VycmVudFJlY29y
ZChJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBSZWNhbGN1bGF0ZVN0eWxlc1RpbWVsaW5lUmVj
b3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVjYWxjdWxh
dGVTdHlsZSgpCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRSZWNhbGN1bGF0ZVN0eWxlKCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3
aWxsUGFpbnQoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSAgICBwdXNoQ3VycmVudFJlY29yZChU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhaW50RGF0YShtX2Zyb250ZW5kLCByZWN0KSwg
UGFpbnRUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFpbnREYXRhKHJlY3QpLCBQYWludFRpbWVsaW5lUmVjb3Jk
VHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUGFpbnQoKQpAQCAt
MTM0LDE0ICsxMzQsMTQgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRQYWludCgp
CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbFdyaXRlSFRNTCh1bnNpZ25lZCBp
bnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKQogewotICAgIHB1c2hDdXJyZW50UmVj
b3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUGFyc2VIVE1MRGF0YShtX2Zyb250ZW5k
LCBsZW5ndGgsIHN0YXJ0TGluZSksIFBhcnNlSFRNTFRpbWVsaW5lUmVjb3JkVHlwZSk7CisgICAg
cHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVQYXJzZUhUTUxE
YXRhKGxlbmd0aCwgc3RhcnRMaW5lKSwgUGFyc2VIVE1MVGltZWxpbmVSZWNvcmRUeXBlKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRXcml0ZUhUTUwodW5zaWduZWQgaW50
IGVuZExpbmUpCiB7CiAgICAgaWYgKCFtX3JlY29yZFN0YWNrLmlzRW1wdHkoKSkgewogICAgICAg
ICBUaW1lbGluZVJlY29yZEVudHJ5IGVudHJ5ID0gbV9yZWNvcmRTdGFjay5sYXN0KCk7Ci0gICAg
ICAgIGVudHJ5LmRhdGEuc2V0KCJlbmRMaW5lIiwgZW5kTGluZSk7CisgICAgICAgIGVudHJ5LmRh
dGEtPnNldE51bWJlcigiZW5kTGluZSIsIGVuZExpbmUpOwogICAgICAgICBkaWRDb21wbGV0ZUN1
cnJlbnRSZWNvcmQoUGFyc2VIVE1MVGltZWxpbmVSZWNvcmRUeXBlKTsKICAgICB9CiB9CkBAIC0x
NDksMjIgKzE0OSwyMiBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFdyaXRlSFRN
TCh1bnNpZ25lZCBpbnQgZW5kTGluZSkKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlk
SW5zdGFsbFRpbWVyKGludCB0aW1lcklkLCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQog
ewogICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBU
aW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RG
OjpjdXJyZW50VGltZU1TKCkpOwotICAgIHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29y
ZEZhY3Rvcnk6OmNyZWF0ZVRpbWVySW5zdGFsbERhdGEobV9mcm9udGVuZCwgdGltZXJJZCwgdGlt
ZW91dCwgc2luZ2xlU2hvdCkpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChXVEY6OmN1cnJlbnRU
aW1lTVMoKSk7CisgICAgcmVjb3JkLT5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZVRpbWVySW5zdGFsbERhdGEodGltZXJJZCwgdGltZW91dCwgc2luZ2xlU2hvdCkpOwog
ICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBUaW1lckluc3RhbGxUaW1lbGluZVJlY29y
ZFR5cGUpOwogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJlbW92ZVRpbWVy
KGludCB0aW1lcklkKQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwotICAgIFNjcmlwdE9i
amVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQo
bV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwotICAgIHJlY29yZC5zZXQoImRhdGEi
LCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNUaW1lckRhdGEobV9mcm9udGVu
ZCwgdGltZXJJZCkpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChXVEY6OmN1cnJlbnRUaW1lTVMo
KSk7CisgICAgcmVjb3JkLT5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZUdlbmVyaWNUaW1lckRhdGEodGltZXJJZCkpOwogICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVj
b3JkLCBUaW1lclJlbW92ZVRpbWVsaW5lUmVjb3JkVHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6d2lsbEZpcmVUaW1lcihpbnQgdGltZXJJZCkKIHsKLSAgICBwdXNoQ3Vy
cmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNUaW1lckRhdGEo
bV9mcm9udGVuZCwgdGltZXJJZCksIFRpbWVyRmlyZVRpbWVsaW5lUmVjb3JkVHlwZSk7IAorICAg
IHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1Rp
bWVyRGF0YSh0aW1lcklkKSwgVGltZXJGaXJlVGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRGaXJlVGltZXIoKQpAQCAtMTc0LDcgKzE3NCw3
IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkRmlyZVRpbWVyKCkKIAogdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsQ2hhbmdlWEhSUmVhZHlTdGF0ZShjb25zdCBTdHJp
bmcmIHVybCwgaW50IHJlYWR5U3RhdGUpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJSZWFkeVN0YXRlQ2hhbmdlRGF0YShtX2Zyb250ZW5k
LCB1cmwsIHJlYWR5U3RhdGUpLCBYSFJSZWFkeVN0YXRlQ2hhbmdlUmVjb3JkVHlwZSk7CisgICAg
cHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJSZWFkeVN0
YXRlQ2hhbmdlRGF0YSh1cmwsIHJlYWR5U3RhdGUpLCBYSFJSZWFkeVN0YXRlQ2hhbmdlUmVjb3Jk
VHlwZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ2hhbmdlWEhSUmVh
ZHlTdGF0ZSgpCkBAIC0xODQsNyArMTg0LDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRDaGFuZ2VYSFJSZWFkeVN0YXRlKCkKIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojp3aWxsTG9hZFhIUihjb25zdCBTdHJpbmcmIHVybCkgCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNv
cmQoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJMb2FkRGF0YShtX2Zyb250ZW5kLCB1
cmwpLCBYSFJMb2FkUmVjb3JkVHlwZSk7CisgICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJMb2FkRGF0YSh1cmwpLCBYSFJMb2FkUmVjb3JkVHlwZSk7
CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTG9hZFhIUigpCkBAIC0xOTQs
NyArMTk0LDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRMb2FkWEhSKCkKIAog
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRXZhbHVhdGVTY3JpcHQoY29uc3QgU3Ry
aW5nJiB1cmwsIGludCBsaW5lTnVtYmVyKQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlRXZhbHVhdGVTY3JpcHREYXRhKG1fZnJvbnRlbmQsIHVy
bCwgbGluZU51bWJlciksIEV2YWx1YXRlU2NyaXB0VGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBw
dXNoQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUV2YWx1YXRlU2Ny
aXB0RGF0YSh1cmwsIGxpbmVOdW1iZXIpLCBFdmFsdWF0ZVNjcmlwdFRpbWVsaW5lUmVjb3JkVHlw
ZSk7CiB9CiAgICAgCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZEV2YWx1YXRlU2Ny
aXB0KCkKQEAgLTIwNSw5ICsyMDUsOSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRp
ZEV2YWx1YXRlU2NyaXB0KCkKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkU2NoZWR1
bGVSZXNvdXJjZVJlcXVlc3QoY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAgcHVzaEdDRXZlbnRS
ZWNvcmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9y
eTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBXVEY6OmN1cnJlbnRUaW1lTVMoKSk7
Ci0gICAgcmVjb3JkLnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlU2No
ZWR1bGVSZXNvdXJjZVJlcXVlc3REYXRhKG1fZnJvbnRlbmQsIHVybCkpOwotICAgIHJlY29yZC5z
ZXQoInR5cGUiLCBTY2hlZHVsZVJlc291cmNlUmVxdWVzdFRpbWVsaW5lUmVjb3JkVHlwZSk7Cisg
ICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVHZW5lcmljUmVjb3JkKFdURjo6Y3VycmVudFRpbWVNUygpKTsKKyAgICByZWNvcmQt
PnNldCgiZGF0YSIsIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlU2NoZWR1bGVSZXNvdXJj
ZVJlcXVlc3REYXRhKHVybCkpOworICAgIHJlY29yZC0+c2V0TnVtYmVyKCJ0eXBlIiwgU2NoZWR1
bGVSZXNvdXJjZVJlcXVlc3RUaW1lbGluZVJlY29yZFR5cGUpOwogICAgIGFkZFJlY29yZFRvVGlt
ZWxpbmUocmVjb3JkLCBTY2hlZHVsZVJlc291cmNlUmVxdWVzdFRpbWVsaW5lUmVjb3JkVHlwZSk7
CiB9CiAKQEAgLTIxNSwxNiArMjE1LDE2IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
d2lsbFNlbmRSZXNvdXJjZVJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBiCiAgICAg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3Jk
cygpOwotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwotICAg
IHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNl
U2VuZFJlcXVlc3REYXRhKG1fZnJvbnRlbmQsIGlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlLCBy
ZXF1ZXN0KSk7Ci0gICAgcmVjb3JkLnNldCgidHlwZSIsIFJlc291cmNlU2VuZFJlcXVlc3RUaW1l
bGluZVJlY29yZFR5cGUpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChXVEY6OmN1cnJlbnRUaW1l
TVMoKSk7CisgICAgcmVjb3JkLT5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZVJlc291cmNlU2VuZFJlcXVlc3REYXRhKGlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlLCBy
ZXF1ZXN0KSk7CisgICAgcmVjb3JkLT5zZXROdW1iZXIoInR5cGUiLCBSZXNvdXJjZVNlbmRSZXF1
ZXN0VGltZWxpbmVSZWNvcmRUeXBlKTsKICAgICBzZXRIZWFwU2l6ZVN0YXRpc3RpYyhyZWNvcmQp
OwogICAgIG1fZnJvbnRlbmQtPmFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsUmVjZWl2ZVJlc291cmNlRGF0YSh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIpCiB7Ci0gICAgcHVzaEN1cnJlbnRSZWNvcmQoVGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKG1fZnJvbnRlbmQsIGlkZW50aWZp
ZXIpLCBSZWNlaXZlUmVzb3VyY2VEYXRhVGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBwdXNoQ3Vy
cmVudFJlY29yZChUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlY2VpdmVSZXNvdXJjZURh
dGEoaWRlbnRpZmllciksIFJlY2VpdmVSZXNvdXJjZURhdGFUaW1lbGluZVJlY29yZFR5cGUpOwog
fQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJlY2VpdmVSZXNvdXJjZURhdGEo
KQpAQCAtMjM0LDcgKzIzNCw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkUmVj
ZWl2ZVJlc291cmNlRGF0YSgpCiAgICAgCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6Ondp
bGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIHB1c2hDdXJyZW50UmVjb3JkKFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VEYXRhKG1f
ZnJvbnRlbmQsIGlkZW50aWZpZXIsIHJlc3BvbnNlKSwgUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VU
aW1lbGluZVJlY29yZFR5cGUpOworICAgIHB1c2hDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VEYXRhKGlkZW50aWZpZXIsIHJl
c3BvbnNlKSwgUmVzb3VyY2VSZWNlaXZlUmVzcG9uc2VUaW1lbGluZVJlY29yZFR5cGUpOwogfQog
CiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNl
KCkKQEAgLTI0NSw5ICsyNDUsOSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZFJl
Y2VpdmVSZXNvdXJjZVJlc3BvbnNlKCkKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlk
RmluaXNoTG9hZGluZ1Jlc291cmNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgYm9vbCBkaWRG
YWlsKQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwotICAgIFNjcmlwdE9iamVjdCByZWNv
cmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVu
ZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwotICAgIHJlY29yZC5zZXQoImRhdGEiLCBUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlRmluaXNoRGF0YShtX2Zyb250ZW5kLCBpZGVu
dGlmaWVyLCBkaWRGYWlsKSk7Ci0gICAgcmVjb3JkLnNldCgidHlwZSIsIFJlc291cmNlRmluaXNo
VGltZWxpbmVSZWNvcmRUeXBlKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQg
PSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoV1RGOjpjdXJyZW50
VGltZU1TKCkpOworICAgIHJlY29yZC0+c2V0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5
OjpjcmVhdGVSZXNvdXJjZUZpbmlzaERhdGEoaWRlbnRpZmllciwgZGlkRmFpbCkpOworICAgIHJl
Y29yZC0+c2V0TnVtYmVyKCJ0eXBlIiwgUmVzb3VyY2VGaW5pc2hUaW1lbGluZVJlY29yZFR5cGUp
OwogICAgIHNldEhlYXBTaXplU3RhdGlzdGljKHJlY29yZCk7CiAgICAgbV9mcm9udGVuZC0+YWRk
UmVjb3JkVG9UaW1lbGluZShyZWNvcmQpOwogfQpAQCAtMjU1LDIyICsyNTUsMjIgQEAgdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRGaW5pc2hMb2FkaW5nUmVzb3VyY2UodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrVGlt
ZWxpbmUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIHB1c2hHQ0V2ZW50UmVjb3Jkcygp
OwotICAgIFNjcmlwdE9iamVjdCByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZUdlbmVyaWNSZWNvcmQobV9mcm9udGVuZCwgV1RGOjpjdXJyZW50VGltZU1TKCkpOwotICAgIHJl
Y29yZC5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZU1hcmtUaW1lbGlu
ZURhdGEobV9mcm9udGVuZCwgbWVzc2FnZSkpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChXVEY6
OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgcmVjb3JkLT5zZXQoImRhdGEiLCBUaW1lbGluZVJlY29y
ZEZhY3Rvcnk6OmNyZWF0ZU1hcmtUaW1lbGluZURhdGEobWVzc2FnZSkpOwogICAgIGFkZFJlY29y
ZFRvVGltZWxpbmUocmVjb3JkLCBNYXJrVGltZWxpbmVSZWNvcmRUeXBlKTsKIH0KIAogdm9pZCBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRNYXJrRE9NQ29udGVudEV2ZW50KCkKIHsKICAgICBw
dXNoR0NFdmVudFJlY29yZHMoKTsKLSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVu
dFRpbWVNUygpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGlu
ZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQoV1RGOjpjdXJyZW50VGltZU1TKCkp
OwogICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLCBNYXJrRE9NQ29udGVudEV2ZW50VHlw
ZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkTWFya0xvYWRFdmVudCgp
CiB7CiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX2Zyb250ZW5kLCBX
VEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3Jk
ID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKFdURjo6Y3VycmVu
dFRpbWVNUygpKTsKICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCwgTWFya0xvYWRFdmVu
dFR5cGUpOwogfQogCkBAIC0yODYsMjUgKzI4NiwyNSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OnJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRl
bgogICAgIG1fZnJvbnRlbmQgPSBmcm9udGVuZDsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjphZGRSZWNvcmRUb1RpbWVsaW5lKFNjcmlwdE9iamVjdCByZWNvcmQsIFRpbWVsaW5l
UmVjb3JkVHlwZSB0eXBlKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphZGRSZWNvcmRU
b1RpbWVsaW5lKGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiByZWNvcmQsIFRpbWVsaW5l
UmVjb3JkVHlwZSB0eXBlKQogewotICAgIHJlY29yZC5zZXQoInR5cGUiLCB0eXBlKTsKKyAgICBy
ZWNvcmQtPnNldE51bWJlcigidHlwZSIsIHR5cGUpOwogICAgIHNldEhlYXBTaXplU3RhdGlzdGlj
KHJlY29yZCk7CiAgICAgaWYgKG1fcmVjb3JkU3RhY2suaXNFbXB0eSgpKQogICAgICAgICBtX2Zy
b250ZW5kLT5hZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZCk7CiAgICAgZWxzZSB7CiAgICAgICAg
IFRpbWVsaW5lUmVjb3JkRW50cnkgcGFyZW50ID0gbV9yZWNvcmRTdGFjay5sYXN0KCk7Ci0gICAg
ICAgIHBhcmVudC5jaGlsZHJlbi5zZXQocGFyZW50LmNoaWxkcmVuLmxlbmd0aCgpLCByZWNvcmQp
OworICAgICAgICBwYXJlbnQuY2hpbGRyZW4tPnB1c2gocmVjb3JkKTsKICAgICB9CiB9CiAKLXZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c2V0SGVhcFNpemVTdGF0aXN0aWMoU2NyaXB0T2Jq
ZWN0IHJlY29yZCkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c2V0SGVhcFNpemVTdGF0
aXN0aWMoY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIHJlY29yZCkKIHsKICAgICBzaXpl
X3QgdXNlZEhlYXBTaXplID0gMDsKICAgICBzaXplX3QgdG90YWxIZWFwU2l6ZSA9IDA7CiAgICAg
U2NyaXB0R0NFdmVudDo6Z2V0SGVhcFNpemUodXNlZEhlYXBTaXplLCB0b3RhbEhlYXBTaXplKTsK
LSAgICByZWNvcmQuc2V0KCJ1c2VkSGVhcFNpemUiLCB1c2VkSGVhcFNpemUpOwotICAgIHJlY29y
ZC5zZXQoInRvdGFsSGVhcFNpemUiLCB0b3RhbEhlYXBTaXplKTsKKyAgICByZWNvcmQtPnNldE51
bWJlcigidXNlZEhlYXBTaXplIiwgdXNlZEhlYXBTaXplKTsKKyAgICByZWNvcmQtPnNldE51bWJl
cigidG90YWxIZWFwU2l6ZSIsIHRvdGFsSGVhcFNpemUpOwogfQogCiB2b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OmRpZENvbXBsZXRlQ3VycmVudFJlY29yZChUaW1lbGluZVJlY29yZFR5cGUg
dHlwZSkKQEAgLTMxNiwxOCArMzE2LDE4IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
ZGlkQ29tcGxldGVDdXJyZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZSB0eXBlKQogICAgICAg
ICBUaW1lbGluZVJlY29yZEVudHJ5IGVudHJ5ID0gbV9yZWNvcmRTdGFjay5sYXN0KCk7CiAgICAg
ICAgIG1fcmVjb3JkU3RhY2sucmVtb3ZlTGFzdCgpOwogICAgICAgICBBU1NFUlQoZW50cnkudHlw
ZSA9PSB0eXBlKTsKLSAgICAgICAgZW50cnkucmVjb3JkLnNldCgiZGF0YSIsIGVudHJ5LmRhdGEp
OwotICAgICAgICBlbnRyeS5yZWNvcmQuc2V0KCJjaGlsZHJlbiIsIGVudHJ5LmNoaWxkcmVuKTsK
LSAgICAgICAgZW50cnkucmVjb3JkLnNldCgiZW5kVGltZSIsIFdURjo6Y3VycmVudFRpbWVNUygp
KTsKKyAgICAgICAgZW50cnkucmVjb3JkLT5zZXQoImRhdGEiLCBlbnRyeS5kYXRhKTsKKyAgICAg
ICAgZW50cnkucmVjb3JkLT5zZXQoImNoaWxkcmVuIiwgZW50cnkuY2hpbGRyZW4pOworICAgICAg
ICBlbnRyeS5yZWNvcmQtPnNldE51bWJlcigiZW5kVGltZSIsIFdURjo6Y3VycmVudFRpbWVNUygp
KTsKICAgICAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShlbnRyeS5yZWNvcmQsIHR5cGUpOwogICAg
IH0KIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwdXNoQ3VycmVudFJlY29yZChT
Y3JpcHRPYmplY3QgZGF0YSwgVGltZWxpbmVSZWNvcmRUeXBlIHR5cGUpCit2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OnB1c2hDdXJyZW50UmVjb3JkKGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+JiBkYXRhLCBUaW1lbGluZVJlY29yZFR5cGUgdHlwZSkKIHsKICAgICBwdXNoR0NFdmVu
dFJlY29yZHMoKTsKLSAgICBTY3JpcHRPYmplY3QgcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fZnJvbnRlbmQsIFdURjo6Y3VycmVudFRpbWVNUygp
KTsKLSAgICBtX3JlY29yZFN0YWNrLmFwcGVuZChUaW1lbGluZVJlY29yZEVudHJ5KHJlY29yZCwg
ZGF0YSwgbV9mcm9udGVuZC0+bmV3U2NyaXB0QXJyYXkoKSwgdHlwZSkpOworICAgIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2Vu
ZXJpY1JlY29yZChXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisgICAgbV9yZWNvcmRTdGFjay5hcHBl
bmQoVGltZWxpbmVSZWNvcmRFbnRyeShyZWNvcmQsIGRhdGEsIEluc3BlY3RvckFycmF5OjpjcmVh
dGUoKSwgdHlwZSkpOwogfQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggZmUzMzRiZS4uMGU5OTc3YSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtMzQsMTEgKzM0
LDEwIEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgogI2luY2x1ZGUgIlNjcmlwdEdDRXZlbnQuaCIKICNpbmNsdWRlICJTY3JpcHRHQ0V2
ZW50TGlzdGVuZXIuaCIKLSNpbmNsdWRlICJTY3JpcHRPYmplY3QuaCIKLSNpbmNsdWRlICJTY3Jp
cHRBcnJheS5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMTM0LDIyICsxMzMsMjIgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHN0cnVjdCBU
aW1lbGluZVJlY29yZEVudHJ5IHsKLSAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeShTY3JpcHRP
YmplY3QgcmVjb3JkLCBTY3JpcHRPYmplY3QgZGF0YSwgU2NyaXB0QXJyYXkgY2hpbGRyZW4sIFRp
bWVsaW5lUmVjb3JkVHlwZSB0eXBlKQorICAgICAgICBUaW1lbGluZVJlY29yZEVudHJ5KGNvbnN0
IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiByZWNvcmQsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+JiBkYXRhLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiBjaGlsZHJlbiwgVGlt
ZWxpbmVSZWNvcmRUeXBlIHR5cGUpCiAgICAgICAgICAgICA6IHJlY29yZChyZWNvcmQpLCBkYXRh
KGRhdGEpLCBjaGlsZHJlbihjaGlsZHJlbiksIHR5cGUodHlwZSkKICAgICAgICAgewogICAgICAg
ICB9Ci0gICAgICAgIFNjcmlwdE9iamVjdCByZWNvcmQ7Ci0gICAgICAgIFNjcmlwdE9iamVjdCBk
YXRhOwotICAgICAgICBTY3JpcHRBcnJheSBjaGlsZHJlbjsKKyAgICAgICAgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gcmVjb3JkOworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRh
OworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGNoaWxkcmVuOwogICAgICAgICBUaW1l
bGluZVJlY29yZFR5cGUgdHlwZTsKICAgICB9OwogICAgICAgICAKLSAgICB2b2lkIHB1c2hDdXJy
ZW50UmVjb3JkKFNjcmlwdE9iamVjdCwgVGltZWxpbmVSZWNvcmRUeXBlKTsKLSAgICB2b2lkIHNl
dEhlYXBTaXplU3RhdGlzdGljKFNjcmlwdE9iamVjdCByZWNvcmQpOworICAgIHZvaWQgcHVzaEN1
cnJlbnRSZWNvcmQoY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mLCBUaW1lbGluZVJlY29y
ZFR5cGUpOworICAgIHZvaWQgc2V0SGVhcFNpemVTdGF0aXN0aWMoY29uc3QgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4mIHJlY29yZCk7CiAgICAgICAgIAogICAgIHZvaWQgZGlkQ29tcGxldGVDdXJy
ZW50UmVjb3JkKFRpbWVsaW5lUmVjb3JkVHlwZSk7CiAKLSAgICB2b2lkIGFkZFJlY29yZFRvVGlt
ZWxpbmUoU2NyaXB0T2JqZWN0LCBUaW1lbGluZVJlY29yZFR5cGUpOworICAgIHZvaWQgYWRkUmVj
b3JkVG9UaW1lbGluZShjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYsIFRpbWVsaW5lUmVj
b3JkVHlwZSk7CiAKICAgICB2b2lkIHB1c2hHQ0V2ZW50UmVjb3JkcygpOwogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIGIvV2ViQ29yZS9p
bnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAppbmRleCBiZGI1ZjNkLi4zMjViNGM5
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3Bw
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKQEAgLTM1
LDE1MSArMzUsMTUxIEBACiAKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
ckZyb250ZW5kLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiSW50
UmVjdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNl
UmVzcG9uc2UuaCIKICNpbmNsdWRlICJTY3JpcHRBcnJheS5oIgogI2luY2x1ZGUgIlNjcmlwdENh
bGxTdGFjay5oIgotI2luY2x1ZGUgIlNjcmlwdE9iamVjdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNS
ZWNvcmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBkb3VibGUgc3RhcnRUaW1lKQorUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmlj
UmVjb3JkKGRvdWJsZSBzdGFydFRpbWUpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IHJlY29yZCA9IGZy
b250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICByZWNvcmQuc2V0KCJzdGFydFRpbWUiLCBz
dGFydFRpbWUpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IEluc3BlY3Rv
ck9iamVjdDo6Y3JlYXRlKCk7CisgICAgcmVjb3JkLT5zZXROdW1iZXIoInN0YXJ0VGltZSIsIHN0
YXJ0VGltZSk7CiAKLSAgICBTY3JpcHRBcnJheSBzdGFja1RyYWNlOwotICAgIGlmIChTY3JpcHRD
YWxsU3RhY2s6OnN0YWNrVHJhY2UoNSwgZnJvbnRlbmQtPnNjcmlwdFN0YXRlKCksIHN0YWNrVHJh
Y2UpKQotICAgICAgICByZWNvcmQuc2V0KCJzdGFja1RyYWNlIiwgc3RhY2tUcmFjZSk7CisgICAg
UmVmUHRyPEluc3BlY3RvckFycmF5PiBzdGFja1RyYWNlID0gSW5zcGVjdG9yQXJyYXk6OmNyZWF0
ZSgpOworICAgIGlmIChTY3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UoNSwgc3RhY2tUcmFjZSkp
CisgICAgICAgIHJlY29yZC0+c2V0KCJzdGFja1RyYWNlIiwgc3RhY2tUcmFjZSk7CiAgICAgcmV0
dXJuIHJlY29yZDsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlR0NFdmVudERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBzaXplX3Qg
dXNlZEhlYXBTaXplRGVsdGEpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29y
ZEZhY3Rvcnk6OmNyZWF0ZUdDRXZlbnREYXRhKGNvbnN0IHNpemVfdCB1c2VkSGVhcFNpemVEZWx0
YSkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3Qo
KTsKLSAgICBkYXRhLnNldCgidXNlZEhlYXBTaXplRGVsdGEiLCB1c2VkSGVhcFNpemVEZWx0YSk7
CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3Jl
YXRlKCk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJ1c2VkSGVhcFNpemVEZWx0YSIsIHVzZWRIZWFw
U2l6ZURlbHRhKTsKICAgICByZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlRnVuY3Rpb25DYWxsRGF0YShJbnNwZWN0b3JGcm9udGVuZCog
ZnJvbnRlbmQsIGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUpCitSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUZ1bmN0aW9u
Q2FsbERhdGEoY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGluZSkKIHsKLSAg
ICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBk
YXRhLnNldCgic2NyaXB0TmFtZSIsIHNjcmlwdE5hbWUpOwotICAgIGRhdGEuc2V0KCJzY3JpcHRM
aW5lIiwgc2NyaXB0TGluZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IElu
c3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+c2V0U3RyaW5nKCJzY3JpcHROYW1l
Iiwgc2NyaXB0TmFtZSk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJzY3JpcHRMaW5lIiwgc2NyaXB0
TGluZSk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29y
ZEZhY3Rvcnk6OmNyZWF0ZUV2ZW50RGlzcGF0Y2hEYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9u
dGVuZCwgY29uc3QgRXZlbnQmIGV2ZW50KQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVFdmVudERpc3BhdGNoRGF0YShjb25zdCBFdmVudCYgZXZl
bnQpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0
KCk7Ci0gICAgZGF0YS5zZXQoInR5cGUiLCBldmVudC50eXBlKCkuc3RyaW5nKCkpOworICAgIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwor
ICAgIGRhdGEtPnNldFN0cmluZygidHlwZSIsIGV2ZW50LnR5cGUoKS5zdHJpbmcoKSk7CiAgICAg
cmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNy
ZWF0ZUdlbmVyaWNUaW1lckRhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBpbnQgdGlt
ZXJJZCkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlR2VuZXJpY1RpbWVyRGF0YShpbnQgdGltZXJJZCkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0
YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgidGltZXJJZCIs
IHRpbWVySWQpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JP
YmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldE51bWJlcigidGltZXJJZCIsIHRpbWVySWQp
OwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjpjcmVhdGVUaW1lckluc3RhbGxEYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwg
aW50IHRpbWVySWQsIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpCitSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVRpbWVySW5zdGFsbERhdGEo
aW50IHRpbWVySWQsIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpCiB7Ci0gICAgU2NyaXB0
T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5zZXQo
InRpbWVySWQiLCB0aW1lcklkKTsKLSAgICBkYXRhLnNldCgidGltZW91dCIsIHRpbWVvdXQpOwot
ICAgIGRhdGEuc2V0KCJzaW5nbGVTaG90Iiwgc2luZ2xlU2hvdCk7CisgICAgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZGF0YS0+
c2V0TnVtYmVyKCJ0aW1lcklkIiwgdGltZXJJZCk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJ0aW1l
b3V0IiwgdGltZW91dCk7CisgICAgZGF0YS0+c2V0Qm9vbCgic2luZ2xlU2hvdCIsIHNpbmdsZVNo
b3QpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjpjcmVhdGVYSFJSZWFkeVN0YXRlQ2hhbmdlRGF0YShJbnNwZWN0b3JGcm9udGVuZCog
ZnJvbnRlbmQsIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgcmVhZHlTdGF0ZSkKK1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlWEhSUmVhZHlTdGF0ZUNo
YW5nZURhdGEoY29uc3QgU3RyaW5nJiB1cmwsIGludCByZWFkeVN0YXRlKQogewotICAgIFNjcmlw
dE9iamVjdCBkYXRhID0gZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0
KCJ1cmwiLCB1cmwpOwotICAgIGRhdGEuc2V0KCJyZWFkeVN0YXRlIiwgcmVhZHlTdGF0ZSk7Cisg
ICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRl
KCk7CisgICAgZGF0YS0+c2V0U3RyaW5nKCJ1cmwiLCB1cmwpOworICAgIGRhdGEtPnNldE51bWJl
cigicmVhZHlTdGF0ZSIsIHJlYWR5U3RhdGUpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3Jp
cHRPYmplY3QgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJMb2FkRGF0YShJbnNwZWN0
b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IFN0cmluZyYgdXJsKQorUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVYSFJMb2FkRGF0YShjb25zdCBT
dHJpbmcmIHVybCkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3Jp
cHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgidXJsIiwgdXJsKTsKKyAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5z
ZXRTdHJpbmcoInVybCIsIHVybCk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVj
dCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUV2YWx1YXRlU2NyaXB0RGF0YShJbnNwZWN0
b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUgbGluZU51bWJl
cikgCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZUV2YWx1YXRlU2NyaXB0RGF0YShjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGxpbmVOdW1iZXIp
CiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7
Ci0gICAgZGF0YS5zZXQoInVybCIsIHVybCk7Ci0gICAgZGF0YS5zZXQoImxpbmVOdW1iZXIiLCBs
aW5lTnVtYmVyKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9y
T2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5zZXRTdHJpbmcoInVybCIsIHVybCk7CisgICAg
ZGF0YS0+c2V0TnVtYmVyKCJsaW5lTnVtYmVyIiwgbGluZU51bWJlcik7CiAgICAgcmV0dXJuIGRh
dGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZU1hcmtU
aW1lbGluZURhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpIAorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5Ojpj
cmVhdGVNYXJrVGltZWxpbmVEYXRhKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBTY3Jp
cHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNl
dCgibWVzc2FnZSIsIG1lc3NhZ2UpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEg
PSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldFN0cmluZygibWVzc2Fn
ZSIsIG1lc3NhZ2UpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVTY2hlZHVsZVJlc291cmNlUmVxdWVzdERhdGEoSW5zcGVj
dG9yRnJvbnRlbmQqIGZyb250ZW5kLCBjb25zdCBTdHJpbmcmIHVybCkKK1JlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlU2NoZWR1bGVSZXNvdXJjZVJl
cXVlc3REYXRhKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0g
ZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJ1cmwiLCB1cmwpOwor
ICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0
ZSgpOworICAgIGRhdGEtPnNldFN0cmluZygidXJsIiwgdXJsKTsKICAgICByZXR1cm4gZGF0YTsK
IH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVzb3VyY2VT
ZW5kUmVxdWVzdERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGJvb2wgaXNNYWluUmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlUmVzb3VyY2VTZW5kUmVxdWVzdERhdGEodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBi
b29sIGlzTWFpblJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0g
ICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAg
ZGF0YS5zZXQoImlkZW50aWZpZXIiLCBpZGVudGlmaWVyKTsKLSAgICBkYXRhLnNldCgidXJsIiwg
cmVxdWVzdC51cmwoKS5zdHJpbmcoKSk7Ci0gICAgZGF0YS5zZXQoInJlcXVlc3RNZXRob2QiLCBy
ZXF1ZXN0Lmh0dHBNZXRob2QoKSk7Ci0gICAgZGF0YS5zZXQoImlzTWFpblJlc291cmNlIiwgaXNN
YWluUmVzb3VyY2UpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldE51bWJlcigiaWRlbnRpZmllciIsIGlk
ZW50aWZpZXIpOworICAgIGRhdGEtPnNldFN0cmluZygidXJsIiwgcmVxdWVzdC51cmwoKS5zdHJp
bmcoKSk7CisgICAgZGF0YS0+c2V0U3RyaW5nKCJyZXF1ZXN0TWV0aG9kIiwgcmVxdWVzdC5odHRw
TWV0aG9kKCkpOworICAgIGRhdGEtPnNldEJvb2woImlzTWFpblJlc291cmNlIiwgaXNNYWluUmVz
b3VyY2UpOwogICAgIHJldHVybiBkYXRhOwogfQogCi1TY3JpcHRPYmplY3QgVGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVJlY2VpdmVSZXNwb25zZURhdGEoSW5zcGVjdG9yRnJv
bnRlbmQqIGZyb250ZW5kLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQorUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZVJlY2VpdmVSZXNwb25zZURhdGEodW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSAgICBT
Y3JpcHRPYmplY3QgZGF0YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRh
LnNldCgiaWRlbnRpZmllciIsIGlkZW50aWZpZXIpOwotICAgIGRhdGEuc2V0KCJzdGF0dXNDb2Rl
IiwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7Ci0gICAgZGF0YS5zZXQoIm1pbWVUeXBlIiwg
cmVzcG9uc2UubWltZVR5cGUoKSk7Ci0gICAgZGF0YS5zZXQoImV4cGVjdGVkQ29udGVudExlbmd0
aCIsIHJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKTsKKyAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRhLT5z
ZXROdW1iZXIoImlkZW50aWZpZXIiLCBpZGVudGlmaWVyKTsKKyAgICBkYXRhLT5zZXROdW1iZXIo
InN0YXR1c0NvZGUiLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKKyAgICBkYXRhLT5zZXRT
dHJpbmcoIm1pbWVUeXBlIiwgcmVzcG9uc2UubWltZVR5cGUoKSk7CisgICAgZGF0YS0+c2V0TnVt
YmVyKCJleHBlY3RlZENvbnRlbnRMZW5ndGgiLCByZXNwb25zZS5leHBlY3RlZENvbnRlbnRMZW5n
dGgoKSk7CiAgICAgcmV0dXJuIGRhdGE7CiB9CiAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29y
ZEZhY3Rvcnk6OmNyZWF0ZVJlc291cmNlRmluaXNoRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJv
bnRlbmQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgYm9vbCBkaWRGYWlsKQorUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVSZXNvdXJjZUZpbmlz
aERhdGEodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBib29sIGRpZEZhaWwpCiB7Ci0gICAgU2Ny
aXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgZGF0YS5z
ZXQoImlkZW50aWZpZXIiLCBpZGVudGlmaWVyKTsKLSAgICBkYXRhLnNldCgiZGlkRmFpbCIsIGRp
ZEZhaWwpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmpl
Y3Q6OmNyZWF0ZSgpOworICAgIGRhdGEtPnNldE51bWJlcigiaWRlbnRpZmllciIsIGlkZW50aWZp
ZXIpOworICAgIGRhdGEtPnNldEJvb2woImRpZEZhaWwiLCBkaWRGYWlsKTsKICAgICByZXR1cm4g
ZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmVj
ZWl2ZVJlc291cmNlRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllcikKK1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlUmVjZWl2ZVJlc291cmNlRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIp
CiB7Ci0gICAgU2NyaXB0T2JqZWN0IGRhdGEgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7
Ci0gICAgZGF0YS5zZXQoImlkZW50aWZpZXIiLCBpZGVudGlmaWVyKTsKKyAgICBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBkYXRh
LT5zZXROdW1iZXIoImlkZW50aWZpZXIiLCBpZGVudGlmaWVyKTsKICAgICByZXR1cm4gZGF0YTsK
IH0KICAgICAKLVNjcmlwdE9iamVjdCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhaW50
RGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIGNvbnN0IEludFJlY3QmIHJlY3QpCitS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhaW50
RGF0YShjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIFNjcmlwdE9iamVjdCBkYXRhID0gZnJv
bnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwotICAgIGRhdGEuc2V0KCJ4IiwgcmVjdC54KCkpOwot
ICAgIGRhdGEuc2V0KCJ5IiwgcmVjdC55KCkpOwotICAgIGRhdGEuc2V0KCJ3aWR0aCIsIHJlY3Qu
d2lkdGgoKSk7Ci0gICAgZGF0YS5zZXQoImhlaWdodCIsIHJlY3QuaGVpZ2h0KCkpOworICAgIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwor
ICAgIGRhdGEtPnNldE51bWJlcigieCIsIHJlY3QueCgpKTsKKyAgICBkYXRhLT5zZXROdW1iZXIo
InkiLCByZWN0LnkoKSk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJ3aWR0aCIsIHJlY3Qud2lkdGgo
KSk7CisgICAgZGF0YS0+c2V0TnVtYmVyKCJoZWlnaHQiLCByZWN0LmhlaWdodCgpKTsKICAgICBy
ZXR1cm4gZGF0YTsKIH0KIAotU2NyaXB0T2JqZWN0IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlUGFyc2VIVE1MRGF0YShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQsIHVuc2lnbmVkIGlu
dCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUpCitSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVBhcnNlSFRNTERhdGEodW5zaWduZWQgaW50
IGxlbmd0aCwgdW5zaWduZWQgaW50IHN0YXJ0TGluZSkKIHsKLSAgICBTY3JpcHRPYmplY3QgZGF0
YSA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBkYXRhLnNldCgibGVuZ3RoIiwg
bGVuZ3RoKTsKLSAgICBkYXRhLnNldCgic3RhcnRMaW5lIiwgc3RhcnRMaW5lKTsKKyAgICBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAg
ICBkYXRhLT5zZXROdW1iZXIoImxlbmd0aCIsIGxlbmd0aCk7CisgICAgZGF0YS0+c2V0TnVtYmVy
KCJzdGFydExpbmUiLCBzdGFydExpbmUpOwogICAgIHJldHVybiBkYXRhOwogfQogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaCBiL1dlYkNvcmUv
aW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oCmluZGV4IGY5MDVlY2MuLjZiNTdhNmQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oCkBAIC0zNyw0NyAr
MzcsNDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgRXZlbnQ7CiAgICAgY2xh
c3MgSW5zcGVjdG9yRnJvbnRlbmQ7CisgICAgY2xhc3MgSW5zcGVjdG9yT2JqZWN0OwogICAgIGNs
YXNzIEludFJlY3Q7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogICAgIGNsYXNzIFJlc291
cmNlUmVzcG9uc2U7Ci0gICAgY2xhc3MgU2NyaXB0T2JqZWN0OwogCiAgICAgY2xhc3MgVGltZWxp
bmVSZWNvcmRGYWN0b3J5IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmpl
Y3QgY3JlYXRlR2VuZXJpY1JlY29yZChJbnNwZWN0b3JGcm9udGVuZCosIGRvdWJsZSBzdGFydFRp
bWUpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlR2VuZXJp
Y1JlY29yZChkb3VibGUgc3RhcnRUaW1lKTsKIAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0
IGNyZWF0ZUdDRXZlbnREYXRhKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCwgY29uc3Qgc2l6
ZV90IHVzZWRIZWFwU2l6ZURlbHRhKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IGNyZWF0ZUdDRXZlbnREYXRhKGNvbnN0IHNpemVfdCB1c2VkSGVhcFNpemVEZWx0YSk7
CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVGdW5jdGlvbkNhbGxEYXRhKElu
c3BlY3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2NyaXB0TGlu
ZSk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVGdW5jdGlv
bkNhbGxEYXRhKGNvbnN0IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUpOwogCi0g
ICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlRXZlbnREaXNwYXRjaERhdGEoSW5zcGVj
dG9yRnJvbnRlbmQqLCBjb25zdCBFdmVudCYpOworICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gY3JlYXRlRXZlbnREaXNwYXRjaERhdGEoY29uc3QgRXZlbnQmKTsKIAotICAg
ICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZUdlbmVyaWNUaW1lckRhdGEoSW5zcGVjdG9y
RnJvbnRlbmQqLCBpbnQgdGltZXJJZCk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBjcmVhdGVHZW5lcmljVGltZXJEYXRhKGludCB0aW1lcklkKTsKIAotICAgICAgICBz
dGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVRpbWVySW5zdGFsbERhdGEoSW5zcGVjdG9yRnJvbnRl
bmQqLCBpbnQgdGltZXJJZCwgaW50IHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCk7CisgICAgICAg
IHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVUaW1lckluc3RhbGxEYXRhKGlu
dCB0aW1lcklkLCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKIAotICAgICAgICBzdGF0
aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVhIUlJlYWR5U3RhdGVDaGFuZ2VEYXRhKEluc3BlY3RvckZy
b250ZW5kKiwgY29uc3QgU3RyaW5nJiB1cmwsIGludCByZWFkeVN0YXRlKTsKKyAgICAgICAgc3Rh
dGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVhIUlJlYWR5U3RhdGVDaGFuZ2VEYXRh
KGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgcmVhZHlTdGF0ZSk7CiAKLSAgICAgICAgc3RhdGljIFNj
cmlwdE9iamVjdCBjcmVhdGVYSFJMb2FkRGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGNvbnN0IFN0
cmluZyYgdXJsKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0
ZVhIUkxvYWREYXRhKGNvbnN0IFN0cmluZyYgdXJsKTsKIAotICAgICAgICBzdGF0aWMgU2NyaXB0
T2JqZWN0IGNyZWF0ZUV2YWx1YXRlU2NyaXB0RGF0YShJbnNwZWN0b3JGcm9udGVuZCosIGNvbnN0
IFN0cmluZyYsIGRvdWJsZSBsaW5lTnVtYmVyKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IGNyZWF0ZUV2YWx1YXRlU2NyaXB0RGF0YShjb25zdCBTdHJpbmcmLCBkb3Vi
bGUgbGluZU51bWJlcik7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVNYXJr
VGltZWxpbmVEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgY29uc3QgU3RyaW5nJik7CisgICAgICAg
IHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVNYXJrVGltZWxpbmVEYXRhKGNv
bnN0IFN0cmluZyYpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlUmVzb3Vy
Y2VTZW5kUmVxdWVzdERhdGEoSW5zcGVjdG9yRnJvbnRlbmQqLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsCisgICAgICAgIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVSZXNv
dXJjZVNlbmRSZXF1ZXN0RGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsCiAgICAgICAgICAg
ICBib29sIGlzTWFpblJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKIAotICAgICAg
ICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0RGF0YShJ
bnNwZWN0b3JGcm9udGVuZCosIGNvbnN0IFN0cmluZyYpOworICAgICAgICBzdGF0aWMgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gY3JlYXRlU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3REYXRhKGNvbnN0
IFN0cmluZyYpOwogCi0gICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlUmVzb3VyY2VS
ZWNlaXZlUmVzcG9uc2VEYXRhKEluc3BlY3RvckZyb250ZW5kKiwgdW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVSZXNvdXJjZVJlY2VpdmVSZXNwb25zZURhdGEodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAKLSAgICAgICAg
c3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVSZWNlaXZlUmVzb3VyY2VEYXRhKEluc3BlY3RvckZy
b250ZW5kKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKKyAgICAgICAgc3RhdGljIFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVJlY2VpdmVSZXNvdXJjZURhdGEodW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyKTsKIAotICAgICAgICBzdGF0aWMgU2NyaXB0T2JqZWN0IGNyZWF0ZVJlc291
cmNlRmluaXNoRGF0YShJbnNwZWN0b3JGcm9udGVuZCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgYm9vbCBkaWRGYWlsKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IGNyZWF0ZVJlc291cmNlRmluaXNoRGF0YSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGJvb2wg
ZGlkRmFpbCk7CiAKLSAgICAgICAgc3RhdGljIFNjcmlwdE9iamVjdCBjcmVhdGVQYWludERhdGEo
SW5zcGVjdG9yRnJvbnRlbmQqLCBjb25zdCBJbnRSZWN0Jik7CisgICAgICAgIHN0YXRpYyBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVQYWludERhdGEoY29uc3QgSW50UmVjdCYpOwogCi0g
ICAgICAgIHN0YXRpYyBTY3JpcHRPYmplY3QgY3JlYXRlUGFyc2VIVE1MRGF0YShJbnNwZWN0b3JG
cm9udGVuZCosIHVuc2lnbmVkIGludCBsZW5ndGgsIHVuc2lnbmVkIGludCBzdGFydExpbmUpOwor
ICAgICAgICBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlUGFyc2VIVE1MRGF0
YSh1bnNpZ25lZCBpbnQgbGVuZ3RoLCB1bnNpZ25lZCBpbnQgc3RhcnRMaW5lKTsKIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIFRpbWVsaW5lUmVjb3JkRmFjdG9yeSgpIHsgfQpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBhMzM1MDZj
Li5jN2NlNTg0IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEwLTA2LTE5ICBJbHlhIFRpa2hvbm92
c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWJJbnNwZWN0b3I6IGpzIGZ1bmN0aW9uIG5hbWUgd2FzIGZp
eGVkLgorICAgICAgICBkaXNwYXRjaE1lc3NhZ2VUb0Zyb250ZW5kIC0+IGRpc3BhdGNoTWVzc2Fn
ZUZyb21CYWNrZW5kLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDA2NzUKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0
ay5jcHA6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6c2VuZE1lc3NhZ2VUb0Zy
b250ZW5kKToKKwogMjAxMC0wNi0yMyAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxp
YS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3Bw
IGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwCmluZGV4
IDRiYzNjMzIuLjYxNjgzNGIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0lu
c3BlY3RvckNsaWVudEd0ay5jcHAKQEAgLTEzNCw3ICsxMzQsNyBAQCBib29sIEluc3BlY3RvckNs
aWVudDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBp
ZiAoIXNjcmlwdENvbnRyb2xsZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFN0cmlu
ZyBkaXNwYXRjaFRvRnJvbnRlbmQoIldlYkluc3BlY3Rvci5kaXNwYXRjaE1lc3NhZ2VUb0Zyb250
ZW5kKCIpOworICAgIFN0cmluZyBkaXNwYXRjaFRvRnJvbnRlbmQoIldlYkluc3BlY3Rvci5kaXNw
YXRjaE1lc3NhZ2VGcm9tQmFja2VuZCgiKTsKICAgICBkaXNwYXRjaFRvRnJvbnRlbmQgKz0gbWVz
c2FnZTsKICAgICBkaXNwYXRjaFRvRnJvbnRlbmQgKz0gIik7IjsKICAgICBzY3JpcHRDb250cm9s
bGVyLT5leGVjdXRlU2NyaXB0KGRpc3BhdGNoVG9Gcm9udGVuZCk7CmRpZmYgLS1naXQgYS9XZWJL
aXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAyYTY0OWY2Li43NmQ4
YjdhIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wNi0xOSAgSWx5YSBUaWtob25vdnNreSAgPGxv
aXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViSW5zcGVjdG9yOiBqcyBmdW5jdGlvbiBuYW1lIHdhcyBmaXhlZC4KKyAg
ICAgICAgZGlzcGF0Y2hNZXNzYWdlVG9Gcm9udGVuZCAtPiBkaXNwYXRjaE1lc3NhZ2VGcm9tQmFj
a2VuZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQw
Njc1CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRRdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRRdDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5k
KToKKwogMjAxMC0wNy0wMyAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQg
YS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50UXQuY3BwIGIvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFF0LmNwcAppbmRleCBmZGUwNTU2Li40
NTAzMTFkIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xp
ZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRR
dC5jcHAKQEAgLTE4NCw3ICsxODQsNyBAQCBib29sIEluc3BlY3RvckNsaWVudFF0OjpzZW5kTWVz
c2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIGlmICghc2NyaXB0Q29u
dHJvbGxlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgU3RyaW5nIGRpc3BhdGNoVG9G
cm9udGVuZCgiV2ViSW5zcGVjdG9yLmRpc3BhdGNoTWVzc2FnZVRvRnJvbnRlbmQoIik7CisgICAg
U3RyaW5nIGRpc3BhdGNoVG9Gcm9udGVuZCgiV2ViSW5zcGVjdG9yLmRpc3BhdGNoTWVzc2FnZUZy
b21CYWNrZW5kKCIpOwogICAgIGRpc3BhdGNoVG9Gcm9udGVuZCArPSBtZXNzYWdlOwogICAgIGRp
c3BhdGNoVG9Gcm9udGVuZCArPSAiKTsiOwogICAgIHNjcmlwdENvbnRyb2xsZXItPmV4ZWN1dGVT
Y3JpcHQoZGlzcGF0Y2hUb0Zyb250ZW5kKTsK
</data>
<flag name="review"
          id="48099"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>