<?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>188996</bug_id>
          
          <creation_ts>2018-08-27 11:43:27 -0700</creation_ts>
          <short_desc>Add IGNORE_WARNING_.* macros</short_desc>
          <delta_ts>2018-09-18 22:55:02 -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 Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>188598</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Guillaume Emont">guijemont</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>guijemont</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mitz</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1454005</commentid>
    <comment_count>0</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-08-27 11:43:27 -0700</bug_when>
    <thetext>While working on #188598, I realized that we repeat a lot some boilerplate code to ignore warnings, and it is not always done in the safest way (to avoid creating other warnings on other compilers for instance). Typically, we see things like:

  #if COMPILER(CLANG) &amp;&amp; defined(__has_warning)
  #pragma clang diagnostic push
  #if __has_warning(&quot;-Wfoo-bar&quot;)
  #pragma clang diagnostic ignored &quot;-Wfoo-bar&quot;
  #endif
  #endif

  // Code that triggers the warning.

  #if COMPILER(CLANG) &amp;&amp; defined(__has_warning)
  #pragma clang diagnostic pop
  #endif

And we also see variants that don&apos;t check for the compiler type, or don&apos;t do the check with __has_warning(), or that ignore the warning on GCC instead of clang, or that ignores it on both compilers.

I propose to replace this boilerplate with macros that always do the checks that we want (compiler being used, and check __has_warning() if it&apos;s available).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454014</commentid>
    <comment_count>1</comment_count>
      <attachid>348180</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-08-27 11:56:35 -0700</bug_when>
    <thetext>Created attachment 348180
Patch

This is a first proposal of the IGNORE_WARNING_.* macros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454015</commentid>
    <comment_count>2</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-08-27 11:58:06 -0700</bug_when>
    <thetext>(In reply to Guillaume Emont from comment #1)
&gt; Created attachment 348180 [details]
&gt; Patch
&gt; 
&gt; This is a first proposal of the IGNORE_WARNING_.* macros.

Looks like my editor doesn&apos;t have the right settings of Objective C file, so my patch is not respecting the style guidelines yet it seems (tabs instead of spaces). I&apos;ll fix that in the next iteration of the patch, though I prefer to get it out already to be able to discuss it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454065</commentid>
    <comment_count>3</comment_count>
      <attachid>348180</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-08-27 13:51:44 -0700</bug_when>
    <thetext>Comment on attachment 348180
Patch

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

Cool

(Read that in a John Oliver voice.)

BTW I still think this is worth notice on webkit-dev@.

&gt; Source/WTF/wtf/Compiler.h:395
&gt; +#define _COMPILER_CONCAT_I(a, b) a ## b
&gt; +#define _COMPILER_CONCAT(a, b) _COMPILER_CONCAT_I(a, b)
&gt; +
&gt; +#define _COMPILER_STRINGIZE(exp) #exp

I would #undef them when you&apos;re done with them

&gt; Source/WTF/wtf/Compiler.h:440
&gt; +#define IGNORE_WARNING_CLANG(warning) do { IGNORE_WARNING_IMPL(clang, warning) } while (false)
&gt; +#define IGNORE_WARNING_CLANG_END(warning) do { IGNORE_WARNING_END_IMPL(clang, warning) } while (false)
&gt; +#define IGNORE_WARNING_CLANG_TOP_LEVEL(warning) IGNORE_WARNING_IMPL(clang, warning)
&gt; +#define IGNORE_WARNING_CLANG_TOP_LEVEL_END(warning) IGNORE_WARNING_END_IMPL(clang, warning)

I kinda think getting rid of the TOP_LEVEL would be nice, to reduce the verbosity and complexity. The inner-function version with the do { } while is only different so that a semicolon can be used at the end, right? Generally the do { } while idiom is intended to make macros easier to use, not harder, and I think it is not really worth it in this case because now you&apos;ve found up having to duplicate every macro here, and the user has to remember the differences between the two macros (one requires a trailing semicolon, the other doesn&apos;t).| It has kinda backfired here, IMO. So I would remove the do { } while versions and require that the semicolon is never used. I think it&apos;s not unnatural given that this macro is a replacement for pragmas, not a function, and  hopefully nobody is going to expect it can be used as a function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454066</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-08-27 13:52:14 -0700</bug_when>
    <thetext>Even so, it&apos;s an amazing patch: this is way cleaner than we had before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454348</commentid>
    <comment_count>5</comment_count>
      <attachid>348180</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-08-28 04:31:54 -0700</bug_when>
    <thetext>Comment on attachment 348180
Patch

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

&gt;&gt; Source/WTF/wtf/Compiler.h:395
&gt;&gt; +#define _COMPILER_STRINGIZE(exp) #exp
&gt; 
&gt; I would #undef them when you&apos;re done with them

I wish I could. But since they are used inside of macros, it looks like they need to be defined wherever the macro is used. I tried to alleviate this by using the _COMPILER_ prefix. I&apos;m open to alternative ideas, but unfortunately, simply #undef&apos;ing them is not an option.

&gt;&gt; Source/WTF/wtf/Compiler.h:440
&gt;&gt; +#define IGNORE_WARNING_CLANG_TOP_LEVEL_END(warning) IGNORE_WARNING_END_IMPL(clang, warning)
&gt; 
&gt; I kinda think getting rid of the TOP_LEVEL would be nice, to reduce the verbosity and complexity. The inner-function version with the do { } while is only different so that a semicolon can be used at the end, right? Generally the do { } while idiom is intended to make macros easier to use, not harder, and I think it is not really worth it in this case because now you&apos;ve found up having to duplicate every macro here, and the user has to remember the differences between the two macros (one requires a trailing semicolon, the other doesn&apos;t).| It has kinda backfired here, IMO. So I would remove the do { } while versions and require that the semicolon is never used. I think it&apos;s not unnatural given that this macro is a replacement for pragmas, not a function, and  hopefully nobody is going to expect it can be used as a function.

I hear your argument, and I think it makes sense. Though I think that indeed this kind of question is worth asking on webkit-dev@.
To add to your proposition, if we were doing that, what about calling the macors &quot;PRAGMA_IGNORE_WARNING.*&quot; to make it clear that they are &quot;like pragmas&quot; and that&apos;s why we don&apos;t put semicolons afterwards?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454358</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-08-28 06:26:10 -0700</bug_when>
    <thetext>(In reply to Guillaume Emont from comment #5)
&gt; I wish I could. But since they are used inside of macros, it looks like they
&gt; need to be defined wherever the macro is used. I tried to alleviate this by
&gt; using the _COMPILER_ prefix. I&apos;m open to alternative ideas, but
&gt; unfortunately, simply #undef&apos;ing them is not an option.

Heh! OK then, no big deal.

&gt; I hear your argument, and I think it makes sense. Though I think that indeed
&gt; this kind of question is worth asking on webkit-dev@.
&gt; To add to your proposition, if we were doing that, what about calling the
&gt; macors &quot;PRAGMA_IGNORE_WARNING.*&quot; to make it clear that they are &quot;like
&gt; pragmas&quot; and that&apos;s why we don&apos;t put semicolons afterwards?

Sounds good to me. Maybe webkit-dev@ will have alternate naming suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454386</commentid>
    <comment_count>7</comment_count>
      <attachid>348296</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-08-28 08:51:37 -0700</bug_when>
    <thetext>Created attachment 348296
Patch

New version of the patch rebased and fixing tabs in ObjC files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454391</commentid>
    <comment_count>8</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-08-28 08:56:43 -0700</bug_when>
    <thetext>Attachment 348296 did not pass style-queue:


ERROR: Source/WebCore/xml/XPathGrammar.cpp:2157:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/xml/XPathGrammar.cpp:2160:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 196 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>1454395</commentid>
    <comment_count>9</comment_count>
      <attachid>348296</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-08-28 09:25:21 -0700</bug_when>
    <thetext>Comment on attachment 348296
Patch

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

I like this.

&gt; Source/WTF/wtf/Compiler.h:454
&gt; +#define IGNORE_WARNING_GCC_OR_CLANG(warning) do { IGNORE_WARNING_IMPL(GCC, warning) } while (false)
&gt; +#define IGNORE_WARNING_GCC_OR_CLANG_END(warning) do { IGNORE_WARNING_END_IMPL(GCC, warning) } while (false)
&gt; +#define IGNORE_WARNING_GCC_OR_CLANG_TOP_LEVEL(warning) IGNORE_WARNING_IMPL(GCC, warning)
&gt; +#define IGNORE_WARNING_GCC_OR_CLANG_TOP_LEVEL_END(warning) IGNORE_WARNING_END_IMPL(GCC, warning)

I think it would be much nicer if we just had two macros:
IGNORE_WARNING_BEGIN
IGNORE_WARNING_END</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454396</commentid>
    <comment_count>10</comment_count>
      <attachid>348297</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-08-28 09:25:55 -0700</bug_when>
    <thetext>Created attachment 348297
Patch

Fix compilation issue on Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454398</commentid>
    <comment_count>11</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-08-28 09:29:33 -0700</bug_when>
    <thetext>Attachment 348297 did not pass style-queue:


ERROR: Source/WebCore/xml/XPathGrammar.cpp:2157:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/xml/XPathGrammar.cpp:2160:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 196 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>1454403</commentid>
    <comment_count>12</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-08-28 09:35:41 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #9)
&gt; Comment on attachment 348296 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=348296&amp;action=review
&gt; 
&gt; I like this.
&gt; 
&gt; &gt; Source/WTF/wtf/Compiler.h:454
&gt; &gt; +#define IGNORE_WARNING_GCC_OR_CLANG(warning) do { IGNORE_WARNING_IMPL(GCC, warning) } while (false)
&gt; &gt; +#define IGNORE_WARNING_GCC_OR_CLANG_END(warning) do { IGNORE_WARNING_END_IMPL(GCC, warning) } while (false)
&gt; &gt; +#define IGNORE_WARNING_GCC_OR_CLANG_TOP_LEVEL(warning) IGNORE_WARNING_IMPL(GCC, warning)
&gt; &gt; +#define IGNORE_WARNING_GCC_OR_CLANG_TOP_LEVEL_END(warning) IGNORE_WARNING_END_IMPL(GCC, warning)
&gt; 
&gt; I think it would be much nicer if we just had two macros:
&gt; IGNORE_WARNING_BEGIN
&gt; IGNORE_WARNING_END
I&apos;m not entirely sure this is the best, since the set of warnings are different between compilers, and we risk to add a warning on a given compiler if we try to ignore a warning that doesn&apos;t exist there. Currently this would work, since clang provides __has_warning(), and gcc silently ignores warning types it does not know, but I&apos;m not sure this would work, if for instance we were to extend that to support visual studio.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454414</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-08-28 10:03:38 -0700</bug_when>
    <thetext>(In reply to Guillaume Emont from comment #12)
&gt; Currently
&gt; this would work, since clang provides __has_warning(), and gcc silently
&gt; ignores warning types it does not know, but I&apos;m not sure this would work, if
&gt; for instance we were to extend that to support visual studio.

GCC does not ignore warnings that it does not recognize:

[1/16] Compiling C object &apos;src/src@@ephymain@sha/ephy-action-bar.c.o&apos;.
../../../../Projects/epiphany/src/ephy-action-bar.c:32:32: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas]
 #pragma GCC diagnostic ignored &quot;-Wasonteuhasoe&quot;
                                ^~~~~~~~~~~~~~~~

So you need compiler guards somehow to avoid introducing new warnings (so it needs separate macros for GCC and Clang), and probably also compiler version guards for new warnings (which will just have to be done manually).

__has_warning() would be really nice to have in GCC. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454422</commentid>
    <comment_count>14</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-08-28 10:19:58 -0700</bug_when>
    <thetext>I think the common case is that we will want to ignore a warning and we won&apos;t want to worry about whether it&apos;s the top level or not or if we only want to ignore it in one compiler for some reason.  Unrecognized pragmas are ignored by every compiler.

*_BEGIN and *_END macros are symmetric but * and *_END are not and will lead to forgotten ends.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454425</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-08-28 10:22:55 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #14)
&gt; I think the common case is that we will want to ignore a warning and we
&gt; won&apos;t want to worry about whether it&apos;s the top level or not or if we only
&gt; want to ignore it in one compiler for some reason.  Unrecognized pragmas are
&gt; ignored by every compiler.

Again no, GCC warns about any use of #pragma clang, for instance. That&apos;s why we *always* guard pragmas with compiler guards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454428</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-08-28 10:32:13 -0700</bug_when>
    <thetext>E.g.

../../../../Projects/epiphany/src/ephy-action-bar.c:32: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
 #pragma clang diagnostic ignored &quot;-Wformat&quot;

I think Visual Studio warns too? I seem to remember that being a problem in the past. So if we have just a generic IGNORE_WARNING() it will always need to be wrapped in #if COMPILER() guards, both at the start and the end:

#if COMPILER(GCC_OR_CLANG)
IGNORE_WARNING(&quot;-Wformat&quot;)
#endif

printf(/* ... */);

#if COMPILER(GCC_OR_CLANG)
IGNORE_WARNING_END(&quot;-Wformat&quot;)
#endif

and that&apos;s only one line shorter than the current idiom:

#if COMPILER(GCC_OR_CLANG)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored &quot;-Wformat&quot;
#endif

printf(/* ... */);

#if COMPILER(GCC_OR_CLANG)
#pragma GCC diagnostic pop
#endif

Hence having the compiler-specific macros seems useful, since that gets us down to:

IGNORE_GCC_OR_CLANG_WARNING(&quot;-Wformat&quot;)
printf(/* ... */);
END_IGNORE_GCC_OR_CLANG_WARNING(&quot;-Wformat&quot;)

which is very nice. We probably don&apos;t need the warning argument to the _END() macro either, since it&apos;s just doing a pop and must be ignored, but it seems nicer (more parallel) and more readable to keep it there.

Notice that I played a bit with the name of the macros in that last example (moving the END to the beginning rather than the end of the macro name).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454433</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-08-28 10:37:19 -0700</bug_when>
    <thetext>Actually I suppose we could just build with -Wno-unknown-pragmas and -Wno-pragmas

Dunno if Visual Studio has similar options, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454439</commentid>
    <comment_count>18</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-08-28 10:47:22 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #16)
&gt; E.g.
&gt; 
&gt; ../../../../Projects/epiphany/src/ephy-action-bar.c:32: warning: ignoring
&gt; #pragma clang diagnostic [-Wunknown-pragmas]
&gt;  #pragma clang diagnostic ignored &quot;-Wformat&quot;
&gt; 
&gt; I think Visual Studio warns too? I seem to remember that being a problem in
&gt; the past. So if we have just a generic IGNORE_WARNING() it will always need
&gt; to be wrapped in #if COMPILER() guards, both at the start and the end:
&gt; 
&gt; #if COMPILER(GCC_OR_CLANG)
&gt; IGNORE_WARNING(&quot;-Wformat&quot;)
&gt; #endif
&gt; 
&gt; printf(/* ... */);
&gt; 
&gt; #if COMPILER(GCC_OR_CLANG)
&gt; IGNORE_WARNING_END(&quot;-Wformat&quot;)
&gt; #endif
&gt; 
&gt; and that&apos;s only one line shorter than the current idiom:
&gt; 
&gt; #if COMPILER(GCC_OR_CLANG)
&gt; #pragma GCC diagnostic push
&gt; #pragma GCC diagnostic ignored &quot;-Wformat&quot;
&gt; #endif
&gt; 
&gt; printf(/* ... */);
&gt; 
&gt; #if COMPILER(GCC_OR_CLANG)
&gt; #pragma GCC diagnostic pop
&gt; #endif
&gt; 
&gt; Hence having the compiler-specific macros seems useful, since that gets us
&gt; down to:
&gt; 
&gt; IGNORE_GCC_OR_CLANG_WARNING(&quot;-Wformat&quot;)
&gt; printf(/* ... */);
&gt; END_IGNORE_GCC_OR_CLANG_WARNING(&quot;-Wformat&quot;)
&gt; 
&gt; which is very nice. We probably don&apos;t need the warning argument to the
&gt; _END() macro either, since it&apos;s just doing a pop and must be ignored, but it
&gt; seems nicer (more parallel) and more readable to keep it there.
We currently need the warning argument since the &quot;diagnostic push&quot; is guarded by an #if __has_warning() on clang. Alternatively, we could decide to agree to insert unnecessary pragma push/pop pairs to remove the argument, though I feel in some cases we would end up doing:

IGNORE_GCC_OR_CLANG_WARNING(&quot;-Wfoo-bar&quot;)

// hundreds of line of code

IGNORE_GCC_OR_CLANG_WARNING_END() // -Wfoo-bar

So for these two reasons (explicitness and avoiding unnecesary pragmas) I feel like it might be better to keep the argument for the _END macros.

&gt; 
&gt; Notice that I played a bit with the name of the macros in that last example
&gt; (moving the END to the beginning rather than the end of the macro name).

That&apos;s a good idea. My name ordering showed that I&apos;m not a native English speaker ;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454546</commentid>
    <comment_count>19</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-08-28 14:12:00 -0700</bug_when>
    <thetext>Speak of the devil, I just built with WebRTC enabled for the first time in a while and there are a bazillion warnings due to unguarded use of #pragma clang. I will be fixing that up shortly.

&gt; So for these two reasons (explicitness and avoiding unnecesary pragmas) I
&gt; feel like it might be better to keep the argument for the _END macros.

Yes.

&gt; That&apos;s a good idea. My name ordering showed that I&apos;m not a native English
&gt; speaker ;).

Nah, your ordering was perfectly plausible too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454710</commentid>
    <comment_count>20</comment_count>
      <attachid>348297</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-08-28 21:26:06 -0700</bug_when>
    <thetext>Comment on attachment 348297
Patch

Seems like a reasonable idea. Better style, I suppose. Macros are ugly but these #pragma combinations are even more ugly in a way.

Seems excessive to pass in the same warning name to the &quot;END&quot; macros. Wordy, could get it wrong and nothing bad would happen. Please omit those extra arguments unless there is some good rationale I am missing.

Not sure we need the versions that allow semicolons. I think we could just use semicolon-free versions of these everywhere, not just the top level.

Since we are going to the trouble to visit all these call sites, I don’t think we should keep unnecessary distinctions of &quot;clang-only&quot;, &quot;clang or gcc&quot;, &quot;gcc-only&quot; in all these places. All of these should be the &quot;both clang and gcc&quot; versions unless there is some reason they can’t be.

It seems inelegant to pass in strings with the warnings to disable every time. We can do that for the more exotic warnings, but for common ones we should have specialized macros instead; better for clarity and also perhaps they can some day work as cross-compiler abstractions that work on other compilers. Here are the warnings that appear more than once:

 274 &quot;-Wdeprecated-declarations&quot;
  27 &quot;-Wunknown-pragmas&quot;
  24 &quot;-Wunguarded-availability-new&quot;
  13 &quot;-Wunused-parameter&quot;
  11 &quot;-Wformat-nonliteral&quot;
   9 &quot;-Wreturn-type&quot;
   6 &quot;-Wnonnull&quot;
   4 &quot;-Wmissing-noreturn&quot;
   4 &quot;-Wimplicit-fallthrough&quot;
   4 &quot;-Wcast-qual&quot;
   3 &quot;-Wundefined-var-template&quot;
   2 &quot;-Wunused-private-field&quot;
   2 &quot;-Wtype-limits&quot;
   2 &quot;-Wnullability-completeness&quot;
   2 &quot;-Wformat-security&quot;
   2 &quot;-Wenum-compare&quot;

I suggest we make warning-specific macros for at least the first one of these, and possibly a few more.

I’m not even sure that the word &quot;WARNING&quot; would need to appear in the all these macros. The ones about deprecated declarations could be:

    ALLOW_DEPRECATED_DECLARATIONS_START
    ALLOW_DEPRECATED_DECLARATIONS_END

And so on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454762</commentid>
    <comment_count>21</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-08-29 07:36:07 -0700</bug_when>
    <thetext>Hi Darin,

Thanks for your thoughtful review, here are my answers to your comments, some of them bring more questions.

(In reply to Darin Adler from comment #20)
&gt; Comment on attachment 348297 [details]
&gt; Patch
&gt; 
&gt; Seems like a reasonable idea. Better style, I suppose. Macros are ugly but
&gt; these #pragma combinations are even more ugly in a way.
&gt; 
&gt; Seems excessive to pass in the same warning name to the &quot;END&quot; macros. Wordy,
&gt; could get it wrong and nothing bad would happen. Please omit those extra
&gt; arguments unless there is some good rationale I am missing.
As I explained in https://bugs.webkit.org/show_bug.cgi?id=188996#c18 the rationale to keep the argument is:
 - consistency and clarity (we don&apos;t need to add a &quot;// -Wfoo-bar&quot; comment at the end when a large portion of code is within the ignore)
 - removing the argument to the _END macros would mean we have to always emit the diagnostic push/pop even if we don&apos;t add an ignore

If you believe that considering these two aspects it&apos;s still better to remove the argument from _END macros, I&apos;m happy to do it.

&gt; 
&gt; Not sure we need the versions that allow semicolons. I think we could just
&gt; use semicolon-free versions of these everywhere, not just the top level.

Ok, I will make the simplification.

&gt; 
&gt; Since we are going to the trouble to visit all these call sites, I don’t
&gt; think we should keep unnecessary distinctions of &quot;clang-only&quot;, &quot;clang or
&gt; gcc&quot;, &quot;gcc-only&quot; in all these places. All of these should be the &quot;both clang
&gt; and gcc&quot; versions unless there is some reason they can’t be.

 - As Michael was pointing out, gcc warns if you try to ignore a warning it does not know about, so at least some of the clang only warnings need to remain that way.
 - We could change the gcc-only warnings to gcc or clang¸ since clang provides __has_warning(). Would you like me to do that?

&gt; 
&gt; It seems inelegant to pass in strings with the warnings to disable every
&gt; time. We can do that for the more exotic warnings, but for common ones we
&gt; should have specialized macros instead; better for clarity and also perhaps
&gt; they can some day work as cross-compiler abstractions that work on other
&gt; compilers. Here are the warnings that appear more than once:
&gt; 
&gt;  274 &quot;-Wdeprecated-declarations&quot;
&gt;   27 &quot;-Wunknown-pragmas&quot;
&gt;   24 &quot;-Wunguarded-availability-new&quot;
&gt;   13 &quot;-Wunused-parameter&quot;
&gt;   11 &quot;-Wformat-nonliteral&quot;
&gt;    9 &quot;-Wreturn-type&quot;
&gt;    6 &quot;-Wnonnull&quot;
&gt;    4 &quot;-Wmissing-noreturn&quot;
&gt;    4 &quot;-Wimplicit-fallthrough&quot;
&gt;    4 &quot;-Wcast-qual&quot;
&gt;    3 &quot;-Wundefined-var-template&quot;
&gt;    2 &quot;-Wunused-private-field&quot;
&gt;    2 &quot;-Wtype-limits&quot;
&gt;    2 &quot;-Wnullability-completeness&quot;
&gt;    2 &quot;-Wformat-security&quot;
&gt;    2 &quot;-Wenum-compare&quot;
&gt; 
&gt; I suggest we make warning-specific macros for at least the first one of
&gt; these, and possibly a few more.
&gt; 
&gt; I’m not even sure that the word &quot;WARNING&quot; would need to appear in the all
&gt; these macros. The ones about deprecated declarations could be:
&gt; 
&gt;     ALLOW_DEPRECATED_DECLARATIONS_START
&gt;     ALLOW_DEPRECATED_DECLARATIONS_END
&gt; 
&gt; And so on.

Makes sense, I&apos;ll work on that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454769</commentid>
    <comment_count>22</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-08-29 07:55:47 -0700</bug_when>
    <thetext>(In reply to Guillaume Emont from comment #21)
&gt;  - As Michael was pointing out, gcc warns if you try to ignore a warning it
&gt; does not know about, so at least some of the clang only warnings need to
&gt; remain that way.

I think we can control this behavior using -Wno-pragmas and -Wno-unknown-pragmas:

       -Wunknown-pragmas
           Warn when a &quot;#pragma&quot; directive is encountered that is not
           understood by GCC.  If this command-line option is used, warnings
           are even issued for unknown pragmas in system header files.  This
           is not the case if the warnings are only enabled by the -Wall
           command-line option.

       -Wno-pragmas
           Do not warn about misuses of pragmas, such as incorrect parameters,
           invalid syntax, or conflicts between pragmas.  See also
           -Wunknown-pragmas.

I suggest we do use -Wno-unknown-pragmas, because it&apos;s annoying to see GCC complain every time #pragma clang is used. It&apos;s obvious that when #pragma clang is used, the pragma is intended to be ignored by GCC. It&apos;s not helpful for that to trigger warnings each time. If the GCC developers think -Wunknown-pragmas is useful, they should make it only warn when it sees unknown pragmas after #pragma GCC and not otherwise. (I&apos;ll remind developers that #pragma GCC should be used whenever a warning is not Clang-specific.)

The value of -Wno-pragmas is less-clear to me, but it would allow us to get the behavior requested by Darin and Alex to have just one macro not specific to each compiler, presuming Visual Studio does not have similar warnings or they can be turned off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454792</commentid>
    <comment_count>23</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-08-29 09:28:48 -0700</bug_when>
    <thetext>(In reply to Guillaume Emont from comment #21)
&gt; As I explained in https://bugs.webkit.org/show_bug.cgi?id=188996#c18 the
&gt; rationale to keep the argument is:
&gt;  - consistency and clarity (we don&apos;t need to add a &quot;// -Wfoo-bar&quot; comment at
&gt; the end when a large portion of code is within the ignore)
&gt;  - removing the argument to the _END macros would mean we have to always
&gt; emit the diagnostic push/pop even if we don&apos;t add an ignore
&gt; 
&gt; If you believe that considering these two aspects it&apos;s still better to
&gt; remove the argument from _END macros, I&apos;m happy to do it.

I do. My view is that an ignored argument that can be wrong is not *better* than a comment. In fact it’s *worse* because it’s a comment in disguise and a comment that you always must include. You could put &quot;&lt;&lt;&lt;just making the macro happen&gt;&gt;&gt;&quot; in and it would work compile just fine.

I don’t think that END macros should have comments in any normal circumstances; they are going to be just a line or two down from the start macros. Just as we wouldn’t want to comment every close brace with an explanation of the open brace from a line or two above. Maybe occasionally a comment would be needed for clarity but it seems unlikely.

I’m not at all concerned about compiling more push/pop pairs but maybe you could show me an example of a specific case where that is bad and help me understand why you are concerned about it.

&gt;  - As Michael was pointing out, gcc warns if you try to ignore a warning it
&gt; does not know about, so at least some of the clang only warnings need to
&gt; remain that way.

That’s fine, but I believe the default should be the &quot;both&quot; version and the unusual, longer-named, more-special version should be the single-compiler only versions.

The goal of the compiler file is to create mostly compiler-independent abstractions and one thing I don’t like about this is that we also support the Windows compiler and these macros don’t help us ignore the corresponding warnings on Windows in an elegant way. Not a problem in the short term, but a problem with the design. Unless none of these warning concepts make sense on Windows. But that seems unlikely.

There are some strange intersections here. The &quot;ignore deprecation&quot; warning is Apple-platform-specific so that explains why it will never come up on Windows, and that&apos;s more than half of the use of this.

&gt;  - We could change the gcc-only warnings to gcc or clang¸ since clang
&gt; provides __has_warning(). Would you like me to do that?

Generally speaking, yes I would, if there are a lot of these. But to be sure I’d need some examples of specifics.

Our default should be cross-compiler things, and our compiler-specific things should be treated as &quot;grudging complexities&quot;. The issue with GCC complaining about unknown warnings is not just an issue for clang-specific things, by the way, it’s an issue for multiple versions of GCC. If a new version adds a new warning, we need to make the warning disabling apply only under the newer compiler.

I’m not 100% sure that we should do -Wno-unknown-pragmas, by the way, since that warning aspires to be a useful way to detect typos in pragmas and I would love to do that even if it creates a bit of inconvenience for us. But there may be no practical way to leave it on and support multiple compilers and compiler versions elegantly. I don’t know why clang doesn’t offer a similar warning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454794</commentid>
    <comment_count>24</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-08-29 09:36:30 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #23) 
&gt; There are some strange intersections here. The &quot;ignore deprecation&quot; warning
&gt; is Apple-platform-specific so that explains why it will never come up on
&gt; Windows, and that&apos;s more than half of the use of this.

FYI, we have -Wdeprecated-declarations on Linux too, and we do need to use it occasionally, usually in API tests for testing that we don&apos;t break our own deprecated APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454833</commentid>
    <comment_count>25</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-08-29 10:34:51 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #23)
&gt; (In reply to Guillaume Emont from comment #21)
&gt; &gt; As I explained in https://bugs.webkit.org/show_bug.cgi?id=188996#c18 the
&gt; &gt; rationale to keep the argument is:
&gt; &gt;  - consistency and clarity (we don&apos;t need to add a &quot;// -Wfoo-bar&quot; comment at
&gt; &gt; the end when a large portion of code is within the ignore)
&gt; &gt;  - removing the argument to the _END macros would mean we have to always
&gt; &gt; emit the diagnostic push/pop even if we don&apos;t add an ignore
&gt; &gt; 
&gt; &gt; If you believe that considering these two aspects it&apos;s still better to
&gt; &gt; remove the argument from _END macros, I&apos;m happy to do it.
&gt; 
&gt; I do. My view is that an ignored argument that can be wrong is not *better*
&gt; than a comment. In fact it’s *worse* because it’s a comment in disguise and
&gt; a comment that you always must include. You could put &quot;&lt;&lt;&lt;just making the
&gt; macro happen&gt;&gt;&gt;&quot; in and it would work compile just fine.
&gt; 
&gt; I don’t think that END macros should have comments in any normal
&gt; circumstances; they are going to be just a line or two down from the start
&gt; macros. Just as we wouldn’t want to comment every close brace with an
&gt; explanation of the open brace from a line or two above. Maybe occasionally a
&gt; comment would be needed for clarity but it seems unlikely.
&gt; 
&gt; I’m not at all concerned about compiling more push/pop pairs but maybe you
&gt; could show me an example of a specific case where that is bad and help me
&gt; understand why you are concerned about it.

I can&apos;t think of any issue that extra push/pop pairs would cause, other than maybe a negligible increase in compilation time (though it could be a decrease as we would be simplifying the macro), so I think I&apos;m just being overly cautious. I&apos;ll work on removing the argument to the _END() macros.
&gt; 
&gt; &gt;  - As Michael was pointing out, gcc warns if you try to ignore a warning it
&gt; &gt; does not know about, so at least some of the clang only warnings need to
&gt; &gt; remain that way.
&gt; 
&gt; That’s fine, but I believe the default should be the &quot;both&quot; version and the
&gt; unusual, longer-named, more-special version should be the single-compiler
&gt; only versions.
&gt; 
&gt; The goal of the compiler file is to create mostly compiler-independent
&gt; abstractions and one thing I don’t like about this is that we also support
&gt; the Windows compiler and these macros don’t help us ignore the corresponding
&gt; warnings on Windows in an elegant way. Not a problem in the short term, but
&gt; a problem with the design. Unless none of these warning concepts make sense
&gt; on Windows. But that seems unlikely.
&gt; 
&gt; There are some strange intersections here. The &quot;ignore deprecation&quot; warning
&gt; is Apple-platform-specific so that explains why it will never come up on
&gt; Windows, and that&apos;s more than half of the use of this.
&gt; 
&gt; &gt;  - We could change the gcc-only warnings to gcc or clang¸ since clang
&gt; &gt; provides __has_warning(). Would you like me to do that?
&gt; 
&gt; Generally speaking, yes I would, if there are a lot of these. But to be sure
&gt; I’d need some examples of specifics.
&gt; 
&gt; Our default should be cross-compiler things, and our compiler-specific
&gt; things should be treated as &quot;grudging complexities&quot;. The issue with GCC
&gt; complaining about unknown warnings is not just an issue for clang-specific
&gt; things, by the way, it’s an issue for multiple versions of GCC. If a new
&gt; version adds a new warning, we need to make the warning disabling apply only
&gt; under the newer compiler.
I feel like the case of a warning only existing in a subset of the gcc versions we support should be rare enough that we can leave with guarding the IGNORE_WARNING with a GCC_VERSION_AT_LEAST() in these cases.

All this considered, and to try to move forward, my proposal would be to have macros like this:

  IGNORE_WARNING_BEGIN(&quot;-Wfoo-bar&quot;)
  // some code
  IGNORE_WARNING_END

They would only expand to something on gcc or clang, and check __has_warning() when it is defined. I don&apos;t think it would make sense to try and expand them on MSVC as it expects a warning id number and not a string, so we don&apos;t have compatibility. And I will look at our current warning ignores and try to use this version wherever the warning exists on both compilers.

Then add similar pairs IGNORE_GCC_WARNING_BEGIN/END, IGNORE_CLANG_WARNING_BEGIN/END and IGNORE_MSVC_WARNING_BEGIN/END for warnings that are specific to these compilers.

Finally, as you suggested, add things like:
    ALLOW_DEPRECATED_DECLARATIONS_BEGIN
    ALLOW_DEPRECATED_DECLARATIONS_END
for the most common warnings. These could be implemented for MSVC as well, though I don&apos;t really know how to find the right msvc warning number for various situations, so I&apos;d rather leave that part for future implementation by a windows developer who has access to msvc. I don&apos;t even know if that would be useful, since looking at the code, it seems that the msvc&apos;s &quot;#pragma warning( disable: XXX)&quot; are often in different places from the warning ignores of gcc/clang.

What do you think of that proposal?

&gt; 
&gt; I’m not 100% sure that we should do -Wno-unknown-pragmas, by the way, since
&gt; that warning aspires to be a useful way to detect typos in pragmas and I
&gt; would love to do that even if it creates a bit of inconvenience for us. But
&gt; there may be no practical way to leave it on and support multiple compilers
&gt; and compiler versions elegantly. I don’t know why clang doesn’t offer a
&gt; similar warning.

I did some checking, and -Wno-unknown-pragmas does not change anything, you still get a warning if you do something like:
#pragma GCC diagnostic ignored &quot;-Wclang-specific-warning&quot;

We don&apos;t need to be worried about gcc warning about a &quot;#pragma clang ...&quot; since we can make sure the macros only emits the right kind of pragma for gcc when COMPILER(GCC) is defined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455080</commentid>
    <comment_count>26</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-08-29 18:06:13 -0700</bug_when>
    <thetext>(In reply to Guillaume Emont from comment #25)
&gt; These could be implemented for MSVC as well,
&gt; though I don&apos;t really know how to find the right msvc warning number for
&gt; various situations

Right, I am not suggesting that you preemptively implement these for MSVC. If a corresponding warning exists then we can do that later as needed.

&gt; What do you think of that proposal?

Sounds fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455245</commentid>
    <comment_count>27</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-08-30 09:35:28 -0700</bug_when>
    <thetext>In looking at the most common ignored warnings, -Wunknown-pragmas is high on the list, though almost all of its uses were introduced in r220577. It&apos;s unclear to me whether this could be replaced by using a __has_warning() check or there is another reason to ignore -Wunknown-pragmas here.
Adding Dan Bernstein in Cc in the hope that he can enlighten me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455501</commentid>
    <comment_count>28</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-08-30 18:28:29 -0700</bug_when>
    <thetext>I suggest you do a special purpose macro for the &quot;-Wunguarded-availability-new&quot; warning. You can use &quot;-Wunknown-pragmas&quot; in the implementation of it at first. Then remove it later if we figure out how to do it with __has_warning, but it won’t require visiting each call site.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455571</commentid>
    <comment_count>29</comment_count>
    <who name="">mitz</who>
    <bug_when>2018-08-30 22:36:20 -0700</bug_when>
    <thetext>(In reply to Guillaume Emont from comment #27)
&gt; In looking at the most common ignored warnings, -Wunknown-pragmas is high on
&gt; the list, though almost all of its uses were introduced in r220577. It&apos;s
&gt; unclear to me whether this could be replaced by using a __has_warning()
&gt; check or there is another reason to ignore -Wunknown-pragmas here.
&gt; Adding Dan Bernstein in Cc in the hope that he can enlighten me.

I don’t know whether __has_warning() could be used instead, which tells you that I didn’t consider it at the time, simply because I didn’t think to do so. If it works for other warning-ignoring in our codebase I don’t see a reason why it wouldn’t work for unguarded-availability-new.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455626</commentid>
    <comment_count>30</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-08-31 02:46:59 -0700</bug_when>
    <thetext>(In reply to mitz from comment #29)
&gt; (In reply to Guillaume Emont from comment #27)
&gt; &gt; In looking at the most common ignored warnings, -Wunknown-pragmas is high on
&gt; &gt; the list, though almost all of its uses were introduced in r220577. It&apos;s
&gt; &gt; unclear to me whether this could be replaced by using a __has_warning()
&gt; &gt; check or there is another reason to ignore -Wunknown-pragmas here.
&gt; &gt; Adding Dan Bernstein in Cc in the hope that he can enlighten me.
&gt; 
&gt; I don’t know whether __has_warning() could be used instead, which tells you
&gt; that I didn’t consider it at the time, simply because I didn’t think to do
&gt; so. If it works for other warning-ignoring in our codebase I don’t see a
&gt; reason why it wouldn’t work for unguarded-availability-new.

Ok, thanks for the information!

I couldn&apos;t figure out how to check that easily for older versions, but __has_warning() is supported from at least clang 3.1:
http://releases.llvm.org/3.1/tools/clang/docs/LanguageExtensions.html#__has_warning

It&apos;s not clear to me what is the earliest version of clang we support, but I imagine it is later than that, meaning we can safely rely on __has_warning() and don&apos;t need -Wunkown-pragmas for that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455994</commentid>
    <comment_count>31</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-09-01 19:39:51 -0700</bug_when>
    <thetext>I don’t happen to know what is the oldest version of clang we need to support either, but I do know that __has_warning is already used in JavaScriptCore and WebCore:

Source/JavaScriptCore/API/JSCallbackObject.h
Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructor.h
Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototype.h
Source/JavaScriptCore/runtime/Options.cpp
Source/WebKit/WebProcess/WebCoreSupport/WebAlternativeTextClient.h
Source/WebKitLegacy/mac/WebCoreSupport/WebAlternativeTextClient.h

So I’d say it’s safe to use it more without adverse effect on the WebKit project.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456193</commentid>
    <comment_count>32</comment_count>
      <attachid>348780</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-09-03 11:12:39 -0700</bug_when>
    <thetext>Created attachment 348780
Patch

New version that should address all the review comments. Let&apos;s see if it compiles for all platforms on EWS ;). It created no problem compiling the WPE port for x86_64 with both gcc and clang in release and debug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456196</commentid>
    <comment_count>33</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-09-03 11:16:56 -0700</bug_when>
    <thetext>Attachment 348780 did not pass style-queue:


ERROR: Source/WebCore/xml/XPathGrammar.cpp:2157:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/xml/XPathGrammar.cpp:2160:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 196 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>1456276</commentid>
    <comment_count>34</comment_count>
      <attachid>348808</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-09-04 02:03:22 -0700</bug_when>
    <thetext>Created attachment 348808
Patch

Added a missing #import to fix mac compilation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456277</commentid>
    <comment_count>35</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-09-04 02:06:56 -0700</bug_when>
    <thetext>Attachment 348808 did not pass style-queue:


ERROR: Source/WebCore/xml/XPathGrammar.cpp:2157:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/xml/XPathGrammar.cpp:2160:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 196 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>1456280</commentid>
    <comment_count>36</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-09-04 03:21:12 -0700</bug_when>
    <thetext>Ok, it seems to look like I&apos;m not supposed to use WTF stuff in WebKitLegacy/mac/History/WebHistory.h, so I&apos;m gonna revert my changes to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456287</commentid>
    <comment_count>37</comment_count>
      <attachid>348811</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-09-04 03:35:05 -0700</bug_when>
    <thetext>Created attachment 348811
Patch

Don&apos;t try to use WTF stuff in WebKitLegacy/mac/History/WebHistory.h any more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456288</commentid>
    <comment_count>38</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-09-04 03:38:24 -0700</bug_when>
    <thetext>Attachment 348811 did not pass style-queue:


ERROR: Source/WebCore/xml/XPathGrammar.cpp:2157:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/xml/XPathGrammar.cpp:2160:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 195 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>1456290</commentid>
    <comment_count>39</comment_count>
      <attachid>348812</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-09-04 05:05:01 -0700</bug_when>
    <thetext>Created attachment 348812
Patch

This new version should fix mac-32. A deprecated call was previously ignored because of an erroneous diagnostic push instead of pop, I added ALLOW_DEPRECATED_DECLARATIONS_BEGIN/END around a GetWindowRegion() call in WebKitLegacy/mac/Carbon/HIWebView.mm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456291</commentid>
    <comment_count>40</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-09-04 05:08:24 -0700</bug_when>
    <thetext>Attachment 348812 did not pass style-queue:


ERROR: Source/WebCore/xml/XPathGrammar.cpp:2157:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/xml/XPathGrammar.cpp:2160:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 195 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>1456706</commentid>
    <comment_count>41</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-09-05 07:59:57 -0700</bug_when>
    <thetext>Ping reviewer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457926</commentid>
    <comment_count>42</comment_count>
      <attachid>348812</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-09-08 14:24:49 -0700</bug_when>
    <thetext>Comment on attachment 348812
Patch

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

Patch looks like it was carefully done and I did not spot any mistakes.

I have some suggestions for tweaking the names of things.

&gt; Source/JavaScriptCore/API/JSCallbackObject.h:161
&gt; +    IGNORE_CLANG_WARNING_BEGIN(&quot;-Wundefined-var-template&quot;)

I think the macros should take arguments that are strings without the &quot;-W&quot; prefix, and the macros should add the &quot;-W&quot; prefix.

&gt; Source/JavaScriptCore/runtime/ConfigFile.cpp:494
&gt; +                IGNORE_GCC_WARNING_BEGIN(&quot;-Wstringop-truncation&quot;)

No need to use the &quot;GCC&quot; version here since it’s already inside #if COMPILER(GCC).

I personally prefer that we use the most exotic macro, then one with the longer name with the compiler check built in, only when it’s needed. Rather than always preferring it to help emphasize the fact that the warning is only for one compiler. We could choose either style.

&gt; Source/WTF/wtf/Assertions.cpp:82
&gt; -#pragma clang diagnostic push
&gt; -#pragma clang diagnostic ignored &quot;-Wdeprecated-declarations&quot;
&gt; +ALLOW_DEPRECATED_DECLARATIONS_BEGIN

This should be indented to match the code, rather than put at the far left to match where the #pragma was, to be consistent with the style you selected elsewhere. I think it’s a good style choice, and best to be consistent.

&gt; Source/WTF/wtf/Compiler.h:419
&gt; +#if !defined(IGNORE_GCC_WARNING_BEGIN) &amp;&amp; COMPILER(GCC)

If seems that we have extra #if !defined guards. Does someone need to override these macros with definitions done before including this source file? We could add that feature (allowing an override) later if we need it; I am pretty sure we don’t need it and I would prefer to omit the guards except in cases where we use them to avoid complex #else constructions.

&gt; Source/WTF/wtf/Compiler.h:446
&gt; +#define IGNORE_WARNING_BEGIN(warning)
&gt; +#define IGNORE_WARNING_END

I am not sure if &quot;ignore warning&quot; is better than &quot;ignore warnings&quot;. After all, it ignores one specific type of warning, but any number of occurrences of the code that would warn. I think I slightly prefer the term &quot;warnings&quot; for these macros.

Also might be better terminology to use the term &quot;suppress warnings&quot; rather than &quot;ignore warnings&quot;. Not totally sure about that one.

&gt; Source/WTF/wtf/Compiler.h:456
&gt; +#define ALLOW_NEW_API_BEGIN IGNORE_CLANG_WARNING_BEGIN(&quot;-Wunguarded-availability-new&quot;)
&gt; +#define ALLOW_NEW_API_END IGNORE_CLANG_WARNING_END

I’m not sure the phrase &quot;allow new API&quot; is quite specific enough. Maybe someone more familiar with the exact semantics can suggest a better name. Maybe it should be ALLOW_NEW_API_WITHOUT_GUARD_BEGIN?

&gt; Source/WTF/wtf/Compiler.h:461
&gt; +#define ALLOW_UNUSED_PARAMETER_BEGIN IGNORE_WARNING_BEGIN(&quot;-Wunused-parameter&quot;)
&gt; +#define ALLOW_UNUSED_PARAMETER_END IGNORE_WARNING_END

Seems like this should be &quot;allow unused parameters&quot; with an &quot;s&quot;.

&gt; Source/WTF/wtf/Compiler.h:471
&gt; +#define IGNORE_RETURN_TYPE_BEGIN IGNORE_WARNING_BEGIN(&quot;-Wreturn-type&quot;)
&gt; +#define IGNORE_RETURN_TYPE_END IGNORE_WARNING_END

The phrase &quot;ignore return type&quot; is not a correct description of the effect of suppressing this warning. This macro does not cause someone to ignore a return type. Maybe IGNORE_RETURN_TYPE_WARNINGS_BEGIN or ALLOW_DEFAULT_RETURN_TYPES_BEGIN?

&gt; Source/WTF/wtf/Compiler.h:476
&gt; +#define ALLOW_NULL_ARGUMENT_BEGIN IGNORE_WARNING_BEGIN(&quot;-Wnonnull&quot;)
&gt; +#define ALLOW_NULL_ARGUMENT_END IGNORE_WARNING_END

The phrase &quot;allow null argument&quot; is not a correct description of the effect of suppressing this warning. Perhaps ALLOW_NULL_CHECKS_ON_REFERENNCES_BEGIN? Or IGNORE_NULLITY_CHECK_WARNINGS_BEGIN? Or something else like that.

&gt; Source/WebCore/page/mac/EventHandlerMac.mm:617
&gt; -#pragma clang diagnostic push
&gt; -#pragma clang diagnostic ignored &quot;-Wdeprecated-declarations&quot;
&gt; +ALLOW_DEPRECATED_DECLARATIONS_BEGIN
&gt;                                    convertScreenToBase:[NSEvent mouseLocation]]
&gt; -#pragma clang diagnostic pop
&gt; +ALLOW_DEPRECATED_DECLARATIONS_END

Should indent this to match the code (&quot;fakeEvent =&quot;) rather than putting it on the far left margin for consistency I think.

Although this does point out that it’s independent of the code flow, and perhaps we should consider always putting it on far left (I think not, but maybe).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1458595</commentid>
    <comment_count>43</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-09-11 12:54:33 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #42)
&gt; &gt; Source/WTF/wtf/Compiler.h:419
&gt; &gt; +#if !defined(IGNORE_GCC_WARNING_BEGIN) &amp;&amp; COMPILER(GCC)
&gt; 
&gt; If seems that we have extra #if !defined guards. Does someone need to
&gt; override these macros with definitions done before including this source
&gt; file? We could add that feature (allowing an override) later if we need it;
&gt; I am pretty sure we don’t need it and I would prefer to omit the guards
&gt; except in cases where we use them to avoid complex #else constructions.

I used the if !defined() mainly to match the other macro definitions in the file, but I&apos;m not particularly attached to it, so I removed it in my new version. I left the ones in the other macro definitions though, should I remove them?

I also applied all your other suggestions. Thanks for the thoughtful review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1458604</commentid>
    <comment_count>44</comment_count>
      <attachid>349427</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-09-11 13:04:23 -0700</bug_when>
    <thetext>Created attachment 349427
Patch

New version applying Darin&apos;s latest suggestions, as well as replacing newly introduced pragmas after rebasing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1458611</commentid>
    <comment_count>45</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-09-11 13:09:17 -0700</bug_when>
    <thetext>Attachment 349427 did not pass style-queue:


ERROR: Source/WebCore/xml/XPathGrammar.cpp:2157:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/xml/XPathGrammar.cpp:2160:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 205 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>1458618</commentid>
    <comment_count>46</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-09-11 13:20:33 -0700</bug_when>
    <thetext>(In reply to Guillaume Emont from comment #43)
&gt; I used the if !defined() mainly to match the other macro definitions in the
&gt; file, but I&apos;m not particularly attached to it, so I removed it in my new
&gt; version. I left the ones in the other macro definitions though, should I
&gt; remove them?

Let&apos;s leave the unrelated macros unchanged in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1458620</commentid>
    <comment_count>47</comment_count>
      <attachid>349427</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-09-11 13:23:22 -0700</bug_when>
    <thetext>Comment on attachment 349427
Patch

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

I haven&apos;t reviewed every use of the macros, but the sampling of the changes I looked at seem good, and the macros themselves look good too, and have been extensively discussed here. I like! r=me

&gt; Source/WTF/wtf/Compiler.h:452
&gt; +#if !defined(ALLOW_DEPRECATED_DECLARATIONS_BEGIN)
&gt; +#define ALLOW_DEPRECATED_DECLARATIONS_BEGIN IGNORE_WARNINGS_BEGIN(&quot;deprecated-declarations&quot;)
&gt; +#define ALLOW_DEPRECATED_DECLARATIONS_END IGNORE_WARNINGS_END
&gt; +#endif

Please get rid of all the #if !defined() checks here too. They&apos;re not useful and just clutter the file. Nobody is going to be redefining these ever.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1458797</commentid>
    <comment_count>48</comment_count>
      <attachid>349427</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-09-11 17:24:49 -0700</bug_when>
    <thetext>Comment on attachment 349427
Patch

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

&gt; Source/WebKitLegacy/mac/History/WebHistory.h:134
&gt; -#pragma clang diagnostic push
&gt; -#pragma clang diagnostic ignored &quot;-Wdeprecated-declarations&quot;
&gt; +ALLOW_DEPRECATED_DECLARATIONS_BEGIN
&gt;  - (NSArray *)orderedItemsLastVisitedOnDay:(NSCalendarDate *)calendarDate;
&gt; -#pragma clang diagnostic pop
&gt; +ALLOW_DEPRECATED_DECLARATIONS_END
&gt;  #endif

We’ll need to omit this change because it’s in a public header that is part of macOS and iOS API and the content of such headers can’t depend on internal WebKit headers like Compiler.h.

I tried to find other instances of this and did not spot any.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1458917</commentid>
    <comment_count>49</comment_count>
      <attachid>349540</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-09-12 05:13:00 -0700</bug_when>
    <thetext>Created attachment 349540
Patch

Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1458918</commentid>
    <comment_count>50</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-09-12 05:16:04 -0700</bug_when>
    <thetext>Attachment 349540 did not pass style-queue:


ERROR: Source/WebCore/xml/XPathGrammar.cpp:2157:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/xml/XPathGrammar.cpp:2160:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 204 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>1458932</commentid>
    <comment_count>51</comment_count>
      <attachid>349540</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-09-12 07:42:26 -0700</bug_when>
    <thetext>Comment on attachment 349540
Patch

Be sure to use &apos;webkit-patch --no-review&apos; when keeping a previous review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1458938</commentid>
    <comment_count>52</comment_count>
      <attachid>349540</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-12 08:09:27 -0700</bug_when>
    <thetext>Comment on attachment 349540
Patch

Clearing flags on attachment: 349540

Committed r235935: &lt;https://trac.webkit.org/changeset/235935&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1458939</commentid>
    <comment_count>53</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-12 08:09:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1458940</commentid>
    <comment_count>54</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-12 08:10:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/44383630&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459147</commentid>
    <comment_count>55</comment_count>
      <attachid>349540</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-09-12 15:42:26 -0700</bug_when>
    <thetext>Comment on attachment 349540
Patch

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

&gt; Source/WebKitLegacy/mac/Carbon/HIWebView.mm:328
&gt; -#pragma clang diagnostic push
&gt; +        ALLOW_DEPRECATED_DECLARATIONS_END

This &quot;changing to what it ought to have been&quot; broke an internal build because there are deprecated things below it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459149</commentid>
    <comment_count>56</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-09-12 15:47:44 -0700</bug_when>
    <thetext>http://trac.webkit.org/r235957</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459315</commentid>
    <comment_count>57</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2018-09-13 03:34:01 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #56)
&gt; http://trac.webkit.org/r235957

Sorry about that, I made sure to add a pair of ALLOW_DEPRECATED_DECLARATIONS_BEGIN/_END further on so that it compiles on the EWS where this created a failure. By definition, I cannot see internal build failures, but I think the proper way to fix it is to add other pairs of ALLOW_DEPRECATED_DECLARATIONS_BEGIN/END around the lines that fail on that internal build, until it doesn&apos;t fail any more ;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459378</commentid>
    <comment_count>58</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-09-13 09:13:46 -0700</bug_when>
    <thetext>I agree.  Someone with a setup that can reproduce that build failure should do that.
I think this patch was a great improvement.  Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348180</attachid>
            <date>2018-08-27 11:56:35 -0700</date>
            <delta_ts>2018-08-28 08:51:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188996-20180827205633.patch</filename>
            <type>text/plain</type>
            <size>332054</size>
            <attacher name="Guillaume Emont">guijemont</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZDJhYzBiZmEwNjcxODA3MDdlMGE1YmI1YWFlNzRlZjJlYjNhZTYwLi5lYzNkOGI1MjMyNmRkMzVk
ODkyNzM3YTU0MGRiMTQxN2EwYjYyZWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09i
amVjdC5oOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLmM6CisgICAgICAgICogYXNzZW1i
bGVyL0xpbmtCdWZmZXIuaDoKKyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6ZmluYWxpemVDb2Rl
V2l0aERpc2Fzc2VtYmx5KToKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAg
ICAqIGIzL0IzT3Bjb2RlLmNwcDoKKyAgICAgICAgKiBiMy9CM1R5cGUuaDoKKyAgICAgICAgKiBi
My9CM1R5cGVNYXAuaDoKKyAgICAgICAgKiBiMy9CM1dpZHRoLmg6CisgICAgICAgICogYjMvYWly
L0FpckFyZy5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAqIGIzL2Fp
ci9BaXJDb2RlLmg6CisgICAgICAgICogYnl0ZWNvZGUvT3Bjb2RlLmg6CisgICAgICAgIChKU0M6
OnBhZE9wY29kZU5hbWUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU51bWJlcik6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1pc2MpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6
CisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBl
cnM6OmNhbGN1bGF0ZVBva2VPZmZzZXQpOgorICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6
CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTElu
dDo6c2xvd1BhdGhMb2dGKToKKyAgICAgICAgKiBydW50aW1lL0NvbmZpZ0ZpbGUuY3BwOgorICAg
ICAgICAoSlNDOjpDb25maWdGaWxlOjpjYW5vbmljYWxpemVQYXRocyk6CisgICAgICAgICogcnVu
dGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNw
cDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6c2V0QWxpYXNlZE9wdGlvbik6CisgICAgICAgICog
dG9vbHMvQ29kZVByb2ZpbGluZy5jcHA6CisgICAgICAgICogd2FzbS9XYXNtU2VjdGlvbnMuaDoK
KyAgICAgICAgKiB3YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weToKKwog
MjAxOC0wOC0yNCAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93c3RhcnQub3JnPgog
CiAgICAgICAgIFtKU0NdIEFycmF5LnByb3RvdHlwZS5yZXZlcnNlIG1vZGlmaWVzIEpTSW1tdXRh
YmxlQnV0dGVyZmx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCmluZGV4IGMyZjFlZmExOWZhNTg0NDZiODBkNjI0NGJkYmQ5NWFlZDkxYmFj
YTUuLjIyZjc0Y2YzZWVkYWE2N2E2ZWJjNjM5Njk2M2RlYmE2ZDM4YzhiZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjkgQEAKKzIwMTgtMDgtMjcgIEd1aWxsYXVtZSBFbW9udCAgPGd1aWplbW9udEBpZ2FsaWEu
Y29tPgorCisgICAgICAgIEFkZCBJR05PUkVfV0FSTklOR18uKiBtYWNyb3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk5NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuY3Bw
OgorICAgICAgICAqIHd0Zi9Bc3NlcnRpb25zLmg6CisgICAgICAgICogd3RmL0NvbXBpbGVyLmg6
CisgICAgICAgICogd3RmL01ENS5jcHA6CisgICAgICAgIChXVEY6Ok1ENTo6TUQ1KToKKyAgICAg
ICAgKFdURjo6TUQ1OjphZGRCeXRlcyk6CisgICAgICAgIChXVEY6Ok1ENTo6Y2hlY2tzdW0pOgor
ICAgICAgICAqIHd0Zi9QcmludFN0cmVhbS5jcHA6CisgICAgICAgIChXVEY6OlByaW50U3RyZWFt
OjpwcmludGZWYXJpYWJsZUZvcm1hdCk6CisgICAgICAgICogd3RmL1NIQTEuY3BwOgorICAgICAg
ICAoV1RGOjpTSEExOjpTSEExKToKKyAgICAgICAgKFdURjo6U0hBMTo6YWRkQnl0ZXMpOgorICAg
ICAgICAoV1RGOjpTSEExOjpjb21wdXRlSGFzaCk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0
aHJlYWRzLmNwcDoKKyAgICAgICAgKiB3dGYvVmVjdG9yLmg6CisgICAgICAgIChXVEY6OlZlY3Rv
ckJ1ZmZlcjo6ZW5kT2ZCdWZmZXIpOgorICAgICAgICAqIHd0Zi90ZXh0L1dURlN0cmluZy5jcHA6
CisgICAgICAgIChXVEY6OmNyZWF0ZVdpdGhGb3JtYXRBbmRBcmd1bWVudHMpOgorCiAyMDE4LTA4
LTI1ICBZdXN1a2UgU3V6dWtpICA8eXVzdWtlc3V6dWtpQHNsb3dzdGFydC5vcmc+CiAKICAgICAg
ICAgU2hyaW5rIHNpemUgb2YgWE1MSHR0cFJlcXVlc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YjM3ZjQ0M2Rh
YTk4YjgxODYyMTdlODI2ODhkNGYzZjE1MTQ0ZDkxLi40MzMyMzExNWIwZTFjOTBkMmFhOTYxNTVi
Nzc4NGI3N2I1NThkMjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMxIEBACisyMDE4LTA4LTI3
ICBHdWlsbGF1bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQg
SUdOT1JFX1dBUk5JTkdfLiogbWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODg5OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q0RhdGFDaGFubmVsSGFuZGxlci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6b3ZlcnJpZGVBdHRhY2htZW50UGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJZ25vcmVBdHRhY2htZW50IGNvbnN0
KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgcmVu
ZGVyV2lkZ2V0Q2hpbGRyZW5dKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIgY29udmVydFBvaW50VG9TY3JlZW5TcGFjZTpdKToKKyAgICAgICAgKC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgcm9sZV0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlciByb2xlRGVzY3JpcHRpb25dKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9X
ZWJTY3JpcHRPYmplY3QubW06CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19jbGFzcy5tbToK
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNDbGFzczo6ZmllbGROYW1lZCBjb25zdCk6Cisg
ICAgICAgICogY3J5cHRvL0NvbW1vbkNyeXB0b1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpnZXRDb21tb25DcnlwdG9EaWdlc3RBbGdvcml0aG0pOgorICAgICAgICAqIGNyeXB0by9t
YWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTU1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjplbmNy
eXB0QUVTX0dDTSk6CisgICAgICAgIChXZWJDb3JlOjpkZWN5cHRBRVNfR0NNKToKKyAgICAgICAg
KiBjcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6d3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkpOgorICAgICAgICAoV2ViQ29yZTo6dW53cmFw
U2VyaWFsaXplZENyeXB0b0tleSk6CisgICAgICAgICogY3NzL21ha2VTZWxlY3RvclBzZXVkb0Ns
YXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHk6CisgICAgICAgICogY3NzL21ha2VTZWxl
Y3RvclBzZXVkb0VsZW1lbnRzTWFwLnB5OgorICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9y
LmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL21hYy9FZGl0b3JNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjp0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpyZXBsYWNlTm9kZUZyb21QYXN0ZWJvYXJkKToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVu
dEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbmRGYWtl
RXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyk6CisgICAgICAgICogcGFnZS9tYWMvU2VydmljZXNP
dmVybGF5Q29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNv
bnRyb2xsZXI6OkhpZ2hsaWdodDo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0v
TG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmb3JtYXRMb2NhbGl6ZWRT
dHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcmVlbkRhdGE6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ2FtZXBh
ZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhJREdhbWVw
YWRQcm92aWRlcjo6c3RvcE1vbml0b3JpbmdJbnB1dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRGlz
cGxheTo6c2hhcmVkRGlzcGxheSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9n
YXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9ucyk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3Ry
ZWFtU2Vzc2lvbi5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25BVlN0cmVhbVNlc3Np
b246OnVwZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpzZXRDdXJyZW50VGV4dFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjayBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpzZXRTaG91bGREaXNhYmxlU2xlZXApOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OklHTk9SRV9X
QVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMubW06CisgICAgICAgICgtW1dlYkFWU2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lciBi
ZWdpbk9ic2VydmluZ1JlbmRlcmVyOl0pOgorICAgICAgICAoLVtXZWJBVlNhbXBsZUJ1ZmZlckVy
cm9yTGlzdGVuZXIgc3RvcE9ic2VydmluZ1JlbmRlcmVyOl0pOgorICAgICAgICAoLVtXZWJBVlNh
bXBsZUJ1ZmZlckVycm9yTGlzdGVuZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpj
aGFuZ2U6Y29udGV4dDpdKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjp0cmFja0RpZENoYW5nZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SUdOT1JF
X1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW06CisgICAgICAgIChQbGF0Zm9ybUNB
TGF5ZXI6OmRyYXdMYXllckNvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYXNj
YWRlOjpmb250Rm9yQ29tYmluaW5nQ2hhcmFjdGVyU2VxdWVuY2UgY29uc3QpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlRGVjb2RlckNHLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlRGVjb2RlckNHOjpjcmVhdGVGcmFtZUltYWdlQXRJbmRleCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaDoKKyAgICAgICAg
KElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zRm9yQ2hh
cmFjdGVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJY29uOjpJY29uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvUERGRG9jdW1lbnRJbWFnZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBERkRvY3Vt
ZW50SW1hZ2U6OmRyYXdQREZQYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
V2ViS2l0TlNJbWFnZUV4dHJhcy5tbToKKyAgICAgICAgKC1bTlNJbWFnZSBfd2ViX2xvY2tGb2N1
c1dpdGhEZXZpY2VTY2FsZUZhY3RvcjpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvRHJhZ0lt
YWdlSU9TLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpzY2FsZURyYWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVE
cmFnSW1hZ2VGb3JMaW5rKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTGVnYWN5TlNQYXN0ZWJv
YXJkVHlwZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3ND
b250ZXh0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0
OjpMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Q
YXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlRm9y
Q29weUFuZFBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRy
YWdBbmREcm9wKToKKyAgICAgICAgKFdlYkNvcmU6OnNldERyYWdJbWFnZUltcGwpOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6Omdsb2JhbFBvaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU1NMS2V5R2VuZXJh
dG9yTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxhdGZvcm1Db250ZW50c1RvU2NyZWVuIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtU2NyZWVuVG9Db250ZW50
cyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6ZHJhd0NlbGxGb2N1c1JpbmdXaXRoRnJhbWVBdFRpbWUpOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9XZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5tbToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvV2lkZ2V0TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpwYWludCk6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291
cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ0F1ZGlvTW9kdWxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29j
b2EubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZUNvY29hLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6cmVwb3J0RXJyb3JUb0NsaWVudCk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9jcmVhdGUtaHR0cC1oZWFkZXItbmFtZS10YWJsZToKKyAgICAgICAg
KiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHA6CisgICAgICAgICogdGVzdGluZy9Nb2Nr
TGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB4bWwvWFBhdGhHcmFtbWFyLmNw
cDoKKwogMjAxOC0wOC0yNyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAg
IFhNTEhUVFBSZXF1ZXN0LnNlbmQgZm9yIERvY3VtZW50IHNob3VsZCBoYXZlIHNhbWUgQ29udGVu
dC1UeXBlIHByb2Nlc3NpbmcgcnVsZXMgYXMgU3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBh
OWM0YmJjNWU3MzBlN2I4MjkwYjYwZTEwYzhhODExYTlkODA1YWZjLi5kOGVjODBhNzBjMGVlMGRk
YjNmYThiMzVkOTkzOWU3ZGFkNzNkZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MyBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+
CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvY3J5cHRvL2NvbW1vbmNyeXB0
by9DcnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwOgorICAgICAgICAoUEFMOjpDcnlwdG9EaWdl
c3Q6OmNyZWF0ZSk6CisgICAgICAgIChQQUw6OkNyeXB0b0RpZ2VzdDo6YWRkQnl0ZXMpOgorICAg
ICAgICAoUEFMOjpDcnlwdG9EaWdlc3Q6OmNvbXB1dGVIYXNoKToKKyAgICAgICAgKiBwYWwvc3Bp
L2NvY29hL0FWS2l0U1BJLmg6CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2
ZXJTUEkuaDoKKyAgICAgICAgKGluc2VjdXJlbHlVbmFyY2hpdmVPYmplY3RGcm9tRGF0YSk6Cisg
ICAgICAgICogcGFsL3NwaS9pb3MvTWVkaWFQbGF5ZXJTUEkuaDoKKyAgICAgICAgKiBwYWwvc3lz
dGVtL21hYy9Qb3B1cE1lbnUubW06CisgICAgICAgIChQQUw6OnBvcFVwTWVudSk6CisgICAgICAg
ICogcGFsL3N5c3RlbS9tYWMvV2ViUGFuZWwubW06CisgICAgICAgICgtW1dlYlBhbmVsIGluaXRd
KToKKwogMjAxOC0wOC0yNiAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAg
ICAgW0FwcGxlIFBheV0gSW50cm9kdWNlIG5ldyB2YWx1ZXMgZm9yIC1hcHBsZS1wYXktYnV0dG9u
LXR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggNTI0MzI3N2Y0ZGMwOWQ5MmI4ZDcyYTI5OWEzZGNlMmM5ZmIyYTA3
ZC4uNjZmNDQ4Zjg5M2ExMDFkNDIwMmI0ZmZiZjY3ZjQyNDgyMzJkOTEzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMTkgQEAKKzIwMTgtMDgtMjcgIEd1aWxsYXVtZSBFbW9udCAgPGd1aWplbW9udEBp
Z2FsaWEuY29tPgorCisgICAgICAgIEFkZCBJR05PUkVfV0FSTklOR18uKiBtYWNyb3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk5NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtEYXRhVGFza0NvY29hOjpzdGF0ZWxlc3NDb29raWVTdG9yYWdlKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TeW5jQWxsQ29va2llcyk6CisgICAgICAgICogUGx1
Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6YmVn
aW5Nb2RhbCk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0u
bW06CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1
bGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbk1vZHVsZTo6dHJ5TG9hZCk6
CisgICAgICAgICogU2hhcmVkL2lvcy9DaGlsZFByb2Nlc3NJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OkNoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAgICAgICAqIFNoYXJlZC9t
YWMvQ2hpbGRQcm9jZXNzTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojpjb21waWxlQW5kQXBwbHlT
YW5kYm94U2xvd0Nhc2UpOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEubW06
CisgICAgICAgIChXZWJLaXQ6OkNvbG9yU3BhY2VEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6U2FuZGJv
eEV4dGVuc2lvbkltcGw6OnNhbmRib3hFeHRlbnNpb25Gb3JUeXBlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF93ZWJf
c3VwZXJBY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3UnVuQXNN
b2RhbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAo
LVtXS1ZpZXcgX3dlYl9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvRG93bmxvYWRDbGllbnQubW06CisgICAgICAgIChXZWJLaXQ6
OkRvd25sb2FkQ2xpZW50OjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNs
aWVudC5tbToKKyAgICAgICAgKC1bV0tDdXN0b21Qcm90b2NvbExvYWRlciBpbml0V2l0aExlZ2Fj
eUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5OmN1c3RvbVByb3RvY29sSUQ6cmVxdWVzdDpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tOgorICAgICAgICAo
V2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
Lm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpDb250ZXh0TWVudUNsaWVudDo6bWVu
dUZyb21Qcm9wb3NlZE1lbnUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1J
bml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tOgorICAgICAgICAoLVtXS1RleHRMaXN0VG91Y2hCYXJWaWV3Q29udHJvbGxlciBpbml0
V2l0aFdlYlZpZXdJbXBsOl0pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRl
V2luZG93QW5kVmlld0ZyYW1lcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZW5k
RHJhZ0VuZFRvUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzdGFydERyYWcp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y2hhcmFjdGVySW5kZXhGb3JQb2ludCk6
CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5t
bToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpnZXRQbHVnaW5Qcm9jZXNz
U2VyaWFsTnVtYmVyKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjptYWtl
UGx1Z2luUHJvY2Vzc1RoZUZyb250UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblBy
b2Nlc3NQcm94eTo6bWFrZVVJUHJvY2Vzc1RoZUZyb250UHJvY2Vzcyk6CisgICAgICAgIChXZWJL
aXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbToKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLTGVnYWN5UERGVmlldy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLUERG
UGFnZU51bWJlckluZGljYXRvci5tbToKKyAgICAgICAgKC1bV0tQREZQYWdlTnVtYmVySW5kaWNh
dG9yIF9tYWtlUm91bmRlZENvcm5lcnNdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1z
L1dLQWlyUGxheVJvdXRlUGlja2VyLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMv
V0tGaWxlVXBsb2FkUGFuZWwubW06CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9wcmVz
ZW50UG9wb3ZlcldpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6YW5pbWF0ZWQ6XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Db2xvckNvbnRyb2wubW06CisgICAgICAgICgt
W1dLQ29sb3JQb3BvdmVyIGluaXRXaXRoVmlldzpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L2Zvcm1zL1dLRm9ybUlucHV0Q29udHJvbC5tbToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBvcG92
ZXIgaW5pdFdpdGhWaWV3OmRhdGVQaWNrZXJNb2RlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvZm9ybXMvV0tGb3JtUG9wb3Zlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMv
V0tGb3JtUG9wb3Zlci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVNl
bGVjdFBvcG92ZXIubW06CisgICAgICAgICgtW1dLU2VsZWN0UG9wb3ZlciBpbml0V2l0aFZpZXc6
aGFzR3JvdXBzOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMu
bW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzY3JlZW5Ub1Jvb3RWaWV3KToK
KyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJvb3RWaWV3VG9TY3JlZW4pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbToKKyAg
ICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBlbnRlckZ1bGxTY3JlZW46XSk6
CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZmluaXNoZWRFbnRlckZ1
bGxTY3JlZW5BbmltYXRpb246XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIgZXhpdEZ1bGxTY3JlZW5dKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlciBiZWdhbkV4aXRGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTpmaW5hbEZyYW1lOl0p
OgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGZpbmlzaGVkRXhpdEZ1
bGxTY3JlZW5BbmltYXRpb246XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIgY29tcGxldGVGaW5pc2hFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbkFmdGVyUmVwYWludF0p
OgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIF9zdGFydEVudGVyRnVs
bFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciBfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlv
bjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tOgorICAgICAg
ICAoLVtXS1ByaW50aW5nVmlldyBfc2V0QXV0b2Rpc3BsYXk6XSk6CisgICAgICAgICgtW1dLUHJp
bnRpbmdWaWV3IF9kcmF3UERGRG9jdW1lbnQ6cGFnZTphdFBvaW50Ol0pOgorICAgICAgICAoLVtX
S1ByaW50aW5nVmlldyBfZHJhd1ByZXZpZXc6XSk6CisgICAgICAgICgtW1dLUHJpbnRpbmdWaWV3
IGRyYXdSZWN0Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tUZXh0SW5wdXRXaW5kb3dD
b250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS1RleHRJbnB1dFBhbmVsIF9pbnRlcnByZXRLZXlF
dmVudDp1c2luZ0xlZ2FjeUNvY29hVGV4dElucHV0OnN0cmluZzpdKToKKyAgICAgICAgKC1bV0tU
ZXh0SW5wdXRQYW5lbCBfaGFzTWFya2VkVGV4dF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
V2ViUG9wdXBNZW51UHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVBy
b3h5TWFjOjpzaG93UG9wdXBNZW51KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojppbml0aWFs
aXplRXZlbnRSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6c2VuZENv
bXBsZXhUZXh0SW5wdXQpOgorICAgICAgICAoV2ViS2l0OjptYWtlQ0dMUHJlc2VudExheWVyT3Bh
cXVlKToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW46Om51bGxFdmVudFRpbWVyRmly
ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAg
ICAgICAoLVtXS1BERlBsdWdpbkFjY2Vzc2liaWxpdHlPYmplY3QgYWNjZXNzaWJpbGl0eUZvY3Vz
ZWRVSUVsZW1lbnRdKToKKyAgICAgICAgKC1bV0tQREZMYXllckNvbnRyb2xsZXJEZWxlZ2F0ZSB3
cml0ZUl0ZW1zVG9QYXN0ZWJvYXJkOndpdGhUeXBlczpdKToKKyAgICAgICAgKFdlYktpdDo6UERG
UGx1Z2luOjpoYW5kbGVFZGl0aW5nQ29tbWFuZCk6CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdp
bjo6c2V0QWN0aXZlQW5ub3RhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OiBjb25zdCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0
aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uOjpjcmVh
dGVBbm5vdGF0aW9uRWxlbWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9Q
REZQbHVnaW5UZXh0QW5ub3RhdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdp
blRleHRBbm5vdGF0aW9uOjpjcmVhdGVBbm5vdGF0aW9uRWxlbWVudCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0SW1hZ2VUb0JpdG1hcCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkRyYWdDbGllbnQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAgICAgICAg
KFdlYktpdDo6ZHJhd1BERlBhZ2UpOgorCiAyMDE4LTA4LTI2ICBTYW0gV2VpbmlnICA8c2FtQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgVXNpbmcgX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlIHdpdGgg
YSBwcm90b2NvbCB0aGF0IGluaGVyaXRzIGZyb20gYSBub24tTlNPYmplY3QgcHJvdG9jb2wgY3Jh
c2hlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGIyOGYzYjQ4MmI3YWIyYzQxMjQz
ZmM5MTU4ZjYwMDMyZjlmNzVhODQuLjJjNzc3MmY3NDU3NWEyYzI5MmI3MWFmN2Q0NTNlMzBlZmIx
NjIxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMzQgQEAKKzIw
MTgtMDgtMjcgIEd1aWxsYXVtZSBFbW9udCAgPGd1aWplbW9udEBpZ2FsaWEuY29tPgorCisgICAg
ICAgIEFkZCBJR05PUkVfV0FSTklOR18uKiBtYWNyb3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvblV0aWxzLm06CisgICAgICAg
IChQb29sQ2xlYW5lcik6CisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW06
CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJib25XaW5kb3dSZWY6
dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6CisgICAgICAgICgtW0Nh
cmJvbldpbmRvd0FkYXB0ZXIgc2V0Vmlld3NOZWVkRGlzcGxheTpdKToKKyAgICAgICAgKC1bQ2Fy
Ym9uV2luZG93QWRhcHRlciByZWNvbmNpbGVUb0NhcmJvbldpbmRvd0JvdW5kc10pOgorICAgICAg
ICAoLVtDYXJib25XaW5kb3dBZGFwdGVyIF90ZXJtV2luZG93SWZPd25lcl0pOgorICAgICAgICAo
LVtDYXJib25XaW5kb3dBZGFwdGVyIF93aW5kb3dNb3ZlZFRvUmVjdDpdKToKKyAgICAgICAgKC1b
Q2FyYm9uV2luZG93QWRhcHRlciBzZXRDb250ZW50VmlldzpdKToKKyAgICAgICAgKC1bQ2FyYm9u
V2luZG93QWRhcHRlciBfaGFuZGxlUm9vdEJvdW5kc0NoYW5nZWRdKToKKyAgICAgICAgKC1bQ2Fy
Ym9uV2luZG93QWRhcHRlciBfaGFuZGxlQ29udGVudEJvdW5kc0NoYW5nZWRdKToKKyAgICAgICAg
KiBDYXJib24vQ2FyYm9uV2luZG93RnJhbWUubToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93RnJh
bWUgdGl0bGVdKToKKyAgICAgICAgKiBDYXJib24vSElWaWV3QWRhcHRlci5tOgorICAgICAgICAo
K1tISVZpZXdBZGFwdGVyIGdldEhJVmlld0Zvck5TVmlldzpdKToKKyAgICAgICAgKiBDYXJib24v
SElXZWJWaWV3Lm1tOgorICAgICAgICAob3ZlcnJpZGVDR0NvbnRleHQpOgorICAgICAgICAocmVz
dG9yZUNHQ29udGV4dCk6CisgICAgICAgIChEcmF3KToKKyAgICAgICAgKiBET00vRE9NLm1tOgor
ICAgICAgICAqIEhpc3RvcnkvV2ViSGlzdG9yeS5oOgorICAgICAgICAqIEhpc3RvcnkvV2ViSGlz
dG9yeS5tbToKKyAgICAgICAgKC1bV2ViSGlzdG9yeVByaXZhdGUgbG9hZEhpc3RvcnlHdXRzRnJv
bVVSTDpzYXZlZEl0ZW1zQ291bnQ6Y29sbGVjdERpc2NhcmRlZEl0ZW1zSW50bzplcnJvcjpdKToK
KyAgICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tOgorICAgICAgICAoLVtXZWJIaXN0
b3J5SXRlbSBpY29uXSk6CisgICAgICAgICogTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5tbToK
KyAgICAgICAgKC1bTlNTdHJpbmcgX3dlYl9kcmF3QXRQb2ludDpmb250OnRleHRDb2xvcjpdKToK
KyAgICAgICAgKiBNaXNjL1dlYk5TSW1hZ2VFeHRyYXMubToKKyAgICAgICAgKC1bTlNJbWFnZSBf
d2ViX3NjYWxlVG9NYXhTaXplOl0pOgorICAgICAgICAoLVtOU0ltYWdlIF93ZWJfZGlzc29sdmVU
b0ZyYWN0aW9uOl0pOgorICAgICAgICAqIE1pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tOgor
ICAgICAgICAoK1tOU1Bhc3RlYm9hcmQgX3dlYl9zZXRGaW5kUGFzdGVib2FyZFN0cmluZzp3aXRo
T3duZXI6XSk6CisgICAgICAgICgtW05TUGFzdGVib2FyZCBfd2ViX2RlY2xhcmVBbmRXcml0ZURy
YWdJbWFnZUZvckVsZW1lbnQ6VVJMOnRpdGxlOmFyY2hpdmU6c291cmNlOl0pOgorICAgICAgICAq
IFBhbmVscy9XZWJBdXRoZW50aWNhdGlvblBhbmVsLm06CisgICAgICAgICgtW1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwgbG9hZE5pYl0pOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBl
UGx1Z2luSG9zdE1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSG9z
dE1hbmFnZXI6OnNwYXduUGx1Z2luSG9zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1
Z2luSG9zdE1hbmFnZXI6OmRpZENyZWF0ZVdpbmRvdyk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBl
UGx1Z2luSG9zdFByb3h5OjptYWtlQ3VycmVudFByb2Nlc3NGcm9udFByb2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6bWFrZVBsdWdpbkhvc3RQcm9jZXNz
RnJvbnRQcm9jZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Ib3N0
UHJveHk6OmlzUGx1Z2luSG9zdFByb2Nlc3NGcm9udFByb2Nlc3MgY29uc3QpOgorICAgICAgICAq
IFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbToKKyAgICAgICAg
KFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Ojptb3VzZUV2ZW50KToKKyAgICAg
ICAgKiBQbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAg
ICAgICgtW1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldyBkcmF3UmVjdDpdKToKKyAgICAgICAg
KiBQbHVnaW5zL0hvc3RlZC9XZWJUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm06CisgICAgICAg
ICgtW1dlYlRleHRJbnB1dFBhbmVsIF9pbnRlcnByZXRLZXlFdmVudDpzdHJpbmc6XSk6CisgICAg
ICAgICogUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoLVtX
ZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3IGNvbnZlcnRGcm9tWDphbmRZOnNwYWNlOnRvWDphbmRZ
OnNwYWNlOl0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLm1t
OgorICAgICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpblBhY2thZ2UgX3RyeUxvYWRdKToKKyAgICAg
ICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViTmV0
c2NhcGVQbHVnaW5WaWV3IHNhdmVBbmRTZXROZXdQb3J0U3RhdGVGb3JVcGRhdGU6XSk6CisgICAg
ICAgICgtW1dlYk5ldHNjYXBlUGx1Z2luVmlldyBzZW5kRHJhd1JlY3RFdmVudDpdKToKKyAgICAg
ICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5WaWV3IGRyYXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdp
bnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYktpdF9UU1VwZGF0ZUNoZWNr
X2FsZXJ0RGlkRW5kX3JldHVybkNvZGVfY29udGV4dEluZm9fKToKKyAgICAgICAgKFdlYktpdF9O
U0FsZXJ0X2JlZ2luU2hlZXRNb2RhbEZvcldpbmRvd19tb2RhbERlbGVnYXRlX2RpZEVuZFNlbGVj
dG9yX2NvbnRleHRJbmZvXyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFj
Lm1tOgorICAgICAgICAoUG9wdXBNZW51TWFjOjpwb3B1bGF0ZSk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViRHJhZ0NsaWVudC5tbToKKyAgICAgICAgKFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJh
Zyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06Cisg
ICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rv
d25sb2FkKToKKyAgICAgICAgKHdlYkdldE5TSW1hZ2UpOgorICAgICAgICAqIFdlYkluc3BlY3Rv
ci9XZWJOb2RlSGlnaGxpZ2h0Lm1tOgorICAgICAgICAqIFdlYkluc3BlY3Rvci9XZWJOb2RlSGln
aGxpZ2h0Vmlldy5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hsaWdodFZpZXcgZHJhd1JlY3Q6
XSk6CisgICAgICAgICogV2ViVmlldy9XZWJDbGlwVmlldy5tbToKKyAgICAgICAgKC1bV2ViQ2xp
cFZpZXcgaW5pdFdpdGhGcmFtZTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgor
ICAgICAgICAoLVtXZWJGcmFtZSBfdXBkYXRlQmFja2dyb3VuZEFuZFVwZGF0ZXNXaGlsZU9mZnNj
cmVlbl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBfZHJhd1JlY3Q6Y29udGVudHNPbmx5Ol0pOgor
ICAgICAgICAoLVtXZWJGcmFtZSBhY2Nlc3NpYmlsaXR5Um9vdF0pOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dlYkZ1bGxTY3JlZW5D
b250cm9sbGVyIGVudGVyRnVsbFNjcmVlbjpdKToKKyAgICAgICAgKC1bV2ViRnVsbFNjcmVlbkNv
bnRyb2xsZXIgZmluaXNoZWRFbnRlckZ1bGxTY3JlZW5BbmltYXRpb246XSk6CisgICAgICAgICgt
W1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyIGV4aXRGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dl
YkZ1bGxTY3JlZW5Db250cm9sbGVyIGZpbmlzaGVkRXhpdEZ1bGxTY3JlZW5BbmltYXRpb246XSk6
CisgICAgICAgICgtW1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyIF9zdGFydEVudGVyRnVsbFNjcmVl
bkFuaW1hdGlvbldpdGhEdXJhdGlvbjpdKToKKyAgICAgICAgKC1bV2ViRnVsbFNjcmVlbkNvbnRy
b2xsZXIgX3N0YXJ0RXhpdEZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246XSk6CisgICAg
ICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bTlNXaW5kb3cgX3dlYl9i
b3JkZXJWaWV3XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRo
RmFrZUV2ZW50XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9zZXRBc2lkZVN1YnZpZXdzXSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9hdXRvc2Nyb2xsXSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IGRyYXdSZWN0Ol0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBtb3VzZURvd246XSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IG1vdXNlRHJhZ2dlZDpdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgbW91c2VVcDpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2VuZFByaW50TW9k
ZUFuZFJlc3RvcmVXaW5kb3dBdXRvZGlzcGxheV0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBr
bm93c1BhZ2VSYW5nZTpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgYWNjZXNzaWJpbGl0eUhp
dFRlc3Q6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9mb250QXR0cmlidXRlc0Zyb21Gb250
UGFzdGVib2FyZF0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfY29sb3JBc1N0cmluZzpdKToK
KyAgICAgICAgKC1bV2ViSFRNTFZpZXcgY29weUZvbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxW
aWV3IF9leGVjdXRlU2F2ZWRLZXlwcmVzc0NvbW1hbmRzXSk6CisgICAgICAgICgtW1dlYkhUTUxW
aWV3IGF0dGFjaFJvb3RMYXllcjpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgdGV4dFN0b3Jh
Z2VdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3VwZGF0ZVNlbGVjdGlvbkZvcklucHV0TWFu
YWdlcl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tbToKKyAgICAgICAgKF9hcHBs
aWNhdGlvbkluZm9Gb3JNSU1FVHlwZSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgY2VudGVyU2Vs
ZWN0aW9uSW5WaXNpYmxlQXJlYTpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBfcmVjdXJzaXZl
RGlzcGxheVJlY3RJZk5lZWRlZElnbm9yaW5nT3BhY2l0eTppc1Zpc2libGVSZWN0OnJlY3RJc1Zp
c2libGVSZWN0Rm9yVmlldzp0b3BWaWV3Ol0pOgorICAgICAgICAoLVtXZWJQREZWaWV3IF9yZWN1
cnNpdmVEaXNwbGF5QWxsRGlydHlXaXRoTG9ja0ZvY3VzOnZpc1JlY3Q6XSk6CisgICAgICAgICgt
W1dlYlBERlZpZXcgX3JlY3Vyc2l2ZTpkaXNwbGF5UmVjdElnbm9yaW5nT3BhY2l0eTppbkNvbnRl
eHQ6dG9wVmlldzpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBzZWFyY2hGb3I6ZGlyZWN0aW9u
OmNhc2VTZW5zaXRpdmU6d3JhcDpzdGFydEluU2VsZWN0aW9uOl0pOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0Q29t
cGxldGlvbkNvbnRyb2xsZXIgX2J1aWxkVUldKToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRp
b25Db250cm9sbGVyIF9wbGFjZVBvcHVwV2luZG93Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
VmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW06CisgICAgICAgIChjcmVhdGVNZWRpYVVJ
QmFja2dyb3VuZFZpZXcpOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV2ViVGV4dExpc3RUb3VjaEJhclZpZXdDb250cm9sbGVyIGluaXRXaXRoV2ViVmlldzpdKToK
KyAgICAgICAgKC1bV2ViVmlldyBfZGlzcGF0Y2hUaWxlRGlkRHJhdzpdKToKKyAgICAgICAgKC1b
V2ViVmlldyBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAgICgtW1dlYlZpZXcgbWFpbkZyYW1l
SWNvbl0pOgorICAgICAgICAoTGF5ZXJGbHVzaENvbnRyb2xsZXI6OmZsdXNoTGF5ZXJzKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYldpbmRvd0FuaW1hdGlvbi5tbToKKyAgICAgICAgKHNldFNjYWxl
ZEZyYW1lRm9yV2luZG93KToKKwogMjAxOC0wOC0yNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBQYXNzIGluIElzQ29tcG9zZWQgZmxhZyB0byBFdmVudCBjb25z
dHJ1Y3RvcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFj
a09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgK
aW5kZXggMTYzNjQ2OTYzODlkZWM5MGUwNTBlZDIwMDBlYWU3MmMxZDc5MjEzYS4uYTY1MDU1ZDg0
OTBiNmY2NDNhYzNhZmYyOTUwMzhiYmRjMzNiZGEyMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE1OCwxOCArMTU4LDkgQEAgcHVibGljOgog
ICAgIHZvaWQqIGdldFByaXZhdGUoKTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZml4IHRo
ZSB3YXJuaW5ncyBmb3IgZXh0ZXJuLXRlbXBsYXRlIGluIEpTT2JqZWN0IHRlbXBsYXRlIGNsYXNz
ZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5NzkKLSNpZiBD
T01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3VuZGVmaW5lZC12YXItdGVtcGxh
dGUiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiCi0jZW5kaWYKLSNlbmRpZgor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmRlZmluZWQtdmFyLXRlbXBs
YXRlIikKICAgICBERUNMQVJFX0lORk87Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jaWYgX19oYXNf
d2FybmluZygiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKLSNlbmRpZgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xF
VkVMX0VORCgiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKIAogICAgIEpTQ2xhc3NSZWYgY2xh
c3NSZWYoKSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNrT2JqZWN0RGF0YS0+anNDbGFzczsgfQog
ICAgIGJvb2wgaW5oZXJpdHMoSlNDbGFzc1JlZikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvdGVzdGFwaS5jCmluZGV4IDNmYzg2MTIxOWEzMDg0NWFhOGJlODY0NDYwNThh
ZmIzZjYyMDdhZDkuLjE3ZGY4ODgxODIxZjdjY2QyMTM1OGI4MzVlOGI5YjliNDE4N2RhMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCkBAIC0xMTQwLDEwICsx
MTQwLDcgQEAgc3RhdGljIGJvb2wgZ2xvYmFsQ29udGV4dE5hbWVUZXN0KCkKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLWJ1dC1zZXQtdmFy
aWFibGUiCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUwoIi1XdW51c2VkLWJ1
dC1zZXQtdmFyaWFibGUiKTsKIHN0YXRpYyB2b2lkIGNoZWNrQ29uc3RuZXNzSW5KU09iamVjdE5h
bWVzKCkKIHsKICAgICBKU1N0YXRpY0Z1bmN0aW9uIGZ1bjsKQEAgLTExNTEsOSArMTE0OCw3IEBA
IHN0YXRpYyB2b2lkIGNoZWNrQ29uc3RuZXNzSW5KU09iamVjdE5hbWVzKCkKICAgICBKU1N0YXRp
Y1ZhbHVlIHZhbDsKICAgICB2YWwubmFtZSA9ICJzb21ldGhpbmciOwogfQotI2lmIENPTVBJTEVS
KEdDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5H
X0dDQ19UT1BfTEVWRUxfRU5EKCItV3VudXNlZC1idXQtc2V0LXZhcmlhYmxlIik7CiAKICNpZmRl
ZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTGlua0J1ZmZlci5oCmluZGV4IDU1OTkwOGFkZDAzZGUyMTVhYTYwYWY3MjgwOWZhMzNl
MWM5ZDk3YTkuLjMzNmFmMzdjMDQ5NDIxMzA0NDU5ODBkZDE3OWY3ZTNiYzUzMTc5NzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCkBAIC0yNjMsMTUg
KzI2MywxMSBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8UHRyVGFnIHRhZywgdHlwZW5hbWUuLi4g
QXJncz4KICAgICBDb2RlUmVmPHRhZz4gZmluYWxpemVDb2RlV2l0aERpc2Fzc2VtYmx5KGNvbnN0
IGNoYXIqIGZvcm1hdCwgQXJncy4uLiBhcmdzKQogICAgIHsKLSNpZiBDT01QSUxFUihHQ0NfT1Jf
Q0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdmb3JtYXQtc2VjdXJpdHkiCi0jZW5kaWYKKyAgICAgICAgSUdOT1JFX1dBUk5J
TkdfR0NDX09SX0NMQU5HKCItV2Zvcm1hdC1ub25saXRlcmFsIik7CisgICAgICAgIElHTk9SRV9X
QVJOSU5HX0dDQ19PUl9DTEFORygiLVdmb3JtYXQtc2VjdXJpdHkiKTsKICAgICAgICAgcmV0dXJu
IGZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJseUltcGwoZm9ybWF0LCBhcmdzLi4uKS50ZW1wbGF0
ZSByZXRhZ2dlZDx0YWc+KCk7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgICAgICBJR05PUkVfV0FSTklOR19HQ0NfT1Jf
Q0xBTkdfRU5EKCItV2Zvcm1hdC1zZWN1cml0eSIpOworICAgICAgICBJR05PUkVfV0FSTklOR19H
Q0NfT1JfQ0xBTkdfRU5EKCItV2Zvcm1hdC1ub25saXRlcmFsIik7CiAgICAgfQogCiAgICAgdGVt
cGxhdGU8UHRyVGFnIHRhZz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0xvd2VyVG9BaXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5j
cHAKaW5kZXggMmNkYjcyNDNkMzRlMjdlNTc2MWM5MzQ5MzVjZTU1MTgxNGQ1YjYyYS4uNWNjMDUy
NTMzYjQwNjMxYzBiMTYzNTk3NGJhZWY5ZWY5OGFlZTFlOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKQEAgLTYyLDEwICs2Miw5IEBACiAjaW5jbHVkZSA8d3Rm
L0luZGV4U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAKLSNpZiBDT01QSUxFUihH
Q0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0dXJuLXR5cGUiCi0jZW5kaWYgLy8gQ09N
UElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9S
RV9XQVJOSU5HX0dDQ19UT1BfTEVWRUwoIi1XcmV0dXJuLXR5cGUiKQorI2VuZGlmCiAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCkBAIC0zNTI3LDggKzM1MjYsOCBAQCB2b2lkIGxv
d2VyVG9BaXIoUHJvY2VkdXJlJiBwcm9jZWR1cmUpCiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpC
MwogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQK
KyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKCIt
V3JldHVybi10eXBlIikKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCmluZGV4IDdlYmY2NmI3MGE0NTBjOTJhZTE1NDlk
NTI2NGJjOTkwZGExYmVjMTQuLjcyOGFkNzRkZTU3YTA0NDQ1YjdkNWU1NTU1YzdmYWQwMGViMTk4
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcApAQCAtMzAsMTAgKzMwLDkg
QEAKIAogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogCi0jaWYgQ09NUElMRVIoR0NDKSAm
JiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2VuZGlmIC8vIENPTVBJTEVS
KEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfV0FS
TklOR19HQ0NfVE9QX0xFVkVMKCItV3JldHVybi10eXBlIikKKyNlbmRpZgogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIEIzIHsKIApAQCAtMzczLDggKzM3Miw4IEBAIHZvaWQgcHJpbnRJbnRl
cm5hbChQcmludFN0cmVhbSYgb3V0LCBPcGNvZGUgb3Bjb2RlKQogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBk
aWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVE
CisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMX0VORCgi
LVdyZXR1cm4tdHlwZSIpCisjZW5kaWYKIAogI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNUeXBlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNUeXBlLmgKaW5kZXggNGNlYWE4YTFkZjE0YjhiNmI2OGUwZTgwYmZlYjZh
OWUwYTJkOGU4Mi4uOWYzMjFkOTM4YTllMTgzNGZkNzJlYTk1M2Y0MTE2MjZkOGFkNTMxMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVHlwZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1R5cGUuaApAQCAtMzAsMTAgKzMwLDkgQEAKICNpbmNsdWRlICJC
M0NvbW1vbi5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAotI2lmIENPTVBJTEVS
KEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBD
T01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdO
T1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTCgiLVdyZXR1cm4tdHlwZSIpCisjZW5kaWYKIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTg3LDggKzg2LDggQEAgdm9pZCBwcmlu
dEludGVybmFsKFByaW50U3RyZWFtJiwgSlNDOjpCMzo6VHlwZSk7CiAKIH0gLy8gbmFtZXNwYWNl
IFdURgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJM
RUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5E
KCItV3JldHVybi10eXBlIikKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGVNYXAuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1R5cGVNYXAuaAppbmRleCBjMGVhNDEzMDQ4YTU1NTZmNWRjMzQ1
OGQzODQwZTVmYjViOTlkNmQxLi5jZjE4NDNhOGJmMTAyNzU1Zjg3NTc4NmMwMjEwNmYxMWM5MGFm
YTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNUeXBlTWFwLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVHlwZU1hcC5oCkBAIC0zMCwxMCArMzAsOSBA
QAogI2luY2x1ZGUgIkIzVHlwZS5oIgogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogCi0j
aWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgot
I2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJ
U0FCTEVECitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMKCItV3JldHVybi10eXBlIikKKyNl
bmRpZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIApAQCAtMTAxLDggKzEwMCw4
IEBAIHByaXZhdGU6CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwogCi0jaWYgQ09NUElMRVIo
R0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5k
aWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJM
RUQKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKCItV3JldHVybi10eXBlIikKKyNl
bmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1dpZHRoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNXaWR0
aC5oCmluZGV4IGUzNjU4M2Y2OTRiODgzZmIyYjg4OWQwMTMxMDgzNGEwNTMxY2ZjNDcuLjk4OTU4
MzZiMzI3YTQyZWJhYzIyZDIyZGZjMTYzYzJlZjMxMzM1NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1dpZHRoLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzV2lkdGguaApAQCAtMzAsMTAgKzMwLDkgQEAKICNpbmNsdWRlICJCM0JhbmsuaCIKICNpbmNs
dWRlICJCM1R5cGUuaCIKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNB
QkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTCgi
LVdyZXR1cm4tdHlwZSIpCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7
CiAKQEAgLTE0Myw5ICsxNDIsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBK
U0M6OkIzOjpXaWR0aCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCi0jaWYgQ09NUElMRVIoR0ND
KSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYg
Ly8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQK
K0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKCItV3JldHVybi10eXBlIikKKyNlbmRp
ZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJBcmcuY3BwCmluZGV4IGY5ZTQ2OWMwNDdjYmViMzg3MTc3NzUxYzQ5Yzc2NmM1NzllNjg1
MzkuLjJhYzQ4NDk2NjNiOTY3ODkzNGI2ZDA4NWZkY2ZmMDY4ODVmMjc0MjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKQEAgLTM0LDEwICszNCw5IEBACiAjaW5jbHVk
ZSAiRlBSSW5mby5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKIAotI2lmIENPTVBJTEVSKEdDQykg
JiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxF
UihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1dB
Uk5JTkdfR0NDX1RPUF9MRVZFTF9FTkQoIi1XcmV0dXJuLXR5cGUiKQorI2VuZGlmCiAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApAQCAtMzc5LDggKzM3
OCw4IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBBcmc6OlNpZ25lZG5l
c3Mgc2lnbmVkbmVzcykKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKLSNpZiBDT01QSUxFUihHQ0Mp
ICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAv
LyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAor
SUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTF9FTkQoIi1XcmV0dXJuLXR5cGUiKQorI2VuZGlm
CiAKICNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJBcmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
QXJnLmgKaW5kZXggODM4ZmNhODkyMTI3MWMxYjA3NzhiMjVkNDUwNTc5ZGU0Mzc5NTc2Ny4uYzFh
NDIzNTJhZmQ4ZDg3YjcyODVjOWZhNGJlZTIwZTVlNTQwMmY2NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckFyZy5oCkBAIC0zNSwxMCArMzUsOSBAQAogI2luY2x1ZGUgIkIzV2lkdGgu
aCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNT
RVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0Mp
ICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1dBUk5JTkdf
R0NDX1RPUF9MRVZFTCgiLVdyZXR1cm4tdHlwZSIpCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTE0OTQsOCArMTQ5Myw4IEBAIHRlbXBsYXRlPD4gc3RydWN0
IEhhc2hUcmFpdHM8SlNDOjpCMzo6QWlyOjpBcmc+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPEpT
Qzo6QjM6CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NF
UlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElM
RVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9X
QVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKCItV3JldHVybi10eXBlIikKKyNlbmRpZgogCiAjZW5k
aWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQ29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgK
aW5kZXggNzU5NzAzMGZkY2YwNDJiZmMzZDhkZWEyMjgxYjllYjI4YmEyNTQzNS4uMjE4MzlkNTk4
MzViNWJhMzNjMzZjYjM1YzJiM2QyMjg5MDY0MjY0YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJDb2RlLmgKQEAgLTQ0LDEwICs0NCw5IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgQjMgewogCiBjbGFzcyBQcm9jZWR1cmU7CiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VS
VF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XcmV0dXJuLXR5cGUiCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAm
JiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9XQVJOSU5HX0dD
Q19UT1BfTEVWRUwoIi1XcmV0dXJuLXR5cGUiKQorI2VuZGlmCiAKIG5hbWVzcGFjZSBBaXIgewog
CkBAIC0zODgsOCArMzg3LDggQEAgcHJpdmF0ZToKIAogfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
QjM6OkFpcgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElT
QUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxf
RU5EKCItV3JldHVybi10eXBlIikKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaAppbmRleCAwN2Q5YTczMTRlZWIx
MDljNzMxMjM3ZDRiZTMyNzEzMWIxMWM5NGVlLi5lZDdlMWRjNzVlMWRkZTUzMzAyNzdiNjQxODFl
YzU1ZDJjOTQ1MmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
T3Bjb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCkBA
IC03NCwxOCArNzQsMTMgQEAgY29uc3QgaW50IG51bU9wY29kZUlEcyA9IE5VTUJFUl9PRl9CWVRF
Q09ERV9JRFMgKyBOVU1CRVJfT0ZfQllURUNPREVfSEVMUEVSX0lEUzsKICAgICBjb25zdCBpbnQg
b3Bjb2RlTGVuZ3Roc1tudW1PcGNvZGVJRHNdID0geyBGT1JfRUFDSF9PUENPREVfSUQoT1BDT0RF
X0lEX0xFTkdUSF9NQVApIH07CiAjdW5kZWYgT1BDT0RFX0lEX0xFTkdUSF9NQVAKIAotI2lmIENP
TVBJTEVSKEdDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlh
Z25vc3RpYyBpZ25vcmVkICItV3R5cGUtbGltaXRzIgotI2VuZGlmCitJR05PUkVfV0FSTklOR19H
Q0NfVE9QX0xFVkVMKCItV3R5cGUtbGltaXRzIikKIAogI2RlZmluZSBWRVJJRllfT1BDT0RFX0lE
KGlkLCBzaXplKSBDT01QSUxFX0FTU0VSVChpZCA8PSBudW1PcGNvZGVJRHMsIEFTU0VSVF9USEFU
X0pTX09QQ09ERV9JRFNfQVJFX1ZBTElEKTsKICAgICBGT1JfRUFDSF9PUENPREVfSUQoVkVSSUZZ
X09QQ09ERV9JRCk7CiAjdW5kZWYgVkVSSUZZX09QQ09ERV9JRAogCi0jaWYgQ09NUElMRVIoR0ND
KQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdfR0ND
X1RPUF9MRVZFTF9FTkQoIi1XdHlwZS1saW1pdHMiKQogCiAjaWYgRU5BQkxFKENPTVBVVEVEX0dP
VE9fT1BDT0RFUykKIHR5cGVkZWYgdm9pZCogT3Bjb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBiZDE4ZjlkZjliN2U4NTMwOTIz
ZWRmNmUwYjQxMDhmNmQyOTdhMDY3Li5hYWVmNmEyMjhkOGNlOWJkMWE4OTJmMDJkNjdkNTU5NTky
MDFhODg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcApAQCAtOTY1NywxNCArOTY1Nyw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1
bGF0ZU51bWJlcihFZGdlIGVkZ2UpCiAgICAgICAgIEpTVmFsdWVSZWdzKGdwciksIGVkZ2UsIFNw
ZWNCeXRlY29kZU51bWJlciwKICAgICAgICAgbV9qaXQuYnJhbmNoSWZOb3ROdW1iZXIoZ3ByKSk7
CiAjZWxzZQotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2VudW0tY29tcGFyZSIK
LSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFORygiLVdlbnVtLWNvbXBhcmUi
KTsKICAgICBzdGF0aWNfYXNzZXJ0KEpTVmFsdWU6OkludDMyVGFnID49IEpTVmFsdWU6Okxvd2Vz
dFRhZywgIkludDMyVGFnIGlzIGluY2x1ZGVkIGluID49IEpTVmFsdWU6Okxvd2VzdFRhZyByYW5n
ZS4iKTsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHBvcAotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HX0VORCgiLVdlbnVt
LWNvbXBhcmUiKTsKICAgICBHUFJSZWcgdGFnR1BSID0gdmFsdWUudGFnR1BSKCk7CiAgICAgREZH
X1RZUEVfQ0hFQ0soCiAgICAgICAgIHZhbHVlLmpzVmFsdWVSZWdzKCksIGVkZ2UsIH5TcGVjSW50
MzJPbmx5LApAQCAtMTAxNzEsMTQgKzEwMTY2LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3Bl
Y3VsYXRlTWlzYyhFZGdlIGVkZ2UsIEpTVmFsdWVSZWdzIHJlZ3MpCiAgICAgICAgIHJlZ3MsIGVk
Z2UsIFNwZWNNaXNjLAogICAgICAgICBtX2ppdC5icmFuY2g2NChNYWNyb0Fzc2VtYmxlcjo6QWJv
dmUsIHJlZ3MuZ3ByKCksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tNjQoVGFnQml0VHlwZU90
aGVyIHwgVGFnQml0Qm9vbCB8IFRhZ0JpdFVuZGVmaW5lZCkpKTsKICNlbHNlCi0jaWYgQ09NUElM
RVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdD
QyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZW51bS1jb21wYXJlIgotI2VuZGlmCisgICAgSUdOT1JF
X1dBUk5JTkdfR0NDX09SX0NMQU5HKCItV2VudW0tY29tcGFyZSIpOwogICAgIHN0YXRpY19hc3Nl
cnQoSlNWYWx1ZTo6SW50MzJUYWcgPj0gSlNWYWx1ZTo6VW5kZWZpbmVkVGFnLCAiSW50MzJUYWcg
aXMgaW5jbHVkZWQgaW4gPj0gSlNWYWx1ZTo6VW5kZWZpbmVkVGFnIHJhbmdlLiIpOwotI2lmIENP
TVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYK
KyAgICBJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfRU5EKCItV2VudW0tY29tcGFyZSIpOwog
ICAgIERGR19UWVBFX0NIRUNLKAogICAgICAgICByZWdzLCBlZGdlLCB+U3BlY0ludDMyT25seSwK
ICAgICAgICAgbV9qaXQuYnJhbmNoSWZJbnQzMihyZWdzLnRhZ0dQUigpKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCA3ZTFj
YmNmOGVkOTY1ZWNjOWE2Y2E4NjRkNWI4N2ZlMWI3NDVkN2ViLi42NjRlN2I0MWIxZjA1ODU2NWI3
NWRlNGM5MGIzNmZiZWE3NDUzOGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTg3NiwxMiArODc2LDcgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZSkKIAogLy8gQ2xhbmcgc2hvdWxkIGFsbG93
IHVucmVhY2hhYmxlIFtbY2xhbmc6OmZhbGx0aHJvdWdoXV0gaW4gdGVtcGxhdGUgZnVuY3Rpb25z
IGlmIGFueSB0ZW1wbGF0ZSBleHBhbnNpb24gdXNlcyBpdAogLy8gaHR0cDovL2xsdm0ub3JnL2J1
Z3Mvc2hvd19idWcuY2dpP2lkPTE4NjE5Ci0jaWYgQ09NUElMRVIoQ0xBTkcpICYmIGRlZmluZWQo
X19oYXNfd2FybmluZykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jaWYgX19oYXNf
d2FybmluZygiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIKLSNlbmRpZgotI2VuZGlmCitJR05P
UkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XaW1wbGljaXQtZmFsbHRocm91Z2giKQogdGVt
cGxhdGU8Ym9vbCBzdHJpY3Q+CiBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJ
bnQzMkludGVybmFsKEVkZ2UgZWRnZSwgRGF0YUZvcm1hdCYgcmV0dXJuRm9ybWF0KQogewpAQCAt
MTAxMiw5ICsxMDA3LDcgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlSW50
MzJJbnRlcm5hbChFZGdlIGVkZ2UsIERhdGFGb3JtYXQmIHJldHVybkYKICAgICAgICAgcmV0dXJu
IEludmFsaWRHUFJSZWc7CiAgICAgfQogfQotI2lmIENPTVBJTEVSKENMQU5HKSAmJiBkZWZpbmVk
KF9faGFzX3dhcm5pbmcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0lH
Tk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XaW1wbGljaXQtZmFsbHRocm91Z2gi
KQogCiBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJbnQzMihFZGdlIGVkZ2Us
IERhdGFGb3JtYXQmIHJldHVybkZvcm1hdCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMT3V0cHV0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91
dHB1dC5oCmluZGV4IDlmNTkzNjljODliZTU3ZTZlZTc3OWUxMTZmMzdmZTZjMmI3ZTk3MGYuLjdh
NmEwMGQxOTZlMTZjYzJjODg5ZTcyYmEwMzE4NDZmMjUxZjFhNWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExPdXRwdXQuaApAQCAtNTAsMTEgKzUwLDggQEAKICNpbmNsdWRlIDx3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uaD4KIAogLy8gRklYTUU6IHJlbW92ZSB0aGlzIG9uY2UgZXZlcnl0aGlu
ZyBjYW4gYmUgZ2VuZXJhdGVkIHRocm91Z2ggQjMuCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5H
KQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XbWlzc2luZy1ub3JldHVybiIKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgotI2VuZGlmIC8vIENPTVBJTEVSKEdDQ19PUl9DTEFORykK
K0lHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFOR19UT1BfTEVWRUwoIi1XbWlzc2luZy1ub3JldHVy
biIpCitJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfVE9QX0xFVkVMKCItV3VudXNlZC1wYXJh
bWV0ZXIiKQogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNTAwLDkgKzQ5Nyw4IEBAIGlubGluZSB2
b2lkIE91dHB1dDo6YWRkSW5jb21pbmdUb1BoaShMVmFsdWUgcGhpLCBWYWx1ZUZyb21CbG9jayB2
YWx1ZSwgUGFyYW1zLi4uCiAgICAgYWRkSW5jb21pbmdUb1BoaShwaGksIHRoZVJlc3QuLi4pOwog
fQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
b3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCitJR05PUkVfV0FSTklOR19HQ0Nf
T1JfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bnVzZWQtcGFyYW1ldGVyIikKK0lHTk9SRV9XQVJO
SU5HX0dDQ19PUl9DTEFOR19UT1BfTEVWRUxfRU5EKCItV21pc3Npbmctbm9yZXR1cm4iKQogCiB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxs
SGVscGVycy5oCmluZGV4IDFkOGUzYmVlOWI2YmQ2N2U3MDkzNDc1NTM2ZDJiZDU3ZDFmMzE4M2Yu
LjNmYTgzMWRhZjZhMDg1YmNmNmFlNzk1ZjY2ZjQyNWQ3MDBlZTc0NTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtMzI5LDE0ICszMjksOSBAQCBwcml2YXRl
OgogCiAgICAgICAgIGN1cnJlbnRHUFJBcmd1bWVudCArPSBleHRyYUdQUkFyZ3M7CiAgICAgICAg
IGN1cnJlbnRGUFJBcmd1bWVudCAtPSBudW1Dcm9zc1NvdXJjZXM7Ci0jaWYgQ09NUElMRVIoR0ND
X09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdHlwZS1saW1pdHMiCi0jZW5kaWYKKyAgICAgICAgSUdOT1JFX1dB
Uk5JTkdfR0NDX09SX0NMQU5HKCItV3R5cGUtbGltaXRzIik7CiAgICAgICAgIEFTU0VSVChjdXJy
ZW50R1BSQXJndW1lbnQgPj0gR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyB8fCBj
dXJyZW50RlBSQXJndW1lbnQgPj0gRlBSSW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyk7
Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AK
LSNlbmRpZgorICAgICAgICBJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfRU5EKCItV3R5cGUt
bGltaXRzIik7CiAKICAgICAgICAgdW5zaWduZWQgcG9rZU9mZnNldCA9IFBPS0VfQVJHVU1FTlRf
T0ZGU0VUICsgZXh0cmFQb2tlOwogICAgICAgICBwb2tlT2Zmc2V0ICs9IHN0ZDo6bWF4KGN1cnJl
bnRHUFJBcmd1bWVudCwgbnVtYmVyT2ZHUEFyZ3VtZW50UmVnaXN0ZXJzKSAtIG51bWJlck9mR1BB
cmd1bWVudFJlZ2lzdGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludERhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5j
cHAKaW5kZXggYzkzZDE1Yzc0YzU4ZmY1ZDk2YWEwYWFkOTQzNDEzZjA4NWEzZDkyZS4uMWNiNzdh
NjJiNTUwNDJlNzdkOWZlOWYxNWI5YzhmN2JlMzljNDc4YiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50RGF0YS5jcHAKQEAgLTY3LDEwICs2Nyw3IEBAIHZvaWQgaW5pdGlhbGl6
ZSgpCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIH0KIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV21pc3Npbmctbm9yZXR1cm4iCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RP
UF9MRVZFTCgiLVdtaXNzaW5nLW5vcmV0dXJuIikKIHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlv
bnMoVk0mIHZtKQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0xOTksOCArMTk2LDYgQEAg
dm9pZCBEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyhWTSYgdm0pCiAgICAgICAgIEFTU0VSVChBcml0
aFByb2ZpbGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkp
OwogICAgIH0KIH0KLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdtaXNz
aW5nLW5vcmV0dXJuIikKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAppbmRleCBmMmU0MTFmOGRh
ODljZmExMGEzODMyZTQxY2MxYzVhNjUwZjQ1NmQxLi5iMDZmNjBkZGEyMmViZGIzOWE3NzQ3NWQx
MDI4YzU2OGU2ZmFlMTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dFNsb3dQYXRocy5jcHAKQEAgLTIwNiwxNiArMjA2LDEyIEBAIHZvaWQgc2xvd1BhdGhMbihjb25z
dCBUeXBlcyYuLi4gdmFsdWVzKQogdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+CiB2b2lkIHNs
b3dQYXRoTG9nRihjb25zdCBjaGFyKiBmb3JtYXQsIGNvbnN0IFR5cGVzJi4uLiB2YWx1ZXMpCiB7
Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LW5vbmxpdGVyYWwiCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LXNlY3VyaXR5IgotI2VuZGlm
CisgICAgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HKCItV2Zvcm1hdC1ub25saXRlcmFsIik7
CisgICAgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HKCItV2Zvcm1hdC1zZWN1cml0eSIpOwog
ICAgIGlmIChPcHRpb25zOjp0cmFjZUxMSW50U2xvd1BhdGgoKSkKICAgICAgICAgZGF0YUxvZ0Yo
Zm9ybWF0LCB2YWx1ZXMuLi4pOwotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xB
TkdfRU5EKCItV2Zvcm1hdC1zZWN1cml0eSIpOworICAgIElHTk9SRV9XQVJOSU5HX0dDQ19PUl9D
TEFOR19FTkQoIi1XZm9ybWF0LW5vbmxpdGVyYWwiKTsKIH0KIAogI2Vsc2UgLy8gbm90IExMSU5U
X1RSQUNJTkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZp
Z0ZpbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uZmlnRmlsZS5jcHAK
aW5kZXggOThjMTk2ZjgyZjY4NTFiZGY3MGVmOGQ2MjIzYjVhMTY5MTI5MzYyZi4uMDQ5NzQ2NDhk
NDhjYzNjNDc0NWEzNDY3ZmFmN2JhZThlNzY3OGY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29uZmlnRmlsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29uZmlnRmlsZS5jcHAKQEAgLTQ5MSwxNCArNDkxLDEzIEBAIHZvaWQgQ29u
ZmlnRmlsZTo6Y2Fub25pY2FsaXplUGF0aHMoKQogICAgICAgICAgICAgICAgICAgICBzdHJuY2F0
KGZpbGVuYW1lQnVmZmVyLCAiLyIsIDIpOyAvLyBSb29tIGZvciAnLycgcGx1cyBOVUwKICNpZiBD
T01QSUxFUihHQ0MpCiAjaWYgR0NDX1ZFUlNJT05fQVRfTEVBU1QoOCwgMCwgMCkKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3N0
cmluZ29wLXRydW5jYXRpb24iCisgICAgICAgICAgICAgICAgSUdOT1JFX1dBUk5JTkdfR0NDKCIt
V3N0cmluZ29wLXRydW5jYXRpb24iKTsKICNlbmRpZgogI2VuZGlmCiAgICAgICAgICAgICAgICAg
c3RybmNhdChmaWxlbmFtZUJ1ZmZlciwgbV9maWxlbmFtZSwgc2l6ZW9mKGZpbGVuYW1lQnVmZmVy
KSAtIHN0cmxlbihmaWxlbmFtZUJ1ZmZlcikgLSAxKTsKICNpZiBDT01QSUxFUihHQ0MpCiAjaWYg
R0NDX1ZFUlNJT05fQVRfTEVBU1QoOCwgMCwgMCkKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICAgICAgSUdOT1JFX1dBUk5JTkdfR0NDX0VORCgiLVdzdHJpbmdvcC10cnVu
Y2F0aW9uIik7CiAjZW5kaWYKICNlbmRpZgogICAgICAgICAgICAgICAgIHN0cm5jcHkobV9maWxl
bmFtZSwgZmlsZW5hbWVCdWZmZXIsIHNfbWF4UGF0aExlbmd0aCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCmluZGV4IGYw
NWNmZjVmODhhNTUxYzNhN2M0YmFhZDJmMDNjNWI0Nzc4OWFmNmQuLmMwY2FlMDVlMWQ1NGI5YzQ5
NGZlMTYzNWJmYzM2Zjk5Nzc3MmJmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCkBAIC0yMDgsMTAgKzIwOCw3IEBA
IEVuY29kZWRKU1ZhbHVlIHNldERhdGEoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdtaXNzaW5nLXByb3RvdHlwZXMiCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0NMQU5H
X1RPUF9MRVZFTCgiLVdtaXNzaW5nLXByb3RvdHlwZXMiKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9HZXR0ZXJCdWZmZXIoRXhlY1N0YXRlKiBleGVjKQogewpA
QCAtMzI4LDggKzMyNSw2IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQ
cm90b0Z1bmNTZXRGbG9hdDY0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICByZXR1cm4gc2V0RGF0
YTxGbG9hdDY0QWRhcHRvcj4oZXhlYyk7CiB9Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9M
RVZFTF9FTkQoIi1XbWlzc2luZy1wcm90b3R5cGVzIikKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dl
bmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmgKaW5kZXggOGFjZmQ0OGUyM2ZmZDk2Y2Jj
YjJmYmI3YmY3MTJmNzgwOGY1YTQ0MC4uZDdjYmRmYzJhZDg5MDFlNmMyMDU2ZDMyMDU3MGRhZmQz
YzcyYTE5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5l
cmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaApAQCAtNDMsMTkg
KzQzLDEwIEBAIHB1YmxpYzoKICAgICAgICAgVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSosIEpTT2JqZWN0KiBwcm90b3R5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgRnVuY3Rpb25FeGVj
dXRhYmxlKiBwcml2YXRlQWxsb2NhdG9yKTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZml4
IHRoZSB3YXJuaW5ncyBmb3IgZXh0ZXJuLXRlbXBsYXRlIGluIEpTT2JqZWN0IHRlbXBsYXRlIGNs
YXNzZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5NzkKLSNp
ZiBDT01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3VuZGVmaW5lZC12YXItdGVt
cGxhdGUiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiCi0jZW5kaWYKLSNlbmRp
ZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmRlZmluZWQtdmFyLXRl
bXBsYXRlIikKICAgICBERUNMQVJFX0lORk87Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jaWYgX19o
YXNfd2FybmluZygiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKLSNlbmRpZgotI2VuZGlmCi0gICAgCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfVE9QX0xFVkVMX0VORCgiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKKwogICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1
ZSBwcm90b3R5cGUpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmgKaW5kZXgg
NGUxZWI3ZDg4MzRjYmM1ZGU3MmNkNmNjNmIxZDI0YjQ2MTQzYzViNi4uMGY2MGU4ZGViMzMwNDAx
NmYwNTg3NTE5NjYzODcxN2Y4NDM2YjM1YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlw
ZS5oCkBAIC00MywxOCArNDMsOSBAQCBwdWJsaWM6CiAgICAgICAgIFZNJiwgSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqKTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZml4IHRoZSB3YXJu
aW5ncyBmb3IgZXh0ZXJuLXRlbXBsYXRlIGluIEpTT2JqZWN0IHRlbXBsYXRlIGNsYXNzZXM6IGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5NzkKLSNpZiBDT01QSUxF
UihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiKQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiCi0jZW5kaWYKLSNlbmRpZgorICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikK
ICAgICBERUNMQVJFX0lORk87Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jaWYgX19oYXNfd2Fybmlu
ZygiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKLSNlbmRpZgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VO
RCgiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKICAgICAKICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBl
KTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCmluZGV4IDQw
N2M1NzA0NzQ2YjA0Y2ZmNzRkZmE5OGI5YmMzMTNmYzczMzY2NGYuLjA5YjcwNWI0ODgyOTEwYTIw
NjJhODczNTcyYzExMjk2NTBhZDQ0MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuY3BwCkBAIC03NDQsMTIgKzc0NCw3IEBAIGJvb2wgT3B0aW9uczo6c2V0QWxpYXNl
ZE9wdGlvbihjb25zdCBjaGFyKiBhcmcpCiAgICAgaWYgKCFlcXVhbFN0cikKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jaWYgX19oYXNfd2FybmluZygiLVd0
YXV0b2xvZ2ljYWwtY29tcGFyZSIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdGF1dG9sb2dpY2FsLWNvbXBhcmUiCi0j
ZW5kaWYKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd0YXV0
b2xvZ2ljYWwtY29tcGFyZSIpCiAKICAgICAvLyBGb3IgZWFjaCBvcHRpb24sIGNoZWNrIGlmIHRo
ZSBzcGVjaWZ5IGFyZyBpcyBhIG1hdGNoLiBJZiBzbywgc2V0IHRoZSBhcmcKICAgICAvLyBpZiB0
aGUgdmFsdWUgbWFrZXMgc2Vuc2UuIE90aGVyd2lzZSwgbW92ZSBvbiB0byBjaGVja2luZyB0aGUg
bmV4dCBvcHRpb24uCkBAIC03NzIsMTEgKzc2Nyw3IEBAIGJvb2wgT3B0aW9uczo6c2V0QWxpYXNl
ZE9wdGlvbihjb25zdCBjaGFyKiBhcmcpCiAgICAgSlNDX0FMSUFTRURfT1BUSU9OUyhGT1JfRUFD
SF9PUFRJT04pCiAjdW5kZWYgRk9SX0VBQ0hfT1BUSU9OCiAKLSNpZiBDT01QSUxFUihDTEFORykK
LSNpZiBfX2hhc193YXJuaW5nKCItV3RhdXRvbG9naWNhbC1jb21wYXJlIikKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfVE9QX0xFVkVMX0VORCgiLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCiAKICAgICByZXR1cm4g
ZmFsc2U7IC8vIE5vIG9wdGlvbiBtYXRjaGVkLgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxpbmcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL0NvZGVQcm9maWxpbmcuY3BwCmluZGV4IGMzZGE4YzJjMjkzZmNjOWJjYzczZGYxMmY2
OTZmNGNlM2I0OThkYTMuLjc3ZGY1ZGU4M2M5YzMzYzEyM2YwM2VjMjk4MDI1MjkxMjQ3OGVhMjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9Db2RlUHJvZmlsaW5nLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29kZVByb2ZpbGluZy5jcHAKQEAg
LTQ0LDEwICs0NCw3IEBAIHZvbGF0aWxlIENvZGVQcm9maWxlKiBDb2RlUHJvZmlsaW5nOjpzX3By
b2ZpbGVTdGFjayA9IDA7CiBDb2RlUHJvZmlsaW5nOjpNb2RlIENvZGVQcm9maWxpbmc6OnNfbW9k
ZSA9IENvZGVQcm9maWxpbmc6OkRpc2FibGVkOwogV1RGOjpNZXRhQWxsb2NhdG9yVHJhY2tlciog
Q29kZVByb2ZpbGluZzo6c190cmFja2VyID0gMDsKIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV21pc3Npbmctbm9yZXR1cm4iCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RP
UF9MRVZFTCgiLVdtaXNzaW5nLW5vcmV0dXJuIikKIAogI2lmIEhBVkUoTUFDSElORV9DT05URVhU
KQogLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHN0YXJ0ICYgc3RvcCB0aGUgdGltZXIuCkBAIC02Myw5
ICs2MCw3IEBAIHN0YXRpYyB2b2lkIHNldFByb2ZpbGVUaW1lcih1bnNpZ25lZCB1c2VjKQogfQog
I2VuZGlmCiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdtaXNzaW5n
LW5vcmV0dXJuIikKIAogI2lmIEhBVkUoTUFDSElORV9DT05URVhUKQogc3RhdGljIHZvaWQgcHJv
ZmlsaW5nVGltZXIoaW50LCBzaWdpbmZvX3QqLCB2b2lkKiB1YXApCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21TZWN0aW9ucy5oCmluZGV4IGU2OTI0Yjc5NTNjYzM2NDZiZWU5MDg0NDFh
NjNjNjNjMjk0YTc3ZDYuLmYzYTFhYTBiYzcxMDcyZmJjZTFlYmVkN2RiNGM2ZGE4MjJiNjI3Yzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TZWN0aW9ucy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TZWN0aW9ucy5oCkBAIC0yNywxMCAr
MjcsOSBAQAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCi0jaWYgQ09NUElMRVIoR0NDKSAm
JiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2VuZGlmIC8vIENPTVBJTEVS
KEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfV0FS
TklOR19HQ0NfVE9QX0xFVkVMKCItV3JldHVybi10eXBlIikKKyNlbmRpZgogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIFdhc20gewogCkBAIC0xMDcsOCArMTA2LDggQEAgaW5saW5lIGNvbnN0
IGNoYXIqIG1ha2VTdHJpbmcoU2VjdGlvbiBzZWN0aW9uKQogCiB9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6V2FzbQogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElT
QUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxf
RU5EKCItV3JldHVybi10eXBlIikKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VN
QkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vZ2VuZXJhdGVXYXNt
VmFsaWRhdGVJbmxpbmVzSGVhZGVyLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vZ2Vu
ZXJhdGVXYXNtVmFsaWRhdGVJbmxpbmVzSGVhZGVyLnB5CmluZGV4IGJjNTRhMjIzNzQ2NWRiOWM3
ZDkwM2YyMmE5NTQyYTFjYTY4ZWY1NTUuLjcxZmQyZTM2YjgxZTgwYmFlMmRhNTU2ODMwZmZkMzdj
ZTIzM2ZhM2UgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2dlbmVyYXRl
V2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9nZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIucHkKQEAgLTEyNywxMCArMTI3
LDkgQEAgY29udGVudHMgPSB3YXNtLmhlYWRlciArICIiIgogCiAjaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3JldHVybi10eXBlIgotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVE
CisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMKCItV3Jl
dHVybi10eXBlIikKKyNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewog
CkBAIC0xNjAsOSArMTU5LDkgQEAgYXV0byBWYWxpZGF0ZTo6c3RvcmUoU3RvcmVPcFR5cGUgb3As
IEV4cHJlc3Npb25UeXBlIHBvaW50ZXIsIEV4cHJlc3Npb25UeXBlIHZhbHUKIAogfSB9IC8vIG5h
bWVzcGFjZSBKU0M6Oldhc20KIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVE
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYg
QVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfV0FSTklOR19HQ0Nf
VE9QX0xFVkVMX0VORCgiLVdyZXR1cm4tdHlwZSIpCisjZW5kaWYKIAogI2VuZGlmIC8vIEVOQUJM
RShXRUJBU1NFTUJMWSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5j
cHAgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAppbmRleCBmZThmYWMwN2Q2Zjc1NzNl
MDJmMjY5ZGU1YjBiNTBmMmJkZTdkYzVkLi5kODY3YmE2OTJkNzVlOTc4NmMxOGEzMzY0YjkzMWEw
YmJkNTgzM2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcApAQCAtNzksMTAgKzc5LDkgQEAgZXh0ZXJu
ICJDIiB7CiBzdGF0aWMgdm9pZCBsb2dUb1N0ZGVycihjb25zdCBjaGFyKiBidWZmZXIpCiB7CiAj
aWYgVVNFKEFQUExFX1NZU1RFTV9MT0cpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCitJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgIGFzbF9sb2coMCwgMCwgQVNMX0xFVkVMX05PVElDRSwgIiVzIiwgYnVmZmVyKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogI2VuZGlmCiAgICAgZnB1dHMoYnVmZmVyLCBzdGRlcnIp
OwogfQpAQCAtOTQsMTQgKzkzLDkgQEAgc3RhdGljIHZvaWQgdnByaW50Zl9zdGRlcnJfY29tbW9u
KGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmdzKQogICAgIGlmIChzdHJzdHIoZm9ybWF0
LCAiJUAiKSkgewogICAgICAgICBhdXRvIGNmRm9ybWF0ID0gYWRvcHRDRihDRlN0cmluZ0NyZWF0
ZVdpdGhDU3RyaW5nKG51bGxwdHIsIGZvcm1hdCwga0NGU3RyaW5nRW5jb2RpbmdVVEY4KSk7CiAK
LSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNlbmRp
ZgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdmb3JtYXQtbm9ubGl0ZXJhbCIpOwog
ICAgICAgICBhdXRvIHN0ciA9IGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVXaXRoRm9ybWF0QW5kQXJn
dW1lbnRzKG51bGxwdHIsIG51bGxwdHIsIGNmRm9ybWF0LmdldCgpLCBhcmdzKSk7Ci0jaWYgQ09N
UElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICAg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZm9ybWF0LW5vbmxpdGVyYWwiKTsKICAgICAgICAg
Q0ZJbmRleCBsZW5ndGggPSBDRlN0cmluZ0dldE1heGltdW1TaXplRm9yRW5jb2RpbmcoQ0ZTdHJp
bmdHZXRMZW5ndGgoc3RyLmdldCgpKSwga0NGU3RyaW5nRW5jb2RpbmdVVEY4KTsKICAgICAgICAg
Y29uc3RleHByIHVuc2lnbmVkIEluaXRpYWxCdWZmZXJTaXplIHsgMjU2IH07CiAgICAgICAgIFZl
Y3RvcjxjaGFyLCBJbml0aWFsQnVmZmVyU2l6ZT4gYnVmZmVyKGxlbmd0aCArIDEpOwpAQCAtMTEz
LDEzICsxMDcsMTIgQEAgc3RhdGljIHZvaWQgdnByaW50Zl9zdGRlcnJfY29tbW9uKGNvbnN0IGNo
YXIqIGZvcm1hdCwgdmFfbGlzdCBhcmdzKQogICAgIH0KIAogI2lmIFVTRShBUFBMRV9TWVNURU1f
TE9HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JFX1dBUk5JTkdf
Q0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogICAgIHZhX2xpc3QgY29weU9mQXJn
czsKICAgICB2YV9jb3B5KGNvcHlPZkFyZ3MsIGFyZ3MpOwogICAgIGFzbF92bG9nKDAsIDAsIEFT
TF9MRVZFTF9OT1RJQ0UsIGZvcm1hdCwgY29weU9mQXJncyk7CiAgICAgdmFfZW5kKGNvcHlPZkFy
Z3MpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
RU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKICNlbmRpZgogCiAgICAgLy8gRmFsbCB0
aHJvdWdoIHRvIHdyaXRlIHRvIHN0ZGVyciBpbiB0aGUgc2FtZSBtYW5uZXIgYXMgb3RoZXIgcGxh
dGZvcm1zLgpAQCAtMTQxLDEwICsxMzQsNyBAQCBzdGF0aWMgdm9pZCB2cHJpbnRmX3N0ZGVycl9j
b21tb24oY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiAgICAgdmZwcmludGYoc3Rk
ZXJyLCBmb3JtYXQsIGFyZ3MpOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZm9ybWF0LW5vbmxpdGVyYWwiCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFO
R19UT1BfTEVWRUwoIi1XZm9ybWF0LW5vbmxpdGVyYWwiKQogCiBzdGF0aWMgdm9pZCB2cHJpbnRm
X3N0ZGVycl93aXRoX3ByZWZpeChjb25zdCBjaGFyKiBwcmVmaXgsIGNvbnN0IGNoYXIqIGZvcm1h
dCwgdmFfbGlzdCBhcmdzKQogewpAQCAtMTc0LDkgKzE2NCw3IEBAIHN0YXRpYyB2b2lkIHZwcmlu
dGZfc3RkZXJyX3dpdGhfdHJhaWxpbmdfbmV3bGluZShjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xp
c3QgYXJnCiAgICAgdnByaW50Zl9zdGRlcnJfY29tbW9uKGZvcm1hdFdpdGhOZXdsaW5lLmRhdGEo
KSwgYXJncyk7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBk
aWFnbm9zdGljIHBvcAotI2VuZGlmCitJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfVE9QX0xF
VkVMX0VORCgiLVdmb3JtYXQtbm9ubGl0ZXJhbCIpCiAKIFdURl9BVFRSSUJVVEVfUFJJTlRGKDEs
IDIpCiBzdGF0aWMgdm9pZCBwcmludGZfc3RkZXJyX2NvbW1vbihjb25zdCBjaGFyKiBmb3JtYXQs
IC4uLikKQEAgLTM4NSwxNCArMzczLDkgQEAgdm9pZCBXVEZMb2dXaXRoTGV2ZWwoV1RGTG9nQ2hh
bm5lbCogY2hhbm5lbCwgV1RGTG9nTGV2ZWwgbGV2ZWwsIGNvbnN0IGNoYXIqIGZvcm0KICAgICB2
YV9saXN0IGFyZ3M7CiAgICAgdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKIAotI2lmIENPTVBJTEVS
KENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2VuZGlmCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZm9ybWF0LW5vbmxpdGVyYWwiKTsKICAgICBXVEZMb2coY2hhbm5l
bCwgZm9ybWF0LCBhcmdzKTsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdmb3Jt
YXQtbm9ubGl0ZXJhbCIpOwogCiAgICAgdmFfZW5kKGFyZ3MpOwogfQpAQCAtNDE1LDE0ICszOTgs
OSBAQCB2b2lkIFdURkxvZyhXVEZMb2dDaGFubmVsKiBjaGFubmVsLCBjb25zdCBjaGFyKiBmb3Jt
YXQsIC4uLikKICAgICB2YV9saXN0IGFyZ3M7CiAgICAgdmFfc3RhcnQoYXJncywgZm9ybWF0KTsK
IAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2Vu
ZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZm9ybWF0LW5vbmxpdGVyYWwiKTsKICAg
ICBTdHJpbmcgbG9nZ2luZ1N0cmluZyA9IFN0cmluZzo6Zm9ybWF0KGZvcm1hdCwgYXJncyk7Ci0j
aWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYK
KyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZm9ybWF0LW5vbmxpdGVyYWwiKTsKIAog
ICAgIHZhX2VuZChhcmdzKTsKIApAQCAtNDQyLDE0ICs0MjAsOSBAQCB2b2lkIFdURkxvZ1ZlcmJv
c2UoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBXVEZM
b2dDaGFubgogICAgIHZhX2xpc3QgYXJnczsKICAgICB2YV9zdGFydChhcmdzLCBmb3JtYXQpOwog
Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LW5vbmxpdGVyYWwiCi0jZW5k
aWYKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdmb3JtYXQtbm9ubGl0ZXJhbCIpOwogICAg
IFdURkxvZyhjaGFubmVsLCBmb3JtYXQsIGFyZ3MpOwotI2lmIENPTVBJTEVSKENMQU5HKQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfRU5EKCItV2Zvcm1hdC1ub25saXRlcmFsIik7CiAKICAgICB2YV9lbmQoYXJncyk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaCBiL1NvdXJjZS9XVEYvd3RmL0Fz
c2VydGlvbnMuaAppbmRleCA1YjI4Zjg2ZmE5MzFkOGNhMWFjMTgzODU4NWYyZjBmMmQzNWY1OWY2
Li41MDU0MTc0MWJhNThmMTQwOTY5NjliOWE3ZTQ0MTI1NWVlNzQyOWRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKKysrIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9u
cy5oCkBAIC02MDIsMTUgKzYwMiwxNCBAQCBpbmxpbmUgdm9pZCBjb21waWxlckZlbmNlRm9yQ3Jh
c2goKQogI2lmIENPTVBJTEVSKENMQU5HKQogLy8gVGhpcyB3b3VsZCBiZSBhIG1hY3JvIGV4Y2Vw
dCB0aGF0IGl0cyB1c2Ugb2YgI3ByYWdtYSB3b3JrcyBiZXN0IGFyb3VuZAogLy8gYSBmdW5jdGlv
bi4gSGVuY2UgaXQgdXNlcyBtYWNybyBuYW1pbmcgY29udmVudGlvbi4KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdtaXNz
aW5nLW5vcmV0dXJuIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV21pc3Npbmct
bm9yZXR1cm4iKTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0o
KQogewogICAgIC8vIFRoaXMgKk1VU1QqIGJlIGEgcmVsZWFzZSBhc3NlcnQuIFdlIHVzZSBpdCBp
biBwbGFjZXMgd2hlcmUgaXQncyBiZXR0ZXIgdG8gY3Jhc2ggdGhhbiB0byBrZWVwCiAgICAgLy8g
Z29pbmcuCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1X
bWlzc2luZy1ub3JldHVybiIpOwogI2Vsc2UKICNkZWZpbmUgVU5SRUFDSEFCTEVfRk9SX1BMQVRG
T1JNKCkgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9Db21waWxlci5oIGIvU291cmNlL1dURi93dGYvQ29tcGlsZXIuaAppbmRl
eCA3OThjMzA5MGM5YjFjMTg1ODBhM2E2YmU2ZmFiNjViZGFjZTZmZmFhLi5kYjk5MDYxZjEwY2Y4
MmQxY2MyZWI2OWZiNjhkNjhiNmFhZGQxM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9D
b21waWxlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmgKQEAgLTM4NSw0ICszODUs
ODAgQEAKICNkZWZpbmUgX19oYXNfaW5jbHVkZShwYXRoKSAwCiAjZW5kaWYKIAorLyogSUdOT1JF
X1dBUk5JTkcuKiAqLworCisvLyBDYW4ndCB1c2UgV1RGX0NPTkNBVCgpIGFuZCBTVFJJTkdJWkUo
KSBiZWNhdXNlIHRoZXkgYXJlIGRlZmluZWQgaW4KKy8vIFN0ZExpYkV4dHJhcy5oIHdoaWNoIGlu
Y2x1ZGVzIHVzCisjZGVmaW5lIF9DT01QSUxFUl9DT05DQVRfSShhLCBiKSBhICMjIGIKKyNkZWZp
bmUgX0NPTVBJTEVSX0NPTkNBVChhLCBiKSBfQ09NUElMRVJfQ09OQ0FUX0koYSwgYikKKworI2Rl
ZmluZSBfQ09NUElMRVJfU1RSSU5HSVpFKGV4cCkgI2V4cAorCisjaWYgQ09NUElMRVIoR0NDX09S
X0NMQU5HKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19DT05EKGNvbmQsIGNvbXBpbGVyLCB3YXJu
aW5nKSBfQ09NUElMRVJfQ09OQ0FUKElHTk9SRV9XQVJOSU5HX0lNUExfLCBjb25kKShjb21waWxl
ciwgd2FybmluZykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfRU5EX0NPTkQoY29uZCwgY29tcGls
ZXIsIHdhcm5pbmcpIF9DT01QSUxFUl9DT05DQVQoSUdOT1JFX1dBUk5JTkdfRU5EX0lNUExfLCBj
b25kKShjb21waWxlciwgd2FybmluZykKKworI2RlZmluZSBJR05PUkVfV0FSTklOR19JTVBMXzEo
Y29tcGlsZXIsIHdhcm5pbmcpIFwKKyAgICBfUHJhZ21hKF9DT01QSUxFUl9TVFJJTkdJWkUoY29t
cGlsZXIgZGlhZ25vc3RpYyBwdXNoKSkgXAorICAgIF9QcmFnbWEoX0NPTVBJTEVSX1NUUklOR0la
RShjb21waWxlciBkaWFnbm9zdGljIGlnbm9yZWQgd2FybmluZykpCisjZGVmaW5lIElHTk9SRV9X
QVJOSU5HX0lNUExfMChjb21waWxlciwgd2FybmluZykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdf
SU1QTF8oY29tcGlsZXIsIHdhcm5pbmcpCisKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfRU5EX0lN
UExfMShjb21waWxlciwgd2FybmluZykgXAorICAgIF9QcmFnbWEoX0NPTVBJTEVSX1NUUklOR0la
RShjb21waWxlciBkaWFnbm9zdGljIHBvcCkpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0VORF9J
TVBMXzAoY29tcGlsZXIsIHdhcm5pbmcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0VORF9JTVBM
Xyhjb21waWxlciwgd2FybmluZykKKworI2lmIGRlZmluZWQoX19oYXNfd2FybmluZykKKyNkZWZp
bmUgSUdOT1JFX1dBUk5JTkdfSU1QTChjb21waWxlciwgd2FybmluZykgSUdOT1JFX1dBUk5JTkdf
Q09ORChfX2hhc193YXJuaW5nKHdhcm5pbmcpLCBjb21waWxlciwgd2FybmluZykKKyNkZWZpbmUg
SUdOT1JFX1dBUk5JTkdfRU5EX0lNUEwoY29tcGlsZXIsIHdhcm5pbmcpIElHTk9SRV9XQVJOSU5H
X0NPTkQoX19oYXNfd2FybmluZyh3YXJuaW5nKSwgY29tcGlsZXIsIHdhcm5pbmcpCisjZWxzZQor
I2RlZmluZSBJR05PUkVfV0FSTklOR19JTVBMKGNvbXBpbGVyLCB3YXJuaW5nKSBJR05PUkVfV0FS
TklOR19DT05EKDEsIGNvbXBpbGVyLCB3YXJuaW5nKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19F
TkRfSU1QTChjb21waWxlciwgd2FybmluZykgSUdOT1JFX1dBUk5JTkdfQ09ORCgxLCBjb21waWxl
ciwgd2FybmluZykKKyNlbmRpZgorI2VuZGlmIC8vIENPTVBJTEVSKEdDQ19PUl9DTEFORykKKwor
CisjaWYgIWRlZmluZWQoSUdOT1JFX1dBUk5JTkdfR0NDKSAmJiBDT01QSUxFUihHQ0MpCisjZGVm
aW5lIElHTk9SRV9XQVJOSU5HX0dDQyh3YXJuaW5nKSBkbyB7IElHTk9SRV9XQVJOSU5HX0lNUEwo
R0NDLCB3YXJuaW5nKSB9IHdoaWxlIChmYWxzZSkKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfR0ND
X0VORCh3YXJuaW5nKSBkbyB7IElHTk9SRV9XQVJOSU5HX0VORF9JTVBMKEdDQywgd2FybmluZykg
fSB3aGlsZSAoZmFsc2UpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUwod2Fy
bmluZykgSUdOT1JFX1dBUk5JTkdfSU1QTChHQ0MsIHdhcm5pbmcpCisjZGVmaW5lIElHTk9SRV9X
QVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKHdhcm5pbmcpIElHTk9SRV9XQVJOSU5HX0VORF9JTVBM
KEdDQywgd2FybmluZykKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoSUdOT1JFX1dBUk5JTkdfR0ND
KQorI2RlZmluZSBJR05PUkVfV0FSTklOR19HQ0MoeCkgZG8geyB9IHdoaWxlIChmYWxzZSkKKyNk
ZWZpbmUgSUdOT1JFX1dBUk5JTkdfR0NDX0VORCh4KSBkbyB7IH0gd2hpbGUgKGZhbHNlKQorI2Rl
ZmluZSBJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMKHdhcm5pbmcpCisjZGVmaW5lIElHTk9S
RV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKHdhcm5pbmcpCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKElHTk9SRV9XQVJOSU5HX0NMQU5HKSAmJiBDT01QSUxFUihDTEFORykKKyNkZWZpbmUgSUdO
T1JFX1dBUk5JTkdfQ0xBTkcod2FybmluZykgZG8geyBJR05PUkVfV0FSTklOR19JTVBMKGNsYW5n
LCB3YXJuaW5nKSB9IHdoaWxlIChmYWxzZSkKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
RU5EKHdhcm5pbmcpIGRvIHsgSUdOT1JFX1dBUk5JTkdfRU5EX0lNUEwoY2xhbmcsIHdhcm5pbmcp
IH0gd2hpbGUgKGZhbHNlKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwo
d2FybmluZykgSUdOT1JFX1dBUk5JTkdfSU1QTChjbGFuZywgd2FybmluZykKKyNkZWZpbmUgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCh3YXJuaW5nKSBJR05PUkVfV0FSTklOR19F
TkRfSU1QTChjbGFuZywgd2FybmluZykKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoSUdOT1JFX1dB
Uk5JTkdfQ0xBTkcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0NMQU5HKHgpIGRvIHsgfSB3aGls
ZSAoZmFsc2UpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCh4KSBkbyB7IH0gd2hp
bGUgKGZhbHNlKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwod2Fybmlu
ZykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCh3YXJuaW5nKQor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkcpICYmIENP
TVBJTEVSKEdDQ19PUl9DTEFORykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5H
KHdhcm5pbmcpIGRvIHsgSUdOT1JFX1dBUk5JTkdfSU1QTChHQ0MsIHdhcm5pbmcpIH0gd2hpbGUg
KGZhbHNlKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfRU5EKHdhcm5pbmcp
IGRvIHsgSUdOT1JFX1dBUk5JTkdfRU5EX0lNUEwoR0NDLCB3YXJuaW5nKSB9IHdoaWxlIChmYWxz
ZSkKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HX1RPUF9MRVZFTCh3YXJuaW5n
KSBJR05PUkVfV0FSTklOR19JTVBMKEdDQywgd2FybmluZykKKyNkZWZpbmUgSUdOT1JFX1dBUk5J
TkdfR0NDX09SX0NMQU5HX1RPUF9MRVZFTF9FTkQod2FybmluZykgSUdOT1JFX1dBUk5JTkdfRU5E
X0lNUEwoR0NDLCB3YXJuaW5nKQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChJR05PUkVfV0FSTklO
R19HQ0NfT1JfQ0xBTkcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFORyh4KSBk
byB7IH0gd2hpbGUgKGZhbHNlKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdf
RU5EKHgpIGRvIHsgfSB3aGlsZSAoZmFsc2UpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0dDQ19P
Ul9DTEFOR19UT1BfTEVWRUwoeCkKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5H
X0VORF9UT1BfTEVWRUwoeCkKKyNlbmRpZgorCiAjZW5kaWYgLyogV1RGX0NvbXBpbGVyX2ggKi8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01ENS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9NRDUu
Y3BwCmluZGV4IGU0OWJhMWJlYjVjODBmN2NlYzQzM2ZkODMyNzIyYzA5MjUyNzMwOTAuLjUzNTc3
OWEzMjIxZWRjNjM5ZmQyMDZiMmMxNzhjMzc2ZTUyNjI0OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL01ENS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTUQ1LmNwcApAQCAtNTksMjYgKzU5
LDIzIEBAIG5hbWVzcGFjZSBXVEYgewogCiBNRDU6Ok1ENSgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKICAgICBDQ19NRDVfSW5pdCgmbV9jb250ZXh0KTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogdm9pZCBNRDU6OmFkZEJ5dGVzKGNvbnN0IHVp
bnQ4X3QqIGlucHV0LCBzaXplX3QgbGVuZ3RoKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgQ0NfTUQ1X1VwZGF0ZSgmbV9jb250ZXh0LCBpbnB1dCwgbGVuZ3RoKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19F
TkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogdm9pZCBNRDU6OmNoZWNrc3Vt
KERpZ2VzdCYgaGFzaCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAg
IENDX01ENV9GaW5hbChoYXNoLmRhdGEoKSwgJm1fY29udGV4dCk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiB9CiAgICAgCiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUHJpbnRTdHJlYW0uY3BwIGIvU291cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uY3BwCmluZGV4
IDM4MGM2N2JjYmI5MGUzNjZkODYxODA4NzgwNzMyNDVlNjEzZTRiNGYuLjJjNWE3YTEyMDQwZTI0
MzA3NDZmZmJhODhmZDMxNmJkZTU2OTZkZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1By
aW50U3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QcmludFN0cmVhbS5jcHAKQEAgLTQ2
LDIyICs0NiwxNCBAQCB2b2lkIFByaW50U3RyZWFtOjpwcmludGYoY29uc3QgY2hhciogZm9ybWF0
LCAuLi4pCiAKIHZvaWQgUHJpbnRTdHJlYW06OnByaW50ZlZhcmlhYmxlRm9ybWF0KGNvbnN0IGNo
YXIqIGZvcm1hdCwgLi4uKQogewotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1h
dC1ub25saXRlcmFsIgotI2VsaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xc3VnZ2VzdC1hdHRyaWJ1
dGU9Zm9ybWF0IgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZm9ybWF0LW5v
bmxpdGVyYWwiKTsKKyAgICBJR05PUkVfV0FSTklOR19HQ0MoIi1Xc3VnZ2VzdC1hdHRyaWJ1dGU9
Zm9ybWF0Iik7CiAgICAgdmFfbGlzdCBhcmdMaXN0OwogICAgIHZhX3N0YXJ0KGFyZ0xpc3QsIGZv
cm1hdCk7CiAgICAgdnByaW50Zihmb3JtYXQsIGFyZ0xpc3QpOwogICAgIHZhX2VuZChhcmdMaXN0
KTsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNl
bGlmIENPTVBJTEVSKEdDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAg
ICBJR05PUkVfV0FSTklOR19HQ0NfRU5EKCItV3N1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdCIpOwor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdmb3JtYXQtbm9ubGl0ZXJhbCIpOwogfQog
CiB2b2lkIFByaW50U3RyZWFtOjpmbHVzaCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9T
SEExLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1NIQTEuY3BwCmluZGV4IDMwNWYwNzc1ODlkOWJhM2U2
NTBmYjNlNzVjY2ZlYWQ2ZTJkNTJhZmYuLjNmZDhlMzBmNDAwMjhlNTdlYTBkYWEwOWI1MzY3ZDc0
Y2E0Y2IxY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1NIQTEuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1NIQTEuY3BwCkBAIC00MSwyNiArNDEsMjMgQEAgbmFtZXNwYWNlIFdURiB7CiAK
IFNIQTE6OlNIQTEoKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
Q0NfU0hBMV9Jbml0KCZtX2NvbnRleHQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogfQogCiB2b2lkIFNIQTE6OmFkZEJ5dGVzKGNvbnN0IHVpbnQ4X3QqIGlucHV0LCBzaXplX3Qg
bGVuZ3RoKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQ0NfU0hB
MV9VcGRhdGUoJm1fY29udGV4dCwgaW5wdXQsIGxlbmd0aCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiB9CiAKIHZvaWQgU0hBMTo6Y29tcHV0ZUhhc2goRGlnZXN0JiBoYXNoKQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQ0NfU0hBMV9GaW5hbCho
YXNoLmRhdGEoKSwgJm1fY29udGV4dCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiB9CiAKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFk
cy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKaW5kZXggZGQwMWM2
Yzc2ZWU2OTg1OWM0Y2NkOGIxMWM2YzlhOGNkMWMwNDk2Mi4uYzI1ZGZlMjYwNDdiMzgyNjk2ZGM3
MjVjN2JjY2Y1N2ZjYzU0ZjkxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5n
UHRocmVhZHMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcApA
QCAtMTA5LDE1ICsxMDksOCBAQCBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFNlbWFwaG9yZT4g
Z2xvYmFsU2VtYXBob3JlRm9yU3VzcGVuZFJlc3VtZTsKIHN0YXRpYyBjb25zdGV4cHIgY29uc3Qg
aW50IFNpZ1RocmVhZFN1c3BlbmRSZXN1bWUgPSBTSUdVU1IxOwogc3RhdGljIHN0ZDo6YXRvbWlj
PFRocmVhZCo+IHRhcmdldFRocmVhZCB7IG51bGxwdHIgfTsKIAotI2lmIENPTVBJTEVSKEdDQykK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3JldHVybi1sb2NhbC1hZGRyIgotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykKLQotI2lm
IENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi1zdGFjay1hZGRyZXNzIgotI2VuZGlm
IC8vIENPTVBJTEVSKENMQU5HKQorSUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTCgiLVdyZXR1
cm4tbG9jYWwtYWRkciIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XcmV0dXJu
LXN0YWNrLWFkZHJlc3MiKQogCiBzdGF0aWMgTkVWRVJfSU5MSU5FIHZvaWQqIGdldEFwcHJveGlt
YXRlU3RhY2tQb2ludGVyKCkKIHsKQEAgLTEyNiwxMyArMTE5LDggQEAgc3RhdGljIE5FVkVSX0lO
TElORSB2b2lkKiBnZXRBcHByb3hpbWF0ZVN0YWNrUG9pbnRlcigpCiAgICAgcmV0dXJuIGJpdHdp
c2VfY2FzdDx2b2lkKj4oc3RhY2tMb2NhdGlvbik7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0MpCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykKLQotI2lm
IENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8v
IENPTVBJTEVSKENMQU5HKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdy
ZXR1cm4tc3RhY2stYWRkcmVzcyIpCitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMX0VORCgi
LVdyZXR1cm4tbG9jYWwtYWRkciIpCiAKIHZvaWQgVGhyZWFkOjpzaWduYWxIYW5kbGVyU3VzcGVu
ZFJlc3VtZShpbnQsIHNpZ2luZm9fdCosIHZvaWQqIHVjb250ZXh0KQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvVmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAppbmRleCA4
NTE4NGI5NDA3YzY5Mzc3NjBhMTBjNjViMWFlNTcyMjdhOGY3ZmZmLi42NDIxYTI4NGY3YWZlNjRl
YmVjZWRhZTYxMjlmYmFmZGY3Y2FiODFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9WZWN0
b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaApAQCAtNTI5LDE0ICs1MjksOSBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoYnVmZmVyKCkpOwogCi0jaWYgQ09NUElMRVIo
R0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XaW52YWxpZC1vZmZzZXRvZiIKLSNlbmRpZgorICAgICAgICBJR05PUkVfV0FS
TklOR19HQ0MoIi1XaW52YWxpZC1vZmZzZXRvZiIpOwogICAgICAgICBzdGF0aWNfYXNzZXJ0KChv
ZmZzZXRvZihWZWN0b3JCdWZmZXIsIG1faW5saW5lQnVmZmVyKSArIHNpemVvZihtX2lubGluZUJ1
ZmZlcikpICUgOCA9PSAwLCAiSW5saW5lIGJ1ZmZlciBlbmQgbmVlZHMgdG8gYmUgb24gOCBieXRl
IGJvdW5kYXJ5IGZvciBBU2FuIGFubm90YXRpb25zIHRvIHdvcmsuIik7Ci0jaWYgQ09NUElMRVIo
R0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgICAgICBJR05PUkVf
V0FSTklOR19HQ0NfRU5EKCItV2ludmFsaWQtb2Zmc2V0b2YiKTsKIAogICAgICAgICBpZiAoYnVm
ZmVyKCkgPT0gaW5saW5lQnVmZmVyKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4obV9pbmxpbmVCdWZmZXIpICsgc2l6ZW9mKG1faW5saW5lQnVmZmVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvV1RGU3RyaW5nLmNwcAppbmRleCAyYjBlNWYzOWNkNDNjNmRmNDFhMGMxOGJjNGJi
ZDM4NGYxOTUxM2Q2Li5iNThhMGU4YzNmNTc5OGE2YTg5M2UwZmJhZTk3MGQyODNmYzVlYTVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCkBAIC00NTMsMTAgKzQ1Myw3IEBAIFdURl9BVFRS
SUJVVEVfUFJJTlRGKDEsIDApIHN0YXRpYyBTdHJpbmcgY3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3Vt
ZW50cyhjb25zdCBjaGFyCiAgICAgdmFfbGlzdCBhcmdzQ29weTsKICAgICB2YV9jb3B5KGFyZ3ND
b3B5LCBhcmdzKTsKIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25s
aXRlcmFsIgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZm9ybWF0LW5vbmxp
dGVyYWwiKTsKIAogI2lmIFVTRShDRikgJiYgIU9TKFdJTkRPV1MpCiAgICAgaWYgKHN0cnN0cihm
b3JtYXQsICIlQCIpKSB7CkBAIC00OTIsOSArNDg5LDcgQEAgV1RGX0FUVFJJQlVURV9QUklOVEYo
MSwgMCkgc3RhdGljIFN0cmluZyBjcmVhdGVXaXRoRm9ybWF0QW5kQXJndW1lbnRzKGNvbnN0IGNo
YXIKICAgICB2c25wcmludGYoYnVmZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUoKSwgZm9ybWF0LCBh
cmdzQ29weSk7CiAgICAgdmFfZW5kKGFyZ3NDb3B5KTsKIAotI2lmIENPTVBJTEVSKENMQU5HKQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfRU5EKCItV2Zvcm1hdC1ub25saXRlcmFsIik7CiAKICAgICByZXR1cm4gU3RyaW5nSW1w
bDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihidWZmZXIuZGF0YSgpKSwg
bGVuKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVy
LmgKaW5kZXggNTBiZjc3NjI0YTQ2ODM2YTUyNzA3MDZhOWY4ZWQ2ZTUyMjFiY2ZkZC4uOWJmN2Mw
NjAyMzAzZTAxZjFmZTYxZWIzYWFjOTI0Mzg4M2VhMDk3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxI
YW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKQEAgLTI5LDEyICsyOSwxMSBAQAogI2lu
Y2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSGFuZGxl
ci5oIgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0lHTk9SRV9XQVJOSU5HX0NMQU5H
X1RPUF9MRVZFTCgiLVd1bnVzZWQtcGFyYW1ldGVyIikKIAogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkv
ZGF0YWNoYW5uZWxpbnRlcmZhY2UuaD4KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bnVzZWQtcGFyYW1ldGVyIikK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVu
ZHBvaW50LmgKaW5kZXggMzBhMmE4YmEzNmJmZTU4YjQ4MmE1ZWQ1MmQ4YzM5Y2E5YzNiMmFmOS4u
ZTkwNDVlMDEzYjBiMjMzMzY3NWE3YWQ5ZjcxMzNhOGY1ODVlOWFmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFF
bmRwb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaApAQCAtMzMsMTUgKzMzLDE0IEBACiAjaW5jbHVk
ZSAiUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgiCiAjaW5jbHVkZSA8VGltZXIuaD4KIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVW
RUwoIi1XdW51c2VkLXBhcmFtZXRlciIpCiAKICNpbmNsdWRlIDx3ZWJydGMvYXBpL2pzZXAuaD4K
ICNpbmNsdWRlIDx3ZWJydGMvYXBpL3BlZXJjb25uZWN0aW9uaW50ZXJmYWNlLmg+CiAjaW5jbHVk
ZSA8d2VicnRjL3BjL3BlZXJjb25uZWN0aW9uZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9w
Yy9ydGNzdGF0c2NvbGxlY3Rvci5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJ
R05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3VudXNlZC1wYXJhbWV0ZXIiKQog
CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZl
UmVmQ291bnRlZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8v
Y29tbW9uY3J5cHRvL0NyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NyeXB0by9jb21tb25jcnlwdG8vQ3J5cHRvRGlnZXN0Q29tbW9uQ3J5cHRvLmNw
cAppbmRleCBiNDdmOGVlYzY4ODM3YzcyN2Q1ZjhmY2M5NzE2ZGNiZDNjYWM2NTNlLi4zMDNiZTIx
OGFhOWZiZWM0MjJmMGQ0MmYwM2I5MWRmODY0ZTIzNzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NyeXB0by9jb21tb25jcnlwdG8vQ3J5cHRvRGlnZXN0Q29tbW9uQ3J5cHRv
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NyeXB0by9jb21tb25jcnlwdG8vQ3J5
cHRvRGlnZXN0Q29tbW9uQ3J5cHRvLmNwcApAQCAtOTcsMTAgKzk3LDggQEAgc3RkOjp1bmlxdWVf
cHRyPENyeXB0b0RpZ2VzdD4gQ3J5cHRvRGlnZXN0OjpjcmVhdGUoQ3J5cHRvRGlnZXN0OjpBbGdv
cml0aG0gYWxnb3IKICAgICBjYXNlIENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMTogewog
ICAgICAgICBDQ19TSEExX0NUWCogY29udGV4dCA9IG5ldyBDQ19TSEExX0NUWDsKICAgICAgICAg
ZGlnZXN0LT5tX2NvbnRleHQtPmNjQ29udGV4dCA9IGNvbnRleHQ7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIikKICAgICAgICAgQ0NfU0hBMV9Jbml0KGNvbnRleHQpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICByZXR1cm4gZGlnZXN0OwogICAgIH0K
ICAgICBjYXNlIENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMjI0OiB7CkBAIC0xMzQsMTAg
KzEzMiw5IEBAIHZvaWQgQ3J5cHRvRGlnZXN0OjphZGRCeXRlcyhjb25zdCB2b2lkKiBpbnB1dCwg
c2l6ZV90IGxlbmd0aCkKIHsKICAgICBzd2l0Y2ggKG1fY29udGV4dC0+YWxnb3JpdGhtKSB7CiAg
ICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzE6Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIENDX1NIQTFfVXBkYXRlKHRvU0hBMUNvbnRl
eHQobV9jb250ZXh0LmdldCgpKSwgaW5wdXQsIGxlbmd0aCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDcnlwdG9EaWdlc3Q6
OkFsZ29yaXRobTo6U0hBXzIyNDoKICAgICAgICAgQ0NfU0hBMjI0X1VwZGF0ZSh0b1NIQTIyNENv
bnRleHQobV9jb250ZXh0LmdldCgpKSwgaW5wdXQsIGxlbmd0aCk7CkBAIC0xNjAsMTAgKzE1Nyw5
IEBAIFZlY3Rvcjx1aW50OF90PiBDcnlwdG9EaWdlc3Q6OmNvbXB1dGVIYXNoKCkKICAgICBzd2l0
Y2ggKG1fY29udGV4dC0+YWxnb3JpdGhtKSB7CiAgICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29y
aXRobTo6U0hBXzE6CiAgICAgICAgIHJlc3VsdC5yZXNpemUoQ0NfU0hBMV9ESUdFU1RfTEVOR1RI
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgQ0NfU0hB
MV9GaW5hbChyZXN1bHQuZGF0YSgpLCB0b1NIQTFDb250ZXh0KG1fY29udGV4dC5nZXQoKSkpOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFO
RygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMjI0OgogICAgICAgICByZXN1bHQucmVzaXpl
KENDX1NIQTIyNF9ESUdFU1RfTEVOR1RIKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL0FWS2l0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9BVktpdFNQSS5oCmluZGV4IDkxNDUxN2VmZTdjYjE0YjVmYWYyYzViMWI2N2YyMzY2YzYy
YzY5OTUuLmRiYzgyMzc0ZGNjZDgyZjA5YjkxMmYyMTQ4NTU3NmFkNDI5NDljYjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWS2l0U1BJLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZLaXRTUEkuaApAQCAtMzgsMTAgKzM4LDkg
QEAKICNlbmRpZgogCiAjaW1wb3J0IDxBVktpdC9BVlBsYXllckNvbnRyb2xsZXIuaD4KLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdvYmpjLXByb3BlcnR5LW5vLWF0dHJpYnV0ZSIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RP
UExFVkVMKCItV29iamMtcHJvcGVydHktbm8tYXR0cmlidXRlIikKICNpbXBvcnQgPEFWS2l0L0FW
UGxheWVyTGF5ZXJWaWV3Lmg+Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVf
V0FSTklOR19DTEFOR19UT1BMRVZFTF9FTkQoIi1Xb2JqYy1wcm9wZXJ0eS1uby1hdHRyaWJ1dGUi
KQogI2ltcG9ydCA8QVZLaXQvQVZQbGF5ZXJWaWV3Q29udHJvbGxlcl9Qcml2YXRlLmg+CiAjaW1w
b3J0IDxBVktpdC9BVlBsYXllclZpZXdDb250cm9sbGVyX1dlYktpdE9ubHkuaD4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVyU1BJ
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEku
aAppbmRleCA1NWE2NDg4NmE4ODBmNWI5MGVhMmRhNmNmNTFhYmE0YmE2N2M0MjVkLi43NzliMzA3
NmU3Y2IxNzA2YzY4MTgwMTVjOTQwOGZiMTRiMWVlNjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaApAQCAtODYsMTAg
Kzg2LDkgQEAgaW5saW5lIE5TRGF0YSAqX051bGxhYmxlIGluc2VjdXJlbHlBcmNoaXZlZERhdGFX
aXRoUm9vdE9iamVjdChpZCBfTm9ubnVsbCBvYmplY3QKIAogaW5saW5lIGlkIF9OdWxsYWJsZSBp
bnNlY3VyZWx5VW5hcmNoaXZlT2JqZWN0RnJvbURhdGEoTlNEYXRhICogX05vbm51bGwgZGF0YSkK
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19D
TEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIHJldHVybiBbTlNLZXllZFVu
YXJjaGl2ZXIgdW5hcmNoaXZlT2JqZWN0V2l0aERhdGE6ZGF0YV07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiB9CiAKIGlubGluZSBpZCBfTnVsbGFibGUgdW5hcmNoaXZlZE9iamVjdE9m
Q2xhc3Nlc0Zyb21EYXRhKE5TU2V0PENsYXNzPiAqIF9Ob25udWxsIGNsYXNzZXMsIE5TRGF0YSAq
IF9Ob25udWxsIGRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9p
b3MvTWVkaWFQbGF5ZXJTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9NZWRp
YVBsYXllclNQSS5oCmluZGV4IGRkODdmOTNhZjcwMjViY2E2ZDEzMzQ1N2IzZjZiMTIwNmEwMTQ0
ZjguLmQ3ZDA5NjA3NTNlMjQ0MzQxYTU5ZTU2MDVkYmE5ZjM1MmQwY2EwNmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oCkBAIC03NSwyMSAr
NzUsMTkgQEAgZW51bSB7CiB9OwogdHlwZWRlZiBOU1VJbnRlZ2VyIE1QQVZJdGVtVHlwZTsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
VE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIEBpbnRlcmZhY2UgTVBBdWRp
b1ZpZGVvUm91dGluZ1BvcG92ZXJDb250cm9sbGVyIDogVUlQb3BvdmVyQ29udHJvbGxlcgogQGVu
ZAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9Q
X0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKIEBpbnRlcmZhY2UgTVBB
dWRpb1ZpZGVvUm91dGluZ1BvcG92ZXJDb250cm9sbGVyICgpCiAtIChpZClpbml0V2l0aFR5cGU6
KE1QQVZJdGVtVHlwZSlhdkl0ZW1UeXBlOwogQGVuZAogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKQogQGludGVyZmFjZSBNUEFWUm91dGluZ1NoZWV0IDogVUlWaWV3CiBA
ZW5kCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19U
T1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogQGludGVyZmFjZSBN
UEFWUm91dGluZ1NoZWV0ICgpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduLCBzZXR0ZXI9
c2V0QVZJdGVtVHlwZTopIE1QQVZJdGVtVHlwZSBhdkl0ZW1UeXBlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbSBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUubW0KaW5kZXggMjIzMzU3NWRjMzRlNzYx
ZTg2MWNiYjQ1Mjg3YjczM2YyY2Q0YWMyMy4uMTg4YzYyMGEzNjE3N2U2OTFjNzQ0ZjE0NjU4Yjll
YjYxZmEzNDg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFj
L1BvcHVwTWVudS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9w
dXBNZW51Lm1tCkBAIC00NCwxMCArNDQsOSBAQCBuYW1lc3BhY2UgUEFMIHsKIHZvaWQgcG9wVXBN
ZW51KE5TTWVudSAqbWVudSwgTlNQb2ludCBsb2NhdGlvbiwgZmxvYXQgd2lkdGgsIE5TVmlldyAq
dmlldywgaW50IHNlbGVjdGVkSXRlbSwgTlNGb250ICpmb250LCBOU0NvbnRyb2xTaXplIGNvbnRy
b2xTaXplLCBib29sIHVzZXNDdXN0b21BcHBlYXJhbmNlKQogewogICAgIE5TUmVjdCBhZGp1c3Rl
ZFBvcHVwQm91bmRzID0gW3ZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46W3ZpZXcgY29u
dmVydFJlY3Q6dmlldy5ib3VuZHMgdG9WaWV3Om5pbF1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgaWYgKGNvbnRyb2xTaXplICE9IE5TTWluaUNvbnRyb2xTaXplKSB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgo
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgYWRqdXN0ZWRQb3B1cEJvdW5k
cy5vcmlnaW4ueCAtPSAzOwogICAgICAgICBhZGp1c3RlZFBvcHVwQm91bmRzLm9yaWdpbi55IC09
IDE7CiAgICAgICAgIGFkanVzdGVkUG9wdXBCb3VuZHMuc2l6ZS53aWR0aCArPSA2OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1dlYlBhbmVsLm1tIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1dlYlBhbmVsLm1tCmluZGV4IDMxN2JkYTAy
ZTdiN2ViMjdhOWJkMmI1OTc5NTZmNTQxMmRhY2YxMjYuLmE3OThmMjVkY2ZjN2U0MWRjNzU2Mzkx
NjNkYzY3M2VhNzZmMmUyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lz
dGVtL21hYy9XZWJQYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9t
YWMvV2ViUGFuZWwubW0KQEAgLTM0LDEwICszNCw5IEBACiAKIC0gKGluc3RhbmNldHlwZSlpbml0
CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdf
Q0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBzdGF0aWMgTlNVSW50ZWdl
ciBzdHlsZU1hc2sgPSBOU01pbmlhdHVyaXphYmxlV2luZG93TWFzayB8IE5TQ2xvc2FibGVXaW5k
b3dNYXNrIHwgTlNSZXNpemFibGVXaW5kb3dNYXNrICB8IE5TVGl0bGVkV2luZG93TWFzayB8IE5T
U21hbGxXaW5kb3dNYXNrIHwgTlNTaWRlVXRpbGl0eVdpbmRvd01hc2sgfCBOU1V0aWxpdHlXaW5k
b3dNYXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIAogICAgIHJldHVybiBb
c3VwZXIgaW5pdFdpdGhDb250ZW50UmVjdDpOU1plcm9SZWN0IHN0eWxlTWFzazpzdHlsZU1hc2sg
YmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU107CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRl
eCAzOTkxNzdmMzUzZTJmODA5ZDJkZmM3OGFiNjY1NDhhYWI5MjkzNTk0Li4yNTk0OTMxNWVlYzFk
NTdmZGI0MzVlZTZjNjZhYjk5YTk4MDU3MDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTM0NiwxMCArMzQ2LDkg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICAKICAgICAvLyBOU0FjY2Vzc2liaWxpdHlQ
b3N0Tm90aWZpY2F0aW9uIHdpbGwgY2FsbCB0aGlzIG1ldGhvZCwgKGJ1dCBub3Qgd2hlbiBydW5u
aW5nIERSVCksIHNvIEFTU0VSVCBoZXJlIHRvIG1ha2Ugc3VyZSBpdCBkb2VzIG5vdCBjcmFzaC4K
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY2NjIKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIEFTU0VSVChbb2JqLT53cmFwcGVyKCkg
YWNjZXNzaWJpbGl0eUlzSWdub3JlZF0gfHwgdHJ1ZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAKICAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqLT53cmFwcGVy
KCksIG1hY05vdGlmaWNhdGlvbiwgbmlsKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCmluZGV4IGNj
ZTk3MmNmY2QwMmU1NzU0ZWNjZWNjNTc4ZmE0YjQwYTk5NjhjMjYuLmJhNzUyNzlhMzRmYmE3ODM4
OThhZjM0ZmE5OTQ4YTFlMTIzZGRjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQpAQCAtNTUsMTAg
KzU1LDkgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpvdmVycmlkZUF0dGFjaG1lbnRQYXJl
bnQoQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50KQogICAgICAgICBwYXJlbnRXcmFwcGVyID0g
cGFyZW50LT53cmFwcGVyKCk7CiAgICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICBbW3dyYXBwZXIoKSBhdHRhY2htZW50Vmlld10gYWNjZXNzaWJpbGl0eVNldE92ZXJy
aWRlVmFsdWU6cGFyZW50V3JhcHBlciBmb3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5UGFyZW50
QXR0cmlidXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklO
R19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KICAgICAKIGJvb2wg
QWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlnbm9yZUF0dGFjaG1lbnQoKSBjb25z
dApAQCAtNjksMTEgKzY4LDEwIEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJp
bGl0eUlnbm9yZUF0dGFjaG1lbnQoKSBjb25zdAogICAgIGlmIChpc0F0dGFjaG1lbnQoKSAmJiAo
d2lkZ2V0ID0gd2lkZ2V0Rm9yQXR0YWNobWVudFZpZXcoKSkgJiYgd2lkZ2V0LT5pc0ZyYW1lVmll
dygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgaWYgKFt3cmFwcGVyKCkgYXR0YWNobWVudFZpZXddKQogICAgICAgICByZXR1cm4g
W1t3cmFwcGVyKCkgYXR0YWNobWVudFZpZXddIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgLy8gQXR0YWNobWVudHMgYXJlIGlnbm9y
ZWQgYnkgZGVmYXVsdCAodW5sZXNzIHdlIGRldGVybWluZSB0aGF0IHdlIHNob3VsZCBleHBvc2Ug
dGhlbSkuCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCmluZGV4IDA0YzE4NmEwOGFjOGFmMjg2MDdjNDFiYTdlZGQwYTAxN2M5MmJmNjYuLjU0
MjA4ZDMyOWRiZGYwOWYyMzllMTkxMTk3ZThiYTEwNjU3YzkwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0xNjc5LDEwICsxNjc5LDkgQEAgc3RhdGljIGlk
IHRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zKEFYT2JqZWN0Q2FjaGUqIGNhY2hl
LCBjb25zdCBWaXNpYmwKICAgICBXaWRnZXQqIHdpZGdldCA9IG1fb2JqZWN0LT53aWRnZXQoKTsK
ICAgICBpZiAoIXdpZGdldCkKICAgICAgICAgcmV0dXJuIG5pbDsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIHJldHVybiBbKHdpZGdldC0+cGxhdGZvcm1XaWRnZXQoKSkgYWNj
ZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOiBOU0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0
ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
RU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIC0gKGlkKXJlbW90ZUFjY2Vz
c2liaWxpdHlQYXJlbnRPYmplY3QKQEAgLTE3NTEsMTAgKzE3NTAsOSBAQCBzdGF0aWMgTlNNdXRh
YmxlQXJyYXkgKmNvbnZlcnRTdHJpbmdzVG9OU0FycmF5KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2
ZWN0b3IpCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPnBsYXRmb3JtV2lkZ2V0KCkp
IHsKICAgICAgICAgTlNQb2ludCBuc1BvaW50ID0gKE5TUG9pbnQpcG9pbnQ7CiAgICAgICAgIE5T
VmlldyogdmlldyA9IGZyYW1lVmlldy0+ZG9jdW1lbnRWaWV3KCk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgICAgIG5zUG9pbnQgPSBbW3ZpZXcgd2luZG93XSBjb252ZXJ0
QmFzZVRvU2NyZWVuOlt2aWV3IGNvbnZlcnRQb2ludDpuc1BvaW50IHRvVmlldzpuaWxdXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIHJldHVybiBDR1BvaW50TWFrZShu
c1BvaW50LngsIG5zUG9pbnQueSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgCkBAIC0yMDA2LDEx
ICsyMDA0LDEwIEBAIHN0YXRpYyBOU1N0cmluZyAqcm9sZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3Np
YmlsaXR5Um9sZSB2YWx1ZSkKIAogLSAoTlNTdHJpbmcqKXJvbGUKIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgIGlmIChtX29iamVjdC0+aXNBdHRhY2htZW50KCkpCiAgICAg
ICAgIHJldHVybiBbW3NlbGYgYXR0YWNobWVudFZpZXddIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVW
YWx1ZTpOU0FjY2Vzc2liaWxpdHlSb2xlQXR0cmlidXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlID0gbV9vYmplY3QtPnJvbGVWYWx1
ZSgpOwogCiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkxhYmVsICYmIGlzPEFj
Y2Vzc2liaWxpdHlMYWJlbD4oKm1fb2JqZWN0KSAmJiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5TGFi
ZWw+KCptX29iamVjdCkuY29udGFpbnNPbmx5U3RhdGljVGV4dCgpKQpAQCAtMjAzMCw4ICsyMDI3
LDcgQEAgc3RhdGljIE5TU3RyaW5nICpyb2xlVmFsdWVUb05TU3RyaW5nKEFjY2Vzc2liaWxpdHlS
b2xlIHZhbHVlKQogICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlVbmtub3duUm9sZTsKIH0KIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
VE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIC0gKE5TU3RyaW5nKilzdWJy
b2xlCiB7CiAgICAgaWYgKG1fb2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSkKQEAgLTIyNDEsMTkg
KzIyMzcsMTggQEAgc3RhdGljIE5TU3RyaW5nICpyb2xlVmFsdWVUb05TU3RyaW5nKEFjY2Vzc2li
aWxpdHlSb2xlIHZhbHVlKQogICAgIAogICAgIHJldHVybiBuaWw7CiB9Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogLSAoTlNTdHJpbmcqKXJvbGVEZXNjcmlwdGlvbgog
ewogICAgIGlmICghbV9vYmplY3QpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIC8vIGF0dGFjaG1lbnRzIGhhdmUgdGhlIEFYSW1hZ2Ug
cm9sZSwgYnV0IGEgZGlmZmVyZW50IHN1YnJvbGUKICAgICBpZiAobV9vYmplY3QtPmlzQXR0YWNo
bWVudCgpKQogICAgICAgICByZXR1cm4gW1tzZWxmIGF0dGFjaG1lbnRWaWV3XSBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5Um9sZURlc2NyaXB0aW9uQXR0cmlidXRl
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19F
TkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgb3ZlcnJpZGVSb2xlRGVzY3JpcHRpb24gPSBtX29iamVjdC0+cm9sZURlc2NyaXB0aW9uKCk7
CiAgICAgaWYgKCFvdmVycmlkZVJvbGVEZXNjcmlwdGlvbi5pc051bGwoKSAmJiAhb3ZlcnJpZGVS
b2xlRGVzY3JpcHRpb24uaXNFbXB0eSgpKQpAQCAtMzQ3Miw4ICszNDY3LDcgQEAgc3RhdGljIE5T
U3RyaW5nICpyb2xlVmFsdWVUb05TU3RyaW5nKEFjY2Vzc2liaWxpdHlSb2xlIHZhbHVlKQogICAg
IHJldHVybiBwYXJhbUF0dHJzOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKQogCiAtICh2b2lkKWFjY2Vzc2liaWxpdHlQZXJmb3JtUHJlc3NBY3Rpb24KIHsKQEAg
LTM1MzEsNyArMzUyNSw3IEBAIHN0YXRpYyBOU1N0cmluZyAqcm9sZVZhbHVlVG9OU1N0cmluZyhB
Y2Nlc3NpYmlsaXR5Um9sZSB2YWx1ZSkKICAgICAgICAgbV9vYmplY3QtPmRlY3JlbWVudCgpOwog
fQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19U
T1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogLSAodm9pZClhY2Nl
c3NpYmlsaXR5UGVyZm9ybVNob3dNZW51QWN0aW9uCiB7CkBAIC00MzQzLDggKzQzMzcsNyBAQCBz
dGF0aWMgdm9pZCBmb3JtYXRGb3JEZWJ1Z2dlcihjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYg
cmFuZ2UsIGNoYXIqIGJ1ZmZlciwgdQogICAgIHJldHVybiBOU05vdEZvdW5kOwogfQogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1Bf
TEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogLSAoTlNVSW50ZWdlcilhY2Nlc3Np
YmlsaXR5QXJyYXlBdHRyaWJ1dGVDb3VudDooTlNTdHJpbmcgKilhdHRyaWJ1dGUKIHsKICAgICBp
ZiAoIVtzZWxmIHVwZGF0ZU9iamVjdEJhY2tpbmdTdG9yZV0pCkBAIC00MzY1LDcgKzQzNTgsNyBA
QCBzdGF0aWMgdm9pZCBmb3JtYXRGb3JEZWJ1Z2dlcihjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5n
ZSYgcmFuZ2UsIGNoYXIqIGJ1ZmZlciwgdQogICAgIAogICAgIHJldHVybiBbc3VwZXIgYWNjZXNz
aWJpbGl0eUFycmF5QXR0cmlidXRlQ291bnQ6YXR0cmlidXRlXTsKIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiAtIChOU0FycmF5ICopYWNjZXNzaWJpbGl0eUFycmF5
QXR0cmlidXRlVmFsdWVzOihOU1N0cmluZyAqKWF0dHJpYnV0ZSBpbmRleDooTlNVSW50ZWdlcilp
bmRleCBtYXhDb3VudDooTlNVSW50ZWdlciltYXhDb3VudAogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCmluZGV4IDAyYjg0MjgzZWQzOWIxNDEyZGEw
YzAxMzNhMDI3MzlhMGI2NDIzMzQuLmYxMWM2ZGRlMzZhNmY0Y2I3MjQ2ZGI3YTA3N2UyZWI0NTE3
OTk0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9i
amVjdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3Qu
bW0KQEAgLTcwMiwxMyArNzAyLDEyIEBAIHN0YXRpYyB2b2lkIGdldExpc3RGcm9tTlNBcnJheShF
eGVjU3RhdGUgKmV4ZWMsIE5TQXJyYXkgKmFycmF5LCBSb290T2JqZWN0KiByb290CiAgICAgcmV0
dXJuIHNlbGY7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdvYmpjLW1pc3Npbmctc3VwZXItY2FsbHMiCitJR05P
UkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1Xb2JqYy1taXNzaW5nLXN1cGVyLWNhbGxzIikK
IC0gKHZvaWQpZGVhbGxvYwogewogICAgIHJldHVybjsKIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1Xb2JqYy1taXNz
aW5nLXN1cGVyLWNhbGxzIikKIAogKyAoV2ViVW5kZWZpbmVkICopdW5kZWZpbmVkCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2NsYXNzLm1tIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19jbGFzcy5tbQppbmRleCBjZTFlZjY1NTdhMDc2M2E3
ZDM0MzBhM2JmOTg2YTE5ODdmOGNiMzU2Li4zNjllYmM4OGRmMzk4M2I5MTM3MWRmNjQzNjBiZWMz
NDFlMTFjZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2Ns
YXNzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfY2xhc3MubW0KQEAg
LTE2MywxMCArMTYzLDkgQEAgRmllbGQqIE9iamNDbGFzczo6ZmllbGROYW1lZChQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UpIGNvbnMKICAgICBSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+IGZpZWxkTmFtZSA9IGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVXaXRoQ1N0cmlu
ZyhOVUxMLCBqc05hbWUuZGF0YSgpLCBrQ0ZTdHJpbmdFbmNvZGluZ0FTQ0lJKSk7CiAgICAgaWQg
dGFyZ2V0T2JqZWN0ID0gKHN0YXRpY19jYXN0PE9iamNJbnN0YW5jZSo+KGluc3RhbmNlKSktPmdl
dE9iamVjdCgpOwogI2lmIFBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmRlY2xhcmVkLXNlbGVj
dG9yIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV3VuZGVjbGFyZWQtc2VsZWN0b3IiKTsKICAg
ICBpZCBhdHRyaWJ1dGVzID0gW3RhcmdldE9iamVjdCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKGF0dHJpYnV0ZUtleXMpXSA/IFt0YXJnZXRPYmplY3QgcGVyZm9ybVNlbGVjdG9yOkBzZWxl
Y3RvcihhdHRyaWJ1dGVLZXlzKV0gOiBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV3VuZGVjbGFyZWQtc2VsZWN0b3IiKTsKICNl
bHNlCiAgICAgaWQgYXR0cmlidXRlcyA9IFt0YXJnZXRPYmplY3QgYXR0cmlidXRlS2V5c107CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9Db21tb25DcnlwdG9VdGls
aXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NvbW1vbkNyeXB0b1V0aWxpdGllcy5j
cHAKaW5kZXggZTA0OTJlZTY3MTEwZjg4YzczMTUyMTZkNmM2OGI2MzM0OTZkNzdhMC4uOGZlYWYz
NjAxMDkyZTQzZjhmMmEyY2I4MDQ3MTI1MmNmNzkyMGUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL0NvbW1vbkNyeXB0b1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL0NvbW1vbkNyeXB0b1V0aWxpdGllcy5jcHAKQEAgLTUyLDEwICs1Miw5IEBAIGJv
b2wgZ2V0Q29tbW9uQ3J5cHRvRGlnZXN0QWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXIgaGFzaEZ1bmN0aW9uLCBDQ0RpCiB7CiAgICAgc3dpdGNoIChoYXNoRnVuY3Rpb24pIHsKICAg
ICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8xOgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBhbGdvcml0aG0gPSBrQ0NEaWdlc3RTSEEx
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjI0OgogICAgICAg
ICBhbGdvcml0aG0gPSBrQ0NEaWdlc3RTSEEyMjQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNTWFjLmNwcAppbmRleCBiMmJjMjQ4
ODhjN2VlNzU4ZTlkYjQwMjM5N2E4ZmE2ZTRmMWQxZTA4Li44M2RjYTRmNWMwMjdiYTE3NzE0MzU3
MTg1NTBlOTVhZmM0NWM5NzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFj
L0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTU1hYy5jcHAKQEAgLTQwLDEwICs0MCw5IEBAIHN0
YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IGVuY3J5cHRBRVNfR0NNKGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgaXYsIGNvCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGNpcGhlclRleHQocGxh
aW5UZXh0LnNpemUoKSk7IC8vIFBlciBzZWN0aW9uIDUuMi4xLjI6IGh0dHA6Ly9udmxwdWJzLm5p
c3QuZ292L25pc3RwdWJzL0xlZ2FjeS9TUC9uaXN0c3BlY2lhbHB1YmxpY2F0aW9uODAwLTM4ZC5w
ZGYKICAgICBWZWN0b3I8dWludDhfdD4gdGFnKGRlc2lyZWRUYWdMZW5ndGhJbkJ5dGVzKTsKICAg
ICAvLyB0YWdMZW5ndGggaXMgYWN0dWFsIGFuIGlucHV0IDxyZGFyOi8vcHJvYmxlbS8zMDY2MDA3
ND4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklO
R19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIENDQ3J5cHRvclN0YXR1
cyBzdGF0dXMgPSBDQ0NyeXB0b3JHQ00oa0NDRW5jcnlwdCwga0NDQWxnb3JpdGhtQUVTLCBrZXku
ZGF0YSgpLCBrZXkuc2l6ZSgpLCBpdi5kYXRhKCksIGl2LnNpemUoKSwgYWRkaXRpb25hbERhdGEu
ZGF0YSgpLCBhZGRpdGlvbmFsRGF0YS5zaXplKCksIHBsYWluVGV4dC5kYXRhKCksIHBsYWluVGV4
dC5zaXplKCksIGNpcGhlclRleHQuZGF0YSgpLCB0YWcuZGF0YSgpLCAmZGVzaXJlZFRhZ0xlbmd0
aEluQnl0ZXMpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJO
SU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGlmIChzdGF0
dXMpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OwogCkBAIC01
OCwxMCArNTcsOSBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBkZWN5cHRB
RVNfR0NNKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaXYsIGNvbgogICAgIFZlY3Rvcjx1aW50OF90
PiB0YWcoZGVzaXJlZFRhZ0xlbmd0aEluQnl0ZXMpOwogICAgIHNpemVfdCBvZmZzZXQgPSBjaXBo
ZXJUZXh0LnNpemUoKSAtIGRlc2lyZWRUYWdMZW5ndGhJbkJ5dGVzOwogICAgIC8vIHRhZ0xlbmd0
aCBpcyBhY3R1YWwgYW4gaW5wdXQgPHJkYXI6Ly9wcm9ibGVtLzMwNjYwMDc0PgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQ0NDcnlwdG9yU3RhdHVzIHN0YXR1cyA9IEND
Q3J5cHRvckdDTShrQ0NEZWNyeXB0LCBrQ0NBbGdvcml0aG1BRVMsIGtleS5kYXRhKCksIGtleS5z
aXplKCksIGl2LmRhdGEoKSwgaXYuc2l6ZSgpLCBhZGRpdGlvbmFsRGF0YS5kYXRhKCksIGFkZGl0
aW9uYWxEYXRhLnNpemUoKSwgY2lwaGVyVGV4dC5kYXRhKCksIG9mZnNldCwgcGxhaW5UZXh0LmRh
dGEoKSwgdGFnLmRhdGEoKSwgJmRlc2lyZWRUYWdMZW5ndGhJbkJ5dGVzKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9tYWMvU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0KaW5kZXggYTUxN2Y5MjJl
MDQ4ZDE0MTc3YzRmNmY4YzQzNjIzMTMwODgxNDk2OS4uNDA1NGJmNzliMzc3ZWNjODU2NWIwOGE1
YjI5NGE2ZGFkZmUyMDZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9T
ZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
bWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tCkBAIC0yMjAsMTUgKzIyMCwxNCBAQCBi
b29sIHdyYXBTZXJpYWxpemVkQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgbWFzdGVy
S2V5LCBjb25zdCBWZWN0b3I8dWludAogICAgIHNpemVfdCB0YWdMZW5ndGggPSAxNjsKICAgICB1
aW50OF90IHRhZ1t0YWdMZW5ndGhdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
ICAgICBzdGF0dXMgPSBDQ0NyeXB0b3JHQ00oa0NDRW5jcnlwdCwga0NDQWxnb3JpdGhtQUVTMTI4
LCBrZWsuZGF0YSgpLCBrZWsuc2l6ZSgpLAogICAgICAgICBudWxscHRyLCAwLCAvLyBpdgogICAg
ICAgICBudWxscHRyLCAwLCAvLyBhdXRoIGRhdGEKICAgICAgICAga2V5LmRhdGEoKSwga2V5LnNp
emUoKSwKICAgICAgICAgZW5jcnlwdGVkS2V5LmRhdGEoKSwKICAgICAgICAgdGFnLCAmdGFnTGVu
Z3RoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFO
R19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIGlmIChzdGF0dXMgIT0g
a0NDU3VjY2VzcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjg5LDE1ICsyODgsMTQgQEAg
Ym9vbCB1bndyYXBTZXJpYWxpemVkQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgbWFz
dGVyS2V5LCBjb25zdCBWZWN0b3I8dWkKICAgICB1aW50OF90IGFjdHVhbFRhZ1t0YWdMZW5ndGhd
OwogCiAgICAga2V5LnJlc2l6ZShlbmNyeXB0ZWRLZXkuc2l6ZSgpKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgIHN0YXR1cyA9IENDQ3J5cHRvckdDTShrQ0NEZWNyeXB0LCBr
Q0NBbGdvcml0aG1BRVMxMjgsIGtlay5kYXRhKCksIGtlay5zaXplKCksCiAgICAgICAgIG51bGxw
dHIsIDAsIC8vIGl2CiAgICAgICAgIG51bGxwdHIsIDAsIC8vIGF1dGggZGF0YQogICAgICAgICBl
bmNyeXB0ZWRLZXkuZGF0YSgpLCBlbmNyeXB0ZWRLZXkuc2l6ZSgpLAogICAgICAgICBrZXkuZGF0
YSgpLAogICAgICAgICBhY3R1YWxUYWcsICZ0YWdMZW5ndGgpOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogCiAgICAgaWYgKHN0YXR1cyAhPSBrQ0NTdWNjZXNzKQogICAgICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNl
dWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5weSBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5Cmlu
ZGV4IGIzNGU2MTdiMTQ2ZDMyOWZiMWJjMzJhMGJiNzBjN2NiYmE0OTk5MWEuLjY3YmY5OGIwOWI3
MTRkNGY1ZmJhYTFlMTczY2Y0ZjAxZjdjOWE4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBh
dGliaWxpdHlFbGVtZW50TWFwLnB5CkBAIC05NCwxMSArOTQsOCBAQCBvdXRwdXRfZmlsZS53cml0
ZSgiIiIKIAogI2luY2x1ZGUgIkNTU1BhcnNlclNlbGVjdG9yLmgiCiAKLSNpZiBkZWZpbmVkKF9f
Y2xhbmdfXykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIKLSNlbmRpZgorSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3Vua25vd24tcHJhZ21hcyIpCitJR05PUkVfV0FSTklO
R19DTEFOR19UT1BfTEVWRUwoIi1XaW1wbGljaXQtZmFsbHRocm91Z2giKQogCiAvLyBPbGRlciB2
ZXJzaW9ucyBvZiBncGVyZiBsaWtlIHRvIHVzZSB0aGUgYHJlZ2lzdGVyYCBrZXl3b3JkLgogI2Rl
ZmluZSByZWdpc3RlcgpAQCAtMjAzLDkgKzIwMCw4IEBAIFBzZXVkb0NsYXNzT3JDb21wYXRpYmls
aXR5UHNldWRvRWxlbWVudCBwYXJzZVBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRT
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2lmIGRlZmluZWQoX19jbGFuZ19fKQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitJR05PUkVfV0FSTklOR19DTEFOR19U
T1BfTEVWRUxfRU5EKCItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIikKK0lHTk9SRV9XQVJOSU5HX0NM
QU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5rbm93bi1wcmFnbWFzIikKIAogIiIiKQogb3V0cHV0X2Zp
bGUuY2xvc2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBz
ZXVkb0VsZW1lbnRzTWFwLnB5IGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVk
b0VsZW1lbnRzTWFwLnB5CmluZGV4IDIwMTgyNmVkNTEzODk0ZDRmZjdmM2FmMDUxM2FkNzIzODY5
MmFmODguLjMzNGM5MzYxZDFhMWI0YTE1MDJmMWI0YTY5MmU2MjljMzY5ZDBhYTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5weQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvRWxlbWVudHNNYXAucHkK
QEAgLTkyLDExICs5Miw4IEBAIG91dHB1dF9maWxlLndyaXRlKCIiIgogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlNlbGVjdG9yUHNldWRvVHlwZU1hcC5oIgogCi0jaWYgZGVmaW5lZChf
X2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XaW1wbGljaXQtZmFsbHRocm91Z2giCi0jZW5kaWYKK0lHTk9SRV9X
QVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmtub3duLXByYWdtYXMiKQorSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfVE9QX0xFVkVMKCItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIikKIAogLy8gT2xkZXIg
dmVyc2lvbnMgb2YgZ3BlcmYgbGlrZSB0byB1c2UgdGhlIGByZWdpc3RlcmAga2V5d29yZC4KICNk
ZWZpbmUgcmVnaXN0ZXIKQEAgLTE5OCw5ICsxOTUsOCBAQCBDU1NTZWxlY3Rvcjo6UHNldWRvRWxl
bWVudFR5cGUgcGFyc2VQc2V1ZG9FbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZ0ltcGwmIHBzZXVk
bwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
VE9QX0xFVkVMX0VORCgiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIpCitJR05PUkVfV0FSTklOR19D
TEFOR19UT1BfTEVWRUxfRU5EKCItV3Vua25vd24tcHJhZ21hcyIpCiAKICIiIikKIG91dHB1dF9m
aWxlLmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJh
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAppbmRleCA2
NjUwODIwM2Q0Njg4NzA2YTc1YTY5NzcwNTM0NTY0MWJmY2FiMDY0Li5iNzljZTA4ODUwYWM4YWEx
NDUyZmFhMDEwYmE3OGQ4YWI4YzEyOGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRl
cmF0b3IuY3BwCkBAIC0yMDExLDEwICsyMDExLDcgQEAgc3RhdGljIGlubGluZSBib29sIGNvbnRh
aW5zS2FuYUxldHRlcnMoY29uc3QgU3RyaW5nJiBwYXR0ZXJuKQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotI2VuZGlmCitJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfVE9QX0xFVkVMKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIC8vIE5PVEU6IElDVSdzIHVub3JtX25vcm1hbGl6
ZSBmdW5jdGlvbiBpcyBkZXByZWNhdGVkLgogCiBzdGF0aWMgdm9pZCBub3JtYWxpemVDaGFyYWN0
ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIFZlY3RvcjxVQ2hh
cj4mIGJ1ZmZlcikKQEAgLTIwMzgsOSArMjAzNSw3IEBAIHN0YXRpYyB2b2lkIG5vcm1hbGl6ZUNo
YXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgVmVjdG9y
CiAgICAgQVNTRVJUKHN0YXR1cyA9PSBVX1NUUklOR19OT1RfVEVSTUlOQVRFRF9XQVJOSU5HKTsK
IH0KIAotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cG9wCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFOR19UT1BfTEVWRUxfRU5EKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogc3RhdGljIGJvb2wgaXNOb25MYXRpbjFTZXBh
cmF0b3IoVUNoYXIzMiBjaGFyYWN0ZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hYy9FZGl0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0
b3JNYWMubW0KaW5kZXggY2YyODliZjcwZTQwMDAzNjc2NzgwOGQxYTE2OTlmNjgyMzdhYWMwMC4u
N2U3M2E4NzVmMWFjNDQzZWRmOGM4YzA5ZTc4MTg4ZDI2ZmQxNTlmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQpAQCAtODEsMTEgKzgxLDEwIEBAIHZvaWQgRWRpdG9y
OjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIGJvb2wgYWxsb3dQ
bGFpblRleHQsIE1hCiB7CiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IHNlbGVjdGVkUmFuZ2Uo
KTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5H
X0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgLy8gRklYTUU6IEhvdyBj
YW4gdGhpcyBoYXJkLWNvZGVkIHBhc3RlYm9hcmQgbmFtZSBiZSByaWdodCwgZ2l2ZW4gdGhhdCB0
aGUgcGFzc2VkLWluIHBhc3RlYm9hcmQgaGFzIGEgbmFtZT8KICAgICBjbGllbnQoKS0+c2V0SW5z
ZXJ0aW9uUGFzdGVib2FyZChOU0dlbmVyYWxQYm9hcmQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogCiAgICAgYm9vbCBjaG9zZVBsYWluVGV4dDsKICAgICBSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gZnJhZ21lbnQgPSB3ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQoKnBhc3RlYm9hcmQs
ICpyYW5nZSwgYWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KTsKQEAgLTExMSwxMSArMTEw
LDEwIEBAIHZvaWQgRWRpdG9yOjp0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oKQogCiAgICAg
VmVjdG9yPFN0cmluZz4gdHlwZXM7CiAgICAgdHlwZXMuYXBwZW5kKFN0cmluZyhsZWdhY3lTdHJp
bmdQYXN0ZWJvYXJkVHlwZSgpKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAg
ICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnNldFR5cGVzKHR5
cGVzLCBOU0ZpbmRQYm9hcmQpOwogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJk
U3RyYXRlZ3koKS0+c2V0U3RyaW5nRm9yVHlwZShtX2ZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmll
ZEJ5RW5jb2Rpbmcoc2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyKCkpLCBsZWdhY3lTdHJpbmdQ
YXN0ZWJvYXJkVHlwZSgpLCBOU0ZpbmRQYm9hcmQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogfQogCiB2b2lkIEVkaXRvcjo6cmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgbWFpbEJsb2Nr
cXVvdGVIYW5kbGluZykKQEAgLTE2OSwxMSArMTY3LDEwIEBAIHZvaWQgRWRpdG9yOjpyZXBsYWNl
Tm9kZUZyb21QYXN0ZWJvYXJkKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5h
bWUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogICAgIC8vIEZJWE1FOiBIb3cgY2FuIHRoaXMgaGFyZC1jb2RlZCBwYXN0ZWJvYXJkIG5h
bWUgYmUgcmlnaHQsIGdpdmVuIHRoYXQgdGhlIHBhc3NlZC1pbiBwYXN0ZWJvYXJkIGhhcyBhIG5h
bWU/CiAgICAgY2xpZW50KCktPnNldEluc2VydGlvblBhc3RlYm9hcmQoTlNHZW5lcmFsUGJvYXJk
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19F
TkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIGJvb2wgY2hvc2VQbGFpblRl
eHQ7CiAgICAgaWYgKFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IHdlYkNvbnRl
bnRGcm9tUGFzdGVib2FyZChwYXN0ZWJvYXJkLCAqcmFuZ2UsIHRydWUsIGNob3NlUGxhaW5UZXh0
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IGEy
NjQzMGNmMjUyNGFkMjA0ZDYxMzc5YTBlZDBiMDA5OTY1NmI5MWQuLmYwMDUyYWFlMzlhYWJkMDg0
ZGMzYmU5NDBlZTljMGEyMjY0ZGVkMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVu
dEhhbmRsZXJNYWMubW0KQEAgLTYxMiwxMCArNjEyLDkgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNl
bmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQp
CiAgICAgICAgIC8vIG5vIHVwLXRvLWRhdGUgY2FjaGUgb2YgdGhlbSBhbnl3aGVyZS4KICAgICAg
ICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91
c2VNb3ZlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246
W1t2aWV3LT5wbGF0Zm9ybVdpZGdldCgpIHdpbmRvd10KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVy
dFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1v
ZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdFdmVudCBtb2RpZmllckZsYWdzXQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1l
c3RhbXBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjpb
aW5pdGlhdGluZ0V2ZW50IHdpbmRvd051bWJlcl0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCmluZGV4IDUyZGI5OWUwZjllNTdm
M2JhMzU4ZGY4NWYwNzFkYjc4NTI4NGJjMGYuLmM2NzZiZDE0MzJlNTBjMjc1ODI5Zjc1ZDk0YWI0
NTAwYjI3ZGVjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2Vydmlj
ZXNPdmVybGF5Q29udHJvbGxlci5tbQpAQCAtMTMyLDEwICsxMzIsOSBAQCB2b2lkIFNlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGlj
c0xheWVyKiwgRwogCiAgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IGdyYXBoaWNzQ29udGV4
dC5wbGF0Zm9ybUNvbnRleHQoKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgQ0dMYXllclJlZiBoaWdobGlnaHRMYXllciA9IERESGlnaGxpZ2h0R2V0TGF5ZXJXaXRoQ29u
dGV4dChkZEhpZ2hsaWdodCgpLCBjZ0NvbnRleHQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogICAgIENHUmVjdCBoaWdobGlnaHRCb3VuZGluZ1JlY3QgPSBEREhpZ2hsaWdodEdldEJv
dW5kaW5nUmVjdChkZEhpZ2hsaWdodCgpKTsKICAgICBoaWdobGlnaHRCb3VuZGluZ1JlY3Qub3Jp
Z2luID0gQ0dQb2ludFplcm87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVk
U3RyaW5ncy5jcHAKaW5kZXggYjA1NTBjZjUzMDVlODYzNWRiNGQ1YTgyZTg5NjZmMDhmMDJhNzUw
Yi4uN2NmN2U4MTYzYTEwN2NiY2IxMmQ5MzQ2YjU2NDZlODdiMTZkMDA2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTU0LDE0ICs1NCw5IEBA
IFN0cmluZyBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoU3RyaW5nIGZvcm1hdCwgLi4uKQogICAgIHZh
X2xpc3QgYXJndW1lbnRzOwogICAgIHZhX3N0YXJ0KGFyZ3VtZW50cywgZm9ybWF0KTsKIAotI2lm
IENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2VuZGlmCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZm9ybWF0LW5vbmxpdGVyYWwiKTsKICAgICBhdXRv
IHJlc3VsdCA9IGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVXaXRoRm9ybWF0QW5kQXJndW1lbnRzKDAs
IDAsIGZvcm1hdC5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBhcmd1bWVudHMpKTsKLSNpZiBDT01Q
SUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdmb3JtYXQtbm9ubGl0ZXJhbCIpOwogCiAgICAgdmFf
ZW5kKGFyZ3VtZW50cyk7CiAgICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaAppbmRleCA0MWE1MGIyMTNmZGUwOGQzN2ZkYmFh
Y2JiYzk2YjYxYWM4NzMxMzVjLi42YTM4ZWQ5NmU4MzM5Nzc3YTJkYjE5Y2YyMDA1ODhjNjUyZWY5
ZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oCkBAIC0x
OTUsMTAgKzE5NSw5IEBAIHN0ZDo6b3B0aW9uYWw8U2NyZWVuRGF0YT4gU2NyZWVuRGF0YTo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCiAKICAgICAgICAgYXV0byBjb2xvclNwYWNlRGF0YSA9IGFk
b3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGljY0RhdGEtPmRhdGEoKSwg
aWNjRGF0YS0+c2l6ZSgpKSk7CiAgICAgICAgIC8vIEZJWE1FOiA8aHR0cDovL3dlYmtpdC5vcmcv
Yi8xODQzNTg+IFdlIHNob3VsZCBzd2l0Y2ggdG8gQ0dDb2xvclNwYWNlQ3JlYXRlSUNDQmFzZWQu
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJO
SU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIGNnQ29sb3JT
cGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aElDQ1Byb2ZpbGUoY29sb3JTcGFj
ZURhdGEuZ2V0KCkpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcAppbmRleCBiNmNlNjk2
MjA1MTA3YmQyMmU5NGZjNDM1ZDg3MDFlMGY4M2VlNjJlLi5jZmJhODMxNGMxMGI3ODVhNzZmNWE4
OWJlMjIwZGJkNzE2MWZmNDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
YW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHAKQEAgLTEwMywxMCArMTAz
LDkgQEAgSElER2FtZXBhZFByb3ZpZGVyOjpISURHYW1lcGFkUHJvdmlkZXIoKQogCiB2b2lkIEhJ
REdhbWVwYWRQcm92aWRlcjo6c3RvcE1vbml0b3JpbmdJbnB1dCgpCiB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9u
bnVsbCIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdub25udWxsIik7CiAgICAgSU9ISURN
YW5hZ2VyUmVnaXN0ZXJJbnB1dFZhbHVlQ2FsbGJhY2sobV9tYW5hZ2VyLmdldCgpLCBudWxscHRy
LCBudWxscHRyKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FS
TklOR19DTEFOR19FTkQoIi1Xbm9ubnVsbCIpOwogfQogCiB2b2lkIEhJREdhbWVwYWRQcm92aWRl
cjo6c3RhcnRNb25pdG9yaW5nSW5wdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKaW5kZXggNWYyOWFmODVhOTQ4M2Q0NzYy
ZTk4N2IzMjA1YjgwZTE3YzNiYjE5Yy4uZWFhZmQ3OTA0ZWQ4ZmNhNDM5N2RhYWJjMzdlMTgzMjNm
NzVhNjcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxh
dGZvcm1EaXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Q
bGF0Zm9ybURpc3BsYXkuY3BwCkBAIC0xMTgsMTQgKzExOCw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxQ
bGF0Zm9ybURpc3BsYXk+IFBsYXRmb3JtRGlzcGxheTo6Y3JlYXRlUGxhdGZvcm1EaXNwbGF5KCkK
IFBsYXRmb3JtRGlzcGxheSYgUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkKIHsKICAg
ICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZXhpdC10aW1lLWRlc3RydWN0b3JzIgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkcoIi1XZXhpdC10aW1lLWRlc3RydWN0b3JzIik7CiAgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IGRpc3BsYXk7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XZXhpdC10aW1lLWRlc3RydWN0b3JzIik7CiAgICAgc3RkOjpjYWxsX29uY2Uo
b25jZUZsYWcsIFtdewogICAgICAgICBkaXNwbGF5ID0gY3JlYXRlUGxhdGZvcm1EaXNwbGF5KCk7
CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
dXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcAppbmRleCA0ZDVk
ODA4OGE5MmNlOTdlOWNkNDgwYmM0YzhlYTU2OGI4ZTZhNmJhLi4xOWViZmM3MWFiMzExMDNhMDM5
MmM1ZmZkZjRmODBmZDFhMjcxODIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRv
ci5jcHAKQEAgLTY5LDEwICs2OSw3IEBAIGJvb2wgU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJh
dG9yOjpjb25zdW1lU2xvd0Nhc2UoVUNoYXIzMiYgY2hhcmFjdGVyLCB1bnNpZ25lCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HX1RP
UF9MRVZFTCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAvLyBOT1RFOiBJQ1UncyB1bm9y
bV9ub3JtYWxpemUgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4KIAogVUNoYXIzMiBTdXJyb2dhdGVQ
YWlyQXdhcmVUZXh0SXRlcmF0b3I6Om5vcm1hbGl6ZVZvaWNpbmdNYXJrcygpCkBAIC05NSw4ICs5
Miw2IEBAIFVDaGFyMzIgU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yOjpub3JtYWxpemVW
b2ljaW5nTWFya3MoKQogICAgIHJldHVybiAwOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NM
QU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdf
R0NDX09SX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0K
aW5kZXggYjJjMWU5NjYzNGIzZjU2NGZmYzBjNWJkMTZiMjllZTQyZDg0ZmEyYy4uY2I0NTFmMjEx
Zjk1OGE2OTA3MTg1NjE0MjE3ZjJlYzA1NjU1ZGZhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZP
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQpAQCAtMTIzLDEwICsxMjMsOSBAQCB2b2lk
IE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDOjp1cGRhdGVPcHRpb25zKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBjaGFyYWN0ZXJpcwogCiAgICAgICAgIG1fb3B0aW9ucy5yZW1vdmUoKF9fYnJpZGdl
IENGVHlwZVJlZilyZW1vdmVkQVZPcHRpb24pOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogICAgIEFWTWVkaWFTZWxlY3Rpb25PcHRpb24qIHNlbGVjdGVkT3B0aW9uID0g
W21fcGxheWVySXRlbSBzZWxlY3RlZE1lZGlhT3B0aW9uSW5NZWRpYVNlbGVjdGlvbkdyb3VwOm1f
bWVkaWFTZWxlY3Rpb25Hcm91cC5nZXQoKV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgZm9yIChBVk1lZGlhU2VsZWN0aW9uT3B0aW9uKiBhZGRlZEFWT3B0aW9uIGluIGFkZGVk
QVZPcHRpb25zLmdldCgpKSB7CiAgICAgICAgIGF1dG8gYWRkZWRPcHRpb24gPSBNZWRpYVNlbGVj
dGlvbk9wdGlvbkFWRk9iakM6OmNyZWF0ZSgqdGhpcywgYWRkZWRBVk9wdGlvbik7CiAgICAgICAg
IGlmIChhZGRlZEFWT3B0aW9uID09IHNlbGVjdGVkT3B0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFW
U3RyZWFtU2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0KaW5kZXggMjZhYjAyNGQ4
YmM5ZjgyYmY3ZDY1NTU5MzZkYzVlYjVhYTRiNTAyOC4uOTM1N2JkYjFkODUxMjEzMjAzNTI0ZjUz
ZmVmMjVhNjRmOGI5NDkxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCkBAIC0xOTgsMTIgKzE5OCwxMSBAQCBib29sIENETVNl
c3Npb25BVlN0cmVhbVNlc3Npb246OnVwZGF0ZShVaW50OEFycmF5KiBrZXksIFJlZlB0cjxVaW50
OEFycmF5PiYgbmV4dAogCiAgICAgICAgIFJldGFpblB0cjxOU0RhdGE+IGNlcnRpZmljYXRlRGF0
YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6bV9jZXJ0aWZpY2F0ZS0+
ZGF0YSgpIGxlbmd0aDptX2NlcnRpZmljYXRlLT5sZW5ndGgoKV0pOwogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xb2Jq
Yy1saXRlcmFsLWNvbnZlcnNpb24iCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV29iamMtbGl0
ZXJhbC1jb252ZXJzaW9uIik7CiAgICAgICAgIFN0cmluZyBzdG9yYWdlUGF0aCA9IHRoaXMtPnN0
b3JhZ2VQYXRoKCk7CiAgICAgICAgIGlmICghc3RvcmFnZVBhdGguaXNFbXB0eSgpICYmIFtnZXRB
VlN0cmVhbVNlc3Npb25DbGFzcygpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocmVtb3Zl
UGVuZGluZ0V4cGlyZWRTZXNzaW9uUmVwb3J0czp3aXRoQXBwSWRlbnRpZmllcjpzdG9yYWdlRGly
ZWN0b3J5QXRVUkw6KV0pCiAgICAgICAgICAgICBbZ2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSBy
ZW1vdmVQZW5kaW5nRXhwaXJlZFNlc3Npb25SZXBvcnRzOkBbbV9leHBpcmVkU2Vzc2lvbi5nZXQo
KV0gd2l0aEFwcElkZW50aWZpZXI6Y2VydGlmaWNhdGVEYXRhLmdldCgpIHN0b3JhZ2VEaXJlY3Rv
cnlBdFVSTDpbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOnN0b3JhZ2VQYXRoXV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdvYmpjLWxp
dGVyYWwtY29udmVyc2lvbiIpOwogICAgICAgICBtX2V4cGlyZWRTZXNzaW9uID0gbnVsbHB0cjsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtMjQzLDEwICsyNDIsOSBAQCBib29sIENE
TVNlc3Npb25BVlN0cmVhbVNlc3Npb246OnVwZGF0ZShVaW50OEFycmF5KiBrZXksIFJlZlB0cjxV
aW50OEFycmF5PiYgbmV4dAogICAgICAgICB9CiAKICAgICAgICAgTlNFcnJvciogZXJyb3IgPSBu
aWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJCUlHTk9SRV9XQVJOSU5H
X0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIFJldGFpblB0cjxO
U0RhdGE+IHJlcXVlc3QgPSBbcHJvdGVjdGVkU291cmNlQnVmZmVyLT5wYXJzZXIoKSBzdHJlYW1p
bmdDb250ZW50S2V5UmVxdWVzdERhdGFGb3JBcHA6Y2VydGlmaWNhdGVEYXRhLmdldCgpIGNvbnRl
bnRJZGVudGlmaWVyOmluaXREYXRhLmdldCgpIHRyYWNrSUQ6cHJvdGVjdGVkU291cmNlQnVmZmVy
LT5wcm90ZWN0ZWRUcmFja0lEKCkgb3B0aW9uczpvcHRpb25zLmdldCgpIGVycm9yOiZlcnJvcl07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VO
RCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgICAgIGlmICghW3Byb3RlY3Rl
ZFNvdXJjZUJ1ZmZlci0+cGFyc2VyKCkgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihjb250
ZW50UHJvdGVjdGlvblNlc3Npb25JZGVudGlmaWVyKV0pCiAgICAgICAgICAgICBtX3Nlc3Npb25J
ZCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKTsKQEAgLTI3MywxMCArMjcxLDkgQEAgYm9v
bCBDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQ
dHI8VWludDhBcnJheT4mIG5leHQKICAgICBlcnJvckNvZGUgPSBNZWRpYVBsYXllcjo6Tm9FcnJv
cjsKICAgICBzeXN0ZW1Db2RlID0gMDsKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBrZXlEYXRhID0g
YWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczprZXktPmRhdGEoKSBsZW5ndGg6
a2V5LT5sZW5ndGgoKV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlH
Tk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW3By
b3RlY3RlZFNvdXJjZUJ1ZmZlci0+cGFyc2VyKCkgcHJvY2Vzc0NvbnRlbnRLZXlSZXNwb25zZURh
dGE6a2V5RGF0YS5nZXQoKSBmb3JUcmFja0lEOnByb3RlY3RlZFNvdXJjZUJ1ZmZlci0+cHJvdGVj
dGVkVHJhY2tJRCgpXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FS
TklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIHJldHVy
biB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1l
ZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IGQzMjZmMmZhMmZiMmIxYzYwZWQ5ZTNiOTM4OGFhNTQ1
OWQ5ZDc1ZTEuLmJjYTg5NGQ4NTFkNzBjZDMwYjAyZmZmMGE1Y2Q0YWExN2MyZTk4ZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDLmgKQEAgLTU0LDExICs1NCwxMSBAQCBwdWJsaWM6CiAKICAgICAvLyBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQ0Vycm9yQ2xpZW50CiAgICAgdm9pZCBsYXllckRpZFJlY2VpdmVFcnJvcihB
VlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciAqLCBOU0Vycm9yICosIGJvb2wmIHNob3VsZElnbm9y
ZSkgb3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3Vua25vd24tcHJhZ21hcyIpCisgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3
IikKICAgICB2b2lkIHJlbmRlcmVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyQXVkaW9S
ZW5kZXJlciAqLCBOU0Vycm9yICosIGJvb2wmIHNob3VsZElnbm9yZSkgb3ZlcnJpZGU7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xF
VkVMX0VORCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCisgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmtub3duLXByYWdtYXMiKQogCiAgICAgdm9pZCBh
ZGRTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqKTsKICAgICB2b2lkIHJl
bW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KaW5kZXggZGMzZGVlYjNmNzkyMDkwZmIwNjcyN2VmNDQ3MzRhZDA4M2Q1MGY4
Mi4uYjM1YmQ0MjBiNGZjMDVhNGRiNjZlNjcyYTEwZDU1ZjFkYzNmMzFiMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLm1tCkBAIC0yNjk5LDEwICsyNjk5LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpzZXRDdXJyZW50VGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1By
aXYKIAogICAgIGlmICh0cmFjaykgewogICAgICAgICBpZiAodHJhY2stPnRleHRUcmFja0NhdGVn
b3J5KCkgPT0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6TGVnYWN5Q2xvc2VkQ2FwdGlvbikK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwkJCUlHTk9SRV9XQVJOSU5HX0NM
QU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgICAgICBbbV9hdlBsYXll
ci5nZXQoKSBzZXRDbG9zZWRDYXB0aW9uRGlzcGxheUVuYWJsZWQ6WUVTXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKwkJCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogI2lmIEhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElP
Tl9HUk9VUCkKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQogICAgICAgICBlbHNlIGlmICh0cmFj
ay0+dGV4dFRyYWNrQ2F0ZWdvcnkoKSA9PSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpPdXRP
ZkJhbmQpCkBAIC0yNzE1LDEwICsyNzE0LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpzZXRDdXJyZW50VGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXYKICNp
ZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiAgICAgICAgIFttX2F2
UGxheWVySXRlbS5nZXQoKSBzZWxlY3RNZWRpYU9wdGlvbjowIGluTWVkaWFTZWxlY3Rpb25Hcm91
cDpzYWZlTWVkaWFTZWxlY3Rpb25Hcm91cEZvckxlZ2libGVNZWRpYSgpXTsKICNlbmRpZgotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCQlJR05PUkVfV0FSTklOR19DTEFORygi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBbbV9hdlBsYXllci5nZXQoKSBz
ZXRDbG9zZWRDYXB0aW9uRGlzcGxheUVuYWJsZWQ6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorCQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICB9CiAKIH0KQEAgLTI3MzQsMTAgKzI3MzIsOSBAQCBTdHJpbmcgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNr
KCkgY29uc3QKICNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiAg
ICAgLy8gSWYgQVZGb3VuZGF0aW9uIGhhcyBhbiBhdWRpYmxlIGdyb3VwLCByZXR1cm4gdGhlIGxh
bmd1YWdlIG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgYXVkaWJsZSBvcHRpb24uCiAgICAgQVZN
ZWRpYVNlbGVjdGlvbkdyb3VwVHlwZSAqYXVkaWJsZUdyb3VwID0gW21fYXZBc3NldC5nZXQoKSBt
ZWRpYVNlbGVjdGlvbkdyb3VwRm9yTWVkaWFDaGFyYWN0ZXJpc3RpYzpBVk1lZGlhQ2hhcmFjdGVy
aXN0aWNBdWRpYmxlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05P
UkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIEFWTWVk
aWFTZWxlY3Rpb25PcHRpb25UeXBlICpjdXJyZW50bHlTZWxlY3RlZEF1ZGlibGVPcHRpb24gPSBb
bV9hdlBsYXllckl0ZW0uZ2V0KCkgc2VsZWN0ZWRNZWRpYU9wdGlvbkluTWVkaWFTZWxlY3Rpb25H
cm91cDphdWRpYmxlR3JvdXBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9S
RV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGlm
IChjdXJyZW50bHlTZWxlY3RlZEF1ZGlibGVPcHRpb24pIHsKICAgICAgICAgbV9sYW5ndWFnZU9m
UHJpbWFyeUF1ZGlvVHJhY2sgPSBbW2N1cnJlbnRseVNlbGVjdGVkQXVkaWJsZU9wdGlvbiBsb2Nh
bGVdIGxvY2FsZUlkZW50aWZpZXJdOwogICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAi
bGFuZ3VhZ2Ugb2Ygc2VsZWN0ZWQgYXVkaWJsZSBvcHRpb24gIiwgbV9sYW5ndWFnZU9mUHJpbWFy
eUF1ZGlvVHJhY2spOwpAQCAtMzI0OCwxMCArMzI0NSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y2FuUGxheUZhc3RSZXZlcnNlRGlkQ2hhbmdlKGJvb2wgbmV3
VmFsCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNob3VsZERp
c2FibGVTbGVlcChib29sIGZsYWcpCiB7CiAjaWYgUExBVEZPUk0oSU9TKSAmJiAhUExBVEZPUk0o
SU9TX1NJTVVMQVRPUikgJiYgIVBMQVRGT1JNKElPU01BQykKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogICAgIFttX2F2UGxheWVyIF9zZXRQcmV2ZW50c1NsZWVwRHVyaW5nVmlkZW9Q
bGF5YmFjazpmbGFnXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FS
TklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICNlbHNlCiAgICAg
VU5VU0VEX1BBUkFNKGZsYWcpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4
IDA0NDRkOWFmMDU3M2Y1YjcyN2E2MzU5ZGI1ZGU0NzFkYTgyN2FlZTMuLjM5YTY1OTZmYjQ4YmVh
MzlmNDAzZjdjOTc0ZTI0OTk1M2E2NmVlZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBA
IC02OSwxMiArNjksMTIgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5
cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiB0eXBlcyk7CiAg
ICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1l
ZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21h
cyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFi
aWxpdHktbmV3IgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmtub3du
LXByYWdtYXMiKQorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmd1YXJk
ZWQtYXZhaWxhYmlsaXR5LW5ldyIpCiAgICAgdm9pZCBhZGRBdWRpb1JlbmRlcmVyKEFWU2FtcGxl
QnVmZmVyQXVkaW9SZW5kZXJlciopOwogICAgIHZvaWQgcmVtb3ZlQXVkaW9SZW5kZXJlcihBVlNh
bXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3VuZ3VhcmRlZC1hdmFp
bGFiaWxpdHktbmV3IikKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCIt
V3Vua25vd24tcHJhZ21hcyIpCiAKICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdv
cmtTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJl
YWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKQEAgLTg3LDExICs4NywxMSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRMb2FkaW5nUHJvZ3Jlc3NzZWQoYm9vbCBmbGFnKSB7IG1fbG9hZGluZ1Byb2dy
ZXNzZWQgPSBmbGFnOyB9CiAgICAgdm9pZCBzZXRIYXNBdmFpbGFibGVWaWRlb0ZyYW1lKGJvb2wp
OwogICAgIGJvb2wgaGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpIGNvbnN0IG92ZXJyaWRlOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
X1RPUF9MRVZFTCgiLVd1bmtub3duLXByYWdtYXMiKQorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
X1RPUF9MRVZFTCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCiAgICAgdm9pZCBzZXRI
YXNBdmFpbGFibGVBdWRpb1NhbXBsZShBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqLCBib29s
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFO
R19UT1BfTEVWRUxfRU5EKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKKyAgICBJR05P
UkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3Vua25vd24tcHJhZ21hcyIpCiAgICAg
Ym9vbCBhbGxSZW5kZXJlcnNIYXZlQXZhaWxhYmxlU2FtcGxlcygpIGNvbnN0IHsgcmV0dXJuIG1f
YWxsUmVuZGVyZXJzSGF2ZUF2YWlsYWJsZVNhbXBsZXM7IH0KICAgICB2b2lkIHVwZGF0ZUFsbFJl
bmRlcmVyc0hhdmVBdmFpbGFibGVTYW1wbGVzKCk7CiAgICAgdm9pZCBkdXJhdGlvbkNoYW5nZWQo
KTsKQEAgLTI2NywxMiArMjY3LDEyIEBAIHByaXZhdGU6CiAgICAgc3RydWN0IEF1ZGlvUmVuZGVy
ZXJQcm9wZXJ0aWVzIHsKICAgICAgICAgYm9vbCBoYXNBdWRpYmxlU2FtcGxlIHsgZmFsc2UgfTsK
ICAgICB9OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmtub3duLXByYWdtYXMiKQorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCiAg
ICAgSGFzaE1hcDxSZXRhaW5QdHI8Q0ZUeXBlUmVmPiwgQXVkaW9SZW5kZXJlclByb3BlcnRpZXM+
IG1fc2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlck1hcDsKICAgICBSZXRhaW5QdHI8QVZTYW1wbGVC
dWZmZXJSZW5kZXJTeW5jaHJvbml6ZXI+IG1fc3luY2hyb25pemVyOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1X
dW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RP
UF9MRVZFTF9FTkQoIi1XdW5rbm93bi1wcmFnbWFzIikKICAgICBSZXRhaW5QdHI8aWQ+IG1fdGlt
ZUp1bXBlZE9ic2VydmVyOwogICAgIFJldGFpblB0cjxpZD4gbV9kdXJhdGlvbk9ic2VydmVyOwog
ICAgIFJldGFpblB0cjxBVlN0cmVhbVNlc3Npb24+IG1fc3RyZWFtU2Vzc2lvbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5tbQppbmRleCA5NjhmYzVhMDg3ZjMxMWQ4OGIyMzllNjc2OTQ4OTQ5MjEz
YjRjYmE2Li4wMjQ0NDFkNmJjZTBiYjJjMmVmYWEyMzRhNGI0NTRhZGQ4MzU3YjM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC02MiwxNyArNjIsMTcgQEAgU09GVF9MSU5LX0ZSQU1F
V09SS19PUFRJT05BTChBVkZvdW5kYXRpb24pCiAKIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChB
VkZvdW5kYXRpb24sIEFWQXNzZXQpCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0
aW9uLCBBVlVSTEFzc2V0KQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3Vua25vd24tcHJhZ21hcyIpCitJR05PUkVf
V0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQog
U09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJBdWRp
b1JlbmRlcmVyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfVE9QX0xFVkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKK0lHTk9SRV9X
QVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmtub3duLXByYWdtYXMiKQogU09GVF9MSU5LX0NM
QVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitJR05PUkVfV0FSTklOR19DTEFOR19U
T1BfTEVWRUwoIi1XdW5rbm93bi1wcmFnbWFzIikKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9M
RVZFTCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCiBTT0ZUX0xJTktfQ0xBU1NfT1BU
SU9OQUwoQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1ZmZlclJlbmRlclN5bmNocm9uaXplcikKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZF
TF9FTkQoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQorSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfVE9QX0xFVkVMX0VORCgiLVd1bmtub3duLXByYWdtYXMiKQogU09GVF9MSU5LX0NMQVNTX09Q
VElPTkFMKEFWRm91bmRhdGlvbiwgQVZTdHJlYW1EYXRhUGFyc2VyKQogU09GVF9MSU5LX0NMQVNT
X09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZTdHJlYW1TZXNzaW9uKTsKIFNPRlRfTElOS19DTEFT
U19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVmlkZW9QZXJmb3JtYW5jZU1ldHJpY3MpCkBAIC03
NzMsMTEgKzc3MywxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6c2V0SGFzQXZhaWxhYmxlVmlkZW9GcmFtZShib29sIGZsYWcpCiAgICAgfQogfQogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitJR05PUkVfV0FSTklOR19DTEFOR19UT1Bf
TEVWRUwoIi1XdW5rbm93bi1wcmFnbWFzIikKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZF
TCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUoQVZTYW1wbGVC
dWZmZXJBdWRpb1JlbmRlcmVyKiByZW5kZXJlciwgYm9vbCBmbGFnKQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmd1
YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxf
RU5EKCItV3Vua25vd24tcHJhZ21hcyIpCiB7CiAgICAgYXV0byBpdGVyID0gbV9zYW1wbGVCdWZm
ZXJBdWRpb1JlbmRlcmVyTWFwLmZpbmQoKF9fYnJpZGdlIENGVHlwZVJlZilyZW5kZXJlcik7CiAg
ICAgaWYgKGl0ZXIgPT0gbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmVuZCgpKQpAQCAt
MTAxNywxMSArMTAxNywxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQzo6c2V0TmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpOZXR3b3JrUwogICAgIG1fcGxheWVy
LT5uZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMi
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmls
aXR5LW5ldyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmtub3duLXByYWdt
YXMiKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFi
aWxpdHktbmV3IikKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjph
ZGRBdWRpb1JlbmRlcmVyKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciogYXVkaW9SZW5kZXJl
cikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RP
UF9MRVZFTF9FTkQoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQorSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmtub3duLXByYWdtYXMiKQogewogICAgIGlmICgh
bV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmFkZCgoX19icmlkZ2UgQ0ZUeXBlUmVmKWF1
ZGlvUmVuZGVyZXIsIEF1ZGlvUmVuZGVyZXJQcm9wZXJ0aWVzKCkpLmlzTmV3RW50cnkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTEwMzQsMTEgKzEwMzQsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmFkZEF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRp
b1IKICAgICBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdl
ZChtX3BsYXllcik7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKK0lH
Tk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmtub3duLXByYWdtYXMiKQorSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZW1vdmVBdWRpb1Jl
bmRlcmVyKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciogYXVkaW9SZW5kZXJlcikKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9F
TkQoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
VE9QX0xFVkVMX0VORCgiLVd1bmtub3duLXByYWdtYXMiKQogewogICAgIGF1dG8gaXRlciA9IG1f
c2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlck1hcC5maW5kKChfX2JyaWRnZSBDRlR5cGVSZWYpYXVk
aW9SZW5kZXJlcik7CiAgICAgaWYgKGl0ZXIgPT0gbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVy
TWFwLmVuZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDLmgKaW5kZXggMDE5Y2YzN2I2YmJkYWFjNGM0ZWJmZWEzZjk4NGIyYWJkOWJm
MTNhMS4uY2NjMjJkMzAzYjljZGUyNDc2YTQ5NDU2N2FkZTE0ZDU3MzUzOWU1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCkBA
IC03MCwxMSArNzAsMTEgQEAgY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakNFcnJvckNs
aWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakNF
cnJvckNsaWVudCgpID0gZGVmYXVsdDsKICAgICB2aXJ0dWFsIHZvaWQgbGF5ZXJEaWRSZWNlaXZl
RXJyb3IoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgKiwgTlNFcnJvciAqLCBib29sJiBzaG91
bGRJZ25vcmUpID0gMDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKKyAgICBJ
R05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5rbm93bi1wcmFnbWFzIikKKyAgICBJ
R05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1u
ZXciKQogICAgIHZpcnR1YWwgdm9pZCByZW5kZXJlckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1
ZmZlckF1ZGlvUmVuZGVyZXIgKiwgTlNFcnJvciAqLCBib29sJiBzaG91bGRJZ25vcmUpID0gMDsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19U
T1BfTEVWRUxfRU5EKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKKyAgICBJR05PUkVf
V0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3Vua25vd24tcHJhZ21hcyIpCiB9OwogCiBj
bGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyBmaW5hbCA6IHB1YmxpYyBTb3VyY2VCdWZm
ZXJQcml2YXRlIHsKQEAgLTExNywxMSArMTE3LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHVucmVn
aXN0ZXJGb3JFcnJvck5vdGlmaWNhdGlvbnMoU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakNFcnJv
ckNsaWVudCopOwogICAgIHZvaWQgbGF5ZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIgKiwgTlNFcnJvciAqKTsKICAgICB2b2lkIG91dHB1dE9ic2N1cmVkRHVlVG9J
bnN1ZmZpY2llbnRFeHRlcm5hbFByb3RlY3Rpb25DaGFuZ2VkKGJvb2wpOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vu
a25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3Vh
cmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZF
TCgiLVd1bmtub3duLXByYWdtYXMiKQorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZF
TCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCiAgICAgdm9pZCByZW5kZXJlckRpZFJl
Y2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKiwgTlNFcnJvciAqKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1Bf
TEVWRUxfRU5EKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKKyAgICBJR05PUkVfV0FS
TklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3Vua25vd24tcHJhZ21hcyIpCiAKICAgICB2b2lk
IHNldFZpZGVvTGF5ZXIoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIqKTsKICAgICB2b2lkIHNl
dERlY29tcHJlc3Npb25TZXNzaW9uKFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbiopOwpAQCAt
MTUyLDExICsxNTIsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlc3Ryb3lSZW5kZXJlcnMoKTsK
IAogICAgIHZvaWQgZmx1c2hWaWRlbygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHkt
bmV3IgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmtub3duLXByYWdt
YXMiKQorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmd1YXJkZWQtYXZh
aWxhYmlsaXR5LW5ldyIpCiAgICAgdm9pZCBmbHVzaChBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVy
ZXIgKik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmtub3duLXByYWdtYXMiKQog
CiAgICAgV2Vha1B0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4gY3JlYXRlV2Vha1B0cigp
IHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7IH0KIApAQCAtMTcw
LDExICsxNzAsMTEgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8QVZTdHJlYW1EYXRhUGFyc2Vy
PiBtX3BhcnNlcjsKICAgICBSZXRhaW5QdHI8QVZBc3NldD4gbV9hc3NldDsKICAgICBSZXRhaW5Q
dHI8QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IG1fZGlzcGxheUxheWVyOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vu
Z3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9M
RVZFTCgiLVd1bmtub3duLXByYWdtYXMiKQorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9M
RVZFTCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCiAgICAgSGFzaE1hcDxpbnQsIFJl
dGFpblB0cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+PiBtX2F1ZGlvUmVuZGVyZXJzOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RP
UF9MRVZFTF9FTkQoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5rbm93bi1wcmFnbWFzIikKICAgICBSZXRh
aW5QdHI8V2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXI+IG1fZGVsZWdhdGU7CiAgICAgUmV0
YWluUHRyPFdlYkFWU2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lcj4gbV9lcnJvckxpc3RlbmVyOwog
ICAgIFJldGFpblB0cjxOU0Vycm9yPiBtX2hkY3BFcnJvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KaW5kZXggZGM5MzQ3OGVl
MzViMzA5ZmJlOGYxZDI1ZmUzNTEyOTY1ZmUwNjZmNS4uYjZhNjUzMjI0ZWE4ZTQ5ZmYzODE3ZTZl
ODlhOTgzYzFhYTQ2ODgzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTY4LDExICs2OCwxMSBAQCBTT0ZUX0xJTktf
RlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAogU09GVF9MSU5LX0NMQVNTKEFWRm91
bmRhdGlvbiwgQVZBc3NldFRyYWNrKQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZT
dHJlYW1EYXRhUGFyc2VyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3Vua25vd24tcHJhZ21hcyIpCitJR05PUkVf
V0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQog
U09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVy
KQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9Q
X0xFVkVMX0VORCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCitJR05PUkVfV0FSTklO
R19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3Vua25vd24tcHJhZ21hcyIpCiBTT0ZUX0xJTktfQ0xB
U1MoQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKIFNPRlRfTElOS19D
TEFTUyhBVkZvdW5kYXRpb24sIEFWU3RyZWFtU2Vzc2lvbikKIApAQCAtMjQzLDIzICsyNDMsMjMg
QEAgU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJGYWlsZWRUb0RlY29kZU5vdGlmaWMKIEBpbnRlcmZhY2UgV2ViQVZTYW1wbGVCdWZmZXJF
cnJvckxpc3RlbmVyIDogTlNPYmplY3QgewogICAgIFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDKiBfcGFyZW50OwogICAgIFZlY3RvcjxSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXI+PiBfbGF5ZXJzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3
IgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmtub3duLXByYWdtYXMi
KQorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmd1YXJkZWQtYXZhaWxh
YmlsaXR5LW5ldyIpCiAgICAgVmVjdG9yPFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVu
ZGVyZXI+PiBfcmVuZGVyZXJzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0
eS1uZXciKQorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5rbm93
bi1wcmFnbWFzIikKIH0KIAogLSAoaWQpaW5pdFdpdGhQYXJlbnQ6KFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDKilwYXJlbnQ7CiAtICh2b2lkKWludmFsaWRhdGU7CiAtICh2b2lk
KWJlZ2luT2JzZXJ2aW5nTGF5ZXI6KEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyICopbGF5ZXI7
CiAtICh2b2lkKXN0b3BPYnNlcnZpbmdMYXllcjooQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIg
KilsYXllcjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKK0lHTk9SRV9XQVJO
SU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmtub3duLXByYWdtYXMiKQorSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfVE9QX0xFVkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKIC0gKHZvaWQp
YmVnaW5PYnNlcnZpbmdSZW5kZXJlcjooQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICopcmVu
ZGVyZXI7CiAtICh2b2lkKXN0b3BPYnNlcnZpbmdSZW5kZXJlcjooQVZTYW1wbGVCdWZmZXJBdWRp
b1JlbmRlcmVyICopcmVuZGVyZXI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05P
UkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHkt
bmV3IikKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5rbm93bi1wcmFn
bWFzIikKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkFWU2FtcGxlQnVmZmVyRXJyb3JMaXN0
ZW5lcgpAQCAtMzIyLDEyICszMjIsMTIgQEAgU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlv
biwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJGYWlsZWRUb0RlY29kZU5vdGlmaWMKICAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYg
bmFtZTpBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckZhaWxlZFRvRGVjb2RlTm90aWZpY2F0aW9u
IG9iamVjdDpsYXllcl07CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIK
K0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmtub3duLXByYWdtYXMiKQorSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3
IikKIC0gKHZvaWQpYmVnaW5PYnNlcnZpbmdSZW5kZXJlcjooQVZTYW1wbGVCdWZmZXJBdWRpb1Jl
bmRlcmVyKilyZW5kZXJlcgogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5l
dyIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3Vua25vd24tcHJhZ21h
cyIpCiAgICAgQVNTRVJUKF9wYXJlbnQpOwogICAgIEFTU0VSVCghX3JlbmRlcmVycy5jb250YWlu
cyhyZW5kZXJlcikpOwogCkBAIC0zMzUsMTEgKzMzNSwxMSBAQCBTT0ZUX0xJTktfQ09OU1RBTlQo
QVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckZhaWxlZFRvRGVjb2RlTm90
aWZpYwogICAgIFtyZW5kZXJlciBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJlcnJvciIg
b3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6bnVsbHB0cl07CiB9
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKK0lHTk9SRV9XQVJOSU5HX0NM
QU5HX1RPUF9MRVZFTCgiLVd1bmtub3duLXByYWdtYXMiKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
VE9QX0xFVkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKIC0gKHZvaWQpc3RvcE9i
c2VydmluZ1JlbmRlcmVyOihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqKXJlbmRlcmVyCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVW
RUxfRU5EKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKK0lHTk9SRV9XQVJOSU5HX0NM
QU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5rbm93bi1wcmFnbWFzIikKIHsKICAgICBBU1NFUlQoX3Bh
cmVudCk7CiAgICAgQVNTRVJUKF9yZW5kZXJlcnMuY29udGFpbnMocmVuZGVyZXIpKTsKQEAgLTM3
MiwxMSArMzcyLDExIEBAIFNPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljCiAgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKIAogICAgIH0gZWxzZSBpZiAoW29iamVjdCBpc0tpbmRPZkNsYXNz
OmdldEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCldKSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5r
bm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFy
ZGVkLWF2YWlsYWJpbGl0eS1uZXciCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV3Vua25vd24t
cHJhZ21hcyIpOworCQlJR05PUkVfV0FSTklOR19DTEFORygiLVd1bmd1YXJkZWQtYXZhaWxhYmls
aXR5LW5ldyIpOwogICAgICAgICBSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVy
PiByZW5kZXJlciA9IChBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKilvYmplY3Q7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVd1
bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpOworCQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQo
Ii1XdW5rbm93bi1wcmFnbWFzIik7CiAgICAgICAgIFJldGFpblB0cjxOU0Vycm9yPiBlcnJvciA9
IFtjaGFuZ2UgdmFsdWVGb3JLZXk6TlNLZXlWYWx1ZUNoYW5nZU5ld0tleV07CiAKICAgICAgICAg
QVNTRVJUKF9yZW5kZXJlcnMuY29udGFpbnMocmVuZGVyZXIuZ2V0KCkpKTsKQEAgLTg1MiwyMSAr
ODUyLDIxIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnRyYWNrRGlkQ2hhbmdl
RW5hYmxlZChBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291CiAgICAgaW50IHRyYWNrSUQgPSB0cmFj
ay0+dHJhY2tJRCgpOwogCiAgICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgpKSB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
dW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5n
dWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV3Vua25v
d24tcHJhZ21hcyIpOworCQlJR05PUkVfV0FSTklOR19DTEFORygiLVd1bmd1YXJkZWQtYXZhaWxh
YmlsaXR5LW5ldyIpOwogICAgICAgICBSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRl
cmVyPiByZW5kZXJlciA9IG1fYXVkaW9SZW5kZXJlcnMuZ2V0KHRyYWNrSUQpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorCQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XdW5ndWFy
ZGVkLWF2YWlsYWJpbGl0eS1uZXciKTsKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV3Vu
a25vd24tcHJhZ21hcyIpOwogICAgICAgICBbbV9wYXJzZXIgc2V0U2hvdWxkUHJvdmlkZU1lZGlh
RGF0YTpOTyBmb3JUcmFja0lEOnRyYWNrSURdOwogICAgICAgICBpZiAobV9tZWRpYVNvdXJjZSkK
ICAgICAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5yZW1vdmVBdWRpb1JlbmRlcmVy
KHJlbmRlcmVyLmdldCgpKTsKICAgICB9IGVsc2UgewogICAgICAgICBbbV9wYXJzZXIgc2V0U2hv
dWxkUHJvdmlkZU1lZGlhRGF0YTpZRVMgZm9yVHJhY2tJRDp0cmFja0lEXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1
bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1
YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XdW5rbm93
bi1wcmFnbWFzIik7CisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV3VuZ3VhcmRlZC1hdmFpbGFi
aWxpdHktbmV3Iik7CiAgICAgICAgIFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVy
ZXI+IHJlbmRlcmVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCQlJR05PUkVfV0FS
TklOR19DTEFOR19FTkQoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKTsKKwkJSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKCItV3Vua25vd24tcHJhZ21hcyIpOwogICAgICAgICBpZiAoIW1f
YXVkaW9SZW5kZXJlcnMuY29udGFpbnModHJhY2tJRCkpIHsKICAgICAgICAgICAgIHJlbmRlcmVy
ID0gYWRvcHROUyhbYWxsb2NBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJJbnN0YW5jZSgpIGlu
aXRdKTsKICAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CkBAIC05
OTcsMTEgKzk5NywxMSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpvdXRwdXRP
YnNjdXJlZER1ZVRvSW5zdWZmaWNpZW50RXh0ZXJuYWxQcm90ZWN0aQogICAgIGxheWVyRGlkUmVj
ZWl2ZUVycm9yKG1fZGlzcGxheUxheWVyLmdldCgpLCBlcnJvci5nZXQoKSk7CiB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9M
RVZFTCgiLVd1bmtub3duLXByYWdtYXMiKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVM
KCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OnJlbmRlcmVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5k
ZXJlciAqcmVuZGVyZXIsIE5TRXJyb3IgKmVycm9yKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmd1YXJkZWQtYXZh
aWxhYmlsaXR5LW5ldyIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3Vu
a25vd24tcHJhZ21hcyIpCiB7CiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OnJlbmRlcmVyRGlkUmVjZWl2ZUVycm9yKCVwKTogcmVuZGVyZXIoJXApLCBl
cnJvciglQCkiLCB0aGlzLCByZW5kZXJlciwgW2Vycm9yIGRlc2NyaXB0aW9uXSk7CiAKQEAgLTEw
NTAsMTEgKzEwNTAsMTEgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Zmx1c2hW
aWRlbygpCiAgICAgfQogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitJ
R05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5rbm93bi1wcmFnbWFzIikKK0lHTk9S
RV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIp
CiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVzaChBVlNhbXBsZUJ1ZmZlckF1
ZGlvUmVuZGVyZXIgKnJlbmRlcmVyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5
LW5ldyIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3Vua25vd24tcHJh
Z21hcyIpCiB7CiAgICAgW3JlbmRlcmVyIGZsdXNoXTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5
ZXJDb2NvYS5tbQppbmRleCBkZjA0MTAzYzcxYTk4OTY0ZTlmMjlmZTE5ODFiMzYyMTU4YTZiZDk5
Li5iZGE3OWJkZmU1Y2ZjOWJlMWRiY2NiNmIyMjhjZjFhMDliNzRmMDg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9Q
bGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbQpAQCAtMTE1MCwxMCArMTE1MCw5IEBAIHZvaWQgUGxhdGZv
cm1DQUxheWVyOjpkcmF3TGF5ZXJDb250ZW50cyhDR0NvbnRleHRSZWYgY29udGV4dCwgV2ViQ29y
ZTo6UGxhdGZvcm1DCiAgICAgCiAgICAgLy8gU2V0IHVwIGFuIE5TR3JhcGhpY3NDb250ZXh0IGZv
ciB0aGUgY29udGV4dCwgc28gdGhhdCBwYXJ0cyBvZiBBcHBLaXQgdGhhdCByZWx5IG9uCiAgICAg
Ly8gdGhlIGN1cnJlbnQgTlNHcmFwaGljc0NvbnRleHQgKGUuZy4gTlNDZWxsIGRyYXdpbmcpIGdl
dCB0aGUgcmlnaHQgb25lLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlH
Tk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgTlNH
cmFwaGljc0NvbnRleHQqIGxheWVyQ29udGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBncmFwaGlj
c0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmNvbnRleHQgZmxpcHBlZDpZRVNdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzZXRDdXJyZW50Q29u
dGV4dDpsYXllckNvbnRleHRdOwogI2VuZGlmCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6Tkcu
Y3BwCmluZGV4IGVmODQzYTA2MWU5YzBjODI2NzE2MzQ4OWRjZmFhMzY1YjBmNzU3OWUuLjEyY2Rh
YjZiZGRhOTcwYzE4ZDUzMzk3MmE0N2I5MmM0ZTNmYzljYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZi
dXp6TkcuY3BwCkBAIC00OSwxNCArNDksOSBAQCBjb25zdCBGb250KiBGb250Q2FzY2FkZTo6Zm9u
dEZvckNvbWJpbmluZ0NoYXJhY3RlclNlcXVlbmNlKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZQogewog
ICAgIFVFcnJvckNvZGUgZXJyb3IgPSBVX1pFUk9fRVJST1I7CiAgICAgVmVjdG9yPFVDaGFyLCA0
PiBub3JtYWxpemVkQ2hhcmFjdGVycyhsZW5ndGgpOwotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFO
RykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotI2VuZGlmCisgICAgSUdOT1JFX1dB
Uk5JTkdfR0NDX09SX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaW50
MzJfdCBub3JtYWxpemVkTGVuZ3RoID0gdW5vcm1fbm9ybWFsaXplKGNoYXJhY3RlcnMsIGxlbmd0
aCwgVU5PUk1fTkZDLCBVTk9STV9VTklDT0RFXzNfMiwgbm9ybWFsaXplZENoYXJhY3RlcnMuZGF0
YSgpLCBsZW5ndGgsICZlcnJvcik7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0dDQ19PUl9D
TEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBpZiAoVV9GQUlMVVJF
KGVycm9yKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlRGVjb2RlckNHLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlRGVjb2RlckNHLmNwcAppbmRleCBiN2Q1
OTJhOWM4YTI1ZDcwZDM3ZjUxOWY1MTM3YzQyZDNhMzMxYWVlLi5kYjdhN2Y5MzZjOTRjOTIwN2Jm
NWQ4YWY4NjA2MDE3MTllZjEwYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZURlY29kZXJDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VEZWNvZGVyQ0cuY3BwCkBAIC00MjMsMTQgKzQyMyw5IEBA
IE5hdGl2ZUltYWdlUHRyIEltYWdlRGVjb2RlckNHOjpjcmVhdGVGcmFtZUltYWdlQXRJbmRleChz
aXplX3QgaW5kZXgsIFN1YnNhbXBsaW5nCiAgICAgLy8gd2hpY2ggY2F1c2VkIGEgcGVyZm9ybWFu
Y2UgcmVncmVzc2lvbiBmb3IgdXMgc2luY2UgdGhlIGltYWdlcyBoYWQgdG8gYmUgcmVzYW1wbGVk
L3JlY3JlYXRlZCBldmVyeSB0aW1lIHdlIGNhbGxlZAogICAgIC8vIENHQ29udGV4dERyYXdJbWFn
ZS4gV2Ugbm93IHRlbGwgQ0cgdG8gY2FjaGUgdGhlIGRyYXduIGltYWdlcy4gU2VlIGFsc28gPHJk
YXI6Ly9wcm9ibGVtLzE0MzY2NzU1PiAtCiAgICAgLy8gQ29yZUdyYXBoaWNzIG5lZWRzIHRvIHVu
LWRlcHJlY2F0ZSBrQ0dJbWFnZUNhY2hpbmdUZW1wb3Jhcnkgc2luY2UgaXQncyBzdGlsbCBub3Qg
dGhlIGRlZmF1bHQuCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCi0jZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIENHSW1hZ2VTZXRDYWNoaW5nRmxhZ3MoaW1hZ2UuZ2V0
KCksIGtDR0ltYWdlQ2FjaGluZ1RlbXBvcmFyeSk7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR19DTEFO
R19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICNlbmRpZiAvLyBQTEFURk9STShJ
T1MpCiAgICAgCiAgICAgU3RyaW5nIHV0aSA9IHRoaXMtPnV0aSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRl
eHRDb2NvYS5tbQppbmRleCBiNWE5ZDY2OGYxOGE1OTE4YmEyOGM5ZWRlYzBhZGVlYjdlZGZjZDEw
Li5jMGJlNTE1ODI5NDNiOGEzMDFiZjQxZWE2NmYwNDY5ZTk0NDhjMTFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRDb2NvYS5tbQpAQCAtMzUxLDEwICszNTEsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgZmxv
YXQgdwogCiAgICAgICAgIC8vIEZJWE1FOiBSYXRoZXIgdGhhbiBnZXR0aW5nIHRoZSBOU0ltYWdl
IGFuZCB0aGVuIHBpY2tpbmcgdGhlIENHSW1hZ2UgZnJvbSBpdCwgd2Ugc2hvdWxkIGRvIHdoYXQg
aU9TIGRvZXMgYW5kCiAgICAgICAgIC8vIGp1c3QgbG9hZCB0aGUgQ0dJbWFnZSBpbiB0aGUgZmly
c3QgcGxhY2UuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJCUlHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIENHSW1h
Z2VSZWYgY2dJbWFnZSA9IFtpbWFnZSBDR0ltYWdlRm9yUHJvcG9zZWRSZWN0OiZkb3RSZWN0IGNv
bnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6
Y29udGV4dCBmbGlwcGVkOk5PXSBoaW50czpudWxscHRyXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgICAgIENHQ29udGV4dERyYXdUaWxlZEltYWdlKGNvbnRleHQsIE5TUmVj
dFRvQ0dSZWN0KGRvdFJlY3QpLCBjZ0ltYWdlKTsKICAgICB9IGVsc2UgewogICAgICAgICBDR0Nv
bnRleHRTZXRGaWxsQ29sb3JXaXRoQ29sb3IoY29udGV4dCwgW2ZhbGxiYWNrQ29sb3IgQ0dDb2xv
cl0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViR0xMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
R0xMYXllci5oCmluZGV4IGQ2YjllMTA1YjdhOTcyYzUyZWNlZmFkYjFjNWQ1NWNiNmY4NDQ5Mjku
LmRlMzNhNTQxYjVjOWE2MWE4YWI4MWQ4MGZjYjVkNmRjMjMzMjc5MTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKQEAgLTM0
LDggKzM0LDcgQEAgY2xhc3MgR3JhcGhpY3NMYXllcjsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNE
OwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklO
R19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiAjaWYgVVNF
KE9QRU5HTCkKIEBpbnRlcmZhY2UgV2ViR0xMYXllciA6IENBTGF5ZXIKQEAgLTY3LDQgKzY2LDQg
QEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiAKIEBlbmQKIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQu
bW0KaW5kZXggZTg5MDFiYzEzYWRhNDA1MjMyZDBkM2ZmNDQ1MTk2M2Q3ZDc1NjViMi4uYWMwN2Nh
NWI3NDQzODIwODg4YzU1MTgzMzJmMWQzYjM1YzQwZWY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4
dENvbnRyb2xsZXJDb3JlVGV4dC5tbQpAQCAtMTU4LDEwICsxNTgsOSBAQCB2b2lkIENvbXBsZXhU
ZXh0Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMoY29uc3Qg
VUNoYXIqIGNwLAogCiAgICAgICAgIFByb3ZpZGVySW5mbyBpbmZvID0geyBjcCwgbGVuZ3RoLCBz
dHJpbmdBdHRyaWJ1dGVzLmdldCgpIH07CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIFNES3MgY29t
cGxhaW4gdGhhdCB0aGUgc2Vjb25kIHBhcmFtZXRlciBiZWxvdyBjYW5ub3QgYmUgbnVsbC4KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdub25udWxsIgorCQlJR05PUkVfV0FSTklOR19DTEFORygiLVdub25udWxsIik7CiAg
ICAgICAgIFJldGFpblB0cjxDVFR5cGVzZXR0ZXJSZWY+IHR5cGVzZXR0ZXIgPSBhZG9wdENGKENU
VHlwZXNldHRlckNyZWF0ZVdpdGhVbmlDaGFyUHJvdmlkZXJBbmRPcHRpb25zKCZwcm92aWRlU3Ry
aW5nQW5kQXR0cmlidXRlcywgMCwgJmluZm8sIG1fcnVuLmx0cigpID8gbHRyVHlwZXNldHRlck9w
dGlvbnMgOiBydGxUeXBlc2V0dGVyT3B0aW9ucykpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorCQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1Xbm9ubnVsbCIpOwogCiAgICAgICAg
IGxpbmUgPSBhZG9wdENGKENUVHlwZXNldHRlckNyZWF0ZUxpbmUodHlwZXNldHRlci5nZXQoKSwg
Q0ZSYW5nZU1ha2UoMCwgMCkpKTsKICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbQppbmRleCA2MTQzYjUxZDQzNjQ1ZDVhZDQ4
YzM5NWFmN2M0ZWEyNjQzM2Q3YzRhLi5lMjEwYzUxZDQ1ODEzZDJjZDExNTc0MzlkNGY3YzQ0YjRm
ZmIyOTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNv
bk1hYy5tbQpAQCAtMzYsMTAgKzM2LDkgQEAgSWNvbjo6SWNvbihOU0ltYWdlICppbWFnZSkKICAg
ICA6IG1fbnNJbWFnZShpbWFnZSkKIHsKICAgICAvLyBOZWVkIHRoaXMgYmVjYXVzZSBXZWJDb3Jl
IHVzZXMgQXBwS2l0J3MgZmxpcHBlZCBjb29yZGluYXRlIHN5c3RlbSBleGNsdXNpdmVseS4KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtpbWFnZSBzZXRGbGlwcGVkOllFU107
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5E
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIEljb246On5JY29uKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9QREZEb2N1bWVudElt
YWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3Vt
ZW50SW1hZ2VNYWMubW0KaW5kZXggNmRhOTIxYjk4YWYyZjk0OGNiYWMyNjM1OTBhMzRjZGJjODhk
YjViMi4uZDA1MzZkZTFjM2NkMTViZTRjNDU1MDJhNjhkMDg0NjRhNzBkNWU0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50SW1hZ2VN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3Vt
ZW50SW1hZ2VNYWMubW0KQEAgLTczLDEwICs3Myw5IEBAIHZvaWQgUERGRG9jdW1lbnRJbWFnZTo6
ZHJhd1BERlBhZ2UoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgIGJvb2wgYWxsb3dzU3Vi
cGl4ZWxRdWFudGl6YXRpb24gPSBDR0NvbnRleHRHZXRBbGxvd3NGb250U3VicGl4ZWxRdWFudGl6
YXRpb24oY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSk7CiAgICAgYm9vbCBhbGxvd3NTdWJwaXhl
bFBvc2l0aW9uaW5nID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUG9zaXRpb25pbmco
Y29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogICAgIFtbbV9kb2N1bWVudCBwYWdlQXRJbmRleDowXSBkcmF3V2l0aEJveDprUERGRGlz
cGxheUJveENyb3BCb3hdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9X
QVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgQ0dD
b250ZXh0U2V0QWxsb3dzRm9udFNtb290aGluZyhjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBh
bGxvd3NTbW9vdGhpbmcpOwogICAgIENHQ29udGV4dFNldEFsbG93c0ZvbnRTdWJwaXhlbFF1YW50
aXphdGlvbihjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBhbGxvd3NTdWJwaXhlbFF1YW50aXph
dGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
V2ViS2l0TlNJbWFnZUV4dHJhcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9XZWJLaXROU0ltYWdlRXh0cmFzLm1tCmluZGV4IDQ2NjRmNjZmNzM4NTczZGZhYjkwNTRl
OTQzYTE0ZTE5MGJlYzJmODcuLjllZTVmMTM1NjRkYjYxZDcwN2YyZGIyMmUzYTk2MjVmNmRmODM3
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJL
aXROU0ltYWdlRXh0cmFzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9XZWJLaXROU0ltYWdlRXh0cmFzLm1tCkBAIC0zNywxMCArMzcsOSBAQAogICAgIFt0cmFu
c2Zvcm0gc2NhbGVCeTpkZXZpY2VTY2FsZUZhY3Rvcl07CiAKICAgICBOU1JlY3QgYm91bmRzID0g
eyBOU1plcm9Qb2ludCwgc2VsZi5zaXplIH07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICBCT09MIGZsaXBwZWRPcmllbnRhdGlvbiA9IHNlbGYuaXNGbGlwcGVkOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtzZWxmIGxvY2tGb2N1c1dpdGhSZWN0OmJvdW5k
cyBjb250ZXh0Om5pbCBoaW50czpAeyBOU0ltYWdlSGludENUTSA6IHRyYW5zZm9ybSB9IGZsaXBw
ZWQ6ZmxpcHBlZE9yaWVudGF0aW9uXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9EcmFnSW1hZ2VJT1MubW0KaW5kZXggNWZiMjE1YTI5NzBkZDk2MmFhMGJkY2E5ODNhOTEwNGVk
NGQ0M2UxMC4uNTBlNzQxMDAzMjc2Y2UxYjNkMTczY2QyNTc4N2EzMDk5YzkwYTk0MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tCkBAIC01Miw4ICs1Miw3
IEBACiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlu
a2luZy5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XbnVsbGFiaWxpdHktY29tcGxldGVuZXNzIgorSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV251bGxhYmlsaXR5LWNvbXBsZXRlbmVzcyIpCiAKIFNP
RlRfTElOS19GUkFNRVdPUksoVUlLaXQpCiBTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJRm9udCkK
QEAgLTYzLDcgKzYyLDcgQEAgU09GVF9MSU5LKFVJS2l0LCBVSUdyYXBoaWNzR2V0Q3VycmVudENv
bnRleHQsIENHQ29udGV4dFJlZiwgKHZvaWQpLCAoKSkKIFNPRlRfTElOSyhVSUtpdCwgVUlHcmFw
aGljc0dldEltYWdlRnJvbUN1cnJlbnRJbWFnZUNvbnRleHQsIFVJSW1hZ2UgKiwgKHZvaWQpLCAo
KSkKIFNPRlRfTElOSyhVSUtpdCwgVUlHcmFwaGljc0VuZEltYWdlQ29udGV4dCwgdm9pZCwgKHZv
aWQpLCAoKSkKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfVE9QX0xFVkVMX0VORCgiLVdudWxsYWJpbGl0eS1jb21wbGV0ZW5lc3MiKQogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9EcmFnSW1hZ2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdl
TWFjLm1tCmluZGV4IDU2MTAyZmEyOTA3YWY4NGZlMTMzMDIxZjA4ZTRlZjQzYjI3ZGM5OTIuLmEx
YTc1Y2ZlMzY5ZGE2YWVmOGQ0NzM4ZTNmNTZkNWJhMmM4Yzg4NjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQpAQCAtNzEsMTAgKzcxLDkgQEAgUmV0YWlu
UHRyPE5TSW1hZ2U+IHNjYWxlRHJhZ0ltYWdlKFJldGFpblB0cjxOU0ltYWdlPiBpbWFnZSwgRmxv
YXRTaXplIHNjYWxlKQogICAgIE5TU2l6ZSBuZXdTaXplID0gTlNNYWtlU2l6ZSgob3JpZ2luYWxT
aXplLndpZHRoICogc2NhbGUud2lkdGgoKSksIChvcmlnaW5hbFNpemUuaGVpZ2h0ICogc2NhbGUu
aGVpZ2h0KCkpKTsKICAgICBuZXdTaXplLndpZHRoID0gcm91bmRmKG5ld1NpemUud2lkdGgpOwog
ICAgIG5ld1NpemUuaGVpZ2h0ID0gcm91bmRmKG5ld1NpemUuaGVpZ2h0KTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtpbWFnZSBzZXRTY2FsZXNXaGVuUmVzaXplZDpZRVNd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VO
RCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtpbWFnZSBzZXRTaXplOm5ld1Np
emVdOwogICAgIHJldHVybiBpbWFnZTsKIH0KQEAgLTMxMiwxMCArMzExLDkgQEAgRHJhZ0ltYWdl
UmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoRWxlbWVudCYgZWxlbWVudCwgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgdGkKICAgICBSZXRhaW5QdHI8TlNJbWFnZT4gZHJhZ0ltYWdlID0gYWRvcHRO
UyhbW05TSW1hZ2UgYWxsb2NdIGluaXRXaXRoU2l6ZTppbWFnZVNpemVdKTsKICAgICBbZHJhZ0lt
YWdlIF93ZWJfbG9ja0ZvY3VzV2l0aERldmljZVNjYWxlRmFjdG9yOmRldmljZVNjYWxlRmFjdG9y
XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5H
X0NMQU5HX1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAgICAgR3JhcGhp
Y3NDb250ZXh0IGNvbnRleHQoKENHQ29udGV4dFJlZilbTlNHcmFwaGljc0NvbnRleHQgY3VycmVu
dENvbnRleHRdLmdyYXBoaWNzUG9ydCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJ
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpCiAKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMzAwCiAg
ICAgY29udGV4dC50cmFuc2xhdGUobGlua0ltYWdlU2hhZG93UmFkaXVzLCBsaW5rSW1hZ2VTaGFk
b3dSYWRpdXMgLSBsaW5rSW1hZ2VTaGFkb3dPZmZzZXRZKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9MZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmgKaW5kZXggMDdhYTk1
ZmYwOGEwMzc4MjYwYTgyYTBmNTY1ZmE4OGI4YmI4NTY1NC4uNTc2ZDFlOTJlNTk1OWM2Yjc2MmI3
NGQ5Y2EzY2M3MDlmY2JkYjkyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmgKQEAgLTI3LDggKzI3LDcgQEAKIAogI2lm
IFBMQVRGT1JNKE1BQykKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04OSw2ICs4OCw2IEBAIGlubGluZSBOU1N0cmlu
ZyAqbGVnYWN5RmlsZXNQcm9taXNlUGFzdGVib2FyZFR5cGUoKQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NM
QU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiAjZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0KaW5kZXggYzk4ZmMyODU5ZmZjNzll
MTk1NDhmMTg2N2UzMzA2MGIxNjgzYjA3My4uMmQzZDA1NGU4OWU0NThmY2Y0MTZiNTczMTkyY2M4
NjM2NTVlMmM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2Fs
Q3VycmVudEdyYXBoaWNzQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tCkBAIC0zMiw4ICszMiw3IEBAIExvY2Fs
Q3VycmVudEdyYXBoaWNzQ29udGV4dDo6TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0KEdyYXBo
aWNzQ29udGV4dCYgZ3JhcGhpCiB7CiAgICAgZ3JhcGhpY3NDb250ZXh0LnNhdmUoKTsKIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9
IHRoaXMtPmNnQ29udGV4dCgpOwogICAgIGlmIChjZ0NvbnRleHQgPT0gW1tOU0dyYXBoaWNzQ29u
dGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XSkgewogICAgICAgICBtX3NhdmVkTlNH
cmFwaGljc0NvbnRleHQgPSAwOwpAQCAtNDIsNyArNDEsNyBAQCBMb2NhbEN1cnJlbnRHcmFwaGlj
c0NvbnRleHQ6OkxvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dChHcmFwaGljc0NvbnRleHQmIGdy
YXBoaQogCiAgICAgbV9zYXZlZE5TR3JhcGhpY3NDb250ZXh0ID0gW1tOU0dyYXBoaWNzQ29udGV4
dCBjdXJyZW50Q29udGV4dF0gcmV0YWluXTsKICAgICBOU0dyYXBoaWNzQ29udGV4dCogbmV3Q29u
dGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0
OmNnQ29udGV4dCBmbGlwcGVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJ
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0Om5ld0NvbnRleHRdOwogICAg
IG1fZGlkU2V0R3JhcGhpY3NDb250ZXh0ID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KaW5kZXggY2I1MDRjZjU0M2ViN2U4MGQ3NjY1Y2Qx
ZTU3ZTMwODlhZmZiMWE3MC4uYzI2MWM2OTNkMWI3YjI0NmExMDMzYzhhMTM1MTUzMzU2YThhYjc0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KQEAg
LTk5LDE5ICs5OSwxNyBAQCBQYXN0ZWJvYXJkOjpQYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZE5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwcm9taQogCiBzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PFBhc3RlYm9hcmQ+KE5TR2VuZXJhbFBib2FyZCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogc3RkOjp1bmlxdWVfcHRyPFBhc3Rl
Ym9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkKIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9h
cmQ+KE5TRHJhZ1Bib2FyZCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIHN0
ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJv
cChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCkBAIC02MTQsMTggKzYxMiwxNiBAQCBzdGF0aWMg
dm9pZCBzZXREcmFnSW1hZ2VJbXBsKE5TSW1hZ2UgKmltYWdlLCBOU1BvaW50IG9mZnNldCkKICAg
ICBSZXRhaW5QdHI8TlNCaXRtYXBJbWFnZVJlcD4gYml0bWFwSW1hZ2U7CiAgICAgaWYgKCFpbWFn
ZVJlcCB8fCAhW2ltYWdlUmVwIGlzS2luZE9mQ2xhc3M6W05TQml0bWFwSW1hZ2VSZXAgY2xhc3Nd
XSB8fCAhTlNFcXVhbFNpemVzKGltYWdlUmVwLnNpemUsIGltYWdlU2l6ZSkpIHsKICAgICAgICAg
W2ltYWdlIGxvY2tGb2N1c107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJ
CUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
ICAgIGJpdG1hcEltYWdlID0gYWRvcHROUyhbW05TQml0bWFwSW1hZ2VSZXAgYWxsb2NdIGluaXRX
aXRoRm9jdXNlZFZpZXdSZWN0OiooTlNSZWN0KikmaW1hZ2VSZWN0XSk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBbaW1hZ2UgdW5sb2NrRm9jdXNdOwogICAgICAgICAK
ICAgICAgICAgLy8gd2UgbWF5IGhhdmUgdG8gZmxpcCB0aGUgYml0cyB3ZSBqdXN0IHJlYWQgaWYg
dGhlIGltYWdlIHdhcyBmbGlwcGVkIHNpbmNlIGl0IG1lYW5zIHRoZSBjYWNoZSB3YXMgYWxzbwog
ICAgICAgICAvLyBhbmQgQ29yZURyYWdTZXRJbWFnZSBjYW4ndCB0YWtlIGEgdHJhbnNmb3JtIGZv
ciByZW5kZXJpbmcuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJCUlHTk9S
RV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIGZs
aXBJbWFnZSA9IGltYWdlLmlzRmxpcHBlZDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgZmxpcEltYWdlID0gZmFsc2U7CiAgICAgICAgIGJpdG1h
cEltYWdlID0gKE5TQml0bWFwSW1hZ2VSZXAgKilpbWFnZVJlcDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQppbmRleCA1
OTg1NDc3ZDllMDU0ODhhMjkwNDBlMGMyNDM1OTRhOTQ5OTdiOTcwLi45NmNlZjNjOWFmMjllNGRh
ZGFjNjExZDFmNGZiZGMyODE1ZTQ5YjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCkBAIC00NiwxMCArNDYsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE5TUG9pbnQgZ2xvYmFsUG9pbnQoY29uc3QgTlNQb2lu
dCYgd2luZG93UG9pbnQsIE5TV2luZG93ICp3aW5kb3cpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiKTsKICAgICByZXR1cm4gZmxpcFNjcmVlblBvaW50KFt3aW5kb3cgY29udmVydEJh
c2VUb1NjcmVlbjp3aW5kb3dQb2ludF0sIHNjcmVlbih3aW5kb3cpKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKIH0KIAogc3RhdGljIE5TUG9pbnQgZ2xvYmFsUG9pbnRGb3JFdmVudChO
U0V2ZW50ICpldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
U0xLZXlHZW5lcmF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU1NMS2V5
R2VuZXJhdG9yTWFjLm1tCmluZGV4IDQ3MDBiMDE4YzUzMGMxMTJmYjhkZDEzZDI4NzNjMTA0NGU3
ZGM3MTguLmRhMmRmMWNmNzYzMjQ3NTM0MzAzOWNmYmExOWQyNGM2MmJjYWFmZWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TU0xLZXlHZW5lcmF0b3JNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5tbQpAQCAt
NDQsOCArNDQsNyBAQCBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKFNlY0FDTCk7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikK
IAogc3RydWN0IFB1YmxpY0tleUFuZENoYWxsZW5nZSB7CiAgICAgQ1NTTV9YNTA5X1NVQkpFQ1Rf
UFVCTElDX0tFWV9JTkZPIHN1YmplY3RQdWJsaWNLZXlJbmZvOwpAQCAtMjIzLDcgKzIyMiw3IEBA
IHN0YXRpYyBTdHJpbmcgc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVk
IGtleVNpemUsIGNvbnN0IENTdHJpbmcmCiAgICAgcmV0dXJuIGJhc2U2NEVuY29kZShlbmNvZGVk
U2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlLkRhdGEsIGVuY29kZWRTaWduZWRQdWJsaWNLZXlB
bmRDaGFsbGVuZ2UuTGVuZ3RoKTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpCiAKIHZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVjdG9yPFN0cmluZz4mIHN1cHBv
cnRlZEtleVNpemVzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbFZpZXdNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsVmll
d01hYy5tbQppbmRleCAyNmI2Y2I0ZjIxZjhiM2M4OTkzNmQxZDZlNjM4N2MxNmI4NDA0ZDNiLi4x
MTU4NDU2ZGU2ODMwYTQxMjU3YzU4NzMzNzNiYzE3NDAyOTg3Yjk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsVmlld01hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsVmlld01hYy5tbQpAQCAtMjMwLDEwICsyMzAsOSBAQCBJ
bnRSZWN0IFNjcm9sbFZpZXc6OnBsYXRmb3JtQ29udGVudHNUb1NjcmVlbihjb25zdCBJbnRSZWN0
JiByZWN0KSBjb25zdAogICAgIGlmIChOU1ZpZXcqIGRvY3VtZW50VmlldyA9IHRoaXMtPmRvY3Vt
ZW50VmlldygpKSB7CiAgICAgICAgIE5TUmVjdCB0ZW1wUmVjdCA9IHJlY3Q7CiAgICAgICAgIHRl
bXBSZWN0ID0gW2RvY3VtZW50VmlldyBjb252ZXJ0UmVjdDp0ZW1wUmVjdCB0b1ZpZXc6bmlsXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwkJSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgdGVtcFJlY3Qub3JpZ2lu
ID0gW1tkb2N1bWVudFZpZXcgd2luZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOnRlbXBSZWN0Lm9y
aWdpbl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJCUlHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICByZXR1cm4gZW5j
bG9zaW5nSW50UmVjdCh0ZW1wUmVjdCk7CiAgICAgfQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CkBAIC0yNDQsMTAgKzI0Myw5IEBAIEludFBvaW50IFNjcm9sbFZpZXc6OnBsYXRmb3Jt
U2NyZWVuVG9Db250ZW50cyhjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIGlmIChOU1ZpZXcqIGRvY3VtZW50VmlldyA9
IHRoaXMtPmRvY3VtZW50VmlldygpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgICAgIE5TUG9pbnQgd2luZG93Q29vcmQgPSBbW2RvY3VtZW50VmlldyB3aW5kb3ddIGNv
bnZlcnRTY3JlZW5Ub0Jhc2U6IHBvaW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgICAgIHJldHVybiBJbnRQb2ludChbZG9jdW1lbnRWaWV3IGNvbnZlcnRQb2ludDp3aW5k
b3dDb29yZCBmcm9tVmlldzpuaWxdKTsKICAgICB9CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQppbmRleCBmYTk0YzQ3
MzkyMGZjMDJjMmQ4M2JhNmNiZjYxZDdjNmQ1OGNjNmZmLi4zMzE4Zjc4NDkwODAxMzVlNDAxMzc0
NzlmYjE5MDNkN2VjNjYwYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFj
Lm1tCkBAIC0zNTgsMTAgKzM1OCw5IEBAIHN0YXRpYyBOU0J1dHRvbkNlbGwgKnNoYXJlZENoZWNr
Ym94Q2VsbChjb25zdCBDb250cm9sU3RhdGVzJiBzdGF0ZXMsIGNvbnN0IEludFNpCiAKIHN0YXRp
YyBib29sIGRyYXdDZWxsRm9jdXNSaW5nV2l0aEZyYW1lQXRUaW1lKE5TQ2VsbCAqY2VsbCwgTlNS
ZWN0IGNlbGxGcmFtZSwgTlNWaWV3ICpjb250cm9sVmlldywgTlNUaW1lSW50ZXJ2YWwgdGltZU9m
ZnNldCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBDR0NvbnRl
eHRSZWYgY2dDb250ZXh0ID0gKENHQ29udGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJl
bnRDb250ZXh0XSBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
CUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CisJQ0dD
b250ZXh0UmVmIGNnQ29udGV4dCA9IChDR0NvbnRleHRSZWYpW1tOU0dyYXBoaWNzQ29udGV4dCBj
dXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XTsKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQo
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNn
Q29udGV4dCk7CiAKICAgICBDR0ZvY3VzUmluZ1N0eWxlIGZvY3VzUmluZ1N0eWxlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlBsYXliYWNrQ29udHJvbHNNYW5h
Z2VyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlBsYXliYWNrQ29udHJvbHNN
YW5hZ2VyLm1tCmluZGV4IGI2ZWFkYTMxODA2NDAyNTAwNjAyYmZhYjBkMzI5NTdkYTZmMmI0NTEu
LmQwODA5OGM1YWQwNjk4MmUwMWM5NjJhNjkwNDQwMDNmZGYyNTlhMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFn
ZXIubW0KQEAgLTM0LDggKzM0LDcgQEAKICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogI2lt
cG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdudWxsYWJpbGl0eS1jb21w
bGV0ZW5lc3MiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XbnVsbGFiaWxpdHkt
Y29tcGxldGVuZXNzIikKIFNPRlRfTElOS19GUkFNRVdPUksoQVZLaXQpCiAjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDAKIFNPRlRfTElOS19DTEFTU19PUFRJT05B
TChBVktpdCwgQVZUb3VjaEJhck1lZGlhU2VsZWN0aW9uT3B0aW9uKQpAQCAtMzQ2LDcgKzM0NSw3
IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IG1lZGlhU2VsZWN0aW9uT3B0aW9u
cyhjb25zdCBWZWN0b3I8TWVkaWFTZWxlY3RpCiB9CiAjZW5kaWYKIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdudWxs
YWJpbGl0eS1jb21wbGV0ZW5lc3MiKQogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2lkZ2V0TWFjLm1tCmluZGV4IDk5NmMxOWQ1NTBmOTEzMWZhMDIzNjBiNjU3Zjg4YmU5Zjll
NjY2YmIuLjZhYzdiNmNiYzE3NGRkMGI3Yjc1MmZjMzFkYTQ3ZjdjZjdiYmQ4NzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbQpAQCAtMjA4LDEwICsyMDgsOSBAQCB2
b2lkIFdpZGdldDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBwLCBjb25zdCBJbnRSZWN0JiByLCBT
ZWN1cml0eU9yaWdpblBhaW50UG9saQogICAgIFJlZjxXaWRnZXQ+IHByb3RlY3RlZFRoaXMoKnRo
aXMpOwogCiAgICAgTlNHcmFwaGljc0NvbnRleHQgKmN1cnJlbnRDb250ZXh0ID0gW05TR3JhcGhp
Y3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogICAgIGlmIChjdXJyZW50Q29udGV4dCA9PSBbW3ZpZXcgd2luZG93XSBncmFwaGljc0NvbnRl
eHRdIHx8ICFbY3VycmVudENvbnRleHQgaXNEcmF3aW5nVG9TY3JlZW5dKSB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAvLyBUaGlzIGlzIHRoZSBjb21tb24gY2FzZSBv
ZiBkcmF3aW5nIGludG8gYSB3aW5kb3cgb3IgYW4gaW5jbHVzaXZlIGxheWVyLCBvciBwcmludGlu
Zy4KICAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgICAgICBbdmlldyBk
aXNwbGF5UmVjdElnbm9yaW5nT3BhY2l0eTpbdmlldyBjb252ZXJ0UmVjdDpyIGZyb21WaWV3Olt2
aWV3IHN1cGVydmlld11dXTsKQEAgLTIzOCwxMCArMjM3LDkgQEAgdm9pZCBXaWRnZXQ6OnBhaW50
KEdyYXBoaWNzQ29udGV4dCYgcCwgY29uc3QgSW50UmVjdCYgciwgU2VjdXJpdHlPcmlnaW5QYWlu
dFBvbGkKICAgICB9CiAKICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gcC5wbGF0Zm9ybUNv
bnRleHQoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FS
TklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIEFTU0VSVChjZ0Nv
bnRleHQgPT0gW2N1cnJlbnRDb250ZXh0IGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0KTsKIAogICAg
IE5TUmVjdCB2aWV3RnJhbWUgPSBbdmlldyBmcmFtZV07CkBAIC0yNTUsMTAgKzI1Myw5IEBAIHZv
aWQgV2lkZ2V0OjpwYWludChHcmFwaGljc0NvbnRleHQmIHAsIGNvbnN0IEludFJlY3QmIHIsIFNl
Y3VyaXR5T3JpZ2luUGFpbnRQb2xpCiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiAgICAgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCQlJR05PUkVfV0FS
TklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBOU0dyYXBo
aWNzQ29udGV4dCAqbnNDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4
dFdpdGhHcmFwaGljc1BvcnQ6Y2dDb250ZXh0IGZsaXBwZWQ6Tk9dOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorCQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICAgICAgW3ZpZXcgZGlzcGxheVJlY3RJZ25vcmluZ09wYWNpdHk6
W3ZpZXcgY29udmVydFJlY3Q6ciBmcm9tVmlldzpbdmlldyBzdXBlcnZpZXddXSBpbkNvbnRleHQ6
bnNDb250ZXh0XTsKICAgICB9CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21p
bmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKaW5kZXggY2JmNTczMGFjOTRkMGEwZDkzMDJkZmVi
NDUwYmFkZmVkYzQ2NjdmZi4uZmU3MWYyY2JkNGZkNDU0MzgxYmViYjQ1NDVlNTFhNGJlZjFlM2My
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKQEAgLTM1LDEyICszNSwxMSBA
QAogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFT
b3VyY2UuaCIKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitJR05PUkVfV0FSTklOR19D
TEFOR19UT1BfTEVWRUwoIi1XdW51c2VkLXBhcmFtZXRlciIpCiAKICNpbmNsdWRlIDx3ZWJydGMv
YXBpL21lZGlhc3RyZWFtaW50ZXJmYWNlLmg+CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW51c2VkLXBhcmFtZXRl
ciIpCiAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlLmgKaW5kZXggNGQ3Y2FkMjlhMWFjNjEzNjMzYWM4MmZlNDUxNWZiZTYyMmQzMzk2
OC4uMjJkMjhiOGUwZTJkOTY5OWNmZjMwODM3MmIxOTAyNTUyYjBmMDg2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKQEAgLTM1LDEyICszNSwxMSBAQAogI2luY2x1ZGUgIkxp
YldlYlJUQ01hY3Jvcy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwo
Ii1XdW51c2VkLXBhcmFtZXRlciIpCiAKICNpbmNsdWRlIDx3ZWJydGMvYXBpL21lZGlhc3RyZWFt
aW50ZXJmYWNlLmg+CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJO
SU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW51c2VkLXBhcmFtZXRlciIpCiAKICNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKaW5k
ZXggY2UyZTViMWQ5ZTBjMTNjM2M2NTgyNmMyNjYyMmE5N2NiMTBhYTEzYy4uNzBlOWY1ZDU2YTNk
NmNmMmM3Y2QxMzk0MmRiYTgzZWEwMjY4ZmYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlLmgKQEAgLTM1LDEyICszNSwxMSBAQAogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0
ZXIiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW51c2VkLXBhcmFtZXRlciIp
CiAKICNpbmNsdWRlIDx3ZWJydGMvYXBpL21lZGlhc3RyZWFtaW50ZXJmYWNlLmg+CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9F
TkQoIi1XdW51c2VkLXBhcmFtZXRlciIpCiAKICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNv
dW50ZWQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaAppbmRleCBjMWFhOWQx
MTM5NTFlNmY4MDI0MDJiOTc3YjI2OTM3MmQ2Y2FlZTQ1Li5jOTBmOGQ1YzlmOGI4NDU4ZDcxYTgz
MzQ1ZmRjMmM0NDQwY2RmNzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaApA
QCAtMzQsMTMgKzM0LDEyIEBACiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIK
ICNpbmNsdWRlIDxUaW1lci5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0lHTk9S
RV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bnVzZWQtcGFyYW1ldGVyIikKIAogI2luY2x1
ZGUgPHdlYnJ0Yy9hcGkvbWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4KICNpbmNsdWRlIDx3ZWJydGMv
Y29tbW9uX3ZpZGVvL2luY2x1ZGUvaTQyMF9idWZmZXJfcG9vbC5oPgogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3Vu
dXNlZC1wYXJhbWV0ZXIiKQogCiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDQXVkaW9Nb2R1bGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRp
b01vZHVsZS5oCmluZGV4IDcxY2EyYWI1ZGJhMjIwNDA4ZmZmYjI4YjhlODBkYjVlOTg3NmNjMzIu
LjU0MmViNTEzY2FhYzI4YzA3ZTRkYWFkYTRiNGQxMGM3MjFkYzQzZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRp
b01vZHVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVsZS5oCkBAIC0yOSwxNCArMjksMTMgQEAKIAogI2luY2x1
ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0lH
Tk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bnVzZWQtcGFyYW1ldGVyIikKIAogI2lu
Y2x1ZGUgPHdlYnJ0Yy9tb2R1bGVzL2F1ZGlvX2RldmljZS9pbmNsdWRlL2F1ZGlvX2RldmljZS5o
PgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS9tZXNzYWdlaGFuZGxlci5oPgogI2luY2x1ZGUg
PHdlYnJ0Yy9ydGNfYmFzZS90aHJlYWQuaD4KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bnVzZWQtcGFyYW1ldGVy
IikKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmNwcAppbmRleCBiNGJkMGE0NTEzODk4MjdiMWZiZTY1YWJiZGU5MzE2MWZlNzJjMjRmLi5i
N2QyMzI1ZThlZDEyOWM0OGMxNjczNTViZmUzYTJhNTMyMTczN2E4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTMxLDggKzMxLDcgQEAKICNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSA8ZGxmY24uaD4KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIi
CitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW51c2VkLXBhcmFtZXRlciIpCiAK
ICNpbmNsdWRlIDx3ZWJydGMvYXBpL2F1ZGlvX2NvZGVjcy9idWlsdGluX2F1ZGlvX2RlY29kZXJf
ZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvYXVkaW9fY29kZWNzL2J1aWx0aW5fYXVk
aW9fZW5jb2Rlcl9mYWN0b3J5Lmg+CkBAIC00Myw3ICs0Miw3IEBACiAjaW5jbHVkZSA8d2VicnRj
L3BjL3BlZXJjb25uZWN0aW9uZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS9w
aHlzaWNhbHNvY2tldHNlcnZlci5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJ
R05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3VudXNlZC1wYXJhbWV0ZXIiKQog
CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4IGQ4YzQwNjliMjliNDJj
MzJkYmU5NDcyY2M0NzA0OWM4ZWNhYTczNzkuLmJmYWM3NjQ5NzhhZDJkNjBiNmQ1NGVjYzk4NGE5
ZmVkNDJlNjFiMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC0zNSwx
NSArMzUsMTQgQEAKIAogI2lmIFVTRShMSUJXRUJSVEMpCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFy
YW1ldGVyIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3VudXNlZC1wYXJhbWV0
ZXIiKQogCiAjaW5jbHVkZSA8d2VicnRjL2FwaS9wZWVyY29ubmVjdGlvbmludGVyZmFjZS5oPgog
I2luY2x1ZGUgPHdlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfZmFjdG9yeS5o
PgogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2RlY29kZXJfZmFjdG9y
eS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS9zY29wZWRfcmVmX3B0ci5oPgogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxf
RU5EKCItV3VudXNlZC1wYXJhbWV0ZXIiKQogCiBuYW1lc3BhY2UgcnRjIHsKIGNsYXNzIE5ldHdv
cmtNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNv
Y29hLm1tCmluZGV4IDRiNDI1ZjliYTYyYjBmM2YwOTNhOTA2ZmQ0YjJhZTQ5YzJhNDNjM2UuLmEy
YTNmOWIzZDYwNDY3NzBjMTUzMThmOTMxNjI5OTBlZTMyNDQwZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9T
b3VyY2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KQEAgLTM0LDEyICszNCwxMSBA
QAogI2luY2x1ZGUgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgogI2luY2x1ZGUgPHBhbC9jZi9Db3Jl
TWVkaWFTb2Z0TGluay5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0lHTk9SRV9X
QVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bnVzZWQtcGFyYW1ldGVyIikKIAogI2luY2x1ZGUg
PHdlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oPgogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3VudXNl
ZC1wYXJhbWV0ZXIiKQogCiAjaW5jbHVkZSA8d3RmL2NmL1R5cGVDYXN0c0NGLmg+CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCmluZGV4IGVk
MTRjMzRjMzFkNjZjMDVjZWQ1OTVjNjU2MDMwZTcxM2Y2NTU3ODcuLjdmN2NlOTBhNDBjMjI1ZTI2
YmUwMmIwNGNmNjdmODczYTU4YmZjZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0
Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcApAQCAtMzAsMTQgKzMwLDEzIEBACiAKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfVE9QX0xFVkVMKCItV3VudXNlZC1wYXJhbWV0ZXIiKQogCiAjaW5jbHVkZSA8d2Vi
cnRjL2FwaS92aWRlby9pNDIwX2J1ZmZlci5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9jb21tb25fdmlk
ZW8vbGlieXV2L2luY2x1ZGUvd2VicnRjX2xpYnl1di5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9zZGsv
V2ViS2l0L1dlYktpdFV0aWxpdGllcy5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3VudXNlZC1wYXJhbWV0ZXIi
KQogCiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW5jbHVkZSAiQ29y
ZVZpZGVvU29mdExpbmsuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKaW5kZXgg
ODExOWZkNWU1NTZlNmMxZDdiZmMxZmJhYjRiNWI4ODkxMGMzOWU1Zi4uYmViZWViYmRlZTYxZTA3
MjIxNjM3OWU1MjExNDAyNmI2MTYzZjczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5l
dC5jcHAKQEAgLTY0LDEyICs2NCwxMSBAQCBzdGF0aWMgaW5saW5lIENGVHlwZUlEIHR5cGVJRCgp
IHsgcmV0dXJuIENsYXNzTmFtZSMjR2V0VHlwZUlEKCk7IH0gXAogfTsKIAogI2lmIENPTVBJTEVS
KENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKICNlbmRpZgog
REVDTEFSRV9DRl9UWVBFX1RSQUlUKENGSFRUUENvb2tpZSk7CiAjaWYgQ09NUElMRVIoQ0xBTkcp
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1Bf
TEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKICNlbmRpZgogCiAjdW5kZWYg
REVDTEFSRV9DRl9UWVBFX1RSQUlUCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAppbmRleCAwOTVhMGM0Yjdk
ODRhYzljOWFiYWM0NGExYTVmNDZlOWViYzAwMDdhLi5lODliZTgxOGFhZTkzODdjMWE1MjI1ZmRl
MmY0ZDQ5M2IzZTZhNDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKQEAgLTE3MSwxMiArMTcxLDEx
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3Vs
ZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAjZWxzZQogICAgIGlmIChhbGxvd3NBbnlIVFRQ
U0NlcnRpZmljYXRlSG9zdHMoKS5jb250YWlucyhmaXJzdFJlcXVlc3QoKS51cmwoKS5ob3N0KCku
dG9TdHJpbmcoKSkpIHsKICAgICAgICAgc3NsUHJvcHMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNy
ZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5
Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1
ZShzc2xQcm9wcy5nZXQoKSwga0NGU3RyZWFtU1NMQWxsb3dzQW55Um9vdCwga0NGQm9vbGVhblRy
dWUpOwogICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShzc2xQcm9wcy5nZXQoKSwga0NGU3Ry
ZWFtU1NMQWxsb3dzRXhwaXJlZFJvb3RzLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgICAgIENGRGlj
dGlvbmFyeUFkZFZhbHVlKHNzbFByb3BzLmdldCgpLCBrQ0ZTdHJlYW1TU0xBbGxvd3NFeHBpcmVk
Q2VydGlmaWNhdGVzLCBrQ0ZCb29sZWFuVHJ1ZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogI2lmICFQTEFURk9STShXSU4pIC8vIDxyZGFyOi8vcHJvYmxlbS8zMzk5MzQ2
Mj4gLSBEaXNhYmxpbmcgdmFsaWRhdGlvbiBvZiBjZXJ0aWZpY2F0ZSBjaGFpbiBicmVha3MgU1NM
IG9uIFdpbmRvd3MuCiAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKHNzbFByb3BzLmdldCgp
LCBrQ0ZTdHJlYW1TU0xWYWxpZGF0ZXNDZXJ0aWZpY2F0ZUNoYWluLCBrQ0ZCb29sZWFuRmFsc2Up
OwogI2VuZGlmCkBAIC0yMzQsMTAgKzIzMyw5IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAg
ICAgaWYgKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKQogICAgICAgICBjbGllbnQuc2hvdWxk
VXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSAwOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKICAgICBkLT5tX2Nvbm5lY3Rpb24gPSBhZG9wdENGKENGVVJMQ29ubmVjdGlvbkNyZWF0
ZVdpdGhQcm9wZXJ0aWVzKDAsIHJlcXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZVUkxD
b25uZWN0aW9uQ2xpZW50Kj4oJmNsaWVudCksIHByb3BlcnRpZXNEaWN0aW9uYXJ5LmdldCgpKSk7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
RU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIGJvb2wgUmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAppbmRleCA5ZWQ1
YWEwYzlkOWJmMTNlZWEzMWEyOTU2OGEyNDk3NTc0ZTU4NmM0Li5kZjg3MDY4YWQ5MTJhZGJlODcw
NDRiOWVhY2NkMjBlOTY2MmE4ZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQu
Y3BwCkBAIC02NjYsMTAgKzY2Niw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6cmVw
b3J0RXJyb3JUb0NsaWVudChDRkVycm9yUmVmIGVycm9yKQogCiAjaWYgUExBVEZPUk0oTUFDKQog
Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0jZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogCiAgICAgaWYgKENGRXF1YWwoQ0ZFcnJvckdldERvbWFpbihlcnJvciksIGtDRkVy
cm9yRG9tYWluT1NTdGF0dXMpKSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGRlc2NyaXB0aW9uT1NT
dGF0dXMgPSBHZXRNYWNPU1N0YXR1c0NvbW1lbnRTdHJpbmcoc3RhdGljX2Nhc3Q8T1NTdGF0dXM+
KGVycm9yQ29kZSkpOwpAQCAtNjc3LDkgKzY3NCw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxl
SW1wbDo6cmVwb3J0RXJyb3JUb0NsaWVudChDRkVycm9yUmVmIGVycm9yKQogICAgICAgICAgICAg
ZGVzY3JpcHRpb24gPSAiT1NTdGF0dXMgRXJyb3IgIiArIFN0cmluZzo6bnVtYmVyKGVycm9yQ29k
ZSkgKyAiOiAiICsgZGVzY3JpcHRpb25PU1N0YXR1czsKICAgICB9CiAKLSNpZiBDT01QSUxFUihD
TEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jcmVhdGUtaHR0
cC1oZWFkZXItbmFtZS10YWJsZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Jl
YXRlLWh0dHAtaGVhZGVyLW5hbWUtdGFibGUKaW5kZXggZWEyYjc0MzM2NDgzYjA1MDYzODcxM2Zk
NTE3M2E2YjA5YjhkNjA3MC4uODQwNDNkNmY3N2MwOWI5NzlkZGMyYmJiNThlMzYyOGQxNjdjZmFm
YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jcmVhdGUtaHR0
cC1oZWFkZXItbmFtZS10YWJsZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NyZWF0ZS1odHRwLWhlYWRlci1uYW1lLXRhYmxlCkBAIC05MCwxMSArOTAsOCBAQCBncGVyZl9m
aWxlLndyaXRlKCcnJwogCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCi0jaWYg
ZGVmaW5lZChfX2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XaW1wbGljaXQtZmFsbHRocm91Z2giCi0jZW5kaWYK
K0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmtub3duLXByYWdtYXMiKQorSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIikKIAog
Ly8gT2xkZXIgdmVyc2lvbnMgb2YgZ3BlcmYgbGlrZSB0byB1c2UgdGhlIGByZWdpc3RlcmAga2V5
d29yZC4KICNkZWZpbmUgcmVnaXN0ZXIKQEAgLTE3OSw3ICsxNzYsOCBAQCBTdHJpbmdWaWV3IGh0
dHBIZWFkZXJOYW1lU3RyaW5nKEhUVFBIZWFkZXJOYW1lIGhlYWRlck5hbWUpCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XaW1wbGlj
aXQtZmFsbHRocm91Z2giKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1
bmtub3duLXByYWdtYXMiKQogI2VuZGlmCiAnJycpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcAppbmRleCA0MDEzZjM3Y2Y3ZTFkN2Y3NzI4ZDhjMDA3
ZmZhNjgxNzI2ZDVlMDFkLi40MGFjNmM0Y2QwNDYxOGZjYzA5NDNmMjIyYTM3MTgyYTNlYzg4YWIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwCkBA
IC02OSwxMCArNjksNyBAQCBTdHJpbmcgVGV4dEVuY29kaW5nOjpkZWNvZGUoY29uc3QgY2hhciog
ZGF0YSwgc2l6ZV90IGxlbmd0aCwgYm9vbCBzdG9wT25FcnJvciwgYgogICAgIHJldHVybiBuZXdU
ZXh0Q29kZWMoKnRoaXMpLT5kZWNvZGUoZGF0YSwgbGVuZ3RoLCB0cnVlLCBzdG9wT25FcnJvciwg
c2F3RXJyb3IpOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFOR19U
T1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogLy8gTk9URTogSUNVJ3MgdW5v
cm1fcXVpY2tDaGVjayBhbmQgdW5vcm1fbm9ybWFsaXplIGZ1bmN0aW9ucyBhcmUgZGVwcmVjYXRl
ZC4KIAogVmVjdG9yPHVpbnQ4X3Q+IFRleHRFbmNvZGluZzo6ZW5jb2RlKFN0cmluZ1ZpZXcgdGV4
dCwgVW5lbmNvZGFibGVIYW5kbGluZyBoYW5kbGluZykgY29uc3QKQEAgLTExMiw5ICsxMDksNyBA
QCBWZWN0b3I8dWludDhfdD4gVGV4dEVuY29kaW5nOjplbmNvZGUoU3RyaW5nVmlldyB0ZXh0LCBV
bmVuY29kYWJsZUhhbmRsaW5nIGhhbmRsaQogICAgIHJldHVybiBuZXdUZXh0Q29kZWMoKnRoaXMp
LT5lbmNvZGUoU3RyaW5nVmlldyB7IHNvdXJjZSwgc291cmNlTGVuZ3RoIH0sIGhhbmRsaW5nKTsK
IH0KIAotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cG9wCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFOR19UT1BfTEVWRUxfRU5EKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogY29uc3QgY2hhciogVGV4dEVuY29kaW5nOjpk
b21OYW1lKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tM
aWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oCmluZGV4IDlhODBkYTQ4ZmVlNzZjNTQxN2I4MGQ4N2M4
NDQ3NjEzMDgzYmEzYTEuLjY3MTAyYTgxOTI2OTM1YjI1NjFiZTliZmRkMzFhNzYxZmUzMWE1MTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNv
bm5lY3Rpb24uaApAQCAtMjgsMTMgKzI4LDEyIEBACiAKICNpbmNsdWRlICJMaWJXZWJSVENNYWNy
b3MuaCIKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitJR05PUkVfV0FSTklOR19DTEFO
R19UT1BfTEVWRUwoIi1XdW51c2VkLXBhcmFtZXRlciIpCiAKICNpbmNsdWRlIDx3ZWJydGMvYXBp
L21lZGlhc3RyZWFtaW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS9wZWVyY29ubmVj
dGlvbmludGVyZmFjZS5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVf
V0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3VudXNlZC1wYXJhbWV0ZXIiKQogCiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YUGF0aEdyYW1tYXIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoR3JhbW1hci5j
cHAKaW5kZXggMzFkZjFjMGQxNThhMjc4ZjRjMDk2Y2IyYmE5MTFmM2Y3YjAxYjk0My4uZjQwNTgy
ZTBjNjczYWY5M2NiYThhYzAyNGM3MTI5OWJlNWUzNTNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUveG1sL1hQYXRoR3JhbW1hci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRo
R3JhbW1hci5jcHAKQEAgLTIxNTQsMTUgKzIxNTQsMTAgQEAgeXllcnJvcmxhYjoKICAgLyogUGFj
aWZ5IGNvbXBpbGVycyBsaWtlIEdDQyB3aGVuIHRoZSB1c2VyIGNvZGUgbmV2ZXIgaW52b2tlcwog
ICAgICBZWUVSUk9SIGFuZCB0aGUgbGFiZWwgeXllcnJvcmxhYiB0aGVyZWZvcmUgbmV2ZXIgYXBw
ZWFycyBpbiB1c2VyCiAgICAgIGNvZGUuICAqLwotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV3VucmVhY2hhYmxlLWNvZGUiCi0jZW5kaWYKKyAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1X
dW5yZWFjaGFibGUtY29kZSIpOwogICBpZiAoLypDT05TVENPTkQqLyAwKQogICAgICBnb3RvIHl5
ZXJyb3JsYWI7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCi0jZW5kaWYKKyAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV3VucmVhY2hhYmxlLWNv
ZGUiKTsKIAogICAvKiBEbyBub3QgcmVjbGFpbSB0aGUgc3ltYm9scyBvZiB0aGUgcnVsZSB3aGlj
aCBhY3Rpb24gdHJpZ2dlcmVkCiAgICAgIHRoaXMgWVlFUlJPUi4gICovCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1t
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5tbQppbmRleCBmMmNjNzMzNTkzY2FkYzA1Y2Y0NjMwN2U2ODIwZjRiOTIwNDY5NDEwLi5lN2M2
ZWI2NzVjNjA0Y2Q1MWQ3YzAwYjAyODM1MmZkOGVmNTg0OTk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
bW0KQEAgLTEyNCwxMiArMTI0LDExIEBAIE5TSFRUUENvb2tpZVN0b3JhZ2UgKk5ldHdvcmtEYXRh
VGFza0NvY29hOjpzdGF0ZWxlc3NDb29raWVTdG9yYWdlKCkKICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8UmV0YWluUHRyPE5TSFRUUENvb2tpZVN0b3JhZ2U+PiBzdGF0ZWxlc3NDb29raWVTdG9y
YWdlOwogICAgIGlmICghc3RhdGVsZXNzQ29va2llU3RvcmFnZS5nZXQoKSkgewogI2lmIChQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDEzMDApCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1Xbm9ubnVsbCIKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1Xbm9ubnVsbCIpOwog
I2VuZGlmCiAgICAgICAgIHN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UuZ2V0KCkgPSBhZG9wdE5TKFtb
TlNIVFRQQ29va2llU3RvcmFnZSBhbGxvY10gX2luaXRXaXRoSWRlbnRpZmllcjpuaWwgcHJpdmF0
ZTpZRVNdKTsKICNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEIDwgMTAxMzAwKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCQlJR05PUkVf
V0FSTklOR19DTEFOR19FTkQoIi1Xbm9ubnVsbCIpOwogI2VuZGlmCiAgICAgICAgIHN0YXRlbGVz
c0Nvb2tpZVN0b3JhZ2UuZ2V0KCkuZ2V0KCkuY29va2llQWNjZXB0UG9saWN5ID0gTlNIVFRQQ29v
a2llQWNjZXB0UG9saWN5TmV2ZXI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4IDAwMjNm
ZTE2MWI1M2VmNWJjM2E1MzQ0MzliNjYyZTU4Y2RhMGU2NWMuLjYwOTMwYTkwNWVmZTM4ZWU2ODkz
YTUzMDBjNDE0OGE3ZWYwYzRlNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KQEAgLTIyMyw4ICsyMjMs
NyBAQCBzdGF0aWMgdm9pZCBzYXZlQ29va2llcyhOU0hUVFBDb29raWVTdG9yYWdlICpjb29raWVT
dG9yYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2bwogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0
Zm9ybVN5bmNBbGxDb29raWVzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGVyKSB7CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVn
ZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgCiAjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDE0MDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEyMDAwMCkKICAgICBSZWZQdHI8Q2FsbGJhY2tBZ2dyZWdhdG9yPiBj
YWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kZXIpKTsKQEAgLTIzNiw3ICsyMzUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
OjpwbGF0Zm9ybVN5bmNBbGxDb29raWVzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aQogICAgIGNvbXBsZXRpb25IYW5kZXIoKTsKICNlbmRpZgogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtUHJlcGFyZVRv
U3VzcGVuZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMu
bW0KaW5kZXggN2VjMDRiY2ZlZDU4MzI2YzY2MzUzZWUzNWU4YjFiNzVjZTExOWJmYS4uMDg0YjM0
NGMyZTFmMTAzMjA3YzYyNmVmY2Y4NjEyZmFkYzRjZjJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQpAQCAtMjYwLDEzICsy
NjAsMTIgQEAgc3RhdGljIHVuc2lnbmVkIG1vZGFsQ291bnQ7CiAKIHN0YXRpYyB2b2lkIGJlZ2lu
TW9kYWwoKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgLy8gTWFrZSBz
dXJlIHRvIG1ha2Ugb3Vyc2VsdmVzIHRoZSBmcm9udCBwcm9jZXNzCiAgICAgUHJvY2Vzc1Nlcmlh
bE51bWJlciBwc247CiAgICAgR2V0Q3VycmVudFByb2Nlc3MoJnBzbik7CiAgICAgU2V0RnJvbnRQ
cm9jZXNzKCZwc24pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJO
SU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgaWYgKCFt
b2RhbENvdW50KyspCiAgICAgICAgIHNldE1vZGFsKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hpbS5tbSBiL1NvdXJjZS9X
ZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0KaW5kZXggNDAzNmQz
Yjg3NDQwMzY4MDcyYjIwYjc4MDI2MTdkMTllOWQxYjBhNC4uZmE4MDNlMWYwYjBmNDMzNGE2MzNk
OTdkNjBmNzljOWM4NTg2YzhjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9j
ZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hpbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblBy
b2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NTaGltLm1tCkBAIC00OCw4ICs0OCw3IEBAIHN0YXRpYyBQ
bHVnaW5Qcm9jZXNzU2hpbUNhbGxiYWNrcyBwbHVnaW5Qcm9jZXNzU2hpbUNhbGxiYWNrczsKIAog
I2lmbmRlZiBfX0xQNjRfXwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJ
R05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KQogCiBzdGF0aWMgdm9pZCBzaGltRGVidWdnZXIodm9pZCkKIHsKQEAgLTEzMyw3ICsxMzIsNyBA
QCBEWUxEX0lOVEVSUE9TRShzaGltSGlkZVdpbmRvdywgSGlkZVdpbmRvdyk7CiBEWUxEX0lOVEVS
UE9TRShzaGltTFNPcGVuQ0ZVUkxSZWYsIExTT3BlbkNGVVJMUmVmKTsKIERZTERfSU5URVJQT1NF
KHNoaW1NYWNoVk1NYXAsIG1hY2hfdm1fbWFwKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpCiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1bGUuY3BwCmluZGV4
IDYwZjQxZWJkZmY2MWM4NjM3N2NhZmYxN2NhZWI1NmE5NDQ1ZWM3NzkuLjVkN2MxYzE4MzVjZmJk
NTk3MmMwYzRkOWMwZTg4ODEzMDU0YmMwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1bGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1bGUuY3Bw
CkBAIC0yNDIsOCArMjQyLDcgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6dHJ5TG9hZCgp
CiAjaWYgUExVR0lOX0FSQ0hJVEVDVFVSRShNQUMpCiAjaWZuZGVmIE5QX05PX0NBUkJPTgogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIC8vIFBsdWdpbnMgKGF0IGxl
YXN0IFFUKSByZXF1aXJlIHRoYXQgeW91IGNhbGwgVXNlUmVzRmlsZSBvbiB0aGUgcmVzb3VyY2Ug
ZmlsZSBiZWZvcmUgbG9hZGluZyBpdC4KICAgICBSZXNGaWxlUmVmTnVtIGN1cnJlbnRSZXNvdXJj
ZUZpbGUgPSBDdXJSZXNGaWxlKCk7CkBAIC0yNTgsNyArMjU3LDcgQEAgYm9vbCBOZXRzY2FwZVBs
dWdpbk1vZHVsZTo6dHJ5TG9hZCgpCiAgICAgLy8gUmVzdG9yZSB0aGUgcmVzb3VyY2UgZmlsZS4K
ICAgICBVc2VSZXNGaWxlKGN1cnJlbnRSZXNvdXJjZUZpbGUpOwogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9pb3MvQ2hpbGRQcm9jZXNzSU9TLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0No
aWxkUHJvY2Vzc0lPUy5tbQppbmRleCA5YmRkNzJmODNmNDMxM2U0NjBjNWRjZTBiMzllY2Q1ZTU1
N2I3NGNhLi44ZjMxZGZiOWNiZTZlYjQ1OTFhMjQ4YmY2OGMyYTRhNWU2MWIyY2Y0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvQ2hpbGRQcm9jZXNzSU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9DaGlsZFByb2Nlc3NJT1MubW0KQEAgLTgwLDEwICs4MCw5
IEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nl
c3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmCiAgICAgICAgIGlmICghc2FuZGJveFByb2ZpbGVQ
YXRoLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgQ1N0cmluZyBwcm9maWxlUGF0aCA9IEZpbGVT
eXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzYW5kYm94UHJvZmlsZVBhdGgpOwogICAg
ICAgICAgICAgY2hhciogZXJyb3JCdWY7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisJCQlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogICAgICAgICAgICAgaWYgKHNhbmRib3hfaW5pdF93aXRoX3BhcmFtZXRlcnMocHJvZmlsZVBh
dGguZGF0YSgpLCBTQU5EQk9YX05BTUVEX0VYVEVSTkFMLCBzYW5kYm94UGFyYW1ldGVycy5uYW1l
ZFBhcmFtZXRlckFycmF5KCksICZlcnJvckJ1ZikpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKwkJCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXM6IENvdWxkbid0IGluaXRp
YWxpemUgc2FuZGJveCBwcm9maWxlIFslc10sIGVycm9yICclcydcbiIsIGdldHByb2duYW1lKCks
IHByb2ZpbGVQYXRoLmRhdGEoKSwgZXJyb3JCdWYpOwogICAgICAgICAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwLCBjb3VudCA9IHNhbmRib3hQYXJhbWV0ZXJzLmNvdW50KCk7IGkgIT0gY291bnQ7
ICsraSkKICAgICAgICAgICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIlcz0lc1xuIiwgc2FuZGJv
eFBhcmFtZXRlcnMubmFtZShpKSwgc2FuZGJveFBhcmFtZXRlcnMudmFsdWUoaSkpOwpAQCAtOTUs
MTAgKzk0LDkgQEAgdm9pZCBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IENo
aWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYKICAgICB9CiAgICAgY2FzZSBTYW5k
Ym94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzOjpVc2VTYW5kYm94UHJvZmlsZTogewogICAgICAg
ICBjaGFyKiBlcnJvckJ1ZjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwkJ
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAg
ICAgaWYgKHNhbmRib3hfaW5pdF93aXRoX3BhcmFtZXRlcnMoc2FuZGJveFBhcmFtZXRlcnMuc2Fu
ZGJveFByb2ZpbGUoKS51dGY4KCkuZGF0YSgpLCAwLCBzYW5kYm94UGFyYW1ldGVycy5uYW1lZFBh
cmFtZXRlckFycmF5KCksICZlcnJvckJ1ZikpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzOiBDb3VsZG4ndCBpbml0aWFsaXplIHNh
bmRib3ggcHJvZmlsZSwgZXJyb3IgJyVzJ1xuIiwgZ2V0cHJvZ25hbWUoKSwgZXJyb3JCdWYpOwog
ICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gc2FuZGJveFBhcmFtZXRlcnMu
Y291bnQoKTsgaSAhPSBjb3VudDsgKytpKQogICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygi
JXM9JXNcbiIsIHNhbmRib3hQYXJhbWV0ZXJzLm5hbWUoaSksIHNhbmRib3hQYXJhbWV0ZXJzLnZh
bHVlKGkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGlsZFByb2Nl
c3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCmlu
ZGV4IDA0Mzg3MjY5YmM3NGY5NzUxYTUyZGNiYmQyMDliZjhhZTczM2MzZWEuLjVjNzc1MzQ5MDgx
YWU2NTg2Yjc3ZjU1OGRhNjY5NWMzMmJjYjVmNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL0NoaWxkUHJvY2Vzc01hYy5tbQpAQCAtNTM0LDEwICs1MzQsOSBAQCBzdGF0aWMgYm9vbCBj
b21waWxlQW5kQXBwbHlTYW5kYm94U2xvd0Nhc2UoY29uc3QgU3RyaW5nJiBwcm9maWxlT3JQcm9m
aWxlUGF0aCwgYgogICAgIGNoYXIqIGVycm9yQnVmOwogICAgIENTdHJpbmcgdGVtcCA9IGlzUHJv
ZmlsZVBhdGggPyBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocHJvZmlsZU9y
UHJvZmlsZVBhdGgpIDogcHJvZmlsZU9yUHJvZmlsZVBhdGgudXRmOCgpOwogICAgIHVpbnQ2NF90
IGZsYWdzID0gaXNQcm9maWxlUGF0aCA/IFNBTkRCT1hfTkFNRURfRVhURVJOQUwgOiAwOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaWYgKHNhbmRib3hfaW5pdF93aXRoX3Bh
cmFtZXRlcnModGVtcC5kYXRhKCksIGZsYWdzLCBwYXJhbWV0ZXJzLm5hbWVkUGFyYW1ldGVyQXJy
YXkoKSwgJmVycm9yQnVmKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9S
RV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAg
ICBXVEZMb2dBbHdheXMoIiVzOiBDb3VsZCBub3QgaW5pdGlhbGl6ZSBzYW5kYm94IHByb2ZpbGUg
WyVzXSwgZXJyb3IgJyVzJ1xuIiwgZ2V0cHJvZ25hbWUoKSwgdGVtcC5kYXRhKCksIGVycm9yQnVm
KTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gcGFyYW1ldGVycy5jb3VudCgp
OyBpICE9IGNvdW50OyArK2kpCiAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzPSVzXG4iLCBw
YXJhbWV0ZXJzLm5hbWUoaSksIHBhcmFtZXRlcnMudmFsdWUoaSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLm1tIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLm1tCmluZGV4IDY1ZjJiNWE2ZDc4MzYxZjZjNDUwNWRj
ZTkxODU2N2FjMzFhYzg4YWMuLjRiYTdiN2U5YzMyMGRjYjA3NTlmNjM5MzNjMmE2MzBmOGFiZDE5
MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEubW0KQEAgLTgz
LDEwICs4Myw5IEBAIGJvb2wgQ29sb3JTcGFjZURhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRl
Y29kZXIsIENvbG9yU3BhY2VEYXRhJiBjb2xvclNwYWNlRGF0CiAgICAgICAgIGlmICghSVBDOjpk
ZWNvZGUoZGVjb2RlciwgZGF0YSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgY29sb3JTcGFjZURhdGEuY2dDb2xv
clNwYWNlID0gYWRvcHRDRihDR0NvbG9yU3BhY2VDcmVhdGVXaXRoSUNDUHJvZmlsZShkYXRhLmdl
dCgpKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJCUlHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TYW5kYm94
RXh0ZW5zaW9uTWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNp
b25NYWMubW0KaW5kZXggYjhlNzQzZDIzNjBjZmVlZmMxN2JjYTI0ZDU5NzExY2RkNThhNWI3ZS4u
ODc2YmEzZmRhNWMwYThkYWE5NzQwMGZkYjdmZGRkOGI3ZjU0YjNhNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0KKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0KQEAgLTg2LDEyICs4Niwx
MSBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgIGNh
c2UgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZE9ubHk6Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisJCQlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9uX2lzc3Vl
X2ZpbGUoQVBQX1NBTkRCT1hfUkVBRCwgcGF0aCwgMCk7CiAgICAgICAgIGNhc2UgU2FuZGJveEV4
dGVuc2lvbjo6VHlwZTo6UmVhZFdyaXRlOgogICAgICAgICAgICAgcmV0dXJuIHNhbmRib3hfZXh0
ZW5zaW9uX2lzc3VlX2ZpbGUoQVBQX1NBTkRCT1hfUkVBRF9XUklURSwgcGF0aCwgMCk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJCQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgY2FzZSBTYW5kYm94RXh0ZW5zaW9u
OjpUeXBlOjpHZW5lcmljOgogICAgICAgICAgICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9uX2lz
c3VlX2dlbmVyaWMocGF0aCwgMCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDBmMmE0Yjg2YTJmNTI2Njc2Yzc1MDI2
NzBlMTVkNDg4MzBmOTBlY2UuLmEzZjcyNTlkYTk3ODRlMmZlNmI1NTQxNGRhMjc5ZDEwNzk1ZjFm
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQpAQCAtMzk5MSwxMCArMzk5MSw5IEBAIFdFQkNPUkVfQ09NTUFORCh5YW5rQW5kU2VsZWN0KQog
CiAtIChpZClfd2ViX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOihOU1N0cmluZyAq
KWF0dHJpYnV0ZQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9S
RV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgcmV0dXJu
IFtzdXBlciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6YXR0cmlidXRlXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogLSAodm9pZClfd2ViX3N1cGVyRG9Db21tYW5kQnlT
ZWxlY3RvcjooU0VMKXNlbGVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCmluZGV4IDg0NzhkYjJj
ZTNjNjdlZTUwNzdlYzUwYjBlNTA0MWJlOTRhZWY1OTIuLjVhMTJmMWJmYzZkY2EzZjNhOTZjMWVj
YTVmNWUyZjBiYmNlZDAwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCkBAIC01MDAsOCArNTAw
LDcgQEAgc3RhdGljIE5TU3RyaW5nICpkZWZhdWx0QXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50
KCkKICAgICByZXR1cm4gaGFuZGxlciA/IHN0YXRpY19jYXN0PFdlYktpdDo6V2ViVVJMU2NoZW1l
SGFuZGxlckNvY29hKj4oaGFuZGxlci5nZXQoKSktPmFwaUhhbmRsZXIoKSA6IG5pbDsKIH0KIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
VE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogLSAoX1dLV2Vic2l0ZURh
dGFTdG9yZSAqKV93ZWJzaXRlRGF0YVN0b3JlCiB7CkBAIC01MTMsNyArNTEyLDcgQEAgc3RhdGlj
IE5TU3RyaW5nICpkZWZhdWx0QXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KCkKICAgICBzZWxm
LndlYnNpdGVEYXRhU3RvcmUgPSB3ZWJzaXRlRGF0YVN0b3JlID8gd2Vic2l0ZURhdGFTdG9yZS0+
X2RhdGFTdG9yZS5nZXQoKSA6IG51bGxwdHI7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKQogCiAjaWYgUExBVEZPUk0oSU9TKQogLSAoV0tXZWJWaWV3Q29udGVudFBy
b3ZpZGVyUmVnaXN0cnkgKilfY29udGVudFByb3ZpZGVyUmVnaXN0cnkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmUubW0K
aW5kZXggZDU2MjFiMDA0ZTVkMDc3MjgxZmQ1MGY5NDliZmZhMmJjZTNlNzgyNC4uZTRiZmM5MTE4
NDUwZGVmMTE5NDI0ZmI0NDMxYWVjMGZmNzdmYjUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTQw
LDggKzQwLDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRh
VHlwZXMpIHsKICAgICBfV0tXZWJzaXRlRGF0YVR5cGVXZWJTUUxEYXRhYmFzZXMgPSAxIDw8IDUs
CiB9OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklO
R19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiBAaW1wbGVt
ZW50YXRpb24gX1dLV2Vic2l0ZURhdGFTdG9yZQogCkBAIC0xMDcsNiArMTA2LDYgQEAgc3RhdGlj
IFJldGFpblB0cjxOU1NldD4gdG9XS1dlYnNpdGVEYXRhVHlwZXMoX1dLV2Vic2l0ZURhdGFUeXBl
cyB3ZWJzaXRlRGF0YVR5cGUKIAogQGVuZAogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIikKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IDdiZmE4NDJhNDliZDIxNDc1NjBhYTI2NGMwZTg3
MTgzNjIyZjk0NTYuLjZlMGFmMjY0ZDgwMTc1NmMwNTRjODdjNzBhMTVjMDE1OTA4ZmZkZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcu
Y3BwCkBAIC0yMDgyLDggKzIwODIsNyBAQCB2b2lkIHdlYmtpdFdlYlZpZXdSdW5Bc01vZGFsKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcpCiAKICNpZiBQTEFURk9STShHVEspCiAvLyBUaGlzIGlzIHRv
IHN1cHByZXNzIHdhcm5pbmdzIGFib3V0IGdka190aHJlYWRzX2xlYXZlIGFuZCBnZGtfdGhyZWFk
c19lbnRlci4KLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJO
SU5HX0dDQygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGdka190aHJlYWRzX2xl
YXZlKCk7CiAjZW5kaWYKIApAQCAtMjA5MSw3ICsyMDkwLDcgQEAgdm9pZCB3ZWJraXRXZWJWaWV3
UnVuQXNNb2RhbChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogCiAjaWYgUExBVEZPUk0oR1RLKQog
ICAgIGdka190aHJlYWRzX2VudGVyKCk7Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorICAg
IElHTk9SRV9XQVJOSU5HX0dDQ19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICNl
bmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dL
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4
IGU5ODMyODZiZmFiOWRlNjExMDA5YWVlOGU5NGMzNTFiNDUyZjE1NzEuLmExMGRjZWU1ZGQ5OTk1
YzliN2ZkMDgzOWVjYTZhZWFjZGZkNGJlMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3Lm1tCkBAIC05NzgsMTAgKzk3OCw5IEBAIFNvbWUgb3RoZXIgZWRpdGluZy1y
ZWxhdGVkIG1ldGhvZHMgc3RpbGwgdW5pbXBsZW1lbnRlZDoKIAogLSAoaWQpX3dlYl9zdXBlckFj
Y2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTooTlNTdHJpbmcgKilhdHRyaWJ1dGUKIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIHJldHVybiBbc3VwZXIgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOmF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiB9CiAKIC0gKHZvaWQpX3dlYl9zdXBlckRvQ29tbWFuZEJ5U2VsZWN0b3I6KFNFTClzZWxlY3Rv
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRG93bmxvYWRDbGll
bnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZENsaWVudC5tbQpp
bmRleCAwZWIxY2Y2NDAzMjg2ODYxYWE0Mjc0ZGZjNzQ0ODQzZjBiZDAwYTZhLi5hYTg3NmE0YTRl
OGM0ZmQyNDEyNTdmNTA1ODkyZWU4MTc3NzIwNGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZENsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Eb3dubG9hZENsaWVudC5tbQpAQCAtMjAyLDEwICsyMDIsOSBAQCB2b2lk
IERvd25sb2FkQ2xpZW50OjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShX
ZWJQcm9jZXNzUG9vbCYsIERvdwogCiAgICAgaWYgKG1fZGVsZWdhdGVNZXRob2RzLmRvd25sb2Fk
RGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWVBbGxvd092ZXJ3cml0ZSkgewog
ICAgICAgICBCT09MIGFsbG93T3ZlcndyaXRlID0gTk87Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgICAgIE5TU3RyaW5nICpkZXN0aW5hdGlvbiA9IFttX2RlbGVnYXRlIF9k
b3dubG9hZDp3cmFwcGVyKGRvd25sb2FkUHJveHkpIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dl
c3RlZEZpbGVuYW1lOmZpbGVuYW1lIGFsbG93T3ZlcndyaXRlOiZhbGxvd092ZXJ3cml0ZV07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihh
bGxvd092ZXJ3cml0ZSA/IEFsbG93T3ZlcndyaXRlOjpZZXMgOiBBbGxvd092ZXJ3cml0ZTo6Tm8s
IGRlc3RpbmF0aW9uKTsKICAgICB9IGVsc2UgewogICAgICAgICBbbV9kZWxlZ2F0ZSBfZG93bmxv
YWQ6d3JhcHBlcihkb3dubG9hZFByb3h5KSBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRG
aWxlbmFtZTpmaWxlbmFtZSBjb21wbGV0aW9uSGFuZGxlcjpCbG9ja1B0cjx2b2lkKEJPT0wsIE5T
U3RyaW5nICopPjo6ZnJvbUNhbGxhYmxlKFtjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxs
Q2hlY2tlcjo6Y3JlYXRlKG1fZGVsZWdhdGUuZ2V0KCkuZ2V0KCksIEBzZWxlY3RvcihfZG93bmxv
YWQ6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWU6Y29tcGxldGlvbkhhbmRs
ZXI6KSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChC
T09MIGFsbG93T3ZlcndyaXRlLCBOU1N0cmluZyAqZGVzdGluYXRpb24pIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdl
ckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVBy
b3RvY29sTWFuYWdlckNsaWVudC5tbQppbmRleCAxMWJhMzcyNjU0ODNmZmU3ZmYyNDY1MDk0MGQ4
ZjMzYTUyYzBjMDRhLi5iODEzMTk2MmU0ZWI5NzczNjhiMTIxZGQ2ZDMyMThhZDMyM2QxYzQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90
b2NvbE1hbmFnZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCkBAIC01OSwxMiArNTksMTEgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICBfY3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkg
PSBjdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTsKICAgICBfY3VzdG9tUHJvdG9jb2xJRCA9IGN1
c3RvbVByb3RvY29sSUQ7CiAgICAgX3N0b3JhZ2VQb2xpY3kgPSBOU1VSTENhY2hlU3RvcmFnZU5v
dEFsbG93ZWQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dB
Uk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBfdXJsQ29ubmVj
dGlvbiA9IFtbTlNVUkxDb25uZWN0aW9uIGFsbG9jXSBpbml0V2l0aFJlcXVlc3Q6cmVxdWVzdCBk
ZWxlZ2F0ZTpzZWxmIHN0YXJ0SW1tZWRpYXRlbHk6Tk9dOwogICAgIFtfdXJsQ29ubmVjdGlvbiBz
Y2hlZHVsZUluUnVuTG9vcDpbTlNSdW5Mb29wIG1haW5SdW5Mb29wXSBmb3JNb2RlOk5TUnVuTG9v
cENvbW1vbk1vZGVzXTsKICAgICBbX3VybENvbm5lY3Rpb24gc3RhcnRdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KaW5kZXggMzQ0MDFkZTNiZGY1
MDE2ZjMyZDRiYjZmZjE2ZGZkNTkxMzdhOTgxOS4uZmRlYTJkZjQ0YjdmY2QyYzJjZmYwZDBlMGQy
NWM1NjVkYmNkNDQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
TmF2aWdhdGlvblN0YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05h
dmlnYXRpb25TdGF0ZS5tbQpAQCAtNTc1LDEwICs1NzUsOSBAQCB2b2lkIE5hdmlnYXRpb25TdGF0
ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQ
YWdlUAogICAgICAgICBpZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uVXNlckluZm9EZWNp
c2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMpCiAgICAgICAgICAgICBbKGlkIDxXS05hdmlnYXRp
b25EZWxlZ2F0ZVByaXZhdGU+KW5hdmlnYXRpb25EZWxlZ2F0ZSBfd2ViVmlldzptX25hdmlnYXRp
b25TdGF0ZS5tX3dlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp3cmFwcGVy
KG5hdmlnYXRpb25BY3Rpb24pIHVzZXJJbmZvOnVzZXJJbmZvID8gc3RhdGljX2Nhc3Q8aWQgPE5T
U2VjdXJlQ29kaW5nPj4odXNlckluZm8tPndyYXBwZXIoKSkgOiBuaWwgZGVjaXNpb25IYW5kbGVy
OmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CiAgICAgICAgIGVsc2UgewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorCQkJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRl
UHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1f
d2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndyYXBwZXIobmF2aWdhdGlv
bkFjdGlvbikgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisJCQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAg
IGF1dG8gZGVjaXNpb25IYW5kbGVyV2l0aG91dFBvbGljaWVzID0gW2RlY2lzaW9uSGFuZGxlcldp
dGhQb2xpY2llcyA9IFdURk1vdmUoZGVjaXNpb25IYW5kbGVyV2l0aFBvbGljaWVzKV0gKFdLTmF2
aWdhdGlvbkFjdGlvblBvbGljeSBhY3Rpb25Qb2xpY3kpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggZjBiOWQzMDAwYTllNjU0NWFk
YjBiMTI0NTMxZjU3MGU0ODIyNTliNC4uNTNiODM1NWZmMzM1NjdmYzE5MjllNGM1ODFkMDMyYjM4
NjNjNTFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxl
Z2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1t
CkBAIC0yMDMsMTMgKzIwMywxMiBAQCB2b2lkIFVJRGVsZWdhdGU6OkNvbnRleHRNZW51Q2xpZW50
OjptZW51RnJvbVByb3Bvc2VkTWVudShXZWJQYWdlUHJveHkmLCBOU01lbnUgKgogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
CUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
aWYgKG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q29udGV4dE1lbnVGb3JF
bGVtZW50KQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoWyhpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBjb250
ZXh0TWVudTptZW51IGZvckVsZW1lbnQ6Y29udGV4dE1lbnVFbGVtZW50SW5mby5nZXQoKV0pOwog
CiAgICAgY29tcGxldGlvbkhhbmRsZXIoWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdh
dGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBjb250ZXh0TWVudTptZW51IGZvckVs
ZW1lbnQ6Y29udGV4dE1lbnVFbGVtZW50SW5mby5nZXQoKSB1c2VySW5mbzp1c2VySW5mbyA/IHN0
YXRpY19jYXN0PGlkIDxOU1NlY3VyZUNvZGluZz4+KHVzZXJJbmZvLT53cmFwcGVyKCkpIDogbmls
XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
RU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5k
ZXggMDQ5OGQwODhlZGFlNzBlNmRjYmFjYjQwZTE5MmVkMDdkOWQ2NGJiMy4uYzQ0ZTE5ODY2MjY0
YmJkMzE1ODQyNzU4NmM0ZmNiMTUyMGIxYjIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC0xNjYsMTEgKzE2Niwx
MCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybVJlc29sdmVQYXRoc0ZvclNhbmRib3hF
eHRlbnNpb25zKCkKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlBy
b2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICNpZiBQ
TEFURk9STShNQUMpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBBU1NFUlQo
aGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5Db21tdW5pY2F0ZVdpdGhX
aW5kb3dTZXJ2ZXIpKTsKICAgICBwYXJhbWV0ZXJzLmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJ
bnRlcmZhY2VFbmFibGVkID0gW1tOU0FwcCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJB
WEVuaGFuY2VkVXNlckludGVyZmFjZSJdIGJvb2xWYWx1ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAjZWxzZQogICAgIHBhcmFtZXRlcnMuYWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNl
ckludGVyZmFjZUVuYWJsZWQgPSBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA4ZWFkODYyMmVkYzZjNTBiMmMwZjE1YjQ5
NjIxMGVlM2NiZTU3ZWUwLi41ZTFhYzllYTU1YTljY2RlMmZlY2JjNjNmMGE2NDE2NTkwYWRlYzc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAt
NTU2LDE1ICs1NTYsMTQgQEAgc3RhdGljIGNvbnN0IE5TVUludGVnZXIgb3JkZXJlZExpc3RTZWdt
ZW50ID0gMjsKICAgICBbaW5zZXJ0TGlzdENvbnRyb2wgc2V0V2lkdGg6bGlzdENvbnRyb2xTZWdt
ZW50V2lkdGggZm9yU2VnbWVudDpvcmRlcmVkTGlzdFNlZ21lbnRdOwogICAgIGluc2VydExpc3RD
b250cm9sLmZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6MTVdOwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBpZCBzZWdtZW50RWxlbWVudCA9IE5TQWNjZXNzaWJp
bGl0eVVuaWdub3JlZERlc2NlbmRhbnQoaW5zZXJ0TGlzdENvbnRyb2wpOwogICAgIE5TQXJyYXkg
KnNlZ21lbnRzID0gW3NlZ21lbnRFbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpO
U0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZV07CiAgICAgQVNTRVJUKHNlZ21lbnRzLmNv
dW50ID09IDMpOwogICAgIFtzZWdtZW50c1tub0xpc3RTZWdtZW50XSBhY2Nlc3NpYmlsaXR5U2V0
T3ZlcnJpZGVWYWx1ZTpXZWJDb3JlOjppbnNlcnRMaXN0VHlwZU5vbmUoKSBmb3JBdHRyaWJ1dGU6
TlNBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25BdHRyaWJ1dGVdOwogICAgIFtzZWdtZW50c1t1bm9y
ZGVyZWRMaXN0U2VnbWVudF0gYWNjZXNzaWJpbGl0eVNldE92ZXJyaWRlVmFsdWU6V2ViQ29yZTo6
aW5zZXJ0TGlzdFR5cGVCdWxsZXRlZEFjY2Vzc2liaWxpdHlUaXRsZSgpIGZvckF0dHJpYnV0ZTpO
U0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgW3NlZ21lbnRzW29yZGVy
ZWRMaXN0U2VnbWVudF0gYWNjZXNzaWJpbGl0eVNldE92ZXJyaWRlVmFsdWU6V2ViQ29yZTo6aW5z
ZXJ0TGlzdFR5cGVOdW1iZXJlZEFjY2Vzc2liaWxpdHlUaXRsZSgpIGZvckF0dHJpYnV0ZTpOU0Fj
Y2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAKICAgICBzZWxmLnZpZXcgPSBpbnNlcnRMaXN0Q29udHJvbDsKIApAQCAtMTYzOCwx
MSArMTYzNywxMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVz
KCkKICAgICAgICAgaWYgKHdlYWtUaGlzLT5tX25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGlu
YXRlcykKICAgICAgICAgICAgIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMgPSBbd2Vha1Ro
aXMtPm1fdmlldyBjb252ZXJ0UmVjdDpbd2Vha1RoaXMtPm1fdmlldyBmcmFtZV0gdG9WaWV3Om5p
bF07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwkJCUlHTk9SRV9XQVJO
SU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIGlmIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICAgICAg
YWNjZXNzaWJpbGl0eVBvc2l0aW9uID0gW1t3ZWFrVGhpcy0+bV92aWV3IGFjY2Vzc2liaWxpdHlB
dHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlQb3NpdGlvbkF0dHJpYnV0ZV0gcG9pbnRWYWx1
ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJCQlJR05PUkVfV0FSTklOR19DTEFO
R19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgCiAgICAgICAgIHdl
YWtUaGlzLT5tX3BhZ2UtPndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKHZpZXdGcmFtZUluV2lu
ZG93Q29vcmRpbmF0ZXMsIGFjY2Vzc2liaWxpdHlQb3NpdGlvbik7CiAgICAgfSk7CkBAIC0zNzE1
LDEwICszNzEzLDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZHJhZ2dlZEltYWdlKE5TSW1hZ2UgKiwg
Q0dQb2ludCBlbmRQb2ludCwgTlNEcmFnT3BlcmF0aW9uIG9wZXIKIAogdm9pZCBXZWJWaWV3SW1w
bDo6c2VuZERyYWdFbmRUb1BhZ2UoQ0dQb2ludCBlbmRQb2ludCwgTlNEcmFnT3BlcmF0aW9uIG9w
ZXJhdGlvbikKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVf
V0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5TUG9pbnQg
d2luZG93SW1hZ2VMb2MgPSBbW21fdmlldyB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6TlNQ
b2ludEZyb21DR1BvaW50KGVuZFBvaW50KV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgTlNQb2ludCB3aW5kb3dNb3VzZUxvYyA9IHdpbmRvd0ltYWdlTG9jOwogCiAgICAgLy8g
UHJldmVudCBxdWV1ZWQgbW91c2VEcmFnZ2VkIGV2ZW50cyBmcm9tIGNvbWluZyBhZnRlciB0aGUg
ZHJhZyBhbmQgZmFrZSBtb3VzZVVwIGV2ZW50LgpAQCAtMzk5NiwxMCArMzk5Myw5IEBAIHZvaWQg
V2ViVmlld0ltcGw6OnN0YXJ0RHJhZyhjb25zdCBXZWJDb3JlOjpEcmFnSXRlbSYgaXRlbSwgY29u
c3QgU2hhcmVhYmxlQml0bWFwCiAgICAgLy8gVGhlIGNhbGwgYmVsb3cgY291bGQgcmVsZWFzZSB0
aGUgdmlldy4KICAgICBhdXRvIHByb3RlY3RvciA9IG1fdmlldy5nZXQoKTsKICAgICBhdXRvIGNs
aWVudERyYWdMb2NhdGlvbiA9IGl0ZW0uZHJhZ0xvY2F0aW9uSW5XaW5kb3dDb29yZGluYXRlczsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFO
RygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5TUGFzdGVib2FyZCAqcGFzdGVi
b2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOk5TRHJhZ1Bib2FyZF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBpZiAoYXV0byYgaW5mbyA9IGl0ZW0u
cHJvbWlzZWRBdHRhY2htZW50SW5mbykgewogICAgICAgICBOU1N0cmluZyAqdXRpVHlwZSA9IGlu
Zm8uY29udGVudFR5cGU7CkBAIC00MDI4LDEwICs0MDI0LDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6
c3RhcnREcmFnKGNvbnN0IFdlYkNvcmU6OkRyYWdJdGVtJiBpdGVtLCBjb25zdCBTaGFyZWFibGVC
aXRtYXAKICAgICB9CiAKICAgICBbcGFzdGVib2FyZCBzZXRTdHJpbmc6QCIiIGZvclR5cGU6UGFz
dGVib2FyZFR5cGVzOjpXZWJEdW1teVBib2FyZFR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgW21fdmlldyBkcmFnSW1hZ2U6ZHJhZ05TSW1hZ2UuZ2V0KCkgYXQ6TlNQ
b2ludEZyb21DR1BvaW50KGNsaWVudERyYWdMb2NhdGlvbikgb2Zmc2V0Ok5TWmVyb1NpemUgZXZl
bnQ6bV9sYXN0TW91c2VEb3duRXZlbnQuZ2V0KCkgcGFzdGVib2FyZDpwYXN0ZWJvYXJkIHNvdXJj
ZTptX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgc2xpZGVCYWNrOllFU107Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgbV9wYWdlLT5kaWRTdGFydERyYWcoKTsKIH0KIApAQCAtNDc3
NywxMSArNDc3MiwxMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpjaGFyYWN0ZXJJbmRleEZvclBvaW50
KE5TUG9pbnQgcG9pbnQsIHZvaWQoXmNvbXBsZXRpb25IYW5kbGVyUAogCiAgICAgTlNXaW5kb3cg
KndpbmRvdyA9IFttX3ZpZXcgd2luZG93XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgaWYgKHdpbmRvdykKICAgICAgICAgcG9pbnQgPSBbd2luZG93IGNvbnZlcnRTY3Jl
ZW5Ub0Jhc2U6cG9pbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9X
QVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIHBvaW50
ID0gW21fdmlldyBjb252ZXJ0UG9pbnQ6cG9pbnQgZnJvbVZpZXc6bmlsXTsgIC8vIHRoZSBwb2lu
dCBpcyByZWxhdGl2ZSB0byB0aGUgbWFpbiBmcmFtZQogCiAgICAgbV9wYWdlLT5jaGFyYWN0ZXJJ
bmRleEZvclBvaW50QXN5bmMoV2ViQ29yZTo6SW50UG9pbnQocG9pbnQpLCBbY29tcGxldGlvbkhh
bmRsZXJdKHVpbnQ2NF90IHJlc3VsdCwgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9y
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVn
aW5Qcm9jZXNzUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL21h
Yy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KaW5kZXggZDQzNWUxZjM0MGNiZTI0YzdlZGE5Yjc0
YTI3MmIyNGZkZDMxM2RkZC4uNDM3NzIxMDFhMmYzNDQ5MjE3NTIyZDVkYTkyMzM2OTMyODQ1NWEz
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2lu
UHJvY2Vzc1Byb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMv
bWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQpAQCAtOTQsMTAgKzk0LDkgQEAgdm9pZCBQbHVn
aW5Qcm9jZXNzUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZVBsdWdpblByb2Nlc3MoUGx1Z2luUHJv
Y2Vzc0NyZWF0aW9uUGEKIGJvb2wgUGx1Z2luUHJvY2Vzc1Byb3h5OjpnZXRQbHVnaW5Qcm9jZXNz
U2VyaWFsTnVtYmVyKFByb2Nlc3NTZXJpYWxOdW1iZXImIHBsdWdpblByb2Nlc3NTZXJpYWxOdW1i
ZXIpCiB7CiAgICAgcGlkX3QgcGx1Z2luUHJvY2Vzc1BJRCA9IHByb2Nlc3NJZGVudGlmaWVyKCk7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICByZXR1cm4gR2V0UHJvY2Vzc0Zv
clBJRChwbHVnaW5Qcm9jZXNzUElELCAmcGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJlcikgPT0gbm9F
cnI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
RU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vz
c1Byb3h5OjptYWtlUGx1Z2luUHJvY2Vzc1RoZUZyb250UHJvY2VzcygpCkBAIC0xMDYsMjAgKzEw
NSwxOCBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6bWFrZVBsdWdpblByb2Nlc3NUaGVGcm9u
dFByb2Nlc3MoKQogICAgIGlmICghZ2V0UGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJlcihwbHVnaW5Q
cm9jZXNzU2VyaWFsTnVtYmVyKSkKICAgICAgICAgcmV0dXJuOwogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICBTZXRGcm9udFByb2Nlc3MoJnBsdWdpblByb2Nlc3NTZXJpYWxO
dW1iZXIpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQogCiB2b2lkIFBsdWdpblBy
b2Nlc3NQcm94eTo6bWFrZVVJUHJvY2Vzc1RoZUZyb250UHJvY2VzcygpCiB7CiAgICAgUHJvY2Vz
c1NlcmlhbE51bWJlciBwcm9jZXNzU2VyaWFsTnVtYmVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgR2V0Q3VycmVudFByb2Nlc3MoJnByb2Nlc3NTZXJpYWxOdW1iZXIpOwog
ICAgIFNldEZyb250UHJvY2VzcygmcHJvY2Vzc1NlcmlhbE51bWJlcik7ICAgICAgICAgICAgCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5
OjpzZXRGdWxsc2NyZWVuV2luZG93SXNTaG93aW5nKGJvb2wgZnVsbHNjcmVlbldpbmRvd0lzU2hv
d2luZykKQEAgLTE1MiwxMCArMTQ5LDkgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmV4aXRG
dWxsc2NyZWVuKCkKIHsKICAgICAvLyBJZiB0aGUgcGx1Zy1pbiBob3N0IGlzIHRoZSBjdXJyZW50
IGFwcGxpY2F0aW9uIHRoZW4gd2Ugc2hvdWxkIGJyaW5nIG91cnNlbHZlcyB0byB0aGUgZnJvbnQg
d2hlbiBpdCBleGl0cyBmdWxsLXNjcmVlbiBtb2RlLgogICAgIFByb2Nlc3NTZXJpYWxOdW1iZXIg
ZnJvbnRQcm9jZXNzU2VyaWFsTnVtYmVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgR2V0RnJvbnRQcm9jZXNzKCZmcm9udFByb2Nlc3NTZXJpYWxOdW1iZXIpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgLy8gVGhlIFVJIHByb2Nlc3MgbXVzdCBiZSB0
aGUgZnJvbnQgcHJvY2VzcyBpbiBvcmRlciB0byBjaGFuZ2UgdGhlIHByZXNlbnRhdGlvbiBtb2Rl
LgogICAgIG1ha2VVSVByb2Nlc3NUaGVGcm9udFByb2Nlc3MoKTsKQEAgLTE2OCwxNSArMTY0LDEz
IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpleGl0RnVsbHNjcmVlbigpCiAgICAgLy8gSWYg
dGhlIHBsdWctaW4gcHJvY2VzcyB3YXMgbm90IHRoZSBmcm9udCBwcm9jZXNzLCBzd2l0Y2ggYmFj
ayB0byB0aGUgcHJldmlvdXMgZnJvbnQgcHJvY2Vzcy4KICAgICAvLyAoT3RoZXJ3aXNlIHdlJ2xs
IGtlZXAgdGhlIFVJIHByb2Nlc3MgYXMgdGhlIGZyb250IHByb2Nlc3MpLgogICAgIEJvb2xlYW4g
aXNQbHVnaW5Qcm9jZXNzRnJvbnRQcm9jZXNzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgU2FtZVByb2Nlc3MoJmZyb250UHJvY2Vzc1NlcmlhbE51bWJlciwgJnBsdWdpblBy
b2Nlc3NTZXJpYWxOdW1iZXIsICZpc1BsdWdpblByb2Nlc3NGcm9udFByb2Nlc3MpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGlmICghaXNQbHVnaW5Qcm9jZXNzRnJvbnRQcm9j
ZXNzKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJCUlHTk9SRV9XQVJO
SU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIFNldEZyb250
UHJvY2VzcygmZnJvbnRQcm9jZXNzU2VyaWFsTnVtYmVyKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tCmluZGV4IGIzNjJkNTdi
OWM0M2E4NWYzNjZlMzNiNmE3ZDQ5Mjk5ZjZhOWQ0ZjMuLjBhOGViMmY5YWU3NDQ4OGU0ODIyNGY1
MmZiMjQ1YjhjMDQ0YmI5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tCkBAIC0zNywxMiArMzcs
MTEgQEAKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5
LmgiCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0lHTk9SRV9XQVJOSU5H
X0NMQU5HX1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKICNpbXBvcnQg
IlVJS2l0U1BJLmgiCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJO
SU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiBz
dGF0aWMgY29uc3QgZmxvYXQgc21hcnRNYWduaWZpY2F0aW9uUGFuU2Nyb2xsVGhyZXNob2xkWm9v
bWVkT3V0ID0gNjA7CiBzdGF0aWMgY29uc3QgZmxvYXQgc21hcnRNYWduaWZpY2F0aW9uUGFuU2Ny
b2xsVGhyZXNob2xkSVBob25lID0gMTAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KaW5kZXggODhkOTM5NzcxMzAw
ZmMwOWFjNTE4NmFkZjEzMTMwMjg0MTA3ZDAxNC4uYzljZDAzOGE0YzAwNDgwNTI5NzlmZTM3ZDlk
NGU3NzJiODcyMGIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
R2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCkBAIC01Myw4ICs1Myw3IEBACiAjaW1wb3J0
IDxXZWJLaXQvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5oPgogI2ltcG9ydCA8
V2ViS2l0L1dlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyLmg+CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKIEBpbnRlcmZhY2UgV0tHZW9sb2NhdGlvblByb3ZpZGVy
SU9TIChfV0tHZW9sb2NhdGlvbkNvcmVMb2NhdGlvbkxpc3RlbmVyKSA8X1dLR2VvbG9jYXRpb25D
b3JlTG9jYXRpb25MaXN0ZW5lcj4KIEBlbmQKQEAgLTM1NCw2ICszNTMsNiBAQCBzdGF0aWMgdm9p
ZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRp
b25NYW5hZ2VyLCBibwogfQogQGVuZAogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJ
R05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIikKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0xlZ2FjeVBERlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tMZWdhY3lQREZWaWV3Lm1tCmluZGV4IDBiNWQ5ZDZjNjQ2YjQyODJjMGZjYjcz
ZTFjYmZkMGNhMzRmMzVhYTYuLjQzNzNjMDMxYzI4NWZmZThjNDk1MDY1ZTE4ZjA4MWRkMWM4Nzk2
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0xlZ2FjeVBERlZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTGVnYWN5UERGVmlldy5t
bQpAQCAtNTEsOCArNTEsNyBAQAogCiAvLyBBbGwgb2YgVUlQREZQYWdlKiBhcmUgZGVwcmVjYXRl
ZCwgc28ganVzdCBpZ25vcmUgZGVwcmVjYXRlZCBkZWNsYXJhdGlvbnMKIC8vIGluIHRoaXMgZmls
ZSB1bnRpbCB3ZSBzd2l0Y2ggb2ZmIHRoZW0uCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiKQogCiBjb25zdCBDR0Zsb2F0IHBkZlBhZ2VNYXJnaW4gPSA4OwogY29uc3QgQ0dG
bG9hdCBwZGZNaW5pbXVtWm9vbVNjYWxlID0gMTsKQEAgLTg1Nyw2ICs4NTYsNiBAQCBzdGF0aWMg
TlNTdHJpbmdDb21wYXJlT3B0aW9ucyBzdHJpbmdDb21wYXJlT3B0aW9ucyhfV0tGaW5kT3B0aW9u
cyBvcHRpb25zKQogCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPU01BQykKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKICNlbmRpZiAvLyBFTkFCTEUoV0tMRUdBQ1lQREZW
SUVXKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERGUGFnZU51
bWJlckluZGljYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1BERlBhZ2VO
dW1iZXJJbmRpY2F0b3IubW0KaW5kZXggOTc5YjMwZDM4MTRiMTMwNmMwYWFiMTk1NmVjMzdhM2Rh
NjYwNjM4Yi4uODJiMTY5MjYwY2NjMTNiYTJlMjdjZmIwYmU5ZjBhMmY1YTMyNTE4ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERGUGFnZU51bWJlckluZGljYXRv
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZQYWdlTnVtYmVySW5k
aWNhdG9yLm1tCkBAIC0xODMsMTAgKzE4Myw5IEBAIGNvbnN0IE5TVGltZUludGVydmFsIGluZGlj
YXRvck1vdmVEdXJhdGlvbiA9IDAuMzsKICAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNvbnRleHQp
OwogICAgIENHQ29udGV4dEFkZFJlY3QoY29udGV4dCwgY29ybmVySW1hZ2VCb3VuZHMpOwogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkco
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBVSUJlemllclBhdGggKmNvcm5lclBh
dGggPSBbVUlCZXppZXJQYXRoIGJlemllclBhdGhXaXRoUm91bmRlZFJlY3Q6Y29ybmVySW1hZ2VC
b3VuZHMgYnlSb3VuZGluZ0Nvcm5lcnM6KFVJUmVjdENvcm5lcilVSUFsbENvcm5lcnMgY29ybmVy
UmFkaWk6Q0dTaXplTWFrZShpbmRpY2F0b3JDb3JuZXJSYWRpdXMsIGluZGljYXRvckNvcm5lclJh
ZGl1cyldOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIENHQ29udGV4dEFkZFBh
dGgoY29udGV4dCwgW2Nvcm5lclBhdGggQ0dQYXRoXSk7CiAgICAgQ0dDb250ZXh0RU9DbGlwKGNv
bnRleHQpOwogICAgIENHQ29udGV4dEZpbGxSZWN0KGNvbnRleHQsIGNvcm5lckltYWdlQm91bmRz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0FpclBs
YXlSb3V0ZVBpY2tlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Fp
clBsYXlSb3V0ZVBpY2tlci5tbQppbmRleCA3NGJkMjMyZDYyMmVlODFlMDdiZjQ0OWUzMDg3YTI1
OTdmYzcyOGZjLi5mMmEwMzE2MDVlMDkzMzhlNGFjNTBlYjgwNGRlOTI5YTE0NDQwMDg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tBaXJQbGF5Um91dGVQ
aWNrZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLQWlyUGxh
eVJvdXRlUGlja2VyLm1tCkBAIC0zOSw4ICszOSw3IEBACiAjaW1wb3J0ICJXS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiBTT0ZUX0xJTktfRlJBTUVXT1JLKE1lZGlhUGxh
eWVyKQogU09GVF9MSU5LX0NMQVNTKE1lZGlhUGxheWVyLCBNUEFWUm91dGluZ0NvbnRyb2xsZXIp
CkBAIC0xNjAsNyArMTU5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogQGVuZAogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVW
RUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogI2Vsc2UgCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5t
bQppbmRleCA4MmQ2ZjJhMGY1YTkwZjBkNGY5NWJiNGZmYmIzZmU4YzFiYmQ4Njc5Li42YjM3MTYx
MTg5OWJkNmE5Y2VmYWViOGMzZGY3YjA5YTZhNzk5MWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tCkBAIC00Niw4
ICs0Niw3IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKIHN0YXRpYyBpbmxpbmUgVUlJbWFnZVBpY2tlckNvbnRy
b2xsZXJDYW1lcmFEZXZpY2UgY2FtZXJhRGV2aWNlRm9yTWVkaWFDYXB0dXJlVHlwZShXZWJDb3Jl
OjpNZWRpYUNhcHR1cmVUeXBlIG1lZGlhQ2FwdHVyZVR5cGUpCiB7CkBAIC0xNjAsMTAgKzE1OSw5
IEBAIHN0YXRpYyBpbmxpbmUgVUlJbWFnZSAqY2FtZXJhSWNvbigpCiAgICAgQk9PTCBfdXNpbmdD
YW1lcmE7CiAgICAgUmV0YWluUHRyPFVJSW1hZ2VQaWNrZXJDb250cm9sbGVyPiBfaW1hZ2VQaWNr
ZXI7CiAgICAgUmV0YWluUHRyPFVJVmlld0NvbnRyb2xsZXI+IF9wcmVzZW50YXRpb25WaWV3Q29u
dHJvbGxlcjsgLy8gaVBob25lIGFsd2F5cy4gaVBhZCBmb3IgRnVsbHNjcmVlbiBDYW1lcmEuCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkco
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBSZXRhaW5QdHI8VUlQb3BvdmVyQ29u
dHJvbGxlcj4gX3ByZXNlbnRhdGlvblBvcG92ZXI7IC8vIGlQYWQgZm9yIGFjdGlvbiBzaGVldCBh
bmQgUGhvdG8gTGlicmFyeS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVf
V0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBSZXRh
aW5QdHI8VUlEb2N1bWVudE1lbnVWaWV3Q29udHJvbGxlcj4gX2RvY3VtZW50TWVudUNvbnRyb2xs
ZXI7CiAgICAgV2ViQ29yZTo6TWVkaWFDYXB0dXJlVHlwZSBfbWVkaWFDYXB0dXJlVHlwZTsKIH0K
QEAgLTQ1MCwxMCArNDQ4LDkgQEAgc3RhdGljIE5TQXJyYXkgKlVUSXNGb3JNSU1FVHlwZXMoTlNB
cnJheSAqbWltZVR5cGVzKQogewogICAgIFtzZWxmIF9kaXNtaXNzRGlzcGxheUFuaW1hdGVkOmFu
aW1hdGVkXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgX3ByZXNlbnRh
dGlvblBvcG92ZXIgPSBhZG9wdE5TKFtbVUlQb3BvdmVyQ29udHJvbGxlciBhbGxvY10gaW5pdFdp
dGhDb250ZW50Vmlld0NvbnRyb2xsZXI6Y29udGVudFZpZXdDb250cm9sbGVyXSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW19wcmVzZW50YXRpb25Qb3BvdmVyIHNldERlbGVn
YXRlOnNlbGZdOwogICAgIFtfcHJlc2VudGF0aW9uUG9wb3ZlciBwcmVzZW50UG9wb3ZlckZyb21S
ZWN0OkNHUmVjdEludGVncmFsKENHUmVjdE1ha2UoX2ludGVyYWN0aW9uUG9pbnQueCwgX2ludGVy
YWN0aW9uUG9pbnQueSwgMSwgMSkpIGluVmlldzpfdmlldyBwZXJtaXR0ZWRBcnJvd0RpcmVjdGlv
bnM6VUlQb3BvdmVyQXJyb3dEaXJlY3Rpb25BbnkgYW5pbWF0ZWQ6YW5pbWF0ZWRdOwogfQpAQCAt
NzIwLDYgKzcxNyw2IEBAIHN0YXRpYyBOU0FycmF5ICpVVElzRm9yTUlNRVR5cGVzKE5TQXJyYXkg
Km1pbWVUeXBlcykKIAogQGVuZAogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05P
UkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IikKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Db2xvckNvbnRyb2wubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtQ29sb3JDb250cm9sLm1tCmluZGV4IDYwOWJhYzMx
ZjU2YWE1YWFlYmYwM2MyZTMxOGMxNTU0YTU4ZTk1YTcuLjY4MmJkZmRmYjBhYTI1YjNiYTFjOWRm
Njk3OGYzYmM2NjBmYTE2ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9mb3Jtcy9XS0Zvcm1Db2xvckNvbnRyb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5tbQpAQCAtNjYsMTAgKzY2LDkgQEAgc3Rh
dGljIGNvbnN0IENHRmxvYXQgY29sb3JQb3BvdmVyQ29ybmVyUmFkaXVzID0gOTsKICAgICBbcG9w
b3ZlclZpZXdDb250cm9sbGVyIHNldFZpZXc6Y29udHJvbENvbnRhaW5lclZpZXcuZ2V0KCldOwog
ICAgIFtwb3BvdmVyVmlld0NvbnRyb2xsZXIgc2V0UHJlZmVycmVkQ29udGVudFNpemU6W2NvbnRy
b2xDb250YWluZXJWaWV3IHNpemVdXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgUmV0YWluUHRyPFVJUG9wb3ZlckNvbnRyb2xsZXI+IGNvbnRyb2xsZXIgPSBhZG9wdE5T
KFtbVUlQb3BvdmVyQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhDb250ZW50Vmlld0NvbnRyb2xs
ZXI6cG9wb3ZlclZpZXdDb250cm9sbGVyLmdldCgpXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgW3NlbGYgc2V0UG9wb3ZlckNvbnRyb2xsZXI6Y29udHJvbGxlci5nZXQoKV07
CiAKICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLm1tCmluZGV4IDFjZDYyZTNiYjUxODEzYjcx
NGUzNGEzY2ZiZWI3M2FiYWFhOTBjZTMuLjAzODdiMGU5NzhiZDk2OTc0YzBjZmUyNTRlMjBmNjQ1
ZWU2YzA3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9X
S0Zvcm1JbnB1dENvbnRyb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zv
cm1zL1dLRm9ybUlucHV0Q29udHJvbC5tbQpAQCAtMzMwLDE2ICszMzAsMTQgQEAgc3RhdGljIGNv
bnN0IE5TVGltZUludGVydmFsIGtNaWxsaXNlY29uZHNQZXJTZWNvbmQgPSAxMDAwOwogICAgIFJl
dGFpblB0cjxVSU5hdmlnYXRpb25Db250cm9sbGVyPiBuYXZpZ2F0aW9uQ29udHJvbGxlciA9IGFk
b3B0TlMoW1tVSU5hdmlnYXRpb25Db250cm9sbGVyIGFsbG9jXSBpbml0V2l0aFJvb3RWaWV3Q29u
dHJvbGxlcjpfdmlld0NvbnRyb2xsZXIuZ2V0KCldKTsKICAgICBVSU5hdmlnYXRpb25JdGVtICpu
YXZpZ2F0aW9uSXRlbSA9IG5hdmlnYXRpb25Db250cm9sbGVyLmdldCgpLm5hdmlnYXRpb25CYXIu
dG9wSXRlbTsKICAgICBOU1N0cmluZyAqY2xlYXJTdHJpbmcgPSBXRUJfVUlfU1RSSU5HX0tFWSgi
Q2xlYXIiLCAiQ2xlYXIgQnV0dG9uIERhdGUgUG9wb3ZlciIsICJDbGVhciBidXR0b24gaW4gZGF0
ZSBpbnB1dCBwb3BvdmVyIik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJ
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBV
SUJhckJ1dHRvbkl0ZW0gKmNsZWFyQnV0dG9uID0gW1tbVUlCYXJCdXR0b25JdGVtIGFsbG9jXSBp
bml0V2l0aFRpdGxlOmNsZWFyU3RyaW5nIHN0eWxlOlVJQmFyQnV0dG9uSXRlbVN0eWxlQm9yZGVy
ZWQgdGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3RvcihjbGVhcjopXSBhdXRvcmVsZWFzZV07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW25hdmlnYXRpb25JdGVtIHNldFJpZ2h0
QmFyQnV0dG9uSXRlbTpjbGVhckJ1dHRvbl07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogICAgIFJldGFpblB0cjxVSVBvcG92ZXJDb250cm9sbGVyPiBjb250cm9sbGVyID0gYWRv
cHROUyhbW1VJUG9wb3ZlckNvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoQ29udGVudFZpZXdDb250
cm9sbGVyOm5hdmlnYXRpb25Db250cm9sbGVyLmdldCgpXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgW3NlbGYgc2V0UG9wb3ZlckNvbnRyb2xsZXI6Y29udHJvbGxlci5nZXQo
KV07CiAKICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvZm9ybXMvV0tGb3JtUG9wb3Zlci5oCmluZGV4IDBlYzhjNjU1Mzg3OWFiZGM1YjkyMTBmOTU3
ODI0YjA3ZTBiMGZkZWIuLjQwMjEyYmMwYjRkYWJkODc4YmI3YjczNTA5NDgxNGVkMTMxNWVmMWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3Bv
dmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92
ZXIuaApAQCAtNDAsMTAgKzQwLDkgQEAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
V0tDb250ZW50VmlldyAqdmlldzsKIAogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQ0dQ
b2ludCBwcmVzZW50YXRpb25Qb2ludDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBVSVBvcG92ZXJDb250cm9sbGVy
ICpwb3BvdmVyQ29udHJvbGxlcjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9S
RV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KQogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgaWQgPFdLUm90YXRpbmdQb3BvdmVyRGVs
ZWdhdGU+IGRpc21pc3Npb25EZWxlZ2F0ZTsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9wb3Zlci5tbQppbmRleCBiZTJmMGQyY2FkNGZm
OGMyZmQ0MTgxNTYzYjdlNmRiNmRjYjhlMmEwLi5kOGZkMWM4ZmZhMTEyMGNjM2ZmM2Q0MzIzZTFh
ZjMzZmU5Yzc5OTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9y
bXMvV0tGb3JtUG9wb3Zlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9y
bXMvV0tGb3JtUG9wb3Zlci5tbQpAQCAtMzYsOCArMzYsNyBAQAogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FS
TklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiBAaW1w
bGVtZW50YXRpb24gV0tGb3JtUm90YXRpbmdBY2Nlc3NvcnlQb3BvdmVyCiAKQEAgLTE3OCw2ICsx
NzcsNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVNlbGVjdFBvcG92
ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtU2VsZWN0UG9w
b3Zlci5tbQppbmRleCA1N2JmYTQwNzA0YTIwZTMyZWVjYjhmZTFjNzZjMmM1MGU4ZDhmOTA0Li44
ZjNjODEzZGZkNjZjODA3MjQ1NGRiOTU2ZWIzNjU4M2VhNjdhYjcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtU2VsZWN0UG9wb3Zlci5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtU2VsZWN0UG9wb3Zlci5t
bQpAQCAtNDAxLDEwICs0MDEsOSBAQCBzdGF0aWMgTlNTdHJpbmcgKnN0cmluZ1dpdGhXcml0aW5n
RGlyZWN0aW9uKE5TU3RyaW5nICpzdHJpbmcsIFVJVGV4dFdyaXRpbmdEaXJlYwogICAgIGVsc2UK
ICAgICAgICAgcG9wb3ZlclZpZXdDb250cm9sbGVyLnByZWZlcnJlZENvbnRlbnRTaXplID0gcG9w
b3ZlclNpemU7CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdO
T1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBzZWxm
LnBvcG92ZXJDb250cm9sbGVyID0gW1tbVUlQb3BvdmVyQ29udHJvbGxlciBhbGxvY10gaW5pdFdp
dGhDb250ZW50Vmlld0NvbnRyb2xsZXI6cG9wb3ZlclZpZXdDb250cm9sbGVyXSBhdXRvcmVsZWFz
ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
RU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBbbmF2Q29udHJvbGxlciBy
ZWxlYXNlXTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbE1hYy5tbQppbmRleCBlMTViNDQyM2E0ZTVlMGJkNzM1ZmZiNzA1MWY3M2Y0ZDdmMWZi
YzZhLi42YzJmYmE5YWZjYjYwNTczNTlmNWRiM2NjZDdhOGU1ZGIyYzhkNjZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC00MTks
MTAgKzQxOSw5IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnBpbm5lZFN0YXRlRGlkQ2hhbmdlKCkK
ICAgICAKIEludFBvaW50IFBhZ2VDbGllbnRJbXBsOjpzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IElu
dFBvaW50JiBwb2ludCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJ
R05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5T
UG9pbnQgd2luZG93Q29vcmQgPSBbW21fdmlldyB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6
cG9pbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIHJldHVybiBJbnRQb2lu
dChbbV92aWV3IGNvbnZlcnRQb2ludDp3aW5kb3dDb29yZCBmcm9tVmlldzpuaWxdKTsKIH0KICAg
ICAKQEAgLTQzMCwxMCArNDI5LDkgQEAgSW50UmVjdCBQYWdlQ2xpZW50SW1wbDo6cm9vdFZpZXdU
b1NjcmVlbihjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIE5TUmVjdCB0ZW1wUmVjdCA9IHJl
Y3Q7CiAgICAgdGVtcFJlY3QgPSBbbV92aWV3IGNvbnZlcnRSZWN0OnRlbXBSZWN0IHRvVmlldzpu
aWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5H
X0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgdGVtcFJlY3Qub3JpZ2lu
ID0gW1ttX3ZpZXcgd2luZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOnRlbXBSZWN0Lm9yaWdpbl07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5E
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJl
Y3QodGVtcFJlY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCmluZGV4IDVhNmJmYzMzY2Vm
MmQyMDZhOWUwNmQxNWRkZjFjODdjYzM3MTI0NTYuLjc5MDcwOTk2NTUxNWZiMmYwZTFjMzc1NWU2
ZWJjYmFjNjhmYjUzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCkBAIC0yNjUsMTIgKzI2NSwx
MSBAQCBzdGF0aWMgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZUltYWdlV2l0aENvcGllZERh
dGEoQ0dJbWFnZVJlZiBzb3VyY2VJbWFnZSkKICAgICAvLyBmdXR1cmUgb3ZlcmhlYWQuCiAgICAg
d2ViVmlld0NvbnRlbnRzID0gY3JlYXRlSW1hZ2VXaXRoQ29waWVkRGF0YSh3ZWJWaWV3Q29udGVu
dHMuZ2V0KCkpOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAvLyBTY3Jl
ZW4gdXBkYXRlcyB0byBiZSByZS1lbmFibGVkIGluIF9zdGFydEVudGVyRnVsbFNjcmVlbkFuaW1h
dGlvbldpdGhEdXJhdGlvbjoKICAgICBOU0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7CiAgICAgW1tz
ZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogCiAgICAgW3NlbGYgX21hbmFnZXJdLT5zYXZlU2Nyb2xsUG9zaXRpb24oKTsKICAgICBf
c2F2ZWRUb3BDb250ZW50SW5zZXQgPSBfcGFnZS0+dG9wQ29udGVudEluc2V0KCk7CkBAIC0zMjUs
MTEgKzMyNCwxMCBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9XaWR0aCA9IDQ4MCArIDIw
ICsgMjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogICAgIGlmIChjb21wbGV0ZWQp
IHsKICAgICAgICAgX2Z1bGxTY3JlZW5TdGF0ZSA9IEluRnVsbFNjcmVlbjsKIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCQlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAvLyBTY3JlZW4gdXBkYXRlcyB0byBiZSBy
ZS1lbmFibGVkIHRhIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgYmxvY2suCiAgICAgICAgIE5TRGlz
YWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwkJSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
ICAgIFtzZWxmIF9tYW5hZ2VyXS0+ZGlkRW50ZXJGdWxsU2NyZWVuKCk7CiAgICAgICAgIFtzZWxm
IF9tYW5hZ2VyXS0+c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihmYWxzZSk7CiAKQEAgLTM0NywxMCAr
MzQ1LDkgQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIw
OyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKICAgICAgICAgLy8gVHJhbnNpdGlvbiB0
byBmdWxsc2NyZWVuIGZhaWxlZC4gQ2xlYW4gdXAuCiAgICAgICAgIF9mdWxsU2NyZWVuU3RhdGUg
PSBOb3RJbkZ1bGxTY3JlZW47CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAg
ICAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgICAgIF9wYWdlLT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRh
dGVzKGZhbHNlKTsKIAogICAgICAgICBOU1Jlc3BvbmRlciAqZmlyc3RSZXNwb25kZXIgPSBbW3Nl
bGYgd2luZG93XSBmaXJzdFJlc3BvbmRlcl07CkBAIC0zNjksMTAgKzM2Niw5IEBAIHN0YXRpYyBj
b25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTogS2VlcCBp
biBzeW5jIHdpdGggbWVkCiAgICAgICAgIFtzZWxmIF9tYW5hZ2VyXS0+c2V0QW5pbWF0aW5nRnVs
bFNjcmVlbihmYWxzZSk7CiAgICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
ICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKIAogICAgIGlmIChfcmVxdWVzdGVkRXhpdEZ1bGxTY3JlZW4pIHsKICAgICAgICAgX3JlcXVl
c3RlZEV4aXRGdWxsU2NyZWVuID0gTk87CkBAIC00MDIsMTIgKzM5OCwxMSBAQCBzdGF0aWMgY29u
c3QgZmxvYXQgbWluVmlkZW9XaWR0aCA9IDQ4MCArIDIwICsgMjA7IC8vIE5vdGU6IEtlZXAgaW4g
c3luYyB3aXRoIG1lZAogCiAgICAgW193ZWJWaWV3UGxhY2Vob2xkZXIgc2V0RXhpdFdhcm5pbmdW
aXNpYmxlOk5PXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9S
RV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgLy8gU2Ny
ZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBpbiBfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1h
dGlvbldpdGhEdXJhdGlvbjogb3IgYmVnYW5FeGl0RnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6
ZmluYWxGcmFtZToKICAgICBOU0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7CiAgICAgW1tzZWxmIHdp
bmRvd10gc2V0QXV0b2Rpc3BsYXk6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
CUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
CiAgICAgLy8gU2VlIHRoZSByZWxhdGVkIGNvbW1lbnQgaW4gZW50ZXJGdWxsU2NyZWVuOgogICAg
IC8vIFdlIHdpbGwgcmVzdW1lIHRoZSBub3JtYWwgYmVoYXZpb3IgaW4gX3N0YXJ0RXhpdEZ1bGxT
Y3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246CkBAIC00MzcsMTAgKzQzMiw5IEBAIHN0YXRpYyBj
b25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTogS2VlcCBp
biBzeW5jIHdpdGggbWVkCiAgICAgICAgIC8vIEJlY2F1c2Ugd2UgYXJlIGJyZWFraW5nIHRoZSBu
b3JtYWwgYW5pbWF0aW9uIHBhdHRlcm4sIHJlLWVuYWJsZSBzY3JlZW4gdXBkYXRlcwogICAgICAg
ICAvLyBhcyBleGl0RnVsbFNjcmVlbiBoYXMgZGlzYWJsZWQgdGhlbSwgYnV0IF9zdGFydEV4aXRG
dWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOgogICAgICAgICAvLyB3aWxsIG5ldmVyIGJl
IGNhbGxlZC4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwkJSUdOT1JFX1dB
Uk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgTlNFbmFi
bGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJCUlHTk9S
RV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIH0K
IAogICAgIFtbc2VsZiB3aW5kb3ddIGV4aXRGdWxsU2NyZWVuTW9kZTpzZWxmXTsKQEAgLTQ2Mywy
MCArNDU3LDE4IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAg
KyAyMDsgLy8gTm90ZTogS2VlcCBpbiBzeW5jIHdpdGggbWVkCiAKICAgICBOU1Jlc3BvbmRlciAq
Zmlyc3RSZXNwb25kZXIgPSBbW3NlbGYgd2luZG93XSBmaXJzdFJlc3BvbmRlcl07CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIC8vIFNjcmVlbiB1cGRhdGVzIHRvIGJlIHJl
LWVuYWJsZWQgaW4gY29tcGxldGVGaW5pc2hFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbkFmdGVyUmVw
YWludC4KICAgICBOU0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgX3BhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXModHJ1ZSk7
CiAgICAgW1tzZWxmIHdpbmRvd10gb3JkZXJPdXQ6c2VsZl07CiAgICAgTlNWaWV3ICpjb250ZW50
VmlldyA9IFtbc2VsZiB3aW5kb3ddIGNvbnRlbnRWaWV3XTsKICAgICBjb250ZW50Vmlldy5oaWRk
ZW4gPSBZRVM7CiAgICAgW19iYWNrZ3JvdW5kVmlldy5nZXQoKS5sYXllciByZW1vdmVBbGxBbmlt
YXRpb25zXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FS
TklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtbX3dlYlZpZXdQ
bGFjZWhvbGRlciB3aW5kb3ddIHNldEF1dG9kaXNwbGF5Ok5PXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiKTsKIAogICAgIFtzZWxmIF9yZXBsYWNlVmlldzpfd2ViVmlld1BsYWNlaG9sZGVy
LmdldCgpIHdpdGg6X3dlYlZpZXddOwogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwpA
QCAtNTA5LDE2ICs1MDEsMTQgQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0
ODAgKyAyMCArIDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKIC0gKHZvaWQpY29t
cGxldGVGaW5pc2hFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbkFmdGVyUmVwYWludAogewogICAgIF9y
ZXBhaW50Q2FsbGJhY2sgPSBudWxscHRyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgW1tfd2ViVmlldyB3aW5kb3ddIHNldEF1dG9kaXNwbGF5OllFU107Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW1tfd2ViVmlldyB3aW5kb3ddIGRpc3BsYXlJZk5lZWRl
ZF07CiAgICAgX3BhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMoZmFsc2UpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgTlNFbmFibGVTY3JlZW5VcGRhdGVzKCk7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5E
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIC0gKHZvaWQpcGVyZm9ybUNsb3Nl
OihpZClzZW5kZXIKQEAgLTcyNywxNSArNzE3LDEzIEBAIHN0YXRpYyBDQUFuaW1hdGlvbiAqZmFk
ZUFuaW1hdGlvbihDRlRpbWVJbnRlcnZhbCBkdXJhdGlvbiwgQW5pbWF0aW9uRGlyZWN0aW9uIGRp
CiAgICAgW3dpbmRvdyBtYWtlRmlyc3RSZXNwb25kZXI6X3dlYlZpZXddOwogCiAgICAgX3BhZ2Ut
PnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMoZmFsc2UpOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbW3NlbGYgd2luZG93XSBkaXNwbGF5SWZO
ZWVkZWRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJO
SU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgTlNFbmFibGVTY3Jl
ZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIC0gKHZvaWQp
X3N0YXJ0RXhpdEZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246KE5TVGltZUludGVydmFs
KWR1cmF0aW9uCkBAIC03NTgsMTUgKzc0NiwxMyBAQCBzdGF0aWMgQ0FBbmltYXRpb24gKmZhZGVB
bmltYXRpb24oQ0ZUaW1lSW50ZXJ2YWwgZHVyYXRpb24sIEFuaW1hdGlvbkRpcmVjdGlvbiBkaQog
ICAgIFtfYmFja2dyb3VuZFZpZXcuZ2V0KCkubGF5ZXIgYWRkQW5pbWF0aW9uOmZhZGVBbmltYXRp
b24oZHVyYXRpb24sIEFuaW1hdGVPdXQpIGZvcktleTpAImZ1bGxzY3JlZW4iXTsKIAogICAgIF9w
YWdlLT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzKGZhbHNlKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1dG9kaXNwbGF5OllFU107
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5E
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW1tzZWxmIHdpbmRvd10gZGlzcGxh
eUlmTmVlZGVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVf
V0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5TRW5hYmxl
U2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9X
QVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQogCiAtICh2
b2lkKV93YXRjaGRvZ1RpbWVyRmlyZWQ6KE5TVGltZXIgKil0aW1lcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCmluZGV4IDdiMGIzOGI3NDU0NDYxYzdh
Mjc5YTc1MzczZTY1ODllZGUxNjM1MmEuLmFlMzAwMGVlNjkzZWYzNWMwMWFlMDIwOWI0OGVjNTdi
MDQ5YzRlNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50
aW5nVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1Zp
ZXcubW0KQEAgLTc2LDE2ICs3NiwxNCBAQCBzdGF0aWMgQk9PTCBpc0ZvcmNpbmdQcmV2aWV3VXBk
YXRlOwogCiAtICh2b2lkKV9zZXRBdXRvZGlzcGxheTooQk9PTCluZXdTdGF0ZQogewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaWYgKCFuZXdTdGF0ZSAmJiBbW193a1ZpZXcg
d2luZG93XSBpc0F1dG9kaXNwbGF5XSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAg
ICAgICAgW193a1ZpZXcgZGlzcGxheUlmTmVlZGVkXTsKKwlJR05PUkVfV0FSTklOR19DTEFOR19F
TkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIFtbX3drVmlldyB3aW5kb3ddIHNldEF1dG9kaXNwbGF5Om5ld1N0
YXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFO
R19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIC8vIEZvciBzb21lIHJl
YXNvbiwgcGFpbnRpbmcgZG9lc24ndCBoYXBwZW4gZm9yIGEgbG9uZyB0aW1lIHdpdGhvdXQgdGhp
cyBjYWxsLCA8cmRhcjovL3Byb2JsZW0vODk3NTIyOT4uCiAgICAgaWYgKG5ld1N0YXRlKQpAQCAt
NDUyLDE5ICs0NTAsMTcgQEAgc3RhdGljIENGU3RyaW5nUmVmIGxpbmtEZXN0aW5hdGlvbk5hbWUo
UERGRG9jdW1lbnQgKmRvY3VtZW50LCBQREZEZXN0aW5hdGlvbiAqZGUKICAgICB9CiAKICAgICBO
U0dyYXBoaWNzQ29udGV4dCAqbnNHcmFwaGljc0NvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQg
Y3VycmVudENvbnRleHRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlH
Tk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQ0dD
b250ZXh0UmVmIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0NvbnRleHRSZWY+KFtuc0dyYXBoaWNz
Q29udGV4dCBncmFwaGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAog
ICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY29udGV4dCk7CiAgICAgQ0dDb250ZXh0VHJhbnNsYXRl
Q1RNKGNvbnRleHQsIHBvaW50LngsIHBvaW50LnkpOwogICAgIENHQ29udGV4dFNjYWxlQ1RNKGNv
bnRleHQsIF90b3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIC1fdG90YWxTY2FsZUZhY3RvckZv
clByaW50aW5nKTsKICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dCwgMCwgLVtwZGZQ
YWdlIGJvdW5kc0ZvckJveDprUERGRGlzcGxheUJveE1lZGlhQm94XS5zaXplLmhlaWdodCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkco
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbcGRmUGFnZSBkcmF3V2l0aEJveDpr
UERGRGlzcGxheUJveE1lZGlhQm94XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAog
ICAgIENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IENHQ29udGV4dEdldENUTShjb250ZXh0
KTsKIApAQCAtNDc3LDEwICs0NzMsOSBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgbGlua0Rlc3RpbmF0
aW9uTmFtZShQREZEb2N1bWVudCAqZG9jdW1lbnQsIFBERkRlc3RpbmF0aW9uICpkZQogICAgICAg
ICBpZiAoIVthbm5vdGF0aW9uIGlzS2luZE9mQ2xhc3M6V2ViS2l0OjpwZGZBbm5vdGF0aW9uTGlu
a0NsYXNzKCldKQogICAgICAgICAgICAgY29udGludWU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiKTsKICAgICAgICAgUERGQW5ub3RhdGlvbkxpbmsgKmxpbmtBbm5vdGF0aW9uID0g
KFBERkFubm90YXRpb25MaW5rICopYW5ub3RhdGlvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgICAgIE5TVVJMICp1cmwgPSBbbGlua0Fubm90YXRpb24gVVJMXTsKICAgICAg
ICAgQ0dSZWN0IHRyYW5zZm9ybWVkUmVjdCA9IENHUmVjdEFwcGx5QWZmaW5lVHJhbnNmb3JtKE5T
UmVjdFRvQ0dSZWN0KFtsaW5rQW5ub3RhdGlvbiBib3VuZHNdKSwgdHJhbnNmb3JtKTsKIApAQCAt
NTQ0LDEwICs1MzksOSBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgbGlua0Rlc3RpbmF0aW9uTmFtZShQ
REZEb2N1bWVudCAqZG9jdW1lbnQsIFBERkRlc3RpbmF0aW9uICpkZQogICAgIH0KIAogICAgIFJl
ZlB0cjxXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcD4gYml0bWFwID0gcGFnZVByZXZpZXdJdGVyYXRv
ci0+dmFsdWU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dB
Uk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBDR0NvbnRleHRS
ZWYgY2dDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dDb250ZXh0UmVmPihbW05TR3JhcGhpY3NDb250
ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKIAogICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCBjb250ZXh0KGNnQ29udGV4
dCk7CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNv
bnRleHQpOwpAQCAtNTg4LDEwICs1ODIsOSBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgbGlua0Rlc3Rp
bmF0aW9uTmFtZShQREZEb2N1bWVudCAqZG9jdW1lbnQsIFBERkRlc3RpbmF0aW9uICpkZQogICAg
ICAgICAgICAgICAgIGlmICghW2Fubm90YXRpb24gaXNLaW5kT2ZDbGFzczpXZWJLaXQ6OnBkZkFu
bm90YXRpb25MaW5rQ2xhc3MoKV0pCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJCQkJSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAgICAgICBQREZBbm5v
dGF0aW9uTGluayAqbGlua0Fubm90YXRpb24gPSAoUERGQW5ub3RhdGlvbkxpbmsgKilhbm5vdGF0
aW9uOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCQkJCUlHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgICAgIGlm
IChsaW5rQW5ub3RhdGlvbi5VUkwpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0SW5wdXRXaW5kb3dD
b250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dElucHV0V2lu
ZG93Q29udHJvbGxlci5tbQppbmRleCBhZTM2NDFlZjc5NzQ2M2ExODBjMGZiMjY3NGIwMDJhYjEx
YTg3OTYyLi45OTdmMDM0NGJkMzJhZGJhMWJjM2FmMTg5YjQ1OTJjYzQwZDc0NzgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0SW5wdXRXaW5kb3dDb250cm9s
bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRJbnB1dFdpbmRv
d0NvbnRyb2xsZXIubW0KQEAgLTEwNiwxMCArMTA2LDkgQEAKIAogLSAoQk9PTClfaW50ZXJwcmV0
S2V5RXZlbnQ6KE5TRXZlbnQgKilldmVudCB1c2luZ0xlZ2FjeUNvY29hVGV4dElucHV0OihCT09M
KXVzaW5nTGVnYWN5Q29jb2FUZXh0SW5wdXQgc3RyaW5nOihOU1N0cmluZyAqKilzdHJpbmcKIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFO
RygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIEJPT0wgaGFkTWFya2VkVGV4dCA9
IFtfaW5wdXRUZXh0VmlldyBoYXNNYXJrZWRUZXh0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKICAKICAgICAqc3RyaW5nID0gbmlsOwogCkBAIC0xMjQsMTAgKzEyMyw5IEBACiAgICAg
aWYgKCFbW19pbnB1dFRleHRWaWV3IGlucHV0Q29udGV4dF0gaGFuZGxlRXZlbnQ6ZXZlbnRdKQog
ICAgICAgICByZXR1cm4gTk87CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
ICAgICBpZiAoW19pbnB1dFRleHRWaWV3IGhhc01hcmtlZFRleHRdKSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAvLyBEb24ndCBzaG93IHRoZSBpbnB1dCBtZXRob2Qg
d2luZG93IGZvciBkZWFkIGtleXMKICAgICAgICAgaWYgKFtbZXZlbnQgY2hhcmFjdGVyc10gbGVu
Z3RoXSA+IDApCiAgICAgICAgICAgICBbc2VsZiBvcmRlckZyb250Om5pbF07CkBAIC0xNjEsMTAg
KzE1OSw5IEBACiAKIC0gKEJPT0wpX2hhc01hcmtlZFRleHQKIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIHJldHVybiBbX2lucHV0VGV4dFZpZXcgaGFzTWFya2VkVGV4dF07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5E
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQppbmRleCA4YjVk
YjE1OTVhYjM1N2ZlYzk0ZGNlNzdjNzY0ZWFkY2JiNjM1NjBkLi5iOTAzZTg2NzVkNzJjMmQwMTBj
ZGE3OTlmYWQzZDI2N2E5MDEwYWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCkBAIC0xODgsMTAgKzE4OCw5IEBAIHZvaWQg
V2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwg
VGV4dERpcmVjdGlvbiB0ZXh0CiAgICAgW05TQXBwIHBvc3RFdmVudDpmYWtlRXZlbnQgYXRTdGFy
dDpZRVNdOwogICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2
ZW50VHlwZU1vdXNlTW92ZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9j
YXRpb246W1ttX3dlYlZpZXcgd2luZG93XQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIikKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05T
RXZlbnQgbW91c2VMb2NhdGlvbl1dCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05P
UkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRp
bmdOU0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGltZXN0YW1wOltpbml0aWF0aW5nTlNFdmVudCB0aW1lc3RhbXBdCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgd2luZG93TnVtYmVyOltpbml0aWF0aW5nTlNFdmVudCB3aW5kb3dO
dW1iZXJdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KaW5kZXggOGVjNmI4MjU5
MTUwOTJhYjg0NjkzNjRmZDJiNTVhNmE1MzA0ZmI1ZS4uY2M2M2VkZTA3MDhjNDE4ZDlkOWI2ZGZk
ODA4MjRlZGExZDZmMDg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQpA
QCAtMzcyLDEwICszNzIsOSBAQCBzdGF0aWMgaW5saW5lIEV2ZW50UmVjb3JkIGluaXRpYWxpemVF
dmVudFJlY29yZChFdmVudEtpbmQgZXZlbnRLaW5kKQogCiAgICAgZXZlbnRSZWNvcmQud2hhdCA9
IGV2ZW50S2luZDsKICAgICBldmVudFJlY29yZC5tZXNzYWdlID0gMDsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgIGV2ZW50UmVjb3JkLndoZW4gPSBUaWNrQ291bnQoKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBldmVudFJlY29yZC53aGVyZSA9IFBvaW50
KCk7CiAgICAgZXZlbnRSZWNvcmQubW9kaWZpZXJzID0gMDsKIApAQCAtMTA0MiwxMCArMTA0MSw5
IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46OnNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmlu
ZyYgdGV4dElucHV0KQogCiAgICAgICAgIC8vIFNldCB0aGUgc2NyaXB0IGNvZGUgYXMgdGhlIGtl
eWJvYXJkIHNjcmlwdC4gTm9ybWFsbHkgQ2FyYm9uIGRvZXMgdGhpcyB3aGVuZXZlciB0aGUgaW5w
dXQgc291cmNlIGNoYW5nZXMuCiAgICAgICAgIC8vIEhvd2V2ZXIsIHRoaXMgaXMgb25seSBkb25l
IGZvciB0aGUgcHJvY2VzcyB0aGF0IGhhcyB0aGUga2V5Ym9hcmQgZm9jdXMuIFdlIGNoZWF0IGFu
ZCBkbyBpdCBoZXJlIGluc3RlYWQuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgICAgIFNldFNjcmlwdE1hbmFnZXJWYXJpYWJsZShzbUtleVNjcmlwdCwgc2NyaXB0Q29kZSk7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VO
RCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAKICAgICAgICAgRXZlbnRS
ZWNvcmQgZXZlbnQgPSBpbml0aWFsaXplRXZlbnRSZWNvcmQoa2V5RG93bik7CiAgICAgICAgIGV2
ZW50Lm1vZGlmaWVycyA9IDA7CkBAIC0xMTIwLDExICsxMTE4LDEwIEBAIHN0YXRpYyB2b2lkIG1h
a2VDR0xQcmVzZW50TGF5ZXJPcGFxdWUoQ0FMYXllciAqcGx1Z2luUm9vdExheWVyKQogICAgICAg
ICByZXR1cm47CiAKICAgICBDbGFzcyBjZ2xQcmVzZW50TGF5ZXJDbGFzcyA9IE5TQ2xhc3NGcm9t
U3RyaW5nKEAiQ0dMUHJlc2VudExheWVyIik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICBpZiAoIVtjZ2xQcmVzZW50TGF5ZXJDbGFzcyBpc1N1YmNsYXNzT2ZDbGFzczpbQ0FP
cGVuR0xMYXllciBjbGFzc11dKQogICAgICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAKICAgICBDQUxheWVyICpsYXllciA9IFtzdWJsYXllcnMgb2JqZWN0QXRJbmRl
eDowXTsKICAgICBpZiAoIVtsYXllciBpc0tpbmRPZkNsYXNzOmNnbFByZXNlbnRMYXllckNsYXNz
XSkKQEAgLTExODAsMTEgKzExNzcsMTAgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbjo6bnVsbEV2ZW50
VGltZXJGaXJlZCgpCiAgICAgZXZlbnQud2hlcmUudiA9IG1vdXNlUG9zaXRpb24ueTsKIAogICAg
IGV2ZW50Lm1vZGlmaWVycyA9IEdldEN1cnJlbnRLZXlNb2RpZmllcnMoKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGlmICghQnV0dG9uKCkpCiAgICAgICAgIGV2ZW50Lm1v
ZGlmaWVycyB8PSBidG5TdGF0ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05P
UkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAg
IE5QUF9IYW5kbGVFdmVudCgmZXZlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggNWMyZTA2NjkyYmZhNzdhMjU4ZTI0
NGVjMzhjYTZkZWNhMWVhODBiNi4uNjhiMmFjOTQzNWJjMjExNDQ2MThiYzNiZmI1MTI1NDMyMGY1
Y2UzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tCkBAIC0zMjAsMTAgKzMyMCw5IEBAIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdFNj
cm9sbE1hZ25pdHVkZVRocmVzaG9sZEZvclBhZ2VGbGlwID0gMjA7CiAgICAgaWYgKFdlYktpdDo6
UERGUGx1Z2luQW5ub3RhdGlvbiogYWN0aXZlQW5ub3RhdGlvbiA9IF9wZGZQbHVnaW4tPmFjdGl2
ZUFubm90YXRpb24oKSkgewogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogZXhpc3RpbmdDYWNo
ZSA9IF9wZGZQbHVnaW4tPmF4T2JqZWN0Q2FjaGUoKSkgewogICAgICAgICAgICAgaWYgKEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iamVjdCA9IGV4aXN0aW5nQ2FjaGUtPmdldE9yQ3JlYXRlKGFjdGl2
ZUFubm90YXRpb24tPmVsZW1lbnQoKSkpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisJCQkJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gW29iamVjdC0+d3JhcHBlcigpIGFjY2Vzc2liaWxp
dHlBdHRyaWJ1dGVWYWx1ZTpAIl9BWEFzc29jaWF0ZWRQbHVnaW5QYXJlbnQiXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKwkJCQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gbmls
OwpAQCAtNDI4LDEwICs0MjcsOSBAQCBzdGF0aWMgY29uc3QgaW50IGRlZmF1bHRTY3JvbGxNYWdu
aXR1ZGVUaHJlc2hvbGRGb3JQYWdlRmxpcCA9IDIwOwogCiAtICh2b2lkKXdyaXRlSXRlbXNUb1Bh
c3RlYm9hcmQ6KE5TQXJyYXkgKilpdGVtcyB3aXRoVHlwZXM6KE5TQXJyYXkgKil0eXBlcwogewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5H
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgX3BkZlBsdWdpbi0+d3JpdGVJdGVt
c1RvUGFzdGVib2FyZChOU0dlbmVyYWxQYm9hcmQsIGl0ZW1zLCB0eXBlcyk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIC0gKHZvaWQpc2hvd0RlZmluaXRpb25Gb3JBdHRyaWJ1
dGVkU3RyaW5nOihOU0F0dHJpYnV0ZWRTdHJpbmcgKilzdHJpbmcgYXRQb2ludDooQ0dQb2ludClw
b2ludApAQCAtMTY1MywxMSArMTY1MSwxMCBAQCBib29sIFBERlBsdWdpbjo6aGFuZGxlRWRpdGlu
Z0NvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgY29uc3QgU3RyaW5nJiBhcgogICAg
ICAgICBbbV9wZGZMYXllckNvbnRyb2xsZXIgc2VsZWN0QWxsXTsKICAgICBlbHNlIGlmIChjb21t
YW5kTmFtZSA9PSAidGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uIikgewogICAgICAgICBOU1N0
cmluZyAqc3RyaW5nID0gW21fcGRmTGF5ZXJDb250cm9sbGVyIGN1cnJlbnRTZWxlY3Rpb25dLnN0
cmluZzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwkJSUdOT1JFX1dBUk5J
TkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgaWYgKHN0cmlu
Zy5sZW5ndGgpCiAgICAgICAgICAgICB3cml0ZUl0ZW1zVG9QYXN0ZWJvYXJkKE5TRmluZFBib2Fy
ZCwgQFsgW3N0cmluZyBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10gXSwg
QFsgTlNQYXN0ZWJvYXJkVHlwZVN0cmluZyBdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0xNzM3LDEzICsxNzM0LDEyIEBAIHZv
aWQgUERGUGx1Z2luOjpzZXRBY3RpdmVBbm5vdGF0aW9uKFBERkFubm90YXRpb24gKmFubm90YXRp
b24pCiAgICAgICAgIG1fYWN0aXZlQW5ub3RhdGlvbi0+Y29tbWl0KCk7CiAKICAgICBpZiAoYW5u
b3RhdGlvbikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCQlJR05PUkVf
V0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBpZiAo
W2Fubm90YXRpb24gaXNLaW5kT2ZDbGFzczpwZGZBbm5vdGF0aW9uVGV4dFdpZGdldENsYXNzKCld
ICYmIHN0YXRpY19jYXN0PFBERkFubm90YXRpb25UZXh0V2lkZ2V0ICo+KGFubm90YXRpb24pLmlz
UmVhZE9ubHkpIHsKICAgICAgICAgICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IG51bGxwdHI7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAKICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gUERGUGx1Z2luQW5ub3RhdGlvbjo6
Y3JlYXRlKGFubm90YXRpb24sIG1fcGRmTGF5ZXJDb250cm9sbGVyLmdldCgpLCB0aGlzKTsKICAg
ICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uLT5hdHRhY2gobV9hbm5vdGF0aW9uQ29udGFpbmVyLmdl
dCgpKTsKQEAgLTIwODEsMTAgKzIwNzcsOSBAQCBzdGQ6OnR1cGxlPFN0cmluZywgUERGU2VsZWN0
aW9uICosIE5TRGljdGlvbmFyeSAqPiBQREZQbHVnaW46Omxvb2t1cFRleHRBdExvY2F0aQogICAg
ICAgICBpZiAoIU5TUG9pbnRJblJlY3QocG9pbnRJblBhZ2VTcGFjZSwgYm91bmRzKSkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJ
CUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
ICAgIFBERkFubm90YXRpb25MaW5rICpsaW5rQW5ub3RhdGlvbiA9IChQREZBbm5vdGF0aW9uTGlu
ayAqKWFubm90YXRpb247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJCUlHTk9SRV9X
QVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBO
U1VSTCAqdXJsID0gbGlua0Fubm90YXRpb24uVVJMOwogICAgICAgICBpZiAoIXVybCkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLmgKaW5kZXggMGY3
Njc1YzVkMjMxZDU3ZDkyYmQ2Mjc5MzZlOWUwMjRkMmUxYzY4ZC4uZGU3NWNhODY3OGMzYzUzNmNm
YTAxYmQxNDY0NjQ2OGMzMTg4ZTdmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5o
CkBAIC01MywxMCArNTMsOSBAQCBwcml2YXRlOgogCiAgICAgUmVmPFdlYkNvcmU6OkVsZW1lbnQ+
IGNyZWF0ZUFubm90YXRpb25FbGVtZW50KCkgb3ZlcnJpZGU7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogICAgIFBERkFubm90YXRpb25DaG9pY2VXaWRnZXQg
KmNob2ljZUFubm90YXRpb24oKSB7IHJldHVybiBzdGF0aWNfY2FzdDxQREZBbm5vdGF0aW9uQ2hv
aWNlV2lkZ2V0ICo+KGFubm90YXRpb24oKSk7IH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIikKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90
YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
Q2hvaWNlQW5ub3RhdGlvbi5tbQppbmRleCA1ODI1ZmQzZWNhYjQ2MTU0ZjhmOWQwNTAxM2Y2NTRh
YzhjNjE1OGNmLi4zMjhiY2Y0N2ViNmJlZTczODhjOGMzZDhkYWU0MTRmZGRmZTcwZGNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hv
aWNlQW5ub3RhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbQpAQCAtNjcsMTAgKzY3LDkgQEAgdm9pZCBQ
REZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uOjpjb21taXQoKQogUmVmPEVsZW1lbnQ+IFBERlBsdWdp
bkNob2ljZUFubm90YXRpb246OmNyZWF0ZUFubm90YXRpb25FbGVtZW50KCkKIHsKICAgICBEb2N1
bWVudCYgZG9jdW1lbnQgPSBwYXJlbnQoKS0+ZG9jdW1lbnQoKTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIFBERkFubm90YXRpb25DaG9pY2VXaWRnZXQgKmNob2ljZUFubm90
YXRpb24gPSB0aGlzLT5jaG9pY2VBbm5vdGF0aW9uKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAKICAgICBhdXRvIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHNlbGVj
dFRhZywgZmFsc2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5oCmluZGV4IDkyZDQwMjNj
ZDcwZTk0ZDk4ZDRiYjU4MWUzMGE3ZDI4NWIxOWQ5ZGMuLjc5YWQzMTI1OWZmMDQ1NzU0ZjFmYmJh
OTg3OTU0ZDk3Y2Q2ZmFiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5oCkBAIC02MCwx
MCArNjAsOSBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIGJvb2wgaGFuZGxlRXZlbnQoV2Vi
Q29yZTo6RXZlbnQmKSBvdmVycmlkZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpCiAgICAgUERGQW5ub3RhdGlvblRleHRXaWRnZXQgKnRleHRBbm5vdGF0aW9u
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UERGQW5ub3RhdGlvblRleHRXaWRnZXQgKj4o
YW5ub3RhdGlvbigpKTsgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24u
bW0KaW5kZXggMmM2YTc2YzRiMGUxMTU1MTAxOTVmZmQ2OTc0ODY0NjZhNzVmMTI2OC4uZDczMGJm
MGNmMzFjNzM4NzYzNTZmOGM3ZGEzZWNiZmFjZmNmMzBlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5u
b3RhdGlvbi5tbQpAQCAtODAsMTAgKzgwLDkgQEAgUERGUGx1Z2luVGV4dEFubm90YXRpb246On5Q
REZQbHVnaW5UZXh0QW5ub3RhdGlvbigpCiBSZWY8RWxlbWVudD4gUERGUGx1Z2luVGV4dEFubm90
YXRpb246OmNyZWF0ZUFubm90YXRpb25FbGVtZW50KCkKIHsKICAgICBEb2N1bWVudCYgZG9jdW1l
bnQgPSBwYXJlbnQoKS0+ZG9jdW1lbnQoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogICAgIFBERkFubm90YXRpb25UZXh0V2lkZ2V0ICp0ZXh0QW5ub3RhdGlvbiA9IHRoaXMtPnRl
eHRBbm5vdGF0aW9uKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgYm9vbCBp
c011bHRpbGluZSA9IHRleHRBbm5vdGF0aW9uLmlzTXVsdGlsaW5lOwogCiAgICAgYXV0byBlbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpc011bHRpbGluZSA/IHRleHRhcmVhVGFnIDog
aW5wdXRUYWcsIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaAppbmRl
eCA0NTIwZTlkNjliYzgwMmY2ZWJkYTY1YjI5N2U4YThkNDU4YzE5NzI4Li5jYjY5NGM1YjU3MjBj
M2YyNTgxNDNjYWMzZmM5YjQxM2UzYTg2OTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4
dENsaWVudC5oCkBAIC01MSwxNCArNTEsMTEgQEAgcHVibGljOgogI2VuZGlmCiBwcml2YXRlOgog
I2lmIFBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jaWYgZGVm
aW5lZChfX2hhc193YXJuaW5nKSAmJiBfX2hhc193YXJuaW5nKCItV3VudXNlZC1wcml2YXRlLWZp
ZWxkIikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wcml2YXRl
LWZpZWxkIgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XdW51c2VkLXByaXZh
dGUtZmllbGQiKTsKICNlbmRpZgogICAgIFdlYlBhZ2UgKm1fcGFnZTsKICNpZiBQTEFURk9STShJ
T1MpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfRU5EKCItV3VudXNlZC1wcml2YXRlLWZpZWxkIik7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0Ns
aWVudE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViRHJhZ0NsaWVudE1hYy5tbQppbmRleCBhODc3ZTdmY2ZhMGEzOTg3OTc3NzBhMTQzNDQ5MDVm
Zjk3MzAzMmYwLi42NTkxOWIzZDRlZTdhOTc2MzVjMzllNzJmMzkxMzY0YjUwZmY3MGQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRy
YWdDbGllbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCkBAIC03MiwxMCArNzIsOSBAQCBzdGF0aWMgUmVm
UHRyPFNoYXJlYWJsZUJpdG1hcD4gY29udmVydEltYWdlVG9CaXRtYXAoTlNJbWFnZSAqaW1hZ2Us
IGNvbnN0IEludFNpegogCiAgICAgUmV0YWluUHRyPE5TR3JhcGhpY3NDb250ZXh0PiBzYXZlZENv
bnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdOwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENv
bnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6
Z3JhcGhpY3NDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSBmbGlwcGVkOllFU11dOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtpbWFnZSBkcmF3SW5SZWN0Ok5TTWFrZVJlY3Qo
MCwgMCwgYml0bWFwLT5zaXplKCkud2lkdGgoKSwgYml0bWFwLT5zaXplKCkuaGVpZ2h0KCkpIGZy
b21SZWN0Ok5TWmVyb1JlY3Qgb3BlcmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VP
dmVyIGZyYWN0aW9uOjEgcmVzcGVjdEZsaXBwZWQ6WUVTIGhpbnRzOm5pbF07CiAKICAgICBbTlNH
cmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6c2F2ZWRDb250ZXh0LmdldCgpXTsKQEAg
LTExMywxMCArMTEyLDkgQEAgc3RhdGljIFdlYkNvcmU6OkNhY2hlZEltYWdlKiBjYWNoZWRJbWFn
ZShFbGVtZW50JiBlbGVtZW50KQogCiB2b2lkIFdlYkRyYWdDbGllbnQ6OmRlY2xhcmVBbmRXcml0
ZURyYWdJbWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBFbGVtZW50JiBlbGVtZW50
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgRnJhbWUqKQogewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQVNTRVJUKHBhc3RlYm9hcmROYW1lID09IFN0
cmluZyhOU0RyYWdQYm9hcmQpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05P
UkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAg
IFdlYkNvcmU6OkNhY2hlZEltYWdlKiBpbWFnZSA9IGNhY2hlZEltYWdlKGVsZW1lbnQpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3Np
YmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCmluZGV4IGZlOTRlODVl
NDcwZjRhODdlNTlmZTlkN2VjZjg0NDJmZWU1N2NmMzMuLmQzZDlhMTU1NmQzMDU2ZGE0MWJlNTQz
ODkzZjM4ZGNhYzhlMGM4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2Jq
ZWN0TWFjLm1tCkBAIC0xOTIsOCArMTkyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAg
ICByZXR1cm4gWUVTOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJ
R05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KQogLSAoaWQpYWNjZXNzaWJpbGl0eUhpdFRlc3Q6KE5TUG9pbnQpcG9pbnQKIHsKICAgICBpZiAo
IW1fcGFnZSkKQEAgLTIxNSw3ICsyMTQsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiAg
ICAgcmV0dXJuIFtbc2VsZiBhY2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXJdIGFjY2Vzc2li
aWxpdHlIaXRUZXN0OmNvbnZlcnRlZFBvaW50XTsKIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKQogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggZGE3Yzk4ZjY4YzQ4MTg5MDczZGJlYTQ3
NDg3MWZmMmNhYjZhNTgxYS4uZGQ4ZDI1NzZlZTNmYmIwOTFiODY2NTg3ZTJhOGRkMjM0ZDdmNDRi
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBh
Z2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBh
Z2VNYWMubW0KQEAgLTgxOCwxMSArODE4LDEwIEBAIHN0YXRpYyB2b2lkIGRyYXdQREZQYWdlKFBE
RkRvY3VtZW50ICpwZGZEb2N1bWVudCwgQ0ZJbmRleCBwYWdlSW5kZXgsIENHQ29udGV4dFJlCiAg
ICAgfQogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNhdmVHcmFwaGljc1N0YXRlXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzZXRDdXJy
ZW50Q29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0V2l0aEdyYXBoaWNz
UG9ydDpjb250ZXh0IGZsaXBwZWQ6Tk9dXTsKICAgICBbcGRmUGFnZSBkcmF3V2l0aEJveDprUERG
RGlzcGxheUJveENyb3BCb3hdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9S
RV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtO
U0dyYXBoaWNzQ29udGV4dCByZXN0b3JlR3JhcGhpY3NTdGF0ZV07CiAKICAgICBDR0FmZmluZVRy
YW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0NvbnRleHRHZXRDVE0oY29udGV4dCk7CkBAIC04MzEsMTAg
KzgzMCw5IEBAIHN0YXRpYyB2b2lkIGRyYXdQREZQYWdlKFBERkRvY3VtZW50ICpwZGZEb2N1bWVu
dCwgQ0ZJbmRleCBwYWdlSW5kZXgsIENHQ29udGV4dFJlCiAgICAgICAgIGlmICghW2Fubm90YXRp
b24gaXNLaW5kT2ZDbGFzczpwZGZBbm5vdGF0aW9uTGlua0NsYXNzKCldKQogICAgICAgICAgICAg
Y29udGludWU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwkJSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgUERG
QW5ub3RhdGlvbkxpbmsgKmxpbmtBbm5vdGF0aW9uID0gKFBERkFubm90YXRpb25MaW5rICopYW5u
b3RhdGlvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwkJSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIE5TVVJMICp1
cmwgPSBbbGlua0Fubm90YXRpb24gVVJMXTsKICAgICAgICAgaWYgKCF1cmwpCiAgICAgICAgICAg
ICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9D
YXJib25VdGlscy5tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvblV0aWxz
Lm0KaW5kZXggYjc5NWU5YjQyYTZlNzE0ODVkZDE3N2NjZDlkZGM3M2E0OTQ3ZTBkZi4uZmIyNDVh
M2MyNTI4OTFmNDQ1MDk5NThhYTBiYWY4Yzk0Mjc0MWViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvblV0aWxzLm0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2FyYm9uL0NhcmJvblV0aWxzLm0KQEAgLTg3LDEwICs4Nyw5IEBAIHN0YXRpYyB1
bnNpZ25lZCBnZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KHZvaWQpCiBQb29sQ2xlYW5lciggRXZl
bnRMb29wVGltZXJSZWYgaW5UaW1lciwgRXZlbnRMb29wSWRsZVRpbWVyTWVzc2FnZSBpblN0YXRl
LCB2b2lkICppblVzZXJEYXRhICkKIHsKICAgICBpZiAoIGluU3RhdGUgPT0ga0V2ZW50TG9vcElk
bGVUaW1lclN0YXJ0ZWQgKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XY2FzdC1xdWFsIgorCQlJR05PUkVfV0FSTklO
R19DTEFORygiLVdjYXN0LXF1YWwiKTsKICAgICAgICAgQ0ZTdHJpbmdSZWYgbW9kZSA9IENGUnVu
TG9vcENvcHlDdXJyZW50TW9kZSggKENGUnVuTG9vcFJlZilHZXRDRlJ1bkxvb3BGcm9tRXZlbnRM
b29wKCBHZXRDdXJyZW50RXZlbnRMb29wKCkgKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdjYXN0LXF1YWwiKTsKICAgICAgICAg
RXZlbnRMb29wUmVmIHRoaXNMb29wID0gR2V0Q3VycmVudEV2ZW50TG9vcCAoKTsKICAgICAgICAg
aWYgKCBDRkVxdWFsKCBtb2RlLCBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUgKSAmJiB0aGlzTG9vcCA9
PSBwb29sTG9vcCkgewogICAgICAgICAgICAgdW5zaWduZWQgY3VycmVudE51bVBvb2xzID0gZ2V0
TlNBdXRvcmVsZWFzZVBvb2xDb3VudCgpLTE7ICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCmluZGV4IGQx
NTIyZjNmMDIzZWYwZjZkZTMzNjJiZGEzYjMwNDk0Nzg4OGMwYmYuLmYxOTAwZjVkM2I2ZjRlNzUz
OThjYzM4Njk3OWNjYjU4MTM1NGNhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCkBAIC0xNzcsMTAgKzE3Nyw5IEBA
IHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNh
bGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAgICAgLy8gQnV0IG5vdyB0aGUgbm9uLXJldGFpbmVk
IHdpbmRvdyBjbGFzcyBpcyBhIENhcmJvbiBzZWNyZXQgdGhhdCdzIG5vdCBldmVuIGluCiAgICAg
Ly8gV2luZG93c1ByaXYuaDsgbWF5YmUgd2UnbGwgaGF2ZSB0byByZXZpc2l0IHRoaXMgaWYgc29t
ZW9uZSBuZWVkcyB0byB1c2UgV2ViS2l0CiAgICAgLy8gaW4gYSBub24tcmV0YWluZWQgd2luZG93
LgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NM
QU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgYmFja2luZ1N0b3JlVHlwZSA9
IE5TQmFja2luZ1N0b3JlUmV0YWluZWQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJ
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAK
ICAgICAvLyBGaWd1cmUgb3V0IHRoZSB3aW5kb3cncyBzdHlsZSBtYXNrLgogICAgIHN0eWxlTWFz
ayA9IF9OU0NhcmJvbldpbmRvd01hc2s7CkBAIC0yMDUsMTAgKzIwNCw5IEBAIHN0YXRpYyBPU1N0
YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVu
dEhhbmRsZXJDYWxsCiAgICAgLy8gRG8gc29tZSBzdGFuZGFyZCBDb2NvYSBpbml0aWFsaXphdGlv
bi4gIFRoZSBkZWZlciBhcmd1bWVudCdzIHZhbHVlIGlzIFlFUyBiZWNhdXNlIHdlIGRvbid0IHdh
bnQgLVtOU1dpbmRvdyBfY29tbW9uQXdha2VdIHRvIGdldCBjYWxsZWQuICBJdCBkb2Vzbid0IGFw
cGVhciB0aGF0IGFueSByZWxldmFudCBOU1dpbmRvdyBjb2RlIGNoZWNrcyBfd0ZsYWdzLmRlZmVy
cmVkLCBzbyB3ZSBzaG91bGQgYmUgYWJsZSB0byBnZXQgYXdheSB3aXRoIHRoZSBsaWUuCiAgICAg
c2VsZiA9IChDYXJib25XaW5kb3dBZGFwdGVyKilbc3VwZXIgX2luaXRDb250ZW50Om51bGxwdHIg
c3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5nOmJhY2tpbmdTdG9yZVR5cGUgZGVmZXI6WUVTIGNv
bnRlbnRWaWV3OmNhcmJvbldpbmRvd0NvbnRlbnRWaWV3XTsKICAgICBpZiAoIXNlbGYpIHJldHVy
biBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5J
TkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBhc3NlcnQoX2NvbnRl
bnRWaWV3KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIC8vIFJlY29yZCBh
Y2N1cmF0ZWx5IHdoZXRoZXIgb3Igbm90IHRoaXMgd2luZG93IGhhcyBhIHNoYWRvdywgaW4gY2Fz
ZSBzb21lb25lIGFza3MuCiAgLy8gICBfYXV4aWxpYXJ5U3RvcmFnZS0+X2F1eFdGbGFncy5oYXNT
aGFkb3cgPSAod2luZG93QXR0cmlidXRlcyAmIGtXaW5kb3dOb1NoYWRvd0F0dHJpYnV0ZSkgPyBO
TyA6IFlFUzsKQEAgLTI4MSwxMCArMjc5LDkgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2lu
ZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKICAg
ICAvLyBmbHVzaGVzIGl0LgogCiAgICAgaWYgKFtzZWxmIHdpbmRvd051bWJlcl0gIT0gLTEpIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwkJSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgQ0dDb250ZXh0UmVmIGNn
Q29udGV4dCA9IChDR0NvbnRleHRSZWYpW1tzZWxmIF90aHJlYWRDb250ZXh0XSBncmFwaGljc1Bv
cnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCQlJR05PUkVfV0FSTklOR19DTEFO
R19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgQ0dDb250ZXh0U3lu
Y2hyb25pemUoY2dDb250ZXh0KTsKICAgICB9CiB9CkBAIC0zNzQsMTEgKzM3MSwxMCBAQCBzdGF0
aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVm
IGluRXZlbnRIYW5kbGVyQ2FsbAogICAgIC8vIEluaXRpYWxpemUgZm9yIHNhZmUgcmV0dXJuaW5n
LgogICAgIEJPT0wgcmVjb25jaWxpYXRpb25XYXNOZWNlc3NhcnkgPSBOTzsKIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgLy8gUHJlY29uZGl0aW9uIGNoZWNrLgogICAgIGFz
c2VydChfY29udGVudFZpZXcpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9S
RV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAg
Ly8gR2V0IHRoZSBDYXJib24gd2luZG93J3MgYm91bmRzLCB3aGljaCBhcmUgZXhwcmVzc2VkIGlu
IGdsb2JhbCBzY3JlZW4gY29vcmRpbmF0ZXMsIHdpdGggKDAsMCkgYXQgdGhlIHRvcC1sZWZ0IG9m
IHRoZSBtYWluIHNjcmVlbi4KICAgICBvc1N0YXR1cyA9IEdldFdpbmRvd0JvdW5kcyhfd2luZG93
UmVmLCBrV2luZG93U3RydWN0dXJlUmduLCAmd2luZG93U3RydWN0dXJlQm91bmRzUmVjdCk7CkBA
IC0zOTMsMjggKzM4OSwyNiBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVF
dmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAgIG5ld1dpbmRv
d0ZyYW1lUmVjdC5vcmlnaW4ueSA9IE5TTWF4WShbKE5TU2NyZWVuICopW1tOU1NjcmVlbiBzY3Jl
ZW5zXSBvYmplY3RBdEluZGV4OjBdIGZyYW1lXSkgLSB3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0
LmJvdHRvbTsKICAgICBuZXdXaW5kb3dGcmFtZVJlY3Quc2l6ZS53aWR0aCA9IHdpbmRvd1N0cnVj
dHVyZUJvdW5kc1JlY3QucmlnaHQgLSB3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0LmxlZnQ7CiAg
ICAgbmV3V2luZG93RnJhbWVSZWN0LnNpemUuaGVpZ2h0ID0gd2luZG93U3RydWN0dXJlQm91bmRz
UmVjdC5ib3R0b20gLSB3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0LnRvcDsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGlmICghTlNFcXVhbFJlY3RzKG5ld1dpbmRvd0ZyYW1l
UmVjdCwgX2ZyYW1lKSkgewogICAgICAgICBbc2VsZiBfc2V0RnJhbWU6bmV3V2luZG93RnJhbWVS
ZWN0XTsKICAgICAgICAgW19ib3JkZXJWaWV3IHNldEZyYW1lU2l6ZTpuZXdXaW5kb3dGcmFtZVJl
Y3Quc2l6ZV07CiAgICAgICAgIHJlY29uY2lsaWF0aW9uV2FzTmVjZXNzYXJ5ID0gWUVTOwogICAg
IH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19F
TkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIC8vIFNldCB0aGUgY29udGVu
dCB2aWV3J3MgZnJhbWUgcmVjdCBmcm9tIHRoZSBDYXJib24gd2luZG93J3MgY29udGVudCByZWdp
b24gYm91bmRzLgogICAgIG5ld0NvbnRlbnRGcmFtZVJlY3Qub3JpZ2luLnggPSB3aW5kb3dDb250
ZW50Qm91bmRzUmVjdC5sZWZ0IC0gd2luZG93U3RydWN0dXJlQm91bmRzUmVjdC5sZWZ0OwogICAg
IG5ld0NvbnRlbnRGcmFtZVJlY3Qub3JpZ2luLnkgPSB3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0
LmJvdHRvbSAtIHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LmJvdHRvbTsKICAgICBuZXdDb250ZW50
RnJhbWVSZWN0LnNpemUud2lkdGggPSB3aW5kb3dDb250ZW50Qm91bmRzUmVjdC5yaWdodCAtIHdp
bmRvd0NvbnRlbnRCb3VuZHNSZWN0LmxlZnQ7CiAgICAgbmV3Q29udGVudEZyYW1lUmVjdC5zaXpl
LmhlaWdodCA9IHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LmJvdHRvbSAtIHdpbmRvd0NvbnRlbnRC
b3VuZHNSZWN0LnRvcDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05P
UkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIG9sZENv
bnRlbnRGcmFtZVJlY3QgPSBbKE5TVmlldyAqKV9jb250ZW50VmlldyBmcmFtZV07CiAgICAgaWYg
KCFOU0VxdWFsUmVjdHMobmV3Q29udGVudEZyYW1lUmVjdCwgb2xkQ29udGVudEZyYW1lUmVjdCkp
IHsKICAgICAgICAgWyhOU1ZpZXcgKilfY29udGVudFZpZXcgc2V0RnJhbWU6bmV3Q29udGVudEZy
YW1lUmVjdF07CiAgICAgICAgIHJlY29uY2lsaWF0aW9uV2FzTmVjZXNzYXJ5ID0gWUVTOwogICAg
IH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19F
TkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIC8vIERvbmUuCiAgICAgcmV0
dXJuIHJlY29uY2lsaWF0aW9uV2FzTmVjZXNzYXJ5OwpAQCAtNTk1LDggKzU4OSw3IEBAIHN0YXRp
YyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYg
aW5FdmVudEhhbmRsZXJDYWxsCiAvLyBUaGlzIGZ1bmN0aW9uIGlzIG1vc3RseSBjdXQtYW5kLXBh
c3RlZCBmcm9tIC1bTlNXaW5kb3cgX3Rlcm1XaW5kb3dJZk93bmVyXS4gIE0uUC4gTm90aWNlIC0g
OC83LzAwCiAtICh2b2lkKV90ZXJtV2luZG93SWZPd25lcgogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgW3NlbGYgX3NldFdpbmRvd051bWJlcjotMV07CiAgICAgX3dGbGFn
cy5pc1Rlcm1pbmF0aW5nID0gWUVTOwogICAgIGlmIChfd2luZG93UmVmICYmIF93aW5kb3dSZWZJ
c093bmVkKQpAQCAtNjA2LDcgKzU5OSw3IEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRv
d0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAvLyAg
ICAgICAgW19ib3JkZXJWaWV3IHNldFNoYWRvd1N0YXRlOmtGcmFtZVNoYWRvd05vbmVdOwogLy8g
ICAgfQogICAgIF93RmxhZ3MuaXNUZXJtaW5hdGluZyA9IE5POwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogfQogCiAKQEAgLTYyNiwxMCArNjE5LDkgQEAgc3RhdGljIE9TU3RhdHVzIE5T
Q2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxl
ckNhbGwKICAgICBbc3VwZXIgX3dpbmRvd01vdmVkVG9SZWN0OmFjdHVhbEZyYW1lXTsKIAogICAg
IC8vIExldCBDYXJib24ga25vdyB0aGF0IHRoZSB3aW5kb3cgaGFzIGJlZW4gbW92ZWQsIHVubGVz
cyB0aGlzIG1ldGhvZCBpcyBiZWluZyBjYWxsZWQgImVhcmx5LiIKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIGlmIChfd0ZsYWdzLnZpc2libGUpIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgICAgIG9zU3RhdHVzID0gX1N5bmNXaW5kb3dXaXRoQ0dBZnRl
ck1vdmUoX3dpbmRvd1JlZik7CiAgICAgICAgIGlmIChvc1N0YXR1cyE9bm9FcnIpIE5TTG9nKEAi
QSBDYXJib24gd2luZG93J3MgYm91bmRzIGNvdWxkbid0IGJlIHN5bmNocm9uaXplZCAoJWkpLiIs
IChpbnQpb3NTdGF0dXMpOwogICAgIH0KQEAgLTc1OCwxMSArNzUwLDEwIEBAIHN0YXRpYyBPU1N0
YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVu
dEhhbmRsZXJDYWxsCiAgICAgUmVjdCB3aW5kb3dDb250ZW50Qm91bmRzUmVjdDsKIAogICAgIC8v
IFByZWNvbmRpdGlvbiBjaGVjay4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAg
IGFzc2VydChfYm9yZGVyVmlldyk7CiAgICAgYXNzZXJ0KFtfYm9yZGVyVmlldyBpc0tpbmRPZkNs
YXNzOltDYXJib25XaW5kb3dGcmFtZSBjbGFzc11dKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKICAgICBhc3NlcnQoX3dpbmRvd1JlZik7CiAKICAgICAvLyBQYXJhbWV0ZXIgY2hlY2su
CkBAIC03NzYsOCArNzY3LDcgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxl
RXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKICAgICBjb250ZW50
RnJhbWVSZWN0LnNpemUud2lkdGggPSB3aW5kb3dDb250ZW50Qm91bmRzUmVjdC5yaWdodCAtIHdp
bmRvd0NvbnRlbnRCb3VuZHNSZWN0LmxlZnQ7CiAgICAgY29udGVudEZyYW1lUmVjdC5zaXplLmhl
aWdodCA9IHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LmJvdHRvbSAtIHdpbmRvd0NvbnRlbnRCb3Vu
ZHNSZWN0LnRvcDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9S
RV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgLy8gSWYg
dGhlIGNvbnRlbnQgdmlldyBpcyBzdGlsbCBpbiBzb21lIG90aGVyIHZpZXcgaGllcmFyY2h5LCBw
cnkgaXQgZnJlZS4KICAgICBbX2NvbnRlbnRWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOwogICAg
IGFzc2VydCghW19jb250ZW50VmlldyBzdXBlcnZpZXddKTsKQEAgLTc5MSw3ICs3ODEsNyBAQCBz
dGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxs
UmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogCiAgICAgLy8gVGVsbCB0aGUgY29udGVudCB2aWV3IGl0
J3MgbmV3IHBsYWNlIGluIHRoZSByZXNwb25kZXIgY2hhaW4uCiAgICAgW19jb250ZW50VmlldyBz
ZXROZXh0UmVzcG9uZGVyOnNlbGZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlH
Tk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQog
CiAKQEAgLTk0NCwxMCArOTM0LDkgQEAgQ2xlYW5VcDoKICAgICBISVJlY3QgZnJhbWU7CiAKICAg
ICBISVZpZXdHZXRGcmFtZShyb290LCAmZnJhbWUpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgW19ib3JkZXJWaWV3IHNldEZyYW1lU2l6ZToqKE5TU2l6ZSopJmZyYW1lLnNp
emVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5H
X0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQogCiAtICh2b2lkKV9oYW5kbGVD
b250ZW50Qm91bmRzQ2hhbmdlZApAQCAtOTY0LDEzICs5NTMsMTIgQEAgQ2xlYW5VcDoKICAgICAv
LyBTZXQgdGhlIGNvbnRlbnQgdmlldydzIGZyYW1lIHJlY3QgZnJvbSB0aGUgQ2FyYm9uIHdpbmRv
dydzIGNvbnRlbnQgcmVnaW9uIGJvdW5kcy4KICAgICBjb250ZW50RnJhbWUub3JpZ2luLnkgPSBy
b290Qm91bmRzLnNpemUuaGVpZ2h0IC0gQ0dSZWN0R2V0TWF4WShjb250ZW50RnJhbWUpOwogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkco
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBvbGRDb250ZW50RnJhbWVSZWN0ID0g
WyhOU1ZpZXcgKilfY29udGVudFZpZXcgZnJhbWVdOwogICAgIGlmICghTlNFcXVhbFJlY3RzKCoo
TlNSZWN0KikmY29udGVudEZyYW1lLCBvbGRDb250ZW50RnJhbWVSZWN0KSkgewogICAgICAgICBb
KE5TVmlldyAqKV9jb250ZW50VmlldyBzZXRGcmFtZToqKE5TUmVjdCopJmNvbnRlbnRGcmFtZV07
CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQogCiAtIChPU1N0YXR1cylf
aGFuZGxlQ2FyYm9uRXZlbnQ6KEV2ZW50UmVmKWluRXZlbnQgY2FsbFJlZjooRXZlbnRIYW5kbGVy
Q2FsbFJlZilpbkNhbGxSZWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0Nh
cmJvbi9DYXJib25XaW5kb3dGcmFtZS5tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9u
L0NhcmJvbldpbmRvd0ZyYW1lLm0KaW5kZXggZTkyNmViNmMyMWUwZmE4OGYyOGRjNGEwNjFjMzkw
MjI1MzI1ZWI5Ny4uMDZhNjJkMjE4NzU4MGVmNmY4NTc2ZjZkZDNlZGM0NTBkMzI1YmEzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0ZyYW1l
Lm0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0ZyYW1l
Lm0KQEAgLTI0MSwxMCArMjQxLDkgQEAgLSAoTlNTdHJpbmcgKil0aXRsZSB7CiAgICAgd2luZG93
UmVmID0gW2NhcmJvbldpbmRvdyB3aW5kb3dSZWZdOwogICAgIG9zU3RhdHVzID0gQ29weVdpbmRv
d1RpdGxlQXNDRlN0cmluZyh3aW5kb3dSZWYsICZ3aW5kb3dUaXRsZSk7CiAgICAgaWYgKG9zU3Rh
dHVzPT1ub0VycikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Nhc3QtcXVhbCIKKwkJSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XY2FzdC1xdWFsIik7CiAgICAgICAgIHdpbmRvd1RpdGxlQXNOU1N0cmluZyA9IChOU1N0
cmluZyAqKXdpbmRvd1RpdGxlOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCQlJR05P
UkVfV0FSTklOR19DTEFOR19FTkQoIi1XY2FzdC1xdWFsIik7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgTlNMb2coQCJBIENhcmJvbiB3aW5kb3cncyB0aXRsZSBjb3VsZG4ndCBiZSBnb3R0ZW4uIik7
CiAgICAgICAgIHdpbmRvd1RpdGxlQXNOU1N0cmluZyA9IEAiIjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DYXJib24vSElWaWV3QWRhcHRlci5tCmluZGV4IGYzZDk5NjVhYjdmZDEzODRh
YmI1NWU1OWM1YTA5NDRiNWU2MDFlNzAuLjVmODljZmUxMjNkYTFkMGMxMmFlNDRhZmE3ZjZmYjU2
MzFiZmEyYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVZp
ZXdBZGFwdGVyLm0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJVmlld0Fk
YXB0ZXIubQpAQCAtODgsMTAgKzg4LDkgQEAgKyAodm9pZCliaW5kSElWaWV3VG9OU1ZpZXc6KEhJ
Vmlld1JlZiloaVZpZXcgbnNWaWV3OihOU1ZpZXcqKW5zVmlldwogCiArIChISVZpZXdSZWYpZ2V0
SElWaWV3Rm9yTlNWaWV3OihOU1ZpZXcqKWluVmlldwogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Nhc3QtcXVhbCIK
KwlJR05PUkVfV0FSTklOR19DTEFORygiLVdjYXN0LXF1YWwiKTsKICAgICByZXR1cm4gc1ZpZXdN
YXAgPyAoSElWaWV3UmVmKUNGRGljdGlvbmFyeUdldFZhbHVlKHNWaWV3TWFwLCBpblZpZXcpIDog
TlVMTDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFO
R19FTkQoIi1XY2FzdC1xdWFsIik7CiB9CiAKICsgKHZvaWQpdW5iaW5kTlNWaWV3OihOU1ZpZXcq
KWluVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0KaW5k
ZXggNDA2Yjc3OWZhY2Y3YTNkNDE0YmIyZGZjYTM5NTUxNjRlNzYyOTI2YS4uNTE2MTllZGU3MWE5
NjllNGU2NWY5YjY5ZWEzYzAyZGNmOTYxMGQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2FyYm9uL0hJV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DYXJib24vSElXZWJWaWV3Lm1tCkBAIC0yODgsMTEgKzI4OCwxMCBAQCBzdGF0aWMgVUludDMy
IEdldEJlaGF2aW9ycygpCiAKIHN0YXRpYyBDR0NvbnRleHRSZWYgb3ZlcnJpZGVDR0NvbnRleHQo
TlNXaW5kb3cgKndpbmRvdywgQ0dDb250ZXh0UmVmIGNvbnRleHQpCiB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKICAgICBOU1dpbmRvd0dyYXBoaWNzQ29udGV4dCAqZ3JhcGhpY3ND
b250ZXh0ID0gKE5TV2luZG93R3JhcGhpY3NDb250ZXh0ICopd2luZG93LmdyYXBoaWNzQ29udGV4
dDsKICAgICBDR0NvbnRleHRSZWYgc2F2ZWRDb250ZXh0ID0gKENHQ29udGV4dFJlZilncmFwaGlj
c0NvbnRleHQuZ3JhcGhpY3NQb3J0OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlH
Tk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAg
IENHQ29udGV4dFJldGFpbihzYXZlZENvbnRleHQpOwogICAgIFtncmFwaGljc0NvbnRleHQgX3dl
Yl9zZXRHcmFwaGljc1BvcnQ6Y29udGV4dF07CiAgICAgcmV0dXJuIHNhdmVkQ29udGV4dDsKQEAg
LTMwMCwxMCArMjk5LDkgQEAgc3RhdGljIENHQ29udGV4dFJlZiBvdmVycmlkZUNHQ29udGV4dChO
U1dpbmRvdyAqd2luZG93LCBDR0NvbnRleHRSZWYgY29udGV4dCkKIAogc3RhdGljIHZvaWQgcmVz
dG9yZUNHQ29udGV4dChOU1dpbmRvdyAqd2luZG93LCBDR0NvbnRleHRSZWYgc2F2ZWRDb250ZXh0
KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5H
X0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgTlNXaW5kb3dHcmFwaGlj
c0NvbnRleHQgKmdyYXBoaWNzQ29udGV4dCA9IChOU1dpbmRvd0dyYXBoaWNzQ29udGV4dCAqKXdp
bmRvdy5ncmFwaGljc0NvbnRleHQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
W2dyYXBoaWNzQ29udGV4dCBfd2ViX3NldEdyYXBoaWNzUG9ydDpzYXZlZENvbnRleHRdOwogICAg
IENHQ29udGV4dFJlbGVhc2Uoc2F2ZWRDb250ZXh0KTsKIH0KQEAgLTMyMyw4ICszMjEsNyBAQCBz
dGF0aWMgdm9pZCBEcmF3KEhJV2ViVmlldyogaW5WaWV3LCBSZ25IYW5kbGUgbGltaXRSZ24sIENH
Q29udGV4dFJlZiBpbkNvbnRleHQpCiAgICAgICAgIEdyYWZQdHIgcG9ydDsKICAgICAgICAgUmVj
dCBwb3J0UmVjdDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCQlJR05P
UkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBH
ZXRQb3J0KCZwb3J0KTsKICAgICAgICAgR2V0UG9ydEJvdW5kcyhwb3J0LCAmcG9ydFJlY3QpOwog
ICAgICAgICBDcmVhdGVDR0NvbnRleHRGb3JQb3J0KHBvcnQsICZpbkNvbnRleHQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0RPTS9ET00ubW0KaW5kZXggOGViYjhhMGRhZjYzNDVmMjE5MDNkNmZlY2IyNGQ4
ZjE0ZTA2YzJhMS4uMGY5OGFkNTA1ZDRkMWZmMGY1MTQ2Y2I1NWFjYTI4MjMxNWQ3YmU1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9ET00vRE9NLm1tCkBAIC0yNDQsOCArMjQ0LDcgQEAgc3RhdGljIGlu
bGluZSBXS1F1YWQgemVyb1F1YWQoKQogCiBAaW1wbGVtZW50YXRpb24gRE9NTm9kZSAoV2ViQ29y
ZUludGVybmFsKQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xb2JqYy1wcm90b2NvbC1tZXRob2QtaW1wbGVtZW50YXRp
b24iCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1Xb2JqYy1wcm90b2NvbC1tZXRo
b2QtaW1wbGVtZW50YXRpb24iKQogCiAtIChOU1N0cmluZyAqKWRlc2NyaXB0aW9uCiB7CkBAIC0y
NTksNyArMjU4LDcgQEAgc3RhdGljIGlubGluZSBXS1F1YWQgemVyb1F1YWQoKQogICAgIHJldHVy
biBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjwlQCBbJUBdOiAlcD4iLCBbW3NlbGYgY2xh
c3NdIGRlc2NyaXB0aW9uXSwgW3NlbGYgbm9kZU5hbWVdLCBfaW50ZXJuYWxdOwogfQogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxf
RU5EKCItV29iamMtcHJvdG9jb2wtbWV0aG9kLWltcGxlbWVudGF0aW9uIikKIAogLSAoQmluZGlu
Z3M6OlJvb3RPYmplY3QqKV9yb290T2JqZWN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnkuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0hpc3RvcnkvV2ViSGlzdG9yeS5oCmluZGV4IGY4M2M1MjRkMTlkZWI3NjI3ZWM1ZWQyNTllMWRh
NmI0NmIxMWRmNjkuLjM4OThiN2Q5Yzk5NWZkZGI0MzYxNWE3ZGVjYjE2MGFhZmIwMDU0M2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeS5oCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeS5oCkBAIC0xMjgs
MTAgKzEyOCw5IEBAIFdFQktJVF9DTEFTU19ERVBSRUNBVEVEX01BQygxMF8zLCAxMF8xNCkKICAg
ICBAcGFyYW0gY2FsZW5kYXJEYXRlIEEgZGF0ZSBpZGVudGlmeWluZyB0aGUgdW5pcXVlIGRheSBv
ZiBpbnRlcmVzdC4KICAgICBAcmVzdWx0IFJldHVybnMgYW4gYXJyYXkgb2YgV2ViSGlzdG9yeUl0
ZW1zIGxhc3QgdmlzaXRlZCBvbiB0aGUgaW5kaWNhdGVkIGRheS4KICovCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogLSAoTlNBcnJheSAqKW9yZGVyZWRJdGVtc0xhc3RW
aXNpdGVkT25EYXk6KE5TQ2FsZW5kYXJEYXRlICopY2FsZW5kYXJEYXRlOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAjZW5kaWYKIAogLyohCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnkubW0KaW5kZXggOTA0OTZiYmI5OTM2NDI5OTZi
ZjVhMjQ1NmRmODY4OGRmODY1NjA3Yi4uOGJkMjQyMjFmZjBiYzZlYmE5MTliNjdmODY5YzgwOTY2
ZTg4ZGNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJI
aXN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9y
eS5tbQpAQCAtNDQ2LDggKzQ0Niw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViSGlzdG9yeURhdGVLZXkg
ZGF0ZUtleShOU1RpbWVJbnRlcnZhbCBkYXRlKQogCiAvLyBNQVJLOiBEQVRFLUJBU0VEIFJFVFJJ
RVZBTAogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklO
R19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiAtIChOU0Fy
cmF5ICopb3JkZXJlZExhc3RWaXNpdGVkRGF5cwogewpAQCAtNDc5LDcgKzQ3OCw3IEBAIHN0YXRp
YyBpbmxpbmUgV2ViSGlzdG9yeURhdGVLZXkgZGF0ZUtleShOU1RpbWVJbnRlcnZhbCBkYXRlKQog
ICAgIHJldHVybiBfZW50cmllc0J5RGF0ZS0+Z2V0KGRhdGVLZXkpLmdldCgpOwogfQogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxf
RU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogLy8gTUFSSzogVVJMIE1BVENISU5H
CiAKQEAgLTUzMSw4ICs1MzAsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkhpc3RvcnlEYXRlS2V5IGRh
dGVLZXkoTlNUaW1lSW50ZXJ2YWwgZGF0ZSkKICAgICByZXR1cm4gW1tOU1VzZXJEZWZhdWx0cyBz
dGFuZGFyZFVzZXJEZWZhdWx0c10gaW50ZWdlckZvcktleTpAIldlYktpdEhpc3RvcnlJdGVtTGlt
aXQiXTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogLy8g
UmV0dXJuIGEgZGF0ZSB0aGF0IG1hcmtzIHRoZSBhZ2UgbGltaXQgZm9yIGhpc3RvcnkgZW50cmll
cyBzYXZlZCB0byBvcgogLy8gbG9hZGVkIGZyb20gZGlzay4gQW55IGVudHJ5IG9sZGVyIHRoYW4g
dGhpcyBpdGVtIHNob3VsZCBiZSByZWplY3RlZC4KQEAgLTU0Miw3ICs1NDAsNyBAQCBzdGF0aWMg
aW5saW5lIFdlYkhpc3RvcnlEYXRlS2V5IGRhdGVLZXkoTlNUaW1lSW50ZXJ2YWwgZGF0ZSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdXJz
OjAgbWludXRlczowIHNlY29uZHM6MF07CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiKQogCiAtIChCT09MKWxvYWRIaXN0b3J5R3V0c0Zyb21VUkw6KE5TVVJMICopVVJM
IHNhdmVkSXRlbXNDb3VudDooaW50ICopbnVtYmVyT2ZJdGVtc0xvYWRlZCBjb2xsZWN0RGlzY2Fy
ZGVkSXRlbXNJbnRvOihOU011dGFibGVBcnJheSAqKWRpc2NhcmRlZEl0ZW1zIGVycm9yOihOU0Vy
cm9yICoqKWVycm9yCiB7CkBAIC01NjEsMTAgKzU1OSw5IEBAIHN0YXRpYyBpbmxpbmUgV2ViSGlz
dG9yeURhdGVLZXkgZGF0ZUtleShOU1RpbWVJbnRlcnZhbCBkYXRlKQogICAgICAgICAgICAgcmV0
dXJuIE5POwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICAgICAgTlNEYXRhICpkYXRhID0gW05TVVJMQ29ubmVjdGlvbiBzZW5kU3lu
Y2hyb25vdXNSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6VVJMXSByZXR1cm5p
bmdSZXNwb25zZTpuaWwgZXJyb3I6ZXJyb3JdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorCQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICAgICAgaWYgKGRhdGEubGVuZ3RoKQogICAgICAgICAgICAgZGljdGlvbmFyeSA9IFtO
U1Byb3BlcnR5TGlzdFNlcmlhbGl6YXRpb24gcHJvcGVydHlMaXN0V2l0aERhdGE6ZGF0YSBvcHRp
b25zOk5TUHJvcGVydHlMaXN0SW1tdXRhYmxlIGZvcm1hdDpudWxscHRyIGVycm9yOm51bGxwdHJd
OwogICAgIH0KQEAgLTc2OCwxNSArNzY1LDE0IEBAIHN0YXRpYyBpbmxpbmUgV2ViSGlzdG9yeURh
dGVLZXkgZGF0ZUtleShOU1RpbWVJbnRlcnZhbCBkYXRlKQogICAgIHJldHVybiBbX2hpc3RvcnlQ
cml2YXRlIG9yZGVyZWRMYXN0VmlzaXRlZERheXNdOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKQogCiAtIChOU0FycmF5ICopb3JkZXJlZEl0ZW1zTGFzdFZpc2l0
ZWRPbkRheTooTlNDYWxlbmRhckRhdGUgKilkYXRlCiB7CiAgICAgcmV0dXJuIFtfaGlzdG9yeVBy
aXZhdGUgb3JkZXJlZEl0ZW1zTGFzdFZpc2l0ZWRPbkRheTpkYXRlXTsKIH0KIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKIC8vIE1BUks6IFVSTCBNQVRDSElORwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVt
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQpp
bmRleCBjYzE4NTdhZjAyYmFhMDc5ZWM5MmE4MWU0NjA1MDA1ODkyM2E5Yzk4Li5iNjRlZTdmZmMy
ZDU4NjE0ZWE3ZTEwODAyOTRiMDViZDI5Njg4MTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KQEAgLTE5OSwxMCArMTk5LDkgQEAg
dm9pZCBXS05vdGlmeUhpc3RvcnlJdGVtQ2hhbmdlZChIaXN0b3J5SXRlbSopCiAjaWYgIVBMQVRG
T1JNKElPUykKIC0gKE5TSW1hZ2UgKilpY29uCiB7Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1
c2ggCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfR0NDKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgcmV0dXJuIFtbV2ViSWNvbkRhdGFiYXNlIHNoYXJlZEljb25EYXRhYmFzZV0gaWNvbkZv
clVSTDpbc2VsZiBVUkxTdHJpbmddIHdpdGhTaXplOldlYkljb25TbWFsbFNpemVdOwotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19HQ0NfRU5EKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL01pc2MvV2ViS2l0TlNTdHJpbmdFeHRyYXMubW0KaW5kZXggN2Y5OTUwMmYzNmI3
NDkyM2YzMTFlMDA2MWFlYmUxNGQ3NjY0NmNjZS4uZjEwMWI2ZmUyOWUwYWQ2MGFiYjc2ZTQ2MjI3
NWExMzIzMzI4MDI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9X
ZWJLaXROU1N0cmluZ0V4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNj
L1dlYktpdE5TU3RyaW5nRXh0cmFzLm1tCkBAIC03NywxMCArNzcsOSBAQCBzdGF0aWMgYm9vbCBj
YW5Vc2VGYXN0UmVuZGVyZXIoY29uc3QgVW5pQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgp
CiAgICAgICAgIHBvaW50LnkgPSBDR0NlaWxpbmcocG9pbnQueSk7CiAKICAgICAgICAgTlNHcmFw
aGljc0NvbnRleHQgKm5zQ29udGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4
dF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJCUlHTk9SRV9XQVJOSU5H
X0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIENHQ29udGV4dFJl
ZiBjZ0NvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0NvbnRleHRSZWY+KFtuc0NvbnRleHQgZ3JhcGhp
Y3NQb3J0XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJCUlHTk9SRV9XQVJOSU5H
X0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBHcmFwaGlj
c0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0IHsgY2dDb250ZXh0IH07CiAKICAgICAgICAgLy8gV2Vi
Q29yZSByZXF1aXJlcyBhIGZsaXBwZWQgZ3JhcGhpY3MgY29udGV4dC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNJbWFnZUV4dHJhcy5tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU0ltYWdlRXh0cmFzLm0KaW5kZXggYzMyNjQzYjQ5OGZh
ZTcwZmQzMTI0YWU1YzQ1NjllMDNlOTZiMmZjMS4uNjkyMWU5ZmEyMzA4ZWE1MzU5YTc2ZTBiMjIz
ZWFkZGMzOGVjZTY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9X
ZWJOU0ltYWdlRXh0cmFzLm0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJO
U0ltYWdlRXh0cmFzLm0KQEAgLTUzLDEwICs1Myw5IEBAIC0gKHZvaWQpX3dlYl9zY2FsZVRvTWF4
U2l6ZTooTlNTaXplKXNpemUKICAgICAKICAgICBpZihyZXNpemVEZWx0YSA+IDAuMCl7CiAgICAg
ICAgIE5TU2l6ZSBuZXdTaXplID0gTlNNYWtlU2l6ZSgob3JpZ2luYWxTaXplLndpZHRoICogcmVz
aXplRGVsdGEpLCAob3JpZ2luYWxTaXplLmhlaWdodCAqIHJlc2l6ZURlbHRhKSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIFtzZWxmIHNldFNjYWxlc1doZW5SZXNp
emVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJCUlHTk9SRV9XQVJOSU5H
X0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBbc2VsZiBz
ZXRTaXplOm5ld1NpemVdOwogICAgIH0KIH0KQEAgLTY1LDI5ICs2NCwyNSBAQCAtICh2b2lkKV93
ZWJfZGlzc29sdmVUb0ZyYWN0aW9uOihmbG9hdClkZWx0YQogewogICAgIE5TSW1hZ2UgKmRpc3Nv
bHZlZEltYWdlID0gW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aFNpemU6W3NlbGYgc2l6ZV1dOwog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBOU1BvaW50IHBvaW50ID0gW3Nl
bGYgaXNGbGlwcGVkXSA/IE5TTWFrZVBvaW50KDAsIFtzZWxmIHNpemVdLmhlaWdodCkgOiBOU1pl
cm9Qb2ludDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAKICAgICAvLyBJbiB0
aGlzIGNhc2UgdGhlIGRyYWdnaW5nIGltYWdlIGlzIGFsd2F5cyBjb3JyZWN0LgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW2Rpc3NvbHZlZEltYWdlIHNldEZsaXBwZWQ6W3Nl
bGYgaXNGbGlwcGVkXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBbZGlz
c29sdmVkSW1hZ2UgbG9ja0ZvY3VzXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgIFtzZWxmIGRpc3NvbHZlVG9Qb2ludDpwb2ludCBmcmFjdGlvbjogZGVsdGFdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtkaXNzb2x2ZWRJbWFnZSB1bmxvY2tGb2N1c107
CiAKICAgICBbc2VsZiBsb2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgW2Rpc3NvbHZlZEltYWdlIGNvbXBvc2l0ZVRvUG9pbnQ6cG9pbnQgb3BlcmF0aW9uOk5T
Q29tcG9zaXRlQ29weV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW3NlbGYg
dW5sb2NrRm9jdXNdOwogCiAgICAgW2Rpc3NvbHZlZEltYWdlIHJlbGVhc2VdOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQpp
bmRleCBmYTIzYzZjYmRiMTQ2Yjg2MmNjZTJlYWU0ODBhZWExMTk5NmMxYmIwLi43YWQzMzY2ZmEz
MTBhZDRkYmNiNDY5MDkwMDgxOTNjYWY1MjliZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQpAQCAtMTg0LDEwICsx
ODQsOSBAQCBzdGF0aWMgTlNBcnJheSAqX3dyaXRhYmxlVHlwZXNGb3JJbWFnZVdpdGhBcmNoaXZl
ICh2b2lkKQogCiArIChpbnQpX3dlYl9zZXRGaW5kUGFzdGVib2FyZFN0cmluZzooTlNTdHJpbmcg
KilzdHJpbmcgd2l0aE93bmVyOihpZClvd25lcgogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgTlNQYXN0ZWJvYXJkICpmaW5kUGFzdGVib2FyZCA9IFtOU1Bhc3RlYm9hcmQg
cGFzdGVib2FyZFdpdGhOYW1lOk5TRmluZFBib2FyZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgW2ZpbmRQYXN0ZWJvYXJkIGRlY2xhcmVUeXBlczpbTlNBcnJheSBhcnJheVdp
dGhPYmplY3Q6bGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUoKV0gb3duZXI6b3duZXJdOwogICAg
IFtmaW5kUGFzdGVib2FyZCBzZXRTdHJpbmc6c3RyaW5nIGZvclR5cGU6bGVnYWN5U3RyaW5nUGFz
dGVib2FyZFR5cGUoKV07CiAgICAgcmV0dXJuIFtmaW5kUGFzdGVib2FyZCBjaGFuZ2VDb3VudF07
CkBAIC0yNzksMTAgKzI3OCw5IEBAIHN0YXRpYyBDYWNoZWRJbWFnZSogaW1hZ2VGcm9tRWxlbWVu
dChET01FbGVtZW50ICpkb21FbGVtZW50KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhcmNoaXZlOihXZWJBcmNoaXZlICopYXJjaGl2ZQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc291cmNlOihXZWJIVE1MVmlldyAqKXNvdXJjZQogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQVNTRVJUKHNlbGYgPT0gW05TUGFzdGVib2FyZCBw
YXN0ZWJvYXJkV2l0aE5hbWU6TlNEcmFnUGJvYXJkXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAKICAgICBOU1N0cmluZyAqZXh0ZW5zaW9uID0gQCIiOwogICAgIFJldGFpblB0cjxO
U011dGFibGVBcnJheT4gdHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRXaXRoT2JqZWN0czpsZWdhY3lGaWxlc1Byb21pc2VQYXN0ZWJvYXJkVHlwZSgpLCBuaWxdKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BhbmVscy9XZWJBdXRoZW50aWNh
dGlvblBhbmVsLm0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QYW5lbHMvV2ViQXV0aGVudGlj
YXRpb25QYW5lbC5tCmluZGV4IDY3ZjE4YjhmNTM3NWVhYzU0NWIyM2E2M2RiOTc2ZjY5NDc2Yjdk
NGUuLmExNWJkNTlkMTEyYmU1M2JjYTI1YmRhNTViYmUzNmMxODRkNmQ0N2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BhbmVscy9XZWJBdXRoZW50aWNhdGlvblBhbmVsLm0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGFuZWxzL1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubQpAQCAtMTA0LDEwICsxMDQsOSBAQCAtIChJQkFjdGlvbilsb2dJbjooaWQpc2VuZGVyCiAt
IChCT09MKWxvYWROaWIKIHsKICAgICBpZiAoIW5pYkxvYWRlZCkgewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorCQlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBpZiAoW05TQnVuZGxlIGxvYWROaWJOYW1lZDpXZWJB
dXRoZW50aWNhdGlvblBhbmVsTmliTmFtZSBvd25lcjpzZWxmXSkgewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorCQkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgICAgICAgICBuaWJMb2FkZWQgPSBZRVM7CiAgICAgICAgICAg
ICBbaW1hZ2VWaWV3IHNldEltYWdlOltOU0ltYWdlIGltYWdlTmFtZWQ6QCJOU0FwcGxpY2F0aW9u
SWNvbiJdXTsKICAgICAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5h
Z2VyLm1tCmluZGV4IDAyMTBiMDY2YmFhZDI2OTdlMDlmMjhlMDg5YWQzNWZhNzRmMzY5ZGYuLjhh
NTg1ZDlhOTQ2M2NhMzZiY2U2NmRmOGE4NDdjYWZlNDAxYmM5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFn
ZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2Nh
cGVQbHVnaW5Ib3N0TWFuYWdlci5tbQpAQCAtMTg3LDEwICsxODcsOSBAQCBib29sIE5ldHNjYXBl
UGx1Z2luSG9zdE1hbmFnZXI6OnNwYXduUGx1Z2luSG9zdChjb25zdCBTdHJpbmcmIHBsdWdpblBh
dGgsIGNwdV90eQogCiAgICAgUHJvY2Vzc1NlcmlhbE51bWJlciBwc247CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIEdldEN1cnJlbnRQcm9jZXNzKCZwc24pOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgQVNTRVJUKE1BQ0hfUE9SVF9WQUxJRChjbGll
bnRQb3J0KSk7CiAgICAga3IgPSBfV0tQSENoZWNrSW5XaXRoUGx1Z2luSG9zdChwbHVnaW5Ib3N0
UG9ydCwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KFtkYXRhIGJ5dGVz
XSkpLCBbZGF0YSBsZW5ndGhdLCBjbGllbnRQb3J0LCBwc24uaGlnaExvbmdPZlBTTiwgcHNuLmxv
d0xvbmdPZlBTTiwgcmVuZGVyU2VydmVyUG9ydCwKQEAgLTMyMiwxMSArMzIxLDEwIEBAIHZvaWQg
TmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlcjo6ZGlkQ3JlYXRlV2luZG93KCkKICAgICAgICAgaWYg
KCFob3N0UHJveHktPmlzTWVudUJhclZpc2libGUoKSkgewogICAgICAgICAgICAgLy8gTWFrZSBv
dXJzZWx2ZXMgdGhlIGZyb250IHByb2Nlc3MuCiAgICAgICAgICAgICBQcm9jZXNzU2VyaWFsTnVt
YmVyIHBzbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwkJCUlHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgICAgICBH
ZXRDdXJyZW50UHJvY2VzcygmcHNuKTsKICAgICAgICAgICAgIFNldEZyb250UHJvY2VzcygmcHNu
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwkJCUlHTk9SRV9XQVJOSU5HX0NMQU5H
X0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQppbmRleCBl
YzVmMGRhNThhNjJhOWU1NDQ3OGNjMmMwZjcwN2ViNGM3MTAxMGI2Li5jOTM3YWE5NDdhZThjMzM4
NmViZmEyYzE1MTA0ZWViZTZlZGNkNTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94
eS5tbQpAQCAtMzQxLDMyICszNDEsMjkgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6
cHJvY2Vzc1JlcXVlc3RzKCkKIAogdm9pZCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6bWFrZUN1
cnJlbnRQcm9jZXNzRnJvbnRQcm9jZXNzKCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogICAgIFByb2Nlc3NTZXJpYWxOdW1iZXIgcHNuOwogICAgIEdldEN1cnJlbnRQcm9jZXNz
KCZwc24pOwogICAgIFNldEZyb250UHJvY2VzcygmcHNuKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKIH0KIAogdm9pZCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6bWFrZVBsdWdpbkhv
c3RQcm9jZXNzRnJvbnRQcm9jZXNzKCkgY29uc3QKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgIFNldEZyb250UHJvY2VzcygmbV9wbHVnaW5Ib3N0UFNOKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogYm9vbCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6
aXNQbHVnaW5Ib3N0UHJvY2Vzc0Zyb250UHJvY2VzcygpIGNvbnN0CiB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKICAgICBQcm9jZXNzU2VyaWFsTnVtYmVyIGZyb250UHJvY2VzczsK
ICAgICBHZXRGcm9udFByb2Nlc3MoJmZyb250UHJvY2Vzcyk7CiAKICAgICBCb29sZWFuIGlzU2Ft
ZVByb2Nlc3MgPSAwOwogICAgIFNhbWVQcm9jZXNzKCZmcm9udFByb2Nlc3MsICZtX3BsdWdpbkhv
c3RQU04sICZpc1NhbWVQcm9jZXNzKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAog
ICAgIHJldHVybiBpc1NhbWVQcm9jZXNzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0
YW5jZVByb3h5Lm1tCmluZGV4IGU5M2ZiNTA2ZTVkZTBhNWRhZTNhZmE1NjU4Y2JhZjQxNzhlMjZh
YTEuLjZjYjU4OGMyYzc4ZTcwMDFiM2I1ZTM4ZTMzN2M5Y2I5MDE2Njk3NDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5z
dGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTQyMywxMCArNDIzLDkgQEAgdm9p
ZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnN0YXJ0VGltZXJzKGJvb2wgdGhyb3R0bGVU
aW1lcnMpCiAgICAgCiB2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6bW91c2VFdmVu
dChOU1ZpZXcgKnBsdWdpblZpZXcsIE5TRXZlbnQgKmV2ZW50LCBOUENvY29hRXZlbnRUeXBlIHR5
cGUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5J
TkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBOU1BvaW50IHNjcmVl
blBvaW50ID0gW1tldmVudCB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46W2V2ZW50IGxvY2F0
aW9uSW5XaW5kb3ddXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FS
TklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBOU1BvaW50
IHBsdWdpblBvaW50ID0gW3BsdWdpblZpZXcgY29udmVydFBvaW50OltldmVudCBsb2NhdGlvbklu
V2luZG93XSBmcm9tVmlldzpuaWxdOwogICAgIAogICAgIGludCBjbGlja0NvdW50OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0
c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0
ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IGYzZTA0YjRmNTU4MDYxMTkx
Yzg2ZmQ2Nzc1NTE1OTE0ODYzZDExOTQuLjdmYjliYWRkOTBmNjQ5ODhhZjZiZWMzZmZmZmNiYWMz
MzRiOTRhZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9z
dGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KQEAg
LTQ3Nyw4ICs0NzcsNyBAQCBleHRlcm4gIkMiIHsKICAgICB9CiAKICAgICBpZiAoX3Byb3h5KSB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJCUlHTk9SRV9XQVJOSU5HX0NM
QU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIGlmIChfc29mdHdhcmVS
ZW5kZXJlcikgewogICAgICAgICAgICAgaWYgKFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29u
dGV4dERyYXdpbmdUb1NjcmVlbl0pIHsKICAgICAgICAgICAgICAgICBfc29mdHdhcmVSZW5kZXJl
ci0+cmVuZGVyKChDR0NvbnRleHRSZWYpW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4
dF0gZ3JhcGhpY3NQb3J0XSwgTlNSZWN0VG9DR1JlY3QocmVjdCkpOwpAQCAtNDg4LDcgKzQ4Nyw3
IEBAIGV4dGVybiAiQyIgewogICAgICAgICB9IGVsc2UgaWYgKF9zbmFwc2hvdHRpbmcgJiYgW3Nl
bGYgc3VwcG9ydHNTbmFwc2hvdHRpbmddKSB7CiAgICAgICAgICAgICBfcHJveHktPnNuYXBzaG90
KHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0UmVmPihbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJl
bnRDb250ZXh0XSBncmFwaGljc1BvcnRdKSwgW3NlbGYgYm91bmRzXS5zaXplLndpZHRoLCBbc2Vs
ZiBib3VuZHNdLnNpemUuaGVpZ2h0KTsKICAgICAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorCQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKIAogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViVGV4dElucHV0V2luZG93Q29udHJvbGxl
ci5tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViVGV4dElucHV0
V2luZG93Q29udHJvbGxlci5tCmluZGV4IGZiZDY2N2I3NDhmODQyM2VlZTg4MTdhZTRkMTViNWE3
NjYyZmI1MTkuLmFhZmJhM2YxNTUxZDc2OTdhNjE4NzY1YWY1ZjdlMzBmYTNlNjRlM2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYlRleHRJbnB1
dFdpbmRvd0NvbnRyb2xsZXIubQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5z
L0hvc3RlZC9XZWJUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm0KQEAgLTEwNiwxOSArMTA2LDE3
IEBAIC0gKHZvaWQpX2tleWJvYXJkSW5wdXRTb3VyY2VDaGFuZ2VkOihOU05vdGlmaWNhdGlvbiAq
KW5vdGlmaWNhdGlvbgogCiAtIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooTlNFdmVudCAqKWV2
ZW50IHN0cmluZzooTlNTdHJpbmcgKiopc3RyaW5nCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICBCT09MIGhhZE1hcmtlZFRleHQgPSBbX2lucHV0VGV4dFZpZXcgaGFzTWFy
a2VkVGV4dF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICAqc3RyaW5nID0g
bmlsOwogCiAgICAgLy8gTGV0IFRTTSBrbm93IHRoYXQgYSBib3R0b20gaW5wdXQgd2luZG93IHdv
dWxkIGJlIGNyZWF0ZWQgZm9yIG1hcmtlZCB0ZXh0LgogICAgIC8vIEZJWE1FOiBDYW4gYmUgcmVt
b3ZlZCBvbmNlIHdlIGNhbiByZWx5IG9uIF9fTlNVc2VzRmxvYXRpbmdJbnB1dFdpbmRvdyAob3Ig
YSBiZXR0ZXIgQVBJKSBiZWluZyBhdmFpbGFibGUgZXZlcnl3aGVyZS4KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdjYXN0
LXF1YWwiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XY2FzdC1xdWFsIik7CiAgICAgRXZlbnRS
ZWYgY2FyYm9uRXZlbnQgPSAoRXZlbnRSZWYpW2V2ZW50IGV2ZW50UmVmXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XY2FzdC1xdWFs
Iik7CiAgICAgaWYgKGNhcmJvbkV2ZW50KSB7CiAgICAgICAgIEJvb2xlYW4gaWdub3JlUEFIID0g
dHJ1ZTsKICAgICAgICAgU2V0RXZlbnRQYXJhbWV0ZXIoY2FyYm9uRXZlbnQsICdpUEFIJywgdHlw
ZUJvb2xlYW4sIHNpemVvZihpZ25vcmVQQUgpLCAmaWdub3JlUEFIKTsKQEAgLTEyNywxMCArMTI1
LDkgQEAgLSAoQk9PTClfaW50ZXJwcmV0S2V5RXZlbnQ6KE5TRXZlbnQgKilldmVudCBzdHJpbmc6
KE5TU3RyaW5nICoqKXN0cmluZwogICAgIGlmICghW1tfaW5wdXRUZXh0VmlldyBpbnB1dENvbnRl
eHRdIGhhbmRsZUV2ZW50OmV2ZW50XSkKICAgICAgICAgcmV0dXJuIE5POwogICAgIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaWYgKFtfaW5wdXRUZXh0VmlldyBoYXNNYXJr
ZWRUZXh0XSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCQlJR05PUkVfV0FSTklO
R19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgLy8gRG9u
J3Qgc2hvdyB0aGUgaW5wdXQgbWV0aG9kIHdpbmRvdyBmb3IgZGVhZCBrZXlzCiAgICAgICAgIGlm
IChbW2V2ZW50IGNoYXJhY3RlcnNdIGxlbmd0aF0gPiAwKQogICAgICAgICAgICAgW3NlbGYgb3Jk
ZXJGcm9udDpuaWxdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lu
cy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
UGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDZkODVhOGM1ZWE0MTU5
ODJiMTA4ZWVhYTZkZWM0N2MwYzg2NjE5OTQuLmFhMTA2MjA5OTdmMTY4NTU3Yjk3YjEwNzljZmVj
N2E4YmY0MDE3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMv
V2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTcyOSwyNSArNzI5LDIy
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIHN3aXRjaCAoc291cmNlU3BhY2UpIHsK
ICAgICAgICAgY2FzZSBOUENvb3JkaW5hdGVTcGFjZVBsdWdpbjoKICAgICAgICAgICAgIHNvdXJj
ZVBvaW50SW5TY3JlZW5TcGFjZSA9IFtzZWxmIGNvbnZlcnRQb2ludDpzb3VyY2VQb2ludCB0b1Zp
ZXc6bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwkJCUlHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgICAgICBz
b3VyY2VQb2ludEluU2NyZWVuU3BhY2UgPSBbW3NlbGYgY3VycmVudFdpbmRvd10gY29udmVydEJh
c2VUb1NjcmVlbjpzb3VyY2VQb2ludEluU2NyZWVuU3BhY2VdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorCQkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgICAgICBj
YXNlIE5QQ29vcmRpbmF0ZVNwYWNlV2luZG93OgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorCQkJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKICAgICAgICAgICAgIHNvdXJjZVBvaW50SW5TY3JlZW5TcGFjZSA9IFtbc2VsZiBjdXJy
ZW50V2luZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOnNvdXJjZVBvaW50XTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKwkJCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAg
ICAgICAgY2FzZSBOUENvb3JkaW5hdGVTcGFjZUZsaXBwZWRXaW5kb3c6CiAgICAgICAgICAgICBz
b3VyY2VQb2ludC55ID0gW1tzZWxmIGN1cnJlbnRXaW5kb3ddIGZyYW1lXS5zaXplLmhlaWdodCAt
IHNvdXJjZVBvaW50Lnk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJCQlJ
R05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAg
ICAgICAgc291cmNlUG9pbnRJblNjcmVlblNwYWNlID0gW1tzZWxmIGN1cnJlbnRXaW5kb3ddIGNv
bnZlcnRCYXNlVG9TY3JlZW46c291cmNlUG9pbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorCQkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIE5Q
Q29vcmRpbmF0ZVNwYWNlU2NyZWVuOgpAQCAtNzY3LDI1ICs3NjQsMjIgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAgICAgLy8gVGhlbiBjb252ZXJ0IGJhY2sgdG8gdGhlIGRlc3RpbmF0aW9u
IHNwYWNlCiAgICAgc3dpdGNoIChkZXN0U3BhY2UpIHsKICAgICAgICAgY2FzZSBOUENvb3JkaW5h
dGVTcGFjZVBsdWdpbjoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwkJCUlH
Tk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAg
ICAgICBkZXN0UG9pbnQgPSBbW3NlbGYgY3VycmVudFdpbmRvd10gY29udmVydFNjcmVlblRvQmFz
ZTpzb3VyY2VQb2ludEluU2NyZWVuU3BhY2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorCQkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgICAgICAgICBkZXN0UG9pbnQgPSBbc2VsZiBjb252ZXJ0UG9pbnQ6ZGVzdFBvaW50
IGZyb21WaWV3Om5pbF07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgICAg
ICBjYXNlIE5QQ29vcmRpbmF0ZVNwYWNlV2luZG93OgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorCQkJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICAgICAgICAgIGRlc3RQb2ludCA9IFtbc2VsZiBjdXJyZW50V2luZG93XSBj
b252ZXJ0U2NyZWVuVG9CYXNlOnNvdXJjZVBvaW50SW5TY3JlZW5TcGFjZV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisJCQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAg
ICAgICAgIGNhc2UgTlBDb29yZGluYXRlU3BhY2VGbGlwcGVkV2luZG93OgotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCQkJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAgIGRlc3RQb2ludCA9IFtbc2VsZiBjdXJy
ZW50V2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOnNvdXJjZVBvaW50SW5TY3JlZW5TcGFjZV07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJCQlJR05PUkVfV0FSTklOR19DTEFOR19F
TkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAgIGRlc3RQb2ludC55
ID0gW1tzZWxmIGN1cnJlbnRXaW5kb3ddIGZyYW1lXS5zaXplLmhlaWdodCAtIGRlc3RQb2ludC55
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblBhY2thZ2UubW0K
aW5kZXggZjIyODkzNDc0MjE5MDRiZWUzYzg4NjY2YzRlMzAwOTJmYzEwNTBkZS4uMjFiYWEwYWQ0
OWI4ZDZkMThjYTAyNjJlNjA4NDMxM2I5M2UyZGI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblBhY2thZ2UubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblBhY2thZ2UubW0K
QEAgLTE2NywxNCArMTY3LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIGlmICgh
TlBfSW5pdGlhbGl6ZSB8fCAhTlBfR2V0RW50cnlQb2ludHMgfHwgIU5QX1NodXRkb3duKQogICAg
ICAgICByZXR1cm4gTk87CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJ
R05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIC8v
IFBsdWdpbnMgKGF0IGxlYXN0IFFUKSByZXF1aXJlIHRoYXQgeW91IGNhbGwgVXNlUmVzRmlsZSBv
biB0aGUgcmVzb3VyY2UgZmlsZSBiZWZvcmUgbG9hZGluZyBpdC4KICAgICByZXNvdXJjZVJlZiA9
IFtzZWxmIG9wZW5SZXNvdXJjZUZpbGVdOwogICAgIGlmIChyZXNvdXJjZVJlZiAhPSAtMSkgewog
ICAgICAgICBVc2VSZXNGaWxlKHJlc291cmNlUmVmKTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAKICAgICBicm93c2VyRnVuY3MudmVyc2lvbiA9IE5QX1ZFUlNJT05fTUlO
T1I7CiAgICAgYnJvd3NlckZ1bmNzLnNpemUgPSBzaXplb2YoTlBOZXRzY2FwZUZ1bmNzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVn
aW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBs
dWdpblZpZXcubW0KaW5kZXggNDlkYzFjNTE0ZjcyYzQ0OWZmZGFlNzI5Y2E4ZDljMDgxNjRhOWUz
ZS4uNmM1MzdlOTM3ZGM1YWQ4NTJmYzNjMTFkYTNlZjk5MTk2NThmYzhkMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZp
ZXcubW0KQEAgLTM3NywxMCArMzc3LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGdldE5QUmVjdChj
b25zdCBOU1JlY3QmIG5yLCBOUFJlY3QmIG5wcikKICAgICAgICAgICAgIFJnbkhhbmRsZSBjbGlw
UmVnaW9uID0gTmV3UmduKCk7CiAgICAgICAgICAgICBxZFBvcnRTdGF0ZS0+Y2xpcFJlZ2lvbiA9
IGNsaXBSZWdpb247CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwkJCUlH
Tk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAg
ICAgICBDR0NvbnRleHRSZWYgY3VycmVudENvbnRleHQgPSAoQ0dDb250ZXh0UmVmKVtbTlNHcmFw
aGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisJCQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAgIGlmIChjdXJyZW50Q29udGV4dCAmJiBDR0Nv
bnRleHRHZXRUeXBlKGN1cnJlbnRDb250ZXh0KSA9PSBrQ0dDb250ZXh0VHlwZUJpdG1hcCkgewog
ICAgICAgICAgICAgICAgIC8vIFdlIGNoZWNrIGZvciBrQ0dDb250ZXh0VHlwZUJpdG1hcCBoZXJl
LCBiZWNhdXNlIGlmIHdlIGp1c3QgY2FsbGVkIENHQml0bWFwQ29udGV4dEdldERhdGEKICAgICAg
ICAgICAgICAgICAvLyBvbiBhbnkgY29udGV4dCwgd2UnZCBsb2cgdG8gdGhlIGNvbnNvbGUgZXZl
cnkgdGltZS4gQnV0IGV2ZW4gaWYgY3VycmVudENvbnRleHQgaXMgYQpAQCAtNTAzLDEwICs1MDIs
OSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0TlBSZWN0KGNvbnN0IE5TUmVjdCYgbnIsIE5QUmVj
dCYgbnByKQogICAgICAgICAgICAgCiAgICAgICAgICAgICBBU1NFUlQoW05TVmlldyBmb2N1c1Zp
ZXddID09IHNlbGYpOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJCQlJ
R05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAg
ICAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0NvbnRleHRSZWY+KFtb
TlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF0pOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCQkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICAgICAgICAgIFBvcnRTdGF0ZV9DRyAqY2dQ
b3J0U3RhdGUgPSAoUG9ydFN0YXRlX0NHICopbWFsbG9jKHNpemVvZihQb3J0U3RhdGVfQ0cpKTsK
ICAgICAgICAgICAgIHBvcnRTdGF0ZSA9IChQb3J0U3RhdGUpY2dQb3J0U3RhdGU7CkBAIC02OTUs
MTAgKzY5Myw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3QoY29uc3QgTlNSZWN0JiBu
ciwgTlBSZWN0JiBucHIpCiB7CiAgICAgQVNTRVJUKF9ldmVudEhhbmRsZXIpOwogICAgIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSBz
dGF0aWNfY2FzdDxDR0NvbnRleHRSZWY+KFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRl
eHRdIGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9S
RV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIF9l
dmVudEhhbmRsZXItPmRyYXdSZWN0KGNvbnRleHQsIHJlY3QpOwogfQogCkBAIC0xMzM4LDEwICsx
MzM1LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGdldE5QUmVjdChjb25zdCBOU1JlY3QmIG5yLCBO
UFJlY3QmIG5wcikKICAgICAgICAgaWYgKHByaW50ZWRQbHVnaW5CaXRtYXApIHsKICAgICAgICAg
ICAgIC8vIEZsaXAgdGhlIGJpdG1hcCBiZWZvcmUgZHJhd2luZyBiZWNhdXNlIHRoZSBRdWlja0Ry
YXcgcG9ydCBpcyBmbGlwcGVkIHJlbGF0aXZlCiAgICAgICAgICAgICAvLyB0byB0aGlzIHZpZXcu
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJCQlJR05PUkVfV0FSTklOR19D
TEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgQ0dDb250ZXh0
UmVmIGNnQ29udGV4dCA9IChDR0NvbnRleHRSZWYpW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50
Q29udGV4dF0gZ3JhcGhpY3NQb3J0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwkJ
CUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgICAgICAgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjZ0NvbnRleHQpOwogICAgICAgICAgICAg
TlNSZWN0IGJvdW5kcyA9IFtzZWxmIGJvdW5kc107CiAgICAgICAgICAgICBDR0NvbnRleHRUcmFu
c2xhdGVDVE0oY2dDb250ZXh0LCAwLjBmLCBOU0hlaWdodChib3VuZHMpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQpp
bmRleCAyOTBmZWY2M2FkOTE2YWE2MThkMzBhMjFkOTE0M2UyMThlYzkwZTg1Li5hMDQ5MjhmMmZk
ZjI0Mjc1MDAwNDVhNTQzZjQ2NmFiOWZhMzAxYzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCkBAIC02NTQsMjEg
KzY1NCwxOSBAQCBzdGF0aWMgYWxlcnREaWRFbmRJTVAgb3JpZ2luYWxfVFNVcGRhdGVDaGVja19h
bGVydERpZEVuZF9yZXR1cm5Db2RlX2NvbnRleHRJbmZvXwogCiBzdGF0aWMgdm9pZCBXZWJLaXRf
VFNVcGRhdGVDaGVja19hbGVydERpZEVuZF9yZXR1cm5Db2RlX2NvbnRleHRJbmZvXyhpZCBvYmpl
Y3QsIFNFTCBzZWxlY3RvciwgTlNBbGVydCAqYWxlcnQsIE5TSW50ZWdlciByZXR1cm5Db2RlLCB2
b2lkKiBjb250ZXh0SW5mbykKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAg
IFtbKFRTVXBkYXRlQ2hlY2sgKilvYmplY3QgZGVsZWdhdGVdIGF1dG9yZWxlYXNlXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIG9yaWdpbmFsX1RTVXBkYXRlQ2hlY2tfYWxl
cnREaWRFbmRfcmV0dXJuQ29kZV9jb250ZXh0SW5mb18ob2JqZWN0LCBzZWxlY3RvciwgYWxlcnQs
IHJldHVybkNvZGUsIGNvbnRleHRJbmZvKTsKIH0KIAogc3RhdGljIHZvaWQgV2ViS2l0X05TQWxl
cnRfYmVnaW5TaGVldE1vZGFsRm9yV2luZG93X21vZGFsRGVsZWdhdGVfZGlkRW5kU2VsZWN0b3Jf
Y29udGV4dEluZm9fKGlkIG9iamVjdCwgU0VMIHNlbGVjdG9yLCBOU1dpbmRvdyAqd2luZG93LCBp
ZCBtb2RhbERlbGVnYXRlLCBTRUwgZGlkRW5kU2VsZWN0b3IsIHZvaWQqIGNvbnRleHRJbmZvKQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NM
QU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaWYgKGlzS2luZE9mQ2xhc3Mo
bW9kYWxEZWxlZ2F0ZSwgQCJUU1VwZGF0ZUNoZWNrIikpCiAgICAgICAgIFtbKFRTVXBkYXRlQ2hl
Y2sgKiltb2RhbERlbGVnYXRlIGRlbGVnYXRlXSByZXRhaW5dOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogCiAgICAgb3JpZ2luYWxfTlNBbGVydF9iZWdpblNoZWV0TW9kYWxGb3JXaW5k
b3dfbW9kYWxEZWxlZ2F0ZV9kaWRFbmRTZWxlY3Rvcl9jb250ZXh0SW5mb18ob2JqZWN0LCBzZWxl
Y3Rvciwgd2luZG93LCBtb2RhbERlbGVnYXRlLCBkaWRFbmRTZWxlY3RvciwgY29udGV4dEluZm8p
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
UG9wdXBNZW51TWFjLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
UG9wdXBNZW51TWFjLm1tCmluZGV4IDdiMWZiZWFlZTEwNjA5YmVjOWYzYzJmZTRkNjQ2Njk5ZGQz
ZDRhZjguLmMwZDM0ZDU2MTkzMDY2MDJmMmNiMTIyYmYxOWQ3YjUyOWQ1NTMyNTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVN
YWMubW0KQEAgLTExMywxNSArMTEzLDE0IEBAIHZvaWQgUG9wdXBNZW51TWFjOjpwb3B1bGF0ZSgp
CiAgICAgICAgIFttZW51SXRlbSBzZXRFbmFibGVkOm1fY2xpZW50LT5pdGVtSXNFbmFibGVkKGkp
XTsKICAgICAgICAgW21lbnVJdGVtIHNldFRvb2xUaXA6bV9jbGllbnQtPml0ZW1Ub29sVGlwKGkp
XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCQlJR05PUkVfV0FSTklO
R19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAvLyBBbGxvdyB0
aGUgYWNjZXNzaWJsZSB0ZXh0IG9mIHRoZSBpdGVtIHRvIGJlIG92ZXJyaWRkZW4gaWYgbmVjZXNz
YXJ5LgogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkg
ewogICAgICAgICAgICAgTlNTdHJpbmcgKmFjY2Vzc2liaWxpdHlPdmVycmlkZSA9IG1fY2xpZW50
LT5pdGVtQWNjZXNzaWJpbGl0eVRleHQoaSk7CiAgICAgICAgICAgICBpZiAoW2FjY2Vzc2liaWxp
dHlPdmVycmlkZSBsZW5ndGhdKQogICAgICAgICAgICAgICAgIFttZW51SXRlbSBhY2Nlc3NpYmls
aXR5U2V0T3ZlcnJpZGVWYWx1ZTphY2Nlc3NpYmlsaXR5T3ZlcnJpZGUgZm9yQXR0cmlidXRlOk5T
QWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uQXR0cmlidXRlXTsKICAgICAgICAgfQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorCQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0
Q2xpZW50LmgKaW5kZXggYzhkMzNlYjE4OWE2ZjMxZDVjY2JkZTE4ZWQ1N2I2ZmU1NGNmZjdkNC4u
NTc1YTM0OGZjYjVlNTc1MDI1ZjM4YmI0YjQ4MTdmNTlkZDc1YWU0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQWx0
ZXJuYXRpdmVUZXh0Q2xpZW50LmgKQEAgLTUwLDE0ICs1MCwxMSBAQCBwdWJsaWM6CiAjZW5kaWYK
IHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNpZiBkZWZpbmVkKF9faGFzX3dhcm5pbmcpICYmIF9faGFzX3dhcm5pbmcoIi1XdW51c2Vk
LXByaXZhdGUtZmllbGQiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51
c2VkLXByaXZhdGUtZmllbGQiCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZF
TCgiLVd1bnVzZWQtcHJpdmF0ZS1maWVsZCIpCiAjZW5kaWYKICAgICBXZWJWaWV3KiBtX3dlYlZp
ZXc7CiAjaWYgUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bnVzZWQtcHJpdmF0ZS1maWVsZCIp
CiAjZW5kaWYKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpCiAgICAgQ29ycmVjdGlvblBh
bmVsIG1fY29ycmVjdGlvblBhbmVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0KaW5kZXggYTU5MjRmNDdlMDY3MmNl
NmE1NDQxOTg4MTQwNTdhNmY3ZDY4ZGNlMi4uMTAyMTVmM2ZhMjQ0ODE2NzY3Nzc0ZjIyMDE1NGU4
YjJjZGQyNWEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRHJhZ0NsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCkBAIC0xMzMsMTAgKzEzMyw5IEBAIHZvaWQgV2Vi
RHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJdGVtIGRyYWdJdGVtLCBEYXRhVHJhbnNmZXImIGRh
dGFUcmFuc2ZlciwgRnJhCiAgICAgICAgICAgICBSZXBvcnREaXNjYXJkZWREZWxlZ2F0ZUV4Y2Vw
dGlvbihzZWxlY3RvciwgZXhjZXB0aW9uKTsKICAgICAgICAgfQogICAgIH0gZWxzZQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCQlJR05PUkVfV0FSTklOR19DTEFORygiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBbdG9wSFRNTFZpZXcgZHJhZ0ltYWdl
OmRyYWdOU0ltYWdlIGF0OmRyYWdMb2NhdGlvbkluQ29udGVudENvb3JkaW5hdGVzIG9mZnNldDpO
U1plcm9TaXplIGV2ZW50OmV2ZW50IHBhc3RlYm9hcmQ6cGFzdGVib2FyZCBzb3VyY2U6c291cmNl
SFRNTFZpZXcgc2xpZGVCYWNrOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJ
CUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
fQogCiB2b2lkIFdlYkRyYWdDbGllbnQ6OmJlZ2luRHJhZyhEcmFnSXRlbSBkcmFnSXRlbSwgRnJh
bWUmIGZyYW1lLCBjb25zdCBJbnRQb2ludCYgbW91c2VEb3duUG9zaXRpb24sIGNvbnN0IEludFBv
aW50JiBtb3VzZURyYWdnZWRQb3NpdGlvbiwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIERy
YWdTb3VyY2VBY3Rpb24gZHJhZ1NvdXJjZUFjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KaW5kZXggODZiZTZlNGUzNjcyYjdkMWJlOGU4N2U1NjQ1Y2Q3YmMwNmM1ZmU4Zi4uN2Y4NDE2
Y2M0ZDk1ZDVjOTQ4NjkwOTFjZTQxZTZmMDlkOTNkODE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQubW0KQEAgLTMwOCwxMCArMzA4LDkgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiBkb2MKIAog
ICAgIGlmICghbWFpblJlc291cmNlTG9hZGVyKSB7CiAgICAgICAgIC8vIFRoZSByZXNvdXJjZSBo
YXMgYWxyZWFkeSBiZWVuIGNhY2hlZCwgb3IgdGhlIGNvbnZlcnNpb24gaXMgYmVpbmcgYXR0bXB0
ZWQgd2hlbiBub3QgY2FsbGluZyBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KCkuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJCUlHTk9SRV9XQVJOSU5H
X0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIFdlYkRvd25sb2Fk
ICp3ZWJEb3dubG9hZCA9IFtbV2ViRG93bmxvYWQgYWxsb2NdIGluaXRXaXRoUmVxdWVzdDpyZXF1
ZXN0Lm5zVVJMUmVxdWVzdChIVFRQQm9keVVwZGF0ZVBvbGljeTo6VXBkYXRlSFRUUEJvZHkpIGRl
bGVnYXRlOlt3ZWJWaWV3IGRvd25sb2FkRGVsZWdhdGVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgICAgIFt3ZWJEb3dubG9hZCBhdXRvcmVsZWFzZV07CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC0yMzQyLDEwICsyMzQxLDkgQEAgc3RhdGljIE5TSW1hZ2UgKndlYkdl
dE5TSW1hZ2UoSW1hZ2UqIGltYWdlLCBOU1NpemUgc2l6ZSkKICAgICBpZiAoIW5zSW1hZ2UpCiAg
ICAgICAgIHJldHVybiBuaWw7CiAgICAgaWYgKCFOU0VxdWFsU2l6ZXMoW25zSW1hZ2Ugc2l6ZV0s
IHNpemUpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJCUlHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIFtuc0lt
YWdlIHNldFNjYWxlc1doZW5SZXNpemVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogICAgICAgICBbbnNJbWFnZSBzZXRTaXplOnNpemVdOwogICAgIH0KICAgICByZXR1cm4g
bnNJbWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rv
ci9XZWJOb2RlSGlnaGxpZ2h0Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVj
dG9yL1dlYk5vZGVIaWdobGlnaHQubW0KaW5kZXggOTFiNjViZWM5NGJmODk0ZjQxNjU0YmU5NGJl
ZGEzMzFkOWVlZWQ5MC4uMTU0ZDYyZjE5OTEzNDAwZTI1MTk1MzExYzRlYmRhN2UzNDJlYmExZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVI
aWdobGlnaHQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dl
Yk5vZGVIaWdobGlnaHQubW0KQEAgLTI2NiwxMCArMjY2LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAgICAgQVNTRVJUKFtfdGFyZ2V0VmlldyB3aW5kb3ddKTsKIAogICAgIE5TUmVjdCBo
aWdobGlnaHRXaW5kb3dGcmFtZSA9IFtfdGFyZ2V0VmlldyBjb252ZXJ0UmVjdDpbX3RhcmdldFZp
ZXcgdmlzaWJsZVJlY3RdIHRvVmlldzpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgaGlnaGxpZ2h0V2luZG93RnJhbWUub3JpZ2luID0gW1tfdGFyZ2V0VmlldyB3aW5k
b3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46aGlnaGxpZ2h0V2luZG93RnJhbWUub3JpZ2luXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIHJldHVybiBoaWdobGlnaHRXaW5kb3dG
cmFtZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rv
ci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYklu
c3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbQppbmRleCBlN2NkNWU0NjJkZjI2OGZhZDIw
NmRkYTUxMmRkNTMzMzUzYjE5MDQ2Li5hMmNiMWIxYjVhMWIwMzUwOWMzNmQwYTdiZmM4MGYzMWU2
YWE3NDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3Iv
V2ViTm9kZUhpZ2hsaWdodFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
SW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHRWaWV3Lm1tCkBAIC05OCwxMCArOTgsOSBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogICAgICAgICBBU1NFUlQoW1tOU0dyYXBoaWNzQ29udGV4
dCBjdXJyZW50Q29udGV4dF0gaXNGbGlwcGVkXSk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0IGNvbnRleHQoKFBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0KilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1Bv
cnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwkJSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIFtfd2ViTm9kZUhp
Z2hsaWdodCBpbnNwZWN0b3JDb250cm9sbGVyXS0+ZHJhd0hpZ2hsaWdodChjb250ZXh0KTsKICAg
ICAgICAgW05TR3JhcGhpY3NDb250ZXh0IHJlc3RvcmVHcmFwaGljc1N0YXRlXTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJDbGlwVmlldy5tbQppbmRleCA1
ZmQ1YzE0MjcwMmIxODZlYTk0MDdmMzhmYzBlM2M5MzZiNDdiNDZhLi4zNDIzZDA4MDI4ZDIyNDQ4
NGYyYmE2YTY5MTY0MzQ5MTdmNzM4ZTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViQ2xpcFZpZXcubW0KQEAgLTY2LDggKzY2LDcgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAvLyBJbiBXZWJIVE1MVmlldywgd2Ugc2V0IGEg
Y2xpcC4gVGhpcyBpcyBub3QgdHlwaWNhbCB0byBkbyBpbiBhbgogICAgIC8vIE5TVmlldywgYW5k
IHdoaWxlIGNvcnJlY3QgZm9yIGFueSBvbmUgaW52b2NhdGlvbiBvZiBkcmF3UmVjdDosCiAgICAg
Ly8gaXQgY2F1c2VzIHNvbWUgYmFkIHByb2JsZW1zIGlmIHRoYXQgY2xpcCBpcyBjYWNoZWQgYmV0
d2VlbiBjYWxscy4KQEAgLTc4LDcgKzc3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAg
ICAgLy8gU2VlIHRoZXNlIGJ1Z3MgZm9yIG1vcmUgaW5mb3JtYXRpb246CiAgICAgLy8gPHJkYXI6
Ly9wcm9ibGVtLzM0MDkzMTU+OiBSRUdSRVNTU0lPTiAoN0I1OC03QjYwKT86IFNhZmFyaSBkcmF3
cyBibGFuayBmcmFtZXMgb24gbWFjb3N4LmFwcGxlLmNvbSBwZXJmIHBhZ2UKICAgICBbc2VsZiBy
ZWxlYXNlR1N0YXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FS
TklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIHJldHVy
biBzZWxmOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0K
aW5kZXggNGYwMDdkMDNhMGFlNWQwNDk4NzFmZTQ0MzhkM2RkYWM2NTBiMjYwMy4uNjM3ZmE0MTkx
ZmI0MDdhZGY5MzkyYzQ3YjE0ZmJiZWEzYTk1MGJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC00NDMsMTAgKzQ0Myw5IEBAIHN0YXRpYyBOU1VS
TCAqY3JlYXRlVW5pcXVlV2ViRGF0YVVSTCgpOwogICAgICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3
ID0gZnJhbWUtPnZpZXcoKSkgewogICAgICAgICAgICAgdmlldy0+c2V0VHJhbnNwYXJlbnQoIWRy
YXdzQmFja2dyb3VuZCk7CiAjaWYgIVBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKwkJCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgICAgICAgICBDb2xvciBjb2xvciA9IGNvbG9yRnJvbU5TQ29sb3Io
W2JhY2tncm91bmRDb2xvciBjb2xvclVzaW5nQ29sb3JTcGFjZU5hbWU6TlNEZXZpY2VSR0JDb2xv
clNwYWNlXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJCQlJR05PUkVfV0FSTklO
R19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICNlbHNlCiAgICAgICAg
ICAgICBDb2xvciBjb2xvciA9IENvbG9yKGJhY2tncm91bmRDb2xvcik7CiAjZW5kaWYKQEAgLTYy
MiwxMCArNjIxLDkgQEAgc3RhdGljIGlubGluZSBXZWJEYXRhU291cmNlICpkYXRhU291cmNlKERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIpCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBBU1NFUlQoW1tO
U0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gaXNGbGlwcGVkXSk7CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIENHQ29udGV4dFJlZiBjdHggPSBzdGF0aWNfY2Fz
dDxDR0NvbnRleHRSZWY+KFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdyYXBo
aWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5H
X0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogI2Vsc2UKICAgICBDR0Nv
bnRleHRSZWYgY3R4ID0gV0tHZXRDdXJyZW50R3JhcGhpY3NDb250ZXh0KCk7CiAjZW5kaWYKQEAg
LTIyMDcsMTAgKzIyMDUsOSBAQCBzdGF0aWMgV2ViRnJhbWVMb2FkVHlwZSB0b1dlYkZyYW1lTG9h
ZFR5cGUoRnJhbWVMb2FkVHlwZSBmcmFtZUxvYWRUeXBlKQogICAgIGlmICghQVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgewogICAgICAgICBBWE9iamVjdENhY2hlOjplbmFi
bGVBY2Nlc3NpYmlsaXR5KCk7CiAjaWYgIVBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICAgICAgQVhPYmplY3RDYWNoZTo6c2V0RW5oYW5jZWRVc2VySW50
ZXJmYWNlQWNjZXNzaWJpbGl0eShbW05TQXBwIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpO
U0FjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VBdHRyaWJ1dGVdIGJvb2xWYWx1ZV0p
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCQlJR05PUkVfV0FSTklOR19DTEFOR19F
TkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICNlbmRpZgogICAgIH0KICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNv
bnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3Jl
ZW5Db250cm9sbGVyLm1tCmluZGV4IDc1M2RjZWIyOGQzMGU2YTkwZjQwMTdkOWYwMWUzZDRlZGZm
ZjE1MzkuLjExYzQzMzVkMTI3MWJjZmUyNDljNzA2MDhiOTRjMTAzZmQ1YjZmMzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xs
ZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVu
Q29udHJvbGxlci5tbQpAQCAtMjA3LDExICsyMDcsMTAgQEAgc3RhdGljIE5TUmVjdCBjb252ZXJ0
UmVjdFRvU2NyZWVuKE5TV2luZG93ICp3aW5kb3csIE5TUmVjdCByZWN0KQogICAgIFJldGFpblB0
cjxDR0ltYWdlUmVmPiB3ZWJWaWV3Q29udGVudHMgPSBhZG9wdENGKENHV2luZG93TGlzdENyZWF0
ZUltYWdlKE5TUmVjdFRvQ0dSZWN0KHdlYlZpZXdGcmFtZSksIGtDR1dpbmRvd0xpc3RPcHRpb25J
bmNsdWRpbmdXaW5kb3csIHdpbmRvd0lELCBrQ0dXaW5kb3dJbWFnZVNob3VsZEJlT3BhcXVlKSk7
CiAgICAgCiAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBpbiBiZWdhbkVu
dGVyRnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6ZmluYWxGcmFtZToKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgIE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKICAgICBbW3Nl
bGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAKICAgICBOU1Jlc3BvbmRlciAqd2ViV2luZG93Rmlyc3RSZXNwb25kZXIgPSBbW193ZWJW
aWV3IHdpbmRvd10gZmlyc3RSZXNwb25kZXJdOwogICAgIFtbc2VsZiB3aW5kb3ddIHNldEZyYW1l
OnNjcmVlbkZyYW1lIGRpc3BsYXk6Tk9dOwpAQCAtMjY4LDExICsyNjcsMTAgQEAgc3RhdGljIHZv
aWQgc2V0Q2xpcFJlY3RGb3JXaW5kb3coTlNXaW5kb3cgKndpbmRvdywgTlNSZWN0IGNsaXBSZWN0
KQogICAgIF9pc0VudGVyaW5nRnVsbFNjcmVlbiA9IE5POwogICAgIAogICAgIGlmIChjb21wbGV0
ZWQpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwkJSUdOT1JFX1dBUk5J
TkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgLy8gU2NyZWVu
IHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBhdCB0aGUgZW5kIG9mIHRoaXMgYmxvY2sKICAgICAg
ICAgTlNEaXNhYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorCQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICAgICAgW3NlbGYgX2RvY3VtZW50XS0+c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihmYWxz
ZSk7CiAgICAgICAgIFtzZWxmIF9kb2N1bWVudF0tPndlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZv
ckVsZW1lbnQoX2VsZW1lbnQuZ2V0KCkpOwogICAgICAgICAKQEAgLTI5NCwxMCArMjkyLDkgQEAg
c3RhdGljIHZvaWQgc2V0Q2xpcFJlY3RGb3JXaW5kb3coTlNXaW5kb3cgKndpbmRvdywgTlNSZWN0
IGNsaXBSZWN0KQogICAgICAgICAKICAgICAgICAgW19iYWNrZ3JvdW5kV2luZG93LmdldCgpIG9y
ZGVyT3V0OnNlbGZdOwogICAgICAgICBbX2JhY2tncm91bmRXaW5kb3cuZ2V0KCkgc2V0RnJhbWU6
TlNaZXJvUmVjdCBkaXNwbGF5OllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgICAgIE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorCQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICB9IGVsc2UKICAgICAgICAgW19zY2FsZUFuaW1hdGlvbi5nZXQoKSBzdG9w
QW5pbWF0aW9uXTsKIH0KQEAgLTMxNSwxMiArMzEyLDExIEBAIHN0YXRpYyB2b2lkIHNldENsaXBS
ZWN0Rm9yV2luZG93KE5TV2luZG93ICp3aW5kb3csIE5TUmVjdCBjbGlwUmVjdCkKICAgICAgICAg
cmV0dXJuOwogICAgIF9pc0Z1bGxTY3JlZW4gPSBOTzsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBpbiBiZWdh
bkV4aXRGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTpmaW5hbEZyYW1lOgogICAgIE5TRGlzYWJs
ZVNjcmVlblVwZGF0ZXMoKTsKICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpOT107
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5E
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBfZmluYWxGcmFtZSA9IHNjcmVl
blJlY3RPZkNvbnRlbnRzKF9lbGVtZW50LmdldCgpKTsKIApAQCAtMzYwLDExICszNTYsMTAgQEAg
c3RhdGljIHZvaWQgc2V0Q2xpcFJlY3RGb3JXaW5kb3coTlNXaW5kb3cgKndpbmRvdywgTlNSZWN0
IGNsaXBSZWN0KQogICAgIAogICAgIFtzZWxmIF91cGRhdGVNZW51QW5kRG9ja0ZvckZ1bGxTY3Jl
ZW5dOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5J
TkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAvLyBTY3JlZW4gdXBk
YXRlcyB0byBiZSByZS1lbmFibGVkIGF0IHRoZSBlbmQgb2YgdGhpcyBmdW5jdGlvbgogICAgIE5T
RGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAog
ICAgIFtzZWxmIF9kb2N1bWVudF0tPnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oZmFsc2UpOwogICAg
IFtzZWxmIF9kb2N1bWVudF0tPndlYmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChfZWxl
bWVudC5nZXQoKSk7CkBAIC0zOTEsMTAgKzM4Niw5IEBAIHN0YXRpYyB2b2lkIHNldENsaXBSZWN0
Rm9yV2luZG93KE5TV2luZG93ICp3aW5kb3csIE5TUmVjdCBjbGlwUmVjdCkKIAogICAgIFtbX3dl
YlZpZXcgd2luZG93XSBtYWtlS2V5QW5kT3JkZXJGcm9udDpzZWxmXTsKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgTlNFbmFibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIC0gKHZvaWQpcGVyZm9ybUNsb3NlOihpZClzZW5k
ZXIKQEAgLTUxMywxMCArNTA3LDkgQEAgc3RhdGljIE5TUmVjdCB3aW5kb3dGcmFtZUZyb21BcHBh
cmVudEZyYW1lcyhOU1JlY3Qgc2NyZWVuRnJhbWUsIE5TUmVjdCBpbml0aWFsRnIKICAgICAKICAg
ICAvLyBzZXRDbGlwUmVjdEZvcldpbmRvdyB0YWtlcyB3aW5kb3cgY29vcmRpbmF0ZXMsIHNvIGNv
bnZlcnQgZnJvbSBzY3JlZW4gY29vcmRpbmF0ZXMgaGVyZToKICAgICBOU1JlY3QgZmluYWxCb3Vu
ZHMgPSBfZmluYWxGcmFtZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJ
R05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGZp
bmFsQm91bmRzLm9yaWdpbiA9IFtbc2VsZiB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6Zmlu
YWxCb3VuZHMub3JpZ2luXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVf
V0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBzZXRD
bGlwUmVjdEZvcldpbmRvdyhzZWxmLndpbmRvdywgZmluYWxCb3VuZHMpOwogICAgIAogICAgIFtb
c2VsZiB3aW5kb3ddIG1ha2VLZXlBbmRPcmRlckZyb250OnNlbGZdOwpAQCAtNTQzLDE2ICs1MzYs
MTQgQEAgc3RhdGljIE5TUmVjdCB3aW5kb3dGcmFtZUZyb21BcHBhcmVudEZyYW1lcyhOU1JlY3Qg
c2NyZWVuRnJhbWUsIE5TUmVjdCBpbml0aWFsRnIKICAgICAKICAgICBbX2JhY2tncm91bmRXaW5k
b3cuZ2V0KCkgb3JkZXJXaW5kb3c6TlNXaW5kb3dCZWxvdyByZWxhdGl2ZVRvOltbc2VsZiB3aW5k
b3ddIHdpbmRvd051bWJlcl1dOwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICBbW3NlbGYgd2luZG93XSBkaXNwbGF5SWZOZWVkZWRdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgZGlzYWJs
ZWQgaW4gZW50ZXJGdWxsU2NyZWVuOgogICAgIE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQogCiAtICh2b2lkKV9zdGFydEV4aXRGdWxsU2Ny
ZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJhdGlvbgpAQCAtNTkx
LDIzICs1ODIsMjAgQEAgc3RhdGljIE5TUmVjdCB3aW5kb3dGcmFtZUZyb21BcHBhcmVudEZyYW1l
cyhOU1JlY3Qgc2NyZWVuRnJhbWUsIE5TUmVjdCBpbml0aWFsRnIKICAgICAKICAgICAvLyBzZXRD
bGlwUmVjdEZvcldpbmRvdyB0YWtlcyB3aW5kb3cgY29vcmRpbmF0ZXMsIHNvIGNvbnZlcnQgZnJv
bSBzY3JlZW4gY29vcmRpbmF0ZXMgaGVyZToKICAgICBOU1JlY3QgZmluYWxCb3VuZHMgPSBfZmlu
YWxGcmFtZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FS
TklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGZpbmFsQm91bmRz
Lm9yaWdpbiA9IFtbc2VsZiB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6ZmluYWxCb3VuZHMu
b3JpZ2luXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBzZXRDbGlwUmVjdEZv
cldpbmRvdyhzZWxmLndpbmRvdywgZmluYWxCb3VuZHMpOwogICAgIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQo
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbW3NlbGYgd2luZG93XSBkaXNwbGF5
SWZOZWVkZWRdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAvLyBTY3Jl
ZW4gdXBkYXRlcyBkaXNhYmxlZCBpbiBleGl0RnVsbFNjcmVlbjoKICAgICBOU0VuYWJsZVNjcmVl
blVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklO
R19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggNmE3
YjE0MGJkODVkM2YxM2RlNDFjNmRiZmU1MmEzYzQ0OGQ0NTI1My4uMDY3MzY0MGIyZTQ2ZjlkZjQx
MjcxMTk0NzNjYWYzNDBhNWYwZTZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC02MjQsMTAgKzYyNCw5IEBAIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPE5TSW50ZWdlcj4gdG9UYWcoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogCiAtIChO
U1ZpZXcgKilfd2ViX2JvcmRlclZpZXcKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogICAgIHJldHVybiBfYm9yZGVyVmlldzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
IH0KIAogQGVuZApAQCAtMTQ5NCwxMCArMTQ5Myw5IEBAIHN0YXRpYyBOU0NvbnRyb2xTdGF0ZVZh
bHVlIGtpdChUcmlTdGF0ZSBzdGF0ZSkKIHsKICAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCiAgICAgICAgIGxv
Y2F0aW9uOltbc2VsZiB3aW5kb3ddCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKQogICAgICAgICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25d
XQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9Q
X0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAgICAgICAgIG1vZGlmaWVy
RmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgIHRpbWVz
dGFtcDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2lu
ZG93TnVtYmVyOltbc2VsZiB3aW5kb3ddIHdpbmRvd051bWJlcl0KQEAgLTE1MzgsMTkgKzE1MzYs
MTcgQEAgc3RhdGljIE5TQ29udHJvbFN0YXRlVmFsdWUga2l0KFRyaVN0YXRlIHN0YXRlKQogI2lm
IFBMQVRGT1JNKE1BQykKICAgICBBU1NFUlQoIV9wcml2YXRlLT5zdWJ2aWV3c1NldEFzaWRlKTsK
ICAgICBBU1NFUlQoX3ByaXZhdGUtPnNhdmVkU3Vidmlld3MgPT0gbmlsKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIF9wcml2YXRlLT5zYXZlZFN1YnZpZXdzID0gX3N1YnZp
ZXdzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5H
X0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIC8vIFdlIG5lZWQgdG8ga2Vl
cCB0aGUgbGF5ZXItaG9zdGluZyB2aWV3IGluIHRoZSBzdWJ2aWV3cywgb3RoZXJ3aXNlIHRoZSBs
YXllcnMgZmxhc2guCiAgICAgaWYgKF9wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3KSB7CiAgICAg
ICAgIE5TQXJyYXkqIG5ld1N1YnZpZXdzID0gW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVj
dHM6X3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcsIG5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgICAgIF9zdWJ2aWV3cyA9IG5ld1N1YnZpZXdzOwogICAgIH0gZWxz
ZQogICAgICAgICBfc3Vidmlld3MgPSBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgX3ByaXZhdGUtPnN1YnZpZXdzU2V0QXNpZGUgPSBZRVM7CiAjZW5kaWYKICB9CkBAIC0x
NTYwLDE0ICsxNTU2LDEzIEBAIHN0YXRpYyBOU0NvbnRyb2xTdGF0ZVZhbHVlIGtpdChUcmlTdGF0
ZSBzdGF0ZSkKICNpZiBQTEFURk9STShNQUMpCiAgICAgQVNTRVJUKF9wcml2YXRlLT5zdWJ2aWV3
c1NldEFzaWRlKTsKICAgICBpZiAoX3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcpIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgW19zdWJ2aWV3cyByZWxlYXNlXTsK
ICAgICAgICAgX3N1YnZpZXdzID0gX3ByaXZhdGUtPnNhdmVkU3Vidmlld3M7CiAgICAgfSBlbHNl
IHsKICAgICAgICAgQVNTRVJUKF9zdWJ2aWV3cyA9PSBuaWwpOwogICAgICAgICBfc3Vidmlld3Mg
PSBfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3czsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgfQogICAgIF9wcml2YXRlLT5zYXZlZFN1YnZpZXdzID0gbmlsOwogICAgIF9wcml2YXRl
LT5zdWJ2aWV3c1NldEFzaWRlID0gTk87CkBAIC0yMTEwLDEwICsyMTA1LDkgQEAgc3RhdGljIGJv
b2wgbW91c2VFdmVudElzUGFydE9mQ2xpY2tPckRyYWcoTlNFdmVudCAqZXZlbnQpCiAKICAgICBO
U0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5
cGVMZWZ0TW91c2VEcmFnZ2VkCiAgICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5kb3ddCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1Bf
TEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogICAgICAgICBjb252ZXJ0U2NyZWVu
VG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpCiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRd
IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNp
bmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2luZG93TnVtYmVyOltbc2VsZiB3aW5kb3ddIHdp
bmRvd051bWJlcl0KQEAgLTM5ODIsMTAgKzM5NzYsOSBAQCBzdGF0aWMgQk9PTCBjdXJyZW50U2Ny
b2xsSXNCbGl0KE5TVmlldyAqY2xpcFZpZXcpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIC8vIE9u
bHkgZG8gdGhlIHN5bmNocm9uaXphdGlvbiBkYW5jZSBpZiB3ZSdyZSBkcmF3aW5nIGludG8gdGhl
IHdpbmRvdywgb3RoZXJ3aXNlCiAgICAgLy8gd2UgcmlzayBkaXNhYmxpbmcgc2NyZWVuIHVwZGF0
ZXMgd2hlbiBubyBmbHVzaCBpcyBwZW5kaW5nLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgaWYgKFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gPT0gW1tzZWxm
IHdpbmRvd10gZ3JhcGhpY3NDb250ZXh0XSAmJiBbd2ViVmlldyBfbmVlZHNPbmVTaG90RHJhd2lu
Z1N5bmNocm9uaXphdGlvbl0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwkJSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
ICAgIC8vIERpc2FibGUgc2NyZWVuIHVwZGF0ZXMgdG8gbWluaW1pemUgdGhlIGNoYW5jZXMgb2Yg
dGhlIHJhY2UgYmV0d2VlbiB0aGUgQ0EKICAgICAgICAgLy8gZGlzcGxheSBsaW5rIGFuZCBBcHBL
aXQgZHJhd2luZyBjYXVzaW5nIGZsYXNoZXMuCiAgICAgICAgIFtbc2VsZiB3aW5kb3ddIGRpc2Fi
bGVTY3JlZW5VcGRhdGVzVW50aWxGbHVzaF07CkBAIC00MjE3LDEyICs0MjEwLDExIEBAIHN0YXRp
YyBCT09MIGN1cnJlbnRTY3JvbGxJc0JsaXQoTlNWaWV3ICpjbGlwVmlldykKICAgICBpZiAoRnJh
bWUqIGNvcmVmcmFtZSA9IGNvcmUoW3NlbGYgX2ZyYW1lXSkpCiAgICAgICAgIGNvcmVmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkubW91c2VEb3duKGV2ZW50KTsKICNlbHNlCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICBOU0lucHV0TWFuYWdlciAqY3VycmVudElucHV0TWFuYWdlciA9
IFtOU0lucHV0TWFuYWdlciBjdXJyZW50SW5wdXRNYW5hZ2VyXTsKIAogICAgIGlmICghW2N1cnJl
bnRJbnB1dE1hbmFnZXIgd2FudHNUb0hhbmRsZU1vdXNlRXZlbnRzXSB8fCAhW2N1cnJlbnRJbnB1
dE1hbmFnZXIgaGFuZGxlTW91c2VFdmVudDpldmVudF0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgICAgIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZW5kUmV2
ZXJ0aW5nQ2hhbmdlOk5PIG1vdmVMZWZ0Ok5PXTsKIAogICAgICAgICAvLyBJZiB0aGUgd2ViIHBh
Z2UgaGFuZGxlcyB0aGUgY29udGV4dCBtZW51IGV2ZW50IGFuZCBtZW51Rm9yRXZlbnQ6IHJldHVy
bnMgbmlsLCB3ZSdsbCBnZXQgY29udHJvbCBjbGljayBldmVudHMgaGVyZS4KQEAgLTQyNzcsMTIg
KzQyNjksMTEgQEAgc3RhdGljIEJPT0wgY3VycmVudFNjcm9sbElzQmxpdChOU1ZpZXcgKmNsaXBW
aWV3KQogICAgIC8vIHRoZSBjdXJyZW50IGV2ZW50IHByZXZlbnRzIHRoYXQgZnJvbSBjYXVzaW5n
IGEgcHJvYmxlbSBpbnNpZGUgV2ViS2l0IG9yIEFwcEtpdCBjb2RlLgogICAgIFtbZXZlbnQgcmV0
YWluXSBhdXRvcmVsZWFzZV07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAg
IE5TSW5wdXRNYW5hZ2VyICpjdXJyZW50SW5wdXRNYW5hZ2VyID0gW05TSW5wdXRNYW5hZ2VyIGN1
cnJlbnRJbnB1dE1hbmFnZXJdOwogICAgIGlmIChbY3VycmVudElucHV0TWFuYWdlciB3YW50c1Rv
SGFuZGxlTW91c2VFdmVudHNdICYmIFtjdXJyZW50SW5wdXRNYW5hZ2VyIGhhbmRsZU1vdXNlRXZl
bnQ6ZXZlbnRdKQogICAgICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAKICAgICBbc2VsZiByZXRhaW5dOwogCkBAIC00NDQ3LDEyICs0NDM4LDExIEBAIHN0YXRpYyBi
b29sIG1hdGNoZXNFeHRlbnNpb25PckVxdWl2YWxlbnQoTlNTdHJpbmcgKmZpbGVuYW1lLCBOU1N0
cmluZyAqZXh0ZW5zaW9uCiAgICAgW3NlbGYgX3NldE1vdXNlRG93bkV2ZW50Om5pbF07CiAKICNp
ZiBQTEFURk9STShNQUMpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdO
T1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBOU0lu
cHV0TWFuYWdlciAqY3VycmVudElucHV0TWFuYWdlciA9IFtOU0lucHV0TWFuYWdlciBjdXJyZW50
SW5wdXRNYW5hZ2VyXTsKICAgICBpZiAoW2N1cnJlbnRJbnB1dE1hbmFnZXIgd2FudHNUb0hhbmRs
ZU1vdXNlRXZlbnRzXSAmJiBbY3VycmVudElucHV0TWFuYWdlciBoYW5kbGVNb3VzZUV2ZW50OmV2
ZW50XSkKICAgICAgICAgcmV0dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlH
Tk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogI2Vu
ZGlmCiAKICAgICBbc2VsZiByZXRhaW5dOwpAQCAtNDgwNCwxMCArNDc5NCw5IEBAIHN0YXRpYyBS
ZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFt
ZSkKIC0gKHZvaWQpX2VuZFByaW50TW9kZUFuZFJlc3RvcmVXaW5kb3dBdXRvZGlzcGxheQogewog
ICAgIFtzZWxmIF9lbmRQcmludE1vZGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKIH0KIAogLSAodm9pZClfZGVsYXllZEVuZFByaW50TW9kZTooTlNQcmlu
dE9wZXJhdGlvbiAqKWluaXRpYXRpbmdPcGVyYXRpb24KQEAgLTQ4NDIsMTAgKzQ4MzEsOSBAQCBz
dGF0aWMgUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBj
b3JlRnJhbWUpCiAgICAgLy8gTXVzdCBkbyB0aGlzIGV4cGxpY2l0IGRpc3BsYXkgaGVyZSwgYmVj
YXVzZSBvdGhlcndpc2UgdGhlIHZpZXcgbWlnaHQgcmVkaXNwbGF5IHdoaWxlIHRoZSBwcmludAog
ICAgIC8vIHNoZWV0IHdhcyB1cCwgdXNpbmcgcHJpbnRlciBmb250cyAoYW5kIGxvb2tpbmcgZGlm
ZmVyZW50KS4KICAgICBbc2VsZiBkaXNwbGF5SWZOZWVkZWRdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6Tk9dOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgW1tzZWxmIF93ZWJWaWV3XSBfYWRqdXN0
UHJpbnRpbmdNYXJnaW5zRm9ySGVhZGVyQW5kRm9vdGVyXTsKICAgICBOU1ByaW50T3BlcmF0aW9u
ICpwcmludE9wZXJhdGlvbiA9IFtOU1ByaW50T3BlcmF0aW9uIGN1cnJlbnRPcGVyYXRpb25dOwpA
QCAtNTAzMywxMCArNTAyMSw5IEBAIHN0YXRpYyBSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVu
dEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKICNpZiBQTEFURk9STShJT1MpCiAgICAg
ICAgIHJldHVybiBbYWNjVHJlZSBhY2Nlc3NpYmlsaXR5SGl0VGVzdDpwb2ludF07CiAjZWxzZQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCQlJR05PUkVfV0FSTklOR19DTEFO
RygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBOU1BvaW50IHdpbmRvd0Nv
b3JkID0gW1tzZWxmIHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpwb2ludF07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICByZXR1cm4gW2FjY1RyZWUgYWNjZXNzaWJp
bGl0eUhpdFRlc3Q6W3NlbGYgY29udmVydFBvaW50OndpbmRvd0Nvb3JkIGZyb21WaWV3Om5pbF1d
OwogI2VuZGlmCiAgICAgfQpAQCAtNTA3NCwxMCArNTA2MSw5IEBAIHN0YXRpYyBSZWZQdHI8S2V5
Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKIAogLSAo
TlNEaWN0aW9uYXJ5ICopX2ZvbnRBdHRyaWJ1dGVzRnJvbUZvbnRQYXN0ZWJvYXJkCiB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBOU1Bhc3RlYm9hcmQgKmZvbnRQYXN0ZWJv
YXJkID0gW05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6TlNGb250UGJvYXJkXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBpZiAoZm9udFBhc3RlYm9hcmQgPT0gbmls
KQogICAgICAgICByZXR1cm4gbmlsOwogICAgIE5TRGF0YSAqZGF0YSA9IFtmb250UGFzdGVib2Fy
ZCBkYXRhRm9yVHlwZTpsZWdhY3lGb250UGFzdGVib2FyZFR5cGUoKV07CkBAIC01MTAxLDEwICs1
MDg3LDkgQEAgc3RhdGljIFJlZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVu
dChGcmFtZSogY29yZUZyYW1lKQogCiAtIChOU1N0cmluZyAqKV9jb2xvckFzU3RyaW5nOihOU0Nv
bG9yICopY29sb3IKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05P
UkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5TQ29s
b3IgKnJnYkNvbG9yID0gW2NvbG9yIGNvbG9yVXNpbmdDb2xvclNwYWNlTmFtZTpOU0RldmljZVJH
QkNvbG9yU3BhY2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJO
SU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIC8vIEZJWE1F
OiBJZiBjb2xvciBpcyBub24tbmlsIGFuZCByZ2JDb2xvciBpcyBuaWwsIHRoYXQgbWVhbnMgd2Ug
Z290IHNvbWUga2luZAogICAgIC8vIG9mIGZhbmN5IGNvbG9yIHRoYXQgY2FuJ3QgYmUgY29udmVy
dGVkIHRvIFJHQi4gQ2hhbmdpbmcgdGhhdCB0byAidHJhbnNwYXJlbnQiCiAgICAgLy8gbWlnaHQg
bm90IGJlIGdyZWF0LCBidXQgaXQncyBwcm9iYWJseSBPSy4KQEAgLTUyODEsMTAgKzUyNjYsOSBA
QCBzdGF0aWMgUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1l
KiBjb3JlRnJhbWUpCiAKICAgICAvLyBQdXQgUlRGIHdpdGggZm9udCBhdHRyaWJ1dGVzIG9uIHRo
ZSBwYXN0ZWJvYXJkLgogICAgIC8vIE1heWJlIGxhdGVyIHdlIHNob3VsZCBhZGQgYSBwYXN0ZWJv
YXJkIHR5cGUgdGhhdCBjb250YWlucyBDU1MgdGV4dCBmb3IgIm5hdGl2ZSIgY29weSBhbmQgcGFz
dGUgZm9udC4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FS
TklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5TUGFzdGVib2Fy
ZCAqZm9udFBhc3RlYm9hcmQgPSBbTlNQYXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRoTmFtZTpOU0Zv
bnRQYm9hcmRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5H
X0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtmb250UGFzdGVi
b2FyZCBkZWNsYXJlVHlwZXM6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0OmxlZ2FjeUZvbnRQYXN0
ZWJvYXJkVHlwZSgpXSBvd25lcjpuaWxdOwogICAgIFtmb250UGFzdGVib2FyZCBzZXREYXRhOltz
ZWxmIF9zZWxlY3Rpb25TdGFydEZvbnRBdHRyaWJ1dGVzQXNSVEZdIGZvclR5cGU6bGVnYWN5Rm9u
dFBhc3RlYm9hcmRUeXBlKCldOwogfQpAQCAtNjEyMCwxNSArNjEwNCwxNCBAQCBzdGF0aWMgQk9P
TCB3cml0aW5nRGlyZWN0aW9uS2V5QmluZGluZ3NFbmFibGVkKCkKICAgICBjb25zdCBWZWN0b3I8
S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMgPSBwYXJhbWV0ZXJzLT5ldmVudC0+a2V5cHJlc3ND
b21tYW5kcygpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb21tYW5kcy5zaXplKCk7
ICsraSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCQlJR05PUkVfV0FS
TklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBpZiAoY29t
bWFuZHNbaV0uY29tbWFuZE5hbWUgPT0gImluc2VydFRleHQ6IikKICAgICAgICAgICAgIFtzZWxm
IGluc2VydFRleHQ6Y29tbWFuZHNbaV0udGV4dF07CiAgICAgICAgIGVsc2UgaWYgKGNvbW1hbmRz
W2ldLmNvbW1hbmROYW1lID09ICJub29wOiIpCiAgICAgICAgICAgICA7IC8vIERvIG5vdGhpbmcu
IFRoaXMgY2FzZSBjYW4gYmUgcmVtb3ZlZCBvbmNlIDxyZGFyOi8vcHJvYmxlbS85MDI1MDEyPiBp
cyBmaXhlZC4KICAgICAgICAgZWxzZQogICAgICAgICAgICAgW3NlbGYgZG9Db21tYW5kQnlTZWxl
Y3RvcjpOU1NlbGVjdG9yRnJvbVN0cmluZyhjb21tYW5kc1tpXS5jb21tYW5kTmFtZSldOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICB9CiAgICAgcGFyYW1ldGVycy0+ZXZlbnQt
PmtleXByZXNzQ29tbWFuZHMoKS5jbGVhcigpOwogICAgIHBhcmFtZXRlcnMtPnNob3VsZFNhdmVD
b21tYW5kcyA9IHdhc1NhdmluZ0NvbW1hbmRzOwpAQCAtNjMyNCwxMCArNjMwNyw5IEBAIHN0YXRp
YyBCT09MIHdyaXRpbmdEaXJlY3Rpb25LZXlCaW5kaW5nc0VuYWJsZWQoKQogICAgICAgICAvLyBJ
ZiB3ZSBhcmUgaW4gYSBsYXllci1iYWNrZWQgdmlldywgd2UgbmVlZCB0byBtYW51YWxseSBpbml0
aWFsaXplIHRoZSBnZW9tZXRyeSBmb3Igb3VyIGxheWVyLgogICAgICAgICBbdmlld0xheWVyIHNl
dEJvdW5kczpOU1JlY3RUb0NHUmVjdChbX3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcgYm91bmRz
XSldOwogICAgICAgICBbdmlld0xheWVyIHNldEFuY2hvclBvaW50OkNHUG9pbnRNYWtlKDAsIFtz
ZWxmIGlzRmxpcHBlZF0gPyAxIDogMCldOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorCQlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogICAgICAgICBDR1BvaW50IGxheWVyUG9zaXRpb24gPSBOU1BvaW50VG9DR1BvaW50KFtzZWxm
IGNvbnZlcnRQb2ludFRvQmFzZTpbX3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcgZnJhbWVdLm9y
aWdpbl0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCQlJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgW3ZpZXdMYXll
ciBzZXRQb3NpdGlvbjpsYXllclBvc2l0aW9uXTsKICAgICB9CiAgICAgCkBAIC02NDU3LDEwICs2
NDM5LDkgQEAgc3RhdGljIEJPT0wgd3JpdGluZ0RpcmVjdGlvbktleUJpbmRpbmdzRW5hYmxlZCgp
CiAgICAgICAgIExPRyhUZXh0SW5wdXQsICJ0ZXh0U3RvcmFnZSAtPiBuaWwiKTsKICAgICAgICAg
cmV0dXJuIG5pbDsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJ
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBO
U0F0dHJpYnV0ZWRTdHJpbmcgKnJlc3VsdCA9IFtzZWxmIGF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9t
UmFuZ2U6TlNNYWtlUmFuZ2UoMCwgVUlOVF9NQVgpXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKIAogICAgIExPRyhUZXh0SW5wdXQsICJ0ZXh0U3RvcmFnZSAtPiBcIiVAXCIiLCByZXN1
bHQgPyBbcmVzdWx0IHN0cmluZ10gOiBAIiIpOwogICAgIApAQCAtNjkzOSwxNSArNjkyMCwxNCBA
QCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmlu
ZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogCiAgICAgdW5zaWduZWQgc3RhcnQ7CiAgICAgdW5z
aWduZWQgZW5kOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaWYgKGNvcmVG
cmFtZS0+ZWRpdG9yKCkuZ2V0Q29tcG9zaXRpb25TZWxlY3Rpb24oc3RhcnQsIGVuZCkpCiAgICAg
ICAgIFtbTlNJbnB1dE1hbmFnZXIgY3VycmVudElucHV0TWFuYWdlcl0gbWFya2VkVGV4dFNlbGVj
dGlvbkNoYW5nZWQ6TlNNYWtlUmFuZ2Uoc3RhcnQsIGVuZCAtIHN0YXJ0KSBjbGllbnQ6c2VsZl07
CiAgICAgZWxzZSB7CiAgICAgICAgIGNvcmVGcmFtZS0+ZWRpdG9yKCkuY2FuY2VsQ29tcG9zaXRp
b24oKTsKICAgICAgICAgW1tOU0lucHV0TWFuYWdlciBjdXJyZW50SW5wdXRNYW5hZ2VyXSBtYXJr
ZWRUZXh0QWJhbmRvbmVkOnNlbGZdOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlBERlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBE
RlZpZXcubW0KaW5kZXggMjRkYWM5ZTNhOGZiODkzNGE2NGQxOWNiMWNkMzFhYjkxY2I3ZmQ4NS4u
MTNkOWNkN2JmYWYwMzhhMWNhMGU0ZDM3NWRlZjFhODJhYTAyMTY1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQpAQCAtMTI2LDEwICsxMjYsOSBA
QCBzdGF0aWMgdm9pZCBfYXBwbGljYXRpb25JbmZvRm9yTUlNRVR5cGUoTlNTdHJpbmcgKnR5cGUs
IE5TU3RyaW5nICoqbmFtZSwgTlNJbWFnZQogewogICAgIENGVVJMUmVmIGFwcFVSTCA9IG51bGxw
dHI7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklO
R19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE9TU3RhdHVzIGVycm9y
ID0gTFNDb3B5QXBwbGljYXRpb25Gb3JNSU1FVHlwZSgoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpdHlw
ZSwga0xTUm9sZXNBbGwsICZhcHBVUkwpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
CUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgIGlmIChlcnJvciAhPSBub0VycikKICAgICAgICAgcmV0dXJuOwogICAgIApAQCAtMjI2LDEw
ICsyMjUsOSBAQCBzdGF0aWMgQk9PTCBfUERGU2VsZWN0aW9uc0FyZUVxdWFsKFBERlNlbGVjdGlv
biAqc2VsZWN0aW9uQSwgUERGU2VsZWN0aW9uICpzZWxlYwogLSAodm9pZCljZW50ZXJTZWxlY3Rp
b25JblZpc2libGVBcmVhOihpZClzZW5kZXIKIHsKICAgICAvLyBGSVhNRTogR2V0IHJpZCBvZiB0
aGlzIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzI1MTQ5Mjk0PiBoYXMgYmVlbiBmaXhlZC4KLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdub25udWxsIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV25vbm51bGwiKTsKICAgICBb
UERGU3VidmlldyBzY3JvbGxTZWxlY3Rpb25Ub1Zpc2libGU6bmlsXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1Xbm9ubnVsbCIpOwog
fQogCiAtICh2b2lkKXNjcm9sbFBhZ2VEb3duOihpZClzZW5kZXIKQEAgLTM3MCwxMCArMzY4LDkg
QEAgc3RhdGljIEJPT0wgX1BERlNlbGVjdGlvbnNBcmVFcXVhbChQREZTZWxlY3Rpb24gKnNlbGVj
dGlvbkEsIFBERlNlbGVjdGlvbiAqc2VsZWMKIAogLSAodm9pZClfcmVjdXJzaXZlRGlzcGxheVJl
Y3RJZk5lZWRlZElnbm9yaW5nT3BhY2l0eTooTlNSZWN0KXJlY3QgaXNWaXNpYmxlUmVjdDooQk9P
TClpc1Zpc2libGVSZWN0IHJlY3RJc1Zpc2libGVSZWN0Rm9yVmlldzooTlNWaWV3ICopdmlzaWJs
ZVZpZXcgdG9wVmlldzooQk9PTCl0b3BWaWV3CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IChDR0NvbnRleHRSZWYpW1tOU0dyYXBo
aWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKwlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICAKICAgICBib29sIGFsbG93c1Ntb290aGluZyA9IENHQ29udGV4
dEdldEFsbG93c0ZvbnRTbW9vdGhpbmcoY29udGV4dCk7CiAgICAgYm9vbCBhbGxvd3NTdWJwaXhl
bFF1YW50aXphdGlvbiA9IENHQ29udGV4dEdldEFsbG93c0ZvbnRTdWJwaXhlbFF1YW50aXphdGlv
bihjb250ZXh0KTsKQEAgLTM4NiwxMCArMzgzLDkgQEAgc3RhdGljIEJPT0wgX1BERlNlbGVjdGlv
bnNBcmVFcXVhbChQREZTZWxlY3Rpb24gKnNlbGVjdGlvbkEsIFBERlNlbGVjdGlvbiAqc2VsZWMK
IAogLSAodm9pZClfcmVjdXJzaXZlRGlzcGxheUFsbERpcnR5V2l0aExvY2tGb2N1czooQk9PTClu
ZWVkc0xvY2tGb2N1cyB2aXNSZWN0OihOU1JlY3QpdmlzUmVjdAogewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSAoQ0dDb250ZXh0UmVm
KVtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgCiAgICAgYm9vbCBhbGxvd3NTbW9vdGhpbmcg
PSBDR0NvbnRleHRHZXRBbGxvd3NGb250U21vb3RoaW5nKGNvbnRleHQpOwogICAgIGJvb2wgYWxs
b3dzU3VicGl4ZWxRdWFudGl6YXRpb24gPSBDR0NvbnRleHRHZXRBbGxvd3NGb250U3VicGl4ZWxR
dWFudGl6YXRpb24oY29udGV4dCk7CkBAIC00MDIsMTAgKzM5OCw5IEBAIHN0YXRpYyBCT09MIF9Q
REZTZWxlY3Rpb25zQXJlRXF1YWwoUERGU2VsZWN0aW9uICpzZWxlY3Rpb25BLCBQREZTZWxlY3Rp
b24gKnNlbGVjCiAKIC0gKHZvaWQpX3JlY3Vyc2l2ZTooQk9PTClyZWN1cnNlIGRpc3BsYXlSZWN0
SWdub3JpbmdPcGFjaXR5OihOU1JlY3QpZGlzcGxheVJlY3QgaW5Db250ZXh0OihOU0dyYXBoaWNz
Q29udGV4dCAqKWdyYXBoaWNzQ29udGV4dCB0b3BWaWV3OihCT09MKXRvcFZpZXcKIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gKENH
Q29udGV4dFJlZilbZ3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzUG9ydF07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgCiAgICAgYm9vbCBhbGxvd3NTbW9vdGhpbmcgPSBDR0NvbnRl
eHRHZXRBbGxvd3NGb250U21vb3RoaW5nKGNvbnRleHQpOwogICAgIGJvb2wgYWxsb3dzU3VicGl4
ZWxRdWFudGl6YXRpb24gPSBDR0NvbnRleHRHZXRBbGxvd3NGb250U3VicGl4ZWxRdWFudGl6YXRp
b24oY29udGV4dCk7CkBAIC02NjksMTAgKzY2NCw5IEBAIHN0YXRpYyBCT09MIF9QREZTZWxlY3Rp
b25zQXJlRXF1YWwoUERGU2VsZWN0aW9uICpzZWxlY3Rpb25BLCBQREZTZWxlY3Rpb24gKnNlbGVj
CiAgICAgW1BERlN1YnZpZXcgc2V0Q3VycmVudFNlbGVjdGlvbjpzZWxlY3Rpb25dOwogCiAgICAg
Ly8gRklYTUU6IEdldCByaWQgb2YgdGhpcyBvbmNlIDxyZGFyOi8vcHJvYmxlbS8yNTE0OTI5ND4g
aGFzIGJlZW4gZml4ZWQuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9ubnVsbCIKKwlJR05PUkVfV0FSTklOR19DTEFO
RygiLVdub25udWxsIik7CiAgICAgW1BERlN1YnZpZXcgc2Nyb2xsU2VsZWN0aW9uVG9WaXNpYmxl
Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfRU5EKCItV25vbm51bGwiKTsKICAgICByZXR1cm4gWUVTOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxl
ci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25D
b250cm9sbGVyLm1tCmluZGV4IGM2ZjBlNzM0NWY1ZWU4MmI3MWJjMWM0YWJhMjZjNDBlMjFmZjAz
YTYuLjRjNGU4ZWRmYWZlNzc1YTQ2M2MyOGQ4NTU4NTk2OTJmMWE2YzY4NzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9s
bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBs
ZXRpb25Db250cm9sbGVyLm1tCkBAIC04NCwxMCArODQsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIHsKICAgICBOU1JlY3Qgc2Nyb2xsRnJhbWUgPSBOU01ha2VSZWN0KDAsIDAsIDEwMCwg
MTAwKTsKICAgICBOU1JlY3QgdGFibGVGcmFtZSA9IE5TWmVyb1JlY3Q7ICAgIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgdGFibGVGcmFtZS5zaXplID0gW05TU2Nyb2xsVmll
dyBjb250ZW50U2l6ZUZvckZyYW1lU2l6ZTpzY3JvbGxGcmFtZS5zaXplIGhhc0hvcml6b250YWxT
Y3JvbGxlcjpOTyBoYXNWZXJ0aWNhbFNjcm9sbGVyOllFUyBib3JkZXJUeXBlOk5TTm9Cb3JkZXJd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VO
RCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5TVGFibGVDb2x1bW4gKmNvbHVt
biA9IFtbTlNUYWJsZUNvbHVtbiBhbGxvY10gaW5pdF07CiAgICAgW2NvbHVtbiBzZXRXaWR0aDp0
YWJsZUZyYW1lLnNpemUud2lkdGhdOwogICAgIFtjb2x1bW4gc2V0RWRpdGFibGU6Tk9dOwpAQCAt
MTMzLDEwICsxMzIsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogICAgIE5TUmVjdCB3
aW5kb3dGcmFtZTsKICAgICBOU1BvaW50IHdvcmRTdGFydCA9IHRvcExlZnQ7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICB3aW5kb3dGcmFtZS5vcmlnaW4gPSBbW192aWV3IHdp
bmRvd10gY29udmVydEJhc2VUb1NjcmVlbjpbX2h0bWxWaWV3IGNvbnZlcnRQb2ludDp3b3JkU3Rh
cnQgdG9WaWV3Om5pbF1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9X
QVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIHdpbmRv
d0ZyYW1lLnNpemUuaGVpZ2h0ID0gbnVtYmVyVG9TaG93ICogW190YWJsZVZpZXcgcm93SGVpZ2h0
XSArIChudW1iZXJUb1Nob3cgKyAxKSAqIFtfdGFibGVWaWV3IGludGVyY2VsbFNwYWNpbmddLmhl
aWdodDsKICAgICB3aW5kb3dGcmFtZS5vcmlnaW4ueSAtPSB3aW5kb3dGcmFtZS5zaXplLmhlaWdo
dDsKICAgICBOU0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXMgPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25h
cnlXaXRoT2JqZWN0c0FuZEtleXM6W05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOjEyLjBmXSwgTlNG
b250QXR0cmlidXRlTmFtZSwgbmlsXTsKQEAgLTE1MSwxMCArMTQ5LDkgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAgICAgfQogICAgIHdpbmRvd0ZyYW1lLnNpemUud2lkdGggPSAxMDA7CiAg
ICAgaWYgKG1heEluZGV4ID49IDApIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKwkJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
ICAgICAgICAgbWF4V2lkdGggPSBjZWlsZihbTlNTY3JvbGxWaWV3IGZyYW1lU2l6ZUZvckNvbnRl
bnRTaXplOk5TTWFrZVNpemUobWF4V2lkdGgsIDEwMC4wZikgaGFzSG9yaXpvbnRhbFNjcm9sbGVy
Ok5PIGhhc1ZlcnRpY2FsU2Nyb2xsZXI6WUVTIGJvcmRlclR5cGU6TlNOb0JvcmRlcl0ud2lkdGgp
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCQlJR05PUkVfV0FSTklOR19DTEFOR19F
TkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgbWF4V2lkdGggPSBjZWls
ZihbTlNXaW5kb3cgZnJhbWVSZWN0Rm9yQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLjBmLCAwLjBm
LCBtYXhXaWR0aCwgMTAwLjBmKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNz
XS5zaXplLndpZHRoKTsKICAgICAgICAgbWF4V2lkdGggKz0gNS4wZjsKICAgICAgICAgd2luZG93
RnJhbWUuc2l6ZS53aWR0aCA9IHN0ZDo6bWF4KG1heFdpZHRoLCB3aW5kb3dGcmFtZS5zaXplLndp
ZHRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQppbmRleCBhYjQzODg3ZDE3NDRkNzUz
ZDUwMDNhMjJlMDRmNDI3NTE0YTFiZTY2Li40NDc5NDUzZThiZjY0ODY2NDUwZDcxMzI4YzE1OTU3
YWE5YmI1MjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCkBAIC0zOCw4ICszOCw3
IEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcu
aD4KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogU09GVF9MSU5L
X0ZSQU1FV09SSyhBVkZvdW5kYXRpb24pCiBTT0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBB
VlBsYXllckxheWVyKQpAQCAtNTA5LDYgKzUwOCw2IEBAIHN0YXRpYyBOU1dpbmRvdyAqY3JlYXRl
QmFja2dyb3VuZEZ1bGxzY3JlZW5XaW5kb3coTlNSZWN0IGZyYW1lLCBpbnQgbGV2ZWwpCiAKIEBl
bmQKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
VE9QX0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5IVURXaW5kb3dDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tCmluZGV4IGU3YmU4NmQz
NzRlNDUwZWVlNzAwOTFjNWUzMmQ5M2IzMTVhNWNmMzkuLjJhMmU4OWFlNjY5MGM4ZGYwMWYyY2Jk
ZmE4MmYxYzg0ZGYwZDNiOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0Nv
bnRyb2xsZXIubW0KQEAgLTM3MywxMCArMzczLDkgQEAgc3RhdGljIE5TVmlldyAqY3JlYXRlTWVk
aWFVSUJhY2tncm91bmRWaWV3KCkKICAgICBjb25zdCBDR0Zsb2F0IHF1aWNrVGltZVBsYXllckhV
REhlaWdodCA9IDU5OwogICAgIGNvbnN0IENHRmxvYXQgcXVpY2tUaW1lUGxheWVySFVEQ29udGVu
dEJvcmRlclBvc2l0aW9uID0gMzg7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgIFt2aWV3IHNldENvbnRlbnRCb3JkZXJQb3NpdGlvbjpxdWlja1RpbWVQbGF5ZXJIVURDb250
ZW50Qm9yZGVyUG9zaXRpb24gLyBxdWlja1RpbWVQbGF5ZXJIVURIZWlnaHRdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgcmV0dXJuIHZpZXc7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYjg5MjczNGNhZmYzNjVkZDc4NTQ5
ZDg3ZWMwYTAzOTQ5NzZiNjY2Ni4uODE5NWM3ODE0NzdmYjY4MGFkZTRmZGE5ZjMzMzM4Nzk1MzM1
MTNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAt
ODY1LDE1ICs4NjUsMTQgQEAgc3RhdGljIGNvbnN0IE5TVUludGVnZXIgb3JkZXJlZExpc3RTZWdt
ZW50ID0gMjsKICAgICBbaW5zZXJ0TGlzdENvbnRyb2wgc2V0V2lkdGg6bGlzdENvbnRyb2xTZWdt
ZW50V2lkdGggZm9yU2VnbWVudDpvcmRlcmVkTGlzdFNlZ21lbnRdOwogICAgIGluc2VydExpc3RD
b250cm9sLmZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6MTVdOwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBpZCBzZWdtZW50RWxlbWVudCA9IE5TQWNjZXNzaWJp
bGl0eVVuaWdub3JlZERlc2NlbmRhbnQoaW5zZXJ0TGlzdENvbnRyb2wpOwogICAgIE5TQXJyYXkg
KnNlZ21lbnRzID0gW3NlZ21lbnRFbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpO
U0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZV07CiAgICAgQVNTRVJUKHNlZ21lbnRzLmNv
dW50ID09IDMpOwogICAgIFtzZWdtZW50c1tub0xpc3RTZWdtZW50XSBhY2Nlc3NpYmlsaXR5U2V0
T3ZlcnJpZGVWYWx1ZTpXZWJDb3JlOjppbnNlcnRMaXN0VHlwZU5vbmUoKSBmb3JBdHRyaWJ1dGU6
TlNBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25BdHRyaWJ1dGVdOwogICAgIFtzZWdtZW50c1t1bm9y
ZGVyZWRMaXN0U2VnbWVudF0gYWNjZXNzaWJpbGl0eVNldE92ZXJyaWRlVmFsdWU6V2ViQ29yZTo6
aW5zZXJ0TGlzdFR5cGVCdWxsZXRlZEFjY2Vzc2liaWxpdHlUaXRsZSgpIGZvckF0dHJpYnV0ZTpO
U0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgW3NlZ21lbnRzW29yZGVy
ZWRMaXN0U2VnbWVudF0gYWNjZXNzaWJpbGl0eVNldE92ZXJyaWRlVmFsdWU6V2ViQ29yZTo6aW5z
ZXJ0TGlzdFR5cGVOdW1iZXJlZEFjY2Vzc2liaWxpdHlUaXRsZSgpIGZvckF0dHJpYnV0ZTpOU0Fj
Y2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAKICAgICBzZWxmLnZpZXcgPSBpbnNlcnRMaXN0Q29udHJvbDsKIApAQCAtMjE3OCwx
MSArMjE3NywxMCBAQCBzdGF0aWMgTlNNdXRhYmxlU2V0ICprbm93blBsdWdpbk1JTUVUeXBlcygp
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogICAgIGlmICghT1NBdG9taWNDb21wYXJlQW5kU3dhcDMyKDAsIDEsICZfcHJpdmF0ZS0+ZGlk
RHJhd1RpbGVzKSkKICAgICAgICAgcmV0dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogCiAgICAgV2ViVGhyZWFkTG9jaygpOwogCkBAIC01ODkyLDIxICs1ODkwLDE5IEBAIHN0YXRp
YyBib29sIG5lZWRzV2ViVmlld0luaXRUaHJlYWRXb3JrYXJvdW5kKCkKIAogLSAodm9pZCllbmNv
ZGVXaXRoQ29kZXI6KE5TQ29kZXIgKillbmNvZGVyCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisJSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICAvLyBTZXQgYXNzaWRlIHRoZSBzdWJ2aWV3cyBiZWZvcmUgd2UgYXJjaGl2
ZS4gV2UgZG9uJ3Qgd2FudCB0byBhcmNoaXZlIGFueSBzdWJ2aWV3cy4KICAgICAvLyBUaGUgc3Vi
dmlld3Mgd2lsbCBhbHdheXMgYmUgY3JlYXRlZCBpbiBfY29tbW9uSW5pdGlhbGl6YXRpb25GcmFt
ZU5hbWU6Z3JvdXBOYW1lOi4KICAgICBpZCBvcmlnaW5hbFN1YnZpZXdzID0gX3N1YnZpZXdzOwog
ICAgIF9zdWJ2aWV3cyA9IG5pbDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwlJR05P
UkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAg
IFtzdXBlciBlbmNvZGVXaXRoQ29kZXI6ZW5jb2Rlcl07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKwlJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogICAgIC8vIFJlc3RvcmUgdGhlIHN1YnZpZXdzIHdlIHNldCBhc2lkZS4KICAg
ICBfc3Vidmlld3MgPSBvcmlnaW5hbFN1YnZpZXdzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorCUlHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogCiAgICAgQk9PTCB1c2VCYWNrRm9yd2FyZExpc3QgPSBfcHJpdmF0ZS0+cGFnZSAmJiBz
dGF0aWNfY2FzdDxCYWNrRm9yd2FyZExpc3QqPihfcHJpdmF0ZS0+cGFnZS0+YmFja0ZvcndhcmQo
KS5jbGllbnQoKSktPmVuYWJsZWQoKTsKICAgICBpZiAoW2VuY29kZXIgYWxsb3dzS2V5ZWRDb2Rp
bmddKSB7CkBAIC03MTM3LDEwICs3MTMzLDkgQEAgc3RhdGljIFdlYkZyYW1lICppbmNyZW1lbnRG
cmFtZShXZWJGcmFtZSAqZnJhbWUsIFdlYkZpbmRPcHRpb25zIG9wdGlvbnMgPSAwKQogICAgIGlm
IChhdXRvICppY29uID0gX3ByaXZhdGUtPl9tYWluRnJhbWVJY29uLmdldCgpKQogICAgICAgICBy
ZXR1cm4gaWNvbjsKIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoIAotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorCUlHTk9SRV9X
QVJOSU5HX0dDQygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIHJldHVybiBbW1dl
Ykljb25EYXRhYmFzZSBzaGFyZWRJY29uRGF0YWJhc2VdIGRlZmF1bHRJY29uV2l0aFNpemU6V2Vi
SWNvblNtYWxsU2l6ZV07Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorCUlHTk9SRV9XQVJO
SU5HX0dDQ19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogLSAodm9pZClf
c2V0TWFpbkZyYW1lSWNvbjooTlNJbWFnZSAqKWljb24KQEAgLTkzMDgsMTAgKzkzMDMsOSBAQCBi
b29sIExheWVyRmx1c2hDb250cm9sbGVyOjpmbHVzaExheWVycygpCiAgICAgICAgIC8vIEFwcEtp
dCBtYXkgaGF2ZSBkaXNhYmxlZCBzY3JlZW4gdXBkYXRlcywgdGhpbmtpbmcgYW4gdXBjb21pbmcg
d2luZG93IGZsdXNoIHdpbGwgcmUtZW5hYmxlIHRoZW0uCiAgICAgICAgIC8vIEluIGNhc2Ugc2V0
TmVlZHNEaXNwbGF5SW5SZWN0KCkgaGFzIHByZXZlbnRlZCB0aGUgd2luZG93IGZyb20gbmVlZGlu
ZyB0byBiZSBmbHVzaGVkLCByZS1lbmFibGUgc2NyZWVuCiAgICAgICAgIC8vIHVwZGF0ZXMgaGVy
ZS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKwkJSUdOT1JFX1dBUk5JTkdf
Q0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgaWYgKCFbd2luZG93
IGlzRmx1c2hXaW5kb3dEaXNhYmxlZF0pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisJ
CQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
ICAgICAgICAgICAgIFt3aW5kb3cgX2VuYWJsZVNjcmVlblVwZGF0ZXNJZk5lZWRlZF07CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJXaW5k
b3dBbmltYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYldpbmRv
d0FuaW1hdGlvbi5tbQppbmRleCA5MjM1OGY2YjdkZTNhYmE5NjRlZWFmMTc0MjVmMjcxYjk1YWE4
NjA5Li4xYTZmNGZmYzZkMTQ1MGJlNTAxMzUzOWQxNGJjZDljZDM0ZDQ4NTNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYldpbmRvd0FuaW1hdGlvbi5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYldpbmRvd0FuaW1hdGlvbi5t
bQpAQCAtMTI1LDEwICsxMjUsOSBAQCBzdGF0aWMgQ0dTQ29ubmVjdGlvbklEIG1haW5XaW5kb3dT
ZXJ2ZXJDb25uZWN0aW9uSUQoKQogc3RhdGljIHZvaWQgc2V0U2NhbGVkRnJhbWVGb3JXaW5kb3co
TlNXaW5kb3cgKndpbmRvdywgTlNSZWN0IHNjYWxlRnJhbWUsIE5TUmVjdCBub25TY2FsZWRGcmFt
ZSkKIHsKICAgICBpZiAoTlNFcXVhbFJlY3RzKHNjYWxlRnJhbWUsIG5vblNjYWxlZEZyYW1lKSkg
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV25vbm51bGwiCisJCUlHTk9SRV9XQVJOSU5HX0NMQU5HKCItV25vbm51bGwi
KTsKICAgICAgICAgQ0dTU2V0V2luZG93V2FycChtYWluV2luZG93U2VydmVyQ29ubmVjdGlvbklE
KCksIHdpbmRvdy53aW5kb3dOdW1iZXIsIDAsIDAsIG51bGxwdHIpOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorCQlJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1Xbm9ubnVsbCIpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348296</attachid>
            <date>2018-08-28 08:51:37 -0700</date>
            <delta_ts>2018-08-28 09:25:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188996-20180828175135.patch</filename>
            <type>text/plain</type>
            <size>332598</size>
            <attacher name="Guillaume Emont">guijemont</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
OTg5OGNkZmFhNmFhMWUyZmFmNDM5NTU2OGJhYTRiZTE1Njc0YzI2Li42ODRkOTJjZGVhM2M5ZjIx
OTA4M2Q3ZGYyNTVkM2FiZDIzN2EzNTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09i
amVjdC5oOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLmM6CisgICAgICAgICogYXNzZW1i
bGVyL0xpbmtCdWZmZXIuaDoKKyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6ZmluYWxpemVDb2Rl
V2l0aERpc2Fzc2VtYmx5KToKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAg
ICAqIGIzL0IzT3Bjb2RlLmNwcDoKKyAgICAgICAgKiBiMy9CM1R5cGUuaDoKKyAgICAgICAgKiBi
My9CM1R5cGVNYXAuaDoKKyAgICAgICAgKiBiMy9CM1dpZHRoLmg6CisgICAgICAgICogYjMvYWly
L0FpckFyZy5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAqIGIzL2Fp
ci9BaXJDb2RlLmg6CisgICAgICAgICogYnl0ZWNvZGUvT3Bjb2RlLmg6CisgICAgICAgIChKU0M6
OnBhZE9wY29kZU5hbWUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU51bWJlcik6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1pc2MpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6
CisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBl
cnM6OmNhbGN1bGF0ZVBva2VPZmZzZXQpOgorICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6
CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTElu
dDo6c2xvd1BhdGhMb2dGKToKKyAgICAgICAgKiBydW50aW1lL0NvbmZpZ0ZpbGUuY3BwOgorICAg
ICAgICAoSlNDOjpDb25maWdGaWxlOjpjYW5vbmljYWxpemVQYXRocyk6CisgICAgICAgICogcnVu
dGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNw
cDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6c2V0QWxpYXNlZE9wdGlvbik6CisgICAgICAgICog
dG9vbHMvQ29kZVByb2ZpbGluZy5jcHA6CisgICAgICAgICogd2FzbS9XYXNtU2VjdGlvbnMuaDoK
KyAgICAgICAgKiB3YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weToKKwog
MjAxOC0wOC0yNyAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93c3RhcnQub3JnPgog
CiAgICAgICAgIFtXZWJBc3NlbWJseV0gUGFyc2Ugd2FzbSBtb2R1bGVzIGluIGEgc3RyZWFtaW5n
IGZhc2hpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9D
aGFuZ2VMb2cKaW5kZXggOTZjYWM2MGI0MTk5MTRmYzg5ZWM1MDdmOTgxNDhhMzllNjQwNzc0Mi4u
OGVjNTJlNTEwYzAzZTgwYTczNGZmMmZmZDlhMzhkMzliMTFhM2NjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
OSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+
CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6Cisg
ICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoKKyAgICAgICAgKiB3dGYvQ29tcGlsZXIuaDoKKyAg
ICAgICAgKiB3dGYvTUQ1LmNwcDoKKyAgICAgICAgKFdURjo6TUQ1OjpNRDUpOgorICAgICAgICAo
V1RGOjpNRDU6OmFkZEJ5dGVzKToKKyAgICAgICAgKFdURjo6TUQ1OjpjaGVja3N1bSk6CisgICAg
ICAgICogd3RmL1ByaW50U3RyZWFtLmNwcDoKKyAgICAgICAgKFdURjo6UHJpbnRTdHJlYW06OnBy
aW50ZlZhcmlhYmxlRm9ybWF0KToKKyAgICAgICAgKiB3dGYvU0hBMS5jcHA6CisgICAgICAgIChX
VEY6OlNIQTE6OlNIQTEpOgorICAgICAgICAoV1RGOjpTSEExOjphZGRCeXRlcyk6CisgICAgICAg
IChXVEY6OlNIQTE6OmNvbXB1dGVIYXNoKToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nUHRocmVh
ZHMuY3BwOgorICAgICAgICAqIHd0Zi9WZWN0b3IuaDoKKyAgICAgICAgKFdURjo6VmVjdG9yQnVm
ZmVyOjplbmRPZkJ1ZmZlcik6CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmNwcDoKKyAg
ICAgICAgKFdURjo6Y3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cyk6CisKIDIwMTgtMDgtMjcg
IFl1c3VrZSBTdXp1a2kgIDx5dXN1a2VzdXp1a2lAc2xvd3N0YXJ0Lm9yZz4KIAogICAgICAgICBb
V2ViQXNzZW1ibHldIFBhcnNlIHdhc20gbW9kdWxlcyBpbiBhIHN0cmVhbWluZyBmYXNoaW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYWExNjAzNmUyODMyM2U4Y2FkYTFjNmUyYzg1MWQzZDFlZjY5Nzg4Yi4uMWFm
NGI2OWUwZGFiNGE1OWZlOGQ4OGFlZTUwOTYzNThmOWYwYWVmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzMSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaDoKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6Om92ZXJyaWRlQXR0YWNobWVudFBhcmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5
SWdub3JlQXR0YWNobWVudCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyIHJlbmRlcldpZGdldENoaWxkcmVuXSk6CisgICAgICAgICgtW1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGNvbnZlcnRQb2ludFRvU2NyZWVuU3BhY2U6XSk6
CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHJvbGVdKToKKyAgICAg
ICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgcm9sZURlc2NyaXB0aW9uXSk6Cisg
ICAgICAgICogYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAqIGJyaWRn
ZS9vYmpjL29iamNfY2xhc3MubW06CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjQ2xhc3M6
OmZpZWxkTmFtZWQgY29uc3QpOgorICAgICAgICAqIGNyeXB0by9Db21tb25DcnlwdG9VdGlsaXRp
ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29tbW9uQ3J5cHRvRGlnZXN0QWxnb3JpdGht
KToKKyAgICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZW5jcnlwdEFFU19HQ00pOgorICAgICAgICAoV2ViQ29yZTo6ZGVj
eXB0QUVTX0dDTSk6CisgICAgICAgICogY3J5cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3Jh
cE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OndyYXBTZXJpYWxpemVkQ3J5cHRvS2V5KToKKyAg
ICAgICAgKFdlYkNvcmU6OnVud3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkpOgorICAgICAgICAqIGNz
cy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5Ogor
ICAgICAgICAqIGNzcy9tYWtlU2VsZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5weToKKyAgICAgICAg
KiBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHA6CisgICAgICAgICogZWRpdGluZy9tYWMvRWRpdG9y
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKToK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVwbGFjZU5vZGVGcm9tUGFzdGVib2FyZCk6Cisg
ICAgICAgICogcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAg
ICAqIHBhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW06CisgICAgICAgIChXZWJD
b3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OnBhaW50Q29udGVudHMp
OgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Zm9ybWF0TG9jYWxpemVkU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JlZW5Q
cm9wZXJ0aWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EYXRhOjpkZWNvZGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpISURHYW1lcGFkUHJvdmlkZXI6OnN0b3BNb25pdG9yaW5nSW5wdXQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBB
VkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6
OnVwZGF0ZU9wdGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW06CisgICAgICAgIChXZWJDb3JlOjpD
RE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjp1cGRhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0Q3VycmVudFRleHRUcmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpsYW5ndWFnZU9m
UHJpbWFyeUF1ZGlvVHJhY2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0U2hvdWxkRGlzYWJsZVNsZWVwKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoLVtXZWJBVlNhbXBs
ZUJ1ZmZlckVycm9yTGlzdGVuZXIgYmVnaW5PYnNlcnZpbmdSZW5kZXJlcjpdKToKKyAgICAgICAg
KC1bV2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyIHN0b3BPYnNlcnZpbmdSZW5kZXJlcjpd
KToKKyAgICAgICAgKC1bV2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyIG9ic2VydmVWYWx1
ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6CisgICAgICAgIChXZWJDb3Jl
OjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6dHJhY2tEaWRDaGFuZ2VFbmFibGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OklHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1t
OgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyOjpkcmF3TGF5ZXJDb250ZW50cyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6Zm9udEZvckNvbWJpbmluZ0NoYXJhY3RlclNlcXVl
bmNlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZURlY29kZXJD
Ry5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJDRzo6Y3JlYXRlRnJhbWVJbWFn
ZUF0SW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29u
dGV4dENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TGlu
ZUZvckRvY3VtZW50TWFya2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJHTExheWVyLmg6CisgICAgICAgIChJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3Jl
VGV4dC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6Y29sbGVj
dENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL21hYy9JY29uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6SWNvbjo6SWNvbik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50SW1hZ2VNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpQREZEb2N1bWVudEltYWdlOjpkcmF3UERGUGFnZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYktpdE5TSW1hZ2VFeHRyYXMubW06CisgICAgICAgICgt
W05TSW1hZ2UgX3dlYl9sb2NrRm9jdXNXaXRoRGV2aWNlU2NhbGVGYWN0b3I6XSk6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
RHJhZ0ltYWdlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2NhbGVEcmFnSW1hZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRm9yTGluayk6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2Fs
Q3VycmVudEdyYXBoaWNzQ29udGV4dDo6TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
YXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAgIChXZWJDb3JlOjpzZXRE
cmFnSW1hZ2VJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3Rv
cnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludCk6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
U2Nyb2xsVmlld01hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3Jt
Q29udGVudHNUb1NjcmVlbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojpw
bGF0Zm9ybVNjcmVlblRvQ29udGVudHMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9U
aGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdDZWxsRm9jdXNSaW5nV2l0aEZyYW1l
QXRUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFn
ZXIubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OldpZGdldDo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVsZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnJlcG9ydEVycm9y
VG9DbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3JlYXRlLWh0dHAtaGVhZGVy
LW5hbWUtdGFibGU6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwOgor
ICAgICAgICAqIHRlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmg6CisgICAgICAg
ICogeG1sL1hQYXRoR3JhbW1hci5jcHA6CisKIDIwMTgtMDgtMjggIEFsZWphbmRybyBHLiBDYXN0
cm8gIDxhbGV4QGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4IGdjYyBjb21waWxhdGlvbiB3YXJu
aW5ncyBhZnRlciByMjM1MjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA0MjgyNWQzYmFmNmVjNGMy
MTBiYWY1NDMyMzI1NzBhOGE3NDE1YzRmLi5kMTIwZDAxZmViZDVkYmE4ZWFlZjE3N2I3ZGM3NzM3
M2JkN2Y2NTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOC0wOC0y
NyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRk
IElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwYWwvY3J5cHRvL2NvbW1vbmNyeXB0by9DcnlwdG9EaWdlc3RD
b21tb25DcnlwdG8uY3BwOgorICAgICAgICAoUEFMOjpDcnlwdG9EaWdlc3Q6OmNyZWF0ZSk6Cisg
ICAgICAgIChQQUw6OkNyeXB0b0RpZ2VzdDo6YWRkQnl0ZXMpOgorICAgICAgICAoUEFMOjpDcnlw
dG9EaWdlc3Q6OmNvbXB1dGVIYXNoKToKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL0FWS2l0U1BJ
Lmg6CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaDoKKyAgICAg
ICAgKGluc2VjdXJlbHlVbmFyY2hpdmVPYmplY3RGcm9tRGF0YSk6CisgICAgICAgICogcGFsL3Nw
aS9pb3MvTWVkaWFQbGF5ZXJTUEkuaDoKKyAgICAgICAgKiBwYWwvc3lzdGVtL21hYy9Qb3B1cE1l
bnUubW06CisgICAgICAgIChQQUw6OnBvcFVwTWVudSk6CisgICAgICAgICogcGFsL3N5c3RlbS9t
YWMvV2ViUGFuZWwubW06CisgICAgICAgICgtW1dlYlBhbmVsIGluaXRdKToKKwogMjAxOC0wOC0y
NyAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBidWlsZCBmaXggLS0gZGlzYWJsZSBMVE8gZm9yIHByb2R1Y3Rpb24gYnVpbGRzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDEzNTQyMTE1M2JhYmIzZDJmOGI3ZTgxZDIxNzBmM2E5ZGQxMTNlYmMuLmQzMmM5MjJmNTYx
OWU0Y2ExZGIzNDViZDMyYjhhMDlkZDU0ZGZiNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE5IEBA
CisyMDE4LTA4LTI3ICBHdWlsbGF1bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBBZGQgSUdOT1JFX1dBUk5JTkdfLiogbWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg5OTYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2Nv
YTo6c3RhdGVsZXNzQ29va2llU3RvcmFnZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OnBsYXRmb3JtU3luY0FsbENvb2tpZXMpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFj
L1BsdWdpblByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OmJlZ2luTW9kYWwpOgorICAg
ICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NTaGltLm1tOgorICAgICAgICAq
IFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Nb2R1bGU6OnRyeUxvYWQpOgorICAgICAgICAqIFNo
YXJlZC9pb3MvQ2hpbGRQcm9jZXNzSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nl
c3M6OmluaXRpYWxpemVTYW5kYm94KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vz
c01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29tcGlsZUFuZEFwcGx5U2FuZGJveFNsb3dDYXNl
KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLm1tOgorICAgICAgICAoV2Vi
S2l0OjpDb2xvclNwYWNlRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1NhbmRi
b3hFeHRlbnNpb25NYWMubW06CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb25JbXBs
OjpzYW5kYm94RXh0ZW5zaW9uRm9yVHlwZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfd2ViX3N1cGVyQWNjZXNzaWJp
bGl0eUF0dHJpYnV0ZVZhbHVlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYlZpZXcuY3BwOgorICAgICAgICAod2Via2l0V2ViVmlld1J1bkFzTW9kYWwpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IF93ZWJf
c3VwZXJBY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL0Rvd25sb2FkQ2xpZW50Lm1tOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZENsaWVu
dDo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW06CisgICAg
ICAgICgtW1dLQ3VzdG9tUHJvdG9jb2xMb2FkZXIgaW5pdFdpdGhMZWdhY3lDdXN0b21Qcm90b2Nv
bE1hbmFnZXJQcm94eTpjdXN0b21Qcm90b2NvbElEOnJlcXVlc3Q6XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdh
dGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAg
KFdlYktpdDo6VUlEZWxlZ2F0ZTo6Q29udGV4dE1lbnVDbGllbnQ6Om1lbnVGcm9tUHJvcG9zZWRN
ZW51KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlBy
b2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAg
ICAgKC1bV0tUZXh0TGlzdFRvdWNoQmFyVmlld0NvbnRyb2xsZXIgaW5pdFdpdGhXZWJWaWV3SW1w
bDpdKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZVdpbmRvd0FuZFZpZXdG
cmFtZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2VuZERyYWdFbmRUb1BhZ2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c3RhcnREcmFnKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmNoYXJhY3RlckluZGV4Rm9yUG9pbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6Z2V0UGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJlcik6
CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6bWFrZVBsdWdpblByb2Nlc3NU
aGVGcm9udFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6Om1h
a2VVSVByb2Nlc3NUaGVGcm9udFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9j
ZXNzUHJveHk6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1NtYXJ0
TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW06CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0dl
b2xvY2F0aW9uUHJvdmlkZXJJT1MubW06CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0xlZ2Fj
eVBERlZpZXcubW06CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1BERlBhZ2VOdW1iZXJJbmRp
Y2F0b3IubW06CisgICAgICAgICgtW1dLUERGUGFnZU51bWJlckluZGljYXRvciBfbWFrZVJvdW5k
ZWRDb3JuZXJzXSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0FpclBsYXlSb3V0
ZVBpY2tlci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBh
bmVsLm1tOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBfcHJlc2VudFBvcG92ZXJXaXRo
Q29udGVudFZpZXdDb250cm9sbGVyOmFuaW1hdGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvZm9ybXMvV0tGb3JtQ29sb3JDb250cm9sLm1tOgorICAgICAgICAoLVtXS0NvbG9yUG9wb3Zl
ciBpbml0V2l0aFZpZXc6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1J
bnB1dENvbnRyb2wubW06CisgICAgICAgICgtW1dLRGF0ZVRpbWVQb3BvdmVyIGluaXRXaXRoVmll
dzpkYXRlUGlja2VyTW9kZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9y
bVBvcG92ZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIu
bW06CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RQb3BvdmVyLm1t
OgorICAgICAgICAoLVtXS1NlbGVjdFBvcG92ZXIgaW5pdFdpdGhWaWV3Omhhc0dyb3VwczpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2NyZWVuVG9Sb290Vmlldyk6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjpyb290Vmlld1RvU2NyZWVuKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZW50ZXJGdWxsU2NyZWVuOl0pOgorICAgICAgICAoLVtX
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGZpbmlzaGVkRW50ZXJGdWxsU2NyZWVuQW5pbWF0
aW9uOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGV4aXRGdWxs
U2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgYmVnYW5F
eGl0RnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6ZmluYWxGcmFtZTpdKToKKyAgICAgICAgKC1b
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBmaW5pc2hlZEV4aXRGdWxsU2NyZWVuQW5pbWF0
aW9uOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGNvbXBsZXRl
RmluaXNoRXhpdEZ1bGxTY3JlZW5BbmltYXRpb25BZnRlclJlcGFpbnRdKToKKyAgICAgICAgKC1b
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBfc3RhcnRFbnRlckZ1bGxTY3JlZW5BbmltYXRp
b25XaXRoRHVyYXRpb246XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIgX3N0YXJ0RXhpdEZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbToKKyAgICAgICAgKC1bV0tQcmludGlu
Z1ZpZXcgX3NldEF1dG9kaXNwbGF5Ol0pOgorICAgICAgICAoLVtXS1ByaW50aW5nVmlldyBfZHJh
d1BERkRvY3VtZW50OnBhZ2U6YXRQb2ludDpdKToKKyAgICAgICAgKC1bV0tQcmludGluZ1ZpZXcg
X2RyYXdQcmV2aWV3Ol0pOgorICAgICAgICAoLVtXS1ByaW50aW5nVmlldyBkcmF3UmVjdDpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbToK
KyAgICAgICAgKC1bV0tUZXh0SW5wdXRQYW5lbCBfaW50ZXJwcmV0S2V5RXZlbnQ6dXNpbmdMZWdh
Y3lDb2NvYVRleHRJbnB1dDpzdHJpbmc6XSk6CisgICAgICAgICgtW1dLVGV4dElucHV0UGFuZWwg
X2hhc01hcmtlZFRleHRdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVBy
b3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1Bv
cHVwTWVudSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRz
Y2FwZVBsdWdpbk1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZUV2ZW50UmVjb3Jk
KToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW46OnNlbmRDb21wbGV4VGV4dElucHV0
KToKKyAgICAgICAgKFdlYktpdDo6bWFrZUNHTFByZXNlbnRMYXllck9wYXF1ZSk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpudWxsRXZlbnRUaW1lckZpcmVkKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKC1bV0tQREZQ
bHVnaW5BY2Nlc3NpYmlsaXR5T2JqZWN0IGFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50XSk6
CisgICAgICAgICgtW1dLUERGTGF5ZXJDb250cm9sbGVyRGVsZWdhdGUgd3JpdGVJdGVtc1RvUGFz
dGVib2FyZDp3aXRoVHlwZXM6XSk6CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6aGFuZGxl
RWRpdGluZ0NvbW1hbmQpOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OnNldEFjdGl2ZUFu
bm90YXRpb24pOgorICAgICAgICAoV2ViS2l0OjogY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbToKKyAgICAg
ICAgKFdlYktpdDo6UERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbjo6Y3JlYXRlQW5ub3RhdGlvbkVs
ZW1lbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFu
bm90YXRpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRl
eHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW5UZXh0QW5ub3RhdGlv
bjo6Y3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6Y29udmVydEltYWdlVG9CaXRtYXApOgorICAgICAgICAoV2ViS2l0OjpXZWJEcmFnQ2xpZW50
OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6OmRyYXdQ
REZQYWdlKToKKwogMjAxOC0wOC0yNyAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CiAKICAgICAgICAgW0N1cmxdIEVuYWJsZSBQcm94eSBBdXRoZW50aWNhdGlvbiBvbiBX
ZWJLaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZGUyNjQyYzc2YWQzODY4YTgw
MTkwOTgzYjk3MjBlNjQ4MWUwYjZlZS4uYTk2OGEzYmY4M2NiMjliZDEwMDlhZGRjMWZiOTdkZDM3
NzIwY2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNCBAQAor
MjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDYXJib24vQ2FyYm9uVXRpbHMubToKKyAgICAg
ICAgKFBvb2xDbGVhbmVyKToKKyAgICAgICAgKiBDYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5t
bToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93QWRhcHRlciBpbml0V2l0aENhcmJvbldpbmRvd1Jl
Zjp0YWtpbmdPd25lcnNoaXA6ZGlzYWJsZU9yZGVyaW5nOmNhcmJvbjpdKToKKyAgICAgICAgKC1b
Q2FyYm9uV2luZG93QWRhcHRlciBzZXRWaWV3c05lZWREaXNwbGF5Ol0pOgorICAgICAgICAoLVtD
YXJib25XaW5kb3dBZGFwdGVyIHJlY29uY2lsZVRvQ2FyYm9uV2luZG93Qm91bmRzXSk6CisgICAg
ICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgX3Rlcm1XaW5kb3dJZk93bmVyXSk6CisgICAgICAg
ICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgX3dpbmRvd01vdmVkVG9SZWN0Ol0pOgorICAgICAgICAo
LVtDYXJib25XaW5kb3dBZGFwdGVyIHNldENvbnRlbnRWaWV3Ol0pOgorICAgICAgICAoLVtDYXJi
b25XaW5kb3dBZGFwdGVyIF9oYW5kbGVSb290Qm91bmRzQ2hhbmdlZF0pOgorICAgICAgICAoLVtD
YXJib25XaW5kb3dBZGFwdGVyIF9oYW5kbGVDb250ZW50Qm91bmRzQ2hhbmdlZF0pOgorICAgICAg
ICAqIENhcmJvbi9DYXJib25XaW5kb3dGcmFtZS5tOgorICAgICAgICAoLVtDYXJib25XaW5kb3dG
cmFtZSB0aXRsZV0pOgorICAgICAgICAqIENhcmJvbi9ISVZpZXdBZGFwdGVyLm06CisgICAgICAg
ICgrW0hJVmlld0FkYXB0ZXIgZ2V0SElWaWV3Rm9yTlNWaWV3Ol0pOgorICAgICAgICAqIENhcmJv
bi9ISVdlYlZpZXcubW06CisgICAgICAgIChvdmVycmlkZUNHQ29udGV4dCk6CisgICAgICAgIChy
ZXN0b3JlQ0dDb250ZXh0KToKKyAgICAgICAgKERyYXcpOgorICAgICAgICAqIERPTS9ET00ubW06
CisgICAgICAgICogSGlzdG9yeS9XZWJIaXN0b3J5Lmg6CisgICAgICAgICogSGlzdG9yeS9XZWJI
aXN0b3J5Lm1tOgorICAgICAgICAoLVtXZWJIaXN0b3J5UHJpdmF0ZSBsb2FkSGlzdG9yeUd1dHNG
cm9tVVJMOnNhdmVkSXRlbXNDb3VudDpjb2xsZWN0RGlzY2FyZGVkSXRlbXNJbnRvOmVycm9yOl0p
OgorICAgICAgICAqIEhpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW06CisgICAgICAgICgtW1dlYkhp
c3RvcnlJdGVtIGljb25dKToKKyAgICAgICAgKiBNaXNjL1dlYktpdE5TU3RyaW5nRXh0cmFzLm1t
OgorICAgICAgICAoLVtOU1N0cmluZyBfd2ViX2RyYXdBdFBvaW50OmZvbnQ6dGV4dENvbG9yOl0p
OgorICAgICAgICAqIE1pc2MvV2ViTlNJbWFnZUV4dHJhcy5tOgorICAgICAgICAoLVtOU0ltYWdl
IF93ZWJfc2NhbGVUb01heFNpemU6XSk6CisgICAgICAgICgtW05TSW1hZ2UgX3dlYl9kaXNzb2x2
ZVRvRnJhY3Rpb246XSk6CisgICAgICAgICogTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW06
CisgICAgICAgICgrW05TUGFzdGVib2FyZCBfd2ViX3NldEZpbmRQYXN0ZWJvYXJkU3RyaW5nOndp
dGhPd25lcjpdKToKKyAgICAgICAgKC1bTlNQYXN0ZWJvYXJkIF93ZWJfZGVjbGFyZUFuZFdyaXRl
RHJhZ0ltYWdlRm9yRWxlbWVudDpVUkw6dGl0bGU6YXJjaGl2ZTpzb3VyY2U6XSk6CisgICAgICAg
ICogUGFuZWxzL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubToKKyAgICAgICAgKC1bV2ViQXV0aGVu
dGljYXRpb25QYW5lbCBsb2FkTmliXSk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2Nh
cGVQbHVnaW5Ib3N0TWFuYWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5I
b3N0TWFuYWdlcjo6c3Bhd25QbHVnaW5Ib3N0KToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQ
bHVnaW5Ib3N0TWFuYWdlcjo6ZGlkQ3JlYXRlV2luZG93KToKKyAgICAgICAgKiBQbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2Nh
cGVQbHVnaW5Ib3N0UHJveHk6Om1ha2VDdXJyZW50UHJvY2Vzc0Zyb250UHJvY2Vzcyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjptYWtlUGx1Z2luSG9zdFByb2Nl
c3NGcm9udFByb2Nlc3MgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhv
c3RQcm94eTo6aXNQbHVnaW5Ib3N0UHJvY2Vzc0Zyb250UHJvY2VzcyBjb25zdCk6CisgICAgICAg
ICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6Om1vdXNlRXZlbnQpOgorICAg
ICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAg
ICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRyYXdSZWN0Ol0pOgorICAgICAg
ICAqIFBsdWdpbnMvSG9zdGVkL1dlYlRleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubToKKyAgICAg
ICAgKC1bV2ViVGV4dElucHV0UGFuZWwgX2ludGVycHJldEtleUV2ZW50OnN0cmluZzpdKToKKyAg
ICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgt
W1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcgY29udmVydEZyb21YOmFuZFk6c3BhY2U6dG9YOmFu
ZFk6c3BhY2U6XSk6CisgICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblBhY2thZ2Uu
bW06CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1Z2luUGFja2FnZSBfdHJ5TG9hZF0pOgorICAg
ICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoLVtXZWJO
ZXRzY2FwZVBsdWdpblZpZXcgc2F2ZUFuZFNldE5ld1BvcnRTdGF0ZUZvclVwZGF0ZTpdKToKKyAg
ICAgICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5WaWV3IHNlbmREcmF3UmVjdEV2ZW50Ol0pOgorICAg
ICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpblZpZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICogUGx1
Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tOgorICAgICAgICAoV2ViS2l0X1RTVXBkYXRlQ2hl
Y2tfYWxlcnREaWRFbmRfcmV0dXJuQ29kZV9jb250ZXh0SW5mb18pOgorICAgICAgICAoV2ViS2l0
X05TQWxlcnRfYmVnaW5TaGVldE1vZGFsRm9yV2luZG93X21vZGFsRGVsZWdhdGVfZGlkRW5kU2Vs
ZWN0b3JfY29udGV4dEluZm9fKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVN
YWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRHJhZ0NsaWVudDo6c3RhcnRE
cmFnKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToK
KyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRv
RG93bmxvYWQpOgorICAgICAgICAod2ViR2V0TlNJbWFnZSk6CisgICAgICAgICogV2ViSW5zcGVj
dG9yL1dlYk5vZGVIaWdobGlnaHQubW06CisgICAgICAgICogV2ViSW5zcGVjdG9yL1dlYk5vZGVI
aWdobGlnaHRWaWV3Lm1tOgorICAgICAgICAoLVtXZWJOb2RlSGlnaGxpZ2h0VmlldyBkcmF3UmVj
dDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkNsaXBWaWV3Lm1tOgorICAgICAgICAoLVtXZWJD
bGlwVmlldyBpbml0V2l0aEZyYW1lOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06
CisgICAgICAgICgtW1dlYkZyYW1lIF91cGRhdGVCYWNrZ3JvdW5kQW5kVXBkYXRlc1doaWxlT2Zm
c2NyZWVuXSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9kcmF3UmVjdDpjb250ZW50c09ubHk6XSk6
CisgICAgICAgICgtW1dlYkZyYW1lIGFjY2Vzc2liaWxpdHlSb290XSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViRnVsbFNjcmVl
bkNvbnRyb2xsZXIgZW50ZXJGdWxsU2NyZWVuOl0pOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVu
Q29udHJvbGxlciBmaW5pc2hlZEVudGVyRnVsbFNjcmVlbkFuaW1hdGlvbjpdKToKKyAgICAgICAg
KC1bV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIgZXhpdEZ1bGxTY3JlZW5dKToKKyAgICAgICAgKC1b
V2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIgZmluaXNoZWRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbjpd
KToKKyAgICAgICAgKC1bV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIgX3N0YXJ0RW50ZXJGdWxsU2Ny
ZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOl0pOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29u
dHJvbGxlciBfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjpdKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtOU1dpbmRvdyBfd2Vi
X2JvcmRlclZpZXddKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3VwZGF0ZU1vdXNlb3Zlcldp
dGhGYWtlRXZlbnRdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3NldEFzaWRlU3Vidmlld3Nd
KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2F1dG9zY3JvbGxdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IG1vdXNlRG93bjpd
KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgbW91c2VEcmFnZ2VkOl0pOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBtb3VzZVVwOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfZW5kUHJpbnRN
b2RlQW5kUmVzdG9yZVdpbmRvd0F1dG9kaXNwbGF5XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3
IGtub3dzUGFnZVJhbmdlOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBhY2Nlc3NpYmlsaXR5
SGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2ZvbnRBdHRyaWJ1dGVzRnJvbUZv
bnRQYXN0ZWJvYXJkXSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9jb2xvckFzU3RyaW5nOl0p
OgorICAgICAgICAoLVtXZWJIVE1MVmlldyBjb3B5Rm9udDpdKToKKyAgICAgICAgKC1bV2ViSFRN
TFZpZXcgX2V4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHNdKToKKyAgICAgICAgKC1bV2ViSFRN
TFZpZXcgYXR0YWNoUm9vdExheWVyOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyB0ZXh0U3Rv
cmFnZV0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfdXBkYXRlU2VsZWN0aW9uRm9ySW5wdXRN
YW5hZ2VyXSk6CisgICAgICAgICogV2ViVmlldy9XZWJQREZWaWV3Lm1tOgorICAgICAgICAoX2Fw
cGxpY2F0aW9uSW5mb0Zvck1JTUVUeXBlKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBjZW50ZXJT
ZWxlY3Rpb25JblZpc2libGVBcmVhOl0pOgorICAgICAgICAoLVtXZWJQREZWaWV3IF9yZWN1cnNp
dmVEaXNwbGF5UmVjdElmTmVlZGVkSWdub3JpbmdPcGFjaXR5OmlzVmlzaWJsZVJlY3Q6cmVjdElz
VmlzaWJsZVJlY3RGb3JWaWV3OnRvcFZpZXc6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX3Jl
Y3Vyc2l2ZURpc3BsYXlBbGxEaXJ0eVdpdGhMb2NrRm9jdXM6dmlzUmVjdDpdKToKKyAgICAgICAg
KC1bV2ViUERGVmlldyBfcmVjdXJzaXZlOmRpc3BsYXlSZWN0SWdub3JpbmdPcGFjaXR5OmluQ29u
dGV4dDp0b3BWaWV3Ol0pOgorICAgICAgICAoLVtXZWJQREZWaWV3IHNlYXJjaEZvcjpkaXJlY3Rp
b246Y2FzZVNlbnNpdGl2ZTp3cmFwOnN0YXJ0SW5TZWxlY3Rpb246XSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dlYlRleHRD
b21wbGV0aW9uQ29udHJvbGxlciBfYnVpbGRVSV0pOgorICAgICAgICAoLVtXZWJUZXh0Q29tcGxl
dGlvbkNvbnRyb2xsZXIgX3BsYWNlUG9wdXBXaW5kb3c6XSk6CisgICAgICAgICogV2ViVmlldy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlk
ZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbToKKyAgICAgICAgKGNyZWF0ZU1lZGlh
VUlCYWNrZ3JvdW5kVmlldyk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXZWJUZXh0TGlzdFRvdWNoQmFyVmlld0NvbnRyb2xsZXIgaW5pdFdpdGhXZWJWaWV3Ol0p
OgorICAgICAgICAoLVtXZWJWaWV3IF9kaXNwYXRjaFRpbGVEaWREcmF3Ol0pOgorICAgICAgICAo
LVtXZWJWaWV3IGVuY29kZVdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1bV2ViVmlldyBtYWluRnJh
bWVJY29uXSk6CisgICAgICAgIChMYXllckZsdXNoQ29udHJvbGxlcjo6Zmx1c2hMYXllcnMpOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViV2luZG93QW5pbWF0aW9uLm1tOgorICAgICAgICAoc2V0U2Nh
bGVkRnJhbWVGb3JXaW5kb3cpOgorCiAyMDE4LTA4LTI3ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCAtLSBkaXNhYmxlIExU
TyBmb3IgcHJvZHVjdGlvbiBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmgKaW5kZXggMTYzNjQ2OTYzODlkZWM5MGUwNTBlZDIwMDBlYWU3MmMxZDc5
MjEzYS4uYTY1MDU1ZDg0OTBiNmY2NDNhYzNhZmYyOTUwMzhiYmRjMzNiZGEyMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE1OCwxOCArMTU4
LDkgQEAgcHVibGljOgogICAgIHZvaWQqIGdldFByaXZhdGUoKTsKIAogICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgZml4IHRoZSB3YXJuaW5ncyBmb3IgZXh0ZXJuLXRlbXBsYXRlIGluIEpTT2JqZWN0
IHRlbXBsYXRlIGNsYXNzZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjE5NzkKLSNpZiBDT01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3VuZGVm
aW5lZC12YXItdGVtcGxhdGUiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiCi0j
ZW5kaWYKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmRl
ZmluZWQtdmFyLXRlbXBsYXRlIikKICAgICBERUNMQVJFX0lORk87Ci0jaWYgQ09NUElMRVIoQ0xB
TkcpCi0jaWYgX19oYXNfd2FybmluZygiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKIAogICAg
IEpTQ2xhc3NSZWYgY2xhc3NSZWYoKSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNrT2JqZWN0RGF0
YS0+anNDbGFzczsgfQogICAgIGJvb2wgaW5oZXJpdHMoSlNDbGFzc1JlZikgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCmluZGV4IDNmYzg2MTIxOWEzMDg0
NWFhOGJlODY0NDYwNThhZmIzZjYyMDdhZDkuLjE3ZGY4ODgxODIxZjdjY2QyMTM1OGI4MzVlOGI5
YjliNDE4N2RhMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
dGVzdGFwaS5jCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5j
CkBAIC0xMTQwLDEwICsxMTQwLDcgQEAgc3RhdGljIGJvb2wgZ2xvYmFsQ29udGV4dE5hbWVUZXN0
KCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51
c2VkLWJ1dC1zZXQtdmFyaWFibGUiCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVW
RUwoIi1XdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUiKTsKIHN0YXRpYyB2b2lkIGNoZWNrQ29uc3Ru
ZXNzSW5KU09iamVjdE5hbWVzKCkKIHsKICAgICBKU1N0YXRpY0Z1bmN0aW9uIGZ1bjsKQEAgLTEx
NTEsOSArMTE0OCw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrQ29uc3RuZXNzSW5KU09iamVjdE5hbWVz
KCkKICAgICBKU1N0YXRpY1ZhbHVlIHZhbDsKICAgICB2YWwubmFtZSA9ICJzb21ldGhpbmciOwog
fQotI2lmIENPTVBJTEVSKEdDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYK
K0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKCItV3VudXNlZC1idXQtc2V0LXZhcmlh
YmxlIik7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCmluZGV4IDU1OTkwOGFkZDAzZGUyMTVh
YTYwYWY3MjgwOWZhMzNlMWM5ZDk3YTkuLjMzNmFmMzdjMDQ5NDIxMzA0NDU5ODBkZDE3OWY3ZTNi
YzUzMTc5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlu
a0J1ZmZlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZl
ci5oCkBAIC0yNjMsMTUgKzI2MywxMSBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8UHRyVGFnIHRh
ZywgdHlwZW5hbWUuLi4gQXJncz4KICAgICBDb2RlUmVmPHRhZz4gZmluYWxpemVDb2RlV2l0aERp
c2Fzc2VtYmx5KGNvbnN0IGNoYXIqIGZvcm1hdCwgQXJncy4uLiBhcmdzKQogICAgIHsKLSNpZiBD
T01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtc2VjdXJpdHkiCi0jZW5kaWYKKyAgICAg
ICAgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HKCItV2Zvcm1hdC1ub25saXRlcmFsIik7Cisg
ICAgICAgIElHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFORygiLVdmb3JtYXQtc2VjdXJpdHkiKTsK
ICAgICAgICAgcmV0dXJuIGZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJseUltcGwoZm9ybWF0LCBh
cmdzLi4uKS50ZW1wbGF0ZSByZXRhZ2dlZDx0YWc+KCk7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NM
QU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgICAgICBJR05PUkVf
V0FSTklOR19HQ0NfT1JfQ0xBTkdfRU5EKCItV2Zvcm1hdC1zZWN1cml0eSIpOworICAgICAgICBJ
R05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfRU5EKCItV2Zvcm1hdC1ub25saXRlcmFsIik7CiAg
ICAgfQogCiAgICAgdGVtcGxhdGU8UHRyVGFnIHRhZz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzTG93ZXJUb0Fpci5jcHAKaW5kZXggMmNkYjcyNDNkMzRlMjdlNTc2MWM5MzQ5MzVjZTU1MTgx
NGQ1YjYyYS4uNWNjMDUyNTMzYjQwNjMxYzBiMTYzNTk3NGJhZWY5ZWY5OGFlZTFlOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKQEAgLTYyLDEwICs2Miw5IEBA
CiAjaW5jbHVkZSA8d3RmL0luZGV4U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAK
LSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0dXJuLXR5cGUi
Ci0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRf
RElTQUJMRUQKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUwoIi1XcmV0dXJuLXR5cGUiKQor
I2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCkBAIC0zNTI3LDggKzM1
MjYsOCBAQCB2b2lkIGxvd2VyVG9BaXIoUHJvY2VkdXJlJiBwcm9jZWR1cmUpCiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpCMwogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBB
U1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9XQVJOSU5HX0dDQ19U
T1BfTEVWRUxfRU5EKCItV3JldHVybi10eXBlIikKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxF
KEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCmluZGV4IDdlYmY2NmI3
MGE0NTBjOTJhZTE1NDlkNTI2NGJjOTkwZGExYmVjMTQuLjcyOGFkNzRkZTU3YTA0NDQ1YjdkNWU1
NTU1YzdmYWQwMGViMTk4MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M09wY29kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcApA
QCAtMzAsMTAgKzMwLDkgQEAKIAogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogCi0jaWYg
Q09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2Vu
ZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FC
TEVECitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMKCItV3JldHVybi10eXBlIikKKyNlbmRp
ZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIApAQCAtMzczLDggKzM3Miw4IEBA
IHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBPcGNvZGUgb3Bjb2RlKQogCiB9
IC8vIG5hbWVzcGFjZSBXVEYKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVE
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYg
QVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfV0FSTklOR19HQ0Nf
VE9QX0xFVkVMX0VORCgiLVdyZXR1cm4tdHlwZSIpCisjZW5kaWYKIAogI2VuZGlmIC8vIEVOQUJM
RShCM19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNUeXBlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNUeXBlLmgKaW5kZXggNGNlYWE4YTFkZjE0Yjhi
NmI2OGUwZTgwYmZlYjZhOWUwYTJkOGU4Mi4uOWYzMjFkOTM4YTllMTgzNGZkNzJlYTk1M2Y0MTE2
MjZkOGFkNTMxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVHlwZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGUuaApAQCAtMzAsMTAgKzMwLDkg
QEAKICNpbmNsdWRlICJCM0NvbW1vbi5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
IAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlw
ZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VS
VF9ESVNBQkxFRAorSUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTCgiLVdyZXR1cm4tdHlwZSIp
CisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTg3LDggKzg2
LDggQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwgSlNDOjpCMzo6VHlwZSk7CiAK
IH0gLy8gbmFtZXNwYWNlIFdURgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJM
RUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAm
JiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9XQVJOSU5HX0dD
Q19UT1BfTEVWRUxfRU5EKCItV3JldHVybi10eXBlIikKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5B
QkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGVN
YXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGVNYXAuaAppbmRleCBjMGVhNDEz
MDQ4YTU1NTZmNWRjMzQ1OGQzODQwZTVmYjViOTlkNmQxLi5jZjE4NDNhOGJmMTAyNzU1Zjg3NTc4
NmMwMjEwNmYxMWM5MGFmYTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNUeXBlTWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVHlwZU1hcC5oCkBA
IC0zMCwxMCArMzAsOSBAQAogI2luY2x1ZGUgIkIzVHlwZS5oIgogI2luY2x1ZGUgPHd0Zi9Qcmlu
dFN0cmVhbS5oPgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3JldHVybi10eXBlIgotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVE
CisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMKCItV3Jl
dHVybi10eXBlIikKKyNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIApA
QCAtMTAxLDggKzEwMCw4IEBAIHByaXZhdGU6CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwog
Ci0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNp
ZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKCItV3Jl
dHVybi10eXBlIikKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dpZHRoLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNXaWR0aC5oCmluZGV4IGUzNjU4M2Y2OTRiODgzZmIyYjg4OWQwMTMxMDgzNGEw
NTMxY2ZjNDcuLjk4OTU4MzZiMzI3YTQyZWJhYzIyZDIyZGZjMTYzYzJlZjMxMzM1NzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dpZHRoLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzV2lkdGguaApAQCAtMzAsMTAgKzMwLDkgQEAKICNpbmNsdWRlICJC
M0JhbmsuaCIKICNpbmNsdWRlICJCM1R5cGUuaCIKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNT
RVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0Mp
ICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1dBUk5JTkdf
R0NDX1RPUF9MRVZFTCgiLVdyZXR1cm4tdHlwZSIpCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTE0Myw5ICsxNDIsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwo
UHJpbnRTdHJlYW0mLCBKU0M6OkIzOjpXaWR0aCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCi0j
aWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0
aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBB
U1NFUlRfRElTQUJMRUQKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKCItV3JldHVy
bi10eXBlIikKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwCmluZGV4IGY5ZTQ2OWMwNDdjYmViMzg3MTc3NzUx
YzQ5Yzc2NmM1NzllNjg1MzkuLjJhYzQ4NDk2NjNiOTY3ODkzNGI2ZDA4NWZkY2ZmMDY4ODVmMjc0
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKQEAgLTM0LDEwICsz
NCw5IEBACiAjaW5jbHVkZSAiRlBSSW5mby5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKIAotI2lm
IENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNl
bmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNB
QkxFRAorSUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTF9FTkQoIi1XcmV0dXJuLXR5cGUiKQor
I2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsK
IApAQCAtMzc5LDggKzM3OCw4IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBBcmc6OlNpZ25lZG5lc3Mgc2lnbmVkbmVzcykKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKLSNp
ZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwb3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFT
U0VSVF9ESVNBQkxFRAorSUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTF9FTkQoIi1XcmV0dXJu
LXR5cGUiKQorI2VuZGlmCiAKICNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyQXJnLmgKaW5kZXggODM4ZmNhODkyMTI3MWMxYjA3NzhiMjVkNDUwNTc5
ZGU0Mzc5NTc2Ny4uYzFhNDIzNTJhZmQ4ZDg3YjcyODVjOWZhNGJlZTIwZTVlNTQwMmY2NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCkBAIC0zNSwxMCArMzUsOSBAQAogI2lu
Y2x1ZGUgIkIzV2lkdGguaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIAotI2lmIENPTVBJ
TEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAv
LyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAor
SUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTCgiLVdyZXR1cm4tdHlwZSIpCisjZW5kaWYKIAog
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTE0OTQsOCArMTQ5Myw4IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpCMzo6QWlyOjpBcmc+IDogU2ltcGxlQ2xh
c3NIYXNoVHJhaXRzPEpTQzo6QjM6CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCi0jaWYgQ09NUElM
RVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0j
ZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElT
QUJMRUQKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKCItV3JldHVybi10eXBlIikK
KyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJDb2RlLmgKaW5kZXggNzU5NzAzMGZkY2YwNDJiZmMzZDhkZWEyMjgxYjllYjI4YmEy
NTQzNS4uMjE4MzlkNTk4MzViNWJhMzNjMzZjYjM1YzJiM2QyMjg5MDY0MjY0YSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKQEAgLTQ0LDEwICs0NCw5IEBAIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCiBjbGFzcyBQcm9jZWR1cmU7CiAKLSNpZiBDT01QSUxF
UihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0dXJuLXR5cGUiCi0jZW5kaWYgLy8g
Q09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lH
Tk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUwoIi1XcmV0dXJuLXR5cGUiKQorI2VuZGlmCiAKIG5h
bWVzcGFjZSBBaXIgewogCkBAIC0zODgsOCArMzg3LDggQEAgcHJpdmF0ZToKIAogfSB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6QjM6OkFpcgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElT
QUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0ND
KSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9XQVJOSU5H
X0dDQ19UT1BfTEVWRUxfRU5EKCItV3JldHVybi10eXBlIikKKyNlbmRpZgogCiAjZW5kaWYgLy8g
RU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9PcGNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaAppbmRl
eCAwN2Q5YTczMTRlZWIxMDljNzMxMjM3ZDRiZTMyNzEzMWIxMWM5NGVlLi5lZDdlMWRjNzVlMWRk
ZTUzMzAyNzdiNjQxODFlYzU1ZDJjOTQ1MmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL09wY29kZS5oCkBAIC03NCwxOCArNzQsMTMgQEAgY29uc3QgaW50IG51bU9wY29kZUlEcyA9
IE5VTUJFUl9PRl9CWVRFQ09ERV9JRFMgKyBOVU1CRVJfT0ZfQllURUNPREVfSEVMUEVSX0lEUzsK
ICAgICBjb25zdCBpbnQgb3Bjb2RlTGVuZ3Roc1tudW1PcGNvZGVJRHNdID0geyBGT1JfRUFDSF9P
UENPREVfSUQoT1BDT0RFX0lEX0xFTkdUSF9NQVApIH07CiAjdW5kZWYgT1BDT0RFX0lEX0xFTkdU
SF9NQVAKIAotI2lmIENPTVBJTEVSKEdDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3R5cGUtbGltaXRzIgotI2VuZGlmCitJ
R05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMKCItV3R5cGUtbGltaXRzIikKIAogI2RlZmluZSBW
RVJJRllfT1BDT0RFX0lEKGlkLCBzaXplKSBDT01QSUxFX0FTU0VSVChpZCA8PSBudW1PcGNvZGVJ
RHMsIEFTU0VSVF9USEFUX0pTX09QQ09ERV9JRFNfQVJFX1ZBTElEKTsKICAgICBGT1JfRUFDSF9P
UENPREVfSUQoVkVSSUZZX09QQ09ERV9JRCk7CiAjdW5kZWYgVkVSSUZZX09QQ09ERV9JRAogCi0j
aWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdO
T1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTF9FTkQoIi1XdHlwZS1saW1pdHMiKQogCiAjaWYgRU5B
QkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKIHR5cGVkZWYgdm9pZCogT3Bjb2RlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBiZDE4
ZjlkZjliN2U4NTMwOTIzZWRmNmUwYjQxMDhmNmQyOTdhMDY3Li5hYWVmNmEyMjhkOGNlOWJkMWE4
OTJmMDJkNjdkNTU5NTkyMDFhODg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtOTY1NywxNCArOTY1Nyw5IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OnNwZWN1bGF0ZU51bWJlcihFZGdlIGVkZ2UpCiAgICAgICAgIEpTVmFsdWVSZWdz
KGdwciksIGVkZ2UsIFNwZWNCeXRlY29kZU51bWJlciwKICAgICAgICAgbV9qaXQuYnJhbmNoSWZO
b3ROdW1iZXIoZ3ByKSk7CiAjZWxzZQotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2VudW0tY29tcGFyZSIKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFORygi
LVdlbnVtLWNvbXBhcmUiKTsKICAgICBzdGF0aWNfYXNzZXJ0KEpTVmFsdWU6OkludDMyVGFnID49
IEpTVmFsdWU6Okxvd2VzdFRhZywgIkludDMyVGFnIGlzIGluY2x1ZGVkIGluID49IEpTVmFsdWU6
Okxvd2VzdFRhZyByYW5nZS4iKTsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21h
IEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NM
QU5HX0VORCgiLVdlbnVtLWNvbXBhcmUiKTsKICAgICBHUFJSZWcgdGFnR1BSID0gdmFsdWUudGFn
R1BSKCk7CiAgICAgREZHX1RZUEVfQ0hFQ0soCiAgICAgICAgIHZhbHVlLmpzVmFsdWVSZWdzKCks
IGVkZ2UsIH5TcGVjSW50MzJPbmx5LApAQCAtMTAxNzEsMTQgKzEwMTY2LDkgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6c3BlY3VsYXRlTWlzYyhFZGdlIGVkZ2UsIEpTVmFsdWVSZWdzIHJlZ3MpCiAg
ICAgICAgIHJlZ3MsIGVkZ2UsIFNwZWNNaXNjLAogICAgICAgICBtX2ppdC5icmFuY2g2NChNYWNy
b0Fzc2VtYmxlcjo6QWJvdmUsIHJlZ3MuZ3ByKCksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
NjQoVGFnQml0VHlwZU90aGVyIHwgVGFnQml0Qm9vbCB8IFRhZ0JpdFVuZGVmaW5lZCkpKTsKICNl
bHNlCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZW51bS1jb21wYXJlIgotI2Vu
ZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HKCItV2VudW0tY29tcGFyZSIpOwog
ICAgIHN0YXRpY19hc3NlcnQoSlNWYWx1ZTo6SW50MzJUYWcgPj0gSlNWYWx1ZTo6VW5kZWZpbmVk
VGFnLCAiSW50MzJUYWcgaXMgaW5jbHVkZWQgaW4gPj0gSlNWYWx1ZTo6VW5kZWZpbmVkVGFnIHJh
bmdlLiIpOwotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0
aWMgcG9wCi0jZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfRU5EKCItV2Vu
dW0tY29tcGFyZSIpOwogICAgIERGR19UWVBFX0NIRUNLKAogICAgICAgICByZWdzLCBlZGdlLCB+
U3BlY0ludDMyT25seSwKICAgICAgICAgbV9qaXQuYnJhbmNoSWZJbnQzMihyZWdzLnRhZ0dQUigp
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcAppbmRleCA3ZTFjYmNmOGVkOTY1ZWNjOWE2Y2E4NjRkNWI4N2ZlMWI3NDVkN2ViLi42NjRl
N2I0MWIxZjA1ODU2NWI3NWRlNGM5MGIzNmZiZWE3NDUzOGY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTg3NiwxMiArODc2
LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZSkKIAogLy8gQ2xh
bmcgc2hvdWxkIGFsbG93IHVucmVhY2hhYmxlIFtbY2xhbmc6OmZhbGx0aHJvdWdoXV0gaW4gdGVt
cGxhdGUgZnVuY3Rpb25zIGlmIGFueSB0ZW1wbGF0ZSBleHBhbnNpb24gdXNlcyBpdAogLy8gaHR0
cDovL2xsdm0ub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTE4NjE5Ci0jaWYgQ09NUElMRVIoQ0xB
TkcpICYmIGRlZmluZWQoX19oYXNfd2FybmluZykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jaWYgX19oYXNfd2FybmluZygiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIpCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIKLSNlbmRp
ZgotI2VuZGlmCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XaW1wbGljaXQtZmFs
bHRocm91Z2giKQogdGVtcGxhdGU8Ym9vbCBzdHJpY3Q+CiBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6
OmZpbGxTcGVjdWxhdGVJbnQzMkludGVybmFsKEVkZ2UgZWRnZSwgRGF0YUZvcm1hdCYgcmV0dXJu
Rm9ybWF0KQogewpAQCAtMTAxMiw5ICsxMDA3LDcgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpm
aWxsU3BlY3VsYXRlSW50MzJJbnRlcm5hbChFZGdlIGVkZ2UsIERhdGFGb3JtYXQmIHJldHVybkYK
ICAgICAgICAgcmV0dXJuIEludmFsaWRHUFJSZWc7CiAgICAgfQogfQotI2lmIENPTVBJTEVSKENM
QU5HKSAmJiBkZWZpbmVkKF9faGFzX3dhcm5pbmcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XaW1wbGlj
aXQtZmFsbHRocm91Z2giKQogCiBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJ
bnQzMihFZGdlIGVkZ2UsIERhdGFGb3JtYXQmIHJldHVybkZvcm1hdCkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTE91dHB1dC5oCmluZGV4IDlmNTkzNjljODliZTU3ZTZlZTc3OWUxMTZmMzdm
ZTZjMmI3ZTk3MGYuLjdhNmEwMGQxOTZlMTZjYzJjODg5ZTcyYmEwMzE4NDZmMjUxZjFhNWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaApAQCAtNTAsMTEgKzUwLDggQEAKICNp
bmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogLy8gRklYTUU6IHJlbW92ZSB0aGlz
IG9uY2UgZXZlcnl0aGluZyBjYW4gYmUgZ2VuZXJhdGVkIHRocm91Z2ggQjMuCi0jaWYgQ09NUElM
RVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdD
QyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbWlzc2luZy1ub3JldHVybiIKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgotI2VuZGlmIC8vIENPTVBJTEVS
KEdDQ19PUl9DTEFORykKK0lHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFOR19UT1BfTEVWRUwoIi1X
bWlzc2luZy1ub3JldHVybiIpCitJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfVE9QX0xFVkVM
KCItV3VudXNlZC1wYXJhbWV0ZXIiKQogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNTAwLDkgKzQ5
Nyw4IEBAIGlubGluZSB2b2lkIE91dHB1dDo6YWRkSW5jb21pbmdUb1BoaShMVmFsdWUgcGhpLCBW
YWx1ZUZyb21CbG9jayB2YWx1ZSwgUGFyYW1zLi4uCiAgICAgYWRkSW5jb21pbmdUb1BoaShwaGks
IHRoZVJlc3QuLi4pOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCitJR05P
UkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bnVzZWQtcGFyYW1ldGVy
IikKK0lHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFOR19UT1BfTEVWRUxfRU5EKCItV21pc3Npbmct
bm9yZXR1cm4iKQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0NDYWxsSGVscGVycy5oCmluZGV4IDFkOGUzYmVlOWI2YmQ2N2U3MDkzNDc1NTM2
ZDJiZDU3ZDFmMzE4M2YuLjNmYTgzMWRhZjZhMDg1YmNmNmFlNzk1ZjY2ZjQyNWQ3MDBlZTc0NTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtMzI5LDE0ICsz
MjksOSBAQCBwcml2YXRlOgogCiAgICAgICAgIGN1cnJlbnRHUFJBcmd1bWVudCArPSBleHRyYUdQ
UkFyZ3M7CiAgICAgICAgIGN1cnJlbnRGUFJBcmd1bWVudCAtPSBudW1Dcm9zc1NvdXJjZXM7Ci0j
aWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdHlwZS1saW1pdHMiCi0jZW5kaWYKKyAg
ICAgICAgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HKCItV3R5cGUtbGltaXRzIik7CiAgICAg
ICAgIEFTU0VSVChjdXJyZW50R1BSQXJndW1lbnQgPj0gR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVu
dFJlZ2lzdGVycyB8fCBjdXJyZW50RlBSQXJndW1lbnQgPj0gRlBSSW5mbzo6bnVtYmVyT2ZBcmd1
bWVudFJlZ2lzdGVycyk7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgICAgICBJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xB
TkdfRU5EKCItV3R5cGUtbGltaXRzIik7CiAKICAgICAgICAgdW5zaWduZWQgcG9rZU9mZnNldCA9
IFBPS0VfQVJHVU1FTlRfT0ZGU0VUICsgZXh0cmFQb2tlOwogICAgICAgICBwb2tlT2Zmc2V0ICs9
IHN0ZDo6bWF4KGN1cnJlbnRHUFJBcmd1bWVudCwgbnVtYmVyT2ZHUEFyZ3VtZW50UmVnaXN0ZXJz
KSAtIG51bWJlck9mR1BBcmd1bWVudFJlZ2lzdGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50RGF0YS5jcHAKaW5kZXggYzkzZDE1Yzc0YzU4ZmY1ZDk2YWEwYWFkOTQzNDEzZjA4
NWEzZDkyZS4uMWNiNzdhNjJiNTUwNDJlNzdkOWZlOWYxNWI5YzhmN2JlMzljNDc4YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKQEAgLTY3LDEwICs2Nyw3IEBA
IHZvaWQgaW5pdGlhbGl6ZSgpCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIH0KIAotI2lmIENPTVBJ
TEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV21pc3Npbmctbm9yZXR1cm4iCi0jZW5kaWYKK0lHTk9SRV9X
QVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdtaXNzaW5nLW5vcmV0dXJuIikKIHZvaWQgRGF0YTo6
cGVyZm9ybUFzc2VydGlvbnMoVk0mIHZtKQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0x
OTksOCArMTk2LDYgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyhWTSYgdm0pCiAgICAg
ICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCku
aXNPbmx5TnVtYmVyKCkpOwogICAgIH0KIH0KLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xF
VkVMX0VORCgiLVdtaXNzaW5nLW5vcmV0dXJuIikKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxM
SW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0
aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApp
bmRleCAyODQzMzA1YjMwNmExOGRkOTQ4YTdlMWQ5ZWMwMTA0MTNiZDg2MWFiLi5jODQ1Y2UwOTcy
Yjg2NWQ2OTkxYjg3MjljMDgwMzVkMmZmMmY4NmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTIwNSwxNiArMjA1LDEyIEBAIHZvaWQg
c2xvd1BhdGhMbihjb25zdCBUeXBlcyYuLi4gdmFsdWVzKQogdGVtcGxhdGU8dHlwZW5hbWUuLi4g
VHlwZXM+CiB2b2lkIHNsb3dQYXRoTG9nRihjb25zdCBjaGFyKiBmb3JtYXQsIGNvbnN0IFR5cGVz
Ji4uLiB2YWx1ZXMpCiB7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0
LW5vbmxpdGVyYWwiCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LXNl
Y3VyaXR5IgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HKCItV2Zvcm1h
dC1ub25saXRlcmFsIik7CisgICAgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HKCItV2Zvcm1h
dC1zZWN1cml0eSIpOwogICAgIGlmIChPcHRpb25zOjp0cmFjZUxMSW50U2xvd1BhdGgoKSkKICAg
ICAgICAgZGF0YUxvZ0YoZm9ybWF0LCB2YWx1ZXMuLi4pOwotI2lmIENPTVBJTEVSKEdDQ19PUl9D
TEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBJR05PUkVfV0FS
TklOR19HQ0NfT1JfQ0xBTkdfRU5EKCItV2Zvcm1hdC1zZWN1cml0eSIpOworICAgIElHTk9SRV9X
QVJOSU5HX0dDQ19PUl9DTEFOR19FTkQoIi1XZm9ybWF0LW5vbmxpdGVyYWwiKTsKIH0KIAogI2Vs
c2UgLy8gbm90IExMSU5UX1RSQUNJTkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29uZmlnRmlsZS5jcHAKaW5kZXggOThjMTk2ZjgyZjY4NTFiZGY3MGVmOGQ2MjIzYjVhMTY5MTI5
MzYyZi4uMDQ5NzQ2NDhkNDhjYzNjNDc0NWEzNDY3ZmFmN2JhZThlNzY3OGY0ZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uZmlnRmlsZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uZmlnRmlsZS5jcHAKQEAgLTQ5MSwxNCArNDkx
LDEzIEBAIHZvaWQgQ29uZmlnRmlsZTo6Y2Fub25pY2FsaXplUGF0aHMoKQogICAgICAgICAgICAg
ICAgICAgICBzdHJuY2F0KGZpbGVuYW1lQnVmZmVyLCAiLyIsIDIpOyAvLyBSb29tIGZvciAnLycg
cGx1cyBOVUwKICNpZiBDT01QSUxFUihHQ0MpCiAjaWYgR0NDX1ZFUlNJT05fQVRfTEVBU1QoOCwg
MCwgMCkKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV3N0cmluZ29wLXRydW5jYXRpb24iCisgICAgICAgICAgICAgICAgSUdOT1JF
X1dBUk5JTkdfR0NDKCItV3N0cmluZ29wLXRydW5jYXRpb24iKTsKICNlbmRpZgogI2VuZGlmCiAg
ICAgICAgICAgICAgICAgc3RybmNhdChmaWxlbmFtZUJ1ZmZlciwgbV9maWxlbmFtZSwgc2l6ZW9m
KGZpbGVuYW1lQnVmZmVyKSAtIHN0cmxlbihmaWxlbmFtZUJ1ZmZlcikgLSAxKTsKICNpZiBDT01Q
SUxFUihHQ0MpCiAjaWYgR0NDX1ZFUlNJT05fQVRfTEVBU1QoOCwgMCwgMCkKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAgICAgSUdOT1JFX1dBUk5JTkdfR0NDX0VORCgi
LVdzdHJpbmdvcC10cnVuY2F0aW9uIik7CiAjZW5kaWYKICNlbmRpZgogICAgICAgICAgICAgICAg
IHN0cm5jcHkobV9maWxlbmFtZSwgZmlsZW5hbWVCdWZmZXIsIHNfbWF4UGF0aExlbmd0aCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5
cGUuY3BwCmluZGV4IGYwNWNmZjVmODhhNTUxYzNhN2M0YmFhZDJmMDNjNWI0Nzc4OWFmNmQuLmMw
Y2FlMDVlMWQ1NGI5YzQ5NGZlMTYzNWJmYzM2Zjk5Nzc3MmJmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCkBAIC0y
MDgsMTAgKzIwOCw3IEBAIEVuY29kZWRKU1ZhbHVlIHNldERhdGEoRXhlY1N0YXRlKiBleGVjKQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLSNpZiBDT01Q
SUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdtaXNzaW5nLXByb3RvdHlwZXMiCi0jZW5kaWYKK0lHTk9S
RV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdtaXNzaW5nLXByb3RvdHlwZXMiKQogCiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9HZXR0ZXJCdWZmZXIoRXhlY1N0
YXRlKiBleGVjKQogewpAQCAtMzI4LDggKzMyNSw2IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRGbG9hdDY0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAg
ICByZXR1cm4gc2V0RGF0YTxGbG9hdDY0QWRhcHRvcj4oZXhlYyk7CiB9Ci0jaWYgQ09NUElMRVIo
Q0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9XQVJO
SU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XbWlzc2luZy1wcm90b3R5cGVzIikKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmgKaW5kZXggOGFj
ZmQ0OGUyM2ZmZDk2Y2JjYjJmYmI3YmY3MTJmNzgwOGY1YTQ0MC4uZDdjYmRmYzJhZDg5MDFlNmMy
MDU2ZDMyMDU3MGRhZmQzYzcyYTE5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0
b3IuaApAQCAtNDMsMTkgKzQzLDEwIEBAIHB1YmxpYzoKICAgICAgICAgVk0mLCBKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZSosIEpTT2JqZWN0KiBwcm90b3R5cGUsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgRnVuY3Rpb25FeGVjdXRhYmxlKiBwcml2YXRlQWxsb2NhdG9yKTsKIAogICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgZml4IHRoZSB3YXJuaW5ncyBmb3IgZXh0ZXJuLXRlbXBsYXRlIGluIEpTT2Jq
ZWN0IHRlbXBsYXRlIGNsYXNzZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjE5NzkKLSNpZiBDT01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3Vu
ZGVmaW5lZC12YXItdGVtcGxhdGUiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUi
Ci0jZW5kaWYKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1
bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKICAgICBERUNMQVJFX0lORk87Ci0jaWYgQ09NUElMRVIo
Q0xBTkcpCi0jaWYgX19oYXNfd2FybmluZygiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgotI2VuZGlmCi0gICAgCisgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRl
IikKKwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFs
T2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5cGUpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJv
dG90eXBlLmgKaW5kZXggNGUxZWI3ZDg4MzRjYmM1ZGU3MmNkNmNjNmIxZDI0YjQ2MTQzYzViNi4u
MGY2MGU4ZGViMzMwNDAxNmYwNTg3NTE5NjYzODcxN2Y4NDM2YjM1YyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5
cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld1Byb3RvdHlwZS5oCkBAIC00MywxOCArNDMsOSBAQCBwdWJsaWM6CiAgICAgICAgIFZN
JiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgZml4IHRoZSB3YXJuaW5ncyBmb3IgZXh0ZXJuLXRlbXBsYXRlIGluIEpTT2JqZWN0IHRlbXBs
YXRlIGNsYXNzZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5
NzkKLSNpZiBDT01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3VuZGVmaW5lZC12
YXItdGVtcGxhdGUiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiCi0jZW5kaWYK
LSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmRlZmluZWQt
dmFyLXRlbXBsYXRlIikKICAgICBERUNMQVJFX0lORk87Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0j
aWYgX19oYXNfd2FybmluZygiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfVE9QX0xFVkVMX0VORCgiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKICAgICAKICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpT
VmFsdWUgcHJvdG90eXBlKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnMuY3BwCmluZGV4IDQwN2M1NzA0NzQ2YjA0Y2ZmNzRkZmE5OGI5YmMzMTNmYzczMzY2NGYuLjA5
YjcwNWI0ODgyOTEwYTIwNjJhODczNTcyYzExMjk2NTBhZDQ0MmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCkBAIC03NDQsMTIgKzc0NCw3IEBAIGJvb2wgT3B0
aW9uczo6c2V0QWxpYXNlZE9wdGlvbihjb25zdCBjaGFyKiBhcmcpCiAgICAgaWYgKCFlcXVhbFN0
cikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jaWYgX19o
YXNfd2FybmluZygiLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdGF1dG9sb2dp
Y2FsLWNvbXBhcmUiCi0jZW5kaWYKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RP
UF9MRVZFTCgiLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCiAKICAgICAvLyBGb3IgZWFjaCBvcHRp
b24sIGNoZWNrIGlmIHRoZSBzcGVjaWZ5IGFyZyBpcyBhIG1hdGNoLiBJZiBzbywgc2V0IHRoZSBh
cmcKICAgICAvLyBpZiB0aGUgdmFsdWUgbWFrZXMgc2Vuc2UuIE90aGVyd2lzZSwgbW92ZSBvbiB0
byBjaGVja2luZyB0aGUgbmV4dCBvcHRpb24uCkBAIC03NzIsMTEgKzc2Nyw3IEBAIGJvb2wgT3B0
aW9uczo6c2V0QWxpYXNlZE9wdGlvbihjb25zdCBjaGFyKiBhcmcpCiAgICAgSlNDX0FMSUFTRURf
T1BUSU9OUyhGT1JfRUFDSF9PUFRJT04pCiAjdW5kZWYgRk9SX0VBQ0hfT1BUSU9OCiAKLSNpZiBD
T01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3RhdXRvbG9naWNhbC1jb21wYXJl
IikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgotI2VuZGlmCisgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSIp
CiAKICAgICByZXR1cm4gZmFsc2U7IC8vIE5vIG9wdGlvbiBtYXRjaGVkLgogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxpbmcuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxpbmcuY3BwCmluZGV4IGMzZGE4YzJjMjkz
ZmNjOWJjYzczZGYxMmY2OTZmNGNlM2I0OThkYTMuLjc3ZGY1ZGU4M2M5YzMzYzEyM2YwM2VjMjk4
MDI1MjkxMjQ3OGVhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9D
b2RlUHJvZmlsaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29kZVBy
b2ZpbGluZy5jcHAKQEAgLTQ0LDEwICs0NCw3IEBAIHZvbGF0aWxlIENvZGVQcm9maWxlKiBDb2Rl
UHJvZmlsaW5nOjpzX3Byb2ZpbGVTdGFjayA9IDA7CiBDb2RlUHJvZmlsaW5nOjpNb2RlIENvZGVQ
cm9maWxpbmc6OnNfbW9kZSA9IENvZGVQcm9maWxpbmc6OkRpc2FibGVkOwogV1RGOjpNZXRhQWxs
b2NhdG9yVHJhY2tlciogQ29kZVByb2ZpbGluZzo6c190cmFja2VyID0gMDsKIAotI2lmIENPTVBJ
TEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV21pc3Npbmctbm9yZXR1cm4iCi0jZW5kaWYKK0lHTk9SRV9X
QVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdtaXNzaW5nLW5vcmV0dXJuIikKIAogI2lmIEhBVkUo
TUFDSElORV9DT05URVhUKQogLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHN0YXJ0ICYgc3RvcCB0aGUg
dGltZXIuCkBAIC02Myw5ICs2MCw3IEBAIHN0YXRpYyB2b2lkIHNldFByb2ZpbGVUaW1lcih1bnNp
Z25lZCB1c2VjKQogfQogI2VuZGlmCiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVM
X0VORCgiLVdtaXNzaW5nLW5vcmV0dXJuIikKIAogI2lmIEhBVkUoTUFDSElORV9DT05URVhUKQog
c3RhdGljIHZvaWQgcHJvZmlsaW5nVGltZXIoaW50LCBzaWdpbmZvX3QqLCB2b2lkKiB1YXApCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvbnMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TZWN0aW9ucy5oCmluZGV4IGU2OTI0Yjc5NTNj
YzM2NDZiZWU5MDg0NDFhNjNjNjNjMjk0YTc3ZDYuLmYzYTFhYTBiYzcxMDcyZmJjZTFlYmVkN2Ri
NGM2ZGE4MjJiNjI3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21TZWN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TZWN0aW9u
cy5oCkBAIC0yNywxMCArMjcsOSBAQAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCi0jaWYg
Q09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2Vu
ZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FC
TEVECitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMKCItV3JldHVybi10eXBlIikKKyNlbmRp
ZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCkBAIC0xMDcsOCArMTA2LDgg
QEAgaW5saW5lIGNvbnN0IGNoYXIqIG1ha2VTdHJpbmcoU2VjdGlvbiBzZWN0aW9uKQogCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6V2FzbQogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElT
QUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0ND
KSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9XQVJOSU5H
X0dDQ19UT1BfTEVWRUxfRU5EKCItV3JldHVybi10eXBlIikKKyNlbmRpZgogCiAjZW5kaWYgLy8g
RU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vZ2VuZXJhdGVXYXNtVmFsaWRhdGVJbmxpbmVzSGVhZGVyLnB5IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vZ2VuZXJhdGVXYXNtVmFsaWRhdGVJbmxpbmVzSGVhZGVyLnB5CmluZGV4IGJj
NTRhMjIzNzQ2NWRiOWM3ZDkwM2YyMmE5NTQyYTFjYTY4ZWY1NTUuLjcxZmQyZTM2YjgxZTgwYmFl
MmRhNTU2ODMwZmZkMzdjZTIzM2ZhM2UgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9nZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIucHkK
QEAgLTEyNywxMCArMTI3LDkgQEAgY29udGVudHMgPSB3YXNtLmhlYWRlciArICIiIgogCiAjaW5j
bHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRf
RElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYg
QVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfV0FSTklOR19HQ0Nf
VE9QX0xFVkVMKCItV3JldHVybi10eXBlIikKKyNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIFdhc20gewogCkBAIC0xNjAsOSArMTU5LDkgQEAgYXV0byBWYWxpZGF0ZTo6c3RvcmUo
U3RvcmVPcFR5cGUgb3AsIEV4cHJlc3Npb25UeXBlIHBvaW50ZXIsIEV4cHJlc3Npb25UeXBlIHZh
bHUKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KIAotI2lmIENPTVBJTEVSKEdDQykgJiYg
QVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENP
TVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05P
UkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMX0VORCgiLVdyZXR1cm4tdHlwZSIpCisjZW5kaWYKIAog
I2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvQXNzZXJ0aW9ucy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAppbmRleCBm
ZThmYWMwN2Q2Zjc1NzNlMDJmMjY5ZGU1YjBiNTBmMmJkZTdkYzVkLi5kODY3YmE2OTJkNzVlOTc4
NmMxOGEzMzY0YjkzMWEwYmJkNTgzM2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Bc3Nl
cnRpb25zLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcApAQCAtNzksMTAg
Kzc5LDkgQEAgZXh0ZXJuICJDIiB7CiBzdGF0aWMgdm9pZCBsb2dUb1N0ZGVycihjb25zdCBjaGFy
KiBidWZmZXIpCiB7CiAjaWYgVVNFKEFQUExFX1NZU1RFTV9MT0cpCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIGFzbF9sb2coMCwgMCwgQVNMX0xFVkVMX05PVElDRSwgIiVzIiwg
YnVmZmVyKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogI2VuZGlmCiAgICAgZnB1dHMo
YnVmZmVyLCBzdGRlcnIpOwogfQpAQCAtOTQsMTQgKzkzLDkgQEAgc3RhdGljIHZvaWQgdnByaW50
Zl9zdGRlcnJfY29tbW9uKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmdzKQogICAgIGlm
IChzdHJzdHIoZm9ybWF0LCAiJUAiKSkgewogICAgICAgICBhdXRvIGNmRm9ybWF0ID0gYWRvcHRD
RihDRlN0cmluZ0NyZWF0ZVdpdGhDU3RyaW5nKG51bGxwdHIsIGZvcm1hdCwga0NGU3RyaW5nRW5j
b2RpbmdVVEY4KSk7CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9u
bGl0ZXJhbCIKLSNlbmRpZgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdmb3JtYXQt
bm9ubGl0ZXJhbCIpOwogICAgICAgICBhdXRvIHN0ciA9IGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVX
aXRoRm9ybWF0QW5kQXJndW1lbnRzKG51bGxwdHIsIG51bGxwdHIsIGNmRm9ybWF0LmdldCgpLCBh
cmdzKSk7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
Ci0jZW5kaWYKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZm9ybWF0LW5vbmxpdGVy
YWwiKTsKICAgICAgICAgQ0ZJbmRleCBsZW5ndGggPSBDRlN0cmluZ0dldE1heGltdW1TaXplRm9y
RW5jb2RpbmcoQ0ZTdHJpbmdHZXRMZW5ndGgoc3RyLmdldCgpKSwga0NGU3RyaW5nRW5jb2RpbmdV
VEY4KTsKICAgICAgICAgY29uc3RleHByIHVuc2lnbmVkIEluaXRpYWxCdWZmZXJTaXplIHsgMjU2
IH07CiAgICAgICAgIFZlY3RvcjxjaGFyLCBJbml0aWFsQnVmZmVyU2l6ZT4gYnVmZmVyKGxlbmd0
aCArIDEpOwpAQCAtMTEzLDEzICsxMDcsMTIgQEAgc3RhdGljIHZvaWQgdnByaW50Zl9zdGRlcnJf
Y29tbW9uKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmdzKQogICAgIH0KIAogI2lmIFVT
RShBUFBMRV9TWVNURU1fTE9HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogICAgIHZh
X2xpc3QgY29weU9mQXJnczsKICAgICB2YV9jb3B5KGNvcHlPZkFyZ3MsIGFyZ3MpOwogICAgIGFz
bF92bG9nKDAsIDAsIEFTTF9MRVZFTF9OT1RJQ0UsIGZvcm1hdCwgY29weU9mQXJncyk7CiAgICAg
dmFfZW5kKGNvcHlPZkFyZ3MpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKICNlbmRpZgog
CiAgICAgLy8gRmFsbCB0aHJvdWdoIHRvIHdyaXRlIHRvIHN0ZGVyciBpbiB0aGUgc2FtZSBtYW5u
ZXIgYXMgb3RoZXIgcGxhdGZvcm1zLgpAQCAtMTQxLDEwICsxMzQsNyBAQCBzdGF0aWMgdm9pZCB2
cHJpbnRmX3N0ZGVycl9jb21tb24oY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiAg
ICAgdmZwcmludGYoc3RkZXJyLCBmb3JtYXQsIGFyZ3MpOwogfQogCi0jaWYgQ09NUElMRVIoR0ND
X09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LW5vbmxpdGVyYWwiCi0jZW5kaWYKK0lHTk9SRV9XQVJO
SU5HX0dDQ19PUl9DTEFOR19UT1BfTEVWRUwoIi1XZm9ybWF0LW5vbmxpdGVyYWwiKQogCiBzdGF0
aWMgdm9pZCB2cHJpbnRmX3N0ZGVycl93aXRoX3ByZWZpeChjb25zdCBjaGFyKiBwcmVmaXgsIGNv
bnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmdzKQogewpAQCAtMTc0LDkgKzE2NCw3IEBAIHN0
YXRpYyB2b2lkIHZwcmludGZfc3RkZXJyX3dpdGhfdHJhaWxpbmdfbmV3bGluZShjb25zdCBjaGFy
KiBmb3JtYXQsIHZhX2xpc3QgYXJnCiAgICAgdnByaW50Zl9zdGRlcnJfY29tbW9uKGZvcm1hdFdp
dGhOZXdsaW5lLmRhdGEoKSwgYXJncyk7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcp
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitJR05PUkVfV0FSTklOR19HQ0Nf
T1JfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdmb3JtYXQtbm9ubGl0ZXJhbCIpCiAKIFdURl9BVFRS
SUJVVEVfUFJJTlRGKDEsIDIpCiBzdGF0aWMgdm9pZCBwcmludGZfc3RkZXJyX2NvbW1vbihjb25z
dCBjaGFyKiBmb3JtYXQsIC4uLikKQEAgLTM4NSwxNCArMzczLDkgQEAgdm9pZCBXVEZMb2dXaXRo
TGV2ZWwoV1RGTG9nQ2hhbm5lbCogY2hhbm5lbCwgV1RGTG9nTGV2ZWwgbGV2ZWwsIGNvbnN0IGNo
YXIqIGZvcm0KICAgICB2YV9saXN0IGFyZ3M7CiAgICAgdmFfc3RhcnQoYXJncywgZm9ybWF0KTsK
IAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2Vu
ZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZm9ybWF0LW5vbmxpdGVyYWwiKTsKICAg
ICBXVEZMb2coY2hhbm5lbCwgZm9ybWF0LCBhcmdzKTsKLSNpZiBDT01QSUxFUihDTEFORykKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdmb3JtYXQtbm9ubGl0ZXJhbCIpOwogCiAgICAgdmFfZW5kKGFyZ3MpOwogfQpA
QCAtNDE1LDE0ICszOTgsOSBAQCB2b2lkIFdURkxvZyhXVEZMb2dDaGFubmVsKiBjaGFubmVsLCBj
b25zdCBjaGFyKiBmb3JtYXQsIC4uLikKICAgICB2YV9saXN0IGFyZ3M7CiAgICAgdmFfc3RhcnQo
YXJncywgZm9ybWF0KTsKIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1u
b25saXRlcmFsIgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZm9ybWF0LW5v
bmxpdGVyYWwiKTsKICAgICBTdHJpbmcgbG9nZ2luZ1N0cmluZyA9IFN0cmluZzo6Zm9ybWF0KGZv
cm1hdCwgYXJncyk7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCi0jZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZm9ybWF0LW5v
bmxpdGVyYWwiKTsKIAogICAgIHZhX2VuZChhcmdzKTsKIApAQCAtNDQyLDE0ICs0MjAsOSBAQCB2
b2lkIFdURkxvZ1ZlcmJvc2UoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIq
IGZ1bmN0aW9uLCBXVEZMb2dDaGFubgogICAgIHZhX2xpc3QgYXJnczsKICAgICB2YV9zdGFydChh
cmdzLCBmb3JtYXQpOwogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LW5v
bmxpdGVyYWwiCi0jZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdmb3JtYXQtbm9u
bGl0ZXJhbCIpOwogICAgIFdURkxvZyhjaGFubmVsLCBmb3JtYXQsIGFyZ3MpOwotI2lmIENPTVBJ
TEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2Zvcm1hdC1ub25saXRlcmFsIik7CiAKICAgICB2YV9l
bmQoYXJncyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaCBiL1Nv
dXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaAppbmRleCA1YjI4Zjg2ZmE5MzFkOGNhMWFjMTgzODU4
NWYyZjBmMmQzNWY1OWY2Li41MDU0MTc0MWJhNThmMTQwOTY5NjliOWE3ZTQ0MTI1NWVlNzQyOWRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvQXNzZXJ0aW9ucy5oCkBAIC02MDIsMTUgKzYwMiwxNCBAQCBpbmxpbmUgdm9pZCBjb21w
aWxlckZlbmNlRm9yQ3Jhc2goKQogI2lmIENPTVBJTEVSKENMQU5HKQogLy8gVGhpcyB3b3VsZCBi
ZSBhIG1hY3JvIGV4Y2VwdCB0aGF0IGl0cyB1c2Ugb2YgI3ByYWdtYSB3b3JrcyBiZXN0IGFyb3Vu
ZAogLy8gYSBmdW5jdGlvbi4gSGVuY2UgaXQgdXNlcyBtYWNybyBuYW1pbmcgY29udmVudGlvbi4K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdtaXNzaW5nLW5vcmV0dXJuIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xF
VkVMKCItV21pc3Npbmctbm9yZXR1cm4iKTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBVTlJFQUNIQUJM
RV9GT1JfUExBVEZPUk0oKQogewogICAgIC8vIFRoaXMgKk1VU1QqIGJlIGEgcmVsZWFzZSBhc3Nl
cnQuIFdlIHVzZSBpdCBpbiBwbGFjZXMgd2hlcmUgaXQncyBiZXR0ZXIgdG8gY3Jhc2ggdGhhbiB0
byBrZWVwCiAgICAgLy8gZ29pbmcuCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RP
UF9MRVZFTF9FTkQoIi1XbWlzc2luZy1ub3JldHVybiIpOwogI2Vsc2UKICNkZWZpbmUgVU5SRUFD
SEFCTEVfRk9SX1BMQVRGT1JNKCkgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Db21waWxlci5oIGIvU291cmNlL1dURi93dGYv
Q29tcGlsZXIuaAppbmRleCA3OThjMzA5MGM5YjFjMTg1ODBhM2E2YmU2ZmFiNjViZGFjZTZmZmFh
Li5kYjk5MDYxZjEwY2Y4MmQxY2MyZWI2OWZiNjhkNjhiNmFhZGQxM2JhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9Db21waWxlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmgK
QEAgLTM4NSw0ICszODUsODAgQEAKICNkZWZpbmUgX19oYXNfaW5jbHVkZShwYXRoKSAwCiAjZW5k
aWYKIAorLyogSUdOT1JFX1dBUk5JTkcuKiAqLworCisvLyBDYW4ndCB1c2UgV1RGX0NPTkNBVCgp
IGFuZCBTVFJJTkdJWkUoKSBiZWNhdXNlIHRoZXkgYXJlIGRlZmluZWQgaW4KKy8vIFN0ZExpYkV4
dHJhcy5oIHdoaWNoIGluY2x1ZGVzIHVzCisjZGVmaW5lIF9DT01QSUxFUl9DT05DQVRfSShhLCBi
KSBhICMjIGIKKyNkZWZpbmUgX0NPTVBJTEVSX0NPTkNBVChhLCBiKSBfQ09NUElMRVJfQ09OQ0FU
X0koYSwgYikKKworI2RlZmluZSBfQ09NUElMRVJfU1RSSU5HSVpFKGV4cCkgI2V4cAorCisjaWYg
Q09NUElMRVIoR0NDX09SX0NMQU5HKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19DT05EKGNvbmQs
IGNvbXBpbGVyLCB3YXJuaW5nKSBfQ09NUElMRVJfQ09OQ0FUKElHTk9SRV9XQVJOSU5HX0lNUExf
LCBjb25kKShjb21waWxlciwgd2FybmluZykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfRU5EX0NP
TkQoY29uZCwgY29tcGlsZXIsIHdhcm5pbmcpIF9DT01QSUxFUl9DT05DQVQoSUdOT1JFX1dBUk5J
TkdfRU5EX0lNUExfLCBjb25kKShjb21waWxlciwgd2FybmluZykKKworI2RlZmluZSBJR05PUkVf
V0FSTklOR19JTVBMXzEoY29tcGlsZXIsIHdhcm5pbmcpIFwKKyAgICBfUHJhZ21hKF9DT01QSUxF
Ul9TVFJJTkdJWkUoY29tcGlsZXIgZGlhZ25vc3RpYyBwdXNoKSkgXAorICAgIF9QcmFnbWEoX0NP
TVBJTEVSX1NUUklOR0laRShjb21waWxlciBkaWFnbm9zdGljIGlnbm9yZWQgd2FybmluZykpCisj
ZGVmaW5lIElHTk9SRV9XQVJOSU5HX0lNUExfMChjb21waWxlciwgd2FybmluZykKKyNkZWZpbmUg
SUdOT1JFX1dBUk5JTkdfSU1QTF8oY29tcGlsZXIsIHdhcm5pbmcpCisKKyNkZWZpbmUgSUdOT1JF
X1dBUk5JTkdfRU5EX0lNUExfMShjb21waWxlciwgd2FybmluZykgXAorICAgIF9QcmFnbWEoX0NP
TVBJTEVSX1NUUklOR0laRShjb21waWxlciBkaWFnbm9zdGljIHBvcCkpCisjZGVmaW5lIElHTk9S
RV9XQVJOSU5HX0VORF9JTVBMXzAoY29tcGlsZXIsIHdhcm5pbmcpCisjZGVmaW5lIElHTk9SRV9X
QVJOSU5HX0VORF9JTVBMXyhjb21waWxlciwgd2FybmluZykKKworI2lmIGRlZmluZWQoX19oYXNf
d2FybmluZykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfSU1QTChjb21waWxlciwgd2FybmluZykg
SUdOT1JFX1dBUk5JTkdfQ09ORChfX2hhc193YXJuaW5nKHdhcm5pbmcpLCBjb21waWxlciwgd2Fy
bmluZykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfRU5EX0lNUEwoY29tcGlsZXIsIHdhcm5pbmcp
IElHTk9SRV9XQVJOSU5HX0NPTkQoX19oYXNfd2FybmluZyh3YXJuaW5nKSwgY29tcGlsZXIsIHdh
cm5pbmcpCisjZWxzZQorI2RlZmluZSBJR05PUkVfV0FSTklOR19JTVBMKGNvbXBpbGVyLCB3YXJu
aW5nKSBJR05PUkVfV0FSTklOR19DT05EKDEsIGNvbXBpbGVyLCB3YXJuaW5nKQorI2RlZmluZSBJ
R05PUkVfV0FSTklOR19FTkRfSU1QTChjb21waWxlciwgd2FybmluZykgSUdOT1JFX1dBUk5JTkdf
Q09ORCgxLCBjb21waWxlciwgd2FybmluZykKKyNlbmRpZgorI2VuZGlmIC8vIENPTVBJTEVSKEdD
Q19PUl9DTEFORykKKworCisjaWYgIWRlZmluZWQoSUdOT1JFX1dBUk5JTkdfR0NDKSAmJiBDT01Q
SUxFUihHQ0MpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0dDQyh3YXJuaW5nKSBkbyB7IElHTk9S
RV9XQVJOSU5HX0lNUEwoR0NDLCB3YXJuaW5nKSB9IHdoaWxlIChmYWxzZSkKKyNkZWZpbmUgSUdO
T1JFX1dBUk5JTkdfR0NDX0VORCh3YXJuaW5nKSBkbyB7IElHTk9SRV9XQVJOSU5HX0VORF9JTVBM
KEdDQywgd2FybmluZykgfSB3aGlsZSAoZmFsc2UpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0dD
Q19UT1BfTEVWRUwod2FybmluZykgSUdOT1JFX1dBUk5JTkdfSU1QTChHQ0MsIHdhcm5pbmcpCisj
ZGVmaW5lIElHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKHdhcm5pbmcpIElHTk9SRV9X
QVJOSU5HX0VORF9JTVBMKEdDQywgd2FybmluZykKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoSUdO
T1JFX1dBUk5JTkdfR0NDKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19HQ0MoeCkgZG8geyB9IHdo
aWxlIChmYWxzZSkKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfR0NDX0VORCh4KSBkbyB7IH0gd2hp
bGUgKGZhbHNlKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMKHdhcm5pbmcp
CisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKHdhcm5pbmcpCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKElHTk9SRV9XQVJOSU5HX0NMQU5HKSAmJiBDT01QSUxFUihDTEFO
RykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfQ0xBTkcod2FybmluZykgZG8geyBJR05PUkVfV0FS
TklOR19JTVBMKGNsYW5nLCB3YXJuaW5nKSB9IHdoaWxlIChmYWxzZSkKKyNkZWZpbmUgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKHdhcm5pbmcpIGRvIHsgSUdOT1JFX1dBUk5JTkdfRU5EX0lNUEwo
Y2xhbmcsIHdhcm5pbmcpIH0gd2hpbGUgKGZhbHNlKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19D
TEFOR19UT1BfTEVWRUwod2FybmluZykgSUdOT1JFX1dBUk5JTkdfSU1QTChjbGFuZywgd2Fybmlu
ZykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCh3YXJuaW5nKSBJ
R05PUkVfV0FSTklOR19FTkRfSU1QTChjbGFuZywgd2FybmluZykKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoSUdOT1JFX1dBUk5JTkdfQ0xBTkcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0NMQU5H
KHgpIGRvIHsgfSB3aGlsZSAoZmFsc2UpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VO
RCh4KSBkbyB7IH0gd2hpbGUgKGZhbHNlKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19DTEFOR19U
T1BfTEVWRUwod2FybmluZykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVM
X0VORCh3YXJuaW5nKQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChJR05PUkVfV0FSTklOR19HQ0Nf
T1JfQ0xBTkcpICYmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKKyNkZWZpbmUgSUdOT1JFX1dBUk5J
TkdfR0NDX09SX0NMQU5HKHdhcm5pbmcpIGRvIHsgSUdOT1JFX1dBUk5JTkdfSU1QTChHQ0MsIHdh
cm5pbmcpIH0gd2hpbGUgKGZhbHNlKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xB
TkdfRU5EKHdhcm5pbmcpIGRvIHsgSUdOT1JFX1dBUk5JTkdfRU5EX0lNUEwoR0NDLCB3YXJuaW5n
KSB9IHdoaWxlIChmYWxzZSkKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HX1RP
UF9MRVZFTCh3YXJuaW5nKSBJR05PUkVfV0FSTklOR19JTVBMKEdDQywgd2FybmluZykKKyNkZWZp
bmUgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HX1RPUF9MRVZFTF9FTkQod2FybmluZykgSUdO
T1JFX1dBUk5JTkdfRU5EX0lNUEwoR0NDLCB3YXJuaW5nKQorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0dD
Q19PUl9DTEFORyh4KSBkbyB7IH0gd2hpbGUgKGZhbHNlKQorI2RlZmluZSBJR05PUkVfV0FSTklO
R19HQ0NfT1JfQ0xBTkdfRU5EKHgpIGRvIHsgfSB3aGlsZSAoZmFsc2UpCisjZGVmaW5lIElHTk9S
RV9XQVJOSU5HX0dDQ19PUl9DTEFOR19UT1BfTEVWRUwoeCkKKyNkZWZpbmUgSUdOT1JFX1dBUk5J
TkdfR0NDX09SX0NMQU5HX0VORF9UT1BfTEVWRUwoeCkKKyNlbmRpZgorCiAjZW5kaWYgLyogV1RG
X0NvbXBpbGVyX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01ENS5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9NRDUuY3BwCmluZGV4IGU0OWJhMWJlYjVjODBmN2NlYzQzM2ZkODMyNzIyYzA5
MjUyNzMwOTAuLjUzNTc3OWEzMjIxZWRjNjM5ZmQyMDZiMmMxNzhjMzc2ZTUyNjI0OWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01ENS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTUQ1LmNw
cApAQCAtNTksMjYgKzU5LDIzIEBAIG5hbWVzcGFjZSBXVEYgewogCiBNRDU6Ok1ENSgpCiB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBDQ19NRDVfSW5pdCgmbV9jb250
ZXh0KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogdm9pZCBNRDU6OmFk
ZEJ5dGVzKGNvbnN0IHVpbnQ4X3QqIGlucHV0LCBzaXplX3QgbGVuZ3RoKQogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQ0NfTUQ1X1VwZGF0ZSgmbV9jb250ZXh0LCBp
bnB1dCwgbGVuZ3RoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVf
V0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogdm9p
ZCBNRDU6OmNoZWNrc3VtKERpZ2VzdCYgaGFzaCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogICAgIENDX01ENV9GaW5hbChoYXNoLmRhdGEoKSwgJm1fY29udGV4dCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5E
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAgICAgCiAjZWxzZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uY3BwIGIvU291cmNlL1dURi93dGYvUHJpbnRT
dHJlYW0uY3BwCmluZGV4IDM4MGM2N2JjYmI5MGUzNjZkODYxODA4NzgwNzMyNDVlNjEzZTRiNGYu
LjJjNWE3YTEyMDQwZTI0MzA3NDZmZmJhODhmZDMxNmJkZTU2OTZkZGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QcmludFN0
cmVhbS5jcHAKQEAgLTQ2LDIyICs0NiwxNCBAQCB2b2lkIFByaW50U3RyZWFtOjpwcmludGYoY29u
c3QgY2hhciogZm9ybWF0LCAuLi4pCiAKIHZvaWQgUHJpbnRTdHJlYW06OnByaW50ZlZhcmlhYmxl
Rm9ybWF0KGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKQogewotI2lmIENPTVBJTEVSKENMQU5HKQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2VsaWYgQ09NUElMRVIoR0NDKQotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
c3VnZ2VzdC1hdHRyaWJ1dGU9Zm9ybWF0IgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZm9ybWF0LW5vbmxpdGVyYWwiKTsKKyAgICBJR05PUkVfV0FSTklOR19HQ0MoIi1Xc3Vn
Z2VzdC1hdHRyaWJ1dGU9Zm9ybWF0Iik7CiAgICAgdmFfbGlzdCBhcmdMaXN0OwogICAgIHZhX3N0
YXJ0KGFyZ0xpc3QsIGZvcm1hdCk7CiAgICAgdnByaW50Zihmb3JtYXQsIGFyZ0xpc3QpOwogICAg
IHZhX2VuZChhcmdMaXN0KTsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKLSNlbGlmIENPTVBJTEVSKEdDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cG9wCi0jZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR19HQ0NfRU5EKCItV3N1Z2dlc3QtYXR0cmli
dXRlPWZvcm1hdCIpOworICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdmb3JtYXQtbm9u
bGl0ZXJhbCIpOwogfQogCiB2b2lkIFByaW50U3RyZWFtOjpmbHVzaCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9TSEExLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1NIQTEuY3BwCmluZGV4IDMw
NWYwNzc1ODlkOWJhM2U2NTBmYjNlNzVjY2ZlYWQ2ZTJkNTJhZmYuLjNmZDhlMzBmNDAwMjhlNTdl
YTBkYWEwOWI1MzY3ZDc0Y2E0Y2IxY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1NIQTEu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1NIQTEuY3BwCkBAIC00MSwyNiArNDEsMjMgQEAgbmFt
ZXNwYWNlIFdURiB7CiAKIFNIQTE6OlNIQTEoKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgQ0NfU0hBMV9Jbml0KCZtX2NvbnRleHQpOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogfQogCiB2b2lkIFNIQTE6OmFkZEJ5dGVzKGNvbnN0IHVpbnQ4X3Qq
IGlucHV0LCBzaXplX3QgbGVuZ3RoKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgQ0NfU0hBMV9VcGRhdGUoJm1fY29udGV4dCwgaW5wdXQsIGxlbmd0aCk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIHZvaWQgU0hBMTo6Y29tcHV0ZUhhc2go
RGlnZXN0JiBoYXNoKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
Q0NfU0hBMV9GaW5hbChoYXNoLmRhdGEoKSwgJm1fY29udGV4dCk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiB9CiAKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9U
aHJlYWRpbmdQdGhyZWFkcy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5j
cHAKaW5kZXggZGQwMWM2Yzc2ZWU2OTg1OWM0Y2NkOGIxMWM2YzlhOGNkMWMwNDk2Mi4uYzI1ZGZl
MjYwNDdiMzgyNjk2ZGM3MjVjN2JjY2Y1N2ZjYzU0ZjkxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGlu
Z1B0aHJlYWRzLmNwcApAQCAtMTA5LDE1ICsxMDksOCBAQCBzdGF0aWMgTGF6eU5ldmVyRGVzdHJv
eWVkPFNlbWFwaG9yZT4gZ2xvYmFsU2VtYXBob3JlRm9yU3VzcGVuZFJlc3VtZTsKIHN0YXRpYyBj
b25zdGV4cHIgY29uc3QgaW50IFNpZ1RocmVhZFN1c3BlbmRSZXN1bWUgPSBTSUdVU1IxOwogc3Rh
dGljIHN0ZDo6YXRvbWljPFRocmVhZCo+IHRhcmdldFRocmVhZCB7IG51bGxwdHIgfTsKIAotI2lm
IENPTVBJTEVSKEdDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi1sb2NhbC1hZGRyIgotI2VuZGlmIC8vIENPTVBJ
TEVSKEdDQykKLQotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi1zdGFjay1h
ZGRyZXNzIgotI2VuZGlmIC8vIENPTVBJTEVSKENMQU5HKQorSUdOT1JFX1dBUk5JTkdfR0NDX1RP
UF9MRVZFTCgiLVdyZXR1cm4tbG9jYWwtYWRkciIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1Bf
TEVWRUwoIi1XcmV0dXJuLXN0YWNrLWFkZHJlc3MiKQogCiBzdGF0aWMgTkVWRVJfSU5MSU5FIHZv
aWQqIGdldEFwcHJveGltYXRlU3RhY2tQb2ludGVyKCkKIHsKQEAgLTEyNiwxMyArMTE5LDggQEAg
c3RhdGljIE5FVkVSX0lOTElORSB2b2lkKiBnZXRBcHByb3hpbWF0ZVN0YWNrUG9pbnRlcigpCiAg
ICAgcmV0dXJuIGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhY2tMb2NhdGlvbik7CiB9CiAKLSNpZiBD
T01QSUxFUihHQ0MpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJ
TEVSKEdDQykKLQotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKENMQU5HKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9Q
X0xFVkVMX0VORCgiLVdyZXR1cm4tc3RhY2stYWRkcmVzcyIpCitJR05PUkVfV0FSTklOR19HQ0Nf
VE9QX0xFVkVMX0VORCgiLVdyZXR1cm4tbG9jYWwtYWRkciIpCiAKIHZvaWQgVGhyZWFkOjpzaWdu
YWxIYW5kbGVyU3VzcGVuZFJlc3VtZShpbnQsIHNpZ2luZm9fdCosIHZvaWQqIHVjb250ZXh0KQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9W
ZWN0b3IuaAppbmRleCA4NTE4NGI5NDA3YzY5Mzc3NjBhMTBjNjViMWFlNTcyMjdhOGY3ZmZmLi42
NDIxYTI4NGY3YWZlNjRlYmVjZWRhZTYxMjlmYmFmZGY3Y2FiODFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9WZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaApAQCAtNTI5
LDE0ICs1MjksOSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoYnVmZmVyKCkpOwog
Ci0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XaW52YWxpZC1vZmZzZXRvZiIKLSNlbmRpZgorICAg
ICAgICBJR05PUkVfV0FSTklOR19HQ0MoIi1XaW52YWxpZC1vZmZzZXRvZiIpOwogICAgICAgICBz
dGF0aWNfYXNzZXJ0KChvZmZzZXRvZihWZWN0b3JCdWZmZXIsIG1faW5saW5lQnVmZmVyKSArIHNp
emVvZihtX2lubGluZUJ1ZmZlcikpICUgOCA9PSAwLCAiSW5saW5lIGJ1ZmZlciBlbmQgbmVlZHMg
dG8gYmUgb24gOCBieXRlIGJvdW5kYXJ5IGZvciBBU2FuIGFubm90YXRpb25zIHRvIHdvcmsuIik7
Ci0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgor
ICAgICAgICBJR05PUkVfV0FSTklOR19HQ0NfRU5EKCItV2ludmFsaWQtb2Zmc2V0b2YiKTsKIAog
ICAgICAgICBpZiAoYnVmZmVyKCkgPT0gaW5saW5lQnVmZmVyKCkpCiAgICAgICAgICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9pbmxpbmVCdWZmZXIpICsgc2l6ZW9mKG1faW5s
aW5lQnVmZmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAppbmRleCAyYjBlNWYzOWNkNDNj
NmRmNDFhMGMxOGJjNGJiZDM4NGYxOTUxM2Q2Li5iNThhMGU4YzNmNTc5OGE2YTg5M2UwZmJhZTk3
MGQyODNmYzVlYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCkBAIC00NTMsMTAgKzQ1
Myw3IEBAIFdURl9BVFRSSUJVVEVfUFJJTlRGKDEsIDApIHN0YXRpYyBTdHJpbmcgY3JlYXRlV2l0
aEZvcm1hdEFuZEFyZ3VtZW50cyhjb25zdCBjaGFyCiAgICAgdmFfbGlzdCBhcmdzQ29weTsKICAg
ICB2YV9jb3B5KGFyZ3NDb3B5LCBhcmdzKTsKIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkco
Ii1XZm9ybWF0LW5vbmxpdGVyYWwiKTsKIAogI2lmIFVTRShDRikgJiYgIU9TKFdJTkRPV1MpCiAg
ICAgaWYgKHN0cnN0cihmb3JtYXQsICIlQCIpKSB7CkBAIC00OTIsOSArNDg5LDcgQEAgV1RGX0FU
VFJJQlVURV9QUklOVEYoMSwgMCkgc3RhdGljIFN0cmluZyBjcmVhdGVXaXRoRm9ybWF0QW5kQXJn
dW1lbnRzKGNvbnN0IGNoYXIKICAgICB2c25wcmludGYoYnVmZmVyLmRhdGEoKSwgYnVmZmVyLnNp
emUoKSwgZm9ybWF0LCBhcmdzQ29weSk7CiAgICAgdmFfZW5kKGFyZ3NDb3B5KTsKIAotI2lmIENP
TVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2Zvcm1hdC1ub25saXRlcmFsIik7CiAKICAgICBy
ZXR1cm4gU3RyaW5nSW1wbDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihi
dWZmZXIuZGF0YSgpKSwgbGVuKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0
YUNoYW5uZWxIYW5kbGVyLmgKaW5kZXggNTVjZTgyNWM0NWRhNzgzZDUwNGQ3ZDQ0ODA0MmVjNmZk
YjlhODg4Zi4uZTg0OGVmODQyZWFkMjFiMzQzY2YwYzdkNGVlYzc5NmI5ZGJkYTJiZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKQEAgLTI5LDEy
ICsyOSwxMSBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgogI2luY2x1ZGUgIlJUQ0Rh
dGFDaGFubmVsSGFuZGxlci5oIgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorSUdOT1JFX1dB
Uk5JTkdfR0NDX1RPUF9MRVZFTCgiLVd1bnVzZWQtcGFyYW1ldGVyIikKIAogI2luY2x1ZGUgPHdl
YnJ0Yy9hcGkvZGF0YWNoYW5uZWxpbnRlcmZhY2UuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwb3AKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKCItV3VudXNlZC1wYXJhbWV0
ZXIiKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01l
ZGlhRW5kcG9pbnQuaAppbmRleCA0ZGFmYWY0ZjRmNjRjMmNkYjI2NTQyNDRlYjBkNDFjODNhN2E4
MDgxLi5mZTBiOWRiMWYwNDRkZmM4NWM2OGY3M2MzYzU4OGI5NDcxZWJhNWNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENN
ZWRpYUVuZHBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCkBAIC0zMywxNSArMzMsMTQgQEAKICNp
bmNsdWRlICJSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaCIKICNpbmNsdWRlIDxUaW1lci5o
PgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
aWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorSUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZF
TCgiLVd1bnVzZWQtcGFyYW1ldGVyIikKIAogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvanNlcC5oPgog
I2luY2x1ZGUgPHdlYnJ0Yy9hcGkvcGVlcmNvbm5lY3Rpb25pbnRlcmZhY2UuaD4KICNpbmNsdWRl
IDx3ZWJydGMvcGMvcGVlcmNvbm5lY3Rpb25mYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d2VicnRjL3Bj
L3J0Y3N0YXRzY29sbGVjdG9yLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCitJR05P
UkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMX0VORCgiLVd1bnVzZWQtcGFyYW1ldGVyIikKIAogI2lu
Y2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNv
dW50ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY3J5cHRvL2NvbW1v
bmNyeXB0by9DcnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jcnlwdG8vY29tbW9uY3J5cHRvL0NyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAKaW5k
ZXggYjQ3ZjhlZWM2ODgzN2M3MjdkNWY4ZmNjOTcxNmRjYmQzY2FjNjUzZS4uMzAzYmUyMThhYTlm
YmVjNDIyZjBkNDJmMDNiOTFkZjg2NGUyMzc3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jcnlwdG8vY29tbW9uY3J5cHRvL0NyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8vY29tbW9uY3J5cHRvL0NyeXB0b0Rp
Z2VzdENvbW1vbkNyeXB0by5jcHAKQEAgLTk3LDEwICs5Nyw4IEBAIHN0ZDo6dW5pcXVlX3B0cjxD
cnlwdG9EaWdlc3Q+IENyeXB0b0RpZ2VzdDo6Y3JlYXRlKENyeXB0b0RpZ2VzdDo6QWxnb3JpdGht
IGFsZ29yCiAgICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzE6IHsKICAgICAg
ICAgQ0NfU0hBMV9DVFgqIGNvbnRleHQgPSBuZXcgQ0NfU0hBMV9DVFg7CiAgICAgICAgIGRpZ2Vz
dC0+bV9jb250ZXh0LT5jY0NvbnRleHQgPSBjb250ZXh0OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpCiAgICAgICAgIENDX1NIQTFfSW5pdChjb250ZXh0KTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgcmV0dXJuIGRpZ2VzdDsKICAgICB9CiAgICAg
Y2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzIyNDogewpAQCAtMTM0LDEwICsxMzIs
OSBAQCB2b2lkIENyeXB0b0RpZ2VzdDo6YWRkQnl0ZXMoY29uc3Qgdm9pZCogaW5wdXQsIHNpemVf
dCBsZW5ndGgpCiB7CiAgICAgc3dpdGNoIChtX2NvbnRleHQtPmFsZ29yaXRobSkgewogICAgIGNh
c2UgQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8xOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBDQ19TSEExX1VwZGF0ZSh0b1NIQTFDb250ZXh0KG1f
Y29udGV4dC5nZXQoKSksIGlucHV0LCBsZW5ndGgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ3J5cHRvRGlnZXN0OjpBbGdv
cml0aG06OlNIQV8yMjQ6CiAgICAgICAgIENDX1NIQTIyNF9VcGRhdGUodG9TSEEyMjRDb250ZXh0
KG1fY29udGV4dC5nZXQoKSksIGlucHV0LCBsZW5ndGgpOwpAQCAtMTYwLDEwICsxNTcsOSBAQCBW
ZWN0b3I8dWludDhfdD4gQ3J5cHRvRGlnZXN0Ojpjb21wdXRlSGFzaCgpCiAgICAgc3dpdGNoICht
X2NvbnRleHQtPmFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06
OlNIQV8xOgogICAgICAgICByZXN1bHQucmVzaXplKENDX1NIQTFfRElHRVNUX0xFTkdUSCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIENDX1NIQTFfRmlu
YWwocmVzdWx0LmRhdGEoKSwgdG9TSEExQ29udGV4dChtX2NvbnRleHQuZ2V0KCkpKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDcnlw
dG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzIyNDoKICAgICAgICAgcmVzdWx0LnJlc2l6ZShDQ19T
SEEyMjRfRElHRVNUX0xFTkdUSCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jb2NvYS9BVktpdFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
QVZLaXRTUEkuaAppbmRleCA5MTQ1MTdlZmU3Y2IxNGI1ZmFmMmM1YjFiNjdmMjM2NmM2MmM2OTk1
Li5kYmM4MjM3NGRjY2Q4MmYwOWI5MTJmMjE0ODU1NzZhZDQyOTQ5Y2I2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVktpdFNQSS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWS2l0U1BJLmgKQEAgLTM4LDEwICszOCw5IEBACiAj
ZW5kaWYKIAogI2ltcG9ydCA8QVZLaXQvQVZQbGF5ZXJDb250cm9sbGVyLmg+Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
b2JqYy1wcm9wZXJ0eS1uby1hdHRyaWJ1dGUiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BMRVZF
TCgiLVdvYmpjLXByb3BlcnR5LW5vLWF0dHJpYnV0ZSIpCiAjaW1wb3J0IDxBVktpdC9BVlBsYXll
ckxheWVyVmlldy5oPgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfVE9QTEVWRUxfRU5EKCItV29iamMtcHJvcGVydHktbm8tYXR0cmlidXRlIikKICNp
bXBvcnQgPEFWS2l0L0FWUGxheWVyVmlld0NvbnRyb2xsZXJfUHJpdmF0ZS5oPgogI2ltcG9ydCA8
QVZLaXQvQVZQbGF5ZXJWaWV3Q29udHJvbGxlcl9XZWJLaXRPbmx5Lmg+CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVyU1BJLmgKaW5k
ZXggNTVhNjQ4ODZhODgwZjViOTBlYTJkYTZjZjUxYWJhNGJhNjdjNDI1ZC4uOTc0ZTlhMDNiMmNk
ZjM4ZGZjMTdiMjAxNTBiZDM4NWI3N2MyZTk1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVyU1BJLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVyU1BJLmgKQEAgLTg2LDEwICs4Niw5
IEBAIGlubGluZSBOU0RhdGEgKl9OdWxsYWJsZSBpbnNlY3VyZWx5QXJjaGl2ZWREYXRhV2l0aFJv
b3RPYmplY3QoaWQgX05vbm51bGwgb2JqZWN0CiAKIGlubGluZSBpZCBfTnVsbGFibGUgaW5zZWN1
cmVseVVuYXJjaGl2ZU9iamVjdEZyb21EYXRhKE5TRGF0YSAqIF9Ob25udWxsIGRhdGEpCiB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICByZXR1cm4gW05TS2V5ZWRVbmFy
Y2hpdmVyIHVuYXJjaGl2ZU9iamVjdFdpdGhEYXRhOmRhdGFdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogfQogCiBpbmxpbmUgaWQgX051bGxhYmxlIHVuYXJjaGl2ZWRPYmplY3RP
ZkNsYXNzZXNGcm9tRGF0YShOU1NldDxDbGFzcz4gKiBfTm9ubnVsbCBjbGFzc2VzLCBOU0RhdGEg
KiBfTm9ubnVsbCBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
aW9zL01lZGlhUGxheWVyU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvTWVk
aWFQbGF5ZXJTUEkuaAppbmRleCBkZDg3ZjkzYWY3MDI1YmNhNmQxMzM0NTdiM2Y2YjEyMDZhMDE0
NGY4Li5kN2QwOTYwNzUzZTI0NDM0MWE1OWU1NjA1ZGJhOWYzNTJkMGNhMDZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvTWVkaWFQbGF5ZXJTUEkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvTWVkaWFQbGF5ZXJTUEkuaApAQCAtNzUsMjEg
Kzc1LDE5IEBAIGVudW0gewogfTsKIHR5cGVkZWYgTlNVSW50ZWdlciBNUEFWSXRlbVR5cGU7CiAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5H
X1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiBAaW50ZXJmYWNlIE1QQXVk
aW9WaWRlb1JvdXRpbmdQb3BvdmVyQ29udHJvbGxlciA6IFVJUG9wb3ZlckNvbnRyb2xsZXIKIEBl
bmQKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RP
UF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiBAaW50ZXJmYWNlIE1Q
QXVkaW9WaWRlb1JvdXRpbmdQb3BvdmVyQ29udHJvbGxlciAoKQogLSAoaWQpaW5pdFdpdGhUeXBl
OihNUEFWSXRlbVR5cGUpYXZJdGVtVHlwZTsKIEBlbmQKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIikKIEBpbnRlcmZhY2UgTVBBVlJvdXRpbmdTaGVldCA6IFVJVmlldwog
QGVuZAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
VE9QX0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKIEBpbnRlcmZhY2Ug
TVBBVlJvdXRpbmdTaGVldCAoKQogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbiwgc2V0dGVy
PXNldEFWSXRlbVR5cGU6KSBNUEFWSXRlbVR5cGUgYXZJdGVtVHlwZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lm1tCmluZGV4IDIyMzM1NzVkYzM0ZTc2
MWU4NjFjYmI0NTI4N2I3MzNmMmNkNGFjMjMuLjljYjFlNmRjYjM3ZWEwNGJiNGMzYTQwZTI3MWJj
OTZkYTI1MzNjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21h
Yy9Qb3B1cE1lbnUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1Bv
cHVwTWVudS5tbQpAQCAtNDQsMTAgKzQ0LDkgQEAgbmFtZXNwYWNlIFBBTCB7CiB2b2lkIHBvcFVw
TWVudShOU01lbnUgKm1lbnUsIE5TUG9pbnQgbG9jYXRpb24sIGZsb2F0IHdpZHRoLCBOU1ZpZXcg
KnZpZXcsIGludCBzZWxlY3RlZEl0ZW0sIE5TRm9udCAqZm9udCwgTlNDb250cm9sU2l6ZSBjb250
cm9sU2l6ZSwgYm9vbCB1c2VzQ3VzdG9tQXBwZWFyYW5jZSkKIHsKICAgICBOU1JlY3QgYWRqdXN0
ZWRQb3B1cEJvdW5kcyA9IFt2aWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOlt2aWV3IGNv
bnZlcnRSZWN0OnZpZXcuYm91bmRzIHRvVmlldzpuaWxdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIGlmIChjb250cm9sU2l6ZSAhPSBOU01pbmlDb250cm9sU2l6ZSkg
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIGFkanVzdGVk
UG9wdXBCb3VuZHMub3JpZ2luLnggLT0gMzsKICAgICAgICAgYWRqdXN0ZWRQb3B1cEJvdW5kcy5v
cmlnaW4ueSAtPSAxOwogICAgICAgICBhZGp1c3RlZFBvcHVwQm91bmRzLnNpemUud2lkdGggKz0g
NjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9XZWJQYW5l
bC5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9XZWJQYW5lbC5tbQppbmRl
eCAzMTdiZGEwMmU3YjdlYjI3YTliZDJiNTk3OTU2ZjU0MTJkYWNmMTI2Li40MDE3ZjVhYjBjNjc0
ZDBkZTRhYzMwMjY1NWNiZWZiMDUzYWM0M2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3N5c3RlbS9tYWMvV2ViUGFuZWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zeXN0ZW0vbWFjL1dlYlBhbmVsLm1tCkBAIC0zNCwxMCArMzQsOSBAQAogCiAtIChpbnN0YW5j
ZXR5cGUpaW5pdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgc3Rh
dGljIE5TVUludGVnZXIgc3R5bGVNYXNrID0gTlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2sgfCBO
U0Nsb3NhYmxlV2luZG93TWFzayB8IE5TUmVzaXphYmxlV2luZG93TWFzayAgfCBOU1RpdGxlZFdp
bmRvd01hc2sgfCBOU1NtYWxsV2luZG93TWFzayB8IE5TU2lkZVV0aWxpdHlXaW5kb3dNYXNrIHwg
TlNVdGlsaXR5V2luZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAg
ICAKICAgICByZXR1cm4gW3N1cGVyIGluaXRXaXRoQ29udGVudFJlY3Q6TlNaZXJvUmVjdCBzdHls
ZU1hc2s6c3R5bGVNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNd
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmpl
Y3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0
Q2FjaGVNYWMubW0KaW5kZXggMzk5MTc3ZjM1M2UyZjgwOWQyZGZjNzhhYjY2NTQ4YWFiOTI5MzU5
NC4uYzhlNmYxZTRmNWY0NDdkZTI5NTdkYjg1ZjYzZTY2NmY1MTYwOTMyMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBA
IC0zNDYsMTAgKzM0Niw5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgCiAgICAgLy8g
TlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbiB3aWxsIGNhbGwgdGhpcyBtZXRob2QsIChi
dXQgbm90IHdoZW4gcnVubmluZyBEUlQpLCBzbyBBU1NFUlQgaGVyZSB0byBtYWtlIHN1cmUgaXQg
ZG9lcyBub3QgY3Jhc2guCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ2NjYyCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBBU1NF
UlQoW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRdIHx8IHRydWUpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0
aFVzZXJJbmZvKG9iai0+d3JhcHBlcigpLCBtYWNOb3RpZmljYXRpb24sIG5pbCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0
eU9iamVjdE1hYy5tbQppbmRleCBjY2U5NzJjZmNkMDJlNTc1NGVjY2VjYzU3OGZhNGI0MGE5OTY4
YzI2Li5jNjJiYzhlMWRhOWNmZDg1MzBmYjcyYmUwYTAyMDlkYTZjMDYxYmY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlP
YmplY3RNYWMubW0KQEAgLTU1LDEwICs1NSw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6
b3ZlcnJpZGVBdHRhY2htZW50UGFyZW50KEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudCkKICAg
ICAgICAgcGFyZW50V3JhcHBlciA9IHBhcmVudC0+d3JhcHBlcigpOwogICAgIH0KIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW1t3cmFwcGVyKCkgYXR0YWNobWVudFZp
ZXddIGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVlOnBhcmVudFdyYXBwZXIgZm9yQXR0cmli
dXRlOk5TQWNjZXNzaWJpbGl0eVBhcmVudEF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiB9CiAgICAgCiBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2li
aWxpdHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3QKQEAgLTY5LDExICs2OCwxMCBAQCBib29sIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3QK
ICAgICBpZiAoaXNBdHRhY2htZW50KCkgJiYgKHdpZGdldCA9IHdpZGdldEZvckF0dGFjaG1lbnRW
aWV3KCkpICYmIHdpZGdldC0+aXNGcmFtZVZpZXcoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19D
TEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGlmIChbd3JhcHBlcigpIGF0
dGFjaG1lbnRWaWV3XSkKICAgICAgICAgcmV0dXJuIFtbd3JhcHBlcigpIGF0dGFjaG1lbnRWaWV3
XSBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKIAogICAgIC8vIEF0dGFjaG1lbnRzIGFyZSBpZ25vcmVkIGJ5IGRlZmF1bHQgKHVubGVzcyB3
ZSBkZXRlcm1pbmUgdGhhdCB3ZSBzaG91bGQgZXhwb3NlIHRoZW0pLgogICAgIHJldHVybiB0cnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCAwNGMxODZhMDhh
YzhhZjI4NjA3YzQxYmE3ZWRkMGEwMTdjOTJiZjY2Li5mMTQyZThhNTJkZmJjZGJhMDg3NDZmMDgw
ZDU5ZDFjOTY5MGQ0NTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bQpAQCAtMTY3OSwxMCArMTY3OSw5IEBAIHN0YXRpYyBpZCB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlz
aWJsZVBvc2l0aW9ucyhBWE9iamVjdENhY2hlKiBjYWNoZSwgY29uc3QgVmlzaWJsCiAgICAgV2lk
Z2V0KiB3aWRnZXQgPSBtX29iamVjdC0+d2lkZ2V0KCk7CiAgICAgaWYgKCF3aWRnZXQpCiAgICAg
ICAgIHJldHVybiBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBy
ZXR1cm4gWyh3aWRnZXQtPnBsYXRmb3JtV2lkZ2V0KCkpIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVW
YWx1ZTogTlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRyaWJ1dGVdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogfQogCiAtIChpZClyZW1vdGVBY2Nlc3NpYmlsaXR5UGFyZW50T2Jq
ZWN0CkBAIC0xNzUxLDEwICsxNzUwLDkgQEAgc3RhdGljIE5TTXV0YWJsZUFycmF5ICpjb252ZXJ0
U3RyaW5nc1RvTlNBcnJheShjb25zdCBWZWN0b3I8U3RyaW5nPiYgdmVjdG9yKQogICAgIGlmIChm
cmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5wbGF0Zm9ybVdpZGdldCgpKSB7CiAgICAgICAgIE5TUG9p
bnQgbnNQb2ludCA9IChOU1BvaW50KXBvaW50OwogICAgICAgICBOU1ZpZXcqIHZpZXcgPSBmcmFt
ZVZpZXctPmRvY3VtZW50VmlldygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogICAgICAgICBuc1BvaW50ID0gW1t2aWV3IHdpbmRvd10gY29udmVydEJhc2VUb1NjcmVl
bjpbdmlldyBjb252ZXJ0UG9pbnQ6bnNQb2ludCB0b1ZpZXc6bmlsXV07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICByZXR1cm4gQ0dQb2ludE1ha2UobnNQb2lu
dC54LCBuc1BvaW50LnkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIApAQCAtMjAwNiwxMSArMjAw
NCwxMCBAQCBzdGF0aWMgTlNTdHJpbmcgKnJvbGVWYWx1ZVRvTlNTdHJpbmcoQWNjZXNzaWJpbGl0
eVJvbGUgdmFsdWUpCiAKIC0gKE5TU3RyaW5nKilyb2xlCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICBpZiAobV9vYmplY3QtPmlzQXR0YWNobWVudCgpKQogICAgICAg
ICByZXR1cm4gW1tzZWxmIGF0dGFjaG1lbnRWaWV3XSBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFs
dWU6TlNBY2Nlc3NpYmlsaXR5Um9sZUF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IG1fb2JqZWN0LT5yb2xlVmFs
dWUoKTsKIAogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpMYWJlbCAmJiBpczxB
Y2Nlc3NpYmlsaXR5TGFiZWw+KCptX29iamVjdCkgJiYgZG93bmNhc3Q8QWNjZXNzaWJpbGl0eUxh
YmVsPigqbV9vYmplY3QpLmNvbnRhaW5zT25seVN0YXRpY1RleHQoKSkKQEAgLTIwMzAsOCArMjAy
Nyw3IEBAIHN0YXRpYyBOU1N0cmluZyAqcm9sZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3NpYmlsaXR5
Um9sZSB2YWx1ZSkKICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VW5rbm93blJvbGU7CiB9CiAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5H
X1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAtIChOU1N0cmluZyopc3Vi
cm9sZQogewogICAgIGlmIChtX29iamVjdC0+aXNQYXNzd29yZEZpZWxkKCkpCkBAIC0yMjQxLDE5
ICsyMjM3LDE4IEBAIHN0YXRpYyBOU1N0cmluZyAqcm9sZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3Np
YmlsaXR5Um9sZSB2YWx1ZSkKICAgICAKICAgICByZXR1cm4gbmlsOwogfQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKIC0gKE5TU3RyaW5nKilyb2xlRGVzY3JpcHRpb24K
IHsKICAgICBpZiAoIW1fb2JqZWN0KQogICAgICAgICByZXR1cm4gbmlsOwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAvLyBhdHRhY2htZW50cyBoYXZlIHRoZSBBWElt
YWdlIHJvbGUsIGJ1dCBhIGRpZmZlcmVudCBzdWJyb2xlCiAgICAgaWYgKG1fb2JqZWN0LT5pc0F0
dGFjaG1lbnQoKSkKICAgICAgICAgcmV0dXJuIFtbc2VsZiBhdHRhY2htZW50Vmlld10gYWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVJvbGVEZXNjcmlwdGlvbkF0dHJp
YnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBjb25zdCBBdG9t
aWNTdHJpbmcmIG92ZXJyaWRlUm9sZURlc2NyaXB0aW9uID0gbV9vYmplY3QtPnJvbGVEZXNjcmlw
dGlvbigpOwogICAgIGlmICghb3ZlcnJpZGVSb2xlRGVzY3JpcHRpb24uaXNOdWxsKCkgJiYgIW92
ZXJyaWRlUm9sZURlc2NyaXB0aW9uLmlzRW1wdHkoKSkKQEAgLTM0NzIsOCArMzQ2Nyw3IEBAIHN0
YXRpYyBOU1N0cmluZyAqcm9sZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3NpYmlsaXR5Um9sZSB2YWx1
ZSkKICAgICByZXR1cm4gcGFyYW1BdHRyczsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIikKIAogLSAodm9pZClhY2Nlc3NpYmlsaXR5UGVyZm9ybVByZXNzQWN0aW9u
CiB7CkBAIC0zNTMxLDcgKzM1MjUsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnJvbGVWYWx1ZVRvTlNT
dHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUgdmFsdWUpCiAgICAgICAgIG1fb2JqZWN0LT5kZWNyZW1l
bnQoKTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfVE9QX0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKIC0gKHZv
aWQpYWNjZXNzaWJpbGl0eVBlcmZvcm1TaG93TWVudUFjdGlvbgogewpAQCAtNDM0Myw4ICs0MzM3
LDcgQEAgc3RhdGljIHZvaWQgZm9ybWF0Rm9yRGVidWdnZXIoY29uc3QgVmlzaWJsZVBvc2l0aW9u
UmFuZ2UmIHJhbmdlLCBjaGFyKiBidWZmZXIsIHUKICAgICByZXR1cm4gTlNOb3RGb3VuZDsKIH0K
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIC0gKE5TVUludGVnZXIp
YWNjZXNzaWJpbGl0eUFycmF5QXR0cmlidXRlQ291bnQ6KE5TU3RyaW5nICopYXR0cmlidXRlCiB7
CiAgICAgaWYgKCFbc2VsZiB1cGRhdGVPYmplY3RCYWNraW5nU3RvcmVdKQpAQCAtNDM2NSw3ICs0
MzU4LDcgQEAgc3RhdGljIHZvaWQgZm9ybWF0Rm9yRGVidWdnZXIoY29uc3QgVmlzaWJsZVBvc2l0
aW9uUmFuZ2UmIHJhbmdlLCBjaGFyKiBidWZmZXIsIHUKICAgICAKICAgICByZXR1cm4gW3N1cGVy
IGFjY2Vzc2liaWxpdHlBcnJheUF0dHJpYnV0ZUNvdW50OmF0dHJpYnV0ZV07CiB9Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5E
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogLSAoTlNBcnJheSAqKWFjY2Vzc2liaWxp
dHlBcnJheUF0dHJpYnV0ZVZhbHVlczooTlNTdHJpbmcgKilhdHRyaWJ1dGUgaW5kZXg6KE5TVUlu
dGVnZXIpaW5kZXggbWF4Q291bnQ6KE5TVUludGVnZXIpbWF4Q291bnQKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQppbmRleCAwMmI4NDI4M2VkMzli
MTQxMmRhMGMwMTMzYTAyNzM5YTBiNjQyMzM0Li5mMTFjNmRkZTM2YTZmNGNiNzI0NmRiN2EwNzdl
MmViNDUxNzk5NDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJT
Y3JpcHRPYmplY3QubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvV2ViU2NyaXB0
T2JqZWN0Lm1tCkBAIC03MDIsMTMgKzcwMiwxMiBAQCBzdGF0aWMgdm9pZCBnZXRMaXN0RnJvbU5T
QXJyYXkoRXhlY1N0YXRlICpleGVjLCBOU0FycmF5ICphcnJheSwgUm9vdE9iamVjdCogcm9vdAog
ICAgIHJldHVybiBzZWxmOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xb2JqYy1taXNzaW5nLXN1cGVyLWNhbGxz
IgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV29iamMtbWlzc2luZy1zdXBlci1j
YWxscyIpCiAtICh2b2lkKWRlYWxsb2MKIHsKICAgICByZXR1cm47CiB9Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV29i
amMtbWlzc2luZy1zdXBlci1jYWxscyIpCiAKICsgKFdlYlVuZGVmaW5lZCAqKXVuZGVmaW5lZAog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19jbGFzcy5tbSBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfY2xhc3MubW0KaW5kZXggY2UxZWY2NTU3
YTA3NjNhN2QzNDMwYTNiZjk4NmExOTg3ZjhjYjM1Ni4uODgyYzRmNWJjOTNhOGNkMzBjNGI5NGM2
Y2FjYTQxMmZkYmRmMGE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMv
b2JqY19jbGFzcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2NsYXNz
Lm1tCkBAIC0xNjMsMTAgKzE2Myw5IEBAIEZpZWxkKiBPYmpjQ2xhc3M6OmZpZWxkTmFtZWQoUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlKSBjb25zCiAgICAgUmV0
YWluUHRyPENGU3RyaW5nUmVmPiBmaWVsZE5hbWUgPSBhZG9wdENGKENGU3RyaW5nQ3JlYXRlV2l0
aENTdHJpbmcoTlVMTCwganNOYW1lLmRhdGEoKSwga0NGU3RyaW5nRW5jb2RpbmdBU0NJSSkpOwog
ICAgIGlkIHRhcmdldE9iamVjdCA9IChzdGF0aWNfY2FzdDxPYmpjSW5zdGFuY2UqPihpbnN0YW5j
ZSkpLT5nZXRPYmplY3QoKTsKICNpZiBQTEFURk9STShJT1MpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5kZWNsYXJl
ZC1zZWxlY3RvciIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVd1bmRlY2xhcmVkLXNlbGVj
dG9yIik7CiAgICAgaWQgYXR0cmlidXRlcyA9IFt0YXJnZXRPYmplY3QgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3RvcihhdHRyaWJ1dGVLZXlzKV0gPyBbdGFyZ2V0T2JqZWN0IHBlcmZvcm1TZWxl
Y3RvcjpAc2VsZWN0b3IoYXR0cmlidXRlS2V5cyldIDogbmlsOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVd1bmRlY2xhcmVkLXNl
bGVjdG9yIik7CiAjZWxzZQogICAgIGlkIGF0dHJpYnV0ZXMgPSBbdGFyZ2V0T2JqZWN0IGF0dHJp
YnV0ZUtleXNdOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ29t
bW9uQ3J5cHRvVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9Db21tb25Dcnlw
dG9VdGlsaXRpZXMuY3BwCmluZGV4IGUwNDkyZWU2NzExMGY4OGM3MzE1MjE2ZDZjNjhiNjMzNDk2
ZDc3YTAuLjhmZWFmMzYwMTA5MmU0M2Y4ZjJhMmNiODA0NzEyNTJjZjc5MjBlMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9Db21tb25DcnlwdG9VdGlsaXRpZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9Db21tb25DcnlwdG9VdGlsaXRpZXMuY3BwCkBAIC01Miwx
MCArNTIsOSBAQCBib29sIGdldENvbW1vbkNyeXB0b0RpZ2VzdEFsZ29yaXRobShDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGhhc2hGdW5jdGlvbiwgQ0NEaQogewogICAgIHN3aXRjaCAoaGFzaEZ1
bmN0aW9uKSB7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMToKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdf
Q0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgYWxnb3JpdGhtID0g
a0NDRGlnZXN0U0hBMTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hB
XzIyNDoKICAgICAgICAgYWxnb3JpdGhtID0ga0NDRGlnZXN0U0hBMjI0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNTWFjLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTU1hYy5jcHAK
aW5kZXggYjJiYzI0ODg4YzdlZTc1OGU5ZGI0MDIzOTdhOGZhNmU0ZjFkMWUwOC4uODNkY2E0ZjVj
MDI3YmExNzcxNDM1NzE4NTUwZTk1YWZjNDVjOTc2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNTWFjLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwCkBAIC00MCwx
MCArNDAsOSBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBlbmNyeXB0QUVT
X0dDTShjb25zdCBWZWN0b3I8dWludDhfdD4mIGl2LCBjbwogICAgIFZlY3Rvcjx1aW50OF90PiBj
aXBoZXJUZXh0KHBsYWluVGV4dC5zaXplKCkpOyAvLyBQZXIgc2VjdGlvbiA1LjIuMS4yOiBodHRw
Oi8vbnZscHVicy5uaXN0Lmdvdi9uaXN0cHVicy9MZWdhY3kvU1AvbmlzdHNwZWNpYWxwdWJsaWNh
dGlvbjgwMC0zOGQucGRmCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHRhZyhkZXNpcmVkVGFnTGVuZ3Ro
SW5CeXRlcyk7CiAgICAgLy8gdGFnTGVuZ3RoIGlzIGFjdHVhbCBhbiBpbnB1dCA8cmRhcjovL3By
b2JsZW0vMzA2NjAwNzQ+Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBD
Q0NyeXB0b3JTdGF0dXMgc3RhdHVzID0gQ0NDcnlwdG9yR0NNKGtDQ0VuY3J5cHQsIGtDQ0FsZ29y
aXRobUFFUywga2V5LmRhdGEoKSwga2V5LnNpemUoKSwgaXYuZGF0YSgpLCBpdi5zaXplKCksIGFk
ZGl0aW9uYWxEYXRhLmRhdGEoKSwgYWRkaXRpb25hbERhdGEuc2l6ZSgpLCBwbGFpblRleHQuZGF0
YSgpLCBwbGFpblRleHQuc2l6ZSgpLCBjaXBoZXJUZXh0LmRhdGEoKSwgdGFnLmRhdGEoKSwgJmRl
c2lyZWRUYWdMZW5ndGhJbkJ5dGVzKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
ICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJy
b3IgfTsKIApAQCAtNTgsMTAgKzU3LDkgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50
OF90Pj4gZGVjeXB0QUVTX0dDTShjb25zdCBWZWN0b3I8dWludDhfdD4mIGl2LCBjb24KICAgICBW
ZWN0b3I8dWludDhfdD4gdGFnKGRlc2lyZWRUYWdMZW5ndGhJbkJ5dGVzKTsKICAgICBzaXplX3Qg
b2Zmc2V0ID0gY2lwaGVyVGV4dC5zaXplKCkgLSBkZXNpcmVkVGFnTGVuZ3RoSW5CeXRlczsKICAg
ICAvLyB0YWdMZW5ndGggaXMgYWN0dWFsIGFuIGlucHV0IDxyZGFyOi8vcHJvYmxlbS8zMDY2MDA3
ND4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklO
R19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIENDQ3J5cHRvclN0YXR1
cyBzdGF0dXMgPSBDQ0NyeXB0b3JHQ00oa0NDRGVjcnlwdCwga0NDQWxnb3JpdGhtQUVTLCBrZXku
ZGF0YSgpLCBrZXkuc2l6ZSgpLCBpdi5kYXRhKCksIGl2LnNpemUoKSwgYWRkaXRpb25hbERhdGEu
ZGF0YSgpLCBhZGRpdGlvbmFsRGF0YS5zaXplKCksIGNpcGhlclRleHQuZGF0YSgpLCBvZmZzZXQs
IHBsYWluVGV4dC5kYXRhKCksIHRhZy5kYXRhKCksICZkZXNpcmVkVGFnTGVuZ3RoSW5CeXRlcyk7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
RU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaWYgKHN0YXR1cykKICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tCmlu
ZGV4IGE1MTdmOTIyZTA0OGQxNDE3N2M0ZjZmOGM0MzYyMzEzMDg4MTQ5NjkuLjc5NDY0YTQ2ODBl
MzlhZGZhYzM4NDBmMmNjMDU3MGExNDRkZDU4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9tYWMvU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbQpAQCAtMjIwLDE1
ICsyMjAsMTQgQEAgYm9vbCB3cmFwU2VyaWFsaXplZENyeXB0b0tleShjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIG1hc3RlcktleSwgY29uc3QgVmVjdG9yPHVpbnQKICAgICBzaXplX3QgdGFnTGVuZ3Ro
ID0gMTY7CiAgICAgdWludDhfdCB0YWdbdGFnTGVuZ3RoXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgc3RhdHVzID0gQ0NDcnlwdG9yR0NNKGtDQ0VuY3J5cHQsIGtD
Q0FsZ29yaXRobUFFUzEyOCwga2VrLmRhdGEoKSwga2VrLnNpemUoKSwKICAgICAgICAgbnVsbHB0
ciwgMCwgLy8gaXYKICAgICAgICAgbnVsbHB0ciwgMCwgLy8gYXV0aCBkYXRhCiAgICAgICAgIGtl
eS5kYXRhKCksIGtleS5zaXplKCksCiAgICAgICAgIGVuY3J5cHRlZEtleS5kYXRhKCksCiAgICAg
ICAgIHRhZywgJnRhZ0xlbmd0aCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAK
ICAgICBpZiAoc3RhdHVzICE9IGtDQ1N1Y2Nlc3MpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTI4OSwxNSArMjg4LDE0IEBAIGJvb2wgdW53cmFwU2VyaWFsaXplZENyeXB0b0tleShjb25zdCBW
ZWN0b3I8dWludDhfdD4mIG1hc3RlcktleSwgY29uc3QgVmVjdG9yPHVpCiAgICAgdWludDhfdCBh
Y3R1YWxUYWdbdGFnTGVuZ3RoXTsKIAogICAgIGtleS5yZXNpemUoZW5jcnlwdGVkS2V5LnNpemUo
KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBzdGF0dXMgPSBDQ0Ny
eXB0b3JHQ00oa0NDRGVjcnlwdCwga0NDQWxnb3JpdGhtQUVTMTI4LCBrZWsuZGF0YSgpLCBrZWsu
c2l6ZSgpLAogICAgICAgICBudWxscHRyLCAwLCAvLyBpdgogICAgICAgICBudWxscHRyLCAwLCAv
LyBhdXRoIGRhdGEKICAgICAgICAgZW5jcnlwdGVkS2V5LmRhdGEoKSwgZW5jcnlwdGVkS2V5LnNp
emUoKSwKICAgICAgICAga2V5LmRhdGEoKSwKICAgICAgICAgYWN0dWFsVGFnLCAmdGFnTGVuZ3Ro
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFO
R19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIGlmIChzdGF0dXMgIT0g
a0NDU3VjY2VzcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRN
YXAucHkgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21w
YXRpYmlsaXR5RWxlbWVudE1hcC5weQppbmRleCBiMzRlNjE3YjE0NmQzMjlmYjFiYzMyYTBiYjcw
YzdjYmJhNDk5OTFhLi42N2JmOThiMDliNzE0ZDRmNWZiYWExZTE3M2NmNGYwMWY3YzlhOGNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRD
b21wYXRpYmlsaXR5RWxlbWVudE1hcC5weQorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNl
bGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5weQpAQCAtOTQsMTEg
Kzk0LDggQEAgb3V0cHV0X2ZpbGUud3JpdGUoIiIiCiAKICNpbmNsdWRlICJDU1NQYXJzZXJTZWxl
Y3Rvci5oIgogCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFn
bWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XaW1wbGljaXQtZmFsbHRo
cm91Z2giCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmtub3du
LXByYWdtYXMiKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2ltcGxpY2l0LWZh
bGx0aHJvdWdoIikKIAogLy8gT2xkZXIgdmVyc2lvbnMgb2YgZ3BlcmYgbGlrZSB0byB1c2UgdGhl
IGByZWdpc3RlcmAga2V5d29yZC4KICNkZWZpbmUgcmVnaXN0ZXIKQEAgLTIwMyw5ICsyMDAsOCBA
QCBQc2V1ZG9DbGFzc09yQ29tcGF0aWJpbGl0eVBzZXVkb0VsZW1lbnQgcGFyc2VQc2V1ZG9DbGFz
c0FuZENvbXBhdGliaWxpdHlFbGVtZW50UwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNp
ZiBkZWZpbmVkKF9fY2xhbmdfXykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRp
ZgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdpbXBsaWNpdC1mYWxsdGhy
b3VnaCIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3Vua25vd24tcHJh
Z21hcyIpCiAKICIiIikKIG91dHB1dF9maWxlLmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5weSBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5weQppbmRleCAyMDE4MjZlZDUx
Mzg5NGQ0ZmY3ZjNhZjA1MTNhZDcyMzg2OTJhZjg4Li4zMzRjOTM2MWQxYTFiNGExNTAyZjFiNGE2
OTJlNjI5YzM2OWQwYWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVj
dG9yUHNldWRvRWxlbWVudHNNYXAucHkKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxl
Y3RvclBzZXVkb0VsZW1lbnRzTWFwLnB5CkBAIC05MiwxMSArOTIsOCBAQCBvdXRwdXRfZmlsZS53
cml0ZSgiIiIKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTZWxlY3RvclBzZXVkb1R5
cGVNYXAuaCIKIAotI2lmIGRlZmluZWQoX19jbGFuZ19fKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJh
Z21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2ltcGxpY2l0LWZhbGx0
aHJvdWdoIgotI2VuZGlmCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5rbm93
bi1wcmFnbWFzIikKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdpbXBsaWNpdC1m
YWxsdGhyb3VnaCIpCiAKIC8vIE9sZGVyIHZlcnNpb25zIG9mIGdwZXJmIGxpa2UgdG8gdXNlIHRo
ZSBgcmVnaXN0ZXJgIGtleXdvcmQuCiAjZGVmaW5lIHJlZ2lzdGVyCkBAIC0xOTgsOSArMTk1LDgg
QEAgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRUeXBlIHBhcnNlUHNldWRvRWxlbWVudFN0cmlu
Zyhjb25zdCBTdHJpbmdJbXBsJiBwc2V1ZG8KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0j
aWYgZGVmaW5lZChfX2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5k
aWYKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XaW1wbGljaXQtZmFsbHRo
cm91Z2giKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmtub3duLXBy
YWdtYXMiKQogCiAiIiIpCiBvdXRwdXRfZmlsZS5jbG9zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1RleHRJdGVyYXRvci5jcHAKaW5kZXggNjY1MDgyMDNkNDY4ODcwNmE3NWE2OTc3MDUzNDU2NDFi
ZmNhYjA2NC4uYjc5Y2UwODg1MGFjOGFhMTQ1MmZhYTAxMGJhNzhkOGFiOGMxMjhkZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcApAQCAtMjAxMSwxMCArMjAxMSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBjb250YWluc0thbmFMZXR0ZXJzKGNvbnN0IFN0cmluZyYgcGF0
dGVybikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcp
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdf
R0NDX09SX0NMQU5HX1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAvLyBO
T1RFOiBJQ1UncyB1bm9ybV9ub3JtYWxpemUgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4KIAogc3Rh
dGljIHZvaWQgbm9ybWFsaXplQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5z
aWduZWQgbGVuZ3RoLCBWZWN0b3I8VUNoYXI+JiBidWZmZXIpCkBAIC0yMDM4LDkgKzIwMzUsNyBA
QCBzdGF0aWMgdm9pZCBub3JtYWxpemVDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJz
LCB1bnNpZ25lZCBsZW5ndGgsIFZlY3RvcgogICAgIEFTU0VSVChzdGF0dXMgPT0gVV9TVFJJTkdf
Tk9UX1RFUk1JTkFURURfV0FSTklORyk7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcp
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitJR05PUkVfV0FSTklOR19HQ0Nf
T1JfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKIHN0
YXRpYyBib29sIGlzTm9uTGF0aW4xU2VwYXJhdG9yKFVDaGFyMzIgY2hhcmFjdGVyKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCmluZGV4IGNmMjg5YmY3MGU0MDAwMzY3
Njc4MDhkMWExNjk5ZjY4MjM3YWFjMDAuLjY1Njg3ODI4NjdiZTBiMjZiNDZhYWNmMmFkYTFiNjM3
NzNkOWY4MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KQEAgLTgx
LDExICs4MSwxMCBAQCB2b2lkIEVkaXRvcjo6cGFzdGVXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJk
KiBwYXN0ZWJvYXJkLCBib29sIGFsbG93UGxhaW5UZXh0LCBNYQogewogICAgIFJlZlB0cjxSYW5n
ZT4gcmFuZ2UgPSBzZWxlY3RlZFJhbmdlKCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgIC8vIEZJWE1FOiBIb3cgY2FuIHRoaXMgaGFyZC1jb2RlZCBwYXN0ZWJvYXJk
IG5hbWUgYmUgcmlnaHQsIGdpdmVuIHRoYXQgdGhlIHBhc3NlZC1pbiBwYXN0ZWJvYXJkIGhhcyBh
IG5hbWU/CiAgICAgY2xpZW50KCktPnNldEluc2VydGlvblBhc3RlYm9hcmQoTlNHZW5lcmFsUGJv
YXJkKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIGJvb2wgY2hvc2VQ
bGFpblRleHQ7CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gd2ViQ29u
dGVudEZyb21QYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkLCAqcmFuZ2UsIGFsbG93UGxhaW5UZXh0LCBj
aG9zZVBsYWluVGV4dCk7CkBAIC0xMTEsMTEgKzExMCwxMCBAQCB2b2lkIEVkaXRvcjo6dGFrZUZp
bmRTdHJpbmdGcm9tU2VsZWN0aW9uKCkKIAogICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOwogICAg
IHR5cGVzLmFwcGVuZChTdHJpbmcobGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUoKSkpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCkt
PnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zZXRUeXBlcyh0eXBlcywgTlNGaW5kUGJvYXJkKTsKICAg
ICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnNldFN0cmluZ0Zv
clR5cGUobV9mcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHNlbGVjdGVkVGV4
dEZvckRhdGFUcmFuc2ZlcigpKSwgbGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUoKSwgTlNGaW5k
UGJvYXJkKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklO
R19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogdm9pZCBFZGl0
b3I6OnJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRO
YW1lLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpCkBAIC0x
NjksMTEgKzE2NywxMCBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZU5vZGVGcm9tUGFzdGVib2FyZChO
b2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAvLyBGSVhN
RTogSG93IGNhbiB0aGlzIGhhcmQtY29kZWQgcGFzdGVib2FyZCBuYW1lIGJlIHJpZ2h0LCBnaXZl
biB0aGF0IHRoZSBwYXNzZWQtaW4gcGFzdGVib2FyZCBoYXMgYSBuYW1lPwogICAgIGNsaWVudCgp
LT5zZXRJbnNlcnRpb25QYXN0ZWJvYXJkKE5TR2VuZXJhbFBib2FyZCk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBib29sIGNob3NlUGxhaW5UZXh0OwogICAgIGlmIChS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSB3ZWJDb250ZW50RnJvbVBhc3RlYm9h
cmQocGFzdGVib2FyZCwgKnJhbmdlLCB0cnVlLCBjaG9zZVBsYWluVGV4dCkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRleCBhMjY0MzBjZjI1MjRhZDIw
NGQ2MTM3OWEwZWQwYjAwOTk2NTZiOTFkLi5mMDA1MmFhZTM5YWFiZDA4NGRjM2JlOTQwZWU5YzBh
MjI2NGRlZDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRs
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1t
CkBAIC02MTIsMTAgKzYxMiw5IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0Fm
dGVyV2lkZ2V0VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50KQogICAgICAgICAvLyBu
byB1cC10by1kYXRlIGNhY2hlIG9mIHRoZW0gYW55d2hlcmUuCiAgICAgICAgIGZha2VFdmVudCA9
IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbdmlldy0+cGxhdGZv
cm1XaWRnZXQoKSB3aW5kb3ddCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJ
R05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6
W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJ
R05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltp
bml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5nRXZlbnQgdGltZXN0YW1wXQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6W2luaXRpYXRpbmdFdmVu
dCB3aW5kb3dOdW1iZXJdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2Vydmlj
ZXNPdmVybGF5Q29udHJvbGxlci5tbQppbmRleCA1MmRiOTllMGY5ZTU3ZjNiYTM1OGRmODVmMDcx
ZGI3ODUyODRiYzBmLi5lZDMxYzBmNTU0NjJhYzdhMjg2ODllM2I0YjI5MWFjMTBjMjE0Mjc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXIubW0KQEAgLTEzMiwxMCArMTMyLDkgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyOjpIaWdobGlnaHQ6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEcKIAog
ICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBncmFwaGljc0NvbnRleHQucGxhdGZvcm1Db250
ZXh0KCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVf
V0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIENHTGF5ZXJS
ZWYgaGlnaGxpZ2h0TGF5ZXIgPSBEREhpZ2hsaWdodEdldExheWVyV2l0aENvbnRleHQoZGRIaWdo
bGlnaHQoKSwgY2dDb250ZXh0KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAg
ICBDR1JlY3QgaGlnaGxpZ2h0Qm91bmRpbmdSZWN0ID0gRERIaWdobGlnaHRHZXRCb3VuZGluZ1Jl
Y3QoZGRIaWdobGlnaHQoKSk7CiAgICAgaGlnaGxpZ2h0Qm91bmRpbmdSZWN0Lm9yaWdpbiA9IENH
UG9pbnRaZXJvOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
ZWRTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3Mu
Y3BwCmluZGV4IGIwNTUwY2Y1MzA1ZTg2MzVkYjRkNWE4MmU4OTY2ZjA4ZjAyYTc1MGIuLjdjZjdl
ODE2M2ExMDdjYmNiMTJkOTM0NmI1NjQ2ZTg3YjE2ZDAwNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC01NCwxNCArNTQsOSBAQCBTdHJpbmcg
Zm9ybWF0TG9jYWxpemVkU3RyaW5nKFN0cmluZyBmb3JtYXQsIC4uLikKICAgICB2YV9saXN0IGFy
Z3VtZW50czsKICAgICB2YV9zdGFydChhcmd1bWVudHMsIGZvcm1hdCk7CiAKLSNpZiBDT01QSUxF
UihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNlbmRpZgorICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HKCItV2Zvcm1hdC1ub25saXRlcmFsIik7CiAgICAgYXV0byByZXN1bHQg
PSBhZG9wdENGKENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cygwLCAwLCBmb3Jt
YXQuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgYXJndW1lbnRzKSk7Ci0jaWYgQ09NUElMRVIoQ0xB
TkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBJR05PUkVfV0FS
TklOR19DTEFOR19FTkQoIi1XZm9ybWF0LW5vbmxpdGVyYWwiKTsKIAogICAgIHZhX2VuZChhcmd1
bWVudHMpOwogICAgIHJldHVybiByZXN1bHQuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JlZW5Qcm9wZXJ0aWVzLmgKaW5kZXggNDFhNTBiMjEzZmRlMDhkMzdmZGJhYWNiYmM5NmI2
MWFjODczMTM1Yy4uNmEzOGVkOTZlODMzOTc3N2EyZGIxOWNmMjAwNTg4YzY1MmVmOWYyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaApAQCAtMTk1LDEwICsx
OTUsOSBAQCBzdGQ6Om9wdGlvbmFsPFNjcmVlbkRhdGE+IFNjcmVlbkRhdGE6OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQogCiAgICAgICAgIGF1dG8gY29sb3JTcGFjZURhdGEgPSBhZG9wdENGKENG
RGF0YUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBpY2NEYXRhLT5kYXRhKCksIGljY0RhdGEt
PnNpemUoKSkpOwogICAgICAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTg0MzU4
PiBXZSBzaG91bGQgc3dpdGNoIHRvIENHQ29sb3JTcGFjZUNyZWF0ZUlDQ0Jhc2VkLgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFO
RygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBjZ0NvbG9yU3BhY2UgPSBh
ZG9wdENGKENHQ29sb3JTcGFjZUNyZWF0ZVdpdGhJQ0NQcm9maWxlKGNvbG9yU3BhY2VEYXRhLmdl
dCgpKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJO
SU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBicmVh
azsKICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2Ft
ZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHAKaW5kZXggYjZjZTY5NjIwNTEwN2Jk
MjJlOTRmYzQzNWQ4NzAxZTBmODNlZTYyZS4uY2ZiYTgzMTRjMTBiNzg1YTc2ZjVhODliZTIyMGRi
ZDcxNjFmZjQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9t
YWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
YW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwCkBAIC0xMDMsMTAgKzEwMyw5IEBAIEhJ
REdhbWVwYWRQcm92aWRlcjo6SElER2FtZXBhZFByb3ZpZGVyKCkKIAogdm9pZCBISURHYW1lcGFk
UHJvdmlkZXI6OnN0b3BNb25pdG9yaW5nSW5wdXQoKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbm51bGwiCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1Xbm9ubnVsbCIpOwogICAgIElPSElETWFuYWdlclJl
Z2lzdGVySW5wdXRWYWx1ZUNhbGxiYWNrKG1fbWFuYWdlci5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0
cik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfRU5EKCItV25vbm51bGwiKTsKIH0KIAogdm9pZCBISURHYW1lcGFkUHJvdmlkZXI6OnN0YXJ0
TW9uaXRvcmluZ0lucHV0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCmluZGV4IDVmMjlhZjg1YTk0ODNkNDc2MmU5ODdiMzIw
NWI4MGUxN2MzYmIxOWMuLmVhYWZkNzkwNGVkOGZjYTQzOTdkYWFiYzM3ZTE4MzIzZjc1YTY3MDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlz
cGxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmNwcApAQCAtMTE4LDE0ICsxMTgsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1E
aXNwbGF5PiBQbGF0Zm9ybURpc3BsYXk6OmNyZWF0ZVBsYXRmb3JtRGlzcGxheSgpCiBQbGF0Zm9y
bURpc3BsYXkmIFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpCiB7CiAgICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2V4aXQtdGltZS1kZXN0cnVjdG9ycyIKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
KCItV2V4aXQtdGltZS1kZXN0cnVjdG9ycyIpOwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
UGxhdGZvcm1EaXNwbGF5PiBkaXNwbGF5OwotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5E
KCItV2V4aXQtdGltZS1kZXN0cnVjdG9ycyIpOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFn
LCBbXXsKICAgICAgICAgZGlzcGxheSA9IGNyZWF0ZVBsYXRmb3JtRGlzcGxheSgpOwogICAgIH0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRl
UGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAKaW5kZXggNGQ1ZDgwODhhOTJj
ZTk3ZTljZDQ4MGJjNGM4ZWE1NjhiOGU2YTZiYS4uMTllYmZjNzFhYjMxMTAzYTAzOTJjNWZmZGY0
ZjgwZmQxYTI3MTgyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwCkBA
IC02OSwxMCArNjksNyBAQCBib29sIFN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvcjo6Y29u
c3VtZVNsb3dDYXNlKFVDaGFyMzImIGNoYXJhY3RlciwgdW5zaWduZQogICAgIHJldHVybiB0cnVl
OwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFOR19UT1BfTEVWRUwo
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogLy8gTk9URTogSUNVJ3MgdW5vcm1fbm9ybWFs
aXplIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQuCiAKIFVDaGFyMzIgU3Vycm9nYXRlUGFpckF3YXJl
VGV4dEl0ZXJhdG9yOjpub3JtYWxpemVWb2ljaW5nTWFya3MoKQpAQCAtOTUsOCArOTIsNiBAQCBV
Q2hhcjMyIFN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvcjo6bm9ybWFsaXplVm9pY2luZ01h
cmtzKCkKICAgICByZXR1cm4gMDsKIH0KIAotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0dDQ19PUl9D
TEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCmluZGV4IGIy
YzFlOTY2MzRiM2Y1NjRmZmMwYzViZDE2YjI5ZWU0MmQ4NGZhMmMuLjU5MDY3MmJjMmI4ZjUyYjEy
Mzg2OTcxOTc2ZDBiYjdhMTFmNWVhMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFT
ZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KQEAgLTEyMywxMCArMTIzLDkgQEAgdm9pZCBNZWRpYVNl
bGVjdGlvbkdyb3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
Y2hhcmFjdGVyaXMKIAogICAgICAgICBtX29wdGlvbnMucmVtb3ZlKChfX2JyaWRnZSBDRlR5cGVS
ZWYpcmVtb3ZlZEFWT3B0aW9uKTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKICAgICBBVk1lZGlhU2VsZWN0aW9uT3B0aW9uKiBzZWxlY3RlZE9wdGlvbiA9IFttX3Bs
YXllckl0ZW0gc2VsZWN0ZWRNZWRpYU9wdGlvbkluTWVkaWFTZWxlY3Rpb25Hcm91cDptX21lZGlh
U2VsZWN0aW9uR3JvdXAuZ2V0KCldOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgIGZvciAoQVZNZWRpYVNlbGVjdGlvbk9wdGlvbiogYWRkZWRBVk9wdGlvbiBpbiBhZGRlZEFW
T3B0aW9ucy5nZXQoKSkgewogICAgICAgICBhdXRvIGFkZGVkT3B0aW9uID0gTWVkaWFTZWxlY3Rp
b25PcHRpb25BVkZPYmpDOjpjcmVhdGUoKnRoaXMsIGFkZGVkQVZPcHRpb24pOwogICAgICAgICBp
ZiAoYWRkZWRBVk9wdGlvbiA9PSBzZWxlY3RlZE9wdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0
cmVhbVNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCmluZGV4IDI2YWIwMjRkOGJj
OWY4MmJmN2Q2NTU1OTM2ZGM1ZWI1YWE0YjUwMjguLmJmOGUwZWU1OWEyMDQ2YmJkNDgyOTQ1MjU0
ODk2YjE0MDUxZWI2NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vz
c2lvbkFWU3RyZWFtU2Vzc2lvbi5tbQpAQCAtMTk4LDEyICsxOTgsMTEgQEAgYm9vbCBDRE1TZXNz
aW9uQVZTdHJlYW1TZXNzaW9uOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhB
cnJheT4mIG5leHQKIAogICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiBjZXJ0aWZpY2F0ZURhdGEg
PSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOm1fY2VydGlmaWNhdGUtPmRh
dGEoKSBsZW5ndGg6bV9jZXJ0aWZpY2F0ZS0+bGVuZ3RoKCldKTsKIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV29iamMt
bGl0ZXJhbC1jb252ZXJzaW9uIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdvYmpj
LWxpdGVyYWwtY29udmVyc2lvbiIpOwogICAgICAgICBTdHJpbmcgc3RvcmFnZVBhdGggPSB0aGlz
LT5zdG9yYWdlUGF0aCgpOwogICAgICAgICBpZiAoIXN0b3JhZ2VQYXRoLmlzRW1wdHkoKSAmJiBb
Z2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHJl
bW92ZVBlbmRpbmdFeHBpcmVkU2Vzc2lvblJlcG9ydHM6d2l0aEFwcElkZW50aWZpZXI6c3RvcmFn
ZURpcmVjdG9yeUF0VVJMOildKQogICAgICAgICAgICAgW2dldEFWU3RyZWFtU2Vzc2lvbkNsYXNz
KCkgcmVtb3ZlUGVuZGluZ0V4cGlyZWRTZXNzaW9uUmVwb3J0czpAW21fZXhwaXJlZFNlc3Npb24u
Z2V0KCldIHdpdGhBcHBJZGVudGlmaWVyOmNlcnRpZmljYXRlRGF0YS5nZXQoKSBzdG9yYWdlRGly
ZWN0b3J5QXRVUkw6W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpzdG9yYWdlUGF0aF1dOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQo
Ii1Xb2JqYy1saXRlcmFsLWNvbnZlcnNpb24iKTsKICAgICAgICAgbV9leHBpcmVkU2Vzc2lvbiA9
IG51bGxwdHI7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTI0MywxMCArMjQyLDkg
QEAgYm9vbCBDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjp1cGRhdGUoVWludDhBcnJheSoga2V5
LCBSZWZQdHI8VWludDhBcnJheT4mIG5leHQKICAgICAgICAgfQogCiAgICAgICAgIE5TRXJyb3Iq
IGVycm9yID0gbmlsOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAg
ICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAg
ICAgICBSZXRhaW5QdHI8TlNEYXRhPiByZXF1ZXN0ID0gW3Byb3RlY3RlZFNvdXJjZUJ1ZmZlci0+
cGFyc2VyKCkgc3RyZWFtaW5nQ29udGVudEtleVJlcXVlc3REYXRhRm9yQXBwOmNlcnRpZmljYXRl
RGF0YS5nZXQoKSBjb250ZW50SWRlbnRpZmllcjppbml0RGF0YS5nZXQoKSB0cmFja0lEOnByb3Rl
Y3RlZFNvdXJjZUJ1ZmZlci0+cHJvdGVjdGVkVHJhY2tJRCgpIG9wdGlvbnM6b3B0aW9ucy5nZXQo
KSBlcnJvcjomZXJyb3JdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAog
ICAgICAgICBpZiAoIVtwcm90ZWN0ZWRTb3VyY2VCdWZmZXItPnBhcnNlcigpIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoY29udGVudFByb3RlY3Rpb25TZXNzaW9uSWRlbnRpZmllcildKQog
ICAgICAgICAgICAgbV9zZXNzaW9uSWQgPSBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCk7CkBA
IC0yNzMsMTAgKzI3MSw5IEBAIGJvb2wgQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6dXBkYXRl
KFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0CiAgICAgZXJyb3JDb2Rl
ID0gTWVkaWFQbGF5ZXI6Ok5vRXJyb3I7CiAgICAgc3lzdGVtQ29kZSA9IDA7CiAgICAgUmV0YWlu
UHRyPE5TRGF0YT4ga2V5RGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0
ZXM6a2V5LT5kYXRhKCkgbGVuZ3RoOmtleS0+bGVuZ3RoKCldKTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgIFtwcm90ZWN0ZWRTb3VyY2VCdWZmZXItPnBhcnNlcigpIHBy
b2Nlc3NDb250ZW50S2V5UmVzcG9uc2VEYXRhOmtleURhdGEuZ2V0KCkgZm9yVHJhY2tJRDpwcm90
ZWN0ZWRTb3VyY2VCdWZmZXItPnByb3RlY3RlZFRyYWNrSUQoKV07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25N
ZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCBkMzI2
ZjJmYTJmYjJiMWM2MGVkOWUzYjkzODhhYTU0NTlkOWQ3NWUxLi5iY2E4OTRkODUxZDcwY2QzMGIw
MmZmZjBhNWNkNGFhMTdjMmU5OGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC01NCwxMSArNTQsMTEgQEAgcHVi
bGljOgogCiAgICAgLy8gU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakNFcnJvckNsaWVudAogICAg
IHZvaWQgbGF5ZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgKiwg
TlNFcnJvciAqLCBib29sJiBzaG91bGRJZ25vcmUpIG92ZXJyaWRlOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25v
d24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRl
ZC1hdmFpbGFiaWxpdHktbmV3IgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgi
LVd1bmtub3duLXByYWdtYXMiKQorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgi
LVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCiAgICAgdm9pZCByZW5kZXJlckRpZFJlY2Vp
dmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKiwgTlNFcnJvciAqLCBib29sJiBz
aG91bGRJZ25vcmUpIG92ZXJyaWRlOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5ndWFyZGVkLWF2YWlsYWJp
bGl0eS1uZXciKQorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5r
bm93bi1wcmFnbWFzIikKIAogICAgIHZvaWQgYWRkU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDKik7CiAgICAgdm9pZCByZW1vdmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGRjM2RlZWIzZjc5
MjA5MGZiMDY3MjdlZjQ0NzM0YWQwODNkNTBmODIuLjk1NTIxMDBhZjg5ZWUxM2VhMjI2MjAyOTli
ZDI0NTk3ODIzNWZiNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMjY5OSwxMCArMjY5
OSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0Q3VycmVu
dFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2CiAKICAgICBpZiAodHJhY2spIHsKICAgICAg
ICAgaWYgKHRyYWNrLT50ZXh0VHJhY2tDYXRlZ29yeSgpID09IEluYmFuZFRleHRUcmFja1ByaXZh
dGVBVkY6OkxlZ2FjeUNsb3NlZENhcHRpb24pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgW21fYXZQbGF5ZXIuZ2V0KCkgc2V0Q2xvc2VkQ2Fw
dGlvbkRpc3BsYXlFbmFibGVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiAj
aWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKICAgICAgICAgZWxzZSBpZiAodHJhY2stPnRleHRUcmFj
a0NhdGVnb3J5KCkgPT0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6T3V0T2ZCYW5kKQpAQCAt
MjcxNSwxMCArMjcxNCw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6c2V0Q3VycmVudFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2CiAjaWYgSEFWRShBVkZP
VU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKQogICAgICAgICBbbV9hdlBsYXllckl0ZW0u
Z2V0KCkgc2VsZWN0TWVkaWFPcHRpb246MCBpbk1lZGlhU2VsZWN0aW9uR3JvdXA6c2FmZU1lZGlh
U2VsZWN0aW9uR3JvdXBGb3JMZWdpYmxlTWVkaWEoKV07CiAjZW5kaWYKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgW21fYXZQbGF5ZXIuZ2V0KCkgc2V0Q2xv
c2VkQ2FwdGlvbkRpc3BsYXlFbmFibGVkOk5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgfQogCiB9CkBAIC0yNzM0LDEwICsyNzMyLDkgQEAgU3RyaW5nIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFj
aygpIGNvbnN0CiAjaWYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKQog
ICAgIC8vIElmIEFWRm91bmRhdGlvbiBoYXMgYW4gYXVkaWJsZSBncm91cCwgcmV0dXJuIHRoZSBs
YW5ndWFnZSBvZiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGF1ZGlibGUgb3B0aW9uLgogICAgIEFW
TWVkaWFTZWxlY3Rpb25Hcm91cFR5cGUgKmF1ZGlibGVHcm91cCA9IFttX2F2QXNzZXQuZ2V0KCkg
bWVkaWFTZWxlY3Rpb25Hcm91cEZvck1lZGlhQ2hhcmFjdGVyaXN0aWM6QVZNZWRpYUNoYXJhY3Rl
cmlzdGljQXVkaWJsZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBB
Vk1lZGlhU2VsZWN0aW9uT3B0aW9uVHlwZSAqY3VycmVudGx5U2VsZWN0ZWRBdWRpYmxlT3B0aW9u
ID0gW21fYXZQbGF5ZXJJdGVtLmdldCgpIHNlbGVjdGVkTWVkaWFPcHRpb25Jbk1lZGlhU2VsZWN0
aW9uR3JvdXA6YXVkaWJsZUdyb3VwXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
ICAgICBpZiAoY3VycmVudGx5U2VsZWN0ZWRBdWRpYmxlT3B0aW9uKSB7CiAgICAgICAgIG1fbGFu
Z3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrID0gW1tjdXJyZW50bHlTZWxlY3RlZEF1ZGlibGVPcHRp
b24gbG9jYWxlXSBsb2NhbGVJZGVudGlmaWVyXTsKICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJ
RklFUiwgImxhbmd1YWdlIG9mIHNlbGVjdGVkIGF1ZGlibGUgb3B0aW9uICIsIG1fbGFuZ3VhZ2VP
ZlByaW1hcnlBdWRpb1RyYWNrKTsKQEAgLTMyNDgsMTAgKzMyNDUsOSBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNhblBsYXlGYXN0UmV2ZXJzZURpZENoYW5nZShi
b29sIG5ld1ZhbAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRT
aG91bGREaXNhYmxlU2xlZXAoYm9vbCBmbGFnKQogewogI2lmIFBMQVRGT1JNKElPUykgJiYgIVBM
QVRGT1JNKElPU19TSU1VTEFUT1IpICYmICFQTEFURk9STShJT1NNQUMpCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbbV9hdlBsYXllciBfc2V0UHJldmVudHNTbGVlcER1
cmluZ1ZpZGVvUGxheWJhY2s6ZmxhZ107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShmbGFnKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuaAppbmRleCAwNDQ0ZDlhZjA1NzNmNWI3MjdhNjM1OWRiNWRlNDcxZGE4MjdhZWUzLi4z
OWE2NTk2ZmI0OGJlYTM5ZjQwM2Y3Yzk3NGUyNDk5NTNhNjZlZWYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaApAQCAtNjksMTIgKzY5LDEyIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBn
ZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNo
PiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRz
VHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1
bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1
YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVW
RUwoIi1XdW5rbm93bi1wcmFnbWFzIikKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVW
RUwoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQogICAgIHZvaWQgYWRkQXVkaW9SZW5k
ZXJlcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqKTsKICAgICB2b2lkIHJlbW92ZUF1ZGlv
UmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKik7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1
bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9Q
X0xFVkVMX0VORCgiLVd1bmtub3duLXByYWdtYXMiKQogCiAgICAgTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC04NywxMSArODcsMTEg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0TG9hZGluZ1Byb2dyZXNzc2VkKGJvb2wgZmxhZykgeyBt
X2xvYWRpbmdQcm9ncmVzc2VkID0gZmxhZzsgfQogICAgIHZvaWQgc2V0SGFzQXZhaWxhYmxlVmlk
ZW9GcmFtZShib29sKTsKICAgICBib29sIGhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSBjb25zdCBv
dmVycmlkZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKKyAgICBJR05PUkVf
V0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5rbm93bi1wcmFnbWFzIikKKyAgICBJR05PUkVf
V0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQog
ICAgIHZvaWQgc2V0SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUoQVZTYW1wbGVCdWZmZXJBdWRpb1Jl
bmRlcmVyKiwgYm9vbCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5l
dyIpCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmtub3duLXBy
YWdtYXMiKQogICAgIGJvb2wgYWxsUmVuZGVyZXJzSGF2ZUF2YWlsYWJsZVNhbXBsZXMoKSBjb25z
dCB7IHJldHVybiBtX2FsbFJlbmRlcmVyc0hhdmVBdmFpbGFibGVTYW1wbGVzOyB9CiAgICAgdm9p
ZCB1cGRhdGVBbGxSZW5kZXJlcnNIYXZlQXZhaWxhYmxlU2FtcGxlcygpOwogICAgIHZvaWQgZHVy
YXRpb25DaGFuZ2VkKCk7CkBAIC0yNjcsMTIgKzI2NywxMiBAQCBwcml2YXRlOgogICAgIHN0cnVj
dCBBdWRpb1JlbmRlcmVyUHJvcGVydGllcyB7CiAgICAgICAgIGJvb2wgaGFzQXVkaWJsZVNhbXBs
ZSB7IGZhbHNlIH07CiAgICAgfTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIK
KyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5rbm93bi1wcmFnbWFzIikK
KyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5ndWFyZGVkLWF2YWlsYWJp
bGl0eS1uZXciKQogICAgIEhhc2hNYXA8UmV0YWluUHRyPENGVHlwZVJlZj4sIEF1ZGlvUmVuZGVy
ZXJQcm9wZXJ0aWVzPiBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXA7CiAgICAgUmV0YWlu
UHRyPEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyPiBtX3N5bmNocm9uaXplcjsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1Bf
TEVWRUxfRU5EKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKKyAgICBJR05PUkVfV0FS
TklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3Vua25vd24tcHJhZ21hcyIpCiAgICAgUmV0YWlu
UHRyPGlkPiBtX3RpbWVKdW1wZWRPYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8aWQ+IG1fZHVyYXRp
b25PYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8QVZTdHJlYW1TZXNzaW9uPiBtX3N0cmVhbVNlc3Np
b247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggOTY4ZmM1YTA4N2YzMTFkODhiMjM5
ZTY3Njk0ODk0OTIxM2I0Y2JhNi4uMDI0NDQxZDZiY2UwYmIyYzJlZmFhMjM0YTRiNDU0YWRkODM1
N2IzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNjIsMTcgKzYyLDE3IEBAIFNP
RlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoQVZGb3VuZGF0aW9uKQogCiBTT0ZUX0xJTktfQ0xB
U1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVkFzc2V0KQogU09GVF9MSU5LX0NMQVNTX09QVElP
TkFMKEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldCkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMi
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmls
aXR5LW5ldyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmtub3duLXByYWdt
YXMiKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFi
aWxpdHktbmV3IikKIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWU2Ft
cGxlQnVmZmVyQXVkaW9SZW5kZXJlcikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lH
Tk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5l
dyIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5rbm93bi1wcmFnbWFzIikK
IFNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3Vua25vd24tcHJhZ21hcyIpCitJR05PUkVfV0FSTklO
R19DTEFOR19UT1BfTEVWRUwoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQogU09GVF9M
SU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJSZW5kZXJTeW5j
aHJvbml6ZXIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19D
TEFOR19UT1BfTEVWRUxfRU5EKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKK0lHTk9S
RV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5rbm93bi1wcmFnbWFzIikKIFNPRlRf
TElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWU3RyZWFtRGF0YVBhcnNlcikKIFNP
RlRfTElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWU3RyZWFtU2Vzc2lvbik7CiBT
T0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlZpZGVvUGVyZm9ybWFuY2VN
ZXRyaWNzKQpAQCAtNzczLDExICs3NzMsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoYm9vbCBmbGFnKQogICAg
IH0KIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfVE9QX0xFVkVMKCItV3Vua25vd24tcHJhZ21hcyIpCitJR05PUkVfV0FSTklOR19D
TEFOR19UT1BfTEVWRUwoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEhhc0F2YWlsYWJsZUF1ZGlvU2Ft
cGxlKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciogcmVuZGVyZXIsIGJvb2wgZmxhZykKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZF
TF9FTkQoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQorSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfVE9QX0xFVkVMX0VORCgiLVd1bmtub3duLXByYWdtYXMiKQogewogICAgIGF1dG8gaXRlciA9
IG1fc2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlck1hcC5maW5kKChfX2JyaWRnZSBDRlR5cGVSZWYp
cmVuZGVyZXIpOwogICAgIGlmIChpdGVyID09IG1fc2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlck1h
cC5lbmQoKSkKQEAgLTEwMTcsMTEgKzEwMTcsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6OnNldE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6TmV0d29ya1MK
ICAgICBtX3BsYXllci0+bmV0d29ya1N0YXRlQ2hhbmdlZCgpOwogfQogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5r
bm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFy
ZGVkLWF2YWlsYWJpbGl0eS1uZXciCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1X
dW5rbm93bi1wcmFnbWFzIikKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmd1
YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6YWRkQXVkaW9SZW5kZXJlcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIq
IGF1ZGlvUmVuZGVyZXIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FS
TklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikK
K0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5rbm93bi1wcmFnbWFzIikK
IHsKICAgICBpZiAoIW1fc2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlck1hcC5hZGQoKF9fYnJpZGdl
IENGVHlwZVJlZilhdWRpb1JlbmRlcmVyLCBBdWRpb1JlbmRlcmVyUHJvcGVydGllcygpKS5pc05l
d0VudHJ5KQogICAgICAgICByZXR1cm47CkBAIC0xMDM0LDExICsxMDM0LDExIEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphZGRBdWRpb1JlbmRlcmVyKEFWU2Ft
cGxlQnVmZmVyQXVkaW9SCiAgICAgbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVyUmVuZGVy
aW5nTW9kZUNoYW5nZWQobV9wbGF5ZXIpOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFz
IgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJp
bGl0eS1uZXciCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5rbm93bi1wcmFn
bWFzIikKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmd1YXJkZWQtYXZhaWxh
YmlsaXR5LW5ldyIpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
cmVtb3ZlQXVkaW9SZW5kZXJlcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqIGF1ZGlvUmVu
ZGVyZXIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFO
R19UT1BfTEVWRUxfRU5EKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKK0lHTk9SRV9X
QVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5rbm93bi1wcmFnbWFzIikKIHsKICAgICBh
dXRvIGl0ZXIgPSBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXAuZmluZCgoX19icmlkZ2Ug
Q0ZUeXBlUmVmKWF1ZGlvUmVuZGVyZXIpOwogICAgIGlmIChpdGVyID09IG1fc2FtcGxlQnVmZmVy
QXVkaW9SZW5kZXJlck1hcC5lbmQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9T
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCmluZGV4IDAxOWNmMzdiNmJiZGFhYzRjNGViZmVh
M2Y5ODRiMmFiZDliZjEzYTEuLmNjYzIyZDMwM2I5Y2RlMjQ3NmE0OTQ1NjdhZGUxNGQ1NzM1Mzll
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMuaApAQCAtNzAsMTEgKzcwLDExIEBAIGNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDRXJyb3JDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgflNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDRXJyb3JDbGllbnQoKSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCB2b2lkIGxh
eWVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyICosIE5TRXJyb3Ig
KiwgYm9vbCYgc2hvdWxkSWdub3JlKSA9IDA7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0
eS1uZXciCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3Vua25vd24tcHJh
Z21hcyIpCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3VuZ3VhcmRlZC1h
dmFpbGFiaWxpdHktbmV3IikKICAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyZXJEaWRSZWNlaXZlRXJy
b3IoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICosIE5TRXJyb3IgKiwgYm9vbCYgc2hvdWxk
SWdub3JlKSA9IDA7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIp
CisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmtub3duLXByYWdt
YXMiKQogfTsKIAogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMgZmluYWwgOiBwdWJs
aWMgU291cmNlQnVmZmVyUHJpdmF0ZSB7CkBAIC0xMTcsMTEgKzExNywxMSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCB1bnJlZ2lzdGVyRm9yRXJyb3JOb3RpZmljYXRpb25zKFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDRXJyb3JDbGllbnQqKTsKICAgICB2b2lkIGxheWVyRGlkUmVjZWl2ZUVycm9yKEFW
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyICosIE5TRXJyb3IgKik7CiAgICAgdm9pZCBvdXRwdXRP
YnNjdXJlZER1ZVRvSW5zdWZmaWNpZW50RXh0ZXJuYWxQcm90ZWN0aW9uQ2hhbmdlZChib29sKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKKyAgICBJR05PUkVfV0FSTklOR19D
TEFOR19UT1BfTEVWRUwoIi1XdW5rbm93bi1wcmFnbWFzIikKKyAgICBJR05PUkVfV0FSTklOR19D
TEFOR19UT1BfTEVWRUwoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQogICAgIHZvaWQg
cmVuZGVyZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICosIE5T
RXJyb3IgKik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmtub3duLXByYWdtYXMi
KQogCiAgICAgdm9pZCBzZXRWaWRlb0xheWVyKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKik7
CiAgICAgdm9pZCBzZXREZWNvbXByZXNzaW9uU2Vzc2lvbihXZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb24qKTsKQEAgLTE1MiwxMSArMTUyLDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXN0cm95
UmVuZGVyZXJzKCk7CiAKICAgICB2b2lkIGZsdXNoVmlkZW8oKTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3du
LXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQt
YXZhaWxhYmlsaXR5LW5ldyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1X
dW5rbm93bi1wcmFnbWFzIikKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1X
dW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQogICAgIHZvaWQgZmx1c2goQVZTYW1wbGVCdWZm
ZXJBdWRpb1JlbmRlcmVyICopOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0
eS1uZXciKQorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5rbm93
bi1wcmFnbWFzIikKIAogICAgIFdlYWtQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IGNy
ZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMp
OyB9CiAKQEAgLTE3MCwxMSArMTcwLDExIEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPEFWU3Ry
ZWFtRGF0YVBhcnNlcj4gbV9wYXJzZXI7CiAgICAgUmV0YWluUHRyPEFWQXNzZXQ+IG1fYXNzZXQ7
CiAgICAgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBtX2Rpc3BsYXlMYXll
cjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKKyAgICBJR05PUkVfV0FSTklO
R19DTEFOR19UT1BfTEVWRUwoIi1XdW5rbm93bi1wcmFnbWFzIikKKyAgICBJR05PUkVfV0FSTklO
R19DTEFOR19UT1BfTEVWRUwoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQogICAgIEhh
c2hNYXA8aW50LCBSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyPj4gbV9hdWRp
b1JlbmRlcmVyczsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FS
TklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikK
KyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3Vua25vd24tcHJhZ21h
cyIpCiAgICAgUmV0YWluUHRyPFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyPiBtX2RlbGVn
YXRlOwogICAgIFJldGFpblB0cjxXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVuZXI+IG1fZXJy
b3JMaXN0ZW5lcjsKICAgICBSZXRhaW5QdHI8TlNFcnJvcj4gbV9oZGNwRXJyb3I7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9T
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmlu
ZGV4IGRjOTM0NzhlZTM1YjMwOWZiZThmMWQyNWZlMzUxMjk2NWZlMDY2ZjUuLmU5Y2JiYjcwNjIw
ZWM3MWIwNmZhNGM3YmE4YWViZTk2M2FmNWUwNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC02OCwxMSArNjgsMTEg
QEAgU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRpb24pCiAKIFNPRlRfTElO
S19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQXNzZXRUcmFjaykKIFNPRlRfTElOS19DTEFTUyhBVkZv
dW5kYXRpb24sIEFWU3RyZWFtRGF0YVBhcnNlcikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMi
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmls
aXR5LW5ldyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmtub3duLXByYWdt
YXMiKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFi
aWxpdHktbmV3IikKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVy
QXVkaW9SZW5kZXJlcikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJO
SU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQor
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmtub3duLXByYWdtYXMiKQog
U09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIp
CiBTT0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbVNlc3Npb24pCiAKQEAgLTI0
MywyMyArMjQzLDIzIEBAIFNPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljCiBAaW50ZXJmYWNlIFdlYkFW
U2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lciA6IE5TT2JqZWN0IHsKICAgICBXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQyogX3BhcmVudDsKICAgICBWZWN0b3I8UmV0YWluUHRyPEFW
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPj4gX2xheWVyczsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXBy
YWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZh
aWxhYmlsaXR5LW5ldyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5r
bm93bi1wcmFnbWFzIikKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5n
dWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQogICAgIFZlY3RvcjxSZXRhaW5QdHI8QVZTYW1wbGVC
dWZmZXJBdWRpb1JlbmRlcmVyPj4gX3JlbmRlcmVyczsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3VuZ3VhcmRl
ZC1hdmFpbGFiaWxpdHktbmV3IikKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxf
RU5EKCItV3Vua25vd24tcHJhZ21hcyIpCiB9CiAKIC0gKGlkKWluaXRXaXRoUGFyZW50OihXZWJD
b3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyopcGFyZW50OwogLSAodm9pZClpbnZhbGlk
YXRlOwogLSAodm9pZCliZWdpbk9ic2VydmluZ0xheWVyOihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllciAqKWxheWVyOwogLSAodm9pZClzdG9wT2JzZXJ2aW5nTGF5ZXI6KEFWU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyICopbGF5ZXI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXci
CitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5rbm93bi1wcmFnbWFzIikKK0lH
Tk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5l
dyIpCiAtICh2b2lkKWJlZ2luT2JzZXJ2aW5nUmVuZGVyZXI6KEFWU2FtcGxlQnVmZmVyQXVkaW9S
ZW5kZXJlciAqKXJlbmRlcmVyOwogLSAodm9pZClzdG9wT2JzZXJ2aW5nUmVuZGVyZXI6KEFWU2Ft
cGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqKXJlbmRlcmVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmd1YXJkZWQt
YXZhaWxhYmlsaXR5LW5ldyIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCIt
V3Vua25vd24tcHJhZ21hcyIpCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJBVlNhbXBsZUJ1
ZmZlckVycm9yTGlzdGVuZXIKQEAgLTMyMiwxMiArMzIyLDEyIEBAIFNPRlRfTElOS19DT05TVEFO
VChBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyRmFpbGVkVG9EZWNvZGVO
b3RpZmljCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVP
YnNlcnZlcjpzZWxmIG5hbWU6QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJGYWlsZWRUb0RlY29k
ZU5vdGlmaWNhdGlvbiBvYmplY3Q6bGF5ZXJdOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFn
bWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWls
YWJpbGl0eS1uZXciCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5rbm93bi1w
cmFnbWFzIikKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmd1YXJkZWQtYXZh
aWxhYmlsaXR5LW5ldyIpCiAtICh2b2lkKWJlZ2luT2JzZXJ2aW5nUmVuZGVyZXI6KEFWU2FtcGxl
QnVmZmVyQXVkaW9SZW5kZXJlciopcmVuZGVyZXIKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5ndWFyZGVkLWF2
YWlsYWJpbGl0eS1uZXciKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1
bmtub3duLXByYWdtYXMiKQogICAgIEFTU0VSVChfcGFyZW50KTsKICAgICBBU1NFUlQoIV9yZW5k
ZXJlcnMuY29udGFpbnMocmVuZGVyZXIpKTsKIApAQCAtMzM1LDExICszMzUsMTEgQEAgU09GVF9M
SU5LX0NPTlNUQU5UKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJGYWls
ZWRUb0RlY29kZU5vdGlmaWMKICAgICBbcmVuZGVyZXIgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQ
YXRoOkAiZXJyb3IiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0
Om51bGxwdHJdOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitJR05P
UkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5rbm93bi1wcmFnbWFzIikKK0lHTk9SRV9X
QVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCiAt
ICh2b2lkKXN0b3BPYnNlcnZpbmdSZW5kZXJlcjooQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVy
KilyZW5kZXJlcgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCitJR05P
UkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3Vua25vd24tcHJhZ21hcyIpCiB7CiAg
ICAgQVNTRVJUKF9wYXJlbnQpOwogICAgIEFTU0VSVChfcmVuZGVyZXJzLmNvbnRhaW5zKHJlbmRl
cmVyKSk7CkBAIC0zNzIsMTEgKzM3MiwxMSBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQVZGb3VuZGF0
aW9uLCBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckZhaWxlZFRvRGVjb2RlTm90aWZpYwogICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKICAgICB9IGVsc2UgaWYgKFtvYmplY3Qg
aXNLaW5kT2ZDbGFzczpnZXRBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJDbGFzcygpXSkgewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAgICAgICBJR05PUkVfV0FSTklO
R19DTEFORygiLVd1bmtub3duLXByYWdtYXMiKTsKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKTsKICAgICAgICAgUmV0YWluUHRyPEFW
U2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlcj4gcmVuZGVyZXIgPSAoQVZTYW1wbGVCdWZmZXJBdWRp
b1JlbmRlcmVyICopb2JqZWN0OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXci
KTsKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV3Vua25vd24tcHJhZ21hcyIp
OwogICAgICAgICBSZXRhaW5QdHI8TlNFcnJvcj4gZXJyb3IgPSBbY2hhbmdlIHZhbHVlRm9yS2V5
Ok5TS2V5VmFsdWVDaGFuZ2VOZXdLZXldOwogCiAgICAgICAgIEFTU0VSVChfcmVuZGVyZXJzLmNv
bnRhaW5zKHJlbmRlcmVyLmdldCgpKSk7CkBAIC04NTIsMjEgKzg1MiwyMSBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0cmFja0RpZENoYW5nZUVuYWJsZWQoQXVkaW9UcmFja1By
aXZhdGVNZWRpYVNvdQogICAgIGludCB0cmFja0lEID0gdHJhY2stPnRyYWNrSUQoKTsKIAogICAg
IGlmICghdHJhY2stPmVuYWJsZWQoKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHkt
bmV3IgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVd1bmtub3duLXByYWdtYXMiKTsK
KyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1u
ZXciKTsKICAgICAgICAgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlcj4gcmVu
ZGVyZXIgPSBtX2F1ZGlvUmVuZGVyZXJzLmdldCh0cmFja0lEKTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV3VuZ3VhcmRl
ZC1hdmFpbGFiaWxpdHktbmV3Iik7CisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgi
LVd1bmtub3duLXByYWdtYXMiKTsKICAgICAgICAgW21fcGFyc2VyIHNldFNob3VsZFByb3ZpZGVN
ZWRpYURhdGE6Tk8gZm9yVHJhY2tJRDp0cmFja0lEXTsKICAgICAgICAgaWYgKG1fbWVkaWFTb3Vy
Y2UpCiAgICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+cmVtb3ZlQXVkaW9SZW5k
ZXJlcihyZW5kZXJlci5nZXQoKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgW21fcGFyc2VyIHNl
dFNob3VsZFByb3ZpZGVNZWRpYURhdGE6WUVTIGZvclRyYWNrSUQ6dHJhY2tJRF07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
dW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
KCItV3Vua25vd24tcHJhZ21hcyIpOworICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVd1
bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpOwogICAgICAgICBSZXRhaW5QdHI8QVZTYW1wbGVC
dWZmZXJBdWRpb1JlbmRlcmVyPiByZW5kZXJlcjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV3VuZ3VhcmRlZC1hdmFpbGFi
aWxpdHktbmV3Iik7CisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVd1bmtub3du
LXByYWdtYXMiKTsKICAgICAgICAgaWYgKCFtX2F1ZGlvUmVuZGVyZXJzLmNvbnRhaW5zKHRyYWNr
SUQpKSB7CiAgICAgICAgICAgICByZW5kZXJlciA9IGFkb3B0TlMoW2FsbG9jQVZTYW1wbGVCdWZm
ZXJBdWRpb1JlbmRlcmVySW5zdGFuY2UoKSBpbml0XSk7CiAgICAgICAgICAgICBhdXRvIHdlYWtU
aGlzID0gY3JlYXRlV2Vha1B0cigpOwpAQCAtOTk3LDExICs5OTcsMTEgQEAgdm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6b3V0cHV0T2JzY3VyZWREdWVUb0luc3VmZmljaWVudEV4dGVy
bmFsUHJvdGVjdGkKICAgICBsYXllckRpZFJlY2VpdmVFcnJvcihtX2Rpc3BsYXlMYXllci5nZXQo
KSwgZXJyb3IuZ2V0KCkpOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXci
CitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5rbm93bi1wcmFnbWFzIikKK0lH
Tk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5l
dyIpCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlckRpZFJlY2VpdmVF
cnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKnJlbmRlcmVyLCBOU0Vycm9yICplcnJv
cikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RP
UF9MRVZFTF9FTkQoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQorSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmtub3duLXByYWdtYXMiKQogewogICAgIExPRyhN
ZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlckRpZFJlY2Vp
dmVFcnJvciglcCk6IHJlbmRlcmVyKCVwKSwgZXJyb3IoJUApIiwgdGhpcywgcmVuZGVyZXIsIFtl
cnJvciBkZXNjcmlwdGlvbl0pOwogCkBAIC0xMDUwLDExICsxMDUwLDExIEBAIHZvaWQgU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OmZsdXNoVmlkZW8oKQogICAgIH0KIH0KIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vu
Z3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVM
KCItV3Vua25vd24tcHJhZ21hcyIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1X
dW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6Zmx1c2goQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICpyZW5kZXJlcikKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9F
TkQoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
VE9QX0xFVkVMX0VORCgiLVd1bmtub3duLXByYWdtYXMiKQogewogICAgIFtyZW5kZXJlciBmbHVz
aF07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2Nv
Y29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW0KaW5kZXggZGYwNDEwM2M3MWE5
ODk2NGU5ZjI5ZmUxOTgxYjM2MjE1OGE2YmQ5OS4uMDNlMTQ2MTRhYjBlNzM5NWY3ODQ2MTAxMDMz
MmFmMzk5NWRiOTYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW0KQEAgLTEx
NTAsMTAgKzExNTAsOSBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllcjo6ZHJhd0xheWVyQ29udGVudHMo
Q0dDb250ZXh0UmVmIGNvbnRleHQsIFdlYkNvcmU6OlBsYXRmb3JtQwogICAgIAogICAgIC8vIFNl
dCB1cCBhbiBOU0dyYXBoaWNzQ29udGV4dCBmb3IgdGhlIGNvbnRleHQsIHNvIHRoYXQgcGFydHMg
b2YgQXBwS2l0IHRoYXQgcmVseSBvbgogICAgIC8vIHRoZSBjdXJyZW50IE5TR3JhcGhpY3NDb250
ZXh0IChlLmcuIE5TQ2VsbCBkcmF3aW5nKSBnZXQgdGhlIHJpZ2h0IG9uZS4KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5TR3JhcGhpY3NDb250ZXh0KiBsYXllckNvbnRl
eHQgPSBbTlNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0V2l0aEdyYXBoaWNzUG9ydDpj
b250ZXh0IGZsaXBwZWQ6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAg
ICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6bGF5ZXJDb250ZXh0XTsKICNl
bmRpZgogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcAppbmRleCBlZjg0M2EwNjFlOWMw
YzgyNjcxNjM0ODlkY2ZhYTM2NWIwZjc1NzllLi4xMmNkYWI2YmRkYTk3MGMxOGQ1MzM5NzJhNDdi
OTJjNGUzZmM5Y2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcApAQCAtNDksMTQgKzQ5
LDkgQEAgY29uc3QgRm9udCogRm9udENhc2NhZGU6OmZvbnRGb3JDb21iaW5pbmdDaGFyYWN0ZXJT
ZXF1ZW5jZShjb25zdCBVQ2hhciogY2hhcmFjdGUKIHsKICAgICBVRXJyb3JDb2RlIGVycm9yID0g
VV9aRVJPX0VSUk9SOwogICAgIFZlY3RvcjxVQ2hhciwgND4gbm9ybWFsaXplZENoYXJhY3RlcnMo
bGVuZ3RoKTsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFORygiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGludDMyX3Qgbm9ybWFsaXplZExlbmd0aCA9
IHVub3JtX25vcm1hbGl6ZShjaGFyYWN0ZXJzLCBsZW5ndGgsIFVOT1JNX05GQywgVU5PUk1fVU5J
Q09ERV8zXzIsIG5vcm1hbGl6ZWRDaGFyYWN0ZXJzLmRhdGEoKSwgbGVuZ3RoLCAmZXJyb3IpOwot
I2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0j
ZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgaWYgKFVfRkFJTFVSRShlcnJvcikpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZURlY29kZXJDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZURlY29kZXJDRy5jcHAKaW5kZXggYjdkNTkyYTljOGEyNWQ3MGQzN2Y1MTlmNTEz
N2M0MmQzYTMzMWFlZS4uZGI3YTdmOTM2Yzk0YzkyMDdiZjVkOGFmODYwNjAxNzE5ZWYxMGMxNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VEZWNv
ZGVyQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
RGVjb2RlckNHLmNwcApAQCAtNDIzLDE0ICs0MjMsOSBAQCBOYXRpdmVJbWFnZVB0ciBJbWFnZURl
Y29kZXJDRzo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBTdWJzYW1wbGlu
ZwogICAgIC8vIHdoaWNoIGNhdXNlZCBhIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24gZm9yIHVzIHNp
bmNlIHRoZSBpbWFnZXMgaGFkIHRvIGJlIHJlc2FtcGxlZC9yZWNyZWF0ZWQgZXZlcnkgdGltZSB3
ZSBjYWxsZWQKICAgICAvLyBDR0NvbnRleHREcmF3SW1hZ2UuIFdlIG5vdyB0ZWxsIENHIHRvIGNh
Y2hlIHRoZSBkcmF3biBpbWFnZXMuIFNlZSBhbHNvIDxyZGFyOi8vcHJvYmxlbS8xNDM2Njc1NT4g
LQogICAgIC8vIENvcmVHcmFwaGljcyBuZWVkcyB0byB1bi1kZXByZWNhdGUga0NHSW1hZ2VDYWNo
aW5nVGVtcG9yYXJ5IHNpbmNlIGl0J3Mgc3RpbGwgbm90IHRoZSBkZWZhdWx0LgotI2lmIENPTVBJ
TEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotI2VuZGlmCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAg
ICBDR0ltYWdlU2V0Q2FjaGluZ0ZsYWdzKGltYWdlLmdldCgpLCBrQ0dJbWFnZUNhY2hpbmdUZW1w
b3JhcnkpOwotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogICAgIAogICAgIFN0cmluZyB1
dGkgPSB0aGlzLT51dGkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1dlYkdMTGF5ZXIuaAppbmRleCBkNmI5ZTEwNWI3YTk3MmM1MmVjZWZhZGIxYzVk
NTVjYjZmODQ0OTI5Li5kZTMzYTU0MWI1YzlhNjFhOGFiODFkODBmY2I1ZDZkYzIzMzI3OTE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xM
YXllci5oCkBAIC0zNCw4ICszNCw3IEBAIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiBjbGFzcyBHcmFw
aGljc0NvbnRleHQzRDsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IikKIAogI2lmIFVTRShPUEVOR0wpCiBAaW50ZXJmYWNlIFdlYkdMTGF5ZXIgOiBDQUxheWVyCkBA
IC02Nyw0ICs2Niw0IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwogCiBAZW5kCiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9F
TkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJv
bGxlckNvcmVUZXh0Lm1tCmluZGV4IGU4OTAxYmMxM2FkYTQwNTIzMmQwZDNmZjQ0NTE5NjNkN2Q3
NTY1YjIuLmQ2OTI0MmYzYTJjZjVhM2JjZDlkNTUwMDg4ZWQ2MmY0ZDE2YmNjMDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRy
b2xsZXJDb3JlVGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0KQEAgLTE1OCwxMCArMTU4LDkgQEAg
dm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFy
YWN0ZXJzKGNvbnN0IFVDaGFyKiBjcCwKIAogICAgICAgICBQcm92aWRlckluZm8gaW5mbyA9IHsg
Y3AsIGxlbmd0aCwgc3RyaW5nQXR0cmlidXRlcy5nZXQoKSB9OwogICAgICAgICAvLyBGSVhNRTog
U29tZSBTREtzIGNvbXBsYWluIHRoYXQgdGhlIHNlY29uZCBwYXJhbWV0ZXIgYmVsb3cgY2Fubm90
IGJlIG51bGwuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9ubnVsbCIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1Xbm9ubnVsbCIpOwogICAgICAgICBSZXRhaW5QdHI8Q1RUeXBlc2V0dGVyUmVmPiB0eXBl
c2V0dGVyID0gYWRvcHRDRihDVFR5cGVzZXR0ZXJDcmVhdGVXaXRoVW5pQ2hhclByb3ZpZGVyQW5k
T3B0aW9ucygmcHJvdmlkZVN0cmluZ0FuZEF0dHJpYnV0ZXMsIDAsICZpbmZvLCBtX3J1bi5sdHIo
KSA/IGx0clR5cGVzZXR0ZXJPcHRpb25zIDogcnRsVHlwZXNldHRlck9wdGlvbnMpKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5E
KCItV25vbm51bGwiKTsKIAogICAgICAgICBsaW5lID0gYWRvcHRDRihDVFR5cGVzZXR0ZXJDcmVh
dGVMaW5lKHR5cGVzZXR0ZXIuZ2V0KCksIENGUmFuZ2VNYWtlKDAsIDApKSk7CiAgICAgfSBlbHNl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29u
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0K
aW5kZXggNjE0M2I1MWQ0MzY0NWQ1YWQ0OGMzOTVhZjdjNGVhMjY0MzNkN2M0YS4uNzEzNWEwZDgx
ODE2ZDYyYzRhMjMyMDI4NzExZDM3ODlhYjNmZTEyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KQEAgLTM2LDEwICszNiw5IEBAIEljb246
Okljb24oTlNJbWFnZSAqaW1hZ2UpCiAgICAgOiBtX25zSW1hZ2UoaW1hZ2UpCiB7CiAgICAgLy8g
TmVlZCB0aGlzIGJlY2F1c2UgV2ViQ29yZSB1c2VzIEFwcEtpdCdzIGZsaXBwZWQgY29vcmRpbmF0
ZSBzeXN0ZW0gZXhjbHVzaXZlbHkuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
ICAgICBbaW1hZ2Ugc2V0RmxpcHBlZDpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogfQogCiBJY29uOjp+SWNvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvUERGRG9jdW1lbnRJbWFnZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9QREZEb2N1bWVudEltYWdlTWFjLm1tCmluZGV4IDZkYTky
MWI5OGFmMmY5NDhjYmFjMjYzNTkwYTM0Y2RiYzg4ZGI1YjIuLjY5YWU5YTJmMGE4YTFjM2JhYTE0
MDQ3MTc4YzQyMGZlZWRkNDIwNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9QREZEb2N1bWVudEltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9QREZEb2N1bWVudEltYWdlTWFjLm1tCkBAIC03MywxMCAr
NzMsOSBAQCB2b2lkIFBERkRvY3VtZW50SW1hZ2U6OmRyYXdQREZQYWdlKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCkKICAgICBib29sIGFsbG93c1N1YnBpeGVsUXVhbnRpemF0aW9uID0gQ0dDb250
ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUXVhbnRpemF0aW9uKGNvbnRleHQucGxhdGZvcm1Db250
ZXh0KCkpOwogICAgIGJvb2wgYWxsb3dzU3VicGl4ZWxQb3NpdGlvbmluZyA9IENHQ29udGV4dEdl
dEFsbG93c0ZvbnRTdWJwaXhlbFBvc2l0aW9uaW5nKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCkp
OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbW21fZG9jdW1lbnQg
cGFnZUF0SW5kZXg6MF0gZHJhd1dpdGhCb3g6a1BERkRpc3BsYXlCb3hDcm9wQm94XTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIENHQ29udGV4dFNldEFsbG93c0ZvbnRT
bW9vdGhpbmcoY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSwgYWxsb3dzU21vb3RoaW5nKTsKICAg
ICBDR0NvbnRleHRTZXRBbGxvd3NGb250U3VicGl4ZWxRdWFudGl6YXRpb24oY29udGV4dC5wbGF0
Zm9ybUNvbnRleHQoKSwgYWxsb3dzU3VicGl4ZWxRdWFudGl6YXRpb24pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYktpdE5TSW1hZ2VFeHRyYXMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViS2l0TlNJbWFnZUV4
dHJhcy5tbQppbmRleCA0NjY0ZjY2ZjczODU3M2RmYWI5MDU0ZTk0M2ExNGUxOTBiZWMyZjg3Li5k
Mzc3YjRhYmU1MGNmNzA1NzYwNTE1N2ZlZTY2MzNmMzA2NWRkNmZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViS2l0TlNJbWFnZUV4dHJhcy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViS2l0TlNJbWFnZUV4
dHJhcy5tbQpAQCAtMzcsMTAgKzM3LDkgQEAKICAgICBbdHJhbnNmb3JtIHNjYWxlQnk6ZGV2aWNl
U2NhbGVGYWN0b3JdOwogCiAgICAgTlNSZWN0IGJvdW5kcyA9IHsgTlNaZXJvUG9pbnQsIHNlbGYu
c2l6ZSB9OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQk9PTCBmbGlw
cGVkT3JpZW50YXRpb24gPSBzZWxmLmlzRmxpcHBlZDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICBbc2VsZiBsb2NrRm9jdXNXaXRoUmVjdDpib3VuZHMgY29udGV4dDpuaWwg
aGludHM6QHsgTlNJbWFnZUhpbnRDVE0gOiB0cmFuc2Zvcm0gfSBmbGlwcGVkOmZsaXBwZWRPcmll
bnRhdGlvbl07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9E
cmFnSW1hZ2VJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9T
Lm1tCmluZGV4IDVmYjIxNWEyOTcwZGQ5NjJhYTBiZGNhOTgzYTkxMDRlZDRkNDNlMTAuLjUwZTc0
MTAwMzI3NmNlMWIzZDE3M2NkMjU3ODdhMzA5OWM5MGE5NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbQpAQCAtNTIsOCArNTIsNyBAQAogI2ltcG9ydCA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV251bGxhYmlsaXR5LWNvbXBsZXRlbmVzcyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RP
UF9MRVZFTCgiLVdudWxsYWJpbGl0eS1jb21wbGV0ZW5lc3MiKQogCiBTT0ZUX0xJTktfRlJBTUVX
T1JLKFVJS2l0KQogU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSUZvbnQpCkBAIC02Myw3ICs2Miw3
IEBAIFNPRlRfTElOSyhVSUtpdCwgVUlHcmFwaGljc0dldEN1cnJlbnRDb250ZXh0LCBDR0NvbnRl
eHRSZWYsICh2b2lkKSwgKCkpCiBTT0ZUX0xJTksoVUlLaXQsIFVJR3JhcGhpY3NHZXRJbWFnZUZy
b21DdXJyZW50SW1hZ2VDb250ZXh0LCBVSUltYWdlICosICh2b2lkKSwgKCkpCiBTT0ZUX0xJTkso
VUlLaXQsIFVJR3JhcGhpY3NFbmRJbWFnZUNvbnRleHQsIHZvaWQsICh2b2lkKSwgKCkpCiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZF
TF9FTkQoIi1XbnVsbGFiaWxpdHktY29tcGxldGVuZXNzIikKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQppbmRleCA1
NjEwMmZhMjkwN2FmODRmZTEzMzAyMWYwOGU0ZWY0M2IyN2RjOTkyLi5lZDJhNDlmZGFlMzk5NmFi
ODBkMWQxMWU4MjYyYjk4MWFlNzg1NGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9EcmFnSW1hZ2VNYWMubW0KQEAgLTcxLDEwICs3MSw5IEBAIFJldGFpblB0cjxOU0ltYWdlPiBz
Y2FsZURyYWdJbWFnZShSZXRhaW5QdHI8TlNJbWFnZT4gaW1hZ2UsIEZsb2F0U2l6ZSBzY2FsZSkK
ICAgICBOU1NpemUgbmV3U2l6ZSA9IE5TTWFrZVNpemUoKG9yaWdpbmFsU2l6ZS53aWR0aCAqIHNj
YWxlLndpZHRoKCkpLCAob3JpZ2luYWxTaXplLmhlaWdodCAqIHNjYWxlLmhlaWdodCgpKSk7CiAg
ICAgbmV3U2l6ZS53aWR0aCA9IHJvdW5kZihuZXdTaXplLndpZHRoKTsKICAgICBuZXdTaXplLmhl
aWdodCA9IHJvdW5kZihuZXdTaXplLmhlaWdodCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICBbaW1hZ2Ugc2V0U2NhbGVzV2hlblJlc2l6ZWQ6WUVTXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbaW1hZ2Ugc2V0U2l6ZTpuZXdTaXplXTsKICAg
ICByZXR1cm4gaW1hZ2U7CiB9CkBAIC0zMTIsMTAgKzMxMSw5IEBAIERyYWdJbWFnZVJlZiBjcmVh
dGVEcmFnSW1hZ2VGb3JMaW5rKEVsZW1lbnQmIGVsZW1lbnQsIFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIHRpCiAgICAgUmV0YWluUHRyPE5TSW1hZ2U+IGRyYWdJbWFnZSA9IGFkb3B0TlMoW1tOU0lt
YWdlIGFsbG9jXSBpbml0V2l0aFNpemU6aW1hZ2VTaXplXSk7CiAgICAgW2RyYWdJbWFnZSBfd2Vi
X2xvY2tGb2N1c1dpdGhEZXZpY2VTY2FsZUZhY3RvcjpkZXZpY2VTY2FsZUZhY3Rvcl07CiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFO
R19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogICAgIEdyYXBoaWNzQ29u
dGV4dCBjb250ZXh0KChDR0NvbnRleHRSZWYpW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250
ZXh0XS5ncmFwaGljc1BvcnQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKQogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTMwMAogICAg
IGNvbnRleHQudHJhbnNsYXRlKGxpbmtJbWFnZVNoYWRvd1JhZGl1cywgbGlua0ltYWdlU2hhZG93
UmFkaXVzIC0gbGlua0ltYWdlU2hhZG93T2Zmc2V0WSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9MZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oCmluZGV4IDA3YWE5NWZm
MDhhMDM3ODI2MGE4MmEwZjU2NWZhODhiOGJiODU2NTQuLjU3NmQxZTkyZTU5NTljNmI3NjJiNzRk
OWNhM2NjNzA5ZmNiZGI5MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9MZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9MZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oCkBAIC0yNyw4ICsyNyw3IEBACiAKICNpZiBQ
TEFURk9STShNQUMpCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0lHTk9S
RV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODksNiArODgsNiBAQCBpbmxpbmUgTlNTdHJpbmcg
KmxlZ2FjeUZpbGVzUHJvbWlzZVBhc3RlYm9hcmRUeXBlKCkKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFO
R19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogI2VuZGlmIC8v
IFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9M
b2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tCmluZGV4IGM5OGZjMjg1OWZmYzc5ZTE5
NTQ4ZjE4NjdlMzMwNjBiMTY4M2IwNzMuLmU1YzRiMTEyOGQxMmQ2ZWJlOTZjN2E2ZTRlOGExODBh
Yzg1YTllMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbEN1
cnJlbnRHcmFwaGljc0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbQpAQCAtMzIsOCArMzIsNyBAQCBMb2NhbEN1
cnJlbnRHcmFwaGljc0NvbnRleHQ6OkxvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dChHcmFwaGlj
c0NvbnRleHQmIGdyYXBoaQogewogICAgIGdyYXBoaWNzQ29udGV4dC5zYXZlKCk7CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQg
PSB0aGlzLT5jZ0NvbnRleHQoKTsKICAgICBpZiAoY2dDb250ZXh0ID09IFtbTlNHcmFwaGljc0Nv
bnRleHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF0pIHsKICAgICAgICAgbV9zYXZlZE5T
R3JhcGhpY3NDb250ZXh0ID0gMDsKQEAgLTQyLDcgKzQxLDcgQEAgTG9jYWxDdXJyZW50R3JhcGhp
Y3NDb250ZXh0OjpMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQoR3JhcGhpY3NDb250ZXh0JiBn
cmFwaGkKIAogICAgIG1fc2F2ZWROU0dyYXBoaWNzQ29udGV4dCA9IFtbTlNHcmFwaGljc0NvbnRl
eHQgY3VycmVudENvbnRleHRdIHJldGFpbl07CiAgICAgTlNHcmFwaGljc0NvbnRleHQqIG5ld0Nv
bnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0V2l0aEdyYXBoaWNzUG9y
dDpjZ0NvbnRleHQgZmxpcHBlZDpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDpuZXdDb250ZXh0XTsK
ICAgICBtX2RpZFNldEdyYXBoaWNzQ29udGV4dCA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IGNiNTA0Y2Y1NDNlYjdlODBkNzY2
NWNkMWU1N2UzMDg5YWZmYjFhNzAuLmMwZjAzN2M1YmRkZGE0YzI0OTFlYWZhNTUwMTBmMzE5ZTI5
OGRkYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJk
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1t
CkBAIC05OSwxOSArOTksMTcgQEAgUGFzdGVib2FyZDo6UGFzdGVib2FyZChjb25zdCBTdHJpbmcm
IHBhc3RlYm9hcmROYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcHJvbWkKIAogc3RkOjp1bmlx
dWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCiB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdf
Q0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxQYXN0ZWJvYXJkPihOU0dlbmVyYWxQYm9hcmQpOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIHN0ZDo6dW5pcXVl
X3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCiB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxQYXN0ZWJvYXJkPihOU0RyYWdQYm9hcmQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3Jl
YXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQpAQCAtNjE0LDE4ICs2
MTIsMTYgQEAgc3RhdGljIHZvaWQgc2V0RHJhZ0ltYWdlSW1wbChOU0ltYWdlICppbWFnZSwgTlNQ
b2ludCBvZmZzZXQpCiAgICAgUmV0YWluUHRyPE5TQml0bWFwSW1hZ2VSZXA+IGJpdG1hcEltYWdl
OwogICAgIGlmICghaW1hZ2VSZXAgfHwgIVtpbWFnZVJlcCBpc0tpbmRPZkNsYXNzOltOU0JpdG1h
cEltYWdlUmVwIGNsYXNzXV0gfHwgIU5TRXF1YWxTaXplcyhpbWFnZVJlcC5zaXplLCBpbWFnZVNp
emUpKSB7CiAgICAgICAgIFtpbWFnZSBsb2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBiaXRtYXBJbWFnZSA9IGFkb3B0TlMoW1tOU0JpdG1h
cEltYWdlUmVwIGFsbG9jXSBpbml0V2l0aEZvY3VzZWRWaWV3UmVjdDoqKE5TUmVjdCopJmltYWdl
UmVjdF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FS
TklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgW2lt
YWdlIHVubG9ja0ZvY3VzXTsKICAgICAgICAgCiAgICAgICAgIC8vIHdlIG1heSBoYXZlIHRvIGZs
aXAgdGhlIGJpdHMgd2UganVzdCByZWFkIGlmIHRoZSBpbWFnZSB3YXMgZmxpcHBlZCBzaW5jZSBp
dCBtZWFucyB0aGUgY2FjaGUgd2FzIGFsc28KICAgICAgICAgLy8gYW5kIENvcmVEcmFnU2V0SW1h
Z2UgY2FuJ3QgdGFrZSBhIHRyYW5zZm9ybSBmb3IgcmVuZGVyaW5nLgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBmbGlwSW1hZ2UgPSBpbWFnZS5pc0ZsaXBw
ZWQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIGZsaXBJbWFnZSA9IGZhbHNlOwogICAgICAgICBiaXRtYXBJbWFnZSA9IChOU0JpdG1h
cEltYWdlUmVwICopaW1hZ2VSZXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggNTk4NTQ3N2Q5ZTA1NDg4YTI5
MDQwZTBjMjQzNTk0YTk0OTk3Yjk3MC4uOTU3NTM5ZDVjMDVkODZhYjRiYzFiNzVmZDNjMWJlYzg3
NGRjNTVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
RXZlbnRGYWN0b3J5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpAQCAtNDYsMTAgKzQ2LDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBOU1BvaW50IGdsb2JhbFBvaW50KGNvbnN0IE5TUG9pbnQmIHdpbmRvd1BvaW50LCBO
U1dpbmRvdyAqd2luZG93KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgcmV0dXJuIGZsaXBTY3JlZW5Qb2ludChbd2luZG93IGNvbnZlcnRCYXNlVG9TY3JlZW46d2lu
ZG93UG9pbnRdLCBzY3JlZW4od2luZG93KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiB9CiAKIHN0YXRpYyBOU1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZl
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU1NMS2V5R2VuZXJh
dG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NTTEtleUdlbmVyYXRvck1h
Yy5tbQppbmRleCA0NzAwYjAxOGM1MzBjMTEyZmI4ZGQxM2QyODczYzEwNDRlN2RjNzE4Li5kYTJk
ZjFjZjc2MzI0NzUzNDMwMzljZmJhMTlkMjRjNjJiY2FhZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU1NMS2V5R2VuZXJhdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TU0xLZXlHZW5lcmF0b3JNYWMubW0KQEAgLTQ0LDggKzQ0LDcg
QEAgV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChTZWNBQ0wpOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0lHTk9SRV9XQVJOSU5H
X0NMQU5HX1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKIHN0cnVjdCBQ
dWJsaWNLZXlBbmRDaGFsbGVuZ2UgewogICAgIENTU01fWDUwOV9TVUJKRUNUX1BVQkxJQ19LRVlf
SU5GTyBzdWJqZWN0UHVibGljS2V5SW5mbzsKQEAgLTIyMyw3ICsyMjIsNyBAQCBzdGF0aWMgU3Ry
aW5nIHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyh1bnNpZ25lZCBrZXlTaXplLCBj
b25zdCBDU3RyaW5nJgogICAgIHJldHVybiBiYXNlNjRFbmNvZGUoZW5jb2RlZFNpZ25lZFB1Ymxp
Y0tleUFuZENoYWxsZW5nZS5EYXRhLCBlbmNvZGVkU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdl
Lkxlbmd0aCk7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJO
SU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiB2
b2lkIGdldFN1cHBvcnRlZEtleVNpemVzKFZlY3RvcjxTdHJpbmc+JiBzdXBwb3J0ZWRLZXlTaXpl
cykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMubW0KaW5k
ZXggMjZiNmNiNGYyMWY4YjNjODk5MzZkMWQ2ZTYzODdjMTZiODQwNGQzYi4uMTM5YTZhZThmZDRi
OTg3NzFiZmExNDRlZTEyYWI4NWY5NTE0MjUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbFZpZXdNYWMubW0KQEAgLTIzMCwxMCArMjMwLDkgQEAgSW50UmVjdCBTY3Jv
bGxWaWV3OjpwbGF0Zm9ybUNvbnRlbnRzVG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcmVjdCkgY29u
c3QKICAgICBpZiAoTlNWaWV3KiBkb2N1bWVudFZpZXcgPSB0aGlzLT5kb2N1bWVudFZpZXcoKSkg
ewogICAgICAgICBOU1JlY3QgdGVtcFJlY3QgPSByZWN0OwogICAgICAgICB0ZW1wUmVjdCA9IFtk
b2N1bWVudFZpZXcgY29udmVydFJlY3Q6dGVtcFJlY3QgdG9WaWV3Om5pbF07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIHRlbXBSZWN0Lm9yaWdpbiA9IFtb
ZG9jdW1lbnRWaWV3IHdpbmRvd10gY29udmVydEJhc2VUb1NjcmVlbjp0ZW1wUmVjdC5vcmlnaW5d
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgcmV0dXJuIGVu
Y2xvc2luZ0ludFJlY3QodGVtcFJlY3QpOwogICAgIH0KICAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOwpAQCAtMjQ0LDEwICsyNDMsOSBAQCBJbnRQb2ludCBTY3JvbGxWaWV3OjpwbGF0Zm9y
bVNjcmVlblRvQ29udGVudHMoY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAogewogICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICBpZiAoTlNWaWV3KiBkb2N1bWVudFZpZXcg
PSB0aGlzLT5kb2N1bWVudFZpZXcoKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgICAgICBOU1BvaW50IHdpbmRvd0Nvb3JkID0gW1tkb2N1bWVudFZpZXcgd2lu
ZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOiBwb2ludF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgICAgICByZXR1cm4gSW50UG9pbnQoW2RvY3VtZW50VmlldyBjb252
ZXJ0UG9pbnQ6d2luZG93Q29vcmQgZnJvbVZpZXc6bmlsXSk7CiAgICAgfQogICAgIEVORF9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0K
aW5kZXggZmE5NGM0NzM5MjBmYzAyYzJkODNiYTZjYmY2MWQ3YzZkNThjYzZmZi4uN2E5Mjk3YzQ5
NTllYzU0M2VkZTEyZGRlNzhkMjVjMmExYTdmM2RlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9UaGVtZU1hYy5tbQpAQCAtMzU4LDEwICszNTgsOSBAQCBzdGF0aWMgTlNCdXR0b25DZWxs
ICpzaGFyZWRDaGVja2JveENlbGwoY29uc3QgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBjb25zdCBJ
bnRTaQogCiBzdGF0aWMgYm9vbCBkcmF3Q2VsbEZvY3VzUmluZ1dpdGhGcmFtZUF0VGltZShOU0Nl
bGwgKmNlbGwsIE5TUmVjdCBjZWxsRnJhbWUsIE5TVmlldyAqY29udHJvbFZpZXcsIE5TVGltZUlu
dGVydmFsIHRpbWVPZmZzZXQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
ICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gKENHQ29udGV4dFJlZilbW05TR3JhcGhpY3ND
b250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0KTsKIAogICAg
IENHRm9jdXNSaW5nU3R5bGUgZm9jdXNSaW5nU3R5bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIubW0KaW5kZXgg
YjZlYWRhMzE4MDY0MDI1MDA2MDJiZmFiMGQzMjk1N2RhNmYyYjQ1MS4uZDA4MDk4YzVhZDA2OTgy
ZTAxYzk2MmE2OTA0NDAwM2ZkZjI1OWEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1dlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5tbQpAQCAtMzQsOCAr
MzQsNyBAQAogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV251bGxhYmlsaXR5LWNvbXBsZXRlbmVzcyIKK0lHTk9S
RV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdudWxsYWJpbGl0eS1jb21wbGV0ZW5lc3MiKQog
U09GVF9MSU5LX0ZSQU1FV09SSyhBVktpdCkKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTMwMAogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWS2l0LCBBVlRvdWNo
QmFyTWVkaWFTZWxlY3Rpb25PcHRpb24pCkBAIC0zNDYsNyArMzQ1LDcgQEAgc3RhdGljIFJldGFp
blB0cjxOU011dGFibGVBcnJheT4gbWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxN
ZWRpYVNlbGVjdGkKIH0KICNlbmRpZgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJ
R05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV251bGxhYmlsaXR5LWNvbXBsZXRl
bmVzcyIpCiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1dpZGdldE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0K
aW5kZXggOTk2YzE5ZDU1MGY5MTMxZmEwMjM2MGI2NTdmODhiZTlmOWU2NjZiYi4uZTA3NWJmMjRj
MWJjOWVhMzdhZDQ2N2FhZGIwNDcyYWNmMmU2YzcwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2lkZ2V0TWFjLm1tCkBAIC0yMDgsMTAgKzIwOCw5IEBAIHZvaWQgV2lkZ2V0OjpwYWlu
dChHcmFwaGljc0NvbnRleHQmIHAsIGNvbnN0IEludFJlY3QmIHIsIFNlY3VyaXR5T3JpZ2luUGFp
bnRQb2xpCiAgICAgUmVmPFdpZGdldD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKICAgICBOU0dy
YXBoaWNzQ29udGV4dCAqY3VycmVudENvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgY3VycmVu
dENvbnRleHRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaWYgKGN1
cnJlbnRDb250ZXh0ID09IFtbdmlldyB3aW5kb3ddIGdyYXBoaWNzQ29udGV4dF0gfHwgIVtjdXJy
ZW50Q29udGV4dCBpc0RyYXdpbmdUb1NjcmVlbl0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGNvbW1vbiBjYXNlIG9mIGRyYXdp
bmcgaW50byBhIHdpbmRvdyBvciBhbiBpbmNsdXNpdmUgbGF5ZXIsIG9yIHByaW50aW5nLgogICAg
ICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAgICAgICAgIFt2aWV3IGRpc3BsYXlS
ZWN0SWdub3JpbmdPcGFjaXR5Olt2aWV3IGNvbnZlcnRSZWN0OnIgZnJvbVZpZXc6W3ZpZXcgc3Vw
ZXJ2aWV3XV1dOwpAQCAtMjM4LDEwICsyMzcsOSBAQCB2b2lkIFdpZGdldDo6cGFpbnQoR3JhcGhp
Y3NDb250ZXh0JiBwLCBjb25zdCBJbnRSZWN0JiByLCBTZWN1cml0eU9yaWdpblBhaW50UG9saQog
ICAgIH0KIAogICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBwLnBsYXRmb3JtQ29udGV4dCgp
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQVNTRVJUKGNnQ29udGV4
dCA9PSBbY3VycmVudENvbnRleHQgZ3JhcGhpY3NQb3J0XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjZ0NvbnRleHQpOwogCiAgICAg
TlNSZWN0IHZpZXdGcmFtZSA9IFt2aWV3IGZyYW1lXTsKQEAgLTI1NSwxMCArMjUzLDkgQEAgdm9p
ZCBXaWRnZXQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgcCwgY29uc3QgSW50UmVjdCYgciwgU2Vj
dXJpdHlPcmlnaW5QYWludFBvbGkKIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
ICAgICB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIE5T
R3JhcGhpY3NDb250ZXh0ICpuc0NvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3ND
b250ZXh0V2l0aEdyYXBoaWNzUG9ydDpjZ0NvbnRleHQgZmxpcHBlZDpOT107Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBbdmlldyBkaXNwbGF5UmVjdElnbm9y
aW5nT3BhY2l0eTpbdmlldyBjb252ZXJ0UmVjdDpyIGZyb21WaWV3Olt2aWV3IHN1cGVydmlld11d
IGluQ29udGV4dDpuc0NvbnRleHRdOwogICAgIH0KICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaAppbmRleCBiNTEzMThjODM0ZTI1
NGFhOWY3MjM2NWVmZTY3ZjM1NDY2OGNlOWFlLi4wZDRkNzY0ZmY0MzE5YWZjMjVmYTQxNDhiYzU4
YjRlNzBiMzA0MTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaApAQCAtMzUs
MTIgKzM1LDExIEBACiAjaW5jbHVkZSAiTGliV2ViUlRDTWFjcm9zLmgiCiAjaW5jbHVkZSAiUmVh
bHRpbWVNZWRpYVNvdXJjZS5oIgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorSUdOT1JFX1dB
Uk5JTkdfR0NDX1RPUF9MRVZFTCgiLVd1bnVzZWQtcGFyYW1ldGVyIikKIAogI2luY2x1ZGUgPHdl
YnJ0Yy9hcGkvbWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwb3AKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKCItV3VudXNlZC1wYXJhbWV0
ZXIiKQogCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdW
aWRlb1NvdXJjZS5oCmluZGV4IDcyNDdiYjgzMzg1N2U0OGU5OWVlNzg2ZTc1ZTRhOTNiYjAwNWQ1
ZWQuLjc1ZjEyOTEwNzdjYmU2MTJlNmM1NGY1MDNmYmYyZGE0NDI2ZjA0OTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRl
b1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oCkBAIC0zNSwxMiArMzUsMTEgQEAKICNpbmNsdWRlICJM
aWJXZWJSVENNYWNyb3MuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCiAKLSNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV3VudXNlZC1wYXJhbWV0ZXIiCitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMKCItV3Vu
dXNlZC1wYXJhbWV0ZXIiKQogCiAjaW5jbHVkZSA8d2VicnRjL2FwaS9tZWRpYXN0cmVhbWludGVy
ZmFjZS5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfR0ND
X1RPUF9MRVZFTF9FTkQoIi1XdW51c2VkLXBhcmFtZXRlciIpCiAKICNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKaW5kZXggZWE0NTdm
N2Q1MzM1MGFmZDE4NDRlZjNjZjQzMjExZjgzMzI5NTZmNC4uOTcyMDk0MGNlY2ZiZGNiY2JmMWJh
N2M5ODNkZmI3MTE2MzI0ZTFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgK
QEAgLTM1LDEyICszNSwxMSBAQAogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgi
CiAjaW5jbHVkZSAiVGltZXIuaCIKIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0lHTk9SRV9X
QVJOSU5HX0dDQ19UT1BfTEVWRUwoIi1XdW51c2VkLXBhcmFtZXRlciIpCiAKICNpbmNsdWRlIDx3
ZWJydGMvYXBpL21lZGlhc3RyZWFtaW50ZXJmYWNlLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0
aWMgcG9wCitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMX0VORCgiLVd1bnVzZWQtcGFyYW1l
dGVyIikKIAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oCmluZGV4IDU0OGVhM2YwMWQ4MDdlODdjZTExZDMwZTZj
YmNkYjcwMmY5MTU1ZTEuLjJlZWZhNjUxOGFkMzRhNDc4NzEwZGI2YWVlZTFmZGI4NGY1ODJhMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oCkBAIC0zNCwxMyArMzQsMTIgQEAK
ICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgPFRpbWVyLmg+
CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBp
Z25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVM
KCItV3VudXNlZC1wYXJhbWV0ZXIiKQogCiAjaW5jbHVkZSA8d2VicnRjL2FwaS9tZWRpYXN0cmVh
bWludGVyZmFjZS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9jb21tb25fdmlkZW8vaW5jbHVkZS9pNDIw
X2J1ZmZlcl9wb29sLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FS
TklOR19HQ0NfVE9QX0xFVkVMX0VORCgiLVd1bnVzZWQtcGFyYW1ldGVyIikKIAogI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ0F1ZGlvTW9kdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDQXVkaW9Nb2R1bGUuaAppbmRleCA3OWU5OWQ3Y2UyMDZm
ODkyNTk2YmRkNGYzZDFjZWY3ZTVlYjM3ZGUwLi5mNTVkYTM2NThjY2M4NzlmNDM1ZTQwMjQwZDQ4
NjVlNzEwZDkxMzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDQXVkaW9Nb2R1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDQXVkaW9Nb2R1bGUuaApA
QCAtMjksMTQgKzI5LDEzIEBACiAKICNpbmNsdWRlICJMaWJXZWJSVENNYWNyb3MuaCIKIAotI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XdW51c2VkLXBhcmFtZXRlciIKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUwoIi1XdW51
c2VkLXBhcmFtZXRlciIpCiAKICNpbmNsdWRlIDx3ZWJydGMvbW9kdWxlcy9hdWRpb19kZXZpY2Uv
aW5jbHVkZS9hdWRpb19kZXZpY2UuaD4KICNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvbWVzc2Fn
ZWhhbmRsZXIuaD4KICNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvdGhyZWFkLmg+CiAKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMX0VORCgi
LVd1bnVzZWQtcGFyYW1ldGVyIikKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCAxYTE0NTNjODliN2MzMjM5ZmZmNWVhMWQy
NWIzZDAwNWUzOTUxYzM4Li4xOTM2NzI0OGJhZTMyMDllZjAzMDNjYTdhN2I5ZjhiZGMxMjU4Y2Y0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTMxLDggKzMxLDcg
QEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSA8ZGxmY24uaD4KIAotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51
c2VkLXBhcmFtZXRlciIKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUwoIi1XdW51c2VkLXBh
cmFtZXRlciIpCiAKICNpbmNsdWRlIDx3ZWJydGMvYXBpL2F1ZGlvX2NvZGVjcy9idWlsdGluX2F1
ZGlvX2RlY29kZXJfZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvYXVkaW9fY29kZWNz
L2J1aWx0aW5fYXVkaW9fZW5jb2Rlcl9mYWN0b3J5Lmg+CkBAIC00Myw3ICs0Miw3IEBACiAjaW5j
bHVkZSA8d2VicnRjL3BjL3BlZXJjb25uZWN0aW9uZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0
Yy9ydGNfYmFzZS9waHlzaWNhbHNvY2tldHNlcnZlci5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHBvcAorSUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTF9FTkQoIi1XdW51c2VkLXBhcmFt
ZXRlciIpCiAKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggOGZjY2Yy
MmEwMDVmZDc5ODYwYzJjOTU4NjYzNzAzNjgxMzIzOGQ5Ni4uMDY2NDlmZjJiNmJkNTdiZWI1MTFl
YTE4NGFjNTcxMTQ5ZjMxODgzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgK
QEAgLTM1LDE1ICszNSwxNCBAQAogCiAjaWYgVVNFKExJQldFQlJUQykKIAotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2Vk
LXBhcmFtZXRlciIKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUwoIi1XdW51c2VkLXBhcmFt
ZXRlciIpCiAKICNpbmNsdWRlIDx3ZWJydGMvYXBpL3BlZXJjb25uZWN0aW9uaW50ZXJmYWNlLmg+
CiAjaW5jbHVkZSA8d2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlcl9mYWN0b3J5
Lmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZGVjb2Rlcl9mYWN0
b3J5Lmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL3Njb3BlZF9yZWZfcHRyLmg+CiAKLSNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMX0VO
RCgiLVd1bnVzZWQtcGFyYW1ldGVyIikKIAogbmFtZXNwYWNlIHJ0YyB7CiBjbGFzcyBOZXR3b3Jr
TWFuYWdlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2Nv
YS5tbQppbmRleCA0YjQyNWY5YmE2MmIwZjNmMDkzYTkwNmZkNGIyYWU0OWMyYTQzYzNlLi5hMmEz
ZjliM2Q2MDQ2NzcwYzE1MzE4ZjkzMTYyOTkwZWUzMjQ0MGZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCkBAIC0zNCwxMiArMzQsMTEgQEAK
ICNpbmNsdWRlICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1l
ZGlhU29mdExpbmsuaD4KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitJR05PUkVfV0FS
TklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW51c2VkLXBhcmFtZXRlciIpCiAKICNpbmNsdWRlIDx3
ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaD4KIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bnVzZWQt
cGFyYW1ldGVyIikKIAogI2luY2x1ZGUgPHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAppbmRleCBlZDE0
YzM0YzMxZDY2YzA1Y2VkNTk1YzY1NjAzMGU3MTNmNjU1Nzg3Li43ZjdjZTkwYTQwYzIyNWUyNmJl
MDJiMDRjZjY3Zjg3M2E1OGJmY2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKQEAgLTMwLDE0ICszMCwxMyBAQAogCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0lHTk9SRV9XQVJOSU5H
X0NMQU5HX1RPUF9MRVZFTCgiLVd1bnVzZWQtcGFyYW1ldGVyIikKIAogI2luY2x1ZGUgPHdlYnJ0
Yy9hcGkvdmlkZW8vaTQyMF9idWZmZXIuaD4KICNpbmNsdWRlIDx3ZWJydGMvY29tbW9uX3ZpZGVv
L2xpYnl1di9pbmNsdWRlL3dlYnJ0Y19saWJ5dXYuaD4KICNpbmNsdWRlIDx3ZWJydGMvc2RrL1dl
YktpdC9XZWJLaXRVdGlsaXRpZXMuaD4KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bnVzZWQtcGFyYW1ldGVyIikK
IAogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2luY2x1ZGUgIkNvcmVW
aWRlb1NvZnRMaW5rLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCmluZGV4IDgx
MTlmZDVlNTU2ZTZjMWQ3YmZjMWZiYWI0YjViODg5MTBjMzllNWYuLmJlYmVlYmJkZWU2MWUwNzIy
MTYzNzllNTIxMTQwMjZiNjE2M2Y3MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQu
Y3BwCkBAIC02NCwxMiArNjQsMTEgQEAgc3RhdGljIGlubGluZSBDRlR5cGVJRCB0eXBlSUQoKSB7
IHJldHVybiBDbGFzc05hbWUjI0dldFR5cGVJRCgpOyB9IFwKIH07CiAKICNpZiBDT01QSUxFUihD
TEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0lHTk9SRV9XQVJOSU5H
X0NMQU5HX1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAjZW5kaWYKIERF
Q0xBUkVfQ0ZfVFlQRV9UUkFJVChDRkhUVFBDb29raWUpOwogI2lmIENPTVBJTEVSKENMQU5HKQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xF
VkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAjZW5kaWYKIAogI3VuZGVmIERF
Q0xBUkVfQ0ZfVFlQRV9UUkFJVApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKaW5kZXggMDk1YTBjNGI3ZDg0
YWM5YzlhYmFjNDRhMWE1ZjQ2ZTllYmMwMDA3YS4uZTg5YmU4MThhYWU5Mzg3YzFhNTIyNWZkZTJm
NGQ0OTNiM2U2YTQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCkBAIC0xNzEsMTIgKzE3MSwxMSBA
QCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbAogI2Vsc2UKICAgICBpZiAoYWxsb3dzQW55SFRUUFND
ZXJ0aWZpY2F0ZUhvc3RzKCkuY29udGFpbnMoZmlyc3RSZXF1ZXN0KCkudXJsKCkuaG9zdCgpLnRv
U3RyaW5nKCkpKSB7CiAgICAgICAgIHNzbFByb3BzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVh
dGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNh
bGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUo
c3NsUHJvcHMuZ2V0KCksIGtDRlN0cmVhbVNTTEFsbG93c0FueVJvb3QsIGtDRkJvb2xlYW5UcnVl
KTsKICAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoc3NsUHJvcHMuZ2V0KCksIGtDRlN0cmVh
bVNTTEFsbG93c0V4cGlyZWRSb290cywga0NGQm9vbGVhblRydWUpOwogICAgICAgICBDRkRpY3Rp
b25hcnlBZGRWYWx1ZShzc2xQcm9wcy5nZXQoKSwga0NGU3RyZWFtU1NMQWxsb3dzRXhwaXJlZENl
cnRpZmljYXRlcywga0NGQm9vbGVhblRydWUpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICNpZiAhUExBVEZPUk0oV0lOKSAvLyA8cmRhcjovL3Byb2JsZW0vMzM5OTM0NjI+
IC0gRGlzYWJsaW5nIHZhbGlkYXRpb24gb2YgY2VydGlmaWNhdGUgY2hhaW4gYnJlYWtzIFNTTCBv
biBXaW5kb3dzLgogICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShzc2xQcm9wcy5nZXQoKSwg
a0NGU3RyZWFtU1NMVmFsaWRhdGVzQ2VydGlmaWNhdGVDaGFpbiwga0NGQm9vbGVhbkZhbHNlKTsK
ICNlbmRpZgpAQCAtMjM0LDEwICsyMzMsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVD
RlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbAogICAg
IGlmIChzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSkKICAgICAgICAgY2xpZW50LnNob3VsZFVz
ZUNyZWRlbnRpYWxTdG9yYWdlID0gMDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgZC0+bV9jb25uZWN0aW9uID0gYWRvcHRDRihDRlVSTENvbm5lY3Rpb25DcmVhdGVX
aXRoUHJvcGVydGllcygwLCByZXF1ZXN0LmdldCgpLCByZWludGVycHJldF9jYXN0PENGVVJMQ29u
bmVjdGlvbkNsaWVudCo+KCZjbGllbnQpLCBwcm9wZXJ0aWVzRGljdGlvbmFyeS5nZXQoKSkpOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VO
RCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQogCiBib29sIFJlc291cmNlSGFuZGxl
OjpzdGFydCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAKaW5kZXggOWVkNWFh
MGM5ZDliZjEzZWVhMzFhMjk1NjhhMjQ5NzU3NGU1ODZjNC4uZGY4NzA2OGFkOTEyYWRiZTg3MDQ0
YjllYWNjZDIwZTk2NjJhOGZiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNw
cApAQCAtNjY2LDEwICs2NjYsNyBAQCB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnJlcG9y
dEVycm9yVG9DbGllbnQoQ0ZFcnJvclJlZiBlcnJvcikKIAogI2lmIFBMQVRGT1JNKE1BQykKIAot
I2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgot
I2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKIAogICAgIGlmIChDRkVxdWFsKENGRXJyb3JHZXREb21haW4oZXJyb3IpLCBrQ0ZFcnJv
ckRvbWFpbk9TU3RhdHVzKSkgewogICAgICAgICBjb25zdCBjaGFyKiBkZXNjcmlwdGlvbk9TU3Rh
dHVzID0gR2V0TWFjT1NTdGF0dXNDb21tZW50U3RyaW5nKHN0YXRpY19jYXN0PE9TU3RhdHVzPihl
cnJvckNvZGUpKTsKQEAgLTY3Nyw5ICs2NzQsNyBAQCB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZUlt
cGw6OnJlcG9ydEVycm9yVG9DbGllbnQoQ0ZFcnJvclJlZiBlcnJvcikKICAgICAgICAgICAgIGRl
c2NyaXB0aW9uID0gIk9TU3RhdHVzIEVycm9yICIgKyBTdHJpbmc6Om51bWJlcihlcnJvckNvZGUp
ICsgIjogIiArIGRlc2NyaXB0aW9uT1NTdGF0dXM7CiAgICAgfQogCi0jaWYgQ09NUElMRVIoQ0xB
TkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBJR05PUkVfV0FS
TklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3JlYXRlLWh0dHAt
aGVhZGVyLW5hbWUtdGFibGUgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NyZWF0
ZS1odHRwLWhlYWRlci1uYW1lLXRhYmxlCmluZGV4IGVhMmI3NDMzNjQ4M2IwNTA2Mzg3MTNmZDUx
NzNhNmIwOWI4ZDYwNzAuLjg0MDQzZDZmNzdjMDliOTc5ZGRjMmJiYjU4ZTM2MjhkMTY3Y2ZhZmEg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3JlYXRlLWh0dHAt
aGVhZGVyLW5hbWUtdGFibGUKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
cmVhdGUtaHR0cC1oZWFkZXItbmFtZS10YWJsZQpAQCAtOTAsMTEgKzkwLDggQEAgZ3BlcmZfZmls
ZS53cml0ZSgnJycKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIAotI2lmIGRl
ZmluZWQoX19jbGFuZ19fKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIgotI2VuZGlmCitJ
R05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5rbm93bi1wcmFnbWFzIikKK0lHTk9S
RV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIpCiAKIC8v
IE9sZGVyIHZlcnNpb25zIG9mIGdwZXJmIGxpa2UgdG8gdXNlIHRoZSBgcmVnaXN0ZXJgIGtleXdv
cmQuCiAjZGVmaW5lIHJlZ2lzdGVyCkBAIC0xNzksNyArMTc2LDggQEAgU3RyaW5nVmlldyBodHRw
SGVhZGVyTmFtZVN0cmluZyhIVFRQSGVhZGVyTmFtZSBoZWFkZXJOYW1lKQogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjaWYgZGVmaW5lZChfX2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2ltcGxpY2l0
LWZhbGx0aHJvdWdoIikKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5r
bm93bi1wcmFnbWFzIikKICNlbmRpZgogJycnKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1RleHRFbmNvZGluZy5jcHAKaW5kZXggNDAxM2YzN2NmN2UxZDdmNzcyOGQ4YzAwN2Zm
YTY4MTcyNmQ1ZTAxZC4uNDBhYzZjNGNkMDQ2MThmY2MwOTQzZjIyMmEzNzE4MmEzZWM4OGFiMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcApAQCAt
NjksMTAgKzY5LDcgQEAgU3RyaW5nIFRleHRFbmNvZGluZzo6ZGVjb2RlKGNvbnN0IGNoYXIqIGRh
dGEsIHNpemVfdCBsZW5ndGgsIGJvb2wgc3RvcE9uRXJyb3IsIGIKICAgICByZXR1cm4gbmV3VGV4
dENvZGVjKCp0aGlzKS0+ZGVjb2RlKGRhdGEsIGxlbmd0aCwgdHJ1ZSwgc3RvcE9uRXJyb3IsIHNh
d0Vycm9yKTsKIH0KIAotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgotI2VuZGlmCitJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfVE9Q
X0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIC8vIE5PVEU6IElDVSdzIHVub3Jt
X3F1aWNrQ2hlY2sgYW5kIHVub3JtX25vcm1hbGl6ZSBmdW5jdGlvbnMgYXJlIGRlcHJlY2F0ZWQu
CiAKIFZlY3Rvcjx1aW50OF90PiBUZXh0RW5jb2Rpbmc6OmVuY29kZShTdHJpbmdWaWV3IHRleHQs
IFVuZW5jb2RhYmxlSGFuZGxpbmcgaGFuZGxpbmcpIGNvbnN0CkBAIC0xMTIsOSArMTA5LDcgQEAg
VmVjdG9yPHVpbnQ4X3Q+IFRleHRFbmNvZGluZzo6ZW5jb2RlKFN0cmluZ1ZpZXcgdGV4dCwgVW5l
bmNvZGFibGVIYW5kbGluZyBoYW5kbGkKICAgICByZXR1cm4gbmV3VGV4dENvZGVjKCp0aGlzKS0+
ZW5jb2RlKFN0cmluZ1ZpZXcgeyBzb3VyY2UsIHNvdXJjZUxlbmd0aCB9LCBoYW5kbGluZyk7CiB9
CiAKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBv
cAotI2VuZGlmCitJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKIGNvbnN0IGNoYXIqIFRleHRFbmNvZGluZzo6ZG9t
TmFtZSgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tM
aWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGli
V2ViUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCA4NDAzNTMwZTk5ZDIwYjhkNDhiYTk0NzdmZjE3
OWRlZjZkOGU4OTI4Li43ODk3ZDc3YzE3M2ZjM2E0MmIyMWE5Y2E5MTA4MjBiNjZkYzY3ZTE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uLmgKQEAgLTI4LDEzICsyOCwxMiBAQAogCiAjaW5jbHVkZSAiTGliV2ViUlRDTWFjcm9z
LmgiCiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xF
VkVMKCItV3VudXNlZC1wYXJhbWV0ZXIiKQogCiAjaW5jbHVkZSA8d2VicnRjL2FwaS9tZWRpYXN0
cmVhbWludGVyZmFjZS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvcGVlcmNvbm5lY3Rpb25pbnRl
cmZhY2UuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0dD
Q19UT1BfTEVWRUxfRU5EKCItV3VudXNlZC1wYXJhbWV0ZXIiKQogCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEdy
YW1tYXIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoR3JhbW1hci5jcHAKaW5kZXggMzFk
ZjFjMGQxNThhMjc4ZjRjMDk2Y2IyYmE5MTFmM2Y3YjAxYjk0My4uZjQwNTgyZTBjNjczYWY5M2Ni
YThhYzAyNGM3MTI5OWJlNWUzNTNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQ
YXRoR3JhbW1hci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoR3JhbW1hci5jcHAK
QEAgLTIxNTQsMTUgKzIxNTQsMTAgQEAgeXllcnJvcmxhYjoKICAgLyogUGFjaWZ5IGNvbXBpbGVy
cyBsaWtlIEdDQyB3aGVuIHRoZSB1c2VyIGNvZGUgbmV2ZXIgaW52b2tlcwogICAgICBZWUVSUk9S
IGFuZCB0aGUgbGFiZWwgeXllcnJvcmxhYiB0aGVyZWZvcmUgbmV2ZXIgYXBwZWFycyBpbiB1c2Vy
CiAgICAgIGNvZGUuICAqLwotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VucmVhY2hh
YmxlLWNvZGUiCi0jZW5kaWYKKyAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XdW5yZWFjaGFibGUt
Y29kZSIpOwogICBpZiAoLypDT05TVENPTkQqLyAwKQogICAgICBnb3RvIHl5ZXJyb3JsYWI7Ci0j
aWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYK
KyAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV3VucmVhY2hhYmxlLWNvZGUiKTsKIAogICAv
KiBEbyBub3QgcmVjbGFpbSB0aGUgc3ltYm9scyBvZiB0aGUgcnVsZSB3aGljaCBhY3Rpb24gdHJp
Z2dlcmVkCiAgICAgIHRoaXMgWVlFUlJPUi4gICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQppbmRleCBm
YzIwOWM4ZjcxMzk3ZTE3MjhjMTUyMzc5OTM3YjI4YjlmNGMxZDJmLi4xNDg1MDQ3NTk1NDE0MGE1
ZjNkMmE4Nzg0YTA4ZDZmNTcyOThhNmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KQEAgLTEzNCwx
MiArMTM0LDExIEBAIE5TSFRUUENvb2tpZVN0b3JhZ2UgKk5ldHdvcmtEYXRhVGFza0NvY29hOjpz
dGF0ZWxlc3NDb29raWVTdG9yYWdlKCkKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWlu
UHRyPE5TSFRUUENvb2tpZVN0b3JhZ2U+PiBzdGF0ZWxlc3NDb29raWVTdG9yYWdlOwogICAgIGlm
ICghc3RhdGVsZXNzQ29va2llU3RvcmFnZS5nZXQoKSkgewogI2lmIChQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDEzMDApCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9u
bnVsbCIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1Xbm9ubnVsbCIpOwogI2VuZGlm
CiAgICAgICAgIHN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UuZ2V0KCkgPSBhZG9wdE5TKFtbTlNIVFRQ
Q29va2llU3RvcmFnZSBhbGxvY10gX2luaXRXaXRoSWRlbnRpZmllcjpuaWwgcHJpdmF0ZTpZRVNd
KTsKICNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
IDwgMTAxMzAwKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVf
V0FSTklOR19DTEFOR19FTkQoIi1Xbm9ubnVsbCIpOwogI2VuZGlmCiAgICAgICAgIHN0YXRlbGVz
c0Nvb2tpZVN0b3JhZ2UuZ2V0KCkuZ2V0KCkuY29va2llQWNjZXB0UG9saWN5ID0gTlNIVFRQQ29v
a2llQWNjZXB0UG9saWN5TmV2ZXI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4IDAwMjNm
ZTE2MWI1M2VmNWJjM2E1MzQ0MzliNjYyZTU4Y2RhMGU2NWMuLmYwMmY1NTA2YjVhNTBlZDAxY2Vk
N2ZmMzU0YTI3ZDMxOTliMTBjNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KQEAgLTIyMyw4ICsyMjMs
NyBAQCBzdGF0aWMgdm9pZCBzYXZlQ29va2llcyhOU0hUVFBDb29raWVTdG9yYWdlICpjb29raWVT
dG9yYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2bwogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0
Zm9ybVN5bmNBbGxDb29raWVzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGVyKSB7CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVn
ZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgCiAjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDE0MDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCkKICAgICBSZWZQdHI8Q2FsbGJhY2tBZ2dyZWdhdG9y
PiBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kZXIpKTsKQEAgLTIzNiw3ICsyMzUsNyBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpwbGF0Zm9ybVN5bmNBbGxDb29raWVzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aQogICAgIGNvbXBsZXRpb25IYW5kZXIoKTsKICNlbmRpZgogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtUHJl
cGFyZVRvU3VzcGVuZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblBy
b2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nl
c3NNYWMubW0KaW5kZXggYzMxMjBiYjU5YTBhNTRiNjk4NzA5MmZhZjU2OTJkNDI0MTUzZTYxNy4u
YTNkM2ExN2IxNWMxNjQ3MGU0M2U5ODI4ODVmNWJmOGVhYzE4ZGFjMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQpAQCAtMjYw
LDEzICsyNjAsMTIgQEAgc3RhdGljIHVuc2lnbmVkIG1vZGFsQ291bnQ7CiAKIHN0YXRpYyB2b2lk
IGJlZ2luTW9kYWwoKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
Ly8gTWFrZSBzdXJlIHRvIG1ha2Ugb3Vyc2VsdmVzIHRoZSBmcm9udCBwcm9jZXNzCiAgICAgUHJv
Y2Vzc1NlcmlhbE51bWJlciBwc247CiAgICAgR2V0Q3VycmVudFByb2Nlc3MoJnBzbik7CiAgICAg
U2V0RnJvbnRQcm9jZXNzKCZwc24pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
CiAgICAgaWYgKCFtb2RhbENvdW50KyspCiAgICAgICAgIHNldE1vZGFsKHRydWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hpbS5t
bSBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0K
aW5kZXggNDAzNmQzYjg3NDQwMzY4MDcyYjIwYjc4MDI2MTdkMTllOWQxYjBhNC4uZmE4MDNlMWYw
YjBmNDMzNGE2MzNkOTdkNjBmNzljOWM4NTg2YzhjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hpbS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NTaGltLm1tCkBAIC00OCw4ICs0OCw3
IEBAIHN0YXRpYyBQbHVnaW5Qcm9jZXNzU2hpbUNhbGxiYWNrcyBwbHVnaW5Qcm9jZXNzU2hpbUNh
bGxiYWNrczsKIAogI2lmbmRlZiBfX0xQNjRfXwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKQogCiBzdGF0aWMgdm9pZCBzaGltRGVidWdnZXIodm9pZCkKIHsKQEAgLTEz
Myw3ICsxMzIsNyBAQCBEWUxEX0lOVEVSUE9TRShzaGltSGlkZVdpbmRvdywgSGlkZVdpbmRvdyk7
CiBEWUxEX0lOVEVSUE9TRShzaGltTFNPcGVuQ0ZVUkxSZWYsIExTT3BlbkNGVVJMUmVmKTsKIERZ
TERfSU5URVJQT1NFKHNoaW1NYWNoVk1NYXAsIG1hY2hfdm1fbWFwKTsKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1
bGUuY3BwCmluZGV4IDYwZjQxZWJkZmY2MWM4NjM3N2NhZmYxN2NhZWI1NmE5NDQ1ZWM3NzkuLjVk
N2MxYzE4MzVjZmJkNTk3MmMwYzRkOWMwZTg4ODEzMDU0YmMwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1bGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVn
aW5Nb2R1bGUuY3BwCkBAIC0yNDIsOCArMjQyLDcgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbk1vZHVs
ZTo6dHJ5TG9hZCgpCiAjaWYgUExVR0lOX0FSQ0hJVEVDVFVSRShNQUMpCiAjaWZuZGVmIE5QX05P
X0NBUkJPTgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIC8vIFBs
dWdpbnMgKGF0IGxlYXN0IFFUKSByZXF1aXJlIHRoYXQgeW91IGNhbGwgVXNlUmVzRmlsZSBvbiB0
aGUgcmVzb3VyY2UgZmlsZSBiZWZvcmUgbG9hZGluZyBpdC4KICAgICBSZXNGaWxlUmVmTnVtIGN1
cnJlbnRSZXNvdXJjZUZpbGUgPSBDdXJSZXNGaWxlKCk7CkBAIC0yNTgsNyArMjU3LDcgQEAgYm9v
bCBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6dHJ5TG9hZCgpCiAgICAgLy8gUmVzdG9yZSB0aGUgcmVz
b3VyY2UgZmlsZS4KICAgICBVc2VSZXNGaWxlKGN1cnJlbnRSZXNvdXJjZUZpbGUpOwogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9pb3MvQ2hpbGRQcm9jZXNzSU9TLm1tIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbQppbmRleCA5YmRkNzJmODNmNDMxM2U0NjBjNWRj
ZTBiMzllY2Q1ZTU1N2I3NGNhLi45ZGM1ZTQ2MTJlMTg2NjRlODFhODEwMmY4NmRmMWE0MDJkNTkw
NjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvQ2hpbGRQcm9jZXNzSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9DaGlsZFByb2Nlc3NJT1MubW0KQEAg
LTgwLDEwICs4MCw5IEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25z
dCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmCiAgICAgICAgIGlmICghc2Fu
ZGJveFByb2ZpbGVQYXRoLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgQ1N0cmluZyBwcm9maWxl
UGF0aCA9IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzYW5kYm94UHJvZmls
ZVBhdGgpOwogICAgICAgICAgICAgY2hhciogZXJyb3JCdWY7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgaWYgKHNhbmRib3hfaW5pdF93aXRo
X3BhcmFtZXRlcnMocHJvZmlsZVBhdGguZGF0YSgpLCBTQU5EQk9YX05BTUVEX0VYVEVSTkFMLCBz
YW5kYm94UGFyYW1ldGVycy5uYW1lZFBhcmFtZXRlckFycmF5KCksICZlcnJvckJ1ZikpIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgICAgICBJR05PUkVfV0FSTklO
R19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAgICAg
ICBXVEZMb2dBbHdheXMoIiVzOiBDb3VsZG4ndCBpbml0aWFsaXplIHNhbmRib3ggcHJvZmlsZSBb
JXNdLCBlcnJvciAnJXMnXG4iLCBnZXRwcm9nbmFtZSgpLCBwcm9maWxlUGF0aC5kYXRhKCksIGVy
cm9yQnVmKTsKICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMCwgY291bnQgPSBzYW5k
Ym94UGFyYW1ldGVycy5jb3VudCgpOyBpICE9IGNvdW50OyArK2kpCiAgICAgICAgICAgICAgICAg
ICAgIFdURkxvZ0Fsd2F5cygiJXM9JXNcbiIsIHNhbmRib3hQYXJhbWV0ZXJzLm5hbWUoaSksIHNh
bmRib3hQYXJhbWV0ZXJzLnZhbHVlKGkpKTsKQEAgLTk1LDEwICs5NCw5IEBAIHZvaWQgQ2hpbGRQ
cm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlv
blBhcmFtZXRlcnMmCiAgICAgfQogICAgIGNhc2UgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1l
dGVyczo6VXNlU2FuZGJveFByb2ZpbGU6IHsKICAgICAgICAgY2hhciogZXJyb3JCdWY7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NM
QU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIGlmIChzYW5kYm94X2lu
aXRfd2l0aF9wYXJhbWV0ZXJzKHNhbmRib3hQYXJhbWV0ZXJzLnNhbmRib3hQcm9maWxlKCkudXRm
OCgpLmRhdGEoKSwgMCwgc2FuZGJveFBhcmFtZXRlcnMubmFtZWRQYXJhbWV0ZXJBcnJheSgpLCAm
ZXJyb3JCdWYpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAg
ICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXM6IENvdWxkbid0IGluaXRpYWxpemUgc2FuZGJveCBw
cm9maWxlLCBlcnJvciAnJXMnXG4iLCBnZXRwcm9nbmFtZSgpLCBlcnJvckJ1Zik7CiAgICAgICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMCwgY291bnQgPSBzYW5kYm94UGFyYW1ldGVycy5jb3VudCgp
OyBpICE9IGNvdW50OyArK2kpCiAgICAgICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIlcz0lc1xu
Iiwgc2FuZGJveFBhcmFtZXRlcnMubmFtZShpKSwgc2FuZGJveFBhcmFtZXRlcnMudmFsdWUoaSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KaW5kZXggMDQz
ODcyNjliYzc0Zjk3NTFhNTJkY2JiZDIwOWJmOGFlNzMzYzNlYS4uMTg4ZmEyYTg3ZTc4YmZiNzUz
YmMzMjFlZGRhOTc0MGY0ODE5M2QxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL0NoaWxkUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ2hp
bGRQcm9jZXNzTWFjLm1tCkBAIC01MzQsMTAgKzUzNCw5IEBAIHN0YXRpYyBib29sIGNvbXBpbGVB
bmRBcHBseVNhbmRib3hTbG93Q2FzZShjb25zdCBTdHJpbmcmIHByb2ZpbGVPclByb2ZpbGVQYXRo
LCBiCiAgICAgY2hhciogZXJyb3JCdWY7CiAgICAgQ1N0cmluZyB0ZW1wID0gaXNQcm9maWxlUGF0
aCA/IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwcm9maWxlT3JQcm9maWxl
UGF0aCkgOiBwcm9maWxlT3JQcm9maWxlUGF0aC51dGY4KCk7CiAgICAgdWludDY0X3QgZmxhZ3Mg
PSBpc1Byb2ZpbGVQYXRoID8gU0FOREJPWF9OQU1FRF9FWFRFUk5BTCA6IDA7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBpZiAoc2FuZGJveF9pbml0X3dpdGhfcGFyYW1l
dGVycyh0ZW1wLmRhdGEoKSwgZmxhZ3MsIHBhcmFtZXRlcnMubmFtZWRQYXJhbWV0ZXJBcnJheSgp
LCAmZXJyb3JCdWYpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAg
ICAgICBXVEZMb2dBbHdheXMoIiVzOiBDb3VsZCBub3QgaW5pdGlhbGl6ZSBzYW5kYm94IHByb2Zp
bGUgWyVzXSwgZXJyb3IgJyVzJ1xuIiwgZ2V0cHJvZ25hbWUoKSwgdGVtcC5kYXRhKCksIGVycm9y
QnVmKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gcGFyYW1ldGVycy5jb3Vu
dCgpOyBpICE9IGNvdW50OyArK2kpCiAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzPSVzXG4i
LCBwYXJhbWV0ZXJzLm5hbWUoaSksIHBhcmFtZXRlcnMudmFsdWUoaSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLm1tIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLm1tCmluZGV4IDY1ZjJiNWE2ZDc4MzYxZjZjNDUw
NWRjZTkxODU2N2FjMzFhYzg4YWMuLjU0ZmYxYTE4ZDRjMGE4MDllZmJjMzBlNjk3OGZiNDQyN2Rj
NzZmOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEubW0KQEAg
LTgzLDEwICs4Myw5IEBAIGJvb2wgQ29sb3JTcGFjZURhdGE6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIENvbG9yU3BhY2VEYXRhJiBjb2xvclNwYWNlRGF0CiAgICAgICAgIGlmICghSVBD
OjpkZWNvZGUoZGVjb2RlciwgZGF0YSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdf
Q0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgY29sb3JTcGFjZURh
dGEuY2dDb2xvclNwYWNlID0gYWRvcHRDRihDR0NvbG9yU3BhY2VDcmVhdGVXaXRoSUNDUHJvZmls
ZShkYXRhLmdldCgpKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L1NhbmRib3hFeHRlbnNpb25NYWMubW0KaW5kZXggYjhlNzQzZDIzNjBjZmVlZmMxN2JjYTI0ZDU5
NzExY2RkNThhNWI3ZS4uMDVmOGNmMDQyYjk1ZjAwN2I2ZmFmMzIyOGNkMTQ1OGEyNTE5NWQwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0K
QEAgLTg2LDEyICs4NiwxMSBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgc3dpdGNoICh0eXBl
KSB7CiAgICAgICAgIGNhc2UgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZE9ubHk6Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBJR05PUkVfV0FSTklO
R19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgcmV0dXJu
IHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2ZpbGUoQVBQX1NBTkRCT1hfUkVBRCwgcGF0aCwgMCk7
CiAgICAgICAgIGNhc2UgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZFdyaXRlOgogICAgICAg
ICAgICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2ZpbGUoQVBQX1NBTkRCT1hfUkVB
RF9XUklURSwgcGF0aCwgMCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAg
ICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICAgICAgY2FzZSBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpHZW5lcmljOgogICAgICAg
ICAgICAgcmV0dXJuIHNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2dlbmVyaWMocGF0aCwgMCk7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tCmluZGV4IDY5ZWUzZDM5NmY4YzI2NDVkNTQ4NDBhNTM1ZmU5ZWJjMmM1YTNmYTcuLmVkZmMy
ZDE5ZGVlZDkwNzYwOTY2YjA5ZDVmYjQyMmU0OGVjNTg0MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMzk5MiwxMCArMzk5Miw5IEBA
IFdFQkNPUkVfQ09NTUFORCh5YW5rQW5kU2VsZWN0KQogCiAtIChpZClfd2ViX3N1cGVyQWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOihOU1N0cmluZyAqKWF0dHJpYnV0ZQogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgcmV0dXJuIFtzdXBlciBhY2Nlc3NpYmlsaXR5
QXR0cmlidXRlVmFsdWU6YXR0cmlidXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKIH0KIAogLSAodm9pZClfd2ViX3N1cGVyRG9Db21tYW5kQnlTZWxlY3RvcjooU0VMKXNlbGVj
dG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Q29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCmluZGV4IDg0NzhkYjJjZTNjNjdlZTUwNzdlYzUwYjBl
NTA0MWJlOTRhZWY1OTIuLjVhMTJmMWJmYzZkY2EzZjNhOTZjMWVjYTVmNWUyZjBiYmNlZDAwYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCkBAIC01MDAsOCArNTAwLDcgQEAgc3RhdGljIE5TU3Ry
aW5nICpkZWZhdWx0QXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KCkKICAgICByZXR1cm4gaGFu
ZGxlciA/IHN0YXRpY19jYXN0PFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlckNvY29hKj4oaGFu
ZGxlci5nZXQoKSktPmFwaUhhbmRsZXIoKSA6IG5pbDsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIikKIAogLSAoX1dLV2Vic2l0ZURhdGFTdG9yZSAqKV93ZWJzaXRl
RGF0YVN0b3JlCiB7CkBAIC01MTMsNyArNTEyLDcgQEAgc3RhdGljIE5TU3RyaW5nICpkZWZhdWx0
QXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KCkKICAgICBzZWxmLndlYnNpdGVEYXRhU3RvcmUg
PSB3ZWJzaXRlRGF0YVN0b3JlID8gd2Vic2l0ZURhdGFTdG9yZS0+X2RhdGFTdG9yZS5nZXQoKSA6
IG51bGxwdHI7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJO
SU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiAj
aWYgUExBVEZPUk0oSU9TKQogLSAoV0tXZWJWaWV3Q29udGVudFByb3ZpZGVyUmVnaXN0cnkgKilf
Y29udGVudFByb3ZpZGVyUmVnaXN0cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggZDU2MjFiMDA0ZTVk
MDc3MjgxZmQ1MGY5NDliZmZhMmJjZTNlNzgyNC4uZTRiZmM5MTE4NDUwZGVmMTE5NDI0ZmI0NDMx
YWVjMGZmNzdmYjUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmUubW0KQEAgLTQwLDggKzQwLDcgQEAgdHlwZWRl
ZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhVHlwZXMpIHsKICAgICBfV0tX
ZWJzaXRlRGF0YVR5cGVXZWJTUUxEYXRhYmFzZXMgPSAxIDw8IDUsCiB9OwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwo
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiBAaW1wbGVtZW50YXRpb24gX1dLV2Vic2l0
ZURhdGFTdG9yZQogCkBAIC0xMDcsNiArMTA2LDYgQEAgc3RhdGljIFJldGFpblB0cjxOU1NldD4g
dG9XS1dlYnNpdGVEYXRhVHlwZXMoX1dLV2Vic2l0ZURhdGFUeXBlcyB3ZWJzaXRlRGF0YVR5cGUK
IAogQGVuZAogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19D
TEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJW
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcu
Y3BwCmluZGV4IDdiZmE4NDJhNDliZDIxNDc1NjBhYTI2NGMwZTg3MTgzNjIyZjk0NTYuLjZlMGFm
MjY0ZDgwMTc1NmMwNTRjODdjNzBhMTVjMDE1OTA4ZmZkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0yMDgyLDggKzIw
ODIsNyBAQCB2b2lkIHdlYmtpdFdlYlZpZXdSdW5Bc01vZGFsKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcpCiAKICNpZiBQTEFURk9STShHVEspCiAvLyBUaGlzIGlzIHRvIHN1cHByZXNzIHdhcm5pbmdz
IGFib3V0IGdka190aHJlYWRzX2xlYXZlIGFuZCBnZGtfdGhyZWFkc19lbnRlci4KLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0dDQygiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGdka190aHJlYWRzX2xlYXZlKCk7CiAjZW5kaWYKIApA
QCAtMjA5MSw3ICsyMDkwLDcgQEAgdm9pZCB3ZWJraXRXZWJWaWV3UnVuQXNNb2RhbChXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3KQogCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIGdka190aHJlYWRzX2Vu
dGVyKCk7Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0dD
Q19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICNlbmRpZgogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGJjNWRlMmI1OWYyZjRjMjFh
ZTU0YjYwYTM0MzNkYzg0ZGEyZDUwZTQuLmYwMjc1M2U4YjY4ZmFkNTExYjg2MzA4ZTM0MWQ3MTE5
MzRmNWQyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBA
IC05NzgsMTAgKzk3OCw5IEBAIFNvbWUgb3RoZXIgZWRpdGluZy1yZWxhdGVkIG1ldGhvZHMgc3Rp
bGwgdW5pbXBsZW1lbnRlZDoKIAogLSAoaWQpX3dlYl9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1
dGVWYWx1ZTooTlNTdHJpbmcgKilhdHRyaWJ1dGUKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogICAgIHJldHVybiBbc3VwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVl
OmF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIC0gKHZv
aWQpX3dlYl9zdXBlckRvQ29tbWFuZEJ5U2VsZWN0b3I6KFNFTClzZWxlY3RvcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRG93bmxvYWRDbGllbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZENsaWVudC5tbQppbmRleCAwZWIxY2Y2
NDAzMjg2ODYxYWE0Mjc0ZGZjNzQ0ODQzZjBiZDAwYTZhLi44ZjhmYTQ0ZTEzY2JlMTVkNDQzNGU2
YjVjMTEzMTk0YjVhNGUzNzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Eb3dubG9hZENsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9Eb3dubG9hZENsaWVudC5tbQpAQCAtMjAyLDEwICsyMDIsOSBAQCB2b2lkIERvd25sb2FkQ2xp
ZW50OjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShXZWJQcm9jZXNzUG9v
bCYsIERvdwogCiAgICAgaWYgKG1fZGVsZWdhdGVNZXRob2RzLmRvd25sb2FkRGVjaWRlRGVzdGlu
YXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWVBbGxvd092ZXJ3cml0ZSkgewogICAgICAgICBCT09M
IGFsbG93T3ZlcndyaXRlID0gTk87Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgICAgIE5TU3RyaW5nICpkZXN0aW5hdGlvbiA9IFttX2RlbGVnYXRlIF9kb3dubG9h
ZDp3cmFwcGVyKGRvd25sb2FkUHJveHkpIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZp
bGVuYW1lOmZpbGVuYW1lIGFsbG93T3ZlcndyaXRlOiZhbGxvd092ZXJ3cml0ZV07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihh
bGxvd092ZXJ3cml0ZSA/IEFsbG93T3ZlcndyaXRlOjpZZXMgOiBBbGxvd092ZXJ3cml0ZTo6Tm8s
IGRlc3RpbmF0aW9uKTsKICAgICB9IGVsc2UgewogICAgICAgICBbbV9kZWxlZ2F0ZSBfZG93bmxv
YWQ6d3JhcHBlcihkb3dubG9hZFByb3h5KSBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRG
aWxlbmFtZTpmaWxlbmFtZSBjb21wbGV0aW9uSGFuZGxlcjpCbG9ja1B0cjx2b2lkKEJPT0wsIE5T
U3RyaW5nICopPjo6ZnJvbUNhbGxhYmxlKFtjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxs
Q2hlY2tlcjo6Y3JlYXRlKG1fZGVsZWdhdGUuZ2V0KCkuZ2V0KCksIEBzZWxlY3RvcihfZG93bmxv
YWQ6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWU6Y29tcGxldGlvbkhhbmRs
ZXI6KSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChC
T09MIGFsbG93T3ZlcndyaXRlLCBOU1N0cmluZyAqZGVzdGluYXRpb24pIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdl
ckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVBy
b3RvY29sTWFuYWdlckNsaWVudC5tbQppbmRleCAxMWJhMzcyNjU0ODNmZmU3ZmYyNDY1MDk0MGQ4
ZjMzYTUyYzBjMDRhLi5iNGRjY2YxMTY2NzY5NjFkZGUxOWZhYzg1OTk5MDNiZmNhZjcxNGNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90
b2NvbE1hbmFnZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCkBAIC01OSwxMiArNTksMTEgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICBfY3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkg
PSBjdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTsKICAgICBfY3VzdG9tUHJvdG9jb2xJRCA9IGN1
c3RvbVByb3RvY29sSUQ7CiAgICAgX3N0b3JhZ2VQb2xpY3kgPSBOU1VSTENhY2hlU3RvcmFnZU5v
dEFsbG93ZWQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBfdXJsQ29u
bmVjdGlvbiA9IFtbTlNVUkxDb25uZWN0aW9uIGFsbG9jXSBpbml0V2l0aFJlcXVlc3Q6cmVxdWVz
dCBkZWxlZ2F0ZTpzZWxmIHN0YXJ0SW1tZWRpYXRlbHk6Tk9dOwogICAgIFtfdXJsQ29ubmVjdGlv
biBzY2hlZHVsZUluUnVuTG9vcDpbTlNSdW5Mb29wIG1haW5SdW5Mb29wXSBmb3JNb2RlOk5TUnVu
TG9vcENvbW1vbk1vZGVzXTsKICAgICBbX3VybENvbm5lY3Rpb24gc3RhcnRdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KaW5kZXggODQ4N2U2
ZTMwNWZjNjQ5MDBiZDMxYTcxODZlY2M2YzAyYjMzZGRjNy4uNDFlNDk4MTg1MzcyMGI4NTIwN2Y4
ZDY4NDcwNjExNWUzZWRlMjBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5tbQpAQCAtNTc1LDEwICs1NzUsOSBAQCB2b2lkIE5hdmlnYXRp
b25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bihXZWJQYWdlUAogICAgICAgICBpZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uVXNlcklu
Zm9EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMpCiAgICAgICAgICAgICBbKGlkIDxXS05h
dmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+KW5hdmlnYXRpb25EZWxlZ2F0ZSBfd2ViVmlldzptX25h
dmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp3
cmFwcGVyKG5hdmlnYXRpb25BY3Rpb24pIHVzZXJJbmZvOnVzZXJJbmZvID8gc3RhdGljX2Nhc3Q8
aWQgPE5TU2VjdXJlQ29kaW5nPj4odXNlckluZm8tPndyYXBwZXIoKSkgOiBuaWwgZGVjaXNpb25I
YW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CiAgICAgICAgIGVsc2UgewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAgIFsoaWQgPFdLTmF2
aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2
aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndy
YXBwZXIobmF2aWdhdGlvbkFjdGlvbikgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5n
ZXQoKV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBJR05PUkVf
V0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAg
fQogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyV2l0aG91dFBvbGlj
aWVzID0gW2RlY2lzaW9uSGFuZGxlcldpdGhQb2xpY2llcyA9IFdURk1vdmUoZGVjaXNpb25IYW5k
bGVyV2l0aFBvbGljaWVzKV0gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBhY3Rpb25Qb2xpY3kp
IG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0K
aW5kZXggZjBiOWQzMDAwYTllNjU0NWFkYjBiMTI0NTMxZjU3MGU0ODIyNTliNC4uYWEzYjk0OTQx
ZTY5OTU1ZWIwMzQ5ZDM0ZjhhMTg5NmNjMzU1OTJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0yMDMsMTMgKzIwMywxMiBAQCB2b2lkIFVJRGVs
ZWdhdGU6OkNvbnRleHRNZW51Q2xpZW50OjptZW51RnJvbVByb3Bvc2VkTWVudShXZWJQYWdlUHJv
eHkmLCBOU01lbnUgKgogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaWYgKG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3Q29udGV4dE1lbnVGb3JFbGVtZW50KQogICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6
bV91aURlbGVnYXRlLm1fd2ViVmlldyBjb250ZXh0TWVudTptZW51IGZvckVsZW1lbnQ6Y29udGV4
dE1lbnVFbGVtZW50SW5mby5nZXQoKV0pOwogCiAgICAgY29tcGxldGlvbkhhbmRsZXIoWyhpZCA8
V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2Vi
VmlldyBjb250ZXh0TWVudTptZW51IGZvckVsZW1lbnQ6Y29udGV4dE1lbnVFbGVtZW50SW5mby5n
ZXQoKSB1c2VySW5mbzp1c2VySW5mbyA/IHN0YXRpY19jYXN0PGlkIDxOU1NlY3VyZUNvZGluZz4+
KHVzZXJJbmZvLT53cmFwcGVyKCkpIDogbmlsXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggZDE2ZjU4NTJkZGY4NGE0ZDU5MmI5ZjMz
ZTc4ZWIzMmRhOTIwYjEwMy4uMTllZjhhZWFiODNhYjM5YzJhNmYxYmUwMTgyNjgwMTMwM2VjOTJj
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tCkBAIC0xNjYsMTEgKzE2NiwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpw
bGF0Zm9ybVJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKCkKIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKIHsKICNpZiBQTEFURk9STShNQUMpCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9j
ZXNzUHJpdmlsZWdlOjpDYW5Db21tdW5pY2F0ZVdpdGhXaW5kb3dTZXJ2ZXIpKTsKICAgICBwYXJh
bWV0ZXJzLmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkID0gW1tOU0Fw
cCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWEVuaGFuY2VkVXNlckludGVyZmFjZSJd
IGJvb2xWYWx1ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAjZWxzZQogICAg
IHBhcmFtZXRlcnMuYWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQgPSBm
YWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQppbmRleCA1MDI4NzAwZTJmYjQ1OGU3NjE4YzY1MjdiM2M3M2EzY2Q2ZmY1MDZkLi4zYTA1
MjBkYzg3MjE4YmI4ZGFkN2YxYTJjZWQxN2I2NTdiZDZjYTFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtNTU2LDE1ICs1NTYsMTQgQEAgc3Rh
dGljIGNvbnN0IE5TVUludGVnZXIgb3JkZXJlZExpc3RTZWdtZW50ID0gMjsKICAgICBbaW5zZXJ0
TGlzdENvbnRyb2wgc2V0V2lkdGg6bGlzdENvbnRyb2xTZWdtZW50V2lkdGggZm9yU2VnbWVudDpv
cmRlcmVkTGlzdFNlZ21lbnRdOwogICAgIGluc2VydExpc3RDb250cm9sLmZvbnQgPSBbTlNGb250
IHN5c3RlbUZvbnRPZlNpemU6MTVdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICBpZCBzZWdtZW50RWxlbWVudCA9IE5TQWNjZXNzaWJpbGl0eVVuaWdub3JlZERlc2Nl
bmRhbnQoaW5zZXJ0TGlzdENvbnRyb2wpOwogICAgIE5TQXJyYXkgKnNlZ21lbnRzID0gW3NlZ21l
bnRFbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlDaGls
ZHJlbkF0dHJpYnV0ZV07CiAgICAgQVNTRVJUKHNlZ21lbnRzLmNvdW50ID09IDMpOwogICAgIFtz
ZWdtZW50c1tub0xpc3RTZWdtZW50XSBhY2Nlc3NpYmlsaXR5U2V0T3ZlcnJpZGVWYWx1ZTpXZWJD
b3JlOjppbnNlcnRMaXN0VHlwZU5vbmUoKSBmb3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5RGVz
Y3JpcHRpb25BdHRyaWJ1dGVdOwogICAgIFtzZWdtZW50c1t1bm9yZGVyZWRMaXN0U2VnbWVudF0g
YWNjZXNzaWJpbGl0eVNldE92ZXJyaWRlVmFsdWU6V2ViQ29yZTo6aW5zZXJ0TGlzdFR5cGVCdWxs
ZXRlZEFjY2Vzc2liaWxpdHlUaXRsZSgpIGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlEZXNj
cmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgW3NlZ21lbnRzW29yZGVyZWRMaXN0U2VnbWVudF0gYWNj
ZXNzaWJpbGl0eVNldE92ZXJyaWRlVmFsdWU6V2ViQ29yZTo6aW5zZXJ0TGlzdFR5cGVOdW1iZXJl
ZEFjY2Vzc2liaWxpdHlUaXRsZSgpIGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlEZXNjcmlw
dGlvbkF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBz
ZWxmLnZpZXcgPSBpbnNlcnRMaXN0Q29udHJvbDsKIApAQCAtMTYzOCwxMSArMTYzNywxMCBAQCB2
b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzKCkKICAgICAgICAgaWYg
KHdlYWtUaGlzLT5tX25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcykKICAgICAgICAg
ICAgIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMgPSBbd2Vha1RoaXMtPm1fdmlldyBjb252
ZXJ0UmVjdDpbd2Vha1RoaXMtPm1fdmlldyBmcmFtZV0gdG9WaWV3Om5pbF07CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIElHTk9SRV9XQVJOSU5HX0NM
QU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIGlmIChXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICAgICAgYWNjZXNz
aWJpbGl0eVBvc2l0aW9uID0gW1t3ZWFrVGhpcy0+bV92aWV3IGFjY2Vzc2liaWxpdHlBdHRyaWJ1
dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlQb3NpdGlvbkF0dHJpYnV0ZV0gcG9pbnRWYWx1ZV07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgCiAgICAgICAg
IHdlYWtUaGlzLT5tX3BhZ2UtPndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKHZpZXdGcmFtZUlu
V2luZG93Q29vcmRpbmF0ZXMsIGFjY2Vzc2liaWxpdHlQb3NpdGlvbik7CiAgICAgfSk7CkBAIC0z
NzE3LDEwICszNzE1LDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZHJhZ2dlZEltYWdlKE5TSW1hZ2Ug
KiwgQ0dQb2ludCBlbmRQb2ludCwgTlNEcmFnT3BlcmF0aW9uIG9wZXIKIAogdm9pZCBXZWJWaWV3
SW1wbDo6c2VuZERyYWdFbmRUb1BhZ2UoQ0dQb2ludCBlbmRQb2ludCwgTlNEcmFnT3BlcmF0aW9u
IG9wZXJhdGlvbikKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJ
R05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5T
UG9pbnQgd2luZG93SW1hZ2VMb2MgPSBbW21fdmlldyB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jh
c2U6TlNQb2ludEZyb21DR1BvaW50KGVuZFBvaW50KV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgTlNQb2ludCB3aW5kb3dNb3VzZUxvYyA9IHdpbmRvd0ltYWdlTG9jOwog
CiAgICAgLy8gUHJldmVudCBxdWV1ZWQgbW91c2VEcmFnZ2VkIGV2ZW50cyBmcm9tIGNvbWluZyBh
ZnRlciB0aGUgZHJhZyBhbmQgZmFrZSBtb3VzZVVwIGV2ZW50LgpAQCAtMzk5OCwxMCArMzk5NSw5
IEBAIHZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0RHJhZyhjb25zdCBXZWJDb3JlOjpEcmFnSXRlbSYg
aXRlbSwgY29uc3QgU2hhcmVhYmxlQml0bWFwCiAgICAgLy8gVGhlIGNhbGwgYmVsb3cgY291bGQg
cmVsZWFzZSB0aGUgdmlldy4KICAgICBhdXRvIHByb3RlY3RvciA9IG1fdmlldy5nZXQoKTsKICAg
ICBhdXRvIGNsaWVudERyYWdMb2NhdGlvbiA9IGl0ZW0uZHJhZ0xvY2F0aW9uSW5XaW5kb3dDb29y
ZGluYXRlczsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVf
V0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5TUGFzdGVi
b2FyZCAqcGFzdGVib2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOk5TRHJh
Z1Bib2FyZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBpZiAoYXV0
byYgaW5mbyA9IGl0ZW0ucHJvbWlzZWRBdHRhY2htZW50SW5mbykgewogICAgICAgICBOU1N0cmlu
ZyAqdXRpVHlwZSA9IGluZm8uY29udGVudFR5cGU7CkBAIC00MDMwLDEwICs0MDI2LDkgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6c3RhcnREcmFnKGNvbnN0IFdlYkNvcmU6OkRyYWdJdGVtJiBpdGVtLCBj
b25zdCBTaGFyZWFibGVCaXRtYXAKICAgICB9CiAKICAgICBbcGFzdGVib2FyZCBzZXRTdHJpbmc6
QCIiIGZvclR5cGU6UGFzdGVib2FyZFR5cGVzOjpXZWJEdW1teVBib2FyZFR5cGVdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW21fdmlldyBkcmFnSW1hZ2U6ZHJhZ05T
SW1hZ2UuZ2V0KCkgYXQ6TlNQb2ludEZyb21DR1BvaW50KGNsaWVudERyYWdMb2NhdGlvbikgb2Zm
c2V0Ok5TWmVyb1NpemUgZXZlbnQ6bV9sYXN0TW91c2VEb3duRXZlbnQuZ2V0KCkgcGFzdGVib2Fy
ZDpwYXN0ZWJvYXJkIHNvdXJjZTptX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgc2xpZGVCYWNrOllF
U107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgbV9wYWdlLT5kaWRTdGFy
dERyYWcoKTsKIH0KIApAQCAtNDc3OSwxMSArNDc3NCwxMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpj
aGFyYWN0ZXJJbmRleEZvclBvaW50KE5TUG9pbnQgcG9pbnQsIHZvaWQoXmNvbXBsZXRpb25IYW5k
bGVyUAogCiAgICAgTlNXaW5kb3cgKndpbmRvdyA9IFttX3ZpZXcgd2luZG93XTsKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaWYgKHdpbmRvdykKICAgICAgICAgcG9p
bnQgPSBbd2luZG93IGNvbnZlcnRTY3JlZW5Ub0Jhc2U6cG9pbnRdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgIHBvaW50ID0gW21fdmlldyBjb252ZXJ0UG9pbnQ6cG9pbnQg
ZnJvbVZpZXc6bmlsXTsgIC8vIHRoZSBwb2ludCBpcyByZWxhdGl2ZSB0byB0aGUgbWFpbiBmcmFt
ZQogCiAgICAgbV9wYWdlLT5jaGFyYWN0ZXJJbmRleEZvclBvaW50QXN5bmMoV2ViQ29yZTo6SW50
UG9pbnQocG9pbnQpLCBbY29tcGxldGlvbkhhbmRsZXJdKHVpbnQ2NF90IHJlc3VsdCwgV2ViS2l0
OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KaW5k
ZXggZDQzNWUxZjM0MGNiZTI0YzdlZGE5Yjc0YTI3MmIyNGZkZDMxM2RkZC4uYjI2NWEyMTg2MmJk
YTY3YjU1NTk2YjQwZjQ2ZjRmNjQzODg3MmZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQpA
QCAtOTQsMTAgKzk0LDkgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OnBsYXRmb3JtSW5pdGlh
bGl6ZVBsdWdpblByb2Nlc3MoUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGEKIGJvb2wgUGx1Z2luUHJv
Y2Vzc1Byb3h5OjpnZXRQbHVnaW5Qcm9jZXNzU2VyaWFsTnVtYmVyKFByb2Nlc3NTZXJpYWxOdW1i
ZXImIHBsdWdpblByb2Nlc3NTZXJpYWxOdW1iZXIpCiB7CiAgICAgcGlkX3QgcGx1Z2luUHJvY2Vz
c1BJRCA9IHByb2Nlc3NJZGVudGlmaWVyKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKICAgICByZXR1cm4gR2V0UHJvY2Vzc0ZvclBJRChwbHVnaW5Qcm9jZXNzUElELCAmcGx1
Z2luUHJvY2Vzc1NlcmlhbE51bWJlcikgPT0gbm9FcnI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjptYWtlUGx1Z2luUHJvY2Vz
c1RoZUZyb250UHJvY2VzcygpCkBAIC0xMDYsMjAgKzEwNSwxOCBAQCB2b2lkIFBsdWdpblByb2Nl
c3NQcm94eTo6bWFrZVBsdWdpblByb2Nlc3NUaGVGcm9udFByb2Nlc3MoKQogICAgIGlmICghZ2V0
UGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJlcihwbHVnaW5Qcm9jZXNzU2VyaWFsTnVtYmVyKSkKICAg
ICAgICAgcmV0dXJuOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBT
ZXRGcm9udFByb2Nlc3MoJnBsdWdpblByb2Nlc3NTZXJpYWxOdW1iZXIpOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogfQogCiB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6bWFrZVVJ
UHJvY2Vzc1RoZUZyb250UHJvY2VzcygpCiB7CiAgICAgUHJvY2Vzc1NlcmlhbE51bWJlciBwcm9j
ZXNzU2VyaWFsTnVtYmVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
R2V0Q3VycmVudFByb2Nlc3MoJnByb2Nlc3NTZXJpYWxOdW1iZXIpOwogICAgIFNldEZyb250UHJv
Y2VzcygmcHJvY2Vzc1NlcmlhbE51bWJlcik7ICAgICAgICAgICAgCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpzZXRGdWxsc2Ny
ZWVuV2luZG93SXNTaG93aW5nKGJvb2wgZnVsbHNjcmVlbldpbmRvd0lzU2hvd2luZykKQEAgLTE1
MiwxMCArMTQ5LDkgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmV4aXRGdWxsc2NyZWVuKCkK
IHsKICAgICAvLyBJZiB0aGUgcGx1Zy1pbiBob3N0IGlzIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9u
IHRoZW4gd2Ugc2hvdWxkIGJyaW5nIG91cnNlbHZlcyB0byB0aGUgZnJvbnQgd2hlbiBpdCBleGl0
cyBmdWxsLXNjcmVlbiBtb2RlLgogICAgIFByb2Nlc3NTZXJpYWxOdW1iZXIgZnJvbnRQcm9jZXNz
U2VyaWFsTnVtYmVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgR2V0
RnJvbnRQcm9jZXNzKCZmcm9udFByb2Nlc3NTZXJpYWxOdW1iZXIpOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogCiAgICAgLy8gVGhlIFVJIHByb2Nlc3MgbXVzdCBiZSB0aGUgZnJv
bnQgcHJvY2VzcyBpbiBvcmRlciB0byBjaGFuZ2UgdGhlIHByZXNlbnRhdGlvbiBtb2RlLgogICAg
IG1ha2VVSVByb2Nlc3NUaGVGcm9udFByb2Nlc3MoKTsKQEAgLTE2OCwxNSArMTY0LDEzIEBAIHZv
aWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpleGl0RnVsbHNjcmVlbigpCiAgICAgLy8gSWYgdGhlIHBs
dWctaW4gcHJvY2VzcyB3YXMgbm90IHRoZSBmcm9udCBwcm9jZXNzLCBzd2l0Y2ggYmFjayB0byB0
aGUgcHJldmlvdXMgZnJvbnQgcHJvY2Vzcy4KICAgICAvLyAoT3RoZXJ3aXNlIHdlJ2xsIGtlZXAg
dGhlIFVJIHByb2Nlc3MgYXMgdGhlIGZyb250IHByb2Nlc3MpLgogICAgIEJvb2xlYW4gaXNQbHVn
aW5Qcm9jZXNzRnJvbnRQcm9jZXNzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgU2FtZVByb2Nlc3MoJmZyb250UHJvY2Vzc1NlcmlhbE51bWJlciwgJnBsdWdpblByb2Nl
c3NTZXJpYWxOdW1iZXIsICZpc1BsdWdpblByb2Nlc3NGcm9udFByb2Nlc3MpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGlmICghaXNQbHVnaW5Qcm9jZXNzRnJvbnRQcm9j
ZXNzKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIFNl
dEZyb250UHJvY2VzcygmZnJvbnRQcm9jZXNzU2VyaWFsTnVtYmVyKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tCmlu
ZGV4IGIzNjJkNTdiOWM0M2E4NWYzNjZlMzNiNmE3ZDQ5Mjk5ZjZhOWQ0ZjMuLjBhOGViMmY5YWU3
NDQ4OGU0ODIyNGY1MmZiMjQ1YjhjMDQ0YmI5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tCkBA
IC0zNywxMiArMzcsMTEgQEAKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAiV2Vi
UHJvY2Vzc1Byb3h5LmgiCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0lH
Tk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
CiAKICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
K0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKQogCiBzdGF0aWMgY29uc3QgZmxvYXQgc21hcnRNYWduaWZpY2F0aW9uUGFuU2Nyb2xs
VGhyZXNob2xkWm9vbWVkT3V0ID0gNjA7CiBzdGF0aWMgY29uc3QgZmxvYXQgc21hcnRNYWduaWZp
Y2F0aW9uUGFuU2Nyb2xsVGhyZXNob2xkSVBob25lID0gMTAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KaW5kZXgg
ODhkOTM5NzcxMzAwZmMwOWFjNTE4NmFkZjEzMTMwMjg0MTA3ZDAxNC4uYzljZDAzOGE0YzAwNDgw
NTI5NzlmZTM3ZDlkNGU3NzJiODcyMGIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCkBAIC01Myw4ICs1Myw3
IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5o
PgogI2ltcG9ydCA8V2ViS2l0L1dlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyLmg+CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9M
RVZFTCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKIEBpbnRlcmZhY2UgV0tHZW9sb2Nh
dGlvblByb3ZpZGVySU9TIChfV0tHZW9sb2NhdGlvbkNvcmVMb2NhdGlvbkxpc3RlbmVyKSA8X1dL
R2VvbG9jYXRpb25Db3JlTG9jYXRpb25MaXN0ZW5lcj4KIEBlbmQKQEAgLTM1NCw2ICszNTMsNiBA
QCBzdGF0aWMgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koV0tHZW9sb2NhdGlvbk1hbmFnZXJS
ZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCBibwogfQogQGVuZAogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIikKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0xlZ2FjeVBERlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tMZWdhY3lQREZWaWV3Lm1tCmluZGV4IDBiNWQ5ZDZjNjQ2
YjQyODJjMGZjYjczZTFjYmZkMGNhMzRmMzVhYTYuLjQzNzNjMDMxYzI4NWZmZThjNDk1MDY1ZTE4
ZjA4MWRkMWM4Nzk2MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0xlZ2FjeVBERlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTGVn
YWN5UERGVmlldy5tbQpAQCAtNTEsOCArNTEsNyBAQAogCiAvLyBBbGwgb2YgVUlQREZQYWdlKiBh
cmUgZGVwcmVjYXRlZCwgc28ganVzdCBpZ25vcmUgZGVwcmVjYXRlZCBkZWNsYXJhdGlvbnMKIC8v
IGluIHRoaXMgZmlsZSB1bnRpbCB3ZSBzd2l0Y2ggb2ZmIHRoZW0uCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiBjb25zdCBDR0Zsb2F0IHBkZlBhZ2VNYXJnaW4gPSA4
OwogY29uc3QgQ0dGbG9hdCBwZGZNaW5pbXVtWm9vbVNjYWxlID0gMTsKQEAgLTg1Nyw2ICs4NTYs
NiBAQCBzdGF0aWMgTlNTdHJpbmdDb21wYXJlT3B0aW9ucyBzdHJpbmdDb21wYXJlT3B0aW9ucyhf
V0tGaW5kT3B0aW9ucyBvcHRpb25zKQogCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPU01BQykKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xF
VkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKICNlbmRpZiAvLyBFTkFCTEUo
V0tMRUdBQ1lQREZWSUVXKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLUERGUGFnZU51bWJlckluZGljYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3IubW0KaW5kZXggOTc5YjMwZDM4MTRiMTMwNmMwYWFi
MTk1NmVjMzdhM2RhNjYwNjM4Yi4uNjBiOTM0NTI1NDhmYjVlMmQ3ZDZhODM3NDdjYWRjYTY3YmE0
ZTU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERGUGFnZU51
bWJlckluZGljYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZQ
YWdlTnVtYmVySW5kaWNhdG9yLm1tCkBAIC0xODMsMTAgKzE4Myw5IEBAIGNvbnN0IE5TVGltZUlu
dGVydmFsIGluZGljYXRvck1vdmVEdXJhdGlvbiA9IDAuMzsKICAgICBDR0NvbnRleHRTYXZlR1N0
YXRlKGNvbnRleHQpOwogICAgIENHQ29udGV4dEFkZFJlY3QoY29udGV4dCwgY29ybmVySW1hZ2VC
b3VuZHMpOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBVSUJlemll
clBhdGggKmNvcm5lclBhdGggPSBbVUlCZXppZXJQYXRoIGJlemllclBhdGhXaXRoUm91bmRlZFJl
Y3Q6Y29ybmVySW1hZ2VCb3VuZHMgYnlSb3VuZGluZ0Nvcm5lcnM6KFVJUmVjdENvcm5lcilVSUFs
bENvcm5lcnMgY29ybmVyUmFkaWk6Q0dTaXplTWFrZShpbmRpY2F0b3JDb3JuZXJSYWRpdXMsIGlu
ZGljYXRvckNvcm5lclJhZGl1cyldOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgIENHQ29udGV4dEFkZFBhdGgoY29udGV4dCwgW2Nvcm5lclBhdGggQ0dQYXRoXSk7CiAgICAg
Q0dDb250ZXh0RU9DbGlwKGNvbnRleHQpOwogICAgIENHQ29udGV4dEZpbGxSZWN0KGNvbnRleHQs
IGNvcm5lckltYWdlQm91bmRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0FpclBsYXlSb3V0ZVBpY2tlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9mb3Jtcy9XS0FpclBsYXlSb3V0ZVBpY2tlci5tbQppbmRleCA3NGJkMjMyZDYyMmVl
ODFlMDdiZjQ0OWUzMDg3YTI1OTdmYzcyOGZjLi5mMmEwMzE2MDVlMDkzMzhlNGFjNTBlYjgwNGRl
OTI5YTE0NDQwMDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9y
bXMvV0tBaXJQbGF5Um91dGVQaWNrZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL2Zvcm1zL1dLQWlyUGxheVJvdXRlUGlja2VyLm1tCkBAIC0zOSw4ICszOSw3IEBACiAjaW1w
b3J0ICJXS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5o
IgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19D
TEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiBTT0ZUX0xJTktf
RlJBTUVXT1JLKE1lZGlhUGxheWVyKQogU09GVF9MSU5LX0NMQVNTKE1lZGlhUGxheWVyLCBNUEFW
Um91dGluZ0NvbnRyb2xsZXIpCkBAIC0xNjAsNyArMTU5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKIAogQGVuZAogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FS
TklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAog
I2Vsc2UgCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9X
S0ZpbGVVcGxvYWRQYW5lbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9X
S0ZpbGVVcGxvYWRQYW5lbC5tbQppbmRleCA4MmQ2ZjJhMGY1YTkwZjBkNGY5NWJiNGZmYmIzZmU4
YzFiYmQ4Njc5Li4zZTQ1YzA1NTk0NzIxZjYxYzJhYzU3YmJjMGMwNzNlMDU2ZmZmMjg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFu
ZWwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9h
ZFBhbmVsLm1tCkBAIC00Niw4ICs0Niw3IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5H
X1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKIHN0YXRpYyBpbmxpbmUg
VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJDYW1lcmFEZXZpY2UgY2FtZXJhRGV2aWNlRm9yTWVkaWFD
YXB0dXJlVHlwZShXZWJDb3JlOjpNZWRpYUNhcHR1cmVUeXBlIG1lZGlhQ2FwdHVyZVR5cGUpCiB7
CkBAIC0xNjAsMTAgKzE1OSw5IEBAIHN0YXRpYyBpbmxpbmUgVUlJbWFnZSAqY2FtZXJhSWNvbigp
CiAgICAgQk9PTCBfdXNpbmdDYW1lcmE7CiAgICAgUmV0YWluUHRyPFVJSW1hZ2VQaWNrZXJDb250
cm9sbGVyPiBfaW1hZ2VQaWNrZXI7CiAgICAgUmV0YWluUHRyPFVJVmlld0NvbnRyb2xsZXI+IF9w
cmVzZW50YXRpb25WaWV3Q29udHJvbGxlcjsgLy8gaVBob25lIGFsd2F5cy4gaVBhZCBmb3IgRnVs
bHNjcmVlbiBDYW1lcmEuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBS
ZXRhaW5QdHI8VUlQb3BvdmVyQ29udHJvbGxlcj4gX3ByZXNlbnRhdGlvblBvcG92ZXI7IC8vIGlQ
YWQgZm9yIGFjdGlvbiBzaGVldCBhbmQgUGhvdG8gTGlicmFyeS4KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICBSZXRhaW5QdHI8VUlEb2N1bWVudE1lbnVWaWV3Q29udHJvbGxl
cj4gX2RvY3VtZW50TWVudUNvbnRyb2xsZXI7CiAgICAgV2ViQ29yZTo6TWVkaWFDYXB0dXJlVHlw
ZSBfbWVkaWFDYXB0dXJlVHlwZTsKIH0KQEAgLTQ1MCwxMCArNDQ4LDkgQEAgc3RhdGljIE5TQXJy
YXkgKlVUSXNGb3JNSU1FVHlwZXMoTlNBcnJheSAqbWltZVR5cGVzKQogewogICAgIFtzZWxmIF9k
aXNtaXNzRGlzcGxheUFuaW1hdGVkOmFuaW1hdGVkXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgX3ByZXNlbnRhdGlvblBvcG92ZXIgPSBhZG9wdE5TKFtbVUlQb3Bv
dmVyQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6Y29udGVu
dFZpZXdDb250cm9sbGVyXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
W19wcmVzZW50YXRpb25Qb3BvdmVyIHNldERlbGVnYXRlOnNlbGZdOwogICAgIFtfcHJlc2VudGF0
aW9uUG9wb3ZlciBwcmVzZW50UG9wb3ZlckZyb21SZWN0OkNHUmVjdEludGVncmFsKENHUmVjdE1h
a2UoX2ludGVyYWN0aW9uUG9pbnQueCwgX2ludGVyYWN0aW9uUG9pbnQueSwgMSwgMSkpIGluVmll
dzpfdmlldyBwZXJtaXR0ZWRBcnJvd0RpcmVjdGlvbnM6VUlQb3BvdmVyQXJyb3dEaXJlY3Rpb25B
bnkgYW5pbWF0ZWQ6YW5pbWF0ZWRdOwogfQpAQCAtNzIwLDYgKzcxNyw2IEBAIHN0YXRpYyBOU0Fy
cmF5ICpVVElzRm9yTUlNRVR5cGVzKE5TQXJyYXkgKm1pbWVUeXBlcykKIAogQGVuZAogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxf
RU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElP
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1D
b2xvckNvbnRyb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3Jt
Q29sb3JDb250cm9sLm1tCmluZGV4IDYwOWJhYzMxZjU2YWE1YWFlYmYwM2MyZTMxOGMxNTU0YTU4
ZTk1YTcuLjM4YzA0MDAzYWViYTFlOTQyYTNkZjk1M2Q0Y2QxMjQwNjdiMGNhNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Db2xvckNvbnRyb2wu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29u
dHJvbC5tbQpAQCAtNjYsMTAgKzY2LDkgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQgY29sb3JQb3Bv
dmVyQ29ybmVyUmFkaXVzID0gOTsKICAgICBbcG9wb3ZlclZpZXdDb250cm9sbGVyIHNldFZpZXc6
Y29udHJvbENvbnRhaW5lclZpZXcuZ2V0KCldOwogICAgIFtwb3BvdmVyVmlld0NvbnRyb2xsZXIg
c2V0UHJlZmVycmVkQ29udGVudFNpemU6W2NvbnRyb2xDb250YWluZXJWaWV3IHNpemVdXTsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NM
QU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgUmV0YWluUHRyPFVJUG9wb3Zl
ckNvbnRyb2xsZXI+IGNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbVUlQb3BvdmVyQ29udHJvbGxlciBh
bGxvY10gaW5pdFdpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6cG9wb3ZlclZpZXdDb250cm9sbGVy
LmdldCgpXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW3NlbGYgc2V0
UG9wb3ZlckNvbnRyb2xsZXI6Y29udHJvbGxlci5nZXQoKV07CiAKICAgICByZXR1cm4gc2VsZjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1
dENvbnRyb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5w
dXRDb250cm9sLm1tCmluZGV4IDFjZDYyZTNiYjUxODEzYjcxNGUzNGEzY2ZiZWI3M2FiYWFhOTBj
ZTMuLmY5Mjc4M2E3Y2IwNzFhMGJiYjIzNDhmOTcwNzRhZGMzMDQwY2NhY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29udHJv
bC5tbQpAQCAtMzMwLDE2ICszMzAsMTQgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtN
aWxsaXNlY29uZHNQZXJTZWNvbmQgPSAxMDAwOwogICAgIFJldGFpblB0cjxVSU5hdmlnYXRpb25D
b250cm9sbGVyPiBuYXZpZ2F0aW9uQ29udHJvbGxlciA9IGFkb3B0TlMoW1tVSU5hdmlnYXRpb25D
b250cm9sbGVyIGFsbG9jXSBpbml0V2l0aFJvb3RWaWV3Q29udHJvbGxlcjpfdmlld0NvbnRyb2xs
ZXIuZ2V0KCldKTsKICAgICBVSU5hdmlnYXRpb25JdGVtICpuYXZpZ2F0aW9uSXRlbSA9IG5hdmln
YXRpb25Db250cm9sbGVyLmdldCgpLm5hdmlnYXRpb25CYXIudG9wSXRlbTsKICAgICBOU1N0cmlu
ZyAqY2xlYXJTdHJpbmcgPSBXRUJfVUlfU1RSSU5HX0tFWSgiQ2xlYXIiLCAiQ2xlYXIgQnV0dG9u
IERhdGUgUG9wb3ZlciIsICJDbGVhciBidXR0b24gaW4gZGF0ZSBpbnB1dCBwb3BvdmVyIik7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBVSUJhckJ1dHRvbkl0ZW0gKmNs
ZWFyQnV0dG9uID0gW1tbVUlCYXJCdXR0b25JdGVtIGFsbG9jXSBpbml0V2l0aFRpdGxlOmNsZWFy
U3RyaW5nIHN0eWxlOlVJQmFyQnV0dG9uSXRlbVN0eWxlQm9yZGVyZWQgdGFyZ2V0OnNlbGYgYWN0
aW9uOkBzZWxlY3RvcihjbGVhcjopXSBhdXRvcmVsZWFzZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgW25hdmlnYXRpb25JdGVtIHNldFJpZ2h0QmFyQnV0dG9uSXRlbTpj
bGVhckJ1dHRvbl07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJ
R05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFJl
dGFpblB0cjxVSVBvcG92ZXJDb250cm9sbGVyPiBjb250cm9sbGVyID0gYWRvcHROUyhbW1VJUG9w
b3ZlckNvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoQ29udGVudFZpZXdDb250cm9sbGVyOm5hdmln
YXRpb25Db250cm9sbGVyLmdldCgpXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgW3NlbGYgc2V0UG9wb3ZlckNvbnRyb2xsZXI6Y29udHJvbGxlci5nZXQoKV07CiAKICAg
ICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9m
b3Jtcy9XS0Zvcm1Qb3BvdmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMv
V0tGb3JtUG9wb3Zlci5oCmluZGV4IDBlYzhjNjU1Mzg3OWFiZGM1YjkyMTBmOTU3ODI0YjA3ZTBi
MGZkZWIuLjQwMjEyYmMwYjRkYWJkODc4YmI3YjczNTA5NDgxNGVkMTMxNWVmMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIuaApAQCAt
NDAsMTAgKzQwLDkgQEAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tDb250ZW50
VmlldyAqdmlldzsKIAogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQ0dQb2ludCBwcmVz
ZW50YXRpb25Qb2ludDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0lHTk9S
RV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBVSVBvcG92ZXJDb250cm9sbGVyICpwb3BvdmVy
Q29udHJvbGxlcjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5H
X0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogQHByb3Bl
cnR5IChub25hdG9taWMsIGFzc2lnbikgaWQgPFdLUm90YXRpbmdQb3BvdmVyRGVsZWdhdGU+IGRp
c21pc3Npb25EZWxlZ2F0ZTsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvZm9ybXMvV0tGb3JtUG9wb3Zlci5tbQppbmRleCBiZTJmMGQyY2FkNGZmOGMyZmQ0MTgx
NTYzYjdlNmRiNmRjYjhlMmEwLi5kOGZkMWM4ZmZhMTEyMGNjM2ZmM2Q0MzIzZTFhZjMzZmU5Yzc5
OTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3Jt
UG9wb3Zlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3Jt
UG9wb3Zlci5tbQpAQCAtMzYsOCArMzYsNyBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFO
R19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiBAaW1wbGVtZW50YXRp
b24gV0tGb3JtUm90YXRpbmdBY2Nlc3NvcnlQb3BvdmVyCiAKQEAgLTE3OCw2ICsxNzcsNiBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKQogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVNlbGVjdFBvcG92ZXIubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtU2VsZWN0UG9wb3Zlci5tbQpp
bmRleCA1N2JmYTQwNzA0YTIwZTMyZWVjYjhmZTFjNzZjMmM1MGU4ZDhmOTA0Li5mNDgxZTQxOTU0
MWFkZmE5MDU4MWIwMzg3NTQ3NmRiZWExOTRjYmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtU2VsZWN0UG9wb3Zlci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtU2VsZWN0UG9wb3Zlci5tbQpAQCAtNDAx
LDEwICs0MDEsOSBAQCBzdGF0aWMgTlNTdHJpbmcgKnN0cmluZ1dpdGhXcml0aW5nRGlyZWN0aW9u
KE5TU3RyaW5nICpzdHJpbmcsIFVJVGV4dFdyaXRpbmdEaXJlYwogICAgIGVsc2UKICAgICAgICAg
cG9wb3ZlclZpZXdDb250cm9sbGVyLnByZWZlcnJlZENvbnRlbnRTaXplID0gcG9wb3ZlclNpemU7
CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBzZWxmLnBvcG92
ZXJDb250cm9sbGVyID0gW1tbVUlQb3BvdmVyQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhDb250
ZW50Vmlld0NvbnRyb2xsZXI6cG9wb3ZlclZpZXdDb250cm9sbGVyXSBhdXRvcmVsZWFzZV07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5E
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBbbmF2Q29udHJvbGxlciByZWxl
YXNlXTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50
SW1wbE1hYy5tbQppbmRleCA4YzIzYjI4YjgyMGI1YmUxZTc0MWIzMTdlM2QyMDlmZmE4MTYxZDBj
Li5hMzU2MTBhZWM0MWQ4MTFhMTM4MjNkYzc2ZDZiODE3ZWI3MzQwOWEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC00MTksMTAg
KzQxOSw5IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnBpbm5lZFN0YXRlRGlkQ2hhbmdlKCkKICAg
ICAKIEludFBvaW50IFBhZ2VDbGllbnRJbXBsOjpzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBv
aW50JiBwb2ludCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJ
R05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5T
UG9pbnQgd2luZG93Q29vcmQgPSBbW21fdmlldyB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6
cG9pbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIHJldHVybiBJbnRQ
b2ludChbbV92aWV3IGNvbnZlcnRQb2ludDp3aW5kb3dDb29yZCBmcm9tVmlldzpuaWxdKTsKIH0K
ICAgICAKQEAgLTQzMCwxMCArNDI5LDkgQEAgSW50UmVjdCBQYWdlQ2xpZW50SW1wbDo6cm9vdFZp
ZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIE5TUmVjdCB0ZW1wUmVjdCA9
IHJlY3Q7CiAgICAgdGVtcFJlY3QgPSBbbV92aWV3IGNvbnZlcnRSZWN0OnRlbXBSZWN0IHRvVmll
dzpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgdGVtcFJlY3Qu
b3JpZ2luID0gW1ttX3ZpZXcgd2luZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOnRlbXBSZWN0Lm9y
aWdpbl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgcmV0dXJuIGVuY2xv
c2luZ0ludFJlY3QodGVtcFJlY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCmluZGV4IDVh
NmJmYzMzY2VmMmQyMDZhOWUwNmQxNWRkZjFjODdjYzM3MTI0NTYuLmYwMzJjOGEyODM3NjEzMWUy
ZTM0MWZkNjYxZDVmOTkwODg3Yjk5ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCkBAIC0yNjUs
MTIgKzI2NSwxMSBAQCBzdGF0aWMgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZUltYWdlV2l0
aENvcGllZERhdGEoQ0dJbWFnZVJlZiBzb3VyY2VJbWFnZSkKICAgICAvLyBmdXR1cmUgb3Zlcmhl
YWQuCiAgICAgd2ViVmlld0NvbnRlbnRzID0gY3JlYXRlSW1hZ2VXaXRoQ29waWVkRGF0YSh3ZWJW
aWV3Q29udGVudHMuZ2V0KCkpOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
ICAgICAvLyBTY3JlZW4gdXBkYXRlcyB0byBiZSByZS1lbmFibGVkIGluIF9zdGFydEVudGVyRnVs
bFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjoKICAgICBOU0Rpc2FibGVTY3JlZW5VcGRhdGVz
KCk7CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6Tk9dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgW3NlbGYgX21hbmFnZXJdLT5zYXZlU2Nyb2xsUG9z
aXRpb24oKTsKICAgICBfc2F2ZWRUb3BDb250ZW50SW5zZXQgPSBfcGFnZS0+dG9wQ29udGVudElu
c2V0KCk7CkBAIC0zMjUsMTEgKzMyNCwxMCBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9X
aWR0aCA9IDQ4MCArIDIwICsgMjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogICAg
IGlmIChjb21wbGV0ZWQpIHsKICAgICAgICAgX2Z1bGxTY3JlZW5TdGF0ZSA9IEluRnVsbFNjcmVl
bjsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBJR05PUkVf
V0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAvLyBT
Y3JlZW4gdXBkYXRlcyB0byBiZSByZS1lbmFibGVkIHRhIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQg
YmxvY2suCiAgICAgICAgIE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIFtzZWxmIF9tYW5hZ2VyXS0+ZGlkRW50ZXJG
dWxsU2NyZWVuKCk7CiAgICAgICAgIFtzZWxmIF9tYW5hZ2VyXS0+c2V0QW5pbWF0aW5nRnVsbFNj
cmVlbihmYWxzZSk7CiAKQEAgLTM0NywxMCArMzQ1LDkgQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1p
blZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBt
ZWQKICAgICAgICAgLy8gVHJhbnNpdGlvbiB0byBmdWxsc2NyZWVuIGZhaWxlZC4gQ2xlYW4gdXAu
CiAgICAgICAgIF9mdWxsU2NyZWVuU3RhdGUgPSBOb3RJbkZ1bGxTY3JlZW47CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkco
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgW1tzZWxmIHdpbmRvd10gc2V0
QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgICAgIF9wYWdlLT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzKGZhbHNlKTsKIAogICAg
ICAgICBOU1Jlc3BvbmRlciAqZmlyc3RSZXNwb25kZXIgPSBbW3NlbGYgd2luZG93XSBmaXJzdFJl
c3BvbmRlcl07CkBAIC0zNjksMTAgKzM2Niw5IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBtaW5WaWRl
b1dpZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTogS2VlcCBpbiBzeW5jIHdpdGggbWVkCiAg
ICAgICAgIFtzZWxmIF9tYW5hZ2VyXS0+c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihmYWxzZSk7CiAg
ICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBOU0VuYWJsZVNj
cmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVf
V0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIGlm
IChfcmVxdWVzdGVkRXhpdEZ1bGxTY3JlZW4pIHsKICAgICAgICAgX3JlcXVlc3RlZEV4aXRGdWxs
U2NyZWVuID0gTk87CkBAIC00MDIsMTIgKzM5OCwxMSBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWlu
VmlkZW9XaWR0aCA9IDQ4MCArIDIwICsgMjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1l
ZAogCiAgICAgW193ZWJWaWV3UGxhY2Vob2xkZXIgc2V0RXhpdFdhcm5pbmdWaXNpYmxlOk5PXTsK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgLy8gU2NyZWVuIHVwZGF0
ZXMgdG8gYmUgcmUtZW5hYmxlZCBpbiBfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhE
dXJhdGlvbjogb3IgYmVnYW5FeGl0RnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6ZmluYWxGcmFt
ZToKICAgICBOU0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0
QXV0b2Rpc3BsYXk6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAg
Ly8gU2VlIHRoZSByZWxhdGVkIGNvbW1lbnQgaW4gZW50ZXJGdWxsU2NyZWVuOgogICAgIC8vIFdl
IHdpbGwgcmVzdW1lIHRoZSBub3JtYWwgYmVoYXZpb3IgaW4gX3N0YXJ0RXhpdEZ1bGxTY3JlZW5B
bmltYXRpb25XaXRoRHVyYXRpb246CkBAIC00MzcsMTAgKzQzMiw5IEBAIHN0YXRpYyBjb25zdCBm
bG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTogS2VlcCBpbiBzeW5j
IHdpdGggbWVkCiAgICAgICAgIC8vIEJlY2F1c2Ugd2UgYXJlIGJyZWFraW5nIHRoZSBub3JtYWwg
YW5pbWF0aW9uIHBhdHRlcm4sIHJlLWVuYWJsZSBzY3JlZW4gdXBkYXRlcwogICAgICAgICAvLyBh
cyBleGl0RnVsbFNjcmVlbiBoYXMgZGlzYWJsZWQgdGhlbSwgYnV0IF9zdGFydEV4aXRGdWxsU2Ny
ZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOgogICAgICAgICAvLyB3aWxsIG5ldmVyIGJlIGNhbGxl
ZC4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgTlNFbmFi
bGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgIH0KIAogICAgIFtbc2VsZiB3aW5kb3ddIGV4aXRGdWxsU2NyZWVuTW9kZTpzZWxmXTsKQEAg
LTQ2MywyMCArNDU3LDE4IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgw
ICsgMjAgKyAyMDsgLy8gTm90ZTogS2VlcCBpbiBzeW5jIHdpdGggbWVkCiAKICAgICBOU1Jlc3Bv
bmRlciAqZmlyc3RSZXNwb25kZXIgPSBbW3NlbGYgd2luZG93XSBmaXJzdFJlc3BvbmRlcl07CiAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19D
TEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIC8vIFNjcmVlbiB1cGRhdGVz
IHRvIGJlIHJlLWVuYWJsZWQgaW4gY29tcGxldGVGaW5pc2hFeGl0RnVsbFNjcmVlbkFuaW1hdGlv
bkFmdGVyUmVwYWludC4KICAgICBOU0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgX3BhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVw
ZGF0ZXModHJ1ZSk7CiAgICAgW1tzZWxmIHdpbmRvd10gb3JkZXJPdXQ6c2VsZl07CiAgICAgTlNW
aWV3ICpjb250ZW50VmlldyA9IFtbc2VsZiB3aW5kb3ddIGNvbnRlbnRWaWV3XTsKICAgICBjb250
ZW50Vmlldy5oaWRkZW4gPSBZRVM7CiAgICAgW19iYWNrZ3JvdW5kVmlldy5nZXQoKS5sYXllciBy
ZW1vdmVBbGxBbmltYXRpb25zXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgIFtbX3dlYlZpZXdQbGFjZWhvbGRlciB3aW5kb3ddIHNldEF1dG9kaXNwbGF5Ok5PXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQo
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIFtzZWxmIF9yZXBsYWNlVmlldzpf
d2ViVmlld1BsYWNlaG9sZGVyLmdldCgpIHdpdGg6X3dlYlZpZXddOwogICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwpAQCAtNTA5LDE2ICs1MDEsMTQgQEAgc3RhdGljIGNvbnN0IGZsb2F0
IG1pblZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0
aCBtZWQKIC0gKHZvaWQpY29tcGxldGVGaW5pc2hFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbkFmdGVy
UmVwYWludAogewogICAgIF9yZXBhaW50Q2FsbGJhY2sgPSBudWxscHRyOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW1tfd2ViVmlldyB3aW5kb3ddIHNldEF1dG9kaXNw
bGF5OllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW1tfd2ViVmll
dyB3aW5kb3ddIGRpc3BsYXlJZk5lZWRlZF07CiAgICAgX3BhZ2UtPnNldFN1cHByZXNzVmlzaWJp
bGl0eVVwZGF0ZXMoZmFsc2UpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgTlNFbmFibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiB9CiAKIC0gKHZvaWQpcGVyZm9ybUNsb3NlOihpZClzZW5kZXIKQEAgLTcyNywxNSArNzE3
LDEzIEBAIHN0YXRpYyBDQUFuaW1hdGlvbiAqZmFkZUFuaW1hdGlvbihDRlRpbWVJbnRlcnZhbCBk
dXJhdGlvbiwgQW5pbWF0aW9uRGlyZWN0aW9uIGRpCiAgICAgW3dpbmRvdyBtYWtlRmlyc3RSZXNw
b25kZXI6X3dlYlZpZXddOwogCiAgICAgX3BhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0
ZXMoZmFsc2UpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW1tzZWxm
IHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKICAgICBbW3NlbGYgd2luZG93XSBkaXNwbGF5SWZOZWVkZWRdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgTlNFbmFibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIC0gKHZvaWQpX3N0YXJ0RXhpdEZ1bGxT
Y3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246KE5TVGltZUludGVydmFsKWR1cmF0aW9uCkBAIC03
NTgsMTUgKzc0NiwxMyBAQCBzdGF0aWMgQ0FBbmltYXRpb24gKmZhZGVBbmltYXRpb24oQ0ZUaW1l
SW50ZXJ2YWwgZHVyYXRpb24sIEFuaW1hdGlvbkRpcmVjdGlvbiBkaQogICAgIFtfYmFja2dyb3Vu
ZFZpZXcuZ2V0KCkubGF5ZXIgYWRkQW5pbWF0aW9uOmZhZGVBbmltYXRpb24oZHVyYXRpb24sIEFu
aW1hdGVPdXQpIGZvcktleTpAImZ1bGxzY3JlZW4iXTsKIAogICAgIF9wYWdlLT5zZXRTdXBwcmVz
c1Zpc2liaWxpdHlVcGRhdGVzKGZhbHNlKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1dG9kaXNwbGF5OllFU107Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW1tzZWxmIHdpbmRvd10gZGlzcGxheUlmTmVlZGVk
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklO
R19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5TRW5hYmxlU2NyZWVu
VXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJO
SU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQogCiAtICh2b2lk
KV93YXRjaGRvZ1RpbWVyRmlyZWQ6KE5TVGltZXIgKil0aW1lcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCmluZGV4IDFmZGE3ZGJlNWRmMWZmN2RiMTc3
MGNhZmIxNDBkZmY1NjBmNWEzOGMuLjcxYjVhYTRmNTgwYTIyZGJjOGY1YmMzYWQ5NjAwZDA2MWZl
YWJiNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5n
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcu
bW0KQEAgLTc4LDE2ICs3OCwxNCBAQCBzdGF0aWMgQk9PTCBpc0ZvcmNpbmdQcmV2aWV3VXBkYXRl
OwogCiAtICh2b2lkKV9zZXRBdXRvZGlzcGxheTooQk9PTCluZXdTdGF0ZQogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaWYgKCFuZXdTdGF0ZSAmJiBbW193a1ZpZXcg
d2luZG93XSBpc0F1dG9kaXNwbGF5XSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAg
ICAgICAgW193a1ZpZXcgZGlzcGxheUlmTmVlZGVkXTsKKyAgICBJR05PUkVfV0FSTklOR19DTEFO
R19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtbX3drVmlldyB3aW5kb3ddIHNldEF1dG9kaXNwbGF5
Om5ld1N0YXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FS
TklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIC8vIEZv
ciBzb21lIHJlYXNvbiwgcGFpbnRpbmcgZG9lc24ndCBoYXBwZW4gZm9yIGEgbG9uZyB0aW1lIHdp
dGhvdXQgdGhpcyBjYWxsLCA8cmRhcjovL3Byb2JsZW0vODk3NTIyOT4uCiAgICAgaWYgKG5ld1N0
YXRlKQpAQCAtNDU0LDE5ICs0NTIsMTcgQEAgc3RhdGljIE5TU3RyaW5nICpsaW5rRGVzdGluYXRp
b25OYW1lKFBERkRvY3VtZW50ICpkb2N1bWVudCwgUERGRGVzdGluYXRpb24gKmRlc3QKICAgICB9
CiAKICAgICBOU0dyYXBoaWNzQ29udGV4dCAqbnNHcmFwaGljc0NvbnRleHQgPSBbTlNHcmFwaGlj
c0NvbnRleHQgY3VycmVudENvbnRleHRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0NvbnRleHRSZWY+
KFtuc0dyYXBoaWNzQ29udGV4dCBncmFwaGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiKTsKIAogICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY29udGV4dCk7CiAgICAgQ0dD
b250ZXh0VHJhbnNsYXRlQ1RNKGNvbnRleHQsIHBvaW50LngsIHBvaW50LnkpOwogICAgIENHQ29u
dGV4dFNjYWxlQ1RNKGNvbnRleHQsIF90b3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIC1fdG90
YWxTY2FsZUZhY3RvckZvclByaW50aW5nKTsKICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29u
dGV4dCwgMCwgLVtwZGZQYWdlIGJvdW5kc0ZvckJveDprUERGRGlzcGxheUJveE1lZGlhQm94XS5z
aXplLmhlaWdodCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbcGRm
UGFnZSBkcmF3V2l0aEJveDprUERGRGlzcGxheUJveE1lZGlhQm94XTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IENH
Q29udGV4dEdldENUTShjb250ZXh0KTsKIApAQCAtNDc5LDEwICs0NzUsOSBAQCBzdGF0aWMgTlNT
dHJpbmcgKmxpbmtEZXN0aW5hdGlvbk5hbWUoUERGRG9jdW1lbnQgKmRvY3VtZW50LCBQREZEZXN0
aW5hdGlvbiAqZGVzdAogICAgICAgICBpZiAoIVthbm5vdGF0aW9uIGlzS2luZE9mQ2xhc3M6V2Vi
S2l0OjpwZGZBbm5vdGF0aW9uTGlua0NsYXNzKCldKQogICAgICAgICAgICAgY29udGludWU7CiAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgUERGQW5ub3Rh
dGlvbkxpbmsgKmxpbmtBbm5vdGF0aW9uID0gKFBERkFubm90YXRpb25MaW5rICopYW5ub3RhdGlv
bjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIE5TVVJMICp1
cmwgPSBbbGlua0Fubm90YXRpb24gVVJMXTsKICAgICAgICAgQ0dSZWN0IHRyYW5zZm9ybWVkUmVj
dCA9IENHUmVjdEFwcGx5QWZmaW5lVHJhbnNmb3JtKE5TUmVjdFRvQ0dSZWN0KFtsaW5rQW5ub3Rh
dGlvbiBib3VuZHNdKSwgdHJhbnNmb3JtKTsKIApAQCAtNTQ1LDEwICs1NDAsOSBAQCBzdGF0aWMg
TlNTdHJpbmcgKmxpbmtEZXN0aW5hdGlvbk5hbWUoUERGRG9jdW1lbnQgKmRvY3VtZW50LCBQREZE
ZXN0aW5hdGlvbiAqZGVzdAogICAgIH0KIAogICAgIFJlZlB0cjxXZWJLaXQ6OlNoYXJlYWJsZUJp
dG1hcD4gYml0bWFwID0gcGFnZVByZXZpZXdJdGVyYXRvci0+dmFsdWU7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gc3RhdGlj
X2Nhc3Q8Q0dDb250ZXh0UmVmPihbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBn
cmFwaGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVf
V0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dCBjb250ZXh0KGNnQ29udGV4dCk7CiAgICAgV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwpAQCAtNTg5LDEw
ICs1ODMsOSBAQCBzdGF0aWMgTlNTdHJpbmcgKmxpbmtEZXN0aW5hdGlvbk5hbWUoUERGRG9jdW1l
bnQgKmRvY3VtZW50LCBQREZEZXN0aW5hdGlvbiAqZGVzdAogICAgICAgICAgICAgICAgIGlmICgh
W2Fubm90YXRpb24gaXNLaW5kT2ZDbGFzczpXZWJLaXQ6OnBkZkFubm90YXRpb25MaW5rQ2xhc3Mo
KV0pCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAgICAgICBQREZBbm5vdGF0aW9u
TGluayAqbGlua0Fubm90YXRpb24gPSAoUERGQW5ub3RhdGlvbkxpbmsgKilhbm5vdGF0aW9uOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgICAgIElHTk9SRV9XQVJO
SU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAgICAg
ICAgIGlmIChsaW5rQW5ub3RhdGlvbi5VUkwpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0SW5wdXRX
aW5kb3dDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dElu
cHV0V2luZG93Q29udHJvbGxlci5tbQppbmRleCBhZTM2NDFlZjc5NzQ2M2ExODBjMGZiMjY3NGIw
MDJhYjExYTg3OTYyLi5iODU0Mzc0NTllYzFiMDIyMWQ2YTk5YjE1YWJmOTViZGQxNWU4MjM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0SW5wdXRXaW5kb3dD
b250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRJbnB1
dFdpbmRvd0NvbnRyb2xsZXIubW0KQEAgLTEwNiwxMCArMTA2LDkgQEAKIAogLSAoQk9PTClfaW50
ZXJwcmV0S2V5RXZlbnQ6KE5TRXZlbnQgKilldmVudCB1c2luZ0xlZ2FjeUNvY29hVGV4dElucHV0
OihCT09MKXVzaW5nTGVnYWN5Q29jb2FUZXh0SW5wdXQgc3RyaW5nOihOU1N0cmluZyAqKilzdHJp
bmcKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FS
TklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIEJPT0wgaGFkTWFy
a2VkVGV4dCA9IFtfaW5wdXRUZXh0VmlldyBoYXNNYXJrZWRUZXh0XTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKICAKICAgICAqc3RyaW5nID0gbmlsOwogCkBAIC0xMjQsMTAgKzEy
Myw5IEBACiAgICAgaWYgKCFbW19pbnB1dFRleHRWaWV3IGlucHV0Q29udGV4dF0gaGFuZGxlRXZl
bnQ6ZXZlbnRdKQogICAgICAgICByZXR1cm4gTk87CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICBpZiAoW19pbnB1dFRleHRWaWV3IGhhc01hcmtlZFRleHRdKSB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAvLyBEb24ndCBz
aG93IHRoZSBpbnB1dCBtZXRob2Qgd2luZG93IGZvciBkZWFkIGtleXMKICAgICAgICAgaWYgKFtb
ZXZlbnQgY2hhcmFjdGVyc10gbGVuZ3RoXSA+IDApCiAgICAgICAgICAgICBbc2VsZiBvcmRlckZy
b250Om5pbF07CkBAIC0xNjEsMTAgKzE1OSw5IEBACiAKIC0gKEJPT0wpX2hhc01hcmtlZFRleHQK
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklO
R19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIHJldHVybiBbX2lucHV0
VGV4dFZpZXcgaGFzTWFya2VkVGV4dF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQ
b3B1cE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1
cE1lbnVQcm94eU1hYy5tbQppbmRleCA4YjVkYjE1OTVhYjM1N2ZlYzk0ZGNlNzdjNzY0ZWFkY2Ji
NjM1NjBkLi5iOTAzZTg2NzVkNzJjMmQwMTBjZGE3OTlmYWQzZDI2N2E5MDEwYWUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1t
CkBAIC0xODgsMTAgKzE4OCw5IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1
cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0CiAgICAgW05TQXBw
IHBvc3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwogICAgIGZha2VFdmVudCA9IFtOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W1ttX3dlYlZpZXcgd2luZG93XQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9Q
X0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5E
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdOU0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5nTlNFdmVu
dCB0aW1lc3RhbXBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93TnVtYmVy
Oltpbml0aWF0aW5nTlNFdmVudCB3aW5kb3dOdW1iZXJdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQ
bHVnaW5NYWMubW0KaW5kZXggZWRjZjUzMmM4NWFhZjhjNmIzYTUwYWUzZDY0YmUwNmU5YWEwZTM0
MC4uNGVkMTE2NTRhMTAzOWQ2NWM5MTFhY2FmMTYxZjM4ZmJkOWNmMzU1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1
Z2luTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQpAQCAtMzczLDEwICszNzMsOSBAQCBzdGF0aWMgaW5s
aW5lIEV2ZW50UmVjb3JkIGluaXRpYWxpemVFdmVudFJlY29yZChFdmVudEtpbmQgZXZlbnRLaW5k
KQogCiAgICAgZXZlbnRSZWNvcmQud2hhdCA9IGV2ZW50S2luZDsKICAgICBldmVudFJlY29yZC5t
ZXNzYWdlID0gMDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05P
UkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGV2ZW50
UmVjb3JkLndoZW4gPSBUaWNrQ291bnQoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICBldmVudFJlY29yZC53aGVyZSA9IFBvaW50KCk7CiAgICAgZXZlbnRSZWNvcmQubW9k
aWZpZXJzID0gMDsKIApAQCAtMTA0MywxMCArMTA0Miw5IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46
OnNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQogCiAgICAgICAg
IC8vIFNldCB0aGUgc2NyaXB0IGNvZGUgYXMgdGhlIGtleWJvYXJkIHNjcmlwdC4gTm9ybWFsbHkg
Q2FyYm9uIGRvZXMgdGhpcyB3aGVuZXZlciB0aGUgaW5wdXQgc291cmNlIGNoYW5nZXMuCiAgICAg
ICAgIC8vIEhvd2V2ZXIsIHRoaXMgaXMgb25seSBkb25lIGZvciB0aGUgcHJvY2VzcyB0aGF0IGhh
cyB0aGUga2V5Ym9hcmQgZm9jdXMuIFdlIGNoZWF0IGFuZCBkbyBpdCBoZXJlIGluc3RlYWQuCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIFNldFNjcmlwdE1h
bmFnZXJWYXJpYWJsZShzbUtleVNjcmlwdCwgc2NyaXB0Q29kZSk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAKICAgICAgICAgRXZlbnRSZWNvcmQgZXZlbnQg
PSBpbml0aWFsaXplRXZlbnRSZWNvcmQoa2V5RG93bik7CiAgICAgICAgIGV2ZW50Lm1vZGlmaWVy
cyA9IDA7CkBAIC0xMTIxLDExICsxMTE5LDEwIEBAIHN0YXRpYyB2b2lkIG1ha2VDR0xQcmVzZW50
TGF5ZXJPcGFxdWUoQ0FMYXllciAqcGx1Z2luUm9vdExheWVyKQogICAgICAgICByZXR1cm47CiAK
ICAgICBDbGFzcyBjZ2xQcmVzZW50TGF5ZXJDbGFzcyA9IE5TQ2xhc3NGcm9tU3RyaW5nKEAiQ0dM
UHJlc2VudExheWVyIik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBp
ZiAoIVtjZ2xQcmVzZW50TGF5ZXJDbGFzcyBpc1N1YmNsYXNzT2ZDbGFzczpbQ0FPcGVuR0xMYXll
ciBjbGFzc11dKQogICAgICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAKICAgICBDQUxheWVyICpsYXllciA9IFtzdWJsYXllcnMgb2JqZWN0QXRJbmRleDowXTsK
ICAgICBpZiAoIVtsYXllciBpc0tpbmRPZkNsYXNzOmNnbFByZXNlbnRMYXllckNsYXNzXSkKQEAg
LTExODEsMTEgKzExNzgsMTAgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbjo6bnVsbEV2ZW50VGltZXJG
aXJlZCgpCiAgICAgZXZlbnQud2hlcmUudiA9IG1vdXNlUG9zaXRpb24ueTsKIAogICAgIGV2ZW50
Lm1vZGlmaWVycyA9IEdldEN1cnJlbnRLZXlNb2RpZmllcnMoKTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgIGlmICghQnV0dG9uKCkpCiAgICAgICAgIGV2ZW50Lm1vZGlm
aWVycyB8PSBidG5TdGF0ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05P
UkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAg
IE5QUF9IYW5kbGVFdmVudCgmZXZlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggNTMwN2UyNmE3NjM3ZThhNjliMDQ1
YWJiOTI4NzlmM2Y4YzY1ODZmMi4uZGFlMzI5NWYwNDVkNzRiNWQ2NmJhM2UyYzg0ZmViMzRiZTFk
ZjEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tCkBAIC0zMTgsMTAgKzMxOCw5IEBAIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdFNj
cm9sbE1hZ25pdHVkZVRocmVzaG9sZEZvclBhZ2VGbGlwID0gMjA7CiAgICAgaWYgKFdlYktpdDo6
UERGUGx1Z2luQW5ub3RhdGlvbiogYWN0aXZlQW5ub3RhdGlvbiA9IF9wZGZQbHVnaW4tPmFjdGl2
ZUFubm90YXRpb24oKSkgewogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogZXhpc3RpbmdDYWNo
ZSA9IF9wZGZQbHVnaW4tPmF4T2JqZWN0Q2FjaGUoKSkgewogICAgICAgICAgICAgaWYgKEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iamVjdCA9IGV4aXN0aW5nQ2FjaGUtPmdldE9yQ3JlYXRlKGFjdGl2
ZUFubm90YXRpb24tPmVsZW1lbnQoKSkpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgICAgICAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAgICAgICByZXR1cm4gW29iamVjdC0+d3JhcHBlcigp
IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIl9BWEFzc29jaWF0ZWRQbHVnaW5QYXJlbnQi
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgICAgICBJR05PUkVf
V0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAg
fQogICAgIH0KICAgICByZXR1cm4gbmlsOwpAQCAtNDI2LDEwICs0MjUsOSBAQCBzdGF0aWMgY29u
c3QgaW50IGRlZmF1bHRTY3JvbGxNYWduaXR1ZGVUaHJlc2hvbGRGb3JQYWdlRmxpcCA9IDIwOwog
CiAtICh2b2lkKXdyaXRlSXRlbXNUb1Bhc3RlYm9hcmQ6KE5TQXJyYXkgKilpdGVtcyB3aXRoVHlw
ZXM6KE5TQXJyYXkgKil0eXBlcwogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgX3BkZlBsdWdpbi0+d3JpdGVJdGVtc1RvUGFzdGVib2FyZChOU0dlbmVyYWxQYm9hcmQs
IGl0ZW1zLCB0eXBlcyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIC0g
KHZvaWQpc2hvd0RlZmluaXRpb25Gb3JBdHRyaWJ1dGVkU3RyaW5nOihOU0F0dHJpYnV0ZWRTdHJp
bmcgKilzdHJpbmcgYXRQb2ludDooQ0dQb2ludClwb2ludApAQCAtMTY1MSwxMSArMTY0OSwxMCBA
QCBib29sIFBERlBsdWdpbjo6aGFuZGxlRWRpdGluZ0NvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21t
YW5kTmFtZSwgY29uc3QgU3RyaW5nJiBhcgogICAgICAgICBbbV9wZGZMYXllckNvbnRyb2xsZXIg
c2VsZWN0QWxsXTsKICAgICBlbHNlIGlmIChjb21tYW5kTmFtZSA9PSAidGFrZUZpbmRTdHJpbmdG
cm9tU2VsZWN0aW9uIikgewogICAgICAgICBOU1N0cmluZyAqc3RyaW5nID0gW21fcGRmTGF5ZXJD
b250cm9sbGVyIGN1cnJlbnRTZWxlY3Rpb25dLnN0cmluZzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgaWYgKHN0cmluZy5sZW5ndGgpCiAgICAgICAgICAg
ICB3cml0ZUl0ZW1zVG9QYXN0ZWJvYXJkKE5TRmluZFBib2FyZCwgQFsgW3N0cmluZyBkYXRhVXNp
bmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10gXSwgQFsgTlNQYXN0ZWJvYXJkVHlwZVN0
cmluZyBdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgfQogCiAg
ICAgcmV0dXJuIHRydWU7CkBAIC0xNzM1LDEzICsxNzMyLDEyIEBAIHZvaWQgUERGUGx1Z2luOjpz
ZXRBY3RpdmVBbm5vdGF0aW9uKFBERkFubm90YXRpb24gKmFubm90YXRpb24pCiAgICAgICAgIG1f
YWN0aXZlQW5ub3RhdGlvbi0+Y29tbWl0KCk7CiAKICAgICBpZiAoYW5ub3RhdGlvbikgewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19D
TEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBpZiAoW2Fubm90YXRp
b24gaXNLaW5kT2ZDbGFzczpwZGZBbm5vdGF0aW9uVGV4dFdpZGdldENsYXNzKCldICYmIHN0YXRp
Y19jYXN0PFBERkFubm90YXRpb25UZXh0V2lkZ2V0ICo+KGFubm90YXRpb24pLmlzUmVhZE9ubHkp
IHsKICAgICAgICAgICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IG51bGxwdHI7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAKICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gUERGUGx1Z2luQW5ub3RhdGlvbjo6Y3Jl
YXRlKGFubm90YXRpb24sIG1fcGRmTGF5ZXJDb250cm9sbGVyLmdldCgpLCB0aGlzKTsKICAgICAg
ICAgbV9hY3RpdmVBbm5vdGF0aW9uLT5hdHRhY2gobV9hbm5vdGF0aW9uQ29udGFpbmVyLmdldCgp
KTsKQEAgLTIwNzksMTAgKzIwNzUsOSBAQCBzdGQ6OnR1cGxlPFN0cmluZywgUERGU2VsZWN0aW9u
ICosIE5TRGljdGlvbmFyeSAqPiBQREZQbHVnaW46Omxvb2t1cFRleHRBdExvY2F0aQogICAgICAg
ICBpZiAoIU5TUG9pbnRJblJlY3QocG9pbnRJblBhZ2VTcGFjZSwgYm91bmRzKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgICAgIFBERkFubm90YXRpb25MaW5rICpsaW5rQW5ub3RhdGlvbiA9IChQREZBbm5vdGF0aW9u
TGluayAqKWFubm90YXRpb247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgICAgICBOU1VSTCAqdXJsID0gbGlua0Fubm90YXRpb24uVVJMOwogICAgICAgICBpZiAoIXVy
bCkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLmgK
aW5kZXggMGY3Njc1YzVkMjMxZDU3ZDkyYmQ2Mjc5MzZlOWUwMjRkMmUxYzY4ZC4uZGU3NWNhODY3
OGMzYzUzNmNmYTAxYmQxNDY0NjQ2OGMzMTg4ZTdmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5u
b3RhdGlvbi5oCkBAIC01MywxMCArNTMsOSBAQCBwcml2YXRlOgogCiAgICAgUmVmPFdlYkNvcmU6
OkVsZW1lbnQ+IGNyZWF0ZUFubm90YXRpb25FbGVtZW50KCkgb3ZlcnJpZGU7CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1Bf
TEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogICAgIFBERkFubm90YXRpb25DaG9p
Y2VXaWRnZXQgKmNob2ljZUFubm90YXRpb24oKSB7IHJldHVybiBzdGF0aWNfY2FzdDxQREZBbm5v
dGF0aW9uQ2hvaWNlV2lkZ2V0ICo+KGFubm90YXRpb24oKSk7IH0KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNo
b2ljZUFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYv
UERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbQppbmRleCA1ODI1ZmQzZWNhYjQ2MTU0ZjhmOWQw
NTAxM2Y2NTRhYzhjNjE1OGNmLi5jNTk3ZTk2ZmI0YzBiOTc1MjU3MGU5OWQyZWUzYzYxYjQ3N2I0
ZjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbQpAQCAtNjcsMTAgKzY3LDkg
QEAgdm9pZCBQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uOjpjb21taXQoKQogUmVmPEVsZW1lbnQ+
IFBERlBsdWdpbkNob2ljZUFubm90YXRpb246OmNyZWF0ZUFubm90YXRpb25FbGVtZW50KCkKIHsK
ICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBwYXJlbnQoKS0+ZG9jdW1lbnQoKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFBERkFubm90YXRpb25DaG9pY2VXaWRnZXQg
KmNob2ljZUFubm90YXRpb24gPSB0aGlzLT5jaG9pY2VBbm5vdGF0aW9uKCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBhdXRvIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KHNlbGVjdFRhZywgZmFsc2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5o
CmluZGV4IDkyZDQwMjNjZDcwZTk0ZDk4ZDRiYjU4MWUzMGE3ZDI4NWIxOWQ5ZGMuLjc5YWQzMTI1
OWZmMDQ1NzU0ZjFmYmJhOTg3OTU0ZDk3Y2Q2ZmFiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3Rh
dGlvbi5oCkBAIC02MCwxMCArNjAsOSBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIGJvb2wg
aGFuZGxlRXZlbnQoV2ViQ29yZTo6RXZlbnQmKSBvdmVycmlkZTsKIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAgICAgUERGQW5ub3RhdGlvblRleHRXaWRnZXQg
KnRleHRBbm5vdGF0aW9uKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UERGQW5ub3RhdGlv
blRleHRXaWRnZXQgKj4oYW5ub3RhdGlvbigpKTsgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90
YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
VGV4dEFubm90YXRpb24ubW0KaW5kZXggMmM2YTc2YzRiMGUxMTU1MTAxOTVmZmQ2OTc0ODY0NjZh
NzVmMTI2OC4uYWM2MDk3OGI4ZGY0NDM0ZjRhNmRiMmQzYmM1ZGEyOTZhZDZjM2M3NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRB
bm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9Q
REZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbQpAQCAtODAsMTAgKzgwLDkgQEAgUERGUGx1Z2luVGV4
dEFubm90YXRpb246On5QREZQbHVnaW5UZXh0QW5ub3RhdGlvbigpCiBSZWY8RWxlbWVudD4gUERG
UGx1Z2luVGV4dEFubm90YXRpb246OmNyZWF0ZUFubm90YXRpb25FbGVtZW50KCkKIHsKICAgICBE
b2N1bWVudCYgZG9jdW1lbnQgPSBwYXJlbnQoKS0+ZG9jdW1lbnQoKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFBERkFubm90YXRpb25UZXh0V2lkZ2V0ICp0ZXh0QW5u
b3RhdGlvbiA9IHRoaXMtPnRleHRBbm5vdGF0aW9uKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgYm9vbCBpc011bHRpbGluZSA9IHRleHRBbm5vdGF0aW9uLmlzTXVsdGls
aW5lOwogCiAgICAgYXV0byBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpc011bHRp
bGluZSA/IHRleHRhcmVhVGFnIDogaW5wdXRUYWcsIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5h
dGl2ZVRleHRDbGllbnQuaAppbmRleCA0NTIwZTlkNjliYzgwMmY2ZWJkYTY1YjI5N2U4YThkNDU4
YzE5NzI4Li5jYjY5NGM1YjU3MjBjM2YyNTgxNDNjYWMzZmM5YjQxM2UzYTg2OTkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRp
dmVUZXh0Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oCkBAIC01MSwxNCArNTEsMTEgQEAgcHVibGlj
OgogI2VuZGlmCiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jaWYgZGVmaW5lZChfX2hhc193YXJuaW5nKSAmJiBfX2hhc193YXJuaW5n
KCItV3VudXNlZC1wcml2YXRlLWZpZWxkIikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3VudXNlZC1wcml2YXRlLWZpZWxkIgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdf
Q0xBTkcoIi1XdW51c2VkLXByaXZhdGUtZmllbGQiKTsKICNlbmRpZgogICAgIFdlYlBhZ2UgKm1f
cGFnZTsKICNpZiBQTEFURk9STShJT1MpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV3VudXNlZC1wcml2YXRlLWZpZWxkIik7CiAj
ZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQppbmRleCBhODc3ZTdmY2Zh
MGEzOTg3OTc3NzBhMTQzNDQ5MDVmZjk3MzAzMmYwLi43YzNjZDhkMmY4NjY4MmU0Yzc3MDg5YjZi
NmQ0NzhmYmY2MmUwMzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCkBAIC03Miwx
MCArNzIsOSBAQCBzdGF0aWMgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gY29udmVydEltYWdlVG9C
aXRtYXAoTlNJbWFnZSAqaW1hZ2UsIGNvbnN0IEludFNpegogCiAgICAgUmV0YWluUHRyPE5TR3Jh
cGhpY3NDb250ZXh0PiBzYXZlZENvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENv
bnRleHRdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbTlNHcmFw
aGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNz
Q29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Z3JhcGhpY3NDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQo
KSBmbGlwcGVkOllFU11dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtp
bWFnZSBkcmF3SW5SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgYml0bWFwLT5zaXplKCkud2lkdGgoKSwg
Yml0bWFwLT5zaXplKCkuaGVpZ2h0KCkpIGZyb21SZWN0Ok5TWmVyb1JlY3Qgb3BlcmF0aW9uOk5T
Q29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9uOjEgcmVzcGVjdEZsaXBwZWQ6
WUVTIGhpbnRzOm5pbF07CiAKICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRl
eHQ6c2F2ZWRDb250ZXh0LmdldCgpXTsKQEAgLTExMywxMCArMTEyLDkgQEAgc3RhdGljIFdlYkNv
cmU6OkNhY2hlZEltYWdlKiBjYWNoZWRJbWFnZShFbGVtZW50JiBlbGVtZW50KQogCiB2b2lkIFdl
YkRyYWdDbGllbnQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmROYW1lLCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiBsYWJlbCwgRnJhbWUqKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgQVNTRVJUKHBhc3RlYm9hcmROYW1lID09IFN0cmluZyhOU0RyYWdQYm9hcmQpKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIFdlYkNvcmU6OkNhY2hlZEltYWdlKiBp
bWFnZSA9IGNhY2hlZEltYWdlKGVsZW1lbnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlX
ZWJQYWdlT2JqZWN0TWFjLm1tCmluZGV4IGZlOTRlODVlNDcwZjRhODdlNTlmZTlkN2VjZjg0NDJm
ZWU1N2NmMzMuLmQzZDlhMTU1NmQzMDU2ZGE0MWJlNTQzODkzZjM4ZGNhYzhlMGM4MjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCkBAIC0xOTIsOCArMTky
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICByZXR1cm4gWUVTOwogfQogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1Bf
TEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogLSAoaWQpYWNjZXNzaWJpbGl0eUhp
dFRlc3Q6KE5TUG9pbnQpcG9pbnQKIHsKICAgICBpZiAoIW1fcGFnZSkKQEAgLTIxNSw3ICsyMTQs
NyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiAgICAgcmV0dXJuIFtbc2VsZiBhY2Nlc3Np
YmlsaXR5Um9vdE9iamVjdFdyYXBwZXJdIGFjY2Vzc2liaWxpdHlIaXRUZXN0OmNvbnZlcnRlZFBv
aW50XTsKIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NM
QU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiBAZW5kCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdl
TWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMu
bW0KaW5kZXggZGE3Yzk4ZjY4YzQ4MTg5MDczZGJlYTQ3NDg3MWZmMmNhYjZhNTgxYS4uNmNjMTMz
N2QxMTU0MWFmNjkxYTI1YzYzM2MwNjVjNTdmMjM4ZWM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTgxOCwxMSArODE4
LDEwIEBAIHN0YXRpYyB2b2lkIGRyYXdQREZQYWdlKFBERkRvY3VtZW50ICpwZGZEb2N1bWVudCwg
Q0ZJbmRleCBwYWdlSW5kZXgsIENHQ29udGV4dFJlCiAgICAgfQogCiAgICAgW05TR3JhcGhpY3ND
b250ZXh0IHNhdmVHcmFwaGljc1N0YXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDpbTlNHcmFwaGlj
c0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0V2l0aEdyYXBoaWNzUG9ydDpjb250ZXh0IGZsaXBwZWQ6
Tk9dXTsKICAgICBbcGRmUGFnZSBkcmF3V2l0aEJveDprUERGRGlzcGxheUJveENyb3BCb3hdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VO
RCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtOU0dyYXBoaWNzQ29udGV4dCBy
ZXN0b3JlR3JhcGhpY3NTdGF0ZV07CiAKICAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0g
PSBDR0NvbnRleHRHZXRDVE0oY29udGV4dCk7CkBAIC04MzEsMTAgKzgzMCw5IEBAIHN0YXRpYyB2
b2lkIGRyYXdQREZQYWdlKFBERkRvY3VtZW50ICpwZGZEb2N1bWVudCwgQ0ZJbmRleCBwYWdlSW5k
ZXgsIENHQ29udGV4dFJlCiAgICAgICAgIGlmICghW2Fubm90YXRpb24gaXNLaW5kT2ZDbGFzczpw
ZGZBbm5vdGF0aW9uTGlua0NsYXNzKCldKQogICAgICAgICAgICAgY29udGludWU7CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgUERGQW5ub3RhdGlvbkxp
bmsgKmxpbmtBbm5vdGF0aW9uID0gKFBERkFubm90YXRpb25MaW5rICopYW5ub3RhdGlvbjsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
RU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIE5TVVJMICp1cmwgPSBb
bGlua0Fubm90YXRpb24gVVJMXTsKICAgICAgICAgaWYgKCF1cmwpCiAgICAgICAgICAgICBjb250
aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25V
dGlscy5tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvblV0aWxzLm0KaW5k
ZXggYjc5NWU5YjQyYTZlNzE0ODVkZDE3N2NjZDlkZGM3M2E0OTQ3ZTBkZi4uMDU4YTNiNDAzYTBi
YThiMmI4MjlhNjkzYjRkNjBmYjgyMDUwZGM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2FyYm9uL0NhcmJvblV0aWxzLm0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2FyYm9uL0NhcmJvblV0aWxzLm0KQEAgLTg3LDEwICs4Nyw5IEBAIHN0YXRpYyB1bnNpZ25l
ZCBnZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KHZvaWQpCiBQb29sQ2xlYW5lciggRXZlbnRMb29w
VGltZXJSZWYgaW5UaW1lciwgRXZlbnRMb29wSWRsZVRpbWVyTWVzc2FnZSBpblN0YXRlLCB2b2lk
ICppblVzZXJEYXRhICkKIHsKICAgICBpZiAoIGluU3RhdGUgPT0ga0V2ZW50TG9vcElkbGVUaW1l
clN0YXJ0ZWQgKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XY2FzdC1xdWFsIgorICAgICAgICBJR05PUkVfV0FSTklO
R19DTEFORygiLVdjYXN0LXF1YWwiKTsKICAgICAgICAgQ0ZTdHJpbmdSZWYgbW9kZSA9IENGUnVu
TG9vcENvcHlDdXJyZW50TW9kZSggKENGUnVuTG9vcFJlZilHZXRDRlJ1bkxvb3BGcm9tRXZlbnRM
b29wKCBHZXRDdXJyZW50RXZlbnRMb29wKCkgKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdjYXN0LXF1YWwiKTsKICAg
ICAgICAgRXZlbnRMb29wUmVmIHRoaXNMb29wID0gR2V0Q3VycmVudEV2ZW50TG9vcCAoKTsKICAg
ICAgICAgaWYgKCBDRkVxdWFsKCBtb2RlLCBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUgKSAmJiB0aGlz
TG9vcCA9PSBwb29sTG9vcCkgewogICAgICAgICAgICAgdW5zaWduZWQgY3VycmVudE51bVBvb2xz
ID0gZ2V0TlNBdXRvcmVsZWFzZVBvb2xDb3VudCgpLTE7ICAgICAgICAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCmlu
ZGV4IGQxNTIyZjNmMDIzZWYwZjZkZTMzNjJiZGEzYjMwNDk0Nzg4OGMwYmYuLmYzZDQyM2ViMjk4
ZDQ3MzU4NDkwNWFiMDBmMTlmMWM1N2JkZjRlODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCkBAIC0xNzcsMTAgKzE3
Nyw5IEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFu
ZGxlckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAgICAgLy8gQnV0IG5vdyB0aGUgbm9uLXJl
dGFpbmVkIHdpbmRvdyBjbGFzcyBpcyBhIENhcmJvbiBzZWNyZXQgdGhhdCdzIG5vdCBldmVuIGlu
CiAgICAgLy8gV2luZG93c1ByaXYuaDsgbWF5YmUgd2UnbGwgaGF2ZSB0byByZXZpc2l0IHRoaXMg
aWYgc29tZW9uZSBuZWVkcyB0byB1c2UgV2ViS2l0CiAgICAgLy8gaW4gYSBub24tcmV0YWluZWQg
d2luZG93LgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgYmFja2luZ1N0
b3JlVHlwZSA9IE5TQmFja2luZ1N0b3JlUmV0YWluZWQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAKICAgICAvLyBGaWd1cmUgb3V0IHRoZSB3aW5kb3cncyBzdHlsZSBtYXNrLgog
ICAgIHN0eWxlTWFzayA9IF9OU0NhcmJvbldpbmRvd01hc2s7CkBAIC0yMDUsMTAgKzIwNCw5IEBA
IHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNh
bGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAgICAgLy8gRG8gc29tZSBzdGFuZGFyZCBDb2NvYSBp
bml0aWFsaXphdGlvbi4gIFRoZSBkZWZlciBhcmd1bWVudCdzIHZhbHVlIGlzIFlFUyBiZWNhdXNl
IHdlIGRvbid0IHdhbnQgLVtOU1dpbmRvdyBfY29tbW9uQXdha2VdIHRvIGdldCBjYWxsZWQuICBJ
dCBkb2Vzbid0IGFwcGVhciB0aGF0IGFueSByZWxldmFudCBOU1dpbmRvdyBjb2RlIGNoZWNrcyBf
d0ZsYWdzLmRlZmVycmVkLCBzbyB3ZSBzaG91bGQgYmUgYWJsZSB0byBnZXQgYXdheSB3aXRoIHRo
ZSBsaWUuCiAgICAgc2VsZiA9IChDYXJib25XaW5kb3dBZGFwdGVyKilbc3VwZXIgX2luaXRDb250
ZW50Om51bGxwdHIgc3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5nOmJhY2tpbmdTdG9yZVR5cGUg
ZGVmZXI6WUVTIGNvbnRlbnRWaWV3OmNhcmJvbldpbmRvd0NvbnRlbnRWaWV3XTsKICAgICBpZiAo
IXNlbGYpIHJldHVybiBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAg
ICBhc3NlcnQoX2NvbnRlbnRWaWV3KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
IAogICAgIC8vIFJlY29yZCBhY2N1cmF0ZWx5IHdoZXRoZXIgb3Igbm90IHRoaXMgd2luZG93IGhh
cyBhIHNoYWRvdywgaW4gY2FzZSBzb21lb25lIGFza3MuCiAgLy8gICBfYXV4aWxpYXJ5U3RvcmFn
ZS0+X2F1eFdGbGFncy5oYXNTaGFkb3cgPSAod2luZG93QXR0cmlidXRlcyAmIGtXaW5kb3dOb1No
YWRvd0F0dHJpYnV0ZSkgPyBOTyA6IFlFUzsKQEAgLTI4MSwxMCArMjc5LDkgQEAgc3RhdGljIE9T
U3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2
ZW50SGFuZGxlckNhbGwKICAgICAvLyBmbHVzaGVzIGl0LgogCiAgICAgaWYgKFtzZWxmIHdpbmRv
d051bWJlcl0gIT0gLTEpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
ICAgICAgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IChDR0NvbnRleHRSZWYpW1tzZWxmIF90
aHJlYWRDb250ZXh0XSBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICAgICAgQ0dDb250ZXh0U3luY2hyb25pemUoY2dDb250ZXh0KTsKICAgICB9
CiB9CkBAIC0zNzQsMTEgKzM3MSwxMCBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dI
YW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAgIC8v
IEluaXRpYWxpemUgZm9yIHNhZmUgcmV0dXJuaW5nLgogICAgIEJPT0wgcmVjb25jaWxpYXRpb25X
YXNOZWNlc3NhcnkgPSBOTzsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgLy8gUHJlY29uZGl0aW9uIGNoZWNrLgogICAgIGFzc2VydChfY29udGVudFZpZXcpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgLy8gR2V0IHRoZSBDYXJib24gd2lu
ZG93J3MgYm91bmRzLCB3aGljaCBhcmUgZXhwcmVzc2VkIGluIGdsb2JhbCBzY3JlZW4gY29vcmRp
bmF0ZXMsIHdpdGggKDAsMCkgYXQgdGhlIHRvcC1sZWZ0IG9mIHRoZSBtYWluIHNjcmVlbi4KICAg
ICBvc1N0YXR1cyA9IEdldFdpbmRvd0JvdW5kcyhfd2luZG93UmVmLCBrV2luZG93U3RydWN0dXJl
UmduLCAmd2luZG93U3RydWN0dXJlQm91bmRzUmVjdCk7CkBAIC0zOTMsMjggKzM4OSwyNiBAQCBz
dGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxs
UmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAgIG5ld1dpbmRvd0ZyYW1lUmVjdC5vcmlnaW4ueSA9
IE5TTWF4WShbKE5TU2NyZWVuICopW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmplY3RBdEluZGV4OjBd
IGZyYW1lXSkgLSB3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0LmJvdHRvbTsKICAgICBuZXdXaW5k
b3dGcmFtZVJlY3Quc2l6ZS53aWR0aCA9IHdpbmRvd1N0cnVjdHVyZUJvdW5kc1JlY3QucmlnaHQg
LSB3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0LmxlZnQ7CiAgICAgbmV3V2luZG93RnJhbWVSZWN0
LnNpemUuaGVpZ2h0ID0gd2luZG93U3RydWN0dXJlQm91bmRzUmVjdC5ib3R0b20gLSB3aW5kb3dT
dHJ1Y3R1cmVCb3VuZHNSZWN0LnRvcDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogICAgIGlmICghTlNFcXVhbFJlY3RzKG5ld1dpbmRvd0ZyYW1lUmVjdCwgX2ZyYW1lKSkgewog
ICAgICAgICBbc2VsZiBfc2V0RnJhbWU6bmV3V2luZG93RnJhbWVSZWN0XTsKICAgICAgICAgW19i
b3JkZXJWaWV3IHNldEZyYW1lU2l6ZTpuZXdXaW5kb3dGcmFtZVJlY3Quc2l6ZV07CiAgICAgICAg
IHJlY29uY2lsaWF0aW9uV2FzTmVjZXNzYXJ5ID0gWUVTOwogICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIC8vIFNldCB0aGUgY29udGVudCB2aWV3J3MgZnJhbWUg
cmVjdCBmcm9tIHRoZSBDYXJib24gd2luZG93J3MgY29udGVudCByZWdpb24gYm91bmRzLgogICAg
IG5ld0NvbnRlbnRGcmFtZVJlY3Qub3JpZ2luLnggPSB3aW5kb3dDb250ZW50Qm91bmRzUmVjdC5s
ZWZ0IC0gd2luZG93U3RydWN0dXJlQm91bmRzUmVjdC5sZWZ0OwogICAgIG5ld0NvbnRlbnRGcmFt
ZVJlY3Qub3JpZ2luLnkgPSB3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0LmJvdHRvbSAtIHdpbmRv
d0NvbnRlbnRCb3VuZHNSZWN0LmJvdHRvbTsKICAgICBuZXdDb250ZW50RnJhbWVSZWN0LnNpemUu
d2lkdGggPSB3aW5kb3dDb250ZW50Qm91bmRzUmVjdC5yaWdodCAtIHdpbmRvd0NvbnRlbnRCb3Vu
ZHNSZWN0LmxlZnQ7CiAgICAgbmV3Q29udGVudEZyYW1lUmVjdC5zaXplLmhlaWdodCA9IHdpbmRv
d0NvbnRlbnRCb3VuZHNSZWN0LmJvdHRvbSAtIHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LnRvcDsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19D
TEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIG9sZENvbnRlbnRGcmFtZVJl
Y3QgPSBbKE5TVmlldyAqKV9jb250ZW50VmlldyBmcmFtZV07CiAgICAgaWYgKCFOU0VxdWFsUmVj
dHMobmV3Q29udGVudEZyYW1lUmVjdCwgb2xkQ29udGVudEZyYW1lUmVjdCkpIHsKICAgICAgICAg
WyhOU1ZpZXcgKilfY29udGVudFZpZXcgc2V0RnJhbWU6bmV3Q29udGVudEZyYW1lUmVjdF07CiAg
ICAgICAgIHJlY29uY2lsaWF0aW9uV2FzTmVjZXNzYXJ5ID0gWUVTOwogICAgIH0KLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIC8vIERvbmUuCiAgICAgcmV0dXJuIHJlY29u
Y2lsaWF0aW9uV2FzTmVjZXNzYXJ5OwpAQCAtNTk1LDggKzU4OSw3IEBAIHN0YXRpYyBPU1N0YXR1
cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhh
bmRsZXJDYWxsCiAvLyBUaGlzIGZ1bmN0aW9uIGlzIG1vc3RseSBjdXQtYW5kLXBhc3RlZCBmcm9t
IC1bTlNXaW5kb3cgX3Rlcm1XaW5kb3dJZk93bmVyXS4gIE0uUC4gTm90aWNlIC0gOC83LzAwCiAt
ICh2b2lkKV90ZXJtV2luZG93SWZPd25lcgogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgW3NlbGYgX3NldFdpbmRvd051bWJlcjotMV07CiAgICAgX3dGbGFncy5pc1Rl
cm1pbmF0aW5nID0gWUVTOwogICAgIGlmIChfd2luZG93UmVmICYmIF93aW5kb3dSZWZJc093bmVk
KQpAQCAtNjA2LDcgKzU5OSw3IEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRs
ZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAvLyAgICAgICAg
W19ib3JkZXJWaWV3IHNldFNoYWRvd1N0YXRlOmtGcmFtZVNoYWRvd05vbmVdOwogLy8gICAgfQog
ICAgIF93RmxhZ3MuaXNUZXJtaW5hdGluZyA9IE5POwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogfQogCiAKQEAgLTYyNiwxMCArNjE5LDkgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2Fy
Ym9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNh
bGwKICAgICBbc3VwZXIgX3dpbmRvd01vdmVkVG9SZWN0OmFjdHVhbEZyYW1lXTsKIAogICAgIC8v
IExldCBDYXJib24ga25vdyB0aGF0IHRoZSB3aW5kb3cgaGFzIGJlZW4gbW92ZWQsIHVubGVzcyB0
aGlzIG1ldGhvZCBpcyBiZWluZyBjYWxsZWQgImVhcmx5LiIKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIGlmIChfd0ZsYWdzLnZpc2libGUpIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIG9zU3RhdHVzID0gX1N5bmNXaW5kb3dXaXRo
Q0dBZnRlck1vdmUoX3dpbmRvd1JlZik7CiAgICAgICAgIGlmIChvc1N0YXR1cyE9bm9FcnIpIE5T
TG9nKEAiQSBDYXJib24gd2luZG93J3MgYm91bmRzIGNvdWxkbid0IGJlIHN5bmNocm9uaXplZCAo
JWkpLiIsIChpbnQpb3NTdGF0dXMpOwogICAgIH0KQEAgLTc1OCwxMSArNzUwLDEwIEBAIHN0YXRp
YyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYg
aW5FdmVudEhhbmRsZXJDYWxsCiAgICAgUmVjdCB3aW5kb3dDb250ZW50Qm91bmRzUmVjdDsKIAog
ICAgIC8vIFByZWNvbmRpdGlvbiBjaGVjay4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogICAgIGFzc2VydChfYm9yZGVyVmlldyk7CiAgICAgYXNzZXJ0KFtfYm9yZGVyVmlldyBp
c0tpbmRPZkNsYXNzOltDYXJib25XaW5kb3dGcmFtZSBjbGFzc11dKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKICAgICBhc3NlcnQoX3dpbmRvd1JlZik7CiAKICAgICAvLyBQYXJh
bWV0ZXIgY2hlY2suCkBAIC03NzYsOCArNzY3LDcgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9u
V2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwK
ICAgICBjb250ZW50RnJhbWVSZWN0LnNpemUud2lkdGggPSB3aW5kb3dDb250ZW50Qm91bmRzUmVj
dC5yaWdodCAtIHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LmxlZnQ7CiAgICAgY29udGVudEZyYW1l
UmVjdC5zaXplLmhlaWdodCA9IHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LmJvdHRvbSAtIHdpbmRv
d0NvbnRlbnRCb3VuZHNSZWN0LnRvcDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgLy8gSWYgdGhlIGNvbnRlbnQgdmlldyBpcyBzdGlsbCBpbiBzb21lIG90aGVyIHZp
ZXcgaGllcmFyY2h5LCBwcnkgaXQgZnJlZS4KICAgICBbX2NvbnRlbnRWaWV3IHJlbW92ZUZyb21T
dXBlcnZpZXddOwogICAgIGFzc2VydCghW19jb250ZW50VmlldyBzdXBlcnZpZXddKTsKQEAgLTc5
MSw3ICs3ODEsNyBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChF
dmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogCiAgICAgLy8gVGVsbCB0aGUg
Y29udGVudCB2aWV3IGl0J3MgbmV3IHBsYWNlIGluIHRoZSByZXNwb25kZXIgY2hhaW4uCiAgICAg
W19jb250ZW50VmlldyBzZXROZXh0UmVzcG9uZGVyOnNlbGZdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogfQogCiAKQEAgLTk0NCwxMCArOTM0LDkgQEAgQ2xlYW5VcDoKICAgICBI
SVJlY3QgZnJhbWU7CiAKICAgICBISVZpZXdHZXRGcmFtZShyb290LCAmZnJhbWUpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW19ib3JkZXJWaWV3IHNldEZyYW1lU2l6
ZToqKE5TU2l6ZSopJmZyYW1lLnNpemVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogfQogCiAtICh2b2lkKV9oYW5kbGVDb250ZW50Qm91bmRzQ2hhbmdlZApAQCAtOTY0LDEzICs5
NTMsMTIgQEAgQ2xlYW5VcDoKICAgICAvLyBTZXQgdGhlIGNvbnRlbnQgdmlldydzIGZyYW1lIHJl
Y3QgZnJvbSB0aGUgQ2FyYm9uIHdpbmRvdydzIGNvbnRlbnQgcmVnaW9uIGJvdW5kcy4KICAgICBj
b250ZW50RnJhbWUub3JpZ2luLnkgPSByb290Qm91bmRzLnNpemUuaGVpZ2h0IC0gQ0dSZWN0R2V0
TWF4WShjb250ZW50RnJhbWUpOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
ICAgICBvbGRDb250ZW50RnJhbWVSZWN0ID0gWyhOU1ZpZXcgKilfY29udGVudFZpZXcgZnJhbWVd
OwogICAgIGlmICghTlNFcXVhbFJlY3RzKCooTlNSZWN0KikmY29udGVudEZyYW1lLCBvbGRDb250
ZW50RnJhbWVSZWN0KSkgewogICAgICAgICBbKE5TVmlldyAqKV9jb250ZW50VmlldyBzZXRGcmFt
ZToqKE5TUmVjdCopJmNvbnRlbnRGcmFtZV07CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogfQogCiAtIChPU1N0YXR1cylfaGFuZGxlQ2FyYm9uRXZlbnQ6KEV2ZW50UmVm
KWluRXZlbnQgY2FsbFJlZjooRXZlbnRIYW5kbGVyQ2FsbFJlZilpbkNhbGxSZWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dGcmFtZS5tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0ZyYW1lLm0KaW5kZXgg
ZTkyNmViNmMyMWUwZmE4OGYyOGRjNGEwNjFjMzkwMjI1MzI1ZWI5Ny4uN2VmZmYxNjVmOWU4Yzdh
ZGNhYzY2YzUzZjNhYzQ5YzA5MDEwNDUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0ZyYW1lLm0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0ZyYW1lLm0KQEAgLTI0MSwxMCArMjQxLDkgQEAgLSAo
TlNTdHJpbmcgKil0aXRsZSB7CiAgICAgd2luZG93UmVmID0gW2NhcmJvbldpbmRvdyB3aW5kb3dS
ZWZdOwogICAgIG9zU3RhdHVzID0gQ29weVdpbmRvd1RpdGxlQXNDRlN0cmluZyh3aW5kb3dSZWYs
ICZ3aW5kb3dUaXRsZSk7CiAgICAgaWYgKG9zU3RhdHVzPT1ub0VycikgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Nh
c3QtcXVhbCIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XY2FzdC1xdWFsIik7CiAg
ICAgICAgIHdpbmRvd1RpdGxlQXNOU1N0cmluZyA9IChOU1N0cmluZyAqKXdpbmRvd1RpdGxlOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFO
R19FTkQoIi1XY2FzdC1xdWFsIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgTlNMb2coQCJBIENh
cmJvbiB3aW5kb3cncyB0aXRsZSBjb3VsZG4ndCBiZSBnb3R0ZW4uIik7CiAgICAgICAgIHdpbmRv
d1RpdGxlQXNOU1N0cmluZyA9IEAiIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJi
b24vSElWaWV3QWRhcHRlci5tCmluZGV4IGYzZDk5NjVhYjdmZDEzODRhYmI1NWU1OWM1YTA5NDRi
NWU2MDFlNzAuLjYyOWIyMzUxOTE3OGUwNmU3NGRjOGVkYjE2NTFhMThmMDY2MzMxMTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJVmlld0FkYXB0ZXIubQpAQCAtODgs
MTAgKzg4LDkgQEAgKyAodm9pZCliaW5kSElWaWV3VG9OU1ZpZXc6KEhJVmlld1JlZiloaVZpZXcg
bnNWaWV3OihOU1ZpZXcqKW5zVmlldwogCiArIChISVZpZXdSZWYpZ2V0SElWaWV3Rm9yTlNWaWV3
OihOU1ZpZXcqKWluVmlldwogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Nhc3QtcXVhbCIKKyAgICBJR05PUkVfV0FS
TklOR19DTEFORygiLVdjYXN0LXF1YWwiKTsKICAgICByZXR1cm4gc1ZpZXdNYXAgPyAoSElWaWV3
UmVmKUNGRGljdGlvbmFyeUdldFZhbHVlKHNWaWV3TWFwLCBpblZpZXcpIDogTlVMTDsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
Y2FzdC1xdWFsIik7CiB9CiAKICsgKHZvaWQpdW5iaW5kTlNWaWV3OihOU1ZpZXcqKWluVmlldwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJV2ViVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0KaW5kZXggNDA2Yjc3
OWZhY2Y3YTNkNDE0YmIyZGZjYTM5NTUxNjRlNzYyOTI2YS4uMjJmNmNlMzc5YWQ2YTkwMWE3NmJm
NDNjNjU1NzhlZmE5MTA4MjNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2FyYm9uL0hJV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24v
SElXZWJWaWV3Lm1tCkBAIC0yODgsMTEgKzI4OCwxMCBAQCBzdGF0aWMgVUludDMyIEdldEJlaGF2
aW9ycygpCiAKIHN0YXRpYyBDR0NvbnRleHRSZWYgb3ZlcnJpZGVDR0NvbnRleHQoTlNXaW5kb3cg
KndpbmRvdywgQ0dDb250ZXh0UmVmIGNvbnRleHQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiKTsKICAgICBOU1dpbmRvd0dyYXBoaWNzQ29udGV4dCAqZ3JhcGhpY3NDb250ZXh0
ID0gKE5TV2luZG93R3JhcGhpY3NDb250ZXh0ICopd2luZG93LmdyYXBoaWNzQ29udGV4dDsKICAg
ICBDR0NvbnRleHRSZWYgc2F2ZWRDb250ZXh0ID0gKENHQ29udGV4dFJlZilncmFwaGljc0NvbnRl
eHQuZ3JhcGhpY3NQb3J0OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIENH
Q29udGV4dFJldGFpbihzYXZlZENvbnRleHQpOwogICAgIFtncmFwaGljc0NvbnRleHQgX3dlYl9z
ZXRHcmFwaGljc1BvcnQ6Y29udGV4dF07CiAgICAgcmV0dXJuIHNhdmVkQ29udGV4dDsKQEAgLTMw
MCwxMCArMjk5LDkgQEAgc3RhdGljIENHQ29udGV4dFJlZiBvdmVycmlkZUNHQ29udGV4dChOU1dp
bmRvdyAqd2luZG93LCBDR0NvbnRleHRSZWYgY29udGV4dCkKIAogc3RhdGljIHZvaWQgcmVzdG9y
ZUNHQ29udGV4dChOU1dpbmRvdyAqd2luZG93LCBDR0NvbnRleHRSZWYgc2F2ZWRDb250ZXh0KQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgTlNXaW5kb3dHcmFwaGlj
c0NvbnRleHQgKmdyYXBoaWNzQ29udGV4dCA9IChOU1dpbmRvd0dyYXBoaWNzQ29udGV4dCAqKXdp
bmRvdy5ncmFwaGljc0NvbnRleHQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgW2dyYXBoaWNzQ29udGV4dCBfd2ViX3NldEdyYXBoaWNzUG9ydDpzYXZlZENvbnRleHRdOwog
ICAgIENHQ29udGV4dFJlbGVhc2Uoc2F2ZWRDb250ZXh0KTsKIH0KQEAgLTMyMyw4ICszMjEsNyBA
QCBzdGF0aWMgdm9pZCBEcmF3KEhJV2ViVmlldyogaW5WaWV3LCBSZ25IYW5kbGUgbGltaXRSZ24s
IENHQ29udGV4dFJlZiBpbkNvbnRleHQpCiAgICAgICAgIEdyYWZQdHIgcG9ydDsKICAgICAgICAg
UmVjdCBwb3J0UmVjdDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
ICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgICAgICBHZXRQb3J0KCZwb3J0KTsKICAgICAgICAgR2V0UG9ydEJvdW5kcyhwb3J0LCAmcG9y
dFJlY3QpOwogICAgICAgICBDcmVhdGVDR0NvbnRleHRGb3JQb3J0KHBvcnQsICZpbkNvbnRleHQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET00ubW0KaW5kZXggOGViYjhhMGRhZjYzNDVmMjE5MDNk
NmZlY2IyNGQ4ZjE0ZTA2YzJhMS4uMGY5OGFkNTA1ZDRkMWZmMGY1MTQ2Y2I1NWFjYTI4MjMxNWQ3
YmU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NLm1tCkBAIC0yNDQsOCArMjQ0LDcgQEAg
c3RhdGljIGlubGluZSBXS1F1YWQgemVyb1F1YWQoKQogCiBAaW1wbGVtZW50YXRpb24gRE9NTm9k
ZSAoV2ViQ29yZUludGVybmFsKQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xb2JqYy1wcm90b2NvbC1tZXRob2QtaW1w
bGVtZW50YXRpb24iCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1Xb2JqYy1wcm90
b2NvbC1tZXRob2QtaW1wbGVtZW50YXRpb24iKQogCiAtIChOU1N0cmluZyAqKWRlc2NyaXB0aW9u
CiB7CkBAIC0yNTksNyArMjU4LDcgQEAgc3RhdGljIGlubGluZSBXS1F1YWQgemVyb1F1YWQoKQog
ICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjwlQCBbJUBdOiAlcD4iLCBb
W3NlbGYgY2xhc3NdIGRlc2NyaXB0aW9uXSwgW3NlbGYgbm9kZU5hbWVdLCBfaW50ZXJuYWxdOwog
fQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19U
T1BfTEVWRUxfRU5EKCItV29iamMtcHJvdG9jb2wtbWV0aG9kLWltcGxlbWVudGF0aW9uIikKIAog
LSAoQmluZGluZ3M6OlJvb3RPYmplY3QqKV9yb290T2JqZWN0CiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnkuaCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeS5oCmluZGV4IGY4M2M1MjRkMTlkZWI3NjI3ZWM1
ZWQyNTllMWRhNmI0NmIxMWRmNjkuLjM4OThiN2Q5Yzk5NWZkZGI0MzYxNWE3ZGVjYjE2MGFhZmIw
MDU0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlz
dG9yeS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeS5o
CkBAIC0xMjgsMTAgKzEyOCw5IEBAIFdFQktJVF9DTEFTU19ERVBSRUNBVEVEX01BQygxMF8zLCAx
MF8xNCkKICAgICBAcGFyYW0gY2FsZW5kYXJEYXRlIEEgZGF0ZSBpZGVudGlmeWluZyB0aGUgdW5p
cXVlIGRheSBvZiBpbnRlcmVzdC4KICAgICBAcmVzdWx0IFJldHVybnMgYW4gYXJyYXkgb2YgV2Vi
SGlzdG9yeUl0ZW1zIGxhc3QgdmlzaXRlZCBvbiB0aGUgaW5kaWNhdGVkIGRheS4KICovCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1Bf
TEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogLSAoTlNBcnJheSAqKW9yZGVyZWRJ
dGVtc0xhc3RWaXNpdGVkT25EYXk6KE5TQ2FsZW5kYXJEYXRlICopY2FsZW5kYXJEYXRlOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVM
X0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAjZW5kaWYKIAogLyohCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnkubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnkubW0KaW5kZXggOTA0OTZiYmI5
OTM2NDI5OTZiZjVhMjQ1NmRmODY4OGRmODY1NjA3Yi4uMmY0MDRmZTA4ZDZhNTJlNjE5MjJkMGU2
MDEyNTYxN2Y1ZDdkMGU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlz
dG9yeS9XZWJIaXN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3Rvcnkv
V2ViSGlzdG9yeS5tbQpAQCAtNDQ2LDggKzQ0Niw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViSGlzdG9y
eURhdGVLZXkgZGF0ZUtleShOU1RpbWVJbnRlcnZhbCBkYXRlKQogCiAvLyBNQVJLOiBEQVRFLUJB
U0VEIFJFVFJJRVZBTAogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05P
UkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQog
CiAtIChOU0FycmF5ICopb3JkZXJlZExhc3RWaXNpdGVkRGF5cwogewpAQCAtNDc5LDcgKzQ3OCw3
IEBAIHN0YXRpYyBpbmxpbmUgV2ViSGlzdG9yeURhdGVLZXkgZGF0ZUtleShOU1RpbWVJbnRlcnZh
bCBkYXRlKQogICAgIHJldHVybiBfZW50cmllc0J5RGF0ZS0+Z2V0KGRhdGVLZXkpLmdldCgpOwog
fQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19U
T1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogLy8gTUFSSzogVVJM
IE1BVENISU5HCiAKQEAgLTUzMSw4ICs1MzAsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkhpc3RvcnlE
YXRlS2V5IGRhdGVLZXkoTlNUaW1lSW50ZXJ2YWwgZGF0ZSkKICAgICByZXR1cm4gW1tOU1VzZXJE
ZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gaW50ZWdlckZvcktleTpAIldlYktpdEhpc3Rv
cnlJdGVtTGltaXQiXTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IikKIAogLy8gUmV0dXJuIGEgZGF0ZSB0aGF0IG1hcmtzIHRoZSBhZ2UgbGltaXQgZm9yIGhpc3Rv
cnkgZW50cmllcyBzYXZlZCB0byBvcgogLy8gbG9hZGVkIGZyb20gZGlzay4gQW55IGVudHJ5IG9s
ZGVyIHRoYW4gdGhpcyBpdGVtIHNob3VsZCBiZSByZWplY3RlZC4KQEAgLTU0Miw3ICs1NDAsNyBA
QCBzdGF0aWMgaW5saW5lIFdlYkhpc3RvcnlEYXRlS2V5IGRhdGVLZXkoTlNUaW1lSW50ZXJ2YWwg
ZGF0ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhvdXJzOjAgbWludXRlczowIHNlY29uZHM6MF07CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKQogCiAtIChCT09MKWxvYWRIaXN0b3J5R3V0c0Zyb21VUkw6KE5T
VVJMICopVVJMIHNhdmVkSXRlbXNDb3VudDooaW50ICopbnVtYmVyT2ZJdGVtc0xvYWRlZCBjb2xs
ZWN0RGlzY2FyZGVkSXRlbXNJbnRvOihOU011dGFibGVBcnJheSAqKWRpc2NhcmRlZEl0ZW1zIGVy
cm9yOihOU0Vycm9yICoqKWVycm9yCiB7CkBAIC01NjEsMTAgKzU1OSw5IEBAIHN0YXRpYyBpbmxp
bmUgV2ViSGlzdG9yeURhdGVLZXkgZGF0ZUtleShOU1RpbWVJbnRlcnZhbCBkYXRlKQogICAgICAg
ICAgICAgcmV0dXJuIE5POwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgTlNEYXRhICpkYXRhID0gW05TVVJMQ29u
bmVjdGlvbiBzZW5kU3luY2hyb25vdXNSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6VVJMXSByZXR1cm5pbmdSZXNwb25zZTpuaWwgZXJyb3I6ZXJyb3JdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgaWYgKGRhdGEubGVuZ3RoKQogICAgICAg
ICAgICAgZGljdGlvbmFyeSA9IFtOU1Byb3BlcnR5TGlzdFNlcmlhbGl6YXRpb24gcHJvcGVydHlM
aXN0V2l0aERhdGE6ZGF0YSBvcHRpb25zOk5TUHJvcGVydHlMaXN0SW1tdXRhYmxlIGZvcm1hdDpu
dWxscHRyIGVycm9yOm51bGxwdHJdOwogICAgIH0KQEAgLTc2OCwxNSArNzY1LDE0IEBAIHN0YXRp
YyBpbmxpbmUgV2ViSGlzdG9yeURhdGVLZXkgZGF0ZUtleShOU1RpbWVJbnRlcnZhbCBkYXRlKQog
ICAgIHJldHVybiBbX2hpc3RvcnlQcml2YXRlIG9yZGVyZWRMYXN0VmlzaXRlZERheXNdOwogfQog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFO
R19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiAtIChOU0FycmF5ICop
b3JkZXJlZEl0ZW1zTGFzdFZpc2l0ZWRPbkRheTooTlNDYWxlbmRhckRhdGUgKilkYXRlCiB7CiAg
ICAgcmV0dXJuIFtfaGlzdG9yeVByaXZhdGUgb3JkZXJlZEl0ZW1zTGFzdFZpc2l0ZWRPbkRheTpk
YXRlXTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfVE9QX0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKIC8vIE1B
Uks6IFVSTCBNQVRDSElORwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9I
aXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9y
eS9XZWJIaXN0b3J5SXRlbS5tbQppbmRleCBjYzE4NTdhZjAyYmFhMDc5ZWM5MmE4MWU0NjA1MDA1
ODkyM2E5Yzk4Li5kZjE5ZGZlN2I2MmZmMjc2ODk5ZTVhNDViNTlhNTU5M2M2OWZjNmQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0K
QEAgLTE5OSwxMCArMTk5LDkgQEAgdm9pZCBXS05vdGlmeUhpc3RvcnlJdGVtQ2hhbmdlZChIaXN0
b3J5SXRlbSopCiAjaWYgIVBMQVRGT1JNKElPUykKIC0gKE5TSW1hZ2UgKilpY29uCiB7Ci0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHB1c2ggCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfR0NDKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgcmV0dXJuIFtbV2ViSWNvbkRhdGFiYXNlIHNo
YXJlZEljb25EYXRhYmFzZV0gaWNvbkZvclVSTDpbc2VsZiBVUkxTdHJpbmddIHdpdGhTaXplOldl
Ykljb25TbWFsbFNpemVdOwotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVf
V0FSTklOR19HQ0NfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXROU1N0cmlu
Z0V4dHJhcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0TlNTdHJpbmdF
eHRyYXMubW0KaW5kZXggN2Y5OTUwMmYzNmI3NDkyM2YzMTFlMDA2MWFlYmUxNGQ3NjY0NmNjZS4u
NjFlYmViZmM3NmUxMDIwYjFkMDEyYWYzNDg5ZDYwZmZiMTI3NTg3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdE5TU3RyaW5nRXh0cmFzLm1tCkBAIC03
NywxMCArNzcsOSBAQCBzdGF0aWMgYm9vbCBjYW5Vc2VGYXN0UmVuZGVyZXIoY29uc3QgVW5pQ2hh
ciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgICAgIHBvaW50LnkgPSBDR0NlaWxpbmco
cG9pbnQueSk7CiAKICAgICAgICAgTlNHcmFwaGljc0NvbnRleHQgKm5zQ29udGV4dCA9IFtOU0dy
YXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBzdGF0aWNfY2Fz
dDxDR0NvbnRleHRSZWY+KFtuc0NvbnRleHQgZ3JhcGhpY3NQb3J0XSk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3ND
b250ZXh0IHsgY2dDb250ZXh0IH07CiAKICAgICAgICAgLy8gV2ViQ29yZSByZXF1aXJlcyBhIGZs
aXBwZWQgZ3JhcGhpY3MgY29udGV4dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL01pc2MvV2ViTlNJbWFnZUV4dHJhcy5tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlz
Yy9XZWJOU0ltYWdlRXh0cmFzLm0KaW5kZXggYzMyNjQzYjQ5OGZhZTcwZmQzMTI0YWU1YzQ1Njll
MDNlOTZiMmZjMS4uMGY5OGUzZTBlNTZiMGI2NDQ2ZjQzYWQ2NjE5NGY3MWNiNzIyZmE0MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU0ltYWdlRXh0cmFzLm0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU0ltYWdlRXh0cmFzLm0KQEAg
LTUzLDEwICs1Myw5IEBAIC0gKHZvaWQpX3dlYl9zY2FsZVRvTWF4U2l6ZTooTlNTaXplKXNpemUK
ICAgICAKICAgICBpZihyZXNpemVEZWx0YSA+IDAuMCl7CiAgICAgICAgIE5TU2l6ZSBuZXdTaXpl
ID0gTlNNYWtlU2l6ZSgob3JpZ2luYWxTaXplLndpZHRoICogcmVzaXplRGVsdGEpLCAob3JpZ2lu
YWxTaXplLmhlaWdodCAqIHJlc2l6ZURlbHRhKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgICAgIFtzZWxmIHNldFNjYWxlc1doZW5SZXNpemVkOllFU107Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
X0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBbc2VsZiBzZXRTaXpl
Om5ld1NpemVdOwogICAgIH0KIH0KQEAgLTY1LDI5ICs2NCwyNSBAQCAtICh2b2lkKV93ZWJfZGlz
c29sdmVUb0ZyYWN0aW9uOihmbG9hdClkZWx0YQogewogICAgIE5TSW1hZ2UgKmRpc3NvbHZlZElt
YWdlID0gW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aFNpemU6W3NlbGYgc2l6ZV1dOwogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkco
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBOU1BvaW50IHBvaW50ID0gW3NlbGYg
aXNGbGlwcGVkXSA/IE5TTWFrZVBvaW50KDAsIFtzZWxmIHNpemVdLmhlaWdodCkgOiBOU1plcm9Q
b2ludDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAKICAgICAvLyBJbiB0
aGlzIGNhc2UgdGhlIGRyYWdnaW5nIGltYWdlIGlzIGFsd2F5cyBjb3JyZWN0LgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW2Rpc3NvbHZlZEltYWdlIHNldEZsaXBwZWQ6
W3NlbGYgaXNGbGlwcGVkXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAg
ICBbZGlzc29sdmVkSW1hZ2UgbG9ja0ZvY3VzXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgIFtzZWxmIGRpc3NvbHZlVG9Qb2ludDpwb2ludCBmcmFjdGlvbjogZGVsdGFd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
X0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtkaXNzb2x2ZWRJbWFnZSB1
bmxvY2tGb2N1c107CiAKICAgICBbc2VsZiBsb2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgW2Rpc3NvbHZlZEltYWdlIGNvbXBvc2l0ZVRvUG9pbnQ6cG9p
bnQgb3BlcmF0aW9uOk5TQ29tcG9zaXRlQ29weV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgW3NlbGYgdW5sb2NrRm9jdXNdOwogCiAgICAgW2Rpc3NvbHZlZEltYWdlIHJl
bGVhc2VdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bh
c3RlYm9hcmRFeHRyYXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFz
dGVib2FyZEV4dHJhcy5tbQppbmRleCBmYTIzYzZjYmRiMTQ2Yjg2MmNjZTJlYWU0ODBhZWExMTk5
NmMxYmIwLi5jYmI2YjM1NzFjMDMyYjY0OTBlOWNiOThhYzI5NTE5NzQzNjI4YzE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJh
cy5tbQpAQCAtMTg0LDEwICsxODQsOSBAQCBzdGF0aWMgTlNBcnJheSAqX3dyaXRhYmxlVHlwZXNG
b3JJbWFnZVdpdGhBcmNoaXZlICh2b2lkKQogCiArIChpbnQpX3dlYl9zZXRGaW5kUGFzdGVib2Fy
ZFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgd2l0aE93bmVyOihpZClvd25lcgogewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgTlNQYXN0ZWJvYXJkICpmaW5kUGFzdGVi
b2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOk5TRmluZFBib2FyZF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5E
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW2ZpbmRQYXN0ZWJvYXJkIGRlY2xh
cmVUeXBlczpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6bGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5
cGUoKV0gb3duZXI6b3duZXJdOwogICAgIFtmaW5kUGFzdGVib2FyZCBzZXRTdHJpbmc6c3RyaW5n
IGZvclR5cGU6bGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUoKV07CiAgICAgcmV0dXJuIFtmaW5k
UGFzdGVib2FyZCBjaGFuZ2VDb3VudF07CkBAIC0yNzksMTAgKzI3OCw5IEBAIHN0YXRpYyBDYWNo
ZWRJbWFnZSogaW1hZ2VGcm9tRWxlbWVudChET01FbGVtZW50ICpkb21FbGVtZW50KQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmNoaXZlOihXZWJBcmNoaXZlICopYXJjaGl2
ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOihXZWJIVE1MVmll
dyAqKXNvdXJjZQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQVNT
RVJUKHNlbGYgPT0gW05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6TlNEcmFnUGJvYXJk
XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBOU1N0cmluZyAqZXh0
ZW5zaW9uID0gQCIiOwogICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gdHlwZXMgPSBhZG9w
dE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czpsZWdhY3lGaWxlc1By
b21pc2VQYXN0ZWJvYXJkVHlwZSgpLCBuaWxdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1BhbmVscy9XZWJBdXRoZW50aWNhdGlvblBhbmVsLm0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9QYW5lbHMvV2ViQXV0aGVudGljYXRpb25QYW5lbC5tCmluZGV4IDY3ZjE4Yjhm
NTM3NWVhYzU0NWIyM2E2M2RiOTc2ZjY5NDc2YjdkNGUuLjI5ODljNTIyNGQyNWEyOTRlNWI1ZGUx
NGEyMmRkYjI1YWRhZThlZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1Bh
bmVscy9XZWJBdXRoZW50aWNhdGlvblBhbmVsLm0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvUGFuZWxzL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubQpAQCAtMTA0LDEwICsxMDQsOSBAQCAt
IChJQkFjdGlvbilsb2dJbjooaWQpc2VuZGVyCiAtIChCT09MKWxvYWROaWIKIHsKICAgICBpZiAo
IW5pYkxvYWRlZCkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAg
ICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAg
ICAgICBpZiAoW05TQnVuZGxlIGxvYWROaWJOYW1lZDpXZWJBdXRoZW50aWNhdGlvblBhbmVsTmli
TmFtZSBvd25lcjpzZWxmXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgICAgICAgICBuaWJMb2FkZWQgPSBZRVM7CiAgICAgICAgICAgICBbaW1hZ2VWaWV3
IHNldEltYWdlOltOU0ltYWdlIGltYWdlTmFtZWQ6QCJOU0FwcGxpY2F0aW9uSWNvbiJdXTsKICAg
ICAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdp
bnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLm1tCmluZGV4
IDAyMTBiMDY2YmFhZDI2OTdlMDlmMjhlMDg5YWQzNWZhNzRmMzY5ZGYuLjg0NzM4M2QyNmQ0NmFh
ZTQ5OTJjOGNlNDRjOWE2YWFhYzY2YWY2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0
TWFuYWdlci5tbQpAQCAtMTg3LDEwICsxODcsOSBAQCBib29sIE5ldHNjYXBlUGx1Z2luSG9zdE1h
bmFnZXI6OnNwYXduUGx1Z2luSG9zdChjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIGNwdV90eQog
CiAgICAgUHJvY2Vzc1NlcmlhbE51bWJlciBwc247CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogICAgIEdldEN1cnJlbnRQcm9jZXNzKCZwc24pOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogCiAgICAgQVNTRVJUKE1BQ0hfUE9SVF9WQUxJRChjbGllbnRQb3J0
KSk7CiAgICAga3IgPSBfV0tQSENoZWNrSW5XaXRoUGx1Z2luSG9zdChwbHVnaW5Ib3N0UG9ydCwg
c3RhdGljX2Nhc3Q8dWludDhfdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KFtkYXRhIGJ5dGVzXSkpLCBb
ZGF0YSBsZW5ndGhdLCBjbGllbnRQb3J0LCBwc24uaGlnaExvbmdPZlBTTiwgcHNuLmxvd0xvbmdP
ZlBTTiwgcmVuZGVyU2VydmVyUG9ydCwKQEAgLTMyMiwxMSArMzIxLDEwIEBAIHZvaWQgTmV0c2Nh
cGVQbHVnaW5Ib3N0TWFuYWdlcjo6ZGlkQ3JlYXRlV2luZG93KCkKICAgICAgICAgaWYgKCFob3N0
UHJveHktPmlzTWVudUJhclZpc2libGUoKSkgewogICAgICAgICAgICAgLy8gTWFrZSBvdXJzZWx2
ZXMgdGhlIGZyb250IHByb2Nlc3MuCiAgICAgICAgICAgICBQcm9jZXNzU2VyaWFsTnVtYmVyIHBz
bjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgICAg
ICBHZXRDdXJyZW50UHJvY2VzcygmcHNuKTsKICAgICAgICAgICAgIFNldEZyb250UHJvY2Vzcygm
cHNuKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94
eS5tbQppbmRleCBlYzVmMGRhNThhNjJhOWU1NDQ3OGNjMmMwZjcwN2ViNGM3MTAxMGI2Li4zNGE2
MGYwMjYyMWM4ZDE3ZDlhNmNkMWNkMTA2ZTU3ZGYyOTY0MWVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBs
dWdpbkhvc3RQcm94eS5tbQpAQCAtMzQxLDMyICszNDEsMjkgQEAgYm9vbCBOZXRzY2FwZVBsdWdp
bkhvc3RQcm94eTo6cHJvY2Vzc1JlcXVlc3RzKCkKIAogdm9pZCBOZXRzY2FwZVBsdWdpbkhvc3RQ
cm94eTo6bWFrZUN1cnJlbnRQcm9jZXNzRnJvbnRQcm9jZXNzKCkKIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFByb2Nlc3NTZXJpYWxOdW1iZXIgcHNuOwogICAgIEdl
dEN1cnJlbnRQcm9jZXNzKCZwc24pOwogICAgIFNldEZyb250UHJvY2VzcygmcHNuKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogdm9pZCBOZXRzY2FwZVBsdWdpbkhvc3RQ
cm94eTo6bWFrZVBsdWdpbkhvc3RQcm9jZXNzRnJvbnRQcm9jZXNzKCkgY29uc3QKIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFNldEZyb250UHJvY2VzcygmbV9wbHVn
aW5Ib3N0UFNOKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FS
TklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogYm9vbCBO
ZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6aXNQbHVnaW5Ib3N0UHJvY2Vzc0Zyb250UHJvY2Vzcygp
IGNvbnN0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBQcm9jZXNz
U2VyaWFsTnVtYmVyIGZyb250UHJvY2VzczsKICAgICBHZXRGcm9udFByb2Nlc3MoJmZyb250UHJv
Y2Vzcyk7CiAKICAgICBCb29sZWFuIGlzU2FtZVByb2Nlc3MgPSAwOwogICAgIFNhbWVQcm9jZXNz
KCZmcm9udFByb2Nlc3MsICZtX3BsdWdpbkhvc3RQU04sICZpc1NhbWVQcm9jZXNzKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIHJldHVybiBpc1NhbWVQcm9jZXNzOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0
c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4IGU5M2ZiNTA2
ZTVkZTBhNWRhZTNhZmE1NjU4Y2JhZjQxNzhlMjZhYTEuLjIxYzFkNzM3MTVhODdiODYxYzEwODFi
MGFhODZmMDRhMTRkYWViOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1Bs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJv
eHkubW0KQEAgLTQyMywxMCArNDIzLDkgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJv
eHk6OnN0YXJ0VGltZXJzKGJvb2wgdGhyb3R0bGVUaW1lcnMpCiAgICAgCiB2b2lkIE5ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eTo6bW91c2VFdmVudChOU1ZpZXcgKnBsdWdpblZpZXcsIE5TRXZl
bnQgKmV2ZW50LCBOUENvY29hRXZlbnRUeXBlIHR5cGUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICBOU1BvaW50IHNjcmVlblBvaW50ID0gW1tldmVudCB3aW5kb3dd
IGNvbnZlcnRCYXNlVG9TY3JlZW46W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBOU1BvaW50IHBsdWdpblBvaW50ID0gW3BsdWdp
blZpZXcgY29udmVydFBvaW50OltldmVudCBsb2NhdGlvbkluV2luZG93XSBmcm9tVmlldzpuaWxd
OwogICAgIAogICAgIGludCBjbGlja0NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQ
bHVnaW5WaWV3Lm1tCmluZGV4IGYzZTA0YjRmNTU4MDYxMTkxYzg2ZmQ2Nzc1NTE1OTE0ODYzZDEx
OTQuLjkzNWZkMjkwYjZmZmQzZTFkZmU5Nzg4MTdiMTgzZWQwNjY0NjM3YzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3Rl
ZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTQ3Nyw4ICs0NzcsNyBAQCBleHRl
cm4gIkMiIHsKICAgICB9CiAKICAgICBpZiAoX3Byb3h5KSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIGlmIChfc29mdHdhcmVSZW5kZXJlcikgewogICAg
ICAgICAgICAgaWYgKFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dERyYXdpbmdUb1Nj
cmVlbl0pIHsKICAgICAgICAgICAgICAgICBfc29mdHdhcmVSZW5kZXJlci0+cmVuZGVyKChDR0Nv
bnRleHRSZWYpW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0
XSwgTlNSZWN0VG9DR1JlY3QocmVjdCkpOwpAQCAtNDg4LDcgKzQ4Nyw3IEBAIGV4dGVybiAiQyIg
ewogICAgICAgICB9IGVsc2UgaWYgKF9zbmFwc2hvdHRpbmcgJiYgW3NlbGYgc3VwcG9ydHNTbmFw
c2hvdHRpbmddKSB7CiAgICAgICAgICAgICBfcHJveHktPnNuYXBzaG90KHJlaW50ZXJwcmV0X2Nh
c3Q8Q0dDb250ZXh0UmVmPihbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFw
aGljc1BvcnRdKSwgW3NlbGYgYm91bmRzXS5zaXplLndpZHRoLCBbc2VsZiBib3VuZHNdLnNpemUu
aGVpZ2h0KTsKICAgICAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
IAogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViVGV4dElucHV0V2luZG93Q29u
dHJvbGxlci5tCmluZGV4IGZiZDY2N2I3NDhmODQyM2VlZTg4MTdhZTRkMTViNWE3NjYyZmI1MTku
Ljk3ZTVlNWZlNTAzNTc5YWRhM2ZjZGM1YWQwM2NmMmUxYmE0YzI3ZjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYlRleHRJbnB1dFdpbmRvd0Nv
bnRyb2xsZXIubQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9X
ZWJUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm0KQEAgLTEwNiwxOSArMTA2LDE3IEBAIC0gKHZv
aWQpX2tleWJvYXJkSW5wdXRTb3VyY2VDaGFuZ2VkOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNh
dGlvbgogCiAtIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooTlNFdmVudCAqKWV2ZW50IHN0cmlu
ZzooTlNTdHJpbmcgKiopc3RyaW5nCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICBCT09MIGhhZE1hcmtlZFRleHQgPSBbX2lucHV0VGV4dFZpZXcgaGFzTWFya2VkVGV4
dF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICAqc3RyaW5nID0gbmls
OwogCiAgICAgLy8gTGV0IFRTTSBrbm93IHRoYXQgYSBib3R0b20gaW5wdXQgd2luZG93IHdvdWxk
IGJlIGNyZWF0ZWQgZm9yIG1hcmtlZCB0ZXh0LgogICAgIC8vIEZJWE1FOiBDYW4gYmUgcmVtb3Zl
ZCBvbmNlIHdlIGNhbiByZWx5IG9uIF9fTlNVc2VzRmxvYXRpbmdJbnB1dFdpbmRvdyAob3IgYSBi
ZXR0ZXIgQVBJKSBiZWluZyBhdmFpbGFibGUgZXZlcnl3aGVyZS4KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdjYXN0LXF1
YWwiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XY2FzdC1xdWFsIik7CiAgICAgRXZlbnRS
ZWYgY2FyYm9uRXZlbnQgPSAoRXZlbnRSZWYpW2V2ZW50IGV2ZW50UmVmXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XY2FzdC1x
dWFsIik7CiAgICAgaWYgKGNhcmJvbkV2ZW50KSB7CiAgICAgICAgIEJvb2xlYW4gaWdub3JlUEFI
ID0gdHJ1ZTsKICAgICAgICAgU2V0RXZlbnRQYXJhbWV0ZXIoY2FyYm9uRXZlbnQsICdpUEFIJywg
dHlwZUJvb2xlYW4sIHNpemVvZihpZ25vcmVQQUgpLCAmaWdub3JlUEFIKTsKQEAgLTEyNywxMCAr
MTI1LDkgQEAgLSAoQk9PTClfaW50ZXJwcmV0S2V5RXZlbnQ6KE5TRXZlbnQgKilldmVudCBzdHJp
bmc6KE5TU3RyaW5nICoqKXN0cmluZwogICAgIGlmICghW1tfaW5wdXRUZXh0VmlldyBpbnB1dENv
bnRleHRdIGhhbmRsZUV2ZW50OmV2ZW50XSkKICAgICAgICAgcmV0dXJuIE5POwogICAgIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaWYgKFtfaW5wdXRUZXh0VmlldyBo
YXNNYXJrZWRUZXh0XSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAg
ICAgICAgLy8gRG9uJ3Qgc2hvdyB0aGUgaW5wdXQgbWV0aG9kIHdpbmRvdyBmb3IgZGVhZCBrZXlz
CiAgICAgICAgIGlmIChbW2V2ZW50IGNoYXJhY3RlcnNdIGxlbmd0aF0gPiAwKQogICAgICAgICAg
ICAgW3NlbGYgb3JkZXJGcm9udDpuaWxdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDZk
ODVhOGM1ZWE0MTU5ODJiMTA4ZWVhYTZkZWM0N2MwYzg2NjE5OTQuLjMyOTJkMDQ2ZDMxNzAyOWVl
NjA4NzAwMGI2MDJkM2Q2ZjExOWU4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTcy
OSwyNSArNzI5LDIyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIHN3aXRjaCAoc291
cmNlU3BhY2UpIHsKICAgICAgICAgY2FzZSBOUENvb3JkaW5hdGVTcGFjZVBsdWdpbjoKICAgICAg
ICAgICAgIHNvdXJjZVBvaW50SW5TY3JlZW5TcGFjZSA9IFtzZWxmIGNvbnZlcnRQb2ludDpzb3Vy
Y2VQb2ludCB0b1ZpZXc6bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICAgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgICAgICAgICBzb3VyY2VQb2ludEluU2NyZWVuU3BhY2UgPSBbW3NlbGYgY3Vy
cmVudFdpbmRvd10gY29udmVydEJhc2VUb1NjcmVlbjpzb3VyY2VQb2ludEluU2NyZWVuU3BhY2Vd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIE5QQ29vcmRpbmF0ZVNwYWNlV2luZG93
OgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAg
IHNvdXJjZVBvaW50SW5TY3JlZW5TcGFjZSA9IFtbc2VsZiBjdXJyZW50V2luZG93XSBjb252ZXJ0
QmFzZVRvU2NyZWVuOnNvdXJjZVBvaW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2Fz
ZSBOUENvb3JkaW5hdGVTcGFjZUZsaXBwZWRXaW5kb3c6CiAgICAgICAgICAgICBzb3VyY2VQb2lu
dC55ID0gW1tzZWxmIGN1cnJlbnRXaW5kb3ddIGZyYW1lXS5zaXplLmhlaWdodCAtIHNvdXJjZVBv
aW50Lnk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBJ
R05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAg
ICAgICAgc291cmNlUG9pbnRJblNjcmVlblNwYWNlID0gW1tzZWxmIGN1cnJlbnRXaW5kb3ddIGNv
bnZlcnRCYXNlVG9TY3JlZW46c291cmNlUG9pbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgICAg
ICBjYXNlIE5QQ29vcmRpbmF0ZVNwYWNlU2NyZWVuOgpAQCAtNzY3LDI1ICs3NjQsMjIgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgLy8gVGhlbiBjb252ZXJ0IGJhY2sgdG8gdGhlIGRl
c3RpbmF0aW9uIHNwYWNlCiAgICAgc3dpdGNoIChkZXN0U3BhY2UpIHsKICAgICAgICAgY2FzZSBO
UENvb3JkaW5hdGVTcGFjZVBsdWdpbjoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICAgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgICAgICAgICBkZXN0UG9pbnQgPSBbW3NlbGYgY3VycmVudFdpbmRvd10g
Y29udmVydFNjcmVlblRvQmFzZTpzb3VyY2VQb2ludEluU2NyZWVuU3BhY2VdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5E
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgICAgICBkZXN0UG9pbnQgPSBb
c2VsZiBjb252ZXJ0UG9pbnQ6ZGVzdFBvaW50IGZyb21WaWV3Om5pbF07CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIE5QQ29vcmRpbmF0ZVNwYWNlV2luZG93
OgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAg
IGRlc3RQb2ludCA9IFtbc2VsZiBjdXJyZW50V2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOnNv
dXJjZVBvaW50SW5TY3JlZW5TcGFjZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGNhc2Ug
TlBDb29yZGluYXRlU3BhY2VGbGlwcGVkV2luZG93OgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgICAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAgIGRlc3RQb2ludCA9IFtbc2VsZiBjdXJyZW50
V2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOnNvdXJjZVBvaW50SW5TY3JlZW5TcGFjZV07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAgIGRlc3RQ
b2ludC55ID0gW1tzZWxmIGN1cnJlbnRXaW5kb3ddIGZyYW1lXS5zaXplLmhlaWdodCAtIGRlc3RQ
b2ludC55OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblBhY2th
Z2UubW0KaW5kZXggZjIyODkzNDc0MjE5MDRiZWUzYzg4NjY2YzRlMzAwOTJmYzEwNTBkZS4uYmFm
Y2RhNjhhZDg2NDczZTdjNGVhNGMwNjA5ZmM3MzNmNzUyZTBmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblBhY2thZ2UubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblBhY2th
Z2UubW0KQEAgLTE2NywxNCArMTY3LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAg
IGlmICghTlBfSW5pdGlhbGl6ZSB8fCAhTlBfR2V0RW50cnlQb2ludHMgfHwgIU5QX1NodXRkb3du
KQogICAgICAgICByZXR1cm4gTk87CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogICAgIC8vIFBsdWdpbnMgKGF0IGxlYXN0IFFUKSByZXF1aXJlIHRoYXQgeW91IGNhbGwgVXNl
UmVzRmlsZSBvbiB0aGUgcmVzb3VyY2UgZmlsZSBiZWZvcmUgbG9hZGluZyBpdC4KICAgICByZXNv
dXJjZVJlZiA9IFtzZWxmIG9wZW5SZXNvdXJjZUZpbGVdOwogICAgIGlmIChyZXNvdXJjZVJlZiAh
PSAtMSkgewogICAgICAgICBVc2VSZXNGaWxlKHJlc291cmNlUmVmKTsKICAgICB9Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBicm93c2VyRnVuY3MudmVyc2lvbiA9IE5Q
X1ZFUlNJT05fTUlOT1I7CiAgICAgYnJvd3NlckZ1bmNzLnNpemUgPSBzaXplb2YoTlBOZXRzY2Fw
ZUZ1bmNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2Vi
TmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9X
ZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggNDlkYzFjNTE0ZjcyYzQ0OWZmZGFlNzI5Y2E4
ZDljMDgxNjRhOWUzZS4uNDAyOGJhMTZjYTIzNDBhYTRiMmJmNTBmN2ZkMGZiOWEyMGFmZjEwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBs
dWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRz
Y2FwZVBsdWdpblZpZXcubW0KQEAgLTM3NywxMCArMzc3LDkgQEAgc3RhdGljIGlubGluZSB2b2lk
IGdldE5QUmVjdChjb25zdCBOU1JlY3QmIG5yLCBOUFJlY3QmIG5wcikKICAgICAgICAgICAgIFJn
bkhhbmRsZSBjbGlwUmVnaW9uID0gTmV3UmduKCk7CiAgICAgICAgICAgICBxZFBvcnRTdGF0ZS0+
Y2xpcFJlZ2lvbiA9IGNsaXBSZWdpb247CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICAgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgICAgICAgICBDR0NvbnRleHRSZWYgY3VycmVudENvbnRleHQgPSAo
Q0dDb250ZXh0UmVmKVtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNz
UG9ydF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBJR05PUkVf
V0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAg
ICAgIGlmIChjdXJyZW50Q29udGV4dCAmJiBDR0NvbnRleHRHZXRUeXBlKGN1cnJlbnRDb250ZXh0
KSA9PSBrQ0dDb250ZXh0VHlwZUJpdG1hcCkgewogICAgICAgICAgICAgICAgIC8vIFdlIGNoZWNr
IGZvciBrQ0dDb250ZXh0VHlwZUJpdG1hcCBoZXJlLCBiZWNhdXNlIGlmIHdlIGp1c3QgY2FsbGVk
IENHQml0bWFwQ29udGV4dEdldERhdGEKICAgICAgICAgICAgICAgICAvLyBvbiBhbnkgY29udGV4
dCwgd2UnZCBsb2cgdG8gdGhlIGNvbnNvbGUgZXZlcnkgdGltZS4gQnV0IGV2ZW4gaWYgY3VycmVu
dENvbnRleHQgaXMgYQpAQCAtNTAzLDEwICs1MDIsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0
TlBSZWN0KGNvbnN0IE5TUmVjdCYgbnIsIE5QUmVjdCYgbnByKQogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBBU1NFUlQoW05TVmlldyBmb2N1c1ZpZXddID09IHNlbGYpOwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBJR05PUkVfV0FSTklOR19DTEFO
RygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgQ0dDb250ZXh0UmVm
IGNvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0NvbnRleHRSZWY+KFtbTlNHcmFwaGljc0NvbnRleHQg
Y3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAKICAgICAgICAgICAgIFBvcnRTdGF0ZV9DRyAqY2dQb3J0U3RhdGUg
PSAoUG9ydFN0YXRlX0NHICopbWFsbG9jKHNpemVvZihQb3J0U3RhdGVfQ0cpKTsKICAgICAgICAg
ICAgIHBvcnRTdGF0ZSA9IChQb3J0U3RhdGUpY2dQb3J0U3RhdGU7CkBAIC02OTUsMTAgKzY5Myw5
IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3QoY29uc3QgTlNSZWN0JiBuciwgTlBSZWN0
JiBucHIpCiB7CiAgICAgQVNTRVJUKF9ldmVudEhhbmRsZXIpOwogICAgIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSBzdGF0aWNf
Y2FzdDxDR0NvbnRleHRSZWY+KFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdy
YXBoaWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIF9ldmVu
dEhhbmRsZXItPmRyYXdSZWN0KGNvbnRleHQsIHJlY3QpOwogfQogCkBAIC0xMzM4LDEwICsxMzM1
LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGdldE5QUmVjdChjb25zdCBOU1JlY3QmIG5yLCBOUFJl
Y3QmIG5wcikKICAgICAgICAgaWYgKHByaW50ZWRQbHVnaW5CaXRtYXApIHsKICAgICAgICAgICAg
IC8vIEZsaXAgdGhlIGJpdG1hcCBiZWZvcmUgZHJhd2luZyBiZWNhdXNlIHRoZSBRdWlja0RyYXcg
cG9ydCBpcyBmbGlwcGVkIHJlbGF0aXZlCiAgICAgICAgICAgICAvLyB0byB0aGlzIHZpZXcuCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBJR05PUkVfV0FS
TklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgQ0dD
b250ZXh0UmVmIGNnQ29udGV4dCA9IChDR0NvbnRleHRSZWYpW1tOU0dyYXBoaWNzQ29udGV4dCBj
dXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjZ0NvbnRleHQp
OwogICAgICAgICAgICAgTlNSZWN0IGJvdW5kcyA9IFtzZWxmIGJvdW5kc107CiAgICAgICAgICAg
ICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY2dDb250ZXh0LCAwLjBmLCBOU0hlaWdodChib3VuZHMp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2lu
Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2lu
Q29udHJvbGxlci5tbQppbmRleCAyOTBmZWY2M2FkOTE2YWE2MThkMzBhMjFkOTE0M2UyMThlYzkw
ZTg1Li4xZDNiYTU1NjY2YThkNmY1MzYzMjgwNTE1MzliOWY2NGRjOWVkMmI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVy
Lm1tCkBAIC02NTQsMjEgKzY1NCwxOSBAQCBzdGF0aWMgYWxlcnREaWRFbmRJTVAgb3JpZ2luYWxf
VFNVcGRhdGVDaGVja19hbGVydERpZEVuZF9yZXR1cm5Db2RlX2NvbnRleHRJbmZvXwogCiBzdGF0
aWMgdm9pZCBXZWJLaXRfVFNVcGRhdGVDaGVja19hbGVydERpZEVuZF9yZXR1cm5Db2RlX2NvbnRl
eHRJbmZvXyhpZCBvYmplY3QsIFNFTCBzZWxlY3RvciwgTlNBbGVydCAqYWxlcnQsIE5TSW50ZWdl
ciByZXR1cm5Db2RlLCB2b2lkKiBjb250ZXh0SW5mbykKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIFtbKFRTVXBkYXRlQ2hlY2sgKilvYmplY3QgZGVsZWdhdGVdIGF1
dG9yZWxlYXNlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FS
TklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIG9yaWdp
bmFsX1RTVXBkYXRlQ2hlY2tfYWxlcnREaWRFbmRfcmV0dXJuQ29kZV9jb250ZXh0SW5mb18ob2Jq
ZWN0LCBzZWxlY3RvciwgYWxlcnQsIHJldHVybkNvZGUsIGNvbnRleHRJbmZvKTsKIH0KIAogc3Rh
dGljIHZvaWQgV2ViS2l0X05TQWxlcnRfYmVnaW5TaGVldE1vZGFsRm9yV2luZG93X21vZGFsRGVs
ZWdhdGVfZGlkRW5kU2VsZWN0b3JfY29udGV4dEluZm9fKGlkIG9iamVjdCwgU0VMIHNlbGVjdG9y
LCBOU1dpbmRvdyAqd2luZG93LCBpZCBtb2RhbERlbGVnYXRlLCBTRUwgZGlkRW5kU2VsZWN0b3Is
IHZvaWQqIGNvbnRleHRJbmZvKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgaWYgKGlzS2luZE9mQ2xhc3MobW9kYWxEZWxlZ2F0ZSwgQCJUU1VwZGF0ZUNoZWNrIikp
CiAgICAgICAgIFtbKFRTVXBkYXRlQ2hlY2sgKiltb2RhbERlbGVnYXRlIGRlbGVnYXRlXSByZXRh
aW5dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgb3JpZ2luYWxfTlNB
bGVydF9iZWdpblNoZWV0TW9kYWxGb3JXaW5kb3dfbW9kYWxEZWxlZ2F0ZV9kaWRFbmRTZWxlY3Rv
cl9jb250ZXh0SW5mb18ob2JqZWN0LCBzZWxlY3Rvciwgd2luZG93LCBtb2RhbERlbGVnYXRlLCBk
aWRFbmRTZWxlY3RvciwgY29udGV4dEluZm8pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCmluZGV4IDdiMWZiZWFl
ZTEwNjA5YmVjOWYzYzJmZTRkNjQ2Njk5ZGQzZDRhZjguLmNiYjQwOGM0NmNhNDQ1MThlNTc4NGU1
ZTUzZDdlYzNlNThjZTIxYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KQEAgLTExMywxNSArMTEzLDE0IEBAIHZv
aWQgUG9wdXBNZW51TWFjOjpwb3B1bGF0ZSgpCiAgICAgICAgIFttZW51SXRlbSBzZXRFbmFibGVk
Om1fY2xpZW50LT5pdGVtSXNFbmFibGVkKGkpXTsKICAgICAgICAgW21lbnVJdGVtIHNldFRvb2xU
aXA6bV9jbGllbnQtPml0ZW1Ub29sVGlwKGkpXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgICAgICAvLyBBbGxvdyB0aGUgYWNjZXNzaWJsZSB0ZXh0IG9mIHRo
ZSBpdGVtIHRvIGJlIG92ZXJyaWRkZW4gaWYgbmVjZXNzYXJ5LgogICAgICAgICBpZiAoQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgewogICAgICAgICAgICAgTlNTdHJpbmcg
KmFjY2Vzc2liaWxpdHlPdmVycmlkZSA9IG1fY2xpZW50LT5pdGVtQWNjZXNzaWJpbGl0eVRleHQo
aSk7CiAgICAgICAgICAgICBpZiAoW2FjY2Vzc2liaWxpdHlPdmVycmlkZSBsZW5ndGhdKQogICAg
ICAgICAgICAgICAgIFttZW51SXRlbSBhY2Nlc3NpYmlsaXR5U2V0T3ZlcnJpZGVWYWx1ZTphY2Nl
c3NpYmlsaXR5T3ZlcnJpZGUgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9u
QXR0cmlidXRlXTsKICAgICAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgKaW5kZXggYzhk
MzNlYjE4OWE2ZjMxZDVjY2JkZTE4ZWQ1N2I2ZmU1NGNmZjdkNC4uNTc1YTM0OGZjYjVlNTc1MDI1
ZjM4YmI0YjQ4MTdmNTlkZDc1YWU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50
LmgKQEAgLTUwLDE0ICs1MCwxMSBAQCBwdWJsaWM6CiAjZW5kaWYKIHByaXZhdGU6CiAjaWYgUExB
VEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNpZiBkZWZpbmVkKF9f
aGFzX3dhcm5pbmcpICYmIF9faGFzX3dhcm5pbmcoIi1XdW51c2VkLXByaXZhdGUtZmllbGQiKQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXByaXZhdGUtZmllbGQi
Ci0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bnVzZWQtcHJpdmF0
ZS1maWVsZCIpCiAjZW5kaWYKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CiAjaWYgUExBVEZPUk0o
SU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
VE9QX0xFVkVMX0VORCgiLVd1bnVzZWQtcHJpdmF0ZS1maWVsZCIpCiAjZW5kaWYKICNpZiBVU0Uo
QVVUT0NPUlJFQ1RJT05fUEFORUwpCiAgICAgQ29ycmVjdGlvblBhbmVsIG1fY29ycmVjdGlvblBh
bmVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRHJhZ0NsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkRyYWdDbGllbnQubW0KaW5kZXggYTU5MjRmNDdlMDY3MmNlNmE1NDQxOTg4MTQwNTdhNmY3
ZDY4ZGNlMi4uMDYwZGM1NmQyMDVjYzI3MDQ1YmE3MmYzY2Q0NGRiMGU4Yzk3MDcwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFn
Q2xpZW50Lm1tCkBAIC0xMzMsMTAgKzEzMyw5IEBAIHZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnRE
cmFnKERyYWdJdGVtIGRyYWdJdGVtLCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRnJhCiAg
ICAgICAgICAgICBSZXBvcnREaXNjYXJkZWREZWxlZ2F0ZUV4Y2VwdGlvbihzZWxlY3RvciwgZXhj
ZXB0aW9uKTsKICAgICAgICAgfQogICAgIH0gZWxzZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgICAgICBbdG9wSFRNTFZpZXcgZHJhZ0ltYWdlOmRyYWdOU0ltYWdl
IGF0OmRyYWdMb2NhdGlvbkluQ29udGVudENvb3JkaW5hdGVzIG9mZnNldDpOU1plcm9TaXplIGV2
ZW50OmV2ZW50IHBhc3RlYm9hcmQ6cGFzdGVib2FyZCBzb3VyY2U6c291cmNlSFRNTFZpZXcgc2xp
ZGVCYWNrOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQogCiB2
b2lkIFdlYkRyYWdDbGllbnQ6OmJlZ2luRHJhZyhEcmFnSXRlbSBkcmFnSXRlbSwgRnJhbWUmIGZy
YW1lLCBjb25zdCBJbnRQb2ludCYgbW91c2VEb3duUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBt
b3VzZURyYWdnZWRQb3NpdGlvbiwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIERyYWdTb3Vy
Y2VBY3Rpb24gZHJhZ1NvdXJjZUFjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5k
ZXggODZiZTZlNGUzNjcyYjdkMWJlOGU4N2U1NjQ1Y2Q3YmMwNmM1ZmU4Zi4uY2Q5NTg0YjhmNWQz
MzI2Yzc1ZjA5ZGRlOWQ3ZWFlM2QzZTJkNjg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KQEAgLTMwOCwxMCArMzA4LDkgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVy
dE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiBkb2MKIAogICAgIGlm
ICghbWFpblJlc291cmNlTG9hZGVyKSB7CiAgICAgICAgIC8vIFRoZSByZXNvdXJjZSBoYXMgYWxy
ZWFkeSBiZWVuIGNhY2hlZCwgb3IgdGhlIGNvbnZlcnNpb24gaXMgYmVpbmcgYXR0bXB0ZWQgd2hl
biBub3QgY2FsbGluZyBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKCkuCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIFdlYkRvd25sb2Fk
ICp3ZWJEb3dubG9hZCA9IFtbV2ViRG93bmxvYWQgYWxsb2NdIGluaXRXaXRoUmVxdWVzdDpyZXF1
ZXN0Lm5zVVJMUmVxdWVzdChIVFRQQm9keVVwZGF0ZVBvbGljeTo6VXBkYXRlSFRUUEJvZHkpIGRl
bGVnYXRlOlt3ZWJWaWV3IGRvd25sb2FkRGVsZWdhdGVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgICAgIFt3ZWJEb3dubG9hZCBhdXRvcmVsZWFzZV07CiAgICAg
ICAgIHJldHVybjsKICAgICB9CkBAIC0yMzQyLDEwICsyMzQxLDkgQEAgc3RhdGljIE5TSW1hZ2Ug
KndlYkdldE5TSW1hZ2UoSW1hZ2UqIGltYWdlLCBOU1NpemUgc2l6ZSkKICAgICBpZiAoIW5zSW1h
Z2UpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgaWYgKCFOU0VxdWFsU2l6ZXMoW25zSW1hZ2Ug
c2l6ZV0sIHNpemUpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgICAgIFtuc0ltYWdlIHNldFNjYWxlc1doZW5SZXNpemVkOllFU107Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBbbnNJbWFnZSBzZXRTaXplOnNpemVdOwog
ICAgIH0KICAgICByZXR1cm4gbnNJbWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KaW5kZXggOTFiNjViZWM5
NGJmODk0ZjQxNjU0YmU5NGJlZGEzMzFkOWVlZWQ5MC4uZmQzYjIxMTg1YTgwZDc4MTcxN2YyNDU5
MWNhZDNhMTc2NzBjZjIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
SW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KQEAgLTI2NiwxMCArMjY2LDkgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgQVNTRVJUKFtfdGFyZ2V0VmlldyB3aW5kb3dd
KTsKIAogICAgIE5TUmVjdCBoaWdobGlnaHRXaW5kb3dGcmFtZSA9IFtfdGFyZ2V0VmlldyBjb252
ZXJ0UmVjdDpbX3RhcmdldFZpZXcgdmlzaWJsZVJlY3RdIHRvVmlldzpuaWxdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaGlnaGxpZ2h0V2luZG93RnJhbWUub3JpZ2lu
ID0gW1tfdGFyZ2V0VmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46aGlnaGxpZ2h0V2lu
ZG93RnJhbWUub3JpZ2luXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05P
UkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAg
IHJldHVybiBoaWdobGlnaHRXaW5kb3dGcmFtZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbQpp
bmRleCBlN2NkNWU0NjJkZjI2OGZhZDIwNmRkYTUxMmRkNTMzMzUzYjE5MDQ2Li45ZDE2MzUwNmZj
ZWM5MTM2M2EwZWNjMWM0ZjhiOTY2MzAxZjg1ZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodFZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHRWaWV3Lm1t
CkBAIC05OCwxMCArOTgsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogICAgICAgICBB
U1NFUlQoW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gaXNGbGlwcGVkXSk7CiAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgR3JhcGhpY3ND
b250ZXh0IGNvbnRleHQoKFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KilbW05TR3JhcGhpY3NDb250
ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgICAgIFtfd2ViTm9kZUhpZ2hsaWdodCBpbnNwZWN0b3JDb250
cm9sbGVyXS0+ZHJhd0hpZ2hsaWdodChjb250ZXh0KTsKICAgICAgICAgW05TR3JhcGhpY3NDb250
ZXh0IHJlc3RvcmVHcmFwaGljc1N0YXRlXTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJDbGlwVmlldy5tbQppbmRleCA1ZmQ1YzE0MjcwMmIxODZlYTk0MDdm
MzhmYzBlM2M5MzZiNDdiNDZhLi40ODc5NGFkNGU4MTU2MzY0NWMyMzhhMjgwMmZmZDVlNjcxZTRk
NzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkNsaXBW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViQ2xpcFZpZXcu
bW0KQEAgLTY2LDggKzY2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgaWYgKCFz
ZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKICAgICAvLyBJbiBXZWJIVE1MVmlldywgd2Ugc2V0IGEgY2xpcC4gVGhpcyBpcyBub3Qg
dHlwaWNhbCB0byBkbyBpbiBhbgogICAgIC8vIE5TVmlldywgYW5kIHdoaWxlIGNvcnJlY3QgZm9y
IGFueSBvbmUgaW52b2NhdGlvbiBvZiBkcmF3UmVjdDosCiAgICAgLy8gaXQgY2F1c2VzIHNvbWUg
YmFkIHByb2JsZW1zIGlmIHRoYXQgY2xpcCBpcyBjYWNoZWQgYmV0d2VlbiBjYWxscy4KQEAgLTc4
LDcgKzc3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgLy8gU2VlIHRoZXNlIGJ1
Z3MgZm9yIG1vcmUgaW5mb3JtYXRpb246CiAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzM0MDkzMTU+
OiBSRUdSRVNTU0lPTiAoN0I1OC03QjYwKT86IFNhZmFyaSBkcmF3cyBibGFuayBmcmFtZXMgb24g
bWFjb3N4LmFwcGxlLmNvbSBwZXJmIHBhZ2UKICAgICBbc2VsZiByZWxlYXNlR1N0YXRlXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQo
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggNGYwMDdkMDNh
MGFlNWQwNDk4NzFmZTQ0MzhkM2RkYWM2NTBiMjYwMy4uZGFiZGY3OWIzODk3MDJlZGZiYmU0NGQ4
ZGMyMmMxNGYwMjYyNWZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YkZyYW1lLm1tCkBAIC00NDMsMTAgKzQ0Myw5IEBAIHN0YXRpYyBOU1VSTCAqY3JlYXRlVW5pcXVl
V2ViRGF0YVVSTCgpOwogICAgICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXco
KSkgewogICAgICAgICAgICAgdmlldy0+c2V0VHJhbnNwYXJlbnQoIWRyYXdzQmFja2dyb3VuZCk7
CiAjaWYgIVBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICAgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgICAgICAgICBDb2xvciBjb2xvciA9IGNvbG9yRnJvbU5TQ29sb3IoW2JhY2tn
cm91bmRDb2xvciBjb2xvclVzaW5nQ29sb3JTcGFjZU5hbWU6TlNEZXZpY2VSR0JDb2xvclNwYWNl
XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBJR05PUkVfV0FS
TklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICNlbHNlCiAgICAg
ICAgICAgICBDb2xvciBjb2xvciA9IENvbG9yKGJhY2tncm91bmRDb2xvcik7CiAjZW5kaWYKQEAg
LTYyMiwxMCArNjIxLDkgQEAgc3RhdGljIGlubGluZSBXZWJEYXRhU291cmNlICpkYXRhU291cmNl
KERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBBU1NFUlQo
W1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gaXNGbGlwcGVkXSk7CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIENHQ29udGV4dFJlZiBjdHggPSBzdGF0
aWNfY2FzdDxDR0NvbnRleHRSZWY+KFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRd
IGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogI2Vsc2UK
ICAgICBDR0NvbnRleHRSZWYgY3R4ID0gV0tHZXRDdXJyZW50R3JhcGhpY3NDb250ZXh0KCk7CiAj
ZW5kaWYKQEAgLTIyMDcsMTAgKzIyMDUsOSBAQCBzdGF0aWMgV2ViRnJhbWVMb2FkVHlwZSB0b1dl
YkZyYW1lTG9hZFR5cGUoRnJhbWVMb2FkVHlwZSBmcmFtZUxvYWRUeXBlKQogICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgewogICAgICAgICBBWE9iamVjdENh
Y2hlOjplbmFibGVBY2Nlc3NpYmlsaXR5KCk7CiAjaWYgIVBMQVRGT1JNKElPUykKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkco
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgQVhPYmplY3RDYWNoZTo6c2V0
RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShbW05TQXBwIGFjY2Vzc2liaWxpdHlB
dHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VBdHRyaWJ1
dGVdIGJvb2xWYWx1ZV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICNl
bmRpZgogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCmluZGV4IDc1M2RjZWIyOGQzMGU2
YTkwZjQwMTdkOWYwMWUzZDRlZGZmZjE1MzkuLjYxNmZkMTZlMGQ0Nzg1NmZkN2I0Y2U5MjI4N2Vh
NzBkOWY5MTg2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQpAQCAtMjA3LDExICsyMDcsMTAgQEAg
c3RhdGljIE5TUmVjdCBjb252ZXJ0UmVjdFRvU2NyZWVuKE5TV2luZG93ICp3aW5kb3csIE5TUmVj
dCByZWN0KQogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiB3ZWJWaWV3Q29udGVudHMgPSBhZG9w
dENGKENHV2luZG93TGlzdENyZWF0ZUltYWdlKE5TUmVjdFRvQ0dSZWN0KHdlYlZpZXdGcmFtZSks
IGtDR1dpbmRvd0xpc3RPcHRpb25JbmNsdWRpbmdXaW5kb3csIHdpbmRvd0lELCBrQ0dXaW5kb3dJ
bWFnZVNob3VsZEJlT3BhcXVlKSk7CiAgICAgCiAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUg
cmUtZW5hYmxlZCBpbiBiZWdhbkVudGVyRnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6ZmluYWxG
cmFtZToKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FS
TklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5TRGlzYWJsZVNj
cmVlblVwZGF0ZXMoKTsKICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpOT107Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5E
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBOU1Jlc3BvbmRlciAqd2ViV2lu
ZG93Rmlyc3RSZXNwb25kZXIgPSBbW193ZWJWaWV3IHdpbmRvd10gZmlyc3RSZXNwb25kZXJdOwog
ICAgIFtbc2VsZiB3aW5kb3ddIHNldEZyYW1lOnNjcmVlbkZyYW1lIGRpc3BsYXk6Tk9dOwpAQCAt
MjY4LDExICsyNjcsMTAgQEAgc3RhdGljIHZvaWQgc2V0Q2xpcFJlY3RGb3JXaW5kb3coTlNXaW5k
b3cgKndpbmRvdywgTlNSZWN0IGNsaXBSZWN0KQogICAgIF9pc0VudGVyaW5nRnVsbFNjcmVlbiA9
IE5POwogICAgIAogICAgIGlmIChjb21wbGV0ZWQpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxl
ZCBhdCB0aGUgZW5kIG9mIHRoaXMgYmxvY2sKICAgICAgICAgTlNEaXNhYmxlU2NyZWVuVXBkYXRl
cygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FSTklO
R19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgW3NlbGYg
X2RvY3VtZW50XS0+c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihmYWxzZSk7CiAgICAgICAgIFtzZWxm
IF9kb2N1bWVudF0tPndlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoX2VsZW1lbnQu
Z2V0KCkpOwogICAgICAgICAKQEAgLTI5NCwxMCArMjkyLDkgQEAgc3RhdGljIHZvaWQgc2V0Q2xp
cFJlY3RGb3JXaW5kb3coTlNXaW5kb3cgKndpbmRvdywgTlNSZWN0IGNsaXBSZWN0KQogICAgICAg
ICAKICAgICAgICAgW19iYWNrZ3JvdW5kV2luZG93LmdldCgpIG9yZGVyT3V0OnNlbGZdOwogICAg
ICAgICBbX2JhY2tncm91bmRXaW5kb3cuZ2V0KCkgc2V0RnJhbWU6TlNaZXJvUmVjdCBkaXNwbGF5
OllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIE5T
RW5hYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICB9IGVsc2UKICAgICAgICAgW19zY2FsZUFuaW1hdGlvbi5nZXQoKSBzdG9wQW5pbWF0
aW9uXTsKIH0KQEAgLTMxNSwxMiArMzEyLDExIEBAIHN0YXRpYyB2b2lkIHNldENsaXBSZWN0Rm9y
V2luZG93KE5TV2luZG93ICp3aW5kb3csIE5TUmVjdCBjbGlwUmVjdCkKICAgICAgICAgcmV0dXJu
OwogICAgIF9pc0Z1bGxTY3JlZW4gPSBOTzsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBpbiBiZWdhbkV4
aXRGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTpmaW5hbEZyYW1lOgogICAgIE5TRGlzYWJsZVNj
cmVlblVwZGF0ZXMoKTsKICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpOT107Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5E
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBfZmluYWxGcmFtZSA9IHNjcmVl
blJlY3RPZkNvbnRlbnRzKF9lbGVtZW50LmdldCgpKTsKIApAQCAtMzYwLDExICszNTYsMTAgQEAg
c3RhdGljIHZvaWQgc2V0Q2xpcFJlY3RGb3JXaW5kb3coTlNXaW5kb3cgKndpbmRvdywgTlNSZWN0
IGNsaXBSZWN0KQogICAgIAogICAgIFtzZWxmIF91cGRhdGVNZW51QW5kRG9ja0ZvckZ1bGxTY3Jl
ZW5dOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAvLyBTY3JlZW4g
dXBkYXRlcyB0byBiZSByZS1lbmFibGVkIGF0IHRoZSBlbmQgb2YgdGhpcyBmdW5jdGlvbgogICAg
IE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKIAogICAgIFtzZWxmIF9kb2N1bWVudF0tPnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oZmFsc2Up
OwogICAgIFtzZWxmIF9kb2N1bWVudF0tPndlYmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVu
dChfZWxlbWVudC5nZXQoKSk7CkBAIC0zOTEsMTAgKzM4Niw5IEBAIHN0YXRpYyB2b2lkIHNldENs
aXBSZWN0Rm9yV2luZG93KE5TV2luZG93ICp3aW5kb3csIE5TUmVjdCBjbGlwUmVjdCkKIAogICAg
IFtbX3dlYlZpZXcgd2luZG93XSBtYWtlS2V5QW5kT3JkZXJGcm9udDpzZWxmXTsKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgTlNFbmFibGVTY3JlZW5VcGRhdGVzKCk7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
RU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIC0gKHZvaWQpcGVyZm9ybUNs
b3NlOihpZClzZW5kZXIKQEAgLTUxMywxMCArNTA3LDkgQEAgc3RhdGljIE5TUmVjdCB3aW5kb3dG
cmFtZUZyb21BcHBhcmVudEZyYW1lcyhOU1JlY3Qgc2NyZWVuRnJhbWUsIE5TUmVjdCBpbml0aWFs
RnIKICAgICAKICAgICAvLyBzZXRDbGlwUmVjdEZvcldpbmRvdyB0YWtlcyB3aW5kb3cgY29vcmRp
bmF0ZXMsIHNvIGNvbnZlcnQgZnJvbSBzY3JlZW4gY29vcmRpbmF0ZXMgaGVyZToKICAgICBOU1Jl
Y3QgZmluYWxCb3VuZHMgPSBfZmluYWxGcmFtZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgIGZpbmFsQm91bmRzLm9yaWdpbiA9IFtbc2VsZiB3aW5kb3ddIGNvbnZlcnRT
Y3JlZW5Ub0Jhc2U6ZmluYWxCb3VuZHMub3JpZ2luXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICBzZXRDbGlwUmVjdEZvcldpbmRvdyhzZWxmLndpbmRvdywgZmluYWxCb3Vu
ZHMpOwogICAgIAogICAgIFtbc2VsZiB3aW5kb3ddIG1ha2VLZXlBbmRPcmRlckZyb250OnNlbGZd
OwpAQCAtNTQzLDE2ICs1MzYsMTQgQEAgc3RhdGljIE5TUmVjdCB3aW5kb3dGcmFtZUZyb21BcHBh
cmVudEZyYW1lcyhOU1JlY3Qgc2NyZWVuRnJhbWUsIE5TUmVjdCBpbml0aWFsRnIKICAgICAKICAg
ICBbX2JhY2tncm91bmRXaW5kb3cuZ2V0KCkgb3JkZXJXaW5kb3c6TlNXaW5kb3dCZWxvdyByZWxh
dGl2ZVRvOltbc2VsZiB3aW5kb3ddIHdpbmRvd051bWJlcl1dOwogICAgIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6
WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbW3NlbGYgd2luZG93
XSBkaXNwbGF5SWZOZWVkZWRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgLy8gU2NyZWVuIHVwZGF0ZXMgZGlzYWJsZWQgaW4gZW50ZXJGdWxsU2NyZWVuOgogICAgIE5T
RW5hYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
fQogCiAtICh2b2lkKV9zdGFydEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOihO
U1RpbWVJbnRlcnZhbClkdXJhdGlvbgpAQCAtNTkxLDIzICs1ODIsMjAgQEAgc3RhdGljIE5TUmVj
dCB3aW5kb3dGcmFtZUZyb21BcHBhcmVudEZyYW1lcyhOU1JlY3Qgc2NyZWVuRnJhbWUsIE5TUmVj
dCBpbml0aWFsRnIKICAgICAKICAgICAvLyBzZXRDbGlwUmVjdEZvcldpbmRvdyB0YWtlcyB3aW5k
b3cgY29vcmRpbmF0ZXMsIHNvIGNvbnZlcnQgZnJvbSBzY3JlZW4gY29vcmRpbmF0ZXMgaGVyZToK
ICAgICBOU1JlY3QgZmluYWxCb3VuZHMgPSBfZmluYWxGcmFtZTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgIGZpbmFsQm91bmRzLm9yaWdpbiA9IFtbc2VsZiB3aW5kb3dd
IGNvbnZlcnRTY3JlZW5Ub0Jhc2U6ZmluYWxCb3VuZHMub3JpZ2luXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKICAgICBzZXRDbGlwUmVjdEZvcldpbmRvdyhzZWxmLndpbmRvdywg
ZmluYWxCb3VuZHMpOwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICBbW3NlbGYgd2luZG93XSBkaXNwbGF5SWZOZWVkZWRdOwogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAvLyBTY3JlZW4gdXBkYXRlcyBk
aXNhYmxlZCBpbiBleGl0RnVsbFNjcmVlbjoKICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19F
TkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggNmE3YjE0MGJkODVk
M2YxM2RlNDFjNmRiZmU1MmEzYzQ0OGQ0NTI1My4uNmI0NTA3ZDYwMWRhYTcwMWMwMzlmNzg5Njli
ZDk5NzQ0NGNiODNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YkhUTUxWaWV3Lm1tCkBAIC02MjQsMTAgKzYyNCw5IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE5T
SW50ZWdlcj4gdG9UYWcoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogCiAtIChOU1ZpZXcgKilf
d2ViX2JvcmRlclZpZXcKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAg
IHJldHVybiBfYm9yZGVyVmlldzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0K
IAogQGVuZApAQCAtMTQ5NCwxMCArMTQ5Myw5IEBAIHN0YXRpYyBOU0NvbnRyb2xTdGF0ZVZhbHVl
IGtpdChUcmlTdGF0ZSBzdGF0ZSkKIHsKICAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCiAgICAgICAgIGxvY2F0
aW9uOltbc2VsZiB3aW5kb3ddCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJ
R05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KQogICAgICAgICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xF
VkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAgICAgICAgIG1vZGlmaWVyRmxh
Z3M6W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgIHRpbWVzdGFt
cDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2luZG93
TnVtYmVyOltbc2VsZiB3aW5kb3ddIHdpbmRvd051bWJlcl0KQEAgLTE1MzgsMTkgKzE1MzYsMTcg
QEAgc3RhdGljIE5TQ29udHJvbFN0YXRlVmFsdWUga2l0KFRyaVN0YXRlIHN0YXRlKQogI2lmIFBM
QVRGT1JNKE1BQykKICAgICBBU1NFUlQoIV9wcml2YXRlLT5zdWJ2aWV3c1NldEFzaWRlKTsKICAg
ICBBU1NFUlQoX3ByaXZhdGUtPnNhdmVkU3Vidmlld3MgPT0gbmlsKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIF9wcml2YXRlLT5zYXZlZFN1YnZpZXdzID0gX3N1YnZp
ZXdzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIC8vIFdlIG5lZWQgdG8g
a2VlcCB0aGUgbGF5ZXItaG9zdGluZyB2aWV3IGluIHRoZSBzdWJ2aWV3cywgb3RoZXJ3aXNlIHRo
ZSBsYXllcnMgZmxhc2guCiAgICAgaWYgKF9wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3KSB7CiAg
ICAgICAgIE5TQXJyYXkqIG5ld1N1YnZpZXdzID0gW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9i
amVjdHM6X3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcsIG5pbF07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIF9zdWJ2aWV3cyA9IG5ld1N1YnZpZXdzOwog
ICAgIH0gZWxzZQogICAgICAgICBfc3Vidmlld3MgPSBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgX3ByaXZhdGUtPnN1YnZpZXdzU2V0QXNpZGUgPSBZRVM7CiAjZW5k
aWYKICB9CkBAIC0xNTYwLDE0ICsxNTU2LDEzIEBAIHN0YXRpYyBOU0NvbnRyb2xTdGF0ZVZhbHVl
IGtpdChUcmlTdGF0ZSBzdGF0ZSkKICNpZiBQTEFURk9STShNQUMpCiAgICAgQVNTRVJUKF9wcml2
YXRlLT5zdWJ2aWV3c1NldEFzaWRlKTsKICAgICBpZiAoX3ByaXZhdGUtPmxheWVySG9zdGluZ1Zp
ZXcpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgW19z
dWJ2aWV3cyByZWxlYXNlXTsKICAgICAgICAgX3N1YnZpZXdzID0gX3ByaXZhdGUtPnNhdmVkU3Vi
dmlld3M7CiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKF9zdWJ2aWV3cyA9PSBuaWwpOwog
ICAgICAgICBfc3Vidmlld3MgPSBfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3czsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgfQogICAgIF9wcml2YXRlLT5zYXZlZFN1YnZp
ZXdzID0gbmlsOwogICAgIF9wcml2YXRlLT5zdWJ2aWV3c1NldEFzaWRlID0gTk87CkBAIC0yMTEw
LDEwICsyMTA1LDkgQEAgc3RhdGljIGJvb2wgbW91c2VFdmVudElzUGFydE9mQ2xpY2tPckRyYWco
TlNFdmVudCAqZXZlbnQpCiAKICAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkCiAgICAgICAgIGxvY2F0
aW9uOltbc2VsZiB3aW5kb3ddCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJ
R05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KQogICAgICAgICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xF
VkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAgICAgICAgIG1vZGlmaWVyRmxh
Z3M6W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgIHRpbWVzdGFt
cDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2luZG93
TnVtYmVyOltbc2VsZiB3aW5kb3ddIHdpbmRvd051bWJlcl0KQEAgLTM5ODIsMTAgKzM5NzYsOSBA
QCBzdGF0aWMgQk9PTCBjdXJyZW50U2Nyb2xsSXNCbGl0KE5TVmlldyAqY2xpcFZpZXcpCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIC8vIE9ubHkgZG8gdGhlIHN5bmNocm9uaXphdGlvbiBkYW5jZSBp
ZiB3ZSdyZSBkcmF3aW5nIGludG8gdGhlIHdpbmRvdywgb3RoZXJ3aXNlCiAgICAgLy8gd2Ugcmlz
ayBkaXNhYmxpbmcgc2NyZWVuIHVwZGF0ZXMgd2hlbiBubyBmbHVzaCBpcyBwZW5kaW5nLgotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaWYgKFtOU0dyYXBoaWNzQ29udGV4
dCBjdXJyZW50Q29udGV4dF0gPT0gW1tzZWxmIHdpbmRvd10gZ3JhcGhpY3NDb250ZXh0XSAmJiBb
d2ViVmlldyBfbmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbl0pIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIC8vIERpc2FibGUgc2NyZWVuIHVw
ZGF0ZXMgdG8gbWluaW1pemUgdGhlIGNoYW5jZXMgb2YgdGhlIHJhY2UgYmV0d2VlbiB0aGUgQ0EK
ICAgICAgICAgLy8gZGlzcGxheSBsaW5rIGFuZCBBcHBLaXQgZHJhd2luZyBjYXVzaW5nIGZsYXNo
ZXMuCiAgICAgICAgIFtbc2VsZiB3aW5kb3ddIGRpc2FibGVTY3JlZW5VcGRhdGVzVW50aWxGbHVz
aF07CkBAIC00MjE3LDEyICs0MjEwLDExIEBAIHN0YXRpYyBCT09MIGN1cnJlbnRTY3JvbGxJc0Js
aXQoTlNWaWV3ICpjbGlwVmlldykKICAgICBpZiAoRnJhbWUqIGNvcmVmcmFtZSA9IGNvcmUoW3Nl
bGYgX2ZyYW1lXSkpCiAgICAgICAgIGNvcmVmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubW91c2VEb3du
KGV2ZW50KTsKICNlbHNlCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBO
U0lucHV0TWFuYWdlciAqY3VycmVudElucHV0TWFuYWdlciA9IFtOU0lucHV0TWFuYWdlciBjdXJy
ZW50SW5wdXRNYW5hZ2VyXTsKIAogICAgIGlmICghW2N1cnJlbnRJbnB1dE1hbmFnZXIgd2FudHNU
b0hhbmRsZU1vdXNlRXZlbnRzXSB8fCAhW2N1cnJlbnRJbnB1dE1hbmFnZXIgaGFuZGxlTW91c2VF
dmVudDpldmVudF0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
ICAgIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZW5kUmV2ZXJ0aW5nQ2hhbmdlOk5P
IG1vdmVMZWZ0Ok5PXTsKIAogICAgICAgICAvLyBJZiB0aGUgd2ViIHBhZ2UgaGFuZGxlcyB0aGUg
Y29udGV4dCBtZW51IGV2ZW50IGFuZCBtZW51Rm9yRXZlbnQ6IHJldHVybnMgbmlsLCB3ZSdsbCBn
ZXQgY29udHJvbCBjbGljayBldmVudHMgaGVyZS4KQEAgLTQyNzcsMTIgKzQyNjksMTEgQEAgc3Rh
dGljIEJPT0wgY3VycmVudFNjcm9sbElzQmxpdChOU1ZpZXcgKmNsaXBWaWV3KQogICAgIC8vIHRo
ZSBjdXJyZW50IGV2ZW50IHByZXZlbnRzIHRoYXQgZnJvbSBjYXVzaW5nIGEgcHJvYmxlbSBpbnNp
ZGUgV2ViS2l0IG9yIEFwcEtpdCBjb2RlLgogICAgIFtbZXZlbnQgcmV0YWluXSBhdXRvcmVsZWFz
ZV07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FS
TklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5TSW5wdXRNYW5h
Z2VyICpjdXJyZW50SW5wdXRNYW5hZ2VyID0gW05TSW5wdXRNYW5hZ2VyIGN1cnJlbnRJbnB1dE1h
bmFnZXJdOwogICAgIGlmIChbY3VycmVudElucHV0TWFuYWdlciB3YW50c1RvSGFuZGxlTW91c2VF
dmVudHNdICYmIFtjdXJyZW50SW5wdXRNYW5hZ2VyIGhhbmRsZU1vdXNlRXZlbnQ6ZXZlbnRdKQog
ICAgICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBb
c2VsZiByZXRhaW5dOwogCkBAIC00NDQ3LDEyICs0NDM4LDExIEBAIHN0YXRpYyBib29sIG1hdGNo
ZXNFeHRlbnNpb25PckVxdWl2YWxlbnQoTlNTdHJpbmcgKmZpbGVuYW1lLCBOU1N0cmluZyAqZXh0
ZW5zaW9uCiAgICAgW3NlbGYgX3NldE1vdXNlRG93bkV2ZW50Om5pbF07CiAKICNpZiBQTEFURk9S
TShNQUMpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBOU0lucHV0TWFu
YWdlciAqY3VycmVudElucHV0TWFuYWdlciA9IFtOU0lucHV0TWFuYWdlciBjdXJyZW50SW5wdXRN
YW5hZ2VyXTsKICAgICBpZiAoW2N1cnJlbnRJbnB1dE1hbmFnZXIgd2FudHNUb0hhbmRsZU1vdXNl
RXZlbnRzXSAmJiBbY3VycmVudElucHV0TWFuYWdlciBoYW5kbGVNb3VzZUV2ZW50OmV2ZW50XSkK
ICAgICAgICAgcmV0dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogI2VuZGlm
CiAKICAgICBbc2VsZiByZXRhaW5dOwpAQCAtNDgwNCwxMCArNDc5NCw5IEBAIHN0YXRpYyBSZWZQ
dHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkK
IC0gKHZvaWQpX2VuZFByaW50TW9kZUFuZFJlc3RvcmVXaW5kb3dBdXRvZGlzcGxheQogewogICAg
IFtzZWxmIF9lbmRQcmludE1vZGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogLSAodm9pZClfZGVsYXllZEVuZFByaW50TW9kZTooTlNQ
cmludE9wZXJhdGlvbiAqKWluaXRpYXRpbmdPcGVyYXRpb24KQEAgLTQ4NDIsMTAgKzQ4MzEsOSBA
QCBzdGF0aWMgUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1l
KiBjb3JlRnJhbWUpCiAgICAgLy8gTXVzdCBkbyB0aGlzIGV4cGxpY2l0IGRpc3BsYXkgaGVyZSwg
YmVjYXVzZSBvdGhlcndpc2UgdGhlIHZpZXcgbWlnaHQgcmVkaXNwbGF5IHdoaWxlIHRoZSBwcmlu
dAogICAgIC8vIHNoZWV0IHdhcyB1cCwgdXNpbmcgcHJpbnRlciBmb250cyAoYW5kIGxvb2tpbmcg
ZGlmZmVyZW50KS4KICAgICBbc2VsZiBkaXNwbGF5SWZOZWVkZWRdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6Tk9d
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
X0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgW1tzZWxmIF93ZWJWaWV3
XSBfYWRqdXN0UHJpbnRpbmdNYXJnaW5zRm9ySGVhZGVyQW5kRm9vdGVyXTsKICAgICBOU1ByaW50
T3BlcmF0aW9uICpwcmludE9wZXJhdGlvbiA9IFtOU1ByaW50T3BlcmF0aW9uIGN1cnJlbnRPcGVy
YXRpb25dOwpAQCAtNTAzMywxMCArNTAyMSw5IEBAIHN0YXRpYyBSZWZQdHI8S2V5Ym9hcmRFdmVu
dD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKICNpZiBQTEFURk9STShJ
T1MpCiAgICAgICAgIHJldHVybiBbYWNjVHJlZSBhY2Nlc3NpYmlsaXR5SGl0VGVzdDpwb2ludF07
CiAjZWxzZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBJR05P
UkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBO
U1BvaW50IHdpbmRvd0Nvb3JkID0gW1tzZWxmIHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpw
b2ludF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJO
SU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICByZXR1
cm4gW2FjY1RyZWUgYWNjZXNzaWJpbGl0eUhpdFRlc3Q6W3NlbGYgY29udmVydFBvaW50OndpbmRv
d0Nvb3JkIGZyb21WaWV3Om5pbF1dOwogI2VuZGlmCiAgICAgfQpAQCAtNTA3NCwxMCArNTA2MSw5
IEBAIHN0YXRpYyBSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJh
bWUqIGNvcmVGcmFtZSkKIAogLSAoTlNEaWN0aW9uYXJ5ICopX2ZvbnRBdHRyaWJ1dGVzRnJvbUZv
bnRQYXN0ZWJvYXJkCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBO
U1Bhc3RlYm9hcmQgKmZvbnRQYXN0ZWJvYXJkID0gW05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0
aE5hbWU6TlNGb250UGJvYXJkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAg
ICBpZiAoZm9udFBhc3RlYm9hcmQgPT0gbmlsKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIE5T
RGF0YSAqZGF0YSA9IFtmb250UGFzdGVib2FyZCBkYXRhRm9yVHlwZTpsZWdhY3lGb250UGFzdGVi
b2FyZFR5cGUoKV07CkBAIC01MTAxLDEwICs1MDg3LDkgQEAgc3RhdGljIFJlZlB0cjxLZXlib2Fy
ZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVudChGcmFtZSogY29yZUZyYW1lKQogCiAtIChOU1N0
cmluZyAqKV9jb2xvckFzU3RyaW5nOihOU0NvbG9yICopY29sb3IKIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5TQ29sb3IgKnJnYkNvbG9yID0gW2NvbG9yIGNvbG9y
VXNpbmdDb2xvclNwYWNlTmFtZTpOU0RldmljZVJHQkNvbG9yU3BhY2VdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIC8vIEZJWE1FOiBJZiBjb2xvciBpcyBub24tbmlsIGFu
ZCByZ2JDb2xvciBpcyBuaWwsIHRoYXQgbWVhbnMgd2UgZ290IHNvbWUga2luZAogICAgIC8vIG9m
IGZhbmN5IGNvbG9yIHRoYXQgY2FuJ3QgYmUgY29udmVydGVkIHRvIFJHQi4gQ2hhbmdpbmcgdGhh
dCB0byAidHJhbnNwYXJlbnQiCiAgICAgLy8gbWlnaHQgbm90IGJlIGdyZWF0LCBidXQgaXQncyBw
cm9iYWJseSBPSy4KQEAgLTUyODEsMTAgKzUyNjYsOSBAQCBzdGF0aWMgUmVmUHRyPEtleWJvYXJk
RXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAKICAgICAvLyBQ
dXQgUlRGIHdpdGggZm9udCBhdHRyaWJ1dGVzIG9uIHRoZSBwYXN0ZWJvYXJkLgogICAgIC8vIE1h
eWJlIGxhdGVyIHdlIHNob3VsZCBhZGQgYSBwYXN0ZWJvYXJkIHR5cGUgdGhhdCBjb250YWlucyBD
U1MgdGV4dCBmb3IgIm5hdGl2ZSIgY29weSBhbmQgcGFzdGUgZm9udC4KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBOU1Bhc3RlYm9hcmQgKmZvbnRQYXN0ZWJvYXJk
ID0gW05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6TlNGb250UGJvYXJkXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbZm9udFBhc3RlYm9hcmQgZGVjbGFyZVR5
cGVzOltOU0FycmF5IGFycmF5V2l0aE9iamVjdDpsZWdhY3lGb250UGFzdGVib2FyZFR5cGUoKV0g
b3duZXI6bmlsXTsKICAgICBbZm9udFBhc3RlYm9hcmQgc2V0RGF0YTpbc2VsZiBfc2VsZWN0aW9u
U3RhcnRGb250QXR0cmlidXRlc0FzUlRGXSBmb3JUeXBlOmxlZ2FjeUZvbnRQYXN0ZWJvYXJkVHlw
ZSgpXTsKIH0KQEAgLTYxMjAsMTUgKzYxMDQsMTQgQEAgc3RhdGljIEJPT0wgd3JpdGluZ0RpcmVj
dGlvbktleUJpbmRpbmdzRW5hYmxlZCgpCiAgICAgY29uc3QgVmVjdG9yPEtleXByZXNzQ29tbWFu
ZD4mIGNvbW1hbmRzID0gcGFyYW1ldGVycy0+ZXZlbnQtPmtleXByZXNzQ29tbWFuZHMoKTsKIAog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY29tbWFuZHMuc2l6ZSgpOyArK2kpIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgaWYgKGNvbW1hbmRzW2ld
LmNvbW1hbmROYW1lID09ICJpbnNlcnRUZXh0OiIpCiAgICAgICAgICAgICBbc2VsZiBpbnNlcnRU
ZXh0OmNvbW1hbmRzW2ldLnRleHRdOwogICAgICAgICBlbHNlIGlmIChjb21tYW5kc1tpXS5jb21t
YW5kTmFtZSA9PSAibm9vcDoiKQogICAgICAgICAgICAgOyAvLyBEbyBub3RoaW5nLiBUaGlzIGNh
c2UgY2FuIGJlIHJlbW92ZWQgb25jZSA8cmRhcjovL3Byb2JsZW0vOTAyNTAxMj4gaXMgZml4ZWQu
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIFtzZWxmIGRvQ29tbWFuZEJ5U2VsZWN0b3I6TlNT
ZWxlY3RvckZyb21TdHJpbmcoY29tbWFuZHNbaV0uY29tbWFuZE5hbWUpXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgfQogICAgIHBhcmFtZXRlcnMtPmV2ZW50LT5r
ZXlwcmVzc0NvbW1hbmRzKCkuY2xlYXIoKTsKICAgICBwYXJhbWV0ZXJzLT5zaG91bGRTYXZlQ29t
bWFuZHMgPSB3YXNTYXZpbmdDb21tYW5kczsKQEAgLTYzMjQsMTAgKzYzMDcsOSBAQCBzdGF0aWMg
Qk9PTCB3cml0aW5nRGlyZWN0aW9uS2V5QmluZGluZ3NFbmFibGVkKCkKICAgICAgICAgLy8gSWYg
d2UgYXJlIGluIGEgbGF5ZXItYmFja2VkIHZpZXcsIHdlIG5lZWQgdG8gbWFudWFsbHkgaW5pdGlh
bGl6ZSB0aGUgZ2VvbWV0cnkgZm9yIG91ciBsYXllci4KICAgICAgICAgW3ZpZXdMYXllciBzZXRC
b3VuZHM6TlNSZWN0VG9DR1JlY3QoW19wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3IGJvdW5kc10p
XTsKICAgICAgICAgW3ZpZXdMYXllciBzZXRBbmNob3JQb2ludDpDR1BvaW50TWFrZSgwLCBbc2Vs
ZiBpc0ZsaXBwZWRdID8gMSA6IDApXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKICAgICAgICAgQ0dQb2ludCBsYXllclBvc2l0aW9uID0gTlNQb2ludFRvQ0dQb2ludChb
c2VsZiBjb252ZXJ0UG9pbnRUb0Jhc2U6W19wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3IGZyYW1l
XS5vcmlnaW5dKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAg
IFt2aWV3TGF5ZXIgc2V0UG9zaXRpb246bGF5ZXJQb3NpdGlvbl07CiAgICAgfQogICAgIApAQCAt
NjQ1NywxMCArNjQzOSw5IEBAIHN0YXRpYyBCT09MIHdyaXRpbmdEaXJlY3Rpb25LZXlCaW5kaW5n
c0VuYWJsZWQoKQogICAgICAgICBMT0coVGV4dElucHV0LCAidGV4dFN0b3JhZ2UgLT4gbmlsIik7
CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgTlNBdHRyaWJ1dGVkU3RyaW5nICpyZXN1bHQgPSBbc2VsZiBhdHRyaWJ1dGVk
U3Vic3RyaW5nRnJvbVJhbmdlOk5TTWFrZVJhbmdlKDAsIFVJTlRfTUFYKV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBMT0coVGV4dElucHV0LCAidGV4dFN0b3JhZ2Ug
LT4gXCIlQFwiIiwgcmVzdWx0ID8gW3Jlc3VsdCBzdHJpbmddIDogQCIiKTsKICAgICAKQEAgLTY5
MzksMTUgKzY5MjAsMTQgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1
dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKIAogICAgIHVuc2lnbmVk
IHN0YXJ0OwogICAgIHVuc2lnbmVkIGVuZDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogICAgIGlmIChjb3JlRnJhbWUtPmVkaXRvcigpLmdldENvbXBvc2l0aW9uU2VsZWN0aW9u
KHN0YXJ0LCBlbmQpKQogICAgICAgICBbW05TSW5wdXRNYW5hZ2VyIGN1cnJlbnRJbnB1dE1hbmFn
ZXJdIG1hcmtlZFRleHRTZWxlY3Rpb25DaGFuZ2VkOk5TTWFrZVJhbmdlKHN0YXJ0LCBlbmQgLSBz
dGFydCkgY2xpZW50OnNlbGZdOwogICAgIGVsc2UgewogICAgICAgICBjb3JlRnJhbWUtPmVkaXRv
cigpLmNhbmNlbENvbXBvc2l0aW9uKCk7CiAgICAgICAgIFtbTlNJbnB1dE1hbmFnZXIgY3VycmVu
dElucHV0TWFuYWdlcl0gbWFya2VkVGV4dEFiYW5kb25lZDpzZWxmXTsKICAgICB9Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IDI0ZGFjOWUzYThmYjg5MzRhNjRk
MTljYjFjZDMxYWI5MWNiN2ZkODUuLmY3MjE5ZjM2YmIxOWFkZWNkMTU1OWFlYjljODdiYTMxOWRl
MGY5MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERG
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcu
bW0KQEAgLTEyNiwxMCArMTI2LDkgQEAgc3RhdGljIHZvaWQgX2FwcGxpY2F0aW9uSW5mb0Zvck1J
TUVUeXBlKE5TU3RyaW5nICp0eXBlLCBOU1N0cmluZyAqKm5hbWUsIE5TSW1hZ2UKIHsKICAgICBD
RlVSTFJlZiBhcHBVUkwgPSBudWxscHRyOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKICAgICBPU1N0YXR1cyBlcnJvciA9IExTQ29weUFwcGxpY2F0aW9uRm9yTUlNRVR5cGUo
KF9fYnJpZGdlIENGU3RyaW5nUmVmKXR5cGUsIGtMU1JvbGVzQWxsLCAmYXBwVVJMKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBpZiAoZXJyb3IgIT0gbm9FcnIpCiAgICAg
ICAgIHJldHVybjsKICAgICAKQEAgLTIyNiwxMCArMjI1LDkgQEAgc3RhdGljIEJPT0wgX1BERlNl
bGVjdGlvbnNBcmVFcXVhbChQREZTZWxlY3Rpb24gKnNlbGVjdGlvbkEsIFBERlNlbGVjdGlvbiAq
c2VsZWMKIC0gKHZvaWQpY2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYTooaWQpc2VuZGVyCiB7
CiAgICAgLy8gRklYTUU6IEdldCByaWQgb2YgdGhpcyBvbmNlIDxyZGFyOi8vcHJvYmxlbS8yNTE0
OTI5ND4gaGFzIGJlZW4gZml4ZWQuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9ubnVsbCIKKyAgICBJR05PUkVfV0FS
TklOR19DTEFORygiLVdub25udWxsIik7CiAgICAgW1BERlN1YnZpZXcgc2Nyb2xsU2VsZWN0aW9u
VG9WaXNpYmxlOm5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKCItV25vbm51bGwiKTsKIH0KIAogLSAodm9pZClzY3JvbGxQYWdl
RG93bjooaWQpc2VuZGVyCkBAIC0zNzAsMTAgKzM2OCw5IEBAIHN0YXRpYyBCT09MIF9QREZTZWxl
Y3Rpb25zQXJlRXF1YWwoUERGU2VsZWN0aW9uICpzZWxlY3Rpb25BLCBQREZTZWxlY3Rpb24gKnNl
bGVjCiAKIC0gKHZvaWQpX3JlY3Vyc2l2ZURpc3BsYXlSZWN0SWZOZWVkZWRJZ25vcmluZ09wYWNp
dHk6KE5TUmVjdClyZWN0IGlzVmlzaWJsZVJlY3Q6KEJPT0wpaXNWaXNpYmxlUmVjdCByZWN0SXNW
aXNpYmxlUmVjdEZvclZpZXc6KE5TVmlldyAqKXZpc2libGVWaWV3IHRvcFZpZXc6KEJPT0wpdG9w
VmlldwogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQ0dDb250ZXh0
UmVmIGNvbnRleHQgPSAoQ0dDb250ZXh0UmVmKVtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENv
bnRleHRdIGdyYXBoaWNzUG9ydF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgCiAgICAgYm9vbCBhbGxvd3NTbW9vdGhpbmcgPSBDR0NvbnRleHRHZXRBbGxvd3NGb250U21v
b3RoaW5nKGNvbnRleHQpOwogICAgIGJvb2wgYWxsb3dzU3VicGl4ZWxRdWFudGl6YXRpb24gPSBD
R0NvbnRleHRHZXRBbGxvd3NGb250U3VicGl4ZWxRdWFudGl6YXRpb24oY29udGV4dCk7CkBAIC0z
ODYsMTAgKzM4Myw5IEBAIHN0YXRpYyBCT09MIF9QREZTZWxlY3Rpb25zQXJlRXF1YWwoUERGU2Vs
ZWN0aW9uICpzZWxlY3Rpb25BLCBQREZTZWxlY3Rpb24gKnNlbGVjCiAKIC0gKHZvaWQpX3JlY3Vy
c2l2ZURpc3BsYXlBbGxEaXJ0eVdpdGhMb2NrRm9jdXM6KEJPT0wpbmVlZHNMb2NrRm9jdXMgdmlz
UmVjdDooTlNSZWN0KXZpc1JlY3QKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gKENHQ29udGV4dFJlZilbW05TR3JhcGhpY3ND
b250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIAogICAgIGJvb2wgYWxsb3dzU21vb3RoaW5nID0gQ0dDb250ZXh0
R2V0QWxsb3dzRm9udFNtb290aGluZyhjb250ZXh0KTsKICAgICBib29sIGFsbG93c1N1YnBpeGVs
UXVhbnRpemF0aW9uID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUXVhbnRpemF0aW9u
KGNvbnRleHQpOwpAQCAtNDAyLDEwICszOTgsOSBAQCBzdGF0aWMgQk9PTCBfUERGU2VsZWN0aW9u
c0FyZUVxdWFsKFBERlNlbGVjdGlvbiAqc2VsZWN0aW9uQSwgUERGU2VsZWN0aW9uICpzZWxlYwog
CiAtICh2b2lkKV9yZWN1cnNpdmU6KEJPT0wpcmVjdXJzZSBkaXNwbGF5UmVjdElnbm9yaW5nT3Bh
Y2l0eTooTlNSZWN0KWRpc3BsYXlSZWN0IGluQ29udGV4dDooTlNHcmFwaGljc0NvbnRleHQgKiln
cmFwaGljc0NvbnRleHQgdG9wVmlldzooQk9PTCl0b3BWaWV3CiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IChDR0NvbnRleHRS
ZWYpW2dyYXBoaWNzQ29udGV4dCBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogICAgIAogICAgIGJvb2wgYWxsb3dzU21vb3RoaW5nID0gQ0dDb250ZXh0R2V0
QWxsb3dzRm9udFNtb290aGluZyhjb250ZXh0KTsKICAgICBib29sIGFsbG93c1N1YnBpeGVsUXVh
bnRpemF0aW9uID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUXVhbnRpemF0aW9uKGNv
bnRleHQpOwpAQCAtNjY5LDEwICs2NjQsOSBAQCBzdGF0aWMgQk9PTCBfUERGU2VsZWN0aW9uc0Fy
ZUVxdWFsKFBERlNlbGVjdGlvbiAqc2VsZWN0aW9uQSwgUERGU2VsZWN0aW9uICpzZWxlYwogICAg
IFtQREZTdWJ2aWV3IHNldEN1cnJlbnRTZWxlY3Rpb246c2VsZWN0aW9uXTsKIAogICAgIC8vIEZJ
WE1FOiBHZXQgcmlkIG9mIHRoaXMgb25jZSA8cmRhcjovL3Byb2JsZW0vMjUxNDkyOTQ+IGhhcyBi
ZWVuIGZpeGVkLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbm51bGwiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkco
Ii1Xbm9ubnVsbCIpOwogICAgIFtQREZTdWJ2aWV3IHNjcm9sbFNlbGVjdGlvblRvVmlzaWJsZTpu
aWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdub25udWxsIik7CiAgICAgcmV0dXJuIFlFUzsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xs
ZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9u
Q29udHJvbGxlci5tbQppbmRleCBjNmYwZTczNDVmNWVlODJiNzFiYzFjNGFiYTI2YzQwZTIxZmYw
M2E2Li5hNWJmZWE2ODM0MTcxMDU2MGFmYzI1MmY2OTI0YjRkNzU0YzE0N2QxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJv
bGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlRleHRDb21w
bGV0aW9uQ29udHJvbGxlci5tbQpAQCAtODQsMTAgKzg0LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiB7CiAgICAgTlNSZWN0IHNjcm9sbEZyYW1lID0gTlNNYWtlUmVjdCgwLCAwLCAxMDAs
IDEwMCk7CiAgICAgTlNSZWN0IHRhYmxlRnJhbWUgPSBOU1plcm9SZWN0OyAgICAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIHRhYmxlRnJhbWUuc2l6ZSA9IFtOU1Njcm9s
bFZpZXcgY29udGVudFNpemVGb3JGcmFtZVNpemU6c2Nyb2xsRnJhbWUuc2l6ZSBoYXNIb3Jpem9u
dGFsU2Nyb2xsZXI6Tk8gaGFzVmVydGljYWxTY3JvbGxlcjpZRVMgYm9yZGVyVHlwZTpOU05vQm9y
ZGVyXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBOU1RhYmxlQ29sdW1u
ICpjb2x1bW4gPSBbW05TVGFibGVDb2x1bW4gYWxsb2NdIGluaXRdOwogICAgIFtjb2x1bW4gc2V0
V2lkdGg6dGFibGVGcmFtZS5zaXplLndpZHRoXTsKICAgICBbY29sdW1uIHNldEVkaXRhYmxlOk5P
XTsKQEAgLTEzMywxMCArMTMyLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKICAgICBO
U1JlY3Qgd2luZG93RnJhbWU7CiAgICAgTlNQb2ludCB3b3JkU3RhcnQgPSB0b3BMZWZ0OwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgd2luZG93RnJhbWUub3JpZ2luID0g
W1tfdmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46W19odG1sVmlldyBjb252ZXJ0UG9p
bnQ6d29yZFN0YXJ0IHRvVmlldzpuaWxdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICB3aW5kb3dGcmFtZS5zaXplLmhlaWdodCA9IG51bWJlclRvU2hvdyAqIFtfdGFibGVW
aWV3IHJvd0hlaWdodF0gKyAobnVtYmVyVG9TaG93ICsgMSkgKiBbX3RhYmxlVmlldyBpbnRlcmNl
bGxTcGFjaW5nXS5oZWlnaHQ7CiAgICAgd2luZG93RnJhbWUub3JpZ2luLnkgLT0gd2luZG93RnJh
bWUuc2l6ZS5oZWlnaHQ7CiAgICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzID0gW05TRGljdGlv
bmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOltOU0ZvbnQgc3lzdGVtRm9udE9mU2l6
ZToxMi4wZl0sIE5TRm9udEF0dHJpYnV0ZU5hbWUsIG5pbF07CkBAIC0xNTEsMTAgKzE0OSw5IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIH0KICAgICB3aW5kb3dGcmFtZS5zaXplLndp
ZHRoID0gMTAwOwogICAgIGlmIChtYXhJbmRleCA+PSAwKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05TU2Nyb2xsVmll
dyBmcmFtZVNpemVGb3JDb250ZW50U2l6ZTpOU01ha2VTaXplKG1heFdpZHRoLCAxMDAuMGYpIGhh
c0hvcml6b250YWxTY3JvbGxlcjpOTyBoYXNWZXJ0aWNhbFNjcm9sbGVyOllFUyBib3JkZXJUeXBl
Ok5TTm9Cb3JkZXJdLndpZHRoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05TV2luZG93IGZyYW1lUmVjdEZvckNvbnRlbnRS
ZWN0Ok5TTWFrZVJlY3QoMC4wZiwgMC4wZiwgbWF4V2lkdGgsIDEwMC4wZikgc3R5bGVNYXNrOk5T
V2luZG93U3R5bGVNYXNrQm9yZGVybGVzc10uc2l6ZS53aWR0aCk7CiAgICAgICAgIG1heFdpZHRo
ICs9IDUuMGY7CiAgICAgICAgIHdpbmRvd0ZyYW1lLnNpemUud2lkdGggPSBzdGQ6Om1heChtYXhX
aWR0aCwgd2luZG93RnJhbWUuc2l6ZS53aWR0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIu
bW0KaW5kZXggYWI0Mzg4N2QxNzQ0ZDc1M2Q1MDAzYTIyZTA0ZjQyNzUxNGExYmU2Ni4uNDQ3OTQ1
M2U4YmY2NDg2NjQ1MGQ3MTMyOGMxNTk1N2FhOWJiNTI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlci5tbQpAQCAtMzgsOCArMzgsNyBAQAogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgog
I2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpCiAKIFNPRlRfTElOS19GUkFNRVdPUksoQVZGb3VuZGF0aW9uKQogU09GVF9M
SU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZQbGF5ZXJMYXllcikKQEAgLTUwOSw2ICs1MDgsNiBA
QCBzdGF0aWMgTlNXaW5kb3cgKmNyZWF0ZUJhY2tncm91bmRGdWxsc2NyZWVuV2luZG93KE5TUmVj
dCBmcmFtZSwgaW50IGxldmVsKQogCiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiKQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29u
dHJvbGxlci5tbQppbmRleCBlN2JlODZkMzc0ZTQ1MGVlZTcwMDkxYzVlMzJkOTNiMzE1YTVjZjM5
Li43NTRmOWRlZGRkODEwNGY5YzliNWJkZGI1MThmOTY5ZjRiZDI1MTA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRv
d0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tCkBAIC0zNzMsMTAgKzM3Myw5IEBA
IHN0YXRpYyBOU1ZpZXcgKmNyZWF0ZU1lZGlhVUlCYWNrZ3JvdW5kVmlldygpCiAgICAgY29uc3Qg
Q0dGbG9hdCBxdWlja1RpbWVQbGF5ZXJIVURIZWlnaHQgPSA1OTsKICAgICBjb25zdCBDR0Zsb2F0
IHF1aWNrVGltZVBsYXllckhVRENvbnRlbnRCb3JkZXJQb3NpdGlvbiA9IDM4OwogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbdmlldyBzZXRDb250ZW50Qm9yZGVyUG9z
aXRpb246cXVpY2tUaW1lUGxheWVySFVEQ29udGVudEJvcmRlclBvc2l0aW9uIC8gcXVpY2tUaW1l
UGxheWVySFVESGVpZ2h0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05P
UkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAg
IHJldHVybiB2aWV3OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCmluZGV4IGI4OTI3MzRjYWZmMzY1ZGQ3ODU0OWQ4N2VjMGEwMzk0OTc2YjY2NjYuLjZjMjJk
OGVlNGI5NGU5NjAxNDVjZDI3Mjk2ZDdhZmRhMWUxNGZkNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTg2NSwxNSArODY1LDE0IEBAIHN0YXRpYyBj
b25zdCBOU1VJbnRlZ2VyIG9yZGVyZWRMaXN0U2VnbWVudCA9IDI7CiAgICAgW2luc2VydExpc3RD
b250cm9sIHNldFdpZHRoOmxpc3RDb250cm9sU2VnbWVudFdpZHRoIGZvclNlZ21lbnQ6b3JkZXJl
ZExpc3RTZWdtZW50XTsKICAgICBpbnNlcnRMaXN0Q29udHJvbC5mb250ID0gW05TRm9udCBzeXN0
ZW1Gb250T2ZTaXplOjE1XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgaWQgc2VnbWVudEVsZW1lbnQgPSBOU0FjY2Vzc2liaWxpdHlVbmlnbm9yZWREZXNjZW5kYW50
KGluc2VydExpc3RDb250cm9sKTsKICAgICBOU0FycmF5ICpzZWdtZW50cyA9IFtzZWdtZW50RWxl
bWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5B
dHRyaWJ1dGVdOwogICAgIEFTU0VSVChzZWdtZW50cy5jb3VudCA9PSAzKTsKICAgICBbc2VnbWVu
dHNbbm9MaXN0U2VnbWVudF0gYWNjZXNzaWJpbGl0eVNldE92ZXJyaWRlVmFsdWU6V2ViQ29yZTo6
aW5zZXJ0TGlzdFR5cGVOb25lKCkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eURlc2NyaXB0
aW9uQXR0cmlidXRlXTsKICAgICBbc2VnbWVudHNbdW5vcmRlcmVkTGlzdFNlZ21lbnRdIGFjY2Vz
c2liaWxpdHlTZXRPdmVycmlkZVZhbHVlOldlYkNvcmU6Omluc2VydExpc3RUeXBlQnVsbGV0ZWRB
Y2Nlc3NpYmlsaXR5VGl0bGUoKSBmb3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5RGVzY3JpcHRp
b25BdHRyaWJ1dGVdOwogICAgIFtzZWdtZW50c1tvcmRlcmVkTGlzdFNlZ21lbnRdIGFjY2Vzc2li
aWxpdHlTZXRPdmVycmlkZVZhbHVlOldlYkNvcmU6Omluc2VydExpc3RUeXBlTnVtYmVyZWRBY2Nl
c3NpYmlsaXR5VGl0bGUoKSBmb3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25B
dHRyaWJ1dGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJO
SU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgc2VsZi52
aWV3ID0gaW5zZXJ0TGlzdENvbnRyb2w7CiAKQEAgLTIxNzgsMTEgKzIxNzcsMTAgQEAgc3RhdGlj
IE5TTXV0YWJsZVNldCAqa25vd25QbHVnaW5NSU1FVHlwZXMoKQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBpZiAoIU9TQXRv
bWljQ29tcGFyZUFuZFN3YXAzMigwLCAxLCAmX3ByaXZhdGUtPmRpZERyYXdUaWxlcykpCiAgICAg
ICAgIHJldHVybjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FS
TklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIFdlYlRo
cmVhZExvY2soKTsKIApAQCAtNTg5MiwyMSArNTg5MCwxOSBAQCBzdGF0aWMgYm9vbCBuZWVkc1dl
YlZpZXdJbml0VGhyZWFkV29ya2Fyb3VuZCgpCiAKIC0gKHZvaWQpZW5jb2RlV2l0aENvZGVyOihO
U0NvZGVyICopZW5jb2RlcgogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgLy8gU2V0IGFzc2lkZSB0aGUgc3Vidmlld3MgYmVmb3JlIHdlIGFyY2hpdmUuIFdlIGRvbid0
IHdhbnQgdG8gYXJjaGl2ZSBhbnkgc3Vidmlld3MuCiAgICAgLy8gVGhlIHN1YnZpZXdzIHdpbGwg
YWx3YXlzIGJlIGNyZWF0ZWQgaW4gX2NvbW1vbkluaXRpYWxpemF0aW9uRnJhbWVOYW1lOmdyb3Vw
TmFtZTouCiAgICAgaWQgb3JpZ2luYWxTdWJ2aWV3cyA9IF9zdWJ2aWV3czsKICAgICBfc3Vidmll
d3MgPSBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBbc3VwZXIg
ZW5jb2RlV2l0aENvZGVyOmVuY29kZXJdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKICAgICAvLyBSZXN0b3JlIHRoZSBzdWJ2aWV3cyB3ZSBzZXQgYXNpZGUuCiAgICAgX3N1
YnZpZXdzID0gb3JpZ2luYWxTdWJ2aWV3czsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKIAogICAgIEJPT0wgdXNlQmFja0ZvcndhcmRMaXN0ID0gX3ByaXZhdGUtPnBhZ2UgJiYgc3Rh
dGljX2Nhc3Q8QmFja0ZvcndhcmRMaXN0Kj4oX3ByaXZhdGUtPnBhZ2UtPmJhY2tGb3J3YXJkKCku
Y2xpZW50KCkpLT5lbmFibGVkKCk7CiAgICAgaWYgKFtlbmNvZGVyIGFsbG93c0tleWVkQ29kaW5n
XSkgewpAQCAtNzEzNywxMCArNzEzMyw5IEBAIHN0YXRpYyBXZWJGcmFtZSAqaW5jcmVtZW50RnJh
bWUoV2ViRnJhbWUgKmZyYW1lLCBXZWJGaW5kT3B0aW9ucyBvcHRpb25zID0gMCkKICAgICBpZiAo
YXV0byAqaWNvbiA9IF9wcml2YXRlLT5fbWFpbkZyYW1lSWNvbi5nZXQoKSkKICAgICAgICAgcmV0
dXJuIGljb247CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaCAKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVf
V0FSTklOR19HQ0MoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICByZXR1cm4gW1tX
ZWJJY29uRGF0YWJhc2Ugc2hhcmVkSWNvbkRhdGFiYXNlXSBkZWZhdWx0SWNvbldpdGhTaXplOldl
Ykljb25TbWFsbFNpemVdOwotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVf
V0FSTklOR19HQ0NfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIC0gKHZv
aWQpX3NldE1haW5GcmFtZUljb246KE5TSW1hZ2UgKilpY29uCkBAIC05MzA4LDEwICs5MzAzLDkg
QEAgYm9vbCBMYXllckZsdXNoQ29udHJvbGxlcjo6Zmx1c2hMYXllcnMoKQogICAgICAgICAvLyBB
cHBLaXQgbWF5IGhhdmUgZGlzYWJsZWQgc2NyZWVuIHVwZGF0ZXMsIHRoaW5raW5nIGFuIHVwY29t
aW5nIHdpbmRvdyBmbHVzaCB3aWxsIHJlLWVuYWJsZSB0aGVtLgogICAgICAgICAvLyBJbiBjYXNl
IHNldE5lZWRzRGlzcGxheUluUmVjdCgpIGhhcyBwcmV2ZW50ZWQgdGhlIHdpbmRvdyBmcm9tIG5l
ZWRpbmcgdG8gYmUgZmx1c2hlZCwgcmUtZW5hYmxlIHNjcmVlbgogICAgICAgICAvLyB1cGRhdGVz
IGhlcmUuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIGlm
ICghW3dpbmRvdyBpc0ZsdXNoV2luZG93RGlzYWJsZWRdKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgICAgICBbd2luZG93IF9lbmFibGVTY3JlZW5VcGRh
dGVzSWZOZWVkZWRdOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViV2luZG93QW5pbWF0aW9uLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJXaW5kb3dBbmltYXRpb24ubW0KaW5kZXggOTIzNThmNmI3ZGUzYWJhOTY0
ZWVhZjE3NDI1ZjI3MWI5NWFhODYwOS4uNTJkZmNhMjBhOGZmZTFjYjkwNTYxMzY1MDM3YzdlZDZk
NDk3ZDc0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJX
aW5kb3dBbmltYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJXaW5kb3dBbmltYXRpb24ubW0KQEAgLTEyNSwxMCArMTI1LDkgQEAgc3RhdGljIENHU0Nvbm5l
Y3Rpb25JRCBtYWluV2luZG93U2VydmVyQ29ubmVjdGlvbklEKCkKIHN0YXRpYyB2b2lkIHNldFNj
YWxlZEZyYW1lRm9yV2luZG93KE5TV2luZG93ICp3aW5kb3csIE5TUmVjdCBzY2FsZUZyYW1lLCBO
U1JlY3Qgbm9uU2NhbGVkRnJhbWUpCiB7CiAgICAgaWYgKE5TRXF1YWxSZWN0cyhzY2FsZUZyYW1l
LCBub25TY2FsZWRGcmFtZSkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub25udWxsIgorICAgICAgICBJR05PUkVf
V0FSTklOR19DTEFORygiLVdub25udWxsIik7CiAgICAgICAgIENHU1NldFdpbmRvd1dhcnAobWFp
bldpbmRvd1NlcnZlckNvbm5lY3Rpb25JRCgpLCB3aW5kb3cud2luZG93TnVtYmVyLCAwLCAwLCBu
dWxscHRyKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfRU5EKCItV25vbm51bGwiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348297</attachid>
            <date>2018-08-28 09:25:55 -0700</date>
            <delta_ts>2018-09-03 11:12:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188996-20180828182553.patch</filename>
            <type>text/plain</type>
            <size>332608</size>
            <attacher name="Guillaume Emont">guijemont</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
OTg5OGNkZmFhNmFhMWUyZmFmNDM5NTU2OGJhYTRiZTE1Njc0YzI2Li42ODRkOTJjZGVhM2M5ZjIx
OTA4M2Q3ZGYyNTVkM2FiZDIzN2EzNTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09i
amVjdC5oOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLmM6CisgICAgICAgICogYXNzZW1i
bGVyL0xpbmtCdWZmZXIuaDoKKyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6ZmluYWxpemVDb2Rl
V2l0aERpc2Fzc2VtYmx5KToKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAg
ICAqIGIzL0IzT3Bjb2RlLmNwcDoKKyAgICAgICAgKiBiMy9CM1R5cGUuaDoKKyAgICAgICAgKiBi
My9CM1R5cGVNYXAuaDoKKyAgICAgICAgKiBiMy9CM1dpZHRoLmg6CisgICAgICAgICogYjMvYWly
L0FpckFyZy5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAqIGIzL2Fp
ci9BaXJDb2RlLmg6CisgICAgICAgICogYnl0ZWNvZGUvT3Bjb2RlLmg6CisgICAgICAgIChKU0M6
OnBhZE9wY29kZU5hbWUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU51bWJlcik6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1pc2MpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6
CisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBl
cnM6OmNhbGN1bGF0ZVBva2VPZmZzZXQpOgorICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6
CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTElu
dDo6c2xvd1BhdGhMb2dGKToKKyAgICAgICAgKiBydW50aW1lL0NvbmZpZ0ZpbGUuY3BwOgorICAg
ICAgICAoSlNDOjpDb25maWdGaWxlOjpjYW5vbmljYWxpemVQYXRocyk6CisgICAgICAgICogcnVu
dGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNw
cDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6c2V0QWxpYXNlZE9wdGlvbik6CisgICAgICAgICog
dG9vbHMvQ29kZVByb2ZpbGluZy5jcHA6CisgICAgICAgICogd2FzbS9XYXNtU2VjdGlvbnMuaDoK
KyAgICAgICAgKiB3YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weToKKwog
MjAxOC0wOC0yNyAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93c3RhcnQub3JnPgog
CiAgICAgICAgIFtXZWJBc3NlbWJseV0gUGFyc2Ugd2FzbSBtb2R1bGVzIGluIGEgc3RyZWFtaW5n
IGZhc2hpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9D
aGFuZ2VMb2cKaW5kZXggOTZjYWM2MGI0MTk5MTRmYzg5ZWM1MDdmOTgxNDhhMzllNjQwNzc0Mi4u
OGVjNTJlNTEwYzAzZTgwYTczNGZmMmZmZDlhMzhkMzliMTFhM2NjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
OSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+
CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6Cisg
ICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoKKyAgICAgICAgKiB3dGYvQ29tcGlsZXIuaDoKKyAg
ICAgICAgKiB3dGYvTUQ1LmNwcDoKKyAgICAgICAgKFdURjo6TUQ1OjpNRDUpOgorICAgICAgICAo
V1RGOjpNRDU6OmFkZEJ5dGVzKToKKyAgICAgICAgKFdURjo6TUQ1OjpjaGVja3N1bSk6CisgICAg
ICAgICogd3RmL1ByaW50U3RyZWFtLmNwcDoKKyAgICAgICAgKFdURjo6UHJpbnRTdHJlYW06OnBy
aW50ZlZhcmlhYmxlRm9ybWF0KToKKyAgICAgICAgKiB3dGYvU0hBMS5jcHA6CisgICAgICAgIChX
VEY6OlNIQTE6OlNIQTEpOgorICAgICAgICAoV1RGOjpTSEExOjphZGRCeXRlcyk6CisgICAgICAg
IChXVEY6OlNIQTE6OmNvbXB1dGVIYXNoKToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nUHRocmVh
ZHMuY3BwOgorICAgICAgICAqIHd0Zi9WZWN0b3IuaDoKKyAgICAgICAgKFdURjo6VmVjdG9yQnVm
ZmVyOjplbmRPZkJ1ZmZlcik6CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmNwcDoKKyAg
ICAgICAgKFdURjo6Y3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cyk6CisKIDIwMTgtMDgtMjcg
IFl1c3VrZSBTdXp1a2kgIDx5dXN1a2VzdXp1a2lAc2xvd3N0YXJ0Lm9yZz4KIAogICAgICAgICBb
V2ViQXNzZW1ibHldIFBhcnNlIHdhc20gbW9kdWxlcyBpbiBhIHN0cmVhbWluZyBmYXNoaW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYWExNjAzNmUyODMyM2U4Y2FkYTFjNmUyYzg1MWQzZDFlZjY5Nzg4Yi4uMWFm
NGI2OWUwZGFiNGE1OWZlOGQ4OGFlZTUwOTYzNThmOWYwYWVmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzMSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaDoKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6Om92ZXJyaWRlQXR0YWNobWVudFBhcmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5
SWdub3JlQXR0YWNobWVudCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyIHJlbmRlcldpZGdldENoaWxkcmVuXSk6CisgICAgICAgICgtW1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGNvbnZlcnRQb2ludFRvU2NyZWVuU3BhY2U6XSk6
CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHJvbGVdKToKKyAgICAg
ICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgcm9sZURlc2NyaXB0aW9uXSk6Cisg
ICAgICAgICogYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAqIGJyaWRn
ZS9vYmpjL29iamNfY2xhc3MubW06CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjQ2xhc3M6
OmZpZWxkTmFtZWQgY29uc3QpOgorICAgICAgICAqIGNyeXB0by9Db21tb25DcnlwdG9VdGlsaXRp
ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29tbW9uQ3J5cHRvRGlnZXN0QWxnb3JpdGht
KToKKyAgICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZW5jcnlwdEFFU19HQ00pOgorICAgICAgICAoV2ViQ29yZTo6ZGVj
eXB0QUVTX0dDTSk6CisgICAgICAgICogY3J5cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3Jh
cE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OndyYXBTZXJpYWxpemVkQ3J5cHRvS2V5KToKKyAg
ICAgICAgKFdlYkNvcmU6OnVud3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkpOgorICAgICAgICAqIGNz
cy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5Ogor
ICAgICAgICAqIGNzcy9tYWtlU2VsZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5weToKKyAgICAgICAg
KiBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHA6CisgICAgICAgICogZWRpdGluZy9tYWMvRWRpdG9y
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKToK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVwbGFjZU5vZGVGcm9tUGFzdGVib2FyZCk6Cisg
ICAgICAgICogcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpzZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAg
ICAqIHBhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW06CisgICAgICAgIChXZWJD
b3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OnBhaW50Q29udGVudHMp
OgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Zm9ybWF0TG9jYWxpemVkU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JlZW5Q
cm9wZXJ0aWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EYXRhOjpkZWNvZGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpISURHYW1lcGFkUHJvdmlkZXI6OnN0b3BNb25pdG9yaW5nSW5wdXQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBB
VkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6
OnVwZGF0ZU9wdGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW06CisgICAgICAgIChXZWJDb3JlOjpD
RE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjp1cGRhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0Q3VycmVudFRleHRUcmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpsYW5ndWFnZU9m
UHJpbWFyeUF1ZGlvVHJhY2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0U2hvdWxkRGlzYWJsZVNsZWVwKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoLVtXZWJBVlNhbXBs
ZUJ1ZmZlckVycm9yTGlzdGVuZXIgYmVnaW5PYnNlcnZpbmdSZW5kZXJlcjpdKToKKyAgICAgICAg
KC1bV2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyIHN0b3BPYnNlcnZpbmdSZW5kZXJlcjpd
KToKKyAgICAgICAgKC1bV2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyIG9ic2VydmVWYWx1
ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6CisgICAgICAgIChXZWJDb3Jl
OjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6dHJhY2tEaWRDaGFuZ2VFbmFibGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OklHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1t
OgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyOjpkcmF3TGF5ZXJDb250ZW50cyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6Zm9udEZvckNvbWJpbmluZ0NoYXJhY3RlclNlcXVl
bmNlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZURlY29kZXJD
Ry5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJDRzo6Y3JlYXRlRnJhbWVJbWFn
ZUF0SW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29u
dGV4dENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TGlu
ZUZvckRvY3VtZW50TWFya2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJHTExheWVyLmg6CisgICAgICAgIChJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3Jl
VGV4dC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6Y29sbGVj
dENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL21hYy9JY29uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6SWNvbjo6SWNvbik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50SW1hZ2VNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpQREZEb2N1bWVudEltYWdlOjpkcmF3UERGUGFnZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYktpdE5TSW1hZ2VFeHRyYXMubW06CisgICAgICAgICgt
W05TSW1hZ2UgX3dlYl9sb2NrRm9jdXNXaXRoRGV2aWNlU2NhbGVGYWN0b3I6XSk6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
RHJhZ0ltYWdlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2NhbGVEcmFnSW1hZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRm9yTGluayk6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2Fs
Q3VycmVudEdyYXBoaWNzQ29udGV4dDo6TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
YXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAgIChXZWJDb3JlOjpzZXRE
cmFnSW1hZ2VJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3Rv
cnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludCk6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
U2Nyb2xsVmlld01hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3Jt
Q29udGVudHNUb1NjcmVlbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojpw
bGF0Zm9ybVNjcmVlblRvQ29udGVudHMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9U
aGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdDZWxsRm9jdXNSaW5nV2l0aEZyYW1l
QXRUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFn
ZXIubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OldpZGdldDo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVsZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnJlcG9ydEVycm9y
VG9DbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3JlYXRlLWh0dHAtaGVhZGVy
LW5hbWUtdGFibGU6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwOgor
ICAgICAgICAqIHRlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmg6CisgICAgICAg
ICogeG1sL1hQYXRoR3JhbW1hci5jcHA6CisKIDIwMTgtMDgtMjggIEFsZWphbmRybyBHLiBDYXN0
cm8gIDxhbGV4QGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4IGdjYyBjb21waWxhdGlvbiB3YXJu
aW5ncyBhZnRlciByMjM1MjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA0MjgyNWQzYmFmNmVjNGMy
MTBiYWY1NDMyMzI1NzBhOGE3NDE1YzRmLi5kMTIwZDAxZmViZDVkYmE4ZWFlZjE3N2I3ZGM3NzM3
M2JkN2Y2NTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOC0wOC0y
NyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRk
IElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwYWwvY3J5cHRvL2NvbW1vbmNyeXB0by9DcnlwdG9EaWdlc3RD
b21tb25DcnlwdG8uY3BwOgorICAgICAgICAoUEFMOjpDcnlwdG9EaWdlc3Q6OmNyZWF0ZSk6Cisg
ICAgICAgIChQQUw6OkNyeXB0b0RpZ2VzdDo6YWRkQnl0ZXMpOgorICAgICAgICAoUEFMOjpDcnlw
dG9EaWdlc3Q6OmNvbXB1dGVIYXNoKToKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL0FWS2l0U1BJ
Lmg6CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaDoKKyAgICAg
ICAgKGluc2VjdXJlbHlVbmFyY2hpdmVPYmplY3RGcm9tRGF0YSk6CisgICAgICAgICogcGFsL3Nw
aS9pb3MvTWVkaWFQbGF5ZXJTUEkuaDoKKyAgICAgICAgKiBwYWwvc3lzdGVtL21hYy9Qb3B1cE1l
bnUubW06CisgICAgICAgIChQQUw6OnBvcFVwTWVudSk6CisgICAgICAgICogcGFsL3N5c3RlbS9t
YWMvV2ViUGFuZWwubW06CisgICAgICAgICgtW1dlYlBhbmVsIGluaXRdKToKKwogMjAxOC0wOC0y
NyAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBidWlsZCBmaXggLS0gZGlzYWJsZSBMVE8gZm9yIHByb2R1Y3Rpb24gYnVpbGRzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDEzNTQyMTE1M2JhYmIzZDJmOGI3ZTgxZDIxNzBmM2E5ZGQxMTNlYmMuLmQzMmM5MjJmNTYx
OWU0Y2ExZGIzNDViZDMyYjhhMDlkZDU0ZGZiNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE5IEBA
CisyMDE4LTA4LTI3ICBHdWlsbGF1bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBBZGQgSUdOT1JFX1dBUk5JTkdfLiogbWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg5OTYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2Nv
YTo6c3RhdGVsZXNzQ29va2llU3RvcmFnZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OnBsYXRmb3JtU3luY0FsbENvb2tpZXMpOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFj
L1BsdWdpblByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OmJlZ2luTW9kYWwpOgorICAg
ICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NTaGltLm1tOgorICAgICAgICAq
IFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Nb2R1bGU6OnRyeUxvYWQpOgorICAgICAgICAqIFNo
YXJlZC9pb3MvQ2hpbGRQcm9jZXNzSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nl
c3M6OmluaXRpYWxpemVTYW5kYm94KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vz
c01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29tcGlsZUFuZEFwcGx5U2FuZGJveFNsb3dDYXNl
KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLm1tOgorICAgICAgICAoV2Vi
S2l0OjpDb2xvclNwYWNlRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1NhbmRi
b3hFeHRlbnNpb25NYWMubW06CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb25JbXBs
OjpzYW5kYm94RXh0ZW5zaW9uRm9yVHlwZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfd2ViX3N1cGVyQWNjZXNzaWJp
bGl0eUF0dHJpYnV0ZVZhbHVlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYlZpZXcuY3BwOgorICAgICAgICAod2Via2l0V2ViVmlld1J1bkFzTW9kYWwpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IF93ZWJf
c3VwZXJBY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL0Rvd25sb2FkQ2xpZW50Lm1tOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZENsaWVu
dDo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW06CisgICAg
ICAgICgtW1dLQ3VzdG9tUHJvdG9jb2xMb2FkZXIgaW5pdFdpdGhMZWdhY3lDdXN0b21Qcm90b2Nv
bE1hbmFnZXJQcm94eTpjdXN0b21Qcm90b2NvbElEOnJlcXVlc3Q6XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdh
dGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAg
KFdlYktpdDo6VUlEZWxlZ2F0ZTo6Q29udGV4dE1lbnVDbGllbnQ6Om1lbnVGcm9tUHJvcG9zZWRN
ZW51KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlBy
b2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAg
ICAgKC1bV0tUZXh0TGlzdFRvdWNoQmFyVmlld0NvbnRyb2xsZXIgaW5pdFdpdGhXZWJWaWV3SW1w
bDpdKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZVdpbmRvd0FuZFZpZXdG
cmFtZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2VuZERyYWdFbmRUb1BhZ2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c3RhcnREcmFnKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmNoYXJhY3RlckluZGV4Rm9yUG9pbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6Z2V0UGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJlcik6
CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6bWFrZVBsdWdpblByb2Nlc3NU
aGVGcm9udFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6Om1h
a2VVSVByb2Nlc3NUaGVGcm9udFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9j
ZXNzUHJveHk6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1NtYXJ0
TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW06CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0dl
b2xvY2F0aW9uUHJvdmlkZXJJT1MubW06CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0xlZ2Fj
eVBERlZpZXcubW06CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1BERlBhZ2VOdW1iZXJJbmRp
Y2F0b3IubW06CisgICAgICAgICgtW1dLUERGUGFnZU51bWJlckluZGljYXRvciBfbWFrZVJvdW5k
ZWRDb3JuZXJzXSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0FpclBsYXlSb3V0
ZVBpY2tlci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBh
bmVsLm1tOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBfcHJlc2VudFBvcG92ZXJXaXRo
Q29udGVudFZpZXdDb250cm9sbGVyOmFuaW1hdGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvZm9ybXMvV0tGb3JtQ29sb3JDb250cm9sLm1tOgorICAgICAgICAoLVtXS0NvbG9yUG9wb3Zl
ciBpbml0V2l0aFZpZXc6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1J
bnB1dENvbnRyb2wubW06CisgICAgICAgICgtW1dLRGF0ZVRpbWVQb3BvdmVyIGluaXRXaXRoVmll
dzpkYXRlUGlja2VyTW9kZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9y
bVBvcG92ZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIu
bW06CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RQb3BvdmVyLm1t
OgorICAgICAgICAoLVtXS1NlbGVjdFBvcG92ZXIgaW5pdFdpdGhWaWV3Omhhc0dyb3VwczpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2NyZWVuVG9Sb290Vmlldyk6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjpyb290Vmlld1RvU2NyZWVuKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZW50ZXJGdWxsU2NyZWVuOl0pOgorICAgICAgICAoLVtX
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGZpbmlzaGVkRW50ZXJGdWxsU2NyZWVuQW5pbWF0
aW9uOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGV4aXRGdWxs
U2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgYmVnYW5F
eGl0RnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6ZmluYWxGcmFtZTpdKToKKyAgICAgICAgKC1b
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBmaW5pc2hlZEV4aXRGdWxsU2NyZWVuQW5pbWF0
aW9uOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGNvbXBsZXRl
RmluaXNoRXhpdEZ1bGxTY3JlZW5BbmltYXRpb25BZnRlclJlcGFpbnRdKToKKyAgICAgICAgKC1b
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBfc3RhcnRFbnRlckZ1bGxTY3JlZW5BbmltYXRp
b25XaXRoRHVyYXRpb246XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIgX3N0YXJ0RXhpdEZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbToKKyAgICAgICAgKC1bV0tQcmludGlu
Z1ZpZXcgX3NldEF1dG9kaXNwbGF5Ol0pOgorICAgICAgICAoLVtXS1ByaW50aW5nVmlldyBfZHJh
d1BERkRvY3VtZW50OnBhZ2U6YXRQb2ludDpdKToKKyAgICAgICAgKC1bV0tQcmludGluZ1ZpZXcg
X2RyYXdQcmV2aWV3Ol0pOgorICAgICAgICAoLVtXS1ByaW50aW5nVmlldyBkcmF3UmVjdDpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbToK
KyAgICAgICAgKC1bV0tUZXh0SW5wdXRQYW5lbCBfaW50ZXJwcmV0S2V5RXZlbnQ6dXNpbmdMZWdh
Y3lDb2NvYVRleHRJbnB1dDpzdHJpbmc6XSk6CisgICAgICAgICgtW1dLVGV4dElucHV0UGFuZWwg
X2hhc01hcmtlZFRleHRdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVBy
b3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1Bv
cHVwTWVudSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRz
Y2FwZVBsdWdpbk1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZUV2ZW50UmVjb3Jk
KToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW46OnNlbmRDb21wbGV4VGV4dElucHV0
KToKKyAgICAgICAgKFdlYktpdDo6bWFrZUNHTFByZXNlbnRMYXllck9wYXF1ZSk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpudWxsRXZlbnRUaW1lckZpcmVkKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKC1bV0tQREZQ
bHVnaW5BY2Nlc3NpYmlsaXR5T2JqZWN0IGFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50XSk6
CisgICAgICAgICgtW1dLUERGTGF5ZXJDb250cm9sbGVyRGVsZWdhdGUgd3JpdGVJdGVtc1RvUGFz
dGVib2FyZDp3aXRoVHlwZXM6XSk6CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6aGFuZGxl
RWRpdGluZ0NvbW1hbmQpOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OnNldEFjdGl2ZUFu
bm90YXRpb24pOgorICAgICAgICAoV2ViS2l0OjogY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbToKKyAgICAg
ICAgKFdlYktpdDo6UERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbjo6Y3JlYXRlQW5ub3RhdGlvbkVs
ZW1lbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFu
bm90YXRpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRl
eHRBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW5UZXh0QW5ub3RhdGlv
bjo6Y3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6Y29udmVydEltYWdlVG9CaXRtYXApOgorICAgICAgICAoV2ViS2l0OjpXZWJEcmFnQ2xpZW50
OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6OmRyYXdQ
REZQYWdlKToKKwogMjAxOC0wOC0yNyAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CiAKICAgICAgICAgW0N1cmxdIEVuYWJsZSBQcm94eSBBdXRoZW50aWNhdGlvbiBvbiBX
ZWJLaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZGUyNjQyYzc2YWQzODY4YTgw
MTkwOTgzYjk3MjBlNjQ4MWUwYjZlZS4uYTk2OGEzYmY4M2NiMjliZDEwMDlhZGRjMWZiOTdkZDM3
NzIwY2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNCBAQAor
MjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDYXJib24vQ2FyYm9uVXRpbHMubToKKyAgICAg
ICAgKFBvb2xDbGVhbmVyKToKKyAgICAgICAgKiBDYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5t
bToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93QWRhcHRlciBpbml0V2l0aENhcmJvbldpbmRvd1Jl
Zjp0YWtpbmdPd25lcnNoaXA6ZGlzYWJsZU9yZGVyaW5nOmNhcmJvbjpdKToKKyAgICAgICAgKC1b
Q2FyYm9uV2luZG93QWRhcHRlciBzZXRWaWV3c05lZWREaXNwbGF5Ol0pOgorICAgICAgICAoLVtD
YXJib25XaW5kb3dBZGFwdGVyIHJlY29uY2lsZVRvQ2FyYm9uV2luZG93Qm91bmRzXSk6CisgICAg
ICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgX3Rlcm1XaW5kb3dJZk93bmVyXSk6CisgICAgICAg
ICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgX3dpbmRvd01vdmVkVG9SZWN0Ol0pOgorICAgICAgICAo
LVtDYXJib25XaW5kb3dBZGFwdGVyIHNldENvbnRlbnRWaWV3Ol0pOgorICAgICAgICAoLVtDYXJi
b25XaW5kb3dBZGFwdGVyIF9oYW5kbGVSb290Qm91bmRzQ2hhbmdlZF0pOgorICAgICAgICAoLVtD
YXJib25XaW5kb3dBZGFwdGVyIF9oYW5kbGVDb250ZW50Qm91bmRzQ2hhbmdlZF0pOgorICAgICAg
ICAqIENhcmJvbi9DYXJib25XaW5kb3dGcmFtZS5tOgorICAgICAgICAoLVtDYXJib25XaW5kb3dG
cmFtZSB0aXRsZV0pOgorICAgICAgICAqIENhcmJvbi9ISVZpZXdBZGFwdGVyLm06CisgICAgICAg
ICgrW0hJVmlld0FkYXB0ZXIgZ2V0SElWaWV3Rm9yTlNWaWV3Ol0pOgorICAgICAgICAqIENhcmJv
bi9ISVdlYlZpZXcubW06CisgICAgICAgIChvdmVycmlkZUNHQ29udGV4dCk6CisgICAgICAgIChy
ZXN0b3JlQ0dDb250ZXh0KToKKyAgICAgICAgKERyYXcpOgorICAgICAgICAqIERPTS9ET00ubW06
CisgICAgICAgICogSGlzdG9yeS9XZWJIaXN0b3J5Lmg6CisgICAgICAgICogSGlzdG9yeS9XZWJI
aXN0b3J5Lm1tOgorICAgICAgICAoLVtXZWJIaXN0b3J5UHJpdmF0ZSBsb2FkSGlzdG9yeUd1dHNG
cm9tVVJMOnNhdmVkSXRlbXNDb3VudDpjb2xsZWN0RGlzY2FyZGVkSXRlbXNJbnRvOmVycm9yOl0p
OgorICAgICAgICAqIEhpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW06CisgICAgICAgICgtW1dlYkhp
c3RvcnlJdGVtIGljb25dKToKKyAgICAgICAgKiBNaXNjL1dlYktpdE5TU3RyaW5nRXh0cmFzLm1t
OgorICAgICAgICAoLVtOU1N0cmluZyBfd2ViX2RyYXdBdFBvaW50OmZvbnQ6dGV4dENvbG9yOl0p
OgorICAgICAgICAqIE1pc2MvV2ViTlNJbWFnZUV4dHJhcy5tOgorICAgICAgICAoLVtOU0ltYWdl
IF93ZWJfc2NhbGVUb01heFNpemU6XSk6CisgICAgICAgICgtW05TSW1hZ2UgX3dlYl9kaXNzb2x2
ZVRvRnJhY3Rpb246XSk6CisgICAgICAgICogTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW06
CisgICAgICAgICgrW05TUGFzdGVib2FyZCBfd2ViX3NldEZpbmRQYXN0ZWJvYXJkU3RyaW5nOndp
dGhPd25lcjpdKToKKyAgICAgICAgKC1bTlNQYXN0ZWJvYXJkIF93ZWJfZGVjbGFyZUFuZFdyaXRl
RHJhZ0ltYWdlRm9yRWxlbWVudDpVUkw6dGl0bGU6YXJjaGl2ZTpzb3VyY2U6XSk6CisgICAgICAg
ICogUGFuZWxzL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubToKKyAgICAgICAgKC1bV2ViQXV0aGVu
dGljYXRpb25QYW5lbCBsb2FkTmliXSk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2Nh
cGVQbHVnaW5Ib3N0TWFuYWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5I
b3N0TWFuYWdlcjo6c3Bhd25QbHVnaW5Ib3N0KToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQ
bHVnaW5Ib3N0TWFuYWdlcjo6ZGlkQ3JlYXRlV2luZG93KToKKyAgICAgICAgKiBQbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2Nh
cGVQbHVnaW5Ib3N0UHJveHk6Om1ha2VDdXJyZW50UHJvY2Vzc0Zyb250UHJvY2Vzcyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjptYWtlUGx1Z2luSG9zdFByb2Nl
c3NGcm9udFByb2Nlc3MgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhv
c3RQcm94eTo6aXNQbHVnaW5Ib3N0UHJvY2Vzc0Zyb250UHJvY2VzcyBjb25zdCk6CisgICAgICAg
ICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6Om1vdXNlRXZlbnQpOgorICAg
ICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAg
ICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRyYXdSZWN0Ol0pOgorICAgICAg
ICAqIFBsdWdpbnMvSG9zdGVkL1dlYlRleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubToKKyAgICAg
ICAgKC1bV2ViVGV4dElucHV0UGFuZWwgX2ludGVycHJldEtleUV2ZW50OnN0cmluZzpdKToKKyAg
ICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgt
W1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcgY29udmVydEZyb21YOmFuZFk6c3BhY2U6dG9YOmFu
ZFk6c3BhY2U6XSk6CisgICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblBhY2thZ2Uu
bW06CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1Z2luUGFja2FnZSBfdHJ5TG9hZF0pOgorICAg
ICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoLVtXZWJO
ZXRzY2FwZVBsdWdpblZpZXcgc2F2ZUFuZFNldE5ld1BvcnRTdGF0ZUZvclVwZGF0ZTpdKToKKyAg
ICAgICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5WaWV3IHNlbmREcmF3UmVjdEV2ZW50Ol0pOgorICAg
ICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpblZpZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICogUGx1
Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tOgorICAgICAgICAoV2ViS2l0X1RTVXBkYXRlQ2hl
Y2tfYWxlcnREaWRFbmRfcmV0dXJuQ29kZV9jb250ZXh0SW5mb18pOgorICAgICAgICAoV2ViS2l0
X05TQWxlcnRfYmVnaW5TaGVldE1vZGFsRm9yV2luZG93X21vZGFsRGVsZWdhdGVfZGlkRW5kU2Vs
ZWN0b3JfY29udGV4dEluZm9fKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVN
YWMubW06CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRHJhZ0NsaWVudDo6c3RhcnRE
cmFnKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToK
KyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRv
RG93bmxvYWQpOgorICAgICAgICAod2ViR2V0TlNJbWFnZSk6CisgICAgICAgICogV2ViSW5zcGVj
dG9yL1dlYk5vZGVIaWdobGlnaHQubW06CisgICAgICAgICogV2ViSW5zcGVjdG9yL1dlYk5vZGVI
aWdobGlnaHRWaWV3Lm1tOgorICAgICAgICAoLVtXZWJOb2RlSGlnaGxpZ2h0VmlldyBkcmF3UmVj
dDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkNsaXBWaWV3Lm1tOgorICAgICAgICAoLVtXZWJD
bGlwVmlldyBpbml0V2l0aEZyYW1lOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06
CisgICAgICAgICgtW1dlYkZyYW1lIF91cGRhdGVCYWNrZ3JvdW5kQW5kVXBkYXRlc1doaWxlT2Zm
c2NyZWVuXSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9kcmF3UmVjdDpjb250ZW50c09ubHk6XSk6
CisgICAgICAgICgtW1dlYkZyYW1lIGFjY2Vzc2liaWxpdHlSb290XSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViRnVsbFNjcmVl
bkNvbnRyb2xsZXIgZW50ZXJGdWxsU2NyZWVuOl0pOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVu
Q29udHJvbGxlciBmaW5pc2hlZEVudGVyRnVsbFNjcmVlbkFuaW1hdGlvbjpdKToKKyAgICAgICAg
KC1bV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIgZXhpdEZ1bGxTY3JlZW5dKToKKyAgICAgICAgKC1b
V2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIgZmluaXNoZWRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbjpd
KToKKyAgICAgICAgKC1bV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIgX3N0YXJ0RW50ZXJGdWxsU2Ny
ZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOl0pOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29u
dHJvbGxlciBfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjpdKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtOU1dpbmRvdyBfd2Vi
X2JvcmRlclZpZXddKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3VwZGF0ZU1vdXNlb3Zlcldp
dGhGYWtlRXZlbnRdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3NldEFzaWRlU3Vidmlld3Nd
KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2F1dG9zY3JvbGxdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IG1vdXNlRG93bjpd
KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgbW91c2VEcmFnZ2VkOl0pOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBtb3VzZVVwOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfZW5kUHJpbnRN
b2RlQW5kUmVzdG9yZVdpbmRvd0F1dG9kaXNwbGF5XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3
IGtub3dzUGFnZVJhbmdlOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBhY2Nlc3NpYmlsaXR5
SGl0VGVzdDpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2ZvbnRBdHRyaWJ1dGVzRnJvbUZv
bnRQYXN0ZWJvYXJkXSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9jb2xvckFzU3RyaW5nOl0p
OgorICAgICAgICAoLVtXZWJIVE1MVmlldyBjb3B5Rm9udDpdKToKKyAgICAgICAgKC1bV2ViSFRN
TFZpZXcgX2V4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHNdKToKKyAgICAgICAgKC1bV2ViSFRN
TFZpZXcgYXR0YWNoUm9vdExheWVyOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyB0ZXh0U3Rv
cmFnZV0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfdXBkYXRlU2VsZWN0aW9uRm9ySW5wdXRN
YW5hZ2VyXSk6CisgICAgICAgICogV2ViVmlldy9XZWJQREZWaWV3Lm1tOgorICAgICAgICAoX2Fw
cGxpY2F0aW9uSW5mb0Zvck1JTUVUeXBlKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBjZW50ZXJT
ZWxlY3Rpb25JblZpc2libGVBcmVhOl0pOgorICAgICAgICAoLVtXZWJQREZWaWV3IF9yZWN1cnNp
dmVEaXNwbGF5UmVjdElmTmVlZGVkSWdub3JpbmdPcGFjaXR5OmlzVmlzaWJsZVJlY3Q6cmVjdElz
VmlzaWJsZVJlY3RGb3JWaWV3OnRvcFZpZXc6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX3Jl
Y3Vyc2l2ZURpc3BsYXlBbGxEaXJ0eVdpdGhMb2NrRm9jdXM6dmlzUmVjdDpdKToKKyAgICAgICAg
KC1bV2ViUERGVmlldyBfcmVjdXJzaXZlOmRpc3BsYXlSZWN0SWdub3JpbmdPcGFjaXR5OmluQ29u
dGV4dDp0b3BWaWV3Ol0pOgorICAgICAgICAoLVtXZWJQREZWaWV3IHNlYXJjaEZvcjpkaXJlY3Rp
b246Y2FzZVNlbnNpdGl2ZTp3cmFwOnN0YXJ0SW5TZWxlY3Rpb246XSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dlYlRleHRD
b21wbGV0aW9uQ29udHJvbGxlciBfYnVpbGRVSV0pOgorICAgICAgICAoLVtXZWJUZXh0Q29tcGxl
dGlvbkNvbnRyb2xsZXIgX3BsYWNlUG9wdXBXaW5kb3c6XSk6CisgICAgICAgICogV2ViVmlldy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlk
ZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbToKKyAgICAgICAgKGNyZWF0ZU1lZGlh
VUlCYWNrZ3JvdW5kVmlldyk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXZWJUZXh0TGlzdFRvdWNoQmFyVmlld0NvbnRyb2xsZXIgaW5pdFdpdGhXZWJWaWV3Ol0p
OgorICAgICAgICAoLVtXZWJWaWV3IF9kaXNwYXRjaFRpbGVEaWREcmF3Ol0pOgorICAgICAgICAo
LVtXZWJWaWV3IGVuY29kZVdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1bV2ViVmlldyBtYWluRnJh
bWVJY29uXSk6CisgICAgICAgIChMYXllckZsdXNoQ29udHJvbGxlcjo6Zmx1c2hMYXllcnMpOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViV2luZG93QW5pbWF0aW9uLm1tOgorICAgICAgICAoc2V0U2Nh
bGVkRnJhbWVGb3JXaW5kb3cpOgorCiAyMDE4LTA4LTI3ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCAtLSBkaXNhYmxlIExU
TyBmb3IgcHJvZHVjdGlvbiBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmgKaW5kZXggMTYzNjQ2OTYzODlkZWM5MGUwNTBlZDIwMDBlYWU3MmMxZDc5
MjEzYS4uYTY1MDU1ZDg0OTBiNmY2NDNhYzNhZmYyOTUwMzhiYmRjMzNiZGEyMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE1OCwxOCArMTU4
LDkgQEAgcHVibGljOgogICAgIHZvaWQqIGdldFByaXZhdGUoKTsKIAogICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgZml4IHRoZSB3YXJuaW5ncyBmb3IgZXh0ZXJuLXRlbXBsYXRlIGluIEpTT2JqZWN0
IHRlbXBsYXRlIGNsYXNzZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjE5NzkKLSNpZiBDT01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3VuZGVm
aW5lZC12YXItdGVtcGxhdGUiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiCi0j
ZW5kaWYKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmRl
ZmluZWQtdmFyLXRlbXBsYXRlIikKICAgICBERUNMQVJFX0lORk87Ci0jaWYgQ09NUElMRVIoQ0xB
TkcpCi0jaWYgX19oYXNfd2FybmluZygiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKIAogICAg
IEpTQ2xhc3NSZWYgY2xhc3NSZWYoKSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNrT2JqZWN0RGF0
YS0+anNDbGFzczsgfQogICAgIGJvb2wgaW5oZXJpdHMoSlNDbGFzc1JlZikgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCmluZGV4IDNmYzg2MTIxOWEzMDg0
NWFhOGJlODY0NDYwNThhZmIzZjYyMDdhZDkuLjE3ZGY4ODgxODIxZjdjY2QyMTM1OGI4MzVlOGI5
YjliNDE4N2RhMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
dGVzdGFwaS5jCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5j
CkBAIC0xMTQwLDEwICsxMTQwLDcgQEAgc3RhdGljIGJvb2wgZ2xvYmFsQ29udGV4dE5hbWVUZXN0
KCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51
c2VkLWJ1dC1zZXQtdmFyaWFibGUiCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVW
RUwoIi1XdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUiKTsKIHN0YXRpYyB2b2lkIGNoZWNrQ29uc3Ru
ZXNzSW5KU09iamVjdE5hbWVzKCkKIHsKICAgICBKU1N0YXRpY0Z1bmN0aW9uIGZ1bjsKQEAgLTEx
NTEsOSArMTE0OCw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrQ29uc3RuZXNzSW5KU09iamVjdE5hbWVz
KCkKICAgICBKU1N0YXRpY1ZhbHVlIHZhbDsKICAgICB2YWwubmFtZSA9ICJzb21ldGhpbmciOwog
fQotI2lmIENPTVBJTEVSKEdDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYK
K0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKCItV3VudXNlZC1idXQtc2V0LXZhcmlh
YmxlIik7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCmluZGV4IDU1OTkwOGFkZDAzZGUyMTVh
YTYwYWY3MjgwOWZhMzNlMWM5ZDk3YTkuLjMzNmFmMzdjMDQ5NDIxMzA0NDU5ODBkZDE3OWY3ZTNi
YzUzMTc5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlu
a0J1ZmZlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZl
ci5oCkBAIC0yNjMsMTUgKzI2MywxMSBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8UHRyVGFnIHRh
ZywgdHlwZW5hbWUuLi4gQXJncz4KICAgICBDb2RlUmVmPHRhZz4gZmluYWxpemVDb2RlV2l0aERp
c2Fzc2VtYmx5KGNvbnN0IGNoYXIqIGZvcm1hdCwgQXJncy4uLiBhcmdzKQogICAgIHsKLSNpZiBD
T01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtc2VjdXJpdHkiCi0jZW5kaWYKKyAgICAg
ICAgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HKCItV2Zvcm1hdC1ub25saXRlcmFsIik7Cisg
ICAgICAgIElHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFORygiLVdmb3JtYXQtc2VjdXJpdHkiKTsK
ICAgICAgICAgcmV0dXJuIGZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJseUltcGwoZm9ybWF0LCBh
cmdzLi4uKS50ZW1wbGF0ZSByZXRhZ2dlZDx0YWc+KCk7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NM
QU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgICAgICBJR05PUkVf
V0FSTklOR19HQ0NfT1JfQ0xBTkdfRU5EKCItV2Zvcm1hdC1zZWN1cml0eSIpOworICAgICAgICBJ
R05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfRU5EKCItV2Zvcm1hdC1ub25saXRlcmFsIik7CiAg
ICAgfQogCiAgICAgdGVtcGxhdGU8UHRyVGFnIHRhZz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzTG93ZXJUb0Fpci5jcHAKaW5kZXggMmNkYjcyNDNkMzRlMjdlNTc2MWM5MzQ5MzVjZTU1MTgx
NGQ1YjYyYS4uNWNjMDUyNTMzYjQwNjMxYzBiMTYzNTk3NGJhZWY5ZWY5OGFlZTFlOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKQEAgLTYyLDEwICs2Miw5IEBA
CiAjaW5jbHVkZSA8d3RmL0luZGV4U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAK
LSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0dXJuLXR5cGUi
Ci0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRf
RElTQUJMRUQKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUwoIi1XcmV0dXJuLXR5cGUiKQor
I2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCkBAIC0zNTI3LDggKzM1
MjYsOCBAQCB2b2lkIGxvd2VyVG9BaXIoUHJvY2VkdXJlJiBwcm9jZWR1cmUpCiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpCMwogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBB
U1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9XQVJOSU5HX0dDQ19U
T1BfTEVWRUxfRU5EKCItV3JldHVybi10eXBlIikKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxF
KEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCmluZGV4IDdlYmY2NmI3
MGE0NTBjOTJhZTE1NDlkNTI2NGJjOTkwZGExYmVjMTQuLjcyOGFkNzRkZTU3YTA0NDQ1YjdkNWU1
NTU1YzdmYWQwMGViMTk4MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M09wY29kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcApA
QCAtMzAsMTAgKzMwLDkgQEAKIAogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogCi0jaWYg
Q09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2Vu
ZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FC
TEVECitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMKCItV3JldHVybi10eXBlIikKKyNlbmRp
ZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIApAQCAtMzczLDggKzM3Miw4IEBA
IHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBPcGNvZGUgb3Bjb2RlKQogCiB9
IC8vIG5hbWVzcGFjZSBXVEYKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVE
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYg
QVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfV0FSTklOR19HQ0Nf
VE9QX0xFVkVMX0VORCgiLVdyZXR1cm4tdHlwZSIpCisjZW5kaWYKIAogI2VuZGlmIC8vIEVOQUJM
RShCM19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNUeXBlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNUeXBlLmgKaW5kZXggNGNlYWE4YTFkZjE0Yjhi
NmI2OGUwZTgwYmZlYjZhOWUwYTJkOGU4Mi4uOWYzMjFkOTM4YTllMTgzNGZkNzJlYTk1M2Y0MTE2
MjZkOGFkNTMxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVHlwZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGUuaApAQCAtMzAsMTAgKzMwLDkg
QEAKICNpbmNsdWRlICJCM0NvbW1vbi5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
IAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlw
ZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VS
VF9ESVNBQkxFRAorSUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTCgiLVdyZXR1cm4tdHlwZSIp
CisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTg3LDggKzg2
LDggQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwgSlNDOjpCMzo6VHlwZSk7CiAK
IH0gLy8gbmFtZXNwYWNlIFdURgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJM
RUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAm
JiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9XQVJOSU5HX0dD
Q19UT1BfTEVWRUxfRU5EKCItV3JldHVybi10eXBlIikKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5B
QkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGVN
YXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGVNYXAuaAppbmRleCBjMGVhNDEz
MDQ4YTU1NTZmNWRjMzQ1OGQzODQwZTVmYjViOTlkNmQxLi5jZjE4NDNhOGJmMTAyNzU1Zjg3NTc4
NmMwMjEwNmYxMWM5MGFmYTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNUeXBlTWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVHlwZU1hcC5oCkBA
IC0zMCwxMCArMzAsOSBAQAogI2luY2x1ZGUgIkIzVHlwZS5oIgogI2luY2x1ZGUgPHd0Zi9Qcmlu
dFN0cmVhbS5oPgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3JldHVybi10eXBlIgotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVE
CisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMKCItV3Jl
dHVybi10eXBlIikKKyNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIApA
QCAtMTAxLDggKzEwMCw4IEBAIHByaXZhdGU6CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwog
Ci0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNp
ZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKCItV3Jl
dHVybi10eXBlIikKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dpZHRoLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNXaWR0aC5oCmluZGV4IGUzNjU4M2Y2OTRiODgzZmIyYjg4OWQwMTMxMDgzNGEw
NTMxY2ZjNDcuLjk4OTU4MzZiMzI3YTQyZWJhYzIyZDIyZGZjMTYzYzJlZjMxMzM1NzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dpZHRoLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzV2lkdGguaApAQCAtMzAsMTAgKzMwLDkgQEAKICNpbmNsdWRlICJC
M0JhbmsuaCIKICNpbmNsdWRlICJCM1R5cGUuaCIKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNT
RVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0Mp
ICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1dBUk5JTkdf
R0NDX1RPUF9MRVZFTCgiLVdyZXR1cm4tdHlwZSIpCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTE0Myw5ICsxNDIsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwo
UHJpbnRTdHJlYW0mLCBKU0M6OkIzOjpXaWR0aCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCi0j
aWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0
aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBB
U1NFUlRfRElTQUJMRUQKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKCItV3JldHVy
bi10eXBlIikKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwCmluZGV4IGY5ZTQ2OWMwNDdjYmViMzg3MTc3NzUx
YzQ5Yzc2NmM1NzllNjg1MzkuLjJhYzQ4NDk2NjNiOTY3ODkzNGI2ZDA4NWZkY2ZmMDY4ODVmMjc0
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKQEAgLTM0LDEwICsz
NCw5IEBACiAjaW5jbHVkZSAiRlBSSW5mby5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKIAotI2lm
IENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNl
bmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNB
QkxFRAorSUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTF9FTkQoIi1XcmV0dXJuLXR5cGUiKQor
I2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsK
IApAQCAtMzc5LDggKzM3OCw4IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBBcmc6OlNpZ25lZG5lc3Mgc2lnbmVkbmVzcykKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKLSNp
ZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwb3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFT
U0VSVF9ESVNBQkxFRAorSUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTF9FTkQoIi1XcmV0dXJu
LXR5cGUiKQorI2VuZGlmCiAKICNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyQXJnLmgKaW5kZXggODM4ZmNhODkyMTI3MWMxYjA3NzhiMjVkNDUwNTc5
ZGU0Mzc5NTc2Ny4uYzFhNDIzNTJhZmQ4ZDg3YjcyODVjOWZhNGJlZTIwZTVlNTQwMmY2NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCkBAIC0zNSwxMCArMzUsOSBAQAogI2lu
Y2x1ZGUgIkIzV2lkdGguaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIAotI2lmIENPTVBJ
TEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAv
LyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAor
SUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTCgiLVdyZXR1cm4tdHlwZSIpCisjZW5kaWYKIAog
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTE0OTQsOCArMTQ5Myw4IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpCMzo6QWlyOjpBcmc+IDogU2ltcGxlQ2xh
c3NIYXNoVHJhaXRzPEpTQzo6QjM6CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCi0jaWYgQ09NUElM
RVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0j
ZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElT
QUJMRUQKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKCItV3JldHVybi10eXBlIikK
KyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJDb2RlLmgKaW5kZXggNzU5NzAzMGZkY2YwNDJiZmMzZDhkZWEyMjgxYjllYjI4YmEy
NTQzNS4uMjE4MzlkNTk4MzViNWJhMzNjMzZjYjM1YzJiM2QyMjg5MDY0MjY0YSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKQEAgLTQ0LDEwICs0NCw5IEBAIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCiBjbGFzcyBQcm9jZWR1cmU7CiAKLSNpZiBDT01QSUxF
UihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0dXJuLXR5cGUiCi0jZW5kaWYgLy8g
Q09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lH
Tk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUwoIi1XcmV0dXJuLXR5cGUiKQorI2VuZGlmCiAKIG5h
bWVzcGFjZSBBaXIgewogCkBAIC0zODgsOCArMzg3LDggQEAgcHJpdmF0ZToKIAogfSB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6QjM6OkFpcgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElT
QUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0ND
KSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9XQVJOSU5H
X0dDQ19UT1BfTEVWRUxfRU5EKCItV3JldHVybi10eXBlIikKKyNlbmRpZgogCiAjZW5kaWYgLy8g
RU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9PcGNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaAppbmRl
eCAwN2Q5YTczMTRlZWIxMDljNzMxMjM3ZDRiZTMyNzEzMWIxMWM5NGVlLi5lZDdlMWRjNzVlMWRk
ZTUzMzAyNzdiNjQxODFlYzU1ZDJjOTQ1MmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL09wY29kZS5oCkBAIC03NCwxOCArNzQsMTMgQEAgY29uc3QgaW50IG51bU9wY29kZUlEcyA9
IE5VTUJFUl9PRl9CWVRFQ09ERV9JRFMgKyBOVU1CRVJfT0ZfQllURUNPREVfSEVMUEVSX0lEUzsK
ICAgICBjb25zdCBpbnQgb3Bjb2RlTGVuZ3Roc1tudW1PcGNvZGVJRHNdID0geyBGT1JfRUFDSF9P
UENPREVfSUQoT1BDT0RFX0lEX0xFTkdUSF9NQVApIH07CiAjdW5kZWYgT1BDT0RFX0lEX0xFTkdU
SF9NQVAKIAotI2lmIENPTVBJTEVSKEdDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3R5cGUtbGltaXRzIgotI2VuZGlmCitJ
R05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMKCItV3R5cGUtbGltaXRzIikKIAogI2RlZmluZSBW
RVJJRllfT1BDT0RFX0lEKGlkLCBzaXplKSBDT01QSUxFX0FTU0VSVChpZCA8PSBudW1PcGNvZGVJ
RHMsIEFTU0VSVF9USEFUX0pTX09QQ09ERV9JRFNfQVJFX1ZBTElEKTsKICAgICBGT1JfRUFDSF9P
UENPREVfSUQoVkVSSUZZX09QQ09ERV9JRCk7CiAjdW5kZWYgVkVSSUZZX09QQ09ERV9JRAogCi0j
aWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdO
T1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTF9FTkQoIi1XdHlwZS1saW1pdHMiKQogCiAjaWYgRU5B
QkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKIHR5cGVkZWYgdm9pZCogT3Bjb2RlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBiZDE4
ZjlkZjliN2U4NTMwOTIzZWRmNmUwYjQxMDhmNmQyOTdhMDY3Li5hYWVmNmEyMjhkOGNlOWJkMWE4
OTJmMDJkNjdkNTU5NTkyMDFhODg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtOTY1NywxNCArOTY1Nyw5IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OnNwZWN1bGF0ZU51bWJlcihFZGdlIGVkZ2UpCiAgICAgICAgIEpTVmFsdWVSZWdz
KGdwciksIGVkZ2UsIFNwZWNCeXRlY29kZU51bWJlciwKICAgICAgICAgbV9qaXQuYnJhbmNoSWZO
b3ROdW1iZXIoZ3ByKSk7CiAjZWxzZQotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2VudW0tY29tcGFyZSIKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFORygi
LVdlbnVtLWNvbXBhcmUiKTsKICAgICBzdGF0aWNfYXNzZXJ0KEpTVmFsdWU6OkludDMyVGFnID49
IEpTVmFsdWU6Okxvd2VzdFRhZywgIkludDMyVGFnIGlzIGluY2x1ZGVkIGluID49IEpTVmFsdWU6
Okxvd2VzdFRhZyByYW5nZS4iKTsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21h
IEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NM
QU5HX0VORCgiLVdlbnVtLWNvbXBhcmUiKTsKICAgICBHUFJSZWcgdGFnR1BSID0gdmFsdWUudGFn
R1BSKCk7CiAgICAgREZHX1RZUEVfQ0hFQ0soCiAgICAgICAgIHZhbHVlLmpzVmFsdWVSZWdzKCks
IGVkZ2UsIH5TcGVjSW50MzJPbmx5LApAQCAtMTAxNzEsMTQgKzEwMTY2LDkgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6c3BlY3VsYXRlTWlzYyhFZGdlIGVkZ2UsIEpTVmFsdWVSZWdzIHJlZ3MpCiAg
ICAgICAgIHJlZ3MsIGVkZ2UsIFNwZWNNaXNjLAogICAgICAgICBtX2ppdC5icmFuY2g2NChNYWNy
b0Fzc2VtYmxlcjo6QWJvdmUsIHJlZ3MuZ3ByKCksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
NjQoVGFnQml0VHlwZU90aGVyIHwgVGFnQml0Qm9vbCB8IFRhZ0JpdFVuZGVmaW5lZCkpKTsKICNl
bHNlCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZW51bS1jb21wYXJlIgotI2Vu
ZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HKCItV2VudW0tY29tcGFyZSIpOwog
ICAgIHN0YXRpY19hc3NlcnQoSlNWYWx1ZTo6SW50MzJUYWcgPj0gSlNWYWx1ZTo6VW5kZWZpbmVk
VGFnLCAiSW50MzJUYWcgaXMgaW5jbHVkZWQgaW4gPj0gSlNWYWx1ZTo6VW5kZWZpbmVkVGFnIHJh
bmdlLiIpOwotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0
aWMgcG9wCi0jZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfRU5EKCItV2Vu
dW0tY29tcGFyZSIpOwogICAgIERGR19UWVBFX0NIRUNLKAogICAgICAgICByZWdzLCBlZGdlLCB+
U3BlY0ludDMyT25seSwKICAgICAgICAgbV9qaXQuYnJhbmNoSWZJbnQzMihyZWdzLnRhZ0dQUigp
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcAppbmRleCA3ZTFjYmNmOGVkOTY1ZWNjOWE2Y2E4NjRkNWI4N2ZlMWI3NDVkN2ViLi42NjRl
N2I0MWIxZjA1ODU2NWI3NWRlNGM5MGIzNmZiZWE3NDUzOGY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTg3NiwxMiArODc2
LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZSkKIAogLy8gQ2xh
bmcgc2hvdWxkIGFsbG93IHVucmVhY2hhYmxlIFtbY2xhbmc6OmZhbGx0aHJvdWdoXV0gaW4gdGVt
cGxhdGUgZnVuY3Rpb25zIGlmIGFueSB0ZW1wbGF0ZSBleHBhbnNpb24gdXNlcyBpdAogLy8gaHR0
cDovL2xsdm0ub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTE4NjE5Ci0jaWYgQ09NUElMRVIoQ0xB
TkcpICYmIGRlZmluZWQoX19oYXNfd2FybmluZykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jaWYgX19oYXNfd2FybmluZygiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIpCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIKLSNlbmRp
ZgotI2VuZGlmCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XaW1wbGljaXQtZmFs
bHRocm91Z2giKQogdGVtcGxhdGU8Ym9vbCBzdHJpY3Q+CiBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6
OmZpbGxTcGVjdWxhdGVJbnQzMkludGVybmFsKEVkZ2UgZWRnZSwgRGF0YUZvcm1hdCYgcmV0dXJu
Rm9ybWF0KQogewpAQCAtMTAxMiw5ICsxMDA3LDcgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpm
aWxsU3BlY3VsYXRlSW50MzJJbnRlcm5hbChFZGdlIGVkZ2UsIERhdGFGb3JtYXQmIHJldHVybkYK
ICAgICAgICAgcmV0dXJuIEludmFsaWRHUFJSZWc7CiAgICAgfQogfQotI2lmIENPTVBJTEVSKENM
QU5HKSAmJiBkZWZpbmVkKF9faGFzX3dhcm5pbmcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XaW1wbGlj
aXQtZmFsbHRocm91Z2giKQogCiBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJ
bnQzMihFZGdlIGVkZ2UsIERhdGFGb3JtYXQmIHJldHVybkZvcm1hdCkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTE91dHB1dC5oCmluZGV4IDlmNTkzNjljODliZTU3ZTZlZTc3OWUxMTZmMzdm
ZTZjMmI3ZTk3MGYuLjdhNmEwMGQxOTZlMTZjYzJjODg5ZTcyYmEwMzE4NDZmMjUxZjFhNWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaApAQCAtNTAsMTEgKzUwLDggQEAKICNp
bmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogLy8gRklYTUU6IHJlbW92ZSB0aGlz
IG9uY2UgZXZlcnl0aGluZyBjYW4gYmUgZ2VuZXJhdGVkIHRocm91Z2ggQjMuCi0jaWYgQ09NUElM
RVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdD
QyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbWlzc2luZy1ub3JldHVybiIKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgotI2VuZGlmIC8vIENPTVBJTEVS
KEdDQ19PUl9DTEFORykKK0lHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFOR19UT1BfTEVWRUwoIi1X
bWlzc2luZy1ub3JldHVybiIpCitJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfVE9QX0xFVkVM
KCItV3VudXNlZC1wYXJhbWV0ZXIiKQogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNTAwLDkgKzQ5
Nyw4IEBAIGlubGluZSB2b2lkIE91dHB1dDo6YWRkSW5jb21pbmdUb1BoaShMVmFsdWUgcGhpLCBW
YWx1ZUZyb21CbG9jayB2YWx1ZSwgUGFyYW1zLi4uCiAgICAgYWRkSW5jb21pbmdUb1BoaShwaGks
IHRoZVJlc3QuLi4pOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCitJR05P
UkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bnVzZWQtcGFyYW1ldGVy
IikKK0lHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFOR19UT1BfTEVWRUxfRU5EKCItV21pc3Npbmct
bm9yZXR1cm4iKQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0NDYWxsSGVscGVycy5oCmluZGV4IDFkOGUzYmVlOWI2YmQ2N2U3MDkzNDc1NTM2
ZDJiZDU3ZDFmMzE4M2YuLjNmYTgzMWRhZjZhMDg1YmNmNmFlNzk1ZjY2ZjQyNWQ3MDBlZTc0NTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtMzI5LDE0ICsz
MjksOSBAQCBwcml2YXRlOgogCiAgICAgICAgIGN1cnJlbnRHUFJBcmd1bWVudCArPSBleHRyYUdQ
UkFyZ3M7CiAgICAgICAgIGN1cnJlbnRGUFJBcmd1bWVudCAtPSBudW1Dcm9zc1NvdXJjZXM7Ci0j
aWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdHlwZS1saW1pdHMiCi0jZW5kaWYKKyAg
ICAgICAgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HKCItV3R5cGUtbGltaXRzIik7CiAgICAg
ICAgIEFTU0VSVChjdXJyZW50R1BSQXJndW1lbnQgPj0gR1BSSW5mbzo6bnVtYmVyT2ZBcmd1bWVu
dFJlZ2lzdGVycyB8fCBjdXJyZW50RlBSQXJndW1lbnQgPj0gRlBSSW5mbzo6bnVtYmVyT2ZBcmd1
bWVudFJlZ2lzdGVycyk7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgICAgICBJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xB
TkdfRU5EKCItV3R5cGUtbGltaXRzIik7CiAKICAgICAgICAgdW5zaWduZWQgcG9rZU9mZnNldCA9
IFBPS0VfQVJHVU1FTlRfT0ZGU0VUICsgZXh0cmFQb2tlOwogICAgICAgICBwb2tlT2Zmc2V0ICs9
IHN0ZDo6bWF4KGN1cnJlbnRHUFJBcmd1bWVudCwgbnVtYmVyT2ZHUEFyZ3VtZW50UmVnaXN0ZXJz
KSAtIG51bWJlck9mR1BBcmd1bWVudFJlZ2lzdGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50RGF0YS5jcHAKaW5kZXggYzkzZDE1Yzc0YzU4ZmY1ZDk2YWEwYWFkOTQzNDEzZjA4
NWEzZDkyZS4uMWNiNzdhNjJiNTUwNDJlNzdkOWZlOWYxNWI5YzhmN2JlMzljNDc4YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKQEAgLTY3LDEwICs2Nyw3IEBA
IHZvaWQgaW5pdGlhbGl6ZSgpCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIH0KIAotI2lmIENPTVBJ
TEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV21pc3Npbmctbm9yZXR1cm4iCi0jZW5kaWYKK0lHTk9SRV9X
QVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdtaXNzaW5nLW5vcmV0dXJuIikKIHZvaWQgRGF0YTo6
cGVyZm9ybUFzc2VydGlvbnMoVk0mIHZtKQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0x
OTksOCArMTk2LDYgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyhWTSYgdm0pCiAgICAg
ICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCku
aXNPbmx5TnVtYmVyKCkpOwogICAgIH0KIH0KLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xF
VkVMX0VORCgiLVdtaXNzaW5nLW5vcmV0dXJuIikKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxM
SW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0
aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApp
bmRleCAyODQzMzA1YjMwNmExOGRkOTQ4YTdlMWQ5ZWMwMTA0MTNiZDg2MWFiLi5jODQ1Y2UwOTcy
Yjg2NWQ2OTkxYjg3MjljMDgwMzVkMmZmMmY4NmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTIwNSwxNiArMjA1LDEyIEBAIHZvaWQg
c2xvd1BhdGhMbihjb25zdCBUeXBlcyYuLi4gdmFsdWVzKQogdGVtcGxhdGU8dHlwZW5hbWUuLi4g
VHlwZXM+CiB2b2lkIHNsb3dQYXRoTG9nRihjb25zdCBjaGFyKiBmb3JtYXQsIGNvbnN0IFR5cGVz
Ji4uLiB2YWx1ZXMpCiB7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0
LW5vbmxpdGVyYWwiCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LXNl
Y3VyaXR5IgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HKCItV2Zvcm1h
dC1ub25saXRlcmFsIik7CisgICAgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HKCItV2Zvcm1h
dC1zZWN1cml0eSIpOwogICAgIGlmIChPcHRpb25zOjp0cmFjZUxMSW50U2xvd1BhdGgoKSkKICAg
ICAgICAgZGF0YUxvZ0YoZm9ybWF0LCB2YWx1ZXMuLi4pOwotI2lmIENPTVBJTEVSKEdDQ19PUl9D
TEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBJR05PUkVfV0FS
TklOR19HQ0NfT1JfQ0xBTkdfRU5EKCItV2Zvcm1hdC1zZWN1cml0eSIpOworICAgIElHTk9SRV9X
QVJOSU5HX0dDQ19PUl9DTEFOR19FTkQoIi1XZm9ybWF0LW5vbmxpdGVyYWwiKTsKIH0KIAogI2Vs
c2UgLy8gbm90IExMSU5UX1RSQUNJTkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29uZmlnRmlsZS5jcHAKaW5kZXggOThjMTk2ZjgyZjY4NTFiZGY3MGVmOGQ2MjIzYjVhMTY5MTI5
MzYyZi4uMDQ5NzQ2NDhkNDhjYzNjNDc0NWEzNDY3ZmFmN2JhZThlNzY3OGY0ZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uZmlnRmlsZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uZmlnRmlsZS5jcHAKQEAgLTQ5MSwxNCArNDkx
LDEzIEBAIHZvaWQgQ29uZmlnRmlsZTo6Y2Fub25pY2FsaXplUGF0aHMoKQogICAgICAgICAgICAg
ICAgICAgICBzdHJuY2F0KGZpbGVuYW1lQnVmZmVyLCAiLyIsIDIpOyAvLyBSb29tIGZvciAnLycg
cGx1cyBOVUwKICNpZiBDT01QSUxFUihHQ0MpCiAjaWYgR0NDX1ZFUlNJT05fQVRfTEVBU1QoOCwg
MCwgMCkKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV3N0cmluZ29wLXRydW5jYXRpb24iCisgICAgICAgICAgICAgICAgSUdOT1JF
X1dBUk5JTkdfR0NDKCItV3N0cmluZ29wLXRydW5jYXRpb24iKTsKICNlbmRpZgogI2VuZGlmCiAg
ICAgICAgICAgICAgICAgc3RybmNhdChmaWxlbmFtZUJ1ZmZlciwgbV9maWxlbmFtZSwgc2l6ZW9m
KGZpbGVuYW1lQnVmZmVyKSAtIHN0cmxlbihmaWxlbmFtZUJ1ZmZlcikgLSAxKTsKICNpZiBDT01Q
SUxFUihHQ0MpCiAjaWYgR0NDX1ZFUlNJT05fQVRfTEVBU1QoOCwgMCwgMCkKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAgICAgSUdOT1JFX1dBUk5JTkdfR0NDX0VORCgi
LVdzdHJpbmdvcC10cnVuY2F0aW9uIik7CiAjZW5kaWYKICNlbmRpZgogICAgICAgICAgICAgICAg
IHN0cm5jcHkobV9maWxlbmFtZSwgZmlsZW5hbWVCdWZmZXIsIHNfbWF4UGF0aExlbmd0aCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5
cGUuY3BwCmluZGV4IGYwNWNmZjVmODhhNTUxYzNhN2M0YmFhZDJmMDNjNWI0Nzc4OWFmNmQuLmMw
Y2FlMDVlMWQ1NGI5YzQ5NGZlMTYzNWJmYzM2Zjk5Nzc3MmJmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCkBAIC0y
MDgsMTAgKzIwOCw3IEBAIEVuY29kZWRKU1ZhbHVlIHNldERhdGEoRXhlY1N0YXRlKiBleGVjKQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLSNpZiBDT01Q
SUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdtaXNzaW5nLXByb3RvdHlwZXMiCi0jZW5kaWYKK0lHTk9S
RV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdtaXNzaW5nLXByb3RvdHlwZXMiKQogCiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9HZXR0ZXJCdWZmZXIoRXhlY1N0
YXRlKiBleGVjKQogewpAQCAtMzI4LDggKzMyNSw2IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRGbG9hdDY0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAg
ICByZXR1cm4gc2V0RGF0YTxGbG9hdDY0QWRhcHRvcj4oZXhlYyk7CiB9Ci0jaWYgQ09NUElMRVIo
Q0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9XQVJO
SU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XbWlzc2luZy1wcm90b3R5cGVzIikKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmgKaW5kZXggOGFj
ZmQ0OGUyM2ZmZDk2Y2JjYjJmYmI3YmY3MTJmNzgwOGY1YTQ0MC4uZDdjYmRmYzJhZDg5MDFlNmMy
MDU2ZDMyMDU3MGRhZmQzYzcyYTE5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0
b3IuaApAQCAtNDMsMTkgKzQzLDEwIEBAIHB1YmxpYzoKICAgICAgICAgVk0mLCBKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZSosIEpTT2JqZWN0KiBwcm90b3R5cGUsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgRnVuY3Rpb25FeGVjdXRhYmxlKiBwcml2YXRlQWxsb2NhdG9yKTsKIAogICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgZml4IHRoZSB3YXJuaW5ncyBmb3IgZXh0ZXJuLXRlbXBsYXRlIGluIEpTT2Jq
ZWN0IHRlbXBsYXRlIGNsYXNzZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjE5NzkKLSNpZiBDT01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3Vu
ZGVmaW5lZC12YXItdGVtcGxhdGUiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUi
Ci0jZW5kaWYKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1
bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKICAgICBERUNMQVJFX0lORk87Ci0jaWYgQ09NUElMRVIo
Q0xBTkcpCi0jaWYgX19oYXNfd2FybmluZygiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgotI2VuZGlmCi0gICAgCisgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRl
IikKKwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFs
T2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5cGUpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJv
dG90eXBlLmgKaW5kZXggNGUxZWI3ZDg4MzRjYmM1ZGU3MmNkNmNjNmIxZDI0YjQ2MTQzYzViNi4u
MGY2MGU4ZGViMzMwNDAxNmYwNTg3NTE5NjYzODcxN2Y4NDM2YjM1YyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5
cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld1Byb3RvdHlwZS5oCkBAIC00MywxOCArNDMsOSBAQCBwdWJsaWM6CiAgICAgICAgIFZN
JiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgZml4IHRoZSB3YXJuaW5ncyBmb3IgZXh0ZXJuLXRlbXBsYXRlIGluIEpTT2JqZWN0IHRlbXBs
YXRlIGNsYXNzZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5
NzkKLSNpZiBDT01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3VuZGVmaW5lZC12
YXItdGVtcGxhdGUiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiCi0jZW5kaWYK
LSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmRlZmluZWQt
dmFyLXRlbXBsYXRlIikKICAgICBERUNMQVJFX0lORk87Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0j
aWYgX19oYXNfd2FybmluZygiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfVE9QX0xFVkVMX0VORCgiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKICAgICAKICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpT
VmFsdWUgcHJvdG90eXBlKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnMuY3BwCmluZGV4IDQwN2M1NzA0NzQ2YjA0Y2ZmNzRkZmE5OGI5YmMzMTNmYzczMzY2NGYuLjA5
YjcwNWI0ODgyOTEwYTIwNjJhODczNTcyYzExMjk2NTBhZDQ0MmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCkBAIC03NDQsMTIgKzc0NCw3IEBAIGJvb2wgT3B0
aW9uczo6c2V0QWxpYXNlZE9wdGlvbihjb25zdCBjaGFyKiBhcmcpCiAgICAgaWYgKCFlcXVhbFN0
cikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jaWYgX19o
YXNfd2FybmluZygiLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdGF1dG9sb2dp
Y2FsLWNvbXBhcmUiCi0jZW5kaWYKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RP
UF9MRVZFTCgiLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCiAKICAgICAvLyBGb3IgZWFjaCBvcHRp
b24sIGNoZWNrIGlmIHRoZSBzcGVjaWZ5IGFyZyBpcyBhIG1hdGNoLiBJZiBzbywgc2V0IHRoZSBh
cmcKICAgICAvLyBpZiB0aGUgdmFsdWUgbWFrZXMgc2Vuc2UuIE90aGVyd2lzZSwgbW92ZSBvbiB0
byBjaGVja2luZyB0aGUgbmV4dCBvcHRpb24uCkBAIC03NzIsMTEgKzc2Nyw3IEBAIGJvb2wgT3B0
aW9uczo6c2V0QWxpYXNlZE9wdGlvbihjb25zdCBjaGFyKiBhcmcpCiAgICAgSlNDX0FMSUFTRURf
T1BUSU9OUyhGT1JfRUFDSF9PUFRJT04pCiAjdW5kZWYgRk9SX0VBQ0hfT1BUSU9OCiAKLSNpZiBD
T01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3RhdXRvbG9naWNhbC1jb21wYXJl
IikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgotI2VuZGlmCisgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSIp
CiAKICAgICByZXR1cm4gZmFsc2U7IC8vIE5vIG9wdGlvbiBtYXRjaGVkLgogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxpbmcuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxpbmcuY3BwCmluZGV4IGMzZGE4YzJjMjkz
ZmNjOWJjYzczZGYxMmY2OTZmNGNlM2I0OThkYTMuLjc3ZGY1ZGU4M2M5YzMzYzEyM2YwM2VjMjk4
MDI1MjkxMjQ3OGVhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9D
b2RlUHJvZmlsaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29kZVBy
b2ZpbGluZy5jcHAKQEAgLTQ0LDEwICs0NCw3IEBAIHZvbGF0aWxlIENvZGVQcm9maWxlKiBDb2Rl
UHJvZmlsaW5nOjpzX3Byb2ZpbGVTdGFjayA9IDA7CiBDb2RlUHJvZmlsaW5nOjpNb2RlIENvZGVQ
cm9maWxpbmc6OnNfbW9kZSA9IENvZGVQcm9maWxpbmc6OkRpc2FibGVkOwogV1RGOjpNZXRhQWxs
b2NhdG9yVHJhY2tlciogQ29kZVByb2ZpbGluZzo6c190cmFja2VyID0gMDsKIAotI2lmIENPTVBJ
TEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV21pc3Npbmctbm9yZXR1cm4iCi0jZW5kaWYKK0lHTk9SRV9X
QVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdtaXNzaW5nLW5vcmV0dXJuIikKIAogI2lmIEhBVkUo
TUFDSElORV9DT05URVhUKQogLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHN0YXJ0ICYgc3RvcCB0aGUg
dGltZXIuCkBAIC02Myw5ICs2MCw3IEBAIHN0YXRpYyB2b2lkIHNldFByb2ZpbGVUaW1lcih1bnNp
Z25lZCB1c2VjKQogfQogI2VuZGlmCiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVM
X0VORCgiLVdtaXNzaW5nLW5vcmV0dXJuIikKIAogI2lmIEhBVkUoTUFDSElORV9DT05URVhUKQog
c3RhdGljIHZvaWQgcHJvZmlsaW5nVGltZXIoaW50LCBzaWdpbmZvX3QqLCB2b2lkKiB1YXApCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvbnMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TZWN0aW9ucy5oCmluZGV4IGU2OTI0Yjc5NTNj
YzM2NDZiZWU5MDg0NDFhNjNjNjNjMjk0YTc3ZDYuLmYzYTFhYTBiYzcxMDcyZmJjZTFlYmVkN2Ri
NGM2ZGE4MjJiNjI3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21TZWN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TZWN0aW9u
cy5oCkBAIC0yNywxMCArMjcsOSBAQAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCi0jaWYg
Q09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2Vu
ZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FC
TEVECitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMKCItV3JldHVybi10eXBlIikKKyNlbmRp
ZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCkBAIC0xMDcsOCArMTA2LDgg
QEAgaW5saW5lIGNvbnN0IGNoYXIqIG1ha2VTdHJpbmcoU2VjdGlvbiBzZWN0aW9uKQogCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6V2FzbQogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElT
QUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0ND
KSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9XQVJOSU5H
X0dDQ19UT1BfTEVWRUxfRU5EKCItV3JldHVybi10eXBlIikKKyNlbmRpZgogCiAjZW5kaWYgLy8g
RU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vZ2VuZXJhdGVXYXNtVmFsaWRhdGVJbmxpbmVzSGVhZGVyLnB5IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vZ2VuZXJhdGVXYXNtVmFsaWRhdGVJbmxpbmVzSGVhZGVyLnB5CmluZGV4IGJj
NTRhMjIzNzQ2NWRiOWM3ZDkwM2YyMmE5NTQyYTFjYTY4ZWY1NTUuLjcxZmQyZTM2YjgxZTgwYmFl
MmRhNTU2ODMwZmZkMzdjZTIzM2ZhM2UgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9nZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIucHkK
QEAgLTEyNywxMCArMTI3LDkgQEAgY29udGVudHMgPSB3YXNtLmhlYWRlciArICIiIgogCiAjaW5j
bHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRf
RElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYg
QVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfV0FSTklOR19HQ0Nf
VE9QX0xFVkVMKCItV3JldHVybi10eXBlIikKKyNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIFdhc20gewogCkBAIC0xNjAsOSArMTU5LDkgQEAgYXV0byBWYWxpZGF0ZTo6c3RvcmUo
U3RvcmVPcFR5cGUgb3AsIEV4cHJlc3Npb25UeXBlIHBvaW50ZXIsIEV4cHJlc3Npb25UeXBlIHZh
bHUKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KIAotI2lmIENPTVBJTEVSKEdDQykgJiYg
QVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENP
TVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05P
UkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMX0VORCgiLVdyZXR1cm4tdHlwZSIpCisjZW5kaWYKIAog
I2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvQXNzZXJ0aW9ucy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcAppbmRleCBm
ZThmYWMwN2Q2Zjc1NzNlMDJmMjY5ZGU1YjBiNTBmMmJkZTdkYzVkLi4yYTQyNjgyOGRhOTVjYTM4
YzY0OTA1YTc4Nzk2ZDZhNjViNjYyMDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Bc3Nl
cnRpb25zLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcApAQCAtNzksMTAg
Kzc5LDkgQEAgZXh0ZXJuICJDIiB7CiBzdGF0aWMgdm9pZCBsb2dUb1N0ZGVycihjb25zdCBjaGFy
KiBidWZmZXIpCiB7CiAjaWYgVVNFKEFQUExFX1NZU1RFTV9MT0cpCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIGFzbF9sb2coMCwgMCwgQVNMX0xFVkVMX05PVElDRSwgIiVzIiwg
YnVmZmVyKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogI2VuZGlmCiAgICAgZnB1dHMo
YnVmZmVyLCBzdGRlcnIpOwogfQpAQCAtOTQsMTQgKzkzLDkgQEAgc3RhdGljIHZvaWQgdnByaW50
Zl9zdGRlcnJfY29tbW9uKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmdzKQogICAgIGlm
IChzdHJzdHIoZm9ybWF0LCAiJUAiKSkgewogICAgICAgICBhdXRvIGNmRm9ybWF0ID0gYWRvcHRD
RihDRlN0cmluZ0NyZWF0ZVdpdGhDU3RyaW5nKG51bGxwdHIsIGZvcm1hdCwga0NGU3RyaW5nRW5j
b2RpbmdVVEY4KSk7CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9u
bGl0ZXJhbCIKLSNlbmRpZgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdmb3JtYXQt
bm9ubGl0ZXJhbCIpOwogICAgICAgICBhdXRvIHN0ciA9IGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVX
aXRoRm9ybWF0QW5kQXJndW1lbnRzKG51bGxwdHIsIG51bGxwdHIsIGNmRm9ybWF0LmdldCgpLCBh
cmdzKSk7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
Ci0jZW5kaWYKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZm9ybWF0LW5vbmxpdGVy
YWwiKTsKICAgICAgICAgQ0ZJbmRleCBsZW5ndGggPSBDRlN0cmluZ0dldE1heGltdW1TaXplRm9y
RW5jb2RpbmcoQ0ZTdHJpbmdHZXRMZW5ndGgoc3RyLmdldCgpKSwga0NGU3RyaW5nRW5jb2RpbmdV
VEY4KTsKICAgICAgICAgY29uc3RleHByIHVuc2lnbmVkIEluaXRpYWxCdWZmZXJTaXplIHsgMjU2
IH07CiAgICAgICAgIFZlY3RvcjxjaGFyLCBJbml0aWFsQnVmZmVyU2l6ZT4gYnVmZmVyKGxlbmd0
aCArIDEpOwpAQCAtMTEzLDEzICsxMDcsMTIgQEAgc3RhdGljIHZvaWQgdnByaW50Zl9zdGRlcnJf
Y29tbW9uKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmdzKQogICAgIH0KIAogI2lmIFVT
RShBUFBMRV9TWVNURU1fTE9HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgdmFfbGlzdCBjb3B5T2ZBcmdzOwogICAgIHZhX2NvcHkoY29weU9mQXJncywgYXJncyk7CiAg
ICAgYXNsX3Zsb2coMCwgMCwgQVNMX0xFVkVMX05PVElDRSwgZm9ybWF0LCBjb3B5T2ZBcmdzKTsK
ICAgICB2YV9lbmQoY29weU9mQXJncyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAjZW5kaWYKIAogICAgIC8vIEZhbGwgdGhyb3VnaCB0byB3cml0ZSB0byBzdGRlcnIgaW4gdGhl
IHNhbWUgbWFubmVyIGFzIG90aGVyIHBsYXRmb3Jtcy4KQEAgLTE0MSwxMCArMTM0LDcgQEAgc3Rh
dGljIHZvaWQgdnByaW50Zl9zdGRlcnJfY29tbW9uKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlz
dCBhcmdzKQogICAgIHZmcHJpbnRmKHN0ZGVyciwgZm9ybWF0LCBhcmdzKTsKIH0KIAotI2lmIENP
TVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2VuZGlmCitJ
R05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfVE9QX0xFVkVMKCItV2Zvcm1hdC1ub25saXRlcmFs
IikKIAogc3RhdGljIHZvaWQgdnByaW50Zl9zdGRlcnJfd2l0aF9wcmVmaXgoY29uc3QgY2hhciog
cHJlZml4LCBjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QgYXJncykKIHsKQEAgLTE3NCw5ICsx
NjQsNyBAQCBzdGF0aWMgdm9pZCB2cHJpbnRmX3N0ZGVycl93aXRoX3RyYWlsaW5nX25ld2xpbmUo
Y29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZwogICAgIHZwcmludGZfc3RkZXJyX2NvbW1v
bihmb3JtYXRXaXRoTmV3bGluZS5kYXRhKCksIGFyZ3MpOwogfQogCi0jaWYgQ09NUElMRVIoR0ND
X09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX1dB
Uk5JTkdfR0NDX09SX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZm9ybWF0LW5vbmxpdGVyYWwiKQog
CiBXVEZfQVRUUklCVVRFX1BSSU5URigxLCAyKQogc3RhdGljIHZvaWQgcHJpbnRmX3N0ZGVycl9j
b21tb24oY29uc3QgY2hhciogZm9ybWF0LCAuLi4pCkBAIC0zODUsMTQgKzM3Myw5IEBAIHZvaWQg
V1RGTG9nV2l0aExldmVsKFdURkxvZ0NoYW5uZWwqIGNoYW5uZWwsIFdURkxvZ0xldmVsIGxldmVs
LCBjb25zdCBjaGFyKiBmb3JtCiAgICAgdmFfbGlzdCBhcmdzOwogICAgIHZhX3N0YXJ0KGFyZ3Ms
IGZvcm1hdCk7CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0
ZXJhbCIKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Zvcm1hdC1ub25saXRl
cmFsIik7CiAgICAgV1RGTG9nKGNoYW5uZWwsIGZvcm1hdCwgYXJncyk7Ci0jaWYgQ09NUElMRVIo
Q0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBJR05PUkVf
V0FSTklOR19DTEFOR19FTkQoIi1XZm9ybWF0LW5vbmxpdGVyYWwiKTsKIAogICAgIHZhX2VuZChh
cmdzKTsKIH0KQEAgLTQxNSwxNCArMzk4LDkgQEAgdm9pZCBXVEZMb2coV1RGTG9nQ2hhbm5lbCog
Y2hhbm5lbCwgY29uc3QgY2hhciogZm9ybWF0LCAuLi4pCiAgICAgdmFfbGlzdCBhcmdzOwogICAg
IHZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCIt
V2Zvcm1hdC1ub25saXRlcmFsIik7CiAgICAgU3RyaW5nIGxvZ2dpbmdTdHJpbmcgPSBTdHJpbmc6
OmZvcm1hdChmb3JtYXQsIGFyZ3MpOwotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCIt
V2Zvcm1hdC1ub25saXRlcmFsIik7CiAKICAgICB2YV9lbmQoYXJncyk7CiAKQEAgLTQ0MiwxNCAr
NDIwLDkgQEAgdm9pZCBXVEZMb2dWZXJib3NlKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBj
b25zdCBjaGFyKiBmdW5jdGlvbiwgV1RGTG9nQ2hhbm4KICAgICB2YV9saXN0IGFyZ3M7CiAgICAg
dmFfc3RhcnQoYXJncywgZm9ybWF0KTsKIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2Zvcm1hdC1ub25saXRlcmFsIgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1X
Zm9ybWF0LW5vbmxpdGVyYWwiKTsKICAgICBXVEZMb2coY2hhbm5lbCwgZm9ybWF0LCBhcmdzKTsK
LSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRp
ZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdmb3JtYXQtbm9ubGl0ZXJhbCIpOwog
CiAgICAgdmFfZW5kKGFyZ3MpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRp
b25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKaW5kZXggNWIyOGY4NmZhOTMxZDhj
YTFhYzE4Mzg1ODVmMmYwZjJkMzVmNTlmNi4uNTA1NDE3NDFiYTU4ZjE0MDk2OTY5YjlhN2U0NDEy
NTVlZTc0MjlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaApAQCAtNjAyLDE1ICs2MDIsMTQgQEAgaW5saW5l
IHZvaWQgY29tcGlsZXJGZW5jZUZvckNyYXNoKCkKICNpZiBDT01QSUxFUihDTEFORykKIC8vIFRo
aXMgd291bGQgYmUgYSBtYWNybyBleGNlcHQgdGhhdCBpdHMgdXNlIG9mICNwcmFnbWEgd29ya3Mg
YmVzdCBhcm91bmQKIC8vIGEgZnVuY3Rpb24uIEhlbmNlIGl0IHVzZXMgbWFjcm8gbmFtaW5nIGNv
bnZlbnRpb24uCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XbWlzc2luZy1ub3JldHVybiIKK0lHTk9SRV9XQVJOSU5HX0NM
QU5HX1RPUF9MRVZFTCgiLVdtaXNzaW5nLW5vcmV0dXJuIik7CiBzdGF0aWMgaW5saW5lIHZvaWQg
VU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCkKIHsKICAgICAvLyBUaGlzICpNVVNUKiBiZSBhIHJl
bGVhc2UgYXNzZXJ0LiBXZSB1c2UgaXQgaW4gcGxhY2VzIHdoZXJlIGl0J3MgYmV0dGVyIHRvIGNy
YXNoIHRoYW4gdG8ga2VlcAogICAgIC8vIGdvaW5nLgogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklO
R19DTEFOR19UT1BfTEVWRUxfRU5EKCItV21pc3Npbmctbm9yZXR1cm4iKTsKICNlbHNlCiAjZGVm
aW5lIFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ29tcGlsZXIuaCBiL1NvdXJj
ZS9XVEYvd3RmL0NvbXBpbGVyLmgKaW5kZXggNzk4YzMwOTBjOWIxYzE4NTgwYTNhNmJlNmZhYjY1
YmRhY2U2ZmZhYS4uZGI5OTA2MWYxMGNmODJkMWNjMmViNjlmYjY4ZDY4YjZhYWRkMTNiYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ29tcGlsZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9D
b21waWxlci5oCkBAIC0zODUsNCArMzg1LDgwIEBACiAjZGVmaW5lIF9faGFzX2luY2x1ZGUocGF0
aCkgMAogI2VuZGlmCiAKKy8qIElHTk9SRV9XQVJOSU5HLiogKi8KKworLy8gQ2FuJ3QgdXNlIFdU
Rl9DT05DQVQoKSBhbmQgU1RSSU5HSVpFKCkgYmVjYXVzZSB0aGV5IGFyZSBkZWZpbmVkIGluCisv
LyBTdGRMaWJFeHRyYXMuaCB3aGljaCBpbmNsdWRlcyB1cworI2RlZmluZSBfQ09NUElMRVJfQ09O
Q0FUX0koYSwgYikgYSAjIyBiCisjZGVmaW5lIF9DT01QSUxFUl9DT05DQVQoYSwgYikgX0NPTVBJ
TEVSX0NPTkNBVF9JKGEsIGIpCisKKyNkZWZpbmUgX0NPTVBJTEVSX1NUUklOR0laRShleHApICNl
eHAKKworI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdf
Q09ORChjb25kLCBjb21waWxlciwgd2FybmluZykgX0NPTVBJTEVSX0NPTkNBVChJR05PUkVfV0FS
TklOR19JTVBMXywgY29uZCkoY29tcGlsZXIsIHdhcm5pbmcpCisjZGVmaW5lIElHTk9SRV9XQVJO
SU5HX0VORF9DT05EKGNvbmQsIGNvbXBpbGVyLCB3YXJuaW5nKSBfQ09NUElMRVJfQ09OQ0FUKElH
Tk9SRV9XQVJOSU5HX0VORF9JTVBMXywgY29uZCkoY29tcGlsZXIsIHdhcm5pbmcpCisKKyNkZWZp
bmUgSUdOT1JFX1dBUk5JTkdfSU1QTF8xKGNvbXBpbGVyLCB3YXJuaW5nKSBcCisgICAgX1ByYWdt
YShfQ09NUElMRVJfU1RSSU5HSVpFKGNvbXBpbGVyIGRpYWdub3N0aWMgcHVzaCkpIFwKKyAgICBf
UHJhZ21hKF9DT01QSUxFUl9TVFJJTkdJWkUoY29tcGlsZXIgZGlhZ25vc3RpYyBpZ25vcmVkIHdh
cm5pbmcpKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19JTVBMXzAoY29tcGlsZXIsIHdhcm5pbmcp
CisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0lNUExfKGNvbXBpbGVyLCB3YXJuaW5nKQorCisjZGVm
aW5lIElHTk9SRV9XQVJOSU5HX0VORF9JTVBMXzEoY29tcGlsZXIsIHdhcm5pbmcpIFwKKyAgICBf
UHJhZ21hKF9DT01QSUxFUl9TVFJJTkdJWkUoY29tcGlsZXIgZGlhZ25vc3RpYyBwb3ApKQorI2Rl
ZmluZSBJR05PUkVfV0FSTklOR19FTkRfSU1QTF8wKGNvbXBpbGVyLCB3YXJuaW5nKQorI2RlZmlu
ZSBJR05PUkVfV0FSTklOR19FTkRfSU1QTF8oY29tcGlsZXIsIHdhcm5pbmcpCisKKyNpZiBkZWZp
bmVkKF9faGFzX3dhcm5pbmcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0lNUEwoY29tcGlsZXIs
IHdhcm5pbmcpIElHTk9SRV9XQVJOSU5HX0NPTkQoX19oYXNfd2FybmluZyh3YXJuaW5nKSwgY29t
cGlsZXIsIHdhcm5pbmcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0VORF9JTVBMKGNvbXBpbGVy
LCB3YXJuaW5nKSBJR05PUkVfV0FSTklOR19DT05EKF9faGFzX3dhcm5pbmcod2FybmluZyksIGNv
bXBpbGVyLCB3YXJuaW5nKQorI2Vsc2UKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfSU1QTChjb21w
aWxlciwgd2FybmluZykgSUdOT1JFX1dBUk5JTkdfQ09ORCgxLCBjb21waWxlciwgd2FybmluZykK
KyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfRU5EX0lNUEwoY29tcGlsZXIsIHdhcm5pbmcpIElHTk9S
RV9XQVJOSU5HX0NPTkQoMSwgY29tcGlsZXIsIHdhcm5pbmcpCisjZW5kaWYKKyNlbmRpZiAvLyBD
T01QSUxFUihHQ0NfT1JfQ0xBTkcpCisKKworI2lmICFkZWZpbmVkKElHTk9SRV9XQVJOSU5HX0dD
QykgJiYgQ09NUElMRVIoR0NDKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19HQ0Mod2FybmluZykg
ZG8geyBJR05PUkVfV0FSTklOR19JTVBMKEdDQywgd2FybmluZykgfSB3aGlsZSAoZmFsc2UpCisj
ZGVmaW5lIElHTk9SRV9XQVJOSU5HX0dDQ19FTkQod2FybmluZykgZG8geyBJR05PUkVfV0FSTklO
R19FTkRfSU1QTChHQ0MsIHdhcm5pbmcpIH0gd2hpbGUgKGZhbHNlKQorI2RlZmluZSBJR05PUkVf
V0FSTklOR19HQ0NfVE9QX0xFVkVMKHdhcm5pbmcpIElHTk9SRV9XQVJOSU5HX0lNUEwoR0NDLCB3
YXJuaW5nKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMX0VORCh3YXJuaW5n
KSBJR05PUkVfV0FSTklOR19FTkRfSU1QTChHQ0MsIHdhcm5pbmcpCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKElHTk9SRV9XQVJOSU5HX0dDQykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfR0NDKHgp
IGRvIHsgfSB3aGlsZSAoZmFsc2UpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0dDQ19FTkQoeCkg
ZG8geyB9IHdoaWxlIChmYWxzZSkKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZF
TCh3YXJuaW5nKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMX0VORCh3YXJu
aW5nKQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChJR05PUkVfV0FSTklOR19DTEFORykgJiYgQ09N
UElMRVIoQ0xBTkcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0NMQU5HKHdhcm5pbmcpIGRvIHsg
SUdOT1JFX1dBUk5JTkdfSU1QTChjbGFuZywgd2FybmluZykgfSB3aGlsZSAoZmFsc2UpCisjZGVm
aW5lIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCh3YXJuaW5nKSBkbyB7IElHTk9SRV9XQVJOSU5H
X0VORF9JTVBMKGNsYW5nLCB3YXJuaW5nKSB9IHdoaWxlIChmYWxzZSkKKyNkZWZpbmUgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKHdhcm5pbmcpIElHTk9SRV9XQVJOSU5HX0lNUEwoY2xh
bmcsIHdhcm5pbmcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQo
d2FybmluZykgSUdOT1JFX1dBUk5JTkdfRU5EX0lNUEwoY2xhbmcsIHdhcm5pbmcpCisjZW5kaWYK
KworI2lmICFkZWZpbmVkKElHTk9SRV9XQVJOSU5HX0NMQU5HKQorI2RlZmluZSBJR05PUkVfV0FS
TklOR19DTEFORyh4KSBkbyB7IH0gd2hpbGUgKGZhbHNlKQorI2RlZmluZSBJR05PUkVfV0FSTklO
R19DTEFOR19FTkQoeCkgZG8geyB9IHdoaWxlIChmYWxzZSkKKyNkZWZpbmUgSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfVE9QX0xFVkVMKHdhcm5pbmcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0NMQU5H
X1RPUF9MRVZFTF9FTkQod2FybmluZykKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoSUdOT1JFX1dB
Uk5JTkdfR0NDX09SX0NMQU5HKSAmJiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCisjZGVmaW5lIElH
Tk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFORyh3YXJuaW5nKSBkbyB7IElHTk9SRV9XQVJOSU5HX0lN
UEwoR0NDLCB3YXJuaW5nKSB9IHdoaWxlIChmYWxzZSkKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdf
R0NDX09SX0NMQU5HX0VORCh3YXJuaW5nKSBkbyB7IElHTk9SRV9XQVJOSU5HX0VORF9JTVBMKEdD
Qywgd2FybmluZykgfSB3aGlsZSAoZmFsc2UpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0dDQ19P
Ul9DTEFOR19UT1BfTEVWRUwod2FybmluZykgSUdOT1JFX1dBUk5JTkdfSU1QTChHQ0MsIHdhcm5p
bmcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFOR19UT1BfTEVWRUxfRU5EKHdh
cm5pbmcpIElHTk9SRV9XQVJOSU5HX0VORF9JTVBMKEdDQywgd2FybmluZykKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HKQorI2RlZmluZSBJR05PUkVf
V0FSTklOR19HQ0NfT1JfQ0xBTkcoeCkgZG8geyB9IHdoaWxlIChmYWxzZSkKKyNkZWZpbmUgSUdO
T1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HX0VORCh4KSBkbyB7IH0gd2hpbGUgKGZhbHNlKQorI2Rl
ZmluZSBJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdfVE9QX0xFVkVMKHgpCisjZGVmaW5lIElH
Tk9SRV9XQVJOSU5HX0dDQ19PUl9DTEFOR19FTkRfVE9QX0xFVkVMKHgpCisjZW5kaWYKKwogI2Vu
ZGlmIC8qIFdURl9Db21waWxlcl9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NRDUu
Y3BwIGIvU291cmNlL1dURi93dGYvTUQ1LmNwcAppbmRleCBlNDliYTFiZWI1YzgwZjdjZWM0MzNm
ZDgzMjcyMmMwOTI1MjczMDkwLi41MzU3NzlhMzIyMWVkYzYzOWZkMjA2YjJjMTc4YzM3NmU1MjYy
NDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NRDUuY3BwCisrKyBiL1NvdXJjZS9XVEYv
d3RmL01ENS5jcHAKQEAgLTU5LDI2ICs1OSwyMyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogTUQ1OjpN
RDUoKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQ0NfTUQ1X0lu
aXQoJm1fY29udGV4dCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIHZv
aWQgTUQ1OjphZGRCeXRlcyhjb25zdCB1aW50OF90KiBpbnB1dCwgc2l6ZV90IGxlbmd0aCkKIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19D
TEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIENDX01ENV9VcGRhdGUoJm1f
Y29udGV4dCwgaW5wdXQsIGxlbmd0aCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiB9CiAKIHZvaWQgTUQ1OjpjaGVja3N1bShEaWdlc3QmIGhhc2gpCiB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBDQ19NRDVfRmluYWwoaGFzaC5kYXRhKCksICZtX2Nv
bnRleHQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQogICAgIAogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL1ByaW50U3RyZWFtLmNwcAppbmRleCAzODBjNjdiY2JiOTBlMzY2ZDg2MTgwODc4MDczMjQ1
ZTYxM2U0YjRmLi4yYzVhN2ExMjA0MGUyNDMwNzQ2ZmZiYTg4ZmQzMTZiZGU1Njk2ZGRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QcmludFN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dURi93
dGYvUHJpbnRTdHJlYW0uY3BwCkBAIC00NiwyMiArNDYsMTQgQEAgdm9pZCBQcmludFN0cmVhbTo6
cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKQogCiB2b2lkIFByaW50U3RyZWFtOjpwcmlu
dGZWYXJpYWJsZUZvcm1hdChjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikKIHsKLSNpZiBDT01QSUxF
UihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNlbGlmIENPTVBJTEVSKEdD
QykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBp
Z25vcmVkICItV3N1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdCIKLSNlbmRpZgorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2Zvcm1hdC1ub25saXRlcmFsIik7CisgICAgSUdOT1JFX1dBUk5JTkdf
R0NDKCItV3N1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdCIpOwogICAgIHZhX2xpc3QgYXJnTGlzdDsK
ICAgICB2YV9zdGFydChhcmdMaXN0LCBmb3JtYXQpOwogICAgIHZwcmludGYoZm9ybWF0LCBhcmdM
aXN0KTsKICAgICB2YV9lbmQoYXJnTGlzdCk7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZWxpZiBDT01QSUxFUihHQ0MpCi0jcHJhZ21hIEdDQyBk
aWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfR0NDX0VORCgiLVdzdWdn
ZXN0LWF0dHJpYnV0ZT1mb3JtYXQiKTsKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
Zm9ybWF0LW5vbmxpdGVyYWwiKTsKIH0KIAogdm9pZCBQcmludFN0cmVhbTo6Zmx1c2goKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvU0hBMS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9TSEExLmNw
cAppbmRleCAzMDVmMDc3NTg5ZDliYTNlNjUwZmIzZTc1Y2NmZWFkNmUyZDUyYWZmLi4zZmQ4ZTMw
ZjQwMDI4ZTU3ZWEwZGFhMDliNTM2N2Q3NGNhNGNiMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9TSEExLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TSEExLmNwcApAQCAtNDEsMjYgKzQx
LDIzIEBAIG5hbWVzcGFjZSBXVEYgewogCiBTSEExOjpTSEExKCkKIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIENDX1NIQTFfSW5pdCgmbV9jb250ZXh0KTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogdm9pZCBTSEExOjphZGRCeXRlcyhjb25z
dCB1aW50OF90KiBpbnB1dCwgc2l6ZV90IGxlbmd0aCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIENDX1NIQTFfVXBkYXRlKCZtX2NvbnRleHQsIGlucHV0LCBsZW5n
dGgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQogCiB2b2lkIFNIQTE6OmNv
bXB1dGVIYXNoKERpZ2VzdCYgaGFzaCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogICAgIENDX1NIQTFfRmluYWwoaGFzaC5kYXRhKCksICZtX2NvbnRleHQpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQogCiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5n
UHRocmVhZHMuY3BwCmluZGV4IGRkMDFjNmM3NmVlNjk4NTljNGNjZDhiMTFjNmM5YThjZDFjMDQ5
NjIuLmMyNWRmZTI2MDQ3YjM4MjY5NmRjNzI1YzdiY2NmNTdmY2M1NGY5MWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKQEAgLTEwOSwxNSArMTA5LDggQEAgc3RhdGljIExhenlO
ZXZlckRlc3Ryb3llZDxTZW1hcGhvcmU+IGdsb2JhbFNlbWFwaG9yZUZvclN1c3BlbmRSZXN1bWU7
CiBzdGF0aWMgY29uc3RleHByIGNvbnN0IGludCBTaWdUaHJlYWRTdXNwZW5kUmVzdW1lID0gU0lH
VVNSMTsKIHN0YXRpYyBzdGQ6OmF0b21pYzxUaHJlYWQqPiB0YXJnZXRUaHJlYWQgeyBudWxscHRy
IH07CiAKLSNpZiBDT01QSUxFUihHQ0MpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tbG9jYWwtYWRkciIKLSNlbmRp
ZiAvLyBDT01QSUxFUihHQ0MpCi0KLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1
cm4tc3RhY2stYWRkcmVzcyIKLSNlbmRpZiAvLyBDT01QSUxFUihDTEFORykKK0lHTk9SRV9XQVJO
SU5HX0dDQ19UT1BfTEVWRUwoIi1XcmV0dXJuLWxvY2FsLWFkZHIiKQorSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfVE9QX0xFVkVMKCItV3JldHVybi1zdGFjay1hZGRyZXNzIikKIAogc3RhdGljIE5FVkVS
X0lOTElORSB2b2lkKiBnZXRBcHByb3hpbWF0ZVN0YWNrUG9pbnRlcigpCiB7CkBAIC0xMjYsMTMg
KzExOSw4IEBAIHN0YXRpYyBORVZFUl9JTkxJTkUgdm9pZCogZ2V0QXBwcm94aW1hdGVTdGFja1Bv
aW50ZXIoKQogICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YWNrTG9jYXRpb24pOwog
fQogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRp
ZiAvLyBDT01QSUxFUihHQ0MpCi0KLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAvLyBDT01QSUxFUihDTEFORykKK0lHTk9SRV9XQVJOSU5H
X0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XcmV0dXJuLXN0YWNrLWFkZHJlc3MiKQorSUdOT1JFX1dB
Uk5JTkdfR0NDX1RPUF9MRVZFTF9FTkQoIi1XcmV0dXJuLWxvY2FsLWFkZHIiKQogCiB2b2lkIFRo
cmVhZDo6c2lnbmFsSGFuZGxlclN1c3BlbmRSZXN1bWUoaW50LCBzaWdpbmZvX3QqLCB2b2lkKiB1
Y29udGV4dCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oIGIvU291cmNl
L1dURi93dGYvVmVjdG9yLmgKaW5kZXggODUxODRiOTQwN2M2OTM3NzYwYTEwYzY1YjFhZTU3MjI3
YThmN2ZmZi4uNjQyMWEyODRmN2FmZTY0ZWJlY2VkYWU2MTI5ZmJhZmRmN2NhYjgxYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvVmVjdG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvVmVjdG9y
LmgKQEAgLTUyOSwxNCArNTI5LDkgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJUKGJ1
ZmZlcigpKTsKIAotI2lmIENPTVBJTEVSKEdDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2ludmFsaWQtb2Zmc2V0b2YiCi0j
ZW5kaWYKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfR0NDKCItV2ludmFsaWQtb2Zmc2V0b2YiKTsK
ICAgICAgICAgc3RhdGljX2Fzc2VydCgob2Zmc2V0b2YoVmVjdG9yQnVmZmVyLCBtX2lubGluZUJ1
ZmZlcikgKyBzaXplb2YobV9pbmxpbmVCdWZmZXIpKSAlIDggPT0gMCwgIklubGluZSBidWZmZXIg
ZW5kIG5lZWRzIHRvIGJlIG9uIDggYnl0ZSBib3VuZGFyeSBmb3IgQVNhbiBhbm5vdGF0aW9ucyB0
byB3b3JrLiIpOwotI2lmIENPTVBJTEVSKEdDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9w
Ci0jZW5kaWYKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfR0NDX0VORCgiLVdpbnZhbGlkLW9mZnNl
dG9mIik7CiAKICAgICAgICAgaWYgKGJ1ZmZlcigpID09IGlubGluZUJ1ZmZlcigpKQogICAgICAg
ICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1faW5saW5lQnVmZmVyKSArIHNp
emVvZihtX2lubGluZUJ1ZmZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dU
RlN0cmluZy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKaW5kZXggMmIw
ZTVmMzljZDQzYzZkZjQxYTBjMThiYzRiYmQzODRmMTk1MTNkNi4uYjU4YTBlOGMzZjU3OThhNmE4
OTNlMGZiYWU5NzBkMjgzZmM1ZWE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9X
VEZTdHJpbmcuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcApAQCAt
NDUzLDEwICs0NTMsNyBAQCBXVEZfQVRUUklCVVRFX1BSSU5URigxLCAwKSBzdGF0aWMgU3RyaW5n
IGNyZWF0ZVdpdGhGb3JtYXRBbmRBcmd1bWVudHMoY29uc3QgY2hhcgogICAgIHZhX2xpc3QgYXJn
c0NvcHk7CiAgICAgdmFfY29weShhcmdzQ29weSwgYXJncyk7CiAKLSNpZiBDT01QSUxFUihDTEFO
RykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNlbmRpZgorICAgIElHTk9SRV9XQVJO
SU5HX0NMQU5HKCItV2Zvcm1hdC1ub25saXRlcmFsIik7CiAKICNpZiBVU0UoQ0YpICYmICFPUyhX
SU5ET1dTKQogICAgIGlmIChzdHJzdHIoZm9ybWF0LCAiJUAiKSkgewpAQCAtNDkyLDkgKzQ4OSw3
IEBAIFdURl9BVFRSSUJVVEVfUFJJTlRGKDEsIDApIHN0YXRpYyBTdHJpbmcgY3JlYXRlV2l0aEZv
cm1hdEFuZEFyZ3VtZW50cyhjb25zdCBjaGFyCiAgICAgdnNucHJpbnRmKGJ1ZmZlci5kYXRhKCks
IGJ1ZmZlci5zaXplKCksIGZvcm1hdCwgYXJnc0NvcHkpOwogICAgIHZhX2VuZChhcmdzQ29weSk7
CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNl
bmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdmb3JtYXQtbm9ubGl0ZXJhbCIp
OwogCiAgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oYnVmZmVyLmRhdGEoKSksIGxlbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhh
bmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oCmluZGV4IDU1Y2U4MjVjNDVkYTc4M2Q1MDRkN2Q0
NDgwNDJlYzZmZGI5YTg4OGYuLmU4NDhlZjg0MmVhZDIxYjM0M2NmMGM3ZDRlZWM3OTZiOWRiZGEy
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5o
CkBAIC0yOSwxMiArMjksMTEgQEAKICNpbmNsdWRlICJMaWJXZWJSVENNYWNyb3MuaCIKICNpbmNs
dWRlICJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCIKIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIK
K0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUwoIi1XdW51c2VkLXBhcmFtZXRlciIpCiAKICNp
bmNsdWRlIDx3ZWJydGMvYXBpL2RhdGFjaGFubmVsaW50ZXJmYWNlLmg+CiAKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMX0VORCgiLVd1bnVz
ZWQtcGFyYW1ldGVyIikKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVu
ZHBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENNZWRpYUVuZHBvaW50LmgKaW5kZXggNGRhZmFmNGY0ZjY0YzJjZGIyNjU0MjQ0ZWIw
ZDQxYzgzYTdhODA4MS4uZmUwYjlkYjFmMDQ0ZGZjODVjNjhmNzNjM2M1ODhiOTQ3MWViYTVjYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaApAQCAtMzMsMTUgKzMz
LDE0IEBACiAjaW5jbHVkZSAiUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgiCiAjaW5jbHVk
ZSA8VGltZXIuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0lHTk9SRV9XQVJOSU5HX0dD
Q19UT1BfTEVWRUwoIi1XdW51c2VkLXBhcmFtZXRlciIpCiAKICNpbmNsdWRlIDx3ZWJydGMvYXBp
L2pzZXAuaD4KICNpbmNsdWRlIDx3ZWJydGMvYXBpL3BlZXJjb25uZWN0aW9uaW50ZXJmYWNlLmg+
CiAjaW5jbHVkZSA8d2VicnRjL3BjL3BlZXJjb25uZWN0aW9uZmFjdG9yeS5oPgogI2luY2x1ZGUg
PHdlYnJ0Yy9wYy9ydGNzdGF0c2NvbGxlY3Rvci5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHBvcAorSUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTF9FTkQoIi1XdW51c2VkLXBhcmFtZXRl
ciIpCiAKICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZFNhZmVSZWZDb3VudGVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Ny
eXB0by9jb21tb25jcnlwdG8vQ3J5cHRvRGlnZXN0Q29tbW9uQ3J5cHRvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY3J5cHRvL2NvbW1vbmNyeXB0by9DcnlwdG9EaWdlc3RDb21tb25Dcnlw
dG8uY3BwCmluZGV4IGI0N2Y4ZWVjNjg4MzdjNzI3ZDVmOGZjYzk3MTZkY2JkM2NhYzY1M2UuLjMw
M2JlMjE4YWE5ZmJlYzQyMmYwZDQyZjAzYjkxZGY4NjRlMjM3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvY3J5cHRvL2NvbW1vbmNyeXB0by9DcnlwdG9EaWdlc3RDb21tb25D
cnlwdG8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY3J5cHRvL2NvbW1vbmNyeXB0
by9DcnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwCkBAIC05NywxMCArOTcsOCBAQCBzdGQ6OnVu
aXF1ZV9wdHI8Q3J5cHRvRGlnZXN0PiBDcnlwdG9EaWdlc3Q6OmNyZWF0ZShDcnlwdG9EaWdlc3Q6
OkFsZ29yaXRobSBhbGdvcgogICAgIGNhc2UgQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8x
OiB7CiAgICAgICAgIENDX1NIQTFfQ1RYKiBjb250ZXh0ID0gbmV3IENDX1NIQTFfQ1RYOwogICAg
ICAgICBkaWdlc3QtPm1fY29udGV4dC0+Y2NDb250ZXh0ID0gY29udGV4dDsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogICAgICAgICBDQ19TSEExX0luaXQoY29udGV4dCk7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIHJldHVybiBkaWdlc3Q7CiAg
ICAgfQogICAgIGNhc2UgQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8yMjQ6IHsKQEAgLTEz
NCwxMCArMTMyLDkgQEAgdm9pZCBDcnlwdG9EaWdlc3Q6OmFkZEJ5dGVzKGNvbnN0IHZvaWQqIGlu
cHV0LCBzaXplX3QgbGVuZ3RoKQogewogICAgIHN3aXRjaCAobV9jb250ZXh0LT5hbGdvcml0aG0p
IHsKICAgICBjYXNlIENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMToKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgQ0NfU0hBMV9VcGRhdGUodG9TSEEx
Q29udGV4dChtX2NvbnRleHQuZ2V0KCkpLCBpbnB1dCwgbGVuZ3RoKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIENyeXB0b0Rp
Z2VzdDo6QWxnb3JpdGhtOjpTSEFfMjI0OgogICAgICAgICBDQ19TSEEyMjRfVXBkYXRlKHRvU0hB
MjI0Q29udGV4dChtX2NvbnRleHQuZ2V0KCkpLCBpbnB1dCwgbGVuZ3RoKTsKQEAgLTE2MCwxMCAr
MTU3LDkgQEAgVmVjdG9yPHVpbnQ4X3Q+IENyeXB0b0RpZ2VzdDo6Y29tcHV0ZUhhc2goKQogICAg
IHN3aXRjaCAobV9jb250ZXh0LT5hbGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0b0RpZ2VzdDo6
QWxnb3JpdGhtOjpTSEFfMToKICAgICAgICAgcmVzdWx0LnJlc2l6ZShDQ19TSEExX0RJR0VTVF9M
RU5HVEgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBJR05P
UkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBD
Q19TSEExX0ZpbmFsKHJlc3VsdC5kYXRhKCksIHRvU0hBMUNvbnRleHQobV9jb250ZXh0LmdldCgp
KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8yMjQ6CiAgICAgICAgIHJlc3VsdC5y
ZXNpemUoQ0NfU0hBMjI0X0RJR0VTVF9MRU5HVEgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY29jb2EvQVZLaXRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2NvY29hL0FWS2l0U1BJLmgKaW5kZXggOTE0NTE3ZWZlN2NiMTRiNWZhZjJjNWIxYjY3ZjIz
NjZjNjJjNjk5NS4uZGJjODIzNzRkY2NkODJmMDliOTEyZjIxNDg1NTc2YWQ0Mjk0OWNiNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZLaXRTUEkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVktpdFNQSS5oCkBAIC0zOCwxMCAr
MzgsOSBAQAogI2VuZGlmCiAKICNpbXBvcnQgPEFWS2l0L0FWUGxheWVyQ29udHJvbGxlci5oPgot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV29iamMtcHJvcGVydHktbm8tYXR0cmlidXRlIgorSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfVE9QTEVWRUwoIi1Xb2JqYy1wcm9wZXJ0eS1uby1hdHRyaWJ1dGUiKQogI2ltcG9ydCA8QVZL
aXQvQVZQbGF5ZXJMYXllclZpZXcuaD4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lH
Tk9SRV9XQVJOSU5HX0NMQU5HX1RPUExFVkVMX0VORCgiLVdvYmpjLXByb3BlcnR5LW5vLWF0dHJp
YnV0ZSIpCiAjaW1wb3J0IDxBVktpdC9BVlBsYXllclZpZXdDb250cm9sbGVyX1ByaXZhdGUuaD4K
ICNpbXBvcnQgPEFWS2l0L0FWUGxheWVyVmlld0NvbnRyb2xsZXJfV2ViS2l0T25seS5oPgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2
ZXJTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZl
clNQSS5oCmluZGV4IDU1YTY0ODg2YTg4MGY1YjkwZWEyZGE2Y2Y1MWFiYTRiYTY3YzQyNWQuLjk3
NGU5YTAzYjJjZGYzOGRmYzE3YjIwMTUwYmQzODViNzdjMmU5NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oCkBAIC04
NiwxMCArODYsOSBAQCBpbmxpbmUgTlNEYXRhICpfTnVsbGFibGUgaW5zZWN1cmVseUFyY2hpdmVk
RGF0YVdpdGhSb290T2JqZWN0KGlkIF9Ob25udWxsIG9iamVjdAogCiBpbmxpbmUgaWQgX051bGxh
YmxlIGluc2VjdXJlbHlVbmFyY2hpdmVPYmplY3RGcm9tRGF0YShOU0RhdGEgKiBfTm9ubnVsbCBk
YXRhKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgcmV0dXJuIFtO
U0tleWVkVW5hcmNoaXZlciB1bmFyY2hpdmVPYmplY3RXaXRoRGF0YTpkYXRhXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogaW5saW5lIGlkIF9OdWxsYWJsZSB1bmFyY2hp
dmVkT2JqZWN0T2ZDbGFzc2VzRnJvbURhdGEoTlNTZXQ8Q2xhc3M+ICogX05vbm51bGwgY2xhc3Nl
cywgTlNEYXRhICogX05vbm51bGwgZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvaW9zL01lZGlhUGxheWVyU1BJLmgKaW5kZXggZGQ4N2Y5M2FmNzAyNWJjYTZkMTMzNDU3YjNm
NmIxMjA2YTAxNDRmOC4uZDdkMDk2MDc1M2UyNDQzNDFhNTllNTYwNWRiYTlmMzUyZDBjYTA2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL01lZGlhUGxheWVyU1BJ
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL01lZGlhUGxheWVyU1BJLmgK
QEAgLTc1LDIxICs3NSwxOSBAQCBlbnVtIHsKIH07CiB0eXBlZGVmIE5TVUludGVnZXIgTVBBVkl0
ZW1UeXBlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FS
TklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogQGludGVy
ZmFjZSBNUEF1ZGlvVmlkZW9Sb3V0aW5nUG9wb3ZlckNvbnRyb2xsZXIgOiBVSVBvcG92ZXJDb250
cm9sbGVyCiBAZW5kCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklO
R19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogQGlu
dGVyZmFjZSBNUEF1ZGlvVmlkZW9Sb3V0aW5nUG9wb3ZlckNvbnRyb2xsZXIgKCkKIC0gKGlkKWlu
aXRXaXRoVHlwZTooTVBBVkl0ZW1UeXBlKWF2SXRlbVR5cGU7CiBAZW5kCiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiBAaW50ZXJmYWNlIE1QQVZSb3V0aW5nU2hlZXQg
OiBVSVZpZXcKIEBlbmQKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJO
SU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiBA
aW50ZXJmYWNlIE1QQVZSb3V0aW5nU2hlZXQgKCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3Np
Z24sIHNldHRlcj1zZXRBVkl0ZW1UeXBlOikgTVBBVkl0ZW1UeXBlIGF2SXRlbVR5cGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lm1tIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbQppbmRleCAyMjMz
NTc1ZGMzNGU3NjFlODYxY2JiNDUyODdiNzMzZjJjZDRhYzIzLi45Y2IxZTZkY2IzN2VhMDRiYjRj
M2E0MGUyNzFiYzk2ZGEyNTMzYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3N5c3RlbS9tYWMvUG9wdXBNZW51Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lz
dGVtL21hYy9Qb3B1cE1lbnUubW0KQEAgLTQ0LDEwICs0NCw5IEBAIG5hbWVzcGFjZSBQQUwgewog
dm9pZCBwb3BVcE1lbnUoTlNNZW51ICptZW51LCBOU1BvaW50IGxvY2F0aW9uLCBmbG9hdCB3aWR0
aCwgTlNWaWV3ICp2aWV3LCBpbnQgc2VsZWN0ZWRJdGVtLCBOU0ZvbnQgKmZvbnQsIE5TQ29udHJv
bFNpemUgY29udHJvbFNpemUsIGJvb2wgdXNlc0N1c3RvbUFwcGVhcmFuY2UpCiB7CiAgICAgTlNS
ZWN0IGFkanVzdGVkUG9wdXBCb3VuZHMgPSBbdmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVl
bjpbdmlldyBjb252ZXJ0UmVjdDp2aWV3LmJvdW5kcyB0b1ZpZXc6bmlsXV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBpZiAoY29udHJvbFNpemUgIT0gTlNNaW5pQ29u
dHJvbFNpemUpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAg
ICBhZGp1c3RlZFBvcHVwQm91bmRzLm9yaWdpbi54IC09IDM7CiAgICAgICAgIGFkanVzdGVkUG9w
dXBCb3VuZHMub3JpZ2luLnkgLT0gMTsKICAgICAgICAgYWRqdXN0ZWRQb3B1cEJvdW5kcy5zaXpl
LndpZHRoICs9IDY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9t
YWMvV2ViUGFuZWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvV2ViUGFu
ZWwubW0KaW5kZXggMzE3YmRhMDJlN2I3ZWIyN2E5YmQyYjU5Nzk1NmY1NDEyZGFjZjEyNi4uNDAx
N2Y1YWIwYzY3NGQwZGU0YWMzMDI2NTVjYmVmYjA1M2FjNDNiNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1dlYlBhbmVsLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3lzdGVtL21hYy9XZWJQYW5lbC5tbQpAQCAtMzQsMTAgKzM0LDkgQEAKIAog
LSAoaW5zdGFuY2V0eXBlKWluaXQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogICAgIHN0YXRpYyBOU1VJbnRlZ2VyIHN0eWxlTWFzayA9IE5TTWluaWF0dXJpemFibGVXaW5k
b3dNYXNrIHwgTlNDbG9zYWJsZVdpbmRvd01hc2sgfCBOU1Jlc2l6YWJsZVdpbmRvd01hc2sgIHwg
TlNUaXRsZWRXaW5kb3dNYXNrIHwgTlNTbWFsbFdpbmRvd01hc2sgfCBOU1NpZGVVdGlsaXR5V2lu
ZG93TWFzayB8IE5TVXRpbGl0eVdpbmRvd01hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgCiAgICAgcmV0dXJuIFtzdXBlciBpbml0V2l0aENvbnRlbnRSZWN0Ok5TWmVy
b1JlY3Qgc3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQg
ZGVmZXI6WUVTXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IDM5OTE3N2YzNTNlMmY4MDlkMmRmYzc4YWI2NjU0
OGFhYjkyOTM1OTQuLmM4ZTZmMWU0ZjVmNDQ3ZGUyOTU3ZGI4NWY2M2U2NjZmNTE2MDkzMjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbQpAQCAtMzQ2LDEwICszNDYsOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAg
IAogICAgIC8vIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb24gd2lsbCBjYWxsIHRoaXMg
bWV0aG9kLCAoYnV0IG5vdCB3aGVuIHJ1bm5pbmcgRFJUKSwgc28gQVNTRVJUIGhlcmUgdG8gbWFr
ZSBzdXJlIGl0IGRvZXMgbm90IGNyYXNoLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NjY2MgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgQVNTRVJUKFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkXSB8fCB0
cnVlKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIEFYUG9zdE5vdGlm
aWNhdGlvbldpdGhVc2VySW5mbyhvYmotPndyYXBwZXIoKSwgbWFjTm90aWZpY2F0aW9uLCBuaWwp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNz
aWJpbGl0eU9iamVjdE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0Fj
Y2Vzc2liaWxpdHlPYmplY3RNYWMubW0KaW5kZXggY2NlOTcyY2ZjZDAyZTU3NTRlY2NlY2M1Nzhm
YTRiNDBhOTk2OGMyNi4uYzYyYmM4ZTFkYTljZmQ4NTMwZmI3MmJlMGEwMjA5ZGE2YzA2MWJmNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0
eU9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nl
c3NpYmlsaXR5T2JqZWN0TWFjLm1tCkBAIC01NSwxMCArNTUsOSBAQCB2b2lkIEFjY2Vzc2liaWxp
dHlPYmplY3Q6Om92ZXJyaWRlQXR0YWNobWVudFBhcmVudChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBw
YXJlbnQpCiAgICAgICAgIHBhcmVudFdyYXBwZXIgPSBwYXJlbnQtPndyYXBwZXIoKTsKICAgICB9
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklO
R19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtbd3JhcHBlcigpIGF0
dGFjaG1lbnRWaWV3XSBhY2Nlc3NpYmlsaXR5U2V0T3ZlcnJpZGVWYWx1ZTpwYXJlbnRXcmFwcGVy
IGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlQYXJlbnRBdHRyaWJ1dGVdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQogICAgIAogYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0
OjphY2Nlc3NpYmlsaXR5SWdub3JlQXR0YWNobWVudCgpIGNvbnN0CkBAIC02OSwxMSArNjgsMTAg
QEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SWdub3JlQXR0YWNobWVu
dCgpIGNvbnN0CiAgICAgaWYgKGlzQXR0YWNobWVudCgpICYmICh3aWRnZXQgPSB3aWRnZXRGb3JB
dHRhY2htZW50VmlldygpKSAmJiB3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBpZiAoW3dy
YXBwZXIoKSBhdHRhY2htZW50Vmlld10pCiAgICAgICAgIHJldHVybiBbW3dyYXBwZXIoKSBhdHRh
Y2htZW50Vmlld10gYWNjZXNzaWJpbGl0eUlzSWdub3JlZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAKICAgICAvLyBBdHRhY2htZW50cyBhcmUgaWdub3JlZCBieSBkZWZhdWx0
ICh1bmxlc3Mgd2UgZGV0ZXJtaW5lIHRoYXQgd2Ugc2hvdWxkIGV4cG9zZSB0aGVtKS4KICAgICBy
ZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXgg
MDRjMTg2YTA4YWM4YWYyODYwN2M0MWJhN2VkZDBhMDE3YzkyYmY2Ni4uZjE0MmU4YTUyZGZiY2Ri
YTA4NzQ2ZjA4MGQ1OWQxYzk2OTBkNDUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMubW0KQEAgLTE2NzksMTAgKzE2NzksOSBAQCBzdGF0aWMgaWQgdGV4dE1hcmtlclJh
bmdlRnJvbVZpc2libGVQb3NpdGlvbnMoQVhPYmplY3RDYWNoZSogY2FjaGUsIGNvbnN0IFZpc2li
bAogICAgIFdpZGdldCogd2lkZ2V0ID0gbV9vYmplY3QtPndpZGdldCgpOwogICAgIGlmICghd2lk
Z2V0KQogICAgICAgICByZXR1cm4gbmlsOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgcmV0dXJuIFsod2lkZ2V0LT5wbGF0Zm9ybVdpZGdldCgpKSBhY2Nlc3NpYmlsaXR5
QXR0cmlidXRlVmFsdWU6IE5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogLSAoaWQpcmVtb3RlQWNjZXNzaWJpbGl0
eVBhcmVudE9iamVjdApAQCAtMTc1MSwxMCArMTc1MCw5IEBAIHN0YXRpYyBOU011dGFibGVBcnJh
eSAqY29udmVydFN0cmluZ3NUb05TQXJyYXkoY29uc3QgVmVjdG9yPFN0cmluZz4mIHZlY3RvcikK
ICAgICBpZiAoZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+cGxhdGZvcm1XaWRnZXQoKSkgewogICAg
ICAgICBOU1BvaW50IG5zUG9pbnQgPSAoTlNQb2ludClwb2ludDsKICAgICAgICAgTlNWaWV3KiB2
aWV3ID0gZnJhbWVWaWV3LT5kb2N1bWVudFZpZXcoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICAgICAgbnNQb2ludCA9IFtbdmlldyB3aW5kb3ddIGNvbnZlcnRC
YXNlVG9TY3JlZW46W3ZpZXcgY29udmVydFBvaW50Om5zUG9pbnQgdG9WaWV3Om5pbF1dOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19F
TkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgcmV0dXJuIENHUG9pbnRN
YWtlKG5zUG9pbnQueCwgbnNQb2ludC55KTsKICAgICB9IGVsc2UgewogICAgICAgICAKQEAgLTIw
MDYsMTEgKzIwMDQsMTAgQEAgc3RhdGljIE5TU3RyaW5nICpyb2xlVmFsdWVUb05TU3RyaW5nKEFj
Y2Vzc2liaWxpdHlSb2xlIHZhbHVlKQogCiAtIChOU1N0cmluZyopcm9sZQogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaWYgKG1fb2JqZWN0LT5pc0F0dGFjaG1lbnQo
KSkKICAgICAgICAgcmV0dXJuIFtbc2VsZiBhdHRhY2htZW50Vmlld10gYWNjZXNzaWJpbGl0eUF0
dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVJvbGVBdHRyaWJ1dGVdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUgPSBtX29iamVj
dC0+cm9sZVZhbHVlKCk7CiAKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFi
ZWwgJiYgaXM8QWNjZXNzaWJpbGl0eUxhYmVsPigqbV9vYmplY3QpICYmIGRvd25jYXN0PEFjY2Vz
c2liaWxpdHlMYWJlbD4oKm1fb2JqZWN0KS5jb250YWluc09ubHlTdGF0aWNUZXh0KCkpCkBAIC0y
MDMwLDggKzIwMjcsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnJvbGVWYWx1ZVRvTlNTdHJpbmcoQWNj
ZXNzaWJpbGl0eVJvbGUgdmFsdWUpCiAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVVua25vd25S
b2xlOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FS
TklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogLSAoTlNT
dHJpbmcqKXN1YnJvbGUKIHsKICAgICBpZiAobV9vYmplY3QtPmlzUGFzc3dvcmRGaWVsZCgpKQpA
QCAtMjI0MSwxOSArMjIzNywxOCBAQCBzdGF0aWMgTlNTdHJpbmcgKnJvbGVWYWx1ZVRvTlNTdHJp
bmcoQWNjZXNzaWJpbGl0eVJvbGUgdmFsdWUpCiAgICAgCiAgICAgcmV0dXJuIG5pbDsKIH0KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZF
TF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiAtIChOU1N0cmluZyopcm9sZURl
c2NyaXB0aW9uCiB7CiAgICAgaWYgKCFtX29iamVjdCkKICAgICAgICAgcmV0dXJuIG5pbDsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NM
QU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgLy8gYXR0YWNobWVudHMgaGF2
ZSB0aGUgQVhJbWFnZSByb2xlLCBidXQgYSBkaWZmZXJlbnQgc3Vicm9sZQogICAgIGlmIChtX29i
amVjdC0+aXNBdHRhY2htZW50KCkpCiAgICAgICAgIHJldHVybiBbW3NlbGYgYXR0YWNobWVudFZp
ZXddIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlSb2xlRGVzY3Jp
cHRpb25BdHRyaWJ1dGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBvdmVycmlkZVJvbGVEZXNjcmlwdGlvbiA9IG1fb2JqZWN0LT5y
b2xlRGVzY3JpcHRpb24oKTsKICAgICBpZiAoIW92ZXJyaWRlUm9sZURlc2NyaXB0aW9uLmlzTnVs
bCgpICYmICFvdmVycmlkZVJvbGVEZXNjcmlwdGlvbi5pc0VtcHR5KCkpCkBAIC0zNDcyLDggKzM0
NjcsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnJvbGVWYWx1ZVRvTlNTdHJpbmcoQWNjZXNzaWJpbGl0
eVJvbGUgdmFsdWUpCiAgICAgcmV0dXJuIHBhcmFtQXR0cnM7CiB9CiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBlcmZvcm1Q
cmVzc0FjdGlvbgogewpAQCAtMzUzMSw3ICszNTI1LDcgQEAgc3RhdGljIE5TU3RyaW5nICpyb2xl
VmFsdWVUb05TU3RyaW5nKEFjY2Vzc2liaWxpdHlSb2xlIHZhbHVlKQogICAgICAgICBtX29iamVj
dC0+ZGVjcmVtZW50KCk7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9S
RV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KQogCiAtICh2b2lkKWFjY2Vzc2liaWxpdHlQZXJmb3JtU2hvd01lbnVBY3Rpb24KIHsKQEAgLTQz
NDMsOCArNDMzNyw3IEBAIHN0YXRpYyB2b2lkIGZvcm1hdEZvckRlYnVnZ2VyKGNvbnN0IFZpc2li
bGVQb3NpdGlvblJhbmdlJiByYW5nZSwgY2hhciogYnVmZmVyLCB1CiAgICAgcmV0dXJuIE5TTm90
Rm91bmQ7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0lHTk9SRV9X
QVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAtIChO
U1VJbnRlZ2VyKWFjY2Vzc2liaWxpdHlBcnJheUF0dHJpYnV0ZUNvdW50OihOU1N0cmluZyAqKWF0
dHJpYnV0ZQogewogICAgIGlmICghW3NlbGYgdXBkYXRlT2JqZWN0QmFja2luZ1N0b3JlXSkKQEAg
LTQzNjUsNyArNDM1OCw3IEBAIHN0YXRpYyB2b2lkIGZvcm1hdEZvckRlYnVnZ2VyKGNvbnN0IFZp
c2libGVQb3NpdGlvblJhbmdlJiByYW5nZSwgY2hhciogYnVmZmVyLCB1CiAgICAgCiAgICAgcmV0
dXJuIFtzdXBlciBhY2Nlc3NpYmlsaXR5QXJyYXlBdHRyaWJ1dGVDb3VudDphdHRyaWJ1dGVdOwog
fQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9Q
X0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKIC0gKE5TQXJyYXkgKilh
Y2Nlc3NpYmlsaXR5QXJyYXlBdHRyaWJ1dGVWYWx1ZXM6KE5TU3RyaW5nICopYXR0cmlidXRlIGlu
ZGV4OihOU1VJbnRlZ2VyKWluZGV4IG1heENvdW50OihOU1VJbnRlZ2VyKW1heENvdW50CiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KaW5kZXggMDJi
ODQyODNlZDM5YjE0MTJkYTBjMDEzM2EwMjczOWEwYjY0MjMzNC4uZjExYzZkZGUzNmE2ZjRjYjcy
NDZkYjdhMDc3ZTJlYjQ1MTc5OTQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpj
L1dlYlNjcmlwdE9iamVjdC5tbQpAQCAtNzAyLDEzICs3MDIsMTIgQEAgc3RhdGljIHZvaWQgZ2V0
TGlzdEZyb21OU0FycmF5KEV4ZWNTdGF0ZSAqZXhlYywgTlNBcnJheSAqYXJyYXksIFJvb3RPYmpl
Y3QqIHJvb3QKICAgICByZXR1cm4gc2VsZjsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV29iamMtbWlzc2luZy1z
dXBlci1jYWxscyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdvYmpjLW1pc3Np
bmctc3VwZXItY2FsbHMiKQogLSAodm9pZClkZWFsbG9jCiB7CiAgICAgcmV0dXJuOwogfQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVM
X0VORCgiLVdvYmpjLW1pc3Npbmctc3VwZXItY2FsbHMiKQogCiArIChXZWJVbmRlZmluZWQgKil1
bmRlZmluZWQKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNf
Y2xhc3MubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2NsYXNzLm1tCmluZGV4
IGNlMWVmNjU1N2EwNzYzYTdkMzQzMGEzYmY5ODZhMTk4N2Y4Y2IzNTYuLjg4MmM0ZjViYzkzYThj
ZDMwYzRiOTRjNmNhY2E0MTJmZGJkZjBhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9vYmpjL29iamNfY2xhc3MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMv
b2JqY19jbGFzcy5tbQpAQCAtMTYzLDEwICsxNjMsOSBAQCBGaWVsZCogT2JqY0NsYXNzOjpmaWVs
ZE5hbWVkKFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEluc3RhbmNlKiBpbnN0YW5jZSkgY29u
cwogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZmllbGROYW1lID0gYWRvcHRDRihDRlN0cmlu
Z0NyZWF0ZVdpdGhDU3RyaW5nKE5VTEwsIGpzTmFtZS5kYXRhKCksIGtDRlN0cmluZ0VuY29kaW5n
QVNDSUkpKTsKICAgICBpZCB0YXJnZXRPYmplY3QgPSAoc3RhdGljX2Nhc3Q8T2JqY0luc3RhbmNl
Kj4oaW5zdGFuY2UpKS0+Z2V0T2JqZWN0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3VuZGVjbGFyZWQtc2VsZWN0b3IiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XdW5kZWNs
YXJlZC1zZWxlY3RvciIpOwogICAgIGlkIGF0dHJpYnV0ZXMgPSBbdGFyZ2V0T2JqZWN0IHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYXR0cmlidXRlS2V5cyldID8gW3RhcmdldE9iamVjdCBw
ZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKGF0dHJpYnV0ZUtleXMpXSA6IG5pbDsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XdW5k
ZWNsYXJlZC1zZWxlY3RvciIpOwogI2Vsc2UKICAgICBpZCBhdHRyaWJ1dGVzID0gW3RhcmdldE9i
amVjdCBhdHRyaWJ1dGVLZXlzXTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL0NvbW1vbkNyeXB0b1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
Q29tbW9uQ3J5cHRvVXRpbGl0aWVzLmNwcAppbmRleCBlMDQ5MmVlNjcxMTBmODhjNzMxNTIxNmQ2
YzY4YjYzMzQ5NmQ3N2EwLi44ZmVhZjM2MDEwOTJlNDNmOGYyYTJjYjgwNDcxMjUyY2Y3OTIwZTBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmNw
cApAQCAtNTIsMTAgKzUyLDkgQEAgYm9vbCBnZXRDb21tb25DcnlwdG9EaWdlc3RBbGdvcml0aG0o
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoRnVuY3Rpb24sIENDRGkKIHsKICAgICBzd2l0
Y2ggKGhhc2hGdW5jdGlvbikgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
U0hBXzE6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIGFs
Z29yaXRobSA9IGtDQ0RpZ2VzdFNIQTE7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OlNIQV8yMjQ6CiAgICAgICAgIGFsZ29yaXRobSA9IGtDQ0RpZ2VzdFNIQTIyNDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dD
TU1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19H
Q01NYWMuY3BwCmluZGV4IGIyYmMyNDg4OGM3ZWU3NThlOWRiNDAyMzk3YThmYTZlNGYxZDFlMDgu
LjgzZGNhNGY1YzAyN2JhMTc3MTQzNTcxODU1MGU5NWFmYzQ1Yzk3NjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTU1hYy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNTWFjLmNw
cApAQCAtNDAsMTAgKzQwLDkgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4g
ZW5jcnlwdEFFU19HQ00oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpdiwgY28KICAgICBWZWN0b3I8
dWludDhfdD4gY2lwaGVyVGV4dChwbGFpblRleHQuc2l6ZSgpKTsgLy8gUGVyIHNlY3Rpb24gNS4y
LjEuMjogaHR0cDovL252bHB1YnMubmlzdC5nb3YvbmlzdHB1YnMvTGVnYWN5L1NQL25pc3RzcGVj
aWFscHVibGljYXRpb244MDAtMzhkLnBkZgogICAgIFZlY3Rvcjx1aW50OF90PiB0YWcoZGVzaXJl
ZFRhZ0xlbmd0aEluQnl0ZXMpOwogICAgIC8vIHRhZ0xlbmd0aCBpcyBhY3R1YWwgYW4gaW5wdXQg
PHJkYXI6Ly9wcm9ibGVtLzMwNjYwMDc0PgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgQ0NDcnlwdG9yU3RhdHVzIHN0YXR1cyA9IENDQ3J5cHRvckdDTShrQ0NFbmNyeXB0
LCBrQ0NBbGdvcml0aG1BRVMsIGtleS5kYXRhKCksIGtleS5zaXplKCksIGl2LmRhdGEoKSwgaXYu
c2l6ZSgpLCBhZGRpdGlvbmFsRGF0YS5kYXRhKCksIGFkZGl0aW9uYWxEYXRhLnNpemUoKSwgcGxh
aW5UZXh0LmRhdGEoKSwgcGxhaW5UZXh0LnNpemUoKSwgY2lwaGVyVGV4dC5kYXRhKCksIHRhZy5k
YXRhKCksICZkZXNpcmVkVGFnTGVuZ3RoSW5CeXRlcyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9w
ZXJhdGlvbkVycm9yIH07CiAKQEAgLTU4LDEwICs1Nyw5IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxW
ZWN0b3I8dWludDhfdD4+IGRlY3lwdEFFU19HQ00oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpdiwg
Y29uCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHRhZyhkZXNpcmVkVGFnTGVuZ3RoSW5CeXRlcyk7CiAg
ICAgc2l6ZV90IG9mZnNldCA9IGNpcGhlclRleHQuc2l6ZSgpIC0gZGVzaXJlZFRhZ0xlbmd0aElu
Qnl0ZXM7CiAgICAgLy8gdGFnTGVuZ3RoIGlzIGFjdHVhbCBhbiBpbnB1dCA8cmRhcjovL3Byb2Js
ZW0vMzA2NjAwNzQ+Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBDQ0Ny
eXB0b3JTdGF0dXMgc3RhdHVzID0gQ0NDcnlwdG9yR0NNKGtDQ0RlY3J5cHQsIGtDQ0FsZ29yaXRo
bUFFUywga2V5LmRhdGEoKSwga2V5LnNpemUoKSwgaXYuZGF0YSgpLCBpdi5zaXplKCksIGFkZGl0
aW9uYWxEYXRhLmRhdGEoKSwgYWRkaXRpb25hbERhdGEuc2l6ZSgpLCBjaXBoZXJUZXh0LmRhdGEo
KSwgb2Zmc2V0LCBwbGFpblRleHQuZGF0YSgpLCB0YWcuZGF0YSgpLCAmZGVzaXJlZFRhZ0xlbmd0
aEluQnl0ZXMpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJO
SU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGlmIChzdGF0
dXMpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFw
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3Jh
cE1hYy5tbQppbmRleCBhNTE3ZjkyMmUwNDhkMTQxNzdjNGY2ZjhjNDM2MjMxMzA4ODE0OTY5Li43
OTQ2NGE0NjgwZTM5YWRmYWMzODQwZjJjYzA1NzBhMTQ0ZGQ1OGM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0K
QEAgLTIyMCwxNSArMjIwLDE0IEBAIGJvb2wgd3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkoY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiBtYXN0ZXJLZXksIGNvbnN0IFZlY3Rvcjx1aW50CiAgICAgc2l6ZV90
IHRhZ0xlbmd0aCA9IDE2OwogICAgIHVpbnQ4X3QgdGFnW3RhZ0xlbmd0aF07CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIHN0YXR1cyA9IENDQ3J5cHRvckdDTShrQ0NF
bmNyeXB0LCBrQ0NBbGdvcml0aG1BRVMxMjgsIGtlay5kYXRhKCksIGtlay5zaXplKCksCiAgICAg
ICAgIG51bGxwdHIsIDAsIC8vIGl2CiAgICAgICAgIG51bGxwdHIsIDAsIC8vIGF1dGggZGF0YQog
ICAgICAgICBrZXkuZGF0YSgpLCBrZXkuc2l6ZSgpLAogICAgICAgICBlbmNyeXB0ZWRLZXkuZGF0
YSgpLAogICAgICAgICB0YWcsICZ0YWdMZW5ndGgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogCiAgICAgaWYgKHN0YXR1cyAhPSBrQ0NTdWNjZXNzKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0yODksMTUgKzI4OCwxNCBAQCBib29sIHVud3JhcFNlcmlhbGl6ZWRDcnlwdG9L
ZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBtYXN0ZXJLZXksIGNvbnN0IFZlY3Rvcjx1aQogICAg
IHVpbnQ4X3QgYWN0dWFsVGFnW3RhZ0xlbmd0aF07CiAKICAgICBrZXkucmVzaXplKGVuY3J5cHRl
ZEtleS5zaXplKCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgc3Rh
dHVzID0gQ0NDcnlwdG9yR0NNKGtDQ0RlY3J5cHQsIGtDQ0FsZ29yaXRobUFFUzEyOCwga2VrLmRh
dGEoKSwga2VrLnNpemUoKSwKICAgICAgICAgbnVsbHB0ciwgMCwgLy8gaXYKICAgICAgICAgbnVs
bHB0ciwgMCwgLy8gYXV0aCBkYXRhCiAgICAgICAgIGVuY3J5cHRlZEtleS5kYXRhKCksIGVuY3J5
cHRlZEtleS5zaXplKCksCiAgICAgICAgIGtleS5kYXRhKCksCiAgICAgICAgIGFjdHVhbFRhZywg
JnRhZ0xlbmd0aCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBpZiAo
c3RhdHVzICE9IGtDQ1N1Y2Nlc3MpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxp
dHlFbGVtZW50TWFwLnB5IGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0Ns
YXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkKaW5kZXggYjM0ZTYxN2IxNDZkMzI5ZmIx
YmMzMmEwYmI3MGM3Y2JiYTQ5OTkxYS4uNjdiZjk4YjA5YjcxNGQ0ZjVmYmFhMWUxNzNjZjRmMDFm
N2M5YThjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVk
b0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkK
QEAgLTk0LDExICs5NCw4IEBAIG91dHB1dF9maWxlLndyaXRlKCIiIgogCiAjaW5jbHVkZSAiQ1NT
UGFyc2VyU2VsZWN0b3IuaCIKIAotI2lmIGRlZmluZWQoX19jbGFuZ19fKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vu
a25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2ltcGxp
Y2l0LWZhbGx0aHJvdWdoIgotI2VuZGlmCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwo
Ii1XdW5rbm93bi1wcmFnbWFzIikKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdp
bXBsaWNpdC1mYWxsdGhyb3VnaCIpCiAKIC8vIE9sZGVyIHZlcnNpb25zIG9mIGdwZXJmIGxpa2Ug
dG8gdXNlIHRoZSBgcmVnaXN0ZXJgIGtleXdvcmQuCiAjZGVmaW5lIHJlZ2lzdGVyCkBAIC0yMDMs
OSArMjAwLDggQEAgUHNldWRvQ2xhc3NPckNvbXBhdGliaWxpdHlQc2V1ZG9FbGVtZW50IHBhcnNl
UHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFMKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XaW1wbGlj
aXQtZmFsbHRocm91Z2giKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1
bmtub3duLXByYWdtYXMiKQogCiAiIiIpCiBvdXRwdXRfZmlsZS5jbG9zZSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvRWxlbWVudHNNYXAucHkgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvRWxlbWVudHNNYXAucHkKaW5kZXgg
MjAxODI2ZWQ1MTM4OTRkNGZmN2YzYWYwNTEzYWQ3MjM4NjkyYWY4OC4uMzM0YzkzNjFkMWExYjRh
MTUwMmYxYjRhNjkyZTYyOWMzNjlkMGFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L21ha2VTZWxlY3RvclBzZXVkb0VsZW1lbnRzTWFwLnB5CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9tYWtlU2VsZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5weQpAQCAtOTIsMTEgKzkyLDggQEAgb3V0
cHV0X2ZpbGUud3JpdGUoIiIiCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2VsZWN0
b3JQc2V1ZG9UeXBlTWFwLmgiCiAKLSNpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1
bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdpbXBs
aWNpdC1mYWxsdGhyb3VnaCIKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVM
KCItV3Vua25vd24tcHJhZ21hcyIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1X
aW1wbGljaXQtZmFsbHRocm91Z2giKQogCiAvLyBPbGRlciB2ZXJzaW9ucyBvZiBncGVyZiBsaWtl
IHRvIHVzZSB0aGUgYHJlZ2lzdGVyYCBrZXl3b3JkLgogI2RlZmluZSByZWdpc3RlcgpAQCAtMTk4
LDkgKzE5NSw4IEBAIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50VHlwZSBwYXJzZVBzZXVkb0Vs
ZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nSW1wbCYgcHNldWRvCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAotI2lmIGRlZmluZWQoX19jbGFuZ19fKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAotI2VuZGlmCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2ltcGxp
Y2l0LWZhbGx0aHJvdWdoIikKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1X
dW5rbm93bi1wcmFnbWFzIikKIAogIiIiKQogb3V0cHV0X2ZpbGUuY2xvc2UoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCmluZGV4IDY2NTA4MjAzZDQ2ODg3MDZhNzVhNjk3
NzA1MzQ1NjQxYmZjYWIwNjQuLmI3OWNlMDg4NTBhYzhhYTE0NTJmYWEwMTBiYTc4ZDhhYjhjMTI4
ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKQEAgLTIwMTEsMTAg
KzIwMTEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY29udGFpbnNLYW5hTGV0dGVycyhjb25zdCBT
dHJpbmcmIHBhdHRlcm4pCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgQ09NUElMRVIoR0ND
X09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYKK0lHTk9S
RV9XQVJOSU5HX0dDQ19PUl9DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKQogLy8gTk9URTogSUNVJ3MgdW5vcm1fbm9ybWFsaXplIGZ1bmN0aW9uIGlzIGRlcHJlY2F0
ZWQuCiAKIHN0YXRpYyB2b2lkIG5vcm1hbGl6ZUNoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJh
Y3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgVmVjdG9yPFVDaGFyPiYgYnVmZmVyKQpAQCAtMjAzOCw5
ICsyMDM1LDcgQEAgc3RhdGljIHZvaWQgbm9ybWFsaXplQ2hhcmFjdGVycyhjb25zdCBVQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBWZWN0b3IKICAgICBBU1NFUlQoc3RhdHVzID09
IFVfU1RSSU5HX05PVF9URVJNSU5BVEVEX1dBUk5JTkcpOwogfQogCi0jaWYgQ09NUElMRVIoR0ND
X09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX1dB
Uk5JTkdfR0NDX09SX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKQogCiBzdGF0aWMgYm9vbCBpc05vbkxhdGluMVNlcGFyYXRvcihVQ2hhcjMyIGNoYXJhY3Rl
cikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQppbmRleCBjZjI4OWJm
NzBlNDAwMDM2NzY3ODA4ZDFhMTY5OWY2ODIzN2FhYzAwLi42NTY4NzgyODY3YmUwYjI2YjQ2YWFj
ZjJhZGExYjYzNzczZDlmODBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21h
Yy9FZGl0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFj
Lm1tCkBAIC04MSwxMSArODEsMTAgQEAgdm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQo
UGFzdGVib2FyZCogcGFzdGVib2FyZCwgYm9vbCBhbGxvd1BsYWluVGV4dCwgTWEKIHsKICAgICBS
ZWZQdHI8UmFuZ2U+IHJhbmdlID0gc2VsZWN0ZWRSYW5nZSgpOwogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKICAgICAvLyBGSVhNRTogSG93IGNhbiB0aGlzIGhhcmQtY29kZWQg
cGFzdGVib2FyZCBuYW1lIGJlIHJpZ2h0LCBnaXZlbiB0aGF0IHRoZSBwYXNzZWQtaW4gcGFzdGVi
b2FyZCBoYXMgYSBuYW1lPwogICAgIGNsaWVudCgpLT5zZXRJbnNlcnRpb25QYXN0ZWJvYXJkKE5T
R2VuZXJhbFBib2FyZCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBi
b29sIGNob3NlUGxhaW5UZXh0OwogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVu
dCA9IHdlYkNvbnRlbnRGcm9tUGFzdGVib2FyZCgqcGFzdGVib2FyZCwgKnJhbmdlLCBhbGxvd1Bs
YWluVGV4dCwgY2hvc2VQbGFpblRleHQpOwpAQCAtMTExLDExICsxMTAsMTAgQEAgdm9pZCBFZGl0
b3I6OnRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbigpCiAKICAgICBWZWN0b3I8U3RyaW5nPiB0
eXBlczsKICAgICB0eXBlcy5hcHBlbmQoU3RyaW5nKGxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRUeXBl
KCkpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FS
TklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0VHlwZXModHlwZXMsIE5TRmluZFBi
b2FyZCk7CiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5z
ZXRTdHJpbmdGb3JUeXBlKG1fZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhz
ZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKSksIGxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRUeXBl
KCksIE5TRmluZFBib2FyZCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAK
IHZvaWQgRWRpdG9yOjpyZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxvY2txdW90ZUhhbmRs
aW5nKQpAQCAtMTY5LDExICsxNjcsMTAgQEAgdm9pZCBFZGl0b3I6OnJlcGxhY2VOb2RlRnJvbVBh
c3RlYm9hcmQoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgLy8gRklYTUU6IEhvdyBjYW4gdGhpcyBoYXJkLWNvZGVkIHBhc3RlYm9hcmQgbmFtZSBiZSBy
aWdodCwgZ2l2ZW4gdGhhdCB0aGUgcGFzc2VkLWluIHBhc3RlYm9hcmQgaGFzIGEgbmFtZT8KICAg
ICBjbGllbnQoKS0+c2V0SW5zZXJ0aW9uUGFzdGVib2FyZChOU0dlbmVyYWxQYm9hcmQpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgYm9vbCBjaG9zZVBsYWluVGV4dDsK
ICAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gd2ViQ29udGVudEZy
b21QYXN0ZWJvYXJkKHBhc3RlYm9hcmQsICpyYW5nZSwgdHJ1ZSwgY2hvc2VQbGFpblRleHQpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KaW5kZXggYTI2NDMw
Y2YyNTI0YWQyMDRkNjEzNzlhMGVkMGIwMDk5NjU2YjkxZC4uZjAwNTJhYWUzOWFhYmQwODRkYzNi
ZTk0MGVlOWMwYTIyNjRkZWQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFu
ZGxlck1hYy5tbQpAQCAtNjEyLDEwICs2MTIsOSBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c2VuZEZh
a2VFdmVudHNBZnRlcldpZGdldFRyYWNraW5nKE5TRXZlbnQgKmluaXRpYXRpbmdFdmVudCkKICAg
ICAgICAgLy8gbm8gdXAtdG8tZGF0ZSBjYWNoZSBvZiB0aGVtIGFueXdoZXJlLgogICAgICAgICBm
YWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1v
dmVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbW3Zp
ZXctPnBsYXRmb3JtV2lkZ2V0KCkgd2luZG93XQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0U2Ny
ZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZp
ZXJGbGFnczpbaW5pdGlhdGluZ0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbaW5pdGlhdGluZ0V2ZW50IHRpbWVzdGFt
cF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93TnVtYmVyOltpbml0
aWF0aW5nRXZlbnQgd2luZG93TnVtYmVyXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KaW5kZXggNTJkYjk5ZTBmOWU1N2YzYmEz
NThkZjg1ZjA3MWRiNzg1Mjg0YmMwZi4uZWQzMWMwZjU1NDYyYWM3YTI4Njg5ZTNiNGIyOTFhYzEw
YzIxNDI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyLm1tCkBAIC0xMzIsMTAgKzEzMiw5IEBAIHZvaWQgU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqLCBHCiAKICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gZ3JhcGhpY3NDb250ZXh0LnBs
YXRmb3JtQ29udGV4dCgpOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAg
ICBDR0xheWVyUmVmIGhpZ2hsaWdodExheWVyID0gRERIaWdobGlnaHRHZXRMYXllcldpdGhDb250
ZXh0KGRkSGlnaGxpZ2h0KCksIGNnQ29udGV4dCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgQ0dSZWN0IGhpZ2hsaWdodEJvdW5kaW5nUmVjdCA9IERESGlnaGxpZ2h0R2V0
Qm91bmRpbmdSZWN0KGRkSGlnaGxpZ2h0KCkpOwogICAgIGhpZ2hsaWdodEJvdW5kaW5nUmVjdC5v
cmlnaW4gPSBDR1BvaW50WmVybzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
ZWRTdHJpbmdzLmNwcAppbmRleCBiMDU1MGNmNTMwNWU4NjM1ZGI0ZDVhODJlODk2NmYwOGYwMmE3
NTBiLi43Y2Y3ZTgxNjNhMTA3Y2JjYjEyZDkzNDZiNTY0NmU4N2IxNmQwMDY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcApAQCAtNTQsMTQgKzU0LDkg
QEAgU3RyaW5nIGZvcm1hdExvY2FsaXplZFN0cmluZyhTdHJpbmcgZm9ybWF0LCAuLi4pCiAgICAg
dmFfbGlzdCBhcmd1bWVudHM7CiAgICAgdmFfc3RhcnQoYXJndW1lbnRzLCBmb3JtYXQpOwogCi0j
aWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LW5vbmxpdGVyYWwiCi0jZW5kaWYK
KyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdmb3JtYXQtbm9ubGl0ZXJhbCIpOwogICAgIGF1
dG8gcmVzdWx0ID0gYWRvcHRDRihDRlN0cmluZ0NyZWF0ZVdpdGhGb3JtYXRBbmRBcmd1bWVudHMo
MCwgMCwgZm9ybWF0LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGFyZ3VtZW50cykpOwotI2lmIENP
TVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2Zvcm1hdC1ub25saXRlcmFsIik7CiAKICAgICB2
YV9lbmQoYXJndW1lbnRzKTsKICAgICByZXR1cm4gcmVzdWx0LmdldCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oCmluZGV4IDQxYTUwYjIxM2ZkZTA4ZDM3ZmRi
YWFjYmJjOTZiNjFhYzg3MzEzNWMuLjZhMzhlZDk2ZTgzMzk3NzdhMmRiMTljZjIwMDU4OGM2NTJl
ZjlmMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRp
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgKQEAg
LTE5NSwxMCArMTk1LDkgQEAgc3RkOjpvcHRpb25hbDxTY3JlZW5EYXRhPiBTY3JlZW5EYXRhOjpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIAogICAgICAgICBhdXRvIGNvbG9yU3BhY2VEYXRhID0g
YWRvcHRDRihDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgaWNjRGF0YS0+ZGF0YSgp
LCBpY2NEYXRhLT5zaXplKCkpKTsKICAgICAgICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9y
Zy9iLzE4NDM1OD4gV2Ugc2hvdWxkIHN3aXRjaCB0byBDR0NvbG9yU3BhY2VDcmVhdGVJQ0NCYXNl
ZC4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgY2dDb2xv
clNwYWNlID0gYWRvcHRDRihDR0NvbG9yU3BhY2VDcmVhdGVXaXRoSUNDUHJvZmlsZShjb2xvclNw
YWNlRGF0YS5nZXQoKSkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwCmluZGV4IGI2Y2U2
OTYyMDUxMDdiZDIyZTk0ZmM0MzVkODcwMWUwZjgzZWU2MmUuLmNmYmE4MzE0YzEwYjc4NWE3NmY1
YTg5YmUyMjBkYmQ3MTYxZmY0MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcApAQCAtMTAzLDEwICsx
MDMsOSBAQCBISURHYW1lcGFkUHJvdmlkZXI6OkhJREdhbWVwYWRQcm92aWRlcigpCiAKIHZvaWQg
SElER2FtZXBhZFByb3ZpZGVyOjpzdG9wTW9uaXRvcmluZ0lucHV0KCkKIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdu
b25udWxsIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV25vbm51bGwiKTsKICAgICBJT0hJ
RE1hbmFnZXJSZWdpc3RlcklucHV0VmFsdWVDYWxsYmFjayhtX21hbmFnZXIuZ2V0KCksIG51bGxw
dHIsIG51bGxwdHIpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HX0VORCgiLVdub25udWxsIik7CiB9CiAKIHZvaWQgSElER2FtZXBhZFByb3Zp
ZGVyOjpzdGFydE1vbml0b3JpbmdJbnB1dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAppbmRleCA1ZjI5YWY4NWE5NDgzZDQ3
NjJlOTg3YjMyMDViODBlMTdjM2JiMTljLi5lYWFmZDc5MDRlZDhmY2E0Mzk3ZGFhYmMzN2UxODMy
M2Y3NWE2NzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Q
bGF0Zm9ybURpc3BsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1BsYXRmb3JtRGlzcGxheS5jcHAKQEAgLTExOCwxNCArMTE4LDkgQEAgc3RkOjp1bmlxdWVfcHRy
PFBsYXRmb3JtRGlzcGxheT4gUGxhdGZvcm1EaXNwbGF5OjpjcmVhdGVQbGF0Zm9ybURpc3BsYXko
KQogUGxhdGZvcm1EaXNwbGF5JiBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKQogewog
ICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSNpZiBDT01QSUxFUihDTEFORykK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMiCi0jZW5kaWYKKyAgICBJR05PUkVfV0FS
TklOR19DTEFORygiLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMiKTsKICAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheT4gZGlzcGxheTsKLSNpZiBDT01QSUxFUihDTEFORykK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HX0VORCgiLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMiKTsKICAgICBzdGQ6OmNhbGxfb25j
ZShvbmNlRmxhZywgW117CiAgICAgICAgIGRpc3BsYXkgPSBjcmVhdGVQbGF0Zm9ybURpc3BsYXko
KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwCmluZGV4IDRk
NWQ4MDg4YTkyY2U5N2U5Y2Q0ODBiYzRjOGVhNTY4YjhlNmE2YmEuLjE5ZWJmYzcxYWIzMTEwM2Ew
MzkyYzVmZmRmNGY4MGZkMWEyNzE4MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJh
dG9yLmNwcApAQCAtNjksMTAgKzY5LDcgQEAgYm9vbCBTdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRl
cmF0b3I6OmNvbnN1bWVTbG93Q2FzZShVQ2hhcjMyJiBjaGFyYWN0ZXIsIHVuc2lnbmUKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgotI2VuZGlmCitJR05PUkVfV0FSTklOR19HQ0NfT1JfQ0xBTkdf
VE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIC8vIE5PVEU6IElDVSdzIHVu
b3JtX25vcm1hbGl6ZSBmdW5jdGlvbiBpcyBkZXByZWNhdGVkLgogCiBVQ2hhcjMyIFN1cnJvZ2F0
ZVBhaXJBd2FyZVRleHRJdGVyYXRvcjo6bm9ybWFsaXplVm9pY2luZ01hcmtzKCkKQEAgLTk1LDgg
KzkyLDYgQEAgVUNoYXIzMiBTdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3I6Om5vcm1hbGl6
ZVZvaWNpbmdNYXJrcygpCiAgICAgcmV0dXJuIDA7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0NfT1Jf
Q0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitJR05PUkVfV0FSTklO
R19HQ0NfT1JfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5t
bQppbmRleCBiMmMxZTk2NjM0YjNmNTY0ZmZjMGM1YmQxNmIyOWVlNDJkODRmYTJjLi41OTA2NzJi
YzJiOGY1MmIxMjM4Njk3MTk3NmQwYmI3YTExZjVlYTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFW
Rk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCkBAIC0xMjMsMTAgKzEyMyw5IEBAIHZv
aWQgTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6OnVwZGF0ZU9wdGlvbnMoY29uc3QgVmVjdG9y
PFN0cmluZz4mIGNoYXJhY3RlcmlzCiAKICAgICAgICAgbV9vcHRpb25zLnJlbW92ZSgoX19icmlk
Z2UgQ0ZUeXBlUmVmKXJlbW92ZWRBVk9wdGlvbik7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgQVZNZWRpYVNlbGVjdGlvbk9wdGlvbiogc2VsZWN0ZWRPcHRp
b24gPSBbbV9wbGF5ZXJJdGVtIHNlbGVjdGVkTWVkaWFPcHRpb25Jbk1lZGlhU2VsZWN0aW9uR3Jv
dXA6bV9tZWRpYVNlbGVjdGlvbkdyb3VwLmdldCgpXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICBmb3IgKEFWTWVkaWFTZWxlY3Rpb25PcHRpb24qIGFkZGVkQVZPcHRpb24g
aW4gYWRkZWRBVk9wdGlvbnMuZ2V0KCkpIHsKICAgICAgICAgYXV0byBhZGRlZE9wdGlvbiA9IE1l
ZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQzo6Y3JlYXRlKCp0aGlzLCBhZGRlZEFWT3B0aW9uKTsK
ICAgICAgICAgaWYgKGFkZGVkQVZPcHRpb24gPT0gc2VsZWN0ZWRPcHRpb24pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbQppbmRleCAy
NmFiMDI0ZDhiYzlmODJiZjdkNjU1NTkzNmRjNWViNWFhNGI1MDI4Li5iZjhlMGVlNTlhMjA0NmJi
ZDQ4Mjk0NTI1NDg5NmIxNDA1MWViNjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0KQEAgLTE5OCwxMiArMTk4LDExIEBAIGJv
b2wgQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVm
UHRyPFVpbnQ4QXJyYXk+JiBuZXh0CiAKICAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4gY2VydGlm
aWNhdGVEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczptX2NlcnRp
ZmljYXRlLT5kYXRhKCkgbGVuZ3RoOm1fY2VydGlmaWNhdGUtPmxlbmd0aCgpXSk7CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdvYmpjLWxpdGVyYWwtY29udmVyc2lvbiIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1Xb2JqYy1saXRlcmFsLWNvbnZlcnNpb24iKTsKICAgICAgICAgU3RyaW5nIHN0b3JhZ2VQ
YXRoID0gdGhpcy0+c3RvcmFnZVBhdGgoKTsKICAgICAgICAgaWYgKCFzdG9yYWdlUGF0aC5pc0Vt
cHR5KCkgJiYgW2dldEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3RvcihyZW1vdmVQZW5kaW5nRXhwaXJlZFNlc3Npb25SZXBvcnRzOndpdGhBcHBJZGVudGlm
aWVyOnN0b3JhZ2VEaXJlY3RvcnlBdFVSTDopXSkKICAgICAgICAgICAgIFtnZXRBVlN0cmVhbVNl
c3Npb25DbGFzcygpIHJlbW92ZVBlbmRpbmdFeHBpcmVkU2Vzc2lvblJlcG9ydHM6QFttX2V4cGly
ZWRTZXNzaW9uLmdldCgpXSB3aXRoQXBwSWRlbnRpZmllcjpjZXJ0aWZpY2F0ZURhdGEuZ2V0KCkg
c3RvcmFnZURpcmVjdG9yeUF0VVJMOltOU1VSTCBmaWxlVVJMV2l0aFBhdGg6c3RvcmFnZVBhdGhd
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfRU5EKCItV29iamMtbGl0ZXJhbC1jb252ZXJzaW9uIik7CiAgICAgICAgIG1fZXhwaXJl
ZFNlc3Npb24gPSBudWxscHRyOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0yNDMs
MTAgKzI0Miw5IEBAIGJvb2wgQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6dXBkYXRlKFVpbnQ4
QXJyYXkqIGtleSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0CiAgICAgICAgIH0KIAogICAgICAg
ICBOU0Vycm9yKiBlcnJvciA9IG5pbDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKICAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4gcmVxdWVzdCA9IFtwcm90ZWN0ZWRTb3Vy
Y2VCdWZmZXItPnBhcnNlcigpIHN0cmVhbWluZ0NvbnRlbnRLZXlSZXF1ZXN0RGF0YUZvckFwcDpj
ZXJ0aWZpY2F0ZURhdGEuZ2V0KCkgY29udGVudElkZW50aWZpZXI6aW5pdERhdGEuZ2V0KCkgdHJh
Y2tJRDpwcm90ZWN0ZWRTb3VyY2VCdWZmZXItPnByb3RlY3RlZFRyYWNrSUQoKSBvcHRpb25zOm9w
dGlvbnMuZ2V0KCkgZXJyb3I6JmVycm9yXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAKICAgICAgICAgaWYgKCFbcHJvdGVjdGVkU291cmNlQnVmZmVyLT5wYXJzZXIoKSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGNvbnRlbnRQcm90ZWN0aW9uU2Vzc2lvbklkZW50
aWZpZXIpXSkKICAgICAgICAgICAgIG1fc2Vzc2lvbklkID0gY3JlYXRlQ2Fub25pY2FsVVVJRFN0
cmluZygpOwpAQCAtMjczLDEwICsyNzEsOSBAQCBib29sIENETVNlc3Npb25BVlN0cmVhbVNlc3Np
b246OnVwZGF0ZShVaW50OEFycmF5KiBrZXksIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dAogICAg
IGVycm9yQ29kZSA9IE1lZGlhUGxheWVyOjpOb0Vycm9yOwogICAgIHN5c3RlbUNvZGUgPSAwOwog
ICAgIFJldGFpblB0cjxOU0RhdGE+IGtleURhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBp
bml0V2l0aEJ5dGVzOmtleS0+ZGF0YSgpIGxlbmd0aDprZXktPmxlbmd0aCgpXSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbcHJvdGVjdGVkU291cmNlQnVmZmVyLT5w
YXJzZXIoKSBwcm9jZXNzQ29udGVudEtleVJlc3BvbnNlRGF0YTprZXlEYXRhLmdldCgpIGZvclRy
YWNrSUQ6cHJvdGVjdGVkU291cmNlQnVmZmVyLT5wcm90ZWN0ZWRUcmFja0lEKCldOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgK
aW5kZXggZDMyNmYyZmEyZmIyYjFjNjBlZDllM2I5Mzg4YWE1NDU5ZDlkNzVlMS4uYmNhODk0ZDg1
MWQ3MGNkMzBiMDJmZmYwYTVjZDRhYTE3YzJlOThkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291
cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtNTQsMTEgKzU0
LDExIEBAIHB1YmxpYzoKIAogICAgIC8vIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDRXJyb3JD
bGllbnQKICAgICB2b2lkIGxheWVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyICosIE5TRXJyb3IgKiwgYm9vbCYgc2hvdWxkSWdub3JlKSBvdmVycmlkZTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19U
T1BfTEVWRUwoIi1XdW5rbm93bi1wcmFnbWFzIikKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19U
T1BfTEVWRUwoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQogICAgIHZvaWQgcmVuZGVy
ZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICosIE5TRXJyb3Ig
KiwgYm9vbCYgc2hvdWxkSWdub3JlKSBvdmVycmlkZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3VuZ3VhcmRl
ZC1hdmFpbGFiaWxpdHktbmV3IikKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxf
RU5EKCItV3Vua25vd24tcHJhZ21hcyIpCiAKICAgICB2b2lkIGFkZFNvdXJjZUJ1ZmZlcihTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQyopOwogICAgIHZvaWQgcmVtb3ZlU291cmNlQnVmZmVyKFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCBk
YzNkZWViM2Y3OTIwOTBmYjA2NzI3ZWY0NDczNGFkMDgzZDUwZjgyLi45NTUyMTAwYWY4OWVlMTNl
YTIyNjIwMjk5YmQyNDU5NzgyMzVmYjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTI2
OTksMTAgKzI2OTksOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnNldEN1cnJlbnRUZXh0VHJhY2soSW5iYW5kVGV4dFRyYWNrUHJpdgogCiAgICAgaWYgKHRyYWNr
KSB7CiAgICAgICAgIGlmICh0cmFjay0+dGV4dFRyYWNrQ2F0ZWdvcnkoKSA9PSBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGOjpMZWdhY3lDbG9zZWRDYXB0aW9uKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAgIFttX2F2UGxheWVyLmdldCgpIHNl
dENsb3NlZENhcHRpb25EaXNwbGF5RW5hYmxlZDpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIik7CiAjaWYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9O
X0dST1VQKQogI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCiAgICAgICAgIGVsc2UgaWYgKHRyYWNr
LT50ZXh0VHJhY2tDYXRlZ29yeSgpID09IEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6Ok91dE9m
QmFuZCkKQEAgLTI3MTUsMTAgKzI3MTQsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnNldEN1cnJlbnRUZXh0VHJhY2soSW5iYW5kVGV4dFRyYWNrUHJpdgogI2lm
IEhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCkKICAgICAgICAgW21fYXZQ
bGF5ZXJJdGVtLmdldCgpIHNlbGVjdE1lZGlhT3B0aW9uOjAgaW5NZWRpYVNlbGVjdGlvbkdyb3Vw
OnNhZmVNZWRpYVNlbGVjdGlvbkdyb3VwRm9yTGVnaWJsZU1lZGlhKCldOwogI2VuZGlmCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NM
QU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIFttX2F2UGxheWVyLmdl
dCgpIHNldENsb3NlZENhcHRpb25EaXNwbGF5RW5hYmxlZDpOT107Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIH0KIAogfQpAQCAtMjczNCwxMCArMjczMiw5IEBAIFN0
cmluZyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpsYW5ndWFnZU9mUHJpbWFy
eUF1ZGlvVHJhY2soKSBjb25zdAogI2lmIEhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElP
Tl9HUk9VUCkKICAgICAvLyBJZiBBVkZvdW5kYXRpb24gaGFzIGFuIGF1ZGlibGUgZ3JvdXAsIHJl
dHVybiB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBhdWRpYmxlIG9wdGlv
bi4KICAgICBBVk1lZGlhU2VsZWN0aW9uR3JvdXBUeXBlICphdWRpYmxlR3JvdXAgPSBbbV9hdkFz
c2V0LmdldCgpIG1lZGlhU2VsZWN0aW9uR3JvdXBGb3JNZWRpYUNoYXJhY3RlcmlzdGljOkFWTWVk
aWFDaGFyYWN0ZXJpc3RpY0F1ZGlibGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgQVZNZWRpYVNlbGVjdGlvbk9wdGlvblR5cGUgKmN1cnJlbnRseVNlbGVjdGVkQXVk
aWJsZU9wdGlvbiA9IFttX2F2UGxheWVySXRlbS5nZXQoKSBzZWxlY3RlZE1lZGlhT3B0aW9uSW5N
ZWRpYVNlbGVjdGlvbkdyb3VwOmF1ZGlibGVHcm91cF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgaWYgKGN1cnJlbnRseVNlbGVjdGVkQXVkaWJsZU9wdGlvbikgewogICAg
ICAgICBtX2xhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjayA9IFtbY3VycmVudGx5U2VsZWN0ZWRB
dWRpYmxlT3B0aW9uIGxvY2FsZV0gbG9jYWxlSWRlbnRpZmllcl07CiAgICAgICAgIElORk9fTE9H
KExPR0lERU5USUZJRVIsICJsYW5ndWFnZSBvZiBzZWxlY3RlZCBhdWRpYmxlIG9wdGlvbiAiLCBt
X2xhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjayk7CkBAIC0zMjQ4LDEwICszMjQ1LDkgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjYW5QbGF5RmFzdFJldmVyc2VE
aWRDaGFuZ2UoYm9vbCBuZXdWYWwKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6c2V0U2hvdWxkRGlzYWJsZVNsZWVwKGJvb2wgZmxhZykKIHsKICNpZiBQTEFURk9STShJ
T1MpICYmICFQTEFURk9STShJT1NfU0lNVUxBVE9SKSAmJiAhUExBVEZPUk0oSU9TTUFDKQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW21fYXZQbGF5ZXIgX3NldFByZXZl
bnRzU2xlZXBEdXJpbmdWaWRlb1BsYXliYWNrOmZsYWddOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZmxhZyk7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggMDQ0NGQ5YWYwNTczZjViNzI3YTYzNTlkYjVkZTQ3MWRh
ODI3YWVlMy4uMzlhNjU5NmZiNDhiZWEzOWY0MDNmN2M5NzRlMjQ5OTUzYTY2ZWVmMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTY5LDEyICs2OSwxMiBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfVE9QX0xFVkVMKCItV3Vua25vd24tcHJhZ21hcyIpCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfVE9QX0xFVkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKICAgICB2b2lkIGFk
ZEF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKik7CiAgICAgdm9pZCBy
ZW1vdmVBdWRpb1JlbmRlcmVyKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciopOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZF
TF9FTkQoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQorICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5rbm93bi1wcmFnbWFzIikKIAogICAgIE1lZGlhUGxh
eWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtODcs
MTEgKzg3LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExvYWRpbmdQcm9ncmVzc3NlZChib29s
IGZsYWcpIHsgbV9sb2FkaW5nUHJvZ3Jlc3NlZCA9IGZsYWc7IH0KICAgICB2b2lkIHNldEhhc0F2
YWlsYWJsZVZpZGVvRnJhbWUoYm9vbCk7CiAgICAgYm9vbCBoYXNBdmFpbGFibGVWaWRlb0ZyYW1l
KCkgY29uc3Qgb3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3Vua25vd24tcHJhZ21hcyIpCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxp
dHktbmV3IikKICAgICB2b2lkIHNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxlKEFWU2FtcGxlQnVm
ZmVyQXVkaW9SZW5kZXJlciosIGJvb2wpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5ndWFyZGVkLWF2YWls
YWJpbGl0eS1uZXciKQorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1X
dW5rbm93bi1wcmFnbWFzIikKICAgICBib29sIGFsbFJlbmRlcmVyc0hhdmVBdmFpbGFibGVTYW1w
bGVzKCkgY29uc3QgeyByZXR1cm4gbV9hbGxSZW5kZXJlcnNIYXZlQXZhaWxhYmxlU2FtcGxlczsg
fQogICAgIHZvaWQgdXBkYXRlQWxsUmVuZGVyZXJzSGF2ZUF2YWlsYWJsZVNhbXBsZXMoKTsKICAg
ICB2b2lkIGR1cmF0aW9uQ2hhbmdlZCgpOwpAQCAtMjY3LDEyICsyNjcsMTIgQEAgcHJpdmF0ZToK
ICAgICBzdHJ1Y3QgQXVkaW9SZW5kZXJlclByb3BlcnRpZXMgewogICAgICAgICBib29sIGhhc0F1
ZGlibGVTYW1wbGUgeyBmYWxzZSB9OwogICAgIH07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFz
IgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJp
bGl0eS1uZXciCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3Vua25vd24t
cHJhZ21hcyIpCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3VuZ3VhcmRl
ZC1hdmFpbGFiaWxpdHktbmV3IikKICAgICBIYXNoTWFwPFJldGFpblB0cjxDRlR5cGVSZWY+LCBB
dWRpb1JlbmRlcmVyUHJvcGVydGllcz4gbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwOwog
ICAgIFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlclJlbmRlclN5bmNocm9uaXplcj4gbV9zeW5jaHJv
bml6ZXI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmtub3duLXByYWdtYXMiKQog
ICAgIFJldGFpblB0cjxpZD4gbV90aW1lSnVtcGVkT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPGlk
PiBtX2R1cmF0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPEFWU3RyZWFtU2Vzc2lvbj4gbV9z
dHJlYW1TZXNzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDk2OGZjNWEwODdm
MzExZDg4YjIzOWU2NzY5NDg5NDkyMTNiNGNiYTYuLjAyNDQ0MWQ2YmNlMGJiMmMyZWZhYTIzNGE0
YjQ1NGFkZDgzNTdiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTYyLDE3ICs2
MiwxNyBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAogU09G
VF9MSU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZBc3NldCkKIFNPRlRfTElOS19D
TEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXQpCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93
bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVk
LWF2YWlsYWJpbGl0eS1uZXciCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5r
bm93bi1wcmFnbWFzIikKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmd1YXJk
ZWQtYXZhaWxhYmlsaXR5LW5ldyIpCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0
aW9uLCBBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5ndWFyZGVkLWF2YWls
YWJpbGl0eS1uZXciKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3Vua25vd24t
cHJhZ21hcyIpCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIK
K0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmtub3duLXByYWdtYXMiKQorSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3
IikKIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVy
UmVuZGVyU3luY2hyb25pemVyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5l
dyIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3Vua25vd24tcHJhZ21h
cyIpCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbURhdGFQ
YXJzZXIpCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbVNl
c3Npb24pOwogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZWaWRlb1Bl
cmZvcm1hbmNlTWV0cmljcykKQEAgLTc3MywxMSArNzczLDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRIYXNBdmFpbGFibGVWaWRlb0ZyYW1lKGJvb2wg
ZmxhZykKICAgICB9CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKK0lH
Tk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmtub3duLXByYWdtYXMiKQorSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikK
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRIYXNBdmFpbGFi
bGVBdWRpb1NhbXBsZShBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqIHJlbmRlcmVyLCBib29s
IGZsYWcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFO
R19UT1BfTEVWRUxfRU5EKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKK0lHTk9SRV9X
QVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5rbm93bi1wcmFnbWFzIikKIHsKICAgICBh
dXRvIGl0ZXIgPSBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXAuZmluZCgoX19icmlkZ2Ug
Q0ZUeXBlUmVmKXJlbmRlcmVyKTsKICAgICBpZiAoaXRlciA9PSBtX3NhbXBsZUJ1ZmZlckF1ZGlv
UmVuZGVyZXJNYXAuZW5kKCkpCkBAIC0xMDE3LDExICsxMDE3LDExIEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6
Ok5ldHdvcmtTCiAgICAgbV9wbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKIH0KIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9Q
X0xFVkVMKCItV3Vua25vd24tcHJhZ21hcyIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVW
RUwoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQogdm9pZCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmFkZEF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRp
b1JlbmRlcmVyKiBhdWRpb1JlbmRlcmVyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmd1YXJkZWQtYXZhaWxhYmls
aXR5LW5ldyIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3Vua25vd24t
cHJhZ21hcyIpCiB7CiAgICAgaWYgKCFtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXAuYWRk
KChfX2JyaWRnZSBDRlR5cGVSZWYpYXVkaW9SZW5kZXJlciwgQXVkaW9SZW5kZXJlclByb3BlcnRp
ZXMoKSkuaXNOZXdFbnRyeSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTAzNCwxMSArMTAzNCwxMSBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6YWRkQXVkaW9SZW5k
ZXJlcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUgogICAgIG1fcGxheWVyLT5jbGllbnQoKS5tZWRpYVBs
YXllclJlbmRlcmluZ01vZGVDaGFuZ2VkKG1fcGxheWVyKTsKIH0KIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25v
d24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRl
ZC1hdmFpbGFiaWxpdHktbmV3IgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3Vu
a25vd24tcHJhZ21hcyIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5ndWFy
ZGVkLWF2YWlsYWJpbGl0eS1uZXciKQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OnJlbW92ZUF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVy
KiBhdWRpb1JlbmRlcmVyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIp
CitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3Vua25vd24tcHJhZ21hcyIp
CiB7CiAgICAgYXV0byBpdGVyID0gbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmZpbmQo
KF9fYnJpZGdlIENGVHlwZVJlZilhdWRpb1JlbmRlcmVyKTsKICAgICBpZiAoaXRlciA9PSBtX3Nh
bXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXAuZW5kKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaAppbmRleCAwMTljZjM3YjZiYmRh
YWM0YzRlYmZlYTNmOTg0YjJhYmQ5YmYxM2ExLi5jY2MyMmQzMDNiOWNkZTI0NzZhNDk0NTY3YWRl
MTRkNTczNTM5ZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDLmgKQEAgLTcwLDExICs3MCwxMSBAQCBjbGFzcyBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQ0Vycm9yQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Tb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQ0Vycm9yQ2xpZW50KCkgPSBkZWZhdWx0OwogICAgIHZpcnR1
YWwgdm9pZCBsYXllckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciAq
LCBOU0Vycm9yICosIGJvb2wmIHNob3VsZElnbm9yZSkgPSAwOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24t
cHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1h
dmFpbGFiaWxpdHktbmV3IgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1
bmtub3duLXByYWdtYXMiKQorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1
bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCiAgICAgdmlydHVhbCB2b2lkIHJlbmRlcmVyRGlk
UmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqLCBOU0Vycm9yICosIGJv
b2wmIHNob3VsZElnbm9yZSkgPSAwOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5ndWFyZGVkLWF2YWlsYWJp
bGl0eS1uZXciKQorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5r
bm93bi1wcmFnbWFzIikKIH07CiAKIGNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDIGZp
bmFsIDogcHVibGljIFNvdXJjZUJ1ZmZlclByaXZhdGUgewpAQCAtMTE3LDExICsxMTcsMTEgQEAg
cHVibGljOgogICAgIHZvaWQgdW5yZWdpc3RlckZvckVycm9yTm90aWZpY2F0aW9ucyhTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQ0Vycm9yQ2xpZW50Kik7CiAgICAgdm9pZCBsYXllckRpZFJlY2Vp
dmVFcnJvcihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciAqLCBOU0Vycm9yICopOwogICAgIHZv
aWQgb3V0cHV0T2JzY3VyZWREdWVUb0luc3VmZmljaWVudEV4dGVybmFsUHJvdGVjdGlvbkNoYW5n
ZWQoYm9vbCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3Vua25vd24tcHJhZ21hcyIpCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikK
ICAgICB2b2lkIHJlbmRlcmVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5k
ZXJlciAqLCBOU0Vycm9yICopOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0
eS1uZXciKQorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5rbm93
bi1wcmFnbWFzIikKIAogICAgIHZvaWQgc2V0VmlkZW9MYXllcihBVlNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllciopOwogICAgIHZvaWQgc2V0RGVjb21wcmVzc2lvblNlc3Npb24oV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uKik7CkBAIC0xNTIsMTEgKzE1MiwxMSBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGVzdHJveVJlbmRlcmVycygpOwogCiAgICAgdm9pZCBmbHVzaFZpZGVvKCk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
dW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9Q
X0xFVkVMKCItV3Vua25vd24tcHJhZ21hcyIpCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9Q
X0xFVkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKICAgICB2b2lkIGZsdXNoKEFW
U2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3VuZ3VhcmRlZC1h
dmFpbGFiaWxpdHktbmV3IikKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5E
KCItV3Vua25vd24tcHJhZ21hcyIpCiAKICAgICBXZWFrUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCp0aGlzKTsgfQogCkBAIC0xNzAsMTEgKzE3MCwxMSBAQCBwcml2YXRlOgogICAgIFJldGFp
blB0cjxBVlN0cmVhbURhdGFQYXJzZXI+IG1fcGFyc2VyOwogICAgIFJldGFpblB0cjxBVkFzc2V0
PiBtX2Fzc2V0OwogICAgIFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gbV9k
aXNwbGF5TGF5ZXI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3Vua25vd24tcHJhZ21hcyIpCisgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3
IikKICAgICBIYXNoTWFwPGludCwgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJl
cj4+IG1fYXVkaW9SZW5kZXJlcnM7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmd1YXJkZWQtYXZhaWxhYmls
aXR5LW5ldyIpCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmtu
b3duLXByYWdtYXMiKQogICAgIFJldGFpblB0cjxXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5l
cj4gbV9kZWxlZ2F0ZTsKICAgICBSZXRhaW5QdHI8V2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3Rl
bmVyPiBtX2Vycm9yTGlzdGVuZXI7CiAgICAgUmV0YWluUHRyPE5TRXJyb3I+IG1faGRjcEVycm9y
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQy5tbQppbmRleCBkYzkzNDc4ZWUzNWIzMDlmYmU4ZjFkMjVmZTM1MTI5NjVmZTA2NmY1Li5l
OWNiYmI3MDYyMGVjNzFiMDZmYTRjN2JhOGFlYmU5NjNhZjVlMDc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtNjgs
MTEgKzY4LDExIEBAIFNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoQVZGb3VuZGF0aW9uKQog
CiBTT0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVkFzc2V0VHJhY2spCiBTT0ZUX0xJTktf
Q0xBU1MoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbURhdGFQYXJzZXIpCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93
bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVk
LWF2YWlsYWJpbGl0eS1uZXciCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5r
bm93bi1wcmFnbWFzIikKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVd1bmd1YXJk
ZWQtYXZhaWxhYmlsaXR5LW5ldyIpCiBTT0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVlNh
bXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJ
R05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxp
dHktbmV3IikKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5rbm93bi1w
cmFnbWFzIikKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyKQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZTdHJlYW1TZXNzaW9u
KQogCkBAIC0yNDMsMjMgKzI0MywyMyBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQVZGb3VuZGF0aW9u
LCBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckZhaWxlZFRvRGVjb2RlTm90aWZpYwogQGludGVy
ZmFjZSBXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVuZXIgOiBOU09iamVjdCB7CiAgICAgV2Vi
Q29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIF9wYXJlbnQ7CiAgICAgVmVjdG9yPFJl
dGFpblB0cjxBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4+IF9sYXllcnM7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
dW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5n
dWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xF
VkVMKCItV3Vua25vd24tcHJhZ21hcyIpCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xF
VkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKICAgICBWZWN0b3I8UmV0YWluUHRy
PEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlcj4+IF9yZW5kZXJlcnM7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgi
LVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
VE9QX0xFVkVMX0VORCgiLVd1bmtub3duLXByYWdtYXMiKQogfQogCiAtIChpZClpbml0V2l0aFBh
cmVudDooV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqKXBhcmVudDsKIC0gKHZv
aWQpaW52YWxpZGF0ZTsKIC0gKHZvaWQpYmVnaW5PYnNlcnZpbmdMYXllcjooQVZTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIgKilsYXllcjsKIC0gKHZvaWQpc3RvcE9ic2VydmluZ0xheWVyOihBVlNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllciAqKWxheWVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21h
cyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFi
aWxpdHktbmV3IgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3Vua25vd24tcHJh
Z21hcyIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5ndWFyZGVkLWF2YWls
YWJpbGl0eS1uZXciKQogLSAodm9pZCliZWdpbk9ic2VydmluZ1JlbmRlcmVyOihBVlNhbXBsZUJ1
ZmZlckF1ZGlvUmVuZGVyZXIgKilyZW5kZXJlcjsKIC0gKHZvaWQpc3RvcE9ic2VydmluZ1JlbmRl
cmVyOihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKilyZW5kZXJlcjsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1X
dW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xF
VkVMX0VORCgiLVd1bmtub3duLXByYWdtYXMiKQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2Vi
QVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyCkBAIC0zMjIsMTIgKzMyMiwxMiBAQCBTT0ZUX0xJ
TktfQ09OU1RBTlQoQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckZhaWxl
ZFRvRGVjb2RlTm90aWZpYwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyRmFp
bGVkVG9EZWNvZGVOb3RpZmljYXRpb24gb2JqZWN0OmxheWVyXTsKIH0KIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vu
a25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3Vh
cmRlZC1hdmFpbGFiaWxpdHktbmV3IgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCIt
V3Vua25vd24tcHJhZ21hcyIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5n
dWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKQogLSAodm9pZCliZWdpbk9ic2VydmluZ1JlbmRlcmVy
OihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqKXJlbmRlcmVyCiB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3Vu
Z3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZF
TF9FTkQoIi1XdW5rbm93bi1wcmFnbWFzIikKICAgICBBU1NFUlQoX3BhcmVudCk7CiAgICAgQVNT
RVJUKCFfcmVuZGVyZXJzLmNvbnRhaW5zKHJlbmRlcmVyKSk7CiAKQEAgLTMzNSwxMSArMzM1LDEx
IEBAIFNPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljCiAgICAgW3JlbmRlcmVyIGFkZE9ic2VydmVyOnNl
bGYgZm9yS2V5UGF0aDpAImVycm9yIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25O
ZXcgY29udGV4dDpudWxscHRyXTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHkt
bmV3IgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3Vua25vd24tcHJhZ21hcyIp
CitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0
eS1uZXciKQogLSAodm9pZClzdG9wT2JzZXJ2aW5nUmVuZGVyZXI6KEFWU2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlciopcmVuZGVyZXIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9S
RV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1u
ZXciKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVd1bmtub3duLXByYWdt
YXMiKQogewogICAgIEFTU0VSVChfcGFyZW50KTsKICAgICBBU1NFUlQoX3JlbmRlcmVycy5jb250
YWlucyhyZW5kZXJlcikpOwpAQCAtMzcyLDExICszNzIsMTEgQEAgU09GVF9MSU5LX0NPTlNUQU5U
KEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJGYWlsZWRUb0RlY29kZU5v
dGlmaWMKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCiAgICAgfSBlbHNlIGlm
IChbb2JqZWN0IGlzS2luZE9mQ2xhc3M6Z2V0QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyQ2xh
c3MoKV0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKKyAgICAgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkcoIi1XdW5rbm93bi1wcmFnbWFzIik7CisgICAgICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3Iik7CiAgICAgICAgIFJl
dGFpblB0cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+IHJlbmRlcmVyID0gKEFWU2FtcGxl
QnVmZmVyQXVkaW9SZW5kZXJlciAqKW9iamVjdDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV3VuZ3VhcmRlZC1hdmFpbGFi
aWxpdHktbmV3Iik7CisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVd1bmtub3du
LXByYWdtYXMiKTsKICAgICAgICAgUmV0YWluUHRyPE5TRXJyb3I+IGVycm9yID0gW2NoYW5nZSB2
YWx1ZUZvcktleTpOU0tleVZhbHVlQ2hhbmdlTmV3S2V5XTsKIAogICAgICAgICBBU1NFUlQoX3Jl
bmRlcmVycy5jb250YWlucyhyZW5kZXJlci5nZXQoKSkpOwpAQCAtODUyLDIxICs4NTIsMjEgQEAg
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6dHJhY2tEaWRDaGFuZ2VFbmFibGVkKEF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3UKICAgICBpbnQgdHJhY2tJRCA9IHRyYWNrLT50cmFja0lE
KCk7CiAKICAgICBpZiAoIXRyYWNrLT5lbmFibGVkKCkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXBy
YWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZh
aWxhYmlsaXR5LW5ldyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XdW5rbm93bi1w
cmFnbWFzIik7CisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV3VuZ3VhcmRlZC1hdmFp
bGFiaWxpdHktbmV3Iik7CiAgICAgICAgIFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVu
ZGVyZXI+IHJlbmRlcmVyID0gbV9hdWRpb1JlbmRlcmVycy5nZXQodHJhY2tJRCk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgi
LVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpOworICAgICAgICBJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XdW5rbm93bi1wcmFnbWFzIik7CiAgICAgICAgIFttX3BhcnNlciBzZXRTaG91
bGRQcm92aWRlTWVkaWFEYXRhOk5PIGZvclRyYWNrSUQ6dHJhY2tJRF07CiAgICAgICAgIGlmICht
X21lZGlhU291cmNlKQogICAgICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnJlbW92
ZUF1ZGlvUmVuZGVyZXIocmVuZGVyZXIuZ2V0KCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFtt
X3BhcnNlciBzZXRTaG91bGRQcm92aWRlTWVkaWFEYXRhOllFUyBmb3JUcmFja0lEOnRyYWNrSURd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAgICAgICBJR05PUkVfV0FS
TklOR19DTEFORygiLVd1bmtub3duLXByYWdtYXMiKTsKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdf
Q0xBTkcoIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciKTsKICAgICAgICAgUmV0YWluUHRy
PEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlcj4gcmVuZGVyZXI7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVd1bmd1YXJk
ZWQtYXZhaWxhYmlsaXR5LW5ldyIpOworICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQo
Ii1XdW5rbm93bi1wcmFnbWFzIik7CiAgICAgICAgIGlmICghbV9hdWRpb1JlbmRlcmVycy5jb250
YWlucyh0cmFja0lEKSkgewogICAgICAgICAgICAgcmVuZGVyZXIgPSBhZG9wdE5TKFthbGxvY0FW
U2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlckluc3RhbmNlKCkgaW5pdF0pOwogICAgICAgICAgICAg
YXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKQEAgLTk5NywxMSArOTk3LDExIEBAIHZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZp
Y2llbnRFeHRlcm5hbFByb3RlY3RpCiAgICAgbGF5ZXJEaWRSZWNlaXZlRXJyb3IobV9kaXNwbGF5
TGF5ZXIuZ2V0KCksIGVycm9yLmdldCgpKTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21h
cyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFi
aWxpdHktbmV3IgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3Vua25vd24tcHJh
Z21hcyIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW5ndWFyZGVkLWF2YWls
YWJpbGl0eS1uZXciKQogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6cmVuZGVyZXJE
aWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICpyZW5kZXJlciwgTlNF
cnJvciAqZXJyb3IpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklO
R19DTEFOR19UT1BfTEVWRUxfRU5EKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKK0lH
Tk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5rbm93bi1wcmFnbWFzIikKIHsK
ICAgICBMT0coTWVkaWFTb3VyY2UsICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6cmVuZGVy
ZXJEaWRSZWNlaXZlRXJyb3IoJXApOiByZW5kZXJlciglcCksIGVycm9yKCVAKSIsIHRoaXMsIHJl
bmRlcmVyLCBbZXJyb3IgZGVzY3JpcHRpb25dKTsKIApAQCAtMTA1MCwxMSArMTA1MCwxMSBAQCB2
b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVzaFZpZGVvKCkKICAgICB9CiB9CiAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5H
X1RPUF9MRVZFTCgiLVd1bmtub3duLXByYWdtYXMiKQorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9Q
X0xFVkVMKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKIHZvaWQgU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakM6OmZsdXNoKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqcmVuZGVy
ZXIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19U
T1BfTEVWRUxfRU5EKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKK0lHTk9SRV9XQVJO
SU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW5rbm93bi1wcmFnbWFzIikKIHsKICAgICBbcmVu
ZGVyZXIgZmx1c2hdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1tCmluZGV4IGRm
MDQxMDNjNzFhOTg5NjRlOWYyOWZlMTk4MWIzNjIxNThhNmJkOTkuLjAzZTE0NjE0YWIwZTczOTVm
Nzg0NjEwMTAzMzJhZjM5OTVkYjk2MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29h
Lm1tCkBAIC0xMTUwLDEwICsxMTUwLDkgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXI6OmRyYXdMYXll
ckNvbnRlbnRzKENHQ29udGV4dFJlZiBjb250ZXh0LCBXZWJDb3JlOjpQbGF0Zm9ybUMKICAgICAK
ICAgICAvLyBTZXQgdXAgYW4gTlNHcmFwaGljc0NvbnRleHQgZm9yIHRoZSBjb250ZXh0LCBzbyB0
aGF0IHBhcnRzIG9mIEFwcEtpdCB0aGF0IHJlbHkgb24KICAgICAvLyB0aGUgY3VycmVudCBOU0dy
YXBoaWNzQ29udGV4dCAoZS5nLiBOU0NlbGwgZHJhd2luZykgZ2V0IHRoZSByaWdodCBvbmUuCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBOU0dyYXBoaWNzQ29udGV4dCog
bGF5ZXJDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFw
aGljc1BvcnQ6Y29udGV4dCBmbGlwcGVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OmxheWVyQ29u
dGV4dF07CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKaW5kZXggZWY4
NDNhMDYxZTljMGM4MjY3MTYzNDg5ZGNmYWEzNjViMGY3NTc5ZS4uMTJjZGFiNmJkZGE5NzBjMThk
NTMzOTcyYTQ3YjkyYzRlM2ZjOWNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKQEAg
LTQ5LDE0ICs0OSw5IEBAIGNvbnN0IEZvbnQqIEZvbnRDYXNjYWRlOjpmb250Rm9yQ29tYmluaW5n
Q2hhcmFjdGVyU2VxdWVuY2UoY29uc3QgVUNoYXIqIGNoYXJhY3RlCiB7CiAgICAgVUVycm9yQ29k
ZSBlcnJvciA9IFVfWkVST19FUlJPUjsKICAgICBWZWN0b3I8VUNoYXIsIDQ+IG5vcm1hbGl6ZWRD
aGFyYWN0ZXJzKGxlbmd0aCk7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR19HQ0NfT1Jf
Q0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBpbnQzMl90IG5vcm1hbGl6
ZWRMZW5ndGggPSB1bm9ybV9ub3JtYWxpemUoY2hhcmFjdGVycywgbGVuZ3RoLCBVTk9STV9ORkMs
IFVOT1JNX1VOSUNPREVfM18yLCBub3JtYWxpemVkQ2hhcmFjdGVycy5kYXRhKCksIGxlbmd0aCwg
JmVycm9yKTsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHBvcAotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HX0VORCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGlmIChVX0ZBSUxVUkUoZXJyb3IpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VEZWNvZGVyQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VEZWNvZGVyQ0cuY3BwCmluZGV4IGI3ZDU5MmE5YzhhMjVkNzBk
MzdmNTE5ZjUxMzdjNDJkM2EzMzFhZWUuLmRiN2E3ZjkzNmM5NGM5MjA3YmY1ZDhhZjg2MDYwMTcx
OWVmMTBjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlRGVjb2RlckNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZURlY29kZXJDRy5jcHAKQEAgLTQyMywxNCArNDIzLDkgQEAgTmF0aXZlSW1hZ2VQ
dHIgSW1hZ2VEZWNvZGVyQ0c6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCBpbmRleCwg
U3Vic2FtcGxpbmcKICAgICAvLyB3aGljaCBjYXVzZWQgYSBwZXJmb3JtYW5jZSByZWdyZXNzaW9u
IGZvciB1cyBzaW5jZSB0aGUgaW1hZ2VzIGhhZCB0byBiZSByZXNhbXBsZWQvcmVjcmVhdGVkIGV2
ZXJ5IHRpbWUgd2UgY2FsbGVkCiAgICAgLy8gQ0dDb250ZXh0RHJhd0ltYWdlLiBXZSBub3cgdGVs
bCBDRyB0byBjYWNoZSB0aGUgZHJhd24gaW1hZ2VzLiBTZWUgYWxzbyA8cmRhcjovL3Byb2JsZW0v
MTQzNjY3NTU+IC0KICAgICAvLyBDb3JlR3JhcGhpY3MgbmVlZHMgdG8gdW4tZGVwcmVjYXRlIGtD
R0ltYWdlQ2FjaGluZ1RlbXBvcmFyeSBzaW5jZSBpdCdzIHN0aWxsIG5vdCB0aGUgZGVmYXVsdC4K
LSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgQ0dJbWFnZVNldENhY2hpbmdGbGFncyhpbWFnZS5nZXQoKSwga0NHSW1hZ2VD
YWNoaW5nVGVtcG9yYXJ5KTsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKICAgICAKICAg
ICBTdHJpbmcgdXRpID0gdGhpcy0+dXRpKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKaW5kZXggZDZiOWUxMDViN2E5NzJjNTJl
Y2VmYWRiMWM1ZDU1Y2I2Zjg0NDkyOS4uZGUzM2E1NDFiNWM5YTYxYThhYjgxZDgwZmNiNWQ2ZGMy
MzMyNzkxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViR0xMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYkdMTGF5ZXIuaApAQCAtMzQsOCArMzQsNyBAQCBjbGFzcyBHcmFwaGljc0xheWVyOwog
Y2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpCiAKICNpZiBVU0UoT1BFTkdMKQogQGludGVyZmFjZSBXZWJHTExheWVyIDog
Q0FMYXllcgpAQCAtNjcsNCArNjYsNCBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKIAogQGVu
ZAogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19U
T1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJD
b3JlVGV4dC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4
VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQppbmRleCBlODkwMWJjMTNhZGE0MDUyMzJkMGQzZmY0
NDUxOTYzZDdkNzU2NWIyLi5kNjkyNDJmM2EyY2Y1YTNiY2Q5ZDU1MDA4OGVkNjJmNGQxNmJjYzA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxl
eFRleHRDb250cm9sbGVyQ29yZVRleHQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCkBAIC0xNTgsMTAg
KzE1OCw5IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRS
dW5zRm9yQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY3AsCiAKICAgICAgICAgUHJvdmlkZXJJbmZv
IGluZm8gPSB7IGNwLCBsZW5ndGgsIHN0cmluZ0F0dHJpYnV0ZXMuZ2V0KCkgfTsKICAgICAgICAg
Ly8gRklYTUU6IFNvbWUgU0RLcyBjb21wbGFpbiB0aGF0IHRoZSBzZWNvbmQgcGFyYW1ldGVyIGJl
bG93IGNhbm5vdCBiZSBudWxsLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbm51bGwiCisgICAgICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV25vbm51bGwiKTsKICAgICAgICAgUmV0YWluUHRyPENUVHlwZXNldHRl
clJlZj4gdHlwZXNldHRlciA9IGFkb3B0Q0YoQ1RUeXBlc2V0dGVyQ3JlYXRlV2l0aFVuaUNoYXJQ
cm92aWRlckFuZE9wdGlvbnMoJnByb3ZpZGVTdHJpbmdBbmRBdHRyaWJ1dGVzLCAwLCAmaW5mbywg
bV9ydW4ubHRyKCkgPyBsdHJUeXBlc2V0dGVyT3B0aW9ucyA6IHJ0bFR5cGVzZXR0ZXJPcHRpb25z
KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HX0VORCgiLVdub25udWxsIik7CiAKICAgICAgICAgbGluZSA9IGFkb3B0Q0YoQ1RUeXBl
c2V0dGVyQ3JlYXRlTGluZSh0eXBlc2V0dGVyLmdldCgpLCBDRlJhbmdlTWFrZSgwLCAwKSkpOwog
ICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvSWNvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9J
Y29uTWFjLm1tCmluZGV4IDYxNDNiNTFkNDM2NDVkNWFkNDhjMzk1YWY3YzRlYTI2NDMzZDdjNGEu
LjcxMzVhMGQ4MTgxNmQ2MmM0YTIzMjAyODcxMWQzNzg5YWIzZmUxMmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tCkBAIC0zNiwxMCArMzYs
OSBAQCBJY29uOjpJY29uKE5TSW1hZ2UgKmltYWdlKQogICAgIDogbV9uc0ltYWdlKGltYWdlKQog
ewogICAgIC8vIE5lZWQgdGhpcyBiZWNhdXNlIFdlYkNvcmUgdXNlcyBBcHBLaXQncyBmbGlwcGVk
IGNvb3JkaW5hdGUgc3lzdGVtIGV4Y2x1c2l2ZWx5LgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgW2ltYWdlIHNldEZsaXBwZWQ6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKIH0KIAogSWNvbjo6fkljb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50SW1hZ2VNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvUERGRG9jdW1lbnRJbWFnZU1hYy5tbQpp
bmRleCA2ZGE5MjFiOThhZjJmOTQ4Y2JhYzI2MzU5MGEzNGNkYmM4OGRiNWIyLi42OWFlOWEyZjBh
OGExYzNiYWExNDA0NzE3OGM0MjBmZWVkZDQyMDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvUERGRG9jdW1lbnRJbWFnZU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvUERGRG9jdW1lbnRJbWFnZU1hYy5tbQpA
QCAtNzMsMTAgKzczLDkgQEAgdm9pZCBQREZEb2N1bWVudEltYWdlOjpkcmF3UERGUGFnZShHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgYm9vbCBhbGxvd3NTdWJwaXhlbFF1YW50aXphdGlv
biA9IENHQ29udGV4dEdldEFsbG93c0ZvbnRTdWJwaXhlbFF1YW50aXphdGlvbihjb250ZXh0LnBs
YXRmb3JtQ29udGV4dCgpKTsKICAgICBib29sIGFsbG93c1N1YnBpeGVsUG9zaXRpb25pbmcgPSBD
R0NvbnRleHRHZXRBbGxvd3NGb250U3VicGl4ZWxQb3NpdGlvbmluZyhjb250ZXh0LnBsYXRmb3Jt
Q29udGV4dCgpKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW1tt
X2RvY3VtZW50IHBhZ2VBdEluZGV4OjBdIGRyYXdXaXRoQm94OmtQREZEaXNwbGF5Qm94Q3JvcEJv
eF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBDR0NvbnRleHRTZXRB
bGxvd3NGb250U21vb3RoaW5nKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIGFsbG93c1Ntb290
aGluZyk7CiAgICAgQ0dDb250ZXh0U2V0QWxsb3dzRm9udFN1YnBpeGVsUXVhbnRpemF0aW9uKGNv
bnRleHQucGxhdGZvcm1Db250ZXh0KCksIGFsbG93c1N1YnBpeGVsUXVhbnRpemF0aW9uKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJLaXROU0lt
YWdlRXh0cmFzLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYktp
dE5TSW1hZ2VFeHRyYXMubW0KaW5kZXggNDY2NGY2NmY3Mzg1NzNkZmFiOTA1NGU5NDNhMTRlMTkw
YmVjMmY4Ny4uZDM3N2I0YWJlNTBjZjcwNTc2MDUxNTdmZWU2NjMzZjMwNjVkZDZmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYktpdE5TSW1hZ2VF
eHRyYXMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYktp
dE5TSW1hZ2VFeHRyYXMubW0KQEAgLTM3LDEwICszNyw5IEBACiAgICAgW3RyYW5zZm9ybSBzY2Fs
ZUJ5OmRldmljZVNjYWxlRmFjdG9yXTsKIAogICAgIE5TUmVjdCBib3VuZHMgPSB7IE5TWmVyb1Bv
aW50LCBzZWxmLnNpemUgfTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAg
IEJPT0wgZmxpcHBlZE9yaWVudGF0aW9uID0gc2VsZi5pc0ZsaXBwZWQ7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW3NlbGYgbG9ja0ZvY3VzV2l0aFJlY3Q6Ym91bmRzIGNv
bnRleHQ6bmlsIGhpbnRzOkB7IE5TSW1hZ2VIaW50Q1RNIDogdHJhbnNmb3JtIH0gZmxpcHBlZDpm
bGlwcGVkT3JpZW50YXRpb25dOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Ry
YWdJbWFnZUlPUy5tbQppbmRleCA1ZmIyMTVhMjk3MGRkOTYyYWEwYmRjYTk4M2E5MTA0ZWQ0ZDQz
ZTEwLi41MGU3NDEwMDMyNzZjZTFiM2QxNzNjZDI1Nzg3YTMwOTljOTBhOTQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0KQEAgLTUyLDggKzUyLDcgQEAK
ICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5n
Lmg+CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdudWxsYWJpbGl0eS1jb21wbGV0ZW5lc3MiCitJR05PUkVfV0FSTklO
R19DTEFOR19UT1BfTEVWRUwoIi1XbnVsbGFiaWxpdHktY29tcGxldGVuZXNzIikKIAogU09GVF9M
SU5LX0ZSQU1FV09SSyhVSUtpdCkKIFNPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlGb250KQpAQCAt
NjMsNyArNjIsNyBAQCBTT0ZUX0xJTksoVUlLaXQsIFVJR3JhcGhpY3NHZXRDdXJyZW50Q29udGV4
dCwgQ0dDb250ZXh0UmVmLCAodm9pZCksICgpKQogU09GVF9MSU5LKFVJS2l0LCBVSUdyYXBoaWNz
R2V0SW1hZ2VGcm9tQ3VycmVudEltYWdlQ29udGV4dCwgVUlJbWFnZSAqLCAodm9pZCksICgpKQog
U09GVF9MSU5LKFVJS2l0LCBVSUdyYXBoaWNzRW5kSW1hZ2VDb250ZXh0LCB2b2lkLCAodm9pZCks
ICgpKQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFO
R19UT1BfTEVWRUxfRU5EKCItV251bGxhYmlsaXR5LWNvbXBsZXRlbmVzcyIpCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Ry
YWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMu
bW0KaW5kZXggNTYxMDJmYTI5MDdhZjg0ZmUxMzMwMjFmMDhlNGVmNDNiMjdkYzk5Mi4uZWQyYTQ5
ZmRhZTM5OTZhYjgwZDFkMTFlODI2MmI5ODFhZTc4NTRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCkBAIC03MSwxMCArNzEsOSBAQCBSZXRhaW5QdHI8
TlNJbWFnZT4gc2NhbGVEcmFnSW1hZ2UoUmV0YWluUHRyPE5TSW1hZ2U+IGltYWdlLCBGbG9hdFNp
emUgc2NhbGUpCiAgICAgTlNTaXplIG5ld1NpemUgPSBOU01ha2VTaXplKChvcmlnaW5hbFNpemUu
d2lkdGggKiBzY2FsZS53aWR0aCgpKSwgKG9yaWdpbmFsU2l6ZS5oZWlnaHQgKiBzY2FsZS5oZWln
aHQoKSkpOwogICAgIG5ld1NpemUud2lkdGggPSByb3VuZGYobmV3U2l6ZS53aWR0aCk7CiAgICAg
bmV3U2l6ZS5oZWlnaHQgPSByb3VuZGYobmV3U2l6ZS5oZWlnaHQpOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW2ltYWdlIHNldFNjYWxlc1doZW5SZXNpemVkOllFU107
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
RU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW2ltYWdlIHNldFNpemU6bmV3
U2l6ZV07CiAgICAgcmV0dXJuIGltYWdlOwogfQpAQCAtMzEyLDEwICszMTEsOSBAQCBEcmFnSW1h
Z2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9yTGluayhFbGVtZW50JiBlbGVtZW50LCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiB0aQogICAgIFJldGFpblB0cjxOU0ltYWdlPiBkcmFnSW1hZ2UgPSBhZG9w
dE5TKFtbTlNJbWFnZSBhbGxvY10gaW5pdFdpdGhTaXplOmltYWdlU2l6ZV0pOwogICAgIFtkcmFn
SW1hZ2UgX3dlYl9sb2NrRm9jdXNXaXRoRGV2aWNlU2NhbGVGYWN0b3I6ZGV2aWNlU2NhbGVGYWN0
b3JdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKICAgICBH
cmFwaGljc0NvbnRleHQgY29udGV4dCgoQ0dDb250ZXh0UmVmKVtOU0dyYXBoaWNzQ29udGV4dCBj
dXJyZW50Q29udGV4dF0uZ3JhcGhpY3NQb3J0KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIikKIAogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAx
MDEzMDAKICAgICBjb250ZXh0LnRyYW5zbGF0ZShsaW5rSW1hZ2VTaGFkb3dSYWRpdXMsIGxpbmtJ
bWFnZVNoYWRvd1JhZGl1cyAtIGxpbmtJbWFnZVNoYWRvd09mZnNldFkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaAppbmRl
eCAwN2FhOTVmZjA4YTAzNzgyNjBhODJhMGY1NjVmYTg4YjhiYjg1NjU0Li41NzZkMWU5MmU1OTU5
YzZiNzYyYjc0ZDljYTNjYzcwOWZjYmRiOTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaApAQCAtMjcsOCArMjcsNyBA
QAogCiAjaWYgUExBVEZPUk0oTUFDKQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg5LDYgKzg4LDYgQEAgaW5saW5l
IE5TU3RyaW5nICpsZWdhY3lGaWxlc1Byb21pc2VQYXN0ZWJvYXJkVHlwZSgpCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAK
ICNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbQppbmRleCBjOThmYzI4
NTlmZmM3OWUxOTU0OGYxODY3ZTMzMDYwYjE2ODNiMDczLi5lNWM0YjExMjhkMTJkNmViZTk2Yzdh
NmU0ZThhMTgwYWM4NWE5ZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0KQEAgLTMyLDggKzMyLDcg
QEAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0OjpMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRl
eHQoR3JhcGhpY3NDb250ZXh0JiBncmFwaGkKIHsKICAgICBncmFwaGljc0NvbnRleHQuc2F2ZSgp
OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBDR0NvbnRleHRSZWYg
Y2dDb250ZXh0ID0gdGhpcy0+Y2dDb250ZXh0KCk7CiAgICAgaWYgKGNnQ29udGV4dCA9PSBbW05T
R3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdKSB7CiAgICAgICAg
IG1fc2F2ZWROU0dyYXBoaWNzQ29udGV4dCA9IDA7CkBAIC00Miw3ICs0MSw3IEBAIExvY2FsQ3Vy
cmVudEdyYXBoaWNzQ29udGV4dDo6TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0KEdyYXBoaWNz
Q29udGV4dCYgZ3JhcGhpCiAKICAgICBtX3NhdmVkTlNHcmFwaGljc0NvbnRleHQgPSBbW05TR3Jh
cGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSByZXRhaW5dOwogICAgIE5TR3JhcGhpY3NDb250
ZXh0KiBuZXdDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhH
cmFwaGljc1BvcnQ6Y2dDb250ZXh0IGZsaXBwZWQ6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiKTsKICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6bmV3
Q29udGV4dF07CiAgICAgbV9kaWRTZXRHcmFwaGljc0NvbnRleHQgPSB0cnVlOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCBjYjUwNGNmNTQz
ZWI3ZTgwZDc2NjVjZDFlNTdlMzA4OWFmZmIxYTcwLi5jMGYwMzdjNWJkZGRhNGMyNDkxZWFmYTU1
MDEwZjMxOWUyOThkZGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGFzdGVib2FyZE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbQpAQCAtOTksMTkgKzk5LDE3IEBAIFBhc3RlYm9hcmQ6OlBhc3RlYm9hcmQoY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHByb21pCiAK
IHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5k
UGFzdGUoKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oTlNHZW5lcmFsUGJvYXJkKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiBz
dGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERy
b3AoKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oTlNEcmFnUGJvYXJkKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3Rl
Ym9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKQEAg
LTYxNCwxOCArNjEyLDE2IEBAIHN0YXRpYyB2b2lkIHNldERyYWdJbWFnZUltcGwoTlNJbWFnZSAq
aW1hZ2UsIE5TUG9pbnQgb2Zmc2V0KQogICAgIFJldGFpblB0cjxOU0JpdG1hcEltYWdlUmVwPiBi
aXRtYXBJbWFnZTsKICAgICBpZiAoIWltYWdlUmVwIHx8ICFbaW1hZ2VSZXAgaXNLaW5kT2ZDbGFz
czpbTlNCaXRtYXBJbWFnZVJlcCBjbGFzc11dIHx8ICFOU0VxdWFsU2l6ZXMoaW1hZ2VSZXAuc2l6
ZSwgaW1hZ2VTaXplKSkgewogICAgICAgICBbaW1hZ2UgbG9ja0ZvY3VzXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgYml0bWFwSW1hZ2UgPSBhZG9wdE5T
KFtbTlNCaXRtYXBJbWFnZVJlcCBhbGxvY10gaW5pdFdpdGhGb2N1c2VkVmlld1JlY3Q6KihOU1Jl
Y3QqKSZpbWFnZVJlY3RdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgICAgIFtpbWFnZSB1bmxvY2tGb2N1c107CiAgICAgICAgIAogICAgICAgICAvLyB3ZSBtYXkg
aGF2ZSB0byBmbGlwIHRoZSBiaXRzIHdlIGp1c3QgcmVhZCBpZiB0aGUgaW1hZ2Ugd2FzIGZsaXBw
ZWQgc2luY2UgaXQgbWVhbnMgdGhlIGNhY2hlIHdhcyBhbHNvCiAgICAgICAgIC8vIGFuZCBDb3Jl
RHJhZ1NldEltYWdlIGNhbid0IHRha2UgYSB0cmFuc2Zvcm0gZm9yIHJlbmRlcmluZy4KLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgZmxpcEltYWdlID0gaW1h
Z2UuaXNGbGlwcGVkOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05P
UkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICB9
IGVsc2UgewogICAgICAgICBmbGlwSW1hZ2UgPSBmYWxzZTsKICAgICAgICAgYml0bWFwSW1hZ2Ug
PSAoTlNCaXRtYXBJbWFnZVJlcCAqKWltYWdlUmVwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IDU5ODU0Nzdk
OWUwNTQ4OGEyOTA0MGUwYzI0MzU5NGE5NDk5N2I5NzAuLjk1NzUzOWQ1YzA1ZDg2YWI0YmMxYjc1
ZmQzYzFiZWM4NzRkYzU1ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTQ2LDEwICs0Niw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogTlNQb2ludCBnbG9iYWxQb2ludChjb25zdCBOU1BvaW50JiB3aW5k
b3dQb2ludCwgTlNXaW5kb3cgKndpbmRvdykKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgIHJldHVybiBmbGlwU2NyZWVuUG9pbnQoW3dpbmRvdyBjb252ZXJ0QmFzZVRv
U2NyZWVuOndpbmRvd1BvaW50XSwgc2NyZWVuKHdpbmRvdykpOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogfQogCiBzdGF0aWMgTlNQb2ludCBnbG9iYWxQb2ludEZvckV2ZW50KE5T
RXZlbnQgKmV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NT
TEtleUdlbmVyYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TU0xLZXlH
ZW5lcmF0b3JNYWMubW0KaW5kZXggNDcwMGIwMThjNTMwYzExMmZiOGRkMTNkMjg3M2MxMDQ0ZTdk
YzcxOC4uZGEyZGYxY2Y3NjMyNDc1MzQzMDM5Y2ZiYTE5ZDI0YzYyYmNhYWZlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU1NMS2V5R2VuZXJhdG9yTWFjLm1tCkBAIC00
NCw4ICs0NCw3IEBAIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoU2VjQUNMKTsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05P
UkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQog
CiBzdHJ1Y3QgUHVibGljS2V5QW5kQ2hhbGxlbmdlIHsKICAgICBDU1NNX1g1MDlfU1VCSkVDVF9Q
VUJMSUNfS0VZX0lORk8gc3ViamVjdFB1YmxpY0tleUluZm87CkBAIC0yMjMsNyArMjIyLDcgQEAg
c3RhdGljIFN0cmluZyBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQg
a2V5U2l6ZSwgY29uc3QgQ1N0cmluZyYKICAgICByZXR1cm4gYmFzZTY0RW5jb2RlKGVuY29kZWRT
aWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2UuRGF0YSwgZW5jb2RlZFNpZ25lZFB1YmxpY0tleUFu
ZENoYWxsZW5nZS5MZW5ndGgpOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJ
R05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIikKIAogdm9pZCBnZXRTdXBwb3J0ZWRLZXlTaXplcyhWZWN0b3I8U3RyaW5nPiYgc3VwcG9y
dGVkS2V5U2l6ZXMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2Nyb2xsVmlld01hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3
TWFjLm1tCmluZGV4IDI2YjZjYjRmMjFmOGIzYzg5OTM2ZDFkNmU2Mzg3YzE2Yjg0MDRkM2IuLjEz
OWE2YWU4ZmQ0Yjk4NzcxYmZhMTQ0ZWUxMmFiODVmOTUxNDI1MGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tCkBAIC0yMzAsMTAgKzIzMCw5IEBAIElu
dFJlY3QgU2Nyb2xsVmlldzo6cGxhdGZvcm1Db250ZW50c1RvU2NyZWVuKGNvbnN0IEludFJlY3Qm
IHJlY3QpIGNvbnN0CiAgICAgaWYgKE5TVmlldyogZG9jdW1lbnRWaWV3ID0gdGhpcy0+ZG9jdW1l
bnRWaWV3KCkpIHsKICAgICAgICAgTlNSZWN0IHRlbXBSZWN0ID0gcmVjdDsKICAgICAgICAgdGVt
cFJlY3QgPSBbZG9jdW1lbnRWaWV3IGNvbnZlcnRSZWN0OnRlbXBSZWN0IHRvVmlldzpuaWxdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBJR05PUkVfV0FSTklO
R19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICB0ZW1wUmVjdC5v
cmlnaW4gPSBbW2RvY3VtZW50VmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46dGVtcFJl
Y3Qub3JpZ2luXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAg
IHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KHRlbXBSZWN0KTsKICAgICB9CiAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKQEAgLTI0NCwxMCArMjQzLDkgQEAgSW50UG9pbnQgU2Nyb2xsVmll
dzo6cGxhdGZvcm1TY3JlZW5Ub0NvbnRlbnRzKGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAgICAgaWYgKE5TVmlldyogZG9j
dW1lbnRWaWV3ID0gdGhpcy0+ZG9jdW1lbnRWaWV3KCkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgTlNQb2ludCB3aW5kb3dDb29yZCA9IFtbZG9jdW1l
bnRWaWV3IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTogcG9pbnRdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgcmV0dXJuIEludFBvaW50KFtkb2N1bWVu
dFZpZXcgY29udmVydFBvaW50OndpbmRvd0Nvb3JkIGZyb21WaWV3Om5pbF0pOwogICAgIH0KICAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Ro
ZW1lTWFjLm1tCmluZGV4IGZhOTRjNDczOTIwZmMwMmMyZDgzYmE2Y2JmNjFkN2M2ZDU4Y2M2ZmYu
LjdhOTI5N2M0OTU5ZWM1NDNlZGUxMmRkZTc4ZDI1YzJhMWE3ZjNkZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KQEAgLTM1OCwxMCArMzU4LDkgQEAgc3RhdGljIE5T
QnV0dG9uQ2VsbCAqc2hhcmVkQ2hlY2tib3hDZWxsKGNvbnN0IENvbnRyb2xTdGF0ZXMmIHN0YXRl
cywgY29uc3QgSW50U2kKIAogc3RhdGljIGJvb2wgZHJhd0NlbGxGb2N1c1JpbmdXaXRoRnJhbWVB
dFRpbWUoTlNDZWxsICpjZWxsLCBOU1JlY3QgY2VsbEZyYW1lLCBOU1ZpZXcgKmNvbnRyb2xWaWV3
LCBOU1RpbWVJbnRlcnZhbCB0aW1lT2Zmc2V0KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IChDR0NvbnRleHRSZWYpW1tO
U0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNnQ29udGV4
dCk7CiAKICAgICBDR0ZvY3VzUmluZ1N0eWxlIGZvY3VzUmluZ1N0eWxlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2Vy
Lm1tCmluZGV4IGI2ZWFkYTMxODA2NDAyNTAwNjAyYmZhYjBkMzI5NTdkYTZmMmI0NTEuLmQwODA5
OGM1YWQwNjk4MmUwMWM5NjJhNjkwNDQwMDNmZGYyNTlhMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIubW0K
QEAgLTM0LDggKzM0LDcgQEAKICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdudWxsYWJpbGl0eS1jb21wbGV0ZW5l
c3MiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XbnVsbGFiaWxpdHktY29tcGxl
dGVuZXNzIikKIFNPRlRfTElOS19GUkFNRVdPUksoQVZLaXQpCiAjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDAKIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVktp
dCwgQVZUb3VjaEJhck1lZGlhU2VsZWN0aW9uT3B0aW9uKQpAQCAtMzQ2LDcgKzM0NSw3IEBAIHN0
YXRpYyBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IG1lZGlhU2VsZWN0aW9uT3B0aW9ucyhjb25z
dCBWZWN0b3I8TWVkaWFTZWxlY3RpCiB9CiAjZW5kaWYKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdudWxsYWJpbGl0
eS1jb21wbGV0ZW5lc3MiKQogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9XaWRnZXRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2lk
Z2V0TWFjLm1tCmluZGV4IDk5NmMxOWQ1NTBmOTEzMWZhMDIzNjBiNjU3Zjg4YmU5ZjllNjY2YmIu
LmUwNzViZjI0YzFiYzllYTM3YWQ0NjdhYWRiMDQ3MmFjZjJlNmM3MDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbQpAQCAtMjA4LDEwICsyMDgsOSBAQCB2b2lkIFdp
ZGdldDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBwLCBjb25zdCBJbnRSZWN0JiByLCBTZWN1cml0
eU9yaWdpblBhaW50UG9saQogICAgIFJlZjxXaWRnZXQ+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwog
CiAgICAgTlNHcmFwaGljc0NvbnRleHQgKmN1cnJlbnRDb250ZXh0ID0gW05TR3JhcGhpY3NDb250
ZXh0IGN1cnJlbnRDb250ZXh0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgIGlmIChjdXJyZW50Q29udGV4dCA9PSBbW3ZpZXcgd2luZG93XSBncmFwaGljc0NvbnRleHRd
IHx8ICFbY3VycmVudENvbnRleHQgaXNEcmF3aW5nVG9TY3JlZW5dKSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAvLyBUaGlzIGlzIHRoZSBjb21tb24gY2Fz
ZSBvZiBkcmF3aW5nIGludG8gYSB3aW5kb3cgb3IgYW4gaW5jbHVzaXZlIGxheWVyLCBvciBwcmlu
dGluZy4KICAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgICAgICBbdmll
dyBkaXNwbGF5UmVjdElnbm9yaW5nT3BhY2l0eTpbdmlldyBjb252ZXJ0UmVjdDpyIGZyb21WaWV3
Olt2aWV3IHN1cGVydmlld11dXTsKQEAgLTIzOCwxMCArMjM3LDkgQEAgdm9pZCBXaWRnZXQ6OnBh
aW50KEdyYXBoaWNzQ29udGV4dCYgcCwgY29uc3QgSW50UmVjdCYgciwgU2VjdXJpdHlPcmlnaW5Q
YWludFBvbGkKICAgICB9CiAKICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gcC5wbGF0Zm9y
bUNvbnRleHQoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05P
UkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIEFTU0VS
VChjZ0NvbnRleHQgPT0gW2N1cnJlbnRDb250ZXh0IGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0
KTsKIAogICAgIE5TUmVjdCB2aWV3RnJhbWUgPSBbdmlldyBmcmFtZV07CkBAIC0yNTUsMTAgKzI1
Myw5IEBAIHZvaWQgV2lkZ2V0OjpwYWludChHcmFwaGljc0NvbnRleHQmIHAsIGNvbnN0IEludFJl
Y3QmIHIsIFNlY3VyaXR5T3JpZ2luUGFpbnRQb2xpCiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CiAgICAgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
ICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgICAgICBOU0dyYXBoaWNzQ29udGV4dCAqbnNDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0
IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Y2dDb250ZXh0IGZsaXBwZWQ6Tk9dOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFO
R19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgW3ZpZXcgZGlzcGxh
eVJlY3RJZ25vcmluZ09wYWNpdHk6W3ZpZXcgY29udmVydFJlY3Q6ciBmcm9tVmlldzpbdmlldyBz
dXBlcnZpZXddXSBpbkNvbnRleHQ6bnNDb250ZXh0XTsKICAgICB9CiAgICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKaW5kZXggYjUx
MzE4YzgzNGUyNTRhYTlmNzIzNjVlZmU2N2YzNTQ2NjhjZTlhZS4uMGQ0ZDc2NGZmNDMxOWFmYzI1
ZmE0MTQ4YmM1OGI0ZTcwYjMwNDE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
LmgKQEAgLTM1LDEyICszNSwxMSBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgogI2lu
Y2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIK
K0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUwoIi1XdW51c2VkLXBhcmFtZXRlciIpCiAKICNp
bmNsdWRlIDx3ZWJydGMvYXBpL21lZGlhc3RyZWFtaW50ZXJmYWNlLmg+CiAKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMX0VORCgiLVd1bnVz
ZWQtcGFyYW1ldGVyIikKIAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2UuaAppbmRleCA3MjQ3YmI4MzM4NTdlNDhlOTllZTc4NmU3NWU0
YTkzYmIwMDVkNWVkLi43NWYxMjkxMDc3Y2JlNjEyZTZjNTRmNTAzZmJmMmRhNDQyNmYwNDk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUlu
Y29taW5nVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuaApAQCAtMzUsMTIgKzM1LDExIEBACiAj
aW5jbHVkZSAiTGliV2ViUlRDTWFjcm9zLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oIgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0
aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorSUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9M
RVZFTCgiLVd1bnVzZWQtcGFyYW1ldGVyIikKIAogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvbWVkaWFz
dHJlYW1pbnRlcmZhY2UuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9X
QVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKCItV3VudXNlZC1wYXJhbWV0ZXIiKQogCiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oCmlu
ZGV4IGVhNDU3ZjdkNTMzNTBhZmQxODQ0ZWYzY2Y0MzIxMWY4MzMyOTU2ZjQuLjk3MjA5NDBjZWNm
YmRjYmNiZjFiYTdjOTgzZGZiNzExNjMyNGUxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRp
b1NvdXJjZS5oCkBAIC0zNSwxMiArMzUsMTEgQEAKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIi
CitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMKCItV3VudXNlZC1wYXJhbWV0ZXIiKQogCiAj
aW5jbHVkZSA8d2VicnRjL2FwaS9tZWRpYXN0cmVhbWludGVyZmFjZS5oPgogCi0jcHJhZ21hIEdD
QyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTF9FTkQoIi1XdW51
c2VkLXBhcmFtZXRlciIpCiAKICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaAppbmRleCA1NDhlYTNmMDFkODA3ZTg3
Y2UxMWQzMGU2Y2JjZGI3MDJmOTE1NWUxLi4yZWVmYTY1MThhZDM0YTQ3ODcxMGRiNmFlZWUxZmRi
ODRmNTgyYTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaApAQCAtMzQsMTMg
KzM0LDEyIEBACiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRl
IDxUaW1lci5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorSUdOT1JFX1dBUk5JTkdfR0ND
X1RPUF9MRVZFTCgiLVd1bnVzZWQtcGFyYW1ldGVyIikKIAogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkv
bWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4KICNpbmNsdWRlIDx3ZWJydGMvY29tbW9uX3ZpZGVvL2lu
Y2x1ZGUvaTQyMF9idWZmZXJfcG9vbC5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAor
SUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9MRVZFTF9FTkQoIi1XdW51c2VkLXBhcmFtZXRlciIpCiAK
ICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNv
dW50ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0F1ZGlvTW9kdWxlLmgKaW5kZXggNzll
OTlkN2NlMjA2Zjg5MjU5NmJkZDRmM2QxY2VmN2U1ZWIzN2RlMC4uZjU1ZGEzNjU4Y2NjODc5ZjQz
NWU0MDI0MGQ0ODY1ZTcxMGQ5MTMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0F1ZGlvTW9kdWxlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0F1ZGlv
TW9kdWxlLmgKQEAgLTI5LDE0ICsyOSwxMyBAQAogCiAjaW5jbHVkZSAiTGliV2ViUlRDTWFjcm9z
LmgiCiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xF
VkVMKCItV3VudXNlZC1wYXJhbWV0ZXIiKQogCiAjaW5jbHVkZSA8d2VicnRjL21vZHVsZXMvYXVk
aW9fZGV2aWNlL2luY2x1ZGUvYXVkaW9fZGV2aWNlLmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19i
YXNlL21lc3NhZ2VoYW5kbGVyLmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL3RocmVhZC5o
PgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfR0NDX1RPUF9M
RVZFTF9FTkQoIi1XdW51c2VkLXBhcmFtZXRlciIpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKaW5kZXggMWExNDUzYzg5YjdjMzIz
OWZmZjVlYTFkMjViM2QwMDVlMzk1MWMzOC4uMTkzNjcyNDhiYWUzMjA5ZWYwMzAzY2E3YTdiOWY4
YmRjMTI1OGNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC0z
MSw4ICszMSw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgPGRsZmNuLmg+CiAK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMKCIt
V3VudXNlZC1wYXJhbWV0ZXIiKQogCiAjaW5jbHVkZSA8d2VicnRjL2FwaS9hdWRpb19jb2RlY3Mv
YnVpbHRpbl9hdWRpb19kZWNvZGVyX2ZhY3RvcnkuaD4KICNpbmNsdWRlIDx3ZWJydGMvYXBpL2F1
ZGlvX2NvZGVjcy9idWlsdGluX2F1ZGlvX2VuY29kZXJfZmFjdG9yeS5oPgpAQCAtNDMsNyArNDIs
NyBAQAogI2luY2x1ZGUgPHdlYnJ0Yy9wYy9wZWVyY29ubmVjdGlvbmZhY3RvcnkuaD4KICNpbmNs
dWRlIDx3ZWJydGMvcnRjX2Jhc2UvcGh5c2ljYWxzb2NrZXRzZXJ2ZXIuaD4KIAotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0dDQ19UT1BfTEVWRUxfRU5EKCItV3Vu
dXNlZC1wYXJhbWV0ZXIiKQogCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCmlu
ZGV4IDhmY2NmMjJhMDA1ZmQ3OTg2MGMyYzk1ODY2MzcwMzY4MTMyMzhkOTYuLjA2NjQ5ZmYyYjZi
ZDU3YmViNTExZWExODRhYzU3MTE0OWYzMTg4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5oCkBAIC0zNSwxNSArMzUsMTQgQEAKIAogI2lmIFVTRShMSUJXRUJSVEMpCiAKLSNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV3VudXNlZC1wYXJhbWV0ZXIiCitJR05PUkVfV0FSTklOR19HQ0NfVE9QX0xFVkVMKCItV3Vu
dXNlZC1wYXJhbWV0ZXIiKQogCiAjaW5jbHVkZSA8d2VicnRjL2FwaS9wZWVyY29ubmVjdGlvbmlu
dGVyZmFjZS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29k
ZXJfZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2Rl
Y29kZXJfZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS9zY29wZWRfcmVmX3B0
ci5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfR0NDX1RP
UF9MRVZFTF9FTkQoIi1XdW51c2VkLXBhcmFtZXRlciIpCiAKIG5hbWVzcGFjZSBydGMgewogY2xh
c3MgTmV0d29ya01hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlQ29jb2EubW0KaW5kZXggNGI0MjVmOWJhNjJiMGYzZjA5M2E5MDZmZDRiMmFlNDljMmE0
M2MzZS4uYTJhM2Y5YjNkNjA0Njc3MGMxNTMxOGY5MzE2Mjk5MGVlMzI0NDBmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQpAQCAtMzQsMTIg
KzM0LDExIEBACiAjaW5jbHVkZSAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCiAjaW5jbHVkZSA8cGFs
L2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgor
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3VudXNlZC1wYXJhbWV0ZXIiKQogCiAj
aW5jbHVkZSA8d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmg+CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQo
Ii1XdW51c2VkLXBhcmFtZXRlciIpCiAKICNpbmNsdWRlIDx3dGYvY2YvVHlwZUNhc3RzQ0YuaD4K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAK
aW5kZXggZWQxNGMzNGMzMWQ2NmMwNWNlZDU5NWM2NTYwMzBlNzEzZjY1NTc4Ny4uN2Y3Y2U5MGE0
MGMyMjVlMjZiZTAyYjA0Y2Y2N2Y4NzNhNThiZmNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCkBAIC0zMCwxNCArMzAsMTMgQEAKIAog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitJR05P
UkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW51c2VkLXBhcmFtZXRlciIpCiAKICNpbmNs
dWRlIDx3ZWJydGMvYXBpL3ZpZGVvL2k0MjBfYnVmZmVyLmg+CiAjaW5jbHVkZSA8d2VicnRjL2Nv
bW1vbl92aWRlby9saWJ5dXYvaW5jbHVkZS93ZWJydGNfbGlieXV2Lmg+CiAjaW5jbHVkZSA8d2Vi
cnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmg+CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW51c2VkLXBh
cmFtZXRlciIpCiAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNpbmNs
dWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNw
cAppbmRleCA4MTE5ZmQ1ZTU1NmU2YzFkN2JmYzFmYmFiNGI1Yjg4OTEwYzM5ZTVmLi5iZWJlZWJi
ZGVlNjFlMDcyMjE2Mzc5ZTUyMTE0MDI2YjYxNjNmNzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbkNGTmV0LmNwcApAQCAtNjQsMTIgKzY0LDExIEBAIHN0YXRpYyBpbmxpbmUgQ0ZUeXBlSUQg
dHlwZUlEKCkgeyByZXR1cm4gQ2xhc3NOYW1lIyNHZXRUeXBlSUQoKTsgfSBcCiB9OwogCiAjaWYg
Q09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05P
UkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQog
I2VuZGlmCiBERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ0ZIVFRQQ29va2llKTsKICNpZiBDT01QSUxF
UihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NM
QU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogI2VuZGlmCiAK
ICN1bmRlZiBERUNMQVJFX0NGX1RZUEVfVFJBSVQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCmluZGV4IDA5
NWEwYzRiN2Q4NGFjOWM5YWJhYzQ0YTFhNWY0NmU5ZWJjMDAwN2EuLmU4OWJlODE4YWFlOTM4N2Mx
YTUyMjVmZGUyZjRkNDkzYjNlNmE0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApAQCAtMTcxLDEy
ICsxNzEsMTEgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJv
b2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wKICNlbHNlCiAgICAgaWYgKGFsbG93
c0FueUhUVFBTQ2VydGlmaWNhdGVIb3N0cygpLmNvbnRhaW5zKGZpcnN0UmVxdWVzdCgpLnVybCgp
Lmhvc3QoKS50b1N0cmluZygpKSkgewogICAgICAgICBzc2xQcm9wcyA9IGFkb3B0Q0YoQ0ZEaWN0
aW9uYXJ5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCAma0NGVHlwZURpY3Rp
b25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIENGRGljdGlvbmFy
eUFkZFZhbHVlKHNzbFByb3BzLmdldCgpLCBrQ0ZTdHJlYW1TU0xBbGxvd3NBbnlSb290LCBrQ0ZC
b29sZWFuVHJ1ZSk7CiAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKHNzbFByb3BzLmdldCgp
LCBrQ0ZTdHJlYW1TU0xBbGxvd3NFeHBpcmVkUm9vdHMsIGtDRkJvb2xlYW5UcnVlKTsKICAgICAg
ICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoc3NsUHJvcHMuZ2V0KCksIGtDRlN0cmVhbVNTTEFsbG93
c0V4cGlyZWRDZXJ0aWZpY2F0ZXMsIGtDRkJvb2xlYW5UcnVlKTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIik7CiAjaWYgIVBMQVRGT1JNKFdJTikgLy8gPHJkYXI6Ly9wcm9ibGVt
LzMzOTkzNDYyPiAtIERpc2FibGluZyB2YWxpZGF0aW9uIG9mIGNlcnRpZmljYXRlIGNoYWluIGJy
ZWFrcyBTU0wgb24gV2luZG93cy4KICAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoc3NsUHJv
cHMuZ2V0KCksIGtDRlN0cmVhbVNTTFZhbGlkYXRlc0NlcnRpZmljYXRlQ2hhaW4sIGtDRkJvb2xl
YW5GYWxzZSk7CiAjZW5kaWYKQEAgLTIzNCwxMCArMjMzLDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2Us
IGJvb2wKICAgICBpZiAoc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpCiAgICAgICAgIGNsaWVu
dC5zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSA9IDA7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIGQtPm1fY29ubmVjdGlvbiA9IGFkb3B0Q0YoQ0ZVUkxDb25uZWN0
aW9uQ3JlYXRlV2l0aFByb3BlcnRpZXMoMCwgcmVxdWVzdC5nZXQoKSwgcmVpbnRlcnByZXRfY2Fz
dDxDRlVSTENvbm5lY3Rpb25DbGllbnQqPigmY2xpZW50KSwgcHJvcGVydGllc0RpY3Rpb25hcnku
Z2V0KCkpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklO
R19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogYm9vbCBSZXNv
dXJjZUhhbmRsZTo6c3RhcnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwCmlu
ZGV4IDllZDVhYTBjOWQ5YmYxM2VlYTMxYTI5NTY4YTI0OTc1NzRlNTg2YzQuLmRmODcwNjhhZDkx
MmFkYmU4NzA0NGI5ZWFjY2QyMGU5NjYyYThmYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUlt
cGxDRk5ldC5jcHAKQEAgLTY2NiwxMCArNjY2LDcgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJ
bXBsOjpyZXBvcnRFcnJvclRvQ2xpZW50KENGRXJyb3JSZWYgZXJyb3IpCiAKICNpZiBQTEFURk9S
TShNQUMpCiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAKICAgICBpZiAoQ0ZFcXVhbChDRkVycm9yR2V0RG9tYWluKGVycm9y
KSwga0NGRXJyb3JEb21haW5PU1N0YXR1cykpIHsKICAgICAgICAgY29uc3QgY2hhciogZGVzY3Jp
cHRpb25PU1N0YXR1cyA9IEdldE1hY09TU3RhdHVzQ29tbWVudFN0cmluZyhzdGF0aWNfY2FzdDxP
U1N0YXR1cz4oZXJyb3JDb2RlKSk7CkBAIC02NzcsOSArNjc0LDcgQEAgdm9pZCBTb2NrZXRTdHJl
YW1IYW5kbGVJbXBsOjpyZXBvcnRFcnJvclRvQ2xpZW50KENGRXJyb3JSZWYgZXJyb3IpCiAgICAg
ICAgICAgICBkZXNjcmlwdGlvbiA9ICJPU1N0YXR1cyBFcnJvciAiICsgU3RyaW5nOjpudW1iZXIo
ZXJyb3JDb2RlKSArICI6ICIgKyBkZXNjcmlwdGlvbk9TU3RhdHVzOwogICAgIH0KIAotI2lmIENP
TVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Ny
ZWF0ZS1odHRwLWhlYWRlci1uYW1lLXRhYmxlIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jcmVhdGUtaHR0cC1oZWFkZXItbmFtZS10YWJsZQppbmRleCBlYTJiNzQzMzY0ODNiMDUw
NjM4NzEzZmQ1MTczYTZiMDliOGQ2MDcwLi44NDA0M2Q2Zjc3YzA5Yjk3OWRkYzJiYmI1OGUzNjI4
ZDE2N2NmYWZhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Ny
ZWF0ZS1odHRwLWhlYWRlci1uYW1lLXRhYmxlCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3JlYXRlLWh0dHAtaGVhZGVyLW5hbWUtdGFibGUKQEAgLTkwLDExICs5MCw4IEBA
IGdwZXJmX2ZpbGUud3JpdGUoJycnCiAKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+
CiAKLSNpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIK
LSNlbmRpZgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV3Vua25vd24tcHJhZ21h
cyIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XaW1wbGljaXQtZmFsbHRocm91
Z2giKQogCiAvLyBPbGRlciB2ZXJzaW9ucyBvZiBncGVyZiBsaWtlIHRvIHVzZSB0aGUgYHJlZ2lz
dGVyYCBrZXl3b3JkLgogI2RlZmluZSByZWdpc3RlcgpAQCAtMTc5LDcgKzE3Niw4IEBAIFN0cmlu
Z1ZpZXcgaHR0cEhlYWRlck5hbWVTdHJpbmcoSFRUUEhlYWRlck5hbWUgaGVhZGVyTmFtZSkKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2lmIGRlZmluZWQoX19jbGFuZ19fKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgi
LVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIpCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxf
RU5EKCItV3Vua25vd24tcHJhZ21hcyIpCiAjZW5kaWYKICcnJykKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwCmluZGV4IDQwMTNmMzdjZjdlMWQ3Zjc3
MjhkOGMwMDdmZmE2ODE3MjZkNWUwMWQuLjQwYWM2YzRjZDA0NjE4ZmNjMDk0M2YyMjJhMzcxODJh
M2VjODhhYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVu
Y29kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGlu
Zy5jcHAKQEAgLTY5LDEwICs2OSw3IEBAIFN0cmluZyBUZXh0RW5jb2Rpbmc6OmRlY29kZShjb25z
dCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBib29sIHN0b3BPbkVycm9yLCBiCiAgICAgcmV0
dXJuIG5ld1RleHRDb2RlYygqdGhpcyktPmRlY29kZShkYXRhLCBsZW5ndGgsIHRydWUsIHN0b3BP
bkVycm9yLCBzYXdFcnJvcik7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdfR0NDX09S
X0NMQU5HX1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAvLyBOT1RFOiBJ
Q1UncyB1bm9ybV9xdWlja0NoZWNrIGFuZCB1bm9ybV9ub3JtYWxpemUgZnVuY3Rpb25zIGFyZSBk
ZXByZWNhdGVkLgogCiBWZWN0b3I8dWludDhfdD4gVGV4dEVuY29kaW5nOjplbmNvZGUoU3RyaW5n
VmlldyB0ZXh0LCBVbmVuY29kYWJsZUhhbmRsaW5nIGhhbmRsaW5nKSBjb25zdApAQCAtMTEyLDkg
KzEwOSw3IEBAIFZlY3Rvcjx1aW50OF90PiBUZXh0RW5jb2Rpbmc6OmVuY29kZShTdHJpbmdWaWV3
IHRleHQsIFVuZW5jb2RhYmxlSGFuZGxpbmcgaGFuZGxpCiAgICAgcmV0dXJuIG5ld1RleHRDb2Rl
YygqdGhpcyktPmVuY29kZShTdHJpbmdWaWV3IHsgc291cmNlLCBzb3VyY2VMZW5ndGggfSwgaGFu
ZGxpbmcpOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlh
Z25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdfR0NDX09SX0NMQU5HX1RPUF9MRVZF
TF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiBjb25zdCBjaGFyKiBUZXh0RW5j
b2Rpbmc6OmRvbU5hbWUoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmgKaW5kZXggODQwMzUzMGU5OWQyMGI4ZDQ4
YmE5NDc3ZmYxNzlkZWY2ZDhlODkyOC4uNzg5N2Q3N2MxNzNmYzNhNDJiMjFhOWNhOTEwODIwYjY2
ZGM2N2UxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRD
UGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJS
VENQZWVyQ29ubmVjdGlvbi5oCkBAIC0yOCwxMyArMjgsMTIgQEAKIAogI2luY2x1ZGUgIkxpYldl
YlJUQ01hY3Jvcy5oIgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorSUdOT1JFX1dBUk5JTkdf
R0NDX1RPUF9MRVZFTCgiLVd1bnVzZWQtcGFyYW1ldGVyIikKIAogI2luY2x1ZGUgPHdlYnJ0Yy9h
cGkvbWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4KICNpbmNsdWRlIDx3ZWJydGMvYXBpL3BlZXJjb25u
ZWN0aW9uaW50ZXJmYWNlLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCitJR05PUkVf
V0FSTklOR19HQ0NfVE9QX0xFVkVMX0VORCgiLVd1bnVzZWQtcGFyYW1ldGVyIikKIAogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWFBhdGhHcmFtbWFyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIuY3Bw
CmluZGV4IDMxZGYxYzBkMTU4YTI3OGY0YzA5NmNiMmJhOTExZjNmN2IwMWI5NDMuLmY0MDU4MmUw
YzY3M2FmOTNjYmE4YWMwMjRjNzEyOTliZTVlMzUzYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YUGF0aEdyYW1tYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEdy
YW1tYXIuY3BwCkBAIC0yMTU0LDE1ICsyMTU0LDEwIEBAIHl5ZXJyb3JsYWI6CiAgIC8qIFBhY2lm
eSBjb21waWxlcnMgbGlrZSBHQ0Mgd2hlbiB0aGUgdXNlciBjb2RlIG5ldmVyIGludm9rZXMKICAg
ICAgWVlFUlJPUiBhbmQgdGhlIGxhYmVsIHl5ZXJyb3JsYWIgdGhlcmVmb3JlIG5ldmVyIGFwcGVh
cnMgaW4gdXNlcgogICAgICBjb2RlLiAgKi8KLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVd1bnJlYWNoYWJsZS1jb2RlIgotI2VuZGlmCisgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV3Vu
cmVhY2hhYmxlLWNvZGUiKTsKICAgaWYgKC8qQ09OU1RDT05EKi8gMCkKICAgICAgZ290byB5eWVy
cm9ybGFiOwotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAotI2VuZGlmCisgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVd1bnJlYWNoYWJsZS1jb2Rl
Iik7CiAKICAgLyogRG8gbm90IHJlY2xhaW0gdGhlIHN5bWJvbHMgb2YgdGhlIHJ1bGUgd2hpY2gg
YWN0aW9uIHRyaWdnZXJlZAogICAgICB0aGlzIFlZRVJST1IuICAqLwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
bW0KaW5kZXggZmMyMDljOGY3MTM5N2UxNzI4YzE1MjM3OTkzN2IyOGI5ZjRjMWQyZi4uMTQ4NTA0
NzU5NTQxNDBhNWYzZDJhODc4NGEwOGQ2ZjU3Mjk4YTZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1t
CkBAIC0xMzQsMTIgKzEzNCwxMSBAQCBOU0hUVFBDb29raWVTdG9yYWdlICpOZXR3b3JrRGF0YVRh
c2tDb2NvYTo6c3RhdGVsZXNzQ29va2llU3RvcmFnZSgpCiAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFJldGFpblB0cjxOU0hUVFBDb29raWVTdG9yYWdlPj4gc3RhdGVsZXNzQ29va2llU3RvcmFn
ZTsKICAgICBpZiAoIXN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UuZ2V0KCkpIHsKICNpZiAoUExBVEZP
Uk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMzAwKQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV25vbm51bGwiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV25vbm51bGwi
KTsKICNlbmRpZgogICAgICAgICBzdGF0ZWxlc3NDb29raWVTdG9yYWdlLmdldCgpID0gYWRvcHRO
UyhbW05TSFRUUENvb2tpZVN0b3JhZ2UgYWxsb2NdIF9pbml0V2l0aElkZW50aWZpZXI6bmlsIHBy
aXZhdGU6WUVTXSk7CiAjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA8IDEwMTMwMCkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV25vbm51bGwiKTsKICNlbmRpZgogICAgICAg
ICBzdGF0ZWxlc3NDb29raWVTdG9yYWdlLmdldCgpLmdldCgpLmNvb2tpZUFjY2VwdFBvbGljeSA9
IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQpp
bmRleCAwMDIzZmUxNjFiNTNlZjViYzNhNTM0NDM5YjY2MmU1OGNkYTBlNjVjLi5mMDJmNTUwNmI1
YTUwZWQwMWNlZDdmZjM1NGEyN2QzMTk5YjEwYzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCkBAIC0y
MjMsOCArMjIzLDcgQEAgc3RhdGljIHZvaWQgc2F2ZUNvb2tpZXMoTlNIVFRQQ29va2llU3RvcmFn
ZSAqY29va2llU3RvcmFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm8KIAogdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6cGxhdGZvcm1TeW5jQWxsQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRlcikgewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nl
c3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIAogI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9O
RV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApCiAgICAgUmVmUHRyPENhbGxiYWNr
QWdncmVnYXRvcj4gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVh
dGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGVyKSk7CkBAIC0yMzYsNyArMjM1LDcgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TeW5jQWxsQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGkKICAgICBjb21wbGV0aW9uSGFuZGVyKCk7CiAjZW5kaWYKIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpw
bGF0Zm9ybVByZXBhcmVUb1N1c3BlbmQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21h
Yy9QbHVnaW5Qcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9Q
bHVnaW5Qcm9jZXNzTWFjLm1tCmluZGV4IGMzMTIwYmI1OWEwYTU0YjY5ODcwOTJmYWY1NjkyZDQy
NDE1M2U2MTcuLmEzZDNhMTdiMTVjMTY0NzBlNDNlOTgyODg1ZjViZjhlYWMxOGRhYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMu
bW0KQEAgLTI2MCwxMyArMjYwLDEyIEBAIHN0YXRpYyB1bnNpZ25lZCBtb2RhbENvdW50OwogCiBz
dGF0aWMgdm9pZCBiZWdpbk1vZGFsKCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogICAgIC8vIE1ha2Ugc3VyZSB0byBtYWtlIG91cnNlbHZlcyB0aGUgZnJvbnQgcHJvY2Vz
cwogICAgIFByb2Nlc3NTZXJpYWxOdW1iZXIgcHNuOwogICAgIEdldEN1cnJlbnRQcm9jZXNzKCZw
c24pOwogICAgIFNldEZyb250UHJvY2VzcygmcHNuKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKIAogICAgIGlmICghbW9kYWxDb3VudCsrKQogICAgICAgICBzZXRNb2RhbCh0cnVl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJv
Y2Vzc1NoaW0ubW0gYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nl
c3NTaGltLm1tCmluZGV4IDQwMzZkM2I4NzQ0MDM2ODA3MmIyMGI3ODAyNjE3ZDE5ZTlkMWIwYTQu
LmZhODAzZTFmMGIwZjQzMzRhNjMzZDk3ZDYwZjc5YzljODU4NmM4YzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0KKysrIGIv
U291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hpbS5tbQpAQCAt
NDgsOCArNDgsNyBAQCBzdGF0aWMgUGx1Z2luUHJvY2Vzc1NoaW1DYWxsYmFja3MgcGx1Z2luUHJv
Y2Vzc1NoaW1DYWxsYmFja3M7CiAKICNpZm5kZWYgX19MUDY0X18KIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogc3RhdGljIHZvaWQgc2hpbURlYnVnZ2VyKHZvaWQp
CiB7CkBAIC0xMzMsNyArMTMyLDcgQEAgRFlMRF9JTlRFUlBPU0Uoc2hpbUhpZGVXaW5kb3csIEhp
ZGVXaW5kb3cpOwogRFlMRF9JTlRFUlBPU0Uoc2hpbUxTT3BlbkNGVVJMUmVmLCBMU09wZW5DRlVS
TFJlZik7CiBEWUxEX0lOVEVSUE9TRShzaGltTWFjaFZNTWFwLCBtYWNoX3ZtX21hcCk7CiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZF
TF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1v
ZHVsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBl
UGx1Z2luTW9kdWxlLmNwcAppbmRleCA2MGY0MWViZGZmNjFjODYzNzdjYWZmMTdjYWViNTZhOTQ0
NWVjNzc5Li41ZDdjMWMxODM1Y2ZiZDU5NzJjMGM0ZDljMGU4ODgxMzA1NGJjMGMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2lu
TW9kdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05l
dHNjYXBlUGx1Z2luTW9kdWxlLmNwcApAQCAtMjQyLDggKzI0Miw3IEBAIGJvb2wgTmV0c2NhcGVQ
bHVnaW5Nb2R1bGU6OnRyeUxvYWQoKQogI2lmIFBMVUdJTl9BUkNISVRFQ1RVUkUoTUFDKQogI2lm
bmRlZiBOUF9OT19DQVJCT04KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAK
ICAgICAvLyBQbHVnaW5zIChhdCBsZWFzdCBRVCkgcmVxdWlyZSB0aGF0IHlvdSBjYWxsIFVzZVJl
c0ZpbGUgb24gdGhlIHJlc291cmNlIGZpbGUgYmVmb3JlIGxvYWRpbmcgaXQuCiAgICAgUmVzRmls
ZVJlZk51bSBjdXJyZW50UmVzb3VyY2VGaWxlID0gQ3VyUmVzRmlsZSgpOwpAQCAtMjU4LDcgKzI1
Nyw3IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OnRyeUxvYWQoKQogICAgIC8vIFJlc3Rv
cmUgdGhlIHJlc291cmNlIGZpbGUuCiAgICAgVXNlUmVzRmlsZShjdXJyZW50UmVzb3VyY2VGaWxl
KTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2lvcy9DaGlsZFByb2Nlc3NJT1MubW0KaW5kZXggOWJkZDcyZjgzZjQz
MTNlNDYwYzVkY2UwYjM5ZWNkNWU1NTdiNzRjYS4uOWRjNWU0NjEyZTE4NjY0ZTgxYTgxMDJmODZk
ZjFhNDAyZDU5MDYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0NoaWxk
UHJvY2Vzc0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvQ2hpbGRQcm9jZXNz
SU9TLm1tCkBAIC04MCwxMCArODAsOSBAQCB2b2lkIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNh
bmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJgogICAgICAg
ICBpZiAoIXNhbmRib3hQcm9maWxlUGF0aC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIENTdHJp
bmcgcHJvZmlsZVBhdGggPSBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc2Fu
ZGJveFByb2ZpbGVQYXRoKTsKICAgICAgICAgICAgIGNoYXIqIGVycm9yQnVmOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAgIGlmIChzYW5kYm94
X2luaXRfd2l0aF9wYXJhbWV0ZXJzKHByb2ZpbGVQYXRoLmRhdGEoKSwgU0FOREJPWF9OQU1FRF9F
WFRFUk5BTCwgc2FuZGJveFBhcmFtZXRlcnMubmFtZWRQYXJhbWV0ZXJBcnJheSgpLCAmZXJyb3JC
dWYpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
ICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIlczogQ291bGRuJ3QgaW5pdGlhbGl6ZSBzYW5kYm94
IHByb2ZpbGUgWyVzXSwgZXJyb3IgJyVzJ1xuIiwgZ2V0cHJvZ25hbWUoKSwgcHJvZmlsZVBhdGgu
ZGF0YSgpLCBlcnJvckJ1Zik7CiAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNv
dW50ID0gc2FuZGJveFBhcmFtZXRlcnMuY291bnQoKTsgaSAhPSBjb3VudDsgKytpKQogICAgICAg
ICAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzPSVzXG4iLCBzYW5kYm94UGFyYW1ldGVycy5u
YW1lKGkpLCBzYW5kYm94UGFyYW1ldGVycy52YWx1ZShpKSk7CkBAIC05NSwxMCArOTQsOSBAQCB2
b2lkIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJgogICAgIH0KICAgICBjYXNlIFNhbmRib3hJbml0aWFsaXph
dGlvblBhcmFtZXRlcnM6OlVzZVNhbmRib3hQcm9maWxlOiB7CiAgICAgICAgIGNoYXIqIGVycm9y
QnVmOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBJR05PUkVf
V0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBpZiAo
c2FuZGJveF9pbml0X3dpdGhfcGFyYW1ldGVycyhzYW5kYm94UGFyYW1ldGVycy5zYW5kYm94UHJv
ZmlsZSgpLnV0ZjgoKS5kYXRhKCksIDAsIHNhbmRib3hQYXJhbWV0ZXJzLm5hbWVkUGFyYW1ldGVy
QXJyYXkoKSwgJmVycm9yQnVmKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzOiBDb3VsZG4ndCBpbml0aWFsaXpl
IHNhbmRib3ggcHJvZmlsZSwgZXJyb3IgJyVzJ1xuIiwgZ2V0cHJvZ25hbWUoKSwgZXJyb3JCdWYp
OwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gc2FuZGJveFBhcmFtZXRl
cnMuY291bnQoKTsgaSAhPSBjb3VudDsgKytpKQogICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5
cygiJXM9JXNcbiIsIHNhbmRib3hQYXJhbWV0ZXJzLm5hbWUoaSksIHNhbmRib3hQYXJhbWV0ZXJz
LnZhbHVlKGkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGlsZFBy
b2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1t
CmluZGV4IDA0Mzg3MjY5YmM3NGY5NzUxYTUyZGNiYmQyMDliZjhhZTczM2MzZWEuLjE4OGZhMmE4
N2U3OGJmYjc1M2JjMzIxZWRkYTk3NDBmNDgxOTNkMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQpAQCAtNTM0LDEwICs1MzQsOSBAQCBzdGF0aWMgYm9v
bCBjb21waWxlQW5kQXBwbHlTYW5kYm94U2xvd0Nhc2UoY29uc3QgU3RyaW5nJiBwcm9maWxlT3JQ
cm9maWxlUGF0aCwgYgogICAgIGNoYXIqIGVycm9yQnVmOwogICAgIENTdHJpbmcgdGVtcCA9IGlz
UHJvZmlsZVBhdGggPyBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocHJvZmls
ZU9yUHJvZmlsZVBhdGgpIDogcHJvZmlsZU9yUHJvZmlsZVBhdGgudXRmOCgpOwogICAgIHVpbnQ2
NF90IGZsYWdzID0gaXNQcm9maWxlUGF0aCA/IFNBTkRCT1hfTkFNRURfRVhURVJOQUwgOiAwOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NM
QU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaWYgKHNhbmRib3hfaW5pdF93
aXRoX3BhcmFtZXRlcnModGVtcC5kYXRhKCksIGZsYWdzLCBwYXJhbWV0ZXJzLm5hbWVkUGFyYW1l
dGVyQXJyYXkoKSwgJmVycm9yQnVmKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKICAgICAgICAgV1RGTG9nQWx3YXlzKCIlczogQ291bGQgbm90IGluaXRpYWxpemUgc2Fu
ZGJveCBwcm9maWxlIFslc10sIGVycm9yICclcydcbiIsIGdldHByb2duYW1lKCksIHRlbXAuZGF0
YSgpLCBlcnJvckJ1Zik7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9IHBhcmFt
ZXRlcnMuY291bnQoKTsgaSAhPSBjb3VudDsgKytpKQogICAgICAgICAgICAgV1RGTG9nQWx3YXlz
KCIlcz0lc1xuIiwgcGFyYW1ldGVycy5uYW1lKGkpLCBwYXJhbWV0ZXJzLnZhbHVlKGkpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5tbSBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5tbQppbmRleCA2NWYyYjVhNmQ3
ODM2MWY2YzQ1MDVkY2U5MTg1NjdhYzMxYWM4OGFjLi41NGZmMWExOGQ0YzBhODA5ZWZiYzMwZTY5
NzhmYjQ0MjdkYzc2ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ29s
b3JTcGFjZURhdGEubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NvbG9yU3BhY2VE
YXRhLm1tCkBAIC04MywxMCArODMsOSBAQCBib29sIENvbG9yU3BhY2VEYXRhOjpkZWNvZGUoSVBD
OjpEZWNvZGVyJiBkZWNvZGVyLCBDb2xvclNwYWNlRGF0YSYgY29sb3JTcGFjZURhdAogICAgICAg
ICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIGRhdGEpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIGNv
bG9yU3BhY2VEYXRhLmNnQ29sb3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlV2l0
aElDQ1Byb2ZpbGUoZGF0YS5nZXQoKSkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCmluZGV4IGI4ZTc0M2QyMzYwY2ZlZWZj
MTdiY2EyNGQ1OTcxMWNkZDU4YTViN2UuLjA1ZjhjZjA0MmI5NWYwMDdiNmZhZjMyMjhjZDE0NThh
MjUxOTVkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TYW5kYm94RXh0
ZW5zaW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5z
aW9uTWFjLm1tCkBAIC04NiwxMiArODYsMTEgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIHN3
aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRP
bmx5OgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAg
ICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9maWxlKEFQUF9TQU5EQk9YX1JFQUQs
IHBhdGgsIDApOwogICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRXcml0
ZToKICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9maWxlKEFQUF9T
QU5EQk9YX1JFQURfV1JJVEUsIHBhdGgsIDApOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgICAgIGNhc2UgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6R2VuZXJp
YzoKICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9nZW5lcmljKHBh
dGgsIDApOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQppbmRleCA2OWVlM2QzOTZmOGMyNjQ1ZDU0ODQwYTUzNWZlOWViYzJjNWEz
ZmE3Li5lZGZjMmQxOWRlZWQ5MDc2MDk2NmIwOWQ1ZmI0MjJlNDhlYzU4NDJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTM5OTIsMTAg
KzM5OTIsOSBAQCBXRUJDT1JFX0NPTU1BTkQoeWFua0FuZFNlbGVjdCkKIAogLSAoaWQpX3dlYl9z
dXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTooTlNTdHJpbmcgKilhdHRyaWJ1dGUKIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19D
TEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIHJldHVybiBbc3VwZXIgYWNj
ZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOmF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiB9CiAKIC0gKHZvaWQpX3dlYl9zdXBlckRvQ29tbWFuZEJ5U2VsZWN0b3I6
KFNFTClzZWxlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQppbmRleCA4NDc4ZGIyY2UzYzY3ZWU1
MDc3ZWM1MGIwZTUwNDFiZTk0YWVmNTkyLi41YTEyZjFiZmM2ZGNhM2YzYTk2YzFlY2E1ZjVlMmYw
YmJjZWQwMGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQpAQCAtNTAwLDggKzUwMCw3IEBAIHN0
YXRpYyBOU1N0cmluZyAqZGVmYXVsdEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCgpCiAgICAg
cmV0dXJuIGhhbmRsZXIgPyBzdGF0aWNfY2FzdDxXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJD
b2NvYSo+KGhhbmRsZXIuZ2V0KCkpLT5hcGlIYW5kbGVyKCkgOiBuaWw7CiB9CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZF
TCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKIC0gKF9XS1dlYnNpdGVEYXRhU3RvcmUg
Kilfd2Vic2l0ZURhdGFTdG9yZQogewpAQCAtNTEzLDcgKzUxMiw3IEBAIHN0YXRpYyBOU1N0cmlu
ZyAqZGVmYXVsdEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCgpCiAgICAgc2VsZi53ZWJzaXRl
RGF0YVN0b3JlID0gd2Vic2l0ZURhdGFTdG9yZSA/IHdlYnNpdGVEYXRhU3RvcmUtPl9kYXRhU3Rv
cmUuZ2V0KCkgOiBudWxscHRyOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJ
R05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIikKIAogI2lmIFBMQVRGT1JNKElPUykKIC0gKFdLV2ViVmlld0NvbnRlbnRQcm92aWRlclJl
Z2lzdHJ5ICopX2NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGQ1
NjIxYjAwNGU1ZDA3NzI4MWZkNTBmOTQ5YmZmYTJiY2UzZTc4MjQuLmU0YmZjOTExODQ1MGRlZjEx
OTQyNGZiNDQzMWFlYzBmZjc3ZmI1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC00MCw4ICs0MCw3
IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVR5cGVzKSB7
CiAgICAgX1dLV2Vic2l0ZURhdGFUeXBlV2ViU1FMRGF0YWJhc2VzID0gMSA8PCA1LAogfTsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
VE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogQGltcGxlbWVudGF0aW9u
IF9XS1dlYnNpdGVEYXRhU3RvcmUKIApAQCAtMTA3LDYgKzEwNiw2IEBAIHN0YXRpYyBSZXRhaW5Q
dHI8TlNTZXQ+IHRvV0tXZWJzaXRlRGF0YVR5cGVzKF9XS1dlYnNpdGVEYXRhVHlwZXMgd2Vic2l0
ZURhdGFUeXBlCiAKIEBlbmQKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJWaWV3LmNwcAppbmRleCA3YmZhODQyYTQ5YmQyMTQ3NTYwYWEyNjRjMGU4NzE4MzYyMmY5
NDU2Li42ZTBhZjI2NGQ4MDE3NTZjMDU0Yzg3YzcwYTE1YzAxNTkwOGZmZGQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcApAQCAt
MjA4Miw4ICsyMDgyLDcgQEAgdm9pZCB3ZWJraXRXZWJWaWV3UnVuQXNNb2RhbChXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3KQogCiAjaWYgUExBVEZPUk0oR1RLKQogLy8gVGhpcyBpcyB0byBzdXBwcmVz
cyB3YXJuaW5ncyBhYm91dCBnZGtfdGhyZWFkc19sZWF2ZSBhbmQgZ2RrX3RocmVhZHNfZW50ZXIu
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19HQ0Mo
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBnZGtfdGhyZWFkc19sZWF2ZSgpOwog
I2VuZGlmCiAKQEAgLTIwOTEsNyArMjA5MCw3IEBAIHZvaWQgd2Via2l0V2ViVmlld1J1bkFzTW9k
YWwoV2ViS2l0V2ViVmlldyogd2ViVmlldykKIAogI2lmIFBMQVRGT1JNKEdUSykKICAgICBnZGtf
dGhyZWFkc19lbnRlcigpOwotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVf
V0FSTklOR19HQ0NfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAjZW5kaWYKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBiYzVkZTJi
NTlmMmY0YzIxYWU1NGI2MGEzNDMzZGM4NGRhMmQ1MGU0Li5mMDI3NTNlOGI2OGZhZDUxMWI4NjMw
OGUzNDFkNzExOTM0ZjVkMjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dL
Vmlldy5tbQpAQCAtOTc4LDEwICs5NzgsOSBAQCBTb21lIG90aGVyIGVkaXRpbmctcmVsYXRlZCBt
ZXRob2RzIHN0aWxsIHVuaW1wbGVtZW50ZWQ6CiAKIC0gKGlkKV93ZWJfc3VwZXJBY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6KE5TU3RyaW5nICopYXR0cmlidXRlCiB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICByZXR1cm4gW3N1cGVyIGFjY2Vzc2liaWxpdHlBdHRy
aWJ1dGVWYWx1ZTphdHRyaWJ1dGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
fQogCiAtICh2b2lkKV93ZWJfc3VwZXJEb0NvbW1hbmRCeVNlbGVjdG9yOihTRUwpc2VsZWN0b3IK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0Rvd25sb2FkQ2xpZW50
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRG93bmxvYWRDbGllbnQubW0KaW5k
ZXggMGViMWNmNjQwMzI4Njg2MWFhNDI3NGRmYzc0NDg0M2YwYmQwMGE2YS4uOGY4ZmE0NGUxM2Ni
ZTE1ZDQ0MzRlNmI1YzExMzE5NGI1YTRlMzcwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvRG93bmxvYWRDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvRG93bmxvYWRDbGllbnQubW0KQEAgLTIwMiwxMCArMjAyLDkgQEAgdm9pZCBE
b3dubG9hZENsaWVudDo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoV2Vi
UHJvY2Vzc1Bvb2wmLCBEb3cKIAogICAgIGlmIChtX2RlbGVnYXRlTWV0aG9kcy5kb3dubG9hZERl
Y2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lQWxsb3dPdmVyd3JpdGUpIHsKICAg
ICAgICAgQk9PTCBhbGxvd092ZXJ3cml0ZSA9IE5POwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgICAgICBOU1N0cmluZyAqZGVzdGluYXRpb24gPSBbbV9kZWxlZ2F0
ZSBfZG93bmxvYWQ6d3JhcHBlcihkb3dubG9hZFByb3h5KSBkZWNpZGVEZXN0aW5hdGlvbldpdGhT
dWdnZXN0ZWRGaWxlbmFtZTpmaWxlbmFtZSBhbGxvd092ZXJ3cml0ZTomYWxsb3dPdmVyd3JpdGVd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoYWxsb3dPdmVyd3JpdGUgPyBBbGxvd092ZXJ3cml0ZTo6WWVzIDogQWxsb3dPdmVy
d3JpdGU6Ok5vLCBkZXN0aW5hdGlvbik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgW21fZGVsZWdh
dGUgX2Rvd25sb2FkOndyYXBwZXIoZG93bmxvYWRQcm94eSkgZGVjaWRlRGVzdGluYXRpb25XaXRo
U3VnZ2VzdGVkRmlsZW5hbWU6ZmlsZW5hbWUgY29tcGxldGlvbkhhbmRsZXI6QmxvY2tQdHI8dm9p
ZChCT09MLCBOU1N0cmluZyAqKT46OmZyb21DYWxsYWJsZShbY2hlY2tlciA9IENvbXBsZXRpb25I
YW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShtX2RlbGVnYXRlLmdldCgpLmdldCgpLCBAc2VsZWN0
b3IoX2Rvd25sb2FkOmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lOmNvbXBs
ZXRpb25IYW5kbGVyOikpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSAoQk9PTCBhbGxvd092ZXJ3cml0ZSwgTlNTdHJpbmcgKmRlc3RpbmF0aW9uKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90
b2NvbE1hbmFnZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9MZWdh
Y3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0KaW5kZXggMTFiYTM3MjY1NDgzZmZlN2Zm
MjQ2NTA5NDBkOGYzM2E1MmMwYzA0YS4uYjRkY2NmMTE2Njc2OTYxZGRlMTlmYWM4NTk5OTAzYmZj
YWY3MTRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTGVnYWN5
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5tbQpAQCAtNTksMTIg
KzU5LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgX2N1c3RvbVByb3RvY29sTWFu
YWdlclByb3h5ID0gY3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHk7CiAgICAgX2N1c3RvbVByb3Rv
Y29sSUQgPSBjdXN0b21Qcm90b2NvbElEOwogICAgIF9zdG9yYWdlUG9saWN5ID0gTlNVUkxDYWNo
ZVN0b3JhZ2VOb3RBbGxvd2VkOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgX3VybENvbm5lY3Rpb24gPSBbW05TVVJMQ29ubmVjdGlvbiBhbGxvY10gaW5pdFdpdGhSZXF1
ZXN0OnJlcXVlc3QgZGVsZWdhdGU6c2VsZiBzdGFydEltbWVkaWF0ZWx5Ok5PXTsKICAgICBbX3Vy
bENvbm5lY3Rpb24gc2NoZWR1bGVJblJ1bkxvb3A6W05TUnVuTG9vcCBtYWluUnVuTG9vcF0gZm9y
TW9kZTpOU1J1bkxvb3BDb21tb25Nb2Rlc107CiAgICAgW191cmxDb25uZWN0aW9uIHN0YXJ0XTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19F
TkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRl
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCmlu
ZGV4IDg0ODdlNmUzMDVmYzY0OTAwYmQzMWE3MTg2ZWNjNmMwMmIzM2RkYzcuLjQxZTQ5ODE4NTM3
MjBiODUyMDdmOGQ2ODQ3MDYxMTVlM2VkZTIwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KQEAgLTU3NSwxMCArNTc1LDkgQEAgdm9p
ZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oV2ViUGFnZVAKICAgICAgICAgaWYgKG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2
aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvblVzZXJJbmZvRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzKQogICAgICAgICAgICAg
WyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9uRGVsZWdhdGUgX3dl
YlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb246d3JhcHBlcihuYXZpZ2F0aW9uQWN0aW9uKSB1c2VySW5mbzp1c2VySW5mbyA/IHN0
YXRpY19jYXN0PGlkIDxOU1NlY3VyZUNvZGluZz4+KHVzZXJJbmZvLT53cmFwcGVyKCkpIDogbmls
IGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogICAgICAgICBlbHNlIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgICAgICBb
KGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+KW5hdmlnYXRpb25EZWxlZ2F0ZSBfd2Vi
VmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbjp3cmFwcGVyKG5hdmlnYXRpb25BY3Rpb24pIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lv
bkhhbmRsZXIuZ2V0KCldOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlcldp
dGhvdXRQb2xpY2llcyA9IFtkZWNpc2lvbkhhbmRsZXJXaXRoUG9saWNpZXMgPSBXVEZNb3ZlKGRl
Y2lzaW9uSGFuZGxlcldpdGhQb2xpY2llcyldIChXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgYWN0
aW9uUG9saWN5KSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tCmluZGV4IGYwYjlkMzAwMGE5ZTY1NDVhZGIwYjEyNDUzMWY1NzBlNDgyMjU5YjQu
LmFhM2I5NDk0MWU2OTk1NWViMDM0OWQzNGY4YTE4OTZjYzM1NTkyYTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMjAzLDEzICsyMDMsMTIgQEAg
dm9pZCBVSURlbGVnYXRlOjpDb250ZXh0TWVudUNsaWVudDo6bWVudUZyb21Qcm9wb3NlZE1lbnUo
V2ViUGFnZVByb3h5JiwgTlNNZW51ICoKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFO
RygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGlmIChtX3VpRGVsZWdhdGUubV9k
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NvbnRleHRNZW51Rm9yRWxlbWVudCkKICAgICAgICAgcmV0
dXJuIGNvbXBsZXRpb25IYW5kbGVyKFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRl
IF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgY29udGV4dE1lbnU6bWVudSBmb3JFbGVt
ZW50OmNvbnRleHRNZW51RWxlbWVudEluZm8uZ2V0KCldKTsKIAogICAgIGNvbXBsZXRpb25IYW5k
bGVyKFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxl
Z2F0ZS5tX3dlYlZpZXcgY29udGV4dE1lbnU6bWVudSBmb3JFbGVtZW50OmNvbnRleHRNZW51RWxl
bWVudEluZm8uZ2V0KCkgdXNlckluZm86dXNlckluZm8gPyBzdGF0aWNfY2FzdDxpZCA8TlNTZWN1
cmVDb2Rpbmc+Pih1c2VySW5mby0+d3JhcHBlcigpKSA6IG5pbF0pOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IGQxNmY1ODUyZGRmODRh
NGQ1OTJiOWYzM2U3OGViMzJkYTkyMGIxMDMuLjE5ZWY4YWVhYjgzYWIzOWMyYTZmMWJlMDE4MjY4
MDEzMDNlYzkyYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtMTY2LDExICsxNjYsMTAgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cGxhdGZvcm1SZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygpCiB2b2lk
IFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2
aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQ29tbXVuaWNhdGVXaXRoV2luZG93U2VydmVyKSk7
CiAgICAgcGFyYW1ldGVycy5hY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxl
ZCA9IFtbTlNBcHAgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhFbmhhbmNlZFVzZXJJ
bnRlcmZhY2UiXSBib29sVmFsdWVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
I2Vsc2UKICAgICBwYXJhbWV0ZXJzLmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VF
bmFibGVkID0gZmFsc2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0KaW5kZXggNTAyODcwMGUyZmI0NThlNzYxOGM2NTI3YjNjNzNhM2NkNmZm
NTA2ZC4uM2EwNTIwZGM4NzIxOGJiOGRhZDdmMWEyY2VkMTdiNjU3YmQ2Y2ExYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTU1NiwxNSArNTU2
LDE0IEBAIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIG9yZGVyZWRMaXN0U2VnbWVudCA9IDI7CiAg
ICAgW2luc2VydExpc3RDb250cm9sIHNldFdpZHRoOmxpc3RDb250cm9sU2VnbWVudFdpZHRoIGZv
clNlZ21lbnQ6b3JkZXJlZExpc3RTZWdtZW50XTsKICAgICBpbnNlcnRMaXN0Q29udHJvbC5mb250
ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOjE1XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgaWQgc2VnbWVudEVsZW1lbnQgPSBOU0FjY2Vzc2liaWxpdHlVbmln
bm9yZWREZXNjZW5kYW50KGluc2VydExpc3RDb250cm9sKTsKICAgICBOU0FycmF5ICpzZWdtZW50
cyA9IFtzZWdtZW50RWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3Np
YmlsaXR5Q2hpbGRyZW5BdHRyaWJ1dGVdOwogICAgIEFTU0VSVChzZWdtZW50cy5jb3VudCA9PSAz
KTsKICAgICBbc2VnbWVudHNbbm9MaXN0U2VnbWVudF0gYWNjZXNzaWJpbGl0eVNldE92ZXJyaWRl
VmFsdWU6V2ViQ29yZTo6aW5zZXJ0TGlzdFR5cGVOb25lKCkgZm9yQXR0cmlidXRlOk5TQWNjZXNz
aWJpbGl0eURlc2NyaXB0aW9uQXR0cmlidXRlXTsKICAgICBbc2VnbWVudHNbdW5vcmRlcmVkTGlz
dFNlZ21lbnRdIGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVlOldlYkNvcmU6Omluc2VydExp
c3RUeXBlQnVsbGV0ZWRBY2Nlc3NpYmlsaXR5VGl0bGUoKSBmb3JBdHRyaWJ1dGU6TlNBY2Nlc3Np
YmlsaXR5RGVzY3JpcHRpb25BdHRyaWJ1dGVdOwogICAgIFtzZWdtZW50c1tvcmRlcmVkTGlzdFNl
Z21lbnRdIGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVlOldlYkNvcmU6Omluc2VydExpc3RU
eXBlTnVtYmVyZWRBY2Nlc3NpYmlsaXR5VGl0bGUoKSBmb3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmls
aXR5RGVzY3JpcHRpb25BdHRyaWJ1dGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogCiAgICAgc2VsZi52aWV3ID0gaW5zZXJ0TGlzdENvbnRyb2w7CiAKQEAgLTE2MzgsMTEgKzE2
MzcsMTAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcygpCiAg
ICAgICAgIGlmICh3ZWFrVGhpcy0+bV9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMp
CiAgICAgICAgICAgICB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzID0gW3dlYWtUaGlzLT5t
X3ZpZXcgY29udmVydFJlY3Q6W3dlYWtUaGlzLT5tX3ZpZXcgZnJhbWVdIHRvVmlldzpuaWxdOwog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBJR05PUkVf
V0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBpZiAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAg
ICAgIGFjY2Vzc2liaWxpdHlQb3NpdGlvbiA9IFtbd2Vha1RoaXMtPm1fdmlldyBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5UG9zaXRpb25BdHRyaWJ1dGVdIHBvaW50
VmFsdWVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAg
IAogICAgICAgICB3ZWFrVGhpcy0+bV9wYWdlLT53aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZCh2
aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBhY2Nlc3NpYmlsaXR5UG9zaXRpb24pOwogICAg
IH0pOwpAQCAtMzcxNywxMCArMzcxNSw5IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRyYWdnZWRJbWFn
ZShOU0ltYWdlICosIENHUG9pbnQgZW5kUG9pbnQsIE5TRHJhZ09wZXJhdGlvbiBvcGVyCiAKIHZv
aWQgV2ViVmlld0ltcGw6OnNlbmREcmFnRW5kVG9QYWdlKENHUG9pbnQgZW5kUG9pbnQsIE5TRHJh
Z09wZXJhdGlvbiBvcGVyYXRpb24pCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICBOU1BvaW50IHdpbmRvd0ltYWdlTG9jID0gW1ttX3ZpZXcgd2luZG93XSBjb252ZXJ0
U2NyZWVuVG9CYXNlOk5TUG9pbnRGcm9tQ0dQb2ludChlbmRQb2ludCldOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5TUG9pbnQgd2luZG93TW91c2VMb2MgPSB3aW5kb3dJ
bWFnZUxvYzsKIAogICAgIC8vIFByZXZlbnQgcXVldWVkIG1vdXNlRHJhZ2dlZCBldmVudHMgZnJv
bSBjb21pbmcgYWZ0ZXIgdGhlIGRyYWcgYW5kIGZha2UgbW91c2VVcCBldmVudC4KQEAgLTM5OTgs
MTAgKzM5OTUsOSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzdGFydERyYWcoY29uc3QgV2ViQ29yZTo6
RHJhZ0l0ZW0mIGl0ZW0sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcAogICAgIC8vIFRoZSBjYWxsIGJl
bG93IGNvdWxkIHJlbGVhc2UgdGhlIHZpZXcuCiAgICAgYXV0byBwcm90ZWN0b3IgPSBtX3ZpZXcu
Z2V0KCk7CiAgICAgYXV0byBjbGllbnREcmFnTG9jYXRpb24gPSBpdGVtLmRyYWdMb2NhdGlvbklu
V2luZG93Q29vcmRpbmF0ZXM7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAg
ICBOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQgPSBbTlNQYXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRo
TmFtZTpOU0RyYWdQYm9hcmRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAg
ICAgaWYgKGF1dG8mIGluZm8gPSBpdGVtLnByb21pc2VkQXR0YWNobWVudEluZm8pIHsKICAgICAg
ICAgTlNTdHJpbmcgKnV0aVR5cGUgPSBpbmZvLmNvbnRlbnRUeXBlOwpAQCAtNDAzMCwxMCArNDAy
Niw5IEBAIHZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0RHJhZyhjb25zdCBXZWJDb3JlOjpEcmFnSXRl
bSYgaXRlbSwgY29uc3QgU2hhcmVhYmxlQml0bWFwCiAgICAgfQogCiAgICAgW3Bhc3RlYm9hcmQg
c2V0U3RyaW5nOkAiIiBmb3JUeXBlOlBhc3RlYm9hcmRUeXBlczo6V2ViRHVtbXlQYm9hcmRUeXBl
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklO
R19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFttX3ZpZXcgZHJhZ0lt
YWdlOmRyYWdOU0ltYWdlLmdldCgpIGF0Ok5TUG9pbnRGcm9tQ0dQb2ludChjbGllbnREcmFnTG9j
YXRpb24pIG9mZnNldDpOU1plcm9TaXplIGV2ZW50Om1fbGFzdE1vdXNlRG93bkV2ZW50LmdldCgp
IHBhc3RlYm9hcmQ6cGFzdGVib2FyZCBzb3VyY2U6bV92aWV3LmdldEF1dG9yZWxlYXNlZCgpIHNs
aWRlQmFjazpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIG1fcGFn
ZS0+ZGlkU3RhcnREcmFnKCk7CiB9CiAKQEAgLTQ3NzksMTEgKzQ3NzQsMTAgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6Y2hhcmFjdGVySW5kZXhGb3JQb2ludChOU1BvaW50IHBvaW50LCB2b2lkKF5jb21w
bGV0aW9uSGFuZGxlclAKIAogICAgIE5TV2luZG93ICp3aW5kb3cgPSBbbV92aWV3IHdpbmRvd107
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklO
R19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGlmICh3aW5kb3cpCiAg
ICAgICAgIHBvaW50ID0gW3dpbmRvdyBjb252ZXJ0U2NyZWVuVG9CYXNlOnBvaW50XTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBwb2ludCA9IFttX3ZpZXcgY29udmVydFBv
aW50OnBvaW50IGZyb21WaWV3Om5pbF07ICAvLyB0aGUgcG9pbnQgaXMgcmVsYXRpdmUgdG8gdGhl
IG1haW4gZnJhbWUKIAogICAgIG1fcGFnZS0+Y2hhcmFjdGVySW5kZXhGb3JQb2ludEFzeW5jKFdl
YkNvcmU6OkludFBvaW50KHBvaW50KSwgW2NvbXBsZXRpb25IYW5kbGVyXSh1aW50NjRfdCByZXN1
bHQsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5
TWFjLm1tCmluZGV4IGQ0MzVlMWYzNDBjYmUyNGM3ZWRhOWI3NGEyNzJiMjRmZGQzMTNkZGQuLmIy
NjVhMjE4NjJiZGE2N2I1NTU5NmI0MGY0NmY0ZjY0Mzg4NzJmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJv
eHlNYWMubW0KQEAgLTk0LDEwICs5NCw5IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpwbGF0
Zm9ybUluaXRpYWxpemVQbHVnaW5Qcm9jZXNzKFBsdWdpblByb2Nlc3NDcmVhdGlvblBhCiBib29s
IFBsdWdpblByb2Nlc3NQcm94eTo6Z2V0UGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJlcihQcm9jZXNz
U2VyaWFsTnVtYmVyJiBwbHVnaW5Qcm9jZXNzU2VyaWFsTnVtYmVyKQogewogICAgIHBpZF90IHBs
dWdpblByb2Nlc3NQSUQgPSBwcm9jZXNzSWRlbnRpZmllcigpOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgcmV0dXJuIEdldFByb2Nlc3NGb3JQSUQocGx1Z2luUHJvY2Vz
c1BJRCwgJnBsdWdpblByb2Nlc3NTZXJpYWxOdW1iZXIpID09IG5vRXJyOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogfQogCiB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6bWFrZVBs
dWdpblByb2Nlc3NUaGVGcm9udFByb2Nlc3MoKQpAQCAtMTA2LDIwICsxMDUsMTggQEAgdm9pZCBQ
bHVnaW5Qcm9jZXNzUHJveHk6Om1ha2VQbHVnaW5Qcm9jZXNzVGhlRnJvbnRQcm9jZXNzKCkKICAg
ICBpZiAoIWdldFBsdWdpblByb2Nlc3NTZXJpYWxOdW1iZXIocGx1Z2luUHJvY2Vzc1NlcmlhbE51
bWJlcikpCiAgICAgICAgIHJldHVybjsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgU2V0RnJvbnRQcm9jZXNzKCZwbHVnaW5Qcm9jZXNzU2VyaWFsTnVtYmVyKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQo
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogdm9pZCBQbHVnaW5Qcm9jZXNzUHJv
eHk6Om1ha2VVSVByb2Nlc3NUaGVGcm9udFByb2Nlc3MoKQogewogICAgIFByb2Nlc3NTZXJpYWxO
dW1iZXIgcHJvY2Vzc1NlcmlhbE51bWJlcjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogICAgIEdldEN1cnJlbnRQcm9jZXNzKCZwcm9jZXNzU2VyaWFsTnVtYmVyKTsKICAgICBT
ZXRGcm9udFByb2Nlc3MoJnByb2Nlc3NTZXJpYWxOdW1iZXIpOyAgICAgICAgICAgIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQogCiB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6
c2V0RnVsbHNjcmVlbldpbmRvd0lzU2hvd2luZyhib29sIGZ1bGxzY3JlZW5XaW5kb3dJc1Nob3dp
bmcpCkBAIC0xNTIsMTAgKzE0OSw5IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpleGl0RnVs
bHNjcmVlbigpCiB7CiAgICAgLy8gSWYgdGhlIHBsdWctaW4gaG9zdCBpcyB0aGUgY3VycmVudCBh
cHBsaWNhdGlvbiB0aGVuIHdlIHNob3VsZCBicmluZyBvdXJzZWx2ZXMgdG8gdGhlIGZyb250IHdo
ZW4gaXQgZXhpdHMgZnVsbC1zY3JlZW4gbW9kZS4KICAgICBQcm9jZXNzU2VyaWFsTnVtYmVyIGZy
b250UHJvY2Vzc1NlcmlhbE51bWJlcjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogICAgIEdldEZyb250UHJvY2VzcygmZnJvbnRQcm9jZXNzU2VyaWFsTnVtYmVyKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIC8vIFRoZSBVSSBwcm9jZXNzIG11c3Qg
YmUgdGhlIGZyb250IHByb2Nlc3MgaW4gb3JkZXIgdG8gY2hhbmdlIHRoZSBwcmVzZW50YXRpb24g
bW9kZS4KICAgICBtYWtlVUlQcm9jZXNzVGhlRnJvbnRQcm9jZXNzKCk7CkBAIC0xNjgsMTUgKzE2
NCwxMyBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZXhpdEZ1bGxzY3JlZW4oKQogICAgIC8v
IElmIHRoZSBwbHVnLWluIHByb2Nlc3Mgd2FzIG5vdCB0aGUgZnJvbnQgcHJvY2Vzcywgc3dpdGNo
IGJhY2sgdG8gdGhlIHByZXZpb3VzIGZyb250IHByb2Nlc3MuCiAgICAgLy8gKE90aGVyd2lzZSB3
ZSdsbCBrZWVwIHRoZSBVSSBwcm9jZXNzIGFzIHRoZSBmcm9udCBwcm9jZXNzKS4KICAgICBCb29s
ZWFuIGlzUGx1Z2luUHJvY2Vzc0Zyb250UHJvY2VzczsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogICAgIFNhbWVQcm9jZXNzKCZmcm9udFByb2Nlc3NTZXJpYWxOdW1iZXIsICZw
bHVnaW5Qcm9jZXNzU2VyaWFsTnVtYmVyLCAmaXNQbHVnaW5Qcm9jZXNzRnJvbnRQcm9jZXNzKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19F
TkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBpZiAoIWlzUGx1Z2luUHJvY2Vz
c0Zyb250UHJvY2VzcykgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
ICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgICAgICBTZXRGcm9udFByb2Nlc3MoJmZyb250UHJvY2Vzc1NlcmlhbE51bWJlcik7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VO
RCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJv
bGxlci5tbQppbmRleCBiMzYyZDU3YjljNDNhODVmMzY2ZTMzYjZhN2Q0OTI5OWY2YTlkNGYzLi4w
YThlYjJmOWFlNzQ0ODhlNDgyMjRmNTJmYjI0NWI4YzA0NGJiOTgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJv
bGxlci5tbQpAQCAtMzcsMTIgKzM3LDExIEBACiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNp
bXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiKQogCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIikKIAogc3RhdGljIGNvbnN0IGZsb2F0IHNtYXJ0TWFnbmlmaWNhdGlv
blBhblNjcm9sbFRocmVzaG9sZFpvb21lZE91dCA9IDYwOwogc3RhdGljIGNvbnN0IGZsb2F0IHNt
YXJ0TWFnbmlmaWNhdGlvblBhblNjcm9sbFRocmVzaG9sZElQaG9uZSA9IDEwMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9T
Lm1tCmluZGV4IDg4ZDkzOTc3MTMwMGZjMDlhYzUxODZhZGYxMzEzMDI4NDEwN2QwMTQuLmM5Y2Qw
MzhhNGMwMDQ4MDUyOTc5ZmUzN2Q5ZDRlNzcyYjg3MjBiMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQpAQCAt
NTMsOCArNTMsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dlYkdlb2xvY2F0aW9uQ29yZUxvY2F0aW9u
UHJvdmlkZXIuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJBbGxvd0RlbnlQb2xpY3lMaXN0ZW5lci5o
PgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19D
TEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiBAaW50ZXJmYWNl
IFdLR2VvbG9jYXRpb25Qcm92aWRlcklPUyAoX1dLR2VvbG9jYXRpb25Db3JlTG9jYXRpb25MaXN0
ZW5lcikgPF9XS0dlb2xvY2F0aW9uQ29yZUxvY2F0aW9uTGlzdGVuZXI+CiBAZW5kCkBAIC0zNTQs
NiArMzUzLDYgQEAgc3RhdGljIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KFdLR2VvbG9jYXRp
b25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgYm8KIH0KIEBlbmQKIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tMZWdhY3lQREZWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTGVnYWN5UERGVmlldy5tbQppbmRleCAw
YjVkOWQ2YzY0NmI0MjgyYzBmY2I3M2UxY2JmZDBjYTM0ZjM1YWE2Li40MzczYzAzMWMyODVmZmU4
YzQ5NTA2NWUxOGYwODFkZDFjODc5NjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tMZWdhY3lQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0xlZ2FjeVBERlZpZXcubW0KQEAgLTUxLDggKzUxLDcgQEAKIAogLy8gQWxsIG9mIFVJ
UERGUGFnZSogYXJlIGRlcHJlY2F0ZWQsIHNvIGp1c3QgaWdub3JlIGRlcHJlY2F0ZWQgZGVjbGFy
YXRpb25zCiAvLyBpbiB0aGlzIGZpbGUgdW50aWwgd2Ugc3dpdGNoIG9mZiB0aGVtLgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xF
VkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogY29uc3QgQ0dGbG9hdCBwZGZQYWdl
TWFyZ2luID0gODsKIGNvbnN0IENHRmxvYXQgcGRmTWluaW11bVpvb21TY2FsZSA9IDE7CkBAIC04
NTcsNiArODU2LDYgQEAgc3RhdGljIE5TU3RyaW5nQ29tcGFyZU9wdGlvbnMgc3RyaW5nQ29tcGFy
ZU9wdGlvbnMoX1dLRmluZE9wdGlvbnMgb3B0aW9ucykKIAogI2VuZGlmIC8vICFQTEFURk9STShJ
T1NNQUMpCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NM
QU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFdLTEVHQUNZUERGVklFVykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLm1tCmluZGV4IDk3OWIzMGQzODE0
YjEzMDZjMGFhYjE5NTZlYzM3YTNkYTY2MDYzOGIuLjYwYjkzNDUyNTQ4ZmI1ZTJkN2Q2YTgzNzQ3
Y2FkY2E2N2JhNGU1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S1BERlBhZ2VOdW1iZXJJbmRpY2F0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLUERGUGFnZU51bWJlckluZGljYXRvci5tbQpAQCAtMTgzLDEwICsxODMsOSBAQCBjb25z
dCBOU1RpbWVJbnRlcnZhbCBpbmRpY2F0b3JNb3ZlRHVyYXRpb24gPSAwLjM7CiAgICAgQ0dDb250
ZXh0U2F2ZUdTdGF0ZShjb250ZXh0KTsKICAgICBDR0NvbnRleHRBZGRSZWN0KGNvbnRleHQsIGNv
cm5lckltYWdlQm91bmRzKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgVUlCZXppZXJQYXRoICpjb3JuZXJQYXRoID0gW1VJQmV6aWVyUGF0aCBiZXppZXJQYXRoV2l0
aFJvdW5kZWRSZWN0OmNvcm5lckltYWdlQm91bmRzIGJ5Um91bmRpbmdDb3JuZXJzOihVSVJlY3RD
b3JuZXIpVUlBbGxDb3JuZXJzIGNvcm5lclJhZGlpOkNHU2l6ZU1ha2UoaW5kaWNhdG9yQ29ybmVy
UmFkaXVzLCBpbmRpY2F0b3JDb3JuZXJSYWRpdXMpXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICBDR0NvbnRleHRBZGRQYXRoKGNvbnRleHQsIFtjb3JuZXJQYXRoIENHUGF0
aF0pOwogICAgIENHQ29udGV4dEVPQ2xpcChjb250ZXh0KTsKICAgICBDR0NvbnRleHRGaWxsUmVj
dChjb250ZXh0LCBjb3JuZXJJbWFnZUJvdW5kcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tBaXJQbGF5Um91dGVQaWNrZXIubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tBaXJQbGF5Um91dGVQaWNrZXIubW0KaW5kZXggNzRi
ZDIzMmQ2MjJlZTgxZTA3YmY0NDllMzA4N2EyNTk3ZmM3MjhmYy4uZjJhMDMxNjA1ZTA5MzM4ZTRh
YzUwZWI4MDRkZTkyOWExNDQ0MDA4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL2Zvcm1zL1dLQWlyUGxheVJvdXRlUGlja2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0FpclBsYXlSb3V0ZVBpY2tlci5tbQpAQCAtMzksOCArMzks
NyBAQAogI2ltcG9ydCAiV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgiCiAjaW1wb3J0ICJXZWJQ
YWdlUHJveHkuaCIKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAog
U09GVF9MSU5LX0ZSQU1FV09SSyhNZWRpYVBsYXllcikKIFNPRlRfTElOS19DTEFTUyhNZWRpYVBs
YXllciwgTVBBVlJvdXRpbmdDb250cm9sbGVyKQpAQCAtMTYwLDcgKzE1OSw3IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAKIEBlbmQKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpCiAKICNlbHNlIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0KaW5kZXggODJkNmYyYTBmNWE5MGYwZDRmOTVi
YjRmZmJiM2ZlOGMxYmJkODY3OS4uM2U0NWMwNTU5NDcyMWY2MWMyYWM1N2JiYzBjMDczZTA1NmZm
ZjI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmls
ZVVwbG9hZFBhbmVsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9X
S0ZpbGVVcGxvYWRQYW5lbC5tbQpAQCAtNDYsOCArNDYsNyBAQAogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FS
TklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiBzdGF0
aWMgaW5saW5lIFVJSW1hZ2VQaWNrZXJDb250cm9sbGVyQ2FtZXJhRGV2aWNlIGNhbWVyYURldmlj
ZUZvck1lZGlhQ2FwdHVyZVR5cGUoV2ViQ29yZTo6TWVkaWFDYXB0dXJlVHlwZSBtZWRpYUNhcHR1
cmVUeXBlKQogewpAQCAtMTYwLDEwICsxNTksOSBAQCBzdGF0aWMgaW5saW5lIFVJSW1hZ2UgKmNh
bWVyYUljb24oKQogICAgIEJPT0wgX3VzaW5nQ2FtZXJhOwogICAgIFJldGFpblB0cjxVSUltYWdl
UGlja2VyQ29udHJvbGxlcj4gX2ltYWdlUGlja2VyOwogICAgIFJldGFpblB0cjxVSVZpZXdDb250
cm9sbGVyPiBfcHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXI7IC8vIGlQaG9uZSBhbHdheXMuIGlQ
YWQgZm9yIEZ1bGxzY3JlZW4gQ2FtZXJhLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgUmV0YWluUHRyPFVJUG9wb3ZlckNvbnRyb2xsZXI+IF9wcmVzZW50YXRpb25Qb3Bv
dmVyOyAvLyBpUGFkIGZvciBhY3Rpb24gc2hlZXQgYW5kIFBob3RvIExpYnJhcnkuCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgUmV0YWluUHRyPFVJRG9jdW1lbnRNZW51Vmll
d0NvbnRyb2xsZXI+IF9kb2N1bWVudE1lbnVDb250cm9sbGVyOwogICAgIFdlYkNvcmU6Ok1lZGlh
Q2FwdHVyZVR5cGUgX21lZGlhQ2FwdHVyZVR5cGU7CiB9CkBAIC00NTAsMTAgKzQ0OCw5IEBAIHN0
YXRpYyBOU0FycmF5ICpVVElzRm9yTUlNRVR5cGVzKE5TQXJyYXkgKm1pbWVUeXBlcykKIHsKICAg
ICBbc2VsZiBfZGlzbWlzc0Rpc3BsYXlBbmltYXRlZDphbmltYXRlZF07CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIF9wcmVzZW50YXRpb25Qb3BvdmVyID0gYWRvcHRO
UyhbW1VJUG9wb3ZlckNvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoQ29udGVudFZpZXdDb250cm9s
bGVyOmNvbnRlbnRWaWV3Q29udHJvbGxlcl0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogICAgIFtfcHJlc2VudGF0aW9uUG9wb3ZlciBzZXREZWxlZ2F0ZTpzZWxmXTsKICAgICBb
X3ByZXNlbnRhdGlvblBvcG92ZXIgcHJlc2VudFBvcG92ZXJGcm9tUmVjdDpDR1JlY3RJbnRlZ3Jh
bChDR1JlY3RNYWtlKF9pbnRlcmFjdGlvblBvaW50LngsIF9pbnRlcmFjdGlvblBvaW50LnksIDEs
IDEpKSBpblZpZXc6X3ZpZXcgcGVybWl0dGVkQXJyb3dEaXJlY3Rpb25zOlVJUG9wb3ZlckFycm93
RGlyZWN0aW9uQW55IGFuaW1hdGVkOmFuaW1hdGVkXTsKIH0KQEAgLTcyMCw2ICs3MTcsNiBAQCBz
dGF0aWMgTlNBcnJheSAqVVRJc0Zvck1JTUVUeXBlcyhOU0FycmF5ICptaW1lVHlwZXMpCiAKIEBl
bmQKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
VE9QX0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKICNlbmRpZiAvLyBQ
TEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9y
bXMvV0tGb3JtQ29sb3JDb250cm9sLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zv
cm1zL1dLRm9ybUNvbG9yQ29udHJvbC5tbQppbmRleCA2MDliYWMzMWY1NmFhNWFhZWJmMDNjMmUz
MThjMTU1NGE1OGU5NWE3Li4zOGMwNDAwM2FlYmExZTk0MmEzZGY5NTNkNGNkMTI0MDY3YjBjYTY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtQ29s
b3JDb250cm9sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zv
cm1Db2xvckNvbnRyb2wubW0KQEAgLTY2LDEwICs2Niw5IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0
IGNvbG9yUG9wb3ZlckNvcm5lclJhZGl1cyA9IDk7CiAgICAgW3BvcG92ZXJWaWV3Q29udHJvbGxl
ciBzZXRWaWV3OmNvbnRyb2xDb250YWluZXJWaWV3LmdldCgpXTsKICAgICBbcG9wb3ZlclZpZXdD
b250cm9sbGVyIHNldFByZWZlcnJlZENvbnRlbnRTaXplOltjb250cm9sQ29udGFpbmVyVmlldyBz
aXplXV07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVf
V0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFJldGFpblB0
cjxVSVBvcG92ZXJDb250cm9sbGVyPiBjb250cm9sbGVyID0gYWRvcHROUyhbW1VJUG9wb3ZlckNv
bnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoQ29udGVudFZpZXdDb250cm9sbGVyOnBvcG92ZXJWaWV3
Q29udHJvbGxlci5nZXQoKV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAg
IFtzZWxmIHNldFBvcG92ZXJDb250cm9sbGVyOmNvbnRyb2xsZXIuZ2V0KCldOwogCiAgICAgcmV0
dXJuIHNlbGY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMv
V0tGb3JtSW5wdXRDb250cm9sLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1z
L1dLRm9ybUlucHV0Q29udHJvbC5tbQppbmRleCAxY2Q2MmUzYmI1MTgxM2I3MTRlMzRhM2NmYmVi
NzNhYmFhYTkwY2UzLi5mOTI3ODNhN2NiMDcxYTBiYmIyMzQ4Zjk3MDc0YWRjMzA0MGNjYWNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRD
b250cm9sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1J
bnB1dENvbnRyb2wubW0KQEAgLTMzMCwxNiArMzMwLDE0IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJ
bnRlcnZhbCBrTWlsbGlzZWNvbmRzUGVyU2Vjb25kID0gMTAwMDsKICAgICBSZXRhaW5QdHI8VUlO
YXZpZ2F0aW9uQ29udHJvbGxlcj4gbmF2aWdhdGlvbkNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbVUlO
YXZpZ2F0aW9uQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhSb290Vmlld0NvbnRyb2xsZXI6X3Zp
ZXdDb250cm9sbGVyLmdldCgpXSk7CiAgICAgVUlOYXZpZ2F0aW9uSXRlbSAqbmF2aWdhdGlvbkl0
ZW0gPSBuYXZpZ2F0aW9uQ29udHJvbGxlci5nZXQoKS5uYXZpZ2F0aW9uQmFyLnRvcEl0ZW07CiAg
ICAgTlNTdHJpbmcgKmNsZWFyU3RyaW5nID0gV0VCX1VJX1NUUklOR19LRVkoIkNsZWFyIiwgIkNs
ZWFyIEJ1dHRvbiBEYXRlIFBvcG92ZXIiLCAiQ2xlYXIgYnV0dG9uIGluIGRhdGUgaW5wdXQgcG9w
b3ZlciIpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgVUlCYXJCdXR0
b25JdGVtICpjbGVhckJ1dHRvbiA9IFtbW1VJQmFyQnV0dG9uSXRlbSBhbGxvY10gaW5pdFdpdGhU
aXRsZTpjbGVhclN0cmluZyBzdHlsZTpVSUJhckJ1dHRvbkl0ZW1TdHlsZUJvcmRlcmVkIHRhcmdl
dDpzZWxmIGFjdGlvbjpAc2VsZWN0b3IoY2xlYXI6KV0gYXV0b3JlbGVhc2VdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtuYXZpZ2F0aW9uSXRlbSBzZXRSaWdodEJhckJ1
dHRvbkl0ZW06Y2xlYXJCdXR0b25dOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICBSZXRhaW5QdHI8VUlQb3BvdmVyQ29udHJvbGxlcj4gY29udHJvbGxlciA9IGFkb3B0
TlMoW1tVSVBvcG92ZXJDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aENvbnRlbnRWaWV3Q29udHJv
bGxlcjpuYXZpZ2F0aW9uQ29udHJvbGxlci5nZXQoKV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogICAgIFtzZWxmIHNldFBvcG92ZXJDb250cm9sbGVyOmNvbnRyb2xsZXIuZ2V0
KCldOwogCiAgICAgcmV0dXJuIHNlbGY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9wb3Zlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIuaAppbmRleCAwZWM4YzY1NTM4NzlhYmRjNWI5MjEwZjk1
NzgyNGIwN2UwYjBmZGViLi40MDIxMmJjMGI0ZGFiZDg3OGJiN2I3MzUwOTQ4MTRlZDEzMTVlZjFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9w
b3Zlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3Bv
dmVyLmgKQEAgLTQwLDEwICs0MCw5IEBACiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IFdLQ29udGVudFZpZXcgKnZpZXc7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIENH
UG9pbnQgcHJlc2VudGF0aW9uUG9pbnQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKQogQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikgVUlQb3BvdmVyQ29udHJvbGxl
ciAqcG9wb3ZlckNvbnRyb2xsZXI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05P
UkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IikKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIGlkIDxXS1JvdGF0aW5nUG9wb3ZlckRl
bGVnYXRlPiBkaXNtaXNzaW9uRGVsZWdhdGU7CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIubW0KaW5kZXggYmUyZjBkMmNhZDRm
ZjhjMmZkNDE4MTU2M2I3ZTZkYjZkY2I4ZTJhMC4uZDhmZDFjOGZmYTExMjBjYzNmZjNkNDMyM2Ux
YWYzM2ZlOWM3OTk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zv
cm1zL1dLRm9ybVBvcG92ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zv
cm1zL1dLRm9ybVBvcG92ZXIubW0KQEAgLTM2LDggKzM2LDcgQEAKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogQGlt
cGxlbWVudGF0aW9uIFdLRm9ybVJvdGF0aW5nQWNjZXNzb3J5UG9wb3ZlcgogCkBAIC0xNzgsNiAr
MTc3LDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogQGVuZAogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RQb3Bv
dmVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVNlbGVjdFBv
cG92ZXIubW0KaW5kZXggNTdiZmE0MDcwNGEyMGUzMmVlY2I4ZmUxYzc2YzJjNTBlOGQ4ZjkwNC4u
ZjQ4MWU0MTk1NDFhZGZhOTA1ODFiMDM4NzU0NzZkYmVhMTk0Y2JlOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVNlbGVjdFBvcG92ZXIubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVNlbGVjdFBvcG92ZXIu
bW0KQEAgLTQwMSwxMCArNDAxLDkgQEAgc3RhdGljIE5TU3RyaW5nICpzdHJpbmdXaXRoV3JpdGlu
Z0RpcmVjdGlvbihOU1N0cmluZyAqc3RyaW5nLCBVSVRleHRXcml0aW5nRGlyZWMKICAgICBlbHNl
CiAgICAgICAgIHBvcG92ZXJWaWV3Q29udHJvbGxlci5wcmVmZXJyZWRDb250ZW50U2l6ZSA9IHBv
cG92ZXJTaXplOwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
c2VsZi5wb3BvdmVyQ29udHJvbGxlciA9IFtbW1VJUG9wb3ZlckNvbnRyb2xsZXIgYWxsb2NdIGlu
aXRXaXRoQ29udGVudFZpZXdDb250cm9sbGVyOnBvcG92ZXJWaWV3Q29udHJvbGxlcl0gYXV0b3Jl
bGVhc2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgW25hdkNvbnRy
b2xsZXIgcmVsZWFzZV07CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGxNYWMubW0KaW5kZXggOGMyM2IyOGI4MjBiNWJlMWU3NDFiMzE3ZTNkMjA5
ZmZhODE2MWQwYy4uYTM1NjEwYWVjNDFkODExYTEzODIzZGM3NmQ2YjgxN2ViNzM0MDlhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpA
QCAtNDE5LDEwICs0MTksOSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpwaW5uZWRTdGF0ZURpZENo
YW5nZSgpCiAgICAgCiBJbnRQb2ludCBQYWdlQ2xpZW50SW1wbDo6c2NyZWVuVG9Sb290Vmlldyhj
b25zdCBJbnRQb2ludCYgcG9pbnQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICBOU1BvaW50IHdpbmRvd0Nvb3JkID0gW1ttX3ZpZXcgd2luZG93XSBjb252ZXJ0U2Ny
ZWVuVG9CYXNlOnBvaW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05P
UkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBy
ZXR1cm4gSW50UG9pbnQoW21fdmlldyBjb252ZXJ0UG9pbnQ6d2luZG93Q29vcmQgZnJvbVZpZXc6
bmlsXSk7CiB9CiAgICAgCkBAIC00MzAsMTAgKzQyOSw5IEBAIEludFJlY3QgUGFnZUNsaWVudElt
cGw6OnJvb3RWaWV3VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBOU1JlY3Qg
dGVtcFJlY3QgPSByZWN0OwogICAgIHRlbXBSZWN0ID0gW21fdmlldyBjb252ZXJ0UmVjdDp0ZW1w
UmVjdCB0b1ZpZXc6bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAg
IHRlbXBSZWN0Lm9yaWdpbiA9IFtbbV92aWV3IHdpbmRvd10gY29udmVydEJhc2VUb1NjcmVlbjp0
ZW1wUmVjdC5vcmlnaW5dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIHJl
dHVybiBlbmNsb3NpbmdJbnRSZWN0KHRlbXBSZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5t
bQppbmRleCA1YTZiZmMzM2NlZjJkMjA2YTllMDZkMTVkZGYxYzg3Y2MzNzEyNDU2Li5mMDMyYzhh
MjgzNzYxMzFlMmUzNDFmZDY2MWQ1Zjk5MDg4N2I5OWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5t
bQpAQCAtMjY1LDEyICsyNjUsMTEgQEAgc3RhdGljIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjcmVh
dGVJbWFnZVdpdGhDb3BpZWREYXRhKENHSW1hZ2VSZWYgc291cmNlSW1hZ2UpCiAgICAgLy8gZnV0
dXJlIG92ZXJoZWFkLgogICAgIHdlYlZpZXdDb250ZW50cyA9IGNyZWF0ZUltYWdlV2l0aENvcGll
ZERhdGEod2ViVmlld0NvbnRlbnRzLmdldCgpKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBpbiBfc3Rh
cnRFbnRlckZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246CiAgICAgTlNEaXNhYmxlU2Ny
ZWVuVXBkYXRlcygpOwogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1dG9kaXNwbGF5Ok5PXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQo
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIFtzZWxmIF9tYW5hZ2VyXS0+c2F2
ZVNjcm9sbFBvc2l0aW9uKCk7CiAgICAgX3NhdmVkVG9wQ29udGVudEluc2V0ID0gX3BhZ2UtPnRv
cENvbnRlbnRJbnNldCgpOwpAQCAtMzI1LDExICszMjQsMTAgQEAgc3RhdGljIGNvbnN0IGZsb2F0
IG1pblZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0
aCBtZWQKICAgICBpZiAoY29tcGxldGVkKSB7CiAgICAgICAgIF9mdWxsU2NyZWVuU3RhdGUgPSBJ
bkZ1bGxTY3JlZW47CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAg
ICAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCB0YSB0aGUgZW5kIG9mIHRo
ZSBjdXJyZW50IGJsb2NrLgogICAgICAgICBOU0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VO
RCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBbc2VsZiBfbWFuYWdlcl0t
PmRpZEVudGVyRnVsbFNjcmVlbigpOwogICAgICAgICBbc2VsZiBfbWFuYWdlcl0tPnNldEFuaW1h
dGluZ0Z1bGxTY3JlZW4oZmFsc2UpOwogCkBAIC0zNDcsMTAgKzM0NSw5IEBAIHN0YXRpYyBjb25z
dCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTogS2VlcCBpbiBz
eW5jIHdpdGggbWVkCiAgICAgICAgIC8vIFRyYW5zaXRpb24gdG8gZnVsbHNjcmVlbiBmYWlsZWQu
IENsZWFuIHVwLgogICAgICAgICBfZnVsbFNjcmVlblN0YXRlID0gTm90SW5GdWxsU2NyZWVuOwog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJO
SU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIFtbc2VsZiB3
aW5kb3ddIHNldEF1dG9kaXNwbGF5OllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgICAgICBfcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxz
ZSk7CiAKICAgICAgICAgTlNSZXNwb25kZXIgKmZpcnN0UmVzcG9uZGVyID0gW1tzZWxmIHdpbmRv
d10gZmlyc3RSZXNwb25kZXJdOwpAQCAtMzY5LDEwICszNjYsOSBAQCBzdGF0aWMgY29uc3QgZmxv
YXQgbWluVmlkZW9XaWR0aCA9IDQ4MCArIDIwICsgMjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3
aXRoIG1lZAogICAgICAgICBbc2VsZiBfbWFuYWdlcl0tPnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4o
ZmFsc2UpOwogICAgIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
TlNFbmFibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAKICAgICBpZiAoX3JlcXVlc3RlZEV4aXRGdWxsU2NyZWVuKSB7CiAgICAgICAgIF9yZXF1ZXN0
ZWRFeGl0RnVsbFNjcmVlbiA9IE5POwpAQCAtNDAyLDEyICszOTgsMTEgQEAgc3RhdGljIGNvbnN0
IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5
bmMgd2l0aCBtZWQKIAogICAgIFtfd2ViVmlld1BsYWNlaG9sZGVyIHNldEV4aXRXYXJuaW5nVmlz
aWJsZTpOT107CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05P
UkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIC8vIFNj
cmVlbiB1cGRhdGVzIHRvIGJlIHJlLWVuYWJsZWQgaW4gX3N0YXJ0RXhpdEZ1bGxTY3JlZW5Bbmlt
YXRpb25XaXRoRHVyYXRpb246IG9yIGJlZ2FuRXhpdEZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1l
OmZpbmFsRnJhbWU6CiAgICAgTlNEaXNhYmxlU2NyZWVuVXBkYXRlcygpOwogICAgIFtbc2VsZiB3
aW5kb3ddIHNldEF1dG9kaXNwbGF5Ok5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKIAogICAgIC8vIFNlZSB0aGUgcmVsYXRlZCBjb21tZW50IGluIGVudGVyRnVsbFNjcmVlbjoK
ICAgICAvLyBXZSB3aWxsIHJlc3VtZSB0aGUgbm9ybWFsIGJlaGF2aW9yIGluIF9zdGFydEV4aXRG
dWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOgpAQCAtNDM3LDEwICs0MzIsOSBAQCBzdGF0
aWMgY29uc3QgZmxvYXQgbWluVmlkZW9XaWR0aCA9IDQ4MCArIDIwICsgMjA7IC8vIE5vdGU6IEtl
ZXAgaW4gc3luYyB3aXRoIG1lZAogICAgICAgICAvLyBCZWNhdXNlIHdlIGFyZSBicmVha2luZyB0
aGUgbm9ybWFsIGFuaW1hdGlvbiBwYXR0ZXJuLCByZS1lbmFibGUgc2NyZWVuIHVwZGF0ZXMKICAg
ICAgICAgLy8gYXMgZXhpdEZ1bGxTY3JlZW4gaGFzIGRpc2FibGVkIHRoZW0sIGJ1dCBfc3RhcnRF
eGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjoKICAgICAgICAgLy8gd2lsbCBuZXZl
ciBiZSBjYWxsZWQuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
ICAgIE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICB9CiAKICAgICBbW3NlbGYgd2luZG93XSBleGl0RnVsbFNjcmVlbk1vZGU6
c2VsZl07CkBAIC00NjMsMjAgKzQ1NywxOCBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9X
aWR0aCA9IDQ4MCArIDIwICsgMjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogCiAg
ICAgTlNSZXNwb25kZXIgKmZpcnN0UmVzcG9uZGVyID0gW1tzZWxmIHdpbmRvd10gZmlyc3RSZXNw
b25kZXJdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAvLyBTY3Jl
ZW4gdXBkYXRlcyB0byBiZSByZS1lbmFibGVkIGluIGNvbXBsZXRlRmluaXNoRXhpdEZ1bGxTY3Jl
ZW5BbmltYXRpb25BZnRlclJlcGFpbnQuCiAgICAgTlNEaXNhYmxlU2NyZWVuVXBkYXRlcygpOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VO
RCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIF9wYWdlLT5zZXRTdXBwcmVzc1Zp
c2liaWxpdHlVcGRhdGVzKHRydWUpOwogICAgIFtbc2VsZiB3aW5kb3ddIG9yZGVyT3V0OnNlbGZd
OwogICAgIE5TVmlldyAqY29udGVudFZpZXcgPSBbW3NlbGYgd2luZG93XSBjb250ZW50Vmlld107
CiAgICAgY29udGVudFZpZXcuaGlkZGVuID0gWUVTOwogICAgIFtfYmFja2dyb3VuZFZpZXcuZ2V0
KCkubGF5ZXIgcmVtb3ZlQWxsQW5pbWF0aW9uc107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICBbW193ZWJWaWV3UGxhY2Vob2xkZXIgd2luZG93XSBzZXRBdXRvZGlzcGxh
eTpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBbc2VsZiBfcmVw
bGFjZVZpZXc6X3dlYlZpZXdQbGFjZWhvbGRlci5nZXQoKSB3aXRoOl93ZWJWaWV3XTsKICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKQEAgLTUwOSwxNiArNTAxLDE0IEBAIHN0YXRpYyBj
b25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTogS2VlcCBp
biBzeW5jIHdpdGggbWVkCiAtICh2b2lkKWNvbXBsZXRlRmluaXNoRXhpdEZ1bGxTY3JlZW5Bbmlt
YXRpb25BZnRlclJlcGFpbnQKIHsKICAgICBfcmVwYWludENhbGxiYWNrID0gbnVsbHB0cjsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFO
RygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtbX3dlYlZpZXcgd2luZG93XSBz
ZXRBdXRvZGlzcGxheTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAg
IFtbX3dlYlZpZXcgd2luZG93XSBkaXNwbGF5SWZOZWVkZWRdOwogICAgIF9wYWdlLT5zZXRTdXBw
cmVzc1Zpc2liaWxpdHlVcGRhdGVzKGZhbHNlKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgIE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogfQogCiAtICh2b2lkKXBlcmZvcm1DbG9zZTooaWQpc2VuZGVyCkBAIC03
MjcsMTUgKzcxNywxMyBAQCBzdGF0aWMgQ0FBbmltYXRpb24gKmZhZGVBbmltYXRpb24oQ0ZUaW1l
SW50ZXJ2YWwgZHVyYXRpb24sIEFuaW1hdGlvbkRpcmVjdGlvbiBkaQogICAgIFt3aW5kb3cgbWFr
ZUZpcnN0UmVzcG9uZGVyOl93ZWJWaWV3XTsKIAogICAgIF9wYWdlLT5zZXRTdXBwcmVzc1Zpc2li
aWxpdHlVcGRhdGVzKGZhbHNlKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1dG9kaXNwbGF5OllFU107Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgW1tzZWxmIHdpbmRvd10gZGlzcGxheUlmTmVlZGVkXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFO
RygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5TRW5hYmxlU2NyZWVuVXBkYXRl
cygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQogCiAtICh2b2lkKV9zdGFy
dEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJh
dGlvbgpAQCAtNzU4LDE1ICs3NDYsMTMgQEAgc3RhdGljIENBQW5pbWF0aW9uICpmYWRlQW5pbWF0
aW9uKENGVGltZUludGVydmFsIGR1cmF0aW9uLCBBbmltYXRpb25EaXJlY3Rpb24gZGkKICAgICBb
X2JhY2tncm91bmRWaWV3LmdldCgpLmxheWVyIGFkZEFuaW1hdGlvbjpmYWRlQW5pbWF0aW9uKGR1
cmF0aW9uLCBBbmltYXRlT3V0KSBmb3JLZXk6QCJmdWxsc2NyZWVuIl07CiAKICAgICBfcGFnZS0+
c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpZRVNdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VO
RCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtbc2VsZiB3aW5kb3ddIGRpc3Bs
YXlJZk5lZWRlZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBOU0Vu
YWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0K
IAogLSAodm9pZClfd2F0Y2hkb2dUaW1lckZpcmVkOihOU1RpbWVyICopdGltZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbQppbmRleCAxZmRhN2RiZTVk
ZjFmZjdkYjE3NzBjYWZiMTQwZGZmNTYwZjVhMzhjLi43MWI1YWE0ZjU4MGEyMmRiYzhmNWJjM2Fk
OTYwMGQwNjFmZWFiYjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tQcmludGluZ1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJp
bnRpbmdWaWV3Lm1tCkBAIC03OCwxNiArNzgsMTQgQEAgc3RhdGljIEJPT0wgaXNGb3JjaW5nUHJl
dmlld1VwZGF0ZTsKIAogLSAodm9pZClfc2V0QXV0b2Rpc3BsYXk6KEJPT0wpbmV3U3RhdGUKIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19D
TEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGlmICghbmV3U3RhdGUgJiYg
W1tfd2tWaWV3IHdpbmRvd10gaXNBdXRvZGlzcGxheV0pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCiAgICAgICAgIFtfd2tWaWV3IGRpc3BsYXlJZk5lZWRlZF07CisgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkco
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbW193a1ZpZXcgd2luZG93XSBzZXRB
dXRvZGlzcGxheTpuZXdTdGF0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAK
ICAgICAvLyBGb3Igc29tZSByZWFzb24sIHBhaW50aW5nIGRvZXNuJ3QgaGFwcGVuIGZvciBhIGxv
bmcgdGltZSB3aXRob3V0IHRoaXMgY2FsbCwgPHJkYXI6Ly9wcm9ibGVtLzg5NzUyMjk+LgogICAg
IGlmIChuZXdTdGF0ZSkKQEAgLTQ1NCwxOSArNDUyLDE3IEBAIHN0YXRpYyBOU1N0cmluZyAqbGlu
a0Rlc3RpbmF0aW9uTmFtZShQREZEb2N1bWVudCAqZG9jdW1lbnQsIFBERkRlc3RpbmF0aW9uICpk
ZXN0CiAgICAgfQogCiAgICAgTlNHcmFwaGljc0NvbnRleHQgKm5zR3JhcGhpY3NDb250ZXh0ID0g
W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dD
b250ZXh0UmVmPihbbnNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NQb3J0XSk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNvbnRleHQp
OwogICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjb250ZXh0LCBwb2ludC54LCBwb2ludC55KTsK
ICAgICBDR0NvbnRleHRTY2FsZUNUTShjb250ZXh0LCBfdG90YWxTY2FsZUZhY3RvckZvclByaW50
aW5nLCAtX3RvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZyk7CiAgICAgQ0dDb250ZXh0VHJhbnNs
YXRlQ1RNKGNvbnRleHQsIDAsIC1bcGRmUGFnZSBib3VuZHNGb3JCb3g6a1BERkRpc3BsYXlCb3hN
ZWRpYUJveF0uc2l6ZS5oZWlnaHQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgW3BkZlBhZ2UgZHJhd1dpdGhCb3g6a1BERkRpc3BsYXlCb3hNZWRpYUJveF07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFu
c2Zvcm0gPSBDR0NvbnRleHRHZXRDVE0oY29udGV4dCk7CiAKQEAgLTQ3OSwxMCArNDc1LDkgQEAg
c3RhdGljIE5TU3RyaW5nICpsaW5rRGVzdGluYXRpb25OYW1lKFBERkRvY3VtZW50ICpkb2N1bWVu
dCwgUERGRGVzdGluYXRpb24gKmRlc3QKICAgICAgICAgaWYgKCFbYW5ub3RhdGlvbiBpc0tpbmRP
ZkNsYXNzOldlYktpdDo6cGRmQW5ub3RhdGlvbkxpbmtDbGFzcygpXSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAg
IFBERkFubm90YXRpb25MaW5rICpsaW5rQW5ub3RhdGlvbiA9IChQREZBbm5vdGF0aW9uTGluayAq
KWFubm90YXRpb247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAg
ICBOU1VSTCAqdXJsID0gW2xpbmtBbm5vdGF0aW9uIFVSTF07CiAgICAgICAgIENHUmVjdCB0cmFu
c2Zvcm1lZFJlY3QgPSBDR1JlY3RBcHBseUFmZmluZVRyYW5zZm9ybShOU1JlY3RUb0NHUmVjdChb
bGlua0Fubm90YXRpb24gYm91bmRzXSksIHRyYW5zZm9ybSk7CiAKQEAgLTU0NSwxMCArNTQwLDkg
QEAgc3RhdGljIE5TU3RyaW5nICpsaW5rRGVzdGluYXRpb25OYW1lKFBERkRvY3VtZW50ICpkb2N1
bWVudCwgUERGRGVzdGluYXRpb24gKmRlc3QKICAgICB9CiAKICAgICBSZWZQdHI8V2ViS2l0OjpT
aGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IHBhZ2VQcmV2aWV3SXRlcmF0b3ItPnZhbHVlOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4
dCA9IHN0YXRpY19jYXN0PENHQ29udGV4dFJlZj4oW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50
Q29udGV4dF0gZ3JhcGhpY3NQb3J0XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAKICAgICBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQgY29udGV4dChjZ0NvbnRleHQpOwogICAg
IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsK
QEAgLTU4OSwxMCArNTgzLDkgQEAgc3RhdGljIE5TU3RyaW5nICpsaW5rRGVzdGluYXRpb25OYW1l
KFBERkRvY3VtZW50ICpkb2N1bWVudCwgUERGRGVzdGluYXRpb24gKmRlc3QKICAgICAgICAgICAg
ICAgICBpZiAoIVthbm5vdGF0aW9uIGlzS2luZE9mQ2xhc3M6V2ViS2l0OjpwZGZBbm5vdGF0aW9u
TGlua0NsYXNzKCldKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgICAgICAgICAgUERG
QW5ub3RhdGlvbkxpbmsgKmxpbmtBbm5vdGF0aW9uID0gKFBERkFubm90YXRpb25MaW5rICopYW5u
b3RhdGlvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgICAgICBJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAg
ICAgICAgICAgICAgICBpZiAobGlua0Fubm90YXRpb24uVVJMKQogICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
VGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0KaW5kZXggYWUzNjQxZWY3OTc0NjNhMTgw
YzBmYjI2NzRiMDAyYWIxMWE4Nzk2Mi4uYjg1NDM3NDU5ZWMxYjAyMjFkNmE5OWIxNWFiZjk1YmRk
MTVlODIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dElu
cHV0V2luZG93Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tCkBAIC0xMDYsMTAgKzEwNiw5IEBACiAKIC0g
KEJPT0wpX2ludGVycHJldEtleUV2ZW50OihOU0V2ZW50ICopZXZlbnQgdXNpbmdMZWdhY3lDb2Nv
YVRleHRJbnB1dDooQk9PTCl1c2luZ0xlZ2FjeUNvY29hVGV4dElucHV0IHN0cmluZzooTlNTdHJp
bmcgKiopc3RyaW5nCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBC
T09MIGhhZE1hcmtlZFRleHQgPSBbX2lucHV0VGV4dFZpZXcgaGFzTWFya2VkVGV4dF07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgCiAgICAgKnN0cmluZyA9IG5pbDsKIApAQCAt
MTI0LDEwICsxMjMsOSBAQAogICAgIGlmICghW1tfaW5wdXRUZXh0VmlldyBpbnB1dENvbnRleHRd
IGhhbmRsZUV2ZW50OmV2ZW50XSkKICAgICAgICAgcmV0dXJuIE5POwogICAgIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaWYgKFtfaW5wdXRUZXh0VmlldyBoYXNNYXJr
ZWRUZXh0XSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVf
V0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAg
Ly8gRG9uJ3Qgc2hvdyB0aGUgaW5wdXQgbWV0aG9kIHdpbmRvdyBmb3IgZGVhZCBrZXlzCiAgICAg
ICAgIGlmIChbW2V2ZW50IGNoYXJhY3RlcnNdIGxlbmd0aF0gPiAwKQogICAgICAgICAgICAgW3Nl
bGYgb3JkZXJGcm9udDpuaWxdOwpAQCAtMTYxLDEwICsxNTksOSBAQAogCiAtIChCT09MKV9oYXNN
YXJrZWRUZXh0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICByZXR1
cm4gW19pbnB1dFRleHRWaWV3IGhhc01hcmtlZFRleHRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KaW5kZXggOGI1ZGIxNTk1YWIzNTdmZWM5NGRjZTc3
Yzc2NGVhZGNiYjYzNTYwZC4uYjkwM2U4Njc1ZDcyYzJkMDEwY2RhNzk5ZmFkM2QyNjdhOTAxMGFl
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVBy
b3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQ
cm94eU1hYy5tbQpAQCAtMTg4LDEwICsxODgsOSBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5TWFj
OjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dAog
ICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsKICAgICBmYWtlRXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltbbV93ZWJWaWV3IHdp
bmRvd10KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0lHTk9SRV9XQVJOSU5H
X0NMQU5HX1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAgICAgICAgICAg
ICAgICAgICAgICAgICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25d
XQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9Q
X0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nTlNFdmVudCBtb2RpZmllckZs
YWdzXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDpbaW5pdGlh
dGluZ05TRXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
bmRvd051bWJlcjpbaW5pdGlhdGluZ05TRXZlbnQgd2luZG93TnVtYmVyXQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1
Z2luTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFj
L05ldHNjYXBlUGx1Z2luTWFjLm1tCmluZGV4IGVkY2Y1MzJjODVhYWY4YzZiM2E1MGFlM2Q2NGJl
MDZlOWFhMGUzNDAuLjRlZDExNjU0YTEwMzlkNjVjOTExYWNhZjE2MWYzOGZiZDljZjM1NTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9O
ZXRzY2FwZVBsdWdpbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KQEAgLTM3MywxMCArMzczLDkgQEAg
c3RhdGljIGlubGluZSBFdmVudFJlY29yZCBpbml0aWFsaXplRXZlbnRSZWNvcmQoRXZlbnRLaW5k
IGV2ZW50S2luZCkKIAogICAgIGV2ZW50UmVjb3JkLndoYXQgPSBldmVudEtpbmQ7CiAgICAgZXZl
bnRSZWNvcmQubWVzc2FnZSA9IDA7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
ICAgICBldmVudFJlY29yZC53aGVuID0gVGlja0NvdW50KCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgZXZlbnRSZWNvcmQud2hlcmUgPSBQb2ludCgpOwogICAgIGV2ZW50
UmVjb3JkLm1vZGlmaWVycyA9IDA7CiAKQEAgLTEwNDMsMTAgKzEwNDIsOSBAQCB2b2lkIE5ldHNj
YXBlUGx1Z2luOjpzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkK
IAogICAgICAgICAvLyBTZXQgdGhlIHNjcmlwdCBjb2RlIGFzIHRoZSBrZXlib2FyZCBzY3JpcHQu
IE5vcm1hbGx5IENhcmJvbiBkb2VzIHRoaXMgd2hlbmV2ZXIgdGhlIGlucHV0IHNvdXJjZSBjaGFu
Z2VzLgogICAgICAgICAvLyBIb3dldmVyLCB0aGlzIGlzIG9ubHkgZG9uZSBmb3IgdGhlIHByb2Nl
c3MgdGhhdCBoYXMgdGhlIGtleWJvYXJkIGZvY3VzLiBXZSBjaGVhdCBhbmQgZG8gaXQgaGVyZSBp
bnN0ZWFkLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBJR05P
UkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBT
ZXRTY3JpcHRNYW5hZ2VyVmFyaWFibGUoc21LZXlTY3JpcHQsIHNjcmlwdENvZGUpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQo
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgCiAgICAgICAgIEV2ZW50UmVj
b3JkIGV2ZW50ID0gaW5pdGlhbGl6ZUV2ZW50UmVjb3JkKGtleURvd24pOwogICAgICAgICBldmVu
dC5tb2RpZmllcnMgPSAwOwpAQCAtMTEyMSwxMSArMTExOSwxMCBAQCBzdGF0aWMgdm9pZCBtYWtl
Q0dMUHJlc2VudExheWVyT3BhcXVlKENBTGF5ZXIgKnBsdWdpblJvb3RMYXllcikKICAgICAgICAg
cmV0dXJuOwogCiAgICAgQ2xhc3MgY2dsUHJlc2VudExheWVyQ2xhc3MgPSBOU0NsYXNzRnJvbVN0
cmluZyhAIkNHTFByZXNlbnRMYXllciIpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgaWYgKCFbY2dsUHJlc2VudExheWVyQ2xhc3MgaXNTdWJjbGFzc09mQ2xhc3M6W0NB
T3BlbkdMTGF5ZXIgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogCiAgICAgQ0FMYXllciAqbGF5ZXIgPSBbc3VibGF5ZXJzIG9iamVjdEF0
SW5kZXg6MF07CiAgICAgaWYgKCFbbGF5ZXIgaXNLaW5kT2ZDbGFzczpjZ2xQcmVzZW50TGF5ZXJD
bGFzc10pCkBAIC0xMTgxLDExICsxMTc4LDEwIEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46Om51bGxF
dmVudFRpbWVyRmlyZWQoKQogICAgIGV2ZW50LndoZXJlLnYgPSBtb3VzZVBvc2l0aW9uLnk7CiAK
ICAgICBldmVudC5tb2RpZmllcnMgPSBHZXRDdXJyZW50S2V5TW9kaWZpZXJzKCk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBpZiAoIUJ1dHRvbigpKQogICAgICAgICBl
dmVudC5tb2RpZmllcnMgfD0gYnRuU3RhdGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAKICAgICBOUFBfSGFuZGxlRXZlbnQoJmV2ZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IDUzMDdlMjZhNzYz
N2U4YTY5YjA0NWFiYjkyODc5ZjNmOGM2NTg2ZjIuLmRhZTMyOTVmMDQ1ZDc0YjVkNjZiYTNlMmM4
NGZlYjM0YmUxZGYxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbi5tbQpAQCAtMzE4LDEwICszMTgsOSBAQCBzdGF0aWMgY29uc3QgaW50
IGRlZmF1bHRTY3JvbGxNYWduaXR1ZGVUaHJlc2hvbGRGb3JQYWdlRmxpcCA9IDIwOwogICAgIGlm
IChXZWJLaXQ6OlBERlBsdWdpbkFubm90YXRpb24qIGFjdGl2ZUFubm90YXRpb24gPSBfcGRmUGx1
Z2luLT5hY3RpdmVBbm5vdGF0aW9uKCkpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGV4
aXN0aW5nQ2FjaGUgPSBfcGRmUGx1Z2luLT5heE9iamVjdENhY2hlKCkpIHsKICAgICAgICAgICAg
IGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QgPSBleGlzdGluZ0NhY2hlLT5nZXRPckNy
ZWF0ZShhY3RpdmVBbm5vdGF0aW9uLT5lbGVtZW50KCkpKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFtvYmplY3Qt
PndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJfQVhBc3NvY2lhdGVkUGx1
Z2luUGFyZW50Il07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIG5pbDsKQEAgLTQyNiwxMCArNDI1LDkgQEAg
c3RhdGljIGNvbnN0IGludCBkZWZhdWx0U2Nyb2xsTWFnbml0dWRlVGhyZXNob2xkRm9yUGFnZUZs
aXAgPSAyMDsKIAogLSAodm9pZCl3cml0ZUl0ZW1zVG9QYXN0ZWJvYXJkOihOU0FycmF5ICopaXRl
bXMgd2l0aFR5cGVzOihOU0FycmF5ICopdHlwZXMKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogICAgIF9wZGZQbHVnaW4tPndyaXRlSXRlbXNUb1Bhc3RlYm9hcmQoTlNHZW5l
cmFsUGJvYXJkLCBpdGVtcywgdHlwZXMpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogfQogCiAtICh2b2lkKXNob3dEZWZpbml0aW9uRm9yQXR0cmlidXRlZFN0cmluZzooTlNBdHRy
aWJ1dGVkU3RyaW5nICopc3RyaW5nIGF0UG9pbnQ6KENHUG9pbnQpcG9pbnQKQEAgLTE2NTEsMTEg
KzE2NDksMTAgQEAgYm9vbCBQREZQbHVnaW46OmhhbmRsZUVkaXRpbmdDb21tYW5kKGNvbnN0IFN0
cmluZyYgY29tbWFuZE5hbWUsIGNvbnN0IFN0cmluZyYgYXIKICAgICAgICAgW21fcGRmTGF5ZXJD
b250cm9sbGVyIHNlbGVjdEFsbF07CiAgICAgZWxzZSBpZiAoY29tbWFuZE5hbWUgPT0gInRha2VG
aW5kU3RyaW5nRnJvbVNlbGVjdGlvbiIpIHsKICAgICAgICAgTlNTdHJpbmcgKnN0cmluZyA9IFtt
X3BkZkxheWVyQ29udHJvbGxlciBjdXJyZW50U2VsZWN0aW9uXS5zdHJpbmc7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIGlmIChzdHJpbmcubGVuZ3RoKQog
ICAgICAgICAgICAgd3JpdGVJdGVtc1RvUGFzdGVib2FyZChOU0ZpbmRQYm9hcmQsIEBbIFtzdHJp
bmcgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddIF0sIEBbIE5TUGFzdGVi
b2FyZFR5cGVTdHJpbmcgXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpAQCAtMTczNSwxMyArMTczMiwxMiBAQCB2b2lkIFBE
RlBsdWdpbjo6c2V0QWN0aXZlQW5ub3RhdGlvbihQREZBbm5vdGF0aW9uICphbm5vdGF0aW9uKQog
ICAgICAgICBtX2FjdGl2ZUFubm90YXRpb24tPmNvbW1pdCgpOwogCiAgICAgaWYgKGFubm90YXRp
b24pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgaWYg
KFthbm5vdGF0aW9uIGlzS2luZE9mQ2xhc3M6cGRmQW5ub3RhdGlvblRleHRXaWRnZXRDbGFzcygp
XSAmJiBzdGF0aWNfY2FzdDxQREZBbm5vdGF0aW9uVGV4dFdpZGdldCAqPihhbm5vdGF0aW9uKS5p
c1JlYWRPbmx5KSB7CiAgICAgICAgICAgICBtX2FjdGl2ZUFubm90YXRpb24gPSBudWxscHRyOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogCiAgICAgICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IFBERlBsdWdpbkFubm90
YXRpb246OmNyZWF0ZShhbm5vdGF0aW9uLCBtX3BkZkxheWVyQ29udHJvbGxlci5nZXQoKSwgdGhp
cyk7CiAgICAgICAgIG1fYWN0aXZlQW5ub3RhdGlvbi0+YXR0YWNoKG1fYW5ub3RhdGlvbkNvbnRh
aW5lci5nZXQoKSk7CkBAIC0yMDc5LDEwICsyMDc1LDkgQEAgc3RkOjp0dXBsZTxTdHJpbmcsIFBE
RlNlbGVjdGlvbiAqLCBOU0RpY3Rpb25hcnkgKj4gUERGUGx1Z2luOjpsb29rdXBUZXh0QXRMb2Nh
dGkKICAgICAgICAgaWYgKCFOU1BvaW50SW5SZWN0KHBvaW50SW5QYWdlU3BhY2UsIGJvdW5kcykp
CiAgICAgICAgICAgICBjb250aW51ZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgICAgICBQREZBbm5vdGF0aW9uTGluayAqbGlua0Fubm90YXRpb24gPSAoUERG
QW5ub3RhdGlvbkxpbmsgKilhbm5vdGF0aW9uOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICAgICAgTlNVUkwgKnVybCA9IGxpbmtBbm5vdGF0aW9uLlVSTDsKICAgICAg
ICAgaWYgKCF1cmwpCiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5u
b3RhdGlvbi5oCmluZGV4IDBmNzY3NWM1ZDIzMWQ1N2Q5MmJkNjI3OTM2ZTllMDI0ZDJlMWM2OGQu
LmRlNzVjYTg2NzhjM2M1MzZjZmEwMWJkMTQ2NDY0NjhjMzE4OGU3ZjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bkNob2ljZUFubm90YXRpb24uaApAQCAtNTMsMTAgKzUzLDkgQEAgcHJpdmF0ZToKIAogICAgIFJl
ZjxXZWJDb3JlOjpFbGVtZW50PiBjcmVhdGVBbm5vdGF0aW9uRWxlbWVudCgpIG92ZXJyaWRlOwog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKICAgICBQREZBbm5v
dGF0aW9uQ2hvaWNlV2lkZ2V0ICpjaG9pY2VBbm5vdGF0aW9uKCkgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8UERGQW5ub3RhdGlvbkNob2ljZVdpZGdldCAqPihhbm5vdGF0aW9uKCkpOyB9Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVM
X0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9Q
REZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0KaW5kZXggNTgyNWZkM2VjYWI0
NjE1NGY4ZjlkMDUwMTNmNjU0YWM4YzYxNThjZi4uYzU5N2U5NmZiNGMwYjk3NTI1NzBlOTlkMmVl
M2M2MWI0NzdiNGY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0KQEAgLTY3
LDEwICs2Nyw5IEBAIHZvaWQgUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbjo6Y29tbWl0KCkKIFJl
ZjxFbGVtZW50PiBQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uOjpjcmVhdGVBbm5vdGF0aW9uRWxl
bWVudCgpCiB7CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gcGFyZW50KCktPmRvY3VtZW50KCk7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdf
Q0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBQREZBbm5vdGF0aW9uQ2hv
aWNlV2lkZ2V0ICpjaG9pY2VBbm5vdGF0aW9uID0gdGhpcy0+Y2hvaWNlQW5ub3RhdGlvbigpOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VO
RCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgYXV0byBlbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudChzZWxlY3RUYWcsIGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFu
bm90YXRpb24uaAppbmRleCA5MmQ0MDIzY2Q3MGU5NGQ5OGQ0YmI1ODFlMzBhN2QyODViMTlkOWRj
Li43OWFkMzEyNTlmZjA0NTc1NGYxZmJiYTk4Nzk1NGQ5N2NkNmZhYjMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
VGV4dEFubm90YXRpb24uaApAQCAtNjAsMTAgKzYwLDkgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToK
ICAgICBib29sIGhhbmRsZUV2ZW50KFdlYkNvcmU6OkV2ZW50Jikgb3ZlcnJpZGU7CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19U
T1BfTEVWRUwoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogICAgIFBERkFubm90YXRpb25U
ZXh0V2lkZ2V0ICp0ZXh0QW5ub3RhdGlvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFBE
RkFubm90YXRpb25UZXh0V2lkZ2V0ICo+KGFubm90YXRpb24oKSk7IH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
blRleHRBbm5vdGF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCmluZGV4IDJjNmE3NmM0YjBlMTE1NTEwMTk1ZmZk
Njk3NDg2NDY2YTc1ZjEyNjguLmFjNjA5NzhiOGRmNDQzNGY0YTZkYjJkM2JjNWRhMjk2YWQ2YzNj
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW5UZXh0QW5ub3RhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0KQEAgLTgwLDEwICs4MCw5IEBAIFBE
RlBsdWdpblRleHRBbm5vdGF0aW9uOjp+UERGUGx1Z2luVGV4dEFubm90YXRpb24oKQogUmVmPEVs
ZW1lbnQ+IFBERlBsdWdpblRleHRBbm5vdGF0aW9uOjpjcmVhdGVBbm5vdGF0aW9uRWxlbWVudCgp
CiB7CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gcGFyZW50KCktPmRvY3VtZW50KCk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkco
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBQREZBbm5vdGF0aW9uVGV4dFdpZGdl
dCAqdGV4dEFubm90YXRpb24gPSB0aGlzLT50ZXh0QW5ub3RhdGlvbigpOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGJvb2wgaXNNdWx0aWxpbmUgPSB0ZXh0QW5ub3RhdGlv
bi5pc011bHRpbGluZTsKIAogICAgIGF1dG8gZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoaXNNdWx0aWxpbmUgPyB0ZXh0YXJlYVRhZyA6IGlucHV0VGFnLCBmYWxzZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRp
dmVUZXh0Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgKaW5kZXggNDUyMGU5ZDY5YmM4MDJmNmViZGE2NWIy
OTdlOGE4ZDQ1OGMxOTcyOC4uY2I2OTRjNWI1NzIwYzNmMjU4MTQzY2FjM2ZjOWI0MTNlM2E4Njk5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkFsdGVybmF0aXZlVGV4dENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaApAQCAtNTEsMTQgKzUxLDEx
IEBAIHB1YmxpYzoKICNlbmRpZgogcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1MpCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI2lmIGRlZmluZWQoX19oYXNfd2FybmluZykgJiYgX19o
YXNfd2FybmluZygiLVd1bnVzZWQtcHJpdmF0ZS1maWVsZCIpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcHJpdmF0ZS1maWVsZCIKLSNlbmRpZgorICAgIElHTk9S
RV9XQVJOSU5HX0NMQU5HKCItV3VudXNlZC1wcml2YXRlLWZpZWxkIik7CiAjZW5kaWYKICAgICBX
ZWJQYWdlICptX3BhZ2U7CiAjaWYgUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVd1bnVzZWQtcHJpdmF0ZS1m
aWVsZCIpOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KaW5kZXgg
YTg3N2U3ZmNmYTBhMzk4Nzk3NzcwYTE0MzQ0OTA1ZmY5NzMwMzJmMC4uN2MzY2Q4ZDJmODY2ODJl
NGM3NzA4OWI2YjZkNDc4ZmJmNjJlMDM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5t
bQpAQCAtNzIsMTAgKzcyLDkgQEAgc3RhdGljIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGNvbnZl
cnRJbWFnZVRvQml0bWFwKE5TSW1hZ2UgKmltYWdlLCBjb25zdCBJbnRTaXoKIAogICAgIFJldGFp
blB0cjxOU0dyYXBoaWNzQ29udGV4dD4gc2F2ZWRDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0
IGN1cnJlbnRDb250ZXh0XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OltOU0dyYXBoaWNzQ29udGV4
dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmdyYXBoaWNzQ29udGV4dC0+cGxhdGZv
cm1Db250ZXh0KCkgZmxpcHBlZDpZRVNdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAsIGJpdG1hcC0+c2l6ZSgp
LndpZHRoKCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpOU1plcm9SZWN0IG9w
ZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3Bl
Y3RGbGlwcGVkOllFUyBoaW50czpuaWxdOwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1
cnJlbnRDb250ZXh0OnNhdmVkQ29udGV4dC5nZXQoKV07CkBAIC0xMTMsMTAgKzExMiw5IEBAIHN0
YXRpYyBXZWJDb3JlOjpDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2UoRWxlbWVudCYgZWxlbWVudCkK
IAogdm9pZCBXZWJEcmFnQ2xpZW50OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkTmFtZSwgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgbGFiZWwsIEZyYW1lKikKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgIEFTU0VSVChwYXN0ZWJvYXJkTmFtZSA9PSBTdHJpbmcoTlNEcmFnUGJvYXJk
KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICBXZWJDb3JlOjpDYWNo
ZWRJbWFnZSogaW1hZ2UgPSBjYWNoZWRJbWFnZShlbGVtZW50KTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VP
YmplY3RNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nl
c3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQppbmRleCBmZTk0ZTg1ZTQ3MGY0YTg3ZTU5ZmU5
ZDdlY2Y4NDQyZmVlNTdjZjMzLi5kM2Q5YTE1NTZkMzA1NmRhNDFiZTU0Mzg5M2YzOGRjYWM4ZTBj
ODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tB
Y2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQpAQCAt
MTkyLDggKzE5Miw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgcmV0dXJuIFlFUzsK
IH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIC0gKGlkKWFjY2Vz
c2liaWxpdHlIaXRUZXN0OihOU1BvaW50KXBvaW50CiB7CiAgICAgaWYgKCFtX3BhZ2UpCkBAIC0y
MTUsNyArMjE0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogICAgIHJldHVybiBbW3Nl
bGYgYWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFwcGVyXSBhY2Nlc3NpYmlsaXR5SGl0VGVzdDpj
b252ZXJ0ZWRQb2ludF07CiB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVf
V0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikK
IAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9X
ZWJQYWdlTWFjLm1tCmluZGV4IGRhN2M5OGY2OGM0ODE4OTA3M2RiZWE0NzQ4NzFmZjJjYWI2YTU4
MWEuLjZjYzEzMzdkMTE1NDFhZjY5MWEyNWM2MzNjMDY1YzU3ZjIzOGVjNWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC04
MTgsMTEgKzgxOCwxMCBAQCBzdGF0aWMgdm9pZCBkcmF3UERGUGFnZShQREZEb2N1bWVudCAqcGRm
RG9jdW1lbnQsIENGSW5kZXggcGFnZUluZGV4LCBDR0NvbnRleHRSZQogICAgIH0KIAogICAgIFtO
U0dyYXBoaWNzQ29udGV4dCBzYXZlR3JhcGhpY3NTdGF0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6
W05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Y29udGV4
dCBmbGlwcGVkOk5PXV07CiAgICAgW3BkZlBhZ2UgZHJhd1dpdGhCb3g6a1BERkRpc3BsYXlCb3hD
cm9wQm94XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklO
R19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbTlNHcmFwaGlj
c0NvbnRleHQgcmVzdG9yZUdyYXBoaWNzU3RhdGVdOwogCiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0g
dHJhbnNmb3JtID0gQ0dDb250ZXh0R2V0Q1RNKGNvbnRleHQpOwpAQCAtODMxLDEwICs4MzAsOSBA
QCBzdGF0aWMgdm9pZCBkcmF3UERGUGFnZShQREZEb2N1bWVudCAqcGRmRG9jdW1lbnQsIENGSW5k
ZXggcGFnZUluZGV4LCBDR0NvbnRleHRSZQogICAgICAgICBpZiAoIVthbm5vdGF0aW9uIGlzS2lu
ZE9mQ2xhc3M6cGRmQW5ub3RhdGlvbkxpbmtDbGFzcygpXSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIFBERkFu
bm90YXRpb25MaW5rICpsaW5rQW5ub3RhdGlvbiA9IChQREZBbm5vdGF0aW9uTGluayAqKWFubm90
YXRpb247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJO
SU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBOU1VS
TCAqdXJsID0gW2xpbmtBbm5vdGF0aW9uIFVSTF07CiAgICAgICAgIGlmICghdXJsKQogICAgICAg
ICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJi
b24vQ2FyYm9uVXRpbHMubSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25V
dGlscy5tCmluZGV4IGI3OTVlOWI0MmE2ZTcxNDg1ZGQxNzdjY2Q5ZGRjNzNhNDk0N2UwZGYuLjA1
OGEzYjQwM2EwYmE4YjJiODI5YTY5M2I0ZDYwZmI4MjA1MGRjNWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25VdGlscy5tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25VdGlscy5tCkBAIC04NywxMCArODcsOSBAQCBzdGF0
aWMgdW5zaWduZWQgZ2V0TlNBdXRvcmVsZWFzZVBvb2xDb3VudCh2b2lkKQogUG9vbENsZWFuZXIo
IEV2ZW50TG9vcFRpbWVyUmVmIGluVGltZXIsIEV2ZW50TG9vcElkbGVUaW1lck1lc3NhZ2UgaW5T
dGF0ZSwgdm9pZCAqaW5Vc2VyRGF0YSApCiB7CiAgICAgaWYgKCBpblN0YXRlID09IGtFdmVudExv
b3BJZGxlVGltZXJTdGFydGVkICkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Nhc3QtcXVhbCIKKyAgICAgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkcoIi1XY2FzdC1xdWFsIik7CiAgICAgICAgIENGU3RyaW5nUmVmIG1v
ZGUgPSBDRlJ1bkxvb3BDb3B5Q3VycmVudE1vZGUoIChDRlJ1bkxvb3BSZWYpR2V0Q0ZSdW5Mb29w
RnJvbUV2ZW50TG9vcCggR2V0Q3VycmVudEV2ZW50TG9vcCgpICkpOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XY2FzdC1x
dWFsIik7CiAgICAgICAgIEV2ZW50TG9vcFJlZiB0aGlzTG9vcCA9IEdldEN1cnJlbnRFdmVudExv
b3AgKCk7CiAgICAgICAgIGlmICggQ0ZFcXVhbCggbW9kZSwga0NGUnVuTG9vcERlZmF1bHRNb2Rl
ICkgJiYgdGhpc0xvb3AgPT0gcG9vbExvb3ApIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGN1cnJl
bnROdW1Qb29scyA9IGdldE5TQXV0b3JlbGVhc2VQb29sQ291bnQoKS0xOyAgICAgICAgICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0Fk
YXB0ZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRh
cHRlci5tbQppbmRleCBkMTUyMmYzZjAyM2VmMGY2ZGUzMzYyYmRhM2IzMDQ5NDc4ODhjMGJmLi5m
M2Q0MjNlYjI5OGQ0NzM1ODQ5MDVhYjAwZjE5ZjFjNTdiZGY0ZTg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQpAQCAt
MTc3LDEwICsxNzcsOSBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVu
dChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAgIC8vIEJ1dCBub3cg
dGhlIG5vbi1yZXRhaW5lZCB3aW5kb3cgY2xhc3MgaXMgYSBDYXJib24gc2VjcmV0IHRoYXQncyBu
b3QgZXZlbiBpbgogICAgIC8vIFdpbmRvd3NQcml2Lmg7IG1heWJlIHdlJ2xsIGhhdmUgdG8gcmV2
aXNpdCB0aGlzIGlmIHNvbWVvbmUgbmVlZHMgdG8gdXNlIFdlYktpdAogICAgIC8vIGluIGEgbm9u
LXJldGFpbmVkIHdpbmRvdy4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAg
IGJhY2tpbmdTdG9yZVR5cGUgPSBOU0JhY2tpbmdTdG9yZVJldGFpbmVkOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgLy8gRmlndXJlIG91dCB0aGUgd2luZG93J3Mgc3R5
bGUgbWFzay4KICAgICBzdHlsZU1hc2sgPSBfTlNDYXJib25XaW5kb3dNYXNrOwpAQCAtMjA1LDEw
ICsyMDQsOSBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVu
dEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAgIC8vIERvIHNvbWUgc3RhbmRh
cmQgQ29jb2EgaW5pdGlhbGl6YXRpb24uICBUaGUgZGVmZXIgYXJndW1lbnQncyB2YWx1ZSBpcyBZ
RVMgYmVjYXVzZSB3ZSBkb24ndCB3YW50IC1bTlNXaW5kb3cgX2NvbW1vbkF3YWtlXSB0byBnZXQg
Y2FsbGVkLiAgSXQgZG9lc24ndCBhcHBlYXIgdGhhdCBhbnkgcmVsZXZhbnQgTlNXaW5kb3cgY29k
ZSBjaGVja3MgX3dGbGFncy5kZWZlcnJlZCwgc28gd2Ugc2hvdWxkIGJlIGFibGUgdG8gZ2V0IGF3
YXkgd2l0aCB0aGUgbGllLgogICAgIHNlbGYgPSAoQ2FyYm9uV2luZG93QWRhcHRlciopW3N1cGVy
IF9pbml0Q29udGVudDpudWxscHRyIHN0eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpiYWNraW5n
U3RvcmVUeXBlIGRlZmVyOllFUyBjb250ZW50VmlldzpjYXJib25XaW5kb3dDb250ZW50Vmlld107
CiAgICAgaWYgKCFzZWxmKSByZXR1cm4gbmlsOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgYXNzZXJ0KF9jb250ZW50Vmlldyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAKICAgICAvLyBSZWNvcmQgYWNjdXJhdGVseSB3aGV0aGVyIG9yIG5vdCB0aGlz
IHdpbmRvdyBoYXMgYSBzaGFkb3csIGluIGNhc2Ugc29tZW9uZSBhc2tzLgogIC8vICAgX2F1eGls
aWFyeVN0b3JhZ2UtPl9hdXhXRmxhZ3MuaGFzU2hhZG93ID0gKHdpbmRvd0F0dHJpYnV0ZXMgJiBr
V2luZG93Tm9TaGFkb3dBdHRyaWJ1dGUpID8gTk8gOiBZRVM7CkBAIC0yODEsMTAgKzI3OSw5IEBA
IHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNh
bGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAgICAgLy8gZmx1c2hlcyBpdC4KIAogICAgIGlmIChb
c2VsZiB3aW5kb3dOdW1iZXJdICE9IC0xKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSAoQ0dDb250ZXh0UmVm
KVtbc2VsZiBfdGhyZWFkQ29udGV4dF0gZ3JhcGhpY3NQb3J0XTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIENHQ29udGV4dFN5bmNocm9uaXplKGNnQ29udGV4
dCk7CiAgICAgfQogfQpAQCAtMzc0LDExICszNzEsMTAgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2Fy
Ym9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNh
bGwKICAgICAvLyBJbml0aWFsaXplIGZvciBzYWZlIHJldHVybmluZy4KICAgICBCT09MIHJlY29u
Y2lsaWF0aW9uV2FzTmVjZXNzYXJ5ID0gTk87CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgIC8vIFByZWNvbmRpdGlvbiBjaGVjay4KICAgICBhc3NlcnQoX2NvbnRlbnRW
aWV3KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19D
TEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIC8vIEdldCB0aGUg
Q2FyYm9uIHdpbmRvdydzIGJvdW5kcywgd2hpY2ggYXJlIGV4cHJlc3NlZCBpbiBnbG9iYWwgc2Ny
ZWVuIGNvb3JkaW5hdGVzLCB3aXRoICgwLDApIGF0IHRoZSB0b3AtbGVmdCBvZiB0aGUgbWFpbiBz
Y3JlZW4uCiAgICAgb3NTdGF0dXMgPSBHZXRXaW5kb3dCb3VuZHMoX3dpbmRvd1JlZiwga1dpbmRv
d1N0cnVjdHVyZVJnbiwgJndpbmRvd1N0cnVjdHVyZUJvdW5kc1JlY3QpOwpAQCAtMzkzLDI4ICsz
ODksMjYgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRI
YW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKICAgICBuZXdXaW5kb3dGcmFtZVJlY3Qu
b3JpZ2luLnkgPSBOU01heFkoWyhOU1NjcmVlbiAqKVtbTlNTY3JlZW4gc2NyZWVuc10gb2JqZWN0
QXRJbmRleDowXSBmcmFtZV0pIC0gd2luZG93U3RydWN0dXJlQm91bmRzUmVjdC5ib3R0b207CiAg
ICAgbmV3V2luZG93RnJhbWVSZWN0LnNpemUud2lkdGggPSB3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNS
ZWN0LnJpZ2h0IC0gd2luZG93U3RydWN0dXJlQm91bmRzUmVjdC5sZWZ0OwogICAgIG5ld1dpbmRv
d0ZyYW1lUmVjdC5zaXplLmhlaWdodCA9IHdpbmRvd1N0cnVjdHVyZUJvdW5kc1JlY3QuYm90dG9t
IC0gd2luZG93U3RydWN0dXJlQm91bmRzUmVjdC50b3A7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiKTsKICAgICBpZiAoIU5TRXF1YWxSZWN0cyhuZXdXaW5kb3dGcmFtZVJlY3QsIF9m
cmFtZSkpIHsKICAgICAgICAgW3NlbGYgX3NldEZyYW1lOm5ld1dpbmRvd0ZyYW1lUmVjdF07CiAg
ICAgICAgIFtfYm9yZGVyVmlldyBzZXRGcmFtZVNpemU6bmV3V2luZG93RnJhbWVSZWN0LnNpemVd
OwogICAgICAgICByZWNvbmNpbGlhdGlvbldhc05lY2Vzc2FyeSA9IFlFUzsKICAgICB9Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICAvLyBTZXQgdGhlIGNvbnRlbnQgdmll
dydzIGZyYW1lIHJlY3QgZnJvbSB0aGUgQ2FyYm9uIHdpbmRvdydzIGNvbnRlbnQgcmVnaW9uIGJv
dW5kcy4KICAgICBuZXdDb250ZW50RnJhbWVSZWN0Lm9yaWdpbi54ID0gd2luZG93Q29udGVudEJv
dW5kc1JlY3QubGVmdCAtIHdpbmRvd1N0cnVjdHVyZUJvdW5kc1JlY3QubGVmdDsKICAgICBuZXdD
b250ZW50RnJhbWVSZWN0Lm9yaWdpbi55ID0gd2luZG93U3RydWN0dXJlQm91bmRzUmVjdC5ib3R0
b20gLSB3aW5kb3dDb250ZW50Qm91bmRzUmVjdC5ib3R0b207CiAgICAgbmV3Q29udGVudEZyYW1l
UmVjdC5zaXplLndpZHRoID0gd2luZG93Q29udGVudEJvdW5kc1JlY3QucmlnaHQgLSB3aW5kb3dD
b250ZW50Qm91bmRzUmVjdC5sZWZ0OwogICAgIG5ld0NvbnRlbnRGcmFtZVJlY3Quc2l6ZS5oZWln
aHQgPSB3aW5kb3dDb250ZW50Qm91bmRzUmVjdC5ib3R0b20gLSB3aW5kb3dDb250ZW50Qm91bmRz
UmVjdC50b3A7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBvbGRDb250
ZW50RnJhbWVSZWN0ID0gWyhOU1ZpZXcgKilfY29udGVudFZpZXcgZnJhbWVdOwogICAgIGlmICgh
TlNFcXVhbFJlY3RzKG5ld0NvbnRlbnRGcmFtZVJlY3QsIG9sZENvbnRlbnRGcmFtZVJlY3QpKSB7
CiAgICAgICAgIFsoTlNWaWV3ICopX2NvbnRlbnRWaWV3IHNldEZyYW1lOm5ld0NvbnRlbnRGcmFt
ZVJlY3RdOwogICAgICAgICByZWNvbmNpbGlhdGlvbldhc05lY2Vzc2FyeSA9IFlFUzsKICAgICB9
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
RU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICAvLyBEb25lLgogICAgIHJl
dHVybiByZWNvbmNpbGlhdGlvbldhc05lY2Vzc2FyeTsKQEAgLTU5NSw4ICs1ODksNyBAQCBzdGF0
aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVm
IGluRXZlbnRIYW5kbGVyQ2FsbAogLy8gVGhpcyBmdW5jdGlvbiBpcyBtb3N0bHkgY3V0LWFuZC1w
YXN0ZWQgZnJvbSAtW05TV2luZG93IF90ZXJtV2luZG93SWZPd25lcl0uICBNLlAuIE5vdGljZSAt
IDgvNy8wMAogLSAodm9pZClfdGVybVdpbmRvd0lmT3duZXIKIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgIFtzZWxmIF9zZXRXaW5kb3dOdW1iZXI6LTFdOwogICAgIF93
RmxhZ3MuaXNUZXJtaW5hdGluZyA9IFlFUzsKICAgICBpZiAoX3dpbmRvd1JlZiAmJiBfd2luZG93
UmVmSXNPd25lZCkKQEAgLTYwNiw3ICs1OTksNyBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25X
aW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAog
Ly8gICAgICAgIFtfYm9yZGVyVmlldyBzZXRTaGFkb3dTdGF0ZTprRnJhbWVTaGFkb3dOb25lXTsK
IC8vICAgIH0KICAgICBfd0ZsYWdzLmlzVGVybWluYXRpbmcgPSBOTzsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogCkBAIC02MjYsMTAgKzYxOSw5IEBAIHN0YXRpYyBPU1N0
YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVu
dEhhbmRsZXJDYWxsCiAgICAgW3N1cGVyIF93aW5kb3dNb3ZlZFRvUmVjdDphY3R1YWxGcmFtZV07
CiAKICAgICAvLyBMZXQgQ2FyYm9uIGtub3cgdGhhdCB0aGUgd2luZG93IGhhcyBiZWVuIG1vdmVk
LCB1bmxlc3MgdGhpcyBtZXRob2QgaXMgYmVpbmcgY2FsbGVkICJlYXJseS4iCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBpZiAoX3dGbGFncy52aXNpYmxlKSB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VO
RCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBvc1N0YXR1cyA9IF9TeW5j
V2luZG93V2l0aENHQWZ0ZXJNb3ZlKF93aW5kb3dSZWYpOwogICAgICAgICBpZiAob3NTdGF0dXMh
PW5vRXJyKSBOU0xvZyhAIkEgQ2FyYm9uIHdpbmRvdydzIGJvdW5kcyBjb3VsZG4ndCBiZSBzeW5j
aHJvbml6ZWQgKCVpKS4iLCAoaW50KW9zU3RhdHVzKTsKICAgICB9CkBAIC03NTgsMTEgKzc1MCwx
MCBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRs
ZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAgIFJlY3Qgd2luZG93Q29udGVudEJvdW5k
c1JlY3Q7CiAKICAgICAvLyBQcmVjb25kaXRpb24gY2hlY2suCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICBhc3NlcnQoX2JvcmRlclZpZXcpOwogICAgIGFzc2VydChbX2Jv
cmRlclZpZXcgaXNLaW5kT2ZDbGFzczpbQ2FyYm9uV2luZG93RnJhbWUgY2xhc3NdXSk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgYXNzZXJ0KF93aW5kb3dSZWYpOwogCiAg
ICAgLy8gUGFyYW1ldGVyIGNoZWNrLgpAQCAtNzc2LDggKzc2Nyw3IEBAIHN0YXRpYyBPU1N0YXR1
cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhh
bmRsZXJDYWxsCiAgICAgY29udGVudEZyYW1lUmVjdC5zaXplLndpZHRoID0gd2luZG93Q29udGVu
dEJvdW5kc1JlY3QucmlnaHQgLSB3aW5kb3dDb250ZW50Qm91bmRzUmVjdC5sZWZ0OwogICAgIGNv
bnRlbnRGcmFtZVJlY3Quc2l6ZS5oZWlnaHQgPSB3aW5kb3dDb250ZW50Qm91bmRzUmVjdC5ib3R0
b20gLSB3aW5kb3dDb250ZW50Qm91bmRzUmVjdC50b3A7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgIC8vIElmIHRoZSBjb250ZW50IHZpZXcgaXMgc3RpbGwgaW4gc29t
ZSBvdGhlciB2aWV3IGhpZXJhcmNoeSwgcHJ5IGl0IGZyZWUuCiAgICAgW19jb250ZW50VmlldyBy
ZW1vdmVGcm9tU3VwZXJ2aWV3XTsKICAgICBhc3NlcnQoIVtfY29udGVudFZpZXcgc3VwZXJ2aWV3
XSk7CkBAIC03OTEsNyArNzgxLDcgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFu
ZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKIAogICAgIC8v
IFRlbGwgdGhlIGNvbnRlbnQgdmlldyBpdCdzIG5ldyBwbGFjZSBpbiB0aGUgcmVzcG9uZGVyIGNo
YWluLgogICAgIFtfY29udGVudFZpZXcgc2V0TmV4dFJlc3BvbmRlcjpzZWxmXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogCkBAIC05NDQsMTAgKzkzNCw5IEBAIENsZWFu
VXA6CiAgICAgSElSZWN0IGZyYW1lOwogCiAgICAgSElWaWV3R2V0RnJhbWUocm9vdCwgJmZyYW1l
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklO
R19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtfYm9yZGVyVmlldyBz
ZXRGcmFtZVNpemU6KihOU1NpemUqKSZmcmFtZS5zaXplXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiKTsKIH0KIAogLSAodm9pZClfaGFuZGxlQ29udGVudEJvdW5kc0NoYW5nZWQKQEAg
LTk2NCwxMyArOTUzLDEyIEBAIENsZWFuVXA6CiAgICAgLy8gU2V0IHRoZSBjb250ZW50IHZpZXcn
cyBmcmFtZSByZWN0IGZyb20gdGhlIENhcmJvbiB3aW5kb3cncyBjb250ZW50IHJlZ2lvbiBib3Vu
ZHMuCiAgICAgY29udGVudEZyYW1lLm9yaWdpbi55ID0gcm9vdEJvdW5kcy5zaXplLmhlaWdodCAt
IENHUmVjdEdldE1heFkoY29udGVudEZyYW1lKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAgICAgb2xkQ29udGVudEZyYW1lUmVjdCA9IFsoTlNWaWV3ICopX2NvbnRlbnRW
aWV3IGZyYW1lXTsKICAgICBpZiAoIU5TRXF1YWxSZWN0cygqKE5TUmVjdCopJmNvbnRlbnRGcmFt
ZSwgb2xkQ29udGVudEZyYW1lUmVjdCkpIHsKICAgICAgICAgWyhOU1ZpZXcgKilfY29udGVudFZp
ZXcgc2V0RnJhbWU6KihOU1JlY3QqKSZjb250ZW50RnJhbWVdOwogICAgIH0KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKIH0KIAogLSAoT1NTdGF0dXMpX2hhbmRsZUNhcmJvbkV2ZW50
OihFdmVudFJlZilpbkV2ZW50IGNhbGxSZWY6KEV2ZW50SGFuZGxlckNhbGxSZWYpaW5DYWxsUmVm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93
RnJhbWUubSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dGcmFt
ZS5tCmluZGV4IGU5MjZlYjZjMjFlMGZhODhmMjhkYzRhMDYxYzM5MDIyNTMyNWViOTcuLjdlZmZm
MTY1ZjllOGM3YWRjYWM2NmM1M2YzYWM0OWMwOTAxMDQ1MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dGcmFtZS5tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dGcmFtZS5tCkBAIC0yNDEsMTAgKzI0
MSw5IEBAIC0gKE5TU3RyaW5nICopdGl0bGUgewogICAgIHdpbmRvd1JlZiA9IFtjYXJib25XaW5k
b3cgd2luZG93UmVmXTsKICAgICBvc1N0YXR1cyA9IENvcHlXaW5kb3dUaXRsZUFzQ0ZTdHJpbmco
d2luZG93UmVmLCAmd2luZG93VGl0bGUpOwogICAgIGlmIChvc1N0YXR1cz09bm9FcnIpIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdjYXN0LXF1YWwiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Nhc3Qt
cXVhbCIpOwogICAgICAgICB3aW5kb3dUaXRsZUFzTlNTdHJpbmcgPSAoTlNTdHJpbmcgKil3aW5k
b3dUaXRsZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfRU5EKCItV2Nhc3QtcXVhbCIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIE5T
TG9nKEAiQSBDYXJib24gd2luZG93J3MgdGl0bGUgY291bGRuJ3QgYmUgZ290dGVuLiIpOwogICAg
ICAgICB3aW5kb3dUaXRsZUFzTlNTdHJpbmcgPSBAIiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DYXJib24vSElWaWV3QWRhcHRlci5tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2FyYm9uL0hJVmlld0FkYXB0ZXIubQppbmRleCBmM2Q5OTY1YWI3ZmQxMzg0YWJiNTVl
NTljNWEwOTQ0YjVlNjAxZTcwLi42MjliMjM1MTkxNzhlMDZlNzRkYzhlZGIxNjUxYTE4ZjA2NjMz
MTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vSElWaWV3QWRh
cHRlci5tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVy
Lm0KQEAgLTg4LDEwICs4OCw5IEBAICsgKHZvaWQpYmluZEhJVmlld1RvTlNWaWV3OihISVZpZXdS
ZWYpaGlWaWV3IG5zVmlldzooTlNWaWV3Kiluc1ZpZXcKIAogKyAoSElWaWV3UmVmKWdldEhJVmll
d0Zvck5TVmlldzooTlNWaWV3KilpblZpZXcKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdjYXN0LXF1YWwiCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XY2FzdC1xdWFsIik7CiAgICAgcmV0dXJuIHNWaWV3TWFw
ID8gKEhJVmlld1JlZilDRkRpY3Rpb25hcnlHZXRWYWx1ZShzVmlld01hcCwgaW5WaWV3KSA6IE5V
TEw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfRU5EKCItV2Nhc3QtcXVhbCIpOwogfQogCiArICh2b2lkKXVuYmluZE5TVmlldzooTlNWaWV3
KilpblZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVdl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vSElXZWJWaWV3Lm1tCmlu
ZGV4IDQwNmI3NzlmYWNmN2EzZDQxNGJiMmRmY2EzOTU1MTY0ZTc2MjkyNmEuLjIyZjZjZTM3OWFk
NmE5MDFhNzZiZjQzYzY1NTc4ZWZhOTEwODIzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2FyYm9uL0hJV2ViVmlldy5tbQpAQCAtMjg4LDExICsyODgsMTAgQEAgc3RhdGljIFVJbnQz
MiBHZXRCZWhhdmlvcnMoKQogCiBzdGF0aWMgQ0dDb250ZXh0UmVmIG92ZXJyaWRlQ0dDb250ZXh0
KE5TV2luZG93ICp3aW5kb3csIENHQ29udGV4dFJlZiBjb250ZXh0KQogewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgTlNXaW5kb3dHcmFwaGljc0NvbnRleHQgKmdyYXBo
aWNzQ29udGV4dCA9IChOU1dpbmRvd0dyYXBoaWNzQ29udGV4dCAqKXdpbmRvdy5ncmFwaGljc0Nv
bnRleHQ7CiAgICAgQ0dDb250ZXh0UmVmIHNhdmVkQ29udGV4dCA9IChDR0NvbnRleHRSZWYpZ3Jh
cGhpY3NDb250ZXh0LmdyYXBoaWNzUG9ydDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICBDR0NvbnRleHRSZXRhaW4oc2F2ZWRDb250ZXh0KTsKICAgICBbZ3JhcGhpY3NDb250
ZXh0IF93ZWJfc2V0R3JhcGhpY3NQb3J0OmNvbnRleHRdOwogICAgIHJldHVybiBzYXZlZENvbnRl
eHQ7CkBAIC0zMDAsMTAgKzI5OSw5IEBAIHN0YXRpYyBDR0NvbnRleHRSZWYgb3ZlcnJpZGVDR0Nv
bnRleHQoTlNXaW5kb3cgKndpbmRvdywgQ0dDb250ZXh0UmVmIGNvbnRleHQpCiAKIHN0YXRpYyB2
b2lkIHJlc3RvcmVDR0NvbnRleHQoTlNXaW5kb3cgKndpbmRvdywgQ0dDb250ZXh0UmVmIHNhdmVk
Q29udGV4dCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05P
UkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5TV2lu
ZG93R3JhcGhpY3NDb250ZXh0ICpncmFwaGljc0NvbnRleHQgPSAoTlNXaW5kb3dHcmFwaGljc0Nv
bnRleHQgKil3aW5kb3cuZ3JhcGhpY3NDb250ZXh0OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgIFtncmFwaGljc0NvbnRleHQgX3dlYl9zZXRHcmFwaGljc1BvcnQ6c2F2ZWRD
b250ZXh0XTsKICAgICBDR0NvbnRleHRSZWxlYXNlKHNhdmVkQ29udGV4dCk7CiB9CkBAIC0zMjMs
OCArMzIxLDcgQEAgc3RhdGljIHZvaWQgRHJhdyhISVdlYlZpZXcqIGluVmlldywgUmduSGFuZGxl
IGxpbWl0UmduLCBDR0NvbnRleHRSZWYgaW5Db250ZXh0KQogICAgICAgICBHcmFmUHRyIHBvcnQ7
CiAgICAgICAgIFJlY3QgcG9ydFJlY3Q7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKICAgICAgICAgR2V0UG9ydCgmcG9ydCk7CiAgICAgICAgIEdldFBvcnRCb3VuZHMo
cG9ydCwgJnBvcnRSZWN0KTsKICAgICAgICAgQ3JlYXRlQ0dDb250ZXh0Rm9yUG9ydChwb3J0LCAm
aW5Db250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET00u
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NLm1tCmluZGV4IDhlYmI4YTBkYWY2
MzQ1ZjIxOTAzZDZmZWNiMjRkOGYxNGUwNmMyYTEuLjBmOThhZDUwNWQ0ZDFmZjBmNTE0NmNiNTVh
Y2EyODIzMTVkN2JlNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9E
T00ubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5tbQpAQCAtMjQ0LDgg
KzI0NCw3IEBAIHN0YXRpYyBpbmxpbmUgV0tRdWFkIHplcm9RdWFkKCkKIAogQGltcGxlbWVudGF0
aW9uIERPTU5vZGUgKFdlYkNvcmVJbnRlcm5hbCkKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV29iamMtcHJvdG9jb2wt
bWV0aG9kLWltcGxlbWVudGF0aW9uIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCIt
V29iamMtcHJvdG9jb2wtbWV0aG9kLWltcGxlbWVudGF0aW9uIikKIAogLSAoTlNTdHJpbmcgKilk
ZXNjcmlwdGlvbgogewpAQCAtMjU5LDcgKzI1OCw3IEBAIHN0YXRpYyBpbmxpbmUgV0tRdWFkIHpl
cm9RdWFkKCkKICAgICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8JUAgWyVA
XTogJXA+IiwgW1tzZWxmIGNsYXNzXSBkZXNjcmlwdGlvbl0sIFtzZWxmIG5vZGVOYW1lXSwgX2lu
dGVybmFsXTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdvYmpjLXByb3RvY29sLW1ldGhvZC1pbXBsZW1lbnRh
dGlvbiIpCiAKIC0gKEJpbmRpbmdzOjpSb290T2JqZWN0Kilfcm9vdE9iamVjdAogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5LmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnkuaAppbmRleCBmODNjNTI0ZDE5
ZGViNzYyN2VjNWVkMjU5ZTFkYTZiNDZiMTFkZjY5Li4zODk4YjdkOWM5OTVmZGRiNDM2MTVhN2Rl
Y2IxNjBhYWZiMDA1NDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0
b3J5L1dlYkhpc3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dl
Ykhpc3RvcnkuaApAQCAtMTI4LDEwICsxMjgsOSBAQCBXRUJLSVRfQ0xBU1NfREVQUkVDQVRFRF9N
QUMoMTBfMywgMTBfMTQpCiAgICAgQHBhcmFtIGNhbGVuZGFyRGF0ZSBBIGRhdGUgaWRlbnRpZnlp
bmcgdGhlIHVuaXF1ZSBkYXkgb2YgaW50ZXJlc3QuCiAgICAgQHJlc3VsdCBSZXR1cm5zIGFuIGFy
cmF5IG9mIFdlYkhpc3RvcnlJdGVtcyBsYXN0IHZpc2l0ZWQgb24gdGhlIGluZGljYXRlZCBkYXku
CiAqLwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIC0gKE5TQXJyYXkg
KilvcmRlcmVkSXRlbXNMYXN0VmlzaXRlZE9uRGF5OihOU0NhbGVuZGFyRGF0ZSAqKWNhbGVuZGFy
RGF0ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NMQU5H
X1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogI2VuZGlmCiAKIC8q
IQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5Lm1tCmluZGV4
IDkwNDk2YmJiOTkzNjQyOTk2YmY1YTI0NTZkZjg2ODhkZjg2NTYwN2IuLjJmNDA0ZmUwOGQ2YTUy
ZTYxOTIyZDBlNjAxMjU2MTdmNWQ3ZDBlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9IaXN0b3J5L1dlYkhpc3RvcnkubW0KQEAgLTQ0Niw4ICs0NDYsNyBAQCBzdGF0aWMgaW5saW5l
IFdlYkhpc3RvcnlEYXRlS2V5IGRhdGVLZXkoTlNUaW1lSW50ZXJ2YWwgZGF0ZSkKIAogLy8gTUFS
SzogREFURS1CQVNFRCBSRVRSSUVWQUwKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIikKIAogLSAoTlNBcnJheSAqKW9yZGVyZWRMYXN0VmlzaXRlZERheXMKIHsKQEAgLTQ3
OSw3ICs0NzgsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkhpc3RvcnlEYXRlS2V5IGRhdGVLZXkoTlNU
aW1lSW50ZXJ2YWwgZGF0ZSkKICAgICByZXR1cm4gX2VudHJpZXNCeURhdGUtPmdldChkYXRlS2V5
KS5nZXQoKTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfVE9QX0xFVkVMX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCiAKIC8v
IE1BUks6IFVSTCBNQVRDSElORwogCkBAIC01MzEsOCArNTMwLDcgQEAgc3RhdGljIGlubGluZSBX
ZWJIaXN0b3J5RGF0ZUtleSBkYXRlS2V5KE5TVGltZUludGVydmFsIGRhdGUpCiAgICAgcmV0dXJu
IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGludGVnZXJGb3JLZXk6QCJX
ZWJLaXRIaXN0b3J5SXRlbUxpbWl0Il07CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKK0lHTk9SRV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpCiAKIC8vIFJldHVybiBhIGRhdGUgdGhhdCBtYXJrcyB0aGUgYWdlIGxpbWl0
IGZvciBoaXN0b3J5IGVudHJpZXMgc2F2ZWQgdG8gb3IKIC8vIGxvYWRlZCBmcm9tIGRpc2suIEFu
eSBlbnRyeSBvbGRlciB0aGFuIHRoaXMgaXRlbSBzaG91bGQgYmUgcmVqZWN0ZWQuCkBAIC01NDIs
NyArNTQwLDcgQEAgc3RhdGljIGlubGluZSBXZWJIaXN0b3J5RGF0ZUtleSBkYXRlS2V5KE5TVGlt
ZUludGVydmFsIGRhdGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBob3VyczowIG1pbnV0ZXM6MCBzZWNvbmRzOjBdOwogfQogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5E
KCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogLSAoQk9PTClsb2FkSGlzdG9yeUd1dHNG
cm9tVVJMOihOU1VSTCAqKVVSTCBzYXZlZEl0ZW1zQ291bnQ6KGludCAqKW51bWJlck9mSXRlbXNM
b2FkZWQgY29sbGVjdERpc2NhcmRlZEl0ZW1zSW50bzooTlNNdXRhYmxlQXJyYXkgKilkaXNjYXJk
ZWRJdGVtcyBlcnJvcjooTlNFcnJvciAqKillcnJvcgogewpAQCAtNTYxLDEwICs1NTksOSBAQCBz
dGF0aWMgaW5saW5lIFdlYkhpc3RvcnlEYXRlS2V5IGRhdGVLZXkoTlNUaW1lSW50ZXJ2YWwgZGF0
ZSkKICAgICAgICAgICAgIHJldHVybiBOTzsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NM
QU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIE5TRGF0YSAqZGF0YSA9
IFtOU1VSTENvbm5lY3Rpb24gc2VuZFN5bmNocm9ub3VzUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOlVSTF0gcmV0dXJuaW5nUmVzcG9uc2U6bmlsIGVycm9yOmVycm9yXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
RU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIGlmIChkYXRhLmxlbmd0
aCkKICAgICAgICAgICAgIGRpY3Rpb25hcnkgPSBbTlNQcm9wZXJ0eUxpc3RTZXJpYWxpemF0aW9u
IHByb3BlcnR5TGlzdFdpdGhEYXRhOmRhdGEgb3B0aW9uczpOU1Byb3BlcnR5TGlzdEltbXV0YWJs
ZSBmb3JtYXQ6bnVsbHB0ciBlcnJvcjpudWxscHRyXTsKICAgICB9CkBAIC03NjgsMTUgKzc2NSwx
NCBAQCBzdGF0aWMgaW5saW5lIFdlYkhpc3RvcnlEYXRlS2V5IGRhdGVLZXkoTlNUaW1lSW50ZXJ2
YWwgZGF0ZSkKICAgICByZXR1cm4gW19oaXN0b3J5UHJpdmF0ZSBvcmRlcmVkTGFzdFZpc2l0ZWRE
YXlzXTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorSUdOT1JFX1dB
Uk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKIAogLSAo
TlNBcnJheSAqKW9yZGVyZWRJdGVtc0xhc3RWaXNpdGVkT25EYXk6KE5TQ2FsZW5kYXJEYXRlICop
ZGF0ZQogewogICAgIHJldHVybiBbX2hpc3RvcnlQcml2YXRlIG9yZGVyZWRJdGVtc0xhc3RWaXNp
dGVkT25EYXk6ZGF0ZV07CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9S
RV9XQVJOSU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KQogCiAvLyBNQVJLOiBVUkwgTUFUQ0hJTkcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KaW5kZXggY2MxODU3YWYwMmJhYTA3OWVjOTJh
ODFlNDYwNTAwNTg5MjNhOWM5OC4uZGYxOWRmZTdiNjJmZjI3Njg5OWU1YTQ1YjU5YTU1OTNjNjlm
YzZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0
b3J5SXRlbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3Rv
cnlJdGVtLm1tCkBAIC0xOTksMTAgKzE5OSw5IEBAIHZvaWQgV0tOb3RpZnlIaXN0b3J5SXRlbUNo
YW5nZWQoSGlzdG9yeUl0ZW0qKQogI2lmICFQTEFURk9STShJT1MpCiAtIChOU0ltYWdlICopaWNv
bgogewotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5H
X0dDQygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIHJldHVybiBbW1dlYkljb25E
YXRhYmFzZSBzaGFyZWRJY29uRGF0YWJhc2VdIGljb25Gb3JVUkw6W3NlbGYgVVJMU3RyaW5nXSB3
aXRoU2l6ZTpXZWJJY29uU21hbGxTaXplXTsKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisg
ICAgSUdOT1JFX1dBUk5JTkdfR0NDX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2Vi
S2l0TlNTdHJpbmdFeHRyYXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktp
dE5TU3RyaW5nRXh0cmFzLm1tCmluZGV4IDdmOTk1MDJmMzZiNzQ5MjNmMzExZTAwNjFhZWJlMTRk
NzY2NDZjY2UuLjYxZWJlYmZjNzZlMTAyMGIxZDAxMmFmMzQ4OWQ2MGZmYjEyNzU4N2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0TlNTdHJpbmdFeHRyYXMu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJh
cy5tbQpAQCAtNzcsMTAgKzc3LDkgQEAgc3RhdGljIGJvb2wgY2FuVXNlRmFzdFJlbmRlcmVyKGNv
bnN0IFVuaUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKQogICAgICAgICBwb2ludC55ID0g
Q0dDZWlsaW5nKHBvaW50LnkpOwogCiAgICAgICAgIE5TR3JhcGhpY3NDb250ZXh0ICpuc0NvbnRl
eHQgPSBbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0g
c3RhdGljX2Nhc3Q8Q0dDb250ZXh0UmVmPihbbnNDb250ZXh0IGdyYXBoaWNzUG9ydF0pOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19F
TkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0
IGdyYXBoaWNzQ29udGV4dCB7IGNnQ29udGV4dCB9OwogCiAgICAgICAgIC8vIFdlYkNvcmUgcmVx
dWlyZXMgYSBmbGlwcGVkIGdyYXBoaWNzIGNvbnRleHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TSW1hZ2VFeHRyYXMubSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL01pc2MvV2ViTlNJbWFnZUV4dHJhcy5tCmluZGV4IGMzMjY0M2I0OThmYWU3MGZkMzEy
NGFlNWM0NTY5ZTAzZTk2YjJmYzEuLjBmOThlM2UwZTU2YjBiNjQ0NmY0M2FkNjYxOTRmNzFjYjcy
MmZhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNJbWFn
ZUV4dHJhcy5tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNJbWFnZUV4
dHJhcy5tCkBAIC01MywxMCArNTMsOSBAQCAtICh2b2lkKV93ZWJfc2NhbGVUb01heFNpemU6KE5T
U2l6ZSlzaXplCiAgICAgCiAgICAgaWYocmVzaXplRGVsdGEgPiAwLjApewogICAgICAgICBOU1Np
emUgbmV3U2l6ZSA9IE5TTWFrZVNpemUoKG9yaWdpbmFsU2l6ZS53aWR0aCAqIHJlc2l6ZURlbHRh
KSwgKG9yaWdpbmFsU2l6ZS5oZWlnaHQgKiByZXNpemVEZWx0YSkpOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBbc2VsZiBzZXRTY2FsZXNXaGVuUmVzaXpl
ZDpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FS
TklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgW3Nl
bGYgc2V0U2l6ZTpuZXdTaXplXTsKICAgICB9CiB9CkBAIC02NSwyOSArNjQsMjUgQEAgLSAodm9p
ZClfd2ViX2Rpc3NvbHZlVG9GcmFjdGlvbjooZmxvYXQpZGVsdGEKIHsKICAgICBOU0ltYWdlICpk
aXNzb2x2ZWRJbWFnZSA9IFtbTlNJbWFnZSBhbGxvY10gaW5pdFdpdGhTaXplOltzZWxmIHNpemVd
XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJO
SU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgTlNQb2ludCBwb2lu
dCA9IFtzZWxmIGlzRmxpcHBlZF0gPyBOU01ha2VQb2ludCgwLCBbc2VsZiBzaXplXS5oZWlnaHQp
IDogTlNaZXJvUG9pbnQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgCiAg
ICAgLy8gSW4gdGhpcyBjYXNlIHRoZSBkcmFnZ2luZyBpbWFnZSBpcyBhbHdheXMgY29ycmVjdC4K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19D
TEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtkaXNzb2x2ZWRJbWFnZSBz
ZXRGbGlwcGVkOltzZWxmIGlzRmxpcHBlZF1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogCiAgICAgW2Rpc3NvbHZlZEltYWdlIGxvY2tGb2N1c107Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbc2VsZiBkaXNzb2x2ZVRvUG9pbnQ6cG9pbnQgZnJhY3Rp
b246IGRlbHRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FS
TklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbZGlzc29s
dmVkSW1hZ2UgdW5sb2NrRm9jdXNdOwogCiAgICAgW3NlbGYgbG9ja0ZvY3VzXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtkaXNzb2x2ZWRJbWFnZSBjb21wb3NpdGVU
b1BvaW50OnBvaW50IG9wZXJhdGlvbjpOU0NvbXBvc2l0ZUNvcHldOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgIFtzZWxmIHVubG9ja0ZvY3VzXTsKIAogICAgIFtkaXNzb2x2
ZWRJbWFnZSByZWxlYXNlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01p
c2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlz
Yy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0KaW5kZXggZmEyM2M2Y2JkYjE0NmI4NjJjY2UyZWFl
NDgwYWVhMTE5OTZjMWJiMC4uY2JiNmIzNTcxYzAzMmI2NDkwZTljYjk4YWMyOTUxOTc0MzYyOGMx
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9h
cmRFeHRyYXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3Rl
Ym9hcmRFeHRyYXMubW0KQEAgLTE4NCwxMCArMTg0LDkgQEAgc3RhdGljIE5TQXJyYXkgKl93cml0
YWJsZVR5cGVzRm9ySW1hZ2VXaXRoQXJjaGl2ZSAodm9pZCkKIAogKyAoaW50KV93ZWJfc2V0Rmlu
ZFBhc3RlYm9hcmRTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHdpdGhPd25lcjooaWQpb3duZXIK
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklO
R19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5TUGFzdGVib2FyZCAq
ZmluZFBhc3RlYm9hcmQgPSBbTlNQYXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRoTmFtZTpOU0ZpbmRQ
Ym9hcmRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtmaW5kUGFzdGVi
b2FyZCBkZWNsYXJlVHlwZXM6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0OmxlZ2FjeVN0cmluZ1Bh
c3RlYm9hcmRUeXBlKCldIG93bmVyOm93bmVyXTsKICAgICBbZmluZFBhc3RlYm9hcmQgc2V0U3Ry
aW5nOnN0cmluZyBmb3JUeXBlOmxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRUeXBlKCldOwogICAgIHJl
dHVybiBbZmluZFBhc3RlYm9hcmQgY2hhbmdlQ291bnRdOwpAQCAtMjc5LDEwICsyNzgsOSBAQCBz
dGF0aWMgQ2FjaGVkSW1hZ2UqIGltYWdlRnJvbUVsZW1lbnQoRE9NRWxlbWVudCAqZG9tRWxlbWVu
dCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJjaGl2ZTooV2ViQXJjaGl2
ZSAqKWFyY2hpdmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZToo
V2ViSFRNTFZpZXcgKilzb3VyY2UKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogICAgIEFTU0VSVChzZWxmID09IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOk5T
RHJhZ1Bib2FyZF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgTlNT
dHJpbmcgKmV4dGVuc2lvbiA9IEAiIjsKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IHR5
cGVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6bGVn
YWN5RmlsZXNQcm9taXNlUGFzdGVib2FyZFR5cGUoKSwgbmlsXSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9QYW5lbHMvV2ViQXV0aGVudGljYXRpb25QYW5lbC5tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvUGFuZWxzL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubQppbmRl
eCA2N2YxOGI4ZjUzNzVlYWM1NDViMjNhNjNkYjk3NmY2OTQ3NmI3ZDRlLi4yOTg5YzUyMjRkMjVh
Mjk0ZTViNWRlMTRhMjJkZGIyNWFkYWU4ZWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9QYW5lbHMvV2ViQXV0aGVudGljYXRpb25QYW5lbC5tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1BhbmVscy9XZWJBdXRoZW50aWNhdGlvblBhbmVsLm0KQEAgLTEwNCwxMCAr
MTA0LDkgQEAgLSAoSUJBY3Rpb24pbG9nSW46KGlkKXNlbmRlcgogLSAoQk9PTClsb2FkTmliCiB7
CiAgICAgaWYgKCFuaWJMb2FkZWQpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKICAgICAgICAgaWYgKFtOU0J1bmRsZSBsb2FkTmliTmFtZWQ6V2ViQXV0aGVudGljYXRp
b25QYW5lbE5pYk5hbWUgb3duZXI6c2VsZl0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgbmliTG9hZGVkID0gWUVTOwogICAgICAgICAgICAg
W2ltYWdlVmlldyBzZXRJbWFnZTpbTlNJbWFnZSBpbWFnZU5hbWVkOkAiTlNBcHBsaWNhdGlvbklj
b24iXV07CiAgICAgICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdl
ci5tbQppbmRleCAwMjEwYjA2NmJhYWQyNjk3ZTA5ZjI4ZTA4OWFkMzVmYTc0ZjM2OWRmLi44NDcz
ODNkMjZkNDZhYWU0OTkyYzhjZTQ0YzlhNmFhYWM2NmFmNmJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2Vy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBl
UGx1Z2luSG9zdE1hbmFnZXIubW0KQEAgLTE4NywxMCArMTg3LDkgQEAgYm9vbCBOZXRzY2FwZVBs
dWdpbkhvc3RNYW5hZ2VyOjpzcGF3blBsdWdpbkhvc3QoY29uc3QgU3RyaW5nJiBwbHVnaW5QYXRo
LCBjcHVfdHkKIAogICAgIFByb2Nlc3NTZXJpYWxOdW1iZXIgcHNuOwogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBHZXRDdXJyZW50UHJvY2VzcygmcHNuKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIEFTU0VSVChNQUNIX1BPUlRfVkFMSUQo
Y2xpZW50UG9ydCkpOwogICAgIGtyID0gX1dLUEhDaGVja0luV2l0aFBsdWdpbkhvc3QocGx1Z2lu
SG9zdFBvcnQsIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihjb25zdF9jYXN0PHZvaWQqPihbZGF0YSBi
eXRlc10pKSwgW2RhdGEgbGVuZ3RoXSwgY2xpZW50UG9ydCwgcHNuLmhpZ2hMb25nT2ZQU04sIHBz
bi5sb3dMb25nT2ZQU04sIHJlbmRlclNlcnZlclBvcnQsCkBAIC0zMjIsMTEgKzMyMSwxMCBAQCB2
b2lkIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI6OmRpZENyZWF0ZVdpbmRvdygpCiAgICAgICAg
IGlmICghaG9zdFByb3h5LT5pc01lbnVCYXJWaXNpYmxlKCkpIHsKICAgICAgICAgICAgIC8vIE1h
a2Ugb3Vyc2VsdmVzIHRoZSBmcm9udCBwcm9jZXNzLgogICAgICAgICAgICAgUHJvY2Vzc1Nlcmlh
bE51bWJlciBwc247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAg
ICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgICAgICAgICAgR2V0Q3VycmVudFByb2Nlc3MoJnBzbik7CiAgICAgICAgICAgICBTZXRGcm9u
dFByb2Nlc3MoJnBzbik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAg
ICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVn
aW5Ib3N0UHJveHkubW0KaW5kZXggZWM1ZjBkYTU4YTYyYTllNTQ0NzhjYzJjMGY3MDdlYjRjNzEw
MTBiNi4uMzRhNjBmMDI2MjFjOGQxN2Q5YTZjZDFjZDEwNmU1N2RmMjk2NDFlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5I
b3N0UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KQEAgLTM0MSwzMiArMzQxLDI5IEBAIGJvb2wgTmV0
c2NhcGVQbHVnaW5Ib3N0UHJveHk6OnByb2Nlc3NSZXF1ZXN0cygpCiAKIHZvaWQgTmV0c2NhcGVQ
bHVnaW5Ib3N0UHJveHk6Om1ha2VDdXJyZW50UHJvY2Vzc0Zyb250UHJvY2VzcygpCiB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkco
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBQcm9jZXNzU2VyaWFsTnVtYmVyIHBz
bjsKICAgICBHZXRDdXJyZW50UHJvY2VzcygmcHNuKTsKICAgICBTZXRGcm9udFByb2Nlc3MoJnBz
bik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIHZvaWQgTmV0c2NhcGVQ
bHVnaW5Ib3N0UHJveHk6Om1ha2VQbHVnaW5Ib3N0UHJvY2Vzc0Zyb250UHJvY2VzcygpIGNvbnN0
CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBTZXRGcm9udFByb2Nl
c3MoJm1fcGx1Z2luSG9zdFBTTik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9
CiAKIGJvb2wgTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHk6OmlzUGx1Z2luSG9zdFByb2Nlc3NGcm9u
dFByb2Nlc3MoKSBjb25zdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgUHJvY2Vzc1NlcmlhbE51bWJlciBmcm9udFByb2Nlc3M7CiAgICAgR2V0RnJvbnRQcm9jZXNz
KCZmcm9udFByb2Nlc3MpOwogCiAgICAgQm9vbGVhbiBpc1NhbWVQcm9jZXNzID0gMDsKICAgICBT
YW1lUHJvY2VzcygmZnJvbnRQcm9jZXNzLCAmbV9wbHVnaW5Ib3N0UFNOLCAmaXNTYW1lUHJvY2Vz
cyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICByZXR1cm4gaXNTYW1l
UHJvY2VzczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMv
SG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQppbmRl
eCBlOTNmYjUwNmU1ZGUwYTVkYWUzYWZhNTY1OGNiYWY0MTc4ZTI2YWExLi4yMWMxZDczNzE1YTg3
Yjg2MWMxMDgxYjBhYTg2ZjA0YTE0ZGFlYjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5J
bnN0YW5jZVByb3h5Lm1tCkBAIC00MjMsMTAgKzQyMyw5IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW5J
bnN0YW5jZVByb3h5OjpzdGFydFRpbWVycyhib29sIHRocm90dGxlVGltZXJzKQogICAgIAogdm9p
ZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6Om1vdXNlRXZlbnQoTlNWaWV3ICpwbHVnaW5W
aWV3LCBOU0V2ZW50ICpldmVudCwgTlBDb2NvYUV2ZW50VHlwZSB0eXBlKQogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgTlNQb2ludCBzY3JlZW5Qb2ludCA9IFtbZXZl
bnQgd2luZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOltldmVudCBsb2NhdGlvbkluV2luZG93XV07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdf
RU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgTlNQb2ludCBwbHVnaW5Qb2lu
dCA9IFtwbHVnaW5WaWV3IGNvbnZlcnRQb2ludDpbZXZlbnQgbG9jYXRpb25JbldpbmRvd10gZnJv
bVZpZXc6bmlsXTsKICAgICAKICAgICBpbnQgY2xpY2tDb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2lu
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3Rl
ZE5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCBmM2UwNGI0ZjU1ODA2MTE5MWM4NmZkNjc3NTUx
NTkxNDg2M2QxMTk0Li45MzVmZDI5MGI2ZmZkM2UxZGZlOTc4ODE3YjE4M2VkMDY2NDYzN2M0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0
ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC00NzcsOCArNDc3
LDcgQEAgZXh0ZXJuICJDIiB7CiAgICAgfQogCiAgICAgaWYgKF9wcm94eSkgewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBpZiAoX3NvZnR3YXJlUmVuZGVy
ZXIpIHsKICAgICAgICAgICAgIGlmIChbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRE
cmF3aW5nVG9TY3JlZW5dKSB7CiAgICAgICAgICAgICAgICAgX3NvZnR3YXJlUmVuZGVyZXItPnJl
bmRlcigoQ0dDb250ZXh0UmVmKVtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdy
YXBoaWNzUG9ydF0sIE5TUmVjdFRvQ0dSZWN0KHJlY3QpKTsKQEAgLTQ4OCw3ICs0ODcsNyBAQCBl
eHRlcm4gIkMiIHsKICAgICAgICAgfSBlbHNlIGlmIChfc25hcHNob3R0aW5nICYmIFtzZWxmIHN1
cHBvcnRzU25hcHNob3R0aW5nXSkgewogICAgICAgICAgICAgX3Byb3h5LT5zbmFwc2hvdChyZWlu
dGVycHJldF9jYXN0PENHQ29udGV4dFJlZj4oW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29u
dGV4dF0gZ3JhcGhpY3NQb3J0XSksIFtzZWxmIGJvdW5kc10uc2l6ZS53aWR0aCwgW3NlbGYgYm91
bmRzXS5zaXplLmhlaWdodCk7CiAgICAgICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIik7CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYlRleHRJbnB1dFdpbmRvd0NvbnRyb2xs
ZXIubSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYlRleHRJbnB1
dFdpbmRvd0NvbnRyb2xsZXIubQppbmRleCBmYmQ2NjdiNzQ4Zjg0MjNlZWU4ODE3YWU0ZDE1YjVh
NzY2MmZiNTE5Li45N2U1ZTVmZTUwMzU3OWFkYTNmY2RjNWFkMDNjZjJlMWJhNGMyN2Y3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJUZXh0SW5w
dXRXaW5kb3dDb250cm9sbGVyLm0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvV2ViVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tCkBAIC0xMDYsMTkgKzEwNiwx
NyBAQCAtICh2b2lkKV9rZXlib2FyZElucHV0U291cmNlQ2hhbmdlZDooTlNOb3RpZmljYXRpb24g
Kilub3RpZmljYXRpb24KIAogLSAoQk9PTClfaW50ZXJwcmV0S2V5RXZlbnQ6KE5TRXZlbnQgKill
dmVudCBzdHJpbmc6KE5TU3RyaW5nICoqKXN0cmluZwogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgQk9PTCBoYWRNYXJrZWRUZXh0ID0gW19pbnB1dFRleHRWaWV3IGhh
c01hcmtlZFRleHRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgKnN0
cmluZyA9IG5pbDsKIAogICAgIC8vIExldCBUU00ga25vdyB0aGF0IGEgYm90dG9tIGlucHV0IHdp
bmRvdyB3b3VsZCBiZSBjcmVhdGVkIGZvciBtYXJrZWQgdGV4dC4KICAgICAvLyBGSVhNRTogQ2Fu
IGJlIHJlbW92ZWQgb25jZSB3ZSBjYW4gcmVseSBvbiBfX05TVXNlc0Zsb2F0aW5nSW5wdXRXaW5k
b3cgKG9yIGEgYmV0dGVyIEFQSSkgYmVpbmcgYXZhaWxhYmxlIGV2ZXJ5d2hlcmUuCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XY2FzdC1xdWFsIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Nhc3QtcXVhbCIpOwog
ICAgIEV2ZW50UmVmIGNhcmJvbkV2ZW50ID0gKEV2ZW50UmVmKVtldmVudCBldmVudFJlZl07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5E
KCItV2Nhc3QtcXVhbCIpOwogICAgIGlmIChjYXJib25FdmVudCkgewogICAgICAgICBCb29sZWFu
IGlnbm9yZVBBSCA9IHRydWU7CiAgICAgICAgIFNldEV2ZW50UGFyYW1ldGVyKGNhcmJvbkV2ZW50
LCAnaVBBSCcsIHR5cGVCb29sZWFuLCBzaXplb2YoaWdub3JlUEFIKSwgJmlnbm9yZVBBSCk7CkBA
IC0xMjcsMTAgKzEyNSw5IEBAIC0gKEJPT0wpX2ludGVycHJldEtleUV2ZW50OihOU0V2ZW50ICop
ZXZlbnQgc3RyaW5nOihOU1N0cmluZyAqKilzdHJpbmcKICAgICBpZiAoIVtbX2lucHV0VGV4dFZp
ZXcgaW5wdXRDb250ZXh0XSBoYW5kbGVFdmVudDpldmVudF0pCiAgICAgICAgIHJldHVybiBOTzsK
ICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FS
TklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGlmIChbX2lucHV0
VGV4dFZpZXcgaGFzTWFya2VkVGV4dF0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgICAgIC8vIERvbid0IHNob3cgdGhlIGlucHV0IG1ldGhvZCB3aW5kb3cgZm9y
IGRlYWQga2V5cwogICAgICAgICBpZiAoW1tldmVudCBjaGFyYWN0ZXJzXSBsZW5ndGhdID4gMCkK
ICAgICAgICAgICAgIFtzZWxmIG9yZGVyRnJvbnQ6bmlsXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5t
bQppbmRleCA2ZDg1YThjNWVhNDE1OTgyYjEwOGVlYWE2ZGVjNDdjMGM4NjYxOTk0Li4zMjkyZDA0
NmQzMTcwMjllZTYwODcwMDBiNjAyZDNkNmYxMTllODY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tCkBAIC03MjksMjUgKzcyOSwyMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICBz
d2l0Y2ggKHNvdXJjZVNwYWNlKSB7CiAgICAgICAgIGNhc2UgTlBDb29yZGluYXRlU3BhY2VQbHVn
aW46CiAgICAgICAgICAgICBzb3VyY2VQb2ludEluU2NyZWVuU3BhY2UgPSBbc2VsZiBjb252ZXJ0
UG9pbnQ6c291cmNlUG9pbnQgdG9WaWV3Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgc291cmNlUG9pbnRJblNjcmVlblNwYWNlID0g
W1tzZWxmIGN1cnJlbnRXaW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46c291cmNlUG9pbnRJblNj
cmVlblNwYWNlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBOUENvb3JkaW5hdGVT
cGFjZVdpbmRvdzoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAg
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgICAgICAgICBzb3VyY2VQb2ludEluU2NyZWVuU3BhY2UgPSBbW3NlbGYgY3VycmVudFdpbmRv
d10gY29udmVydEJhc2VUb1NjcmVlbjpzb3VyY2VQb2ludF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAg
ICAgICAgIGNhc2UgTlBDb29yZGluYXRlU3BhY2VGbGlwcGVkV2luZG93OgogICAgICAgICAgICAg
c291cmNlUG9pbnQueSA9IFtbc2VsZiBjdXJyZW50V2luZG93XSBmcmFtZV0uc2l6ZS5oZWlnaHQg
LSBzb3VyY2VQb2ludC55OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
ICAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICAgICAgICAgICAgIHNvdXJjZVBvaW50SW5TY3JlZW5TcGFjZSA9IFtbc2VsZiBjdXJyZW50
V2luZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOnNvdXJjZVBvaW50XTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAKICAgICAgICAgY2FzZSBOUENvb3JkaW5hdGVTcGFjZVNjcmVlbjoKQEAgLTc2NywyNSArNzY0
LDIyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIC8vIFRoZW4gY29udmVydCBiYWNr
IHRvIHRoZSBkZXN0aW5hdGlvbiBzcGFjZQogICAgIHN3aXRjaCAoZGVzdFNwYWNlKSB7CiAgICAg
ICAgIGNhc2UgTlBDb29yZGluYXRlU3BhY2VQbHVnaW46Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgZGVzdFBvaW50ID0gW1tzZWxmIGN1cnJl
bnRXaW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6c291cmNlUG9pbnRJblNjcmVlblNwYWNlXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgZGVz
dFBvaW50ID0gW3NlbGYgY29udmVydFBvaW50OmRlc3RQb2ludCBmcm9tVmlldzpuaWxdOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBOUENvb3JkaW5hdGVT
cGFjZVdpbmRvdzoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAg
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgICAgICAgICBkZXN0UG9pbnQgPSBbW3NlbGYgY3VycmVudFdpbmRvd10gY29udmVydFNjcmVl
blRvQmFzZTpzb3VyY2VQb2ludEluU2NyZWVuU3BhY2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAg
ICAgICBjYXNlIE5QQ29vcmRpbmF0ZVNwYWNlRmxpcHBlZFdpbmRvdzoKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgICAgICBkZXN0UG9pbnQgPSBbW3Nl
bGYgY3VycmVudFdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpzb3VyY2VQb2ludEluU2NyZWVu
U3BhY2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAg
ICAgICBkZXN0UG9pbnQueSA9IFtbc2VsZiBjdXJyZW50V2luZG93XSBmcmFtZV0uc2l6ZS5oZWln
aHQgLSBkZXN0UG9pbnQueTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2lu
UGFja2FnZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQ
bHVnaW5QYWNrYWdlLm1tCmluZGV4IGYyMjg5MzQ3NDIxOTA0YmVlM2M4ODY2NmM0ZTMwMDkyZmMx
MDUwZGUuLmJhZmNkYTY4YWQ4NjQ3M2U3YzRlYTRjMDYwOWZjNzMzZjc1MmUwZjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5QYWNr
YWdlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQ
bHVnaW5QYWNrYWdlLm1tCkBAIC0xNjcsMTQgKzE2NywxMyBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKICAgICBpZiAoIU5QX0luaXRpYWxpemUgfHwgIU5QX0dldEVudHJ5UG9pbnRzIHx8ICFO
UF9TaHV0ZG93bikKICAgICAgICAgcmV0dXJuIE5POwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiKTsKICAgICAvLyBQbHVnaW5zIChhdCBsZWFzdCBRVCkgcmVxdWlyZSB0aGF0IHlv
dSBjYWxsIFVzZVJlc0ZpbGUgb24gdGhlIHJlc291cmNlIGZpbGUgYmVmb3JlIGxvYWRpbmcgaXQu
CiAgICAgcmVzb3VyY2VSZWYgPSBbc2VsZiBvcGVuUmVzb3VyY2VGaWxlXTsKICAgICBpZiAocmVz
b3VyY2VSZWYgIT0gLTEpIHsKICAgICAgICAgVXNlUmVzRmlsZShyZXNvdXJjZVJlZik7CiAgICAg
fQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
X0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgYnJvd3NlckZ1bmNzLnZl
cnNpb24gPSBOUF9WRVJTSU9OX01JTk9SOwogICAgIGJyb3dzZXJGdW5jcy5zaXplID0gc2l6ZW9m
KE5QTmV0c2NhcGVGdW5jcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
bHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDQ5ZGMxYzUxNGY3MmM0NDlm
ZmRhZTcyOWNhOGQ5YzA4MTY0YTllM2UuLjQwMjhiYTE2Y2EyMzQwYWE0YjJiZjUwZjdmZDBmYjlh
MjBhZmYxMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2Vi
TmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdp
bnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC0zNzcsMTAgKzM3Nyw5IEBAIHN0YXRpYyBp
bmxpbmUgdm9pZCBnZXROUFJlY3QoY29uc3QgTlNSZWN0JiBuciwgTlBSZWN0JiBucHIpCiAgICAg
ICAgICAgICBSZ25IYW5kbGUgY2xpcFJlZ2lvbiA9IE5ld1JnbigpOwogICAgICAgICAgICAgcWRQ
b3J0U3RhdGUtPmNsaXBSZWdpb24gPSBjbGlwUmVnaW9uOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgQ0dDb250ZXh0UmVmIGN1cnJlbnRD
b250ZXh0ID0gKENHQ29udGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0
XSBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7
CiAgICAgICAgICAgICBpZiAoY3VycmVudENvbnRleHQgJiYgQ0dDb250ZXh0R2V0VHlwZShjdXJy
ZW50Q29udGV4dCkgPT0ga0NHQ29udGV4dFR5cGVCaXRtYXApIHsKICAgICAgICAgICAgICAgICAv
LyBXZSBjaGVjayBmb3Iga0NHQ29udGV4dFR5cGVCaXRtYXAgaGVyZSwgYmVjYXVzZSBpZiB3ZSBq
dXN0IGNhbGxlZCBDR0JpdG1hcENvbnRleHRHZXREYXRhCiAgICAgICAgICAgICAgICAgLy8gb24g
YW55IGNvbnRleHQsIHdlJ2QgbG9nIHRvIHRoZSBjb25zb2xlIGV2ZXJ5IHRpbWUuIEJ1dCBldmVu
IGlmIGN1cnJlbnRDb250ZXh0IGlzIGEKQEAgLTUwMywxMCArNTAyLDkgQEAgc3RhdGljIGlubGlu
ZSB2b2lkIGdldE5QUmVjdChjb25zdCBOU1JlY3QmIG5yLCBOUFJlY3QmIG5wcikKICAgICAgICAg
ICAgIAogICAgICAgICAgICAgQVNTRVJUKFtOU1ZpZXcgZm9jdXNWaWV3XSA9PSBzZWxmKTsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgSUdOT1JFX1dB
Uk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAgIENH
Q29udGV4dFJlZiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dDb250ZXh0UmVmPihbW05TR3JhcGhp
Y3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgICAgICAgICBQb3J0U3RhdGVfQ0cgKmNn
UG9ydFN0YXRlID0gKFBvcnRTdGF0ZV9DRyAqKW1hbGxvYyhzaXplb2YoUG9ydFN0YXRlX0NHKSk7
CiAgICAgICAgICAgICBwb3J0U3RhdGUgPSAoUG9ydFN0YXRlKWNnUG9ydFN0YXRlOwpAQCAtNjk1
LDEwICs2OTMsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0TlBSZWN0KGNvbnN0IE5TUmVjdCYg
bnIsIE5QUmVjdCYgbnByKQogewogICAgIEFTU0VSVChfZXZlbnRIYW5kbGVyKTsKICAgICAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFO
RygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIENHQ29udGV4dFJlZiBjb250ZXh0
ID0gc3RhdGljX2Nhc3Q8Q0dDb250ZXh0UmVmPihbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRD
b250ZXh0XSBncmFwaGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
ICAgICBfZXZlbnRIYW5kbGVyLT5kcmF3UmVjdChjb250ZXh0LCByZWN0KTsKIH0KIApAQCAtMTMz
OCwxMCArMTMzNSw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3QoY29uc3QgTlNSZWN0
JiBuciwgTlBSZWN0JiBucHIpCiAgICAgICAgIGlmIChwcmludGVkUGx1Z2luQml0bWFwKSB7CiAg
ICAgICAgICAgICAvLyBGbGlwIHRoZSBiaXRtYXAgYmVmb3JlIGRyYXdpbmcgYmVjYXVzZSB0aGUg
UXVpY2tEcmF3IHBvcnQgaXMgZmxpcHBlZCByZWxhdGl2ZQogICAgICAgICAgICAgLy8gdG8gdGhp
cyB2aWV3LgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAg
ICAgICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSAoQ0dDb250ZXh0UmVmKVtbTlNHcmFwaGlj
c0NvbnRleHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgICAgIENHQ29udGV4dFNhdmVHU3RhdGUo
Y2dDb250ZXh0KTsKICAgICAgICAgICAgIE5TUmVjdCBib3VuZHMgPSBbc2VsZiBib3VuZHNdOwog
ICAgICAgICAgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNnQ29udGV4dCwgMC4wZiwgTlNIZWln
aHQoYm91bmRzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5z
L1dlYlBsdWdpbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5z
L1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KaW5kZXggMjkwZmVmNjNhZDkxNmFhNjE4ZDMwYTIxZDkx
NDNlMjE4ZWM5MGU4NS4uMWQzYmE1NTY2NmE4ZDZmNTM2MzI4MDUxNTM5YjlmNjRkYzllZDJiNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250
cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2lu
Q29udHJvbGxlci5tbQpAQCAtNjU0LDIxICs2NTQsMTkgQEAgc3RhdGljIGFsZXJ0RGlkRW5kSU1Q
IG9yaWdpbmFsX1RTVXBkYXRlQ2hlY2tfYWxlcnREaWRFbmRfcmV0dXJuQ29kZV9jb250ZXh0SW5m
b18KIAogc3RhdGljIHZvaWQgV2ViS2l0X1RTVXBkYXRlQ2hlY2tfYWxlcnREaWRFbmRfcmV0dXJu
Q29kZV9jb250ZXh0SW5mb18oaWQgb2JqZWN0LCBTRUwgc2VsZWN0b3IsIE5TQWxlcnQgKmFsZXJ0
LCBOU0ludGVnZXIgcmV0dXJuQ29kZSwgdm9pZCogY29udGV4dEluZm8pCiB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBbWyhUU1VwZGF0ZUNoZWNrICopb2JqZWN0IGRl
bGVnYXRlXSBhdXRvcmVsZWFzZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAK
ICAgICBvcmlnaW5hbF9UU1VwZGF0ZUNoZWNrX2FsZXJ0RGlkRW5kX3JldHVybkNvZGVfY29udGV4
dEluZm9fKG9iamVjdCwgc2VsZWN0b3IsIGFsZXJ0LCByZXR1cm5Db2RlLCBjb250ZXh0SW5mbyk7
CiB9CiAKIHN0YXRpYyB2b2lkIFdlYktpdF9OU0FsZXJ0X2JlZ2luU2hlZXRNb2RhbEZvcldpbmRv
d19tb2RhbERlbGVnYXRlX2RpZEVuZFNlbGVjdG9yX2NvbnRleHRJbmZvXyhpZCBvYmplY3QsIFNF
TCBzZWxlY3RvciwgTlNXaW5kb3cgKndpbmRvdywgaWQgbW9kYWxEZWxlZ2F0ZSwgU0VMIGRpZEVu
ZFNlbGVjdG9yLCB2b2lkKiBjb250ZXh0SW5mbykKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogICAgIGlmIChpc0tpbmRPZkNsYXNzKG1vZGFsRGVsZWdhdGUsIEAiVFNVcGRh
dGVDaGVjayIpKQogICAgICAgICBbWyhUU1VwZGF0ZUNoZWNrICopbW9kYWxEZWxlZ2F0ZSBkZWxl
Z2F0ZV0gcmV0YWluXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVf
V0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIG9y
aWdpbmFsX05TQWxlcnRfYmVnaW5TaGVldE1vZGFsRm9yV2luZG93X21vZGFsRGVsZWdhdGVfZGlk
RW5kU2VsZWN0b3JfY29udGV4dEluZm9fKG9iamVjdCwgc2VsZWN0b3IsIHdpbmRvdywgbW9kYWxE
ZWxlZ2F0ZSwgZGlkRW5kU2VsZWN0b3IsIGNvbnRleHRJbmZvKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQppbmRl
eCA3YjFmYmVhZWUxMDYwOWJlYzlmM2MyZmU0ZDY0NjY5OWRkM2Q0YWY4Li5jYmI0MDhjNDZjYTQ0
NTE4ZTU3ODRlNWU1M2Q3ZWMzZTU4Y2UyMWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCkBAIC0xMTMsMTUgKzEx
MywxNCBAQCB2b2lkIFBvcHVwTWVudU1hYzo6cG9wdWxhdGUoKQogICAgICAgICBbbWVudUl0ZW0g
c2V0RW5hYmxlZDptX2NsaWVudC0+aXRlbUlzRW5hYmxlZChpKV07CiAgICAgICAgIFttZW51SXRl
bSBzZXRUb29sVGlwOm1fY2xpZW50LT5pdGVtVG9vbFRpcChpKV07CiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgLy8gQWxsb3cgdGhlIGFjY2Vzc2libGUg
dGV4dCBvZiB0aGUgaXRlbSB0byBiZSBvdmVycmlkZGVuIGlmIG5lY2Vzc2FyeS4KICAgICAgICAg
aWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKICAgICAgICAgICAg
IE5TU3RyaW5nICphY2Nlc3NpYmlsaXR5T3ZlcnJpZGUgPSBtX2NsaWVudC0+aXRlbUFjY2Vzc2li
aWxpdHlUZXh0KGkpOwogICAgICAgICAgICAgaWYgKFthY2Nlc3NpYmlsaXR5T3ZlcnJpZGUgbGVu
Z3RoXSkKICAgICAgICAgICAgICAgICBbbWVudUl0ZW0gYWNjZXNzaWJpbGl0eVNldE92ZXJyaWRl
VmFsdWU6YWNjZXNzaWJpbGl0eU92ZXJyaWRlIGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlE
ZXNjcmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5o
CmluZGV4IGM4ZDMzZWIxODlhNmYzMWQ1Y2NiZGUxOGVkNTdiNmZlNTRjZmY3ZDQuLjU3NWEzNDhm
Y2I1ZTU3NTAyNWYzOGJiNGI0ODE3ZjU5ZGQ3NWFlNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZl
VGV4dENsaWVudC5oCkBAIC01MCwxNCArNTAsMTEgQEAgcHVibGljOgogI2VuZGlmCiBwcml2YXRl
OgogI2lmIFBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jaWYg
ZGVmaW5lZChfX2hhc193YXJuaW5nKSAmJiBfX2hhc193YXJuaW5nKCItV3VudXNlZC1wcml2YXRl
LWZpZWxkIikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wcml2
YXRlLWZpZWxkIgotI2VuZGlmCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XdW51
c2VkLXByaXZhdGUtZmllbGQiKQogI2VuZGlmCiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwogI2lm
IFBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJO
SU5HX0NMQU5HX1RPUF9MRVZFTF9FTkQoIi1XdW51c2VkLXByaXZhdGUtZmllbGQiKQogI2VuZGlm
CiAjaWYgVVNFKEFVVE9DT1JSRUNUSU9OX1BBTkVMKQogICAgIENvcnJlY3Rpb25QYW5lbCBtX2Nv
cnJlY3Rpb25QYW5lbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCmluZGV4IGE1OTI0ZjQ3ZTA2NzJjZTZhNTQ0MTk4
ODE0MDU3YTZmN2Q2OGRjZTIuLjA2MGRjNTZkMjA1Y2MyNzA0NWJhNzJmM2NkNDRkYjBlOGM5NzA3
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkRyYWdDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRHJhZ0NsaWVudC5tbQpAQCAtMTMzLDEwICsxMzMsOSBAQCB2b2lkIFdlYkRyYWdDbGll
bnQ6OnN0YXJ0RHJhZyhEcmFnSXRlbSBkcmFnSXRlbSwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNm
ZXIsIEZyYQogICAgICAgICAgICAgUmVwb3J0RGlzY2FyZGVkRGVsZWdhdGVFeGNlcHRpb24oc2Vs
ZWN0b3IsIGV4Y2VwdGlvbik7CiAgICAgICAgIH0KICAgICB9IGVsc2UKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgW3RvcEhUTUxWaWV3IGRyYWdJbWFnZTpk
cmFnTlNJbWFnZSBhdDpkcmFnTG9jYXRpb25JbkNvbnRlbnRDb29yZGluYXRlcyBvZmZzZXQ6TlNa
ZXJvU2l6ZSBldmVudDpldmVudCBwYXN0ZWJvYXJkOnBhc3RlYm9hcmQgc291cmNlOnNvdXJjZUhU
TUxWaWV3IHNsaWRlQmFjazpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKIH0KIAogdm9pZCBXZWJEcmFnQ2xpZW50OjpiZWdpbkRyYWcoRHJhZ0l0ZW0gZHJhZ0l0ZW0s
IEZyYW1lJiBmcmFtZSwgY29uc3QgSW50UG9pbnQmIG1vdXNlRG93blBvc2l0aW9uLCBjb25zdCBJ
bnRQb2ludCYgbW91c2VEcmFnZ2VkUG9zaXRpb24sIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVy
LCBEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tCmluZGV4IDg2YmU2ZTRlMzY3MmI3ZDFiZThlODdlNTY0NWNkN2JjMDZjNWZlOGYuLmNk
OTU4NGI4ZjVkMzMyNmM3NWYwOWRkZTlkN2VhZTNkM2UyZDY4NjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tCkBAIC0zMDgsMTAgKzMwOCw5IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciogZG9j
CiAKICAgICBpZiAoIW1haW5SZXNvdXJjZUxvYWRlcikgewogICAgICAgICAvLyBUaGUgcmVzb3Vy
Y2UgaGFzIGFscmVhZHkgYmVlbiBjYWNoZWQsIG9yIHRoZSBjb252ZXJzaW9uIGlzIGJlaW5nIGF0
dG1wdGVkIHdoZW4gbm90IGNhbGxpbmcgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNw
b25zZSgpLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBJR05P
UkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBX
ZWJEb3dubG9hZCAqd2ViRG93bmxvYWQgPSBbW1dlYkRvd25sb2FkIGFsbG9jXSBpbml0V2l0aFJl
cXVlc3Q6cmVxdWVzdC5uc1VSTFJlcXVlc3QoSFRUUEJvZHlVcGRhdGVQb2xpY3k6OlVwZGF0ZUhU
VFBCb2R5KSBkZWxlZ2F0ZTpbd2ViVmlldyBkb3dubG9hZERlbGVnYXRlXV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBbd2ViRG93bmxvYWQgYXV0b3JlbGVh
c2VdOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjM0MiwxMCArMjM0MSw5IEBAIHN0YXRp
YyBOU0ltYWdlICp3ZWJHZXROU0ltYWdlKEltYWdlKiBpbWFnZSwgTlNTaXplIHNpemUpCiAgICAg
aWYgKCFuc0ltYWdlKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIGlmICghTlNFcXVhbFNpemVz
KFtuc0ltYWdlIHNpemVdLCBzaXplKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgICAgICBbbnNJbWFnZSBzZXRTY2FsZXNXaGVuUmVzaXplZDpZRVNdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFOR19F
TkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAgICAgW25zSW1hZ2Ugc2V0U2l6
ZTpzaXplXTsKICAgICB9CiAgICAgcmV0dXJuIG5zSW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCmluZGV4
IDkxYjY1YmVjOTRiZjg5NGY0MTY1NGJlOTRiZWRhMzMxZDllZWVkOTAuLmZkM2IyMTE4NWE4MGQ3
ODE3MTdmMjQ1OTFjYWQzYTE3NjcwY2YyMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCkBAIC0yNjYsMTAg
KzI2Niw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIEFTU0VSVChbX3RhcmdldFZp
ZXcgd2luZG93XSk7CiAKICAgICBOU1JlY3QgaGlnaGxpZ2h0V2luZG93RnJhbWUgPSBbX3Rhcmdl
dFZpZXcgY29udmVydFJlY3Q6W190YXJnZXRWaWV3IHZpc2libGVSZWN0XSB0b1ZpZXc6bmlsXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19D
TEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGhpZ2hsaWdodFdpbmRvd0Zy
YW1lLm9yaWdpbiA9IFtbX3RhcmdldFZpZXcgd2luZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOmhp
Z2hsaWdodFdpbmRvd0ZyYW1lLm9yaWdpbl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAKICAgICByZXR1cm4gaGlnaGxpZ2h0V2luZG93RnJhbWU7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodFZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdo
dFZpZXcubW0KaW5kZXggZTdjZDVlNDYyZGYyNjhmYWQyMDZkZGE1MTJkZDUzMzM1M2IxOTA0Ni4u
OWQxNjM1MDZmY2VjOTEzNjNhMGVjYzFjNGY4Yjk2NjMwMWY4NWQwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHRWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxp
Z2h0Vmlldy5tbQpAQCAtOTgsMTAgKzk4LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
ICAgICAgICAgQVNTRVJUKFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGlzRmxp
cHBlZF0pOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAg
IEdyYXBoaWNzQ29udGV4dCBjb250ZXh0KChQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCopW1tOU0dy
YXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XSk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBbX3dlYk5vZGVIaWdobGlnaHQgaW5z
cGVjdG9yQ29udHJvbGxlcl0tPmRyYXdIaWdobGlnaHQoY29udGV4dCk7CiAgICAgICAgIFtOU0dy
YXBoaWNzQ29udGV4dCByZXN0b3JlR3JhcGhpY3NTdGF0ZV07CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJDbGlwVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViQ2xpcFZpZXcubW0KaW5kZXggNWZkNWMxNDI3MDJi
MTg2ZWE5NDA3ZjM4ZmMwZTNjOTM2YjQ3YjQ2YS4uNDg3OTRhZDRlODE1NjM2NDVjMjM4YTI4MDJm
ZmQ1ZTY3MWU0ZDcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJDbGlwVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YkNsaXBWaWV3Lm1tCkBAIC02Niw4ICs2Niw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
ICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgLy8gSW4gV2ViSFRNTFZpZXcsIHdlIHNldCBhIGNsaXAuIFRo
aXMgaXMgbm90IHR5cGljYWwgdG8gZG8gaW4gYW4KICAgICAvLyBOU1ZpZXcsIGFuZCB3aGlsZSBj
b3JyZWN0IGZvciBhbnkgb25lIGludm9jYXRpb24gb2YgZHJhd1JlY3Q6LAogICAgIC8vIGl0IGNh
dXNlcyBzb21lIGJhZCBwcm9ibGVtcyBpZiB0aGF0IGNsaXAgaXMgY2FjaGVkIGJldHdlZW4gY2Fs
bHMuCkBAIC03OCw3ICs3Nyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIC8vIFNl
ZSB0aGVzZSBidWdzIGZvciBtb3JlIGluZm9ybWF0aW9uOgogICAgIC8vIDxyZGFyOi8vcHJvYmxl
bS8zNDA5MzE1PjogUkVHUkVTU1NJT04gKDdCNTgtN0I2MCk/OiBTYWZhcmkgZHJhd3MgYmxhbmsg
ZnJhbWVzIG9uIG1hY29zeC5hcHBsZS5jb20gcGVyZiBwYWdlCiAgICAgW3NlbGYgcmVsZWFzZUdT
dGF0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdf
Q0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAKICAgICByZXR1cm4gc2Vs
ZjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJh
bWUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4
IDRmMDA3ZDAzYTBhZTVkMDQ5ODcxZmU0NDM4ZDNkZGFjNjUwYjI2MDMuLmRhYmRmNzliMzg5NzAy
ZWRmYmJlNDRkOGRjMjJjMTRmMDI2MjVmYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtNDQzLDEwICs0NDMsOSBAQCBzdGF0aWMgTlNVUkwgKmNy
ZWF0ZVVuaXF1ZVdlYkRhdGFVUkwoKTsKICAgICAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IGZy
YW1lLT52aWV3KCkpIHsKICAgICAgICAgICAgIHZpZXctPnNldFRyYW5zcGFyZW50KCFkcmF3c0Jh
Y2tncm91bmQpOwogI2lmICFQTEFURk9STShJT1MpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgQ29sb3IgY29sb3IgPSBjb2xvckZyb21OU0Nv
bG9yKFtiYWNrZ3JvdW5kQ29sb3IgY29sb3JVc2luZ0NvbG9yU3BhY2VOYW1lOk5TRGV2aWNlUkdC
Q29sb3JTcGFjZV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAj
ZWxzZQogICAgICAgICAgICAgQ29sb3IgY29sb3IgPSBDb2xvcihiYWNrZ3JvdW5kQ29sb3IpOwog
I2VuZGlmCkBAIC02MjIsMTAgKzYyMSw5IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAq
ZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogI2lmICFQTEFURk9STShJT1MpCiAg
ICAgQVNTRVJUKFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGlzRmxpcHBlZF0p
OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBDR0NvbnRleHRSZWYg
Y3R4ID0gc3RhdGljX2Nhc3Q8Q0dDb250ZXh0UmVmPihbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJl
bnRDb250ZXh0XSBncmFwaGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICNlbHNlCiAgICAgQ0dDb250ZXh0UmVmIGN0eCA9IFdLR2V0Q3VycmVudEdyYXBoaWNzQ29u
dGV4dCgpOwogI2VuZGlmCkBAIC0yMjA3LDEwICsyMjA1LDkgQEAgc3RhdGljIFdlYkZyYW1lTG9h
ZFR5cGUgdG9XZWJGcmFtZUxvYWRUeXBlKEZyYW1lTG9hZFR5cGUgZnJhbWVMb2FkVHlwZSkKICAg
ICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKICAgICAgICAg
QVhPYmplY3RDYWNoZTo6ZW5hYmxlQWNjZXNzaWJpbGl0eSgpOwogI2lmICFQTEFURk9STShJT1Mp
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJO
SU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIEFYT2JqZWN0
Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoW1tOU0FwcCBhY2Nl
c3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJm
YWNlQXR0cmlidXRlXSBib29sVmFsdWVdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAjZW5kaWYKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQppbmRleCA3NTNk
Y2ViMjhkMzBlNmE5MGY0MDE3ZDlmMDFlM2Q0ZWRmZmYxNTM5Li42MTZmZDE2ZTBkNDc4NTZmZDdi
NGNlOTIyODdlYTcwZDlmOTE4Njc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KQEAgLTIwNywxMSAr
MjA3LDEwIEBAIHN0YXRpYyBOU1JlY3QgY29udmVydFJlY3RUb1NjcmVlbihOU1dpbmRvdyAqd2lu
ZG93LCBOU1JlY3QgcmVjdCkKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gd2ViVmlld0NvbnRl
bnRzID0gYWRvcHRDRihDR1dpbmRvd0xpc3RDcmVhdGVJbWFnZShOU1JlY3RUb0NHUmVjdCh3ZWJW
aWV3RnJhbWUpLCBrQ0dXaW5kb3dMaXN0T3B0aW9uSW5jbHVkaW5nV2luZG93LCB3aW5kb3dJRCwg
a0NHV2luZG93SW1hZ2VTaG91bGRCZU9wYXF1ZSkpOwogICAgIAogICAgIC8vIFNjcmVlbiB1cGRh
dGVzIHRvIGJlIHJlLWVuYWJsZWQgaW4gYmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZy
YW1lOmZpbmFsRnJhbWU6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBO
U0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3Bs
YXk6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgTlNSZXNwb25k
ZXIgKndlYldpbmRvd0ZpcnN0UmVzcG9uZGVyID0gW1tfd2ViVmlldyB3aW5kb3ddIGZpcnN0UmVz
cG9uZGVyXTsKICAgICBbW3NlbGYgd2luZG93XSBzZXRGcmFtZTpzY3JlZW5GcmFtZSBkaXNwbGF5
Ok5PXTsKQEAgLTI2OCwxMSArMjY3LDEwIEBAIHN0YXRpYyB2b2lkIHNldENsaXBSZWN0Rm9yV2lu
ZG93KE5TV2luZG93ICp3aW5kb3csIE5TUmVjdCBjbGlwUmVjdCkKICAgICBfaXNFbnRlcmluZ0Z1
bGxTY3JlZW4gPSBOTzsKICAgICAKICAgICBpZiAoY29tcGxldGVkKSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIC8vIFNjcmVlbiB1cGRhdGVzIHRvIGJl
IHJlLWVuYWJsZWQgYXQgdGhlIGVuZCBvZiB0aGlzIGJsb2NrCiAgICAgICAgIE5TRGlzYWJsZVNj
cmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdO
T1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
ICAgIFtzZWxmIF9kb2N1bWVudF0tPnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oZmFsc2UpOwogICAg
ICAgICBbc2VsZiBfZG9jdW1lbnRdLT53ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KF9lbGVtZW50LmdldCgpKTsKICAgICAgICAgCkBAIC0yOTQsMTAgKzI5Miw5IEBAIHN0YXRpYyB2
b2lkIHNldENsaXBSZWN0Rm9yV2luZG93KE5TV2luZG93ICp3aW5kb3csIE5TUmVjdCBjbGlwUmVj
dCkKICAgICAgICAgCiAgICAgICAgIFtfYmFja2dyb3VuZFdpbmRvdy5nZXQoKSBvcmRlck91dDpz
ZWxmXTsKICAgICAgICAgW19iYWNrZ3JvdW5kV2luZG93LmdldCgpIHNldEZyYW1lOk5TWmVyb1Jl
Y3QgZGlzcGxheTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
ICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgfSBlbHNlCiAgICAgICAgIFtfc2NhbGVBbmltYXRpb24uZ2V0KCkg
c3RvcEFuaW1hdGlvbl07CiB9CkBAIC0zMTUsMTIgKzMxMiwxMSBAQCBzdGF0aWMgdm9pZCBzZXRD
bGlwUmVjdEZvcldpbmRvdyhOU1dpbmRvdyAqd2luZG93LCBOU1JlY3QgY2xpcFJlY3QpCiAgICAg
ICAgIHJldHVybjsKICAgICBfaXNGdWxsU2NyZWVuID0gTk87CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgIC8vIFNjcmVlbiB1cGRhdGVzIHRvIGJlIHJlLWVuYWJsZWQg
aW4gYmVnYW5FeGl0RnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6ZmluYWxGcmFtZToKICAgICBO
U0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3Bs
YXk6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgX2ZpbmFsRnJh
bWUgPSBzY3JlZW5SZWN0T2ZDb250ZW50cyhfZWxlbWVudC5nZXQoKSk7CiAKQEAgLTM2MCwxMSAr
MzU2LDEwIEBAIHN0YXRpYyB2b2lkIHNldENsaXBSZWN0Rm9yV2luZG93KE5TV2luZG93ICp3aW5k
b3csIE5TUmVjdCBjbGlwUmVjdCkKICAgICAKICAgICBbc2VsZiBfdXBkYXRlTWVudUFuZERvY2tG
b3JGdWxsU2NyZWVuXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
Ly8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBhdCB0aGUgZW5kIG9mIHRoaXMgZnVu
Y3Rpb24KICAgICBOU0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAKICAgICBbc2VsZiBfZG9jdW1lbnRdLT5zZXRBbmltYXRpbmdGdWxsU2Ny
ZWVuKGZhbHNlKTsKICAgICBbc2VsZiBfZG9jdW1lbnRdLT53ZWJraXREaWRFeGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoX2VsZW1lbnQuZ2V0KCkpOwpAQCAtMzkxLDEwICszODYsOSBAQCBzdGF0aWMg
dm9pZCBzZXRDbGlwUmVjdEZvcldpbmRvdyhOU1dpbmRvdyAqd2luZG93LCBOU1JlY3QgY2xpcFJl
Y3QpCiAKICAgICBbW193ZWJWaWV3IHdpbmRvd10gbWFrZUtleUFuZE9yZGVyRnJvbnQ6c2VsZl07
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklO
R19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIE5TRW5hYmxlU2NyZWVu
VXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJO
SU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQogCiAtICh2b2lk
KXBlcmZvcm1DbG9zZTooaWQpc2VuZGVyCkBAIC01MTMsMTAgKzUwNyw5IEBAIHN0YXRpYyBOU1Jl
Y3Qgd2luZG93RnJhbWVGcm9tQXBwYXJlbnRGcmFtZXMoTlNSZWN0IHNjcmVlbkZyYW1lLCBOU1Jl
Y3QgaW5pdGlhbEZyCiAgICAgCiAgICAgLy8gc2V0Q2xpcFJlY3RGb3JXaW5kb3cgdGFrZXMgd2lu
ZG93IGNvb3JkaW5hdGVzLCBzbyBjb252ZXJ0IGZyb20gc2NyZWVuIGNvb3JkaW5hdGVzIGhlcmU6
CiAgICAgTlNSZWN0IGZpbmFsQm91bmRzID0gX2ZpbmFsRnJhbWU7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiKTsKICAgICBmaW5hbEJvdW5kcy5vcmlnaW4gPSBbW3NlbGYgd2luZG93
XSBjb252ZXJ0U2NyZWVuVG9CYXNlOmZpbmFsQm91bmRzLm9yaWdpbl07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgc2V0Q2xpcFJlY3RGb3JXaW5kb3coc2VsZi53aW5kb3cs
IGZpbmFsQm91bmRzKTsKICAgICAKICAgICBbW3NlbGYgd2luZG93XSBtYWtlS2V5QW5kT3JkZXJG
cm9udDpzZWxmXTsKQEAgLTU0MywxNiArNTM2LDE0IEBAIHN0YXRpYyBOU1JlY3Qgd2luZG93RnJh
bWVGcm9tQXBwYXJlbnRGcmFtZXMoTlNSZWN0IHNjcmVlbkZyYW1lLCBOU1JlY3QgaW5pdGlhbEZy
CiAgICAgCiAgICAgW19iYWNrZ3JvdW5kV2luZG93LmdldCgpIG9yZGVyV2luZG93Ok5TV2luZG93
QmVsb3cgcmVsYXRpdmVUbzpbW3NlbGYgd2luZG93XSB3aW5kb3dOdW1iZXJdXTsKICAgICAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFO
RygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1
dG9kaXNwbGF5OllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW1tz
ZWxmIHdpbmRvd10gZGlzcGxheUlmTmVlZGVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgIC8vIFNjcmVlbiB1cGRhdGVzIGRpc2FibGVkIGluIGVudGVyRnVsbFNjcmVl
bjoKICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiKTsKIH0KIAogLSAodm9pZClfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhE
dXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb24KQEAgLTU5MSwyMyArNTgyLDIwIEBAIHN0
YXRpYyBOU1JlY3Qgd2luZG93RnJhbWVGcm9tQXBwYXJlbnRGcmFtZXMoTlNSZWN0IHNjcmVlbkZy
YW1lLCBOU1JlY3QgaW5pdGlhbEZyCiAgICAgCiAgICAgLy8gc2V0Q2xpcFJlY3RGb3JXaW5kb3cg
dGFrZXMgd2luZG93IGNvb3JkaW5hdGVzLCBzbyBjb252ZXJ0IGZyb20gc2NyZWVuIGNvb3JkaW5h
dGVzIGhlcmU6CiAgICAgTlNSZWN0IGZpbmFsQm91bmRzID0gX2ZpbmFsRnJhbWU7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBmaW5hbEJvdW5kcy5vcmlnaW4gPSBbW3Nl
bGYgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOmZpbmFsQm91bmRzLm9yaWdpbl07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgc2V0Q2xpcFJlY3RGb3JXaW5kb3coc2Vs
Zi53aW5kb3csIGZpbmFsQm91bmRzKTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1dG9kaXNwbGF5OllFU107Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW1tzZWxmIHdpbmRvd10gZGlzcGxheUlmTmVl
ZGVkXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgLy8gU2NyZWVu
IHVwZGF0ZXMgZGlzYWJsZWQgaW4gZXhpdEZ1bGxTY3JlZW46CiAgICAgTlNFbmFibGVTY3JlZW5V
cGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5J
TkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIEBlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDZh
N2IxNDBiZDg1ZDNmMTNkZTQxYzZkYmZlNTJhM2M0NDhkNDUyNTMuLjZiNDUwN2Q2MDFkYWE3MDFj
MDM5Zjc4OTY5YmQ5OTc0NDRjYjgzZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtNjI0LDEwICs2MjQsOSBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxOU0ludGVnZXI+IHRvVGFnKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKIAogLSAo
TlNWaWV3ICopX3dlYl9ib3JkZXJWaWV3CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiKTsKICAgICByZXR1cm4gX2JvcmRlclZpZXc7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiB9CiAKIEBlbmQKQEAgLTE0OTQsMTAgKzE0OTMsOSBAQCBzdGF0aWMgTlNDb250cm9s
U3RhdGVWYWx1ZSBraXQoVHJpU3RhdGUgc3RhdGUpCiB7CiAgICAgTlNFdmVudCAqZmFrZUV2ZW50
ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAogICAg
ICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIikKICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxv
Y2F0aW9uXV0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NM
QU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogICAgICAgICBt
b2RpZmllckZsYWdzOltbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXQogICAgICAg
ICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAg
ICAgIHdpbmRvd051bWJlcjpbW3NlbGYgd2luZG93XSB3aW5kb3dOdW1iZXJdCkBAIC0xNTM4LDE5
ICsxNTM2LDE3IEBAIHN0YXRpYyBOU0NvbnRyb2xTdGF0ZVZhbHVlIGtpdChUcmlTdGF0ZSBzdGF0
ZSkKICNpZiBQTEFURk9STShNQUMpCiAgICAgQVNTRVJUKCFfcHJpdmF0ZS0+c3Vidmlld3NTZXRB
c2lkZSk7CiAgICAgQVNTRVJUKF9wcml2YXRlLT5zYXZlZFN1YnZpZXdzID09IG5pbCk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkco
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3
cyA9IF9zdWJ2aWV3czsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVf
V0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAvLyBX
ZSBuZWVkIHRvIGtlZXAgdGhlIGxheWVyLWhvc3RpbmcgdmlldyBpbiB0aGUgc3Vidmlld3MsIG90
aGVyd2lzZSB0aGUgbGF5ZXJzIGZsYXNoLgogICAgIGlmIChfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5n
VmlldykgewogICAgICAgICBOU0FycmF5KiBuZXdTdWJ2aWV3cyA9IFtbTlNBcnJheSBhbGxvY10g
aW5pdFdpdGhPYmplY3RzOl9wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3LCBuaWxdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFO
RygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBfc3Vidmlld3MgPSBuZXdT
dWJ2aWV3czsKICAgICB9IGVsc2UKICAgICAgICAgX3N1YnZpZXdzID0gbmlsOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIF9wcml2YXRlLT5zdWJ2aWV3c1NldEFzaWRlID0g
WUVTOwogI2VuZGlmCiAgfQpAQCAtMTU2MCwxNCArMTU1NiwxMyBAQCBzdGF0aWMgTlNDb250cm9s
U3RhdGVWYWx1ZSBraXQoVHJpU3RhdGUgc3RhdGUpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIEFT
U0VSVChfcHJpdmF0ZS0+c3Vidmlld3NTZXRBc2lkZSk7CiAgICAgaWYgKF9wcml2YXRlLT5sYXll
ckhvc3RpbmdWaWV3KSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAg
ICAgICAgIFtfc3Vidmlld3MgcmVsZWFzZV07CiAgICAgICAgIF9zdWJ2aWV3cyA9IF9wcml2YXRl
LT5zYXZlZFN1YnZpZXdzOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChfc3Vidmlld3Mg
PT0gbmlsKTsKICAgICAgICAgX3N1YnZpZXdzID0gX3ByaXZhdGUtPnNhdmVkU3Vidmlld3M7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
X0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIH0KICAgICBfcHJpdmF0ZS0+
c2F2ZWRTdWJ2aWV3cyA9IG5pbDsKICAgICBfcHJpdmF0ZS0+c3Vidmlld3NTZXRBc2lkZSA9IE5P
OwpAQCAtMjExMCwxMCArMjEwNSw5IEBAIHN0YXRpYyBib29sIG1vdXNlRXZlbnRJc1BhcnRPZkNs
aWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50KQogCiAgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05T
RXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZAogICAg
ICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorSUdOT1JFX1dBUk5JTkdfQ0xBTkdfVE9QX0xFVkVMKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIikKICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxv
Y2F0aW9uXV0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0NM
QU5HX1RPUF9MRVZFTF9FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogICAgICAgICBt
b2RpZmllckZsYWdzOltbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXQogICAgICAg
ICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAg
ICAgIHdpbmRvd051bWJlcjpbW3NlbGYgd2luZG93XSB3aW5kb3dOdW1iZXJdCkBAIC0zOTgyLDEw
ICszOTc2LDkgQEAgc3RhdGljIEJPT0wgY3VycmVudFNjcm9sbElzQmxpdChOU1ZpZXcgKmNsaXBW
aWV3KQogI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBPbmx5IGRvIHRoZSBzeW5jaHJvbml6YXRp
b24gZGFuY2UgaWYgd2UncmUgZHJhd2luZyBpbnRvIHRoZSB3aW5kb3csIG90aGVyd2lzZQogICAg
IC8vIHdlIHJpc2sgZGlzYWJsaW5nIHNjcmVlbiB1cGRhdGVzIHdoZW4gbm8gZmx1c2ggaXMgcGVu
ZGluZy4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FS
TklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIGlmIChbTlNHcmFw
aGljc0NvbnRleHQgY3VycmVudENvbnRleHRdID09IFtbc2VsZiB3aW5kb3ddIGdyYXBoaWNzQ29u
dGV4dF0gJiYgW3dlYlZpZXcgX25lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb25dKSB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NM
QU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAvLyBEaXNhYmxl
IHNjcmVlbiB1cGRhdGVzIHRvIG1pbmltaXplIHRoZSBjaGFuY2VzIG9mIHRoZSByYWNlIGJldHdl
ZW4gdGhlIENBCiAgICAgICAgIC8vIGRpc3BsYXkgbGluayBhbmQgQXBwS2l0IGRyYXdpbmcgY2F1
c2luZyBmbGFzaGVzLgogICAgICAgICBbW3NlbGYgd2luZG93XSBkaXNhYmxlU2NyZWVuVXBkYXRl
c1VudGlsRmx1c2hdOwpAQCAtNDIxNywxMiArNDIxMCwxMSBAQCBzdGF0aWMgQk9PTCBjdXJyZW50
U2Nyb2xsSXNCbGl0KE5TVmlldyAqY2xpcFZpZXcpCiAgICAgaWYgKEZyYW1lKiBjb3JlZnJhbWUg
PSBjb3JlKFtzZWxmIF9mcmFtZV0pKQogICAgICAgICBjb3JlZnJhbWUtPmV2ZW50SGFuZGxlcigp
Lm1vdXNlRG93bihldmVudCk7CiAjZWxzZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgTlNJbnB1dE1hbmFnZXIgKmN1cnJlbnRJbnB1dE1hbmFnZXIgPSBbTlNJbnB1dE1h
bmFnZXIgY3VycmVudElucHV0TWFuYWdlcl07CiAKICAgICBpZiAoIVtjdXJyZW50SW5wdXRNYW5h
Z2VyIHdhbnRzVG9IYW5kbGVNb3VzZUV2ZW50c10gfHwgIVtjdXJyZW50SW5wdXRNYW5hZ2VyIGhh
bmRsZU1vdXNlRXZlbnQ6ZXZlbnRdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIpOwogICAgICAgICBbX3ByaXZhdGUtPmNvbXBsZXRpb25Db250cm9sbGVyIGVuZFJldmVydGlu
Z0NoYW5nZTpOTyBtb3ZlTGVmdDpOT107CiAKICAgICAgICAgLy8gSWYgdGhlIHdlYiBwYWdlIGhh
bmRsZXMgdGhlIGNvbnRleHQgbWVudSBldmVudCBhbmQgbWVudUZvckV2ZW50OiByZXR1cm5zIG5p
bCwgd2UnbGwgZ2V0IGNvbnRyb2wgY2xpY2sgZXZlbnRzIGhlcmUuCkBAIC00Mjc3LDEyICs0MjY5
LDExIEBAIHN0YXRpYyBCT09MIGN1cnJlbnRTY3JvbGxJc0JsaXQoTlNWaWV3ICpjbGlwVmlldykK
ICAgICAvLyB0aGUgY3VycmVudCBldmVudCBwcmV2ZW50cyB0aGF0IGZyb20gY2F1c2luZyBhIHBy
b2JsZW0gaW5zaWRlIFdlYktpdCBvciBBcHBLaXQgY29kZS4KICAgICBbW2V2ZW50IHJldGFpbl0g
YXV0b3JlbGVhc2VdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBO
U0lucHV0TWFuYWdlciAqY3VycmVudElucHV0TWFuYWdlciA9IFtOU0lucHV0TWFuYWdlciBjdXJy
ZW50SW5wdXRNYW5hZ2VyXTsKICAgICBpZiAoW2N1cnJlbnRJbnB1dE1hbmFnZXIgd2FudHNUb0hh
bmRsZU1vdXNlRXZlbnRzXSAmJiBbY3VycmVudElucHV0TWFuYWdlciBoYW5kbGVNb3VzZUV2ZW50
OmV2ZW50XSkKICAgICAgICAgcmV0dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogCiAgICAgW3NlbGYgcmV0YWluXTsKIApAQCAtNDQ0NywxMiArNDQzOCwxMSBAQCBzdGF0aWMg
Ym9vbCBtYXRjaGVzRXh0ZW5zaW9uT3JFcXVpdmFsZW50KE5TU3RyaW5nICpmaWxlbmFtZSwgTlNT
dHJpbmcgKmV4dGVuc2lvbgogICAgIFtzZWxmIF9zZXRNb3VzZURvd25FdmVudDpuaWxdOwogCiAj
aWYgUExBVEZPUk0oTUFDKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
TlNJbnB1dE1hbmFnZXIgKmN1cnJlbnRJbnB1dE1hbmFnZXIgPSBbTlNJbnB1dE1hbmFnZXIgY3Vy
cmVudElucHV0TWFuYWdlcl07CiAgICAgaWYgKFtjdXJyZW50SW5wdXRNYW5hZ2VyIHdhbnRzVG9I
YW5kbGVNb3VzZUV2ZW50c10gJiYgW2N1cnJlbnRJbnB1dE1hbmFnZXIgaGFuZGxlTW91c2VFdmVu
dDpldmVudF0pCiAgICAgICAgIHJldHVybjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
KTsKICNlbmRpZgogCiAgICAgW3NlbGYgcmV0YWluXTsKQEAgLTQ4MDQsMTAgKzQ3OTQsOSBAQCBz
dGF0aWMgUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBj
b3JlRnJhbWUpCiAtICh2b2lkKV9lbmRQcmludE1vZGVBbmRSZXN0b3JlV2luZG93QXV0b2Rpc3Bs
YXkKIHsKICAgICBbc2VsZiBfZW5kUHJpbnRNb2RlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1dG9kaXNwbGF5OllFU107Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiB9CiAKIC0gKHZvaWQpX2RlbGF5ZWRFbmRQcmlu
dE1vZGU6KE5TUHJpbnRPcGVyYXRpb24gKilpbml0aWF0aW5nT3BlcmF0aW9uCkBAIC00ODQyLDEw
ICs0ODMxLDkgQEAgc3RhdGljIFJlZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRF
dmVudChGcmFtZSogY29yZUZyYW1lKQogICAgIC8vIE11c3QgZG8gdGhpcyBleHBsaWNpdCBkaXNw
bGF5IGhlcmUsIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSB2aWV3IG1pZ2h0IHJlZGlzcGxheSB3aGls
ZSB0aGUgcHJpbnQKICAgICAvLyBzaGVldCB3YXMgdXAsIHVzaW5nIHByaW50ZXIgZm9udHMgKGFu
ZCBsb29raW5nIGRpZmZlcmVudCkuCiAgICAgW3NlbGYgZGlzcGxheUlmTmVlZGVkXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1dG9k
aXNwbGF5Ok5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FS
TklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAogICAgIFtbc2Vs
ZiBfd2ViVmlld10gX2FkanVzdFByaW50aW5nTWFyZ2luc0ZvckhlYWRlckFuZEZvb3Rlcl07CiAg
ICAgTlNQcmludE9wZXJhdGlvbiAqcHJpbnRPcGVyYXRpb24gPSBbTlNQcmludE9wZXJhdGlvbiBj
dXJyZW50T3BlcmF0aW9uXTsKQEAgLTUwMzMsMTAgKzUwMjEsOSBAQCBzdGF0aWMgUmVmUHRyPEtl
eWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAjaWYg
UExBVEZPUk0oSU9TKQogICAgICAgICByZXR1cm4gW2FjY1RyZWUgYWNjZXNzaWJpbGl0eUhpdFRl
c3Q6cG9pbnRdOwogI2Vsc2UKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICAgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsK
ICAgICAgICAgTlNQb2ludCB3aW5kb3dDb29yZCA9IFtbc2VsZiB3aW5kb3ddIGNvbnZlcnRTY3Jl
ZW5Ub0Jhc2U6cG9pbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAg
ICAgICAgcmV0dXJuIFthY2NUcmVlIGFjY2Vzc2liaWxpdHlIaXRUZXN0OltzZWxmIGNvbnZlcnRQ
b2ludDp3aW5kb3dDb29yZCBmcm9tVmlldzpuaWxdXTsKICNlbmRpZgogICAgIH0KQEAgLTUwNzQs
MTAgKzUwNjEsOSBAQCBzdGF0aWMgUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2Fy
ZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAKIC0gKE5TRGljdGlvbmFyeSAqKV9mb250QXR0cmli
dXRlc0Zyb21Gb250UGFzdGVib2FyZAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAgICAgTlNQYXN0ZWJvYXJkICpmb250UGFzdGVib2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFz
dGVib2FyZFdpdGhOYW1lOk5TRm9udFBib2FyZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIik7CiAgICAgaWYgKGZvbnRQYXN0ZWJvYXJkID09IG5pbCkKICAgICAgICAgcmV0dXJuIG5p
bDsKICAgICBOU0RhdGEgKmRhdGEgPSBbZm9udFBhc3RlYm9hcmQgZGF0YUZvclR5cGU6bGVnYWN5
Rm9udFBhc3RlYm9hcmRUeXBlKCldOwpAQCAtNTEwMSwxMCArNTA4Nyw5IEBAIHN0YXRpYyBSZWZQ
dHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkK
IAogLSAoTlNTdHJpbmcgKilfY29sb3JBc1N0cmluZzooTlNDb2xvciAqKWNvbG9yCiB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkco
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICBOU0NvbG9yICpyZ2JDb2xvciA9IFtj
b2xvciBjb2xvclVzaW5nQ29sb3JTcGFjZU5hbWU6TlNEZXZpY2VSR0JDb2xvclNwYWNlXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQo
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAvLyBGSVhNRTogSWYgY29sb3IgaXMg
bm9uLW5pbCBhbmQgcmdiQ29sb3IgaXMgbmlsLCB0aGF0IG1lYW5zIHdlIGdvdCBzb21lIGtpbmQK
ICAgICAvLyBvZiBmYW5jeSBjb2xvciB0aGF0IGNhbid0IGJlIGNvbnZlcnRlZCB0byBSR0IuIENo
YW5naW5nIHRoYXQgdG8gInRyYW5zcGFyZW50IgogICAgIC8vIG1pZ2h0IG5vdCBiZSBncmVhdCwg
YnV0IGl0J3MgcHJvYmFibHkgT0suCkBAIC01MjgxLDEwICs1MjY2LDkgQEAgc3RhdGljIFJlZlB0
cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVudChGcmFtZSogY29yZUZyYW1lKQog
CiAgICAgLy8gUHV0IFJURiB3aXRoIGZvbnQgYXR0cmlidXRlcyBvbiB0aGUgcGFzdGVib2FyZC4K
ICAgICAvLyBNYXliZSBsYXRlciB3ZSBzaG91bGQgYWRkIGEgcGFzdGVib2FyZCB0eXBlIHRoYXQg
Y29udGFpbnMgQ1NTIHRleHQgZm9yICJuYXRpdmUiIGNvcHkgYW5kIHBhc3RlIGZvbnQuCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NM
QU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgTlNQYXN0ZWJvYXJkICpmb250
UGFzdGVib2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOk5TRm9udFBib2Fy
ZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW2ZvbnRQYXN0ZWJvYXJk
IGRlY2xhcmVUeXBlczpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6bGVnYWN5Rm9udFBhc3RlYm9h
cmRUeXBlKCldIG93bmVyOm5pbF07CiAgICAgW2ZvbnRQYXN0ZWJvYXJkIHNldERhdGE6W3NlbGYg
X3NlbGVjdGlvblN0YXJ0Rm9udEF0dHJpYnV0ZXNBc1JURl0gZm9yVHlwZTpsZWdhY3lGb250UGFz
dGVib2FyZFR5cGUoKV07CiB9CkBAIC02MTIwLDE1ICs2MTA0LDE0IEBAIHN0YXRpYyBCT09MIHdy
aXRpbmdEaXJlY3Rpb25LZXlCaW5kaW5nc0VuYWJsZWQoKQogICAgIGNvbnN0IFZlY3RvcjxLZXlw
cmVzc0NvbW1hbmQ+JiBjb21tYW5kcyA9IHBhcmFtZXRlcnMtPmV2ZW50LT5rZXlwcmVzc0NvbW1h
bmRzKCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbW1hbmRzLnNpemUoKTsgKytp
KSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9X
QVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgICAgIGlmIChj
b21tYW5kc1tpXS5jb21tYW5kTmFtZSA9PSAiaW5zZXJ0VGV4dDoiKQogICAgICAgICAgICAgW3Nl
bGYgaW5zZXJ0VGV4dDpjb21tYW5kc1tpXS50ZXh0XTsKICAgICAgICAgZWxzZSBpZiAoY29tbWFu
ZHNbaV0uY29tbWFuZE5hbWUgPT0gIm5vb3A6IikKICAgICAgICAgICAgIDsgLy8gRG8gbm90aGlu
Zy4gVGhpcyBjYXNlIGNhbiBiZSByZW1vdmVkIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzkwMjUwMTI+
IGlzIGZpeGVkLgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBbc2VsZiBkb0NvbW1hbmRCeVNl
bGVjdG9yOk5TU2VsZWN0b3JGcm9tU3RyaW5nKGNvbW1hbmRzW2ldLmNvbW1hbmROYW1lKV07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
X0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIH0KICAgICBwYXJhbWV0ZXJz
LT5ldmVudC0+a2V5cHJlc3NDb21tYW5kcygpLmNsZWFyKCk7CiAgICAgcGFyYW1ldGVycy0+c2hv
dWxkU2F2ZUNvbW1hbmRzID0gd2FzU2F2aW5nQ29tbWFuZHM7CkBAIC02MzI0LDEwICs2MzA3LDkg
QEAgc3RhdGljIEJPT0wgd3JpdGluZ0RpcmVjdGlvbktleUJpbmRpbmdzRW5hYmxlZCgpCiAgICAg
ICAgIC8vIElmIHdlIGFyZSBpbiBhIGxheWVyLWJhY2tlZCB2aWV3LCB3ZSBuZWVkIHRvIG1hbnVh
bGx5IGluaXRpYWxpemUgdGhlIGdlb21ldHJ5IGZvciBvdXIgbGF5ZXIuCiAgICAgICAgIFt2aWV3
TGF5ZXIgc2V0Qm91bmRzOk5TUmVjdFRvQ0dSZWN0KFtfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmll
dyBib3VuZHNdKV07CiAgICAgICAgIFt2aWV3TGF5ZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludE1h
a2UoMCwgW3NlbGYgaXNGbGlwcGVkXSA/IDEgOiAwKV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgICAgIENHUG9pbnQgbGF5ZXJQb3NpdGlvbiA9IE5TUG9pbnRU
b0NHUG9pbnQoW3NlbGYgY29udmVydFBvaW50VG9CYXNlOltfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5n
VmlldyBmcmFtZV0ub3JpZ2luXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
OwogICAgICAgICBbdmlld0xheWVyIHNldFBvc2l0aW9uOmxheWVyUG9zaXRpb25dOwogICAgIH0K
ICAgICAKQEAgLTY0NTcsMTAgKzY0MzksOSBAQCBzdGF0aWMgQk9PTCB3cml0aW5nRGlyZWN0aW9u
S2V5QmluZGluZ3NFbmFibGVkKCkKICAgICAgICAgTE9HKFRleHRJbnB1dCwgInRleHRTdG9yYWdl
IC0+IG5pbCIpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIpOwogICAgIE5TQXR0cmlidXRlZFN0cmluZyAqcmVzdWx0ID0gW3NlbGYg
YXR0cmlidXRlZFN1YnN0cmluZ0Zyb21SYW5nZTpOU01ha2VSYW5nZSgwLCBVSU5UX01BWCldOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VO
RCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAgICAgTE9HKFRleHRJbnB1dCwgInRl
eHRTdG9yYWdlIC0+IFwiJUBcIiIsIHJlc3VsdCA/IFtyZXN1bHQgc3RyaW5nXSA6IEAiIik7CiAg
ICAgCkBAIC02OTM5LDE1ICs2OTIwLDE0IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVz
KE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKICAg
ICB1bnNpZ25lZCBzdGFydDsKICAgICB1bnNpZ25lZCBlbmQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiKTsKICAgICBpZiAoY29yZUZyYW1lLT5lZGl0b3IoKS5nZXRDb21wb3NpdGlv
blNlbGVjdGlvbihzdGFydCwgZW5kKSkKICAgICAgICAgW1tOU0lucHV0TWFuYWdlciBjdXJyZW50
SW5wdXRNYW5hZ2VyXSBtYXJrZWRUZXh0U2VsZWN0aW9uQ2hhbmdlZDpOU01ha2VSYW5nZShzdGFy
dCwgZW5kIC0gc3RhcnQpIGNsaWVudDpzZWxmXTsKICAgICBlbHNlIHsKICAgICAgICAgY29yZUZy
YW1lLT5lZGl0b3IoKS5jYW5jZWxDb21wb3NpdGlvbigpOwogICAgICAgICBbW05TSW5wdXRNYW5h
Z2VyIGN1cnJlbnRJbnB1dE1hbmFnZXJdIG1hcmtlZFRleHRBYmFuZG9uZWQ6c2VsZl07CiAgICAg
fQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5H
X0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQppbmRleCAyNGRhYzllM2E4
ZmI4OTM0YTY0ZDE5Y2IxY2QzMWFiOTFjYjdmZDg1Li5mNzIxOWYzNmJiMTlhZGVjZDE1NTlhZWI5
Yzg3YmEzMTlkZTBmOTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlBERlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQREZWaWV3Lm1tCkBAIC0xMjYsMTAgKzEyNiw5IEBAIHN0YXRpYyB2b2lkIF9hcHBsaWNhdGlv
bkluZm9Gb3JNSU1FVHlwZShOU1N0cmluZyAqdHlwZSwgTlNTdHJpbmcgKipuYW1lLCBOU0ltYWdl
CiB7CiAgICAgQ0ZVUkxSZWYgYXBwVVJMID0gbnVsbHB0cjsKIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgT1NTdGF0dXMgZXJyb3IgPSBMU0NvcHlBcHBsaWNhdGlvbkZv
ck1JTUVUeXBlKChfX2JyaWRnZSBDRlN0cmluZ1JlZil0eXBlLCBrTFNSb2xlc0FsbCwgJmFwcFVS
TCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xB
TkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgaWYgKGVycm9yICE9IG5v
RXJyKQogICAgICAgICByZXR1cm47CiAgICAgCkBAIC0yMjYsMTAgKzIyNSw5IEBAIHN0YXRpYyBC
T09MIF9QREZTZWxlY3Rpb25zQXJlRXF1YWwoUERGU2VsZWN0aW9uICpzZWxlY3Rpb25BLCBQREZT
ZWxlY3Rpb24gKnNlbGVjCiAtICh2b2lkKWNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWE6KGlk
KXNlbmRlcgogewogICAgIC8vIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgb25jZSA8cmRhcjovL3By
b2JsZW0vMjUxNDkyOTQ+IGhhcyBiZWVuIGZpeGVkLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbm51bGwiCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1Xbm9ubnVsbCIpOwogICAgIFtQREZTdWJ2aWV3IHNjcm9s
bFNlbGVjdGlvblRvVmlzaWJsZTpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdub25udWxsIik7CiB9CiAKIC0gKHZvaWQp
c2Nyb2xsUGFnZURvd246KGlkKXNlbmRlcgpAQCAtMzcwLDEwICszNjgsOSBAQCBzdGF0aWMgQk9P
TCBfUERGU2VsZWN0aW9uc0FyZUVxdWFsKFBERlNlbGVjdGlvbiAqc2VsZWN0aW9uQSwgUERGU2Vs
ZWN0aW9uICpzZWxlYwogCiAtICh2b2lkKV9yZWN1cnNpdmVEaXNwbGF5UmVjdElmTmVlZGVkSWdu
b3JpbmdPcGFjaXR5OihOU1JlY3QpcmVjdCBpc1Zpc2libGVSZWN0OihCT09MKWlzVmlzaWJsZVJl
Y3QgcmVjdElzVmlzaWJsZVJlY3RGb3JWaWV3OihOU1ZpZXcgKil2aXNpYmxlVmlldyB0b3BWaWV3
OihCT09MKXRvcFZpZXcKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAg
IENHQ29udGV4dFJlZiBjb250ZXh0ID0gKENHQ29udGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0
IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgIAogICAgIGJvb2wgYWxsb3dzU21vb3RoaW5nID0gQ0dDb250ZXh0R2V0QWxs
b3dzRm9udFNtb290aGluZyhjb250ZXh0KTsKICAgICBib29sIGFsbG93c1N1YnBpeGVsUXVhbnRp
emF0aW9uID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUXVhbnRpemF0aW9uKGNvbnRl
eHQpOwpAQCAtMzg2LDEwICszODMsOSBAQCBzdGF0aWMgQk9PTCBfUERGU2VsZWN0aW9uc0FyZUVx
dWFsKFBERlNlbGVjdGlvbiAqc2VsZWN0aW9uQSwgUERGU2VsZWN0aW9uICpzZWxlYwogCiAtICh2
b2lkKV9yZWN1cnNpdmVEaXNwbGF5QWxsRGlydHlXaXRoTG9ja0ZvY3VzOihCT09MKW5lZWRzTG9j
a0ZvY3VzIHZpc1JlY3Q6KE5TUmVjdCl2aXNSZWN0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiKTsKICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IChDR0NvbnRleHRSZWYpW1tO
U0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAKICAgICBib29sIGFsbG93c1Ntb290aGluZyA9
IENHQ29udGV4dEdldEFsbG93c0ZvbnRTbW9vdGhpbmcoY29udGV4dCk7CiAgICAgYm9vbCBhbGxv
d3NTdWJwaXhlbFF1YW50aXphdGlvbiA9IENHQ29udGV4dEdldEFsbG93c0ZvbnRTdWJwaXhlbFF1
YW50aXphdGlvbihjb250ZXh0KTsKQEAgLTQwMiwxMCArMzk4LDkgQEAgc3RhdGljIEJPT0wgX1BE
RlNlbGVjdGlvbnNBcmVFcXVhbChQREZTZWxlY3Rpb24gKnNlbGVjdGlvbkEsIFBERlNlbGVjdGlv
biAqc2VsZWMKIAogLSAodm9pZClfcmVjdXJzaXZlOihCT09MKXJlY3Vyc2UgZGlzcGxheVJlY3RJ
Z25vcmluZ09wYWNpdHk6KE5TUmVjdClkaXNwbGF5UmVjdCBpbkNvbnRleHQ6KE5TR3JhcGhpY3ND
b250ZXh0ICopZ3JhcGhpY3NDb250ZXh0IHRvcFZpZXc6KEJPT0wpdG9wVmlldwogewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSAo
Q0dDb250ZXh0UmVmKVtncmFwaGljc0NvbnRleHQgZ3JhcGhpY3NQb3J0XTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICAKICAgICBib29sIGFsbG93c1Ntb290aGluZyA9IENH
Q29udGV4dEdldEFsbG93c0ZvbnRTbW9vdGhpbmcoY29udGV4dCk7CiAgICAgYm9vbCBhbGxvd3NT
dWJwaXhlbFF1YW50aXphdGlvbiA9IENHQ29udGV4dEdldEFsbG93c0ZvbnRTdWJwaXhlbFF1YW50
aXphdGlvbihjb250ZXh0KTsKQEAgLTY2OSwxMCArNjY0LDkgQEAgc3RhdGljIEJPT0wgX1BERlNl
bGVjdGlvbnNBcmVFcXVhbChQREZTZWxlY3Rpb24gKnNlbGVjdGlvbkEsIFBERlNlbGVjdGlvbiAq
c2VsZWMKICAgICBbUERGU3VidmlldyBzZXRDdXJyZW50U2VsZWN0aW9uOnNlbGVjdGlvbl07CiAK
ICAgICAvLyBGSVhNRTogR2V0IHJpZCBvZiB0aGlzIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzI1MTQ5
Mjk0PiBoYXMgYmVlbiBmaXhlZC4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub25udWxsIgorICAgIElHTk9SRV9XQVJO
SU5HX0NMQU5HKCItV25vbm51bGwiKTsKICAgICBbUERGU3VidmlldyBzY3JvbGxTZWxlY3Rpb25U
b1Zpc2libGU6bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVf
V0FSTklOR19DTEFOR19FTkQoIi1Xbm9ubnVsbCIpOwogICAgIHJldHVybiBZRVM7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRp
b25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJUZXh0
Q29tcGxldGlvbkNvbnRyb2xsZXIubW0KaW5kZXggYzZmMGU3MzQ1ZjVlZTgyYjcxYmMxYzRhYmEy
NmM0MGUyMWZmMDNhNi4uYTViZmVhNjgzNDE3MTA1NjBhZmMyNTJmNjkyNGI0ZDc1NGMxNDdkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxl
dGlvbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW0KQEAgLTg0LDEwICs4NCw5IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogewogICAgIE5TUmVjdCBzY3JvbGxGcmFtZSA9IE5TTWFrZVJlY3Qo
MCwgMCwgMTAwLCAxMDApOwogICAgIE5TUmVjdCB0YWJsZUZyYW1lID0gTlNaZXJvUmVjdDsgICAg
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgSUdOT1JFX1dBUk5JTkdf
Q0xBTkcoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKICAgICB0YWJsZUZyYW1lLnNpemUg
PSBbTlNTY3JvbGxWaWV3IGNvbnRlbnRTaXplRm9yRnJhbWVTaXplOnNjcm9sbEZyYW1lLnNpemUg
aGFzSG9yaXpvbnRhbFNjcm9sbGVyOk5PIGhhc1ZlcnRpY2FsU2Nyb2xsZXI6WUVTIGJvcmRlclR5
cGU6TlNOb0JvcmRlcl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JF
X1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgTlNU
YWJsZUNvbHVtbiAqY29sdW1uID0gW1tOU1RhYmxlQ29sdW1uIGFsbG9jXSBpbml0XTsKICAgICBb
Y29sdW1uIHNldFdpZHRoOnRhYmxlRnJhbWUuc2l6ZS53aWR0aF07CiAgICAgW2NvbHVtbiBzZXRF
ZGl0YWJsZTpOT107CkBAIC0xMzMsMTAgKzEzMiw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiAgICAgTlNSZWN0IHdpbmRvd0ZyYW1lOwogICAgIE5TUG9pbnQgd29yZFN0YXJ0ID0gdG9w
TGVmdDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBJR05PUkVfV0FS
TklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgIHdpbmRvd0ZyYW1l
Lm9yaWdpbiA9IFtbX3ZpZXcgd2luZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOltfaHRtbFZpZXcg
Y29udmVydFBvaW50OndvcmRTdGFydCB0b1ZpZXc6bmlsXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAgICAgd2luZG93RnJhbWUuc2l6ZS5oZWlnaHQgPSBudW1iZXJUb1Nob3cg
KiBbX3RhYmxlVmlldyByb3dIZWlnaHRdICsgKG51bWJlclRvU2hvdyArIDEpICogW190YWJsZVZp
ZXcgaW50ZXJjZWxsU3BhY2luZ10uaGVpZ2h0OwogICAgIHdpbmRvd0ZyYW1lLm9yaWdpbi55IC09
IHdpbmRvd0ZyYW1lLnNpemUuaGVpZ2h0OwogICAgIE5TRGljdGlvbmFyeSAqYXR0cmlidXRlcyA9
IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czpbTlNGb250IHN5c3Rl
bUZvbnRPZlNpemU6MTIuMGZdLCBOU0ZvbnRBdHRyaWJ1dGVOYW1lLCBuaWxdOwpAQCAtMTUxLDEw
ICsxNDksOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICB9CiAgICAgd2luZG93RnJh
bWUuc2l6ZS53aWR0aCA9IDEwMDsKICAgICBpZiAobWF4SW5kZXggPj0gMCkgewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBJR05PUkVfV0FSTklOR19DTEFORygi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICBtYXhXaWR0aCA9IGNlaWxmKFtO
U1Njcm9sbFZpZXcgZnJhbWVTaXplRm9yQ29udGVudFNpemU6TlNNYWtlU2l6ZShtYXhXaWR0aCwg
MTAwLjBmKSBoYXNIb3Jpem9udGFsU2Nyb2xsZXI6Tk8gaGFzVmVydGljYWxTY3JvbGxlcjpZRVMg
Ym9yZGVyVHlwZTpOU05vQm9yZGVyXS53aWR0aCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIpOwogICAgICAgICBtYXhXaWR0aCA9IGNlaWxmKFtOU1dpbmRvdyBmcmFtZVJlY3RG
b3JDb250ZW50UmVjdDpOU01ha2VSZWN0KDAuMGYsIDAuMGYsIG1heFdpZHRoLCAxMDAuMGYpIHN0
eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3NdLnNpemUud2lkdGgpOwogICAgICAg
ICBtYXhXaWR0aCArPSA1LjBmOwogICAgICAgICB3aW5kb3dGcmFtZS5zaXplLndpZHRoID0gc3Rk
OjptYXgobWF4V2lkdGgsIHdpbmRvd0ZyYW1lLnNpemUud2lkdGgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyLm1tCmluZGV4IGFiNDM4ODdkMTc0NGQ3NTNkNTAwM2EyMmUwNGY0Mjc1MTRhMWJl
NjYuLjQ0Nzk0NTNlOGJmNjQ4NjY0NTBkNzEzMjhjMTU5NTdhYTliYjUyNzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVs
bHNjcmVlbkNvbnRyb2xsZXIubW0KQEAgLTM4LDggKzM4LDcgQEAKICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUwoIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiKQogCiBTT0ZUX0xJTktfRlJBTUVXT1JLKEFWRm91bmRhdGlv
bikKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWUGxheWVyTGF5ZXIpCkBAIC01MDks
NiArNTA4LDYgQEAgc3RhdGljIE5TV2luZG93ICpjcmVhdGVCYWNrZ3JvdW5kRnVsbHNjcmVlbldp
bmRvdyhOU1JlY3QgZnJhbWUsIGludCBsZXZlbCkKIAogQGVuZAogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR19DTEFOR19UT1BfTEVWRUxfRU5EKCItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIikKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkhV
RFdpbmRvd0NvbnRyb2xsZXIubW0KaW5kZXggZTdiZTg2ZDM3NGU0NTBlZWU3MDA5MWM1ZTMyZDkz
YjMxNWE1Y2YzOS4uNzU0ZjlkZWRkZDgxMDRmOWM5YjViZGRiNTE4Zjk2OWY0YmQyNTEwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5IVURXaW5kb3dDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQpAQCAtMzczLDEw
ICszNzMsOSBAQCBzdGF0aWMgTlNWaWV3ICpjcmVhdGVNZWRpYVVJQmFja2dyb3VuZFZpZXcoKQog
ICAgIGNvbnN0IENHRmxvYXQgcXVpY2tUaW1lUGxheWVySFVESGVpZ2h0ID0gNTk7CiAgICAgY29u
c3QgQ0dGbG9hdCBxdWlja1RpbWVQbGF5ZXJIVURDb250ZW50Qm9yZGVyUG9zaXRpb24gPSAzODsK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5H
X0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAgW3ZpZXcgc2V0Q29udGVu
dEJvcmRlclBvc2l0aW9uOnF1aWNrVGltZVBsYXllckhVRENvbnRlbnRCb3JkZXJQb3NpdGlvbiAv
IHF1aWNrVGltZVBsYXllckhVREhlaWdodF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
Iik7CiAKICAgICByZXR1cm4gdmlldzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQppbmRleCBiODkyNzM0Y2FmZjM2NWRkNzg1NDlkODdlYzBhMDM5NDk3NmI2
NjY2Li42YzIyZDhlZTRiOTRlOTYwMTQ1Y2QyNzI5NmQ3YWZkYTFlMTRmZDRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC04NjUsMTUgKzg2NSwxNCBA
QCBzdGF0aWMgY29uc3QgTlNVSW50ZWdlciBvcmRlcmVkTGlzdFNlZ21lbnQgPSAyOwogICAgIFtp
bnNlcnRMaXN0Q29udHJvbCBzZXRXaWR0aDpsaXN0Q29udHJvbFNlZ21lbnRXaWR0aCBmb3JTZWdt
ZW50Om9yZGVyZWRMaXN0U2VnbWVudF07CiAgICAgaW5zZXJ0TGlzdENvbnRyb2wuZm9udCA9IFtO
U0ZvbnQgc3lzdGVtRm9udE9mU2l6ZToxNV07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgIGlkIHNlZ21lbnRFbGVtZW50ID0gTlNBY2Nlc3NpYmlsaXR5VW5pZ25vcmVk
RGVzY2VuZGFudChpbnNlcnRMaXN0Q29udHJvbCk7CiAgICAgTlNBcnJheSAqc2VnbWVudHMgPSBb
c2VnbWVudEVsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0
eUNoaWxkcmVuQXR0cmlidXRlXTsKICAgICBBU1NFUlQoc2VnbWVudHMuY291bnQgPT0gMyk7CiAg
ICAgW3NlZ21lbnRzW25vTGlzdFNlZ21lbnRdIGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVl
OldlYkNvcmU6Omluc2VydExpc3RUeXBlTm9uZSgpIGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxp
dHlEZXNjcmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgW3NlZ21lbnRzW3Vub3JkZXJlZExpc3RTZWdt
ZW50XSBhY2Nlc3NpYmlsaXR5U2V0T3ZlcnJpZGVWYWx1ZTpXZWJDb3JlOjppbnNlcnRMaXN0VHlw
ZUJ1bGxldGVkQWNjZXNzaWJpbGl0eVRpdGxlKCkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0
eURlc2NyaXB0aW9uQXR0cmlidXRlXTsKICAgICBbc2VnbWVudHNbb3JkZXJlZExpc3RTZWdtZW50
XSBhY2Nlc3NpYmlsaXR5U2V0T3ZlcnJpZGVWYWx1ZTpXZWJDb3JlOjppbnNlcnRMaXN0VHlwZU51
bWJlcmVkQWNjZXNzaWJpbGl0eVRpdGxlKCkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eURl
c2NyaXB0aW9uQXR0cmlidXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJ
R05PUkVfV0FSTklOR19DTEFOR19FTkQoIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKTsKIAog
ICAgIHNlbGYudmlldyA9IGluc2VydExpc3RDb250cm9sOwogCkBAIC0yMTc4LDExICsyMTc3LDEw
IEBAIHN0YXRpYyBOU011dGFibGVTZXQgKmtub3duUGx1Z2luTUlNRVR5cGVzKCkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
aWYgKCFPU0F0b21pY0NvbXBhcmVBbmRTd2FwMzIoMCwgMSwgJl9wcml2YXRlLT5kaWREcmF3VGls
ZXMpKQogICAgICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
SUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAK
ICAgICBXZWJUaHJlYWRMb2NrKCk7CiAKQEAgLTU4OTIsMjEgKzU4OTAsMTkgQEAgc3RhdGljIGJv
b2wgbmVlZHNXZWJWaWV3SW5pdFRocmVhZFdvcmthcm91bmQoKQogCiAtICh2b2lkKWVuY29kZVdp
dGhDb2RlcjooTlNDb2RlciAqKWVuY29kZXIKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIpOwogICAgIC8vIFNldCBhc3NpZGUgdGhlIHN1YnZpZXdzIGJlZm9yZSB3ZSBhcmNoaXZl
LiBXZSBkb24ndCB3YW50IHRvIGFyY2hpdmUgYW55IHN1YnZpZXdzLgogICAgIC8vIFRoZSBzdWJ2
aWV3cyB3aWxsIGFsd2F5cyBiZSBjcmVhdGVkIGluIF9jb21tb25Jbml0aWFsaXphdGlvbkZyYW1l
TmFtZTpncm91cE5hbWU6LgogICAgIGlkIG9yaWdpbmFsU3Vidmlld3MgPSBfc3Vidmlld3M7CiAg
ICAgX3N1YnZpZXdzID0gbmlsOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElH
Tk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogCiAg
ICAgW3N1cGVyIGVuY29kZVdpdGhDb2RlcjplbmNvZGVyXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HKCItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIik7CiAgICAgLy8gUmVzdG9yZSB0aGUgc3Vidmlld3Mgd2Ugc2V0IGFzaWRl
LgogICAgIF9zdWJ2aWV3cyA9IG9yaWdpbmFsU3Vidmlld3M7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkdfRU5EKCItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIik7CiAKICAgICBCT09MIHVzZUJhY2tGb3J3YXJkTGlzdCA9IF9wcml2YXRlLT5w
YWdlICYmIHN0YXRpY19jYXN0PEJhY2tGb3J3YXJkTGlzdCo+KF9wcml2YXRlLT5wYWdlLT5iYWNr
Rm9yd2FyZCgpLmNsaWVudCgpKS0+ZW5hYmxlZCgpOwogICAgIGlmIChbZW5jb2RlciBhbGxvd3NL
ZXllZENvZGluZ10pIHsKQEAgLTcxMzcsMTAgKzcxMzMsOSBAQCBzdGF0aWMgV2ViRnJhbWUgKmlu
Y3JlbWVudEZyYW1lKFdlYkZyYW1lICpmcmFtZSwgV2ViRmluZE9wdGlvbnMgb3B0aW9ucyA9IDAp
CiAgICAgaWYgKGF1dG8gKmljb24gPSBfcHJpdmF0ZS0+X21haW5GcmFtZUljb24uZ2V0KCkpCiAg
ICAgICAgIHJldHVybiBpY29uOwogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2ggCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgSUdOT1JFX1dBUk5JTkdfR0NDKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIik7CiAgICAg
cmV0dXJuIFtbV2ViSWNvbkRhdGFiYXNlIHNoYXJlZEljb25EYXRhYmFzZV0gZGVmYXVsdEljb25X
aXRoU2l6ZTpXZWJJY29uU21hbGxTaXplXTsKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisg
ICAgSUdOT1JFX1dBUk5JTkdfR0NDX0VORCgiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
fQogCiAtICh2b2lkKV9zZXRNYWluRnJhbWVJY29uOihOU0ltYWdlICopaWNvbgpAQCAtOTMwOCwx
MCArOTMwMyw5IEBAIGJvb2wgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OmZsdXNoTGF5ZXJzKCkKICAg
ICAgICAgLy8gQXBwS2l0IG1heSBoYXZlIGRpc2FibGVkIHNjcmVlbiB1cGRhdGVzLCB0aGlua2lu
ZyBhbiB1cGNvbWluZyB3aW5kb3cgZmx1c2ggd2lsbCByZS1lbmFibGUgdGhlbS4KICAgICAgICAg
Ly8gSW4gY2FzZSBzZXROZWVkc0Rpc3BsYXlJblJlY3QoKSBoYXMgcHJldmVudGVkIHRoZSB3aW5k
b3cgZnJvbSBuZWVkaW5nIHRvIGJlIGZsdXNoZWQsIHJlLWVuYWJsZSBzY3JlZW4KICAgICAgICAg
Ly8gdXBkYXRlcyBoZXJlLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
ICAgICBJR05PUkVfV0FSTklOR19DTEFORygiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwog
ICAgICAgICBpZiAoIVt3aW5kb3cgaXNGbHVzaFdpbmRvd0Rpc2FibGVkXSkKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpOwogICAgICAgICAgICAgW3dpbmRvdyBfZW5hYmxl
U2NyZWVuVXBkYXRlc0lmTmVlZGVkXTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYldpbmRvd0FuaW1hdGlvbi5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViV2luZG93QW5pbWF0aW9uLm1tCmluZGV4IDkyMzU4ZjZi
N2RlM2FiYTk2NGVlYWYxNzQyNWYyNzFiOTVhYTg2MDkuLjUyZGZjYTIwYThmZmUxY2I5MDU2MTM2
NTAzN2M3ZWQ2ZDQ5N2Q3NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViV2luZG93QW5pbWF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViV2luZG93QW5pbWF0aW9uLm1tCkBAIC0xMjUsMTAgKzEyNSw5IEBAIHN0YXRp
YyBDR1NDb25uZWN0aW9uSUQgbWFpbldpbmRvd1NlcnZlckNvbm5lY3Rpb25JRCgpCiBzdGF0aWMg
dm9pZCBzZXRTY2FsZWRGcmFtZUZvcldpbmRvdyhOU1dpbmRvdyAqd2luZG93LCBOU1JlY3Qgc2Nh
bGVGcmFtZSwgTlNSZWN0IG5vblNjYWxlZEZyYW1lKQogewogICAgIGlmIChOU0VxdWFsUmVjdHMo
c2NhbGVGcmFtZSwgbm9uU2NhbGVkRnJhbWUpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9ubnVsbCIKKyAgICAg
ICAgSUdOT1JFX1dBUk5JTkdfQ0xBTkcoIi1Xbm9ubnVsbCIpOwogICAgICAgICBDR1NTZXRXaW5k
b3dXYXJwKG1haW5XaW5kb3dTZXJ2ZXJDb25uZWN0aW9uSUQoKSwgd2luZG93LndpbmRvd051bWJl
ciwgMCwgMCwgbnVsbHB0cik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAg
IElHTk9SRV9XQVJOSU5HX0NMQU5HX0VORCgiLVdub25udWxsIik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348780</attachid>
            <date>2018-09-03 11:12:39 -0700</date>
            <delta_ts>2018-09-04 02:03:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188996-20180903201237.patch</filename>
            <type>text/plain</type>
            <size>313864</size>
            <attacher name="Guillaume Emont">guijemont</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
YzFhYmRjMjYzZGE0NzVkNDhkM2FiYmJhM2M1ODg4Y2I4YjBlM2FmLi40Mjc0NzU2ZTc2ODI1NmUy
YTA1NGM1MTMyM2NhODNkMTE4YTA1ODIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09i
amVjdC5oOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLmM6CisgICAgICAgICogYXNzZW1i
bGVyL0xpbmtCdWZmZXIuaDoKKyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6ZmluYWxpemVDb2Rl
V2l0aERpc2Fzc2VtYmx5KToKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAg
ICAqIGIzL0IzT3Bjb2RlLmNwcDoKKyAgICAgICAgKiBiMy9CM1R5cGUuaDoKKyAgICAgICAgKiBi
My9CM1R5cGVNYXAuaDoKKyAgICAgICAgKiBiMy9CM1dpZHRoLmg6CisgICAgICAgICogYjMvYWly
L0FpckFyZy5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAqIGIzL2Fp
ci9BaXJDb2RlLmg6CisgICAgICAgICogYnl0ZWNvZGUvT3Bjb2RlLmg6CisgICAgICAgIChKU0M6
OnBhZE9wY29kZU5hbWUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU51bWJlcik6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1pc2MpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6
CisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBl
cnM6OmNhbGN1bGF0ZVBva2VPZmZzZXQpOgorICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6
CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTElu
dDo6c2xvd1BhdGhMb2dGKToKKyAgICAgICAgKiBydW50aW1lL0NvbmZpZ0ZpbGUuY3BwOgorICAg
ICAgICAoSlNDOjpDb25maWdGaWxlOjpjYW5vbmljYWxpemVQYXRocyk6CisgICAgICAgICogcnVu
dGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNw
cDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6c2V0QWxpYXNlZE9wdGlvbik6CisgICAgICAgICog
dG9vbHMvQ29kZVByb2ZpbGluZy5jcHA6CisgICAgICAgICogd2FzbS9XYXNtU2VjdGlvbnMuaDoK
KyAgICAgICAgKiB3YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weToKKwog
MjAxOC0wOS0wMiAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93c3RhcnQub3JnPgog
CiAgICAgICAgIEltcGxlbWVudCBPYmplY3QuZnJvbUVudHJpZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMzc5NDJiYzg1Nzg2
ZDM4M2U1ZmVhMmNhY2ZhOTQ5MGEyMTAyZTRiYy4uZTZkMmRkYmQwOTNjYWJkYzQxMDI2NTllNGZj
OTU5MzZkODg1YzQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1l
IEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJO
SU5HXy4qIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTg4OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoK
KyAgICAgICAgKiB3dGYvQ29tcGlsZXIuaDoKKyAgICAgICAgKiB3dGYvTUQ1LmNwcDoKKyAgICAg
ICAgKFdURjo6TUQ1OjpNRDUpOgorICAgICAgICAoV1RGOjpNRDU6OmFkZEJ5dGVzKToKKyAgICAg
ICAgKFdURjo6TUQ1OjpjaGVja3N1bSk6CisgICAgICAgICogd3RmL1ByaW50U3RyZWFtLmNwcDoK
KyAgICAgICAgKFdURjo6UHJpbnRTdHJlYW06OnByaW50ZlZhcmlhYmxlRm9ybWF0KToKKyAgICAg
ICAgKiB3dGYvU0hBMS5jcHA6CisgICAgICAgIChXVEY6OlNIQTE6OlNIQTEpOgorICAgICAgICAo
V1RGOjpTSEExOjphZGRCeXRlcyk6CisgICAgICAgIChXVEY6OlNIQTE6OmNvbXB1dGVIYXNoKToK
KyAgICAgICAgKiB3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwOgorICAgICAgICAqIHd0Zi9WZWN0
b3IuaDoKKyAgICAgICAgKFdURjo6VmVjdG9yQnVmZmVyOjplbmRPZkJ1ZmZlcik6CisgICAgICAg
ICogd3RmL3RleHQvV1RGU3RyaW5nLmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRlV2l0aEZvcm1h
dEFuZEFyZ3VtZW50cyk6CisKIDIwMTgtMDgtMzEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgT3B0aW9uU2V0IHw9IGFuZCAtPSBvcGVyYXRvcnMg
d2l0aCBhZGQoKSBhbmQgcmVtb3ZlKCkgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTI1NDQyMTFj
ZTMwYTA5NjYzNmFhNGJmNWY3MzdiNmVmYzAxYWNiNC4uYTdhMTI1YjM2YzNlMDViNDRkZjdhNDBl
NjlhMWQyNDZlYjBiNmNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMSBAQAorMjAxOC0wOC0y
NyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRk
IElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENEYXRhQ2hhbm5lbEhhbmRsZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9t
YWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6Om92ZXJyaWRlQXR0YWNobWVudFBhcmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SWdub3JlQXR0YWNobWVudCBjb25z
dCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHJl
bmRlcldpZGdldENoaWxkcmVuXSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyIGNvbnZlcnRQb2ludFRvU2NyZWVuU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIHJvbGVdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIgcm9sZURlc2NyaXB0aW9uXSk6CisgICAgICAgICogYnJpZGdlL29iamMv
V2ViU2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfY2xhc3MubW06
CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjQ2xhc3M6OmZpZWxkTmFtZWQgY29uc3QpOgor
ICAgICAgICAqIGNyeXB0by9Db21tb25DcnlwdG9VdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Z2V0Q29tbW9uQ3J5cHRvRGlnZXN0QWxnb3JpdGhtKToKKyAgICAgICAgKiBjcnlwdG8v
bWFjL0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5j
cnlwdEFFU19HQ00pOgorICAgICAgICAoV2ViQ29yZTo6ZGVjeXB0QUVTX0dDTSk6CisgICAgICAg
ICogY3J5cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OndyYXBTZXJpYWxpemVkQ3J5cHRvS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OnVud3Jh
cFNlcmlhbGl6ZWRDcnlwdG9LZXkpOgorICAgICAgICAqIGNzcy9tYWtlU2VsZWN0b3JQc2V1ZG9D
bGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5OgorICAgICAgICAqIGNzcy9tYWtlU2Vs
ZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5weToKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRv
ci5jcHA6CisgICAgICAgICogZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6cmVwbGFjZU5vZGVGcm9tUGFzdGVib2FyZCk6CisgICAgICAgICogcGFnZS9tYWMvRXZl
bnRIYW5kbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kRmFr
ZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1NlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXIubW06CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyOjpIaWdobGlnaHQ6OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybWF0TG9jYWxpemVk
U3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmg6CisgICAgICAg
IChXZWJDb3JlOjpTY3JlZW5EYXRhOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dhbWVw
YWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1l
cGFkUHJvdmlkZXI6OnN0b3BNb25pdG9yaW5nSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURp
c3BsYXk6OnNoYXJlZERpc3BsYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1N1cnJv
Z2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6OnVwZGF0ZU9wdGlvbnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0
cmVhbVNlc3Npb24ubW06CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uQVZTdHJlYW1TZXNz
aW9uOjp1cGRhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6c2V0Q3VycmVudFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2sgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6c2V0U2hvdWxkRGlzYWJsZVNsZWVwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpJR05PUkVf
Q0xBTkdfV0FSTklOR19FTkQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW06CisgICAgICAgICgtW1dlYkFWU2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lciBiZWdpbk9ic2Vy
dmluZ1JlbmRlcmVyOl0pOgorICAgICAgICAoLVtXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVu
ZXIgc3RvcE9ic2VydmluZ1JlbmRlcmVyOl0pOgorICAgICAgICAoLVtXZWJBVlNhbXBsZUJ1ZmZl
ckVycm9yTGlzdGVuZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29u
dGV4dDpdKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0
cmFja0RpZENoYW5nZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SUdOT1JFX0NMQU5HX1dB
Uk5JTkdfRU5EKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9y
bUNBTGF5ZXJDb2NvYS5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllcjo6ZHJhd0xheWVyQ29u
dGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZi
dXp6TkcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGU6OmZvbnRGb3JDb21iaW5p
bmdDaGFyYWN0ZXJTZXF1ZW5jZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VEZWNvZGVyQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyQ0c6
OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oOgorICAgICAgICAoSUdOT1JFX0NMQU5HX1dBUk5J
TkcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xs
ZXJDb3JlVGV4dC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6
Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9JY29uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6SWNvbjo6SWNvbik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50SW1hZ2VNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpQREZEb2N1bWVudEltYWdlOjpkcmF3UERGUGFnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYktpdE5TSW1hZ2VFeHRyYXMubW06CisgICAg
ICAgICgtW05TSW1hZ2UgX3dlYl9sb2NrRm9jdXNXaXRoRGV2aWNlU2NhbGVGYWN0b3I6XSk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2NhbGVEcmFnSW1hZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRm9yTGluayk6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkxvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dDo6TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXREcmFnSW1hZ2VJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludCk6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvU2Nyb2xsVmlld01hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBs
YXRmb3JtQ29udGVudHNUb1NjcmVlbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3OjpwbGF0Zm9ybVNjcmVlblRvQ29udGVudHMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9UaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdDZWxsRm9jdXNSaW5nV2l0
aEZyYW1lQXRUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9s
c01hbmFnZXIubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OldpZGdldDo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVs
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24p
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENG
TmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnJlcG9y
dEVycm9yVG9DbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3JlYXRlLWh0dHAt
aGVhZGVyLW5hbWUtdGFibGU6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2Rpbmcu
Y3BwOgorICAgICAgICAqIHRlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogeG1sL1hQYXRoR3JhbW1hci5jcHA6CisKIDIwMTgtMDktMDMgIEFuZHkgRXN0ZXMg
IDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIEltcGxlbWVu
dCB0aGUgTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQgY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
CmluZGV4IDFjMjM5OTRmMTdkYWExZGUxYTBlNjA0ODYyNjQ4NTM3Mzg0NjJhNGYuLmEzMGUxNDZk
ZTc0NjBiYmNmMTM1YzFiMzBjNjc2MDBiNjU1YmY0Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDE4LTA4LTI3ICBHdWlsbGF1bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdh
bGlhLmNvbT4KKworICAgICAgICBBZGQgSUdOT1JFX1dBUk5JTkdfLiogbWFjcm9zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg5OTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9jcnlwdG8vY29t
bW9uY3J5cHRvL0NyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHA6CisgICAgICAgIChQQUw6OkNy
eXB0b0RpZ2VzdDo6Y3JlYXRlKToKKyAgICAgICAgKFBBTDo6Q3J5cHRvRGlnZXN0OjphZGRCeXRl
cyk6CisgICAgICAgIChQQUw6OkNyeXB0b0RpZ2VzdDo6Y29tcHV0ZUhhc2gpOgorICAgICAgICAq
IHBhbC9zcGkvY29jb2EvQVZLaXRTUEkuaDoKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL05TS2V5
ZWRBcmNoaXZlclNQSS5oOgorICAgICAgICAoaW5zZWN1cmVseVVuYXJjaGl2ZU9iamVjdEZyb21E
YXRhKToKKyAgICAgICAgKiBwYWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oOgorICAgICAgICAq
IHBhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbToKKyAgICAgICAgKFBBTDo6cG9wVXBNZW51KToK
KyAgICAgICAgKiBwYWwvc3lzdGVtL21hYy9XZWJQYW5lbC5tbToKKyAgICAgICAgKC1bV2ViUGFu
ZWwgaW5pdF0pOgorCiAyMDE4LTA5LTAxICBZb3NoaWFraSBKaXRzdWthd2EgIDx5b3NoaWFraS5q
aXRzdWthd2FAc29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBBZGQgQ3J5cHRvRGlnZXN0
T3BlblNTTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBhNDM5N2QyZmQ2NDRmZmQxMWUyMDdhMjk5ZTQzOTJjNDkzMjE3
YTA1Li5iYmNmODQyZWIwOTdlMGU3ZTUyNjdlYmMxOTQ4OWYzNTM2ZTAwZTgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDExOSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250
QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0RhdGFUYXNrQ29jb2E6OnN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVN5bmNBbGxDb29raWVzKToKKyAgICAgICAgKiBQ
bHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojpi
ZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hp
bS5tbToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1v
ZHVsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luTW9kdWxlOjp0cnlMb2Fk
KToKKyAgICAgICAgKiBTaGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6Q2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveCk6CisgICAgICAgICogU2hhcmVk
L21hYy9DaGlsZFByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OmNvbXBpbGVBbmRBcHBs
eVNhbmRib3hTbG93Q2FzZSk6CisgICAgICAgICogU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5t
bToKKyAgICAgICAgKFdlYktpdDo6Q29sb3JTcGFjZURhdGE6OmRlY29kZSk6CisgICAgICAgICog
U2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpTYW5k
Ym94RXh0ZW5zaW9uSW1wbDo6c2FuZGJveEV4dGVuc2lvbkZvclR5cGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3dl
Yl9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdSdW5B
c01vZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAg
ICgtW1dLVmlldyBfd2ViX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZENsaWVudC5tbToKKyAgICAgICAgKFdlYktp
dDo6RG93bmxvYWRDbGllbnQ6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1l
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
Q2xpZW50Lm1tOgorICAgICAgICAoLVtXS0N1c3RvbVByb3RvY29sTG9hZGVyIGluaXRXaXRoTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHk6Y3VzdG9tUHJvdG9jb2xJRDpyZXF1ZXN0Ol0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06CisgICAgICAg
IChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OkNvbnRleHRNZW51Q2xpZW50Ojpt
ZW51RnJvbVByb3Bvc2VkTWVudSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW06CisgICAgICAgICgtW1dLVGV4dExpc3RUb3VjaEJhclZpZXdDb250cm9sbGVyIGlu
aXRXaXRoV2ViVmlld0ltcGw6XSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRh
dGVXaW5kb3dBbmRWaWV3RnJhbWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNl
bmREcmFnRW5kVG9QYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0RHJh
Zyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjaGFyYWN0ZXJJbmRleEZvclBvaW50
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFj
Lm1tOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmdldFBsdWdpblByb2Nl
c3NTZXJpYWxOdW1iZXIpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6Om1h
a2VQbHVnaW5Qcm9jZXNzVGhlRnJvbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2lu
UHJvY2Vzc1Byb3h5OjptYWtlVUlQcm9jZXNzVGhlRnJvbnRQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpleGl0RnVsbHNjcmVlbik6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tMZWdhY3lQREZWaWV3Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tQ
REZQYWdlTnVtYmVySW5kaWNhdG9yLm1tOgorICAgICAgICAoLVtXS1BERlBhZ2VOdW1iZXJJbmRp
Y2F0b3IgX21ha2VSb3VuZGVkQ29ybmVyc10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9y
bXMvV0tBaXJQbGF5Um91dGVQaWNrZXIubW06CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jt
cy9XS0ZpbGVVcGxvYWRQYW5lbC5tbToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3By
ZXNlbnRQb3BvdmVyV2l0aENvbnRlbnRWaWV3Q29udHJvbGxlcjphbmltYXRlZDpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5tbToKKyAgICAgICAg
KC1bV0tDb2xvclBvcG92ZXIgaW5pdFdpdGhWaWV3Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLm1tOgorICAgICAgICAoLVtXS0RhdGVUaW1lUG9w
b3ZlciBpbml0V2l0aFZpZXc6ZGF0ZVBpY2tlck1vZGU6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jt
cy9XS0Zvcm1Qb3BvdmVyLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3Jt
U2VsZWN0UG9wb3Zlci5tbToKKyAgICAgICAgKC1bV0tTZWxlY3RQb3BvdmVyIGluaXRXaXRoVmll
dzpoYXNHcm91cHM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNjcmVlblRvUm9vdFZpZXcp
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cm9vdFZpZXdUb1NjcmVlbik6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOgor
ICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGVudGVyRnVsbFNjcmVlbjpd
KToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBmaW5pc2hlZEVudGVy
RnVsbFNjcmVlbkFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlciBleGl0RnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyIGJlZ2FuRXhpdEZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6
XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZmluaXNoZWRFeGl0
RnVsbFNjcmVlbkFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlciBjb21wbGV0ZUZpbmlzaEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uQWZ0ZXJSZXBhaW50
XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgX3N0YXJ0RW50ZXJG
dWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyIF9zdGFydEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0
aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAg
ICAgICgtW1dLUHJpbnRpbmdWaWV3IF9zZXRBdXRvZGlzcGxheTpdKToKKyAgICAgICAgKC1bV0tQ
cmludGluZ1ZpZXcgX2RyYXdQREZEb2N1bWVudDpwYWdlOmF0UG9pbnQ6XSk6CisgICAgICAgICgt
W1dLUHJpbnRpbmdWaWV3IF9kcmF3UHJldmlldzpdKToKKyAgICAgICAgKC1bV0tQcmludGluZ1Zp
ZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1RleHRJbnB1dFdpbmRv
d0NvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLVGV4dElucHV0UGFuZWwgX2ludGVycHJldEtl
eUV2ZW50OnVzaW5nTGVnYWN5Q29jb2FUZXh0SW5wdXQ6c3RyaW5nOl0pOgorICAgICAgICAoLVtX
S1RleHRJbnB1dFBhbmVsIF9oYXNNYXJrZWRUZXh0XSk6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51
UHJveHlNYWM6OnNob3dQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAgICAgIChXZWJLaXQ6OmluaXRp
YWxpemVFdmVudFJlY29yZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpzZW5k
Q29tcGxleFRleHRJbnB1dCk6CisgICAgICAgIChXZWJLaXQ6Om1ha2VDR0xQcmVzZW50TGF5ZXJP
cGFxdWUpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6bnVsbEV2ZW50VGltZXJG
aXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW06Cisg
ICAgICAgICgtW1dLUERGUGx1Z2luQWNjZXNzaWJpbGl0eU9iamVjdCBhY2Nlc3NpYmlsaXR5Rm9j
dXNlZFVJRWxlbWVudF0pOgorICAgICAgICAoLVtXS1BERkxheWVyQ29udHJvbGxlckRlbGVnYXRl
IHdyaXRlSXRlbXNUb1Bhc3RlYm9hcmQ6d2l0aFR5cGVzOl0pOgorICAgICAgICAoV2ViS2l0OjpQ
REZQbHVnaW46OmhhbmRsZUVkaXRpbmdDb21tYW5kKToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1
Z2luOjpzZXRBY3RpdmVBbm5vdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6IGNvbnN0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24u
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90
YXRpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbkNob2ljZUFubm90YXRpb246OmNy
ZWF0ZUFubm90YXRpb25FbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpblRleHRBbm5vdGF0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1
Z2luVGV4dEFubm90YXRpb246OmNyZWF0ZUFubm90YXRpb25FbGVtZW50KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRJbWFnZVRvQml0bWFwKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRHJhZ0NsaWVudDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW06
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpkcmF3UERGUGFnZSk6CisKIDIwMTgtMDktMDEgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDRk5ldHdvcmtdIFVwZGF0ZSBDRk5ldHdvcmsgU1BJ
IHVzZSB0byB1c2UgQ0ZOZXR3b3JrU1BJLmggbW9yZSBjb25zaXN0ZW50bHkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCBiNDEzOWJmNTA4ZmY3OGUyOTI0MjlmYTFlYjVkYzhkZDZhZjI4
MzA4Li41NzlmMWYxNWUwNjk2OGRhZmYwNzEzMjk1MTZlYzdkMjM1Mzc1NzJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTM0IEBACisyMDE4LTA4LTI3ICBHdWlsbGF1
bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgSUdOT1JFX1dB
Uk5JTkdfLiogbWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODg5OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIENhcmJvbi9DYXJib25VdGlscy5tOgorICAgICAgICAoUG9vbENsZWFuZXIpOgor
ICAgICAgICAqIENhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tOgorICAgICAgICAoLVtDYXJi
b25XaW5kb3dBZGFwdGVyIGluaXRXaXRoQ2FyYm9uV2luZG93UmVmOnRha2luZ093bmVyc2hpcDpk
aXNhYmxlT3JkZXJpbmc6Y2FyYm9uOl0pOgorICAgICAgICAoLVtDYXJib25XaW5kb3dBZGFwdGVy
IHNldFZpZXdzTmVlZERpc3BsYXk6XSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIg
cmVjb25jaWxlVG9DYXJib25XaW5kb3dCb3VuZHNdKToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93
QWRhcHRlciBfdGVybVdpbmRvd0lmT3duZXJdKToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93QWRh
cHRlciBfd2luZG93TW92ZWRUb1JlY3Q6XSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0
ZXIgc2V0Q29udGVudFZpZXc6XSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgX2hh
bmRsZVJvb3RCb3VuZHNDaGFuZ2VkXSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIg
X2hhbmRsZUNvbnRlbnRCb3VuZHNDaGFuZ2VkXSk6CisgICAgICAgICogQ2FyYm9uL0NhcmJvbldp
bmRvd0ZyYW1lLm06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0ZyYW1lIHRpdGxlXSk6CisgICAg
ICAgICogQ2FyYm9uL0hJVmlld0FkYXB0ZXIubToKKyAgICAgICAgKCtbSElWaWV3QWRhcHRlciBn
ZXRISVZpZXdGb3JOU1ZpZXc6XSk6CisgICAgICAgICogQ2FyYm9uL0hJV2ViVmlldy5tbToKKyAg
ICAgICAgKG92ZXJyaWRlQ0dDb250ZXh0KToKKyAgICAgICAgKHJlc3RvcmVDR0NvbnRleHQpOgor
ICAgICAgICAoRHJhdyk6CisgICAgICAgICogRE9NL0RPTS5tbToKKyAgICAgICAgKiBIaXN0b3J5
L1dlYkhpc3RvcnkuaDoKKyAgICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnkubW06CisgICAgICAg
ICgtW1dlYkhpc3RvcnlQcml2YXRlIGxvYWRIaXN0b3J5R3V0c0Zyb21VUkw6c2F2ZWRJdGVtc0Nv
dW50OmNvbGxlY3REaXNjYXJkZWRJdGVtc0ludG86ZXJyb3I6XSk6CisgICAgICAgICogSGlzdG9y
eS9XZWJIaXN0b3J5SXRlbS5tbToKKyAgICAgICAgKC1bV2ViSGlzdG9yeUl0ZW0gaWNvbl0pOgor
ICAgICAgICAqIE1pc2MvV2ViS2l0TlNTdHJpbmdFeHRyYXMubW06CisgICAgICAgICgtW05TU3Ry
aW5nIF93ZWJfZHJhd0F0UG9pbnQ6Zm9udDp0ZXh0Q29sb3I6XSk6CisgICAgICAgICogTWlzYy9X
ZWJOU0ltYWdlRXh0cmFzLm06CisgICAgICAgICgtW05TSW1hZ2UgX3dlYl9zY2FsZVRvTWF4U2l6
ZTpdKToKKyAgICAgICAgKC1bTlNJbWFnZSBfd2ViX2Rpc3NvbHZlVG9GcmFjdGlvbjpdKToKKyAg
ICAgICAgKiBNaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbToKKyAgICAgICAgKCtbTlNQYXN0
ZWJvYXJkIF93ZWJfc2V0RmluZFBhc3RlYm9hcmRTdHJpbmc6d2l0aE93bmVyOl0pOgorICAgICAg
ICAoLVtOU1Bhc3RlYm9hcmQgX3dlYl9kZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2VGb3JFbGVtZW50
OlVSTDp0aXRsZTphcmNoaXZlOnNvdXJjZTpdKToKKyAgICAgICAgKiBQYW5lbHMvV2ViQXV0aGVu
dGljYXRpb25QYW5lbC5tOgorICAgICAgICAoLVtXZWJBdXRoZW50aWNhdGlvblBhbmVsIGxvYWRO
aWJdKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2Vy
Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyOjpzcGF3blBs
dWdpbkhvc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyOjpk
aWRDcmVhdGVXaW5kb3cpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2lu
SG9zdFByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6
bWFrZUN1cnJlbnRQcm9jZXNzRnJvbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0c2Nh
cGVQbHVnaW5Ib3N0UHJveHk6Om1ha2VQbHVnaW5Ib3N0UHJvY2Vzc0Zyb250UHJvY2VzcyBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5Ojppc1BsdWdpbkhv
c3RQcm9jZXNzRnJvbnRQcm9jZXNzIGNvbnN0KToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eTo6bW91c2VFdmVudCk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0
ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoLVtXZWJIb3N0ZWRO
ZXRzY2FwZVBsdWdpblZpZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQv
V2ViVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoLVtXZWJUZXh0SW5wdXRQ
YW5lbCBfaW50ZXJwcmV0S2V5RXZlbnQ6c3RyaW5nOl0pOgorICAgICAgICAqIFBsdWdpbnMvV2Vi
QmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViQmFzZU5ldHNjYXBlUGx1
Z2luVmlldyBjb252ZXJ0RnJvbVg6YW5kWTpzcGFjZTp0b1g6YW5kWTpzcGFjZTpdKToKKyAgICAg
ICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luUGFja2FnZS5tbToKKyAgICAgICAgKC1bV2Vi
TmV0c2NhcGVQbHVnaW5QYWNrYWdlIF90cnlMb2FkXSk6CisgICAgICAgICogUGx1Z2lucy9XZWJO
ZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1Z2luVmlldyBz
YXZlQW5kU2V0TmV3UG9ydFN0YXRlRm9yVXBkYXRlOl0pOgorICAgICAgICAoLVtXZWJOZXRzY2Fw
ZVBsdWdpblZpZXcgc2VuZERyYXdSZWN0RXZlbnQ6XSk6CisgICAgICAgICgtW1dlYk5ldHNjYXBl
UGx1Z2luVmlldyBkcmF3UmVjdDpdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYlBsdWdpbkNvbnRy
b2xsZXIubW06CisgICAgICAgIChXZWJLaXRfVFNVcGRhdGVDaGVja19hbGVydERpZEVuZF9yZXR1
cm5Db2RlX2NvbnRleHRJbmZvXyk6CisgICAgICAgIChXZWJLaXRfTlNBbGVydF9iZWdpblNoZWV0
TW9kYWxGb3JXaW5kb3dfbW9kYWxEZWxlZ2F0ZV9kaWRFbmRTZWxlY3Rvcl9jb250ZXh0SW5mb18p
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbToKKyAgICAgICAgKFBv
cHVwTWVudU1hYzo6cG9wdWxhdGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkFsdGVy
bmF0aXZlVGV4dENsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGll
bnQubW06CisgICAgICAgIChXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZCk6CisgICAgICAg
ICh3ZWJHZXROU0ltYWdlKToKKyAgICAgICAgKiBXZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdo
dC5tbToKKyAgICAgICAgKiBXZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodFZpZXcubW06Cisg
ICAgICAgICgtW1dlYk5vZGVIaWdobGlnaHRWaWV3IGRyYXdSZWN0Ol0pOgorICAgICAgICAqIFdl
YlZpZXcvV2ViQ2xpcFZpZXcubW06CisgICAgICAgICgtW1dlYkNsaXBWaWV3IGluaXRXaXRoRnJh
bWU6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJh
bWUgX3VwZGF0ZUJhY2tncm91bmRBbmRVcGRhdGVzV2hpbGVPZmZzY3JlZW5dKToKKyAgICAgICAg
KC1bV2ViRnJhbWUgX2RyYXdSZWN0OmNvbnRlbnRzT25seTpdKToKKyAgICAgICAgKC1bV2ViRnJh
bWUgYWNjZXNzaWJpbGl0eVJvb3RdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5D
b250cm9sbGVyLm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBlbnRlckZ1
bGxTY3JlZW46XSk6CisgICAgICAgICgtW1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyIGZpbmlzaGVk
RW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uOl0pOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29u
dHJvbGxlciBleGl0RnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJv
bGxlciBmaW5pc2hlZEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uOl0pOgorICAgICAgICAoLVtXZWJG
dWxsU2NyZWVuQ29udHJvbGxlciBfc3RhcnRFbnRlckZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVy
YXRpb246XSk6CisgICAgICAgICgtW1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyIF9zdGFydEV4aXRG
dWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
SFRNTFZpZXcubW06CisgICAgICAgICgtW05TV2luZG93IF93ZWJfYm9yZGVyVmlld10pOgorICAg
ICAgICAoLVtXZWJIVE1MVmlldyBfdXBkYXRlTW91c2VvdmVyV2l0aEZha2VFdmVudF0pOgorICAg
ICAgICAoLVtXZWJIVE1MVmlldyBfc2V0QXNpZGVTdWJ2aWV3c10pOgorICAgICAgICAoLVtXZWJI
VE1MVmlldyBfYXV0b3Njcm9sbF0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBkcmF3UmVjdDpd
KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgbW91c2VEb3duOl0pOgorICAgICAgICAoLVtXZWJI
VE1MVmlldyBtb3VzZURyYWdnZWQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IG1vdXNlVXA6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9lbmRQcmludE1vZGVBbmRSZXN0b3JlV2luZG93
QXV0b2Rpc3BsYXldKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcga25vd3NQYWdlUmFuZ2U6XSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2Vzc2liaWxpdHlIaXRUZXN0Ol0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyBfZm9udEF0dHJpYnV0ZXNGcm9tRm9udFBhc3RlYm9hcmRdKToKKyAg
ICAgICAgKC1bV2ViSFRNTFZpZXcgX2NvbG9yQXNTdHJpbmc6XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IGNvcHlGb250Ol0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfZXhlY3V0ZVNhdmVk
S2V5cHJlc3NDb21tYW5kc10pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBhdHRhY2hSb290TGF5
ZXI6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHRleHRTdG9yYWdlXSk6CisgICAgICAgICgt
W1dlYkhUTUxWaWV3IF91cGRhdGVTZWxlY3Rpb25Gb3JJbnB1dE1hbmFnZXJdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgIChfYXBwbGljYXRpb25JbmZvRm9yTUlN
RVR5cGUpOgorICAgICAgICAoLVtXZWJQREZWaWV3IGNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFy
ZWE6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX3JlY3Vyc2l2ZURpc3BsYXlSZWN0SWZOZWVk
ZWRJZ25vcmluZ09wYWNpdHk6aXNWaXNpYmxlUmVjdDpyZWN0SXNWaXNpYmxlUmVjdEZvclZpZXc6
dG9wVmlldzpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBfcmVjdXJzaXZlRGlzcGxheUFsbERp
cnR5V2l0aExvY2tGb2N1czp2aXNSZWN0Ol0pOgorICAgICAgICAoLVtXZWJQREZWaWV3IF9yZWN1
cnNpdmU6ZGlzcGxheVJlY3RJZ25vcmluZ09wYWNpdHk6aW5Db250ZXh0OnRvcFZpZXc6XSk6Cisg
ICAgICAgICgtW1dlYlBERlZpZXcgc2VhcmNoRm9yOmRpcmVjdGlvbjpjYXNlU2Vuc2l0aXZlOndy
YXA6c3RhcnRJblNlbGVjdGlvbjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0
aW9uQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVy
IF9idWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxh
Y2VQb3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXIubW06CisgICAgICAgICogV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5k
b3dDb250cm9sbGVyLm1tOgorICAgICAgICAoY3JlYXRlTWVkaWFVSUJhY2tncm91bmRWaWV3KToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlRleHRMaXN0VG91
Y2hCYXJWaWV3Q29udHJvbGxlciBpbml0V2l0aFdlYlZpZXc6XSk6CisgICAgICAgICgtW1dlYlZp
ZXcgX2Rpc3BhdGNoVGlsZURpZERyYXc6XSk6CisgICAgICAgICgtW1dlYlZpZXcgZW5jb2RlV2l0
aENvZGVyOl0pOgorICAgICAgICAoLVtXZWJWaWV3IG1haW5GcmFtZUljb25dKToKKyAgICAgICAg
KExheWVyRmx1c2hDb250cm9sbGVyOjpmbHVzaExheWVycyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJXaW5kb3dBbmltYXRpb24ubW06CisgICAgICAgIChzZXRTY2FsZWRGcmFtZUZvcldpbmRvdyk6
CisKIDIwMTgtMDktMDEgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFtDRk5ldHdvcmtdIFVwZGF0ZSBDRk5ldHdvcmsgU1BJIHVzZSB0byB1c2UgQ0ZOZXR3b3JrU1BJ
LmggbW9yZSBjb25zaXN0ZW50bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0LmgKaW5kZXggMTYzNjQ2OTYzODlkZWM5MGUwNTBlZDIwMDBlYWU3MmMxZDc5MjEz
YS4uYjQ2ZmQzMGE4ODdjMmMwMjYyYTY4ZTNjOThmYjBhY2FhMWExNzdmZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE1OCwxOCArMTU4LDkg
QEAgcHVibGljOgogICAgIHZvaWQqIGdldFByaXZhdGUoKTsKIAogICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgZml4IHRoZSB3YXJuaW5ncyBmb3IgZXh0ZXJuLXRlbXBsYXRlIGluIEpTT2JqZWN0IHRl
bXBsYXRlIGNsYXNzZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjE5NzkKLSNpZiBDT01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3VuZGVmaW5l
ZC12YXItdGVtcGxhdGUiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiCi0jZW5k
aWYKLSNlbmRpZgorICAgIElHTk9SRV9DTEFOR19XQVJOSU5HX0JFR0lOKCItV3VuZGVmaW5lZC12
YXItdGVtcGxhdGUiKQogICAgIERFQ0xBUkVfSU5GTzsKLSNpZiBDT01QSUxFUihDTEFORykKLSNp
ZiBfX2hhc193YXJuaW5nKCItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCi0jZW5kaWYKKyAgICBJR05PUkVfQ0xBTkdfV0FSTklO
R19FTkQKIAogICAgIEpTQ2xhc3NSZWYgY2xhc3NSZWYoKSBjb25zdCB7IHJldHVybiBtX2NhbGxi
YWNrT2JqZWN0RGF0YS0+anNDbGFzczsgfQogICAgIGJvb2wgaW5oZXJpdHMoSlNDbGFzc1JlZikg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3Rh
cGkuYyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCmluZGV4IDNm
Yzg2MTIxOWEzMDg0NWFhOGJlODY0NDYwNThhZmIzZjYyMDdhZDkuLjU3N2I4MjIzYTcxNTk0Mjk2
Y2RkYjJkM2M2ODgyMTdmYjYzOTY1MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvdGVzdGFwaS5jCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvdGVzdGFwaS5jCkBAIC0xMTQwLDEwICsxMTQwLDcgQEAgc3RhdGljIGJvb2wgZ2xvYmFsQ29u
dGV4dE5hbWVUZXN0KCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi0jaWYgQ09NUElMRVIoR0ND
KQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUiCi0jZW5kaWYKK0lHTk9SRV9HQ0NfV0FS
TklOR19CRUdJTigiLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZSIpCiBzdGF0aWMgdm9pZCBjaGVj
a0NvbnN0bmVzc0luSlNPYmplY3ROYW1lcygpCiB7CiAgICAgSlNTdGF0aWNGdW5jdGlvbiBmdW47
CkBAIC0xMTUxLDkgKzExNDgsNyBAQCBzdGF0aWMgdm9pZCBjaGVja0NvbnN0bmVzc0luSlNPYmpl
Y3ROYW1lcygpCiAgICAgSlNTdGF0aWNWYWx1ZSB2YWw7CiAgICAgdmFsLm5hbWUgPSAic29tZXRo
aW5nIjsKIH0KLSNpZiBDT01QSUxFUihHQ0MpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAot
I2VuZGlmCitJR05PUkVfR0NDX1dBUk5JTkdfRU5ECiAKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0
ZXJuICJDIiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xp
bmtCdWZmZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5o
CmluZGV4IDU1OTkwOGFkZDAzZGUyMTVhYTYwYWY3MjgwOWZhMzNlMWM5ZDk3YTkuLmUxOTRlYzcx
ZjVkYjA1N2QxOGM5NDY4NWFiNTNiOGY2OGM1Y2NhNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCkBAIC0yNjMsMTUgKzI2MywxMSBAQCBwdWJsaWM6
CiAgICAgdGVtcGxhdGU8UHRyVGFnIHRhZywgdHlwZW5hbWUuLi4gQXJncz4KICAgICBDb2RlUmVm
PHRhZz4gZmluYWxpemVDb2RlV2l0aERpc2Fzc2VtYmx5KGNvbnN0IGNoYXIqIGZvcm1hdCwgQXJn
cy4uLiBhcmdzKQogICAgIHsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdD
QyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3Jt
YXQtbm9ubGl0ZXJhbCIKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQt
c2VjdXJpdHkiCi0jZW5kaWYKKyAgICAgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVHSU4K
KyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XZm9ybWF0LXNlY3VyaXR5IikKICAgICAg
ICAgcmV0dXJuIGZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJseUltcGwoZm9ybWF0LCBhcmdzLi4u
KS50ZW1wbGF0ZSByZXRhZ2dlZDx0YWc+KCk7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQot
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgICAgICBJR05PUkVfV0FSTklO
R19FTkQKKyAgICAgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfRU5ECiAgICAgfQogCiAgICAg
dGVtcGxhdGU8UHRyVGFnIHRhZz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0xvd2VyVG9BaXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fp
ci5jcHAKaW5kZXggMmNkYjcyNDNkMzRlMjdlNTc2MWM5MzQ5MzVjZTU1MTgxNGQ1YjYyYS4uYjA4
N2YzMmIzMDcyZTFhMjYyYmU0ZGE0NDBjZmY5YjBjZDYyOWJjMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKQEAgLTYyLDEwICs2Miw5IEBACiAjaW5jbHVkZSA8
d3RmL0luZGV4U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAKLSNpZiBDT01QSUxF
UihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0dXJuLXR5cGUiCi0jZW5kaWYgLy8g
Q09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lH
Tk9SRV9SRVRVUk5fVFlQRV9CRUdJTgorI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgQjMgewogCkBAIC0zNTI3LDggKzM1MjYsOCBAQCB2b2lkIGxvd2VyVG9BaXIoUHJvY2VkdXJl
JiBwcm9jZWR1cmUpCiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwogCi0jaWYgQ09NUElMRVIo
R0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5k
aWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJM
RUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9FTkQKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIz
X0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCmluZGV4IDdlYmY2NmI3MGE0
NTBjOTJhZTE1NDlkNTI2NGJjOTkwZGExYmVjMTQuLmUyMGU2OWQ1YTkzNDNlN2RjOGFjNTU5YTA5
ZjNlNTQ0ZTgwZTgxMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09w
Y29kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcApAQCAt
MzAsMTAgKzMwLDkgQEAKIAogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogCi0jaWYgQ09N
UElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2VuZGlm
IC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVE
CitJR05PUkVfUkVUVVJOX1RZUEVfQkVHSU4KKyNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIEIzIHsKIApAQCAtMzczLDggKzM3Miw4IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmlu
dFN0cmVhbSYgb3V0LCBPcGNvZGUgb3Bjb2RlKQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAotI2lm
IENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNT
RVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfRU5ECisjZW5kaWYKIAogI2VuZGlmIC8v
IEVOQUJMRShCM19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNU
eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNUeXBlLmgKaW5kZXggNGNlYWE4YTFk
ZjE0YjhiNmI2OGUwZTgwYmZlYjZhOWUwYTJkOGU4Mi4uODYwN2IzMjhlMTg0NzhjYmIzNTI3MWQw
MmViNWY1N2JiNTM4YjM1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
VHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGUuaApAQCAtMzAsMTAg
KzMwLDkgQEAKICNpbmNsdWRlICJCM0NvbW1vbi5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdD
QyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1
cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lm
IEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lOCisjZW5kaWYKIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTg3LDggKzg2LDggQEAgdm9pZCBwcmlu
dEludGVybmFsKFByaW50U3RyZWFtJiwgSlNDOjpCMzo6VHlwZSk7CiAKIH0gLy8gbmFtZXNwYWNl
IFdURgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJM
RUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9FTkQKKyNlbmRpZgog
CiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1R5cGVNYXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGVNYXAu
aAppbmRleCBjMGVhNDEzMDQ4YTU1NTZmNWRjMzQ1OGQzODQwZTVmYjViOTlkNmQxLi40NDU2OGFi
MzM2ZjAxYzM2YjQzYTMxOTE4NWRjMGUxM2Q4OTEwZDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNUeXBlTWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzVHlwZU1hcC5oCkBAIC0zMCwxMCArMzAsOSBAQAogI2luY2x1ZGUgIkIzVHlwZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRf
RElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYg
QVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVf
QkVHSU4KKyNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIApAQCAtMTAx
LDggKzEwMCw4IEBAIHByaXZhdGU6CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwogCi0jaWYg
Q09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NF
UlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9FTkQKKyNlbmRpZgogCiAjZW5kaWYgLy8g
RU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dp
ZHRoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNXaWR0aC5oCmluZGV4IGUzNjU4M2Y2
OTRiODgzZmIyYjg4OWQwMTMxMDgzNGEwNTMxY2ZjNDcuLjRlNzY1OGNlYzFhNTkwMzU3OTUwY2Y1
MTg2MjQxOGY5NDg1ODEwNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1dpZHRoLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzV2lkdGguaApAQCAtMzAs
MTAgKzMwLDkgQEAKICNpbmNsdWRlICJCM0JhbmsuaCIKICNpbmNsdWRlICJCM1R5cGUuaCIKIAot
I2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIK
LSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9E
SVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTE0Myw5ICsxNDIsOSBAQCB2b2lkIHByaW50SW50ZXJu
YWwoUHJpbnRTdHJlYW0mLCBKU0M6OkIzOjpXaWR0aCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdURgog
Ci0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNp
ZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9FTkQKKyNlbmRpZgogCiAjZW5k
aWYgLy8gRU5BQkxFKEIzX0pJVCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJBcmcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcu
Y3BwCmluZGV4IGY5ZTQ2OWMwNDdjYmViMzg3MTc3NzUxYzQ5Yzc2NmM1NzllNjg1MzkuLmRiZTJh
MzM3YTg1OTBkZDEzNWZiOGM2ZGNhN2EzZGRmODAwNTA2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckFyZy5jcHAKQEAgLTM0LDEwICszNCw5IEBACiAjaW5jbHVkZSAiRlBSSW5m
by5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJU
X0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYm
IEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBF
X0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFj
ZSBBaXIgewogCkBAIC0zNzksOCArMzc4LDggQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3Ry
ZWFtJiBvdXQsIEFyZzo6U2lnbmVkbmVzcyBzaWduZWRuZXNzKQogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBk
aWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVE
CisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfRU5ECisjZW5kaWYKIAog
I2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckFyZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcu
aAppbmRleCA4MzhmY2E4OTIxMjcxYzFiMDc3OGIyNWQ0NTA1NzlkZTQzNzk1NzY3Li40NmVmZTlk
MjM4YzkwYjA1ZDk0ZGU4OGViNDZmMTI4NDY3NTVlY2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQXJnLmgKQEAgLTM1LDEwICszNSw5IEBACiAjaW5jbHVkZSAiQjNXaWR0aC5oIgog
I2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRf
RElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYg
QVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVf
QkVHSU4KKyNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIApAQCAtMTQ5
NCw4ICsxNDkzLDggQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6OkIzOjpBaXI6
OkFyZz4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpCMzoKIAogfSAvLyBuYW1lc3BhY2Ug
V1RGCiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxF
RAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0VORAorI2VuZGlmCiAK
ICNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNv
ZGUuaAppbmRleCA3NTk3MDMwZmRjZjA0MmJmYzNkOGRlYTIyODFiOWViMjhiYTI1NDM1Li43Yjhk
ZDNlNmRmYWRhOTU3OWZiN2JiYWM5OWU4NjRmYTgxYzE5MjEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckNvZGUuaApAQCAtNDQsMTAgKzQ0LDkgQEAgbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBCMyB7CiAKIGNsYXNzIFByb2NlZHVyZTsKIAotI2lmIENPTVBJTEVSKEdDQykgJiYg
QVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihH
Q0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVS
Tl9UWVBFX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEFpciB7CiAKQEAgLTM4OCw4ICszODcs
OCBAQCBwcml2YXRlOgogCiB9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyCiAKLSNpZiBD
T01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
b3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VS
VF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0VORAorI2VuZGlmCiAKICNlbmRpZiAvLyBF
TkFCTEUoQjNfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L09wY29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCmluZGV4
IDA3ZDlhNzMxNGVlYjEwOWM3MzEyMzdkNGJlMzI3MTMxYjExYzk0ZWUuLjM4YWQ1MTA1N2Q4OTg3
ODkyNDFjOWFhYmIyNDZjMTBlNjk3ZGIwNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9PcGNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvT3Bjb2RlLmgKQEAgLTc0LDE4ICs3NCwxMyBAQCBjb25zdCBpbnQgbnVtT3Bjb2RlSURzID0g
TlVNQkVSX09GX0JZVEVDT0RFX0lEUyArIE5VTUJFUl9PRl9CWVRFQ09ERV9IRUxQRVJfSURTOwog
ICAgIGNvbnN0IGludCBvcGNvZGVMZW5ndGhzW251bU9wY29kZUlEc10gPSB7IEZPUl9FQUNIX09Q
Q09ERV9JRChPUENPREVfSURfTEVOR1RIX01BUCkgfTsKICN1bmRlZiBPUENPREVfSURfTEVOR1RI
X01BUAogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdHlwZS1saW1pdHMiCi0jZW5kaWYKK0lH
Tk9SRV9XQVJOSU5HX0JFR0lOKCItV3R5cGUtbGltaXRzIikKIAogI2RlZmluZSBWRVJJRllfT1BD
T0RFX0lEKGlkLCBzaXplKSBDT01QSUxFX0FTU0VSVChpZCA8PSBudW1PcGNvZGVJRHMsIEFTU0VS
VF9USEFUX0pTX09QQ09ERV9JRFNfQVJFX1ZBTElEKTsKICAgICBGT1JfRUFDSF9PUENPREVfSUQo
VkVSSUZZX09QQ09ERV9JRCk7CiAjdW5kZWYgVkVSSUZZX09QQ09ERV9JRAogCi0jaWYgQ09NUElM
RVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX1dBUk5J
TkdfRU5ECiAKICNpZiBFTkFCTEUoQ09NUFVURURfR09UT19PUENPREVTKQogdHlwZWRlZiB2b2lk
KiBPcGNvZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCmluZGV4IGJkMThmOWRmOWI3ZTg1MzA5MjNlZGY2ZTBiNDEwOGY2ZDI5N2EwNjcuLjU4
OTRiNTY3NzJkYWExYmU0MDQxMzg2ZWNhMDU5NDczNDMxZTU4MDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC05NjU3LDE0ICs5NjU3
LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTnVtYmVyKEVkZ2UgZWRnZSkKICAg
ICAgICAgSlNWYWx1ZVJlZ3MoZ3ByKSwgZWRnZSwgU3BlY0J5dGVjb2RlTnVtYmVyLAogICAgICAg
ICBtX2ppdC5icmFuY2hJZk5vdE51bWJlcihncHIpKTsKICNlbHNlCi0jaWYgQ09NUElMRVIoR0ND
X09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZW51bS1jb21wYXJlIgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5J
TkdfQkVHSU4oIi1XZW51bS1jb21wYXJlIikKICAgICBzdGF0aWNfYXNzZXJ0KEpTVmFsdWU6Oklu
dDMyVGFnID49IEpTVmFsdWU6Okxvd2VzdFRhZywgIkludDMyVGFnIGlzIGluY2x1ZGVkIGluID49
IEpTVmFsdWU6Okxvd2VzdFRhZyByYW5nZS4iKTsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcp
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdf
RU5ECiAgICAgR1BSUmVnIHRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOwogICAgIERGR19UWVBFX0NI
RUNLKAogICAgICAgICB2YWx1ZS5qc1ZhbHVlUmVncygpLCBlZGdlLCB+U3BlY0ludDMyT25seSwK
QEAgLTEwMTcxLDE0ICsxMDE2Niw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1p
c2MoRWRnZSBlZGdlLCBKU1ZhbHVlUmVncyByZWdzKQogICAgICAgICByZWdzLCBlZGdlLCBTcGVj
TWlzYywKICAgICAgICAgbV9qaXQuYnJhbmNoNjQoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlLCByZWdz
LmdwcigpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTY0KFRhZ0JpdFR5cGVPdGhlciB8IFRh
Z0JpdEJvb2wgfCBUYWdCaXRVbmRlZmluZWQpKSk7CiAjZWxzZQotI2lmIENPTVBJTEVSKEdDQ19P
Ul9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2VudW0tY29tcGFyZSIKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5H
X0JFR0lOKCItV2VudW0tY29tcGFyZSIpCiAgICAgc3RhdGljX2Fzc2VydChKU1ZhbHVlOjpJbnQz
MlRhZyA+PSBKU1ZhbHVlOjpVbmRlZmluZWRUYWcsICJJbnQzMlRhZyBpcyBpbmNsdWRlZCBpbiA+
PSBKU1ZhbHVlOjpVbmRlZmluZWRUYWcgcmFuZ2UuIik7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NM
QU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIElHTk9SRV9XQVJO
SU5HX0VORAogICAgIERGR19UWVBFX0NIRUNLKAogICAgICAgICByZWdzLCBlZGdlLCB+U3BlY0lu
dDMyT25seSwKICAgICAgICAgbV9qaXQuYnJhbmNoSWZJbnQzMihyZWdzLnRhZ0dQUigpKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApp
bmRleCA3ZTFjYmNmOGVkOTY1ZWNjOWE2Y2E4NjRkNWI4N2ZlMWI3NDVkN2ViLi41ZjdmNDJmMGUy
NzczM2IwOGZmNmFmNDI2ZjUyYTIwM2FhZWI0ZTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTg3NiwxMiArODc2LDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZSkKIAogLy8gQ2xhbmcgc2hv
dWxkIGFsbG93IHVucmVhY2hhYmxlIFtbY2xhbmc6OmZhbGx0aHJvdWdoXV0gaW4gdGVtcGxhdGUg
ZnVuY3Rpb25zIGlmIGFueSB0ZW1wbGF0ZSBleHBhbnNpb24gdXNlcyBpdAogLy8gaHR0cDovL2xs
dm0ub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTE4NjE5Ci0jaWYgQ09NUElMRVIoQ0xBTkcpICYm
IGRlZmluZWQoX19oYXNfd2FybmluZykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
aWYgX19oYXNfd2FybmluZygiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIpCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIKLSNlbmRpZgotI2Vu
ZGlmCitJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIp
CiB0ZW1wbGF0ZTxib29sIHN0cmljdD4KIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1
bGF0ZUludDMySW50ZXJuYWwoRWRnZSBlZGdlLCBEYXRhRm9ybWF0JiByZXR1cm5Gb3JtYXQpCiB7
CkBAIC0xMDEyLDkgKzEwMDcsNyBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxh
dGVJbnQzMkludGVybmFsKEVkZ2UgZWRnZSwgRGF0YUZvcm1hdCYgcmV0dXJuRgogICAgICAgICBy
ZXR1cm4gSW52YWxpZEdQUlJlZzsKICAgICB9CiB9Ci0jaWYgQ09NUElMRVIoQ0xBTkcpICYmIGRl
ZmluZWQoX19oYXNfd2FybmluZykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRp
ZgorSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAKIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6Zmls
bFNwZWN1bGF0ZUludDMyKEVkZ2UgZWRnZSwgRGF0YUZvcm1hdCYgcmV0dXJuRm9ybWF0KQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKaW5kZXggOWY1OTM2OWM4OWJlNTdlNmVl
Nzc5ZTExNmYzN2ZlNmMyYjdlOTcwZi4uNWEzN2QwM2ZhODY0ZjI1NWEzYzYxOTYxMjI0NDJiMWY4
NzI5ZDY0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCkBAIC01MCwxMSAr
NTAsOCBAQAogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiAvLyBGSVhNRTog
cmVtb3ZlIHRoaXMgb25jZSBldmVyeXRoaW5nIGNhbiBiZSBnZW5lcmF0ZWQgdGhyb3VnaCBCMy4K
LSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdtaXNzaW5nLW5vcmV0dXJuIgotI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCi0jZW5kaWYg
Ly8gQ09NUElMRVIoR0NDX09SX0NMQU5HKQorSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XbWlzc2lu
Zy1ub3JldHVybiIpCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0JFR0lOCiAKIG5hbWVzcGFjZSBK
U0MgewogCkBAIC01MDAsOSArNDk3LDggQEAgaW5saW5lIHZvaWQgT3V0cHV0OjphZGRJbmNvbWlu
Z1RvUGhpKExWYWx1ZSBwaGksIFZhbHVlRnJvbUJsb2NrIHZhbHVlLCBQYXJhbXMuLi4KICAgICBh
ZGRJbmNvbWluZ1RvUGhpKHBoaSwgdGhlUmVzdC4uLik7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0Nf
T1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVS
KEdDQ19PUl9DTEFORykKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfRU5ECitJR05PUkVfV0FSTklO
R19FTkQKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCAxZDhlM2JlZTliNmJkNjdlNzA5MzQ3NTUzNmQyYmQ1
N2QxZjMxODNmLi5lOTY5MjExMWJkMTBhYWE4NWUwM2QwZTUwZjk3OTE0MDkzY2EwMzQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTMyOSwxNCArMzI5LDkg
QEAgcHJpdmF0ZToKIAogICAgICAgICBjdXJyZW50R1BSQXJndW1lbnQgKz0gZXh0cmFHUFJBcmdz
OwogICAgICAgICBjdXJyZW50RlBSQXJndW1lbnQgLT0gbnVtQ3Jvc3NTb3VyY2VzOwotI2lmIENP
TVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3R5cGUtbGltaXRzIgotI2VuZGlmCisgICAgICAg
IElHTk9SRV9XQVJOSU5HX0JFR0lOKCItV3R5cGUtbGltaXRzIikKICAgICAgICAgQVNTRVJUKGN1
cnJlbnRHUFJBcmd1bWVudCA+PSBHUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzIHx8
IGN1cnJlbnRGUFJBcmd1bWVudCA+PSBGUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJz
KTsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBv
cAotI2VuZGlmCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0VORAogCiAgICAgICAgIHVuc2lnbmVk
IHBva2VPZmZzZXQgPSBQT0tFX0FSR1VNRU5UX09GRlNFVCArIGV4dHJhUG9rZTsKICAgICAgICAg
cG9rZU9mZnNldCArPSBzdGQ6Om1heChjdXJyZW50R1BSQXJndW1lbnQsIG51bWJlck9mR1BBcmd1
bWVudFJlZ2lzdGVycykgLSBudW1iZXJPZkdQQXJndW1lbnRSZWdpc3RlcnM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCmluZGV4IGM5M2QxNWM3NGM1OGZmNWQ5NmFh
MGFhZDk0MzQxM2YwODVhM2Q5MmUuLjQ4NDQwYmQxNjgzMTY0MzEwZDViODJjMTFlNjkwOTIyMmJi
MWY3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCkBAIC02
NywxMCArNjcsNyBAQCB2b2lkIGluaXRpYWxpemUoKQogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiB9
CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdtaXNzaW5nLW5vcmV0dXJuIgotI2Vu
ZGlmCitJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigiLVdtaXNzaW5nLW5vcmV0dXJuIikKIHZv
aWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0mIHZtKQogewogICAgIFVOVVNFRF9QQVJBTSh2
bSk7CkBAIC0xOTksOCArMTk2LDYgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyhWTSYg
dm0pCiAgICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2
ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOwogICAgIH0KIH0KLSNpZiBDT01QSUxFUihDTEFORykK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX0NMQU5HX1dBUk5J
TkdfRU5ECiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggMjg0MzMwNWIzMDZhMThkZDk0
OGE3ZTFkOWVjMDEwNDEzYmQ4NjFhYi4uNGFlYmQ2OTRhMDE3ZTFkNjBlYTBlZWY3ZjMyNmY1NzRm
YmNkNmY3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xv
d1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0
aHMuY3BwCkBAIC0yMDUsMTYgKzIwNSwxMiBAQCB2b2lkIHNsb3dQYXRoTG4oY29uc3QgVHlwZXMm
Li4uIHZhbHVlcykKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPgogdm9pZCBzbG93UGF0aExv
Z0YoY29uc3QgY2hhciogZm9ybWF0LCBjb25zdCBUeXBlcyYuLi4gdmFsdWVzKQogewotI2lmIENP
TVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1zZWN1cml0eSIKLSNlbmRpZgorICAgIEFM
TE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lOCisgICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1X
Zm9ybWF0LXNlY3VyaXR5IikKICAgICBpZiAoT3B0aW9uczo6dHJhY2VMTEludFNsb3dQYXRoKCkp
CiAgICAgICAgIGRhdGFMb2dGKGZvcm1hdCwgdmFsdWVzLi4uKTsKLSNpZiBDT01QSUxFUihHQ0Nf
T1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgSUdOT1JF
X1dBUk5JTkdfRU5ECisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfRU5ECiB9CiAKICNlbHNl
IC8vIG5vdCBMTElOVF9UUkFDSU5HCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db25maWdGaWxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bmZpZ0ZpbGUuY3BwCmluZGV4IDk4YzE5NmY4MmY2ODUxYmRmNzBlZjhkNjIyM2I1YTE2OTEyOTM2
MmYuLjE0MDE3ZDRkM2Q4MWYxZjUzYjg4MTI2ZTJlYjU5OGNmYTZhZGJkOGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCkBAIC00OTEsMTQgKzQ5MSwx
MyBAQCB2b2lkIENvbmZpZ0ZpbGU6OmNhbm9uaWNhbGl6ZVBhdGhzKCkKICAgICAgICAgICAgICAg
ICAgICAgc3RybmNhdChmaWxlbmFtZUJ1ZmZlciwgIi8iLCAyKTsgLy8gUm9vbSBmb3IgJy8nIHBs
dXMgTlVMCiAjaWYgQ09NUElMRVIoR0NDKQogI2lmIEdDQ19WRVJTSU9OX0FUX0xFQVNUKDgsIDAs
IDApCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdzdHJpbmdvcC10cnVuY2F0aW9uIgorICAgICAgICAgICAgICAgIElHTk9SRV9H
Q0NfV0FSTklOR19CRUdJTigiLVdzdHJpbmdvcC10cnVuY2F0aW9uIikKICNlbmRpZgogI2VuZGlm
CiAgICAgICAgICAgICAgICAgc3RybmNhdChmaWxlbmFtZUJ1ZmZlciwgbV9maWxlbmFtZSwgc2l6
ZW9mKGZpbGVuYW1lQnVmZmVyKSAtIHN0cmxlbihmaWxlbmFtZUJ1ZmZlcikgLSAxKTsKICNpZiBD
T01QSUxFUihHQ0MpCiAjaWYgR0NDX1ZFUlNJT05fQVRfTEVBU1QoOCwgMCwgMCkKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAgICAgSUdOT1JFX0dDQ19XQVJOSU5HX0VO
RAogI2VuZGlmCiAjZW5kaWYKICAgICAgICAgICAgICAgICBzdHJuY3B5KG1fZmlsZW5hbWUsIGZp
bGVuYW1lQnVmZmVyLCBzX21heFBhdGhMZW5ndGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcAppbmRleCBmMDVjZmY1Zjg4
YTU1MWMzYTdjNGJhYWQyZjAzYzViNDc3ODlhZjZkLi40Mzk2NjBkY2FjNGQzMmJmODdkZWNjZjcx
NjkyNTYwYjczYTQ1NmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcApAQCAtMjA4LDEwICsyMDgsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBzZXREYXRhKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
bWlzc2luZy1wcm90b3R5cGVzIgotI2VuZGlmCitJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigi
LVdtaXNzaW5nLXByb3RvdHlwZXMiKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGFWaWV3UHJvdG9HZXR0ZXJCdWZmZXIoRXhlY1N0YXRlKiBleGVjKQogewpAQCAtMzI4LDggKzMy
NSw2IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRG
bG9hdDY0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICByZXR1cm4gc2V0RGF0YTxGbG9hdDY0QWRh
cHRvcj4oZXhlYyk7CiB9Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9DTEFOR19XQVJOSU5HX0VORAogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaAppbmRleCA4YWNmZDQ4
ZTIzZmZkOTZjYmNiMmZiYjdiZjcxMmY3ODA4ZjVhNDQwLi4zMGY3NjVmNThlYjQ4NjM3ZGE2MGQz
NTc1Njk4ZjlhMWIwYWE3NjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5o
CkBAIC00MywxOSArNDMsMTAgQEAgcHVibGljOgogICAgICAgICBWTSYsIEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlKiwgSlNPYmplY3QqIHByb3RvdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBG
dW5jdGlvbkV4ZWN1dGFibGUqIHByaXZhdGVBbGxvY2F0b3IpOwogCiAgICAgLy8gRklYTUU6IFdl
IHNob3VsZCBmaXggdGhlIHdhcm5pbmdzIGZvciBleHRlcm4tdGVtcGxhdGUgaW4gSlNPYmplY3Qg
dGVtcGxhdGUgY2xhc3NlczogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MTk3OQotI2lmIENPTVBJTEVSKENMQU5HKQotI2lmIF9faGFzX3dhcm5pbmcoIi1XdW5kZWZp
bmVkLXZhci10ZW1wbGF0ZSIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIKLSNl
bmRpZgotI2VuZGlmCisgICAgSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1XdW5kZWZpbmVk
LXZhci10ZW1wbGF0ZSIpCiAgICAgREVDTEFSRV9JTkZPOwotI2lmIENPTVBJTEVSKENMQU5HKQot
I2lmIF9faGFzX3dhcm5pbmcoIi1XdW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIpCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKLSNlbmRpZgotICAgIAorICAgIElHTk9SRV9DTEFO
R19XQVJOSU5HX0VORAorCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZN
JiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1By
b3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRB
cnJheVZpZXdQcm90b3R5cGUuaAppbmRleCA0ZTFlYjdkODgzNGNiYzVkZTcyY2Q2Y2M2YjFkMjRi
NDYxNDNjNWI2Li43MmQyM2Y1M2UxZDgxOWIxNDBlMzJhMDc0MTQzM2NkZmRjZDM5MzE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5
Vmlld1Byb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmgKQEAgLTQzLDE4ICs0Myw5IEBAIHB1YmxpYzoK
ICAgICAgICAgVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogCiAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBmaXggdGhlIHdhcm5pbmdzIGZvciBleHRlcm4tdGVtcGxhdGUgaW4gSlNP
YmplY3QgdGVtcGxhdGUgY2xhc3NlczogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2MTk3OQotI2lmIENPTVBJTEVSKENMQU5HKQotI2lmIF9faGFzX3dhcm5pbmcoIi1X
dW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5kZWZpbmVkLXZhci10ZW1wbGF0
ZSIKLSNlbmRpZgotI2VuZGlmCisgICAgSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1XdW5k
ZWZpbmVkLXZhci10ZW1wbGF0ZSIpCiAgICAgREVDTEFSRV9JTkZPOwotI2lmIENPTVBJTEVSKENM
QU5HKQotI2lmIF9faGFzX3dhcm5pbmcoIi1XdW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIpCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKLSNlbmRpZgorICAgIElHTk9SRV9DTEFO
R19XQVJOSU5HX0VORAogICAgIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5cGUpOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKaW5kZXggNDA3YzU3MDQ3NDZiMDRjZmY3
NGRmYTk4YjliYzMxM2ZjNzMzNjY0Zi4uYmU3MDFkNDEzZjcyNTdkZDVkZWY3MWM0YTU3MjU3NjBl
MTQyNjdlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9u
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAg
LTc0NCwxMiArNzQ0LDcgQEAgYm9vbCBPcHRpb25zOjpzZXRBbGlhc2VkT3B0aW9uKGNvbnN0IGNo
YXIqIGFyZykKICAgICBpZiAoIWVxdWFsU3RyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNp
ZiBDT01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3RhdXRvbG9naWNhbC1jb21w
YXJlIikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSIKLSNlbmRpZgotI2VuZGlmCisg
ICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XdGF1dG9sb2dpY2FsLWNvbXBhcmUiKQogCiAgICAg
Ly8gRm9yIGVhY2ggb3B0aW9uLCBjaGVjayBpZiB0aGUgc3BlY2lmeSBhcmcgaXMgYSBtYXRjaC4g
SWYgc28sIHNldCB0aGUgYXJnCiAgICAgLy8gaWYgdGhlIHZhbHVlIG1ha2VzIHNlbnNlLiBPdGhl
cndpc2UsIG1vdmUgb24gdG8gY2hlY2tpbmcgdGhlIG5leHQgb3B0aW9uLgpAQCAtNzcyLDExICs3
NjcsNyBAQCBib29sIE9wdGlvbnM6OnNldEFsaWFzZWRPcHRpb24oY29uc3QgY2hhciogYXJnKQog
ICAgIEpTQ19BTElBU0VEX09QVElPTlMoRk9SX0VBQ0hfT1BUSU9OKQogI3VuZGVmIEZPUl9FQUNI
X09QVElPTgogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jaWYgX19oYXNfd2FybmluZygiLVd0YXV0
b2xvZ2ljYWwtY29tcGFyZSIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYK
LSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0VORAogCiAgICAgcmV0dXJuIGZhbHNlOyAvLyBO
byBvcHRpb24gbWF0Y2hlZC4KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
b29scy9Db2RlUHJvZmlsaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9Db2Rl
UHJvZmlsaW5nLmNwcAppbmRleCBjM2RhOGMyYzI5M2ZjYzliY2M3M2RmMTJmNjk2ZjRjZTNiNDk4
ZGEzLi4yM2RmMWI5MGVmNTExMTY3NjMzYWYxNGY2OGRhMTBmZTZiMDRhZmY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29kZVByb2ZpbGluZy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxpbmcuY3BwCkBAIC00NCwxMCArNDQs
NyBAQCB2b2xhdGlsZSBDb2RlUHJvZmlsZSogQ29kZVByb2ZpbGluZzo6c19wcm9maWxlU3RhY2sg
PSAwOwogQ29kZVByb2ZpbGluZzo6TW9kZSBDb2RlUHJvZmlsaW5nOjpzX21vZGUgPSBDb2RlUHJv
ZmlsaW5nOjpEaXNhYmxlZDsKIFdURjo6TWV0YUFsbG9jYXRvclRyYWNrZXIqIENvZGVQcm9maWxp
bmc6OnNfdHJhY2tlciA9IDA7CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdtaXNz
aW5nLW5vcmV0dXJuIgotI2VuZGlmCitJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigiLVdtaXNz
aW5nLW5vcmV0dXJuIikKIAogI2lmIEhBVkUoTUFDSElORV9DT05URVhUKQogLy8gSGVscGVyIGZ1
bmN0aW9uIHRvIHN0YXJ0ICYgc3RvcCB0aGUgdGltZXIuCkBAIC02Myw5ICs2MCw3IEBAIHN0YXRp
YyB2b2lkIHNldFByb2ZpbGVUaW1lcih1bnNpZ25lZCB1c2VjKQogfQogI2VuZGlmCiAKLSNpZiBD
T01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdO
T1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAKICNpZiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkKIHN0YXRp
YyB2b2lkIHByb2ZpbGluZ1RpbWVyKGludCwgc2lnaW5mb190Kiwgdm9pZCogdWFwKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNlY3Rpb25zLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvbnMuaAppbmRleCBlNjkyNGI3OTUzY2MzNjQ2
YmVlOTA4NDQxYTYzYzYzYzI5NGE3N2Q2Li4wMDZhZjc5MTdjZjY4OWZhZjEyYWYzYmE0NzZkMjEw
ZDhjZDdlNzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2Vj
dGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvbnMuaApA
QCAtMjcsMTAgKzI3LDkgQEAKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKIAotI2lmIENPTVBJ
TEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAv
LyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAor
SUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBXYXNtIHsKIApAQCAtMTA3LDggKzEwNiw4IEBAIGlubGluZSBjb25zdCBjaGFyKiBtYWtl
U3RyaW5nKFNlY3Rpb24gc2VjdGlvbikKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KIAot
I2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYg
QVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfRU5ECisjZW5kaWYKIAogI2VuZGlm
IC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weQppbmRl
eCBiYzU0YTIyMzc0NjVkYjljN2Q5MDNmMjJhOTU0MmExY2E2OGVmNTU1Li5mMzRiYjRjMmQwNjlj
N2RkOWJjNDg2OTgyMDNiZTE4ZDlmMTFkZjEzIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9nZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIucHkKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vZ2VuZXJhdGVXYXNtVmFsaWRhdGVJbmxpbmVzSGVhZGVy
LnB5CkBAIC0xMjcsMTAgKzEyNyw5IEBAIGNvbnRlbnRzID0gd2FzbS5oZWFkZXIgKyAiIiIKIAog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNT
RVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0Mp
ICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9U
WVBFX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIApA
QCAtMTYwLDkgKzE1OSw5IEBAIGF1dG8gVmFsaWRhdGU6OnN0b3JlKFN0b3JlT3BUeXBlIG9wLCBF
eHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSB2YWx1CiAKIH0gfSAvLyBuYW1l
c3BhY2UgSlNDOjpXYXNtCiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAot
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFT
U0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0VO
RAorI2VuZGlmCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9u
cy5jcHAKaW5kZXggZmU4ZmFjMDdkNmY3NTczZTAyZjI2OWRlNWIwYjUwZjJiZGU3ZGM1ZC4uZDk2
NmFkODZjODQ5ZmMzNTI2NmFlOWZiNDU0YmEwN2QyZDExNTk1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5j
cHAKQEAgLTc5LDEwICs3OSw5IEBAIGV4dGVybiAiQyIgewogc3RhdGljIHZvaWQgbG9nVG9TdGRl
cnIoY29uc3QgY2hhciogYnVmZmVyKQogewogI2lmIFVTRShBUFBMRV9TWVNURU1fTE9HKQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBhc2xfbG9nKDAsIDAsIEFTTF9MRVZFTF9OT1RJQ0UsICIlcyIsIGJ1
ZmZlcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICNlbmRpZgogICAgIGZwdXRzKGJ1ZmZlciwgc3RkZXJyKTsKIH0KQEAg
LTk0LDE0ICs5Myw5IEBAIHN0YXRpYyB2b2lkIHZwcmludGZfc3RkZXJyX2NvbW1vbihjb25zdCBj
aGFyKiBmb3JtYXQsIHZhX2xpc3QgYXJncykKICAgICBpZiAoc3Ryc3RyKGZvcm1hdCwgIiVAIikp
IHsKICAgICAgICAgYXV0byBjZkZvcm1hdCA9IGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVXaXRoQ1N0
cmluZyhudWxscHRyLCBmb3JtYXQsIGtDRlN0cmluZ0VuY29kaW5nVVRGOCkpOwogCi0jaWYgQ09N
UElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LW5vbmxpdGVyYWwiCi0jZW5kaWYKKyAgICAg
ICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVHSU4KICAgICAgICAgYXV0byBzdHIgPSBhZG9w
dENGKENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cyhudWxscHRyLCBudWxscHRy
LCBjZkZvcm1hdC5nZXQoKSwgYXJncykpOwotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgICAgIEFMTE9XX05PTkxJVEVSQUxfRk9S
TUFUX0VORAogICAgICAgICBDRkluZGV4IGxlbmd0aCA9IENGU3RyaW5nR2V0TWF4aW11bVNpemVG
b3JFbmNvZGluZyhDRlN0cmluZ0dldExlbmd0aChzdHIuZ2V0KCkpLCBrQ0ZTdHJpbmdFbmNvZGlu
Z1VURjgpOwogICAgICAgICBjb25zdGV4cHIgdW5zaWduZWQgSW5pdGlhbEJ1ZmZlclNpemUgeyAy
NTYgfTsKICAgICAgICAgVmVjdG9yPGNoYXIsIEluaXRpYWxCdWZmZXJTaXplPiBidWZmZXIobGVu
Z3RoICsgMSk7CkBAIC0xMTMsMTMgKzEwNywxMiBAQCBzdGF0aWMgdm9pZCB2cHJpbnRmX3N0ZGVy
cl9jb21tb24oY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiAgICAgfQogCiAjaWYg
VVNFKEFQUExFX1NZU1RFTV9MT0cpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICB2YV9saXN0IGNv
cHlPZkFyZ3M7CiAgICAgdmFfY29weShjb3B5T2ZBcmdzLCBhcmdzKTsKICAgICBhc2xfdmxvZygw
LCAwLCBBU0xfTEVWRUxfTk9USUNFLCBmb3JtYXQsIGNvcHlPZkFyZ3MpOwogICAgIHZhX2VuZChj
b3B5T2ZBcmdzKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZgogCiAgICAgLy8gRmFsbCB0aHJvdWdoIHRv
IHdyaXRlIHRvIHN0ZGVyciBpbiB0aGUgc2FtZSBtYW5uZXIgYXMgb3RoZXIgcGxhdGZvcm1zLgpA
QCAtMTQxLDEwICsxMzQsNyBAQCBzdGF0aWMgdm9pZCB2cHJpbnRmX3N0ZGVycl9jb21tb24oY29u
c3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiAgICAgdmZwcmludGYoc3RkZXJyLCBmb3Jt
YXQsIGFyZ3MpOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0
LW5vbmxpdGVyYWwiCi0jZW5kaWYKK0FMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lOCiAKIHN0
YXRpYyB2b2lkIHZwcmludGZfc3RkZXJyX3dpdGhfcHJlZml4KGNvbnN0IGNoYXIqIHByZWZpeCwg
Y29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiB7CkBAIC0xNzQsOSArMTY0LDcgQEAg
c3RhdGljIHZvaWQgdnByaW50Zl9zdGRlcnJfd2l0aF90cmFpbGluZ19uZXdsaW5lKGNvbnN0IGNo
YXIqIGZvcm1hdCwgdmFfbGlzdCBhcmcKICAgICB2cHJpbnRmX3N0ZGVycl9jb21tb24oZm9ybWF0
V2l0aE5ld2xpbmUuZGF0YSgpLCBhcmdzKTsKIH0KIAotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFO
RykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0FMTE9XX05PTkxJVEVSQUxf
Rk9STUFUX0VORAogCiBXVEZfQVRUUklCVVRFX1BSSU5URigxLCAyKQogc3RhdGljIHZvaWQgcHJp
bnRmX3N0ZGVycl9jb21tb24oY29uc3QgY2hhciogZm9ybWF0LCAuLi4pCkBAIC0zODUsMTQgKzM3
Myw5IEBAIHZvaWQgV1RGTG9nV2l0aExldmVsKFdURkxvZ0NoYW5uZWwqIGNoYW5uZWwsIFdURkxv
Z0xldmVsIGxldmVsLCBjb25zdCBjaGFyKiBmb3JtCiAgICAgdmFfbGlzdCBhcmdzOwogICAgIHZh
X3N0YXJ0KGFyZ3MsIGZvcm1hdCk7CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdm
b3JtYXQtbm9ubGl0ZXJhbCIKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JF
R0lOCiAgICAgV1RGTG9nKGNoYW5uZWwsIGZvcm1hdCwgYXJncyk7Ci0jaWYgQ09NUElMRVIoQ0xB
TkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBBTExPV19OT05M
SVRFUkFMX0ZPUk1BVF9FTkQKIAogICAgIHZhX2VuZChhcmdzKTsKIH0KQEAgLTQxNSwxNCArMzk4
LDkgQEAgdm9pZCBXVEZMb2coV1RGTG9nQ2hhbm5lbCogY2hhbm5lbCwgY29uc3QgY2hhciogZm9y
bWF0LCAuLi4pCiAgICAgdmFfbGlzdCBhcmdzOwogICAgIHZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7
CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNl
bmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lOCiAgICAgU3RyaW5nIGxvZ2dp
bmdTdHJpbmcgPSBTdHJpbmc6OmZvcm1hdChmb3JtYXQsIGFyZ3MpOwotI2lmIENPTVBJTEVSKENM
QU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgQUxMT1dfTk9O
TElURVJBTF9GT1JNQVRfRU5ECiAKICAgICB2YV9lbmQoYXJncyk7CiAKQEAgLTQ0MiwxNCArNDIw
LDkgQEAgdm9pZCBXVEZMb2dWZXJib3NlKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25z
dCBjaGFyKiBmdW5jdGlvbiwgV1RGTG9nQ2hhbm4KICAgICB2YV9saXN0IGFyZ3M7CiAgICAgdmFf
c3RhcnQoYXJncywgZm9ybWF0KTsKIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zv
cm1hdC1ub25saXRlcmFsIgotI2VuZGlmCisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVH
SU4KICAgICBXVEZMb2coY2hhbm5lbCwgZm9ybWF0LCBhcmdzKTsKLSNpZiBDT01QSUxFUihDTEFO
RykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJ
VEVSQUxfRk9STUFUX0VORAogCiAgICAgdmFfZW5kKGFyZ3MpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKaW5k
ZXggNWIyOGY4NmZhOTMxZDhjYTFhYzE4Mzg1ODVmMmYwZjJkMzVmNTlmNi4uOWMyZDNmY2ViZGFh
ZmUwNzYwZGY1ZTcwZjBkZjc4NjIwMzdhODg5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
QXNzZXJ0aW9ucy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaApAQCAtNjAyLDE1
ICs2MDIsMTQgQEAgaW5saW5lIHZvaWQgY29tcGlsZXJGZW5jZUZvckNyYXNoKCkKICNpZiBDT01Q
SUxFUihDTEFORykKIC8vIFRoaXMgd291bGQgYmUgYSBtYWNybyBleGNlcHQgdGhhdCBpdHMgdXNl
IG9mICNwcmFnbWEgd29ya3MgYmVzdCBhcm91bmQKIC8vIGEgZnVuY3Rpb24uIEhlbmNlIGl0IHVz
ZXMgbWFjcm8gbmFtaW5nIGNvbnZlbnRpb24uCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbWlzc2luZy1ub3JldHVybiIK
K0lHTk9SRV9DTEFOR19XQVJOSU5HX0JFR0lOKCItV21pc3Npbmctbm9yZXR1cm4iKQogc3RhdGlj
IGlubGluZSB2b2lkIFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpCiB7CiAgICAgLy8gVGhpcyAq
TVVTVCogYmUgYSByZWxlYXNlIGFzc2VydC4gV2UgdXNlIGl0IGluIHBsYWNlcyB3aGVyZSBpdCdz
IGJldHRlciB0byBjcmFzaCB0aGFuIHRvIGtlZXAKICAgICAvLyBnb2luZy4KICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
SUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAjZWxzZQogI2RlZmluZSBVTlJFQUNIQUJMRV9GT1Jf
UExBVEZPUk0oKSBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Db21waWxlci5o
CmluZGV4IDc5OGMzMDkwYzliMWMxODU4MGEzYTZiZTZmYWI2NWJkYWNlNmZmYWEuLjM3OWUzMmNh
ZjI3NjU4YjFhYTRkZDVhNGMwOGI5ZjU1ZGM5MmM0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0NvbXBpbGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvQ29tcGlsZXIuaApAQCAtMzg1LDQg
KzM4NSw5NSBAQAogI2RlZmluZSBfX2hhc19pbmNsdWRlKHBhdGgpIDAKICNlbmRpZgogCisvKiBJ
R05PUkVfV0FSTklORy4qICovCisKKy8vIENhbid0IHVzZSBXVEZfQ09OQ0FUKCkgYW5kIFNUUklO
R0laRSgpIGJlY2F1c2UgdGhleSBhcmUgZGVmaW5lZCBpbgorLy8gU3RkTGliRXh0cmFzLmggd2hp
Y2ggaW5jbHVkZXMgdXMKKyNkZWZpbmUgX0NPTVBJTEVSX0NPTkNBVF9JKGEsIGIpIGEgIyMgYgor
I2RlZmluZSBfQ09NUElMRVJfQ09OQ0FUKGEsIGIpIF9DT01QSUxFUl9DT05DQVRfSShhLCBiKQor
CisjZGVmaW5lIF9DT01QSUxFUl9TVFJJTkdJWkUoZXhwKSAjZXhwCisKKyNpZiBDT01QSUxFUihH
Q0NfT1JfQ0xBTkcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0JFR0lOX0NPTkQoY29uZCwgY29t
cGlsZXIsIHdhcm5pbmcpIFwKKyAgICBfUHJhZ21hKF9DT01QSUxFUl9TVFJJTkdJWkUoY29tcGls
ZXIgZGlhZ25vc3RpYyBwdXNoKSkgXAorICAgIF9DT01QSUxFUl9DT05DQVQoSUdOT1JFX1dBUk5J
TkdfQkVHSU5fSU1QTF8sIGNvbmQpKGNvbXBpbGVyLCB3YXJuaW5nKQorCisjZGVmaW5lIElHTk9S
RV9XQVJOSU5HX0JFR0lOX0lNUExfMShjb21waWxlciwgd2FybmluZykgXAorICAgIF9QcmFnbWEo
X0NPTVBJTEVSX1NUUklOR0laRShjb21waWxlciBkaWFnbm9zdGljIGlnbm9yZWQgd2FybmluZykp
CisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0JFR0lOX0lNUExfMChjb21waWxlciwgd2FybmluZykK
KyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfQkVHSU5fSU1QTF8oY29tcGlsZXIsIHdhcm5pbmcpCisK
KworI2RlZmluZSBJR05PUkVfV0FSTklOR19FTkRfSU1QTChjb21waWxlcikgX1ByYWdtYShfQ09N
UElMRVJfU1RSSU5HSVpFKGNvbXBpbGVyIGRpYWdub3N0aWMgcG9wKSkKKworI2lmIGRlZmluZWQo
X19oYXNfd2FybmluZykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfQkVHSU5fSU1QTChjb21waWxl
ciwgd2FybmluZykgSUdOT1JFX1dBUk5JTkdfQkVHSU5fQ09ORChfX2hhc193YXJuaW5nKHdhcm5p
bmcpLCBjb21waWxlciwgd2FybmluZykKKyNlbHNlCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0JF
R0lOX0lNUEwoY29tcGlsZXIsIHdhcm5pbmcpIElHTk9SRV9XQVJOSU5HX0JFR0lOX0NPTkQoMSwg
Y29tcGlsZXIsIHdhcm5pbmcpCisjZW5kaWYKKworI2VuZGlmIC8vIENPTVBJTEVSKEdDQ19PUl9D
TEFORykKKworCisjaWYgIWRlZmluZWQoSUdOT1JFX0dDQ19XQVJOSU5HX0JFR0lOKSAmJiBDT01Q
SUxFUihHQ0MpCisjZGVmaW5lIElHTk9SRV9HQ0NfV0FSTklOR19CRUdJTih3YXJuaW5nKSBJR05P
UkVfV0FSTklOR19CRUdJTl9JTVBMKEdDQywgd2FybmluZykKKyNkZWZpbmUgSUdOT1JFX0dDQ19X
QVJOSU5HX0VORCBJR05PUkVfV0FSTklOR19FTkRfSU1QTChHQ0MpCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKElHTk9SRV9HQ0NfV0FSTklOR19CRUdJTikKKyNkZWZpbmUgSUdOT1JFX0dDQ19XQVJO
SU5HX0JFR0lOKHdhcm5pbmcpCisjZGVmaW5lIElHTk9SRV9HQ0NfV0FSTklOR19FTkQKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4pICYmIENPTVBJTEVS
KENMQU5HKQorI2RlZmluZSBJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTih3YXJuaW5nKSBJR05P
UkVfV0FSTklOR19CRUdJTl9JTVBMKGNsYW5nLCB3YXJuaW5nKQorI2RlZmluZSBJR05PUkVfQ0xB
TkdfV0FSTklOR19FTkQgSUdOT1JFX1dBUk5JTkdfRU5EX0lNUEwoY2xhbmcpCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKElHTk9SRV9DTEFOR19XQVJOSU5HX0JFR0lOKQorI2RlZmluZSBJR05PUkVf
Q0xBTkdfV0FSTklOR19CRUdJTih3YXJuaW5nKQorI2RlZmluZSBJR05PUkVfQ0xBTkdfV0FSTklO
R19FTkQKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoSUdOT1JFX1dBUk5JTkdfQkVHSU4pICYmIENP
TVBJTEVSKEdDQ19PUl9DTEFORykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfQkVHSU4od2Fybmlu
ZykgSUdOT1JFX1dBUk5JTkdfQkVHSU5fSU1QTChHQ0MsIHdhcm5pbmcpCisjZGVmaW5lIElHTk9S
RV9XQVJOSU5HX0VORCBJR05PUkVfV0FSTklOR19FTkRfSU1QTChHQ0MpCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKElHTk9SRV9XQVJOSU5HX0JFR0lOKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19C
RUdJTih3YXJuaW5nKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19FTkQKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4pCisjZGVmaW5lIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOIElHTk9SRV9XQVJOSU5HX0JFR0lOKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKKyNkZWZpbmUgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5EIElHTk9SRV9XQVJOSU5HX0VORAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChB
TExPV19ORVdfQVBJX0JFR0lOKQorI2RlZmluZSBBTExPV19ORVdfQVBJX0JFR0lOIElHTk9SRV9D
TEFOR19XQVJOSU5HX0JFR0lOKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKKyNkZWZp
bmUgQUxMT1dfTkVXX0FQSV9FTkQgSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEFMTE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4pCisjZGVmaW5lIEFMTE9X
X1VOVVNFRF9QQVJBTUVURVJfQkVHSU4gSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XdW51c2VkLXBh
cmFtZXRlciIpCisjZGVmaW5lIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJfRU5EIElHTk9SRV9XQVJO
SU5HX0VORAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChBTExPV19OT05MSVRFUkFMX0ZPUk1BVF9C
RUdJTikKKyNkZWZpbmUgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVHSU4gSUdOT1JFX1dBUk5J
TkdfQkVHSU4oIi1XZm9ybWF0LW5vbmxpdGVyYWwiKQorI2RlZmluZSBBTExPV19OT05MSVRFUkFM
X0ZPUk1BVF9FTkQgSUdOT1JFX1dBUk5JTkdfRU5ECisjZW5kaWYKKworI2lmICFkZWZpbmVkKElH
Tk9SRV9SRVRVUk5fVFlQRV9CRUdJTikKKyNkZWZpbmUgSUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lO
IElHTk9SRV9XQVJOSU5HX0JFR0lOKCItV3JldHVybi10eXBlIikKKyNkZWZpbmUgSUdOT1JFX1JF
VFVSTl9UWVBFX0VORCBJR05PUkVfV0FSTklOR19FTkQKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
QUxMT1dfTlVMTF9BUkdVTUVOVF9CRUdJTikKKyNkZWZpbmUgQUxMT1dfTlVMTF9BUkdVTUVOVF9C
RUdJTiBJR05PUkVfV0FSTklOR19CRUdJTigiLVdub25udWxsIikKKyNkZWZpbmUgQUxMT1dfTlVM
TF9BUkdVTUVOVF9FTkQgSUdOT1JFX1dBUk5JTkdfRU5ECisjZW5kaWYKKwogI2VuZGlmIC8qIFdU
Rl9Db21waWxlcl9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NRDUuY3BwIGIvU291
cmNlL1dURi93dGYvTUQ1LmNwcAppbmRleCBlNDliYTFiZWI1YzgwZjdjZWM0MzNmZDgzMjcyMmMw
OTI1MjczMDkwLi5lMjcwYjc0MWFjNThiMDNjZDg5NjI4OGM5NzgwMDFiYmQwOTcxYWNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NRDUuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01ENS5j
cHAKQEAgLTU5LDI2ICs1OSwyMyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogTUQ1OjpNRDUoKQogewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0NfTUQ1X0luaXQoJm1fY29udGV4dCk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiB9CiAKIHZvaWQgTUQ1OjphZGRCeXRlcyhjb25zdCB1aW50OF90KiBpbnB1dCwgc2l6ZV90
IGxlbmd0aCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENDX01ENV9VcGRhdGUoJm1fY29u
dGV4dCwgaW5wdXQsIGxlbmd0aCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHZvaWQgTUQ1OjpjaGVja3N1
bShEaWdlc3QmIGhhc2gpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDQ19NRDVfRmluYWwo
aGFzaC5kYXRhKCksICZtX2NvbnRleHQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogICAgIAogI2Vsc2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L1ByaW50U3RyZWFtLmNwcAppbmRleCAzODBjNjdiY2JiOTBlMzY2ZDg2MTgwODc4MDczMjQ1ZTYx
M2U0YjRmLi4yZmE2NzdjNjBiYmQzMTRmY2NlMzIwOWQxYmU2NTBhMzAwZWRlYjY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9QcmludFN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
UHJpbnRTdHJlYW0uY3BwCkBAIC00NiwyMiArNDYsMTQgQEAgdm9pZCBQcmludFN0cmVhbTo6cHJp
bnRmKGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKQogCiB2b2lkIFByaW50U3RyZWFtOjpwcmludGZW
YXJpYWJsZUZvcm1hdChjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikKIHsKLSNpZiBDT01QSUxFUihD
TEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNlbGlmIENPTVBJTEVSKEdDQykK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3N1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdCIKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJ
VEVSQUxfRk9STUFUX0JFR0lOCisgICAgSUdOT1JFX0dDQ19XQVJOSU5HX0JFR0lOKCItV3N1Z2dl
c3QtYXR0cmlidXRlPWZvcm1hdCIpCiAgICAgdmFfbGlzdCBhcmdMaXN0OwogICAgIHZhX3N0YXJ0
KGFyZ0xpc3QsIGZvcm1hdCk7CiAgICAgdnByaW50Zihmb3JtYXQsIGFyZ0xpc3QpOwogICAgIHZh
X2VuZChhcmdMaXN0KTsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKLSNlbGlmIENPTVBJTEVSKEdDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9w
Ci0jZW5kaWYKKyAgICBJR05PUkVfR0NDX1dBUk5JTkdfRU5ECisgICAgQUxMT1dfTk9OTElURVJB
TF9GT1JNQVRfRU5ECiB9CiAKIHZvaWQgUHJpbnRTdHJlYW06OmZsdXNoKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1NIQTEuY3BwIGIvU291cmNlL1dURi93dGYvU0hBMS5jcHAKaW5kZXgg
MzA1ZjA3NzU4OWQ5YmEzZTY1MGZiM2U3NWNjZmVhZDZlMmQ1MmFmZi4uNjdiYmNjMmRkODU1MjE5
MjUxMTc5MTRjNDQxMTNiZjUyYjVjZDJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU0hB
MS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvU0hBMS5jcHAKQEAgLTQxLDI2ICs0MSwyMyBAQCBu
YW1lc3BhY2UgV1RGIHsKIAogU0hBMTo6U0hBMSgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICBDQ19TSEExX0luaXQoJm1fY29udGV4dCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHZvaWQgU0hBMTo6
YWRkQnl0ZXMoY29uc3QgdWludDhfdCogaW5wdXQsIHNpemVfdCBsZW5ndGgpCiB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBDQ19TSEExX1VwZGF0ZSgmbV9jb250ZXh0LCBpbnB1dCwgbGVuZ3Ro
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIH0KIAogdm9pZCBTSEExOjpjb21wdXRlSGFzaChEaWdlc3QmIGhhc2gp
CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDQ19TSEExX0ZpbmFsKGhhc2guZGF0YSgpLCAm
bV9jb250ZXh0KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0
aHJlYWRzLmNwcAppbmRleCBkZDAxYzZjNzZlZTY5ODU5YzRjY2Q4YjExYzZjOWE4Y2QxYzA0OTYy
Li5mZjg0MzdhNDgxYjg0OGIzMTE3OTcxOTQ1MTNjZDdhNTcyYzdlMDAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
VGhyZWFkaW5nUHRocmVhZHMuY3BwCkBAIC0xMDksMTUgKzEwOSw4IEBAIHN0YXRpYyBMYXp5TmV2
ZXJEZXN0cm95ZWQ8U2VtYXBob3JlPiBnbG9iYWxTZW1hcGhvcmVGb3JTdXNwZW5kUmVzdW1lOwog
c3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQgU2lnVGhyZWFkU3VzcGVuZFJlc3VtZSA9IFNJR1VT
UjE7CiBzdGF0aWMgc3RkOjphdG9taWM8VGhyZWFkKj4gdGFyZ2V0VGhyZWFkIHsgbnVsbHB0ciB9
OwogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0dXJuLWxvY2FsLWFkZHIiCi0jZW5kaWYg
Ly8gQ09NUElMRVIoR0NDKQotCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0dXJu
LXN0YWNrLWFkZHJlc3MiCi0jZW5kaWYgLy8gQ09NUElMRVIoQ0xBTkcpCitJR05PUkVfR0NDX1dB
Uk5JTkdfQkVHSU4oIi1XcmV0dXJuLWxvY2FsLWFkZHIiKQorSUdOT1JFX0NMQU5HX1dBUk5JTkdf
QkVHSU4oIi1XcmV0dXJuLXN0YWNrLWFkZHJlc3MiKQogCiBzdGF0aWMgTkVWRVJfSU5MSU5FIHZv
aWQqIGdldEFwcHJveGltYXRlU3RhY2tQb2ludGVyKCkKIHsKQEAgLTEyNiwxMyArMTE5LDggQEAg
c3RhdGljIE5FVkVSX0lOTElORSB2b2lkKiBnZXRBcHByb3hpbWF0ZVN0YWNrUG9pbnRlcigpCiAg
ICAgcmV0dXJuIGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhY2tMb2NhdGlvbik7CiB9CiAKLSNpZiBD
T01QSUxFUihHQ0MpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJ
TEVSKEdDQykKLQotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKENMQU5HKQorSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5E
CitJR05PUkVfR0NDX1dBUk5JTkdfRU5ECiAKIHZvaWQgVGhyZWFkOjpzaWduYWxIYW5kbGVyU3Vz
cGVuZFJlc3VtZShpbnQsIHNpZ2luZm9fdCosIHZvaWQqIHVjb250ZXh0KQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvVmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAppbmRl
eCA4NTE4NGI5NDA3YzY5Mzc3NjBhMTBjNjViMWFlNTcyMjdhOGY3ZmZmLi5kZjFlNTJlNDdlNWYx
ZjBjNjhhN2U2Njg5NDBlOWNiMTNiNzU1NzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9W
ZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaApAQCAtNTI5LDE0ICs1MjksOSBA
QCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoYnVmZmVyKCkpOwogCi0jaWYgQ09NUElM
RVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XaW52YWxpZC1vZmZzZXRvZiIKLSNlbmRpZgorICAgICAgICBJR05PUkVf
R0NDX1dBUk5JTkdfQkVHSU4oIi1XaW52YWxpZC1vZmZzZXRvZiIpCiAgICAgICAgIHN0YXRpY19h
c3NlcnQoKG9mZnNldG9mKFZlY3RvckJ1ZmZlciwgbV9pbmxpbmVCdWZmZXIpICsgc2l6ZW9mKG1f
aW5saW5lQnVmZmVyKSkgJSA4ID09IDAsICJJbmxpbmUgYnVmZmVyIGVuZCBuZWVkcyB0byBiZSBv
biA4IGJ5dGUgYm91bmRhcnkgZm9yIEFTYW4gYW5ub3RhdGlvbnMgdG8gd29yay4iKTsKLSNpZiBD
T01QSUxFUihHQ0MpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgICAg
IElHTk9SRV9HQ0NfV0FSTklOR19FTkQKIAogICAgICAgICBpZiAoYnVmZmVyKCkgPT0gaW5saW5l
QnVmZmVyKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9p
bmxpbmVCdWZmZXIpICsgc2l6ZW9mKG1faW5saW5lQnVmZmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3Ry
aW5nLmNwcAppbmRleCAyYjBlNWYzOWNkNDNjNmRmNDFhMGMxOGJjNGJiZDM4NGYxOTUxM2Q2Li5h
ODc1MjlmYzZiM2I4MmYyMzhhZTc1MGZmOWMyOTNkNjQ4YjJjM2U3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9X
VEZTdHJpbmcuY3BwCkBAIC00NTMsMTAgKzQ1Myw3IEBAIFdURl9BVFRSSUJVVEVfUFJJTlRGKDEs
IDApIHN0YXRpYyBTdHJpbmcgY3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cyhjb25zdCBjaGFy
CiAgICAgdmFfbGlzdCBhcmdzQ29weTsKICAgICB2YV9jb3B5KGFyZ3NDb3B5LCBhcmdzKTsKIAot
I2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2VuZGlm
CisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVHSU4KIAogI2lmIFVTRShDRikgJiYgIU9T
KFdJTkRPV1MpCiAgICAgaWYgKHN0cnN0cihmb3JtYXQsICIlQCIpKSB7CkBAIC00OTIsOSArNDg5
LDcgQEAgV1RGX0FUVFJJQlVURV9QUklOVEYoMSwgMCkgc3RhdGljIFN0cmluZyBjcmVhdGVXaXRo
Rm9ybWF0QW5kQXJndW1lbnRzKGNvbnN0IGNoYXIKICAgICB2c25wcmludGYoYnVmZmVyLmRhdGEo
KSwgYnVmZmVyLnNpemUoKSwgZm9ybWF0LCBhcmdzQ29weSk7CiAgICAgdmFfZW5kKGFyZ3NDb3B5
KTsKIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAot
I2VuZGlmCisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfRU5ECiAKICAgICByZXR1cm4gU3Ry
aW5nSW1wbDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihidWZmZXIuZGF0
YSgpKSwgbGVuKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxI
YW5kbGVyLmgKaW5kZXggMmFhMTE4MGRhZWZjNzhmMDY2ZmI3MTRmNzZlOTU2NjQwYjhjMTk2MS4u
MTFlZjc4YmI0ZWIzMWQ3ZTdkNzE3MmY4YWI1NDc0MGExOWI4ZDcxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNo
YW5uZWxIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKQEAgLTI5LDEyICsyOSwxMSBA
QAogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVs
SGFuZGxlci5oIgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorQUxMT1dfVU5VU0VEX1BBUkFN
RVRFUl9CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRjL2FwaS9kYXRhY2hhbm5lbGludGVyZmFjZS5o
PgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9F
TkQKIAogbmFtZXNwYWNlIHdlYnJ0YyB7CiBzdHJ1Y3QgRGF0YUNoYW5uZWxJbml0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDTWVkaWFFbmRwb2ludC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCmluZGV4IGI3MTc0OTVmMThjNWNiM2M3
OGMyMmJmYWI5ZWFkZWVlNGVhZjczZDguLmVjOWIxMGQ0ZmM2NjE1YzJhMWVhZTQwZjZiZTE1MjE4
NzIzZmY2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgKQEAg
LTM0LDE1ICszNCwxNCBAQAogI2luY2x1ZGUgIlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5o
IgogI2luY2x1ZGUgPFRpbWVyLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitBTExPV19V
TlVTRURfUEFSQU1FVEVSX0JFR0lOCiAKICNpbmNsdWRlIDx3ZWJydGMvYXBpL2pzZXAuaD4KICNp
bmNsdWRlIDx3ZWJydGMvYXBpL3BlZXJjb25uZWN0aW9uaW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8
d2VicnRjL3BjL3BlZXJjb25uZWN0aW9uZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9wYy9y
dGNzdGF0c2NvbGxlY3Rvci5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorQUxMT1df
VU5VU0VEX1BBUkFNRVRFUl9FTkQKIAogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY3J5cHRvL2NvbW1vbmNyeXB0by9DcnlwdG9EaWdlc3RDb21tb25Dcnlw
dG8uY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8vY29tbW9uY3J5cHRvL0NyeXB0
b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAKaW5kZXggYjQ3ZjhlZWM2ODgzN2M3MjdkNWY4ZmNjOTcx
NmRjYmQzY2FjNjUzZS4uMWNlNTc5N2ZlZjYyOTczZWVkYjQ3MzQ4OWMyMTQ5N2M3YmJmYjQ2MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8vY29tbW9uY3J5cHRvL0Ny
eXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
cnlwdG8vY29tbW9uY3J5cHRvL0NyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAKQEAgLTk3LDEw
ICs5Nyw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9EaWdlc3Q+IENyeXB0b0RpZ2VzdDo6Y3Jl
YXRlKENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtIGFsZ29yCiAgICAgY2FzZSBDcnlwdG9EaWdlc3Q6
OkFsZ29yaXRobTo6U0hBXzE6IHsKICAgICAgICAgQ0NfU0hBMV9DVFgqIGNvbnRleHQgPSBuZXcg
Q0NfU0hBMV9DVFg7CiAgICAgICAgIGRpZ2VzdC0+bV9jb250ZXh0LT5jY0NvbnRleHQgPSBjb250
ZXh0OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBDQ19TSEExX0luaXQoY29udGV4
dCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogICAgICAgICByZXR1cm4gZGlnZXN0OwogICAgIH0KICAgICBj
YXNlIENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMjI0OiB7CkBAIC0xMzQsMTAgKzEzMyw5
IEBAIHZvaWQgQ3J5cHRvRGlnZXN0OjphZGRCeXRlcyhjb25zdCB2b2lkKiBpbnB1dCwgc2l6ZV90
IGxlbmd0aCkKIHsKICAgICBzd2l0Y2ggKG1fY29udGV4dC0+YWxnb3JpdGhtKSB7CiAgICAgY2Fz
ZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzE6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgICAgIENDX1NIQTFfVXBkYXRlKHRvU0hBMUNvbnRleHQobV9jb250ZXh0LmdldCgpKSwg
aW5wdXQsIGxlbmd0aCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICByZXR1cm47CiAgICAgY2Fz
ZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzIyNDoKICAgICAgICAgQ0NfU0hBMjI0X1Vw
ZGF0ZSh0b1NIQTIyNENvbnRleHQobV9jb250ZXh0LmdldCgpKSwgaW5wdXQsIGxlbmd0aCk7CkBA
IC0xNjAsMTAgKzE1OCw5IEBAIFZlY3Rvcjx1aW50OF90PiBDcnlwdG9EaWdlc3Q6OmNvbXB1dGVI
YXNoKCkKICAgICBzd2l0Y2ggKG1fY29udGV4dC0+YWxnb3JpdGhtKSB7CiAgICAgY2FzZSBDcnlw
dG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzE6CiAgICAgICAgIHJlc3VsdC5yZXNpemUoQ0NfU0hB
MV9ESUdFU1RfTEVOR1RIKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgQ0NfU0hB
MV9GaW5hbChyZXN1bHQuZGF0YSgpLCB0b1NIQTFDb250ZXh0KG1fY29udGV4dC5nZXQoKSkpOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFs
Z29yaXRobTo6U0hBXzIyNDoKICAgICAgICAgcmVzdWx0LnJlc2l6ZShDQ19TSEEyMjRfRElHRVNU
X0xFTkdUSCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9B
VktpdFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZLaXRTUEkuaApp
bmRleCA5MTQ1MTdlZmU3Y2IxNGI1ZmFmMmM1YjFiNjdmMjM2NmM2MmM2OTk1Li4xYjkwZTBkNjAy
NGEzOTk2YjUzMGUyM2RmZTJiNjVkYmMxOTY1ZDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9jb2NvYS9BVktpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL0FWS2l0U1BJLmgKQEAgLTM4LDEwICszOCw5IEBACiAjZW5kaWYKIAogI2lt
cG9ydCA8QVZLaXQvQVZQbGF5ZXJDb250cm9sbGVyLmg+Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xb2JqYy1wcm9wZXJ0
eS1uby1hdHRyaWJ1dGUiCitJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigiLVdvYmpjLXByb3Bl
cnR5LW5vLWF0dHJpYnV0ZSIpCiAjaW1wb3J0IDxBVktpdC9BVlBsYXllckxheWVyVmlldy5oPgot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAj
aW1wb3J0IDxBVktpdC9BVlBsYXllclZpZXdDb250cm9sbGVyX1ByaXZhdGUuaD4KICNpbXBvcnQg
PEFWS2l0L0FWUGxheWVyVmlld0NvbnRyb2xsZXJfV2ViS2l0T25seS5oPgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oCmlu
ZGV4IDU1YTY0ODg2YTg4MGY1YjkwZWEyZGE2Y2Y1MWFiYTRiYTY3YzQyNWQuLjA3MDZlZmU4NWE2
Y2VlYjEyNDRkMWU4OTdmYTM4NGE3MWZkY2VjZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oCkBAIC04NiwxMCArODYs
OSBAQCBpbmxpbmUgTlNEYXRhICpfTnVsbGFibGUgaW5zZWN1cmVseUFyY2hpdmVkRGF0YVdpdGhS
b290T2JqZWN0KGlkIF9Ob25udWxsIG9iamVjdAogCiBpbmxpbmUgaWQgX051bGxhYmxlIGluc2Vj
dXJlbHlVbmFyY2hpdmVPYmplY3RGcm9tRGF0YShOU0RhdGEgKiBfTm9ubnVsbCBkYXRhKQogewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgcmV0dXJuIFtOU0tleWVkVW5hcmNoaXZlciB1bmFyY2hp
dmVPYmplY3RXaXRoRGF0YTpkYXRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogaW5saW5lIGlkIF9OdWxs
YWJsZSB1bmFyY2hpdmVkT2JqZWN0T2ZDbGFzc2VzRnJvbURhdGEoTlNTZXQ8Q2xhc3M+ICogX05v
bm51bGwgY2xhc3NlcywgTlNEYXRhICogX05vbm51bGwgZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvaW9zL01lZGlhUGxheWVyU1BJLmgKaW5kZXggZGQ4N2Y5M2FmNzAyNWJj
YTZkMTMzNDU3YjNmNmIxMjA2YTAxNDRmOC4uODE3ZDA5YTI4NzM0ODFjYzcxYzI3ZTM5Y2MzNmRi
YWQ5OTkyMWI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL01l
ZGlhUGxheWVyU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL01lZGlh
UGxheWVyU1BJLmgKQEAgLTc1LDIxICs3NSwxOSBAQCBlbnVtIHsKIH07CiB0eXBlZGVmIE5TVUlu
dGVnZXIgTVBBVkl0ZW1UeXBlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogQGludGVyZmFjZSBNUEF1ZGlv
VmlkZW9Sb3V0aW5nUG9wb3ZlckNvbnRyb2xsZXIgOiBVSVBvcG92ZXJDb250cm9sbGVyCiBAZW5k
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKIAogQGludGVyZmFjZSBNUEF1ZGlvVmlkZW9Sb3V0aW5nUG9wb3ZlckNvbnRyb2xs
ZXIgKCkKIC0gKGlkKWluaXRXaXRoVHlwZTooTVBBVkl0ZW1UeXBlKWF2SXRlbVR5cGU7CiBAZW5k
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiBAaW50ZXJmYWNlIE1QQVZSb3V0aW5nU2hlZXQgOiBVSVZpZXcK
IEBlbmQKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogCiBAaW50ZXJmYWNlIE1QQVZSb3V0aW5nU2hlZXQgKCkKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBhc3NpZ24sIHNldHRlcj1zZXRBVkl0ZW1UeXBlOikgTVBBVkl0ZW1UeXBl
IGF2SXRlbVR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9t
YWMvUG9wdXBNZW51Lm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVw
TWVudS5tbQppbmRleCAyMjMzNTc1ZGMzNGU3NjFlODYxY2JiNDUyODdiNzMzZjJjZDRhYzIzLi45
YmJkNDYxOWEzZTY2YTY5YjNhYWI5ZGZhYWU3YTdlNWNjZGZjZjU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUubW0KQEAgLTQ0LDEwICs0NCw5IEBA
IG5hbWVzcGFjZSBQQUwgewogdm9pZCBwb3BVcE1lbnUoTlNNZW51ICptZW51LCBOU1BvaW50IGxv
Y2F0aW9uLCBmbG9hdCB3aWR0aCwgTlNWaWV3ICp2aWV3LCBpbnQgc2VsZWN0ZWRJdGVtLCBOU0Zv
bnQgKmZvbnQsIE5TQ29udHJvbFNpemUgY29udHJvbFNpemUsIGJvb2wgdXNlc0N1c3RvbUFwcGVh
cmFuY2UpCiB7CiAgICAgTlNSZWN0IGFkanVzdGVkUG9wdXBCb3VuZHMgPSBbdmlldy53aW5kb3cg
Y29udmVydFJlY3RUb1NjcmVlbjpbdmlldyBjb252ZXJ0UmVjdDp2aWV3LmJvdW5kcyB0b1ZpZXc6
bmlsXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAoY29udHJvbFNpemUgIT0gTlNNaW5p
Q29udHJvbFNpemUpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIGFkanVzdGVkUG9wdXBCb3Vu
ZHMub3JpZ2luLnggLT0gMzsKICAgICAgICAgYWRqdXN0ZWRQb3B1cEJvdW5kcy5vcmlnaW4ueSAt
PSAxOwogICAgICAgICBhZGp1c3RlZFBvcHVwQm91bmRzLnNpemUud2lkdGggKz0gNjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9XZWJQYW5lbC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9XZWJQYW5lbC5tbQppbmRleCAzMTdiZGEw
MmU3YjdlYjI3YTliZDJiNTk3OTU2ZjU0MTJkYWNmMTI2Li5jNmU0NjBjZjBlZjY1MTliNjExMDU5
ZTMxNTMyNjM0ZTM1ZDdlZWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5
c3RlbS9tYWMvV2ViUGFuZWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0v
bWFjL1dlYlBhbmVsLm1tCkBAIC0zNCwxMCArMzQsOSBAQAogCiAtIChpbnN0YW5jZXR5cGUpaW5p
dAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgc3RhdGljIE5TVUludGVnZXIgc3R5bGVNYXNr
ID0gTlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2sgfCBOU0Nsb3NhYmxlV2luZG93TWFzayB8IE5T
UmVzaXphYmxlV2luZG93TWFzayAgfCBOU1RpdGxlZFdpbmRvd01hc2sgfCBOU1NtYWxsV2luZG93
TWFzayB8IE5TU2lkZVV0aWxpdHlXaW5kb3dNYXNrIHwgTlNVdGlsaXR5V2luZG93TWFzazsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICAgICAKICAgICByZXR1cm4gW3N1cGVyIGluaXRXaXRoQ29udGVudFJlY3Q6TlNa
ZXJvUmVjdCBzdHlsZU1hc2s6c3R5bGVNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJl
ZCBkZWZlcjpZRVNdOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggMzk5MTc3ZjM1M2UyZjgwOWQyZGZjNzhhYjY2
NTQ4YWFiOTI5MzU5NC4uZDQ3NmUwYWU3MzRjYzE1N2NkYmM4ZmFkNTgzYmRjOGExZmFmYWU2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENh
Y2hlTWFjLm1tCkBAIC0zNDYsMTAgKzM0Niw5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAg
ICAgCiAgICAgLy8gTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbiB3aWxsIGNhbGwgdGhp
cyBtZXRob2QsIChidXQgbm90IHdoZW4gcnVubmluZyBEUlQpLCBzbyBBU1NFUlQgaGVyZSB0byBt
YWtlIHN1cmUgaXQgZG9lcyBub3QgY3Jhc2guCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ2NjYyCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBBU1NFUlQo
W29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRdIHx8IHRydWUpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogCiAgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iai0+d3JhcHBlcigp
LCBtYWNOb3RpZmljYXRpb24sIG5pbCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQppbmRleCBjY2U5
NzJjZmNkMDJlNTc1NGVjY2VjYzU3OGZhNGI0MGE5OTY4YzI2Li44ZDgxNzIxYjBiM2MzZDFjMmU0
ZjVhZTdiOTUwNTg4ZTg5NzQyMjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KQEAgLTU1LDEwICs1
NSw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6b3ZlcnJpZGVBdHRhY2htZW50UGFyZW50
KEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudCkKICAgICAgICAgcGFyZW50V3JhcHBlciA9IHBh
cmVudC0+d3JhcHBlcigpOwogICAgIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1t3cmFw
cGVyKCkgYXR0YWNobWVudFZpZXddIGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVlOnBhcmVu
dFdyYXBwZXIgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eVBhcmVudEF0dHJpYnV0ZV07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiB9CiAgICAgCiBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxp
dHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3QKQEAgLTY5LDExICs2OCwxMCBAQCBib29sIEFjY2Vz
c2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3QKICAg
ICBpZiAoaXNBdHRhY2htZW50KCkgJiYgKHdpZGdldCA9IHdpZGdldEZvckF0dGFjaG1lbnRWaWV3
KCkpICYmIHdpZGdldC0+aXNGcmFtZVZpZXcoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChbd3JhcHBlcigpIGF0dGFjaG1lbnRWaWV3XSkKICAg
ICAgICAgcmV0dXJuIFtbd3JhcHBlcigpIGF0dGFjaG1lbnRWaWV3XSBhY2Nlc3NpYmlsaXR5SXNJ
Z25vcmVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIC8vIEF0dGFjaG1lbnRzIGFyZSBpZ25vcmVkIGJ5
IGRlZmF1bHQgKHVubGVzcyB3ZSBkZXRlcm1pbmUgdGhhdCB3ZSBzaG91bGQgZXhwb3NlIHRoZW0p
LgogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bQppbmRleCAwNGMxODZhMDhhYzhhZjI4NjA3YzQxYmE3ZWRkMGEwMTdjOTJiZjY2Li42NTAzZDQw
NmNlODMwMjljY2ZmZTVkM2Y0YzE5NDAwMTZlM2NkYjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMTY3OSwxMCArMTY3OSw5IEBAIHN0YXRpYyBpZCB0ZXh0
TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9ucyhBWE9iamVjdENhY2hlKiBjYWNoZSwgY29u
c3QgVmlzaWJsCiAgICAgV2lkZ2V0KiB3aWRnZXQgPSBtX29iamVjdC0+d2lkZ2V0KCk7CiAgICAg
aWYgKCF3aWRnZXQpCiAgICAgICAgIHJldHVybiBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICByZXR1cm4gWyh3aWRnZXQtPnBsYXRmb3JtV2lkZ2V0KCkpIGFjY2Vzc2liaWxpdHlBdHRyaWJ1
dGVWYWx1ZTogTlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRyaWJ1dGVdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
fQogCiAtIChpZClyZW1vdGVBY2Nlc3NpYmlsaXR5UGFyZW50T2JqZWN0CkBAIC0xNzUxLDEwICsx
NzUwLDkgQEAgc3RhdGljIE5TTXV0YWJsZUFycmF5ICpjb252ZXJ0U3RyaW5nc1RvTlNBcnJheShj
b25zdCBWZWN0b3I8U3RyaW5nPiYgdmVjdG9yKQogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVW
aWV3LT5wbGF0Zm9ybVdpZGdldCgpKSB7CiAgICAgICAgIE5TUG9pbnQgbnNQb2ludCA9IChOU1Bv
aW50KXBvaW50OwogICAgICAgICBOU1ZpZXcqIHZpZXcgPSBmcmFtZVZpZXctPmRvY3VtZW50Vmll
dygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBuc1BvaW50ID0gW1t2aWV3IHdp
bmRvd10gY29udmVydEJhc2VUb1NjcmVlbjpbdmlldyBjb252ZXJ0UG9pbnQ6bnNQb2ludCB0b1Zp
ZXc6bmlsXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICByZXR1cm4gQ0dQb2ludE1ha2UobnNQ
b2ludC54LCBuc1BvaW50LnkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIApAQCAtMjAwNiwxMSAr
MjAwNCwxMCBAQCBzdGF0aWMgTlNTdHJpbmcgKnJvbGVWYWx1ZVRvTlNTdHJpbmcoQWNjZXNzaWJp
bGl0eVJvbGUgdmFsdWUpCiAKIC0gKE5TU3RyaW5nKilyb2xlCiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICBpZiAobV9vYmplY3QtPmlzQXR0YWNobWVudCgpKQogICAgICAgICByZXR1cm4gW1tz
ZWxmIGF0dGFjaG1lbnRWaWV3XSBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3Np
YmlsaXR5Um9sZUF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgQWNjZXNzaWJpbGl0eVJvbGUg
cm9sZSA9IG1fb2JqZWN0LT5yb2xlVmFsdWUoKTsKIAogICAgIGlmIChyb2xlID09IEFjY2Vzc2li
aWxpdHlSb2xlOjpMYWJlbCAmJiBpczxBY2Nlc3NpYmlsaXR5TGFiZWw+KCptX29iamVjdCkgJiYg
ZG93bmNhc3Q8QWNjZXNzaWJpbGl0eUxhYmVsPigqbV9vYmplY3QpLmNvbnRhaW5zT25seVN0YXRp
Y1RleHQoKSkKQEAgLTIwMzAsOCArMjAyNyw3IEBAIHN0YXRpYyBOU1N0cmluZyAqcm9sZVZhbHVl
VG9OU1N0cmluZyhBY2Nlc3NpYmlsaXR5Um9sZSB2YWx1ZSkKICAgICByZXR1cm4gTlNBY2Nlc3Np
YmlsaXR5VW5rbm93blJvbGU7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAtIChOU1N0cmluZyopc3Vi
cm9sZQogewogICAgIGlmIChtX29iamVjdC0+aXNQYXNzd29yZEZpZWxkKCkpCkBAIC0yMjQxLDE5
ICsyMjM3LDE4IEBAIHN0YXRpYyBOU1N0cmluZyAqcm9sZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3Np
YmlsaXR5Um9sZSB2YWx1ZSkKICAgICAKICAgICByZXR1cm4gbmlsOwogfQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIC0g
KE5TU3RyaW5nKilyb2xlRGVzY3JpcHRpb24KIHsKICAgICBpZiAoIW1fb2JqZWN0KQogICAgICAg
ICByZXR1cm4gbmlsOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBhdHRhY2htZW50cyBo
YXZlIHRoZSBBWEltYWdlIHJvbGUsIGJ1dCBhIGRpZmZlcmVudCBzdWJyb2xlCiAgICAgaWYgKG1f
b2JqZWN0LT5pc0F0dGFjaG1lbnQoKSkKICAgICAgICAgcmV0dXJuIFtbc2VsZiBhdHRhY2htZW50
Vmlld10gYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVJvbGVEZXNj
cmlwdGlvbkF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcm
IG92ZXJyaWRlUm9sZURlc2NyaXB0aW9uID0gbV9vYmplY3QtPnJvbGVEZXNjcmlwdGlvbigpOwog
ICAgIGlmICghb3ZlcnJpZGVSb2xlRGVzY3JpcHRpb24uaXNOdWxsKCkgJiYgIW92ZXJyaWRlUm9s
ZURlc2NyaXB0aW9uLmlzRW1wdHkoKSkKQEAgLTM0NzIsOCArMzQ2Nyw3IEBAIHN0YXRpYyBOU1N0
cmluZyAqcm9sZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3NpYmlsaXR5Um9sZSB2YWx1ZSkKICAgICBy
ZXR1cm4gcGFyYW1BdHRyczsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogLSAodm9pZClhY2Nlc3Np
YmlsaXR5UGVyZm9ybVByZXNzQWN0aW9uCiB7CkBAIC0zNTMxLDcgKzM1MjUsNyBAQCBzdGF0aWMg
TlNTdHJpbmcgKnJvbGVWYWx1ZVRvTlNTdHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUgdmFsdWUpCiAg
ICAgICAgIG1fb2JqZWN0LT5kZWNyZW1lbnQoKTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIC0gKHZvaWQpYWNj
ZXNzaWJpbGl0eVBlcmZvcm1TaG93TWVudUFjdGlvbgogewpAQCAtNDM0Myw4ICs0MzM3LDcgQEAg
c3RhdGljIHZvaWQgZm9ybWF0Rm9yRGVidWdnZXIoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2Um
IHJhbmdlLCBjaGFyKiBidWZmZXIsIHUKICAgICByZXR1cm4gTlNOb3RGb3VuZDsKIH0KIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KIC0gKE5TVUludGVnZXIpYWNjZXNzaWJpbGl0eUFycmF5QXR0cmlidXRlQ291
bnQ6KE5TU3RyaW5nICopYXR0cmlidXRlCiB7CiAgICAgaWYgKCFbc2VsZiB1cGRhdGVPYmplY3RC
YWNraW5nU3RvcmVdKQpAQCAtNDM2NSw3ICs0MzU4LDcgQEAgc3RhdGljIHZvaWQgZm9ybWF0Rm9y
RGVidWdnZXIoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHJhbmdlLCBjaGFyKiBidWZmZXIs
IHUKICAgICAKICAgICByZXR1cm4gW3N1cGVyIGFjY2Vzc2liaWxpdHlBcnJheUF0dHJpYnV0ZUNv
dW50OmF0dHJpYnV0ZV07CiB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogLSAoTlNBcnJheSAqKWFjY2Vzc2liaWxpdHlB
cnJheUF0dHJpYnV0ZVZhbHVlczooTlNTdHJpbmcgKilhdHRyaWJ1dGUgaW5kZXg6KE5TVUludGVn
ZXIpaW5kZXggbWF4Q291bnQ6KE5TVUludGVnZXIpbWF4Q291bnQKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbSBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQppbmRleCAwMmI4NDI4M2VkMzliMTQx
MmRhMGMwMTMzYTAyNzM5YTBiNjQyMzM0Li5iNWVjMTBkZTNlZjBlMWM1NDY2MjUyYjk1NzJmZjI1
N2MwNDIzNDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3Jp
cHRPYmplY3QubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvV2ViU2NyaXB0T2Jq
ZWN0Lm1tCkBAIC03MDIsMTMgKzcwMiwxMiBAQCBzdGF0aWMgdm9pZCBnZXRMaXN0RnJvbU5TQXJy
YXkoRXhlY1N0YXRlICpleGVjLCBOU0FycmF5ICphcnJheSwgUm9vdE9iamVjdCogcm9vdAogICAg
IHJldHVybiBzZWxmOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xb2JqYy1taXNzaW5nLXN1cGVyLWNhbGxzIgor
SUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1Xb2JqYy1taXNzaW5nLXN1cGVyLWNhbGxzIikK
IC0gKHZvaWQpZGVhbGxvYwogewogICAgIHJldHVybjsKIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKK0lHTk9SRV9DTEFOR19XQVJOSU5HX0VORAogCiArIChXZWJVbmRlZmluZWQgKil1
bmRlZmluZWQKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNf
Y2xhc3MubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2NsYXNzLm1tCmluZGV4
IGNlMWVmNjU1N2EwNzYzYTdkMzQzMGEzYmY5ODZhMTk4N2Y4Y2IzNTYuLjNlYzk2ZWMwOGU2OWNk
ZGRjM2NmN2QxMmU3MjhkNDJjNWUxYTZkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9vYmpjL29iamNfY2xhc3MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMv
b2JqY19jbGFzcy5tbQpAQCAtMTYzLDEwICsxNjMsOSBAQCBGaWVsZCogT2JqY0NsYXNzOjpmaWVs
ZE5hbWVkKFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEluc3RhbmNlKiBpbnN0YW5jZSkgY29u
cwogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZmllbGROYW1lID0gYWRvcHRDRihDRlN0cmlu
Z0NyZWF0ZVdpdGhDU3RyaW5nKE5VTEwsIGpzTmFtZS5kYXRhKCksIGtDRlN0cmluZ0VuY29kaW5n
QVNDSUkpKTsKICAgICBpZCB0YXJnZXRPYmplY3QgPSAoc3RhdGljX2Nhc3Q8T2JqY0luc3RhbmNl
Kj4oaW5zdGFuY2UpKS0+Z2V0T2JqZWN0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3VuZGVjbGFyZWQtc2VsZWN0b3IiCisgICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XdW5kZWNs
YXJlZC1zZWxlY3RvciIpCiAgICAgaWQgYXR0cmlidXRlcyA9IFt0YXJnZXRPYmplY3QgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhdHRyaWJ1dGVLZXlzKV0gPyBbdGFyZ2V0T2JqZWN0IHBl
cmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IoYXR0cmlidXRlS2V5cyldIDogbmlsOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0VORAogI2Vsc2UKICAgICBp
ZCBhdHRyaWJ1dGVzID0gW3RhcmdldE9iamVjdCBhdHRyaWJ1dGVLZXlzXTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NvbW1vbkNyeXB0b1V0aWxpdGllcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmNwcAppbmRleCBl
MDQ5MmVlNjcxMTBmODhjNzMxNTIxNmQ2YzY4YjYzMzQ5NmQ3N2EwLi43MmZjYzFkYjI3YTNkMTcy
NmNiZmE2Nzc2MjM3Njk3MjExYzAzZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
Q29tbW9uQ3J5cHRvVXRpbGl0aWVzLmNwcApAQCAtNTIsMTAgKzUyLDkgQEAgYm9vbCBnZXRDb21t
b25DcnlwdG9EaWdlc3RBbGdvcml0aG0oQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoRnVu
Y3Rpb24sIENDRGkKIHsKICAgICBzd2l0Y2ggKGhhc2hGdW5jdGlvbikgewogICAgIGNhc2UgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzE6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgICAgIGFsZ29yaXRobSA9IGtDQ0RpZ2VzdFNIQTE7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8y
MjQ6CiAgICAgICAgIGFsZ29yaXRobSA9IGtDQ0RpZ2VzdFNIQTIyNDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTU1hYy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwCmlu
ZGV4IGIyYmMyNDg4OGM3ZWU3NThlOWRiNDAyMzk3YThmYTZlNGYxZDFlMDguLjExZjQ2NzAxMDQ1
ZTkwMTM5ZjVkYTMyOTdhOGQ5ZTkwMDZmYzY1YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTU1hYy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNTWFjLmNwcApAQCAtNDAsMTAg
KzQwLDkgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gZW5jcnlwdEFFU19H
Q00oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpdiwgY28KICAgICBWZWN0b3I8dWludDhfdD4gY2lw
aGVyVGV4dChwbGFpblRleHQuc2l6ZSgpKTsgLy8gUGVyIHNlY3Rpb24gNS4yLjEuMjogaHR0cDov
L252bHB1YnMubmlzdC5nb3YvbmlzdHB1YnMvTGVnYWN5L1NQL25pc3RzcGVjaWFscHVibGljYXRp
b244MDAtMzhkLnBkZgogICAgIFZlY3Rvcjx1aW50OF90PiB0YWcoZGVzaXJlZFRhZ0xlbmd0aElu
Qnl0ZXMpOwogICAgIC8vIHRhZ0xlbmd0aCBpcyBhY3R1YWwgYW4gaW5wdXQgPHJkYXI6Ly9wcm9i
bGVtLzMwNjYwMDc0PgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0NDcnlwdG9yU3RhdHVzIHN0
YXR1cyA9IENDQ3J5cHRvckdDTShrQ0NFbmNyeXB0LCBrQ0NBbGdvcml0aG1BRVMsIGtleS5kYXRh
KCksIGtleS5zaXplKCksIGl2LmRhdGEoKSwgaXYuc2l6ZSgpLCBhZGRpdGlvbmFsRGF0YS5kYXRh
KCksIGFkZGl0aW9uYWxEYXRhLnNpemUoKSwgcGxhaW5UZXh0LmRhdGEoKSwgcGxhaW5UZXh0LnNp
emUoKSwgY2lwaGVyVGV4dC5kYXRhKCksIHRhZy5kYXRhKCksICZkZXNpcmVkVGFnTGVuZ3RoSW5C
eXRlcyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IE9wZXJhdGlvbkVycm9yIH07CiAKQEAgLTU4LDEwICs1Nyw5IEBAIHN0YXRpYyBFeGNl
cHRpb25PcjxWZWN0b3I8dWludDhfdD4+IGRlY3lwdEFFU19HQ00oY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiBpdiwgY29uCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHRhZyhkZXNpcmVkVGFnTGVuZ3RoSW5C
eXRlcyk7CiAgICAgc2l6ZV90IG9mZnNldCA9IGNpcGhlclRleHQuc2l6ZSgpIC0gZGVzaXJlZFRh
Z0xlbmd0aEluQnl0ZXM7CiAgICAgLy8gdGFnTGVuZ3RoIGlzIGFjdHVhbCBhbiBpbnB1dCA8cmRh
cjovL3Byb2JsZW0vMzA2NjAwNzQ+Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDQ0NyeXB0b3JT
dGF0dXMgc3RhdHVzID0gQ0NDcnlwdG9yR0NNKGtDQ0RlY3J5cHQsIGtDQ0FsZ29yaXRobUFFUywg
a2V5LmRhdGEoKSwga2V5LnNpemUoKSwgaXYuZGF0YSgpLCBpdi5zaXplKCksIGFkZGl0aW9uYWxE
YXRhLmRhdGEoKSwgYWRkaXRpb25hbERhdGEuc2l6ZSgpLCBjaXBoZXJUZXh0LmRhdGEoKSwgb2Zm
c2V0LCBwbGFpblRleHQuZGF0YSgpLCB0YWcuZGF0YSgpLCAmZGVzaXJlZFRhZ0xlbmd0aEluQnl0
ZXMpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBPcGVyYXRpb25FcnJvciB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbQppbmRleCBhNTE3ZjkyMmUwNDhk
MTQxNzdjNGY2ZjhjNDM2MjMxMzA4ODE0OTY5Li40YWQ3YWIwNDBmMWM3Y2M5YWNlZTQyNDdlYWM4
YTQ4MGYzZmQ3NzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL1Nlcmlh
bGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMv
U2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0KQEAgLTIyMCwxNSArMjIwLDE0IEBAIGJvb2wg
d3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBtYXN0ZXJLZXks
IGNvbnN0IFZlY3Rvcjx1aW50CiAgICAgc2l6ZV90IHRhZ0xlbmd0aCA9IDE2OwogICAgIHVpbnQ4
X3QgdGFnW3RhZ0xlbmd0aF07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHN0YXR1cyA9IEND
Q3J5cHRvckdDTShrQ0NFbmNyeXB0LCBrQ0NBbGdvcml0aG1BRVMxMjgsIGtlay5kYXRhKCksIGtl
ay5zaXplKCksCiAgICAgICAgIG51bGxwdHIsIDAsIC8vIGl2CiAgICAgICAgIG51bGxwdHIsIDAs
IC8vIGF1dGggZGF0YQogICAgICAgICBrZXkuZGF0YSgpLCBrZXkuc2l6ZSgpLAogICAgICAgICBl
bmNyeXB0ZWRLZXkuZGF0YSgpLAogICAgICAgICB0YWcsICZ0YWdMZW5ndGgpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogCiAgICAgaWYgKHN0YXR1cyAhPSBrQ0NTdWNjZXNzKQogICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC0yODksMTUgKzI4OCwxNCBAQCBib29sIHVud3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkoY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBtYXN0ZXJLZXksIGNvbnN0IFZlY3Rvcjx1aQogICAgIHVpbnQ4
X3QgYWN0dWFsVGFnW3RhZ0xlbmd0aF07CiAKICAgICBrZXkucmVzaXplKGVuY3J5cHRlZEtleS5z
aXplKCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgc3RhdHVzID0gQ0NDcnlwdG9yR0NNKGtD
Q0RlY3J5cHQsIGtDQ0FsZ29yaXRobUFFUzEyOCwga2VrLmRhdGEoKSwga2VrLnNpemUoKSwKICAg
ICAgICAgbnVsbHB0ciwgMCwgLy8gaXYKICAgICAgICAgbnVsbHB0ciwgMCwgLy8gYXV0aCBkYXRh
CiAgICAgICAgIGVuY3J5cHRlZEtleS5kYXRhKCksIGVuY3J5cHRlZEtleS5zaXplKCksCiAgICAg
ICAgIGtleS5kYXRhKCksCiAgICAgICAgIGFjdHVhbFRhZywgJnRhZ0xlbmd0aCk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAKICAgICBpZiAoc3RhdHVzICE9IGtDQ1N1Y2Nlc3MpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFz
c0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5IGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2VT
ZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkKaW5kZXggYjM0
ZTYxN2IxNDZkMzI5ZmIxYmMzMmEwYmI3MGM3Y2JiYTQ5OTkxYS4uNDRmYWQzYTVjMmZmNzVlOTdj
NWQwMDkyNDNmMzc1NDk2NGYwNjExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21h
a2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0
eUVsZW1lbnRNYXAucHkKQEAgLTk0LDExICs5NCw3IEBAIG91dHB1dF9maWxlLndyaXRlKCIiIgog
CiAjaW5jbHVkZSAiQ1NTUGFyc2VyU2VsZWN0b3IuaCIKIAotI2lmIGRlZmluZWQoX19jbGFuZ19f
KQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIgotI2VuZGlmCitJR05PUkVfV0FSTklOR19C
RUdJTigiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIpCiAKIC8vIE9sZGVyIHZlcnNpb25zIG9mIGdw
ZXJmIGxpa2UgdG8gdXNlIHRoZSBgcmVnaXN0ZXJgIGtleXdvcmQuCiAjZGVmaW5lIHJlZ2lzdGVy
CkBAIC0yMDMsOSArMTk5LDcgQEAgUHNldWRvQ2xhc3NPckNvbXBhdGliaWxpdHlQc2V1ZG9FbGVt
ZW50IHBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFMKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0VORAogCiAiIiIpCiBvdXRwdXRf
ZmlsZS5jbG9zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9y
UHNldWRvRWxlbWVudHNNYXAucHkgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNl
dWRvRWxlbWVudHNNYXAucHkKaW5kZXggMjAxODI2ZWQ1MTM4OTRkNGZmN2YzYWYwNTEzYWQ3MjM4
NjkyYWY4OC4uZWMyMGIxMGZkYmE4MGZlODllMGFiYjEzMGMyMmMyNDY2MzgwOWVlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0VsZW1lbnRzTWFwLnB5
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5w
eQpAQCAtOTIsMTEgKzkyLDcgQEAgb3V0cHV0X2ZpbGUud3JpdGUoIiIiCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmgiCiAKLSNpZiBkZWZpbmVk
KF9fY2xhbmdfXykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIKLSNlbmRpZgorSUdOT1JF
X1dBUk5JTkdfQkVHSU4oIi1XaW1wbGljaXQtZmFsbHRocm91Z2giKQogCiAvLyBPbGRlciB2ZXJz
aW9ucyBvZiBncGVyZiBsaWtlIHRvIHVzZSB0aGUgYHJlZ2lzdGVyYCBrZXl3b3JkLgogI2RlZmlu
ZSByZWdpc3RlcgpAQCAtMTk4LDkgKzE5NCw3IEBAIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50
VHlwZSBwYXJzZVBzZXVkb0VsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nSW1wbCYgcHNldWRvCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2lmIGRlZmluZWQoX19jbGFuZ19fKQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitJR05PUkVfV0FSTklOR19FTkQKIAogIiIi
KQogb3V0cHV0X2ZpbGUuY2xvc2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0SXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3Iu
Y3BwCmluZGV4IGIyOGQ4NDZmNjg3NjI4YzNjMDMwZjQ3MjljNmFjMjUxMDI1NTIyMjcuLjUzYTBm
MmE4MTU1YzlmNjVhYjUxZGZiZjljYmQ0ZmY2YjdlODAxYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRJdGVyYXRvci5jcHAKQEAgLTIwMTEsMTAgKzIwMTEsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgY29udGFpbnNLYW5hTGV0dGVycyhjb25zdCBTdHJpbmcmIHBhdHRlcm4pCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAvLyBOT1RFOiBJQ1UncyB1bm9ybV9ub3JtYWxpemUgZnVuY3Rpb24gaXMgZGVwcmVj
YXRlZC4KIAogc3RhdGljIHZvaWQgbm9ybWFsaXplQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hh
cmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBWZWN0b3I8VUNoYXI+JiBidWZmZXIpCkBAIC0yMDM4
LDkgKzIwMzUsNyBAQCBzdGF0aWMgdm9pZCBub3JtYWxpemVDaGFyYWN0ZXJzKGNvbnN0IFVDaGFy
KiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIFZlY3RvcgogICAgIEFTU0VSVChzdGF0dXMg
PT0gVV9TVFJJTkdfTk9UX1RFUk1JTkFURURfV0FSTklORyk7CiB9CiAKLSNpZiBDT01QSUxFUihH
Q0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogc3RhdGljIGJvb2wgaXNOb25MYXRpbjFTZXBh
cmF0b3IoVUNoYXIzMiBjaGFyYWN0ZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hYy9FZGl0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0
b3JNYWMubW0KaW5kZXggY2YyODliZjcwZTQwMDAzNjc2NzgwOGQxYTE2OTlmNjgyMzdhYWMwMC4u
MDJhYjVhZmUwODcwZTYzYzM4MmQzMzE3MDYxZjVkMjM3ZjVlYWM3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQpAQCAtODEsMTEgKzgxLDEwIEBAIHZvaWQgRWRpdG9y
OjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIGJvb2wgYWxsb3dQ
bGFpblRleHQsIE1hCiB7CiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IHNlbGVjdGVkUmFuZ2Uo
KTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8gRklYTUU6IEhvdyBjYW4gdGhpcyBoYXJk
LWNvZGVkIHBhc3RlYm9hcmQgbmFtZSBiZSByaWdodCwgZ2l2ZW4gdGhhdCB0aGUgcGFzc2VkLWlu
IHBhc3RlYm9hcmQgaGFzIGEgbmFtZT8KICAgICBjbGllbnQoKS0+c2V0SW5zZXJ0aW9uUGFzdGVi
b2FyZChOU0dlbmVyYWxQYm9hcmQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgYm9vbCBjaG9zZVBsYWlu
VGV4dDsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSB3ZWJDb250ZW50
RnJvbVBhc3RlYm9hcmQoKnBhc3RlYm9hcmQsICpyYW5nZSwgYWxsb3dQbGFpblRleHQsIGNob3Nl
UGxhaW5UZXh0KTsKQEAgLTExMSwxMSArMTEwLDEwIEBAIHZvaWQgRWRpdG9yOjp0YWtlRmluZFN0
cmluZ0Zyb21TZWxlY3Rpb24oKQogCiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CiAgICAgdHlw
ZXMuYXBwZW5kKFN0cmluZyhsZWdhY3lTdHJpbmdQYXN0ZWJvYXJkVHlwZSgpKSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5
KCktPnNldFR5cGVzKHR5cGVzLCBOU0ZpbmRQYm9hcmQpOwogICAgIHBsYXRmb3JtU3RyYXRlZ2ll
cygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0U3RyaW5nRm9yVHlwZShtX2ZyYW1lLmRpc3Bs
YXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmcoc2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyKCkp
LCBsZWdhY3lTdHJpbmdQYXN0ZWJvYXJkVHlwZSgpLCBOU0ZpbmRQYm9hcmQpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogfQogCiB2b2lkIEVkaXRvcjo6cmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVv
dGVIYW5kbGluZykKQEAgLTE2OSwxMSArMTY3LDEwIEBAIHZvaWQgRWRpdG9yOjpyZXBsYWNlTm9k
ZUZyb21QYXN0ZWJvYXJkKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUp
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIEZJ
WE1FOiBIb3cgY2FuIHRoaXMgaGFyZC1jb2RlZCBwYXN0ZWJvYXJkIG5hbWUgYmUgcmlnaHQsIGdp
dmVuIHRoYXQgdGhlIHBhc3NlZC1pbiBwYXN0ZWJvYXJkIGhhcyBhIG5hbWU/CiAgICAgY2xpZW50
KCktPnNldEluc2VydGlvblBhc3RlYm9hcmQoTlNHZW5lcmFsUGJvYXJkKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
IAogICAgIGJvb2wgY2hvc2VQbGFpblRleHQ7CiAgICAgaWYgKFJlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBmcmFnbWVudCA9IHdlYkNvbnRlbnRGcm9tUGFzdGVib2FyZChwYXN0ZWJvYXJkLCAqcmFu
Z2UsIHRydWUsIGNob3NlUGxhaW5UZXh0KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZl
bnRIYW5kbGVyTWFjLm1tCmluZGV4IGEyNjQzMGNmMjUyNGFkMjA0ZDYxMzc5YTBlZDBiMDA5OTY1
NmI5MWQuLmViMDNhNzk1NjYyNTdmMGExMWY4NTJlOTc2MjRlOTU2YzMxYTU3NGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAgLTYxMiwxMCArNjEyLDkg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhO
U0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgIC8vIG5vIHVwLXRvLWRhdGUgY2FjaGUg
b2YgdGhlbSBhbnl3aGVyZS4KICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVu
dFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbG9jYXRpb246W1t2aWV3LT5wbGF0Zm9ybVdpZGdldCgpIHdpbmRvd10K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVy
dFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdFdmVudCBt
b2RpZmllckZsYWdzXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1l
c3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBdCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbaW5pdGlhdGluZ0V2ZW50IHdpbmRvd051bWJlcl0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyLm1tCmluZGV4IDUyZGI5OWUwZjllNTdmM2JhMzU4ZGY4NWYwNzFkYjc4NTI4NGJjMGYuLjlj
NDRiODZlZWQ3YjViZmYwZmQ2ZWI2OTY3NTExNmZkOWFiNThhODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQpAQCAtMTMy
LDEwICsxMzIsOSBAQCB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6
cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgRwogCiAgICAgQ0dDb250ZXh0UmVm
IGNnQ29udGV4dCA9IGdyYXBoaWNzQ29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKTsKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgQ0dMYXllclJlZiBoaWdobGlnaHRMYXllciA9IERESGlnaGxpZ2h0
R2V0TGF5ZXJXaXRoQ29udGV4dChkZEhpZ2hsaWdodCgpLCBjZ0NvbnRleHQpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogICAgIENHUmVjdCBoaWdobGlnaHRCb3VuZGluZ1JlY3QgPSBEREhpZ2hsaWdodEdldEJvdW5k
aW5nUmVjdChkZEhpZ2hsaWdodCgpKTsKICAgICBoaWdobGlnaHRCb3VuZGluZ1JlY3Qub3JpZ2lu
ID0gQ0dQb2ludFplcm87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5jcHAKaW5kZXggYjA1NTBjZjUzMDVlODYzNWRiNGQ1YTgyZTg5NjZmMDhmMDJhNzUwYi4u
NDJiYTE0NWY2NGM3Yjk3NWMyZTFjNDZlMmExNTJiNjY1MzE2NTViMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTU0LDE0ICs1NCw5IEBAIFN0
cmluZyBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoU3RyaW5nIGZvcm1hdCwgLi4uKQogICAgIHZhX2xp
c3QgYXJndW1lbnRzOwogICAgIHZhX3N0YXJ0KGFyZ3VtZW50cywgZm9ybWF0KTsKIAotI2lmIENP
TVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2VuZGlmCisgICAg
QUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVHSU4KICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0Q0Yo
Q0ZTdHJpbmdDcmVhdGVXaXRoRm9ybWF0QW5kQXJndW1lbnRzKDAsIDAsIGZvcm1hdC5jcmVhdGVD
RlN0cmluZygpLmdldCgpLCBhcmd1bWVudHMpKTsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9S
TUFUX0VORAogCiAgICAgdmFfZW5kKGFyZ3VtZW50cyk7CiAgICAgcmV0dXJuIHJlc3VsdC5nZXQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaAppbmRleCA0MWE1
MGIyMTNmZGUwOGQzN2ZkYmFhY2JiYzk2YjYxYWM4NzMxMzVjLi4zOTY1NWY2MTQ3YmFlMmZkMjJl
ZDBjY2E4MGZhOWM2MWFjN2NkODgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JlZW5Qcm9wZXJ0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVu
UHJvcGVydGllcy5oCkBAIC0xOTUsMTAgKzE5NSw5IEBAIHN0ZDo6b3B0aW9uYWw8U2NyZWVuRGF0
YT4gU2NyZWVuRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAKICAgICAgICAgYXV0byBj
b2xvclNwYWNlRGF0YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IGljY0RhdGEtPmRhdGEoKSwgaWNjRGF0YS0+c2l6ZSgpKSk7CiAgICAgICAgIC8vIEZJWE1FOiA8
aHR0cDovL3dlYmtpdC5vcmcvYi8xODQzNTg+IFdlIHNob3VsZCBzd2l0Y2ggdG8gQ0dDb2xvclNw
YWNlQ3JlYXRlSUNDQmFzZWQuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGNnQ29s
b3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aElDQ1Byb2ZpbGUoY29sb3JT
cGFjZURhdGEuZ2V0KCkpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIGJyZWFrOwogICAgIH0K
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9I
SURHYW1lcGFkUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9t
YWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcAppbmRleCBiNmNlNjk2MjA1MTA3YmQyMmU5NGZjNDM1
ZDg3MDFlMGY4M2VlNjJlLi5mMWJiOGI1NDM2YTUxODJiOTNhY2MwZjY1OTUwMDI0YjdkYTk3ZmM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1l
cGFkUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFj
L0hJREdhbWVwYWRQcm92aWRlci5jcHAKQEAgLTEwMywxMCArMTAzLDkgQEAgSElER2FtZXBhZFBy
b3ZpZGVyOjpISURHYW1lcGFkUHJvdmlkZXIoKQogCiB2b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6
c3RvcE1vbml0b3JpbmdJbnB1dCgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9ubnVsbCIKKyAgICBBTExPV19O
VUxMX0FSR1VNRU5UX0JFR0lOCiAgICAgSU9ISURNYW5hZ2VyUmVnaXN0ZXJJbnB1dFZhbHVlQ2Fs
bGJhY2sobV9tYW5hZ2VyLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19OVUxMX0FSR1VNRU5UX0VORAogfQogCiB2b2lkIEhJ
REdhbWVwYWRQcm92aWRlcjo6c3RhcnRNb25pdG9yaW5nSW5wdXQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKaW5kZXggNWYy
OWFmODVhOTQ4M2Q0NzYyZTk4N2IzMjA1YjgwZTE3YzNiYjE5Yy4uNDAzMGM5MzZkNGE5ZDUyMWZm
OGEwZjQ5ZmEwNWQ5YWUzOWJlODllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCkBAIC0xMTgsMTQgKzExOCw5IEBAIHN0
ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IFBsYXRmb3JtRGlzcGxheTo6Y3JlYXRlUGxh
dGZvcm1EaXNwbGF5KCkKIFBsYXRmb3JtRGlzcGxheSYgUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWRE
aXNwbGF5KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0jaWYgQ09N
UElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZXhpdC10aW1lLWRlc3RydWN0b3JzIgotI2VuZGlmCisg
ICAgSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1XZXhpdC10aW1lLWRlc3RydWN0b3JzIikK
ICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheT4gZGlzcGxheTsKLSNp
ZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgor
ICAgIElHTk9SRV9DTEFOR19XQVJOSU5HX0VORAogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFn
LCBbXXsKICAgICAgICAgZGlzcGxheSA9IGNyZWF0ZVBsYXRmb3JtRGlzcGxheSgpOwogICAgIH0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRl
UGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAKaW5kZXggNGQ1ZDgwODhhOTJj
ZTk3ZTljZDQ4MGJjNGM4ZWE1NjhiOGU2YTZiYS4uZTgyYmJmNmFhYzBiOWI5NTNmNzViZDI0MTI2
OThhOWQwOWUxY2EyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwCkBA
IC02OSwxMCArNjksNyBAQCBib29sIFN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvcjo6Y29u
c3VtZVNsb3dDYXNlKFVDaGFyMzImIGNoYXJhY3RlciwgdW5zaWduZQogICAgIHJldHVybiB0cnVl
OwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0jZW5kaWYKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAv
LyBOT1RFOiBJQ1UncyB1bm9ybV9ub3JtYWxpemUgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4KIAog
VUNoYXIzMiBTdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3I6Om5vcm1hbGl6ZVZvaWNpbmdN
YXJrcygpCkBAIC05NSw4ICs5Miw2IEBAIFVDaGFyMzIgU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0
ZXJhdG9yOjpub3JtYWxpemVWb2ljaW5nTWFya3MoKQogICAgIHJldHVybiAwOwogfQogCi0jaWYg
Q09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRp
ZgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlv
bkdyb3VwQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQppbmRleCBiMmMxZTk2NjM0YjNm
NTY0ZmZjMGM1YmQxNmIyOWVlNDJkODRmYTJjLi5mNzgyZDhiN2UwZmQ4OTdkMDJiYWE1YWQxZjc3
MzMxYWJiOWZhYmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3Jv
dXBBVkZPYmpDLm1tCkBAIC0xMjMsMTAgKzEyMyw5IEBAIHZvaWQgTWVkaWFTZWxlY3Rpb25Hcm91
cEFWRk9iakM6OnVwZGF0ZU9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGNoYXJhY3Rlcmlz
CiAKICAgICAgICAgbV9vcHRpb25zLnJlbW92ZSgoX19icmlkZ2UgQ0ZUeXBlUmVmKXJlbW92ZWRB
Vk9wdGlvbik7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQVZNZWRpYVNlbGVjdGlv
bk9wdGlvbiogc2VsZWN0ZWRPcHRpb24gPSBbbV9wbGF5ZXJJdGVtIHNlbGVjdGVkTWVkaWFPcHRp
b25Jbk1lZGlhU2VsZWN0aW9uR3JvdXA6bV9tZWRpYVNlbGVjdGlvbkdyb3VwLmdldCgpXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICAgICBmb3IgKEFWTWVkaWFTZWxlY3Rpb25PcHRpb24qIGFkZGVkQVZPcHRpb24g
aW4gYWRkZWRBVk9wdGlvbnMuZ2V0KCkpIHsKICAgICAgICAgYXV0byBhZGRlZE9wdGlvbiA9IE1l
ZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQzo6Y3JlYXRlKCp0aGlzLCBhZGRlZEFWT3B0aW9uKTsK
ICAgICAgICAgaWYgKGFkZGVkQVZPcHRpb24gPT0gc2VsZWN0ZWRPcHRpb24pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbQppbmRleCAy
NmFiMDI0ZDhiYzlmODJiZjdkNjU1NTkzNmRjNWViNWFhNGI1MDI4Li44NDM1MmQ3ZGUwNWU1NWRh
YjVmZDZmOWRlNDdmYWVlODZhY2QyZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0KQEAgLTE5OCwxMiArMTk4LDExIEBAIGJv
b2wgQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVm
UHRyPFVpbnQ4QXJyYXk+JiBuZXh0CiAKICAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4gY2VydGlm
aWNhdGVEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczptX2NlcnRp
ZmljYXRlLT5kYXRhKCkgbGVuZ3RoOm1fY2VydGlmaWNhdGUtPmxlbmd0aCgpXSk7CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdvYmpjLWxpdGVyYWwtY29udmVyc2lvbiIKKyAgICAgICAgSUdOT1JFX0NMQU5HX1dBUk5J
TkdfQkVHSU4oIi1Xb2JqYy1saXRlcmFsLWNvbnZlcnNpb24iKQogICAgICAgICBTdHJpbmcgc3Rv
cmFnZVBhdGggPSB0aGlzLT5zdG9yYWdlUGF0aCgpOwogICAgICAgICBpZiAoIXN0b3JhZ2VQYXRo
LmlzRW1wdHkoKSAmJiBbZ2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKHJlbW92ZVBlbmRpbmdFeHBpcmVkU2Vzc2lvblJlcG9ydHM6d2l0aEFwcElk
ZW50aWZpZXI6c3RvcmFnZURpcmVjdG9yeUF0VVJMOildKQogICAgICAgICAgICAgW2dldEFWU3Ry
ZWFtU2Vzc2lvbkNsYXNzKCkgcmVtb3ZlUGVuZGluZ0V4cGlyZWRTZXNzaW9uUmVwb3J0czpAW21f
ZXhwaXJlZFNlc3Npb24uZ2V0KCldIHdpdGhBcHBJZGVudGlmaWVyOmNlcnRpZmljYXRlRGF0YS5n
ZXQoKSBzdG9yYWdlRGlyZWN0b3J5QXRVUkw6W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpzdG9yYWdl
UGF0aF1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfQ0xB
TkdfV0FSTklOR19FTkQKICAgICAgICAgbV9leHBpcmVkU2Vzc2lvbiA9IG51bGxwdHI7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTI0MywxMCArMjQyLDkgQEAgYm9vbCBDRE1TZXNz
aW9uQVZTdHJlYW1TZXNzaW9uOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhB
cnJheT4mIG5leHQKICAgICAgICAgfQogCiAgICAgICAgIE5TRXJyb3IqIGVycm9yID0gbmlsOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiByZXF1ZXN0
ID0gW3Byb3RlY3RlZFNvdXJjZUJ1ZmZlci0+cGFyc2VyKCkgc3RyZWFtaW5nQ29udGVudEtleVJl
cXVlc3REYXRhRm9yQXBwOmNlcnRpZmljYXRlRGF0YS5nZXQoKSBjb250ZW50SWRlbnRpZmllcjpp
bml0RGF0YS5nZXQoKSB0cmFja0lEOnByb3RlY3RlZFNvdXJjZUJ1ZmZlci0+cHJvdGVjdGVkVHJh
Y2tJRCgpIG9wdGlvbnM6b3B0aW9ucy5nZXQoKSBlcnJvcjomZXJyb3JdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIAogICAgICAgICBpZiAoIVtwcm90ZWN0ZWRTb3VyY2VCdWZmZXItPnBhcnNlcigpIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoY29udGVudFByb3RlY3Rpb25TZXNzaW9uSWRlbnRpZmll
cildKQogICAgICAgICAgICAgbV9zZXNzaW9uSWQgPSBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5n
KCk7CkBAIC0yNzMsMTAgKzI3MSw5IEBAIGJvb2wgQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6
dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0CiAgICAgZXJy
b3JDb2RlID0gTWVkaWFQbGF5ZXI6Ok5vRXJyb3I7CiAgICAgc3lzdGVtQ29kZSA9IDA7CiAgICAg
UmV0YWluUHRyPE5TRGF0YT4ga2V5RGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRX
aXRoQnl0ZXM6a2V5LT5kYXRhKCkgbGVuZ3RoOmtleS0+bGVuZ3RoKCldKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIFtwcm90ZWN0ZWRTb3VyY2VCdWZmZXItPnBhcnNlcigpIHByb2Nlc3NDb250
ZW50S2V5UmVzcG9uc2VEYXRhOmtleURhdGEuZ2V0KCkgZm9yVHJhY2tJRDpwcm90ZWN0ZWRTb3Vy
Y2VCdWZmZXItPnByb3RlY3RlZFRyYWNrSUQoKV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICByZXR1cm4g
dHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRp
YVNvdXJjZUFWRk9iakMuaAppbmRleCBkMzI2ZjJmYTJmYjJiMWM2MGVkOWUzYjkzODhhYTU0NTlk
OWQ3NWUxLi4xN2QxZDkyZGYyNzIwZWUzZWE0OWQ1NjM3M2RhNTZiYzRjNWM5YTljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2Jq
Qy5oCkBAIC01NCwxMSArNTQsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQ0Vycm9yQ2xpZW50CiAgICAgdm9pZCBsYXllckRpZFJlY2VpdmVFcnJvcihBVlNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllciAqLCBOU0Vycm9yICosIGJvb2wmIHNob3VsZElnbm9yZSkg
b3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1df
TkVXX0FQSV9CRUdJTgogICAgIHZvaWQgcmVuZGVyZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVC
dWZmZXJBdWRpb1JlbmRlcmVyICosIE5TRXJyb3IgKiwgYm9vbCYgc2hvdWxkSWdub3JlKSBvdmVy
cmlkZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ORVdfQVBJX0VO
RAogCiAgICAgdm9pZCBhZGRTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMq
KTsKICAgICB2b2lkIHJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
QyopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZGMzZGVlYjNmNzkyMDkwZmIwNjcyN2Vm
NDQ3MzRhZDA4M2Q1MGY4Mi4uNDA3MWM2YjZlODhhZGI1Mjk5YWFiMTBjYmIwZjViMjE5ODNiMmYz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yNjk5LDEwICsyNjk5LDkgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRDdXJyZW50VGV4dFRyYWNrKElu
YmFuZFRleHRUcmFja1ByaXYKIAogICAgIGlmICh0cmFjaykgewogICAgICAgICBpZiAodHJhY2st
PnRleHRUcmFja0NhdGVnb3J5KCkgPT0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6TGVnYWN5
Q2xvc2VkQ2FwdGlvbikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBb
bV9hdlBsYXllci5nZXQoKSBzZXRDbG9zZWRDYXB0aW9uRGlzcGxheUVuYWJsZWQ6WUVTXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogI2lmIEhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9H
Uk9VUCkKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQogICAgICAgICBlbHNlIGlmICh0cmFjay0+
dGV4dFRyYWNrQ2F0ZWdvcnkoKSA9PSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpPdXRPZkJh
bmQpCkBAIC0yNzE1LDEwICsyNzE0LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpzZXRDdXJyZW50VGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXYKICNpZiBI
QVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiAgICAgICAgIFttX2F2UGxh
eWVySXRlbS5nZXQoKSBzZWxlY3RNZWRpYU9wdGlvbjowIGluTWVkaWFTZWxlY3Rpb25Hcm91cDpz
YWZlTWVkaWFTZWxlY3Rpb25Hcm91cEZvckxlZ2libGVNZWRpYSgpXTsKICNlbmRpZgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgICAgICBbbV9hdlBsYXllci5nZXQoKSBzZXRDbG9zZWRDYXB0
aW9uRGlzcGxheUVuYWJsZWQ6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiAKIH0KQEAgLTI3
MzQsMTAgKzI3MzIsOSBAQCBTdHJpbmcgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6bGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrKCkgY29uc3QKICNpZiBIQVZFKEFWRk9VTkRB
VElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiAgICAgLy8gSWYgQVZGb3VuZGF0aW9uIGhhcyBh
biBhdWRpYmxlIGdyb3VwLCByZXR1cm4gdGhlIGxhbmd1YWdlIG9mIHRoZSBjdXJyZW50bHkgc2Vs
ZWN0ZWQgYXVkaWJsZSBvcHRpb24uCiAgICAgQVZNZWRpYVNlbGVjdGlvbkdyb3VwVHlwZSAqYXVk
aWJsZUdyb3VwID0gW21fYXZBc3NldC5nZXQoKSBtZWRpYVNlbGVjdGlvbkdyb3VwRm9yTWVkaWFD
aGFyYWN0ZXJpc3RpYzpBVk1lZGlhQ2hhcmFjdGVyaXN0aWNBdWRpYmxlXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIEFWTWVkaWFTZWxlY3Rpb25PcHRpb25UeXBlICpjdXJyZW50bHlTZWxlY3Rl
ZEF1ZGlibGVPcHRpb24gPSBbbV9hdlBsYXllckl0ZW0uZ2V0KCkgc2VsZWN0ZWRNZWRpYU9wdGlv
bkluTWVkaWFTZWxlY3Rpb25Hcm91cDphdWRpYmxlR3JvdXBdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIGlm
IChjdXJyZW50bHlTZWxlY3RlZEF1ZGlibGVPcHRpb24pIHsKICAgICAgICAgbV9sYW5ndWFnZU9m
UHJpbWFyeUF1ZGlvVHJhY2sgPSBbW2N1cnJlbnRseVNlbGVjdGVkQXVkaWJsZU9wdGlvbiBsb2Nh
bGVdIGxvY2FsZUlkZW50aWZpZXJdOwogICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAi
bGFuZ3VhZ2Ugb2Ygc2VsZWN0ZWQgYXVkaWJsZSBvcHRpb24gIiwgbV9sYW5ndWFnZU9mUHJpbWFy
eUF1ZGlvVHJhY2spOwpAQCAtMzI0OCwxMCArMzI0NSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y2FuUGxheUZhc3RSZXZlcnNlRGlkQ2hhbmdlKGJvb2wgbmV3
VmFsCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNob3VsZERp
c2FibGVTbGVlcChib29sIGZsYWcpCiB7CiAjaWYgUExBVEZPUk0oSU9TKSAmJiAhUExBVEZPUk0o
SU9TX1NJTVVMQVRPUikgJiYgIVBMQVRGT1JNKElPU01BQykKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIFttX2F2UGxheWVyIF9zZXRQcmV2ZW50c1NsZWVwRHVyaW5nVmlkZW9QbGF5YmFjazpmbGFn
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGZsYWcpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IDA0NDRkOWFmMDU3M2Y1YjcyN2E2MzU5ZGI1ZGU0
NzFkYTgyN2FlZTMuLjk4MjMyMDg2ZDcxZDc1ODc0NGJkMmMwNDQ2OWI2MThkMjAzMTc2YjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC02OSwxMiArNjksMTAgQEAgcHVibGljOgogICAg
IHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJ
bnNlbnNpdGl2ZUhhc2g+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAgIEFMTE9XX05FV19BUElf
QkVHSU4KICAgICB2b2lkIGFkZEF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRl
cmVyKik7CiAgICAgdm9pZCByZW1vdmVBdWRpb1JlbmRlcmVyKEFWU2FtcGxlQnVmZmVyQXVkaW9S
ZW5kZXJlciopOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX05FV19B
UElfRU5ECiAKICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0ZSgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBj
b25zdCBvdmVycmlkZTsKQEAgLTg3LDExICs4NSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExv
YWRpbmdQcm9ncmVzc3NlZChib29sIGZsYWcpIHsgbV9sb2FkaW5nUHJvZ3Jlc3NlZCA9IGZsYWc7
IH0KICAgICB2b2lkIHNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoYm9vbCk7CiAgICAgYm9vbCBo
YXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93
bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVk
LWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9CRUdJTgogICAgIHZvaWQgc2V0
SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKiwgYm9v
bCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfTkVXX0FQSV9FTkQK
ICAgICBib29sIGFsbFJlbmRlcmVyc0hhdmVBdmFpbGFibGVTYW1wbGVzKCkgY29uc3QgeyByZXR1
cm4gbV9hbGxSZW5kZXJlcnNIYXZlQXZhaWxhYmxlU2FtcGxlczsgfQogICAgIHZvaWQgdXBkYXRl
QWxsUmVuZGVyZXJzSGF2ZUF2YWlsYWJsZVNhbXBsZXMoKTsKICAgICB2b2lkIGR1cmF0aW9uQ2hh
bmdlZCgpOwpAQCAtMjY3LDEyICsyNjMsMTAgQEAgcHJpdmF0ZToKICAgICBzdHJ1Y3QgQXVkaW9S
ZW5kZXJlclByb3BlcnRpZXMgewogICAgICAgICBib29sIGhhc0F1ZGlibGVTYW1wbGUgeyBmYWxz
ZSB9OwogICAgIH07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxM
T1dfTkVXX0FQSV9CRUdJTgogICAgIEhhc2hNYXA8UmV0YWluUHRyPENGVHlwZVJlZj4sIEF1ZGlv
UmVuZGVyZXJQcm9wZXJ0aWVzPiBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXA7CiAgICAg
UmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyPiBtX3N5bmNocm9uaXpl
cjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ORVdfQVBJX0VORAog
ICAgIFJldGFpblB0cjxpZD4gbV90aW1lSnVtcGVkT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPGlk
PiBtX2R1cmF0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPEFWU3RyZWFtU2Vzc2lvbj4gbV9z
dHJlYW1TZXNzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDk2OGZjNWEwODdm
MzExZDg4YjIzOWU2NzY5NDg5NDkyMTNiNGNiYTYuLjFjMTk3YWM1ZWU5MDJjMzcxY2ZiN2Y5OTg5
ZWEzM2U4ZWMyMWI0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTYyLDE3ICs2
MiwxMyBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAogU09G
VF9MSU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZBc3NldCkKIFNPRlRfTElOS19D
TEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXQpCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93
bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVk
LWF2YWlsYWJpbGl0eS1uZXciCitBTExPV19ORVdfQVBJX0JFR0lOCiBTT0ZUX0xJTktfQ0xBU1Nf
T1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIpCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ORVdfQVBJX0VORAogU09GVF9MSU5LX0NM
QVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitBTExPV19ORVdfQVBJX0JFR0lOCiBT
T0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1ZmZlclJlbmRl
clN5bmNocm9uaXplcikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19B
UElfRU5ECiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbURh
dGFQYXJzZXIpCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVh
bVNlc3Npb24pOwogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZWaWRl
b1BlcmZvcm1hbmNlTWV0cmljcykKQEAgLTc3MywxMSArNzY5LDkgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoYm9v
bCBmbGFnKQogICAgIH0KIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3Igor
QUxMT1dfTkVXX0FQSV9CRUdJTgogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxlKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5k
ZXJlciogcmVuZGVyZXIsIGJvb2wgZmxhZykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
K0FMTE9XX05FV19BUElfRU5ECiB7CiAgICAgYXV0byBpdGVyID0gbV9zYW1wbGVCdWZmZXJBdWRp
b1JlbmRlcmVyTWFwLmZpbmQoKF9fYnJpZGdlIENGVHlwZVJlZilyZW5kZXJlcik7CiAgICAgaWYg
KGl0ZXIgPT0gbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmVuZCgpKQpAQCAtMTAxNywx
MSArMTAxMSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpz
ZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTCiAgICAgbV9wbGF5ZXItPm5ldHdv
cmtTdGF0ZUNoYW5nZWQoKTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3
IgorQUxMT1dfTkVXX0FQSV9CRUdJTgogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OmFkZEF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKiBh
dWRpb1JlbmRlcmVyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfTkVXX0FQ
SV9FTkQKIHsKICAgICBpZiAoIW1fc2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlck1hcC5hZGQoKF9f
YnJpZGdlIENGVHlwZVJlZilhdWRpb1JlbmRlcmVyLCBBdWRpb1JlbmRlcmVyUHJvcGVydGllcygp
KS5pc05ld0VudHJ5KQogICAgICAgICByZXR1cm47CkBAIC0xMDM0LDExICsxMDI2LDkgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmFkZEF1ZGlvUmVuZGVyZXIo
QVZTYW1wbGVCdWZmZXJBdWRpb1IKICAgICBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJS
ZW5kZXJpbmdNb2RlQ2hhbmdlZChtX3BsYXllcik7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXBy
YWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZh
aWxhYmlsaXR5LW5ldyIKK0FMTE9XX05FV19BUElfQkVHSU4KIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZW1vdmVBdWRpb1JlbmRlcmVyKEFWU2FtcGxlQnVmZmVy
QXVkaW9SZW5kZXJlciogYXVkaW9SZW5kZXJlcikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKK0FMTE9XX05FV19BUElfRU5ECiB7CiAgICAgYXV0byBpdGVyID0gbV9zYW1wbGVCdWZmZXJB
dWRpb1JlbmRlcmVyTWFwLmZpbmQoKF9fYnJpZGdlIENGVHlwZVJlZilhdWRpb1JlbmRlcmVyKTsK
ICAgICBpZiAoaXRlciA9PSBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXAuZW5kKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
aAppbmRleCAwMTljZjM3YjZiYmRhYWM0YzRlYmZlYTNmOTg0YjJhYmQ5YmYxM2ExLi5mMmY4MzNm
NmQ0MGYxZjEyYjZjYTc0OTc1MmYwMjhkZWQyZmMxNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKQEAgLTcwLDExICs3MCw5
IEBAIGNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDRXJyb3JDbGllbnQgewogcHVibGlj
OgogICAgIHZpcnR1YWwgflNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDRXJyb3JDbGllbnQoKSA9
IGRlZmF1bHQ7CiAgICAgdmlydHVhbCB2b2lkIGxheWVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyICosIE5TRXJyb3IgKiwgYm9vbCYgc2hvdWxkSWdub3JlKSA9IDA7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9C
RUdJTgogICAgIHZpcnR1YWwgdm9pZCByZW5kZXJlckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1
ZmZlckF1ZGlvUmVuZGVyZXIgKiwgTlNFcnJvciAqLCBib29sJiBzaG91bGRJZ25vcmUpID0gMDsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ORVdfQVBJX0VORAogfTsK
IAogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMgZmluYWwgOiBwdWJsaWMgU291cmNl
QnVmZmVyUHJpdmF0ZSB7CkBAIC0xMTcsMTEgKzExNSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHVu
cmVnaXN0ZXJGb3JFcnJvck5vdGlmaWNhdGlvbnMoU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakNF
cnJvckNsaWVudCopOwogICAgIHZvaWQgbGF5ZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIgKiwgTlNFcnJvciAqKTsKICAgICB2b2lkIG91dHB1dE9ic2N1cmVkRHVl
VG9JbnN1ZmZpY2llbnRFeHRlcm5hbFByb3RlY3Rpb25DaGFuZ2VkKGJvb2wpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vu
Z3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAgIEFMTE9XX05FV19BUElfQkVHSU4KICAgICB2
b2lkIHJlbmRlcmVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAq
LCBOU0Vycm9yICopOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX05F
V19BUElfRU5ECiAKICAgICB2b2lkIHNldFZpZGVvTGF5ZXIoQVZTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIqKTsKICAgICB2b2lkIHNldERlY29tcHJlc3Npb25TZXNzaW9uKFdlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbiopOwpAQCAtMTUyLDExICsxNDgsOSBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGVzdHJveVJlbmRlcmVycygpOwogCiAgICAgdm9pZCBmbHVzaFZpZGVvKCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
dW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5n
dWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9CRUdJTgogICAgIHZv
aWQgZmx1c2goQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICopOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIEFMTE9XX05FV19BUElfRU5ECiAKICAgICBXZWFrUHRyPFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCkBAIC0xNzAsMTEgKzE2NCw5IEBAIHByaXZh
dGU6CiAgICAgUmV0YWluUHRyPEFWU3RyZWFtRGF0YVBhcnNlcj4gbV9wYXJzZXI7CiAgICAgUmV0
YWluUHRyPEFWQXNzZXQ+IG1fYXNzZXQ7CiAgICAgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyPiBtX2Rpc3BsYXlMYXllcjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5
LW5ldyIKKyAgICBBTExPV19ORVdfQVBJX0JFR0lOCiAgICAgSGFzaE1hcDxpbnQsIFJldGFpblB0
cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+PiBtX2F1ZGlvUmVuZGVyZXJzOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX05FV19BUElfRU5ECiAgICAgUmV0YWlu
UHRyPFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyPiBtX2RlbGVnYXRlOwogICAgIFJldGFp
blB0cjxXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVuZXI+IG1fZXJyb3JMaXN0ZW5lcjsKICAg
ICBSZXRhaW5QdHI8TlNFcnJvcj4gbV9oZGNwRXJyb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IGRjOTM0NzhlZTM1
YjMwOWZiZThmMWQyNWZlMzUxMjk2NWZlMDY2ZjUuLmNlZWM2MDM2ZDE4Mjg4Mjg5MTZkMjBkYzIx
ZDU2MmJlZDllOWZiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC02OCwxMSArNjgsOSBAQCBTT0ZUX0xJTktfRlJB
TUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRh
dGlvbiwgQVZBc3NldFRyYWNrKQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZTdHJl
YW1EYXRhUGFyc2VyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxMT1df
TkVXX0FQSV9CRUdJTgogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZm
ZXJBdWRpb1JlbmRlcmVyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfTkVX
X0FQSV9FTkQKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyKQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZTdHJlYW1TZXNzaW9u
KQogCkBAIC0yNDMsMjMgKzI0MSwxOSBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQVZGb3VuZGF0aW9u
LCBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckZhaWxlZFRvRGVjb2RlTm90aWZpYwogQGludGVy
ZmFjZSBXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVuZXIgOiBOU09iamVjdCB7CiAgICAgV2Vi
Q29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIF9wYXJlbnQ7CiAgICAgVmVjdG9yPFJl
dGFpblB0cjxBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4+IF9sYXllcnM7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
dW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5n
dWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9CRUdJTgogICAgIFZl
Y3RvcjxSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyPj4gX3JlbmRlcmVyczsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ORVdfQVBJX0VORAogfQog
CiAtIChpZClpbml0V2l0aFBhcmVudDooV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMqKXBhcmVudDsKIC0gKHZvaWQpaW52YWxpZGF0ZTsKIC0gKHZvaWQpYmVnaW5PYnNlcnZpbmdM
YXllcjooQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgKilsYXllcjsKIC0gKHZvaWQpc3RvcE9i
c2VydmluZ0xheWVyOihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciAqKWxheWVyOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9CRUdJTgogLSAodm9p
ZCliZWdpbk9ic2VydmluZ1JlbmRlcmVyOihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKily
ZW5kZXJlcjsKIC0gKHZvaWQpc3RvcE9ic2VydmluZ1JlbmRlcmVyOihBVlNhbXBsZUJ1ZmZlckF1
ZGlvUmVuZGVyZXIgKilyZW5kZXJlcjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FM
TE9XX05FV19BUElfRU5ECiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJBVlNhbXBsZUJ1ZmZl
ckVycm9yTGlzdGVuZXIKQEAgLTMyMiwxMiArMzE2LDEwIEBAIFNPRlRfTElOS19DT05TVEFOVChB
VkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyRmFpbGVkVG9EZWNvZGVOb3Rp
ZmljCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNl
cnZlcjpzZWxmIG5hbWU6QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJGYWlsZWRUb0RlY29kZU5v
dGlmaWNhdGlvbiBvYmplY3Q6bGF5ZXJdOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFz
IgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJp
bGl0eS1uZXciCitBTExPV19ORVdfQVBJX0JFR0lOCiAtICh2b2lkKWJlZ2luT2JzZXJ2aW5nUmVu
ZGVyZXI6KEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciopcmVuZGVyZXIKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19BUElfRU5ECiAgICAgQVNTRVJUKF9wYXJl
bnQpOwogICAgIEFTU0VSVCghX3JlbmRlcmVycy5jb250YWlucyhyZW5kZXJlcikpOwogCkBAIC0z
MzUsMTEgKzMyNyw5IEBAIFNPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljCiAgICAgW3JlbmRlcmVyIGFk
ZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImVycm9yIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNl
cnZpbmdPcHRpb25OZXcgY29udGV4dDpudWxscHRyXTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24t
cHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1h
dmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9CRUdJTgogLSAodm9pZClzdG9wT2JzZXJ2
aW5nUmVuZGVyZXI6KEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciopcmVuZGVyZXIKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19BUElfRU5ECiB7CiAgICAgQVNTRVJU
KF9wYXJlbnQpOwogICAgIEFTU0VSVChfcmVuZGVyZXJzLmNvbnRhaW5zKHJlbmRlcmVyKSk7CkBA
IC0zNzIsMTEgKzM2Miw5IEBAIFNPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljCiAgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKIAogICAgIH0gZWxzZSBpZiAoW29iamVjdCBpc0tpbmRPZkNs
YXNzOmdldEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCldKSB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
dW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5n
dWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgICAgIEFMTE9XX05FV19BUElfQkVHSU4KICAg
ICAgICAgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlcj4gcmVuZGVyZXIgPSAo
QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICopb2JqZWN0OwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgICAgICBBTExPV19ORVdfQVBJX0VORAogICAgICAgICBSZXRhaW5QdHI8
TlNFcnJvcj4gZXJyb3IgPSBbY2hhbmdlIHZhbHVlRm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VOZXdL
ZXldOwogCiAgICAgICAgIEFTU0VSVChfcmVuZGVyZXJzLmNvbnRhaW5zKHJlbmRlcmVyLmdldCgp
KSk7CkBAIC04NTIsMjEgKzg0MCwxNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
Ojp0cmFja0RpZENoYW5nZUVuYWJsZWQoQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdQogICAgIGlu
dCB0cmFja0lEID0gdHJhY2stPnRyYWNrSUQoKTsKIAogICAgIGlmICghdHJhY2stPmVuYWJsZWQo
KSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAgICAgICBBTExPV19O
RVdfQVBJX0JFR0lOCiAgICAgICAgIFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVy
ZXI+IHJlbmRlcmVyID0gbV9hdWRpb1JlbmRlcmVycy5nZXQodHJhY2tJRCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX05FV19BUElfRU5ECiAgICAgICAgIFtt
X3BhcnNlciBzZXRTaG91bGRQcm92aWRlTWVkaWFEYXRhOk5PIGZvclRyYWNrSUQ6dHJhY2tJRF07
CiAgICAgICAgIGlmIChtX21lZGlhU291cmNlKQogICAgICAgICAgICAgbV9tZWRpYVNvdXJjZS0+
cGxheWVyKCktPnJlbW92ZUF1ZGlvUmVuZGVyZXIocmVuZGVyZXIuZ2V0KCkpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIFttX3BhcnNlciBzZXRTaG91bGRQcm92aWRlTWVkaWFEYXRhOllFUyBmb3JU
cmFja0lEOnRyYWNrSURdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAg
ICAgICBBTExPV19ORVdfQVBJX0JFR0lOCiAgICAgICAgIFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZl
ckF1ZGlvUmVuZGVyZXI+IHJlbmRlcmVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgICAgICBBTExPV19ORVdfQVBJX0VORAogICAgICAgICBpZiAoIW1fYXVkaW9SZW5kZXJlcnMu
Y29udGFpbnModHJhY2tJRCkpIHsKICAgICAgICAgICAgIHJlbmRlcmVyID0gYWRvcHROUyhbYWxs
b2NBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJJbnN0YW5jZSgpIGluaXRdKTsKICAgICAgICAg
ICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CkBAIC05OTcsMTEgKzk4MSw5IEBA
IHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om91dHB1dE9ic2N1cmVkRHVlVG9JbnN1
ZmZpY2llbnRFeHRlcm5hbFByb3RlY3RpCiAgICAgbGF5ZXJEaWRSZWNlaXZlRXJyb3IobV9kaXNw
bGF5TGF5ZXIuZ2V0KCksIGVycm9yLmdldCgpKTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJh
Z21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFp
bGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9CRUdJTgogdm9pZCBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQzo6cmVuZGVyZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJBdWRpb1Jl
bmRlcmVyICpyZW5kZXJlciwgTlNFcnJvciAqZXJyb3IpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCitBTExPV19ORVdfQVBJX0VORAogewogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlckRpZFJlY2VpdmVFcnJvciglcCk6IHJlbmRl
cmVyKCVwKSwgZXJyb3IoJUApIiwgdGhpcywgcmVuZGVyZXIsIFtlcnJvciBkZXNjcmlwdGlvbl0p
OwogCkBAIC0xMDUwLDExICsxMDMyLDkgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6Zmx1c2hWaWRlbygpCiAgICAgfQogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0
eS1uZXciCitBTExPV19ORVdfQVBJX0JFR0lOCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjpmbHVzaChBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKnJlbmRlcmVyKQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfTkVXX0FQSV9FTkQKIHsKICAgICBbcmVuZGVy
ZXIgZmx1c2hdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1tCmluZGV4IGRmMDQx
MDNjNzFhOTg5NjRlOWYyOWZlMTk4MWIzNjIxNThhNmJkOTkuLmZiMmFhMWU0MTVhODMzYzUxZmMw
ZWM4NDYyM2FkZTk3ZmQ1MjFiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1t
CkBAIC0xMTUwLDEwICsxMTUwLDkgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXI6OmRyYXdMYXllckNv
bnRlbnRzKENHQ29udGV4dFJlZiBjb250ZXh0LCBXZWJDb3JlOjpQbGF0Zm9ybUMKICAgICAKICAg
ICAvLyBTZXQgdXAgYW4gTlNHcmFwaGljc0NvbnRleHQgZm9yIHRoZSBjb250ZXh0LCBzbyB0aGF0
IHBhcnRzIG9mIEFwcEtpdCB0aGF0IHJlbHkgb24KICAgICAvLyB0aGUgY3VycmVudCBOU0dyYXBo
aWNzQ29udGV4dCAoZS5nLiBOU0NlbGwgZHJhd2luZykgZ2V0IHRoZSByaWdodCBvbmUuCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICBOU0dyYXBoaWNzQ29udGV4dCogbGF5ZXJDb250ZXh0ID0gW05T
R3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Y29udGV4dCBm
bGlwcGVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJl
bnRDb250ZXh0OmxheWVyQ29udGV4dF07CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1
enpORy5jcHAKaW5kZXggZWY4NDNhMDYxZTljMGM4MjY3MTYzNDg5ZGNmYWEzNjViMGY3NTc5ZS4u
OWVmZTZmNTg3YzcyNGQzZjBkOGUxZmRmMjc5MjRjNGUyNGU3MzI4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJv
SGFyZmJ1enpORy5jcHAKQEAgLTQ5LDE0ICs0OSw5IEBAIGNvbnN0IEZvbnQqIEZvbnRDYXNjYWRl
Ojpmb250Rm9yQ29tYmluaW5nQ2hhcmFjdGVyU2VxdWVuY2UoY29uc3QgVUNoYXIqIGNoYXJhY3Rl
CiB7CiAgICAgVUVycm9yQ29kZSBlcnJvciA9IFVfWkVST19FUlJPUjsKICAgICBWZWN0b3I8VUNo
YXIsIDQ+IG5vcm1hbGl6ZWRDaGFyYWN0ZXJzKGxlbmd0aCk7Ci0jaWYgQ09NUElMRVIoR0NDX09S
X0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGludDMyX3Qgbm9ybWFsaXplZExl
bmd0aCA9IHVub3JtX25vcm1hbGl6ZShjaGFyYWN0ZXJzLCBsZW5ndGgsIFVOT1JNX05GQywgVU5P
Uk1fVU5JQ09ERV8zXzIsIG5vcm1hbGl6ZWRDaGFyYWN0ZXJzLmRhdGEoKSwgbGVuZ3RoLCAmZXJy
b3IpOwotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cG9wCi0jZW5kaWYKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBp
ZiAoVV9GQUlMVVJFKGVycm9yKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlRGVjb2RlckNHLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlRGVjb2RlckNHLmNw
cAppbmRleCBiN2Q1OTJhOWM4YTI1ZDcwZDM3ZjUxOWY1MTM3YzQyZDNhMzMxYWVlLi44YjYxZTZj
NzZmOTljMzYxNGQ0YTMwYmU2YTBmY2MxZDBjYzQyODE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZURlY29kZXJDRy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VEZWNvZGVyQ0cuY3BwCkBAIC00MjMs
MTQgKzQyMyw5IEBAIE5hdGl2ZUltYWdlUHRyIEltYWdlRGVjb2RlckNHOjpjcmVhdGVGcmFtZUlt
YWdlQXRJbmRleChzaXplX3QgaW5kZXgsIFN1YnNhbXBsaW5nCiAgICAgLy8gd2hpY2ggY2F1c2Vk
IGEgcGVyZm9ybWFuY2UgcmVncmVzc2lvbiBmb3IgdXMgc2luY2UgdGhlIGltYWdlcyBoYWQgdG8g
YmUgcmVzYW1wbGVkL3JlY3JlYXRlZCBldmVyeSB0aW1lIHdlIGNhbGxlZAogICAgIC8vIENHQ29u
dGV4dERyYXdJbWFnZS4gV2Ugbm93IHRlbGwgQ0cgdG8gY2FjaGUgdGhlIGRyYXduIGltYWdlcy4g
U2VlIGFsc28gPHJkYXI6Ly9wcm9ibGVtLzE0MzY2NzU1PiAtCiAgICAgLy8gQ29yZUdyYXBoaWNz
IG5lZWRzIHRvIHVuLWRlcHJlY2F0ZSBrQ0dJbWFnZUNhY2hpbmdUZW1wb3Jhcnkgc2luY2UgaXQn
cyBzdGlsbCBub3QgdGhlIGRlZmF1bHQuCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIENHSW1hZ2VTZXRDYWNoaW5nRmxhZ3MoaW1hZ2UuZ2V0KCks
IGtDR0ltYWdlQ2FjaGluZ1RlbXBvcmFyeSk7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAgICAgCiAgICAgU3RyaW5nIHV0
aSA9IHRoaXMtPnV0aSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViR0xMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvV2ViR0xMYXllci5oCmluZGV4IGQ2YjllMTA1YjdhOTcyYzUyZWNlZmFkYjFjNWQ1
NWNiNmY4NDQ5MjkuLjYwOTIyMmE5N2IyZjRlZWYxZDAxY2M5MmJmMTI2ZThmMzI3YTZiOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExh
eWVyLmgKQEAgLTM0LDggKzM0LDcgQEAgY2xhc3MgR3JhcGhpY3NMYXllcjsKIGNsYXNzIEdyYXBo
aWNzQ29udGV4dDNEOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiAjaWYgVVNFKE9QRU5HTCkKIEBp
bnRlcmZhY2UgV2ViR0xMYXllciA6IENBTGF5ZXIKQEAgLTY3LDQgKzY2LDQgQEAgY2xhc3MgR3Jh
cGhpY3NDb250ZXh0M0Q7CiAKIEBlbmQKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250
cm9sbGVyQ29yZVRleHQubW0KaW5kZXggZTg5MDFiYzEzYWRhNDA1MjMyZDBkM2ZmNDQ1MTk2M2Q3
ZDc1NjViMi4uNmNjZTMxMjkwYzQ0NTc4MjFmYjY3OWFiMDM0ZTYxZWQxNzYyN2I5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29u
dHJvbGxlckNvcmVUZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQpAQCAtMTU4LDEwICsxNTgsOSBA
QCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNo
YXJhY3RlcnMoY29uc3QgVUNoYXIqIGNwLAogCiAgICAgICAgIFByb3ZpZGVySW5mbyBpbmZvID0g
eyBjcCwgbGVuZ3RoLCBzdHJpbmdBdHRyaWJ1dGVzLmdldCgpIH07CiAgICAgICAgIC8vIEZJWE1F
OiBTb21lIFNES3MgY29tcGxhaW4gdGhhdCB0aGUgc2Vjb25kIHBhcmFtZXRlciBiZWxvdyBjYW5u
b3QgYmUgbnVsbC4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdub25udWxsIgorICAgICAgICBBTExPV19OVUxMX0FSR1VN
RU5UX0JFR0lOCiAgICAgICAgIFJldGFpblB0cjxDVFR5cGVzZXR0ZXJSZWY+IHR5cGVzZXR0ZXIg
PSBhZG9wdENGKENUVHlwZXNldHRlckNyZWF0ZVdpdGhVbmlDaGFyUHJvdmlkZXJBbmRPcHRpb25z
KCZwcm92aWRlU3RyaW5nQW5kQXR0cmlidXRlcywgMCwgJmluZm8sIG1fcnVuLmx0cigpID8gbHRy
VHlwZXNldHRlck9wdGlvbnMgOiBydGxUeXBlc2V0dGVyT3B0aW9ucykpOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19OVUxMX0FSR1VNRU5UX0VORAogCiAgICAg
ICAgIGxpbmUgPSBhZG9wdENGKENUVHlwZXNldHRlckNyZWF0ZUxpbmUodHlwZXNldHRlci5nZXQo
KSwgQ0ZSYW5nZU1ha2UoMCwgMCkpKTsKICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbQppbmRleCA2MTQzYjUxZDQzNjQ1ZDVh
ZDQ4YzM5NWFmN2M0ZWEyNjQzM2Q3YzRhLi42NWJiMTM5MDI0NDczNWVjMGIzZjZhZTVmZDY4ODE0
OTEyNjlkMWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvSWNvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbQpAQCAtMzYsMTAgKzM2LDkgQEAgSWNvbjo6SWNvbihOU0ltYWdlICppbWFnZSkK
ICAgICA6IG1fbnNJbWFnZShpbWFnZSkKIHsKICAgICAvLyBOZWVkIHRoaXMgYmVjYXVzZSBXZWJD
b3JlIHVzZXMgQXBwS2l0J3MgZmxpcHBlZCBjb29yZGluYXRlIHN5c3RlbSBleGNsdXNpdmVseS4K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtpbWFnZSBzZXRGbGlwcGVkOllFU107Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiB9CiAKIEljb246On5JY29uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9QREZEb2N1bWVudEltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50SW1hZ2VNYWMubW0KaW5kZXggNmRhOTIx
Yjk4YWYyZjk0OGNiYWMyNjM1OTBhMzRjZGJjODhkYjViMi4uMjcyNmJkY2UwY2MxZDBjMDMyZGQ1
Mzc0ZjhiZjFiNzg1OGFhZTA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL1BERkRvY3VtZW50SW1hZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50SW1hZ2VNYWMubW0KQEAgLTczLDEwICs3
Myw5IEBAIHZvaWQgUERGRG9jdW1lbnRJbWFnZTo6ZHJhd1BERlBhZ2UoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0KQogICAgIGJvb2wgYWxsb3dzU3VicGl4ZWxRdWFudGl6YXRpb24gPSBDR0NvbnRl
eHRHZXRBbGxvd3NGb250U3VicGl4ZWxRdWFudGl6YXRpb24oY29udGV4dC5wbGF0Zm9ybUNvbnRl
eHQoKSk7CiAgICAgYm9vbCBhbGxvd3NTdWJwaXhlbFBvc2l0aW9uaW5nID0gQ0dDb250ZXh0R2V0
QWxsb3dzRm9udFN1YnBpeGVsUG9zaXRpb25pbmcoY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSk7
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtbbV9kb2N1bWVudCBwYWdlQXRJbmRleDowXSBk
cmF3V2l0aEJveDprUERGRGlzcGxheUJveENyb3BCb3hdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgQ0dD
b250ZXh0U2V0QWxsb3dzRm9udFNtb290aGluZyhjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBh
bGxvd3NTbW9vdGhpbmcpOwogICAgIENHQ29udGV4dFNldEFsbG93c0ZvbnRTdWJwaXhlbFF1YW50
aXphdGlvbihjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBhbGxvd3NTdWJwaXhlbFF1YW50aXph
dGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
V2ViS2l0TlNJbWFnZUV4dHJhcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9XZWJLaXROU0ltYWdlRXh0cmFzLm1tCmluZGV4IDQ2NjRmNjZmNzM4NTczZGZhYjkwNTRl
OTQzYTE0ZTE5MGJlYzJmODcuLjdmM2QxNjU3ODZiNmMzMjE4MDQ5MjE2NGI1YTZiN2U1ZmU3MWFi
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJL
aXROU0ltYWdlRXh0cmFzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9XZWJLaXROU0ltYWdlRXh0cmFzLm1tCkBAIC0zNywxMCArMzcsOSBAQAogICAgIFt0cmFu
c2Zvcm0gc2NhbGVCeTpkZXZpY2VTY2FsZUZhY3Rvcl07CiAKICAgICBOU1JlY3QgYm91bmRzID0g
eyBOU1plcm9Qb2ludCwgc2VsZi5zaXplIH07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBCT09M
IGZsaXBwZWRPcmllbnRhdGlvbiA9IHNlbGYuaXNGbGlwcGVkOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtz
ZWxmIGxvY2tGb2N1c1dpdGhSZWN0OmJvdW5kcyBjb250ZXh0Om5pbCBoaW50czpAeyBOU0ltYWdl
SGludENUTSA6IHRyYW5zZm9ybSB9IGZsaXBwZWQ6ZmxpcHBlZE9yaWVudGF0aW9uXTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0KaW5kZXggNWZiMjE1
YTI5NzBkZDk2MmFhMGJkY2E5ODNhOTEwNGVkNGQ0M2UxMC4uZDA0NThkNmE5N2U3OTY2OWNjN2Qy
NTllZWQxZDRiMjJlMDE5YTJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0RyYWdJbWFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJh
Z0ltYWdlSU9TLm1tCkBAIC01Miw4ICs1Miw3IEBACiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbnVsbGFiaWxp
dHktY29tcGxldGVuZXNzIgorSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1XbnVsbGFiaWxp
dHktY29tcGxldGVuZXNzIikKIAogU09GVF9MSU5LX0ZSQU1FV09SSyhVSUtpdCkKIFNPRlRfTElO
S19DTEFTUyhVSUtpdCwgVUlGb250KQpAQCAtNjMsNyArNjIsNyBAQCBTT0ZUX0xJTksoVUlLaXQs
IFVJR3JhcGhpY3NHZXRDdXJyZW50Q29udGV4dCwgQ0dDb250ZXh0UmVmLCAodm9pZCksICgpKQog
U09GVF9MSU5LKFVJS2l0LCBVSUdyYXBoaWNzR2V0SW1hZ2VGcm9tQ3VycmVudEltYWdlQ29udGV4
dCwgVUlJbWFnZSAqLCAodm9pZCksICgpKQogU09GVF9MSU5LKFVJS2l0LCBVSUdyYXBoaWNzRW5k
SW1hZ2VDb250ZXh0LCB2b2lkLCAodm9pZCksICgpKQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCitJR05PUkVfQ0xBTkdfV0FSTklOR19FTkQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQppbmRleCA1NjEw
MmZhMjkwN2FmODRmZTEzMzAyMWYwOGU0ZWY0M2IyN2RjOTkyLi4yMDFjYjMzOGJiZDdkYzc1M2Iz
MzVhMzAwNjJjMmI5MTI2YjExOTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9E
cmFnSW1hZ2VNYWMubW0KQEAgLTcxLDEwICs3MSw5IEBAIFJldGFpblB0cjxOU0ltYWdlPiBzY2Fs
ZURyYWdJbWFnZShSZXRhaW5QdHI8TlNJbWFnZT4gaW1hZ2UsIEZsb2F0U2l6ZSBzY2FsZSkKICAg
ICBOU1NpemUgbmV3U2l6ZSA9IE5TTWFrZVNpemUoKG9yaWdpbmFsU2l6ZS53aWR0aCAqIHNjYWxl
LndpZHRoKCkpLCAob3JpZ2luYWxTaXplLmhlaWdodCAqIHNjYWxlLmhlaWdodCgpKSk7CiAgICAg
bmV3U2l6ZS53aWR0aCA9IHJvdW5kZihuZXdTaXplLndpZHRoKTsKICAgICBuZXdTaXplLmhlaWdo
dCA9IHJvdW5kZihuZXdTaXplLmhlaWdodCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbaW1h
Z2Ugc2V0U2NhbGVzV2hlblJlc2l6ZWQ6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbaW1hZ2Ugc2V0
U2l6ZTpuZXdTaXplXTsKICAgICByZXR1cm4gaW1hZ2U7CiB9CkBAIC0zMTIsMTAgKzMxMSw5IEBA
IERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKEVsZW1lbnQmIGVsZW1lbnQsIFVS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpCiAgICAgUmV0YWluUHRyPE5TSW1hZ2U+IGRyYWdJbWFn
ZSA9IGFkb3B0TlMoW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aFNpemU6aW1hZ2VTaXplXSk7CiAg
ICAgW2RyYWdJbWFnZSBfd2ViX2xvY2tGb2N1c1dpdGhEZXZpY2VTY2FsZUZhY3RvcjpkZXZpY2VT
Y2FsZUZhY3Rvcl07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEdyYXBoaWNzQ29udGV4dCBj
b250ZXh0KChDR0NvbnRleHRSZWYpW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XS5n
cmFwaGljc1BvcnQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA8IDEwMTMwMAogICAgIGNvbnRleHQudHJhbnNsYXRlKGxpbmtJbWFnZVNoYWRvd1Jh
ZGl1cywgbGlua0ltYWdlU2hhZG93UmFkaXVzIC0gbGlua0ltYWdlU2hhZG93T2Zmc2V0WSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTGVnYWN5TlNQYXN0ZWJvYXJk
VHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9MZWdhY3lOU1Bhc3RlYm9hcmRU
eXBlcy5oCmluZGV4IDA3YWE5NWZmMDhhMDM3ODI2MGE4MmEwZjU2NWZhODhiOGJiODU2NTQuLmQz
MjQyOTAzYjc4OTQ4NjMzNDFiMzFmMGMzOTRkZDkyZjYwMzU0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9MZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9MZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oCkBAIC0y
Nyw4ICsyNyw3IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODksNiArODgsNiBAQCBpbmxpbmUgTlNTdHJpbmcgKmxl
Z2FjeUZpbGVzUHJvbWlzZVBhc3RlYm9hcmRUeXBlKCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1t
CmluZGV4IGM5OGZjMjg1OWZmYzc5ZTE5NTQ4ZjE4NjdlMzMwNjBiMTY4M2IwNzMuLjQxZTQyNWJj
ZjkyNmVhNmU2MjljMDEwZDM3N2IzNTAwNTYwMzFmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbQpA
QCAtMzIsOCArMzIsNyBAQCBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQ6OkxvY2FsQ3VycmVu
dEdyYXBoaWNzQ29udGV4dChHcmFwaGljc0NvbnRleHQmIGdyYXBoaQogewogICAgIGdyYXBoaWNz
Q29udGV4dC5zYXZlKCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENHQ29udGV4dFJlZiBj
Z0NvbnRleHQgPSB0aGlzLT5jZ0NvbnRleHQoKTsKICAgICBpZiAoY2dDb250ZXh0ID09IFtbTlNH
cmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF0pIHsKICAgICAgICAg
bV9zYXZlZE5TR3JhcGhpY3NDb250ZXh0ID0gMDsKQEAgLTQyLDcgKzQxLDcgQEAgTG9jYWxDdXJy
ZW50R3JhcGhpY3NDb250ZXh0OjpMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQoR3JhcGhpY3ND
b250ZXh0JiBncmFwaGkKIAogICAgIG1fc2F2ZWROU0dyYXBoaWNzQ29udGV4dCA9IFtbTlNHcmFw
aGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIHJldGFpbl07CiAgICAgTlNHcmFwaGljc0NvbnRl
eHQqIG5ld0NvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0V2l0aEdy
YXBoaWNzUG9ydDpjZ0NvbnRleHQgZmxpcHBlZDpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtOU0dy
YXBoaWNzQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDpuZXdDb250ZXh0XTsKICAgICBtX2RpZFNl
dEdyYXBoaWNzQ29udGV4dCA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IGZkNmU5Mjk4Nzc0ZmFmNGZlODczNWJmMjc1NjVhZGM5
NTMyYmY2MzYuLjRmZDA4ZDE0MzgzMDM5NmQzM2I0ODI3Nzk5YTY4MzUxYjQ3OTEzZmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC05OSwxOSAr
OTksMTcgQEAgUGFzdGVib2FyZDo6UGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRO
YW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcHJvbWkKIAogc3RkOjp1bmlxdWVfcHRyPFBhc3Rl
Ym9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCiB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihOU0dlbmVy
YWxQYm9hcmQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIHN0
ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJv
cCgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQ
YXN0ZWJvYXJkPihOU0RyYWdQYm9hcmQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiBzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJh
Z0RhdGEmIGRyYWdEYXRhKQpAQCAtNjE0LDE4ICs2MTIsMTYgQEAgc3RhdGljIHZvaWQgc2V0RHJh
Z0ltYWdlSW1wbChOU0ltYWdlICppbWFnZSwgTlNQb2ludCBvZmZzZXQpCiAgICAgUmV0YWluUHRy
PE5TQml0bWFwSW1hZ2VSZXA+IGJpdG1hcEltYWdlOwogICAgIGlmICghaW1hZ2VSZXAgfHwgIVtp
bWFnZVJlcCBpc0tpbmRPZkNsYXNzOltOU0JpdG1hcEltYWdlUmVwIGNsYXNzXV0gfHwgIU5TRXF1
YWxTaXplcyhpbWFnZVJlcC5zaXplLCBpbWFnZVNpemUpKSB7CiAgICAgICAgIFtpbWFnZSBsb2Nr
Rm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBiaXRtYXBJbWFnZSA9IGFk
b3B0TlMoW1tOU0JpdG1hcEltYWdlUmVwIGFsbG9jXSBpbml0V2l0aEZvY3VzZWRWaWV3UmVjdDoq
KE5TUmVjdCopJmltYWdlUmVjdF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgW2ltYWdlIHVu
bG9ja0ZvY3VzXTsKICAgICAgICAgCiAgICAgICAgIC8vIHdlIG1heSBoYXZlIHRvIGZsaXAgdGhl
IGJpdHMgd2UganVzdCByZWFkIGlmIHRoZSBpbWFnZSB3YXMgZmxpcHBlZCBzaW5jZSBpdCBtZWFu
cyB0aGUgY2FjaGUgd2FzIGFsc28KICAgICAgICAgLy8gYW5kIENvcmVEcmFnU2V0SW1hZ2UgY2Fu
J3QgdGFrZSBhIHRyYW5zZm9ybSBmb3IgcmVuZGVyaW5nLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgICAgICBmbGlwSW1hZ2UgPSBpbWFnZS5pc0ZsaXBwZWQ7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgIH0gZWxzZSB7CiAgICAgICAgIGZsaXBJbWFnZSA9IGZhbHNlOwogICAgICAgICBiaXRtYXBJ
bWFnZSA9IChOU0JpdG1hcEltYWdlUmVwICopaW1hZ2VSZXA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggY2U2
ZTAwYmE3MDJiNzc0YTQwNDMyOWQ3ZDQ1NWRlYzExZjYwNjg1MS4uODIyMzVlNTY2ZGJjYmNhN2Fl
MmFiNmFkODE0ZjcxYWY5OWJmY2VlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpAQCAtNDYsMTAgKzQ2LDkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBOU1BvaW50IGdsb2JhbFBvaW50KGNvbnN0IE5TUG9pbnQm
IHdpbmRvd1BvaW50LCBOU1dpbmRvdyAqd2luZG93KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgcmV0dXJuIGZsaXBTY3JlZW5Qb2ludChbd2luZG93IGNvbnZlcnRCYXNlVG9TY3JlZW46d2lu
ZG93UG9pbnRdLCBzY3JlZW4od2luZG93KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHN0YXRpYyBOU1Bv
aW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU1NMS2V5R2VuZXJhdG9yTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5tbQppbmRleCA0NzAwYjAxOGM1
MzBjMTEyZmI4ZGQxM2QyODczYzEwNDRlN2RjNzE4Li5mYzQwYWExOWIwNGMzYWUzNDcxODAyNzYz
ZjdkZjM4OWE3MjI4YzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U1NMS2V5R2VuZXJhdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
U0xLZXlHZW5lcmF0b3JNYWMubW0KQEAgLTQ0LDggKzQ0LDcgQEAgV1RGX0RFQ0xBUkVfQ0ZfVFlQ
RV9UUkFJVChTZWNBQ0wpOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAKIHN0cnVjdCBQdWJsaWNLZXlBbmRDaGFsbGVuZ2UgewogICAgIENTU01fWDUwOV9TVUJKRUNU
X1BVQkxJQ19LRVlfSU5GTyBzdWJqZWN0UHVibGljS2V5SW5mbzsKQEAgLTIyMyw3ICsyMjIsNyBA
QCBzdGF0aWMgU3RyaW5nIHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyh1bnNpZ25l
ZCBrZXlTaXplLCBjb25zdCBDU3RyaW5nJgogICAgIHJldHVybiBiYXNlNjRFbmNvZGUoZW5jb2Rl
ZFNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZS5EYXRhLCBlbmNvZGVkU2lnbmVkUHVibGljS2V5
QW5kQ2hhbGxlbmdlLkxlbmd0aCk7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
K0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiB2b2lkIGdldFN1cHBvcnRlZEtl
eVNpemVzKFZlY3RvcjxTdHJpbmc+JiBzdXBwb3J0ZWRLZXlTaXplcykKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMubW0KaW5kZXggMjZiNmNiNGYyMWY4YjNj
ODk5MzZkMWQ2ZTYzODdjMTZiODQwNGQzYi4uMDllZDIwZmZlZTM1NDE0OGRiNTU0M2JhMGYzNmNl
M2QzOTY0Zjk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bFZpZXdNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdN
YWMubW0KQEAgLTIzMCwxMCArMjMwLDkgQEAgSW50UmVjdCBTY3JvbGxWaWV3OjpwbGF0Zm9ybUNv
bnRlbnRzVG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcmVjdCkgY29uc3QKICAgICBpZiAoTlNWaWV3
KiBkb2N1bWVudFZpZXcgPSB0aGlzLT5kb2N1bWVudFZpZXcoKSkgewogICAgICAgICBOU1JlY3Qg
dGVtcFJlY3QgPSByZWN0OwogICAgICAgICB0ZW1wUmVjdCA9IFtkb2N1bWVudFZpZXcgY29udmVy
dFJlY3Q6dGVtcFJlY3QgdG9WaWV3Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
ICAgIHRlbXBSZWN0Lm9yaWdpbiA9IFtbZG9jdW1lbnRWaWV3IHdpbmRvd10gY29udmVydEJhc2VU
b1NjcmVlbjp0ZW1wUmVjdC5vcmlnaW5dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgcmV0dXJu
IGVuY2xvc2luZ0ludFJlY3QodGVtcFJlY3QpOwogICAgIH0KICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwpAQCAtMjQ0LDEwICsyNDMsOSBAQCBJbnRQb2ludCBTY3JvbGxWaWV3OjpwbGF0
Zm9ybVNjcmVlblRvQ29udGVudHMoY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAogewogICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICBpZiAoTlNWaWV3KiBkb2N1bWVudFZp
ZXcgPSB0aGlzLT5kb2N1bWVudFZpZXcoKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICBOU1BvaW50IHdpbmRvd0Nvb3JkID0gW1tkb2N1bWVudFZpZXcgd2luZG93XSBjb252ZXJ0
U2NyZWVuVG9CYXNlOiBwb2ludF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICByZXR1cm4gSW50
UG9pbnQoW2RvY3VtZW50VmlldyBjb252ZXJ0UG9pbnQ6d2luZG93Q29vcmQgZnJvbVZpZXc6bmls
XSk7CiAgICAgfQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXggOTU3ZjdjNTA3Mjg4NDFkNGQwNTAxYmJjYjIx
MTZlYzZkMTY2ZGE1MC4uMzQ3MzQyNjhlZWMzZWM0MDZiN2Y1YmU0MjliZjM0MDE1ZDQzZmZhMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQpAQCAtMzU4LDEwICszNTgs
OSBAQCBzdGF0aWMgTlNCdXR0b25DZWxsICpzaGFyZWRDaGVja2JveENlbGwoY29uc3QgQ29udHJv
bFN0YXRlcyYgc3RhdGVzLCBjb25zdCBJbnRTaQogCiBzdGF0aWMgYm9vbCBkcmF3Q2VsbEZvY3Vz
UmluZ1dpdGhGcmFtZUF0VGltZShOU0NlbGwgKmNlbGwsIE5TUmVjdCBjZWxsRnJhbWUsIE5TVmll
dyAqY29udHJvbFZpZXcsIE5TVGltZUludGVydmFsIHRpbWVPZmZzZXQpCiB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gKENHQ29udGV4dFJlZilbW05T
R3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0KTsKIAogICAgIENHRm9jdXNSaW5n
U3R5bGUgZm9jdXNSaW5nU3R5bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIubW0KaW5kZXggYjZlYWRhMzE4MDY0
MDI1MDA2MDJiZmFiMGQzMjk1N2RhNmYyYjQ1MS4uMjhhYzg0MTA1NWNmZTQxNzRhNmIzOTBhNjk3
ZmViMzU4N2MzOTMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dl
YlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9XZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5tbQpAQCAtMzQsOCArMzQsNyBAQAogI2lt
cG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV251bGxhYmlsaXR5LWNvbXBsZXRlbmVzcyIKK0lHTk9SRV9DTEFOR19XQVJO
SU5HX0JFR0lOKCItV251bGxhYmlsaXR5LWNvbXBsZXRlbmVzcyIpCiBTT0ZUX0xJTktfRlJBTUVX
T1JLKEFWS2l0KQogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAw
CiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZLaXQsIEFWVG91Y2hCYXJNZWRpYVNlbGVjdGlv
bk9wdGlvbikKQEAgLTM0Niw3ICszNDUsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TTXV0YWJsZUFy
cmF5PiBtZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPE1lZGlhU2VsZWN0aQogfQog
I2VuZGlmCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9DTEFOR19XQVJO
SU5HX0VORAogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9XaWRnZXRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2lkZ2V0TWFjLm1t
CmluZGV4IDk5NmMxOWQ1NTBmOTEzMWZhMDIzNjBiNjU3Zjg4YmU5ZjllNjY2YmIuLmEzNzNkYWJj
NzBiZDAzNzE0OTk3NTVmMTBiMTY0MWQ0MTAwNGVjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dpZGdldE1hYy5tbQpAQCAtMjA4LDEwICsyMDgsOSBAQCB2b2lkIFdpZGdldDo6cGFp
bnQoR3JhcGhpY3NDb250ZXh0JiBwLCBjb25zdCBJbnRSZWN0JiByLCBTZWN1cml0eU9yaWdpblBh
aW50UG9saQogICAgIFJlZjxXaWRnZXQ+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCiAgICAgTlNH
cmFwaGljc0NvbnRleHQgKmN1cnJlbnRDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGN1cnJl
bnRDb250ZXh0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChjdXJyZW50Q29udGV4dCA9
PSBbW3ZpZXcgd2luZG93XSBncmFwaGljc0NvbnRleHRdIHx8ICFbY3VycmVudENvbnRleHQgaXNE
cmF3aW5nVG9TY3JlZW5dKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAvLyBUaGlzIGlzIHRo
ZSBjb21tb24gY2FzZSBvZiBkcmF3aW5nIGludG8gYSB3aW5kb3cgb3IgYW4gaW5jbHVzaXZlIGxh
eWVyLCBvciBwcmludGluZy4KICAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwog
ICAgICAgICBbdmlldyBkaXNwbGF5UmVjdElnbm9yaW5nT3BhY2l0eTpbdmlldyBjb252ZXJ0UmVj
dDpyIGZyb21WaWV3Olt2aWV3IHN1cGVydmlld11dXTsKQEAgLTIzOCwxMCArMjM3LDkgQEAgdm9p
ZCBXaWRnZXQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgcCwgY29uc3QgSW50UmVjdCYgciwgU2Vj
dXJpdHlPcmlnaW5QYWludFBvbGkKICAgICB9CiAKICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0
ID0gcC5wbGF0Zm9ybUNvbnRleHQoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEFTU0VSVChj
Z0NvbnRleHQgPT0gW2N1cnJlbnRDb250ZXh0IGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0KTsKIAogICAgIE5TUmVjdCB2aWV3RnJh
bWUgPSBbdmlldyBmcmFtZV07CkBAIC0yNTUsMTAgKzI1Myw5IEBAIHZvaWQgV2lkZ2V0OjpwYWlu
dChHcmFwaGljc0NvbnRleHQmIHAsIGNvbnN0IEludFJlY3QmIHIsIFNlY3VyaXR5T3JpZ2luUGFp
bnRQb2xpCiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAgICAgewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgICAgICBOU0dyYXBoaWNzQ29udGV4dCAqbnNDb250ZXh0ID0g
W05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Y2dDb250
ZXh0IGZsaXBwZWQ6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgW3ZpZXcgZGlzcGxheVJl
Y3RJZ25vcmluZ09wYWNpdHk6W3ZpZXcgY29udmVydFJlY3Q6ciBmcm9tVmlldzpbdmlldyBzdXBl
cnZpZXddXSBpbkNvbnRleHQ6bnNDb250ZXh0XTsKICAgICB9CiAgICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKaW5kZXggYjUxMzE4
YzgzNGUyNTRhYTlmNzIzNjVlZmU2N2YzNTQ2NjhjZTlhZS4uNDU2NGMyMGM4MDNiYjViNDY5YWVl
NzNmODA5NDE2NzdmNmIyZTY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgK
QEAgLTM1LDEyICszNSwxMSBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgogI2luY2x1
ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0FM
TE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvbWVkaWFz
dHJlYW1pbnRlcmZhY2UuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX1VO
VVNFRF9QQVJBTUVURVJfRU5ECiAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKaW5kZXggNzI0N2JiODMzODU3ZTQ4ZTk5ZWU3ODZl
NzVlNGE5M2JiMDA1ZDVlZC4uYTFjYjE1NzAwOTk3OTUyMTQ5NDE0NDIxNjIxZThiMzUxOTUzZjBm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKQEAgLTM1LDEyICszNSwxMSBA
QAogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFT
b3VyY2UuaCIKIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVU
RVJfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvbWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4K
IAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfRU5E
CiAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlLmgKaW5kZXggZWE0NTdmN2Q1MzM1MGFmZDE4NDRlZjNjZjQzMjExZjgzMzI5NTZmNC4u
ZGM2MTk1YzczZTkzMzcwYWUyOTYyNWI5NzAxMzhjMjA3NjM0OWI3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlLmgKQEAgLTM1LDEyICszNSwxMSBAQAogI2luY2x1ZGUgIk1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIAotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2Vk
LXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4KIAogI2luY2x1ZGUgPHdl
YnJ0Yy9hcGkvbWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwb3AKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfRU5ECiAKICNpbmNsdWRlIDx3dGYvVGhyZWFk
U2FmZVJlZkNvdW50ZWQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaAppbmRl
eCA1NDhlYTNmMDFkODA3ZTg3Y2UxMWQzMGU2Y2JjZGI3MDJmOTE1NWUxLi4wMDBlMDEzZDRlNzFh
N2NhMmFmNDE3ZDFmYmRhOTAyZWE1NGRjMTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2UuaApAQCAtMzQsMTMgKzM0LDEyIEBACiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUuaCIKICNpbmNsdWRlIDxUaW1lci5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgor
QUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRjL2FwaS9tZWRp
YXN0cmVhbWludGVyZmFjZS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9jb21tb25fdmlkZW8vaW5jbHVk
ZS9pNDIwX2J1ZmZlcl9wb29sLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCitBTExP
V19VTlVTRURfUEFSQU1FVEVSX0VORAogCiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5j
bHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDQXVkaW9Nb2R1bGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENBdWRpb01vZHVsZS5oCmluZGV4IDc5ZTk5ZDdjZTIwNmY4OTI1OTZiZGQ0ZjNkMWNlZjdlNWVi
MzdkZTAuLjU5YmNjMGVhMDFhY2E4ZDdiNjk1ZmE0ODFmYjI1YjJjMTQ2Yzg2YzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENBdWRpb01vZHVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVsZS5oCkBAIC0yOSwxNCArMjksMTMgQEAKIAog
I2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgor
QUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRjL21vZHVsZXMv
YXVkaW9fZGV2aWNlL2luY2x1ZGUvYXVkaW9fZGV2aWNlLmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0
Y19iYXNlL21lc3NhZ2VoYW5kbGVyLmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL3RocmVh
ZC5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BBUkFNRVRF
Ul9FTkQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmNwcAppbmRleCAxYTE0NTNjODliN2MzMjM5ZmZmNWVhMWQyNWIzZDAwNWUzOTUxYzM4
Li5hMTE4YTE3ODEzYzc5ZmEzOWQwNTYxNGYyOWY3M2RjODM3MzZjYTIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJv
dmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTMxLDggKzMxLDcgQEAKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSA8ZGxmY24uaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIK
K0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvYXVk
aW9fY29kZWNzL2J1aWx0aW5fYXVkaW9fZGVjb2Rlcl9mYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d2Vi
cnRjL2FwaS9hdWRpb19jb2RlY3MvYnVpbHRpbl9hdWRpb19lbmNvZGVyX2ZhY3RvcnkuaD4KQEAg
LTQzLDcgKzQyLDcgQEAKICNpbmNsdWRlIDx3ZWJydGMvcGMvcGVlcmNvbm5lY3Rpb25mYWN0b3J5
Lmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL3BoeXNpY2Fsc29ja2V0c2VydmVyLmg+CiAK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0VORAog
CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4IDhmY2NmMjJhMDA1ZmQ3
OTg2MGMyYzk1ODY2MzcwMzY4MTMyMzhkOTYuLjlhZjk0MDY5MWM1MDVmZmIwY2UzYmIxYzc1OTZh
YjMyMjhkYTUzZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC0zNSwx
NSArMzUsMTQgQEAKIAogI2lmIFVTRShMSUJXRUJSVEMpCiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0
ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0JFR0lOCiAKICNpbmNsdWRlIDx3ZWJydGMvYXBp
L3BlZXJjb25uZWN0aW9uaW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS92aWRlb19j
b2RlY3MvdmlkZW9fZW5jb2Rlcl9mYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS92aWRl
b19jb2RlY3MvdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19i
YXNlL3Njb3BlZF9yZWZfcHRyLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCitBTExP
V19VTlVTRURfUEFSQU1FVEVSX0VORAogCiBuYW1lc3BhY2UgcnRjIHsKIGNsYXNzIE5ldHdvcmtN
YW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29h
Lm1tCmluZGV4IDRiNDI1ZjliYTYyYjBmM2YwOTNhOTA2ZmQ0YjJhZTQ5YzJhNDNjM2UuLjM4MjJl
YzBkNTM5M2NmZTJmMzg0YjJjN2JhOWI0NzEwMjRhZWI5YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KQEAgLTM0LDEyICszNCwxMSBAQAog
I2luY2x1ZGUgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVk
aWFTb2Z0TGluay5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0FMTE9XX1VOVVNF
RF9QQVJBTUVURVJfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0
aWxpdGllcy5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19VTlVTRURf
UEFSQU1FVEVSX0VORAogCiAjaW5jbHVkZSA8d3RmL2NmL1R5cGVDYXN0c0NGLmg+CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCmluZGV4IGVk
MTRjMzRjMzFkNjZjMDVjZWQ1OTVjNjU2MDMwZTcxM2Y2NTU3ODcuLmFjNDcwNjMzZGY5OTc1ODk1
MzA2N2Y4Y2RjZDRkMTJjYTQ1MTk5NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0
Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcApAQCAtMzAsMTQgKzMwLDEzIEBACiAKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorQUxMT1dfVU5VU0VE
X1BBUkFNRVRFUl9CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRjL2FwaS92aWRlby9pNDIwX2J1ZmZl
ci5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9jb21tb25fdmlkZW8vbGlieXV2L2luY2x1ZGUvd2VicnRj
X2xpYnl1di5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5o
PgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19VTlVTRURfUEFSQU1FVEVS
X0VORAogCiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW5jbHVkZSAi
Q29yZVZpZGVvU29mdExpbmsuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKaW5k
ZXggODExOWZkNWU1NTZlNmMxZDdiZmMxZmJhYjRiNWI4ODkxMGMzOWU1Zi4uYzlkMjk2NDQyMWVi
ZGQ4YjQ2NzQwNDZkY2M0YzUwM2M3YWZiNDk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25D
Rk5ldC5jcHAKQEAgLTY0LDEyICs2NCwxMSBAQCBzdGF0aWMgaW5saW5lIENGVHlwZUlEIHR5cGVJ
RCgpIHsgcmV0dXJuIENsYXNzTmFtZSMjR2V0VHlwZUlEKCk7IH0gXAogfTsKIAogI2lmIENPTVBJ
TEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICNlbmRpZgogREVDTEFSRV9DRl9UWVBFX1RSQUlU
KENGSFRUUENvb2tpZSk7CiAjaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZgogCiAj
dW5kZWYgREVDTEFSRV9DRl9UWVBFX1RSQUlUCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAppbmRleCAwOTVh
MGM0YjdkODRhYzljOWFiYWM0NGExYTVmNDZlOWViYzAwMDdhLi41Y2JkYTViZGQ0NjcyOWRlYmI2
YWJmMDQ0ZmQxNTg2NWJjYWYxNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKQEAgLTE3MSwxMiAr
MTcxLDExIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29s
IHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAjZWxzZQogICAgIGlmIChhbGxvd3NB
bnlIVFRQU0NlcnRpZmljYXRlSG9zdHMoKS5jb250YWlucyhmaXJzdFJlcXVlc3QoKS51cmwoKS5o
b3N0KCkudG9TdHJpbmcoKSkpIHsKICAgICAgICAgc3NsUHJvcHMgPSBhZG9wdENGKENGRGljdGlv
bmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9u
YXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShzc2xQcm9w
cy5nZXQoKSwga0NGU3RyZWFtU1NMQWxsb3dzQW55Um9vdCwga0NGQm9vbGVhblRydWUpOwogICAg
ICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShzc2xQcm9wcy5nZXQoKSwga0NGU3RyZWFtU1NMQWxs
b3dzRXhwaXJlZFJvb3RzLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgICAgIENGRGljdGlvbmFyeUFk
ZFZhbHVlKHNzbFByb3BzLmdldCgpLCBrQ0ZTdHJlYW1TU0xBbGxvd3NFeHBpcmVkQ2VydGlmaWNh
dGVzLCBrQ0ZCb29sZWFuVHJ1ZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogI2lmICFQTEFURk9STShXSU4p
IC8vIDxyZGFyOi8vcHJvYmxlbS8zMzk5MzQ2Mj4gLSBEaXNhYmxpbmcgdmFsaWRhdGlvbiBvZiBj
ZXJ0aWZpY2F0ZSBjaGFpbiBicmVha3MgU1NMIG9uIFdpbmRvd3MuCiAgICAgICAgIENGRGljdGlv
bmFyeUFkZFZhbHVlKHNzbFByb3BzLmdldCgpLCBrQ0ZTdHJlYW1TU0xWYWxpZGF0ZXNDZXJ0aWZp
Y2F0ZUNoYWluLCBrQ0ZCb29sZWFuRmFsc2UpOwogI2VuZGlmCkBAIC0yMzQsMTAgKzIzMyw5IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3VsZFVz
ZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgaWYgKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9y
YWdlKQogICAgICAgICBjbGllbnQuc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSAwOwogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICBkLT5tX2Nvbm5lY3Rpb24gPSBhZG9wdENGKENGVVJMQ29u
bmVjdGlvbkNyZWF0ZVdpdGhQcm9wZXJ0aWVzKDAsIHJlcXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0
X2Nhc3Q8Q0ZVUkxDb25uZWN0aW9uQ2xpZW50Kj4oJmNsaWVudCksIHByb3BlcnRpZXNEaWN0aW9u
YXJ5LmdldCgpKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0
U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAppbmRleCA5ZWQ1YWEwYzlkOWJm
MTNlZWEzMWEyOTU2OGEyNDk3NTc0ZTU4NmM0Li45NjM0NzlkNjcyMjBiY2E5OTgwN2MyZWY0YjUw
NjM3ZGNmZWYzYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwCkBAIC02
NjYsMTAgKzY2Niw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6cmVwb3J0RXJyb3JU
b0NsaWVudChDRkVycm9yUmVmIGVycm9yKQogCiAjaWYgUExBVEZPUk0oTUFDKQogCi0jaWYgQ09N
UElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiAgICAgaWYgKENGRXF1
YWwoQ0ZFcnJvckdldERvbWFpbihlcnJvciksIGtDRkVycm9yRG9tYWluT1NTdGF0dXMpKSB7CiAg
ICAgICAgIGNvbnN0IGNoYXIqIGRlc2NyaXB0aW9uT1NTdGF0dXMgPSBHZXRNYWNPU1N0YXR1c0Nv
bW1lbnRTdHJpbmcoc3RhdGljX2Nhc3Q8T1NTdGF0dXM+KGVycm9yQ29kZSkpOwpAQCAtNjc3LDkg
KzY3NCw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6cmVwb3J0RXJyb3JUb0NsaWVu
dChDRkVycm9yUmVmIGVycm9yKQogICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAiT1NTdGF0dXMg
RXJyb3IgIiArIFN0cmluZzo6bnVtYmVyKGVycm9yQ29kZSkgKyAiOiAiICsgZGVzY3JpcHRpb25P
U1N0YXR1czsKICAgICB9CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKLSNlbmRpZgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jcmVhdGUtaHR0cC1oZWFkZXItbmFtZS10YWJsZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3JlYXRlLWh0dHAtaGVhZGVyLW5hbWUtdGFibGUKaW5kZXggZWEyYjc0MzM2NDgz
YjA1MDYzODcxM2ZkNTE3M2E2YjA5YjhkNjA3MC4uNmUxY2ExNDYwNWRiMDkzZDFmMWNiYjZmMzYz
NWQ5NzhlMDExYWZlZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jcmVhdGUtaHR0cC1oZWFkZXItbmFtZS10YWJsZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NyZWF0ZS1odHRwLWhlYWRlci1uYW1lLXRhYmxlCkBAIC05MCwxMSArOTAs
NyBAQCBncGVyZl9maWxlLndyaXRlKCcnJwogCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmll
dy5oPgogCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFz
IgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XaW1wbGljaXQtZmFsbHRocm91
Z2giCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0JFR0lOKCItV2ltcGxpY2l0LWZhbGx0aHJvdWdo
IikKIAogLy8gT2xkZXIgdmVyc2lvbnMgb2YgZ3BlcmYgbGlrZSB0byB1c2UgdGhlIGByZWdpc3Rl
cmAga2V5d29yZC4KICNkZWZpbmUgcmVnaXN0ZXIKQEAgLTE3OSw3ICsxNzUsNyBAQCBTdHJpbmdW
aWV3IGh0dHBIZWFkZXJOYW1lU3RyaW5nKEhUVFBIZWFkZXJOYW1lIGhlYWRlck5hbWUpCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0VORAogI2VuZGlmCiAnJycpCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcAppbmRleCA0MDEz
ZjM3Y2Y3ZTFkN2Y3NzI4ZDhjMDA3ZmZhNjgxNzI2ZDVlMDFkLi40MDVmOTMzOTRlMWU2ZTI5MTM2
YTgwNDYwYjgyYzc2ZmQ3MGE1MGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1RleHRFbmNvZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9UZXh0RW5jb2RpbmcuY3BwCkBAIC02OSwxMCArNjksNyBAQCBTdHJpbmcgVGV4dEVuY29kaW5n
OjpkZWNvZGUoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCwgYm9vbCBzdG9wT25FcnJv
ciwgYgogICAgIHJldHVybiBuZXdUZXh0Q29kZWMoKnRoaXMpLT5kZWNvZGUoZGF0YSwgbGVuZ3Ro
LCB0cnVlLCBzdG9wT25FcnJvciwgc2F3RXJyb3IpOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09S
X0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYKK0FMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAvLyBOT1RFOiBJQ1UncyB1bm9ybV9xdWlja0No
ZWNrIGFuZCB1bm9ybV9ub3JtYWxpemUgZnVuY3Rpb25zIGFyZSBkZXByZWNhdGVkLgogCiBWZWN0
b3I8dWludDhfdD4gVGV4dEVuY29kaW5nOjplbmNvZGUoU3RyaW5nVmlldyB0ZXh0LCBVbmVuY29k
YWJsZUhhbmRsaW5nIGhhbmRsaW5nKSBjb25zdApAQCAtMTEyLDkgKzEwOSw3IEBAIFZlY3Rvcjx1
aW50OF90PiBUZXh0RW5jb2Rpbmc6OmVuY29kZShTdHJpbmdWaWV3IHRleHQsIFVuZW5jb2RhYmxl
SGFuZGxpbmcgaGFuZGxpCiAgICAgcmV0dXJuIG5ld1RleHRDb2RlYygqdGhpcyktPmVuY29kZShT
dHJpbmdWaWV3IHsgc291cmNlLCBzb3VyY2VMZW5ndGggfSwgaGFuZGxpbmcpOwogfQogCi0jaWYg
Q09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRp
ZgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIGNvbnN0IGNoYXIqIFRleHRF
bmNvZGluZzo6ZG9tTmFtZSgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCA4NDAzNTMwZTk5ZDIwYjhk
NDhiYTk0NzdmZjE3OWRlZjZkOGU4OTI4Li4wMTI0ZTllZjg0MDhhYjA1YWMzZTBjZjYxY2QwMTAz
MTYwZjNlOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJS
VENQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTI4LDEzICsyOCwxMiBAQAogCiAjaW5jbHVkZSAiTGli
V2ViUlRDTWFjcm9zLmgiCiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitBTExPV19VTlVTRURf
UEFSQU1FVEVSX0JFR0lOCiAKICNpbmNsdWRlIDx3ZWJydGMvYXBpL21lZGlhc3RyZWFtaW50ZXJm
YWNlLmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS9wZWVyY29ubmVjdGlvbmludGVyZmFjZS5oPgog
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9FTkQK
IAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEdy
YW1tYXIuY3BwCmluZGV4IDMxZGYxYzBkMTU4YTI3OGY0YzA5NmNiMmJhOTExZjNmN2IwMWI5NDMu
LmFiYzNhMjczNDM2ZDgwYmU2ZmVkNTE5ODhiYjVjOTFmOTg0MzNlNzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YUGF0aEdyYW1tYXIuY3BwCkBAIC0yMTU0LDE1ICsyMTU0LDEwIEBAIHl5ZXJyb3JsYWI6CiAg
IC8qIFBhY2lmeSBjb21waWxlcnMgbGlrZSBHQ0Mgd2hlbiB0aGUgdXNlciBjb2RlIG5ldmVyIGlu
dm9rZXMKICAgICAgWVlFUlJPUiBhbmQgdGhlIGxhYmVsIHl5ZXJyb3JsYWIgdGhlcmVmb3JlIG5l
dmVyIGFwcGVhcnMgaW4gdXNlcgogICAgICBjb2RlLiAgKi8KLSNpZiBDT01QSUxFUihDTEFORykK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVd1bnJlYWNoYWJsZS1jb2RlIgotI2VuZGlmCisgIElHTk9SRV9DTEFOR19XQVJO
SU5HX0JFR0lOKCItV3VucmVhY2hhYmxlLWNvZGUiKQogICBpZiAoLypDT05TVENPTkQqLyAwKQog
ICAgICBnb3RvIHl5ZXJyb3JsYWI7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAKICAg
LyogRG8gbm90IHJlY2xhaW0gdGhlIHN5bWJvbHMgb2YgdGhlIHJ1bGUgd2hpY2ggYWN0aW9uIHRy
aWdnZXJlZAogICAgICB0aGlzIFlZRVJST1IuICAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXgg
YzJkNDVkNjZiZDI1OGViODMyYzI1NGZlYjgzNWFhZGU2NzEzZTk0NS4uYzZmMTE3MjM5OWM3MTk3
MWUzZmUwY2QzZWZhYzhjNzFhYjRkYTc1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC0xMTgs
MTIgKzExOCwxMSBAQCBOU0hUVFBDb29raWVTdG9yYWdlICpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6
c3RhdGVsZXNzQ29va2llU3RvcmFnZSgpCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFp
blB0cjxOU0hUVFBDb29raWVTdG9yYWdlPj4gc3RhdGVsZXNzQ29va2llU3RvcmFnZTsKICAgICBp
ZiAoIXN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UuZ2V0KCkpIHsKICNpZiAoUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMzAwKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25v
bm51bGwiCisgICAgICAgIEFMTE9XX05VTExfQVJHVU1FTlRfQkVHSU4KICNlbmRpZgogICAgICAg
ICBzdGF0ZWxlc3NDb29raWVTdG9yYWdlLmdldCgpID0gYWRvcHROUyhbW05TSFRUUENvb2tpZVN0
b3JhZ2UgYWxsb2NdIF9pbml0V2l0aElkZW50aWZpZXI6bmlsIHByaXZhdGU6WUVTXSk7CiAjaWYg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTMw
MCkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfTlVMTF9BUkdV
TUVOVF9FTkQKICNlbmRpZgogICAgICAgICBzdGF0ZWxlc3NDb29raWVTdG9yYWdlLmdldCgpLmdl
dCgpLmNvb2tpZUFjY2VwdFBvbGljeSA9IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Byb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya1Byb2Nlc3NDb2NvYS5tbQppbmRleCBmZDc2NjRjZTYxMzBiZmM3OGM4NTYyOWZhZDk3
Y2M0NzEzNjExNWMxLi5iYjM3OWE0NTMyZTg4ODU3NGJjMzVhOGYwYmM5OWM2NmU4OTA5Y2ZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9j
ZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrUHJvY2Vzc0NvY29hLm1tCkBAIC0yMjMsOCArMjIzLDcgQEAgc3RhdGljIHZvaWQgc2F2ZUNv
b2tpZXMoTlNIVFRQQ29va2llU3RvcmFnZSAqY29va2llU3RvcmFnZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm8KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TeW5jQWxsQ29va2llcyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRlcikgewogICAgIEFTU0VSVCho
YXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMp
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIAogI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCAoUExBVEZPUk0oSU9TKSAm
JiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApCiAgICAgUmVmUHRy
PENhbGxiYWNrQWdncmVnYXRvcj4gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdh
dG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGVyKSk7CkBAIC0yMzYsNyArMjM1LDcg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TeW5jQWxsQ29va2llcyhDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGkKICAgICBjb21wbGV0aW9uSGFuZGVyKCk7CiAjZW5k
aWYKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVByZXBh
cmVUb1N1c3BlbmQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9j
ZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNz
TWFjLm1tCmluZGV4IGMzMTIwYmI1OWEwYTU0YjY5ODcwOTJmYWY1NjkyZDQyNDE1M2U2MTcuLjZl
ZTVkNDg3Y2Q5OGQxN2M3OGNjMmU4YTIwOTAyZTg2MjkyNmNlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0KQEAgLTI2MCwx
MyArMjYwLDEyIEBAIHN0YXRpYyB1bnNpZ25lZCBtb2RhbENvdW50OwogCiBzdGF0aWMgdm9pZCBi
ZWdpbk1vZGFsKCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIE1ha2Ugc3VyZSB0byBt
YWtlIG91cnNlbHZlcyB0aGUgZnJvbnQgcHJvY2VzcwogICAgIFByb2Nlc3NTZXJpYWxOdW1iZXIg
cHNuOwogICAgIEdldEN1cnJlbnRQcm9jZXNzKCZwc24pOwogICAgIFNldEZyb250UHJvY2Vzcygm
cHNuKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIGlmICghbW9kYWxDb3VudCsrKQogICAgICAgICBzZXRN
b2RhbCh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMv
UGx1Z2luUHJvY2Vzc1NoaW0ubW0gYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1Bs
dWdpblByb2Nlc3NTaGltLm1tCmluZGV4IDQwMzZkM2I4NzQ0MDM2ODA3MmIyMGI3ODAyNjE3ZDE5
ZTlkMWIwYTQuLjQ0NmM2MjFiNjllNWM5MmNkYjEwMjgwMTMyNWZlMGI3ZTUxOTA3NWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0u
bW0KKysrIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hp
bS5tbQpAQCAtNDgsOCArNDgsNyBAQCBzdGF0aWMgUGx1Z2luUHJvY2Vzc1NoaW1DYWxsYmFja3Mg
cGx1Z2luUHJvY2Vzc1NoaW1DYWxsYmFja3M7CiAKICNpZm5kZWYgX19MUDY0X18KIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KIAogc3RhdGljIHZvaWQgc2hpbURlYnVnZ2VyKHZvaWQpCiB7CkBAIC0xMzMsNyAr
MTMyLDcgQEAgRFlMRF9JTlRFUlBPU0Uoc2hpbUhpZGVXaW5kb3csIEhpZGVXaW5kb3cpOwogRFlM
RF9JTlRFUlBPU0Uoc2hpbUxTT3BlbkNGVVJMUmVmLCBMU09wZW5DRlVSTFJlZik7CiBEWUxEX0lO
VEVSUE9TRShzaGltTWFjaFZNTWFwLCBtYWNoX3ZtX21hcCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRz
Y2FwZVBsdWdpbk1vZHVsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNj
YXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcAppbmRleCA2MGY0MWViZGZmNjFjODYzNzdjYWZm
MTdjYWViNTZhOTQ0NWVjNzc5Li5kYWQ4YjA5MmYzOTNlOGMxOTJiYTRhZmJlYzZlMzcxMGEwZTUz
NDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05l
dHNjYXBlUGx1Z2luTW9kdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5z
L05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcApAQCAtMjQyLDggKzI0Miw3IEBAIGJv
b2wgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OnRyeUxvYWQoKQogI2lmIFBMVUdJTl9BUkNISVRFQ1RV
UkUoTUFDKQogI2lmbmRlZiBOUF9OT19DQVJCT04KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKICAg
ICAvLyBQbHVnaW5zIChhdCBsZWFzdCBRVCkgcmVxdWlyZSB0aGF0IHlvdSBjYWxsIFVzZVJlc0Zp
bGUgb24gdGhlIHJlc291cmNlIGZpbGUgYmVmb3JlIGxvYWRpbmcgaXQuCiAgICAgUmVzRmlsZVJl
Zk51bSBjdXJyZW50UmVzb3VyY2VGaWxlID0gQ3VyUmVzRmlsZSgpOwpAQCAtMjU4LDcgKzI1Nyw3
IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OnRyeUxvYWQoKQogICAgIC8vIFJlc3RvcmUg
dGhlIHJlc291cmNlIGZpbGUuCiAgICAgVXNlUmVzRmlsZShjdXJyZW50UmVzb3VyY2VGaWxlKTsK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9DaGls
ZFByb2Nlc3NJT1MubW0KaW5kZXggOWJkZDcyZjgzZjQzMTNlNDYwYzVkY2UwYjM5ZWNkNWU1NTdi
NzRjYS4uZThjMDkzODkyMjkwYzFhNTYyNDM0MTlhYjBjNDk2OTMyYzU3ZWJlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9pb3MvQ2hpbGRQcm9jZXNzSU9TLm1tCkBAIC04MCwxMCArODAsOSBA
QCB2b2lkIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNz
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJgogICAgICAgICBpZiAoIXNhbmRib3hQcm9maWxlUGF0
aC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIENTdHJpbmcgcHJvZmlsZVBhdGggPSBGaWxlU3lz
dGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc2FuZGJveFByb2ZpbGVQYXRoKTsKICAgICAg
ICAgICAgIGNoYXIqIGVycm9yQnVmOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAg
ICAgICAgIGlmIChzYW5kYm94X2luaXRfd2l0aF9wYXJhbWV0ZXJzKHByb2ZpbGVQYXRoLmRhdGEo
KSwgU0FOREJPWF9OQU1FRF9FWFRFUk5BTCwgc2FuZGJveFBhcmFtZXRlcnMubmFtZWRQYXJhbWV0
ZXJBcnJheSgpLCAmZXJyb3JCdWYpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAg
ICAgICAgICAgV1RGTG9nQWx3YXlzKCIlczogQ291bGRuJ3QgaW5pdGlhbGl6ZSBzYW5kYm94IHBy
b2ZpbGUgWyVzXSwgZXJyb3IgJyVzJ1xuIiwgZ2V0cHJvZ25hbWUoKSwgcHJvZmlsZVBhdGguZGF0
YSgpLCBlcnJvckJ1Zik7CiAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50
ID0gc2FuZGJveFBhcmFtZXRlcnMuY291bnQoKTsgaSAhPSBjb3VudDsgKytpKQogICAgICAgICAg
ICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzPSVzXG4iLCBzYW5kYm94UGFyYW1ldGVycy5uYW1l
KGkpLCBzYW5kYm94UGFyYW1ldGVycy52YWx1ZShpKSk7CkBAIC05NSwxMCArOTQsOSBAQCB2b2lk
IENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzJgogICAgIH0KICAgICBjYXNlIFNhbmRib3hJbml0aWFsaXphdGlv
blBhcmFtZXRlcnM6OlVzZVNhbmRib3hQcm9maWxlOiB7CiAgICAgICAgIGNoYXIqIGVycm9yQnVm
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBpZiAoc2FuZGJveF9pbml0X3dpdGhf
cGFyYW1ldGVycyhzYW5kYm94UGFyYW1ldGVycy5zYW5kYm94UHJvZmlsZSgpLnV0ZjgoKS5kYXRh
KCksIDAsIHNhbmRib3hQYXJhbWV0ZXJzLm5hbWVkUGFyYW1ldGVyQXJyYXkoKSwgJmVycm9yQnVm
KSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzOiBD
b3VsZG4ndCBpbml0aWFsaXplIHNhbmRib3ggcHJvZmlsZSwgZXJyb3IgJyVzJ1xuIiwgZ2V0cHJv
Z25hbWUoKSwgZXJyb3JCdWYpOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50
ID0gc2FuZGJveFBhcmFtZXRlcnMuY291bnQoKTsgaSAhPSBjb3VudDsgKytpKQogICAgICAgICAg
ICAgICAgIFdURkxvZ0Fsd2F5cygiJXM9JXNcbiIsIHNhbmRib3hQYXJhbWV0ZXJzLm5hbWUoaSks
IHNhbmRib3hQYXJhbWV0ZXJzLnZhbHVlKGkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMv
Q2hpbGRQcm9jZXNzTWFjLm1tCmluZGV4IDA0Mzg3MjY5YmM3NGY5NzUxYTUyZGNiYmQyMDliZjhh
ZTczM2MzZWEuLjIxZTNhZDQzMzNkN2M2YTg5OGQ2Zjg5ODE2MjkzNjI0Njc1NjI1NmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQpAQCAtNTM0LDEwICs1
MzQsOSBAQCBzdGF0aWMgYm9vbCBjb21waWxlQW5kQXBwbHlTYW5kYm94U2xvd0Nhc2UoY29uc3Qg
U3RyaW5nJiBwcm9maWxlT3JQcm9maWxlUGF0aCwgYgogICAgIGNoYXIqIGVycm9yQnVmOwogICAg
IENTdHJpbmcgdGVtcCA9IGlzUHJvZmlsZVBhdGggPyBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVw
cmVzZW50YXRpb24ocHJvZmlsZU9yUHJvZmlsZVBhdGgpIDogcHJvZmlsZU9yUHJvZmlsZVBhdGgu
dXRmOCgpOwogICAgIHVpbnQ2NF90IGZsYWdzID0gaXNQcm9maWxlUGF0aCA/IFNBTkRCT1hfTkFN
RURfRVhURVJOQUwgOiAwOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKHNhbmRib3hfaW5p
dF93aXRoX3BhcmFtZXRlcnModGVtcC5kYXRhKCksIGZsYWdzLCBwYXJhbWV0ZXJzLm5hbWVkUGFy
YW1ldGVyQXJyYXkoKSwgJmVycm9yQnVmKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgV1RG
TG9nQWx3YXlzKCIlczogQ291bGQgbm90IGluaXRpYWxpemUgc2FuZGJveCBwcm9maWxlIFslc10s
IGVycm9yICclcydcbiIsIGdldHByb2duYW1lKCksIHRlbXAuZGF0YSgpLCBlcnJvckJ1Zik7CiAg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9IHBhcmFtZXRlcnMuY291bnQoKTsgaSAh
PSBjb3VudDsgKytpKQogICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIlcz0lc1xuIiwgcGFyYW1l
dGVycy5uYW1lKGkpLCBwYXJhbWV0ZXJzLnZhbHVlKGkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9Db2xvclNwYWNlRGF0YS5tbQppbmRleCA2NWYyYjVhNmQ3ODM2MWY2YzQ1MDVkY2U5MTg1
NjdhYzMxYWM4OGFjLi4zOTFjOGRkZjU0NTZkNDRkMTAxMmQxZmY4YjNjY2MxNDExMWY3MjMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEubW0KKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLm1tCkBAIC04MywxMCAr
ODMsOSBAQCBib29sIENvbG9yU3BhY2VEYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVy
LCBDb2xvclNwYWNlRGF0YSYgY29sb3JTcGFjZURhdAogICAgICAgICBpZiAoIUlQQzo6ZGVjb2Rl
KGRlY29kZXIsIGRhdGEpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgICAgIGNvbG9yU3BhY2VEYXRhLmNnQ29sb3JTcGFjZSA9IGFkb3B0
Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aElDQ1Byb2ZpbGUoZGF0YS5nZXQoKSkpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCmluZGV4IGI4ZTc0M2QyMzYwY2Zl
ZWZjMTdiY2EyNGQ1OTcxMWNkZDU4YTViN2UuLjI3ZDNhODU5N2Q2OGE0NmI2NGYxZjk2MGIwYWU2
YzQzODg3YjQxMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TYW5kYm94
RXh0ZW5zaW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TYW5kYm94RXh0
ZW5zaW9uTWFjLm1tCkBAIC04NiwxMiArODYsMTEgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAg
IHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJl
YWRPbmx5OgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAgIHJldHVybiBz
YW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9maWxlKEFQUF9TQU5EQk9YX1JFQUQsIHBhdGgsIDApOwog
ICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRXcml0ZToKICAgICAgICAg
ICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9maWxlKEFQUF9TQU5EQk9YX1JFQURf
V1JJVEUsIHBhdGgsIDApOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIGNhc2UgU2FuZGJv
eEV4dGVuc2lvbjo6VHlwZTo6R2VuZXJpYzoKICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4
dGVuc2lvbl9pc3N1ZV9nZW5lcmljKHBhdGgsIDApOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBmMzQ5YzE3MzhiMWIy
Y2VlNWVmZTY1M2EwMWYxMWIyNmExMmRiMTkwLi44NmJkNWJiMGQxMDY4NWNlZGMyYmM1NDQ5ZjQx
ZDc1YWNlYjA2M2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KQEAgLTM5OTksMTAgKzM5OTksOSBAQCBXRUJDT1JFX0NPTU1BTkQoeWFua0Fu
ZFNlbGVjdCkKIAogLSAoaWQpX3dlYl9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZToo
TlNTdHJpbmcgKilhdHRyaWJ1dGUKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBb
c3VwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOmF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiB9CiAKIC0gKHZvaWQpX3dlYl9zdXBlckRvQ29tbWFuZEJ5U2VsZWN0b3I6KFNFTClzZWxlY3Rv
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbi5tbQppbmRleCA4NDc4ZGIyY2UzYzY3ZWU1MDc3ZWM1MGIwZTUw
NDFiZTk0YWVmNTkyLi42NDFhMmVjMzQyZTQ0Mzg4OWJkYTYwOGNlYTgwYjA5OWMyNDcxZGUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbi5tbQpAQCAtNTAwLDggKzUwMCw3IEBAIHN0YXRpYyBOU1N0cmlu
ZyAqZGVmYXVsdEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCgpCiAgICAgcmV0dXJuIGhhbmRs
ZXIgPyBzdGF0aWNfY2FzdDxXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYSo+KGhhbmRs
ZXIuZ2V0KCkpLT5hcGlIYW5kbGVyKCkgOiBuaWw7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIC0g
KF9XS1dlYnNpdGVEYXRhU3RvcmUgKilfd2Vic2l0ZURhdGFTdG9yZQogewpAQCAtNTEzLDcgKzUx
Miw3IEBAIHN0YXRpYyBOU1N0cmluZyAqZGVmYXVsdEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2Vu
dCgpCiAgICAgc2VsZi53ZWJzaXRlRGF0YVN0b3JlID0gd2Vic2l0ZURhdGFTdG9yZSA/IHdlYnNp
dGVEYXRhU3RvcmUtPl9kYXRhU3RvcmUuZ2V0KCkgOiBudWxscHRyOwogfQogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAog
I2lmIFBMQVRGT1JNKElPUykKIC0gKFdLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5ICop
X2NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGQ1NjIxYjAwNGU1
ZDA3NzI4MWZkNTBmOTQ5YmZmYTJiY2UzZTc4MjQuLmJhNGJmM2ExZmQ2YWZiZDljMmFiODFkNWNi
ZGRiZGMxZTMwYTU4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC00MCw4ICs0MCw3IEBAIHR5cGVk
ZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVR5cGVzKSB7CiAgICAgX1dL
V2Vic2l0ZURhdGFUeXBlV2ViU1FMRGF0YWJhc2VzID0gMSA8PCA1LAogfTsKIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KIAogQGltcGxlbWVudGF0aW9uIF9XS1dlYnNpdGVEYXRhU3RvcmUKIApAQCAtMTA3LDYg
KzEwNiw2IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNTZXQ+IHRvV0tXZWJzaXRlRGF0YVR5cGVzKF9X
S1dlYnNpdGVEYXRhVHlwZXMgd2Vic2l0ZURhdGFUeXBlCiAKIEBlbmQKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJW
aWV3LmNwcAppbmRleCBlNjg3MzExNTI1ZjI0MTRlMDRiNTgwNTc1YTA3ZDNkM2RlYTM1M2FhLi4z
MmRkZGRmNzdhMTViMjFkOTliZjllNTlhNWVhNzlkMTgzZDM2NGExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMjA4Miw4
ICsyMDgyLDcgQEAgdm9pZCB3ZWJraXRXZWJWaWV3UnVuQXNNb2RhbChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KQogCiAjaWYgUExBVEZPUk0oR1RLKQogLy8gVGhpcyBpcyB0byBzdXBwcmVzcyB3YXJu
aW5ncyBhYm91dCBnZGtfdGhyZWFkc19sZWF2ZSBhbmQgZ2RrX3RocmVhZHNfZW50ZXIuCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIGdka190aHJlYWRzX2xlYXZlKCk7CiAjZW5kaWYKIApAQCAtMjA5MSw3
ICsyMDkwLDcgQEAgdm9pZCB3ZWJraXRXZWJWaWV3UnVuQXNNb2RhbChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KQogCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIGdka190aHJlYWRzX2VudGVyKCk7Ci0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXcubW0KaW5kZXggYmM1ZGUyYjU5ZjJmNGMyMWFlNTRiNjBhMzQzM2RjODRkYTJkNTBlNC4uOTZk
M2I4OTA5YTZhY2E2N2U0MjViNDkzMjliYzYzZTVlZjExMWE4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTk3OCwxMCArOTc4LDkgQEAgU29tZSBvdGhl
ciBlZGl0aW5nLXJlbGF0ZWQgbWV0aG9kcyBzdGlsbCB1bmltcGxlbWVudGVkOgogCiAtIChpZClf
d2ViX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOihOU1N0cmluZyAqKWF0dHJpYnV0
ZQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgcmV0dXJuIFtzdXBlciBhY2Nlc3NpYmlsaXR5
QXR0cmlidXRlVmFsdWU6YXR0cmlidXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogLSAodm9pZClfd2Vi
X3N1cGVyRG9Db21tYW5kQnlTZWxlY3RvcjooU0VMKXNlbGVjdG9yCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZENsaWVudC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL0Rvd25sb2FkQ2xpZW50Lm1tCmluZGV4IDBlYjFjZjY0MDMyODY4
NjFhYTQyNzRkZmM3NDQ4NDNmMGJkMDBhNmEuLjcyNDM0NDg3ZDQyMWNiZTFmOWJhMmVhNmNiYWNk
MThkMzI4ODU1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0Rv
d25sb2FkQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0Rvd25s
b2FkQ2xpZW50Lm1tCkBAIC0yMDIsMTAgKzIwMiw5IEBAIHZvaWQgRG93bmxvYWRDbGllbnQ6OmRl
Y2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKFdlYlByb2Nlc3NQb29sJiwgRG93
CiAKICAgICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMuZG93bmxvYWREZWNpZGVEZXN0aW5hdGlvbldp
dGhTdWdnZXN0ZWRGaWxlbmFtZUFsbG93T3ZlcndyaXRlKSB7CiAgICAgICAgIEJPT0wgYWxsb3dP
dmVyd3JpdGUgPSBOTzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgTlNTdHJpbmcg
KmRlc3RpbmF0aW9uID0gW21fZGVsZWdhdGUgX2Rvd25sb2FkOndyYXBwZXIoZG93bmxvYWRQcm94
eSkgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWU6ZmlsZW5hbWUgYWxsb3dP
dmVyd3JpdGU6JmFsbG93T3ZlcndyaXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGFsbG93T3ZlcndyaXRlID8gQWxsb3dPdmVyd3JpdGU6OlllcyA6IEFsbG93
T3ZlcndyaXRlOjpObywgZGVzdGluYXRpb24pOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFttX2Rl
bGVnYXRlIF9kb3dubG9hZDp3cmFwcGVyKGRvd25sb2FkUHJveHkpIGRlY2lkZURlc3RpbmF0aW9u
V2l0aFN1Z2dlc3RlZEZpbGVuYW1lOmZpbGVuYW1lIGNvbXBsZXRpb25IYW5kbGVyOkJsb2NrUHRy
PHZvaWQoQk9PTCwgTlNTdHJpbmcgKik+Ojpmcm9tQ2FsbGFibGUoW2NoZWNrZXIgPSBDb21wbGV0
aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUobV9kZWxlZ2F0ZS5nZXQoKS5nZXQoKSwgQHNl
bGVjdG9yKF9kb3dubG9hZDpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZTpj
b21wbGV0aW9uSGFuZGxlcjopKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0gKEJPT0wgYWxsb3dPdmVyd3JpdGUsIE5TU3RyaW5nICpkZXN0aW5hdGlvbikg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTGVnYWN5Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCmluZGV4IDE5YTU5YjQyY2FiN2I1
NDdlZDk0NDYwZTcyZmMwMzk2Y2ZlNzkyODcuLjZjMTI1Mzk2NTUwN2U1Yzk1MmNjMjc4MzEyZTAw
ZDhjMzU0NDcxODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xl
Z2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0KQEAgLTU2
LDEyICs1NiwxMSBAQAogICAgIF9jdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eSA9IGN1c3RvbVBy
b3RvY29sTWFuYWdlclByb3h5OwogICAgIF9jdXN0b21Qcm90b2NvbElEID0gY3VzdG9tUHJvdG9j
b2xJRDsKICAgICBfc3RvcmFnZVBvbGljeSA9IE5TVVJMQ2FjaGVTdG9yYWdlTm90QWxsb3dlZDsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIF91cmxDb25uZWN0aW9uID0gW1tOU1VSTENvbm5lY3Rp
b24gYWxsb2NdIGluaXRXaXRoUmVxdWVzdDpyZXF1ZXN0IGRlbGVnYXRlOnNlbGYgc3RhcnRJbW1l
ZGlhdGVseTpOT107CiAgICAgW191cmxDb25uZWN0aW9uIHNjaGVkdWxlSW5SdW5Mb29wOltOU1J1
bkxvb3AgbWFpblJ1bkxvb3BdIGZvck1vZGU6TlNSdW5Mb29wQ29tbW9uTW9kZXNdOwogICAgIFtf
dXJsQ29ubmVjdGlvbiBzdGFydF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICByZXR1cm4gc2VsZjsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0
ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQpp
bmRleCBkNWFjZDY0MzhkMGY1NTNmOTU4YTcyMDY2NmZmNDJkMWMwM2JhZmQ0Li5mYjlkYjY0MDQ2
NzlhNTk0YTA1YTExMTllNGE2YjI2NTU2M2I1YjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC01NzUsMTAgKzU3NSw5IEBAIHZv
aWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKFdlYlBhZ2VQCiAgICAgICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25h
dmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25Vc2VySW5mb0RlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcykKICAgICAgICAgICAg
IFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93
ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uOndyYXBwZXIobmF2aWdhdGlvbkFjdGlvbikgdXNlckluZm86dXNlckluZm8gPyBz
dGF0aWNfY2FzdDxpZCA8TlNTZWN1cmVDb2Rpbmc+Pih1c2VySW5mby0+d3JhcHBlcigpKSA6IG5p
bCBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKICAgICAgICAgZWxzZSB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgWyhpZCA8V0tOYXZpZ2F0
aW9uRGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9uRGVsZWdhdGUgX3dlYlZpZXc6bV9uYXZpZ2F0
aW9uU3RhdGUubV93ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246d3JhcHBl
cihuYXZpZ2F0aW9uQWN0aW9uKSBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgp
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAg
YXV0byBkZWNpc2lvbkhhbmRsZXJXaXRob3V0UG9saWNpZXMgPSBbZGVjaXNpb25IYW5kbGVyV2l0
aFBvbGljaWVzID0gV1RGTW92ZShkZWNpc2lvbkhhbmRsZXJXaXRoUG9saWNpZXMpXSAoV0tOYXZp
Z2F0aW9uQWN0aW9uUG9saWN5IGFjdGlvblBvbGljeSkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBmMGI5ZDMwMDBhOWU2NTQ1YWRi
MGIxMjQ1MzFmNTcwZTQ4MjI1OWI0Li4zZWNlODIwZWQ0YjMxNjQzNjkzZjUyMjQ3ZWRhZDljNjhi
ODFmZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0K
QEAgLTIwMywxMyArMjAzLDEyIEBAIHZvaWQgVUlEZWxlZ2F0ZTo6Q29udGV4dE1lbnVDbGllbnQ6
Om1lbnVGcm9tUHJvcG9zZWRNZW51KFdlYlBhZ2VQcm94eSYsIE5TTWVudSAqCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAobV91aURlbGVn
YXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdDb250ZXh0TWVudUZvckVsZW1lbnQpCiAgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilk
ZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNvbnRleHRNZW51Om1lbnUg
Zm9yRWxlbWVudDpjb250ZXh0TWVudUVsZW1lbnRJbmZvLmdldCgpXSk7CiAKICAgICBjb21wbGV0
aW9uSGFuZGxlcihbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzpt
X3VpRGVsZWdhdGUubV93ZWJWaWV3IGNvbnRleHRNZW51Om1lbnUgZm9yRWxlbWVudDpjb250ZXh0
TWVudUVsZW1lbnRJbmZvLmdldCgpIHVzZXJJbmZvOnVzZXJJbmZvID8gc3RhdGljX2Nhc3Q8aWQg
PE5TU2VjdXJlQ29kaW5nPj4odXNlckluZm8tPndyYXBwZXIoKSkgOiBuaWxdKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCBkMTZmNTg1MmRkZjg0YTRkNTkyYjlmMzNlNzhl
YjMyZGE5MjBiMTAzLi40ZTVhZTMxNzNhOTUxY2ZmMzkwYTE5NzYxMTBmNDBlYjRiMTkyYzM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29s
Q29jb2EubW0KQEAgLTE2NiwxMSArMTY2LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKQogdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKQogewogI2lmIFBMQVRGT1JNKE1BQykKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNv
bW11bmljYXRlV2l0aFdpbmRvd1NlcnZlcikpOwogICAgIHBhcmFtZXRlcnMuYWNjZXNzaWJpbGl0
eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQgPSBbW05TQXBwIGFjY2Vzc2liaWxpdHlBdHRy
aWJ1dGVWYWx1ZTpAIkFYRW5oYW5jZWRVc2VySW50ZXJmYWNlIl0gYm9vbFZhbHVlXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICNlbHNlCiAgICAgcGFyYW1ldGVycy5hY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50
ZXJmYWNlRW5hYmxlZCA9IGZhbHNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IGRlNDhlMGY4YTg5NWViODJjMTdiNGY4NzUzYzYz
ZTE1MjE2ODhlNWEuLjBhYTczNGE2OTIxNzhkOTY2NGExNGI4ZTE2NDhmYWYzNjNjZGM2OWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC01NTYs
MTUgKzU1NiwxNCBAQCBzdGF0aWMgY29uc3QgTlNVSW50ZWdlciBvcmRlcmVkTGlzdFNlZ21lbnQg
PSAyOwogICAgIFtpbnNlcnRMaXN0Q29udHJvbCBzZXRXaWR0aDpsaXN0Q29udHJvbFNlZ21lbnRX
aWR0aCBmb3JTZWdtZW50Om9yZGVyZWRMaXN0U2VnbWVudF07CiAgICAgaW5zZXJ0TGlzdENvbnRy
b2wuZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZToxNV07CiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIGlkIHNlZ21lbnRFbGVtZW50ID0gTlNBY2Nlc3NpYmlsaXR5VW5pZ25vcmVkRGVz
Y2VuZGFudChpbnNlcnRMaXN0Q29udHJvbCk7CiAgICAgTlNBcnJheSAqc2VnbWVudHMgPSBbc2Vn
bWVudEVsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eUNo
aWxkcmVuQXR0cmlidXRlXTsKICAgICBBU1NFUlQoc2VnbWVudHMuY291bnQgPT0gMyk7CiAgICAg
W3NlZ21lbnRzW25vTGlzdFNlZ21lbnRdIGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVlOldl
YkNvcmU6Omluc2VydExpc3RUeXBlTm9uZSgpIGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlE
ZXNjcmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgW3NlZ21lbnRzW3Vub3JkZXJlZExpc3RTZWdtZW50
XSBhY2Nlc3NpYmlsaXR5U2V0T3ZlcnJpZGVWYWx1ZTpXZWJDb3JlOjppbnNlcnRMaXN0VHlwZUJ1
bGxldGVkQWNjZXNzaWJpbGl0eVRpdGxlKCkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eURl
c2NyaXB0aW9uQXR0cmlidXRlXTsKICAgICBbc2VnbWVudHNbb3JkZXJlZExpc3RTZWdtZW50XSBh
Y2Nlc3NpYmlsaXR5U2V0T3ZlcnJpZGVWYWx1ZTpXZWJDb3JlOjppbnNlcnRMaXN0VHlwZU51bWJl
cmVkQWNjZXNzaWJpbGl0eVRpdGxlKCkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eURlc2Ny
aXB0aW9uQXR0cmlidXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIHNlbGYudmlldyA9IGluc2VydExp
c3RDb250cm9sOwogCkBAIC0xNjM4LDExICsxNjM3LDEwIEBAIHZvaWQgV2ViVmlld0ltcGw6OnVw
ZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKQogICAgICAgICBpZiAod2Vha1RoaXMtPm1fbmVlZHNW
aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKQogICAgICAgICAgICAgdmlld0ZyYW1lSW5XaW5k
b3dDb29yZGluYXRlcyA9IFt3ZWFrVGhpcy0+bV92aWV3IGNvbnZlcnRSZWN0Olt3ZWFrVGhpcy0+
bV92aWV3IGZyYW1lXSB0b1ZpZXc6bmlsXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICAgICAgaWYgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCiAgICAgICAgICAgICBhY2Nlc3NpYmlsaXR5UG9zaXRpb24gPSBbW3dlYWtUaGlzLT5tX3Zp
ZXcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVBvc2l0aW9uQXR0
cmlidXRlXSBwb2ludFZhbHVlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAKICAgICAg
ICAgd2Vha1RoaXMtPm1fcGFnZS0+d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQodmlld0ZyYW1l
SW5XaW5kb3dDb29yZGluYXRlcywgYWNjZXNzaWJpbGl0eVBvc2l0aW9uKTsKICAgICB9KTsKQEAg
LTM3MTcsMTAgKzM3MTUsOSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkcmFnZ2VkSW1hZ2UoTlNJbWFn
ZSAqLCBDR1BvaW50IGVuZFBvaW50LCBOU0RyYWdPcGVyYXRpb24gb3BlcgogCiB2b2lkIFdlYlZp
ZXdJbXBsOjpzZW5kRHJhZ0VuZFRvUGFnZShDR1BvaW50IGVuZFBvaW50LCBOU0RyYWdPcGVyYXRp
b24gb3BlcmF0aW9uKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNQb2ludCB3aW5kb3dJ
bWFnZUxvYyA9IFtbbV92aWV3IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpOU1BvaW50RnJv
bUNHUG9pbnQoZW5kUG9pbnQpXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBOU1BvaW50IHdpbmRvd01vdXNl
TG9jID0gd2luZG93SW1hZ2VMb2M7CiAKICAgICAvLyBQcmV2ZW50IHF1ZXVlZCBtb3VzZURyYWdn
ZWQgZXZlbnRzIGZyb20gY29taW5nIGFmdGVyIHRoZSBkcmFnIGFuZCBmYWtlIG1vdXNlVXAgZXZl
bnQuCkBAIC0zOTk4LDEwICszOTk1LDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c3RhcnREcmFnKGNv
bnN0IFdlYkNvcmU6OkRyYWdJdGVtJiBpdGVtLCBjb25zdCBTaGFyZWFibGVCaXRtYXAKICAgICAv
LyBUaGUgY2FsbCBiZWxvdyBjb3VsZCByZWxlYXNlIHRoZSB2aWV3LgogICAgIGF1dG8gcHJvdGVj
dG9yID0gbV92aWV3LmdldCgpOwogICAgIGF1dG8gY2xpZW50RHJhZ0xvY2F0aW9uID0gaXRlbS5k
cmFnTG9jYXRpb25JbldpbmRvd0Nvb3JkaW5hdGVzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
TlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkID0gW05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5h
bWU6TlNEcmFnUGJvYXJkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIGlmIChhdXRvJiBpbmZvID0gaXRl
bS5wcm9taXNlZEF0dGFjaG1lbnRJbmZvKSB7CiAgICAgICAgIE5TU3RyaW5nICp1dGlUeXBlID0g
aW5mby5jb250ZW50VHlwZTsKQEAgLTQwMzAsMTAgKzQwMjYsOSBAQCB2b2lkIFdlYlZpZXdJbXBs
OjpzdGFydERyYWcoY29uc3QgV2ViQ29yZTo6RHJhZ0l0ZW0mIGl0ZW0sIGNvbnN0IFNoYXJlYWJs
ZUJpdG1hcAogICAgIH0KIAogICAgIFtwYXN0ZWJvYXJkIHNldFN0cmluZzpAIiIgZm9yVHlwZTpQ
YXN0ZWJvYXJkVHlwZXM6OldlYkR1bW15UGJvYXJkVHlwZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBbbV92aWV3IGRyYWdJbWFnZTpkcmFnTlNJbWFnZS5nZXQoKSBhdDpOU1BvaW50RnJvbUNH
UG9pbnQoY2xpZW50RHJhZ0xvY2F0aW9uKSBvZmZzZXQ6TlNaZXJvU2l6ZSBldmVudDptX2xhc3RN
b3VzZURvd25FdmVudC5nZXQoKSBwYXN0ZWJvYXJkOnBhc3RlYm9hcmQgc291cmNlOm1fdmlldy5n
ZXRBdXRvcmVsZWFzZWQoKSBzbGlkZUJhY2s6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBtX3BhZ2Ut
PmRpZFN0YXJ0RHJhZygpOwogfQogCkBAIC00Nzc5LDExICs0Nzc0LDEwIEBAIHZvaWQgV2ViVmll
d0ltcGw6OmNoYXJhY3RlckluZGV4Rm9yUG9pbnQoTlNQb2ludCBwb2ludCwgdm9pZCheY29tcGxl
dGlvbkhhbmRsZXJQCiAKICAgICBOU1dpbmRvdyAqd2luZG93ID0gW21fdmlldyB3aW5kb3ddOwog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAod2luZG93KQogICAgICAgICBwb2ludCA9IFt3
aW5kb3cgY29udmVydFNjcmVlblRvQmFzZTpwb2ludF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgcG9pbnQg
PSBbbV92aWV3IGNvbnZlcnRQb2ludDpwb2ludCBmcm9tVmlldzpuaWxdOyAgLy8gdGhlIHBvaW50
IGlzIHJlbGF0aXZlIHRvIHRoZSBtYWluIGZyYW1lCiAKICAgICBtX3BhZ2UtPmNoYXJhY3Rlcklu
ZGV4Rm9yUG9pbnRBc3luYyhXZWJDb3JlOjpJbnRQb2ludChwb2ludCksIFtjb21wbGV0aW9uSGFu
ZGxlcl0odWludDY0X3QgcmVzdWx0LCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3Ip
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdp
blByb2Nlc3NQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvbWFj
L1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQppbmRleCBkNDM1ZTFmMzQwY2JlMjRjN2VkYTliNzRh
MjcyYjI0ZmRkMzEzZGRkLi5lZjg2Mzg1MzYzMTNkZmQ0ZDQ4NzU5MmQwNjgwYmZlOTljMTFkNWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Q
cm9jZXNzUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9t
YWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC05NCwxMCArOTQsOSBAQCB2b2lkIFBsdWdp
blByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplUGx1Z2luUHJvY2VzcyhQbHVnaW5Qcm9j
ZXNzQ3JlYXRpb25QYQogYm9vbCBQbHVnaW5Qcm9jZXNzUHJveHk6OmdldFBsdWdpblByb2Nlc3NT
ZXJpYWxOdW1iZXIoUHJvY2Vzc1NlcmlhbE51bWJlciYgcGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJl
cikKIHsKICAgICBwaWRfdCBwbHVnaW5Qcm9jZXNzUElEID0gcHJvY2Vzc0lkZW50aWZpZXIoKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBHZXRQcm9jZXNzRm9yUElEKHBsdWdpblBy
b2Nlc3NQSUQsICZwbHVnaW5Qcm9jZXNzU2VyaWFsTnVtYmVyKSA9PSBub0VycjsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIH0KIAogdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6Om1ha2VQbHVnaW5Qcm9jZXNzVGhlRnJv
bnRQcm9jZXNzKCkKQEAgLTEwNiwyMCArMTA1LDE4IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5
OjptYWtlUGx1Z2luUHJvY2Vzc1RoZUZyb250UHJvY2VzcygpCiAgICAgaWYgKCFnZXRQbHVnaW5Q
cm9jZXNzU2VyaWFsTnVtYmVyKHBsdWdpblByb2Nlc3NTZXJpYWxOdW1iZXIpKQogICAgICAgICBy
ZXR1cm47CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFNldEZyb250UHJvY2VzcygmcGx1Z2lu
UHJvY2Vzc1NlcmlhbE51bWJlcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vz
c1Byb3h5OjptYWtlVUlQcm9jZXNzVGhlRnJvbnRQcm9jZXNzKCkKIHsKICAgICBQcm9jZXNzU2Vy
aWFsTnVtYmVyIHByb2Nlc3NTZXJpYWxOdW1iZXI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBH
ZXRDdXJyZW50UHJvY2VzcygmcHJvY2Vzc1NlcmlhbE51bWJlcik7CiAgICAgU2V0RnJvbnRQcm9j
ZXNzKCZwcm9jZXNzU2VyaWFsTnVtYmVyKTsgICAgICAgICAgICAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAog
dm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OnNldEZ1bGxzY3JlZW5XaW5kb3dJc1Nob3dpbmcoYm9v
bCBmdWxsc2NyZWVuV2luZG93SXNTaG93aW5nKQpAQCAtMTUyLDEwICsxNDksOSBAQCB2b2lkIFBs
dWdpblByb2Nlc3NQcm94eTo6ZXhpdEZ1bGxzY3JlZW4oKQogewogICAgIC8vIElmIHRoZSBwbHVn
LWluIGhvc3QgaXMgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gdGhlbiB3ZSBzaG91bGQgYnJpbmcg
b3Vyc2VsdmVzIHRvIHRoZSBmcm9udCB3aGVuIGl0IGV4aXRzIGZ1bGwtc2NyZWVuIG1vZGUuCiAg
ICAgUHJvY2Vzc1NlcmlhbE51bWJlciBmcm9udFByb2Nlc3NTZXJpYWxOdW1iZXI7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBHZXRGcm9udFByb2Nlc3MoJmZyb250UHJvY2Vzc1NlcmlhbE51bWJl
cik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAKICAgICAvLyBUaGUgVUkgcHJvY2VzcyBtdXN0IGJlIHRoZSBmcm9u
dCBwcm9jZXNzIGluIG9yZGVyIHRvIGNoYW5nZSB0aGUgcHJlc2VudGF0aW9uIG1vZGUuCiAgICAg
bWFrZVVJUHJvY2Vzc1RoZUZyb250UHJvY2VzcygpOwpAQCAtMTY4LDE1ICsxNjQsMTMgQEAgdm9p
ZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmV4aXRGdWxsc2NyZWVuKCkKICAgICAvLyBJZiB0aGUgcGx1
Zy1pbiBwcm9jZXNzIHdhcyBub3QgdGhlIGZyb250IHByb2Nlc3MsIHN3aXRjaCBiYWNrIHRvIHRo
ZSBwcmV2aW91cyBmcm9udCBwcm9jZXNzLgogICAgIC8vIChPdGhlcndpc2Ugd2UnbGwga2VlcCB0
aGUgVUkgcHJvY2VzcyBhcyB0aGUgZnJvbnQgcHJvY2VzcykuCiAgICAgQm9vbGVhbiBpc1BsdWdp
blByb2Nlc3NGcm9udFByb2Nlc3M7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBTYW1lUHJvY2Vz
cygmZnJvbnRQcm9jZXNzU2VyaWFsTnVtYmVyLCAmcGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJlciwg
JmlzUGx1Z2luUHJvY2Vzc0Zyb250UHJvY2Vzcyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgaWYgKCFpc1Bs
dWdpblByb2Nlc3NGcm9udFByb2Nlc3MpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAg
ICAgU2V0RnJvbnRQcm9jZXNzKCZmcm9udFByb2Nlc3NTZXJpYWxOdW1iZXIpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW0KaW5kZXggYjM2MmQ1N2I5YzQz
YTg1ZjM2NmUzM2I2YTdkNDkyOTlmNmE5ZDRmMy4uMjM1YWE1Yjk3MmJmMjE5NWUzYTYxMDJlMmU3
YWRlMzg0ZmEzZDg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Nt
YXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW0KQEAgLTM3LDEyICszNywxMSBA
QAogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KIAogI2ltcG9ydCAiVUlLaXRTUEkuaCIKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIHN0
YXRpYyBjb25zdCBmbG9hdCBzbWFydE1hZ25pZmljYXRpb25QYW5TY3JvbGxUaHJlc2hvbGRab29t
ZWRPdXQgPSA2MDsKIHN0YXRpYyBjb25zdCBmbG9hdCBzbWFydE1hZ25pZmljYXRpb25QYW5TY3Jv
bGxUaHJlc2hvbGRJUGhvbmUgPSAxMDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQppbmRleCA4OGQ5Mzk3NzEzMDBm
YzA5YWM1MTg2YWRmMTMxMzAyODQxMDdkMDE0Li5iZGNjNTcxMGZjN2Y0OTY1ZjNjOThkZTE3MTYx
MzU5ZmE3MzU3NTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tH
ZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KQEAgLTUzLDggKzUzLDcgQEAKICNpbXBvcnQg
PFdlYktpdC9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV2ViQWxsb3dEZW55UG9saWN5TGlzdGVuZXIuaD4KIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAog
QGludGVyZmFjZSBXS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MgKF9XS0dlb2xvY2F0aW9uQ29yZUxv
Y2F0aW9uTGlzdGVuZXIpIDxfV0tHZW9sb2NhdGlvbkNvcmVMb2NhdGlvbkxpc3RlbmVyPgogQGVu
ZApAQCAtMzU0LDYgKzM1Myw2IEBAIHN0YXRpYyB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShX
S0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1hbmFnZXIsIGJvCiB9CiBAZW5kCiAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLTGVnYWN5UERGVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0xlZ2FjeVBERlZpZXcubW0KaW5kZXggMGI1ZDlkNmM2NDZiNDI4MmMwZmNi
NzNlMWNiZmQwY2EzNGYzNWFhNi4uZDM4ZjMxYzgxNWYzYzlmM2U5OGRhNTJlNTRmYjg4ODg0ZWQw
YTQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTGVnYWN5UERG
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tMZWdhY3lQREZWaWV3
Lm1tCkBAIC01MSw4ICs1MSw3IEBACiAKIC8vIEFsbCBvZiBVSVBERlBhZ2UqIGFyZSBkZXByZWNh
dGVkLCBzbyBqdXN0IGlnbm9yZSBkZXByZWNhdGVkIGRlY2xhcmF0aW9ucwogLy8gaW4gdGhpcyBm
aWxlIHVudGlsIHdlIHN3aXRjaCBvZmYgdGhlbS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIGNvbnN0IENH
RmxvYXQgcGRmUGFnZU1hcmdpbiA9IDg7CiBjb25zdCBDR0Zsb2F0IHBkZk1pbmltdW1ab29tU2Nh
bGUgPSAxOwpAQCAtODU3LDYgKzg1Niw2IEBAIHN0YXRpYyBOU1N0cmluZ0NvbXBhcmVPcHRpb25z
IHN0cmluZ0NvbXBhcmVPcHRpb25zKF9XS0ZpbmRPcHRpb25zIG9wdGlvbnMpCiAKICNlbmRpZiAv
LyAhUExBVEZPUk0oSU9TTUFDKQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogI2VuZGlmIC8vIEVOQUJMRShXS0xFR0FD
WVBERlZJRVcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZQ
YWdlTnVtYmVySW5kaWNhdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERG
UGFnZU51bWJlckluZGljYXRvci5tbQppbmRleCA5NzliMzBkMzgxNGIxMzA2YzBhYWIxOTU2ZWMz
N2EzZGE2NjA2MzhiLi44MTlhZmI3MGYzNTI4NjE4N2M4NGI4ZDhkNzkzZDQ0ODJmNDY3MjQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZQYWdlTnVtYmVySW5k
aWNhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1BERlBhZ2VOdW1i
ZXJJbmRpY2F0b3IubW0KQEAgLTE4MywxMCArMTgzLDkgQEAgY29uc3QgTlNUaW1lSW50ZXJ2YWwg
aW5kaWNhdG9yTW92ZUR1cmF0aW9uID0gMC4zOwogICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY29u
dGV4dCk7CiAgICAgQ0dDb250ZXh0QWRkUmVjdChjb250ZXh0LCBjb3JuZXJJbWFnZUJvdW5kcyk7
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFVJQmV6aWVyUGF0aCAqY29ybmVyUGF0aCA9IFtV
SUJlemllclBhdGggYmV6aWVyUGF0aFdpdGhSb3VuZGVkUmVjdDpjb3JuZXJJbWFnZUJvdW5kcyBi
eVJvdW5kaW5nQ29ybmVyczooVUlSZWN0Q29ybmVyKVVJQWxsQ29ybmVycyBjb3JuZXJSYWRpaTpD
R1NpemVNYWtlKGluZGljYXRvckNvcm5lclJhZGl1cywgaW5kaWNhdG9yQ29ybmVyUmFkaXVzKV07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAgICAgQ0dDb250ZXh0QWRkUGF0aChjb250ZXh0LCBbY29ybmVyUGF0aCBD
R1BhdGhdKTsKICAgICBDR0NvbnRleHRFT0NsaXAoY29udGV4dCk7CiAgICAgQ0dDb250ZXh0Rmls
bFJlY3QoY29udGV4dCwgY29ybmVySW1hZ2VCb3VuZHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLQWlyUGxheVJvdXRlUGlja2VyLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLQWlyUGxheVJvdXRlUGlja2VyLm1tCmluZGV4
IDc0YmQyMzJkNjIyZWU4MWUwN2JmNDQ5ZTMwODdhMjU5N2ZjNzI4ZmMuLmNjM2E4ZWQ1OTY2YTJk
MDAzOTY2ZmMwYjAwOGMwNTdlODliYzBlOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9mb3Jtcy9XS0FpclBsYXlSb3V0ZVBpY2tlci5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tBaXJQbGF5Um91dGVQaWNrZXIubW0KQEAgLTM5LDgg
KzM5LDcgQEAKICNpbXBvcnQgIldLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIgogI2ltcG9ydCAi
V2ViUGFnZVByb3h5LmgiCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIFNPRlRfTElOS19GUkFNRVdPUkso
TWVkaWFQbGF5ZXIpCiBTT0ZUX0xJTktfQ0xBU1MoTWVkaWFQbGF5ZXIsIE1QQVZSb3V0aW5nQ29u
dHJvbGxlcikKQEAgLTE2MCw3ICsxNTksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBA
ZW5kCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogCiAjZWxzZSAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tCmluZGV4IDgyZDZmMmEwZjVhOTBm
MGQ0Zjk1YmI0ZmZiYjNmZThjMWJiZDg2NzkuLmI5YzFmYWVmNGMwNjc1MzE4YTI1ZDhmMTM0NzE4
YzZkNWIyZmQwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jt
cy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
Zm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0KQEAgLTQ2LDggKzQ2LDcgQEAKIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogc3RhdGljIGlubGluZSBVSUltYWdl
UGlja2VyQ29udHJvbGxlckNhbWVyYURldmljZSBjYW1lcmFEZXZpY2VGb3JNZWRpYUNhcHR1cmVU
eXBlKFdlYkNvcmU6Ok1lZGlhQ2FwdHVyZVR5cGUgbWVkaWFDYXB0dXJlVHlwZSkKIHsKQEAgLTE2
MCwxMCArMTU5LDkgQEAgc3RhdGljIGlubGluZSBVSUltYWdlICpjYW1lcmFJY29uKCkKICAgICBC
T09MIF91c2luZ0NhbWVyYTsKICAgICBSZXRhaW5QdHI8VUlJbWFnZVBpY2tlckNvbnRyb2xsZXI+
IF9pbWFnZVBpY2tlcjsKICAgICBSZXRhaW5QdHI8VUlWaWV3Q29udHJvbGxlcj4gX3ByZXNlbnRh
dGlvblZpZXdDb250cm9sbGVyOyAvLyBpUGhvbmUgYWx3YXlzLiBpUGFkIGZvciBGdWxsc2NyZWVu
IENhbWVyYS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFJldGFpblB0cjxVSVBvcG92ZXJDb250
cm9sbGVyPiBfcHJlc2VudGF0aW9uUG9wb3ZlcjsgLy8gaVBhZCBmb3IgYWN0aW9uIHNoZWV0IGFu
ZCBQaG90byBMaWJyYXJ5LgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFJldGFpblB0cjxVSURvY3VtZW50TWVu
dVZpZXdDb250cm9sbGVyPiBfZG9jdW1lbnRNZW51Q29udHJvbGxlcjsKICAgICBXZWJDb3JlOjpN
ZWRpYUNhcHR1cmVUeXBlIF9tZWRpYUNhcHR1cmVUeXBlOwogfQpAQCAtNDUwLDEwICs0NDgsOSBA
QCBzdGF0aWMgTlNBcnJheSAqVVRJc0Zvck1JTUVUeXBlcyhOU0FycmF5ICptaW1lVHlwZXMpCiB7
CiAgICAgW3NlbGYgX2Rpc21pc3NEaXNwbGF5QW5pbWF0ZWQ6YW5pbWF0ZWRdOwogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBfcHJlc2VudGF0aW9uUG9wb3ZlciA9IGFkb3B0TlMoW1tVSVBvcG92
ZXJDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aENvbnRlbnRWaWV3Q29udHJvbGxlcjpjb250ZW50
Vmlld0NvbnRyb2xsZXJdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbX3ByZXNlbnRhdGlvblBvcG92ZXIg
c2V0RGVsZWdhdGU6c2VsZl07CiAgICAgW19wcmVzZW50YXRpb25Qb3BvdmVyIHByZXNlbnRQb3Bv
dmVyRnJvbVJlY3Q6Q0dSZWN0SW50ZWdyYWwoQ0dSZWN0TWFrZShfaW50ZXJhY3Rpb25Qb2ludC54
LCBfaW50ZXJhY3Rpb25Qb2ludC55LCAxLCAxKSkgaW5WaWV3Ol92aWV3IHBlcm1pdHRlZEFycm93
RGlyZWN0aW9uczpVSVBvcG92ZXJBcnJvd0RpcmVjdGlvbkFueSBhbmltYXRlZDphbmltYXRlZF07
CiB9CkBAIC03MjAsNiArNzE3LDYgQEAgc3RhdGljIE5TQXJyYXkgKlVUSXNGb3JNSU1FVHlwZXMo
TlNBcnJheSAqbWltZVR5cGVzKQogCiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dL
Rm9ybUNvbG9yQ29udHJvbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9X
S0Zvcm1Db2xvckNvbnRyb2wubW0KaW5kZXggNjA5YmFjMzFmNTZhYTVhYWViZjAzYzJlMzE4YzE1
NTRhNThlOTVhNy4uODI0ZWQzZDkxYmNiMTdiMWMxNDBlZDRmYTNiYWExNmFlY2UwNzQwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29u
dHJvbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtQ29s
b3JDb250cm9sLm1tCkBAIC02NiwxMCArNjYsOSBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBjb2xv
clBvcG92ZXJDb3JuZXJSYWRpdXMgPSA5OwogICAgIFtwb3BvdmVyVmlld0NvbnRyb2xsZXIgc2V0
Vmlldzpjb250cm9sQ29udGFpbmVyVmlldy5nZXQoKV07CiAgICAgW3BvcG92ZXJWaWV3Q29udHJv
bGxlciBzZXRQcmVmZXJyZWRDb250ZW50U2l6ZTpbY29udHJvbENvbnRhaW5lclZpZXcgc2l6ZV1d
OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBSZXRhaW5QdHI8VUlQb3BvdmVyQ29udHJvbGxl
cj4gY29udHJvbGxlciA9IGFkb3B0TlMoW1tVSVBvcG92ZXJDb250cm9sbGVyIGFsbG9jXSBpbml0
V2l0aENvbnRlbnRWaWV3Q29udHJvbGxlcjpwb3BvdmVyVmlld0NvbnRyb2xsZXIuZ2V0KCldKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICAgICBbc2VsZiBzZXRQb3BvdmVyQ29udHJvbGxlcjpjb250cm9sbGVyLmdl
dCgpXTsKIAogICAgIHJldHVybiBzZWxmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29udHJvbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW0KaW5kZXggMWNkNjJlM2JiNTE4
MTNiNzE0ZTM0YTNjZmJlYjczYWJhYWE5MGNlMy4uZDAyZGZmZmZkYTVhNjY0NjExMjRkMzg1ODE3
ZDg2NTlhNjAyY2VjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zv
cm1zL1dLRm9ybUlucHV0Q29udHJvbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLm1tCkBAIC0zMzAsMTYgKzMzMCwxNCBAQCBzdGF0
aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga01pbGxpc2Vjb25kc1BlclNlY29uZCA9IDEwMDA7CiAg
ICAgUmV0YWluUHRyPFVJTmF2aWdhdGlvbkNvbnRyb2xsZXI+IG5hdmlnYXRpb25Db250cm9sbGVy
ID0gYWRvcHROUyhbW1VJTmF2aWdhdGlvbkNvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoUm9vdFZp
ZXdDb250cm9sbGVyOl92aWV3Q29udHJvbGxlci5nZXQoKV0pOwogICAgIFVJTmF2aWdhdGlvbkl0
ZW0gKm5hdmlnYXRpb25JdGVtID0gbmF2aWdhdGlvbkNvbnRyb2xsZXIuZ2V0KCkubmF2aWdhdGlv
bkJhci50b3BJdGVtOwogICAgIE5TU3RyaW5nICpjbGVhclN0cmluZyA9IFdFQl9VSV9TVFJJTkdf
S0VZKCJDbGVhciIsICJDbGVhciBCdXR0b24gRGF0ZSBQb3BvdmVyIiwgIkNsZWFyIGJ1dHRvbiBp
biBkYXRlIGlucHV0IHBvcG92ZXIiKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFVJQmFyQnV0
dG9uSXRlbSAqY2xlYXJCdXR0b24gPSBbW1tVSUJhckJ1dHRvbkl0ZW0gYWxsb2NdIGluaXRXaXRo
VGl0bGU6Y2xlYXJTdHJpbmcgc3R5bGU6VUlCYXJCdXR0b25JdGVtU3R5bGVCb3JkZXJlZCB0YXJn
ZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKGNsZWFyOildIGF1dG9yZWxlYXNlXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAgICBbbmF2aWdhdGlvbkl0ZW0gc2V0UmlnaHRCYXJCdXR0b25JdGVtOmNsZWFyQnV0dG9u
XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgUmV0YWluUHRyPFVJUG9wb3ZlckNvbnRyb2xs
ZXI+IGNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbVUlQb3BvdmVyQ29udHJvbGxlciBhbGxvY10gaW5p
dFdpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6bmF2aWdhdGlvbkNvbnRyb2xsZXIuZ2V0KCldKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICAgICBbc2VsZiBzZXRQb3BvdmVyQ29udHJvbGxlcjpjb250cm9sbGVyLmdl
dCgpXTsKIAogICAgIHJldHVybiBzZWxmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLmgKaW5kZXggMGVjOGM2NTUzODc5YWJkYzViOTIxMGY5
NTc4MjRiMDdlMGIwZmRlYi4uYzk2NzYxYzZiZDkzNzAwZTMyZmM4YjdkYmM3ZGI4ZDgyMzIzOGQ2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBv
cG92ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9w
b3Zlci5oCkBAIC00MCwxMCArNDAsOSBAQAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBXS0NvbnRlbnRWaWV3ICp2aWV3OwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBD
R1BvaW50IHByZXNlbnRhdGlvblBvaW50OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZXRhaW4pIFVJUG9wb3ZlckNvbnRyb2xsZXIgKnBvcG92ZXJDb250cm9sbGVyOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBpZCA8V0tSb3RhdGluZ1BvcG92
ZXJEZWxlZ2F0ZT4gZGlzbWlzc2lvbkRlbGVnYXRlOwogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9wb3Zlci5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLm1tCmluZGV4IGJlMmYwZDJj
YWQ0ZmY4YzJmZDQxODE1NjNiN2U2ZGI2ZGNiOGUyYTAuLjZiMThjM2QwMjJlNTljNGZiNmRmOTA3
NjRmNWI2MjllOGVjZGZjNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLm1tCkBAIC0zNiw4ICszNiw3IEBACiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIEBpbXBsZW1lbnRhdGlvbiBXS0Zvcm1S
b3RhdGluZ0FjY2Vzc29yeVBvcG92ZXIKIApAQCAtMTc4LDYgKzE3Nyw2IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAKIEBlbmQKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICNlbmRpZiAvLyBQTEFURk9STShJT1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtU2Vs
ZWN0UG9wb3Zlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1T
ZWxlY3RQb3BvdmVyLm1tCmluZGV4IDU3YmZhNDA3MDRhMjBlMzJlZWNiOGZlMWM3NmMyYzUwZThk
OGY5MDQuLjQzYjdlY2JmYmFjNjdkYTBhYjRjMWVmMmJhN2I3NjU3ZWRhYmY5OWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RQb3BvdmVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RQ
b3BvdmVyLm1tCkBAIC00MDEsMTAgKzQwMSw5IEBAIHN0YXRpYyBOU1N0cmluZyAqc3RyaW5nV2l0
aFdyaXRpbmdEaXJlY3Rpb24oTlNTdHJpbmcgKnN0cmluZywgVUlUZXh0V3JpdGluZ0RpcmVjCiAg
ICAgZWxzZQogICAgICAgICBwb3BvdmVyVmlld0NvbnRyb2xsZXIucHJlZmVycmVkQ29udGVudFNp
emUgPSBwb3BvdmVyU2l6ZTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHNlbGYucG9w
b3ZlckNvbnRyb2xsZXIgPSBbW1tVSVBvcG92ZXJDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aENv
bnRlbnRWaWV3Q29udHJvbGxlcjpwb3BvdmVyVmlld0NvbnRyb2xsZXJdIGF1dG9yZWxlYXNlXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKIAogICAgIFtuYXZDb250cm9sbGVyIHJlbGVhc2VdOwogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDhj
MjNiMjhiODIwYjViZTFlNzQxYjMxN2UzZDIwOWZmYTgxNjFkMGMuLmM0NzliYjlhMDE2YTQzODEw
ZTRiM2E3MjI4ODU4NWY0MTc0Njk1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTQxOSwxMCArNDE5LDkgQEAgdm9pZCBQYWdl
Q2xpZW50SW1wbDo6cGlubmVkU3RhdGVEaWRDaGFuZ2UoKQogICAgIAogSW50UG9pbnQgUGFnZUNs
aWVudEltcGw6OnNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmIHBvaW50KQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgTlNQb2ludCB3aW5kb3dDb29yZCA9IFtbbV92aWV3IHdpbmRv
d10gY29udmVydFNjcmVlblRvQmFzZTpwb2ludF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgcmV0dXJuIElu
dFBvaW50KFttX3ZpZXcgY29udmVydFBvaW50OndpbmRvd0Nvb3JkIGZyb21WaWV3Om5pbF0pOwog
fQogICAgIApAQCAtNDMwLDEwICs0MjksOSBAQCBJbnRSZWN0IFBhZ2VDbGllbnRJbXBsOjpyb290
Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgTlNSZWN0IHRlbXBSZWN0
ID0gcmVjdDsKICAgICB0ZW1wUmVjdCA9IFttX3ZpZXcgY29udmVydFJlY3Q6dGVtcFJlY3QgdG9W
aWV3Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICB0ZW1wUmVjdC5vcmlnaW4gPSBbW21f
dmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46dGVtcFJlY3Qub3JpZ2luXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdCh0ZW1wUmVjdCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIubW0KaW5kZXggNWE2YmZjMzNjZWYyZDIwNmE5ZTA2ZDE1ZGRmMWM4N2NjMzcx
MjQ1Ni4uYjYwYTU1Yzk1YWViMmVjZmE5MDM4Y2ZkNjE3Yzc3ZjIxOWIxOTc2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIubW0KQEAgLTI2NSwxMiArMjY1LDExIEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gY3JlYXRlSW1hZ2VXaXRoQ29waWVkRGF0YShDR0ltYWdlUmVmIHNvdXJjZUltYWdl
KQogICAgIC8vIGZ1dHVyZSBvdmVyaGVhZC4KICAgICB3ZWJWaWV3Q29udGVudHMgPSBjcmVhdGVJ
bWFnZVdpdGhDb3BpZWREYXRhKHdlYlZpZXdDb250ZW50cy5nZXQoKSk7CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIC8vIFNjcmVlbiB1cGRhdGVzIHRvIGJlIHJlLWVuYWJsZWQgaW4gX3N0YXJ0
RW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOgogICAgIE5TRGlzYWJsZVNjcmVl
blVwZGF0ZXMoKTsKICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpOT107Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiAKICAgICBbc2VsZiBfbWFuYWdlcl0tPnNhdmVTY3JvbGxQb3NpdGlvbigpOwogICAg
IF9zYXZlZFRvcENvbnRlbnRJbnNldCA9IF9wYWdlLT50b3BDb250ZW50SW5zZXQoKTsKQEAgLTMy
NSwxMSArMzI0LDEwIEBAIHN0YXRpYyBjb25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsg
MjAgKyAyMDsgLy8gTm90ZTogS2VlcCBpbiBzeW5jIHdpdGggbWVkCiAgICAgaWYgKGNvbXBsZXRl
ZCkgewogICAgICAgICBfZnVsbFNjcmVlblN0YXRlID0gSW5GdWxsU2NyZWVuOwogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgICAgIC8vIFNjcmVlbiB1cGRhdGVzIHRvIGJlIHJlLWVuYWJs
ZWQgdGEgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBibG9jay4KICAgICAgICAgTlNEaXNhYmxlU2Ny
ZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgW3NlbGYgX21hbmFnZXJdLT5k
aWRFbnRlckZ1bGxTY3JlZW4oKTsKICAgICAgICAgW3NlbGYgX21hbmFnZXJdLT5zZXRBbmltYXRp
bmdGdWxsU2NyZWVuKGZhbHNlKTsKIApAQCAtMzQ3LDEwICszNDUsOSBAQCBzdGF0aWMgY29uc3Qg
ZmxvYXQgbWluVmlkZW9XaWR0aCA9IDQ4MCArIDIwICsgMjA7IC8vIE5vdGU6IEtlZXAgaW4gc3lu
YyB3aXRoIG1lZAogICAgICAgICAvLyBUcmFuc2l0aW9uIHRvIGZ1bGxzY3JlZW4gZmFpbGVkLiBD
bGVhbiB1cC4KICAgICAgICAgX2Z1bGxTY3JlZW5TdGF0ZSA9IE5vdEluRnVsbFNjcmVlbjsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlz
cGxheTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgX3BhZ2UtPnNldFN1cHByZXNzVmlz
aWJpbGl0eVVwZGF0ZXMoZmFsc2UpOwogCiAgICAgICAgIE5TUmVzcG9uZGVyICpmaXJzdFJlc3Bv
bmRlciA9IFtbc2VsZiB3aW5kb3ddIGZpcnN0UmVzcG9uZGVyXTsKQEAgLTM2OSwxMCArMzY2LDkg
QEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIwOyAvLyBO
b3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKICAgICAgICAgW3NlbGYgX21hbmFnZXJdLT5zZXRB
bmltYXRpbmdGdWxsU2NyZWVuKGZhbHNlKTsKICAgICB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgaWYgKF9yZXF1
ZXN0ZWRFeGl0RnVsbFNjcmVlbikgewogICAgICAgICBfcmVxdWVzdGVkRXhpdEZ1bGxTY3JlZW4g
PSBOTzsKQEAgLTQwMiwxMiArMzk4LDExIEBAIHN0YXRpYyBjb25zdCBmbG9hdCBtaW5WaWRlb1dp
ZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTogS2VlcCBpbiBzeW5jIHdpdGggbWVkCiAKICAg
ICBbX3dlYlZpZXdQbGFjZWhvbGRlciBzZXRFeGl0V2FybmluZ1Zpc2libGU6Tk9dOwogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICAvLyBTY3JlZW4gdXBkYXRlcyB0byBiZSByZS1lbmFibGVkIGlu
IF9zdGFydEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOiBvciBiZWdhbkV4aXRG
dWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTpmaW5hbEZyYW1lOgogICAgIE5TRGlzYWJsZVNjcmVl
blVwZGF0ZXMoKTsKICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpOT107Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiAKICAgICAvLyBTZWUgdGhlIHJlbGF0ZWQgY29tbWVudCBpbiBlbnRlckZ1bGxTY3Jl
ZW46CiAgICAgLy8gV2Ugd2lsbCByZXN1bWUgdGhlIG5vcm1hbCBiZWhhdmlvciBpbiBfc3RhcnRF
eGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjoKQEAgLTQzNywxMCArNDMyLDkgQEAg
c3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIwOyAvLyBOb3Rl
OiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKICAgICAgICAgLy8gQmVjYXVzZSB3ZSBhcmUgYnJlYWtp
bmcgdGhlIG5vcm1hbCBhbmltYXRpb24gcGF0dGVybiwgcmUtZW5hYmxlIHNjcmVlbiB1cGRhdGVz
CiAgICAgICAgIC8vIGFzIGV4aXRGdWxsU2NyZWVuIGhhcyBkaXNhYmxlZCB0aGVtLCBidXQgX3N0
YXJ0RXhpdEZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246CiAgICAgICAgIC8vIHdpbGwg
bmV2ZXIgYmUgY2FsbGVkLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBOU0VuYWJs
ZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQogCiAgICAgW1tzZWxmIHdp
bmRvd10gZXhpdEZ1bGxTY3JlZW5Nb2RlOnNlbGZdOwpAQCAtNDYzLDIwICs0NTcsMTggQEAgc3Rh
dGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIwOyAvLyBOb3RlOiBL
ZWVwIGluIHN5bmMgd2l0aCBtZWQKIAogICAgIE5TUmVzcG9uZGVyICpmaXJzdFJlc3BvbmRlciA9
IFtbc2VsZiB3aW5kb3ddIGZpcnN0UmVzcG9uZGVyXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBpbiBjb21wbGV0ZUZpbmlzaEV4
aXRGdWxsU2NyZWVuQW5pbWF0aW9uQWZ0ZXJSZXBhaW50LgogICAgIE5TRGlzYWJsZVNjcmVlblVw
ZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBfcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBk
YXRlcyh0cnVlKTsKICAgICBbW3NlbGYgd2luZG93XSBvcmRlck91dDpzZWxmXTsKICAgICBOU1Zp
ZXcgKmNvbnRlbnRWaWV3ID0gW1tzZWxmIHdpbmRvd10gY29udGVudFZpZXddOwogICAgIGNvbnRl
bnRWaWV3LmhpZGRlbiA9IFlFUzsKICAgICBbX2JhY2tncm91bmRWaWV3LmdldCgpLmxheWVyIHJl
bW92ZUFsbEFuaW1hdGlvbnNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1tfd2ViVmlld1Bs
YWNlaG9sZGVyIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAg
W3NlbGYgX3JlcGxhY2VWaWV3Ol93ZWJWaWV3UGxhY2Vob2xkZXIuZ2V0KCkgd2l0aDpfd2ViVmll
d107CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCkBAIC01MDksMTYgKzUwMSwxNCBA
QCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9XaWR0aCA9IDQ4MCArIDIwICsgMjA7IC8vIE5v
dGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogLSAodm9pZCljb21wbGV0ZUZpbmlzaEV4aXRGdWxs
U2NyZWVuQW5pbWF0aW9uQWZ0ZXJSZXBhaW50CiB7CiAgICAgX3JlcGFpbnRDYWxsYmFjayA9IG51
bGxwdHI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbW193ZWJWaWV3IHdpbmRvd10gc2V0QXV0
b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbW193ZWJWaWV3IHdpbmRvd10gZGlzcGxh
eUlmTmVlZGVkXTsKICAgICBfcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxz
ZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKIH0KIAogLSAodm9pZClwZXJmb3JtQ2xvc2U6KGlkKXNlbmRlcgpAQCAtNzI3LDE1
ICs3MTcsMTMgQEAgc3RhdGljIENBQW5pbWF0aW9uICpmYWRlQW5pbWF0aW9uKENGVGltZUludGVy
dmFsIGR1cmF0aW9uLCBBbmltYXRpb25EaXJlY3Rpb24gZGkKICAgICBbd2luZG93IG1ha2VGaXJz
dFJlc3BvbmRlcjpfd2ViVmlld107CiAKICAgICBfcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5
VXBkYXRlcyhmYWxzZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbW3NlbGYgd2luZG93XSBz
ZXRBdXRvZGlzcGxheTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtbc2VsZiB3aW5kb3ddIGRpc3Bs
YXlJZk5lZWRlZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0VuYWJsZVNjcmVlblVwZGF0
ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogLSAodm9pZClfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1h
dGlvbldpdGhEdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb24KQEAgLTc1OCwxNSArNzQ2
LDEzIEBAIHN0YXRpYyBDQUFuaW1hdGlvbiAqZmFkZUFuaW1hdGlvbihDRlRpbWVJbnRlcnZhbCBk
dXJhdGlvbiwgQW5pbWF0aW9uRGlyZWN0aW9uIGRpCiAgICAgW19iYWNrZ3JvdW5kVmlldy5nZXQo
KS5sYXllciBhZGRBbmltYXRpb246ZmFkZUFuaW1hdGlvbihkdXJhdGlvbiwgQW5pbWF0ZU91dCkg
Zm9yS2V5OkAiZnVsbHNjcmVlbiJdOwogCiAgICAgX3BhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0
eVVwZGF0ZXMoZmFsc2UpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1tzZWxmIHdpbmRvd10g
c2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbW3NlbGYgd2luZG93XSBkaXNw
bGF5SWZOZWVkZWRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNFbmFibGVTY3JlZW5VcGRh
dGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKHZvaWQpX3dhdGNoZG9nVGltZXJGaXJlZDooTlNU
aW1lciAqKXRpbWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQ
cmludGluZ1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1Zp
ZXcubW0KaW5kZXggMWZkYTdkYmU1ZGYxZmY3ZGIxNzcwY2FmYjE0MGRmZjU2MGY1YTM4Yy4uZDIw
NmZmZTA4OTUzNGMzMmYzZTIxNjIyMDlkZWJjNzIwODc1ZWJmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbQpAQCAtNzgsMTYgKzc4LDE0IEBAIHN0
YXRpYyBCT09MIGlzRm9yY2luZ1ByZXZpZXdVcGRhdGU7CiAKIC0gKHZvaWQpX3NldEF1dG9kaXNw
bGF5OihCT09MKW5ld1N0YXRlCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAoIW5ld1N0
YXRlICYmIFtbX3drVmlldyB3aW5kb3ddIGlzQXV0b2Rpc3BsYXldKQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAogICAgICAgICBbX3drVmlldyBkaXNwbGF5SWZOZWVkZWRdOworICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgW1tfd2tWaWV3IHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6bmV3U3RhdGVdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogCiAgICAgLy8gRm9yIHNvbWUgcmVhc29uLCBwYWludGluZyBkb2Vzbid0IGhhcHBlbiBm
b3IgYSBsb25nIHRpbWUgd2l0aG91dCB0aGlzIGNhbGwsIDxyZGFyOi8vcHJvYmxlbS84OTc1MjI5
Pi4KICAgICBpZiAobmV3U3RhdGUpCkBAIC00NTQsMTkgKzQ1MiwxNyBAQCBzdGF0aWMgTlNTdHJp
bmcgKmxpbmtEZXN0aW5hdGlvbk5hbWUoUERGRG9jdW1lbnQgKmRvY3VtZW50LCBQREZEZXN0aW5h
dGlvbiAqZGVzdAogICAgIH0KIAogICAgIE5TR3JhcGhpY3NDb250ZXh0ICpuc0dyYXBoaWNzQ29u
dGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IHN0YXRpY19jYXN0PENHQ29udGV4dFJl
Zj4oW25zR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAg
Q0dDb250ZXh0U2F2ZUdTdGF0ZShjb250ZXh0KTsKICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0o
Y29udGV4dCwgcG9pbnQueCwgcG9pbnQueSk7CiAgICAgQ0dDb250ZXh0U2NhbGVDVE0oY29udGV4
dCwgX3RvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgLV90b3RhbFNjYWxlRmFjdG9yRm9yUHJp
bnRpbmcpOwogICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjb250ZXh0LCAwLCAtW3BkZlBhZ2Ug
Ym91bmRzRm9yQm94OmtQREZEaXNwbGF5Qm94TWVkaWFCb3hdLnNpemUuaGVpZ2h0KTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgIFtwZGZQYWdlIGRyYXdXaXRoQm94OmtQREZEaXNwbGF5Qm94TWVk
aWFCb3hdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogCiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0g
Q0dDb250ZXh0R2V0Q1RNKGNvbnRleHQpOwogCkBAIC00NzksMTAgKzQ3NSw5IEBAIHN0YXRpYyBO
U1N0cmluZyAqbGlua0Rlc3RpbmF0aW9uTmFtZShQREZEb2N1bWVudCAqZG9jdW1lbnQsIFBERkRl
c3RpbmF0aW9uICpkZXN0CiAgICAgICAgIGlmICghW2Fubm90YXRpb24gaXNLaW5kT2ZDbGFzczpX
ZWJLaXQ6OnBkZkFubm90YXRpb25MaW5rQ2xhc3MoKV0pCiAgICAgICAgICAgICBjb250aW51ZTsK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBQREZBbm5vdGF0aW9uTGluayAqbGlu
a0Fubm90YXRpb24gPSAoUERGQW5ub3RhdGlvbkxpbmsgKilhbm5vdGF0aW9uOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICAgICAgTlNVUkwgKnVybCA9IFtsaW5rQW5ub3RhdGlvbiBVUkxdOwogICAgICAg
ICBDR1JlY3QgdHJhbnNmb3JtZWRSZWN0ID0gQ0dSZWN0QXBwbHlBZmZpbmVUcmFuc2Zvcm0oTlNS
ZWN0VG9DR1JlY3QoW2xpbmtBbm5vdGF0aW9uIGJvdW5kc10pLCB0cmFuc2Zvcm0pOwogCkBAIC01
NDUsMTAgKzU0MCw5IEBAIHN0YXRpYyBOU1N0cmluZyAqbGlua0Rlc3RpbmF0aW9uTmFtZShQREZE
b2N1bWVudCAqZG9jdW1lbnQsIFBERkRlc3RpbmF0aW9uICpkZXN0CiAgICAgfQogCiAgICAgUmVm
UHRyPFdlYktpdDo6U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBwYWdlUHJldmlld0l0ZXJhdG9y
LT52YWx1ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQg
PSBzdGF0aWNfY2FzdDxDR0NvbnRleHRSZWY+KFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENv
bnRleHRdIGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0IGNvbnRleHQoY2dDb250ZXh0KTsKICAgICBXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CkBAIC01ODksMTAgKzU4Myw5IEBAIHN0
YXRpYyBOU1N0cmluZyAqbGlua0Rlc3RpbmF0aW9uTmFtZShQREZEb2N1bWVudCAqZG9jdW1lbnQs
IFBERkRlc3RpbmF0aW9uICpkZXN0CiAgICAgICAgICAgICAgICAgaWYgKCFbYW5ub3RhdGlvbiBp
c0tpbmRPZkNsYXNzOldlYktpdDo6cGRmQW5ub3RhdGlvbkxpbmtDbGFzcygpXSkKICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICAgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgICAgICAgICAgICAgIFBERkFubm90YXRpb25MaW5rICpsaW5rQW5ub3RhdGlvbiA9IChQREZB
bm5vdGF0aW9uTGluayAqKWFubm90YXRpb247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAg
ICAgICAgICAgICAgaWYgKGxpbmtBbm5vdGF0aW9uLlVSTCkKICAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1Rl
eHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tCmluZGV4IGFlMzY0MWVmNzk3NDYzYTE4MGMw
ZmIyNjc0YjAwMmFiMTFhODc5NjIuLmJlOTZjYTI4MDBhYTE1MDRlNTgzNjgyN2Q3ZGNmMDZmNzc0
ZjY2ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRJbnB1
dFdpbmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
VGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbQpAQCAtMTA2LDEwICsxMDYsOSBAQAogCiAtIChC
T09MKV9pbnRlcnByZXRLZXlFdmVudDooTlNFdmVudCAqKWV2ZW50IHVzaW5nTGVnYWN5Q29jb2FU
ZXh0SW5wdXQ6KEJPT0wpdXNpbmdMZWdhY3lDb2NvYVRleHRJbnB1dCBzdHJpbmc6KE5TU3RyaW5n
ICoqKXN0cmluZwogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQk9PTCBoYWRNYXJrZWRUZXh0
ID0gW19pbnB1dFRleHRWaWV3IGhhc01hcmtlZFRleHRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogIAogICAgICpz
dHJpbmcgPSBuaWw7CiAKQEAgLTEyNCwxMCArMTIzLDkgQEAKICAgICBpZiAoIVtbX2lucHV0VGV4
dFZpZXcgaW5wdXRDb250ZXh0XSBoYW5kbGVFdmVudDpldmVudF0pCiAgICAgICAgIHJldHVybiBO
TzsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChbX2lucHV0VGV4dFZpZXcgaGFz
TWFya2VkVGV4dF0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIC8vIERvbid0IHNob3cgdGhl
IGlucHV0IG1ldGhvZCB3aW5kb3cgZm9yIGRlYWQga2V5cwogICAgICAgICBpZiAoW1tldmVudCBj
aGFyYWN0ZXJzXSBsZW5ndGhdID4gMCkKICAgICAgICAgICAgIFtzZWxmIG9yZGVyRnJvbnQ6bmls
XTsKQEAgLTE2MSwxMCArMTU5LDkgQEAKIAogLSAoQk9PTClfaGFzTWFya2VkVGV4dAogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgcmV0dXJuIFtfaW5wdXRUZXh0VmlldyBoYXNNYXJrZWRUZXh0
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCmluZGV4IDhiNWRiMTU5NWFiMzU3ZmVjOTRk
Y2U3N2M3NjRlYWRjYmI2MzU2MGQuLjY4NGIxMzY3ODYxMzA5MDg0Y2MxNDI1ZmMyMGVhNDVkODZm
Y2Y3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1l
bnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBN
ZW51UHJveHlNYWMubW0KQEAgLTE4OCwxMCArMTg4LDkgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94
eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRl
eHQKICAgICBbTlNBcHAgcG9zdEV2ZW50OmZha2VFdmVudCBhdFN0YXJ0OllFU107CiAgICAgZmFr
ZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3Zl
ZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbW21fd2ViVmll
dyB3aW5kb3ddCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgICAgICAgICAgICAgY29udmVy
dFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ05TRXZlbnQgbW9k
aWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6
W2luaXRpYXRpbmdOU0V2ZW50IHRpbWVzdGFtcF0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aW5kb3dOdW1iZXI6W2luaXRpYXRpbmdOU0V2ZW50IHdpbmRvd051bWJlcl0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRz
Y2FwZVBsdWdpbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQppbmRleCBlZGNmNTMyYzg1YWFmOGM2YjNhNTBh
ZTNkNjRiZTA2ZTlhYTBlMzQwLi4yOTBiNjVjYzAxNjNkYmIyYTRmMWYwOTMyZmY2ZjA3Y2Y2MmNl
ZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCkBAIC0zNzMsMTAgKzM3
Myw5IEBAIHN0YXRpYyBpbmxpbmUgRXZlbnRSZWNvcmQgaW5pdGlhbGl6ZUV2ZW50UmVjb3JkKEV2
ZW50S2luZCBldmVudEtpbmQpCiAKICAgICBldmVudFJlY29yZC53aGF0ID0gZXZlbnRLaW5kOwog
ICAgIGV2ZW50UmVjb3JkLm1lc3NhZ2UgPSAwOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgZXZl
bnRSZWNvcmQud2hlbiA9IFRpY2tDb3VudCgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIGV2ZW50UmVjb3Jk
LndoZXJlID0gUG9pbnQoKTsKICAgICBldmVudFJlY29yZC5tb2RpZmllcnMgPSAwOwogCkBAIC0x
MDQzLDEwICsxMDQyLDkgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0SW5w
dXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCiAKICAgICAgICAgLy8gU2V0IHRoZSBzY3JpcHQg
Y29kZSBhcyB0aGUga2V5Ym9hcmQgc2NyaXB0LiBOb3JtYWxseSBDYXJib24gZG9lcyB0aGlzIHdo
ZW5ldmVyIHRoZSBpbnB1dCBzb3VyY2UgY2hhbmdlcy4KICAgICAgICAgLy8gSG93ZXZlciwgdGhp
cyBpcyBvbmx5IGRvbmUgZm9yIHRoZSBwcm9jZXNzIHRoYXQgaGFzIHRoZSBrZXlib2FyZCBmb2N1
cy4gV2UgY2hlYXQgYW5kIGRvIGl0IGhlcmUgaW5zdGVhZC4KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICAgICAgU2V0U2NyaXB0TWFuYWdlclZhcmlhYmxlKHNtS2V5U2NyaXB0LCBzY3JpcHRD
b2RlKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIAogICAgICAgICBFdmVudFJlY29yZCBldmVu
dCA9IGluaXRpYWxpemVFdmVudFJlY29yZChrZXlEb3duKTsKICAgICAgICAgZXZlbnQubW9kaWZp
ZXJzID0gMDsKQEAgLTExMjEsMTEgKzExMTksMTAgQEAgc3RhdGljIHZvaWQgbWFrZUNHTFByZXNl
bnRMYXllck9wYXF1ZShDQUxheWVyICpwbHVnaW5Sb290TGF5ZXIpCiAgICAgICAgIHJldHVybjsK
IAogICAgIENsYXNzIGNnbFByZXNlbnRMYXllckNsYXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJD
R0xQcmVzZW50TGF5ZXIiKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmICghW2NnbFByZXNl
bnRMYXllckNsYXNzIGlzU3ViY2xhc3NPZkNsYXNzOltDQU9wZW5HTExheWVyIGNsYXNzXV0pCiAg
ICAgICAgIHJldHVybjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIENBTGF5ZXIgKmxheWVyID0gW3N1Ymxh
eWVycyBvYmplY3RBdEluZGV4OjBdOwogICAgIGlmICghW2xheWVyIGlzS2luZE9mQ2xhc3M6Y2ds
UHJlc2VudExheWVyQ2xhc3NdKQpAQCAtMTE4MSwxMSArMTE3OCwxMCBAQCB2b2lkIE5ldHNjYXBl
UGx1Z2luOjpudWxsRXZlbnRUaW1lckZpcmVkKCkKICAgICBldmVudC53aGVyZS52ID0gbW91c2VQ
b3NpdGlvbi55OwogCiAgICAgZXZlbnQubW9kaWZpZXJzID0gR2V0Q3VycmVudEtleU1vZGlmaWVy
cygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKCFCdXR0b24oKSkKICAgICAgICAgZXZl
bnQubW9kaWZpZXJzIHw9IGJ0blN0YXRlOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgTlBQX0hhbmRsZUV2
ZW50KCZldmVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpbi5tbQppbmRleCA0Y2FhNmNjMGY2MDQ1MGMwM2IyMmEyODRkZDEzYWYyNWVm
ZDZlMzg2Li5kYTA0MTA3MmEzZDYwY2NiNjFhYTgwYTFjNGMzMmIyNGQ4OTYyOTUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAg
LTMxNiwxMCArMzE2LDkgQEAgc3RhdGljIGNvbnN0IGludCBkZWZhdWx0U2Nyb2xsTWFnbml0dWRl
VGhyZXNob2xkRm9yUGFnZUZsaXAgPSAyMDsKICAgICBpZiAoV2ViS2l0OjpQREZQbHVnaW5Bbm5v
dGF0aW9uKiBhY3RpdmVBbm5vdGF0aW9uID0gX3BkZlBsdWdpbi0+YWN0aXZlQW5ub3RhdGlvbigp
KSB7CiAgICAgICAgIGlmIChXZWJDb3JlOjpBWE9iamVjdENhY2hlKiBleGlzdGluZ0NhY2hlID0g
X3BkZlBsdWdpbi0+YXhPYmplY3RDYWNoZSgpKSB7CiAgICAgICAgICAgICBpZiAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gZXhpc3RpbmdDYWNoZS0+Z2V0T3JDcmVhdGUo
YWN0aXZlQW5ub3RhdGlvbi0+ZWxlbWVudCgpKSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICAgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgICAgICAgICAgICAgIHJldHVybiBbb2JqZWN0LT53cmFwcGVyKCkgYWNjZXNzaWJp
bGl0eUF0dHJpYnV0ZVZhbHVlOkAiX0FYQXNzb2NpYXRlZFBsdWdpblBhcmVudCJdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBuaWw7CkBAIC00
MjQsMTAgKzQyMyw5IEBAIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdFNjcm9sbE1hZ25pdHVkZVRo
cmVzaG9sZEZvclBhZ2VGbGlwID0gMjA7CiAKIC0gKHZvaWQpd3JpdGVJdGVtc1RvUGFzdGVib2Fy
ZDooTlNBcnJheSAqKWl0ZW1zIHdpdGhUeXBlczooTlNBcnJheSAqKXR5cGVzCiB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBfcGRmUGx1Z2luLT53cml0ZUl0ZW1zVG9QYXN0ZWJvYXJkKE5TR2Vu
ZXJhbFBib2FyZCwgaXRlbXMsIHR5cGVzKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogLSAodm9pZClzaG93
RGVmaW5pdGlvbkZvckF0dHJpYnV0ZWRTdHJpbmc6KE5TQXR0cmlidXRlZFN0cmluZyAqKXN0cmlu
ZyBhdFBvaW50OihDR1BvaW50KXBvaW50CkBAIC0xNjUwLDExICsxNjQ4LDEwIEBAIGJvb2wgUERG
UGx1Z2luOjpoYW5kbGVFZGl0aW5nQ29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBj
b25zdCBTdHJpbmcmIGFyCiAgICAgICAgIFttX3BkZkxheWVyQ29udHJvbGxlciBzZWxlY3RBbGxd
OwogICAgIGVsc2UgaWYgKGNvbW1hbmROYW1lID09ICJ0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rp
b24iKSB7CiAgICAgICAgIE5TU3RyaW5nICpzdHJpbmcgPSBbbV9wZGZMYXllckNvbnRyb2xsZXIg
Y3VycmVudFNlbGVjdGlvbl0uc3RyaW5nOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAg
ICBpZiAoc3RyaW5nLmxlbmd0aCkKICAgICAgICAgICAgIHdyaXRlSXRlbXNUb1Bhc3RlYm9hcmQo
TlNGaW5kUGJvYXJkLCBAWyBbc3RyaW5nIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0Vu
Y29kaW5nXSBdLCBAWyBOU1Bhc3RlYm9hcmRUeXBlU3RyaW5nIF0pOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE3MzQsMTMgKzE3MzEsMTIgQEAgdm9pZCBQ
REZQbHVnaW46OnNldEFjdGl2ZUFubm90YXRpb24oUERGQW5ub3RhdGlvbiAqYW5ub3RhdGlvbikK
ICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uLT5jb21taXQoKTsKIAogICAgIGlmIChhbm5vdGF0
aW9uKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGlmIChbYW5ub3RhdGlvbiBp
c0tpbmRPZkNsYXNzOnBkZkFubm90YXRpb25UZXh0V2lkZ2V0Q2xhc3MoKV0gJiYgc3RhdGljX2Nh
c3Q8UERGQW5ub3RhdGlvblRleHRXaWRnZXQgKj4oYW5ub3RhdGlvbikuaXNSZWFkT25seSkgewog
ICAgICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gbnVsbHB0cjsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgICAgICBtX2FjdGl2ZUFubm90
YXRpb24gPSBQREZQbHVnaW5Bbm5vdGF0aW9uOjpjcmVhdGUoYW5ub3RhdGlvbiwgbV9wZGZMYXll
ckNvbnRyb2xsZXIuZ2V0KCksIHRoaXMpOwogICAgICAgICBtX2FjdGl2ZUFubm90YXRpb24tPmF0
dGFjaChtX2Fubm90YXRpb25Db250YWluZXIuZ2V0KCkpOwpAQCAtMjA3OCwxMCArMjA3NCw5IEBA
IHN0ZDo6dHVwbGU8U3RyaW5nLCBQREZTZWxlY3Rpb24gKiwgTlNEaWN0aW9uYXJ5ICo+IFBERlBs
dWdpbjo6bG9va3VwVGV4dEF0TG9jYXRpCiAgICAgICAgIGlmICghTlNQb2ludEluUmVjdChwb2lu
dEluUGFnZVNwYWNlLCBib3VuZHMpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICAgICAgUERGQW5ub3RhdGlvbkxpbmsgKmxpbmtBbm5vdGF0aW9u
ID0gKFBERkFubm90YXRpb25MaW5rICopYW5ub3RhdGlvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAg
ICAgIE5TVVJMICp1cmwgPSBsaW5rQW5ub3RhdGlvbi5VUkw7CiAgICAgICAgIGlmICghdXJsKQog
ICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24uaAppbmRl
eCAwZjc2NzVjNWQyMzFkNTdkOTJiZDYyNzkzNmU5ZTAyNGQyZTFjNjhkLi5hODFkZGY2M2E0ZTYx
ZGQzMGM3YjdkOTE5MDc2YjNmOGEyZmMzZWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0
aW9uLmgKQEAgLTUzLDEwICs1Myw5IEBAIHByaXZhdGU6CiAKICAgICBSZWY8V2ViQ29yZTo6RWxl
bWVudD4gY3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQoKSBvdmVycmlkZTsKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgUERGQW5ub3RhdGlvbkNob2ljZVdpZGdldCAqY2hvaWNlQW5ub3RhdGlvbigp
IHsgcmV0dXJuIHN0YXRpY19jYXN0PFBERkFubm90YXRpb25DaG9pY2VXaWRnZXQgKj4oYW5ub3Rh
dGlvbigpKTsgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hv
aWNlQW5ub3RhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9Q
REZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCmluZGV4IDU4MjVmZDNlY2FiNDYxNTRmOGY5ZDA1
MDEzZjY1NGFjOGM2MTU4Y2YuLjEwMGEwMzY2YWY0NGY5YTEzZDk4OTYxYzE2YzEzN2M2MWQwZTk2
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCkBAIC02NywxMCArNjcsOSBA
QCB2b2lkIFBERlBsdWdpbkNob2ljZUFubm90YXRpb246OmNvbW1pdCgpCiBSZWY8RWxlbWVudD4g
UERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbjo6Y3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQoKQogewog
ICAgIERvY3VtZW50JiBkb2N1bWVudCA9IHBhcmVudCgpLT5kb2N1bWVudCgpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgUERGQW5ub3RhdGlvbkNob2ljZVdpZGdldCAqY2hvaWNlQW5ub3RhdGlv
biA9IHRoaXMtPmNob2ljZUFubm90YXRpb24oKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIGF1dG8gZWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoc2VsZWN0VGFnLCBmYWxzZSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0
QW5ub3RhdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpblRleHRBbm5vdGF0aW9uLmgKaW5kZXggOTJkNDAyM2NkNzBlOTRkOThkNGJiNTgxZTMwYTdk
Mjg1YjE5ZDlkYy4uMzZkM2EzZDIxZWYxZmVjNWY0NjBlNDg5ZjgwNTQ4YjdmM2ZiYzJmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRl
eHRBbm5vdGF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpblRleHRBbm5vdGF0aW9uLmgKQEAgLTYwLDEwICs2MCw5IEBAIHByb3RlY3RlZDoK
IHByaXZhdGU6CiAgICAgYm9vbCBoYW5kbGVFdmVudChXZWJDb3JlOjpFdmVudCYpIG92ZXJyaWRl
OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBQREZBbm5vdGF0aW9uVGV4dFdpZGdldCAqdGV4
dEFubm90YXRpb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxQREZBbm5vdGF0aW9uVGV4
dFdpZGdldCAqPihhbm5vdGF0aW9uKCkpOyB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbQppbmRleCAyYzZhNzZjNGIw
ZTExNTUxMDE5NWZmZDY5NzQ4NjQ2NmE3NWYxMjY4Li5iZTA2MDNmMmMxZGE0YTBjNTg5ZjU1OGMz
ZjhhZTRjNGIyYTNlNzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCkBAIC04MCwx
MCArODAsOSBAQCBQREZQbHVnaW5UZXh0QW5ub3RhdGlvbjo6flBERlBsdWdpblRleHRBbm5vdGF0
aW9uKCkKIFJlZjxFbGVtZW50PiBQREZQbHVnaW5UZXh0QW5ub3RhdGlvbjo6Y3JlYXRlQW5ub3Rh
dGlvbkVsZW1lbnQoKQogewogICAgIERvY3VtZW50JiBkb2N1bWVudCA9IHBhcmVudCgpLT5kb2N1
bWVudCgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgUERGQW5ub3RhdGlvblRleHRXaWRnZXQg
KnRleHRBbm5vdGF0aW9uID0gdGhpcy0+dGV4dEFubm90YXRpb24oKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAg
ICBib29sIGlzTXVsdGlsaW5lID0gdGV4dEFubm90YXRpb24uaXNNdWx0aWxpbmU7CiAKICAgICBh
dXRvIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGlzTXVsdGlsaW5lID8gdGV4dGFy
ZWFUYWcgOiBpbnB1dFRhZywgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVu
dC5oCmluZGV4IDQ1MjBlOWQ2OWJjODAyZjZlYmRhNjViMjk3ZThhOGQ0NThjMTk3MjguLjk0OWM2
MmFlYzY5NTg5M2EzMmM4MTIxYWE5N2M3ZDU4ZTViMGU2NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJu
YXRpdmVUZXh0Q2xpZW50LmgKQEAgLTUxLDE0ICs1MSwxMSBAQCBwdWJsaWM6CiAjZW5kaWYKIHBy
aXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNpZiBkZWZpbmVkKF9faGFzX3dhcm5pbmcpICYmIF9faGFzX3dhcm5pbmcoIi1XdW51c2VkLXBy
aXZhdGUtZmllbGQiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2Vk
LXByaXZhdGUtZmllbGQiCi0jZW5kaWYKKyAgICBJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigi
LVd1bnVzZWQtcHJpdmF0ZS1maWVsZCIpCiAjZW5kaWYKICAgICBXZWJQYWdlICptX3BhZ2U7CiAj
aWYgUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9S
RV9DTEFOR19XQVJOSU5HX0VORAogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRN
YWMubW0KaW5kZXggYTg3N2U3ZmNmYTBhMzk4Nzk3NzcwYTE0MzQ0OTA1ZmY5NzMwMzJmMC4uM2Jk
N2QxZmJiMzhjYjIwOWFmZGI3MWRlYjE4YjlkOTFlZGQ5MTMwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJh
Z0NsaWVudE1hYy5tbQpAQCAtNzIsMTAgKzcyLDkgQEAgc3RhdGljIFJlZlB0cjxTaGFyZWFibGVC
aXRtYXA+IGNvbnZlcnRJbWFnZVRvQml0bWFwKE5TSW1hZ2UgKmltYWdlLCBjb25zdCBJbnRTaXoK
IAogICAgIFJldGFpblB0cjxOU0dyYXBoaWNzQ29udGV4dD4gc2F2ZWRDb250ZXh0ID0gW05TR3Jh
cGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
W05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBn
cmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmdyYXBoaWNzQ29udGV4dC0+cGxhdGZvcm1D
b250ZXh0KCkgZmxpcHBlZDpZRVNdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbaW1hZ2UgZHJhd0luUmVj
dDpOU01ha2VSZWN0KDAsIDAsIGJpdG1hcC0+c2l6ZSgpLndpZHRoKCksIGJpdG1hcC0+c2l6ZSgp
LmhlaWdodCgpKSBmcm9tUmVjdDpOU1plcm9SZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3Bl
cmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3BlY3RGbGlwcGVkOllFUyBoaW50czpuaWxd
OwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OnNhdmVkQ29udGV4
dC5nZXQoKV07CkBAIC0xMTMsMTAgKzExMiw5IEBAIHN0YXRpYyBXZWJDb3JlOjpDYWNoZWRJbWFn
ZSogY2FjaGVkSW1hZ2UoRWxlbWVudCYgZWxlbWVudCkKIAogdm9pZCBXZWJEcmFnQ2xpZW50Ojpk
ZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgRWxl
bWVudCYgZWxlbWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbGFiZWwsIEZyYW1l
KikKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEFTU0VSVChwYXN0ZWJvYXJkTmFtZSA9PSBT
dHJpbmcoTlNEcmFnUGJvYXJkKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBXZWJDb3JlOjpDYWNoZWRJ
bWFnZSogaW1hZ2UgPSBjYWNoZWRJbWFnZShlbGVtZW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmpl
Y3RNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3Np
YmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQppbmRleCBmZTk0ZTg1ZTQ3MGY0YTg3ZTU5ZmU5ZDdl
Y2Y4NDQyZmVlNTdjZjMzLi5mZDliMTg1Y2ZmMGJlNmQwYzlmYTg2MjZjOTBjY2ZmYzk1NjAzYzVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nl
c3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQpAQCAtMTky
LDggKzE5Miw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgcmV0dXJuIFlFUzsKIH0K
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KIC0gKGlkKWFjY2Vzc2liaWxpdHlIaXRUZXN0OihOU1BvaW50KXBv
aW50CiB7CiAgICAgaWYgKCFtX3BhZ2UpCkBAIC0yMTUsNyArMjE0LDcgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIAogICAgIHJldHVybiBbW3NlbGYgYWNjZXNzaWJpbGl0eVJvb3RPYmplY3RX
cmFwcGVyXSBhY2Nlc3NpYmlsaXR5SGl0VGVzdDpjb252ZXJ0ZWRQb2ludF07CiB9Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
IAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9X
ZWJQYWdlTWFjLm1tCmluZGV4IGRhN2M5OGY2OGM0ODE4OTA3M2RiZWE0NzQ4NzFmZjJjYWI2YTU4
MWEuLmM4ZDQ4MGU1YjkzNjM5MmM4ZjE3NjM3MTBlN2E3N2VmODRiNWU0YTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC04
MTgsMTEgKzgxOCwxMCBAQCBzdGF0aWMgdm9pZCBkcmF3UERGUGFnZShQREZEb2N1bWVudCAqcGRm
RG9jdW1lbnQsIENGSW5kZXggcGFnZUluZGV4LCBDR0NvbnRleHRSZQogICAgIH0KIAogICAgIFtO
U0dyYXBoaWNzQ29udGV4dCBzYXZlR3JhcGhpY3NTdGF0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6W05TR3JhcGhpY3NDb250
ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Y29udGV4dCBmbGlwcGVkOk5PXV07
CiAgICAgW3BkZlBhZ2UgZHJhd1dpdGhCb3g6a1BERkRpc3BsYXlCb3hDcm9wQm94XTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICBbTlNHcmFwaGljc0NvbnRleHQgcmVzdG9yZUdyYXBoaWNzU3RhdGVdOwogCiAg
ICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0gQ0dDb250ZXh0R2V0Q1RNKGNvbnRleHQp
OwpAQCAtODMxLDEwICs4MzAsOSBAQCBzdGF0aWMgdm9pZCBkcmF3UERGUGFnZShQREZEb2N1bWVu
dCAqcGRmRG9jdW1lbnQsIENGSW5kZXggcGFnZUluZGV4LCBDR0NvbnRleHRSZQogICAgICAgICBp
ZiAoIVthbm5vdGF0aW9uIGlzS2luZE9mQ2xhc3M6cGRmQW5ub3RhdGlvbkxpbmtDbGFzcygpXSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAg
IFBERkFubm90YXRpb25MaW5rICpsaW5rQW5ub3RhdGlvbiA9IChQREZBbm5vdGF0aW9uTGluayAq
KWFubm90YXRpb247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBOU1VSTCAqdXJsID0gW2xpbmtB
bm5vdGF0aW9uIFVSTF07CiAgICAgICAgIGlmICghdXJsKQogICAgICAgICAgICAgY29udGludWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uVXRpbHMu
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25VdGlscy5tCmluZGV4IGI3
OTVlOWI0MmE2ZTcxNDg1ZGQxNzdjY2Q5ZGRjNzNhNDk0N2UwZGYuLmVjZDQ3ZTNhYzRlNjBlNjAz
MDNiMmRiOThlMWNlZDFiMmI4YWI3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NhcmJvbi9DYXJib25VdGlscy5tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0Nh
cmJvbi9DYXJib25VdGlscy5tCkBAIC04NywxMCArODcsOSBAQCBzdGF0aWMgdW5zaWduZWQgZ2V0
TlNBdXRvcmVsZWFzZVBvb2xDb3VudCh2b2lkKQogUG9vbENsZWFuZXIoIEV2ZW50TG9vcFRpbWVy
UmVmIGluVGltZXIsIEV2ZW50TG9vcElkbGVUaW1lck1lc3NhZ2UgaW5TdGF0ZSwgdm9pZCAqaW5V
c2VyRGF0YSApCiB7CiAgICAgaWYgKCBpblN0YXRlID09IGtFdmVudExvb3BJZGxlVGltZXJTdGFy
dGVkICkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2Nhc3QtcXVhbCIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQkVH
SU4oIi1XY2FzdC1xdWFsIikKICAgICAgICAgQ0ZTdHJpbmdSZWYgbW9kZSA9IENGUnVuTG9vcENv
cHlDdXJyZW50TW9kZSggKENGUnVuTG9vcFJlZilHZXRDRlJ1bkxvb3BGcm9tRXZlbnRMb29wKCBH
ZXRDdXJyZW50RXZlbnRMb29wKCkgKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgIElHTk9SRV9XQVJOSU5HX0VORAogICAgICAgICBFdmVudExvb3BSZWYgdGhpc0xvb3Ag
PSBHZXRDdXJyZW50RXZlbnRMb29wICgpOwogICAgICAgICBpZiAoIENGRXF1YWwoIG1vZGUsIGtD
RlJ1bkxvb3BEZWZhdWx0TW9kZSApICYmIHRoaXNMb29wID09IHBvb2xMb29wKSB7CiAgICAgICAg
ICAgICB1bnNpZ25lZCBjdXJyZW50TnVtUG9vbHMgPSBnZXROU0F1dG9yZWxlYXNlUG9vbENvdW50
KCktMTsgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0Nh
cmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2Fy
Ym9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KaW5kZXggZDE1MjJmM2YwMjNlZjBmNmRlMzM2MmJk
YTNiMzA0OTQ3ODg4YzBiZi4uYjA5ZTA2YzI0OWZiZDA4ZWVlN2Q2ZTkzNDc2NTkzMTc5NWNmMzU2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRv
d0FkYXB0ZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldp
bmRvd0FkYXB0ZXIubW0KQEAgLTE3NywxMCArMTc3LDkgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2Fy
Ym9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNh
bGwKICAgICAvLyBCdXQgbm93IHRoZSBub24tcmV0YWluZWQgd2luZG93IGNsYXNzIGlzIGEgQ2Fy
Ym9uIHNlY3JldCB0aGF0J3Mgbm90IGV2ZW4gaW4KICAgICAvLyBXaW5kb3dzUHJpdi5oOyBtYXli
ZSB3ZSdsbCBoYXZlIHRvIHJldmlzaXQgdGhpcyBpZiBzb21lb25lIG5lZWRzIHRvIHVzZSBXZWJL
aXQKICAgICAvLyBpbiBhIG5vbi1yZXRhaW5lZCB3aW5kb3cuCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBiYWNraW5nU3RvcmVUeXBlID0gTlNCYWNraW5nU3RvcmVSZXRhaW5lZDsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIAogICAgIC8vIEZpZ3VyZSBvdXQgdGhlIHdpbmRvdydzIHN0eWxlIG1hc2suCiAgICAgc3R5
bGVNYXNrID0gX05TQ2FyYm9uV2luZG93TWFzazsKQEAgLTIwNSwxMCArMjA0LDkgQEAgc3RhdGlj
IE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBp
bkV2ZW50SGFuZGxlckNhbGwKICAgICAvLyBEbyBzb21lIHN0YW5kYXJkIENvY29hIGluaXRpYWxp
emF0aW9uLiAgVGhlIGRlZmVyIGFyZ3VtZW50J3MgdmFsdWUgaXMgWUVTIGJlY2F1c2Ugd2UgZG9u
J3Qgd2FudCAtW05TV2luZG93IF9jb21tb25Bd2FrZV0gdG8gZ2V0IGNhbGxlZC4gIEl0IGRvZXNu
J3QgYXBwZWFyIHRoYXQgYW55IHJlbGV2YW50IE5TV2luZG93IGNvZGUgY2hlY2tzIF93RmxhZ3Mu
ZGVmZXJyZWQsIHNvIHdlIHNob3VsZCBiZSBhYmxlIHRvIGdldCBhd2F5IHdpdGggdGhlIGxpZS4K
ICAgICBzZWxmID0gKENhcmJvbldpbmRvd0FkYXB0ZXIqKVtzdXBlciBfaW5pdENvbnRlbnQ6bnVs
bHB0ciBzdHlsZU1hc2s6c3R5bGVNYXNrIGJhY2tpbmc6YmFja2luZ1N0b3JlVHlwZSBkZWZlcjpZ
RVMgY29udGVudFZpZXc6Y2FyYm9uV2luZG93Q29udGVudFZpZXddOwogICAgIGlmICghc2VsZikg
cmV0dXJuIG5pbDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGFzc2VydChfY29udGVudFZpZXcp
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogCiAgICAgLy8gUmVjb3JkIGFjY3VyYXRlbHkgd2hldGhlciBvciBub3Qg
dGhpcyB3aW5kb3cgaGFzIGEgc2hhZG93LCBpbiBjYXNlIHNvbWVvbmUgYXNrcy4KICAvLyAgIF9h
dXhpbGlhcnlTdG9yYWdlLT5fYXV4V0ZsYWdzLmhhc1NoYWRvdyA9ICh3aW5kb3dBdHRyaWJ1dGVz
ICYga1dpbmRvd05vU2hhZG93QXR0cmlidXRlKSA/IE5PIDogWUVTOwpAQCAtMjgxLDEwICsyNzks
OSBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRs
ZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAgIC8vIGZsdXNoZXMgaXQuCiAKICAgICBp
ZiAoW3NlbGYgd2luZG93TnVtYmVyXSAhPSAtMSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gKENHQ29udGV4dFJlZilbW3NlbGYgX3Ro
cmVhZENvbnRleHRdIGdyYXBoaWNzUG9ydF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBDR0Nv
bnRleHRTeW5jaHJvbml6ZShjZ0NvbnRleHQpOwogICAgIH0KIH0KQEAgLTM3NCwxMSArMzcxLDEw
IEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxl
ckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAgICAgLy8gSW5pdGlhbGl6ZSBmb3Igc2FmZSBy
ZXR1cm5pbmcuCiAgICAgQk9PTCByZWNvbmNpbGlhdGlvbldhc05lY2Vzc2FyeSA9IE5POwogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBQcmVjb25kaXRpb24gY2hlY2suCiAgICAgYXNzZXJ0
KF9jb250ZW50Vmlldyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICAvLyBHZXQgdGhlIENhcmJvbiB3aW5k
b3cncyBib3VuZHMsIHdoaWNoIGFyZSBleHByZXNzZWQgaW4gZ2xvYmFsIHNjcmVlbiBjb29yZGlu
YXRlcywgd2l0aCAoMCwwKSBhdCB0aGUgdG9wLWxlZnQgb2YgdGhlIG1haW4gc2NyZWVuLgogICAg
IG9zU3RhdHVzID0gR2V0V2luZG93Qm91bmRzKF93aW5kb3dSZWYsIGtXaW5kb3dTdHJ1Y3R1cmVS
Z24sICZ3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0KTsKQEAgLTM5MywyOCArMzg5LDI2IEBAIHN0
YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxS
ZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAgICAgbmV3V2luZG93RnJhbWVSZWN0Lm9yaWdpbi55ID0g
TlNNYXhZKFsoTlNTY3JlZW4gKilbW05TU2NyZWVuIHNjcmVlbnNdIG9iamVjdEF0SW5kZXg6MF0g
ZnJhbWVdKSAtIHdpbmRvd1N0cnVjdHVyZUJvdW5kc1JlY3QuYm90dG9tOwogICAgIG5ld1dpbmRv
d0ZyYW1lUmVjdC5zaXplLndpZHRoID0gd2luZG93U3RydWN0dXJlQm91bmRzUmVjdC5yaWdodCAt
IHdpbmRvd1N0cnVjdHVyZUJvdW5kc1JlY3QubGVmdDsKICAgICBuZXdXaW5kb3dGcmFtZVJlY3Qu
c2l6ZS5oZWlnaHQgPSB3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0LmJvdHRvbSAtIHdpbmRvd1N0
cnVjdHVyZUJvdW5kc1JlY3QudG9wOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKCFOU0Vx
dWFsUmVjdHMobmV3V2luZG93RnJhbWVSZWN0LCBfZnJhbWUpKSB7CiAgICAgICAgIFtzZWxmIF9z
ZXRGcmFtZTpuZXdXaW5kb3dGcmFtZVJlY3RdOwogICAgICAgICBbX2JvcmRlclZpZXcgc2V0RnJh
bWVTaXplOm5ld1dpbmRvd0ZyYW1lUmVjdC5zaXplXTsKICAgICAgICAgcmVjb25jaWxpYXRpb25X
YXNOZWNlc3NhcnkgPSBZRVM7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgLy8gU2V0IHRoZSBj
b250ZW50IHZpZXcncyBmcmFtZSByZWN0IGZyb20gdGhlIENhcmJvbiB3aW5kb3cncyBjb250ZW50
IHJlZ2lvbiBib3VuZHMuCiAgICAgbmV3Q29udGVudEZyYW1lUmVjdC5vcmlnaW4ueCA9IHdpbmRv
d0NvbnRlbnRCb3VuZHNSZWN0LmxlZnQgLSB3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0LmxlZnQ7
CiAgICAgbmV3Q29udGVudEZyYW1lUmVjdC5vcmlnaW4ueSA9IHdpbmRvd1N0cnVjdHVyZUJvdW5k
c1JlY3QuYm90dG9tIC0gd2luZG93Q29udGVudEJvdW5kc1JlY3QuYm90dG9tOwogICAgIG5ld0Nv
bnRlbnRGcmFtZVJlY3Quc2l6ZS53aWR0aCA9IHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LnJpZ2h0
IC0gd2luZG93Q29udGVudEJvdW5kc1JlY3QubGVmdDsKICAgICBuZXdDb250ZW50RnJhbWVSZWN0
LnNpemUuaGVpZ2h0ID0gd2luZG93Q29udGVudEJvdW5kc1JlY3QuYm90dG9tIC0gd2luZG93Q29u
dGVudEJvdW5kc1JlY3QudG9wOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgb2xkQ29udGVudEZy
YW1lUmVjdCA9IFsoTlNWaWV3ICopX2NvbnRlbnRWaWV3IGZyYW1lXTsKICAgICBpZiAoIU5TRXF1
YWxSZWN0cyhuZXdDb250ZW50RnJhbWVSZWN0LCBvbGRDb250ZW50RnJhbWVSZWN0KSkgewogICAg
ICAgICBbKE5TVmlldyAqKV9jb250ZW50VmlldyBzZXRGcmFtZTpuZXdDb250ZW50RnJhbWVSZWN0
XTsKICAgICAgICAgcmVjb25jaWxpYXRpb25XYXNOZWNlc3NhcnkgPSBZRVM7CiAgICAgfQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogCiAgICAgLy8gRG9uZS4KICAgICByZXR1cm4gcmVjb25jaWxpYXRpb25XYXNOZWNl
c3Nhcnk7CkBAIC01OTUsOCArNTg5LDcgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93
SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKIC8vIFRo
aXMgZnVuY3Rpb24gaXMgbW9zdGx5IGN1dC1hbmQtcGFzdGVkIGZyb20gLVtOU1dpbmRvdyBfdGVy
bVdpbmRvd0lmT3duZXJdLiAgTS5QLiBOb3RpY2UgLSA4LzcvMDAKIC0gKHZvaWQpX3Rlcm1XaW5k
b3dJZk93bmVyCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbc2VsZiBfc2V0V2luZG93TnVt
YmVyOi0xXTsKICAgICBfd0ZsYWdzLmlzVGVybWluYXRpbmcgPSBZRVM7CiAgICAgaWYgKF93aW5k
b3dSZWYgJiYgX3dpbmRvd1JlZklzT3duZWQpCkBAIC02MDYsNyArNTk5LDcgQEAgc3RhdGljIE9T
U3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2
ZW50SGFuZGxlckNhbGwKIC8vICAgICAgICBbX2JvcmRlclZpZXcgc2V0U2hhZG93U3RhdGU6a0Zy
YW1lU2hhZG93Tm9uZV07CiAvLyAgICB9CiAgICAgX3dGbGFncy5pc1Rlcm1pbmF0aW5nID0gTk87
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiB9CiAKIApAQCAtNjI2LDEwICs2MTksOSBAQCBzdGF0aWMgT1NTdGF0dXMg
TlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5k
bGVyQ2FsbAogICAgIFtzdXBlciBfd2luZG93TW92ZWRUb1JlY3Q6YWN0dWFsRnJhbWVdOwogCiAg
ICAgLy8gTGV0IENhcmJvbiBrbm93IHRoYXQgdGhlIHdpbmRvdyBoYXMgYmVlbiBtb3ZlZCwgdW5s
ZXNzIHRoaXMgbWV0aG9kIGlzIGJlaW5nIGNhbGxlZCAiZWFybHkuIgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgaWYgKF93RmxhZ3MudmlzaWJsZSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAg
b3NTdGF0dXMgPSBfU3luY1dpbmRvd1dpdGhDR0FmdGVyTW92ZShfd2luZG93UmVmKTsKICAgICAg
ICAgaWYgKG9zU3RhdHVzIT1ub0VycikgTlNMb2coQCJBIENhcmJvbiB3aW5kb3cncyBib3VuZHMg
Y291bGRuJ3QgYmUgc3luY2hyb25pemVkICglaSkuIiwgKGludClvc1N0YXR1cyk7CiAgICAgfQpA
QCAtNzU4LDExICs3NTAsMTAgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxl
RXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKICAgICBSZWN0IHdp
bmRvd0NvbnRlbnRCb3VuZHNSZWN0OwogCiAgICAgLy8gUHJlY29uZGl0aW9uIGNoZWNrLgotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgYXNzZXJ0KF9ib3JkZXJWaWV3KTsKICAgICBhc3NlcnQoW19i
b3JkZXJWaWV3IGlzS2luZE9mQ2xhc3M6W0NhcmJvbldpbmRvd0ZyYW1lIGNsYXNzXV0pOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgIGFzc2VydChfd2luZG93UmVmKTsKIAogICAgIC8vIFBhcmFtZXRlciBjaGVj
ay4KQEAgLTc3Niw4ICs3NjcsNyBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5k
bGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAgIGNvbnRl
bnRGcmFtZVJlY3Quc2l6ZS53aWR0aCA9IHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LnJpZ2h0IC0g
d2luZG93Q29udGVudEJvdW5kc1JlY3QubGVmdDsKICAgICBjb250ZW50RnJhbWVSZWN0LnNpemUu
aGVpZ2h0ID0gd2luZG93Q29udGVudEJvdW5kc1JlY3QuYm90dG9tIC0gd2luZG93Q29udGVudEJv
dW5kc1JlY3QudG9wOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBJZiB0aGUgY29udGVu
dCB2aWV3IGlzIHN0aWxsIGluIHNvbWUgb3RoZXIgdmlldyBoaWVyYXJjaHksIHByeSBpdCBmcmVl
LgogICAgIFtfY29udGVudFZpZXcgcmVtb3ZlRnJvbVN1cGVydmlld107CiAgICAgYXNzZXJ0KCFb
X2NvbnRlbnRWaWV3IHN1cGVydmlld10pOwpAQCAtNzkxLDcgKzc4MSw3IEBAIHN0YXRpYyBPU1N0
YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVu
dEhhbmRsZXJDYWxsCiAKICAgICAvLyBUZWxsIHRoZSBjb250ZW50IHZpZXcgaXQncyBuZXcgcGxh
Y2UgaW4gdGhlIHJlc3BvbmRlciBjaGFpbi4KICAgICBbX2NvbnRlbnRWaWV3IHNldE5leHRSZXNw
b25kZXI6c2VsZl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIApAQCAtOTQ0LDEwICs5MzQsOSBAQCBDbGVh
blVwOgogICAgIEhJUmVjdCBmcmFtZTsKIAogICAgIEhJVmlld0dldEZyYW1lKHJvb3QsICZmcmFt
ZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbX2JvcmRlclZpZXcgc2V0RnJhbWVTaXplOioo
TlNTaXplKikmZnJhbWUuc2l6ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKHZvaWQpX2hhbmRsZUNv
bnRlbnRCb3VuZHNDaGFuZ2VkCkBAIC05NjQsMTMgKzk1MywxMiBAQCBDbGVhblVwOgogICAgIC8v
IFNldCB0aGUgY29udGVudCB2aWV3J3MgZnJhbWUgcmVjdCBmcm9tIHRoZSBDYXJib24gd2luZG93
J3MgY29udGVudCByZWdpb24gYm91bmRzLgogICAgIGNvbnRlbnRGcmFtZS5vcmlnaW4ueSA9IHJv
b3RCb3VuZHMuc2l6ZS5oZWlnaHQgLSBDR1JlY3RHZXRNYXhZKGNvbnRlbnRGcmFtZSk7CiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIG9sZENvbnRlbnRGcmFtZVJlY3QgPSBbKE5TVmlldyAqKV9j
b250ZW50VmlldyBmcmFtZV07CiAgICAgaWYgKCFOU0VxdWFsUmVjdHMoKihOU1JlY3QqKSZjb250
ZW50RnJhbWUsIG9sZENvbnRlbnRGcmFtZVJlY3QpKSB7CiAgICAgICAgIFsoTlNWaWV3ICopX2Nv
bnRlbnRWaWV3IHNldEZyYW1lOiooTlNSZWN0KikmY29udGVudEZyYW1lXTsKICAgICB9Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiB9CiAKIC0gKE9TU3RhdHVzKV9oYW5kbGVDYXJib25FdmVudDooRXZlbnRSZWYpaW5F
dmVudCBjYWxsUmVmOihFdmVudEhhbmRsZXJDYWxsUmVmKWluQ2FsbFJlZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0ZyYW1lLm0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93RnJhbWUubQppbmRleCBlOTI2
ZWI2YzIxZTBmYTg4ZjI4ZGM0YTA2MWMzOTAyMjUzMjVlYjk3Li5jNzE0M2Q1NjM5NjZmZTJhM2Q3
Mzg4ODBmZDFiNmFhOGI5ODg3NDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DYXJib24vQ2FyYm9uV2luZG93RnJhbWUubQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DYXJib24vQ2FyYm9uV2luZG93RnJhbWUubQpAQCAtMjQxLDEwICsyNDEsOSBAQCAtIChOU1N0
cmluZyAqKXRpdGxlIHsKICAgICB3aW5kb3dSZWYgPSBbY2FyYm9uV2luZG93IHdpbmRvd1JlZl07
CiAgICAgb3NTdGF0dXMgPSBDb3B5V2luZG93VGl0bGVBc0NGU3RyaW5nKHdpbmRvd1JlZiwgJndp
bmRvd1RpdGxlKTsKICAgICBpZiAob3NTdGF0dXM9PW5vRXJyKSB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XY2FzdC1x
dWFsIgorICAgICAgICBJR05PUkVfV0FSTklOR19CRUdJTigiLVdjYXN0LXF1YWwiKQogICAgICAg
ICB3aW5kb3dUaXRsZUFzTlNTdHJpbmcgPSAoTlNTdHJpbmcgKil3aW5kb3dUaXRsZTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfRU5ECiAgICAg
fSBlbHNlIHsKICAgICAgICAgTlNMb2coQCJBIENhcmJvbiB3aW5kb3cncyB0aXRsZSBjb3VsZG4n
dCBiZSBnb3R0ZW4uIik7CiAgICAgICAgIHdpbmRvd1RpdGxlQXNOU1N0cmluZyA9IEAiIjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vSElWaWV3QWRhcHRlci5tCmluZGV4IGYz
ZDk5NjVhYjdmZDEzODRhYmI1NWU1OWM1YTA5NDRiNWU2MDFlNzAuLmNhZmNiOGRmZDgwY2Q5N2Jh
MWZjOTNhZDk0NzEwNTE0NjExNjIwMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2FyYm9uL0hJVmlld0FkYXB0ZXIubQpAQCAtODgsMTAgKzg4LDkgQEAgKyAodm9pZCliaW5kSElW
aWV3VG9OU1ZpZXc6KEhJVmlld1JlZiloaVZpZXcgbnNWaWV3OihOU1ZpZXcqKW5zVmlldwogCiAr
IChISVZpZXdSZWYpZ2V0SElWaWV3Rm9yTlNWaWV3OihOU1ZpZXcqKWluVmlldwogewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2Nhc3QtcXVhbCIKKyAgICBJR05PUkVfV0FSTklOR19CRUdJTigiLVdjYXN0LXF1YWwiKQog
ICAgIHJldHVybiBzVmlld01hcCA/IChISVZpZXdSZWYpQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoc1Zp
ZXdNYXAsIGluVmlldykgOiBOVUxMOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IElHTk9SRV9XQVJOSU5HX0VORAogfQogCiArICh2b2lkKXVuYmluZE5TVmlldzooTlNWaWV3Kilp
blZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVdlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vSElXZWJWaWV3Lm1tCmluZGV4
IDQwNmI3NzlmYWNmN2EzZDQxNGJiMmRmY2EzOTU1MTY0ZTc2MjkyNmEuLjI2NDkwNzJlMjkyMDk0
ZTRhMWU1MjI5ZTQ3M2E3NmY4Y2NiNTBhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2FyYm9uL0hJV2ViVmlldy5tbQpAQCAtMjg4LDExICsyODgsMTAgQEAgc3RhdGljIFVJbnQzMiBH
ZXRCZWhhdmlvcnMoKQogCiBzdGF0aWMgQ0dDb250ZXh0UmVmIG92ZXJyaWRlQ0dDb250ZXh0KE5T
V2luZG93ICp3aW5kb3csIENHQ29udGV4dFJlZiBjb250ZXh0KQogewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgTlNXaW5kb3dHcmFwaGljc0NvbnRleHQgKmdyYXBoaWNzQ29udGV4dCA9IChOU1dp
bmRvd0dyYXBoaWNzQ29udGV4dCAqKXdpbmRvdy5ncmFwaGljc0NvbnRleHQ7CiAgICAgQ0dDb250
ZXh0UmVmIHNhdmVkQ29udGV4dCA9IChDR0NvbnRleHRSZWYpZ3JhcGhpY3NDb250ZXh0LmdyYXBo
aWNzUG9ydDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBDR0NvbnRleHRSZXRhaW4oc2F2ZWRDb250ZXh0KTsK
ICAgICBbZ3JhcGhpY3NDb250ZXh0IF93ZWJfc2V0R3JhcGhpY3NQb3J0OmNvbnRleHRdOwogICAg
IHJldHVybiBzYXZlZENvbnRleHQ7CkBAIC0zMDAsMTAgKzI5OSw5IEBAIHN0YXRpYyBDR0NvbnRl
eHRSZWYgb3ZlcnJpZGVDR0NvbnRleHQoTlNXaW5kb3cgKndpbmRvdywgQ0dDb250ZXh0UmVmIGNv
bnRleHQpCiAKIHN0YXRpYyB2b2lkIHJlc3RvcmVDR0NvbnRleHQoTlNXaW5kb3cgKndpbmRvdywg
Q0dDb250ZXh0UmVmIHNhdmVkQ29udGV4dCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5T
V2luZG93R3JhcGhpY3NDb250ZXh0ICpncmFwaGljc0NvbnRleHQgPSAoTlNXaW5kb3dHcmFwaGlj
c0NvbnRleHQgKil3aW5kb3cuZ3JhcGhpY3NDb250ZXh0OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtncmFw
aGljc0NvbnRleHQgX3dlYl9zZXRHcmFwaGljc1BvcnQ6c2F2ZWRDb250ZXh0XTsKICAgICBDR0Nv
bnRleHRSZWxlYXNlKHNhdmVkQ29udGV4dCk7CiB9CkBAIC0zMjMsMTIgKzMyMSwxMSBAQCBzdGF0
aWMgdm9pZCBEcmF3KEhJV2ViVmlldyogaW5WaWV3LCBSZ25IYW5kbGUgbGltaXRSZ24sIENHQ29u
dGV4dFJlZiBpbkNvbnRleHQpCiAgICAgICAgIEdyYWZQdHIgcG9ydDsKICAgICAgICAgUmVjdCBw
b3J0UmVjdDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBHZXRQb3J0KCZwb3J0
KTsKICAgICAgICAgR2V0UG9ydEJvdW5kcyhwb3J0LCAmcG9ydFJlY3QpOwogICAgICAgICBDcmVh
dGVDR0NvbnRleHRGb3JQb3J0KHBvcnQsICZpbkNvbnRleHQpOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgICAgIFN5bmNDR0NvbnRleHRPcmlnaW5XaXRoUG9ydChpbkNvbnRleHQsIHBvcnQpOwogICAg
ICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oaW5Db250ZXh0LCAwLCAocG9ydFJlY3QuYm90dG9t
IC0gcG9ydFJlY3QudG9wKSk7CiAgICAgICAgIENHQ29udGV4dFNjYWxlQ1RNKGluQ29udGV4dCwg
MSwgLTEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET00ubW0KaW5kZXggOGViYjhhMGRhZjYzNDVm
MjE5MDNkNmZlY2IyNGQ4ZjE0ZTA2YzJhMS4uNmY0Mjc4MTJkYzc0MjljZGQzNjlhMzI3N2U4N2I2
Y2E0NTcxYjY3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NLm1tCkBAIC0yNDQsOCArMjQ0
LDcgQEAgc3RhdGljIGlubGluZSBXS1F1YWQgemVyb1F1YWQoKQogCiBAaW1wbGVtZW50YXRpb24g
RE9NTm9kZSAoV2ViQ29yZUludGVybmFsKQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xb2JqYy1wcm90b2NvbC1tZXRo
b2QtaW1wbGVtZW50YXRpb24iCitJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigiLVdvYmpjLXBy
b3RvY29sLW1ldGhvZC1pbXBsZW1lbnRhdGlvbiIpCiAKIC0gKE5TU3RyaW5nICopZGVzY3JpcHRp
b24KIHsKQEAgLTI1OSw3ICsyNTgsNyBAQCBzdGF0aWMgaW5saW5lIFdLUXVhZCB6ZXJvUXVhZCgp
CiAgICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiPCVAIFslQF06ICVwPiIs
IFtbc2VsZiBjbGFzc10gZGVzY3JpcHRpb25dLCBbc2VsZiBub2RlTmFtZV0sIF9pbnRlcm5hbF07
CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9DTEFOR19XQVJOSU5H
X0VORAogCiAtIChCaW5kaW5nczo6Um9vdE9iamVjdCopX3Jvb3RPYmplY3QKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeS5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5LmgKaW5kZXggZjgzYzUyNGQxOWRl
Yjc2MjdlYzVlZDI1OWUxZGE2YjQ2YjExZGY2OS4uNWJjZTNiYjc1NTU2Nzk0MzljNjJiZWE2Mzk1
YzcyMTE3NDJhZGE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9y
eS9XZWJIaXN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJI
aXN0b3J5LmgKQEAgLTEyOCwxMCArMTI4LDkgQEAgV0VCS0lUX0NMQVNTX0RFUFJFQ0FURURfTUFD
KDEwXzMsIDEwXzE0KQogICAgIEBwYXJhbSBjYWxlbmRhckRhdGUgQSBkYXRlIGlkZW50aWZ5aW5n
IHRoZSB1bmlxdWUgZGF5IG9mIGludGVyZXN0LgogICAgIEByZXN1bHQgUmV0dXJucyBhbiBhcnJh
eSBvZiBXZWJIaXN0b3J5SXRlbXMgbGFzdCB2aXNpdGVkIG9uIHRoZSBpbmRpY2F0ZWQgZGF5Lgog
Ki8KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAtIChOU0FycmF5ICopb3JkZXJlZEl0ZW1zTGFzdFZpc2l0ZWRP
bkRheTooTlNDYWxlbmRhckRhdGUgKiljYWxlbmRhckRhdGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZgogCiAv
KiEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9y
eS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeS5tbQppbmRl
eCA5MDQ5NmJiYjk5MzY0Mjk5NmJmNWEyNDU2ZGY4Njg4ZGY4NjU2MDdiLi40ZDE2ZTM4ODA2MWQ5
Y2ZlZjNiODdhOWNhZTlhYjc4MGQwNDJmZjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvSGlzdG9yeS9XZWJIaXN0b3J5Lm1tCkBAIC00NDYsOCArNDQ2LDcgQEAgc3RhdGljIGlubGlu
ZSBXZWJIaXN0b3J5RGF0ZUtleSBkYXRlS2V5KE5TVGltZUludGVydmFsIGRhdGUpCiAKIC8vIE1B
Uks6IERBVEUtQkFTRUQgUkVUUklFVkFMCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIC0gKE5TQXJyYXkg
KilvcmRlcmVkTGFzdFZpc2l0ZWREYXlzCiB7CkBAIC00NzksNyArNDc4LDcgQEAgc3RhdGljIGlu
bGluZSBXZWJIaXN0b3J5RGF0ZUtleSBkYXRlS2V5KE5TVGltZUludGVydmFsIGRhdGUpCiAgICAg
cmV0dXJuIF9lbnRyaWVzQnlEYXRlLT5nZXQoZGF0ZUtleSkuZ2V0KCk7CiB9CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
CiAvLyBNQVJLOiBVUkwgTUFUQ0hJTkcKIApAQCAtNTMxLDggKzUzMCw3IEBAIHN0YXRpYyBpbmxp
bmUgV2ViSGlzdG9yeURhdGVLZXkgZGF0ZUtleShOU1RpbWVJbnRlcnZhbCBkYXRlKQogICAgIHJl
dHVybiBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBpbnRlZ2VyRm9yS2V5
OkAiV2ViS2l0SGlzdG9yeUl0ZW1MaW1pdCJdOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiAvLyBS
ZXR1cm4gYSBkYXRlIHRoYXQgbWFya3MgdGhlIGFnZSBsaW1pdCBmb3IgaGlzdG9yeSBlbnRyaWVz
IHNhdmVkIHRvIG9yCiAvLyBsb2FkZWQgZnJvbSBkaXNrLiBBbnkgZW50cnkgb2xkZXIgdGhhbiB0
aGlzIGl0ZW0gc2hvdWxkIGJlIHJlamVjdGVkLgpAQCAtNTQyLDcgKzU0MCw3IEBAIHN0YXRpYyBp
bmxpbmUgV2ViSGlzdG9yeURhdGVLZXkgZGF0ZUtleShOU1RpbWVJbnRlcnZhbCBkYXRlKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG91cnM6
MCBtaW51dGVzOjAgc2Vjb25kczowXTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIC0gKEJPT0wpbG9hZEhpc3Rv
cnlHdXRzRnJvbVVSTDooTlNVUkwgKilVUkwgc2F2ZWRJdGVtc0NvdW50OihpbnQgKiludW1iZXJP
Zkl0ZW1zTG9hZGVkIGNvbGxlY3REaXNjYXJkZWRJdGVtc0ludG86KE5TTXV0YWJsZUFycmF5ICop
ZGlzY2FyZGVkSXRlbXMgZXJyb3I6KE5TRXJyb3IgKiopZXJyb3IKIHsKQEAgLTU2MSwxMCArNTU5
LDkgQEAgc3RhdGljIGlubGluZSBXZWJIaXN0b3J5RGF0ZUtleSBkYXRlS2V5KE5TVGltZUludGVy
dmFsIGRhdGUpCiAgICAgICAgICAgICByZXR1cm4gTk87CiAgICAgICAgIH0KICAgICB9IGVsc2Ug
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBOU0RhdGEgKmRhdGEgPSBbTlNVUkxD
b25uZWN0aW9uIHNlbmRTeW5jaHJvbm91c1JlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpVUkxdIHJldHVybmluZ1Jlc3BvbnNlOm5pbCBlcnJvcjplcnJvcl07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogICAgICAgICBpZiAoZGF0YS5sZW5ndGgpCiAgICAgICAgICAgICBkaWN0aW9uYXJ5ID0g
W05TUHJvcGVydHlMaXN0U2VyaWFsaXphdGlvbiBwcm9wZXJ0eUxpc3RXaXRoRGF0YTpkYXRhIG9w
dGlvbnM6TlNQcm9wZXJ0eUxpc3RJbW11dGFibGUgZm9ybWF0Om51bGxwdHIgZXJyb3I6bnVsbHB0
cl07CiAgICAgfQpAQCAtNzY4LDE1ICs3NjUsMTQgQEAgc3RhdGljIGlubGluZSBXZWJIaXN0b3J5
RGF0ZUtleSBkYXRlS2V5KE5TVGltZUludGVydmFsIGRhdGUpCiAgICAgcmV0dXJuIFtfaGlzdG9y
eVByaXZhdGUgb3JkZXJlZExhc3RWaXNpdGVkRGF5c107CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAK
IC0gKE5TQXJyYXkgKilvcmRlcmVkSXRlbXNMYXN0VmlzaXRlZE9uRGF5OihOU0NhbGVuZGFyRGF0
ZSAqKWRhdGUKIHsKICAgICByZXR1cm4gW19oaXN0b3J5UHJpdmF0ZSBvcmRlcmVkSXRlbXNMYXN0
VmlzaXRlZE9uRGF5OmRhdGVdOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogLy8gTUFSSzogVVJMIE1BVENISU5H
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9y
eUl0ZW0ubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVt
Lm1tCmluZGV4IGNjMTg1N2FmMDJiYWEwNzllYzkyYTgxZTQ2MDUwMDU4OTIzYTljOTguLjhmMTdj
M2FmODlmMmIyNzRhYjQ3NTQ1ZWE5ZjllYWFhNmM5ZWNkZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQpAQCAtMTk5LDEwICsxOTks
OSBAQCB2b2lkIFdLTm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2VkKEhpc3RvcnlJdGVtKikKICNpZiAh
UExBVEZPUk0oSU9TKQogLSAoTlNJbWFnZSAqKWljb24KIHsKLSNwcmFnbWEgR0NDIGRpYWdub3N0
aWMgcHVzaCAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IHJldHVybiBbW1dlYkljb25EYXRhYmFzZSBzaGFyZWRJY29uRGF0YWJhc2VdIGljb25Gb3JVUkw6
W3NlbGYgVVJMU3RyaW5nXSB3aXRoU2l6ZTpXZWJJY29uU21hbGxTaXplXTsKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJL
aXROU1N0cmluZ0V4dHJhcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0
TlNTdHJpbmdFeHRyYXMubW0KaW5kZXggN2Y5OTUwMmYzNmI3NDkyM2YzMTFlMDA2MWFlYmUxNGQ3
NjY0NmNjZS4uMDdmMTQxYzc5ZTQ0ZWQ5OGJjNjk3OTljOTJmNWJkM2VjZTc0Yzg5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdE5TU3RyaW5nRXh0cmFz
Lm1tCkBAIC03NywxMCArNzcsOSBAQCBzdGF0aWMgYm9vbCBjYW5Vc2VGYXN0UmVuZGVyZXIoY29u
c3QgVW5pQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgICAgIHBvaW50LnkgPSBD
R0NlaWxpbmcocG9pbnQueSk7CiAKICAgICAgICAgTlNHcmFwaGljc0NvbnRleHQgKm5zQ29udGV4
dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0Nv
bnRleHRSZWY+KFtuc0NvbnRleHQgZ3JhcGhpY3NQb3J0XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAg
ICAgICBHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0IHsgY2dDb250ZXh0IH07CiAKICAg
ICAgICAgLy8gV2ViQ29yZSByZXF1aXJlcyBhIGZsaXBwZWQgZ3JhcGhpY3MgY29udGV4dC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNJbWFnZUV4dHJhcy5t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU0ltYWdlRXh0cmFzLm0KaW5kZXgg
YzMyNjQzYjQ5OGZhZTcwZmQzMTI0YWU1YzQ1NjllMDNlOTZiMmZjMS4uNWZhYTE3YTJlYzA4NTJk
YWYzZjFhYTdlNjUzZTY2YmExZjhkMTE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvTWlzYy9XZWJOU0ltYWdlRXh0cmFzLm0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvTWlzYy9XZWJOU0ltYWdlRXh0cmFzLm0KQEAgLTUzLDEwICs1Myw5IEBAIC0gKHZvaWQpX3dl
Yl9zY2FsZVRvTWF4U2l6ZTooTlNTaXplKXNpemUKICAgICAKICAgICBpZihyZXNpemVEZWx0YSA+
IDAuMCl7CiAgICAgICAgIE5TU2l6ZSBuZXdTaXplID0gTlNNYWtlU2l6ZSgob3JpZ2luYWxTaXpl
LndpZHRoICogcmVzaXplRGVsdGEpLCAob3JpZ2luYWxTaXplLmhlaWdodCAqIHJlc2l6ZURlbHRh
KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFtzZWxmIHNldFNjYWxlc1doZW5S
ZXNpemVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBbc2VsZiBzZXRTaXplOm5ld1Np
emVdOwogICAgIH0KIH0KQEAgLTY1LDI5ICs2NCwyNSBAQCAtICh2b2lkKV93ZWJfZGlzc29sdmVU
b0ZyYWN0aW9uOihmbG9hdClkZWx0YQogewogICAgIE5TSW1hZ2UgKmRpc3NvbHZlZEltYWdlID0g
W1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aFNpemU6W3NlbGYgc2l6ZV1dOwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICBOU1BvaW50IHBvaW50ID0gW3NlbGYgaXNGbGlwcGVkXSA/IE5TTWFrZVBv
aW50KDAsIFtzZWxmIHNpemVdLmhlaWdodCkgOiBOU1plcm9Qb2ludDsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAg
ICAKICAgICAvLyBJbiB0aGlzIGNhc2UgdGhlIGRyYWdnaW5nIGltYWdlIGlzIGFsd2F5cyBjb3Jy
ZWN0LgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW2Rpc3NvbHZlZEltYWdlIHNldEZsaXBwZWQ6
W3NlbGYgaXNGbGlwcGVkXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBbZGlzc29sdmVkSW1hZ2UgbG9j
a0ZvY3VzXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtzZWxmIGRpc3NvbHZlVG9Qb2ludDpw
b2ludCBmcmFjdGlvbjogZGVsdGFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtkaXNzb2x2ZWRJbWFnZSB1
bmxvY2tGb2N1c107CiAKICAgICBbc2VsZiBsb2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgW2Rpc3NvbHZlZEltYWdlIGNvbXBvc2l0ZVRvUG9pbnQ6cG9pbnQgb3BlcmF0aW9uOk5T
Q29tcG9zaXRlQ29weV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW3NlbGYgdW5sb2NrRm9jdXNdOwogCiAg
ICAgW2Rpc3NvbHZlZEltYWdlIHJlbGVhc2VdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQppbmRleCBmYTIzYzZjYmRiMTQ2
Yjg2MmNjZTJlYWU0ODBhZWExMTk5NmMxYmIwLi5kYWJiY2RiYzMwYTllMjE3ZWUxZTljYTk4YTQy
ZDQzM2QyMjkzOTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dl
Yk5TUGFzdGVib2FyZEV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNj
L1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQpAQCAtMTg0LDEwICsxODQsOSBAQCBzdGF0aWMgTlNB
cnJheSAqX3dyaXRhYmxlVHlwZXNGb3JJbWFnZVdpdGhBcmNoaXZlICh2b2lkKQogCiArIChpbnQp
X3dlYl9zZXRGaW5kUGFzdGVib2FyZFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgd2l0aE93bmVy
OihpZClvd25lcgogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNQYXN0ZWJvYXJkICpmaW5k
UGFzdGVib2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOk5TRmluZFBib2Fy
ZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAgICAgW2ZpbmRQYXN0ZWJvYXJkIGRlY2xhcmVUeXBlczpbTlNBcnJh
eSBhcnJheVdpdGhPYmplY3Q6bGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUoKV0gb3duZXI6b3du
ZXJdOwogICAgIFtmaW5kUGFzdGVib2FyZCBzZXRTdHJpbmc6c3RyaW5nIGZvclR5cGU6bGVnYWN5
U3RyaW5nUGFzdGVib2FyZFR5cGUoKV07CiAgICAgcmV0dXJuIFtmaW5kUGFzdGVib2FyZCBjaGFu
Z2VDb3VudF07CkBAIC0yNzksMTAgKzI3OCw5IEBAIHN0YXRpYyBDYWNoZWRJbWFnZSogaW1hZ2VG
cm9tRWxlbWVudChET01FbGVtZW50ICpkb21FbGVtZW50KQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhcmNoaXZlOihXZWJBcmNoaXZlICopYXJjaGl2ZQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOihXZWJIVE1MVmlldyAqKXNvdXJjZQogewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgQVNTRVJUKHNlbGYgPT0gW05TUGFzdGVib2FyZCBwYXN0
ZWJvYXJkV2l0aE5hbWU6TlNEcmFnUGJvYXJkXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBOU1N0cmlu
ZyAqZXh0ZW5zaW9uID0gQCIiOwogICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gdHlwZXMg
PSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czpsZWdhY3lG
aWxlc1Byb21pc2VQYXN0ZWJvYXJkVHlwZSgpLCBuaWxdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1BhbmVscy9XZWJBdXRoZW50aWNhdGlvblBhbmVsLm0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9QYW5lbHMvV2ViQXV0aGVudGljYXRpb25QYW5lbC5tCmluZGV4IDY3
ZjE4YjhmNTM3NWVhYzU0NWIyM2E2M2RiOTc2ZjY5NDc2YjdkNGUuLjVmYzMyM2M4MjAxMzE0OWNh
MmQ1MTIxNmQ2ZTg2OTg3M2E2N2RkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1BhbmVscy9XZWJBdXRoZW50aWNhdGlvblBhbmVsLm0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvUGFuZWxzL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubQpAQCAtMTA0LDEwICsxMDQs
OSBAQCAtIChJQkFjdGlvbilsb2dJbjooaWQpc2VuZGVyCiAtIChCT09MKWxvYWROaWIKIHsKICAg
ICBpZiAoIW5pYkxvYWRlZCkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBpZiAo
W05TQnVuZGxlIGxvYWROaWJOYW1lZDpXZWJBdXRoZW50aWNhdGlvblBhbmVsTmliTmFtZSBvd25l
cjpzZWxmXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBuaWJMb2FkZWQgPSBZ
RVM7CiAgICAgICAgICAgICBbaW1hZ2VWaWV3IHNldEltYWdlOltOU0ltYWdlIGltYWdlTmFtZWQ6
QCJOU0FwcGxpY2F0aW9uSWNvbiJdXTsKICAgICAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1h
bmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkhvc3RNYW5hZ2VyLm1tCmluZGV4IDAyMTBiMDY2YmFhZDI2OTdlMDlmMjhlMDg5YWQz
NWZhNzRmMzY5ZGYuLmUxNTBhMzdkY2M0YmFjYzg5Yjc0NmE1MDQ3NTg5N2ZkNDVlMTEyMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBl
UGx1Z2luSG9zdE1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbQpAQCAtMTg3LDEwICsxODcsOSBA
QCBib29sIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI6OnNwYXduUGx1Z2luSG9zdChjb25zdCBT
dHJpbmcmIHBsdWdpblBhdGgsIGNwdV90eQogCiAgICAgUHJvY2Vzc1NlcmlhbE51bWJlciBwc247
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEdldEN1cnJlbnRQcm9jZXNzKCZwc24pOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogCiAgICAgQVNTRVJUKE1BQ0hfUE9SVF9WQUxJRChjbGllbnRQb3J0KSk7CiAgICAg
a3IgPSBfV0tQSENoZWNrSW5XaXRoUGx1Z2luSG9zdChwbHVnaW5Ib3N0UG9ydCwgc3RhdGljX2Nh
c3Q8dWludDhfdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KFtkYXRhIGJ5dGVzXSkpLCBbZGF0YSBsZW5n
dGhdLCBjbGllbnRQb3J0LCBwc24uaGlnaExvbmdPZlBTTiwgcHNuLmxvd0xvbmdPZlBTTiwgcmVu
ZGVyU2VydmVyUG9ydCwKQEAgLTMyMiwxMSArMzIxLDEwIEBAIHZvaWQgTmV0c2NhcGVQbHVnaW5I
b3N0TWFuYWdlcjo6ZGlkQ3JlYXRlV2luZG93KCkKICAgICAgICAgaWYgKCFob3N0UHJveHktPmlz
TWVudUJhclZpc2libGUoKSkgewogICAgICAgICAgICAgLy8gTWFrZSBvdXJzZWx2ZXMgdGhlIGZy
b250IHByb2Nlc3MuCiAgICAgICAgICAgICBQcm9jZXNzU2VyaWFsTnVtYmVyIHBzbjsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBHZXRDdXJyZW50UHJvY2VzcygmcHNu
KTsKICAgICAgICAgICAgIFNldEZyb250UHJvY2VzcygmcHNuKTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJv
eHkubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBs
dWdpbkhvc3RQcm94eS5tbQppbmRleCBlYzVmMGRhNThhNjJhOWU1NDQ3OGNjMmMwZjcwN2ViNGM3
MTAxMGI2Li5mMWM0YWQzMTg5MGUwNTZhZWIzODhiNGRjYmRlZGZiNTRmNjAxZjJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdp
bkhvc3RQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQpAQCAtMzQxLDMyICszNDEsMjkgQEAgYm9vbCBO
ZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6cHJvY2Vzc1JlcXVlc3RzKCkKIAogdm9pZCBOZXRzY2Fw
ZVBsdWdpbkhvc3RQcm94eTo6bWFrZUN1cnJlbnRQcm9jZXNzRnJvbnRQcm9jZXNzKCkKIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIFByb2Nlc3NTZXJpYWxOdW1iZXIgcHNuOwogICAgIEdldEN1
cnJlbnRQcm9jZXNzKCZwc24pOwogICAgIFNldEZyb250UHJvY2VzcygmcHNuKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIH0KIAogdm9pZCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6bWFrZVBsdWdpbkhvc3RQcm9j
ZXNzRnJvbnRQcm9jZXNzKCkgY29uc3QKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFNldEZy
b250UHJvY2VzcygmbV9wbHVnaW5Ib3N0UFNOKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogYm9vbCBOZXRz
Y2FwZVBsdWdpbkhvc3RQcm94eTo6aXNQbHVnaW5Ib3N0UHJvY2Vzc0Zyb250UHJvY2VzcygpIGNv
bnN0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBQcm9jZXNzU2VyaWFsTnVtYmVyIGZyb250
UHJvY2VzczsKICAgICBHZXRGcm9udFByb2Nlc3MoJmZyb250UHJvY2Vzcyk7CiAKICAgICBCb29s
ZWFuIGlzU2FtZVByb2Nlc3MgPSAwOwogICAgIFNhbWVQcm9jZXNzKCZmcm9udFByb2Nlc3MsICZt
X3BsdWdpbkhvc3RQU04sICZpc1NhbWVQcm9jZXNzKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIHJldHVy
biBpc1NhbWVQcm9jZXNzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5
Lm1tCmluZGV4IGU5M2ZiNTA2ZTVkZTBhNWRhZTNhZmE1NjU4Y2JhZjQxNzhlMjZhYTEuLmFjN2E0
YmIzMThjNTVmOTM1OWM5OGUwYThiZjk2ZDFlNmU0NDM2MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94
eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTQyMywxMCArNDIzLDkgQEAgdm9pZCBOZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHk6OnN0YXJ0VGltZXJzKGJvb2wgdGhyb3R0bGVUaW1lcnMpCiAg
ICAgCiB2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6bW91c2VFdmVudChOU1ZpZXcg
KnBsdWdpblZpZXcsIE5TRXZlbnQgKmV2ZW50LCBOUENvY29hRXZlbnRUeXBlIHR5cGUpCiB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICBOU1BvaW50IHNjcmVlblBvaW50ID0gW1tldmVudCB3aW5k
b3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICBOU1BvaW50IHBsdWdpblBvaW50ID0gW3BsdWdpblZpZXcgY29udmVydFBvaW50
OltldmVudCBsb2NhdGlvbkluV2luZG93XSBmcm9tVmlldzpuaWxdOwogICAgIAogICAgIGludCBj
bGlja0NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9I
b3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4
IGYzZTA0YjRmNTU4MDYxMTkxYzg2ZmQ2Nzc1NTE1OTE0ODYzZDExOTQuLjUwOTZmN2QzYTFjZmY4
YzNkZDU2ZTdiODg5MzE1YWE3ZGJjZDM4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2Fw
ZVBsdWdpblZpZXcubW0KQEAgLTQ3Nyw4ICs0NzcsNyBAQCBleHRlcm4gIkMiIHsKICAgICB9CiAK
ICAgICBpZiAoX3Byb3h5KSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGlmIChf
c29mdHdhcmVSZW5kZXJlcikgewogICAgICAgICAgICAgaWYgKFtOU0dyYXBoaWNzQ29udGV4dCBj
dXJyZW50Q29udGV4dERyYXdpbmdUb1NjcmVlbl0pIHsKICAgICAgICAgICAgICAgICBfc29mdHdh
cmVSZW5kZXJlci0+cmVuZGVyKChDR0NvbnRleHRSZWYpW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJy
ZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XSwgTlNSZWN0VG9DR1JlY3QocmVjdCkpOwpAQCAtNDg4
LDcgKzQ4Nyw3IEBAIGV4dGVybiAiQyIgewogICAgICAgICB9IGVsc2UgaWYgKF9zbmFwc2hvdHRp
bmcgJiYgW3NlbGYgc3VwcG9ydHNTbmFwc2hvdHRpbmddKSB7CiAgICAgICAgICAgICBfcHJveHkt
PnNuYXBzaG90KHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0UmVmPihbW05TR3JhcGhpY3NDb250
ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdKSwgW3NlbGYgYm91bmRzXS5zaXplLndp
ZHRoLCBbc2VsZiBib3VuZHNdLnNpemUuaGVpZ2h0KTsKICAgICAgICAgfQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIAogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViVGV4dElucHV0V2luZG93
Q29udHJvbGxlci5tCmluZGV4IGZiZDY2N2I3NDhmODQyM2VlZTg4MTdhZTRkMTViNWE3NjYyZmI1
MTkuLmM2YmYwM2UyOTMyODZhMzQ5ZmE0MzBiMmM4N2VkNWU5MTRhMzBhYjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYlRleHRJbnB1dFdpbmRv
d0NvbnRyb2xsZXIubQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3Rl
ZC9XZWJUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm0KQEAgLTEwNiwxOSArMTA2LDE3IEBAIC0g
KHZvaWQpX2tleWJvYXJkSW5wdXRTb3VyY2VDaGFuZ2VkOihOU05vdGlmaWNhdGlvbiAqKW5vdGlm
aWNhdGlvbgogCiAtIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooTlNFdmVudCAqKWV2ZW50IHN0
cmluZzooTlNTdHJpbmcgKiopc3RyaW5nCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBCT09M
IGhhZE1hcmtlZFRleHQgPSBbX2lucHV0VGV4dFZpZXcgaGFzTWFya2VkVGV4dF07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAKICAgICAqc3RyaW5nID0gbmlsOwogCiAgICAgLy8gTGV0IFRTTSBrbm93IHRoYXQgYSBi
b3R0b20gaW5wdXQgd2luZG93IHdvdWxkIGJlIGNyZWF0ZWQgZm9yIG1hcmtlZCB0ZXh0LgogICAg
IC8vIEZJWE1FOiBDYW4gYmUgcmVtb3ZlZCBvbmNlIHdlIGNhbiByZWx5IG9uIF9fTlNVc2VzRmxv
YXRpbmdJbnB1dFdpbmRvdyAob3IgYSBiZXR0ZXIgQVBJKSBiZWluZyBhdmFpbGFibGUgZXZlcnl3
aGVyZS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdjYXN0LXF1YWwiCisgICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1X
Y2FzdC1xdWFsIikKICAgICBFdmVudFJlZiBjYXJib25FdmVudCA9IChFdmVudFJlZilbZXZlbnQg
ZXZlbnRSZWZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJO
SU5HX0VORAogICAgIGlmIChjYXJib25FdmVudCkgewogICAgICAgICBCb29sZWFuIGlnbm9yZVBB
SCA9IHRydWU7CiAgICAgICAgIFNldEV2ZW50UGFyYW1ldGVyKGNhcmJvbkV2ZW50LCAnaVBBSCcs
IHR5cGVCb29sZWFuLCBzaXplb2YoaWdub3JlUEFIKSwgJmlnbm9yZVBBSCk7CkBAIC0xMjcsMTAg
KzEyNSw5IEBAIC0gKEJPT0wpX2ludGVycHJldEtleUV2ZW50OihOU0V2ZW50ICopZXZlbnQgc3Ry
aW5nOihOU1N0cmluZyAqKilzdHJpbmcKICAgICBpZiAoIVtbX2lucHV0VGV4dFZpZXcgaW5wdXRD
b250ZXh0XSBoYW5kbGVFdmVudDpldmVudF0pCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChbX2lucHV0VGV4dFZpZXcgaGFzTWFya2VkVGV4dF0p
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIC8vIERvbid0IHNob3cgdGhlIGlucHV0IG1ldGhv
ZCB3aW5kb3cgZm9yIGRlYWQga2V5cwogICAgICAgICBpZiAoW1tldmVudCBjaGFyYWN0ZXJzXSBs
ZW5ndGhdID4gMCkKICAgICAgICAgICAgIFtzZWxmIG9yZGVyRnJvbnQ6bmlsXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2lu
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBl
UGx1Z2luVmlldy5tbQppbmRleCA2ZDg1YThjNWVhNDE1OTgyYjEwOGVlYWE2ZGVjNDdjMGM4NjYx
OTk0Li5iNGM1ZTZmNzA2YTkwZjUyMDhiZjcyNWU3OTM2Y2UyZDBlY2NhNTIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2Nh
cGVQbHVnaW5WaWV3Lm1tCkBAIC03MjksMjUgKzcyOSwyMiBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKICAgICBzd2l0Y2ggKHNvdXJjZVNwYWNlKSB7CiAgICAgICAgIGNhc2UgTlBDb29yZGlu
YXRlU3BhY2VQbHVnaW46CiAgICAgICAgICAgICBzb3VyY2VQb2ludEluU2NyZWVuU3BhY2UgPSBb
c2VsZiBjb252ZXJ0UG9pbnQ6c291cmNlUG9pbnQgdG9WaWV3Om5pbF07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgICAgICAgICAgc291cmNlUG9pbnRJblNjcmVlblNwYWNlID0gW1tz
ZWxmIGN1cnJlbnRXaW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46c291cmNlUG9pbnRJblNjcmVl
blNwYWNlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICAKICAgICAgICAgY2FzZSBOUENvb3JkaW5hdGVTcGFjZVdpbmRvdzoKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBzb3VyY2VQb2ludEluU2NyZWVuU3BhY2UgPSBb
W3NlbGYgY3VycmVudFdpbmRvd10gY29udmVydEJhc2VUb1NjcmVlbjpzb3VyY2VQb2ludF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAg
ICAgIGNhc2UgTlBDb29yZGluYXRlU3BhY2VGbGlwcGVkV2luZG93OgogICAgICAgICAgICAgc291
cmNlUG9pbnQueSA9IFtbc2VsZiBjdXJyZW50V2luZG93XSBmcmFtZV0uc2l6ZS5oZWlnaHQgLSBz
b3VyY2VQb2ludC55OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAgIHNv
dXJjZVBvaW50SW5TY3JlZW5TcGFjZSA9IFtbc2VsZiBjdXJyZW50V2luZG93XSBjb252ZXJ0QmFz
ZVRvU2NyZWVuOnNvdXJjZVBvaW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBOUENvb3JkaW5hdGVTcGFjZVNjcmVl
bjoKQEAgLTc2NywyNSArNzY0LDIyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIC8v
IFRoZW4gY29udmVydCBiYWNrIHRvIHRoZSBkZXN0aW5hdGlvbiBzcGFjZQogICAgIHN3aXRjaCAo
ZGVzdFNwYWNlKSB7CiAgICAgICAgIGNhc2UgTlBDb29yZGluYXRlU3BhY2VQbHVnaW46Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgZGVzdFBvaW50ID0gW1tzZWxmIGN1
cnJlbnRXaW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6c291cmNlUG9pbnRJblNjcmVlblNwYWNl
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgZGVzdFBvaW50ID0gW3NlbGYgY29u
dmVydFBvaW50OmRlc3RQb2ludCBmcm9tVmlldzpuaWxdOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAKICAgICAgICAgY2FzZSBOUENvb3JkaW5hdGVTcGFjZVdpbmRvdzoKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBkZXN0UG9pbnQgPSBbW3NlbGYgY3Vy
cmVudFdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpzb3VyY2VQb2ludEluU2NyZWVuU3BhY2Vd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAog
ICAgICAgICBjYXNlIE5QQ29vcmRpbmF0ZVNwYWNlRmxpcHBlZFdpbmRvdzoKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBkZXN0UG9pbnQgPSBbW3NlbGYgY3VycmVudFdp
bmRvd10gY29udmVydFNjcmVlblRvQmFzZTpzb3VyY2VQb2ludEluU2NyZWVuU3BhY2VdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBkZXN0UG9pbnQueSA9IFtbc2VsZiBjdXJyZW50
V2luZG93XSBmcmFtZV0uc2l6ZS5oZWlnaHQgLSBkZXN0UG9pbnQueTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
bHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luUGFja2FnZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLm1tCmluZGV4IGYyMjg5MzQ3NDIx
OTA0YmVlM2M4ODY2NmM0ZTMwMDkyZmMxMDUwZGUuLjU0ZDBhZGM0ZjBlMmYyNTg3NDc4ZWFmOWY2
MDYxNmM5MDE4NDQ1NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdp
bnMvV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLm1tCkBAIC0xNjcsMTQgKzE2Nywx
MyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICBpZiAoIU5QX0luaXRpYWxpemUgfHwg
IU5QX0dldEVudHJ5UG9pbnRzIHx8ICFOUF9TaHV0ZG93bikKICAgICAgICAgcmV0dXJuIE5POwog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBQbHVnaW5zIChhdCBsZWFzdCBRVCkgcmVxdWly
ZSB0aGF0IHlvdSBjYWxsIFVzZVJlc0ZpbGUgb24gdGhlIHJlc291cmNlIGZpbGUgYmVmb3JlIGxv
YWRpbmcgaXQuCiAgICAgcmVzb3VyY2VSZWYgPSBbc2VsZiBvcGVuUmVzb3VyY2VGaWxlXTsKICAg
ICBpZiAocmVzb3VyY2VSZWYgIT0gLTEpIHsKICAgICAgICAgVXNlUmVzRmlsZShyZXNvdXJjZVJl
Zik7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgYnJvd3NlckZ1bmNzLnZlcnNpb24gPSBOUF9W
RVJTSU9OX01JTk9SOwogICAgIGJyb3dzZXJGdW5jcy5zaXplID0gc2l6ZW9mKE5QTmV0c2NhcGVG
dW5jcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5l
dHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2Vi
TmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDQ5ZGMxYzUxNGY3MmM0NDlmZmRhZTcyOWNhOGQ5
YzA4MTY0YTllM2UuLjlhNzQ1ZDkzODNmNzQ0N2Y1NDJkZjUwNDVlMjQ0NWIzODUzZTA4ODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVn
aW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2Nh
cGVQbHVnaW5WaWV3Lm1tCkBAIC0zNzcsMTAgKzM3Nyw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBn
ZXROUFJlY3QoY29uc3QgTlNSZWN0JiBuciwgTlBSZWN0JiBucHIpCiAgICAgICAgICAgICBSZ25I
YW5kbGUgY2xpcFJlZ2lvbiA9IE5ld1JnbigpOwogICAgICAgICAgICAgcWRQb3J0U3RhdGUtPmNs
aXBSZWdpb24gPSBjbGlwUmVnaW9uOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICAgICAgQ0dDb250ZXh0UmVmIGN1cnJlbnRDb250ZXh0ID0gKENHQ29udGV4dFJlZilbW05T
R3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgICAgICAgICBpZiAoY3VycmVudENvbnRleHQgJiYgQ0dDb250ZXh0R2V0
VHlwZShjdXJyZW50Q29udGV4dCkgPT0ga0NHQ29udGV4dFR5cGVCaXRtYXApIHsKICAgICAgICAg
ICAgICAgICAvLyBXZSBjaGVjayBmb3Iga0NHQ29udGV4dFR5cGVCaXRtYXAgaGVyZSwgYmVjYXVz
ZSBpZiB3ZSBqdXN0IGNhbGxlZCBDR0JpdG1hcENvbnRleHRHZXREYXRhCiAgICAgICAgICAgICAg
ICAgLy8gb24gYW55IGNvbnRleHQsIHdlJ2QgbG9nIHRvIHRoZSBjb25zb2xlIGV2ZXJ5IHRpbWUu
IEJ1dCBldmVuIGlmIGN1cnJlbnRDb250ZXh0IGlzIGEKQEAgLTUwMywxMCArNTAyLDkgQEAgc3Rh
dGljIGlubGluZSB2b2lkIGdldE5QUmVjdChjb25zdCBOU1JlY3QmIG5yLCBOUFJlY3QmIG5wcikK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgQVNTRVJUKFtOU1ZpZXcgZm9jdXNWaWV3XSA9PSBz
ZWxmKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAgIENHQ29udGV4
dFJlZiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dDb250ZXh0UmVmPihbW05TR3JhcGhpY3NDb250
ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
CiAgICAgICAgICAgICBQb3J0U3RhdGVfQ0cgKmNnUG9ydFN0YXRlID0gKFBvcnRTdGF0ZV9DRyAq
KW1hbGxvYyhzaXplb2YoUG9ydFN0YXRlX0NHKSk7CiAgICAgICAgICAgICBwb3J0U3RhdGUgPSAo
UG9ydFN0YXRlKWNnUG9ydFN0YXRlOwpAQCAtNjk1LDEwICs2OTMsOSBAQCBzdGF0aWMgaW5saW5l
IHZvaWQgZ2V0TlBSZWN0KGNvbnN0IE5TUmVjdCYgbnIsIE5QUmVjdCYgbnByKQogewogICAgIEFT
U0VSVChfZXZlbnRIYW5kbGVyKTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENHQ29u
dGV4dFJlZiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dDb250ZXh0UmVmPihbW05TR3JhcGhpY3ND
b250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBf
ZXZlbnRIYW5kbGVyLT5kcmF3UmVjdChjb250ZXh0LCByZWN0KTsKIH0KIApAQCAtMTMzOCwxMCAr
MTMzNSw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3QoY29uc3QgTlNSZWN0JiBuciwg
TlBSZWN0JiBucHIpCiAgICAgICAgIGlmIChwcmludGVkUGx1Z2luQml0bWFwKSB7CiAgICAgICAg
ICAgICAvLyBGbGlwIHRoZSBiaXRtYXAgYmVmb3JlIGRyYXdpbmcgYmVjYXVzZSB0aGUgUXVpY2tE
cmF3IHBvcnQgaXMgZmxpcHBlZCByZWxhdGl2ZQogICAgICAgICAgICAgLy8gdG8gdGhpcyB2aWV3
LgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAgIENHQ29udGV4dFJlZiBj
Z0NvbnRleHQgPSAoQ0dDb250ZXh0UmVmKVtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRl
eHRdIGdyYXBoaWNzUG9ydF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgIENHQ29u
dGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0KTsKICAgICAgICAgICAgIE5TUmVjdCBib3VuZHMgPSBb
c2VsZiBib3VuZHNdOwogICAgICAgICAgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNnQ29udGV4
dCwgMC4wZiwgTlNIZWlnaHQoYm91bmRzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KaW5kZXggMjkwZmVmNjNhZDkx
NmFhNjE4ZDMwYTIxZDkxNDNlMjE4ZWM5MGU4NS4uODM3OWQzZDdjODNiMDE1MDUyZGY4MTFjZjQz
NzEzMTc5MGNiNzQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lu
cy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1Bs
dWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQpAQCAtNjU0LDIxICs2NTQsMTkgQEAgc3RhdGlj
IGFsZXJ0RGlkRW5kSU1QIG9yaWdpbmFsX1RTVXBkYXRlQ2hlY2tfYWxlcnREaWRFbmRfcmV0dXJu
Q29kZV9jb250ZXh0SW5mb18KIAogc3RhdGljIHZvaWQgV2ViS2l0X1RTVXBkYXRlQ2hlY2tfYWxl
cnREaWRFbmRfcmV0dXJuQ29kZV9jb250ZXh0SW5mb18oaWQgb2JqZWN0LCBTRUwgc2VsZWN0b3Is
IE5TQWxlcnQgKmFsZXJ0LCBOU0ludGVnZXIgcmV0dXJuQ29kZSwgdm9pZCogY29udGV4dEluZm8p
CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbWyhUU1VwZGF0ZUNoZWNrICopb2JqZWN0IGRl
bGVnYXRlXSBhdXRvcmVsZWFzZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBvcmlnaW5hbF9UU1VwZGF0
ZUNoZWNrX2FsZXJ0RGlkRW5kX3JldHVybkNvZGVfY29udGV4dEluZm9fKG9iamVjdCwgc2VsZWN0
b3IsIGFsZXJ0LCByZXR1cm5Db2RlLCBjb250ZXh0SW5mbyk7CiB9CiAKIHN0YXRpYyB2b2lkIFdl
YktpdF9OU0FsZXJ0X2JlZ2luU2hlZXRNb2RhbEZvcldpbmRvd19tb2RhbERlbGVnYXRlX2RpZEVu
ZFNlbGVjdG9yX2NvbnRleHRJbmZvXyhpZCBvYmplY3QsIFNFTCBzZWxlY3RvciwgTlNXaW5kb3cg
KndpbmRvdywgaWQgbW9kYWxEZWxlZ2F0ZSwgU0VMIGRpZEVuZFNlbGVjdG9yLCB2b2lkKiBjb250
ZXh0SW5mbykKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChpc0tpbmRPZkNsYXNzKG1v
ZGFsRGVsZWdhdGUsIEAiVFNVcGRhdGVDaGVjayIpKQogICAgICAgICBbWyhUU1VwZGF0ZUNoZWNr
ICopbW9kYWxEZWxlZ2F0ZSBkZWxlZ2F0ZV0gcmV0YWluXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIG9y
aWdpbmFsX05TQWxlcnRfYmVnaW5TaGVldE1vZGFsRm9yV2luZG93X21vZGFsRGVsZWdhdGVfZGlk
RW5kU2VsZWN0b3JfY29udGV4dEluZm9fKG9iamVjdCwgc2VsZWN0b3IsIHdpbmRvdywgbW9kYWxE
ZWxlZ2F0ZSwgZGlkRW5kU2VsZWN0b3IsIGNvbnRleHRJbmZvKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQppbmRl
eCA3YjFmYmVhZWUxMDYwOWJlYzlmM2MyZmU0ZDY0NjY5OWRkM2Q0YWY4Li44OTcxMDM4YTFjMTM5
MmUwZjVjYWIzYzZhY2E5YmQ1YTczMWVlMmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCkBAIC0xMTMsMTUgKzEx
MywxNCBAQCB2b2lkIFBvcHVwTWVudU1hYzo6cG9wdWxhdGUoKQogICAgICAgICBbbWVudUl0ZW0g
c2V0RW5hYmxlZDptX2NsaWVudC0+aXRlbUlzRW5hYmxlZChpKV07CiAgICAgICAgIFttZW51SXRl
bSBzZXRUb29sVGlwOm1fY2xpZW50LT5pdGVtVG9vbFRpcChpKV07CiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICAgICAgLy8gQWxsb3cgdGhlIGFjY2Vzc2libGUgdGV4dCBvZiB0aGUgaXRl
bSB0byBiZSBvdmVycmlkZGVuIGlmIG5lY2Vzc2FyeS4KICAgICAgICAgaWYgKEFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKICAgICAgICAgICAgIE5TU3RyaW5nICphY2Nl
c3NpYmlsaXR5T3ZlcnJpZGUgPSBtX2NsaWVudC0+aXRlbUFjY2Vzc2liaWxpdHlUZXh0KGkpOwog
ICAgICAgICAgICAgaWYgKFthY2Nlc3NpYmlsaXR5T3ZlcnJpZGUgbGVuZ3RoXSkKICAgICAgICAg
ICAgICAgICBbbWVudUl0ZW0gYWNjZXNzaWJpbGl0eVNldE92ZXJyaWRlVmFsdWU6YWNjZXNzaWJp
bGl0eU92ZXJyaWRlIGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0dHJp
YnV0ZV07CiAgICAgICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRl
eHRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFs
dGVybmF0aXZlVGV4dENsaWVudC5oCmluZGV4IGM4ZDMzZWIxODlhNmYzMWQ1Y2NiZGUxOGVkNTdi
NmZlNTRjZmY3ZDQuLjMwNmRlNTUyODg3OTBlNmVjZjhhNWZjOTQ5ODhmNjc5NTIxOThjZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVy
bmF0aXZlVGV4dENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oCkBAIC01MCwxNCArNTAsMTEgQEAgcHVi
bGljOgogI2VuZGlmCiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jaWYgZGVmaW5lZChfX2hhc193YXJuaW5nKSAmJiBfX2hhc193YXJu
aW5nKCItV3VudXNlZC1wcml2YXRlLWZpZWxkIikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV3VudXNlZC1wcml2YXRlLWZpZWxkIgotI2VuZGlmCitJR05PUkVfQ0xBTkdfV0FS
TklOR19CRUdJTigiLVd1bnVzZWQtcHJpdmF0ZS1maWVsZCIpCiAjZW5kaWYKICAgICBXZWJWaWV3
KiBtX3dlYlZpZXc7CiAjaWYgUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAjZW5kaWYKICNpZiBVU0UoQVVUT0NPUlJF
Q1RJT05fUEFORUwpCiAgICAgQ29ycmVjdGlvblBhbmVsIG1fY29ycmVjdGlvblBhbmVsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0Ns
aWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdD
bGllbnQubW0KaW5kZXggYTU5MjRmNDdlMDY3MmNlNmE1NDQxOTg4MTQwNTdhNmY3ZDY4ZGNlMi4u
YTRjYzZhZjI3YTgyYWU3YmU2MDYwNzUwYjU1MTM4OGMwMWFhYjI4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1t
CkBAIC0xMzMsMTAgKzEzMyw5IEBAIHZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJ
dGVtIGRyYWdJdGVtLCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRnJhCiAgICAgICAgICAg
ICBSZXBvcnREaXNjYXJkZWREZWxlZ2F0ZUV4Y2VwdGlvbihzZWxlY3RvciwgZXhjZXB0aW9uKTsK
ICAgICAgICAgfQogICAgIH0gZWxzZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBb
dG9wSFRNTFZpZXcgZHJhZ0ltYWdlOmRyYWdOU0ltYWdlIGF0OmRyYWdMb2NhdGlvbkluQ29udGVu
dENvb3JkaW5hdGVzIG9mZnNldDpOU1plcm9TaXplIGV2ZW50OmV2ZW50IHBhc3RlYm9hcmQ6cGFz
dGVib2FyZCBzb3VyY2U6c291cmNlSFRNTFZpZXcgc2xpZGVCYWNrOllFU107Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogfQogCiB2b2lkIFdlYkRyYWdDbGllbnQ6OmJlZ2luRHJhZyhEcmFnSXRlbSBkcmFnSXRl
bSwgRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRQb2ludCYgbW91c2VEb3duUG9zaXRpb24sIGNvbnN0
IEludFBvaW50JiBtb3VzZURyYWdnZWRQb3NpdGlvbiwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNm
ZXIsIERyYWdTb3VyY2VBY3Rpb24gZHJhZ1NvdXJjZUFjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQubW0KaW5kZXggOWI5MTA3ZGZmMjg0Zjg5YzU4NzIwNGQ2YjE2M2VlMzhkNGRjZWViNi4u
MjM1YzYyN2Y3MzczM2RhMWIwMDE1OWFlMDRmMDU1ZDQwYTE0Nzc0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0KQEAgLTMwOCwxMCArMzA4LDkgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiBk
b2MKIAogICAgIGlmICghbWFpblJlc291cmNlTG9hZGVyKSB7CiAgICAgICAgIC8vIFRoZSByZXNv
dXJjZSBoYXMgYWxyZWFkeSBiZWVuIGNhY2hlZCwgb3IgdGhlIGNvbnZlcnNpb24gaXMgYmVpbmcg
YXR0bXB0ZWQgd2hlbiBub3QgY2FsbGluZyBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKCkuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFdlYkRvd25sb2FkICp3
ZWJEb3dubG9hZCA9IFtbV2ViRG93bmxvYWQgYWxsb2NdIGluaXRXaXRoUmVxdWVzdDpyZXF1ZXN0
Lm5zVVJMUmVxdWVzdChIVFRQQm9keVVwZGF0ZVBvbGljeTo6VXBkYXRlSFRUUEJvZHkpIGRlbGVn
YXRlOlt3ZWJWaWV3IGRvd25sb2FkRGVsZWdhdGVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAg
IFt3ZWJEb3dubG9hZCBhdXRvcmVsZWFzZV07CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0y
MzQ1LDEwICsyMzQ0LDkgQEAgc3RhdGljIE5TSW1hZ2UgKndlYkdldE5TSW1hZ2UoSW1hZ2UqIGlt
YWdlLCBOU1NpemUgc2l6ZSkKICAgICBpZiAoIW5zSW1hZ2UpCiAgICAgICAgIHJldHVybiBuaWw7
CiAgICAgaWYgKCFOU0VxdWFsU2l6ZXMoW25zSW1hZ2Ugc2l6ZV0sIHNpemUpKSB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFtuc0ltYWdlIHNldFNjYWxlc1doZW5SZXNpemVkOllF
U107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBbbnNJbWFnZSBzZXRTaXplOnNpemVdOwogICAg
IH0KICAgICByZXR1cm4gbnNJbWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KaW5kZXggOTFiNjViZWM5NGJm
ODk0ZjQxNjU0YmU5NGJlZGEzMzFkOWVlZWQ5MC4uYzhiYTdmYjQxMmJkYzBkMzg3N2Q5ZWJkNDdm
MTFlMmViZWM2NzdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5z
cGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KQEAgLTI2NiwxMCArMjY2LDkgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgQVNTRVJUKFtfdGFyZ2V0VmlldyB3aW5kb3ddKTsK
IAogICAgIE5TUmVjdCBoaWdobGlnaHRXaW5kb3dGcmFtZSA9IFtfdGFyZ2V0VmlldyBjb252ZXJ0
UmVjdDpbX3RhcmdldFZpZXcgdmlzaWJsZVJlY3RdIHRvVmlldzpuaWxdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgaGlnaGxpZ2h0V2luZG93RnJhbWUub3JpZ2luID0gW1tfdGFyZ2V0VmlldyB3
aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46aGlnaGxpZ2h0V2luZG93RnJhbWUub3JpZ2luXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKIAogICAgIHJldHVybiBoaWdobGlnaHRXaW5kb3dGcmFtZTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxp
Z2h0Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2Rl
SGlnaGxpZ2h0Vmlldy5tbQppbmRleCBlN2NkNWU0NjJkZjI2OGZhZDIwNmRkYTUxMmRkNTMzMzUz
YjE5MDQ2Li5hNWE1MGNlY2E1MjExNWQzOTI0MDU4YTQ4MDJmZWE3NmFjMWQwZGQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdo
dFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5v
ZGVIaWdobGlnaHRWaWV3Lm1tCkBAIC05OCwxMCArOTgsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAogICAgICAgICBBU1NFUlQoW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4
dF0gaXNGbGlwcGVkXSk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgR3JhcGhp
Y3NDb250ZXh0IGNvbnRleHQoKFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KilbW05TR3JhcGhpY3ND
b250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgICAgIFtfd2ViTm9kZUhpZ2hsaWdodCBpbnNwZWN0b3JDb250cm9sbGVyXS0+ZHJhd0hpZ2hs
aWdodChjb250ZXh0KTsKICAgICAgICAgW05TR3JhcGhpY3NDb250ZXh0IHJlc3RvcmVHcmFwaGlj
c1N0YXRlXTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYkNsaXBWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJD
bGlwVmlldy5tbQppbmRleCA1ZmQ1YzE0MjcwMmIxODZlYTk0MDdmMzhmYzBlM2M5MzZiNDdiNDZh
Li43ZjU1MjRhMzQ1Y2ZiNWEyZWY3YjEzNGMxMWJkODA2MGZmMzEwYWNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViQ2xpcFZpZXcubW0KQEAgLTY2LDggKzY2LDcg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1
cm4gbmlsOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBJbiBXZWJIVE1MVmlldywgd2Ug
c2V0IGEgY2xpcC4gVGhpcyBpcyBub3QgdHlwaWNhbCB0byBkbyBpbiBhbgogICAgIC8vIE5TVmll
dywgYW5kIHdoaWxlIGNvcnJlY3QgZm9yIGFueSBvbmUgaW52b2NhdGlvbiBvZiBkcmF3UmVjdDos
CiAgICAgLy8gaXQgY2F1c2VzIHNvbWUgYmFkIHByb2JsZW1zIGlmIHRoYXQgY2xpcCBpcyBjYWNo
ZWQgYmV0d2VlbiBjYWxscy4KQEAgLTc4LDcgKzc3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAgICAgLy8gU2VlIHRoZXNlIGJ1Z3MgZm9yIG1vcmUgaW5mb3JtYXRpb246CiAgICAgLy8g
PHJkYXI6Ly9wcm9ibGVtLzM0MDkzMTU+OiBSRUdSRVNTU0lPTiAoN0I1OC03QjYwKT86IFNhZmFy
aSBkcmF3cyBibGFuayBmcmFtZXMgb24gbWFjb3N4LmFwcGxlLmNvbSBwZXJmIHBhZ2UKICAgICBb
c2VsZiByZWxlYXNlR1N0YXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIHJldHVybiBzZWxmOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggODYwZGIy
OTBlMTBmYzJjYjI1Y2RmOTE2NDAyYWRiN2NjZTljZjc5NC4uOTZjZWJiZWY5NDM4OWViMmI1ZmVi
ZTRmNTU4OGZjYTlmODYyMzk4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkZyYW1lLm1tCkBAIC00NDMsMTAgKzQ0Myw5IEBAIHN0YXRpYyBOU1VSTCAqY3JlYXRlVW5p
cXVlV2ViRGF0YVVSTCgpOwogICAgICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZp
ZXcoKSkgewogICAgICAgICAgICAgdmlldy0+c2V0VHJhbnNwYXJlbnQoIWRyYXdzQmFja2dyb3Vu
ZCk7CiAjaWYgIVBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
ICAgICAgICBDb2xvciBjb2xvciA9IGNvbG9yRnJvbU5TQ29sb3IoW2JhY2tncm91bmRDb2xvciBj
b2xvclVzaW5nQ29sb3JTcGFjZU5hbWU6TlNEZXZpY2VSR0JDb2xvclNwYWNlXSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICNlbHNlCiAgICAgICAgICAgICBDb2xvciBjb2xvciA9IENvbG9yKGJhY2tn
cm91bmRDb2xvcik7CiAjZW5kaWYKQEAgLTYyMiwxMCArNjIxLDkgQEAgc3RhdGljIGlubGluZSBX
ZWJEYXRhU291cmNlICpkYXRhU291cmNlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAjaWYgIVBM
QVRGT1JNKElPUykKICAgICBBU1NFUlQoW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4
dF0gaXNGbGlwcGVkXSk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENHQ29udGV4dFJlZiBj
dHggPSBzdGF0aWNfY2FzdDxDR0NvbnRleHRSZWY+KFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVu
dENvbnRleHRdIGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogI2Vsc2UKICAgICBDR0NvbnRl
eHRSZWYgY3R4ID0gV0tHZXRDdXJyZW50R3JhcGhpY3NDb250ZXh0KCk7CiAjZW5kaWYKQEAgLTIy
MDcsMTAgKzIyMDUsOSBAQCBzdGF0aWMgV2ViRnJhbWVMb2FkVHlwZSB0b1dlYkZyYW1lTG9hZFR5
cGUoRnJhbWVMb2FkVHlwZSBmcmFtZUxvYWRUeXBlKQogICAgIGlmICghQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgewogICAgICAgICBBWE9iamVjdENhY2hlOjplbmFibGVB
Y2Nlc3NpYmlsaXR5KCk7CiAjaWYgIVBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICAgICAgQVhPYmplY3RDYWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNz
aWJpbGl0eShbW05TQXBwIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxp
dHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VBdHRyaWJ1dGVdIGJvb2xWYWx1ZV0pOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICNlbmRpZgogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCmluZGV4IDc1M2Rj
ZWIyOGQzMGU2YTkwZjQwMTdkOWYwMWUzZDRlZGZmZjE1MzkuLjVlYTIzMzkzYmZlNzM3YzA2YzI0
ZTA0MmUwZTBlMWQ0MjJkYjk3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQpAQCAtMjA3LDExICsy
MDcsMTAgQEAgc3RhdGljIE5TUmVjdCBjb252ZXJ0UmVjdFRvU2NyZWVuKE5TV2luZG93ICp3aW5k
b3csIE5TUmVjdCByZWN0KQogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiB3ZWJWaWV3Q29udGVu
dHMgPSBhZG9wdENGKENHV2luZG93TGlzdENyZWF0ZUltYWdlKE5TUmVjdFRvQ0dSZWN0KHdlYlZp
ZXdGcmFtZSksIGtDR1dpbmRvd0xpc3RPcHRpb25JbmNsdWRpbmdXaW5kb3csIHdpbmRvd0lELCBr
Q0dXaW5kb3dJbWFnZVNob3VsZEJlT3BhcXVlKSk7CiAgICAgCiAgICAgLy8gU2NyZWVuIHVwZGF0
ZXMgdG8gYmUgcmUtZW5hYmxlZCBpbiBiZWdhbkVudGVyRnVsbFNjcmVlbldpdGhJbml0aWFsRnJh
bWU6ZmluYWxGcmFtZToKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TRGlzYWJsZVNjcmVlblVw
ZGF0ZXMoKTsKICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpOT107Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAKICAgICBOU1Jlc3BvbmRlciAqd2ViV2luZG93Rmlyc3RSZXNwb25kZXIgPSBbW193ZWJW
aWV3IHdpbmRvd10gZmlyc3RSZXNwb25kZXJdOwogICAgIFtbc2VsZiB3aW5kb3ddIHNldEZyYW1l
OnNjcmVlbkZyYW1lIGRpc3BsYXk6Tk9dOwpAQCAtMjY4LDExICsyNjcsMTAgQEAgc3RhdGljIHZv
aWQgc2V0Q2xpcFJlY3RGb3JXaW5kb3coTlNXaW5kb3cgKndpbmRvdywgTlNSZWN0IGNsaXBSZWN0
KQogICAgIF9pc0VudGVyaW5nRnVsbFNjcmVlbiA9IE5POwogICAgIAogICAgIGlmIChjb21wbGV0
ZWQpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgLy8gU2NyZWVuIHVwZGF0ZXMg
dG8gYmUgcmUtZW5hYmxlZCBhdCB0aGUgZW5kIG9mIHRoaXMgYmxvY2sKICAgICAgICAgTlNEaXNh
YmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgW3NlbGYgX2RvY3Vt
ZW50XS0+c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihmYWxzZSk7CiAgICAgICAgIFtzZWxmIF9kb2N1
bWVudF0tPndlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoX2VsZW1lbnQuZ2V0KCkp
OwogICAgICAgICAKQEAgLTI5NCwxMCArMjkyLDkgQEAgc3RhdGljIHZvaWQgc2V0Q2xpcFJlY3RG
b3JXaW5kb3coTlNXaW5kb3cgKndpbmRvdywgTlNSZWN0IGNsaXBSZWN0KQogICAgICAgICAKICAg
ICAgICAgW19iYWNrZ3JvdW5kV2luZG93LmdldCgpIG9yZGVyT3V0OnNlbGZdOwogICAgICAgICBb
X2JhY2tncm91bmRXaW5kb3cuZ2V0KCkgc2V0RnJhbWU6TlNaZXJvUmVjdCBkaXNwbGF5OllFU107
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIE5TRW5hYmxlU2NyZWVuVXBkYXRlcygp
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICB9IGVsc2UKICAgICAgICAgW19zY2FsZUFuaW1hdGlvbi5n
ZXQoKSBzdG9wQW5pbWF0aW9uXTsKIH0KQEAgLTMxNSwxMiArMzEyLDExIEBAIHN0YXRpYyB2b2lk
IHNldENsaXBSZWN0Rm9yV2luZG93KE5TV2luZG93ICp3aW5kb3csIE5TUmVjdCBjbGlwUmVjdCkK
ICAgICAgICAgcmV0dXJuOwogICAgIF9pc0Z1bGxTY3JlZW4gPSBOTzsKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBpbiBiZWdhbkV4
aXRGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTpmaW5hbEZyYW1lOgogICAgIE5TRGlzYWJsZVNj
cmVlblVwZGF0ZXMoKTsKICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpOT107Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAKICAgICBfZmluYWxGcmFtZSA9IHNjcmVlblJlY3RPZkNvbnRlbnRzKF9lbGVt
ZW50LmdldCgpKTsKIApAQCAtMzYwLDExICszNTYsMTAgQEAgc3RhdGljIHZvaWQgc2V0Q2xpcFJl
Y3RGb3JXaW5kb3coTlNXaW5kb3cgKndpbmRvdywgTlNSZWN0IGNsaXBSZWN0KQogICAgIAogICAg
IFtzZWxmIF91cGRhdGVNZW51QW5kRG9ja0ZvckZ1bGxTY3JlZW5dOwogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAvLyBTY3JlZW4gdXBkYXRlcyB0byBiZSByZS1lbmFibGVkIGF0IHRoZSBlbmQg
b2YgdGhpcyBmdW5jdGlvbgogICAgIE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIAogICAgIFtzZWxmIF9kb2N1bWVudF0tPnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oZmFsc2Up
OwogICAgIFtzZWxmIF9kb2N1bWVudF0tPndlYmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVu
dChfZWxlbWVudC5nZXQoKSk7CkBAIC0zOTEsMTAgKzM4Niw5IEBAIHN0YXRpYyB2b2lkIHNldENs
aXBSZWN0Rm9yV2luZG93KE5TV2luZG93ICp3aW5kb3csIE5TUmVjdCBjbGlwUmVjdCkKIAogICAg
IFtbX3dlYlZpZXcgd2luZG93XSBtYWtlS2V5QW5kT3JkZXJGcm9udDpzZWxmXTsKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgTlNFbmFibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9
CiAKIC0gKHZvaWQpcGVyZm9ybUNsb3NlOihpZClzZW5kZXIKQEAgLTUxMywxMCArNTA3LDkgQEAg
c3RhdGljIE5TUmVjdCB3aW5kb3dGcmFtZUZyb21BcHBhcmVudEZyYW1lcyhOU1JlY3Qgc2NyZWVu
RnJhbWUsIE5TUmVjdCBpbml0aWFsRnIKICAgICAKICAgICAvLyBzZXRDbGlwUmVjdEZvcldpbmRv
dyB0YWtlcyB3aW5kb3cgY29vcmRpbmF0ZXMsIHNvIGNvbnZlcnQgZnJvbSBzY3JlZW4gY29vcmRp
bmF0ZXMgaGVyZToKICAgICBOU1JlY3QgZmluYWxCb3VuZHMgPSBfZmluYWxGcmFtZTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgIGZpbmFsQm91bmRzLm9yaWdpbiA9IFtbc2VsZiB3aW5kb3ddIGNv
bnZlcnRTY3JlZW5Ub0Jhc2U6ZmluYWxCb3VuZHMub3JpZ2luXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBz
ZXRDbGlwUmVjdEZvcldpbmRvdyhzZWxmLndpbmRvdywgZmluYWxCb3VuZHMpOwogICAgIAogICAg
IFtbc2VsZiB3aW5kb3ddIG1ha2VLZXlBbmRPcmRlckZyb250OnNlbGZdOwpAQCAtNTQzLDE2ICs1
MzYsMTQgQEAgc3RhdGljIE5TUmVjdCB3aW5kb3dGcmFtZUZyb21BcHBhcmVudEZyYW1lcyhOU1Jl
Y3Qgc2NyZWVuRnJhbWUsIE5TUmVjdCBpbml0aWFsRnIKICAgICAKICAgICBbX2JhY2tncm91bmRX
aW5kb3cuZ2V0KCkgb3JkZXJXaW5kb3c6TlNXaW5kb3dCZWxvdyByZWxhdGl2ZVRvOltbc2VsZiB3
aW5kb3ddIHdpbmRvd051bWJlcl1dOwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1tz
ZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbW3NlbGYg
d2luZG93XSBkaXNwbGF5SWZOZWVkZWRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8gU2Ny
ZWVuIHVwZGF0ZXMgZGlzYWJsZWQgaW4gZW50ZXJGdWxsU2NyZWVuOgogICAgIE5TRW5hYmxlU2Ny
ZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAtICh2b2lkKV9zdGFydEV4aXRGdWxsU2Ny
ZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJhdGlvbgpAQCAtNTkx
LDIzICs1ODIsMjAgQEAgc3RhdGljIE5TUmVjdCB3aW5kb3dGcmFtZUZyb21BcHBhcmVudEZyYW1l
cyhOU1JlY3Qgc2NyZWVuRnJhbWUsIE5TUmVjdCBpbml0aWFsRnIKICAgICAKICAgICAvLyBzZXRD
bGlwUmVjdEZvcldpbmRvdyB0YWtlcyB3aW5kb3cgY29vcmRpbmF0ZXMsIHNvIGNvbnZlcnQgZnJv
bSBzY3JlZW4gY29vcmRpbmF0ZXMgaGVyZToKICAgICBOU1JlY3QgZmluYWxCb3VuZHMgPSBfZmlu
YWxGcmFtZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGZpbmFsQm91bmRzLm9yaWdpbiA9IFtb
c2VsZiB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6ZmluYWxCb3VuZHMub3JpZ2luXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICAgICBzZXRDbGlwUmVjdEZvcldpbmRvdyhzZWxmLndpbmRvdywgZmluYWxCb3Vu
ZHMpOwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0
b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbW3NlbGYgd2luZG93XSBkaXNwbGF5SWZO
ZWVkZWRdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBTY3JlZW4gdXBkYXRlcyBkaXNh
YmxlZCBpbiBleGl0RnVsbFNjcmVlbjoKICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViSFRNTFZpZXcubW0KaW5kZXggNmE3YjE0MGJkODVkM2YxM2RlNDFjNmRiZmU1MmEzYzQ0OGQ0
NTI1My4uM2Q1MDA5ZGEzMWZjMjEyMGY3ZmFkM2RkZDQzMWE4ZGVkZmVkNzBkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC02MjQsMTAg
KzYyNCw5IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE5TSW50ZWdlcj4gdG9UYWcoQ29udGV4dE1l
bnVBY3Rpb24gYWN0aW9uKQogCiAtIChOU1ZpZXcgKilfd2ViX2JvcmRlclZpZXcKIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgIHJldHVybiBfYm9yZGVyVmlldzsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAog
QGVuZApAQCAtMTQ5NCwxMCArMTQ5Myw5IEBAIHN0YXRpYyBOU0NvbnRyb2xTdGF0ZVZhbHVlIGtp
dChUcmlTdGF0ZSBzdGF0ZSkKIHsKICAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCiAgICAgICAgIGxvY2F0aW9u
Oltbc2VsZiB3aW5kb3ddCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBjb252ZXJ0U2NyZWVuVG9C
YXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIG1vZGlmaWVyRmxh
Z3M6W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgIHRpbWVzdGFt
cDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2luZG93
TnVtYmVyOltbc2VsZiB3aW5kb3ddIHdpbmRvd051bWJlcl0KQEAgLTE1MzgsMTkgKzE1MzYsMTcg
QEAgc3RhdGljIE5TQ29udHJvbFN0YXRlVmFsdWUga2l0KFRyaVN0YXRlIHN0YXRlKQogI2lmIFBM
QVRGT1JNKE1BQykKICAgICBBU1NFUlQoIV9wcml2YXRlLT5zdWJ2aWV3c1NldEFzaWRlKTsKICAg
ICBBU1NFUlQoX3ByaXZhdGUtPnNhdmVkU3Vidmlld3MgPT0gbmlsKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIF9wcml2YXRlLT5zYXZlZFN1YnZpZXdzID0gX3N1YnZpZXdzOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogICAgIC8vIFdlIG5lZWQgdG8ga2VlcCB0aGUgbGF5ZXItaG9zdGluZyB2aWV3IGluIHRoZSBz
dWJ2aWV3cywgb3RoZXJ3aXNlIHRoZSBsYXllcnMgZmxhc2guCiAgICAgaWYgKF9wcml2YXRlLT5s
YXllckhvc3RpbmdWaWV3KSB7CiAgICAgICAgIE5TQXJyYXkqIG5ld1N1YnZpZXdzID0gW1tOU0Fy
cmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6X3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcsIG5p
bF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIF9zdWJ2aWV3cyA9IG5ld1N1YnZp
ZXdzOwogICAgIH0gZWxzZQogICAgICAgICBfc3Vidmlld3MgPSBuaWw7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgX3ByaXZhdGUtPnN1YnZpZXdzU2V0QXNpZGUgPSBZRVM7CiAjZW5kaWYKICB9CkBAIC0xNTYw
LDE0ICsxNTU2LDEzIEBAIHN0YXRpYyBOU0NvbnRyb2xTdGF0ZVZhbHVlIGtpdChUcmlTdGF0ZSBz
dGF0ZSkKICNpZiBQTEFURk9STShNQUMpCiAgICAgQVNTRVJUKF9wcml2YXRlLT5zdWJ2aWV3c1Nl
dEFzaWRlKTsKICAgICBpZiAoX3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcpIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICAgICAgW19zdWJ2aWV3cyByZWxlYXNlXTsKICAgICAgICAgX3N1
YnZpZXdzID0gX3ByaXZhdGUtPnNhdmVkU3Vidmlld3M7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
QVNTRVJUKF9zdWJ2aWV3cyA9PSBuaWwpOwogICAgICAgICBfc3Vidmlld3MgPSBfcHJpdmF0ZS0+
c2F2ZWRTdWJ2aWV3czsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQogICAgIF9wcml2YXRlLT5zYXZl
ZFN1YnZpZXdzID0gbmlsOwogICAgIF9wcml2YXRlLT5zdWJ2aWV3c1NldEFzaWRlID0gTk87CkBA
IC0yMTEwLDEwICsyMTA1LDkgQEAgc3RhdGljIGJvb2wgbW91c2VFdmVudElzUGFydE9mQ2xpY2tP
ckRyYWcoTlNFdmVudCAqZXZlbnQpCiAKICAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkCiAgICAgICAg
IGxvY2F0aW9uOltbc2VsZiB3aW5kb3ddCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBjb252ZXJ0
U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIG1v
ZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAg
IHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAg
ICAgd2luZG93TnVtYmVyOltbc2VsZiB3aW5kb3ddIHdpbmRvd051bWJlcl0KQEAgLTM5ODIsMTAg
KzM5NzYsOSBAQCBzdGF0aWMgQk9PTCBjdXJyZW50U2Nyb2xsSXNCbGl0KE5TVmlldyAqY2xpcFZp
ZXcpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIC8vIE9ubHkgZG8gdGhlIHN5bmNocm9uaXphdGlv
biBkYW5jZSBpZiB3ZSdyZSBkcmF3aW5nIGludG8gdGhlIHdpbmRvdywgb3RoZXJ3aXNlCiAgICAg
Ly8gd2UgcmlzayBkaXNhYmxpbmcgc2NyZWVuIHVwZGF0ZXMgd2hlbiBubyBmbHVzaCBpcyBwZW5k
aW5nLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKFtOU0dyYXBoaWNzQ29udGV4dCBjdXJy
ZW50Q29udGV4dF0gPT0gW1tzZWxmIHdpbmRvd10gZ3JhcGhpY3NDb250ZXh0XSAmJiBbd2ViVmll
dyBfbmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbl0pIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgICAgIC8vIERpc2FibGUgc2NyZWVuIHVwZGF0ZXMgdG8gbWluaW1pemUgdGhlIGNoYW5j
ZXMgb2YgdGhlIHJhY2UgYmV0d2VlbiB0aGUgQ0EKICAgICAgICAgLy8gZGlzcGxheSBsaW5rIGFu
ZCBBcHBLaXQgZHJhd2luZyBjYXVzaW5nIGZsYXNoZXMuCiAgICAgICAgIFtbc2VsZiB3aW5kb3dd
IGRpc2FibGVTY3JlZW5VcGRhdGVzVW50aWxGbHVzaF07CkBAIC00MjE3LDEyICs0MjEwLDExIEBA
IHN0YXRpYyBCT09MIGN1cnJlbnRTY3JvbGxJc0JsaXQoTlNWaWV3ICpjbGlwVmlldykKICAgICBp
ZiAoRnJhbWUqIGNvcmVmcmFtZSA9IGNvcmUoW3NlbGYgX2ZyYW1lXSkpCiAgICAgICAgIGNvcmVm
cmFtZS0+ZXZlbnRIYW5kbGVyKCkubW91c2VEb3duKGV2ZW50KTsKICNlbHNlCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICBOU0lucHV0TWFuYWdlciAqY3VycmVudElucHV0TWFuYWdlciA9IFtOU0lu
cHV0TWFuYWdlciBjdXJyZW50SW5wdXRNYW5hZ2VyXTsKIAogICAgIGlmICghW2N1cnJlbnRJbnB1
dE1hbmFnZXIgd2FudHNUb0hhbmRsZU1vdXNlRXZlbnRzXSB8fCAhW2N1cnJlbnRJbnB1dE1hbmFn
ZXIgaGFuZGxlTW91c2VFdmVudDpldmVudF0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFtf
cHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZW5kUmV2ZXJ0aW5nQ2hhbmdlOk5PIG1vdmVM
ZWZ0Ok5PXTsKIAogICAgICAgICAvLyBJZiB0aGUgd2ViIHBhZ2UgaGFuZGxlcyB0aGUgY29udGV4
dCBtZW51IGV2ZW50IGFuZCBtZW51Rm9yRXZlbnQ6IHJldHVybnMgbmlsLCB3ZSdsbCBnZXQgY29u
dHJvbCBjbGljayBldmVudHMgaGVyZS4KQEAgLTQyNzcsMTIgKzQyNjksMTEgQEAgc3RhdGljIEJP
T0wgY3VycmVudFNjcm9sbElzQmxpdChOU1ZpZXcgKmNsaXBWaWV3KQogICAgIC8vIHRoZSBjdXJy
ZW50IGV2ZW50IHByZXZlbnRzIHRoYXQgZnJvbSBjYXVzaW5nIGEgcHJvYmxlbSBpbnNpZGUgV2Vi
S2l0IG9yIEFwcEtpdCBjb2RlLgogICAgIFtbZXZlbnQgcmV0YWluXSBhdXRvcmVsZWFzZV07CiAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TSW5wdXRNYW5hZ2VyICpjdXJyZW50SW5wdXRNYW5h
Z2VyID0gW05TSW5wdXRNYW5hZ2VyIGN1cnJlbnRJbnB1dE1hbmFnZXJdOwogICAgIGlmIChbY3Vy
cmVudElucHV0TWFuYWdlciB3YW50c1RvSGFuZGxlTW91c2VFdmVudHNdICYmIFtjdXJyZW50SW5w
dXRNYW5hZ2VyIGhhbmRsZU1vdXNlRXZlbnQ6ZXZlbnRdKQogICAgICAgICByZXR1cm47Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiAKICAgICBbc2VsZiByZXRhaW5dOwogCkBAIC00NDQ3LDEyICs0NDM4LDExIEBAIHN0
YXRpYyBib29sIG1hdGNoZXNFeHRlbnNpb25PckVxdWl2YWxlbnQoTlNTdHJpbmcgKmZpbGVuYW1l
LCBOU1N0cmluZyAqZXh0ZW5zaW9uCiAgICAgW3NlbGYgX3NldE1vdXNlRG93bkV2ZW50Om5pbF07
CiAKICNpZiBQTEFURk9STShNQUMpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0lucHV0TWFu
YWdlciAqY3VycmVudElucHV0TWFuYWdlciA9IFtOU0lucHV0TWFuYWdlciBjdXJyZW50SW5wdXRN
YW5hZ2VyXTsKICAgICBpZiAoW2N1cnJlbnRJbnB1dE1hbmFnZXIgd2FudHNUb0hhbmRsZU1vdXNl
RXZlbnRzXSAmJiBbY3VycmVudElucHV0TWFuYWdlciBoYW5kbGVNb3VzZUV2ZW50OmV2ZW50XSkK
ICAgICAgICAgcmV0dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogI2VuZGlmCiAKICAgICBbc2VsZiByZXRhaW5d
OwpAQCAtNDgwNCwxMCArNDc5NCw5IEBAIHN0YXRpYyBSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3Vy
cmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKIC0gKHZvaWQpX2VuZFByaW50TW9k
ZUFuZFJlc3RvcmVXaW5kb3dBdXRvZGlzcGxheQogewogICAgIFtzZWxmIF9lbmRQcmludE1vZGVd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6
WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogLSAodm9pZClfZGVsYXllZEVuZFByaW50TW9kZTooTlNQ
cmludE9wZXJhdGlvbiAqKWluaXRpYXRpbmdPcGVyYXRpb24KQEAgLTQ4NDIsMTAgKzQ4MzEsOSBA
QCBzdGF0aWMgUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1l
KiBjb3JlRnJhbWUpCiAgICAgLy8gTXVzdCBkbyB0aGlzIGV4cGxpY2l0IGRpc3BsYXkgaGVyZSwg
YmVjYXVzZSBvdGhlcndpc2UgdGhlIHZpZXcgbWlnaHQgcmVkaXNwbGF5IHdoaWxlIHRoZSBwcmlu
dAogICAgIC8vIHNoZWV0IHdhcyB1cCwgdXNpbmcgcHJpbnRlciBmb250cyAoYW5kIGxvb2tpbmcg
ZGlmZmVyZW50KS4KICAgICBbc2VsZiBkaXNwbGF5SWZOZWVkZWRdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6Tk9dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
CiAgICAgW1tzZWxmIF93ZWJWaWV3XSBfYWRqdXN0UHJpbnRpbmdNYXJnaW5zRm9ySGVhZGVyQW5k
Rm9vdGVyXTsKICAgICBOU1ByaW50T3BlcmF0aW9uICpwcmludE9wZXJhdGlvbiA9IFtOU1ByaW50
T3BlcmF0aW9uIGN1cnJlbnRPcGVyYXRpb25dOwpAQCAtNTAzMywxMCArNTAyMSw5IEBAIHN0YXRp
YyBSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVG
cmFtZSkKICNpZiBQTEFURk9STShJT1MpCiAgICAgICAgIHJldHVybiBbYWNjVHJlZSBhY2Nlc3Np
YmlsaXR5SGl0VGVzdDpwb2ludF07CiAjZWxzZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICBOU1BvaW50IHdpbmRvd0Nvb3JkID0gW1tzZWxmIHdpbmRvd10gY29udmVydFNjcmVlblRv
QmFzZTpwb2ludF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICByZXR1cm4gW2FjY1RyZWUgYWNj
ZXNzaWJpbGl0eUhpdFRlc3Q6W3NlbGYgY29udmVydFBvaW50OndpbmRvd0Nvb3JkIGZyb21WaWV3
Om5pbF1dOwogI2VuZGlmCiAgICAgfQpAQCAtNTA3NCwxMCArNTA2MSw5IEBAIHN0YXRpYyBSZWZQ
dHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkK
IAogLSAoTlNEaWN0aW9uYXJ5ICopX2ZvbnRBdHRyaWJ1dGVzRnJvbUZvbnRQYXN0ZWJvYXJkCiB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU1Bhc3RlYm9hcmQgKmZvbnRQYXN0ZWJvYXJkID0g
W05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6TlNGb250UGJvYXJkXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAgICBpZiAoZm9udFBhc3RlYm9hcmQgPT0gbmlsKQogICAgICAgICByZXR1cm4gbmlsOwog
ICAgIE5TRGF0YSAqZGF0YSA9IFtmb250UGFzdGVib2FyZCBkYXRhRm9yVHlwZTpsZWdhY3lGb250
UGFzdGVib2FyZFR5cGUoKV07CkBAIC01MTAxLDEwICs1MDg3LDkgQEAgc3RhdGljIFJlZlB0cjxL
ZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVudChGcmFtZSogY29yZUZyYW1lKQogCiAt
IChOU1N0cmluZyAqKV9jb2xvckFzU3RyaW5nOihOU0NvbG9yICopY29sb3IKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIE5TQ29sb3IgKnJnYkNvbG9yID0gW2NvbG9yIGNvbG9yVXNpbmdDb2xv
clNwYWNlTmFtZTpOU0RldmljZVJHQkNvbG9yU3BhY2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIC8vIEZJ
WE1FOiBJZiBjb2xvciBpcyBub24tbmlsIGFuZCByZ2JDb2xvciBpcyBuaWwsIHRoYXQgbWVhbnMg
d2UgZ290IHNvbWUga2luZAogICAgIC8vIG9mIGZhbmN5IGNvbG9yIHRoYXQgY2FuJ3QgYmUgY29u
dmVydGVkIHRvIFJHQi4gQ2hhbmdpbmcgdGhhdCB0byAidHJhbnNwYXJlbnQiCiAgICAgLy8gbWln
aHQgbm90IGJlIGdyZWF0LCBidXQgaXQncyBwcm9iYWJseSBPSy4KQEAgLTUyODEsMTAgKzUyNjYs
OSBAQCBzdGF0aWMgUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZy
YW1lKiBjb3JlRnJhbWUpCiAKICAgICAvLyBQdXQgUlRGIHdpdGggZm9udCBhdHRyaWJ1dGVzIG9u
IHRoZSBwYXN0ZWJvYXJkLgogICAgIC8vIE1heWJlIGxhdGVyIHdlIHNob3VsZCBhZGQgYSBwYXN0
ZWJvYXJkIHR5cGUgdGhhdCBjb250YWlucyBDU1MgdGV4dCBmb3IgIm5hdGl2ZSIgY29weSBhbmQg
cGFzdGUgZm9udC4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU1Bhc3RlYm9hcmQgKmZv
bnRQYXN0ZWJvYXJkID0gW05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6TlNGb250UGJv
YXJkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICBbZm9udFBhc3RlYm9hcmQgZGVjbGFyZVR5cGVzOltOU0Fy
cmF5IGFycmF5V2l0aE9iamVjdDpsZWdhY3lGb250UGFzdGVib2FyZFR5cGUoKV0gb3duZXI6bmls
XTsKICAgICBbZm9udFBhc3RlYm9hcmQgc2V0RGF0YTpbc2VsZiBfc2VsZWN0aW9uU3RhcnRGb250
QXR0cmlidXRlc0FzUlRGXSBmb3JUeXBlOmxlZ2FjeUZvbnRQYXN0ZWJvYXJkVHlwZSgpXTsKIH0K
QEAgLTYxMjAsMTUgKzYxMDQsMTQgQEAgc3RhdGljIEJPT0wgd3JpdGluZ0RpcmVjdGlvbktleUJp
bmRpbmdzRW5hYmxlZCgpCiAgICAgY29uc3QgVmVjdG9yPEtleXByZXNzQ29tbWFuZD4mIGNvbW1h
bmRzID0gcGFyYW1ldGVycy0+ZXZlbnQtPmtleXByZXNzQ29tbWFuZHMoKTsKIAogICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgY29tbWFuZHMuc2l6ZSgpOyArK2kpIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICAgICAgaWYgKGNvbW1hbmRzW2ldLmNvbW1hbmROYW1lID09ICJpbnNlcnRU
ZXh0OiIpCiAgICAgICAgICAgICBbc2VsZiBpbnNlcnRUZXh0OmNvbW1hbmRzW2ldLnRleHRdOwog
ICAgICAgICBlbHNlIGlmIChjb21tYW5kc1tpXS5jb21tYW5kTmFtZSA9PSAibm9vcDoiKQogICAg
ICAgICAgICAgOyAvLyBEbyBub3RoaW5nLiBUaGlzIGNhc2UgY2FuIGJlIHJlbW92ZWQgb25jZSA8
cmRhcjovL3Byb2JsZW0vOTAyNTAxMj4gaXMgZml4ZWQuCiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIFtzZWxmIGRvQ29tbWFuZEJ5U2VsZWN0b3I6TlNTZWxlY3RvckZyb21TdHJpbmcoY29tbWFu
ZHNbaV0uY29tbWFuZE5hbWUpXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQogICAgIHBhcmFtZXRl
cnMtPmV2ZW50LT5rZXlwcmVzc0NvbW1hbmRzKCkuY2xlYXIoKTsKICAgICBwYXJhbWV0ZXJzLT5z
aG91bGRTYXZlQ29tbWFuZHMgPSB3YXNTYXZpbmdDb21tYW5kczsKQEAgLTYzMjQsMTAgKzYzMDcs
OSBAQCBzdGF0aWMgQk9PTCB3cml0aW5nRGlyZWN0aW9uS2V5QmluZGluZ3NFbmFibGVkKCkKICAg
ICAgICAgLy8gSWYgd2UgYXJlIGluIGEgbGF5ZXItYmFja2VkIHZpZXcsIHdlIG5lZWQgdG8gbWFu
dWFsbHkgaW5pdGlhbGl6ZSB0aGUgZ2VvbWV0cnkgZm9yIG91ciBsYXllci4KICAgICAgICAgW3Zp
ZXdMYXllciBzZXRCb3VuZHM6TlNSZWN0VG9DR1JlY3QoW19wcml2YXRlLT5sYXllckhvc3RpbmdW
aWV3IGJvdW5kc10pXTsKICAgICAgICAgW3ZpZXdMYXllciBzZXRBbmNob3JQb2ludDpDR1BvaW50
TWFrZSgwLCBbc2VsZiBpc0ZsaXBwZWRdID8gMSA6IDApXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICAgICAgQ0dQb2ludCBsYXllclBvc2l0aW9uID0gTlNQb2ludFRvQ0dQb2ludChbc2Vs
ZiBjb252ZXJ0UG9pbnRUb0Jhc2U6W19wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3IGZyYW1lXS5v
cmlnaW5dKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFt2aWV3TGF5ZXIgc2V0UG9zaXRpb246
bGF5ZXJQb3NpdGlvbl07CiAgICAgfQogICAgIApAQCAtNjQ1NywxMCArNjQzOSw5IEBAIHN0YXRp
YyBCT09MIHdyaXRpbmdEaXJlY3Rpb25LZXlCaW5kaW5nc0VuYWJsZWQoKQogICAgICAgICBMT0co
VGV4dElucHV0LCAidGV4dFN0b3JhZ2UgLT4gbmlsIik7CiAgICAgICAgIHJldHVybiBuaWw7CiAg
ICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNBdHRyaWJ1dGVkU3RyaW5nICpyZXN1bHQg
PSBbc2VsZiBhdHRyaWJ1dGVkU3Vic3RyaW5nRnJvbVJhbmdlOk5TTWFrZVJhbmdlKDAsIFVJTlRf
TUFYKV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBMT0coVGV4dElucHV0LCAidGV4dFN0b3JhZ2UgLT4g
XCIlQFwiIiwgcmVzdWx0ID8gW3Jlc3VsdCBzdHJpbmddIDogQCIiKTsKICAgICAKQEAgLTY5Mzks
MTUgKzY5MjAsMTQgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVk
U3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKIAogICAgIHVuc2lnbmVkIHN0
YXJ0OwogICAgIHVuc2lnbmVkIGVuZDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChjb3Jl
RnJhbWUtPmVkaXRvcigpLmdldENvbXBvc2l0aW9uU2VsZWN0aW9uKHN0YXJ0LCBlbmQpKQogICAg
ICAgICBbW05TSW5wdXRNYW5hZ2VyIGN1cnJlbnRJbnB1dE1hbmFnZXJdIG1hcmtlZFRleHRTZWxl
Y3Rpb25DaGFuZ2VkOk5TTWFrZVJhbmdlKHN0YXJ0LCBlbmQgLSBzdGFydCkgY2xpZW50OnNlbGZd
OwogICAgIGVsc2UgewogICAgICAgICBjb3JlRnJhbWUtPmVkaXRvcigpLmNhbmNlbENvbXBvc2l0
aW9uKCk7CiAgICAgICAgIFtbTlNJbnB1dE1hbmFnZXIgY3VycmVudElucHV0TWFuYWdlcl0gbWFy
a2VkVGV4dEFiYW5kb25lZDpzZWxmXTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IDI0
ZGFjOWUzYThmYjg5MzRhNjRkMTljYjFjZDMxYWI5MWNiN2ZkODUuLmQ1OTgxYzA1NTJkMzdlOTZh
NmVhMDNhNzQ3NjI3NThjODE0ODVjNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlBERlZpZXcubW0KQEAgLTEyNiwxMCArMTI2LDkgQEAgc3RhdGljIHZvaWQgX2Fw
cGxpY2F0aW9uSW5mb0Zvck1JTUVUeXBlKE5TU3RyaW5nICp0eXBlLCBOU1N0cmluZyAqKm5hbWUs
IE5TSW1hZ2UKIHsKICAgICBDRlVSTFJlZiBhcHBVUkwgPSBudWxscHRyOwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICBPU1N0YXR1cyBlcnJvciA9IExTQ29weUFwcGxpY2F0aW9uRm9yTUlNRVR5
cGUoKF9fYnJpZGdlIENGU3RyaW5nUmVmKXR5cGUsIGtMU1JvbGVzQWxsLCAmYXBwVVJMKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICAgICBpZiAoZXJyb3IgIT0gbm9FcnIpCiAgICAgICAgIHJldHVybjsKICAgICAK
QEAgLTIyNiwxMCArMjI1LDkgQEAgc3RhdGljIEJPT0wgX1BERlNlbGVjdGlvbnNBcmVFcXVhbChQ
REZTZWxlY3Rpb24gKnNlbGVjdGlvbkEsIFBERlNlbGVjdGlvbiAqc2VsZWMKIC0gKHZvaWQpY2Vu
dGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYTooaWQpc2VuZGVyCiB7CiAgICAgLy8gRklYTUU6IEdl
dCByaWQgb2YgdGhpcyBvbmNlIDxyZGFyOi8vcHJvYmxlbS8yNTE0OTI5ND4gaGFzIGJlZW4gZml4
ZWQuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1Xbm9ubnVsbCIKKyAgICBBTExPV19OVUxMX0FSR1VNRU5UX0JFR0lOCiAg
ICAgW1BERlN1YnZpZXcgc2Nyb2xsU2VsZWN0aW9uVG9WaXNpYmxlOm5pbF07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfTlVMTF9BUkdVTUVOVF9FTkQKIH0KIAogLSAo
dm9pZClzY3JvbGxQYWdlRG93bjooaWQpc2VuZGVyCkBAIC0zNzAsMTAgKzM2OCw5IEBAIHN0YXRp
YyBCT09MIF9QREZTZWxlY3Rpb25zQXJlRXF1YWwoUERGU2VsZWN0aW9uICpzZWxlY3Rpb25BLCBQ
REZTZWxlY3Rpb24gKnNlbGVjCiAKIC0gKHZvaWQpX3JlY3Vyc2l2ZURpc3BsYXlSZWN0SWZOZWVk
ZWRJZ25vcmluZ09wYWNpdHk6KE5TUmVjdClyZWN0IGlzVmlzaWJsZVJlY3Q6KEJPT0wpaXNWaXNp
YmxlUmVjdCByZWN0SXNWaXNpYmxlUmVjdEZvclZpZXc6KE5TVmlldyAqKXZpc2libGVWaWV3IHRv
cFZpZXc6KEJPT0wpdG9wVmlldwogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0dDb250ZXh0
UmVmIGNvbnRleHQgPSAoQ0dDb250ZXh0UmVmKVtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENv
bnRleHRdIGdyYXBoaWNzUG9ydF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgCiAgICAgYm9vbCBhbGxvd3NT
bW9vdGhpbmcgPSBDR0NvbnRleHRHZXRBbGxvd3NGb250U21vb3RoaW5nKGNvbnRleHQpOwogICAg
IGJvb2wgYWxsb3dzU3VicGl4ZWxRdWFudGl6YXRpb24gPSBDR0NvbnRleHRHZXRBbGxvd3NGb250
U3VicGl4ZWxRdWFudGl6YXRpb24oY29udGV4dCk7CkBAIC0zODYsMTAgKzM4Myw5IEBAIHN0YXRp
YyBCT09MIF9QREZTZWxlY3Rpb25zQXJlRXF1YWwoUERGU2VsZWN0aW9uICpzZWxlY3Rpb25BLCBQ
REZTZWxlY3Rpb24gKnNlbGVjCiAKIC0gKHZvaWQpX3JlY3Vyc2l2ZURpc3BsYXlBbGxEaXJ0eVdp
dGhMb2NrRm9jdXM6KEJPT0wpbmVlZHNMb2NrRm9jdXMgdmlzUmVjdDooTlNSZWN0KXZpc1JlY3QK
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gKENHQ29u
dGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgIAogICAgIGJvb2wgYWxsb3dzU21vb3RoaW5nID0gQ0dDb250ZXh0
R2V0QWxsb3dzRm9udFNtb290aGluZyhjb250ZXh0KTsKICAgICBib29sIGFsbG93c1N1YnBpeGVs
UXVhbnRpemF0aW9uID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUXVhbnRpemF0aW9u
KGNvbnRleHQpOwpAQCAtNDAyLDEwICszOTgsOSBAQCBzdGF0aWMgQk9PTCBfUERGU2VsZWN0aW9u
c0FyZUVxdWFsKFBERlNlbGVjdGlvbiAqc2VsZWN0aW9uQSwgUERGU2VsZWN0aW9uICpzZWxlYwog
CiAtICh2b2lkKV9yZWN1cnNpdmU6KEJPT0wpcmVjdXJzZSBkaXNwbGF5UmVjdElnbm9yaW5nT3Bh
Y2l0eTooTlNSZWN0KWRpc3BsYXlSZWN0IGluQ29udGV4dDooTlNHcmFwaGljc0NvbnRleHQgKiln
cmFwaGljc0NvbnRleHQgdG9wVmlldzooQk9PTCl0b3BWaWV3CiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IChDR0NvbnRleHRSZWYpW2dyYXBoaWNzQ29u
dGV4dCBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIAogICAgIGJvb2wgYWxsb3dzU21v
b3RoaW5nID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFNtb290aGluZyhjb250ZXh0KTsKICAgICBi
b29sIGFsbG93c1N1YnBpeGVsUXVhbnRpemF0aW9uID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFN1
YnBpeGVsUXVhbnRpemF0aW9uKGNvbnRleHQpOwpAQCAtNjY5LDEwICs2NjQsOSBAQCBzdGF0aWMg
Qk9PTCBfUERGU2VsZWN0aW9uc0FyZUVxdWFsKFBERlNlbGVjdGlvbiAqc2VsZWN0aW9uQSwgUERG
U2VsZWN0aW9uICpzZWxlYwogICAgIFtQREZTdWJ2aWV3IHNldEN1cnJlbnRTZWxlY3Rpb246c2Vs
ZWN0aW9uXTsKIAogICAgIC8vIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgb25jZSA8cmRhcjovL3By
b2JsZW0vMjUxNDkyOTQ+IGhhcyBiZWVuIGZpeGVkLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbm51bGwiCisgICAg
QUxMT1dfTlVMTF9BUkdVTUVOVF9CRUdJTgogICAgIFtQREZTdWJ2aWV3IHNjcm9sbFNlbGVjdGlv
blRvVmlzaWJsZTpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9X
X05VTExfQVJHVU1FTlRfRU5ECiAgICAgcmV0dXJuIFlFUzsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29u
dHJvbGxlci5tbQppbmRleCBjNmYwZTczNDVmNWVlODJiNzFiYzFjNGFiYTI2YzQwZTIxZmYwM2E2
Li5hMzgxZDEwYjI4YTNkZWU5NTQ4ZWEyZWU0Njk5NjA1N2EzYjI2ZTE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0
aW9uQ29udHJvbGxlci5tbQpAQCAtODQsMTAgKzg0LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiB7CiAgICAgTlNSZWN0IHNjcm9sbEZyYW1lID0gTlNNYWtlUmVjdCgwLCAwLCAxMDAsIDEw
MCk7CiAgICAgTlNSZWN0IHRhYmxlRnJhbWUgPSBOU1plcm9SZWN0OyAgICAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIHRhYmxlRnJhbWUuc2l6ZSA9IFtOU1Njcm9sbFZpZXcgY29udGVudFNpemVG
b3JGcmFtZVNpemU6c2Nyb2xsRnJhbWUuc2l6ZSBoYXNIb3Jpem9udGFsU2Nyb2xsZXI6Tk8gaGFz
VmVydGljYWxTY3JvbGxlcjpZRVMgYm9yZGVyVHlwZTpOU05vQm9yZGVyXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICBOU1RhYmxlQ29sdW1uICpjb2x1bW4gPSBbW05TVGFibGVDb2x1bW4gYWxsb2NdIGluaXRd
OwogICAgIFtjb2x1bW4gc2V0V2lkdGg6dGFibGVGcmFtZS5zaXplLndpZHRoXTsKICAgICBbY29s
dW1uIHNldEVkaXRhYmxlOk5PXTsKQEAgLTEzMywxMCArMTMyLDkgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKICAgICBOU1JlY3Qgd2luZG93RnJhbWU7CiAgICAgTlNQb2ludCB3b3JkU3Rh
cnQgPSB0b3BMZWZ0OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgd2luZG93RnJhbWUub3JpZ2lu
ID0gW1tfdmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46W19odG1sVmlldyBjb252ZXJ0
UG9pbnQ6d29yZFN0YXJ0IHRvVmlldzpuaWxdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB3aW5kb3dGcmFt
ZS5zaXplLmhlaWdodCA9IG51bWJlclRvU2hvdyAqIFtfdGFibGVWaWV3IHJvd0hlaWdodF0gKyAo
bnVtYmVyVG9TaG93ICsgMSkgKiBbX3RhYmxlVmlldyBpbnRlcmNlbGxTcGFjaW5nXS5oZWlnaHQ7
CiAgICAgd2luZG93RnJhbWUub3JpZ2luLnkgLT0gd2luZG93RnJhbWUuc2l6ZS5oZWlnaHQ7CiAg
ICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0
aE9iamVjdHNBbmRLZXlzOltOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZToxMi4wZl0sIE5TRm9udEF0
dHJpYnV0ZU5hbWUsIG5pbF07CkBAIC0xNTEsMTAgKzE0OSw5IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogICAgIH0KICAgICB3aW5kb3dGcmFtZS5zaXplLndpZHRoID0gMTAwOwogICAgIGlm
IChtYXhJbmRleCA+PSAwKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIG1heFdp
ZHRoID0gY2VpbGYoW05TU2Nyb2xsVmlldyBmcmFtZVNpemVGb3JDb250ZW50U2l6ZTpOU01ha2VT
aXplKG1heFdpZHRoLCAxMDAuMGYpIGhhc0hvcml6b250YWxTY3JvbGxlcjpOTyBoYXNWZXJ0aWNh
bFNjcm9sbGVyOllFUyBib3JkZXJUeXBlOk5TTm9Cb3JkZXJdLndpZHRoKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAgICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05TV2luZG93IGZyYW1lUmVjdEZvckNvbnRl
bnRSZWN0Ok5TTWFrZVJlY3QoMC4wZiwgMC4wZiwgbWF4V2lkdGgsIDEwMC4wZikgc3R5bGVNYXNr
Ok5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzc10uc2l6ZS53aWR0aCk7CiAgICAgICAgIG1heFdp
ZHRoICs9IDUuMGY7CiAgICAgICAgIHdpbmRvd0ZyYW1lLnNpemUud2lkdGggPSBzdGQ6Om1heCht
YXhXaWR0aCwgd2luZG93RnJhbWUuc2l6ZS53aWR0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXIubW0KaW5kZXggYWI0Mzg4N2QxNzQ0ZDc1M2Q1MDAzYTIyZTA0ZjQyNzUxNGExYmU2Ni4uYzZl
MDcxNjRjYWYwNWNhNDgxOWUzMGE3ODZkY2M4YWQ4M2Q2MDUzMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlci5tbQpAQCAtMzgsOCArMzgsNyBAQAogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIFNPRlRf
TElOS19GUkFNRVdPUksoQVZGb3VuZGF0aW9uKQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlv
biwgQVZQbGF5ZXJMYXllcikKQEAgLTUwOSw2ICs1MDgsNiBAQCBzdGF0aWMgTlNXaW5kb3cgKmNy
ZWF0ZUJhY2tncm91bmRGdWxsc2NyZWVuV2luZG93KE5TUmVjdCBmcmFtZSwgaW50IGxldmVsKQog
CiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2lu
ZG93Q29udHJvbGxlci5tbQppbmRleCBlN2JlODZkMzc0ZTQ1MGVlZTcwMDkxYzVlMzJkOTNiMzE1
YTVjZjM5Li43YzNmNTA2ZTA2ZDk3YmZkZThlYTRjYjA5NTYwYThjNzBiMTIzZjEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkhV
RFdpbmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tCkBAIC0zNzMsMTAgKzM3
Myw5IEBAIHN0YXRpYyBOU1ZpZXcgKmNyZWF0ZU1lZGlhVUlCYWNrZ3JvdW5kVmlldygpCiAgICAg
Y29uc3QgQ0dGbG9hdCBxdWlja1RpbWVQbGF5ZXJIVURIZWlnaHQgPSA1OTsKICAgICBjb25zdCBD
R0Zsb2F0IHF1aWNrVGltZVBsYXllckhVRENvbnRlbnRCb3JkZXJQb3NpdGlvbiA9IDM4OwogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICBbdmlldyBzZXRDb250ZW50Qm9yZGVyUG9zaXRpb246cXVp
Y2tUaW1lUGxheWVySFVEQ29udGVudEJvcmRlclBvc2l0aW9uIC8gcXVpY2tUaW1lUGxheWVySFVE
SGVpZ2h0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIHJldHVybiB2aWV3OwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDkxNDEwYTg5ZDczMjU0NTMyNTUx
ZjMwMmJmY2U5ODM3NDBjOWJiMWYuLjQ4NGQ2Y2JjODU2NWRmNTEyYzIyODU3ZWY5M2Q2YjNiNmM0
Nzc0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAg
LTg2NSwxNSArODY1LDE0IEBAIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIG9yZGVyZWRMaXN0U2Vn
bWVudCA9IDI7CiAgICAgW2luc2VydExpc3RDb250cm9sIHNldFdpZHRoOmxpc3RDb250cm9sU2Vn
bWVudFdpZHRoIGZvclNlZ21lbnQ6b3JkZXJlZExpc3RTZWdtZW50XTsKICAgICBpbnNlcnRMaXN0
Q29udHJvbC5mb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOjE1XTsKIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgaWQgc2VnbWVudEVsZW1lbnQgPSBOU0FjY2Vzc2liaWxpdHlVbmlnbm9y
ZWREZXNjZW5kYW50KGluc2VydExpc3RDb250cm9sKTsKICAgICBOU0FycmF5ICpzZWdtZW50cyA9
IFtzZWdtZW50RWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5BdHRyaWJ1dGVdOwogICAgIEFTU0VSVChzZWdtZW50cy5jb3VudCA9PSAzKTsK
ICAgICBbc2VnbWVudHNbbm9MaXN0U2VnbWVudF0gYWNjZXNzaWJpbGl0eVNldE92ZXJyaWRlVmFs
dWU6V2ViQ29yZTo6aW5zZXJ0TGlzdFR5cGVOb25lKCkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJp
bGl0eURlc2NyaXB0aW9uQXR0cmlidXRlXTsKICAgICBbc2VnbWVudHNbdW5vcmRlcmVkTGlzdFNl
Z21lbnRdIGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVlOldlYkNvcmU6Omluc2VydExpc3RU
eXBlQnVsbGV0ZWRBY2Nlc3NpYmlsaXR5VGl0bGUoKSBmb3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmls
aXR5RGVzY3JpcHRpb25BdHRyaWJ1dGVdOwogICAgIFtzZWdtZW50c1tvcmRlcmVkTGlzdFNlZ21l
bnRdIGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVlOldlYkNvcmU6Omluc2VydExpc3RUeXBl
TnVtYmVyZWRBY2Nlc3NpYmlsaXR5VGl0bGUoKSBmb3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5
RGVzY3JpcHRpb25BdHRyaWJ1dGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgc2VsZi52aWV3ID0gaW5z
ZXJ0TGlzdENvbnRyb2w7CiAKQEAgLTIxNzgsMTEgKzIxNzcsMTAgQEAgc3RhdGljIE5TTXV0YWJs
ZVNldCAqa25vd25QbHVnaW5NSU1FVHlwZXMoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAoIU9TQXRvbWljQ29tcGFyZUFuZFN3YXAzMigwLCAx
LCAmX3ByaXZhdGUtPmRpZERyYXdUaWxlcykpCiAgICAgICAgIHJldHVybjsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
IAogICAgIFdlYlRocmVhZExvY2soKTsKIApAQCAtNTg5MywyMSArNTg5MSwxOSBAQCBzdGF0aWMg
Ym9vbCBuZWVkc1dlYlZpZXdJbml0VGhyZWFkV29ya2Fyb3VuZCgpCiAKIC0gKHZvaWQpZW5jb2Rl
V2l0aENvZGVyOihOU0NvZGVyICopZW5jb2RlcgogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
Ly8gU2V0IGFzc2lkZSB0aGUgc3Vidmlld3MgYmVmb3JlIHdlIGFyY2hpdmUuIFdlIGRvbid0IHdh
bnQgdG8gYXJjaGl2ZSBhbnkgc3Vidmlld3MuCiAgICAgLy8gVGhlIHN1YnZpZXdzIHdpbGwgYWx3
YXlzIGJlIGNyZWF0ZWQgaW4gX2NvbW1vbkluaXRpYWxpemF0aW9uRnJhbWVOYW1lOmdyb3VwTmFt
ZTouCiAgICAgaWQgb3JpZ2luYWxTdWJ2aWV3cyA9IF9zdWJ2aWV3czsKICAgICBfc3Vidmlld3Mg
PSBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBbc3VwZXIgZW5jb2RlV2l0aENvZGVyOmVuY29kZXJd
OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBSZXN0b3JlIHRoZSBzdWJ2aWV3cyB3ZSBz
ZXQgYXNpZGUuCiAgICAgX3N1YnZpZXdzID0gb3JpZ2luYWxTdWJ2aWV3czsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
IAogICAgIEJPT0wgdXNlQmFja0ZvcndhcmRMaXN0ID0gX3ByaXZhdGUtPnBhZ2UgJiYgc3RhdGlj
X2Nhc3Q8QmFja0ZvcndhcmRMaXN0Kj4oX3ByaXZhdGUtPnBhZ2UtPmJhY2tGb3J3YXJkKCkuY2xp
ZW50KCkpLT5lbmFibGVkKCk7CiAgICAgaWYgKFtlbmNvZGVyIGFsbG93c0tleWVkQ29kaW5nXSkg
ewpAQCAtNzEzOCwxMCArNzEzNCw5IEBAIHN0YXRpYyBXZWJGcmFtZSAqaW5jcmVtZW50RnJhbWUo
V2ViRnJhbWUgKmZyYW1lLCBXZWJGaW5kT3B0aW9ucyBvcHRpb25zID0gMCkKICAgICBpZiAoYXV0
byAqaWNvbiA9IF9wcml2YXRlLT5fbWFpbkZyYW1lSWNvbi5nZXQoKSkKICAgICAgICAgcmV0dXJu
IGljb247CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaCAKLSNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBbW1dlYkljb25EYXRhYmFzZSBz
aGFyZWRJY29uRGF0YWJhc2VdIGRlZmF1bHRJY29uV2l0aFNpemU6V2ViSWNvblNtYWxsU2l6ZV07
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogfQogCiAtICh2b2lkKV9zZXRNYWluRnJhbWVJY29uOihOU0ltYWdlICopaWNv
bgpAQCAtOTMwOSwxMCArOTMwNCw5IEBAIGJvb2wgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OmZsdXNo
TGF5ZXJzKCkKICAgICAgICAgLy8gQXBwS2l0IG1heSBoYXZlIGRpc2FibGVkIHNjcmVlbiB1cGRh
dGVzLCB0aGlua2luZyBhbiB1cGNvbWluZyB3aW5kb3cgZmx1c2ggd2lsbCByZS1lbmFibGUgdGhl
bS4KICAgICAgICAgLy8gSW4gY2FzZSBzZXROZWVkc0Rpc3BsYXlJblJlY3QoKSBoYXMgcHJldmVu
dGVkIHRoZSB3aW5kb3cgZnJvbSBuZWVkaW5nIHRvIGJlIGZsdXNoZWQsIHJlLWVuYWJsZSBzY3Jl
ZW4KICAgICAgICAgLy8gdXBkYXRlcyBoZXJlLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICBpZiAoIVt3aW5kb3cgaXNGbHVzaFdpbmRvd0Rpc2FibGVkXSkKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogICAgICAgICAgICAgW3dpbmRvdyBfZW5hYmxlU2NyZWVuVXBkYXRlc0lmTmVlZGVkXTsK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YldpbmRvd0FuaW1hdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
V2luZG93QW5pbWF0aW9uLm1tCmluZGV4IDkyMzU4ZjZiN2RlM2FiYTk2NGVlYWYxNzQyNWYyNzFi
OTVhYTg2MDkuLjUxOTNmMWVmZDBjYWY1YmQ1MzgwOGE3NDZiZTQwNDBmY2NkNGY3Y2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViV2luZG93QW5pbWF0aW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViV2luZG93QW5pbWF0
aW9uLm1tCkBAIC0xMjUsMTAgKzEyNSw5IEBAIHN0YXRpYyBDR1NDb25uZWN0aW9uSUQgbWFpbldp
bmRvd1NlcnZlckNvbm5lY3Rpb25JRCgpCiBzdGF0aWMgdm9pZCBzZXRTY2FsZWRGcmFtZUZvcldp
bmRvdyhOU1dpbmRvdyAqd2luZG93LCBOU1JlY3Qgc2NhbGVGcmFtZSwgTlNSZWN0IG5vblNjYWxl
ZEZyYW1lKQogewogICAgIGlmIChOU0VxdWFsUmVjdHMoc2NhbGVGcmFtZSwgbm9uU2NhbGVkRnJh
bWUpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1Xbm9ubnVsbCIKKyAgICAgICAgQUxMT1dfTlVMTF9BUkdVTUVOVF9C
RUdJTgogICAgICAgICBDR1NTZXRXaW5kb3dXYXJwKG1haW5XaW5kb3dTZXJ2ZXJDb25uZWN0aW9u
SUQoKSwgd2luZG93LndpbmRvd051bWJlciwgMCwgMCwgbnVsbHB0cik7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX05VTExfQVJHVU1FTlRfRU5ECiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348808</attachid>
            <date>2018-09-04 02:03:22 -0700</date>
            <delta_ts>2018-09-04 03:34:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188996-20180904110320.patch</filename>
            <type>text/plain</type>
            <size>314011</size>
            <attacher name="Guillaume Emont">guijemont</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
YzFhYmRjMjYzZGE0NzVkNDhkM2FiYmJhM2M1ODg4Y2I4YjBlM2FmLi40Mjc0NzU2ZTc2ODI1NmUy
YTA1NGM1MTMyM2NhODNkMTE4YTA1ODIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09i
amVjdC5oOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLmM6CisgICAgICAgICogYXNzZW1i
bGVyL0xpbmtCdWZmZXIuaDoKKyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6ZmluYWxpemVDb2Rl
V2l0aERpc2Fzc2VtYmx5KToKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAg
ICAqIGIzL0IzT3Bjb2RlLmNwcDoKKyAgICAgICAgKiBiMy9CM1R5cGUuaDoKKyAgICAgICAgKiBi
My9CM1R5cGVNYXAuaDoKKyAgICAgICAgKiBiMy9CM1dpZHRoLmg6CisgICAgICAgICogYjMvYWly
L0FpckFyZy5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAqIGIzL2Fp
ci9BaXJDb2RlLmg6CisgICAgICAgICogYnl0ZWNvZGUvT3Bjb2RlLmg6CisgICAgICAgIChKU0M6
OnBhZE9wY29kZU5hbWUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU51bWJlcik6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1pc2MpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6
CisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBl
cnM6OmNhbGN1bGF0ZVBva2VPZmZzZXQpOgorICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6
CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTElu
dDo6c2xvd1BhdGhMb2dGKToKKyAgICAgICAgKiBydW50aW1lL0NvbmZpZ0ZpbGUuY3BwOgorICAg
ICAgICAoSlNDOjpDb25maWdGaWxlOjpjYW5vbmljYWxpemVQYXRocyk6CisgICAgICAgICogcnVu
dGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNw
cDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6c2V0QWxpYXNlZE9wdGlvbik6CisgICAgICAgICog
dG9vbHMvQ29kZVByb2ZpbGluZy5jcHA6CisgICAgICAgICogd2FzbS9XYXNtU2VjdGlvbnMuaDoK
KyAgICAgICAgKiB3YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weToKKwog
MjAxOC0wOS0wMiAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93c3RhcnQub3JnPgog
CiAgICAgICAgIEltcGxlbWVudCBPYmplY3QuZnJvbUVudHJpZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMzc5NDJiYzg1Nzg2
ZDM4M2U1ZmVhMmNhY2ZhOTQ5MGEyMTAyZTRiYy4uZTZkMmRkYmQwOTNjYWJkYzQxMDI2NTllNGZj
OTU5MzZkODg1YzQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1l
IEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJO
SU5HXy4qIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTg4OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoK
KyAgICAgICAgKiB3dGYvQ29tcGlsZXIuaDoKKyAgICAgICAgKiB3dGYvTUQ1LmNwcDoKKyAgICAg
ICAgKFdURjo6TUQ1OjpNRDUpOgorICAgICAgICAoV1RGOjpNRDU6OmFkZEJ5dGVzKToKKyAgICAg
ICAgKFdURjo6TUQ1OjpjaGVja3N1bSk6CisgICAgICAgICogd3RmL1ByaW50U3RyZWFtLmNwcDoK
KyAgICAgICAgKFdURjo6UHJpbnRTdHJlYW06OnByaW50ZlZhcmlhYmxlRm9ybWF0KToKKyAgICAg
ICAgKiB3dGYvU0hBMS5jcHA6CisgICAgICAgIChXVEY6OlNIQTE6OlNIQTEpOgorICAgICAgICAo
V1RGOjpTSEExOjphZGRCeXRlcyk6CisgICAgICAgIChXVEY6OlNIQTE6OmNvbXB1dGVIYXNoKToK
KyAgICAgICAgKiB3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwOgorICAgICAgICAqIHd0Zi9WZWN0
b3IuaDoKKyAgICAgICAgKFdURjo6VmVjdG9yQnVmZmVyOjplbmRPZkJ1ZmZlcik6CisgICAgICAg
ICogd3RmL3RleHQvV1RGU3RyaW5nLmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRlV2l0aEZvcm1h
dEFuZEFyZ3VtZW50cyk6CisKIDIwMTgtMDgtMzEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgT3B0aW9uU2V0IHw9IGFuZCAtPSBvcGVyYXRvcnMg
d2l0aCBhZGQoKSBhbmQgcmVtb3ZlKCkgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTI1NDQyMTFj
ZTMwYTA5NjYzNmFhNGJmNWY3MzdiNmVmYzAxYWNiNC4uYTdhMTI1YjM2YzNlMDViNDRkZjdhNDBl
NjlhMWQyNDZlYjBiNmNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMSBAQAorMjAxOC0wOC0y
NyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRk
IElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENEYXRhQ2hhbm5lbEhhbmRsZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9t
YWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6Om92ZXJyaWRlQXR0YWNobWVudFBhcmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SWdub3JlQXR0YWNobWVudCBjb25z
dCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHJl
bmRlcldpZGdldENoaWxkcmVuXSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyIGNvbnZlcnRQb2ludFRvU2NyZWVuU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIHJvbGVdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIgcm9sZURlc2NyaXB0aW9uXSk6CisgICAgICAgICogYnJpZGdlL29iamMv
V2ViU2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfY2xhc3MubW06
CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjQ2xhc3M6OmZpZWxkTmFtZWQgY29uc3QpOgor
ICAgICAgICAqIGNyeXB0by9Db21tb25DcnlwdG9VdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Z2V0Q29tbW9uQ3J5cHRvRGlnZXN0QWxnb3JpdGhtKToKKyAgICAgICAgKiBjcnlwdG8v
bWFjL0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5j
cnlwdEFFU19HQ00pOgorICAgICAgICAoV2ViQ29yZTo6ZGVjeXB0QUVTX0dDTSk6CisgICAgICAg
ICogY3J5cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OndyYXBTZXJpYWxpemVkQ3J5cHRvS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OnVud3Jh
cFNlcmlhbGl6ZWRDcnlwdG9LZXkpOgorICAgICAgICAqIGNzcy9tYWtlU2VsZWN0b3JQc2V1ZG9D
bGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5OgorICAgICAgICAqIGNzcy9tYWtlU2Vs
ZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5weToKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRv
ci5jcHA6CisgICAgICAgICogZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6cmVwbGFjZU5vZGVGcm9tUGFzdGVib2FyZCk6CisgICAgICAgICogcGFnZS9tYWMvRXZl
bnRIYW5kbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kRmFr
ZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1NlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXIubW06CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyOjpIaWdobGlnaHQ6OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybWF0TG9jYWxpemVk
U3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmg6CisgICAgICAg
IChXZWJDb3JlOjpTY3JlZW5EYXRhOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dhbWVw
YWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1l
cGFkUHJvdmlkZXI6OnN0b3BNb25pdG9yaW5nSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURp
c3BsYXk6OnNoYXJlZERpc3BsYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1N1cnJv
Z2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6OnVwZGF0ZU9wdGlvbnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0
cmVhbVNlc3Npb24ubW06CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uQVZTdHJlYW1TZXNz
aW9uOjp1cGRhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6c2V0Q3VycmVudFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2sgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6c2V0U2hvdWxkRGlzYWJsZVNsZWVwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpJR05PUkVf
Q0xBTkdfV0FSTklOR19FTkQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW06CisgICAgICAgICgtW1dlYkFWU2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lciBiZWdpbk9ic2Vy
dmluZ1JlbmRlcmVyOl0pOgorICAgICAgICAoLVtXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVu
ZXIgc3RvcE9ic2VydmluZ1JlbmRlcmVyOl0pOgorICAgICAgICAoLVtXZWJBVlNhbXBsZUJ1ZmZl
ckVycm9yTGlzdGVuZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29u
dGV4dDpdKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0
cmFja0RpZENoYW5nZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SUdOT1JFX0NMQU5HX1dB
Uk5JTkdfRU5EKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9y
bUNBTGF5ZXJDb2NvYS5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllcjo6ZHJhd0xheWVyQ29u
dGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZi
dXp6TkcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGU6OmZvbnRGb3JDb21iaW5p
bmdDaGFyYWN0ZXJTZXF1ZW5jZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VEZWNvZGVyQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyQ0c6
OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oOgorICAgICAgICAoSUdOT1JFX0NMQU5HX1dBUk5J
TkcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xs
ZXJDb3JlVGV4dC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6
Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9JY29uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6SWNvbjo6SWNvbik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50SW1hZ2VNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpQREZEb2N1bWVudEltYWdlOjpkcmF3UERGUGFnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYktpdE5TSW1hZ2VFeHRyYXMubW06CisgICAg
ICAgICgtW05TSW1hZ2UgX3dlYl9sb2NrRm9jdXNXaXRoRGV2aWNlU2NhbGVGYWN0b3I6XSk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2NhbGVEcmFnSW1hZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRm9yTGluayk6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkxvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dDo6TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXREcmFnSW1hZ2VJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludCk6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvU2Nyb2xsVmlld01hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBs
YXRmb3JtQ29udGVudHNUb1NjcmVlbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3OjpwbGF0Zm9ybVNjcmVlblRvQ29udGVudHMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9UaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdDZWxsRm9jdXNSaW5nV2l0
aEZyYW1lQXRUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9s
c01hbmFnZXIubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OldpZGdldDo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVs
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24p
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENG
TmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnJlcG9y
dEVycm9yVG9DbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3JlYXRlLWh0dHAt
aGVhZGVyLW5hbWUtdGFibGU6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2Rpbmcu
Y3BwOgorICAgICAgICAqIHRlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogeG1sL1hQYXRoR3JhbW1hci5jcHA6CisKIDIwMTgtMDktMDMgIEFuZHkgRXN0ZXMg
IDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIEltcGxlbWVu
dCB0aGUgTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQgY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
CmluZGV4IDFjMjM5OTRmMTdkYWExZGUxYTBlNjA0ODYyNjQ4NTM3Mzg0NjJhNGYuLmEzMGUxNDZk
ZTc0NjBiYmNmMTM1YzFiMzBjNjc2MDBiNjU1YmY0Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDE4LTA4LTI3ICBHdWlsbGF1bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdh
bGlhLmNvbT4KKworICAgICAgICBBZGQgSUdOT1JFX1dBUk5JTkdfLiogbWFjcm9zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg5OTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9jcnlwdG8vY29t
bW9uY3J5cHRvL0NyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHA6CisgICAgICAgIChQQUw6OkNy
eXB0b0RpZ2VzdDo6Y3JlYXRlKToKKyAgICAgICAgKFBBTDo6Q3J5cHRvRGlnZXN0OjphZGRCeXRl
cyk6CisgICAgICAgIChQQUw6OkNyeXB0b0RpZ2VzdDo6Y29tcHV0ZUhhc2gpOgorICAgICAgICAq
IHBhbC9zcGkvY29jb2EvQVZLaXRTUEkuaDoKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL05TS2V5
ZWRBcmNoaXZlclNQSS5oOgorICAgICAgICAoaW5zZWN1cmVseVVuYXJjaGl2ZU9iamVjdEZyb21E
YXRhKToKKyAgICAgICAgKiBwYWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oOgorICAgICAgICAq
IHBhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbToKKyAgICAgICAgKFBBTDo6cG9wVXBNZW51KToK
KyAgICAgICAgKiBwYWwvc3lzdGVtL21hYy9XZWJQYW5lbC5tbToKKyAgICAgICAgKC1bV2ViUGFu
ZWwgaW5pdF0pOgorCiAyMDE4LTA5LTAxICBZb3NoaWFraSBKaXRzdWthd2EgIDx5b3NoaWFraS5q
aXRzdWthd2FAc29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBBZGQgQ3J5cHRvRGlnZXN0
T3BlblNTTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBhNDM5N2QyZmQ2NDRmZmQxMWUyMDdhMjk5ZTQzOTJjNDkzMjE3
YTA1Li5iYmNmODQyZWIwOTdlMGU3ZTUyNjdlYmMxOTQ4OWYzNTM2ZTAwZTgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDExOSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250
QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0RhdGFUYXNrQ29jb2E6OnN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVN5bmNBbGxDb29raWVzKToKKyAgICAgICAgKiBQ
bHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojpi
ZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hp
bS5tbToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1v
ZHVsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luTW9kdWxlOjp0cnlMb2Fk
KToKKyAgICAgICAgKiBTaGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6Q2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveCk6CisgICAgICAgICogU2hhcmVk
L21hYy9DaGlsZFByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OmNvbXBpbGVBbmRBcHBs
eVNhbmRib3hTbG93Q2FzZSk6CisgICAgICAgICogU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5t
bToKKyAgICAgICAgKFdlYktpdDo6Q29sb3JTcGFjZURhdGE6OmRlY29kZSk6CisgICAgICAgICog
U2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpTYW5k
Ym94RXh0ZW5zaW9uSW1wbDo6c2FuZGJveEV4dGVuc2lvbkZvclR5cGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3dl
Yl9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdSdW5B
c01vZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAg
ICgtW1dLVmlldyBfd2ViX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZENsaWVudC5tbToKKyAgICAgICAgKFdlYktp
dDo6RG93bmxvYWRDbGllbnQ6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1l
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
Q2xpZW50Lm1tOgorICAgICAgICAoLVtXS0N1c3RvbVByb3RvY29sTG9hZGVyIGluaXRXaXRoTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHk6Y3VzdG9tUHJvdG9jb2xJRDpyZXF1ZXN0Ol0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06CisgICAgICAg
IChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OkNvbnRleHRNZW51Q2xpZW50Ojpt
ZW51RnJvbVByb3Bvc2VkTWVudSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW06CisgICAgICAgICgtW1dLVGV4dExpc3RUb3VjaEJhclZpZXdDb250cm9sbGVyIGlu
aXRXaXRoV2ViVmlld0ltcGw6XSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRh
dGVXaW5kb3dBbmRWaWV3RnJhbWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNl
bmREcmFnRW5kVG9QYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0RHJh
Zyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjaGFyYWN0ZXJJbmRleEZvclBvaW50
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFj
Lm1tOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmdldFBsdWdpblByb2Nl
c3NTZXJpYWxOdW1iZXIpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6Om1h
a2VQbHVnaW5Qcm9jZXNzVGhlRnJvbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2lu
UHJvY2Vzc1Byb3h5OjptYWtlVUlQcm9jZXNzVGhlRnJvbnRQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpleGl0RnVsbHNjcmVlbik6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tMZWdhY3lQREZWaWV3Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tQ
REZQYWdlTnVtYmVySW5kaWNhdG9yLm1tOgorICAgICAgICAoLVtXS1BERlBhZ2VOdW1iZXJJbmRp
Y2F0b3IgX21ha2VSb3VuZGVkQ29ybmVyc10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9y
bXMvV0tBaXJQbGF5Um91dGVQaWNrZXIubW06CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jt
cy9XS0ZpbGVVcGxvYWRQYW5lbC5tbToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3By
ZXNlbnRQb3BvdmVyV2l0aENvbnRlbnRWaWV3Q29udHJvbGxlcjphbmltYXRlZDpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5tbToKKyAgICAgICAg
KC1bV0tDb2xvclBvcG92ZXIgaW5pdFdpdGhWaWV3Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLm1tOgorICAgICAgICAoLVtXS0RhdGVUaW1lUG9w
b3ZlciBpbml0V2l0aFZpZXc6ZGF0ZVBpY2tlck1vZGU6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jt
cy9XS0Zvcm1Qb3BvdmVyLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3Jt
U2VsZWN0UG9wb3Zlci5tbToKKyAgICAgICAgKC1bV0tTZWxlY3RQb3BvdmVyIGluaXRXaXRoVmll
dzpoYXNHcm91cHM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNjcmVlblRvUm9vdFZpZXcp
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cm9vdFZpZXdUb1NjcmVlbik6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOgor
ICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGVudGVyRnVsbFNjcmVlbjpd
KToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBmaW5pc2hlZEVudGVy
RnVsbFNjcmVlbkFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlciBleGl0RnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyIGJlZ2FuRXhpdEZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6
XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZmluaXNoZWRFeGl0
RnVsbFNjcmVlbkFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlciBjb21wbGV0ZUZpbmlzaEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uQWZ0ZXJSZXBhaW50
XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgX3N0YXJ0RW50ZXJG
dWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyIF9zdGFydEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0
aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAg
ICAgICgtW1dLUHJpbnRpbmdWaWV3IF9zZXRBdXRvZGlzcGxheTpdKToKKyAgICAgICAgKC1bV0tQ
cmludGluZ1ZpZXcgX2RyYXdQREZEb2N1bWVudDpwYWdlOmF0UG9pbnQ6XSk6CisgICAgICAgICgt
W1dLUHJpbnRpbmdWaWV3IF9kcmF3UHJldmlldzpdKToKKyAgICAgICAgKC1bV0tQcmludGluZ1Zp
ZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1RleHRJbnB1dFdpbmRv
d0NvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLVGV4dElucHV0UGFuZWwgX2ludGVycHJldEtl
eUV2ZW50OnVzaW5nTGVnYWN5Q29jb2FUZXh0SW5wdXQ6c3RyaW5nOl0pOgorICAgICAgICAoLVtX
S1RleHRJbnB1dFBhbmVsIF9oYXNNYXJrZWRUZXh0XSk6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51
UHJveHlNYWM6OnNob3dQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAgICAgIChXZWJLaXQ6OmluaXRp
YWxpemVFdmVudFJlY29yZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpzZW5k
Q29tcGxleFRleHRJbnB1dCk6CisgICAgICAgIChXZWJLaXQ6Om1ha2VDR0xQcmVzZW50TGF5ZXJP
cGFxdWUpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6bnVsbEV2ZW50VGltZXJG
aXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW06Cisg
ICAgICAgICgtW1dLUERGUGx1Z2luQWNjZXNzaWJpbGl0eU9iamVjdCBhY2Nlc3NpYmlsaXR5Rm9j
dXNlZFVJRWxlbWVudF0pOgorICAgICAgICAoLVtXS1BERkxheWVyQ29udHJvbGxlckRlbGVnYXRl
IHdyaXRlSXRlbXNUb1Bhc3RlYm9hcmQ6d2l0aFR5cGVzOl0pOgorICAgICAgICAoV2ViS2l0OjpQ
REZQbHVnaW46OmhhbmRsZUVkaXRpbmdDb21tYW5kKToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1
Z2luOjpzZXRBY3RpdmVBbm5vdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6IGNvbnN0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24u
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90
YXRpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbkNob2ljZUFubm90YXRpb246OmNy
ZWF0ZUFubm90YXRpb25FbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpblRleHRBbm5vdGF0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1
Z2luVGV4dEFubm90YXRpb246OmNyZWF0ZUFubm90YXRpb25FbGVtZW50KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRJbWFnZVRvQml0bWFwKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRHJhZ0NsaWVudDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW06
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpkcmF3UERGUGFnZSk6CisKIDIwMTgtMDktMDEgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDRk5ldHdvcmtdIFVwZGF0ZSBDRk5ldHdvcmsgU1BJ
IHVzZSB0byB1c2UgQ0ZOZXR3b3JrU1BJLmggbW9yZSBjb25zaXN0ZW50bHkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCBiNDEzOWJmNTA4ZmY3OGUyOTI0MjlmYTFlYjVkYzhkZDZhZjI4
MzA4Li41NzlmMWYxNWUwNjk2OGRhZmYwNzEzMjk1MTZlYzdkMjM1Mzc1NzJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTM0IEBACisyMDE4LTA4LTI3ICBHdWlsbGF1
bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgSUdOT1JFX1dB
Uk5JTkdfLiogbWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODg5OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIENhcmJvbi9DYXJib25VdGlscy5tOgorICAgICAgICAoUG9vbENsZWFuZXIpOgor
ICAgICAgICAqIENhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tOgorICAgICAgICAoLVtDYXJi
b25XaW5kb3dBZGFwdGVyIGluaXRXaXRoQ2FyYm9uV2luZG93UmVmOnRha2luZ093bmVyc2hpcDpk
aXNhYmxlT3JkZXJpbmc6Y2FyYm9uOl0pOgorICAgICAgICAoLVtDYXJib25XaW5kb3dBZGFwdGVy
IHNldFZpZXdzTmVlZERpc3BsYXk6XSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIg
cmVjb25jaWxlVG9DYXJib25XaW5kb3dCb3VuZHNdKToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93
QWRhcHRlciBfdGVybVdpbmRvd0lmT3duZXJdKToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93QWRh
cHRlciBfd2luZG93TW92ZWRUb1JlY3Q6XSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0
ZXIgc2V0Q29udGVudFZpZXc6XSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgX2hh
bmRsZVJvb3RCb3VuZHNDaGFuZ2VkXSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIg
X2hhbmRsZUNvbnRlbnRCb3VuZHNDaGFuZ2VkXSk6CisgICAgICAgICogQ2FyYm9uL0NhcmJvbldp
bmRvd0ZyYW1lLm06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0ZyYW1lIHRpdGxlXSk6CisgICAg
ICAgICogQ2FyYm9uL0hJVmlld0FkYXB0ZXIubToKKyAgICAgICAgKCtbSElWaWV3QWRhcHRlciBn
ZXRISVZpZXdGb3JOU1ZpZXc6XSk6CisgICAgICAgICogQ2FyYm9uL0hJV2ViVmlldy5tbToKKyAg
ICAgICAgKG92ZXJyaWRlQ0dDb250ZXh0KToKKyAgICAgICAgKHJlc3RvcmVDR0NvbnRleHQpOgor
ICAgICAgICAoRHJhdyk6CisgICAgICAgICogRE9NL0RPTS5tbToKKyAgICAgICAgKiBIaXN0b3J5
L1dlYkhpc3RvcnkuaDoKKyAgICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnkubW06CisgICAgICAg
ICgtW1dlYkhpc3RvcnlQcml2YXRlIGxvYWRIaXN0b3J5R3V0c0Zyb21VUkw6c2F2ZWRJdGVtc0Nv
dW50OmNvbGxlY3REaXNjYXJkZWRJdGVtc0ludG86ZXJyb3I6XSk6CisgICAgICAgICogSGlzdG9y
eS9XZWJIaXN0b3J5SXRlbS5tbToKKyAgICAgICAgKC1bV2ViSGlzdG9yeUl0ZW0gaWNvbl0pOgor
ICAgICAgICAqIE1pc2MvV2ViS2l0TlNTdHJpbmdFeHRyYXMubW06CisgICAgICAgICgtW05TU3Ry
aW5nIF93ZWJfZHJhd0F0UG9pbnQ6Zm9udDp0ZXh0Q29sb3I6XSk6CisgICAgICAgICogTWlzYy9X
ZWJOU0ltYWdlRXh0cmFzLm06CisgICAgICAgICgtW05TSW1hZ2UgX3dlYl9zY2FsZVRvTWF4U2l6
ZTpdKToKKyAgICAgICAgKC1bTlNJbWFnZSBfd2ViX2Rpc3NvbHZlVG9GcmFjdGlvbjpdKToKKyAg
ICAgICAgKiBNaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbToKKyAgICAgICAgKCtbTlNQYXN0
ZWJvYXJkIF93ZWJfc2V0RmluZFBhc3RlYm9hcmRTdHJpbmc6d2l0aE93bmVyOl0pOgorICAgICAg
ICAoLVtOU1Bhc3RlYm9hcmQgX3dlYl9kZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2VGb3JFbGVtZW50
OlVSTDp0aXRsZTphcmNoaXZlOnNvdXJjZTpdKToKKyAgICAgICAgKiBQYW5lbHMvV2ViQXV0aGVu
dGljYXRpb25QYW5lbC5tOgorICAgICAgICAoLVtXZWJBdXRoZW50aWNhdGlvblBhbmVsIGxvYWRO
aWJdKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2Vy
Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyOjpzcGF3blBs
dWdpbkhvc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyOjpk
aWRDcmVhdGVXaW5kb3cpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2lu
SG9zdFByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6
bWFrZUN1cnJlbnRQcm9jZXNzRnJvbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0c2Nh
cGVQbHVnaW5Ib3N0UHJveHk6Om1ha2VQbHVnaW5Ib3N0UHJvY2Vzc0Zyb250UHJvY2VzcyBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5Ojppc1BsdWdpbkhv
c3RQcm9jZXNzRnJvbnRQcm9jZXNzIGNvbnN0KToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eTo6bW91c2VFdmVudCk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0
ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoLVtXZWJIb3N0ZWRO
ZXRzY2FwZVBsdWdpblZpZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQv
V2ViVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoLVtXZWJUZXh0SW5wdXRQ
YW5lbCBfaW50ZXJwcmV0S2V5RXZlbnQ6c3RyaW5nOl0pOgorICAgICAgICAqIFBsdWdpbnMvV2Vi
QmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViQmFzZU5ldHNjYXBlUGx1
Z2luVmlldyBjb252ZXJ0RnJvbVg6YW5kWTpzcGFjZTp0b1g6YW5kWTpzcGFjZTpdKToKKyAgICAg
ICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luUGFja2FnZS5tbToKKyAgICAgICAgKC1bV2Vi
TmV0c2NhcGVQbHVnaW5QYWNrYWdlIF90cnlMb2FkXSk6CisgICAgICAgICogUGx1Z2lucy9XZWJO
ZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1Z2luVmlldyBz
YXZlQW5kU2V0TmV3UG9ydFN0YXRlRm9yVXBkYXRlOl0pOgorICAgICAgICAoLVtXZWJOZXRzY2Fw
ZVBsdWdpblZpZXcgc2VuZERyYXdSZWN0RXZlbnQ6XSk6CisgICAgICAgICgtW1dlYk5ldHNjYXBl
UGx1Z2luVmlldyBkcmF3UmVjdDpdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYlBsdWdpbkNvbnRy
b2xsZXIubW06CisgICAgICAgIChXZWJLaXRfVFNVcGRhdGVDaGVja19hbGVydERpZEVuZF9yZXR1
cm5Db2RlX2NvbnRleHRJbmZvXyk6CisgICAgICAgIChXZWJLaXRfTlNBbGVydF9iZWdpblNoZWV0
TW9kYWxGb3JXaW5kb3dfbW9kYWxEZWxlZ2F0ZV9kaWRFbmRTZWxlY3Rvcl9jb250ZXh0SW5mb18p
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbToKKyAgICAgICAgKFBv
cHVwTWVudU1hYzo6cG9wdWxhdGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkFsdGVy
bmF0aXZlVGV4dENsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGll
bnQubW06CisgICAgICAgIChXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZCk6CisgICAgICAg
ICh3ZWJHZXROU0ltYWdlKToKKyAgICAgICAgKiBXZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdo
dC5tbToKKyAgICAgICAgKiBXZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodFZpZXcubW06Cisg
ICAgICAgICgtW1dlYk5vZGVIaWdobGlnaHRWaWV3IGRyYXdSZWN0Ol0pOgorICAgICAgICAqIFdl
YlZpZXcvV2ViQ2xpcFZpZXcubW06CisgICAgICAgICgtW1dlYkNsaXBWaWV3IGluaXRXaXRoRnJh
bWU6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJh
bWUgX3VwZGF0ZUJhY2tncm91bmRBbmRVcGRhdGVzV2hpbGVPZmZzY3JlZW5dKToKKyAgICAgICAg
KC1bV2ViRnJhbWUgX2RyYXdSZWN0OmNvbnRlbnRzT25seTpdKToKKyAgICAgICAgKC1bV2ViRnJh
bWUgYWNjZXNzaWJpbGl0eVJvb3RdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5D
b250cm9sbGVyLm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBlbnRlckZ1
bGxTY3JlZW46XSk6CisgICAgICAgICgtW1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyIGZpbmlzaGVk
RW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uOl0pOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29u
dHJvbGxlciBleGl0RnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJv
bGxlciBmaW5pc2hlZEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uOl0pOgorICAgICAgICAoLVtXZWJG
dWxsU2NyZWVuQ29udHJvbGxlciBfc3RhcnRFbnRlckZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVy
YXRpb246XSk6CisgICAgICAgICgtW1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyIF9zdGFydEV4aXRG
dWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
SFRNTFZpZXcubW06CisgICAgICAgICgtW05TV2luZG93IF93ZWJfYm9yZGVyVmlld10pOgorICAg
ICAgICAoLVtXZWJIVE1MVmlldyBfdXBkYXRlTW91c2VvdmVyV2l0aEZha2VFdmVudF0pOgorICAg
ICAgICAoLVtXZWJIVE1MVmlldyBfc2V0QXNpZGVTdWJ2aWV3c10pOgorICAgICAgICAoLVtXZWJI
VE1MVmlldyBfYXV0b3Njcm9sbF0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBkcmF3UmVjdDpd
KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgbW91c2VEb3duOl0pOgorICAgICAgICAoLVtXZWJI
VE1MVmlldyBtb3VzZURyYWdnZWQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IG1vdXNlVXA6
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9lbmRQcmludE1vZGVBbmRSZXN0b3JlV2luZG93
QXV0b2Rpc3BsYXldKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcga25vd3NQYWdlUmFuZ2U6XSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2Vzc2liaWxpdHlIaXRUZXN0Ol0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyBfZm9udEF0dHJpYnV0ZXNGcm9tRm9udFBhc3RlYm9hcmRdKToKKyAg
ICAgICAgKC1bV2ViSFRNTFZpZXcgX2NvbG9yQXNTdHJpbmc6XSk6CisgICAgICAgICgtW1dlYkhU
TUxWaWV3IGNvcHlGb250Ol0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfZXhlY3V0ZVNhdmVk
S2V5cHJlc3NDb21tYW5kc10pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBhdHRhY2hSb290TGF5
ZXI6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHRleHRTdG9yYWdlXSk6CisgICAgICAgICgt
W1dlYkhUTUxWaWV3IF91cGRhdGVTZWxlY3Rpb25Gb3JJbnB1dE1hbmFnZXJdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgIChfYXBwbGljYXRpb25JbmZvRm9yTUlN
RVR5cGUpOgorICAgICAgICAoLVtXZWJQREZWaWV3IGNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFy
ZWE6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX3JlY3Vyc2l2ZURpc3BsYXlSZWN0SWZOZWVk
ZWRJZ25vcmluZ09wYWNpdHk6aXNWaXNpYmxlUmVjdDpyZWN0SXNWaXNpYmxlUmVjdEZvclZpZXc6
dG9wVmlldzpdKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBfcmVjdXJzaXZlRGlzcGxheUFsbERp
cnR5V2l0aExvY2tGb2N1czp2aXNSZWN0Ol0pOgorICAgICAgICAoLVtXZWJQREZWaWV3IF9yZWN1
cnNpdmU6ZGlzcGxheVJlY3RJZ25vcmluZ09wYWNpdHk6aW5Db250ZXh0OnRvcFZpZXc6XSk6Cisg
ICAgICAgICgtW1dlYlBERlZpZXcgc2VhcmNoRm9yOmRpcmVjdGlvbjpjYXNlU2Vuc2l0aXZlOndy
YXA6c3RhcnRJblNlbGVjdGlvbjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlRleHRDb21wbGV0
aW9uQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVy
IF9idWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlciBfcGxh
Y2VQb3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXIubW06CisgICAgICAgICogV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5k
b3dDb250cm9sbGVyLm1tOgorICAgICAgICAoY3JlYXRlTWVkaWFVSUJhY2tncm91bmRWaWV3KToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlRleHRMaXN0VG91
Y2hCYXJWaWV3Q29udHJvbGxlciBpbml0V2l0aFdlYlZpZXc6XSk6CisgICAgICAgICgtW1dlYlZp
ZXcgX2Rpc3BhdGNoVGlsZURpZERyYXc6XSk6CisgICAgICAgICgtW1dlYlZpZXcgZW5jb2RlV2l0
aENvZGVyOl0pOgorICAgICAgICAoLVtXZWJWaWV3IG1haW5GcmFtZUljb25dKToKKyAgICAgICAg
KExheWVyRmx1c2hDb250cm9sbGVyOjpmbHVzaExheWVycyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJXaW5kb3dBbmltYXRpb24ubW06CisgICAgICAgIChzZXRTY2FsZWRGcmFtZUZvcldpbmRvdyk6
CisKIDIwMTgtMDktMDEgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFtDRk5ldHdvcmtdIFVwZGF0ZSBDRk5ldHdvcmsgU1BJIHVzZSB0byB1c2UgQ0ZOZXR3b3JrU1BJ
LmggbW9yZSBjb25zaXN0ZW50bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0LmgKaW5kZXggMTYzNjQ2OTYzODlkZWM5MGUwNTBlZDIwMDBlYWU3MmMxZDc5MjEz
YS4uYjQ2ZmQzMGE4ODdjMmMwMjYyYTY4ZTNjOThmYjBhY2FhMWExNzdmZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE1OCwxOCArMTU4LDkg
QEAgcHVibGljOgogICAgIHZvaWQqIGdldFByaXZhdGUoKTsKIAogICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgZml4IHRoZSB3YXJuaW5ncyBmb3IgZXh0ZXJuLXRlbXBsYXRlIGluIEpTT2JqZWN0IHRl
bXBsYXRlIGNsYXNzZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjE5NzkKLSNpZiBDT01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3VuZGVmaW5l
ZC12YXItdGVtcGxhdGUiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiCi0jZW5k
aWYKLSNlbmRpZgorICAgIElHTk9SRV9DTEFOR19XQVJOSU5HX0JFR0lOKCItV3VuZGVmaW5lZC12
YXItdGVtcGxhdGUiKQogICAgIERFQ0xBUkVfSU5GTzsKLSNpZiBDT01QSUxFUihDTEFORykKLSNp
ZiBfX2hhc193YXJuaW5nKCItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCi0jZW5kaWYKKyAgICBJR05PUkVfQ0xBTkdfV0FSTklO
R19FTkQKIAogICAgIEpTQ2xhc3NSZWYgY2xhc3NSZWYoKSBjb25zdCB7IHJldHVybiBtX2NhbGxi
YWNrT2JqZWN0RGF0YS0+anNDbGFzczsgfQogICAgIGJvb2wgaW5oZXJpdHMoSlNDbGFzc1JlZikg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3Rh
cGkuYyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCmluZGV4IDNm
Yzg2MTIxOWEzMDg0NWFhOGJlODY0NDYwNThhZmIzZjYyMDdhZDkuLjU3N2I4MjIzYTcxNTk0Mjk2
Y2RkYjJkM2M2ODgyMTdmYjYzOTY1MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvdGVzdGFwaS5jCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvdGVzdGFwaS5jCkBAIC0xMTQwLDEwICsxMTQwLDcgQEAgc3RhdGljIGJvb2wgZ2xvYmFsQ29u
dGV4dE5hbWVUZXN0KCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi0jaWYgQ09NUElMRVIoR0ND
KQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUiCi0jZW5kaWYKK0lHTk9SRV9HQ0NfV0FS
TklOR19CRUdJTigiLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZSIpCiBzdGF0aWMgdm9pZCBjaGVj
a0NvbnN0bmVzc0luSlNPYmplY3ROYW1lcygpCiB7CiAgICAgSlNTdGF0aWNGdW5jdGlvbiBmdW47
CkBAIC0xMTUxLDkgKzExNDgsNyBAQCBzdGF0aWMgdm9pZCBjaGVja0NvbnN0bmVzc0luSlNPYmpl
Y3ROYW1lcygpCiAgICAgSlNTdGF0aWNWYWx1ZSB2YWw7CiAgICAgdmFsLm5hbWUgPSAic29tZXRo
aW5nIjsKIH0KLSNpZiBDT01QSUxFUihHQ0MpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAot
I2VuZGlmCitJR05PUkVfR0NDX1dBUk5JTkdfRU5ECiAKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0
ZXJuICJDIiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xp
bmtCdWZmZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5o
CmluZGV4IDU1OTkwOGFkZDAzZGUyMTVhYTYwYWY3MjgwOWZhMzNlMWM5ZDk3YTkuLmUxOTRlYzcx
ZjVkYjA1N2QxOGM5NDY4NWFiNTNiOGY2OGM1Y2NhNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCkBAIC0yNjMsMTUgKzI2MywxMSBAQCBwdWJsaWM6
CiAgICAgdGVtcGxhdGU8UHRyVGFnIHRhZywgdHlwZW5hbWUuLi4gQXJncz4KICAgICBDb2RlUmVm
PHRhZz4gZmluYWxpemVDb2RlV2l0aERpc2Fzc2VtYmx5KGNvbnN0IGNoYXIqIGZvcm1hdCwgQXJn
cy4uLiBhcmdzKQogICAgIHsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdD
QyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3Jt
YXQtbm9ubGl0ZXJhbCIKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQt
c2VjdXJpdHkiCi0jZW5kaWYKKyAgICAgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVHSU4K
KyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XZm9ybWF0LXNlY3VyaXR5IikKICAgICAg
ICAgcmV0dXJuIGZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJseUltcGwoZm9ybWF0LCBhcmdzLi4u
KS50ZW1wbGF0ZSByZXRhZ2dlZDx0YWc+KCk7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQot
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgICAgICBJR05PUkVfV0FSTklO
R19FTkQKKyAgICAgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfRU5ECiAgICAgfQogCiAgICAg
dGVtcGxhdGU8UHRyVGFnIHRhZz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0xvd2VyVG9BaXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fp
ci5jcHAKaW5kZXggMmNkYjcyNDNkMzRlMjdlNTc2MWM5MzQ5MzVjZTU1MTgxNGQ1YjYyYS4uYjA4
N2YzMmIzMDcyZTFhMjYyYmU0ZGE0NDBjZmY5YjBjZDYyOWJjMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKQEAgLTYyLDEwICs2Miw5IEBACiAjaW5jbHVkZSA8
d3RmL0luZGV4U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAKLSNpZiBDT01QSUxF
UihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0dXJuLXR5cGUiCi0jZW5kaWYgLy8g
Q09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lH
Tk9SRV9SRVRVUk5fVFlQRV9CRUdJTgorI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgQjMgewogCkBAIC0zNTI3LDggKzM1MjYsOCBAQCB2b2lkIGxvd2VyVG9BaXIoUHJvY2VkdXJl
JiBwcm9jZWR1cmUpCiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwogCi0jaWYgQ09NUElMRVIo
R0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5k
aWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJM
RUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9FTkQKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIz
X0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCmluZGV4IDdlYmY2NmI3MGE0
NTBjOTJhZTE1NDlkNTI2NGJjOTkwZGExYmVjMTQuLmUyMGU2OWQ1YTkzNDNlN2RjOGFjNTU5YTA5
ZjNlNTQ0ZTgwZTgxMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09w
Y29kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcApAQCAt
MzAsMTAgKzMwLDkgQEAKIAogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogCi0jaWYgQ09N
UElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2VuZGlm
IC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVE
CitJR05PUkVfUkVUVVJOX1RZUEVfQkVHSU4KKyNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIEIzIHsKIApAQCAtMzczLDggKzM3Miw4IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmlu
dFN0cmVhbSYgb3V0LCBPcGNvZGUgb3Bjb2RlKQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAotI2lm
IENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNT
RVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfRU5ECisjZW5kaWYKIAogI2VuZGlmIC8v
IEVOQUJMRShCM19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNU
eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNUeXBlLmgKaW5kZXggNGNlYWE4YTFk
ZjE0YjhiNmI2OGUwZTgwYmZlYjZhOWUwYTJkOGU4Mi4uODYwN2IzMjhlMTg0NzhjYmIzNTI3MWQw
MmViNWY1N2JiNTM4YjM1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
VHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGUuaApAQCAtMzAsMTAg
KzMwLDkgQEAKICNpbmNsdWRlICJCM0NvbW1vbi5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdD
QyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1
cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lm
IEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lOCisjZW5kaWYKIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTg3LDggKzg2LDggQEAgdm9pZCBwcmlu
dEludGVybmFsKFByaW50U3RyZWFtJiwgSlNDOjpCMzo6VHlwZSk7CiAKIH0gLy8gbmFtZXNwYWNl
IFdURgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJM
RUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9FTkQKKyNlbmRpZgog
CiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1R5cGVNYXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGVNYXAu
aAppbmRleCBjMGVhNDEzMDQ4YTU1NTZmNWRjMzQ1OGQzODQwZTVmYjViOTlkNmQxLi40NDU2OGFi
MzM2ZjAxYzM2YjQzYTMxOTE4NWRjMGUxM2Q4OTEwZDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNUeXBlTWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzVHlwZU1hcC5oCkBAIC0zMCwxMCArMzAsOSBAQAogI2luY2x1ZGUgIkIzVHlwZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRf
RElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYg
QVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVf
QkVHSU4KKyNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIApAQCAtMTAx
LDggKzEwMCw4IEBAIHByaXZhdGU6CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwogCi0jaWYg
Q09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NF
UlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9FTkQKKyNlbmRpZgogCiAjZW5kaWYgLy8g
RU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dp
ZHRoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNXaWR0aC5oCmluZGV4IGUzNjU4M2Y2
OTRiODgzZmIyYjg4OWQwMTMxMDgzNGEwNTMxY2ZjNDcuLjRlNzY1OGNlYzFhNTkwMzU3OTUwY2Y1
MTg2MjQxOGY5NDg1ODEwNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1dpZHRoLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzV2lkdGguaApAQCAtMzAs
MTAgKzMwLDkgQEAKICNpbmNsdWRlICJCM0JhbmsuaCIKICNpbmNsdWRlICJCM1R5cGUuaCIKIAot
I2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIK
LSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9E
SVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTE0Myw5ICsxNDIsOSBAQCB2b2lkIHByaW50SW50ZXJu
YWwoUHJpbnRTdHJlYW0mLCBKU0M6OkIzOjpXaWR0aCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdURgog
Ci0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNp
ZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9FTkQKKyNlbmRpZgogCiAjZW5k
aWYgLy8gRU5BQkxFKEIzX0pJVCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJBcmcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcu
Y3BwCmluZGV4IGY5ZTQ2OWMwNDdjYmViMzg3MTc3NzUxYzQ5Yzc2NmM1NzllNjg1MzkuLmRiZTJh
MzM3YTg1OTBkZDEzNWZiOGM2ZGNhN2EzZGRmODAwNTA2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckFyZy5jcHAKQEAgLTM0LDEwICszNCw5IEBACiAjaW5jbHVkZSAiRlBSSW5m
by5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJU
X0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYm
IEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBF
X0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFj
ZSBBaXIgewogCkBAIC0zNzksOCArMzc4LDggQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3Ry
ZWFtJiBvdXQsIEFyZzo6U2lnbmVkbmVzcyBzaWduZWRuZXNzKQogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBk
aWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVE
CisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfRU5ECisjZW5kaWYKIAog
I2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckFyZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcu
aAppbmRleCA4MzhmY2E4OTIxMjcxYzFiMDc3OGIyNWQ0NTA1NzlkZTQzNzk1NzY3Li40NmVmZTlk
MjM4YzkwYjA1ZDk0ZGU4OGViNDZmMTI4NDY3NTVlY2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQXJnLmgKQEAgLTM1LDEwICszNSw5IEBACiAjaW5jbHVkZSAiQjNXaWR0aC5oIgog
I2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRf
RElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYg
QVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVf
QkVHSU4KKyNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIApAQCAtMTQ5
NCw4ICsxNDkzLDggQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6OkIzOjpBaXI6
OkFyZz4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlNDOjpCMzoKIAogfSAvLyBuYW1lc3BhY2Ug
V1RGCiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxF
RAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0VORAorI2VuZGlmCiAK
ICNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNv
ZGUuaAppbmRleCA3NTk3MDMwZmRjZjA0MmJmYzNkOGRlYTIyODFiOWViMjhiYTI1NDM1Li43Yjhk
ZDNlNmRmYWRhOTU3OWZiN2JiYWM5OWU4NjRmYTgxYzE5MjEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckNvZGUuaApAQCAtNDQsMTAgKzQ0LDkgQEAgbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBCMyB7CiAKIGNsYXNzIFByb2NlZHVyZTsKIAotI2lmIENPTVBJTEVSKEdDQykgJiYg
QVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihH
Q0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVS
Tl9UWVBFX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEFpciB7CiAKQEAgLTM4OCw4ICszODcs
OCBAQCBwcml2YXRlOgogCiB9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyCiAKLSNpZiBD
T01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
b3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VS
VF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0VORAorI2VuZGlmCiAKICNlbmRpZiAvLyBF
TkFCTEUoQjNfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L09wY29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCmluZGV4
IDA3ZDlhNzMxNGVlYjEwOWM3MzEyMzdkNGJlMzI3MTMxYjExYzk0ZWUuLjM4YWQ1MTA1N2Q4OTg3
ODkyNDFjOWFhYmIyNDZjMTBlNjk3ZGIwNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9PcGNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvT3Bjb2RlLmgKQEAgLTc0LDE4ICs3NCwxMyBAQCBjb25zdCBpbnQgbnVtT3Bjb2RlSURzID0g
TlVNQkVSX09GX0JZVEVDT0RFX0lEUyArIE5VTUJFUl9PRl9CWVRFQ09ERV9IRUxQRVJfSURTOwog
ICAgIGNvbnN0IGludCBvcGNvZGVMZW5ndGhzW251bU9wY29kZUlEc10gPSB7IEZPUl9FQUNIX09Q
Q09ERV9JRChPUENPREVfSURfTEVOR1RIX01BUCkgfTsKICN1bmRlZiBPUENPREVfSURfTEVOR1RI
X01BUAogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdHlwZS1saW1pdHMiCi0jZW5kaWYKK0lH
Tk9SRV9XQVJOSU5HX0JFR0lOKCItV3R5cGUtbGltaXRzIikKIAogI2RlZmluZSBWRVJJRllfT1BD
T0RFX0lEKGlkLCBzaXplKSBDT01QSUxFX0FTU0VSVChpZCA8PSBudW1PcGNvZGVJRHMsIEFTU0VS
VF9USEFUX0pTX09QQ09ERV9JRFNfQVJFX1ZBTElEKTsKICAgICBGT1JfRUFDSF9PUENPREVfSUQo
VkVSSUZZX09QQ09ERV9JRCk7CiAjdW5kZWYgVkVSSUZZX09QQ09ERV9JRAogCi0jaWYgQ09NUElM
RVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX1dBUk5J
TkdfRU5ECiAKICNpZiBFTkFCTEUoQ09NUFVURURfR09UT19PUENPREVTKQogdHlwZWRlZiB2b2lk
KiBPcGNvZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCmluZGV4IGJkMThmOWRmOWI3ZTg1MzA5MjNlZGY2ZTBiNDEwOGY2ZDI5N2EwNjcuLjU4
OTRiNTY3NzJkYWExYmU0MDQxMzg2ZWNhMDU5NDczNDMxZTU4MDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC05NjU3LDE0ICs5NjU3
LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTnVtYmVyKEVkZ2UgZWRnZSkKICAg
ICAgICAgSlNWYWx1ZVJlZ3MoZ3ByKSwgZWRnZSwgU3BlY0J5dGVjb2RlTnVtYmVyLAogICAgICAg
ICBtX2ppdC5icmFuY2hJZk5vdE51bWJlcihncHIpKTsKICNlbHNlCi0jaWYgQ09NUElMRVIoR0ND
X09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZW51bS1jb21wYXJlIgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5J
TkdfQkVHSU4oIi1XZW51bS1jb21wYXJlIikKICAgICBzdGF0aWNfYXNzZXJ0KEpTVmFsdWU6Oklu
dDMyVGFnID49IEpTVmFsdWU6Okxvd2VzdFRhZywgIkludDMyVGFnIGlzIGluY2x1ZGVkIGluID49
IEpTVmFsdWU6Okxvd2VzdFRhZyByYW5nZS4iKTsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcp
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdf
RU5ECiAgICAgR1BSUmVnIHRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOwogICAgIERGR19UWVBFX0NI
RUNLKAogICAgICAgICB2YWx1ZS5qc1ZhbHVlUmVncygpLCBlZGdlLCB+U3BlY0ludDMyT25seSwK
QEAgLTEwMTcxLDE0ICsxMDE2Niw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1p
c2MoRWRnZSBlZGdlLCBKU1ZhbHVlUmVncyByZWdzKQogICAgICAgICByZWdzLCBlZGdlLCBTcGVj
TWlzYywKICAgICAgICAgbV9qaXQuYnJhbmNoNjQoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlLCByZWdz
LmdwcigpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTY0KFRhZ0JpdFR5cGVPdGhlciB8IFRh
Z0JpdEJvb2wgfCBUYWdCaXRVbmRlZmluZWQpKSk7CiAjZWxzZQotI2lmIENPTVBJTEVSKEdDQ19P
Ul9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2VudW0tY29tcGFyZSIKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5H
X0JFR0lOKCItV2VudW0tY29tcGFyZSIpCiAgICAgc3RhdGljX2Fzc2VydChKU1ZhbHVlOjpJbnQz
MlRhZyA+PSBKU1ZhbHVlOjpVbmRlZmluZWRUYWcsICJJbnQzMlRhZyBpcyBpbmNsdWRlZCBpbiA+
PSBKU1ZhbHVlOjpVbmRlZmluZWRUYWcgcmFuZ2UuIik7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NM
QU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIElHTk9SRV9XQVJO
SU5HX0VORAogICAgIERGR19UWVBFX0NIRUNLKAogICAgICAgICByZWdzLCBlZGdlLCB+U3BlY0lu
dDMyT25seSwKICAgICAgICAgbV9qaXQuYnJhbmNoSWZJbnQzMihyZWdzLnRhZ0dQUigpKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApp
bmRleCA3ZTFjYmNmOGVkOTY1ZWNjOWE2Y2E4NjRkNWI4N2ZlMWI3NDVkN2ViLi41ZjdmNDJmMGUy
NzczM2IwOGZmNmFmNDI2ZjUyYTIwM2FhZWI0ZTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTg3NiwxMiArODc2LDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZSkKIAogLy8gQ2xhbmcgc2hv
dWxkIGFsbG93IHVucmVhY2hhYmxlIFtbY2xhbmc6OmZhbGx0aHJvdWdoXV0gaW4gdGVtcGxhdGUg
ZnVuY3Rpb25zIGlmIGFueSB0ZW1wbGF0ZSBleHBhbnNpb24gdXNlcyBpdAogLy8gaHR0cDovL2xs
dm0ub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTE4NjE5Ci0jaWYgQ09NUElMRVIoQ0xBTkcpICYm
IGRlZmluZWQoX19oYXNfd2FybmluZykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
aWYgX19oYXNfd2FybmluZygiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIpCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIKLSNlbmRpZgotI2Vu
ZGlmCitJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIp
CiB0ZW1wbGF0ZTxib29sIHN0cmljdD4KIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1
bGF0ZUludDMySW50ZXJuYWwoRWRnZSBlZGdlLCBEYXRhRm9ybWF0JiByZXR1cm5Gb3JtYXQpCiB7
CkBAIC0xMDEyLDkgKzEwMDcsNyBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxh
dGVJbnQzMkludGVybmFsKEVkZ2UgZWRnZSwgRGF0YUZvcm1hdCYgcmV0dXJuRgogICAgICAgICBy
ZXR1cm4gSW52YWxpZEdQUlJlZzsKICAgICB9CiB9Ci0jaWYgQ09NUElMRVIoQ0xBTkcpICYmIGRl
ZmluZWQoX19oYXNfd2FybmluZykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRp
ZgorSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAKIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6Zmls
bFNwZWN1bGF0ZUludDMyKEVkZ2UgZWRnZSwgRGF0YUZvcm1hdCYgcmV0dXJuRm9ybWF0KQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKaW5kZXggOWY1OTM2OWM4OWJlNTdlNmVl
Nzc5ZTExNmYzN2ZlNmMyYjdlOTcwZi4uNWEzN2QwM2ZhODY0ZjI1NWEzYzYxOTYxMjI0NDJiMWY4
NzI5ZDY0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCkBAIC01MCwxMSAr
NTAsOCBAQAogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiAvLyBGSVhNRTog
cmVtb3ZlIHRoaXMgb25jZSBldmVyeXRoaW5nIGNhbiBiZSBnZW5lcmF0ZWQgdGhyb3VnaCBCMy4K
LSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdtaXNzaW5nLW5vcmV0dXJuIgotI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCi0jZW5kaWYg
Ly8gQ09NUElMRVIoR0NDX09SX0NMQU5HKQorSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XbWlzc2lu
Zy1ub3JldHVybiIpCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0JFR0lOCiAKIG5hbWVzcGFjZSBK
U0MgewogCkBAIC01MDAsOSArNDk3LDggQEAgaW5saW5lIHZvaWQgT3V0cHV0OjphZGRJbmNvbWlu
Z1RvUGhpKExWYWx1ZSBwaGksIFZhbHVlRnJvbUJsb2NrIHZhbHVlLCBQYXJhbXMuLi4KICAgICBh
ZGRJbmNvbWluZ1RvUGhpKHBoaSwgdGhlUmVzdC4uLik7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0Nf
T1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVS
KEdDQ19PUl9DTEFORykKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfRU5ECitJR05PUkVfV0FSTklO
R19FTkQKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCAxZDhlM2JlZTliNmJkNjdlNzA5MzQ3NTUzNmQyYmQ1
N2QxZjMxODNmLi5lOTY5MjExMWJkMTBhYWE4NWUwM2QwZTUwZjk3OTE0MDkzY2EwMzQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTMyOSwxNCArMzI5LDkg
QEAgcHJpdmF0ZToKIAogICAgICAgICBjdXJyZW50R1BSQXJndW1lbnQgKz0gZXh0cmFHUFJBcmdz
OwogICAgICAgICBjdXJyZW50RlBSQXJndW1lbnQgLT0gbnVtQ3Jvc3NTb3VyY2VzOwotI2lmIENP
TVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3R5cGUtbGltaXRzIgotI2VuZGlmCisgICAgICAg
IElHTk9SRV9XQVJOSU5HX0JFR0lOKCItV3R5cGUtbGltaXRzIikKICAgICAgICAgQVNTRVJUKGN1
cnJlbnRHUFJBcmd1bWVudCA+PSBHUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzIHx8
IGN1cnJlbnRGUFJBcmd1bWVudCA+PSBGUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJz
KTsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBv
cAotI2VuZGlmCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0VORAogCiAgICAgICAgIHVuc2lnbmVk
IHBva2VPZmZzZXQgPSBQT0tFX0FSR1VNRU5UX09GRlNFVCArIGV4dHJhUG9rZTsKICAgICAgICAg
cG9rZU9mZnNldCArPSBzdGQ6Om1heChjdXJyZW50R1BSQXJndW1lbnQsIG51bWJlck9mR1BBcmd1
bWVudFJlZ2lzdGVycykgLSBudW1iZXJPZkdQQXJndW1lbnRSZWdpc3RlcnM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCmluZGV4IGM5M2QxNWM3NGM1OGZmNWQ5NmFh
MGFhZDk0MzQxM2YwODVhM2Q5MmUuLjQ4NDQwYmQxNjgzMTY0MzEwZDViODJjMTFlNjkwOTIyMmJi
MWY3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCkBAIC02
NywxMCArNjcsNyBAQCB2b2lkIGluaXRpYWxpemUoKQogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiB9
CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdtaXNzaW5nLW5vcmV0dXJuIgotI2Vu
ZGlmCitJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigiLVdtaXNzaW5nLW5vcmV0dXJuIikKIHZv
aWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0mIHZtKQogewogICAgIFVOVVNFRF9QQVJBTSh2
bSk7CkBAIC0xOTksOCArMTk2LDYgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyhWTSYg
dm0pCiAgICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6OmZyb21JbnQoYml0cykucmhzT2JzZXJ2
ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOwogICAgIH0KIH0KLSNpZiBDT01QSUxFUihDTEFORykK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX0NMQU5HX1dBUk5J
TkdfRU5ECiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggMjg0MzMwNWIzMDZhMThkZDk0
OGE3ZTFkOWVjMDEwNDEzYmQ4NjFhYi4uNGFlYmQ2OTRhMDE3ZTFkNjBlYTBlZWY3ZjMyNmY1NzRm
YmNkNmY3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xv
d1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0
aHMuY3BwCkBAIC0yMDUsMTYgKzIwNSwxMiBAQCB2b2lkIHNsb3dQYXRoTG4oY29uc3QgVHlwZXMm
Li4uIHZhbHVlcykKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPgogdm9pZCBzbG93UGF0aExv
Z0YoY29uc3QgY2hhciogZm9ybWF0LCBjb25zdCBUeXBlcyYuLi4gdmFsdWVzKQogewotI2lmIENP
TVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1zZWN1cml0eSIKLSNlbmRpZgorICAgIEFM
TE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lOCisgICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1X
Zm9ybWF0LXNlY3VyaXR5IikKICAgICBpZiAoT3B0aW9uczo6dHJhY2VMTEludFNsb3dQYXRoKCkp
CiAgICAgICAgIGRhdGFMb2dGKGZvcm1hdCwgdmFsdWVzLi4uKTsKLSNpZiBDT01QSUxFUihHQ0Nf
T1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgSUdOT1JF
X1dBUk5JTkdfRU5ECisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfRU5ECiB9CiAKICNlbHNl
IC8vIG5vdCBMTElOVF9UUkFDSU5HCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db25maWdGaWxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bmZpZ0ZpbGUuY3BwCmluZGV4IDk4YzE5NmY4MmY2ODUxYmRmNzBlZjhkNjIyM2I1YTE2OTEyOTM2
MmYuLjE0MDE3ZDRkM2Q4MWYxZjUzYjg4MTI2ZTJlYjU5OGNmYTZhZGJkOGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCkBAIC00OTEsMTQgKzQ5MSwx
MyBAQCB2b2lkIENvbmZpZ0ZpbGU6OmNhbm9uaWNhbGl6ZVBhdGhzKCkKICAgICAgICAgICAgICAg
ICAgICAgc3RybmNhdChmaWxlbmFtZUJ1ZmZlciwgIi8iLCAyKTsgLy8gUm9vbSBmb3IgJy8nIHBs
dXMgTlVMCiAjaWYgQ09NUElMRVIoR0NDKQogI2lmIEdDQ19WRVJTSU9OX0FUX0xFQVNUKDgsIDAs
IDApCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdzdHJpbmdvcC10cnVuY2F0aW9uIgorICAgICAgICAgICAgICAgIElHTk9SRV9H
Q0NfV0FSTklOR19CRUdJTigiLVdzdHJpbmdvcC10cnVuY2F0aW9uIikKICNlbmRpZgogI2VuZGlm
CiAgICAgICAgICAgICAgICAgc3RybmNhdChmaWxlbmFtZUJ1ZmZlciwgbV9maWxlbmFtZSwgc2l6
ZW9mKGZpbGVuYW1lQnVmZmVyKSAtIHN0cmxlbihmaWxlbmFtZUJ1ZmZlcikgLSAxKTsKICNpZiBD
T01QSUxFUihHQ0MpCiAjaWYgR0NDX1ZFUlNJT05fQVRfTEVBU1QoOCwgMCwgMCkKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAgICAgSUdOT1JFX0dDQ19XQVJOSU5HX0VO
RAogI2VuZGlmCiAjZW5kaWYKICAgICAgICAgICAgICAgICBzdHJuY3B5KG1fZmlsZW5hbWUsIGZp
bGVuYW1lQnVmZmVyLCBzX21heFBhdGhMZW5ndGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcAppbmRleCBmMDVjZmY1Zjg4
YTU1MWMzYTdjNGJhYWQyZjAzYzViNDc3ODlhZjZkLi40Mzk2NjBkY2FjNGQzMmJmODdkZWNjZjcx
NjkyNTYwYjczYTQ1NmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcApAQCAtMjA4LDEwICsyMDgsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBzZXREYXRhKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
bWlzc2luZy1wcm90b3R5cGVzIgotI2VuZGlmCitJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigi
LVdtaXNzaW5nLXByb3RvdHlwZXMiKQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGFWaWV3UHJvdG9HZXR0ZXJCdWZmZXIoRXhlY1N0YXRlKiBleGVjKQogewpAQCAtMzI4LDggKzMy
NSw2IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRG
bG9hdDY0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICByZXR1cm4gc2V0RGF0YTxGbG9hdDY0QWRh
cHRvcj4oZXhlYyk7CiB9Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9DTEFOR19XQVJOSU5HX0VORAogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaAppbmRleCA4YWNmZDQ4
ZTIzZmZkOTZjYmNiMmZiYjdiZjcxMmY3ODA4ZjVhNDQwLi4zMGY3NjVmNThlYjQ4NjM3ZGE2MGQz
NTc1Njk4ZjlhMWIwYWE3NjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5o
CkBAIC00MywxOSArNDMsMTAgQEAgcHVibGljOgogICAgICAgICBWTSYsIEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlKiwgSlNPYmplY3QqIHByb3RvdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBG
dW5jdGlvbkV4ZWN1dGFibGUqIHByaXZhdGVBbGxvY2F0b3IpOwogCiAgICAgLy8gRklYTUU6IFdl
IHNob3VsZCBmaXggdGhlIHdhcm5pbmdzIGZvciBleHRlcm4tdGVtcGxhdGUgaW4gSlNPYmplY3Qg
dGVtcGxhdGUgY2xhc3NlczogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MTk3OQotI2lmIENPTVBJTEVSKENMQU5HKQotI2lmIF9faGFzX3dhcm5pbmcoIi1XdW5kZWZp
bmVkLXZhci10ZW1wbGF0ZSIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIKLSNl
bmRpZgotI2VuZGlmCisgICAgSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1XdW5kZWZpbmVk
LXZhci10ZW1wbGF0ZSIpCiAgICAgREVDTEFSRV9JTkZPOwotI2lmIENPTVBJTEVSKENMQU5HKQot
I2lmIF9faGFzX3dhcm5pbmcoIi1XdW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIpCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKLSNlbmRpZgotICAgIAorICAgIElHTk9SRV9DTEFO
R19XQVJOSU5HX0VORAorCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZN
JiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1By
b3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRB
cnJheVZpZXdQcm90b3R5cGUuaAppbmRleCA0ZTFlYjdkODgzNGNiYzVkZTcyY2Q2Y2M2YjFkMjRi
NDYxNDNjNWI2Li43MmQyM2Y1M2UxZDgxOWIxNDBlMzJhMDc0MTQzM2NkZmRjZDM5MzE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5
Vmlld1Byb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmgKQEAgLTQzLDE4ICs0Myw5IEBAIHB1YmxpYzoK
ICAgICAgICAgVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogCiAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBmaXggdGhlIHdhcm5pbmdzIGZvciBleHRlcm4tdGVtcGxhdGUgaW4gSlNP
YmplY3QgdGVtcGxhdGUgY2xhc3NlczogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2MTk3OQotI2lmIENPTVBJTEVSKENMQU5HKQotI2lmIF9faGFzX3dhcm5pbmcoIi1X
dW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5kZWZpbmVkLXZhci10ZW1wbGF0
ZSIKLSNlbmRpZgotI2VuZGlmCisgICAgSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1XdW5k
ZWZpbmVkLXZhci10ZW1wbGF0ZSIpCiAgICAgREVDTEFSRV9JTkZPOwotI2lmIENPTVBJTEVSKENM
QU5HKQotI2lmIF9faGFzX3dhcm5pbmcoIi1XdW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIpCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKLSNlbmRpZgorICAgIElHTk9SRV9DTEFO
R19XQVJOSU5HX0VORAogICAgIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5cGUpOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKaW5kZXggNDA3YzU3MDQ3NDZiMDRjZmY3
NGRmYTk4YjliYzMxM2ZjNzMzNjY0Zi4uYmU3MDFkNDEzZjcyNTdkZDVkZWY3MWM0YTU3MjU3NjBl
MTQyNjdlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9u
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAg
LTc0NCwxMiArNzQ0LDcgQEAgYm9vbCBPcHRpb25zOjpzZXRBbGlhc2VkT3B0aW9uKGNvbnN0IGNo
YXIqIGFyZykKICAgICBpZiAoIWVxdWFsU3RyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNp
ZiBDT01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3RhdXRvbG9naWNhbC1jb21w
YXJlIikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSIKLSNlbmRpZgotI2VuZGlmCisg
ICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XdGF1dG9sb2dpY2FsLWNvbXBhcmUiKQogCiAgICAg
Ly8gRm9yIGVhY2ggb3B0aW9uLCBjaGVjayBpZiB0aGUgc3BlY2lmeSBhcmcgaXMgYSBtYXRjaC4g
SWYgc28sIHNldCB0aGUgYXJnCiAgICAgLy8gaWYgdGhlIHZhbHVlIG1ha2VzIHNlbnNlLiBPdGhl
cndpc2UsIG1vdmUgb24gdG8gY2hlY2tpbmcgdGhlIG5leHQgb3B0aW9uLgpAQCAtNzcyLDExICs3
NjcsNyBAQCBib29sIE9wdGlvbnM6OnNldEFsaWFzZWRPcHRpb24oY29uc3QgY2hhciogYXJnKQog
ICAgIEpTQ19BTElBU0VEX09QVElPTlMoRk9SX0VBQ0hfT1BUSU9OKQogI3VuZGVmIEZPUl9FQUNI
X09QVElPTgogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jaWYgX19oYXNfd2FybmluZygiLVd0YXV0
b2xvZ2ljYWwtY29tcGFyZSIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYK
LSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0VORAogCiAgICAgcmV0dXJuIGZhbHNlOyAvLyBO
byBvcHRpb24gbWF0Y2hlZC4KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
b29scy9Db2RlUHJvZmlsaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9Db2Rl
UHJvZmlsaW5nLmNwcAppbmRleCBjM2RhOGMyYzI5M2ZjYzliY2M3M2RmMTJmNjk2ZjRjZTNiNDk4
ZGEzLi4yM2RmMWI5MGVmNTExMTY3NjMzYWYxNGY2OGRhMTBmZTZiMDRhZmY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29kZVByb2ZpbGluZy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxpbmcuY3BwCkBAIC00NCwxMCArNDQs
NyBAQCB2b2xhdGlsZSBDb2RlUHJvZmlsZSogQ29kZVByb2ZpbGluZzo6c19wcm9maWxlU3RhY2sg
PSAwOwogQ29kZVByb2ZpbGluZzo6TW9kZSBDb2RlUHJvZmlsaW5nOjpzX21vZGUgPSBDb2RlUHJv
ZmlsaW5nOjpEaXNhYmxlZDsKIFdURjo6TWV0YUFsbG9jYXRvclRyYWNrZXIqIENvZGVQcm9maWxp
bmc6OnNfdHJhY2tlciA9IDA7CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdtaXNz
aW5nLW5vcmV0dXJuIgotI2VuZGlmCitJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigiLVdtaXNz
aW5nLW5vcmV0dXJuIikKIAogI2lmIEhBVkUoTUFDSElORV9DT05URVhUKQogLy8gSGVscGVyIGZ1
bmN0aW9uIHRvIHN0YXJ0ICYgc3RvcCB0aGUgdGltZXIuCkBAIC02Myw5ICs2MCw3IEBAIHN0YXRp
YyB2b2lkIHNldFByb2ZpbGVUaW1lcih1bnNpZ25lZCB1c2VjKQogfQogI2VuZGlmCiAKLSNpZiBD
T01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdO
T1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAKICNpZiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkKIHN0YXRp
YyB2b2lkIHByb2ZpbGluZ1RpbWVyKGludCwgc2lnaW5mb190Kiwgdm9pZCogdWFwKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNlY3Rpb25zLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvbnMuaAppbmRleCBlNjkyNGI3OTUzY2MzNjQ2
YmVlOTA4NDQxYTYzYzYzYzI5NGE3N2Q2Li4wMDZhZjc5MTdjZjY4OWZhZjEyYWYzYmE0NzZkMjEw
ZDhjZDdlNzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2Vj
dGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvbnMuaApA
QCAtMjcsMTAgKzI3LDkgQEAKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKIAotI2lmIENPTVBJ
TEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAv
LyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAor
SUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBXYXNtIHsKIApAQCAtMTA3LDggKzEwNiw4IEBAIGlubGluZSBjb25zdCBjaGFyKiBtYWtl
U3RyaW5nKFNlY3Rpb24gc2VjdGlvbikKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KIAot
I2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYg
QVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfRU5ECisjZW5kaWYKIAogI2VuZGlm
IC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weQppbmRl
eCBiYzU0YTIyMzc0NjVkYjljN2Q5MDNmMjJhOTU0MmExY2E2OGVmNTU1Li5mMzRiYjRjMmQwNjlj
N2RkOWJjNDg2OTgyMDNiZTE4ZDlmMTFkZjEzIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9nZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIucHkKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vZ2VuZXJhdGVXYXNtVmFsaWRhdGVJbmxpbmVzSGVhZGVy
LnB5CkBAIC0xMjcsMTAgKzEyNyw5IEBAIGNvbnRlbnRzID0gd2FzbS5oZWFkZXIgKyAiIiIKIAog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNT
RVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0Mp
ICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9U
WVBFX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIApA
QCAtMTYwLDkgKzE1OSw5IEBAIGF1dG8gVmFsaWRhdGU6OnN0b3JlKFN0b3JlT3BUeXBlIG9wLCBF
eHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSB2YWx1CiAKIH0gfSAvLyBuYW1l
c3BhY2UgSlNDOjpXYXNtCiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAot
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFT
U0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0VO
RAorI2VuZGlmCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9u
cy5jcHAKaW5kZXggZmU4ZmFjMDdkNmY3NTczZTAyZjI2OWRlNWIwYjUwZjJiZGU3ZGM1ZC4uZDk2
NmFkODZjODQ5ZmMzNTI2NmFlOWZiNDU0YmEwN2QyZDExNTk1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5j
cHAKQEAgLTc5LDEwICs3OSw5IEBAIGV4dGVybiAiQyIgewogc3RhdGljIHZvaWQgbG9nVG9TdGRl
cnIoY29uc3QgY2hhciogYnVmZmVyKQogewogI2lmIFVTRShBUFBMRV9TWVNURU1fTE9HKQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBhc2xfbG9nKDAsIDAsIEFTTF9MRVZFTF9OT1RJQ0UsICIlcyIsIGJ1
ZmZlcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICNlbmRpZgogICAgIGZwdXRzKGJ1ZmZlciwgc3RkZXJyKTsKIH0KQEAg
LTk0LDE0ICs5Myw5IEBAIHN0YXRpYyB2b2lkIHZwcmludGZfc3RkZXJyX2NvbW1vbihjb25zdCBj
aGFyKiBmb3JtYXQsIHZhX2xpc3QgYXJncykKICAgICBpZiAoc3Ryc3RyKGZvcm1hdCwgIiVAIikp
IHsKICAgICAgICAgYXV0byBjZkZvcm1hdCA9IGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVXaXRoQ1N0
cmluZyhudWxscHRyLCBmb3JtYXQsIGtDRlN0cmluZ0VuY29kaW5nVVRGOCkpOwogCi0jaWYgQ09N
UElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LW5vbmxpdGVyYWwiCi0jZW5kaWYKKyAgICAg
ICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVHSU4KICAgICAgICAgYXV0byBzdHIgPSBhZG9w
dENGKENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cyhudWxscHRyLCBudWxscHRy
LCBjZkZvcm1hdC5nZXQoKSwgYXJncykpOwotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgICAgIEFMTE9XX05PTkxJVEVSQUxfRk9S
TUFUX0VORAogICAgICAgICBDRkluZGV4IGxlbmd0aCA9IENGU3RyaW5nR2V0TWF4aW11bVNpemVG
b3JFbmNvZGluZyhDRlN0cmluZ0dldExlbmd0aChzdHIuZ2V0KCkpLCBrQ0ZTdHJpbmdFbmNvZGlu
Z1VURjgpOwogICAgICAgICBjb25zdGV4cHIgdW5zaWduZWQgSW5pdGlhbEJ1ZmZlclNpemUgeyAy
NTYgfTsKICAgICAgICAgVmVjdG9yPGNoYXIsIEluaXRpYWxCdWZmZXJTaXplPiBidWZmZXIobGVu
Z3RoICsgMSk7CkBAIC0xMTMsMTMgKzEwNywxMiBAQCBzdGF0aWMgdm9pZCB2cHJpbnRmX3N0ZGVy
cl9jb21tb24oY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiAgICAgfQogCiAjaWYg
VVNFKEFQUExFX1NZU1RFTV9MT0cpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICB2YV9saXN0IGNv
cHlPZkFyZ3M7CiAgICAgdmFfY29weShjb3B5T2ZBcmdzLCBhcmdzKTsKICAgICBhc2xfdmxvZygw
LCAwLCBBU0xfTEVWRUxfTk9USUNFLCBmb3JtYXQsIGNvcHlPZkFyZ3MpOwogICAgIHZhX2VuZChj
b3B5T2ZBcmdzKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZgogCiAgICAgLy8gRmFsbCB0aHJvdWdoIHRv
IHdyaXRlIHRvIHN0ZGVyciBpbiB0aGUgc2FtZSBtYW5uZXIgYXMgb3RoZXIgcGxhdGZvcm1zLgpA
QCAtMTQxLDEwICsxMzQsNyBAQCBzdGF0aWMgdm9pZCB2cHJpbnRmX3N0ZGVycl9jb21tb24oY29u
c3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiAgICAgdmZwcmludGYoc3RkZXJyLCBmb3Jt
YXQsIGFyZ3MpOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0
LW5vbmxpdGVyYWwiCi0jZW5kaWYKK0FMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lOCiAKIHN0
YXRpYyB2b2lkIHZwcmludGZfc3RkZXJyX3dpdGhfcHJlZml4KGNvbnN0IGNoYXIqIHByZWZpeCwg
Y29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiB7CkBAIC0xNzQsOSArMTY0LDcgQEAg
c3RhdGljIHZvaWQgdnByaW50Zl9zdGRlcnJfd2l0aF90cmFpbGluZ19uZXdsaW5lKGNvbnN0IGNo
YXIqIGZvcm1hdCwgdmFfbGlzdCBhcmcKICAgICB2cHJpbnRmX3N0ZGVycl9jb21tb24oZm9ybWF0
V2l0aE5ld2xpbmUuZGF0YSgpLCBhcmdzKTsKIH0KIAotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFO
RykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0FMTE9XX05PTkxJVEVSQUxf
Rk9STUFUX0VORAogCiBXVEZfQVRUUklCVVRFX1BSSU5URigxLCAyKQogc3RhdGljIHZvaWQgcHJp
bnRmX3N0ZGVycl9jb21tb24oY29uc3QgY2hhciogZm9ybWF0LCAuLi4pCkBAIC0zODUsMTQgKzM3
Myw5IEBAIHZvaWQgV1RGTG9nV2l0aExldmVsKFdURkxvZ0NoYW5uZWwqIGNoYW5uZWwsIFdURkxv
Z0xldmVsIGxldmVsLCBjb25zdCBjaGFyKiBmb3JtCiAgICAgdmFfbGlzdCBhcmdzOwogICAgIHZh
X3N0YXJ0KGFyZ3MsIGZvcm1hdCk7CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdm
b3JtYXQtbm9ubGl0ZXJhbCIKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JF
R0lOCiAgICAgV1RGTG9nKGNoYW5uZWwsIGZvcm1hdCwgYXJncyk7Ci0jaWYgQ09NUElMRVIoQ0xB
TkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBBTExPV19OT05M
SVRFUkFMX0ZPUk1BVF9FTkQKIAogICAgIHZhX2VuZChhcmdzKTsKIH0KQEAgLTQxNSwxNCArMzk4
LDkgQEAgdm9pZCBXVEZMb2coV1RGTG9nQ2hhbm5lbCogY2hhbm5lbCwgY29uc3QgY2hhciogZm9y
bWF0LCAuLi4pCiAgICAgdmFfbGlzdCBhcmdzOwogICAgIHZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7
CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNl
bmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lOCiAgICAgU3RyaW5nIGxvZ2dp
bmdTdHJpbmcgPSBTdHJpbmc6OmZvcm1hdChmb3JtYXQsIGFyZ3MpOwotI2lmIENPTVBJTEVSKENM
QU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgQUxMT1dfTk9O
TElURVJBTF9GT1JNQVRfRU5ECiAKICAgICB2YV9lbmQoYXJncyk7CiAKQEAgLTQ0MiwxNCArNDIw
LDkgQEAgdm9pZCBXVEZMb2dWZXJib3NlKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25z
dCBjaGFyKiBmdW5jdGlvbiwgV1RGTG9nQ2hhbm4KICAgICB2YV9saXN0IGFyZ3M7CiAgICAgdmFf
c3RhcnQoYXJncywgZm9ybWF0KTsKIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zv
cm1hdC1ub25saXRlcmFsIgotI2VuZGlmCisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVH
SU4KICAgICBXVEZMb2coY2hhbm5lbCwgZm9ybWF0LCBhcmdzKTsKLSNpZiBDT01QSUxFUihDTEFO
RykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJ
VEVSQUxfRk9STUFUX0VORAogCiAgICAgdmFfZW5kKGFyZ3MpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKaW5k
ZXggNWIyOGY4NmZhOTMxZDhjYTFhYzE4Mzg1ODVmMmYwZjJkMzVmNTlmNi4uOWMyZDNmY2ViZGFh
ZmUwNzYwZGY1ZTcwZjBkZjc4NjIwMzdhODg5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
QXNzZXJ0aW9ucy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaApAQCAtNjAyLDE1
ICs2MDIsMTQgQEAgaW5saW5lIHZvaWQgY29tcGlsZXJGZW5jZUZvckNyYXNoKCkKICNpZiBDT01Q
SUxFUihDTEFORykKIC8vIFRoaXMgd291bGQgYmUgYSBtYWNybyBleGNlcHQgdGhhdCBpdHMgdXNl
IG9mICNwcmFnbWEgd29ya3MgYmVzdCBhcm91bmQKIC8vIGEgZnVuY3Rpb24uIEhlbmNlIGl0IHVz
ZXMgbWFjcm8gbmFtaW5nIGNvbnZlbnRpb24uCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbWlzc2luZy1ub3JldHVybiIK
K0lHTk9SRV9DTEFOR19XQVJOSU5HX0JFR0lOKCItV21pc3Npbmctbm9yZXR1cm4iKQogc3RhdGlj
IGlubGluZSB2b2lkIFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpCiB7CiAgICAgLy8gVGhpcyAq
TVVTVCogYmUgYSByZWxlYXNlIGFzc2VydC4gV2UgdXNlIGl0IGluIHBsYWNlcyB3aGVyZSBpdCdz
IGJldHRlciB0byBjcmFzaCB0aGFuIHRvIGtlZXAKICAgICAvLyBnb2luZy4KICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
SUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAjZWxzZQogI2RlZmluZSBVTlJFQUNIQUJMRV9GT1Jf
UExBVEZPUk0oKSBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Db21waWxlci5o
CmluZGV4IDc5OGMzMDkwYzliMWMxODU4MGEzYTZiZTZmYWI2NWJkYWNlNmZmYWEuLjM3OWUzMmNh
ZjI3NjU4YjFhYTRkZDVhNGMwOGI5ZjU1ZGM5MmM0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0NvbXBpbGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvQ29tcGlsZXIuaApAQCAtMzg1LDQg
KzM4NSw5NSBAQAogI2RlZmluZSBfX2hhc19pbmNsdWRlKHBhdGgpIDAKICNlbmRpZgogCisvKiBJ
R05PUkVfV0FSTklORy4qICovCisKKy8vIENhbid0IHVzZSBXVEZfQ09OQ0FUKCkgYW5kIFNUUklO
R0laRSgpIGJlY2F1c2UgdGhleSBhcmUgZGVmaW5lZCBpbgorLy8gU3RkTGliRXh0cmFzLmggd2hp
Y2ggaW5jbHVkZXMgdXMKKyNkZWZpbmUgX0NPTVBJTEVSX0NPTkNBVF9JKGEsIGIpIGEgIyMgYgor
I2RlZmluZSBfQ09NUElMRVJfQ09OQ0FUKGEsIGIpIF9DT01QSUxFUl9DT05DQVRfSShhLCBiKQor
CisjZGVmaW5lIF9DT01QSUxFUl9TVFJJTkdJWkUoZXhwKSAjZXhwCisKKyNpZiBDT01QSUxFUihH
Q0NfT1JfQ0xBTkcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0JFR0lOX0NPTkQoY29uZCwgY29t
cGlsZXIsIHdhcm5pbmcpIFwKKyAgICBfUHJhZ21hKF9DT01QSUxFUl9TVFJJTkdJWkUoY29tcGls
ZXIgZGlhZ25vc3RpYyBwdXNoKSkgXAorICAgIF9DT01QSUxFUl9DT05DQVQoSUdOT1JFX1dBUk5J
TkdfQkVHSU5fSU1QTF8sIGNvbmQpKGNvbXBpbGVyLCB3YXJuaW5nKQorCisjZGVmaW5lIElHTk9S
RV9XQVJOSU5HX0JFR0lOX0lNUExfMShjb21waWxlciwgd2FybmluZykgXAorICAgIF9QcmFnbWEo
X0NPTVBJTEVSX1NUUklOR0laRShjb21waWxlciBkaWFnbm9zdGljIGlnbm9yZWQgd2FybmluZykp
CisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0JFR0lOX0lNUExfMChjb21waWxlciwgd2FybmluZykK
KyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfQkVHSU5fSU1QTF8oY29tcGlsZXIsIHdhcm5pbmcpCisK
KworI2RlZmluZSBJR05PUkVfV0FSTklOR19FTkRfSU1QTChjb21waWxlcikgX1ByYWdtYShfQ09N
UElMRVJfU1RSSU5HSVpFKGNvbXBpbGVyIGRpYWdub3N0aWMgcG9wKSkKKworI2lmIGRlZmluZWQo
X19oYXNfd2FybmluZykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfQkVHSU5fSU1QTChjb21waWxl
ciwgd2FybmluZykgSUdOT1JFX1dBUk5JTkdfQkVHSU5fQ09ORChfX2hhc193YXJuaW5nKHdhcm5p
bmcpLCBjb21waWxlciwgd2FybmluZykKKyNlbHNlCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0JF
R0lOX0lNUEwoY29tcGlsZXIsIHdhcm5pbmcpIElHTk9SRV9XQVJOSU5HX0JFR0lOX0NPTkQoMSwg
Y29tcGlsZXIsIHdhcm5pbmcpCisjZW5kaWYKKworI2VuZGlmIC8vIENPTVBJTEVSKEdDQ19PUl9D
TEFORykKKworCisjaWYgIWRlZmluZWQoSUdOT1JFX0dDQ19XQVJOSU5HX0JFR0lOKSAmJiBDT01Q
SUxFUihHQ0MpCisjZGVmaW5lIElHTk9SRV9HQ0NfV0FSTklOR19CRUdJTih3YXJuaW5nKSBJR05P
UkVfV0FSTklOR19CRUdJTl9JTVBMKEdDQywgd2FybmluZykKKyNkZWZpbmUgSUdOT1JFX0dDQ19X
QVJOSU5HX0VORCBJR05PUkVfV0FSTklOR19FTkRfSU1QTChHQ0MpCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKElHTk9SRV9HQ0NfV0FSTklOR19CRUdJTikKKyNkZWZpbmUgSUdOT1JFX0dDQ19XQVJO
SU5HX0JFR0lOKHdhcm5pbmcpCisjZGVmaW5lIElHTk9SRV9HQ0NfV0FSTklOR19FTkQKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4pICYmIENPTVBJTEVS
KENMQU5HKQorI2RlZmluZSBJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTih3YXJuaW5nKSBJR05P
UkVfV0FSTklOR19CRUdJTl9JTVBMKGNsYW5nLCB3YXJuaW5nKQorI2RlZmluZSBJR05PUkVfQ0xB
TkdfV0FSTklOR19FTkQgSUdOT1JFX1dBUk5JTkdfRU5EX0lNUEwoY2xhbmcpCisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKElHTk9SRV9DTEFOR19XQVJOSU5HX0JFR0lOKQorI2RlZmluZSBJR05PUkVf
Q0xBTkdfV0FSTklOR19CRUdJTih3YXJuaW5nKQorI2RlZmluZSBJR05PUkVfQ0xBTkdfV0FSTklO
R19FTkQKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoSUdOT1JFX1dBUk5JTkdfQkVHSU4pICYmIENP
TVBJTEVSKEdDQ19PUl9DTEFORykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfQkVHSU4od2Fybmlu
ZykgSUdOT1JFX1dBUk5JTkdfQkVHSU5fSU1QTChHQ0MsIHdhcm5pbmcpCisjZGVmaW5lIElHTk9S
RV9XQVJOSU5HX0VORCBJR05PUkVfV0FSTklOR19FTkRfSU1QTChHQ0MpCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKElHTk9SRV9XQVJOSU5HX0JFR0lOKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19C
RUdJTih3YXJuaW5nKQorI2RlZmluZSBJR05PUkVfV0FSTklOR19FTkQKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4pCisjZGVmaW5lIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOIElHTk9SRV9XQVJOSU5HX0JFR0lOKCIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKKyNkZWZpbmUgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5EIElHTk9SRV9XQVJOSU5HX0VORAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChB
TExPV19ORVdfQVBJX0JFR0lOKQorI2RlZmluZSBBTExPV19ORVdfQVBJX0JFR0lOIElHTk9SRV9D
TEFOR19XQVJOSU5HX0JFR0lOKCItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IikKKyNkZWZp
bmUgQUxMT1dfTkVXX0FQSV9FTkQgSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECisjZW5kaWYKKwor
I2lmICFkZWZpbmVkKEFMTE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4pCisjZGVmaW5lIEFMTE9X
X1VOVVNFRF9QQVJBTUVURVJfQkVHSU4gSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XdW51c2VkLXBh
cmFtZXRlciIpCisjZGVmaW5lIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJfRU5EIElHTk9SRV9XQVJO
SU5HX0VORAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChBTExPV19OT05MSVRFUkFMX0ZPUk1BVF9C
RUdJTikKKyNkZWZpbmUgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVHSU4gSUdOT1JFX1dBUk5J
TkdfQkVHSU4oIi1XZm9ybWF0LW5vbmxpdGVyYWwiKQorI2RlZmluZSBBTExPV19OT05MSVRFUkFM
X0ZPUk1BVF9FTkQgSUdOT1JFX1dBUk5JTkdfRU5ECisjZW5kaWYKKworI2lmICFkZWZpbmVkKElH
Tk9SRV9SRVRVUk5fVFlQRV9CRUdJTikKKyNkZWZpbmUgSUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lO
IElHTk9SRV9XQVJOSU5HX0JFR0lOKCItV3JldHVybi10eXBlIikKKyNkZWZpbmUgSUdOT1JFX1JF
VFVSTl9UWVBFX0VORCBJR05PUkVfV0FSTklOR19FTkQKKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
QUxMT1dfTlVMTF9BUkdVTUVOVF9CRUdJTikKKyNkZWZpbmUgQUxMT1dfTlVMTF9BUkdVTUVOVF9C
RUdJTiBJR05PUkVfV0FSTklOR19CRUdJTigiLVdub25udWxsIikKKyNkZWZpbmUgQUxMT1dfTlVM
TF9BUkdVTUVOVF9FTkQgSUdOT1JFX1dBUk5JTkdfRU5ECisjZW5kaWYKKwogI2VuZGlmIC8qIFdU
Rl9Db21waWxlcl9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NRDUuY3BwIGIvU291
cmNlL1dURi93dGYvTUQ1LmNwcAppbmRleCBlNDliYTFiZWI1YzgwZjdjZWM0MzNmZDgzMjcyMmMw
OTI1MjczMDkwLi5lMjcwYjc0MWFjNThiMDNjZDg5NjI4OGM5NzgwMDFiYmQwOTcxYWNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NRDUuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01ENS5j
cHAKQEAgLTU5LDI2ICs1OSwyMyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogTUQ1OjpNRDUoKQogewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0NfTUQ1X0luaXQoJm1fY29udGV4dCk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiB9CiAKIHZvaWQgTUQ1OjphZGRCeXRlcyhjb25zdCB1aW50OF90KiBpbnB1dCwgc2l6ZV90
IGxlbmd0aCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENDX01ENV9VcGRhdGUoJm1fY29u
dGV4dCwgaW5wdXQsIGxlbmd0aCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHZvaWQgTUQ1OjpjaGVja3N1
bShEaWdlc3QmIGhhc2gpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDQ19NRDVfRmluYWwo
aGFzaC5kYXRhKCksICZtX2NvbnRleHQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogICAgIAogI2Vsc2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L1ByaW50U3RyZWFtLmNwcAppbmRleCAzODBjNjdiY2JiOTBlMzY2ZDg2MTgwODc4MDczMjQ1ZTYx
M2U0YjRmLi4yZmE2NzdjNjBiYmQzMTRmY2NlMzIwOWQxYmU2NTBhMzAwZWRlYjY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9QcmludFN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
UHJpbnRTdHJlYW0uY3BwCkBAIC00NiwyMiArNDYsMTQgQEAgdm9pZCBQcmludFN0cmVhbTo6cHJp
bnRmKGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKQogCiB2b2lkIFByaW50U3RyZWFtOjpwcmludGZW
YXJpYWJsZUZvcm1hdChjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikKIHsKLSNpZiBDT01QSUxFUihD
TEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNlbGlmIENPTVBJTEVSKEdDQykK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3N1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdCIKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJ
VEVSQUxfRk9STUFUX0JFR0lOCisgICAgSUdOT1JFX0dDQ19XQVJOSU5HX0JFR0lOKCItV3N1Z2dl
c3QtYXR0cmlidXRlPWZvcm1hdCIpCiAgICAgdmFfbGlzdCBhcmdMaXN0OwogICAgIHZhX3N0YXJ0
KGFyZ0xpc3QsIGZvcm1hdCk7CiAgICAgdnByaW50Zihmb3JtYXQsIGFyZ0xpc3QpOwogICAgIHZh
X2VuZChhcmdMaXN0KTsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKLSNlbGlmIENPTVBJTEVSKEdDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9w
Ci0jZW5kaWYKKyAgICBJR05PUkVfR0NDX1dBUk5JTkdfRU5ECisgICAgQUxMT1dfTk9OTElURVJB
TF9GT1JNQVRfRU5ECiB9CiAKIHZvaWQgUHJpbnRTdHJlYW06OmZsdXNoKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1NIQTEuY3BwIGIvU291cmNlL1dURi93dGYvU0hBMS5jcHAKaW5kZXgg
MzA1ZjA3NzU4OWQ5YmEzZTY1MGZiM2U3NWNjZmVhZDZlMmQ1MmFmZi4uNjdiYmNjMmRkODU1MjE5
MjUxMTc5MTRjNDQxMTNiZjUyYjVjZDJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU0hB
MS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvU0hBMS5jcHAKQEAgLTQxLDI2ICs0MSwyMyBAQCBu
YW1lc3BhY2UgV1RGIHsKIAogU0hBMTo6U0hBMSgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICBDQ19TSEExX0luaXQoJm1fY29udGV4dCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHZvaWQgU0hBMTo6
YWRkQnl0ZXMoY29uc3QgdWludDhfdCogaW5wdXQsIHNpemVfdCBsZW5ndGgpCiB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBDQ19TSEExX1VwZGF0ZSgmbV9jb250ZXh0LCBpbnB1dCwgbGVuZ3Ro
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIH0KIAogdm9pZCBTSEExOjpjb21wdXRlSGFzaChEaWdlc3QmIGhhc2gp
CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDQ19TSEExX0ZpbmFsKGhhc2guZGF0YSgpLCAm
bV9jb250ZXh0KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0
aHJlYWRzLmNwcAppbmRleCBkZDAxYzZjNzZlZTY5ODU5YzRjY2Q4YjExYzZjOWE4Y2QxYzA0OTYy
Li5mZjg0MzdhNDgxYjg0OGIzMTE3OTcxOTQ1MTNjZDdhNTcyYzdlMDAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
VGhyZWFkaW5nUHRocmVhZHMuY3BwCkBAIC0xMDksMTUgKzEwOSw4IEBAIHN0YXRpYyBMYXp5TmV2
ZXJEZXN0cm95ZWQ8U2VtYXBob3JlPiBnbG9iYWxTZW1hcGhvcmVGb3JTdXNwZW5kUmVzdW1lOwog
c3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQgU2lnVGhyZWFkU3VzcGVuZFJlc3VtZSA9IFNJR1VT
UjE7CiBzdGF0aWMgc3RkOjphdG9taWM8VGhyZWFkKj4gdGFyZ2V0VGhyZWFkIHsgbnVsbHB0ciB9
OwogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0dXJuLWxvY2FsLWFkZHIiCi0jZW5kaWYg
Ly8gQ09NUElMRVIoR0NDKQotCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0dXJu
LXN0YWNrLWFkZHJlc3MiCi0jZW5kaWYgLy8gQ09NUElMRVIoQ0xBTkcpCitJR05PUkVfR0NDX1dB
Uk5JTkdfQkVHSU4oIi1XcmV0dXJuLWxvY2FsLWFkZHIiKQorSUdOT1JFX0NMQU5HX1dBUk5JTkdf
QkVHSU4oIi1XcmV0dXJuLXN0YWNrLWFkZHJlc3MiKQogCiBzdGF0aWMgTkVWRVJfSU5MSU5FIHZv
aWQqIGdldEFwcHJveGltYXRlU3RhY2tQb2ludGVyKCkKIHsKQEAgLTEyNiwxMyArMTE5LDggQEAg
c3RhdGljIE5FVkVSX0lOTElORSB2b2lkKiBnZXRBcHByb3hpbWF0ZVN0YWNrUG9pbnRlcigpCiAg
ICAgcmV0dXJuIGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhY2tMb2NhdGlvbik7CiB9CiAKLSNpZiBD
T01QSUxFUihHQ0MpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJ
TEVSKEdDQykKLQotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKENMQU5HKQorSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5E
CitJR05PUkVfR0NDX1dBUk5JTkdfRU5ECiAKIHZvaWQgVGhyZWFkOjpzaWduYWxIYW5kbGVyU3Vz
cGVuZFJlc3VtZShpbnQsIHNpZ2luZm9fdCosIHZvaWQqIHVjb250ZXh0KQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvVmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAppbmRl
eCA4NTE4NGI5NDA3YzY5Mzc3NjBhMTBjNjViMWFlNTcyMjdhOGY3ZmZmLi5kZjFlNTJlNDdlNWYx
ZjBjNjhhN2U2Njg5NDBlOWNiMTNiNzU1NzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9W
ZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaApAQCAtNTI5LDE0ICs1MjksOSBA
QCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoYnVmZmVyKCkpOwogCi0jaWYgQ09NUElM
RVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XaW52YWxpZC1vZmZzZXRvZiIKLSNlbmRpZgorICAgICAgICBJR05PUkVf
R0NDX1dBUk5JTkdfQkVHSU4oIi1XaW52YWxpZC1vZmZzZXRvZiIpCiAgICAgICAgIHN0YXRpY19h
c3NlcnQoKG9mZnNldG9mKFZlY3RvckJ1ZmZlciwgbV9pbmxpbmVCdWZmZXIpICsgc2l6ZW9mKG1f
aW5saW5lQnVmZmVyKSkgJSA4ID09IDAsICJJbmxpbmUgYnVmZmVyIGVuZCBuZWVkcyB0byBiZSBv
biA4IGJ5dGUgYm91bmRhcnkgZm9yIEFTYW4gYW5ub3RhdGlvbnMgdG8gd29yay4iKTsKLSNpZiBD
T01QSUxFUihHQ0MpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgICAg
IElHTk9SRV9HQ0NfV0FSTklOR19FTkQKIAogICAgICAgICBpZiAoYnVmZmVyKCkgPT0gaW5saW5l
QnVmZmVyKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9p
bmxpbmVCdWZmZXIpICsgc2l6ZW9mKG1faW5saW5lQnVmZmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3Ry
aW5nLmNwcAppbmRleCAyYjBlNWYzOWNkNDNjNmRmNDFhMGMxOGJjNGJiZDM4NGYxOTUxM2Q2Li5h
ODc1MjlmYzZiM2I4MmYyMzhhZTc1MGZmOWMyOTNkNjQ4YjJjM2U3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9X
VEZTdHJpbmcuY3BwCkBAIC00NTMsMTAgKzQ1Myw3IEBAIFdURl9BVFRSSUJVVEVfUFJJTlRGKDEs
IDApIHN0YXRpYyBTdHJpbmcgY3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cyhjb25zdCBjaGFy
CiAgICAgdmFfbGlzdCBhcmdzQ29weTsKICAgICB2YV9jb3B5KGFyZ3NDb3B5LCBhcmdzKTsKIAot
I2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2VuZGlm
CisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVHSU4KIAogI2lmIFVTRShDRikgJiYgIU9T
KFdJTkRPV1MpCiAgICAgaWYgKHN0cnN0cihmb3JtYXQsICIlQCIpKSB7CkBAIC00OTIsOSArNDg5
LDcgQEAgV1RGX0FUVFJJQlVURV9QUklOVEYoMSwgMCkgc3RhdGljIFN0cmluZyBjcmVhdGVXaXRo
Rm9ybWF0QW5kQXJndW1lbnRzKGNvbnN0IGNoYXIKICAgICB2c25wcmludGYoYnVmZmVyLmRhdGEo
KSwgYnVmZmVyLnNpemUoKSwgZm9ybWF0LCBhcmdzQ29weSk7CiAgICAgdmFfZW5kKGFyZ3NDb3B5
KTsKIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAot
I2VuZGlmCisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfRU5ECiAKICAgICByZXR1cm4gU3Ry
aW5nSW1wbDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihidWZmZXIuZGF0
YSgpKSwgbGVuKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxI
YW5kbGVyLmgKaW5kZXggMmFhMTE4MGRhZWZjNzhmMDY2ZmI3MTRmNzZlOTU2NjQwYjhjMTk2MS4u
MTFlZjc4YmI0ZWIzMWQ3ZTdkNzE3MmY4YWI1NDc0MGExOWI4ZDcxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNo
YW5uZWxIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKQEAgLTI5LDEyICsyOSwxMSBA
QAogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVs
SGFuZGxlci5oIgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorQUxMT1dfVU5VU0VEX1BBUkFN
RVRFUl9CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRjL2FwaS9kYXRhY2hhbm5lbGludGVyZmFjZS5o
PgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9F
TkQKIAogbmFtZXNwYWNlIHdlYnJ0YyB7CiBzdHJ1Y3QgRGF0YUNoYW5uZWxJbml0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDTWVkaWFFbmRwb2ludC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCmluZGV4IGI3MTc0OTVmMThjNWNiM2M3
OGMyMmJmYWI5ZWFkZWVlNGVhZjczZDguLmVjOWIxMGQ0ZmM2NjE1YzJhMWVhZTQwZjZiZTE1MjE4
NzIzZmY2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgKQEAg
LTM0LDE1ICszNCwxNCBAQAogI2luY2x1ZGUgIlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5o
IgogI2luY2x1ZGUgPFRpbWVyLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitBTExPV19V
TlVTRURfUEFSQU1FVEVSX0JFR0lOCiAKICNpbmNsdWRlIDx3ZWJydGMvYXBpL2pzZXAuaD4KICNp
bmNsdWRlIDx3ZWJydGMvYXBpL3BlZXJjb25uZWN0aW9uaW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8
d2VicnRjL3BjL3BlZXJjb25uZWN0aW9uZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9wYy9y
dGNzdGF0c2NvbGxlY3Rvci5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorQUxMT1df
VU5VU0VEX1BBUkFNRVRFUl9FTkQKIAogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY3J5cHRvL2NvbW1vbmNyeXB0by9DcnlwdG9EaWdlc3RDb21tb25Dcnlw
dG8uY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8vY29tbW9uY3J5cHRvL0NyeXB0
b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAKaW5kZXggYjQ3ZjhlZWM2ODgzN2M3MjdkNWY4ZmNjOTcx
NmRjYmQzY2FjNjUzZS4uMWNlNTc5N2ZlZjYyOTczZWVkYjQ3MzQ4OWMyMTQ5N2M3YmJmYjQ2MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8vY29tbW9uY3J5cHRvL0Ny
eXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
cnlwdG8vY29tbW9uY3J5cHRvL0NyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAKQEAgLTk3LDEw
ICs5Nyw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9EaWdlc3Q+IENyeXB0b0RpZ2VzdDo6Y3Jl
YXRlKENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtIGFsZ29yCiAgICAgY2FzZSBDcnlwdG9EaWdlc3Q6
OkFsZ29yaXRobTo6U0hBXzE6IHsKICAgICAgICAgQ0NfU0hBMV9DVFgqIGNvbnRleHQgPSBuZXcg
Q0NfU0hBMV9DVFg7CiAgICAgICAgIGRpZ2VzdC0+bV9jb250ZXh0LT5jY0NvbnRleHQgPSBjb250
ZXh0OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBDQ19TSEExX0luaXQoY29udGV4
dCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogICAgICAgICByZXR1cm4gZGlnZXN0OwogICAgIH0KICAgICBj
YXNlIENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMjI0OiB7CkBAIC0xMzQsMTAgKzEzMyw5
IEBAIHZvaWQgQ3J5cHRvRGlnZXN0OjphZGRCeXRlcyhjb25zdCB2b2lkKiBpbnB1dCwgc2l6ZV90
IGxlbmd0aCkKIHsKICAgICBzd2l0Y2ggKG1fY29udGV4dC0+YWxnb3JpdGhtKSB7CiAgICAgY2Fz
ZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzE6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgICAgIENDX1NIQTFfVXBkYXRlKHRvU0hBMUNvbnRleHQobV9jb250ZXh0LmdldCgpKSwg
aW5wdXQsIGxlbmd0aCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICByZXR1cm47CiAgICAgY2Fz
ZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzIyNDoKICAgICAgICAgQ0NfU0hBMjI0X1Vw
ZGF0ZSh0b1NIQTIyNENvbnRleHQobV9jb250ZXh0LmdldCgpKSwgaW5wdXQsIGxlbmd0aCk7CkBA
IC0xNjAsMTAgKzE1OCw5IEBAIFZlY3Rvcjx1aW50OF90PiBDcnlwdG9EaWdlc3Q6OmNvbXB1dGVI
YXNoKCkKICAgICBzd2l0Y2ggKG1fY29udGV4dC0+YWxnb3JpdGhtKSB7CiAgICAgY2FzZSBDcnlw
dG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzE6CiAgICAgICAgIHJlc3VsdC5yZXNpemUoQ0NfU0hB
MV9ESUdFU1RfTEVOR1RIKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgQ0NfU0hB
MV9GaW5hbChyZXN1bHQuZGF0YSgpLCB0b1NIQTFDb250ZXh0KG1fY29udGV4dC5nZXQoKSkpOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFs
Z29yaXRobTo6U0hBXzIyNDoKICAgICAgICAgcmVzdWx0LnJlc2l6ZShDQ19TSEEyMjRfRElHRVNU
X0xFTkdUSCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9B
VktpdFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZLaXRTUEkuaApp
bmRleCA5MTQ1MTdlZmU3Y2IxNGI1ZmFmMmM1YjFiNjdmMjM2NmM2MmM2OTk1Li4xYjkwZTBkNjAy
NGEzOTk2YjUzMGUyM2RmZTJiNjVkYmMxOTY1ZDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9jb2NvYS9BVktpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL0FWS2l0U1BJLmgKQEAgLTM4LDEwICszOCw5IEBACiAjZW5kaWYKIAogI2lt
cG9ydCA8QVZLaXQvQVZQbGF5ZXJDb250cm9sbGVyLmg+Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xb2JqYy1wcm9wZXJ0
eS1uby1hdHRyaWJ1dGUiCitJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigiLVdvYmpjLXByb3Bl
cnR5LW5vLWF0dHJpYnV0ZSIpCiAjaW1wb3J0IDxBVktpdC9BVlBsYXllckxheWVyVmlldy5oPgot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAj
aW1wb3J0IDxBVktpdC9BVlBsYXllclZpZXdDb250cm9sbGVyX1ByaXZhdGUuaD4KICNpbXBvcnQg
PEFWS2l0L0FWUGxheWVyVmlld0NvbnRyb2xsZXJfV2ViS2l0T25seS5oPgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oCmlu
ZGV4IDU1YTY0ODg2YTg4MGY1YjkwZWEyZGE2Y2Y1MWFiYTRiYTY3YzQyNWQuLjA3MDZlZmU4NWE2
Y2VlYjEyNDRkMWU4OTdmYTM4NGE3MWZkY2VjZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oCkBAIC04NiwxMCArODYs
OSBAQCBpbmxpbmUgTlNEYXRhICpfTnVsbGFibGUgaW5zZWN1cmVseUFyY2hpdmVkRGF0YVdpdGhS
b290T2JqZWN0KGlkIF9Ob25udWxsIG9iamVjdAogCiBpbmxpbmUgaWQgX051bGxhYmxlIGluc2Vj
dXJlbHlVbmFyY2hpdmVPYmplY3RGcm9tRGF0YShOU0RhdGEgKiBfTm9ubnVsbCBkYXRhKQogewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgcmV0dXJuIFtOU0tleWVkVW5hcmNoaXZlciB1bmFyY2hp
dmVPYmplY3RXaXRoRGF0YTpkYXRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogaW5saW5lIGlkIF9OdWxs
YWJsZSB1bmFyY2hpdmVkT2JqZWN0T2ZDbGFzc2VzRnJvbURhdGEoTlNTZXQ8Q2xhc3M+ICogX05v
bm51bGwgY2xhc3NlcywgTlNEYXRhICogX05vbm51bGwgZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvaW9zL01lZGlhUGxheWVyU1BJLmgKaW5kZXggZGQ4N2Y5M2FmNzAyNWJj
YTZkMTMzNDU3YjNmNmIxMjA2YTAxNDRmOC4uODE3ZDA5YTI4NzM0ODFjYzcxYzI3ZTM5Y2MzNmRi
YWQ5OTkyMWI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL01l
ZGlhUGxheWVyU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL01lZGlh
UGxheWVyU1BJLmgKQEAgLTc1LDIxICs3NSwxOSBAQCBlbnVtIHsKIH07CiB0eXBlZGVmIE5TVUlu
dGVnZXIgTVBBVkl0ZW1UeXBlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogQGludGVyZmFjZSBNUEF1ZGlv
VmlkZW9Sb3V0aW5nUG9wb3ZlckNvbnRyb2xsZXIgOiBVSVBvcG92ZXJDb250cm9sbGVyCiBAZW5k
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKIAogQGludGVyZmFjZSBNUEF1ZGlvVmlkZW9Sb3V0aW5nUG9wb3ZlckNvbnRyb2xs
ZXIgKCkKIC0gKGlkKWluaXRXaXRoVHlwZTooTVBBVkl0ZW1UeXBlKWF2SXRlbVR5cGU7CiBAZW5k
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiBAaW50ZXJmYWNlIE1QQVZSb3V0aW5nU2hlZXQgOiBVSVZpZXcK
IEBlbmQKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogCiBAaW50ZXJmYWNlIE1QQVZSb3V0aW5nU2hlZXQgKCkKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBhc3NpZ24sIHNldHRlcj1zZXRBVkl0ZW1UeXBlOikgTVBBVkl0ZW1UeXBl
IGF2SXRlbVR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9t
YWMvUG9wdXBNZW51Lm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVw
TWVudS5tbQppbmRleCAyMjMzNTc1ZGMzNGU3NjFlODYxY2JiNDUyODdiNzMzZjJjZDRhYzIzLi45
YmJkNDYxOWEzZTY2YTY5YjNhYWI5ZGZhYWU3YTdlNWNjZGZjZjU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUubW0KQEAgLTQ0LDEwICs0NCw5IEBA
IG5hbWVzcGFjZSBQQUwgewogdm9pZCBwb3BVcE1lbnUoTlNNZW51ICptZW51LCBOU1BvaW50IGxv
Y2F0aW9uLCBmbG9hdCB3aWR0aCwgTlNWaWV3ICp2aWV3LCBpbnQgc2VsZWN0ZWRJdGVtLCBOU0Zv
bnQgKmZvbnQsIE5TQ29udHJvbFNpemUgY29udHJvbFNpemUsIGJvb2wgdXNlc0N1c3RvbUFwcGVh
cmFuY2UpCiB7CiAgICAgTlNSZWN0IGFkanVzdGVkUG9wdXBCb3VuZHMgPSBbdmlldy53aW5kb3cg
Y29udmVydFJlY3RUb1NjcmVlbjpbdmlldyBjb252ZXJ0UmVjdDp2aWV3LmJvdW5kcyB0b1ZpZXc6
bmlsXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAoY29udHJvbFNpemUgIT0gTlNNaW5p
Q29udHJvbFNpemUpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIGFkanVzdGVkUG9wdXBCb3Vu
ZHMub3JpZ2luLnggLT0gMzsKICAgICAgICAgYWRqdXN0ZWRQb3B1cEJvdW5kcy5vcmlnaW4ueSAt
PSAxOwogICAgICAgICBhZGp1c3RlZFBvcHVwQm91bmRzLnNpemUud2lkdGggKz0gNjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9XZWJQYW5lbC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9XZWJQYW5lbC5tbQppbmRleCAzMTdiZGEw
MmU3YjdlYjI3YTliZDJiNTk3OTU2ZjU0MTJkYWNmMTI2Li5jNmU0NjBjZjBlZjY1MTliNjExMDU5
ZTMxNTMyNjM0ZTM1ZDdlZWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5
c3RlbS9tYWMvV2ViUGFuZWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0v
bWFjL1dlYlBhbmVsLm1tCkBAIC0zNCwxMCArMzQsOSBAQAogCiAtIChpbnN0YW5jZXR5cGUpaW5p
dAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgc3RhdGljIE5TVUludGVnZXIgc3R5bGVNYXNr
ID0gTlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2sgfCBOU0Nsb3NhYmxlV2luZG93TWFzayB8IE5T
UmVzaXphYmxlV2luZG93TWFzayAgfCBOU1RpdGxlZFdpbmRvd01hc2sgfCBOU1NtYWxsV2luZG93
TWFzayB8IE5TU2lkZVV0aWxpdHlXaW5kb3dNYXNrIHwgTlNVdGlsaXR5V2luZG93TWFzazsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICAgICAKICAgICByZXR1cm4gW3N1cGVyIGluaXRXaXRoQ29udGVudFJlY3Q6TlNa
ZXJvUmVjdCBzdHlsZU1hc2s6c3R5bGVNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJl
ZCBkZWZlcjpZRVNdOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggMzk5MTc3ZjM1M2UyZjgwOWQyZGZjNzhhYjY2
NTQ4YWFiOTI5MzU5NC4uZDQ3NmUwYWU3MzRjYzE1N2NkYmM4ZmFkNTgzYmRjOGExZmFmYWU2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENh
Y2hlTWFjLm1tCkBAIC0zNDYsMTAgKzM0Niw5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAg
ICAgCiAgICAgLy8gTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbiB3aWxsIGNhbGwgdGhp
cyBtZXRob2QsIChidXQgbm90IHdoZW4gcnVubmluZyBEUlQpLCBzbyBBU1NFUlQgaGVyZSB0byBt
YWtlIHN1cmUgaXQgZG9lcyBub3QgY3Jhc2guCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ2NjYyCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBBU1NFUlQo
W29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRdIHx8IHRydWUpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogCiAgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iai0+d3JhcHBlcigp
LCBtYWNOb3RpZmljYXRpb24sIG5pbCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQppbmRleCBjY2U5
NzJjZmNkMDJlNTc1NGVjY2VjYzU3OGZhNGI0MGE5OTY4YzI2Li44ZDgxNzIxYjBiM2MzZDFjMmU0
ZjVhZTdiOTUwNTg4ZTg5NzQyMjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KQEAgLTU1LDEwICs1
NSw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6b3ZlcnJpZGVBdHRhY2htZW50UGFyZW50
KEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudCkKICAgICAgICAgcGFyZW50V3JhcHBlciA9IHBh
cmVudC0+d3JhcHBlcigpOwogICAgIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1t3cmFw
cGVyKCkgYXR0YWNobWVudFZpZXddIGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVlOnBhcmVu
dFdyYXBwZXIgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eVBhcmVudEF0dHJpYnV0ZV07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiB9CiAgICAgCiBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxp
dHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3QKQEAgLTY5LDExICs2OCwxMCBAQCBib29sIEFjY2Vz
c2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3QKICAg
ICBpZiAoaXNBdHRhY2htZW50KCkgJiYgKHdpZGdldCA9IHdpZGdldEZvckF0dGFjaG1lbnRWaWV3
KCkpICYmIHdpZGdldC0+aXNGcmFtZVZpZXcoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChbd3JhcHBlcigpIGF0dGFjaG1lbnRWaWV3XSkKICAg
ICAgICAgcmV0dXJuIFtbd3JhcHBlcigpIGF0dGFjaG1lbnRWaWV3XSBhY2Nlc3NpYmlsaXR5SXNJ
Z25vcmVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIC8vIEF0dGFjaG1lbnRzIGFyZSBpZ25vcmVkIGJ5
IGRlZmF1bHQgKHVubGVzcyB3ZSBkZXRlcm1pbmUgdGhhdCB3ZSBzaG91bGQgZXhwb3NlIHRoZW0p
LgogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bQppbmRleCAwNGMxODZhMDhhYzhhZjI4NjA3YzQxYmE3ZWRkMGEwMTdjOTJiZjY2Li42NTAzZDQw
NmNlODMwMjljY2ZmZTVkM2Y0YzE5NDAwMTZlM2NkYjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMTY3OSwxMCArMTY3OSw5IEBAIHN0YXRpYyBpZCB0ZXh0
TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9ucyhBWE9iamVjdENhY2hlKiBjYWNoZSwgY29u
c3QgVmlzaWJsCiAgICAgV2lkZ2V0KiB3aWRnZXQgPSBtX29iamVjdC0+d2lkZ2V0KCk7CiAgICAg
aWYgKCF3aWRnZXQpCiAgICAgICAgIHJldHVybiBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICByZXR1cm4gWyh3aWRnZXQtPnBsYXRmb3JtV2lkZ2V0KCkpIGFjY2Vzc2liaWxpdHlBdHRyaWJ1
dGVWYWx1ZTogTlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRyaWJ1dGVdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
fQogCiAtIChpZClyZW1vdGVBY2Nlc3NpYmlsaXR5UGFyZW50T2JqZWN0CkBAIC0xNzUxLDEwICsx
NzUwLDkgQEAgc3RhdGljIE5TTXV0YWJsZUFycmF5ICpjb252ZXJ0U3RyaW5nc1RvTlNBcnJheShj
b25zdCBWZWN0b3I8U3RyaW5nPiYgdmVjdG9yKQogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVW
aWV3LT5wbGF0Zm9ybVdpZGdldCgpKSB7CiAgICAgICAgIE5TUG9pbnQgbnNQb2ludCA9IChOU1Bv
aW50KXBvaW50OwogICAgICAgICBOU1ZpZXcqIHZpZXcgPSBmcmFtZVZpZXctPmRvY3VtZW50Vmll
dygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBuc1BvaW50ID0gW1t2aWV3IHdp
bmRvd10gY29udmVydEJhc2VUb1NjcmVlbjpbdmlldyBjb252ZXJ0UG9pbnQ6bnNQb2ludCB0b1Zp
ZXc6bmlsXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICByZXR1cm4gQ0dQb2ludE1ha2UobnNQ
b2ludC54LCBuc1BvaW50LnkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIApAQCAtMjAwNiwxMSAr
MjAwNCwxMCBAQCBzdGF0aWMgTlNTdHJpbmcgKnJvbGVWYWx1ZVRvTlNTdHJpbmcoQWNjZXNzaWJp
bGl0eVJvbGUgdmFsdWUpCiAKIC0gKE5TU3RyaW5nKilyb2xlCiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICBpZiAobV9vYmplY3QtPmlzQXR0YWNobWVudCgpKQogICAgICAgICByZXR1cm4gW1tz
ZWxmIGF0dGFjaG1lbnRWaWV3XSBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3Np
YmlsaXR5Um9sZUF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgQWNjZXNzaWJpbGl0eVJvbGUg
cm9sZSA9IG1fb2JqZWN0LT5yb2xlVmFsdWUoKTsKIAogICAgIGlmIChyb2xlID09IEFjY2Vzc2li
aWxpdHlSb2xlOjpMYWJlbCAmJiBpczxBY2Nlc3NpYmlsaXR5TGFiZWw+KCptX29iamVjdCkgJiYg
ZG93bmNhc3Q8QWNjZXNzaWJpbGl0eUxhYmVsPigqbV9vYmplY3QpLmNvbnRhaW5zT25seVN0YXRp
Y1RleHQoKSkKQEAgLTIwMzAsOCArMjAyNyw3IEBAIHN0YXRpYyBOU1N0cmluZyAqcm9sZVZhbHVl
VG9OU1N0cmluZyhBY2Nlc3NpYmlsaXR5Um9sZSB2YWx1ZSkKICAgICByZXR1cm4gTlNBY2Nlc3Np
YmlsaXR5VW5rbm93blJvbGU7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAtIChOU1N0cmluZyopc3Vi
cm9sZQogewogICAgIGlmIChtX29iamVjdC0+aXNQYXNzd29yZEZpZWxkKCkpCkBAIC0yMjQxLDE5
ICsyMjM3LDE4IEBAIHN0YXRpYyBOU1N0cmluZyAqcm9sZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3Np
YmlsaXR5Um9sZSB2YWx1ZSkKICAgICAKICAgICByZXR1cm4gbmlsOwogfQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIC0g
KE5TU3RyaW5nKilyb2xlRGVzY3JpcHRpb24KIHsKICAgICBpZiAoIW1fb2JqZWN0KQogICAgICAg
ICByZXR1cm4gbmlsOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBhdHRhY2htZW50cyBo
YXZlIHRoZSBBWEltYWdlIHJvbGUsIGJ1dCBhIGRpZmZlcmVudCBzdWJyb2xlCiAgICAgaWYgKG1f
b2JqZWN0LT5pc0F0dGFjaG1lbnQoKSkKICAgICAgICAgcmV0dXJuIFtbc2VsZiBhdHRhY2htZW50
Vmlld10gYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVJvbGVEZXNj
cmlwdGlvbkF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcm
IG92ZXJyaWRlUm9sZURlc2NyaXB0aW9uID0gbV9vYmplY3QtPnJvbGVEZXNjcmlwdGlvbigpOwog
ICAgIGlmICghb3ZlcnJpZGVSb2xlRGVzY3JpcHRpb24uaXNOdWxsKCkgJiYgIW92ZXJyaWRlUm9s
ZURlc2NyaXB0aW9uLmlzRW1wdHkoKSkKQEAgLTM0NzIsOCArMzQ2Nyw3IEBAIHN0YXRpYyBOU1N0
cmluZyAqcm9sZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3NpYmlsaXR5Um9sZSB2YWx1ZSkKICAgICBy
ZXR1cm4gcGFyYW1BdHRyczsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogLSAodm9pZClhY2Nlc3Np
YmlsaXR5UGVyZm9ybVByZXNzQWN0aW9uCiB7CkBAIC0zNTMxLDcgKzM1MjUsNyBAQCBzdGF0aWMg
TlNTdHJpbmcgKnJvbGVWYWx1ZVRvTlNTdHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUgdmFsdWUpCiAg
ICAgICAgIG1fb2JqZWN0LT5kZWNyZW1lbnQoKTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIC0gKHZvaWQpYWNj
ZXNzaWJpbGl0eVBlcmZvcm1TaG93TWVudUFjdGlvbgogewpAQCAtNDM0Myw4ICs0MzM3LDcgQEAg
c3RhdGljIHZvaWQgZm9ybWF0Rm9yRGVidWdnZXIoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2Um
IHJhbmdlLCBjaGFyKiBidWZmZXIsIHUKICAgICByZXR1cm4gTlNOb3RGb3VuZDsKIH0KIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KIC0gKE5TVUludGVnZXIpYWNjZXNzaWJpbGl0eUFycmF5QXR0cmlidXRlQ291
bnQ6KE5TU3RyaW5nICopYXR0cmlidXRlCiB7CiAgICAgaWYgKCFbc2VsZiB1cGRhdGVPYmplY3RC
YWNraW5nU3RvcmVdKQpAQCAtNDM2NSw3ICs0MzU4LDcgQEAgc3RhdGljIHZvaWQgZm9ybWF0Rm9y
RGVidWdnZXIoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHJhbmdlLCBjaGFyKiBidWZmZXIs
IHUKICAgICAKICAgICByZXR1cm4gW3N1cGVyIGFjY2Vzc2liaWxpdHlBcnJheUF0dHJpYnV0ZUNv
dW50OmF0dHJpYnV0ZV07CiB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogLSAoTlNBcnJheSAqKWFjY2Vzc2liaWxpdHlB
cnJheUF0dHJpYnV0ZVZhbHVlczooTlNTdHJpbmcgKilhdHRyaWJ1dGUgaW5kZXg6KE5TVUludGVn
ZXIpaW5kZXggbWF4Q291bnQ6KE5TVUludGVnZXIpbWF4Q291bnQKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbSBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQppbmRleCAwMmI4NDI4M2VkMzliMTQx
MmRhMGMwMTMzYTAyNzM5YTBiNjQyMzM0Li5iNWVjMTBkZTNlZjBlMWM1NDY2MjUyYjk1NzJmZjI1
N2MwNDIzNDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3Jp
cHRPYmplY3QubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvV2ViU2NyaXB0T2Jq
ZWN0Lm1tCkBAIC03MDIsMTMgKzcwMiwxMiBAQCBzdGF0aWMgdm9pZCBnZXRMaXN0RnJvbU5TQXJy
YXkoRXhlY1N0YXRlICpleGVjLCBOU0FycmF5ICphcnJheSwgUm9vdE9iamVjdCogcm9vdAogICAg
IHJldHVybiBzZWxmOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xb2JqYy1taXNzaW5nLXN1cGVyLWNhbGxzIgor
SUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1Xb2JqYy1taXNzaW5nLXN1cGVyLWNhbGxzIikK
IC0gKHZvaWQpZGVhbGxvYwogewogICAgIHJldHVybjsKIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKK0lHTk9SRV9DTEFOR19XQVJOSU5HX0VORAogCiArIChXZWJVbmRlZmluZWQgKil1
bmRlZmluZWQKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNf
Y2xhc3MubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2NsYXNzLm1tCmluZGV4
IGNlMWVmNjU1N2EwNzYzYTdkMzQzMGEzYmY5ODZhMTk4N2Y4Y2IzNTYuLjNlYzk2ZWMwOGU2OWNk
ZGRjM2NmN2QxMmU3MjhkNDJjNWUxYTZkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9vYmpjL29iamNfY2xhc3MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMv
b2JqY19jbGFzcy5tbQpAQCAtMTYzLDEwICsxNjMsOSBAQCBGaWVsZCogT2JqY0NsYXNzOjpmaWVs
ZE5hbWVkKFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEluc3RhbmNlKiBpbnN0YW5jZSkgY29u
cwogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZmllbGROYW1lID0gYWRvcHRDRihDRlN0cmlu
Z0NyZWF0ZVdpdGhDU3RyaW5nKE5VTEwsIGpzTmFtZS5kYXRhKCksIGtDRlN0cmluZ0VuY29kaW5n
QVNDSUkpKTsKICAgICBpZCB0YXJnZXRPYmplY3QgPSAoc3RhdGljX2Nhc3Q8T2JqY0luc3RhbmNl
Kj4oaW5zdGFuY2UpKS0+Z2V0T2JqZWN0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3VuZGVjbGFyZWQtc2VsZWN0b3IiCisgICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XdW5kZWNs
YXJlZC1zZWxlY3RvciIpCiAgICAgaWQgYXR0cmlidXRlcyA9IFt0YXJnZXRPYmplY3QgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhdHRyaWJ1dGVLZXlzKV0gPyBbdGFyZ2V0T2JqZWN0IHBl
cmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IoYXR0cmlidXRlS2V5cyldIDogbmlsOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0VORAogI2Vsc2UKICAgICBp
ZCBhdHRyaWJ1dGVzID0gW3RhcmdldE9iamVjdCBhdHRyaWJ1dGVLZXlzXTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NvbW1vbkNyeXB0b1V0aWxpdGllcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmNwcAppbmRleCBl
MDQ5MmVlNjcxMTBmODhjNzMxNTIxNmQ2YzY4YjYzMzQ5NmQ3N2EwLi43MmZjYzFkYjI3YTNkMTcy
NmNiZmE2Nzc2MjM3Njk3MjExYzAzZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
Q29tbW9uQ3J5cHRvVXRpbGl0aWVzLmNwcApAQCAtNTIsMTAgKzUyLDkgQEAgYm9vbCBnZXRDb21t
b25DcnlwdG9EaWdlc3RBbGdvcml0aG0oQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoRnVu
Y3Rpb24sIENDRGkKIHsKICAgICBzd2l0Y2ggKGhhc2hGdW5jdGlvbikgewogICAgIGNhc2UgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzE6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgICAgIGFsZ29yaXRobSA9IGtDQ0RpZ2VzdFNIQTE7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8y
MjQ6CiAgICAgICAgIGFsZ29yaXRobSA9IGtDQ0RpZ2VzdFNIQTIyNDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTU1hYy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwCmlu
ZGV4IGIyYmMyNDg4OGM3ZWU3NThlOWRiNDAyMzk3YThmYTZlNGYxZDFlMDguLjExZjQ2NzAxMDQ1
ZTkwMTM5ZjVkYTMyOTdhOGQ5ZTkwMDZmYzY1YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTU1hYy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNTWFjLmNwcApAQCAtNDAsMTAg
KzQwLDkgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gZW5jcnlwdEFFU19H
Q00oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpdiwgY28KICAgICBWZWN0b3I8dWludDhfdD4gY2lw
aGVyVGV4dChwbGFpblRleHQuc2l6ZSgpKTsgLy8gUGVyIHNlY3Rpb24gNS4yLjEuMjogaHR0cDov
L252bHB1YnMubmlzdC5nb3YvbmlzdHB1YnMvTGVnYWN5L1NQL25pc3RzcGVjaWFscHVibGljYXRp
b244MDAtMzhkLnBkZgogICAgIFZlY3Rvcjx1aW50OF90PiB0YWcoZGVzaXJlZFRhZ0xlbmd0aElu
Qnl0ZXMpOwogICAgIC8vIHRhZ0xlbmd0aCBpcyBhY3R1YWwgYW4gaW5wdXQgPHJkYXI6Ly9wcm9i
bGVtLzMwNjYwMDc0PgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0NDcnlwdG9yU3RhdHVzIHN0
YXR1cyA9IENDQ3J5cHRvckdDTShrQ0NFbmNyeXB0LCBrQ0NBbGdvcml0aG1BRVMsIGtleS5kYXRh
KCksIGtleS5zaXplKCksIGl2LmRhdGEoKSwgaXYuc2l6ZSgpLCBhZGRpdGlvbmFsRGF0YS5kYXRh
KCksIGFkZGl0aW9uYWxEYXRhLnNpemUoKSwgcGxhaW5UZXh0LmRhdGEoKSwgcGxhaW5UZXh0LnNp
emUoKSwgY2lwaGVyVGV4dC5kYXRhKCksIHRhZy5kYXRhKCksICZkZXNpcmVkVGFnTGVuZ3RoSW5C
eXRlcyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IE9wZXJhdGlvbkVycm9yIH07CiAKQEAgLTU4LDEwICs1Nyw5IEBAIHN0YXRpYyBFeGNl
cHRpb25PcjxWZWN0b3I8dWludDhfdD4+IGRlY3lwdEFFU19HQ00oY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiBpdiwgY29uCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHRhZyhkZXNpcmVkVGFnTGVuZ3RoSW5C
eXRlcyk7CiAgICAgc2l6ZV90IG9mZnNldCA9IGNpcGhlclRleHQuc2l6ZSgpIC0gZGVzaXJlZFRh
Z0xlbmd0aEluQnl0ZXM7CiAgICAgLy8gdGFnTGVuZ3RoIGlzIGFjdHVhbCBhbiBpbnB1dCA8cmRh
cjovL3Byb2JsZW0vMzA2NjAwNzQ+Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDQ0NyeXB0b3JT
dGF0dXMgc3RhdHVzID0gQ0NDcnlwdG9yR0NNKGtDQ0RlY3J5cHQsIGtDQ0FsZ29yaXRobUFFUywg
a2V5LmRhdGEoKSwga2V5LnNpemUoKSwgaXYuZGF0YSgpLCBpdi5zaXplKCksIGFkZGl0aW9uYWxE
YXRhLmRhdGEoKSwgYWRkaXRpb25hbERhdGEuc2l6ZSgpLCBjaXBoZXJUZXh0LmRhdGEoKSwgb2Zm
c2V0LCBwbGFpblRleHQuZGF0YSgpLCB0YWcuZGF0YSgpLCAmZGVzaXJlZFRhZ0xlbmd0aEluQnl0
ZXMpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBPcGVyYXRpb25FcnJvciB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbQppbmRleCBhNTE3ZjkyMmUwNDhk
MTQxNzdjNGY2ZjhjNDM2MjMxMzA4ODE0OTY5Li40YWQ3YWIwNDBmMWM3Y2M5YWNlZTQyNDdlYWM4
YTQ4MGYzZmQ3NzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL1Nlcmlh
bGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMv
U2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0KQEAgLTIyMCwxNSArMjIwLDE0IEBAIGJvb2wg
d3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBtYXN0ZXJLZXks
IGNvbnN0IFZlY3Rvcjx1aW50CiAgICAgc2l6ZV90IHRhZ0xlbmd0aCA9IDE2OwogICAgIHVpbnQ4
X3QgdGFnW3RhZ0xlbmd0aF07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHN0YXR1cyA9IEND
Q3J5cHRvckdDTShrQ0NFbmNyeXB0LCBrQ0NBbGdvcml0aG1BRVMxMjgsIGtlay5kYXRhKCksIGtl
ay5zaXplKCksCiAgICAgICAgIG51bGxwdHIsIDAsIC8vIGl2CiAgICAgICAgIG51bGxwdHIsIDAs
IC8vIGF1dGggZGF0YQogICAgICAgICBrZXkuZGF0YSgpLCBrZXkuc2l6ZSgpLAogICAgICAgICBl
bmNyeXB0ZWRLZXkuZGF0YSgpLAogICAgICAgICB0YWcsICZ0YWdMZW5ndGgpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogCiAgICAgaWYgKHN0YXR1cyAhPSBrQ0NTdWNjZXNzKQogICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC0yODksMTUgKzI4OCwxNCBAQCBib29sIHVud3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkoY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBtYXN0ZXJLZXksIGNvbnN0IFZlY3Rvcjx1aQogICAgIHVpbnQ4
X3QgYWN0dWFsVGFnW3RhZ0xlbmd0aF07CiAKICAgICBrZXkucmVzaXplKGVuY3J5cHRlZEtleS5z
aXplKCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgc3RhdHVzID0gQ0NDcnlwdG9yR0NNKGtD
Q0RlY3J5cHQsIGtDQ0FsZ29yaXRobUFFUzEyOCwga2VrLmRhdGEoKSwga2VrLnNpemUoKSwKICAg
ICAgICAgbnVsbHB0ciwgMCwgLy8gaXYKICAgICAgICAgbnVsbHB0ciwgMCwgLy8gYXV0aCBkYXRh
CiAgICAgICAgIGVuY3J5cHRlZEtleS5kYXRhKCksIGVuY3J5cHRlZEtleS5zaXplKCksCiAgICAg
ICAgIGtleS5kYXRhKCksCiAgICAgICAgIGFjdHVhbFRhZywgJnRhZ0xlbmd0aCk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAKICAgICBpZiAoc3RhdHVzICE9IGtDQ1N1Y2Nlc3MpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFz
c0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5IGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2VT
ZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkKaW5kZXggYjM0
ZTYxN2IxNDZkMzI5ZmIxYmMzMmEwYmI3MGM3Y2JiYTQ5OTkxYS4uNDRmYWQzYTVjMmZmNzVlOTdj
NWQwMDkyNDNmMzc1NDk2NGYwNjExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21h
a2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0
eUVsZW1lbnRNYXAucHkKQEAgLTk0LDExICs5NCw3IEBAIG91dHB1dF9maWxlLndyaXRlKCIiIgog
CiAjaW5jbHVkZSAiQ1NTUGFyc2VyU2VsZWN0b3IuaCIKIAotI2lmIGRlZmluZWQoX19jbGFuZ19f
KQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIgotI2VuZGlmCitJR05PUkVfV0FSTklOR19C
RUdJTigiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIpCiAKIC8vIE9sZGVyIHZlcnNpb25zIG9mIGdw
ZXJmIGxpa2UgdG8gdXNlIHRoZSBgcmVnaXN0ZXJgIGtleXdvcmQuCiAjZGVmaW5lIHJlZ2lzdGVy
CkBAIC0yMDMsOSArMTk5LDcgQEAgUHNldWRvQ2xhc3NPckNvbXBhdGliaWxpdHlQc2V1ZG9FbGVt
ZW50IHBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFMKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0VORAogCiAiIiIpCiBvdXRwdXRf
ZmlsZS5jbG9zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9y
UHNldWRvRWxlbWVudHNNYXAucHkgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNl
dWRvRWxlbWVudHNNYXAucHkKaW5kZXggMjAxODI2ZWQ1MTM4OTRkNGZmN2YzYWYwNTEzYWQ3MjM4
NjkyYWY4OC4uZWMyMGIxMGZkYmE4MGZlODllMGFiYjEzMGMyMmMyNDY2MzgwOWVlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0VsZW1lbnRzTWFwLnB5
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5w
eQpAQCAtOTIsMTEgKzkyLDcgQEAgb3V0cHV0X2ZpbGUud3JpdGUoIiIiCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmgiCiAKLSNpZiBkZWZpbmVk
KF9fY2xhbmdfXykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIKLSNlbmRpZgorSUdOT1JF
X1dBUk5JTkdfQkVHSU4oIi1XaW1wbGljaXQtZmFsbHRocm91Z2giKQogCiAvLyBPbGRlciB2ZXJz
aW9ucyBvZiBncGVyZiBsaWtlIHRvIHVzZSB0aGUgYHJlZ2lzdGVyYCBrZXl3b3JkLgogI2RlZmlu
ZSByZWdpc3RlcgpAQCAtMTk4LDkgKzE5NCw3IEBAIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50
VHlwZSBwYXJzZVBzZXVkb0VsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nSW1wbCYgcHNldWRvCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2lmIGRlZmluZWQoX19jbGFuZ19fKQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitJR05PUkVfV0FSTklOR19FTkQKIAogIiIi
KQogb3V0cHV0X2ZpbGUuY2xvc2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0SXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3Iu
Y3BwCmluZGV4IGIyOGQ4NDZmNjg3NjI4YzNjMDMwZjQ3MjljNmFjMjUxMDI1NTIyMjcuLjUzYTBm
MmE4MTU1YzlmNjVhYjUxZGZiZjljYmQ0ZmY2YjdlODAxYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRJdGVyYXRvci5jcHAKQEAgLTIwMTEsMTAgKzIwMTEsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgY29udGFpbnNLYW5hTGV0dGVycyhjb25zdCBTdHJpbmcmIHBhdHRlcm4pCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAvLyBOT1RFOiBJQ1UncyB1bm9ybV9ub3JtYWxpemUgZnVuY3Rpb24gaXMgZGVwcmVj
YXRlZC4KIAogc3RhdGljIHZvaWQgbm9ybWFsaXplQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hh
cmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBWZWN0b3I8VUNoYXI+JiBidWZmZXIpCkBAIC0yMDM4
LDkgKzIwMzUsNyBAQCBzdGF0aWMgdm9pZCBub3JtYWxpemVDaGFyYWN0ZXJzKGNvbnN0IFVDaGFy
KiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIFZlY3RvcgogICAgIEFTU0VSVChzdGF0dXMg
PT0gVV9TVFJJTkdfTk9UX1RFUk1JTkFURURfV0FSTklORyk7CiB9CiAKLSNpZiBDT01QSUxFUihH
Q0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogc3RhdGljIGJvb2wgaXNOb25MYXRpbjFTZXBh
cmF0b3IoVUNoYXIzMiBjaGFyYWN0ZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hYy9FZGl0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0
b3JNYWMubW0KaW5kZXggY2YyODliZjcwZTQwMDAzNjc2NzgwOGQxYTE2OTlmNjgyMzdhYWMwMC4u
MDJhYjVhZmUwODcwZTYzYzM4MmQzMzE3MDYxZjVkMjM3ZjVlYWM3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQpAQCAtODEsMTEgKzgxLDEwIEBAIHZvaWQgRWRpdG9y
OjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIGJvb2wgYWxsb3dQ
bGFpblRleHQsIE1hCiB7CiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IHNlbGVjdGVkUmFuZ2Uo
KTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8gRklYTUU6IEhvdyBjYW4gdGhpcyBoYXJk
LWNvZGVkIHBhc3RlYm9hcmQgbmFtZSBiZSByaWdodCwgZ2l2ZW4gdGhhdCB0aGUgcGFzc2VkLWlu
IHBhc3RlYm9hcmQgaGFzIGEgbmFtZT8KICAgICBjbGllbnQoKS0+c2V0SW5zZXJ0aW9uUGFzdGVi
b2FyZChOU0dlbmVyYWxQYm9hcmQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgYm9vbCBjaG9zZVBsYWlu
VGV4dDsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSB3ZWJDb250ZW50
RnJvbVBhc3RlYm9hcmQoKnBhc3RlYm9hcmQsICpyYW5nZSwgYWxsb3dQbGFpblRleHQsIGNob3Nl
UGxhaW5UZXh0KTsKQEAgLTExMSwxMSArMTEwLDEwIEBAIHZvaWQgRWRpdG9yOjp0YWtlRmluZFN0
cmluZ0Zyb21TZWxlY3Rpb24oKQogCiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CiAgICAgdHlw
ZXMuYXBwZW5kKFN0cmluZyhsZWdhY3lTdHJpbmdQYXN0ZWJvYXJkVHlwZSgpKSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5
KCktPnNldFR5cGVzKHR5cGVzLCBOU0ZpbmRQYm9hcmQpOwogICAgIHBsYXRmb3JtU3RyYXRlZ2ll
cygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0U3RyaW5nRm9yVHlwZShtX2ZyYW1lLmRpc3Bs
YXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmcoc2VsZWN0ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyKCkp
LCBsZWdhY3lTdHJpbmdQYXN0ZWJvYXJkVHlwZSgpLCBOU0ZpbmRQYm9hcmQpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogfQogCiB2b2lkIEVkaXRvcjo6cmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVv
dGVIYW5kbGluZykKQEAgLTE2OSwxMSArMTY3LDEwIEBAIHZvaWQgRWRpdG9yOjpyZXBsYWNlTm9k
ZUZyb21QYXN0ZWJvYXJkKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUp
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIEZJ
WE1FOiBIb3cgY2FuIHRoaXMgaGFyZC1jb2RlZCBwYXN0ZWJvYXJkIG5hbWUgYmUgcmlnaHQsIGdp
dmVuIHRoYXQgdGhlIHBhc3NlZC1pbiBwYXN0ZWJvYXJkIGhhcyBhIG5hbWU/CiAgICAgY2xpZW50
KCktPnNldEluc2VydGlvblBhc3RlYm9hcmQoTlNHZW5lcmFsUGJvYXJkKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
IAogICAgIGJvb2wgY2hvc2VQbGFpblRleHQ7CiAgICAgaWYgKFJlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBmcmFnbWVudCA9IHdlYkNvbnRlbnRGcm9tUGFzdGVib2FyZChwYXN0ZWJvYXJkLCAqcmFu
Z2UsIHRydWUsIGNob3NlUGxhaW5UZXh0KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZl
bnRIYW5kbGVyTWFjLm1tCmluZGV4IGEyNjQzMGNmMjUyNGFkMjA0ZDYxMzc5YTBlZDBiMDA5OTY1
NmI5MWQuLmViMDNhNzk1NjYyNTdmMGExMWY4NTJlOTc2MjRlOTU2YzMxYTU3NGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAgLTYxMiwxMCArNjEyLDkg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhO
U0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgIC8vIG5vIHVwLXRvLWRhdGUgY2FjaGUg
b2YgdGhlbSBhbnl3aGVyZS4KICAgICAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVu
dFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbG9jYXRpb246W1t2aWV3LT5wbGF0Zm9ybVdpZGdldCgpIHdpbmRvd10K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVy
dFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdFdmVudCBt
b2RpZmllckZsYWdzXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1l
c3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBdCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbaW5pdGlhdGluZ0V2ZW50IHdpbmRvd051bWJlcl0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyLm1tCmluZGV4IDUyZGI5OWUwZjllNTdmM2JhMzU4ZGY4NWYwNzFkYjc4NTI4NGJjMGYuLjlj
NDRiODZlZWQ3YjViZmYwZmQ2ZWI2OTY3NTExNmZkOWFiNThhODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQpAQCAtMTMy
LDEwICsxMzIsOSBAQCB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6
cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgRwogCiAgICAgQ0dDb250ZXh0UmVm
IGNnQ29udGV4dCA9IGdyYXBoaWNzQ29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKTsKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgQ0dMYXllclJlZiBoaWdobGlnaHRMYXllciA9IERESGlnaGxpZ2h0
R2V0TGF5ZXJXaXRoQ29udGV4dChkZEhpZ2hsaWdodCgpLCBjZ0NvbnRleHQpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogICAgIENHUmVjdCBoaWdobGlnaHRCb3VuZGluZ1JlY3QgPSBEREhpZ2hsaWdodEdldEJvdW5k
aW5nUmVjdChkZEhpZ2hsaWdodCgpKTsKICAgICBoaWdobGlnaHRCb3VuZGluZ1JlY3Qub3JpZ2lu
ID0gQ0dQb2ludFplcm87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5jcHAKaW5kZXggYjA1NTBjZjUzMDVlODYzNWRiNGQ1YTgyZTg5NjZmMDhmMDJhNzUwYi4u
NDJiYTE0NWY2NGM3Yjk3NWMyZTFjNDZlMmExNTJiNjY1MzE2NTViMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTU0LDE0ICs1NCw5IEBAIFN0
cmluZyBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoU3RyaW5nIGZvcm1hdCwgLi4uKQogICAgIHZhX2xp
c3QgYXJndW1lbnRzOwogICAgIHZhX3N0YXJ0KGFyZ3VtZW50cywgZm9ybWF0KTsKIAotI2lmIENP
TVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2VuZGlmCisgICAg
QUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVHSU4KICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0Q0Yo
Q0ZTdHJpbmdDcmVhdGVXaXRoRm9ybWF0QW5kQXJndW1lbnRzKDAsIDAsIGZvcm1hdC5jcmVhdGVD
RlN0cmluZygpLmdldCgpLCBhcmd1bWVudHMpKTsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9S
TUFUX0VORAogCiAgICAgdmFfZW5kKGFyZ3VtZW50cyk7CiAgICAgcmV0dXJuIHJlc3VsdC5nZXQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaAppbmRleCA0MWE1
MGIyMTNmZGUwOGQzN2ZkYmFhY2JiYzk2YjYxYWM4NzMxMzVjLi4zOTY1NWY2MTQ3YmFlMmZkMjJl
ZDBjY2E4MGZhOWM2MWFjN2NkODgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JlZW5Qcm9wZXJ0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVu
UHJvcGVydGllcy5oCkBAIC0xOTUsMTAgKzE5NSw5IEBAIHN0ZDo6b3B0aW9uYWw8U2NyZWVuRGF0
YT4gU2NyZWVuRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAKICAgICAgICAgYXV0byBj
b2xvclNwYWNlRGF0YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IGljY0RhdGEtPmRhdGEoKSwgaWNjRGF0YS0+c2l6ZSgpKSk7CiAgICAgICAgIC8vIEZJWE1FOiA8
aHR0cDovL3dlYmtpdC5vcmcvYi8xODQzNTg+IFdlIHNob3VsZCBzd2l0Y2ggdG8gQ0dDb2xvclNw
YWNlQ3JlYXRlSUNDQmFzZWQuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGNnQ29s
b3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aElDQ1Byb2ZpbGUoY29sb3JT
cGFjZURhdGEuZ2V0KCkpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIGJyZWFrOwogICAgIH0K
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9I
SURHYW1lcGFkUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9t
YWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcAppbmRleCBiNmNlNjk2MjA1MTA3YmQyMmU5NGZjNDM1
ZDg3MDFlMGY4M2VlNjJlLi5mMWJiOGI1NDM2YTUxODJiOTNhY2MwZjY1OTUwMDI0YjdkYTk3ZmM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1l
cGFkUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFj
L0hJREdhbWVwYWRQcm92aWRlci5jcHAKQEAgLTEwMywxMCArMTAzLDkgQEAgSElER2FtZXBhZFBy
b3ZpZGVyOjpISURHYW1lcGFkUHJvdmlkZXIoKQogCiB2b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6
c3RvcE1vbml0b3JpbmdJbnB1dCgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9ubnVsbCIKKyAgICBBTExPV19O
VUxMX0FSR1VNRU5UX0JFR0lOCiAgICAgSU9ISURNYW5hZ2VyUmVnaXN0ZXJJbnB1dFZhbHVlQ2Fs
bGJhY2sobV9tYW5hZ2VyLmdldCgpLCBudWxscHRyLCBudWxscHRyKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19OVUxMX0FSR1VNRU5UX0VORAogfQogCiB2b2lkIEhJ
REdhbWVwYWRQcm92aWRlcjo6c3RhcnRNb25pdG9yaW5nSW5wdXQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKaW5kZXggNWYy
OWFmODVhOTQ4M2Q0NzYyZTk4N2IzMjA1YjgwZTE3YzNiYjE5Yy4uNDAzMGM5MzZkNGE5ZDUyMWZm
OGEwZjQ5ZmEwNWQ5YWUzOWJlODllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCkBAIC0xMTgsMTQgKzExOCw5IEBAIHN0
ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IFBsYXRmb3JtRGlzcGxheTo6Y3JlYXRlUGxh
dGZvcm1EaXNwbGF5KCkKIFBsYXRmb3JtRGlzcGxheSYgUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWRE
aXNwbGF5KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0jaWYgQ09N
UElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZXhpdC10aW1lLWRlc3RydWN0b3JzIgotI2VuZGlmCisg
ICAgSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1XZXhpdC10aW1lLWRlc3RydWN0b3JzIikK
ICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheT4gZGlzcGxheTsKLSNp
ZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgor
ICAgIElHTk9SRV9DTEFOR19XQVJOSU5HX0VORAogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFn
LCBbXXsKICAgICAgICAgZGlzcGxheSA9IGNyZWF0ZVBsYXRmb3JtRGlzcGxheSgpOwogICAgIH0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRl
UGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAKaW5kZXggNGQ1ZDgwODhhOTJj
ZTk3ZTljZDQ4MGJjNGM4ZWE1NjhiOGU2YTZiYS4uZTgyYmJmNmFhYzBiOWI5NTNmNzViZDI0MTI2
OThhOWQwOWUxY2EyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwCkBA
IC02OSwxMCArNjksNyBAQCBib29sIFN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvcjo6Y29u
c3VtZVNsb3dDYXNlKFVDaGFyMzImIGNoYXJhY3RlciwgdW5zaWduZQogICAgIHJldHVybiB0cnVl
OwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0jZW5kaWYKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAv
LyBOT1RFOiBJQ1UncyB1bm9ybV9ub3JtYWxpemUgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4KIAog
VUNoYXIzMiBTdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3I6Om5vcm1hbGl6ZVZvaWNpbmdN
YXJrcygpCkBAIC05NSw4ICs5Miw2IEBAIFVDaGFyMzIgU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0
ZXJhdG9yOjpub3JtYWxpemVWb2ljaW5nTWFya3MoKQogICAgIHJldHVybiAwOwogfQogCi0jaWYg
Q09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRp
ZgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlv
bkdyb3VwQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQppbmRleCBiMmMxZTk2NjM0YjNm
NTY0ZmZjMGM1YmQxNmIyOWVlNDJkODRmYTJjLi5mNzgyZDhiN2UwZmQ4OTdkMDJiYWE1YWQxZjc3
MzMxYWJiOWZhYmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3Jv
dXBBVkZPYmpDLm1tCkBAIC0xMjMsMTAgKzEyMyw5IEBAIHZvaWQgTWVkaWFTZWxlY3Rpb25Hcm91
cEFWRk9iakM6OnVwZGF0ZU9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGNoYXJhY3Rlcmlz
CiAKICAgICAgICAgbV9vcHRpb25zLnJlbW92ZSgoX19icmlkZ2UgQ0ZUeXBlUmVmKXJlbW92ZWRB
Vk9wdGlvbik7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQVZNZWRpYVNlbGVjdGlv
bk9wdGlvbiogc2VsZWN0ZWRPcHRpb24gPSBbbV9wbGF5ZXJJdGVtIHNlbGVjdGVkTWVkaWFPcHRp
b25Jbk1lZGlhU2VsZWN0aW9uR3JvdXA6bV9tZWRpYVNlbGVjdGlvbkdyb3VwLmdldCgpXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICAgICBmb3IgKEFWTWVkaWFTZWxlY3Rpb25PcHRpb24qIGFkZGVkQVZPcHRpb24g
aW4gYWRkZWRBVk9wdGlvbnMuZ2V0KCkpIHsKICAgICAgICAgYXV0byBhZGRlZE9wdGlvbiA9IE1l
ZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQzo6Y3JlYXRlKCp0aGlzLCBhZGRlZEFWT3B0aW9uKTsK
ICAgICAgICAgaWYgKGFkZGVkQVZPcHRpb24gPT0gc2VsZWN0ZWRPcHRpb24pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbQppbmRleCAy
NmFiMDI0ZDhiYzlmODJiZjdkNjU1NTkzNmRjNWViNWFhNGI1MDI4Li44NDM1MmQ3ZGUwNWU1NWRh
YjVmZDZmOWRlNDdmYWVlODZhY2QyZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0KQEAgLTE5OCwxMiArMTk4LDExIEBAIGJv
b2wgQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVm
UHRyPFVpbnQ4QXJyYXk+JiBuZXh0CiAKICAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4gY2VydGlm
aWNhdGVEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczptX2NlcnRp
ZmljYXRlLT5kYXRhKCkgbGVuZ3RoOm1fY2VydGlmaWNhdGUtPmxlbmd0aCgpXSk7CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdvYmpjLWxpdGVyYWwtY29udmVyc2lvbiIKKyAgICAgICAgSUdOT1JFX0NMQU5HX1dBUk5J
TkdfQkVHSU4oIi1Xb2JqYy1saXRlcmFsLWNvbnZlcnNpb24iKQogICAgICAgICBTdHJpbmcgc3Rv
cmFnZVBhdGggPSB0aGlzLT5zdG9yYWdlUGF0aCgpOwogICAgICAgICBpZiAoIXN0b3JhZ2VQYXRo
LmlzRW1wdHkoKSAmJiBbZ2V0QVZTdHJlYW1TZXNzaW9uQ2xhc3MoKSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKHJlbW92ZVBlbmRpbmdFeHBpcmVkU2Vzc2lvblJlcG9ydHM6d2l0aEFwcElk
ZW50aWZpZXI6c3RvcmFnZURpcmVjdG9yeUF0VVJMOildKQogICAgICAgICAgICAgW2dldEFWU3Ry
ZWFtU2Vzc2lvbkNsYXNzKCkgcmVtb3ZlUGVuZGluZ0V4cGlyZWRTZXNzaW9uUmVwb3J0czpAW21f
ZXhwaXJlZFNlc3Npb24uZ2V0KCldIHdpdGhBcHBJZGVudGlmaWVyOmNlcnRpZmljYXRlRGF0YS5n
ZXQoKSBzdG9yYWdlRGlyZWN0b3J5QXRVUkw6W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpzdG9yYWdl
UGF0aF1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBJR05PUkVfQ0xB
TkdfV0FSTklOR19FTkQKICAgICAgICAgbV9leHBpcmVkU2Vzc2lvbiA9IG51bGxwdHI7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTI0MywxMCArMjQyLDkgQEAgYm9vbCBDRE1TZXNz
aW9uQVZTdHJlYW1TZXNzaW9uOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhB
cnJheT4mIG5leHQKICAgICAgICAgfQogCiAgICAgICAgIE5TRXJyb3IqIGVycm9yID0gbmlsOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiByZXF1ZXN0
ID0gW3Byb3RlY3RlZFNvdXJjZUJ1ZmZlci0+cGFyc2VyKCkgc3RyZWFtaW5nQ29udGVudEtleVJl
cXVlc3REYXRhRm9yQXBwOmNlcnRpZmljYXRlRGF0YS5nZXQoKSBjb250ZW50SWRlbnRpZmllcjpp
bml0RGF0YS5nZXQoKSB0cmFja0lEOnByb3RlY3RlZFNvdXJjZUJ1ZmZlci0+cHJvdGVjdGVkVHJh
Y2tJRCgpIG9wdGlvbnM6b3B0aW9ucy5nZXQoKSBlcnJvcjomZXJyb3JdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIAogICAgICAgICBpZiAoIVtwcm90ZWN0ZWRTb3VyY2VCdWZmZXItPnBhcnNlcigpIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoY29udGVudFByb3RlY3Rpb25TZXNzaW9uSWRlbnRpZmll
cildKQogICAgICAgICAgICAgbV9zZXNzaW9uSWQgPSBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5n
KCk7CkBAIC0yNzMsMTAgKzI3MSw5IEBAIGJvb2wgQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6
dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0CiAgICAgZXJy
b3JDb2RlID0gTWVkaWFQbGF5ZXI6Ok5vRXJyb3I7CiAgICAgc3lzdGVtQ29kZSA9IDA7CiAgICAg
UmV0YWluUHRyPE5TRGF0YT4ga2V5RGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRX
aXRoQnl0ZXM6a2V5LT5kYXRhKCkgbGVuZ3RoOmtleS0+bGVuZ3RoKCldKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIFtwcm90ZWN0ZWRTb3VyY2VCdWZmZXItPnBhcnNlcigpIHByb2Nlc3NDb250
ZW50S2V5UmVzcG9uc2VEYXRhOmtleURhdGEuZ2V0KCkgZm9yVHJhY2tJRDpwcm90ZWN0ZWRTb3Vy
Y2VCdWZmZXItPnByb3RlY3RlZFRyYWNrSUQoKV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICByZXR1cm4g
dHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRp
YVNvdXJjZUFWRk9iakMuaAppbmRleCBkMzI2ZjJmYTJmYjJiMWM2MGVkOWUzYjkzODhhYTU0NTlk
OWQ3NWUxLi4xN2QxZDkyZGYyNzIwZWUzZWE0OWQ1NjM3M2RhNTZiYzRjNWM5YTljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2Jq
Qy5oCkBAIC01NCwxMSArNTQsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQ0Vycm9yQ2xpZW50CiAgICAgdm9pZCBsYXllckRpZFJlY2VpdmVFcnJvcihBVlNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllciAqLCBOU0Vycm9yICosIGJvb2wmIHNob3VsZElnbm9yZSkg
b3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1df
TkVXX0FQSV9CRUdJTgogICAgIHZvaWQgcmVuZGVyZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVC
dWZmZXJBdWRpb1JlbmRlcmVyICosIE5TRXJyb3IgKiwgYm9vbCYgc2hvdWxkSWdub3JlKSBvdmVy
cmlkZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ORVdfQVBJX0VO
RAogCiAgICAgdm9pZCBhZGRTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMq
KTsKICAgICB2b2lkIHJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
QyopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZGMzZGVlYjNmNzkyMDkwZmIwNjcyN2Vm
NDQ3MzRhZDA4M2Q1MGY4Mi4uNDA3MWM2YjZlODhhZGI1Mjk5YWFiMTBjYmIwZjViMjE5ODNiMmYz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yNjk5LDEwICsyNjk5LDkgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRDdXJyZW50VGV4dFRyYWNrKElu
YmFuZFRleHRUcmFja1ByaXYKIAogICAgIGlmICh0cmFjaykgewogICAgICAgICBpZiAodHJhY2st
PnRleHRUcmFja0NhdGVnb3J5KCkgPT0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6TGVnYWN5
Q2xvc2VkQ2FwdGlvbikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBb
bV9hdlBsYXllci5nZXQoKSBzZXRDbG9zZWRDYXB0aW9uRGlzcGxheUVuYWJsZWQ6WUVTXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogI2lmIEhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9H
Uk9VUCkKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQogICAgICAgICBlbHNlIGlmICh0cmFjay0+
dGV4dFRyYWNrQ2F0ZWdvcnkoKSA9PSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpPdXRPZkJh
bmQpCkBAIC0yNzE1LDEwICsyNzE0LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpzZXRDdXJyZW50VGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXYKICNpZiBI
QVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiAgICAgICAgIFttX2F2UGxh
eWVySXRlbS5nZXQoKSBzZWxlY3RNZWRpYU9wdGlvbjowIGluTWVkaWFTZWxlY3Rpb25Hcm91cDpz
YWZlTWVkaWFTZWxlY3Rpb25Hcm91cEZvckxlZ2libGVNZWRpYSgpXTsKICNlbmRpZgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgICAgICBbbV9hdlBsYXllci5nZXQoKSBzZXRDbG9zZWRDYXB0
aW9uRGlzcGxheUVuYWJsZWQ6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiAKIH0KQEAgLTI3
MzQsMTAgKzI3MzIsOSBAQCBTdHJpbmcgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6bGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrKCkgY29uc3QKICNpZiBIQVZFKEFWRk9VTkRB
VElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiAgICAgLy8gSWYgQVZGb3VuZGF0aW9uIGhhcyBh
biBhdWRpYmxlIGdyb3VwLCByZXR1cm4gdGhlIGxhbmd1YWdlIG9mIHRoZSBjdXJyZW50bHkgc2Vs
ZWN0ZWQgYXVkaWJsZSBvcHRpb24uCiAgICAgQVZNZWRpYVNlbGVjdGlvbkdyb3VwVHlwZSAqYXVk
aWJsZUdyb3VwID0gW21fYXZBc3NldC5nZXQoKSBtZWRpYVNlbGVjdGlvbkdyb3VwRm9yTWVkaWFD
aGFyYWN0ZXJpc3RpYzpBVk1lZGlhQ2hhcmFjdGVyaXN0aWNBdWRpYmxlXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIEFWTWVkaWFTZWxlY3Rpb25PcHRpb25UeXBlICpjdXJyZW50bHlTZWxlY3Rl
ZEF1ZGlibGVPcHRpb24gPSBbbV9hdlBsYXllckl0ZW0uZ2V0KCkgc2VsZWN0ZWRNZWRpYU9wdGlv
bkluTWVkaWFTZWxlY3Rpb25Hcm91cDphdWRpYmxlR3JvdXBdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIGlm
IChjdXJyZW50bHlTZWxlY3RlZEF1ZGlibGVPcHRpb24pIHsKICAgICAgICAgbV9sYW5ndWFnZU9m
UHJpbWFyeUF1ZGlvVHJhY2sgPSBbW2N1cnJlbnRseVNlbGVjdGVkQXVkaWJsZU9wdGlvbiBsb2Nh
bGVdIGxvY2FsZUlkZW50aWZpZXJdOwogICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAi
bGFuZ3VhZ2Ugb2Ygc2VsZWN0ZWQgYXVkaWJsZSBvcHRpb24gIiwgbV9sYW5ndWFnZU9mUHJpbWFy
eUF1ZGlvVHJhY2spOwpAQCAtMzI0OCwxMCArMzI0NSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y2FuUGxheUZhc3RSZXZlcnNlRGlkQ2hhbmdlKGJvb2wgbmV3
VmFsCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNob3VsZERp
c2FibGVTbGVlcChib29sIGZsYWcpCiB7CiAjaWYgUExBVEZPUk0oSU9TKSAmJiAhUExBVEZPUk0o
SU9TX1NJTVVMQVRPUikgJiYgIVBMQVRGT1JNKElPU01BQykKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIFttX2F2UGxheWVyIF9zZXRQcmV2ZW50c1NsZWVwRHVyaW5nVmlkZW9QbGF5YmFjazpmbGFn
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGZsYWcpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IDA0NDRkOWFmMDU3M2Y1YjcyN2E2MzU5ZGI1ZGU0
NzFkYTgyN2FlZTMuLjk4MjMyMDg2ZDcxZDc1ODc0NGJkMmMwNDQ2OWI2MThkMjAzMTc2YjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC02OSwxMiArNjksMTAgQEAgcHVibGljOgogICAg
IHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJ
bnNlbnNpdGl2ZUhhc2g+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAgIEFMTE9XX05FV19BUElf
QkVHSU4KICAgICB2b2lkIGFkZEF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRl
cmVyKik7CiAgICAgdm9pZCByZW1vdmVBdWRpb1JlbmRlcmVyKEFWU2FtcGxlQnVmZmVyQXVkaW9S
ZW5kZXJlciopOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX05FV19B
UElfRU5ECiAKICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0ZSgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBj
b25zdCBvdmVycmlkZTsKQEAgLTg3LDExICs4NSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExv
YWRpbmdQcm9ncmVzc3NlZChib29sIGZsYWcpIHsgbV9sb2FkaW5nUHJvZ3Jlc3NlZCA9IGZsYWc7
IH0KICAgICB2b2lkIHNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoYm9vbCk7CiAgICAgYm9vbCBo
YXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93
bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVk
LWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9CRUdJTgogICAgIHZvaWQgc2V0
SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKiwgYm9v
bCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfTkVXX0FQSV9FTkQK
ICAgICBib29sIGFsbFJlbmRlcmVyc0hhdmVBdmFpbGFibGVTYW1wbGVzKCkgY29uc3QgeyByZXR1
cm4gbV9hbGxSZW5kZXJlcnNIYXZlQXZhaWxhYmxlU2FtcGxlczsgfQogICAgIHZvaWQgdXBkYXRl
QWxsUmVuZGVyZXJzSGF2ZUF2YWlsYWJsZVNhbXBsZXMoKTsKICAgICB2b2lkIGR1cmF0aW9uQ2hh
bmdlZCgpOwpAQCAtMjY3LDEyICsyNjMsMTAgQEAgcHJpdmF0ZToKICAgICBzdHJ1Y3QgQXVkaW9S
ZW5kZXJlclByb3BlcnRpZXMgewogICAgICAgICBib29sIGhhc0F1ZGlibGVTYW1wbGUgeyBmYWxz
ZSB9OwogICAgIH07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxM
T1dfTkVXX0FQSV9CRUdJTgogICAgIEhhc2hNYXA8UmV0YWluUHRyPENGVHlwZVJlZj4sIEF1ZGlv
UmVuZGVyZXJQcm9wZXJ0aWVzPiBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXA7CiAgICAg
UmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyPiBtX3N5bmNocm9uaXpl
cjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ORVdfQVBJX0VORAog
ICAgIFJldGFpblB0cjxpZD4gbV90aW1lSnVtcGVkT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPGlk
PiBtX2R1cmF0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPEFWU3RyZWFtU2Vzc2lvbj4gbV9z
dHJlYW1TZXNzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDk2OGZjNWEwODdm
MzExZDg4YjIzOWU2NzY5NDg5NDkyMTNiNGNiYTYuLjFjMTk3YWM1ZWU5MDJjMzcxY2ZiN2Y5OTg5
ZWEzM2U4ZWMyMWI0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTYyLDE3ICs2
MiwxMyBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAogU09G
VF9MSU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZBc3NldCkKIFNPRlRfTElOS19D
TEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXQpCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93
bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVk
LWF2YWlsYWJpbGl0eS1uZXciCitBTExPV19ORVdfQVBJX0JFR0lOCiBTT0ZUX0xJTktfQ0xBU1Nf
T1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIpCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ORVdfQVBJX0VORAogU09GVF9MSU5LX0NM
QVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitBTExPV19ORVdfQVBJX0JFR0lOCiBT
T0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1ZmZlclJlbmRl
clN5bmNocm9uaXplcikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19B
UElfRU5ECiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbURh
dGFQYXJzZXIpCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVh
bVNlc3Npb24pOwogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZWaWRl
b1BlcmZvcm1hbmNlTWV0cmljcykKQEAgLTc3MywxMSArNzY5LDkgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoYm9v
bCBmbGFnKQogICAgIH0KIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3Igor
QUxMT1dfTkVXX0FQSV9CRUdJTgogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxlKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5k
ZXJlciogcmVuZGVyZXIsIGJvb2wgZmxhZykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
K0FMTE9XX05FV19BUElfRU5ECiB7CiAgICAgYXV0byBpdGVyID0gbV9zYW1wbGVCdWZmZXJBdWRp
b1JlbmRlcmVyTWFwLmZpbmQoKF9fYnJpZGdlIENGVHlwZVJlZilyZW5kZXJlcik7CiAgICAgaWYg
KGl0ZXIgPT0gbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmVuZCgpKQpAQCAtMTAxNywx
MSArMTAxMSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpz
ZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTCiAgICAgbV9wbGF5ZXItPm5ldHdv
cmtTdGF0ZUNoYW5nZWQoKTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3
IgorQUxMT1dfTkVXX0FQSV9CRUdJTgogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OmFkZEF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKiBh
dWRpb1JlbmRlcmVyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfTkVXX0FQ
SV9FTkQKIHsKICAgICBpZiAoIW1fc2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlck1hcC5hZGQoKF9f
YnJpZGdlIENGVHlwZVJlZilhdWRpb1JlbmRlcmVyLCBBdWRpb1JlbmRlcmVyUHJvcGVydGllcygp
KS5pc05ld0VudHJ5KQogICAgICAgICByZXR1cm47CkBAIC0xMDM0LDExICsxMDI2LDkgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmFkZEF1ZGlvUmVuZGVyZXIo
QVZTYW1wbGVCdWZmZXJBdWRpb1IKICAgICBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJS
ZW5kZXJpbmdNb2RlQ2hhbmdlZChtX3BsYXllcik7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXBy
YWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZh
aWxhYmlsaXR5LW5ldyIKK0FMTE9XX05FV19BUElfQkVHSU4KIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZW1vdmVBdWRpb1JlbmRlcmVyKEFWU2FtcGxlQnVmZmVy
QXVkaW9SZW5kZXJlciogYXVkaW9SZW5kZXJlcikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKK0FMTE9XX05FV19BUElfRU5ECiB7CiAgICAgYXV0byBpdGVyID0gbV9zYW1wbGVCdWZmZXJB
dWRpb1JlbmRlcmVyTWFwLmZpbmQoKF9fYnJpZGdlIENGVHlwZVJlZilhdWRpb1JlbmRlcmVyKTsK
ICAgICBpZiAoaXRlciA9PSBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXAuZW5kKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
aAppbmRleCAwMTljZjM3YjZiYmRhYWM0YzRlYmZlYTNmOTg0YjJhYmQ5YmYxM2ExLi5mMmY4MzNm
NmQ0MGYxZjEyYjZjYTc0OTc1MmYwMjhkZWQyZmMxNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKQEAgLTcwLDExICs3MCw5
IEBAIGNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDRXJyb3JDbGllbnQgewogcHVibGlj
OgogICAgIHZpcnR1YWwgflNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDRXJyb3JDbGllbnQoKSA9
IGRlZmF1bHQ7CiAgICAgdmlydHVhbCB2b2lkIGxheWVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyICosIE5TRXJyb3IgKiwgYm9vbCYgc2hvdWxkSWdub3JlKSA9IDA7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9C
RUdJTgogICAgIHZpcnR1YWwgdm9pZCByZW5kZXJlckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1
ZmZlckF1ZGlvUmVuZGVyZXIgKiwgTlNFcnJvciAqLCBib29sJiBzaG91bGRJZ25vcmUpID0gMDsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ORVdfQVBJX0VORAogfTsK
IAogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMgZmluYWwgOiBwdWJsaWMgU291cmNl
QnVmZmVyUHJpdmF0ZSB7CkBAIC0xMTcsMTEgKzExNSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHVu
cmVnaXN0ZXJGb3JFcnJvck5vdGlmaWNhdGlvbnMoU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakNF
cnJvckNsaWVudCopOwogICAgIHZvaWQgbGF5ZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIgKiwgTlNFcnJvciAqKTsKICAgICB2b2lkIG91dHB1dE9ic2N1cmVkRHVl
VG9JbnN1ZmZpY2llbnRFeHRlcm5hbFByb3RlY3Rpb25DaGFuZ2VkKGJvb2wpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vu
Z3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAgIEFMTE9XX05FV19BUElfQkVHSU4KICAgICB2
b2lkIHJlbmRlcmVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAq
LCBOU0Vycm9yICopOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX05F
V19BUElfRU5ECiAKICAgICB2b2lkIHNldFZpZGVvTGF5ZXIoQVZTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIqKTsKICAgICB2b2lkIHNldERlY29tcHJlc3Npb25TZXNzaW9uKFdlYkNvcmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbiopOwpAQCAtMTUyLDExICsxNDgsOSBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGVzdHJveVJlbmRlcmVycygpOwogCiAgICAgdm9pZCBmbHVzaFZpZGVvKCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
dW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5n
dWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9CRUdJTgogICAgIHZv
aWQgZmx1c2goQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICopOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIEFMTE9XX05FV19BUElfRU5ECiAKICAgICBXZWFrUHRyPFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCkBAIC0xNzAsMTEgKzE2NCw5IEBAIHByaXZh
dGU6CiAgICAgUmV0YWluUHRyPEFWU3RyZWFtRGF0YVBhcnNlcj4gbV9wYXJzZXI7CiAgICAgUmV0
YWluUHRyPEFWQXNzZXQ+IG1fYXNzZXQ7CiAgICAgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyPiBtX2Rpc3BsYXlMYXllcjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5
LW5ldyIKKyAgICBBTExPV19ORVdfQVBJX0JFR0lOCiAgICAgSGFzaE1hcDxpbnQsIFJldGFpblB0
cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+PiBtX2F1ZGlvUmVuZGVyZXJzOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX05FV19BUElfRU5ECiAgICAgUmV0YWlu
UHRyPFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyPiBtX2RlbGVnYXRlOwogICAgIFJldGFp
blB0cjxXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVuZXI+IG1fZXJyb3JMaXN0ZW5lcjsKICAg
ICBSZXRhaW5QdHI8TlNFcnJvcj4gbV9oZGNwRXJyb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IGRjOTM0NzhlZTM1
YjMwOWZiZThmMWQyNWZlMzUxMjk2NWZlMDY2ZjUuLmNlZWM2MDM2ZDE4Mjg4Mjg5MTZkMjBkYzIx
ZDU2MmJlZDllOWZiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC02OCwxMSArNjgsOSBAQCBTT0ZUX0xJTktfRlJB
TUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRh
dGlvbiwgQVZBc3NldFRyYWNrKQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZTdHJl
YW1EYXRhUGFyc2VyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxMT1df
TkVXX0FQSV9CRUdJTgogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZm
ZXJBdWRpb1JlbmRlcmVyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfTkVX
X0FQSV9FTkQKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyKQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZTdHJlYW1TZXNzaW9u
KQogCkBAIC0yNDMsMjMgKzI0MSwxOSBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQVZGb3VuZGF0aW9u
LCBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckZhaWxlZFRvRGVjb2RlTm90aWZpYwogQGludGVy
ZmFjZSBXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVuZXIgOiBOU09iamVjdCB7CiAgICAgV2Vi
Q29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIF9wYXJlbnQ7CiAgICAgVmVjdG9yPFJl
dGFpblB0cjxBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4+IF9sYXllcnM7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
dW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5n
dWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9CRUdJTgogICAgIFZl
Y3RvcjxSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyPj4gX3JlbmRlcmVyczsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ORVdfQVBJX0VORAogfQog
CiAtIChpZClpbml0V2l0aFBhcmVudDooV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMqKXBhcmVudDsKIC0gKHZvaWQpaW52YWxpZGF0ZTsKIC0gKHZvaWQpYmVnaW5PYnNlcnZpbmdM
YXllcjooQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgKilsYXllcjsKIC0gKHZvaWQpc3RvcE9i
c2VydmluZ0xheWVyOihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciAqKWxheWVyOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9CRUdJTgogLSAodm9p
ZCliZWdpbk9ic2VydmluZ1JlbmRlcmVyOihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKily
ZW5kZXJlcjsKIC0gKHZvaWQpc3RvcE9ic2VydmluZ1JlbmRlcmVyOihBVlNhbXBsZUJ1ZmZlckF1
ZGlvUmVuZGVyZXIgKilyZW5kZXJlcjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FM
TE9XX05FV19BUElfRU5ECiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJBVlNhbXBsZUJ1ZmZl
ckVycm9yTGlzdGVuZXIKQEAgLTMyMiwxMiArMzE2LDEwIEBAIFNPRlRfTElOS19DT05TVEFOVChB
VkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyRmFpbGVkVG9EZWNvZGVOb3Rp
ZmljCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNl
cnZlcjpzZWxmIG5hbWU6QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJGYWlsZWRUb0RlY29kZU5v
dGlmaWNhdGlvbiBvYmplY3Q6bGF5ZXJdOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFz
IgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJp
bGl0eS1uZXciCitBTExPV19ORVdfQVBJX0JFR0lOCiAtICh2b2lkKWJlZ2luT2JzZXJ2aW5nUmVu
ZGVyZXI6KEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciopcmVuZGVyZXIKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19BUElfRU5ECiAgICAgQVNTRVJUKF9wYXJl
bnQpOwogICAgIEFTU0VSVCghX3JlbmRlcmVycy5jb250YWlucyhyZW5kZXJlcikpOwogCkBAIC0z
MzUsMTEgKzMyNyw5IEBAIFNPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljCiAgICAgW3JlbmRlcmVyIGFk
ZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImVycm9yIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNl
cnZpbmdPcHRpb25OZXcgY29udGV4dDpudWxscHRyXTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24t
cHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1h
dmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9CRUdJTgogLSAodm9pZClzdG9wT2JzZXJ2
aW5nUmVuZGVyZXI6KEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciopcmVuZGVyZXIKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19BUElfRU5ECiB7CiAgICAgQVNTRVJU
KF9wYXJlbnQpOwogICAgIEFTU0VSVChfcmVuZGVyZXJzLmNvbnRhaW5zKHJlbmRlcmVyKSk7CkBA
IC0zNzIsMTEgKzM2Miw5IEBAIFNPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljCiAgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKIAogICAgIH0gZWxzZSBpZiAoW29iamVjdCBpc0tpbmRPZkNs
YXNzOmdldEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCldKSB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
dW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5n
dWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgICAgIEFMTE9XX05FV19BUElfQkVHSU4KICAg
ICAgICAgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlcj4gcmVuZGVyZXIgPSAo
QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICopb2JqZWN0OwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgICAgICBBTExPV19ORVdfQVBJX0VORAogICAgICAgICBSZXRhaW5QdHI8
TlNFcnJvcj4gZXJyb3IgPSBbY2hhbmdlIHZhbHVlRm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VOZXdL
ZXldOwogCiAgICAgICAgIEFTU0VSVChfcmVuZGVyZXJzLmNvbnRhaW5zKHJlbmRlcmVyLmdldCgp
KSk7CkBAIC04NTIsMjEgKzg0MCwxNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
Ojp0cmFja0RpZENoYW5nZUVuYWJsZWQoQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdQogICAgIGlu
dCB0cmFja0lEID0gdHJhY2stPnRyYWNrSUQoKTsKIAogICAgIGlmICghdHJhY2stPmVuYWJsZWQo
KSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAgICAgICBBTExPV19O
RVdfQVBJX0JFR0lOCiAgICAgICAgIFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVy
ZXI+IHJlbmRlcmVyID0gbV9hdWRpb1JlbmRlcmVycy5nZXQodHJhY2tJRCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX05FV19BUElfRU5ECiAgICAgICAgIFtt
X3BhcnNlciBzZXRTaG91bGRQcm92aWRlTWVkaWFEYXRhOk5PIGZvclRyYWNrSUQ6dHJhY2tJRF07
CiAgICAgICAgIGlmIChtX21lZGlhU291cmNlKQogICAgICAgICAgICAgbV9tZWRpYVNvdXJjZS0+
cGxheWVyKCktPnJlbW92ZUF1ZGlvUmVuZGVyZXIocmVuZGVyZXIuZ2V0KCkpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIFttX3BhcnNlciBzZXRTaG91bGRQcm92aWRlTWVkaWFEYXRhOllFUyBmb3JU
cmFja0lEOnRyYWNrSURdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAg
ICAgICBBTExPV19ORVdfQVBJX0JFR0lOCiAgICAgICAgIFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZl
ckF1ZGlvUmVuZGVyZXI+IHJlbmRlcmVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgICAgICBBTExPV19ORVdfQVBJX0VORAogICAgICAgICBpZiAoIW1fYXVkaW9SZW5kZXJlcnMu
Y29udGFpbnModHJhY2tJRCkpIHsKICAgICAgICAgICAgIHJlbmRlcmVyID0gYWRvcHROUyhbYWxs
b2NBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJJbnN0YW5jZSgpIGluaXRdKTsKICAgICAgICAg
ICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CkBAIC05OTcsMTEgKzk4MSw5IEBA
IHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om91dHB1dE9ic2N1cmVkRHVlVG9JbnN1
ZmZpY2llbnRFeHRlcm5hbFByb3RlY3RpCiAgICAgbGF5ZXJEaWRSZWNlaXZlRXJyb3IobV9kaXNw
bGF5TGF5ZXIuZ2V0KCksIGVycm9yLmdldCgpKTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJh
Z21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFp
bGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9CRUdJTgogdm9pZCBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQzo6cmVuZGVyZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJBdWRpb1Jl
bmRlcmVyICpyZW5kZXJlciwgTlNFcnJvciAqZXJyb3IpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCitBTExPV19ORVdfQVBJX0VORAogewogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlckRpZFJlY2VpdmVFcnJvciglcCk6IHJlbmRl
cmVyKCVwKSwgZXJyb3IoJUApIiwgdGhpcywgcmVuZGVyZXIsIFtlcnJvciBkZXNjcmlwdGlvbl0p
OwogCkBAIC0xMDUwLDExICsxMDMyLDkgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6Zmx1c2hWaWRlbygpCiAgICAgfQogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0
eS1uZXciCitBTExPV19ORVdfQVBJX0JFR0lOCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjpmbHVzaChBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKnJlbmRlcmVyKQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfTkVXX0FQSV9FTkQKIHsKICAgICBbcmVuZGVy
ZXIgZmx1c2hdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1tCmluZGV4IGRmMDQx
MDNjNzFhOTg5NjRlOWYyOWZlMTk4MWIzNjIxNThhNmJkOTkuLmZiMmFhMWU0MTVhODMzYzUxZmMw
ZWM4NDYyM2FkZTk3ZmQ1MjFiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1t
CkBAIC0xMTUwLDEwICsxMTUwLDkgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXI6OmRyYXdMYXllckNv
bnRlbnRzKENHQ29udGV4dFJlZiBjb250ZXh0LCBXZWJDb3JlOjpQbGF0Zm9ybUMKICAgICAKICAg
ICAvLyBTZXQgdXAgYW4gTlNHcmFwaGljc0NvbnRleHQgZm9yIHRoZSBjb250ZXh0LCBzbyB0aGF0
IHBhcnRzIG9mIEFwcEtpdCB0aGF0IHJlbHkgb24KICAgICAvLyB0aGUgY3VycmVudCBOU0dyYXBo
aWNzQ29udGV4dCAoZS5nLiBOU0NlbGwgZHJhd2luZykgZ2V0IHRoZSByaWdodCBvbmUuCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICBOU0dyYXBoaWNzQ29udGV4dCogbGF5ZXJDb250ZXh0ID0gW05T
R3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Y29udGV4dCBm
bGlwcGVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJl
bnRDb250ZXh0OmxheWVyQ29udGV4dF07CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1
enpORy5jcHAKaW5kZXggZWY4NDNhMDYxZTljMGM4MjY3MTYzNDg5ZGNmYWEzNjViMGY3NTc5ZS4u
OWVmZTZmNTg3YzcyNGQzZjBkOGUxZmRmMjc5MjRjNGUyNGU3MzI4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJv
SGFyZmJ1enpORy5jcHAKQEAgLTQ5LDE0ICs0OSw5IEBAIGNvbnN0IEZvbnQqIEZvbnRDYXNjYWRl
Ojpmb250Rm9yQ29tYmluaW5nQ2hhcmFjdGVyU2VxdWVuY2UoY29uc3QgVUNoYXIqIGNoYXJhY3Rl
CiB7CiAgICAgVUVycm9yQ29kZSBlcnJvciA9IFVfWkVST19FUlJPUjsKICAgICBWZWN0b3I8VUNo
YXIsIDQ+IG5vcm1hbGl6ZWRDaGFyYWN0ZXJzKGxlbmd0aCk7Ci0jaWYgQ09NUElMRVIoR0NDX09S
X0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGludDMyX3Qgbm9ybWFsaXplZExl
bmd0aCA9IHVub3JtX25vcm1hbGl6ZShjaGFyYWN0ZXJzLCBsZW5ndGgsIFVOT1JNX05GQywgVU5P
Uk1fVU5JQ09ERV8zXzIsIG5vcm1hbGl6ZWRDaGFyYWN0ZXJzLmRhdGEoKSwgbGVuZ3RoLCAmZXJy
b3IpOwotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cG9wCi0jZW5kaWYKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBp
ZiAoVV9GQUlMVVJFKGVycm9yKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlRGVjb2RlckNHLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlRGVjb2RlckNHLmNw
cAppbmRleCBiN2Q1OTJhOWM4YTI1ZDcwZDM3ZjUxOWY1MTM3YzQyZDNhMzMxYWVlLi44YjYxZTZj
NzZmOTljMzYxNGQ0YTMwYmU2YTBmY2MxZDBjYzQyODE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZURlY29kZXJDRy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VEZWNvZGVyQ0cuY3BwCkBAIC00MjMs
MTQgKzQyMyw5IEBAIE5hdGl2ZUltYWdlUHRyIEltYWdlRGVjb2RlckNHOjpjcmVhdGVGcmFtZUlt
YWdlQXRJbmRleChzaXplX3QgaW5kZXgsIFN1YnNhbXBsaW5nCiAgICAgLy8gd2hpY2ggY2F1c2Vk
IGEgcGVyZm9ybWFuY2UgcmVncmVzc2lvbiBmb3IgdXMgc2luY2UgdGhlIGltYWdlcyBoYWQgdG8g
YmUgcmVzYW1wbGVkL3JlY3JlYXRlZCBldmVyeSB0aW1lIHdlIGNhbGxlZAogICAgIC8vIENHQ29u
dGV4dERyYXdJbWFnZS4gV2Ugbm93IHRlbGwgQ0cgdG8gY2FjaGUgdGhlIGRyYXduIGltYWdlcy4g
U2VlIGFsc28gPHJkYXI6Ly9wcm9ibGVtLzE0MzY2NzU1PiAtCiAgICAgLy8gQ29yZUdyYXBoaWNz
IG5lZWRzIHRvIHVuLWRlcHJlY2F0ZSBrQ0dJbWFnZUNhY2hpbmdUZW1wb3Jhcnkgc2luY2UgaXQn
cyBzdGlsbCBub3QgdGhlIGRlZmF1bHQuCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIENHSW1hZ2VTZXRDYWNoaW5nRmxhZ3MoaW1hZ2UuZ2V0KCks
IGtDR0ltYWdlQ2FjaGluZ1RlbXBvcmFyeSk7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAgICAgCiAgICAgU3RyaW5nIHV0
aSA9IHRoaXMtPnV0aSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViR0xMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvV2ViR0xMYXllci5oCmluZGV4IGQ2YjllMTA1YjdhOTcyYzUyZWNlZmFkYjFjNWQ1
NWNiNmY4NDQ5MjkuLjYwOTIyMmE5N2IyZjRlZWYxZDAxY2M5MmJmMTI2ZThmMzI3YTZiOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExh
eWVyLmgKQEAgLTM0LDggKzM0LDcgQEAgY2xhc3MgR3JhcGhpY3NMYXllcjsKIGNsYXNzIEdyYXBo
aWNzQ29udGV4dDNEOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiAjaWYgVVNFKE9QRU5HTCkKIEBp
bnRlcmZhY2UgV2ViR0xMYXllciA6IENBTGF5ZXIKQEAgLTY3LDQgKzY2LDQgQEAgY2xhc3MgR3Jh
cGhpY3NDb250ZXh0M0Q7CiAKIEBlbmQKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250
cm9sbGVyQ29yZVRleHQubW0KaW5kZXggZTg5MDFiYzEzYWRhNDA1MjMyZDBkM2ZmNDQ1MTk2M2Q3
ZDc1NjViMi4uNmNjZTMxMjkwYzQ0NTc4MjFmYjY3OWFiMDM0ZTYxZWQxNzYyN2I5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29u
dHJvbGxlckNvcmVUZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQpAQCAtMTU4LDEwICsxNTgsOSBA
QCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNo
YXJhY3RlcnMoY29uc3QgVUNoYXIqIGNwLAogCiAgICAgICAgIFByb3ZpZGVySW5mbyBpbmZvID0g
eyBjcCwgbGVuZ3RoLCBzdHJpbmdBdHRyaWJ1dGVzLmdldCgpIH07CiAgICAgICAgIC8vIEZJWE1F
OiBTb21lIFNES3MgY29tcGxhaW4gdGhhdCB0aGUgc2Vjb25kIHBhcmFtZXRlciBiZWxvdyBjYW5u
b3QgYmUgbnVsbC4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdub25udWxsIgorICAgICAgICBBTExPV19OVUxMX0FSR1VN
RU5UX0JFR0lOCiAgICAgICAgIFJldGFpblB0cjxDVFR5cGVzZXR0ZXJSZWY+IHR5cGVzZXR0ZXIg
PSBhZG9wdENGKENUVHlwZXNldHRlckNyZWF0ZVdpdGhVbmlDaGFyUHJvdmlkZXJBbmRPcHRpb25z
KCZwcm92aWRlU3RyaW5nQW5kQXR0cmlidXRlcywgMCwgJmluZm8sIG1fcnVuLmx0cigpID8gbHRy
VHlwZXNldHRlck9wdGlvbnMgOiBydGxUeXBlc2V0dGVyT3B0aW9ucykpOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19OVUxMX0FSR1VNRU5UX0VORAogCiAgICAg
ICAgIGxpbmUgPSBhZG9wdENGKENUVHlwZXNldHRlckNyZWF0ZUxpbmUodHlwZXNldHRlci5nZXQo
KSwgQ0ZSYW5nZU1ha2UoMCwgMCkpKTsKICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbQppbmRleCA2MTQzYjUxZDQzNjQ1ZDVh
ZDQ4YzM5NWFmN2M0ZWEyNjQzM2Q3YzRhLi42NWJiMTM5MDI0NDczNWVjMGIzZjZhZTVmZDY4ODE0
OTEyNjlkMWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvSWNvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
SWNvbk1hYy5tbQpAQCAtMzYsMTAgKzM2LDkgQEAgSWNvbjo6SWNvbihOU0ltYWdlICppbWFnZSkK
ICAgICA6IG1fbnNJbWFnZShpbWFnZSkKIHsKICAgICAvLyBOZWVkIHRoaXMgYmVjYXVzZSBXZWJD
b3JlIHVzZXMgQXBwS2l0J3MgZmxpcHBlZCBjb29yZGluYXRlIHN5c3RlbSBleGNsdXNpdmVseS4K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtpbWFnZSBzZXRGbGlwcGVkOllFU107Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiB9CiAKIEljb246On5JY29uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9QREZEb2N1bWVudEltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50SW1hZ2VNYWMubW0KaW5kZXggNmRhOTIx
Yjk4YWYyZjk0OGNiYWMyNjM1OTBhMzRjZGJjODhkYjViMi4uMjcyNmJkY2UwY2MxZDBjMDMyZGQ1
Mzc0ZjhiZjFiNzg1OGFhZTA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL1BERkRvY3VtZW50SW1hZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50SW1hZ2VNYWMubW0KQEAgLTczLDEwICs3
Myw5IEBAIHZvaWQgUERGRG9jdW1lbnRJbWFnZTo6ZHJhd1BERlBhZ2UoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0KQogICAgIGJvb2wgYWxsb3dzU3VicGl4ZWxRdWFudGl6YXRpb24gPSBDR0NvbnRl
eHRHZXRBbGxvd3NGb250U3VicGl4ZWxRdWFudGl6YXRpb24oY29udGV4dC5wbGF0Zm9ybUNvbnRl
eHQoKSk7CiAgICAgYm9vbCBhbGxvd3NTdWJwaXhlbFBvc2l0aW9uaW5nID0gQ0dDb250ZXh0R2V0
QWxsb3dzRm9udFN1YnBpeGVsUG9zaXRpb25pbmcoY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSk7
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtbbV9kb2N1bWVudCBwYWdlQXRJbmRleDowXSBk
cmF3V2l0aEJveDprUERGRGlzcGxheUJveENyb3BCb3hdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgQ0dD
b250ZXh0U2V0QWxsb3dzRm9udFNtb290aGluZyhjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBh
bGxvd3NTbW9vdGhpbmcpOwogICAgIENHQ29udGV4dFNldEFsbG93c0ZvbnRTdWJwaXhlbFF1YW50
aXphdGlvbihjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBhbGxvd3NTdWJwaXhlbFF1YW50aXph
dGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
V2ViS2l0TlNJbWFnZUV4dHJhcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9XZWJLaXROU0ltYWdlRXh0cmFzLm1tCmluZGV4IDQ2NjRmNjZmNzM4NTczZGZhYjkwNTRl
OTQzYTE0ZTE5MGJlYzJmODcuLjdmM2QxNjU3ODZiNmMzMjE4MDQ5MjE2NGI1YTZiN2U1ZmU3MWFi
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJL
aXROU0ltYWdlRXh0cmFzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9XZWJLaXROU0ltYWdlRXh0cmFzLm1tCkBAIC0zNywxMCArMzcsOSBAQAogICAgIFt0cmFu
c2Zvcm0gc2NhbGVCeTpkZXZpY2VTY2FsZUZhY3Rvcl07CiAKICAgICBOU1JlY3QgYm91bmRzID0g
eyBOU1plcm9Qb2ludCwgc2VsZi5zaXplIH07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBCT09M
IGZsaXBwZWRPcmllbnRhdGlvbiA9IHNlbGYuaXNGbGlwcGVkOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtz
ZWxmIGxvY2tGb2N1c1dpdGhSZWN0OmJvdW5kcyBjb250ZXh0Om5pbCBoaW50czpAeyBOU0ltYWdl
SGludENUTSA6IHRyYW5zZm9ybSB9IGZsaXBwZWQ6ZmxpcHBlZE9yaWVudGF0aW9uXTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0KaW5kZXggNWZiMjE1
YTI5NzBkZDk2MmFhMGJkY2E5ODNhOTEwNGVkNGQ0M2UxMC4uZDA0NThkNmE5N2U3OTY2OWNjN2Qy
NTllZWQxZDRiMjJlMDE5YTJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0RyYWdJbWFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJh
Z0ltYWdlSU9TLm1tCkBAIC01Miw4ICs1Miw3IEBACiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbnVsbGFiaWxp
dHktY29tcGxldGVuZXNzIgorSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1XbnVsbGFiaWxp
dHktY29tcGxldGVuZXNzIikKIAogU09GVF9MSU5LX0ZSQU1FV09SSyhVSUtpdCkKIFNPRlRfTElO
S19DTEFTUyhVSUtpdCwgVUlGb250KQpAQCAtNjMsNyArNjIsNyBAQCBTT0ZUX0xJTksoVUlLaXQs
IFVJR3JhcGhpY3NHZXRDdXJyZW50Q29udGV4dCwgQ0dDb250ZXh0UmVmLCAodm9pZCksICgpKQog
U09GVF9MSU5LKFVJS2l0LCBVSUdyYXBoaWNzR2V0SW1hZ2VGcm9tQ3VycmVudEltYWdlQ29udGV4
dCwgVUlJbWFnZSAqLCAodm9pZCksICgpKQogU09GVF9MSU5LKFVJS2l0LCBVSUdyYXBoaWNzRW5k
SW1hZ2VDb250ZXh0LCB2b2lkLCAodm9pZCksICgpKQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCitJR05PUkVfQ0xBTkdfV0FSTklOR19FTkQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQppbmRleCA1NjEw
MmZhMjkwN2FmODRmZTEzMzAyMWYwOGU0ZWY0M2IyN2RjOTkyLi4yMDFjYjMzOGJiZDdkYzc1M2Iz
MzVhMzAwNjJjMmI5MTI2YjExOTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9E
cmFnSW1hZ2VNYWMubW0KQEAgLTcxLDEwICs3MSw5IEBAIFJldGFpblB0cjxOU0ltYWdlPiBzY2Fs
ZURyYWdJbWFnZShSZXRhaW5QdHI8TlNJbWFnZT4gaW1hZ2UsIEZsb2F0U2l6ZSBzY2FsZSkKICAg
ICBOU1NpemUgbmV3U2l6ZSA9IE5TTWFrZVNpemUoKG9yaWdpbmFsU2l6ZS53aWR0aCAqIHNjYWxl
LndpZHRoKCkpLCAob3JpZ2luYWxTaXplLmhlaWdodCAqIHNjYWxlLmhlaWdodCgpKSk7CiAgICAg
bmV3U2l6ZS53aWR0aCA9IHJvdW5kZihuZXdTaXplLndpZHRoKTsKICAgICBuZXdTaXplLmhlaWdo
dCA9IHJvdW5kZihuZXdTaXplLmhlaWdodCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbaW1h
Z2Ugc2V0U2NhbGVzV2hlblJlc2l6ZWQ6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbaW1hZ2Ugc2V0
U2l6ZTpuZXdTaXplXTsKICAgICByZXR1cm4gaW1hZ2U7CiB9CkBAIC0zMTIsMTAgKzMxMSw5IEBA
IERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKEVsZW1lbnQmIGVsZW1lbnQsIFVS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpCiAgICAgUmV0YWluUHRyPE5TSW1hZ2U+IGRyYWdJbWFn
ZSA9IGFkb3B0TlMoW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aFNpemU6aW1hZ2VTaXplXSk7CiAg
ICAgW2RyYWdJbWFnZSBfd2ViX2xvY2tGb2N1c1dpdGhEZXZpY2VTY2FsZUZhY3RvcjpkZXZpY2VT
Y2FsZUZhY3Rvcl07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEdyYXBoaWNzQ29udGV4dCBj
b250ZXh0KChDR0NvbnRleHRSZWYpW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XS5n
cmFwaGljc1BvcnQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA8IDEwMTMwMAogICAgIGNvbnRleHQudHJhbnNsYXRlKGxpbmtJbWFnZVNoYWRvd1Jh
ZGl1cywgbGlua0ltYWdlU2hhZG93UmFkaXVzIC0gbGlua0ltYWdlU2hhZG93T2Zmc2V0WSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTGVnYWN5TlNQYXN0ZWJvYXJk
VHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9MZWdhY3lOU1Bhc3RlYm9hcmRU
eXBlcy5oCmluZGV4IDA3YWE5NWZmMDhhMDM3ODI2MGE4MmEwZjU2NWZhODhiOGJiODU2NTQuLmQz
MjQyOTAzYjc4OTQ4NjMzNDFiMzFmMGMzOTRkZDkyZjYwMzU0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9MZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9MZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oCkBAIC0y
Nyw4ICsyNyw3IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODksNiArODgsNiBAQCBpbmxpbmUgTlNTdHJpbmcgKmxl
Z2FjeUZpbGVzUHJvbWlzZVBhc3RlYm9hcmRUeXBlKCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1t
CmluZGV4IGM5OGZjMjg1OWZmYzc5ZTE5NTQ4ZjE4NjdlMzMwNjBiMTY4M2IwNzMuLjQxZTQyNWJj
ZjkyNmVhNmU2MjljMDEwZDM3N2IzNTAwNTYwMzFmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbQpA
QCAtMzIsOCArMzIsNyBAQCBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQ6OkxvY2FsQ3VycmVu
dEdyYXBoaWNzQ29udGV4dChHcmFwaGljc0NvbnRleHQmIGdyYXBoaQogewogICAgIGdyYXBoaWNz
Q29udGV4dC5zYXZlKCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENHQ29udGV4dFJlZiBj
Z0NvbnRleHQgPSB0aGlzLT5jZ0NvbnRleHQoKTsKICAgICBpZiAoY2dDb250ZXh0ID09IFtbTlNH
cmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF0pIHsKICAgICAgICAg
bV9zYXZlZE5TR3JhcGhpY3NDb250ZXh0ID0gMDsKQEAgLTQyLDcgKzQxLDcgQEAgTG9jYWxDdXJy
ZW50R3JhcGhpY3NDb250ZXh0OjpMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQoR3JhcGhpY3ND
b250ZXh0JiBncmFwaGkKIAogICAgIG1fc2F2ZWROU0dyYXBoaWNzQ29udGV4dCA9IFtbTlNHcmFw
aGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIHJldGFpbl07CiAgICAgTlNHcmFwaGljc0NvbnRl
eHQqIG5ld0NvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0V2l0aEdy
YXBoaWNzUG9ydDpjZ0NvbnRleHQgZmxpcHBlZDpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtOU0dy
YXBoaWNzQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDpuZXdDb250ZXh0XTsKICAgICBtX2RpZFNl
dEdyYXBoaWNzQ29udGV4dCA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IGZkNmU5Mjk4Nzc0ZmFmNGZlODczNWJmMjc1NjVhZGM5
NTMyYmY2MzYuLjRmZDA4ZDE0MzgzMDM5NmQzM2I0ODI3Nzk5YTY4MzUxYjQ3OTEzZmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC05OSwxOSAr
OTksMTcgQEAgUGFzdGVib2FyZDo6UGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRO
YW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcHJvbWkKIAogc3RkOjp1bmlxdWVfcHRyPFBhc3Rl
Ym9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCiB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihOU0dlbmVy
YWxQYm9hcmQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIHN0
ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJv
cCgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQ
YXN0ZWJvYXJkPihOU0RyYWdQYm9hcmQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiBzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJh
Z0RhdGEmIGRyYWdEYXRhKQpAQCAtNjE0LDE4ICs2MTIsMTYgQEAgc3RhdGljIHZvaWQgc2V0RHJh
Z0ltYWdlSW1wbChOU0ltYWdlICppbWFnZSwgTlNQb2ludCBvZmZzZXQpCiAgICAgUmV0YWluUHRy
PE5TQml0bWFwSW1hZ2VSZXA+IGJpdG1hcEltYWdlOwogICAgIGlmICghaW1hZ2VSZXAgfHwgIVtp
bWFnZVJlcCBpc0tpbmRPZkNsYXNzOltOU0JpdG1hcEltYWdlUmVwIGNsYXNzXV0gfHwgIU5TRXF1
YWxTaXplcyhpbWFnZVJlcC5zaXplLCBpbWFnZVNpemUpKSB7CiAgICAgICAgIFtpbWFnZSBsb2Nr
Rm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBiaXRtYXBJbWFnZSA9IGFk
b3B0TlMoW1tOU0JpdG1hcEltYWdlUmVwIGFsbG9jXSBpbml0V2l0aEZvY3VzZWRWaWV3UmVjdDoq
KE5TUmVjdCopJmltYWdlUmVjdF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgW2ltYWdlIHVu
bG9ja0ZvY3VzXTsKICAgICAgICAgCiAgICAgICAgIC8vIHdlIG1heSBoYXZlIHRvIGZsaXAgdGhl
IGJpdHMgd2UganVzdCByZWFkIGlmIHRoZSBpbWFnZSB3YXMgZmxpcHBlZCBzaW5jZSBpdCBtZWFu
cyB0aGUgY2FjaGUgd2FzIGFsc28KICAgICAgICAgLy8gYW5kIENvcmVEcmFnU2V0SW1hZ2UgY2Fu
J3QgdGFrZSBhIHRyYW5zZm9ybSBmb3IgcmVuZGVyaW5nLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgICAgICBmbGlwSW1hZ2UgPSBpbWFnZS5pc0ZsaXBwZWQ7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgIH0gZWxzZSB7CiAgICAgICAgIGZsaXBJbWFnZSA9IGZhbHNlOwogICAgICAgICBiaXRtYXBJ
bWFnZSA9IChOU0JpdG1hcEltYWdlUmVwICopaW1hZ2VSZXA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggY2U2
ZTAwYmE3MDJiNzc0YTQwNDMyOWQ3ZDQ1NWRlYzExZjYwNjg1MS4uODIyMzVlNTY2ZGJjYmNhN2Fl
MmFiNmFkODE0ZjcxYWY5OWJmY2VlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpAQCAtNDYsMTAgKzQ2LDkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBOU1BvaW50IGdsb2JhbFBvaW50KGNvbnN0IE5TUG9pbnQm
IHdpbmRvd1BvaW50LCBOU1dpbmRvdyAqd2luZG93KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgcmV0dXJuIGZsaXBTY3JlZW5Qb2ludChbd2luZG93IGNvbnZlcnRCYXNlVG9TY3JlZW46d2lu
ZG93UG9pbnRdLCBzY3JlZW4od2luZG93KSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHN0YXRpYyBOU1Bv
aW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU1NMS2V5R2VuZXJhdG9yTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5tbQppbmRleCA0NzAwYjAxOGM1
MzBjMTEyZmI4ZGQxM2QyODczYzEwNDRlN2RjNzE4Li5mYzQwYWExOWIwNGMzYWUzNDcxODAyNzYz
ZjdkZjM4OWE3MjI4YzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U1NMS2V5R2VuZXJhdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
U0xLZXlHZW5lcmF0b3JNYWMubW0KQEAgLTQ0LDggKzQ0LDcgQEAgV1RGX0RFQ0xBUkVfQ0ZfVFlQ
RV9UUkFJVChTZWNBQ0wpOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAKIHN0cnVjdCBQdWJsaWNLZXlBbmRDaGFsbGVuZ2UgewogICAgIENTU01fWDUwOV9TVUJKRUNU
X1BVQkxJQ19LRVlfSU5GTyBzdWJqZWN0UHVibGljS2V5SW5mbzsKQEAgLTIyMyw3ICsyMjIsNyBA
QCBzdGF0aWMgU3RyaW5nIHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyh1bnNpZ25l
ZCBrZXlTaXplLCBjb25zdCBDU3RyaW5nJgogICAgIHJldHVybiBiYXNlNjRFbmNvZGUoZW5jb2Rl
ZFNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZS5EYXRhLCBlbmNvZGVkU2lnbmVkUHVibGljS2V5
QW5kQ2hhbGxlbmdlLkxlbmd0aCk7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
K0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiB2b2lkIGdldFN1cHBvcnRlZEtl
eVNpemVzKFZlY3RvcjxTdHJpbmc+JiBzdXBwb3J0ZWRLZXlTaXplcykKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMubW0KaW5kZXggMjZiNmNiNGYyMWY4YjNj
ODk5MzZkMWQ2ZTYzODdjMTZiODQwNGQzYi4uMDllZDIwZmZlZTM1NDE0OGRiNTU0M2JhMGYzNmNl
M2QzOTY0Zjk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bFZpZXdNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdN
YWMubW0KQEAgLTIzMCwxMCArMjMwLDkgQEAgSW50UmVjdCBTY3JvbGxWaWV3OjpwbGF0Zm9ybUNv
bnRlbnRzVG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcmVjdCkgY29uc3QKICAgICBpZiAoTlNWaWV3
KiBkb2N1bWVudFZpZXcgPSB0aGlzLT5kb2N1bWVudFZpZXcoKSkgewogICAgICAgICBOU1JlY3Qg
dGVtcFJlY3QgPSByZWN0OwogICAgICAgICB0ZW1wUmVjdCA9IFtkb2N1bWVudFZpZXcgY29udmVy
dFJlY3Q6dGVtcFJlY3QgdG9WaWV3Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
ICAgIHRlbXBSZWN0Lm9yaWdpbiA9IFtbZG9jdW1lbnRWaWV3IHdpbmRvd10gY29udmVydEJhc2VU
b1NjcmVlbjp0ZW1wUmVjdC5vcmlnaW5dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgcmV0dXJu
IGVuY2xvc2luZ0ludFJlY3QodGVtcFJlY3QpOwogICAgIH0KICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwpAQCAtMjQ0LDEwICsyNDMsOSBAQCBJbnRQb2ludCBTY3JvbGxWaWV3OjpwbGF0
Zm9ybVNjcmVlblRvQ29udGVudHMoY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAogewogICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICBpZiAoTlNWaWV3KiBkb2N1bWVudFZp
ZXcgPSB0aGlzLT5kb2N1bWVudFZpZXcoKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICBOU1BvaW50IHdpbmRvd0Nvb3JkID0gW1tkb2N1bWVudFZpZXcgd2luZG93XSBjb252ZXJ0
U2NyZWVuVG9CYXNlOiBwb2ludF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICByZXR1cm4gSW50
UG9pbnQoW2RvY3VtZW50VmlldyBjb252ZXJ0UG9pbnQ6d2luZG93Q29vcmQgZnJvbVZpZXc6bmls
XSk7CiAgICAgfQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXggOTU3ZjdjNTA3Mjg4NDFkNGQwNTAxYmJjYjIx
MTZlYzZkMTY2ZGE1MC4uMzQ3MzQyNjhlZWMzZWM0MDZiN2Y1YmU0MjliZjM0MDE1ZDQzZmZhMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQpAQCAtMzU4LDEwICszNTgs
OSBAQCBzdGF0aWMgTlNCdXR0b25DZWxsICpzaGFyZWRDaGVja2JveENlbGwoY29uc3QgQ29udHJv
bFN0YXRlcyYgc3RhdGVzLCBjb25zdCBJbnRTaQogCiBzdGF0aWMgYm9vbCBkcmF3Q2VsbEZvY3Vz
UmluZ1dpdGhGcmFtZUF0VGltZShOU0NlbGwgKmNlbGwsIE5TUmVjdCBjZWxsRnJhbWUsIE5TVmll
dyAqY29udHJvbFZpZXcsIE5TVGltZUludGVydmFsIHRpbWVPZmZzZXQpCiB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gKENHQ29udGV4dFJlZilbW05T
R3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0KTsKIAogICAgIENHRm9jdXNSaW5n
U3R5bGUgZm9jdXNSaW5nU3R5bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIubW0KaW5kZXggYjZlYWRhMzE4MDY0
MDI1MDA2MDJiZmFiMGQzMjk1N2RhNmYyYjQ1MS4uMjhhYzg0MTA1NWNmZTQxNzRhNmIzOTBhNjk3
ZmViMzU4N2MzOTMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dl
YlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9XZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5tbQpAQCAtMzQsOCArMzQsNyBAQAogI2lt
cG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV251bGxhYmlsaXR5LWNvbXBsZXRlbmVzcyIKK0lHTk9SRV9DTEFOR19XQVJO
SU5HX0JFR0lOKCItV251bGxhYmlsaXR5LWNvbXBsZXRlbmVzcyIpCiBTT0ZUX0xJTktfRlJBTUVX
T1JLKEFWS2l0KQogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAw
CiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZLaXQsIEFWVG91Y2hCYXJNZWRpYVNlbGVjdGlv
bk9wdGlvbikKQEAgLTM0Niw3ICszNDUsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TTXV0YWJsZUFy
cmF5PiBtZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPE1lZGlhU2VsZWN0aQogfQog
I2VuZGlmCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9DTEFOR19XQVJO
SU5HX0VORAogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9XaWRnZXRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2lkZ2V0TWFjLm1t
CmluZGV4IDk5NmMxOWQ1NTBmOTEzMWZhMDIzNjBiNjU3Zjg4YmU5ZjllNjY2YmIuLmEzNzNkYWJj
NzBiZDAzNzE0OTk3NTVmMTBiMTY0MWQ0MTAwNGVjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dpZGdldE1hYy5tbQpAQCAtMjA4LDEwICsyMDgsOSBAQCB2b2lkIFdpZGdldDo6cGFp
bnQoR3JhcGhpY3NDb250ZXh0JiBwLCBjb25zdCBJbnRSZWN0JiByLCBTZWN1cml0eU9yaWdpblBh
aW50UG9saQogICAgIFJlZjxXaWRnZXQ+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCiAgICAgTlNH
cmFwaGljc0NvbnRleHQgKmN1cnJlbnRDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGN1cnJl
bnRDb250ZXh0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChjdXJyZW50Q29udGV4dCA9
PSBbW3ZpZXcgd2luZG93XSBncmFwaGljc0NvbnRleHRdIHx8ICFbY3VycmVudENvbnRleHQgaXNE
cmF3aW5nVG9TY3JlZW5dKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAvLyBUaGlzIGlzIHRo
ZSBjb21tb24gY2FzZSBvZiBkcmF3aW5nIGludG8gYSB3aW5kb3cgb3IgYW4gaW5jbHVzaXZlIGxh
eWVyLCBvciBwcmludGluZy4KICAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwog
ICAgICAgICBbdmlldyBkaXNwbGF5UmVjdElnbm9yaW5nT3BhY2l0eTpbdmlldyBjb252ZXJ0UmVj
dDpyIGZyb21WaWV3Olt2aWV3IHN1cGVydmlld11dXTsKQEAgLTIzOCwxMCArMjM3LDkgQEAgdm9p
ZCBXaWRnZXQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgcCwgY29uc3QgSW50UmVjdCYgciwgU2Vj
dXJpdHlPcmlnaW5QYWludFBvbGkKICAgICB9CiAKICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0
ID0gcC5wbGF0Zm9ybUNvbnRleHQoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEFTU0VSVChj
Z0NvbnRleHQgPT0gW2N1cnJlbnRDb250ZXh0IGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0KTsKIAogICAgIE5TUmVjdCB2aWV3RnJh
bWUgPSBbdmlldyBmcmFtZV07CkBAIC0yNTUsMTAgKzI1Myw5IEBAIHZvaWQgV2lkZ2V0OjpwYWlu
dChHcmFwaGljc0NvbnRleHQmIHAsIGNvbnN0IEludFJlY3QmIHIsIFNlY3VyaXR5T3JpZ2luUGFp
bnRQb2xpCiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAgICAgewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgICAgICBOU0dyYXBoaWNzQ29udGV4dCAqbnNDb250ZXh0ID0g
W05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Y2dDb250
ZXh0IGZsaXBwZWQ6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgW3ZpZXcgZGlzcGxheVJl
Y3RJZ25vcmluZ09wYWNpdHk6W3ZpZXcgY29udmVydFJlY3Q6ciBmcm9tVmlldzpbdmlldyBzdXBl
cnZpZXddXSBpbkNvbnRleHQ6bnNDb250ZXh0XTsKICAgICB9CiAgICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKaW5kZXggYjUxMzE4
YzgzNGUyNTRhYTlmNzIzNjVlZmU2N2YzNTQ2NjhjZTlhZS4uNDU2NGMyMGM4MDNiYjViNDY5YWVl
NzNmODA5NDE2NzdmNmIyZTY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgK
QEAgLTM1LDEyICszNSwxMSBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgogI2luY2x1
ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0FM
TE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvbWVkaWFz
dHJlYW1pbnRlcmZhY2UuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX1VO
VVNFRF9QQVJBTUVURVJfRU5ECiAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKaW5kZXggNzI0N2JiODMzODU3ZTQ4ZTk5ZWU3ODZl
NzVlNGE5M2JiMDA1ZDVlZC4uYTFjYjE1NzAwOTk3OTUyMTQ5NDE0NDIxNjIxZThiMzUxOTUzZjBm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKQEAgLTM1LDEyICszNSwxMSBA
QAogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFT
b3VyY2UuaCIKIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVU
RVJfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvbWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4K
IAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfRU5E
CiAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlLmgKaW5kZXggZWE0NTdmN2Q1MzM1MGFmZDE4NDRlZjNjZjQzMjExZjgzMzI5NTZmNC4u
ZGM2MTk1YzczZTkzMzcwYWUyOTYyNWI5NzAxMzhjMjA3NjM0OWI3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlLmgKQEAgLTM1LDEyICszNSwxMSBAQAogI2luY2x1ZGUgIk1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIAotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2Vk
LXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4KIAogI2luY2x1ZGUgPHdl
YnJ0Yy9hcGkvbWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwb3AKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfRU5ECiAKICNpbmNsdWRlIDx3dGYvVGhyZWFk
U2FmZVJlZkNvdW50ZWQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaAppbmRl
eCA1NDhlYTNmMDFkODA3ZTg3Y2UxMWQzMGU2Y2JjZGI3MDJmOTE1NWUxLi4wMDBlMDEzZDRlNzFh
N2NhMmFmNDE3ZDFmYmRhOTAyZWE1NGRjMTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2UuaApAQCAtMzQsMTMgKzM0LDEyIEBACiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUuaCIKICNpbmNsdWRlIDxUaW1lci5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgor
QUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRjL2FwaS9tZWRp
YXN0cmVhbWludGVyZmFjZS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9jb21tb25fdmlkZW8vaW5jbHVk
ZS9pNDIwX2J1ZmZlcl9wb29sLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCitBTExP
V19VTlVTRURfUEFSQU1FVEVSX0VORAogCiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5j
bHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDQXVkaW9Nb2R1bGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENBdWRpb01vZHVsZS5oCmluZGV4IDc5ZTk5ZDdjZTIwNmY4OTI1OTZiZGQ0ZjNkMWNlZjdlNWVi
MzdkZTAuLjU5YmNjMGVhMDFhY2E4ZDdiNjk1ZmE0ODFmYjI1YjJjMTQ2Yzg2YzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENBdWRpb01vZHVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVsZS5oCkBAIC0yOSwxNCArMjksMTMgQEAKIAog
I2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgor
QUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRjL21vZHVsZXMv
YXVkaW9fZGV2aWNlL2luY2x1ZGUvYXVkaW9fZGV2aWNlLmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0
Y19iYXNlL21lc3NhZ2VoYW5kbGVyLmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL3RocmVh
ZC5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BBUkFNRVRF
Ul9FTkQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmNwcAppbmRleCAxYTE0NTNjODliN2MzMjM5ZmZmNWVhMWQyNWIzZDAwNWUzOTUxYzM4
Li5hMTE4YTE3ODEzYzc5ZmEzOWQwNTYxNGYyOWY3M2RjODM3MzZjYTIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJv
dmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTMxLDggKzMxLDcgQEAKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSA8ZGxmY24uaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIK
K0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvYXVk
aW9fY29kZWNzL2J1aWx0aW5fYXVkaW9fZGVjb2Rlcl9mYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d2Vi
cnRjL2FwaS9hdWRpb19jb2RlY3MvYnVpbHRpbl9hdWRpb19lbmNvZGVyX2ZhY3RvcnkuaD4KQEAg
LTQzLDcgKzQyLDcgQEAKICNpbmNsdWRlIDx3ZWJydGMvcGMvcGVlcmNvbm5lY3Rpb25mYWN0b3J5
Lmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL3BoeXNpY2Fsc29ja2V0c2VydmVyLmg+CiAK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0VORAog
CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4IDhmY2NmMjJhMDA1ZmQ3
OTg2MGMyYzk1ODY2MzcwMzY4MTMyMzhkOTYuLjlhZjk0MDY5MWM1MDVmZmIwY2UzYmIxYzc1OTZh
YjMyMjhkYTUzZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC0zNSwx
NSArMzUsMTQgQEAKIAogI2lmIFVTRShMSUJXRUJSVEMpCiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0
ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0JFR0lOCiAKICNpbmNsdWRlIDx3ZWJydGMvYXBp
L3BlZXJjb25uZWN0aW9uaW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS92aWRlb19j
b2RlY3MvdmlkZW9fZW5jb2Rlcl9mYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS92aWRl
b19jb2RlY3MvdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19i
YXNlL3Njb3BlZF9yZWZfcHRyLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCitBTExP
V19VTlVTRURfUEFSQU1FVEVSX0VORAogCiBuYW1lc3BhY2UgcnRjIHsKIGNsYXNzIE5ldHdvcmtN
YW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29h
Lm1tCmluZGV4IDRiNDI1ZjliYTYyYjBmM2YwOTNhOTA2ZmQ0YjJhZTQ5YzJhNDNjM2UuLjM4MjJl
YzBkNTM5M2NmZTJmMzg0YjJjN2JhOWI0NzEwMjRhZWI5YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KQEAgLTM0LDEyICszNCwxMSBAQAog
I2luY2x1ZGUgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgogI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVk
aWFTb2Z0TGluay5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0FMTE9XX1VOVVNF
RF9QQVJBTUVURVJfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0
aWxpdGllcy5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19VTlVTRURf
UEFSQU1FVEVSX0VORAogCiAjaW5jbHVkZSA8d3RmL2NmL1R5cGVDYXN0c0NGLmg+CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCmluZGV4IGVk
MTRjMzRjMzFkNjZjMDVjZWQ1OTVjNjU2MDMwZTcxM2Y2NTU3ODcuLmFjNDcwNjMzZGY5OTc1ODk1
MzA2N2Y4Y2RjZDRkMTJjYTQ1MTk5NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0
Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcApAQCAtMzAsMTQgKzMwLDEzIEBACiAKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorQUxMT1dfVU5VU0VE
X1BBUkFNRVRFUl9CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRjL2FwaS92aWRlby9pNDIwX2J1ZmZl
ci5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9jb21tb25fdmlkZW8vbGlieXV2L2luY2x1ZGUvd2VicnRj
X2xpYnl1di5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5o
PgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19VTlVTRURfUEFSQU1FVEVS
X0VORAogCiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW5jbHVkZSAi
Q29yZVZpZGVvU29mdExpbmsuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKaW5k
ZXggODExOWZkNWU1NTZlNmMxZDdiZmMxZmJhYjRiNWI4ODkxMGMzOWU1Zi4uYzlkMjk2NDQyMWVi
ZGQ4YjQ2NzQwNDZkY2M0YzUwM2M3YWZiNDk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25D
Rk5ldC5jcHAKQEAgLTY0LDEyICs2NCwxMSBAQCBzdGF0aWMgaW5saW5lIENGVHlwZUlEIHR5cGVJ
RCgpIHsgcmV0dXJuIENsYXNzTmFtZSMjR2V0VHlwZUlEKCk7IH0gXAogfTsKIAogI2lmIENPTVBJ
TEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICNlbmRpZgogREVDTEFSRV9DRl9UWVBFX1RSQUlU
KENGSFRUUENvb2tpZSk7CiAjaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZgogCiAj
dW5kZWYgREVDTEFSRV9DRl9UWVBFX1RSQUlUCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAppbmRleCAwOTVh
MGM0YjdkODRhYzljOWFiYWM0NGExYTVmNDZlOWViYzAwMDdhLi41Y2JkYTViZGQ0NjcyOWRlYmI2
YWJmMDQ0ZmQxNTg2NWJjYWYxNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKQEAgLTE3MSwxMiAr
MTcxLDExIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29s
IHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAjZWxzZQogICAgIGlmIChhbGxvd3NB
bnlIVFRQU0NlcnRpZmljYXRlSG9zdHMoKS5jb250YWlucyhmaXJzdFJlcXVlc3QoKS51cmwoKS5o
b3N0KCkudG9TdHJpbmcoKSkpIHsKICAgICAgICAgc3NsUHJvcHMgPSBhZG9wdENGKENGRGljdGlv
bmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9u
YXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShzc2xQcm9w
cy5nZXQoKSwga0NGU3RyZWFtU1NMQWxsb3dzQW55Um9vdCwga0NGQm9vbGVhblRydWUpOwogICAg
ICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShzc2xQcm9wcy5nZXQoKSwga0NGU3RyZWFtU1NMQWxs
b3dzRXhwaXJlZFJvb3RzLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgICAgIENGRGljdGlvbmFyeUFk
ZFZhbHVlKHNzbFByb3BzLmdldCgpLCBrQ0ZTdHJlYW1TU0xBbGxvd3NFeHBpcmVkQ2VydGlmaWNh
dGVzLCBrQ0ZCb29sZWFuVHJ1ZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogI2lmICFQTEFURk9STShXSU4p
IC8vIDxyZGFyOi8vcHJvYmxlbS8zMzk5MzQ2Mj4gLSBEaXNhYmxpbmcgdmFsaWRhdGlvbiBvZiBj
ZXJ0aWZpY2F0ZSBjaGFpbiBicmVha3MgU1NMIG9uIFdpbmRvd3MuCiAgICAgICAgIENGRGljdGlv
bmFyeUFkZFZhbHVlKHNzbFByb3BzLmdldCgpLCBrQ0ZTdHJlYW1TU0xWYWxpZGF0ZXNDZXJ0aWZp
Y2F0ZUNoYWluLCBrQ0ZCb29sZWFuRmFsc2UpOwogI2VuZGlmCkBAIC0yMzQsMTAgKzIzMyw5IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3VsZFVz
ZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgaWYgKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9y
YWdlKQogICAgICAgICBjbGllbnQuc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSAwOwogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICBkLT5tX2Nvbm5lY3Rpb24gPSBhZG9wdENGKENGVVJMQ29u
bmVjdGlvbkNyZWF0ZVdpdGhQcm9wZXJ0aWVzKDAsIHJlcXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0
X2Nhc3Q8Q0ZVUkxDb25uZWN0aW9uQ2xpZW50Kj4oJmNsaWVudCksIHByb3BlcnRpZXNEaWN0aW9u
YXJ5LmdldCgpKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0
U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAppbmRleCA5ZWQ1YWEwYzlkOWJm
MTNlZWEzMWEyOTU2OGEyNDk3NTc0ZTU4NmM0Li45NjM0NzlkNjcyMjBiY2E5OTgwN2MyZWY0YjUw
NjM3ZGNmZWYzYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwCkBAIC02
NjYsMTAgKzY2Niw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6cmVwb3J0RXJyb3JU
b0NsaWVudChDRkVycm9yUmVmIGVycm9yKQogCiAjaWYgUExBVEZPUk0oTUFDKQogCi0jaWYgQ09N
UElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiAgICAgaWYgKENGRXF1
YWwoQ0ZFcnJvckdldERvbWFpbihlcnJvciksIGtDRkVycm9yRG9tYWluT1NTdGF0dXMpKSB7CiAg
ICAgICAgIGNvbnN0IGNoYXIqIGRlc2NyaXB0aW9uT1NTdGF0dXMgPSBHZXRNYWNPU1N0YXR1c0Nv
bW1lbnRTdHJpbmcoc3RhdGljX2Nhc3Q8T1NTdGF0dXM+KGVycm9yQ29kZSkpOwpAQCAtNjc3LDkg
KzY3NCw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6cmVwb3J0RXJyb3JUb0NsaWVu
dChDRkVycm9yUmVmIGVycm9yKQogICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAiT1NTdGF0dXMg
RXJyb3IgIiArIFN0cmluZzo6bnVtYmVyKGVycm9yQ29kZSkgKyAiOiAiICsgZGVzY3JpcHRpb25P
U1N0YXR1czsKICAgICB9CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKLSNlbmRpZgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jcmVhdGUtaHR0cC1oZWFkZXItbmFtZS10YWJsZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3JlYXRlLWh0dHAtaGVhZGVyLW5hbWUtdGFibGUKaW5kZXggZWEyYjc0MzM2NDgz
YjA1MDYzODcxM2ZkNTE3M2E2YjA5YjhkNjA3MC4uNmUxY2ExNDYwNWRiMDkzZDFmMWNiYjZmMzYz
NWQ5NzhlMDExYWZlZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jcmVhdGUtaHR0cC1oZWFkZXItbmFtZS10YWJsZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NyZWF0ZS1odHRwLWhlYWRlci1uYW1lLXRhYmxlCkBAIC05MCwxMSArOTAs
NyBAQCBncGVyZl9maWxlLndyaXRlKCcnJwogCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmll
dy5oPgogCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFz
IgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XaW1wbGljaXQtZmFsbHRocm91
Z2giCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0JFR0lOKCItV2ltcGxpY2l0LWZhbGx0aHJvdWdo
IikKIAogLy8gT2xkZXIgdmVyc2lvbnMgb2YgZ3BlcmYgbGlrZSB0byB1c2UgdGhlIGByZWdpc3Rl
cmAga2V5d29yZC4KICNkZWZpbmUgcmVnaXN0ZXIKQEAgLTE3OSw3ICsxNzUsNyBAQCBTdHJpbmdW
aWV3IGh0dHBIZWFkZXJOYW1lU3RyaW5nKEhUVFBIZWFkZXJOYW1lIGhlYWRlck5hbWUpCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5HX0VORAogI2VuZGlmCiAnJycpCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcAppbmRleCA0MDEz
ZjM3Y2Y3ZTFkN2Y3NzI4ZDhjMDA3ZmZhNjgxNzI2ZDVlMDFkLi40MDVmOTMzOTRlMWU2ZTI5MTM2
YTgwNDYwYjgyYzc2ZmQ3MGE1MGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1RleHRFbmNvZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9UZXh0RW5jb2RpbmcuY3BwCkBAIC02OSwxMCArNjksNyBAQCBTdHJpbmcgVGV4dEVuY29kaW5n
OjpkZWNvZGUoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCwgYm9vbCBzdG9wT25FcnJv
ciwgYgogICAgIHJldHVybiBuZXdUZXh0Q29kZWMoKnRoaXMpLT5kZWNvZGUoZGF0YSwgbGVuZ3Ro
LCB0cnVlLCBzdG9wT25FcnJvciwgc2F3RXJyb3IpOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09S
X0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYKK0FMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAvLyBOT1RFOiBJQ1UncyB1bm9ybV9xdWlja0No
ZWNrIGFuZCB1bm9ybV9ub3JtYWxpemUgZnVuY3Rpb25zIGFyZSBkZXByZWNhdGVkLgogCiBWZWN0
b3I8dWludDhfdD4gVGV4dEVuY29kaW5nOjplbmNvZGUoU3RyaW5nVmlldyB0ZXh0LCBVbmVuY29k
YWJsZUhhbmRsaW5nIGhhbmRsaW5nKSBjb25zdApAQCAtMTEyLDkgKzEwOSw3IEBAIFZlY3Rvcjx1
aW50OF90PiBUZXh0RW5jb2Rpbmc6OmVuY29kZShTdHJpbmdWaWV3IHRleHQsIFVuZW5jb2RhYmxl
SGFuZGxpbmcgaGFuZGxpCiAgICAgcmV0dXJuIG5ld1RleHRDb2RlYygqdGhpcyktPmVuY29kZShT
dHJpbmdWaWV3IHsgc291cmNlLCBzb3VyY2VMZW5ndGggfSwgaGFuZGxpbmcpOwogfQogCi0jaWYg
Q09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRp
ZgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIGNvbnN0IGNoYXIqIFRleHRF
bmNvZGluZzo6ZG9tTmFtZSgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCA4NDAzNTMwZTk5ZDIwYjhk
NDhiYTk0NzdmZjE3OWRlZjZkOGU4OTI4Li4wMTI0ZTllZjg0MDhhYjA1YWMzZTBjZjYxY2QwMTAz
MTYwZjNlOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJS
VENQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTI4LDEzICsyOCwxMiBAQAogCiAjaW5jbHVkZSAiTGli
V2ViUlRDTWFjcm9zLmgiCiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitBTExPV19VTlVTRURf
UEFSQU1FVEVSX0JFR0lOCiAKICNpbmNsdWRlIDx3ZWJydGMvYXBpL21lZGlhc3RyZWFtaW50ZXJm
YWNlLmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS9wZWVyY29ubmVjdGlvbmludGVyZmFjZS5oPgog
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9FTkQK
IAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEdy
YW1tYXIuY3BwCmluZGV4IDMxZGYxYzBkMTU4YTI3OGY0YzA5NmNiMmJhOTExZjNmN2IwMWI5NDMu
LmFiYzNhMjczNDM2ZDgwYmU2ZmVkNTE5ODhiYjVjOTFmOTg0MzNlNzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YUGF0aEdyYW1tYXIuY3BwCkBAIC0yMTU0LDE1ICsyMTU0LDEwIEBAIHl5ZXJyb3JsYWI6CiAg
IC8qIFBhY2lmeSBjb21waWxlcnMgbGlrZSBHQ0Mgd2hlbiB0aGUgdXNlciBjb2RlIG5ldmVyIGlu
dm9rZXMKICAgICAgWVlFUlJPUiBhbmQgdGhlIGxhYmVsIHl5ZXJyb3JsYWIgdGhlcmVmb3JlIG5l
dmVyIGFwcGVhcnMgaW4gdXNlcgogICAgICBjb2RlLiAgKi8KLSNpZiBDT01QSUxFUihDTEFORykK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVd1bnJlYWNoYWJsZS1jb2RlIgotI2VuZGlmCisgIElHTk9SRV9DTEFOR19XQVJO
SU5HX0JFR0lOKCItV3VucmVhY2hhYmxlLWNvZGUiKQogICBpZiAoLypDT05TVENPTkQqLyAwKQog
ICAgICBnb3RvIHl5ZXJyb3JsYWI7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAKICAg
LyogRG8gbm90IHJlY2xhaW0gdGhlIHN5bWJvbHMgb2YgdGhlIHJ1bGUgd2hpY2ggYWN0aW9uIHRy
aWdnZXJlZAogICAgICB0aGlzIFlZRVJST1IuICAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXgg
YzJkNDVkNjZiZDI1OGViODMyYzI1NGZlYjgzNWFhZGU2NzEzZTk0NS4uYzZmMTE3MjM5OWM3MTk3
MWUzZmUwY2QzZWZhYzhjNzFhYjRkYTc1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC0xMTgs
MTIgKzExOCwxMSBAQCBOU0hUVFBDb29raWVTdG9yYWdlICpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6
c3RhdGVsZXNzQ29va2llU3RvcmFnZSgpCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJldGFp
blB0cjxOU0hUVFBDb29raWVTdG9yYWdlPj4gc3RhdGVsZXNzQ29va2llU3RvcmFnZTsKICAgICBp
ZiAoIXN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UuZ2V0KCkpIHsKICNpZiAoUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMzAwKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25v
bm51bGwiCisgICAgICAgIEFMTE9XX05VTExfQVJHVU1FTlRfQkVHSU4KICNlbmRpZgogICAgICAg
ICBzdGF0ZWxlc3NDb29raWVTdG9yYWdlLmdldCgpID0gYWRvcHROUyhbW05TSFRUUENvb2tpZVN0
b3JhZ2UgYWxsb2NdIF9pbml0V2l0aElkZW50aWZpZXI6bmlsIHByaXZhdGU6WUVTXSk7CiAjaWYg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTMw
MCkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfTlVMTF9BUkdV
TUVOVF9FTkQKICNlbmRpZgogICAgICAgICBzdGF0ZWxlc3NDb29raWVTdG9yYWdlLmdldCgpLmdl
dCgpLmNvb2tpZUFjY2VwdFBvbGljeSA9IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Byb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya1Byb2Nlc3NDb2NvYS5tbQppbmRleCBmZDc2NjRjZTYxMzBiZmM3OGM4NTYyOWZhZDk3
Y2M0NzEzNjExNWMxLi5iYjM3OWE0NTMyZTg4ODU3NGJjMzVhOGYwYmM5OWM2NmU4OTA5Y2ZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9j
ZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrUHJvY2Vzc0NvY29hLm1tCkBAIC0yMjMsOCArMjIzLDcgQEAgc3RhdGljIHZvaWQgc2F2ZUNv
b2tpZXMoTlNIVFRQQ29va2llU3RvcmFnZSAqY29va2llU3RvcmFnZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm8KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TeW5jQWxsQ29va2llcyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRlcikgewogICAgIEFTU0VSVCho
YXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMp
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIAogI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCAoUExBVEZPUk0oSU9TKSAm
JiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApCiAgICAgUmVmUHRy
PENhbGxiYWNrQWdncmVnYXRvcj4gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdh
dG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGVyKSk7CkBAIC0yMzYsNyArMjM1LDcg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TeW5jQWxsQ29va2llcyhDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGkKICAgICBjb21wbGV0aW9uSGFuZGVyKCk7CiAjZW5k
aWYKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVByZXBh
cmVUb1N1c3BlbmQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9j
ZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNz
TWFjLm1tCmluZGV4IGMzMTIwYmI1OWEwYTU0YjY5ODcwOTJmYWY1NjkyZDQyNDE1M2U2MTcuLjZl
ZTVkNDg3Y2Q5OGQxN2M3OGNjMmU4YTIwOTAyZTg2MjkyNmNlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0KQEAgLTI2MCwx
MyArMjYwLDEyIEBAIHN0YXRpYyB1bnNpZ25lZCBtb2RhbENvdW50OwogCiBzdGF0aWMgdm9pZCBi
ZWdpbk1vZGFsKCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIE1ha2Ugc3VyZSB0byBt
YWtlIG91cnNlbHZlcyB0aGUgZnJvbnQgcHJvY2VzcwogICAgIFByb2Nlc3NTZXJpYWxOdW1iZXIg
cHNuOwogICAgIEdldEN1cnJlbnRQcm9jZXNzKCZwc24pOwogICAgIFNldEZyb250UHJvY2Vzcygm
cHNuKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIGlmICghbW9kYWxDb3VudCsrKQogICAgICAgICBzZXRN
b2RhbCh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMv
UGx1Z2luUHJvY2Vzc1NoaW0ubW0gYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1Bs
dWdpblByb2Nlc3NTaGltLm1tCmluZGV4IDQwMzZkM2I4NzQ0MDM2ODA3MmIyMGI3ODAyNjE3ZDE5
ZTlkMWIwYTQuLjQ0NmM2MjFiNjllNWM5MmNkYjEwMjgwMTMyNWZlMGI3ZTUxOTA3NWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0u
bW0KKysrIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hp
bS5tbQpAQCAtNDgsOCArNDgsNyBAQCBzdGF0aWMgUGx1Z2luUHJvY2Vzc1NoaW1DYWxsYmFja3Mg
cGx1Z2luUHJvY2Vzc1NoaW1DYWxsYmFja3M7CiAKICNpZm5kZWYgX19MUDY0X18KIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KIAogc3RhdGljIHZvaWQgc2hpbURlYnVnZ2VyKHZvaWQpCiB7CkBAIC0xMzMsNyAr
MTMyLDcgQEAgRFlMRF9JTlRFUlBPU0Uoc2hpbUhpZGVXaW5kb3csIEhpZGVXaW5kb3cpOwogRFlM
RF9JTlRFUlBPU0Uoc2hpbUxTT3BlbkNGVVJMUmVmLCBMU09wZW5DRlVSTFJlZik7CiBEWUxEX0lO
VEVSUE9TRShzaGltTWFjaFZNTWFwLCBtYWNoX3ZtX21hcCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRz
Y2FwZVBsdWdpbk1vZHVsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNj
YXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcAppbmRleCA2MGY0MWViZGZmNjFjODYzNzdjYWZm
MTdjYWViNTZhOTQ0NWVjNzc5Li5kYWQ4YjA5MmYzOTNlOGMxOTJiYTRhZmJlYzZlMzcxMGEwZTUz
NDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05l
dHNjYXBlUGx1Z2luTW9kdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5z
L05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcApAQCAtMjQyLDggKzI0Miw3IEBAIGJv
b2wgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OnRyeUxvYWQoKQogI2lmIFBMVUdJTl9BUkNISVRFQ1RV
UkUoTUFDKQogI2lmbmRlZiBOUF9OT19DQVJCT04KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKICAg
ICAvLyBQbHVnaW5zIChhdCBsZWFzdCBRVCkgcmVxdWlyZSB0aGF0IHlvdSBjYWxsIFVzZVJlc0Zp
bGUgb24gdGhlIHJlc291cmNlIGZpbGUgYmVmb3JlIGxvYWRpbmcgaXQuCiAgICAgUmVzRmlsZVJl
Zk51bSBjdXJyZW50UmVzb3VyY2VGaWxlID0gQ3VyUmVzRmlsZSgpOwpAQCAtMjU4LDcgKzI1Nyw3
IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OnRyeUxvYWQoKQogICAgIC8vIFJlc3RvcmUg
dGhlIHJlc291cmNlIGZpbGUuCiAgICAgVXNlUmVzRmlsZShjdXJyZW50UmVzb3VyY2VGaWxlKTsK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9DaGls
ZFByb2Nlc3NJT1MubW0KaW5kZXggOWJkZDcyZjgzZjQzMTNlNDYwYzVkY2UwYjM5ZWNkNWU1NTdi
NzRjYS4uZThjMDkzODkyMjkwYzFhNTYyNDM0MTlhYjBjNDk2OTMyYzU3ZWJlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9pb3MvQ2hpbGRQcm9jZXNzSU9TLm1tCkBAIC04MCwxMCArODAsOSBA
QCB2b2lkIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNz
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJgogICAgICAgICBpZiAoIXNhbmRib3hQcm9maWxlUGF0
aC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIENTdHJpbmcgcHJvZmlsZVBhdGggPSBGaWxlU3lz
dGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc2FuZGJveFByb2ZpbGVQYXRoKTsKICAgICAg
ICAgICAgIGNoYXIqIGVycm9yQnVmOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAg
ICAgICAgIGlmIChzYW5kYm94X2luaXRfd2l0aF9wYXJhbWV0ZXJzKHByb2ZpbGVQYXRoLmRhdGEo
KSwgU0FOREJPWF9OQU1FRF9FWFRFUk5BTCwgc2FuZGJveFBhcmFtZXRlcnMubmFtZWRQYXJhbWV0
ZXJBcnJheSgpLCAmZXJyb3JCdWYpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAg
ICAgICAgICAgV1RGTG9nQWx3YXlzKCIlczogQ291bGRuJ3QgaW5pdGlhbGl6ZSBzYW5kYm94IHBy
b2ZpbGUgWyVzXSwgZXJyb3IgJyVzJ1xuIiwgZ2V0cHJvZ25hbWUoKSwgcHJvZmlsZVBhdGguZGF0
YSgpLCBlcnJvckJ1Zik7CiAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50
ID0gc2FuZGJveFBhcmFtZXRlcnMuY291bnQoKTsgaSAhPSBjb3VudDsgKytpKQogICAgICAgICAg
ICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzPSVzXG4iLCBzYW5kYm94UGFyYW1ldGVycy5uYW1l
KGkpLCBzYW5kYm94UGFyYW1ldGVycy52YWx1ZShpKSk7CkBAIC05NSwxMCArOTQsOSBAQCB2b2lk
IENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzJgogICAgIH0KICAgICBjYXNlIFNhbmRib3hJbml0aWFsaXphdGlv
blBhcmFtZXRlcnM6OlVzZVNhbmRib3hQcm9maWxlOiB7CiAgICAgICAgIGNoYXIqIGVycm9yQnVm
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBpZiAoc2FuZGJveF9pbml0X3dpdGhf
cGFyYW1ldGVycyhzYW5kYm94UGFyYW1ldGVycy5zYW5kYm94UHJvZmlsZSgpLnV0ZjgoKS5kYXRh
KCksIDAsIHNhbmRib3hQYXJhbWV0ZXJzLm5hbWVkUGFyYW1ldGVyQXJyYXkoKSwgJmVycm9yQnVm
KSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzOiBD
b3VsZG4ndCBpbml0aWFsaXplIHNhbmRib3ggcHJvZmlsZSwgZXJyb3IgJyVzJ1xuIiwgZ2V0cHJv
Z25hbWUoKSwgZXJyb3JCdWYpOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50
ID0gc2FuZGJveFBhcmFtZXRlcnMuY291bnQoKTsgaSAhPSBjb3VudDsgKytpKQogICAgICAgICAg
ICAgICAgIFdURkxvZ0Fsd2F5cygiJXM9JXNcbiIsIHNhbmRib3hQYXJhbWV0ZXJzLm5hbWUoaSks
IHNhbmRib3hQYXJhbWV0ZXJzLnZhbHVlKGkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMv
Q2hpbGRQcm9jZXNzTWFjLm1tCmluZGV4IDA0Mzg3MjY5YmM3NGY5NzUxYTUyZGNiYmQyMDliZjhh
ZTczM2MzZWEuLjIxZTNhZDQzMzNkN2M2YTg5OGQ2Zjg5ODE2MjkzNjI0Njc1NjI1NmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQpAQCAtNTM0LDEwICs1
MzQsOSBAQCBzdGF0aWMgYm9vbCBjb21waWxlQW5kQXBwbHlTYW5kYm94U2xvd0Nhc2UoY29uc3Qg
U3RyaW5nJiBwcm9maWxlT3JQcm9maWxlUGF0aCwgYgogICAgIGNoYXIqIGVycm9yQnVmOwogICAg
IENTdHJpbmcgdGVtcCA9IGlzUHJvZmlsZVBhdGggPyBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVw
cmVzZW50YXRpb24ocHJvZmlsZU9yUHJvZmlsZVBhdGgpIDogcHJvZmlsZU9yUHJvZmlsZVBhdGgu
dXRmOCgpOwogICAgIHVpbnQ2NF90IGZsYWdzID0gaXNQcm9maWxlUGF0aCA/IFNBTkRCT1hfTkFN
RURfRVhURVJOQUwgOiAwOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKHNhbmRib3hfaW5p
dF93aXRoX3BhcmFtZXRlcnModGVtcC5kYXRhKCksIGZsYWdzLCBwYXJhbWV0ZXJzLm5hbWVkUGFy
YW1ldGVyQXJyYXkoKSwgJmVycm9yQnVmKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgV1RG
TG9nQWx3YXlzKCIlczogQ291bGQgbm90IGluaXRpYWxpemUgc2FuZGJveCBwcm9maWxlIFslc10s
IGVycm9yICclcydcbiIsIGdldHByb2duYW1lKCksIHRlbXAuZGF0YSgpLCBlcnJvckJ1Zik7CiAg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9IHBhcmFtZXRlcnMuY291bnQoKTsgaSAh
PSBjb3VudDsgKytpKQogICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIlcz0lc1xuIiwgcGFyYW1l
dGVycy5uYW1lKGkpLCBwYXJhbWV0ZXJzLnZhbHVlKGkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9Db2xvclNwYWNlRGF0YS5tbQppbmRleCA2NWYyYjVhNmQ3ODM2MWY2YzQ1MDVkY2U5MTg1
NjdhYzMxYWM4OGFjLi4zOTFjOGRkZjU0NTZkNDRkMTAxMmQxZmY4YjNjY2MxNDExMWY3MjMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEubW0KKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLm1tCkBAIC04MywxMCAr
ODMsOSBAQCBib29sIENvbG9yU3BhY2VEYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVy
LCBDb2xvclNwYWNlRGF0YSYgY29sb3JTcGFjZURhdAogICAgICAgICBpZiAoIUlQQzo6ZGVjb2Rl
KGRlY29kZXIsIGRhdGEpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgICAgIGNvbG9yU3BhY2VEYXRhLmNnQ29sb3JTcGFjZSA9IGFkb3B0
Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aElDQ1Byb2ZpbGUoZGF0YS5nZXQoKSkpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCmluZGV4IGI4ZTc0M2QyMzYwY2Zl
ZWZjMTdiY2EyNGQ1OTcxMWNkZDU4YTViN2UuLjI3ZDNhODU5N2Q2OGE0NmI2NGYxZjk2MGIwYWU2
YzQzODg3YjQxMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TYW5kYm94
RXh0ZW5zaW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TYW5kYm94RXh0
ZW5zaW9uTWFjLm1tCkBAIC04NiwxMiArODYsMTEgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAg
IHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJl
YWRPbmx5OgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAgIHJldHVybiBz
YW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9maWxlKEFQUF9TQU5EQk9YX1JFQUQsIHBhdGgsIDApOwog
ICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRXcml0ZToKICAgICAgICAg
ICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9maWxlKEFQUF9TQU5EQk9YX1JFQURf
V1JJVEUsIHBhdGgsIDApOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIGNhc2UgU2FuZGJv
eEV4dGVuc2lvbjo6VHlwZTo6R2VuZXJpYzoKICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4
dGVuc2lvbl9pc3N1ZV9nZW5lcmljKHBhdGgsIDApOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBmMzQ5YzE3MzhiMWIy
Y2VlNWVmZTY1M2EwMWYxMWIyNmExMmRiMTkwLi44NmJkNWJiMGQxMDY4NWNlZGMyYmM1NDQ5ZjQx
ZDc1YWNlYjA2M2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KQEAgLTM5OTksMTAgKzM5OTksOSBAQCBXRUJDT1JFX0NPTU1BTkQoeWFua0Fu
ZFNlbGVjdCkKIAogLSAoaWQpX3dlYl9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZToo
TlNTdHJpbmcgKilhdHRyaWJ1dGUKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBb
c3VwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOmF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiB9CiAKIC0gKHZvaWQpX3dlYl9zdXBlckRvQ29tbWFuZEJ5U2VsZWN0b3I6KFNFTClzZWxlY3Rv
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbi5tbQppbmRleCA4NDc4ZGIyY2UzYzY3ZWU1MDc3ZWM1MGIwZTUw
NDFiZTk0YWVmNTkyLi42NDFhMmVjMzQyZTQ0Mzg4OWJkYTYwOGNlYTgwYjA5OWMyNDcxZGUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbi5tbQpAQCAtNTAwLDggKzUwMCw3IEBAIHN0YXRpYyBOU1N0cmlu
ZyAqZGVmYXVsdEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCgpCiAgICAgcmV0dXJuIGhhbmRs
ZXIgPyBzdGF0aWNfY2FzdDxXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYSo+KGhhbmRs
ZXIuZ2V0KCkpLT5hcGlIYW5kbGVyKCkgOiBuaWw7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIC0g
KF9XS1dlYnNpdGVEYXRhU3RvcmUgKilfd2Vic2l0ZURhdGFTdG9yZQogewpAQCAtNTEzLDcgKzUx
Miw3IEBAIHN0YXRpYyBOU1N0cmluZyAqZGVmYXVsdEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2Vu
dCgpCiAgICAgc2VsZi53ZWJzaXRlRGF0YVN0b3JlID0gd2Vic2l0ZURhdGFTdG9yZSA/IHdlYnNp
dGVEYXRhU3RvcmUtPl9kYXRhU3RvcmUuZ2V0KCkgOiBudWxscHRyOwogfQogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAog
I2lmIFBMQVRGT1JNKElPUykKIC0gKFdLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5ICop
X2NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGQ1NjIxYjAwNGU1
ZDA3NzI4MWZkNTBmOTQ5YmZmYTJiY2UzZTc4MjQuLmJhNGJmM2ExZmQ2YWZiZDljMmFiODFkNWNi
ZGRiZGMxZTMwYTU4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC00MCw4ICs0MCw3IEBAIHR5cGVk
ZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVR5cGVzKSB7CiAgICAgX1dL
V2Vic2l0ZURhdGFUeXBlV2ViU1FMRGF0YWJhc2VzID0gMSA8PCA1LAogfTsKIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KIAogQGltcGxlbWVudGF0aW9uIF9XS1dlYnNpdGVEYXRhU3RvcmUKIApAQCAtMTA3LDYg
KzEwNiw2IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNTZXQ+IHRvV0tXZWJzaXRlRGF0YVR5cGVzKF9X
S1dlYnNpdGVEYXRhVHlwZXMgd2Vic2l0ZURhdGFUeXBlCiAKIEBlbmQKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJW
aWV3LmNwcAppbmRleCBlNjg3MzExNTI1ZjI0MTRlMDRiNTgwNTc1YTA3ZDNkM2RlYTM1M2FhLi4z
MmRkZGRmNzdhMTViMjFkOTliZjllNTlhNWVhNzlkMTgzZDM2NGExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMjA4Miw4
ICsyMDgyLDcgQEAgdm9pZCB3ZWJraXRXZWJWaWV3UnVuQXNNb2RhbChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KQogCiAjaWYgUExBVEZPUk0oR1RLKQogLy8gVGhpcyBpcyB0byBzdXBwcmVzcyB3YXJu
aW5ncyBhYm91dCBnZGtfdGhyZWFkc19sZWF2ZSBhbmQgZ2RrX3RocmVhZHNfZW50ZXIuCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIGdka190aHJlYWRzX2xlYXZlKCk7CiAjZW5kaWYKIApAQCAtMjA5MSw3
ICsyMDkwLDcgQEAgdm9pZCB3ZWJraXRXZWJWaWV3UnVuQXNNb2RhbChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KQogCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIGdka190aHJlYWRzX2VudGVyKCk7Ci0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXcubW0KaW5kZXggYmM1ZGUyYjU5ZjJmNGMyMWFlNTRiNjBhMzQzM2RjODRkYTJkNTBlNC4uOTZk
M2I4OTA5YTZhY2E2N2U0MjViNDkzMjliYzYzZTVlZjExMWE4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTk3OCwxMCArOTc4LDkgQEAgU29tZSBvdGhl
ciBlZGl0aW5nLXJlbGF0ZWQgbWV0aG9kcyBzdGlsbCB1bmltcGxlbWVudGVkOgogCiAtIChpZClf
d2ViX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOihOU1N0cmluZyAqKWF0dHJpYnV0
ZQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgcmV0dXJuIFtzdXBlciBhY2Nlc3NpYmlsaXR5
QXR0cmlidXRlVmFsdWU6YXR0cmlidXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogLSAodm9pZClfd2Vi
X3N1cGVyRG9Db21tYW5kQnlTZWxlY3RvcjooU0VMKXNlbGVjdG9yCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZENsaWVudC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL0Rvd25sb2FkQ2xpZW50Lm1tCmluZGV4IDBlYjFjZjY0MDMyODY4
NjFhYTQyNzRkZmM3NDQ4NDNmMGJkMDBhNmEuLjcyNDM0NDg3ZDQyMWNiZTFmOWJhMmVhNmNiYWNk
MThkMzI4ODU1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0Rv
d25sb2FkQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0Rvd25s
b2FkQ2xpZW50Lm1tCkBAIC0yMDIsMTAgKzIwMiw5IEBAIHZvaWQgRG93bmxvYWRDbGllbnQ6OmRl
Y2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKFdlYlByb2Nlc3NQb29sJiwgRG93
CiAKICAgICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMuZG93bmxvYWREZWNpZGVEZXN0aW5hdGlvbldp
dGhTdWdnZXN0ZWRGaWxlbmFtZUFsbG93T3ZlcndyaXRlKSB7CiAgICAgICAgIEJPT0wgYWxsb3dP
dmVyd3JpdGUgPSBOTzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgTlNTdHJpbmcg
KmRlc3RpbmF0aW9uID0gW21fZGVsZWdhdGUgX2Rvd25sb2FkOndyYXBwZXIoZG93bmxvYWRQcm94
eSkgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWU6ZmlsZW5hbWUgYWxsb3dP
dmVyd3JpdGU6JmFsbG93T3ZlcndyaXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGFsbG93T3ZlcndyaXRlID8gQWxsb3dPdmVyd3JpdGU6OlllcyA6IEFsbG93
T3ZlcndyaXRlOjpObywgZGVzdGluYXRpb24pOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFttX2Rl
bGVnYXRlIF9kb3dubG9hZDp3cmFwcGVyKGRvd25sb2FkUHJveHkpIGRlY2lkZURlc3RpbmF0aW9u
V2l0aFN1Z2dlc3RlZEZpbGVuYW1lOmZpbGVuYW1lIGNvbXBsZXRpb25IYW5kbGVyOkJsb2NrUHRy
PHZvaWQoQk9PTCwgTlNTdHJpbmcgKik+Ojpmcm9tQ2FsbGFibGUoW2NoZWNrZXIgPSBDb21wbGV0
aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUobV9kZWxlZ2F0ZS5nZXQoKS5nZXQoKSwgQHNl
bGVjdG9yKF9kb3dubG9hZDpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZTpj
b21wbGV0aW9uSGFuZGxlcjopKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0gKEJPT0wgYWxsb3dPdmVyd3JpdGUsIE5TU3RyaW5nICpkZXN0aW5hdGlvbikg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTGVnYWN5Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCmluZGV4IDE5YTU5YjQyY2FiN2I1
NDdlZDk0NDYwZTcyZmMwMzk2Y2ZlNzkyODcuLjZjMTI1Mzk2NTUwN2U1Yzk1MmNjMjc4MzEyZTAw
ZDhjMzU0NDcxODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xl
Z2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0KQEAgLTU2
LDEyICs1NiwxMSBAQAogICAgIF9jdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eSA9IGN1c3RvbVBy
b3RvY29sTWFuYWdlclByb3h5OwogICAgIF9jdXN0b21Qcm90b2NvbElEID0gY3VzdG9tUHJvdG9j
b2xJRDsKICAgICBfc3RvcmFnZVBvbGljeSA9IE5TVVJMQ2FjaGVTdG9yYWdlTm90QWxsb3dlZDsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIF91cmxDb25uZWN0aW9uID0gW1tOU1VSTENvbm5lY3Rp
b24gYWxsb2NdIGluaXRXaXRoUmVxdWVzdDpyZXF1ZXN0IGRlbGVnYXRlOnNlbGYgc3RhcnRJbW1l
ZGlhdGVseTpOT107CiAgICAgW191cmxDb25uZWN0aW9uIHNjaGVkdWxlSW5SdW5Mb29wOltOU1J1
bkxvb3AgbWFpblJ1bkxvb3BdIGZvck1vZGU6TlNSdW5Mb29wQ29tbW9uTW9kZXNdOwogICAgIFtf
dXJsQ29ubmVjdGlvbiBzdGFydF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICByZXR1cm4gc2VsZjsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0
ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQpp
bmRleCBkNWFjZDY0MzhkMGY1NTNmOTU4YTcyMDY2NmZmNDJkMWMwM2JhZmQ0Li5mYjlkYjY0MDQ2
NzlhNTk0YTA1YTExMTllNGE2YjI2NTU2M2I1YjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC01NzUsMTAgKzU3NSw5IEBAIHZv
aWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKFdlYlBhZ2VQCiAgICAgICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25h
dmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25Vc2VySW5mb0RlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcykKICAgICAgICAgICAg
IFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93
ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uOndyYXBwZXIobmF2aWdhdGlvbkFjdGlvbikgdXNlckluZm86dXNlckluZm8gPyBz
dGF0aWNfY2FzdDxpZCA8TlNTZWN1cmVDb2Rpbmc+Pih1c2VySW5mby0+d3JhcHBlcigpKSA6IG5p
bCBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKICAgICAgICAgZWxzZSB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgWyhpZCA8V0tOYXZpZ2F0
aW9uRGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9uRGVsZWdhdGUgX3dlYlZpZXc6bV9uYXZpZ2F0
aW9uU3RhdGUubV93ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246d3JhcHBl
cihuYXZpZ2F0aW9uQWN0aW9uKSBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgp
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAg
YXV0byBkZWNpc2lvbkhhbmRsZXJXaXRob3V0UG9saWNpZXMgPSBbZGVjaXNpb25IYW5kbGVyV2l0
aFBvbGljaWVzID0gV1RGTW92ZShkZWNpc2lvbkhhbmRsZXJXaXRoUG9saWNpZXMpXSAoV0tOYXZp
Z2F0aW9uQWN0aW9uUG9saWN5IGFjdGlvblBvbGljeSkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBmMGI5ZDMwMDBhOWU2NTQ1YWRi
MGIxMjQ1MzFmNTcwZTQ4MjI1OWI0Li4zZWNlODIwZWQ0YjMxNjQzNjkzZjUyMjQ3ZWRhZDljNjhi
ODFmZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0K
QEAgLTIwMywxMyArMjAzLDEyIEBAIHZvaWQgVUlEZWxlZ2F0ZTo6Q29udGV4dE1lbnVDbGllbnQ6
Om1lbnVGcm9tUHJvcG9zZWRNZW51KFdlYlBhZ2VQcm94eSYsIE5TTWVudSAqCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAobV91aURlbGVn
YXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdDb250ZXh0TWVudUZvckVsZW1lbnQpCiAgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilk
ZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNvbnRleHRNZW51Om1lbnUg
Zm9yRWxlbWVudDpjb250ZXh0TWVudUVsZW1lbnRJbmZvLmdldCgpXSk7CiAKICAgICBjb21wbGV0
aW9uSGFuZGxlcihbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzpt
X3VpRGVsZWdhdGUubV93ZWJWaWV3IGNvbnRleHRNZW51Om1lbnUgZm9yRWxlbWVudDpjb250ZXh0
TWVudUVsZW1lbnRJbmZvLmdldCgpIHVzZXJJbmZvOnVzZXJJbmZvID8gc3RhdGljX2Nhc3Q8aWQg
PE5TU2VjdXJlQ29kaW5nPj4odXNlckluZm8tPndyYXBwZXIoKSkgOiBuaWxdKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCBkMTZmNTg1MmRkZjg0YTRkNTkyYjlmMzNlNzhl
YjMyZGE5MjBiMTAzLi40ZTVhZTMxNzNhOTUxY2ZmMzkwYTE5NzYxMTBmNDBlYjRiMTkyYzM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29s
Q29jb2EubW0KQEAgLTE2NiwxMSArMTY2LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKQogdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKQogewogI2lmIFBMQVRGT1JNKE1BQykKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNv
bW11bmljYXRlV2l0aFdpbmRvd1NlcnZlcikpOwogICAgIHBhcmFtZXRlcnMuYWNjZXNzaWJpbGl0
eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQgPSBbW05TQXBwIGFjY2Vzc2liaWxpdHlBdHRy
aWJ1dGVWYWx1ZTpAIkFYRW5oYW5jZWRVc2VySW50ZXJmYWNlIl0gYm9vbFZhbHVlXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICNlbHNlCiAgICAgcGFyYW1ldGVycy5hY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50
ZXJmYWNlRW5hYmxlZCA9IGZhbHNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IGRlNDhlMGY4YTg5NWViODJjMTdiNGY4NzUzYzYz
ZTE1MjE2ODhlNWEuLjBhYTczNGE2OTIxNzhkOTY2NGExNGI4ZTE2NDhmYWYzNjNjZGM2OWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC01NTYs
MTUgKzU1NiwxNCBAQCBzdGF0aWMgY29uc3QgTlNVSW50ZWdlciBvcmRlcmVkTGlzdFNlZ21lbnQg
PSAyOwogICAgIFtpbnNlcnRMaXN0Q29udHJvbCBzZXRXaWR0aDpsaXN0Q29udHJvbFNlZ21lbnRX
aWR0aCBmb3JTZWdtZW50Om9yZGVyZWRMaXN0U2VnbWVudF07CiAgICAgaW5zZXJ0TGlzdENvbnRy
b2wuZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZToxNV07CiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIGlkIHNlZ21lbnRFbGVtZW50ID0gTlNBY2Nlc3NpYmlsaXR5VW5pZ25vcmVkRGVz
Y2VuZGFudChpbnNlcnRMaXN0Q29udHJvbCk7CiAgICAgTlNBcnJheSAqc2VnbWVudHMgPSBbc2Vn
bWVudEVsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eUNo
aWxkcmVuQXR0cmlidXRlXTsKICAgICBBU1NFUlQoc2VnbWVudHMuY291bnQgPT0gMyk7CiAgICAg
W3NlZ21lbnRzW25vTGlzdFNlZ21lbnRdIGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVlOldl
YkNvcmU6Omluc2VydExpc3RUeXBlTm9uZSgpIGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlE
ZXNjcmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgW3NlZ21lbnRzW3Vub3JkZXJlZExpc3RTZWdtZW50
XSBhY2Nlc3NpYmlsaXR5U2V0T3ZlcnJpZGVWYWx1ZTpXZWJDb3JlOjppbnNlcnRMaXN0VHlwZUJ1
bGxldGVkQWNjZXNzaWJpbGl0eVRpdGxlKCkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eURl
c2NyaXB0aW9uQXR0cmlidXRlXTsKICAgICBbc2VnbWVudHNbb3JkZXJlZExpc3RTZWdtZW50XSBh
Y2Nlc3NpYmlsaXR5U2V0T3ZlcnJpZGVWYWx1ZTpXZWJDb3JlOjppbnNlcnRMaXN0VHlwZU51bWJl
cmVkQWNjZXNzaWJpbGl0eVRpdGxlKCkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eURlc2Ny
aXB0aW9uQXR0cmlidXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIHNlbGYudmlldyA9IGluc2VydExp
c3RDb250cm9sOwogCkBAIC0xNjM4LDExICsxNjM3LDEwIEBAIHZvaWQgV2ViVmlld0ltcGw6OnVw
ZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKQogICAgICAgICBpZiAod2Vha1RoaXMtPm1fbmVlZHNW
aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKQogICAgICAgICAgICAgdmlld0ZyYW1lSW5XaW5k
b3dDb29yZGluYXRlcyA9IFt3ZWFrVGhpcy0+bV92aWV3IGNvbnZlcnRSZWN0Olt3ZWFrVGhpcy0+
bV92aWV3IGZyYW1lXSB0b1ZpZXc6bmlsXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICAgICAgaWYgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCiAgICAgICAgICAgICBhY2Nlc3NpYmlsaXR5UG9zaXRpb24gPSBbW3dlYWtUaGlzLT5tX3Zp
ZXcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVBvc2l0aW9uQXR0
cmlidXRlXSBwb2ludFZhbHVlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAKICAgICAg
ICAgd2Vha1RoaXMtPm1fcGFnZS0+d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQodmlld0ZyYW1l
SW5XaW5kb3dDb29yZGluYXRlcywgYWNjZXNzaWJpbGl0eVBvc2l0aW9uKTsKICAgICB9KTsKQEAg
LTM3MTcsMTAgKzM3MTUsOSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkcmFnZ2VkSW1hZ2UoTlNJbWFn
ZSAqLCBDR1BvaW50IGVuZFBvaW50LCBOU0RyYWdPcGVyYXRpb24gb3BlcgogCiB2b2lkIFdlYlZp
ZXdJbXBsOjpzZW5kRHJhZ0VuZFRvUGFnZShDR1BvaW50IGVuZFBvaW50LCBOU0RyYWdPcGVyYXRp
b24gb3BlcmF0aW9uKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNQb2ludCB3aW5kb3dJ
bWFnZUxvYyA9IFtbbV92aWV3IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpOU1BvaW50RnJv
bUNHUG9pbnQoZW5kUG9pbnQpXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBOU1BvaW50IHdpbmRvd01vdXNl
TG9jID0gd2luZG93SW1hZ2VMb2M7CiAKICAgICAvLyBQcmV2ZW50IHF1ZXVlZCBtb3VzZURyYWdn
ZWQgZXZlbnRzIGZyb20gY29taW5nIGFmdGVyIHRoZSBkcmFnIGFuZCBmYWtlIG1vdXNlVXAgZXZl
bnQuCkBAIC0zOTk4LDEwICszOTk1LDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c3RhcnREcmFnKGNv
bnN0IFdlYkNvcmU6OkRyYWdJdGVtJiBpdGVtLCBjb25zdCBTaGFyZWFibGVCaXRtYXAKICAgICAv
LyBUaGUgY2FsbCBiZWxvdyBjb3VsZCByZWxlYXNlIHRoZSB2aWV3LgogICAgIGF1dG8gcHJvdGVj
dG9yID0gbV92aWV3LmdldCgpOwogICAgIGF1dG8gY2xpZW50RHJhZ0xvY2F0aW9uID0gaXRlbS5k
cmFnTG9jYXRpb25JbldpbmRvd0Nvb3JkaW5hdGVzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
TlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkID0gW05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5h
bWU6TlNEcmFnUGJvYXJkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIGlmIChhdXRvJiBpbmZvID0gaXRl
bS5wcm9taXNlZEF0dGFjaG1lbnRJbmZvKSB7CiAgICAgICAgIE5TU3RyaW5nICp1dGlUeXBlID0g
aW5mby5jb250ZW50VHlwZTsKQEAgLTQwMzAsMTAgKzQwMjYsOSBAQCB2b2lkIFdlYlZpZXdJbXBs
OjpzdGFydERyYWcoY29uc3QgV2ViQ29yZTo6RHJhZ0l0ZW0mIGl0ZW0sIGNvbnN0IFNoYXJlYWJs
ZUJpdG1hcAogICAgIH0KIAogICAgIFtwYXN0ZWJvYXJkIHNldFN0cmluZzpAIiIgZm9yVHlwZTpQ
YXN0ZWJvYXJkVHlwZXM6OldlYkR1bW15UGJvYXJkVHlwZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBbbV92aWV3IGRyYWdJbWFnZTpkcmFnTlNJbWFnZS5nZXQoKSBhdDpOU1BvaW50RnJvbUNH
UG9pbnQoY2xpZW50RHJhZ0xvY2F0aW9uKSBvZmZzZXQ6TlNaZXJvU2l6ZSBldmVudDptX2xhc3RN
b3VzZURvd25FdmVudC5nZXQoKSBwYXN0ZWJvYXJkOnBhc3RlYm9hcmQgc291cmNlOm1fdmlldy5n
ZXRBdXRvcmVsZWFzZWQoKSBzbGlkZUJhY2s6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBtX3BhZ2Ut
PmRpZFN0YXJ0RHJhZygpOwogfQogCkBAIC00Nzc5LDExICs0Nzc0LDEwIEBAIHZvaWQgV2ViVmll
d0ltcGw6OmNoYXJhY3RlckluZGV4Rm9yUG9pbnQoTlNQb2ludCBwb2ludCwgdm9pZCheY29tcGxl
dGlvbkhhbmRsZXJQCiAKICAgICBOU1dpbmRvdyAqd2luZG93ID0gW21fdmlldyB3aW5kb3ddOwog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAod2luZG93KQogICAgICAgICBwb2ludCA9IFt3
aW5kb3cgY29udmVydFNjcmVlblRvQmFzZTpwb2ludF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgcG9pbnQg
PSBbbV92aWV3IGNvbnZlcnRQb2ludDpwb2ludCBmcm9tVmlldzpuaWxdOyAgLy8gdGhlIHBvaW50
IGlzIHJlbGF0aXZlIHRvIHRoZSBtYWluIGZyYW1lCiAKICAgICBtX3BhZ2UtPmNoYXJhY3Rlcklu
ZGV4Rm9yUG9pbnRBc3luYyhXZWJDb3JlOjpJbnRQb2ludChwb2ludCksIFtjb21wbGV0aW9uSGFu
ZGxlcl0odWludDY0X3QgcmVzdWx0LCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3Ip
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdp
blByb2Nlc3NQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvbWFj
L1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQppbmRleCBkNDM1ZTFmMzQwY2JlMjRjN2VkYTliNzRh
MjcyYjI0ZmRkMzEzZGRkLi5lZjg2Mzg1MzYzMTNkZmQ0ZDQ4NzU5MmQwNjgwYmZlOTljMTFkNWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Q
cm9jZXNzUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9t
YWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC05NCwxMCArOTQsOSBAQCB2b2lkIFBsdWdp
blByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplUGx1Z2luUHJvY2VzcyhQbHVnaW5Qcm9j
ZXNzQ3JlYXRpb25QYQogYm9vbCBQbHVnaW5Qcm9jZXNzUHJveHk6OmdldFBsdWdpblByb2Nlc3NT
ZXJpYWxOdW1iZXIoUHJvY2Vzc1NlcmlhbE51bWJlciYgcGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJl
cikKIHsKICAgICBwaWRfdCBwbHVnaW5Qcm9jZXNzUElEID0gcHJvY2Vzc0lkZW50aWZpZXIoKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBHZXRQcm9jZXNzRm9yUElEKHBsdWdpblBy
b2Nlc3NQSUQsICZwbHVnaW5Qcm9jZXNzU2VyaWFsTnVtYmVyKSA9PSBub0VycjsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIH0KIAogdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6Om1ha2VQbHVnaW5Qcm9jZXNzVGhlRnJv
bnRQcm9jZXNzKCkKQEAgLTEwNiwyMCArMTA1LDE4IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5
OjptYWtlUGx1Z2luUHJvY2Vzc1RoZUZyb250UHJvY2VzcygpCiAgICAgaWYgKCFnZXRQbHVnaW5Q
cm9jZXNzU2VyaWFsTnVtYmVyKHBsdWdpblByb2Nlc3NTZXJpYWxOdW1iZXIpKQogICAgICAgICBy
ZXR1cm47CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFNldEZyb250UHJvY2VzcygmcGx1Z2lu
UHJvY2Vzc1NlcmlhbE51bWJlcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vz
c1Byb3h5OjptYWtlVUlQcm9jZXNzVGhlRnJvbnRQcm9jZXNzKCkKIHsKICAgICBQcm9jZXNzU2Vy
aWFsTnVtYmVyIHByb2Nlc3NTZXJpYWxOdW1iZXI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBH
ZXRDdXJyZW50UHJvY2VzcygmcHJvY2Vzc1NlcmlhbE51bWJlcik7CiAgICAgU2V0RnJvbnRQcm9j
ZXNzKCZwcm9jZXNzU2VyaWFsTnVtYmVyKTsgICAgICAgICAgICAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAog
dm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OnNldEZ1bGxzY3JlZW5XaW5kb3dJc1Nob3dpbmcoYm9v
bCBmdWxsc2NyZWVuV2luZG93SXNTaG93aW5nKQpAQCAtMTUyLDEwICsxNDksOSBAQCB2b2lkIFBs
dWdpblByb2Nlc3NQcm94eTo6ZXhpdEZ1bGxzY3JlZW4oKQogewogICAgIC8vIElmIHRoZSBwbHVn
LWluIGhvc3QgaXMgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gdGhlbiB3ZSBzaG91bGQgYnJpbmcg
b3Vyc2VsdmVzIHRvIHRoZSBmcm9udCB3aGVuIGl0IGV4aXRzIGZ1bGwtc2NyZWVuIG1vZGUuCiAg
ICAgUHJvY2Vzc1NlcmlhbE51bWJlciBmcm9udFByb2Nlc3NTZXJpYWxOdW1iZXI7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBHZXRGcm9udFByb2Nlc3MoJmZyb250UHJvY2Vzc1NlcmlhbE51bWJl
cik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAKICAgICAvLyBUaGUgVUkgcHJvY2VzcyBtdXN0IGJlIHRoZSBmcm9u
dCBwcm9jZXNzIGluIG9yZGVyIHRvIGNoYW5nZSB0aGUgcHJlc2VudGF0aW9uIG1vZGUuCiAgICAg
bWFrZVVJUHJvY2Vzc1RoZUZyb250UHJvY2VzcygpOwpAQCAtMTY4LDE1ICsxNjQsMTMgQEAgdm9p
ZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmV4aXRGdWxsc2NyZWVuKCkKICAgICAvLyBJZiB0aGUgcGx1
Zy1pbiBwcm9jZXNzIHdhcyBub3QgdGhlIGZyb250IHByb2Nlc3MsIHN3aXRjaCBiYWNrIHRvIHRo
ZSBwcmV2aW91cyBmcm9udCBwcm9jZXNzLgogICAgIC8vIChPdGhlcndpc2Ugd2UnbGwga2VlcCB0
aGUgVUkgcHJvY2VzcyBhcyB0aGUgZnJvbnQgcHJvY2VzcykuCiAgICAgQm9vbGVhbiBpc1BsdWdp
blByb2Nlc3NGcm9udFByb2Nlc3M7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBTYW1lUHJvY2Vz
cygmZnJvbnRQcm9jZXNzU2VyaWFsTnVtYmVyLCAmcGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJlciwg
JmlzUGx1Z2luUHJvY2Vzc0Zyb250UHJvY2Vzcyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgaWYgKCFpc1Bs
dWdpblByb2Nlc3NGcm9udFByb2Nlc3MpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAg
ICAgU2V0RnJvbnRQcm9jZXNzKCZmcm9udFByb2Nlc3NTZXJpYWxOdW1iZXIpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW0KaW5kZXggYjM2MmQ1N2I5YzQz
YTg1ZjM2NmUzM2I2YTdkNDkyOTlmNmE5ZDRmMy4uMjM1YWE1Yjk3MmJmMjE5NWUzYTYxMDJlMmU3
YWRlMzg0ZmEzZDg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Nt
YXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW0KQEAgLTM3LDEyICszNywxMSBA
QAogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KIAogI2ltcG9ydCAiVUlLaXRTUEkuaCIKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIHN0
YXRpYyBjb25zdCBmbG9hdCBzbWFydE1hZ25pZmljYXRpb25QYW5TY3JvbGxUaHJlc2hvbGRab29t
ZWRPdXQgPSA2MDsKIHN0YXRpYyBjb25zdCBmbG9hdCBzbWFydE1hZ25pZmljYXRpb25QYW5TY3Jv
bGxUaHJlc2hvbGRJUGhvbmUgPSAxMDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQppbmRleCA4OGQ5Mzk3NzEzMDBm
YzA5YWM1MTg2YWRmMTMxMzAyODQxMDdkMDE0Li5iZGNjNTcxMGZjN2Y0OTY1ZjNjOThkZTE3MTYx
MzU5ZmE3MzU3NTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tH
ZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KQEAgLTUzLDggKzUzLDcgQEAKICNpbXBvcnQg
PFdlYktpdC9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV2ViQWxsb3dEZW55UG9saWN5TGlzdGVuZXIuaD4KIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAog
QGludGVyZmFjZSBXS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MgKF9XS0dlb2xvY2F0aW9uQ29yZUxv
Y2F0aW9uTGlzdGVuZXIpIDxfV0tHZW9sb2NhdGlvbkNvcmVMb2NhdGlvbkxpc3RlbmVyPgogQGVu
ZApAQCAtMzU0LDYgKzM1Myw2IEBAIHN0YXRpYyB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShX
S0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1hbmFnZXIsIGJvCiB9CiBAZW5kCiAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLTGVnYWN5UERGVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0xlZ2FjeVBERlZpZXcubW0KaW5kZXggMGI1ZDlkNmM2NDZiNDI4MmMwZmNi
NzNlMWNiZmQwY2EzNGYzNWFhNi4uZDM4ZjMxYzgxNWYzYzlmM2U5OGRhNTJlNTRmYjg4ODg0ZWQw
YTQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTGVnYWN5UERG
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tMZWdhY3lQREZWaWV3
Lm1tCkBAIC01MSw4ICs1MSw3IEBACiAKIC8vIEFsbCBvZiBVSVBERlBhZ2UqIGFyZSBkZXByZWNh
dGVkLCBzbyBqdXN0IGlnbm9yZSBkZXByZWNhdGVkIGRlY2xhcmF0aW9ucwogLy8gaW4gdGhpcyBm
aWxlIHVudGlsIHdlIHN3aXRjaCBvZmYgdGhlbS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIGNvbnN0IENH
RmxvYXQgcGRmUGFnZU1hcmdpbiA9IDg7CiBjb25zdCBDR0Zsb2F0IHBkZk1pbmltdW1ab29tU2Nh
bGUgPSAxOwpAQCAtODU3LDYgKzg1Niw2IEBAIHN0YXRpYyBOU1N0cmluZ0NvbXBhcmVPcHRpb25z
IHN0cmluZ0NvbXBhcmVPcHRpb25zKF9XS0ZpbmRPcHRpb25zIG9wdGlvbnMpCiAKICNlbmRpZiAv
LyAhUExBVEZPUk0oSU9TTUFDKQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogI2VuZGlmIC8vIEVOQUJMRShXS0xFR0FD
WVBERlZJRVcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZQ
YWdlTnVtYmVySW5kaWNhdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERG
UGFnZU51bWJlckluZGljYXRvci5tbQppbmRleCA5NzliMzBkMzgxNGIxMzA2YzBhYWIxOTU2ZWMz
N2EzZGE2NjA2MzhiLi44MTlhZmI3MGYzNTI4NjE4N2M4NGI4ZDhkNzkzZDQ0ODJmNDY3MjQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZQYWdlTnVtYmVySW5k
aWNhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1BERlBhZ2VOdW1i
ZXJJbmRpY2F0b3IubW0KQEAgLTE4MywxMCArMTgzLDkgQEAgY29uc3QgTlNUaW1lSW50ZXJ2YWwg
aW5kaWNhdG9yTW92ZUR1cmF0aW9uID0gMC4zOwogICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY29u
dGV4dCk7CiAgICAgQ0dDb250ZXh0QWRkUmVjdChjb250ZXh0LCBjb3JuZXJJbWFnZUJvdW5kcyk7
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFVJQmV6aWVyUGF0aCAqY29ybmVyUGF0aCA9IFtV
SUJlemllclBhdGggYmV6aWVyUGF0aFdpdGhSb3VuZGVkUmVjdDpjb3JuZXJJbWFnZUJvdW5kcyBi
eVJvdW5kaW5nQ29ybmVyczooVUlSZWN0Q29ybmVyKVVJQWxsQ29ybmVycyBjb3JuZXJSYWRpaTpD
R1NpemVNYWtlKGluZGljYXRvckNvcm5lclJhZGl1cywgaW5kaWNhdG9yQ29ybmVyUmFkaXVzKV07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAgICAgQ0dDb250ZXh0QWRkUGF0aChjb250ZXh0LCBbY29ybmVyUGF0aCBD
R1BhdGhdKTsKICAgICBDR0NvbnRleHRFT0NsaXAoY29udGV4dCk7CiAgICAgQ0dDb250ZXh0Rmls
bFJlY3QoY29udGV4dCwgY29ybmVySW1hZ2VCb3VuZHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLQWlyUGxheVJvdXRlUGlja2VyLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLQWlyUGxheVJvdXRlUGlja2VyLm1tCmluZGV4
IDc0YmQyMzJkNjIyZWU4MWUwN2JmNDQ5ZTMwODdhMjU5N2ZjNzI4ZmMuLmNjM2E4ZWQ1OTY2YTJk
MDAzOTY2ZmMwYjAwOGMwNTdlODliYzBlOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9mb3Jtcy9XS0FpclBsYXlSb3V0ZVBpY2tlci5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tBaXJQbGF5Um91dGVQaWNrZXIubW0KQEAgLTM5LDgg
KzM5LDcgQEAKICNpbXBvcnQgIldLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIgogI2ltcG9ydCAi
V2ViUGFnZVByb3h5LmgiCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIFNPRlRfTElOS19GUkFNRVdPUkso
TWVkaWFQbGF5ZXIpCiBTT0ZUX0xJTktfQ0xBU1MoTWVkaWFQbGF5ZXIsIE1QQVZSb3V0aW5nQ29u
dHJvbGxlcikKQEAgLTE2MCw3ICsxNTksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBA
ZW5kCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogCiAjZWxzZSAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tCmluZGV4IDgyZDZmMmEwZjVhOTBm
MGQ0Zjk1YmI0ZmZiYjNmZThjMWJiZDg2NzkuLmI5YzFmYWVmNGMwNjc1MzE4YTI1ZDhmMTM0NzE4
YzZkNWIyZmQwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jt
cy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
Zm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0KQEAgLTQ2LDggKzQ2LDcgQEAKIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogc3RhdGljIGlubGluZSBVSUltYWdl
UGlja2VyQ29udHJvbGxlckNhbWVyYURldmljZSBjYW1lcmFEZXZpY2VGb3JNZWRpYUNhcHR1cmVU
eXBlKFdlYkNvcmU6Ok1lZGlhQ2FwdHVyZVR5cGUgbWVkaWFDYXB0dXJlVHlwZSkKIHsKQEAgLTE2
MCwxMCArMTU5LDkgQEAgc3RhdGljIGlubGluZSBVSUltYWdlICpjYW1lcmFJY29uKCkKICAgICBC
T09MIF91c2luZ0NhbWVyYTsKICAgICBSZXRhaW5QdHI8VUlJbWFnZVBpY2tlckNvbnRyb2xsZXI+
IF9pbWFnZVBpY2tlcjsKICAgICBSZXRhaW5QdHI8VUlWaWV3Q29udHJvbGxlcj4gX3ByZXNlbnRh
dGlvblZpZXdDb250cm9sbGVyOyAvLyBpUGhvbmUgYWx3YXlzLiBpUGFkIGZvciBGdWxsc2NyZWVu
IENhbWVyYS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFJldGFpblB0cjxVSVBvcG92ZXJDb250
cm9sbGVyPiBfcHJlc2VudGF0aW9uUG9wb3ZlcjsgLy8gaVBhZCBmb3IgYWN0aW9uIHNoZWV0IGFu
ZCBQaG90byBMaWJyYXJ5LgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFJldGFpblB0cjxVSURvY3VtZW50TWVu
dVZpZXdDb250cm9sbGVyPiBfZG9jdW1lbnRNZW51Q29udHJvbGxlcjsKICAgICBXZWJDb3JlOjpN
ZWRpYUNhcHR1cmVUeXBlIF9tZWRpYUNhcHR1cmVUeXBlOwogfQpAQCAtNDUwLDEwICs0NDgsOSBA
QCBzdGF0aWMgTlNBcnJheSAqVVRJc0Zvck1JTUVUeXBlcyhOU0FycmF5ICptaW1lVHlwZXMpCiB7
CiAgICAgW3NlbGYgX2Rpc21pc3NEaXNwbGF5QW5pbWF0ZWQ6YW5pbWF0ZWRdOwogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBfcHJlc2VudGF0aW9uUG9wb3ZlciA9IGFkb3B0TlMoW1tVSVBvcG92
ZXJDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aENvbnRlbnRWaWV3Q29udHJvbGxlcjpjb250ZW50
Vmlld0NvbnRyb2xsZXJdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbX3ByZXNlbnRhdGlvblBvcG92ZXIg
c2V0RGVsZWdhdGU6c2VsZl07CiAgICAgW19wcmVzZW50YXRpb25Qb3BvdmVyIHByZXNlbnRQb3Bv
dmVyRnJvbVJlY3Q6Q0dSZWN0SW50ZWdyYWwoQ0dSZWN0TWFrZShfaW50ZXJhY3Rpb25Qb2ludC54
LCBfaW50ZXJhY3Rpb25Qb2ludC55LCAxLCAxKSkgaW5WaWV3Ol92aWV3IHBlcm1pdHRlZEFycm93
RGlyZWN0aW9uczpVSVBvcG92ZXJBcnJvd0RpcmVjdGlvbkFueSBhbmltYXRlZDphbmltYXRlZF07
CiB9CkBAIC03MjAsNiArNzE3LDYgQEAgc3RhdGljIE5TQXJyYXkgKlVUSXNGb3JNSU1FVHlwZXMo
TlNBcnJheSAqbWltZVR5cGVzKQogCiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dL
Rm9ybUNvbG9yQ29udHJvbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9X
S0Zvcm1Db2xvckNvbnRyb2wubW0KaW5kZXggNjA5YmFjMzFmNTZhYTVhYWViZjAzYzJlMzE4YzE1
NTRhNThlOTVhNy4uODI0ZWQzZDkxYmNiMTdiMWMxNDBlZDRmYTNiYWExNmFlY2UwNzQwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29u
dHJvbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtQ29s
b3JDb250cm9sLm1tCkBAIC02NiwxMCArNjYsOSBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBjb2xv
clBvcG92ZXJDb3JuZXJSYWRpdXMgPSA5OwogICAgIFtwb3BvdmVyVmlld0NvbnRyb2xsZXIgc2V0
Vmlldzpjb250cm9sQ29udGFpbmVyVmlldy5nZXQoKV07CiAgICAgW3BvcG92ZXJWaWV3Q29udHJv
bGxlciBzZXRQcmVmZXJyZWRDb250ZW50U2l6ZTpbY29udHJvbENvbnRhaW5lclZpZXcgc2l6ZV1d
OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBSZXRhaW5QdHI8VUlQb3BvdmVyQ29udHJvbGxl
cj4gY29udHJvbGxlciA9IGFkb3B0TlMoW1tVSVBvcG92ZXJDb250cm9sbGVyIGFsbG9jXSBpbml0
V2l0aENvbnRlbnRWaWV3Q29udHJvbGxlcjpwb3BvdmVyVmlld0NvbnRyb2xsZXIuZ2V0KCldKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICAgICBbc2VsZiBzZXRQb3BvdmVyQ29udHJvbGxlcjpjb250cm9sbGVyLmdl
dCgpXTsKIAogICAgIHJldHVybiBzZWxmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29udHJvbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW0KaW5kZXggMWNkNjJlM2JiNTE4
MTNiNzE0ZTM0YTNjZmJlYjczYWJhYWE5MGNlMy4uZDAyZGZmZmZkYTVhNjY0NjExMjRkMzg1ODE3
ZDg2NTlhNjAyY2VjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zv
cm1zL1dLRm9ybUlucHV0Q29udHJvbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLm1tCkBAIC0zMzAsMTYgKzMzMCwxNCBAQCBzdGF0
aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga01pbGxpc2Vjb25kc1BlclNlY29uZCA9IDEwMDA7CiAg
ICAgUmV0YWluUHRyPFVJTmF2aWdhdGlvbkNvbnRyb2xsZXI+IG5hdmlnYXRpb25Db250cm9sbGVy
ID0gYWRvcHROUyhbW1VJTmF2aWdhdGlvbkNvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoUm9vdFZp
ZXdDb250cm9sbGVyOl92aWV3Q29udHJvbGxlci5nZXQoKV0pOwogICAgIFVJTmF2aWdhdGlvbkl0
ZW0gKm5hdmlnYXRpb25JdGVtID0gbmF2aWdhdGlvbkNvbnRyb2xsZXIuZ2V0KCkubmF2aWdhdGlv
bkJhci50b3BJdGVtOwogICAgIE5TU3RyaW5nICpjbGVhclN0cmluZyA9IFdFQl9VSV9TVFJJTkdf
S0VZKCJDbGVhciIsICJDbGVhciBCdXR0b24gRGF0ZSBQb3BvdmVyIiwgIkNsZWFyIGJ1dHRvbiBp
biBkYXRlIGlucHV0IHBvcG92ZXIiKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFVJQmFyQnV0
dG9uSXRlbSAqY2xlYXJCdXR0b24gPSBbW1tVSUJhckJ1dHRvbkl0ZW0gYWxsb2NdIGluaXRXaXRo
VGl0bGU6Y2xlYXJTdHJpbmcgc3R5bGU6VUlCYXJCdXR0b25JdGVtU3R5bGVCb3JkZXJlZCB0YXJn
ZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKGNsZWFyOildIGF1dG9yZWxlYXNlXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAgICBbbmF2aWdhdGlvbkl0ZW0gc2V0UmlnaHRCYXJCdXR0b25JdGVtOmNsZWFyQnV0dG9u
XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgUmV0YWluUHRyPFVJUG9wb3ZlckNvbnRyb2xs
ZXI+IGNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbVUlQb3BvdmVyQ29udHJvbGxlciBhbGxvY10gaW5p
dFdpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6bmF2aWdhdGlvbkNvbnRyb2xsZXIuZ2V0KCldKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICAgICBbc2VsZiBzZXRQb3BvdmVyQ29udHJvbGxlcjpjb250cm9sbGVyLmdl
dCgpXTsKIAogICAgIHJldHVybiBzZWxmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLmgKaW5kZXggMGVjOGM2NTUzODc5YWJkYzViOTIxMGY5
NTc4MjRiMDdlMGIwZmRlYi4uYzk2NzYxYzZiZDkzNzAwZTMyZmM4YjdkYmM3ZGI4ZDgyMzIzOGQ2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBv
cG92ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9w
b3Zlci5oCkBAIC00MCwxMCArNDAsOSBAQAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBXS0NvbnRlbnRWaWV3ICp2aWV3OwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBD
R1BvaW50IHByZXNlbnRhdGlvblBvaW50OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZXRhaW4pIFVJUG9wb3ZlckNvbnRyb2xsZXIgKnBvcG92ZXJDb250cm9sbGVyOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBpZCA8V0tSb3RhdGluZ1BvcG92
ZXJEZWxlZ2F0ZT4gZGlzbWlzc2lvbkRlbGVnYXRlOwogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9wb3Zlci5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLm1tCmluZGV4IGJlMmYwZDJj
YWQ0ZmY4YzJmZDQxODE1NjNiN2U2ZGI2ZGNiOGUyYTAuLjZiMThjM2QwMjJlNTljNGZiNmRmOTA3
NjRmNWI2MjllOGVjZGZjNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLm1tCkBAIC0zNiw4ICszNiw3IEBACiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIEBpbXBsZW1lbnRhdGlvbiBXS0Zvcm1S
b3RhdGluZ0FjY2Vzc29yeVBvcG92ZXIKIApAQCAtMTc4LDYgKzE3Nyw2IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAKIEBlbmQKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICNlbmRpZiAvLyBQTEFURk9STShJT1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtU2Vs
ZWN0UG9wb3Zlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1T
ZWxlY3RQb3BvdmVyLm1tCmluZGV4IDU3YmZhNDA3MDRhMjBlMzJlZWNiOGZlMWM3NmMyYzUwZThk
OGY5MDQuLjQzYjdlY2JmYmFjNjdkYTBhYjRjMWVmMmJhN2I3NjU3ZWRhYmY5OWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RQb3BvdmVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RQ
b3BvdmVyLm1tCkBAIC00MDEsMTAgKzQwMSw5IEBAIHN0YXRpYyBOU1N0cmluZyAqc3RyaW5nV2l0
aFdyaXRpbmdEaXJlY3Rpb24oTlNTdHJpbmcgKnN0cmluZywgVUlUZXh0V3JpdGluZ0RpcmVjCiAg
ICAgZWxzZQogICAgICAgICBwb3BvdmVyVmlld0NvbnRyb2xsZXIucHJlZmVycmVkQ29udGVudFNp
emUgPSBwb3BvdmVyU2l6ZTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHNlbGYucG9w
b3ZlckNvbnRyb2xsZXIgPSBbW1tVSVBvcG92ZXJDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aENv
bnRlbnRWaWV3Q29udHJvbGxlcjpwb3BvdmVyVmlld0NvbnRyb2xsZXJdIGF1dG9yZWxlYXNlXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKIAogICAgIFtuYXZDb250cm9sbGVyIHJlbGVhc2VdOwogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDhj
MjNiMjhiODIwYjViZTFlNzQxYjMxN2UzZDIwOWZmYTgxNjFkMGMuLmM0NzliYjlhMDE2YTQzODEw
ZTRiM2E3MjI4ODU4NWY0MTc0Njk1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTQxOSwxMCArNDE5LDkgQEAgdm9pZCBQYWdl
Q2xpZW50SW1wbDo6cGlubmVkU3RhdGVEaWRDaGFuZ2UoKQogICAgIAogSW50UG9pbnQgUGFnZUNs
aWVudEltcGw6OnNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmIHBvaW50KQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgTlNQb2ludCB3aW5kb3dDb29yZCA9IFtbbV92aWV3IHdpbmRv
d10gY29udmVydFNjcmVlblRvQmFzZTpwb2ludF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgcmV0dXJuIElu
dFBvaW50KFttX3ZpZXcgY29udmVydFBvaW50OndpbmRvd0Nvb3JkIGZyb21WaWV3Om5pbF0pOwog
fQogICAgIApAQCAtNDMwLDEwICs0MjksOSBAQCBJbnRSZWN0IFBhZ2VDbGllbnRJbXBsOjpyb290
Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgTlNSZWN0IHRlbXBSZWN0
ID0gcmVjdDsKICAgICB0ZW1wUmVjdCA9IFttX3ZpZXcgY29udmVydFJlY3Q6dGVtcFJlY3QgdG9W
aWV3Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICB0ZW1wUmVjdC5vcmlnaW4gPSBbW21f
dmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46dGVtcFJlY3Qub3JpZ2luXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdCh0ZW1wUmVjdCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIubW0KaW5kZXggNWE2YmZjMzNjZWYyZDIwNmE5ZTA2ZDE1ZGRmMWM4N2NjMzcx
MjQ1Ni4uYjYwYTU1Yzk1YWViMmVjZmE5MDM4Y2ZkNjE3Yzc3ZjIxOWIxOTc2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIubW0KQEAgLTI2NSwxMiArMjY1LDExIEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gY3JlYXRlSW1hZ2VXaXRoQ29waWVkRGF0YShDR0ltYWdlUmVmIHNvdXJjZUltYWdl
KQogICAgIC8vIGZ1dHVyZSBvdmVyaGVhZC4KICAgICB3ZWJWaWV3Q29udGVudHMgPSBjcmVhdGVJ
bWFnZVdpdGhDb3BpZWREYXRhKHdlYlZpZXdDb250ZW50cy5nZXQoKSk7CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIC8vIFNjcmVlbiB1cGRhdGVzIHRvIGJlIHJlLWVuYWJsZWQgaW4gX3N0YXJ0
RW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOgogICAgIE5TRGlzYWJsZVNjcmVl
blVwZGF0ZXMoKTsKICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpOT107Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiAKICAgICBbc2VsZiBfbWFuYWdlcl0tPnNhdmVTY3JvbGxQb3NpdGlvbigpOwogICAg
IF9zYXZlZFRvcENvbnRlbnRJbnNldCA9IF9wYWdlLT50b3BDb250ZW50SW5zZXQoKTsKQEAgLTMy
NSwxMSArMzI0LDEwIEBAIHN0YXRpYyBjb25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsg
MjAgKyAyMDsgLy8gTm90ZTogS2VlcCBpbiBzeW5jIHdpdGggbWVkCiAgICAgaWYgKGNvbXBsZXRl
ZCkgewogICAgICAgICBfZnVsbFNjcmVlblN0YXRlID0gSW5GdWxsU2NyZWVuOwogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgICAgIC8vIFNjcmVlbiB1cGRhdGVzIHRvIGJlIHJlLWVuYWJs
ZWQgdGEgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBibG9jay4KICAgICAgICAgTlNEaXNhYmxlU2Ny
ZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgW3NlbGYgX21hbmFnZXJdLT5k
aWRFbnRlckZ1bGxTY3JlZW4oKTsKICAgICAgICAgW3NlbGYgX21hbmFnZXJdLT5zZXRBbmltYXRp
bmdGdWxsU2NyZWVuKGZhbHNlKTsKIApAQCAtMzQ3LDEwICszNDUsOSBAQCBzdGF0aWMgY29uc3Qg
ZmxvYXQgbWluVmlkZW9XaWR0aCA9IDQ4MCArIDIwICsgMjA7IC8vIE5vdGU6IEtlZXAgaW4gc3lu
YyB3aXRoIG1lZAogICAgICAgICAvLyBUcmFuc2l0aW9uIHRvIGZ1bGxzY3JlZW4gZmFpbGVkLiBD
bGVhbiB1cC4KICAgICAgICAgX2Z1bGxTY3JlZW5TdGF0ZSA9IE5vdEluRnVsbFNjcmVlbjsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlz
cGxheTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgX3BhZ2UtPnNldFN1cHByZXNzVmlz
aWJpbGl0eVVwZGF0ZXMoZmFsc2UpOwogCiAgICAgICAgIE5TUmVzcG9uZGVyICpmaXJzdFJlc3Bv
bmRlciA9IFtbc2VsZiB3aW5kb3ddIGZpcnN0UmVzcG9uZGVyXTsKQEAgLTM2OSwxMCArMzY2LDkg
QEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIwOyAvLyBO
b3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKICAgICAgICAgW3NlbGYgX21hbmFnZXJdLT5zZXRB
bmltYXRpbmdGdWxsU2NyZWVuKGZhbHNlKTsKICAgICB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgaWYgKF9yZXF1
ZXN0ZWRFeGl0RnVsbFNjcmVlbikgewogICAgICAgICBfcmVxdWVzdGVkRXhpdEZ1bGxTY3JlZW4g
PSBOTzsKQEAgLTQwMiwxMiArMzk4LDExIEBAIHN0YXRpYyBjb25zdCBmbG9hdCBtaW5WaWRlb1dp
ZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTogS2VlcCBpbiBzeW5jIHdpdGggbWVkCiAKICAg
ICBbX3dlYlZpZXdQbGFjZWhvbGRlciBzZXRFeGl0V2FybmluZ1Zpc2libGU6Tk9dOwogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICAvLyBTY3JlZW4gdXBkYXRlcyB0byBiZSByZS1lbmFibGVkIGlu
IF9zdGFydEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOiBvciBiZWdhbkV4aXRG
dWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTpmaW5hbEZyYW1lOgogICAgIE5TRGlzYWJsZVNjcmVl
blVwZGF0ZXMoKTsKICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpOT107Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiAKICAgICAvLyBTZWUgdGhlIHJlbGF0ZWQgY29tbWVudCBpbiBlbnRlckZ1bGxTY3Jl
ZW46CiAgICAgLy8gV2Ugd2lsbCByZXN1bWUgdGhlIG5vcm1hbCBiZWhhdmlvciBpbiBfc3RhcnRF
eGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjoKQEAgLTQzNywxMCArNDMyLDkgQEAg
c3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIwOyAvLyBOb3Rl
OiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKICAgICAgICAgLy8gQmVjYXVzZSB3ZSBhcmUgYnJlYWtp
bmcgdGhlIG5vcm1hbCBhbmltYXRpb24gcGF0dGVybiwgcmUtZW5hYmxlIHNjcmVlbiB1cGRhdGVz
CiAgICAgICAgIC8vIGFzIGV4aXRGdWxsU2NyZWVuIGhhcyBkaXNhYmxlZCB0aGVtLCBidXQgX3N0
YXJ0RXhpdEZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246CiAgICAgICAgIC8vIHdpbGwg
bmV2ZXIgYmUgY2FsbGVkLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBOU0VuYWJs
ZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQogCiAgICAgW1tzZWxmIHdp
bmRvd10gZXhpdEZ1bGxTY3JlZW5Nb2RlOnNlbGZdOwpAQCAtNDYzLDIwICs0NTcsMTggQEAgc3Rh
dGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIwOyAvLyBOb3RlOiBL
ZWVwIGluIHN5bmMgd2l0aCBtZWQKIAogICAgIE5TUmVzcG9uZGVyICpmaXJzdFJlc3BvbmRlciA9
IFtbc2VsZiB3aW5kb3ddIGZpcnN0UmVzcG9uZGVyXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBpbiBjb21wbGV0ZUZpbmlzaEV4
aXRGdWxsU2NyZWVuQW5pbWF0aW9uQWZ0ZXJSZXBhaW50LgogICAgIE5TRGlzYWJsZVNjcmVlblVw
ZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBfcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBk
YXRlcyh0cnVlKTsKICAgICBbW3NlbGYgd2luZG93XSBvcmRlck91dDpzZWxmXTsKICAgICBOU1Zp
ZXcgKmNvbnRlbnRWaWV3ID0gW1tzZWxmIHdpbmRvd10gY29udGVudFZpZXddOwogICAgIGNvbnRl
bnRWaWV3LmhpZGRlbiA9IFlFUzsKICAgICBbX2JhY2tncm91bmRWaWV3LmdldCgpLmxheWVyIHJl
bW92ZUFsbEFuaW1hdGlvbnNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1tfd2ViVmlld1Bs
YWNlaG9sZGVyIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAg
W3NlbGYgX3JlcGxhY2VWaWV3Ol93ZWJWaWV3UGxhY2Vob2xkZXIuZ2V0KCkgd2l0aDpfd2ViVmll
d107CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCkBAIC01MDksMTYgKzUwMSwxNCBA
QCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9XaWR0aCA9IDQ4MCArIDIwICsgMjA7IC8vIE5v
dGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogLSAodm9pZCljb21wbGV0ZUZpbmlzaEV4aXRGdWxs
U2NyZWVuQW5pbWF0aW9uQWZ0ZXJSZXBhaW50CiB7CiAgICAgX3JlcGFpbnRDYWxsYmFjayA9IG51
bGxwdHI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbW193ZWJWaWV3IHdpbmRvd10gc2V0QXV0
b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbW193ZWJWaWV3IHdpbmRvd10gZGlzcGxh
eUlmTmVlZGVkXTsKICAgICBfcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxz
ZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKIH0KIAogLSAodm9pZClwZXJmb3JtQ2xvc2U6KGlkKXNlbmRlcgpAQCAtNzI3LDE1
ICs3MTcsMTMgQEAgc3RhdGljIENBQW5pbWF0aW9uICpmYWRlQW5pbWF0aW9uKENGVGltZUludGVy
dmFsIGR1cmF0aW9uLCBBbmltYXRpb25EaXJlY3Rpb24gZGkKICAgICBbd2luZG93IG1ha2VGaXJz
dFJlc3BvbmRlcjpfd2ViVmlld107CiAKICAgICBfcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5
VXBkYXRlcyhmYWxzZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbW3NlbGYgd2luZG93XSBz
ZXRBdXRvZGlzcGxheTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtbc2VsZiB3aW5kb3ddIGRpc3Bs
YXlJZk5lZWRlZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0VuYWJsZVNjcmVlblVwZGF0
ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogLSAodm9pZClfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1h
dGlvbldpdGhEdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb24KQEAgLTc1OCwxNSArNzQ2
LDEzIEBAIHN0YXRpYyBDQUFuaW1hdGlvbiAqZmFkZUFuaW1hdGlvbihDRlRpbWVJbnRlcnZhbCBk
dXJhdGlvbiwgQW5pbWF0aW9uRGlyZWN0aW9uIGRpCiAgICAgW19iYWNrZ3JvdW5kVmlldy5nZXQo
KS5sYXllciBhZGRBbmltYXRpb246ZmFkZUFuaW1hdGlvbihkdXJhdGlvbiwgQW5pbWF0ZU91dCkg
Zm9yS2V5OkAiZnVsbHNjcmVlbiJdOwogCiAgICAgX3BhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0
eVVwZGF0ZXMoZmFsc2UpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1tzZWxmIHdpbmRvd10g
c2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbW3NlbGYgd2luZG93XSBkaXNw
bGF5SWZOZWVkZWRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNFbmFibGVTY3JlZW5VcGRh
dGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKHZvaWQpX3dhdGNoZG9nVGltZXJGaXJlZDooTlNU
aW1lciAqKXRpbWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQ
cmludGluZ1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1Zp
ZXcubW0KaW5kZXggMWZkYTdkYmU1ZGYxZmY3ZGIxNzcwY2FmYjE0MGRmZjU2MGY1YTM4Yy4uZDIw
NmZmZTA4OTUzNGMzMmYzZTIxNjIyMDlkZWJjNzIwODc1ZWJmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbQpAQCAtNzgsMTYgKzc4LDE0IEBAIHN0
YXRpYyBCT09MIGlzRm9yY2luZ1ByZXZpZXdVcGRhdGU7CiAKIC0gKHZvaWQpX3NldEF1dG9kaXNw
bGF5OihCT09MKW5ld1N0YXRlCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAoIW5ld1N0
YXRlICYmIFtbX3drVmlldyB3aW5kb3ddIGlzQXV0b2Rpc3BsYXldKQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAogICAgICAgICBbX3drVmlldyBkaXNwbGF5SWZOZWVkZWRdOworICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgW1tfd2tWaWV3IHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6bmV3U3RhdGVdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogCiAgICAgLy8gRm9yIHNvbWUgcmVhc29uLCBwYWludGluZyBkb2Vzbid0IGhhcHBlbiBm
b3IgYSBsb25nIHRpbWUgd2l0aG91dCB0aGlzIGNhbGwsIDxyZGFyOi8vcHJvYmxlbS84OTc1MjI5
Pi4KICAgICBpZiAobmV3U3RhdGUpCkBAIC00NTQsMTkgKzQ1MiwxNyBAQCBzdGF0aWMgTlNTdHJp
bmcgKmxpbmtEZXN0aW5hdGlvbk5hbWUoUERGRG9jdW1lbnQgKmRvY3VtZW50LCBQREZEZXN0aW5h
dGlvbiAqZGVzdAogICAgIH0KIAogICAgIE5TR3JhcGhpY3NDb250ZXh0ICpuc0dyYXBoaWNzQ29u
dGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IHN0YXRpY19jYXN0PENHQ29udGV4dFJl
Zj4oW25zR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAg
Q0dDb250ZXh0U2F2ZUdTdGF0ZShjb250ZXh0KTsKICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0o
Y29udGV4dCwgcG9pbnQueCwgcG9pbnQueSk7CiAgICAgQ0dDb250ZXh0U2NhbGVDVE0oY29udGV4
dCwgX3RvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgLV90b3RhbFNjYWxlRmFjdG9yRm9yUHJp
bnRpbmcpOwogICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjb250ZXh0LCAwLCAtW3BkZlBhZ2Ug
Ym91bmRzRm9yQm94OmtQREZEaXNwbGF5Qm94TWVkaWFCb3hdLnNpemUuaGVpZ2h0KTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgIFtwZGZQYWdlIGRyYXdXaXRoQm94OmtQREZEaXNwbGF5Qm94TWVk
aWFCb3hdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogCiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0g
Q0dDb250ZXh0R2V0Q1RNKGNvbnRleHQpOwogCkBAIC00NzksMTAgKzQ3NSw5IEBAIHN0YXRpYyBO
U1N0cmluZyAqbGlua0Rlc3RpbmF0aW9uTmFtZShQREZEb2N1bWVudCAqZG9jdW1lbnQsIFBERkRl
c3RpbmF0aW9uICpkZXN0CiAgICAgICAgIGlmICghW2Fubm90YXRpb24gaXNLaW5kT2ZDbGFzczpX
ZWJLaXQ6OnBkZkFubm90YXRpb25MaW5rQ2xhc3MoKV0pCiAgICAgICAgICAgICBjb250aW51ZTsK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBQREZBbm5vdGF0aW9uTGluayAqbGlu
a0Fubm90YXRpb24gPSAoUERGQW5ub3RhdGlvbkxpbmsgKilhbm5vdGF0aW9uOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICAgICAgTlNVUkwgKnVybCA9IFtsaW5rQW5ub3RhdGlvbiBVUkxdOwogICAgICAg
ICBDR1JlY3QgdHJhbnNmb3JtZWRSZWN0ID0gQ0dSZWN0QXBwbHlBZmZpbmVUcmFuc2Zvcm0oTlNS
ZWN0VG9DR1JlY3QoW2xpbmtBbm5vdGF0aW9uIGJvdW5kc10pLCB0cmFuc2Zvcm0pOwogCkBAIC01
NDUsMTAgKzU0MCw5IEBAIHN0YXRpYyBOU1N0cmluZyAqbGlua0Rlc3RpbmF0aW9uTmFtZShQREZE
b2N1bWVudCAqZG9jdW1lbnQsIFBERkRlc3RpbmF0aW9uICpkZXN0CiAgICAgfQogCiAgICAgUmVm
UHRyPFdlYktpdDo6U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBwYWdlUHJldmlld0l0ZXJhdG9y
LT52YWx1ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQg
PSBzdGF0aWNfY2FzdDxDR0NvbnRleHRSZWY+KFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENv
bnRleHRdIGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0IGNvbnRleHQoY2dDb250ZXh0KTsKICAgICBXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CkBAIC01ODksMTAgKzU4Myw5IEBAIHN0
YXRpYyBOU1N0cmluZyAqbGlua0Rlc3RpbmF0aW9uTmFtZShQREZEb2N1bWVudCAqZG9jdW1lbnQs
IFBERkRlc3RpbmF0aW9uICpkZXN0CiAgICAgICAgICAgICAgICAgaWYgKCFbYW5ub3RhdGlvbiBp
c0tpbmRPZkNsYXNzOldlYktpdDo6cGRmQW5ub3RhdGlvbkxpbmtDbGFzcygpXSkKICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICAgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgICAgICAgICAgICAgIFBERkFubm90YXRpb25MaW5rICpsaW5rQW5ub3RhdGlvbiA9IChQREZB
bm5vdGF0aW9uTGluayAqKWFubm90YXRpb247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAg
ICAgICAgICAgICAgaWYgKGxpbmtBbm5vdGF0aW9uLlVSTCkKICAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1Rl
eHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tCmluZGV4IGFlMzY0MWVmNzk3NDYzYTE4MGMw
ZmIyNjc0YjAwMmFiMTFhODc5NjIuLmJlOTZjYTI4MDBhYTE1MDRlNTgzNjgyN2Q3ZGNmMDZmNzc0
ZjY2ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRJbnB1
dFdpbmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
VGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbQpAQCAtMTA2LDEwICsxMDYsOSBAQAogCiAtIChC
T09MKV9pbnRlcnByZXRLZXlFdmVudDooTlNFdmVudCAqKWV2ZW50IHVzaW5nTGVnYWN5Q29jb2FU
ZXh0SW5wdXQ6KEJPT0wpdXNpbmdMZWdhY3lDb2NvYVRleHRJbnB1dCBzdHJpbmc6KE5TU3RyaW5n
ICoqKXN0cmluZwogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQk9PTCBoYWRNYXJrZWRUZXh0
ID0gW19pbnB1dFRleHRWaWV3IGhhc01hcmtlZFRleHRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogIAogICAgICpz
dHJpbmcgPSBuaWw7CiAKQEAgLTEyNCwxMCArMTIzLDkgQEAKICAgICBpZiAoIVtbX2lucHV0VGV4
dFZpZXcgaW5wdXRDb250ZXh0XSBoYW5kbGVFdmVudDpldmVudF0pCiAgICAgICAgIHJldHVybiBO
TzsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChbX2lucHV0VGV4dFZpZXcgaGFz
TWFya2VkVGV4dF0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIC8vIERvbid0IHNob3cgdGhl
IGlucHV0IG1ldGhvZCB3aW5kb3cgZm9yIGRlYWQga2V5cwogICAgICAgICBpZiAoW1tldmVudCBj
aGFyYWN0ZXJzXSBsZW5ndGhdID4gMCkKICAgICAgICAgICAgIFtzZWxmIG9yZGVyRnJvbnQ6bmls
XTsKQEAgLTE2MSwxMCArMTU5LDkgQEAKIAogLSAoQk9PTClfaGFzTWFya2VkVGV4dAogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgcmV0dXJuIFtfaW5wdXRUZXh0VmlldyBoYXNNYXJrZWRUZXh0
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCmluZGV4IDhiNWRiMTU5NWFiMzU3ZmVjOTRk
Y2U3N2M3NjRlYWRjYmI2MzU2MGQuLjY4NGIxMzY3ODYxMzA5MDg0Y2MxNDI1ZmMyMGVhNDVkODZm
Y2Y3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1l
bnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBN
ZW51UHJveHlNYWMubW0KQEAgLTE4OCwxMCArMTg4LDkgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94
eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRl
eHQKICAgICBbTlNBcHAgcG9zdEV2ZW50OmZha2VFdmVudCBhdFN0YXJ0OllFU107CiAgICAgZmFr
ZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3Zl
ZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbW21fd2ViVmll
dyB3aW5kb3ddCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgICAgICAgICAgICAgY29udmVy
dFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczpbaW5pdGlhdGluZ05TRXZlbnQgbW9k
aWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6
W2luaXRpYXRpbmdOU0V2ZW50IHRpbWVzdGFtcF0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aW5kb3dOdW1iZXI6W2luaXRpYXRpbmdOU0V2ZW50IHdpbmRvd051bWJlcl0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRz
Y2FwZVBsdWdpbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQppbmRleCBlZGNmNTMyYzg1YWFmOGM2YjNhNTBh
ZTNkNjRiZTA2ZTlhYTBlMzQwLi4yOTBiNjVjYzAxNjNkYmIyYTRmMWYwOTMyZmY2ZjA3Y2Y2MmNl
ZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCkBAIC0zNzMsMTAgKzM3
Myw5IEBAIHN0YXRpYyBpbmxpbmUgRXZlbnRSZWNvcmQgaW5pdGlhbGl6ZUV2ZW50UmVjb3JkKEV2
ZW50S2luZCBldmVudEtpbmQpCiAKICAgICBldmVudFJlY29yZC53aGF0ID0gZXZlbnRLaW5kOwog
ICAgIGV2ZW50UmVjb3JkLm1lc3NhZ2UgPSAwOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgZXZl
bnRSZWNvcmQud2hlbiA9IFRpY2tDb3VudCgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIGV2ZW50UmVjb3Jk
LndoZXJlID0gUG9pbnQoKTsKICAgICBldmVudFJlY29yZC5tb2RpZmllcnMgPSAwOwogCkBAIC0x
MDQzLDEwICsxMDQyLDkgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0SW5w
dXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCiAKICAgICAgICAgLy8gU2V0IHRoZSBzY3JpcHQg
Y29kZSBhcyB0aGUga2V5Ym9hcmQgc2NyaXB0LiBOb3JtYWxseSBDYXJib24gZG9lcyB0aGlzIHdo
ZW5ldmVyIHRoZSBpbnB1dCBzb3VyY2UgY2hhbmdlcy4KICAgICAgICAgLy8gSG93ZXZlciwgdGhp
cyBpcyBvbmx5IGRvbmUgZm9yIHRoZSBwcm9jZXNzIHRoYXQgaGFzIHRoZSBrZXlib2FyZCBmb2N1
cy4gV2UgY2hlYXQgYW5kIGRvIGl0IGhlcmUgaW5zdGVhZC4KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICAgICAgU2V0U2NyaXB0TWFuYWdlclZhcmlhYmxlKHNtS2V5U2NyaXB0LCBzY3JpcHRD
b2RlKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIAogICAgICAgICBFdmVudFJlY29yZCBldmVu
dCA9IGluaXRpYWxpemVFdmVudFJlY29yZChrZXlEb3duKTsKICAgICAgICAgZXZlbnQubW9kaWZp
ZXJzID0gMDsKQEAgLTExMjEsMTEgKzExMTksMTAgQEAgc3RhdGljIHZvaWQgbWFrZUNHTFByZXNl
bnRMYXllck9wYXF1ZShDQUxheWVyICpwbHVnaW5Sb290TGF5ZXIpCiAgICAgICAgIHJldHVybjsK
IAogICAgIENsYXNzIGNnbFByZXNlbnRMYXllckNsYXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJD
R0xQcmVzZW50TGF5ZXIiKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmICghW2NnbFByZXNl
bnRMYXllckNsYXNzIGlzU3ViY2xhc3NPZkNsYXNzOltDQU9wZW5HTExheWVyIGNsYXNzXV0pCiAg
ICAgICAgIHJldHVybjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIENBTGF5ZXIgKmxheWVyID0gW3N1Ymxh
eWVycyBvYmplY3RBdEluZGV4OjBdOwogICAgIGlmICghW2xheWVyIGlzS2luZE9mQ2xhc3M6Y2ds
UHJlc2VudExheWVyQ2xhc3NdKQpAQCAtMTE4MSwxMSArMTE3OCwxMCBAQCB2b2lkIE5ldHNjYXBl
UGx1Z2luOjpudWxsRXZlbnRUaW1lckZpcmVkKCkKICAgICBldmVudC53aGVyZS52ID0gbW91c2VQ
b3NpdGlvbi55OwogCiAgICAgZXZlbnQubW9kaWZpZXJzID0gR2V0Q3VycmVudEtleU1vZGlmaWVy
cygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKCFCdXR0b24oKSkKICAgICAgICAgZXZl
bnQubW9kaWZpZXJzIHw9IGJ0blN0YXRlOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgTlBQX0hhbmRsZUV2
ZW50KCZldmVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpbi5tbQppbmRleCA0Y2FhNmNjMGY2MDQ1MGMwM2IyMmEyODRkZDEzYWYyNWVm
ZDZlMzg2Li5kYTA0MTA3MmEzZDYwY2NiNjFhYTgwYTFjNGMzMmIyNGQ4OTYyOTUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAg
LTMxNiwxMCArMzE2LDkgQEAgc3RhdGljIGNvbnN0IGludCBkZWZhdWx0U2Nyb2xsTWFnbml0dWRl
VGhyZXNob2xkRm9yUGFnZUZsaXAgPSAyMDsKICAgICBpZiAoV2ViS2l0OjpQREZQbHVnaW5Bbm5v
dGF0aW9uKiBhY3RpdmVBbm5vdGF0aW9uID0gX3BkZlBsdWdpbi0+YWN0aXZlQW5ub3RhdGlvbigp
KSB7CiAgICAgICAgIGlmIChXZWJDb3JlOjpBWE9iamVjdENhY2hlKiBleGlzdGluZ0NhY2hlID0g
X3BkZlBsdWdpbi0+YXhPYmplY3RDYWNoZSgpKSB7CiAgICAgICAgICAgICBpZiAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gZXhpc3RpbmdDYWNoZS0+Z2V0T3JDcmVhdGUo
YWN0aXZlQW5ub3RhdGlvbi0+ZWxlbWVudCgpKSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICAgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgICAgICAgICAgICAgIHJldHVybiBbb2JqZWN0LT53cmFwcGVyKCkgYWNjZXNzaWJp
bGl0eUF0dHJpYnV0ZVZhbHVlOkAiX0FYQXNzb2NpYXRlZFBsdWdpblBhcmVudCJdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBuaWw7CkBAIC00
MjQsMTAgKzQyMyw5IEBAIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdFNjcm9sbE1hZ25pdHVkZVRo
cmVzaG9sZEZvclBhZ2VGbGlwID0gMjA7CiAKIC0gKHZvaWQpd3JpdGVJdGVtc1RvUGFzdGVib2Fy
ZDooTlNBcnJheSAqKWl0ZW1zIHdpdGhUeXBlczooTlNBcnJheSAqKXR5cGVzCiB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBfcGRmUGx1Z2luLT53cml0ZUl0ZW1zVG9QYXN0ZWJvYXJkKE5TR2Vu
ZXJhbFBib2FyZCwgaXRlbXMsIHR5cGVzKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogLSAodm9pZClzaG93
RGVmaW5pdGlvbkZvckF0dHJpYnV0ZWRTdHJpbmc6KE5TQXR0cmlidXRlZFN0cmluZyAqKXN0cmlu
ZyBhdFBvaW50OihDR1BvaW50KXBvaW50CkBAIC0xNjUwLDExICsxNjQ4LDEwIEBAIGJvb2wgUERG
UGx1Z2luOjpoYW5kbGVFZGl0aW5nQ29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBj
b25zdCBTdHJpbmcmIGFyCiAgICAgICAgIFttX3BkZkxheWVyQ29udHJvbGxlciBzZWxlY3RBbGxd
OwogICAgIGVsc2UgaWYgKGNvbW1hbmROYW1lID09ICJ0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rp
b24iKSB7CiAgICAgICAgIE5TU3RyaW5nICpzdHJpbmcgPSBbbV9wZGZMYXllckNvbnRyb2xsZXIg
Y3VycmVudFNlbGVjdGlvbl0uc3RyaW5nOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAg
ICBpZiAoc3RyaW5nLmxlbmd0aCkKICAgICAgICAgICAgIHdyaXRlSXRlbXNUb1Bhc3RlYm9hcmQo
TlNGaW5kUGJvYXJkLCBAWyBbc3RyaW5nIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0Vu
Y29kaW5nXSBdLCBAWyBOU1Bhc3RlYm9hcmRUeXBlU3RyaW5nIF0pOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE3MzQsMTMgKzE3MzEsMTIgQEAgdm9pZCBQ
REZQbHVnaW46OnNldEFjdGl2ZUFubm90YXRpb24oUERGQW5ub3RhdGlvbiAqYW5ub3RhdGlvbikK
ICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uLT5jb21taXQoKTsKIAogICAgIGlmIChhbm5vdGF0
aW9uKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGlmIChbYW5ub3RhdGlvbiBp
c0tpbmRPZkNsYXNzOnBkZkFubm90YXRpb25UZXh0V2lkZ2V0Q2xhc3MoKV0gJiYgc3RhdGljX2Nh
c3Q8UERGQW5ub3RhdGlvblRleHRXaWRnZXQgKj4oYW5ub3RhdGlvbikuaXNSZWFkT25seSkgewog
ICAgICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gbnVsbHB0cjsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgICAgICBtX2FjdGl2ZUFubm90
YXRpb24gPSBQREZQbHVnaW5Bbm5vdGF0aW9uOjpjcmVhdGUoYW5ub3RhdGlvbiwgbV9wZGZMYXll
ckNvbnRyb2xsZXIuZ2V0KCksIHRoaXMpOwogICAgICAgICBtX2FjdGl2ZUFubm90YXRpb24tPmF0
dGFjaChtX2Fubm90YXRpb25Db250YWluZXIuZ2V0KCkpOwpAQCAtMjA3OCwxMCArMjA3NCw5IEBA
IHN0ZDo6dHVwbGU8U3RyaW5nLCBQREZTZWxlY3Rpb24gKiwgTlNEaWN0aW9uYXJ5ICo+IFBERlBs
dWdpbjo6bG9va3VwVGV4dEF0TG9jYXRpCiAgICAgICAgIGlmICghTlNQb2ludEluUmVjdChwb2lu
dEluUGFnZVNwYWNlLCBib3VuZHMpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICAgICAgUERGQW5ub3RhdGlvbkxpbmsgKmxpbmtBbm5vdGF0aW9u
ID0gKFBERkFubm90YXRpb25MaW5rICopYW5ub3RhdGlvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAg
ICAgIE5TVVJMICp1cmwgPSBsaW5rQW5ub3RhdGlvbi5VUkw7CiAgICAgICAgIGlmICghdXJsKQog
ICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24uaAppbmRl
eCAwZjc2NzVjNWQyMzFkNTdkOTJiZDYyNzkzNmU5ZTAyNGQyZTFjNjhkLi5hODFkZGY2M2E0ZTYx
ZGQzMGM3YjdkOTE5MDc2YjNmOGEyZmMzZWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0
aW9uLmgKQEAgLTUzLDEwICs1Myw5IEBAIHByaXZhdGU6CiAKICAgICBSZWY8V2ViQ29yZTo6RWxl
bWVudD4gY3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQoKSBvdmVycmlkZTsKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgUERGQW5ub3RhdGlvbkNob2ljZVdpZGdldCAqY2hvaWNlQW5ub3RhdGlvbigp
IHsgcmV0dXJuIHN0YXRpY19jYXN0PFBERkFubm90YXRpb25DaG9pY2VXaWRnZXQgKj4oYW5ub3Rh
dGlvbigpKTsgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hv
aWNlQW5ub3RhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9Q
REZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCmluZGV4IDU4MjVmZDNlY2FiNDYxNTRmOGY5ZDA1
MDEzZjY1NGFjOGM2MTU4Y2YuLjEwMGEwMzY2YWY0NGY5YTEzZDk4OTYxYzE2YzEzN2M2MWQwZTk2
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCkBAIC02NywxMCArNjcsOSBA
QCB2b2lkIFBERlBsdWdpbkNob2ljZUFubm90YXRpb246OmNvbW1pdCgpCiBSZWY8RWxlbWVudD4g
UERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbjo6Y3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQoKQogewog
ICAgIERvY3VtZW50JiBkb2N1bWVudCA9IHBhcmVudCgpLT5kb2N1bWVudCgpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgUERGQW5ub3RhdGlvbkNob2ljZVdpZGdldCAqY2hvaWNlQW5ub3RhdGlv
biA9IHRoaXMtPmNob2ljZUFubm90YXRpb24oKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIGF1dG8gZWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoc2VsZWN0VGFnLCBmYWxzZSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0
QW5ub3RhdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpblRleHRBbm5vdGF0aW9uLmgKaW5kZXggOTJkNDAyM2NkNzBlOTRkOThkNGJiNTgxZTMwYTdk
Mjg1YjE5ZDlkYy4uMzZkM2EzZDIxZWYxZmVjNWY0NjBlNDg5ZjgwNTQ4YjdmM2ZiYzJmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRl
eHRBbm5vdGF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpblRleHRBbm5vdGF0aW9uLmgKQEAgLTYwLDEwICs2MCw5IEBAIHByb3RlY3RlZDoK
IHByaXZhdGU6CiAgICAgYm9vbCBoYW5kbGVFdmVudChXZWJDb3JlOjpFdmVudCYpIG92ZXJyaWRl
OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBQREZBbm5vdGF0aW9uVGV4dFdpZGdldCAqdGV4
dEFubm90YXRpb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxQREZBbm5vdGF0aW9uVGV4
dFdpZGdldCAqPihhbm5vdGF0aW9uKCkpOyB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbQppbmRleCAyYzZhNzZjNGIw
ZTExNTUxMDE5NWZmZDY5NzQ4NjQ2NmE3NWYxMjY4Li5iZTA2MDNmMmMxZGE0YTBjNTg5ZjU1OGMz
ZjhhZTRjNGIyYTNlNzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCkBAIC04MCwx
MCArODAsOSBAQCBQREZQbHVnaW5UZXh0QW5ub3RhdGlvbjo6flBERlBsdWdpblRleHRBbm5vdGF0
aW9uKCkKIFJlZjxFbGVtZW50PiBQREZQbHVnaW5UZXh0QW5ub3RhdGlvbjo6Y3JlYXRlQW5ub3Rh
dGlvbkVsZW1lbnQoKQogewogICAgIERvY3VtZW50JiBkb2N1bWVudCA9IHBhcmVudCgpLT5kb2N1
bWVudCgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgUERGQW5ub3RhdGlvblRleHRXaWRnZXQg
KnRleHRBbm5vdGF0aW9uID0gdGhpcy0+dGV4dEFubm90YXRpb24oKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAg
ICBib29sIGlzTXVsdGlsaW5lID0gdGV4dEFubm90YXRpb24uaXNNdWx0aWxpbmU7CiAKICAgICBh
dXRvIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGlzTXVsdGlsaW5lID8gdGV4dGFy
ZWFUYWcgOiBpbnB1dFRhZywgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVu
dC5oCmluZGV4IDQ1MjBlOWQ2OWJjODAyZjZlYmRhNjViMjk3ZThhOGQ0NThjMTk3MjguLjk0OWM2
MmFlYzY5NTg5M2EzMmM4MTIxYWE5N2M3ZDU4ZTViMGU2NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJu
YXRpdmVUZXh0Q2xpZW50LmgKQEAgLTUxLDE0ICs1MSwxMSBAQCBwdWJsaWM6CiAjZW5kaWYKIHBy
aXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNpZiBkZWZpbmVkKF9faGFzX3dhcm5pbmcpICYmIF9faGFzX3dhcm5pbmcoIi1XdW51c2VkLXBy
aXZhdGUtZmllbGQiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2Vk
LXByaXZhdGUtZmllbGQiCi0jZW5kaWYKKyAgICBJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigi
LVd1bnVzZWQtcHJpdmF0ZS1maWVsZCIpCiAjZW5kaWYKICAgICBXZWJQYWdlICptX3BhZ2U7CiAj
aWYgUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9S
RV9DTEFOR19XQVJOSU5HX0VORAogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRN
YWMubW0KaW5kZXggYTg3N2U3ZmNmYTBhMzk4Nzk3NzcwYTE0MzQ0OTA1ZmY5NzMwMzJmMC4uM2Jk
N2QxZmJiMzhjYjIwOWFmZGI3MWRlYjE4YjlkOTFlZGQ5MTMwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJh
Z0NsaWVudE1hYy5tbQpAQCAtNzIsMTAgKzcyLDkgQEAgc3RhdGljIFJlZlB0cjxTaGFyZWFibGVC
aXRtYXA+IGNvbnZlcnRJbWFnZVRvQml0bWFwKE5TSW1hZ2UgKmltYWdlLCBjb25zdCBJbnRTaXoK
IAogICAgIFJldGFpblB0cjxOU0dyYXBoaWNzQ29udGV4dD4gc2F2ZWRDb250ZXh0ID0gW05TR3Jh
cGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
W05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBn
cmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmdyYXBoaWNzQ29udGV4dC0+cGxhdGZvcm1D
b250ZXh0KCkgZmxpcHBlZDpZRVNdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbaW1hZ2UgZHJhd0luUmVj
dDpOU01ha2VSZWN0KDAsIDAsIGJpdG1hcC0+c2l6ZSgpLndpZHRoKCksIGJpdG1hcC0+c2l6ZSgp
LmhlaWdodCgpKSBmcm9tUmVjdDpOU1plcm9SZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3Bl
cmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3BlY3RGbGlwcGVkOllFUyBoaW50czpuaWxd
OwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OnNhdmVkQ29udGV4
dC5nZXQoKV07CkBAIC0xMTMsMTAgKzExMiw5IEBAIHN0YXRpYyBXZWJDb3JlOjpDYWNoZWRJbWFn
ZSogY2FjaGVkSW1hZ2UoRWxlbWVudCYgZWxlbWVudCkKIAogdm9pZCBXZWJEcmFnQ2xpZW50Ojpk
ZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgRWxl
bWVudCYgZWxlbWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbGFiZWwsIEZyYW1l
KikKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEFTU0VSVChwYXN0ZWJvYXJkTmFtZSA9PSBT
dHJpbmcoTlNEcmFnUGJvYXJkKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBXZWJDb3JlOjpDYWNoZWRJ
bWFnZSogaW1hZ2UgPSBjYWNoZWRJbWFnZShlbGVtZW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmpl
Y3RNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3Np
YmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQppbmRleCBmZTk0ZTg1ZTQ3MGY0YTg3ZTU5ZmU5ZDdl
Y2Y4NDQyZmVlNTdjZjMzLi5mZDliMTg1Y2ZmMGJlNmQwYzlmYTg2MjZjOTBjY2ZmYzk1NjAzYzVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nl
c3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQpAQCAtMTky
LDggKzE5Miw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgcmV0dXJuIFlFUzsKIH0K
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KIC0gKGlkKWFjY2Vzc2liaWxpdHlIaXRUZXN0OihOU1BvaW50KXBv
aW50CiB7CiAgICAgaWYgKCFtX3BhZ2UpCkBAIC0yMTUsNyArMjE0LDcgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIAogICAgIHJldHVybiBbW3NlbGYgYWNjZXNzaWJpbGl0eVJvb3RPYmplY3RX
cmFwcGVyXSBhY2Nlc3NpYmlsaXR5SGl0VGVzdDpjb252ZXJ0ZWRQb2ludF07CiB9Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
IAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9X
ZWJQYWdlTWFjLm1tCmluZGV4IGRhN2M5OGY2OGM0ODE4OTA3M2RiZWE0NzQ4NzFmZjJjYWI2YTU4
MWEuLmM4ZDQ4MGU1YjkzNjM5MmM4ZjE3NjM3MTBlN2E3N2VmODRiNWU0YTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC04
MTgsMTEgKzgxOCwxMCBAQCBzdGF0aWMgdm9pZCBkcmF3UERGUGFnZShQREZEb2N1bWVudCAqcGRm
RG9jdW1lbnQsIENGSW5kZXggcGFnZUluZGV4LCBDR0NvbnRleHRSZQogICAgIH0KIAogICAgIFtO
U0dyYXBoaWNzQ29udGV4dCBzYXZlR3JhcGhpY3NTdGF0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6W05TR3JhcGhpY3NDb250
ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Y29udGV4dCBmbGlwcGVkOk5PXV07
CiAgICAgW3BkZlBhZ2UgZHJhd1dpdGhCb3g6a1BERkRpc3BsYXlCb3hDcm9wQm94XTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICBbTlNHcmFwaGljc0NvbnRleHQgcmVzdG9yZUdyYXBoaWNzU3RhdGVdOwogCiAg
ICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0gQ0dDb250ZXh0R2V0Q1RNKGNvbnRleHQp
OwpAQCAtODMxLDEwICs4MzAsOSBAQCBzdGF0aWMgdm9pZCBkcmF3UERGUGFnZShQREZEb2N1bWVu
dCAqcGRmRG9jdW1lbnQsIENGSW5kZXggcGFnZUluZGV4LCBDR0NvbnRleHRSZQogICAgICAgICBp
ZiAoIVthbm5vdGF0aW9uIGlzS2luZE9mQ2xhc3M6cGRmQW5ub3RhdGlvbkxpbmtDbGFzcygpXSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAg
IFBERkFubm90YXRpb25MaW5rICpsaW5rQW5ub3RhdGlvbiA9IChQREZBbm5vdGF0aW9uTGluayAq
KWFubm90YXRpb247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBOU1VSTCAqdXJsID0gW2xpbmtB
bm5vdGF0aW9uIFVSTF07CiAgICAgICAgIGlmICghdXJsKQogICAgICAgICAgICAgY29udGludWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uVXRpbHMu
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25VdGlscy5tCmluZGV4IGI3
OTVlOWI0MmE2ZTcxNDg1ZGQxNzdjY2Q5ZGRjNzNhNDk0N2UwZGYuLmVjZDQ3ZTNhYzRlNjBlNjAz
MDNiMmRiOThlMWNlZDFiMmI4YWI3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NhcmJvbi9DYXJib25VdGlscy5tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0Nh
cmJvbi9DYXJib25VdGlscy5tCkBAIC04NywxMCArODcsOSBAQCBzdGF0aWMgdW5zaWduZWQgZ2V0
TlNBdXRvcmVsZWFzZVBvb2xDb3VudCh2b2lkKQogUG9vbENsZWFuZXIoIEV2ZW50TG9vcFRpbWVy
UmVmIGluVGltZXIsIEV2ZW50TG9vcElkbGVUaW1lck1lc3NhZ2UgaW5TdGF0ZSwgdm9pZCAqaW5V
c2VyRGF0YSApCiB7CiAgICAgaWYgKCBpblN0YXRlID09IGtFdmVudExvb3BJZGxlVGltZXJTdGFy
dGVkICkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2Nhc3QtcXVhbCIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQkVH
SU4oIi1XY2FzdC1xdWFsIikKICAgICAgICAgQ0ZTdHJpbmdSZWYgbW9kZSA9IENGUnVuTG9vcENv
cHlDdXJyZW50TW9kZSggKENGUnVuTG9vcFJlZilHZXRDRlJ1bkxvb3BGcm9tRXZlbnRMb29wKCBH
ZXRDdXJyZW50RXZlbnRMb29wKCkgKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgIElHTk9SRV9XQVJOSU5HX0VORAogICAgICAgICBFdmVudExvb3BSZWYgdGhpc0xvb3Ag
PSBHZXRDdXJyZW50RXZlbnRMb29wICgpOwogICAgICAgICBpZiAoIENGRXF1YWwoIG1vZGUsIGtD
RlJ1bkxvb3BEZWZhdWx0TW9kZSApICYmIHRoaXNMb29wID09IHBvb2xMb29wKSB7CiAgICAgICAg
ICAgICB1bnNpZ25lZCBjdXJyZW50TnVtUG9vbHMgPSBnZXROU0F1dG9yZWxlYXNlUG9vbENvdW50
KCktMTsgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0Nh
cmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2Fy
Ym9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KaW5kZXggZDE1MjJmM2YwMjNlZjBmNmRlMzM2MmJk
YTNiMzA0OTQ3ODg4YzBiZi4uYjA5ZTA2YzI0OWZiZDA4ZWVlN2Q2ZTkzNDc2NTkzMTc5NWNmMzU2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRv
d0FkYXB0ZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldp
bmRvd0FkYXB0ZXIubW0KQEAgLTE3NywxMCArMTc3LDkgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2Fy
Ym9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNh
bGwKICAgICAvLyBCdXQgbm93IHRoZSBub24tcmV0YWluZWQgd2luZG93IGNsYXNzIGlzIGEgQ2Fy
Ym9uIHNlY3JldCB0aGF0J3Mgbm90IGV2ZW4gaW4KICAgICAvLyBXaW5kb3dzUHJpdi5oOyBtYXli
ZSB3ZSdsbCBoYXZlIHRvIHJldmlzaXQgdGhpcyBpZiBzb21lb25lIG5lZWRzIHRvIHVzZSBXZWJL
aXQKICAgICAvLyBpbiBhIG5vbi1yZXRhaW5lZCB3aW5kb3cuCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBiYWNraW5nU3RvcmVUeXBlID0gTlNCYWNraW5nU3RvcmVSZXRhaW5lZDsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIAogICAgIC8vIEZpZ3VyZSBvdXQgdGhlIHdpbmRvdydzIHN0eWxlIG1hc2suCiAgICAgc3R5
bGVNYXNrID0gX05TQ2FyYm9uV2luZG93TWFzazsKQEAgLTIwNSwxMCArMjA0LDkgQEAgc3RhdGlj
IE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBp
bkV2ZW50SGFuZGxlckNhbGwKICAgICAvLyBEbyBzb21lIHN0YW5kYXJkIENvY29hIGluaXRpYWxp
emF0aW9uLiAgVGhlIGRlZmVyIGFyZ3VtZW50J3MgdmFsdWUgaXMgWUVTIGJlY2F1c2Ugd2UgZG9u
J3Qgd2FudCAtW05TV2luZG93IF9jb21tb25Bd2FrZV0gdG8gZ2V0IGNhbGxlZC4gIEl0IGRvZXNu
J3QgYXBwZWFyIHRoYXQgYW55IHJlbGV2YW50IE5TV2luZG93IGNvZGUgY2hlY2tzIF93RmxhZ3Mu
ZGVmZXJyZWQsIHNvIHdlIHNob3VsZCBiZSBhYmxlIHRvIGdldCBhd2F5IHdpdGggdGhlIGxpZS4K
ICAgICBzZWxmID0gKENhcmJvbldpbmRvd0FkYXB0ZXIqKVtzdXBlciBfaW5pdENvbnRlbnQ6bnVs
bHB0ciBzdHlsZU1hc2s6c3R5bGVNYXNrIGJhY2tpbmc6YmFja2luZ1N0b3JlVHlwZSBkZWZlcjpZ
RVMgY29udGVudFZpZXc6Y2FyYm9uV2luZG93Q29udGVudFZpZXddOwogICAgIGlmICghc2VsZikg
cmV0dXJuIG5pbDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGFzc2VydChfY29udGVudFZpZXcp
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogCiAgICAgLy8gUmVjb3JkIGFjY3VyYXRlbHkgd2hldGhlciBvciBub3Qg
dGhpcyB3aW5kb3cgaGFzIGEgc2hhZG93LCBpbiBjYXNlIHNvbWVvbmUgYXNrcy4KICAvLyAgIF9h
dXhpbGlhcnlTdG9yYWdlLT5fYXV4V0ZsYWdzLmhhc1NoYWRvdyA9ICh3aW5kb3dBdHRyaWJ1dGVz
ICYga1dpbmRvd05vU2hhZG93QXR0cmlidXRlKSA/IE5PIDogWUVTOwpAQCAtMjgxLDEwICsyNzks
OSBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRs
ZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAgIC8vIGZsdXNoZXMgaXQuCiAKICAgICBp
ZiAoW3NlbGYgd2luZG93TnVtYmVyXSAhPSAtMSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gKENHQ29udGV4dFJlZilbW3NlbGYgX3Ro
cmVhZENvbnRleHRdIGdyYXBoaWNzUG9ydF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBDR0Nv
bnRleHRTeW5jaHJvbml6ZShjZ0NvbnRleHQpOwogICAgIH0KIH0KQEAgLTM3NCwxMSArMzcxLDEw
IEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxl
ckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAgICAgLy8gSW5pdGlhbGl6ZSBmb3Igc2FmZSBy
ZXR1cm5pbmcuCiAgICAgQk9PTCByZWNvbmNpbGlhdGlvbldhc05lY2Vzc2FyeSA9IE5POwogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBQcmVjb25kaXRpb24gY2hlY2suCiAgICAgYXNzZXJ0
KF9jb250ZW50Vmlldyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICAvLyBHZXQgdGhlIENhcmJvbiB3aW5k
b3cncyBib3VuZHMsIHdoaWNoIGFyZSBleHByZXNzZWQgaW4gZ2xvYmFsIHNjcmVlbiBjb29yZGlu
YXRlcywgd2l0aCAoMCwwKSBhdCB0aGUgdG9wLWxlZnQgb2YgdGhlIG1haW4gc2NyZWVuLgogICAg
IG9zU3RhdHVzID0gR2V0V2luZG93Qm91bmRzKF93aW5kb3dSZWYsIGtXaW5kb3dTdHJ1Y3R1cmVS
Z24sICZ3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0KTsKQEAgLTM5MywyOCArMzg5LDI2IEBAIHN0
YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxS
ZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAgICAgbmV3V2luZG93RnJhbWVSZWN0Lm9yaWdpbi55ID0g
TlNNYXhZKFsoTlNTY3JlZW4gKilbW05TU2NyZWVuIHNjcmVlbnNdIG9iamVjdEF0SW5kZXg6MF0g
ZnJhbWVdKSAtIHdpbmRvd1N0cnVjdHVyZUJvdW5kc1JlY3QuYm90dG9tOwogICAgIG5ld1dpbmRv
d0ZyYW1lUmVjdC5zaXplLndpZHRoID0gd2luZG93U3RydWN0dXJlQm91bmRzUmVjdC5yaWdodCAt
IHdpbmRvd1N0cnVjdHVyZUJvdW5kc1JlY3QubGVmdDsKICAgICBuZXdXaW5kb3dGcmFtZVJlY3Qu
c2l6ZS5oZWlnaHQgPSB3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0LmJvdHRvbSAtIHdpbmRvd1N0
cnVjdHVyZUJvdW5kc1JlY3QudG9wOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKCFOU0Vx
dWFsUmVjdHMobmV3V2luZG93RnJhbWVSZWN0LCBfZnJhbWUpKSB7CiAgICAgICAgIFtzZWxmIF9z
ZXRGcmFtZTpuZXdXaW5kb3dGcmFtZVJlY3RdOwogICAgICAgICBbX2JvcmRlclZpZXcgc2V0RnJh
bWVTaXplOm5ld1dpbmRvd0ZyYW1lUmVjdC5zaXplXTsKICAgICAgICAgcmVjb25jaWxpYXRpb25X
YXNOZWNlc3NhcnkgPSBZRVM7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgLy8gU2V0IHRoZSBj
b250ZW50IHZpZXcncyBmcmFtZSByZWN0IGZyb20gdGhlIENhcmJvbiB3aW5kb3cncyBjb250ZW50
IHJlZ2lvbiBib3VuZHMuCiAgICAgbmV3Q29udGVudEZyYW1lUmVjdC5vcmlnaW4ueCA9IHdpbmRv
d0NvbnRlbnRCb3VuZHNSZWN0LmxlZnQgLSB3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0LmxlZnQ7
CiAgICAgbmV3Q29udGVudEZyYW1lUmVjdC5vcmlnaW4ueSA9IHdpbmRvd1N0cnVjdHVyZUJvdW5k
c1JlY3QuYm90dG9tIC0gd2luZG93Q29udGVudEJvdW5kc1JlY3QuYm90dG9tOwogICAgIG5ld0Nv
bnRlbnRGcmFtZVJlY3Quc2l6ZS53aWR0aCA9IHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LnJpZ2h0
IC0gd2luZG93Q29udGVudEJvdW5kc1JlY3QubGVmdDsKICAgICBuZXdDb250ZW50RnJhbWVSZWN0
LnNpemUuaGVpZ2h0ID0gd2luZG93Q29udGVudEJvdW5kc1JlY3QuYm90dG9tIC0gd2luZG93Q29u
dGVudEJvdW5kc1JlY3QudG9wOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgb2xkQ29udGVudEZy
YW1lUmVjdCA9IFsoTlNWaWV3ICopX2NvbnRlbnRWaWV3IGZyYW1lXTsKICAgICBpZiAoIU5TRXF1
YWxSZWN0cyhuZXdDb250ZW50RnJhbWVSZWN0LCBvbGRDb250ZW50RnJhbWVSZWN0KSkgewogICAg
ICAgICBbKE5TVmlldyAqKV9jb250ZW50VmlldyBzZXRGcmFtZTpuZXdDb250ZW50RnJhbWVSZWN0
XTsKICAgICAgICAgcmVjb25jaWxpYXRpb25XYXNOZWNlc3NhcnkgPSBZRVM7CiAgICAgfQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogCiAgICAgLy8gRG9uZS4KICAgICByZXR1cm4gcmVjb25jaWxpYXRpb25XYXNOZWNl
c3Nhcnk7CkBAIC01OTUsOCArNTg5LDcgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93
SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKIC8vIFRo
aXMgZnVuY3Rpb24gaXMgbW9zdGx5IGN1dC1hbmQtcGFzdGVkIGZyb20gLVtOU1dpbmRvdyBfdGVy
bVdpbmRvd0lmT3duZXJdLiAgTS5QLiBOb3RpY2UgLSA4LzcvMDAKIC0gKHZvaWQpX3Rlcm1XaW5k
b3dJZk93bmVyCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbc2VsZiBfc2V0V2luZG93TnVt
YmVyOi0xXTsKICAgICBfd0ZsYWdzLmlzVGVybWluYXRpbmcgPSBZRVM7CiAgICAgaWYgKF93aW5k
b3dSZWYgJiYgX3dpbmRvd1JlZklzT3duZWQpCkBAIC02MDYsNyArNTk5LDcgQEAgc3RhdGljIE9T
U3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2
ZW50SGFuZGxlckNhbGwKIC8vICAgICAgICBbX2JvcmRlclZpZXcgc2V0U2hhZG93U3RhdGU6a0Zy
YW1lU2hhZG93Tm9uZV07CiAvLyAgICB9CiAgICAgX3dGbGFncy5pc1Rlcm1pbmF0aW5nID0gTk87
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiB9CiAKIApAQCAtNjI2LDEwICs2MTksOSBAQCBzdGF0aWMgT1NTdGF0dXMg
TlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5k
bGVyQ2FsbAogICAgIFtzdXBlciBfd2luZG93TW92ZWRUb1JlY3Q6YWN0dWFsRnJhbWVdOwogCiAg
ICAgLy8gTGV0IENhcmJvbiBrbm93IHRoYXQgdGhlIHdpbmRvdyBoYXMgYmVlbiBtb3ZlZCwgdW5s
ZXNzIHRoaXMgbWV0aG9kIGlzIGJlaW5nIGNhbGxlZCAiZWFybHkuIgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgaWYgKF93RmxhZ3MudmlzaWJsZSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAg
b3NTdGF0dXMgPSBfU3luY1dpbmRvd1dpdGhDR0FmdGVyTW92ZShfd2luZG93UmVmKTsKICAgICAg
ICAgaWYgKG9zU3RhdHVzIT1ub0VycikgTlNMb2coQCJBIENhcmJvbiB3aW5kb3cncyBib3VuZHMg
Y291bGRuJ3QgYmUgc3luY2hyb25pemVkICglaSkuIiwgKGludClvc1N0YXR1cyk7CiAgICAgfQpA
QCAtNzU4LDExICs3NTAsMTAgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxl
RXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKICAgICBSZWN0IHdp
bmRvd0NvbnRlbnRCb3VuZHNSZWN0OwogCiAgICAgLy8gUHJlY29uZGl0aW9uIGNoZWNrLgotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgYXNzZXJ0KF9ib3JkZXJWaWV3KTsKICAgICBhc3NlcnQoW19i
b3JkZXJWaWV3IGlzS2luZE9mQ2xhc3M6W0NhcmJvbldpbmRvd0ZyYW1lIGNsYXNzXV0pOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgIGFzc2VydChfd2luZG93UmVmKTsKIAogICAgIC8vIFBhcmFtZXRlciBjaGVj
ay4KQEAgLTc3Niw4ICs3NjcsNyBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5k
bGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAgIGNvbnRl
bnRGcmFtZVJlY3Quc2l6ZS53aWR0aCA9IHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LnJpZ2h0IC0g
d2luZG93Q29udGVudEJvdW5kc1JlY3QubGVmdDsKICAgICBjb250ZW50RnJhbWVSZWN0LnNpemUu
aGVpZ2h0ID0gd2luZG93Q29udGVudEJvdW5kc1JlY3QuYm90dG9tIC0gd2luZG93Q29udGVudEJv
dW5kc1JlY3QudG9wOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBJZiB0aGUgY29udGVu
dCB2aWV3IGlzIHN0aWxsIGluIHNvbWUgb3RoZXIgdmlldyBoaWVyYXJjaHksIHByeSBpdCBmcmVl
LgogICAgIFtfY29udGVudFZpZXcgcmVtb3ZlRnJvbVN1cGVydmlld107CiAgICAgYXNzZXJ0KCFb
X2NvbnRlbnRWaWV3IHN1cGVydmlld10pOwpAQCAtNzkxLDcgKzc4MSw3IEBAIHN0YXRpYyBPU1N0
YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVu
dEhhbmRsZXJDYWxsCiAKICAgICAvLyBUZWxsIHRoZSBjb250ZW50IHZpZXcgaXQncyBuZXcgcGxh
Y2UgaW4gdGhlIHJlc3BvbmRlciBjaGFpbi4KICAgICBbX2NvbnRlbnRWaWV3IHNldE5leHRSZXNw
b25kZXI6c2VsZl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIApAQCAtOTQ0LDEwICs5MzQsOSBAQCBDbGVh
blVwOgogICAgIEhJUmVjdCBmcmFtZTsKIAogICAgIEhJVmlld0dldEZyYW1lKHJvb3QsICZmcmFt
ZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbX2JvcmRlclZpZXcgc2V0RnJhbWVTaXplOioo
TlNTaXplKikmZnJhbWUuc2l6ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKHZvaWQpX2hhbmRsZUNv
bnRlbnRCb3VuZHNDaGFuZ2VkCkBAIC05NjQsMTMgKzk1MywxMiBAQCBDbGVhblVwOgogICAgIC8v
IFNldCB0aGUgY29udGVudCB2aWV3J3MgZnJhbWUgcmVjdCBmcm9tIHRoZSBDYXJib24gd2luZG93
J3MgY29udGVudCByZWdpb24gYm91bmRzLgogICAgIGNvbnRlbnRGcmFtZS5vcmlnaW4ueSA9IHJv
b3RCb3VuZHMuc2l6ZS5oZWlnaHQgLSBDR1JlY3RHZXRNYXhZKGNvbnRlbnRGcmFtZSk7CiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIG9sZENvbnRlbnRGcmFtZVJlY3QgPSBbKE5TVmlldyAqKV9j
b250ZW50VmlldyBmcmFtZV07CiAgICAgaWYgKCFOU0VxdWFsUmVjdHMoKihOU1JlY3QqKSZjb250
ZW50RnJhbWUsIG9sZENvbnRlbnRGcmFtZVJlY3QpKSB7CiAgICAgICAgIFsoTlNWaWV3ICopX2Nv
bnRlbnRWaWV3IHNldEZyYW1lOiooTlNSZWN0KikmY29udGVudEZyYW1lXTsKICAgICB9Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiB9CiAKIC0gKE9TU3RhdHVzKV9oYW5kbGVDYXJib25FdmVudDooRXZlbnRSZWYpaW5F
dmVudCBjYWxsUmVmOihFdmVudEhhbmRsZXJDYWxsUmVmKWluQ2FsbFJlZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0ZyYW1lLm0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93RnJhbWUubQppbmRleCBlOTI2
ZWI2YzIxZTBmYTg4ZjI4ZGM0YTA2MWMzOTAyMjUzMjVlYjk3Li5jNzE0M2Q1NjM5NjZmZTJhM2Q3
Mzg4ODBmZDFiNmFhOGI5ODg3NDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DYXJib24vQ2FyYm9uV2luZG93RnJhbWUubQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DYXJib24vQ2FyYm9uV2luZG93RnJhbWUubQpAQCAtMjQxLDEwICsyNDEsOSBAQCAtIChOU1N0
cmluZyAqKXRpdGxlIHsKICAgICB3aW5kb3dSZWYgPSBbY2FyYm9uV2luZG93IHdpbmRvd1JlZl07
CiAgICAgb3NTdGF0dXMgPSBDb3B5V2luZG93VGl0bGVBc0NGU3RyaW5nKHdpbmRvd1JlZiwgJndp
bmRvd1RpdGxlKTsKICAgICBpZiAob3NTdGF0dXM9PW5vRXJyKSB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XY2FzdC1x
dWFsIgorICAgICAgICBJR05PUkVfV0FSTklOR19CRUdJTigiLVdjYXN0LXF1YWwiKQogICAgICAg
ICB3aW5kb3dUaXRsZUFzTlNTdHJpbmcgPSAoTlNTdHJpbmcgKil3aW5kb3dUaXRsZTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfRU5ECiAgICAg
fSBlbHNlIHsKICAgICAgICAgTlNMb2coQCJBIENhcmJvbiB3aW5kb3cncyB0aXRsZSBjb3VsZG4n
dCBiZSBnb3R0ZW4uIik7CiAgICAgICAgIHdpbmRvd1RpdGxlQXNOU1N0cmluZyA9IEAiIjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vSElWaWV3QWRhcHRlci5tCmluZGV4IGYz
ZDk5NjVhYjdmZDEzODRhYmI1NWU1OWM1YTA5NDRiNWU2MDFlNzAuLmNhZmNiOGRmZDgwY2Q5N2Jh
MWZjOTNhZDk0NzEwNTE0NjExNjIwMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2FyYm9uL0hJVmlld0FkYXB0ZXIubQpAQCAtODgsMTAgKzg4LDkgQEAgKyAodm9pZCliaW5kSElW
aWV3VG9OU1ZpZXc6KEhJVmlld1JlZiloaVZpZXcgbnNWaWV3OihOU1ZpZXcqKW5zVmlldwogCiAr
IChISVZpZXdSZWYpZ2V0SElWaWV3Rm9yTlNWaWV3OihOU1ZpZXcqKWluVmlldwogewotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2Nhc3QtcXVhbCIKKyAgICBJR05PUkVfV0FSTklOR19CRUdJTigiLVdjYXN0LXF1YWwiKQog
ICAgIHJldHVybiBzVmlld01hcCA/IChISVZpZXdSZWYpQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoc1Zp
ZXdNYXAsIGluVmlldykgOiBOVUxMOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IElHTk9SRV9XQVJOSU5HX0VORAogfQogCiArICh2b2lkKXVuYmluZE5TVmlldzooTlNWaWV3Kilp
blZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVdlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vSElXZWJWaWV3Lm1tCmluZGV4
IDQwNmI3NzlmYWNmN2EzZDQxNGJiMmRmY2EzOTU1MTY0ZTc2MjkyNmEuLjI2NDkwNzJlMjkyMDk0
ZTRhMWU1MjI5ZTQ3M2E3NmY4Y2NiNTBhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2FyYm9uL0hJV2ViVmlldy5tbQpAQCAtMjg4LDExICsyODgsMTAgQEAgc3RhdGljIFVJbnQzMiBH
ZXRCZWhhdmlvcnMoKQogCiBzdGF0aWMgQ0dDb250ZXh0UmVmIG92ZXJyaWRlQ0dDb250ZXh0KE5T
V2luZG93ICp3aW5kb3csIENHQ29udGV4dFJlZiBjb250ZXh0KQogewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgTlNXaW5kb3dHcmFwaGljc0NvbnRleHQgKmdyYXBoaWNzQ29udGV4dCA9IChOU1dp
bmRvd0dyYXBoaWNzQ29udGV4dCAqKXdpbmRvdy5ncmFwaGljc0NvbnRleHQ7CiAgICAgQ0dDb250
ZXh0UmVmIHNhdmVkQ29udGV4dCA9IChDR0NvbnRleHRSZWYpZ3JhcGhpY3NDb250ZXh0LmdyYXBo
aWNzUG9ydDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBDR0NvbnRleHRSZXRhaW4oc2F2ZWRDb250ZXh0KTsK
ICAgICBbZ3JhcGhpY3NDb250ZXh0IF93ZWJfc2V0R3JhcGhpY3NQb3J0OmNvbnRleHRdOwogICAg
IHJldHVybiBzYXZlZENvbnRleHQ7CkBAIC0zMDAsMTAgKzI5OSw5IEBAIHN0YXRpYyBDR0NvbnRl
eHRSZWYgb3ZlcnJpZGVDR0NvbnRleHQoTlNXaW5kb3cgKndpbmRvdywgQ0dDb250ZXh0UmVmIGNv
bnRleHQpCiAKIHN0YXRpYyB2b2lkIHJlc3RvcmVDR0NvbnRleHQoTlNXaW5kb3cgKndpbmRvdywg
Q0dDb250ZXh0UmVmIHNhdmVkQ29udGV4dCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5T
V2luZG93R3JhcGhpY3NDb250ZXh0ICpncmFwaGljc0NvbnRleHQgPSAoTlNXaW5kb3dHcmFwaGlj
c0NvbnRleHQgKil3aW5kb3cuZ3JhcGhpY3NDb250ZXh0OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtncmFw
aGljc0NvbnRleHQgX3dlYl9zZXRHcmFwaGljc1BvcnQ6c2F2ZWRDb250ZXh0XTsKICAgICBDR0Nv
bnRleHRSZWxlYXNlKHNhdmVkQ29udGV4dCk7CiB9CkBAIC0zMjMsMTIgKzMyMSwxMSBAQCBzdGF0
aWMgdm9pZCBEcmF3KEhJV2ViVmlldyogaW5WaWV3LCBSZ25IYW5kbGUgbGltaXRSZ24sIENHQ29u
dGV4dFJlZiBpbkNvbnRleHQpCiAgICAgICAgIEdyYWZQdHIgcG9ydDsKICAgICAgICAgUmVjdCBw
b3J0UmVjdDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBHZXRQb3J0KCZwb3J0
KTsKICAgICAgICAgR2V0UG9ydEJvdW5kcyhwb3J0LCAmcG9ydFJlY3QpOwogICAgICAgICBDcmVh
dGVDR0NvbnRleHRGb3JQb3J0KHBvcnQsICZpbkNvbnRleHQpOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgICAgIFN5bmNDR0NvbnRleHRPcmlnaW5XaXRoUG9ydChpbkNvbnRleHQsIHBvcnQpOwogICAg
ICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oaW5Db250ZXh0LCAwLCAocG9ydFJlY3QuYm90dG9t
IC0gcG9ydFJlY3QudG9wKSk7CiAgICAgICAgIENHQ29udGV4dFNjYWxlQ1RNKGluQ29udGV4dCwg
MSwgLTEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET00ubW0KaW5kZXggOGViYjhhMGRhZjYzNDVm
MjE5MDNkNmZlY2IyNGQ4ZjE0ZTA2YzJhMS4uNmY0Mjc4MTJkYzc0MjljZGQzNjlhMzI3N2U4N2I2
Y2E0NTcxYjY3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NLm1tCkBAIC0yNDQsOCArMjQ0
LDcgQEAgc3RhdGljIGlubGluZSBXS1F1YWQgemVyb1F1YWQoKQogCiBAaW1wbGVtZW50YXRpb24g
RE9NTm9kZSAoV2ViQ29yZUludGVybmFsKQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xb2JqYy1wcm90b2NvbC1tZXRo
b2QtaW1wbGVtZW50YXRpb24iCitJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigiLVdvYmpjLXBy
b3RvY29sLW1ldGhvZC1pbXBsZW1lbnRhdGlvbiIpCiAKIC0gKE5TU3RyaW5nICopZGVzY3JpcHRp
b24KIHsKQEAgLTI1OSw3ICsyNTgsNyBAQCBzdGF0aWMgaW5saW5lIFdLUXVhZCB6ZXJvUXVhZCgp
CiAgICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiPCVAIFslQF06ICVwPiIs
IFtbc2VsZiBjbGFzc10gZGVzY3JpcHRpb25dLCBbc2VsZiBub2RlTmFtZV0sIF9pbnRlcm5hbF07
CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9DTEFOR19XQVJOSU5H
X0VORAogCiAtIChCaW5kaW5nczo6Um9vdE9iamVjdCopX3Jvb3RPYmplY3QKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeS5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5LmgKaW5kZXggZjgzYzUyNGQxOWRl
Yjc2MjdlYzVlZDI1OWUxZGE2YjQ2YjExZGY2OS4uMGI2Yjg5MDA3YTNhMzFiOTk3MzgyMmVmYTRk
YmFjNDBhMmJkMTkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9y
eS9XZWJIaXN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJI
aXN0b3J5LmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0
aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViS2l0QXZhaWxhYmlsaXR5Lmg+CisjaW1w
b3J0IDx3dGYvQ29tcGlsZXIuaD4KIAogQGNsYXNzIE5TRXJyb3I7CiAKQEAgLTEyOCwxMCArMTI5
LDkgQEAgV0VCS0lUX0NMQVNTX0RFUFJFQ0FURURfTUFDKDEwXzMsIDEwXzE0KQogICAgIEBwYXJh
bSBjYWxlbmRhckRhdGUgQSBkYXRlIGlkZW50aWZ5aW5nIHRoZSB1bmlxdWUgZGF5IG9mIGludGVy
ZXN0LgogICAgIEByZXN1bHQgUmV0dXJucyBhbiBhcnJheSBvZiBXZWJIaXN0b3J5SXRlbXMgbGFz
dCB2aXNpdGVkIG9uIHRoZSBpbmRpY2F0ZWQgZGF5LgogKi8KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAtIChO
U0FycmF5ICopb3JkZXJlZEl0ZW1zTGFzdFZpc2l0ZWRPbkRheTooTlNDYWxlbmRhckRhdGUgKilj
YWxlbmRhckRhdGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZgogCiAvKiEKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeS5tbQppbmRleCA5MDQ5NmJiYjk5MzY0Mjk5NmJmNWEy
NDU2ZGY4Njg4ZGY4NjU2MDdiLi40ZDE2ZTM4ODA2MWQ5Y2ZlZjNiODdhOWNhZTlhYjc4MGQwNDJm
ZjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3Rv
cnkubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5Lm1t
CkBAIC00NDYsOCArNDQ2LDcgQEAgc3RhdGljIGlubGluZSBXZWJIaXN0b3J5RGF0ZUtleSBkYXRl
S2V5KE5TVGltZUludGVydmFsIGRhdGUpCiAKIC8vIE1BUks6IERBVEUtQkFTRUQgUkVUUklFVkFM
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAKIC0gKE5TQXJyYXkgKilvcmRlcmVkTGFzdFZpc2l0ZWREYXlz
CiB7CkBAIC00NzksNyArNDc4LDcgQEAgc3RhdGljIGlubGluZSBXZWJIaXN0b3J5RGF0ZUtleSBk
YXRlS2V5KE5TVGltZUludGVydmFsIGRhdGUpCiAgICAgcmV0dXJuIF9lbnRyaWVzQnlEYXRlLT5n
ZXQoZGF0ZUtleSkuZ2V0KCk7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAvLyBNQVJLOiBVUkwgTUFUQ0hJTkcK
IApAQCAtNTMxLDggKzUzMCw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViSGlzdG9yeURhdGVLZXkgZGF0
ZUtleShOU1RpbWVJbnRlcnZhbCBkYXRlKQogICAgIHJldHVybiBbW05TVXNlckRlZmF1bHRzIHN0
YW5kYXJkVXNlckRlZmF1bHRzXSBpbnRlZ2VyRm9yS2V5OkAiV2ViS2l0SGlzdG9yeUl0ZW1MaW1p
dCJdOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiAvLyBSZXR1cm4gYSBkYXRlIHRoYXQgbWFya3Mg
dGhlIGFnZSBsaW1pdCBmb3IgaGlzdG9yeSBlbnRyaWVzIHNhdmVkIHRvIG9yCiAvLyBsb2FkZWQg
ZnJvbSBkaXNrLiBBbnkgZW50cnkgb2xkZXIgdGhhbiB0aGlzIGl0ZW0gc2hvdWxkIGJlIHJlamVj
dGVkLgpAQCAtNTQyLDcgKzU0MCw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViSGlzdG9yeURhdGVLZXkg
ZGF0ZUtleShOU1RpbWVJbnRlcnZhbCBkYXRlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaG91cnM6MCBtaW51dGVzOjAgc2Vjb25kczowXTsK
IH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAKIC0gKEJPT0wpbG9hZEhpc3RvcnlHdXRzRnJvbVVSTDooTlNVUkwgKilV
Ukwgc2F2ZWRJdGVtc0NvdW50OihpbnQgKiludW1iZXJPZkl0ZW1zTG9hZGVkIGNvbGxlY3REaXNj
YXJkZWRJdGVtc0ludG86KE5TTXV0YWJsZUFycmF5ICopZGlzY2FyZGVkSXRlbXMgZXJyb3I6KE5T
RXJyb3IgKiopZXJyb3IKIHsKQEAgLTU2MSwxMCArNTU5LDkgQEAgc3RhdGljIGlubGluZSBXZWJI
aXN0b3J5RGF0ZUtleSBkYXRlS2V5KE5TVGltZUludGVydmFsIGRhdGUpCiAgICAgICAgICAgICBy
ZXR1cm4gTk87CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgICAgICBOU0RhdGEgKmRhdGEgPSBbTlNVUkxDb25uZWN0aW9uIHNlbmRTeW5jaHJvbm91
c1JlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpVUkxdIHJldHVybmluZ1Jlc3Bv
bnNlOm5pbCBlcnJvcjplcnJvcl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBpZiAoZGF0YS5s
ZW5ndGgpCiAgICAgICAgICAgICBkaWN0aW9uYXJ5ID0gW05TUHJvcGVydHlMaXN0U2VyaWFsaXph
dGlvbiBwcm9wZXJ0eUxpc3RXaXRoRGF0YTpkYXRhIG9wdGlvbnM6TlNQcm9wZXJ0eUxpc3RJbW11
dGFibGUgZm9ybWF0Om51bGxwdHIgZXJyb3I6bnVsbHB0cl07CiAgICAgfQpAQCAtNzY4LDE1ICs3
NjUsMTQgQEAgc3RhdGljIGlubGluZSBXZWJIaXN0b3J5RGF0ZUtleSBkYXRlS2V5KE5TVGltZUlu
dGVydmFsIGRhdGUpCiAgICAgcmV0dXJuIFtfaGlzdG9yeVByaXZhdGUgb3JkZXJlZExhc3RWaXNp
dGVkRGF5c107CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIC0gKE5TQXJyYXkgKilvcmRlcmVkSXRl
bXNMYXN0VmlzaXRlZE9uRGF5OihOU0NhbGVuZGFyRGF0ZSAqKWRhdGUKIHsKICAgICByZXR1cm4g
W19oaXN0b3J5UHJpdmF0ZSBvcmRlcmVkSXRlbXNMYXN0VmlzaXRlZE9uRGF5OmRhdGVdOwogfQog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKIAogLy8gTUFSSzogVVJMIE1BVENISU5HCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCmluZGV4IGNjMTg1N2FmMDJiYWEw
NzllYzkyYTgxZTQ2MDUwMDU4OTIzYTljOTguLjhmMTdjM2FmODlmMmIyNzRhYjQ3NTQ1ZWE5Zjll
YWFhNmM5ZWNkZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3Rvcnkv
V2ViSGlzdG9yeUl0ZW0ubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9X
ZWJIaXN0b3J5SXRlbS5tbQpAQCAtMTk5LDEwICsxOTksOSBAQCB2b2lkIFdLTm90aWZ5SGlzdG9y
eUl0ZW1DaGFuZ2VkKEhpc3RvcnlJdGVtKikKICNpZiAhUExBVEZPUk0oSU9TKQogLSAoTlNJbWFn
ZSAqKWljb24KIHsKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaCAKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBbW1dlYkljb25EYXRhYmFz
ZSBzaGFyZWRJY29uRGF0YWJhc2VdIGljb25Gb3JVUkw6W3NlbGYgVVJMU3RyaW5nXSB3aXRoU2l6
ZTpXZWJJY29uU21hbGxTaXplXTsKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0TlNTdHJpbmdFeHRyYXMubW0KaW5kZXgg
N2Y5OTUwMmYzNmI3NDkyM2YzMTFlMDA2MWFlYmUxNGQ3NjY0NmNjZS4uMDdmMTQxYzc5ZTQ0ZWQ5
OGJjNjk3OTljOTJmNWJkM2VjZTc0Yzg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9NaXNjL1dlYktpdE5TU3RyaW5nRXh0cmFzLm1tCkBAIC03NywxMCArNzcsOSBAQCBz
dGF0aWMgYm9vbCBjYW5Vc2VGYXN0UmVuZGVyZXIoY29uc3QgVW5pQ2hhciogYnVmZmVyLCB1bnNp
Z25lZCBsZW5ndGgpCiAgICAgICAgIHBvaW50LnkgPSBDR0NlaWxpbmcocG9pbnQueSk7CiAKICAg
ICAgICAgTlNHcmFwaGljc0NvbnRleHQgKm5zQ29udGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBj
dXJyZW50Q29udGV4dF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIENHQ29udGV4
dFJlZiBjZ0NvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0NvbnRleHRSZWY+KFtuc0NvbnRleHQgZ3Jh
cGhpY3NQb3J0XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBHcmFwaGljc0NvbnRleHQgZ3Jh
cGhpY3NDb250ZXh0IHsgY2dDb250ZXh0IH07CiAKICAgICAgICAgLy8gV2ViQ29yZSByZXF1aXJl
cyBhIGZsaXBwZWQgZ3JhcGhpY3MgY29udGV4dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL01pc2MvV2ViTlNJbWFnZUV4dHJhcy5tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvTWlzYy9XZWJOU0ltYWdlRXh0cmFzLm0KaW5kZXggYzMyNjQzYjQ5OGZhZTcwZmQzMTI0YWU1
YzQ1NjllMDNlOTZiMmZjMS4uNWZhYTE3YTJlYzA4NTJkYWYzZjFhYTdlNjUzZTY2YmExZjhkMTE4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU0ltYWdlRXh0
cmFzLm0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU0ltYWdlRXh0cmFz
Lm0KQEAgLTUzLDEwICs1Myw5IEBAIC0gKHZvaWQpX3dlYl9zY2FsZVRvTWF4U2l6ZTooTlNTaXpl
KXNpemUKICAgICAKICAgICBpZihyZXNpemVEZWx0YSA+IDAuMCl7CiAgICAgICAgIE5TU2l6ZSBu
ZXdTaXplID0gTlNNYWtlU2l6ZSgob3JpZ2luYWxTaXplLndpZHRoICogcmVzaXplRGVsdGEpLCAo
b3JpZ2luYWxTaXplLmhlaWdodCAqIHJlc2l6ZURlbHRhKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgICAgIFtzZWxmIHNldFNjYWxlc1doZW5SZXNpemVkOllFU107Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogICAgICAgICBbc2VsZiBzZXRTaXplOm5ld1NpemVdOwogICAgIH0KIH0KQEAgLTY1LDI5
ICs2NCwyNSBAQCAtICh2b2lkKV93ZWJfZGlzc29sdmVUb0ZyYWN0aW9uOihmbG9hdClkZWx0YQog
ewogICAgIE5TSW1hZ2UgKmRpc3NvbHZlZEltYWdlID0gW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0
aFNpemU6W3NlbGYgc2l6ZV1dOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU1BvaW50IHBv
aW50ID0gW3NlbGYgaXNGbGlwcGVkXSA/IE5TTWFrZVBvaW50KDAsIFtzZWxmIHNpemVdLmhlaWdo
dCkgOiBOU1plcm9Qb2ludDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAKICAgICAvLyBJbiB0aGlzIGNhc2Ug
dGhlIGRyYWdnaW5nIGltYWdlIGlzIGFsd2F5cyBjb3JyZWN0LgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgW2Rpc3NvbHZlZEltYWdlIHNldEZsaXBwZWQ6W3NlbGYgaXNGbGlwcGVkXV07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiAKICAgICBbZGlzc29sdmVkSW1hZ2UgbG9ja0ZvY3VzXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIFtzZWxmIGRpc3NvbHZlVG9Qb2ludDpwb2ludCBmcmFjdGlvbjogZGVsdGFdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogICAgIFtkaXNzb2x2ZWRJbWFnZSB1bmxvY2tGb2N1c107CiAKICAgICBbc2Vs
ZiBsb2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW2Rpc3NvbHZlZEltYWdlIGNv
bXBvc2l0ZVRvUG9pbnQ6cG9pbnQgb3BlcmF0aW9uOk5TQ29tcG9zaXRlQ29weV07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAgICAgW3NlbGYgdW5sb2NrRm9jdXNdOwogCiAgICAgW2Rpc3NvbHZlZEltYWdlIHJlbGVh
c2VdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3Rl
Ym9hcmRFeHRyYXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVi
b2FyZEV4dHJhcy5tbQppbmRleCBmYTIzYzZjYmRiMTQ2Yjg2MmNjZTJlYWU0ODBhZWExMTk5NmMx
YmIwLi5kYWJiY2RiYzMwYTllMjE3ZWUxZTljYTk4YTQyZDQzM2QyMjkzOTRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5t
bQpAQCAtMTg0LDEwICsxODQsOSBAQCBzdGF0aWMgTlNBcnJheSAqX3dyaXRhYmxlVHlwZXNGb3JJ
bWFnZVdpdGhBcmNoaXZlICh2b2lkKQogCiArIChpbnQpX3dlYl9zZXRGaW5kUGFzdGVib2FyZFN0
cmluZzooTlNTdHJpbmcgKilzdHJpbmcgd2l0aE93bmVyOihpZClvd25lcgogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgTlNQYXN0ZWJvYXJkICpmaW5kUGFzdGVib2FyZCA9IFtOU1Bhc3RlYm9h
cmQgcGFzdGVib2FyZFdpdGhOYW1lOk5TRmluZFBib2FyZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW2Zp
bmRQYXN0ZWJvYXJkIGRlY2xhcmVUeXBlczpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6bGVnYWN5
U3RyaW5nUGFzdGVib2FyZFR5cGUoKV0gb3duZXI6b3duZXJdOwogICAgIFtmaW5kUGFzdGVib2Fy
ZCBzZXRTdHJpbmc6c3RyaW5nIGZvclR5cGU6bGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUoKV07
CiAgICAgcmV0dXJuIFtmaW5kUGFzdGVib2FyZCBjaGFuZ2VDb3VudF07CkBAIC0yNzksMTAgKzI3
OCw5IEBAIHN0YXRpYyBDYWNoZWRJbWFnZSogaW1hZ2VGcm9tRWxlbWVudChET01FbGVtZW50ICpk
b21FbGVtZW50KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmNoaXZlOihX
ZWJBcmNoaXZlICopYXJjaGl2ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c291cmNlOihXZWJIVE1MVmlldyAqKXNvdXJjZQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
QVNTRVJUKHNlbGYgPT0gW05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6TlNEcmFnUGJv
YXJkXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBOU1N0cmluZyAqZXh0ZW5zaW9uID0gQCIiOwogICAg
IFJldGFpblB0cjxOU011dGFibGVBcnJheT4gdHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJy
YXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czpsZWdhY3lGaWxlc1Byb21pc2VQYXN0ZWJvYXJkVHlw
ZSgpLCBuaWxdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BhbmVscy9X
ZWJBdXRoZW50aWNhdGlvblBhbmVsLm0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QYW5lbHMv
V2ViQXV0aGVudGljYXRpb25QYW5lbC5tCmluZGV4IDY3ZjE4YjhmNTM3NWVhYzU0NWIyM2E2M2Ri
OTc2ZjY5NDc2YjdkNGUuLjVmYzMyM2M4MjAxMzE0OWNhMmQ1MTIxNmQ2ZTg2OTg3M2E2N2RkYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BhbmVscy9XZWJBdXRoZW50aWNh
dGlvblBhbmVsLm0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGFuZWxzL1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWwubQpAQCAtMTA0LDEwICsxMDQsOSBAQCAtIChJQkFjdGlvbilsb2dJbjoo
aWQpc2VuZGVyCiAtIChCT09MKWxvYWROaWIKIHsKICAgICBpZiAoIW5pYkxvYWRlZCkgewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBpZiAoW05TQnVuZGxlIGxvYWROaWJOYW1lZDpX
ZWJBdXRoZW50aWNhdGlvblBhbmVsTmliTmFtZSBvd25lcjpzZWxmXSkgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiAgICAgICAgICAgICBuaWJMb2FkZWQgPSBZRVM7CiAgICAgICAgICAgICBbaW1hZ2VW
aWV3IHNldEltYWdlOltOU0ltYWdlIGltYWdlTmFtZWQ6QCJOU0FwcGxpY2F0aW9uSWNvbiJdXTsK
ICAgICAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1Bs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLm1tCmlu
ZGV4IDAyMTBiMDY2YmFhZDI2OTdlMDlmMjhlMDg5YWQzNWZhNzRmMzY5ZGYuLmUxNTBhMzdkY2M0
YmFjYzg5Yjc0NmE1MDQ3NTg5N2ZkNDVlMTEyMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5I
b3N0TWFuYWdlci5tbQpAQCAtMTg3LDEwICsxODcsOSBAQCBib29sIE5ldHNjYXBlUGx1Z2luSG9z
dE1hbmFnZXI6OnNwYXduUGx1Z2luSG9zdChjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIGNwdV90
eQogCiAgICAgUHJvY2Vzc1NlcmlhbE51bWJlciBwc247CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIEdldEN1cnJlbnRQcm9jZXNzKCZwc24pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgQVNTRVJUKE1B
Q0hfUE9SVF9WQUxJRChjbGllbnRQb3J0KSk7CiAgICAga3IgPSBfV0tQSENoZWNrSW5XaXRoUGx1
Z2luSG9zdChwbHVnaW5Ib3N0UG9ydCwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KGNvbnN0X2Nhc3Q8
dm9pZCo+KFtkYXRhIGJ5dGVzXSkpLCBbZGF0YSBsZW5ndGhdLCBjbGllbnRQb3J0LCBwc24uaGln
aExvbmdPZlBTTiwgcHNuLmxvd0xvbmdPZlBTTiwgcmVuZGVyU2VydmVyUG9ydCwKQEAgLTMyMiwx
MSArMzIxLDEwIEBAIHZvaWQgTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlcjo6ZGlkQ3JlYXRlV2lu
ZG93KCkKICAgICAgICAgaWYgKCFob3N0UHJveHktPmlzTWVudUJhclZpc2libGUoKSkgewogICAg
ICAgICAgICAgLy8gTWFrZSBvdXJzZWx2ZXMgdGhlIGZyb250IHByb2Nlc3MuCiAgICAgICAgICAg
ICBQcm9jZXNzU2VyaWFsTnVtYmVyIHBzbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgICAgICAgICBHZXRDdXJyZW50UHJvY2VzcygmcHNuKTsKICAgICAgICAgICAgIFNldEZyb250
UHJvY2VzcygmcHNuKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQppbmRleCBl
YzVmMGRhNThhNjJhOWU1NDQ3OGNjMmMwZjcwN2ViNGM3MTAxMGI2Li5mMWM0YWQzMTg5MGUwNTZh
ZWIzODhiNGRjYmRlZGZiNTRmNjAxZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94
eS5tbQpAQCAtMzQxLDMyICszNDEsMjkgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6
cHJvY2Vzc1JlcXVlc3RzKCkKIAogdm9pZCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6bWFrZUN1
cnJlbnRQcm9jZXNzRnJvbnRQcm9jZXNzKCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFBy
b2Nlc3NTZXJpYWxOdW1iZXIgcHNuOwogICAgIEdldEN1cnJlbnRQcm9jZXNzKCZwc24pOwogICAg
IFNldEZyb250UHJvY2VzcygmcHNuKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogdm9pZCBOZXRzY2FwZVBs
dWdpbkhvc3RQcm94eTo6bWFrZVBsdWdpbkhvc3RQcm9jZXNzRnJvbnRQcm9jZXNzKCkgY29uc3QK
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFNldEZyb250UHJvY2VzcygmbV9wbHVnaW5Ib3N0
UFNOKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogYm9vbCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6aXNQ
bHVnaW5Ib3N0UHJvY2Vzc0Zyb250UHJvY2VzcygpIGNvbnN0CiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICBQcm9jZXNzU2VyaWFsTnVtYmVyIGZyb250UHJvY2VzczsKICAgICBHZXRGcm9udFBy
b2Nlc3MoJmZyb250UHJvY2Vzcyk7CiAKICAgICBCb29sZWFuIGlzU2FtZVByb2Nlc3MgPSAwOwog
ICAgIFNhbWVQcm9jZXNzKCZmcm9udFByb2Nlc3MsICZtX3BsdWdpbkhvc3RQU04sICZpc1NhbWVQ
cm9jZXNzKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIHJldHVybiBpc1NhbWVQcm9jZXNzOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9I
b3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4IGU5M2ZiNTA2ZTVkZTBh
NWRhZTNhZmE1NjU4Y2JhZjQxNzhlMjZhYTEuLmFjN2E0YmIzMThjNTVmOTM1OWM5OGUwYThiZjk2
ZDFlNmU0NDM2MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMv
SG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0K
QEAgLTQyMywxMCArNDIzLDkgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnN0
YXJ0VGltZXJzKGJvb2wgdGhyb3R0bGVUaW1lcnMpCiAgICAgCiB2b2lkIE5ldHNjYXBlUGx1Z2lu
SW5zdGFuY2VQcm94eTo6bW91c2VFdmVudChOU1ZpZXcgKnBsdWdpblZpZXcsIE5TRXZlbnQgKmV2
ZW50LCBOUENvY29hRXZlbnRUeXBlIHR5cGUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBO
U1BvaW50IHNjcmVlblBvaW50ID0gW1tldmVudCB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46
W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBOU1BvaW50IHBsdWdp
blBvaW50ID0gW3BsdWdpblZpZXcgY29udmVydFBvaW50OltldmVudCBsb2NhdGlvbkluV2luZG93
XSBmcm9tVmlldzpuaWxdOwogICAgIAogICAgIGludCBjbGlja0NvdW50OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQ
bHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2Vi
SG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IGYzZTA0YjRmNTU4MDYxMTkxYzg2ZmQ2
Nzc1NTE1OTE0ODYzZDExOTQuLjUwOTZmN2QzYTFjZmY4YzNkZDU2ZTdiODg5MzE1YWE3ZGJjZDM4
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1dl
Ykhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTQ3Nyw4
ICs0NzcsNyBAQCBleHRlcm4gIkMiIHsKICAgICB9CiAKICAgICBpZiAoX3Byb3h5KSB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGlmIChfc29mdHdhcmVSZW5kZXJlcikgewogICAg
ICAgICAgICAgaWYgKFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dERyYXdpbmdUb1Nj
cmVlbl0pIHsKICAgICAgICAgICAgICAgICBfc29mdHdhcmVSZW5kZXJlci0+cmVuZGVyKChDR0Nv
bnRleHRSZWYpW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0
XSwgTlNSZWN0VG9DR1JlY3QocmVjdCkpOwpAQCAtNDg4LDcgKzQ4Nyw3IEBAIGV4dGVybiAiQyIg
ewogICAgICAgICB9IGVsc2UgaWYgKF9zbmFwc2hvdHRpbmcgJiYgW3NlbGYgc3VwcG9ydHNTbmFw
c2hvdHRpbmddKSB7CiAgICAgICAgICAgICBfcHJveHktPnNuYXBzaG90KHJlaW50ZXJwcmV0X2Nh
c3Q8Q0dDb250ZXh0UmVmPihbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFw
aGljc1BvcnRdKSwgW3NlbGYgYm91bmRzXS5zaXplLndpZHRoLCBbc2VsZiBib3VuZHNdLnNpemUu
aGVpZ2h0KTsKICAgICAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgICAgICByZXR1cm47CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQv
V2ViVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
UGx1Z2lucy9Ib3N0ZWQvV2ViVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tCmluZGV4IGZiZDY2
N2I3NDhmODQyM2VlZTg4MTdhZTRkMTViNWE3NjYyZmI1MTkuLmM2YmYwM2UyOTMyODZhMzQ5ZmE0
MzBiMmM4N2VkNWU5MTRhMzBhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1BsdWdpbnMvSG9zdGVkL1dlYlRleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJUZXh0SW5wdXRXaW5kb3dDb250
cm9sbGVyLm0KQEAgLTEwNiwxOSArMTA2LDE3IEBAIC0gKHZvaWQpX2tleWJvYXJkSW5wdXRTb3Vy
Y2VDaGFuZ2VkOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogCiAtIChCT09MKV9pbnRl
cnByZXRLZXlFdmVudDooTlNFdmVudCAqKWV2ZW50IHN0cmluZzooTlNTdHJpbmcgKiopc3RyaW5n
CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBCT09MIGhhZE1hcmtlZFRleHQgPSBbX2lucHV0
VGV4dFZpZXcgaGFzTWFya2VkVGV4dF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICAqc3RyaW5nID0gbmls
OwogCiAgICAgLy8gTGV0IFRTTSBrbm93IHRoYXQgYSBib3R0b20gaW5wdXQgd2luZG93IHdvdWxk
IGJlIGNyZWF0ZWQgZm9yIG1hcmtlZCB0ZXh0LgogICAgIC8vIEZJWE1FOiBDYW4gYmUgcmVtb3Zl
ZCBvbmNlIHdlIGNhbiByZWx5IG9uIF9fTlNVc2VzRmxvYXRpbmdJbnB1dFdpbmRvdyAob3IgYSBi
ZXR0ZXIgQVBJKSBiZWluZyBhdmFpbGFibGUgZXZlcnl3aGVyZS4KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdjYXN0LXF1
YWwiCisgICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XY2FzdC1xdWFsIikKICAgICBFdmVudFJl
ZiBjYXJib25FdmVudCA9IChFdmVudFJlZilbZXZlbnQgZXZlbnRSZWZdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0VORAogICAgIGlmIChjYXJib25F
dmVudCkgewogICAgICAgICBCb29sZWFuIGlnbm9yZVBBSCA9IHRydWU7CiAgICAgICAgIFNldEV2
ZW50UGFyYW1ldGVyKGNhcmJvbkV2ZW50LCAnaVBBSCcsIHR5cGVCb29sZWFuLCBzaXplb2YoaWdu
b3JlUEFIKSwgJmlnbm9yZVBBSCk7CkBAIC0xMjcsMTAgKzEyNSw5IEBAIC0gKEJPT0wpX2ludGVy
cHJldEtleUV2ZW50OihOU0V2ZW50ICopZXZlbnQgc3RyaW5nOihOU1N0cmluZyAqKilzdHJpbmcK
ICAgICBpZiAoIVtbX2lucHV0VGV4dFZpZXcgaW5wdXRDb250ZXh0XSBoYW5kbGVFdmVudDpldmVu
dF0pCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlm
IChbX2lucHV0VGV4dFZpZXcgaGFzTWFya2VkVGV4dF0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAg
ICAgIC8vIERvbid0IHNob3cgdGhlIGlucHV0IG1ldGhvZCB3aW5kb3cgZm9yIGRlYWQga2V5cwog
ICAgICAgICBpZiAoW1tldmVudCBjaGFyYWN0ZXJzXSBsZW5ndGhdID4gMCkKICAgICAgICAgICAg
IFtzZWxmIG9yZGVyRnJvbnQ6bmlsXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA2ZDg1
YThjNWVhNDE1OTgyYjEwOGVlYWE2ZGVjNDdjMGM4NjYxOTk0Li5iNGM1ZTZmNzA2YTkwZjUyMDhi
ZjcyNWU3OTM2Y2UyZDBlY2NhNTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC03Mjks
MjUgKzcyOSwyMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICBzd2l0Y2ggKHNvdXJj
ZVNwYWNlKSB7CiAgICAgICAgIGNhc2UgTlBDb29yZGluYXRlU3BhY2VQbHVnaW46CiAgICAgICAg
ICAgICBzb3VyY2VQb2ludEluU2NyZWVuU3BhY2UgPSBbc2VsZiBjb252ZXJ0UG9pbnQ6c291cmNl
UG9pbnQgdG9WaWV3Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAg
ICAgc291cmNlUG9pbnRJblNjcmVlblNwYWNlID0gW1tzZWxmIGN1cnJlbnRXaW5kb3ddIGNvbnZl
cnRCYXNlVG9TY3JlZW46c291cmNlUG9pbnRJblNjcmVlblNwYWNlXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBOUENv
b3JkaW5hdGVTcGFjZVdpbmRvdzoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAg
ICAgICBzb3VyY2VQb2ludEluU2NyZWVuU3BhY2UgPSBbW3NlbGYgY3VycmVudFdpbmRvd10gY29u
dmVydEJhc2VUb1NjcmVlbjpzb3VyY2VQb2ludF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgTlBDb29yZGluYXRlU3Bh
Y2VGbGlwcGVkV2luZG93OgogICAgICAgICAgICAgc291cmNlUG9pbnQueSA9IFtbc2VsZiBjdXJy
ZW50V2luZG93XSBmcmFtZV0uc2l6ZS5oZWlnaHQgLSBzb3VyY2VQb2ludC55OwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAgIHNvdXJjZVBvaW50SW5TY3JlZW5TcGFjZSA9
IFtbc2VsZiBjdXJyZW50V2luZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOnNvdXJjZVBvaW50XTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAg
ICAgICAgY2FzZSBOUENvb3JkaW5hdGVTcGFjZVNjcmVlbjoKQEAgLTc2NywyNSArNzY0LDIyIEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIC8vIFRoZW4gY29udmVydCBiYWNrIHRvIHRo
ZSBkZXN0aW5hdGlvbiBzcGFjZQogICAgIHN3aXRjaCAoZGVzdFNwYWNlKSB7CiAgICAgICAgIGNh
c2UgTlBDb29yZGluYXRlU3BhY2VQbHVnaW46Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgICAgICAgICAgZGVzdFBvaW50ID0gW1tzZWxmIGN1cnJlbnRXaW5kb3ddIGNvbnZlcnRTY3Jl
ZW5Ub0Jhc2U6c291cmNlUG9pbnRJblNjcmVlblNwYWNlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgICAgICAgICAgZGVzdFBvaW50ID0gW3NlbGYgY29udmVydFBvaW50OmRlc3RQb2ludCBmcm9t
VmlldzpuaWxdOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2Fz
ZSBOUENvb3JkaW5hdGVTcGFjZVdpbmRvdzoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgICAgICAgICBkZXN0UG9pbnQgPSBbW3NlbGYgY3VycmVudFdpbmRvd10gY29udmVydFNjcmVl
blRvQmFzZTpzb3VyY2VQb2ludEluU2NyZWVuU3BhY2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIE5QQ29vcmRpbmF0
ZVNwYWNlRmxpcHBlZFdpbmRvdzoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAg
ICAgICBkZXN0UG9pbnQgPSBbW3NlbGYgY3VycmVudFdpbmRvd10gY29udmVydFNjcmVlblRvQmFz
ZTpzb3VyY2VQb2ludEluU2NyZWVuU3BhY2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAg
ICAgICBkZXN0UG9pbnQueSA9IFtbc2VsZiBjdXJyZW50V2luZG93XSBmcmFtZV0uc2l6ZS5oZWln
aHQgLSBkZXN0UG9pbnQueTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2lu
UGFja2FnZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQ
bHVnaW5QYWNrYWdlLm1tCmluZGV4IGYyMjg5MzQ3NDIxOTA0YmVlM2M4ODY2NmM0ZTMwMDkyZmMx
MDUwZGUuLjU0ZDBhZGM0ZjBlMmYyNTg3NDc4ZWFmOWY2MDYxNmM5MDE4NDQ1NWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5QYWNr
YWdlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQ
bHVnaW5QYWNrYWdlLm1tCkBAIC0xNjcsMTQgKzE2NywxMyBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKICAgICBpZiAoIU5QX0luaXRpYWxpemUgfHwgIU5QX0dldEVudHJ5UG9pbnRzIHx8ICFO
UF9TaHV0ZG93bikKICAgICAgICAgcmV0dXJuIE5POwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICAvLyBQbHVnaW5zIChhdCBsZWFzdCBRVCkgcmVxdWlyZSB0aGF0IHlvdSBjYWxsIFVzZVJlc0Zp
bGUgb24gdGhlIHJlc291cmNlIGZpbGUgYmVmb3JlIGxvYWRpbmcgaXQuCiAgICAgcmVzb3VyY2VS
ZWYgPSBbc2VsZiBvcGVuUmVzb3VyY2VGaWxlXTsKICAgICBpZiAocmVzb3VyY2VSZWYgIT0gLTEp
IHsKICAgICAgICAgVXNlUmVzRmlsZShyZXNvdXJjZVJlZik7CiAgICAgfQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
CiAgICAgYnJvd3NlckZ1bmNzLnZlcnNpb24gPSBOUF9WRVJTSU9OX01JTk9SOwogICAgIGJyb3dz
ZXJGdW5jcy5zaXplID0gc2l6ZW9mKE5QTmV0c2NhcGVGdW5jcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmlu
ZGV4IDQ5ZGMxYzUxNGY3MmM0NDlmZmRhZTcyOWNhOGQ5YzA4MTY0YTllM2UuLjlhNzQ1ZDkzODNm
NzQ0N2Y1NDJkZjUwNDVlMjQ0NWIzODUzZTA4ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC0zNzcs
MTAgKzM3Nyw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3QoY29uc3QgTlNSZWN0JiBu
ciwgTlBSZWN0JiBucHIpCiAgICAgICAgICAgICBSZ25IYW5kbGUgY2xpcFJlZ2lvbiA9IE5ld1Jn
bigpOwogICAgICAgICAgICAgcWRQb3J0U3RhdGUtPmNsaXBSZWdpb24gPSBjbGlwUmVnaW9uOwog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgQ0dDb250ZXh0UmVmIGN1
cnJlbnRDb250ZXh0ID0gKENHQ29udGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRD
b250ZXh0XSBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBp
ZiAoY3VycmVudENvbnRleHQgJiYgQ0dDb250ZXh0R2V0VHlwZShjdXJyZW50Q29udGV4dCkgPT0g
a0NHQ29udGV4dFR5cGVCaXRtYXApIHsKICAgICAgICAgICAgICAgICAvLyBXZSBjaGVjayBmb3Ig
a0NHQ29udGV4dFR5cGVCaXRtYXAgaGVyZSwgYmVjYXVzZSBpZiB3ZSBqdXN0IGNhbGxlZCBDR0Jp
dG1hcENvbnRleHRHZXREYXRhCiAgICAgICAgICAgICAgICAgLy8gb24gYW55IGNvbnRleHQsIHdl
J2QgbG9nIHRvIHRoZSBjb25zb2xlIGV2ZXJ5IHRpbWUuIEJ1dCBldmVuIGlmIGN1cnJlbnRDb250
ZXh0IGlzIGEKQEAgLTUwMywxMCArNTAyLDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGdldE5QUmVj
dChjb25zdCBOU1JlY3QmIG5yLCBOUFJlY3QmIG5wcikKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgQVNTRVJUKFtOU1ZpZXcgZm9jdXNWaWV3XSA9PSBzZWxmKTsKIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICAgICAgICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gc3RhdGljX2Nh
c3Q8Q0dDb250ZXh0UmVmPihbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFw
aGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgICAgICAgICBQb3J0U3RhdGVf
Q0cgKmNnUG9ydFN0YXRlID0gKFBvcnRTdGF0ZV9DRyAqKW1hbGxvYyhzaXplb2YoUG9ydFN0YXRl
X0NHKSk7CiAgICAgICAgICAgICBwb3J0U3RhdGUgPSAoUG9ydFN0YXRlKWNnUG9ydFN0YXRlOwpA
QCAtNjk1LDEwICs2OTMsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0TlBSZWN0KGNvbnN0IE5T
UmVjdCYgbnIsIE5QUmVjdCYgbnByKQogewogICAgIEFTU0VSVChfZXZlbnRIYW5kbGVyKTsKICAg
ICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gc3RhdGlj
X2Nhc3Q8Q0dDb250ZXh0UmVmPihbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBn
cmFwaGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBfZXZlbnRIYW5kbGVyLT5kcmF3UmVjdChj
b250ZXh0LCByZWN0KTsKIH0KIApAQCAtMTMzOCwxMCArMTMzNSw5IEBAIHN0YXRpYyBpbmxpbmUg
dm9pZCBnZXROUFJlY3QoY29uc3QgTlNSZWN0JiBuciwgTlBSZWN0JiBucHIpCiAgICAgICAgIGlm
IChwcmludGVkUGx1Z2luQml0bWFwKSB7CiAgICAgICAgICAgICAvLyBGbGlwIHRoZSBiaXRtYXAg
YmVmb3JlIGRyYXdpbmcgYmVjYXVzZSB0aGUgUXVpY2tEcmF3IHBvcnQgaXMgZmxpcHBlZCByZWxh
dGl2ZQogICAgICAgICAgICAgLy8gdG8gdGhpcyB2aWV3LgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAgICAgICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSAoQ0dDb250ZXh0UmVm
KVtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0
KTsKICAgICAgICAgICAgIE5TUmVjdCBib3VuZHMgPSBbc2VsZiBib3VuZHNdOwogICAgICAgICAg
ICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNnQ29udGV4dCwgMC4wZiwgTlNIZWlnaHQoYm91bmRz
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYlBsdWdp
bkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYlBsdWdp
bkNvbnRyb2xsZXIubW0KaW5kZXggMjkwZmVmNjNhZDkxNmFhNjE4ZDMwYTIxZDkxNDNlMjE4ZWM5
MGU4NS4uODM3OWQzZDdjODNiMDE1MDUyZGY4MTFjZjQzNzEzMTc5MGNiNzQ1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxl
ci5tbQpAQCAtNjU0LDIxICs2NTQsMTkgQEAgc3RhdGljIGFsZXJ0RGlkRW5kSU1QIG9yaWdpbmFs
X1RTVXBkYXRlQ2hlY2tfYWxlcnREaWRFbmRfcmV0dXJuQ29kZV9jb250ZXh0SW5mb18KIAogc3Rh
dGljIHZvaWQgV2ViS2l0X1RTVXBkYXRlQ2hlY2tfYWxlcnREaWRFbmRfcmV0dXJuQ29kZV9jb250
ZXh0SW5mb18oaWQgb2JqZWN0LCBTRUwgc2VsZWN0b3IsIE5TQWxlcnQgKmFsZXJ0LCBOU0ludGVn
ZXIgcmV0dXJuQ29kZSwgdm9pZCogY29udGV4dEluZm8pCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBbWyhUU1VwZGF0ZUNoZWNrICopb2JqZWN0IGRlbGVnYXRlXSBhdXRvcmVsZWFzZV07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAKICAgICBvcmlnaW5hbF9UU1VwZGF0ZUNoZWNrX2FsZXJ0RGlkRW5kX3JldHVy
bkNvZGVfY29udGV4dEluZm9fKG9iamVjdCwgc2VsZWN0b3IsIGFsZXJ0LCByZXR1cm5Db2RlLCBj
b250ZXh0SW5mbyk7CiB9CiAKIHN0YXRpYyB2b2lkIFdlYktpdF9OU0FsZXJ0X2JlZ2luU2hlZXRN
b2RhbEZvcldpbmRvd19tb2RhbERlbGVnYXRlX2RpZEVuZFNlbGVjdG9yX2NvbnRleHRJbmZvXyhp
ZCBvYmplY3QsIFNFTCBzZWxlY3RvciwgTlNXaW5kb3cgKndpbmRvdywgaWQgbW9kYWxEZWxlZ2F0
ZSwgU0VMIGRpZEVuZFNlbGVjdG9yLCB2b2lkKiBjb250ZXh0SW5mbykKIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIGlmIChpc0tpbmRPZkNsYXNzKG1vZGFsRGVsZWdhdGUsIEAiVFNVcGRhdGVD
aGVjayIpKQogICAgICAgICBbWyhUU1VwZGF0ZUNoZWNrICopbW9kYWxEZWxlZ2F0ZSBkZWxlZ2F0
ZV0gcmV0YWluXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIG9yaWdpbmFsX05TQWxlcnRfYmVnaW5TaGVl
dE1vZGFsRm9yV2luZG93X21vZGFsRGVsZWdhdGVfZGlkRW5kU2VsZWN0b3JfY29udGV4dEluZm9f
KG9iamVjdCwgc2VsZWN0b3IsIHdpbmRvdywgbW9kYWxEZWxlZ2F0ZSwgZGlkRW5kU2VsZWN0b3Is
IGNvbnRleHRJbmZvKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQppbmRleCA3YjFmYmVhZWUxMDYwOWJlYzlmM2My
ZmU0ZDY0NjY5OWRkM2Q0YWY4Li44OTcxMDM4YTFjMTM5MmUwZjVjYWIzYzZhY2E5YmQ1YTczMWVl
MmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Q
b3B1cE1lbnVNYWMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvUG9wdXBNZW51TWFjLm1tCkBAIC0xMTMsMTUgKzExMywxNCBAQCB2b2lkIFBvcHVwTWVudU1h
Yzo6cG9wdWxhdGUoKQogICAgICAgICBbbWVudUl0ZW0gc2V0RW5hYmxlZDptX2NsaWVudC0+aXRl
bUlzRW5hYmxlZChpKV07CiAgICAgICAgIFttZW51SXRlbSBzZXRUb29sVGlwOm1fY2xpZW50LT5p
dGVtVG9vbFRpcChpKV07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgLy8gQWxs
b3cgdGhlIGFjY2Vzc2libGUgdGV4dCBvZiB0aGUgaXRlbSB0byBiZSBvdmVycmlkZGVuIGlmIG5l
Y2Vzc2FyeS4KICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpIHsKICAgICAgICAgICAgIE5TU3RyaW5nICphY2Nlc3NpYmlsaXR5T3ZlcnJpZGUgPSBtX2Ns
aWVudC0+aXRlbUFjY2Vzc2liaWxpdHlUZXh0KGkpOwogICAgICAgICAgICAgaWYgKFthY2Nlc3Np
YmlsaXR5T3ZlcnJpZGUgbGVuZ3RoXSkKICAgICAgICAgICAgICAgICBbbWVudUl0ZW0gYWNjZXNz
aWJpbGl0eVNldE92ZXJyaWRlVmFsdWU6YWNjZXNzaWJpbGl0eU92ZXJyaWRlIGZvckF0dHJpYnV0
ZTpOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgICAgIH0KLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oCmlu
ZGV4IGM4ZDMzZWIxODlhNmYzMWQ1Y2NiZGUxOGVkNTdiNmZlNTRjZmY3ZDQuLjMwNmRlNTUyODg3
OTBlNmVjZjhhNWZjOTQ5ODhmNjc5NTIxOThjZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4
dENsaWVudC5oCkBAIC01MCwxNCArNTAsMTEgQEAgcHVibGljOgogI2VuZGlmCiBwcml2YXRlOgog
I2lmIFBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jaWYgZGVm
aW5lZChfX2hhc193YXJuaW5nKSAmJiBfX2hhc193YXJuaW5nKCItV3VudXNlZC1wcml2YXRlLWZp
ZWxkIikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wcml2YXRl
LWZpZWxkIgotI2VuZGlmCitJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigiLVd1bnVzZWQtcHJp
dmF0ZS1maWVsZCIpCiAjZW5kaWYKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CiAjaWYgUExBVEZP
Uk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX0NMQU5HX1dBUk5J
TkdfRU5ECiAjZW5kaWYKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpCiAgICAgQ29ycmVj
dGlvblBhbmVsIG1fY29ycmVjdGlvblBhbmVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0KaW5kZXggYTU5MjRmNDdl
MDY3MmNlNmE1NDQxOTg4MTQwNTdhNmY3ZDY4ZGNlMi4uYTRjYzZhZjI3YTgyYWU3YmU2MDYwNzUw
YjU1MTM4OGMwMWFhYjI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCkBAIC0xMzMsMTAgKzEzMyw5IEBAIHZv
aWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJdGVtIGRyYWdJdGVtLCBEYXRhVHJhbnNm
ZXImIGRhdGFUcmFuc2ZlciwgRnJhCiAgICAgICAgICAgICBSZXBvcnREaXNjYXJkZWREZWxlZ2F0
ZUV4Y2VwdGlvbihzZWxlY3RvciwgZXhjZXB0aW9uKTsKICAgICAgICAgfQogICAgIH0gZWxzZQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBbdG9wSFRNTFZpZXcgZHJhZ0ltYWdlOmRy
YWdOU0ltYWdlIGF0OmRyYWdMb2NhdGlvbkluQ29udGVudENvb3JkaW5hdGVzIG9mZnNldDpOU1pl
cm9TaXplIGV2ZW50OmV2ZW50IHBhc3RlYm9hcmQ6cGFzdGVib2FyZCBzb3VyY2U6c291cmNlSFRN
TFZpZXcgc2xpZGVCYWNrOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiB2b2lkIFdlYkRyYWdD
bGllbnQ6OmJlZ2luRHJhZyhEcmFnSXRlbSBkcmFnSXRlbSwgRnJhbWUmIGZyYW1lLCBjb25zdCBJ
bnRQb2ludCYgbW91c2VEb3duUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBtb3VzZURyYWdnZWRQ
b3NpdGlvbiwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIERyYWdTb3VyY2VBY3Rpb24gZHJh
Z1NvdXJjZUFjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggOWI5MTA3ZGZm
Mjg0Zjg5YzU4NzIwNGQ2YjE2M2VlMzhkNGRjZWViNi4uMjM1YzYyN2Y3MzczM2RhMWIwMDE1OWFl
MDRmMDU1ZDQwYTE0Nzc0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTMwOCwx
MCArMzA4LDkgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJj
ZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiBkb2MKIAogICAgIGlmICghbWFpblJlc291
cmNlTG9hZGVyKSB7CiAgICAgICAgIC8vIFRoZSByZXNvdXJjZSBoYXMgYWxyZWFkeSBiZWVuIGNh
Y2hlZCwgb3IgdGhlIGNvbnZlcnNpb24gaXMgYmVpbmcgYXR0bXB0ZWQgd2hlbiBub3QgY2FsbGlu
ZyBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKCkuCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgICAgIFdlYkRvd25sb2FkICp3ZWJEb3dubG9hZCA9IFtbV2ViRG93bmxv
YWQgYWxsb2NdIGluaXRXaXRoUmVxdWVzdDpyZXF1ZXN0Lm5zVVJMUmVxdWVzdChIVFRQQm9keVVw
ZGF0ZVBvbGljeTo6VXBkYXRlSFRUUEJvZHkpIGRlbGVnYXRlOlt3ZWJWaWV3IGRvd25sb2FkRGVs
ZWdhdGVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFt3ZWJEb3dubG9hZCBhdXRvcmVsZWFz
ZV07CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMzQ1LDEwICsyMzQ0LDkgQEAgc3RhdGlj
IE5TSW1hZ2UgKndlYkdldE5TSW1hZ2UoSW1hZ2UqIGltYWdlLCBOU1NpemUgc2l6ZSkKICAgICBp
ZiAoIW5zSW1hZ2UpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgaWYgKCFOU0VxdWFsU2l6ZXMo
W25zSW1hZ2Ugc2l6ZV0sIHNpemUpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAg
IFtuc0ltYWdlIHNldFNjYWxlc1doZW5SZXNpemVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAg
ICAgICBbbnNJbWFnZSBzZXRTaXplOnNpemVdOwogICAgIH0KICAgICByZXR1cm4gbnNJbWFnZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2Rl
SGlnaGxpZ2h0Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5v
ZGVIaWdobGlnaHQubW0KaW5kZXggOTFiNjViZWM5NGJmODk0ZjQxNjU0YmU5NGJlZGEzMzFkOWVl
ZWQ5MC4uYzhiYTdmYjQxMmJkYzBkMzg3N2Q5ZWJkNDdmMTFlMmViZWM2NzdhMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdo
bGlnaHQubW0KQEAgLTI2NiwxMCArMjY2LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAg
ICAgQVNTRVJUKFtfdGFyZ2V0VmlldyB3aW5kb3ddKTsKIAogICAgIE5TUmVjdCBoaWdobGlnaHRX
aW5kb3dGcmFtZSA9IFtfdGFyZ2V0VmlldyBjb252ZXJ0UmVjdDpbX3RhcmdldFZpZXcgdmlzaWJs
ZVJlY3RdIHRvVmlldzpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaGlnaGxpZ2h0V2lu
ZG93RnJhbWUub3JpZ2luID0gW1tfdGFyZ2V0VmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3Jl
ZW46aGlnaGxpZ2h0V2luZG93RnJhbWUub3JpZ2luXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIHJldHVy
biBoaWdobGlnaHRXaW5kb3dGcmFtZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbQppbmRleCBl
N2NkNWU0NjJkZjI2OGZhZDIwNmRkYTUxMmRkNTMzMzUzYjE5MDQ2Li5hNWE1MGNlY2E1MjExNWQz
OTI0MDU4YTQ4MDJmZWE3NmFjMWQwZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodFZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHRWaWV3Lm1tCkBAIC05
OCwxMCArOTgsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogICAgICAgICBBU1NFUlQo
W1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gaXNGbGlwcGVkXSk7CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgR3JhcGhpY3NDb250ZXh0IGNvbnRleHQoKFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0KilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBn
cmFwaGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFtfd2ViTm9kZUhpZ2hsaWdo
dCBpbnNwZWN0b3JDb250cm9sbGVyXS0+ZHJhd0hpZ2hsaWdodChjb250ZXh0KTsKICAgICAgICAg
W05TR3JhcGhpY3NDb250ZXh0IHJlc3RvcmVHcmFwaGljc1N0YXRlXTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJDbGlwVmlldy5tbQppbmRleCA1ZmQ1YzE0
MjcwMmIxODZlYTk0MDdmMzhmYzBlM2M5MzZiNDdiNDZhLi43ZjU1MjRhMzQ1Y2ZiNWEyZWY3YjEz
NGMxMWJkODA2MGZmMzEwYWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkNsaXBWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViQ2xpcFZpZXcubW0KQEAgLTY2LDggKzY2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAvLyBJbiBXZWJIVE1MVmlldywgd2Ugc2V0IGEgY2xpcC4gVGhpcyBpcyBub3Qg
dHlwaWNhbCB0byBkbyBpbiBhbgogICAgIC8vIE5TVmlldywgYW5kIHdoaWxlIGNvcnJlY3QgZm9y
IGFueSBvbmUgaW52b2NhdGlvbiBvZiBkcmF3UmVjdDosCiAgICAgLy8gaXQgY2F1c2VzIHNvbWUg
YmFkIHByb2JsZW1zIGlmIHRoYXQgY2xpcCBpcyBjYWNoZWQgYmV0d2VlbiBjYWxscy4KQEAgLTc4
LDcgKzc3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgLy8gU2VlIHRoZXNlIGJ1
Z3MgZm9yIG1vcmUgaW5mb3JtYXRpb246CiAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzM0MDkzMTU+
OiBSRUdSRVNTU0lPTiAoN0I1OC03QjYwKT86IFNhZmFyaSBkcmF3cyBibGFuayBmcmFtZXMgb24g
bWFjb3N4LmFwcGxlLmNvbSBwZXJmIHBhZ2UKICAgICBbc2VsZiByZWxlYXNlR1N0YXRlXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKIAogICAgIHJldHVybiBzZWxmOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggODYwZGIyOTBlMTBmYzJjYjI1Y2RmOTE2NDAyYWRi
N2NjZTljZjc5NC4uOTZjZWJiZWY5NDM4OWViMmI1ZmViZTRmNTU4OGZjYTlmODYyMzk4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC00NDMsMTAg
KzQ0Myw5IEBAIHN0YXRpYyBOU1VSTCAqY3JlYXRlVW5pcXVlV2ViRGF0YVVSTCgpOwogICAgICAg
ICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKSkgewogICAgICAgICAgICAgdmll
dy0+c2V0VHJhbnNwYXJlbnQoIWRyYXdzQmFja2dyb3VuZCk7CiAjaWYgIVBMQVRGT1JNKElPUykK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBDb2xvciBjb2xvciA9IGNv
bG9yRnJvbU5TQ29sb3IoW2JhY2tncm91bmRDb2xvciBjb2xvclVzaW5nQ29sb3JTcGFjZU5hbWU6
TlNEZXZpY2VSR0JDb2xvclNwYWNlXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbHNlCiAgICAg
ICAgICAgICBDb2xvciBjb2xvciA9IENvbG9yKGJhY2tncm91bmRDb2xvcik7CiAjZW5kaWYKQEAg
LTYyMiwxMCArNjIxLDkgQEAgc3RhdGljIGlubGluZSBXZWJEYXRhU291cmNlICpkYXRhU291cmNl
KERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBBU1NFUlQo
W1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gaXNGbGlwcGVkXSk7CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgIENHQ29udGV4dFJlZiBjdHggPSBzdGF0aWNfY2FzdDxDR0NvbnRl
eHRSZWY+KFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF0p
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogI2Vsc2UKICAgICBDR0NvbnRleHRSZWYgY3R4ID0gV0tHZXRDdXJyZW50
R3JhcGhpY3NDb250ZXh0KCk7CiAjZW5kaWYKQEAgLTIyMDcsMTAgKzIyMDUsOSBAQCBzdGF0aWMg
V2ViRnJhbWVMb2FkVHlwZSB0b1dlYkZyYW1lTG9hZFR5cGUoRnJhbWVMb2FkVHlwZSBmcmFtZUxv
YWRUeXBlKQogICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkg
ewogICAgICAgICBBWE9iamVjdENhY2hlOjplbmFibGVBY2Nlc3NpYmlsaXR5KCk7CiAjaWYgIVBM
QVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgQVhPYmplY3RDYWNo
ZTo6c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShbW05TQXBwIGFjY2Vzc2li
aWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VB
dHRyaWJ1dGVdIGJvb2xWYWx1ZV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZgogICAgIH0KICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnVsbFNj
cmVlbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZ1
bGxTY3JlZW5Db250cm9sbGVyLm1tCmluZGV4IDc1M2RjZWIyOGQzMGU2YTkwZjQwMTdkOWYwMWUz
ZDRlZGZmZjE1MzkuLjVlYTIzMzkzYmZlNzM3YzA2YzI0ZTA0MmUwZTBlMWQ0MjJkYjk3ZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNv
bnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGdWxs
U2NyZWVuQ29udHJvbGxlci5tbQpAQCAtMjA3LDExICsyMDcsMTAgQEAgc3RhdGljIE5TUmVjdCBj
b252ZXJ0UmVjdFRvU2NyZWVuKE5TV2luZG93ICp3aW5kb3csIE5TUmVjdCByZWN0KQogICAgIFJl
dGFpblB0cjxDR0ltYWdlUmVmPiB3ZWJWaWV3Q29udGVudHMgPSBhZG9wdENGKENHV2luZG93TGlz
dENyZWF0ZUltYWdlKE5TUmVjdFRvQ0dSZWN0KHdlYlZpZXdGcmFtZSksIGtDR1dpbmRvd0xpc3RP
cHRpb25JbmNsdWRpbmdXaW5kb3csIHdpbmRvd0lELCBrQ0dXaW5kb3dJbWFnZVNob3VsZEJlT3Bh
cXVlKSk7CiAgICAgCiAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBpbiBi
ZWdhbkVudGVyRnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6ZmluYWxGcmFtZToKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKICAgICBbW3NlbGYgd2lu
ZG93XSBzZXRBdXRvZGlzcGxheTpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBOU1Jlc3BvbmRlciAq
d2ViV2luZG93Rmlyc3RSZXNwb25kZXIgPSBbW193ZWJWaWV3IHdpbmRvd10gZmlyc3RSZXNwb25k
ZXJdOwogICAgIFtbc2VsZiB3aW5kb3ddIHNldEZyYW1lOnNjcmVlbkZyYW1lIGRpc3BsYXk6Tk9d
OwpAQCAtMjY4LDExICsyNjcsMTAgQEAgc3RhdGljIHZvaWQgc2V0Q2xpcFJlY3RGb3JXaW5kb3co
TlNXaW5kb3cgKndpbmRvdywgTlNSZWN0IGNsaXBSZWN0KQogICAgIF9pc0VudGVyaW5nRnVsbFNj
cmVlbiA9IE5POwogICAgIAogICAgIGlmIChjb21wbGV0ZWQpIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBhdCB0aGUg
ZW5kIG9mIHRoaXMgYmxvY2sKICAgICAgICAgTlNEaXNhYmxlU2NyZWVuVXBkYXRlcygpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICAgICAgICAgW3NlbGYgX2RvY3VtZW50XS0+c2V0QW5pbWF0aW5nRnVsbFNj
cmVlbihmYWxzZSk7CiAgICAgICAgIFtzZWxmIF9kb2N1bWVudF0tPndlYmtpdERpZEVudGVyRnVs
bFNjcmVlbkZvckVsZW1lbnQoX2VsZW1lbnQuZ2V0KCkpOwogICAgICAgICAKQEAgLTI5NCwxMCAr
MjkyLDkgQEAgc3RhdGljIHZvaWQgc2V0Q2xpcFJlY3RGb3JXaW5kb3coTlNXaW5kb3cgKndpbmRv
dywgTlNSZWN0IGNsaXBSZWN0KQogICAgICAgICAKICAgICAgICAgW19iYWNrZ3JvdW5kV2luZG93
LmdldCgpIG9yZGVyT3V0OnNlbGZdOwogICAgICAgICBbX2JhY2tncm91bmRXaW5kb3cuZ2V0KCkg
c2V0RnJhbWU6TlNaZXJvUmVjdCBkaXNwbGF5OllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgICAgIE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9
IGVsc2UKICAgICAgICAgW19zY2FsZUFuaW1hdGlvbi5nZXQoKSBzdG9wQW5pbWF0aW9uXTsKIH0K
QEAgLTMxNSwxMiArMzEyLDExIEBAIHN0YXRpYyB2b2lkIHNldENsaXBSZWN0Rm9yV2luZG93KE5T
V2luZG93ICp3aW5kb3csIE5TUmVjdCBjbGlwUmVjdCkKICAgICAgICAgcmV0dXJuOwogICAgIF9p
c0Z1bGxTY3JlZW4gPSBOTzsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8gU2NyZWVuIHVw
ZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBpbiBiZWdhbkV4aXRGdWxsU2NyZWVuV2l0aEluaXRpYWxG
cmFtZTpmaW5hbEZyYW1lOgogICAgIE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKICAgICBbW3Nl
bGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBfZmluYWxG
cmFtZSA9IHNjcmVlblJlY3RPZkNvbnRlbnRzKF9lbGVtZW50LmdldCgpKTsKIApAQCAtMzYwLDEx
ICszNTYsMTAgQEAgc3RhdGljIHZvaWQgc2V0Q2xpcFJlY3RGb3JXaW5kb3coTlNXaW5kb3cgKndp
bmRvdywgTlNSZWN0IGNsaXBSZWN0KQogICAgIAogICAgIFtzZWxmIF91cGRhdGVNZW51QW5kRG9j
a0ZvckZ1bGxTY3JlZW5dOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBTY3JlZW4gdXBk
YXRlcyB0byBiZSByZS1lbmFibGVkIGF0IHRoZSBlbmQgb2YgdGhpcyBmdW5jdGlvbgogICAgIE5T
RGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIFtzZWxmIF9kb2N1bWVu
dF0tPnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oZmFsc2UpOwogICAgIFtzZWxmIF9kb2N1bWVudF0t
PndlYmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChfZWxlbWVudC5nZXQoKSk7CkBAIC0z
OTEsMTAgKzM4Niw5IEBAIHN0YXRpYyB2b2lkIHNldENsaXBSZWN0Rm9yV2luZG93KE5TV2luZG93
ICp3aW5kb3csIE5TUmVjdCBjbGlwUmVjdCkKIAogICAgIFtbX3dlYlZpZXcgd2luZG93XSBtYWtl
S2V5QW5kT3JkZXJGcm9udDpzZWxmXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNFbmFi
bGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKHZvaWQpcGVyZm9ybUNsb3Nl
OihpZClzZW5kZXIKQEAgLTUxMywxMCArNTA3LDkgQEAgc3RhdGljIE5TUmVjdCB3aW5kb3dGcmFt
ZUZyb21BcHBhcmVudEZyYW1lcyhOU1JlY3Qgc2NyZWVuRnJhbWUsIE5TUmVjdCBpbml0aWFsRnIK
ICAgICAKICAgICAvLyBzZXRDbGlwUmVjdEZvcldpbmRvdyB0YWtlcyB3aW5kb3cgY29vcmRpbmF0
ZXMsIHNvIGNvbnZlcnQgZnJvbSBzY3JlZW4gY29vcmRpbmF0ZXMgaGVyZToKICAgICBOU1JlY3Qg
ZmluYWxCb3VuZHMgPSBfZmluYWxGcmFtZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGZpbmFs
Qm91bmRzLm9yaWdpbiA9IFtbc2VsZiB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6ZmluYWxC
b3VuZHMub3JpZ2luXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBzZXRDbGlwUmVjdEZvcldpbmRvdyhzZWxm
LndpbmRvdywgZmluYWxCb3VuZHMpOwogICAgIAogICAgIFtbc2VsZiB3aW5kb3ddIG1ha2VLZXlB
bmRPcmRlckZyb250OnNlbGZdOwpAQCAtNTQzLDE2ICs1MzYsMTQgQEAgc3RhdGljIE5TUmVjdCB3
aW5kb3dGcmFtZUZyb21BcHBhcmVudEZyYW1lcyhOU1JlY3Qgc2NyZWVuRnJhbWUsIE5TUmVjdCBp
bml0aWFsRnIKICAgICAKICAgICBbX2JhY2tncm91bmRXaW5kb3cuZ2V0KCkgb3JkZXJXaW5kb3c6
TlNXaW5kb3dCZWxvdyByZWxhdGl2ZVRvOltbc2VsZiB3aW5kb3ddIHdpbmRvd051bWJlcl1dOwog
ICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3Bs
YXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbW3NlbGYgd2luZG93XSBkaXNwbGF5SWZOZWVkZWRd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgZGlzYWJsZWQgaW4g
ZW50ZXJGdWxsU2NyZWVuOgogICAgIE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogfQogCiAtICh2b2lkKV9zdGFydEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9u
OihOU1RpbWVJbnRlcnZhbClkdXJhdGlvbgpAQCAtNTkxLDIzICs1ODIsMjAgQEAgc3RhdGljIE5T
UmVjdCB3aW5kb3dGcmFtZUZyb21BcHBhcmVudEZyYW1lcyhOU1JlY3Qgc2NyZWVuRnJhbWUsIE5T
UmVjdCBpbml0aWFsRnIKICAgICAKICAgICAvLyBzZXRDbGlwUmVjdEZvcldpbmRvdyB0YWtlcyB3
aW5kb3cgY29vcmRpbmF0ZXMsIHNvIGNvbnZlcnQgZnJvbSBzY3JlZW4gY29vcmRpbmF0ZXMgaGVy
ZToKICAgICBOU1JlY3QgZmluYWxCb3VuZHMgPSBfZmluYWxGcmFtZTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIGZpbmFsQm91bmRzLm9yaWdpbiA9IFtbc2VsZiB3aW5kb3ddIGNvbnZlcnRTY3Jl
ZW5Ub0Jhc2U6ZmluYWxCb3VuZHMub3JpZ2luXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBzZXRDbGlwUmVj
dEZvcldpbmRvdyhzZWxmLndpbmRvdywgZmluYWxCb3VuZHMpOwogICAgIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAgICBbW3NlbGYgd2luZG93XSBkaXNwbGF5SWZOZWVkZWRdOwogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAvLyBTY3JlZW4gdXBkYXRlcyBkaXNhYmxlZCBpbiBleGl0RnVsbFNjcmVlbjoK
ICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggNmE3
YjE0MGJkODVkM2YxM2RlNDFjNmRiZmU1MmEzYzQ0OGQ0NTI1My4uM2Q1MDA5ZGEzMWZjMjEyMGY3
ZmFkM2RkZDQzMWE4ZGVkZmVkNzBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC02MjQsMTAgKzYyNCw5IEBAIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPE5TSW50ZWdlcj4gdG9UYWcoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogCiAtIChO
U1ZpZXcgKilfd2ViX2JvcmRlclZpZXcKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVy
biBfYm9yZGVyVmlldzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogQGVuZApAQCAtMTQ5NCwxMCArMTQ5Myw5
IEBAIHN0YXRpYyBOU0NvbnRyb2xTdGF0ZVZhbHVlIGtpdChUcmlTdGF0ZSBzdGF0ZSkKIHsKICAg
ICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVu
dFR5cGVNb3VzZU1vdmVkCiAgICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5kb3ddCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgICAgICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRp
b25dXQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRd
IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNp
bmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2luZG93TnVtYmVyOltbc2VsZiB3aW5kb3ddIHdp
bmRvd051bWJlcl0KQEAgLTE1MzgsMTkgKzE1MzYsMTcgQEAgc3RhdGljIE5TQ29udHJvbFN0YXRl
VmFsdWUga2l0KFRyaVN0YXRlIHN0YXRlKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICBBU1NFUlQo
IV9wcml2YXRlLT5zdWJ2aWV3c1NldEFzaWRlKTsKICAgICBBU1NFUlQoX3ByaXZhdGUtPnNhdmVk
U3Vidmlld3MgPT0gbmlsKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIF9wcml2YXRlLT5zYXZl
ZFN1YnZpZXdzID0gX3N1YnZpZXdzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIC8vIFdlIG5lZWQgdG8ga2Vl
cCB0aGUgbGF5ZXItaG9zdGluZyB2aWV3IGluIHRoZSBzdWJ2aWV3cywgb3RoZXJ3aXNlIHRoZSBs
YXllcnMgZmxhc2guCiAgICAgaWYgKF9wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3KSB7CiAgICAg
ICAgIE5TQXJyYXkqIG5ld1N1YnZpZXdzID0gW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVj
dHM6X3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcsIG5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgICAgIF9zdWJ2aWV3cyA9IG5ld1N1YnZpZXdzOwogICAgIH0gZWxzZQogICAgICAg
ICBfc3Vidmlld3MgPSBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgX3ByaXZhdGUtPnN1YnZpZXdzU2V0
QXNpZGUgPSBZRVM7CiAjZW5kaWYKICB9CkBAIC0xNTYwLDE0ICsxNTU2LDEzIEBAIHN0YXRpYyBO
U0NvbnRyb2xTdGF0ZVZhbHVlIGtpdChUcmlTdGF0ZSBzdGF0ZSkKICNpZiBQTEFURk9STShNQUMp
CiAgICAgQVNTRVJUKF9wcml2YXRlLT5zdWJ2aWV3c1NldEFzaWRlKTsKICAgICBpZiAoX3ByaXZh
dGUtPmxheWVySG9zdGluZ1ZpZXcpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAg
W19zdWJ2aWV3cyByZWxlYXNlXTsKICAgICAgICAgX3N1YnZpZXdzID0gX3ByaXZhdGUtPnNhdmVk
U3Vidmlld3M7CiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKF9zdWJ2aWV3cyA9PSBuaWwp
OwogICAgICAgICBfc3Vidmlld3MgPSBfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3czsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiAgICAgfQogICAgIF9wcml2YXRlLT5zYXZlZFN1YnZpZXdzID0gbmlsOwogICAgIF9w
cml2YXRlLT5zdWJ2aWV3c1NldEFzaWRlID0gTk87CkBAIC0yMTEwLDEwICsyMTA1LDkgQEAgc3Rh
dGljIGJvb2wgbW91c2VFdmVudElzUGFydE9mQ2xpY2tPckRyYWcoTlNFdmVudCAqZXZlbnQpCiAK
ICAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNF
dmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkCiAgICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5kb3dd
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgICAgICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1v
dXNlTG9jYXRpb25dXQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJy
ZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJ
bnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAgICAgICAgd2luZG93TnVtYmVyOltbc2VsZiB3
aW5kb3ddIHdpbmRvd051bWJlcl0KQEAgLTM5ODIsMTAgKzM5NzYsOSBAQCBzdGF0aWMgQk9PTCBj
dXJyZW50U2Nyb2xsSXNCbGl0KE5TVmlldyAqY2xpcFZpZXcpCiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgIC8vIE9ubHkgZG8gdGhlIHN5bmNocm9uaXphdGlvbiBkYW5jZSBpZiB3ZSdyZSBkcmF3aW5n
IGludG8gdGhlIHdpbmRvdywgb3RoZXJ3aXNlCiAgICAgLy8gd2UgcmlzayBkaXNhYmxpbmcgc2Ny
ZWVuIHVwZGF0ZXMgd2hlbiBubyBmbHVzaCBpcyBwZW5kaW5nLgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgaWYgKFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gPT0gW1tzZWxmIHdp
bmRvd10gZ3JhcGhpY3NDb250ZXh0XSAmJiBbd2ViVmlldyBfbmVlZHNPbmVTaG90RHJhd2luZ1N5
bmNocm9uaXphdGlvbl0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIC8vIERpc2FibGUgc2Ny
ZWVuIHVwZGF0ZXMgdG8gbWluaW1pemUgdGhlIGNoYW5jZXMgb2YgdGhlIHJhY2UgYmV0d2VlbiB0
aGUgQ0EKICAgICAgICAgLy8gZGlzcGxheSBsaW5rIGFuZCBBcHBLaXQgZHJhd2luZyBjYXVzaW5n
IGZsYXNoZXMuCiAgICAgICAgIFtbc2VsZiB3aW5kb3ddIGRpc2FibGVTY3JlZW5VcGRhdGVzVW50
aWxGbHVzaF07CkBAIC00MjE3LDEyICs0MjEwLDExIEBAIHN0YXRpYyBCT09MIGN1cnJlbnRTY3Jv
bGxJc0JsaXQoTlNWaWV3ICpjbGlwVmlldykKICAgICBpZiAoRnJhbWUqIGNvcmVmcmFtZSA9IGNv
cmUoW3NlbGYgX2ZyYW1lXSkpCiAgICAgICAgIGNvcmVmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubW91
c2VEb3duKGV2ZW50KTsKICNlbHNlCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0lucHV0TWFu
YWdlciAqY3VycmVudElucHV0TWFuYWdlciA9IFtOU0lucHV0TWFuYWdlciBjdXJyZW50SW5wdXRN
YW5hZ2VyXTsKIAogICAgIGlmICghW2N1cnJlbnRJbnB1dE1hbmFnZXIgd2FudHNUb0hhbmRsZU1v
dXNlRXZlbnRzXSB8fCAhW2N1cnJlbnRJbnB1dE1hbmFnZXIgaGFuZGxlTW91c2VFdmVudDpldmVu
dF0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRy
b2xsZXIgZW5kUmV2ZXJ0aW5nQ2hhbmdlOk5PIG1vdmVMZWZ0Ok5PXTsKIAogICAgICAgICAvLyBJ
ZiB0aGUgd2ViIHBhZ2UgaGFuZGxlcyB0aGUgY29udGV4dCBtZW51IGV2ZW50IGFuZCBtZW51Rm9y
RXZlbnQ6IHJldHVybnMgbmlsLCB3ZSdsbCBnZXQgY29udHJvbCBjbGljayBldmVudHMgaGVyZS4K
QEAgLTQyNzcsMTIgKzQyNjksMTEgQEAgc3RhdGljIEJPT0wgY3VycmVudFNjcm9sbElzQmxpdChO
U1ZpZXcgKmNsaXBWaWV3KQogICAgIC8vIHRoZSBjdXJyZW50IGV2ZW50IHByZXZlbnRzIHRoYXQg
ZnJvbSBjYXVzaW5nIGEgcHJvYmxlbSBpbnNpZGUgV2ViS2l0IG9yIEFwcEtpdCBjb2RlLgogICAg
IFtbZXZlbnQgcmV0YWluXSBhdXRvcmVsZWFzZV07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IE5TSW5wdXRNYW5hZ2VyICpjdXJyZW50SW5wdXRNYW5hZ2VyID0gW05TSW5wdXRNYW5hZ2VyIGN1
cnJlbnRJbnB1dE1hbmFnZXJdOwogICAgIGlmIChbY3VycmVudElucHV0TWFuYWdlciB3YW50c1Rv
SGFuZGxlTW91c2VFdmVudHNdICYmIFtjdXJyZW50SW5wdXRNYW5hZ2VyIGhhbmRsZU1vdXNlRXZl
bnQ6ZXZlbnRdKQogICAgICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBbc2VsZiByZXRh
aW5dOwogCkBAIC00NDQ3LDEyICs0NDM4LDExIEBAIHN0YXRpYyBib29sIG1hdGNoZXNFeHRlbnNp
b25PckVxdWl2YWxlbnQoTlNTdHJpbmcgKmZpbGVuYW1lLCBOU1N0cmluZyAqZXh0ZW5zaW9uCiAg
ICAgW3NlbGYgX3NldE1vdXNlRG93bkV2ZW50Om5pbF07CiAKICNpZiBQTEFURk9STShNQUMpCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0lucHV0TWFuYWdlciAqY3VycmVudElucHV0TWFuYWdl
ciA9IFtOU0lucHV0TWFuYWdlciBjdXJyZW50SW5wdXRNYW5hZ2VyXTsKICAgICBpZiAoW2N1cnJl
bnRJbnB1dE1hbmFnZXIgd2FudHNUb0hhbmRsZU1vdXNlRXZlbnRzXSAmJiBbY3VycmVudElucHV0
TWFuYWdlciBoYW5kbGVNb3VzZUV2ZW50OmV2ZW50XSkKICAgICAgICAgcmV0dXJuOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogI2VuZGlmCiAKICAgICBbc2VsZiByZXRhaW5dOwpAQCAtNDgwNCwxMCArNDc5NCw5IEBA
IHN0YXRpYyBSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUq
IGNvcmVGcmFtZSkKIC0gKHZvaWQpX2VuZFByaW50TW9kZUFuZFJlc3RvcmVXaW5kb3dBdXRvZGlz
cGxheQogewogICAgIFtzZWxmIF9lbmRQcmludE1vZGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAog
LSAodm9pZClfZGVsYXllZEVuZFByaW50TW9kZTooTlNQcmludE9wZXJhdGlvbiAqKWluaXRpYXRp
bmdPcGVyYXRpb24KQEAgLTQ4NDIsMTAgKzQ4MzEsOSBAQCBzdGF0aWMgUmVmUHRyPEtleWJvYXJk
RXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAgICAgLy8gTXVz
dCBkbyB0aGlzIGV4cGxpY2l0IGRpc3BsYXkgaGVyZSwgYmVjYXVzZSBvdGhlcndpc2UgdGhlIHZp
ZXcgbWlnaHQgcmVkaXNwbGF5IHdoaWxlIHRoZSBwcmludAogICAgIC8vIHNoZWV0IHdhcyB1cCwg
dXNpbmcgcHJpbnRlciBmb250cyAoYW5kIGxvb2tpbmcgZGlmZmVyZW50KS4KICAgICBbc2VsZiBk
aXNwbGF5SWZOZWVkZWRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1tzZWxmIHdpbmRvd10g
c2V0QXV0b2Rpc3BsYXk6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgW1tzZWxmIF93ZWJWaWV3XSBf
YWRqdXN0UHJpbnRpbmdNYXJnaW5zRm9ySGVhZGVyQW5kRm9vdGVyXTsKICAgICBOU1ByaW50T3Bl
cmF0aW9uICpwcmludE9wZXJhdGlvbiA9IFtOU1ByaW50T3BlcmF0aW9uIGN1cnJlbnRPcGVyYXRp
b25dOwpAQCAtNTAzMywxMCArNTAyMSw5IEBAIHN0YXRpYyBSZWZQdHI8S2V5Ym9hcmRFdmVudD4g
Y3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKICNpZiBQTEFURk9STShJT1Mp
CiAgICAgICAgIHJldHVybiBbYWNjVHJlZSBhY2Nlc3NpYmlsaXR5SGl0VGVzdDpwb2ludF07CiAj
ZWxzZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBOU1BvaW50IHdpbmRvd0Nvb3Jk
ID0gW1tzZWxmIHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpwb2ludF07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogICAgICAgICByZXR1cm4gW2FjY1RyZWUgYWNjZXNzaWJpbGl0eUhpdFRlc3Q6W3NlbGYg
Y29udmVydFBvaW50OndpbmRvd0Nvb3JkIGZyb21WaWV3Om5pbF1dOwogI2VuZGlmCiAgICAgfQpA
QCAtNTA3NCwxMCArNTA2MSw5IEBAIHN0YXRpYyBSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVu
dEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKIAogLSAoTlNEaWN0aW9uYXJ5ICopX2Zv
bnRBdHRyaWJ1dGVzRnJvbUZvbnRQYXN0ZWJvYXJkCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICBOU1Bhc3RlYm9hcmQgKmZvbnRQYXN0ZWJvYXJkID0gW05TUGFzdGVib2FyZCBwYXN0ZWJvYXJk
V2l0aE5hbWU6TlNGb250UGJvYXJkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBpZiAoZm9udFBhc3RlYm9h
cmQgPT0gbmlsKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIE5TRGF0YSAqZGF0YSA9IFtmb250
UGFzdGVib2FyZCBkYXRhRm9yVHlwZTpsZWdhY3lGb250UGFzdGVib2FyZFR5cGUoKV07CkBAIC01
MTAxLDEwICs1MDg3LDkgQEAgc3RhdGljIFJlZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5
Ym9hcmRFdmVudChGcmFtZSogY29yZUZyYW1lKQogCiAtIChOU1N0cmluZyAqKV9jb2xvckFzU3Ry
aW5nOihOU0NvbG9yICopY29sb3IKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TQ29sb3Ig
KnJnYkNvbG9yID0gW2NvbG9yIGNvbG9yVXNpbmdDb2xvclNwYWNlTmFtZTpOU0RldmljZVJHQkNv
bG9yU3BhY2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgIC8vIEZJWE1FOiBJZiBjb2xvciBpcyBub24tbmls
IGFuZCByZ2JDb2xvciBpcyBuaWwsIHRoYXQgbWVhbnMgd2UgZ290IHNvbWUga2luZAogICAgIC8v
IG9mIGZhbmN5IGNvbG9yIHRoYXQgY2FuJ3QgYmUgY29udmVydGVkIHRvIFJHQi4gQ2hhbmdpbmcg
dGhhdCB0byAidHJhbnNwYXJlbnQiCiAgICAgLy8gbWlnaHQgbm90IGJlIGdyZWF0LCBidXQgaXQn
cyBwcm9iYWJseSBPSy4KQEAgLTUyODEsMTAgKzUyNjYsOSBAQCBzdGF0aWMgUmVmUHRyPEtleWJv
YXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAKICAgICAv
LyBQdXQgUlRGIHdpdGggZm9udCBhdHRyaWJ1dGVzIG9uIHRoZSBwYXN0ZWJvYXJkLgogICAgIC8v
IE1heWJlIGxhdGVyIHdlIHNob3VsZCBhZGQgYSBwYXN0ZWJvYXJkIHR5cGUgdGhhdCBjb250YWlu
cyBDU1MgdGV4dCBmb3IgIm5hdGl2ZSIgY29weSBhbmQgcGFzdGUgZm9udC4KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBOU1Bhc3RlYm9hcmQgKmZvbnRQYXN0ZWJvYXJkID0gW05TUGFzdGVi
b2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6TlNGb250UGJvYXJkXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBb
Zm9udFBhc3RlYm9hcmQgZGVjbGFyZVR5cGVzOltOU0FycmF5IGFycmF5V2l0aE9iamVjdDpsZWdh
Y3lGb250UGFzdGVib2FyZFR5cGUoKV0gb3duZXI6bmlsXTsKICAgICBbZm9udFBhc3RlYm9hcmQg
c2V0RGF0YTpbc2VsZiBfc2VsZWN0aW9uU3RhcnRGb250QXR0cmlidXRlc0FzUlRGXSBmb3JUeXBl
OmxlZ2FjeUZvbnRQYXN0ZWJvYXJkVHlwZSgpXTsKIH0KQEAgLTYxMjAsMTUgKzYxMDQsMTQgQEAg
c3RhdGljIEJPT0wgd3JpdGluZ0RpcmVjdGlvbktleUJpbmRpbmdzRW5hYmxlZCgpCiAgICAgY29u
c3QgVmVjdG9yPEtleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzID0gcGFyYW1ldGVycy0+ZXZlbnQt
PmtleXByZXNzQ29tbWFuZHMoKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY29tbWFu
ZHMuc2l6ZSgpOyArK2kpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgaWYgKGNv
bW1hbmRzW2ldLmNvbW1hbmROYW1lID09ICJpbnNlcnRUZXh0OiIpCiAgICAgICAgICAgICBbc2Vs
ZiBpbnNlcnRUZXh0OmNvbW1hbmRzW2ldLnRleHRdOwogICAgICAgICBlbHNlIGlmIChjb21tYW5k
c1tpXS5jb21tYW5kTmFtZSA9PSAibm9vcDoiKQogICAgICAgICAgICAgOyAvLyBEbyBub3RoaW5n
LiBUaGlzIGNhc2UgY2FuIGJlIHJlbW92ZWQgb25jZSA8cmRhcjovL3Byb2JsZW0vOTAyNTAxMj4g
aXMgZml4ZWQuCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIFtzZWxmIGRvQ29tbWFuZEJ5U2Vs
ZWN0b3I6TlNTZWxlY3RvckZyb21TdHJpbmcoY29tbWFuZHNbaV0uY29tbWFuZE5hbWUpXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAgICAgfQogICAgIHBhcmFtZXRlcnMtPmV2ZW50LT5rZXlwcmVzc0NvbW1h
bmRzKCkuY2xlYXIoKTsKICAgICBwYXJhbWV0ZXJzLT5zaG91bGRTYXZlQ29tbWFuZHMgPSB3YXNT
YXZpbmdDb21tYW5kczsKQEAgLTYzMjQsMTAgKzYzMDcsOSBAQCBzdGF0aWMgQk9PTCB3cml0aW5n
RGlyZWN0aW9uS2V5QmluZGluZ3NFbmFibGVkKCkKICAgICAgICAgLy8gSWYgd2UgYXJlIGluIGEg
bGF5ZXItYmFja2VkIHZpZXcsIHdlIG5lZWQgdG8gbWFudWFsbHkgaW5pdGlhbGl6ZSB0aGUgZ2Vv
bWV0cnkgZm9yIG91ciBsYXllci4KICAgICAgICAgW3ZpZXdMYXllciBzZXRCb3VuZHM6TlNSZWN0
VG9DR1JlY3QoW19wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3IGJvdW5kc10pXTsKICAgICAgICAg
W3ZpZXdMYXllciBzZXRBbmNob3JQb2ludDpDR1BvaW50TWFrZSgwLCBbc2VsZiBpc0ZsaXBwZWRd
ID8gMSA6IDApXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgQ0dQb2ludCBsYXll
clBvc2l0aW9uID0gTlNQb2ludFRvQ0dQb2ludChbc2VsZiBjb252ZXJ0UG9pbnRUb0Jhc2U6W19w
cml2YXRlLT5sYXllckhvc3RpbmdWaWV3IGZyYW1lXS5vcmlnaW5dKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgICAgIFt2aWV3TGF5ZXIgc2V0UG9zaXRpb246bGF5ZXJQb3NpdGlvbl07CiAgICAgfQog
ICAgIApAQCAtNjQ1NywxMCArNjQzOSw5IEBAIHN0YXRpYyBCT09MIHdyaXRpbmdEaXJlY3Rpb25L
ZXlCaW5kaW5nc0VuYWJsZWQoKQogICAgICAgICBMT0coVGV4dElucHV0LCAidGV4dFN0b3JhZ2Ug
LT4gbmlsIik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgTlNBdHRyaWJ1dGVkU3RyaW5nICpyZXN1bHQgPSBbc2VsZiBhdHRyaWJ1dGVkU3Vic3Ry
aW5nRnJvbVJhbmdlOk5TTWFrZVJhbmdlKDAsIFVJTlRfTUFYKV07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAg
ICBMT0coVGV4dElucHV0LCAidGV4dFN0b3JhZ2UgLT4gXCIlQFwiIiwgcmVzdWx0ID8gW3Jlc3Vs
dCBzdHJpbmddIDogQCIiKTsKICAgICAKQEAgLTY5MzksMTUgKzY5MjAsMTQgQEAgc3RhdGljIHZv
aWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxD
b21wb3NpdGlvblVuZGUKIAogICAgIHVuc2lnbmVkIHN0YXJ0OwogICAgIHVuc2lnbmVkIGVuZDsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChjb3JlRnJhbWUtPmVkaXRvcigpLmdldENvbXBv
c2l0aW9uU2VsZWN0aW9uKHN0YXJ0LCBlbmQpKQogICAgICAgICBbW05TSW5wdXRNYW5hZ2VyIGN1
cnJlbnRJbnB1dE1hbmFnZXJdIG1hcmtlZFRleHRTZWxlY3Rpb25DaGFuZ2VkOk5TTWFrZVJhbmdl
KHN0YXJ0LCBlbmQgLSBzdGFydCkgY2xpZW50OnNlbGZdOwogICAgIGVsc2UgewogICAgICAgICBj
b3JlRnJhbWUtPmVkaXRvcigpLmNhbmNlbENvbXBvc2l0aW9uKCk7CiAgICAgICAgIFtbTlNJbnB1
dE1hbmFnZXIgY3VycmVudElucHV0TWFuYWdlcl0gbWFya2VkVGV4dEFiYW5kb25lZDpzZWxmXTsK
ICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IDI0ZGFjOWUzYThmYjg5MzRhNjRkMTljYjFj
ZDMxYWI5MWNiN2ZkODUuLmQ1OTgxYzA1NTJkMzdlOTZhNmVhMDNhNzQ3NjI3NThjODE0ODVjNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KQEAg
LTEyNiwxMCArMTI2LDkgQEAgc3RhdGljIHZvaWQgX2FwcGxpY2F0aW9uSW5mb0Zvck1JTUVUeXBl
KE5TU3RyaW5nICp0eXBlLCBOU1N0cmluZyAqKm5hbWUsIE5TSW1hZ2UKIHsKICAgICBDRlVSTFJl
ZiBhcHBVUkwgPSBudWxscHRyOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBPU1N0YXR1cyBl
cnJvciA9IExTQ29weUFwcGxpY2F0aW9uRm9yTUlNRVR5cGUoKF9fYnJpZGdlIENGU3RyaW5nUmVm
KXR5cGUsIGtMU1JvbGVzQWxsLCAmYXBwVVJMKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBpZiAoZXJyb3Ig
IT0gbm9FcnIpCiAgICAgICAgIHJldHVybjsKICAgICAKQEAgLTIyNiwxMCArMjI1LDkgQEAgc3Rh
dGljIEJPT0wgX1BERlNlbGVjdGlvbnNBcmVFcXVhbChQREZTZWxlY3Rpb24gKnNlbGVjdGlvbkEs
IFBERlNlbGVjdGlvbiAqc2VsZWMKIC0gKHZvaWQpY2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJl
YTooaWQpc2VuZGVyCiB7CiAgICAgLy8gRklYTUU6IEdldCByaWQgb2YgdGhpcyBvbmNlIDxyZGFy
Oi8vcHJvYmxlbS8yNTE0OTI5ND4gaGFzIGJlZW4gZml4ZWQuCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9ubnVsbCIK
KyAgICBBTExPV19OVUxMX0FSR1VNRU5UX0JFR0lOCiAgICAgW1BERlN1YnZpZXcgc2Nyb2xsU2Vs
ZWN0aW9uVG9WaXNpYmxlOm5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfTlVMTF9BUkdVTUVOVF9FTkQKIH0KIAogLSAodm9pZClzY3JvbGxQYWdlRG93bjooaWQp
c2VuZGVyCkBAIC0zNzAsMTAgKzM2OCw5IEBAIHN0YXRpYyBCT09MIF9QREZTZWxlY3Rpb25zQXJl
RXF1YWwoUERGU2VsZWN0aW9uICpzZWxlY3Rpb25BLCBQREZTZWxlY3Rpb24gKnNlbGVjCiAKIC0g
KHZvaWQpX3JlY3Vyc2l2ZURpc3BsYXlSZWN0SWZOZWVkZWRJZ25vcmluZ09wYWNpdHk6KE5TUmVj
dClyZWN0IGlzVmlzaWJsZVJlY3Q6KEJPT0wpaXNWaXNpYmxlUmVjdCByZWN0SXNWaXNpYmxlUmVj
dEZvclZpZXc6KE5TVmlldyAqKXZpc2libGVWaWV3IHRvcFZpZXc6KEJPT0wpdG9wVmlldwogewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSAoQ0dDb250ZXh0
UmVmKVtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgCiAgICAgYm9vbCBhbGxvd3NTbW9vdGhpbmcgPSBDR0NvbnRleHRHZXRB
bGxvd3NGb250U21vb3RoaW5nKGNvbnRleHQpOwogICAgIGJvb2wgYWxsb3dzU3VicGl4ZWxRdWFu
dGl6YXRpb24gPSBDR0NvbnRleHRHZXRBbGxvd3NGb250U3VicGl4ZWxRdWFudGl6YXRpb24oY29u
dGV4dCk7CkBAIC0zODYsMTAgKzM4Myw5IEBAIHN0YXRpYyBCT09MIF9QREZTZWxlY3Rpb25zQXJl
RXF1YWwoUERGU2VsZWN0aW9uICpzZWxlY3Rpb25BLCBQREZTZWxlY3Rpb24gKnNlbGVjCiAKIC0g
KHZvaWQpX3JlY3Vyc2l2ZURpc3BsYXlBbGxEaXJ0eVdpdGhMb2NrRm9jdXM6KEJPT0wpbmVlZHNM
b2NrRm9jdXMgdmlzUmVjdDooTlNSZWN0KXZpc1JlY3QKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gKENHQ29udGV4dFJlZilbW05TR3JhcGhpY3NDb250
ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIAogICAg
IGJvb2wgYWxsb3dzU21vb3RoaW5nID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFNtb290aGluZyhj
b250ZXh0KTsKICAgICBib29sIGFsbG93c1N1YnBpeGVsUXVhbnRpemF0aW9uID0gQ0dDb250ZXh0
R2V0QWxsb3dzRm9udFN1YnBpeGVsUXVhbnRpemF0aW9uKGNvbnRleHQpOwpAQCAtNDAyLDEwICsz
OTgsOSBAQCBzdGF0aWMgQk9PTCBfUERGU2VsZWN0aW9uc0FyZUVxdWFsKFBERlNlbGVjdGlvbiAq
c2VsZWN0aW9uQSwgUERGU2VsZWN0aW9uICpzZWxlYwogCiAtICh2b2lkKV9yZWN1cnNpdmU6KEJP
T0wpcmVjdXJzZSBkaXNwbGF5UmVjdElnbm9yaW5nT3BhY2l0eTooTlNSZWN0KWRpc3BsYXlSZWN0
IGluQ29udGV4dDooTlNHcmFwaGljc0NvbnRleHQgKilncmFwaGljc0NvbnRleHQgdG9wVmlldzoo
Qk9PTCl0b3BWaWV3CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDR0NvbnRleHRSZWYgY29u
dGV4dCA9IChDR0NvbnRleHRSZWYpW2dyYXBoaWNzQ29udGV4dCBncmFwaGljc1BvcnRdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgIAogICAgIGJvb2wgYWxsb3dzU21vb3RoaW5nID0gQ0dDb250ZXh0R2V0QWxs
b3dzRm9udFNtb290aGluZyhjb250ZXh0KTsKICAgICBib29sIGFsbG93c1N1YnBpeGVsUXVhbnRp
emF0aW9uID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUXVhbnRpemF0aW9uKGNvbnRl
eHQpOwpAQCAtNjY5LDEwICs2NjQsOSBAQCBzdGF0aWMgQk9PTCBfUERGU2VsZWN0aW9uc0FyZUVx
dWFsKFBERlNlbGVjdGlvbiAqc2VsZWN0aW9uQSwgUERGU2VsZWN0aW9uICpzZWxlYwogICAgIFtQ
REZTdWJ2aWV3IHNldEN1cnJlbnRTZWxlY3Rpb246c2VsZWN0aW9uXTsKIAogICAgIC8vIEZJWE1F
OiBHZXQgcmlkIG9mIHRoaXMgb25jZSA8cmRhcjovL3Byb2JsZW0vMjUxNDkyOTQ+IGhhcyBiZWVu
IGZpeGVkLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV25vbm51bGwiCisgICAgQUxMT1dfTlVMTF9BUkdVTUVOVF9CRUdJ
TgogICAgIFtQREZTdWJ2aWV3IHNjcm9sbFNlbGVjdGlvblRvVmlzaWJsZTpuaWxdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX05VTExfQVJHVU1FTlRfRU5ECiAgICAg
cmV0dXJuIFlFUzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5tbQppbmRleCBjNmYwZTcz
NDVmNWVlODJiNzFiYzFjNGFiYTI2YzQwZTIxZmYwM2E2Li5hMzgxZDEwYjI4YTNkZWU5NTQ4ZWEy
ZWU0Njk5NjA1N2EzYjI2ZTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5tbQpAQCAtODQs
MTAgKzg0LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB7CiAgICAgTlNSZWN0IHNjcm9s
bEZyYW1lID0gTlNNYWtlUmVjdCgwLCAwLCAxMDAsIDEwMCk7CiAgICAgTlNSZWN0IHRhYmxlRnJh
bWUgPSBOU1plcm9SZWN0OyAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHRhYmxlRnJhbWUu
c2l6ZSA9IFtOU1Njcm9sbFZpZXcgY29udGVudFNpemVGb3JGcmFtZVNpemU6c2Nyb2xsRnJhbWUu
c2l6ZSBoYXNIb3Jpem9udGFsU2Nyb2xsZXI6Tk8gaGFzVmVydGljYWxTY3JvbGxlcjpZRVMgYm9y
ZGVyVHlwZTpOU05vQm9yZGVyXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBOU1RhYmxlQ29sdW1uICpjb2x1
bW4gPSBbW05TVGFibGVDb2x1bW4gYWxsb2NdIGluaXRdOwogICAgIFtjb2x1bW4gc2V0V2lkdGg6
dGFibGVGcmFtZS5zaXplLndpZHRoXTsKICAgICBbY29sdW1uIHNldEVkaXRhYmxlOk5PXTsKQEAg
LTEzMywxMCArMTMyLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKICAgICBOU1JlY3Qg
d2luZG93RnJhbWU7CiAgICAgTlNQb2ludCB3b3JkU3RhcnQgPSB0b3BMZWZ0OwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgd2luZG93RnJhbWUub3JpZ2luID0gW1tfdmlldyB3aW5kb3ddIGNvbnZl
cnRCYXNlVG9TY3JlZW46W19odG1sVmlldyBjb252ZXJ0UG9pbnQ6d29yZFN0YXJ0IHRvVmlldzpu
aWxdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICB3aW5kb3dGcmFtZS5zaXplLmhlaWdodCA9IG51bWJlclRv
U2hvdyAqIFtfdGFibGVWaWV3IHJvd0hlaWdodF0gKyAobnVtYmVyVG9TaG93ICsgMSkgKiBbX3Rh
YmxlVmlldyBpbnRlcmNlbGxTcGFjaW5nXS5oZWlnaHQ7CiAgICAgd2luZG93RnJhbWUub3JpZ2lu
LnkgLT0gd2luZG93RnJhbWUuc2l6ZS5oZWlnaHQ7CiAgICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1
dGVzID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOltOU0ZvbnQg
c3lzdGVtRm9udE9mU2l6ZToxMi4wZl0sIE5TRm9udEF0dHJpYnV0ZU5hbWUsIG5pbF07CkBAIC0x
NTEsMTAgKzE0OSw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIH0KICAgICB3aW5k
b3dGcmFtZS5zaXplLndpZHRoID0gMTAwOwogICAgIGlmIChtYXhJbmRleCA+PSAwKSB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05TU2Nyb2xsVmll
dyBmcmFtZVNpemVGb3JDb250ZW50U2l6ZTpOU01ha2VTaXplKG1heFdpZHRoLCAxMDAuMGYpIGhh
c0hvcml6b250YWxTY3JvbGxlcjpOTyBoYXNWZXJ0aWNhbFNjcm9sbGVyOllFUyBib3JkZXJUeXBl
Ok5TTm9Cb3JkZXJdLndpZHRoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIG1heFdpZHRoID0g
Y2VpbGYoW05TV2luZG93IGZyYW1lUmVjdEZvckNvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMC4wZiwg
MC4wZiwgbWF4V2lkdGgsIDEwMC4wZikgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVy
bGVzc10uc2l6ZS53aWR0aCk7CiAgICAgICAgIG1heFdpZHRoICs9IDUuMGY7CiAgICAgICAgIHdp
bmRvd0ZyYW1lLnNpemUud2lkdGggPSBzdGQ6Om1heChtYXhXaWR0aCwgd2luZG93RnJhbWUuc2l6
ZS53aWR0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0KaW5kZXggYWI0Mzg4N2QxNzQ0
ZDc1M2Q1MDAzYTIyZTA0ZjQyNzUxNGExYmU2Ni4uYzZlMDcxNjRjYWYwNWNhNDgxOWUzMGE3ODZk
Y2M4YWQ4M2Q2MDUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQpAQCAtMzgsOCAr
MzgsNyBAQAogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5r
aW5nLmg+CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIFNPRlRfTElOS19GUkFNRVdPUksoQVZGb3VuZGF0
aW9uKQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZQbGF5ZXJMYXllcikKQEAgLTUw
OSw2ICs1MDgsNiBAQCBzdGF0aWMgTlNXaW5kb3cgKmNyZWF0ZUJhY2tncm91bmRGdWxsc2NyZWVu
V2luZG93KE5TUmVjdCBmcmFtZSwgaW50IGxldmVsKQogCiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9G
dWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQppbmRleCBl
N2JlODZkMzc0ZTQ1MGVlZTcwMDkxYzVlMzJkOTNiMzE1YTVjZjM5Li43YzNmNTA2ZTA2ZDk3YmZk
ZThlYTRjYjA5NTYwYThjNzBiMTIzZjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURX
aW5kb3dDb250cm9sbGVyLm1tCkBAIC0zNzMsMTAgKzM3Myw5IEBAIHN0YXRpYyBOU1ZpZXcgKmNy
ZWF0ZU1lZGlhVUlCYWNrZ3JvdW5kVmlldygpCiAgICAgY29uc3QgQ0dGbG9hdCBxdWlja1RpbWVQ
bGF5ZXJIVURIZWlnaHQgPSA1OTsKICAgICBjb25zdCBDR0Zsb2F0IHF1aWNrVGltZVBsYXllckhV
RENvbnRlbnRCb3JkZXJQb3NpdGlvbiA9IDM4OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBb
dmlldyBzZXRDb250ZW50Qm9yZGVyUG9zaXRpb246cXVpY2tUaW1lUGxheWVySFVEQ29udGVudEJv
cmRlclBvc2l0aW9uIC8gcXVpY2tUaW1lUGxheWVySFVESGVpZ2h0XTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAog
ICAgIHJldHVybiB2aWV3OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCmluZGV4IDkxNDEwYTg5ZDczMjU0NTMyNTUxZjMwMmJmY2U5ODM3NDBjOWJiMWYuLjQ4
NGQ2Y2JjODU2NWRmNTEyYzIyODU3ZWY5M2Q2YjNiNmM0Nzc0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTg2NSwxNSArODY1LDE0IEBAIHN0YXRp
YyBjb25zdCBOU1VJbnRlZ2VyIG9yZGVyZWRMaXN0U2VnbWVudCA9IDI7CiAgICAgW2luc2VydExp
c3RDb250cm9sIHNldFdpZHRoOmxpc3RDb250cm9sU2VnbWVudFdpZHRoIGZvclNlZ21lbnQ6b3Jk
ZXJlZExpc3RTZWdtZW50XTsKICAgICBpbnNlcnRMaXN0Q29udHJvbC5mb250ID0gW05TRm9udCBz
eXN0ZW1Gb250T2ZTaXplOjE1XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWQgc2VnbWVu
dEVsZW1lbnQgPSBOU0FjY2Vzc2liaWxpdHlVbmlnbm9yZWREZXNjZW5kYW50KGluc2VydExpc3RD
b250cm9sKTsKICAgICBOU0FycmF5ICpzZWdtZW50cyA9IFtzZWdtZW50RWxlbWVudCBhY2Nlc3Np
YmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRyaWJ1dGVdOwog
ICAgIEFTU0VSVChzZWdtZW50cy5jb3VudCA9PSAzKTsKICAgICBbc2VnbWVudHNbbm9MaXN0U2Vn
bWVudF0gYWNjZXNzaWJpbGl0eVNldE92ZXJyaWRlVmFsdWU6V2ViQ29yZTo6aW5zZXJ0TGlzdFR5
cGVOb25lKCkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uQXR0cmlidXRl
XTsKICAgICBbc2VnbWVudHNbdW5vcmRlcmVkTGlzdFNlZ21lbnRdIGFjY2Vzc2liaWxpdHlTZXRP
dmVycmlkZVZhbHVlOldlYkNvcmU6Omluc2VydExpc3RUeXBlQnVsbGV0ZWRBY2Nlc3NpYmlsaXR5
VGl0bGUoKSBmb3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25BdHRyaWJ1dGVd
OwogICAgIFtzZWdtZW50c1tvcmRlcmVkTGlzdFNlZ21lbnRdIGFjY2Vzc2liaWxpdHlTZXRPdmVy
cmlkZVZhbHVlOldlYkNvcmU6Omluc2VydExpc3RUeXBlTnVtYmVyZWRBY2Nlc3NpYmlsaXR5VGl0
bGUoKSBmb3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25BdHRyaWJ1dGVdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogCiAgICAgc2VsZi52aWV3ID0gaW5zZXJ0TGlzdENvbnRyb2w7CiAKQEAgLTIx
NzgsMTEgKzIxNzcsMTAgQEAgc3RhdGljIE5TTXV0YWJsZVNldCAqa25vd25QbHVnaW5NSU1FVHlw
ZXMoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBp
ZiAoIU9TQXRvbWljQ29tcGFyZUFuZFN3YXAzMigwLCAxLCAmX3ByaXZhdGUtPmRpZERyYXdUaWxl
cykpCiAgICAgICAgIHJldHVybjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIFdlYlRocmVhZExvY2soKTsK
IApAQCAtNTg5MywyMSArNTg5MSwxOSBAQCBzdGF0aWMgYm9vbCBuZWVkc1dlYlZpZXdJbml0VGhy
ZWFkV29ya2Fyb3VuZCgpCiAKIC0gKHZvaWQpZW5jb2RlV2l0aENvZGVyOihOU0NvZGVyICopZW5j
b2RlcgogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8gU2V0IGFzc2lkZSB0aGUgc3Vidmll
d3MgYmVmb3JlIHdlIGFyY2hpdmUuIFdlIGRvbid0IHdhbnQgdG8gYXJjaGl2ZSBhbnkgc3Vidmll
d3MuCiAgICAgLy8gVGhlIHN1YnZpZXdzIHdpbGwgYWx3YXlzIGJlIGNyZWF0ZWQgaW4gX2NvbW1v
bkluaXRpYWxpemF0aW9uRnJhbWVOYW1lOmdyb3VwTmFtZTouCiAgICAgaWQgb3JpZ2luYWxTdWJ2
aWV3cyA9IF9zdWJ2aWV3czsKICAgICBfc3Vidmlld3MgPSBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAg
ICBbc3VwZXIgZW5jb2RlV2l0aENvZGVyOmVuY29kZXJdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICAvLyBSZXN0b3JlIHRoZSBzdWJ2aWV3cyB3ZSBzZXQgYXNpZGUuCiAgICAgX3N1YnZpZXdz
ID0gb3JpZ2luYWxTdWJ2aWV3czsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIEJPT0wgdXNlQmFja0Zvcndh
cmRMaXN0ID0gX3ByaXZhdGUtPnBhZ2UgJiYgc3RhdGljX2Nhc3Q8QmFja0ZvcndhcmRMaXN0Kj4o
X3ByaXZhdGUtPnBhZ2UtPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpLT5lbmFibGVkKCk7CiAgICAg
aWYgKFtlbmNvZGVyIGFsbG93c0tleWVkQ29kaW5nXSkgewpAQCAtNzEzOCwxMCArNzEzNCw5IEBA
IHN0YXRpYyBXZWJGcmFtZSAqaW5jcmVtZW50RnJhbWUoV2ViRnJhbWUgKmZyYW1lLCBXZWJGaW5k
T3B0aW9ucyBvcHRpb25zID0gMCkKICAgICBpZiAoYXV0byAqaWNvbiA9IF9wcml2YXRlLT5fbWFp
bkZyYW1lSWNvbi5nZXQoKSkKICAgICAgICAgcmV0dXJuIGljb247CiAKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgcHVzaCAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgIHJldHVybiBbW1dlYkljb25EYXRhYmFzZSBzaGFyZWRJY29uRGF0YWJhc2VdIGRlZmF1
bHRJY29uV2l0aFNpemU6V2ViSWNvblNtYWxsU2l6ZV07Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAtICh2b2lk
KV9zZXRNYWluRnJhbWVJY29uOihOU0ltYWdlICopaWNvbgpAQCAtOTMwOSwxMCArOTMwNCw5IEBA
IGJvb2wgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OmZsdXNoTGF5ZXJzKCkKICAgICAgICAgLy8gQXBw
S2l0IG1heSBoYXZlIGRpc2FibGVkIHNjcmVlbiB1cGRhdGVzLCB0aGlua2luZyBhbiB1cGNvbWlu
ZyB3aW5kb3cgZmx1c2ggd2lsbCByZS1lbmFibGUgdGhlbS4KICAgICAgICAgLy8gSW4gY2FzZSBz
ZXROZWVkc0Rpc3BsYXlJblJlY3QoKSBoYXMgcHJldmVudGVkIHRoZSB3aW5kb3cgZnJvbSBuZWVk
aW5nIHRvIGJlIGZsdXNoZWQsIHJlLWVuYWJsZSBzY3JlZW4KICAgICAgICAgLy8gdXBkYXRlcyBo
ZXJlLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBpZiAoIVt3aW5kb3cgaXNGbHVz
aFdpbmRvd0Rpc2FibGVkXSkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgW3dpbmRv
dyBfZW5hYmxlU2NyZWVuVXBkYXRlc0lmTmVlZGVkXTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYldpbmRvd0FuaW1hdGlvbi5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViV2luZG93QW5pbWF0aW9uLm1tCmluZGV4
IDkyMzU4ZjZiN2RlM2FiYTk2NGVlYWYxNzQyNWYyNzFiOTVhYTg2MDkuLjUxOTNmMWVmZDBjYWY1
YmQ1MzgwOGE3NDZiZTQwNDBmY2NkNGY3Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViV2luZG93QW5pbWF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViV2luZG93QW5pbWF0aW9uLm1tCkBAIC0xMjUsMTAgKzEyNSw5
IEBAIHN0YXRpYyBDR1NDb25uZWN0aW9uSUQgbWFpbldpbmRvd1NlcnZlckNvbm5lY3Rpb25JRCgp
CiBzdGF0aWMgdm9pZCBzZXRTY2FsZWRGcmFtZUZvcldpbmRvdyhOU1dpbmRvdyAqd2luZG93LCBO
U1JlY3Qgc2NhbGVGcmFtZSwgTlNSZWN0IG5vblNjYWxlZEZyYW1lKQogewogICAgIGlmIChOU0Vx
dWFsUmVjdHMoc2NhbGVGcmFtZSwgbm9uU2NhbGVkRnJhbWUpKSB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9ubnVs
bCIKKyAgICAgICAgQUxMT1dfTlVMTF9BUkdVTUVOVF9CRUdJTgogICAgICAgICBDR1NTZXRXaW5k
b3dXYXJwKG1haW5XaW5kb3dTZXJ2ZXJDb25uZWN0aW9uSUQoKSwgd2luZG93LndpbmRvd051bWJl
ciwgMCwgMCwgbnVsbHB0cik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAg
IEFMTE9XX05VTExfQVJHVU1FTlRfRU5ECiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348811</attachid>
            <date>2018-09-04 03:35:05 -0700</date>
            <delta_ts>2018-09-04 05:04:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188996-20180904123503.patch</filename>
            <type>text/plain</type>
            <size>313021</size>
            <attacher name="Guillaume Emont">guijemont</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
YzFhYmRjMjYzZGE0NzVkNDhkM2FiYmJhM2M1ODg4Y2I4YjBlM2FmLi40Mjc0NzU2ZTc2ODI1NmUy
YTA1NGM1MTMyM2NhODNkMTE4YTA1ODIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09i
amVjdC5oOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLmM6CisgICAgICAgICogYXNzZW1i
bGVyL0xpbmtCdWZmZXIuaDoKKyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6ZmluYWxpemVDb2Rl
V2l0aERpc2Fzc2VtYmx5KToKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAg
ICAqIGIzL0IzT3Bjb2RlLmNwcDoKKyAgICAgICAgKiBiMy9CM1R5cGUuaDoKKyAgICAgICAgKiBi
My9CM1R5cGVNYXAuaDoKKyAgICAgICAgKiBiMy9CM1dpZHRoLmg6CisgICAgICAgICogYjMvYWly
L0FpckFyZy5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAqIGIzL2Fp
ci9BaXJDb2RlLmg6CisgICAgICAgICogYnl0ZWNvZGUvT3Bjb2RlLmg6CisgICAgICAgIChKU0M6
OnBhZE9wY29kZU5hbWUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU51bWJlcik6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1pc2MpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6
CisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBl
cnM6OmNhbGN1bGF0ZVBva2VPZmZzZXQpOgorICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6
CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTElu
dDo6c2xvd1BhdGhMb2dGKToKKyAgICAgICAgKiBydW50aW1lL0NvbmZpZ0ZpbGUuY3BwOgorICAg
ICAgICAoSlNDOjpDb25maWdGaWxlOjpjYW5vbmljYWxpemVQYXRocyk6CisgICAgICAgICogcnVu
dGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNw
cDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6c2V0QWxpYXNlZE9wdGlvbik6CisgICAgICAgICog
dG9vbHMvQ29kZVByb2ZpbGluZy5jcHA6CisgICAgICAgICogd2FzbS9XYXNtU2VjdGlvbnMuaDoK
KyAgICAgICAgKiB3YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weToKKwog
MjAxOC0wOS0wMiAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93c3RhcnQub3JnPgog
CiAgICAgICAgIEltcGxlbWVudCBPYmplY3QuZnJvbUVudHJpZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMzc5NDJiYzg1Nzg2
ZDM4M2U1ZmVhMmNhY2ZhOTQ5MGEyMTAyZTRiYy4uZTZkMmRkYmQwOTNjYWJkYzQxMDI2NTllNGZj
OTU5MzZkODg1YzQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1l
IEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJO
SU5HXy4qIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTg4OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoK
KyAgICAgICAgKiB3dGYvQ29tcGlsZXIuaDoKKyAgICAgICAgKiB3dGYvTUQ1LmNwcDoKKyAgICAg
ICAgKFdURjo6TUQ1OjpNRDUpOgorICAgICAgICAoV1RGOjpNRDU6OmFkZEJ5dGVzKToKKyAgICAg
ICAgKFdURjo6TUQ1OjpjaGVja3N1bSk6CisgICAgICAgICogd3RmL1ByaW50U3RyZWFtLmNwcDoK
KyAgICAgICAgKFdURjo6UHJpbnRTdHJlYW06OnByaW50ZlZhcmlhYmxlRm9ybWF0KToKKyAgICAg
ICAgKiB3dGYvU0hBMS5jcHA6CisgICAgICAgIChXVEY6OlNIQTE6OlNIQTEpOgorICAgICAgICAo
V1RGOjpTSEExOjphZGRCeXRlcyk6CisgICAgICAgIChXVEY6OlNIQTE6OmNvbXB1dGVIYXNoKToK
KyAgICAgICAgKiB3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwOgorICAgICAgICAqIHd0Zi9WZWN0
b3IuaDoKKyAgICAgICAgKFdURjo6VmVjdG9yQnVmZmVyOjplbmRPZkJ1ZmZlcik6CisgICAgICAg
ICogd3RmL3RleHQvV1RGU3RyaW5nLmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRlV2l0aEZvcm1h
dEFuZEFyZ3VtZW50cyk6CisKIDIwMTgtMDgtMzEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgT3B0aW9uU2V0IHw9IGFuZCAtPSBvcGVyYXRvcnMg
d2l0aCBhZGQoKSBhbmQgcmVtb3ZlKCkgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTI1NDQyMTFj
ZTMwYTA5NjYzNmFhNGJmNWY3MzdiNmVmYzAxYWNiNC4uYTdhMTI1YjM2YzNlMDViNDRkZjdhNDBl
NjlhMWQyNDZlYjBiNmNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMSBAQAorMjAxOC0wOC0y
NyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRk
IElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENEYXRhQ2hhbm5lbEhhbmRsZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9t
YWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6Om92ZXJyaWRlQXR0YWNobWVudFBhcmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SWdub3JlQXR0YWNobWVudCBjb25z
dCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHJl
bmRlcldpZGdldENoaWxkcmVuXSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyIGNvbnZlcnRQb2ludFRvU2NyZWVuU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIHJvbGVdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIgcm9sZURlc2NyaXB0aW9uXSk6CisgICAgICAgICogYnJpZGdlL29iamMv
V2ViU2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfY2xhc3MubW06
CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjQ2xhc3M6OmZpZWxkTmFtZWQgY29uc3QpOgor
ICAgICAgICAqIGNyeXB0by9Db21tb25DcnlwdG9VdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Z2V0Q29tbW9uQ3J5cHRvRGlnZXN0QWxnb3JpdGhtKToKKyAgICAgICAgKiBjcnlwdG8v
bWFjL0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5j
cnlwdEFFU19HQ00pOgorICAgICAgICAoV2ViQ29yZTo6ZGVjeXB0QUVTX0dDTSk6CisgICAgICAg
ICogY3J5cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OndyYXBTZXJpYWxpemVkQ3J5cHRvS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OnVud3Jh
cFNlcmlhbGl6ZWRDcnlwdG9LZXkpOgorICAgICAgICAqIGNzcy9tYWtlU2VsZWN0b3JQc2V1ZG9D
bGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5OgorICAgICAgICAqIGNzcy9tYWtlU2Vs
ZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5weToKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRv
ci5jcHA6CisgICAgICAgICogZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6cmVwbGFjZU5vZGVGcm9tUGFzdGVib2FyZCk6CisgICAgICAgICogcGFnZS9tYWMvRXZl
bnRIYW5kbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kRmFr
ZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1NlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXIubW06CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyOjpIaWdobGlnaHQ6OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybWF0TG9jYWxpemVk
U3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmg6CisgICAgICAg
IChXZWJDb3JlOjpTY3JlZW5EYXRhOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dhbWVw
YWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1l
cGFkUHJvdmlkZXI6OnN0b3BNb25pdG9yaW5nSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURp
c3BsYXk6OnNoYXJlZERpc3BsYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1N1cnJv
Z2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6OnVwZGF0ZU9wdGlvbnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0
cmVhbVNlc3Npb24ubW06CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uQVZTdHJlYW1TZXNz
aW9uOjp1cGRhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6c2V0Q3VycmVudFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2sgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6c2V0U2hvdWxkRGlzYWJsZVNsZWVwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpJR05PUkVf
Q0xBTkdfV0FSTklOR19FTkQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW06CisgICAgICAgICgtW1dlYkFWU2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lciBiZWdpbk9ic2Vy
dmluZ1JlbmRlcmVyOl0pOgorICAgICAgICAoLVtXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVu
ZXIgc3RvcE9ic2VydmluZ1JlbmRlcmVyOl0pOgorICAgICAgICAoLVtXZWJBVlNhbXBsZUJ1ZmZl
ckVycm9yTGlzdGVuZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29u
dGV4dDpdKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0
cmFja0RpZENoYW5nZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SUdOT1JFX0NMQU5HX1dB
Uk5JTkdfRU5EKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9y
bUNBTGF5ZXJDb2NvYS5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllcjo6ZHJhd0xheWVyQ29u
dGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZi
dXp6TkcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGU6OmZvbnRGb3JDb21iaW5p
bmdDaGFyYWN0ZXJTZXF1ZW5jZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VEZWNvZGVyQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyQ0c6
OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oOgorICAgICAgICAoSUdOT1JFX0NMQU5HX1dBUk5J
TkcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xs
ZXJDb3JlVGV4dC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6
Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9JY29uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6SWNvbjo6SWNvbik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50SW1hZ2VNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpQREZEb2N1bWVudEltYWdlOjpkcmF3UERGUGFnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYktpdE5TSW1hZ2VFeHRyYXMubW06CisgICAg
ICAgICgtW05TSW1hZ2UgX3dlYl9sb2NrRm9jdXNXaXRoRGV2aWNlU2NhbGVGYWN0b3I6XSk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2NhbGVEcmFnSW1hZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRm9yTGluayk6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkxvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dDo6TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXREcmFnSW1hZ2VJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludCk6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvU2Nyb2xsVmlld01hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBs
YXRmb3JtQ29udGVudHNUb1NjcmVlbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3OjpwbGF0Zm9ybVNjcmVlblRvQ29udGVudHMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9UaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdDZWxsRm9jdXNSaW5nV2l0
aEZyYW1lQXRUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9s
c01hbmFnZXIubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OldpZGdldDo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVs
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24p
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENG
TmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnJlcG9y
dEVycm9yVG9DbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3JlYXRlLWh0dHAt
aGVhZGVyLW5hbWUtdGFibGU6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2Rpbmcu
Y3BwOgorICAgICAgICAqIHRlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogeG1sL1hQYXRoR3JhbW1hci5jcHA6CisKIDIwMTgtMDktMDMgIEFuZHkgRXN0ZXMg
IDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIEltcGxlbWVu
dCB0aGUgTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQgY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
CmluZGV4IDFjMjM5OTRmMTdkYWExZGUxYTBlNjA0ODYyNjQ4NTM3Mzg0NjJhNGYuLmEzMGUxNDZk
ZTc0NjBiYmNmMTM1YzFiMzBjNjc2MDBiNjU1YmY0Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDE4LTA4LTI3ICBHdWlsbGF1bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdh
bGlhLmNvbT4KKworICAgICAgICBBZGQgSUdOT1JFX1dBUk5JTkdfLiogbWFjcm9zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg5OTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9jcnlwdG8vY29t
bW9uY3J5cHRvL0NyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHA6CisgICAgICAgIChQQUw6OkNy
eXB0b0RpZ2VzdDo6Y3JlYXRlKToKKyAgICAgICAgKFBBTDo6Q3J5cHRvRGlnZXN0OjphZGRCeXRl
cyk6CisgICAgICAgIChQQUw6OkNyeXB0b0RpZ2VzdDo6Y29tcHV0ZUhhc2gpOgorICAgICAgICAq
IHBhbC9zcGkvY29jb2EvQVZLaXRTUEkuaDoKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL05TS2V5
ZWRBcmNoaXZlclNQSS5oOgorICAgICAgICAoaW5zZWN1cmVseVVuYXJjaGl2ZU9iamVjdEZyb21E
YXRhKToKKyAgICAgICAgKiBwYWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oOgorICAgICAgICAq
IHBhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbToKKyAgICAgICAgKFBBTDo6cG9wVXBNZW51KToK
KyAgICAgICAgKiBwYWwvc3lzdGVtL21hYy9XZWJQYW5lbC5tbToKKyAgICAgICAgKC1bV2ViUGFu
ZWwgaW5pdF0pOgorCiAyMDE4LTA5LTAxICBZb3NoaWFraSBKaXRzdWthd2EgIDx5b3NoaWFraS5q
aXRzdWthd2FAc29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBBZGQgQ3J5cHRvRGlnZXN0
T3BlblNTTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBhNDM5N2QyZmQ2NDRmZmQxMWUyMDdhMjk5ZTQzOTJjNDkzMjE3
YTA1Li5iYmNmODQyZWIwOTdlMGU3ZTUyNjdlYmMxOTQ4OWYzNTM2ZTAwZTgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDExOSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250
QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0RhdGFUYXNrQ29jb2E6OnN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVN5bmNBbGxDb29raWVzKToKKyAgICAgICAgKiBQ
bHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojpi
ZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hp
bS5tbToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1v
ZHVsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luTW9kdWxlOjp0cnlMb2Fk
KToKKyAgICAgICAgKiBTaGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6Q2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveCk6CisgICAgICAgICogU2hhcmVk
L21hYy9DaGlsZFByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OmNvbXBpbGVBbmRBcHBs
eVNhbmRib3hTbG93Q2FzZSk6CisgICAgICAgICogU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5t
bToKKyAgICAgICAgKFdlYktpdDo6Q29sb3JTcGFjZURhdGE6OmRlY29kZSk6CisgICAgICAgICog
U2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpTYW5k
Ym94RXh0ZW5zaW9uSW1wbDo6c2FuZGJveEV4dGVuc2lvbkZvclR5cGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3dl
Yl9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdSdW5B
c01vZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAg
ICgtW1dLVmlldyBfd2ViX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZENsaWVudC5tbToKKyAgICAgICAgKFdlYktp
dDo6RG93bmxvYWRDbGllbnQ6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1l
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
Q2xpZW50Lm1tOgorICAgICAgICAoLVtXS0N1c3RvbVByb3RvY29sTG9hZGVyIGluaXRXaXRoTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHk6Y3VzdG9tUHJvdG9jb2xJRDpyZXF1ZXN0Ol0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06CisgICAgICAg
IChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OkNvbnRleHRNZW51Q2xpZW50Ojpt
ZW51RnJvbVByb3Bvc2VkTWVudSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW06CisgICAgICAgICgtW1dLVGV4dExpc3RUb3VjaEJhclZpZXdDb250cm9sbGVyIGlu
aXRXaXRoV2ViVmlld0ltcGw6XSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRh
dGVXaW5kb3dBbmRWaWV3RnJhbWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNl
bmREcmFnRW5kVG9QYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0RHJh
Zyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjaGFyYWN0ZXJJbmRleEZvclBvaW50
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFj
Lm1tOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmdldFBsdWdpblByb2Nl
c3NTZXJpYWxOdW1iZXIpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6Om1h
a2VQbHVnaW5Qcm9jZXNzVGhlRnJvbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2lu
UHJvY2Vzc1Byb3h5OjptYWtlVUlQcm9jZXNzVGhlRnJvbnRQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpleGl0RnVsbHNjcmVlbik6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tMZWdhY3lQREZWaWV3Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tQ
REZQYWdlTnVtYmVySW5kaWNhdG9yLm1tOgorICAgICAgICAoLVtXS1BERlBhZ2VOdW1iZXJJbmRp
Y2F0b3IgX21ha2VSb3VuZGVkQ29ybmVyc10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9y
bXMvV0tBaXJQbGF5Um91dGVQaWNrZXIubW06CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jt
cy9XS0ZpbGVVcGxvYWRQYW5lbC5tbToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3By
ZXNlbnRQb3BvdmVyV2l0aENvbnRlbnRWaWV3Q29udHJvbGxlcjphbmltYXRlZDpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5tbToKKyAgICAgICAg
KC1bV0tDb2xvclBvcG92ZXIgaW5pdFdpdGhWaWV3Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLm1tOgorICAgICAgICAoLVtXS0RhdGVUaW1lUG9w
b3ZlciBpbml0V2l0aFZpZXc6ZGF0ZVBpY2tlck1vZGU6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jt
cy9XS0Zvcm1Qb3BvdmVyLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3Jt
U2VsZWN0UG9wb3Zlci5tbToKKyAgICAgICAgKC1bV0tTZWxlY3RQb3BvdmVyIGluaXRXaXRoVmll
dzpoYXNHcm91cHM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNjcmVlblRvUm9vdFZpZXcp
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cm9vdFZpZXdUb1NjcmVlbik6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOgor
ICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGVudGVyRnVsbFNjcmVlbjpd
KToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBmaW5pc2hlZEVudGVy
RnVsbFNjcmVlbkFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlciBleGl0RnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyIGJlZ2FuRXhpdEZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6
XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZmluaXNoZWRFeGl0
RnVsbFNjcmVlbkFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlciBjb21wbGV0ZUZpbmlzaEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uQWZ0ZXJSZXBhaW50
XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgX3N0YXJ0RW50ZXJG
dWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyIF9zdGFydEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0
aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAg
ICAgICgtW1dLUHJpbnRpbmdWaWV3IF9zZXRBdXRvZGlzcGxheTpdKToKKyAgICAgICAgKC1bV0tQ
cmludGluZ1ZpZXcgX2RyYXdQREZEb2N1bWVudDpwYWdlOmF0UG9pbnQ6XSk6CisgICAgICAgICgt
W1dLUHJpbnRpbmdWaWV3IF9kcmF3UHJldmlldzpdKToKKyAgICAgICAgKC1bV0tQcmludGluZ1Zp
ZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1RleHRJbnB1dFdpbmRv
d0NvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLVGV4dElucHV0UGFuZWwgX2ludGVycHJldEtl
eUV2ZW50OnVzaW5nTGVnYWN5Q29jb2FUZXh0SW5wdXQ6c3RyaW5nOl0pOgorICAgICAgICAoLVtX
S1RleHRJbnB1dFBhbmVsIF9oYXNNYXJrZWRUZXh0XSk6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51
UHJveHlNYWM6OnNob3dQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAgICAgIChXZWJLaXQ6OmluaXRp
YWxpemVFdmVudFJlY29yZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpzZW5k
Q29tcGxleFRleHRJbnB1dCk6CisgICAgICAgIChXZWJLaXQ6Om1ha2VDR0xQcmVzZW50TGF5ZXJP
cGFxdWUpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6bnVsbEV2ZW50VGltZXJG
aXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW06Cisg
ICAgICAgICgtW1dLUERGUGx1Z2luQWNjZXNzaWJpbGl0eU9iamVjdCBhY2Nlc3NpYmlsaXR5Rm9j
dXNlZFVJRWxlbWVudF0pOgorICAgICAgICAoLVtXS1BERkxheWVyQ29udHJvbGxlckRlbGVnYXRl
IHdyaXRlSXRlbXNUb1Bhc3RlYm9hcmQ6d2l0aFR5cGVzOl0pOgorICAgICAgICAoV2ViS2l0OjpQ
REZQbHVnaW46OmhhbmRsZUVkaXRpbmdDb21tYW5kKToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1
Z2luOjpzZXRBY3RpdmVBbm5vdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6IGNvbnN0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24u
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90
YXRpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbkNob2ljZUFubm90YXRpb246OmNy
ZWF0ZUFubm90YXRpb25FbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpblRleHRBbm5vdGF0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1
Z2luVGV4dEFubm90YXRpb246OmNyZWF0ZUFubm90YXRpb25FbGVtZW50KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRJbWFnZVRvQml0bWFwKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRHJhZ0NsaWVudDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW06
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpkcmF3UERGUGFnZSk6CisKIDIwMTgtMDktMDEgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDRk5ldHdvcmtdIFVwZGF0ZSBDRk5ldHdvcmsgU1BJ
IHVzZSB0byB1c2UgQ0ZOZXR3b3JrU1BJLmggbW9yZSBjb25zaXN0ZW50bHkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCBiNDEzOWJmNTA4ZmY3OGUyOTI0MjlmYTFlYjVkYzhkZDZhZjI4
MzA4Li45ZTYzMzE1MTczZTMyYTdmNzY5OTdlZDc3NzM2OGZmMjljYmU5MGNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMzIEBACisyMDE4LTA4LTI3ICBHdWlsbGF1
bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgSUdOT1JFX1dB
Uk5JTkdfLiogbWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODg5OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIENhcmJvbi9DYXJib25VdGlscy5tOgorICAgICAgICAoUG9vbENsZWFuZXIpOgor
ICAgICAgICAqIENhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tOgorICAgICAgICAoLVtDYXJi
b25XaW5kb3dBZGFwdGVyIGluaXRXaXRoQ2FyYm9uV2luZG93UmVmOnRha2luZ093bmVyc2hpcDpk
aXNhYmxlT3JkZXJpbmc6Y2FyYm9uOl0pOgorICAgICAgICAoLVtDYXJib25XaW5kb3dBZGFwdGVy
IHNldFZpZXdzTmVlZERpc3BsYXk6XSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIg
cmVjb25jaWxlVG9DYXJib25XaW5kb3dCb3VuZHNdKToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93
QWRhcHRlciBfdGVybVdpbmRvd0lmT3duZXJdKToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93QWRh
cHRlciBfd2luZG93TW92ZWRUb1JlY3Q6XSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0
ZXIgc2V0Q29udGVudFZpZXc6XSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgX2hh
bmRsZVJvb3RCb3VuZHNDaGFuZ2VkXSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIg
X2hhbmRsZUNvbnRlbnRCb3VuZHNDaGFuZ2VkXSk6CisgICAgICAgICogQ2FyYm9uL0NhcmJvbldp
bmRvd0ZyYW1lLm06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0ZyYW1lIHRpdGxlXSk6CisgICAg
ICAgICogQ2FyYm9uL0hJVmlld0FkYXB0ZXIubToKKyAgICAgICAgKCtbSElWaWV3QWRhcHRlciBn
ZXRISVZpZXdGb3JOU1ZpZXc6XSk6CisgICAgICAgICogQ2FyYm9uL0hJV2ViVmlldy5tbToKKyAg
ICAgICAgKG92ZXJyaWRlQ0dDb250ZXh0KToKKyAgICAgICAgKHJlc3RvcmVDR0NvbnRleHQpOgor
ICAgICAgICAoRHJhdyk6CisgICAgICAgICogRE9NL0RPTS5tbToKKyAgICAgICAgKiBIaXN0b3J5
L1dlYkhpc3RvcnkubW06CisgICAgICAgICgtW1dlYkhpc3RvcnlQcml2YXRlIGxvYWRIaXN0b3J5
R3V0c0Zyb21VUkw6c2F2ZWRJdGVtc0NvdW50OmNvbGxlY3REaXNjYXJkZWRJdGVtc0ludG86ZXJy
b3I6XSk6CisgICAgICAgICogSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbToKKyAgICAgICAgKC1b
V2ViSGlzdG9yeUl0ZW0gaWNvbl0pOgorICAgICAgICAqIE1pc2MvV2ViS2l0TlNTdHJpbmdFeHRy
YXMubW06CisgICAgICAgICgtW05TU3RyaW5nIF93ZWJfZHJhd0F0UG9pbnQ6Zm9udDp0ZXh0Q29s
b3I6XSk6CisgICAgICAgICogTWlzYy9XZWJOU0ltYWdlRXh0cmFzLm06CisgICAgICAgICgtW05T
SW1hZ2UgX3dlYl9zY2FsZVRvTWF4U2l6ZTpdKToKKyAgICAgICAgKC1bTlNJbWFnZSBfd2ViX2Rp
c3NvbHZlVG9GcmFjdGlvbjpdKToKKyAgICAgICAgKiBNaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJh
cy5tbToKKyAgICAgICAgKCtbTlNQYXN0ZWJvYXJkIF93ZWJfc2V0RmluZFBhc3RlYm9hcmRTdHJp
bmc6d2l0aE93bmVyOl0pOgorICAgICAgICAoLVtOU1Bhc3RlYm9hcmQgX3dlYl9kZWNsYXJlQW5k
V3JpdGVEcmFnSW1hZ2VGb3JFbGVtZW50OlVSTDp0aXRsZTphcmNoaXZlOnNvdXJjZTpdKToKKyAg
ICAgICAgKiBQYW5lbHMvV2ViQXV0aGVudGljYXRpb25QYW5lbC5tOgorICAgICAgICAoLVtXZWJB
dXRoZW50aWNhdGlvblBhbmVsIGxvYWROaWJdKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBs
dWdpbkhvc3RNYW5hZ2VyOjpzcGF3blBsdWdpbkhvc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXRz
Y2FwZVBsdWdpbkhvc3RNYW5hZ2VyOjpkaWRDcmVhdGVXaW5kb3cpOgorICAgICAgICAqIFBsdWdp
bnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpO
ZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6bWFrZUN1cnJlbnRQcm9jZXNzRnJvbnRQcm9jZXNzKToK
KyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHk6Om1ha2VQbHVnaW5Ib3N0
UHJvY2Vzc0Zyb250UHJvY2VzcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1
Z2luSG9zdFByb3h5Ojppc1BsdWdpbkhvc3RQcm9jZXNzRnJvbnRQcm9jZXNzIGNvbnN0KToKKyAg
ICAgICAgKiBQbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6bW91c2VFdmVudCk6
CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1t
OgorICAgICAgICAoLVtXZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcgZHJhd1JlY3Q6XSk6Cisg
ICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvV2ViVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tOgor
ICAgICAgICAoLVtXZWJUZXh0SW5wdXRQYW5lbCBfaW50ZXJwcmV0S2V5RXZlbnQ6c3RyaW5nOl0p
OgorICAgICAgICAqIFBsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAg
ICAgKC1bV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldyBjb252ZXJ0RnJvbVg6YW5kWTpzcGFjZTp0
b1g6YW5kWTpzcGFjZTpdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luUGFj
a2FnZS5tbToKKyAgICAgICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlIF90cnlMb2FkXSk6
CisgICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgt
W1dlYk5ldHNjYXBlUGx1Z2luVmlldyBzYXZlQW5kU2V0TmV3UG9ydFN0YXRlRm9yVXBkYXRlOl0p
OgorICAgICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpblZpZXcgc2VuZERyYXdSZWN0RXZlbnQ6XSk6
CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1Z2luVmlldyBkcmF3UmVjdDpdKToKKyAgICAgICAg
KiBQbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW06CisgICAgICAgIChXZWJLaXRfVFNVcGRh
dGVDaGVja19hbGVydERpZEVuZF9yZXR1cm5Db2RlX2NvbnRleHRJbmZvXyk6CisgICAgICAgIChX
ZWJLaXRfTlNBbGVydF9iZWdpblNoZWV0TW9kYWxGb3JXaW5kb3dfbW9kYWxEZWxlZ2F0ZV9kaWRF
bmRTZWxlY3Rvcl9jb250ZXh0SW5mb18pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVw
TWVudU1hYy5tbToKKyAgICAgICAgKFBvcHVwTWVudU1hYzo6cG9wdWxhdGUpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW06CisgICAgICAgIChXZWJEcmFnQ2xpZW50Ojpz
dGFydERyYWcpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VM
b2FkVG9Eb3dubG9hZCk6CisgICAgICAgICh3ZWJHZXROU0ltYWdlKToKKyAgICAgICAgKiBXZWJJ
bnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKiBXZWJJbnNwZWN0b3IvV2Vi
Tm9kZUhpZ2hsaWdodFZpZXcubW06CisgICAgICAgICgtW1dlYk5vZGVIaWdobGlnaHRWaWV3IGRy
YXdSZWN0Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViQ2xpcFZpZXcubW06CisgICAgICAgICgt
W1dlYkNsaXBWaWV3IGluaXRXaXRoRnJhbWU6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJGcmFt
ZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgX3VwZGF0ZUJhY2tncm91bmRBbmRVcGRhdGVzV2hp
bGVPZmZzY3JlZW5dKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2RyYXdSZWN0OmNvbnRlbnRzT25s
eTpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgYWNjZXNzaWJpbGl0eVJvb3RdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tOgorICAgICAgICAoLVtXZWJGdWxs
U2NyZWVuQ29udHJvbGxlciBlbnRlckZ1bGxTY3JlZW46XSk6CisgICAgICAgICgtW1dlYkZ1bGxT
Y3JlZW5Db250cm9sbGVyIGZpbmlzaGVkRW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uOl0pOgorICAg
ICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBleGl0RnVsbFNjcmVlbl0pOgorICAgICAg
ICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBmaW5pc2hlZEV4aXRGdWxsU2NyZWVuQW5pbWF0
aW9uOl0pOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBfc3RhcnRFbnRlckZ1
bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246XSk6CisgICAgICAgICgtW1dlYkZ1bGxTY3Jl
ZW5Db250cm9sbGVyIF9zdGFydEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOl0p
OgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW05TV2luZG93
IF93ZWJfYm9yZGVyVmlld10pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfdXBkYXRlTW91c2Vv
dmVyV2l0aEZha2VFdmVudF0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfc2V0QXNpZGVTdWJ2
aWV3c10pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfYXV0b3Njcm9sbF0pOgorICAgICAgICAo
LVtXZWJIVE1MVmlldyBkcmF3UmVjdDpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgbW91c2VE
b3duOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBtb3VzZURyYWdnZWQ6XSk6CisgICAgICAg
ICgtW1dlYkhUTUxWaWV3IG1vdXNlVXA6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9lbmRQ
cmludE1vZGVBbmRSZXN0b3JlV2luZG93QXV0b2Rpc3BsYXldKToKKyAgICAgICAgKC1bV2ViSFRN
TFZpZXcga25vd3NQYWdlUmFuZ2U6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2Vzc2li
aWxpdHlIaXRUZXN0Ol0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfZm9udEF0dHJpYnV0ZXNG
cm9tRm9udFBhc3RlYm9hcmRdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2NvbG9yQXNTdHJp
bmc6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGNvcHlGb250Ol0pOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBfZXhlY3V0ZVNhdmVkS2V5cHJlc3NDb21tYW5kc10pOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBhdHRhY2hSb290TGF5ZXI6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHRl
eHRTdG9yYWdlXSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVTZWxlY3Rpb25Gb3JJ
bnB1dE1hbmFnZXJdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAg
IChfYXBwbGljYXRpb25JbmZvRm9yTUlNRVR5cGUpOgorICAgICAgICAoLVtXZWJQREZWaWV3IGNl
bnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWE6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX3Jl
Y3Vyc2l2ZURpc3BsYXlSZWN0SWZOZWVkZWRJZ25vcmluZ09wYWNpdHk6aXNWaXNpYmxlUmVjdDpy
ZWN0SXNWaXNpYmxlUmVjdEZvclZpZXc6dG9wVmlldzpdKToKKyAgICAgICAgKC1bV2ViUERGVmll
dyBfcmVjdXJzaXZlRGlzcGxheUFsbERpcnR5V2l0aExvY2tGb2N1czp2aXNSZWN0Ol0pOgorICAg
ICAgICAoLVtXZWJQREZWaWV3IF9yZWN1cnNpdmU6ZGlzcGxheVJlY3RJZ25vcmluZ09wYWNpdHk6
aW5Db250ZXh0OnRvcFZpZXc6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgc2VhcmNoRm9yOmRp
cmVjdGlvbjpjYXNlU2Vuc2l0aXZlOndyYXA6c3RhcnRJblNlbGVjdGlvbjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2Vi
VGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9idWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRD
b21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQb3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW06CisgICAgICAgICogV2ViVmlldy9X
ZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tOgorICAgICAgICAoY3JlYXRl
TWVkaWFVSUJhY2tncm91bmRWaWV3KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dlYlRleHRMaXN0VG91Y2hCYXJWaWV3Q29udHJvbGxlciBpbml0V2l0aFdlYlZp
ZXc6XSk6CisgICAgICAgICgtW1dlYlZpZXcgX2Rpc3BhdGNoVGlsZURpZERyYXc6XSk6CisgICAg
ICAgICgtW1dlYlZpZXcgZW5jb2RlV2l0aENvZGVyOl0pOgorICAgICAgICAoLVtXZWJWaWV3IG1h
aW5GcmFtZUljb25dKToKKyAgICAgICAgKExheWVyRmx1c2hDb250cm9sbGVyOjpmbHVzaExheWVy
cyk6CisgICAgICAgICogV2ViVmlldy9XZWJXaW5kb3dBbmltYXRpb24ubW06CisgICAgICAgIChz
ZXRTY2FsZWRGcmFtZUZvcldpbmRvdyk6CisKIDIwMTgtMDktMDEgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDRk5ldHdvcmtdIFVwZGF0ZSBDRk5ldHdvcmsgU1BJ
IHVzZSB0byB1c2UgQ0ZOZXR3b3JrU1BJLmggbW9yZSBjb25zaXN0ZW50bHkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggMTYzNjQ2OTYzODlkZWM5
MGUwNTBlZDIwMDBlYWU3MmMxZDc5MjEzYS4uYjQ2ZmQzMGE4ODdjMmMwMjYyYTY4ZTNjOThmYjBh
Y2FhMWExNzdmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2Jq
ZWN0LmgKQEAgLTE1OCwxOCArMTU4LDkgQEAgcHVibGljOgogICAgIHZvaWQqIGdldFByaXZhdGUo
KTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZml4IHRoZSB3YXJuaW5ncyBmb3IgZXh0ZXJu
LXRlbXBsYXRlIGluIEpTT2JqZWN0IHRlbXBsYXRlIGNsYXNzZXM6IGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5NzkKLSNpZiBDT01QSUxFUihDTEFORykKLSNpZiBf
X2hhc193YXJuaW5nKCItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiKQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZGVm
aW5lZC12YXItdGVtcGxhdGUiCi0jZW5kaWYKLSNlbmRpZgorICAgIElHTk9SRV9DTEFOR19XQVJO
SU5HX0JFR0lOKCItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiKQogICAgIERFQ0xBUkVfSU5GTzsK
LSNpZiBDT01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3VuZGVmaW5lZC12YXIt
dGVtcGxhdGUiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCi0jZW5kaWYK
KyAgICBJR05PUkVfQ0xBTkdfV0FSTklOR19FTkQKIAogICAgIEpTQ2xhc3NSZWYgY2xhc3NSZWYo
KSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNrT2JqZWN0RGF0YS0+anNDbGFzczsgfQogICAgIGJv
b2wgaW5oZXJpdHMoSlNDbGFzc1JlZikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
dGVzdHMvdGVzdGFwaS5jCmluZGV4IDNmYzg2MTIxOWEzMDg0NWFhOGJlODY0NDYwNThhZmIzZjYy
MDdhZDkuLjU3N2I4MjIzYTcxNTk0Mjk2Y2RkYjJkM2M2ODgyMTdmYjYzOTY1MmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCkBAIC0xMTQwLDEwICsxMTQwLDcg
QEAgc3RhdGljIGJvb2wgZ2xvYmFsQ29udGV4dE5hbWVUZXN0KCkKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUi
Ci0jZW5kaWYKK0lHTk9SRV9HQ0NfV0FSTklOR19CRUdJTigiLVd1bnVzZWQtYnV0LXNldC12YXJp
YWJsZSIpCiBzdGF0aWMgdm9pZCBjaGVja0NvbnN0bmVzc0luSlNPYmplY3ROYW1lcygpCiB7CiAg
ICAgSlNTdGF0aWNGdW5jdGlvbiBmdW47CkBAIC0xMTUxLDkgKzExNDgsNyBAQCBzdGF0aWMgdm9p
ZCBjaGVja0NvbnN0bmVzc0luSlNPYmplY3ROYW1lcygpCiAgICAgSlNTdGF0aWNWYWx1ZSB2YWw7
CiAgICAgdmFsLm5hbWUgPSAic29tZXRoaW5nIjsKIH0KLSNpZiBDT01QSUxFUihHQ0MpCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitJR05PUkVfR0NDX1dBUk5JTkdfRU5ECiAK
ICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCmluZGV4IDU1OTkwOGFkZDAzZGUyMTVhYTYwYWY3Mjgw
OWZhMzNlMWM5ZDk3YTkuLmUxOTRlYzcxZjVkYjA1N2QxOGM5NDY4NWFiNTNiOGY2OGM1Y2NhNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCkBAIC0y
NjMsMTUgKzI2MywxMSBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8UHRyVGFnIHRhZywgdHlwZW5h
bWUuLi4gQXJncz4KICAgICBDb2RlUmVmPHRhZz4gZmluYWxpemVDb2RlV2l0aERpc2Fzc2VtYmx5
KGNvbnN0IGNoYXIqIGZvcm1hdCwgQXJncy4uLiBhcmdzKQogICAgIHsKLSNpZiBDT01QSUxFUihH
Q0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtc2VjdXJpdHkiCi0jZW5kaWYKKyAgICAgICAgQUxMT1df
Tk9OTElURVJBTF9GT1JNQVRfQkVHSU4KKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1X
Zm9ybWF0LXNlY3VyaXR5IikKICAgICAgICAgcmV0dXJuIGZpbmFsaXplQ29kZVdpdGhEaXNhc3Nl
bWJseUltcGwoZm9ybWF0LCBhcmdzLi4uKS50ZW1wbGF0ZSByZXRhZ2dlZDx0YWc+KCk7Ci0jaWYg
Q09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRp
ZgorICAgICAgICBJR05PUkVfV0FSTklOR19FTkQKKyAgICAgICAgQUxMT1dfTk9OTElURVJBTF9G
T1JNQVRfRU5ECiAgICAgfQogCiAgICAgdGVtcGxhdGU8UHRyVGFnIHRhZz4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKaW5kZXggMmNkYjcyNDNkMzRlMjdlNTc2MWM5
MzQ5MzVjZTU1MTgxNGQ1YjYyYS4uYjA4N2YzMmIzMDcyZTFhMjYyYmU0ZGE0NDBjZmY5YjBjZDYy
OWJjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKQEAgLTYy
LDEwICs2Miw5IEBACiAjaW5jbHVkZSA8d3RmL0luZGV4U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xp
c3REdW1wLmg+CiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
cmV0dXJuLXR5cGUiCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQK
KyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9CRUdJTgorI2VuZGlmCiAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCkBAIC0zNTI3LDggKzM1MjYsOCBAQCB2
b2lkIGxvd2VyVG9BaXIoUHJvY2VkdXJlJiBwcm9jZWR1cmUpCiAKIH0gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpCMwogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElT
QUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9FTkQKKyNlbmRp
ZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM09wY29kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNv
ZGUuY3BwCmluZGV4IDdlYmY2NmI3MGE0NTBjOTJhZTE1NDlkNTI2NGJjOTkwZGExYmVjMTQuLmUy
MGU2OWQ1YTkzNDNlN2RjOGFjNTU5YTA5ZjNlNTQ0ZTgwZTgxMWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzT3Bjb2RlLmNwcApAQCAtMzAsMTAgKzMwLDkgQEAKIAogI2luY2x1ZGUgPHd0Zi9Q
cmludFN0cmVhbS5oPgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV3JldHVybi10eXBlIgotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FC
TEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfQkVHSU4KKyNlbmRp
ZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIApAQCAtMzczLDggKzM3Miw4IEBA
IHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBPcGNvZGUgb3Bjb2RlKQogCiB9
IC8vIG5hbWVzcGFjZSBXVEYKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVE
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYg
QVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVf
RU5ECisjZW5kaWYKIAogI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNUeXBlLmgKaW5kZXggNGNlYWE4YTFkZjE0YjhiNmI2OGUwZTgwYmZlYjZhOWUwYTJkOGU4Mi4u
ODYwN2IzMjhlMTg0NzhjYmIzNTI3MWQwMmViNWY1N2JiNTM4YjM1MCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1R5cGUuaApAQCAtMzAsMTAgKzMwLDkgQEAKICNpbmNsdWRlICJCM0NvbW1vbi5oIgog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNT
RVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0Mp
ICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9U
WVBFX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAg
LTg3LDggKzg2LDggQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwgSlNDOjpCMzo6
VHlwZSk7CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NF
UlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElM
RVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9S
RVRVUk5fVFlQRV9FTkQKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGVNYXAuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1R5cGVNYXAuaAppbmRleCBjMGVhNDEzMDQ4YTU1NTZmNWRjMzQ1OGQz
ODQwZTVmYjViOTlkNmQxLi40NDU2OGFiMzM2ZjAxYzM2YjQzYTMxOTE4NWRjMGUxM2Q4OTEwZDQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNUeXBlTWFwLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVHlwZU1hcC5oCkBAIC0zMCwxMCArMzAsOSBAQAog
I2luY2x1ZGUgIkIzVHlwZS5oIgogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogCi0jaWYg
Q09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2Vu
ZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FC
TEVECitJR05PUkVfUkVUVVJOX1RZUEVfQkVHSU4KKyNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIEIzIHsKIApAQCAtMTAxLDggKzEwMCw4IEBAIHByaXZhdGU6CiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpCMwogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBB
U1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9F
TkQKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dpZHRoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNXaWR0aC5oCmluZGV4IGUzNjU4M2Y2OTRiODgzZmIyYjg4OWQwMTMxMDgzNGEwNTMxY2ZjNDcu
LjRlNzY1OGNlYzFhNTkwMzU3OTUwY2Y1MTg2MjQxOGY5NDg1ODEwNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dpZHRoLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzV2lkdGguaApAQCAtMzAsMTAgKzMwLDkgQEAKICNpbmNsdWRlICJCM0JhbmsuaCIK
ICNpbmNsdWRlICJCM1R5cGUuaCIKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FC
TEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VS
VF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lO
CisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTE0Myw5ICsx
NDIsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBKU0M6OkIzOjpXaWR0aCk7
CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElT
QUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0ND
KSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5f
VFlQRV9FTkQKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwCmluZGV4IGY5ZTQ2OWMwNDdjYmViMzg3MTc3NzUx
YzQ5Yzc2NmM1NzllNjg1MzkuLmRiZTJhMzM3YTg1OTBkZDEzNWZiOGM2ZGNhN2EzZGRmODAwNTA2
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKQEAgLTM0LDEwICsz
NCw5IEBACiAjaW5jbHVkZSAiRlBSSW5mby5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKIAotI2lm
IENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNl
bmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNB
QkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCkBAIC0zNzksOCArMzc4LDggQEAgdm9p
ZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEFyZzo6U2lnbmVkbmVzcyBzaWduZWRu
ZXNzKQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJU
X0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVS
KEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVU
VVJOX1RZUEVfRU5ECisjZW5kaWYKIAogI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAppbmRleCA4MzhmY2E4OTIxMjcxYzFiMDc3OGIyNWQ0
NTA1NzlkZTQzNzk1NzY3Li40NmVmZTlkMjM4YzkwYjA1ZDk0ZGU4OGViNDZmMTI4NDY3NTVlY2Jh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKQEAgLTM1LDEwICszNSw5IEBA
CiAjaW5jbHVkZSAiQjNXaWR0aC5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCi0jaWYg
Q09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2Vu
ZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FC
TEVECitJR05PUkVfUkVUVVJOX1RZUEVfQkVHSU4KKyNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIEIzIHsKIApAQCAtMTQ5NCw4ICsxNDkzLDggQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
SGFzaFRyYWl0czxKU0M6OkIzOjpBaXI6OkFyZz4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlND
OjpCMzoKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VS
VF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAvLyBDT01QSUxF
UihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JF
VFVSTl9UWVBFX0VORAorI2VuZGlmCiAKICNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAppbmRleCA3NTk3MDMwZmRjZjA0MmJmYzNkOGRl
YTIyODFiOWViMjhiYTI1NDM1Li43YjhkZDNlNmRmYWRhOTU3OWZiN2JiYWM5OWU4NjRmYTgxYzE5
MjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaApAQCAtNDQsMTAgKzQ0
LDkgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIGNsYXNzIFByb2NlZHVyZTsK
IAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlw
ZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VS
VF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNl
IEFpciB7CiAKQEAgLTM4OCw4ICszODcsOCBAQCBwcml2YXRlOgogCiB9IH0gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpCMzo6QWlyCiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAot
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFT
U0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0VO
RAorI2VuZGlmCiAKICNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL09wY29kZS5oCmluZGV4IDA3ZDlhNzMxNGVlYjEwOWM3MzEyMzdkNGJlMzI3MTMx
YjExYzk0ZWUuLjM4YWQ1MTA1N2Q4OTg3ODkyNDFjOWFhYmIyNDZjMTBlNjk3ZGIwNTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKQEAgLTc0LDE4ICs3NCwxMyBAQCBj
b25zdCBpbnQgbnVtT3Bjb2RlSURzID0gTlVNQkVSX09GX0JZVEVDT0RFX0lEUyArIE5VTUJFUl9P
Rl9CWVRFQ09ERV9IRUxQRVJfSURTOwogICAgIGNvbnN0IGludCBvcGNvZGVMZW5ndGhzW251bU9w
Y29kZUlEc10gPSB7IEZPUl9FQUNIX09QQ09ERV9JRChPUENPREVfSURfTEVOR1RIX01BUCkgfTsK
ICN1bmRlZiBPUENPREVfSURfTEVOR1RIX01BUAogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
dHlwZS1saW1pdHMiCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0JFR0lOKCItV3R5cGUtbGltaXRz
IikKIAogI2RlZmluZSBWRVJJRllfT1BDT0RFX0lEKGlkLCBzaXplKSBDT01QSUxFX0FTU0VSVChp
ZCA8PSBudW1PcGNvZGVJRHMsIEFTU0VSVF9USEFUX0pTX09QQ09ERV9JRFNfQVJFX1ZBTElEKTsK
ICAgICBGT1JfRUFDSF9PUENPREVfSUQoVkVSSUZZX09QQ09ERV9JRCk7CiAjdW5kZWYgVkVSSUZZ
X09QQ09ERV9JRAogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
b3AKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdfRU5ECiAKICNpZiBFTkFCTEUoQ09NUFVURURfR09U
T19PUENPREVTKQogdHlwZWRlZiB2b2lkKiBPcGNvZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGJkMThmOWRmOWI3ZTg1MzA5MjNl
ZGY2ZTBiNDEwOGY2ZDI5N2EwNjcuLjU4OTRiNTY3NzJkYWExYmU0MDQxMzg2ZWNhMDU5NDczNDMx
ZTU4MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCkBAIC05NjU3LDE0ICs5NjU3LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3Vs
YXRlTnVtYmVyKEVkZ2UgZWRnZSkKICAgICAgICAgSlNWYWx1ZVJlZ3MoZ3ByKSwgZWRnZSwgU3Bl
Y0J5dGVjb2RlTnVtYmVyLAogICAgICAgICBtX2ppdC5icmFuY2hJZk5vdE51bWJlcihncHIpKTsK
ICNlbHNlCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZW51bS1jb21wYXJlIgot
I2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XZW51bS1jb21wYXJlIikKICAgICBz
dGF0aWNfYXNzZXJ0KEpTVmFsdWU6OkludDMyVGFnID49IEpTVmFsdWU6Okxvd2VzdFRhZywgIklu
dDMyVGFnIGlzIGluY2x1ZGVkIGluID49IEpTVmFsdWU6Okxvd2VzdFRhZyByYW5nZS4iKTsKLSNp
ZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2Vu
ZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfRU5ECiAgICAgR1BSUmVnIHRhZ0dQUiA9IHZhbHVlLnRh
Z0dQUigpOwogICAgIERGR19UWVBFX0NIRUNLKAogICAgICAgICB2YWx1ZS5qc1ZhbHVlUmVncygp
LCBlZGdlLCB+U3BlY0ludDMyT25seSwKQEAgLTEwMTcxLDE0ICsxMDE2Niw5IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1pc2MoRWRnZSBlZGdlLCBKU1ZhbHVlUmVncyByZWdzKQog
ICAgICAgICByZWdzLCBlZGdlLCBTcGVjTWlzYywKICAgICAgICAgbV9qaXQuYnJhbmNoNjQoTWFj
cm9Bc3NlbWJsZXI6OkFib3ZlLCByZWdzLmdwcigpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTY0KFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0JpdEJvb2wgfCBUYWdCaXRVbmRlZmluZWQpKSk7CiAj
ZWxzZQotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2VudW0tY29tcGFyZSIKLSNl
bmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0JFR0lOKCItV2VudW0tY29tcGFyZSIpCiAgICAgc3Rh
dGljX2Fzc2VydChKU1ZhbHVlOjpJbnQzMlRhZyA+PSBKU1ZhbHVlOjpVbmRlZmluZWRUYWcsICJJ
bnQzMlRhZyBpcyBpbmNsdWRlZCBpbiA+PSBKU1ZhbHVlOjpVbmRlZmluZWRUYWcgcmFuZ2UuIik7
Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AK
LSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0VORAogICAgIERGR19UWVBFX0NIRUNLKAogICAg
ICAgICByZWdzLCBlZGdlLCB+U3BlY0ludDMyT25seSwKICAgICAgICAgbV9qaXQuYnJhbmNoSWZJ
bnQzMihyZWdzLnRhZ0dQUigpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCA3ZTFjYmNmOGVkOTY1ZWNjOWE2Y2E4NjRkNWI4
N2ZlMWI3NDVkN2ViLi41ZjdmNDJmMGUyNzczM2IwOGZmNmFmNDI2ZjUyYTIwM2FhZWI0ZTdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKQEAgLTg3NiwxMiArODc2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9k
ZSogbm9kZSkKIAogLy8gQ2xhbmcgc2hvdWxkIGFsbG93IHVucmVhY2hhYmxlIFtbY2xhbmc6OmZh
bGx0aHJvdWdoXV0gaW4gdGVtcGxhdGUgZnVuY3Rpb25zIGlmIGFueSB0ZW1wbGF0ZSBleHBhbnNp
b24gdXNlcyBpdAogLy8gaHR0cDovL2xsdm0ub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTE4NjE5
Ci0jaWYgQ09NUElMRVIoQ0xBTkcpICYmIGRlZmluZWQoX19oYXNfd2FybmluZykKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jaWYgX19oYXNfd2FybmluZygiLVdpbXBsaWNpdC1mYWxs
dGhyb3VnaCIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdpbXBsaWNpdC1m
YWxsdGhyb3VnaCIKLSNlbmRpZgotI2VuZGlmCitJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigi
LVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIpCiB0ZW1wbGF0ZTxib29sIHN0cmljdD4KIEdQUlJlZyBT
cGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMySW50ZXJuYWwoRWRnZSBlZGdlLCBEYXRh
Rm9ybWF0JiByZXR1cm5Gb3JtYXQpCiB7CkBAIC0xMDEyLDkgKzEwMDcsNyBAQCBHUFJSZWcgU3Bl
Y3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJbnQzMkludGVybmFsKEVkZ2UgZWRnZSwgRGF0YUZv
cm1hdCYgcmV0dXJuRgogICAgICAgICByZXR1cm4gSW52YWxpZEdQUlJlZzsKICAgICB9CiB9Ci0j
aWYgQ09NUElMRVIoQ0xBTkcpICYmIGRlZmluZWQoX19oYXNfd2FybmluZykKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAKIEdQ
UlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMyKEVkZ2UgZWRnZSwgRGF0YUZv
cm1hdCYgcmV0dXJuRm9ybWF0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExPdXRwdXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgK
aW5kZXggOWY1OTM2OWM4OWJlNTdlNmVlNzc5ZTExNmYzN2ZlNmMyYjdlOTcwZi4uNWEzN2QwM2Zh
ODY0ZjI1NWEzYzYxOTYxMjI0NDJiMWY4NzI5ZDY0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTE91dHB1dC5oCkBAIC01MCwxMSArNTAsOCBAQAogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmlu
dFN0cmVhbS5oPgogCiAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgb25jZSBldmVyeXRoaW5nIGNhbiBi
ZSBnZW5lcmF0ZWQgdGhyb3VnaCBCMy4KLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdtaXNzaW5nLW5vcmV0dXJuIgotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vu
dXNlZC1wYXJhbWV0ZXIiCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDX09SX0NMQU5HKQorSUdOT1JF
X1dBUk5JTkdfQkVHSU4oIi1XbWlzc2luZy1ub3JldHVybiIpCitBTExPV19VTlVTRURfUEFSQU1F
VEVSX0JFR0lOCiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC01MDAsOSArNDk3LDggQEAgaW5saW5l
IHZvaWQgT3V0cHV0OjphZGRJbmNvbWluZ1RvUGhpKExWYWx1ZSBwaGksIFZhbHVlRnJvbUJsb2Nr
IHZhbHVlLCBQYXJhbXMuLi4KICAgICBhZGRJbmNvbWluZ1RvUGhpKHBoaSwgdGhlUmVzdC4uLik7
CiB9CiAKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQ19PUl9DTEFORykKK0FMTE9XX1VOVVNFRF9QQVJB
TUVURVJfRU5ECitJR05PUkVfV0FSTklOR19FTkQKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZU
TAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCAxZDhlM2Jl
ZTliNmJkNjdlNzA5MzQ3NTUzNmQyYmQ1N2QxZjMxODNmLi5lOTY5MjExMWJkMTBhYWE4NWUwM2Qw
ZTUwZjk3OTE0MDkzY2EwMzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0NDYWxsSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxw
ZXJzLmgKQEAgLTMyOSwxNCArMzI5LDkgQEAgcHJpdmF0ZToKIAogICAgICAgICBjdXJyZW50R1BS
QXJndW1lbnQgKz0gZXh0cmFHUFJBcmdzOwogICAgICAgICBjdXJyZW50RlBSQXJndW1lbnQgLT0g
bnVtQ3Jvc3NTb3VyY2VzOwotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3R5cGUt
bGltaXRzIgotI2VuZGlmCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0JFR0lOKCItV3R5cGUtbGlt
aXRzIikKICAgICAgICAgQVNTRVJUKGN1cnJlbnRHUFJBcmd1bWVudCA+PSBHUFJJbmZvOjpudW1i
ZXJPZkFyZ3VtZW50UmVnaXN0ZXJzIHx8IGN1cnJlbnRGUFJBcmd1bWVudCA+PSBGUFJJbmZvOjpu
dW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKTsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgICAgIElHTk9SRV9XQVJOSU5H
X0VORAogCiAgICAgICAgIHVuc2lnbmVkIHBva2VPZmZzZXQgPSBQT0tFX0FSR1VNRU5UX09GRlNF
VCArIGV4dHJhUG9rZTsKICAgICAgICAgcG9rZU9mZnNldCArPSBzdGQ6Om1heChjdXJyZW50R1BS
QXJndW1lbnQsIG51bWJlck9mR1BBcmd1bWVudFJlZ2lzdGVycykgLSBudW1iZXJPZkdQQXJndW1l
bnRSZWdpc3RlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnREYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCmlu
ZGV4IGM5M2QxNWM3NGM1OGZmNWQ5NmFhMGFhZDk0MzQxM2YwODVhM2Q5MmUuLjQ4NDQwYmQxNjgz
MTY0MzEwZDViODJjMTFlNjkwOTIyMmJiMWY3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludERhdGEuY3BwCkBAIC02NywxMCArNjcsNyBAQCB2b2lkIGluaXRpYWxpemUoKQog
I2VuZGlmIC8vIEVOQUJMRShKSVQpCiB9CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdtaXNzaW5nLW5vcmV0dXJuIgotI2VuZGlmCitJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigi
LVdtaXNzaW5nLW5vcmV0dXJuIikKIHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0mIHZt
KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0xOTksOCArMTk2LDYgQEAgdm9pZCBEYXRh
OjpwZXJmb3JtQXNzZXJ0aW9ucyhWTSYgdm0pCiAgICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6
OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOwogICAgIH0K
IH0KLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNl
bmRpZgorSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpM
TEludApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1Bh
dGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAK
aW5kZXggMjg0MzMwNWIzMDZhMThkZDk0OGE3ZTFkOWVjMDEwNDEzYmQ4NjFhYi4uNGFlYmQ2OTRh
MDE3ZTFkNjBlYTBlZWY3ZjMyNmY1NzRmYmNkNmY3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC0yMDUsMTYgKzIwNSwxMiBAQCB2b2lk
IHNsb3dQYXRoTG4oY29uc3QgVHlwZXMmLi4uIHZhbHVlcykKIHRlbXBsYXRlPHR5cGVuYW1lLi4u
IFR5cGVzPgogdm9pZCBzbG93UGF0aExvZ0YoY29uc3QgY2hhciogZm9ybWF0LCBjb25zdCBUeXBl
cyYuLi4gdmFsdWVzKQogewotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1h
dC1ub25saXRlcmFsIgotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1z
ZWN1cml0eSIKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lOCisgICAg
SUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XZm9ybWF0LXNlY3VyaXR5IikKICAgICBpZiAoT3B0aW9u
czo6dHJhY2VMTEludFNsb3dQYXRoKCkpCiAgICAgICAgIGRhdGFMb2dGKGZvcm1hdCwgdmFsdWVz
Li4uKTsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHBvcAotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfRU5ECisgICAgQUxMT1dfTk9OTElURVJB
TF9GT1JNQVRfRU5ECiB9CiAKICNlbHNlIC8vIG5vdCBMTElOVF9UUkFDSU5HCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25maWdGaWxlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCmluZGV4IDk4YzE5NmY4MmY2ODUx
YmRmNzBlZjhkNjIyM2I1YTE2OTEyOTM2MmYuLjE0MDE3ZDRkM2Q4MWYxZjUzYjg4MTI2ZTJlYjU5
OGNmYTZhZGJkOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bmZpZ0ZpbGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0Zp
bGUuY3BwCkBAIC00OTEsMTQgKzQ5MSwxMyBAQCB2b2lkIENvbmZpZ0ZpbGU6OmNhbm9uaWNhbGl6
ZVBhdGhzKCkKICAgICAgICAgICAgICAgICAgICAgc3RybmNhdChmaWxlbmFtZUJ1ZmZlciwgIi8i
LCAyKTsgLy8gUm9vbSBmb3IgJy8nIHBsdXMgTlVMCiAjaWYgQ09NUElMRVIoR0NDKQogI2lmIEdD
Q19WRVJTSU9OX0FUX0xFQVNUKDgsIDAsIDApCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdzdHJpbmdvcC10cnVuY2F0aW9uIgor
ICAgICAgICAgICAgICAgIElHTk9SRV9HQ0NfV0FSTklOR19CRUdJTigiLVdzdHJpbmdvcC10cnVu
Y2F0aW9uIikKICNlbmRpZgogI2VuZGlmCiAgICAgICAgICAgICAgICAgc3RybmNhdChmaWxlbmFt
ZUJ1ZmZlciwgbV9maWxlbmFtZSwgc2l6ZW9mKGZpbGVuYW1lQnVmZmVyKSAtIHN0cmxlbihmaWxl
bmFtZUJ1ZmZlcikgLSAxKTsKICNpZiBDT01QSUxFUihHQ0MpCiAjaWYgR0NDX1ZFUlNJT05fQVRf
TEVBU1QoOCwgMCwgMCkKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAg
ICAgSUdOT1JFX0dDQ19XQVJOSU5HX0VORAogI2VuZGlmCiAjZW5kaWYKICAgICAgICAgICAgICAg
ICBzdHJuY3B5KG1fZmlsZW5hbWUsIGZpbGVuYW1lQnVmZmVyLCBzX21heFBhdGhMZW5ndGgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlld1Byb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90
eXBlLmNwcAppbmRleCBmMDVjZmY1Zjg4YTU1MWMzYTdjNGJhYWQyZjAzYzViNDc3ODlhZjZkLi40
Mzk2NjBkY2FjNGQzMmJmODdkZWNjZjcxNjkyNTYwYjczYTQ1NmExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcApAQCAt
MjA4LDEwICsyMDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBzZXREYXRhKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi0jaWYgQ09N
UElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbWlzc2luZy1wcm90b3R5cGVzIgotI2VuZGlmCitJR05P
UkVfQ0xBTkdfV0FSTklOR19CRUdJTigiLVdtaXNzaW5nLXByb3RvdHlwZXMiKQogCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9HZXR0ZXJCdWZmZXIoRXhlY1N0YXRl
KiBleGVjKQogewpAQCAtMzI4LDggKzMyNSw2IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRGbG9hdDY0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBy
ZXR1cm4gc2V0RGF0YTxGbG9hdDY0QWRhcHRvcj4oZXhlYyk7CiB9Ci0jaWYgQ09NUElMRVIoQ0xB
TkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9DTEFOR19X
QVJOSU5HX0VORAogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29u
c3RydWN0b3IuaAppbmRleCA4YWNmZDQ4ZTIzZmZkOTZjYmNiMmZiYjdiZjcxMmY3ODA4ZjVhNDQw
Li4zMGY3NjVmNThlYjQ4NjM3ZGE2MGQzNTc1Njk4ZjlhMWIwYWE3NjkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCkBAIC00MywxOSArNDMsMTAgQEAgcHVibGljOgogICAg
ICAgICBWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNPYmplY3QqIHByb3RvdHlw
ZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBGdW5jdGlvbkV4ZWN1dGFibGUqIHByaXZhdGVBbGxvY2F0
b3IpOwogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBmaXggdGhlIHdhcm5pbmdzIGZvciBleHRl
cm4tdGVtcGxhdGUgaW4gSlNPYmplY3QgdGVtcGxhdGUgY2xhc3NlczogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTk3OQotI2lmIENPTVBJTEVSKENMQU5HKQotI2lm
IF9faGFzX3dhcm5pbmcoIi1XdW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIpCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5k
ZWZpbmVkLXZhci10ZW1wbGF0ZSIKLSNlbmRpZgotI2VuZGlmCisgICAgSUdOT1JFX0NMQU5HX1dB
Uk5JTkdfQkVHSU4oIi1XdW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIpCiAgICAgREVDTEFSRV9JTkZP
OwotI2lmIENPTVBJTEVSKENMQU5HKQotI2lmIF9faGFzX3dhcm5pbmcoIi1XdW5kZWZpbmVkLXZh
ci10ZW1wbGF0ZSIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKLSNlbmRp
ZgotICAgIAorICAgIElHTk9SRV9DTEFOR19XQVJOSU5HX0VORAorCiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3Rv
dHlwZSk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaAppbmRleCA0ZTFlYjdk
ODgzNGNiYzVkZTcyY2Q2Y2M2YjFkMjRiNDYxNDNjNWI2Li43MmQyM2Y1M2UxZDgxOWIxNDBlMzJh
MDc0MTQzM2NkZmRjZDM5MzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmgKQEAg
LTQzLDE4ICs0Myw5IEBAIHB1YmxpYzoKICAgICAgICAgVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZSopOwogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBmaXggdGhlIHdhcm5pbmdzIGZv
ciBleHRlcm4tdGVtcGxhdGUgaW4gSlNPYmplY3QgdGVtcGxhdGUgY2xhc3NlczogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTk3OQotI2lmIENPTVBJTEVSKENMQU5H
KQotI2lmIF9faGFzX3dhcm5pbmcoIi1XdW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIpCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XdW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIKLSNlbmRpZgotI2VuZGlmCisgICAgSUdOT1JFX0NM
QU5HX1dBUk5JTkdfQkVHSU4oIi1XdW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIpCiAgICAgREVDTEFS
RV9JTkZPOwotI2lmIENPTVBJTEVSKENMQU5HKQotI2lmIF9faGFzX3dhcm5pbmcoIi1XdW5kZWZp
bmVkLXZhci10ZW1wbGF0ZSIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYK
LSNlbmRpZgorICAgIElHTk9SRV9DTEFOR19XQVJOSU5HX0VORAogICAgIAogICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBw
cm90b3R5cGUpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAK
aW5kZXggNDA3YzU3MDQ3NDZiMDRjZmY3NGRmYTk4YjliYzMxM2ZjNzMzNjY0Zi4uYmU3MDFkNDEz
ZjcyNTdkZDVkZWY3MWM0YTU3MjU3NjBlMTQyNjdlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAgLTc0NCwxMiArNzQ0LDcgQEAgYm9vbCBPcHRpb25zOjpz
ZXRBbGlhc2VkT3B0aW9uKGNvbnN0IGNoYXIqIGFyZykKICAgICBpZiAoIWVxdWFsU3RyKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJu
aW5nKCItV3RhdXRvbG9naWNhbC1jb21wYXJlIikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd0YXV0b2xvZ2ljYWwtY29t
cGFyZSIKLSNlbmRpZgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XdGF1dG9s
b2dpY2FsLWNvbXBhcmUiKQogCiAgICAgLy8gRm9yIGVhY2ggb3B0aW9uLCBjaGVjayBpZiB0aGUg
c3BlY2lmeSBhcmcgaXMgYSBtYXRjaC4gSWYgc28sIHNldCB0aGUgYXJnCiAgICAgLy8gaWYgdGhl
IHZhbHVlIG1ha2VzIHNlbnNlLiBPdGhlcndpc2UsIG1vdmUgb24gdG8gY2hlY2tpbmcgdGhlIG5l
eHQgb3B0aW9uLgpAQCAtNzcyLDExICs3NjcsNyBAQCBib29sIE9wdGlvbnM6OnNldEFsaWFzZWRP
cHRpb24oY29uc3QgY2hhciogYXJnKQogICAgIEpTQ19BTElBU0VEX09QVElPTlMoRk9SX0VBQ0hf
T1BUSU9OKQogI3VuZGVmIEZPUl9FQUNIX09QVElPTgogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0j
aWYgX19oYXNfd2FybmluZygiLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0VORAog
CiAgICAgcmV0dXJuIGZhbHNlOyAvLyBObyBvcHRpb24gbWF0Y2hlZC4KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9Db2RlUHJvZmlsaW5nLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90b29scy9Db2RlUHJvZmlsaW5nLmNwcAppbmRleCBjM2RhOGMyYzI5M2Zj
YzliY2M3M2RmMTJmNjk2ZjRjZTNiNDk4ZGEzLi4yM2RmMWI5MGVmNTExMTY3NjMzYWYxNGY2OGRh
MTBmZTZiMDRhZmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29k
ZVByb2ZpbGluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9m
aWxpbmcuY3BwCkBAIC00NCwxMCArNDQsNyBAQCB2b2xhdGlsZSBDb2RlUHJvZmlsZSogQ29kZVBy
b2ZpbGluZzo6c19wcm9maWxlU3RhY2sgPSAwOwogQ29kZVByb2ZpbGluZzo6TW9kZSBDb2RlUHJv
ZmlsaW5nOjpzX21vZGUgPSBDb2RlUHJvZmlsaW5nOjpEaXNhYmxlZDsKIFdURjo6TWV0YUFsbG9j
YXRvclRyYWNrZXIqIENvZGVQcm9maWxpbmc6OnNfdHJhY2tlciA9IDA7CiAKLSNpZiBDT01QSUxF
UihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdtaXNzaW5nLW5vcmV0dXJuIgotI2VuZGlmCitJR05PUkVfQ0xB
TkdfV0FSTklOR19CRUdJTigiLVdtaXNzaW5nLW5vcmV0dXJuIikKIAogI2lmIEhBVkUoTUFDSElO
RV9DT05URVhUKQogLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHN0YXJ0ICYgc3RvcCB0aGUgdGltZXIu
CkBAIC02Myw5ICs2MCw3IEBAIHN0YXRpYyB2b2lkIHNldFByb2ZpbGVUaW1lcih1bnNpZ25lZCB1
c2VjKQogfQogI2VuZGlmCiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAKICNpZiBIQVZF
KE1BQ0hJTkVfQ09OVEVYVCkKIHN0YXRpYyB2b2lkIHByb2ZpbGluZ1RpbWVyKGludCwgc2lnaW5m
b190Kiwgdm9pZCogdWFwKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVNlY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvbnMu
aAppbmRleCBlNjkyNGI3OTUzY2MzNjQ2YmVlOTA4NDQxYTYzYzYzYzI5NGE3N2Q2Li4wMDZhZjc5
MTdjZjY4OWZhZjEyYWYzYmE0NzZkMjEwZDhjZDdlNzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtU2VjdGlvbnMuaApAQCAtMjcsMTAgKzI3LDkgQEAKIAogI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxF
RAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lOCisjZW5kaWYK
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIApAQCAtMTA3LDggKzEwNiw4IEBA
IGlubGluZSBjb25zdCBjaGFyKiBtYWtlU3RyaW5nKFNlY3Rpb24gc2VjdGlvbikKIAogfSB9IC8v
IG5hbWVzcGFjZSBKU0M6Oldhc20KIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FC
TEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykg
JiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZ
UEVfRU5ECisjZW5kaWYKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5l
c0hlYWRlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2FzbVZhbGlk
YXRlSW5saW5lc0hlYWRlci5weQppbmRleCBiYzU0YTIyMzc0NjVkYjljN2Q5MDNmMjJhOTU0MmEx
Y2E2OGVmNTU1Li5mMzRiYjRjMmQwNjljN2RkOWJjNDg2OTgyMDNiZTE4ZDlmMTFkZjEzIDEwMDc1
NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9nZW5lcmF0ZVdhc21WYWxpZGF0ZUlu
bGluZXNIZWFkZXIucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vZ2VuZXJhdGVX
YXNtVmFsaWRhdGVJbmxpbmVzSGVhZGVyLnB5CkBAIC0xMjcsMTAgKzEyNyw5IEBAIGNvbnRlbnRz
ID0gd2FzbS5oZWFkZXIgKyAiIiIKIAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAot
I2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIK
LSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9E
SVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBXYXNtIHsKIApAQCAtMTYwLDkgKzE1OSw5IEBAIGF1dG8gVmFsaWRhdGU6
OnN0b3JlKFN0b3JlT3BUeXBlIG9wLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9u
VHlwZSB2YWx1CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKLSNpZiBDT01QSUxFUihH
Q0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRp
ZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxF
RAorSUdOT1JFX1JFVFVSTl9UWVBFX0VORAorI2VuZGlmCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VC
QVNTRU1CTFkpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwIGIv
U291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKaW5kZXggZmU4ZmFjMDdkNmY3NTczZTAyZjI2
OWRlNWIwYjUwZjJiZGU3ZGM1ZC4uZDk2NmFkODZjODQ5ZmMzNTI2NmFlOWZiNDU0YmEwN2QyZDEx
NTk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKQEAgLTc5LDEwICs3OSw5IEBAIGV4dGVybiAiQyIg
ewogc3RhdGljIHZvaWQgbG9nVG9TdGRlcnIoY29uc3QgY2hhciogYnVmZmVyKQogewogI2lmIFVT
RShBUFBMRV9TWVNURU1fTE9HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBhc2xfbG9nKDAsIDAsIEFT
TF9MRVZFTF9OT1RJQ0UsICIlcyIsIGJ1ZmZlcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZgogICAgIGZwdXRz
KGJ1ZmZlciwgc3RkZXJyKTsKIH0KQEAgLTk0LDE0ICs5Myw5IEBAIHN0YXRpYyB2b2lkIHZwcmlu
dGZfc3RkZXJyX2NvbW1vbihjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QgYXJncykKICAgICBp
ZiAoc3Ryc3RyKGZvcm1hdCwgIiVAIikpIHsKICAgICAgICAgYXV0byBjZkZvcm1hdCA9IGFkb3B0
Q0YoQ0ZTdHJpbmdDcmVhdGVXaXRoQ1N0cmluZyhudWxscHRyLCBmb3JtYXQsIGtDRlN0cmluZ0Vu
Y29kaW5nVVRGOCkpOwogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LW5v
bmxpdGVyYWwiCi0jZW5kaWYKKyAgICAgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVHSU4K
ICAgICAgICAgYXV0byBzdHIgPSBhZG9wdENGKENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdEFuZEFy
Z3VtZW50cyhudWxscHRyLCBudWxscHRyLCBjZkZvcm1hdC5nZXQoKSwgYXJncykpOwotI2lmIENP
TVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAg
ICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0VORAogICAgICAgICBDRkluZGV4IGxlbmd0aCA9
IENGU3RyaW5nR2V0TWF4aW11bVNpemVGb3JFbmNvZGluZyhDRlN0cmluZ0dldExlbmd0aChzdHIu
Z2V0KCkpLCBrQ0ZTdHJpbmdFbmNvZGluZ1VURjgpOwogICAgICAgICBjb25zdGV4cHIgdW5zaWdu
ZWQgSW5pdGlhbEJ1ZmZlclNpemUgeyAyNTYgfTsKICAgICAgICAgVmVjdG9yPGNoYXIsIEluaXRp
YWxCdWZmZXJTaXplPiBidWZmZXIobGVuZ3RoICsgMSk7CkBAIC0xMTMsMTMgKzEwNywxMiBAQCBz
dGF0aWMgdm9pZCB2cHJpbnRmX3N0ZGVycl9jb21tb24oY29uc3QgY2hhciogZm9ybWF0LCB2YV9s
aXN0IGFyZ3MpCiAgICAgfQogCiAjaWYgVVNFKEFQUExFX1NZU1RFTV9MT0cpCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICB2YV9saXN0IGNvcHlPZkFyZ3M7CiAgICAgdmFfY29weShjb3B5T2ZBcmdz
LCBhcmdzKTsKICAgICBhc2xfdmxvZygwLCAwLCBBU0xfTEVWRUxfTk9USUNFLCBmb3JtYXQsIGNv
cHlPZkFyZ3MpOwogICAgIHZhX2VuZChjb3B5T2ZBcmdzKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZgog
CiAgICAgLy8gRmFsbCB0aHJvdWdoIHRvIHdyaXRlIHRvIHN0ZGVyciBpbiB0aGUgc2FtZSBtYW5u
ZXIgYXMgb3RoZXIgcGxhdGZvcm1zLgpAQCAtMTQxLDEwICsxMzQsNyBAQCBzdGF0aWMgdm9pZCB2
cHJpbnRmX3N0ZGVycl9jb21tb24oY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiAg
ICAgdmZwcmludGYoc3RkZXJyLCBmb3JtYXQsIGFyZ3MpOwogfQogCi0jaWYgQ09NUElMRVIoR0ND
X09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LW5vbmxpdGVyYWwiCi0jZW5kaWYKK0FMTE9XX05PTkxJ
VEVSQUxfRk9STUFUX0JFR0lOCiAKIHN0YXRpYyB2b2lkIHZwcmludGZfc3RkZXJyX3dpdGhfcHJl
Zml4KGNvbnN0IGNoYXIqIHByZWZpeCwgY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3Mp
CiB7CkBAIC0xNzQsOSArMTY0LDcgQEAgc3RhdGljIHZvaWQgdnByaW50Zl9zdGRlcnJfd2l0aF90
cmFpbGluZ19uZXdsaW5lKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmcKICAgICB2cHJp
bnRmX3N0ZGVycl9jb21tb24oZm9ybWF0V2l0aE5ld2xpbmUuZGF0YSgpLCBhcmdzKTsKIH0KIAot
I2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0j
ZW5kaWYKK0FMTE9XX05PTkxJVEVSQUxfRk9STUFUX0VORAogCiBXVEZfQVRUUklCVVRFX1BSSU5U
RigxLCAyKQogc3RhdGljIHZvaWQgcHJpbnRmX3N0ZGVycl9jb21tb24oY29uc3QgY2hhciogZm9y
bWF0LCAuLi4pCkBAIC0zODUsMTQgKzM3Myw5IEBAIHZvaWQgV1RGTG9nV2l0aExldmVsKFdURkxv
Z0NoYW5uZWwqIGNoYW5uZWwsIFdURkxvZ0xldmVsIGxldmVsLCBjb25zdCBjaGFyKiBmb3JtCiAg
ICAgdmFfbGlzdCBhcmdzOwogICAgIHZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7CiAKLSNpZiBDT01Q
SUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNlbmRpZgorICAgIEFM
TE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lOCiAgICAgV1RGTG9nKGNoYW5uZWwsIGZvcm1hdCwg
YXJncyk7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
Ci0jZW5kaWYKKyAgICBBTExPV19OT05MSVRFUkFMX0ZPUk1BVF9FTkQKIAogICAgIHZhX2VuZChh
cmdzKTsKIH0KQEAgLTQxNSwxNCArMzk4LDkgQEAgdm9pZCBXVEZMb2coV1RGTG9nQ2hhbm5lbCog
Y2hhbm5lbCwgY29uc3QgY2hhciogZm9ybWF0LCAuLi4pCiAgICAgdmFfbGlzdCBhcmdzOwogICAg
IHZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFU
X0JFR0lOCiAgICAgU3RyaW5nIGxvZ2dpbmdTdHJpbmcgPSBTdHJpbmc6OmZvcm1hdChmb3JtYXQs
IGFyZ3MpOwotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAotI2VuZGlmCisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfRU5ECiAKICAgICB2YV9lbmQo
YXJncyk7CiAKQEAgLTQ0MiwxNCArNDIwLDkgQEAgdm9pZCBXVEZMb2dWZXJib3NlKGNvbnN0IGNo
YXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyKiBmdW5jdGlvbiwgV1RGTG9nQ2hhbm4KICAg
ICB2YV9saXN0IGFyZ3M7CiAgICAgdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKIAotI2lmIENPTVBJ
TEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2VuZGlmCisgICAgQUxM
T1dfTk9OTElURVJBTF9GT1JNQVRfQkVHSU4KICAgICBXVEZMb2coY2hhbm5lbCwgZm9ybWF0LCBh
cmdzKTsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
LSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0VORAogCiAgICAgdmFfZW5kKGFy
Z3MpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9Bc3NlcnRpb25zLmgKaW5kZXggNWIyOGY4NmZhOTMxZDhjYTFhYzE4Mzg1ODVmMmYw
ZjJkMzVmNTlmNi4uOWMyZDNmY2ViZGFhZmUwNzYwZGY1ZTcwZjBkZjc4NjIwMzdhODg5YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0Fzc2VydGlvbnMuaApAQCAtNjAyLDE1ICs2MDIsMTQgQEAgaW5saW5lIHZvaWQgY29tcGlsZXJG
ZW5jZUZvckNyYXNoKCkKICNpZiBDT01QSUxFUihDTEFORykKIC8vIFRoaXMgd291bGQgYmUgYSBt
YWNybyBleGNlcHQgdGhhdCBpdHMgdXNlIG9mICNwcmFnbWEgd29ya3MgYmVzdCBhcm91bmQKIC8v
IGEgZnVuY3Rpb24uIEhlbmNlIGl0IHVzZXMgbWFjcm8gbmFtaW5nIGNvbnZlbnRpb24uCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XbWlzc2luZy1ub3JldHVybiIKK0lHTk9SRV9DTEFOR19XQVJOSU5HX0JFR0lOKCItV21p
c3Npbmctbm9yZXR1cm4iKQogc3RhdGljIGlubGluZSB2b2lkIFVOUkVBQ0hBQkxFX0ZPUl9QTEFU
Rk9STSgpCiB7CiAgICAgLy8gVGhpcyAqTVVTVCogYmUgYSByZWxlYXNlIGFzc2VydC4gV2UgdXNl
IGl0IGluIHBsYWNlcyB3aGVyZSBpdCdzIGJldHRlciB0byBjcmFzaCB0aGFuIHRvIGtlZXAKICAg
ICAvLyBnb2luZy4KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAjZWxzZQog
I2RlZmluZSBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKSBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmggYi9T
b3VyY2UvV1RGL3d0Zi9Db21waWxlci5oCmluZGV4IDc5OGMzMDkwYzliMWMxODU4MGEzYTZiZTZm
YWI2NWJkYWNlNmZmYWEuLjM3OWUzMmNhZjI3NjU4YjFhYTRkZDVhNGMwOGI5ZjU1ZGM5MmM0MDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmgKKysrIGIvU291cmNlL1dURi93
dGYvQ29tcGlsZXIuaApAQCAtMzg1LDQgKzM4NSw5NSBAQAogI2RlZmluZSBfX2hhc19pbmNsdWRl
KHBhdGgpIDAKICNlbmRpZgogCisvKiBJR05PUkVfV0FSTklORy4qICovCisKKy8vIENhbid0IHVz
ZSBXVEZfQ09OQ0FUKCkgYW5kIFNUUklOR0laRSgpIGJlY2F1c2UgdGhleSBhcmUgZGVmaW5lZCBp
bgorLy8gU3RkTGliRXh0cmFzLmggd2hpY2ggaW5jbHVkZXMgdXMKKyNkZWZpbmUgX0NPTVBJTEVS
X0NPTkNBVF9JKGEsIGIpIGEgIyMgYgorI2RlZmluZSBfQ09NUElMRVJfQ09OQ0FUKGEsIGIpIF9D
T01QSUxFUl9DT05DQVRfSShhLCBiKQorCisjZGVmaW5lIF9DT01QSUxFUl9TVFJJTkdJWkUoZXhw
KSAjZXhwCisKKyNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCisjZGVmaW5lIElHTk9SRV9XQVJO
SU5HX0JFR0lOX0NPTkQoY29uZCwgY29tcGlsZXIsIHdhcm5pbmcpIFwKKyAgICBfUHJhZ21hKF9D
T01QSUxFUl9TVFJJTkdJWkUoY29tcGlsZXIgZGlhZ25vc3RpYyBwdXNoKSkgXAorICAgIF9DT01Q
SUxFUl9DT05DQVQoSUdOT1JFX1dBUk5JTkdfQkVHSU5fSU1QTF8sIGNvbmQpKGNvbXBpbGVyLCB3
YXJuaW5nKQorCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0JFR0lOX0lNUExfMShjb21waWxlciwg
d2FybmluZykgXAorICAgIF9QcmFnbWEoX0NPTVBJTEVSX1NUUklOR0laRShjb21waWxlciBkaWFn
bm9zdGljIGlnbm9yZWQgd2FybmluZykpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0JFR0lOX0lN
UExfMChjb21waWxlciwgd2FybmluZykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfQkVHSU5fSU1Q
TF8oY29tcGlsZXIsIHdhcm5pbmcpCisKKworI2RlZmluZSBJR05PUkVfV0FSTklOR19FTkRfSU1Q
TChjb21waWxlcikgX1ByYWdtYShfQ09NUElMRVJfU1RSSU5HSVpFKGNvbXBpbGVyIGRpYWdub3N0
aWMgcG9wKSkKKworI2lmIGRlZmluZWQoX19oYXNfd2FybmluZykKKyNkZWZpbmUgSUdOT1JFX1dB
Uk5JTkdfQkVHSU5fSU1QTChjb21waWxlciwgd2FybmluZykgSUdOT1JFX1dBUk5JTkdfQkVHSU5f
Q09ORChfX2hhc193YXJuaW5nKHdhcm5pbmcpLCBjb21waWxlciwgd2FybmluZykKKyNlbHNlCisj
ZGVmaW5lIElHTk9SRV9XQVJOSU5HX0JFR0lOX0lNUEwoY29tcGlsZXIsIHdhcm5pbmcpIElHTk9S
RV9XQVJOSU5HX0JFR0lOX0NPTkQoMSwgY29tcGlsZXIsIHdhcm5pbmcpCisjZW5kaWYKKworI2Vu
ZGlmIC8vIENPTVBJTEVSKEdDQ19PUl9DTEFORykKKworCisjaWYgIWRlZmluZWQoSUdOT1JFX0dD
Q19XQVJOSU5HX0JFR0lOKSAmJiBDT01QSUxFUihHQ0MpCisjZGVmaW5lIElHTk9SRV9HQ0NfV0FS
TklOR19CRUdJTih3YXJuaW5nKSBJR05PUkVfV0FSTklOR19CRUdJTl9JTVBMKEdDQywgd2Fybmlu
ZykKKyNkZWZpbmUgSUdOT1JFX0dDQ19XQVJOSU5HX0VORCBJR05PUkVfV0FSTklOR19FTkRfSU1Q
TChHQ0MpCisjZW5kaWYKKworI2lmICFkZWZpbmVkKElHTk9SRV9HQ0NfV0FSTklOR19CRUdJTikK
KyNkZWZpbmUgSUdOT1JFX0dDQ19XQVJOSU5HX0JFR0lOKHdhcm5pbmcpCisjZGVmaW5lIElHTk9S
RV9HQ0NfV0FSTklOR19FTkQKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoSUdOT1JFX0NMQU5HX1dB
Uk5JTkdfQkVHSU4pICYmIENPTVBJTEVSKENMQU5HKQorI2RlZmluZSBJR05PUkVfQ0xBTkdfV0FS
TklOR19CRUdJTih3YXJuaW5nKSBJR05PUkVfV0FSTklOR19CRUdJTl9JTVBMKGNsYW5nLCB3YXJu
aW5nKQorI2RlZmluZSBJR05PUkVfQ0xBTkdfV0FSTklOR19FTkQgSUdOT1JFX1dBUk5JTkdfRU5E
X0lNUEwoY2xhbmcpCisjZW5kaWYKKworI2lmICFkZWZpbmVkKElHTk9SRV9DTEFOR19XQVJOSU5H
X0JFR0lOKQorI2RlZmluZSBJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTih3YXJuaW5nKQorI2Rl
ZmluZSBJR05PUkVfQ0xBTkdfV0FSTklOR19FTkQKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoSUdO
T1JFX1dBUk5JTkdfQkVHSU4pICYmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKKyNkZWZpbmUgSUdO
T1JFX1dBUk5JTkdfQkVHSU4od2FybmluZykgSUdOT1JFX1dBUk5JTkdfQkVHSU5fSU1QTChHQ0Ms
IHdhcm5pbmcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0VORCBJR05PUkVfV0FSTklOR19FTkRf
SU1QTChHQ0MpCisjZW5kaWYKKworI2lmICFkZWZpbmVkKElHTk9SRV9XQVJOSU5HX0JFR0lOKQor
I2RlZmluZSBJR05PUkVfV0FSTklOR19CRUdJTih3YXJuaW5nKQorI2RlZmluZSBJR05PUkVfV0FS
TklOR19FTkQKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4pCisjZGVmaW5lIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
IElHTk9SRV9XQVJOSU5HX0JFR0lOKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKKyNkZWZp
bmUgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5EIElHTk9SRV9XQVJOSU5HX0VORAor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChBTExPV19ORVdfQVBJX0JFR0lOKQorI2RlZmluZSBBTExP
V19ORVdfQVBJX0JFR0lOIElHTk9SRV9DTEFOR19XQVJOSU5HX0JFR0lOKCItV3VuZ3VhcmRlZC1h
dmFpbGFiaWxpdHktbmV3IikKKyNkZWZpbmUgQUxMT1dfTkVXX0FQSV9FTkQgSUdOT1JFX0NMQU5H
X1dBUk5JTkdfRU5ECisjZW5kaWYKKworI2lmICFkZWZpbmVkKEFMTE9XX1VOVVNFRF9QQVJBTUVU
RVJfQkVHSU4pCisjZGVmaW5lIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4gSUdOT1JFX1dB
Uk5JTkdfQkVHSU4oIi1XdW51c2VkLXBhcmFtZXRlciIpCisjZGVmaW5lIEFMTE9XX1VOVVNFRF9Q
QVJBTUVURVJfRU5EIElHTk9SRV9XQVJOSU5HX0VORAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChB
TExPV19OT05MSVRFUkFMX0ZPUk1BVF9CRUdJTikKKyNkZWZpbmUgQUxMT1dfTk9OTElURVJBTF9G
T1JNQVRfQkVHSU4gSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XZm9ybWF0LW5vbmxpdGVyYWwiKQor
I2RlZmluZSBBTExPV19OT05MSVRFUkFMX0ZPUk1BVF9FTkQgSUdOT1JFX1dBUk5JTkdfRU5ECisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKElHTk9SRV9SRVRVUk5fVFlQRV9CRUdJTikKKyNkZWZpbmUg
SUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lOIElHTk9SRV9XQVJOSU5HX0JFR0lOKCItV3JldHVybi10
eXBlIikKKyNkZWZpbmUgSUdOT1JFX1JFVFVSTl9UWVBFX0VORCBJR05PUkVfV0FSTklOR19FTkQK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoQUxMT1dfTlVMTF9BUkdVTUVOVF9CRUdJTikKKyNkZWZp
bmUgQUxMT1dfTlVMTF9BUkdVTUVOVF9CRUdJTiBJR05PUkVfV0FSTklOR19CRUdJTigiLVdub25u
dWxsIikKKyNkZWZpbmUgQUxMT1dfTlVMTF9BUkdVTUVOVF9FTkQgSUdOT1JFX1dBUk5JTkdfRU5E
CisjZW5kaWYKKwogI2VuZGlmIC8qIFdURl9Db21waWxlcl9oICovCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9NRDUuY3BwIGIvU291cmNlL1dURi93dGYvTUQ1LmNwcAppbmRleCBlNDliYTFi
ZWI1YzgwZjdjZWM0MzNmZDgzMjcyMmMwOTI1MjczMDkwLi5lMjcwYjc0MWFjNThiMDNjZDg5NjI4
OGM5NzgwMDFiYmQwOTcxYWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NRDUuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL01ENS5jcHAKQEAgLTU5LDI2ICs1OSwyMyBAQCBuYW1lc3BhY2Ug
V1RGIHsKIAogTUQ1OjpNRDUoKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0NfTUQ1X0lu
aXQoJm1fY29udGV4dCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHZvaWQgTUQ1OjphZGRCeXRlcyhjb25z
dCB1aW50OF90KiBpbnB1dCwgc2l6ZV90IGxlbmd0aCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIENDX01ENV9VcGRhdGUoJm1fY29udGV4dCwgaW5wdXQsIGxlbmd0aCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiB9CiAKIHZvaWQgTUQ1OjpjaGVja3N1bShEaWdlc3QmIGhhc2gpCiB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICBDQ19NRDVfRmluYWwoaGFzaC5kYXRhKCksICZtX2NvbnRleHQpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogfQogICAgIAogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1ByaW50U3Ry
ZWFtLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmNwcAppbmRleCAzODBjNjdiY2Ji
OTBlMzY2ZDg2MTgwODc4MDczMjQ1ZTYxM2U0YjRmLi4yZmE2NzdjNjBiYmQzMTRmY2NlMzIwOWQx
YmU2NTBhMzAwZWRlYjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QcmludFN0cmVhbS5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uY3BwCkBAIC00NiwyMiArNDYsMTQg
QEAgdm9pZCBQcmludFN0cmVhbTo6cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKQogCiB2
b2lkIFByaW50U3RyZWFtOjpwcmludGZWYXJpYWJsZUZvcm1hdChjb25zdCBjaGFyKiBmb3JtYXQs
IC4uLikKIHsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJh
bCIKLSNlbGlmIENPTVBJTEVSKEdDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3N1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdCIK
LSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lOCisgICAgSUdOT1JFX0dD
Q19XQVJOSU5HX0JFR0lOKCItV3N1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdCIpCiAgICAgdmFfbGlz
dCBhcmdMaXN0OwogICAgIHZhX3N0YXJ0KGFyZ0xpc3QsIGZvcm1hdCk7CiAgICAgdnByaW50Zihm
b3JtYXQsIGFyZ0xpc3QpOwogICAgIHZhX2VuZChhcmdMaXN0KTsKLSNpZiBDT01QSUxFUihDTEFO
RykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbGlmIENPTVBJTEVSKEdDQykKLSNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBJR05PUkVfR0NDX1dBUk5JTkdf
RU5ECisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfRU5ECiB9CiAKIHZvaWQgUHJpbnRTdHJl
YW06OmZsdXNoKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1NIQTEuY3BwIGIvU291cmNl
L1dURi93dGYvU0hBMS5jcHAKaW5kZXggMzA1ZjA3NzU4OWQ5YmEzZTY1MGZiM2U3NWNjZmVhZDZl
MmQ1MmFmZi4uNjdiYmNjMmRkODU1MjE5MjUxMTc5MTRjNDQxMTNiZjUyYjVjZDJiMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvU0hBMS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvU0hBMS5j
cHAKQEAgLTQxLDI2ICs0MSwyMyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogU0hBMTo6U0hBMSgpCiB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDQ19TSEExX0luaXQoJm1fY29udGV4dCk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiB9CiAKIHZvaWQgU0hBMTo6YWRkQnl0ZXMoY29uc3QgdWludDhfdCogaW5wdXQsIHNp
emVfdCBsZW5ndGgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDQ19TSEExX1VwZGF0ZSgm
bV9jb250ZXh0LCBpbnB1dCwgbGVuZ3RoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogdm9pZCBTSEExOjpj
b21wdXRlSGFzaChEaWdlc3QmIGhhc2gpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDQ19T
SEExX0ZpbmFsKGhhc2guZGF0YSgpLCAmbV9jb250ZXh0KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogI2Vs
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAppbmRleCBkZDAxYzZjNzZlZTY5ODU5
YzRjY2Q4YjExYzZjOWE4Y2QxYzA0OTYyLi5mZjg0MzdhNDgxYjg0OGIzMTE3OTcxOTQ1MTNjZDdh
NTcyYzdlMDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCkBAIC0xMDksMTUg
KzEwOSw4IEBAIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8U2VtYXBob3JlPiBnbG9iYWxTZW1h
cGhvcmVGb3JTdXNwZW5kUmVzdW1lOwogc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQgU2lnVGhy
ZWFkU3VzcGVuZFJlc3VtZSA9IFNJR1VTUjE7CiBzdGF0aWMgc3RkOjphdG9taWM8VGhyZWFkKj4g
dGFyZ2V0VGhyZWFkIHsgbnVsbHB0ciB9OwogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0
dXJuLWxvY2FsLWFkZHIiCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKQotCi0jaWYgQ09NUElMRVIo
Q0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XcmV0dXJuLXN0YWNrLWFkZHJlc3MiCi0jZW5kaWYgLy8gQ09NUElM
RVIoQ0xBTkcpCitJR05PUkVfR0NDX1dBUk5JTkdfQkVHSU4oIi1XcmV0dXJuLWxvY2FsLWFkZHIi
KQorSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1XcmV0dXJuLXN0YWNrLWFkZHJlc3MiKQog
CiBzdGF0aWMgTkVWRVJfSU5MSU5FIHZvaWQqIGdldEFwcHJveGltYXRlU3RhY2tQb2ludGVyKCkK
IHsKQEAgLTEyNiwxMyArMTE5LDggQEAgc3RhdGljIE5FVkVSX0lOTElORSB2b2lkKiBnZXRBcHBy
b3hpbWF0ZVN0YWNrUG9pbnRlcigpCiAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDx2b2lkKj4oc3Rh
Y2tMb2NhdGlvbik7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0MpCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykKLQotI2lmIENPTVBJTEVSKENMQU5HKQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKENMQU5HKQor
SUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECitJR05PUkVfR0NDX1dBUk5JTkdfRU5ECiAKIHZvaWQg
VGhyZWFkOjpzaWduYWxIYW5kbGVyU3VzcGVuZFJlc3VtZShpbnQsIHNpZ2luZm9fdCosIHZvaWQq
IHVjb250ZXh0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVmVjdG9yLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9WZWN0b3IuaAppbmRleCA4NTE4NGI5NDA3YzY5Mzc3NjBhMTBjNjViMWFlNTcy
MjdhOGY3ZmZmLi5kZjFlNTJlNDdlNWYxZjBjNjhhN2U2Njg5NDBlOWNiMTNiNzU1NzczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0
b3IuaApAQCAtNTI5LDE0ICs1MjksOSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQo
YnVmZmVyKCkpOwogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XaW52YWxpZC1vZmZzZXRvZiIK
LSNlbmRpZgorICAgICAgICBJR05PUkVfR0NDX1dBUk5JTkdfQkVHSU4oIi1XaW52YWxpZC1vZmZz
ZXRvZiIpCiAgICAgICAgIHN0YXRpY19hc3NlcnQoKG9mZnNldG9mKFZlY3RvckJ1ZmZlciwgbV9p
bmxpbmVCdWZmZXIpICsgc2l6ZW9mKG1faW5saW5lQnVmZmVyKSkgJSA4ID09IDAsICJJbmxpbmUg
YnVmZmVyIGVuZCBuZWVkcyB0byBiZSBvbiA4IGJ5dGUgYm91bmRhcnkgZm9yIEFTYW4gYW5ub3Rh
dGlvbnMgdG8gd29yay4iKTsKLSNpZiBDT01QSUxFUihHQ0MpCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHBvcAotI2VuZGlmCisgICAgICAgIElHTk9SRV9HQ0NfV0FSTklOR19FTkQKIAogICAgICAg
ICBpZiAoYnVmZmVyKCkgPT0gaW5saW5lQnVmZmVyKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4obV9pbmxpbmVCdWZmZXIpICsgc2l6ZW9mKG1faW5saW5lQnVm
ZmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAppbmRleCAyYjBlNWYzOWNkNDNjNmRmNDFh
MGMxOGJjNGJiZDM4NGYxOTUxM2Q2Li5hODc1MjlmYzZiM2I4MmYyMzhhZTc1MGZmOWMyOTNkNjQ4
YjJjM2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCkBAIC00NTMsMTAgKzQ1Myw3IEBA
IFdURl9BVFRSSUJVVEVfUFJJTlRGKDEsIDApIHN0YXRpYyBTdHJpbmcgY3JlYXRlV2l0aEZvcm1h
dEFuZEFyZ3VtZW50cyhjb25zdCBjaGFyCiAgICAgdmFfbGlzdCBhcmdzQ29weTsKICAgICB2YV9j
b3B5KGFyZ3NDb3B5LCBhcmdzKTsKIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zv
cm1hdC1ub25saXRlcmFsIgotI2VuZGlmCisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVH
SU4KIAogI2lmIFVTRShDRikgJiYgIU9TKFdJTkRPV1MpCiAgICAgaWYgKHN0cnN0cihmb3JtYXQs
ICIlQCIpKSB7CkBAIC00OTIsOSArNDg5LDcgQEAgV1RGX0FUVFJJQlVURV9QUklOVEYoMSwgMCkg
c3RhdGljIFN0cmluZyBjcmVhdGVXaXRoRm9ybWF0QW5kQXJndW1lbnRzKGNvbnN0IGNoYXIKICAg
ICB2c25wcmludGYoYnVmZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUoKSwgZm9ybWF0LCBhcmdzQ29w
eSk7CiAgICAgdmFfZW5kKGFyZ3NDb3B5KTsKIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JN
QVRfRU5ECiAKICAgICByZXR1cm4gU3RyaW5nSW1wbDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPihidWZmZXIuZGF0YSgpKSwgbGVuKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFu
bmVsSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKaW5kZXggMmFhMTE4MGRhZWZjNzhmMDY2
ZmI3MTRmNzZlOTU2NjQwYjhjMTk2MS4uMTFlZjc4YmI0ZWIzMWQ3ZTdkNzE3MmY4YWI1NDc0MGEx
OWI4ZDcxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5k
bGVyLmgKQEAgLTI5LDEyICsyOSwxMSBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgog
I2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIgogCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1l
dGVyIgorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRjL2Fw
aS9kYXRhY2hhbm5lbGludGVyZmFjZS5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAor
QUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9FTkQKIAogbmFtZXNwYWNlIHdlYnJ0YyB7CiBzdHJ1Y3Qg
RGF0YUNoYW5uZWxJbml0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5o
CmluZGV4IGI3MTc0OTVmMThjNWNiM2M3OGMyMmJmYWI5ZWFkZWVlNGVhZjczZDguLmVjOWIxMGQ0
ZmM2NjE1YzJhMWVhZTQwZjZiZTE1MjE4NzIzZmY2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENNZWRpYUVuZHBvaW50LmgKQEAgLTM0LDE1ICszNCwxNCBAQAogI2luY2x1ZGUgIlJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oIgogI2luY2x1ZGUgPFRpbWVyLmg+CiAKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vu
dXNlZC1wYXJhbWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0JFR0lOCiAKICNpbmNsdWRl
IDx3ZWJydGMvYXBpL2pzZXAuaD4KICNpbmNsdWRlIDx3ZWJydGMvYXBpL3BlZXJjb25uZWN0aW9u
aW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8d2VicnRjL3BjL3BlZXJjb25uZWN0aW9uZmFjdG9yeS5o
PgogI2luY2x1ZGUgPHdlYnJ0Yy9wYy9ydGNzdGF0c2NvbGxlY3Rvci5oPgogCi0jcHJhZ21hIEdD
QyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9FTkQKIAogI2luY2x1ZGUg
PHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY3J5cHRvL2NvbW1vbmNyeXB0
by9DcnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
cnlwdG8vY29tbW9uY3J5cHRvL0NyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAKaW5kZXggYjQ3
ZjhlZWM2ODgzN2M3MjdkNWY4ZmNjOTcxNmRjYmQzY2FjNjUzZS4uMWNlNTc5N2ZlZjYyOTczZWVk
YjQ3MzQ4OWMyMTQ5N2M3YmJmYjQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jcnlwdG8vY29tbW9uY3J5cHRvL0NyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8vY29tbW9uY3J5cHRvL0NyeXB0b0RpZ2VzdENv
bW1vbkNyeXB0by5jcHAKQEAgLTk3LDEwICs5Nyw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9E
aWdlc3Q+IENyeXB0b0RpZ2VzdDo6Y3JlYXRlKENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtIGFsZ29y
CiAgICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzE6IHsKICAgICAgICAgQ0Nf
U0hBMV9DVFgqIGNvbnRleHQgPSBuZXcgQ0NfU0hBMV9DVFg7CiAgICAgICAgIGRpZ2VzdC0+bV9j
b250ZXh0LT5jY0NvbnRleHQgPSBjb250ZXh0OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICBDQ19TSEExX0luaXQoY29udGV4dCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICByZXR1
cm4gZGlnZXN0OwogICAgIH0KICAgICBjYXNlIENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFf
MjI0OiB7CkBAIC0xMzQsMTAgKzEzMyw5IEBAIHZvaWQgQ3J5cHRvRGlnZXN0OjphZGRCeXRlcyhj
b25zdCB2b2lkKiBpbnB1dCwgc2l6ZV90IGxlbmd0aCkKIHsKICAgICBzd2l0Y2ggKG1fY29udGV4
dC0+YWxnb3JpdGhtKSB7CiAgICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzE6
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIENDX1NIQTFfVXBkYXRlKHRvU0hBMUNv
bnRleHQobV9jb250ZXh0LmdldCgpKSwgaW5wdXQsIGxlbmd0aCk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzIy
NDoKICAgICAgICAgQ0NfU0hBMjI0X1VwZGF0ZSh0b1NIQTIyNENvbnRleHQobV9jb250ZXh0Lmdl
dCgpKSwgaW5wdXQsIGxlbmd0aCk7CkBAIC0xNjAsMTAgKzE1OCw5IEBAIFZlY3Rvcjx1aW50OF90
PiBDcnlwdG9EaWdlc3Q6OmNvbXB1dGVIYXNoKCkKICAgICBzd2l0Y2ggKG1fY29udGV4dC0+YWxn
b3JpdGhtKSB7CiAgICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzE6CiAgICAg
ICAgIHJlc3VsdC5yZXNpemUoQ0NfU0hBMV9ESUdFU1RfTEVOR1RIKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICAgICAgQ0NfU0hBMV9GaW5hbChyZXN1bHQuZGF0YSgpLCB0b1NIQTFDb250
ZXh0KG1fY29udGV4dC5nZXQoKSkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzIyNDoKICAgICAgICAgcmVzdWx0
LnJlc2l6ZShDQ19TSEEyMjRfRElHRVNUX0xFTkdUSCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVktpdFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY29jb2EvQVZLaXRTUEkuaAppbmRleCA5MTQ1MTdlZmU3Y2IxNGI1ZmFmMmM1YjFiNjdm
MjM2NmM2MmM2OTk1Li4xYjkwZTBkNjAyNGEzOTk2YjUzMGUyM2RmZTJiNjVkYmMxOTY1ZDMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVktpdFNQSS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWS2l0U1BJLmgKQEAgLTM4LDEw
ICszOCw5IEBACiAjZW5kaWYKIAogI2ltcG9ydCA8QVZLaXQvQVZQbGF5ZXJDb250cm9sbGVyLmg+
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1Xb2JqYy1wcm9wZXJ0eS1uby1hdHRyaWJ1dGUiCitJR05PUkVfQ0xBTkdfV0FS
TklOR19CRUdJTigiLVdvYmpjLXByb3BlcnR5LW5vLWF0dHJpYnV0ZSIpCiAjaW1wb3J0IDxBVktp
dC9BVlBsYXllckxheWVyVmlldy5oPgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdO
T1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAjaW1wb3J0IDxBVktpdC9BVlBsYXllclZpZXdDb250cm9s
bGVyX1ByaXZhdGUuaD4KICNpbXBvcnQgPEFWS2l0L0FWUGxheWVyVmlld0NvbnRyb2xsZXJfV2Vi
S2l0T25seS5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2Nv
YS9OU0tleWVkQXJjaGl2ZXJTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29h
L05TS2V5ZWRBcmNoaXZlclNQSS5oCmluZGV4IDU1YTY0ODg2YTg4MGY1YjkwZWEyZGE2Y2Y1MWFi
YTRiYTY3YzQyNWQuLjA3MDZlZmU4NWE2Y2VlYjEyNDRkMWU4OTdmYTM4NGE3MWZkY2VjZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZl
clNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNo
aXZlclNQSS5oCkBAIC04NiwxMCArODYsOSBAQCBpbmxpbmUgTlNEYXRhICpfTnVsbGFibGUgaW5z
ZWN1cmVseUFyY2hpdmVkRGF0YVdpdGhSb290T2JqZWN0KGlkIF9Ob25udWxsIG9iamVjdAogCiBp
bmxpbmUgaWQgX051bGxhYmxlIGluc2VjdXJlbHlVbmFyY2hpdmVPYmplY3RGcm9tRGF0YShOU0Rh
dGEgKiBfTm9ubnVsbCBkYXRhKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgcmV0dXJuIFtO
U0tleWVkVW5hcmNoaXZlciB1bmFyY2hpdmVPYmplY3RXaXRoRGF0YTpkYXRhXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIH0KIAogaW5saW5lIGlkIF9OdWxsYWJsZSB1bmFyY2hpdmVkT2JqZWN0T2ZDbGFzc2VzRnJv
bURhdGEoTlNTZXQ8Q2xhc3M+ICogX05vbm51bGwgY2xhc3NlcywgTlNEYXRhICogX05vbm51bGwg
ZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9NZWRpYVBs
YXllclNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL01lZGlhUGxheWVyU1BJ
LmgKaW5kZXggZGQ4N2Y5M2FmNzAyNWJjYTZkMTMzNDU3YjNmNmIxMjA2YTAxNDRmOC4uODE3ZDA5
YTI4NzM0ODFjYzcxYzI3ZTM5Y2MzNmRiYWQ5OTkyMWI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvaW9zL01lZGlhUGxheWVyU1BJLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvaW9zL01lZGlhUGxheWVyU1BJLmgKQEAgLTc1LDIxICs3NSwxOSBAQCBl
bnVtIHsKIH07CiB0eXBlZGVmIE5TVUludGVnZXIgTVBBVkl0ZW1UeXBlOwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogQGludGVyZmFjZSBNUEF1ZGlvVmlkZW9Sb3V0aW5nUG9wb3ZlckNvbnRyb2xsZXIgOiBV
SVBvcG92ZXJDb250cm9sbGVyCiBAZW5kCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogQGludGVyZmFjZSBNUEF1ZGlvVmlk
ZW9Sb3V0aW5nUG9wb3ZlckNvbnRyb2xsZXIgKCkKIC0gKGlkKWluaXRXaXRoVHlwZTooTVBBVkl0
ZW1UeXBlKWF2SXRlbVR5cGU7CiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiBAaW50ZXJmYWNlIE1Q
QVZSb3V0aW5nU2hlZXQgOiBVSVZpZXcKIEBlbmQKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiBAaW50ZXJmYWNlIE1QQVZS
b3V0aW5nU2hlZXQgKCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24sIHNldHRlcj1zZXRB
Vkl0ZW1UeXBlOikgTVBBVkl0ZW1UeXBlIGF2SXRlbVR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lm1tIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbQppbmRleCAyMjMzNTc1ZGMzNGU3NjFlODYx
Y2JiNDUyODdiNzMzZjJjZDRhYzIzLi45YmJkNDYxOWEzZTY2YTY5YjNhYWI5ZGZhYWU3YTdlNWNj
ZGZjZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9w
dXBNZW51Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1cE1l
bnUubW0KQEAgLTQ0LDEwICs0NCw5IEBAIG5hbWVzcGFjZSBQQUwgewogdm9pZCBwb3BVcE1lbnUo
TlNNZW51ICptZW51LCBOU1BvaW50IGxvY2F0aW9uLCBmbG9hdCB3aWR0aCwgTlNWaWV3ICp2aWV3
LCBpbnQgc2VsZWN0ZWRJdGVtLCBOU0ZvbnQgKmZvbnQsIE5TQ29udHJvbFNpemUgY29udHJvbFNp
emUsIGJvb2wgdXNlc0N1c3RvbUFwcGVhcmFuY2UpCiB7CiAgICAgTlNSZWN0IGFkanVzdGVkUG9w
dXBCb3VuZHMgPSBbdmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpbdmlldyBjb252ZXJ0
UmVjdDp2aWV3LmJvdW5kcyB0b1ZpZXc6bmlsXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBp
ZiAoY29udHJvbFNpemUgIT0gTlNNaW5pQ29udHJvbFNpemUpIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgICAgIGFkanVzdGVkUG9wdXBCb3VuZHMub3JpZ2luLnggLT0gMzsKICAgICAgICAgYWRqdXN0
ZWRQb3B1cEJvdW5kcy5vcmlnaW4ueSAtPSAxOwogICAgICAgICBhZGp1c3RlZFBvcHVwQm91bmRz
LnNpemUud2lkdGggKz0gNjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lz
dGVtL21hYy9XZWJQYW5lbC5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9X
ZWJQYW5lbC5tbQppbmRleCAzMTdiZGEwMmU3YjdlYjI3YTliZDJiNTk3OTU2ZjU0MTJkYWNmMTI2
Li5jNmU0NjBjZjBlZjY1MTliNjExMDU5ZTMxNTMyNjM0ZTM1ZDdlZWJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvV2ViUGFuZWwubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1dlYlBhbmVsLm1tCkBAIC0zNCwxMCArMzQsOSBA
QAogCiAtIChpbnN0YW5jZXR5cGUpaW5pdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgc3Rh
dGljIE5TVUludGVnZXIgc3R5bGVNYXNrID0gTlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2sgfCBO
U0Nsb3NhYmxlV2luZG93TWFzayB8IE5TUmVzaXphYmxlV2luZG93TWFzayAgfCBOU1RpdGxlZFdp
bmRvd01hc2sgfCBOU1NtYWxsV2luZG93TWFzayB8IE5TU2lkZVV0aWxpdHlXaW5kb3dNYXNrIHwg
TlNVdGlsaXR5V2luZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAKICAgICByZXR1cm4gW3N1cGVy
IGluaXRXaXRoQ29udGVudFJlY3Q6TlNaZXJvUmVjdCBzdHlsZU1hc2s6c3R5bGVNYXNrIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggMzk5
MTc3ZjM1M2UyZjgwOWQyZGZjNzhhYjY2NTQ4YWFiOTI5MzU5NC4uZDQ3NmUwYWU3MzRjYzE1N2Nk
YmM4ZmFkNTgzYmRjOGExZmFmYWU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC0zNDYsMTAgKzM0Niw5IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgCiAgICAgLy8gTlNBY2Nlc3NpYmlsaXR5UG9zdE5v
dGlmaWNhdGlvbiB3aWxsIGNhbGwgdGhpcyBtZXRob2QsIChidXQgbm90IHdoZW4gcnVubmluZyBE
UlQpLCBzbyBBU1NFUlQgaGVyZSB0byBtYWtlIHN1cmUgaXQgZG9lcyBub3QgY3Jhc2guCiAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2NjYyCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBBU1NFUlQoW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlJc0ln
bm9yZWRdIHx8IHRydWUpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0
aFVzZXJJbmZvKG9iai0+d3JhcHBlcigpLCBtYWNOb3RpZmljYXRpb24sIG5pbCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0
eU9iamVjdE1hYy5tbQppbmRleCBjY2U5NzJjZmNkMDJlNTc1NGVjY2VjYzU3OGZhNGI0MGE5OTY4
YzI2Li44ZDgxNzIxYjBiM2MzZDFjMmU0ZjVhZTdiOTUwNTg4ZTg5NzQyMjQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlP
YmplY3RNYWMubW0KQEAgLTU1LDEwICs1NSw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6
b3ZlcnJpZGVBdHRhY2htZW50UGFyZW50KEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudCkKICAg
ICAgICAgcGFyZW50V3JhcHBlciA9IHBhcmVudC0+d3JhcHBlcigpOwogICAgIH0KIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgW1t3cmFwcGVyKCkgYXR0YWNobWVudFZpZXddIGFjY2Vzc2liaWxp
dHlTZXRPdmVycmlkZVZhbHVlOnBhcmVudFdyYXBwZXIgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJp
bGl0eVBhcmVudEF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAgICAgCiBib29sIEFjY2Vzc2li
aWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3QKQEAgLTY5
LDExICs2OCwxMCBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJZ25v
cmVBdHRhY2htZW50KCkgY29uc3QKICAgICBpZiAoaXNBdHRhY2htZW50KCkgJiYgKHdpZGdldCA9
IHdpZGdldEZvckF0dGFjaG1lbnRWaWV3KCkpICYmIHdpZGdldC0+aXNGcmFtZVZpZXcoKSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChbd3JhcHBl
cigpIGF0dGFjaG1lbnRWaWV3XSkKICAgICAgICAgcmV0dXJuIFtbd3JhcHBlcigpIGF0dGFjaG1l
bnRWaWV3XSBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIC8vIEF0
dGFjaG1lbnRzIGFyZSBpZ25vcmVkIGJ5IGRlZmF1bHQgKHVubGVzcyB3ZSBkZXRlcm1pbmUgdGhh
dCB3ZSBzaG91bGQgZXhwb3NlIHRoZW0pLgogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCAwNGMxODZhMDhhYzhhZjI4NjA3YzQxYmE3
ZWRkMGEwMTdjOTJiZjY2Li42NTAzZDQwNmNlODMwMjljY2ZmZTVkM2Y0YzE5NDAwMTZlM2NkYjY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMTY3OSwxMCAr
MTY3OSw5IEBAIHN0YXRpYyBpZCB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9ucyhB
WE9iamVjdENhY2hlKiBjYWNoZSwgY29uc3QgVmlzaWJsCiAgICAgV2lkZ2V0KiB3aWRnZXQgPSBt
X29iamVjdC0+d2lkZ2V0KCk7CiAgICAgaWYgKCF3aWRnZXQpCiAgICAgICAgIHJldHVybiBuaWw7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICByZXR1cm4gWyh3aWRnZXQtPnBsYXRmb3JtV2lkZ2V0
KCkpIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTogTlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5B
dHRyaWJ1dGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAtIChpZClyZW1vdGVBY2Nlc3NpYmlsaXR5UGFy
ZW50T2JqZWN0CkBAIC0xNzUxLDEwICsxNzUwLDkgQEAgc3RhdGljIE5TTXV0YWJsZUFycmF5ICpj
b252ZXJ0U3RyaW5nc1RvTlNBcnJheShjb25zdCBWZWN0b3I8U3RyaW5nPiYgdmVjdG9yKQogICAg
IGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5wbGF0Zm9ybVdpZGdldCgpKSB7CiAgICAgICAg
IE5TUG9pbnQgbnNQb2ludCA9IChOU1BvaW50KXBvaW50OwogICAgICAgICBOU1ZpZXcqIHZpZXcg
PSBmcmFtZVZpZXctPmRvY3VtZW50VmlldygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICBuc1BvaW50ID0gW1t2aWV3IHdpbmRvd10gY29udmVydEJhc2VUb1NjcmVlbjpbdmlldyBj
b252ZXJ0UG9pbnQ6bnNQb2ludCB0b1ZpZXc6bmlsXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAg
ICByZXR1cm4gQ0dQb2ludE1ha2UobnNQb2ludC54LCBuc1BvaW50LnkpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIApAQCAtMjAwNiwxMSArMjAwNCwxMCBAQCBzdGF0aWMgTlNTdHJpbmcgKnJvbGVW
YWx1ZVRvTlNTdHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUgdmFsdWUpCiAKIC0gKE5TU3RyaW5nKily
b2xlCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAobV9vYmplY3QtPmlzQXR0YWNobWVu
dCgpKQogICAgICAgICByZXR1cm4gW1tzZWxmIGF0dGFjaG1lbnRWaWV3XSBhY2Nlc3NpYmlsaXR5
QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5Um9sZUF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IG1fb2JqZWN0LT5yb2xlVmFsdWUoKTsKIAog
ICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpMYWJlbCAmJiBpczxBY2Nlc3NpYmls
aXR5TGFiZWw+KCptX29iamVjdCkgJiYgZG93bmNhc3Q8QWNjZXNzaWJpbGl0eUxhYmVsPigqbV9v
YmplY3QpLmNvbnRhaW5zT25seVN0YXRpY1RleHQoKSkKQEAgLTIwMzAsOCArMjAyNyw3IEBAIHN0
YXRpYyBOU1N0cmluZyAqcm9sZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3NpYmlsaXR5Um9sZSB2YWx1
ZSkKICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VW5rbm93blJvbGU7CiB9CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAtIChOU1N0cmluZyopc3Vicm9sZQogewogICAgIGlmIChtX29iamVjdC0+aXNQYXNz
d29yZEZpZWxkKCkpCkBAIC0yMjQxLDE5ICsyMjM3LDE4IEBAIHN0YXRpYyBOU1N0cmluZyAqcm9s
ZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3NpYmlsaXR5Um9sZSB2YWx1ZSkKICAgICAKICAgICByZXR1
cm4gbmlsOwogfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAKIC0gKE5TU3RyaW5nKilyb2xlRGVzY3JpcHRpb24KIHsKICAg
ICBpZiAoIW1fb2JqZWN0KQogICAgICAgICByZXR1cm4gbmlsOwogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICAvLyBhdHRhY2htZW50cyBoYXZlIHRoZSBBWEltYWdlIHJvbGUsIGJ1dCBhIGRpZmZl
cmVudCBzdWJyb2xlCiAgICAgaWYgKG1fb2JqZWN0LT5pc0F0dGFjaG1lbnQoKSkKICAgICAgICAg
cmV0dXJuIFtbc2VsZiBhdHRhY2htZW50Vmlld10gYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVl
Ok5TQWNjZXNzaWJpbGl0eVJvbGVEZXNjcmlwdGlvbkF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAK
ICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG92ZXJyaWRlUm9sZURlc2NyaXB0aW9uID0gbV9vYmpl
Y3QtPnJvbGVEZXNjcmlwdGlvbigpOwogICAgIGlmICghb3ZlcnJpZGVSb2xlRGVzY3JpcHRpb24u
aXNOdWxsKCkgJiYgIW92ZXJyaWRlUm9sZURlc2NyaXB0aW9uLmlzRW1wdHkoKSkKQEAgLTM0NzIs
OCArMzQ2Nyw3IEBAIHN0YXRpYyBOU1N0cmluZyAqcm9sZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3Np
YmlsaXR5Um9sZSB2YWx1ZSkKICAgICByZXR1cm4gcGFyYW1BdHRyczsKIH0KIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KIAogLSAodm9pZClhY2Nlc3NpYmlsaXR5UGVyZm9ybVByZXNzQWN0aW9uCiB7CkBAIC0z
NTMxLDcgKzM1MjUsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnJvbGVWYWx1ZVRvTlNTdHJpbmcoQWNj
ZXNzaWJpbGl0eVJvbGUgdmFsdWUpCiAgICAgICAgIG1fb2JqZWN0LT5kZWNyZW1lbnQoKTsKIH0K
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAKIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBlcmZvcm1TaG93TWVudUFjdGlvbgog
ewpAQCAtNDM0Myw4ICs0MzM3LDcgQEAgc3RhdGljIHZvaWQgZm9ybWF0Rm9yRGVidWdnZXIoY29u
c3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHJhbmdlLCBjaGFyKiBidWZmZXIsIHUKICAgICByZXR1
cm4gTlNOb3RGb3VuZDsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIC0gKE5TVUludGVnZXIpYWNjZXNz
aWJpbGl0eUFycmF5QXR0cmlidXRlQ291bnQ6KE5TU3RyaW5nICopYXR0cmlidXRlCiB7CiAgICAg
aWYgKCFbc2VsZiB1cGRhdGVPYmplY3RCYWNraW5nU3RvcmVdKQpAQCAtNDM2NSw3ICs0MzU4LDcg
QEAgc3RhdGljIHZvaWQgZm9ybWF0Rm9yRGVidWdnZXIoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFu
Z2UmIHJhbmdlLCBjaGFyKiBidWZmZXIsIHUKICAgICAKICAgICByZXR1cm4gW3N1cGVyIGFjY2Vz
c2liaWxpdHlBcnJheUF0dHJpYnV0ZUNvdW50OmF0dHJpYnV0ZV07CiB9Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogLSAo
TlNBcnJheSAqKWFjY2Vzc2liaWxpdHlBcnJheUF0dHJpYnV0ZVZhbHVlczooTlNTdHJpbmcgKilh
dHRyaWJ1dGUgaW5kZXg6KE5TVUludGVnZXIpaW5kZXggbWF4Q291bnQ6KE5TVUludGVnZXIpbWF4
Q291bnQKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlw
dE9iamVjdC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5t
bQppbmRleCAwMmI4NDI4M2VkMzliMTQxMmRhMGMwMTMzYTAyNzM5YTBiNjQyMzM0Li5iNWVjMTBk
ZTNlZjBlMWM1NDY2MjUyYjk1NzJmZjI1N2MwNDIzNDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCkBAIC03MDIsMTMgKzcwMiwxMiBAQCBzdGF0
aWMgdm9pZCBnZXRMaXN0RnJvbU5TQXJyYXkoRXhlY1N0YXRlICpleGVjLCBOU0FycmF5ICphcnJh
eSwgUm9vdE9iamVjdCogcm9vdAogICAgIHJldHVybiBzZWxmOwogfQogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xb2Jq
Yy1taXNzaW5nLXN1cGVyLWNhbGxzIgorSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1Xb2Jq
Yy1taXNzaW5nLXN1cGVyLWNhbGxzIikKIC0gKHZvaWQpZGVhbGxvYwogewogICAgIHJldHVybjsK
IH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9DTEFOR19XQVJOSU5HX0VO
RAogCiArIChXZWJVbmRlZmluZWQgKil1bmRlZmluZWQKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfY2xhc3MubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
b2JqYy9vYmpjX2NsYXNzLm1tCmluZGV4IGNlMWVmNjU1N2EwNzYzYTdkMzQzMGEzYmY5ODZhMTk4
N2Y4Y2IzNTYuLjNlYzk2ZWMwOGU2OWNkZGRjM2NmN2QxMmU3MjhkNDJjNWUxYTZkMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfY2xhc3MubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19jbGFzcy5tbQpAQCAtMTYzLDEwICsxNjMsOSBA
QCBGaWVsZCogT2JqY0NsYXNzOjpmaWVsZE5hbWVkKFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IEluc3RhbmNlKiBpbnN0YW5jZSkgY29ucwogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZmll
bGROYW1lID0gYWRvcHRDRihDRlN0cmluZ0NyZWF0ZVdpdGhDU3RyaW5nKE5VTEwsIGpzTmFtZS5k
YXRhKCksIGtDRlN0cmluZ0VuY29kaW5nQVNDSUkpKTsKICAgICBpZCB0YXJnZXRPYmplY3QgPSAo
c3RhdGljX2Nhc3Q8T2JqY0luc3RhbmNlKj4oaW5zdGFuY2UpKS0+Z2V0T2JqZWN0KCk7CiAjaWYg
UExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZGVjbGFyZWQtc2VsZWN0b3IiCisgICAgSUdOT1JF
X1dBUk5JTkdfQkVHSU4oIi1XdW5kZWNsYXJlZC1zZWxlY3RvciIpCiAgICAgaWQgYXR0cmlidXRl
cyA9IFt0YXJnZXRPYmplY3QgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhdHRyaWJ1dGVL
ZXlzKV0gPyBbdGFyZ2V0T2JqZWN0IHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IoYXR0cmlidXRl
S2V5cyldIDogbmlsOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9X
QVJOSU5HX0VORAogI2Vsc2UKICAgICBpZCBhdHRyaWJ1dGVzID0gW3RhcmdldE9iamVjdCBhdHRy
aWJ1dGVLZXlzXTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0Nv
bW1vbkNyeXB0b1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ29tbW9uQ3J5
cHRvVXRpbGl0aWVzLmNwcAppbmRleCBlMDQ5MmVlNjcxMTBmODhjNzMxNTIxNmQ2YzY4YjYzMzQ5
NmQ3N2EwLi43MmZjYzFkYjI3YTNkMTcyNmNiZmE2Nzc2MjM3Njk3MjExYzAzZGYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmNwcApAQCAtNTIs
MTAgKzUyLDkgQEAgYm9vbCBnZXRDb21tb25DcnlwdG9EaWdlc3RBbGdvcml0aG0oQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBoYXNoRnVuY3Rpb24sIENDRGkKIHsKICAgICBzd2l0Y2ggKGhhc2hG
dW5jdGlvbikgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzE6Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGFsZ29yaXRobSA9IGtDQ0RpZ2VzdFNIQTE7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OlNIQV8yMjQ6CiAgICAgICAgIGFsZ29yaXRobSA9IGtDQ0RpZ2Vz
dFNIQTIyNDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxn
b3JpdGhtQUVTX0dDTU1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0Fs
Z29yaXRobUFFU19HQ01NYWMuY3BwCmluZGV4IGIyYmMyNDg4OGM3ZWU3NThlOWRiNDAyMzk3YThm
YTZlNGYxZDFlMDguLjExZjQ2NzAxMDQ1ZTkwMTM5ZjVkYTMyOTdhOGQ5ZTkwMDZmYzY1YmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dD
TU1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1B
RVNfR0NNTWFjLmNwcApAQCAtNDAsMTAgKzQwLDkgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rv
cjx1aW50OF90Pj4gZW5jcnlwdEFFU19HQ00oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpdiwgY28K
ICAgICBWZWN0b3I8dWludDhfdD4gY2lwaGVyVGV4dChwbGFpblRleHQuc2l6ZSgpKTsgLy8gUGVy
IHNlY3Rpb24gNS4yLjEuMjogaHR0cDovL252bHB1YnMubmlzdC5nb3YvbmlzdHB1YnMvTGVnYWN5
L1NQL25pc3RzcGVjaWFscHVibGljYXRpb244MDAtMzhkLnBkZgogICAgIFZlY3Rvcjx1aW50OF90
PiB0YWcoZGVzaXJlZFRhZ0xlbmd0aEluQnl0ZXMpOwogICAgIC8vIHRhZ0xlbmd0aCBpcyBhY3R1
YWwgYW4gaW5wdXQgPHJkYXI6Ly9wcm9ibGVtLzMwNjYwMDc0PgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgQ0NDcnlwdG9yU3RhdHVzIHN0YXR1cyA9IENDQ3J5cHRvckdDTShrQ0NFbmNyeXB0LCBr
Q0NBbGdvcml0aG1BRVMsIGtleS5kYXRhKCksIGtleS5zaXplKCksIGl2LmRhdGEoKSwgaXYuc2l6
ZSgpLCBhZGRpdGlvbmFsRGF0YS5kYXRhKCksIGFkZGl0aW9uYWxEYXRhLnNpemUoKSwgcGxhaW5U
ZXh0LmRhdGEoKSwgcGxhaW5UZXh0LnNpemUoKSwgY2lwaGVyVGV4dC5kYXRhKCksIHRhZy5kYXRh
KCksICZkZXNpcmVkVGFnTGVuZ3RoSW5CeXRlcyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgaWYgKHN0YXR1
cykKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yIH07CiAKQEAgLTU4
LDEwICs1Nyw5IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IGRlY3lwdEFF
U19HQ00oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpdiwgY29uCiAgICAgVmVjdG9yPHVpbnQ4X3Q+
IHRhZyhkZXNpcmVkVGFnTGVuZ3RoSW5CeXRlcyk7CiAgICAgc2l6ZV90IG9mZnNldCA9IGNpcGhl
clRleHQuc2l6ZSgpIC0gZGVzaXJlZFRhZ0xlbmd0aEluQnl0ZXM7CiAgICAgLy8gdGFnTGVuZ3Ro
IGlzIGFjdHVhbCBhbiBpbnB1dCA8cmRhcjovL3Byb2JsZW0vMzA2NjAwNzQ+Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICBDQ0NyeXB0b3JTdGF0dXMgc3RhdHVzID0gQ0NDcnlwdG9yR0NNKGtDQ0Rl
Y3J5cHQsIGtDQ0FsZ29yaXRobUFFUywga2V5LmRhdGEoKSwga2V5LnNpemUoKSwgaXYuZGF0YSgp
LCBpdi5zaXplKCksIGFkZGl0aW9uYWxEYXRhLmRhdGEoKSwgYWRkaXRpb25hbERhdGEuc2l6ZSgp
LCBjaXBoZXJUZXh0LmRhdGEoKSwgb2Zmc2V0LCBwbGFpblRleHQuZGF0YSgpLCB0YWcuZGF0YSgp
LCAmZGVzaXJlZFRhZ0xlbmd0aEluQnl0ZXMpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIGlmIChzdGF0dXMp
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1h
Yy5tbQppbmRleCBhNTE3ZjkyMmUwNDhkMTQxNzdjNGY2ZjhjNDM2MjMxMzA4ODE0OTY5Li40YWQ3
YWIwNDBmMWM3Y2M5YWNlZTQyNDdlYWM4YTQ4MGYzZmQ3NzE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0KQEAg
LTIyMCwxNSArMjIwLDE0IEBAIGJvb2wgd3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkoY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiBtYXN0ZXJLZXksIGNvbnN0IFZlY3Rvcjx1aW50CiAgICAgc2l6ZV90IHRh
Z0xlbmd0aCA9IDE2OwogICAgIHVpbnQ4X3QgdGFnW3RhZ0xlbmd0aF07CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIHN0YXR1cyA9IENDQ3J5cHRvckdDTShrQ0NFbmNyeXB0LCBrQ0NBbGdvcml0
aG1BRVMxMjgsIGtlay5kYXRhKCksIGtlay5zaXplKCksCiAgICAgICAgIG51bGxwdHIsIDAsIC8v
IGl2CiAgICAgICAgIG51bGxwdHIsIDAsIC8vIGF1dGggZGF0YQogICAgICAgICBrZXkuZGF0YSgp
LCBrZXkuc2l6ZSgpLAogICAgICAgICBlbmNyeXB0ZWRLZXkuZGF0YSgpLAogICAgICAgICB0YWcs
ICZ0YWdMZW5ndGgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgaWYgKHN0YXR1cyAhPSBrQ0NTdWNjZXNz
KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yODksMTUgKzI4OCwxNCBAQCBib29sIHVud3Jh
cFNlcmlhbGl6ZWRDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBtYXN0ZXJLZXksIGNv
bnN0IFZlY3Rvcjx1aQogICAgIHVpbnQ4X3QgYWN0dWFsVGFnW3RhZ0xlbmd0aF07CiAKICAgICBr
ZXkucmVzaXplKGVuY3J5cHRlZEtleS5zaXplKCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
c3RhdHVzID0gQ0NDcnlwdG9yR0NNKGtDQ0RlY3J5cHQsIGtDQ0FsZ29yaXRobUFFUzEyOCwga2Vr
LmRhdGEoKSwga2VrLnNpemUoKSwKICAgICAgICAgbnVsbHB0ciwgMCwgLy8gaXYKICAgICAgICAg
bnVsbHB0ciwgMCwgLy8gYXV0aCBkYXRhCiAgICAgICAgIGVuY3J5cHRlZEtleS5kYXRhKCksIGVu
Y3J5cHRlZEtleS5zaXplKCksCiAgICAgICAgIGtleS5kYXRhKCksCiAgICAgICAgIGFjdHVhbFRh
ZywgJnRhZ0xlbmd0aCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBpZiAoc3RhdHVzICE9IGtDQ1N1Y2Nl
c3MpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5IGIv
U291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0
eUVsZW1lbnRNYXAucHkKaW5kZXggYjM0ZTYxN2IxNDZkMzI5ZmIxYmMzMmEwYmI3MGM3Y2JiYTQ5
OTkxYS4uNDRmYWQzYTVjMmZmNzVlOTdjNWQwMDkyNDNmMzc1NDk2NGYwNjExZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJp
bGl0eUVsZW1lbnRNYXAucHkKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBz
ZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkKQEAgLTk0LDExICs5NCw3IEBA
IG91dHB1dF9maWxlLndyaXRlKCIiIgogCiAjaW5jbHVkZSAiQ1NTUGFyc2VyU2VsZWN0b3IuaCIK
IAotI2lmIGRlZmluZWQoX19jbGFuZ19fKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIgot
I2VuZGlmCitJR05PUkVfV0FSTklOR19CRUdJTigiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIpCiAK
IC8vIE9sZGVyIHZlcnNpb25zIG9mIGdwZXJmIGxpa2UgdG8gdXNlIHRoZSBgcmVnaXN0ZXJgIGtl
eXdvcmQuCiAjZGVmaW5lIHJlZ2lzdGVyCkBAIC0yMDMsOSArMTk5LDcgQEAgUHNldWRvQ2xhc3NP
ckNvbXBhdGliaWxpdHlQc2V1ZG9FbGVtZW50IHBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmls
aXR5RWxlbWVudFMKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jaWYgZGVmaW5lZChfX2Ns
YW5nX18pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9XQVJO
SU5HX0VORAogCiAiIiIpCiBvdXRwdXRfZmlsZS5jbG9zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvRWxlbWVudHNNYXAucHkgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvRWxlbWVudHNNYXAucHkKaW5kZXggMjAxODI2ZWQ1
MTM4OTRkNGZmN2YzYWYwNTEzYWQ3MjM4NjkyYWY4OC4uZWMyMGIxMGZkYmE4MGZlODllMGFiYjEz
MGMyMmMyNDY2MzgwOWVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxl
Y3RvclBzZXVkb0VsZW1lbnRzTWFwLnB5CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlU2Vs
ZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5weQpAQCAtOTIsMTEgKzkyLDcgQEAgb3V0cHV0X2ZpbGUu
d3JpdGUoIiIiCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2VsZWN0b3JQc2V1ZG9U
eXBlTWFwLmgiCiAKLSNpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXBy
YWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdpbXBsaWNpdC1mYWxs
dGhyb3VnaCIKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XaW1wbGljaXQtZmFsbHRo
cm91Z2giKQogCiAvLyBPbGRlciB2ZXJzaW9ucyBvZiBncGVyZiBsaWtlIHRvIHVzZSB0aGUgYHJl
Z2lzdGVyYCBrZXl3b3JkLgogI2RlZmluZSByZWdpc3RlcgpAQCAtMTk4LDkgKzE5NCw3IEBAIENT
U1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50VHlwZSBwYXJzZVBzZXVkb0VsZW1lbnRTdHJpbmcoY29u
c3QgU3RyaW5nSW1wbCYgcHNldWRvCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2lmIGRl
ZmluZWQoX19jbGFuZ19fKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitJ
R05PUkVfV0FSTklOR19FTkQKIAogIiIiKQogb3V0cHV0X2ZpbGUuY2xvc2UoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCmluZGV4IGIyOGQ4NDZmNjg3NjI4YzNjMDMwZjQ3
MjljNmFjMjUxMDI1NTIyMjcuLjUzYTBmMmE4MTU1YzlmNjVhYjUxZGZiZjljYmQ0ZmY2YjdlODAx
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKQEAgLTIwMTEsMTAg
KzIwMTEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY29udGFpbnNLYW5hTGV0dGVycyhjb25zdCBT
dHJpbmcmIHBhdHRlcm4pCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgQ09NUElMRVIoR0ND
X09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYKK0FMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAvLyBOT1RFOiBJQ1UncyB1bm9ybV9ub3Jt
YWxpemUgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4KIAogc3RhdGljIHZvaWQgbm9ybWFsaXplQ2hh
cmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBWZWN0b3I8
VUNoYXI+JiBidWZmZXIpCkBAIC0yMDM4LDkgKzIwMzUsNyBAQCBzdGF0aWMgdm9pZCBub3JtYWxp
emVDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIFZl
Y3RvcgogICAgIEFTU0VSVChzdGF0dXMgPT0gVV9TVFJJTkdfTk9UX1RFUk1JTkFURURfV0FSTklO
Ryk7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHBvcAotI2VuZGlmCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogc3Rh
dGljIGJvb2wgaXNOb25MYXRpbjFTZXBhcmF0b3IoVUNoYXIzMiBjaGFyYWN0ZXIpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KaW5kZXggY2YyODliZjcwZTQwMDAzNjc2
NzgwOGQxYTE2OTlmNjgyMzdhYWMwMC4uMDJhYjVhZmUwODcwZTYzYzM4MmQzMzE3MDYxZjVkMjM3
ZjVlYWM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQpAQCAtODEs
MTEgKzgxLDEwIEBAIHZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQq
IHBhc3RlYm9hcmQsIGJvb2wgYWxsb3dQbGFpblRleHQsIE1hCiB7CiAgICAgUmVmUHRyPFJhbmdl
PiByYW5nZSA9IHNlbGVjdGVkUmFuZ2UoKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8g
RklYTUU6IEhvdyBjYW4gdGhpcyBoYXJkLWNvZGVkIHBhc3RlYm9hcmQgbmFtZSBiZSByaWdodCwg
Z2l2ZW4gdGhhdCB0aGUgcGFzc2VkLWluIHBhc3RlYm9hcmQgaGFzIGEgbmFtZT8KICAgICBjbGll
bnQoKS0+c2V0SW5zZXJ0aW9uUGFzdGVib2FyZChOU0dlbmVyYWxQYm9hcmQpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogCiAgICAgYm9vbCBjaG9zZVBsYWluVGV4dDsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gZnJhZ21lbnQgPSB3ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQoKnBhc3RlYm9hcmQsICpyYW5n
ZSwgYWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KTsKQEAgLTExMSwxMSArMTEwLDEwIEBA
IHZvaWQgRWRpdG9yOjp0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oKQogCiAgICAgVmVjdG9y
PFN0cmluZz4gdHlwZXM7CiAgICAgdHlwZXMuYXBwZW5kKFN0cmluZyhsZWdhY3lTdHJpbmdQYXN0
ZWJvYXJkVHlwZSgpKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnNldFR5cGVzKHR5cGVzLCBOU0ZpbmRQYm9hcmQp
OwogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0U3Ry
aW5nRm9yVHlwZShtX2ZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmcoc2VsZWN0
ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyKCkpLCBsZWdhY3lTdHJpbmdQYXN0ZWJvYXJkVHlwZSgpLCBO
U0ZpbmRQYm9hcmQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiB2b2lkIEVkaXRvcjo6cmVhZFNlbGVjdGlv
bkZyb21QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIE1haWxCbG9ja3F1
b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVvdGVIYW5kbGluZykKQEAgLTE2OSwxMSArMTY3LDEwIEBA
IHZvaWQgRWRpdG9yOjpyZXBsYWNlTm9kZUZyb21QYXN0ZWJvYXJkKE5vZGUqIG5vZGUsIGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgIC8vIEZJWE1FOiBIb3cgY2FuIHRoaXMgaGFyZC1jb2RlZCBwYXN0
ZWJvYXJkIG5hbWUgYmUgcmlnaHQsIGdpdmVuIHRoYXQgdGhlIHBhc3NlZC1pbiBwYXN0ZWJvYXJk
IGhhcyBhIG5hbWU/CiAgICAgY2xpZW50KCktPnNldEluc2VydGlvblBhc3RlYm9hcmQoTlNHZW5l
cmFsUGJvYXJkKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIGJvb2wgY2hvc2VQbGFpblRleHQ7CiAgICAg
aWYgKFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IHdlYkNvbnRlbnRGcm9tUGFz
dGVib2FyZChwYXN0ZWJvYXJkLCAqcmFuZ2UsIHRydWUsIGNob3NlUGxhaW5UZXh0KSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IGEyNjQzMGNmMjUy
NGFkMjA0ZDYxMzc5YTBlZDBiMDA5OTY1NmI5MWQuLmViMDNhNzk1NjYyNTdmMGExMWY4NTJlOTc2
MjRlOTU2YzMxYTU3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50
SGFuZGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJN
YWMubW0KQEAgLTYxMiwxMCArNjEyLDkgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZl
bnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAg
IC8vIG5vIHVwLXRvLWRhdGUgY2FjaGUgb2YgdGhlbSBhbnl3aGVyZS4KICAgICAgICAgZmFrZUV2
ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W1t2aWV3LT5w
bGF0Zm9ybVdpZGdldCgpIHdpbmRvd10KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0
aW9uXV0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVy
RmxhZ3M6W2luaXRpYXRpbmdFdmVudCBtb2RpZmllckZsYWdzXQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbaW5pdGlh
dGluZ0V2ZW50IHdpbmRvd051bWJlcl0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCmluZGV4IDUyZGI5OWUwZjllNTdmM2JhMzU4
ZGY4NWYwNzFkYjc4NTI4NGJjMGYuLjljNDRiODZlZWQ3YjViZmYwZmQ2ZWI2OTY3NTExNmZkOWFi
NThhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlci5tbQpAQCAtMTMyLDEwICsxMzIsOSBAQCB2b2lkIFNlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVy
KiwgRwogCiAgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IGdyYXBoaWNzQ29udGV4dC5wbGF0
Zm9ybUNvbnRleHQoKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0dMYXllclJlZiBoaWdo
bGlnaHRMYXllciA9IERESGlnaGxpZ2h0R2V0TGF5ZXJXaXRoQ29udGV4dChkZEhpZ2hsaWdodCgp
LCBjZ0NvbnRleHQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIENHUmVjdCBoaWdobGlnaHRCb3VuZGluZ1Jl
Y3QgPSBEREhpZ2hsaWdodEdldEJvdW5kaW5nUmVjdChkZEhpZ2hsaWdodCgpKTsKICAgICBoaWdo
bGlnaHRCb3VuZGluZ1JlY3Qub3JpZ2luID0gQ0dQb2ludFplcm87CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggYjA1NTBjZjUzMDVlODYzNWRi
NGQ1YTgyZTg5NjZmMDhmMDJhNzUwYi4uNDJiYTE0NWY2NGM3Yjk3NWMyZTFjNDZlMmExNTJiNjY1
MzE2NTViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5j
cHAKQEAgLTU0LDE0ICs1NCw5IEBAIFN0cmluZyBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoU3RyaW5n
IGZvcm1hdCwgLi4uKQogICAgIHZhX2xpc3QgYXJndW1lbnRzOwogICAgIHZhX3N0YXJ0KGFyZ3Vt
ZW50cywgZm9ybWF0KTsKIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1u
b25saXRlcmFsIgotI2VuZGlmCisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVHSU4KICAg
ICBhdXRvIHJlc3VsdCA9IGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVXaXRoRm9ybWF0QW5kQXJndW1l
bnRzKDAsIDAsIGZvcm1hdC5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBhcmd1bWVudHMpKTsKLSNp
ZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgor
ICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0VORAogCiAgICAgdmFfZW5kKGFyZ3VtZW50cyk7
CiAgICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVl
blByb3BlcnRpZXMuaAppbmRleCA0MWE1MGIyMTNmZGUwOGQzN2ZkYmFhY2JiYzk2YjYxYWM4NzMx
MzVjLi4zOTY1NWY2MTQ3YmFlMmZkMjJlZDBjY2E4MGZhOWM2MWFjN2NkODgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oCkBAIC0xOTUsMTAgKzE5NSw5IEBA
IHN0ZDo6b3B0aW9uYWw8U2NyZWVuRGF0YT4gU2NyZWVuRGF0YTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCiAKICAgICAgICAgYXV0byBjb2xvclNwYWNlRGF0YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGljY0RhdGEtPmRhdGEoKSwgaWNjRGF0YS0+c2l6ZSgp
KSk7CiAgICAgICAgIC8vIEZJWE1FOiA8aHR0cDovL3dlYmtpdC5vcmcvYi8xODQzNTg+IFdlIHNo
b3VsZCBzd2l0Y2ggdG8gQ0dDb2xvclNwYWNlQ3JlYXRlSUNDQmFzZWQuCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgICAgIGNnQ29sb3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3Jl
YXRlV2l0aElDQ1Byb2ZpbGUoY29sb3JTcGFjZURhdGEuZ2V0KCkpKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcAppbmRleCBi
NmNlNjk2MjA1MTA3YmQyMmU5NGZjNDM1ZDg3MDFlMGY4M2VlNjJlLi5mMWJiOGI1NDM2YTUxODJi
OTNhY2MwZjY1OTUwMDI0YjdkYTk3ZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHAKQEAgLTEwMywx
MCArMTAzLDkgQEAgSElER2FtZXBhZFByb3ZpZGVyOjpISURHYW1lcGFkUHJvdmlkZXIoKQogCiB2
b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6c3RvcE1vbml0b3JpbmdJbnB1dCgpCiB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1Xbm9ubnVsbCIKKyAgICBBTExPV19OVUxMX0FSR1VNRU5UX0JFR0lOCiAgICAgSU9ISURNYW5h
Z2VyUmVnaXN0ZXJJbnB1dFZhbHVlQ2FsbGJhY2sobV9tYW5hZ2VyLmdldCgpLCBudWxscHRyLCBu
dWxscHRyKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19OVUxMX0FS
R1VNRU5UX0VORAogfQogCiB2b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6c3RhcnRNb25pdG9yaW5n
SW5wdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxh
dGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtRGlzcGxheS5jcHAKaW5kZXggNWYyOWFmODVhOTQ4M2Q0NzYyZTk4N2IzMjA1YjgwZTE3YzNi
YjE5Yy4uNDAzMGM5MzZkNGE5ZDUyMWZmOGEwZjQ5ZmEwNWQ5YWUzOWJlODllNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3Bw
CkBAIC0xMTgsMTQgKzExOCw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IFBs
YXRmb3JtRGlzcGxheTo6Y3JlYXRlUGxhdGZvcm1EaXNwbGF5KCkKIFBsYXRmb3JtRGlzcGxheSYg
UGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNl
X2ZsYWcgb25jZUZsYWc7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZXhpdC10aW1l
LWRlc3RydWN0b3JzIgotI2VuZGlmCisgICAgSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1X
ZXhpdC10aW1lLWRlc3RydWN0b3JzIikKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBsYXRm
b3JtRGlzcGxheT4gZGlzcGxheTsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIElHTk9SRV9DTEFOR19XQVJOSU5HX0VORAogICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKICAgICAgICAgZGlzcGxheSA9IGNyZWF0ZVBs
YXRmb3JtRGlzcGxheSgpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRv
ci5jcHAKaW5kZXggNGQ1ZDgwODhhOTJjZTk3ZTljZDQ4MGJjNGM4ZWE1NjhiOGU2YTZiYS4uZTgy
YmJmNmFhYzBiOWI5NTNmNzViZDI0MTI2OThhOWQwOWUxY2EyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWly
QXdhcmVUZXh0SXRlcmF0b3IuY3BwCkBAIC02OSwxMCArNjksNyBAQCBib29sIFN1cnJvZ2F0ZVBh
aXJBd2FyZVRleHRJdGVyYXRvcjo6Y29uc3VtZVNsb3dDYXNlKFVDaGFyMzImIGNoYXJhY3Rlciwg
dW5zaWduZQogICAgIHJldHVybiB0cnVlOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5H
KQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYKK0FMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAvLyBOT1RFOiBJQ1UncyB1bm9ybV9ub3JtYWxpemUgZnVu
Y3Rpb24gaXMgZGVwcmVjYXRlZC4KIAogVUNoYXIzMiBTdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRl
cmF0b3I6Om5vcm1hbGl6ZVZvaWNpbmdNYXJrcygpCkBAIC05NSw4ICs5Miw2IEBAIFVDaGFyMzIg
U3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yOjpub3JtYWxpemVWb2ljaW5nTWFya3MoKQog
ICAgIHJldHVybiAwOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2Jq
Qy5tbQppbmRleCBiMmMxZTk2NjM0YjNmNTY0ZmZjMGM1YmQxNmIyOWVlNDJkODRmYTJjLi5mNzgy
ZDhiN2UwZmQ4OTdkMDJiYWE1YWQxZjc3MzMxYWJiOWZhYmNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91
cEFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCkBAIC0xMjMsMTAgKzEyMyw5IEBA
IHZvaWQgTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6OnVwZGF0ZU9wdGlvbnMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIGNoYXJhY3RlcmlzCiAKICAgICAgICAgbV9vcHRpb25zLnJlbW92ZSgoX19i
cmlkZ2UgQ0ZUeXBlUmVmKXJlbW92ZWRBVk9wdGlvbik7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgQVZNZWRpYVNlbGVjdGlvbk9wdGlvbiogc2VsZWN0ZWRPcHRpb24gPSBbbV9wbGF5
ZXJJdGVtIHNlbGVjdGVkTWVkaWFPcHRpb25Jbk1lZGlhU2VsZWN0aW9uR3JvdXA6bV9tZWRpYVNl
bGVjdGlvbkdyb3VwLmdldCgpXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBmb3IgKEFWTWVkaWFTZWxlY3Rp
b25PcHRpb24qIGFkZGVkQVZPcHRpb24gaW4gYWRkZWRBVk9wdGlvbnMuZ2V0KCkpIHsKICAgICAg
ICAgYXV0byBhZGRlZE9wdGlvbiA9IE1lZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQzo6Y3JlYXRl
KCp0aGlzLCBhZGRlZEFWT3B0aW9uKTsKICAgICAgICAgaWYgKGFkZGVkQVZPcHRpb24gPT0gc2Vs
ZWN0ZWRPcHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFW
U3RyZWFtU2Vzc2lvbi5tbQppbmRleCAyNmFiMDI0ZDhiYzlmODJiZjdkNjU1NTkzNmRjNWViNWFh
NGI1MDI4Li44NDM1MmQ3ZGUwNWU1NWRhYjVmZDZmOWRlNDdmYWVlODZhY2QyZmE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0K
QEAgLTE5OCwxMiArMTk4LDExIEBAIGJvb2wgQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6dXBk
YXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0CiAKICAgICAgICAg
UmV0YWluUHRyPE5TRGF0YT4gY2VydGlmaWNhdGVEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxv
Y10gaW5pdFdpdGhCeXRlczptX2NlcnRpZmljYXRlLT5kYXRhKCkgbGVuZ3RoOm1fY2VydGlmaWNh
dGUtPmxlbmd0aCgpXSk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdvYmpjLWxpdGVyYWwtY29udmVyc2lvbiIKKyAg
ICAgICAgSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1Xb2JqYy1saXRlcmFsLWNvbnZlcnNp
b24iKQogICAgICAgICBTdHJpbmcgc3RvcmFnZVBhdGggPSB0aGlzLT5zdG9yYWdlUGF0aCgpOwog
ICAgICAgICBpZiAoIXN0b3JhZ2VQYXRoLmlzRW1wdHkoKSAmJiBbZ2V0QVZTdHJlYW1TZXNzaW9u
Q2xhc3MoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHJlbW92ZVBlbmRpbmdFeHBpcmVk
U2Vzc2lvblJlcG9ydHM6d2l0aEFwcElkZW50aWZpZXI6c3RvcmFnZURpcmVjdG9yeUF0VVJMOild
KQogICAgICAgICAgICAgW2dldEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkgcmVtb3ZlUGVuZGluZ0V4
cGlyZWRTZXNzaW9uUmVwb3J0czpAW21fZXhwaXJlZFNlc3Npb24uZ2V0KCldIHdpdGhBcHBJZGVu
dGlmaWVyOmNlcnRpZmljYXRlRGF0YS5nZXQoKSBzdG9yYWdlRGlyZWN0b3J5QXRVUkw6W05TVVJM
IGZpbGVVUkxXaXRoUGF0aDpzdG9yYWdlUGF0aF1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBJR05PUkVfQ0xBTkdfV0FSTklOR19FTkQKICAgICAgICAgbV9leHBpcmVk
U2Vzc2lvbiA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTI0Mywx
MCArMjQyLDkgQEAgYm9vbCBDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjp1cGRhdGUoVWludDhB
cnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG5leHQKICAgICAgICAgfQogCiAgICAgICAg
IE5TRXJyb3IqIGVycm9yID0gbmlsOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBS
ZXRhaW5QdHI8TlNEYXRhPiByZXF1ZXN0ID0gW3Byb3RlY3RlZFNvdXJjZUJ1ZmZlci0+cGFyc2Vy
KCkgc3RyZWFtaW5nQ29udGVudEtleVJlcXVlc3REYXRhRm9yQXBwOmNlcnRpZmljYXRlRGF0YS5n
ZXQoKSBjb250ZW50SWRlbnRpZmllcjppbml0RGF0YS5nZXQoKSB0cmFja0lEOnByb3RlY3RlZFNv
dXJjZUJ1ZmZlci0+cHJvdGVjdGVkVHJhY2tJRCgpIG9wdGlvbnM6b3B0aW9ucy5nZXQoKSBlcnJv
cjomZXJyb3JdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgICAgICBpZiAoIVtwcm90ZWN0ZWRTb3Vy
Y2VCdWZmZXItPnBhcnNlcigpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoY29udGVudFBy
b3RlY3Rpb25TZXNzaW9uSWRlbnRpZmllcildKQogICAgICAgICAgICAgbV9zZXNzaW9uSWQgPSBj
cmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCk7CkBAIC0yNzMsMTAgKzI3MSw5IEBAIGJvb2wgQ0RN
U2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVp
bnQ4QXJyYXk+JiBuZXh0CiAgICAgZXJyb3JDb2RlID0gTWVkaWFQbGF5ZXI6Ok5vRXJyb3I7CiAg
ICAgc3lzdGVtQ29kZSA9IDA7CiAgICAgUmV0YWluUHRyPE5TRGF0YT4ga2V5RGF0YSA9IGFkb3B0
TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6a2V5LT5kYXRhKCkgbGVuZ3RoOmtleS0+
bGVuZ3RoKCldKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtwcm90ZWN0ZWRTb3VyY2VCdWZm
ZXItPnBhcnNlcigpIHByb2Nlc3NDb250ZW50S2V5UmVzcG9uc2VEYXRhOmtleURhdGEuZ2V0KCkg
Zm9yVHJhY2tJRDpwcm90ZWN0ZWRTb3VyY2VCdWZmZXItPnByb3RlY3RlZFRyYWNrSUQoKV07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNv
dXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCBkMzI2ZjJmYTJm
YjJiMWM2MGVkOWUzYjkzODhhYTU0NTlkOWQ3NWUxLi4xN2QxZDkyZGYyNzIwZWUzZWE0OWQ1NjM3
M2RhNTZiYzRjNWM5YTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RN
U2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC01NCwxMSArNTQsOSBAQCBwdWJsaWM6CiAK
ICAgICAvLyBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQ0Vycm9yQ2xpZW50CiAgICAgdm9pZCBs
YXllckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciAqLCBOU0Vycm9y
ICosIGJvb2wmIHNob3VsZElnbm9yZSkgb3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFn
bWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWls
YWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9CRUdJTgogICAgIHZvaWQgcmVuZGVyZXJE
aWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICosIE5TRXJyb3IgKiwg
Ym9vbCYgc2hvdWxkSWdub3JlKSBvdmVycmlkZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ORVdfQVBJX0VORAogCiAgICAgdm9pZCBhZGRTb3VyY2VCdWZmZXIoU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqKTsKICAgICB2b2lkIHJlbW92ZVNvdXJjZUJ1ZmZlcihT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXgg
ZGMzZGVlYjNmNzkyMDkwZmIwNjcyN2VmNDQ3MzRhZDA4M2Q1MGY4Mi4uNDA3MWM2YjZlODhhZGI1
Mjk5YWFiMTBjYmIwZjViMjE5ODNiMmYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0y
Njk5LDEwICsyNjk5LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpzZXRDdXJyZW50VGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXYKIAogICAgIGlmICh0cmFj
aykgewogICAgICAgICBpZiAodHJhY2stPnRleHRUcmFja0NhdGVnb3J5KCkgPT0gSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUFWRjo6TGVnYWN5Q2xvc2VkQ2FwdGlvbikKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgICAgICAgICBbbV9hdlBsYXllci5nZXQoKSBzZXRDbG9zZWRDYXB0aW9u
RGlzcGxheUVuYWJsZWQ6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogI2lmIEhBVkUoQVZGT1VO
REFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCkKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQog
ICAgICAgICBlbHNlIGlmICh0cmFjay0+dGV4dFRyYWNrQ2F0ZWdvcnkoKSA9PSBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGOjpPdXRPZkJhbmQpCkBAIC0yNzE1LDEwICsyNzE0LDkgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRDdXJyZW50VGV4dFRyYWNrKElu
YmFuZFRleHRUcmFja1ByaXYKICNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05f
R1JPVVApCiAgICAgICAgIFttX2F2UGxheWVySXRlbS5nZXQoKSBzZWxlY3RNZWRpYU9wdGlvbjow
IGluTWVkaWFTZWxlY3Rpb25Hcm91cDpzYWZlTWVkaWFTZWxlY3Rpb25Hcm91cEZvckxlZ2libGVN
ZWRpYSgpXTsKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBbbV9hdlBs
YXllci5nZXQoKSBzZXRDbG9zZWRDYXB0aW9uRGlzcGxheUVuYWJsZWQ6Tk9dOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICB9CiAKIH0KQEAgLTI3MzQsMTAgKzI3MzIsOSBAQCBTdHJpbmcgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrKCkg
Y29uc3QKICNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiAgICAg
Ly8gSWYgQVZGb3VuZGF0aW9uIGhhcyBhbiBhdWRpYmxlIGdyb3VwLCByZXR1cm4gdGhlIGxhbmd1
YWdlIG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgYXVkaWJsZSBvcHRpb24uCiAgICAgQVZNZWRp
YVNlbGVjdGlvbkdyb3VwVHlwZSAqYXVkaWJsZUdyb3VwID0gW21fYXZBc3NldC5nZXQoKSBtZWRp
YVNlbGVjdGlvbkdyb3VwRm9yTWVkaWFDaGFyYWN0ZXJpc3RpYzpBVk1lZGlhQ2hhcmFjdGVyaXN0
aWNBdWRpYmxlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEFWTWVkaWFTZWxlY3Rpb25PcHRp
b25UeXBlICpjdXJyZW50bHlTZWxlY3RlZEF1ZGlibGVPcHRpb24gPSBbbV9hdlBsYXllckl0ZW0u
Z2V0KCkgc2VsZWN0ZWRNZWRpYU9wdGlvbkluTWVkaWFTZWxlY3Rpb25Hcm91cDphdWRpYmxlR3Jv
dXBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgIGlmIChjdXJyZW50bHlTZWxlY3RlZEF1ZGlibGVPcHRpb24p
IHsKICAgICAgICAgbV9sYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2sgPSBbW2N1cnJlbnRseVNl
bGVjdGVkQXVkaWJsZU9wdGlvbiBsb2NhbGVdIGxvY2FsZUlkZW50aWZpZXJdOwogICAgICAgICBJ
TkZPX0xPRyhMT0dJREVOVElGSUVSLCAibGFuZ3VhZ2Ugb2Ygc2VsZWN0ZWQgYXVkaWJsZSBvcHRp
b24gIiwgbV9sYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2spOwpAQCAtMzI0OCwxMCArMzI0NSw5
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y2FuUGxheUZhc3RS
ZXZlcnNlRGlkQ2hhbmdlKGJvb2wgbmV3VmFsCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnNldFNob3VsZERpc2FibGVTbGVlcChib29sIGZsYWcpCiB7CiAjaWYgUExB
VEZPUk0oSU9TKSAmJiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikgJiYgIVBMQVRGT1JNKElPU01B
QykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFttX2F2UGxheWVyIF9zZXRQcmV2ZW50c1NsZWVw
RHVyaW5nVmlkZW9QbGF5YmFjazpmbGFnXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbHNlCiAgICAgVU5VU0VE
X1BBUkFNKGZsYWcpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IDA0NDRk
OWFmMDU3M2Y1YjcyN2E2MzU5ZGI1ZGU0NzFkYTgyN2FlZTMuLjk4MjMyMDg2ZDcxZDc1ODc0NGJk
MmMwNDQ2OWI2MThkMjAzMTc2YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC02OSwx
MiArNjksMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhh
c2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiB0eXBlcyk7CiAgICAgc3Rh
dGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5n
aW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHkt
bmV3IgorICAgIEFMTE9XX05FV19BUElfQkVHSU4KICAgICB2b2lkIGFkZEF1ZGlvUmVuZGVyZXIo
QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKik7CiAgICAgdm9pZCByZW1vdmVBdWRpb1JlbmRl
cmVyKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciopOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX05FV19BUElfRU5ECiAKICAgICBNZWRpYVBsYXllcjo6TmV0d29y
a1N0YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIE1lZGlhUGxheWVyOjpS
ZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKQEAgLTg3LDExICs4NSw5IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldExvYWRpbmdQcm9ncmVzc3NlZChib29sIGZsYWcpIHsgbV9s
b2FkaW5nUHJvZ3Jlc3NlZCA9IGZsYWc7IH0KICAgICB2b2lkIHNldEhhc0F2YWlsYWJsZVZpZGVv
RnJhbWUoYm9vbCk7CiAgICAgYm9vbCBoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVX
X0FQSV9CRUdJTgogICAgIHZvaWQgc2V0SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUoQVZTYW1wbGVC
dWZmZXJBdWRpb1JlbmRlcmVyKiwgYm9vbCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfTkVXX0FQSV9FTkQKICAgICBib29sIGFsbFJlbmRlcmVyc0hhdmVBdmFpbGFi
bGVTYW1wbGVzKCkgY29uc3QgeyByZXR1cm4gbV9hbGxSZW5kZXJlcnNIYXZlQXZhaWxhYmxlU2Ft
cGxlczsgfQogICAgIHZvaWQgdXBkYXRlQWxsUmVuZGVyZXJzSGF2ZUF2YWlsYWJsZVNhbXBsZXMo
KTsKICAgICB2b2lkIGR1cmF0aW9uQ2hhbmdlZCgpOwpAQCAtMjY3LDEyICsyNjMsMTAgQEAgcHJp
dmF0ZToKICAgICBzdHJ1Y3QgQXVkaW9SZW5kZXJlclByb3BlcnRpZXMgewogICAgICAgICBib29s
IGhhc0F1ZGlibGVTYW1wbGUgeyBmYWxzZSB9OwogICAgIH07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1w
cmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2
YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9CRUdJTgogICAgIEhhc2hNYXA8UmV0
YWluUHRyPENGVHlwZVJlZj4sIEF1ZGlvUmVuZGVyZXJQcm9wZXJ0aWVzPiBtX3NhbXBsZUJ1ZmZl
ckF1ZGlvUmVuZGVyZXJNYXA7CiAgICAgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyUmVuZGVyU3lu
Y2hyb25pemVyPiBtX3N5bmNocm9uaXplcjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ORVdfQVBJX0VORAogICAgIFJldGFpblB0cjxpZD4gbV90aW1lSnVtcGVkT2Jz
ZXJ2ZXI7CiAgICAgUmV0YWluUHRyPGlkPiBtX2R1cmF0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWlu
UHRyPEFWU3RyZWFtU2Vzc2lvbj4gbV9zdHJlYW1TZXNzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCmluZGV4IDk2OGZjNWEwODdmMzExZDg4YjIzOWU2NzY5NDg5NDkyMTNiNGNiYTYuLjFj
MTk3YWM1ZWU5MDJjMzcxY2ZiN2Y5OTg5ZWEzM2U4ZWMyMWI0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMubW0KQEAgLTYyLDE3ICs2MiwxMyBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElP
TkFMKEFWRm91bmRhdGlvbikKIAogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRhdGlv
biwgQVZBc3NldCkKIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVVJM
QXNzZXQpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitBTExPV19ORVdfQVBJ
X0JFR0lOCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1
ZmZlckF1ZGlvUmVuZGVyZXIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19O
RVdfQVBJX0VORAogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXci
CitBTExPV19ORVdfQVBJX0JFR0lOCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0
aW9uLCBBVlNhbXBsZUJ1ZmZlclJlbmRlclN5bmNocm9uaXplcikKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKK0FMTE9XX05FV19BUElfRU5ECiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwo
QVZGb3VuZGF0aW9uLCBBVlN0cmVhbURhdGFQYXJzZXIpCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9O
QUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbVNlc3Npb24pOwogU09GVF9MSU5LX0NMQVNTX09QVElP
TkFMKEFWRm91bmRhdGlvbiwgQVZWaWRlb1BlcmZvcm1hbmNlTWV0cmljcykKQEAgLTc3MywxMSAr
NzY5LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEhh
c0F2YWlsYWJsZVZpZGVvRnJhbWUoYm9vbCBmbGFnKQogICAgIH0KIH0KIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vu
a25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3Vh
cmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9CRUdJTgogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxl
KEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciogcmVuZGVyZXIsIGJvb2wgZmxhZykKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19BUElfRU5ECiB7CiAgICAgYXV0byBp
dGVyID0gbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmZpbmQoKF9fYnJpZGdlIENGVHlw
ZVJlZilyZW5kZXJlcik7CiAgICAgaWYgKGl0ZXIgPT0gbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRl
cmVyTWFwLmVuZCgpKQpAQCAtMTAxNywxMSArMTAxMSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTCiAgICAgbV9wbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKIH0KIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vu
Z3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9CRUdJTgogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmFkZEF1ZGlvUmVuZGVyZXIoQVZTYW1w
bGVCdWZmZXJBdWRpb1JlbmRlcmVyKiBhdWRpb1JlbmRlcmVyKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorQUxMT1dfTkVXX0FQSV9FTkQKIHsKICAgICBpZiAoIW1fc2FtcGxlQnVmZmVy
QXVkaW9SZW5kZXJlck1hcC5hZGQoKF9fYnJpZGdlIENGVHlwZVJlZilhdWRpb1JlbmRlcmVyLCBB
dWRpb1JlbmRlcmVyUHJvcGVydGllcygpKS5pc05ld0VudHJ5KQogICAgICAgICByZXR1cm47CkBA
IC0xMDM0LDExICsxMDI2LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmFkZEF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1IKICAgICBtX3BsYXll
ci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChtX3BsYXllcik7CiB9
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKK0FMTE9XX05FV19BUElfQkVH
SU4KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZW1vdmVBdWRp
b1JlbmRlcmVyKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciogYXVkaW9SZW5kZXJlcikKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19BUElfRU5ECiB7CiAgICAgYXV0
byBpdGVyID0gbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmZpbmQoKF9fYnJpZGdlIENG
VHlwZVJlZilhdWRpb1JlbmRlcmVyKTsKICAgICBpZiAoaXRlciA9PSBtX3NhbXBsZUJ1ZmZlckF1
ZGlvUmVuZGVyZXJNYXAuZW5kKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaAppbmRleCAwMTljZjM3YjZiYmRhYWM0YzRlYmZlYTNm
OTg0YjJhYmQ5YmYxM2ExLi5mMmY4MzNmNmQ0MGYxZjEyYjZjYTc0OTc1MmYwMjhkZWQyZmMxNGEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDLmgKQEAgLTcwLDExICs3MCw5IEBAIGNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDRXJyb3JDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgflNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDRXJyb3JDbGllbnQoKSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCB2b2lkIGxheWVy
RGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyICosIE5TRXJyb3IgKiwg
Ym9vbCYgc2hvdWxkSWdub3JlKSA9IDA7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1u
ZXciCisgICAgQUxMT1dfTkVXX0FQSV9CRUdJTgogICAgIHZpcnR1YWwgdm9pZCByZW5kZXJlckRp
ZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKiwgTlNFcnJvciAqLCBi
b29sJiBzaG91bGRJZ25vcmUpID0gMDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ORVdfQVBJX0VORAogfTsKIAogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMgZmluYWwgOiBwdWJsaWMgU291cmNlQnVmZmVyUHJpdmF0ZSB7CkBAIC0xMTcsMTEgKzExNSw5
IEBAIHB1YmxpYzoKICAgICB2b2lkIHVucmVnaXN0ZXJGb3JFcnJvck5vdGlmaWNhdGlvbnMoU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakNFcnJvckNsaWVudCopOwogICAgIHZvaWQgbGF5ZXJEaWRS
ZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgKiwgTlNFcnJvciAqKTsKICAg
ICB2b2lkIG91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRlcm5hbFByb3RlY3Rpb25D
aGFuZ2VkKGJvb2wpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAgIEFM
TE9XX05FV19BUElfQkVHSU4KICAgICB2b2lkIHJlbmRlcmVyRGlkUmVjZWl2ZUVycm9yKEFWU2Ft
cGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqLCBOU0Vycm9yICopOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX05FV19BUElfRU5ECiAKICAgICB2b2lkIHNldFZpZGVvTGF5
ZXIoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIqKTsKICAgICB2b2lkIHNldERlY29tcHJlc3Np
b25TZXNzaW9uKFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbiopOwpAQCAtMTUyLDExICsxNDgs
OSBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVzdHJveVJlbmRlcmVycygpOwogCiAgICAgdm9pZCBm
bHVzaFZpZGVvKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxM
T1dfTkVXX0FQSV9CRUdJTgogICAgIHZvaWQgZmx1c2goQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRl
cmVyICopOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX05FV19BUElf
RU5ECiAKICAgICBXZWFrUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiBjcmVhdGVXZWFr
UHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCkBA
IC0xNzAsMTEgKzE2NCw5IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPEFWU3RyZWFtRGF0YVBh
cnNlcj4gbV9wYXJzZXI7CiAgICAgUmV0YWluUHRyPEFWQXNzZXQ+IG1fYXNzZXQ7CiAgICAgUmV0
YWluUHRyPEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBtX2Rpc3BsYXlMYXllcjsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKKyAgICBBTExPV19ORVdfQVBJX0JFR0lOCiAg
ICAgSGFzaE1hcDxpbnQsIFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+PiBt
X2F1ZGlvUmVuZGVyZXJzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9X
X05FV19BUElfRU5ECiAgICAgUmV0YWluUHRyPFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVy
PiBtX2RlbGVnYXRlOwogICAgIFJldGFpblB0cjxXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVu
ZXI+IG1fZXJyb3JMaXN0ZW5lcjsKICAgICBSZXRhaW5QdHI8TlNFcnJvcj4gbV9oZGNwRXJyb3I7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDLm1tCmluZGV4IGRjOTM0NzhlZTM1YjMwOWZiZThmMWQyNWZlMzUxMjk2NWZlMDY2ZjUuLmNl
ZWM2MDM2ZDE4Mjg4Mjg5MTZkMjBkYzIxZDU2MmJlZDllOWZiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC02OCwx
MSArNjgsOSBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAog
U09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZBc3NldFRyYWNrKQogU09GVF9MSU5LX0NM
QVNTKEFWRm91bmRhdGlvbiwgQVZTdHJlYW1EYXRhUGFyc2VyKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24t
cHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1h
dmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9CRUdJTgogU09GVF9MSU5LX0NMQVNTKEFW
Rm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorQUxMT1dfTkVXX0FQSV9FTkQKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5k
YXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKQogU09GVF9MSU5LX0NMQVNTKEFWRm91
bmRhdGlvbiwgQVZTdHJlYW1TZXNzaW9uKQogCkBAIC0yNDMsMjMgKzI0MSwxOSBAQCBTT0ZUX0xJ
TktfQ09OU1RBTlQoQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckZhaWxl
ZFRvRGVjb2RlTm90aWZpYwogQGludGVyZmFjZSBXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVu
ZXIgOiBOU09iamVjdCB7CiAgICAgV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMq
IF9wYXJlbnQ7CiAgICAgVmVjdG9yPFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cj4+IF9sYXllcnM7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxM
T1dfTkVXX0FQSV9CRUdJTgogICAgIFZlY3RvcjxSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJBdWRp
b1JlbmRlcmVyPj4gX3JlbmRlcmVyczsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ORVdfQVBJX0VORAogfQogCiAtIChpZClpbml0V2l0aFBhcmVudDooV2ViQ29yZTo6
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqKXBhcmVudDsKIC0gKHZvaWQpaW52YWxpZGF0ZTsK
IC0gKHZvaWQpYmVnaW5PYnNlcnZpbmdMYXllcjooQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIg
KilsYXllcjsKIC0gKHZvaWQpc3RvcE9ic2VydmluZ0xheWVyOihBVlNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllciAqKWxheWVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxM
T1dfTkVXX0FQSV9CRUdJTgogLSAodm9pZCliZWdpbk9ic2VydmluZ1JlbmRlcmVyOihBVlNhbXBs
ZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKilyZW5kZXJlcjsKIC0gKHZvaWQpc3RvcE9ic2VydmluZ1Jl
bmRlcmVyOihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKilyZW5kZXJlcjsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19BUElfRU5ECiBAZW5kCiAKIEBpbXBsZW1l
bnRhdGlvbiBXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVuZXIKQEAgLTMyMiwxMiArMzE2LDEw
IEBAIFNPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6QVZTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJGYWlsZWRUb0RlY29kZU5vdGlmaWNhdGlvbiBvYmplY3Q6bGF5ZXJdOwogfQogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitBTExPV19ORVdfQVBJX0JFR0lOCiAt
ICh2b2lkKWJlZ2luT2JzZXJ2aW5nUmVuZGVyZXI6KEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJl
ciopcmVuZGVyZXIKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19B
UElfRU5ECiAgICAgQVNTRVJUKF9wYXJlbnQpOwogICAgIEFTU0VSVCghX3JlbmRlcmVycy5jb250
YWlucyhyZW5kZXJlcikpOwogCkBAIC0zMzUsMTEgKzMyNyw5IEBAIFNPRlRfTElOS19DT05TVEFO
VChBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyRmFpbGVkVG9EZWNvZGVO
b3RpZmljCiAgICAgW3JlbmRlcmVyIGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImVycm9y
IiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDpudWxscHRyXTsK
IH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9C
RUdJTgogLSAodm9pZClzdG9wT2JzZXJ2aW5nUmVuZGVyZXI6KEFWU2FtcGxlQnVmZmVyQXVkaW9S
ZW5kZXJlciopcmVuZGVyZXIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05F
V19BUElfRU5ECiB7CiAgICAgQVNTRVJUKF9wYXJlbnQpOwogICAgIEFTU0VSVChfcmVuZGVyZXJz
LmNvbnRhaW5zKHJlbmRlcmVyKSk7CkBAIC0zNzIsMTEgKzM2Miw5IEBAIFNPRlRfTElOS19DT05T
VEFOVChBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyRmFpbGVkVG9EZWNv
ZGVOb3RpZmljCiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIAogICAgIH0gZWxz
ZSBpZiAoW29iamVjdCBpc0tpbmRPZkNsYXNzOmdldEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJl
ckNsYXNzKCldKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgICAg
IEFMTE9XX05FV19BUElfQkVHSU4KICAgICAgICAgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlcj4gcmVuZGVyZXIgPSAoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICopb2Jq
ZWN0OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ORVdfQVBJ
X0VORAogICAgICAgICBSZXRhaW5QdHI8TlNFcnJvcj4gZXJyb3IgPSBbY2hhbmdlIHZhbHVlRm9y
S2V5Ok5TS2V5VmFsdWVDaGFuZ2VOZXdLZXldOwogCiAgICAgICAgIEFTU0VSVChfcmVuZGVyZXJz
LmNvbnRhaW5zKHJlbmRlcmVyLmdldCgpKSk7CkBAIC04NTIsMjEgKzg0MCwxNyBAQCB2b2lkIFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0cmFja0RpZENoYW5nZUVuYWJsZWQoQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVNvdQogICAgIGludCB0cmFja0lEID0gdHJhY2stPnRyYWNrSUQoKTsKIAog
ICAgIGlmICghdHJhY2stPmVuYWJsZWQoKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxp
dHktbmV3IgorICAgICAgICBBTExPV19ORVdfQVBJX0JFR0lOCiAgICAgICAgIFJldGFpblB0cjxB
VlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+IHJlbmRlcmVyID0gbV9hdWRpb1JlbmRlcmVycy5n
ZXQodHJhY2tJRCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9X
X05FV19BUElfRU5ECiAgICAgICAgIFttX3BhcnNlciBzZXRTaG91bGRQcm92aWRlTWVkaWFEYXRh
Ok5PIGZvclRyYWNrSUQ6dHJhY2tJRF07CiAgICAgICAgIGlmIChtX21lZGlhU291cmNlKQogICAg
ICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnJlbW92ZUF1ZGlvUmVuZGVyZXIocmVu
ZGVyZXIuZ2V0KCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFttX3BhcnNlciBzZXRTaG91bGRQ
cm92aWRlTWVkaWFEYXRhOllFUyBmb3JUcmFja0lEOnRyYWNrSURdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25v
d24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRl
ZC1hdmFpbGFiaWxpdHktbmV3IgorICAgICAgICBBTExPV19ORVdfQVBJX0JFR0lOCiAgICAgICAg
IFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+IHJlbmRlcmVyOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ORVdfQVBJX0VORAogICAgICAg
ICBpZiAoIW1fYXVkaW9SZW5kZXJlcnMuY29udGFpbnModHJhY2tJRCkpIHsKICAgICAgICAgICAg
IHJlbmRlcmVyID0gYWRvcHROUyhbYWxsb2NBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJJbnN0
YW5jZSgpIGluaXRdKTsKICAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRy
KCk7CkBAIC05OTcsMTEgKzk4MSw5IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
Om91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRlcm5hbFByb3RlY3RpCiAgICAgbGF5
ZXJEaWRSZWNlaXZlRXJyb3IobV9kaXNwbGF5TGF5ZXIuZ2V0KCksIGVycm9yLmdldCgpKTsKIH0K
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9CRUdJ
Tgogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6cmVuZGVyZXJEaWRSZWNlaXZlRXJy
b3IoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICpyZW5kZXJlciwgTlNFcnJvciAqZXJyb3Ip
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ORVdfQVBJX0VORAogewogICAg
IExPRyhNZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlckRp
ZFJlY2VpdmVFcnJvciglcCk6IHJlbmRlcmVyKCVwKSwgZXJyb3IoJUApIiwgdGhpcywgcmVuZGVy
ZXIsIFtlcnJvciBkZXNjcmlwdGlvbl0pOwogCkBAIC0xMDUwLDExICsxMDMyLDkgQEAgdm9pZCBT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Zmx1c2hWaWRlbygpCiAgICAgfQogfQogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitBTExPV19ORVdfQVBJX0JFR0lOCiB2b2lk
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVzaChBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVu
ZGVyZXIgKnJlbmRlcmVyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfTkVX
X0FQSV9FTkQKIHsKICAgICBbcmVuZGVyZXIgZmx1c2hdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FM
YXllckNvY29hLm1tCmluZGV4IGRmMDQxMDNjNzFhOTg5NjRlOWYyOWZlMTk4MWIzNjIxNThhNmJk
OTkuLmZiMmFhMWU0MTVhODMzYzUxZmMwZWM4NDYyM2FkZTk3ZmQ1MjFiMTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXll
ckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29h
L1BsYXRmb3JtQ0FMYXllckNvY29hLm1tCkBAIC0xMTUwLDEwICsxMTUwLDkgQEAgdm9pZCBQbGF0
Zm9ybUNBTGF5ZXI6OmRyYXdMYXllckNvbnRlbnRzKENHQ29udGV4dFJlZiBjb250ZXh0LCBXZWJD
b3JlOjpQbGF0Zm9ybUMKICAgICAKICAgICAvLyBTZXQgdXAgYW4gTlNHcmFwaGljc0NvbnRleHQg
Zm9yIHRoZSBjb250ZXh0LCBzbyB0aGF0IHBhcnRzIG9mIEFwcEtpdCB0aGF0IHJlbHkgb24KICAg
ICAvLyB0aGUgY3VycmVudCBOU0dyYXBoaWNzQ29udGV4dCAoZS5nLiBOU0NlbGwgZHJhd2luZykg
Z2V0IHRoZSByaWdodCBvbmUuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0dyYXBoaWNzQ29u
dGV4dCogbGF5ZXJDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdp
dGhHcmFwaGljc1BvcnQ6Y29udGV4dCBmbGlwcGVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW05T
R3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OmxheWVyQ29udGV4dF07CiAjZW5kaWYK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ZvbnRDYWlyb0hhcmZidXp6TkcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKaW5kZXggZWY4NDNhMDYxZTljMGM4MjY3
MTYzNDg5ZGNmYWEzNjViMGY3NTc5ZS4uOWVmZTZmNTg3YzcyNGQzZjBkOGUxZmRmMjc5MjRjNGUy
NGU3MzI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKQEAgLTQ5LDE0ICs0OSw5IEBA
IGNvbnN0IEZvbnQqIEZvbnRDYXNjYWRlOjpmb250Rm9yQ29tYmluaW5nQ2hhcmFjdGVyU2VxdWVu
Y2UoY29uc3QgVUNoYXIqIGNoYXJhY3RlCiB7CiAgICAgVUVycm9yQ29kZSBlcnJvciA9IFVfWkVS
T19FUlJPUjsKICAgICBWZWN0b3I8VUNoYXIsIDQ+IG5vcm1hbGl6ZWRDaGFyYWN0ZXJzKGxlbmd0
aCk7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0jZW5kaWYKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIGludDMyX3Qgbm9ybWFsaXplZExlbmd0aCA9IHVub3JtX25vcm1hbGl6ZShjaGFyYWN0ZXJz
LCBsZW5ndGgsIFVOT1JNX05GQywgVU5PUk1fVU5JQ09ERV8zXzIsIG5vcm1hbGl6ZWRDaGFyYWN0
ZXJzLmRhdGEoKSwgbGVuZ3RoLCAmZXJyb3IpOwotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICBpZiAoVV9GQUlMVVJFKGVycm9yKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlRGVjb2RlckNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlRGVjb2RlckNHLmNwcAppbmRleCBiN2Q1OTJhOWM4YTI1ZDcwZDM3ZjUxOWY1
MTM3YzQyZDNhMzMxYWVlLi44YjYxZTZjNzZmOTljMzYxNGQ0YTMwYmU2YTBmY2MxZDBjYzQyODE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZURl
Y29kZXJDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VEZWNvZGVyQ0cuY3BwCkBAIC00MjMsMTQgKzQyMyw5IEBAIE5hdGl2ZUltYWdlUHRyIEltYWdl
RGVjb2RlckNHOjpjcmVhdGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QgaW5kZXgsIFN1YnNhbXBs
aW5nCiAgICAgLy8gd2hpY2ggY2F1c2VkIGEgcGVyZm9ybWFuY2UgcmVncmVzc2lvbiBmb3IgdXMg
c2luY2UgdGhlIGltYWdlcyBoYWQgdG8gYmUgcmVzYW1wbGVkL3JlY3JlYXRlZCBldmVyeSB0aW1l
IHdlIGNhbGxlZAogICAgIC8vIENHQ29udGV4dERyYXdJbWFnZS4gV2Ugbm93IHRlbGwgQ0cgdG8g
Y2FjaGUgdGhlIGRyYXduIGltYWdlcy4gU2VlIGFsc28gPHJkYXI6Ly9wcm9ibGVtLzE0MzY2NzU1
PiAtCiAgICAgLy8gQ29yZUdyYXBoaWNzIG5lZWRzIHRvIHVuLWRlcHJlY2F0ZSBrQ0dJbWFnZUNh
Y2hpbmdUZW1wb3Jhcnkgc2luY2UgaXQncyBzdGlsbCBub3QgdGhlIGRlZmF1bHQuCi0jaWYgQ09N
UElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENHSW1hZ2VTZXRD
YWNoaW5nRmxhZ3MoaW1hZ2UuZ2V0KCksIGtDR0ltYWdlQ2FjaGluZ1RlbXBvcmFyeSk7Ci0jaWYg
Q09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZiAvLyBQTEFURk9STShJ
T1MpCiAgICAgCiAgICAgU3RyaW5nIHV0aSA9IHRoaXMtPnV0aSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oCmluZGV4IGQ2Yjll
MTA1YjdhOTcyYzUyZWNlZmFkYjFjNWQ1NWNiNmY4NDQ5MjkuLjYwOTIyMmE5N2IyZjRlZWYxZDAx
Y2M5MmJmMTI2ZThmMzI3YTZiOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKQEAgLTM0LDggKzM0LDcgQEAgY2xhc3MgR3Jh
cGhpY3NMYXllcjsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwogfQogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogCiAjaWYgVVNFKE9QRU5HTCkKIEBpbnRlcmZhY2UgV2ViR0xMYXllciA6IENBTGF5ZXIKQEAg
LTY3LDQgKzY2LDQgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiAKIEBlbmQKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxl
eFRleHRDb250cm9sbGVyQ29yZVRleHQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0KaW5kZXggZTg5MDFiYzEz
YWRhNDA1MjMyZDBkM2ZmNDQ1MTk2M2Q3ZDc1NjViMi4uNmNjZTMxMjkwYzQ0NTc4MjFmYjY3OWFi
MDM0ZTYxZWQxNzYyN2I5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4
dC5tbQpAQCAtMTU4LDEwICsxNTgsOSBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Y29s
bGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNwLAogCiAgICAg
ICAgIFByb3ZpZGVySW5mbyBpbmZvID0geyBjcCwgbGVuZ3RoLCBzdHJpbmdBdHRyaWJ1dGVzLmdl
dCgpIH07CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIFNES3MgY29tcGxhaW4gdGhhdCB0aGUgc2Vj
b25kIHBhcmFtZXRlciBiZWxvdyBjYW5ub3QgYmUgbnVsbC4KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub25udWxsIgor
ICAgICAgICBBTExPV19OVUxMX0FSR1VNRU5UX0JFR0lOCiAgICAgICAgIFJldGFpblB0cjxDVFR5
cGVzZXR0ZXJSZWY+IHR5cGVzZXR0ZXIgPSBhZG9wdENGKENUVHlwZXNldHRlckNyZWF0ZVdpdGhV
bmlDaGFyUHJvdmlkZXJBbmRPcHRpb25zKCZwcm92aWRlU3RyaW5nQW5kQXR0cmlidXRlcywgMCwg
JmluZm8sIG1fcnVuLmx0cigpID8gbHRyVHlwZXNldHRlck9wdGlvbnMgOiBydGxUeXBlc2V0dGVy
T3B0aW9ucykpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19O
VUxMX0FSR1VNRU5UX0VORAogCiAgICAgICAgIGxpbmUgPSBhZG9wdENGKENUVHlwZXNldHRlckNy
ZWF0ZUxpbmUodHlwZXNldHRlci5nZXQoKSwgQ0ZSYW5nZU1ha2UoMCwgMCkpKTsKICAgICB9IGVs
c2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0lj
b25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5t
bQppbmRleCA2MTQzYjUxZDQzNjQ1ZDVhZDQ4YzM5NWFmN2M0ZWEyNjQzM2Q3YzRhLi42NWJiMTM5
MDI0NDczNWVjMGIzZjZhZTVmZDY4ODE0OTEyNjlkMWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbQpAQCAtMzYsMTAgKzM2LDkgQEAgSWNv
bjo6SWNvbihOU0ltYWdlICppbWFnZSkKICAgICA6IG1fbnNJbWFnZShpbWFnZSkKIHsKICAgICAv
LyBOZWVkIHRoaXMgYmVjYXVzZSBXZWJDb3JlIHVzZXMgQXBwS2l0J3MgZmxpcHBlZCBjb29yZGlu
YXRlIHN5c3RlbSBleGNsdXNpdmVseS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtpbWFnZSBz
ZXRGbGlwcGVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIEljb246On5JY29uKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9QREZEb2N1bWVudEltYWdl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50
SW1hZ2VNYWMubW0KaW5kZXggNmRhOTIxYjk4YWYyZjk0OGNiYWMyNjM1OTBhMzRjZGJjODhkYjVi
Mi4uMjcyNmJkY2UwY2MxZDBjMDMyZGQ1Mzc0ZjhiZjFiNzg1OGFhZTA0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50SW1hZ2VNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50
SW1hZ2VNYWMubW0KQEAgLTczLDEwICs3Myw5IEBAIHZvaWQgUERGRG9jdW1lbnRJbWFnZTo6ZHJh
d1BERlBhZ2UoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgIGJvb2wgYWxsb3dzU3VicGl4
ZWxRdWFudGl6YXRpb24gPSBDR0NvbnRleHRHZXRBbGxvd3NGb250U3VicGl4ZWxRdWFudGl6YXRp
b24oY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSk7CiAgICAgYm9vbCBhbGxvd3NTdWJwaXhlbFBv
c2l0aW9uaW5nID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUG9zaXRpb25pbmcoY29u
dGV4dC5wbGF0Zm9ybUNvbnRleHQoKSk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtbbV9k
b2N1bWVudCBwYWdlQXRJbmRleDowXSBkcmF3V2l0aEJveDprUERGRGlzcGxheUJveENyb3BCb3hd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogCiAgICAgQ0dDb250ZXh0U2V0QWxsb3dzRm9udFNtb290aGluZyhjb250
ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBhbGxvd3NTbW9vdGhpbmcpOwogICAgIENHQ29udGV4dFNl
dEFsbG93c0ZvbnRTdWJwaXhlbFF1YW50aXphdGlvbihjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgp
LCBhbGxvd3NTdWJwaXhlbFF1YW50aXphdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViS2l0TlNJbWFnZUV4dHJhcy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJLaXROU0ltYWdlRXh0cmFzLm1tCmluZGV4
IDQ2NjRmNjZmNzM4NTczZGZhYjkwNTRlOTQzYTE0ZTE5MGJlYzJmODcuLjdmM2QxNjU3ODZiNmMz
MjE4MDQ5MjE2NGI1YTZiN2U1ZmU3MWFiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9XZWJLaXROU0ltYWdlRXh0cmFzLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJLaXROU0ltYWdlRXh0cmFzLm1tCkBAIC0z
NywxMCArMzcsOSBAQAogICAgIFt0cmFuc2Zvcm0gc2NhbGVCeTpkZXZpY2VTY2FsZUZhY3Rvcl07
CiAKICAgICBOU1JlY3QgYm91bmRzID0geyBOU1plcm9Qb2ludCwgc2VsZi5zaXplIH07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICBCT09MIGZsaXBwZWRPcmllbnRhdGlvbiA9IHNlbGYuaXNGbGlw
cGVkOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgIFtzZWxmIGxvY2tGb2N1c1dpdGhSZWN0OmJvdW5kcyBjb250
ZXh0Om5pbCBoaW50czpAeyBOU0ltYWdlSGludENUTSA6IHRyYW5zZm9ybSB9IGZsaXBwZWQ6Zmxp
cHBlZE9yaWVudGF0aW9uXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL0RyYWdJbWFnZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFn
SW1hZ2VJT1MubW0KaW5kZXggNWZiMjE1YTI5NzBkZDk2MmFhMGJkY2E5ODNhOTEwNGVkNGQ0M2Ux
MC4uZDA0NThkNmE5N2U3OTY2OWNjN2QyNTllZWQxZDRiMjJlMDE5YTJlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tCkBAIC01Miw4ICs1Miw3IEBACiAj
aW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5o
PgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XbnVsbGFiaWxpdHktY29tcGxldGVuZXNzIgorSUdOT1JFX0NMQU5HX1dB
Uk5JTkdfQkVHSU4oIi1XbnVsbGFiaWxpdHktY29tcGxldGVuZXNzIikKIAogU09GVF9MSU5LX0ZS
QU1FV09SSyhVSUtpdCkKIFNPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlGb250KQpAQCAtNjMsNyAr
NjIsNyBAQCBTT0ZUX0xJTksoVUlLaXQsIFVJR3JhcGhpY3NHZXRDdXJyZW50Q29udGV4dCwgQ0dD
b250ZXh0UmVmLCAodm9pZCksICgpKQogU09GVF9MSU5LKFVJS2l0LCBVSUdyYXBoaWNzR2V0SW1h
Z2VGcm9tQ3VycmVudEltYWdlQ29udGV4dCwgVUlJbWFnZSAqLCAodm9pZCksICgpKQogU09GVF9M
SU5LKFVJS2l0LCBVSUdyYXBoaWNzRW5kSW1hZ2VDb250ZXh0LCB2b2lkLCAodm9pZCksICgpKQog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfQ0xBTkdfV0FSTklOR19FTkQK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Ry
YWdJbWFnZU1hYy5tbQppbmRleCA1NjEwMmZhMjkwN2FmODRmZTEzMzAyMWYwOGU0ZWY0M2IyN2Rj
OTkyLi4yMDFjYjMzOGJiZDdkYzc1M2IzMzVhMzAwNjJjMmI5MTI2YjExOTQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTcxLDEwICs3MSw5IEBA
IFJldGFpblB0cjxOU0ltYWdlPiBzY2FsZURyYWdJbWFnZShSZXRhaW5QdHI8TlNJbWFnZT4gaW1h
Z2UsIEZsb2F0U2l6ZSBzY2FsZSkKICAgICBOU1NpemUgbmV3U2l6ZSA9IE5TTWFrZVNpemUoKG9y
aWdpbmFsU2l6ZS53aWR0aCAqIHNjYWxlLndpZHRoKCkpLCAob3JpZ2luYWxTaXplLmhlaWdodCAq
IHNjYWxlLmhlaWdodCgpKSk7CiAgICAgbmV3U2l6ZS53aWR0aCA9IHJvdW5kZihuZXdTaXplLndp
ZHRoKTsKICAgICBuZXdTaXplLmhlaWdodCA9IHJvdW5kZihuZXdTaXplLmhlaWdodCk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICBbaW1hZ2Ugc2V0U2NhbGVzV2hlblJlc2l6ZWQ6WUVTXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICAgICBbaW1hZ2Ugc2V0U2l6ZTpuZXdTaXplXTsKICAgICByZXR1cm4gaW1hZ2U7
CiB9CkBAIC0zMTIsMTAgKzMxMSw5IEBAIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JM
aW5rKEVsZW1lbnQmIGVsZW1lbnQsIFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpCiAgICAgUmV0
YWluUHRyPE5TSW1hZ2U+IGRyYWdJbWFnZSA9IGFkb3B0TlMoW1tOU0ltYWdlIGFsbG9jXSBpbml0
V2l0aFNpemU6aW1hZ2VTaXplXSk7CiAgICAgW2RyYWdJbWFnZSBfd2ViX2xvY2tGb2N1c1dpdGhE
ZXZpY2VTY2FsZUZhY3RvcjpkZXZpY2VTY2FsZUZhY3Rvcl07CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgIEdyYXBoaWNzQ29udGV4dCBjb250ZXh0KChDR0NvbnRleHRSZWYpW05TR3JhcGhpY3ND
b250ZXh0IGN1cnJlbnRDb250ZXh0XS5ncmFwaGljc1BvcnQpOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTMwMAogICAgIGNvbnRleHQudHJh
bnNsYXRlKGxpbmtJbWFnZVNoYWRvd1JhZGl1cywgbGlua0ltYWdlU2hhZG93UmFkaXVzIC0gbGlu
a0ltYWdlU2hhZG93T2Zmc2V0WSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9MZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oCmluZGV4IDA3YWE5NWZmMDhhMDM3ODI2MGE4
MmEwZjU2NWZhODhiOGJiODU2NTQuLmQzMjQyOTAzYjc4OTQ4NjMzNDFiMzFmMGMzOTRkZDkyZjYw
MzU0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9MZWdhY3lOU1Bh
c3RlYm9hcmRUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9MZWdhY3lO
U1Bhc3RlYm9hcmRUeXBlcy5oCkBAIC0yNyw4ICsyNyw3IEBACiAKICNpZiBQTEFURk9STShNQUMp
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODksNiArODgs
NiBAQCBpbmxpbmUgTlNTdHJpbmcgKmxlZ2FjeUZpbGVzUHJvbWlzZVBhc3RlYm9hcmRUeXBlKCkK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbEN1cnJl
bnRHcmFwaGljc0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxD
dXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tCmluZGV4IGM5OGZjMjg1OWZmYzc5ZTE5NTQ4ZjE4Njdl
MzMwNjBiMTY4M2IwNzMuLjQxZTQyNWJjZjkyNmVhNmU2MjljMDEwZDM3N2IzNTAwNTYwMzFmODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFw
aGljc0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsQ3Vy
cmVudEdyYXBoaWNzQ29udGV4dC5tbQpAQCAtMzIsOCArMzIsNyBAQCBMb2NhbEN1cnJlbnRHcmFw
aGljc0NvbnRleHQ6OkxvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dChHcmFwaGljc0NvbnRleHQm
IGdyYXBoaQogewogICAgIGdyYXBoaWNzQ29udGV4dC5zYXZlKCk7CiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSB0aGlzLT5jZ0NvbnRleHQoKTsKICAg
ICBpZiAoY2dDb250ZXh0ID09IFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdy
YXBoaWNzUG9ydF0pIHsKICAgICAgICAgbV9zYXZlZE5TR3JhcGhpY3NDb250ZXh0ID0gMDsKQEAg
LTQyLDcgKzQxLDcgQEAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0OjpMb2NhbEN1cnJlbnRH
cmFwaGljc0NvbnRleHQoR3JhcGhpY3NDb250ZXh0JiBncmFwaGkKIAogICAgIG1fc2F2ZWROU0dy
YXBoaWNzQ29udGV4dCA9IFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIHJldGFp
bl07CiAgICAgTlNHcmFwaGljc0NvbnRleHQqIG5ld0NvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRl
eHQgZ3JhcGhpY3NDb250ZXh0V2l0aEdyYXBoaWNzUG9ydDpjZ0NvbnRleHQgZmxpcHBlZDpZRVNd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDpu
ZXdDb250ZXh0XTsKICAgICBtX2RpZFNldEdyYXBoaWNzQ29udGV4dCA9IHRydWU7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IGZkNmU5Mjk4
Nzc0ZmFmNGZlODczNWJmMjc1NjVhZGM5NTMyYmY2MzYuLjRmZDA4ZDE0MzgzMDM5NmQzM2I0ODI3
Nzk5YTY4MzUxYjQ3OTEzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0
ZWJvYXJkTWFjLm1tCkBAIC05OSwxOSArOTksMTcgQEAgUGFzdGVib2FyZDo6UGFzdGVib2FyZChj
b25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcHJvbWkK
IAogc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlB
bmRQYXN0ZSgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxQYXN0ZWJvYXJkPihOU0dlbmVyYWxQYm9hcmQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAjaWYg
RU5BQkxFKERSQUdfU1VQUE9SVCkKIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJv
YXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihOU0RyYWdQYm9hcmQpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQpAQCAtNjE0LDE4ICs2MTIs
MTYgQEAgc3RhdGljIHZvaWQgc2V0RHJhZ0ltYWdlSW1wbChOU0ltYWdlICppbWFnZSwgTlNQb2lu
dCBvZmZzZXQpCiAgICAgUmV0YWluUHRyPE5TQml0bWFwSW1hZ2VSZXA+IGJpdG1hcEltYWdlOwog
ICAgIGlmICghaW1hZ2VSZXAgfHwgIVtpbWFnZVJlcCBpc0tpbmRPZkNsYXNzOltOU0JpdG1hcElt
YWdlUmVwIGNsYXNzXV0gfHwgIU5TRXF1YWxTaXplcyhpbWFnZVJlcC5zaXplLCBpbWFnZVNpemUp
KSB7CiAgICAgICAgIFtpbWFnZSBsb2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgICAgICBiaXRtYXBJbWFnZSA9IGFkb3B0TlMoW1tOU0JpdG1hcEltYWdlUmVwIGFsbG9jXSBp
bml0V2l0aEZvY3VzZWRWaWV3UmVjdDoqKE5TUmVjdCopJmltYWdlUmVjdF0pOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICAgICAgW2ltYWdlIHVubG9ja0ZvY3VzXTsKICAgICAgICAgCiAgICAgICAgIC8v
IHdlIG1heSBoYXZlIHRvIGZsaXAgdGhlIGJpdHMgd2UganVzdCByZWFkIGlmIHRoZSBpbWFnZSB3
YXMgZmxpcHBlZCBzaW5jZSBpdCBtZWFucyB0aGUgY2FjaGUgd2FzIGFsc28KICAgICAgICAgLy8g
YW5kIENvcmVEcmFnU2V0SW1hZ2UgY2FuJ3QgdGFrZSBhIHRyYW5zZm9ybSBmb3IgcmVuZGVyaW5n
LgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBmbGlwSW1hZ2UgPSBpbWFnZS5pc0Zs
aXBwZWQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgIH0gZWxzZSB7CiAgICAgICAgIGZsaXBJbWFnZSA9
IGZhbHNlOwogICAgICAgICBiaXRtYXBJbWFnZSA9IChOU0JpdG1hcEltYWdlUmVwICopaW1hZ2VS
ZXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW0KaW5kZXggY2U2ZTAwYmE3MDJiNzc0YTQwNDMyOWQ3ZDQ1NWRlYzExZjYw
Njg1MS4uODIyMzVlNTY2ZGJjYmNhN2FlMmFiNmFkODE0ZjcxYWY5OWJmY2VlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1h
Yy5tbQpAQCAtNDYsMTAgKzQ2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBOU1BvaW50IGds
b2JhbFBvaW50KGNvbnN0IE5TUG9pbnQmIHdpbmRvd1BvaW50LCBOU1dpbmRvdyAqd2luZG93KQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgcmV0dXJuIGZsaXBTY3JlZW5Qb2ludChbd2luZG93
IGNvbnZlcnRCYXNlVG9TY3JlZW46d2luZG93UG9pbnRdLCBzY3JlZW4od2luZG93KSk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiB9CiAKIHN0YXRpYyBOU1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAq
ZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU1NMS2V5R2Vu
ZXJhdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NTTEtleUdlbmVyYXRv
ck1hYy5tbQppbmRleCA0NzAwYjAxOGM1MzBjMTEyZmI4ZGQxM2QyODczYzEwNDRlN2RjNzE4Li5m
YzQwYWExOWIwNGMzYWUzNDcxODAyNzYzZjdkZjM4OWE3MjI4YzlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU1NMS2V5R2VuZXJhdG9yTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TU0xLZXlHZW5lcmF0b3JNYWMubW0KQEAgLTQ0LDggKzQ0
LDcgQEAgV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChTZWNBQ0wpOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIHN0cnVjdCBQdWJsaWNLZXlBbmRDaGFsbGVuZ2Ug
ewogICAgIENTU01fWDUwOV9TVUJKRUNUX1BVQkxJQ19LRVlfSU5GTyBzdWJqZWN0UHVibGljS2V5
SW5mbzsKQEAgLTIyMyw3ICsyMjIsNyBAQCBzdGF0aWMgU3RyaW5nIHNpZ25lZFB1YmxpY0tleUFu
ZENoYWxsZW5nZVN0cmluZyh1bnNpZ25lZCBrZXlTaXplLCBjb25zdCBDU3RyaW5nJgogICAgIHJl
dHVybiBiYXNlNjRFbmNvZGUoZW5jb2RlZFNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZS5EYXRh
LCBlbmNvZGVkU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlLkxlbmd0aCk7CiB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogCiB2b2lkIGdldFN1cHBvcnRlZEtleVNpemVzKFZlY3RvcjxTdHJpbmc+JiBzdXBwb3J0ZWRL
ZXlTaXplcykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxWaWV3TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMu
bW0KaW5kZXggMjZiNmNiNGYyMWY4YjNjODk5MzZkMWQ2ZTYzODdjMTZiODQwNGQzYi4uMDllZDIw
ZmZlZTM1NDE0OGRiNTU0M2JhMGYzNmNlM2QzOTY0Zjk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMubW0KQEAgLTIzMCwxMCArMjMwLDkgQEAgSW50UmVj
dCBTY3JvbGxWaWV3OjpwbGF0Zm9ybUNvbnRlbnRzVG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcmVj
dCkgY29uc3QKICAgICBpZiAoTlNWaWV3KiBkb2N1bWVudFZpZXcgPSB0aGlzLT5kb2N1bWVudFZp
ZXcoKSkgewogICAgICAgICBOU1JlY3QgdGVtcFJlY3QgPSByZWN0OwogICAgICAgICB0ZW1wUmVj
dCA9IFtkb2N1bWVudFZpZXcgY29udmVydFJlY3Q6dGVtcFJlY3QgdG9WaWV3Om5pbF07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIHRlbXBSZWN0Lm9yaWdpbiA9IFtbZG9jdW1lbnRW
aWV3IHdpbmRvd10gY29udmVydEJhc2VUb1NjcmVlbjp0ZW1wUmVjdC5vcmlnaW5dOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICAgICAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QodGVtcFJlY3QpOwogICAg
IH0KICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpAQCAtMjQ0LDEwICsyNDMsOSBAQCBJ
bnRQb2ludCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNjcmVlblRvQ29udGVudHMoY29uc3QgSW50UG9p
bnQmIHBvaW50KSBjb25zdAogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAg
ICBpZiAoTlNWaWV3KiBkb2N1bWVudFZpZXcgPSB0aGlzLT5kb2N1bWVudFZpZXcoKSkgewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBOU1BvaW50IHdpbmRvd0Nvb3JkID0gW1tkb2N1
bWVudFZpZXcgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOiBwb2ludF07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogICAgICAgICByZXR1cm4gSW50UG9pbnQoW2RvY3VtZW50VmlldyBjb252ZXJ0UG9pbnQ6
d2luZG93Q29vcmQgZnJvbVZpZXc6bmlsXSk7CiAgICAgfQogICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXggOTU3
ZjdjNTA3Mjg4NDFkNGQwNTAxYmJjYjIxMTZlYzZkMTY2ZGE1MC4uMzQ3MzQyNjhlZWMzZWM0MDZi
N2Y1YmU0MjliZjM0MDE1ZDQzZmZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVt
ZU1hYy5tbQpAQCAtMzU4LDEwICszNTgsOSBAQCBzdGF0aWMgTlNCdXR0b25DZWxsICpzaGFyZWRD
aGVja2JveENlbGwoY29uc3QgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBjb25zdCBJbnRTaQogCiBz
dGF0aWMgYm9vbCBkcmF3Q2VsbEZvY3VzUmluZ1dpdGhGcmFtZUF0VGltZShOU0NlbGwgKmNlbGws
IE5TUmVjdCBjZWxsRnJhbWUsIE5TVmlldyAqY29udHJvbFZpZXcsIE5TVGltZUludGVydmFsIHRp
bWVPZmZzZXQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDR0NvbnRleHRSZWYgY2dDb250
ZXh0ID0gKENHQ29udGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBn
cmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250
ZXh0KTsKIAogICAgIENHRm9jdXNSaW5nU3R5bGUgZm9jdXNSaW5nU3R5bGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFn
ZXIubW0KaW5kZXggYjZlYWRhMzE4MDY0MDI1MDA2MDJiZmFiMGQzMjk1N2RhNmYyYjQ1MS4uMjhh
Yzg0MTA1NWNmZTQxNzRhNmIzOTBhNjk3ZmViMzU4N2MzOTMzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5t
bQpAQCAtMzQsOCArMzQsNyBAQAogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV251bGxhYmlsaXR5LWNvbXBsZXRl
bmVzcyIKK0lHTk9SRV9DTEFOR19XQVJOSU5HX0JFR0lOKCItV251bGxhYmlsaXR5LWNvbXBsZXRl
bmVzcyIpCiBTT0ZUX0xJTktfRlJBTUVXT1JLKEFWS2l0KQogI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZLaXQs
IEFWVG91Y2hCYXJNZWRpYVNlbGVjdGlvbk9wdGlvbikKQEAgLTM0Niw3ICszNDUsNyBAQCBzdGF0
aWMgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBtZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29uc3Qg
VmVjdG9yPE1lZGlhU2VsZWN0aQogfQogI2VuZGlmCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKK0lHTk9SRV9DTEFOR19XQVJOSU5HX0VORAogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2lkZ2V0TWFjLm1tCmluZGV4IDk5NmMxOWQ1NTBmOTEzMWZhMDIzNjBiNjU3
Zjg4YmU5ZjllNjY2YmIuLmEzNzNkYWJjNzBiZDAzNzE0OTk3NTVmMTBiMTY0MWQ0MTAwNGVjMzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbQpAQCAtMjA4LDEwICsy
MDgsOSBAQCB2b2lkIFdpZGdldDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBwLCBjb25zdCBJbnRS
ZWN0JiByLCBTZWN1cml0eU9yaWdpblBhaW50UG9saQogICAgIFJlZjxXaWRnZXQ+IHByb3RlY3Rl
ZFRoaXMoKnRoaXMpOwogCiAgICAgTlNHcmFwaGljc0NvbnRleHQgKmN1cnJlbnRDb250ZXh0ID0g
W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIGlmIChjdXJyZW50Q29udGV4dCA9PSBbW3ZpZXcgd2luZG93XSBncmFwaGljc0NvbnRleHRd
IHx8ICFbY3VycmVudENvbnRleHQgaXNEcmF3aW5nVG9TY3JlZW5dKSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogICAgICAgICAvLyBUaGlzIGlzIHRoZSBjb21tb24gY2FzZSBvZiBkcmF3aW5nIGludG8gYSB3
aW5kb3cgb3IgYW4gaW5jbHVzaXZlIGxheWVyLCBvciBwcmludGluZy4KICAgICAgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgICAgICBbdmlldyBkaXNwbGF5UmVjdElnbm9yaW5n
T3BhY2l0eTpbdmlldyBjb252ZXJ0UmVjdDpyIGZyb21WaWV3Olt2aWV3IHN1cGVydmlld11dXTsK
QEAgLTIzOCwxMCArMjM3LDkgQEAgdm9pZCBXaWRnZXQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYg
cCwgY29uc3QgSW50UmVjdCYgciwgU2VjdXJpdHlPcmlnaW5QYWludFBvbGkKICAgICB9CiAKICAg
ICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gcC5wbGF0Zm9ybUNvbnRleHQoKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIEFTU0VSVChjZ0NvbnRleHQgPT0gW2N1cnJlbnRDb250ZXh0IGdyYXBo
aWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0
KTsKIAogICAgIE5TUmVjdCB2aWV3RnJhbWUgPSBbdmlldyBmcmFtZV07CkBAIC0yNTUsMTAgKzI1
Myw5IEBAIHZvaWQgV2lkZ2V0OjpwYWludChHcmFwaGljc0NvbnRleHQmIHAsIGNvbnN0IEludFJl
Y3QmIHIsIFNlY3VyaXR5T3JpZ2luUGFpbnRQb2xpCiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CiAgICAgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBOU0dyYXBo
aWNzQ29udGV4dCAqbnNDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4
dFdpdGhHcmFwaGljc1BvcnQ6Y2dDb250ZXh0IGZsaXBwZWQ6Tk9dOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICAgICAgW3ZpZXcgZGlzcGxheVJlY3RJZ25vcmluZ09wYWNpdHk6W3ZpZXcgY29udmVydFJl
Y3Q6ciBmcm9tVmlldzpbdmlldyBzdXBlcnZpZXddXSBpbkNvbnRleHQ6bnNDb250ZXh0XTsKICAg
ICB9CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1
ZGlvU291cmNlLmgKaW5kZXggYjUxMzE4YzgzNGUyNTRhYTlmNzIzNjVlZmU2N2YzNTQ2NjhjZTlh
ZS4uNDU2NGMyMGM4MDNiYjViNDY5YWVlNzNmODA5NDE2NzdmNmIyZTY1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlv
U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKQEAgLTM1LDEyICszNSwxMSBAQAogI2luY2x1ZGUgIkxp
YldlYlJUQ01hY3Jvcy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKIAotI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XdW51c2VkLXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4KIAogI2lu
Y2x1ZGUgPHdlYnJ0Yy9hcGkvbWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4KIAotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwb3AKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfRU5ECiAKICNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKaW5kZXgg
NzI0N2JiODMzODU3ZTQ4ZTk5ZWU3ODZlNzVlNGE5M2JiMDA1ZDVlZC4uYTFjYjE1NzAwOTk3OTUy
MTQ5NDE0NDIxNjIxZThiMzUxOTUzZjBmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlLmgKQEAgLTM1LDEyICszNSwxMSBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgog
I2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRl
ciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkv
bWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKK0FM
TE9XX1VOVVNFRF9QQVJBTUVURVJfRU5ECiAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKaW5kZXggZWE0NTdmN2Q1MzM1MGFmZDE4
NDRlZjNjZjQzMjExZjgzMzI5NTZmNC4uZGM2MTk1YzczZTkzMzcwYWUyOTYyNWI5NzAxMzhjMjA3
NjM0OWI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKQEAgLTM1LDEyICsz
NSwxMSBAQAogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAi
VGltZXIuaCIKIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVU
RVJfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvbWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4K
IAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfRU5E
CiAKICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2UuaAppbmRleCA1NDhlYTNmMDFkODA3ZTg3Y2UxMWQzMGU2Y2JjZGI3
MDJmOTE1NWUxLi4wMDBlMDEzZDRlNzFhN2NhMmFmNDE3ZDFmYmRhOTAyZWE1NGRjMTIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaApAQCAtMzQsMTMgKzM0LDEyIEBACiAjaW5j
bHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDxUaW1lci5oPgogCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9CRUdJTgogCiAj
aW5jbHVkZSA8d2VicnRjL2FwaS9tZWRpYXN0cmVhbWludGVyZmFjZS5oPgogI2luY2x1ZGUgPHdl
YnJ0Yy9jb21tb25fdmlkZW8vaW5jbHVkZS9pNDIwX2J1ZmZlcl9wb29sLmg+CiAKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcG9wCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0VORAogCiAjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDQXVkaW9Nb2R1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVsZS5oCmluZGV4IDc5ZTk5ZDdjZTIw
NmY4OTI1OTZiZGQ0ZjNkMWNlZjdlNWViMzdkZTAuLjU5YmNjMGVhMDFhY2E4ZDdiNjk1ZmE0ODFm
YjI1YjJjMTQ2Yzg2YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVsZS5o
CkBAIC0yOSwxNCArMjksMTMgQEAKIAogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgogCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9CRUdJTgogCiAj
aW5jbHVkZSA8d2VicnRjL21vZHVsZXMvYXVkaW9fZGV2aWNlL2luY2x1ZGUvYXVkaW9fZGV2aWNl
Lmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL21lc3NhZ2VoYW5kbGVyLmg+CiAjaW5jbHVk
ZSA8d2VicnRjL3J0Y19iYXNlL3RocmVhZC5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBv
cAorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9FTkQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCAxYTE0NTNjODliN2MzMjM5
ZmZmNWVhMWQyNWIzZDAwNWUzOTUxYzM4Li5hMTE4YTE3ODEzYzc5ZmEzOWQwNTYxNGYyOWY3M2Rj
ODM3MzZjYTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTMx
LDggKzMxLDcgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSA8ZGxmY24uaD4KIAot
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4KIAog
I2luY2x1ZGUgPHdlYnJ0Yy9hcGkvYXVkaW9fY29kZWNzL2J1aWx0aW5fYXVkaW9fZGVjb2Rlcl9m
YWN0b3J5Lmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS9hdWRpb19jb2RlY3MvYnVpbHRpbl9hdWRp
b19lbmNvZGVyX2ZhY3RvcnkuaD4KQEAgLTQzLDcgKzQyLDcgQEAKICNpbmNsdWRlIDx3ZWJydGMv
cGMvcGVlcmNvbm5lY3Rpb25mYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL3Bo
eXNpY2Fsc29ja2V0c2VydmVyLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCitBTExP
V19VTlVTRURfUEFSQU1FVEVSX0VORAogCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5oCmluZGV4IDhmY2NmMjJhMDA1ZmQ3OTg2MGMyYzk1ODY2MzcwMzY4MTMyMzhkOTYuLjlhZjk0
MDY5MWM1MDVmZmIwY2UzYmIxYzc1OTZhYjMyMjhkYTUzZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5oCkBAIC0zNSwxNSArMzUsMTQgQEAKIAogI2lmIFVTRShMSUJXRUJSVEMp
CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBp
Z25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0JFR0lO
CiAKICNpbmNsdWRlIDx3ZWJydGMvYXBpL3BlZXJjb25uZWN0aW9uaW50ZXJmYWNlLmg+CiAjaW5j
bHVkZSA8d2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlcl9mYWN0b3J5Lmg+CiAj
aW5jbHVkZSA8d2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lmg+
CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL3Njb3BlZF9yZWZfcHRyLmg+CiAKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcG9wCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0VORAogCiBuYW1lc3Bh
Y2UgcnRjIHsKIGNsYXNzIE5ldHdvcmtNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNv
Y29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCmluZGV4IDRiNDI1ZjliYTYyYjBmM2YwOTNhOTA2
ZmQ0YjJhZTQ5YzJhNDNjM2UuLjM4MjJlYzBkNTM5M2NmZTJmMzg0YjJjN2JhOWI0NzEwMjRhZWI5
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2Eu
bW0KQEAgLTM0LDEyICszNCwxMSBAQAogI2luY2x1ZGUgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgog
I2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2Vk
LXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4KIAogI2luY2x1ZGUgPHdl
YnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0VORAogCiAjaW5jbHVkZSA8d3RmL2Nm
L1R5cGVDYXN0c0NGLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlQ29jb2EuY3BwCmluZGV4IGVkMTRjMzRjMzFkNjZjMDVjZWQ1OTVjNjU2MDMwZTcxM2Y2
NTU3ODcuLmFjNDcwNjMzZGY5OTc1ODk1MzA2N2Y4Y2RjZDRkMTJjYTQ1MTk5NmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcApAQCAtMzAs
MTQgKzMwLDEzIEBACiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQt
cGFyYW1ldGVyIgorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9CRUdJTgogCiAjaW5jbHVkZSA8d2Vi
cnRjL2FwaS92aWRlby9pNDIwX2J1ZmZlci5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9jb21tb25fdmlk
ZW8vbGlieXV2L2luY2x1ZGUvd2VicnRjX2xpYnl1di5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9zZGsv
V2ViS2l0L1dlYktpdFV0aWxpdGllcy5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CitBTExPV19VTlVTRURfUEFSQU1FVEVSX0VORAogCiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmg+CiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Q0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25DRk5ldC5jcHAKaW5kZXggODExOWZkNWU1NTZlNmMxZDdiZmMxZmJhYjRiNWI4
ODkxMGMzOWU1Zi4uYzlkMjk2NDQyMWViZGQ4YjQ2NzQwNDZkY2M0YzUwM2M3YWZiNDk5NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25DRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKQEAgLTY0LDEyICs2NCwxMSBAQCBzdGF0
aWMgaW5saW5lIENGVHlwZUlEIHR5cGVJRCgpIHsgcmV0dXJuIENsYXNzTmFtZSMjR2V0VHlwZUlE
KCk7IH0gXAogfTsKIAogI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICNlbmRp
ZgogREVDTEFSRV9DRl9UWVBFX1RSQUlUKENGSFRUUENvb2tpZSk7CiAjaWYgQ09NUElMRVIoQ0xB
TkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICNlbmRpZgogCiAjdW5kZWYgREVDTEFSRV9DRl9UWVBFX1RSQUlUCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxl
Q0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhh
bmRsZUNGTmV0LmNwcAppbmRleCAwOTVhMGM0YjdkODRhYzljOWFiYWM0NGExYTVmNDZlOWViYzAw
MDdhLi41Y2JkYTViZGQ0NjcyOWRlYmI2YWJmMDQ0ZmQxNTg2NWJjYWYxNzdkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRk5ldC5jcHAKQEAgLTE3MSwxMiArMTcxLDExIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29s
CiAjZWxzZQogICAgIGlmIChhbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlSG9zdHMoKS5jb250YWlu
cyhmaXJzdFJlcXVlc3QoKS51cmwoKS5ob3N0KCkudG9TdHJpbmcoKSkpIHsKICAgICAgICAgc3Ns
UHJvcHMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25h
cnlWYWx1ZUNhbGxCYWNrcykpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBDRkRp
Y3Rpb25hcnlBZGRWYWx1ZShzc2xQcm9wcy5nZXQoKSwga0NGU3RyZWFtU1NMQWxsb3dzQW55Um9v
dCwga0NGQm9vbGVhblRydWUpOwogICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShzc2xQcm9w
cy5nZXQoKSwga0NGU3RyZWFtU1NMQWxsb3dzRXhwaXJlZFJvb3RzLCBrQ0ZCb29sZWFuVHJ1ZSk7
CiAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKHNzbFByb3BzLmdldCgpLCBrQ0ZTdHJlYW1T
U0xBbGxvd3NFeHBpcmVkQ2VydGlmaWNhdGVzLCBrQ0ZCb29sZWFuVHJ1ZSk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogI2lmICFQTEFURk9STShXSU4pIC8vIDxyZGFyOi8vcHJvYmxlbS8zMzk5MzQ2Mj4gLSBE
aXNhYmxpbmcgdmFsaWRhdGlvbiBvZiBjZXJ0aWZpY2F0ZSBjaGFpbiBicmVha3MgU1NMIG9uIFdp
bmRvd3MuCiAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKHNzbFByb3BzLmdldCgpLCBrQ0ZT
dHJlYW1TU0xWYWxpZGF0ZXNDZXJ0aWZpY2F0ZUNoYWluLCBrQ0ZCb29sZWFuRmFsc2UpOwogI2Vu
ZGlmCkBAIC0yMzQsMTAgKzIzMyw5IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJM
Q29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgaWYg
KHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKQogICAgICAgICBjbGllbnQuc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UgPSAwOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBkLT5tX2Nvbm5l
Y3Rpb24gPSBhZG9wdENGKENGVVJMQ29ubmVjdGlvbkNyZWF0ZVdpdGhQcm9wZXJ0aWVzKDAsIHJl
cXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZVUkxDb25uZWN0aW9uQ2xpZW50Kj4oJmNs
aWVudCksIHByb3BlcnRpZXNEaWN0aW9uYXJ5LmdldCgpKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIGJv
b2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0
LmNwcAppbmRleCA5ZWQ1YWEwYzlkOWJmMTNlZWEzMWEyOTU2OGEyNDk3NTc0ZTU4NmM0Li45NjM0
NzlkNjcyMjBiY2E5OTgwN2MyZWY0YjUwNjM3ZGNmZWYzYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1I
YW5kbGVJbXBsQ0ZOZXQuY3BwCkBAIC02NjYsMTAgKzY2Niw3IEBAIHZvaWQgU29ja2V0U3RyZWFt
SGFuZGxlSW1wbDo6cmVwb3J0RXJyb3JUb0NsaWVudChDRkVycm9yUmVmIGVycm9yKQogCiAjaWYg
UExBVEZPUk0oTUFDKQogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogCiAgICAgaWYgKENGRXF1YWwoQ0ZFcnJvckdldERvbWFpbihlcnJvciksIGtDRkVy
cm9yRG9tYWluT1NTdGF0dXMpKSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGRlc2NyaXB0aW9uT1NT
dGF0dXMgPSBHZXRNYWNPU1N0YXR1c0NvbW1lbnRTdHJpbmcoc3RhdGljX2Nhc3Q8T1NTdGF0dXM+
KGVycm9yQ29kZSkpOwpAQCAtNjc3LDkgKzY3NCw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxl
SW1wbDo6cmVwb3J0RXJyb3JUb0NsaWVudChDRkVycm9yUmVmIGVycm9yKQogICAgICAgICAgICAg
ZGVzY3JpcHRpb24gPSAiT1NTdGF0dXMgRXJyb3IgIiArIFN0cmluZzo6bnVtYmVyKGVycm9yQ29k
ZSkgKyAiOiAiICsgZGVzY3JpcHRpb25PU1N0YXR1czsKICAgICB9CiAKLSNpZiBDT01QSUxFUihD
TEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jcmVhdGUtaHR0cC1oZWFkZXItbmFtZS10YWJsZSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3JlYXRlLWh0dHAtaGVhZGVyLW5hbWUt
dGFibGUKaW5kZXggZWEyYjc0MzM2NDgzYjA1MDYzODcxM2ZkNTE3M2E2YjA5YjhkNjA3MC4uNmUx
Y2ExNDYwNWRiMDkzZDFmMWNiYjZmMzYzNWQ5NzhlMDExYWZlZCAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jcmVhdGUtaHR0cC1oZWFkZXItbmFtZS10YWJsZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NyZWF0ZS1odHRwLWhlYWRlci1u
YW1lLXRhYmxlCkBAIC05MCwxMSArOTAsNyBAQCBncGVyZl9maWxlLndyaXRlKCcnJwogCiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XaW1wbGljaXQtZmFsbHRocm91Z2giCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0JFR0lO
KCItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIikKIAogLy8gT2xkZXIgdmVyc2lvbnMgb2YgZ3BlcmYg
bGlrZSB0byB1c2UgdGhlIGByZWdpc3RlcmAga2V5d29yZC4KICNkZWZpbmUgcmVnaXN0ZXIKQEAg
LTE3OSw3ICsxNzUsNyBAQCBTdHJpbmdWaWV3IGh0dHBIZWFkZXJOYW1lU3RyaW5nKEhUVFBIZWFk
ZXJOYW1lIGhlYWRlck5hbWUpCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZiBkZWZpbmVk
KF9fY2xhbmdfXykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5H
X0VORAogI2VuZGlmCiAnJycpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dEVuY29kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4
dEVuY29kaW5nLmNwcAppbmRleCA0MDEzZjM3Y2Y3ZTFkN2Y3NzI4ZDhjMDA3ZmZhNjgxNzI2ZDVl
MDFkLi40MDVmOTMzOTRlMWU2ZTI5MTM2YTgwNDYwYjgyYzc2ZmQ3MGE1MGFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwCkBAIC02OSwxMCArNjks
NyBAQCBTdHJpbmcgVGV4dEVuY29kaW5nOjpkZWNvZGUoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90
IGxlbmd0aCwgYm9vbCBzdG9wT25FcnJvciwgYgogICAgIHJldHVybiBuZXdUZXh0Q29kZWMoKnRo
aXMpLT5kZWNvZGUoZGF0YSwgbGVuZ3RoLCB0cnVlLCBzdG9wT25FcnJvciwgc2F3RXJyb3IpOwog
fQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0jZW5kaWYKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAvLyBO
T1RFOiBJQ1UncyB1bm9ybV9xdWlja0NoZWNrIGFuZCB1bm9ybV9ub3JtYWxpemUgZnVuY3Rpb25z
IGFyZSBkZXByZWNhdGVkLgogCiBWZWN0b3I8dWludDhfdD4gVGV4dEVuY29kaW5nOjplbmNvZGUo
U3RyaW5nVmlldyB0ZXh0LCBVbmVuY29kYWJsZUhhbmRsaW5nIGhhbmRsaW5nKSBjb25zdApAQCAt
MTEyLDkgKzEwOSw3IEBAIFZlY3Rvcjx1aW50OF90PiBUZXh0RW5jb2Rpbmc6OmVuY29kZShTdHJp
bmdWaWV3IHRleHQsIFVuZW5jb2RhYmxlSGFuZGxpbmcgaGFuZGxpCiAgICAgcmV0dXJuIG5ld1Rl
eHRDb2RlYygqdGhpcyktPmVuY29kZShTdHJpbmdWaWV3IHsgc291cmNlLCBzb3VyY2VMZW5ndGgg
fSwgaGFuZGxpbmcpOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAKIGNvbnN0IGNoYXIqIFRleHRFbmNvZGluZzo6ZG9tTmFtZSgpIGNvbnN0CiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24u
aAppbmRleCA4NDAzNTMwZTk5ZDIwYjhkNDhiYTk0NzdmZjE3OWRlZjZkOGU4OTI4Li4wMTI0ZTll
Zjg0MDhhYjA1YWMzZTBjZjYxY2QwMTAzMTYwZjNlOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTI4LDEzICsy
OCwxMiBAQAogCiAjaW5jbHVkZSAiTGliV2ViUlRDTWFjcm9zLmgiCiAKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1w
YXJhbWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0JFR0lOCiAKICNpbmNsdWRlIDx3ZWJy
dGMvYXBpL21lZGlhc3RyZWFtaW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS9wZWVy
Y29ubmVjdGlvbmludGVyZmFjZS5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorQUxM
T1dfVU5VU0VEX1BBUkFNRVRFUl9FTkQKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIuY3BwCmluZGV4IDMxZGYxYzBkMTU4YTI3OGY0
YzA5NmNiMmJhOTExZjNmN2IwMWI5NDMuLmFiYzNhMjczNDM2ZDgwYmU2ZmVkNTE5ODhiYjVjOTFm
OTg0MzNlNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIuY3BwCkBAIC0yMTU0LDE1ICsy
MTU0LDEwIEBAIHl5ZXJyb3JsYWI6CiAgIC8qIFBhY2lmeSBjb21waWxlcnMgbGlrZSBHQ0Mgd2hl
biB0aGUgdXNlciBjb2RlIG5ldmVyIGludm9rZXMKICAgICAgWVlFUlJPUiBhbmQgdGhlIGxhYmVs
IHl5ZXJyb3JsYWIgdGhlcmVmb3JlIG5ldmVyIGFwcGVhcnMgaW4gdXNlcgogICAgICBjb2RlLiAg
Ki8KLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnJlYWNoYWJsZS1jb2RlIgotI2Vu
ZGlmCisgIElHTk9SRV9DTEFOR19XQVJOSU5HX0JFR0lOKCItV3VucmVhY2hhYmxlLWNvZGUiKQog
ICBpZiAoLypDT05TVENPTkQqLyAwKQogICAgICBnb3RvIHl5ZXJyb3JsYWI7Ci0jaWYgQ09NUElM
RVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgSUdOT1JF
X0NMQU5HX1dBUk5JTkdfRU5ECiAKICAgLyogRG8gbm90IHJlY2xhaW0gdGhlIHN5bWJvbHMgb2Yg
dGhlIHJ1bGUgd2hpY2ggYWN0aW9uIHRyaWdnZXJlZAogICAgICB0aGlzIFlZRVJST1IuICAqLwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0
YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EubW0KaW5kZXggYzJkNDVkNjZiZDI1OGViODMyYzI1NGZlYjgzNWFhZGU2
NzEzZTk0NS4uYzZmMTE3MjM5OWM3MTk3MWUzZmUwY2QzZWZhYzhjNzFhYjRkYTc1YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtE
YXRhVGFza0NvY29hLm1tCkBAIC0xMTgsMTIgKzExOCwxMSBAQCBOU0hUVFBDb29raWVTdG9yYWdl
ICpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6c3RhdGVsZXNzQ29va2llU3RvcmFnZSgpCiAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxOU0hUVFBDb29raWVTdG9yYWdlPj4gc3RhdGVs
ZXNzQ29va2llU3RvcmFnZTsKICAgICBpZiAoIXN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UuZ2V0KCkp
IHsKICNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
IDwgMTAxMzAwKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbm51bGwiCisgICAgICAgIEFMTE9XX05VTExfQVJHVU1F
TlRfQkVHSU4KICNlbmRpZgogICAgICAgICBzdGF0ZWxlc3NDb29raWVTdG9yYWdlLmdldCgpID0g
YWRvcHROUyhbW05TSFRUUENvb2tpZVN0b3JhZ2UgYWxsb2NdIF9pbml0V2l0aElkZW50aWZpZXI6
bmlsIHByaXZhdGU6WUVTXSk7CiAjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA8IDEwMTMwMCkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgQUxMT1dfTlVMTF9BUkdVTUVOVF9FTkQKICNlbmRpZgogICAgICAgICBzdGF0ZWxl
c3NDb29raWVTdG9yYWdlLmdldCgpLmdldCgpLmNvb2tpZUFjY2VwdFBvbGljeSA9IE5TSFRUUENv
b2tpZUFjY2VwdFBvbGljeU5ldmVyOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQppbmRleCBmZDc2
NjRjZTYxMzBiZmM3OGM4NTYyOWZhZDk3Y2M0NzEzNjExNWMxLi5iYjM3OWE0NTMyZTg4ODU3NGJj
MzVhOGYwYmM5OWM2NmU4OTA5Y2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCkBAIC0yMjMsOCArMjIz
LDcgQEAgc3RhdGljIHZvaWQgc2F2ZUNvb2tpZXMoTlNIVFRQQ29va2llU3RvcmFnZSAqY29va2ll
U3RvcmFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm8KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxh
dGZvcm1TeW5jQWxsQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRlcikgewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxl
Z2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIAogI2lm
IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
NDAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMjAwMDApCiAgICAgUmVmUHRyPENhbGxiYWNrQWdncmVnYXRvcj4gY2FsbGJhY2tBZ2dy
ZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGVyKSk7CkBAIC0yMzYsNyArMjM1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1T
eW5jQWxsQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGkKICAgICBj
b21wbGV0aW9uSGFuZGVyKCk7CiAjZW5kaWYKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpwbGF0Zm9ybVByZXBhcmVUb1N1c3BlbmQoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbHVn
aW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9QbHVnaW5Q
cm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCmluZGV4IGMzMTIwYmI1OWEwYTU0YjY5ODcw
OTJmYWY1NjkyZDQyNDE1M2U2MTcuLjZlZTVkNDg3Y2Q5OGQxN2M3OGNjMmU4YTIwOTAyZTg2Mjky
NmNlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2lu
UHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdp
blByb2Nlc3NNYWMubW0KQEAgLTI2MCwxMyArMjYwLDEyIEBAIHN0YXRpYyB1bnNpZ25lZCBtb2Rh
bENvdW50OwogCiBzdGF0aWMgdm9pZCBiZWdpbk1vZGFsKCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgIC8vIE1ha2Ugc3VyZSB0byBtYWtlIG91cnNlbHZlcyB0aGUgZnJvbnQgcHJvY2Vzcwog
ICAgIFByb2Nlc3NTZXJpYWxOdW1iZXIgcHNuOwogICAgIEdldEN1cnJlbnRQcm9jZXNzKCZwc24p
OwogICAgIFNldEZyb250UHJvY2VzcygmcHNuKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIGlmICghbW9k
YWxDb3VudCsrKQogICAgICAgICBzZXRNb2RhbCh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NTaGltLm1tCmluZGV4IDQwMzZkM2I4
NzQ0MDM2ODA3MmIyMGI3ODAyNjE3ZDE5ZTlkMWIwYTQuLjQ0NmM2MjFiNjllNWM5MmNkYjEwMjgw
MTMyNWZlMGI3ZTUxOTA3NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vz
cy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0KKysrIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9j
ZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hpbS5tbQpAQCAtNDgsOCArNDgsNyBAQCBzdGF0aWMgUGx1
Z2luUHJvY2Vzc1NoaW1DYWxsYmFja3MgcGx1Z2luUHJvY2Vzc1NoaW1DYWxsYmFja3M7CiAKICNp
Zm5kZWYgX19MUDY0X18KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogc3RhdGljIHZvaWQgc2hpbURlYnVn
Z2VyKHZvaWQpCiB7CkBAIC0xMzMsNyArMTMyLDcgQEAgRFlMRF9JTlRFUlBPU0Uoc2hpbUhpZGVX
aW5kb3csIEhpZGVXaW5kb3cpOwogRFlMRF9JTlRFUlBPU0Uoc2hpbUxTT3BlbkNGVVJMUmVmLCBM
U09wZW5DRlVSTFJlZik7CiBEWUxEX0lOVEVSUE9TRShzaGltTWFjaFZNTWFwLCBtYWNoX3ZtX21h
cCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVsZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcAppbmRl
eCA2MGY0MWViZGZmNjFjODYzNzdjYWZmMTdjYWViNTZhOTQ0NWVjNzc5Li5kYWQ4YjA5MmYzOTNl
OGMxOTJiYTRhZmJlYzZlMzcxMGEwZTUzNDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmNw
cApAQCAtMjQyLDggKzI0Miw3IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OnRyeUxvYWQo
KQogI2lmIFBMVUdJTl9BUkNISVRFQ1RVUkUoTUFDKQogI2lmbmRlZiBOUF9OT19DQVJCT04KIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAKICAgICAvLyBQbHVnaW5zIChhdCBsZWFzdCBRVCkgcmVxdWly
ZSB0aGF0IHlvdSBjYWxsIFVzZVJlc0ZpbGUgb24gdGhlIHJlc291cmNlIGZpbGUgYmVmb3JlIGxv
YWRpbmcgaXQuCiAgICAgUmVzRmlsZVJlZk51bSBjdXJyZW50UmVzb3VyY2VGaWxlID0gQ3VyUmVz
RmlsZSgpOwpAQCAtMjU4LDcgKzI1Nyw3IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OnRy
eUxvYWQoKQogICAgIC8vIFJlc3RvcmUgdGhlIHJlc291cmNlIGZpbGUuCiAgICAgVXNlUmVzRmls
ZShjdXJyZW50UmVzb3VyY2VGaWxlKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2lvcy9DaGlsZFByb2Nlc3NJT1MubW0KaW5kZXggOWJkZDcyZjgzZjQz
MTNlNDYwYzVkY2UwYjM5ZWNkNWU1NTdiNzRjYS4uZThjMDkzODkyMjkwYzFhNTYyNDM0MTlhYjBj
NDk2OTMyYzU3ZWJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0NoaWxk
UHJvY2Vzc0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvQ2hpbGRQcm9jZXNz
SU9TLm1tCkBAIC04MCwxMCArODAsOSBAQCB2b2lkIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNh
bmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJgogICAgICAg
ICBpZiAoIXNhbmRib3hQcm9maWxlUGF0aC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIENTdHJp
bmcgcHJvZmlsZVBhdGggPSBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc2Fu
ZGJveFByb2ZpbGVQYXRoKTsKICAgICAgICAgICAgIGNoYXIqIGVycm9yQnVmOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAgIGlmIChzYW5kYm94X2luaXRfd2l0aF9wYXJh
bWV0ZXJzKHByb2ZpbGVQYXRoLmRhdGEoKSwgU0FOREJPWF9OQU1FRF9FWFRFUk5BTCwgc2FuZGJv
eFBhcmFtZXRlcnMubmFtZWRQYXJhbWV0ZXJBcnJheSgpLCAmZXJyb3JCdWYpKSB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIlczogQ291bGRu
J3QgaW5pdGlhbGl6ZSBzYW5kYm94IHByb2ZpbGUgWyVzXSwgZXJyb3IgJyVzJ1xuIiwgZ2V0cHJv
Z25hbWUoKSwgcHJvZmlsZVBhdGguZGF0YSgpLCBlcnJvckJ1Zik7CiAgICAgICAgICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gc2FuZGJveFBhcmFtZXRlcnMuY291bnQoKTsgaSAh
PSBjb3VudDsgKytpKQogICAgICAgICAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzPSVzXG4i
LCBzYW5kYm94UGFyYW1ldGVycy5uYW1lKGkpLCBzYW5kYm94UGFyYW1ldGVycy52YWx1ZShpKSk7
CkBAIC05NSwxMCArOTQsOSBAQCB2b2lkIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3go
Y29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJgogICAgIH0KICAgICBj
YXNlIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnM6OlVzZVNhbmRib3hQcm9maWxlOiB7
CiAgICAgICAgIGNoYXIqIGVycm9yQnVmOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAg
ICBpZiAoc2FuZGJveF9pbml0X3dpdGhfcGFyYW1ldGVycyhzYW5kYm94UGFyYW1ldGVycy5zYW5k
Ym94UHJvZmlsZSgpLnV0ZjgoKS5kYXRhKCksIDAsIHNhbmRib3hQYXJhbWV0ZXJzLm5hbWVkUGFy
YW1ldGVyQXJyYXkoKSwgJmVycm9yQnVmKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAg
ICAgICBXVEZMb2dBbHdheXMoIiVzOiBDb3VsZG4ndCBpbml0aWFsaXplIHNhbmRib3ggcHJvZmls
ZSwgZXJyb3IgJyVzJ1xuIiwgZ2V0cHJvZ25hbWUoKSwgZXJyb3JCdWYpOwogICAgICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gc2FuZGJveFBhcmFtZXRlcnMuY291bnQoKTsgaSAh
PSBjb3VudDsgKytpKQogICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXM9JXNcbiIsIHNh
bmRib3hQYXJhbWV0ZXJzLm5hbWUoaSksIHNhbmRib3hQYXJhbWV0ZXJzLnZhbHVlKGkpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCmluZGV4IDA0Mzg3MjY5
YmM3NGY5NzUxYTUyZGNiYmQyMDliZjhhZTczM2MzZWEuLjIxZTNhZDQzMzNkN2M2YTg5OGQ2Zjg5
ODE2MjkzNjI0Njc1NjI1NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9D
aGlsZFByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NoaWxkUHJv
Y2Vzc01hYy5tbQpAQCAtNTM0LDEwICs1MzQsOSBAQCBzdGF0aWMgYm9vbCBjb21waWxlQW5kQXBw
bHlTYW5kYm94U2xvd0Nhc2UoY29uc3QgU3RyaW5nJiBwcm9maWxlT3JQcm9maWxlUGF0aCwgYgog
ICAgIGNoYXIqIGVycm9yQnVmOwogICAgIENTdHJpbmcgdGVtcCA9IGlzUHJvZmlsZVBhdGggPyBG
aWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocHJvZmlsZU9yUHJvZmlsZVBhdGgp
IDogcHJvZmlsZU9yUHJvZmlsZVBhdGgudXRmOCgpOwogICAgIHVpbnQ2NF90IGZsYWdzID0gaXNQ
cm9maWxlUGF0aCA/IFNBTkRCT1hfTkFNRURfRVhURVJOQUwgOiAwOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgaWYgKHNhbmRib3hfaW5pdF93aXRoX3BhcmFtZXRlcnModGVtcC5kYXRhKCksIGZs
YWdzLCBwYXJhbWV0ZXJzLm5hbWVkUGFyYW1ldGVyQXJyYXkoKSwgJmVycm9yQnVmKSkgewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICAgICAgICAgV1RGTG9nQWx3YXlzKCIlczogQ291bGQgbm90IGluaXRpYWxp
emUgc2FuZGJveCBwcm9maWxlIFslc10sIGVycm9yICclcydcbiIsIGdldHByb2duYW1lKCksIHRl
bXAuZGF0YSgpLCBlcnJvckJ1Zik7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9
IHBhcmFtZXRlcnMuY291bnQoKTsgaSAhPSBjb3VudDsgKytpKQogICAgICAgICAgICAgV1RGTG9n
QWx3YXlzKCIlcz0lc1xuIiwgcGFyYW1ldGVycy5uYW1lKGkpLCBwYXJhbWV0ZXJzLnZhbHVlKGkp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5t
bSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5tbQppbmRleCA2NWYy
YjVhNmQ3ODM2MWY2YzQ1MDVkY2U5MTg1NjdhYzMxYWM4OGFjLi4zOTFjOGRkZjU0NTZkNDRkMTAx
MmQxZmY4YjNjY2MxNDExMWY3MjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvQ29sb3JTcGFjZURhdGEubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NvbG9y
U3BhY2VEYXRhLm1tCkBAIC04MywxMCArODMsOSBAQCBib29sIENvbG9yU3BhY2VEYXRhOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBDb2xvclNwYWNlRGF0YSYgY29sb3JTcGFjZURhdAog
ICAgICAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIGRhdGEpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGNvbG9yU3BhY2VE
YXRhLmNnQ29sb3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aElDQ1Byb2Zp
bGUoZGF0YS5nZXQoKSkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2FuZGJveEV4dGVu
c2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFj
Lm1tCmluZGV4IGI4ZTc0M2QyMzYwY2ZlZWZjMTdiY2EyNGQ1OTcxMWNkZDU4YTViN2UuLjI3ZDNh
ODU5N2Q2OGE0NmI2NGYxZjk2MGIwYWU2YzQzODg3YjQxMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCkBAIC04NiwxMiArODYsMTEgQEAg
cHJpdmF0ZToKICAgICB7CiAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIFNh
bmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRPbmx5OgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9maWxlKEFQUF9T
QU5EQk9YX1JFQUQsIHBhdGgsIDApOwogICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246OlR5
cGU6OlJlYWRXcml0ZToKICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1
ZV9maWxlKEFQUF9TQU5EQk9YX1JFQURfV1JJVEUsIHBhdGgsIDApOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAgICAgICAgIGNhc2UgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6R2VuZXJpYzoKICAgICAg
ICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9nZW5lcmljKHBhdGgsIDApOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCBmMzQ5YzE3MzhiMWIyY2VlNWVmZTY1M2EwMWYxMWIyNmExMmRiMTkwLi44NmJk
NWJiMGQxMDY4NWNlZGMyYmM1NDQ5ZjQxZDc1YWNlYjA2M2RkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTM5OTksMTAgKzM5OTksOSBA
QCBXRUJDT1JFX0NPTU1BTkQoeWFua0FuZFNlbGVjdCkKIAogLSAoaWQpX3dlYl9zdXBlckFjY2Vz
c2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTooTlNTdHJpbmcgKilhdHRyaWJ1dGUKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIHJldHVybiBbc3VwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVl
OmF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKHZvaWQpX3dlYl9zdXBlckRvQ29tbWFu
ZEJ5U2VsZWN0b3I6KFNFTClzZWxlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQppbmRleCA4NDc4
ZGIyY2UzYzY3ZWU1MDc3ZWM1MGIwZTUwNDFiZTk0YWVmNTkyLi42NDFhMmVjMzQyZTQ0Mzg4OWJk
YTYwOGNlYTgwYjA5OWMyNDcxZGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQpAQCAtNTAwLDgg
KzUwMCw3IEBAIHN0YXRpYyBOU1N0cmluZyAqZGVmYXVsdEFwcGxpY2F0aW9uTmFtZUZvclVzZXJB
Z2VudCgpCiAgICAgcmV0dXJuIGhhbmRsZXIgPyBzdGF0aWNfY2FzdDxXZWJLaXQ6OldlYlVSTFNj
aGVtZUhhbmRsZXJDb2NvYSo+KGhhbmRsZXIuZ2V0KCkpLT5hcGlIYW5kbGVyKCkgOiBuaWw7CiB9
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAKIC0gKF9XS1dlYnNpdGVEYXRhU3RvcmUgKilfd2Vic2l0ZURh
dGFTdG9yZQogewpAQCAtNTEzLDcgKzUxMiw3IEBAIHN0YXRpYyBOU1N0cmluZyAqZGVmYXVsdEFw
cGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCgpCiAgICAgc2VsZi53ZWJzaXRlRGF0YVN0b3JlID0g
d2Vic2l0ZURhdGFTdG9yZSA/IHdlYnNpdGVEYXRhU3RvcmUtPl9kYXRhU3RvcmUuZ2V0KCkgOiBu
dWxscHRyOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogI2lmIFBMQVRGT1JNKElPUykKIC0gKFdLV2ViVmlld0Nv
bnRlbnRQcm92aWRlclJlZ2lzdHJ5ICopX2NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9y
ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0
b3JlLm1tCmluZGV4IGQ1NjIxYjAwNGU1ZDA3NzI4MWZkNTBmOTQ5YmZmYTJiY2UzZTc4MjQuLmJh
NGJmM2ExZmQ2YWZiZDljMmFiODFkNWNiZGRiZGMxZTMwYTU4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1t
CkBAIC00MCw4ICs0MCw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJz
aXRlRGF0YVR5cGVzKSB7CiAgICAgX1dLV2Vic2l0ZURhdGFUeXBlV2ViU1FMRGF0YWJhc2VzID0g
MSA8PCA1LAogfTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogQGltcGxlbWVudGF0aW9uIF9XS1dlYnNp
dGVEYXRhU3RvcmUKIApAQCAtMTA3LDYgKzEwNiw2IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNTZXQ+
IHRvV0tXZWJzaXRlRGF0YVR5cGVzKF9XS1dlYnNpdGVEYXRhVHlwZXMgd2Vic2l0ZURhdGFUeXBl
CiAKIEBlbmQKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCBlNjg3MzExNTI1ZjI0MTRlMDRi
NTgwNTc1YTA3ZDNkM2RlYTM1M2FhLi4zMmRkZGRmNzdhMTViMjFkOTliZjllNTlhNWVhNzlkMTgz
ZDM2NGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJWaWV3LmNwcApAQCAtMjA4Miw4ICsyMDgyLDcgQEAgdm9pZCB3ZWJraXRXZWJWaWV3UnVu
QXNNb2RhbChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogCiAjaWYgUExBVEZPUk0oR1RLKQogLy8g
VGhpcyBpcyB0byBzdXBwcmVzcyB3YXJuaW5ncyBhYm91dCBnZGtfdGhyZWFkc19sZWF2ZSBhbmQg
Z2RrX3RocmVhZHNfZW50ZXIuCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGdka190aHJlYWRzX2xlYXZl
KCk7CiAjZW5kaWYKIApAQCAtMjA5MSw3ICsyMDkwLDcgQEAgdm9pZCB3ZWJraXRXZWJWaWV3UnVu
QXNNb2RhbChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogCiAjaWYgUExBVEZPUk0oR1RLKQogICAg
IGdka190aHJlYWRzX2VudGVyKCk7Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggYmM1ZGUyYjU5ZjJmNGMyMWFlNTRi
NjBhMzQzM2RjODRkYTJkNTBlNC4uOTZkM2I4OTA5YTZhY2E2N2U0MjViNDkzMjliYzYzZTVlZjEx
MWE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTk3
OCwxMCArOTc4LDkgQEAgU29tZSBvdGhlciBlZGl0aW5nLXJlbGF0ZWQgbWV0aG9kcyBzdGlsbCB1
bmltcGxlbWVudGVkOgogCiAtIChpZClfd2ViX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZh
bHVlOihOU1N0cmluZyAqKWF0dHJpYnV0ZQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgcmV0
dXJuIFtzdXBlciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6YXR0cmlidXRlXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIH0KIAogLSAodm9pZClfd2ViX3N1cGVyRG9Db21tYW5kQnlTZWxlY3RvcjooU0VMKXNl
bGVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Eb3dubG9h
ZENsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0Rvd25sb2FkQ2xpZW50
Lm1tCmluZGV4IDBlYjFjZjY0MDMyODY4NjFhYTQyNzRkZmM3NDQ4NDNmMGJkMDBhNmEuLjcyNDM0
NDg3ZDQyMWNiZTFmOWJhMmVhNmNiYWNkMThkMzI4ODU1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL0Rvd25sb2FkQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL0Rvd25sb2FkQ2xpZW50Lm1tCkBAIC0yMDIsMTAgKzIwMiw5IEBA
IHZvaWQgRG93bmxvYWRDbGllbnQ6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVu
YW1lKFdlYlByb2Nlc3NQb29sJiwgRG93CiAKICAgICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMuZG93
bmxvYWREZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFsbG93T3ZlcndyaXRl
KSB7CiAgICAgICAgIEJPT0wgYWxsb3dPdmVyd3JpdGUgPSBOTzsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAgICAgTlNTdHJpbmcgKmRlc3RpbmF0aW9uID0gW21fZGVsZWdhdGUgX2Rvd25s
b2FkOndyYXBwZXIoZG93bmxvYWRQcm94eSkgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVk
RmlsZW5hbWU6ZmlsZW5hbWUgYWxsb3dPdmVyd3JpdGU6JmFsbG93T3ZlcndyaXRlXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGFsbG93T3ZlcndyaXRlID8gQWxs
b3dPdmVyd3JpdGU6OlllcyA6IEFsbG93T3ZlcndyaXRlOjpObywgZGVzdGluYXRpb24pOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIFttX2RlbGVnYXRlIF9kb3dubG9hZDp3cmFwcGVyKGRvd25sb2Fk
UHJveHkpIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lOmZpbGVuYW1lIGNv
bXBsZXRpb25IYW5kbGVyOkJsb2NrUHRyPHZvaWQoQk9PTCwgTlNTdHJpbmcgKik+Ojpmcm9tQ2Fs
bGFibGUoW2NoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUobV9k
ZWxlZ2F0ZS5nZXQoKS5nZXQoKSwgQHNlbGVjdG9yKF9kb3dubG9hZDpkZWNpZGVEZXN0aW5hdGlv
bldpdGhTdWdnZXN0ZWRGaWxlbmFtZTpjb21wbGV0aW9uSGFuZGxlcjopKSwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKEJPT0wgYWxsb3dPdmVyd3JpdGUs
IE5TU3RyaW5nICpkZXN0aW5hdGlvbikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50
Lm1tCmluZGV4IDE5YTU5YjQyY2FiN2I1NDdlZDk0NDYwZTcyZmMwMzk2Y2ZlNzkyODcuLjZjMTI1
Mzk2NTUwN2U1Yzk1MmNjMjc4MzEyZTAwZDhjMzU0NDcxODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2Nv
bE1hbmFnZXJDbGllbnQubW0KQEAgLTU2LDEyICs1NiwxMSBAQAogICAgIF9jdXN0b21Qcm90b2Nv
bE1hbmFnZXJQcm94eSA9IGN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5OwogICAgIF9jdXN0b21Q
cm90b2NvbElEID0gY3VzdG9tUHJvdG9jb2xJRDsKICAgICBfc3RvcmFnZVBvbGljeSA9IE5TVVJM
Q2FjaGVTdG9yYWdlTm90QWxsb3dlZDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIF91cmxDb25u
ZWN0aW9uID0gW1tOU1VSTENvbm5lY3Rpb24gYWxsb2NdIGluaXRXaXRoUmVxdWVzdDpyZXF1ZXN0
IGRlbGVnYXRlOnNlbGYgc3RhcnRJbW1lZGlhdGVseTpOT107CiAgICAgW191cmxDb25uZWN0aW9u
IHNjaGVkdWxlSW5SdW5Mb29wOltOU1J1bkxvb3AgbWFpblJ1bkxvb3BdIGZvck1vZGU6TlNSdW5M
b29wQ29tbW9uTW9kZXNdOwogICAgIFtfdXJsQ29ubmVjdGlvbiBzdGFydF07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAKICAgICByZXR1cm4gc2VsZjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCBkNWFjZDY0MzhkMGY1NTNmOTU4YTcyMDY2NmZm
NDJkMWMwM2JhZmQ0Li5mYjlkYjY0MDQ2NzlhNTk0YTA1YTExMTllNGE2YjI2NTU2M2I1YjZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1t
CkBAIC01NzUsMTAgKzU3NSw5IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xp
ZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQCiAgICAgICAgIGlm
IChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Rl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Vc2VySW5mb0RlY2lzaW9uSGFuZGxlcldlYnNp
dGVQb2xpY2llcykKICAgICAgICAgICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0
ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmll
dyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndyYXBwZXIobmF2aWdhdGlvbkFjdGlv
bikgdXNlckluZm86dXNlckluZm8gPyBzdGF0aWNfY2FzdDxpZCA8TlNTZWN1cmVDb2Rpbmc+Pih1
c2VySW5mby0+d3JhcHBlcigpKSA6IG5pbCBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVy
LmdldCgpXTsKICAgICAgICAgZWxzZSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICAgICAgWyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9uRGVs
ZWdhdGUgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb246d3JhcHBlcihuYXZpZ2F0aW9uQWN0aW9uKSBkZWNpc2lvbkhhbmRs
ZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICB9
CiAgICAgfSBlbHNlIHsKICAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXJXaXRob3V0UG9saWNp
ZXMgPSBbZGVjaXNpb25IYW5kbGVyV2l0aFBvbGljaWVzID0gV1RGTW92ZShkZWNpc2lvbkhhbmRs
ZXJXaXRoUG9saWNpZXMpXSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IGFjdGlvblBvbGljeSkg
bXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpp
bmRleCBmMGI5ZDMwMDBhOWU2NTQ1YWRiMGIxMjQ1MzFmNTcwZTQ4MjI1OWI0Li4zZWNlODIwZWQ0
YjMxNjQzNjkzZjUyMjQ3ZWRhZDljNjhiODFmZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTIwMywxMyArMjAzLDEyIEBAIHZvaWQgVUlEZWxl
Z2F0ZTo6Q29udGV4dE1lbnVDbGllbnQ6Om1lbnVGcm9tUHJvcG9zZWRNZW51KFdlYlBhZ2VQcm94
eSYsIE5TTWVudSAqCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICBpZiAobV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdDb250
ZXh0TWVudUZvckVsZW1lbnQpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihbKGlk
IDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93
ZWJWaWV3IGNvbnRleHRNZW51Om1lbnUgZm9yRWxlbWVudDpjb250ZXh0TWVudUVsZW1lbnRJbmZv
LmdldCgpXSk7CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihbKGlkIDxXS1VJRGVsZWdhdGVQcml2
YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNvbnRleHRNZW51
Om1lbnUgZm9yRWxlbWVudDpjb250ZXh0TWVudUVsZW1lbnRJbmZvLmdldCgpIHVzZXJJbmZvOnVz
ZXJJbmZvID8gc3RhdGljX2Nhc3Q8aWQgPE5TU2VjdXJlQ29kaW5nPj4odXNlckluZm8tPndyYXBw
ZXIoKSkgOiBuaWxdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCBkMTZm
NTg1MmRkZjg0YTRkNTkyYjlmMzNlNzhlYjMyZGE5MjBiMTAzLi40ZTVhZTMxNzNhOTUxY2ZmMzkw
YTE5NzYxMTBmNDBlYjRiMTkyYzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTE2NiwxMSArMTY2LDEwIEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lv
bnMoKQogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogI2lmIFBMQVRGT1JN
KE1BQykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdl
KFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11bmljYXRlV2l0aFdpbmRvd1NlcnZlcikpOwogICAg
IHBhcmFtZXRlcnMuYWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQgPSBb
W05TQXBwIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYRW5oYW5jZWRVc2VySW50ZXJm
YWNlIl0gYm9vbFZhbHVlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbHNlCiAgICAgcGFyYW1ldGVycy5hY2Nl
c3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCA9IGZhbHNlOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IGRlNDhl
MGY4YTg5NWViODJjMTdiNGY4NzUzYzYzZTE1MjE2ODhlNWEuLjBhYTczNGE2OTIxNzhkOTY2NGEx
NGI4ZTE2NDhmYWYzNjNjZGM2OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCkBAIC01NTYsMTUgKzU1NiwxNCBAQCBzdGF0aWMgY29uc3QgTlNVSW50
ZWdlciBvcmRlcmVkTGlzdFNlZ21lbnQgPSAyOwogICAgIFtpbnNlcnRMaXN0Q29udHJvbCBzZXRX
aWR0aDpsaXN0Q29udHJvbFNlZ21lbnRXaWR0aCBmb3JTZWdtZW50Om9yZGVyZWRMaXN0U2VnbWVu
dF07CiAgICAgaW5zZXJ0TGlzdENvbnRyb2wuZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6
ZToxNV07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlkIHNlZ21lbnRFbGVtZW50ID0gTlNB
Y2Nlc3NpYmlsaXR5VW5pZ25vcmVkRGVzY2VuZGFudChpbnNlcnRMaXN0Q29udHJvbCk7CiAgICAg
TlNBcnJheSAqc2VnbWVudHMgPSBbc2VnbWVudEVsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0
ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlXTsKICAgICBBU1NFUlQoc2Vn
bWVudHMuY291bnQgPT0gMyk7CiAgICAgW3NlZ21lbnRzW25vTGlzdFNlZ21lbnRdIGFjY2Vzc2li
aWxpdHlTZXRPdmVycmlkZVZhbHVlOldlYkNvcmU6Omluc2VydExpc3RUeXBlTm9uZSgpIGZvckF0
dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgW3NlZ21l
bnRzW3Vub3JkZXJlZExpc3RTZWdtZW50XSBhY2Nlc3NpYmlsaXR5U2V0T3ZlcnJpZGVWYWx1ZTpX
ZWJDb3JlOjppbnNlcnRMaXN0VHlwZUJ1bGxldGVkQWNjZXNzaWJpbGl0eVRpdGxlKCkgZm9yQXR0
cmlidXRlOk5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uQXR0cmlidXRlXTsKICAgICBbc2VnbWVu
dHNbb3JkZXJlZExpc3RTZWdtZW50XSBhY2Nlc3NpYmlsaXR5U2V0T3ZlcnJpZGVWYWx1ZTpXZWJD
b3JlOjppbnNlcnRMaXN0VHlwZU51bWJlcmVkQWNjZXNzaWJpbGl0eVRpdGxlKCkgZm9yQXR0cmli
dXRlOk5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uQXR0cmlidXRlXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAog
ICAgIHNlbGYudmlldyA9IGluc2VydExpc3RDb250cm9sOwogCkBAIC0xNjM4LDExICsxNjM3LDEw
IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKQogICAgICAg
ICBpZiAod2Vha1RoaXMtPm1fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKQogICAg
ICAgICAgICAgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9IFt3ZWFrVGhpcy0+bV92aWV3
IGNvbnZlcnRSZWN0Olt3ZWFrVGhpcy0+bV92aWV3IGZyYW1lXSB0b1ZpZXc6bmlsXTsKIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgaWYgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgICAgICBhY2Nlc3NpYmlsaXR5UG9z
aXRpb24gPSBbW3dlYWtUaGlzLT5tX3ZpZXcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5T
QWNjZXNzaWJpbGl0eVBvc2l0aW9uQXR0cmlidXRlXSBwb2ludFZhbHVlXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgICAgICAKICAgICAgICAgd2Vha1RoaXMtPm1fcGFnZS0+d2luZG93QW5kVmll
d0ZyYW1lc0NoYW5nZWQodmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgYWNjZXNzaWJpbGl0
eVBvc2l0aW9uKTsKICAgICB9KTsKQEAgLTM3MTcsMTAgKzM3MTUsOSBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpkcmFnZ2VkSW1hZ2UoTlNJbWFnZSAqLCBDR1BvaW50IGVuZFBvaW50LCBOU0RyYWdPcGVy
YXRpb24gb3BlcgogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZW5kRHJhZ0VuZFRvUGFnZShDR1BvaW50
IGVuZFBvaW50LCBOU0RyYWdPcGVyYXRpb24gb3BlcmF0aW9uKQogewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgTlNQb2ludCB3aW5kb3dJbWFnZUxvYyA9IFtbbV92aWV3IHdpbmRvd10gY29udmVy
dFNjcmVlblRvQmFzZTpOU1BvaW50RnJvbUNHUG9pbnQoZW5kUG9pbnQpXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICBOU1BvaW50IHdpbmRvd01vdXNlTG9jID0gd2luZG93SW1hZ2VMb2M7CiAKICAgICAvLyBQ
cmV2ZW50IHF1ZXVlZCBtb3VzZURyYWdnZWQgZXZlbnRzIGZyb20gY29taW5nIGFmdGVyIHRoZSBk
cmFnIGFuZCBmYWtlIG1vdXNlVXAgZXZlbnQuCkBAIC0zOTk4LDEwICszOTk1LDkgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6c3RhcnREcmFnKGNvbnN0IFdlYkNvcmU6OkRyYWdJdGVtJiBpdGVtLCBjb25z
dCBTaGFyZWFibGVCaXRtYXAKICAgICAvLyBUaGUgY2FsbCBiZWxvdyBjb3VsZCByZWxlYXNlIHRo
ZSB2aWV3LgogICAgIGF1dG8gcHJvdGVjdG9yID0gbV92aWV3LmdldCgpOwogICAgIGF1dG8gY2xp
ZW50RHJhZ0xvY2F0aW9uID0gaXRlbS5kcmFnTG9jYXRpb25JbldpbmRvd0Nvb3JkaW5hdGVzOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkID0gW05TUGFz
dGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6TlNEcmFnUGJvYXJkXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAog
ICAgIGlmIChhdXRvJiBpbmZvID0gaXRlbS5wcm9taXNlZEF0dGFjaG1lbnRJbmZvKSB7CiAgICAg
ICAgIE5TU3RyaW5nICp1dGlUeXBlID0gaW5mby5jb250ZW50VHlwZTsKQEAgLTQwMzAsMTAgKzQw
MjYsOSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzdGFydERyYWcoY29uc3QgV2ViQ29yZTo6RHJhZ0l0
ZW0mIGl0ZW0sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcAogICAgIH0KIAogICAgIFtwYXN0ZWJvYXJk
IHNldFN0cmluZzpAIiIgZm9yVHlwZTpQYXN0ZWJvYXJkVHlwZXM6OldlYkR1bW15UGJvYXJkVHlw
ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbbV92aWV3IGRyYWdJbWFnZTpkcmFnTlNJbWFn
ZS5nZXQoKSBhdDpOU1BvaW50RnJvbUNHUG9pbnQoY2xpZW50RHJhZ0xvY2F0aW9uKSBvZmZzZXQ6
TlNaZXJvU2l6ZSBldmVudDptX2xhc3RNb3VzZURvd25FdmVudC5nZXQoKSBwYXN0ZWJvYXJkOnBh
c3RlYm9hcmQgc291cmNlOm1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBzbGlkZUJhY2s6WUVTXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICAgICBtX3BhZ2UtPmRpZFN0YXJ0RHJhZygpOwogfQogCkBAIC00Nzc5LDEx
ICs0Nzc0LDEwIEBAIHZvaWQgV2ViVmlld0ltcGw6OmNoYXJhY3RlckluZGV4Rm9yUG9pbnQoTlNQ
b2ludCBwb2ludCwgdm9pZCheY29tcGxldGlvbkhhbmRsZXJQCiAKICAgICBOU1dpbmRvdyAqd2lu
ZG93ID0gW21fdmlldyB3aW5kb3ddOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAod2lu
ZG93KQogICAgICAgICBwb2ludCA9IFt3aW5kb3cgY29udmVydFNjcmVlblRvQmFzZTpwb2ludF07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAgICAgcG9pbnQgPSBbbV92aWV3IGNvbnZlcnRQb2ludDpwb2ludCBmcm9t
VmlldzpuaWxdOyAgLy8gdGhlIHBvaW50IGlzIHJlbGF0aXZlIHRvIHRoZSBtYWluIGZyYW1lCiAK
ICAgICBtX3BhZ2UtPmNoYXJhY3RlckluZGV4Rm9yUG9pbnRBc3luYyhXZWJDb3JlOjpJbnRQb2lu
dChwb2ludCksIFtjb21wbGV0aW9uSGFuZGxlcl0odWludDY0X3QgcmVzdWx0LCBXZWJLaXQ6OkNh
bGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQppbmRleCBk
NDM1ZTFmMzQwY2JlMjRjN2VkYTliNzRhMjcyYjI0ZmRkMzEzZGRkLi5lZjg2Mzg1MzYzMTNkZmQ0
ZDQ4NzU5MmQwNjgwYmZlOTljMTFkNWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC05
NCwxMCArOTQsOSBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXpl
UGx1Z2luUHJvY2VzcyhQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYQogYm9vbCBQbHVnaW5Qcm9jZXNz
UHJveHk6OmdldFBsdWdpblByb2Nlc3NTZXJpYWxOdW1iZXIoUHJvY2Vzc1NlcmlhbE51bWJlciYg
cGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJlcikKIHsKICAgICBwaWRfdCBwbHVnaW5Qcm9jZXNzUElE
ID0gcHJvY2Vzc0lkZW50aWZpZXIoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBH
ZXRQcm9jZXNzRm9yUElEKHBsdWdpblByb2Nlc3NQSUQsICZwbHVnaW5Qcm9jZXNzU2VyaWFsTnVt
YmVyKSA9PSBub0VycjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6
Om1ha2VQbHVnaW5Qcm9jZXNzVGhlRnJvbnRQcm9jZXNzKCkKQEAgLTEwNiwyMCArMTA1LDE4IEBA
IHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjptYWtlUGx1Z2luUHJvY2Vzc1RoZUZyb250UHJvY2Vz
cygpCiAgICAgaWYgKCFnZXRQbHVnaW5Qcm9jZXNzU2VyaWFsTnVtYmVyKHBsdWdpblByb2Nlc3NT
ZXJpYWxOdW1iZXIpKQogICAgICAgICByZXR1cm47CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IFNldEZyb250UHJvY2VzcygmcGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJlcik7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjptYWtlVUlQcm9jZXNzVGhlRnJvbnRQcm9j
ZXNzKCkKIHsKICAgICBQcm9jZXNzU2VyaWFsTnVtYmVyIHByb2Nlc3NTZXJpYWxOdW1iZXI7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICBHZXRDdXJyZW50UHJvY2VzcygmcHJvY2Vzc1NlcmlhbE51
bWJlcik7CiAgICAgU2V0RnJvbnRQcm9jZXNzKCZwcm9jZXNzU2VyaWFsTnVtYmVyKTsgICAgICAg
ICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OnNldEZ1bGxz
Y3JlZW5XaW5kb3dJc1Nob3dpbmcoYm9vbCBmdWxsc2NyZWVuV2luZG93SXNTaG93aW5nKQpAQCAt
MTUyLDEwICsxNDksOSBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZXhpdEZ1bGxzY3JlZW4o
KQogewogICAgIC8vIElmIHRoZSBwbHVnLWluIGhvc3QgaXMgdGhlIGN1cnJlbnQgYXBwbGljYXRp
b24gdGhlbiB3ZSBzaG91bGQgYnJpbmcgb3Vyc2VsdmVzIHRvIHRoZSBmcm9udCB3aGVuIGl0IGV4
aXRzIGZ1bGwtc2NyZWVuIG1vZGUuCiAgICAgUHJvY2Vzc1NlcmlhbE51bWJlciBmcm9udFByb2Nl
c3NTZXJpYWxOdW1iZXI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBHZXRGcm9udFByb2Nlc3Mo
JmZyb250UHJvY2Vzc1NlcmlhbE51bWJlcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICAvLyBUaGUgVUkg
cHJvY2VzcyBtdXN0IGJlIHRoZSBmcm9udCBwcm9jZXNzIGluIG9yZGVyIHRvIGNoYW5nZSB0aGUg
cHJlc2VudGF0aW9uIG1vZGUuCiAgICAgbWFrZVVJUHJvY2Vzc1RoZUZyb250UHJvY2VzcygpOwpA
QCAtMTY4LDE1ICsxNjQsMTMgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmV4aXRGdWxsc2Ny
ZWVuKCkKICAgICAvLyBJZiB0aGUgcGx1Zy1pbiBwcm9jZXNzIHdhcyBub3QgdGhlIGZyb250IHBy
b2Nlc3MsIHN3aXRjaCBiYWNrIHRvIHRoZSBwcmV2aW91cyBmcm9udCBwcm9jZXNzLgogICAgIC8v
IChPdGhlcndpc2Ugd2UnbGwga2VlcCB0aGUgVUkgcHJvY2VzcyBhcyB0aGUgZnJvbnQgcHJvY2Vz
cykuCiAgICAgQm9vbGVhbiBpc1BsdWdpblByb2Nlc3NGcm9udFByb2Nlc3M7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICBTYW1lUHJvY2VzcygmZnJvbnRQcm9jZXNzU2VyaWFsTnVtYmVyLCAmcGx1
Z2luUHJvY2Vzc1NlcmlhbE51bWJlciwgJmlzUGx1Z2luUHJvY2Vzc0Zyb250UHJvY2Vzcyk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgaWYgKCFpc1BsdWdpblByb2Nlc3NGcm9udFByb2Nlc3MpIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgU2V0RnJvbnRQcm9jZXNzKCZmcm9udFByb2Nlc3NT
ZXJpYWxOdW1iZXIpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xs
ZXIubW0KaW5kZXggYjM2MmQ1N2I5YzQzYTg1ZjM2NmUzM2I2YTdkNDkyOTlmNmE5ZDRmMy4uMjM1
YWE1Yjk3MmJmMjE5NWUzYTYxMDJlMmU3YWRlMzg0ZmEzZDg4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xs
ZXIubW0KQEAgLTM3LDEyICszNywxMSBAQAogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1w
b3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogI2ltcG9ydCAiVUlL
aXRTUEkuaCIKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAKIHN0YXRpYyBjb25zdCBmbG9hdCBzbWFydE1hZ25pZmljYXRp
b25QYW5TY3JvbGxUaHJlc2hvbGRab29tZWRPdXQgPSA2MDsKIHN0YXRpYyBjb25zdCBmbG9hdCBz
bWFydE1hZ25pZmljYXRpb25QYW5TY3JvbGxUaHJlc2hvbGRJUGhvbmUgPSAxMDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9T
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklP
Uy5tbQppbmRleCA4OGQ5Mzk3NzEzMDBmYzA5YWM1MTg2YWRmMTMxMzAyODQxMDdkMDE0Li5iZGNj
NTcxMGZjN2Y0OTY1ZjNjOThkZTE3MTYxMzU5ZmE3MzU3NTgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KQEAg
LTUzLDggKzUzLDcgQEAKICNpbXBvcnQgPFdlYktpdC9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlv
blByb3ZpZGVyLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViQWxsb3dEZW55UG9saWN5TGlzdGVuZXIu
aD4KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KIAogQGludGVyZmFjZSBXS0dlb2xvY2F0aW9uUHJvdmlkZXJJ
T1MgKF9XS0dlb2xvY2F0aW9uQ29yZUxvY2F0aW9uTGlzdGVuZXIpIDxfV0tHZW9sb2NhdGlvbkNv
cmVMb2NhdGlvbkxpc3RlbmVyPgogQGVuZApAQCAtMzU0LDYgKzM1Myw2IEBAIHN0YXRpYyB2b2lk
IHNldEVuYWJsZUhpZ2hBY2N1cmFjeShXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlv
bk1hbmFnZXIsIGJvCiB9CiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9T
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTGVnYWN5UERGVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0xlZ2FjeVBERlZpZXcubW0KaW5k
ZXggMGI1ZDlkNmM2NDZiNDI4MmMwZmNiNzNlMWNiZmQwY2EzNGYzNWFhNi4uZDM4ZjMxYzgxNWYz
YzlmM2U5OGRhNTJlNTRmYjg4ODg0ZWQwYTQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLTGVnYWN5UERGVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tMZWdhY3lQREZWaWV3Lm1tCkBAIC01MSw4ICs1MSw3IEBACiAKIC8vIEFsbCBv
ZiBVSVBERlBhZ2UqIGFyZSBkZXByZWNhdGVkLCBzbyBqdXN0IGlnbm9yZSBkZXByZWNhdGVkIGRl
Y2xhcmF0aW9ucwogLy8gaW4gdGhpcyBmaWxlIHVudGlsIHdlIHN3aXRjaCBvZmYgdGhlbS4KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAKIGNvbnN0IENHRmxvYXQgcGRmUGFnZU1hcmdpbiA9IDg7CiBjb25zdCBD
R0Zsb2F0IHBkZk1pbmltdW1ab29tU2NhbGUgPSAxOwpAQCAtODU3LDYgKzg1Niw2IEBAIHN0YXRp
YyBOU1N0cmluZ0NvbXBhcmVPcHRpb25zIHN0cmluZ0NvbXBhcmVPcHRpb25zKF9XS0ZpbmRPcHRp
b25zIG9wdGlvbnMpCiAKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TTUFDKQogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAog
I2VuZGlmIC8vIEVOQUJMRShXS0xFR0FDWVBERlZJRVcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLUERGUGFnZU51bWJlckluZGljYXRvci5tbQppbmRleCA5Nzli
MzBkMzgxNGIxMzA2YzBhYWIxOTU2ZWMzN2EzZGE2NjA2MzhiLi44MTlhZmI3MGYzNTI4NjE4N2M4
NGI4ZDhkNzkzZDQ0ODJmNDY3MjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3IubW0KQEAgLTE4MywxMCArMTgzLDkg
QEAgY29uc3QgTlNUaW1lSW50ZXJ2YWwgaW5kaWNhdG9yTW92ZUR1cmF0aW9uID0gMC4zOwogICAg
IENHQ29udGV4dFNhdmVHU3RhdGUoY29udGV4dCk7CiAgICAgQ0dDb250ZXh0QWRkUmVjdChjb250
ZXh0LCBjb3JuZXJJbWFnZUJvdW5kcyk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFVJQmV6
aWVyUGF0aCAqY29ybmVyUGF0aCA9IFtVSUJlemllclBhdGggYmV6aWVyUGF0aFdpdGhSb3VuZGVk
UmVjdDpjb3JuZXJJbWFnZUJvdW5kcyBieVJvdW5kaW5nQ29ybmVyczooVUlSZWN0Q29ybmVyKVVJ
QWxsQ29ybmVycyBjb3JuZXJSYWRpaTpDR1NpemVNYWtlKGluZGljYXRvckNvcm5lclJhZGl1cywg
aW5kaWNhdG9yQ29ybmVyUmFkaXVzKV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgQ0dDb250ZXh0QWRkUGF0
aChjb250ZXh0LCBbY29ybmVyUGF0aCBDR1BhdGhdKTsKICAgICBDR0NvbnRleHRFT0NsaXAoY29u
dGV4dCk7CiAgICAgQ0dDb250ZXh0RmlsbFJlY3QoY29udGV4dCwgY29ybmVySW1hZ2VCb3VuZHMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLQWlyUGxh
eVJvdXRlUGlja2VyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLQWly
UGxheVJvdXRlUGlja2VyLm1tCmluZGV4IDc0YmQyMzJkNjIyZWU4MWUwN2JmNDQ5ZTMwODdhMjU5
N2ZjNzI4ZmMuLmNjM2E4ZWQ1OTY2YTJkMDAzOTY2ZmMwYjAwOGMwNTdlODliYzBlOGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0FpclBsYXlSb3V0ZVBp
Y2tlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tBaXJQbGF5
Um91dGVQaWNrZXIubW0KQEAgLTM5LDggKzM5LDcgQEAKICNpbXBvcnQgIldLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAKIFNPRlRfTElOS19GUkFNRVdPUksoTWVkaWFQbGF5ZXIpCiBTT0ZUX0xJTktfQ0xBU1MoTWVk
aWFQbGF5ZXIsIE1QQVZSb3V0aW5nQ29udHJvbGxlcikKQEAgLTE2MCw3ICsxNTksNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZWxzZSAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVs
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVs
Lm1tCmluZGV4IDgyZDZmMmEwZjVhOTBmMGQ0Zjk1YmI0ZmZiYjNmZThjMWJiZDg2NzkuLmI5YzFm
YWVmNGMwNjc1MzE4YTI1ZDhmMTM0NzE4YzZkNWIyZmQwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0KQEAgLTQ2
LDggKzQ2LDcgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
IAogc3RhdGljIGlubGluZSBVSUltYWdlUGlja2VyQ29udHJvbGxlckNhbWVyYURldmljZSBjYW1l
cmFEZXZpY2VGb3JNZWRpYUNhcHR1cmVUeXBlKFdlYkNvcmU6Ok1lZGlhQ2FwdHVyZVR5cGUgbWVk
aWFDYXB0dXJlVHlwZSkKIHsKQEAgLTE2MCwxMCArMTU5LDkgQEAgc3RhdGljIGlubGluZSBVSUlt
YWdlICpjYW1lcmFJY29uKCkKICAgICBCT09MIF91c2luZ0NhbWVyYTsKICAgICBSZXRhaW5QdHI8
VUlJbWFnZVBpY2tlckNvbnRyb2xsZXI+IF9pbWFnZVBpY2tlcjsKICAgICBSZXRhaW5QdHI8VUlW
aWV3Q29udHJvbGxlcj4gX3ByZXNlbnRhdGlvblZpZXdDb250cm9sbGVyOyAvLyBpUGhvbmUgYWx3
YXlzLiBpUGFkIGZvciBGdWxsc2NyZWVuIENhbWVyYS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IFJldGFpblB0cjxVSVBvcG92ZXJDb250cm9sbGVyPiBfcHJlc2VudGF0aW9uUG9wb3ZlcjsgLy8g
aVBhZCBmb3IgYWN0aW9uIHNoZWV0IGFuZCBQaG90byBMaWJyYXJ5LgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAg
IFJldGFpblB0cjxVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyPiBfZG9jdW1lbnRNZW51Q29u
dHJvbGxlcjsKICAgICBXZWJDb3JlOjpNZWRpYUNhcHR1cmVUeXBlIF9tZWRpYUNhcHR1cmVUeXBl
OwogfQpAQCAtNDUwLDEwICs0NDgsOSBAQCBzdGF0aWMgTlNBcnJheSAqVVRJc0Zvck1JTUVUeXBl
cyhOU0FycmF5ICptaW1lVHlwZXMpCiB7CiAgICAgW3NlbGYgX2Rpc21pc3NEaXNwbGF5QW5pbWF0
ZWQ6YW5pbWF0ZWRdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBfcHJlc2VudGF0aW9uUG9w
b3ZlciA9IGFkb3B0TlMoW1tVSVBvcG92ZXJDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aENvbnRl
bnRWaWV3Q29udHJvbGxlcjpjb250ZW50Vmlld0NvbnRyb2xsZXJdKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAg
ICBbX3ByZXNlbnRhdGlvblBvcG92ZXIgc2V0RGVsZWdhdGU6c2VsZl07CiAgICAgW19wcmVzZW50
YXRpb25Qb3BvdmVyIHByZXNlbnRQb3BvdmVyRnJvbVJlY3Q6Q0dSZWN0SW50ZWdyYWwoQ0dSZWN0
TWFrZShfaW50ZXJhY3Rpb25Qb2ludC54LCBfaW50ZXJhY3Rpb25Qb2ludC55LCAxLCAxKSkgaW5W
aWV3Ol92aWV3IHBlcm1pdHRlZEFycm93RGlyZWN0aW9uczpVSVBvcG92ZXJBcnJvd0RpcmVjdGlv
bkFueSBhbmltYXRlZDphbmltYXRlZF07CiB9CkBAIC03MjAsNiArNzE3LDYgQEAgc3RhdGljIE5T
QXJyYXkgKlVUSXNGb3JNSU1FVHlwZXMoTlNBcnJheSAqbWltZVR5cGVzKQogCiBAZW5kCiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Db2xvckNvbnRyb2wubW0KaW5kZXggNjA5YmFj
MzFmNTZhYTVhYWViZjAzYzJlMzE4YzE1NTRhNThlOTVhNy4uODI0ZWQzZDkxYmNiMTdiMWMxNDBl
ZDRmYTNiYWExNmFlY2UwNzQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZm9ybXMvV0tGb3JtQ29sb3JDb250cm9sLm1tCkBAIC02NiwxMCArNjYsOSBAQCBz
dGF0aWMgY29uc3QgQ0dGbG9hdCBjb2xvclBvcG92ZXJDb3JuZXJSYWRpdXMgPSA5OwogICAgIFtw
b3BvdmVyVmlld0NvbnRyb2xsZXIgc2V0Vmlldzpjb250cm9sQ29udGFpbmVyVmlldy5nZXQoKV07
CiAgICAgW3BvcG92ZXJWaWV3Q29udHJvbGxlciBzZXRQcmVmZXJyZWRDb250ZW50U2l6ZTpbY29u
dHJvbENvbnRhaW5lclZpZXcgc2l6ZV1dOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBSZXRh
aW5QdHI8VUlQb3BvdmVyQ29udHJvbGxlcj4gY29udHJvbGxlciA9IGFkb3B0TlMoW1tVSVBvcG92
ZXJDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aENvbnRlbnRWaWV3Q29udHJvbGxlcjpwb3BvdmVy
Vmlld0NvbnRyb2xsZXIuZ2V0KCldKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbc2VsZiBzZXRQb3BvdmVy
Q29udHJvbGxlcjpjb250cm9sbGVyLmdldCgpXTsKIAogICAgIHJldHVybiBzZWxmOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29udHJv
bC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRy
b2wubW0KaW5kZXggMWNkNjJlM2JiNTE4MTNiNzE0ZTM0YTNjZmJlYjczYWJhYWE5MGNlMy4uZDAy
ZGZmZmZkYTVhNjY0NjExMjRkMzg1ODE3ZDg2NTlhNjAyY2VjMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29udHJvbC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLm1tCkBA
IC0zMzAsMTYgKzMzMCwxNCBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga01pbGxpc2Vj
b25kc1BlclNlY29uZCA9IDEwMDA7CiAgICAgUmV0YWluUHRyPFVJTmF2aWdhdGlvbkNvbnRyb2xs
ZXI+IG5hdmlnYXRpb25Db250cm9sbGVyID0gYWRvcHROUyhbW1VJTmF2aWdhdGlvbkNvbnRyb2xs
ZXIgYWxsb2NdIGluaXRXaXRoUm9vdFZpZXdDb250cm9sbGVyOl92aWV3Q29udHJvbGxlci5nZXQo
KV0pOwogICAgIFVJTmF2aWdhdGlvbkl0ZW0gKm5hdmlnYXRpb25JdGVtID0gbmF2aWdhdGlvbkNv
bnRyb2xsZXIuZ2V0KCkubmF2aWdhdGlvbkJhci50b3BJdGVtOwogICAgIE5TU3RyaW5nICpjbGVh
clN0cmluZyA9IFdFQl9VSV9TVFJJTkdfS0VZKCJDbGVhciIsICJDbGVhciBCdXR0b24gRGF0ZSBQ
b3BvdmVyIiwgIkNsZWFyIGJ1dHRvbiBpbiBkYXRlIGlucHV0IHBvcG92ZXIiKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIFVJQmFyQnV0dG9uSXRlbSAqY2xlYXJCdXR0b24gPSBbW1tVSUJhckJ1
dHRvbkl0ZW0gYWxsb2NdIGluaXRXaXRoVGl0bGU6Y2xlYXJTdHJpbmcgc3R5bGU6VUlCYXJCdXR0
b25JdGVtU3R5bGVCb3JkZXJlZCB0YXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKGNsZWFyOild
IGF1dG9yZWxlYXNlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbbmF2aWdhdGlvbkl0ZW0gc2V0UmlnaHRC
YXJCdXR0b25JdGVtOmNsZWFyQnV0dG9uXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgUmV0
YWluUHRyPFVJUG9wb3ZlckNvbnRyb2xsZXI+IGNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbVUlQb3Bv
dmVyQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6bmF2aWdh
dGlvbkNvbnRyb2xsZXIuZ2V0KCldKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbc2VsZiBzZXRQb3BvdmVy
Q29udHJvbGxlcjpjb250cm9sbGVyLmdldCgpXTsKIAogICAgIHJldHVybiBzZWxmOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLmgKaW5kZXgg
MGVjOGM2NTUzODc5YWJkYzViOTIxMGY5NTc4MjRiMDdlMGIwZmRlYi4uYzk2NzYxYzZiZDkzNzAw
ZTMyZmM4YjdkYmM3ZGI4ZDgyMzIzOGQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9wb3Zlci5oCkBAIC00MCwxMCArNDAsOSBAQAogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS0NvbnRlbnRWaWV3ICp2aWV3OwogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgYXNzaWduKSBDR1BvaW50IHByZXNlbnRhdGlvblBvaW50OwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZXRhaW4pIFVJUG9wb3ZlckNvbnRyb2xs
ZXIgKnBvcG92ZXJDb250cm9sbGVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNz
aWduKSBpZCA8V0tSb3RhdGluZ1BvcG92ZXJEZWxlZ2F0ZT4gZGlzbWlzc2lvbkRlbGVnYXRlOwog
QGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tG
b3JtUG9wb3Zlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Q
b3BvdmVyLm1tCmluZGV4IGJlMmYwZDJjYWQ0ZmY4YzJmZDQxODE1NjNiN2U2ZGI2ZGNiOGUyYTAu
LjZiMThjM2QwMjJlNTljNGZiNmRmOTA3NjRmNWI2MjllOGVjZGZjNzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLm1tCkBAIC0zNiw4
ICszNiw3IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAK
IEBpbXBsZW1lbnRhdGlvbiBXS0Zvcm1Sb3RhdGluZ0FjY2Vzc29yeVBvcG92ZXIKIApAQCAtMTc4
LDYgKzE3Nyw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIEBlbmQKIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAK
ICNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZm9ybXMvV0tGb3JtU2VsZWN0UG9wb3Zlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RQb3BvdmVyLm1tCmluZGV4IDU3YmZhNDA3MDRh
MjBlMzJlZWNiOGZlMWM3NmMyYzUwZThkOGY5MDQuLjQzYjdlY2JmYmFjNjdkYTBhYjRjMWVmMmJh
N2I3NjU3ZWRhYmY5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9m
b3Jtcy9XS0Zvcm1TZWxlY3RQb3BvdmVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RQb3BvdmVyLm1tCkBAIC00MDEsMTAgKzQwMSw5IEBAIHN0
YXRpYyBOU1N0cmluZyAqc3RyaW5nV2l0aFdyaXRpbmdEaXJlY3Rpb24oTlNTdHJpbmcgKnN0cmlu
ZywgVUlUZXh0V3JpdGluZ0RpcmVjCiAgICAgZWxzZQogICAgICAgICBwb3BvdmVyVmlld0NvbnRy
b2xsZXIucHJlZmVycmVkQ29udGVudFNpemUgPSBwb3BvdmVyU2l6ZTsKICAgICAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIHNlbGYucG9wb3ZlckNvbnRyb2xsZXIgPSBbW1tVSVBvcG92ZXJDb250
cm9sbGVyIGFsbG9jXSBpbml0V2l0aENvbnRlbnRWaWV3Q29udHJvbGxlcjpwb3BvdmVyVmlld0Nv
bnRyb2xsZXJdIGF1dG9yZWxlYXNlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIFtuYXZDb250cm9sbGVy
IHJlbGVhc2VdOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VD
bGllbnRJbXBsTWFjLm1tCmluZGV4IDhjMjNiMjhiODIwYjViZTFlNzQxYjMxN2UzZDIwOWZmYTgx
NjFkMGMuLmM0NzliYjlhMDE2YTQzODEwZTRiM2E3MjI4ODU4NWY0MTc0Njk1NzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTQx
OSwxMCArNDE5LDkgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6cGlubmVkU3RhdGVEaWRDaGFuZ2Uo
KQogICAgIAogSW50UG9pbnQgUGFnZUNsaWVudEltcGw6OnNjcmVlblRvUm9vdFZpZXcoY29uc3Qg
SW50UG9pbnQmIHBvaW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNQb2ludCB3aW5k
b3dDb29yZCA9IFtbbV92aWV3IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpwb2ludF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgcmV0dXJuIEludFBvaW50KFttX3ZpZXcgY29udmVydFBvaW50OndpbmRv
d0Nvb3JkIGZyb21WaWV3Om5pbF0pOwogfQogICAgIApAQCAtNDMwLDEwICs0MjksOSBAQCBJbnRS
ZWN0IFBhZ2VDbGllbnRJbXBsOjpyb290Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3Qp
CiB7CiAgICAgTlNSZWN0IHRlbXBSZWN0ID0gcmVjdDsKICAgICB0ZW1wUmVjdCA9IFttX3ZpZXcg
Y29udmVydFJlY3Q6dGVtcFJlY3QgdG9WaWV3Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICB0ZW1wUmVjdC5vcmlnaW4gPSBbW21fdmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46
dGVtcFJlY3Qub3JpZ2luXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVj
dCh0ZW1wUmVjdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0KaW5kZXggNWE2YmZjMzNjZWYy
ZDIwNmE5ZTA2ZDE1ZGRmMWM4N2NjMzcxMjQ1Ni4uYjYwYTU1Yzk1YWViMmVjZmE5MDM4Y2ZkNjE3
Yzc3ZjIxOWIxOTc2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0KQEAgLTI2NSwxMiArMjY1LDEx
IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3JlYXRlSW1hZ2VXaXRoQ29waWVkRGF0
YShDR0ltYWdlUmVmIHNvdXJjZUltYWdlKQogICAgIC8vIGZ1dHVyZSBvdmVyaGVhZC4KICAgICB3
ZWJWaWV3Q29udGVudHMgPSBjcmVhdGVJbWFnZVdpdGhDb3BpZWREYXRhKHdlYlZpZXdDb250ZW50
cy5nZXQoKSk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIFNjcmVlbiB1cGRhdGVzIHRv
IGJlIHJlLWVuYWJsZWQgaW4gX3N0YXJ0RW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0
aW9uOgogICAgIE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKICAgICBbW3NlbGYgd2luZG93XSBz
ZXRBdXRvZGlzcGxheTpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBbc2VsZiBfbWFuYWdlcl0tPnNh
dmVTY3JvbGxQb3NpdGlvbigpOwogICAgIF9zYXZlZFRvcENvbnRlbnRJbnNldCA9IF9wYWdlLT50
b3BDb250ZW50SW5zZXQoKTsKQEAgLTMyNSwxMSArMzI0LDEwIEBAIHN0YXRpYyBjb25zdCBmbG9h
dCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTogS2VlcCBpbiBzeW5jIHdp
dGggbWVkCiAgICAgaWYgKGNvbXBsZXRlZCkgewogICAgICAgICBfZnVsbFNjcmVlblN0YXRlID0g
SW5GdWxsU2NyZWVuOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIC8vIFNjcmVl
biB1cGRhdGVzIHRvIGJlIHJlLWVuYWJsZWQgdGEgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBibG9j
ay4KICAgICAgICAgTlNEaXNhYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAg
ICAgICAgW3NlbGYgX21hbmFnZXJdLT5kaWRFbnRlckZ1bGxTY3JlZW4oKTsKICAgICAgICAgW3Nl
bGYgX21hbmFnZXJdLT5zZXRBbmltYXRpbmdGdWxsU2NyZWVuKGZhbHNlKTsKIApAQCAtMzQ3LDEw
ICszNDUsOSBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9XaWR0aCA9IDQ4MCArIDIwICsg
MjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogICAgICAgICAvLyBUcmFuc2l0aW9u
IHRvIGZ1bGxzY3JlZW4gZmFpbGVkLiBDbGVhbiB1cC4KICAgICAgICAgX2Z1bGxTY3JlZW5TdGF0
ZSA9IE5vdEluRnVsbFNjcmVlbjsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBb
W3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAg
ICAgX3BhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMoZmFsc2UpOwogCiAgICAgICAg
IE5TUmVzcG9uZGVyICpmaXJzdFJlc3BvbmRlciA9IFtbc2VsZiB3aW5kb3ddIGZpcnN0UmVzcG9u
ZGVyXTsKQEAgLTM2OSwxMCArMzY2LDkgQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lk
dGggPSA0ODAgKyAyMCArIDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKICAgICAg
ICAgW3NlbGYgX21hbmFnZXJdLT5zZXRBbmltYXRpbmdGdWxsU2NyZWVuKGZhbHNlKTsKICAgICB9
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogCiAgICAgaWYgKF9yZXF1ZXN0ZWRFeGl0RnVsbFNjcmVlbikgewogICAgICAgICBf
cmVxdWVzdGVkRXhpdEZ1bGxTY3JlZW4gPSBOTzsKQEAgLTQwMiwxMiArMzk4LDExIEBAIHN0YXRp
YyBjb25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTogS2Vl
cCBpbiBzeW5jIHdpdGggbWVkCiAKICAgICBbX3dlYlZpZXdQbGFjZWhvbGRlciBzZXRFeGl0V2Fy
bmluZ1Zpc2libGU6Tk9dOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBTY3JlZW4gdXBk
YXRlcyB0byBiZSByZS1lbmFibGVkIGluIF9zdGFydEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0
aER1cmF0aW9uOiBvciBiZWdhbkV4aXRGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTpmaW5hbEZy
YW1lOgogICAgIE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKICAgICBbW3NlbGYgd2luZG93XSBz
ZXRBdXRvZGlzcGxheTpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICAvLyBTZWUgdGhlIHJlbGF0ZWQg
Y29tbWVudCBpbiBlbnRlckZ1bGxTY3JlZW46CiAgICAgLy8gV2Ugd2lsbCByZXN1bWUgdGhlIG5v
cm1hbCBiZWhhdmlvciBpbiBfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlv
bjoKQEAgLTQzNywxMCArNDMyLDkgQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGgg
PSA0ODAgKyAyMCArIDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKICAgICAgICAg
Ly8gQmVjYXVzZSB3ZSBhcmUgYnJlYWtpbmcgdGhlIG5vcm1hbCBhbmltYXRpb24gcGF0dGVybiwg
cmUtZW5hYmxlIHNjcmVlbiB1cGRhdGVzCiAgICAgICAgIC8vIGFzIGV4aXRGdWxsU2NyZWVuIGhh
cyBkaXNhYmxlZCB0aGVtLCBidXQgX3N0YXJ0RXhpdEZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVy
YXRpb246CiAgICAgICAgIC8vIHdpbGwgbmV2ZXIgYmUgY2FsbGVkLgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgfQogCiAgICAgW1tzZWxmIHdpbmRvd10gZXhpdEZ1bGxTY3JlZW5Nb2RlOnNlbGZdOwpA
QCAtNDYzLDIwICs0NTcsMTggQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0
ODAgKyAyMCArIDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKIAogICAgIE5TUmVz
cG9uZGVyICpmaXJzdFJlc3BvbmRlciA9IFtbc2VsZiB3aW5kb3ddIGZpcnN0UmVzcG9uZGVyXTsK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5h
YmxlZCBpbiBjb21wbGV0ZUZpbmlzaEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uQWZ0ZXJSZXBhaW50
LgogICAgIE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBfcGFnZS0+
c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyh0cnVlKTsKICAgICBbW3NlbGYgd2luZG93XSBv
cmRlck91dDpzZWxmXTsKICAgICBOU1ZpZXcgKmNvbnRlbnRWaWV3ID0gW1tzZWxmIHdpbmRvd10g
Y29udGVudFZpZXddOwogICAgIGNvbnRlbnRWaWV3LmhpZGRlbiA9IFlFUzsKICAgICBbX2JhY2tn
cm91bmRWaWV3LmdldCgpLmxheWVyIHJlbW92ZUFsbEFuaW1hdGlvbnNdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgW1tfd2ViVmlld1BsYWNlaG9sZGVyIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6
Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogCiAgICAgW3NlbGYgX3JlcGxhY2VWaWV3Ol93ZWJWaWV3UGxhY2Vo
b2xkZXIuZ2V0KCkgd2l0aDpfd2ViVmlld107CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCkBAIC01MDksMTYgKzUwMSwxNCBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9XaWR0
aCA9IDQ4MCArIDIwICsgMjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogLSAodm9p
ZCljb21wbGV0ZUZpbmlzaEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uQWZ0ZXJSZXBhaW50CiB7CiAg
ICAgX3JlcGFpbnRDYWxsYmFjayA9IG51bGxwdHI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBb
W193ZWJWaWV3IHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBb
W193ZWJWaWV3IHdpbmRvd10gZGlzcGxheUlmTmVlZGVkXTsKICAgICBfcGFnZS0+c2V0U3VwcHJl
c3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0Vu
YWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogLSAodm9pZClwZXJmb3JtQ2xv
c2U6KGlkKXNlbmRlcgpAQCAtNzI3LDE1ICs3MTcsMTMgQEAgc3RhdGljIENBQW5pbWF0aW9uICpm
YWRlQW5pbWF0aW9uKENGVGltZUludGVydmFsIGR1cmF0aW9uLCBBbmltYXRpb25EaXJlY3Rpb24g
ZGkKICAgICBbd2luZG93IG1ha2VGaXJzdFJlc3BvbmRlcjpfd2ViVmlld107CiAKICAgICBfcGFn
ZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpZRVNdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgIFtbc2VsZiB3aW5kb3ddIGRpc3BsYXlJZk5lZWRlZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogLSAodm9pZClf
c3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwp
ZHVyYXRpb24KQEAgLTc1OCwxNSArNzQ2LDEzIEBAIHN0YXRpYyBDQUFuaW1hdGlvbiAqZmFkZUFu
aW1hdGlvbihDRlRpbWVJbnRlcnZhbCBkdXJhdGlvbiwgQW5pbWF0aW9uRGlyZWN0aW9uIGRpCiAg
ICAgW19iYWNrZ3JvdW5kVmlldy5nZXQoKS5sYXllciBhZGRBbmltYXRpb246ZmFkZUFuaW1hdGlv
bihkdXJhdGlvbiwgQW5pbWF0ZU91dCkgZm9yS2V5OkAiZnVsbHNjcmVlbiJdOwogCiAgICAgX3Bh
Z2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMoZmFsc2UpOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICBbW3NlbGYgd2luZG93XSBkaXNwbGF5SWZOZWVkZWRdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgTlNFbmFibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKHZvaWQp
X3dhdGNoZG9nVGltZXJGaXJlZDooTlNUaW1lciAqKXRpbWVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0KaW5kZXggMWZkYTdkYmU1ZGYxZmY3ZGIxNzcw
Y2FmYjE0MGRmZjU2MGY1YTM4Yy4uZDIwNmZmZTA4OTUzNGMzMmYzZTIxNjIyMDlkZWJjNzIwODc1
ZWJmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5t
bQpAQCAtNzgsMTYgKzc4LDE0IEBAIHN0YXRpYyBCT09MIGlzRm9yY2luZ1ByZXZpZXdVcGRhdGU7
CiAKIC0gKHZvaWQpX3NldEF1dG9kaXNwbGF5OihCT09MKW5ld1N0YXRlCiB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICBpZiAoIW5ld1N0YXRlICYmIFtbX3drVmlldyB3aW5kb3ddIGlzQXV0b2Rp
c3BsYXldKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBbX3drVmlldyBk
aXNwbGF5SWZOZWVkZWRdOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1tfd2tWaWV3IHdpbmRvd10gc2V0QXV0b2Rp
c3BsYXk6bmV3U3RhdGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgLy8gRm9yIHNvbWUgcmVhc29uLCBw
YWludGluZyBkb2Vzbid0IGhhcHBlbiBmb3IgYSBsb25nIHRpbWUgd2l0aG91dCB0aGlzIGNhbGws
IDxyZGFyOi8vcHJvYmxlbS84OTc1MjI5Pi4KICAgICBpZiAobmV3U3RhdGUpCkBAIC00NTQsMTkg
KzQ1MiwxNyBAQCBzdGF0aWMgTlNTdHJpbmcgKmxpbmtEZXN0aW5hdGlvbk5hbWUoUERGRG9jdW1l
bnQgKmRvY3VtZW50LCBQREZEZXN0aW5hdGlvbiAqZGVzdAogICAgIH0KIAogICAgIE5TR3JhcGhp
Y3NDb250ZXh0ICpuc0dyYXBoaWNzQ29udGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50
Q29udGV4dF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9
IHN0YXRpY19jYXN0PENHQ29udGV4dFJlZj4oW25zR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzUG9y
dF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogCiAgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjb250ZXh0KTsKICAg
ICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dCwgcG9pbnQueCwgcG9pbnQueSk7CiAgICAg
Q0dDb250ZXh0U2NhbGVDVE0oY29udGV4dCwgX3RvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywg
LV90b3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcpOwogICAgIENHQ29udGV4dFRyYW5zbGF0ZUNU
TShjb250ZXh0LCAwLCAtW3BkZlBhZ2UgYm91bmRzRm9yQm94OmtQREZEaXNwbGF5Qm94TWVkaWFC
b3hdLnNpemUuaGVpZ2h0KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtwZGZQYWdlIGRyYXdX
aXRoQm94OmtQREZEaXNwbGF5Qm94TWVkaWFCb3hdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgQ0dBZmZp
bmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0gQ0dDb250ZXh0R2V0Q1RNKGNvbnRleHQpOwogCkBAIC00
NzksMTAgKzQ3NSw5IEBAIHN0YXRpYyBOU1N0cmluZyAqbGlua0Rlc3RpbmF0aW9uTmFtZShQREZE
b2N1bWVudCAqZG9jdW1lbnQsIFBERkRlc3RpbmF0aW9uICpkZXN0CiAgICAgICAgIGlmICghW2Fu
bm90YXRpb24gaXNLaW5kT2ZDbGFzczpXZWJLaXQ6OnBkZkFubm90YXRpb25MaW5rQ2xhc3MoKV0p
CiAgICAgICAgICAgICBjb250aW51ZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAg
ICBQREZBbm5vdGF0aW9uTGluayAqbGlua0Fubm90YXRpb24gPSAoUERGQW5ub3RhdGlvbkxpbmsg
Kilhbm5vdGF0aW9uOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgTlNVUkwgKnVybCA9IFtsaW5r
QW5ub3RhdGlvbiBVUkxdOwogICAgICAgICBDR1JlY3QgdHJhbnNmb3JtZWRSZWN0ID0gQ0dSZWN0
QXBwbHlBZmZpbmVUcmFuc2Zvcm0oTlNSZWN0VG9DR1JlY3QoW2xpbmtBbm5vdGF0aW9uIGJvdW5k
c10pLCB0cmFuc2Zvcm0pOwogCkBAIC01NDUsMTAgKzU0MCw5IEBAIHN0YXRpYyBOU1N0cmluZyAq
bGlua0Rlc3RpbmF0aW9uTmFtZShQREZEb2N1bWVudCAqZG9jdW1lbnQsIFBERkRlc3RpbmF0aW9u
ICpkZXN0CiAgICAgfQogCiAgICAgUmVmUHRyPFdlYktpdDo6U2hhcmVhYmxlQml0bWFwPiBiaXRt
YXAgPSBwYWdlUHJldmlld0l0ZXJhdG9yLT52YWx1ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0NvbnRleHRSZWY+KFtbTlNH
cmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogCiAgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0IGNvbnRleHQoY2dDb250ZXh0KTsKICAg
ICBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7
CkBAIC01ODksMTAgKzU4Myw5IEBAIHN0YXRpYyBOU1N0cmluZyAqbGlua0Rlc3RpbmF0aW9uTmFt
ZShQREZEb2N1bWVudCAqZG9jdW1lbnQsIFBERkRlc3RpbmF0aW9uICpkZXN0CiAgICAgICAgICAg
ICAgICAgaWYgKCFbYW5ub3RhdGlvbiBpc0tpbmRPZkNsYXNzOldlYktpdDo6cGRmQW5ub3RhdGlv
bkxpbmtDbGFzcygpXSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgICAgIFBERkFubm90YXRpb25MaW5r
ICpsaW5rQW5ub3RhdGlvbiA9IChQREZBbm5vdGF0aW9uTGluayAqKWFubm90YXRpb247Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICAgICAgaWYgKGxpbmtBbm5vdGF0aW9uLlVS
TCkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tCmlu
ZGV4IGFlMzY0MWVmNzk3NDYzYTE4MGMwZmIyNjc0YjAwMmFiMTFhODc5NjIuLmJlOTZjYTI4MDBh
YTE1MDRlNTgzNjgyN2Q3ZGNmMDZmNzc0ZjY2ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbQpAQCAt
MTA2LDEwICsxMDYsOSBAQAogCiAtIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooTlNFdmVudCAq
KWV2ZW50IHVzaW5nTGVnYWN5Q29jb2FUZXh0SW5wdXQ6KEJPT0wpdXNpbmdMZWdhY3lDb2NvYVRl
eHRJbnB1dCBzdHJpbmc6KE5TU3RyaW5nICoqKXN0cmluZwogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgQk9PTCBoYWRNYXJrZWRUZXh0ID0gW19pbnB1dFRleHRWaWV3IGhhc01hcmtlZFRleHRd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogIAogICAgICpzdHJpbmcgPSBuaWw7CiAKQEAgLTEyNCwxMCArMTIzLDkg
QEAKICAgICBpZiAoIVtbX2lucHV0VGV4dFZpZXcgaW5wdXRDb250ZXh0XSBoYW5kbGVFdmVudDpl
dmVudF0pCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IGlmIChbX2lucHV0VGV4dFZpZXcgaGFzTWFya2VkVGV4dF0pIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgICAgIC8vIERvbid0IHNob3cgdGhlIGlucHV0IG1ldGhvZCB3aW5kb3cgZm9yIGRlYWQga2V5
cwogICAgICAgICBpZiAoW1tldmVudCBjaGFyYWN0ZXJzXSBsZW5ndGhdID4gMCkKICAgICAgICAg
ICAgIFtzZWxmIG9yZGVyRnJvbnQ6bmlsXTsKQEAgLTE2MSwxMCArMTU5LDkgQEAKIAogLSAoQk9P
TClfaGFzTWFya2VkVGV4dAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgcmV0dXJuIFtfaW5w
dXRUZXh0VmlldyBoYXNNYXJrZWRUZXh0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCmlu
ZGV4IDhiNWRiMTU5NWFiMzU3ZmVjOTRkY2U3N2M3NjRlYWRjYmI2MzU2MGQuLjY4NGIxMzY3ODYx
MzA5MDg0Y2MxNDI1ZmMyMGVhNDVkODZmY2Y3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KQEAgLTE4OCwxMCArMTg4LDkg
QEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0
JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKICAgICBbTlNBcHAgcG9zdEV2ZW50OmZha2VFdmVu
dCBhdFN0YXJ0OllFU107CiAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsb2NhdGlvbjpbW21fd2ViVmlldyB3aW5kb3ddCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAg
ICAgICAgICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0
aW9uXV0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFn
czpbaW5pdGlhdGluZ05TRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdOU0V2ZW50IHRpbWVzdGFtcF0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6W2luaXRpYXRpbmdOU0V2
ZW50IHdpbmRvd051bWJlcl0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQppbmRl
eCBlZGNmNTMyYzg1YWFmOGM2YjNhNTBhZTNkNjRiZTA2ZTlhYTBlMzQwLi4yOTBiNjVjYzAxNjNk
YmIyYTRmMWYwOTMyZmY2ZjA3Y2Y2MmNlZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1
Z2luTWFjLm1tCkBAIC0zNzMsMTAgKzM3Myw5IEBAIHN0YXRpYyBpbmxpbmUgRXZlbnRSZWNvcmQg
aW5pdGlhbGl6ZUV2ZW50UmVjb3JkKEV2ZW50S2luZCBldmVudEtpbmQpCiAKICAgICBldmVudFJl
Y29yZC53aGF0ID0gZXZlbnRLaW5kOwogICAgIGV2ZW50UmVjb3JkLm1lc3NhZ2UgPSAwOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgZXZlbnRSZWNvcmQud2hlbiA9IFRpY2tDb3VudCgpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgIGV2ZW50UmVjb3JkLndoZXJlID0gUG9pbnQoKTsKICAgICBldmVudFJlY29y
ZC5tb2RpZmllcnMgPSAwOwogCkBAIC0xMDQzLDEwICsxMDQyLDkgQEAgdm9pZCBOZXRzY2FwZVBs
dWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCiAKICAg
ICAgICAgLy8gU2V0IHRoZSBzY3JpcHQgY29kZSBhcyB0aGUga2V5Ym9hcmQgc2NyaXB0LiBOb3Jt
YWxseSBDYXJib24gZG9lcyB0aGlzIHdoZW5ldmVyIHRoZSBpbnB1dCBzb3VyY2UgY2hhbmdlcy4K
ICAgICAgICAgLy8gSG93ZXZlciwgdGhpcyBpcyBvbmx5IGRvbmUgZm9yIHRoZSBwcm9jZXNzIHRo
YXQgaGFzIHRoZSBrZXlib2FyZCBmb2N1cy4gV2UgY2hlYXQgYW5kIGRvIGl0IGhlcmUgaW5zdGVh
ZC4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgU2V0U2NyaXB0TWFuYWdlclZhcmlh
YmxlKHNtS2V5U2NyaXB0LCBzY3JpcHRDb2RlKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIAog
ICAgICAgICBFdmVudFJlY29yZCBldmVudCA9IGluaXRpYWxpemVFdmVudFJlY29yZChrZXlEb3du
KTsKICAgICAgICAgZXZlbnQubW9kaWZpZXJzID0gMDsKQEAgLTExMjEsMTEgKzExMTksMTAgQEAg
c3RhdGljIHZvaWQgbWFrZUNHTFByZXNlbnRMYXllck9wYXF1ZShDQUxheWVyICpwbHVnaW5Sb290
TGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIENsYXNzIGNnbFByZXNlbnRMYXllckNsYXNz
ID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJDR0xQcmVzZW50TGF5ZXIiKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIGlmICghW2NnbFByZXNlbnRMYXllckNsYXNzIGlzU3ViY2xhc3NPZkNsYXNzOltD
QU9wZW5HTExheWVyIGNsYXNzXV0pCiAgICAgICAgIHJldHVybjsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAg
IENBTGF5ZXIgKmxheWVyID0gW3N1YmxheWVycyBvYmplY3RBdEluZGV4OjBdOwogICAgIGlmICgh
W2xheWVyIGlzS2luZE9mQ2xhc3M6Y2dsUHJlc2VudExheWVyQ2xhc3NdKQpAQCAtMTE4MSwxMSAr
MTE3OCwxMCBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luOjpudWxsRXZlbnRUaW1lckZpcmVkKCkKICAg
ICBldmVudC53aGVyZS52ID0gbW91c2VQb3NpdGlvbi55OwogCiAgICAgZXZlbnQubW9kaWZpZXJz
ID0gR2V0Q3VycmVudEtleU1vZGlmaWVycygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYg
KCFCdXR0b24oKSkKICAgICAgICAgZXZlbnQubW9kaWZpZXJzIHw9IGJ0blN0YXRlOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogCiAgICAgTlBQX0hhbmRsZUV2ZW50KCZldmVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCA0Y2FhNmNjMGY2
MDQ1MGMwM2IyMmEyODRkZDEzYWYyNWVmZDZlMzg2Li5kYTA0MTA3MmEzZDYwY2NiNjFhYTgwYTFj
NGMzMmIyNGQ4OTYyOTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTMxNiwxMCArMzE2LDkgQEAgc3RhdGljIGNvbnN0IGlu
dCBkZWZhdWx0U2Nyb2xsTWFnbml0dWRlVGhyZXNob2xkRm9yUGFnZUZsaXAgPSAyMDsKICAgICBp
ZiAoV2ViS2l0OjpQREZQbHVnaW5Bbm5vdGF0aW9uKiBhY3RpdmVBbm5vdGF0aW9uID0gX3BkZlBs
dWdpbi0+YWN0aXZlQW5ub3RhdGlvbigpKSB7CiAgICAgICAgIGlmIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlKiBleGlzdGluZ0NhY2hlID0gX3BkZlBsdWdpbi0+YXhPYmplY3RDYWNoZSgpKSB7CiAg
ICAgICAgICAgICBpZiAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gZXhp
c3RpbmdDYWNoZS0+Z2V0T3JDcmVhdGUoYWN0aXZlQW5ub3RhdGlvbi0+ZWxlbWVudCgpKSkKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgICAgIHJldHVybiBbb2Jq
ZWN0LT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiX0FYQXNzb2NpYXRl
ZFBsdWdpblBhcmVudCJdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICB9CiAgICAg
fQogICAgIHJldHVybiBuaWw7CkBAIC00MjQsMTAgKzQyMyw5IEBAIHN0YXRpYyBjb25zdCBpbnQg
ZGVmYXVsdFNjcm9sbE1hZ25pdHVkZVRocmVzaG9sZEZvclBhZ2VGbGlwID0gMjA7CiAKIC0gKHZv
aWQpd3JpdGVJdGVtc1RvUGFzdGVib2FyZDooTlNBcnJheSAqKWl0ZW1zIHdpdGhUeXBlczooTlNB
cnJheSAqKXR5cGVzCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBfcGRmUGx1Z2luLT53cml0
ZUl0ZW1zVG9QYXN0ZWJvYXJkKE5TR2VuZXJhbFBib2FyZCwgaXRlbXMsIHR5cGVzKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIH0KIAogLSAodm9pZClzaG93RGVmaW5pdGlvbkZvckF0dHJpYnV0ZWRTdHJpbmc6KE5T
QXR0cmlidXRlZFN0cmluZyAqKXN0cmluZyBhdFBvaW50OihDR1BvaW50KXBvaW50CkBAIC0xNjUw
LDExICsxNjQ4LDEwIEBAIGJvb2wgUERGUGx1Z2luOjpoYW5kbGVFZGl0aW5nQ29tbWFuZChjb25z
dCBTdHJpbmcmIGNvbW1hbmROYW1lLCBjb25zdCBTdHJpbmcmIGFyCiAgICAgICAgIFttX3BkZkxh
eWVyQ29udHJvbGxlciBzZWxlY3RBbGxdOwogICAgIGVsc2UgaWYgKGNvbW1hbmROYW1lID09ICJ0
YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24iKSB7CiAgICAgICAgIE5TU3RyaW5nICpzdHJpbmcg
PSBbbV9wZGZMYXllckNvbnRyb2xsZXIgY3VycmVudFNlbGVjdGlvbl0uc3RyaW5nOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgICAgICBpZiAoc3RyaW5nLmxlbmd0aCkKICAgICAgICAgICAg
IHdyaXRlSXRlbXNUb1Bhc3RlYm9hcmQoTlNGaW5kUGJvYXJkLCBAWyBbc3RyaW5nIGRhdGFVc2lu
Z0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSBdLCBAWyBOU1Bhc3RlYm9hcmRUeXBlU3Ry
aW5nIF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE3
MzQsMTMgKzE3MzEsMTIgQEAgdm9pZCBQREZQbHVnaW46OnNldEFjdGl2ZUFubm90YXRpb24oUERG
QW5ub3RhdGlvbiAqYW5ub3RhdGlvbikKICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uLT5jb21t
aXQoKTsKIAogICAgIGlmIChhbm5vdGF0aW9uKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgICAgIGlmIChbYW5ub3RhdGlvbiBpc0tpbmRPZkNsYXNzOnBkZkFubm90YXRpb25UZXh0V2lk
Z2V0Q2xhc3MoKV0gJiYgc3RhdGljX2Nhc3Q8UERGQW5ub3RhdGlvblRleHRXaWRnZXQgKj4oYW5u
b3RhdGlvbikuaXNSZWFkT25seSkgewogICAgICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uID0g
bnVsbHB0cjsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
IAogICAgICAgICBtX2FjdGl2ZUFubm90YXRpb24gPSBQREZQbHVnaW5Bbm5vdGF0aW9uOjpjcmVh
dGUoYW5ub3RhdGlvbiwgbV9wZGZMYXllckNvbnRyb2xsZXIuZ2V0KCksIHRoaXMpOwogICAgICAg
ICBtX2FjdGl2ZUFubm90YXRpb24tPmF0dGFjaChtX2Fubm90YXRpb25Db250YWluZXIuZ2V0KCkp
OwpAQCAtMjA3OCwxMCArMjA3NCw5IEBAIHN0ZDo6dHVwbGU8U3RyaW5nLCBQREZTZWxlY3Rpb24g
KiwgTlNEaWN0aW9uYXJ5ICo+IFBERlBsdWdpbjo6bG9va3VwVGV4dEF0TG9jYXRpCiAgICAgICAg
IGlmICghTlNQb2ludEluUmVjdChwb2ludEluUGFnZVNwYWNlLCBib3VuZHMpKQogICAgICAgICAg
ICAgY29udGludWU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgUERGQW5ub3Rh
dGlvbkxpbmsgKmxpbmtBbm5vdGF0aW9uID0gKFBERkFubm90YXRpb25MaW5rICopYW5ub3RhdGlv
bjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIE5TVVJMICp1cmwgPSBsaW5rQW5ub3RhdGlvbi5V
Ukw7CiAgICAgICAgIGlmICghdXJsKQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5u
b3RhdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bkNob2ljZUFubm90YXRpb24uaAppbmRleCAwZjc2NzVjNWQyMzFkNTdkOTJiZDYyNzkzNmU5ZTAy
NGQyZTFjNjhkLi5hODFkZGY2M2E0ZTYxZGQzMGM3YjdkOTE5MDc2YjNmOGEyZmMzZWRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hv
aWNlQW5ub3RhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLmgKQEAgLTUzLDEwICs1Myw5IEBAIHByaXZhdGU6
CiAKICAgICBSZWY8V2ViQ29yZTo6RWxlbWVudD4gY3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQoKSBv
dmVycmlkZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgUERGQW5ub3RhdGlvbkNob2ljZVdp
ZGdldCAqY2hvaWNlQW5ub3RhdGlvbigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFBERkFubm90YXRp
b25DaG9pY2VXaWRnZXQgKj4oYW5ub3RhdGlvbigpKTsgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCmluZGV4
IDU4MjVmZDNlY2FiNDYxNTRmOGY5ZDA1MDEzZjY1NGFjOGM2MTU4Y2YuLjEwMGEwMzY2YWY0NGY5
YTEzZDk4OTYxYzE2YzEzN2M2MWQwZTk2ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0
aW9uLm1tCkBAIC02NywxMCArNjcsOSBAQCB2b2lkIFBERlBsdWdpbkNob2ljZUFubm90YXRpb246
OmNvbW1pdCgpCiBSZWY8RWxlbWVudD4gUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbjo6Y3JlYXRl
QW5ub3RhdGlvbkVsZW1lbnQoKQogewogICAgIERvY3VtZW50JiBkb2N1bWVudCA9IHBhcmVudCgp
LT5kb2N1bWVudCgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgUERGQW5ub3RhdGlvbkNob2lj
ZVdpZGdldCAqY2hvaWNlQW5ub3RhdGlvbiA9IHRoaXMtPmNob2ljZUFubm90YXRpb24oKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKIAogICAgIGF1dG8gZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoc2Vs
ZWN0VGFnLCBmYWxzZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLmgKaW5kZXggOTJkNDAy
M2NkNzBlOTRkOThkNGJiNTgxZTMwYTdkMjg1YjE5ZDlkYy4uMzZkM2EzZDIxZWYxZmVjNWY0NjBl
NDg5ZjgwNTQ4YjdmM2ZiYzJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLmgKQEAgLTYw
LDEwICs2MCw5IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgYm9vbCBoYW5kbGVFdmVudChX
ZWJDb3JlOjpFdmVudCYpIG92ZXJyaWRlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBQREZB
bm5vdGF0aW9uVGV4dFdpZGdldCAqdGV4dEFubm90YXRpb24oKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxQREZBbm5vdGF0aW9uVGV4dFdpZGdldCAqPihhbm5vdGF0aW9uKCkpOyB9Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3Rh
dGlvbi5tbQppbmRleCAyYzZhNzZjNGIwZTExNTUxMDE5NWZmZDY5NzQ4NjQ2NmE3NWYxMjY4Li5i
ZTA2MDNmMmMxZGE0YTBjNTg5ZjU1OGMzZjhhZTRjNGIyYTNlNzE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24u
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRl
eHRBbm5vdGF0aW9uLm1tCkBAIC04MCwxMCArODAsOSBAQCBQREZQbHVnaW5UZXh0QW5ub3RhdGlv
bjo6flBERlBsdWdpblRleHRBbm5vdGF0aW9uKCkKIFJlZjxFbGVtZW50PiBQREZQbHVnaW5UZXh0
QW5ub3RhdGlvbjo6Y3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQoKQogewogICAgIERvY3VtZW50JiBk
b2N1bWVudCA9IHBhcmVudCgpLT5kb2N1bWVudCgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
UERGQW5ub3RhdGlvblRleHRXaWRnZXQgKnRleHRBbm5vdGF0aW9uID0gdGhpcy0+dGV4dEFubm90
YXRpb24oKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBib29sIGlzTXVsdGlsaW5lID0gdGV4dEFubm90YXRp
b24uaXNNdWx0aWxpbmU7CiAKICAgICBhdXRvIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KGlzTXVsdGlsaW5lID8gdGV4dGFyZWFUYWcgOiBpbnB1dFRhZywgZmFsc2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0
aXZlVGV4dENsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oCmluZGV4IDQ1MjBlOWQ2OWJjODAyZjZlYmRhNjVi
Mjk3ZThhOGQ0NThjMTk3MjguLjk0OWM2MmFlYzY5NTg5M2EzMmM4MTIxYWE5N2M3ZDU4ZTViMGU2
NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgKQEAgLTUxLDE0ICs1MSwx
MSBAQCBwdWJsaWM6CiAjZW5kaWYKIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TKQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNpZiBkZWZpbmVkKF9faGFzX3dhcm5pbmcpICYmIF9f
aGFzX3dhcm5pbmcoIi1XdW51c2VkLXByaXZhdGUtZmllbGQiKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXByaXZhdGUtZmllbGQiCi0jZW5kaWYKKyAgICBJR05P
UkVfQ0xBTkdfV0FSTklOR19CRUdJTigiLVd1bnVzZWQtcHJpdmF0ZS1maWVsZCIpCiAjZW5kaWYK
ICAgICBXZWJQYWdlICptX3BhZ2U7CiAjaWYgUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9DTEFOR19XQVJOSU5HX0VORAogI2VuZGlmCiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYkRyYWdDbGllbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KaW5kZXggYTg3N2U3ZmNmYTBhMzk4Nzk3Nzcw
YTE0MzQ0OTA1ZmY5NzMwMzJmMC4uM2JkN2QxZmJiMzhjYjIwOWFmZGI3MWRlYjE4YjlkOTFlZGQ5
MTMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQpAQCAtNzIsMTAgKzcyLDkgQEAg
c3RhdGljIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGNvbnZlcnRJbWFnZVRvQml0bWFwKE5TSW1h
Z2UgKmltYWdlLCBjb25zdCBJbnRTaXoKIAogICAgIFJldGFpblB0cjxOU0dyYXBoaWNzQ29udGV4
dD4gc2F2ZWRDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250
ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0Omdy
YXBoaWNzQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCkgZmxpcHBlZDpZRVNdXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAgICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAsIGJpdG1hcC0+c2l6ZSgp
LndpZHRoKCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpOU1plcm9SZWN0IG9w
ZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3Bl
Y3RGbGlwcGVkOllFUyBoaW50czpuaWxdOwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1
cnJlbnRDb250ZXh0OnNhdmVkQ29udGV4dC5nZXQoKV07CkBAIC0xMTMsMTAgKzExMiw5IEBAIHN0
YXRpYyBXZWJDb3JlOjpDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2UoRWxlbWVudCYgZWxlbWVudCkK
IAogdm9pZCBXZWJEcmFnQ2xpZW50OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkTmFtZSwgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgbGFiZWwsIEZyYW1lKikKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEFT
U0VSVChwYXN0ZWJvYXJkTmFtZSA9PSBTdHJpbmcoTlNEcmFnUGJvYXJkKSk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAKICAgICBXZWJDb3JlOjpDYWNoZWRJbWFnZSogaW1hZ2UgPSBjYWNoZWRJbWFnZShlbGVtZW50
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dL
QWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQppbmRleCBm
ZTk0ZTg1ZTQ3MGY0YTg3ZTU5ZmU5ZDdlY2Y4NDQyZmVlNTdjZjMzLi5mZDliMTg1Y2ZmMGJlNmQw
YzlmYTg2MjZjOTBjY2ZmYzk1NjAzYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2Vi
UGFnZU9iamVjdE1hYy5tbQpAQCAtMTkyLDggKzE5Miw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiAgICAgcmV0dXJuIFlFUzsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIC0gKGlkKWFjY2Vzc2li
aWxpdHlIaXRUZXN0OihOU1BvaW50KXBvaW50CiB7CiAgICAgaWYgKCFtX3BhZ2UpCkBAIC0yMTUs
NyArMjE0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogICAgIHJldHVybiBbW3NlbGYg
YWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFwcGVyXSBhY2Nlc3NpYmlsaXR5SGl0VGVzdDpjb252
ZXJ0ZWRQb2ludF07CiB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IGRhN2M5OGY2OGM0ODE4
OTA3M2RiZWE0NzQ4NzFmZjJjYWI2YTU4MWEuLmM4ZDQ4MGU1YjkzNjM5MmM4ZjE3NjM3MTBlN2E3
N2VmODRiNWU0YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XZWJQYWdlTWFjLm1tCkBAIC04MTgsMTEgKzgxOCwxMCBAQCBzdGF0aWMgdm9pZCBkcmF3
UERGUGFnZShQREZEb2N1bWVudCAqcGRmRG9jdW1lbnQsIENGSW5kZXggcGFnZUluZGV4LCBDR0Nv
bnRleHRSZQogICAgIH0KIAogICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzYXZlR3JhcGhpY3NTdGF0
ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVu
dENvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1Bv
cnQ6Y29udGV4dCBmbGlwcGVkOk5PXV07CiAgICAgW3BkZlBhZ2UgZHJhd1dpdGhCb3g6a1BERkRp
c3BsYXlCb3hDcm9wQm94XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbTlNHcmFwaGljc0NvbnRleHQgcmVz
dG9yZUdyYXBoaWNzU3RhdGVdOwogCiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0g
Q0dDb250ZXh0R2V0Q1RNKGNvbnRleHQpOwpAQCAtODMxLDEwICs4MzAsOSBAQCBzdGF0aWMgdm9p
ZCBkcmF3UERGUGFnZShQREZEb2N1bWVudCAqcGRmRG9jdW1lbnQsIENGSW5kZXggcGFnZUluZGV4
LCBDR0NvbnRleHRSZQogICAgICAgICBpZiAoIVthbm5vdGF0aW9uIGlzS2luZE9mQ2xhc3M6cGRm
QW5ub3RhdGlvbkxpbmtDbGFzcygpXSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFBERkFubm90YXRpb25MaW5rICpsaW5rQW5ub3RhdGlv
biA9IChQREZBbm5vdGF0aW9uTGluayAqKWFubm90YXRpb247Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAg
ICAgICBOU1VSTCAqdXJsID0gW2xpbmtBbm5vdGF0aW9uIFVSTF07CiAgICAgICAgIGlmICghdXJs
KQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DYXJib24vQ2FyYm9uVXRpbHMubSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJv
bi9DYXJib25VdGlscy5tCmluZGV4IGI3OTVlOWI0MmE2ZTcxNDg1ZGQxNzdjY2Q5ZGRjNzNhNDk0
N2UwZGYuLmVjZDQ3ZTNhYzRlNjBlNjAzMDNiMmRiOThlMWNlZDFiMmI4YWI3MTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25VdGlscy5tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25VdGlscy5tCkBAIC04NywxMCArODcs
OSBAQCBzdGF0aWMgdW5zaWduZWQgZ2V0TlNBdXRvcmVsZWFzZVBvb2xDb3VudCh2b2lkKQogUG9v
bENsZWFuZXIoIEV2ZW50TG9vcFRpbWVyUmVmIGluVGltZXIsIEV2ZW50TG9vcElkbGVUaW1lck1l
c3NhZ2UgaW5TdGF0ZSwgdm9pZCAqaW5Vc2VyRGF0YSApCiB7CiAgICAgaWYgKCBpblN0YXRlID09
IGtFdmVudExvb3BJZGxlVGltZXJTdGFydGVkICkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Nhc3QtcXVhbCIKKyAg
ICAgICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XY2FzdC1xdWFsIikKICAgICAgICAgQ0ZTdHJp
bmdSZWYgbW9kZSA9IENGUnVuTG9vcENvcHlDdXJyZW50TW9kZSggKENGUnVuTG9vcFJlZilHZXRD
RlJ1bkxvb3BGcm9tRXZlbnRMb29wKCBHZXRDdXJyZW50RXZlbnRMb29wKCkgKSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0VORAogICAgICAg
ICBFdmVudExvb3BSZWYgdGhpc0xvb3AgPSBHZXRDdXJyZW50RXZlbnRMb29wICgpOwogICAgICAg
ICBpZiAoIENGRXF1YWwoIG1vZGUsIGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSApICYmIHRoaXNMb29w
ID09IHBvb2xMb29wKSB7CiAgICAgICAgICAgICB1bnNpZ25lZCBjdXJyZW50TnVtUG9vbHMgPSBn
ZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KCktMTsgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KaW5kZXgg
ZDE1MjJmM2YwMjNlZjBmNmRlMzM2MmJkYTNiMzA0OTQ3ODg4YzBiZi4uYjA5ZTA2YzI0OWZiZDA4
ZWVlN2Q2ZTkzNDc2NTkzMTc5NWNmMzU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KQEAgLTE3NywxMCArMTc3LDkg
QEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVy
Q2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKICAgICAvLyBCdXQgbm93IHRoZSBub24tcmV0YWlu
ZWQgd2luZG93IGNsYXNzIGlzIGEgQ2FyYm9uIHNlY3JldCB0aGF0J3Mgbm90IGV2ZW4gaW4KICAg
ICAvLyBXaW5kb3dzUHJpdi5oOyBtYXliZSB3ZSdsbCBoYXZlIHRvIHJldmlzaXQgdGhpcyBpZiBz
b21lb25lIG5lZWRzIHRvIHVzZSBXZWJLaXQKICAgICAvLyBpbiBhIG5vbi1yZXRhaW5lZCB3aW5k
b3cuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBiYWNraW5nU3RvcmVUeXBlID0gTlNCYWNraW5n
U3RvcmVSZXRhaW5lZDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIC8vIEZpZ3VyZSBvdXQgdGhlIHdpbmRv
dydzIHN0eWxlIG1hc2suCiAgICAgc3R5bGVNYXNrID0gX05TQ2FyYm9uV2luZG93TWFzazsKQEAg
LTIwNSwxMCArMjA0LDkgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZl
bnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKICAgICAvLyBEbyBzb21l
IHN0YW5kYXJkIENvY29hIGluaXRpYWxpemF0aW9uLiAgVGhlIGRlZmVyIGFyZ3VtZW50J3MgdmFs
dWUgaXMgWUVTIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCAtW05TV2luZG93IF9jb21tb25Bd2FrZV0g
dG8gZ2V0IGNhbGxlZC4gIEl0IGRvZXNuJ3QgYXBwZWFyIHRoYXQgYW55IHJlbGV2YW50IE5TV2lu
ZG93IGNvZGUgY2hlY2tzIF93RmxhZ3MuZGVmZXJyZWQsIHNvIHdlIHNob3VsZCBiZSBhYmxlIHRv
IGdldCBhd2F5IHdpdGggdGhlIGxpZS4KICAgICBzZWxmID0gKENhcmJvbldpbmRvd0FkYXB0ZXIq
KVtzdXBlciBfaW5pdENvbnRlbnQ6bnVsbHB0ciBzdHlsZU1hc2s6c3R5bGVNYXNrIGJhY2tpbmc6
YmFja2luZ1N0b3JlVHlwZSBkZWZlcjpZRVMgY29udGVudFZpZXc6Y2FyYm9uV2luZG93Q29udGVu
dFZpZXddOwogICAgIGlmICghc2VsZikgcmV0dXJuIG5pbDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIGFzc2VydChfY29udGVudFZpZXcpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgLy8gUmVjb3JkIGFj
Y3VyYXRlbHkgd2hldGhlciBvciBub3QgdGhpcyB3aW5kb3cgaGFzIGEgc2hhZG93LCBpbiBjYXNl
IHNvbWVvbmUgYXNrcy4KICAvLyAgIF9hdXhpbGlhcnlTdG9yYWdlLT5fYXV4V0ZsYWdzLmhhc1No
YWRvdyA9ICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd05vU2hhZG93QXR0cmlidXRlKSA/IE5P
IDogWUVTOwpAQCAtMjgxLDEwICsyNzksOSBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5k
b3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAg
IC8vIGZsdXNoZXMgaXQuCiAKICAgICBpZiAoW3NlbGYgd2luZG93TnVtYmVyXSAhPSAtMSkgewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0g
KENHQ29udGV4dFJlZilbW3NlbGYgX3RocmVhZENvbnRleHRdIGdyYXBoaWNzUG9ydF07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogICAgICAgICBDR0NvbnRleHRTeW5jaHJvbml6ZShjZ0NvbnRleHQpOwogICAg
IH0KIH0KQEAgLTM3NCwxMSArMzcxLDEwIEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRv
d0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAgICAg
Ly8gSW5pdGlhbGl6ZSBmb3Igc2FmZSByZXR1cm5pbmcuCiAgICAgQk9PTCByZWNvbmNpbGlhdGlv
bldhc05lY2Vzc2FyeSA9IE5POwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBQcmVjb25k
aXRpb24gY2hlY2suCiAgICAgYXNzZXJ0KF9jb250ZW50Vmlldyk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAg
ICAvLyBHZXQgdGhlIENhcmJvbiB3aW5kb3cncyBib3VuZHMsIHdoaWNoIGFyZSBleHByZXNzZWQg
aW4gZ2xvYmFsIHNjcmVlbiBjb29yZGluYXRlcywgd2l0aCAoMCwwKSBhdCB0aGUgdG9wLWxlZnQg
b2YgdGhlIG1haW4gc2NyZWVuLgogICAgIG9zU3RhdHVzID0gR2V0V2luZG93Qm91bmRzKF93aW5k
b3dSZWYsIGtXaW5kb3dTdHJ1Y3R1cmVSZ24sICZ3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0KTsK
QEAgLTM5MywyOCArMzg5LDI2IEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRs
ZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAgICAgbmV3V2lu
ZG93RnJhbWVSZWN0Lm9yaWdpbi55ID0gTlNNYXhZKFsoTlNTY3JlZW4gKilbW05TU2NyZWVuIHNj
cmVlbnNdIG9iamVjdEF0SW5kZXg6MF0gZnJhbWVdKSAtIHdpbmRvd1N0cnVjdHVyZUJvdW5kc1Jl
Y3QuYm90dG9tOwogICAgIG5ld1dpbmRvd0ZyYW1lUmVjdC5zaXplLndpZHRoID0gd2luZG93U3Ry
dWN0dXJlQm91bmRzUmVjdC5yaWdodCAtIHdpbmRvd1N0cnVjdHVyZUJvdW5kc1JlY3QubGVmdDsK
ICAgICBuZXdXaW5kb3dGcmFtZVJlY3Quc2l6ZS5oZWlnaHQgPSB3aW5kb3dTdHJ1Y3R1cmVCb3Vu
ZHNSZWN0LmJvdHRvbSAtIHdpbmRvd1N0cnVjdHVyZUJvdW5kc1JlY3QudG9wOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgaWYgKCFOU0VxdWFsUmVjdHMobmV3V2luZG93RnJhbWVSZWN0LCBfZnJh
bWUpKSB7CiAgICAgICAgIFtzZWxmIF9zZXRGcmFtZTpuZXdXaW5kb3dGcmFtZVJlY3RdOwogICAg
ICAgICBbX2JvcmRlclZpZXcgc2V0RnJhbWVTaXplOm5ld1dpbmRvd0ZyYW1lUmVjdC5zaXplXTsK
ICAgICAgICAgcmVjb25jaWxpYXRpb25XYXNOZWNlc3NhcnkgPSBZRVM7CiAgICAgfQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogCiAgICAgLy8gU2V0IHRoZSBjb250ZW50IHZpZXcncyBmcmFtZSByZWN0IGZyb20gdGhl
IENhcmJvbiB3aW5kb3cncyBjb250ZW50IHJlZ2lvbiBib3VuZHMuCiAgICAgbmV3Q29udGVudEZy
YW1lUmVjdC5vcmlnaW4ueCA9IHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LmxlZnQgLSB3aW5kb3dT
dHJ1Y3R1cmVCb3VuZHNSZWN0LmxlZnQ7CiAgICAgbmV3Q29udGVudEZyYW1lUmVjdC5vcmlnaW4u
eSA9IHdpbmRvd1N0cnVjdHVyZUJvdW5kc1JlY3QuYm90dG9tIC0gd2luZG93Q29udGVudEJvdW5k
c1JlY3QuYm90dG9tOwogICAgIG5ld0NvbnRlbnRGcmFtZVJlY3Quc2l6ZS53aWR0aCA9IHdpbmRv
d0NvbnRlbnRCb3VuZHNSZWN0LnJpZ2h0IC0gd2luZG93Q29udGVudEJvdW5kc1JlY3QubGVmdDsK
ICAgICBuZXdDb250ZW50RnJhbWVSZWN0LnNpemUuaGVpZ2h0ID0gd2luZG93Q29udGVudEJvdW5k
c1JlY3QuYm90dG9tIC0gd2luZG93Q29udGVudEJvdW5kc1JlY3QudG9wOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgb2xkQ29udGVudEZyYW1lUmVjdCA9IFsoTlNWaWV3ICopX2NvbnRlbnRWaWV3
IGZyYW1lXTsKICAgICBpZiAoIU5TRXF1YWxSZWN0cyhuZXdDb250ZW50RnJhbWVSZWN0LCBvbGRD
b250ZW50RnJhbWVSZWN0KSkgewogICAgICAgICBbKE5TVmlldyAqKV9jb250ZW50VmlldyBzZXRG
cmFtZTpuZXdDb250ZW50RnJhbWVSZWN0XTsKICAgICAgICAgcmVjb25jaWxpYXRpb25XYXNOZWNl
c3NhcnkgPSBZRVM7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgLy8gRG9uZS4KICAgICByZXR1
cm4gcmVjb25jaWxpYXRpb25XYXNOZWNlc3Nhcnk7CkBAIC01OTUsOCArNTg5LDcgQEAgc3RhdGlj
IE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBp
bkV2ZW50SGFuZGxlckNhbGwKIC8vIFRoaXMgZnVuY3Rpb24gaXMgbW9zdGx5IGN1dC1hbmQtcGFz
dGVkIGZyb20gLVtOU1dpbmRvdyBfdGVybVdpbmRvd0lmT3duZXJdLiAgTS5QLiBOb3RpY2UgLSA4
LzcvMDAKIC0gKHZvaWQpX3Rlcm1XaW5kb3dJZk93bmVyCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBbc2VsZiBfc2V0V2luZG93TnVtYmVyOi0xXTsKICAgICBfd0ZsYWdzLmlzVGVybWluYXRp
bmcgPSBZRVM7CiAgICAgaWYgKF93aW5kb3dSZWYgJiYgX3dpbmRvd1JlZklzT3duZWQpCkBAIC02
MDYsNyArNTk5LDcgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQo
RXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKIC8vICAgICAgICBbX2JvcmRl
clZpZXcgc2V0U2hhZG93U3RhdGU6a0ZyYW1lU2hhZG93Tm9uZV07CiAvLyAgICB9CiAgICAgX3dG
bGFncy5pc1Rlcm1pbmF0aW5nID0gTk87Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIApAQCAtNjI2LDEwICs2
MTksOSBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhh
bmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAgIFtzdXBlciBfd2luZG93TW92ZWRU
b1JlY3Q6YWN0dWFsRnJhbWVdOwogCiAgICAgLy8gTGV0IENhcmJvbiBrbm93IHRoYXQgdGhlIHdp
bmRvdyBoYXMgYmVlbiBtb3ZlZCwgdW5sZXNzIHRoaXMgbWV0aG9kIGlzIGJlaW5nIGNhbGxlZCAi
ZWFybHkuIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKF93RmxhZ3MudmlzaWJsZSkgewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICAgICAgICAgb3NTdGF0dXMgPSBfU3luY1dpbmRvd1dpdGhDR0FmdGVy
TW92ZShfd2luZG93UmVmKTsKICAgICAgICAgaWYgKG9zU3RhdHVzIT1ub0VycikgTlNMb2coQCJB
IENhcmJvbiB3aW5kb3cncyBib3VuZHMgY291bGRuJ3QgYmUgc3luY2hyb25pemVkICglaSkuIiwg
KGludClvc1N0YXR1cyk7CiAgICAgfQpAQCAtNzU4LDExICs3NTAsMTAgQEAgc3RhdGljIE9TU3Rh
dHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50
SGFuZGxlckNhbGwKICAgICBSZWN0IHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0OwogCiAgICAgLy8g
UHJlY29uZGl0aW9uIGNoZWNrLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgYXNzZXJ0KF9ib3Jk
ZXJWaWV3KTsKICAgICBhc3NlcnQoW19ib3JkZXJWaWV3IGlzS2luZE9mQ2xhc3M6W0NhcmJvbldp
bmRvd0ZyYW1lIGNsYXNzXV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIGFzc2VydChfd2luZG93UmVmKTsK
IAogICAgIC8vIFBhcmFtZXRlciBjaGVjay4KQEAgLTc3Niw4ICs3NjcsNyBAQCBzdGF0aWMgT1NT
dGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZl
bnRIYW5kbGVyQ2FsbAogICAgIGNvbnRlbnRGcmFtZVJlY3Quc2l6ZS53aWR0aCA9IHdpbmRvd0Nv
bnRlbnRCb3VuZHNSZWN0LnJpZ2h0IC0gd2luZG93Q29udGVudEJvdW5kc1JlY3QubGVmdDsKICAg
ICBjb250ZW50RnJhbWVSZWN0LnNpemUuaGVpZ2h0ID0gd2luZG93Q29udGVudEJvdW5kc1JlY3Qu
Ym90dG9tIC0gd2luZG93Q29udGVudEJvdW5kc1JlY3QudG9wOwogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICAvLyBJZiB0aGUgY29udGVudCB2aWV3IGlzIHN0aWxsIGluIHNvbWUgb3RoZXIgdmll
dyBoaWVyYXJjaHksIHByeSBpdCBmcmVlLgogICAgIFtfY29udGVudFZpZXcgcmVtb3ZlRnJvbVN1
cGVydmlld107CiAgICAgYXNzZXJ0KCFbX2NvbnRlbnRWaWV3IHN1cGVydmlld10pOwpAQCAtNzkx
LDcgKzc4MSw3IEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2
ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAKICAgICAvLyBUZWxsIHRoZSBj
b250ZW50IHZpZXcgaXQncyBuZXcgcGxhY2UgaW4gdGhlIHJlc3BvbmRlciBjaGFpbi4KICAgICBb
X2NvbnRlbnRWaWV3IHNldE5leHRSZXNwb25kZXI6c2VsZl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIApA
QCAtOTQ0LDEwICs5MzQsOSBAQCBDbGVhblVwOgogICAgIEhJUmVjdCBmcmFtZTsKIAogICAgIEhJ
Vmlld0dldEZyYW1lKHJvb3QsICZmcmFtZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbX2Jv
cmRlclZpZXcgc2V0RnJhbWVTaXplOiooTlNTaXplKikmZnJhbWUuc2l6ZV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiB9CiAKIC0gKHZvaWQpX2hhbmRsZUNvbnRlbnRCb3VuZHNDaGFuZ2VkCkBAIC05NjQsMTMgKzk1
MywxMiBAQCBDbGVhblVwOgogICAgIC8vIFNldCB0aGUgY29udGVudCB2aWV3J3MgZnJhbWUgcmVj
dCBmcm9tIHRoZSBDYXJib24gd2luZG93J3MgY29udGVudCByZWdpb24gYm91bmRzLgogICAgIGNv
bnRlbnRGcmFtZS5vcmlnaW4ueSA9IHJvb3RCb3VuZHMuc2l6ZS5oZWlnaHQgLSBDR1JlY3RHZXRN
YXhZKGNvbnRlbnRGcmFtZSk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIG9sZENvbnRlbnRG
cmFtZVJlY3QgPSBbKE5TVmlldyAqKV9jb250ZW50VmlldyBmcmFtZV07CiAgICAgaWYgKCFOU0Vx
dWFsUmVjdHMoKihOU1JlY3QqKSZjb250ZW50RnJhbWUsIG9sZENvbnRlbnRGcmFtZVJlY3QpKSB7
CiAgICAgICAgIFsoTlNWaWV3ICopX2NvbnRlbnRWaWV3IHNldEZyYW1lOiooTlNSZWN0KikmY29u
dGVudEZyYW1lXTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKE9TU3RhdHVzKV9oYW5kbGVD
YXJib25FdmVudDooRXZlbnRSZWYpaW5FdmVudCBjYWxsUmVmOihFdmVudEhhbmRsZXJDYWxsUmVm
KWluQ2FsbFJlZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0Nh
cmJvbldpbmRvd0ZyYW1lLm0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9u
V2luZG93RnJhbWUubQppbmRleCBlOTI2ZWI2YzIxZTBmYTg4ZjI4ZGM0YTA2MWMzOTAyMjUzMjVl
Yjk3Li5jNzE0M2Q1NjM5NjZmZTJhM2Q3Mzg4ODBmZDFiNmFhOGI5ODg3NDdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93RnJhbWUubQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93RnJhbWUubQpAQCAt
MjQxLDEwICsyNDEsOSBAQCAtIChOU1N0cmluZyAqKXRpdGxlIHsKICAgICB3aW5kb3dSZWYgPSBb
Y2FyYm9uV2luZG93IHdpbmRvd1JlZl07CiAgICAgb3NTdGF0dXMgPSBDb3B5V2luZG93VGl0bGVB
c0NGU3RyaW5nKHdpbmRvd1JlZiwgJndpbmRvd1RpdGxlKTsKICAgICBpZiAob3NTdGF0dXM9PW5v
RXJyKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XY2FzdC1xdWFsIgorICAgICAgICBJR05PUkVfV0FSTklOR19CRUdJ
TigiLVdjYXN0LXF1YWwiKQogICAgICAgICB3aW5kb3dUaXRsZUFzTlNTdHJpbmcgPSAoTlNTdHJp
bmcgKil3aW5kb3dUaXRsZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
SUdOT1JFX1dBUk5JTkdfRU5ECiAgICAgfSBlbHNlIHsKICAgICAgICAgTlNMb2coQCJBIENhcmJv
biB3aW5kb3cncyB0aXRsZSBjb3VsZG4ndCBiZSBnb3R0ZW4uIik7CiAgICAgICAgIHdpbmRvd1Rp
dGxlQXNOU1N0cmluZyA9IEAiIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24v
SElWaWV3QWRhcHRlci5tCmluZGV4IGYzZDk5NjVhYjdmZDEzODRhYmI1NWU1OWM1YTA5NDRiNWU2
MDFlNzAuLmNhZmNiOGRmZDgwY2Q5N2JhMWZjOTNhZDk0NzEwNTE0NjExNjIwMTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJVmlld0FkYXB0ZXIubQpAQCAtODgsMTAg
Kzg4LDkgQEAgKyAodm9pZCliaW5kSElWaWV3VG9OU1ZpZXc6KEhJVmlld1JlZiloaVZpZXcgbnNW
aWV3OihOU1ZpZXcqKW5zVmlldwogCiArIChISVZpZXdSZWYpZ2V0SElWaWV3Rm9yTlNWaWV3OihO
U1ZpZXcqKWluVmlldwogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Nhc3QtcXVhbCIKKyAgICBJR05PUkVfV0FSTklO
R19CRUdJTigiLVdjYXN0LXF1YWwiKQogICAgIHJldHVybiBzVmlld01hcCA/IChISVZpZXdSZWYp
Q0ZEaWN0aW9uYXJ5R2V0VmFsdWUoc1ZpZXdNYXAsIGluVmlldykgOiBOVUxMOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0VORAogfQogCiArICh2b2lk
KXVuYmluZE5TVmlldzooTlNWaWV3KilpblZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
YXJib24vSElXZWJWaWV3Lm1tCmluZGV4IDQwNmI3NzlmYWNmN2EzZDQxNGJiMmRmY2EzOTU1MTY0
ZTc2MjkyNmEuLjI2NDkwNzJlMjkyMDk0ZTRhMWU1MjI5ZTQ3M2E3NmY4Y2NiNTBhOTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJV2ViVmlldy5tbQpAQCAtMjg4LDExICsy
ODgsMTAgQEAgc3RhdGljIFVJbnQzMiBHZXRCZWhhdmlvcnMoKQogCiBzdGF0aWMgQ0dDb250ZXh0
UmVmIG92ZXJyaWRlQ0dDb250ZXh0KE5TV2luZG93ICp3aW5kb3csIENHQ29udGV4dFJlZiBjb250
ZXh0KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNXaW5kb3dHcmFwaGljc0NvbnRleHQg
KmdyYXBoaWNzQ29udGV4dCA9IChOU1dpbmRvd0dyYXBoaWNzQ29udGV4dCAqKXdpbmRvdy5ncmFw
aGljc0NvbnRleHQ7CiAgICAgQ0dDb250ZXh0UmVmIHNhdmVkQ29udGV4dCA9IChDR0NvbnRleHRS
ZWYpZ3JhcGhpY3NDb250ZXh0LmdyYXBoaWNzUG9ydDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBDR0NvbnRl
eHRSZXRhaW4oc2F2ZWRDb250ZXh0KTsKICAgICBbZ3JhcGhpY3NDb250ZXh0IF93ZWJfc2V0R3Jh
cGhpY3NQb3J0OmNvbnRleHRdOwogICAgIHJldHVybiBzYXZlZENvbnRleHQ7CkBAIC0zMDAsMTAg
KzI5OSw5IEBAIHN0YXRpYyBDR0NvbnRleHRSZWYgb3ZlcnJpZGVDR0NvbnRleHQoTlNXaW5kb3cg
KndpbmRvdywgQ0dDb250ZXh0UmVmIGNvbnRleHQpCiAKIHN0YXRpYyB2b2lkIHJlc3RvcmVDR0Nv
bnRleHQoTlNXaW5kb3cgKndpbmRvdywgQ0dDb250ZXh0UmVmIHNhdmVkQ29udGV4dCkKIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIE5TV2luZG93R3JhcGhpY3NDb250ZXh0ICpncmFwaGljc0Nv
bnRleHQgPSAoTlNXaW5kb3dHcmFwaGljc0NvbnRleHQgKil3aW5kb3cuZ3JhcGhpY3NDb250ZXh0
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgIFtncmFwaGljc0NvbnRleHQgX3dlYl9zZXRHcmFwaGljc1BvcnQ6
c2F2ZWRDb250ZXh0XTsKICAgICBDR0NvbnRleHRSZWxlYXNlKHNhdmVkQ29udGV4dCk7CiB9CkBA
IC0zMjMsMTIgKzMyMSwxMSBAQCBzdGF0aWMgdm9pZCBEcmF3KEhJV2ViVmlldyogaW5WaWV3LCBS
Z25IYW5kbGUgbGltaXRSZ24sIENHQ29udGV4dFJlZiBpbkNvbnRleHQpCiAgICAgICAgIEdyYWZQ
dHIgcG9ydDsKICAgICAgICAgUmVjdCBwb3J0UmVjdDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgICAgICBHZXRQb3J0KCZwb3J0KTsKICAgICAgICAgR2V0UG9ydEJvdW5kcyhwb3J0LCAm
cG9ydFJlY3QpOwogICAgICAgICBDcmVhdGVDR0NvbnRleHRGb3JQb3J0KHBvcnQsICZpbkNvbnRl
eHQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFN5bmNDR0NvbnRleHRPcmlnaW5XaXRoUG9y
dChpbkNvbnRleHQsIHBvcnQpOwogICAgICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oaW5Db250
ZXh0LCAwLCAocG9ydFJlY3QuYm90dG9tIC0gcG9ydFJlY3QudG9wKSk7CiAgICAgICAgIENHQ29u
dGV4dFNjYWxlQ1RNKGluQ29udGV4dCwgMSwgLTEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvRE9NL0RPTS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET00u
bW0KaW5kZXggOGViYjhhMGRhZjYzNDVmMjE5MDNkNmZlY2IyNGQ4ZjE0ZTA2YzJhMS4uNmY0Mjc4
MTJkYzc0MjljZGQzNjlhMzI3N2U4N2I2Y2E0NTcxYjY3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvRE9NL0RPTS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9E
T00vRE9NLm1tCkBAIC0yNDQsOCArMjQ0LDcgQEAgc3RhdGljIGlubGluZSBXS1F1YWQgemVyb1F1
YWQoKQogCiBAaW1wbGVtZW50YXRpb24gRE9NTm9kZSAoV2ViQ29yZUludGVybmFsKQogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1Xb2JqYy1wcm90b2NvbC1tZXRob2QtaW1wbGVtZW50YXRpb24iCitJR05PUkVfQ0xBTkdf
V0FSTklOR19CRUdJTigiLVdvYmpjLXByb3RvY29sLW1ldGhvZC1pbXBsZW1lbnRhdGlvbiIpCiAK
IC0gKE5TU3RyaW5nICopZGVzY3JpcHRpb24KIHsKQEAgLTI1OSw3ICsyNTgsNyBAQCBzdGF0aWMg
aW5saW5lIFdLUXVhZCB6ZXJvUXVhZCgpCiAgICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OkAiPCVAIFslQF06ICVwPiIsIFtbc2VsZiBjbGFzc10gZGVzY3JpcHRpb25dLCBbc2Vs
ZiBub2RlTmFtZV0sIF9pbnRlcm5hbF07CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKK0lHTk9SRV9DTEFOR19XQVJOSU5HX0VORAogCiAtIChCaW5kaW5nczo6Um9vdE9iamVjdCop
X3Jvb3RPYmplY3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3Rv
cnkvV2ViSGlzdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlz
dG9yeS5tbQppbmRleCA5MDQ5NmJiYjk5MzY0Mjk5NmJmNWEyNDU2ZGY4Njg4ZGY4NjU2MDdiLi40
ZDE2ZTM4ODA2MWQ5Y2ZlZjNiODdhOWNhZTlhYjc4MGQwNDJmZjI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnkubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5Lm1tCkBAIC00NDYsOCArNDQ2LDcgQEAg
c3RhdGljIGlubGluZSBXZWJIaXN0b3J5RGF0ZUtleSBkYXRlS2V5KE5TVGltZUludGVydmFsIGRh
dGUpCiAKIC8vIE1BUks6IERBVEUtQkFTRUQgUkVUUklFVkFMCiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAK
IC0gKE5TQXJyYXkgKilvcmRlcmVkTGFzdFZpc2l0ZWREYXlzCiB7CkBAIC00NzksNyArNDc4LDcg
QEAgc3RhdGljIGlubGluZSBXZWJIaXN0b3J5RGF0ZUtleSBkYXRlS2V5KE5TVGltZUludGVydmFs
IGRhdGUpCiAgICAgcmV0dXJuIF9lbnRyaWVzQnlEYXRlLT5nZXQoZGF0ZUtleSkuZ2V0KCk7CiB9
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogCiAvLyBNQVJLOiBVUkwgTUFUQ0hJTkcKIApAQCAtNTMxLDggKzUzMCw3IEBA
IHN0YXRpYyBpbmxpbmUgV2ViSGlzdG9yeURhdGVLZXkgZGF0ZUtleShOU1RpbWVJbnRlcnZhbCBk
YXRlKQogICAgIHJldHVybiBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBp
bnRlZ2VyRm9yS2V5OkAiV2ViS2l0SGlzdG9yeUl0ZW1MaW1pdCJdOwogfQogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogCiAvLyBSZXR1cm4gYSBkYXRlIHRoYXQgbWFya3MgdGhlIGFnZSBsaW1pdCBmb3IgaGlz
dG9yeSBlbnRyaWVzIHNhdmVkIHRvIG9yCiAvLyBsb2FkZWQgZnJvbSBkaXNrLiBBbnkgZW50cnkg
b2xkZXIgdGhhbiB0aGlzIGl0ZW0gc2hvdWxkIGJlIHJlamVjdGVkLgpAQCAtNTQyLDcgKzU0MCw3
IEBAIHN0YXRpYyBpbmxpbmUgV2ViSGlzdG9yeURhdGVLZXkgZGF0ZUtleShOU1RpbWVJbnRlcnZh
bCBkYXRlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaG91cnM6MCBtaW51dGVzOjAgc2Vjb25kczowXTsKIH0KIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIC0gKEJP
T0wpbG9hZEhpc3RvcnlHdXRzRnJvbVVSTDooTlNVUkwgKilVUkwgc2F2ZWRJdGVtc0NvdW50Oihp
bnQgKiludW1iZXJPZkl0ZW1zTG9hZGVkIGNvbGxlY3REaXNjYXJkZWRJdGVtc0ludG86KE5TTXV0
YWJsZUFycmF5ICopZGlzY2FyZGVkSXRlbXMgZXJyb3I6KE5TRXJyb3IgKiopZXJyb3IKIHsKQEAg
LTU2MSwxMCArNTU5LDkgQEAgc3RhdGljIGlubGluZSBXZWJIaXN0b3J5RGF0ZUtleSBkYXRlS2V5
KE5TVGltZUludGVydmFsIGRhdGUpCiAgICAgICAgICAgICByZXR1cm4gTk87CiAgICAgICAgIH0K
ICAgICB9IGVsc2UgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBOU0RhdGEgKmRh
dGEgPSBbTlNVUkxDb25uZWN0aW9uIHNlbmRTeW5jaHJvbm91c1JlcXVlc3Q6W05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpVUkxdIHJldHVybmluZ1Jlc3BvbnNlOm5pbCBlcnJvcjplcnJvcl07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgICAgICBpZiAoZGF0YS5sZW5ndGgpCiAgICAgICAgICAgICBk
aWN0aW9uYXJ5ID0gW05TUHJvcGVydHlMaXN0U2VyaWFsaXphdGlvbiBwcm9wZXJ0eUxpc3RXaXRo
RGF0YTpkYXRhIG9wdGlvbnM6TlNQcm9wZXJ0eUxpc3RJbW11dGFibGUgZm9ybWF0Om51bGxwdHIg
ZXJyb3I6bnVsbHB0cl07CiAgICAgfQpAQCAtNzY4LDE1ICs3NjUsMTQgQEAgc3RhdGljIGlubGlu
ZSBXZWJIaXN0b3J5RGF0ZUtleSBkYXRlS2V5KE5TVGltZUludGVydmFsIGRhdGUpCiAgICAgcmV0
dXJuIFtfaGlzdG9yeVByaXZhdGUgb3JkZXJlZExhc3RWaXNpdGVkRGF5c107CiB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAKIC0gKE5TQXJyYXkgKilvcmRlcmVkSXRlbXNMYXN0VmlzaXRlZE9uRGF5OihO
U0NhbGVuZGFyRGF0ZSAqKWRhdGUKIHsKICAgICByZXR1cm4gW19oaXN0b3J5UHJpdmF0ZSBvcmRl
cmVkSXRlbXNMYXN0VmlzaXRlZE9uRGF5OmRhdGVdOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogLy8gTUFSSzog
VVJMIE1BVENISU5HCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3Rv
cnkvV2ViSGlzdG9yeUl0ZW0ubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dl
Ykhpc3RvcnlJdGVtLm1tCmluZGV4IGNjMTg1N2FmMDJiYWEwNzllYzkyYTgxZTQ2MDUwMDU4OTIz
YTljOTguLjhmMTdjM2FmODlmMmIyNzRhYjQ3NTQ1ZWE5ZjllYWFhNmM5ZWNkZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQpAQCAt
MTk5LDEwICsxOTksOSBAQCB2b2lkIFdLTm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2VkKEhpc3RvcnlJ
dGVtKikKICNpZiAhUExBVEZPUk0oSU9TKQogLSAoTlNJbWFnZSAqKWljb24KIHsKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcHVzaCAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIHJldHVybiBbW1dlYkljb25EYXRhYmFzZSBzaGFyZWRJY29uRGF0YWJhc2Vd
IGljb25Gb3JVUkw6W3NlbGYgVVJMU3RyaW5nXSB3aXRoU2l6ZTpXZWJJY29uU21hbGxTaXplXTsK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L01pc2MvV2ViS2l0TlNTdHJpbmdFeHRyYXMubW0KaW5kZXggN2Y5OTUwMmYzNmI3NDkyM2YzMTFl
MDA2MWFlYmUxNGQ3NjY0NmNjZS4uMDdmMTQxYzc5ZTQ0ZWQ5OGJjNjk3OTljOTJmNWJkM2VjZTc0
Yzg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXROU1N0
cmluZ0V4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdE5T
U3RyaW5nRXh0cmFzLm1tCkBAIC03NywxMCArNzcsOSBAQCBzdGF0aWMgYm9vbCBjYW5Vc2VGYXN0
UmVuZGVyZXIoY29uc3QgVW5pQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgICAg
IHBvaW50LnkgPSBDR0NlaWxpbmcocG9pbnQueSk7CiAKICAgICAgICAgTlNHcmFwaGljc0NvbnRl
eHQgKm5zQ29udGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBzdGF0
aWNfY2FzdDxDR0NvbnRleHRSZWY+KFtuc0NvbnRleHQgZ3JhcGhpY3NQb3J0XSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgICAgICBHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0IHsgY2dDb250
ZXh0IH07CiAKICAgICAgICAgLy8gV2ViQ29yZSByZXF1aXJlcyBhIGZsaXBwZWQgZ3JhcGhpY3Mg
Y29udGV4dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNJ
bWFnZUV4dHJhcy5tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU0ltYWdlRXh0
cmFzLm0KaW5kZXggYzMyNjQzYjQ5OGZhZTcwZmQzMTI0YWU1YzQ1NjllMDNlOTZiMmZjMS4uNWZh
YTE3YTJlYzA4NTJkYWYzZjFhYTdlNjUzZTY2YmExZjhkMTE4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU0ltYWdlRXh0cmFzLm0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU0ltYWdlRXh0cmFzLm0KQEAgLTUzLDEwICs1Myw5IEBA
IC0gKHZvaWQpX3dlYl9zY2FsZVRvTWF4U2l6ZTooTlNTaXplKXNpemUKICAgICAKICAgICBpZihy
ZXNpemVEZWx0YSA+IDAuMCl7CiAgICAgICAgIE5TU2l6ZSBuZXdTaXplID0gTlNNYWtlU2l6ZSgo
b3JpZ2luYWxTaXplLndpZHRoICogcmVzaXplRGVsdGEpLCAob3JpZ2luYWxTaXplLmhlaWdodCAq
IHJlc2l6ZURlbHRhKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFtzZWxmIHNl
dFNjYWxlc1doZW5SZXNpemVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBbc2VsZiBz
ZXRTaXplOm5ld1NpemVdOwogICAgIH0KIH0KQEAgLTY1LDI5ICs2NCwyNSBAQCAtICh2b2lkKV93
ZWJfZGlzc29sdmVUb0ZyYWN0aW9uOihmbG9hdClkZWx0YQogewogICAgIE5TSW1hZ2UgKmRpc3Nv
bHZlZEltYWdlID0gW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aFNpemU6W3NlbGYgc2l6ZV1dOwog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU1BvaW50IHBvaW50ID0gW3NlbGYgaXNGbGlwcGVk
XSA/IE5TTWFrZVBvaW50KDAsIFtzZWxmIHNpemVdLmhlaWdodCkgOiBOU1plcm9Qb2ludDsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICAgICAKICAgICAvLyBJbiB0aGlzIGNhc2UgdGhlIGRyYWdnaW5nIGltYWdlIGlz
IGFsd2F5cyBjb3JyZWN0LgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW2Rpc3NvbHZlZEltYWdl
IHNldEZsaXBwZWQ6W3NlbGYgaXNGbGlwcGVkXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBbZGlzc29s
dmVkSW1hZ2UgbG9ja0ZvY3VzXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtzZWxmIGRpc3Nv
bHZlVG9Qb2ludDpwb2ludCBmcmFjdGlvbjogZGVsdGFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtkaXNz
b2x2ZWRJbWFnZSB1bmxvY2tGb2N1c107CiAKICAgICBbc2VsZiBsb2NrRm9jdXNdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgW2Rpc3NvbHZlZEltYWdlIGNvbXBvc2l0ZVRvUG9pbnQ6cG9pbnQg
b3BlcmF0aW9uOk5TQ29tcG9zaXRlQ29weV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW3NlbGYgdW5sb2Nr
Rm9jdXNdOwogCiAgICAgW2Rpc3NvbHZlZEltYWdlIHJlbGVhc2VdOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQppbmRleCBm
YTIzYzZjYmRiMTQ2Yjg2MmNjZTJlYWU0ODBhZWExMTk5NmMxYmIwLi5kYWJiY2RiYzMwYTllMjE3
ZWUxZTljYTk4YTQyZDQzM2QyMjkzOTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQpAQCAtMTg0LDEwICsxODQsOSBA
QCBzdGF0aWMgTlNBcnJheSAqX3dyaXRhYmxlVHlwZXNGb3JJbWFnZVdpdGhBcmNoaXZlICh2b2lk
KQogCiArIChpbnQpX3dlYl9zZXRGaW5kUGFzdGVib2FyZFN0cmluZzooTlNTdHJpbmcgKilzdHJp
bmcgd2l0aE93bmVyOihpZClvd25lcgogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNQYXN0
ZWJvYXJkICpmaW5kUGFzdGVib2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1l
Ok5TRmluZFBib2FyZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW2ZpbmRQYXN0ZWJvYXJkIGRlY2xhcmVU
eXBlczpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6bGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUo
KV0gb3duZXI6b3duZXJdOwogICAgIFtmaW5kUGFzdGVib2FyZCBzZXRTdHJpbmc6c3RyaW5nIGZv
clR5cGU6bGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUoKV07CiAgICAgcmV0dXJuIFtmaW5kUGFz
dGVib2FyZCBjaGFuZ2VDb3VudF07CkBAIC0yNzksMTAgKzI3OCw5IEBAIHN0YXRpYyBDYWNoZWRJ
bWFnZSogaW1hZ2VGcm9tRWxlbWVudChET01FbGVtZW50ICpkb21FbGVtZW50KQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhcmNoaXZlOihXZWJBcmNoaXZlICopYXJjaGl2ZQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOihXZWJIVE1MVmlldyAq
KXNvdXJjZQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQVNTRVJUKHNlbGYgPT0gW05TUGFz
dGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6TlNEcmFnUGJvYXJkXSk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAK
ICAgICBOU1N0cmluZyAqZXh0ZW5zaW9uID0gQCIiOwogICAgIFJldGFpblB0cjxOU011dGFibGVB
cnJheT4gdHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoT2Jq
ZWN0czpsZWdhY3lGaWxlc1Byb21pc2VQYXN0ZWJvYXJkVHlwZSgpLCBuaWxdKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BhbmVscy9XZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QYW5lbHMvV2ViQXV0aGVudGljYXRpb25QYW5l
bC5tCmluZGV4IDY3ZjE4YjhmNTM3NWVhYzU0NWIyM2E2M2RiOTc2ZjY5NDc2YjdkNGUuLjVmYzMy
M2M4MjAxMzE0OWNhMmQ1MTIxNmQ2ZTg2OTg3M2E2N2RkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1BhbmVscy9XZWJBdXRoZW50aWNhdGlvblBhbmVsLm0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvUGFuZWxzL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubQpAQCAt
MTA0LDEwICsxMDQsOSBAQCAtIChJQkFjdGlvbilsb2dJbjooaWQpc2VuZGVyCiAtIChCT09MKWxv
YWROaWIKIHsKICAgICBpZiAoIW5pYkxvYWRlZCkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgICAgICBpZiAoW05TQnVuZGxlIGxvYWROaWJOYW1lZDpXZWJBdXRoZW50aWNhdGlvblBhbmVs
TmliTmFtZSBvd25lcjpzZWxmXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBu
aWJMb2FkZWQgPSBZRVM7CiAgICAgICAgICAgICBbaW1hZ2VWaWV3IHNldEltYWdlOltOU0ltYWdl
IGltYWdlTmFtZWQ6QCJOU0FwcGxpY2F0aW9uSWNvbiJdXTsKICAgICAgICAgfSBlbHNlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBl
UGx1Z2luSG9zdE1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLm1tCmluZGV4IDAyMTBiMDY2YmFhZDI2OTdl
MDlmMjhlMDg5YWQzNWZhNzRmMzY5ZGYuLmUxNTBhMzdkY2M0YmFjYzg5Yjc0NmE1MDQ3NTg5N2Zk
NDVlMTEyMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9z
dGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbQpAQCAtMTg3
LDEwICsxODcsOSBAQCBib29sIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI6OnNwYXduUGx1Z2lu
SG9zdChjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIGNwdV90eQogCiAgICAgUHJvY2Vzc1Nlcmlh
bE51bWJlciBwc247CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEdldEN1cnJlbnRQcm9jZXNz
KCZwc24pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogCiAgICAgQVNTRVJUKE1BQ0hfUE9SVF9WQUxJRChjbGllbnRQ
b3J0KSk7CiAgICAga3IgPSBfV0tQSENoZWNrSW5XaXRoUGx1Z2luSG9zdChwbHVnaW5Ib3N0UG9y
dCwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KFtkYXRhIGJ5dGVzXSkp
LCBbZGF0YSBsZW5ndGhdLCBjbGllbnRQb3J0LCBwc24uaGlnaExvbmdPZlBTTiwgcHNuLmxvd0xv
bmdPZlBTTiwgcmVuZGVyU2VydmVyUG9ydCwKQEAgLTMyMiwxMSArMzIxLDEwIEBAIHZvaWQgTmV0
c2NhcGVQbHVnaW5Ib3N0TWFuYWdlcjo6ZGlkQ3JlYXRlV2luZG93KCkKICAgICAgICAgaWYgKCFo
b3N0UHJveHktPmlzTWVudUJhclZpc2libGUoKSkgewogICAgICAgICAgICAgLy8gTWFrZSBvdXJz
ZWx2ZXMgdGhlIGZyb250IHByb2Nlc3MuCiAgICAgICAgICAgICBQcm9jZXNzU2VyaWFsTnVtYmVy
IHBzbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBHZXRDdXJyZW50
UHJvY2VzcygmcHNuKTsKICAgICAgICAgICAgIFNldEZyb250UHJvY2VzcygmcHNuKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5Ib3N0UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQppbmRleCBlYzVmMGRhNThhNjJhOWU1NDQ3OGNj
MmMwZjcwN2ViNGM3MTAxMGI2Li5mMWM0YWQzMTg5MGUwNTZhZWIzODhiNGRjYmRlZGZiNTRmNjAx
ZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
bHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQpAQCAtMzQxLDMyICszNDEs
MjkgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6cHJvY2Vzc1JlcXVlc3RzKCkKIAog
dm9pZCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6bWFrZUN1cnJlbnRQcm9jZXNzRnJvbnRQcm9j
ZXNzKCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFByb2Nlc3NTZXJpYWxOdW1iZXIgcHNu
OwogICAgIEdldEN1cnJlbnRQcm9jZXNzKCZwc24pOwogICAgIFNldEZyb250UHJvY2VzcygmcHNu
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIH0KIAogdm9pZCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6bWFrZVBs
dWdpbkhvc3RQcm9jZXNzRnJvbnRQcm9jZXNzKCkgY29uc3QKIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgIFNldEZyb250UHJvY2VzcygmbV9wbHVnaW5Ib3N0UFNOKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0K
IAogYm9vbCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6aXNQbHVnaW5Ib3N0UHJvY2Vzc0Zyb250
UHJvY2VzcygpIGNvbnN0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBQcm9jZXNzU2VyaWFs
TnVtYmVyIGZyb250UHJvY2VzczsKICAgICBHZXRGcm9udFByb2Nlc3MoJmZyb250UHJvY2Vzcyk7
CiAKICAgICBCb29sZWFuIGlzU2FtZVByb2Nlc3MgPSAwOwogICAgIFNhbWVQcm9jZXNzKCZmcm9u
dFByb2Nlc3MsICZtX3BsdWdpbkhvc3RQU04sICZpc1NhbWVQcm9jZXNzKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
IAogICAgIHJldHVybiBpc1NhbWVQcm9jZXNzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5J
bnN0YW5jZVByb3h5Lm1tCmluZGV4IGU5M2ZiNTA2ZTVkZTBhNWRhZTNhZmE1NjU4Y2JhZjQxNzhl
MjZhYTEuLmFjN2E0YmIzMThjNTVmOTM1OWM5OGUwYThiZjk2ZDFlNmU0NDM2MzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2lu
SW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTQyMywxMCArNDIzLDkgQEAg
dm9pZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnN0YXJ0VGltZXJzKGJvb2wgdGhyb3R0
bGVUaW1lcnMpCiAgICAgCiB2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6bW91c2VF
dmVudChOU1ZpZXcgKnBsdWdpblZpZXcsIE5TRXZlbnQgKmV2ZW50LCBOUENvY29hRXZlbnRUeXBl
IHR5cGUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU1BvaW50IHNjcmVlblBvaW50ID0g
W1tldmVudCB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46W2V2ZW50IGxvY2F0aW9uSW5XaW5k
b3ddXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICBOU1BvaW50IHBsdWdpblBvaW50ID0gW3BsdWdpblZpZXcg
Y29udmVydFBvaW50OltldmVudCBsb2NhdGlvbkluV2luZG93XSBmcm9tVmlldzpuaWxdOwogICAg
IAogICAgIGludCBjbGlja0NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5W
aWV3Lm1tCmluZGV4IGYzZTA0YjRmNTU4MDYxMTkxYzg2ZmQ2Nzc1NTE1OTE0ODYzZDExOTQuLjUw
OTZmN2QzYTFjZmY4YzNkZDU2ZTdiODg5MzE1YWE3ZGJjZDM4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2lu
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJI
b3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTQ3Nyw4ICs0NzcsNyBAQCBleHRlcm4gIkMi
IHsKICAgICB9CiAKICAgICBpZiAoX3Byb3h5KSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgICAgIGlmIChfc29mdHdhcmVSZW5kZXJlcikgewogICAgICAgICAgICAgaWYgKFtOU0dyYXBo
aWNzQ29udGV4dCBjdXJyZW50Q29udGV4dERyYXdpbmdUb1NjcmVlbl0pIHsKICAgICAgICAgICAg
ICAgICBfc29mdHdhcmVSZW5kZXJlci0+cmVuZGVyKChDR0NvbnRleHRSZWYpW1tOU0dyYXBoaWNz
Q29udGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XSwgTlNSZWN0VG9DR1JlY3QocmVj
dCkpOwpAQCAtNDg4LDcgKzQ4Nyw3IEBAIGV4dGVybiAiQyIgewogICAgICAgICB9IGVsc2UgaWYg
KF9zbmFwc2hvdHRpbmcgJiYgW3NlbGYgc3VwcG9ydHNTbmFwc2hvdHRpbmddKSB7CiAgICAgICAg
ICAgICBfcHJveHktPnNuYXBzaG90KHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb250ZXh0UmVmPihbW05T
R3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdKSwgW3NlbGYgYm91
bmRzXS5zaXplLndpZHRoLCBbc2VsZiBib3VuZHNdLnNpemUuaGVpZ2h0KTsKICAgICAgICAgfQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIAogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViVGV4dElucHV0V2luZG93Q29u
dHJvbGxlci5tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViVGV4
dElucHV0V2luZG93Q29udHJvbGxlci5tCmluZGV4IGZiZDY2N2I3NDhmODQyM2VlZTg4MTdhZTRk
MTViNWE3NjYyZmI1MTkuLmM2YmYwM2UyOTMyODZhMzQ5ZmE0MzBiMmM4N2VkNWU5MTRhMzBhYjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYlRl
eHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
bHVnaW5zL0hvc3RlZC9XZWJUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm0KQEAgLTEwNiwxOSAr
MTA2LDE3IEBAIC0gKHZvaWQpX2tleWJvYXJkSW5wdXRTb3VyY2VDaGFuZ2VkOihOU05vdGlmaWNh
dGlvbiAqKW5vdGlmaWNhdGlvbgogCiAtIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooTlNFdmVu
dCAqKWV2ZW50IHN0cmluZzooTlNTdHJpbmcgKiopc3RyaW5nCiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICBCT09MIGhhZE1hcmtlZFRleHQgPSBbX2lucHV0VGV4dFZpZXcgaGFzTWFya2VkVGV4
dF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAKICAgICAqc3RyaW5nID0gbmlsOwogCiAgICAgLy8gTGV0IFRTTSBr
bm93IHRoYXQgYSBib3R0b20gaW5wdXQgd2luZG93IHdvdWxkIGJlIGNyZWF0ZWQgZm9yIG1hcmtl
ZCB0ZXh0LgogICAgIC8vIEZJWE1FOiBDYW4gYmUgcmVtb3ZlZCBvbmNlIHdlIGNhbiByZWx5IG9u
IF9fTlNVc2VzRmxvYXRpbmdJbnB1dFdpbmRvdyAob3IgYSBiZXR0ZXIgQVBJKSBiZWluZyBhdmFp
bGFibGUgZXZlcnl3aGVyZS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdjYXN0LXF1YWwiCisgICAgSUdOT1JFX1dBUk5J
TkdfQkVHSU4oIi1XY2FzdC1xdWFsIikKICAgICBFdmVudFJlZiBjYXJib25FdmVudCA9IChFdmVu
dFJlZilbZXZlbnQgZXZlbnRSZWZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IElHTk9SRV9XQVJOSU5HX0VORAogICAgIGlmIChjYXJib25FdmVudCkgewogICAgICAgICBCb29s
ZWFuIGlnbm9yZVBBSCA9IHRydWU7CiAgICAgICAgIFNldEV2ZW50UGFyYW1ldGVyKGNhcmJvbkV2
ZW50LCAnaVBBSCcsIHR5cGVCb29sZWFuLCBzaXplb2YoaWdub3JlUEFIKSwgJmlnbm9yZVBBSCk7
CkBAIC0xMjcsMTAgKzEyNSw5IEBAIC0gKEJPT0wpX2ludGVycHJldEtleUV2ZW50OihOU0V2ZW50
ICopZXZlbnQgc3RyaW5nOihOU1N0cmluZyAqKilzdHJpbmcKICAgICBpZiAoIVtbX2lucHV0VGV4
dFZpZXcgaW5wdXRDb250ZXh0XSBoYW5kbGVFdmVudDpldmVudF0pCiAgICAgICAgIHJldHVybiBO
TzsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChbX2lucHV0VGV4dFZpZXcgaGFz
TWFya2VkVGV4dF0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIC8vIERvbid0IHNob3cgdGhl
IGlucHV0IG1ldGhvZCB3aW5kb3cgZm9yIGRlYWQga2V5cwogICAgICAgICBpZiAoW1tldmVudCBj
aGFyYWN0ZXJzXSBsZW5ndGhdID4gMCkKICAgICAgICAgICAgIFtzZWxmIG9yZGVyRnJvbnQ6bmls
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5l
dHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2Vi
QmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA2ZDg1YThjNWVhNDE1OTgyYjEwOGVlYWE2
ZGVjNDdjMGM4NjYxOTk0Li5iNGM1ZTZmNzA2YTkwZjUyMDhiZjcyNWU3OTM2Y2UyZDBlY2NhNTIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRz
Y2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9X
ZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC03MjksMjUgKzcyOSwyMiBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKICAgICBzd2l0Y2ggKHNvdXJjZVNwYWNlKSB7CiAgICAgICAgIGNh
c2UgTlBDb29yZGluYXRlU3BhY2VQbHVnaW46CiAgICAgICAgICAgICBzb3VyY2VQb2ludEluU2Ny
ZWVuU3BhY2UgPSBbc2VsZiBjb252ZXJ0UG9pbnQ6c291cmNlUG9pbnQgdG9WaWV3Om5pbF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgc291cmNlUG9pbnRJblNjcmVl
blNwYWNlID0gW1tzZWxmIGN1cnJlbnRXaW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46c291cmNl
UG9pbnRJblNjcmVlblNwYWNlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBOUENvb3JkaW5hdGVTcGFjZVdpbmRvdzoK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBzb3VyY2VQb2ludEluU2Ny
ZWVuU3BhY2UgPSBbW3NlbGYgY3VycmVudFdpbmRvd10gY29udmVydEJhc2VUb1NjcmVlbjpzb3Vy
Y2VQb2ludF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgCiAgICAgICAgIGNhc2UgTlBDb29yZGluYXRlU3BhY2VGbGlwcGVkV2luZG93OgogICAg
ICAgICAgICAgc291cmNlUG9pbnQueSA9IFtbc2VsZiBjdXJyZW50V2luZG93XSBmcmFtZV0uc2l6
ZS5oZWlnaHQgLSBzb3VyY2VQb2ludC55OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICAgICAgICAgIHNvdXJjZVBvaW50SW5TY3JlZW5TcGFjZSA9IFtbc2VsZiBjdXJyZW50V2luZG93
XSBjb252ZXJ0QmFzZVRvU2NyZWVuOnNvdXJjZVBvaW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBOUENvb3JkaW5h
dGVTcGFjZVNjcmVlbjoKQEAgLTc2NywyNSArNzY0LDIyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogICAgIC8vIFRoZW4gY29udmVydCBiYWNrIHRvIHRoZSBkZXN0aW5hdGlvbiBzcGFjZQog
ICAgIHN3aXRjaCAoZGVzdFNwYWNlKSB7CiAgICAgICAgIGNhc2UgTlBDb29yZGluYXRlU3BhY2VQ
bHVnaW46Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgZGVzdFBvaW50
ID0gW1tzZWxmIGN1cnJlbnRXaW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6c291cmNlUG9pbnRJ
blNjcmVlblNwYWNlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgZGVzdFBvaW50
ID0gW3NlbGYgY29udmVydFBvaW50OmRlc3RQb2ludCBmcm9tVmlldzpuaWxdOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBOUENvb3JkaW5hdGVTcGFjZVdp
bmRvdzoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBkZXN0UG9pbnQg
PSBbW3NlbGYgY3VycmVudFdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpzb3VyY2VQb2ludElu
U2NyZWVuU3BhY2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIAogICAgICAgICBjYXNlIE5QQ29vcmRpbmF0ZVNwYWNlRmxpcHBlZFdpbmRvdzoK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBkZXN0UG9pbnQgPSBbW3Nl
bGYgY3VycmVudFdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpzb3VyY2VQb2ludEluU2NyZWVu
U3BhY2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBkZXN0UG9pbnQueSA9IFtb
c2VsZiBjdXJyZW50V2luZG93XSBmcmFtZV0uc2l6ZS5oZWlnaHQgLSBkZXN0UG9pbnQueTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luUGFja2FnZS5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLm1tCmluZGV4
IGYyMjg5MzQ3NDIxOTA0YmVlM2M4ODY2NmM0ZTMwMDkyZmMxMDUwZGUuLjU0ZDBhZGM0ZjBlMmYy
NTg3NDc4ZWFmOWY2MDYxNmM5MDE4NDQ1NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLm1tCkBAIC0x
NjcsMTQgKzE2NywxMyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICBpZiAoIU5QX0lu
aXRpYWxpemUgfHwgIU5QX0dldEVudHJ5UG9pbnRzIHx8ICFOUF9TaHV0ZG93bikKICAgICAgICAg
cmV0dXJuIE5POwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBQbHVnaW5zIChhdCBsZWFz
dCBRVCkgcmVxdWlyZSB0aGF0IHlvdSBjYWxsIFVzZVJlc0ZpbGUgb24gdGhlIHJlc291cmNlIGZp
bGUgYmVmb3JlIGxvYWRpbmcgaXQuCiAgICAgcmVzb3VyY2VSZWYgPSBbc2VsZiBvcGVuUmVzb3Vy
Y2VGaWxlXTsKICAgICBpZiAocmVzb3VyY2VSZWYgIT0gLTEpIHsKICAgICAgICAgVXNlUmVzRmls
ZShyZXNvdXJjZVJlZik7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgYnJvd3NlckZ1bmNzLnZl
cnNpb24gPSBOUF9WRVJTSU9OX01JTk9SOwogICAgIGJyb3dzZXJGdW5jcy5zaXplID0gc2l6ZW9m
KE5QTmV0c2NhcGVGdW5jcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
bHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDQ5ZGMxYzUxNGY3MmM0NDlm
ZmRhZTcyOWNhOGQ5YzA4MTY0YTllM2UuLjlhNzQ1ZDkzODNmNzQ0N2Y1NDJkZjUwNDVlMjQ0NWIz
ODUzZTA4ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2Vi
TmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdp
bnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC0zNzcsMTAgKzM3Nyw5IEBAIHN0YXRpYyBp
bmxpbmUgdm9pZCBnZXROUFJlY3QoY29uc3QgTlNSZWN0JiBuciwgTlBSZWN0JiBucHIpCiAgICAg
ICAgICAgICBSZ25IYW5kbGUgY2xpcFJlZ2lvbiA9IE5ld1JnbigpOwogICAgICAgICAgICAgcWRQ
b3J0U3RhdGUtPmNsaXBSZWdpb24gPSBjbGlwUmVnaW9uOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgICAgICAgICAgQ0dDb250ZXh0UmVmIGN1cnJlbnRDb250ZXh0ID0gKENHQ29u
dGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBpZiAoY3VycmVudENvbnRleHQgJiYg
Q0dDb250ZXh0R2V0VHlwZShjdXJyZW50Q29udGV4dCkgPT0ga0NHQ29udGV4dFR5cGVCaXRtYXAp
IHsKICAgICAgICAgICAgICAgICAvLyBXZSBjaGVjayBmb3Iga0NHQ29udGV4dFR5cGVCaXRtYXAg
aGVyZSwgYmVjYXVzZSBpZiB3ZSBqdXN0IGNhbGxlZCBDR0JpdG1hcENvbnRleHRHZXREYXRhCiAg
ICAgICAgICAgICAgICAgLy8gb24gYW55IGNvbnRleHQsIHdlJ2QgbG9nIHRvIHRoZSBjb25zb2xl
IGV2ZXJ5IHRpbWUuIEJ1dCBldmVuIGlmIGN1cnJlbnRDb250ZXh0IGlzIGEKQEAgLTUwMywxMCAr
NTAyLDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGdldE5QUmVjdChjb25zdCBOU1JlY3QmIG5yLCBO
UFJlY3QmIG5wcikKICAgICAgICAgICAgIAogICAgICAgICAgICAgQVNTRVJUKFtOU1ZpZXcgZm9j
dXNWaWV3XSA9PSBzZWxmKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAg
ICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dDb250ZXh0UmVmPihbW05T
R3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogCiAgICAgICAgICAgICBQb3J0U3RhdGVfQ0cgKmNnUG9ydFN0YXRlID0gKFBv
cnRTdGF0ZV9DRyAqKW1hbGxvYyhzaXplb2YoUG9ydFN0YXRlX0NHKSk7CiAgICAgICAgICAgICBw
b3J0U3RhdGUgPSAoUG9ydFN0YXRlKWNnUG9ydFN0YXRlOwpAQCAtNjk1LDEwICs2OTMsOSBAQCBz
dGF0aWMgaW5saW5lIHZvaWQgZ2V0TlBSZWN0KGNvbnN0IE5TUmVjdCYgbnIsIE5QUmVjdCYgbnBy
KQogewogICAgIEFTU0VSVChfZXZlbnRIYW5kbGVyKTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dDb250ZXh0UmVmPihb
W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICBfZXZlbnRIYW5kbGVyLT5kcmF3UmVjdChjb250ZXh0LCByZWN0KTsKIH0KIApA
QCAtMTMzOCwxMCArMTMzNSw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3QoY29uc3Qg
TlNSZWN0JiBuciwgTlBSZWN0JiBucHIpCiAgICAgICAgIGlmIChwcmludGVkUGx1Z2luQml0bWFw
KSB7CiAgICAgICAgICAgICAvLyBGbGlwIHRoZSBiaXRtYXAgYmVmb3JlIGRyYXdpbmcgYmVjYXVz
ZSB0aGUgUXVpY2tEcmF3IHBvcnQgaXMgZmxpcHBlZCByZWxhdGl2ZQogICAgICAgICAgICAgLy8g
dG8gdGhpcyB2aWV3LgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAgIENH
Q29udGV4dFJlZiBjZ0NvbnRleHQgPSAoQ0dDb250ZXh0UmVmKVtbTlNHcmFwaGljc0NvbnRleHQg
Y3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAg
ICAgICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0KTsKICAgICAgICAgICAgIE5TUmVj
dCBib3VuZHMgPSBbc2VsZiBib3VuZHNdOwogICAgICAgICAgICAgQ0dDb250ZXh0VHJhbnNsYXRl
Q1RNKGNnQ29udGV4dCwgMC4wZiwgTlNIZWlnaHQoYm91bmRzKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KaW5kZXgg
MjkwZmVmNjNhZDkxNmFhNjE4ZDMwYTIxZDkxNDNlMjE4ZWM5MGU4NS4uODM3OWQzZDdjODNiMDE1
MDUyZGY4MTFjZjQzNzEzMTc5MGNiNzQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQpAQCAtNjU0LDIxICs2NTQs
MTkgQEAgc3RhdGljIGFsZXJ0RGlkRW5kSU1QIG9yaWdpbmFsX1RTVXBkYXRlQ2hlY2tfYWxlcnRE
aWRFbmRfcmV0dXJuQ29kZV9jb250ZXh0SW5mb18KIAogc3RhdGljIHZvaWQgV2ViS2l0X1RTVXBk
YXRlQ2hlY2tfYWxlcnREaWRFbmRfcmV0dXJuQ29kZV9jb250ZXh0SW5mb18oaWQgb2JqZWN0LCBT
RUwgc2VsZWN0b3IsIE5TQWxlcnQgKmFsZXJ0LCBOU0ludGVnZXIgcmV0dXJuQ29kZSwgdm9pZCog
Y29udGV4dEluZm8pCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbWyhUU1VwZGF0ZUNoZWNr
ICopb2JqZWN0IGRlbGVnYXRlXSBhdXRvcmVsZWFzZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBvcmln
aW5hbF9UU1VwZGF0ZUNoZWNrX2FsZXJ0RGlkRW5kX3JldHVybkNvZGVfY29udGV4dEluZm9fKG9i
amVjdCwgc2VsZWN0b3IsIGFsZXJ0LCByZXR1cm5Db2RlLCBjb250ZXh0SW5mbyk7CiB9CiAKIHN0
YXRpYyB2b2lkIFdlYktpdF9OU0FsZXJ0X2JlZ2luU2hlZXRNb2RhbEZvcldpbmRvd19tb2RhbERl
bGVnYXRlX2RpZEVuZFNlbGVjdG9yX2NvbnRleHRJbmZvXyhpZCBvYmplY3QsIFNFTCBzZWxlY3Rv
ciwgTlNXaW5kb3cgKndpbmRvdywgaWQgbW9kYWxEZWxlZ2F0ZSwgU0VMIGRpZEVuZFNlbGVjdG9y
LCB2b2lkKiBjb250ZXh0SW5mbykKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChpc0tp
bmRPZkNsYXNzKG1vZGFsRGVsZWdhdGUsIEAiVFNVcGRhdGVDaGVjayIpKQogICAgICAgICBbWyhU
U1VwZGF0ZUNoZWNrICopbW9kYWxEZWxlZ2F0ZSBkZWxlZ2F0ZV0gcmV0YWluXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIAogICAgIG9yaWdpbmFsX05TQWxlcnRfYmVnaW5TaGVldE1vZGFsRm9yV2luZG93X21vZGFs
RGVsZWdhdGVfZGlkRW5kU2VsZWN0b3JfY29udGV4dEluZm9fKG9iamVjdCwgc2VsZWN0b3IsIHdp
bmRvdywgbW9kYWxEZWxlZ2F0ZSwgZGlkRW5kU2VsZWN0b3IsIGNvbnRleHRJbmZvKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVu
dU1hYy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVu
dU1hYy5tbQppbmRleCA3YjFmYmVhZWUxMDYwOWJlYzlmM2MyZmU0ZDY0NjY5OWRkM2Q0YWY4Li44
OTcxMDM4YTFjMTM5MmUwZjVjYWIzYzZhY2E5YmQ1YTczMWVlMmFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCkBA
IC0xMTMsMTUgKzExMywxNCBAQCB2b2lkIFBvcHVwTWVudU1hYzo6cG9wdWxhdGUoKQogICAgICAg
ICBbbWVudUl0ZW0gc2V0RW5hYmxlZDptX2NsaWVudC0+aXRlbUlzRW5hYmxlZChpKV07CiAgICAg
ICAgIFttZW51SXRlbSBzZXRUb29sVGlwOm1fY2xpZW50LT5pdGVtVG9vbFRpcChpKV07CiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgLy8gQWxsb3cgdGhlIGFjY2Vzc2libGUgdGV4
dCBvZiB0aGUgaXRlbSB0byBiZSBvdmVycmlkZGVuIGlmIG5lY2Vzc2FyeS4KICAgICAgICAgaWYg
KEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKICAgICAgICAgICAgIE5T
U3RyaW5nICphY2Nlc3NpYmlsaXR5T3ZlcnJpZGUgPSBtX2NsaWVudC0+aXRlbUFjY2Vzc2liaWxp
dHlUZXh0KGkpOwogICAgICAgICAgICAgaWYgKFthY2Nlc3NpYmlsaXR5T3ZlcnJpZGUgbGVuZ3Ro
XSkKICAgICAgICAgICAgICAgICBbbWVudUl0ZW0gYWNjZXNzaWJpbGl0eVNldE92ZXJyaWRlVmFs
dWU6YWNjZXNzaWJpbGl0eU92ZXJyaWRlIGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlEZXNj
cmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJB
bHRlcm5hdGl2ZVRleHRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oCmluZGV4IGM4ZDMzZWIxODlhNmYzMWQ1
Y2NiZGUxOGVkNTdiNmZlNTRjZmY3ZDQuLjMwNmRlNTUyODg3OTBlNmVjZjhhNWZjOTQ5ODhmNjc5
NTIxOThjZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oCkBAIC01MCwxNCAr
NTAsMTEgQEAgcHVibGljOgogI2VuZGlmCiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPUykKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jaWYgZGVmaW5lZChfX2hhc193YXJuaW5nKSAm
JiBfX2hhc193YXJuaW5nKCItV3VudXNlZC1wcml2YXRlLWZpZWxkIikKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wcml2YXRlLWZpZWxkIgotI2VuZGlmCitJR05P
UkVfQ0xBTkdfV0FSTklOR19CRUdJTigiLVd1bnVzZWQtcHJpdmF0ZS1maWVsZCIpCiAjZW5kaWYK
ICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CiAjaWYgUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAjZW5kaWYKICNpZiBV
U0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpCiAgICAgQ29ycmVjdGlvblBhbmVsIG1fY29ycmVjdGlv
blBhbmVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRHJhZ0NsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQubW0KaW5kZXggYTU5MjRmNDdlMDY3MmNlNmE1NDQxOTg4MTQwNTdh
NmY3ZDY4ZGNlMi4uYTRjYzZhZjI3YTgyYWU3YmU2MDYwNzUwYjU1MTM4OGMwMWFhYjI4YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0Ns
aWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJE
cmFnQ2xpZW50Lm1tCkBAIC0xMzMsMTAgKzEzMyw5IEBAIHZvaWQgV2ViRHJhZ0NsaWVudDo6c3Rh
cnREcmFnKERyYWdJdGVtIGRyYWdJdGVtLCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRnJh
CiAgICAgICAgICAgICBSZXBvcnREaXNjYXJkZWREZWxlZ2F0ZUV4Y2VwdGlvbihzZWxlY3Rvciwg
ZXhjZXB0aW9uKTsKICAgICAgICAgfQogICAgIH0gZWxzZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgICAgICBbdG9wSFRNTFZpZXcgZHJhZ0ltYWdlOmRyYWdOU0ltYWdlIGF0OmRyYWdMb2Nh
dGlvbkluQ29udGVudENvb3JkaW5hdGVzIG9mZnNldDpOU1plcm9TaXplIGV2ZW50OmV2ZW50IHBh
c3RlYm9hcmQ6cGFzdGVib2FyZCBzb3VyY2U6c291cmNlSFRNTFZpZXcgc2xpZGVCYWNrOllFU107
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogfQogCiB2b2lkIFdlYkRyYWdDbGllbnQ6OmJlZ2luRHJhZyhEcmFn
SXRlbSBkcmFnSXRlbSwgRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRQb2ludCYgbW91c2VEb3duUG9z
aXRpb24sIGNvbnN0IEludFBvaW50JiBtb3VzZURyYWdnZWRQb3NpdGlvbiwgRGF0YVRyYW5zZmVy
JiBkYXRhVHJhbnNmZXIsIERyYWdTb3VyY2VBY3Rpb24gZHJhZ1NvdXJjZUFjdGlvbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggOWI5MTA3ZGZmMjg0Zjg5YzU4NzIwNGQ2YjE2M2Vl
MzhkNGRjZWViNi4uMjM1YzYyN2Y3MzczM2RhMWIwMDE1OWFlMDRmMDU1ZDQwYTE0Nzc0YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTMwOCwxMCArMzA4LDkgQEAgdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3Vt
ZW50TG9hZGVyKiBkb2MKIAogICAgIGlmICghbWFpblJlc291cmNlTG9hZGVyKSB7CiAgICAgICAg
IC8vIFRoZSByZXNvdXJjZSBoYXMgYWxyZWFkeSBiZWVuIGNhY2hlZCwgb3IgdGhlIGNvbnZlcnNp
b24gaXMgYmVpbmcgYXR0bXB0ZWQgd2hlbiBub3QgY2FsbGluZyBTdWJyZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKCkuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFdl
YkRvd25sb2FkICp3ZWJEb3dubG9hZCA9IFtbV2ViRG93bmxvYWQgYWxsb2NdIGluaXRXaXRoUmVx
dWVzdDpyZXF1ZXN0Lm5zVVJMUmVxdWVzdChIVFRQQm9keVVwZGF0ZVBvbGljeTo6VXBkYXRlSFRU
UEJvZHkpIGRlbGVnYXRlOlt3ZWJWaWV3IGRvd25sb2FkRGVsZWdhdGVdXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAgICAgICAgIFt3ZWJEb3dubG9hZCBhdXRvcmVsZWFzZV07CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC0yMzQ1LDEwICsyMzQ0LDkgQEAgc3RhdGljIE5TSW1hZ2UgKndlYkdldE5TSW1h
Z2UoSW1hZ2UqIGltYWdlLCBOU1NpemUgc2l6ZSkKICAgICBpZiAoIW5zSW1hZ2UpCiAgICAgICAg
IHJldHVybiBuaWw7CiAgICAgaWYgKCFOU0VxdWFsU2l6ZXMoW25zSW1hZ2Ugc2l6ZV0sIHNpemUp
KSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFtuc0ltYWdlIHNldFNjYWxlc1do
ZW5SZXNpemVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBbbnNJbWFnZSBzZXRTaXpl
OnNpemVdOwogICAgIH0KICAgICByZXR1cm4gbnNJbWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KaW5kZXgg
OTFiNjViZWM5NGJmODk0ZjQxNjU0YmU5NGJlZGEzMzFkOWVlZWQ5MC4uYzhiYTdmYjQxMmJkYzBk
Mzg3N2Q5ZWJkNDdmMTFlMmViZWM2NzdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KQEAgLTI2NiwxMCAr
MjY2LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgQVNTRVJUKFtfdGFyZ2V0Vmll
dyB3aW5kb3ddKTsKIAogICAgIE5TUmVjdCBoaWdobGlnaHRXaW5kb3dGcmFtZSA9IFtfdGFyZ2V0
VmlldyBjb252ZXJ0UmVjdDpbX3RhcmdldFZpZXcgdmlzaWJsZVJlY3RdIHRvVmlldzpuaWxdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgaGlnaGxpZ2h0V2luZG93RnJhbWUub3JpZ2luID0gW1tf
dGFyZ2V0VmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46aGlnaGxpZ2h0V2luZG93RnJh
bWUub3JpZ2luXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIHJldHVybiBoaWdobGlnaHRXaW5kb3dGcmFt
ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9X
ZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3Bl
Y3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbQppbmRleCBlN2NkNWU0NjJkZjI2OGZhZDIwNmRk
YTUxMmRkNTMzMzUzYjE5MDQ2Li5hNWE1MGNlY2E1MjExNWQzOTI0MDU4YTQ4MDJmZWE3NmFjMWQw
ZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2Vi
Tm9kZUhpZ2hsaWdodFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5z
cGVjdG9yL1dlYk5vZGVIaWdobGlnaHRWaWV3Lm1tCkBAIC05OCwxMCArOTgsOSBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogICAgICAgICBBU1NFUlQoW1tOU0dyYXBoaWNzQ29udGV4dCBj
dXJyZW50Q29udGV4dF0gaXNGbGlwcGVkXSk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICAgICAgR3JhcGhpY3NDb250ZXh0IGNvbnRleHQoKFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0Kilb
W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgICAgIFtfd2ViTm9kZUhpZ2hsaWdodCBpbnNwZWN0b3JDb250cm9sbGVy
XS0+ZHJhd0hpZ2hsaWdodChjb250ZXh0KTsKICAgICAgICAgW05TR3JhcGhpY3NDb250ZXh0IHJl
c3RvcmVHcmFwaGljc1N0YXRlXTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJDbGlwVmlldy5tbQppbmRleCA1ZmQ1YzE0MjcwMmIxODZlYTk0MDdmMzhmYzBl
M2M5MzZiNDdiNDZhLi43ZjU1MjRhMzQ1Y2ZiNWEyZWY3YjEzNGMxMWJkODA2MGZmMzEwYWNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViQ2xpcFZpZXcubW0KQEAg
LTY2LDggKzY2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgaWYgKCFzZWxmKQog
ICAgICAgICByZXR1cm4gbmlsOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBJbiBXZWJI
VE1MVmlldywgd2Ugc2V0IGEgY2xpcC4gVGhpcyBpcyBub3QgdHlwaWNhbCB0byBkbyBpbiBhbgog
ICAgIC8vIE5TVmlldywgYW5kIHdoaWxlIGNvcnJlY3QgZm9yIGFueSBvbmUgaW52b2NhdGlvbiBv
ZiBkcmF3UmVjdDosCiAgICAgLy8gaXQgY2F1c2VzIHNvbWUgYmFkIHByb2JsZW1zIGlmIHRoYXQg
Y2xpcCBpcyBjYWNoZWQgYmV0d2VlbiBjYWxscy4KQEAgLTc4LDcgKzc3LDcgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAgICAgLy8gU2VlIHRoZXNlIGJ1Z3MgZm9yIG1vcmUgaW5mb3JtYXRp
b246CiAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzM0MDkzMTU+OiBSRUdSRVNTU0lPTiAoN0I1OC03
QjYwKT86IFNhZmFyaSBkcmF3cyBibGFuayBmcmFtZXMgb24gbWFjb3N4LmFwcGxlLmNvbSBwZXJm
IHBhZ2UKICAgICBbc2VsZiByZWxlYXNlR1N0YXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIHJldHVy
biBzZWxmOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0K
aW5kZXggODYwZGIyOTBlMTBmYzJjYjI1Y2RmOTE2NDAyYWRiN2NjZTljZjc5NC4uOTZjZWJiZWY5
NDM4OWViMmI1ZmViZTRmNTU4OGZjYTlmODYyMzk4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC00NDMsMTAgKzQ0Myw5IEBAIHN0YXRpYyBOU1VS
TCAqY3JlYXRlVW5pcXVlV2ViRGF0YVVSTCgpOwogICAgICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3
ID0gZnJhbWUtPnZpZXcoKSkgewogICAgICAgICAgICAgdmlldy0+c2V0VHJhbnNwYXJlbnQoIWRy
YXdzQmFja2dyb3VuZCk7CiAjaWYgIVBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgICAgICAgICBDb2xvciBjb2xvciA9IGNvbG9yRnJvbU5TQ29sb3IoW2JhY2tn
cm91bmRDb2xvciBjb2xvclVzaW5nQ29sb3JTcGFjZU5hbWU6TlNEZXZpY2VSR0JDb2xvclNwYWNl
XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbHNlCiAgICAgICAgICAgICBDb2xvciBjb2xvciA9
IENvbG9yKGJhY2tncm91bmRDb2xvcik7CiAjZW5kaWYKQEAgLTYyMiwxMCArNjIxLDkgQEAgc3Rh
dGljIGlubGluZSBXZWJEYXRhU291cmNlICpkYXRhU291cmNlKERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIpCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBBU1NFUlQoW1tOU0dyYXBoaWNzQ29udGV4dCBj
dXJyZW50Q29udGV4dF0gaXNGbGlwcGVkXSk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENH
Q29udGV4dFJlZiBjdHggPSBzdGF0aWNfY2FzdDxDR0NvbnRleHRSZWY+KFtbTlNHcmFwaGljc0Nv
bnRleHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogI2Vsc2UK
ICAgICBDR0NvbnRleHRSZWYgY3R4ID0gV0tHZXRDdXJyZW50R3JhcGhpY3NDb250ZXh0KCk7CiAj
ZW5kaWYKQEAgLTIyMDcsMTAgKzIyMDUsOSBAQCBzdGF0aWMgV2ViRnJhbWVMb2FkVHlwZSB0b1dl
YkZyYW1lTG9hZFR5cGUoRnJhbWVMb2FkVHlwZSBmcmFtZUxvYWRUeXBlKQogICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgewogICAgICAgICBBWE9iamVjdENh
Y2hlOjplbmFibGVBY2Nlc3NpYmlsaXR5KCk7CiAjaWYgIVBMQVRGT1JNKElPUykKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICAgICAgQVhPYmplY3RDYWNoZTo6c2V0RW5oYW5jZWRVc2VySW50
ZXJmYWNlQWNjZXNzaWJpbGl0eShbW05TQXBwIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpO
U0FjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VBdHRyaWJ1dGVdIGJvb2xWYWx1ZV0p
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZgogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1t
CmluZGV4IDc1M2RjZWIyOGQzMGU2YTkwZjQwMTdkOWYwMWUzZDRlZGZmZjE1MzkuLjVlYTIzMzkz
YmZlNzM3YzA2YzI0ZTA0MmUwZTBlMWQ0MjJkYjk3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQpA
QCAtMjA3LDExICsyMDcsMTAgQEAgc3RhdGljIE5TUmVjdCBjb252ZXJ0UmVjdFRvU2NyZWVuKE5T
V2luZG93ICp3aW5kb3csIE5TUmVjdCByZWN0KQogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiB3
ZWJWaWV3Q29udGVudHMgPSBhZG9wdENGKENHV2luZG93TGlzdENyZWF0ZUltYWdlKE5TUmVjdFRv
Q0dSZWN0KHdlYlZpZXdGcmFtZSksIGtDR1dpbmRvd0xpc3RPcHRpb25JbmNsdWRpbmdXaW5kb3cs
IHdpbmRvd0lELCBrQ0dXaW5kb3dJbWFnZVNob3VsZEJlT3BhcXVlKSk7CiAgICAgCiAgICAgLy8g
U2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBpbiBiZWdhbkVudGVyRnVsbFNjcmVlbldp
dGhJbml0aWFsRnJhbWU6ZmluYWxGcmFtZToKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TRGlz
YWJsZVNjcmVlblVwZGF0ZXMoKTsKICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpO
T107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAKICAgICBOU1Jlc3BvbmRlciAqd2ViV2luZG93Rmlyc3RSZXNwb25k
ZXIgPSBbW193ZWJWaWV3IHdpbmRvd10gZmlyc3RSZXNwb25kZXJdOwogICAgIFtbc2VsZiB3aW5k
b3ddIHNldEZyYW1lOnNjcmVlbkZyYW1lIGRpc3BsYXk6Tk9dOwpAQCAtMjY4LDExICsyNjcsMTAg
QEAgc3RhdGljIHZvaWQgc2V0Q2xpcFJlY3RGb3JXaW5kb3coTlNXaW5kb3cgKndpbmRvdywgTlNS
ZWN0IGNsaXBSZWN0KQogICAgIF9pc0VudGVyaW5nRnVsbFNjcmVlbiA9IE5POwogICAgIAogICAg
IGlmIChjb21wbGV0ZWQpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgLy8gU2Ny
ZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBhdCB0aGUgZW5kIG9mIHRoaXMgYmxvY2sKICAg
ICAgICAgTlNEaXNhYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAg
W3NlbGYgX2RvY3VtZW50XS0+c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihmYWxzZSk7CiAgICAgICAg
IFtzZWxmIF9kb2N1bWVudF0tPndlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoX2Vs
ZW1lbnQuZ2V0KCkpOwogICAgICAgICAKQEAgLTI5NCwxMCArMjkyLDkgQEAgc3RhdGljIHZvaWQg
c2V0Q2xpcFJlY3RGb3JXaW5kb3coTlNXaW5kb3cgKndpbmRvdywgTlNSZWN0IGNsaXBSZWN0KQog
ICAgICAgICAKICAgICAgICAgW19iYWNrZ3JvdW5kV2luZG93LmdldCgpIG9yZGVyT3V0OnNlbGZd
OwogICAgICAgICBbX2JhY2tncm91bmRXaW5kb3cuZ2V0KCkgc2V0RnJhbWU6TlNaZXJvUmVjdCBk
aXNwbGF5OllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIE5TRW5hYmxlU2Ny
ZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9IGVsc2UKICAgICAgICAgW19zY2Fs
ZUFuaW1hdGlvbi5nZXQoKSBzdG9wQW5pbWF0aW9uXTsKIH0KQEAgLTMxNSwxMiArMzEyLDExIEBA
IHN0YXRpYyB2b2lkIHNldENsaXBSZWN0Rm9yV2luZG93KE5TV2luZG93ICp3aW5kb3csIE5TUmVj
dCBjbGlwUmVjdCkKICAgICAgICAgcmV0dXJuOwogICAgIF9pc0Z1bGxTY3JlZW4gPSBOTzsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxl
ZCBpbiBiZWdhbkV4aXRGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTpmaW5hbEZyYW1lOgogICAg
IE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlz
cGxheTpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBfZmluYWxGcmFtZSA9IHNjcmVlblJlY3RPZkNv
bnRlbnRzKF9lbGVtZW50LmdldCgpKTsKIApAQCAtMzYwLDExICszNTYsMTAgQEAgc3RhdGljIHZv
aWQgc2V0Q2xpcFJlY3RGb3JXaW5kb3coTlNXaW5kb3cgKndpbmRvdywgTlNSZWN0IGNsaXBSZWN0
KQogICAgIAogICAgIFtzZWxmIF91cGRhdGVNZW51QW5kRG9ja0ZvckZ1bGxTY3JlZW5dOwogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBTY3JlZW4gdXBkYXRlcyB0byBiZSByZS1lbmFibGVk
IGF0IHRoZSBlbmQgb2YgdGhpcyBmdW5jdGlvbgogICAgIE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMo
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIAogICAgIFtzZWxmIF9kb2N1bWVudF0tPnNldEFuaW1hdGluZ0Z1bGxT
Y3JlZW4oZmFsc2UpOwogICAgIFtzZWxmIF9kb2N1bWVudF0tPndlYmtpdERpZEV4aXRGdWxsU2Ny
ZWVuRm9yRWxlbWVudChfZWxlbWVudC5nZXQoKSk7CkBAIC0zOTEsMTAgKzM4Niw5IEBAIHN0YXRp
YyB2b2lkIHNldENsaXBSZWN0Rm9yV2luZG93KE5TV2luZG93ICp3aW5kb3csIE5TUmVjdCBjbGlw
UmVjdCkKIAogICAgIFtbX3dlYlZpZXcgd2luZG93XSBtYWtlS2V5QW5kT3JkZXJGcm9udDpzZWxm
XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNFbmFibGVTY3JlZW5VcGRhdGVzKCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiB9CiAKIC0gKHZvaWQpcGVyZm9ybUNsb3NlOihpZClzZW5kZXIKQEAgLTUxMywx
MCArNTA3LDkgQEAgc3RhdGljIE5TUmVjdCB3aW5kb3dGcmFtZUZyb21BcHBhcmVudEZyYW1lcyhO
U1JlY3Qgc2NyZWVuRnJhbWUsIE5TUmVjdCBpbml0aWFsRnIKICAgICAKICAgICAvLyBzZXRDbGlw
UmVjdEZvcldpbmRvdyB0YWtlcyB3aW5kb3cgY29vcmRpbmF0ZXMsIHNvIGNvbnZlcnQgZnJvbSBz
Y3JlZW4gY29vcmRpbmF0ZXMgaGVyZToKICAgICBOU1JlY3QgZmluYWxCb3VuZHMgPSBfZmluYWxG
cmFtZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGZpbmFsQm91bmRzLm9yaWdpbiA9IFtbc2Vs
ZiB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6ZmluYWxCb3VuZHMub3JpZ2luXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICBzZXRDbGlwUmVjdEZvcldpbmRvdyhzZWxmLndpbmRvdywgZmluYWxCb3VuZHMp
OwogICAgIAogICAgIFtbc2VsZiB3aW5kb3ddIG1ha2VLZXlBbmRPcmRlckZyb250OnNlbGZdOwpA
QCAtNTQzLDE2ICs1MzYsMTQgQEAgc3RhdGljIE5TUmVjdCB3aW5kb3dGcmFtZUZyb21BcHBhcmVu
dEZyYW1lcyhOU1JlY3Qgc2NyZWVuRnJhbWUsIE5TUmVjdCBpbml0aWFsRnIKICAgICAKICAgICBb
X2JhY2tncm91bmRXaW5kb3cuZ2V0KCkgb3JkZXJXaW5kb3c6TlNXaW5kb3dCZWxvdyByZWxhdGl2
ZVRvOltbc2VsZiB3aW5kb3ddIHdpbmRvd051bWJlcl1dOwogICAgIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICBbW3NlbGYgd2luZG93XSBkaXNwbGF5SWZOZWVkZWRdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgZGlzYWJsZWQgaW4gZW50ZXJGdWxsU2NyZWVuOgogICAg
IE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAtICh2b2lkKV9zdGFy
dEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJh
dGlvbgpAQCAtNTkxLDIzICs1ODIsMjAgQEAgc3RhdGljIE5TUmVjdCB3aW5kb3dGcmFtZUZyb21B
cHBhcmVudEZyYW1lcyhOU1JlY3Qgc2NyZWVuRnJhbWUsIE5TUmVjdCBpbml0aWFsRnIKICAgICAK
ICAgICAvLyBzZXRDbGlwUmVjdEZvcldpbmRvdyB0YWtlcyB3aW5kb3cgY29vcmRpbmF0ZXMsIHNv
IGNvbnZlcnQgZnJvbSBzY3JlZW4gY29vcmRpbmF0ZXMgaGVyZToKICAgICBOU1JlY3QgZmluYWxC
b3VuZHMgPSBfZmluYWxGcmFtZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGZpbmFsQm91bmRz
Lm9yaWdpbiA9IFtbc2VsZiB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6ZmluYWxCb3VuZHMu
b3JpZ2luXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBzZXRDbGlwUmVjdEZvcldpbmRvdyhzZWxmLndpbmRv
dywgZmluYWxCb3VuZHMpOwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1tzZWxmIHdp
bmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbW3NlbGYgd2luZG93
XSBkaXNwbGF5SWZOZWVkZWRdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBTY3JlZW4g
dXBkYXRlcyBkaXNhYmxlZCBpbiBleGl0RnVsbFNjcmVlbjoKICAgICBOU0VuYWJsZVNjcmVlblVw
ZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggNmE3YjE0MGJkODVkM2YxM2RlNDFjNmRi
ZmU1MmEzYzQ0OGQ0NTI1My4uM2Q1MDA5ZGEzMWZjMjEyMGY3ZmFkM2RkZDQzMWE4ZGVkZmVkNzBk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
CkBAIC02MjQsMTAgKzYyNCw5IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE5TSW50ZWdlcj4gdG9U
YWcoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogCiAtIChOU1ZpZXcgKilfd2ViX2JvcmRlclZp
ZXcKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBfYm9yZGVyVmlldzsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIH0KIAogQGVuZApAQCAtMTQ5NCwxMCArMTQ5Myw5IEBAIHN0YXRpYyBOU0NvbnRyb2xT
dGF0ZVZhbHVlIGtpdChUcmlTdGF0ZSBzdGF0ZSkKIHsKICAgICBOU0V2ZW50ICpmYWtlRXZlbnQg
PSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCiAgICAg
ICAgIGxvY2F0aW9uOltbc2VsZiB3aW5kb3ddCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBjb252
ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAg
IG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdCiAgICAg
ICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0KICAg
ICAgICAgd2luZG93TnVtYmVyOltbc2VsZiB3aW5kb3ddIHdpbmRvd051bWJlcl0KQEAgLTE1Mzgs
MTkgKzE1MzYsMTcgQEAgc3RhdGljIE5TQ29udHJvbFN0YXRlVmFsdWUga2l0KFRyaVN0YXRlIHN0
YXRlKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICBBU1NFUlQoIV9wcml2YXRlLT5zdWJ2aWV3c1Nl
dEFzaWRlKTsKICAgICBBU1NFUlQoX3ByaXZhdGUtPnNhdmVkU3Vidmlld3MgPT0gbmlsKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIF9wcml2YXRlLT5zYXZlZFN1YnZpZXdzID0gX3N1YnZpZXdz
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgIC8vIFdlIG5lZWQgdG8ga2VlcCB0aGUgbGF5ZXItaG9zdGluZyB2
aWV3IGluIHRoZSBzdWJ2aWV3cywgb3RoZXJ3aXNlIHRoZSBsYXllcnMgZmxhc2guCiAgICAgaWYg
KF9wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3KSB7CiAgICAgICAgIE5TQXJyYXkqIG5ld1N1YnZp
ZXdzID0gW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6X3ByaXZhdGUtPmxheWVySG9z
dGluZ1ZpZXcsIG5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIF9zdWJ2aWV3
cyA9IG5ld1N1YnZpZXdzOwogICAgIH0gZWxzZQogICAgICAgICBfc3Vidmlld3MgPSBuaWw7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgX3ByaXZhdGUtPnN1YnZpZXdzU2V0QXNpZGUgPSBZRVM7CiAjZW5kaWYK
ICB9CkBAIC0xNTYwLDE0ICsxNTU2LDEzIEBAIHN0YXRpYyBOU0NvbnRyb2xTdGF0ZVZhbHVlIGtp
dChUcmlTdGF0ZSBzdGF0ZSkKICNpZiBQTEFURk9STShNQUMpCiAgICAgQVNTRVJUKF9wcml2YXRl
LT5zdWJ2aWV3c1NldEFzaWRlKTsKICAgICBpZiAoX3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcp
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgW19zdWJ2aWV3cyByZWxlYXNlXTsK
ICAgICAgICAgX3N1YnZpZXdzID0gX3ByaXZhdGUtPnNhdmVkU3Vidmlld3M7CiAgICAgfSBlbHNl
IHsKICAgICAgICAgQVNTRVJUKF9zdWJ2aWV3cyA9PSBuaWwpOwogICAgICAgICBfc3Vidmlld3Mg
PSBfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3czsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQogICAgIF9w
cml2YXRlLT5zYXZlZFN1YnZpZXdzID0gbmlsOwogICAgIF9wcml2YXRlLT5zdWJ2aWV3c1NldEFz
aWRlID0gTk87CkBAIC0yMTEwLDEwICsyMTA1LDkgQEAgc3RhdGljIGJvb2wgbW91c2VFdmVudElz
UGFydE9mQ2xpY2tPckRyYWcoTlNFdmVudCAqZXZlbnQpCiAKICAgICBOU0V2ZW50ICpmYWtlRXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEcmFn
Z2VkCiAgICAgICAgIGxvY2F0aW9uOltbc2VsZiB3aW5kb3ddCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W1tOU0FwcCBjdXJyZW50RXZlbnRdIG1vZGlmaWVyRmxh
Z3NdCiAgICAgICAgIHRpbWVzdGFtcDpbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNl
RGF0ZV0KICAgICAgICAgd2luZG93TnVtYmVyOltbc2VsZiB3aW5kb3ddIHdpbmRvd051bWJlcl0K
QEAgLTM5ODIsMTAgKzM5NzYsOSBAQCBzdGF0aWMgQk9PTCBjdXJyZW50U2Nyb2xsSXNCbGl0KE5T
VmlldyAqY2xpcFZpZXcpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIC8vIE9ubHkgZG8gdGhlIHN5
bmNocm9uaXphdGlvbiBkYW5jZSBpZiB3ZSdyZSBkcmF3aW5nIGludG8gdGhlIHdpbmRvdywgb3Ro
ZXJ3aXNlCiAgICAgLy8gd2UgcmlzayBkaXNhYmxpbmcgc2NyZWVuIHVwZGF0ZXMgd2hlbiBubyBm
bHVzaCBpcyBwZW5kaW5nLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKFtOU0dyYXBoaWNz
Q29udGV4dCBjdXJyZW50Q29udGV4dF0gPT0gW1tzZWxmIHdpbmRvd10gZ3JhcGhpY3NDb250ZXh0
XSAmJiBbd2ViVmlldyBfbmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbl0pIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAgICAgICAgIC8vIERpc2FibGUgc2NyZWVuIHVwZGF0ZXMgdG8gbWluaW1p
emUgdGhlIGNoYW5jZXMgb2YgdGhlIHJhY2UgYmV0d2VlbiB0aGUgQ0EKICAgICAgICAgLy8gZGlz
cGxheSBsaW5rIGFuZCBBcHBLaXQgZHJhd2luZyBjYXVzaW5nIGZsYXNoZXMuCiAgICAgICAgIFtb
c2VsZiB3aW5kb3ddIGRpc2FibGVTY3JlZW5VcGRhdGVzVW50aWxGbHVzaF07CkBAIC00MjE3LDEy
ICs0MjEwLDExIEBAIHN0YXRpYyBCT09MIGN1cnJlbnRTY3JvbGxJc0JsaXQoTlNWaWV3ICpjbGlw
VmlldykKICAgICBpZiAoRnJhbWUqIGNvcmVmcmFtZSA9IGNvcmUoW3NlbGYgX2ZyYW1lXSkpCiAg
ICAgICAgIGNvcmVmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubW91c2VEb3duKGV2ZW50KTsKICNlbHNl
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0lucHV0TWFuYWdlciAqY3VycmVudElucHV0TWFu
YWdlciA9IFtOU0lucHV0TWFuYWdlciBjdXJyZW50SW5wdXRNYW5hZ2VyXTsKIAogICAgIGlmICgh
W2N1cnJlbnRJbnB1dE1hbmFnZXIgd2FudHNUb0hhbmRsZU1vdXNlRXZlbnRzXSB8fCAhW2N1cnJl
bnRJbnB1dE1hbmFnZXIgaGFuZGxlTW91c2VFdmVudDpldmVudF0pIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgICAgIFtfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZW5kUmV2ZXJ0aW5nQ2hh
bmdlOk5PIG1vdmVMZWZ0Ok5PXTsKIAogICAgICAgICAvLyBJZiB0aGUgd2ViIHBhZ2UgaGFuZGxl
cyB0aGUgY29udGV4dCBtZW51IGV2ZW50IGFuZCBtZW51Rm9yRXZlbnQ6IHJldHVybnMgbmlsLCB3
ZSdsbCBnZXQgY29udHJvbCBjbGljayBldmVudHMgaGVyZS4KQEAgLTQyNzcsMTIgKzQyNjksMTEg
QEAgc3RhdGljIEJPT0wgY3VycmVudFNjcm9sbElzQmxpdChOU1ZpZXcgKmNsaXBWaWV3KQogICAg
IC8vIHRoZSBjdXJyZW50IGV2ZW50IHByZXZlbnRzIHRoYXQgZnJvbSBjYXVzaW5nIGEgcHJvYmxl
bSBpbnNpZGUgV2ViS2l0IG9yIEFwcEtpdCBjb2RlLgogICAgIFtbZXZlbnQgcmV0YWluXSBhdXRv
cmVsZWFzZV07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TSW5wdXRNYW5hZ2VyICpjdXJy
ZW50SW5wdXRNYW5hZ2VyID0gW05TSW5wdXRNYW5hZ2VyIGN1cnJlbnRJbnB1dE1hbmFnZXJdOwog
ICAgIGlmIChbY3VycmVudElucHV0TWFuYWdlciB3YW50c1RvSGFuZGxlTW91c2VFdmVudHNdICYm
IFtjdXJyZW50SW5wdXRNYW5hZ2VyIGhhbmRsZU1vdXNlRXZlbnQ6ZXZlbnRdKQogICAgICAgICBy
ZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBbc2VsZiByZXRhaW5dOwogCkBAIC00NDQ3LDEyICs0
NDM4LDExIEBAIHN0YXRpYyBib29sIG1hdGNoZXNFeHRlbnNpb25PckVxdWl2YWxlbnQoTlNTdHJp
bmcgKmZpbGVuYW1lLCBOU1N0cmluZyAqZXh0ZW5zaW9uCiAgICAgW3NlbGYgX3NldE1vdXNlRG93
bkV2ZW50Om5pbF07CiAKICNpZiBQTEFURk9STShNQUMpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICBOU0lucHV0TWFuYWdlciAqY3VycmVudElucHV0TWFuYWdlciA9IFtOU0lucHV0TWFuYWdlciBj
dXJyZW50SW5wdXRNYW5hZ2VyXTsKICAgICBpZiAoW2N1cnJlbnRJbnB1dE1hbmFnZXIgd2FudHNU
b0hhbmRsZU1vdXNlRXZlbnRzXSAmJiBbY3VycmVudElucHV0TWFuYWdlciBoYW5kbGVNb3VzZUV2
ZW50OmV2ZW50XSkKICAgICAgICAgcmV0dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogI2VuZGlmCiAKICAgICBb
c2VsZiByZXRhaW5dOwpAQCAtNDgwNCwxMCArNDc5NCw5IEBAIHN0YXRpYyBSZWZQdHI8S2V5Ym9h
cmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKIC0gKHZvaWQp
X2VuZFByaW50TW9kZUFuZFJlc3RvcmVXaW5kb3dBdXRvZGlzcGxheQogewogICAgIFtzZWxmIF9l
bmRQcmludE1vZGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1tzZWxmIHdpbmRvd10gc2V0
QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogLSAodm9pZClfZGVsYXllZEVuZFBy
aW50TW9kZTooTlNQcmludE9wZXJhdGlvbiAqKWluaXRpYXRpbmdPcGVyYXRpb24KQEAgLTQ4NDIs
MTAgKzQ4MzEsOSBAQCBzdGF0aWMgUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2Fy
ZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAgICAgLy8gTXVzdCBkbyB0aGlzIGV4cGxpY2l0IGRp
c3BsYXkgaGVyZSwgYmVjYXVzZSBvdGhlcndpc2UgdGhlIHZpZXcgbWlnaHQgcmVkaXNwbGF5IHdo
aWxlIHRoZSBwcmludAogICAgIC8vIHNoZWV0IHdhcyB1cCwgdXNpbmcgcHJpbnRlciBmb250cyAo
YW5kIGxvb2tpbmcgZGlmZmVyZW50KS4KICAgICBbc2VsZiBkaXNwbGF5SWZOZWVkZWRdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6Tk9dOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogCiAgICAgW1tzZWxmIF93ZWJWaWV3XSBfYWRqdXN0UHJpbnRpbmdNYXJnaW5z
Rm9ySGVhZGVyQW5kRm9vdGVyXTsKICAgICBOU1ByaW50T3BlcmF0aW9uICpwcmludE9wZXJhdGlv
biA9IFtOU1ByaW50T3BlcmF0aW9uIGN1cnJlbnRPcGVyYXRpb25dOwpAQCAtNTAzMywxMCArNTAy
MSw5IEBAIHN0YXRpYyBSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQo
RnJhbWUqIGNvcmVGcmFtZSkKICNpZiBQTEFURk9STShJT1MpCiAgICAgICAgIHJldHVybiBbYWNj
VHJlZSBhY2Nlc3NpYmlsaXR5SGl0VGVzdDpwb2ludF07CiAjZWxzZQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgICAgICBOU1BvaW50IHdpbmRvd0Nvb3JkID0gW1tzZWxmIHdpbmRvd10gY29u
dmVydFNjcmVlblRvQmFzZTpwb2ludF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICByZXR1cm4g
W2FjY1RyZWUgYWNjZXNzaWJpbGl0eUhpdFRlc3Q6W3NlbGYgY29udmVydFBvaW50OndpbmRvd0Nv
b3JkIGZyb21WaWV3Om5pbF1dOwogI2VuZGlmCiAgICAgfQpAQCAtNTA3NCwxMCArNTA2MSw5IEBA
IHN0YXRpYyBSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUq
IGNvcmVGcmFtZSkKIAogLSAoTlNEaWN0aW9uYXJ5ICopX2ZvbnRBdHRyaWJ1dGVzRnJvbUZvbnRQ
YXN0ZWJvYXJkCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU1Bhc3RlYm9hcmQgKmZvbnRQ
YXN0ZWJvYXJkID0gW05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6TlNGb250UGJvYXJk
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICAgICBpZiAoZm9udFBhc3RlYm9hcmQgPT0gbmlsKQogICAgICAgICBy
ZXR1cm4gbmlsOwogICAgIE5TRGF0YSAqZGF0YSA9IFtmb250UGFzdGVib2FyZCBkYXRhRm9yVHlw
ZTpsZWdhY3lGb250UGFzdGVib2FyZFR5cGUoKV07CkBAIC01MTAxLDEwICs1MDg3LDkgQEAgc3Rh
dGljIFJlZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVudChGcmFtZSogY29y
ZUZyYW1lKQogCiAtIChOU1N0cmluZyAqKV9jb2xvckFzU3RyaW5nOihOU0NvbG9yICopY29sb3IK
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TQ29sb3IgKnJnYkNvbG9yID0gW2NvbG9yIGNv
bG9yVXNpbmdDb2xvclNwYWNlTmFtZTpOU0RldmljZVJHQkNvbG9yU3BhY2VdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogICAgIC8vIEZJWE1FOiBJZiBjb2xvciBpcyBub24tbmlsIGFuZCByZ2JDb2xvciBpcyBuaWws
IHRoYXQgbWVhbnMgd2UgZ290IHNvbWUga2luZAogICAgIC8vIG9mIGZhbmN5IGNvbG9yIHRoYXQg
Y2FuJ3QgYmUgY29udmVydGVkIHRvIFJHQi4gQ2hhbmdpbmcgdGhhdCB0byAidHJhbnNwYXJlbnQi
CiAgICAgLy8gbWlnaHQgbm90IGJlIGdyZWF0LCBidXQgaXQncyBwcm9iYWJseSBPSy4KQEAgLTUy
ODEsMTAgKzUyNjYsOSBAQCBzdGF0aWMgUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXli
b2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAKICAgICAvLyBQdXQgUlRGIHdpdGggZm9udCBh
dHRyaWJ1dGVzIG9uIHRoZSBwYXN0ZWJvYXJkLgogICAgIC8vIE1heWJlIGxhdGVyIHdlIHNob3Vs
ZCBhZGQgYSBwYXN0ZWJvYXJkIHR5cGUgdGhhdCBjb250YWlucyBDU1MgdGV4dCBmb3IgIm5hdGl2
ZSIgY29weSBhbmQgcGFzdGUgZm9udC4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU1Bh
c3RlYm9hcmQgKmZvbnRQYXN0ZWJvYXJkID0gW05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5h
bWU6TlNGb250UGJvYXJkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbZm9udFBhc3RlYm9hcmQgZGVjbGFy
ZVR5cGVzOltOU0FycmF5IGFycmF5V2l0aE9iamVjdDpsZWdhY3lGb250UGFzdGVib2FyZFR5cGUo
KV0gb3duZXI6bmlsXTsKICAgICBbZm9udFBhc3RlYm9hcmQgc2V0RGF0YTpbc2VsZiBfc2VsZWN0
aW9uU3RhcnRGb250QXR0cmlidXRlc0FzUlRGXSBmb3JUeXBlOmxlZ2FjeUZvbnRQYXN0ZWJvYXJk
VHlwZSgpXTsKIH0KQEAgLTYxMjAsMTUgKzYxMDQsMTQgQEAgc3RhdGljIEJPT0wgd3JpdGluZ0Rp
cmVjdGlvbktleUJpbmRpbmdzRW5hYmxlZCgpCiAgICAgY29uc3QgVmVjdG9yPEtleXByZXNzQ29t
bWFuZD4mIGNvbW1hbmRzID0gcGFyYW1ldGVycy0+ZXZlbnQtPmtleXByZXNzQ29tbWFuZHMoKTsK
IAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY29tbWFuZHMuc2l6ZSgpOyArK2kpIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgaWYgKGNvbW1hbmRzW2ldLmNvbW1hbmROYW1l
ID09ICJpbnNlcnRUZXh0OiIpCiAgICAgICAgICAgICBbc2VsZiBpbnNlcnRUZXh0OmNvbW1hbmRz
W2ldLnRleHRdOwogICAgICAgICBlbHNlIGlmIChjb21tYW5kc1tpXS5jb21tYW5kTmFtZSA9PSAi
bm9vcDoiKQogICAgICAgICAgICAgOyAvLyBEbyBub3RoaW5nLiBUaGlzIGNhc2UgY2FuIGJlIHJl
bW92ZWQgb25jZSA8cmRhcjovL3Byb2JsZW0vOTAyNTAxMj4gaXMgZml4ZWQuCiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIFtzZWxmIGRvQ29tbWFuZEJ5U2VsZWN0b3I6TlNTZWxlY3RvckZyb21T
dHJpbmcoY29tbWFuZHNbaV0uY29tbWFuZE5hbWUpXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQog
ICAgIHBhcmFtZXRlcnMtPmV2ZW50LT5rZXlwcmVzc0NvbW1hbmRzKCkuY2xlYXIoKTsKICAgICBw
YXJhbWV0ZXJzLT5zaG91bGRTYXZlQ29tbWFuZHMgPSB3YXNTYXZpbmdDb21tYW5kczsKQEAgLTYz
MjQsMTAgKzYzMDcsOSBAQCBzdGF0aWMgQk9PTCB3cml0aW5nRGlyZWN0aW9uS2V5QmluZGluZ3NF
bmFibGVkKCkKICAgICAgICAgLy8gSWYgd2UgYXJlIGluIGEgbGF5ZXItYmFja2VkIHZpZXcsIHdl
IG5lZWQgdG8gbWFudWFsbHkgaW5pdGlhbGl6ZSB0aGUgZ2VvbWV0cnkgZm9yIG91ciBsYXllci4K
ICAgICAgICAgW3ZpZXdMYXllciBzZXRCb3VuZHM6TlNSZWN0VG9DR1JlY3QoW19wcml2YXRlLT5s
YXllckhvc3RpbmdWaWV3IGJvdW5kc10pXTsKICAgICAgICAgW3ZpZXdMYXllciBzZXRBbmNob3JQ
b2ludDpDR1BvaW50TWFrZSgwLCBbc2VsZiBpc0ZsaXBwZWRdID8gMSA6IDApXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICAgICAgQ0dQb2ludCBsYXllclBvc2l0aW9uID0gTlNQb2ludFRv
Q0dQb2ludChbc2VsZiBjb252ZXJ0UG9pbnRUb0Jhc2U6W19wcml2YXRlLT5sYXllckhvc3RpbmdW
aWV3IGZyYW1lXS5vcmlnaW5dKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFt2aWV3TGF5ZXIg
c2V0UG9zaXRpb246bGF5ZXJQb3NpdGlvbl07CiAgICAgfQogICAgIApAQCAtNjQ1NywxMCArNjQz
OSw5IEBAIHN0YXRpYyBCT09MIHdyaXRpbmdEaXJlY3Rpb25LZXlCaW5kaW5nc0VuYWJsZWQoKQog
ICAgICAgICBMT0coVGV4dElucHV0LCAidGV4dFN0b3JhZ2UgLT4gbmlsIik7CiAgICAgICAgIHJl
dHVybiBuaWw7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNBdHRyaWJ1dGVkU3Ry
aW5nICpyZXN1bHQgPSBbc2VsZiBhdHRyaWJ1dGVkU3Vic3RyaW5nRnJvbVJhbmdlOk5TTWFrZVJh
bmdlKDAsIFVJTlRfTUFYKV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBMT0coVGV4dElucHV0LCAidGV4
dFN0b3JhZ2UgLT4gXCIlQFwiIiwgcmVzdWx0ID8gW3Jlc3VsdCBzdHJpbmddIDogQCIiKTsKICAg
ICAKQEAgLTY5MzksMTUgKzY5MjAsMTQgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMo
TlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKIAogICAg
IHVuc2lnbmVkIHN0YXJ0OwogICAgIHVuc2lnbmVkIGVuZDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIGlmIChjb3JlRnJhbWUtPmVkaXRvcigpLmdldENvbXBvc2l0aW9uU2VsZWN0aW9uKHN0YXJ0
LCBlbmQpKQogICAgICAgICBbW05TSW5wdXRNYW5hZ2VyIGN1cnJlbnRJbnB1dE1hbmFnZXJdIG1h
cmtlZFRleHRTZWxlY3Rpb25DaGFuZ2VkOk5TTWFrZVJhbmdlKHN0YXJ0LCBlbmQgLSBzdGFydCkg
Y2xpZW50OnNlbGZdOwogICAgIGVsc2UgewogICAgICAgICBjb3JlRnJhbWUtPmVkaXRvcigpLmNh
bmNlbENvbXBvc2l0aW9uKCk7CiAgICAgICAgIFtbTlNJbnB1dE1hbmFnZXIgY3VycmVudElucHV0
TWFuYWdlcl0gbWFya2VkVGV4dEFiYW5kb25lZDpzZWxmXTsKICAgICB9Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3
Lm1tCmluZGV4IDI0ZGFjOWUzYThmYjg5MzRhNjRkMTljYjFjZDMxYWI5MWNiN2ZkODUuLmQ1OTgx
YzA1NTJkMzdlOTZhNmVhMDNhNzQ3NjI3NThjODE0ODVjNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KQEAgLTEyNiwxMCArMTI2LDkgQEAgc3Rh
dGljIHZvaWQgX2FwcGxpY2F0aW9uSW5mb0Zvck1JTUVUeXBlKE5TU3RyaW5nICp0eXBlLCBOU1N0
cmluZyAqKm5hbWUsIE5TSW1hZ2UKIHsKICAgICBDRlVSTFJlZiBhcHBVUkwgPSBudWxscHRyOwog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBPU1N0YXR1cyBlcnJvciA9IExTQ29weUFwcGxpY2F0
aW9uRm9yTUlNRVR5cGUoKF9fYnJpZGdlIENGU3RyaW5nUmVmKXR5cGUsIGtMU1JvbGVzQWxsLCAm
YXBwVVJMKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBpZiAoZXJyb3IgIT0gbm9FcnIpCiAgICAgICAgIHJl
dHVybjsKICAgICAKQEAgLTIyNiwxMCArMjI1LDkgQEAgc3RhdGljIEJPT0wgX1BERlNlbGVjdGlv
bnNBcmVFcXVhbChQREZTZWxlY3Rpb24gKnNlbGVjdGlvbkEsIFBERlNlbGVjdGlvbiAqc2VsZWMK
IC0gKHZvaWQpY2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYTooaWQpc2VuZGVyCiB7CiAgICAg
Ly8gRklYTUU6IEdldCByaWQgb2YgdGhpcyBvbmNlIDxyZGFyOi8vcHJvYmxlbS8yNTE0OTI5ND4g
aGFzIGJlZW4gZml4ZWQuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9ubnVsbCIKKyAgICBBTExPV19OVUxMX0FSR1VN
RU5UX0JFR0lOCiAgICAgW1BERlN1YnZpZXcgc2Nyb2xsU2VsZWN0aW9uVG9WaXNpYmxlOm5pbF07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfTlVMTF9BUkdVTUVOVF9F
TkQKIH0KIAogLSAodm9pZClzY3JvbGxQYWdlRG93bjooaWQpc2VuZGVyCkBAIC0zNzAsMTAgKzM2
OCw5IEBAIHN0YXRpYyBCT09MIF9QREZTZWxlY3Rpb25zQXJlRXF1YWwoUERGU2VsZWN0aW9uICpz
ZWxlY3Rpb25BLCBQREZTZWxlY3Rpb24gKnNlbGVjCiAKIC0gKHZvaWQpX3JlY3Vyc2l2ZURpc3Bs
YXlSZWN0SWZOZWVkZWRJZ25vcmluZ09wYWNpdHk6KE5TUmVjdClyZWN0IGlzVmlzaWJsZVJlY3Q6
KEJPT0wpaXNWaXNpYmxlUmVjdCByZWN0SXNWaXNpYmxlUmVjdEZvclZpZXc6KE5TVmlldyAqKXZp
c2libGVWaWV3IHRvcFZpZXc6KEJPT0wpdG9wVmlldwogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSAoQ0dDb250ZXh0UmVmKVtbTlNHcmFwaGljc0NvbnRl
eHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgCiAgICAg
Ym9vbCBhbGxvd3NTbW9vdGhpbmcgPSBDR0NvbnRleHRHZXRBbGxvd3NGb250U21vb3RoaW5nKGNv
bnRleHQpOwogICAgIGJvb2wgYWxsb3dzU3VicGl4ZWxRdWFudGl6YXRpb24gPSBDR0NvbnRleHRH
ZXRBbGxvd3NGb250U3VicGl4ZWxRdWFudGl6YXRpb24oY29udGV4dCk7CkBAIC0zODYsMTAgKzM4
Myw5IEBAIHN0YXRpYyBCT09MIF9QREZTZWxlY3Rpb25zQXJlRXF1YWwoUERGU2VsZWN0aW9uICpz
ZWxlY3Rpb25BLCBQREZTZWxlY3Rpb24gKnNlbGVjCiAKIC0gKHZvaWQpX3JlY3Vyc2l2ZURpc3Bs
YXlBbGxEaXJ0eVdpdGhMb2NrRm9jdXM6KEJPT0wpbmVlZHNMb2NrRm9jdXMgdmlzUmVjdDooTlNS
ZWN0KXZpc1JlY3QKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENHQ29udGV4dFJlZiBjb250
ZXh0ID0gKENHQ29udGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBn
cmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIAogICAgIGJvb2wgYWxsb3dzU21vb3RoaW5n
ID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFNtb290aGluZyhjb250ZXh0KTsKICAgICBib29sIGFs
bG93c1N1YnBpeGVsUXVhbnRpemF0aW9uID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVs
UXVhbnRpemF0aW9uKGNvbnRleHQpOwpAQCAtNDAyLDEwICszOTgsOSBAQCBzdGF0aWMgQk9PTCBf
UERGU2VsZWN0aW9uc0FyZUVxdWFsKFBERlNlbGVjdGlvbiAqc2VsZWN0aW9uQSwgUERGU2VsZWN0
aW9uICpzZWxlYwogCiAtICh2b2lkKV9yZWN1cnNpdmU6KEJPT0wpcmVjdXJzZSBkaXNwbGF5UmVj
dElnbm9yaW5nT3BhY2l0eTooTlNSZWN0KWRpc3BsYXlSZWN0IGluQ29udGV4dDooTlNHcmFwaGlj
c0NvbnRleHQgKilncmFwaGljc0NvbnRleHQgdG9wVmlldzooQk9PTCl0b3BWaWV3CiB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IChDR0NvbnRleHRSZWYp
W2dyYXBoaWNzQ29udGV4dCBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIAogICAgIGJv
b2wgYWxsb3dzU21vb3RoaW5nID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFNtb290aGluZyhjb250
ZXh0KTsKICAgICBib29sIGFsbG93c1N1YnBpeGVsUXVhbnRpemF0aW9uID0gQ0dDb250ZXh0R2V0
QWxsb3dzRm9udFN1YnBpeGVsUXVhbnRpemF0aW9uKGNvbnRleHQpOwpAQCAtNjY5LDEwICs2NjQs
OSBAQCBzdGF0aWMgQk9PTCBfUERGU2VsZWN0aW9uc0FyZUVxdWFsKFBERlNlbGVjdGlvbiAqc2Vs
ZWN0aW9uQSwgUERGU2VsZWN0aW9uICpzZWxlYwogICAgIFtQREZTdWJ2aWV3IHNldEN1cnJlbnRT
ZWxlY3Rpb246c2VsZWN0aW9uXTsKIAogICAgIC8vIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgb25j
ZSA8cmRhcjovL3Byb2JsZW0vMjUxNDkyOTQ+IGhhcyBiZWVuIGZpeGVkLgotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25v
bm51bGwiCisgICAgQUxMT1dfTlVMTF9BUkdVTUVOVF9CRUdJTgogICAgIFtQREZTdWJ2aWV3IHNj
cm9sbFNlbGVjdGlvblRvVmlzaWJsZTpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIEFMTE9XX05VTExfQVJHVU1FTlRfRU5ECiAgICAgcmV0dXJuIFlFUzsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlv
bkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlRleHRD
b21wbGV0aW9uQ29udHJvbGxlci5tbQppbmRleCBjNmYwZTczNDVmNWVlODJiNzFiYzFjNGFiYTI2
YzQwZTIxZmYwM2E2Li5hMzgxZDEwYjI4YTNkZWU5NTQ4ZWEyZWU0Njk5NjA1N2EzYjI2ZTE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlRleHRDb21wbGV0
aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5tbQpAQCAtODQsMTAgKzg0LDkgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiB7CiAgICAgTlNSZWN0IHNjcm9sbEZyYW1lID0gTlNNYWtlUmVjdCgw
LCAwLCAxMDAsIDEwMCk7CiAgICAgTlNSZWN0IHRhYmxlRnJhbWUgPSBOU1plcm9SZWN0OyAgICAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHRhYmxlRnJhbWUuc2l6ZSA9IFtOU1Njcm9sbFZpZXcg
Y29udGVudFNpemVGb3JGcmFtZVNpemU6c2Nyb2xsRnJhbWUuc2l6ZSBoYXNIb3Jpem9udGFsU2Ny
b2xsZXI6Tk8gaGFzVmVydGljYWxTY3JvbGxlcjpZRVMgYm9yZGVyVHlwZTpOU05vQm9yZGVyXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICAgICBOU1RhYmxlQ29sdW1uICpjb2x1bW4gPSBbW05TVGFibGVDb2x1bW4g
YWxsb2NdIGluaXRdOwogICAgIFtjb2x1bW4gc2V0V2lkdGg6dGFibGVGcmFtZS5zaXplLndpZHRo
XTsKICAgICBbY29sdW1uIHNldEVkaXRhYmxlOk5PXTsKQEAgLTEzMywxMCArMTMyLDkgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKICAgICBOU1JlY3Qgd2luZG93RnJhbWU7CiAgICAgTlNQ
b2ludCB3b3JkU3RhcnQgPSB0b3BMZWZ0OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgd2luZG93
RnJhbWUub3JpZ2luID0gW1tfdmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46W19odG1s
VmlldyBjb252ZXJ0UG9pbnQ6d29yZFN0YXJ0IHRvVmlldzpuaWxdXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAg
ICB3aW5kb3dGcmFtZS5zaXplLmhlaWdodCA9IG51bWJlclRvU2hvdyAqIFtfdGFibGVWaWV3IHJv
d0hlaWdodF0gKyAobnVtYmVyVG9TaG93ICsgMSkgKiBbX3RhYmxlVmlldyBpbnRlcmNlbGxTcGFj
aW5nXS5oZWlnaHQ7CiAgICAgd2luZG93RnJhbWUub3JpZ2luLnkgLT0gd2luZG93RnJhbWUuc2l6
ZS5oZWlnaHQ7CiAgICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzID0gW05TRGljdGlvbmFyeSBk
aWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOltOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZToxMi4w
Zl0sIE5TRm9udEF0dHJpYnV0ZU5hbWUsIG5pbF07CkBAIC0xNTEsMTAgKzE0OSw5IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIH0KICAgICB3aW5kb3dGcmFtZS5zaXplLndpZHRoID0g
MTAwOwogICAgIGlmIChtYXhJbmRleCA+PSAwKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05TU2Nyb2xsVmlldyBmcmFtZVNpemVGb3JDb250ZW50
U2l6ZTpOU01ha2VTaXplKG1heFdpZHRoLCAxMDAuMGYpIGhhc0hvcml6b250YWxTY3JvbGxlcjpO
TyBoYXNWZXJ0aWNhbFNjcm9sbGVyOllFUyBib3JkZXJUeXBlOk5TTm9Cb3JkZXJdLndpZHRoKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAgICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05TV2luZG93IGZyYW1l
UmVjdEZvckNvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMC4wZiwgMC4wZiwgbWF4V2lkdGgsIDEwMC4w
Zikgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzc10uc2l6ZS53aWR0aCk7CiAg
ICAgICAgIG1heFdpZHRoICs9IDUuMGY7CiAgICAgICAgIHdpbmRvd0ZyYW1lLnNpemUud2lkdGgg
PSBzdGQ6Om1heChtYXhXaWR0aCwgd2luZG93RnJhbWUuc2l6ZS53aWR0aCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXIubW0KaW5kZXggYWI0Mzg4N2QxNzQ0ZDc1M2Q1MDAzYTIyZTA0ZjQyNzUx
NGExYmU2Ni4uYzZlMDcxNjRjYWYwNWNhNDgxOWUzMGE3ODZkY2M4YWQ4M2Q2MDUzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQpAQCAtMzgsOCArMzgsNyBAQAogI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAKIFNPRlRfTElOS19GUkFNRVdPUksoQVZGb3VuZGF0aW9uKQogU09GVF9MSU5LX0NMQVNT
KEFWRm91bmRhdGlvbiwgQVZQbGF5ZXJMYXllcikKQEAgLTUwOSw2ICs1MDgsNiBAQCBzdGF0aWMg
TlNXaW5kb3cgKmNyZWF0ZUJhY2tncm91bmRGdWxsc2NyZWVuV2luZG93KE5TUmVjdCBmcmFtZSwg
aW50IGxldmVsKQogCiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29u
dHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxs
c2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQppbmRleCBlN2JlODZkMzc0ZTQ1MGVlZTcwMDkx
YzVlMzJkOTNiMzE1YTVjZjM5Li43YzNmNTA2ZTA2ZDk3YmZkZThlYTRjYjA5NTYwYThjNzBiMTIz
ZjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tCkBA
IC0zNzMsMTAgKzM3Myw5IEBAIHN0YXRpYyBOU1ZpZXcgKmNyZWF0ZU1lZGlhVUlCYWNrZ3JvdW5k
VmlldygpCiAgICAgY29uc3QgQ0dGbG9hdCBxdWlja1RpbWVQbGF5ZXJIVURIZWlnaHQgPSA1OTsK
ICAgICBjb25zdCBDR0Zsb2F0IHF1aWNrVGltZVBsYXllckhVRENvbnRlbnRCb3JkZXJQb3NpdGlv
biA9IDM4OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbdmlldyBzZXRDb250ZW50Qm9yZGVy
UG9zaXRpb246cXVpY2tUaW1lUGxheWVySFVEQ29udGVudEJvcmRlclBvc2l0aW9uIC8gcXVpY2tU
aW1lUGxheWVySFVESGVpZ2h0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIHJldHVybiB2aWV3OwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDkxNDEwYTg5
ZDczMjU0NTMyNTUxZjMwMmJmY2U5ODM3NDBjOWJiMWYuLjQ4NGQ2Y2JjODU2NWRmNTEyYzIyODU3
ZWY5M2Q2YjNiNmM0Nzc0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KQEAgLTg2NSwxNSArODY1LDE0IEBAIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIG9y
ZGVyZWRMaXN0U2VnbWVudCA9IDI7CiAgICAgW2luc2VydExpc3RDb250cm9sIHNldFdpZHRoOmxp
c3RDb250cm9sU2VnbWVudFdpZHRoIGZvclNlZ21lbnQ6b3JkZXJlZExpc3RTZWdtZW50XTsKICAg
ICBpbnNlcnRMaXN0Q29udHJvbC5mb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOjE1XTsK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWQgc2VnbWVudEVsZW1lbnQgPSBOU0FjY2Vzc2li
aWxpdHlVbmlnbm9yZWREZXNjZW5kYW50KGluc2VydExpc3RDb250cm9sKTsKICAgICBOU0FycmF5
ICpzZWdtZW50cyA9IFtzZWdtZW50RWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6
TlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRyaWJ1dGVdOwogICAgIEFTU0VSVChzZWdtZW50cy5j
b3VudCA9PSAzKTsKICAgICBbc2VnbWVudHNbbm9MaXN0U2VnbWVudF0gYWNjZXNzaWJpbGl0eVNl
dE92ZXJyaWRlVmFsdWU6V2ViQ29yZTo6aW5zZXJ0TGlzdFR5cGVOb25lKCkgZm9yQXR0cmlidXRl
Ok5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uQXR0cmlidXRlXTsKICAgICBbc2VnbWVudHNbdW5v
cmRlcmVkTGlzdFNlZ21lbnRdIGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVlOldlYkNvcmU6
Omluc2VydExpc3RUeXBlQnVsbGV0ZWRBY2Nlc3NpYmlsaXR5VGl0bGUoKSBmb3JBdHRyaWJ1dGU6
TlNBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25BdHRyaWJ1dGVdOwogICAgIFtzZWdtZW50c1tvcmRl
cmVkTGlzdFNlZ21lbnRdIGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVlOldlYkNvcmU6Omlu
c2VydExpc3RUeXBlTnVtYmVyZWRBY2Nlc3NpYmlsaXR5VGl0bGUoKSBmb3JBdHRyaWJ1dGU6TlNB
Y2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25BdHRyaWJ1dGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgc2Vs
Zi52aWV3ID0gaW5zZXJ0TGlzdENvbnRyb2w7CiAKQEAgLTIxNzgsMTEgKzIxNzcsMTAgQEAgc3Rh
dGljIE5TTXV0YWJsZVNldCAqa25vd25QbHVnaW5NSU1FVHlwZXMoKQogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAoIU9TQXRvbWljQ29tcGFyZUFu
ZFN3YXAzMigwLCAxLCAmX3ByaXZhdGUtPmRpZERyYXdUaWxlcykpCiAgICAgICAgIHJldHVybjsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKIAogICAgIFdlYlRocmVhZExvY2soKTsKIApAQCAtNTg5MywyMSArNTg5MSwx
OSBAQCBzdGF0aWMgYm9vbCBuZWVkc1dlYlZpZXdJbml0VGhyZWFkV29ya2Fyb3VuZCgpCiAKIC0g
KHZvaWQpZW5jb2RlV2l0aENvZGVyOihOU0NvZGVyICopZW5jb2RlcgogewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgLy8gU2V0IGFzc2lkZSB0aGUgc3Vidmlld3MgYmVmb3JlIHdlIGFyY2hpdmUu
IFdlIGRvbid0IHdhbnQgdG8gYXJjaGl2ZSBhbnkgc3Vidmlld3MuCiAgICAgLy8gVGhlIHN1YnZp
ZXdzIHdpbGwgYWx3YXlzIGJlIGNyZWF0ZWQgaW4gX2NvbW1vbkluaXRpYWxpemF0aW9uRnJhbWVO
YW1lOmdyb3VwTmFtZTouCiAgICAgaWQgb3JpZ2luYWxTdWJ2aWV3cyA9IF9zdWJ2aWV3czsKICAg
ICBfc3Vidmlld3MgPSBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBbc3VwZXIgZW5jb2RlV2l0aENv
ZGVyOmVuY29kZXJdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBSZXN0b3JlIHRoZSBz
dWJ2aWV3cyB3ZSBzZXQgYXNpZGUuCiAgICAgX3N1YnZpZXdzID0gb3JpZ2luYWxTdWJ2aWV3czsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKIAogICAgIEJPT0wgdXNlQmFja0ZvcndhcmRMaXN0ID0gX3ByaXZhdGUtPnBh
Z2UgJiYgc3RhdGljX2Nhc3Q8QmFja0ZvcndhcmRMaXN0Kj4oX3ByaXZhdGUtPnBhZ2UtPmJhY2tG
b3J3YXJkKCkuY2xpZW50KCkpLT5lbmFibGVkKCk7CiAgICAgaWYgKFtlbmNvZGVyIGFsbG93c0tl
eWVkQ29kaW5nXSkgewpAQCAtNzEzOCwxMCArNzEzNCw5IEBAIHN0YXRpYyBXZWJGcmFtZSAqaW5j
cmVtZW50RnJhbWUoV2ViRnJhbWUgKmZyYW1lLCBXZWJGaW5kT3B0aW9ucyBvcHRpb25zID0gMCkK
ICAgICBpZiAoYXV0byAqaWNvbiA9IF9wcml2YXRlLT5fbWFpbkZyYW1lSWNvbi5nZXQoKSkKICAg
ICAgICAgcmV0dXJuIGljb247CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaCAKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBbW1dlYklj
b25EYXRhYmFzZSBzaGFyZWRJY29uRGF0YWJhc2VdIGRlZmF1bHRJY29uV2l0aFNpemU6V2ViSWNv
blNtYWxsU2l6ZV07Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAtICh2b2lkKV9zZXRNYWluRnJhbWVJY29uOihO
U0ltYWdlICopaWNvbgpAQCAtOTMwOSwxMCArOTMwNCw5IEBAIGJvb2wgTGF5ZXJGbHVzaENvbnRy
b2xsZXI6OmZsdXNoTGF5ZXJzKCkKICAgICAgICAgLy8gQXBwS2l0IG1heSBoYXZlIGRpc2FibGVk
IHNjcmVlbiB1cGRhdGVzLCB0aGlua2luZyBhbiB1cGNvbWluZyB3aW5kb3cgZmx1c2ggd2lsbCBy
ZS1lbmFibGUgdGhlbS4KICAgICAgICAgLy8gSW4gY2FzZSBzZXROZWVkc0Rpc3BsYXlJblJlY3Qo
KSBoYXMgcHJldmVudGVkIHRoZSB3aW5kb3cgZnJvbSBuZWVkaW5nIHRvIGJlIGZsdXNoZWQsIHJl
LWVuYWJsZSBzY3JlZW4KICAgICAgICAgLy8gdXBkYXRlcyBoZXJlLgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgICAgICBpZiAoIVt3aW5kb3cgaXNGbHVzaFdpbmRvd0Rpc2FibGVkXSkKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgW3dpbmRvdyBfZW5hYmxlU2NyZWVuVXBkYXRl
c0lmTmVlZGVkXTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYldpbmRvd0FuaW1hdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViV2luZG93QW5pbWF0aW9uLm1tCmluZGV4IDkyMzU4ZjZiN2RlM2FiYTk2NGVl
YWYxNzQyNWYyNzFiOTVhYTg2MDkuLjUxOTNmMWVmZDBjYWY1YmQ1MzgwOGE3NDZiZTQwNDBmY2Nk
NGY3Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViV2lu
ZG93QW5pbWF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
V2luZG93QW5pbWF0aW9uLm1tCkBAIC0xMjUsMTAgKzEyNSw5IEBAIHN0YXRpYyBDR1NDb25uZWN0
aW9uSUQgbWFpbldpbmRvd1NlcnZlckNvbm5lY3Rpb25JRCgpCiBzdGF0aWMgdm9pZCBzZXRTY2Fs
ZWRGcmFtZUZvcldpbmRvdyhOU1dpbmRvdyAqd2luZG93LCBOU1JlY3Qgc2NhbGVGcmFtZSwgTlNS
ZWN0IG5vblNjYWxlZEZyYW1lKQogewogICAgIGlmIChOU0VxdWFsUmVjdHMoc2NhbGVGcmFtZSwg
bm9uU2NhbGVkRnJhbWUpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9ubnVsbCIKKyAgICAgICAgQUxMT1dfTlVM
TF9BUkdVTUVOVF9CRUdJTgogICAgICAgICBDR1NTZXRXaW5kb3dXYXJwKG1haW5XaW5kb3dTZXJ2
ZXJDb25uZWN0aW9uSUQoKSwgd2luZG93LndpbmRvd051bWJlciwgMCwgMCwgbnVsbHB0cik7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX05VTExfQVJHVU1FTlRf
RU5ECiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348812</attachid>
            <date>2018-09-04 05:05:01 -0700</date>
            <delta_ts>2018-09-11 13:04:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188996-20180904140459.patch</filename>
            <type>text/plain</type>
            <size>313448</size>
            <attacher name="Guillaume Emont">guijemont</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
YzFhYmRjMjYzZGE0NzVkNDhkM2FiYmJhM2M1ODg4Y2I4YjBlM2FmLi40Mjc0NzU2ZTc2ODI1NmUy
YTA1NGM1MTMyM2NhODNkMTE4YTA1ODIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09i
amVjdC5oOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLmM6CisgICAgICAgICogYXNzZW1i
bGVyL0xpbmtCdWZmZXIuaDoKKyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6ZmluYWxpemVDb2Rl
V2l0aERpc2Fzc2VtYmx5KToKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAg
ICAqIGIzL0IzT3Bjb2RlLmNwcDoKKyAgICAgICAgKiBiMy9CM1R5cGUuaDoKKyAgICAgICAgKiBi
My9CM1R5cGVNYXAuaDoKKyAgICAgICAgKiBiMy9CM1dpZHRoLmg6CisgICAgICAgICogYjMvYWly
L0FpckFyZy5jcHA6CisgICAgICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAqIGIzL2Fp
ci9BaXJDb2RlLmg6CisgICAgICAgICogYnl0ZWNvZGUvT3Bjb2RlLmg6CisgICAgICAgIChKU0M6
OnBhZE9wY29kZU5hbWUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU51bWJlcik6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1pc2MpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6
CisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBl
cnM6OmNhbGN1bGF0ZVBva2VPZmZzZXQpOgorICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6
CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTElu
dDo6c2xvd1BhdGhMb2dGKToKKyAgICAgICAgKiBydW50aW1lL0NvbmZpZ0ZpbGUuY3BwOgorICAg
ICAgICAoSlNDOjpDb25maWdGaWxlOjpjYW5vbmljYWxpemVQYXRocyk6CisgICAgICAgICogcnVu
dGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNw
cDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6c2V0QWxpYXNlZE9wdGlvbik6CisgICAgICAgICog
dG9vbHMvQ29kZVByb2ZpbGluZy5jcHA6CisgICAgICAgICogd2FzbS9XYXNtU2VjdGlvbnMuaDoK
KyAgICAgICAgKiB3YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weToKKwog
MjAxOC0wOS0wMiAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93c3RhcnQub3JnPgog
CiAgICAgICAgIEltcGxlbWVudCBPYmplY3QuZnJvbUVudHJpZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMzc5NDJiYzg1Nzg2
ZDM4M2U1ZmVhMmNhY2ZhOTQ5MGEyMTAyZTRiYy4uZTZkMmRkYmQwOTNjYWJkYzQxMDI2NTllNGZj
OTU5MzZkODg1YzQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1l
IEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJO
SU5HXy4qIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTg4OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5jcHA6CisgICAgICAgICogd3RmL0Fzc2VydGlvbnMuaDoK
KyAgICAgICAgKiB3dGYvQ29tcGlsZXIuaDoKKyAgICAgICAgKiB3dGYvTUQ1LmNwcDoKKyAgICAg
ICAgKFdURjo6TUQ1OjpNRDUpOgorICAgICAgICAoV1RGOjpNRDU6OmFkZEJ5dGVzKToKKyAgICAg
ICAgKFdURjo6TUQ1OjpjaGVja3N1bSk6CisgICAgICAgICogd3RmL1ByaW50U3RyZWFtLmNwcDoK
KyAgICAgICAgKFdURjo6UHJpbnRTdHJlYW06OnByaW50ZlZhcmlhYmxlRm9ybWF0KToKKyAgICAg
ICAgKiB3dGYvU0hBMS5jcHA6CisgICAgICAgIChXVEY6OlNIQTE6OlNIQTEpOgorICAgICAgICAo
V1RGOjpTSEExOjphZGRCeXRlcyk6CisgICAgICAgIChXVEY6OlNIQTE6OmNvbXB1dGVIYXNoKToK
KyAgICAgICAgKiB3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwOgorICAgICAgICAqIHd0Zi9WZWN0
b3IuaDoKKyAgICAgICAgKFdURjo6VmVjdG9yQnVmZmVyOjplbmRPZkJ1ZmZlcik6CisgICAgICAg
ICogd3RmL3RleHQvV1RGU3RyaW5nLmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRlV2l0aEZvcm1h
dEFuZEFyZ3VtZW50cyk6CisKIDIwMTgtMDgtMzEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgT3B0aW9uU2V0IHw9IGFuZCAtPSBvcGVyYXRvcnMg
d2l0aCBhZGQoKSBhbmQgcmVtb3ZlKCkgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTI1NDQyMTFj
ZTMwYTA5NjYzNmFhNGJmNWY3MzdiNmVmYzAxYWNiNC4uYTdhMTI1YjM2YzNlMDViNDRkZjdhNDBl
NjlhMWQyNDZlYjBiNmNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMSBAQAorMjAxOC0wOC0y
NyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRk
IElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENEYXRhQ2hhbm5lbEhhbmRsZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9t
YWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6Om92ZXJyaWRlQXR0YWNobWVudFBhcmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SWdub3JlQXR0YWNobWVudCBjb25z
dCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHJl
bmRlcldpZGdldENoaWxkcmVuXSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyIGNvbnZlcnRQb2ludFRvU2NyZWVuU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIHJvbGVdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIgcm9sZURlc2NyaXB0aW9uXSk6CisgICAgICAgICogYnJpZGdlL29iamMv
V2ViU2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfY2xhc3MubW06
CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjQ2xhc3M6OmZpZWxkTmFtZWQgY29uc3QpOgor
ICAgICAgICAqIGNyeXB0by9Db21tb25DcnlwdG9VdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Z2V0Q29tbW9uQ3J5cHRvRGlnZXN0QWxnb3JpdGhtKToKKyAgICAgICAgKiBjcnlwdG8v
bWFjL0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5j
cnlwdEFFU19HQ00pOgorICAgICAgICAoV2ViQ29yZTo6ZGVjeXB0QUVTX0dDTSk6CisgICAgICAg
ICogY3J5cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OndyYXBTZXJpYWxpemVkQ3J5cHRvS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OnVud3Jh
cFNlcmlhbGl6ZWRDcnlwdG9LZXkpOgorICAgICAgICAqIGNzcy9tYWtlU2VsZWN0b3JQc2V1ZG9D
bGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5OgorICAgICAgICAqIGNzcy9tYWtlU2Vs
ZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5weToKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRv
ci5jcHA6CisgICAgICAgICogZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6cmVwbGFjZU5vZGVGcm9tUGFzdGVib2FyZCk6CisgICAgICAgICogcGFnZS9tYWMvRXZl
bnRIYW5kbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kRmFr
ZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcpOgorICAgICAgICAqIHBhZ2UvbWFjL1NlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXIubW06CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyOjpIaWdobGlnaHQ6OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybWF0TG9jYWxpemVk
U3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmg6CisgICAgICAg
IChXZWJDb3JlOjpTY3JlZW5EYXRhOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dhbWVw
YWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1l
cGFkUHJvdmlkZXI6OnN0b3BNb25pdG9yaW5nSW5wdXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURp
c3BsYXk6OnNoYXJlZERpc3BsYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1N1cnJv
Z2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6OnVwZGF0ZU9wdGlvbnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0
cmVhbVNlc3Npb24ubW06CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uQVZTdHJlYW1TZXNz
aW9uOjp1cGRhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6c2V0Q3VycmVudFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2sgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6c2V0U2hvdWxkRGlzYWJsZVNsZWVwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpJR05PUkVf
Q0xBTkdfV0FSTklOR19FTkQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW06CisgICAgICAgICgtW1dlYkFWU2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lciBiZWdpbk9ic2Vy
dmluZ1JlbmRlcmVyOl0pOgorICAgICAgICAoLVtXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVu
ZXIgc3RvcE9ic2VydmluZ1JlbmRlcmVyOl0pOgorICAgICAgICAoLVtXZWJBVlNhbXBsZUJ1ZmZl
ckVycm9yTGlzdGVuZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29u
dGV4dDpdKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0
cmFja0RpZENoYW5nZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SUdOT1JFX0NMQU5HX1dB
Uk5JTkdfRU5EKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9y
bUNBTGF5ZXJDb2NvYS5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllcjo6ZHJhd0xheWVyQ29u
dGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZi
dXp6TkcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGU6OmZvbnRGb3JDb21iaW5p
bmdDaGFyYWN0ZXJTZXF1ZW5jZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvSW1hZ2VEZWNvZGVyQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyQ0c6
OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oOgorICAgICAgICAoSUdOT1JFX0NMQU5HX1dBUk5J
TkcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xs
ZXJDb3JlVGV4dC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6
Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9JY29uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6SWNvbjo6SWNvbik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50SW1hZ2VNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpQREZEb2N1bWVudEltYWdlOjpkcmF3UERGUGFnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYktpdE5TSW1hZ2VFeHRyYXMubW06CisgICAg
ICAgICgtW05TSW1hZ2UgX3dlYl9sb2NrRm9jdXNXaXRoRGV2aWNlU2NhbGVGYWN0b3I6XSk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2NhbGVEcmFnSW1hZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRm9yTGluayk6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkxvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dDo6TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXREcmFnSW1hZ2VJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYWxQb2ludCk6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvU2Nyb2xsVmlld01hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBs
YXRmb3JtQ29udGVudHNUb1NjcmVlbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3OjpwbGF0Zm9ybVNjcmVlblRvQ29udGVudHMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9UaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdDZWxsRm9jdXNSaW5nV2l0
aEZyYW1lQXRUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9s
c01hbmFnZXIubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OldpZGdldDo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVs
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24p
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENG
TmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnJlcG9y
dEVycm9yVG9DbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3JlYXRlLWh0dHAt
aGVhZGVyLW5hbWUtdGFibGU6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2Rpbmcu
Y3BwOgorICAgICAgICAqIHRlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogeG1sL1hQYXRoR3JhbW1hci5jcHA6CisKIDIwMTgtMDktMDMgIEFuZHkgRXN0ZXMg
IDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIEltcGxlbWVu
dCB0aGUgTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQgY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
CmluZGV4IDFjMjM5OTRmMTdkYWExZGUxYTBlNjA0ODYyNjQ4NTM3Mzg0NjJhNGYuLmEzMGUxNDZk
ZTc0NjBiYmNmMTM1YzFiMzBjNjc2MDBiNjU1YmY0Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDE4LTA4LTI3ICBHdWlsbGF1bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdh
bGlhLmNvbT4KKworICAgICAgICBBZGQgSUdOT1JFX1dBUk5JTkdfLiogbWFjcm9zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg5OTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9jcnlwdG8vY29t
bW9uY3J5cHRvL0NyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHA6CisgICAgICAgIChQQUw6OkNy
eXB0b0RpZ2VzdDo6Y3JlYXRlKToKKyAgICAgICAgKFBBTDo6Q3J5cHRvRGlnZXN0OjphZGRCeXRl
cyk6CisgICAgICAgIChQQUw6OkNyeXB0b0RpZ2VzdDo6Y29tcHV0ZUhhc2gpOgorICAgICAgICAq
IHBhbC9zcGkvY29jb2EvQVZLaXRTUEkuaDoKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL05TS2V5
ZWRBcmNoaXZlclNQSS5oOgorICAgICAgICAoaW5zZWN1cmVseVVuYXJjaGl2ZU9iamVjdEZyb21E
YXRhKToKKyAgICAgICAgKiBwYWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oOgorICAgICAgICAq
IHBhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbToKKyAgICAgICAgKFBBTDo6cG9wVXBNZW51KToK
KyAgICAgICAgKiBwYWwvc3lzdGVtL21hYy9XZWJQYW5lbC5tbToKKyAgICAgICAgKC1bV2ViUGFu
ZWwgaW5pdF0pOgorCiAyMDE4LTA5LTAxICBZb3NoaWFraSBKaXRzdWthd2EgIDx5b3NoaWFraS5q
aXRzdWthd2FAc29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBBZGQgQ3J5cHRvRGlnZXN0
T3BlblNTTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBhNDM5N2QyZmQ2NDRmZmQxMWUyMDdhMjk5ZTQzOTJjNDkzMjE3
YTA1Li5iYmNmODQyZWIwOTdlMGU3ZTUyNjdlYmMxOTQ4OWYzNTM2ZTAwZTgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDExOSBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250
QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0RhdGFUYXNrQ29jb2E6OnN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVN5bmNBbGxDb29raWVzKToKKyAgICAgICAgKiBQ
bHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojpi
ZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hp
bS5tbToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1v
ZHVsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luTW9kdWxlOjp0cnlMb2Fk
KToKKyAgICAgICAgKiBTaGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6Q2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveCk6CisgICAgICAgICogU2hhcmVk
L21hYy9DaGlsZFByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OmNvbXBpbGVBbmRBcHBs
eVNhbmRib3hTbG93Q2FzZSk6CisgICAgICAgICogU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5t
bToKKyAgICAgICAgKFdlYktpdDo6Q29sb3JTcGFjZURhdGE6OmRlY29kZSk6CisgICAgICAgICog
U2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpTYW5k
Ym94RXh0ZW5zaW9uSW1wbDo6c2FuZGJveEV4dGVuc2lvbkZvclR5cGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3dl
Yl9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdSdW5B
c01vZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAg
ICgtW1dLVmlldyBfd2ViX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZENsaWVudC5tbToKKyAgICAgICAgKFdlYktp
dDo6RG93bmxvYWRDbGllbnQ6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1l
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
Q2xpZW50Lm1tOgorICAgICAgICAoLVtXS0N1c3RvbVByb3RvY29sTG9hZGVyIGluaXRXaXRoTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHk6Y3VzdG9tUHJvdG9jb2xJRDpyZXF1ZXN0Ol0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06CisgICAgICAg
IChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OkNvbnRleHRNZW51Q2xpZW50Ojpt
ZW51RnJvbVByb3Bvc2VkTWVudSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW06CisgICAgICAgICgtW1dLVGV4dExpc3RUb3VjaEJhclZpZXdDb250cm9sbGVyIGlu
aXRXaXRoV2ViVmlld0ltcGw6XSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRh
dGVXaW5kb3dBbmRWaWV3RnJhbWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNl
bmREcmFnRW5kVG9QYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0RHJh
Zyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjaGFyYWN0ZXJJbmRleEZvclBvaW50
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFj
Lm1tOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmdldFBsdWdpblByb2Nl
c3NTZXJpYWxOdW1iZXIpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6Om1h
a2VQbHVnaW5Qcm9jZXNzVGhlRnJvbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2lu
UHJvY2Vzc1Byb3h5OjptYWtlVUlQcm9jZXNzVGhlRnJvbnRQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpleGl0RnVsbHNjcmVlbik6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tMZWdhY3lQREZWaWV3Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tQ
REZQYWdlTnVtYmVySW5kaWNhdG9yLm1tOgorICAgICAgICAoLVtXS1BERlBhZ2VOdW1iZXJJbmRp
Y2F0b3IgX21ha2VSb3VuZGVkQ29ybmVyc10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9y
bXMvV0tBaXJQbGF5Um91dGVQaWNrZXIubW06CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jt
cy9XS0ZpbGVVcGxvYWRQYW5lbC5tbToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3By
ZXNlbnRQb3BvdmVyV2l0aENvbnRlbnRWaWV3Q29udHJvbGxlcjphbmltYXRlZDpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5tbToKKyAgICAgICAg
KC1bV0tDb2xvclBvcG92ZXIgaW5pdFdpdGhWaWV3Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLm1tOgorICAgICAgICAoLVtXS0RhdGVUaW1lUG9w
b3ZlciBpbml0V2l0aFZpZXc6ZGF0ZVBpY2tlck1vZGU6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jt
cy9XS0Zvcm1Qb3BvdmVyLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3Jt
U2VsZWN0UG9wb3Zlci5tbToKKyAgICAgICAgKC1bV0tTZWxlY3RQb3BvdmVyIGluaXRXaXRoVmll
dzpoYXNHcm91cHM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNjcmVlblRvUm9vdFZpZXcp
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cm9vdFZpZXdUb1NjcmVlbik6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOgor
ICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGVudGVyRnVsbFNjcmVlbjpd
KToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBmaW5pc2hlZEVudGVy
RnVsbFNjcmVlbkFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlciBleGl0RnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyIGJlZ2FuRXhpdEZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6
XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZmluaXNoZWRFeGl0
RnVsbFNjcmVlbkFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlciBjb21wbGV0ZUZpbmlzaEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uQWZ0ZXJSZXBhaW50
XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgX3N0YXJ0RW50ZXJG
dWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyIF9zdGFydEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0
aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAg
ICAgICgtW1dLUHJpbnRpbmdWaWV3IF9zZXRBdXRvZGlzcGxheTpdKToKKyAgICAgICAgKC1bV0tQ
cmludGluZ1ZpZXcgX2RyYXdQREZEb2N1bWVudDpwYWdlOmF0UG9pbnQ6XSk6CisgICAgICAgICgt
W1dLUHJpbnRpbmdWaWV3IF9kcmF3UHJldmlldzpdKToKKyAgICAgICAgKC1bV0tQcmludGluZ1Zp
ZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1RleHRJbnB1dFdpbmRv
d0NvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLVGV4dElucHV0UGFuZWwgX2ludGVycHJldEtl
eUV2ZW50OnVzaW5nTGVnYWN5Q29jb2FUZXh0SW5wdXQ6c3RyaW5nOl0pOgorICAgICAgICAoLVtX
S1RleHRJbnB1dFBhbmVsIF9oYXNNYXJrZWRUZXh0XSk6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51
UHJveHlNYWM6OnNob3dQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAgICAgIChXZWJLaXQ6OmluaXRp
YWxpemVFdmVudFJlY29yZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpzZW5k
Q29tcGxleFRleHRJbnB1dCk6CisgICAgICAgIChXZWJLaXQ6Om1ha2VDR0xQcmVzZW50TGF5ZXJP
cGFxdWUpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6bnVsbEV2ZW50VGltZXJG
aXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW06Cisg
ICAgICAgICgtW1dLUERGUGx1Z2luQWNjZXNzaWJpbGl0eU9iamVjdCBhY2Nlc3NpYmlsaXR5Rm9j
dXNlZFVJRWxlbWVudF0pOgorICAgICAgICAoLVtXS1BERkxheWVyQ29udHJvbGxlckRlbGVnYXRl
IHdyaXRlSXRlbXNUb1Bhc3RlYm9hcmQ6d2l0aFR5cGVzOl0pOgorICAgICAgICAoV2ViS2l0OjpQ
REZQbHVnaW46OmhhbmRsZUVkaXRpbmdDb21tYW5kKToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1
Z2luOjpzZXRBY3RpdmVBbm5vdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6IGNvbnN0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24u
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90
YXRpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbkNob2ljZUFubm90YXRpb246OmNy
ZWF0ZUFubm90YXRpb25FbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpblRleHRBbm5vdGF0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1
Z2luVGV4dEFubm90YXRpb246OmNyZWF0ZUFubm90YXRpb25FbGVtZW50KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRJbWFnZVRvQml0bWFwKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRHJhZ0NsaWVudDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW06
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpkcmF3UERGUGFnZSk6CisKIDIwMTgtMDktMDEgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDRk5ldHdvcmtdIFVwZGF0ZSBDRk5ldHdvcmsgU1BJ
IHVzZSB0byB1c2UgQ0ZOZXR3b3JrU1BJLmggbW9yZSBjb25zaXN0ZW50bHkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCBiNDEzOWJmNTA4ZmY3OGUyOTI0MjlmYTFlYjVkYzhkZDZhZjI4
MzA4Li45ZTYzMzE1MTczZTMyYTdmNzY5OTdlZDc3NzM2OGZmMjljYmU5MGNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMzIEBACisyMDE4LTA4LTI3ICBHdWlsbGF1
bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgSUdOT1JFX1dB
Uk5JTkdfLiogbWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODg5OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIENhcmJvbi9DYXJib25VdGlscy5tOgorICAgICAgICAoUG9vbENsZWFuZXIpOgor
ICAgICAgICAqIENhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tOgorICAgICAgICAoLVtDYXJi
b25XaW5kb3dBZGFwdGVyIGluaXRXaXRoQ2FyYm9uV2luZG93UmVmOnRha2luZ093bmVyc2hpcDpk
aXNhYmxlT3JkZXJpbmc6Y2FyYm9uOl0pOgorICAgICAgICAoLVtDYXJib25XaW5kb3dBZGFwdGVy
IHNldFZpZXdzTmVlZERpc3BsYXk6XSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIg
cmVjb25jaWxlVG9DYXJib25XaW5kb3dCb3VuZHNdKToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93
QWRhcHRlciBfdGVybVdpbmRvd0lmT3duZXJdKToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93QWRh
cHRlciBfd2luZG93TW92ZWRUb1JlY3Q6XSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0
ZXIgc2V0Q29udGVudFZpZXc6XSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgX2hh
bmRsZVJvb3RCb3VuZHNDaGFuZ2VkXSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIg
X2hhbmRsZUNvbnRlbnRCb3VuZHNDaGFuZ2VkXSk6CisgICAgICAgICogQ2FyYm9uL0NhcmJvbldp
bmRvd0ZyYW1lLm06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0ZyYW1lIHRpdGxlXSk6CisgICAg
ICAgICogQ2FyYm9uL0hJVmlld0FkYXB0ZXIubToKKyAgICAgICAgKCtbSElWaWV3QWRhcHRlciBn
ZXRISVZpZXdGb3JOU1ZpZXc6XSk6CisgICAgICAgICogQ2FyYm9uL0hJV2ViVmlldy5tbToKKyAg
ICAgICAgKG92ZXJyaWRlQ0dDb250ZXh0KToKKyAgICAgICAgKHJlc3RvcmVDR0NvbnRleHQpOgor
ICAgICAgICAoRHJhdyk6CisgICAgICAgICogRE9NL0RPTS5tbToKKyAgICAgICAgKiBIaXN0b3J5
L1dlYkhpc3RvcnkubW06CisgICAgICAgICgtW1dlYkhpc3RvcnlQcml2YXRlIGxvYWRIaXN0b3J5
R3V0c0Zyb21VUkw6c2F2ZWRJdGVtc0NvdW50OmNvbGxlY3REaXNjYXJkZWRJdGVtc0ludG86ZXJy
b3I6XSk6CisgICAgICAgICogSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbToKKyAgICAgICAgKC1b
V2ViSGlzdG9yeUl0ZW0gaWNvbl0pOgorICAgICAgICAqIE1pc2MvV2ViS2l0TlNTdHJpbmdFeHRy
YXMubW06CisgICAgICAgICgtW05TU3RyaW5nIF93ZWJfZHJhd0F0UG9pbnQ6Zm9udDp0ZXh0Q29s
b3I6XSk6CisgICAgICAgICogTWlzYy9XZWJOU0ltYWdlRXh0cmFzLm06CisgICAgICAgICgtW05T
SW1hZ2UgX3dlYl9zY2FsZVRvTWF4U2l6ZTpdKToKKyAgICAgICAgKC1bTlNJbWFnZSBfd2ViX2Rp
c3NvbHZlVG9GcmFjdGlvbjpdKToKKyAgICAgICAgKiBNaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJh
cy5tbToKKyAgICAgICAgKCtbTlNQYXN0ZWJvYXJkIF93ZWJfc2V0RmluZFBhc3RlYm9hcmRTdHJp
bmc6d2l0aE93bmVyOl0pOgorICAgICAgICAoLVtOU1Bhc3RlYm9hcmQgX3dlYl9kZWNsYXJlQW5k
V3JpdGVEcmFnSW1hZ2VGb3JFbGVtZW50OlVSTDp0aXRsZTphcmNoaXZlOnNvdXJjZTpdKToKKyAg
ICAgICAgKiBQYW5lbHMvV2ViQXV0aGVudGljYXRpb25QYW5lbC5tOgorICAgICAgICAoLVtXZWJB
dXRoZW50aWNhdGlvblBhbmVsIGxvYWROaWJdKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBs
dWdpbkhvc3RNYW5hZ2VyOjpzcGF3blBsdWdpbkhvc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXRz
Y2FwZVBsdWdpbkhvc3RNYW5hZ2VyOjpkaWRDcmVhdGVXaW5kb3cpOgorICAgICAgICAqIFBsdWdp
bnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpO
ZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6bWFrZUN1cnJlbnRQcm9jZXNzRnJvbnRQcm9jZXNzKToK
KyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHk6Om1ha2VQbHVnaW5Ib3N0
UHJvY2Vzc0Zyb250UHJvY2VzcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1
Z2luSG9zdFByb3h5Ojppc1BsdWdpbkhvc3RQcm9jZXNzRnJvbnRQcm9jZXNzIGNvbnN0KToKKyAg
ICAgICAgKiBQbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6bW91c2VFdmVudCk6
CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1t
OgorICAgICAgICAoLVtXZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcgZHJhd1JlY3Q6XSk6Cisg
ICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvV2ViVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tOgor
ICAgICAgICAoLVtXZWJUZXh0SW5wdXRQYW5lbCBfaW50ZXJwcmV0S2V5RXZlbnQ6c3RyaW5nOl0p
OgorICAgICAgICAqIFBsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAg
ICAgKC1bV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldyBjb252ZXJ0RnJvbVg6YW5kWTpzcGFjZTp0
b1g6YW5kWTpzcGFjZTpdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luUGFj
a2FnZS5tbToKKyAgICAgICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlIF90cnlMb2FkXSk6
CisgICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgt
W1dlYk5ldHNjYXBlUGx1Z2luVmlldyBzYXZlQW5kU2V0TmV3UG9ydFN0YXRlRm9yVXBkYXRlOl0p
OgorICAgICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpblZpZXcgc2VuZERyYXdSZWN0RXZlbnQ6XSk6
CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1Z2luVmlldyBkcmF3UmVjdDpdKToKKyAgICAgICAg
KiBQbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW06CisgICAgICAgIChXZWJLaXRfVFNVcGRh
dGVDaGVja19hbGVydERpZEVuZF9yZXR1cm5Db2RlX2NvbnRleHRJbmZvXyk6CisgICAgICAgIChX
ZWJLaXRfTlNBbGVydF9iZWdpblNoZWV0TW9kYWxGb3JXaW5kb3dfbW9kYWxEZWxlZ2F0ZV9kaWRF
bmRTZWxlY3Rvcl9jb250ZXh0SW5mb18pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVw
TWVudU1hYy5tbToKKyAgICAgICAgKFBvcHVwTWVudU1hYzo6cG9wdWxhdGUpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW06CisgICAgICAgIChXZWJEcmFnQ2xpZW50Ojpz
dGFydERyYWcpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VM
b2FkVG9Eb3dubG9hZCk6CisgICAgICAgICh3ZWJHZXROU0ltYWdlKToKKyAgICAgICAgKiBXZWJJ
bnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKiBXZWJJbnNwZWN0b3IvV2Vi
Tm9kZUhpZ2hsaWdodFZpZXcubW06CisgICAgICAgICgtW1dlYk5vZGVIaWdobGlnaHRWaWV3IGRy
YXdSZWN0Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViQ2xpcFZpZXcubW06CisgICAgICAgICgt
W1dlYkNsaXBWaWV3IGluaXRXaXRoRnJhbWU6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJGcmFt
ZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgX3VwZGF0ZUJhY2tncm91bmRBbmRVcGRhdGVzV2hp
bGVPZmZzY3JlZW5dKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2RyYXdSZWN0OmNvbnRlbnRzT25s
eTpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgYWNjZXNzaWJpbGl0eVJvb3RdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tOgorICAgICAgICAoLVtXZWJGdWxs
U2NyZWVuQ29udHJvbGxlciBlbnRlckZ1bGxTY3JlZW46XSk6CisgICAgICAgICgtW1dlYkZ1bGxT
Y3JlZW5Db250cm9sbGVyIGZpbmlzaGVkRW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uOl0pOgorICAg
ICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBleGl0RnVsbFNjcmVlbl0pOgorICAgICAg
ICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBmaW5pc2hlZEV4aXRGdWxsU2NyZWVuQW5pbWF0
aW9uOl0pOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBfc3RhcnRFbnRlckZ1
bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246XSk6CisgICAgICAgICgtW1dlYkZ1bGxTY3Jl
ZW5Db250cm9sbGVyIF9zdGFydEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOl0p
OgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW05TV2luZG93
IF93ZWJfYm9yZGVyVmlld10pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfdXBkYXRlTW91c2Vv
dmVyV2l0aEZha2VFdmVudF0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfc2V0QXNpZGVTdWJ2
aWV3c10pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfYXV0b3Njcm9sbF0pOgorICAgICAgICAo
LVtXZWJIVE1MVmlldyBkcmF3UmVjdDpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgbW91c2VE
b3duOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBtb3VzZURyYWdnZWQ6XSk6CisgICAgICAg
ICgtW1dlYkhUTUxWaWV3IG1vdXNlVXA6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9lbmRQ
cmludE1vZGVBbmRSZXN0b3JlV2luZG93QXV0b2Rpc3BsYXldKToKKyAgICAgICAgKC1bV2ViSFRN
TFZpZXcga25vd3NQYWdlUmFuZ2U6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGFjY2Vzc2li
aWxpdHlIaXRUZXN0Ol0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfZm9udEF0dHJpYnV0ZXNG
cm9tRm9udFBhc3RlYm9hcmRdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2NvbG9yQXNTdHJp
bmc6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGNvcHlGb250Ol0pOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBfZXhlY3V0ZVNhdmVkS2V5cHJlc3NDb21tYW5kc10pOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBhdHRhY2hSb290TGF5ZXI6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHRl
eHRTdG9yYWdlXSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF91cGRhdGVTZWxlY3Rpb25Gb3JJ
bnB1dE1hbmFnZXJdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAg
IChfYXBwbGljYXRpb25JbmZvRm9yTUlNRVR5cGUpOgorICAgICAgICAoLVtXZWJQREZWaWV3IGNl
bnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWE6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX3Jl
Y3Vyc2l2ZURpc3BsYXlSZWN0SWZOZWVkZWRJZ25vcmluZ09wYWNpdHk6aXNWaXNpYmxlUmVjdDpy
ZWN0SXNWaXNpYmxlUmVjdEZvclZpZXc6dG9wVmlldzpdKToKKyAgICAgICAgKC1bV2ViUERGVmll
dyBfcmVjdXJzaXZlRGlzcGxheUFsbERpcnR5V2l0aExvY2tGb2N1czp2aXNSZWN0Ol0pOgorICAg
ICAgICAoLVtXZWJQREZWaWV3IF9yZWN1cnNpdmU6ZGlzcGxheVJlY3RJZ25vcmluZ09wYWNpdHk6
aW5Db250ZXh0OnRvcFZpZXc6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgc2VhcmNoRm9yOmRp
cmVjdGlvbjpjYXNlU2Vuc2l0aXZlOndyYXA6c3RhcnRJblNlbGVjdGlvbjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2Vi
VGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9idWlsZFVJXSk6CisgICAgICAgICgtW1dlYlRleHRD
b21wbGV0aW9uQ29udHJvbGxlciBfcGxhY2VQb3B1cFdpbmRvdzpdKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW06CisgICAgICAgICogV2ViVmlldy9X
ZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tOgorICAgICAgICAoY3JlYXRl
TWVkaWFVSUJhY2tncm91bmRWaWV3KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dlYlRleHRMaXN0VG91Y2hCYXJWaWV3Q29udHJvbGxlciBpbml0V2l0aFdlYlZp
ZXc6XSk6CisgICAgICAgICgtW1dlYlZpZXcgX2Rpc3BhdGNoVGlsZURpZERyYXc6XSk6CisgICAg
ICAgICgtW1dlYlZpZXcgZW5jb2RlV2l0aENvZGVyOl0pOgorICAgICAgICAoLVtXZWJWaWV3IG1h
aW5GcmFtZUljb25dKToKKyAgICAgICAgKExheWVyRmx1c2hDb250cm9sbGVyOjpmbHVzaExheWVy
cyk6CisgICAgICAgICogV2ViVmlldy9XZWJXaW5kb3dBbmltYXRpb24ubW06CisgICAgICAgIChz
ZXRTY2FsZWRGcmFtZUZvcldpbmRvdyk6CisKIDIwMTgtMDktMDEgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDRk5ldHdvcmtdIFVwZGF0ZSBDRk5ldHdvcmsgU1BJ
IHVzZSB0byB1c2UgQ0ZOZXR3b3JrU1BJLmggbW9yZSBjb25zaXN0ZW50bHkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggMTYzNjQ2OTYzODlkZWM5
MGUwNTBlZDIwMDBlYWU3MmMxZDc5MjEzYS4uYjQ2ZmQzMGE4ODdjMmMwMjYyYTY4ZTNjOThmYjBh
Y2FhMWExNzdmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2Jq
ZWN0LmgKQEAgLTE1OCwxOCArMTU4LDkgQEAgcHVibGljOgogICAgIHZvaWQqIGdldFByaXZhdGUo
KTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZml4IHRoZSB3YXJuaW5ncyBmb3IgZXh0ZXJu
LXRlbXBsYXRlIGluIEpTT2JqZWN0IHRlbXBsYXRlIGNsYXNzZXM6IGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5NzkKLSNpZiBDT01QSUxFUihDTEFORykKLSNpZiBf
X2hhc193YXJuaW5nKCItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiKQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZGVm
aW5lZC12YXItdGVtcGxhdGUiCi0jZW5kaWYKLSNlbmRpZgorICAgIElHTk9SRV9DTEFOR19XQVJO
SU5HX0JFR0lOKCItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiKQogICAgIERFQ0xBUkVfSU5GTzsK
LSNpZiBDT01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3VuZGVmaW5lZC12YXIt
dGVtcGxhdGUiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCi0jZW5kaWYK
KyAgICBJR05PUkVfQ0xBTkdfV0FSTklOR19FTkQKIAogICAgIEpTQ2xhc3NSZWYgY2xhc3NSZWYo
KSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNrT2JqZWN0RGF0YS0+anNDbGFzczsgfQogICAgIGJv
b2wgaW5oZXJpdHMoSlNDbGFzc1JlZikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
dGVzdHMvdGVzdGFwaS5jCmluZGV4IDNmYzg2MTIxOWEzMDg0NWFhOGJlODY0NDYwNThhZmIzZjYy
MDdhZDkuLjU3N2I4MjIzYTcxNTk0Mjk2Y2RkYjJkM2M2ODgyMTdmYjYzOTY1MmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCkBAIC0xMTQwLDEwICsxMTQwLDcg
QEAgc3RhdGljIGJvb2wgZ2xvYmFsQ29udGV4dE5hbWVUZXN0KCkKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUi
Ci0jZW5kaWYKK0lHTk9SRV9HQ0NfV0FSTklOR19CRUdJTigiLVd1bnVzZWQtYnV0LXNldC12YXJp
YWJsZSIpCiBzdGF0aWMgdm9pZCBjaGVja0NvbnN0bmVzc0luSlNPYmplY3ROYW1lcygpCiB7CiAg
ICAgSlNTdGF0aWNGdW5jdGlvbiBmdW47CkBAIC0xMTUxLDkgKzExNDgsNyBAQCBzdGF0aWMgdm9p
ZCBjaGVja0NvbnN0bmVzc0luSlNPYmplY3ROYW1lcygpCiAgICAgSlNTdGF0aWNWYWx1ZSB2YWw7
CiAgICAgdmFsLm5hbWUgPSAic29tZXRoaW5nIjsKIH0KLSNpZiBDT01QSUxFUihHQ0MpCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitJR05PUkVfR0NDX1dBUk5JTkdfRU5ECiAK
ICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCmluZGV4IDU1OTkwOGFkZDAzZGUyMTVhYTYwYWY3Mjgw
OWZhMzNlMWM5ZDk3YTkuLmUxOTRlYzcxZjVkYjA1N2QxOGM5NDY4NWFiNTNiOGY2OGM1Y2NhNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCkBAIC0y
NjMsMTUgKzI2MywxMSBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8UHRyVGFnIHRhZywgdHlwZW5h
bWUuLi4gQXJncz4KICAgICBDb2RlUmVmPHRhZz4gZmluYWxpemVDb2RlV2l0aERpc2Fzc2VtYmx5
KGNvbnN0IGNoYXIqIGZvcm1hdCwgQXJncy4uLiBhcmdzKQogICAgIHsKLSNpZiBDT01QSUxFUihH
Q0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtc2VjdXJpdHkiCi0jZW5kaWYKKyAgICAgICAgQUxMT1df
Tk9OTElURVJBTF9GT1JNQVRfQkVHSU4KKyAgICAgICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1X
Zm9ybWF0LXNlY3VyaXR5IikKICAgICAgICAgcmV0dXJuIGZpbmFsaXplQ29kZVdpdGhEaXNhc3Nl
bWJseUltcGwoZm9ybWF0LCBhcmdzLi4uKS50ZW1wbGF0ZSByZXRhZ2dlZDx0YWc+KCk7Ci0jaWYg
Q09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRp
ZgorICAgICAgICBJR05PUkVfV0FSTklOR19FTkQKKyAgICAgICAgQUxMT1dfTk9OTElURVJBTF9G
T1JNQVRfRU5ECiAgICAgfQogCiAgICAgdGVtcGxhdGU8UHRyVGFnIHRhZz4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKaW5kZXggMmNkYjcyNDNkMzRlMjdlNTc2MWM5
MzQ5MzVjZTU1MTgxNGQ1YjYyYS4uYjA4N2YzMmIzMDcyZTFhMjYyYmU0ZGE0NDBjZmY5YjBjZDYy
OWJjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKQEAgLTYy
LDEwICs2Miw5IEBACiAjaW5jbHVkZSA8d3RmL0luZGV4U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xp
c3REdW1wLmg+CiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
cmV0dXJuLXR5cGUiCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQK
KyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9CRUdJTgorI2VuZGlmCiAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCkBAIC0zNTI3LDggKzM1MjYsOCBAQCB2
b2lkIGxvd2VyVG9BaXIoUHJvY2VkdXJlJiBwcm9jZWR1cmUpCiAKIH0gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpCMwogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElT
QUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9FTkQKKyNlbmRp
ZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM09wY29kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNv
ZGUuY3BwCmluZGV4IDdlYmY2NmI3MGE0NTBjOTJhZTE1NDlkNTI2NGJjOTkwZGExYmVjMTQuLmUy
MGU2OWQ1YTkzNDNlN2RjOGFjNTU5YTA5ZjNlNTQ0ZTgwZTgxMWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzT3Bjb2RlLmNwcApAQCAtMzAsMTAgKzMwLDkgQEAKIAogI2luY2x1ZGUgPHd0Zi9Q
cmludFN0cmVhbS5oPgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV3JldHVybi10eXBlIgotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FC
TEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfQkVHSU4KKyNlbmRp
ZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIApAQCAtMzczLDggKzM3Miw4IEBA
IHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBPcGNvZGUgb3Bjb2RlKQogCiB9
IC8vIG5hbWVzcGFjZSBXVEYKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVE
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYg
QVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVf
RU5ECisjZW5kaWYKIAogI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNUeXBlLmgKaW5kZXggNGNlYWE4YTFkZjE0YjhiNmI2OGUwZTgwYmZlYjZhOWUwYTJkOGU4Mi4u
ODYwN2IzMjhlMTg0NzhjYmIzNTI3MWQwMmViNWY1N2JiNTM4YjM1MCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1R5cGUuaApAQCAtMzAsMTAgKzMwLDkgQEAKICNpbmNsdWRlICJCM0NvbW1vbi5oIgog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNT
RVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0Mp
ICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9U
WVBFX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAg
LTg3LDggKzg2LDggQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwgSlNDOjpCMzo6
VHlwZSk7CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NF
UlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElM
RVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9S
RVRVUk5fVFlQRV9FTkQKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGVNYXAuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1R5cGVNYXAuaAppbmRleCBjMGVhNDEzMDQ4YTU1NTZmNWRjMzQ1OGQz
ODQwZTVmYjViOTlkNmQxLi40NDU2OGFiMzM2ZjAxYzM2YjQzYTMxOTE4NWRjMGUxM2Q4OTEwZDQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNUeXBlTWFwLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVHlwZU1hcC5oCkBAIC0zMCwxMCArMzAsOSBAQAog
I2luY2x1ZGUgIkIzVHlwZS5oIgogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogCi0jaWYg
Q09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2Vu
ZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FC
TEVECitJR05PUkVfUkVUVVJOX1RZUEVfQkVHSU4KKyNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIEIzIHsKIApAQCAtMTAxLDggKzEwMCw4IEBAIHByaXZhdGU6CiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpCMwogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBB
U1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9F
TkQKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dpZHRoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNXaWR0aC5oCmluZGV4IGUzNjU4M2Y2OTRiODgzZmIyYjg4OWQwMTMxMDgzNGEwNTMxY2ZjNDcu
LjRlNzY1OGNlYzFhNTkwMzU3OTUwY2Y1MTg2MjQxOGY5NDg1ODEwNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dpZHRoLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzV2lkdGguaApAQCAtMzAsMTAgKzMwLDkgQEAKICNpbmNsdWRlICJCM0JhbmsuaCIK
ICNpbmNsdWRlICJCM1R5cGUuaCIKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FC
TEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VS
VF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lO
CisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTE0Myw5ICsx
NDIsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBKU0M6OkIzOjpXaWR0aCk7
CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElT
QUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0ND
KSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5f
VFlQRV9FTkQKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3BwCmluZGV4IGY5ZTQ2OWMwNDdjYmViMzg3MTc3NzUx
YzQ5Yzc2NmM1NzllNjg1MzkuLmRiZTJhMzM3YTg1OTBkZDEzNWZiOGM2ZGNhN2EzZGRmODAwNTA2
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKQEAgLTM0LDEwICsz
NCw5IEBACiAjaW5jbHVkZSAiRlBSSW5mby5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKIAotI2lm
IENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNl
bmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNB
QkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCkBAIC0zNzksOCArMzc4LDggQEAgdm9p
ZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEFyZzo6U2lnbmVkbmVzcyBzaWduZWRu
ZXNzKQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJU
X0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVS
KEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVU
VVJOX1RZUEVfRU5ECisjZW5kaWYKIAogI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAppbmRleCA4MzhmY2E4OTIxMjcxYzFiMDc3OGIyNWQ0
NTA1NzlkZTQzNzk1NzY3Li40NmVmZTlkMjM4YzkwYjA1ZDk0ZGU4OGViNDZmMTI4NDY3NTVlY2Jh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKQEAgLTM1LDEwICszNSw5IEBA
CiAjaW5jbHVkZSAiQjNXaWR0aC5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCi0jaWYg
Q09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2Vu
ZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FC
TEVECitJR05PUkVfUkVUVVJOX1RZUEVfQkVHSU4KKyNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIEIzIHsKIApAQCAtMTQ5NCw4ICsxNDkzLDggQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
SGFzaFRyYWl0czxKU0M6OkIzOjpBaXI6OkFyZz4gOiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SlND
OjpCMzoKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VS
VF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAvLyBDT01QSUxF
UihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JF
VFVSTl9UWVBFX0VORAorI2VuZGlmCiAKICNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAppbmRleCA3NTk3MDMwZmRjZjA0MmJmYzNkOGRl
YTIyODFiOWViMjhiYTI1NDM1Li43YjhkZDNlNmRmYWRhOTU3OWZiN2JiYWM5OWU4NjRmYTgxYzE5
MjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaApAQCAtNDQsMTAgKzQ0
LDkgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIGNsYXNzIFByb2NlZHVyZTsK
IAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlw
ZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VS
VF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNl
IEFpciB7CiAKQEAgLTM4OCw4ICszODcsOCBAQCBwcml2YXRlOgogCiB9IH0gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpCMzo6QWlyCiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAot
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFT
U0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0VO
RAorI2VuZGlmCiAKICNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL09wY29kZS5oCmluZGV4IDA3ZDlhNzMxNGVlYjEwOWM3MzEyMzdkNGJlMzI3MTMx
YjExYzk0ZWUuLjM4YWQ1MTA1N2Q4OTg3ODkyNDFjOWFhYmIyNDZjMTBlNjk3ZGIwNTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKQEAgLTc0LDE4ICs3NCwxMyBAQCBj
b25zdCBpbnQgbnVtT3Bjb2RlSURzID0gTlVNQkVSX09GX0JZVEVDT0RFX0lEUyArIE5VTUJFUl9P
Rl9CWVRFQ09ERV9IRUxQRVJfSURTOwogICAgIGNvbnN0IGludCBvcGNvZGVMZW5ndGhzW251bU9w
Y29kZUlEc10gPSB7IEZPUl9FQUNIX09QQ09ERV9JRChPUENPREVfSURfTEVOR1RIX01BUCkgfTsK
ICN1bmRlZiBPUENPREVfSURfTEVOR1RIX01BUAogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
dHlwZS1saW1pdHMiCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0JFR0lOKCItV3R5cGUtbGltaXRz
IikKIAogI2RlZmluZSBWRVJJRllfT1BDT0RFX0lEKGlkLCBzaXplKSBDT01QSUxFX0FTU0VSVChp
ZCA8PSBudW1PcGNvZGVJRHMsIEFTU0VSVF9USEFUX0pTX09QQ09ERV9JRFNfQVJFX1ZBTElEKTsK
ICAgICBGT1JfRUFDSF9PUENPREVfSUQoVkVSSUZZX09QQ09ERV9JRCk7CiAjdW5kZWYgVkVSSUZZ
X09QQ09ERV9JRAogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
b3AKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdfRU5ECiAKICNpZiBFTkFCTEUoQ09NUFVURURfR09U
T19PUENPREVTKQogdHlwZWRlZiB2b2lkKiBPcGNvZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGJkMThmOWRmOWI3ZTg1MzA5MjNl
ZGY2ZTBiNDEwOGY2ZDI5N2EwNjcuLjU4OTRiNTY3NzJkYWExYmU0MDQxMzg2ZWNhMDU5NDczNDMx
ZTU4MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCkBAIC05NjU3LDE0ICs5NjU3LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3Vs
YXRlTnVtYmVyKEVkZ2UgZWRnZSkKICAgICAgICAgSlNWYWx1ZVJlZ3MoZ3ByKSwgZWRnZSwgU3Bl
Y0J5dGVjb2RlTnVtYmVyLAogICAgICAgICBtX2ppdC5icmFuY2hJZk5vdE51bWJlcihncHIpKTsK
ICNlbHNlCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZW51bS1jb21wYXJlIgot
I2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XZW51bS1jb21wYXJlIikKICAgICBz
dGF0aWNfYXNzZXJ0KEpTVmFsdWU6OkludDMyVGFnID49IEpTVmFsdWU6Okxvd2VzdFRhZywgIklu
dDMyVGFnIGlzIGluY2x1ZGVkIGluID49IEpTVmFsdWU6Okxvd2VzdFRhZyByYW5nZS4iKTsKLSNp
ZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2Vu
ZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfRU5ECiAgICAgR1BSUmVnIHRhZ0dQUiA9IHZhbHVlLnRh
Z0dQUigpOwogICAgIERGR19UWVBFX0NIRUNLKAogICAgICAgICB2YWx1ZS5qc1ZhbHVlUmVncygp
LCBlZGdlLCB+U3BlY0ludDMyT25seSwKQEAgLTEwMTcxLDE0ICsxMDE2Niw5IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1pc2MoRWRnZSBlZGdlLCBKU1ZhbHVlUmVncyByZWdzKQog
ICAgICAgICByZWdzLCBlZGdlLCBTcGVjTWlzYywKICAgICAgICAgbV9qaXQuYnJhbmNoNjQoTWFj
cm9Bc3NlbWJsZXI6OkFib3ZlLCByZWdzLmdwcigpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTY0KFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0JpdEJvb2wgfCBUYWdCaXRVbmRlZmluZWQpKSk7CiAj
ZWxzZQotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2VudW0tY29tcGFyZSIKLSNl
bmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0JFR0lOKCItV2VudW0tY29tcGFyZSIpCiAgICAgc3Rh
dGljX2Fzc2VydChKU1ZhbHVlOjpJbnQzMlRhZyA+PSBKU1ZhbHVlOjpVbmRlZmluZWRUYWcsICJJ
bnQzMlRhZyBpcyBpbmNsdWRlZCBpbiA+PSBKU1ZhbHVlOjpVbmRlZmluZWRUYWcgcmFuZ2UuIik7
Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AK
LSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0VORAogICAgIERGR19UWVBFX0NIRUNLKAogICAg
ICAgICByZWdzLCBlZGdlLCB+U3BlY0ludDMyT25seSwKICAgICAgICAgbV9qaXQuYnJhbmNoSWZJ
bnQzMihyZWdzLnRhZ0dQUigpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCA3ZTFjYmNmOGVkOTY1ZWNjOWE2Y2E4NjRkNWI4
N2ZlMWI3NDVkN2ViLi41ZjdmNDJmMGUyNzczM2IwOGZmNmFmNDI2ZjUyYTIwM2FhZWI0ZTdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKQEAgLTg3NiwxMiArODc2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9k
ZSogbm9kZSkKIAogLy8gQ2xhbmcgc2hvdWxkIGFsbG93IHVucmVhY2hhYmxlIFtbY2xhbmc6OmZh
bGx0aHJvdWdoXV0gaW4gdGVtcGxhdGUgZnVuY3Rpb25zIGlmIGFueSB0ZW1wbGF0ZSBleHBhbnNp
b24gdXNlcyBpdAogLy8gaHR0cDovL2xsdm0ub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTE4NjE5
Ci0jaWYgQ09NUElMRVIoQ0xBTkcpICYmIGRlZmluZWQoX19oYXNfd2FybmluZykKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jaWYgX19oYXNfd2FybmluZygiLVdpbXBsaWNpdC1mYWxs
dGhyb3VnaCIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdpbXBsaWNpdC1m
YWxsdGhyb3VnaCIKLSNlbmRpZgotI2VuZGlmCitJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigi
LVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIpCiB0ZW1wbGF0ZTxib29sIHN0cmljdD4KIEdQUlJlZyBT
cGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMySW50ZXJuYWwoRWRnZSBlZGdlLCBEYXRh
Rm9ybWF0JiByZXR1cm5Gb3JtYXQpCiB7CkBAIC0xMDEyLDkgKzEwMDcsNyBAQCBHUFJSZWcgU3Bl
Y3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJbnQzMkludGVybmFsKEVkZ2UgZWRnZSwgRGF0YUZv
cm1hdCYgcmV0dXJuRgogICAgICAgICByZXR1cm4gSW52YWxpZEdQUlJlZzsKICAgICB9CiB9Ci0j
aWYgQ09NUElMRVIoQ0xBTkcpICYmIGRlZmluZWQoX19oYXNfd2FybmluZykKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAKIEdQ
UlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMyKEVkZ2UgZWRnZSwgRGF0YUZv
cm1hdCYgcmV0dXJuRm9ybWF0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExPdXRwdXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgK
aW5kZXggOWY1OTM2OWM4OWJlNTdlNmVlNzc5ZTExNmYzN2ZlNmMyYjdlOTcwZi4uNWEzN2QwM2Zh
ODY0ZjI1NWEzYzYxOTYxMjI0NDJiMWY4NzI5ZDY0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTE91dHB1dC5oCkBAIC01MCwxMSArNTAsOCBAQAogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmlu
dFN0cmVhbS5oPgogCiAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgb25jZSBldmVyeXRoaW5nIGNhbiBi
ZSBnZW5lcmF0ZWQgdGhyb3VnaCBCMy4KLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdtaXNzaW5nLW5vcmV0dXJuIgotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vu
dXNlZC1wYXJhbWV0ZXIiCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDX09SX0NMQU5HKQorSUdOT1JF
X1dBUk5JTkdfQkVHSU4oIi1XbWlzc2luZy1ub3JldHVybiIpCitBTExPV19VTlVTRURfUEFSQU1F
VEVSX0JFR0lOCiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC01MDAsOSArNDk3LDggQEAgaW5saW5l
IHZvaWQgT3V0cHV0OjphZGRJbmNvbWluZ1RvUGhpKExWYWx1ZSBwaGksIFZhbHVlRnJvbUJsb2Nr
IHZhbHVlLCBQYXJhbXMuLi4KICAgICBhZGRJbmNvbWluZ1RvUGhpKHBoaSwgdGhlUmVzdC4uLik7
CiB9CiAKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQ19PUl9DTEFORykKK0FMTE9XX1VOVVNFRF9QQVJB
TUVURVJfRU5ECitJR05PUkVfV0FSTklOR19FTkQKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZU
TAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCAxZDhlM2Jl
ZTliNmJkNjdlNzA5MzQ3NTUzNmQyYmQ1N2QxZjMxODNmLi5lOTY5MjExMWJkMTBhYWE4NWUwM2Qw
ZTUwZjk3OTE0MDkzY2EwMzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0NDYWxsSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxw
ZXJzLmgKQEAgLTMyOSwxNCArMzI5LDkgQEAgcHJpdmF0ZToKIAogICAgICAgICBjdXJyZW50R1BS
QXJndW1lbnQgKz0gZXh0cmFHUFJBcmdzOwogICAgICAgICBjdXJyZW50RlBSQXJndW1lbnQgLT0g
bnVtQ3Jvc3NTb3VyY2VzOwotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3R5cGUt
bGltaXRzIgotI2VuZGlmCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0JFR0lOKCItV3R5cGUtbGlt
aXRzIikKICAgICAgICAgQVNTRVJUKGN1cnJlbnRHUFJBcmd1bWVudCA+PSBHUFJJbmZvOjpudW1i
ZXJPZkFyZ3VtZW50UmVnaXN0ZXJzIHx8IGN1cnJlbnRGUFJBcmd1bWVudCA+PSBGUFJJbmZvOjpu
dW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKTsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgICAgIElHTk9SRV9XQVJOSU5H
X0VORAogCiAgICAgICAgIHVuc2lnbmVkIHBva2VPZmZzZXQgPSBQT0tFX0FSR1VNRU5UX09GRlNF
VCArIGV4dHJhUG9rZTsKICAgICAgICAgcG9rZU9mZnNldCArPSBzdGQ6Om1heChjdXJyZW50R1BS
QXJndW1lbnQsIG51bWJlck9mR1BBcmd1bWVudFJlZ2lzdGVycykgLSBudW1iZXJPZkdQQXJndW1l
bnRSZWdpc3RlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnREYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCmlu
ZGV4IGM5M2QxNWM3NGM1OGZmNWQ5NmFhMGFhZDk0MzQxM2YwODVhM2Q5MmUuLjQ4NDQwYmQxNjgz
MTY0MzEwZDViODJjMTFlNjkwOTIyMmJiMWY3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludERhdGEuY3BwCkBAIC02NywxMCArNjcsNyBAQCB2b2lkIGluaXRpYWxpemUoKQog
I2VuZGlmIC8vIEVOQUJMRShKSVQpCiB9CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdtaXNzaW5nLW5vcmV0dXJuIgotI2VuZGlmCitJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTigi
LVdtaXNzaW5nLW5vcmV0dXJuIikKIHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0mIHZt
KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0xOTksOCArMTk2LDYgQEAgdm9pZCBEYXRh
OjpwZXJmb3JtQXNzZXJ0aW9ucyhWTSYgdm0pCiAgICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6
OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOwogICAgIH0K
IH0KLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNl
bmRpZgorSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpM
TEludApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1Bh
dGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAK
aW5kZXggMjg0MzMwNWIzMDZhMThkZDk0OGE3ZTFkOWVjMDEwNDEzYmQ4NjFhYi4uNGFlYmQ2OTRh
MDE3ZTFkNjBlYTBlZWY3ZjMyNmY1NzRmYmNkNmY3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC0yMDUsMTYgKzIwNSwxMiBAQCB2b2lk
IHNsb3dQYXRoTG4oY29uc3QgVHlwZXMmLi4uIHZhbHVlcykKIHRlbXBsYXRlPHR5cGVuYW1lLi4u
IFR5cGVzPgogdm9pZCBzbG93UGF0aExvZ0YoY29uc3QgY2hhciogZm9ybWF0LCBjb25zdCBUeXBl
cyYuLi4gdmFsdWVzKQogewotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1h
dC1ub25saXRlcmFsIgotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1z
ZWN1cml0eSIKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lOCisgICAg
SUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XZm9ybWF0LXNlY3VyaXR5IikKICAgICBpZiAoT3B0aW9u
czo6dHJhY2VMTEludFNsb3dQYXRoKCkpCiAgICAgICAgIGRhdGFMb2dGKGZvcm1hdCwgdmFsdWVz
Li4uKTsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHBvcAotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfRU5ECisgICAgQUxMT1dfTk9OTElURVJB
TF9GT1JNQVRfRU5ECiB9CiAKICNlbHNlIC8vIG5vdCBMTElOVF9UUkFDSU5HCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25maWdGaWxlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCmluZGV4IDk4YzE5NmY4MmY2ODUx
YmRmNzBlZjhkNjIyM2I1YTE2OTEyOTM2MmYuLjE0MDE3ZDRkM2Q4MWYxZjUzYjg4MTI2ZTJlYjU5
OGNmYTZhZGJkOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bmZpZ0ZpbGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0Zp
bGUuY3BwCkBAIC00OTEsMTQgKzQ5MSwxMyBAQCB2b2lkIENvbmZpZ0ZpbGU6OmNhbm9uaWNhbGl6
ZVBhdGhzKCkKICAgICAgICAgICAgICAgICAgICAgc3RybmNhdChmaWxlbmFtZUJ1ZmZlciwgIi8i
LCAyKTsgLy8gUm9vbSBmb3IgJy8nIHBsdXMgTlVMCiAjaWYgQ09NUElMRVIoR0NDKQogI2lmIEdD
Q19WRVJTSU9OX0FUX0xFQVNUKDgsIDAsIDApCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdzdHJpbmdvcC10cnVuY2F0aW9uIgor
ICAgICAgICAgICAgICAgIElHTk9SRV9HQ0NfV0FSTklOR19CRUdJTigiLVdzdHJpbmdvcC10cnVu
Y2F0aW9uIikKICNlbmRpZgogI2VuZGlmCiAgICAgICAgICAgICAgICAgc3RybmNhdChmaWxlbmFt
ZUJ1ZmZlciwgbV9maWxlbmFtZSwgc2l6ZW9mKGZpbGVuYW1lQnVmZmVyKSAtIHN0cmxlbihmaWxl
bmFtZUJ1ZmZlcikgLSAxKTsKICNpZiBDT01QSUxFUihHQ0MpCiAjaWYgR0NDX1ZFUlNJT05fQVRf
TEVBU1QoOCwgMCwgMCkKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAg
ICAgSUdOT1JFX0dDQ19XQVJOSU5HX0VORAogI2VuZGlmCiAjZW5kaWYKICAgICAgICAgICAgICAg
ICBzdHJuY3B5KG1fZmlsZW5hbWUsIGZpbGVuYW1lQnVmZmVyLCBzX21heFBhdGhMZW5ndGgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlld1Byb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90
eXBlLmNwcAppbmRleCBmMDVjZmY1Zjg4YTU1MWMzYTdjNGJhYWQyZjAzYzViNDc3ODlhZjZkLi40
Mzk2NjBkY2FjNGQzMmJmODdkZWNjZjcxNjkyNTYwYjczYTQ1NmExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcApAQCAt
MjA4LDEwICsyMDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBzZXREYXRhKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi0jaWYgQ09N
UElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbWlzc2luZy1wcm90b3R5cGVzIgotI2VuZGlmCitJR05P
UkVfQ0xBTkdfV0FSTklOR19CRUdJTigiLVdtaXNzaW5nLXByb3RvdHlwZXMiKQogCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9HZXR0ZXJCdWZmZXIoRXhlY1N0YXRl
KiBleGVjKQogewpAQCAtMzI4LDggKzMyNSw2IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRGbG9hdDY0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBy
ZXR1cm4gc2V0RGF0YTxGbG9hdDY0QWRhcHRvcj4oZXhlYyk7CiB9Ci0jaWYgQ09NUElMRVIoQ0xB
TkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9DTEFOR19X
QVJOSU5HX0VORAogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29u
c3RydWN0b3IuaAppbmRleCA4YWNmZDQ4ZTIzZmZkOTZjYmNiMmZiYjdiZjcxMmY3ODA4ZjVhNDQw
Li4zMGY3NjVmNThlYjQ4NjM3ZGE2MGQzNTc1Njk4ZjlhMWIwYWE3NjkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCkBAIC00MywxOSArNDMsMTAgQEAgcHVibGljOgogICAg
ICAgICBWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNPYmplY3QqIHByb3RvdHlw
ZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBGdW5jdGlvbkV4ZWN1dGFibGUqIHByaXZhdGVBbGxvY2F0
b3IpOwogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBmaXggdGhlIHdhcm5pbmdzIGZvciBleHRl
cm4tdGVtcGxhdGUgaW4gSlNPYmplY3QgdGVtcGxhdGUgY2xhc3NlczogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTk3OQotI2lmIENPTVBJTEVSKENMQU5HKQotI2lm
IF9faGFzX3dhcm5pbmcoIi1XdW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIpCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5k
ZWZpbmVkLXZhci10ZW1wbGF0ZSIKLSNlbmRpZgotI2VuZGlmCisgICAgSUdOT1JFX0NMQU5HX1dB
Uk5JTkdfQkVHSU4oIi1XdW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIpCiAgICAgREVDTEFSRV9JTkZP
OwotI2lmIENPTVBJTEVSKENMQU5HKQotI2lmIF9faGFzX3dhcm5pbmcoIi1XdW5kZWZpbmVkLXZh
ci10ZW1wbGF0ZSIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKLSNlbmRp
ZgotICAgIAorICAgIElHTk9SRV9DTEFOR19XQVJOSU5HX0VORAorCiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3Rv
dHlwZSk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaAppbmRleCA0ZTFlYjdk
ODgzNGNiYzVkZTcyY2Q2Y2M2YjFkMjRiNDYxNDNjNWI2Li43MmQyM2Y1M2UxZDgxOWIxNDBlMzJh
MDc0MTQzM2NkZmRjZDM5MzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmgKQEAg
LTQzLDE4ICs0Myw5IEBAIHB1YmxpYzoKICAgICAgICAgVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZSopOwogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBmaXggdGhlIHdhcm5pbmdzIGZv
ciBleHRlcm4tdGVtcGxhdGUgaW4gSlNPYmplY3QgdGVtcGxhdGUgY2xhc3NlczogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTk3OQotI2lmIENPTVBJTEVSKENMQU5H
KQotI2lmIF9faGFzX3dhcm5pbmcoIi1XdW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIpCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XdW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIKLSNlbmRpZgotI2VuZGlmCisgICAgSUdOT1JFX0NM
QU5HX1dBUk5JTkdfQkVHSU4oIi1XdW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIpCiAgICAgREVDTEFS
RV9JTkZPOwotI2lmIENPTVBJTEVSKENMQU5HKQotI2lmIF9faGFzX3dhcm5pbmcoIi1XdW5kZWZp
bmVkLXZhci10ZW1wbGF0ZSIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYK
LSNlbmRpZgorICAgIElHTk9SRV9DTEFOR19XQVJOSU5HX0VORAogICAgIAogICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBw
cm90b3R5cGUpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAK
aW5kZXggNDA3YzU3MDQ3NDZiMDRjZmY3NGRmYTk4YjliYzMxM2ZjNzMzNjY0Zi4uYmU3MDFkNDEz
ZjcyNTdkZDVkZWY3MWM0YTU3MjU3NjBlMTQyNjdlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAgLTc0NCwxMiArNzQ0LDcgQEAgYm9vbCBPcHRpb25zOjpz
ZXRBbGlhc2VkT3B0aW9uKGNvbnN0IGNoYXIqIGFyZykKICAgICBpZiAoIWVxdWFsU3RyKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJu
aW5nKCItV3RhdXRvbG9naWNhbC1jb21wYXJlIikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd0YXV0b2xvZ2ljYWwtY29t
cGFyZSIKLSNlbmRpZgotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XdGF1dG9s
b2dpY2FsLWNvbXBhcmUiKQogCiAgICAgLy8gRm9yIGVhY2ggb3B0aW9uLCBjaGVjayBpZiB0aGUg
c3BlY2lmeSBhcmcgaXMgYSBtYXRjaC4gSWYgc28sIHNldCB0aGUgYXJnCiAgICAgLy8gaWYgdGhl
IHZhbHVlIG1ha2VzIHNlbnNlLiBPdGhlcndpc2UsIG1vdmUgb24gdG8gY2hlY2tpbmcgdGhlIG5l
eHQgb3B0aW9uLgpAQCAtNzcyLDExICs3NjcsNyBAQCBib29sIE9wdGlvbnM6OnNldEFsaWFzZWRP
cHRpb24oY29uc3QgY2hhciogYXJnKQogICAgIEpTQ19BTElBU0VEX09QVElPTlMoRk9SX0VBQ0hf
T1BUSU9OKQogI3VuZGVmIEZPUl9FQUNIX09QVElPTgogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0j
aWYgX19oYXNfd2FybmluZygiLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HX0VORAog
CiAgICAgcmV0dXJuIGZhbHNlOyAvLyBObyBvcHRpb24gbWF0Y2hlZC4KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9Db2RlUHJvZmlsaW5nLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90b29scy9Db2RlUHJvZmlsaW5nLmNwcAppbmRleCBjM2RhOGMyYzI5M2Zj
YzliY2M3M2RmMTJmNjk2ZjRjZTNiNDk4ZGEzLi4yM2RmMWI5MGVmNTExMTY3NjMzYWYxNGY2OGRh
MTBmZTZiMDRhZmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29k
ZVByb2ZpbGluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9m
aWxpbmcuY3BwCkBAIC00NCwxMCArNDQsNyBAQCB2b2xhdGlsZSBDb2RlUHJvZmlsZSogQ29kZVBy
b2ZpbGluZzo6c19wcm9maWxlU3RhY2sgPSAwOwogQ29kZVByb2ZpbGluZzo6TW9kZSBDb2RlUHJv
ZmlsaW5nOjpzX21vZGUgPSBDb2RlUHJvZmlsaW5nOjpEaXNhYmxlZDsKIFdURjo6TWV0YUFsbG9j
YXRvclRyYWNrZXIqIENvZGVQcm9maWxpbmc6OnNfdHJhY2tlciA9IDA7CiAKLSNpZiBDT01QSUxF
UihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdtaXNzaW5nLW5vcmV0dXJuIgotI2VuZGlmCitJR05PUkVfQ0xB
TkdfV0FSTklOR19CRUdJTigiLVdtaXNzaW5nLW5vcmV0dXJuIikKIAogI2lmIEhBVkUoTUFDSElO
RV9DT05URVhUKQogLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHN0YXJ0ICYgc3RvcCB0aGUgdGltZXIu
CkBAIC02Myw5ICs2MCw3IEBAIHN0YXRpYyB2b2lkIHNldFByb2ZpbGVUaW1lcih1bnNpZ25lZCB1
c2VjKQogfQogI2VuZGlmCiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAKICNpZiBIQVZF
KE1BQ0hJTkVfQ09OVEVYVCkKIHN0YXRpYyB2b2lkIHByb2ZpbGluZ1RpbWVyKGludCwgc2lnaW5m
b190Kiwgdm9pZCogdWFwKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVNlY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvbnMu
aAppbmRleCBlNjkyNGI3OTUzY2MzNjQ2YmVlOTA4NDQxYTYzYzYzYzI5NGE3N2Q2Li4wMDZhZjc5
MTdjZjY4OWZhZjEyYWYzYmE0NzZkMjEwZDhjZDdlNzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtU2VjdGlvbnMuaApAQCAtMjcsMTAgKzI3LDkgQEAKIAogI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxF
RAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lOCisjZW5kaWYK
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIApAQCAtMTA3LDggKzEwNiw4IEBA
IGlubGluZSBjb25zdCBjaGFyKiBtYWtlU3RyaW5nKFNlY3Rpb24gc2VjdGlvbikKIAogfSB9IC8v
IG5hbWVzcGFjZSBKU0M6Oldhc20KIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FC
TEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykg
JiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZ
UEVfRU5ECisjZW5kaWYKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5l
c0hlYWRlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2FzbVZhbGlk
YXRlSW5saW5lc0hlYWRlci5weQppbmRleCBiYzU0YTIyMzc0NjVkYjljN2Q5MDNmMjJhOTU0MmEx
Y2E2OGVmNTU1Li5mMzRiYjRjMmQwNjljN2RkOWJjNDg2OTgyMDNiZTE4ZDlmMTFkZjEzIDEwMDc1
NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9nZW5lcmF0ZVdhc21WYWxpZGF0ZUlu
bGluZXNIZWFkZXIucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vZ2VuZXJhdGVX
YXNtVmFsaWRhdGVJbmxpbmVzSGVhZGVyLnB5CkBAIC0xMjcsMTAgKzEyNyw5IEBAIGNvbnRlbnRz
ID0gd2FzbS5oZWFkZXIgKyAiIiIKIAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAot
I2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIK
LSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9E
SVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBXYXNtIHsKIApAQCAtMTYwLDkgKzE1OSw5IEBAIGF1dG8gVmFsaWRhdGU6
OnN0b3JlKFN0b3JlT3BUeXBlIG9wLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9u
VHlwZSB2YWx1CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKLSNpZiBDT01QSUxFUihH
Q0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRp
ZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxF
RAorSUdOT1JFX1JFVFVSTl9UWVBFX0VORAorI2VuZGlmCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VC
QVNTRU1CTFkpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwIGIv
U291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKaW5kZXggZmU4ZmFjMDdkNmY3NTczZTAyZjI2
OWRlNWIwYjUwZjJiZGU3ZGM1ZC4uZDk2NmFkODZjODQ5ZmMzNTI2NmFlOWZiNDU0YmEwN2QyZDEx
NTk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAKQEAgLTc5LDEwICs3OSw5IEBAIGV4dGVybiAiQyIg
ewogc3RhdGljIHZvaWQgbG9nVG9TdGRlcnIoY29uc3QgY2hhciogYnVmZmVyKQogewogI2lmIFVT
RShBUFBMRV9TWVNURU1fTE9HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBhc2xfbG9nKDAsIDAsIEFT
TF9MRVZFTF9OT1RJQ0UsICIlcyIsIGJ1ZmZlcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZgogICAgIGZwdXRz
KGJ1ZmZlciwgc3RkZXJyKTsKIH0KQEAgLTk0LDE0ICs5Myw5IEBAIHN0YXRpYyB2b2lkIHZwcmlu
dGZfc3RkZXJyX2NvbW1vbihjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QgYXJncykKICAgICBp
ZiAoc3Ryc3RyKGZvcm1hdCwgIiVAIikpIHsKICAgICAgICAgYXV0byBjZkZvcm1hdCA9IGFkb3B0
Q0YoQ0ZTdHJpbmdDcmVhdGVXaXRoQ1N0cmluZyhudWxscHRyLCBmb3JtYXQsIGtDRlN0cmluZ0Vu
Y29kaW5nVVRGOCkpOwogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LW5v
bmxpdGVyYWwiCi0jZW5kaWYKKyAgICAgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVHSU4K
ICAgICAgICAgYXV0byBzdHIgPSBhZG9wdENGKENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdEFuZEFy
Z3VtZW50cyhudWxscHRyLCBudWxscHRyLCBjZkZvcm1hdC5nZXQoKSwgYXJncykpOwotI2lmIENP
TVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAg
ICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0VORAogICAgICAgICBDRkluZGV4IGxlbmd0aCA9
IENGU3RyaW5nR2V0TWF4aW11bVNpemVGb3JFbmNvZGluZyhDRlN0cmluZ0dldExlbmd0aChzdHIu
Z2V0KCkpLCBrQ0ZTdHJpbmdFbmNvZGluZ1VURjgpOwogICAgICAgICBjb25zdGV4cHIgdW5zaWdu
ZWQgSW5pdGlhbEJ1ZmZlclNpemUgeyAyNTYgfTsKICAgICAgICAgVmVjdG9yPGNoYXIsIEluaXRp
YWxCdWZmZXJTaXplPiBidWZmZXIobGVuZ3RoICsgMSk7CkBAIC0xMTMsMTMgKzEwNywxMiBAQCBz
dGF0aWMgdm9pZCB2cHJpbnRmX3N0ZGVycl9jb21tb24oY29uc3QgY2hhciogZm9ybWF0LCB2YV9s
aXN0IGFyZ3MpCiAgICAgfQogCiAjaWYgVVNFKEFQUExFX1NZU1RFTV9MT0cpCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICB2YV9saXN0IGNvcHlPZkFyZ3M7CiAgICAgdmFfY29weShjb3B5T2ZBcmdz
LCBhcmdzKTsKICAgICBhc2xfdmxvZygwLCAwLCBBU0xfTEVWRUxfTk9USUNFLCBmb3JtYXQsIGNv
cHlPZkFyZ3MpOwogICAgIHZhX2VuZChjb3B5T2ZBcmdzKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZgog
CiAgICAgLy8gRmFsbCB0aHJvdWdoIHRvIHdyaXRlIHRvIHN0ZGVyciBpbiB0aGUgc2FtZSBtYW5u
ZXIgYXMgb3RoZXIgcGxhdGZvcm1zLgpAQCAtMTQxLDEwICsxMzQsNyBAQCBzdGF0aWMgdm9pZCB2
cHJpbnRmX3N0ZGVycl9jb21tb24oY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiAg
ICAgdmZwcmludGYoc3RkZXJyLCBmb3JtYXQsIGFyZ3MpOwogfQogCi0jaWYgQ09NUElMRVIoR0ND
X09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LW5vbmxpdGVyYWwiCi0jZW5kaWYKK0FMTE9XX05PTkxJ
VEVSQUxfRk9STUFUX0JFR0lOCiAKIHN0YXRpYyB2b2lkIHZwcmludGZfc3RkZXJyX3dpdGhfcHJl
Zml4KGNvbnN0IGNoYXIqIHByZWZpeCwgY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3Mp
CiB7CkBAIC0xNzQsOSArMTY0LDcgQEAgc3RhdGljIHZvaWQgdnByaW50Zl9zdGRlcnJfd2l0aF90
cmFpbGluZ19uZXdsaW5lKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmcKICAgICB2cHJp
bnRmX3N0ZGVycl9jb21tb24oZm9ybWF0V2l0aE5ld2xpbmUuZGF0YSgpLCBhcmdzKTsKIH0KIAot
I2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0j
ZW5kaWYKK0FMTE9XX05PTkxJVEVSQUxfRk9STUFUX0VORAogCiBXVEZfQVRUUklCVVRFX1BSSU5U
RigxLCAyKQogc3RhdGljIHZvaWQgcHJpbnRmX3N0ZGVycl9jb21tb24oY29uc3QgY2hhciogZm9y
bWF0LCAuLi4pCkBAIC0zODUsMTQgKzM3Myw5IEBAIHZvaWQgV1RGTG9nV2l0aExldmVsKFdURkxv
Z0NoYW5uZWwqIGNoYW5uZWwsIFdURkxvZ0xldmVsIGxldmVsLCBjb25zdCBjaGFyKiBmb3JtCiAg
ICAgdmFfbGlzdCBhcmdzOwogICAgIHZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7CiAKLSNpZiBDT01Q
SUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNlbmRpZgorICAgIEFM
TE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lOCiAgICAgV1RGTG9nKGNoYW5uZWwsIGZvcm1hdCwg
YXJncyk7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
Ci0jZW5kaWYKKyAgICBBTExPV19OT05MSVRFUkFMX0ZPUk1BVF9FTkQKIAogICAgIHZhX2VuZChh
cmdzKTsKIH0KQEAgLTQxNSwxNCArMzk4LDkgQEAgdm9pZCBXVEZMb2coV1RGTG9nQ2hhbm5lbCog
Y2hhbm5lbCwgY29uc3QgY2hhciogZm9ybWF0LCAuLi4pCiAgICAgdmFfbGlzdCBhcmdzOwogICAg
IHZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFU
X0JFR0lOCiAgICAgU3RyaW5nIGxvZ2dpbmdTdHJpbmcgPSBTdHJpbmc6OmZvcm1hdChmb3JtYXQs
IGFyZ3MpOwotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAotI2VuZGlmCisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfRU5ECiAKICAgICB2YV9lbmQo
YXJncyk7CiAKQEAgLTQ0MiwxNCArNDIwLDkgQEAgdm9pZCBXVEZMb2dWZXJib3NlKGNvbnN0IGNo
YXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyKiBmdW5jdGlvbiwgV1RGTG9nQ2hhbm4KICAg
ICB2YV9saXN0IGFyZ3M7CiAgICAgdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKIAotI2lmIENPTVBJ
TEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2VuZGlmCisgICAgQUxM
T1dfTk9OTElURVJBTF9GT1JNQVRfQkVHSU4KICAgICBXVEZMb2coY2hhbm5lbCwgZm9ybWF0LCBh
cmdzKTsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
LSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0VORAogCiAgICAgdmFfZW5kKGFy
Z3MpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9Bc3NlcnRpb25zLmgKaW5kZXggNWIyOGY4NmZhOTMxZDhjYTFhYzE4Mzg1ODVmMmYw
ZjJkMzVmNTlmNi4uOWMyZDNmY2ViZGFhZmUwNzYwZGY1ZTcwZjBkZjc4NjIwMzdhODg5YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0Fzc2VydGlvbnMuaApAQCAtNjAyLDE1ICs2MDIsMTQgQEAgaW5saW5lIHZvaWQgY29tcGlsZXJG
ZW5jZUZvckNyYXNoKCkKICNpZiBDT01QSUxFUihDTEFORykKIC8vIFRoaXMgd291bGQgYmUgYSBt
YWNybyBleGNlcHQgdGhhdCBpdHMgdXNlIG9mICNwcmFnbWEgd29ya3MgYmVzdCBhcm91bmQKIC8v
IGEgZnVuY3Rpb24uIEhlbmNlIGl0IHVzZXMgbWFjcm8gbmFtaW5nIGNvbnZlbnRpb24uCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XbWlzc2luZy1ub3JldHVybiIKK0lHTk9SRV9DTEFOR19XQVJOSU5HX0JFR0lOKCItV21p
c3Npbmctbm9yZXR1cm4iKQogc3RhdGljIGlubGluZSB2b2lkIFVOUkVBQ0hBQkxFX0ZPUl9QTEFU
Rk9STSgpCiB7CiAgICAgLy8gVGhpcyAqTVVTVCogYmUgYSByZWxlYXNlIGFzc2VydC4gV2UgdXNl
IGl0IGluIHBsYWNlcyB3aGVyZSBpdCdzIGJldHRlciB0byBjcmFzaCB0aGFuIHRvIGtlZXAKICAg
ICAvLyBnb2luZy4KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAjZWxzZQog
I2RlZmluZSBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKSBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmggYi9T
b3VyY2UvV1RGL3d0Zi9Db21waWxlci5oCmluZGV4IDc5OGMzMDkwYzliMWMxODU4MGEzYTZiZTZm
YWI2NWJkYWNlNmZmYWEuLjM3OWUzMmNhZjI3NjU4YjFhYTRkZDVhNGMwOGI5ZjU1ZGM5MmM0MDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmgKKysrIGIvU291cmNlL1dURi93
dGYvQ29tcGlsZXIuaApAQCAtMzg1LDQgKzM4NSw5NSBAQAogI2RlZmluZSBfX2hhc19pbmNsdWRl
KHBhdGgpIDAKICNlbmRpZgogCisvKiBJR05PUkVfV0FSTklORy4qICovCisKKy8vIENhbid0IHVz
ZSBXVEZfQ09OQ0FUKCkgYW5kIFNUUklOR0laRSgpIGJlY2F1c2UgdGhleSBhcmUgZGVmaW5lZCBp
bgorLy8gU3RkTGliRXh0cmFzLmggd2hpY2ggaW5jbHVkZXMgdXMKKyNkZWZpbmUgX0NPTVBJTEVS
X0NPTkNBVF9JKGEsIGIpIGEgIyMgYgorI2RlZmluZSBfQ09NUElMRVJfQ09OQ0FUKGEsIGIpIF9D
T01QSUxFUl9DT05DQVRfSShhLCBiKQorCisjZGVmaW5lIF9DT01QSUxFUl9TVFJJTkdJWkUoZXhw
KSAjZXhwCisKKyNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCisjZGVmaW5lIElHTk9SRV9XQVJO
SU5HX0JFR0lOX0NPTkQoY29uZCwgY29tcGlsZXIsIHdhcm5pbmcpIFwKKyAgICBfUHJhZ21hKF9D
T01QSUxFUl9TVFJJTkdJWkUoY29tcGlsZXIgZGlhZ25vc3RpYyBwdXNoKSkgXAorICAgIF9DT01Q
SUxFUl9DT05DQVQoSUdOT1JFX1dBUk5JTkdfQkVHSU5fSU1QTF8sIGNvbmQpKGNvbXBpbGVyLCB3
YXJuaW5nKQorCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0JFR0lOX0lNUExfMShjb21waWxlciwg
d2FybmluZykgXAorICAgIF9QcmFnbWEoX0NPTVBJTEVSX1NUUklOR0laRShjb21waWxlciBkaWFn
bm9zdGljIGlnbm9yZWQgd2FybmluZykpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0JFR0lOX0lN
UExfMChjb21waWxlciwgd2FybmluZykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdfQkVHSU5fSU1Q
TF8oY29tcGlsZXIsIHdhcm5pbmcpCisKKworI2RlZmluZSBJR05PUkVfV0FSTklOR19FTkRfSU1Q
TChjb21waWxlcikgX1ByYWdtYShfQ09NUElMRVJfU1RSSU5HSVpFKGNvbXBpbGVyIGRpYWdub3N0
aWMgcG9wKSkKKworI2lmIGRlZmluZWQoX19oYXNfd2FybmluZykKKyNkZWZpbmUgSUdOT1JFX1dB
Uk5JTkdfQkVHSU5fSU1QTChjb21waWxlciwgd2FybmluZykgSUdOT1JFX1dBUk5JTkdfQkVHSU5f
Q09ORChfX2hhc193YXJuaW5nKHdhcm5pbmcpLCBjb21waWxlciwgd2FybmluZykKKyNlbHNlCisj
ZGVmaW5lIElHTk9SRV9XQVJOSU5HX0JFR0lOX0lNUEwoY29tcGlsZXIsIHdhcm5pbmcpIElHTk9S
RV9XQVJOSU5HX0JFR0lOX0NPTkQoMSwgY29tcGlsZXIsIHdhcm5pbmcpCisjZW5kaWYKKworI2Vu
ZGlmIC8vIENPTVBJTEVSKEdDQ19PUl9DTEFORykKKworCisjaWYgIWRlZmluZWQoSUdOT1JFX0dD
Q19XQVJOSU5HX0JFR0lOKSAmJiBDT01QSUxFUihHQ0MpCisjZGVmaW5lIElHTk9SRV9HQ0NfV0FS
TklOR19CRUdJTih3YXJuaW5nKSBJR05PUkVfV0FSTklOR19CRUdJTl9JTVBMKEdDQywgd2Fybmlu
ZykKKyNkZWZpbmUgSUdOT1JFX0dDQ19XQVJOSU5HX0VORCBJR05PUkVfV0FSTklOR19FTkRfSU1Q
TChHQ0MpCisjZW5kaWYKKworI2lmICFkZWZpbmVkKElHTk9SRV9HQ0NfV0FSTklOR19CRUdJTikK
KyNkZWZpbmUgSUdOT1JFX0dDQ19XQVJOSU5HX0JFR0lOKHdhcm5pbmcpCisjZGVmaW5lIElHTk9S
RV9HQ0NfV0FSTklOR19FTkQKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoSUdOT1JFX0NMQU5HX1dB
Uk5JTkdfQkVHSU4pICYmIENPTVBJTEVSKENMQU5HKQorI2RlZmluZSBJR05PUkVfQ0xBTkdfV0FS
TklOR19CRUdJTih3YXJuaW5nKSBJR05PUkVfV0FSTklOR19CRUdJTl9JTVBMKGNsYW5nLCB3YXJu
aW5nKQorI2RlZmluZSBJR05PUkVfQ0xBTkdfV0FSTklOR19FTkQgSUdOT1JFX1dBUk5JTkdfRU5E
X0lNUEwoY2xhbmcpCisjZW5kaWYKKworI2lmICFkZWZpbmVkKElHTk9SRV9DTEFOR19XQVJOSU5H
X0JFR0lOKQorI2RlZmluZSBJR05PUkVfQ0xBTkdfV0FSTklOR19CRUdJTih3YXJuaW5nKQorI2Rl
ZmluZSBJR05PUkVfQ0xBTkdfV0FSTklOR19FTkQKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoSUdO
T1JFX1dBUk5JTkdfQkVHSU4pICYmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKKyNkZWZpbmUgSUdO
T1JFX1dBUk5JTkdfQkVHSU4od2FybmluZykgSUdOT1JFX1dBUk5JTkdfQkVHSU5fSU1QTChHQ0Ms
IHdhcm5pbmcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HX0VORCBJR05PUkVfV0FSTklOR19FTkRf
SU1QTChHQ0MpCisjZW5kaWYKKworI2lmICFkZWZpbmVkKElHTk9SRV9XQVJOSU5HX0JFR0lOKQor
I2RlZmluZSBJR05PUkVfV0FSTklOR19CRUdJTih3YXJuaW5nKQorI2RlZmluZSBJR05PUkVfV0FS
TklOR19FTkQKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4pCisjZGVmaW5lIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
IElHTk9SRV9XQVJOSU5HX0JFR0lOKCItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKKyNkZWZp
bmUgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5EIElHTk9SRV9XQVJOSU5HX0VORAor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChBTExPV19ORVdfQVBJX0JFR0lOKQorI2RlZmluZSBBTExP
V19ORVdfQVBJX0JFR0lOIElHTk9SRV9DTEFOR19XQVJOSU5HX0JFR0lOKCItV3VuZ3VhcmRlZC1h
dmFpbGFiaWxpdHktbmV3IikKKyNkZWZpbmUgQUxMT1dfTkVXX0FQSV9FTkQgSUdOT1JFX0NMQU5H
X1dBUk5JTkdfRU5ECisjZW5kaWYKKworI2lmICFkZWZpbmVkKEFMTE9XX1VOVVNFRF9QQVJBTUVU
RVJfQkVHSU4pCisjZGVmaW5lIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4gSUdOT1JFX1dB
Uk5JTkdfQkVHSU4oIi1XdW51c2VkLXBhcmFtZXRlciIpCisjZGVmaW5lIEFMTE9XX1VOVVNFRF9Q
QVJBTUVURVJfRU5EIElHTk9SRV9XQVJOSU5HX0VORAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChB
TExPV19OT05MSVRFUkFMX0ZPUk1BVF9CRUdJTikKKyNkZWZpbmUgQUxMT1dfTk9OTElURVJBTF9G
T1JNQVRfQkVHSU4gSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XZm9ybWF0LW5vbmxpdGVyYWwiKQor
I2RlZmluZSBBTExPV19OT05MSVRFUkFMX0ZPUk1BVF9FTkQgSUdOT1JFX1dBUk5JTkdfRU5ECisj
ZW5kaWYKKworI2lmICFkZWZpbmVkKElHTk9SRV9SRVRVUk5fVFlQRV9CRUdJTikKKyNkZWZpbmUg
SUdOT1JFX1JFVFVSTl9UWVBFX0JFR0lOIElHTk9SRV9XQVJOSU5HX0JFR0lOKCItV3JldHVybi10
eXBlIikKKyNkZWZpbmUgSUdOT1JFX1JFVFVSTl9UWVBFX0VORCBJR05PUkVfV0FSTklOR19FTkQK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoQUxMT1dfTlVMTF9BUkdVTUVOVF9CRUdJTikKKyNkZWZp
bmUgQUxMT1dfTlVMTF9BUkdVTUVOVF9CRUdJTiBJR05PUkVfV0FSTklOR19CRUdJTigiLVdub25u
dWxsIikKKyNkZWZpbmUgQUxMT1dfTlVMTF9BUkdVTUVOVF9FTkQgSUdOT1JFX1dBUk5JTkdfRU5E
CisjZW5kaWYKKwogI2VuZGlmIC8qIFdURl9Db21waWxlcl9oICovCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9NRDUuY3BwIGIvU291cmNlL1dURi93dGYvTUQ1LmNwcAppbmRleCBlNDliYTFi
ZWI1YzgwZjdjZWM0MzNmZDgzMjcyMmMwOTI1MjczMDkwLi5lMjcwYjc0MWFjNThiMDNjZDg5NjI4
OGM5NzgwMDFiYmQwOTcxYWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NRDUuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL01ENS5jcHAKQEAgLTU5LDI2ICs1OSwyMyBAQCBuYW1lc3BhY2Ug
V1RGIHsKIAogTUQ1OjpNRDUoKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0NfTUQ1X0lu
aXQoJm1fY29udGV4dCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHZvaWQgTUQ1OjphZGRCeXRlcyhjb25z
dCB1aW50OF90KiBpbnB1dCwgc2l6ZV90IGxlbmd0aCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIENDX01ENV9VcGRhdGUoJm1fY29udGV4dCwgaW5wdXQsIGxlbmd0aCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiB9CiAKIHZvaWQgTUQ1OjpjaGVja3N1bShEaWdlc3QmIGhhc2gpCiB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICBDQ19NRDVfRmluYWwoaGFzaC5kYXRhKCksICZtX2NvbnRleHQpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogfQogICAgIAogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1ByaW50U3Ry
ZWFtLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmNwcAppbmRleCAzODBjNjdiY2Ji
OTBlMzY2ZDg2MTgwODc4MDczMjQ1ZTYxM2U0YjRmLi4yZmE2NzdjNjBiYmQzMTRmY2NlMzIwOWQx
YmU2NTBhMzAwZWRlYjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QcmludFN0cmVhbS5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uY3BwCkBAIC00NiwyMiArNDYsMTQg
QEAgdm9pZCBQcmludFN0cmVhbTo6cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKQogCiB2
b2lkIFByaW50U3RyZWFtOjpwcmludGZWYXJpYWJsZUZvcm1hdChjb25zdCBjaGFyKiBmb3JtYXQs
IC4uLikKIHsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJh
bCIKLSNlbGlmIENPTVBJTEVSKEdDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3N1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdCIK
LSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lOCisgICAgSUdOT1JFX0dD
Q19XQVJOSU5HX0JFR0lOKCItV3N1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdCIpCiAgICAgdmFfbGlz
dCBhcmdMaXN0OwogICAgIHZhX3N0YXJ0KGFyZ0xpc3QsIGZvcm1hdCk7CiAgICAgdnByaW50Zihm
b3JtYXQsIGFyZ0xpc3QpOwogICAgIHZhX2VuZChhcmdMaXN0KTsKLSNpZiBDT01QSUxFUihDTEFO
RykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbGlmIENPTVBJTEVSKEdDQykKLSNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBJR05PUkVfR0NDX1dBUk5JTkdf
RU5ECisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfRU5ECiB9CiAKIHZvaWQgUHJpbnRTdHJl
YW06OmZsdXNoKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1NIQTEuY3BwIGIvU291cmNl
L1dURi93dGYvU0hBMS5jcHAKaW5kZXggMzA1ZjA3NzU4OWQ5YmEzZTY1MGZiM2U3NWNjZmVhZDZl
MmQ1MmFmZi4uNjdiYmNjMmRkODU1MjE5MjUxMTc5MTRjNDQxMTNiZjUyYjVjZDJiMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvU0hBMS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvU0hBMS5j
cHAKQEAgLTQxLDI2ICs0MSwyMyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogU0hBMTo6U0hBMSgpCiB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDQ19TSEExX0luaXQoJm1fY29udGV4dCk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiB9CiAKIHZvaWQgU0hBMTo6YWRkQnl0ZXMoY29uc3QgdWludDhfdCogaW5wdXQsIHNp
emVfdCBsZW5ndGgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDQ19TSEExX1VwZGF0ZSgm
bV9jb250ZXh0LCBpbnB1dCwgbGVuZ3RoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogdm9pZCBTSEExOjpj
b21wdXRlSGFzaChEaWdlc3QmIGhhc2gpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDQ19T
SEExX0ZpbmFsKGhhc2guZGF0YSgpLCAmbV9jb250ZXh0KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogI2Vs
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAppbmRleCBkZDAxYzZjNzZlZTY5ODU5
YzRjY2Q4YjExYzZjOWE4Y2QxYzA0OTYyLi5mZjg0MzdhNDgxYjg0OGIzMTE3OTcxOTQ1MTNjZDdh
NTcyYzdlMDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCkBAIC0xMDksMTUg
KzEwOSw4IEBAIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8U2VtYXBob3JlPiBnbG9iYWxTZW1h
cGhvcmVGb3JTdXNwZW5kUmVzdW1lOwogc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQgU2lnVGhy
ZWFkU3VzcGVuZFJlc3VtZSA9IFNJR1VTUjE7CiBzdGF0aWMgc3RkOjphdG9taWM8VGhyZWFkKj4g
dGFyZ2V0VGhyZWFkIHsgbnVsbHB0ciB9OwogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0
dXJuLWxvY2FsLWFkZHIiCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKQotCi0jaWYgQ09NUElMRVIo
Q0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XcmV0dXJuLXN0YWNrLWFkZHJlc3MiCi0jZW5kaWYgLy8gQ09NUElM
RVIoQ0xBTkcpCitJR05PUkVfR0NDX1dBUk5JTkdfQkVHSU4oIi1XcmV0dXJuLWxvY2FsLWFkZHIi
KQorSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1XcmV0dXJuLXN0YWNrLWFkZHJlc3MiKQog
CiBzdGF0aWMgTkVWRVJfSU5MSU5FIHZvaWQqIGdldEFwcHJveGltYXRlU3RhY2tQb2ludGVyKCkK
IHsKQEAgLTEyNiwxMyArMTE5LDggQEAgc3RhdGljIE5FVkVSX0lOTElORSB2b2lkKiBnZXRBcHBy
b3hpbWF0ZVN0YWNrUG9pbnRlcigpCiAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDx2b2lkKj4oc3Rh
Y2tMb2NhdGlvbik7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0MpCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykKLQotI2lmIENPTVBJTEVSKENMQU5HKQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKENMQU5HKQor
SUdOT1JFX0NMQU5HX1dBUk5JTkdfRU5ECitJR05PUkVfR0NDX1dBUk5JTkdfRU5ECiAKIHZvaWQg
VGhyZWFkOjpzaWduYWxIYW5kbGVyU3VzcGVuZFJlc3VtZShpbnQsIHNpZ2luZm9fdCosIHZvaWQq
IHVjb250ZXh0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVmVjdG9yLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9WZWN0b3IuaAppbmRleCA4NTE4NGI5NDA3YzY5Mzc3NjBhMTBjNjViMWFlNTcy
MjdhOGY3ZmZmLi5kZjFlNTJlNDdlNWYxZjBjNjhhN2U2Njg5NDBlOWNiMTNiNzU1NzczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0
b3IuaApAQCAtNTI5LDE0ICs1MjksOSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQo
YnVmZmVyKCkpOwogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XaW52YWxpZC1vZmZzZXRvZiIK
LSNlbmRpZgorICAgICAgICBJR05PUkVfR0NDX1dBUk5JTkdfQkVHSU4oIi1XaW52YWxpZC1vZmZz
ZXRvZiIpCiAgICAgICAgIHN0YXRpY19hc3NlcnQoKG9mZnNldG9mKFZlY3RvckJ1ZmZlciwgbV9p
bmxpbmVCdWZmZXIpICsgc2l6ZW9mKG1faW5saW5lQnVmZmVyKSkgJSA4ID09IDAsICJJbmxpbmUg
YnVmZmVyIGVuZCBuZWVkcyB0byBiZSBvbiA4IGJ5dGUgYm91bmRhcnkgZm9yIEFTYW4gYW5ub3Rh
dGlvbnMgdG8gd29yay4iKTsKLSNpZiBDT01QSUxFUihHQ0MpCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHBvcAotI2VuZGlmCisgICAgICAgIElHTk9SRV9HQ0NfV0FSTklOR19FTkQKIAogICAgICAg
ICBpZiAoYnVmZmVyKCkgPT0gaW5saW5lQnVmZmVyKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4obV9pbmxpbmVCdWZmZXIpICsgc2l6ZW9mKG1faW5saW5lQnVm
ZmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAppbmRleCAyYjBlNWYzOWNkNDNjNmRmNDFh
MGMxOGJjNGJiZDM4NGYxOTUxM2Q2Li5hODc1MjlmYzZiM2I4MmYyMzhhZTc1MGZmOWMyOTNkNjQ4
YjJjM2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCkBAIC00NTMsMTAgKzQ1Myw3IEBA
IFdURl9BVFRSSUJVVEVfUFJJTlRGKDEsIDApIHN0YXRpYyBTdHJpbmcgY3JlYXRlV2l0aEZvcm1h
dEFuZEFyZ3VtZW50cyhjb25zdCBjaGFyCiAgICAgdmFfbGlzdCBhcmdzQ29weTsKICAgICB2YV9j
b3B5KGFyZ3NDb3B5LCBhcmdzKTsKIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zv
cm1hdC1ub25saXRlcmFsIgotI2VuZGlmCisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVH
SU4KIAogI2lmIFVTRShDRikgJiYgIU9TKFdJTkRPV1MpCiAgICAgaWYgKHN0cnN0cihmb3JtYXQs
ICIlQCIpKSB7CkBAIC00OTIsOSArNDg5LDcgQEAgV1RGX0FUVFJJQlVURV9QUklOVEYoMSwgMCkg
c3RhdGljIFN0cmluZyBjcmVhdGVXaXRoRm9ybWF0QW5kQXJndW1lbnRzKGNvbnN0IGNoYXIKICAg
ICB2c25wcmludGYoYnVmZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUoKSwgZm9ybWF0LCBhcmdzQ29w
eSk7CiAgICAgdmFfZW5kKGFyZ3NDb3B5KTsKIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JN
QVRfRU5ECiAKICAgICByZXR1cm4gU3RyaW5nSW1wbDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPihidWZmZXIuZGF0YSgpKSwgbGVuKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFu
bmVsSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKaW5kZXggMmFhMTE4MGRhZWZjNzhmMDY2
ZmI3MTRmNzZlOTU2NjQwYjhjMTk2MS4uMTFlZjc4YmI0ZWIzMWQ3ZTdkNzE3MmY4YWI1NDc0MGEx
OWI4ZDcxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5k
bGVyLmgKQEAgLTI5LDEyICsyOSwxMSBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgog
I2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIgogCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1l
dGVyIgorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRjL2Fw
aS9kYXRhY2hhbm5lbGludGVyZmFjZS5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAor
QUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9FTkQKIAogbmFtZXNwYWNlIHdlYnJ0YyB7CiBzdHJ1Y3Qg
RGF0YUNoYW5uZWxJbml0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5o
CmluZGV4IGI3MTc0OTVmMThjNWNiM2M3OGMyMmJmYWI5ZWFkZWVlNGVhZjczZDguLmVjOWIxMGQ0
ZmM2NjE1YzJhMWVhZTQwZjZiZTE1MjE4NzIzZmY2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENNZWRpYUVuZHBvaW50LmgKQEAgLTM0LDE1ICszNCwxNCBAQAogI2luY2x1ZGUgIlJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oIgogI2luY2x1ZGUgPFRpbWVyLmg+CiAKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vu
dXNlZC1wYXJhbWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0JFR0lOCiAKICNpbmNsdWRl
IDx3ZWJydGMvYXBpL2pzZXAuaD4KICNpbmNsdWRlIDx3ZWJydGMvYXBpL3BlZXJjb25uZWN0aW9u
aW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8d2VicnRjL3BjL3BlZXJjb25uZWN0aW9uZmFjdG9yeS5o
PgogI2luY2x1ZGUgPHdlYnJ0Yy9wYy9ydGNzdGF0c2NvbGxlY3Rvci5oPgogCi0jcHJhZ21hIEdD
QyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9FTkQKIAogI2luY2x1ZGUg
PHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY3J5cHRvL2NvbW1vbmNyeXB0
by9DcnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
cnlwdG8vY29tbW9uY3J5cHRvL0NyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAKaW5kZXggYjQ3
ZjhlZWM2ODgzN2M3MjdkNWY4ZmNjOTcxNmRjYmQzY2FjNjUzZS4uMWNlNTc5N2ZlZjYyOTczZWVk
YjQ3MzQ4OWMyMTQ5N2M3YmJmYjQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jcnlwdG8vY29tbW9uY3J5cHRvL0NyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8vY29tbW9uY3J5cHRvL0NyeXB0b0RpZ2VzdENv
bW1vbkNyeXB0by5jcHAKQEAgLTk3LDEwICs5Nyw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9E
aWdlc3Q+IENyeXB0b0RpZ2VzdDo6Y3JlYXRlKENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtIGFsZ29y
CiAgICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzE6IHsKICAgICAgICAgQ0Nf
U0hBMV9DVFgqIGNvbnRleHQgPSBuZXcgQ0NfU0hBMV9DVFg7CiAgICAgICAgIGRpZ2VzdC0+bV9j
b250ZXh0LT5jY0NvbnRleHQgPSBjb250ZXh0OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICBDQ19TSEExX0luaXQoY29udGV4dCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICByZXR1
cm4gZGlnZXN0OwogICAgIH0KICAgICBjYXNlIENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFf
MjI0OiB7CkBAIC0xMzQsMTAgKzEzMyw5IEBAIHZvaWQgQ3J5cHRvRGlnZXN0OjphZGRCeXRlcyhj
b25zdCB2b2lkKiBpbnB1dCwgc2l6ZV90IGxlbmd0aCkKIHsKICAgICBzd2l0Y2ggKG1fY29udGV4
dC0+YWxnb3JpdGhtKSB7CiAgICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzE6
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIENDX1NIQTFfVXBkYXRlKHRvU0hBMUNv
bnRleHQobV9jb250ZXh0LmdldCgpKSwgaW5wdXQsIGxlbmd0aCk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzIy
NDoKICAgICAgICAgQ0NfU0hBMjI0X1VwZGF0ZSh0b1NIQTIyNENvbnRleHQobV9jb250ZXh0Lmdl
dCgpKSwgaW5wdXQsIGxlbmd0aCk7CkBAIC0xNjAsMTAgKzE1OCw5IEBAIFZlY3Rvcjx1aW50OF90
PiBDcnlwdG9EaWdlc3Q6OmNvbXB1dGVIYXNoKCkKICAgICBzd2l0Y2ggKG1fY29udGV4dC0+YWxn
b3JpdGhtKSB7CiAgICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzE6CiAgICAg
ICAgIHJlc3VsdC5yZXNpemUoQ0NfU0hBMV9ESUdFU1RfTEVOR1RIKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICAgICAgQ0NfU0hBMV9GaW5hbChyZXN1bHQuZGF0YSgpLCB0b1NIQTFDb250
ZXh0KG1fY29udGV4dC5nZXQoKSkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzIyNDoKICAgICAgICAgcmVzdWx0
LnJlc2l6ZShDQ19TSEEyMjRfRElHRVNUX0xFTkdUSCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVktpdFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY29jb2EvQVZLaXRTUEkuaAppbmRleCA5MTQ1MTdlZmU3Y2IxNGI1ZmFmMmM1YjFiNjdm
MjM2NmM2MmM2OTk1Li4xYjkwZTBkNjAyNGEzOTk2YjUzMGUyM2RmZTJiNjVkYmMxOTY1ZDMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVktpdFNQSS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWS2l0U1BJLmgKQEAgLTM4LDEw
ICszOCw5IEBACiAjZW5kaWYKIAogI2ltcG9ydCA8QVZLaXQvQVZQbGF5ZXJDb250cm9sbGVyLmg+
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1Xb2JqYy1wcm9wZXJ0eS1uby1hdHRyaWJ1dGUiCitJR05PUkVfQ0xBTkdfV0FS
TklOR19CRUdJTigiLVdvYmpjLXByb3BlcnR5LW5vLWF0dHJpYnV0ZSIpCiAjaW1wb3J0IDxBVktp
dC9BVlBsYXllckxheWVyVmlldy5oPgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdO
T1JFX0NMQU5HX1dBUk5JTkdfRU5ECiAjaW1wb3J0IDxBVktpdC9BVlBsYXllclZpZXdDb250cm9s
bGVyX1ByaXZhdGUuaD4KICNpbXBvcnQgPEFWS2l0L0FWUGxheWVyVmlld0NvbnRyb2xsZXJfV2Vi
S2l0T25seS5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2Nv
YS9OU0tleWVkQXJjaGl2ZXJTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29h
L05TS2V5ZWRBcmNoaXZlclNQSS5oCmluZGV4IDU1YTY0ODg2YTg4MGY1YjkwZWEyZGE2Y2Y1MWFi
YTRiYTY3YzQyNWQuLjA3MDZlZmU4NWE2Y2VlYjEyNDRkMWU4OTdmYTM4NGE3MWZkY2VjZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZl
clNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNo
aXZlclNQSS5oCkBAIC04NiwxMCArODYsOSBAQCBpbmxpbmUgTlNEYXRhICpfTnVsbGFibGUgaW5z
ZWN1cmVseUFyY2hpdmVkRGF0YVdpdGhSb290T2JqZWN0KGlkIF9Ob25udWxsIG9iamVjdAogCiBp
bmxpbmUgaWQgX051bGxhYmxlIGluc2VjdXJlbHlVbmFyY2hpdmVPYmplY3RGcm9tRGF0YShOU0Rh
dGEgKiBfTm9ubnVsbCBkYXRhKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgcmV0dXJuIFtO
U0tleWVkVW5hcmNoaXZlciB1bmFyY2hpdmVPYmplY3RXaXRoRGF0YTpkYXRhXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIH0KIAogaW5saW5lIGlkIF9OdWxsYWJsZSB1bmFyY2hpdmVkT2JqZWN0T2ZDbGFzc2VzRnJv
bURhdGEoTlNTZXQ8Q2xhc3M+ICogX05vbm51bGwgY2xhc3NlcywgTlNEYXRhICogX05vbm51bGwg
ZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9NZWRpYVBs
YXllclNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL01lZGlhUGxheWVyU1BJ
LmgKaW5kZXggZGQ4N2Y5M2FmNzAyNWJjYTZkMTMzNDU3YjNmNmIxMjA2YTAxNDRmOC4uODE3ZDA5
YTI4NzM0ODFjYzcxYzI3ZTM5Y2MzNmRiYWQ5OTkyMWI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvaW9zL01lZGlhUGxheWVyU1BJLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvaW9zL01lZGlhUGxheWVyU1BJLmgKQEAgLTc1LDIxICs3NSwxOSBAQCBl
bnVtIHsKIH07CiB0eXBlZGVmIE5TVUludGVnZXIgTVBBVkl0ZW1UeXBlOwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogQGludGVyZmFjZSBNUEF1ZGlvVmlkZW9Sb3V0aW5nUG9wb3ZlckNvbnRyb2xsZXIgOiBV
SVBvcG92ZXJDb250cm9sbGVyCiBAZW5kCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogQGludGVyZmFjZSBNUEF1ZGlvVmlk
ZW9Sb3V0aW5nUG9wb3ZlckNvbnRyb2xsZXIgKCkKIC0gKGlkKWluaXRXaXRoVHlwZTooTVBBVkl0
ZW1UeXBlKWF2SXRlbVR5cGU7CiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiBAaW50ZXJmYWNlIE1Q
QVZSb3V0aW5nU2hlZXQgOiBVSVZpZXcKIEBlbmQKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiBAaW50ZXJmYWNlIE1QQVZS
b3V0aW5nU2hlZXQgKCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24sIHNldHRlcj1zZXRB
Vkl0ZW1UeXBlOikgTVBBVkl0ZW1UeXBlIGF2SXRlbVR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lm1tIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbQppbmRleCAyMjMzNTc1ZGMzNGU3NjFlODYx
Y2JiNDUyODdiNzMzZjJjZDRhYzIzLi45YmJkNDYxOWEzZTY2YTY5YjNhYWI5ZGZhYWU3YTdlNWNj
ZGZjZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9w
dXBNZW51Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1cE1l
bnUubW0KQEAgLTQ0LDEwICs0NCw5IEBAIG5hbWVzcGFjZSBQQUwgewogdm9pZCBwb3BVcE1lbnUo
TlNNZW51ICptZW51LCBOU1BvaW50IGxvY2F0aW9uLCBmbG9hdCB3aWR0aCwgTlNWaWV3ICp2aWV3
LCBpbnQgc2VsZWN0ZWRJdGVtLCBOU0ZvbnQgKmZvbnQsIE5TQ29udHJvbFNpemUgY29udHJvbFNp
emUsIGJvb2wgdXNlc0N1c3RvbUFwcGVhcmFuY2UpCiB7CiAgICAgTlNSZWN0IGFkanVzdGVkUG9w
dXBCb3VuZHMgPSBbdmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpbdmlldyBjb252ZXJ0
UmVjdDp2aWV3LmJvdW5kcyB0b1ZpZXc6bmlsXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBp
ZiAoY29udHJvbFNpemUgIT0gTlNNaW5pQ29udHJvbFNpemUpIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgICAgIGFkanVzdGVkUG9wdXBCb3VuZHMub3JpZ2luLnggLT0gMzsKICAgICAgICAgYWRqdXN0
ZWRQb3B1cEJvdW5kcy5vcmlnaW4ueSAtPSAxOwogICAgICAgICBhZGp1c3RlZFBvcHVwQm91bmRz
LnNpemUud2lkdGggKz0gNjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lz
dGVtL21hYy9XZWJQYW5lbC5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9X
ZWJQYW5lbC5tbQppbmRleCAzMTdiZGEwMmU3YjdlYjI3YTliZDJiNTk3OTU2ZjU0MTJkYWNmMTI2
Li5jNmU0NjBjZjBlZjY1MTliNjExMDU5ZTMxNTMyNjM0ZTM1ZDdlZWJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvV2ViUGFuZWwubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1dlYlBhbmVsLm1tCkBAIC0zNCwxMCArMzQsOSBA
QAogCiAtIChpbnN0YW5jZXR5cGUpaW5pdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgc3Rh
dGljIE5TVUludGVnZXIgc3R5bGVNYXNrID0gTlNNaW5pYXR1cml6YWJsZVdpbmRvd01hc2sgfCBO
U0Nsb3NhYmxlV2luZG93TWFzayB8IE5TUmVzaXphYmxlV2luZG93TWFzayAgfCBOU1RpdGxlZFdp
bmRvd01hc2sgfCBOU1NtYWxsV2luZG93TWFzayB8IE5TU2lkZVV0aWxpdHlXaW5kb3dNYXNrIHwg
TlNVdGlsaXR5V2luZG93TWFzazsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAKICAgICByZXR1cm4gW3N1cGVy
IGluaXRXaXRoQ29udGVudFJlY3Q6TlNaZXJvUmVjdCBzdHlsZU1hc2s6c3R5bGVNYXNrIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggMzk5
MTc3ZjM1M2UyZjgwOWQyZGZjNzhhYjY2NTQ4YWFiOTI5MzU5NC4uZDQ3NmUwYWU3MzRjYzE1N2Nk
YmM4ZmFkNTgzYmRjOGExZmFmYWU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC0zNDYsMTAgKzM0Niw5IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgCiAgICAgLy8gTlNBY2Nlc3NpYmlsaXR5UG9zdE5v
dGlmaWNhdGlvbiB3aWxsIGNhbGwgdGhpcyBtZXRob2QsIChidXQgbm90IHdoZW4gcnVubmluZyBE
UlQpLCBzbyBBU1NFUlQgaGVyZSB0byBtYWtlIHN1cmUgaXQgZG9lcyBub3QgY3Jhc2guCiAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2NjYyCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBBU1NFUlQoW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlJc0ln
bm9yZWRdIHx8IHRydWUpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0
aFVzZXJJbmZvKG9iai0+d3JhcHBlcigpLCBtYWNOb3RpZmljYXRpb24sIG5pbCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0
eU9iamVjdE1hYy5tbQppbmRleCBjY2U5NzJjZmNkMDJlNTc1NGVjY2VjYzU3OGZhNGI0MGE5OTY4
YzI2Li44ZDgxNzIxYjBiM2MzZDFjMmU0ZjVhZTdiOTUwNTg4ZTg5NzQyMjQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlP
YmplY3RNYWMubW0KQEAgLTU1LDEwICs1NSw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6
b3ZlcnJpZGVBdHRhY2htZW50UGFyZW50KEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudCkKICAg
ICAgICAgcGFyZW50V3JhcHBlciA9IHBhcmVudC0+d3JhcHBlcigpOwogICAgIH0KIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgW1t3cmFwcGVyKCkgYXR0YWNobWVudFZpZXddIGFjY2Vzc2liaWxp
dHlTZXRPdmVycmlkZVZhbHVlOnBhcmVudFdyYXBwZXIgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJp
bGl0eVBhcmVudEF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAgICAgCiBib29sIEFjY2Vzc2li
aWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3QKQEAgLTY5
LDExICs2OCwxMCBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJZ25v
cmVBdHRhY2htZW50KCkgY29uc3QKICAgICBpZiAoaXNBdHRhY2htZW50KCkgJiYgKHdpZGdldCA9
IHdpZGdldEZvckF0dGFjaG1lbnRWaWV3KCkpICYmIHdpZGdldC0+aXNGcmFtZVZpZXcoKSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChbd3JhcHBl
cigpIGF0dGFjaG1lbnRWaWV3XSkKICAgICAgICAgcmV0dXJuIFtbd3JhcHBlcigpIGF0dGFjaG1l
bnRWaWV3XSBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIC8vIEF0
dGFjaG1lbnRzIGFyZSBpZ25vcmVkIGJ5IGRlZmF1bHQgKHVubGVzcyB3ZSBkZXRlcm1pbmUgdGhh
dCB3ZSBzaG91bGQgZXhwb3NlIHRoZW0pLgogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCAwNGMxODZhMDhhYzhhZjI4NjA3YzQxYmE3
ZWRkMGEwMTdjOTJiZjY2Li42NTAzZDQwNmNlODMwMjljY2ZmZTVkM2Y0YzE5NDAwMTZlM2NkYjY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMTY3OSwxMCAr
MTY3OSw5IEBAIHN0YXRpYyBpZCB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9ucyhB
WE9iamVjdENhY2hlKiBjYWNoZSwgY29uc3QgVmlzaWJsCiAgICAgV2lkZ2V0KiB3aWRnZXQgPSBt
X29iamVjdC0+d2lkZ2V0KCk7CiAgICAgaWYgKCF3aWRnZXQpCiAgICAgICAgIHJldHVybiBuaWw7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICByZXR1cm4gWyh3aWRnZXQtPnBsYXRmb3JtV2lkZ2V0
KCkpIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTogTlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5B
dHRyaWJ1dGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAtIChpZClyZW1vdGVBY2Nlc3NpYmlsaXR5UGFy
ZW50T2JqZWN0CkBAIC0xNzUxLDEwICsxNzUwLDkgQEAgc3RhdGljIE5TTXV0YWJsZUFycmF5ICpj
b252ZXJ0U3RyaW5nc1RvTlNBcnJheShjb25zdCBWZWN0b3I8U3RyaW5nPiYgdmVjdG9yKQogICAg
IGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5wbGF0Zm9ybVdpZGdldCgpKSB7CiAgICAgICAg
IE5TUG9pbnQgbnNQb2ludCA9IChOU1BvaW50KXBvaW50OwogICAgICAgICBOU1ZpZXcqIHZpZXcg
PSBmcmFtZVZpZXctPmRvY3VtZW50VmlldygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICBuc1BvaW50ID0gW1t2aWV3IHdpbmRvd10gY29udmVydEJhc2VUb1NjcmVlbjpbdmlldyBj
b252ZXJ0UG9pbnQ6bnNQb2ludCB0b1ZpZXc6bmlsXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAg
ICByZXR1cm4gQ0dQb2ludE1ha2UobnNQb2ludC54LCBuc1BvaW50LnkpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIApAQCAtMjAwNiwxMSArMjAwNCwxMCBAQCBzdGF0aWMgTlNTdHJpbmcgKnJvbGVW
YWx1ZVRvTlNTdHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUgdmFsdWUpCiAKIC0gKE5TU3RyaW5nKily
b2xlCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAobV9vYmplY3QtPmlzQXR0YWNobWVu
dCgpKQogICAgICAgICByZXR1cm4gW1tzZWxmIGF0dGFjaG1lbnRWaWV3XSBhY2Nlc3NpYmlsaXR5
QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5Um9sZUF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IG1fb2JqZWN0LT5yb2xlVmFsdWUoKTsKIAog
ICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpMYWJlbCAmJiBpczxBY2Nlc3NpYmls
aXR5TGFiZWw+KCptX29iamVjdCkgJiYgZG93bmNhc3Q8QWNjZXNzaWJpbGl0eUxhYmVsPigqbV9v
YmplY3QpLmNvbnRhaW5zT25seVN0YXRpY1RleHQoKSkKQEAgLTIwMzAsOCArMjAyNyw3IEBAIHN0
YXRpYyBOU1N0cmluZyAqcm9sZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3NpYmlsaXR5Um9sZSB2YWx1
ZSkKICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VW5rbm93blJvbGU7CiB9CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAtIChOU1N0cmluZyopc3Vicm9sZQogewogICAgIGlmIChtX29iamVjdC0+aXNQYXNz
d29yZEZpZWxkKCkpCkBAIC0yMjQxLDE5ICsyMjM3LDE4IEBAIHN0YXRpYyBOU1N0cmluZyAqcm9s
ZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3NpYmlsaXR5Um9sZSB2YWx1ZSkKICAgICAKICAgICByZXR1
cm4gbmlsOwogfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAKIC0gKE5TU3RyaW5nKilyb2xlRGVzY3JpcHRpb24KIHsKICAg
ICBpZiAoIW1fb2JqZWN0KQogICAgICAgICByZXR1cm4gbmlsOwogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICAvLyBhdHRhY2htZW50cyBoYXZlIHRoZSBBWEltYWdlIHJvbGUsIGJ1dCBhIGRpZmZl
cmVudCBzdWJyb2xlCiAgICAgaWYgKG1fb2JqZWN0LT5pc0F0dGFjaG1lbnQoKSkKICAgICAgICAg
cmV0dXJuIFtbc2VsZiBhdHRhY2htZW50Vmlld10gYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVl
Ok5TQWNjZXNzaWJpbGl0eVJvbGVEZXNjcmlwdGlvbkF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAK
ICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG92ZXJyaWRlUm9sZURlc2NyaXB0aW9uID0gbV9vYmpl
Y3QtPnJvbGVEZXNjcmlwdGlvbigpOwogICAgIGlmICghb3ZlcnJpZGVSb2xlRGVzY3JpcHRpb24u
aXNOdWxsKCkgJiYgIW92ZXJyaWRlUm9sZURlc2NyaXB0aW9uLmlzRW1wdHkoKSkKQEAgLTM0NzIs
OCArMzQ2Nyw3IEBAIHN0YXRpYyBOU1N0cmluZyAqcm9sZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3Np
YmlsaXR5Um9sZSB2YWx1ZSkKICAgICByZXR1cm4gcGFyYW1BdHRyczsKIH0KIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KIAogLSAodm9pZClhY2Nlc3NpYmlsaXR5UGVyZm9ybVByZXNzQWN0aW9uCiB7CkBAIC0z
NTMxLDcgKzM1MjUsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnJvbGVWYWx1ZVRvTlNTdHJpbmcoQWNj
ZXNzaWJpbGl0eVJvbGUgdmFsdWUpCiAgICAgICAgIG1fb2JqZWN0LT5kZWNyZW1lbnQoKTsKIH0K
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAKIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBlcmZvcm1TaG93TWVudUFjdGlvbgog
ewpAQCAtNDM0Myw4ICs0MzM3LDcgQEAgc3RhdGljIHZvaWQgZm9ybWF0Rm9yRGVidWdnZXIoY29u
c3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmIHJhbmdlLCBjaGFyKiBidWZmZXIsIHUKICAgICByZXR1
cm4gTlNOb3RGb3VuZDsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIC0gKE5TVUludGVnZXIpYWNjZXNz
aWJpbGl0eUFycmF5QXR0cmlidXRlQ291bnQ6KE5TU3RyaW5nICopYXR0cmlidXRlCiB7CiAgICAg
aWYgKCFbc2VsZiB1cGRhdGVPYmplY3RCYWNraW5nU3RvcmVdKQpAQCAtNDM2NSw3ICs0MzU4LDcg
QEAgc3RhdGljIHZvaWQgZm9ybWF0Rm9yRGVidWdnZXIoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFu
Z2UmIHJhbmdlLCBjaGFyKiBidWZmZXIsIHUKICAgICAKICAgICByZXR1cm4gW3N1cGVyIGFjY2Vz
c2liaWxpdHlBcnJheUF0dHJpYnV0ZUNvdW50OmF0dHJpYnV0ZV07CiB9Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogLSAo
TlNBcnJheSAqKWFjY2Vzc2liaWxpdHlBcnJheUF0dHJpYnV0ZVZhbHVlczooTlNTdHJpbmcgKilh
dHRyaWJ1dGUgaW5kZXg6KE5TVUludGVnZXIpaW5kZXggbWF4Q291bnQ6KE5TVUludGVnZXIpbWF4
Q291bnQKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlw
dE9iamVjdC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5t
bQppbmRleCAwMmI4NDI4M2VkMzliMTQxMmRhMGMwMTMzYTAyNzM5YTBiNjQyMzM0Li5iNWVjMTBk
ZTNlZjBlMWM1NDY2MjUyYjk1NzJmZjI1N2MwNDIzNDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCkBAIC03MDIsMTMgKzcwMiwxMiBAQCBzdGF0
aWMgdm9pZCBnZXRMaXN0RnJvbU5TQXJyYXkoRXhlY1N0YXRlICpleGVjLCBOU0FycmF5ICphcnJh
eSwgUm9vdE9iamVjdCogcm9vdAogICAgIHJldHVybiBzZWxmOwogfQogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xb2Jq
Yy1taXNzaW5nLXN1cGVyLWNhbGxzIgorSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1Xb2Jq
Yy1taXNzaW5nLXN1cGVyLWNhbGxzIikKIC0gKHZvaWQpZGVhbGxvYwogewogICAgIHJldHVybjsK
IH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9DTEFOR19XQVJOSU5HX0VO
RAogCiArIChXZWJVbmRlZmluZWQgKil1bmRlZmluZWQKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfY2xhc3MubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
b2JqYy9vYmpjX2NsYXNzLm1tCmluZGV4IGNlMWVmNjU1N2EwNzYzYTdkMzQzMGEzYmY5ODZhMTk4
N2Y4Y2IzNTYuLjNlYzk2ZWMwOGU2OWNkZGRjM2NmN2QxMmU3MjhkNDJjNWUxYTZkMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfY2xhc3MubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19jbGFzcy5tbQpAQCAtMTYzLDEwICsxNjMsOSBA
QCBGaWVsZCogT2JqY0NsYXNzOjpmaWVsZE5hbWVkKFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IEluc3RhbmNlKiBpbnN0YW5jZSkgY29ucwogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZmll
bGROYW1lID0gYWRvcHRDRihDRlN0cmluZ0NyZWF0ZVdpdGhDU3RyaW5nKE5VTEwsIGpzTmFtZS5k
YXRhKCksIGtDRlN0cmluZ0VuY29kaW5nQVNDSUkpKTsKICAgICBpZCB0YXJnZXRPYmplY3QgPSAo
c3RhdGljX2Nhc3Q8T2JqY0luc3RhbmNlKj4oaW5zdGFuY2UpKS0+Z2V0T2JqZWN0KCk7CiAjaWYg
UExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZGVjbGFyZWQtc2VsZWN0b3IiCisgICAgSUdOT1JF
X1dBUk5JTkdfQkVHSU4oIi1XdW5kZWNsYXJlZC1zZWxlY3RvciIpCiAgICAgaWQgYXR0cmlidXRl
cyA9IFt0YXJnZXRPYmplY3QgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhdHRyaWJ1dGVL
ZXlzKV0gPyBbdGFyZ2V0T2JqZWN0IHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IoYXR0cmlidXRl
S2V5cyldIDogbmlsOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9X
QVJOSU5HX0VORAogI2Vsc2UKICAgICBpZCBhdHRyaWJ1dGVzID0gW3RhcmdldE9iamVjdCBhdHRy
aWJ1dGVLZXlzXTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0Nv
bW1vbkNyeXB0b1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ29tbW9uQ3J5
cHRvVXRpbGl0aWVzLmNwcAppbmRleCBlMDQ5MmVlNjcxMTBmODhjNzMxNTIxNmQ2YzY4YjYzMzQ5
NmQ3N2EwLi43MmZjYzFkYjI3YTNkMTcyNmNiZmE2Nzc2MjM3Njk3MjExYzAzZGYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmNwcApAQCAtNTIs
MTAgKzUyLDkgQEAgYm9vbCBnZXRDb21tb25DcnlwdG9EaWdlc3RBbGdvcml0aG0oQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBoYXNoRnVuY3Rpb24sIENDRGkKIHsKICAgICBzd2l0Y2ggKGhhc2hG
dW5jdGlvbikgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzE6Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGFsZ29yaXRobSA9IGtDQ0RpZ2VzdFNIQTE7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OlNIQV8yMjQ6CiAgICAgICAgIGFsZ29yaXRobSA9IGtDQ0RpZ2Vz
dFNIQTIyNDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxn
b3JpdGhtQUVTX0dDTU1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0Fs
Z29yaXRobUFFU19HQ01NYWMuY3BwCmluZGV4IGIyYmMyNDg4OGM3ZWU3NThlOWRiNDAyMzk3YThm
YTZlNGYxZDFlMDguLjExZjQ2NzAxMDQ1ZTkwMTM5ZjVkYTMyOTdhOGQ5ZTkwMDZmYzY1YmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dD
TU1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1B
RVNfR0NNTWFjLmNwcApAQCAtNDAsMTAgKzQwLDkgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rv
cjx1aW50OF90Pj4gZW5jcnlwdEFFU19HQ00oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpdiwgY28K
ICAgICBWZWN0b3I8dWludDhfdD4gY2lwaGVyVGV4dChwbGFpblRleHQuc2l6ZSgpKTsgLy8gUGVy
IHNlY3Rpb24gNS4yLjEuMjogaHR0cDovL252bHB1YnMubmlzdC5nb3YvbmlzdHB1YnMvTGVnYWN5
L1NQL25pc3RzcGVjaWFscHVibGljYXRpb244MDAtMzhkLnBkZgogICAgIFZlY3Rvcjx1aW50OF90
PiB0YWcoZGVzaXJlZFRhZ0xlbmd0aEluQnl0ZXMpOwogICAgIC8vIHRhZ0xlbmd0aCBpcyBhY3R1
YWwgYW4gaW5wdXQgPHJkYXI6Ly9wcm9ibGVtLzMwNjYwMDc0PgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgQ0NDcnlwdG9yU3RhdHVzIHN0YXR1cyA9IENDQ3J5cHRvckdDTShrQ0NFbmNyeXB0LCBr
Q0NBbGdvcml0aG1BRVMsIGtleS5kYXRhKCksIGtleS5zaXplKCksIGl2LmRhdGEoKSwgaXYuc2l6
ZSgpLCBhZGRpdGlvbmFsRGF0YS5kYXRhKCksIGFkZGl0aW9uYWxEYXRhLnNpemUoKSwgcGxhaW5U
ZXh0LmRhdGEoKSwgcGxhaW5UZXh0LnNpemUoKSwgY2lwaGVyVGV4dC5kYXRhKCksIHRhZy5kYXRh
KCksICZkZXNpcmVkVGFnTGVuZ3RoSW5CeXRlcyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgaWYgKHN0YXR1
cykKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yIH07CiAKQEAgLTU4
LDEwICs1Nyw5IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IGRlY3lwdEFF
U19HQ00oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpdiwgY29uCiAgICAgVmVjdG9yPHVpbnQ4X3Q+
IHRhZyhkZXNpcmVkVGFnTGVuZ3RoSW5CeXRlcyk7CiAgICAgc2l6ZV90IG9mZnNldCA9IGNpcGhl
clRleHQuc2l6ZSgpIC0gZGVzaXJlZFRhZ0xlbmd0aEluQnl0ZXM7CiAgICAgLy8gdGFnTGVuZ3Ro
IGlzIGFjdHVhbCBhbiBpbnB1dCA8cmRhcjovL3Byb2JsZW0vMzA2NjAwNzQ+Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICBDQ0NyeXB0b3JTdGF0dXMgc3RhdHVzID0gQ0NDcnlwdG9yR0NNKGtDQ0Rl
Y3J5cHQsIGtDQ0FsZ29yaXRobUFFUywga2V5LmRhdGEoKSwga2V5LnNpemUoKSwgaXYuZGF0YSgp
LCBpdi5zaXplKCksIGFkZGl0aW9uYWxEYXRhLmRhdGEoKSwgYWRkaXRpb25hbERhdGEuc2l6ZSgp
LCBjaXBoZXJUZXh0LmRhdGEoKSwgb2Zmc2V0LCBwbGFpblRleHQuZGF0YSgpLCB0YWcuZGF0YSgp
LCAmZGVzaXJlZFRhZ0xlbmd0aEluQnl0ZXMpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIGlmIChzdGF0dXMp
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1h
Yy5tbQppbmRleCBhNTE3ZjkyMmUwNDhkMTQxNzdjNGY2ZjhjNDM2MjMxMzA4ODE0OTY5Li40YWQ3
YWIwNDBmMWM3Y2M5YWNlZTQyNDdlYWM4YTQ4MGYzZmQ3NzE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0KQEAg
LTIyMCwxNSArMjIwLDE0IEBAIGJvb2wgd3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkoY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiBtYXN0ZXJLZXksIGNvbnN0IFZlY3Rvcjx1aW50CiAgICAgc2l6ZV90IHRh
Z0xlbmd0aCA9IDE2OwogICAgIHVpbnQ4X3QgdGFnW3RhZ0xlbmd0aF07CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIHN0YXR1cyA9IENDQ3J5cHRvckdDTShrQ0NFbmNyeXB0LCBrQ0NBbGdvcml0
aG1BRVMxMjgsIGtlay5kYXRhKCksIGtlay5zaXplKCksCiAgICAgICAgIG51bGxwdHIsIDAsIC8v
IGl2CiAgICAgICAgIG51bGxwdHIsIDAsIC8vIGF1dGggZGF0YQogICAgICAgICBrZXkuZGF0YSgp
LCBrZXkuc2l6ZSgpLAogICAgICAgICBlbmNyeXB0ZWRLZXkuZGF0YSgpLAogICAgICAgICB0YWcs
ICZ0YWdMZW5ndGgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgaWYgKHN0YXR1cyAhPSBrQ0NTdWNjZXNz
KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yODksMTUgKzI4OCwxNCBAQCBib29sIHVud3Jh
cFNlcmlhbGl6ZWRDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBtYXN0ZXJLZXksIGNv
bnN0IFZlY3Rvcjx1aQogICAgIHVpbnQ4X3QgYWN0dWFsVGFnW3RhZ0xlbmd0aF07CiAKICAgICBr
ZXkucmVzaXplKGVuY3J5cHRlZEtleS5zaXplKCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
c3RhdHVzID0gQ0NDcnlwdG9yR0NNKGtDQ0RlY3J5cHQsIGtDQ0FsZ29yaXRobUFFUzEyOCwga2Vr
LmRhdGEoKSwga2VrLnNpemUoKSwKICAgICAgICAgbnVsbHB0ciwgMCwgLy8gaXYKICAgICAgICAg
bnVsbHB0ciwgMCwgLy8gYXV0aCBkYXRhCiAgICAgICAgIGVuY3J5cHRlZEtleS5kYXRhKCksIGVu
Y3J5cHRlZEtleS5zaXplKCksCiAgICAgICAgIGtleS5kYXRhKCksCiAgICAgICAgIGFjdHVhbFRh
ZywgJnRhZ0xlbmd0aCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBpZiAoc3RhdHVzICE9IGtDQ1N1Y2Nl
c3MpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5IGIv
U291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0
eUVsZW1lbnRNYXAucHkKaW5kZXggYjM0ZTYxN2IxNDZkMzI5ZmIxYmMzMmEwYmI3MGM3Y2JiYTQ5
OTkxYS4uNDRmYWQzYTVjMmZmNzVlOTdjNWQwMDkyNDNmMzc1NDk2NGYwNjExZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJp
bGl0eUVsZW1lbnRNYXAucHkKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBz
ZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkKQEAgLTk0LDExICs5NCw3IEBA
IG91dHB1dF9maWxlLndyaXRlKCIiIgogCiAjaW5jbHVkZSAiQ1NTUGFyc2VyU2VsZWN0b3IuaCIK
IAotI2lmIGRlZmluZWQoX19jbGFuZ19fKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIgot
I2VuZGlmCitJR05PUkVfV0FSTklOR19CRUdJTigiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIpCiAK
IC8vIE9sZGVyIHZlcnNpb25zIG9mIGdwZXJmIGxpa2UgdG8gdXNlIHRoZSBgcmVnaXN0ZXJgIGtl
eXdvcmQuCiAjZGVmaW5lIHJlZ2lzdGVyCkBAIC0yMDMsOSArMTk5LDcgQEAgUHNldWRvQ2xhc3NP
ckNvbXBhdGliaWxpdHlQc2V1ZG9FbGVtZW50IHBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmls
aXR5RWxlbWVudFMKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jaWYgZGVmaW5lZChfX2Ns
YW5nX18pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9XQVJO
SU5HX0VORAogCiAiIiIpCiBvdXRwdXRfZmlsZS5jbG9zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvRWxlbWVudHNNYXAucHkgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvRWxlbWVudHNNYXAucHkKaW5kZXggMjAxODI2ZWQ1
MTM4OTRkNGZmN2YzYWYwNTEzYWQ3MjM4NjkyYWY4OC4uZWMyMGIxMGZkYmE4MGZlODllMGFiYjEz
MGMyMmMyNDY2MzgwOWVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxl
Y3RvclBzZXVkb0VsZW1lbnRzTWFwLnB5CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlU2Vs
ZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5weQpAQCAtOTIsMTEgKzkyLDcgQEAgb3V0cHV0X2ZpbGUu
d3JpdGUoIiIiCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2VsZWN0b3JQc2V1ZG9U
eXBlTWFwLmgiCiAKLSNpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXBy
YWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdpbXBsaWNpdC1mYWxs
dGhyb3VnaCIKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XaW1wbGljaXQtZmFsbHRo
cm91Z2giKQogCiAvLyBPbGRlciB2ZXJzaW9ucyBvZiBncGVyZiBsaWtlIHRvIHVzZSB0aGUgYHJl
Z2lzdGVyYCBrZXl3b3JkLgogI2RlZmluZSByZWdpc3RlcgpAQCAtMTk4LDkgKzE5NCw3IEBAIENT
U1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50VHlwZSBwYXJzZVBzZXVkb0VsZW1lbnRTdHJpbmcoY29u
c3QgU3RyaW5nSW1wbCYgcHNldWRvCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2lmIGRl
ZmluZWQoX19jbGFuZ19fKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitJ
R05PUkVfV0FSTklOR19FTkQKIAogIiIiKQogb3V0cHV0X2ZpbGUuY2xvc2UoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCmluZGV4IGIyOGQ4NDZmNjg3NjI4YzNjMDMwZjQ3
MjljNmFjMjUxMDI1NTIyMjcuLjUzYTBmMmE4MTU1YzlmNjVhYjUxZGZiZjljYmQ0ZmY2YjdlODAx
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKQEAgLTIwMTEsMTAg
KzIwMTEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY29udGFpbnNLYW5hTGV0dGVycyhjb25zdCBT
dHJpbmcmIHBhdHRlcm4pCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgQ09NUElMRVIoR0ND
X09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYKK0FMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAvLyBOT1RFOiBJQ1UncyB1bm9ybV9ub3Jt
YWxpemUgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4KIAogc3RhdGljIHZvaWQgbm9ybWFsaXplQ2hh
cmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBWZWN0b3I8
VUNoYXI+JiBidWZmZXIpCkBAIC0yMDM4LDkgKzIwMzUsNyBAQCBzdGF0aWMgdm9pZCBub3JtYWxp
emVDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIFZl
Y3RvcgogICAgIEFTU0VSVChzdGF0dXMgPT0gVV9TVFJJTkdfTk9UX1RFUk1JTkFURURfV0FSTklO
Ryk7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHBvcAotI2VuZGlmCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogc3Rh
dGljIGJvb2wgaXNOb25MYXRpbjFTZXBhcmF0b3IoVUNoYXIzMiBjaGFyYWN0ZXIpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KaW5kZXggY2YyODliZjcwZTQwMDAzNjc2
NzgwOGQxYTE2OTlmNjgyMzdhYWMwMC4uMDJhYjVhZmUwODcwZTYzYzM4MmQzMzE3MDYxZjVkMjM3
ZjVlYWM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQpAQCAtODEs
MTEgKzgxLDEwIEBAIHZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQq
IHBhc3RlYm9hcmQsIGJvb2wgYWxsb3dQbGFpblRleHQsIE1hCiB7CiAgICAgUmVmUHRyPFJhbmdl
PiByYW5nZSA9IHNlbGVjdGVkUmFuZ2UoKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8g
RklYTUU6IEhvdyBjYW4gdGhpcyBoYXJkLWNvZGVkIHBhc3RlYm9hcmQgbmFtZSBiZSByaWdodCwg
Z2l2ZW4gdGhhdCB0aGUgcGFzc2VkLWluIHBhc3RlYm9hcmQgaGFzIGEgbmFtZT8KICAgICBjbGll
bnQoKS0+c2V0SW5zZXJ0aW9uUGFzdGVib2FyZChOU0dlbmVyYWxQYm9hcmQpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogCiAgICAgYm9vbCBjaG9zZVBsYWluVGV4dDsKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gZnJhZ21lbnQgPSB3ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQoKnBhc3RlYm9hcmQsICpyYW5n
ZSwgYWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KTsKQEAgLTExMSwxMSArMTEwLDEwIEBA
IHZvaWQgRWRpdG9yOjp0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oKQogCiAgICAgVmVjdG9y
PFN0cmluZz4gdHlwZXM7CiAgICAgdHlwZXMuYXBwZW5kKFN0cmluZyhsZWdhY3lTdHJpbmdQYXN0
ZWJvYXJkVHlwZSgpKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnNldFR5cGVzKHR5cGVzLCBOU0ZpbmRQYm9hcmQp
OwogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0U3Ry
aW5nRm9yVHlwZShtX2ZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmcoc2VsZWN0
ZWRUZXh0Rm9yRGF0YVRyYW5zZmVyKCkpLCBsZWdhY3lTdHJpbmdQYXN0ZWJvYXJkVHlwZSgpLCBO
U0ZpbmRQYm9hcmQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiB2b2lkIEVkaXRvcjo6cmVhZFNlbGVjdGlv
bkZyb21QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIE1haWxCbG9ja3F1
b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVvdGVIYW5kbGluZykKQEAgLTE2OSwxMSArMTY3LDEwIEBA
IHZvaWQgRWRpdG9yOjpyZXBsYWNlTm9kZUZyb21QYXN0ZWJvYXJkKE5vZGUqIG5vZGUsIGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgIC8vIEZJWE1FOiBIb3cgY2FuIHRoaXMgaGFyZC1jb2RlZCBwYXN0
ZWJvYXJkIG5hbWUgYmUgcmlnaHQsIGdpdmVuIHRoYXQgdGhlIHBhc3NlZC1pbiBwYXN0ZWJvYXJk
IGhhcyBhIG5hbWU/CiAgICAgY2xpZW50KCktPnNldEluc2VydGlvblBhc3RlYm9hcmQoTlNHZW5l
cmFsUGJvYXJkKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIGJvb2wgY2hvc2VQbGFpblRleHQ7CiAgICAg
aWYgKFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IHdlYkNvbnRlbnRGcm9tUGFz
dGVib2FyZChwYXN0ZWJvYXJkLCAqcmFuZ2UsIHRydWUsIGNob3NlUGxhaW5UZXh0KSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IGEyNjQzMGNmMjUy
NGFkMjA0ZDYxMzc5YTBlZDBiMDA5OTY1NmI5MWQuLmViMDNhNzk1NjYyNTdmMGExMWY4NTJlOTc2
MjRlOTU2YzMxYTU3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50
SGFuZGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJN
YWMubW0KQEAgLTYxMiwxMCArNjEyLDkgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZl
bnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAg
IC8vIG5vIHVwLXRvLWRhdGUgY2FjaGUgb2YgdGhlbSBhbnl3aGVyZS4KICAgICAgICAgZmFrZUV2
ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W1t2aWV3LT5w
bGF0Zm9ybVdpZGdldCgpIHdpbmRvd10KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0
aW9uXV0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVy
RmxhZ3M6W2luaXRpYXRpbmdFdmVudCBtb2RpZmllckZsYWdzXQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdFdmVudCB0aW1lc3RhbXBd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbaW5pdGlh
dGluZ0V2ZW50IHdpbmRvd051bWJlcl0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCmluZGV4IDUyZGI5OWUwZjllNTdmM2JhMzU4
ZGY4NWYwNzFkYjc4NTI4NGJjMGYuLjljNDRiODZlZWQ3YjViZmYwZmQ2ZWI2OTY3NTExNmZkOWFi
NThhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlci5tbQpAQCAtMTMyLDEwICsxMzIsOSBAQCB2b2lkIFNlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVy
KiwgRwogCiAgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IGdyYXBoaWNzQ29udGV4dC5wbGF0
Zm9ybUNvbnRleHQoKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0dMYXllclJlZiBoaWdo
bGlnaHRMYXllciA9IERESGlnaGxpZ2h0R2V0TGF5ZXJXaXRoQ29udGV4dChkZEhpZ2hsaWdodCgp
LCBjZ0NvbnRleHQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIENHUmVjdCBoaWdobGlnaHRCb3VuZGluZ1Jl
Y3QgPSBEREhpZ2hsaWdodEdldEJvdW5kaW5nUmVjdChkZEhpZ2hsaWdodCgpKTsKICAgICBoaWdo
bGlnaHRCb3VuZGluZ1JlY3Qub3JpZ2luID0gQ0dQb2ludFplcm87CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggYjA1NTBjZjUzMDVlODYzNWRi
NGQ1YTgyZTg5NjZmMDhmMDJhNzUwYi4uNDJiYTE0NWY2NGM3Yjk3NWMyZTFjNDZlMmExNTJiNjY1
MzE2NTViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5j
cHAKQEAgLTU0LDE0ICs1NCw5IEBAIFN0cmluZyBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoU3RyaW5n
IGZvcm1hdCwgLi4uKQogICAgIHZhX2xpc3QgYXJndW1lbnRzOwogICAgIHZhX3N0YXJ0KGFyZ3Vt
ZW50cywgZm9ybWF0KTsKIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1u
b25saXRlcmFsIgotI2VuZGlmCisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVHSU4KICAg
ICBhdXRvIHJlc3VsdCA9IGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVXaXRoRm9ybWF0QW5kQXJndW1l
bnRzKDAsIDAsIGZvcm1hdC5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBhcmd1bWVudHMpKTsKLSNp
ZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgor
ICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0VORAogCiAgICAgdmFfZW5kKGFyZ3VtZW50cyk7
CiAgICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVl
blByb3BlcnRpZXMuaAppbmRleCA0MWE1MGIyMTNmZGUwOGQzN2ZkYmFhY2JiYzk2YjYxYWM4NzMx
MzVjLi4zOTY1NWY2MTQ3YmFlMmZkMjJlZDBjY2E4MGZhOWM2MWFjN2NkODgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oCkBAIC0xOTUsMTAgKzE5NSw5IEBA
IHN0ZDo6b3B0aW9uYWw8U2NyZWVuRGF0YT4gU2NyZWVuRGF0YTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCiAKICAgICAgICAgYXV0byBjb2xvclNwYWNlRGF0YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGljY0RhdGEtPmRhdGEoKSwgaWNjRGF0YS0+c2l6ZSgp
KSk7CiAgICAgICAgIC8vIEZJWE1FOiA8aHR0cDovL3dlYmtpdC5vcmcvYi8xODQzNTg+IFdlIHNo
b3VsZCBzd2l0Y2ggdG8gQ0dDb2xvclNwYWNlQ3JlYXRlSUNDQmFzZWQuCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgICAgIGNnQ29sb3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3Jl
YXRlV2l0aElDQ1Byb2ZpbGUoY29sb3JTcGFjZURhdGEuZ2V0KCkpKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcAppbmRleCBi
NmNlNjk2MjA1MTA3YmQyMmU5NGZjNDM1ZDg3MDFlMGY4M2VlNjJlLi5mMWJiOGI1NDM2YTUxODJi
OTNhY2MwZjY1OTUwMDI0YjdkYTk3ZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHAKQEAgLTEwMywx
MCArMTAzLDkgQEAgSElER2FtZXBhZFByb3ZpZGVyOjpISURHYW1lcGFkUHJvdmlkZXIoKQogCiB2
b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6c3RvcE1vbml0b3JpbmdJbnB1dCgpCiB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1Xbm9ubnVsbCIKKyAgICBBTExPV19OVUxMX0FSR1VNRU5UX0JFR0lOCiAgICAgSU9ISURNYW5h
Z2VyUmVnaXN0ZXJJbnB1dFZhbHVlQ2FsbGJhY2sobV9tYW5hZ2VyLmdldCgpLCBudWxscHRyLCBu
dWxscHRyKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19OVUxMX0FS
R1VNRU5UX0VORAogfQogCiB2b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6c3RhcnRNb25pdG9yaW5n
SW5wdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxh
dGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtRGlzcGxheS5jcHAKaW5kZXggNWYyOWFmODVhOTQ4M2Q0NzYyZTk4N2IzMjA1YjgwZTE3YzNi
YjE5Yy4uNDAzMGM5MzZkNGE5ZDUyMWZmOGEwZjQ5ZmEwNWQ5YWUzOWJlODllNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3Bw
CkBAIC0xMTgsMTQgKzExOCw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IFBs
YXRmb3JtRGlzcGxheTo6Y3JlYXRlUGxhdGZvcm1EaXNwbGF5KCkKIFBsYXRmb3JtRGlzcGxheSYg
UGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNl
X2ZsYWcgb25jZUZsYWc7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZXhpdC10aW1l
LWRlc3RydWN0b3JzIgotI2VuZGlmCisgICAgSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1X
ZXhpdC10aW1lLWRlc3RydWN0b3JzIikKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBsYXRm
b3JtRGlzcGxheT4gZGlzcGxheTsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIElHTk9SRV9DTEFOR19XQVJOSU5HX0VORAogICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKICAgICAgICAgZGlzcGxheSA9IGNyZWF0ZVBs
YXRmb3JtRGlzcGxheSgpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRv
ci5jcHAKaW5kZXggNGQ1ZDgwODhhOTJjZTk3ZTljZDQ4MGJjNGM4ZWE1NjhiOGU2YTZiYS4uZTgy
YmJmNmFhYzBiOWI5NTNmNzViZDI0MTI2OThhOWQwOWUxY2EyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWly
QXdhcmVUZXh0SXRlcmF0b3IuY3BwCkBAIC02OSwxMCArNjksNyBAQCBib29sIFN1cnJvZ2F0ZVBh
aXJBd2FyZVRleHRJdGVyYXRvcjo6Y29uc3VtZVNsb3dDYXNlKFVDaGFyMzImIGNoYXJhY3Rlciwg
dW5zaWduZQogICAgIHJldHVybiB0cnVlOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5H
KQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYKK0FMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAvLyBOT1RFOiBJQ1UncyB1bm9ybV9ub3JtYWxpemUgZnVu
Y3Rpb24gaXMgZGVwcmVjYXRlZC4KIAogVUNoYXIzMiBTdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRl
cmF0b3I6Om5vcm1hbGl6ZVZvaWNpbmdNYXJrcygpCkBAIC05NSw4ICs5Miw2IEBAIFVDaGFyMzIg
U3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yOjpub3JtYWxpemVWb2ljaW5nTWFya3MoKQog
ICAgIHJldHVybiAwOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2Jq
Qy5tbQppbmRleCBiMmMxZTk2NjM0YjNmNTY0ZmZjMGM1YmQxNmIyOWVlNDJkODRmYTJjLi5mNzgy
ZDhiN2UwZmQ4OTdkMDJiYWE1YWQxZjc3MzMxYWJiOWZhYmNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91
cEFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCkBAIC0xMjMsMTAgKzEyMyw5IEBA
IHZvaWQgTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6OnVwZGF0ZU9wdGlvbnMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIGNoYXJhY3RlcmlzCiAKICAgICAgICAgbV9vcHRpb25zLnJlbW92ZSgoX19i
cmlkZ2UgQ0ZUeXBlUmVmKXJlbW92ZWRBVk9wdGlvbik7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgQVZNZWRpYVNlbGVjdGlvbk9wdGlvbiogc2VsZWN0ZWRPcHRpb24gPSBbbV9wbGF5
ZXJJdGVtIHNlbGVjdGVkTWVkaWFPcHRpb25Jbk1lZGlhU2VsZWN0aW9uR3JvdXA6bV9tZWRpYVNl
bGVjdGlvbkdyb3VwLmdldCgpXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBmb3IgKEFWTWVkaWFTZWxlY3Rp
b25PcHRpb24qIGFkZGVkQVZPcHRpb24gaW4gYWRkZWRBVk9wdGlvbnMuZ2V0KCkpIHsKICAgICAg
ICAgYXV0byBhZGRlZE9wdGlvbiA9IE1lZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQzo6Y3JlYXRl
KCp0aGlzLCBhZGRlZEFWT3B0aW9uKTsKICAgICAgICAgaWYgKGFkZGVkQVZPcHRpb24gPT0gc2Vs
ZWN0ZWRPcHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFW
U3RyZWFtU2Vzc2lvbi5tbQppbmRleCAyNmFiMDI0ZDhiYzlmODJiZjdkNjU1NTkzNmRjNWViNWFh
NGI1MDI4Li44NDM1MmQ3ZGUwNWU1NWRhYjVmZDZmOWRlNDdmYWVlODZhY2QyZmE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0K
QEAgLTE5OCwxMiArMTk4LDExIEBAIGJvb2wgQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6dXBk
YXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0CiAKICAgICAgICAg
UmV0YWluUHRyPE5TRGF0YT4gY2VydGlmaWNhdGVEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxv
Y10gaW5pdFdpdGhCeXRlczptX2NlcnRpZmljYXRlLT5kYXRhKCkgbGVuZ3RoOm1fY2VydGlmaWNh
dGUtPmxlbmd0aCgpXSk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdvYmpjLWxpdGVyYWwtY29udmVyc2lvbiIKKyAg
ICAgICAgSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1Xb2JqYy1saXRlcmFsLWNvbnZlcnNp
b24iKQogICAgICAgICBTdHJpbmcgc3RvcmFnZVBhdGggPSB0aGlzLT5zdG9yYWdlUGF0aCgpOwog
ICAgICAgICBpZiAoIXN0b3JhZ2VQYXRoLmlzRW1wdHkoKSAmJiBbZ2V0QVZTdHJlYW1TZXNzaW9u
Q2xhc3MoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHJlbW92ZVBlbmRpbmdFeHBpcmVk
U2Vzc2lvblJlcG9ydHM6d2l0aEFwcElkZW50aWZpZXI6c3RvcmFnZURpcmVjdG9yeUF0VVJMOild
KQogICAgICAgICAgICAgW2dldEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkgcmVtb3ZlUGVuZGluZ0V4
cGlyZWRTZXNzaW9uUmVwb3J0czpAW21fZXhwaXJlZFNlc3Npb24uZ2V0KCldIHdpdGhBcHBJZGVu
dGlmaWVyOmNlcnRpZmljYXRlRGF0YS5nZXQoKSBzdG9yYWdlRGlyZWN0b3J5QXRVUkw6W05TVVJM
IGZpbGVVUkxXaXRoUGF0aDpzdG9yYWdlUGF0aF1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBJR05PUkVfQ0xBTkdfV0FSTklOR19FTkQKICAgICAgICAgbV9leHBpcmVk
U2Vzc2lvbiA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTI0Mywx
MCArMjQyLDkgQEAgYm9vbCBDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjp1cGRhdGUoVWludDhB
cnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG5leHQKICAgICAgICAgfQogCiAgICAgICAg
IE5TRXJyb3IqIGVycm9yID0gbmlsOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBS
ZXRhaW5QdHI8TlNEYXRhPiByZXF1ZXN0ID0gW3Byb3RlY3RlZFNvdXJjZUJ1ZmZlci0+cGFyc2Vy
KCkgc3RyZWFtaW5nQ29udGVudEtleVJlcXVlc3REYXRhRm9yQXBwOmNlcnRpZmljYXRlRGF0YS5n
ZXQoKSBjb250ZW50SWRlbnRpZmllcjppbml0RGF0YS5nZXQoKSB0cmFja0lEOnByb3RlY3RlZFNv
dXJjZUJ1ZmZlci0+cHJvdGVjdGVkVHJhY2tJRCgpIG9wdGlvbnM6b3B0aW9ucy5nZXQoKSBlcnJv
cjomZXJyb3JdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgICAgICBpZiAoIVtwcm90ZWN0ZWRTb3Vy
Y2VCdWZmZXItPnBhcnNlcigpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoY29udGVudFBy
b3RlY3Rpb25TZXNzaW9uSWRlbnRpZmllcildKQogICAgICAgICAgICAgbV9zZXNzaW9uSWQgPSBj
cmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCk7CkBAIC0yNzMsMTAgKzI3MSw5IEBAIGJvb2wgQ0RN
U2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVp
bnQ4QXJyYXk+JiBuZXh0CiAgICAgZXJyb3JDb2RlID0gTWVkaWFQbGF5ZXI6Ok5vRXJyb3I7CiAg
ICAgc3lzdGVtQ29kZSA9IDA7CiAgICAgUmV0YWluUHRyPE5TRGF0YT4ga2V5RGF0YSA9IGFkb3B0
TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6a2V5LT5kYXRhKCkgbGVuZ3RoOmtleS0+
bGVuZ3RoKCldKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtwcm90ZWN0ZWRTb3VyY2VCdWZm
ZXItPnBhcnNlcigpIHByb2Nlc3NDb250ZW50S2V5UmVzcG9uc2VEYXRhOmtleURhdGEuZ2V0KCkg
Zm9yVHJhY2tJRDpwcm90ZWN0ZWRTb3VyY2VCdWZmZXItPnByb3RlY3RlZFRyYWNrSUQoKV07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNv
dXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCBkMzI2ZjJmYTJm
YjJiMWM2MGVkOWUzYjkzODhhYTU0NTlkOWQ3NWUxLi4xN2QxZDkyZGYyNzIwZWUzZWE0OWQ1NjM3
M2RhNTZiYzRjNWM5YTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RN
U2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC01NCwxMSArNTQsOSBAQCBwdWJsaWM6CiAK
ICAgICAvLyBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQ0Vycm9yQ2xpZW50CiAgICAgdm9pZCBs
YXllckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciAqLCBOU0Vycm9y
ICosIGJvb2wmIHNob3VsZElnbm9yZSkgb3ZlcnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFn
bWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWls
YWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9CRUdJTgogICAgIHZvaWQgcmVuZGVyZXJE
aWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICosIE5TRXJyb3IgKiwg
Ym9vbCYgc2hvdWxkSWdub3JlKSBvdmVycmlkZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ORVdfQVBJX0VORAogCiAgICAgdm9pZCBhZGRTb3VyY2VCdWZmZXIoU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqKTsKICAgICB2b2lkIHJlbW92ZVNvdXJjZUJ1ZmZlcihT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXgg
ZGMzZGVlYjNmNzkyMDkwZmIwNjcyN2VmNDQ3MzRhZDA4M2Q1MGY4Mi4uNDA3MWM2YjZlODhhZGI1
Mjk5YWFiMTBjYmIwZjViMjE5ODNiMmYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0y
Njk5LDEwICsyNjk5LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpzZXRDdXJyZW50VGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXYKIAogICAgIGlmICh0cmFj
aykgewogICAgICAgICBpZiAodHJhY2stPnRleHRUcmFja0NhdGVnb3J5KCkgPT0gSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUFWRjo6TGVnYWN5Q2xvc2VkQ2FwdGlvbikKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgICAgICAgICBbbV9hdlBsYXllci5nZXQoKSBzZXRDbG9zZWRDYXB0aW9u
RGlzcGxheUVuYWJsZWQ6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogI2lmIEhBVkUoQVZGT1VO
REFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCkKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQog
ICAgICAgICBlbHNlIGlmICh0cmFjay0+dGV4dFRyYWNrQ2F0ZWdvcnkoKSA9PSBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGOjpPdXRPZkJhbmQpCkBAIC0yNzE1LDEwICsyNzE0LDkgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRDdXJyZW50VGV4dFRyYWNrKElu
YmFuZFRleHRUcmFja1ByaXYKICNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05f
R1JPVVApCiAgICAgICAgIFttX2F2UGxheWVySXRlbS5nZXQoKSBzZWxlY3RNZWRpYU9wdGlvbjow
IGluTWVkaWFTZWxlY3Rpb25Hcm91cDpzYWZlTWVkaWFTZWxlY3Rpb25Hcm91cEZvckxlZ2libGVN
ZWRpYSgpXTsKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBbbV9hdlBs
YXllci5nZXQoKSBzZXRDbG9zZWRDYXB0aW9uRGlzcGxheUVuYWJsZWQ6Tk9dOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICB9CiAKIH0KQEAgLTI3MzQsMTAgKzI3MzIsOSBAQCBTdHJpbmcgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrKCkg
Y29uc3QKICNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiAgICAg
Ly8gSWYgQVZGb3VuZGF0aW9uIGhhcyBhbiBhdWRpYmxlIGdyb3VwLCByZXR1cm4gdGhlIGxhbmd1
YWdlIG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgYXVkaWJsZSBvcHRpb24uCiAgICAgQVZNZWRp
YVNlbGVjdGlvbkdyb3VwVHlwZSAqYXVkaWJsZUdyb3VwID0gW21fYXZBc3NldC5nZXQoKSBtZWRp
YVNlbGVjdGlvbkdyb3VwRm9yTWVkaWFDaGFyYWN0ZXJpc3RpYzpBVk1lZGlhQ2hhcmFjdGVyaXN0
aWNBdWRpYmxlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEFWTWVkaWFTZWxlY3Rpb25PcHRp
b25UeXBlICpjdXJyZW50bHlTZWxlY3RlZEF1ZGlibGVPcHRpb24gPSBbbV9hdlBsYXllckl0ZW0u
Z2V0KCkgc2VsZWN0ZWRNZWRpYU9wdGlvbkluTWVkaWFTZWxlY3Rpb25Hcm91cDphdWRpYmxlR3Jv
dXBdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgIGlmIChjdXJyZW50bHlTZWxlY3RlZEF1ZGlibGVPcHRpb24p
IHsKICAgICAgICAgbV9sYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2sgPSBbW2N1cnJlbnRseVNl
bGVjdGVkQXVkaWJsZU9wdGlvbiBsb2NhbGVdIGxvY2FsZUlkZW50aWZpZXJdOwogICAgICAgICBJ
TkZPX0xPRyhMT0dJREVOVElGSUVSLCAibGFuZ3VhZ2Ugb2Ygc2VsZWN0ZWQgYXVkaWJsZSBvcHRp
b24gIiwgbV9sYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2spOwpAQCAtMzI0OCwxMCArMzI0NSw5
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y2FuUGxheUZhc3RS
ZXZlcnNlRGlkQ2hhbmdlKGJvb2wgbmV3VmFsCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnNldFNob3VsZERpc2FibGVTbGVlcChib29sIGZsYWcpCiB7CiAjaWYgUExB
VEZPUk0oSU9TKSAmJiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikgJiYgIVBMQVRGT1JNKElPU01B
QykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFttX2F2UGxheWVyIF9zZXRQcmV2ZW50c1NsZWVw
RHVyaW5nVmlkZW9QbGF5YmFjazpmbGFnXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbHNlCiAgICAgVU5VU0VE
X1BBUkFNKGZsYWcpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IDA0NDRk
OWFmMDU3M2Y1YjcyN2E2MzU5ZGI1ZGU0NzFkYTgyN2FlZTMuLjk4MjMyMDg2ZDcxZDc1ODc0NGJk
MmMwNDQ2OWI2MThkMjAzMTc2YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC02OSwx
MiArNjksMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhh
c2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiB0eXBlcyk7CiAgICAgc3Rh
dGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5n
aW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHkt
bmV3IgorICAgIEFMTE9XX05FV19BUElfQkVHSU4KICAgICB2b2lkIGFkZEF1ZGlvUmVuZGVyZXIo
QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKik7CiAgICAgdm9pZCByZW1vdmVBdWRpb1JlbmRl
cmVyKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciopOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX05FV19BUElfRU5ECiAKICAgICBNZWRpYVBsYXllcjo6TmV0d29y
a1N0YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIE1lZGlhUGxheWVyOjpS
ZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKQEAgLTg3LDExICs4NSw5IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldExvYWRpbmdQcm9ncmVzc3NlZChib29sIGZsYWcpIHsgbV9s
b2FkaW5nUHJvZ3Jlc3NlZCA9IGZsYWc7IH0KICAgICB2b2lkIHNldEhhc0F2YWlsYWJsZVZpZGVv
RnJhbWUoYm9vbCk7CiAgICAgYm9vbCBoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVX
X0FQSV9CRUdJTgogICAgIHZvaWQgc2V0SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUoQVZTYW1wbGVC
dWZmZXJBdWRpb1JlbmRlcmVyKiwgYm9vbCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfTkVXX0FQSV9FTkQKICAgICBib29sIGFsbFJlbmRlcmVyc0hhdmVBdmFpbGFi
bGVTYW1wbGVzKCkgY29uc3QgeyByZXR1cm4gbV9hbGxSZW5kZXJlcnNIYXZlQXZhaWxhYmxlU2Ft
cGxlczsgfQogICAgIHZvaWQgdXBkYXRlQWxsUmVuZGVyZXJzSGF2ZUF2YWlsYWJsZVNhbXBsZXMo
KTsKICAgICB2b2lkIGR1cmF0aW9uQ2hhbmdlZCgpOwpAQCAtMjY3LDEyICsyNjMsMTAgQEAgcHJp
dmF0ZToKICAgICBzdHJ1Y3QgQXVkaW9SZW5kZXJlclByb3BlcnRpZXMgewogICAgICAgICBib29s
IGhhc0F1ZGlibGVTYW1wbGUgeyBmYWxzZSB9OwogICAgIH07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1w
cmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2
YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9CRUdJTgogICAgIEhhc2hNYXA8UmV0
YWluUHRyPENGVHlwZVJlZj4sIEF1ZGlvUmVuZGVyZXJQcm9wZXJ0aWVzPiBtX3NhbXBsZUJ1ZmZl
ckF1ZGlvUmVuZGVyZXJNYXA7CiAgICAgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyUmVuZGVyU3lu
Y2hyb25pemVyPiBtX3N5bmNocm9uaXplcjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ORVdfQVBJX0VORAogICAgIFJldGFpblB0cjxpZD4gbV90aW1lSnVtcGVkT2Jz
ZXJ2ZXI7CiAgICAgUmV0YWluUHRyPGlkPiBtX2R1cmF0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWlu
UHRyPEFWU3RyZWFtU2Vzc2lvbj4gbV9zdHJlYW1TZXNzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCmluZGV4IDk2OGZjNWEwODdmMzExZDg4YjIzOWU2NzY5NDg5NDkyMTNiNGNiYTYuLjFj
MTk3YWM1ZWU5MDJjMzcxY2ZiN2Y5OTg5ZWEzM2U4ZWMyMWI0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMubW0KQEAgLTYyLDE3ICs2MiwxMyBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElP
TkFMKEFWRm91bmRhdGlvbikKIAogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRhdGlv
biwgQVZBc3NldCkKIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVVJM
QXNzZXQpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitBTExPV19ORVdfQVBJ
X0JFR0lOCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1
ZmZlckF1ZGlvUmVuZGVyZXIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19O
RVdfQVBJX0VORAogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXci
CitBTExPV19ORVdfQVBJX0JFR0lOCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0
aW9uLCBBVlNhbXBsZUJ1ZmZlclJlbmRlclN5bmNocm9uaXplcikKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKK0FMTE9XX05FV19BUElfRU5ECiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwo
QVZGb3VuZGF0aW9uLCBBVlN0cmVhbURhdGFQYXJzZXIpCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9O
QUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbVNlc3Npb24pOwogU09GVF9MSU5LX0NMQVNTX09QVElP
TkFMKEFWRm91bmRhdGlvbiwgQVZWaWRlb1BlcmZvcm1hbmNlTWV0cmljcykKQEAgLTc3MywxMSAr
NzY5LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEhh
c0F2YWlsYWJsZVZpZGVvRnJhbWUoYm9vbCBmbGFnKQogICAgIH0KIH0KIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vu
a25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3Vh
cmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9CRUdJTgogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxl
KEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciogcmVuZGVyZXIsIGJvb2wgZmxhZykKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19BUElfRU5ECiB7CiAgICAgYXV0byBp
dGVyID0gbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmZpbmQoKF9fYnJpZGdlIENGVHlw
ZVJlZilyZW5kZXJlcik7CiAgICAgaWYgKGl0ZXIgPT0gbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRl
cmVyTWFwLmVuZCgpKQpAQCAtMTAxNywxMSArMTAxMSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTCiAgICAgbV9wbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKIH0KIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vu
Z3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9CRUdJTgogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmFkZEF1ZGlvUmVuZGVyZXIoQVZTYW1w
bGVCdWZmZXJBdWRpb1JlbmRlcmVyKiBhdWRpb1JlbmRlcmVyKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorQUxMT1dfTkVXX0FQSV9FTkQKIHsKICAgICBpZiAoIW1fc2FtcGxlQnVmZmVy
QXVkaW9SZW5kZXJlck1hcC5hZGQoKF9fYnJpZGdlIENGVHlwZVJlZilhdWRpb1JlbmRlcmVyLCBB
dWRpb1JlbmRlcmVyUHJvcGVydGllcygpKS5pc05ld0VudHJ5KQogICAgICAgICByZXR1cm47CkBA
IC0xMDM0LDExICsxMDI2LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmFkZEF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1IKICAgICBtX3BsYXll
ci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChtX3BsYXllcik7CiB9
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKK0FMTE9XX05FV19BUElfQkVH
SU4KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZW1vdmVBdWRp
b1JlbmRlcmVyKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciogYXVkaW9SZW5kZXJlcikKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19BUElfRU5ECiB7CiAgICAgYXV0
byBpdGVyID0gbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmZpbmQoKF9fYnJpZGdlIENG
VHlwZVJlZilhdWRpb1JlbmRlcmVyKTsKICAgICBpZiAoaXRlciA9PSBtX3NhbXBsZUJ1ZmZlckF1
ZGlvUmVuZGVyZXJNYXAuZW5kKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaAppbmRleCAwMTljZjM3YjZiYmRhYWM0YzRlYmZlYTNm
OTg0YjJhYmQ5YmYxM2ExLi5mMmY4MzNmNmQ0MGYxZjEyYjZjYTc0OTc1MmYwMjhkZWQyZmMxNGEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDLmgKQEAgLTcwLDExICs3MCw5IEBAIGNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDRXJyb3JDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgflNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDRXJyb3JDbGllbnQoKSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCB2b2lkIGxheWVy
RGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyICosIE5TRXJyb3IgKiwg
Ym9vbCYgc2hvdWxkSWdub3JlKSA9IDA7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1u
ZXciCisgICAgQUxMT1dfTkVXX0FQSV9CRUdJTgogICAgIHZpcnR1YWwgdm9pZCByZW5kZXJlckRp
ZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKiwgTlNFcnJvciAqLCBi
b29sJiBzaG91bGRJZ25vcmUpID0gMDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ORVdfQVBJX0VORAogfTsKIAogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMgZmluYWwgOiBwdWJsaWMgU291cmNlQnVmZmVyUHJpdmF0ZSB7CkBAIC0xMTcsMTEgKzExNSw5
IEBAIHB1YmxpYzoKICAgICB2b2lkIHVucmVnaXN0ZXJGb3JFcnJvck5vdGlmaWNhdGlvbnMoU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakNFcnJvckNsaWVudCopOwogICAgIHZvaWQgbGF5ZXJEaWRS
ZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgKiwgTlNFcnJvciAqKTsKICAg
ICB2b2lkIG91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRlcm5hbFByb3RlY3Rpb25D
aGFuZ2VkKGJvb2wpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAgIEFM
TE9XX05FV19BUElfQkVHSU4KICAgICB2b2lkIHJlbmRlcmVyRGlkUmVjZWl2ZUVycm9yKEFWU2Ft
cGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqLCBOU0Vycm9yICopOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX05FV19BUElfRU5ECiAKICAgICB2b2lkIHNldFZpZGVvTGF5
ZXIoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIqKTsKICAgICB2b2lkIHNldERlY29tcHJlc3Np
b25TZXNzaW9uKFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbiopOwpAQCAtMTUyLDExICsxNDgs
OSBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVzdHJveVJlbmRlcmVycygpOwogCiAgICAgdm9pZCBm
bHVzaFZpZGVvKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxM
T1dfTkVXX0FQSV9CRUdJTgogICAgIHZvaWQgZmx1c2goQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRl
cmVyICopOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX05FV19BUElf
RU5ECiAKICAgICBXZWFrUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiBjcmVhdGVXZWFr
UHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCkBA
IC0xNzAsMTEgKzE2NCw5IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPEFWU3RyZWFtRGF0YVBh
cnNlcj4gbV9wYXJzZXI7CiAgICAgUmV0YWluUHRyPEFWQXNzZXQ+IG1fYXNzZXQ7CiAgICAgUmV0
YWluUHRyPEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBtX2Rpc3BsYXlMYXllcjsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKKyAgICBBTExPV19ORVdfQVBJX0JFR0lOCiAg
ICAgSGFzaE1hcDxpbnQsIFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+PiBt
X2F1ZGlvUmVuZGVyZXJzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9X
X05FV19BUElfRU5ECiAgICAgUmV0YWluUHRyPFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVy
PiBtX2RlbGVnYXRlOwogICAgIFJldGFpblB0cjxXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVu
ZXI+IG1fZXJyb3JMaXN0ZW5lcjsKICAgICBSZXRhaW5QdHI8TlNFcnJvcj4gbV9oZGNwRXJyb3I7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDLm1tCmluZGV4IGRjOTM0NzhlZTM1YjMwOWZiZThmMWQyNWZlMzUxMjk2NWZlMDY2ZjUuLmNl
ZWM2MDM2ZDE4Mjg4Mjg5MTZkMjBkYzIxZDU2MmJlZDllOWZiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC02OCwx
MSArNjgsOSBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAog
U09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZBc3NldFRyYWNrKQogU09GVF9MSU5LX0NM
QVNTKEFWRm91bmRhdGlvbiwgQVZTdHJlYW1EYXRhUGFyc2VyKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24t
cHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1h
dmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9CRUdJTgogU09GVF9MSU5LX0NMQVNTKEFW
Rm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorQUxMT1dfTkVXX0FQSV9FTkQKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5k
YXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKQogU09GVF9MSU5LX0NMQVNTKEFWRm91
bmRhdGlvbiwgQVZTdHJlYW1TZXNzaW9uKQogCkBAIC0yNDMsMjMgKzI0MSwxOSBAQCBTT0ZUX0xJ
TktfQ09OU1RBTlQoQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckZhaWxl
ZFRvRGVjb2RlTm90aWZpYwogQGludGVyZmFjZSBXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVu
ZXIgOiBOU09iamVjdCB7CiAgICAgV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMq
IF9wYXJlbnQ7CiAgICAgVmVjdG9yPFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cj4+IF9sYXllcnM7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxM
T1dfTkVXX0FQSV9CRUdJTgogICAgIFZlY3RvcjxSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJBdWRp
b1JlbmRlcmVyPj4gX3JlbmRlcmVyczsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ORVdfQVBJX0VORAogfQogCiAtIChpZClpbml0V2l0aFBhcmVudDooV2ViQ29yZTo6
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqKXBhcmVudDsKIC0gKHZvaWQpaW52YWxpZGF0ZTsK
IC0gKHZvaWQpYmVnaW5PYnNlcnZpbmdMYXllcjooQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIg
KilsYXllcjsKIC0gKHZvaWQpc3RvcE9ic2VydmluZ0xheWVyOihBVlNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllciAqKWxheWVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxM
T1dfTkVXX0FQSV9CRUdJTgogLSAodm9pZCliZWdpbk9ic2VydmluZ1JlbmRlcmVyOihBVlNhbXBs
ZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKilyZW5kZXJlcjsKIC0gKHZvaWQpc3RvcE9ic2VydmluZ1Jl
bmRlcmVyOihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKilyZW5kZXJlcjsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19BUElfRU5ECiBAZW5kCiAKIEBpbXBsZW1l
bnRhdGlvbiBXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVuZXIKQEAgLTMyMiwxMiArMzE2LDEw
IEBAIFNPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6QVZTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJGYWlsZWRUb0RlY29kZU5vdGlmaWNhdGlvbiBvYmplY3Q6bGF5ZXJdOwogfQogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitBTExPV19ORVdfQVBJX0JFR0lOCiAt
ICh2b2lkKWJlZ2luT2JzZXJ2aW5nUmVuZGVyZXI6KEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJl
ciopcmVuZGVyZXIKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19B
UElfRU5ECiAgICAgQVNTRVJUKF9wYXJlbnQpOwogICAgIEFTU0VSVCghX3JlbmRlcmVycy5jb250
YWlucyhyZW5kZXJlcikpOwogCkBAIC0zMzUsMTEgKzMyNyw5IEBAIFNPRlRfTElOS19DT05TVEFO
VChBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyRmFpbGVkVG9EZWNvZGVO
b3RpZmljCiAgICAgW3JlbmRlcmVyIGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImVycm9y
IiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDpudWxscHRyXTsK
IH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9C
RUdJTgogLSAodm9pZClzdG9wT2JzZXJ2aW5nUmVuZGVyZXI6KEFWU2FtcGxlQnVmZmVyQXVkaW9S
ZW5kZXJlciopcmVuZGVyZXIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05F
V19BUElfRU5ECiB7CiAgICAgQVNTRVJUKF9wYXJlbnQpOwogICAgIEFTU0VSVChfcmVuZGVyZXJz
LmNvbnRhaW5zKHJlbmRlcmVyKSk7CkBAIC0zNzIsMTEgKzM2Miw5IEBAIFNPRlRfTElOS19DT05T
VEFOVChBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyRmFpbGVkVG9EZWNv
ZGVOb3RpZmljCiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIAogICAgIH0gZWxz
ZSBpZiAoW29iamVjdCBpc0tpbmRPZkNsYXNzOmdldEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJl
ckNsYXNzKCldKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgICAg
IEFMTE9XX05FV19BUElfQkVHSU4KICAgICAgICAgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlcj4gcmVuZGVyZXIgPSAoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICopb2Jq
ZWN0OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ORVdfQVBJ
X0VORAogICAgICAgICBSZXRhaW5QdHI8TlNFcnJvcj4gZXJyb3IgPSBbY2hhbmdlIHZhbHVlRm9y
S2V5Ok5TS2V5VmFsdWVDaGFuZ2VOZXdLZXldOwogCiAgICAgICAgIEFTU0VSVChfcmVuZGVyZXJz
LmNvbnRhaW5zKHJlbmRlcmVyLmdldCgpKSk7CkBAIC04NTIsMjEgKzg0MCwxNyBAQCB2b2lkIFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0cmFja0RpZENoYW5nZUVuYWJsZWQoQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVNvdQogICAgIGludCB0cmFja0lEID0gdHJhY2stPnRyYWNrSUQoKTsKIAog
ICAgIGlmICghdHJhY2stPmVuYWJsZWQoKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxp
dHktbmV3IgorICAgICAgICBBTExPV19ORVdfQVBJX0JFR0lOCiAgICAgICAgIFJldGFpblB0cjxB
VlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+IHJlbmRlcmVyID0gbV9hdWRpb1JlbmRlcmVycy5n
ZXQodHJhY2tJRCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9X
X05FV19BUElfRU5ECiAgICAgICAgIFttX3BhcnNlciBzZXRTaG91bGRQcm92aWRlTWVkaWFEYXRh
Ok5PIGZvclRyYWNrSUQ6dHJhY2tJRF07CiAgICAgICAgIGlmIChtX21lZGlhU291cmNlKQogICAg
ICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnJlbW92ZUF1ZGlvUmVuZGVyZXIocmVu
ZGVyZXIuZ2V0KCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFttX3BhcnNlciBzZXRTaG91bGRQ
cm92aWRlTWVkaWFEYXRhOllFUyBmb3JUcmFja0lEOnRyYWNrSURdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25v
d24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRl
ZC1hdmFpbGFiaWxpdHktbmV3IgorICAgICAgICBBTExPV19ORVdfQVBJX0JFR0lOCiAgICAgICAg
IFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+IHJlbmRlcmVyOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ORVdfQVBJX0VORAogICAgICAg
ICBpZiAoIW1fYXVkaW9SZW5kZXJlcnMuY29udGFpbnModHJhY2tJRCkpIHsKICAgICAgICAgICAg
IHJlbmRlcmVyID0gYWRvcHROUyhbYWxsb2NBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJJbnN0
YW5jZSgpIGluaXRdKTsKICAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRy
KCk7CkBAIC05OTcsMTEgKzk4MSw5IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
Om91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRlcm5hbFByb3RlY3RpCiAgICAgbGF5
ZXJEaWRSZWNlaXZlRXJyb3IobV9kaXNwbGF5TGF5ZXIuZ2V0KCksIGVycm9yLmdldCgpKTsKIH0K
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9CRUdJ
Tgogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6cmVuZGVyZXJEaWRSZWNlaXZlRXJy
b3IoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICpyZW5kZXJlciwgTlNFcnJvciAqZXJyb3Ip
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ORVdfQVBJX0VORAogewogICAg
IExPRyhNZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlckRp
ZFJlY2VpdmVFcnJvciglcCk6IHJlbmRlcmVyKCVwKSwgZXJyb3IoJUApIiwgdGhpcywgcmVuZGVy
ZXIsIFtlcnJvciBkZXNjcmlwdGlvbl0pOwogCkBAIC0xMDUwLDExICsxMDMyLDkgQEAgdm9pZCBT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Zmx1c2hWaWRlbygpCiAgICAgfQogfQogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitBTExPV19ORVdfQVBJX0JFR0lOCiB2b2lk
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVzaChBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVu
ZGVyZXIgKnJlbmRlcmVyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfTkVX
X0FQSV9FTkQKIHsKICAgICBbcmVuZGVyZXIgZmx1c2hdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FM
YXllckNvY29hLm1tCmluZGV4IGRmMDQxMDNjNzFhOTg5NjRlOWYyOWZlMTk4MWIzNjIxNThhNmJk
OTkuLmZiMmFhMWU0MTVhODMzYzUxZmMwZWM4NDYyM2FkZTk3ZmQ1MjFiMTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXll
ckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29h
L1BsYXRmb3JtQ0FMYXllckNvY29hLm1tCkBAIC0xMTUwLDEwICsxMTUwLDkgQEAgdm9pZCBQbGF0
Zm9ybUNBTGF5ZXI6OmRyYXdMYXllckNvbnRlbnRzKENHQ29udGV4dFJlZiBjb250ZXh0LCBXZWJD
b3JlOjpQbGF0Zm9ybUMKICAgICAKICAgICAvLyBTZXQgdXAgYW4gTlNHcmFwaGljc0NvbnRleHQg
Zm9yIHRoZSBjb250ZXh0LCBzbyB0aGF0IHBhcnRzIG9mIEFwcEtpdCB0aGF0IHJlbHkgb24KICAg
ICAvLyB0aGUgY3VycmVudCBOU0dyYXBoaWNzQ29udGV4dCAoZS5nLiBOU0NlbGwgZHJhd2luZykg
Z2V0IHRoZSByaWdodCBvbmUuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0dyYXBoaWNzQ29u
dGV4dCogbGF5ZXJDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdp
dGhHcmFwaGljc1BvcnQ6Y29udGV4dCBmbGlwcGVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW05T
R3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OmxheWVyQ29udGV4dF07CiAjZW5kaWYK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ZvbnRDYWlyb0hhcmZidXp6TkcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKaW5kZXggZWY4NDNhMDYxZTljMGM4MjY3
MTYzNDg5ZGNmYWEzNjViMGY3NTc5ZS4uOWVmZTZmNTg3YzcyNGQzZjBkOGUxZmRmMjc5MjRjNGUy
NGU3MzI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKQEAgLTQ5LDE0ICs0OSw5IEBA
IGNvbnN0IEZvbnQqIEZvbnRDYXNjYWRlOjpmb250Rm9yQ29tYmluaW5nQ2hhcmFjdGVyU2VxdWVu
Y2UoY29uc3QgVUNoYXIqIGNoYXJhY3RlCiB7CiAgICAgVUVycm9yQ29kZSBlcnJvciA9IFVfWkVS
T19FUlJPUjsKICAgICBWZWN0b3I8VUNoYXIsIDQ+IG5vcm1hbGl6ZWRDaGFyYWN0ZXJzKGxlbmd0
aCk7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0jZW5kaWYKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIGludDMyX3Qgbm9ybWFsaXplZExlbmd0aCA9IHVub3JtX25vcm1hbGl6ZShjaGFyYWN0ZXJz
LCBsZW5ndGgsIFVOT1JNX05GQywgVU5PUk1fVU5JQ09ERV8zXzIsIG5vcm1hbGl6ZWRDaGFyYWN0
ZXJzLmRhdGEoKSwgbGVuZ3RoLCAmZXJyb3IpOwotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICBpZiAoVV9GQUlMVVJFKGVycm9yKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlRGVjb2RlckNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlRGVjb2RlckNHLmNwcAppbmRleCBiN2Q1OTJhOWM4YTI1ZDcwZDM3ZjUxOWY1
MTM3YzQyZDNhMzMxYWVlLi44YjYxZTZjNzZmOTljMzYxNGQ0YTMwYmU2YTBmY2MxZDBjYzQyODE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZURl
Y29kZXJDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VEZWNvZGVyQ0cuY3BwCkBAIC00MjMsMTQgKzQyMyw5IEBAIE5hdGl2ZUltYWdlUHRyIEltYWdl
RGVjb2RlckNHOjpjcmVhdGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QgaW5kZXgsIFN1YnNhbXBs
aW5nCiAgICAgLy8gd2hpY2ggY2F1c2VkIGEgcGVyZm9ybWFuY2UgcmVncmVzc2lvbiBmb3IgdXMg
c2luY2UgdGhlIGltYWdlcyBoYWQgdG8gYmUgcmVzYW1wbGVkL3JlY3JlYXRlZCBldmVyeSB0aW1l
IHdlIGNhbGxlZAogICAgIC8vIENHQ29udGV4dERyYXdJbWFnZS4gV2Ugbm93IHRlbGwgQ0cgdG8g
Y2FjaGUgdGhlIGRyYXduIGltYWdlcy4gU2VlIGFsc28gPHJkYXI6Ly9wcm9ibGVtLzE0MzY2NzU1
PiAtCiAgICAgLy8gQ29yZUdyYXBoaWNzIG5lZWRzIHRvIHVuLWRlcHJlY2F0ZSBrQ0dJbWFnZUNh
Y2hpbmdUZW1wb3Jhcnkgc2luY2UgaXQncyBzdGlsbCBub3QgdGhlIGRlZmF1bHQuCi0jaWYgQ09N
UElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENHSW1hZ2VTZXRD
YWNoaW5nRmxhZ3MoaW1hZ2UuZ2V0KCksIGtDR0ltYWdlQ2FjaGluZ1RlbXBvcmFyeSk7Ci0jaWYg
Q09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZiAvLyBQTEFURk9STShJ
T1MpCiAgICAgCiAgICAgU3RyaW5nIHV0aSA9IHRoaXMtPnV0aSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oCmluZGV4IGQ2Yjll
MTA1YjdhOTcyYzUyZWNlZmFkYjFjNWQ1NWNiNmY4NDQ5MjkuLjYwOTIyMmE5N2IyZjRlZWYxZDAx
Y2M5MmJmMTI2ZThmMzI3YTZiOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKQEAgLTM0LDggKzM0LDcgQEAgY2xhc3MgR3Jh
cGhpY3NMYXllcjsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwogfQogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogCiAjaWYgVVNFKE9QRU5HTCkKIEBpbnRlcmZhY2UgV2ViR0xMYXllciA6IENBTGF5ZXIKQEAg
LTY3LDQgKzY2LDQgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiAKIEBlbmQKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxl
eFRleHRDb250cm9sbGVyQ29yZVRleHQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0KaW5kZXggZTg5MDFiYzEz
YWRhNDA1MjMyZDBkM2ZmNDQ1MTk2M2Q3ZDc1NjViMi4uNmNjZTMxMjkwYzQ0NTc4MjFmYjY3OWFi
MDM0ZTYxZWQxNzYyN2I5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4
dC5tbQpAQCAtMTU4LDEwICsxNTgsOSBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Y29s
bGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNwLAogCiAgICAg
ICAgIFByb3ZpZGVySW5mbyBpbmZvID0geyBjcCwgbGVuZ3RoLCBzdHJpbmdBdHRyaWJ1dGVzLmdl
dCgpIH07CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIFNES3MgY29tcGxhaW4gdGhhdCB0aGUgc2Vj
b25kIHBhcmFtZXRlciBiZWxvdyBjYW5ub3QgYmUgbnVsbC4KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub25udWxsIgor
ICAgICAgICBBTExPV19OVUxMX0FSR1VNRU5UX0JFR0lOCiAgICAgICAgIFJldGFpblB0cjxDVFR5
cGVzZXR0ZXJSZWY+IHR5cGVzZXR0ZXIgPSBhZG9wdENGKENUVHlwZXNldHRlckNyZWF0ZVdpdGhV
bmlDaGFyUHJvdmlkZXJBbmRPcHRpb25zKCZwcm92aWRlU3RyaW5nQW5kQXR0cmlidXRlcywgMCwg
JmluZm8sIG1fcnVuLmx0cigpID8gbHRyVHlwZXNldHRlck9wdGlvbnMgOiBydGxUeXBlc2V0dGVy
T3B0aW9ucykpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19O
VUxMX0FSR1VNRU5UX0VORAogCiAgICAgICAgIGxpbmUgPSBhZG9wdENGKENUVHlwZXNldHRlckNy
ZWF0ZUxpbmUodHlwZXNldHRlci5nZXQoKSwgQ0ZSYW5nZU1ha2UoMCwgMCkpKTsKICAgICB9IGVs
c2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0lj
b25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5t
bQppbmRleCA2MTQzYjUxZDQzNjQ1ZDVhZDQ4YzM5NWFmN2M0ZWEyNjQzM2Q3YzRhLi42NWJiMTM5
MDI0NDczNWVjMGIzZjZhZTVmZDY4ODE0OTEyNjlkMWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbQpAQCAtMzYsMTAgKzM2LDkgQEAgSWNv
bjo6SWNvbihOU0ltYWdlICppbWFnZSkKICAgICA6IG1fbnNJbWFnZShpbWFnZSkKIHsKICAgICAv
LyBOZWVkIHRoaXMgYmVjYXVzZSBXZWJDb3JlIHVzZXMgQXBwS2l0J3MgZmxpcHBlZCBjb29yZGlu
YXRlIHN5c3RlbSBleGNsdXNpdmVseS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtpbWFnZSBz
ZXRGbGlwcGVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIEljb246On5JY29uKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9QREZEb2N1bWVudEltYWdl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50
SW1hZ2VNYWMubW0KaW5kZXggNmRhOTIxYjk4YWYyZjk0OGNiYWMyNjM1OTBhMzRjZGJjODhkYjVi
Mi4uMjcyNmJkY2UwY2MxZDBjMDMyZGQ1Mzc0ZjhiZjFiNzg1OGFhZTA0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50SW1hZ2VNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1BERkRvY3VtZW50
SW1hZ2VNYWMubW0KQEAgLTczLDEwICs3Myw5IEBAIHZvaWQgUERGRG9jdW1lbnRJbWFnZTo6ZHJh
d1BERlBhZ2UoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgIGJvb2wgYWxsb3dzU3VicGl4
ZWxRdWFudGl6YXRpb24gPSBDR0NvbnRleHRHZXRBbGxvd3NGb250U3VicGl4ZWxRdWFudGl6YXRp
b24oY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSk7CiAgICAgYm9vbCBhbGxvd3NTdWJwaXhlbFBv
c2l0aW9uaW5nID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUG9zaXRpb25pbmcoY29u
dGV4dC5wbGF0Zm9ybUNvbnRleHQoKSk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtbbV9k
b2N1bWVudCBwYWdlQXRJbmRleDowXSBkcmF3V2l0aEJveDprUERGRGlzcGxheUJveENyb3BCb3hd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogCiAgICAgQ0dDb250ZXh0U2V0QWxsb3dzRm9udFNtb290aGluZyhjb250
ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBhbGxvd3NTbW9vdGhpbmcpOwogICAgIENHQ29udGV4dFNl
dEFsbG93c0ZvbnRTdWJwaXhlbFF1YW50aXphdGlvbihjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgp
LCBhbGxvd3NTdWJwaXhlbFF1YW50aXphdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViS2l0TlNJbWFnZUV4dHJhcy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJLaXROU0ltYWdlRXh0cmFzLm1tCmluZGV4
IDQ2NjRmNjZmNzM4NTczZGZhYjkwNTRlOTQzYTE0ZTE5MGJlYzJmODcuLjdmM2QxNjU3ODZiNmMz
MjE4MDQ5MjE2NGI1YTZiN2U1ZmU3MWFiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9XZWJLaXROU0ltYWdlRXh0cmFzLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJLaXROU0ltYWdlRXh0cmFzLm1tCkBAIC0z
NywxMCArMzcsOSBAQAogICAgIFt0cmFuc2Zvcm0gc2NhbGVCeTpkZXZpY2VTY2FsZUZhY3Rvcl07
CiAKICAgICBOU1JlY3QgYm91bmRzID0geyBOU1plcm9Qb2ludCwgc2VsZi5zaXplIH07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICBCT09MIGZsaXBwZWRPcmllbnRhdGlvbiA9IHNlbGYuaXNGbGlw
cGVkOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgIFtzZWxmIGxvY2tGb2N1c1dpdGhSZWN0OmJvdW5kcyBjb250
ZXh0Om5pbCBoaW50czpAeyBOU0ltYWdlSGludENUTSA6IHRyYW5zZm9ybSB9IGZsaXBwZWQ6Zmxp
cHBlZE9yaWVudGF0aW9uXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL0RyYWdJbWFnZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFn
SW1hZ2VJT1MubW0KaW5kZXggNWZiMjE1YTI5NzBkZDk2MmFhMGJkY2E5ODNhOTEwNGVkNGQ0M2Ux
MC4uZDA0NThkNmE5N2U3OTY2OWNjN2QyNTllZWQxZDRiMjJlMDE5YTJlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tCkBAIC01Miw4ICs1Miw3IEBACiAj
aW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5o
PgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XbnVsbGFiaWxpdHktY29tcGxldGVuZXNzIgorSUdOT1JFX0NMQU5HX1dB
Uk5JTkdfQkVHSU4oIi1XbnVsbGFiaWxpdHktY29tcGxldGVuZXNzIikKIAogU09GVF9MSU5LX0ZS
QU1FV09SSyhVSUtpdCkKIFNPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlGb250KQpAQCAtNjMsNyAr
NjIsNyBAQCBTT0ZUX0xJTksoVUlLaXQsIFVJR3JhcGhpY3NHZXRDdXJyZW50Q29udGV4dCwgQ0dD
b250ZXh0UmVmLCAodm9pZCksICgpKQogU09GVF9MSU5LKFVJS2l0LCBVSUdyYXBoaWNzR2V0SW1h
Z2VGcm9tQ3VycmVudEltYWdlQ29udGV4dCwgVUlJbWFnZSAqLCAodm9pZCksICgpKQogU09GVF9M
SU5LKFVJS2l0LCBVSUdyYXBoaWNzRW5kSW1hZ2VDb250ZXh0LCB2b2lkLCAodm9pZCksICgpKQog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfQ0xBTkdfV0FSTklOR19FTkQK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Ry
YWdJbWFnZU1hYy5tbQppbmRleCA1NjEwMmZhMjkwN2FmODRmZTEzMzAyMWYwOGU0ZWY0M2IyN2Rj
OTkyLi4yMDFjYjMzOGJiZDdkYzc1M2IzMzVhMzAwNjJjMmI5MTI2YjExOTQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTcxLDEwICs3MSw5IEBA
IFJldGFpblB0cjxOU0ltYWdlPiBzY2FsZURyYWdJbWFnZShSZXRhaW5QdHI8TlNJbWFnZT4gaW1h
Z2UsIEZsb2F0U2l6ZSBzY2FsZSkKICAgICBOU1NpemUgbmV3U2l6ZSA9IE5TTWFrZVNpemUoKG9y
aWdpbmFsU2l6ZS53aWR0aCAqIHNjYWxlLndpZHRoKCkpLCAob3JpZ2luYWxTaXplLmhlaWdodCAq
IHNjYWxlLmhlaWdodCgpKSk7CiAgICAgbmV3U2l6ZS53aWR0aCA9IHJvdW5kZihuZXdTaXplLndp
ZHRoKTsKICAgICBuZXdTaXplLmhlaWdodCA9IHJvdW5kZihuZXdTaXplLmhlaWdodCk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICBbaW1hZ2Ugc2V0U2NhbGVzV2hlblJlc2l6ZWQ6WUVTXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICAgICBbaW1hZ2Ugc2V0U2l6ZTpuZXdTaXplXTsKICAgICByZXR1cm4gaW1hZ2U7
CiB9CkBAIC0zMTIsMTAgKzMxMSw5IEBAIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JM
aW5rKEVsZW1lbnQmIGVsZW1lbnQsIFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpCiAgICAgUmV0
YWluUHRyPE5TSW1hZ2U+IGRyYWdJbWFnZSA9IGFkb3B0TlMoW1tOU0ltYWdlIGFsbG9jXSBpbml0
V2l0aFNpemU6aW1hZ2VTaXplXSk7CiAgICAgW2RyYWdJbWFnZSBfd2ViX2xvY2tGb2N1c1dpdGhE
ZXZpY2VTY2FsZUZhY3RvcjpkZXZpY2VTY2FsZUZhY3Rvcl07CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgIEdyYXBoaWNzQ29udGV4dCBjb250ZXh0KChDR0NvbnRleHRSZWYpW05TR3JhcGhpY3ND
b250ZXh0IGN1cnJlbnRDb250ZXh0XS5ncmFwaGljc1BvcnQpOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTMwMAogICAgIGNvbnRleHQudHJh
bnNsYXRlKGxpbmtJbWFnZVNoYWRvd1JhZGl1cywgbGlua0ltYWdlU2hhZG93UmFkaXVzIC0gbGlu
a0ltYWdlU2hhZG93T2Zmc2V0WSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9MZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oCmluZGV4IDA3YWE5NWZmMDhhMDM3ODI2MGE4
MmEwZjU2NWZhODhiOGJiODU2NTQuLmQzMjQyOTAzYjc4OTQ4NjMzNDFiMzFmMGMzOTRkZDkyZjYw
MzU0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9MZWdhY3lOU1Bh
c3RlYm9hcmRUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9MZWdhY3lO
U1Bhc3RlYm9hcmRUeXBlcy5oCkBAIC0yNyw4ICsyNyw3IEBACiAKICNpZiBQTEFURk9STShNQUMp
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODksNiArODgs
NiBAQCBpbmxpbmUgTlNTdHJpbmcgKmxlZ2FjeUZpbGVzUHJvbWlzZVBhc3RlYm9hcmRUeXBlKCkK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbEN1cnJl
bnRHcmFwaGljc0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxD
dXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tCmluZGV4IGM5OGZjMjg1OWZmYzc5ZTE5NTQ4ZjE4Njdl
MzMwNjBiMTY4M2IwNzMuLjQxZTQyNWJjZjkyNmVhNmU2MjljMDEwZDM3N2IzNTAwNTYwMzFmODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFw
aGljc0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsQ3Vy
cmVudEdyYXBoaWNzQ29udGV4dC5tbQpAQCAtMzIsOCArMzIsNyBAQCBMb2NhbEN1cnJlbnRHcmFw
aGljc0NvbnRleHQ6OkxvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dChHcmFwaGljc0NvbnRleHQm
IGdyYXBoaQogewogICAgIGdyYXBoaWNzQ29udGV4dC5zYXZlKCk7CiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSB0aGlzLT5jZ0NvbnRleHQoKTsKICAg
ICBpZiAoY2dDb250ZXh0ID09IFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdy
YXBoaWNzUG9ydF0pIHsKICAgICAgICAgbV9zYXZlZE5TR3JhcGhpY3NDb250ZXh0ID0gMDsKQEAg
LTQyLDcgKzQxLDcgQEAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0OjpMb2NhbEN1cnJlbnRH
cmFwaGljc0NvbnRleHQoR3JhcGhpY3NDb250ZXh0JiBncmFwaGkKIAogICAgIG1fc2F2ZWROU0dy
YXBoaWNzQ29udGV4dCA9IFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIHJldGFp
bl07CiAgICAgTlNHcmFwaGljc0NvbnRleHQqIG5ld0NvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRl
eHQgZ3JhcGhpY3NDb250ZXh0V2l0aEdyYXBoaWNzUG9ydDpjZ0NvbnRleHQgZmxpcHBlZDpZRVNd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDpu
ZXdDb250ZXh0XTsKICAgICBtX2RpZFNldEdyYXBoaWNzQ29udGV4dCA9IHRydWU7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IGZkNmU5Mjk4
Nzc0ZmFmNGZlODczNWJmMjc1NjVhZGM5NTMyYmY2MzYuLjRmZDA4ZDE0MzgzMDM5NmQzM2I0ODI3
Nzk5YTY4MzUxYjQ3OTEzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0
ZWJvYXJkTWFjLm1tCkBAIC05OSwxOSArOTksMTcgQEAgUGFzdGVib2FyZDo6UGFzdGVib2FyZChj
b25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcHJvbWkK
IAogc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlB
bmRQYXN0ZSgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxQYXN0ZWJvYXJkPihOU0dlbmVyYWxQYm9hcmQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAjaWYg
RU5BQkxFKERSQUdfU1VQUE9SVCkKIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJv
YXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihOU0RyYWdQYm9hcmQpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQpAQCAtNjE0LDE4ICs2MTIs
MTYgQEAgc3RhdGljIHZvaWQgc2V0RHJhZ0ltYWdlSW1wbChOU0ltYWdlICppbWFnZSwgTlNQb2lu
dCBvZmZzZXQpCiAgICAgUmV0YWluUHRyPE5TQml0bWFwSW1hZ2VSZXA+IGJpdG1hcEltYWdlOwog
ICAgIGlmICghaW1hZ2VSZXAgfHwgIVtpbWFnZVJlcCBpc0tpbmRPZkNsYXNzOltOU0JpdG1hcElt
YWdlUmVwIGNsYXNzXV0gfHwgIU5TRXF1YWxTaXplcyhpbWFnZVJlcC5zaXplLCBpbWFnZVNpemUp
KSB7CiAgICAgICAgIFtpbWFnZSBsb2NrRm9jdXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgICAgICBiaXRtYXBJbWFnZSA9IGFkb3B0TlMoW1tOU0JpdG1hcEltYWdlUmVwIGFsbG9jXSBp
bml0V2l0aEZvY3VzZWRWaWV3UmVjdDoqKE5TUmVjdCopJmltYWdlUmVjdF0pOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICAgICAgW2ltYWdlIHVubG9ja0ZvY3VzXTsKICAgICAgICAgCiAgICAgICAgIC8v
IHdlIG1heSBoYXZlIHRvIGZsaXAgdGhlIGJpdHMgd2UganVzdCByZWFkIGlmIHRoZSBpbWFnZSB3
YXMgZmxpcHBlZCBzaW5jZSBpdCBtZWFucyB0aGUgY2FjaGUgd2FzIGFsc28KICAgICAgICAgLy8g
YW5kIENvcmVEcmFnU2V0SW1hZ2UgY2FuJ3QgdGFrZSBhIHRyYW5zZm9ybSBmb3IgcmVuZGVyaW5n
LgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBmbGlwSW1hZ2UgPSBpbWFnZS5pc0Zs
aXBwZWQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgIH0gZWxzZSB7CiAgICAgICAgIGZsaXBJbWFnZSA9
IGZhbHNlOwogICAgICAgICBiaXRtYXBJbWFnZSA9IChOU0JpdG1hcEltYWdlUmVwICopaW1hZ2VS
ZXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW0KaW5kZXggY2U2ZTAwYmE3MDJiNzc0YTQwNDMyOWQ3ZDQ1NWRlYzExZjYw
Njg1MS4uODIyMzVlNTY2ZGJjYmNhN2FlMmFiNmFkODE0ZjcxYWY5OWJmY2VlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1h
Yy5tbQpAQCAtNDYsMTAgKzQ2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBOU1BvaW50IGds
b2JhbFBvaW50KGNvbnN0IE5TUG9pbnQmIHdpbmRvd1BvaW50LCBOU1dpbmRvdyAqd2luZG93KQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgcmV0dXJuIGZsaXBTY3JlZW5Qb2ludChbd2luZG93
IGNvbnZlcnRCYXNlVG9TY3JlZW46d2luZG93UG9pbnRdLCBzY3JlZW4od2luZG93KSk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiB9CiAKIHN0YXRpYyBOU1BvaW50IGdsb2JhbFBvaW50Rm9yRXZlbnQoTlNFdmVudCAq
ZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU1NMS2V5R2Vu
ZXJhdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NTTEtleUdlbmVyYXRv
ck1hYy5tbQppbmRleCA0NzAwYjAxOGM1MzBjMTEyZmI4ZGQxM2QyODczYzEwNDRlN2RjNzE4Li5m
YzQwYWExOWIwNGMzYWUzNDcxODAyNzYzZjdkZjM4OWE3MjI4YzlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU1NMS2V5R2VuZXJhdG9yTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TU0xLZXlHZW5lcmF0b3JNYWMubW0KQEAgLTQ0LDggKzQ0
LDcgQEAgV1RGX0RFQ0xBUkVfQ0ZfVFlQRV9UUkFJVChTZWNBQ0wpOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIHN0cnVjdCBQdWJsaWNLZXlBbmRDaGFsbGVuZ2Ug
ewogICAgIENTU01fWDUwOV9TVUJKRUNUX1BVQkxJQ19LRVlfSU5GTyBzdWJqZWN0UHVibGljS2V5
SW5mbzsKQEAgLTIyMyw3ICsyMjIsNyBAQCBzdGF0aWMgU3RyaW5nIHNpZ25lZFB1YmxpY0tleUFu
ZENoYWxsZW5nZVN0cmluZyh1bnNpZ25lZCBrZXlTaXplLCBjb25zdCBDU3RyaW5nJgogICAgIHJl
dHVybiBiYXNlNjRFbmNvZGUoZW5jb2RlZFNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZS5EYXRh
LCBlbmNvZGVkU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlLkxlbmd0aCk7CiB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogCiB2b2lkIGdldFN1cHBvcnRlZEtleVNpemVzKFZlY3RvcjxTdHJpbmc+JiBzdXBwb3J0ZWRL
ZXlTaXplcykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxWaWV3TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMu
bW0KaW5kZXggMjZiNmNiNGYyMWY4YjNjODk5MzZkMWQ2ZTYzODdjMTZiODQwNGQzYi4uMDllZDIw
ZmZlZTM1NDE0OGRiNTU0M2JhMGYzNmNlM2QzOTY0Zjk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMubW0KQEAgLTIzMCwxMCArMjMwLDkgQEAgSW50UmVj
dCBTY3JvbGxWaWV3OjpwbGF0Zm9ybUNvbnRlbnRzVG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcmVj
dCkgY29uc3QKICAgICBpZiAoTlNWaWV3KiBkb2N1bWVudFZpZXcgPSB0aGlzLT5kb2N1bWVudFZp
ZXcoKSkgewogICAgICAgICBOU1JlY3QgdGVtcFJlY3QgPSByZWN0OwogICAgICAgICB0ZW1wUmVj
dCA9IFtkb2N1bWVudFZpZXcgY29udmVydFJlY3Q6dGVtcFJlY3QgdG9WaWV3Om5pbF07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIHRlbXBSZWN0Lm9yaWdpbiA9IFtbZG9jdW1lbnRW
aWV3IHdpbmRvd10gY29udmVydEJhc2VUb1NjcmVlbjp0ZW1wUmVjdC5vcmlnaW5dOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICAgICAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QodGVtcFJlY3QpOwogICAg
IH0KICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpAQCAtMjQ0LDEwICsyNDMsOSBAQCBJ
bnRQb2ludCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNjcmVlblRvQ29udGVudHMoY29uc3QgSW50UG9p
bnQmIHBvaW50KSBjb25zdAogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAg
ICBpZiAoTlNWaWV3KiBkb2N1bWVudFZpZXcgPSB0aGlzLT5kb2N1bWVudFZpZXcoKSkgewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBOU1BvaW50IHdpbmRvd0Nvb3JkID0gW1tkb2N1
bWVudFZpZXcgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOiBwb2ludF07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogICAgICAgICByZXR1cm4gSW50UG9pbnQoW2RvY3VtZW50VmlldyBjb252ZXJ0UG9pbnQ6
d2luZG93Q29vcmQgZnJvbVZpZXc6bmlsXSk7CiAgICAgfQogICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXggOTU3
ZjdjNTA3Mjg4NDFkNGQwNTAxYmJjYjIxMTZlYzZkMTY2ZGE1MC4uMzQ3MzQyNjhlZWMzZWM0MDZi
N2Y1YmU0MjliZjM0MDE1ZDQzZmZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVt
ZU1hYy5tbQpAQCAtMzU4LDEwICszNTgsOSBAQCBzdGF0aWMgTlNCdXR0b25DZWxsICpzaGFyZWRD
aGVja2JveENlbGwoY29uc3QgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBjb25zdCBJbnRTaQogCiBz
dGF0aWMgYm9vbCBkcmF3Q2VsbEZvY3VzUmluZ1dpdGhGcmFtZUF0VGltZShOU0NlbGwgKmNlbGws
IE5TUmVjdCBjZWxsRnJhbWUsIE5TVmlldyAqY29udHJvbFZpZXcsIE5TVGltZUludGVydmFsIHRp
bWVPZmZzZXQpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDR0NvbnRleHRSZWYgY2dDb250
ZXh0ID0gKENHQ29udGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBn
cmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250
ZXh0KTsKIAogICAgIENHRm9jdXNSaW5nU3R5bGUgZm9jdXNSaW5nU3R5bGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFn
ZXIubW0KaW5kZXggYjZlYWRhMzE4MDY0MDI1MDA2MDJiZmFiMGQzMjk1N2RhNmYyYjQ1MS4uMjhh
Yzg0MTA1NWNmZTQxNzRhNmIzOTBhNjk3ZmViMzU4N2MzOTMzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5t
bQpAQCAtMzQsOCArMzQsNyBAQAogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV251bGxhYmlsaXR5LWNvbXBsZXRl
bmVzcyIKK0lHTk9SRV9DTEFOR19XQVJOSU5HX0JFR0lOKCItV251bGxhYmlsaXR5LWNvbXBsZXRl
bmVzcyIpCiBTT0ZUX0xJTktfRlJBTUVXT1JLKEFWS2l0KQogI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZLaXQs
IEFWVG91Y2hCYXJNZWRpYVNlbGVjdGlvbk9wdGlvbikKQEAgLTM0Niw3ICszNDUsNyBAQCBzdGF0
aWMgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBtZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29uc3Qg
VmVjdG9yPE1lZGlhU2VsZWN0aQogfQogI2VuZGlmCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKK0lHTk9SRV9DTEFOR19XQVJOSU5HX0VORAogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2lkZ2V0TWFjLm1tCmluZGV4IDk5NmMxOWQ1NTBmOTEzMWZhMDIzNjBiNjU3
Zjg4YmU5ZjllNjY2YmIuLmEzNzNkYWJjNzBiZDAzNzE0OTk3NTVmMTBiMTY0MWQ0MTAwNGVjMzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbQpAQCAtMjA4LDEwICsy
MDgsOSBAQCB2b2lkIFdpZGdldDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBwLCBjb25zdCBJbnRS
ZWN0JiByLCBTZWN1cml0eU9yaWdpblBhaW50UG9saQogICAgIFJlZjxXaWRnZXQ+IHByb3RlY3Rl
ZFRoaXMoKnRoaXMpOwogCiAgICAgTlNHcmFwaGljc0NvbnRleHQgKmN1cnJlbnRDb250ZXh0ID0g
W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIGlmIChjdXJyZW50Q29udGV4dCA9PSBbW3ZpZXcgd2luZG93XSBncmFwaGljc0NvbnRleHRd
IHx8ICFbY3VycmVudENvbnRleHQgaXNEcmF3aW5nVG9TY3JlZW5dKSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogICAgICAgICAvLyBUaGlzIGlzIHRoZSBjb21tb24gY2FzZSBvZiBkcmF3aW5nIGludG8gYSB3
aW5kb3cgb3IgYW4gaW5jbHVzaXZlIGxheWVyLCBvciBwcmludGluZy4KICAgICAgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgICAgICBbdmlldyBkaXNwbGF5UmVjdElnbm9yaW5n
T3BhY2l0eTpbdmlldyBjb252ZXJ0UmVjdDpyIGZyb21WaWV3Olt2aWV3IHN1cGVydmlld11dXTsK
QEAgLTIzOCwxMCArMjM3LDkgQEAgdm9pZCBXaWRnZXQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYg
cCwgY29uc3QgSW50UmVjdCYgciwgU2VjdXJpdHlPcmlnaW5QYWludFBvbGkKICAgICB9CiAKICAg
ICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gcC5wbGF0Zm9ybUNvbnRleHQoKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIEFTU0VSVChjZ0NvbnRleHQgPT0gW2N1cnJlbnRDb250ZXh0IGdyYXBo
aWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0
KTsKIAogICAgIE5TUmVjdCB2aWV3RnJhbWUgPSBbdmlldyBmcmFtZV07CkBAIC0yNTUsMTAgKzI1
Myw5IEBAIHZvaWQgV2lkZ2V0OjpwYWludChHcmFwaGljc0NvbnRleHQmIHAsIGNvbnN0IEludFJl
Y3QmIHIsIFNlY3VyaXR5T3JpZ2luUGFpbnRQb2xpCiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CiAgICAgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBOU0dyYXBo
aWNzQ29udGV4dCAqbnNDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4
dFdpdGhHcmFwaGljc1BvcnQ6Y2dDb250ZXh0IGZsaXBwZWQ6Tk9dOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICAgICAgW3ZpZXcgZGlzcGxheVJlY3RJZ25vcmluZ09wYWNpdHk6W3ZpZXcgY29udmVydFJl
Y3Q6ciBmcm9tVmlldzpbdmlldyBzdXBlcnZpZXddXSBpbkNvbnRleHQ6bnNDb250ZXh0XTsKICAg
ICB9CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1
ZGlvU291cmNlLmgKaW5kZXggYjUxMzE4YzgzNGUyNTRhYTlmNzIzNjVlZmU2N2YzNTQ2NjhjZTlh
ZS4uNDU2NGMyMGM4MDNiYjViNDY5YWVlNzNmODA5NDE2NzdmNmIyZTY1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlv
U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlLmgKQEAgLTM1LDEyICszNSwxMSBAQAogI2luY2x1ZGUgIkxp
YldlYlJUQ01hY3Jvcy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKIAotI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XdW51c2VkLXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4KIAogI2lu
Y2x1ZGUgPHdlYnJ0Yy9hcGkvbWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4KIAotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwb3AKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfRU5ECiAKICNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKaW5kZXgg
NzI0N2JiODMzODU3ZTQ4ZTk5ZWU3ODZlNzVlNGE5M2JiMDA1ZDVlZC4uYTFjYjE1NzAwOTk3OTUy
MTQ5NDE0NDIxNjIxZThiMzUxOTUzZjBmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlLmgKQEAgLTM1LDEyICszNSwxMSBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgog
I2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRl
ciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkv
bWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKK0FM
TE9XX1VOVVNFRF9QQVJBTUVURVJfRU5ECiAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKaW5kZXggZWE0NTdmN2Q1MzM1MGFmZDE4
NDRlZjNjZjQzMjExZjgzMzI5NTZmNC4uZGM2MTk1YzczZTkzMzcwYWUyOTYyNWI5NzAxMzhjMjA3
NjM0OWI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKQEAgLTM1LDEyICsz
NSwxMSBAQAogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAi
VGltZXIuaCIKIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVU
RVJfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvbWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4K
IAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfRU5E
CiAKICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2UuaAppbmRleCA1NDhlYTNmMDFkODA3ZTg3Y2UxMWQzMGU2Y2JjZGI3
MDJmOTE1NWUxLi4wMDBlMDEzZDRlNzFhN2NhMmFmNDE3ZDFmYmRhOTAyZWE1NGRjMTIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaApAQCAtMzQsMTMgKzM0LDEyIEBACiAjaW5j
bHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDxUaW1lci5oPgogCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9CRUdJTgogCiAj
aW5jbHVkZSA8d2VicnRjL2FwaS9tZWRpYXN0cmVhbWludGVyZmFjZS5oPgogI2luY2x1ZGUgPHdl
YnJ0Yy9jb21tb25fdmlkZW8vaW5jbHVkZS9pNDIwX2J1ZmZlcl9wb29sLmg+CiAKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcG9wCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0VORAogCiAjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDQXVkaW9Nb2R1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVsZS5oCmluZGV4IDc5ZTk5ZDdjZTIw
NmY4OTI1OTZiZGQ0ZjNkMWNlZjdlNWViMzdkZTAuLjU5YmNjMGVhMDFhY2E4ZDdiNjk1ZmE0ODFm
YjI1YjJjMTQ2Yzg2YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVsZS5o
CkBAIC0yOSwxNCArMjksMTMgQEAKIAogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgogCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9CRUdJTgogCiAj
aW5jbHVkZSA8d2VicnRjL21vZHVsZXMvYXVkaW9fZGV2aWNlL2luY2x1ZGUvYXVkaW9fZGV2aWNl
Lmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL21lc3NhZ2VoYW5kbGVyLmg+CiAjaW5jbHVk
ZSA8d2VicnRjL3J0Y19iYXNlL3RocmVhZC5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBv
cAorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9FTkQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCAxYTE0NTNjODliN2MzMjM5
ZmZmNWVhMWQyNWIzZDAwNWUzOTUxYzM4Li5hMTE4YTE3ODEzYzc5ZmEzOWQwNTYxNGYyOWY3M2Rj
ODM3MzZjYTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTMx
LDggKzMxLDcgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSA8ZGxmY24uaD4KIAot
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4KIAog
I2luY2x1ZGUgPHdlYnJ0Yy9hcGkvYXVkaW9fY29kZWNzL2J1aWx0aW5fYXVkaW9fZGVjb2Rlcl9m
YWN0b3J5Lmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS9hdWRpb19jb2RlY3MvYnVpbHRpbl9hdWRp
b19lbmNvZGVyX2ZhY3RvcnkuaD4KQEAgLTQzLDcgKzQyLDcgQEAKICNpbmNsdWRlIDx3ZWJydGMv
cGMvcGVlcmNvbm5lY3Rpb25mYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL3Bo
eXNpY2Fsc29ja2V0c2VydmVyLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCitBTExP
V19VTlVTRURfUEFSQU1FVEVSX0VORAogCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5oCmluZGV4IDhmY2NmMjJhMDA1ZmQ3OTg2MGMyYzk1ODY2MzcwMzY4MTMyMzhkOTYuLjlhZjk0
MDY5MWM1MDVmZmIwY2UzYmIxYzc1OTZhYjMyMjhkYTUzZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5oCkBAIC0zNSwxNSArMzUsMTQgQEAKIAogI2lmIFVTRShMSUJXRUJSVEMp
CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBp
Z25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0JFR0lO
CiAKICNpbmNsdWRlIDx3ZWJydGMvYXBpL3BlZXJjb25uZWN0aW9uaW50ZXJmYWNlLmg+CiAjaW5j
bHVkZSA8d2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlcl9mYWN0b3J5Lmg+CiAj
aW5jbHVkZSA8d2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lmg+
CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL3Njb3BlZF9yZWZfcHRyLmg+CiAKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcG9wCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0VORAogCiBuYW1lc3Bh
Y2UgcnRjIHsKIGNsYXNzIE5ldHdvcmtNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNv
Y29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCmluZGV4IDRiNDI1ZjliYTYyYjBmM2YwOTNhOTA2
ZmQ0YjJhZTQ5YzJhNDNjM2UuLjM4MjJlYzBkNTM5M2NmZTJmMzg0YjJjN2JhOWI0NzEwMjRhZWI5
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2Eu
bW0KQEAgLTM0LDEyICszNCwxMSBAQAogI2luY2x1ZGUgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgog
I2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2Vk
LXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJfQkVHSU4KIAogI2luY2x1ZGUgPHdl
YnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0VORAogCiAjaW5jbHVkZSA8d3RmL2Nm
L1R5cGVDYXN0c0NGLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlQ29jb2EuY3BwCmluZGV4IGVkMTRjMzRjMzFkNjZjMDVjZWQ1OTVjNjU2MDMwZTcxM2Y2
NTU3ODcuLmFjNDcwNjMzZGY5OTc1ODk1MzA2N2Y4Y2RjZDRkMTJjYTQ1MTk5NmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcApAQCAtMzAs
MTQgKzMwLDEzIEBACiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQt
cGFyYW1ldGVyIgorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUl9CRUdJTgogCiAjaW5jbHVkZSA8d2Vi
cnRjL2FwaS92aWRlby9pNDIwX2J1ZmZlci5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9jb21tb25fdmlk
ZW8vbGlieXV2L2luY2x1ZGUvd2VicnRjX2xpYnl1di5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9zZGsv
V2ViS2l0L1dlYktpdFV0aWxpdGllcy5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CitBTExPV19VTlVTRURfUEFSQU1FVEVSX0VORAogCiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmg+CiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Q0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25DRk5ldC5jcHAKaW5kZXggODExOWZkNWU1NTZlNmMxZDdiZmMxZmJhYjRiNWI4
ODkxMGMzOWU1Zi4uYzlkMjk2NDQyMWViZGQ4YjQ2NzQwNDZkY2M0YzUwM2M3YWZiNDk5NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25DRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKQEAgLTY0LDEyICs2NCwxMSBAQCBzdGF0
aWMgaW5saW5lIENGVHlwZUlEIHR5cGVJRCgpIHsgcmV0dXJuIENsYXNzTmFtZSMjR2V0VHlwZUlE
KCk7IH0gXAogfTsKIAogI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICNlbmRp
ZgogREVDTEFSRV9DRl9UWVBFX1RSQUlUKENGSFRUUENvb2tpZSk7CiAjaWYgQ09NUElMRVIoQ0xB
TkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICNlbmRpZgogCiAjdW5kZWYgREVDTEFSRV9DRl9UWVBFX1RSQUlUCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxl
Q0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhh
bmRsZUNGTmV0LmNwcAppbmRleCAwOTVhMGM0YjdkODRhYzljOWFiYWM0NGExYTVmNDZlOWViYzAw
MDdhLi41Y2JkYTViZGQ0NjcyOWRlYmI2YWJmMDQ0ZmQxNTg2NWJjYWYxNzdkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRk5ldC5jcHAKQEAgLTE3MSwxMiArMTcxLDExIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29s
CiAjZWxzZQogICAgIGlmIChhbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlSG9zdHMoKS5jb250YWlu
cyhmaXJzdFJlcXVlc3QoKS51cmwoKS5ob3N0KCkudG9TdHJpbmcoKSkpIHsKICAgICAgICAgc3Ns
UHJvcHMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25h
cnlWYWx1ZUNhbGxCYWNrcykpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBDRkRp
Y3Rpb25hcnlBZGRWYWx1ZShzc2xQcm9wcy5nZXQoKSwga0NGU3RyZWFtU1NMQWxsb3dzQW55Um9v
dCwga0NGQm9vbGVhblRydWUpOwogICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShzc2xQcm9w
cy5nZXQoKSwga0NGU3RyZWFtU1NMQWxsb3dzRXhwaXJlZFJvb3RzLCBrQ0ZCb29sZWFuVHJ1ZSk7
CiAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKHNzbFByb3BzLmdldCgpLCBrQ0ZTdHJlYW1T
U0xBbGxvd3NFeHBpcmVkQ2VydGlmaWNhdGVzLCBrQ0ZCb29sZWFuVHJ1ZSk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogI2lmICFQTEFURk9STShXSU4pIC8vIDxyZGFyOi8vcHJvYmxlbS8zMzk5MzQ2Mj4gLSBE
aXNhYmxpbmcgdmFsaWRhdGlvbiBvZiBjZXJ0aWZpY2F0ZSBjaGFpbiBicmVha3MgU1NMIG9uIFdp
bmRvd3MuCiAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKHNzbFByb3BzLmdldCgpLCBrQ0ZT
dHJlYW1TU0xWYWxpZGF0ZXNDZXJ0aWZpY2F0ZUNoYWluLCBrQ0ZCb29sZWFuRmFsc2UpOwogI2Vu
ZGlmCkBAIC0yMzQsMTAgKzIzMyw5IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJM
Q29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgaWYg
KHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKQogICAgICAgICBjbGllbnQuc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UgPSAwOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBkLT5tX2Nvbm5l
Y3Rpb24gPSBhZG9wdENGKENGVVJMQ29ubmVjdGlvbkNyZWF0ZVdpdGhQcm9wZXJ0aWVzKDAsIHJl
cXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZVUkxDb25uZWN0aW9uQ2xpZW50Kj4oJmNs
aWVudCksIHByb3BlcnRpZXNEaWN0aW9uYXJ5LmdldCgpKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIGJv
b2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0
LmNwcAppbmRleCA5ZWQ1YWEwYzlkOWJmMTNlZWEzMWEyOTU2OGEyNDk3NTc0ZTU4NmM0Li45NjM0
NzlkNjcyMjBiY2E5OTgwN2MyZWY0YjUwNjM3ZGNmZWYzYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1I
YW5kbGVJbXBsQ0ZOZXQuY3BwCkBAIC02NjYsMTAgKzY2Niw3IEBAIHZvaWQgU29ja2V0U3RyZWFt
SGFuZGxlSW1wbDo6cmVwb3J0RXJyb3JUb0NsaWVudChDRkVycm9yUmVmIGVycm9yKQogCiAjaWYg
UExBVEZPUk0oTUFDKQogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCi0jZW5kaWYKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogCiAgICAgaWYgKENGRXF1YWwoQ0ZFcnJvckdldERvbWFpbihlcnJvciksIGtDRkVy
cm9yRG9tYWluT1NTdGF0dXMpKSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGRlc2NyaXB0aW9uT1NT
dGF0dXMgPSBHZXRNYWNPU1N0YXR1c0NvbW1lbnRTdHJpbmcoc3RhdGljX2Nhc3Q8T1NTdGF0dXM+
KGVycm9yQ29kZSkpOwpAQCAtNjc3LDkgKzY3NCw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxl
SW1wbDo6cmVwb3J0RXJyb3JUb0NsaWVudChDRkVycm9yUmVmIGVycm9yKQogICAgICAgICAgICAg
ZGVzY3JpcHRpb24gPSAiT1NTdGF0dXMgRXJyb3IgIiArIFN0cmluZzo6bnVtYmVyKGVycm9yQ29k
ZSkgKyAiOiAiICsgZGVzY3JpcHRpb25PU1N0YXR1czsKICAgICB9CiAKLSNpZiBDT01QSUxFUihD
TEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jcmVhdGUtaHR0cC1oZWFkZXItbmFtZS10YWJsZSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3JlYXRlLWh0dHAtaGVhZGVyLW5hbWUt
dGFibGUKaW5kZXggZWEyYjc0MzM2NDgzYjA1MDYzODcxM2ZkNTE3M2E2YjA5YjhkNjA3MC4uNmUx
Y2ExNDYwNWRiMDkzZDFmMWNiYjZmMzYzNWQ5NzhlMDExYWZlZCAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jcmVhdGUtaHR0cC1oZWFkZXItbmFtZS10YWJsZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NyZWF0ZS1odHRwLWhlYWRlci1u
YW1lLXRhYmxlCkBAIC05MCwxMSArOTAsNyBAQCBncGVyZl9maWxlLndyaXRlKCcnJwogCiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XaW1wbGljaXQtZmFsbHRocm91Z2giCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HX0JFR0lO
KCItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIikKIAogLy8gT2xkZXIgdmVyc2lvbnMgb2YgZ3BlcmYg
bGlrZSB0byB1c2UgdGhlIGByZWdpc3RlcmAga2V5d29yZC4KICNkZWZpbmUgcmVnaXN0ZXIKQEAg
LTE3OSw3ICsxNzUsNyBAQCBTdHJpbmdWaWV3IGh0dHBIZWFkZXJOYW1lU3RyaW5nKEhUVFBIZWFk
ZXJOYW1lIGhlYWRlck5hbWUpCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZiBkZWZpbmVk
KF9fY2xhbmdfXykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9XQVJOSU5H
X0VORAogI2VuZGlmCiAnJycpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dEVuY29kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4
dEVuY29kaW5nLmNwcAppbmRleCA0MDEzZjM3Y2Y3ZTFkN2Y3NzI4ZDhjMDA3ZmZhNjgxNzI2ZDVl
MDFkLi40MDVmOTMzOTRlMWU2ZTI5MTM2YTgwNDYwYjgyYzc2ZmQ3MGE1MGFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwCkBAIC02OSwxMCArNjks
NyBAQCBTdHJpbmcgVGV4dEVuY29kaW5nOjpkZWNvZGUoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90
IGxlbmd0aCwgYm9vbCBzdG9wT25FcnJvciwgYgogICAgIHJldHVybiBuZXdUZXh0Q29kZWMoKnRo
aXMpLT5kZWNvZGUoZGF0YSwgbGVuZ3RoLCB0cnVlLCBzdG9wT25FcnJvciwgc2F3RXJyb3IpOwog
fQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0jZW5kaWYKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAvLyBO
T1RFOiBJQ1UncyB1bm9ybV9xdWlja0NoZWNrIGFuZCB1bm9ybV9ub3JtYWxpemUgZnVuY3Rpb25z
IGFyZSBkZXByZWNhdGVkLgogCiBWZWN0b3I8dWludDhfdD4gVGV4dEVuY29kaW5nOjplbmNvZGUo
U3RyaW5nVmlldyB0ZXh0LCBVbmVuY29kYWJsZUhhbmRsaW5nIGhhbmRsaW5nKSBjb25zdApAQCAt
MTEyLDkgKzEwOSw3IEBAIFZlY3Rvcjx1aW50OF90PiBUZXh0RW5jb2Rpbmc6OmVuY29kZShTdHJp
bmdWaWV3IHRleHQsIFVuZW5jb2RhYmxlSGFuZGxpbmcgaGFuZGxpCiAgICAgcmV0dXJuIG5ld1Rl
eHRDb2RlYygqdGhpcyktPmVuY29kZShTdHJpbmdWaWV3IHsgc291cmNlLCBzb3VyY2VMZW5ndGgg
fSwgaGFuZGxpbmcpOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAKIGNvbnN0IGNoYXIqIFRleHRFbmNvZGluZzo6ZG9tTmFtZSgpIGNvbnN0CiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24u
aAppbmRleCA4NDAzNTMwZTk5ZDIwYjhkNDhiYTk0NzdmZjE3OWRlZjZkOGU4OTI4Li4wMTI0ZTll
Zjg0MDhhYjA1YWMzZTBjZjYxY2QwMTAzMTYwZjNlOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTI4LDEzICsy
OCwxMiBAQAogCiAjaW5jbHVkZSAiTGliV2ViUlRDTWFjcm9zLmgiCiAKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1w
YXJhbWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSX0JFR0lOCiAKICNpbmNsdWRlIDx3ZWJy
dGMvYXBpL21lZGlhc3RyZWFtaW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS9wZWVy
Y29ubmVjdGlvbmludGVyZmFjZS5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorQUxM
T1dfVU5VU0VEX1BBUkFNRVRFUl9FTkQKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIuY3BwCmluZGV4IDMxZGYxYzBkMTU4YTI3OGY0
YzA5NmNiMmJhOTExZjNmN2IwMWI5NDMuLmFiYzNhMjczNDM2ZDgwYmU2ZmVkNTE5ODhiYjVjOTFm
OTg0MzNlNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIuY3BwCkBAIC0yMTU0LDE1ICsy
MTU0LDEwIEBAIHl5ZXJyb3JsYWI6CiAgIC8qIFBhY2lmeSBjb21waWxlcnMgbGlrZSBHQ0Mgd2hl
biB0aGUgdXNlciBjb2RlIG5ldmVyIGludm9rZXMKICAgICAgWVlFUlJPUiBhbmQgdGhlIGxhYmVs
IHl5ZXJyb3JsYWIgdGhlcmVmb3JlIG5ldmVyIGFwcGVhcnMgaW4gdXNlcgogICAgICBjb2RlLiAg
Ki8KLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnJlYWNoYWJsZS1jb2RlIgotI2Vu
ZGlmCisgIElHTk9SRV9DTEFOR19XQVJOSU5HX0JFR0lOKCItV3VucmVhY2hhYmxlLWNvZGUiKQog
ICBpZiAoLypDT05TVENPTkQqLyAwKQogICAgICBnb3RvIHl5ZXJyb3JsYWI7Ci0jaWYgQ09NUElM
RVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgSUdOT1JF
X0NMQU5HX1dBUk5JTkdfRU5ECiAKICAgLyogRG8gbm90IHJlY2xhaW0gdGhlIHN5bWJvbHMgb2Yg
dGhlIHJ1bGUgd2hpY2ggYWN0aW9uIHRyaWdnZXJlZAogICAgICB0aGlzIFlZRVJST1IuICAqLwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0
YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EubW0KaW5kZXggYzJkNDVkNjZiZDI1OGViODMyYzI1NGZlYjgzNWFhZGU2
NzEzZTk0NS4uYzZmMTE3MjM5OWM3MTk3MWUzZmUwY2QzZWZhYzhjNzFhYjRkYTc1YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtE
YXRhVGFza0NvY29hLm1tCkBAIC0xMTgsMTIgKzExOCwxMSBAQCBOU0hUVFBDb29raWVTdG9yYWdl
ICpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6c3RhdGVsZXNzQ29va2llU3RvcmFnZSgpCiAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFJldGFpblB0cjxOU0hUVFBDb29raWVTdG9yYWdlPj4gc3RhdGVs
ZXNzQ29va2llU3RvcmFnZTsKICAgICBpZiAoIXN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UuZ2V0KCkp
IHsKICNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
IDwgMTAxMzAwKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbm51bGwiCisgICAgICAgIEFMTE9XX05VTExfQVJHVU1F
TlRfQkVHSU4KICNlbmRpZgogICAgICAgICBzdGF0ZWxlc3NDb29raWVTdG9yYWdlLmdldCgpID0g
YWRvcHROUyhbW05TSFRUUENvb2tpZVN0b3JhZ2UgYWxsb2NdIF9pbml0V2l0aElkZW50aWZpZXI6
bmlsIHByaXZhdGU6WUVTXSk7CiAjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA8IDEwMTMwMCkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgQUxMT1dfTlVMTF9BUkdVTUVOVF9FTkQKICNlbmRpZgogICAgICAgICBzdGF0ZWxl
c3NDb29raWVTdG9yYWdlLmdldCgpLmdldCgpLmNvb2tpZUFjY2VwdFBvbGljeSA9IE5TSFRUUENv
b2tpZUFjY2VwdFBvbGljeU5ldmVyOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQppbmRleCBmZDc2
NjRjZTYxMzBiZmM3OGM4NTYyOWZhZDk3Y2M0NzEzNjExNWMxLi5iYjM3OWE0NTMyZTg4ODU3NGJj
MzVhOGYwYmM5OWM2NmU4OTA5Y2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCkBAIC0yMjMsOCArMjIz
LDcgQEAgc3RhdGljIHZvaWQgc2F2ZUNvb2tpZXMoTlNIVFRQQ29va2llU3RvcmFnZSAqY29va2ll
U3RvcmFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm8KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxh
dGZvcm1TeW5jQWxsQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRlcikgewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxl
Z2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIAogI2lm
IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
NDAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMjAwMDApCiAgICAgUmVmUHRyPENhbGxiYWNrQWdncmVnYXRvcj4gY2FsbGJhY2tBZ2dy
ZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGVyKSk7CkBAIC0yMzYsNyArMjM1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1T
eW5jQWxsQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGkKICAgICBj
b21wbGV0aW9uSGFuZGVyKCk7CiAjZW5kaWYKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpwbGF0Zm9ybVByZXBhcmVUb1N1c3BlbmQoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbHVn
aW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9QbHVnaW5Q
cm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCmluZGV4IGMzMTIwYmI1OWEwYTU0YjY5ODcw
OTJmYWY1NjkyZDQyNDE1M2U2MTcuLjZlZTVkNDg3Y2Q5OGQxN2M3OGNjMmU4YTIwOTAyZTg2Mjky
NmNlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2lu
UHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdp
blByb2Nlc3NNYWMubW0KQEAgLTI2MCwxMyArMjYwLDEyIEBAIHN0YXRpYyB1bnNpZ25lZCBtb2Rh
bENvdW50OwogCiBzdGF0aWMgdm9pZCBiZWdpbk1vZGFsKCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgIC8vIE1ha2Ugc3VyZSB0byBtYWtlIG91cnNlbHZlcyB0aGUgZnJvbnQgcHJvY2Vzcwog
ICAgIFByb2Nlc3NTZXJpYWxOdW1iZXIgcHNuOwogICAgIEdldEN1cnJlbnRQcm9jZXNzKCZwc24p
OwogICAgIFNldEZyb250UHJvY2VzcygmcHNuKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIGlmICghbW9k
YWxDb3VudCsrKQogICAgICAgICBzZXRNb2RhbCh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NTaGltLm1tCmluZGV4IDQwMzZkM2I4
NzQ0MDM2ODA3MmIyMGI3ODAyNjE3ZDE5ZTlkMWIwYTQuLjQ0NmM2MjFiNjllNWM5MmNkYjEwMjgw
MTMyNWZlMGI3ZTUxOTA3NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vz
cy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0KKysrIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9j
ZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hpbS5tbQpAQCAtNDgsOCArNDgsNyBAQCBzdGF0aWMgUGx1
Z2luUHJvY2Vzc1NoaW1DYWxsYmFja3MgcGx1Z2luUHJvY2Vzc1NoaW1DYWxsYmFja3M7CiAKICNp
Zm5kZWYgX19MUDY0X18KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogc3RhdGljIHZvaWQgc2hpbURlYnVn
Z2VyKHZvaWQpCiB7CkBAIC0xMzMsNyArMTMyLDcgQEAgRFlMRF9JTlRFUlBPU0Uoc2hpbUhpZGVX
aW5kb3csIEhpZGVXaW5kb3cpOwogRFlMRF9JTlRFUlBPU0Uoc2hpbUxTT3BlbkNGVVJMUmVmLCBM
U09wZW5DRlVSTFJlZik7CiBEWUxEX0lOVEVSUE9TRShzaGltTWFjaFZNTWFwLCBtYWNoX3ZtX21h
cCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVsZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcAppbmRl
eCA2MGY0MWViZGZmNjFjODYzNzdjYWZmMTdjYWViNTZhOTQ0NWVjNzc5Li5kYWQ4YjA5MmYzOTNl
OGMxOTJiYTRhZmJlYzZlMzcxMGEwZTUzNDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmNw
cApAQCAtMjQyLDggKzI0Miw3IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OnRyeUxvYWQo
KQogI2lmIFBMVUdJTl9BUkNISVRFQ1RVUkUoTUFDKQogI2lmbmRlZiBOUF9OT19DQVJCT04KIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAKICAgICAvLyBQbHVnaW5zIChhdCBsZWFzdCBRVCkgcmVxdWly
ZSB0aGF0IHlvdSBjYWxsIFVzZVJlc0ZpbGUgb24gdGhlIHJlc291cmNlIGZpbGUgYmVmb3JlIGxv
YWRpbmcgaXQuCiAgICAgUmVzRmlsZVJlZk51bSBjdXJyZW50UmVzb3VyY2VGaWxlID0gQ3VyUmVz
RmlsZSgpOwpAQCAtMjU4LDcgKzI1Nyw3IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OnRy
eUxvYWQoKQogICAgIC8vIFJlc3RvcmUgdGhlIHJlc291cmNlIGZpbGUuCiAgICAgVXNlUmVzRmls
ZShjdXJyZW50UmVzb3VyY2VGaWxlKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2lvcy9DaGlsZFByb2Nlc3NJT1MubW0KaW5kZXggOWJkZDcyZjgzZjQz
MTNlNDYwYzVkY2UwYjM5ZWNkNWU1NTdiNzRjYS4uZThjMDkzODkyMjkwYzFhNTYyNDM0MTlhYjBj
NDk2OTMyYzU3ZWJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0NoaWxk
UHJvY2Vzc0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvQ2hpbGRQcm9jZXNz
SU9TLm1tCkBAIC04MCwxMCArODAsOSBAQCB2b2lkIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNh
bmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJgogICAgICAg
ICBpZiAoIXNhbmRib3hQcm9maWxlUGF0aC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIENTdHJp
bmcgcHJvZmlsZVBhdGggPSBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc2Fu
ZGJveFByb2ZpbGVQYXRoKTsKICAgICAgICAgICAgIGNoYXIqIGVycm9yQnVmOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAgIGlmIChzYW5kYm94X2luaXRfd2l0aF9wYXJh
bWV0ZXJzKHByb2ZpbGVQYXRoLmRhdGEoKSwgU0FOREJPWF9OQU1FRF9FWFRFUk5BTCwgc2FuZGJv
eFBhcmFtZXRlcnMubmFtZWRQYXJhbWV0ZXJBcnJheSgpLCAmZXJyb3JCdWYpKSB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIlczogQ291bGRu
J3QgaW5pdGlhbGl6ZSBzYW5kYm94IHByb2ZpbGUgWyVzXSwgZXJyb3IgJyVzJ1xuIiwgZ2V0cHJv
Z25hbWUoKSwgcHJvZmlsZVBhdGguZGF0YSgpLCBlcnJvckJ1Zik7CiAgICAgICAgICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gc2FuZGJveFBhcmFtZXRlcnMuY291bnQoKTsgaSAh
PSBjb3VudDsgKytpKQogICAgICAgICAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzPSVzXG4i
LCBzYW5kYm94UGFyYW1ldGVycy5uYW1lKGkpLCBzYW5kYm94UGFyYW1ldGVycy52YWx1ZShpKSk7
CkBAIC05NSwxMCArOTQsOSBAQCB2b2lkIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3go
Y29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJgogICAgIH0KICAgICBj
YXNlIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnM6OlVzZVNhbmRib3hQcm9maWxlOiB7
CiAgICAgICAgIGNoYXIqIGVycm9yQnVmOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAg
ICBpZiAoc2FuZGJveF9pbml0X3dpdGhfcGFyYW1ldGVycyhzYW5kYm94UGFyYW1ldGVycy5zYW5k
Ym94UHJvZmlsZSgpLnV0ZjgoKS5kYXRhKCksIDAsIHNhbmRib3hQYXJhbWV0ZXJzLm5hbWVkUGFy
YW1ldGVyQXJyYXkoKSwgJmVycm9yQnVmKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAg
ICAgICBXVEZMb2dBbHdheXMoIiVzOiBDb3VsZG4ndCBpbml0aWFsaXplIHNhbmRib3ggcHJvZmls
ZSwgZXJyb3IgJyVzJ1xuIiwgZ2V0cHJvZ25hbWUoKSwgZXJyb3JCdWYpOwogICAgICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gc2FuZGJveFBhcmFtZXRlcnMuY291bnQoKTsgaSAh
PSBjb3VudDsgKytpKQogICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXM9JXNcbiIsIHNh
bmRib3hQYXJhbWV0ZXJzLm5hbWUoaSksIHNhbmRib3hQYXJhbWV0ZXJzLnZhbHVlKGkpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCmluZGV4IDA0Mzg3MjY5
YmM3NGY5NzUxYTUyZGNiYmQyMDliZjhhZTczM2MzZWEuLjIxZTNhZDQzMzNkN2M2YTg5OGQ2Zjg5
ODE2MjkzNjI0Njc1NjI1NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9D
aGlsZFByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NoaWxkUHJv
Y2Vzc01hYy5tbQpAQCAtNTM0LDEwICs1MzQsOSBAQCBzdGF0aWMgYm9vbCBjb21waWxlQW5kQXBw
bHlTYW5kYm94U2xvd0Nhc2UoY29uc3QgU3RyaW5nJiBwcm9maWxlT3JQcm9maWxlUGF0aCwgYgog
ICAgIGNoYXIqIGVycm9yQnVmOwogICAgIENTdHJpbmcgdGVtcCA9IGlzUHJvZmlsZVBhdGggPyBG
aWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocHJvZmlsZU9yUHJvZmlsZVBhdGgp
IDogcHJvZmlsZU9yUHJvZmlsZVBhdGgudXRmOCgpOwogICAgIHVpbnQ2NF90IGZsYWdzID0gaXNQ
cm9maWxlUGF0aCA/IFNBTkRCT1hfTkFNRURfRVhURVJOQUwgOiAwOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgaWYgKHNhbmRib3hfaW5pdF93aXRoX3BhcmFtZXRlcnModGVtcC5kYXRhKCksIGZs
YWdzLCBwYXJhbWV0ZXJzLm5hbWVkUGFyYW1ldGVyQXJyYXkoKSwgJmVycm9yQnVmKSkgewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICAgICAgICAgV1RGTG9nQWx3YXlzKCIlczogQ291bGQgbm90IGluaXRpYWxp
emUgc2FuZGJveCBwcm9maWxlIFslc10sIGVycm9yICclcydcbiIsIGdldHByb2duYW1lKCksIHRl
bXAuZGF0YSgpLCBlcnJvckJ1Zik7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9
IHBhcmFtZXRlcnMuY291bnQoKTsgaSAhPSBjb3VudDsgKytpKQogICAgICAgICAgICAgV1RGTG9n
QWx3YXlzKCIlcz0lc1xuIiwgcGFyYW1ldGVycy5uYW1lKGkpLCBwYXJhbWV0ZXJzLnZhbHVlKGkp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5t
bSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5tbQppbmRleCA2NWYy
YjVhNmQ3ODM2MWY2YzQ1MDVkY2U5MTg1NjdhYzMxYWM4OGFjLi4zOTFjOGRkZjU0NTZkNDRkMTAx
MmQxZmY4YjNjY2MxNDExMWY3MjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvQ29sb3JTcGFjZURhdGEubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NvbG9y
U3BhY2VEYXRhLm1tCkBAIC04MywxMCArODMsOSBAQCBib29sIENvbG9yU3BhY2VEYXRhOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBDb2xvclNwYWNlRGF0YSYgY29sb3JTcGFjZURhdAog
ICAgICAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIGRhdGEpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGNvbG9yU3BhY2VE
YXRhLmNnQ29sb3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aElDQ1Byb2Zp
bGUoZGF0YS5nZXQoKSkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2FuZGJveEV4dGVu
c2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFj
Lm1tCmluZGV4IGI4ZTc0M2QyMzYwY2ZlZWZjMTdiY2EyNGQ1OTcxMWNkZDU4YTViN2UuLjI3ZDNh
ODU5N2Q2OGE0NmI2NGYxZjk2MGIwYWU2YzQzODg3YjQxMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCkBAIC04NiwxMiArODYsMTEgQEAg
cHJpdmF0ZToKICAgICB7CiAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIFNh
bmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRPbmx5OgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9maWxlKEFQUF9T
QU5EQk9YX1JFQUQsIHBhdGgsIDApOwogICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246OlR5
cGU6OlJlYWRXcml0ZToKICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1
ZV9maWxlKEFQUF9TQU5EQk9YX1JFQURfV1JJVEUsIHBhdGgsIDApOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAgICAgICAgIGNhc2UgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6R2VuZXJpYzoKICAgICAg
ICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9nZW5lcmljKHBhdGgsIDApOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCBmMzQ5YzE3MzhiMWIyY2VlNWVmZTY1M2EwMWYxMWIyNmExMmRiMTkwLi44NmJk
NWJiMGQxMDY4NWNlZGMyYmM1NDQ5ZjQxZDc1YWNlYjA2M2RkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTM5OTksMTAgKzM5OTksOSBA
QCBXRUJDT1JFX0NPTU1BTkQoeWFua0FuZFNlbGVjdCkKIAogLSAoaWQpX3dlYl9zdXBlckFjY2Vz
c2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTooTlNTdHJpbmcgKilhdHRyaWJ1dGUKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIHJldHVybiBbc3VwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVl
OmF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKHZvaWQpX3dlYl9zdXBlckRvQ29tbWFu
ZEJ5U2VsZWN0b3I6KFNFTClzZWxlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQppbmRleCA4NDc4
ZGIyY2UzYzY3ZWU1MDc3ZWM1MGIwZTUwNDFiZTk0YWVmNTkyLi42NDFhMmVjMzQyZTQ0Mzg4OWJk
YTYwOGNlYTgwYjA5OWMyNDcxZGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQpAQCAtNTAwLDgg
KzUwMCw3IEBAIHN0YXRpYyBOU1N0cmluZyAqZGVmYXVsdEFwcGxpY2F0aW9uTmFtZUZvclVzZXJB
Z2VudCgpCiAgICAgcmV0dXJuIGhhbmRsZXIgPyBzdGF0aWNfY2FzdDxXZWJLaXQ6OldlYlVSTFNj
aGVtZUhhbmRsZXJDb2NvYSo+KGhhbmRsZXIuZ2V0KCkpLT5hcGlIYW5kbGVyKCkgOiBuaWw7CiB9
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAKIC0gKF9XS1dlYnNpdGVEYXRhU3RvcmUgKilfd2Vic2l0ZURh
dGFTdG9yZQogewpAQCAtNTEzLDcgKzUxMiw3IEBAIHN0YXRpYyBOU1N0cmluZyAqZGVmYXVsdEFw
cGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCgpCiAgICAgc2VsZi53ZWJzaXRlRGF0YVN0b3JlID0g
d2Vic2l0ZURhdGFTdG9yZSA/IHdlYnNpdGVEYXRhU3RvcmUtPl9kYXRhU3RvcmUuZ2V0KCkgOiBu
dWxscHRyOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogI2lmIFBMQVRGT1JNKElPUykKIC0gKFdLV2ViVmlld0Nv
bnRlbnRQcm92aWRlclJlZ2lzdHJ5ICopX2NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9y
ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0
b3JlLm1tCmluZGV4IGQ1NjIxYjAwNGU1ZDA3NzI4MWZkNTBmOTQ5YmZmYTJiY2UzZTc4MjQuLmJh
NGJmM2ExZmQ2YWZiZDljMmFiODFkNWNiZGRiZGMxZTMwYTU4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1t
CkBAIC00MCw4ICs0MCw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJz
aXRlRGF0YVR5cGVzKSB7CiAgICAgX1dLV2Vic2l0ZURhdGFUeXBlV2ViU1FMRGF0YWJhc2VzID0g
MSA8PCA1LAogfTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogQGltcGxlbWVudGF0aW9uIF9XS1dlYnNp
dGVEYXRhU3RvcmUKIApAQCAtMTA3LDYgKzEwNiw2IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNTZXQ+
IHRvV0tXZWJzaXRlRGF0YVR5cGVzKF9XS1dlYnNpdGVEYXRhVHlwZXMgd2Vic2l0ZURhdGFUeXBl
CiAKIEBlbmQKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCBlNjg3MzExNTI1ZjI0MTRlMDRi
NTgwNTc1YTA3ZDNkM2RlYTM1M2FhLi4zMmRkZGRmNzdhMTViMjFkOTliZjllNTlhNWVhNzlkMTgz
ZDM2NGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRXZWJWaWV3LmNwcApAQCAtMjA4Miw4ICsyMDgyLDcgQEAgdm9pZCB3ZWJraXRXZWJWaWV3UnVu
QXNNb2RhbChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogCiAjaWYgUExBVEZPUk0oR1RLKQogLy8g
VGhpcyBpcyB0byBzdXBwcmVzcyB3YXJuaW5ncyBhYm91dCBnZGtfdGhyZWFkc19sZWF2ZSBhbmQg
Z2RrX3RocmVhZHNfZW50ZXIuCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGdka190aHJlYWRzX2xlYXZl
KCk7CiAjZW5kaWYKIApAQCAtMjA5MSw3ICsyMDkwLDcgQEAgdm9pZCB3ZWJraXRXZWJWaWV3UnVu
QXNNb2RhbChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogCiAjaWYgUExBVEZPUk0oR1RLKQogICAg
IGdka190aHJlYWRzX2VudGVyKCk7Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggYmM1ZGUyYjU5ZjJmNGMyMWFlNTRi
NjBhMzQzM2RjODRkYTJkNTBlNC4uOTZkM2I4OTA5YTZhY2E2N2U0MjViNDkzMjliYzYzZTVlZjEx
MWE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTk3
OCwxMCArOTc4LDkgQEAgU29tZSBvdGhlciBlZGl0aW5nLXJlbGF0ZWQgbWV0aG9kcyBzdGlsbCB1
bmltcGxlbWVudGVkOgogCiAtIChpZClfd2ViX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZh
bHVlOihOU1N0cmluZyAqKWF0dHJpYnV0ZQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgcmV0
dXJuIFtzdXBlciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6YXR0cmlidXRlXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIH0KIAogLSAodm9pZClfd2ViX3N1cGVyRG9Db21tYW5kQnlTZWxlY3RvcjooU0VMKXNl
bGVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Eb3dubG9h
ZENsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0Rvd25sb2FkQ2xpZW50
Lm1tCmluZGV4IDBlYjFjZjY0MDMyODY4NjFhYTQyNzRkZmM3NDQ4NDNmMGJkMDBhNmEuLjcyNDM0
NDg3ZDQyMWNiZTFmOWJhMmVhNmNiYWNkMThkMzI4ODU1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL0Rvd25sb2FkQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL0Rvd25sb2FkQ2xpZW50Lm1tCkBAIC0yMDIsMTAgKzIwMiw5IEBA
IHZvaWQgRG93bmxvYWRDbGllbnQ6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVu
YW1lKFdlYlByb2Nlc3NQb29sJiwgRG93CiAKICAgICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMuZG93
bmxvYWREZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFsbG93T3ZlcndyaXRl
KSB7CiAgICAgICAgIEJPT0wgYWxsb3dPdmVyd3JpdGUgPSBOTzsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAgICAgTlNTdHJpbmcgKmRlc3RpbmF0aW9uID0gW21fZGVsZWdhdGUgX2Rvd25s
b2FkOndyYXBwZXIoZG93bmxvYWRQcm94eSkgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVk
RmlsZW5hbWU6ZmlsZW5hbWUgYWxsb3dPdmVyd3JpdGU6JmFsbG93T3ZlcndyaXRlXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGFsbG93T3ZlcndyaXRlID8gQWxs
b3dPdmVyd3JpdGU6OlllcyA6IEFsbG93T3ZlcndyaXRlOjpObywgZGVzdGluYXRpb24pOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIFttX2RlbGVnYXRlIF9kb3dubG9hZDp3cmFwcGVyKGRvd25sb2Fk
UHJveHkpIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lOmZpbGVuYW1lIGNv
bXBsZXRpb25IYW5kbGVyOkJsb2NrUHRyPHZvaWQoQk9PTCwgTlNTdHJpbmcgKik+Ojpmcm9tQ2Fs
bGFibGUoW2NoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUobV9k
ZWxlZ2F0ZS5nZXQoKS5nZXQoKSwgQHNlbGVjdG9yKF9kb3dubG9hZDpkZWNpZGVEZXN0aW5hdGlv
bldpdGhTdWdnZXN0ZWRGaWxlbmFtZTpjb21wbGV0aW9uSGFuZGxlcjopKSwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKEJPT0wgYWxsb3dPdmVyd3JpdGUs
IE5TU3RyaW5nICpkZXN0aW5hdGlvbikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50
Lm1tCmluZGV4IDE5YTU5YjQyY2FiN2I1NDdlZDk0NDYwZTcyZmMwMzk2Y2ZlNzkyODcuLjZjMTI1
Mzk2NTUwN2U1Yzk1MmNjMjc4MzEyZTAwZDhjMzU0NDcxODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2Nv
bE1hbmFnZXJDbGllbnQubW0KQEAgLTU2LDEyICs1NiwxMSBAQAogICAgIF9jdXN0b21Qcm90b2Nv
bE1hbmFnZXJQcm94eSA9IGN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5OwogICAgIF9jdXN0b21Q
cm90b2NvbElEID0gY3VzdG9tUHJvdG9jb2xJRDsKICAgICBfc3RvcmFnZVBvbGljeSA9IE5TVVJM
Q2FjaGVTdG9yYWdlTm90QWxsb3dlZDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIF91cmxDb25u
ZWN0aW9uID0gW1tOU1VSTENvbm5lY3Rpb24gYWxsb2NdIGluaXRXaXRoUmVxdWVzdDpyZXF1ZXN0
IGRlbGVnYXRlOnNlbGYgc3RhcnRJbW1lZGlhdGVseTpOT107CiAgICAgW191cmxDb25uZWN0aW9u
IHNjaGVkdWxlSW5SdW5Mb29wOltOU1J1bkxvb3AgbWFpblJ1bkxvb3BdIGZvck1vZGU6TlNSdW5M
b29wQ29tbW9uTW9kZXNdOwogICAgIFtfdXJsQ29ubmVjdGlvbiBzdGFydF07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAKICAgICByZXR1cm4gc2VsZjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCBkNWFjZDY0MzhkMGY1NTNmOTU4YTcyMDY2NmZm
NDJkMWMwM2JhZmQ0Li5mYjlkYjY0MDQ2NzlhNTk0YTA1YTExMTllNGE2YjI2NTU2M2I1YjZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1t
CkBAIC01NzUsMTAgKzU3NSw5IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xp
ZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQCiAgICAgICAgIGlm
IChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Rl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Vc2VySW5mb0RlY2lzaW9uSGFuZGxlcldlYnNp
dGVQb2xpY2llcykKICAgICAgICAgICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0
ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmll
dyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndyYXBwZXIobmF2aWdhdGlvbkFjdGlv
bikgdXNlckluZm86dXNlckluZm8gPyBzdGF0aWNfY2FzdDxpZCA8TlNTZWN1cmVDb2Rpbmc+Pih1
c2VySW5mby0+d3JhcHBlcigpKSA6IG5pbCBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVy
LmdldCgpXTsKICAgICAgICAgZWxzZSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICAgICAgWyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9uRGVs
ZWdhdGUgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb246d3JhcHBlcihuYXZpZ2F0aW9uQWN0aW9uKSBkZWNpc2lvbkhhbmRs
ZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICB9
CiAgICAgfSBlbHNlIHsKICAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXJXaXRob3V0UG9saWNp
ZXMgPSBbZGVjaXNpb25IYW5kbGVyV2l0aFBvbGljaWVzID0gV1RGTW92ZShkZWNpc2lvbkhhbmRs
ZXJXaXRoUG9saWNpZXMpXSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IGFjdGlvblBvbGljeSkg
bXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpp
bmRleCBmMGI5ZDMwMDBhOWU2NTQ1YWRiMGIxMjQ1MzFmNTcwZTQ4MjI1OWI0Li4zZWNlODIwZWQ0
YjMxNjQzNjkzZjUyMjQ3ZWRhZDljNjhiODFmZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTIwMywxMyArMjAzLDEyIEBAIHZvaWQgVUlEZWxl
Z2F0ZTo6Q29udGV4dE1lbnVDbGllbnQ6Om1lbnVGcm9tUHJvcG9zZWRNZW51KFdlYlBhZ2VQcm94
eSYsIE5TTWVudSAqCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICBpZiAobV91aURlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdDb250
ZXh0TWVudUZvckVsZW1lbnQpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihbKGlk
IDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93
ZWJWaWV3IGNvbnRleHRNZW51Om1lbnUgZm9yRWxlbWVudDpjb250ZXh0TWVudUVsZW1lbnRJbmZv
LmdldCgpXSk7CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihbKGlkIDxXS1VJRGVsZWdhdGVQcml2
YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNvbnRleHRNZW51
Om1lbnUgZm9yRWxlbWVudDpjb250ZXh0TWVudUVsZW1lbnRJbmZvLmdldCgpIHVzZXJJbmZvOnVz
ZXJJbmZvID8gc3RhdGljX2Nhc3Q8aWQgPE5TU2VjdXJlQ29kaW5nPj4odXNlckluZm8tPndyYXBw
ZXIoKSkgOiBuaWxdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCBkMTZm
NTg1MmRkZjg0YTRkNTkyYjlmMzNlNzhlYjMyZGE5MjBiMTAzLi40ZTVhZTMxNzNhOTUxY2ZmMzkw
YTE5NzYxMTBmNDBlYjRiMTkyYzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTE2NiwxMSArMTY2LDEwIEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lv
bnMoKQogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogI2lmIFBMQVRGT1JN
KE1BQykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdl
KFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11bmljYXRlV2l0aFdpbmRvd1NlcnZlcikpOwogICAg
IHBhcmFtZXRlcnMuYWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQgPSBb
W05TQXBwIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYRW5oYW5jZWRVc2VySW50ZXJm
YWNlIl0gYm9vbFZhbHVlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbHNlCiAgICAgcGFyYW1ldGVycy5hY2Nl
c3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCA9IGZhbHNlOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IGRlNDhl
MGY4YTg5NWViODJjMTdiNGY4NzUzYzYzZTE1MjE2ODhlNWEuLjBhYTczNGE2OTIxNzhkOTY2NGEx
NGI4ZTE2NDhmYWYzNjNjZGM2OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCkBAIC01NTYsMTUgKzU1NiwxNCBAQCBzdGF0aWMgY29uc3QgTlNVSW50
ZWdlciBvcmRlcmVkTGlzdFNlZ21lbnQgPSAyOwogICAgIFtpbnNlcnRMaXN0Q29udHJvbCBzZXRX
aWR0aDpsaXN0Q29udHJvbFNlZ21lbnRXaWR0aCBmb3JTZWdtZW50Om9yZGVyZWRMaXN0U2VnbWVu
dF07CiAgICAgaW5zZXJ0TGlzdENvbnRyb2wuZm9udCA9IFtOU0ZvbnQgc3lzdGVtRm9udE9mU2l6
ZToxNV07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlkIHNlZ21lbnRFbGVtZW50ID0gTlNB
Y2Nlc3NpYmlsaXR5VW5pZ25vcmVkRGVzY2VuZGFudChpbnNlcnRMaXN0Q29udHJvbCk7CiAgICAg
TlNBcnJheSAqc2VnbWVudHMgPSBbc2VnbWVudEVsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0
ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlXTsKICAgICBBU1NFUlQoc2Vn
bWVudHMuY291bnQgPT0gMyk7CiAgICAgW3NlZ21lbnRzW25vTGlzdFNlZ21lbnRdIGFjY2Vzc2li
aWxpdHlTZXRPdmVycmlkZVZhbHVlOldlYkNvcmU6Omluc2VydExpc3RUeXBlTm9uZSgpIGZvckF0
dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgW3NlZ21l
bnRzW3Vub3JkZXJlZExpc3RTZWdtZW50XSBhY2Nlc3NpYmlsaXR5U2V0T3ZlcnJpZGVWYWx1ZTpX
ZWJDb3JlOjppbnNlcnRMaXN0VHlwZUJ1bGxldGVkQWNjZXNzaWJpbGl0eVRpdGxlKCkgZm9yQXR0
cmlidXRlOk5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uQXR0cmlidXRlXTsKICAgICBbc2VnbWVu
dHNbb3JkZXJlZExpc3RTZWdtZW50XSBhY2Nlc3NpYmlsaXR5U2V0T3ZlcnJpZGVWYWx1ZTpXZWJD
b3JlOjppbnNlcnRMaXN0VHlwZU51bWJlcmVkQWNjZXNzaWJpbGl0eVRpdGxlKCkgZm9yQXR0cmli
dXRlOk5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uQXR0cmlidXRlXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAog
ICAgIHNlbGYudmlldyA9IGluc2VydExpc3RDb250cm9sOwogCkBAIC0xNjM4LDExICsxNjM3LDEw
IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKQogICAgICAg
ICBpZiAod2Vha1RoaXMtPm1fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKQogICAg
ICAgICAgICAgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9IFt3ZWFrVGhpcy0+bV92aWV3
IGNvbnZlcnRSZWN0Olt3ZWFrVGhpcy0+bV92aWV3IGZyYW1lXSB0b1ZpZXc6bmlsXTsKIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgaWYgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgICAgICBhY2Nlc3NpYmlsaXR5UG9z
aXRpb24gPSBbW3dlYWtUaGlzLT5tX3ZpZXcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5T
QWNjZXNzaWJpbGl0eVBvc2l0aW9uQXR0cmlidXRlXSBwb2ludFZhbHVlXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgICAgICAKICAgICAgICAgd2Vha1RoaXMtPm1fcGFnZS0+d2luZG93QW5kVmll
d0ZyYW1lc0NoYW5nZWQodmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgYWNjZXNzaWJpbGl0
eVBvc2l0aW9uKTsKICAgICB9KTsKQEAgLTM3MTcsMTAgKzM3MTUsOSBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpkcmFnZ2VkSW1hZ2UoTlNJbWFnZSAqLCBDR1BvaW50IGVuZFBvaW50LCBOU0RyYWdPcGVy
YXRpb24gb3BlcgogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZW5kRHJhZ0VuZFRvUGFnZShDR1BvaW50
IGVuZFBvaW50LCBOU0RyYWdPcGVyYXRpb24gb3BlcmF0aW9uKQogewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgTlNQb2ludCB3aW5kb3dJbWFnZUxvYyA9IFtbbV92aWV3IHdpbmRvd10gY29udmVy
dFNjcmVlblRvQmFzZTpOU1BvaW50RnJvbUNHUG9pbnQoZW5kUG9pbnQpXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICBOU1BvaW50IHdpbmRvd01vdXNlTG9jID0gd2luZG93SW1hZ2VMb2M7CiAKICAgICAvLyBQ
cmV2ZW50IHF1ZXVlZCBtb3VzZURyYWdnZWQgZXZlbnRzIGZyb20gY29taW5nIGFmdGVyIHRoZSBk
cmFnIGFuZCBmYWtlIG1vdXNlVXAgZXZlbnQuCkBAIC0zOTk4LDEwICszOTk1LDkgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6c3RhcnREcmFnKGNvbnN0IFdlYkNvcmU6OkRyYWdJdGVtJiBpdGVtLCBjb25z
dCBTaGFyZWFibGVCaXRtYXAKICAgICAvLyBUaGUgY2FsbCBiZWxvdyBjb3VsZCByZWxlYXNlIHRo
ZSB2aWV3LgogICAgIGF1dG8gcHJvdGVjdG9yID0gbV92aWV3LmdldCgpOwogICAgIGF1dG8gY2xp
ZW50RHJhZ0xvY2F0aW9uID0gaXRlbS5kcmFnTG9jYXRpb25JbldpbmRvd0Nvb3JkaW5hdGVzOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkID0gW05TUGFz
dGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6TlNEcmFnUGJvYXJkXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAog
ICAgIGlmIChhdXRvJiBpbmZvID0gaXRlbS5wcm9taXNlZEF0dGFjaG1lbnRJbmZvKSB7CiAgICAg
ICAgIE5TU3RyaW5nICp1dGlUeXBlID0gaW5mby5jb250ZW50VHlwZTsKQEAgLTQwMzAsMTAgKzQw
MjYsOSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzdGFydERyYWcoY29uc3QgV2ViQ29yZTo6RHJhZ0l0
ZW0mIGl0ZW0sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcAogICAgIH0KIAogICAgIFtwYXN0ZWJvYXJk
IHNldFN0cmluZzpAIiIgZm9yVHlwZTpQYXN0ZWJvYXJkVHlwZXM6OldlYkR1bW15UGJvYXJkVHlw
ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbbV92aWV3IGRyYWdJbWFnZTpkcmFnTlNJbWFn
ZS5nZXQoKSBhdDpOU1BvaW50RnJvbUNHUG9pbnQoY2xpZW50RHJhZ0xvY2F0aW9uKSBvZmZzZXQ6
TlNaZXJvU2l6ZSBldmVudDptX2xhc3RNb3VzZURvd25FdmVudC5nZXQoKSBwYXN0ZWJvYXJkOnBh
c3RlYm9hcmQgc291cmNlOm1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBzbGlkZUJhY2s6WUVTXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICAgICBtX3BhZ2UtPmRpZFN0YXJ0RHJhZygpOwogfQogCkBAIC00Nzc5LDEx
ICs0Nzc0LDEwIEBAIHZvaWQgV2ViVmlld0ltcGw6OmNoYXJhY3RlckluZGV4Rm9yUG9pbnQoTlNQ
b2ludCBwb2ludCwgdm9pZCheY29tcGxldGlvbkhhbmRsZXJQCiAKICAgICBOU1dpbmRvdyAqd2lu
ZG93ID0gW21fdmlldyB3aW5kb3ddOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAod2lu
ZG93KQogICAgICAgICBwb2ludCA9IFt3aW5kb3cgY29udmVydFNjcmVlblRvQmFzZTpwb2ludF07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAgICAgcG9pbnQgPSBbbV92aWV3IGNvbnZlcnRQb2ludDpwb2ludCBmcm9t
VmlldzpuaWxdOyAgLy8gdGhlIHBvaW50IGlzIHJlbGF0aXZlIHRvIHRoZSBtYWluIGZyYW1lCiAK
ICAgICBtX3BhZ2UtPmNoYXJhY3RlckluZGV4Rm9yUG9pbnRBc3luYyhXZWJDb3JlOjpJbnRQb2lu
dChwb2ludCksIFtjb21wbGV0aW9uSGFuZGxlcl0odWludDY0X3QgcmVzdWx0LCBXZWJLaXQ6OkNh
bGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQppbmRleCBk
NDM1ZTFmMzQwY2JlMjRjN2VkYTliNzRhMjcyYjI0ZmRkMzEzZGRkLi5lZjg2Mzg1MzYzMTNkZmQ0
ZDQ4NzU5MmQwNjgwYmZlOTljMTFkNWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC05
NCwxMCArOTQsOSBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXpl
UGx1Z2luUHJvY2VzcyhQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYQogYm9vbCBQbHVnaW5Qcm9jZXNz
UHJveHk6OmdldFBsdWdpblByb2Nlc3NTZXJpYWxOdW1iZXIoUHJvY2Vzc1NlcmlhbE51bWJlciYg
cGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJlcikKIHsKICAgICBwaWRfdCBwbHVnaW5Qcm9jZXNzUElE
ID0gcHJvY2Vzc0lkZW50aWZpZXIoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBH
ZXRQcm9jZXNzRm9yUElEKHBsdWdpblByb2Nlc3NQSUQsICZwbHVnaW5Qcm9jZXNzU2VyaWFsTnVt
YmVyKSA9PSBub0VycjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6
Om1ha2VQbHVnaW5Qcm9jZXNzVGhlRnJvbnRQcm9jZXNzKCkKQEAgLTEwNiwyMCArMTA1LDE4IEBA
IHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjptYWtlUGx1Z2luUHJvY2Vzc1RoZUZyb250UHJvY2Vz
cygpCiAgICAgaWYgKCFnZXRQbHVnaW5Qcm9jZXNzU2VyaWFsTnVtYmVyKHBsdWdpblByb2Nlc3NT
ZXJpYWxOdW1iZXIpKQogICAgICAgICByZXR1cm47CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IFNldEZyb250UHJvY2VzcygmcGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJlcik7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjptYWtlVUlQcm9jZXNzVGhlRnJvbnRQcm9j
ZXNzKCkKIHsKICAgICBQcm9jZXNzU2VyaWFsTnVtYmVyIHByb2Nlc3NTZXJpYWxOdW1iZXI7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICBHZXRDdXJyZW50UHJvY2VzcygmcHJvY2Vzc1NlcmlhbE51
bWJlcik7CiAgICAgU2V0RnJvbnRQcm9jZXNzKCZwcm9jZXNzU2VyaWFsTnVtYmVyKTsgICAgICAg
ICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OnNldEZ1bGxz
Y3JlZW5XaW5kb3dJc1Nob3dpbmcoYm9vbCBmdWxsc2NyZWVuV2luZG93SXNTaG93aW5nKQpAQCAt
MTUyLDEwICsxNDksOSBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZXhpdEZ1bGxzY3JlZW4o
KQogewogICAgIC8vIElmIHRoZSBwbHVnLWluIGhvc3QgaXMgdGhlIGN1cnJlbnQgYXBwbGljYXRp
b24gdGhlbiB3ZSBzaG91bGQgYnJpbmcgb3Vyc2VsdmVzIHRvIHRoZSBmcm9udCB3aGVuIGl0IGV4
aXRzIGZ1bGwtc2NyZWVuIG1vZGUuCiAgICAgUHJvY2Vzc1NlcmlhbE51bWJlciBmcm9udFByb2Nl
c3NTZXJpYWxOdW1iZXI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBHZXRGcm9udFByb2Nlc3Mo
JmZyb250UHJvY2Vzc1NlcmlhbE51bWJlcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICAvLyBUaGUgVUkg
cHJvY2VzcyBtdXN0IGJlIHRoZSBmcm9udCBwcm9jZXNzIGluIG9yZGVyIHRvIGNoYW5nZSB0aGUg
cHJlc2VudGF0aW9uIG1vZGUuCiAgICAgbWFrZVVJUHJvY2Vzc1RoZUZyb250UHJvY2VzcygpOwpA
QCAtMTY4LDE1ICsxNjQsMTMgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmV4aXRGdWxsc2Ny
ZWVuKCkKICAgICAvLyBJZiB0aGUgcGx1Zy1pbiBwcm9jZXNzIHdhcyBub3QgdGhlIGZyb250IHBy
b2Nlc3MsIHN3aXRjaCBiYWNrIHRvIHRoZSBwcmV2aW91cyBmcm9udCBwcm9jZXNzLgogICAgIC8v
IChPdGhlcndpc2Ugd2UnbGwga2VlcCB0aGUgVUkgcHJvY2VzcyBhcyB0aGUgZnJvbnQgcHJvY2Vz
cykuCiAgICAgQm9vbGVhbiBpc1BsdWdpblByb2Nlc3NGcm9udFByb2Nlc3M7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICBTYW1lUHJvY2VzcygmZnJvbnRQcm9jZXNzU2VyaWFsTnVtYmVyLCAmcGx1
Z2luUHJvY2Vzc1NlcmlhbE51bWJlciwgJmlzUGx1Z2luUHJvY2Vzc0Zyb250UHJvY2Vzcyk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgaWYgKCFpc1BsdWdpblByb2Nlc3NGcm9udFByb2Nlc3MpIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgU2V0RnJvbnRQcm9jZXNzKCZmcm9udFByb2Nlc3NT
ZXJpYWxOdW1iZXIpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xs
ZXIubW0KaW5kZXggYjM2MmQ1N2I5YzQzYTg1ZjM2NmUzM2I2YTdkNDkyOTlmNmE5ZDRmMy4uMjM1
YWE1Yjk3MmJmMjE5NWUzYTYxMDJlMmU3YWRlMzg0ZmEzZDg4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xs
ZXIubW0KQEAgLTM3LDEyICszNywxMSBAQAogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1w
b3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogI2ltcG9ydCAiVUlL
aXRTUEkuaCIKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAKIHN0YXRpYyBjb25zdCBmbG9hdCBzbWFydE1hZ25pZmljYXRp
b25QYW5TY3JvbGxUaHJlc2hvbGRab29tZWRPdXQgPSA2MDsKIHN0YXRpYyBjb25zdCBmbG9hdCBz
bWFydE1hZ25pZmljYXRpb25QYW5TY3JvbGxUaHJlc2hvbGRJUGhvbmUgPSAxMDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9T
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklP
Uy5tbQppbmRleCA4OGQ5Mzk3NzEzMDBmYzA5YWM1MTg2YWRmMTMxMzAyODQxMDdkMDE0Li5iZGNj
NTcxMGZjN2Y0OTY1ZjNjOThkZTE3MTYxMzU5ZmE3MzU3NTgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KQEAg
LTUzLDggKzUzLDcgQEAKICNpbXBvcnQgPFdlYktpdC9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlv
blByb3ZpZGVyLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViQWxsb3dEZW55UG9saWN5TGlzdGVuZXIu
aD4KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KIAogQGludGVyZmFjZSBXS0dlb2xvY2F0aW9uUHJvdmlkZXJJ
T1MgKF9XS0dlb2xvY2F0aW9uQ29yZUxvY2F0aW9uTGlzdGVuZXIpIDxfV0tHZW9sb2NhdGlvbkNv
cmVMb2NhdGlvbkxpc3RlbmVyPgogQGVuZApAQCAtMzU0LDYgKzM1Myw2IEBAIHN0YXRpYyB2b2lk
IHNldEVuYWJsZUhpZ2hBY2N1cmFjeShXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlv
bk1hbmFnZXIsIGJvCiB9CiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9T
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTGVnYWN5UERGVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0xlZ2FjeVBERlZpZXcubW0KaW5k
ZXggMGI1ZDlkNmM2NDZiNDI4MmMwZmNiNzNlMWNiZmQwY2EzNGYzNWFhNi4uZDM4ZjMxYzgxNWYz
YzlmM2U5OGRhNTJlNTRmYjg4ODg0ZWQwYTQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLTGVnYWN5UERGVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tMZWdhY3lQREZWaWV3Lm1tCkBAIC01MSw4ICs1MSw3IEBACiAKIC8vIEFsbCBv
ZiBVSVBERlBhZ2UqIGFyZSBkZXByZWNhdGVkLCBzbyBqdXN0IGlnbm9yZSBkZXByZWNhdGVkIGRl
Y2xhcmF0aW9ucwogLy8gaW4gdGhpcyBmaWxlIHVudGlsIHdlIHN3aXRjaCBvZmYgdGhlbS4KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAKIGNvbnN0IENHRmxvYXQgcGRmUGFnZU1hcmdpbiA9IDg7CiBjb25zdCBD
R0Zsb2F0IHBkZk1pbmltdW1ab29tU2NhbGUgPSAxOwpAQCAtODU3LDYgKzg1Niw2IEBAIHN0YXRp
YyBOU1N0cmluZ0NvbXBhcmVPcHRpb25zIHN0cmluZ0NvbXBhcmVPcHRpb25zKF9XS0ZpbmRPcHRp
b25zIG9wdGlvbnMpCiAKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TTUFDKQogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAog
I2VuZGlmIC8vIEVOQUJMRShXS0xFR0FDWVBERlZJRVcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLUERGUGFnZU51bWJlckluZGljYXRvci5tbQppbmRleCA5Nzli
MzBkMzgxNGIxMzA2YzBhYWIxOTU2ZWMzN2EzZGE2NjA2MzhiLi44MTlhZmI3MGYzNTI4NjE4N2M4
NGI4ZDhkNzkzZDQ0ODJmNDY3MjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3IubW0KQEAgLTE4MywxMCArMTgzLDkg
QEAgY29uc3QgTlNUaW1lSW50ZXJ2YWwgaW5kaWNhdG9yTW92ZUR1cmF0aW9uID0gMC4zOwogICAg
IENHQ29udGV4dFNhdmVHU3RhdGUoY29udGV4dCk7CiAgICAgQ0dDb250ZXh0QWRkUmVjdChjb250
ZXh0LCBjb3JuZXJJbWFnZUJvdW5kcyk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFVJQmV6
aWVyUGF0aCAqY29ybmVyUGF0aCA9IFtVSUJlemllclBhdGggYmV6aWVyUGF0aFdpdGhSb3VuZGVk
UmVjdDpjb3JuZXJJbWFnZUJvdW5kcyBieVJvdW5kaW5nQ29ybmVyczooVUlSZWN0Q29ybmVyKVVJ
QWxsQ29ybmVycyBjb3JuZXJSYWRpaTpDR1NpemVNYWtlKGluZGljYXRvckNvcm5lclJhZGl1cywg
aW5kaWNhdG9yQ29ybmVyUmFkaXVzKV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgQ0dDb250ZXh0QWRkUGF0
aChjb250ZXh0LCBbY29ybmVyUGF0aCBDR1BhdGhdKTsKICAgICBDR0NvbnRleHRFT0NsaXAoY29u
dGV4dCk7CiAgICAgQ0dDb250ZXh0RmlsbFJlY3QoY29udGV4dCwgY29ybmVySW1hZ2VCb3VuZHMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLQWlyUGxh
eVJvdXRlUGlja2VyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLQWly
UGxheVJvdXRlUGlja2VyLm1tCmluZGV4IDc0YmQyMzJkNjIyZWU4MWUwN2JmNDQ5ZTMwODdhMjU5
N2ZjNzI4ZmMuLmNjM2E4ZWQ1OTY2YTJkMDAzOTY2ZmMwYjAwOGMwNTdlODliYzBlOGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0FpclBsYXlSb3V0ZVBp
Y2tlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tBaXJQbGF5
Um91dGVQaWNrZXIubW0KQEAgLTM5LDggKzM5LDcgQEAKICNpbXBvcnQgIldLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAKIFNPRlRfTElOS19GUkFNRVdPUksoTWVkaWFQbGF5ZXIpCiBTT0ZUX0xJTktfQ0xBU1MoTWVk
aWFQbGF5ZXIsIE1QQVZSb3V0aW5nQ29udHJvbGxlcikKQEAgLTE2MCw3ICsxNTksNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZWxzZSAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVs
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVs
Lm1tCmluZGV4IDgyZDZmMmEwZjVhOTBmMGQ0Zjk1YmI0ZmZiYjNmZThjMWJiZDg2NzkuLmI5YzFm
YWVmNGMwNjc1MzE4YTI1ZDhmMTM0NzE4YzZkNWIyZmQwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0KQEAgLTQ2
LDggKzQ2LDcgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
IAogc3RhdGljIGlubGluZSBVSUltYWdlUGlja2VyQ29udHJvbGxlckNhbWVyYURldmljZSBjYW1l
cmFEZXZpY2VGb3JNZWRpYUNhcHR1cmVUeXBlKFdlYkNvcmU6Ok1lZGlhQ2FwdHVyZVR5cGUgbWVk
aWFDYXB0dXJlVHlwZSkKIHsKQEAgLTE2MCwxMCArMTU5LDkgQEAgc3RhdGljIGlubGluZSBVSUlt
YWdlICpjYW1lcmFJY29uKCkKICAgICBCT09MIF91c2luZ0NhbWVyYTsKICAgICBSZXRhaW5QdHI8
VUlJbWFnZVBpY2tlckNvbnRyb2xsZXI+IF9pbWFnZVBpY2tlcjsKICAgICBSZXRhaW5QdHI8VUlW
aWV3Q29udHJvbGxlcj4gX3ByZXNlbnRhdGlvblZpZXdDb250cm9sbGVyOyAvLyBpUGhvbmUgYWx3
YXlzLiBpUGFkIGZvciBGdWxsc2NyZWVuIENhbWVyYS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IFJldGFpblB0cjxVSVBvcG92ZXJDb250cm9sbGVyPiBfcHJlc2VudGF0aW9uUG9wb3ZlcjsgLy8g
aVBhZCBmb3IgYWN0aW9uIHNoZWV0IGFuZCBQaG90byBMaWJyYXJ5LgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAg
IFJldGFpblB0cjxVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyPiBfZG9jdW1lbnRNZW51Q29u
dHJvbGxlcjsKICAgICBXZWJDb3JlOjpNZWRpYUNhcHR1cmVUeXBlIF9tZWRpYUNhcHR1cmVUeXBl
OwogfQpAQCAtNDUwLDEwICs0NDgsOSBAQCBzdGF0aWMgTlNBcnJheSAqVVRJc0Zvck1JTUVUeXBl
cyhOU0FycmF5ICptaW1lVHlwZXMpCiB7CiAgICAgW3NlbGYgX2Rpc21pc3NEaXNwbGF5QW5pbWF0
ZWQ6YW5pbWF0ZWRdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBfcHJlc2VudGF0aW9uUG9w
b3ZlciA9IGFkb3B0TlMoW1tVSVBvcG92ZXJDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aENvbnRl
bnRWaWV3Q29udHJvbGxlcjpjb250ZW50Vmlld0NvbnRyb2xsZXJdKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAg
ICBbX3ByZXNlbnRhdGlvblBvcG92ZXIgc2V0RGVsZWdhdGU6c2VsZl07CiAgICAgW19wcmVzZW50
YXRpb25Qb3BvdmVyIHByZXNlbnRQb3BvdmVyRnJvbVJlY3Q6Q0dSZWN0SW50ZWdyYWwoQ0dSZWN0
TWFrZShfaW50ZXJhY3Rpb25Qb2ludC54LCBfaW50ZXJhY3Rpb25Qb2ludC55LCAxLCAxKSkgaW5W
aWV3Ol92aWV3IHBlcm1pdHRlZEFycm93RGlyZWN0aW9uczpVSVBvcG92ZXJBcnJvd0RpcmVjdGlv
bkFueSBhbmltYXRlZDphbmltYXRlZF07CiB9CkBAIC03MjAsNiArNzE3LDYgQEAgc3RhdGljIE5T
QXJyYXkgKlVUSXNGb3JNSU1FVHlwZXMoTlNBcnJheSAqbWltZVR5cGVzKQogCiBAZW5kCiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Db2xvckNvbnRyb2wubW0KaW5kZXggNjA5YmFj
MzFmNTZhYTVhYWViZjAzYzJlMzE4YzE1NTRhNThlOTVhNy4uODI0ZWQzZDkxYmNiMTdiMWMxNDBl
ZDRmYTNiYWExNmFlY2UwNzQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZm9ybXMvV0tGb3JtQ29sb3JDb250cm9sLm1tCkBAIC02NiwxMCArNjYsOSBAQCBz
dGF0aWMgY29uc3QgQ0dGbG9hdCBjb2xvclBvcG92ZXJDb3JuZXJSYWRpdXMgPSA5OwogICAgIFtw
b3BvdmVyVmlld0NvbnRyb2xsZXIgc2V0Vmlldzpjb250cm9sQ29udGFpbmVyVmlldy5nZXQoKV07
CiAgICAgW3BvcG92ZXJWaWV3Q29udHJvbGxlciBzZXRQcmVmZXJyZWRDb250ZW50U2l6ZTpbY29u
dHJvbENvbnRhaW5lclZpZXcgc2l6ZV1dOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBSZXRh
aW5QdHI8VUlQb3BvdmVyQ29udHJvbGxlcj4gY29udHJvbGxlciA9IGFkb3B0TlMoW1tVSVBvcG92
ZXJDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aENvbnRlbnRWaWV3Q29udHJvbGxlcjpwb3BvdmVy
Vmlld0NvbnRyb2xsZXIuZ2V0KCldKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbc2VsZiBzZXRQb3BvdmVy
Q29udHJvbGxlcjpjb250cm9sbGVyLmdldCgpXTsKIAogICAgIHJldHVybiBzZWxmOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29udHJv
bC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRy
b2wubW0KaW5kZXggMWNkNjJlM2JiNTE4MTNiNzE0ZTM0YTNjZmJlYjczYWJhYWE5MGNlMy4uZDAy
ZGZmZmZkYTVhNjY0NjExMjRkMzg1ODE3ZDg2NTlhNjAyY2VjMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29udHJvbC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLm1tCkBA
IC0zMzAsMTYgKzMzMCwxNCBAQCBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga01pbGxpc2Vj
b25kc1BlclNlY29uZCA9IDEwMDA7CiAgICAgUmV0YWluUHRyPFVJTmF2aWdhdGlvbkNvbnRyb2xs
ZXI+IG5hdmlnYXRpb25Db250cm9sbGVyID0gYWRvcHROUyhbW1VJTmF2aWdhdGlvbkNvbnRyb2xs
ZXIgYWxsb2NdIGluaXRXaXRoUm9vdFZpZXdDb250cm9sbGVyOl92aWV3Q29udHJvbGxlci5nZXQo
KV0pOwogICAgIFVJTmF2aWdhdGlvbkl0ZW0gKm5hdmlnYXRpb25JdGVtID0gbmF2aWdhdGlvbkNv
bnRyb2xsZXIuZ2V0KCkubmF2aWdhdGlvbkJhci50b3BJdGVtOwogICAgIE5TU3RyaW5nICpjbGVh
clN0cmluZyA9IFdFQl9VSV9TVFJJTkdfS0VZKCJDbGVhciIsICJDbGVhciBCdXR0b24gRGF0ZSBQ
b3BvdmVyIiwgIkNsZWFyIGJ1dHRvbiBpbiBkYXRlIGlucHV0IHBvcG92ZXIiKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIFVJQmFyQnV0dG9uSXRlbSAqY2xlYXJCdXR0b24gPSBbW1tVSUJhckJ1
dHRvbkl0ZW0gYWxsb2NdIGluaXRXaXRoVGl0bGU6Y2xlYXJTdHJpbmcgc3R5bGU6VUlCYXJCdXR0
b25JdGVtU3R5bGVCb3JkZXJlZCB0YXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKGNsZWFyOild
IGF1dG9yZWxlYXNlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbbmF2aWdhdGlvbkl0ZW0gc2V0UmlnaHRC
YXJCdXR0b25JdGVtOmNsZWFyQnV0dG9uXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgUmV0
YWluUHRyPFVJUG9wb3ZlckNvbnRyb2xsZXI+IGNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbVUlQb3Bv
dmVyQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6bmF2aWdh
dGlvbkNvbnRyb2xsZXIuZ2V0KCldKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbc2VsZiBzZXRQb3BvdmVy
Q29udHJvbGxlcjpjb250cm9sbGVyLmdldCgpXTsKIAogICAgIHJldHVybiBzZWxmOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLmgKaW5kZXgg
MGVjOGM2NTUzODc5YWJkYzViOTIxMGY5NTc4MjRiMDdlMGIwZmRlYi4uYzk2NzYxYzZiZDkzNzAw
ZTMyZmM4YjdkYmM3ZGI4ZDgyMzIzOGQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9wb3Zlci5oCkBAIC00MCwxMCArNDAsOSBAQAogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS0NvbnRlbnRWaWV3ICp2aWV3OwogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgYXNzaWduKSBDR1BvaW50IHByZXNlbnRhdGlvblBvaW50OwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZXRhaW4pIFVJUG9wb3ZlckNvbnRyb2xs
ZXIgKnBvcG92ZXJDb250cm9sbGVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNz
aWduKSBpZCA8V0tSb3RhdGluZ1BvcG92ZXJEZWxlZ2F0ZT4gZGlzbWlzc2lvbkRlbGVnYXRlOwog
QGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tG
b3JtUG9wb3Zlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Q
b3BvdmVyLm1tCmluZGV4IGJlMmYwZDJjYWQ0ZmY4YzJmZDQxODE1NjNiN2U2ZGI2ZGNiOGUyYTAu
LjZiMThjM2QwMjJlNTljNGZiNmRmOTA3NjRmNWI2MjllOGVjZGZjNzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLm1tCkBAIC0zNiw4
ICszNiw3IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAK
IEBpbXBsZW1lbnRhdGlvbiBXS0Zvcm1Sb3RhdGluZ0FjY2Vzc29yeVBvcG92ZXIKIApAQCAtMTc4
LDYgKzE3Nyw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIEBlbmQKIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAK
ICNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZm9ybXMvV0tGb3JtU2VsZWN0UG9wb3Zlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RQb3BvdmVyLm1tCmluZGV4IDU3YmZhNDA3MDRh
MjBlMzJlZWNiOGZlMWM3NmMyYzUwZThkOGY5MDQuLjQzYjdlY2JmYmFjNjdkYTBhYjRjMWVmMmJh
N2I3NjU3ZWRhYmY5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9m
b3Jtcy9XS0Zvcm1TZWxlY3RQb3BvdmVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1TZWxlY3RQb3BvdmVyLm1tCkBAIC00MDEsMTAgKzQwMSw5IEBAIHN0
YXRpYyBOU1N0cmluZyAqc3RyaW5nV2l0aFdyaXRpbmdEaXJlY3Rpb24oTlNTdHJpbmcgKnN0cmlu
ZywgVUlUZXh0V3JpdGluZ0RpcmVjCiAgICAgZWxzZQogICAgICAgICBwb3BvdmVyVmlld0NvbnRy
b2xsZXIucHJlZmVycmVkQ29udGVudFNpemUgPSBwb3BvdmVyU2l6ZTsKICAgICAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIHNlbGYucG9wb3ZlckNvbnRyb2xsZXIgPSBbW1tVSVBvcG92ZXJDb250
cm9sbGVyIGFsbG9jXSBpbml0V2l0aENvbnRlbnRWaWV3Q29udHJvbGxlcjpwb3BvdmVyVmlld0Nv
bnRyb2xsZXJdIGF1dG9yZWxlYXNlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIFtuYXZDb250cm9sbGVy
IHJlbGVhc2VdOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VD
bGllbnRJbXBsTWFjLm1tCmluZGV4IDhjMjNiMjhiODIwYjViZTFlNzQxYjMxN2UzZDIwOWZmYTgx
NjFkMGMuLmM0NzliYjlhMDE2YTQzODEwZTRiM2E3MjI4ODU4NWY0MTc0Njk1NzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTQx
OSwxMCArNDE5LDkgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6cGlubmVkU3RhdGVEaWRDaGFuZ2Uo
KQogICAgIAogSW50UG9pbnQgUGFnZUNsaWVudEltcGw6OnNjcmVlblRvUm9vdFZpZXcoY29uc3Qg
SW50UG9pbnQmIHBvaW50KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNQb2ludCB3aW5k
b3dDb29yZCA9IFtbbV92aWV3IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpwb2ludF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgcmV0dXJuIEludFBvaW50KFttX3ZpZXcgY29udmVydFBvaW50OndpbmRv
d0Nvb3JkIGZyb21WaWV3Om5pbF0pOwogfQogICAgIApAQCAtNDMwLDEwICs0MjksOSBAQCBJbnRS
ZWN0IFBhZ2VDbGllbnRJbXBsOjpyb290Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3Qp
CiB7CiAgICAgTlNSZWN0IHRlbXBSZWN0ID0gcmVjdDsKICAgICB0ZW1wUmVjdCA9IFttX3ZpZXcg
Y29udmVydFJlY3Q6dGVtcFJlY3QgdG9WaWV3Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICB0ZW1wUmVjdC5vcmlnaW4gPSBbW21fdmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46
dGVtcFJlY3Qub3JpZ2luXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVj
dCh0ZW1wUmVjdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0KaW5kZXggNWE2YmZjMzNjZWYy
ZDIwNmE5ZTA2ZDE1ZGRmMWM4N2NjMzcxMjQ1Ni4uYjYwYTU1Yzk1YWViMmVjZmE5MDM4Y2ZkNjE3
Yzc3ZjIxOWIxOTc2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0KQEAgLTI2NSwxMiArMjY1LDEx
IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3JlYXRlSW1hZ2VXaXRoQ29waWVkRGF0
YShDR0ltYWdlUmVmIHNvdXJjZUltYWdlKQogICAgIC8vIGZ1dHVyZSBvdmVyaGVhZC4KICAgICB3
ZWJWaWV3Q29udGVudHMgPSBjcmVhdGVJbWFnZVdpdGhDb3BpZWREYXRhKHdlYlZpZXdDb250ZW50
cy5nZXQoKSk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIFNjcmVlbiB1cGRhdGVzIHRv
IGJlIHJlLWVuYWJsZWQgaW4gX3N0YXJ0RW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0
aW9uOgogICAgIE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKICAgICBbW3NlbGYgd2luZG93XSBz
ZXRBdXRvZGlzcGxheTpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBbc2VsZiBfbWFuYWdlcl0tPnNh
dmVTY3JvbGxQb3NpdGlvbigpOwogICAgIF9zYXZlZFRvcENvbnRlbnRJbnNldCA9IF9wYWdlLT50
b3BDb250ZW50SW5zZXQoKTsKQEAgLTMyNSwxMSArMzI0LDEwIEBAIHN0YXRpYyBjb25zdCBmbG9h
dCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTogS2VlcCBpbiBzeW5jIHdp
dGggbWVkCiAgICAgaWYgKGNvbXBsZXRlZCkgewogICAgICAgICBfZnVsbFNjcmVlblN0YXRlID0g
SW5GdWxsU2NyZWVuOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIC8vIFNjcmVl
biB1cGRhdGVzIHRvIGJlIHJlLWVuYWJsZWQgdGEgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBibG9j
ay4KICAgICAgICAgTlNEaXNhYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAg
ICAgICAgW3NlbGYgX21hbmFnZXJdLT5kaWRFbnRlckZ1bGxTY3JlZW4oKTsKICAgICAgICAgW3Nl
bGYgX21hbmFnZXJdLT5zZXRBbmltYXRpbmdGdWxsU2NyZWVuKGZhbHNlKTsKIApAQCAtMzQ3LDEw
ICszNDUsOSBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9XaWR0aCA9IDQ4MCArIDIwICsg
MjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogICAgICAgICAvLyBUcmFuc2l0aW9u
IHRvIGZ1bGxzY3JlZW4gZmFpbGVkLiBDbGVhbiB1cC4KICAgICAgICAgX2Z1bGxTY3JlZW5TdGF0
ZSA9IE5vdEluRnVsbFNjcmVlbjsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBb
W3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAg
ICAgX3BhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMoZmFsc2UpOwogCiAgICAgICAg
IE5TUmVzcG9uZGVyICpmaXJzdFJlc3BvbmRlciA9IFtbc2VsZiB3aW5kb3ddIGZpcnN0UmVzcG9u
ZGVyXTsKQEAgLTM2OSwxMCArMzY2LDkgQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lk
dGggPSA0ODAgKyAyMCArIDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKICAgICAg
ICAgW3NlbGYgX21hbmFnZXJdLT5zZXRBbmltYXRpbmdGdWxsU2NyZWVuKGZhbHNlKTsKICAgICB9
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogCiAgICAgaWYgKF9yZXF1ZXN0ZWRFeGl0RnVsbFNjcmVlbikgewogICAgICAgICBf
cmVxdWVzdGVkRXhpdEZ1bGxTY3JlZW4gPSBOTzsKQEAgLTQwMiwxMiArMzk4LDExIEBAIHN0YXRp
YyBjb25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTogS2Vl
cCBpbiBzeW5jIHdpdGggbWVkCiAKICAgICBbX3dlYlZpZXdQbGFjZWhvbGRlciBzZXRFeGl0V2Fy
bmluZ1Zpc2libGU6Tk9dOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBTY3JlZW4gdXBk
YXRlcyB0byBiZSByZS1lbmFibGVkIGluIF9zdGFydEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0
aER1cmF0aW9uOiBvciBiZWdhbkV4aXRGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTpmaW5hbEZy
YW1lOgogICAgIE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKICAgICBbW3NlbGYgd2luZG93XSBz
ZXRBdXRvZGlzcGxheTpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICAvLyBTZWUgdGhlIHJlbGF0ZWQg
Y29tbWVudCBpbiBlbnRlckZ1bGxTY3JlZW46CiAgICAgLy8gV2Ugd2lsbCByZXN1bWUgdGhlIG5v
cm1hbCBiZWhhdmlvciBpbiBfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlv
bjoKQEAgLTQzNywxMCArNDMyLDkgQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGgg
PSA0ODAgKyAyMCArIDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKICAgICAgICAg
Ly8gQmVjYXVzZSB3ZSBhcmUgYnJlYWtpbmcgdGhlIG5vcm1hbCBhbmltYXRpb24gcGF0dGVybiwg
cmUtZW5hYmxlIHNjcmVlbiB1cGRhdGVzCiAgICAgICAgIC8vIGFzIGV4aXRGdWxsU2NyZWVuIGhh
cyBkaXNhYmxlZCB0aGVtLCBidXQgX3N0YXJ0RXhpdEZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVy
YXRpb246CiAgICAgICAgIC8vIHdpbGwgbmV2ZXIgYmUgY2FsbGVkLgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgfQogCiAgICAgW1tzZWxmIHdpbmRvd10gZXhpdEZ1bGxTY3JlZW5Nb2RlOnNlbGZdOwpA
QCAtNDYzLDIwICs0NTcsMTggQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0
ODAgKyAyMCArIDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKIAogICAgIE5TUmVz
cG9uZGVyICpmaXJzdFJlc3BvbmRlciA9IFtbc2VsZiB3aW5kb3ddIGZpcnN0UmVzcG9uZGVyXTsK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5h
YmxlZCBpbiBjb21wbGV0ZUZpbmlzaEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uQWZ0ZXJSZXBhaW50
LgogICAgIE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBfcGFnZS0+
c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyh0cnVlKTsKICAgICBbW3NlbGYgd2luZG93XSBv
cmRlck91dDpzZWxmXTsKICAgICBOU1ZpZXcgKmNvbnRlbnRWaWV3ID0gW1tzZWxmIHdpbmRvd10g
Y29udGVudFZpZXddOwogICAgIGNvbnRlbnRWaWV3LmhpZGRlbiA9IFlFUzsKICAgICBbX2JhY2tn
cm91bmRWaWV3LmdldCgpLmxheWVyIHJlbW92ZUFsbEFuaW1hdGlvbnNdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgW1tfd2ViVmlld1BsYWNlaG9sZGVyIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6
Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogCiAgICAgW3NlbGYgX3JlcGxhY2VWaWV3Ol93ZWJWaWV3UGxhY2Vo
b2xkZXIuZ2V0KCkgd2l0aDpfd2ViVmlld107CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCkBAIC01MDksMTYgKzUwMSwxNCBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9XaWR0
aCA9IDQ4MCArIDIwICsgMjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogLSAodm9p
ZCljb21wbGV0ZUZpbmlzaEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uQWZ0ZXJSZXBhaW50CiB7CiAg
ICAgX3JlcGFpbnRDYWxsYmFjayA9IG51bGxwdHI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBb
W193ZWJWaWV3IHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBb
W193ZWJWaWV3IHdpbmRvd10gZGlzcGxheUlmTmVlZGVkXTsKICAgICBfcGFnZS0+c2V0U3VwcHJl
c3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0Vu
YWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogLSAodm9pZClwZXJmb3JtQ2xv
c2U6KGlkKXNlbmRlcgpAQCAtNzI3LDE1ICs3MTcsMTMgQEAgc3RhdGljIENBQW5pbWF0aW9uICpm
YWRlQW5pbWF0aW9uKENGVGltZUludGVydmFsIGR1cmF0aW9uLCBBbmltYXRpb25EaXJlY3Rpb24g
ZGkKICAgICBbd2luZG93IG1ha2VGaXJzdFJlc3BvbmRlcjpfd2ViVmlld107CiAKICAgICBfcGFn
ZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpZRVNdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgIFtbc2VsZiB3aW5kb3ddIGRpc3BsYXlJZk5lZWRlZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogLSAodm9pZClf
c3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwp
ZHVyYXRpb24KQEAgLTc1OCwxNSArNzQ2LDEzIEBAIHN0YXRpYyBDQUFuaW1hdGlvbiAqZmFkZUFu
aW1hdGlvbihDRlRpbWVJbnRlcnZhbCBkdXJhdGlvbiwgQW5pbWF0aW9uRGlyZWN0aW9uIGRpCiAg
ICAgW19iYWNrZ3JvdW5kVmlldy5nZXQoKS5sYXllciBhZGRBbmltYXRpb246ZmFkZUFuaW1hdGlv
bihkdXJhdGlvbiwgQW5pbWF0ZU91dCkgZm9yS2V5OkAiZnVsbHNjcmVlbiJdOwogCiAgICAgX3Bh
Z2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMoZmFsc2UpOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICBbW3NlbGYgd2luZG93XSBkaXNwbGF5SWZOZWVkZWRdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgTlNFbmFibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKHZvaWQp
X3dhdGNoZG9nVGltZXJGaXJlZDooTlNUaW1lciAqKXRpbWVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0KaW5kZXggMWZkYTdkYmU1ZGYxZmY3ZGIxNzcw
Y2FmYjE0MGRmZjU2MGY1YTM4Yy4uZDIwNmZmZTA4OTUzNGMzMmYzZTIxNjIyMDlkZWJjNzIwODc1
ZWJmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5t
bQpAQCAtNzgsMTYgKzc4LDE0IEBAIHN0YXRpYyBCT09MIGlzRm9yY2luZ1ByZXZpZXdVcGRhdGU7
CiAKIC0gKHZvaWQpX3NldEF1dG9kaXNwbGF5OihCT09MKW5ld1N0YXRlCiB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICBpZiAoIW5ld1N0YXRlICYmIFtbX3drVmlldyB3aW5kb3ddIGlzQXV0b2Rp
c3BsYXldKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAgICAgICBbX3drVmlldyBk
aXNwbGF5SWZOZWVkZWRdOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1tfd2tWaWV3IHdpbmRvd10gc2V0QXV0b2Rp
c3BsYXk6bmV3U3RhdGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgLy8gRm9yIHNvbWUgcmVhc29uLCBw
YWludGluZyBkb2Vzbid0IGhhcHBlbiBmb3IgYSBsb25nIHRpbWUgd2l0aG91dCB0aGlzIGNhbGws
IDxyZGFyOi8vcHJvYmxlbS84OTc1MjI5Pi4KICAgICBpZiAobmV3U3RhdGUpCkBAIC00NTQsMTkg
KzQ1MiwxNyBAQCBzdGF0aWMgTlNTdHJpbmcgKmxpbmtEZXN0aW5hdGlvbk5hbWUoUERGRG9jdW1l
bnQgKmRvY3VtZW50LCBQREZEZXN0aW5hdGlvbiAqZGVzdAogICAgIH0KIAogICAgIE5TR3JhcGhp
Y3NDb250ZXh0ICpuc0dyYXBoaWNzQ29udGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50
Q29udGV4dF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9
IHN0YXRpY19jYXN0PENHQ29udGV4dFJlZj4oW25zR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzUG9y
dF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogCiAgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjb250ZXh0KTsKICAg
ICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dCwgcG9pbnQueCwgcG9pbnQueSk7CiAgICAg
Q0dDb250ZXh0U2NhbGVDVE0oY29udGV4dCwgX3RvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywg
LV90b3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcpOwogICAgIENHQ29udGV4dFRyYW5zbGF0ZUNU
TShjb250ZXh0LCAwLCAtW3BkZlBhZ2UgYm91bmRzRm9yQm94OmtQREZEaXNwbGF5Qm94TWVkaWFC
b3hdLnNpemUuaGVpZ2h0KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtwZGZQYWdlIGRyYXdX
aXRoQm94OmtQREZEaXNwbGF5Qm94TWVkaWFCb3hdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgQ0dBZmZp
bmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0gQ0dDb250ZXh0R2V0Q1RNKGNvbnRleHQpOwogCkBAIC00
NzksMTAgKzQ3NSw5IEBAIHN0YXRpYyBOU1N0cmluZyAqbGlua0Rlc3RpbmF0aW9uTmFtZShQREZE
b2N1bWVudCAqZG9jdW1lbnQsIFBERkRlc3RpbmF0aW9uICpkZXN0CiAgICAgICAgIGlmICghW2Fu
bm90YXRpb24gaXNLaW5kT2ZDbGFzczpXZWJLaXQ6OnBkZkFubm90YXRpb25MaW5rQ2xhc3MoKV0p
CiAgICAgICAgICAgICBjb250aW51ZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAg
ICBQREZBbm5vdGF0aW9uTGluayAqbGlua0Fubm90YXRpb24gPSAoUERGQW5ub3RhdGlvbkxpbmsg
Kilhbm5vdGF0aW9uOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgTlNVUkwgKnVybCA9IFtsaW5r
QW5ub3RhdGlvbiBVUkxdOwogICAgICAgICBDR1JlY3QgdHJhbnNmb3JtZWRSZWN0ID0gQ0dSZWN0
QXBwbHlBZmZpbmVUcmFuc2Zvcm0oTlNSZWN0VG9DR1JlY3QoW2xpbmtBbm5vdGF0aW9uIGJvdW5k
c10pLCB0cmFuc2Zvcm0pOwogCkBAIC01NDUsMTAgKzU0MCw5IEBAIHN0YXRpYyBOU1N0cmluZyAq
bGlua0Rlc3RpbmF0aW9uTmFtZShQREZEb2N1bWVudCAqZG9jdW1lbnQsIFBERkRlc3RpbmF0aW9u
ICpkZXN0CiAgICAgfQogCiAgICAgUmVmUHRyPFdlYktpdDo6U2hhcmVhYmxlQml0bWFwPiBiaXRt
YXAgPSBwYWdlUHJldmlld0l0ZXJhdG9yLT52YWx1ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0NvbnRleHRSZWY+KFtbTlNH
cmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogCiAgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0IGNvbnRleHQoY2dDb250ZXh0KTsKICAg
ICBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7
CkBAIC01ODksMTAgKzU4Myw5IEBAIHN0YXRpYyBOU1N0cmluZyAqbGlua0Rlc3RpbmF0aW9uTmFt
ZShQREZEb2N1bWVudCAqZG9jdW1lbnQsIFBERkRlc3RpbmF0aW9uICpkZXN0CiAgICAgICAgICAg
ICAgICAgaWYgKCFbYW5ub3RhdGlvbiBpc0tpbmRPZkNsYXNzOldlYktpdDo6cGRmQW5ub3RhdGlv
bkxpbmtDbGFzcygpXSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgICAgIFBERkFubm90YXRpb25MaW5r
ICpsaW5rQW5ub3RhdGlvbiA9IChQREZBbm5vdGF0aW9uTGluayAqKWFubm90YXRpb247Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICAgICAgaWYgKGxpbmtBbm5vdGF0aW9uLlVS
TCkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tCmlu
ZGV4IGFlMzY0MWVmNzk3NDYzYTE4MGMwZmIyNjc0YjAwMmFiMTFhODc5NjIuLmJlOTZjYTI4MDBh
YTE1MDRlNTgzNjgyN2Q3ZGNmMDZmNzc0ZjY2ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbQpAQCAt
MTA2LDEwICsxMDYsOSBAQAogCiAtIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooTlNFdmVudCAq
KWV2ZW50IHVzaW5nTGVnYWN5Q29jb2FUZXh0SW5wdXQ6KEJPT0wpdXNpbmdMZWdhY3lDb2NvYVRl
eHRJbnB1dCBzdHJpbmc6KE5TU3RyaW5nICoqKXN0cmluZwogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgQk9PTCBoYWRNYXJrZWRUZXh0ID0gW19pbnB1dFRleHRWaWV3IGhhc01hcmtlZFRleHRd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogIAogICAgICpzdHJpbmcgPSBuaWw7CiAKQEAgLTEyNCwxMCArMTIzLDkg
QEAKICAgICBpZiAoIVtbX2lucHV0VGV4dFZpZXcgaW5wdXRDb250ZXh0XSBoYW5kbGVFdmVudDpl
dmVudF0pCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IGlmIChbX2lucHV0VGV4dFZpZXcgaGFzTWFya2VkVGV4dF0pIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgICAgIC8vIERvbid0IHNob3cgdGhlIGlucHV0IG1ldGhvZCB3aW5kb3cgZm9yIGRlYWQga2V5
cwogICAgICAgICBpZiAoW1tldmVudCBjaGFyYWN0ZXJzXSBsZW5ndGhdID4gMCkKICAgICAgICAg
ICAgIFtzZWxmIG9yZGVyRnJvbnQ6bmlsXTsKQEAgLTE2MSwxMCArMTU5LDkgQEAKIAogLSAoQk9P
TClfaGFzTWFya2VkVGV4dAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgcmV0dXJuIFtfaW5w
dXRUZXh0VmlldyBoYXNNYXJrZWRUZXh0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCmlu
ZGV4IDhiNWRiMTU5NWFiMzU3ZmVjOTRkY2U3N2M3NjRlYWRjYmI2MzU2MGQuLjY4NGIxMzY3ODYx
MzA5MDg0Y2MxNDI1ZmMyMGVhNDVkODZmY2Y3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KQEAgLTE4OCwxMCArMTg4LDkg
QEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0
JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHQKICAgICBbTlNBcHAgcG9zdEV2ZW50OmZha2VFdmVu
dCBhdFN0YXJ0OllFU107CiAgICAgZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsb2NhdGlvbjpbW21fd2ViVmlldyB3aW5kb3ddCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAg
ICAgICAgICAgICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0
aW9uXV0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFn
czpbaW5pdGlhdGluZ05TRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdOU0V2ZW50IHRpbWVzdGFtcF0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6W2luaXRpYXRpbmdOU0V2
ZW50IHdpbmRvd051bWJlcl0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQppbmRl
eCBlZGNmNTMyYzg1YWFmOGM2YjNhNTBhZTNkNjRiZTA2ZTlhYTBlMzQwLi4yOTBiNjVjYzAxNjNk
YmIyYTRmMWYwOTMyZmY2ZjA3Y2Y2MmNlZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1
Z2luTWFjLm1tCkBAIC0zNzMsMTAgKzM3Myw5IEBAIHN0YXRpYyBpbmxpbmUgRXZlbnRSZWNvcmQg
aW5pdGlhbGl6ZUV2ZW50UmVjb3JkKEV2ZW50S2luZCBldmVudEtpbmQpCiAKICAgICBldmVudFJl
Y29yZC53aGF0ID0gZXZlbnRLaW5kOwogICAgIGV2ZW50UmVjb3JkLm1lc3NhZ2UgPSAwOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgZXZlbnRSZWNvcmQud2hlbiA9IFRpY2tDb3VudCgpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgIGV2ZW50UmVjb3JkLndoZXJlID0gUG9pbnQoKTsKICAgICBldmVudFJlY29y
ZC5tb2RpZmllcnMgPSAwOwogCkBAIC0xMDQzLDEwICsxMDQyLDkgQEAgdm9pZCBOZXRzY2FwZVBs
dWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCiAKICAg
ICAgICAgLy8gU2V0IHRoZSBzY3JpcHQgY29kZSBhcyB0aGUga2V5Ym9hcmQgc2NyaXB0LiBOb3Jt
YWxseSBDYXJib24gZG9lcyB0aGlzIHdoZW5ldmVyIHRoZSBpbnB1dCBzb3VyY2UgY2hhbmdlcy4K
ICAgICAgICAgLy8gSG93ZXZlciwgdGhpcyBpcyBvbmx5IGRvbmUgZm9yIHRoZSBwcm9jZXNzIHRo
YXQgaGFzIHRoZSBrZXlib2FyZCBmb2N1cy4gV2UgY2hlYXQgYW5kIGRvIGl0IGhlcmUgaW5zdGVh
ZC4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgU2V0U2NyaXB0TWFuYWdlclZhcmlh
YmxlKHNtS2V5U2NyaXB0LCBzY3JpcHRDb2RlKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIAog
ICAgICAgICBFdmVudFJlY29yZCBldmVudCA9IGluaXRpYWxpemVFdmVudFJlY29yZChrZXlEb3du
KTsKICAgICAgICAgZXZlbnQubW9kaWZpZXJzID0gMDsKQEAgLTExMjEsMTEgKzExMTksMTAgQEAg
c3RhdGljIHZvaWQgbWFrZUNHTFByZXNlbnRMYXllck9wYXF1ZShDQUxheWVyICpwbHVnaW5Sb290
TGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIENsYXNzIGNnbFByZXNlbnRMYXllckNsYXNz
ID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJDR0xQcmVzZW50TGF5ZXIiKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIGlmICghW2NnbFByZXNlbnRMYXllckNsYXNzIGlzU3ViY2xhc3NPZkNsYXNzOltD
QU9wZW5HTExheWVyIGNsYXNzXV0pCiAgICAgICAgIHJldHVybjsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAg
IENBTGF5ZXIgKmxheWVyID0gW3N1YmxheWVycyBvYmplY3RBdEluZGV4OjBdOwogICAgIGlmICgh
W2xheWVyIGlzS2luZE9mQ2xhc3M6Y2dsUHJlc2VudExheWVyQ2xhc3NdKQpAQCAtMTE4MSwxMSAr
MTE3OCwxMCBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luOjpudWxsRXZlbnRUaW1lckZpcmVkKCkKICAg
ICBldmVudC53aGVyZS52ID0gbW91c2VQb3NpdGlvbi55OwogCiAgICAgZXZlbnQubW9kaWZpZXJz
ID0gR2V0Q3VycmVudEtleU1vZGlmaWVycygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYg
KCFCdXR0b24oKSkKICAgICAgICAgZXZlbnQubW9kaWZpZXJzIHw9IGJ0blN0YXRlOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogCiAgICAgTlBQX0hhbmRsZUV2ZW50KCZldmVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCA0Y2FhNmNjMGY2
MDQ1MGMwM2IyMmEyODRkZDEzYWYyNWVmZDZlMzg2Li5kYTA0MTA3MmEzZDYwY2NiNjFhYTgwYTFj
NGMzMmIyNGQ4OTYyOTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTMxNiwxMCArMzE2LDkgQEAgc3RhdGljIGNvbnN0IGlu
dCBkZWZhdWx0U2Nyb2xsTWFnbml0dWRlVGhyZXNob2xkRm9yUGFnZUZsaXAgPSAyMDsKICAgICBp
ZiAoV2ViS2l0OjpQREZQbHVnaW5Bbm5vdGF0aW9uKiBhY3RpdmVBbm5vdGF0aW9uID0gX3BkZlBs
dWdpbi0+YWN0aXZlQW5ub3RhdGlvbigpKSB7CiAgICAgICAgIGlmIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlKiBleGlzdGluZ0NhY2hlID0gX3BkZlBsdWdpbi0+YXhPYmplY3RDYWNoZSgpKSB7CiAg
ICAgICAgICAgICBpZiAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gZXhp
c3RpbmdDYWNoZS0+Z2V0T3JDcmVhdGUoYWN0aXZlQW5ub3RhdGlvbi0+ZWxlbWVudCgpKSkKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgICAgIHJldHVybiBbb2Jq
ZWN0LT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiX0FYQXNzb2NpYXRl
ZFBsdWdpblBhcmVudCJdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICB9CiAgICAg
fQogICAgIHJldHVybiBuaWw7CkBAIC00MjQsMTAgKzQyMyw5IEBAIHN0YXRpYyBjb25zdCBpbnQg
ZGVmYXVsdFNjcm9sbE1hZ25pdHVkZVRocmVzaG9sZEZvclBhZ2VGbGlwID0gMjA7CiAKIC0gKHZv
aWQpd3JpdGVJdGVtc1RvUGFzdGVib2FyZDooTlNBcnJheSAqKWl0ZW1zIHdpdGhUeXBlczooTlNB
cnJheSAqKXR5cGVzCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBfcGRmUGx1Z2luLT53cml0
ZUl0ZW1zVG9QYXN0ZWJvYXJkKE5TR2VuZXJhbFBib2FyZCwgaXRlbXMsIHR5cGVzKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIH0KIAogLSAodm9pZClzaG93RGVmaW5pdGlvbkZvckF0dHJpYnV0ZWRTdHJpbmc6KE5T
QXR0cmlidXRlZFN0cmluZyAqKXN0cmluZyBhdFBvaW50OihDR1BvaW50KXBvaW50CkBAIC0xNjUw
LDExICsxNjQ4LDEwIEBAIGJvb2wgUERGUGx1Z2luOjpoYW5kbGVFZGl0aW5nQ29tbWFuZChjb25z
dCBTdHJpbmcmIGNvbW1hbmROYW1lLCBjb25zdCBTdHJpbmcmIGFyCiAgICAgICAgIFttX3BkZkxh
eWVyQ29udHJvbGxlciBzZWxlY3RBbGxdOwogICAgIGVsc2UgaWYgKGNvbW1hbmROYW1lID09ICJ0
YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24iKSB7CiAgICAgICAgIE5TU3RyaW5nICpzdHJpbmcg
PSBbbV9wZGZMYXllckNvbnRyb2xsZXIgY3VycmVudFNlbGVjdGlvbl0uc3RyaW5nOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgICAgICBpZiAoc3RyaW5nLmxlbmd0aCkKICAgICAgICAgICAg
IHdyaXRlSXRlbXNUb1Bhc3RlYm9hcmQoTlNGaW5kUGJvYXJkLCBAWyBbc3RyaW5nIGRhdGFVc2lu
Z0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSBdLCBAWyBOU1Bhc3RlYm9hcmRUeXBlU3Ry
aW5nIF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE3
MzQsMTMgKzE3MzEsMTIgQEAgdm9pZCBQREZQbHVnaW46OnNldEFjdGl2ZUFubm90YXRpb24oUERG
QW5ub3RhdGlvbiAqYW5ub3RhdGlvbikKICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uLT5jb21t
aXQoKTsKIAogICAgIGlmIChhbm5vdGF0aW9uKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgICAgIGlmIChbYW5ub3RhdGlvbiBpc0tpbmRPZkNsYXNzOnBkZkFubm90YXRpb25UZXh0V2lk
Z2V0Q2xhc3MoKV0gJiYgc3RhdGljX2Nhc3Q8UERGQW5ub3RhdGlvblRleHRXaWRnZXQgKj4oYW5u
b3RhdGlvbikuaXNSZWFkT25seSkgewogICAgICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uID0g
bnVsbHB0cjsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
IAogICAgICAgICBtX2FjdGl2ZUFubm90YXRpb24gPSBQREZQbHVnaW5Bbm5vdGF0aW9uOjpjcmVh
dGUoYW5ub3RhdGlvbiwgbV9wZGZMYXllckNvbnRyb2xsZXIuZ2V0KCksIHRoaXMpOwogICAgICAg
ICBtX2FjdGl2ZUFubm90YXRpb24tPmF0dGFjaChtX2Fubm90YXRpb25Db250YWluZXIuZ2V0KCkp
OwpAQCAtMjA3OCwxMCArMjA3NCw5IEBAIHN0ZDo6dHVwbGU8U3RyaW5nLCBQREZTZWxlY3Rpb24g
KiwgTlNEaWN0aW9uYXJ5ICo+IFBERlBsdWdpbjo6bG9va3VwVGV4dEF0TG9jYXRpCiAgICAgICAg
IGlmICghTlNQb2ludEluUmVjdChwb2ludEluUGFnZVNwYWNlLCBib3VuZHMpKQogICAgICAgICAg
ICAgY29udGludWU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgUERGQW5ub3Rh
dGlvbkxpbmsgKmxpbmtBbm5vdGF0aW9uID0gKFBERkFubm90YXRpb25MaW5rICopYW5ub3RhdGlv
bjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIE5TVVJMICp1cmwgPSBsaW5rQW5ub3RhdGlvbi5V
Ukw7CiAgICAgICAgIGlmICghdXJsKQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5u
b3RhdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bkNob2ljZUFubm90YXRpb24uaAppbmRleCAwZjc2NzVjNWQyMzFkNTdkOTJiZDYyNzkzNmU5ZTAy
NGQyZTFjNjhkLi5hODFkZGY2M2E0ZTYxZGQzMGM3YjdkOTE5MDc2YjNmOGEyZmMzZWRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hv
aWNlQW5ub3RhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLmgKQEAgLTUzLDEwICs1Myw5IEBAIHByaXZhdGU6
CiAKICAgICBSZWY8V2ViQ29yZTo6RWxlbWVudD4gY3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQoKSBv
dmVycmlkZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgUERGQW5ub3RhdGlvbkNob2ljZVdp
ZGdldCAqY2hvaWNlQW5ub3RhdGlvbigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFBERkFubm90YXRp
b25DaG9pY2VXaWRnZXQgKj4oYW5ub3RhdGlvbigpKTsgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCmluZGV4
IDU4MjVmZDNlY2FiNDYxNTRmOGY5ZDA1MDEzZjY1NGFjOGM2MTU4Y2YuLjEwMGEwMzY2YWY0NGY5
YTEzZDk4OTYxYzE2YzEzN2M2MWQwZTk2ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0
aW9uLm1tCkBAIC02NywxMCArNjcsOSBAQCB2b2lkIFBERlBsdWdpbkNob2ljZUFubm90YXRpb246
OmNvbW1pdCgpCiBSZWY8RWxlbWVudD4gUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbjo6Y3JlYXRl
QW5ub3RhdGlvbkVsZW1lbnQoKQogewogICAgIERvY3VtZW50JiBkb2N1bWVudCA9IHBhcmVudCgp
LT5kb2N1bWVudCgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgUERGQW5ub3RhdGlvbkNob2lj
ZVdpZGdldCAqY2hvaWNlQW5ub3RhdGlvbiA9IHRoaXMtPmNob2ljZUFubm90YXRpb24oKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKIAogICAgIGF1dG8gZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoc2Vs
ZWN0VGFnLCBmYWxzZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLmgKaW5kZXggOTJkNDAy
M2NkNzBlOTRkOThkNGJiNTgxZTMwYTdkMjg1YjE5ZDlkYy4uMzZkM2EzZDIxZWYxZmVjNWY0NjBl
NDg5ZjgwNTQ4YjdmM2ZiYzJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLmgKQEAgLTYw
LDEwICs2MCw5IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgYm9vbCBoYW5kbGVFdmVudChX
ZWJDb3JlOjpFdmVudCYpIG92ZXJyaWRlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBQREZB
bm5vdGF0aW9uVGV4dFdpZGdldCAqdGV4dEFubm90YXRpb24oKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxQREZBbm5vdGF0aW9uVGV4dFdpZGdldCAqPihhbm5vdGF0aW9uKCkpOyB9Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3Rh
dGlvbi5tbQppbmRleCAyYzZhNzZjNGIwZTExNTUxMDE5NWZmZDY5NzQ4NjQ2NmE3NWYxMjY4Li5i
ZTA2MDNmMmMxZGE0YTBjNTg5ZjU1OGMzZjhhZTRjNGIyYTNlNzE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24u
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRl
eHRBbm5vdGF0aW9uLm1tCkBAIC04MCwxMCArODAsOSBAQCBQREZQbHVnaW5UZXh0QW5ub3RhdGlv
bjo6flBERlBsdWdpblRleHRBbm5vdGF0aW9uKCkKIFJlZjxFbGVtZW50PiBQREZQbHVnaW5UZXh0
QW5ub3RhdGlvbjo6Y3JlYXRlQW5ub3RhdGlvbkVsZW1lbnQoKQogewogICAgIERvY3VtZW50JiBk
b2N1bWVudCA9IHBhcmVudCgpLT5kb2N1bWVudCgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
UERGQW5ub3RhdGlvblRleHRXaWRnZXQgKnRleHRBbm5vdGF0aW9uID0gdGhpcy0+dGV4dEFubm90
YXRpb24oKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBib29sIGlzTXVsdGlsaW5lID0gdGV4dEFubm90YXRp
b24uaXNNdWx0aWxpbmU7CiAKICAgICBhdXRvIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KGlzTXVsdGlsaW5lID8gdGV4dGFyZWFUYWcgOiBpbnB1dFRhZywgZmFsc2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0
aXZlVGV4dENsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oCmluZGV4IDQ1MjBlOWQ2OWJjODAyZjZlYmRhNjVi
Mjk3ZThhOGQ0NThjMTk3MjguLjk0OWM2MmFlYzY5NTg5M2EzMmM4MTIxYWE5N2M3ZDU4ZTViMGU2
NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgKQEAgLTUxLDE0ICs1MSwx
MSBAQCBwdWJsaWM6CiAjZW5kaWYKIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TKQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNpZiBkZWZpbmVkKF9faGFzX3dhcm5pbmcpICYmIF9f
aGFzX3dhcm5pbmcoIi1XdW51c2VkLXByaXZhdGUtZmllbGQiKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXByaXZhdGUtZmllbGQiCi0jZW5kaWYKKyAgICBJR05P
UkVfQ0xBTkdfV0FSTklOR19CRUdJTigiLVd1bnVzZWQtcHJpdmF0ZS1maWVsZCIpCiAjZW5kaWYK
ICAgICBXZWJQYWdlICptX3BhZ2U7CiAjaWYgUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9DTEFOR19XQVJOSU5HX0VORAogI2VuZGlmCiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYkRyYWdDbGllbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KaW5kZXggYTg3N2U3ZmNmYTBhMzk4Nzk3Nzcw
YTE0MzQ0OTA1ZmY5NzMwMzJmMC4uM2JkN2QxZmJiMzhjYjIwOWFmZGI3MWRlYjE4YjlkOTFlZGQ5
MTMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQpAQCAtNzIsMTAgKzcyLDkgQEAg
c3RhdGljIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGNvbnZlcnRJbWFnZVRvQml0bWFwKE5TSW1h
Z2UgKmltYWdlLCBjb25zdCBJbnRTaXoKIAogICAgIFJldGFpblB0cjxOU0dyYXBoaWNzQ29udGV4
dD4gc2F2ZWRDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250
ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0Omdy
YXBoaWNzQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCkgZmxpcHBlZDpZRVNdXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAgICBbaW1hZ2UgZHJhd0luUmVjdDpOU01ha2VSZWN0KDAsIDAsIGJpdG1hcC0+c2l6ZSgp
LndpZHRoKCksIGJpdG1hcC0+c2l6ZSgpLmhlaWdodCgpKSBmcm9tUmVjdDpOU1plcm9SZWN0IG9w
ZXJhdGlvbjpOU0NvbXBvc2l0aW5nT3BlcmF0aW9uU291cmNlT3ZlciBmcmFjdGlvbjoxIHJlc3Bl
Y3RGbGlwcGVkOllFUyBoaW50czpuaWxdOwogCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1
cnJlbnRDb250ZXh0OnNhdmVkQ29udGV4dC5nZXQoKV07CkBAIC0xMTMsMTAgKzExMiw5IEBAIHN0
YXRpYyBXZWJDb3JlOjpDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2UoRWxlbWVudCYgZWxlbWVudCkK
IAogdm9pZCBXZWJEcmFnQ2xpZW50OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkTmFtZSwgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgbGFiZWwsIEZyYW1lKikKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEFT
U0VSVChwYXN0ZWJvYXJkTmFtZSA9PSBTdHJpbmcoTlNEcmFnUGJvYXJkKSk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAKICAgICBXZWJDb3JlOjpDYWNoZWRJbWFnZSogaW1hZ2UgPSBjYWNoZWRJbWFnZShlbGVtZW50
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dL
QWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQppbmRleCBm
ZTk0ZTg1ZTQ3MGY0YTg3ZTU5ZmU5ZDdlY2Y4NDQyZmVlNTdjZjMzLi5mZDliMTg1Y2ZmMGJlNmQw
YzlmYTg2MjZjOTBjY2ZmYzk1NjAzYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2Vi
UGFnZU9iamVjdE1hYy5tbQpAQCAtMTkyLDggKzE5Miw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiAgICAgcmV0dXJuIFlFUzsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIC0gKGlkKWFjY2Vzc2li
aWxpdHlIaXRUZXN0OihOU1BvaW50KXBvaW50CiB7CiAgICAgaWYgKCFtX3BhZ2UpCkBAIC0yMTUs
NyArMjE0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogICAgIHJldHVybiBbW3NlbGYg
YWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFwcGVyXSBhY2Nlc3NpYmlsaXR5SGl0VGVzdDpjb252
ZXJ0ZWRQb2ludF07CiB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IGRhN2M5OGY2OGM0ODE4
OTA3M2RiZWE0NzQ4NzFmZjJjYWI2YTU4MWEuLmM4ZDQ4MGU1YjkzNjM5MmM4ZjE3NjM3MTBlN2E3
N2VmODRiNWU0YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XZWJQYWdlTWFjLm1tCkBAIC04MTgsMTEgKzgxOCwxMCBAQCBzdGF0aWMgdm9pZCBkcmF3
UERGUGFnZShQREZEb2N1bWVudCAqcGRmRG9jdW1lbnQsIENGSW5kZXggcGFnZUluZGV4LCBDR0Nv
bnRleHRSZQogICAgIH0KIAogICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzYXZlR3JhcGhpY3NTdGF0
ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVu
dENvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1Bv
cnQ6Y29udGV4dCBmbGlwcGVkOk5PXV07CiAgICAgW3BkZlBhZ2UgZHJhd1dpdGhCb3g6a1BERkRp
c3BsYXlCb3hDcm9wQm94XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbTlNHcmFwaGljc0NvbnRleHQgcmVz
dG9yZUdyYXBoaWNzU3RhdGVdOwogCiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0g
Q0dDb250ZXh0R2V0Q1RNKGNvbnRleHQpOwpAQCAtODMxLDEwICs4MzAsOSBAQCBzdGF0aWMgdm9p
ZCBkcmF3UERGUGFnZShQREZEb2N1bWVudCAqcGRmRG9jdW1lbnQsIENGSW5kZXggcGFnZUluZGV4
LCBDR0NvbnRleHRSZQogICAgICAgICBpZiAoIVthbm5vdGF0aW9uIGlzS2luZE9mQ2xhc3M6cGRm
QW5ub3RhdGlvbkxpbmtDbGFzcygpXSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFBERkFubm90YXRpb25MaW5rICpsaW5rQW5ub3RhdGlv
biA9IChQREZBbm5vdGF0aW9uTGluayAqKWFubm90YXRpb247Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAg
ICAgICBOU1VSTCAqdXJsID0gW2xpbmtBbm5vdGF0aW9uIFVSTF07CiAgICAgICAgIGlmICghdXJs
KQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DYXJib24vQ2FyYm9uVXRpbHMubSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJv
bi9DYXJib25VdGlscy5tCmluZGV4IGI3OTVlOWI0MmE2ZTcxNDg1ZGQxNzdjY2Q5ZGRjNzNhNDk0
N2UwZGYuLmVjZDQ3ZTNhYzRlNjBlNjAzMDNiMmRiOThlMWNlZDFiMmI4YWI3MTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25VdGlscy5tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25VdGlscy5tCkBAIC04NywxMCArODcs
OSBAQCBzdGF0aWMgdW5zaWduZWQgZ2V0TlNBdXRvcmVsZWFzZVBvb2xDb3VudCh2b2lkKQogUG9v
bENsZWFuZXIoIEV2ZW50TG9vcFRpbWVyUmVmIGluVGltZXIsIEV2ZW50TG9vcElkbGVUaW1lck1l
c3NhZ2UgaW5TdGF0ZSwgdm9pZCAqaW5Vc2VyRGF0YSApCiB7CiAgICAgaWYgKCBpblN0YXRlID09
IGtFdmVudExvb3BJZGxlVGltZXJTdGFydGVkICkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Nhc3QtcXVhbCIKKyAg
ICAgICAgSUdOT1JFX1dBUk5JTkdfQkVHSU4oIi1XY2FzdC1xdWFsIikKICAgICAgICAgQ0ZTdHJp
bmdSZWYgbW9kZSA9IENGUnVuTG9vcENvcHlDdXJyZW50TW9kZSggKENGUnVuTG9vcFJlZilHZXRD
RlJ1bkxvb3BGcm9tRXZlbnRMb29wKCBHZXRDdXJyZW50RXZlbnRMb29wKCkgKSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HX0VORAogICAgICAg
ICBFdmVudExvb3BSZWYgdGhpc0xvb3AgPSBHZXRDdXJyZW50RXZlbnRMb29wICgpOwogICAgICAg
ICBpZiAoIENGRXF1YWwoIG1vZGUsIGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSApICYmIHRoaXNMb29w
ID09IHBvb2xMb29wKSB7CiAgICAgICAgICAgICB1bnNpZ25lZCBjdXJyZW50TnVtUG9vbHMgPSBn
ZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KCktMTsgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KaW5kZXgg
ZDE1MjJmM2YwMjNlZjBmNmRlMzM2MmJkYTNiMzA0OTQ3ODg4YzBiZi4uYjA5ZTA2YzI0OWZiZDA4
ZWVlN2Q2ZTkzNDc2NTkzMTc5NWNmMzU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0KQEAgLTE3NywxMCArMTc3LDkg
QEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVy
Q2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKICAgICAvLyBCdXQgbm93IHRoZSBub24tcmV0YWlu
ZWQgd2luZG93IGNsYXNzIGlzIGEgQ2FyYm9uIHNlY3JldCB0aGF0J3Mgbm90IGV2ZW4gaW4KICAg
ICAvLyBXaW5kb3dzUHJpdi5oOyBtYXliZSB3ZSdsbCBoYXZlIHRvIHJldmlzaXQgdGhpcyBpZiBz
b21lb25lIG5lZWRzIHRvIHVzZSBXZWJLaXQKICAgICAvLyBpbiBhIG5vbi1yZXRhaW5lZCB3aW5k
b3cuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBiYWNraW5nU3RvcmVUeXBlID0gTlNCYWNraW5n
U3RvcmVSZXRhaW5lZDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIC8vIEZpZ3VyZSBvdXQgdGhlIHdpbmRv
dydzIHN0eWxlIG1hc2suCiAgICAgc3R5bGVNYXNrID0gX05TQ2FyYm9uV2luZG93TWFzazsKQEAg
LTIwNSwxMCArMjA0LDkgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZl
bnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKICAgICAvLyBEbyBzb21l
IHN0YW5kYXJkIENvY29hIGluaXRpYWxpemF0aW9uLiAgVGhlIGRlZmVyIGFyZ3VtZW50J3MgdmFs
dWUgaXMgWUVTIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCAtW05TV2luZG93IF9jb21tb25Bd2FrZV0g
dG8gZ2V0IGNhbGxlZC4gIEl0IGRvZXNuJ3QgYXBwZWFyIHRoYXQgYW55IHJlbGV2YW50IE5TV2lu
ZG93IGNvZGUgY2hlY2tzIF93RmxhZ3MuZGVmZXJyZWQsIHNvIHdlIHNob3VsZCBiZSBhYmxlIHRv
IGdldCBhd2F5IHdpdGggdGhlIGxpZS4KICAgICBzZWxmID0gKENhcmJvbldpbmRvd0FkYXB0ZXIq
KVtzdXBlciBfaW5pdENvbnRlbnQ6bnVsbHB0ciBzdHlsZU1hc2s6c3R5bGVNYXNrIGJhY2tpbmc6
YmFja2luZ1N0b3JlVHlwZSBkZWZlcjpZRVMgY29udGVudFZpZXc6Y2FyYm9uV2luZG93Q29udGVu
dFZpZXddOwogICAgIGlmICghc2VsZikgcmV0dXJuIG5pbDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIGFzc2VydChfY29udGVudFZpZXcpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgLy8gUmVjb3JkIGFj
Y3VyYXRlbHkgd2hldGhlciBvciBub3QgdGhpcyB3aW5kb3cgaGFzIGEgc2hhZG93LCBpbiBjYXNl
IHNvbWVvbmUgYXNrcy4KICAvLyAgIF9hdXhpbGlhcnlTdG9yYWdlLT5fYXV4V0ZsYWdzLmhhc1No
YWRvdyA9ICh3aW5kb3dBdHRyaWJ1dGVzICYga1dpbmRvd05vU2hhZG93QXR0cmlidXRlKSA/IE5P
IDogWUVTOwpAQCAtMjgxLDEwICsyNzksOSBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5k
b3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAg
IC8vIGZsdXNoZXMgaXQuCiAKICAgICBpZiAoW3NlbGYgd2luZG93TnVtYmVyXSAhPSAtMSkgewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0g
KENHQ29udGV4dFJlZilbW3NlbGYgX3RocmVhZENvbnRleHRdIGdyYXBoaWNzUG9ydF07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogICAgICAgICBDR0NvbnRleHRTeW5jaHJvbml6ZShjZ0NvbnRleHQpOwogICAg
IH0KIH0KQEAgLTM3NCwxMSArMzcxLDEwIEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRv
d0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAgICAg
Ly8gSW5pdGlhbGl6ZSBmb3Igc2FmZSByZXR1cm5pbmcuCiAgICAgQk9PTCByZWNvbmNpbGlhdGlv
bldhc05lY2Vzc2FyeSA9IE5POwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBQcmVjb25k
aXRpb24gY2hlY2suCiAgICAgYXNzZXJ0KF9jb250ZW50Vmlldyk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAg
ICAvLyBHZXQgdGhlIENhcmJvbiB3aW5kb3cncyBib3VuZHMsIHdoaWNoIGFyZSBleHByZXNzZWQg
aW4gZ2xvYmFsIHNjcmVlbiBjb29yZGluYXRlcywgd2l0aCAoMCwwKSBhdCB0aGUgdG9wLWxlZnQg
b2YgdGhlIG1haW4gc2NyZWVuLgogICAgIG9zU3RhdHVzID0gR2V0V2luZG93Qm91bmRzKF93aW5k
b3dSZWYsIGtXaW5kb3dTdHJ1Y3R1cmVSZ24sICZ3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0KTsK
QEAgLTM5MywyOCArMzg5LDI2IEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRs
ZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAgICAgbmV3V2lu
ZG93RnJhbWVSZWN0Lm9yaWdpbi55ID0gTlNNYXhZKFsoTlNTY3JlZW4gKilbW05TU2NyZWVuIHNj
cmVlbnNdIG9iamVjdEF0SW5kZXg6MF0gZnJhbWVdKSAtIHdpbmRvd1N0cnVjdHVyZUJvdW5kc1Jl
Y3QuYm90dG9tOwogICAgIG5ld1dpbmRvd0ZyYW1lUmVjdC5zaXplLndpZHRoID0gd2luZG93U3Ry
dWN0dXJlQm91bmRzUmVjdC5yaWdodCAtIHdpbmRvd1N0cnVjdHVyZUJvdW5kc1JlY3QubGVmdDsK
ICAgICBuZXdXaW5kb3dGcmFtZVJlY3Quc2l6ZS5oZWlnaHQgPSB3aW5kb3dTdHJ1Y3R1cmVCb3Vu
ZHNSZWN0LmJvdHRvbSAtIHdpbmRvd1N0cnVjdHVyZUJvdW5kc1JlY3QudG9wOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgaWYgKCFOU0VxdWFsUmVjdHMobmV3V2luZG93RnJhbWVSZWN0LCBfZnJh
bWUpKSB7CiAgICAgICAgIFtzZWxmIF9zZXRGcmFtZTpuZXdXaW5kb3dGcmFtZVJlY3RdOwogICAg
ICAgICBbX2JvcmRlclZpZXcgc2V0RnJhbWVTaXplOm5ld1dpbmRvd0ZyYW1lUmVjdC5zaXplXTsK
ICAgICAgICAgcmVjb25jaWxpYXRpb25XYXNOZWNlc3NhcnkgPSBZRVM7CiAgICAgfQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogCiAgICAgLy8gU2V0IHRoZSBjb250ZW50IHZpZXcncyBmcmFtZSByZWN0IGZyb20gdGhl
IENhcmJvbiB3aW5kb3cncyBjb250ZW50IHJlZ2lvbiBib3VuZHMuCiAgICAgbmV3Q29udGVudEZy
YW1lUmVjdC5vcmlnaW4ueCA9IHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LmxlZnQgLSB3aW5kb3dT
dHJ1Y3R1cmVCb3VuZHNSZWN0LmxlZnQ7CiAgICAgbmV3Q29udGVudEZyYW1lUmVjdC5vcmlnaW4u
eSA9IHdpbmRvd1N0cnVjdHVyZUJvdW5kc1JlY3QuYm90dG9tIC0gd2luZG93Q29udGVudEJvdW5k
c1JlY3QuYm90dG9tOwogICAgIG5ld0NvbnRlbnRGcmFtZVJlY3Quc2l6ZS53aWR0aCA9IHdpbmRv
d0NvbnRlbnRCb3VuZHNSZWN0LnJpZ2h0IC0gd2luZG93Q29udGVudEJvdW5kc1JlY3QubGVmdDsK
ICAgICBuZXdDb250ZW50RnJhbWVSZWN0LnNpemUuaGVpZ2h0ID0gd2luZG93Q29udGVudEJvdW5k
c1JlY3QuYm90dG9tIC0gd2luZG93Q29udGVudEJvdW5kc1JlY3QudG9wOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgb2xkQ29udGVudEZyYW1lUmVjdCA9IFsoTlNWaWV3ICopX2NvbnRlbnRWaWV3
IGZyYW1lXTsKICAgICBpZiAoIU5TRXF1YWxSZWN0cyhuZXdDb250ZW50RnJhbWVSZWN0LCBvbGRD
b250ZW50RnJhbWVSZWN0KSkgewogICAgICAgICBbKE5TVmlldyAqKV9jb250ZW50VmlldyBzZXRG
cmFtZTpuZXdDb250ZW50RnJhbWVSZWN0XTsKICAgICAgICAgcmVjb25jaWxpYXRpb25XYXNOZWNl
c3NhcnkgPSBZRVM7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgLy8gRG9uZS4KICAgICByZXR1
cm4gcmVjb25jaWxpYXRpb25XYXNOZWNlc3Nhcnk7CkBAIC01OTUsOCArNTg5LDcgQEAgc3RhdGlj
IE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBp
bkV2ZW50SGFuZGxlckNhbGwKIC8vIFRoaXMgZnVuY3Rpb24gaXMgbW9zdGx5IGN1dC1hbmQtcGFz
dGVkIGZyb20gLVtOU1dpbmRvdyBfdGVybVdpbmRvd0lmT3duZXJdLiAgTS5QLiBOb3RpY2UgLSA4
LzcvMDAKIC0gKHZvaWQpX3Rlcm1XaW5kb3dJZk93bmVyCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBbc2VsZiBfc2V0V2luZG93TnVtYmVyOi0xXTsKICAgICBfd0ZsYWdzLmlzVGVybWluYXRp
bmcgPSBZRVM7CiAgICAgaWYgKF93aW5kb3dSZWYgJiYgX3dpbmRvd1JlZklzT3duZWQpCkBAIC02
MDYsNyArNTk5LDcgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQo
RXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKIC8vICAgICAgICBbX2JvcmRl
clZpZXcgc2V0U2hhZG93U3RhdGU6a0ZyYW1lU2hhZG93Tm9uZV07CiAvLyAgICB9CiAgICAgX3dG
bGFncy5pc1Rlcm1pbmF0aW5nID0gTk87Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIApAQCAtNjI2LDEwICs2
MTksOSBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhh
bmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAgIFtzdXBlciBfd2luZG93TW92ZWRU
b1JlY3Q6YWN0dWFsRnJhbWVdOwogCiAgICAgLy8gTGV0IENhcmJvbiBrbm93IHRoYXQgdGhlIHdp
bmRvdyBoYXMgYmVlbiBtb3ZlZCwgdW5sZXNzIHRoaXMgbWV0aG9kIGlzIGJlaW5nIGNhbGxlZCAi
ZWFybHkuIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKF93RmxhZ3MudmlzaWJsZSkgewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICAgICAgICAgb3NTdGF0dXMgPSBfU3luY1dpbmRvd1dpdGhDR0FmdGVy
TW92ZShfd2luZG93UmVmKTsKICAgICAgICAgaWYgKG9zU3RhdHVzIT1ub0VycikgTlNMb2coQCJB
IENhcmJvbiB3aW5kb3cncyBib3VuZHMgY291bGRuJ3QgYmUgc3luY2hyb25pemVkICglaSkuIiwg
KGludClvc1N0YXR1cyk7CiAgICAgfQpAQCAtNzU4LDExICs3NTAsMTAgQEAgc3RhdGljIE9TU3Rh
dHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50
SGFuZGxlckNhbGwKICAgICBSZWN0IHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0OwogCiAgICAgLy8g
UHJlY29uZGl0aW9uIGNoZWNrLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgYXNzZXJ0KF9ib3Jk
ZXJWaWV3KTsKICAgICBhc3NlcnQoW19ib3JkZXJWaWV3IGlzS2luZE9mQ2xhc3M6W0NhcmJvbldp
bmRvd0ZyYW1lIGNsYXNzXV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIGFzc2VydChfd2luZG93UmVmKTsK
IAogICAgIC8vIFBhcmFtZXRlciBjaGVjay4KQEAgLTc3Niw4ICs3NjcsNyBAQCBzdGF0aWMgT1NT
dGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZl
bnRIYW5kbGVyQ2FsbAogICAgIGNvbnRlbnRGcmFtZVJlY3Quc2l6ZS53aWR0aCA9IHdpbmRvd0Nv
bnRlbnRCb3VuZHNSZWN0LnJpZ2h0IC0gd2luZG93Q29udGVudEJvdW5kc1JlY3QubGVmdDsKICAg
ICBjb250ZW50RnJhbWVSZWN0LnNpemUuaGVpZ2h0ID0gd2luZG93Q29udGVudEJvdW5kc1JlY3Qu
Ym90dG9tIC0gd2luZG93Q29udGVudEJvdW5kc1JlY3QudG9wOwogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICAvLyBJZiB0aGUgY29udGVudCB2aWV3IGlzIHN0aWxsIGluIHNvbWUgb3RoZXIgdmll
dyBoaWVyYXJjaHksIHByeSBpdCBmcmVlLgogICAgIFtfY29udGVudFZpZXcgcmVtb3ZlRnJvbVN1
cGVydmlld107CiAgICAgYXNzZXJ0KCFbX2NvbnRlbnRWaWV3IHN1cGVydmlld10pOwpAQCAtNzkx
LDcgKzc4MSw3IEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2
ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAKICAgICAvLyBUZWxsIHRoZSBj
b250ZW50IHZpZXcgaXQncyBuZXcgcGxhY2UgaW4gdGhlIHJlc3BvbmRlciBjaGFpbi4KICAgICBb
X2NvbnRlbnRWaWV3IHNldE5leHRSZXNwb25kZXI6c2VsZl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIApA
QCAtOTQ0LDEwICs5MzQsOSBAQCBDbGVhblVwOgogICAgIEhJUmVjdCBmcmFtZTsKIAogICAgIEhJ
Vmlld0dldEZyYW1lKHJvb3QsICZmcmFtZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbX2Jv
cmRlclZpZXcgc2V0RnJhbWVTaXplOiooTlNTaXplKikmZnJhbWUuc2l6ZV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiB9CiAKIC0gKHZvaWQpX2hhbmRsZUNvbnRlbnRCb3VuZHNDaGFuZ2VkCkBAIC05NjQsMTMgKzk1
MywxMiBAQCBDbGVhblVwOgogICAgIC8vIFNldCB0aGUgY29udGVudCB2aWV3J3MgZnJhbWUgcmVj
dCBmcm9tIHRoZSBDYXJib24gd2luZG93J3MgY29udGVudCByZWdpb24gYm91bmRzLgogICAgIGNv
bnRlbnRGcmFtZS5vcmlnaW4ueSA9IHJvb3RCb3VuZHMuc2l6ZS5oZWlnaHQgLSBDR1JlY3RHZXRN
YXhZKGNvbnRlbnRGcmFtZSk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIG9sZENvbnRlbnRG
cmFtZVJlY3QgPSBbKE5TVmlldyAqKV9jb250ZW50VmlldyBmcmFtZV07CiAgICAgaWYgKCFOU0Vx
dWFsUmVjdHMoKihOU1JlY3QqKSZjb250ZW50RnJhbWUsIG9sZENvbnRlbnRGcmFtZVJlY3QpKSB7
CiAgICAgICAgIFsoTlNWaWV3ICopX2NvbnRlbnRWaWV3IHNldEZyYW1lOiooTlNSZWN0KikmY29u
dGVudEZyYW1lXTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKE9TU3RhdHVzKV9oYW5kbGVD
YXJib25FdmVudDooRXZlbnRSZWYpaW5FdmVudCBjYWxsUmVmOihFdmVudEhhbmRsZXJDYWxsUmVm
KWluQ2FsbFJlZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0Nh
cmJvbldpbmRvd0ZyYW1lLm0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9u
V2luZG93RnJhbWUubQppbmRleCBlOTI2ZWI2YzIxZTBmYTg4ZjI4ZGM0YTA2MWMzOTAyMjUzMjVl
Yjk3Li5jNzE0M2Q1NjM5NjZmZTJhM2Q3Mzg4ODBmZDFiNmFhOGI5ODg3NDdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93RnJhbWUubQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93RnJhbWUubQpAQCAt
MjQxLDEwICsyNDEsOSBAQCAtIChOU1N0cmluZyAqKXRpdGxlIHsKICAgICB3aW5kb3dSZWYgPSBb
Y2FyYm9uV2luZG93IHdpbmRvd1JlZl07CiAgICAgb3NTdGF0dXMgPSBDb3B5V2luZG93VGl0bGVB
c0NGU3RyaW5nKHdpbmRvd1JlZiwgJndpbmRvd1RpdGxlKTsKICAgICBpZiAob3NTdGF0dXM9PW5v
RXJyKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XY2FzdC1xdWFsIgorICAgICAgICBJR05PUkVfV0FSTklOR19CRUdJ
TigiLVdjYXN0LXF1YWwiKQogICAgICAgICB3aW5kb3dUaXRsZUFzTlNTdHJpbmcgPSAoTlNTdHJp
bmcgKil3aW5kb3dUaXRsZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
SUdOT1JFX1dBUk5JTkdfRU5ECiAgICAgfSBlbHNlIHsKICAgICAgICAgTlNMb2coQCJBIENhcmJv
biB3aW5kb3cncyB0aXRsZSBjb3VsZG4ndCBiZSBnb3R0ZW4uIik7CiAgICAgICAgIHdpbmRvd1Rp
dGxlQXNOU1N0cmluZyA9IEAiIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24v
SElWaWV3QWRhcHRlci5tCmluZGV4IGYzZDk5NjVhYjdmZDEzODRhYmI1NWU1OWM1YTA5NDRiNWU2
MDFlNzAuLmNhZmNiOGRmZDgwY2Q5N2JhMWZjOTNhZDk0NzEwNTE0NjExNjIwMTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJVmlld0FkYXB0ZXIubQpAQCAtODgsMTAg
Kzg4LDkgQEAgKyAodm9pZCliaW5kSElWaWV3VG9OU1ZpZXc6KEhJVmlld1JlZiloaVZpZXcgbnNW
aWV3OihOU1ZpZXcqKW5zVmlldwogCiArIChISVZpZXdSZWYpZ2V0SElWaWV3Rm9yTlNWaWV3OihO
U1ZpZXcqKWluVmlldwogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Nhc3QtcXVhbCIKKyAgICBJR05PUkVfV0FSTklO
R19CRUdJTigiLVdjYXN0LXF1YWwiKQogICAgIHJldHVybiBzVmlld01hcCA/IChISVZpZXdSZWYp
Q0ZEaWN0aW9uYXJ5R2V0VmFsdWUoc1ZpZXdNYXAsIGluVmlldykgOiBOVUxMOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HX0VORAogfQogCiArICh2b2lk
KXVuYmluZE5TVmlldzooTlNWaWV3KilpblZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
YXJib24vSElXZWJWaWV3Lm1tCmluZGV4IDQwNmI3NzlmYWNmN2EzZDQxNGJiMmRmY2EzOTU1MTY0
ZTc2MjkyNmEuLjgwZjM1MWNhOTkxMDg5YTEwYTEyNjQxNmNkOWY1NzNjOWVmOTU3NjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJV2ViVmlldy5tbQpAQCAtMjg4LDExICsy
ODgsMTAgQEAgc3RhdGljIFVJbnQzMiBHZXRCZWhhdmlvcnMoKQogCiBzdGF0aWMgQ0dDb250ZXh0
UmVmIG92ZXJyaWRlQ0dDb250ZXh0KE5TV2luZG93ICp3aW5kb3csIENHQ29udGV4dFJlZiBjb250
ZXh0KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNXaW5kb3dHcmFwaGljc0NvbnRleHQg
KmdyYXBoaWNzQ29udGV4dCA9IChOU1dpbmRvd0dyYXBoaWNzQ29udGV4dCAqKXdpbmRvdy5ncmFw
aGljc0NvbnRleHQ7CiAgICAgQ0dDb250ZXh0UmVmIHNhdmVkQ29udGV4dCA9IChDR0NvbnRleHRS
ZWYpZ3JhcGhpY3NDb250ZXh0LmdyYXBoaWNzUG9ydDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBDR0NvbnRl
eHRSZXRhaW4oc2F2ZWRDb250ZXh0KTsKICAgICBbZ3JhcGhpY3NDb250ZXh0IF93ZWJfc2V0R3Jh
cGhpY3NQb3J0OmNvbnRleHRdOwogICAgIHJldHVybiBzYXZlZENvbnRleHQ7CkBAIC0zMDAsMTAg
KzI5OSw5IEBAIHN0YXRpYyBDR0NvbnRleHRSZWYgb3ZlcnJpZGVDR0NvbnRleHQoTlNXaW5kb3cg
KndpbmRvdywgQ0dDb250ZXh0UmVmIGNvbnRleHQpCiAKIHN0YXRpYyB2b2lkIHJlc3RvcmVDR0Nv
bnRleHQoTlNXaW5kb3cgKndpbmRvdywgQ0dDb250ZXh0UmVmIHNhdmVkQ29udGV4dCkKIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIE5TV2luZG93R3JhcGhpY3NDb250ZXh0ICpncmFwaGljc0Nv
bnRleHQgPSAoTlNXaW5kb3dHcmFwaGljc0NvbnRleHQgKil3aW5kb3cuZ3JhcGhpY3NDb250ZXh0
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgIFtncmFwaGljc0NvbnRleHQgX3dlYl9zZXRHcmFwaGljc1BvcnQ6
c2F2ZWRDb250ZXh0XTsKICAgICBDR0NvbnRleHRSZWxlYXNlKHNhdmVkQ29udGV4dCk7CiB9CkBA
IC0zMjMsMTIgKzMyMSwxMSBAQCBzdGF0aWMgdm9pZCBEcmF3KEhJV2ViVmlldyogaW5WaWV3LCBS
Z25IYW5kbGUgbGltaXRSZ24sIENHQ29udGV4dFJlZiBpbkNvbnRleHQpCiAgICAgICAgIEdyYWZQ
dHIgcG9ydDsKICAgICAgICAgUmVjdCBwb3J0UmVjdDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgICAgICBHZXRQb3J0KCZwb3J0KTsKICAgICAgICAgR2V0UG9ydEJvdW5kcyhwb3J0LCAm
cG9ydFJlY3QpOwogICAgICAgICBDcmVhdGVDR0NvbnRleHRGb3JQb3J0KHBvcnQsICZpbkNvbnRl
eHQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFN5bmNDR0NvbnRleHRPcmlnaW5XaXRoUG9y
dChpbkNvbnRleHQsIHBvcnQpOwogICAgICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oaW5Db250
ZXh0LCAwLCAocG9ydFJlY3QuYm90dG9tIC0gcG9ydFJlY3QudG9wKSk7CiAgICAgICAgIENHQ29u
dGV4dFNjYWxlQ1RNKGluQ29udGV4dCwgMSwgLTEpOwpAQCAtMTQ3NSw3ICsxNDcyLDkgQEAgVXBk
YXRlT2JzZXJ2ZXIoQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYgb2JzZXJ2ZXIsIENGUnVuTG9vcEFjdGl2
aXR5IGFjdGl2aXR5LCB2b2lkICoKICAgICAvLyBwcmludGYoIlVwZGF0ZSBvYnNlcnZlciBjYWxs
ZWRcbiIpOwogCiAgICAgaWYgKHJlZ2lvbikgeworICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgICAgICBHZXRXaW5kb3dSZWdpb24oR2V0Q29udHJvbE93bmVy
KHZpZXctPmZWaWV3UmVmKSwga1dpbmRvd1VwZGF0ZVJnbiwgcmVnaW9uKTsKKyAgICAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIAogICAgICAgICBpZiAoIUVt
cHR5UmduKHJlZ2lvbikpIHsKICAgICAgICAgICAgIFJnbkhhbmRsZSBvdXJSZ24gPSBOZXdSZ24o
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET00ubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NLm1tCmluZGV4IDhlYmI4YTBkYWY2MzQ1ZjIxOTAz
ZDZmZWNiMjRkOGYxNGUwNmMyYTEuLjZmNDI3ODEyZGM3NDI5Y2RkMzY5YTMyNzdlODdiNmNhNDU3
MWI2N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET00ubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5tbQpAQCAtMjQ0LDggKzI0NCw3IEBA
IHN0YXRpYyBpbmxpbmUgV0tRdWFkIHplcm9RdWFkKCkKIAogQGltcGxlbWVudGF0aW9uIERPTU5v
ZGUgKFdlYkNvcmVJbnRlcm5hbCkKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV29iamMtcHJvdG9jb2wtbWV0aG9kLWlt
cGxlbWVudGF0aW9uIgorSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1Xb2JqYy1wcm90b2Nv
bC1tZXRob2QtaW1wbGVtZW50YXRpb24iKQogCiAtIChOU1N0cmluZyAqKWRlc2NyaXB0aW9uCiB7
CkBAIC0yNTksNyArMjU4LDcgQEAgc3RhdGljIGlubGluZSBXS1F1YWQgemVyb1F1YWQoKQogICAg
IHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjwlQCBbJUBdOiAlcD4iLCBbW3Nl
bGYgY2xhc3NdIGRlc2NyaXB0aW9uXSwgW3NlbGYgbm9kZU5hbWVdLCBfaW50ZXJuYWxdOwogfQog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfQ0xBTkdfV0FSTklOR19FTkQK
IAogLSAoQmluZGluZ3M6OlJvb3RPYmplY3QqKV9yb290T2JqZWN0CiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnkubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnkubW0KaW5kZXggOTA0OTZiYmI5OTM2NDI5
OTZiZjVhMjQ1NmRmODY4OGRmODY1NjA3Yi4uNGQxNmUzODgwNjFkOWNmZWYzYjg3YTljYWU5YWI3
ODBkMDQyZmYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9X
ZWJIaXN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlz
dG9yeS5tbQpAQCAtNDQ2LDggKzQ0Niw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViSGlzdG9yeURhdGVL
ZXkgZGF0ZUtleShOU1RpbWVJbnRlcnZhbCBkYXRlKQogCiAvLyBNQVJLOiBEQVRFLUJBU0VEIFJF
VFJJRVZBTAogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiAtIChOU0FycmF5ICopb3JkZXJlZExhc3RWaXNp
dGVkRGF5cwogewpAQCAtNDc5LDcgKzQ3OCw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViSGlzdG9yeURh
dGVLZXkgZGF0ZUtleShOU1RpbWVJbnRlcnZhbCBkYXRlKQogICAgIHJldHVybiBfZW50cmllc0J5
RGF0ZS0+Z2V0KGRhdGVLZXkpLmdldCgpOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogLy8gTUFSSzogVVJMIE1B
VENISU5HCiAKQEAgLTUzMSw4ICs1MzAsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkhpc3RvcnlEYXRl
S2V5IGRhdGVLZXkoTlNUaW1lSW50ZXJ2YWwgZGF0ZSkKICAgICByZXR1cm4gW1tOU1VzZXJEZWZh
dWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gaW50ZWdlckZvcktleTpAIldlYktpdEhpc3RvcnlJ
dGVtTGltaXQiXTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogLy8gUmV0dXJuIGEgZGF0ZSB0aGF0
IG1hcmtzIHRoZSBhZ2UgbGltaXQgZm9yIGhpc3RvcnkgZW50cmllcyBzYXZlZCB0byBvcgogLy8g
bG9hZGVkIGZyb20gZGlzay4gQW55IGVudHJ5IG9sZGVyIHRoYW4gdGhpcyBpdGVtIHNob3VsZCBi
ZSByZWplY3RlZC4KQEAgLTU0Miw3ICs1NDAsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkhpc3RvcnlE
YXRlS2V5IGRhdGVLZXkoTlNUaW1lSW50ZXJ2YWwgZGF0ZSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdXJzOjAgbWludXRlczowIHNlY29u
ZHM6MF07CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogCiAtIChCT09MKWxvYWRIaXN0b3J5R3V0c0Zyb21VUkw6KE5T
VVJMICopVVJMIHNhdmVkSXRlbXNDb3VudDooaW50ICopbnVtYmVyT2ZJdGVtc0xvYWRlZCBjb2xs
ZWN0RGlzY2FyZGVkSXRlbXNJbnRvOihOU011dGFibGVBcnJheSAqKWRpc2NhcmRlZEl0ZW1zIGVy
cm9yOihOU0Vycm9yICoqKWVycm9yCiB7CkBAIC01NjEsMTAgKzU1OSw5IEBAIHN0YXRpYyBpbmxp
bmUgV2ViSGlzdG9yeURhdGVLZXkgZGF0ZUtleShOU1RpbWVJbnRlcnZhbCBkYXRlKQogICAgICAg
ICAgICAgcmV0dXJuIE5POwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICAgICAgTlNEYXRhICpkYXRhID0gW05TVVJMQ29ubmVjdGlvbiBzZW5kU3lu
Y2hyb25vdXNSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6VVJMXSByZXR1cm5p
bmdSZXNwb25zZTpuaWwgZXJyb3I6ZXJyb3JdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgaWYg
KGRhdGEubGVuZ3RoKQogICAgICAgICAgICAgZGljdGlvbmFyeSA9IFtOU1Byb3BlcnR5TGlzdFNl
cmlhbGl6YXRpb24gcHJvcGVydHlMaXN0V2l0aERhdGE6ZGF0YSBvcHRpb25zOk5TUHJvcGVydHlM
aXN0SW1tdXRhYmxlIGZvcm1hdDpudWxscHRyIGVycm9yOm51bGxwdHJdOwogICAgIH0KQEAgLTc2
OCwxNSArNzY1LDE0IEBAIHN0YXRpYyBpbmxpbmUgV2ViSGlzdG9yeURhdGVLZXkgZGF0ZUtleShO
U1RpbWVJbnRlcnZhbCBkYXRlKQogICAgIHJldHVybiBbX2hpc3RvcnlQcml2YXRlIG9yZGVyZWRM
YXN0VmlzaXRlZERheXNdOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiAtIChOU0FycmF5ICopb3Jk
ZXJlZEl0ZW1zTGFzdFZpc2l0ZWRPbkRheTooTlNDYWxlbmRhckRhdGUgKilkYXRlCiB7CiAgICAg
cmV0dXJuIFtfaGlzdG9yeVByaXZhdGUgb3JkZXJlZEl0ZW1zTGFzdFZpc2l0ZWRPbkRheTpkYXRl
XTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAKIC8vIE1BUks6IFVSTCBNQVRDSElORwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQppbmRleCBjYzE4NTdh
ZjAyYmFhMDc5ZWM5MmE4MWU0NjA1MDA1ODkyM2E5Yzk4Li44ZjE3YzNhZjg5ZjJiMjc0YWI0NzU0
NWVhOWY5ZWFhYTZjOWVjZGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9I
aXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hp
c3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KQEAgLTE5OSwxMCArMTk5LDkgQEAgdm9pZCBXS05vdGlm
eUhpc3RvcnlJdGVtQ2hhbmdlZChIaXN0b3J5SXRlbSopCiAjaWYgIVBMQVRGT1JNKElPUykKIC0g
KE5TSW1hZ2UgKilpY29uCiB7Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2ggCi0jcHJhZ21h
IEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICByZXR1cm4gW1tXZWJJY29u
RGF0YWJhc2Ugc2hhcmVkSWNvbkRhdGFiYXNlXSBpY29uRm9yVVJMOltzZWxmIFVSTFN0cmluZ10g
d2l0aFNpemU6V2ViSWNvblNtYWxsU2l6ZV07Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0TlNTdHJpbmdFeHRyYXMu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdE5TU3RyaW5nRXh0cmFzLm1t
CmluZGV4IDdmOTk1MDJmMzZiNzQ5MjNmMzExZTAwNjFhZWJlMTRkNzY2NDZjY2UuLjA3ZjE0MWM3
OWU0NGVkOThiYzY5Nzk5YzkyZjViZDNlY2U3NGM4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0TlNTdHJpbmdFeHRyYXMubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5tbQpAQCAtNzcsMTAgKzc3
LDkgQEAgc3RhdGljIGJvb2wgY2FuVXNlRmFzdFJlbmRlcmVyKGNvbnN0IFVuaUNoYXIqIGJ1ZmZl
ciwgdW5zaWduZWQgbGVuZ3RoKQogICAgICAgICBwb2ludC55ID0gQ0dDZWlsaW5nKHBvaW50Lnkp
OwogCiAgICAgICAgIE5TR3JhcGhpY3NDb250ZXh0ICpuc0NvbnRleHQgPSBbTlNHcmFwaGljc0Nv
bnRleHQgY3VycmVudENvbnRleHRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBD
R0NvbnRleHRSZWYgY2dDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dDb250ZXh0UmVmPihbbnNDb250
ZXh0IGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgR3JhcGhpY3NDb250
ZXh0IGdyYXBoaWNzQ29udGV4dCB7IGNnQ29udGV4dCB9OwogCiAgICAgICAgIC8vIFdlYkNvcmUg
cmVxdWlyZXMgYSBmbGlwcGVkIGdyYXBoaWNzIGNvbnRleHQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TSW1hZ2VFeHRyYXMubSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL01pc2MvV2ViTlNJbWFnZUV4dHJhcy5tCmluZGV4IGMzMjY0M2I0OThmYWU3MGZk
MzEyNGFlNWM0NTY5ZTAzZTk2YjJmYzEuLjVmYWExN2EyZWMwODUyZGFmM2YxYWE3ZTY1M2U2NmJh
MWY4ZDExODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNJ
bWFnZUV4dHJhcy5tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNJbWFn
ZUV4dHJhcy5tCkBAIC01MywxMCArNTMsOSBAQCAtICh2b2lkKV93ZWJfc2NhbGVUb01heFNpemU6
KE5TU2l6ZSlzaXplCiAgICAgCiAgICAgaWYocmVzaXplRGVsdGEgPiAwLjApewogICAgICAgICBO
U1NpemUgbmV3U2l6ZSA9IE5TTWFrZVNpemUoKG9yaWdpbmFsU2l6ZS53aWR0aCAqIHJlc2l6ZURl
bHRhKSwgKG9yaWdpbmFsU2l6ZS5oZWlnaHQgKiByZXNpemVEZWx0YSkpOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgICAgICBbc2VsZiBzZXRTY2FsZXNXaGVuUmVzaXplZDpZRVNdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICAgICAgICAgW3NlbGYgc2V0U2l6ZTpuZXdTaXplXTsKICAgICB9CiB9CkBA
IC02NSwyOSArNjQsMjUgQEAgLSAodm9pZClfd2ViX2Rpc3NvbHZlVG9GcmFjdGlvbjooZmxvYXQp
ZGVsdGEKIHsKICAgICBOU0ltYWdlICpkaXNzb2x2ZWRJbWFnZSA9IFtbTlNJbWFnZSBhbGxvY10g
aW5pdFdpdGhTaXplOltzZWxmIHNpemVdXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNQ
b2ludCBwb2ludCA9IFtzZWxmIGlzRmxpcHBlZF0gPyBOU01ha2VQb2ludCgwLCBbc2VsZiBzaXpl
XS5oZWlnaHQpIDogTlNaZXJvUG9pbnQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgCiAgICAgLy8gSW4gdGhp
cyBjYXNlIHRoZSBkcmFnZ2luZyBpbWFnZSBpcyBhbHdheXMgY29ycmVjdC4KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIFtkaXNzb2x2ZWRJbWFnZSBzZXRGbGlwcGVkOltzZWxmIGlzRmxpcHBlZF1d
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogCiAgICAgW2Rpc3NvbHZlZEltYWdlIGxvY2tGb2N1c107Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBbc2VsZiBkaXNzb2x2ZVRvUG9pbnQ6cG9pbnQgZnJhY3Rpb246IGRl
bHRhXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICBbZGlzc29sdmVkSW1hZ2UgdW5sb2NrRm9jdXNdOwogCiAg
ICAgW3NlbGYgbG9ja0ZvY3VzXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtkaXNzb2x2ZWRJ
bWFnZSBjb21wb3NpdGVUb1BvaW50OnBvaW50IG9wZXJhdGlvbjpOU0NvbXBvc2l0ZUNvcHldOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogICAgIFtzZWxmIHVubG9ja0ZvY3VzXTsKIAogICAgIFtkaXNzb2x2ZWRJbWFn
ZSByZWxlYXNlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2Vi
TlNQYXN0ZWJvYXJkRXh0cmFzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJO
U1Bhc3RlYm9hcmRFeHRyYXMubW0KaW5kZXggZmEyM2M2Y2JkYjE0NmI4NjJjY2UyZWFlNDgwYWVh
MTE5OTZjMWJiMC4uZGFiYmNkYmMzMGE5ZTIxN2VlMWU5Y2E5OGE0MmQ0MzNkMjI5Mzk0ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRy
YXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRF
eHRyYXMubW0KQEAgLTE4NCwxMCArMTg0LDkgQEAgc3RhdGljIE5TQXJyYXkgKl93cml0YWJsZVR5
cGVzRm9ySW1hZ2VXaXRoQXJjaGl2ZSAodm9pZCkKIAogKyAoaW50KV93ZWJfc2V0RmluZFBhc3Rl
Ym9hcmRTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHdpdGhPd25lcjooaWQpb3duZXIKIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIE5TUGFzdGVib2FyZCAqZmluZFBhc3RlYm9hcmQgPSBbTlNQ
YXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRoTmFtZTpOU0ZpbmRQYm9hcmRdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgIFtmaW5kUGFzdGVib2FyZCBkZWNsYXJlVHlwZXM6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0
OmxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRUeXBlKCldIG93bmVyOm93bmVyXTsKICAgICBbZmluZFBh
c3RlYm9hcmQgc2V0U3RyaW5nOnN0cmluZyBmb3JUeXBlOmxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRU
eXBlKCldOwogICAgIHJldHVybiBbZmluZFBhc3RlYm9hcmQgY2hhbmdlQ291bnRdOwpAQCAtMjc5
LDEwICsyNzgsOSBAQCBzdGF0aWMgQ2FjaGVkSW1hZ2UqIGltYWdlRnJvbUVsZW1lbnQoRE9NRWxl
bWVudCAqZG9tRWxlbWVudCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJj
aGl2ZTooV2ViQXJjaGl2ZSAqKWFyY2hpdmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNvdXJjZTooV2ViSFRNTFZpZXcgKilzb3VyY2UKIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgIEFTU0VSVChzZWxmID09IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOk5T
RHJhZ1Bib2FyZF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgTlNTdHJpbmcgKmV4dGVuc2lvbiA9IEAi
IjsKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IHR5cGVzID0gYWRvcHROUyhbW05TTXV0
YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6bGVnYWN5RmlsZXNQcm9taXNlUGFzdGVi
b2FyZFR5cGUoKSwgbmlsXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
YW5lbHMvV2ViQXV0aGVudGljYXRpb25QYW5lbC5tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
UGFuZWxzL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubQppbmRleCA2N2YxOGI4ZjUzNzVlYWM1NDVi
MjNhNjNkYjk3NmY2OTQ3NmI3ZDRlLi41ZmMzMjNjODIwMTMxNDljYTJkNTEyMTZkNmU4Njk4NzNh
NjdkZGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QYW5lbHMvV2ViQXV0
aGVudGljYXRpb25QYW5lbC5tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BhbmVscy9X
ZWJBdXRoZW50aWNhdGlvblBhbmVsLm0KQEAgLTEwNCwxMCArMTA0LDkgQEAgLSAoSUJBY3Rpb24p
bG9nSW46KGlkKXNlbmRlcgogLSAoQk9PTClsb2FkTmliCiB7CiAgICAgaWYgKCFuaWJMb2FkZWQp
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgaWYgKFtOU0J1bmRsZSBsb2FkTmli
TmFtZWQ6V2ViQXV0aGVudGljYXRpb25QYW5lbE5pYk5hbWUgb3duZXI6c2VsZl0pIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgICAgICAgICAgbmliTG9hZGVkID0gWUVTOwogICAgICAgICAgICAg
W2ltYWdlVmlldyBzZXRJbWFnZTpbTlNJbWFnZSBpbWFnZU5hbWVkOkAiTlNBcHBsaWNhdGlvbklj
b24iXV07CiAgICAgICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdl
ci5tbQppbmRleCAwMjEwYjA2NmJhYWQyNjk3ZTA5ZjI4ZTA4OWFkMzVmYTc0ZjM2OWRmLi5lMTUw
YTM3ZGNjNGJhY2M4OWI3NDZhNTA0NzU4OTdmZDQ1ZTExMjM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2Vy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBl
UGx1Z2luSG9zdE1hbmFnZXIubW0KQEAgLTE4NywxMCArMTg3LDkgQEAgYm9vbCBOZXRzY2FwZVBs
dWdpbkhvc3RNYW5hZ2VyOjpzcGF3blBsdWdpbkhvc3QoY29uc3QgU3RyaW5nJiBwbHVnaW5QYXRo
LCBjcHVfdHkKIAogICAgIFByb2Nlc3NTZXJpYWxOdW1iZXIgcHNuOwogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICBHZXRDdXJyZW50UHJvY2VzcygmcHNuKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIEFT
U0VSVChNQUNIX1BPUlRfVkFMSUQoY2xpZW50UG9ydCkpOwogICAgIGtyID0gX1dLUEhDaGVja0lu
V2l0aFBsdWdpbkhvc3QocGx1Z2luSG9zdFBvcnQsIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihjb25z
dF9jYXN0PHZvaWQqPihbZGF0YSBieXRlc10pKSwgW2RhdGEgbGVuZ3RoXSwgY2xpZW50UG9ydCwg
cHNuLmhpZ2hMb25nT2ZQU04sIHBzbi5sb3dMb25nT2ZQU04sIHJlbmRlclNlcnZlclBvcnQsCkBA
IC0zMjIsMTEgKzMyMSwxMCBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI6OmRpZENy
ZWF0ZVdpbmRvdygpCiAgICAgICAgIGlmICghaG9zdFByb3h5LT5pc01lbnVCYXJWaXNpYmxlKCkp
IHsKICAgICAgICAgICAgIC8vIE1ha2Ugb3Vyc2VsdmVzIHRoZSBmcm9udCBwcm9jZXNzLgogICAg
ICAgICAgICAgUHJvY2Vzc1NlcmlhbE51bWJlciBwc247Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgICAgICAgICAgR2V0Q3VycmVudFByb2Nlc3MoJnBzbik7CiAgICAgICAgICAgICBT
ZXRGcm9udFByb2Nlc3MoJnBzbik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
ICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0K
aW5kZXggZWM1ZjBkYTU4YTYyYTllNTQ0NzhjYzJjMGY3MDdlYjRjNzEwMTBiNi4uZjFjNGFkMzE4
OTBlMDU2YWViMzg4YjRkY2JkZWRmYjU0ZjYwMWYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5I
b3N0UHJveHkubW0KQEAgLTM0MSwzMiArMzQxLDI5IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5Ib3N0
UHJveHk6OnByb2Nlc3NSZXF1ZXN0cygpCiAKIHZvaWQgTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHk6
Om1ha2VDdXJyZW50UHJvY2Vzc0Zyb250UHJvY2VzcygpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBQcm9jZXNzU2VyaWFsTnVtYmVyIHBzbjsKICAgICBHZXRDdXJyZW50UHJvY2VzcygmcHNu
KTsKICAgICBTZXRGcm9udFByb2Nlc3MoJnBzbik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHZvaWQgTmV0
c2NhcGVQbHVnaW5Ib3N0UHJveHk6Om1ha2VQbHVnaW5Ib3N0UHJvY2Vzc0Zyb250UHJvY2Vzcygp
IGNvbnN0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBTZXRGcm9udFByb2Nlc3MoJm1fcGx1
Z2luSG9zdFBTTik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIGJvb2wgTmV0c2NhcGVQbHVnaW5Ib3N0UHJv
eHk6OmlzUGx1Z2luSG9zdFByb2Nlc3NGcm9udFByb2Nlc3MoKSBjb25zdAogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgUHJvY2Vzc1NlcmlhbE51bWJlciBmcm9udFByb2Nlc3M7CiAgICAgR2V0
RnJvbnRQcm9jZXNzKCZmcm9udFByb2Nlc3MpOwogCiAgICAgQm9vbGVhbiBpc1NhbWVQcm9jZXNz
ID0gMDsKICAgICBTYW1lUHJvY2VzcygmZnJvbnRQcm9jZXNzLCAmbV9wbHVnaW5Ib3N0UFNOLCAm
aXNTYW1lUHJvY2Vzcyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICByZXR1cm4gaXNTYW1lUHJvY2VzczsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05l
dHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1Bs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQppbmRleCBlOTNmYjUw
NmU1ZGUwYTVkYWUzYWZhNTY1OGNiYWY0MTc4ZTI2YWExLi5hYzdhNGJiMzE4YzU1ZjkzNTljOThl
MGE4YmY5NmQxZTZlNDQzNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
bHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVBy
b3h5Lm1tCkBAIC00MjMsMTAgKzQyMyw5IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVBy
b3h5OjpzdGFydFRpbWVycyhib29sIHRocm90dGxlVGltZXJzKQogICAgIAogdm9pZCBOZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHk6Om1vdXNlRXZlbnQoTlNWaWV3ICpwbHVnaW5WaWV3LCBOU0V2
ZW50ICpldmVudCwgTlBDb2NvYUV2ZW50VHlwZSB0eXBlKQogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgTlNQb2ludCBzY3JlZW5Qb2ludCA9IFtbZXZlbnQgd2luZG93XSBjb252ZXJ0QmFzZVRv
U2NyZWVuOltldmVudCBsb2NhdGlvbkluV2luZG93XV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgTlNQb2lu
dCBwbHVnaW5Qb2ludCA9IFtwbHVnaW5WaWV3IGNvbnZlcnRQb2ludDpbZXZlbnQgbG9jYXRpb25J
bldpbmRvd10gZnJvbVZpZXc6bmlsXTsKICAgICAKICAgICBpbnQgY2xpY2tDb3VudDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5l
dHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9z
dGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCBmM2UwNGI0ZjU1ODA2MTE5
MWM4NmZkNjc3NTUxNTkxNDg2M2QxMTk0Li41MDk2ZjdkM2ExY2ZmOGMzZGQ1NmU3Yjg4OTMxNWFh
N2RiY2QzODQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hv
c3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBA
IC00NzcsOCArNDc3LDcgQEAgZXh0ZXJuICJDIiB7CiAgICAgfQogCiAgICAgaWYgKF9wcm94eSkg
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBpZiAoX3NvZnR3YXJlUmVuZGVyZXIp
IHsKICAgICAgICAgICAgIGlmIChbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHREcmF3
aW5nVG9TY3JlZW5dKSB7CiAgICAgICAgICAgICAgICAgX3NvZnR3YXJlUmVuZGVyZXItPnJlbmRl
cigoQ0dDb250ZXh0UmVmKVtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdyYXBo
aWNzUG9ydF0sIE5TUmVjdFRvQ0dSZWN0KHJlY3QpKTsKQEAgLTQ4OCw3ICs0ODcsNyBAQCBleHRl
cm4gIkMiIHsKICAgICAgICAgfSBlbHNlIGlmIChfc25hcHNob3R0aW5nICYmIFtzZWxmIHN1cHBv
cnRzU25hcHNob3R0aW5nXSkgewogICAgICAgICAgICAgX3Byb3h5LT5zbmFwc2hvdChyZWludGVy
cHJldF9jYXN0PENHQ29udGV4dFJlZj4oW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4
dF0gZ3JhcGhpY3NQb3J0XSksIFtzZWxmIGJvdW5kc10uc2l6ZS53aWR0aCwgW3NlbGYgYm91bmRz
XS5zaXplLmhlaWdodCk7CiAgICAgICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICAgICAgcmV0
dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMv
SG9zdGVkL1dlYlRleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYlRleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubQppbmRl
eCBmYmQ2NjdiNzQ4Zjg0MjNlZWU4ODE3YWU0ZDE1YjVhNzY2MmZiNTE5Li5jNmJmMDNlMjkzMjg2
YTM0OWZhNDMwYjJjODdlZDVlOTE0YTMwYWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViVGV4dElucHV0V2lu
ZG93Q29udHJvbGxlci5tCkBAIC0xMDYsMTkgKzEwNiwxNyBAQCAtICh2b2lkKV9rZXlib2FyZElu
cHV0U291cmNlQ2hhbmdlZDooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIAogLSAoQk9P
TClfaW50ZXJwcmV0S2V5RXZlbnQ6KE5TRXZlbnQgKilldmVudCBzdHJpbmc6KE5TU3RyaW5nICoq
KXN0cmluZwogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQk9PTCBoYWRNYXJrZWRUZXh0ID0g
W19pbnB1dFRleHRWaWV3IGhhc01hcmtlZFRleHRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgKnN0cmlu
ZyA9IG5pbDsKIAogICAgIC8vIExldCBUU00ga25vdyB0aGF0IGEgYm90dG9tIGlucHV0IHdpbmRv
dyB3b3VsZCBiZSBjcmVhdGVkIGZvciBtYXJrZWQgdGV4dC4KICAgICAvLyBGSVhNRTogQ2FuIGJl
IHJlbW92ZWQgb25jZSB3ZSBjYW4gcmVseSBvbiBfX05TVXNlc0Zsb2F0aW5nSW5wdXRXaW5kb3cg
KG9yIGEgYmV0dGVyIEFQSSkgYmVpbmcgYXZhaWxhYmxlIGV2ZXJ5d2hlcmUuCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
Y2FzdC1xdWFsIgorICAgIElHTk9SRV9XQVJOSU5HX0JFR0lOKCItV2Nhc3QtcXVhbCIpCiAgICAg
RXZlbnRSZWYgY2FyYm9uRXZlbnQgPSAoRXZlbnRSZWYpW2V2ZW50IGV2ZW50UmVmXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR19FTkQKICAgICBpZiAo
Y2FyYm9uRXZlbnQpIHsKICAgICAgICAgQm9vbGVhbiBpZ25vcmVQQUggPSB0cnVlOwogICAgICAg
ICBTZXRFdmVudFBhcmFtZXRlcihjYXJib25FdmVudCwgJ2lQQUgnLCB0eXBlQm9vbGVhbiwgc2l6
ZW9mKGlnbm9yZVBBSCksICZpZ25vcmVQQUgpOwpAQCAtMTI3LDEwICsxMjUsOSBAQCAtIChCT09M
KV9pbnRlcnByZXRLZXlFdmVudDooTlNFdmVudCAqKWV2ZW50IHN0cmluZzooTlNTdHJpbmcgKiop
c3RyaW5nCiAgICAgaWYgKCFbW19pbnB1dFRleHRWaWV3IGlucHV0Q29udGV4dF0gaGFuZGxlRXZl
bnQ6ZXZlbnRdKQogICAgICAgICByZXR1cm4gTk87CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBpZiAoW19pbnB1dFRleHRWaWV3IGhhc01hcmtlZFRleHRdKSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogICAgICAgICAvLyBEb24ndCBzaG93IHRoZSBpbnB1dCBtZXRob2Qgd2luZG93IGZvciBkZWFk
IGtleXMKICAgICAgICAgaWYgKFtbZXZlbnQgY2hhcmFjdGVyc10gbGVuZ3RoXSA+IDApCiAgICAg
ICAgICAgICBbc2VsZiBvcmRlckZyb250Om5pbF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KaW5k
ZXggNmQ4NWE4YzVlYTQxNTk4MmIxMDhlZWFhNmRlYzQ3YzBjODY2MTk5NC4uYjRjNWU2ZjcwNmE5
MGY1MjA4YmY3MjVlNzkzNmNlMmQwZWNjYTUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQpA
QCAtNzI5LDI1ICs3MjksMjIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgc3dpdGNo
IChzb3VyY2VTcGFjZSkgewogICAgICAgICBjYXNlIE5QQ29vcmRpbmF0ZVNwYWNlUGx1Z2luOgog
ICAgICAgICAgICAgc291cmNlUG9pbnRJblNjcmVlblNwYWNlID0gW3NlbGYgY29udmVydFBvaW50
OnNvdXJjZVBvaW50IHRvVmlldzpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICAgICAgICAgIHNvdXJjZVBvaW50SW5TY3JlZW5TcGFjZSA9IFtbc2VsZiBjdXJyZW50V2luZG93
XSBjb252ZXJ0QmFzZVRvU2NyZWVuOnNvdXJjZVBvaW50SW5TY3JlZW5TcGFjZV07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGNh
c2UgTlBDb29yZGluYXRlU3BhY2VXaW5kb3c6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgICAgICAgICAgc291cmNlUG9pbnRJblNjcmVlblNwYWNlID0gW1tzZWxmIGN1cnJlbnRXaW5k
b3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46c291cmNlUG9pbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIE5QQ29vcmRp
bmF0ZVNwYWNlRmxpcHBlZFdpbmRvdzoKICAgICAgICAgICAgIHNvdXJjZVBvaW50LnkgPSBbW3Nl
bGYgY3VycmVudFdpbmRvd10gZnJhbWVdLnNpemUuaGVpZ2h0IC0gc291cmNlUG9pbnQueTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBzb3VyY2VQb2ludEluU2NyZWVu
U3BhY2UgPSBbW3NlbGYgY3VycmVudFdpbmRvd10gY29udmVydEJhc2VUb1NjcmVlbjpzb3VyY2VQ
b2ludF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgCiAgICAgICAgIGNhc2UgTlBDb29yZGluYXRlU3BhY2VTY3JlZW46CkBAIC03NjcsMjUgKzc2
NCwyMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICAvLyBUaGVuIGNvbnZlcnQgYmFj
ayB0byB0aGUgZGVzdGluYXRpb24gc3BhY2UKICAgICBzd2l0Y2ggKGRlc3RTcGFjZSkgewogICAg
ICAgICBjYXNlIE5QQ29vcmRpbmF0ZVNwYWNlUGx1Z2luOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAgICAgICAgIGRlc3RQb2ludCA9IFtbc2VsZiBjdXJyZW50V2luZG93XSBjb252
ZXJ0U2NyZWVuVG9CYXNlOnNvdXJjZVBvaW50SW5TY3JlZW5TcGFjZV07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICAgICAgICAgIGRlc3RQb2ludCA9IFtzZWxmIGNvbnZlcnRQb2ludDpkZXN0UG9p
bnQgZnJvbVZpZXc6bmlsXTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAg
ICAgIGNhc2UgTlBDb29yZGluYXRlU3BhY2VXaW5kb3c6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgICAgICAgICAgZGVzdFBvaW50ID0gW1tzZWxmIGN1cnJlbnRXaW5kb3ddIGNvbnZl
cnRTY3JlZW5Ub0Jhc2U6c291cmNlUG9pbnRJblNjcmVlblNwYWNlXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBOUENv
b3JkaW5hdGVTcGFjZUZsaXBwZWRXaW5kb3c6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgICAgICAgICAgZGVzdFBvaW50ID0gW1tzZWxmIGN1cnJlbnRXaW5kb3ddIGNvbnZlcnRTY3Jl
ZW5Ub0Jhc2U6c291cmNlUG9pbnRJblNjcmVlblNwYWNlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgICAgICAgICAgZGVzdFBvaW50LnkgPSBbW3NlbGYgY3VycmVudFdpbmRvd10gZnJhbWVdLnNp
emUuaGVpZ2h0IC0gZGVzdFBvaW50Lnk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2Fw
ZVBsdWdpblBhY2thZ2UubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5l
dHNjYXBlUGx1Z2luUGFja2FnZS5tbQppbmRleCBmMjI4OTM0NzQyMTkwNGJlZTNjODg2NjZjNGUz
MDA5MmZjMTA1MGRlLi41NGQwYWRjNGYwZTJmMjU4NzQ3OGVhZjlmNjA2MTZjOTAxODQ0NTViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1
Z2luUGFja2FnZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5l
dHNjYXBlUGx1Z2luUGFja2FnZS5tbQpAQCAtMTY3LDE0ICsxNjcsMTMgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAgICAgaWYgKCFOUF9Jbml0aWFsaXplIHx8ICFOUF9HZXRFbnRyeVBvaW50
cyB8fCAhTlBfU2h1dGRvd24pCiAgICAgICAgIHJldHVybiBOTzsKIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgLy8gUGx1Z2lucyAoYXQgbGVhc3QgUVQpIHJlcXVpcmUgdGhhdCB5b3UgY2FsbCBV
c2VSZXNGaWxlIG9uIHRoZSByZXNvdXJjZSBmaWxlIGJlZm9yZSBsb2FkaW5nIGl0LgogICAgIHJl
c291cmNlUmVmID0gW3NlbGYgb3BlblJlc291cmNlRmlsZV07CiAgICAgaWYgKHJlc291cmNlUmVm
ICE9IC0xKSB7CiAgICAgICAgIFVzZVJlc0ZpbGUocmVzb3VyY2VSZWYpOwogICAgIH0KLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIAogICAgIGJyb3dzZXJGdW5jcy52ZXJzaW9uID0gTlBfVkVSU0lPTl9NSU5PUjsKICAg
ICBicm93c2VyRnVuY3Muc2l6ZSA9IHNpemVvZihOUE5ldHNjYXBlRnVuY3MpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmll
dy5tbQppbmRleCA0OWRjMWM1MTRmNzJjNDQ5ZmZkYWU3MjljYThkOWMwODE2NGE5ZTNlLi45YTc0
NWQ5MzgzZjc0NDdmNTQyZGY1MDQ1ZTI0NDViMzg1M2UwODgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpA
QCAtMzc3LDEwICszNzcsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0TlBSZWN0KGNvbnN0IE5T
UmVjdCYgbnIsIE5QUmVjdCYgbnByKQogICAgICAgICAgICAgUmduSGFuZGxlIGNsaXBSZWdpb24g
PSBOZXdSZ24oKTsKICAgICAgICAgICAgIHFkUG9ydFN0YXRlLT5jbGlwUmVnaW9uID0gY2xpcFJl
Z2lvbjsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAgIENHQ29udGV4
dFJlZiBjdXJyZW50Q29udGV4dCA9IChDR0NvbnRleHRSZWYpW1tOU0dyYXBoaWNzQ29udGV4dCBj
dXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAg
ICAgICAgaWYgKGN1cnJlbnRDb250ZXh0ICYmIENHQ29udGV4dEdldFR5cGUoY3VycmVudENvbnRl
eHQpID09IGtDR0NvbnRleHRUeXBlQml0bWFwKSB7CiAgICAgICAgICAgICAgICAgLy8gV2UgY2hl
Y2sgZm9yIGtDR0NvbnRleHRUeXBlQml0bWFwIGhlcmUsIGJlY2F1c2UgaWYgd2UganVzdCBjYWxs
ZWQgQ0dCaXRtYXBDb250ZXh0R2V0RGF0YQogICAgICAgICAgICAgICAgIC8vIG9uIGFueSBjb250
ZXh0LCB3ZSdkIGxvZyB0byB0aGUgY29uc29sZSBldmVyeSB0aW1lLiBCdXQgZXZlbiBpZiBjdXJy
ZW50Q29udGV4dCBpcyBhCkBAIC01MDMsMTAgKzUwMiw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBn
ZXROUFJlY3QoY29uc3QgTlNSZWN0JiBuciwgTlBSZWN0JiBucHIpCiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIEFTU0VSVChbTlNWaWV3IGZvY3VzVmlld10gPT0gc2VsZik7CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IHN0
YXRpY19jYXN0PENHQ29udGV4dFJlZj4oW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4
dF0gZ3JhcGhpY3NQb3J0XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgICAgICAgICAgUG9y
dFN0YXRlX0NHICpjZ1BvcnRTdGF0ZSA9IChQb3J0U3RhdGVfQ0cgKiltYWxsb2Moc2l6ZW9mKFBv
cnRTdGF0ZV9DRykpOwogICAgICAgICAgICAgcG9ydFN0YXRlID0gKFBvcnRTdGF0ZSljZ1BvcnRT
dGF0ZTsKQEAgLTY5NSwxMCArNjkzLDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGdldE5QUmVjdChj
b25zdCBOU1JlY3QmIG5yLCBOUFJlY3QmIG5wcikKIHsKICAgICBBU1NFUlQoX2V2ZW50SGFuZGxl
cik7CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9
IHN0YXRpY19jYXN0PENHQ29udGV4dFJlZj4oW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29u
dGV4dF0gZ3JhcGhpY3NQb3J0XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgX2V2ZW50SGFuZGxlci0+ZHJh
d1JlY3QoY29udGV4dCwgcmVjdCk7CiB9CiAKQEAgLTEzMzgsMTAgKzEzMzUsOSBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgZ2V0TlBSZWN0KGNvbnN0IE5TUmVjdCYgbnIsIE5QUmVjdCYgbnByKQogICAg
ICAgICBpZiAocHJpbnRlZFBsdWdpbkJpdG1hcCkgewogICAgICAgICAgICAgLy8gRmxpcCB0aGUg
Yml0bWFwIGJlZm9yZSBkcmF3aW5nIGJlY2F1c2UgdGhlIFF1aWNrRHJhdyBwb3J0IGlzIGZsaXBw
ZWQgcmVsYXRpdmUKICAgICAgICAgICAgIC8vIHRvIHRoaXMgdmlldy4KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgICAgICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gKENHQ29u
dGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNn
Q29udGV4dCk7CiAgICAgICAgICAgICBOU1JlY3QgYm91bmRzID0gW3NlbGYgYm91bmRzXTsKICAg
ICAgICAgICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjZ0NvbnRleHQsIDAuMGYsIE5TSGVpZ2h0
KGJvdW5kcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9X
ZWJQbHVnaW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9X
ZWJQbHVnaW5Db250cm9sbGVyLm1tCmluZGV4IDI5MGZlZjYzYWQ5MTZhYTYxOGQzMGEyMWQ5MTQz
ZTIxOGVjOTBlODUuLjgzNzlkM2Q3YzgzYjAxNTA1MmRmODExY2Y0MzcxMzE3OTBjYjc0NTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJv
bGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNv
bnRyb2xsZXIubW0KQEAgLTY1NCwyMSArNjU0LDE5IEBAIHN0YXRpYyBhbGVydERpZEVuZElNUCBv
cmlnaW5hbF9UU1VwZGF0ZUNoZWNrX2FsZXJ0RGlkRW5kX3JldHVybkNvZGVfY29udGV4dEluZm9f
CiAKIHN0YXRpYyB2b2lkIFdlYktpdF9UU1VwZGF0ZUNoZWNrX2FsZXJ0RGlkRW5kX3JldHVybkNv
ZGVfY29udGV4dEluZm9fKGlkIG9iamVjdCwgU0VMIHNlbGVjdG9yLCBOU0FsZXJ0ICphbGVydCwg
TlNJbnRlZ2VyIHJldHVybkNvZGUsIHZvaWQqIGNvbnRleHRJbmZvKQogewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgW1soVFNVcGRhdGVDaGVjayAqKW9iamVjdCBkZWxlZ2F0ZV0gYXV0b3JlbGVh
c2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogCiAgICAgb3JpZ2luYWxfVFNVcGRhdGVDaGVja19hbGVydERpZEVu
ZF9yZXR1cm5Db2RlX2NvbnRleHRJbmZvXyhvYmplY3QsIHNlbGVjdG9yLCBhbGVydCwgcmV0dXJu
Q29kZSwgY29udGV4dEluZm8pOwogfQogCiBzdGF0aWMgdm9pZCBXZWJLaXRfTlNBbGVydF9iZWdp
blNoZWV0TW9kYWxGb3JXaW5kb3dfbW9kYWxEZWxlZ2F0ZV9kaWRFbmRTZWxlY3Rvcl9jb250ZXh0
SW5mb18oaWQgb2JqZWN0LCBTRUwgc2VsZWN0b3IsIE5TV2luZG93ICp3aW5kb3csIGlkIG1vZGFs
RGVsZWdhdGUsIFNFTCBkaWRFbmRTZWxlY3Rvciwgdm9pZCogY29udGV4dEluZm8pCiB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICBpZiAoaXNLaW5kT2ZDbGFzcyhtb2RhbERlbGVnYXRlLCBAIlRT
VXBkYXRlQ2hlY2siKSkKICAgICAgICAgW1soVFNVcGRhdGVDaGVjayAqKW1vZGFsRGVsZWdhdGUg
ZGVsZWdhdGVdIHJldGFpbl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBvcmlnaW5hbF9OU0FsZXJ0X2Jl
Z2luU2hlZXRNb2RhbEZvcldpbmRvd19tb2RhbERlbGVnYXRlX2RpZEVuZFNlbGVjdG9yX2NvbnRl
eHRJbmZvXyhvYmplY3QsIHNlbGVjdG9yLCB3aW5kb3csIG1vZGFsRGVsZWdhdGUsIGRpZEVuZFNl
bGVjdG9yLCBjb250ZXh0SW5mbyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KaW5kZXggN2IxZmJlYWVlMTA2MDli
ZWM5ZjNjMmZlNGQ2NDY2OTlkZDNkNGFmOC4uODk3MTAzOGExYzEzOTJlMGY1Y2FiM2M2YWNhOWJk
NWE3MzFlZTJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvUG9wdXBNZW51TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQpAQCAtMTEzLDE1ICsxMTMsMTQgQEAgdm9pZCBQb3B1
cE1lbnVNYWM6OnBvcHVsYXRlKCkKICAgICAgICAgW21lbnVJdGVtIHNldEVuYWJsZWQ6bV9jbGll
bnQtPml0ZW1Jc0VuYWJsZWQoaSldOwogICAgICAgICBbbWVudUl0ZW0gc2V0VG9vbFRpcDptX2Ns
aWVudC0+aXRlbVRvb2xUaXAoaSldOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAg
IC8vIEFsbG93IHRoZSBhY2Nlc3NpYmxlIHRleHQgb2YgdGhlIGl0ZW0gdG8gYmUgb3ZlcnJpZGRl
biBpZiBuZWNlc3NhcnkuCiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBOU1N0cmluZyAqYWNjZXNzaWJpbGl0eU92ZXJyaWRl
ID0gbV9jbGllbnQtPml0ZW1BY2Nlc3NpYmlsaXR5VGV4dChpKTsKICAgICAgICAgICAgIGlmIChb
YWNjZXNzaWJpbGl0eU92ZXJyaWRlIGxlbmd0aF0pCiAgICAgICAgICAgICAgICAgW21lbnVJdGVt
IGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVlOmFjY2Vzc2liaWxpdHlPdmVycmlkZSBmb3JB
dHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25BdHRyaWJ1dGVdOwogICAgICAgICB9
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGll
bnQuaAppbmRleCBjOGQzM2ViMTg5YTZmMzFkNWNjYmRlMThlZDU3YjZmZTU0Y2ZmN2Q0Li4zMDZk
ZTU1Mjg4NzkwZTZlY2Y4YTVmYzk0OTg4ZjY3OTUyMTk4Y2RjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5h
dGl2ZVRleHRDbGllbnQuaApAQCAtNTAsMTQgKzUwLDExIEBAIHB1YmxpYzoKICNlbmRpZgogcHJp
dmF0ZToKICNpZiBQTEFURk9STShJT1MpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I2lmIGRlZmluZWQoX19oYXNfd2FybmluZykgJiYgX19oYXNfd2FybmluZygiLVd1bnVzZWQtcHJp
dmF0ZS1maWVsZCIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQt
cHJpdmF0ZS1maWVsZCIKLSNlbmRpZgorSUdOT1JFX0NMQU5HX1dBUk5JTkdfQkVHSU4oIi1XdW51
c2VkLXByaXZhdGUtZmllbGQiKQogI2VuZGlmCiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwogI2lm
IFBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9DTEFO
R19XQVJOSU5HX0VORAogI2VuZGlmCiAjaWYgVVNFKEFVVE9DT1JSRUNUSU9OX1BBTkVMKQogICAg
IENvcnJlY3Rpb25QYW5lbCBtX2NvcnJlY3Rpb25QYW5lbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCmluZGV4IGE1
OTI0ZjQ3ZTA2NzJjZTZhNTQ0MTk4ODE0MDU3YTZmN2Q2OGRjZTIuLmE0Y2M2YWYyN2E4MmFlN2Jl
NjA2MDc1MGI1NTEzODhjMDFhYWIyOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbQpAQCAtMTMzLDEwICsxMzMs
OSBAQCB2b2lkIFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyhEcmFnSXRlbSBkcmFnSXRlbSwgRGF0
YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIEZyYQogICAgICAgICAgICAgUmVwb3J0RGlzY2FyZGVk
RGVsZWdhdGVFeGNlcHRpb24oc2VsZWN0b3IsIGV4Y2VwdGlvbik7CiAgICAgICAgIH0KICAgICB9
IGVsc2UKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgW3RvcEhUTUxWaWV3IGRyYWdJ
bWFnZTpkcmFnTlNJbWFnZSBhdDpkcmFnTG9jYXRpb25JbkNvbnRlbnRDb29yZGluYXRlcyBvZmZz
ZXQ6TlNaZXJvU2l6ZSBldmVudDpldmVudCBwYXN0ZWJvYXJkOnBhc3RlYm9hcmQgc291cmNlOnNv
dXJjZUhUTUxWaWV3IHNsaWRlQmFjazpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogdm9pZCBX
ZWJEcmFnQ2xpZW50OjpiZWdpbkRyYWcoRHJhZ0l0ZW0gZHJhZ0l0ZW0sIEZyYW1lJiBmcmFtZSwg
Y29uc3QgSW50UG9pbnQmIG1vdXNlRG93blBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgbW91c2VE
cmFnZ2VkUG9zaXRpb24sIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBEcmFnU291cmNlQWN0
aW9uIGRyYWdTb3VyY2VBY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDli
OTEwN2RmZjI4NGY4OWM1ODcyMDRkNmIxNjNlZTM4ZDRkY2VlYjYuLjIzNWM2MjdmNzM3MzNkYTFi
MDAxNTlhZTA0ZjA1NWQ0MGExNDc3NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBA
IC0zMDgsMTAgKzMwOCw5IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZlcnRNYWlu
UmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciogZG9jCiAKICAgICBpZiAoIW1h
aW5SZXNvdXJjZUxvYWRlcikgewogICAgICAgICAvLyBUaGUgcmVzb3VyY2UgaGFzIGFscmVhZHkg
YmVlbiBjYWNoZWQsIG9yIHRoZSBjb252ZXJzaW9uIGlzIGJlaW5nIGF0dG1wdGVkIHdoZW4gbm90
IGNhbGxpbmcgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSgpLgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgICAgICBXZWJEb3dubG9hZCAqd2ViRG93bmxvYWQgPSBbW1dl
YkRvd25sb2FkIGFsbG9jXSBpbml0V2l0aFJlcXVlc3Q6cmVxdWVzdC5uc1VSTFJlcXVlc3QoSFRU
UEJvZHlVcGRhdGVQb2xpY3k6OlVwZGF0ZUhUVFBCb2R5KSBkZWxlZ2F0ZTpbd2ViVmlldyBkb3du
bG9hZERlbGVnYXRlXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBbd2ViRG93bmxvYWQgYXV0
b3JlbGVhc2VdOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjM0NSwxMCArMjM0NCw5IEBA
IHN0YXRpYyBOU0ltYWdlICp3ZWJHZXROU0ltYWdlKEltYWdlKiBpbWFnZSwgTlNTaXplIHNpemUp
CiAgICAgaWYgKCFuc0ltYWdlKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIGlmICghTlNFcXVh
bFNpemVzKFtuc0ltYWdlIHNpemVdLCBzaXplKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgICAgICBbbnNJbWFnZSBzZXRTY2FsZXNXaGVuUmVzaXplZDpZRVNdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAgICAgICAgW25zSW1hZ2Ugc2V0U2l6ZTpzaXplXTsKICAgICB9CiAgICAgcmV0dXJuIG5z
SW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3Iv
V2ViTm9kZUhpZ2hsaWdodC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rv
ci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCmluZGV4IDkxYjY1YmVjOTRiZjg5NGY0MTY1NGJlOTRiZWRh
MzMxZDllZWVkOTAuLmM4YmE3ZmI0MTJiZGMwZDM4NzdkOWViZDQ3ZjExZTJlYmVjNjc3YTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGln
aGxpZ2h0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJO
b2RlSGlnaGxpZ2h0Lm1tCkBAIC0yNjYsMTAgKzI2Niw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogICAgIEFTU0VSVChbX3RhcmdldFZpZXcgd2luZG93XSk7CiAKICAgICBOU1JlY3QgaGln
aGxpZ2h0V2luZG93RnJhbWUgPSBbX3RhcmdldFZpZXcgY29udmVydFJlY3Q6W190YXJnZXRWaWV3
IHZpc2libGVSZWN0XSB0b1ZpZXc6bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGhpZ2hs
aWdodFdpbmRvd0ZyYW1lLm9yaWdpbiA9IFtbX3RhcmdldFZpZXcgd2luZG93XSBjb252ZXJ0QmFz
ZVRvU2NyZWVuOmhpZ2hsaWdodFdpbmRvd0ZyYW1lLm9yaWdpbl07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAg
ICByZXR1cm4gaGlnaGxpZ2h0V2luZG93RnJhbWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodFZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodFZpZXcubW0K
aW5kZXggZTdjZDVlNDYyZGYyNjhmYWQyMDZkZGE1MTJkZDUzMzM1M2IxOTA0Ni4uYTVhNTBjZWNh
NTIxMTVkMzkyNDA1OGE0ODAyZmVhNzZhYzFkMGRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHRWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5t
bQpAQCAtOTgsMTAgKzk4LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKICAgICAgICAg
QVNTRVJUKFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGlzRmxpcHBlZF0pOwog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIEdyYXBoaWNzQ29udGV4dCBjb250ZXh0
KChQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCopW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29u
dGV4dF0gZ3JhcGhpY3NQb3J0XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBbX3dlYk5vZGVI
aWdobGlnaHQgaW5zcGVjdG9yQ29udHJvbGxlcl0tPmRyYXdIaWdobGlnaHQoY29udGV4dCk7CiAg
ICAgICAgIFtOU0dyYXBoaWNzQ29udGV4dCByZXN0b3JlR3JhcGhpY3NTdGF0ZV07CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJDbGlwVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViQ2xpcFZpZXcubW0KaW5kZXgg
NWZkNWMxNDI3MDJiMTg2ZWE5NDA3ZjM4ZmMwZTNjOTM2YjQ3YjQ2YS4uN2Y1NTI0YTM0NWNmYjVh
MmVmN2IxMzRjMTFiZDgwNjBmZjMxMGFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJDbGlwVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1tCkBAIC02Niw4ICs2Niw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgLy8gSW4gV2ViSFRNTFZpZXcsIHdlIHNldCBhIGNsaXAuIFRoaXMg
aXMgbm90IHR5cGljYWwgdG8gZG8gaW4gYW4KICAgICAvLyBOU1ZpZXcsIGFuZCB3aGlsZSBjb3Jy
ZWN0IGZvciBhbnkgb25lIGludm9jYXRpb24gb2YgZHJhd1JlY3Q6LAogICAgIC8vIGl0IGNhdXNl
cyBzb21lIGJhZCBwcm9ibGVtcyBpZiB0aGF0IGNsaXAgaXMgY2FjaGVkIGJldHdlZW4gY2FsbHMu
CkBAIC03OCw3ICs3Nyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIC8vIFNlZSB0
aGVzZSBidWdzIGZvciBtb3JlIGluZm9ybWF0aW9uOgogICAgIC8vIDxyZGFyOi8vcHJvYmxlbS8z
NDA5MzE1PjogUkVHUkVTU1NJT04gKDdCNTgtN0I2MCk/OiBTYWZhcmkgZHJhd3MgYmxhbmsgZnJh
bWVzIG9uIG1hY29zeC5hcHBsZS5jb20gcGVyZiBwYWdlCiAgICAgW3NlbGYgcmVsZWFzZUdTdGF0
ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAKICAgICByZXR1cm4gc2VsZjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IDg2MGRiMjkwZTEwZmMyY2IyNWNkZjkx
NjQwMmFkYjdjY2U5Y2Y3OTQuLjk2Y2ViYmVmOTQzODllYjJiNWZlYmU0ZjU1ODhmY2E5Zjg2MjM5
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAt
NDQzLDEwICs0NDMsOSBAQCBzdGF0aWMgTlNVUkwgKmNyZWF0ZVVuaXF1ZVdlYkRhdGFVUkwoKTsK
ICAgICAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IGZyYW1lLT52aWV3KCkpIHsKICAgICAgICAg
ICAgIHZpZXctPnNldFRyYW5zcGFyZW50KCFkcmF3c0JhY2tncm91bmQpOwogI2lmICFQTEFURk9S
TShJT1MpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgQ29sb3IgY29s
b3IgPSBjb2xvckZyb21OU0NvbG9yKFtiYWNrZ3JvdW5kQ29sb3IgY29sb3JVc2luZ0NvbG9yU3Bh
Y2VOYW1lOk5TRGV2aWNlUkdCQ29sb3JTcGFjZV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAjZWxz
ZQogICAgICAgICAgICAgQ29sb3IgY29sb3IgPSBDb2xvcihiYWNrZ3JvdW5kQ29sb3IpOwogI2Vu
ZGlmCkBAIC02MjIsMTAgKzYyMSw5IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0
YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogI2lmICFQTEFURk9STShJT1MpCiAgICAg
QVNTRVJUKFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGlzRmxpcHBlZF0pOwog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDR0NvbnRleHRSZWYgY3R4ID0gc3RhdGljX2Nhc3Q8
Q0dDb250ZXh0UmVmPihbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGlj
c1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbHNlCiAgICAgQ0dDb250ZXh0UmVmIGN0eCA9IFdLR2V0
Q3VycmVudEdyYXBoaWNzQ29udGV4dCgpOwogI2VuZGlmCkBAIC0yMjA3LDEwICsyMjA1LDkgQEAg
c3RhdGljIFdlYkZyYW1lTG9hZFR5cGUgdG9XZWJGcmFtZUxvYWRUeXBlKEZyYW1lTG9hZFR5cGUg
ZnJhbWVMb2FkVHlwZSkKICAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFi
bGVkKCkpIHsKICAgICAgICAgQVhPYmplY3RDYWNoZTo6ZW5hYmxlQWNjZXNzaWJpbGl0eSgpOwog
I2lmICFQTEFURk9STShJT1MpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIEFYT2Jq
ZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoW1tOU0FwcCBh
Y2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50
ZXJmYWNlQXR0cmlidXRlXSBib29sVmFsdWVdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAjZW5kaWYKICAg
ICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQppbmRleCA3NTNkY2ViMjhkMzBlNmE5MGY0MDE3
ZDlmMDFlM2Q0ZWRmZmYxNTM5Li41ZWEyMzM5M2JmZTczN2MwNmMyNGUwNDJlMGUwZTFkNDIyZGI5
N2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZ1bGxT
Y3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KQEAgLTIwNywxMSArMjA3LDEwIEBAIHN0YXRpYyBO
U1JlY3QgY29udmVydFJlY3RUb1NjcmVlbihOU1dpbmRvdyAqd2luZG93LCBOU1JlY3QgcmVjdCkK
ICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gd2ViVmlld0NvbnRlbnRzID0gYWRvcHRDRihDR1dp
bmRvd0xpc3RDcmVhdGVJbWFnZShOU1JlY3RUb0NHUmVjdCh3ZWJWaWV3RnJhbWUpLCBrQ0dXaW5k
b3dMaXN0T3B0aW9uSW5jbHVkaW5nV2luZG93LCB3aW5kb3dJRCwga0NHV2luZG93SW1hZ2VTaG91
bGRCZU9wYXF1ZSkpOwogICAgIAogICAgIC8vIFNjcmVlbiB1cGRhdGVzIHRvIGJlIHJlLWVuYWJs
ZWQgaW4gYmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7CiAgICAgW1tz
ZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgTlNSZXNw
b25kZXIgKndlYldpbmRvd0ZpcnN0UmVzcG9uZGVyID0gW1tfd2ViVmlldyB3aW5kb3ddIGZpcnN0
UmVzcG9uZGVyXTsKICAgICBbW3NlbGYgd2luZG93XSBzZXRGcmFtZTpzY3JlZW5GcmFtZSBkaXNw
bGF5Ok5PXTsKQEAgLTI2OCwxMSArMjY3LDEwIEBAIHN0YXRpYyB2b2lkIHNldENsaXBSZWN0Rm9y
V2luZG93KE5TV2luZG93ICp3aW5kb3csIE5TUmVjdCBjbGlwUmVjdCkKICAgICBfaXNFbnRlcmlu
Z0Z1bGxTY3JlZW4gPSBOTzsKICAgICAKICAgICBpZiAoY29tcGxldGVkKSB7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgICAgIC8vIFNjcmVlbiB1cGRhdGVzIHRvIGJlIHJlLWVuYWJsZWQg
YXQgdGhlIGVuZCBvZiB0aGlzIGJsb2NrCiAgICAgICAgIE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMo
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFtzZWxmIF9kb2N1bWVudF0tPnNldEFuaW1hdGlu
Z0Z1bGxTY3JlZW4oZmFsc2UpOwogICAgICAgICBbc2VsZiBfZG9jdW1lbnRdLT53ZWJraXREaWRF
bnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KF9lbGVtZW50LmdldCgpKTsKICAgICAgICAgCkBAIC0y
OTQsMTAgKzI5Miw5IEBAIHN0YXRpYyB2b2lkIHNldENsaXBSZWN0Rm9yV2luZG93KE5TV2luZG93
ICp3aW5kb3csIE5TUmVjdCBjbGlwUmVjdCkKICAgICAgICAgCiAgICAgICAgIFtfYmFja2dyb3Vu
ZFdpbmRvdy5nZXQoKSBvcmRlck91dDpzZWxmXTsKICAgICAgICAgW19iYWNrZ3JvdW5kV2luZG93
LmdldCgpIHNldEZyYW1lOk5TWmVyb1JlY3QgZGlzcGxheTpZRVNdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgfSBlbHNlCiAgICAgICAgIFtfc2NhbGVBbmltYXRpb24uZ2V0KCkgc3RvcEFuaW1hdGlv
bl07CiB9CkBAIC0zMTUsMTIgKzMxMiwxMSBAQCBzdGF0aWMgdm9pZCBzZXRDbGlwUmVjdEZvcldp
bmRvdyhOU1dpbmRvdyAqd2luZG93LCBOU1JlY3QgY2xpcFJlY3QpCiAgICAgICAgIHJldHVybjsK
ICAgICBfaXNGdWxsU2NyZWVuID0gTk87CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIFNj
cmVlbiB1cGRhdGVzIHRvIGJlIHJlLWVuYWJsZWQgaW4gYmVnYW5FeGl0RnVsbFNjcmVlbldpdGhJ
bml0aWFsRnJhbWU6ZmluYWxGcmFtZToKICAgICBOU0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7CiAg
ICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAg
X2ZpbmFsRnJhbWUgPSBzY3JlZW5SZWN0T2ZDb250ZW50cyhfZWxlbWVudC5nZXQoKSk7CiAKQEAg
LTM2MCwxMSArMzU2LDEwIEBAIHN0YXRpYyB2b2lkIHNldENsaXBSZWN0Rm9yV2luZG93KE5TV2lu
ZG93ICp3aW5kb3csIE5TUmVjdCBjbGlwUmVjdCkKICAgICAKICAgICBbc2VsZiBfdXBkYXRlTWVu
dUFuZERvY2tGb3JGdWxsU2NyZWVuXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8gU2Ny
ZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBhdCB0aGUgZW5kIG9mIHRoaXMgZnVuY3Rpb24K
ICAgICBOU0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBbc2VsZiBf
ZG9jdW1lbnRdLT5zZXRBbmltYXRpbmdGdWxsU2NyZWVuKGZhbHNlKTsKICAgICBbc2VsZiBfZG9j
dW1lbnRdLT53ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoX2VsZW1lbnQuZ2V0KCkp
OwpAQCAtMzkxLDEwICszODYsOSBAQCBzdGF0aWMgdm9pZCBzZXRDbGlwUmVjdEZvcldpbmRvdyhO
U1dpbmRvdyAqd2luZG93LCBOU1JlY3QgY2xpcFJlY3QpCiAKICAgICBbW193ZWJWaWV3IHdpbmRv
d10gbWFrZUtleUFuZE9yZGVyRnJvbnQ6c2VsZl07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAtICh2b2lkKXBlcmZv
cm1DbG9zZTooaWQpc2VuZGVyCkBAIC01MTMsMTAgKzUwNyw5IEBAIHN0YXRpYyBOU1JlY3Qgd2lu
ZG93RnJhbWVGcm9tQXBwYXJlbnRGcmFtZXMoTlNSZWN0IHNjcmVlbkZyYW1lLCBOU1JlY3QgaW5p
dGlhbEZyCiAgICAgCiAgICAgLy8gc2V0Q2xpcFJlY3RGb3JXaW5kb3cgdGFrZXMgd2luZG93IGNv
b3JkaW5hdGVzLCBzbyBjb252ZXJ0IGZyb20gc2NyZWVuIGNvb3JkaW5hdGVzIGhlcmU6CiAgICAg
TlNSZWN0IGZpbmFsQm91bmRzID0gX2ZpbmFsRnJhbWU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICBmaW5hbEJvdW5kcy5vcmlnaW4gPSBbW3NlbGYgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNl
OmZpbmFsQm91bmRzLm9yaWdpbl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgc2V0Q2xpcFJlY3RGb3JXaW5k
b3coc2VsZi53aW5kb3csIGZpbmFsQm91bmRzKTsKICAgICAKICAgICBbW3NlbGYgd2luZG93XSBt
YWtlS2V5QW5kT3JkZXJGcm9udDpzZWxmXTsKQEAgLTU0MywxNiArNTM2LDE0IEBAIHN0YXRpYyBO
U1JlY3Qgd2luZG93RnJhbWVGcm9tQXBwYXJlbnRGcmFtZXMoTlNSZWN0IHNjcmVlbkZyYW1lLCBO
U1JlY3QgaW5pdGlhbEZyCiAgICAgCiAgICAgW19iYWNrZ3JvdW5kV2luZG93LmdldCgpIG9yZGVy
V2luZG93Ok5TV2luZG93QmVsb3cgcmVsYXRpdmVUbzpbW3NlbGYgd2luZG93XSB3aW5kb3dOdW1i
ZXJdXTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1
dG9kaXNwbGF5OllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW1tzZWxmIHdpbmRvd10gZGlzcGxheUlm
TmVlZGVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIFNjcmVlbiB1cGRhdGVzIGRpc2Fi
bGVkIGluIGVudGVyRnVsbFNjcmVlbjoKICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKIH0KIAogLSAodm9pZClfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhE
dXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb24KQEAgLTU5MSwyMyArNTgyLDIwIEBAIHN0
YXRpYyBOU1JlY3Qgd2luZG93RnJhbWVGcm9tQXBwYXJlbnRGcmFtZXMoTlNSZWN0IHNjcmVlbkZy
YW1lLCBOU1JlY3QgaW5pdGlhbEZyCiAgICAgCiAgICAgLy8gc2V0Q2xpcFJlY3RGb3JXaW5kb3cg
dGFrZXMgd2luZG93IGNvb3JkaW5hdGVzLCBzbyBjb252ZXJ0IGZyb20gc2NyZWVuIGNvb3JkaW5h
dGVzIGhlcmU6CiAgICAgTlNSZWN0IGZpbmFsQm91bmRzID0gX2ZpbmFsRnJhbWU7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBmaW5hbEJvdW5kcy5vcmlnaW4gPSBbW3NlbGYgd2luZG93XSBjb252
ZXJ0U2NyZWVuVG9CYXNlOmZpbmFsQm91bmRzLm9yaWdpbl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgc2V0
Q2xpcFJlY3RGb3JXaW5kb3coc2VsZi53aW5kb3csIGZpbmFsQm91bmRzKTsKICAgICAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1dG9kaXNwbGF5OllFU107Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgW1tzZWxmIHdpbmRvd10gZGlzcGxheUlmTmVlZGVkXTsKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgZGlzYWJsZWQgaW4gZXhpdEZ1bGxT
Y3JlZW46CiAgICAgTlNFbmFibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIEBl
bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmlu
ZGV4IDZhN2IxNDBiZDg1ZDNmMTNkZTQxYzZkYmZlNTJhM2M0NDhkNDUyNTMuLjNkNTAwOWRhMzFm
YzIxMjBmN2ZhZDNkZGQ0MzFhOGRlZGZlZDcwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtNjI0LDEwICs2MjQsOSBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxOU0ludGVnZXI+IHRvVGFnKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbikK
IAogLSAoTlNWaWV3ICopX3dlYl9ib3JkZXJWaWV3CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICByZXR1cm4gX2JvcmRlclZpZXc7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIEBlbmQKQEAgLTE0OTQsMTAg
KzE0OTMsOSBAQCBzdGF0aWMgTlNDb250cm9sU3RhdGVWYWx1ZSBraXQoVHJpU3RhdGUgc3RhdGUp
CiB7CiAgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBl
Ok5TRXZlbnRUeXBlTW91c2VNb3ZlZAogICAgICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3Vz
ZUxvY2F0aW9uXV0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBtb2RpZmllckZsYWdzOltbTlNBcHAgY3VycmVu
dEV2ZW50XSBtb2RpZmllckZsYWdzXQogICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50
ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAgICAgIHdpbmRvd051bWJlcjpbW3NlbGYgd2lu
ZG93XSB3aW5kb3dOdW1iZXJdCkBAIC0xNTM4LDE5ICsxNTM2LDE3IEBAIHN0YXRpYyBOU0NvbnRy
b2xTdGF0ZVZhbHVlIGtpdChUcmlTdGF0ZSBzdGF0ZSkKICNpZiBQTEFURk9STShNQUMpCiAgICAg
QVNTRVJUKCFfcHJpdmF0ZS0+c3Vidmlld3NTZXRBc2lkZSk7CiAgICAgQVNTRVJUKF9wcml2YXRl
LT5zYXZlZFN1YnZpZXdzID09IG5pbCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBfcHJpdmF0
ZS0+c2F2ZWRTdWJ2aWV3cyA9IF9zdWJ2aWV3czsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAvLyBXZSBuZWVk
IHRvIGtlZXAgdGhlIGxheWVyLWhvc3RpbmcgdmlldyBpbiB0aGUgc3Vidmlld3MsIG90aGVyd2lz
ZSB0aGUgbGF5ZXJzIGZsYXNoLgogICAgIGlmIChfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldykg
ewogICAgICAgICBOU0FycmF5KiBuZXdTdWJ2aWV3cyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdp
dGhPYmplY3RzOl9wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3LCBuaWxdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgICAgICBfc3Vidmlld3MgPSBuZXdTdWJ2aWV3czsKICAgICB9IGVsc2UK
ICAgICAgICAgX3N1YnZpZXdzID0gbmlsOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIF9wcml2YXRlLT5zdWJ2
aWV3c1NldEFzaWRlID0gWUVTOwogI2VuZGlmCiAgfQpAQCAtMTU2MCwxNCArMTU1NiwxMyBAQCBz
dGF0aWMgTlNDb250cm9sU3RhdGVWYWx1ZSBraXQoVHJpU3RhdGUgc3RhdGUpCiAjaWYgUExBVEZP
Uk0oTUFDKQogICAgIEFTU0VSVChfcHJpdmF0ZS0+c3Vidmlld3NTZXRBc2lkZSk7CiAgICAgaWYg
KF9wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3KSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgICAgIFtfc3Vidmlld3MgcmVsZWFzZV07CiAgICAgICAgIF9zdWJ2aWV3cyA9IF9wcml2YXRl
LT5zYXZlZFN1YnZpZXdzOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChfc3Vidmlld3Mg
PT0gbmlsKTsKICAgICAgICAgX3N1YnZpZXdzID0gX3ByaXZhdGUtPnNhdmVkU3Vidmlld3M7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgIH0KICAgICBfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3cyA9IG5pbDsK
ICAgICBfcHJpdmF0ZS0+c3Vidmlld3NTZXRBc2lkZSA9IE5POwpAQCAtMjExMCwxMCArMjEwNSw5
IEBAIHN0YXRpYyBib29sIG1vdXNlRXZlbnRJc1BhcnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2
ZW50KQogCiAgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZAogICAgICAgICBsb2NhdGlvbjpbW3NlbGYg
d2luZG93XQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNF
dmVudCBtb3VzZUxvY2F0aW9uXV0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBtb2RpZmllckZsYWdzOltbTlNB
cHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXQogICAgICAgICB0aW1lc3RhbXA6W05TRGF0
ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAgICAgIHdpbmRvd051bWJlcjpb
W3NlbGYgd2luZG93XSB3aW5kb3dOdW1iZXJdCkBAIC0zOTgyLDEwICszOTc2LDkgQEAgc3RhdGlj
IEJPT0wgY3VycmVudFNjcm9sbElzQmxpdChOU1ZpZXcgKmNsaXBWaWV3KQogI2lmIFBMQVRGT1JN
KE1BQykKICAgICAvLyBPbmx5IGRvIHRoZSBzeW5jaHJvbml6YXRpb24gZGFuY2UgaWYgd2UncmUg
ZHJhd2luZyBpbnRvIHRoZSB3aW5kb3csIG90aGVyd2lzZQogICAgIC8vIHdlIHJpc2sgZGlzYWJs
aW5nIHNjcmVlbiB1cGRhdGVzIHdoZW4gbm8gZmx1c2ggaXMgcGVuZGluZy4KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIGlmIChbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdID09IFtb
c2VsZiB3aW5kb3ddIGdyYXBoaWNzQ29udGV4dF0gJiYgW3dlYlZpZXcgX25lZWRzT25lU2hvdERy
YXdpbmdTeW5jaHJvbml6YXRpb25dKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAvLyBEaXNh
YmxlIHNjcmVlbiB1cGRhdGVzIHRvIG1pbmltaXplIHRoZSBjaGFuY2VzIG9mIHRoZSByYWNlIGJl
dHdlZW4gdGhlIENBCiAgICAgICAgIC8vIGRpc3BsYXkgbGluayBhbmQgQXBwS2l0IGRyYXdpbmcg
Y2F1c2luZyBmbGFzaGVzLgogICAgICAgICBbW3NlbGYgd2luZG93XSBkaXNhYmxlU2NyZWVuVXBk
YXRlc1VudGlsRmx1c2hdOwpAQCAtNDIxNywxMiArNDIxMCwxMSBAQCBzdGF0aWMgQk9PTCBjdXJy
ZW50U2Nyb2xsSXNCbGl0KE5TVmlldyAqY2xpcFZpZXcpCiAgICAgaWYgKEZyYW1lKiBjb3JlZnJh
bWUgPSBjb3JlKFtzZWxmIF9mcmFtZV0pKQogICAgICAgICBjb3JlZnJhbWUtPmV2ZW50SGFuZGxl
cigpLm1vdXNlRG93bihldmVudCk7CiAjZWxzZQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNJ
bnB1dE1hbmFnZXIgKmN1cnJlbnRJbnB1dE1hbmFnZXIgPSBbTlNJbnB1dE1hbmFnZXIgY3VycmVu
dElucHV0TWFuYWdlcl07CiAKICAgICBpZiAoIVtjdXJyZW50SW5wdXRNYW5hZ2VyIHdhbnRzVG9I
YW5kbGVNb3VzZUV2ZW50c10gfHwgIVtjdXJyZW50SW5wdXRNYW5hZ2VyIGhhbmRsZU1vdXNlRXZl
bnQ6ZXZlbnRdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBbX3ByaXZhdGUtPmNvbXBsZXRp
b25Db250cm9sbGVyIGVuZFJldmVydGluZ0NoYW5nZTpOTyBtb3ZlTGVmdDpOT107CiAKICAgICAg
ICAgLy8gSWYgdGhlIHdlYiBwYWdlIGhhbmRsZXMgdGhlIGNvbnRleHQgbWVudSBldmVudCBhbmQg
bWVudUZvckV2ZW50OiByZXR1cm5zIG5pbCwgd2UnbGwgZ2V0IGNvbnRyb2wgY2xpY2sgZXZlbnRz
IGhlcmUuCkBAIC00Mjc3LDEyICs0MjY5LDExIEBAIHN0YXRpYyBCT09MIGN1cnJlbnRTY3JvbGxJ
c0JsaXQoTlNWaWV3ICpjbGlwVmlldykKICAgICAvLyB0aGUgY3VycmVudCBldmVudCBwcmV2ZW50
cyB0aGF0IGZyb20gY2F1c2luZyBhIHByb2JsZW0gaW5zaWRlIFdlYktpdCBvciBBcHBLaXQgY29k
ZS4KICAgICBbW2V2ZW50IHJldGFpbl0gYXV0b3JlbGVhc2VdOwogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICBOU0lucHV0TWFuYWdlciAqY3VycmVudElucHV0TWFuYWdlciA9IFtOU0lucHV0TWFu
YWdlciBjdXJyZW50SW5wdXRNYW5hZ2VyXTsKICAgICBpZiAoW2N1cnJlbnRJbnB1dE1hbmFnZXIg
d2FudHNUb0hhbmRsZU1vdXNlRXZlbnRzXSAmJiBbY3VycmVudElucHV0TWFuYWdlciBoYW5kbGVN
b3VzZUV2ZW50OmV2ZW50XSkKICAgICAgICAgcmV0dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgW3Nl
bGYgcmV0YWluXTsKIApAQCAtNDQ0NywxMiArNDQzOCwxMSBAQCBzdGF0aWMgYm9vbCBtYXRjaGVz
RXh0ZW5zaW9uT3JFcXVpdmFsZW50KE5TU3RyaW5nICpmaWxlbmFtZSwgTlNTdHJpbmcgKmV4dGVu
c2lvbgogICAgIFtzZWxmIF9zZXRNb3VzZURvd25FdmVudDpuaWxdOwogCiAjaWYgUExBVEZPUk0o
TUFDKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNJbnB1dE1hbmFnZXIgKmN1cnJlbnRJbnB1
dE1hbmFnZXIgPSBbTlNJbnB1dE1hbmFnZXIgY3VycmVudElucHV0TWFuYWdlcl07CiAgICAgaWYg
KFtjdXJyZW50SW5wdXRNYW5hZ2VyIHdhbnRzVG9IYW5kbGVNb3VzZUV2ZW50c10gJiYgW2N1cnJl
bnRJbnB1dE1hbmFnZXIgaGFuZGxlTW91c2VFdmVudDpldmVudF0pCiAgICAgICAgIHJldHVybjsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICNlbmRpZgogCiAgICAgW3NlbGYgcmV0YWluXTsKQEAgLTQ4MDQsMTAgKzQ3
OTQsOSBAQCBzdGF0aWMgUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50
KEZyYW1lKiBjb3JlRnJhbWUpCiAtICh2b2lkKV9lbmRQcmludE1vZGVBbmRSZXN0b3JlV2luZG93
QXV0b2Rpc3BsYXkKIHsKICAgICBbc2VsZiBfZW5kUHJpbnRNb2RlXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1dG9kaXNwbGF5OllFU107Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiB9CiAKIC0gKHZvaWQpX2RlbGF5ZWRFbmRQcmludE1vZGU6KE5TUHJpbnRPcGVyYXRpb24gKilp
bml0aWF0aW5nT3BlcmF0aW9uCkBAIC00ODQyLDEwICs0ODMxLDkgQEAgc3RhdGljIFJlZlB0cjxL
ZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVudChGcmFtZSogY29yZUZyYW1lKQogICAg
IC8vIE11c3QgZG8gdGhpcyBleHBsaWNpdCBkaXNwbGF5IGhlcmUsIGJlY2F1c2Ugb3RoZXJ3aXNl
IHRoZSB2aWV3IG1pZ2h0IHJlZGlzcGxheSB3aGlsZSB0aGUgcHJpbnQKICAgICAvLyBzaGVldCB3
YXMgdXAsIHVzaW5nIHByaW50ZXIgZm9udHMgKGFuZCBsb29raW5nIGRpZmZlcmVudCkuCiAgICAg
W3NlbGYgZGlzcGxheUlmTmVlZGVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtbc2VsZiB3
aW5kb3ddIHNldEF1dG9kaXNwbGF5Ok5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIFtbc2VsZiBfd2Vi
Vmlld10gX2FkanVzdFByaW50aW5nTWFyZ2luc0ZvckhlYWRlckFuZEZvb3Rlcl07CiAgICAgTlNQ
cmludE9wZXJhdGlvbiAqcHJpbnRPcGVyYXRpb24gPSBbTlNQcmludE9wZXJhdGlvbiBjdXJyZW50
T3BlcmF0aW9uXTsKQEAgLTUwMzMsMTAgKzUwMjEsOSBAQCBzdGF0aWMgUmVmUHRyPEtleWJvYXJk
RXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgICAgICByZXR1cm4gW2FjY1RyZWUgYWNjZXNzaWJpbGl0eUhpdFRlc3Q6cG9p
bnRdOwogI2Vsc2UKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgTlNQb2ludCB3aW5k
b3dDb29yZCA9IFtbc2VsZiB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6cG9pbnRdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICAgICAgICAgcmV0dXJuIFthY2NUcmVlIGFjY2Vzc2liaWxpdHlIaXRUZXN0
OltzZWxmIGNvbnZlcnRQb2ludDp3aW5kb3dDb29yZCBmcm9tVmlldzpuaWxdXTsKICNlbmRpZgog
ICAgIH0KQEAgLTUwNzQsMTAgKzUwNjEsOSBAQCBzdGF0aWMgUmVmUHRyPEtleWJvYXJkRXZlbnQ+
IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAKIC0gKE5TRGljdGlvbmFy
eSAqKV9mb250QXR0cmlidXRlc0Zyb21Gb250UGFzdGVib2FyZAogewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgTlNQYXN0ZWJvYXJkICpmb250UGFzdGVib2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFz
dGVib2FyZFdpdGhOYW1lOk5TRm9udFBib2FyZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgaWYgKGZvbnRQ
YXN0ZWJvYXJkID09IG5pbCkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICBOU0RhdGEgKmRhdGEg
PSBbZm9udFBhc3RlYm9hcmQgZGF0YUZvclR5cGU6bGVnYWN5Rm9udFBhc3RlYm9hcmRUeXBlKCld
OwpAQCAtNTEwMSwxMCArNTA4Nyw5IEBAIHN0YXRpYyBSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3Vy
cmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKIAogLSAoTlNTdHJpbmcgKilfY29s
b3JBc1N0cmluZzooTlNDb2xvciAqKWNvbG9yCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBO
U0NvbG9yICpyZ2JDb2xvciA9IFtjb2xvciBjb2xvclVzaW5nQ29sb3JTcGFjZU5hbWU6TlNEZXZp
Y2VSR0JDb2xvclNwYWNlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAvLyBGSVhNRTogSWYgY29sb3IgaXMg
bm9uLW5pbCBhbmQgcmdiQ29sb3IgaXMgbmlsLCB0aGF0IG1lYW5zIHdlIGdvdCBzb21lIGtpbmQK
ICAgICAvLyBvZiBmYW5jeSBjb2xvciB0aGF0IGNhbid0IGJlIGNvbnZlcnRlZCB0byBSR0IuIENo
YW5naW5nIHRoYXQgdG8gInRyYW5zcGFyZW50IgogICAgIC8vIG1pZ2h0IG5vdCBiZSBncmVhdCwg
YnV0IGl0J3MgcHJvYmFibHkgT0suCkBAIC01MjgxLDEwICs1MjY2LDkgQEAgc3RhdGljIFJlZlB0
cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVudChGcmFtZSogY29yZUZyYW1lKQog
CiAgICAgLy8gUHV0IFJURiB3aXRoIGZvbnQgYXR0cmlidXRlcyBvbiB0aGUgcGFzdGVib2FyZC4K
ICAgICAvLyBNYXliZSBsYXRlciB3ZSBzaG91bGQgYWRkIGEgcGFzdGVib2FyZCB0eXBlIHRoYXQg
Y29udGFpbnMgQ1NTIHRleHQgZm9yICJuYXRpdmUiIGNvcHkgYW5kIHBhc3RlIGZvbnQuCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNQYXN0ZWJvYXJkICpmb250UGFzdGVib2FyZCA9IFtO
U1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOk5TRm9udFBib2FyZF07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgW2ZvbnRQYXN0ZWJvYXJkIGRlY2xhcmVUeXBlczpbTlNBcnJheSBhcnJheVdpdGhPYmpl
Y3Q6bGVnYWN5Rm9udFBhc3RlYm9hcmRUeXBlKCldIG93bmVyOm5pbF07CiAgICAgW2ZvbnRQYXN0
ZWJvYXJkIHNldERhdGE6W3NlbGYgX3NlbGVjdGlvblN0YXJ0Rm9udEF0dHJpYnV0ZXNBc1JURl0g
Zm9yVHlwZTpsZWdhY3lGb250UGFzdGVib2FyZFR5cGUoKV07CiB9CkBAIC02MTIwLDE1ICs2MTA0
LDE0IEBAIHN0YXRpYyBCT09MIHdyaXRpbmdEaXJlY3Rpb25LZXlCaW5kaW5nc0VuYWJsZWQoKQog
ICAgIGNvbnN0IFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcyA9IHBhcmFtZXRlcnMt
PmV2ZW50LT5rZXlwcmVzc0NvbW1hbmRzKCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGNvbW1hbmRzLnNpemUoKTsgKytpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAg
IGlmIChjb21tYW5kc1tpXS5jb21tYW5kTmFtZSA9PSAiaW5zZXJ0VGV4dDoiKQogICAgICAgICAg
ICAgW3NlbGYgaW5zZXJ0VGV4dDpjb21tYW5kc1tpXS50ZXh0XTsKICAgICAgICAgZWxzZSBpZiAo
Y29tbWFuZHNbaV0uY29tbWFuZE5hbWUgPT0gIm5vb3A6IikKICAgICAgICAgICAgIDsgLy8gRG8g
bm90aGluZy4gVGhpcyBjYXNlIGNhbiBiZSByZW1vdmVkIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzkw
MjUwMTI+IGlzIGZpeGVkLgogICAgICAgICBlbHNlCiAgICAgICAgICAgICBbc2VsZiBkb0NvbW1h
bmRCeVNlbGVjdG9yOk5TU2VsZWN0b3JGcm9tU3RyaW5nKGNvbW1hbmRzW2ldLmNvbW1hbmROYW1l
KV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogICAgIH0KICAgICBwYXJhbWV0ZXJzLT5ldmVudC0+a2V5cHJl
c3NDb21tYW5kcygpLmNsZWFyKCk7CiAgICAgcGFyYW1ldGVycy0+c2hvdWxkU2F2ZUNvbW1hbmRz
ID0gd2FzU2F2aW5nQ29tbWFuZHM7CkBAIC02MzI0LDEwICs2MzA3LDkgQEAgc3RhdGljIEJPT0wg
d3JpdGluZ0RpcmVjdGlvbktleUJpbmRpbmdzRW5hYmxlZCgpCiAgICAgICAgIC8vIElmIHdlIGFy
ZSBpbiBhIGxheWVyLWJhY2tlZCB2aWV3LCB3ZSBuZWVkIHRvIG1hbnVhbGx5IGluaXRpYWxpemUg
dGhlIGdlb21ldHJ5IGZvciBvdXIgbGF5ZXIuCiAgICAgICAgIFt2aWV3TGF5ZXIgc2V0Qm91bmRz
Ok5TUmVjdFRvQ0dSZWN0KFtfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldyBib3VuZHNdKV07CiAg
ICAgICAgIFt2aWV3TGF5ZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludE1ha2UoMCwgW3NlbGYgaXNG
bGlwcGVkXSA/IDEgOiAwKV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIENHUG9p
bnQgbGF5ZXJQb3NpdGlvbiA9IE5TUG9pbnRUb0NHUG9pbnQoW3NlbGYgY29udmVydFBvaW50VG9C
YXNlOltfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldyBmcmFtZV0ub3JpZ2luXSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgICAgICBbdmlld0xheWVyIHNldFBvc2l0aW9uOmxheWVyUG9zaXRpb25dOwog
ICAgIH0KICAgICAKQEAgLTY0NTcsMTAgKzY0MzksOSBAQCBzdGF0aWMgQk9PTCB3cml0aW5nRGly
ZWN0aW9uS2V5QmluZGluZ3NFbmFibGVkKCkKICAgICAgICAgTE9HKFRleHRJbnB1dCwgInRleHRT
dG9yYWdlIC0+IG5pbCIpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIE5TQXR0cmlidXRlZFN0cmluZyAqcmVzdWx0ID0gW3NlbGYgYXR0cmlidXRl
ZFN1YnN0cmluZ0Zyb21SYW5nZTpOU01ha2VSYW5nZSgwLCBVSU5UX01BWCldOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogCiAgICAgTE9HKFRleHRJbnB1dCwgInRleHRTdG9yYWdlIC0+IFwiJUBcIiIsIHJlc3VsdCA/
IFtyZXN1bHQgc3RyaW5nXSA6IEAiIik7CiAgICAgCkBAIC02OTM5LDE1ICs2OTIwLDE0IEBAIHN0
YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBW
ZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKICAgICB1bnNpZ25lZCBzdGFydDsKICAgICB1bnNpZ25l
ZCBlbmQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAoY29yZUZyYW1lLT5lZGl0b3IoKS5n
ZXRDb21wb3NpdGlvblNlbGVjdGlvbihzdGFydCwgZW5kKSkKICAgICAgICAgW1tOU0lucHV0TWFu
YWdlciBjdXJyZW50SW5wdXRNYW5hZ2VyXSBtYXJrZWRUZXh0U2VsZWN0aW9uQ2hhbmdlZDpOU01h
a2VSYW5nZShzdGFydCwgZW5kIC0gc3RhcnQpIGNsaWVudDpzZWxmXTsKICAgICBlbHNlIHsKICAg
ICAgICAgY29yZUZyYW1lLT5lZGl0b3IoKS5jYW5jZWxDb21wb3NpdGlvbigpOwogICAgICAgICBb
W05TSW5wdXRNYW5hZ2VyIGN1cnJlbnRJbnB1dE1hbmFnZXJdIG1hcmtlZFRleHRBYmFuZG9uZWQ6
c2VsZl07CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQppbmRleCAyNGRhYzllM2E4ZmI4OTM0YTY0
ZDE5Y2IxY2QzMWFiOTFjYjdmZDg1Li5kNTk4MWMwNTUyZDM3ZTk2YTZlYTAzYTc0NzYyNzU4Yzgx
NDg1YzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBE
RlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3
Lm1tCkBAIC0xMjYsMTAgKzEyNiw5IEBAIHN0YXRpYyB2b2lkIF9hcHBsaWNhdGlvbkluZm9Gb3JN
SU1FVHlwZShOU1N0cmluZyAqdHlwZSwgTlNTdHJpbmcgKipuYW1lLCBOU0ltYWdlCiB7CiAgICAg
Q0ZVUkxSZWYgYXBwVVJMID0gbnVsbHB0cjsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgT1NT
dGF0dXMgZXJyb3IgPSBMU0NvcHlBcHBsaWNhdGlvbkZvck1JTUVUeXBlKChfX2JyaWRnZSBDRlN0
cmluZ1JlZil0eXBlLCBrTFNSb2xlc0FsbCwgJmFwcFVSTCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgaWYg
KGVycm9yICE9IG5vRXJyKQogICAgICAgICByZXR1cm47CiAgICAgCkBAIC0yMjYsMTAgKzIyNSw5
IEBAIHN0YXRpYyBCT09MIF9QREZTZWxlY3Rpb25zQXJlRXF1YWwoUERGU2VsZWN0aW9uICpzZWxl
Y3Rpb25BLCBQREZTZWxlY3Rpb24gKnNlbGVjCiAtICh2b2lkKWNlbnRlclNlbGVjdGlvbkluVmlz
aWJsZUFyZWE6KGlkKXNlbmRlcgogewogICAgIC8vIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgb25j
ZSA8cmRhcjovL3Byb2JsZW0vMjUxNDkyOTQ+IGhhcyBiZWVuIGZpeGVkLgotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25v
bm51bGwiCisgICAgQUxMT1dfTlVMTF9BUkdVTUVOVF9CRUdJTgogICAgIFtQREZTdWJ2aWV3IHNj
cm9sbFNlbGVjdGlvblRvVmlzaWJsZTpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIEFMTE9XX05VTExfQVJHVU1FTlRfRU5ECiB9CiAKIC0gKHZvaWQpc2Nyb2xsUGFnZURv
d246KGlkKXNlbmRlcgpAQCAtMzcwLDEwICszNjgsOSBAQCBzdGF0aWMgQk9PTCBfUERGU2VsZWN0
aW9uc0FyZUVxdWFsKFBERlNlbGVjdGlvbiAqc2VsZWN0aW9uQSwgUERGU2VsZWN0aW9uICpzZWxl
YwogCiAtICh2b2lkKV9yZWN1cnNpdmVEaXNwbGF5UmVjdElmTmVlZGVkSWdub3JpbmdPcGFjaXR5
OihOU1JlY3QpcmVjdCBpc1Zpc2libGVSZWN0OihCT09MKWlzVmlzaWJsZVJlY3QgcmVjdElzVmlz
aWJsZVJlY3RGb3JWaWV3OihOU1ZpZXcgKil2aXNpYmxlVmlldyB0b3BWaWV3OihCT09MKXRvcFZp
ZXcKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gKENH
Q29udGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1Bv
cnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgIAogICAgIGJvb2wgYWxsb3dzU21vb3RoaW5nID0gQ0dDb250
ZXh0R2V0QWxsb3dzRm9udFNtb290aGluZyhjb250ZXh0KTsKICAgICBib29sIGFsbG93c1N1YnBp
eGVsUXVhbnRpemF0aW9uID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUXVhbnRpemF0
aW9uKGNvbnRleHQpOwpAQCAtMzg2LDEwICszODMsOSBAQCBzdGF0aWMgQk9PTCBfUERGU2VsZWN0
aW9uc0FyZUVxdWFsKFBERlNlbGVjdGlvbiAqc2VsZWN0aW9uQSwgUERGU2VsZWN0aW9uICpzZWxl
YwogCiAtICh2b2lkKV9yZWN1cnNpdmVEaXNwbGF5QWxsRGlydHlXaXRoTG9ja0ZvY3VzOihCT09M
KW5lZWRzTG9ja0ZvY3VzIHZpc1JlY3Q6KE5TUmVjdCl2aXNSZWN0CiB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IChDR0NvbnRleHRSZWYpW1tOU0dyYXBo
aWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAg
ICAKICAgICBib29sIGFsbG93c1Ntb290aGluZyA9IENHQ29udGV4dEdldEFsbG93c0ZvbnRTbW9v
dGhpbmcoY29udGV4dCk7CiAgICAgYm9vbCBhbGxvd3NTdWJwaXhlbFF1YW50aXphdGlvbiA9IENH
Q29udGV4dEdldEFsbG93c0ZvbnRTdWJwaXhlbFF1YW50aXphdGlvbihjb250ZXh0KTsKQEAgLTQw
MiwxMCArMzk4LDkgQEAgc3RhdGljIEJPT0wgX1BERlNlbGVjdGlvbnNBcmVFcXVhbChQREZTZWxl
Y3Rpb24gKnNlbGVjdGlvbkEsIFBERlNlbGVjdGlvbiAqc2VsZWMKIAogLSAodm9pZClfcmVjdXJz
aXZlOihCT09MKXJlY3Vyc2UgZGlzcGxheVJlY3RJZ25vcmluZ09wYWNpdHk6KE5TUmVjdClkaXNw
bGF5UmVjdCBpbkNvbnRleHQ6KE5TR3JhcGhpY3NDb250ZXh0ICopZ3JhcGhpY3NDb250ZXh0IHRv
cFZpZXc6KEJPT0wpdG9wVmlldwogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0dDb250ZXh0
UmVmIGNvbnRleHQgPSAoQ0dDb250ZXh0UmVmKVtncmFwaGljc0NvbnRleHQgZ3JhcGhpY3NQb3J0
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICAgICAKICAgICBib29sIGFsbG93c1Ntb290aGluZyA9IENHQ29udGV4
dEdldEFsbG93c0ZvbnRTbW9vdGhpbmcoY29udGV4dCk7CiAgICAgYm9vbCBhbGxvd3NTdWJwaXhl
bFF1YW50aXphdGlvbiA9IENHQ29udGV4dEdldEFsbG93c0ZvbnRTdWJwaXhlbFF1YW50aXphdGlv
bihjb250ZXh0KTsKQEAgLTY2OSwxMCArNjY0LDkgQEAgc3RhdGljIEJPT0wgX1BERlNlbGVjdGlv
bnNBcmVFcXVhbChQREZTZWxlY3Rpb24gKnNlbGVjdGlvbkEsIFBERlNlbGVjdGlvbiAqc2VsZWMK
ICAgICBbUERGU3VidmlldyBzZXRDdXJyZW50U2VsZWN0aW9uOnNlbGVjdGlvbl07CiAKICAgICAv
LyBGSVhNRTogR2V0IHJpZCBvZiB0aGlzIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzI1MTQ5Mjk0PiBo
YXMgYmVlbiBmaXhlZC4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub25udWxsIgorICAgIEFMTE9XX05VTExfQVJHVU1F
TlRfQkVHSU4KICAgICBbUERGU3VidmlldyBzY3JvbGxTZWxlY3Rpb25Ub1Zpc2libGU6bmlsXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19OVUxMX0FSR1VNRU5UX0VO
RAogICAgIHJldHVybiBZRVM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW0KaW5kZXgg
YzZmMGU3MzQ1ZjVlZTgyYjcxYmMxYzRhYmEyNmM0MGUyMWZmMDNhNi4uYTM4MWQxMGIyOGEzZGVl
OTU0OGVhMmVlNDY5OTYwNTdhM2IyNmUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIubW0K
QEAgLTg0LDEwICs4NCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogewogICAgIE5TUmVj
dCBzY3JvbGxGcmFtZSA9IE5TTWFrZVJlY3QoMCwgMCwgMTAwLCAxMDApOwogICAgIE5TUmVjdCB0
YWJsZUZyYW1lID0gTlNaZXJvUmVjdDsgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICB0YWJs
ZUZyYW1lLnNpemUgPSBbTlNTY3JvbGxWaWV3IGNvbnRlbnRTaXplRm9yRnJhbWVTaXplOnNjcm9s
bEZyYW1lLnNpemUgaGFzSG9yaXpvbnRhbFNjcm9sbGVyOk5PIGhhc1ZlcnRpY2FsU2Nyb2xsZXI6
WUVTIGJvcmRlclR5cGU6TlNOb0JvcmRlcl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgTlNUYWJsZUNvbHVt
biAqY29sdW1uID0gW1tOU1RhYmxlQ29sdW1uIGFsbG9jXSBpbml0XTsKICAgICBbY29sdW1uIHNl
dFdpZHRoOnRhYmxlRnJhbWUuc2l6ZS53aWR0aF07CiAgICAgW2NvbHVtbiBzZXRFZGl0YWJsZTpO
T107CkBAIC0xMzMsMTAgKzEzMiw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAgICAg
TlNSZWN0IHdpbmRvd0ZyYW1lOwogICAgIE5TUG9pbnQgd29yZFN0YXJ0ID0gdG9wTGVmdDsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIHdpbmRvd0ZyYW1lLm9yaWdpbiA9IFtbX3ZpZXcgd2luZG93
XSBjb252ZXJ0QmFzZVRvU2NyZWVuOltfaHRtbFZpZXcgY29udmVydFBvaW50OndvcmRTdGFydCB0
b1ZpZXc6bmlsXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgd2luZG93RnJhbWUuc2l6ZS5oZWlnaHQgPSBu
dW1iZXJUb1Nob3cgKiBbX3RhYmxlVmlldyByb3dIZWlnaHRdICsgKG51bWJlclRvU2hvdyArIDEp
ICogW190YWJsZVZpZXcgaW50ZXJjZWxsU3BhY2luZ10uaGVpZ2h0OwogICAgIHdpbmRvd0ZyYW1l
Lm9yaWdpbi55IC09IHdpbmRvd0ZyYW1lLnNpemUuaGVpZ2h0OwogICAgIE5TRGljdGlvbmFyeSAq
YXR0cmlidXRlcyA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czpb
TlNGb250IHN5c3RlbUZvbnRPZlNpemU6MTIuMGZdLCBOU0ZvbnRBdHRyaWJ1dGVOYW1lLCBuaWxd
OwpAQCAtMTUxLDEwICsxNDksOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICB9CiAg
ICAgd2luZG93RnJhbWUuc2l6ZS53aWR0aCA9IDEwMDsKICAgICBpZiAobWF4SW5kZXggPj0gMCkg
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBtYXhXaWR0aCA9IGNlaWxmKFtOU1Nj
cm9sbFZpZXcgZnJhbWVTaXplRm9yQ29udGVudFNpemU6TlNNYWtlU2l6ZShtYXhXaWR0aCwgMTAw
LjBmKSBoYXNIb3Jpem9udGFsU2Nyb2xsZXI6Tk8gaGFzVmVydGljYWxTY3JvbGxlcjpZRVMgYm9y
ZGVyVHlwZTpOU05vQm9yZGVyXS53aWR0aCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBtYXhX
aWR0aCA9IGNlaWxmKFtOU1dpbmRvdyBmcmFtZVJlY3RGb3JDb250ZW50UmVjdDpOU01ha2VSZWN0
KDAuMGYsIDAuMGYsIG1heFdpZHRoLCAxMDAuMGYpIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFz
a0JvcmRlcmxlc3NdLnNpemUud2lkdGgpOwogICAgICAgICBtYXhXaWR0aCArPSA1LjBmOwogICAg
ICAgICB3aW5kb3dGcmFtZS5zaXplLndpZHRoID0gc3RkOjptYXgobWF4V2lkdGgsIHdpbmRvd0Zy
YW1lLnNpemUud2lkdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCmluZGV4IGFiNDM4
ODdkMTc0NGQ3NTNkNTAwM2EyMmUwNGY0Mjc1MTRhMWJlNjYuLmM2ZTA3MTY0Y2FmMDVjYTQ4MTll
MzBhNzg2ZGNjOGFkODNkNjA1MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0KQEAg
LTM4LDggKzM4LDcgQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9T
b2Z0TGlua2luZy5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiBTT0ZUX0xJTktfRlJBTUVXT1JLKEFW
Rm91bmRhdGlvbikKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWUGxheWVyTGF5ZXIp
CkBAIC01MDksNiArNTA4LDYgQEAgc3RhdGljIE5TV2luZG93ICpjcmVhdGVCYWNrZ3JvdW5kRnVs
bHNjcmVlbldpbmRvdyhOU1JlY3QgZnJhbWUsIGludCBsZXZlbCkKIAogQGVuZAogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0K
aW5kZXggZTdiZTg2ZDM3NGU0NTBlZWU3MDA5MWM1ZTMyZDkzYjMxNWE1Y2YzOS4uN2MzZjUwNmUw
NmQ5N2JmZGU4ZWE0Y2IwOTU2MGE4YzcwYjEyM2YxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2Ny
ZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQpAQCAtMzczLDEwICszNzMsOSBAQCBzdGF0aWMgTlNW
aWV3ICpjcmVhdGVNZWRpYVVJQmFja2dyb3VuZFZpZXcoKQogICAgIGNvbnN0IENHRmxvYXQgcXVp
Y2tUaW1lUGxheWVySFVESGVpZ2h0ID0gNTk7CiAgICAgY29uc3QgQ0dGbG9hdCBxdWlja1RpbWVQ
bGF5ZXJIVURDb250ZW50Qm9yZGVyUG9zaXRpb24gPSAzODsKIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgW3ZpZXcgc2V0Q29udGVudEJvcmRlclBvc2l0aW9uOnF1aWNrVGltZVBsYXllckhVRENv
bnRlbnRCb3JkZXJQb3NpdGlvbiAvIHF1aWNrVGltZVBsYXllckhVREhlaWdodF07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAKICAgICByZXR1cm4gdmlldzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQppbmRleCA5MTQxMGE4OWQ3MzI1NDUzMjU1MWYzMDJiZmNlOTgzNzQwYzli
YjFmLi40ODRkNmNiYzg1NjVkZjUxMmMyMjg1N2VmOTNkNmIzYjZjNDc3NGI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC04NjUsMTUgKzg2NSwxNCBA
QCBzdGF0aWMgY29uc3QgTlNVSW50ZWdlciBvcmRlcmVkTGlzdFNlZ21lbnQgPSAyOwogICAgIFtp
bnNlcnRMaXN0Q29udHJvbCBzZXRXaWR0aDpsaXN0Q29udHJvbFNlZ21lbnRXaWR0aCBmb3JTZWdt
ZW50Om9yZGVyZWRMaXN0U2VnbWVudF07CiAgICAgaW5zZXJ0TGlzdENvbnRyb2wuZm9udCA9IFtO
U0ZvbnQgc3lzdGVtRm9udE9mU2l6ZToxNV07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlk
IHNlZ21lbnRFbGVtZW50ID0gTlNBY2Nlc3NpYmlsaXR5VW5pZ25vcmVkRGVzY2VuZGFudChpbnNl
cnRMaXN0Q29udHJvbCk7CiAgICAgTlNBcnJheSAqc2VnbWVudHMgPSBbc2VnbWVudEVsZW1lbnQg
YWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmli
dXRlXTsKICAgICBBU1NFUlQoc2VnbWVudHMuY291bnQgPT0gMyk7CiAgICAgW3NlZ21lbnRzW25v
TGlzdFNlZ21lbnRdIGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVlOldlYkNvcmU6Omluc2Vy
dExpc3RUeXBlTm9uZSgpIGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0
dHJpYnV0ZV07CiAgICAgW3NlZ21lbnRzW3Vub3JkZXJlZExpc3RTZWdtZW50XSBhY2Nlc3NpYmls
aXR5U2V0T3ZlcnJpZGVWYWx1ZTpXZWJDb3JlOjppbnNlcnRMaXN0VHlwZUJ1bGxldGVkQWNjZXNz
aWJpbGl0eVRpdGxlKCkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uQXR0
cmlidXRlXTsKICAgICBbc2VnbWVudHNbb3JkZXJlZExpc3RTZWdtZW50XSBhY2Nlc3NpYmlsaXR5
U2V0T3ZlcnJpZGVWYWx1ZTpXZWJDb3JlOjppbnNlcnRMaXN0VHlwZU51bWJlcmVkQWNjZXNzaWJp
bGl0eVRpdGxlKCkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uQXR0cmli
dXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIHNlbGYudmlldyA9IGluc2VydExpc3RDb250cm9sOwog
CkBAIC0yMTc4LDExICsyMTc3LDEwIEBAIHN0YXRpYyBOU011dGFibGVTZXQgKmtub3duUGx1Z2lu
TUlNRVR5cGVzKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgaWYgKCFPU0F0b21pY0NvbXBhcmVBbmRTd2FwMzIoMCwgMSwgJl9wcml2YXRlLT5kaWRE
cmF3VGlsZXMpKQogICAgICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBXZWJUaHJlYWRM
b2NrKCk7CiAKQEAgLTU4OTMsMjEgKzU4OTEsMTkgQEAgc3RhdGljIGJvb2wgbmVlZHNXZWJWaWV3
SW5pdFRocmVhZFdvcmthcm91bmQoKQogCiAtICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2Rl
ciAqKWVuY29kZXIKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIFNldCBhc3NpZGUgdGhl
IHN1YnZpZXdzIGJlZm9yZSB3ZSBhcmNoaXZlLiBXZSBkb24ndCB3YW50IHRvIGFyY2hpdmUgYW55
IHN1YnZpZXdzLgogICAgIC8vIFRoZSBzdWJ2aWV3cyB3aWxsIGFsd2F5cyBiZSBjcmVhdGVkIGlu
IF9jb21tb25Jbml0aWFsaXphdGlvbkZyYW1lTmFtZTpncm91cE5hbWU6LgogICAgIGlkIG9yaWdp
bmFsU3Vidmlld3MgPSBfc3Vidmlld3M7CiAgICAgX3N1YnZpZXdzID0gbmlsOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogCiAgICAgW3N1cGVyIGVuY29kZVdpdGhDb2RlcjplbmNvZGVyXTsKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgLy8gUmVzdG9yZSB0aGUgc3Vidmlld3Mgd2Ugc2V0IGFzaWRlLgogICAgIF9z
dWJ2aWV3cyA9IG9yaWdpbmFsU3Vidmlld3M7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBCT09MIHVzZUJh
Y2tGb3J3YXJkTGlzdCA9IF9wcml2YXRlLT5wYWdlICYmIHN0YXRpY19jYXN0PEJhY2tGb3J3YXJk
TGlzdCo+KF9wcml2YXRlLT5wYWdlLT5iYWNrRm9yd2FyZCgpLmNsaWVudCgpKS0+ZW5hYmxlZCgp
OwogICAgIGlmIChbZW5jb2RlciBhbGxvd3NLZXllZENvZGluZ10pIHsKQEAgLTcxMzgsMTAgKzcx
MzQsOSBAQCBzdGF0aWMgV2ViRnJhbWUgKmluY3JlbWVudEZyYW1lKFdlYkZyYW1lICpmcmFtZSwg
V2ViRmluZE9wdGlvbnMgb3B0aW9ucyA9IDApCiAgICAgaWYgKGF1dG8gKmljb24gPSBfcHJpdmF0
ZS0+X21haW5GcmFtZUljb24uZ2V0KCkpCiAgICAgICAgIHJldHVybiBpY29uOwogCi0jcHJhZ21h
IEdDQyBkaWFnbm9zdGljIHB1c2ggCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICByZXR1cm4gW1tXZWJJY29uRGF0YWJhc2Ugc2hhcmVkSWNvbkRhdGFiYXNl
XSBkZWZhdWx0SWNvbldpdGhTaXplOldlYkljb25TbWFsbFNpemVdOwotI3ByYWdtYSBHQ0MgZGlh
Z25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAog
LSAodm9pZClfc2V0TWFpbkZyYW1lSWNvbjooTlNJbWFnZSAqKWljb24KQEAgLTkzMDksMTAgKzkz
MDQsOSBAQCBib29sIExheWVyRmx1c2hDb250cm9sbGVyOjpmbHVzaExheWVycygpCiAgICAgICAg
IC8vIEFwcEtpdCBtYXkgaGF2ZSBkaXNhYmxlZCBzY3JlZW4gdXBkYXRlcywgdGhpbmtpbmcgYW4g
dXBjb21pbmcgd2luZG93IGZsdXNoIHdpbGwgcmUtZW5hYmxlIHRoZW0uCiAgICAgICAgIC8vIElu
IGNhc2Ugc2V0TmVlZHNEaXNwbGF5SW5SZWN0KCkgaGFzIHByZXZlbnRlZCB0aGUgd2luZG93IGZy
b20gbmVlZGluZyB0byBiZSBmbHVzaGVkLCByZS1lbmFibGUgc2NyZWVuCiAgICAgICAgIC8vIHVw
ZGF0ZXMgaGVyZS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgaWYgKCFbd2luZG93
IGlzRmx1c2hXaW5kb3dEaXNhYmxlZF0pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAg
IFt3aW5kb3cgX2VuYWJsZVNjcmVlblVwZGF0ZXNJZk5lZWRlZF07CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJXaW5kb3dBbmltYXRpb24u
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYldpbmRvd0FuaW1hdGlvbi5t
bQppbmRleCA5MjM1OGY2YjdkZTNhYmE5NjRlZWFmMTc0MjVmMjcxYjk1YWE4NjA5Li41MTkzZjFl
ZmQwY2FmNWJkNTM4MDhhNzQ2YmU0MDQwZmNjZDRmN2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYldpbmRvd0FuaW1hdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYldpbmRvd0FuaW1hdGlvbi5tbQpAQCAtMTI1LDEw
ICsxMjUsOSBAQCBzdGF0aWMgQ0dTQ29ubmVjdGlvbklEIG1haW5XaW5kb3dTZXJ2ZXJDb25uZWN0
aW9uSUQoKQogc3RhdGljIHZvaWQgc2V0U2NhbGVkRnJhbWVGb3JXaW5kb3coTlNXaW5kb3cgKndp
bmRvdywgTlNSZWN0IHNjYWxlRnJhbWUsIE5TUmVjdCBub25TY2FsZWRGcmFtZSkKIHsKICAgICBp
ZiAoTlNFcXVhbFJlY3RzKHNjYWxlRnJhbWUsIG5vblNjYWxlZEZyYW1lKSkgewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V25vbm51bGwiCisgICAgICAgIEFMTE9XX05VTExfQVJHVU1FTlRfQkVHSU4KICAgICAgICAgQ0dT
U2V0V2luZG93V2FycChtYWluV2luZG93U2VydmVyQ29ubmVjdGlvbklEKCksIHdpbmRvdy53aW5k
b3dOdW1iZXIsIDAsIDAsIG51bGxwdHIpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgICAgICBBTExPV19OVUxMX0FSR1VNRU5UX0VORAogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349427</attachid>
            <date>2018-09-11 13:04:23 -0700</date>
            <delta_ts>2018-09-12 05:12:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188996-20180911220420.patch</filename>
            <type>text/plain</type>
            <size>324244</size>
            <attacher name="Guillaume Emont">guijemont</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1ODk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NjBhYmVlNDE4OWYxNDQyYWZjNTJjNTk4MDk5MzA1YTIwMTc1ZWQxLi4yY2UwYjFjOWJhMWY5MmM1
MDNlZDNiMGY4YjhkYWU3YzhhY2NiNjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEg
KzEsNDMgQEAKKzIwMTgtMDgtMjcgIEd1aWxsYXVtZSBFbW9udCAgPGd1aWplbW9udEBpZ2FsaWEu
Y29tPgorCisgICAgICAgIEFkZCBJR05PUkVfV0FSTklOR18uKiBtYWNyb3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk5NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaDoKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5jOgorICAgICAgICAqIGFzc2VtYmxl
ci9MaW5rQnVmZmVyLmg6CisgICAgICAgIChKU0M6OkxpbmtCdWZmZXI6OmZpbmFsaXplQ29kZVdp
dGhEaXNhc3NlbWJseSk6CisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAg
KiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgICogYjMvQjNUeXBlLmg6CisgICAgICAgICogYjMv
QjNUeXBlTWFwLmg6CisgICAgICAgICogYjMvQjNXaWR0aC5oOgorICAgICAgICAqIGIzL2Fpci9B
aXJBcmcuY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJBcmcuaDoKKyAgICAgICAgKiBiMy9haXIv
QWlyQ29kZS5oOgorICAgICAgICAqIGJ5dGVjb2RlL09wY29kZS5oOgorICAgICAgICAoSlNDOjpw
YWRPcGNvZGVOYW1lKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVOdW1iZXIpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVNaXNjKToKKyAgICAgICAgKiBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgICogZnRsL0ZUTE91dHB1dC5oOgor
ICAgICAgICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJz
OjpjYWxjdWxhdGVQb2tlT2Zmc2V0KToKKyAgICAgICAgKiBsbGludC9MTEludERhdGEuY3BwOgor
ICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6
OnNsb3dQYXRoTG9nRik6CisgICAgICAgICogcnVudGltZS9Db25maWdGaWxlLmNwcDoKKyAgICAg
ICAgKEpTQzo6Q29uZmlnRmlsZTo6Y2Fub25pY2FsaXplUGF0aHMpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNEYXRhVmlld1Byb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNU
eXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNU
eXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5jcHA6
CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OnNldEFsaWFzZWRPcHRpb24pOgorICAgICAgICAqIHRv
b2xzL0NvZGVQcm9maWxpbmcuY3BwOgorICAgICAgICAqIHdhc20vV2FzbVNlY3Rpb25zLmg6Cisg
ICAgICAgICogd2FzbS9nZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIucHk6CisKID09
IFJvbGxlZCBvdmVyIHRvIENoYW5nZUxvZy0yMDE4LTA5LTExID09CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGU2MGFiZWU0MTg5
ZjE0NDJhZmM1MmM1OTgwOTkzMDVhMjAxNzVlZDEuLjQwYjJhZWZlMzhjNTZmMWYxZTlhY2ZiOWJh
ZDc2ZDZiYmM1OTQ3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xICsxLDI3IEBACisyMDE4LTA4LTI3ICBHdWlsbGF1bWUg
RW1vbnQgIDxndWlqZW1vbnRAaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgSUdOT1JFX1dBUk5J
TkdfLiogbWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODg5OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHd0Zi9Bc3NlcnRpb25zLmNwcDoKKyAgICAgICAgKiB3dGYvQXNzZXJ0aW9ucy5oOgor
ICAgICAgICAqIHd0Zi9Db21waWxlci5oOgorICAgICAgICAqIHd0Zi9NRDUuY3BwOgorICAgICAg
ICAoV1RGOjpNRDU6Ok1ENSk6CisgICAgICAgIChXVEY6Ok1ENTo6YWRkQnl0ZXMpOgorICAgICAg
ICAoV1RGOjpNRDU6OmNoZWNrc3VtKToKKyAgICAgICAgKiB3dGYvUHJpbnRTdHJlYW0uY3BwOgor
ICAgICAgICAoV1RGOjpQcmludFN0cmVhbTo6cHJpbnRmVmFyaWFibGVGb3JtYXQpOgorICAgICAg
ICAqIHd0Zi9TSEExLmNwcDoKKyAgICAgICAgKFdURjo6U0hBMTo6U0hBMSk6CisgICAgICAgIChX
VEY6OlNIQTE6OmFkZEJ5dGVzKToKKyAgICAgICAgKFdURjo6U0hBMTo6Y29tcHV0ZUhhc2gpOgor
ICAgICAgICAqIHd0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHA6CisgICAgICAgICogd3RmL1ZlY3Rv
ci5oOgorICAgICAgICAoV1RGOjpWZWN0b3JCdWZmZXI6OmVuZE9mQnVmZmVyKToKKyAgICAgICAg
KiB3dGYvdGV4dC9XVEZTdHJpbmcuY3BwOgorICAgICAgICAoV1RGOjpjcmVhdGVXaXRoRm9ybWF0
QW5kQXJndW1lbnRzKToKKwogPT0gUm9sbGVkIG92ZXIgdG8gQ2hhbmdlTG9nLTIwMTgtMDktMTEg
PT0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBlM2NmMjkyYWViODA4Y2NlMTAxZTYxZGE0OTUyMDA1NzNjNzNjZTNm
Li5lN2NmYWY5ZGJiNTI1YjRkNDhlYmU1MjU3OWNjMjQyNjkzZDQ1ZThhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMxIEBACisyMDE4LTA4LTI3ICBHdWlsbGF1bWUgRW1vbnQgIDxndWlqZW1vbnRA
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgSUdOT1JFX1dBUk5JTkdfLiogbWFjcm9zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg5OTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQu
aDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6b3ZlcnJpZGVBdHRhY2htZW50
UGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2li
aWxpdHlJZ25vcmVBdHRhY2htZW50IGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAgKC1bV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgcmVuZGVyV2lkZ2V0Q2hpbGRyZW5dKToKKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgY29udmVydFBvaW50VG9TY3JlZW5TcGFj
ZTpdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgcm9sZV0pOgor
ICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciByb2xlRGVzY3JpcHRpb25d
KToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW06CisgICAgICAgICog
YnJpZGdlL29iamMvb2JqY19jbGFzcy5tbToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamND
bGFzczo6ZmllbGROYW1lZCBjb25zdCk6CisgICAgICAgICogY3J5cHRvL0NvbW1vbkNyeXB0b1V0
aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRDb21tb25DcnlwdG9EaWdlc3RBbGdv
cml0aG0pOgorICAgICAgICAqIGNyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTU1hYy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjplbmNyeXB0QUVTX0dDTSk6CisgICAgICAgIChXZWJDb3Jl
OjpkZWN5cHRBRVNfR0NNKToKKyAgICAgICAgKiBjcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9L
ZXlXcmFwTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6d3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkp
OgorICAgICAgICAoV2ViQ29yZTo6dW53cmFwU2VyaWFsaXplZENyeXB0b0tleSk6CisgICAgICAg
ICogY3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAu
cHk6CisgICAgICAgICogY3NzL21ha2VTZWxlY3RvclBzZXVkb0VsZW1lbnRzTWFwLnB5OgorICAg
ICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL21hYy9F
ZGl0b3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9h
cmQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlTm9kZUZyb21QYXN0ZWJvYXJk
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyk6Cisg
ICAgICAgICogcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6cGFpbnRDb250
ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmb3JtYXRMb2NhbGl6ZWRTdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL1Nj
cmVlblByb3BlcnRpZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRhdGE6OmRlY29kZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhJREdhbWVwYWRQcm92aWRlcjo6c3RvcE1vbml0b3JpbmdJbnB1
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25H
cm91cEFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlbGVjdGlvbkdyb3VwQVZG
T2JqQzo6dXBkYXRlT3B0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbToKKyAgICAgICAgKFdlYkNv
cmU6OkNETVNlc3Npb25BVlN0cmVhbVNlc3Npb246OnVwZGF0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2Jq
Qy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRDdXJyZW50VGV4dFRyYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omxhbmd1
YWdlT2ZQcmltYXJ5QXVkaW9UcmFjayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRTaG91bGREaXNhYmxlU2xlZXApOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OklHTk9SRV9DTEFOR19XQVJOSU5HX0VORCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9T
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKC1bV2ViQVZTYW1wbGVCdWZm
ZXJFcnJvckxpc3RlbmVyIGJlZ2luT2JzZXJ2aW5nUmVuZGVyZXI6XSk6CisgICAgICAgICgtW1dl
YkFWU2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lciBzdG9wT2JzZXJ2aW5nUmVuZGVyZXI6XSk6Cisg
ICAgICAgICgtW1dlYkFWU2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lciBvYnNlcnZlVmFsdWVGb3JL
ZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOgorICAgICAgICAoV2ViQ29yZTo6U291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnRyYWNrRGlkQ2hhbmdlRW5hYmxlZCk6CisgICAgICAg
IChXZWJDb3JlOjpJR05PUkVfQ0xBTkdfV0FSTklOR19FTkQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1tOgorICAgICAgICAoUGxh
dGZvcm1DQUxheWVyOjpkcmF3TGF5ZXJDb250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250Q2FzY2FkZTo6Zm9udEZvckNvbWJpbmluZ0NoYXJhY3RlclNlcXVlbmNlIGNvbnN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZURlY29kZXJDRy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZURlY29kZXJDRzo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dENvY29hLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvckRvY3VtZW50TWFy
a2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmg6Cisg
ICAgICAgIChJR05PUkVfQ0xBTkdfV0FSTklORyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zRm9yQ2hhcmFj
dGVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpJY29uOjpJY29uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9t
YWMvUERGRG9jdW1lbnRJbWFnZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBERkRvY3VtZW50
SW1hZ2U6OmRyYXdQREZQYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2Vi
S2l0TlNJbWFnZUV4dHJhcy5tbToKKyAgICAgICAgKC1bTlNJbWFnZSBfd2ViX2xvY2tGb2N1c1dp
dGhEZXZpY2VTY2FsZUZhY3RvcjpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvRHJhZ0ltYWdl
SU9TLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpzY2FsZURyYWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFn
SW1hZ2VGb3JMaW5rKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTGVnYWN5TlNQYXN0ZWJvYXJk
VHlwZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250
ZXh0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0OjpM
b2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QYXN0
ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29w
eUFuZFBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKToKKyAgICAgICAgKFdlYkNvcmU6OnNldERyYWdJbWFnZUltcGwpOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6Omdsb2JhbFBvaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU1NMS2V5R2VuZXJhdG9y
TWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxhdGZvcm1Db250ZW50c1RvU2NyZWVuIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtU2NyZWVuVG9Db250ZW50cyBj
b25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6ZHJhd0NlbGxGb2N1c1JpbmdXaXRoRnJhbWVBdFRpbWUpOgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9XZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5tbToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvV2lkZ2V0TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpwYWludCk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2lu
Z0F1ZGlvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVP
dXRnb2luZ1ZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ0F1ZGlvTW9kdWxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2Eu
bW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdW
aWRlb1NvdXJjZUNvY29hLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9j
Zi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U29j
a2V0U3RyZWFtSGFuZGxlSW1wbDo6cmVwb3J0RXJyb3JUb0NsaWVudCk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jcmVhdGUtaHR0cC1oZWFkZXItbmFtZS10YWJsZToKKyAgICAgICAgKiBw
bGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHA6CisgICAgICAgICogdGVzdGluZy9Nb2NrTGli
V2ViUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB4bWwvWFBhdGhHcmFtbWFyLmNwcDoK
KwogMjAxOC0wOS0xMSAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgUmVmYWN0b3IgZmlsdGVyIGxpc3QgY2hlY2tpbmcgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5k
ZXggYWEzODhjYThmZDI5NGZlYzQ5MTFhZjg5NTA2NjRmOGE2YzM4OGYzYi4uM2JjNDFlZTljYmUy
MTI0NjQxNzIwYzgwNDBmZjZlMmM4ZTk2OGJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjMgQEAKKzIwMTgtMDgtMjcgIEd1aWxsYXVtZSBFbW9udCAgPGd1aWplbW9udEBpZ2FsaWEu
Y29tPgorCisgICAgICAgIEFkZCBJR05PUkVfV0FSTklOR18uKiBtYWNyb3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk5NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFsL2NyeXB0by9jb21tb25j
cnlwdG8vQ3J5cHRvRGlnZXN0Q29tbW9uQ3J5cHRvLmNwcDoKKyAgICAgICAgKFBBTDo6Q3J5cHRv
RGlnZXN0OjpjcmVhdGUpOgorICAgICAgICAoUEFMOjpDcnlwdG9EaWdlc3Q6OmFkZEJ5dGVzKToK
KyAgICAgICAgKFBBTDo6Q3J5cHRvRGlnZXN0Ojpjb21wdXRlSGFzaCk6CisgICAgICAgICogcGFs
L3NwaS9jb2NvYS9BVktpdFNQSS5oOgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvTlNLZXllZEFy
Y2hpdmVyU1BJLmg6CisgICAgICAgIChpbnNlY3VyZWx5VW5hcmNoaXZlT2JqZWN0RnJvbURhdGEp
OgorICAgICAgICAqIHBhbC9zcGkvaW9zL01lZGlhUGxheWVyU1BJLmg6CisgICAgICAgICogcGFs
L3N5c3RlbS9tYWMvUG9wdXBNZW51Lm1tOgorICAgICAgICAoUEFMOjpwb3BVcE1lbnUpOgorICAg
ICAgICAqIHBhbC9zeXN0ZW0vbWFjL1dlYlBhbmVsLm1tOgorICAgICAgICAoLVtXZWJQYW5lbCBp
bml0XSk6CisKIDIwMTgtMDktMTAgIEphbWVzIFNhdmFnZSAgPGphbWVzLnNhdmFnZUBhcHBsZS5j
b20+CiAKICAgICAgICAgRXhwb3NlIC1hcHBsZS1zeXN0ZW0tY29udGFpbmVyLWJvcmRlciBjb2xv
ciB0byBpbnRlcm5hbCB3ZWIgdmlld3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU2MGFiZWU0MTg5ZjE0NDJhZmM1
MmM1OTgwOTkzMDVhMjAxNzVlZDEuLmQ1M2M1ZWFlN2RiMDVlNTBkZTZkMzdiY2Q0NmFlOWI4Zjc5
ZDEzN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xICsxLDExNyBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVt
b250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5H
Xy4qIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg4OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6OnN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2Up
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVN5bmNBbGxDb29raWVz
KToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tOgorICAg
ICAgICAoV2ViS2l0OjpiZWdpbk1vZGFsKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9Q
bHVnaW5Qcm9jZXNzU2hpbS5tbToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZVBsdWdpbk1vZHVsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2lu
TW9kdWxlOjp0cnlMb2FkKToKKyAgICAgICAgKiBTaGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveCk6Cisg
ICAgICAgICogU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6
OmNvbXBpbGVBbmRBcHBseVNhbmRib3hTbG93Q2FzZSk6CisgICAgICAgICogU2hhcmVkL21hYy9D
b2xvclNwYWNlRGF0YS5tbToKKyAgICAgICAgKFdlYktpdDo6Q29sb3JTcGFjZURhdGE6OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uSW1wbDo6c2FuZGJveEV4dGVuc2lvbkZvclR5cGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXS1dlYlZpZXcgX3dlYl9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKHdl
YmtpdFdlYlZpZXdSdW5Bc01vZGFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXcubW06CisgICAgICAgICgtW1dLVmlldyBfd2ViX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0
ZVZhbHVlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZENsaWVudC5tbToK
KyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRDbGllbnQ6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1
Z2dlc3RlZEZpbGVuYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTGVnYWN5Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tOgorICAgICAgICAoLVtXS0N1c3RvbVByb3RvY29sTG9h
ZGVyIGluaXRXaXRoTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHk6Y3VzdG9tUHJvdG9j
b2xJRDpyZXF1ZXN0Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUubW06CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVu
dDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OkNvbnRl
eHRNZW51Q2xpZW50OjptZW51RnJvbVByb3Bvc2VkTWVudSk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgICgtW1dLVGV4dExpc3RUb3VjaEJhclZp
ZXdDb250cm9sbGVyIGluaXRXaXRoV2ViVmlld0ltcGw6XSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjp1cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNlbmREcmFnRW5kVG9QYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OnN0YXJ0RHJhZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjaGFyYWN0
ZXJJbmRleEZvclBvaW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2lu
UHJvY2Vzc1Byb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6
OmdldFBsdWdpblByb2Nlc3NTZXJpYWxOdW1iZXIpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Q
cm9jZXNzUHJveHk6Om1ha2VQbHVnaW5Qcm9jZXNzVGhlRnJvbnRQcm9jZXNzKToKKyAgICAgICAg
KFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjptYWtlVUlQcm9jZXNzVGhlRnJvbnRQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpleGl0RnVsbHNjcmVlbik6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1t
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tMZWdhY3lQREZWaWV3Lm1tOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLm1tOgorICAgICAgICAoLVtXS1BE
RlBhZ2VOdW1iZXJJbmRpY2F0b3IgX21ha2VSb3VuZGVkQ29ybmVyc10pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvZm9ybXMvV0tBaXJQbGF5Um91dGVQaWNrZXIubW06CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbToKKyAgICAgICAgKC1bV0tGaWxl
VXBsb2FkUGFuZWwgX3ByZXNlbnRQb3BvdmVyV2l0aENvbnRlbnRWaWV3Q29udHJvbGxlcjphbmlt
YXRlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJv
bC5tbToKKyAgICAgICAgKC1bV0tDb2xvclBvcG92ZXIgaW5pdFdpdGhWaWV3Ol0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLm1tOgorICAgICAgICAo
LVtXS0RhdGVUaW1lUG9wb3ZlciBpbml0V2l0aFZpZXc6ZGF0ZVBpY2tlck1vZGU6XSk6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvZm9ybXMvV0tGb3JtU2VsZWN0UG9wb3Zlci5tbToKKyAgICAgICAgKC1bV0tTZWxlY3RQb3Bv
dmVyIGluaXRXaXRoVmlldzpoYXNHcm91cHM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNj
cmVlblRvUm9vdFZpZXcpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cm9vdFZp
ZXdUb1NjcmVlbik6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGVu
dGVyRnVsbFNjcmVlbjpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
ciBmaW5pc2hlZEVudGVyRnVsbFNjcmVlbkFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlciBleGl0RnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGJlZ2FuRXhpdEZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZy
YW1lOmZpbmFsRnJhbWU6XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIgZmluaXNoZWRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlciBjb21wbGV0ZUZpbmlzaEV4aXRGdWxsU2NyZWVuQW5pbWF0
aW9uQWZ0ZXJSZXBhaW50XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIgX3N0YXJ0RW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOl0pOgorICAgICAg
ICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIF9zdGFydEV4aXRGdWxsU2NyZWVuQW5p
bWF0aW9uV2l0aER1cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQcmludGlu
Z1ZpZXcubW06CisgICAgICAgICgtW1dLUHJpbnRpbmdWaWV3IF9zZXRBdXRvZGlzcGxheTpdKToK
KyAgICAgICAgKC1bV0tQcmludGluZ1ZpZXcgX2RyYXdQREZEb2N1bWVudDpwYWdlOmF0UG9pbnQ6
XSk6CisgICAgICAgICgtW1dLUHJpbnRpbmdWaWV3IF9kcmF3UHJldmlldzpdKToKKyAgICAgICAg
KC1bV0tQcmludGluZ1ZpZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9X
S1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLVGV4dElucHV0UGFu
ZWwgX2ludGVycHJldEtleUV2ZW50OnVzaW5nTGVnYWN5Q29jb2FUZXh0SW5wdXQ6c3RyaW5nOl0p
OgorICAgICAgICAoLVtXS1RleHRJbnB1dFBhbmVsIF9oYXNNYXJrZWRUZXh0XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViUG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW06CisgICAgICAg
IChXZWJLaXQ6OmluaXRpYWxpemVFdmVudFJlY29yZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luOjpzZW5kQ29tcGxleFRleHRJbnB1dCk6CisgICAgICAgIChXZWJLaXQ6Om1ha2VD
R0xQcmVzZW50TGF5ZXJPcGFxdWUpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6
bnVsbEV2ZW50VGltZXJGaXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9Q
REZQbHVnaW4ubW06CisgICAgICAgICgtW1dLUERGUGx1Z2luQWNjZXNzaWJpbGl0eU9iamVjdCBh
Y2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudF0pOgorICAgICAgICAoLVtXS1BERkxheWVyQ29u
dHJvbGxlckRlbGVnYXRlIHdyaXRlSXRlbXNUb1Bhc3RlYm9hcmQ6d2l0aFR5cGVzOl0pOgorICAg
ICAgICAoV2ViS2l0OjpQREZQbHVnaW46OmhhbmRsZUVkaXRpbmdDb21tYW5kKToKKyAgICAgICAg
KFdlYktpdDo6UERGUGx1Z2luOjpzZXRBY3RpdmVBbm5vdGF0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6IGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNo
b2ljZUFubm90YXRpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbkNob2ljZUFubm90YXRpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbkNob2lj
ZUFubm90YXRpb246OmNyZWF0ZUFubm90YXRpb25FbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbToKKyAgICAgICAg
KFdlYktpdDo6UERGUGx1Z2luVGV4dEFubm90YXRpb246OmNyZWF0ZUFubm90YXRpb25FbGVtZW50
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4
dENsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRy
YWdDbGllbnRNYWMubW06CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRJbWFnZVRvQml0bWFwKToK
KyAgICAgICAgKFdlYktpdDo6V2ViRHJhZ0NsaWVudDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBh
Z2VPYmplY3RNYWMubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdl
TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpkcmF3UERGUGFnZSk6CisKID09IFJvbGxlZCBvdmVy
IHRvIENoYW5nZUxvZy0yMDE4LTA5LTExID09CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5k
ZXggZTk3ZDg4YmUyMTM1NDMxOTNhNTljMzUzNGQ4YTQxNTlmMGVjYWE5NS4uMDEzMDBiMDgzYWVj
N2I5MTIxZWIwNmMxYWZlZDA5YWI2ODFiY2IyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzMyBAQAorMjAxOC0wOC0yNyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVt
b250QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIElHTk9SRV9XQVJOSU5HXy4qIG1hY3Jvcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDYXJib24v
Q2FyYm9uVXRpbHMubToKKyAgICAgICAgKFBvb2xDbGVhbmVyKToKKyAgICAgICAgKiBDYXJib24v
Q2FyYm9uV2luZG93QWRhcHRlci5tbToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93QWRhcHRlciBp
bml0V2l0aENhcmJvbldpbmRvd1JlZjp0YWtpbmdPd25lcnNoaXA6ZGlzYWJsZU9yZGVyaW5nOmNh
cmJvbjpdKToKKyAgICAgICAgKC1bQ2FyYm9uV2luZG93QWRhcHRlciBzZXRWaWV3c05lZWREaXNw
bGF5Ol0pOgorICAgICAgICAoLVtDYXJib25XaW5kb3dBZGFwdGVyIHJlY29uY2lsZVRvQ2FyYm9u
V2luZG93Qm91bmRzXSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgX3Rlcm1XaW5k
b3dJZk93bmVyXSk6CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgX3dpbmRvd01vdmVk
VG9SZWN0Ol0pOgorICAgICAgICAoLVtDYXJib25XaW5kb3dBZGFwdGVyIHNldENvbnRlbnRWaWV3
Ol0pOgorICAgICAgICAoLVtDYXJib25XaW5kb3dBZGFwdGVyIF9oYW5kbGVSb290Qm91bmRzQ2hh
bmdlZF0pOgorICAgICAgICAoLVtDYXJib25XaW5kb3dBZGFwdGVyIF9oYW5kbGVDb250ZW50Qm91
bmRzQ2hhbmdlZF0pOgorICAgICAgICAqIENhcmJvbi9DYXJib25XaW5kb3dGcmFtZS5tOgorICAg
ICAgICAoLVtDYXJib25XaW5kb3dGcmFtZSB0aXRsZV0pOgorICAgICAgICAqIENhcmJvbi9ISVZp
ZXdBZGFwdGVyLm06CisgICAgICAgICgrW0hJVmlld0FkYXB0ZXIgZ2V0SElWaWV3Rm9yTlNWaWV3
Ol0pOgorICAgICAgICAqIENhcmJvbi9ISVdlYlZpZXcubW06CisgICAgICAgIChvdmVycmlkZUNH
Q29udGV4dCk6CisgICAgICAgIChyZXN0b3JlQ0dDb250ZXh0KToKKyAgICAgICAgKERyYXcpOgor
ICAgICAgICAqIERPTS9ET00ubW06CisgICAgICAgICogSGlzdG9yeS9XZWJIaXN0b3J5Lm1tOgor
ICAgICAgICAoLVtXZWJIaXN0b3J5UHJpdmF0ZSBsb2FkSGlzdG9yeUd1dHNGcm9tVVJMOnNhdmVk
SXRlbXNDb3VudDpjb2xsZWN0RGlzY2FyZGVkSXRlbXNJbnRvOmVycm9yOl0pOgorICAgICAgICAq
IEhpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW06CisgICAgICAgICgtW1dlYkhpc3RvcnlJdGVtIGlj
b25dKToKKyAgICAgICAgKiBNaXNjL1dlYktpdE5TU3RyaW5nRXh0cmFzLm1tOgorICAgICAgICAo
LVtOU1N0cmluZyBfd2ViX2RyYXdBdFBvaW50OmZvbnQ6dGV4dENvbG9yOl0pOgorICAgICAgICAq
IE1pc2MvV2ViTlNJbWFnZUV4dHJhcy5tOgorICAgICAgICAoLVtOU0ltYWdlIF93ZWJfc2NhbGVU
b01heFNpemU6XSk6CisgICAgICAgICgtW05TSW1hZ2UgX3dlYl9kaXNzb2x2ZVRvRnJhY3Rpb246
XSk6CisgICAgICAgICogTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW06CisgICAgICAgICgr
W05TUGFzdGVib2FyZCBfd2ViX3NldEZpbmRQYXN0ZWJvYXJkU3RyaW5nOndpdGhPd25lcjpdKToK
KyAgICAgICAgKC1bTlNQYXN0ZWJvYXJkIF93ZWJfZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlRm9y
RWxlbWVudDpVUkw6dGl0bGU6YXJjaGl2ZTpzb3VyY2U6XSk6CisgICAgICAgICogUGFuZWxzL1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwubToKKyAgICAgICAgKC1bV2ViQXV0aGVudGljYXRpb25QYW5l
bCBsb2FkTmliXSk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0
TWFuYWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlcjo6
c3Bhd25QbHVnaW5Ib3N0KToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Ib3N0TWFu
YWdlcjo6ZGlkQ3JlYXRlV2luZG93KToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkhvc3RQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Ib3N0
UHJveHk6Om1ha2VDdXJyZW50UHJvY2Vzc0Zyb250UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjptYWtlUGx1Z2luSG9zdFByb2Nlc3NGcm9udFByb2Nl
c3MgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6aXNQ
bHVnaW5Ib3N0UHJvY2Vzc0Zyb250UHJvY2VzcyBjb25zdCk6CisgICAgICAgICogUGx1Z2lucy9I
b3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpO
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6Om1vdXNlRXZlbnQpOgorICAgICAgICAqIFBsdWdp
bnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
SG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGRyYXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdpbnMv
SG9zdGVkL1dlYlRleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubToKKyAgICAgICAgKC1bV2ViVGV4
dElucHV0UGFuZWwgX2ludGVycHJldEtleUV2ZW50OnN0cmluZzpdKToKKyAgICAgICAgKiBQbHVn
aW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgtW1dlYkJhc2VOZXRz
Y2FwZVBsdWdpblZpZXcgY29udmVydEZyb21YOmFuZFk6c3BhY2U6dG9YOmFuZFk6c3BhY2U6XSk6
CisgICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblBhY2thZ2UubW06CisgICAgICAg
ICgtW1dlYk5ldHNjYXBlUGx1Z2luUGFja2FnZSBfdHJ5TG9hZF0pOgorICAgICAgICAqIFBsdWdp
bnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoLVtXZWJOZXRzY2FwZVBsdWdp
blZpZXcgc2F2ZUFuZFNldE5ld1BvcnRTdGF0ZUZvclVwZGF0ZTpdKToKKyAgICAgICAgKC1bV2Vi
TmV0c2NhcGVQbHVnaW5WaWV3IHNlbmREcmF3UmVjdEV2ZW50Ol0pOgorICAgICAgICAoLVtXZWJO
ZXRzY2FwZVBsdWdpblZpZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICogUGx1Z2lucy9XZWJQbHVn
aW5Db250cm9sbGVyLm1tOgorICAgICAgICAoV2ViS2l0X1RTVXBkYXRlQ2hlY2tfYWxlcnREaWRF
bmRfcmV0dXJuQ29kZV9jb250ZXh0SW5mb18pOgorICAgICAgICAoV2ViS2l0X05TQWxlcnRfYmVn
aW5TaGVldE1vZGFsRm9yV2luZG93X21vZGFsRGVsZWdhdGVfZGlkRW5kU2VsZWN0b3JfY29udGV4
dEluZm9fKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06CisgICAg
ICAgIChQb3B1cE1lbnVNYWM6OnBvcHVsYXRlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJE
cmFnQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKFdl
YkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQpOgor
ICAgICAgICAod2ViR2V0TlNJbWFnZSk6CisgICAgICAgICogV2ViSW5zcGVjdG9yL1dlYk5vZGVI
aWdobGlnaHQubW06CisgICAgICAgICogV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHRWaWV3
Lm1tOgorICAgICAgICAoLVtXZWJOb2RlSGlnaGxpZ2h0VmlldyBkcmF3UmVjdDpdKToKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYkNsaXBWaWV3Lm1tOgorICAgICAgICAoLVtXZWJDbGlwVmlldyBpbml0
V2l0aEZyYW1lOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICgt
W1dlYkZyYW1lIF91cGRhdGVCYWNrZ3JvdW5kQW5kVXBkYXRlc1doaWxlT2Zmc2NyZWVuXSk6Cisg
ICAgICAgICgtW1dlYkZyYW1lIF9kcmF3UmVjdDpjb250ZW50c09ubHk6XSk6CisgICAgICAgICgt
W1dlYkZyYW1lIGFjY2Vzc2liaWxpdHlSb290XSk6CisgICAgICAgICogV2ViVmlldy9XZWJGdWxs
U2NyZWVuQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIg
ZW50ZXJGdWxsU2NyZWVuOl0pOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBm
aW5pc2hlZEVudGVyRnVsbFNjcmVlbkFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV2ViRnVsbFNj
cmVlbkNvbnRyb2xsZXIgZXhpdEZ1bGxTY3JlZW5dKToKKyAgICAgICAgKC1bV2ViRnVsbFNjcmVl
bkNvbnRyb2xsZXIgZmluaXNoZWRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbjpdKToKKyAgICAgICAg
KC1bV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIgX3N0YXJ0RW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9u
V2l0aER1cmF0aW9uOl0pOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBfc3Rh
cnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjpdKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtOU1dpbmRvdyBfd2ViX2JvcmRlclZpZXdd
KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3VwZGF0ZU1vdXNlb3ZlcldpdGhGYWtlRXZlbnRd
KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX3NldEFzaWRlU3Vidmlld3NdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgX2F1dG9zY3JvbGxdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgZHJh
d1JlY3Q6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IG1vdXNlRG93bjpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgbW91c2VEcmFnZ2VkOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBt
b3VzZVVwOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfZW5kUHJpbnRNb2RlQW5kUmVzdG9y
ZVdpbmRvd0F1dG9kaXNwbGF5XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGtub3dzUGFnZVJh
bmdlOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBhY2Nlc3NpYmlsaXR5SGl0VGVzdDpdKToK
KyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2ZvbnRBdHRyaWJ1dGVzRnJvbUZvbnRQYXN0ZWJvYXJk
XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9jb2xvckFzU3RyaW5nOl0pOgorICAgICAgICAo
LVtXZWJIVE1MVmlldyBjb3B5Rm9udDpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2V4ZWN1
dGVTYXZlZEtleXByZXNzQ29tbWFuZHNdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgYXR0YWNo
Um9vdExheWVyOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyB0ZXh0U3RvcmFnZV0pOgorICAg
ICAgICAoLVtXZWJIVE1MVmlldyBfdXBkYXRlU2VsZWN0aW9uRm9ySW5wdXRNYW5hZ2VyXSk6Cisg
ICAgICAgICogV2ViVmlldy9XZWJQREZWaWV3Lm1tOgorICAgICAgICAoX2FwcGxpY2F0aW9uSW5m
b0Zvck1JTUVUeXBlKToKKyAgICAgICAgKC1bV2ViUERGVmlldyBjZW50ZXJTZWxlY3Rpb25JblZp
c2libGVBcmVhOl0pOgorICAgICAgICAoLVtXZWJQREZWaWV3IF9yZWN1cnNpdmVEaXNwbGF5UmVj
dElmTmVlZGVkSWdub3JpbmdPcGFjaXR5OmlzVmlzaWJsZVJlY3Q6cmVjdElzVmlzaWJsZVJlY3RG
b3JWaWV3OnRvcFZpZXc6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX3JlY3Vyc2l2ZURpc3Bs
YXlBbGxEaXJ0eVdpdGhMb2NrRm9jdXM6dmlzUmVjdDpdKToKKyAgICAgICAgKC1bV2ViUERGVmll
dyBfcmVjdXJzaXZlOmRpc3BsYXlSZWN0SWdub3JpbmdPcGFjaXR5OmluQ29udGV4dDp0b3BWaWV3
Ol0pOgorICAgICAgICAoLVtXZWJQREZWaWV3IHNlYXJjaEZvcjpkaXJlY3Rpb246Y2FzZVNlbnNp
dGl2ZTp3cmFwOnN0YXJ0SW5TZWxlY3Rpb246XSk6CisgICAgICAgICogV2ViVmlldy9XZWJUZXh0
Q29tcGxldGlvbkNvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dlYlRleHRDb21wbGV0aW9uQ29u
dHJvbGxlciBfYnVpbGRVSV0pOgorICAgICAgICAoLVtXZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xs
ZXIgX3BsYWNlUG9wdXBXaW5kb3c6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyLm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVu
SFVEV2luZG93Q29udHJvbGxlci5tbToKKyAgICAgICAgKGNyZWF0ZU1lZGlhVUlCYWNrZ3JvdW5k
Vmlldyk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJUZXh0
TGlzdFRvdWNoQmFyVmlld0NvbnRyb2xsZXIgaW5pdFdpdGhXZWJWaWV3Ol0pOgorICAgICAgICAo
LVtXZWJWaWV3IF9kaXNwYXRjaFRpbGVEaWREcmF3Ol0pOgorICAgICAgICAoLVtXZWJWaWV3IGVu
Y29kZVdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1bV2ViVmlldyBtYWluRnJhbWVJY29uXSk6Cisg
ICAgICAgIChMYXllckZsdXNoQ29udHJvbGxlcjo6Zmx1c2hMYXllcnMpOgorICAgICAgICAqIFdl
YlZpZXcvV2ViV2luZG93QW5pbWF0aW9uLm1tOgorICAgICAgICAoc2V0U2NhbGVkRnJhbWVGb3JX
aW5kb3cpOgorCiAyMDE4LTA5LTEwICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNv
bnkuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgbmVlZHNEZXN0cnVjdGlvbiBjbGFzcyB2
YXJpYWJsZXMgZnJvbSBIYXNoVHJhaXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
YWxsYmFja09iamVjdC5oCmluZGV4IDE2MzY0Njk2Mzg5ZGVjOTBlMDUwZWQyMDAwZWFlNzJjMWQ3
OTIxM2EuLjE4ZDUwZjcxMDZmZDQ4ZWViMzU5YTliYjg3NWE4N2E0MTgzNmM1N2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCkBAIC0xNTgsMTggKzE1
OCw5IEBAIHB1YmxpYzoKICAgICB2b2lkKiBnZXRQcml2YXRlKCk7CiAKICAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIGZpeCB0aGUgd2FybmluZ3MgZm9yIGV4dGVybi10ZW1wbGF0ZSBpbiBKU09iamVj
dCB0ZW1wbGF0ZSBjbGFzc2VzOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYxOTc5Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jaWYgX19oYXNfd2FybmluZygiLVd1bmRl
ZmluZWQtdmFyLXRlbXBsYXRlIikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIgot
I2VuZGlmCi0jZW5kaWYKKyAgICBJR05PUkVfQ0xBTkdfV0FSTklOR1NfQkVHSU4oInVuZGVmaW5l
ZC12YXItdGVtcGxhdGUiKQogICAgIERFQ0xBUkVfSU5GTzsKLSNpZiBDT01QSUxFUihDTEFORykK
LSNpZiBfX2hhc193YXJuaW5nKCItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCi0jZW5kaWYKKyAgICBJR05PUkVfQ0xBTkdfV0FS
TklOR1NfRU5ECiAKICAgICBKU0NsYXNzUmVmIGNsYXNzUmVmKCkgY29uc3QgeyByZXR1cm4gbV9j
YWxsYmFja09iamVjdERhdGEtPmpzQ2xhc3M7IH0KICAgICBib29sIGluaGVyaXRzKEpTQ2xhc3NS
ZWYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90
ZXN0YXBpLmMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwppbmRl
eCAzZmM4NjEyMTlhMzA4NDVhYThiZTg2NDQ2MDU4YWZiM2Y2MjA3YWQ5Li43OGFkN2Q2MDY2ZWNl
MDkwZjI3YmQ2YTczMmUxMDQ3NTUzMjdkZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL3Rlc3RhcGkuYwpAQCAtMTE0MCwxMCArMTE0MCw3IEBAIHN0YXRpYyBib29sIGdsb2Jh
bENvbnRleHROYW1lVGVzdCgpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotI2lmIENPTVBJTEVS
KEdDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV3VudXNlZC1idXQtc2V0LXZhcmlhYmxlIgotI2VuZGlmCitJR05PUkVfR0ND
X1dBUk5JTkdTX0JFR0lOKCJ1bnVzZWQtYnV0LXNldC12YXJpYWJsZSIpCiBzdGF0aWMgdm9pZCBj
aGVja0NvbnN0bmVzc0luSlNPYmplY3ROYW1lcygpCiB7CiAgICAgSlNTdGF0aWNGdW5jdGlvbiBm
dW47CkBAIC0xMTUxLDkgKzExNDgsNyBAQCBzdGF0aWMgdm9pZCBjaGVja0NvbnN0bmVzc0luSlNP
YmplY3ROYW1lcygpCiAgICAgSlNTdGF0aWNWYWx1ZSB2YWw7CiAgICAgdmFsLm5hbWUgPSAic29t
ZXRoaW5nIjsKIH0KLSNpZiBDT01QSUxFUihHQ0MpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBv
cAotI2VuZGlmCitJR05PUkVfR0NDX1dBUk5JTkdTX0VORAogCiAjaWZkZWYgX19jcGx1c3BsdXMK
IGV4dGVybiAiQyIgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9MaW5rQnVmZmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZm
ZXIuaAppbmRleCA1NTk5MDhhZGQwM2RlMjE1YWE2MGFmNzI4MDlmYTMzZTFjOWQ5N2E5Li4yM2U0
MGRkYzMzZTFmZjA2MzdhYmM5YTQ3OWE3Njg0ZWZjMzcxMjgzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaApAQCAtMjYzLDE1ICsyNjMsMTEgQEAgcHVi
bGljOgogICAgIHRlbXBsYXRlPFB0clRhZyB0YWcsIHR5cGVuYW1lLi4uIEFyZ3M+CiAgICAgQ29k
ZVJlZjx0YWc+IGZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJseShjb25zdCBjaGFyKiBmb3JtYXQs
IEFyZ3MuLi4gYXJncykKICAgICB7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
Zm9ybWF0LW5vbmxpdGVyYWwiCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9y
bWF0LXNlY3VyaXR5IgotI2VuZGlmCisgICAgICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JF
R0lOCisgICAgICAgIElHTk9SRV9XQVJOSU5HU19CRUdJTigiZm9ybWF0LXNlY3VyaXR5IikKICAg
ICAgICAgcmV0dXJuIGZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJseUltcGwoZm9ybWF0LCBhcmdz
Li4uKS50ZW1wbGF0ZSByZXRhZ2dlZDx0YWc+KCk7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5H
KQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgICAgICBJR05PUkVfV0FS
TklOR1NfRU5ECisgICAgICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0VORAogICAgIH0KIAog
ICAgIHRlbXBsYXRlPFB0clRhZyB0YWc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2Vy
VG9BaXIuY3BwCmluZGV4IDJjZGI3MjQzZDM0ZTI3ZTU3NjFjOTM0OTM1Y2U1NTE4MTRkNWI2MmEu
LjAwNjUyN2FmNjhkMzQ1ZjVlODBjODRjNDBlNzhkZmM1NDBmN2VlMjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCkBAIC02MiwxMCArNjIsOSBAQAogI2luY2x1
ZGUgPHd0Zi9JbmRleFNldC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgogCi0jaWYgQ09N
UElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2VuZGlm
IC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVE
CitJR05PUkVfUkVUVVJOX1RZUEVfV0FSTklOR1NfQkVHSU4KKyNlbmRpZgogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIEIzIHsKIApAQCAtMzUyNyw4ICszNTI2LDggQEAgdm9pZCBsb3dlclRv
QWlyKFByb2NlZHVyZSYgcHJvY2VkdXJlKQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKIAot
I2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYg
QVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfV0FSTklOR1NfRU5ECisjZW5kaWYK
IAogI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNPcGNvZGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2Rl
LmNwcAppbmRleCA3ZWJmNjZiNzBhNDUwYzkyYWUxNTQ5ZDUyNjRiYzk5MGRhMWJlYzE0Li5kYzEw
MjQ5NzkzNDFiM2Y2YTE1NWRiNzhjMjAyMzQ5MjY3MjVmMTc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM09wY29kZS5jcHAKQEAgLTMwLDEwICszMCw5IEBACiAKICNpbmNsdWRlIDx3dGYvUHJp
bnRTdHJlYW0uaD4KIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxF
RAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX1dBUk5JTkdTX0JFR0lO
CisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTM3Myw4ICsz
NzIsOCBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgT3Bjb2RlIG9wY29k
ZSkKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9E
SVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAvLyBDT01QSUxFUihH
Q0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVS
Tl9UWVBFX1dBUk5JTkdTX0VORAorI2VuZGlmCiAKICNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVHlwZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzVHlwZS5oCmluZGV4IDRjZWFhOGExZGYxNGI4YjZiNjhlMGU4MGJm
ZWI2YTllMGEyZDhlODIuLjRjZDQ3MTBlOWIzOTQ4NTJiNWM1NTQxOTRhZGYxMmY3YThkNWIwNjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNUeXBlLmgKQEAgLTMwLDEwICszMCw5IEBACiAjaW5jbHVk
ZSAiQjNDb21tb24uaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKLSNpZiBDT01Q
SUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0dXJuLXR5cGUiCi0jZW5kaWYg
Ly8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQK
K0lHTk9SRV9SRVRVUk5fVFlQRV9XQVJOSU5HU19CRUdJTgorI2VuZGlmCiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgQjMgewogCkBAIC04Nyw4ICs4Niw4IEBAIHZvaWQgcHJpbnRJbnRlcm5h
bChQcmludFN0cmVhbSYsIEpTQzo6QjM6OlR5cGUpOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAot
I2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYg
QVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfV0FSTklOR1NfRU5ECisjZW5kaWYK
IAogI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNUeXBlTWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNUeXBlTWFw
LmgKaW5kZXggYzBlYTQxMzA0OGE1NTU2ZjVkYzM0NThkMzg0MGU1ZmI1Yjk5ZDZkMS4uMTZkODA3
ZTRmOWU0ZTVmMWU2YTkyOTc1ODhiYmI3MDYyZjE4Y2NhMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzVHlwZU1hcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1R5cGVNYXAuaApAQCAtMzAsMTAgKzMwLDkgQEAKICNpbmNsdWRlICJCM1R5cGUuaCIKICNp
bmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJU
X0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYm
IEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBF
X1dBUk5JTkdTX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7
CiAKQEAgLTEwMSw4ICsxMDAsOCBAQCBwcml2YXRlOgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
QjMKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBk
aWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVE
CisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfV0FSTklOR1NfRU5ECisj
ZW5kaWYKIAogI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNXaWR0aC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzV2lk
dGguaAppbmRleCBlMzY1ODNmNjk0Yjg4M2ZiMmI4ODlkMDEzMTA4MzRhMDUzMWNmYzQ3Li5lOTJh
ZGRhOGI1YzhjOGMxMDI3Mjg4ZWY0ODg5NzQ0YjBlODI5OTcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNXaWR0aC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1dpZHRoLmgKQEAgLTMwLDEwICszMCw5IEBACiAjaW5jbHVkZSAiQjNCYW5rLmgiCiAjaW5j
bHVkZSAiQjNUeXBlLmgiCiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAot
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XcmV0dXJuLXR5cGUiCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElT
QUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9XQVJOSU5HU19C
RUdJTgorI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCkBAIC0xNDMs
OSArMTQyLDkgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwgSlNDOjpCMzo6V2lk
dGgpOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJU
X0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVS
KEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVU
VVJOX1RZUEVfV0FSTklOR1NfRU5ECisjZW5kaWYKIAogI2VuZGlmIC8vIEVOQUJMRShCM19KSVQp
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcAppbmRleCBmOWU0NjljMDQ3
Y2JlYjM4NzE3Nzc1MWM0OWM3NjZjNTc5ZTY4NTM5Li4yZGFjMmVhN2ZhODRkMjczZjAwM2IwYjA3
YzA1OTk3ZTUyMjYxZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckFyZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3Bw
CkBAIC0zNCwxMCArMzQsOSBAQAogI2luY2x1ZGUgIkZQUkluZm8uaCIKICNpbmNsdWRlICJHUFJJ
bmZvLmgiCiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0
dXJuLXR5cGUiCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNp
ZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9XQVJOSU5HU19CRUdJTgorI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApA
QCAtMzc5LDggKzM3OCw4IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBB
cmc6OlNpZ25lZG5lc3Mgc2lnbmVkbmVzcykKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKLSNpZiBD
T01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
b3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VS
VF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX1dBUk5JTkdTX0VORAorI2VuZGlmCiAKICNl
bmRpZiAvLyBFTkFCTEUoQjNfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJBcmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgK
aW5kZXggODM4ZmNhODkyMTI3MWMxYjA3NzhiMjVkNDUwNTc5ZGU0Mzc5NTc2Ny4uY2QyMTYyZGRm
YjlhZjllMWRiNWUwOGUwYjc0ZTBlOTBjNGE2MzJhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckFyZy5oCkBAIC0zNSwxMCArMzUsOSBAQAogI2luY2x1ZGUgIkIzV2lkdGguaCIKICNp
bmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJ
U0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFT
U0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX1dB
Uk5JTkdTX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAK
QEAgLTE0OTQsOCArMTQ5Myw4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpC
Mzo6QWlyOjpBcmc+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPEpTQzo6QjM6CiAKIH0gLy8gbmFt
ZXNwYWNlIFdURgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRf
RElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9XQVJOSU5H
U19FTkQKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJDb2RlLmgKaW5kZXggNzU5NzAzMGZkY2YwNDJiZmMzZDhkZWEyMjgxYjll
YjI4YmEyNTQzNS4uMjk2OWNlYWQ1ZjMwYzM5MDBmY2VkN2JlYTVmN2VmMTM5NGMyZTBlYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKQEAgLTQ0LDEwICs0NCw5IEBAIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCiBjbGFzcyBQcm9jZWR1cmU7CiAKLSNpZiBD
T01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0dXJuLXR5cGUiCi0jZW5k
aWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJM
RUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9XQVJOSU5HU19CRUdJTgorI2VuZGlmCiAKIG5hbWVzcGFj
ZSBBaXIgewogCkBAIC0zODgsOCArMzg3LDggQEAgcHJpdmF0ZToKIAogfSB9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6QjM6OkFpcgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBB
U1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9X
QVJOSU5HU19FTkQKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaAppbmRleCAwN2Q5YTczMTRlZWIxMDljNzMxMjM3
ZDRiZTMyNzEzMWIxMWM5NGVlLi40ZWYyNzRmYWViMzRiMDFmOGVjYmM2ZDRkZjk1NDAxYzg5OTdk
YTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCkBAIC03NCwxOCAr
NzQsMTMgQEAgY29uc3QgaW50IG51bU9wY29kZUlEcyA9IE5VTUJFUl9PRl9CWVRFQ09ERV9JRFMg
KyBOVU1CRVJfT0ZfQllURUNPREVfSEVMUEVSX0lEUzsKICAgICBjb25zdCBpbnQgb3Bjb2RlTGVu
Z3Roc1tudW1PcGNvZGVJRHNdID0geyBGT1JfRUFDSF9PUENPREVfSUQoT1BDT0RFX0lEX0xFTkdU
SF9NQVApIH07CiAjdW5kZWYgT1BDT0RFX0lEX0xFTkdUSF9NQVAKIAotI2lmIENPTVBJTEVSKEdD
QykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBp
Z25vcmVkICItV3R5cGUtbGltaXRzIgotI2VuZGlmCitJR05PUkVfV0FSTklOR1NfQkVHSU4oInR5
cGUtbGltaXRzIikKIAogI2RlZmluZSBWRVJJRllfT1BDT0RFX0lEKGlkLCBzaXplKSBDT01QSUxF
X0FTU0VSVChpZCA8PSBudW1PcGNvZGVJRHMsIEFTU0VSVF9USEFUX0pTX09QQ09ERV9JRFNfQVJF
X1ZBTElEKTsKICAgICBGT1JfRUFDSF9PUENPREVfSUQoVkVSSUZZX09QQ09ERV9JRCk7CiAjdW5k
ZWYgVkVSSUZZX09QQ09ERV9JRAogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlh
Z25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdTX0VORAogCiAjaWYgRU5BQkxFKENP
TVBVVEVEX0dPVE9fT1BDT0RFUykKIHR5cGVkZWYgdm9pZCogT3Bjb2RlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBiZGI0ZGI3MjRj
MzJjZjBlY2I4YWQ0Y2Q4Yjg4ZjAzMDFhZGQxMGY0Li40Yjc4ZDExMjA3ZDZhNWE2OGJkOWI1ZTM2
ZjI1NTZhOWI1M2EzMzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcApAQCAtOTY2MCwxNCArOTY2MCw5IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OnNwZWN1bGF0ZU51bWJlcihFZGdlIGVkZ2UpCiAgICAgICAgIEpTVmFsdWVSZWdzKGdwciks
IGVkZ2UsIFNwZWNCeXRlY29kZU51bWJlciwKICAgICAgICAgbV9qaXQuYnJhbmNoSWZOb3ROdW1i
ZXIoZ3ByKSk7CiAjZWxzZQotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2VudW0t
Y29tcGFyZSIKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HU19CRUdJTigiZW51bS1jb21wYXJl
IikKICAgICBzdGF0aWNfYXNzZXJ0KEpTVmFsdWU6OkludDMyVGFnID49IEpTVmFsdWU6Okxvd2Vz
dFRhZywgIkludDMyVGFnIGlzIGluY2x1ZGVkIGluID49IEpTVmFsdWU6Okxvd2VzdFRhZyByYW5n
ZS4iKTsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHBvcAotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdTX0VORAogICAgIEdQUlJlZyB0YWdHUFIg
PSB2YWx1ZS50YWdHUFIoKTsKICAgICBERkdfVFlQRV9DSEVDSygKICAgICAgICAgdmFsdWUuanNW
YWx1ZVJlZ3MoKSwgZWRnZSwgflNwZWNJbnQzMk9ubHksCkBAIC0xMDE3NCwxNCArMTAxNjksOSBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVNaXNjKEVkZ2UgZWRnZSwgSlNWYWx1ZVJl
Z3MgcmVncykKICAgICAgICAgcmVncywgZWRnZSwgU3BlY01pc2MsCiAgICAgICAgIG1faml0LmJy
YW5jaDY0KE1hY3JvQXNzZW1ibGVyOjpBYm92ZSwgcmVncy5ncHIoKSwgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW02NChUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRCb29sIHwgVGFnQml0VW5kZWZp
bmVkKSkpOwogI2Vsc2UKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdlbnVtLWNv
bXBhcmUiCi0jZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR1NfQkVHSU4oImVudW0tY29tcGFyZSIp
CiAgICAgc3RhdGljX2Fzc2VydChKU1ZhbHVlOjpJbnQzMlRhZyA+PSBKU1ZhbHVlOjpVbmRlZmlu
ZWRUYWcsICJJbnQzMlRhZyBpcyBpbmNsdWRlZCBpbiA+PSBKU1ZhbHVlOjpVbmRlZmluZWRUYWcg
cmFuZ2UuIik7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBwb3AKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HU19FTkQKICAgICBERkdfVFlQRV9D
SEVDSygKICAgICAgICAgcmVncywgZWRnZSwgflNwZWNJbnQzMk9ubHksCiAgICAgICAgIG1faml0
LmJyYW5jaElmSW50MzIocmVncy50YWdHUFIoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggMTIxZmQ2M2Y4NzdjOGFkYTYw
OGUxZGYwZDhhMDljNTJkNTcxOWJkZi4uMTRkYzE4YTg5ZGZhZjhlYjlmNmRkYmYwZTc3NGEwZTA3
ZDY5MGRjOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCkBAIC04NzYsMTIgKzg3Niw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVt
aXRDYWxsKE5vZGUqIG5vZGUpCiAKIC8vIENsYW5nIHNob3VsZCBhbGxvdyB1bnJlYWNoYWJsZSBb
W2NsYW5nOjpmYWxsdGhyb3VnaF1dIGluIHRlbXBsYXRlIGZ1bmN0aW9ucyBpZiBhbnkgdGVtcGxh
dGUgZXhwYW5zaW9uIHVzZXMgaXQKIC8vIGh0dHA6Ly9sbHZtLm9yZy9idWdzL3Nob3dfYnVnLmNn
aT9pZD0xODYxOQotI2lmIENPTVBJTEVSKENMQU5HKSAmJiBkZWZpbmVkKF9faGFzX3dhcm5pbmcp
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI2lmIF9faGFzX3dhcm5pbmcoIi1XaW1w
bGljaXQtZmFsbHRocm91Z2giKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
aW1wbGljaXQtZmFsbHRocm91Z2giCi0jZW5kaWYKLSNlbmRpZgorSUdOT1JFX0NMQU5HX1dBUk5J
TkdTX0JFR0lOKCJpbXBsaWNpdC1mYWxsdGhyb3VnaCIpCiB0ZW1wbGF0ZTxib29sIHN0cmljdD4K
IEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMySW50ZXJuYWwoRWRnZSBl
ZGdlLCBEYXRhRm9ybWF0JiByZXR1cm5Gb3JtYXQpCiB7CkBAIC0xMDEyLDkgKzEwMDcsNyBAQCBH
UFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJbnQzMkludGVybmFsKEVkZ2UgZWRn
ZSwgRGF0YUZvcm1hdCYgcmV0dXJuRgogICAgICAgICByZXR1cm4gSW52YWxpZEdQUlJlZzsKICAg
ICB9CiB9Ci0jaWYgQ09NUElMRVIoQ0xBTkcpICYmIGRlZmluZWQoX19oYXNfd2FybmluZykKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX0NMQU5HX1dBUk5JTkdT
X0VORAogCiBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJbnQzMihFZGdlIGVk
Z2UsIERhdGFGb3JtYXQmIHJldHVybkZvcm1hdCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE91dHB1dC5oCmluZGV4IDlmNTkzNjljODliZTU3ZTZlZTc3OWUxMTZmMzdmZTZjMmI3ZTk3MGYu
LjZiYWViOWVkYzYyZmMwYzA1ZTY3ZmI1Yjk3MGEyYWExODNlNmE1ODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExPdXRwdXQuaApAQCAtNTAsMTEgKzUwLDggQEAKICNpbmNsdWRlIDx3dGYv
U3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogLy8gRklYTUU6IHJlbW92ZSB0aGlzIG9uY2UgZXZlcnl0
aGluZyBjYW4gYmUgZ2VuZXJhdGVkIHRocm91Z2ggQjMuCi0jaWYgQ09NUElMRVIoR0NDX09SX0NM
QU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XbWlzc2luZy1ub3JldHVybiIKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgotI2VuZGlmIC8vIENPTVBJTEVSKEdDQ19PUl9DTEFO
RykKK0lHTk9SRV9XQVJOSU5HU19CRUdJTigibWlzc2luZy1ub3JldHVybiIpCitBTExPV19VTlVT
RURfUEFSQU1FVEVSU19CRUdJTgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNTAwLDkgKzQ5Nyw4
IEBAIGlubGluZSB2b2lkIE91dHB1dDo6YWRkSW5jb21pbmdUb1BoaShMVmFsdWUgcGhpLCBWYWx1
ZUZyb21CbG9jayB2YWx1ZSwgUGFyYW1zLi4uCiAgICAgYWRkSW5jb21pbmdUb1BoaShwaGksIHRo
ZVJlc3QuLi4pOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCitBTExPV19V
TlVTRURfUEFSQU1FVEVSU19FTkQKK0lHTk9SRV9XQVJOSU5HU19FTkQKIAogfSB9IC8vIG5hbWVz
cGFjZSBKU0M6OkZUTAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0ND
YWxsSGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaApp
bmRleCAxZDhlM2JlZTliNmJkNjdlNzA5MzQ3NTUzNmQyYmQ1N2QxZjMxODNmLi5jMzA0NDE5ZWQ0
MzZmODU4MTEzMzNhZTY1MjQ0YTc5YWQyNGU1M2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTMyOSwxNCArMzI5LDkgQEAgcHJpdmF0ZToKIAogICAgICAg
ICBjdXJyZW50R1BSQXJndW1lbnQgKz0gZXh0cmFHUFJBcmdzOwogICAgICAgICBjdXJyZW50RlBS
QXJndW1lbnQgLT0gbnVtQ3Jvc3NTb3VyY2VzOwotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3R5cGUtbGltaXRzIgotI2VuZGlmCisgICAgICAgIElHTk9SRV9XQVJOSU5HU19CRUdJ
TigidHlwZS1saW1pdHMiKQogICAgICAgICBBU1NFUlQoY3VycmVudEdQUkFyZ3VtZW50ID49IEdQ
UkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgfHwgY3VycmVudEZQUkFyZ3VtZW50ID49
IEZQUkluZm86Om51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMpOwotI2lmIENPTVBJTEVSKEdDQ19P
Ul9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICAgICAgSUdO
T1JFX1dBUk5JTkdTX0VORAogCiAgICAgICAgIHVuc2lnbmVkIHBva2VPZmZzZXQgPSBQT0tFX0FS
R1VNRU5UX09GRlNFVCArIGV4dHJhUG9rZTsKICAgICAgICAgcG9rZU9mZnNldCArPSBzdGQ6Om1h
eChjdXJyZW50R1BSQXJndW1lbnQsIG51bWJlck9mR1BBcmd1bWVudFJlZ2lzdGVycykgLSBudW1i
ZXJPZkdQQXJndW1lbnRSZWdpc3RlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnREYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dERhdGEuY3BwCmluZGV4IGM5M2QxNWM3NGM1OGZmNWQ5NmFhMGFhZDk0MzQxM2YwODVhM2Q5MmUu
LjQxZjY0YjRhZmEzMWU4MTljZjU0YjlmYmNkODA4M2Y1YTMxMzZlNmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCkBAIC02NywxMCArNjcsNyBAQCB2b2lkIGlu
aXRpYWxpemUoKQogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiB9CiAKLSNpZiBDT01QSUxFUihDTEFO
RykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdtaXNzaW5nLW5vcmV0dXJuIgotI2VuZGlmCitJR05PUkVfQ0xBTkdfV0FS
TklOR1NfQkVHSU4oIm1pc3Npbmctbm9yZXR1cm4iKQogdm9pZCBEYXRhOjpwZXJmb3JtQXNzZXJ0
aW9ucyhWTSYgdm0pCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTE5OSw4ICsxOTYsNiBA
QCB2b2lkIERhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKFZNJiB2bSkKICAgICAgICAgQVNTRVJUKEFy
aXRoUHJvZmlsZTo6ZnJvbUludChiaXRzKS5yaHNPYnNlcnZlZFR5cGUoKS5pc09ubHlOdW1iZXIo
KSk7CiAgICAgfQogfQotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAotI2VuZGlmCitJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKIH0gfSAvLyBuYW1l
c3BhY2UgSlNDOjpMTEludApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNs
b3dQYXRocy5jcHAKaW5kZXggNjgxZjYzODc5YzQ5YjA0YmUwZDk5M2UwNWU0MTYxYWQ2NDAyZGJi
My4uM2M1ZjlhMjk0MmIzMDAzZmU0MjEzOGY3ZTRkZGMzZWEwZGVlYjdjNCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC0yMDYsMTYgKzIw
NiwxMiBAQCB2b2lkIHNsb3dQYXRoTG4oY29uc3QgVHlwZXMmLi4uIHZhbHVlcykKIHRlbXBsYXRl
PHR5cGVuYW1lLi4uIFR5cGVzPgogdm9pZCBzbG93UGF0aExvZ0YoY29uc3QgY2hhciogZm9ybWF0
LCBjb25zdCBUeXBlcyYuLi4gdmFsdWVzKQogewotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2Zvcm1hdC1zZWN1cml0eSIKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFU
X0JFR0lOCisgICAgSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJmb3JtYXQtc2VjdXJpdHkiKQogICAg
IGlmIChPcHRpb25zOjp0cmFjZUxMSW50U2xvd1BhdGgoKSkKICAgICAgICAgZGF0YUxvZ0YoZm9y
bWF0LCB2YWx1ZXMuLi4pOwotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR1NfRU5ECisgICAgQUxM
T1dfTk9OTElURVJBTF9GT1JNQVRfRU5ECiB9CiAKICNlbHNlIC8vIG5vdCBMTElOVF9UUkFDSU5H
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25maWdGaWxlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCmluZGV4IDk4
YzE5NmY4MmY2ODUxYmRmNzBlZjhkNjIyM2I1YTE2OTEyOTM2MmYuLmM5YWE4NTM0N2FhZmE3NWY2
NjY4NmE5MGZlM2RhNjZkMTljNmI2ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbmZpZ0ZpbGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbmZpZ0ZpbGUuY3BwCkBAIC00OTEsMTQgKzQ5MSwxMyBAQCB2b2lkIENvbmZpZ0ZpbGU6
OmNhbm9uaWNhbGl6ZVBhdGhzKCkKICAgICAgICAgICAgICAgICAgICAgc3RybmNhdChmaWxlbmFt
ZUJ1ZmZlciwgIi8iLCAyKTsgLy8gUm9vbSBmb3IgJy8nIHBsdXMgTlVMCiAjaWYgQ09NUElMRVIo
R0NDKQogI2lmIEdDQ19WRVJTSU9OX0FUX0xFQVNUKDgsIDAsIDApCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdzdHJpbmdvcC10
cnVuY2F0aW9uIgorICAgICAgICAgICAgICAgIElHTk9SRV9XQVJOSU5HU19CRUdJTigic3RyaW5n
b3AtdHJ1bmNhdGlvbiIpCiAjZW5kaWYKICNlbmRpZgogICAgICAgICAgICAgICAgIHN0cm5jYXQo
ZmlsZW5hbWVCdWZmZXIsIG1fZmlsZW5hbWUsIHNpemVvZihmaWxlbmFtZUJ1ZmZlcikgLSBzdHJs
ZW4oZmlsZW5hbWVCdWZmZXIpIC0gMSk7CiAjaWYgQ09NUElMRVIoR0NDKQogI2lmIEdDQ19WRVJT
SU9OX0FUX0xFQVNUKDgsIDAsIDApCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICAgICAgICAgIElHTk9SRV9XQVJOSU5HU19FTkQKICNlbmRpZgogI2VuZGlmCiAgICAgICAgICAg
ICAgICAgc3RybmNweShtX2ZpbGVuYW1lLCBmaWxlbmFtZUJ1ZmZlciwgc19tYXhQYXRoTGVuZ3Ro
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlld1By
b3RvdHlwZS5jcHAKaW5kZXggZjA1Y2ZmNWY4OGE1NTFjM2E3YzRiYWFkMmYwM2M1YjQ3Nzg5YWY2
ZC4uZGYyZjY3NjRlMTAzZjBjMjA5NGI2ZDBhMzZlOWU1ZjE3MWNhYWNkZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlwZS5jcHAK
QEAgLTIwOCwxMCArMjA4LDcgQEAgRW5jb2RlZEpTVmFsdWUgc2V0RGF0YShFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotI2lm
IENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV21pc3NpbmctcHJvdG90eXBlcyIKLSNlbmRpZgor
SUdOT1JFX0NMQU5HX1dBUk5JTkdTX0JFR0lOKCJtaXNzaW5nLXByb3RvdHlwZXMiKQogCiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9HZXR0ZXJCdWZmZXIoRXhlY1N0
YXRlKiBleGVjKQogewpAQCAtMzI4LDggKzMyNSw2IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRGbG9hdDY0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAg
ICByZXR1cm4gc2V0RGF0YTxGbG9hdDY0QWRhcHRvcj4oZXhlYyk7CiB9Ci0jaWYgQ09NUElMRVIo
Q0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9DTEFO
R19XQVJOSU5HU19FTkQKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmll
d0NvbnN0cnVjdG9yLmgKaW5kZXggOGFjZmQ0OGUyM2ZmZDk2Y2JjYjJmYmI3YmY3MTJmNzgwOGY1
YTQ0MC4uMWZiNjBjYjhkMmM5YjBkZWMwYmU0NjZhOGExOWY0MTE5ZDZhNzE5NCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdD
b25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaApAQCAtNDMsMTkgKzQzLDEwIEBAIHB1YmxpYzoK
ICAgICAgICAgVk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEpTT2JqZWN0KiBwcm90
b3R5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgRnVuY3Rpb25FeGVjdXRhYmxlKiBwcml2YXRlQWxs
b2NhdG9yKTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZml4IHRoZSB3YXJuaW5ncyBmb3Ig
ZXh0ZXJuLXRlbXBsYXRlIGluIEpTT2JqZWN0IHRlbXBsYXRlIGNsYXNzZXM6IGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5NzkKLSNpZiBDT01QSUxFUihDTEFORykK
LSNpZiBfX2hhc193YXJuaW5nKCItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3VuZGVmaW5lZC12YXItdGVtcGxhdGUiCi0jZW5kaWYKLSNlbmRpZgorICAgIElHTk9SRV9DTEFO
R19XQVJOSU5HU19CRUdJTigidW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIpCiAgICAgREVDTEFSRV9J
TkZPOwotI2lmIENPTVBJTEVSKENMQU5HKQotI2lmIF9faGFzX3dhcm5pbmcoIi1XdW5kZWZpbmVk
LXZhci10ZW1wbGF0ZSIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKLSNl
bmRpZgotICAgIAorICAgIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKKwogICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBw
cm90b3R5cGUpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmgKaW5kZXggNGUx
ZWI3ZDg4MzRjYmM1ZGU3MmNkNmNjNmIxZDI0YjQ2MTQzYzViNi4uYjQzNjBlOTE4ZWQ5YTUwZjNk
NjMzOGYzMzY4YTMxYzk5NWEwYTljMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5o
CkBAIC00MywxOCArNDMsOSBAQCBwdWJsaWM6CiAgICAgICAgIFZNJiwgSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmUqKTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZml4IHRoZSB3YXJuaW5n
cyBmb3IgZXh0ZXJuLXRlbXBsYXRlIGluIEpTT2JqZWN0IHRlbXBsYXRlIGNsYXNzZXM6IGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5NzkKLSNpZiBDT01QSUxFUihD
TEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiKQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3VuZGVmaW5lZC12YXItdGVtcGxhdGUiCi0jZW5kaWYKLSNlbmRpZgorICAgIElHTk9S
RV9DTEFOR19XQVJOSU5HU19CRUdJTigidW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIpCiAgICAgREVD
TEFSRV9JTkZPOwotI2lmIENPTVBJTEVSKENMQU5HKQotI2lmIF9faGFzX3dhcm5pbmcoIi1XdW5k
ZWZpbmVkLXZhci10ZW1wbGF0ZSIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5k
aWYKLSNlbmRpZgorICAgIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAKICAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFs
dWUgcHJvdG90eXBlKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMu
Y3BwCmluZGV4IDQwN2M1NzA0NzQ2YjA0Y2ZmNzRkZmE5OGI5YmMzMTNmYzczMzY2NGYuLmQwMjM2
OGUxNDRhN2NjNmFjOTJlY2Q5Y2YwNWQ4ZWFkY2Q0YTZjMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCkBAIC03NDQsMTIgKzc0NCw3IEBAIGJvb2wgT3B0aW9u
czo6c2V0QWxpYXNlZE9wdGlvbihjb25zdCBjaGFyKiBhcmcpCiAgICAgaWYgKCFlcXVhbFN0cikK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jaWYgX19oYXNf
d2FybmluZygiLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdGF1dG9sb2dpY2Fs
LWNvbXBhcmUiCi0jZW5kaWYKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HU19CRUdJTigidGF1
dG9sb2dpY2FsLWNvbXBhcmUiKQogCiAgICAgLy8gRm9yIGVhY2ggb3B0aW9uLCBjaGVjayBpZiB0
aGUgc3BlY2lmeSBhcmcgaXMgYSBtYXRjaC4gSWYgc28sIHNldCB0aGUgYXJnCiAgICAgLy8gaWYg
dGhlIHZhbHVlIG1ha2VzIHNlbnNlLiBPdGhlcndpc2UsIG1vdmUgb24gdG8gY2hlY2tpbmcgdGhl
IG5leHQgb3B0aW9uLgpAQCAtNzcyLDExICs3NjcsNyBAQCBib29sIE9wdGlvbnM6OnNldEFsaWFz
ZWRPcHRpb24oY29uc3QgY2hhciogYXJnKQogICAgIEpTQ19BTElBU0VEX09QVElPTlMoRk9SX0VB
Q0hfT1BUSU9OKQogI3VuZGVmIEZPUl9FQUNIX09QVElPTgogCi0jaWYgQ09NUElMRVIoQ0xBTkcp
Ci0jaWYgX19oYXNfd2FybmluZygiLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKLSNlbmRpZgorICAgIElHTk9SRV9XQVJOSU5HU19F
TkQKIAogICAgIHJldHVybiBmYWxzZTsgLy8gTm8gb3B0aW9uIG1hdGNoZWQuCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29kZVByb2ZpbGluZy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29kZVByb2ZpbGluZy5jcHAKaW5kZXggYzNkYThjMmMy
OTNmY2M5YmNjNzNkZjEyZjY5NmY0Y2UzYjQ5OGRhMy4uZTQ0ZGMzNDNiZTdhMzg2ZTM1ZWM1ZTA5
ZWFhYmRlYWE2NzdkNDNjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0NvZGVQcm9maWxpbmcuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9Db2Rl
UHJvZmlsaW5nLmNwcApAQCAtNDQsMTAgKzQ0LDcgQEAgdm9sYXRpbGUgQ29kZVByb2ZpbGUqIENv
ZGVQcm9maWxpbmc6OnNfcHJvZmlsZVN0YWNrID0gMDsKIENvZGVQcm9maWxpbmc6Ok1vZGUgQ29k
ZVByb2ZpbGluZzo6c19tb2RlID0gQ29kZVByb2ZpbGluZzo6RGlzYWJsZWQ7CiBXVEY6Ok1ldGFB
bGxvY2F0b3JUcmFja2VyKiBDb2RlUHJvZmlsaW5nOjpzX3RyYWNrZXIgPSAwOwogCi0jaWYgQ09N
UElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbWlzc2luZy1ub3JldHVybiIKLSNlbmRpZgorSUdOT1JF
X0NMQU5HX1dBUk5JTkdTX0JFR0lOKCJtaXNzaW5nLW5vcmV0dXJuIikKIAogI2lmIEhBVkUoTUFD
SElORV9DT05URVhUKQogLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHN0YXJ0ICYgc3RvcCB0aGUgdGlt
ZXIuCkBAIC02Myw5ICs2MCw3IEBAIHN0YXRpYyB2b2lkIHNldFByb2ZpbGVUaW1lcih1bnNpZ25l
ZCB1c2VjKQogfQogI2VuZGlmCiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogCiAjaWYg
SEFWRShNQUNISU5FX0NPTlRFWFQpCiBzdGF0aWMgdm9pZCBwcm9maWxpbmdUaW1lcihpbnQsIHNp
Z2luZm9fdCosIHZvaWQqIHVhcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21TZWN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNlY3Rp
b25zLmgKaW5kZXggZTY5MjRiNzk1M2NjMzY0NmJlZTkwODQ0MWE2M2M2M2MyOTRhNzdkNi4uYjA5
N2QxNGQ4MzIzNTU2ODc4ZWU3YWMwZGQyNWYxN2UzNmUyYjRjZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNlY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVNlY3Rpb25zLmgKQEAgLTI3LDEwICsyNyw5IEBACiAKICNpZiBFTkFC
TEUoV0VCQVNTRU1CTFkpCiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAot
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XcmV0dXJuLXR5cGUiCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElT
QUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9XQVJOSU5HU19C
RUdJTgorI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKQEAgLTEw
Nyw4ICsxMDYsOCBAQCBpbmxpbmUgY29uc3QgY2hhciogbWFrZVN0cmluZyhTZWN0aW9uIHNlY3Rp
b24pCiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpXYXNtCiAKLSNpZiBDT01QSUxFUihHQ0MpICYm
IEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAvLyBD
T01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdO
T1JFX1JFVFVSTl9UWVBFX1dBUk5JTkdTX0VORAorI2VuZGlmCiAKICNlbmRpZiAvLyBFTkFCTEUo
V0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9nZW5l
cmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9nZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIucHkKaW5kZXggYmM1NGEyMjM3
NDY1ZGI5YzdkOTAzZjIyYTk1NDJhMWNhNjhlZjU1NS4uNzg2ZDA5NmI2NmU2ODJkZDY1NzdkMmRl
MjY1MDgyYjcyMTE1NmJjYSAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
Z2VuZXJhdGVXYXNtVmFsaWRhdGVJbmxpbmVzSGVhZGVyLnB5CisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2dlbmVyYXRlV2FzbVZhbGlkYXRlSW5saW5lc0hlYWRlci5weQpAQCAtMTI3
LDEwICsxMjcsOSBAQCBjb250ZW50cyA9IHdhc20uaGVhZGVyICsgIiIiCiAKICNpbmNsdWRlIDx3
dGYvU3RkTGliRXh0cmFzLmg+CiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxF
RAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XcmV0dXJuLXR5cGUiCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRf
RElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9XQVJOSU5H
U19CRUdJTgorI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKQEAg
LTE2MCw5ICsxNTksOSBAQCBhdXRvIFZhbGlkYXRlOjpzdG9yZShTdG9yZU9wVHlwZSBvcCwgRXhw
cmVzc2lvblR5cGUgcG9pbnRlciwgRXhwcmVzc2lvblR5cGUgdmFsdQogCiB9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6V2FzbQogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NF
UlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9XQVJO
SU5HU19FTkQKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Fz
c2VydGlvbnMuY3BwCmluZGV4IGZlOGZhYzA3ZDZmNzU3M2UwMmYyNjlkZTViMGI1MGYyYmRlN2Rj
NWQuLjJiOTQ2MGFhNjdlZWI3YjkyYTkzZjc0Y2ZiNTYxMTJhNDc0Mjg4MDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2Vy
dGlvbnMuY3BwCkBAIC03OSwxMCArNzksOSBAQCBleHRlcm4gIkMiIHsKIHN0YXRpYyB2b2lkIGxv
Z1RvU3RkZXJyKGNvbnN0IGNoYXIqIGJ1ZmZlcikKIHsKICNpZiBVU0UoQVBQTEVfU1lTVEVNX0xP
RykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGFzbF9sb2coMCwgMCwgQVNMX0xFVkVMX05PVElD
RSwgIiVzIiwgYnVmZmVyKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZgogICAgIGZwdXRzKGJ1ZmZlciwg
c3RkZXJyKTsKIH0KQEAgLTk0LDE0ICs5Myw5IEBAIHN0YXRpYyB2b2lkIHZwcmludGZfc3RkZXJy
X2NvbW1vbihjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QgYXJncykKICAgICBpZiAoc3Ryc3Ry
KGZvcm1hdCwgIiVAIikpIHsKICAgICAgICAgYXV0byBjZkZvcm1hdCA9IGFkb3B0Q0YoQ0ZTdHJp
bmdDcmVhdGVXaXRoQ1N0cmluZyhudWxscHRyLCBmb3JtYXQsIGtDRlN0cmluZ0VuY29kaW5nVVRG
OCkpOwogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LW5vbmxpdGVyYWwi
Ci0jZW5kaWYKKyAgICAgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfQkVHSU4KICAgICAgICAg
YXV0byBzdHIgPSBhZG9wdENGKENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cyhu
dWxscHRyLCBudWxscHRyLCBjZkZvcm1hdC5nZXQoKSwgYXJncykpOwotI2lmIENPTVBJTEVSKENM
QU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgICAgIEFMTE9X
X05PTkxJVEVSQUxfRk9STUFUX0VORAogICAgICAgICBDRkluZGV4IGxlbmd0aCA9IENGU3RyaW5n
R2V0TWF4aW11bVNpemVGb3JFbmNvZGluZyhDRlN0cmluZ0dldExlbmd0aChzdHIuZ2V0KCkpLCBr
Q0ZTdHJpbmdFbmNvZGluZ1VURjgpOwogICAgICAgICBjb25zdGV4cHIgdW5zaWduZWQgSW5pdGlh
bEJ1ZmZlclNpemUgeyAyNTYgfTsKICAgICAgICAgVmVjdG9yPGNoYXIsIEluaXRpYWxCdWZmZXJT
aXplPiBidWZmZXIobGVuZ3RoICsgMSk7CkBAIC0xMTMsMTMgKzEwNywxMiBAQCBzdGF0aWMgdm9p
ZCB2cHJpbnRmX3N0ZGVycl9jb21tb24oY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3Mp
CiAgICAgfQogCiAjaWYgVVNFKEFQUExFX1NZU1RFTV9MT0cpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICB2YV9saXN0IGNvcHlPZkFyZ3M7CiAgICAgdmFfY29weShjb3B5T2ZBcmdzLCBhcmdzKTsK
ICAgICBhc2xfdmxvZygwLCAwLCBBU0xfTEVWRUxfTk9USUNFLCBmb3JtYXQsIGNvcHlPZkFyZ3Mp
OwogICAgIHZhX2VuZChjb3B5T2ZBcmdzKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZgogCiAgICAgLy8g
RmFsbCB0aHJvdWdoIHRvIHdyaXRlIHRvIHN0ZGVyciBpbiB0aGUgc2FtZSBtYW5uZXIgYXMgb3Ro
ZXIgcGxhdGZvcm1zLgpAQCAtMTQxLDEwICsxMzQsNyBAQCBzdGF0aWMgdm9pZCB2cHJpbnRmX3N0
ZGVycl9jb21tb24oY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiAgICAgdmZwcmlu
dGYoc3RkZXJyLCBmb3JtYXQsIGFyZ3MpOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5H
KQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZm9ybWF0LW5vbmxpdGVyYWwiCi0jZW5kaWYKK0FMTE9XX05PTkxJVEVSQUxfRk9S
TUFUX0JFR0lOCiAKIHN0YXRpYyB2b2lkIHZwcmludGZfc3RkZXJyX3dpdGhfcHJlZml4KGNvbnN0
IGNoYXIqIHByZWZpeCwgY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiB7CkBAIC0x
NzQsOSArMTY0LDcgQEAgc3RhdGljIHZvaWQgdnByaW50Zl9zdGRlcnJfd2l0aF90cmFpbGluZ19u
ZXdsaW5lKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmcKICAgICB2cHJpbnRmX3N0ZGVy
cl9jb21tb24oZm9ybWF0V2l0aE5ld2xpbmUuZGF0YSgpLCBhcmdzKTsKIH0KIAotI2lmIENPTVBJ
TEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0FM
TE9XX05PTkxJVEVSQUxfRk9STUFUX0VORAogCiBXVEZfQVRUUklCVVRFX1BSSU5URigxLCAyKQog
c3RhdGljIHZvaWQgcHJpbnRmX3N0ZGVycl9jb21tb24oY29uc3QgY2hhciogZm9ybWF0LCAuLi4p
CkBAIC0zODUsMTQgKzM3Myw5IEBAIHZvaWQgV1RGTG9nV2l0aExldmVsKFdURkxvZ0NoYW5uZWwq
IGNoYW5uZWwsIFdURkxvZ0xldmVsIGxldmVsLCBjb25zdCBjaGFyKiBmb3JtCiAgICAgdmFfbGlz
dCBhcmdzOwogICAgIHZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7CiAKLSNpZiBDT01QSUxFUihDTEFO
RykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJ
VEVSQUxfRk9STUFUX0JFR0lOCiAgICAgV1RGTG9nKGNoYW5uZWwsIGZvcm1hdCwgYXJncyk7Ci0j
aWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYK
KyAgICBBTExPV19OT05MSVRFUkFMX0ZPUk1BVF9FTkQKIAogICAgIHZhX2VuZChhcmdzKTsKIH0K
QEAgLTQxNSwxNCArMzk4LDkgQEAgdm9pZCBXVEZMb2coV1RGTG9nQ2hhbm5lbCogY2hhbm5lbCwg
Y29uc3QgY2hhciogZm9ybWF0LCAuLi4pCiAgICAgdmFfbGlzdCBhcmdzOwogICAgIHZhX3N0YXJ0
KGFyZ3MsIGZvcm1hdCk7CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQt
bm9ubGl0ZXJhbCIKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lOCiAg
ICAgU3RyaW5nIGxvZ2dpbmdTdHJpbmcgPSBTdHJpbmc6OmZvcm1hdChmb3JtYXQsIGFyZ3MpOwot
I2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlm
CisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfRU5ECiAKICAgICB2YV9lbmQoYXJncyk7CiAK
QEAgLTQ0MiwxNCArNDIwLDkgQEAgdm9pZCBXVEZMb2dWZXJib3NlKGNvbnN0IGNoYXIqIGZpbGUs
IGludCBsaW5lLCBjb25zdCBjaGFyKiBmdW5jdGlvbiwgV1RGTG9nQ2hhbm4KICAgICB2YV9saXN0
IGFyZ3M7CiAgICAgdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKIAotI2lmIENPTVBJTEVSKENMQU5H
KQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2VuZGlmCisgICAgQUxMT1dfTk9OTElU
RVJBTF9GT1JNQVRfQkVHSU4KICAgICBXVEZMb2coY2hhbm5lbCwgZm9ybWF0LCBhcmdzKTsKLSNp
ZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgor
ICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0VORAogCiAgICAgdmFfZW5kKGFyZ3MpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9B
c3NlcnRpb25zLmgKaW5kZXggNWIyOGY4NmZhOTMxZDhjYTFhYzE4Mzg1ODVmMmYwZjJkMzVmNTlm
Ni4uZjU2N2EyMjE2ZmU0YzY3NzZlOTI2MGEyZTk1ZTBkZGQ2NGQ0MTRiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlv
bnMuaApAQCAtNjAyLDE1ICs2MDIsMTQgQEAgaW5saW5lIHZvaWQgY29tcGlsZXJGZW5jZUZvckNy
YXNoKCkKICNpZiBDT01QSUxFUihDTEFORykKIC8vIFRoaXMgd291bGQgYmUgYSBtYWNybyBleGNl
cHQgdGhhdCBpdHMgdXNlIG9mICNwcmFnbWEgd29ya3MgYmVzdCBhcm91bmQKIC8vIGEgZnVuY3Rp
b24uIEhlbmNlIGl0IHVzZXMgbWFjcm8gbmFtaW5nIGNvbnZlbnRpb24uCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbWlz
c2luZy1ub3JldHVybiIKK0lHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigibWlzc2luZy1ub3Jl
dHVybiIpCiBzdGF0aWMgaW5saW5lIHZvaWQgVU5SRUFDSEFCTEVfRk9SX1BMQVRGT1JNKCkKIHsK
ICAgICAvLyBUaGlzICpNVVNUKiBiZSBhIHJlbGVhc2UgYXNzZXJ0LiBXZSB1c2UgaXQgaW4gcGxh
Y2VzIHdoZXJlIGl0J3MgYmV0dGVyIHRvIGNyYXNoIHRoYW4gdG8ga2VlcAogICAgIC8vIGdvaW5n
LgogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCitJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAjZWxzZQogI2RlZmluZSBV
TlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKSBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmggYi9Tb3VyY2UvV1RG
L3d0Zi9Db21waWxlci5oCmluZGV4IDc5OGMzMDkwYzliMWMxODU4MGEzYTZiZTZmYWI2NWJkYWNl
NmZmYWEuLmMwNjQ2NTk0YmQ4MTA0NTcwODg5OGMxY2NlMmM1YWYzZDU0Y2NkM2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvQ29tcGls
ZXIuaApAQCAtMzg1LDQgKzM4NSw5NSBAQAogI2RlZmluZSBfX2hhc19pbmNsdWRlKHBhdGgpIDAK
ICNlbmRpZgogCisvKiBJR05PUkVfV0FSTklOR1MuKiAqLworCisvLyBDYW4ndCB1c2UgV1RGX0NP
TkNBVCgpIGFuZCBTVFJJTkdJWkUoKSBiZWNhdXNlIHRoZXkgYXJlIGRlZmluZWQgaW4KKy8vIFN0
ZExpYkV4dHJhcy5oIHdoaWNoIGluY2x1ZGVzIHVzCisjZGVmaW5lIF9DT01QSUxFUl9DT05DQVRf
SShhLCBiKSBhICMjIGIKKyNkZWZpbmUgX0NPTVBJTEVSX0NPTkNBVChhLCBiKSBfQ09NUElMRVJf
Q09OQ0FUX0koYSwgYikKKworI2RlZmluZSBfQ09NUElMRVJfU1RSSU5HSVpFKGV4cCkgI2V4cAor
CisjZGVmaW5lIF9DT01QSUxFUl9XQVJOSU5HX05BTUUod2FybmluZykgIi1XIiB3YXJuaW5nCisK
KyNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HU19CRUdJ
Tl9DT05EKGNvbmQsIGNvbXBpbGVyLCB3YXJuaW5nKSBcCisgICAgX1ByYWdtYShfQ09NUElMRVJf
U1RSSU5HSVpFKGNvbXBpbGVyIGRpYWdub3N0aWMgcHVzaCkpIFwKKyAgICBfQ09NUElMRVJfQ09O
Q0FUKElHTk9SRV9XQVJOSU5HU19CRUdJTl9JTVBMXywgY29uZCkoY29tcGlsZXIsIHdhcm5pbmcp
CisKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdTX0JFR0lOX0lNUExfMShjb21waWxlciwgd2Fybmlu
ZykgXAorICAgIF9QcmFnbWEoX0NPTVBJTEVSX1NUUklOR0laRShjb21waWxlciBkaWFnbm9zdGlj
IGlnbm9yZWQgd2FybmluZykpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HU19CRUdJTl9JTVBMXzAo
Y29tcGlsZXIsIHdhcm5pbmcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HU19CRUdJTl9JTVBMXyhj
b21waWxlciwgd2FybmluZykKKworCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HU19FTkRfSU1QTChj
b21waWxlcikgX1ByYWdtYShfQ09NUElMRVJfU1RSSU5HSVpFKGNvbXBpbGVyIGRpYWdub3N0aWMg
cG9wKSkKKworI2lmIGRlZmluZWQoX19oYXNfd2FybmluZykKKyNkZWZpbmUgX0lHTk9SRV9XQVJO
SU5HU19CRUdJTl9JTVBMKGNvbXBpbGVyLCB3YXJuaW5nKSBcCisgICAgSUdOT1JFX1dBUk5JTkdT
X0JFR0lOX0NPTkQoX19oYXNfd2FybmluZyh3YXJuaW5nKSwgY29tcGlsZXIsIHdhcm5pbmcpCisj
ZWxzZQorI2RlZmluZSBfSUdOT1JFX1dBUk5JTkdTX0JFR0lOX0lNUEwoY29tcGlsZXIsIHdhcm5p
bmcpIElHTk9SRV9XQVJOSU5HU19CRUdJTl9DT05EKDEsIGNvbXBpbGVyLCB3YXJuaW5nKQorI2Vu
ZGlmCisKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdTX0JFR0lOX0lNUEwoY29tcGlsZXIsIHdhcm5p
bmcpIFwKKyAgICBfSUdOT1JFX1dBUk5JTkdTX0JFR0lOX0lNUEwoY29tcGlsZXIsIF9DT01QSUxF
Ul9XQVJOSU5HX05BTUUod2FybmluZykpCisKKyNlbmRpZiAvLyBDT01QSUxFUihHQ0NfT1JfQ0xB
TkcpCisKKworI2lmIENPTVBJTEVSKEdDQykKKyNkZWZpbmUgSUdOT1JFX0dDQ19XQVJOSU5HU19C
RUdJTih3YXJuaW5nKSBJR05PUkVfV0FSTklOR1NfQkVHSU5fSU1QTChHQ0MsIHdhcm5pbmcpCisj
ZGVmaW5lIElHTk9SRV9HQ0NfV0FSTklOR1NfRU5EIElHTk9SRV9XQVJOSU5HU19FTkRfSU1QTChH
Q0MpCisjZWxzZQorI2RlZmluZSBJR05PUkVfR0NDX1dBUk5JTkdTX0JFR0lOKHdhcm5pbmcpCisj
ZGVmaW5lIElHTk9SRV9HQ0NfV0FSTklOR1NfRU5ECisjZW5kaWYKKworI2lmIENPTVBJTEVSKENM
QU5HKQorI2RlZmluZSBJR05PUkVfQ0xBTkdfV0FSTklOR1NfQkVHSU4od2FybmluZykgSUdOT1JF
X1dBUk5JTkdTX0JFR0lOX0lNUEwoY2xhbmcsIHdhcm5pbmcpCisjZGVmaW5lIElHTk9SRV9DTEFO
R19XQVJOSU5HU19FTkQgSUdOT1JFX1dBUk5JTkdTX0VORF9JTVBMKGNsYW5nKQorI2Vsc2UKKyNk
ZWZpbmUgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0JFR0lOKHdhcm5pbmcpCisjZGVmaW5lIElHTk9S
RV9DTEFOR19XQVJOSU5HU19FTkQKKyNlbmRpZgorCisjaWYgQ09NUElMRVIoR0NDX09SX0NMQU5H
KQorI2RlZmluZSBJR05PUkVfV0FSTklOR1NfQkVHSU4od2FybmluZykgSUdOT1JFX1dBUk5JTkdT
X0JFR0lOX0lNUEwoR0NDLCB3YXJuaW5nKQorI2RlZmluZSBJR05PUkVfV0FSTklOR1NfRU5EIElH
Tk9SRV9XQVJOSU5HU19FTkRfSU1QTChHQ0MpCisjZWxzZQorI2RlZmluZSBJR05PUkVfV0FSTklO
R1NfQkVHSU4od2FybmluZykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdTX0VORAorI2VuZGlmCisK
KyNpZiAhZGVmaW5lZChBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTikKKyNkZWZp
bmUgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4gSUdOT1JFX1dBUk5JTkdTX0JF
R0lOKCJkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCisjZGVmaW5lIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORCBJR05PUkVfV0FSTklOR1NfRU5ECisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfQkVHSU4pCisjZGVmaW5lIEFMTE9XX05F
V19BUElfV0lUSE9VVF9HVUFSRFNfQkVHSU4gSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0JFR0lOKCJ1
bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIpCisjZGVmaW5lIEFMTE9XX05FV19BUElfV0lUSE9V
VF9HVUFSRFNfRU5EIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKKyNlbmRpZgorCisjaWYgIWRl
ZmluZWQoQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfQkVHSU4pCisjZGVmaW5lIEFMTE9XX1VOVVNF
RF9QQVJBTUVURVJTX0JFR0lOIElHTk9SRV9XQVJOSU5HU19CRUdJTigidW51c2VkLXBhcmFtZXRl
ciIpCisjZGVmaW5lIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORCBJR05PUkVfV0FSTklOR1Nf
RU5ECisjZW5kaWYKKworI2lmICFkZWZpbmVkKEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lO
KQorI2RlZmluZSBBTExPV19OT05MSVRFUkFMX0ZPUk1BVF9CRUdJTiBJR05PUkVfV0FSTklOR1Nf
QkVHSU4oImZvcm1hdC1ub25saXRlcmFsIikKKyNkZWZpbmUgQUxMT1dfTk9OTElURVJBTF9GT1JN
QVRfRU5EIElHTk9SRV9XQVJOSU5HU19FTkQKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoSUdOT1JF
X1JFVFVSTl9UWVBFX1dBUk5JTkdTX0JFR0lOKQorI2RlZmluZSBJR05PUkVfUkVUVVJOX1RZUEVf
V0FSTklOR1NfQkVHSU4gSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJyZXR1cm4tdHlwZSIpCisjZGVm
aW5lIElHTk9SRV9SRVRVUk5fVFlQRV9XQVJOSU5HU19FTkQgSUdOT1JFX1dBUk5JTkdTX0VORAor
I2VuZGlmCisKKyNpZiAhZGVmaW5lZChJR05PUkVfTlVMTF9DSEVDS19XQVJOSU5HU19CRUdJTikK
KyNkZWZpbmUgSUdOT1JFX05VTExfQ0hFQ0tfV0FSTklOR1NfQkVHSU4gSUdOT1JFX1dBUk5JTkdT
X0JFR0lOKCJub25udWxsIikKKyNkZWZpbmUgSUdOT1JFX05VTExfQ0hFQ0tfV0FSTklOR1NfRU5E
IElHTk9SRV9XQVJOSU5HU19FTkQKKyNlbmRpZgorCiAjZW5kaWYgLyogV1RGX0NvbXBpbGVyX2gg
Ki8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01ENS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9N
RDUuY3BwCmluZGV4IGU0OWJhMWJlYjVjODBmN2NlYzQzM2ZkODMyNzIyYzA5MjUyNzMwOTAuLmUy
NzBiNzQxYWM1OGIwM2NkODk2Mjg4Yzk3ODAwMWJiZDA5NzFhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL01ENS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTUQ1LmNwcApAQCAtNTksMjYg
KzU5LDIzIEBAIG5hbWVzcGFjZSBXVEYgewogCiBNRDU6Ok1ENSgpCiB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICBDQ19NRDVfSW5pdCgmbV9jb250ZXh0KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogdm9p
ZCBNRDU6OmFkZEJ5dGVzKGNvbnN0IHVpbnQ4X3QqIGlucHV0LCBzaXplX3QgbGVuZ3RoKQogewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0NfTUQ1X1VwZGF0ZSgmbV9jb250ZXh0LCBpbnB1dCwg
bGVuZ3RoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogdm9pZCBNRDU6OmNoZWNrc3VtKERpZ2VzdCYgaGFz
aCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENDX01ENV9GaW5hbChoYXNoLmRhdGEoKSwg
Jm1fY29udGV4dCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAgICAgCiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uY3BwIGIvU291cmNlL1dURi93dGYvUHJpbnRTdHJlYW0u
Y3BwCmluZGV4IDM4MGM2N2JjYmI5MGUzNjZkODYxODA4NzgwNzMyNDVlNjEzZTRiNGYuLmQzZWVk
ZmM5NjdmM2VhZTY2NmFlMzA1NDg5ODcxMGUyYmVhN2NmOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1ByaW50U3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QcmludFN0cmVhbS5j
cHAKQEAgLTQ2LDIyICs0NiwxNCBAQCB2b2lkIFByaW50U3RyZWFtOjpwcmludGYoY29uc3QgY2hh
ciogZm9ybWF0LCAuLi4pCiAKIHZvaWQgUHJpbnRTdHJlYW06OnByaW50ZlZhcmlhYmxlRm9ybWF0
KGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKQogewotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2VsaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xc3VnZ2Vz
dC1hdHRyaWJ1dGU9Zm9ybWF0IgotI2VuZGlmCisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRf
QkVHSU4KKyAgICBJR05PUkVfR0NDX1dBUk5JTkdTX0JFR0lOKCJzdWdnZXN0LWF0dHJpYnV0ZT1m
b3JtYXQiKQogICAgIHZhX2xpc3QgYXJnTGlzdDsKICAgICB2YV9zdGFydChhcmdMaXN0LCBmb3Jt
YXQpOwogICAgIHZwcmludGYoZm9ybWF0LCBhcmdMaXN0KTsKICAgICB2YV9lbmQoYXJnTGlzdCk7
Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZWxp
ZiBDT01QSUxFUihHQ0MpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAg
SUdOT1JFX0dDQ19XQVJOSU5HU19FTkQKKyAgICBBTExPV19OT05MSVRFUkFMX0ZPUk1BVF9FTkQK
IH0KIAogdm9pZCBQcmludFN0cmVhbTo6Zmx1c2goKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvU0hBMS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9TSEExLmNwcAppbmRleCAzMDVmMDc3NTg5ZDli
YTNlNjUwZmIzZTc1Y2NmZWFkNmUyZDUyYWZmLi42N2JiY2MyZGQ4NTUyMTkyNTExNzkxNGM0NDEx
M2JmNTJiNWNkMmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9TSEExLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9TSEExLmNwcApAQCAtNDEsMjYgKzQxLDIzIEBAIG5hbWVzcGFjZSBXVEYg
ewogCiBTSEExOjpTSEExKCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENDX1NIQTFfSW5p
dCgmbV9jb250ZXh0KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogdm9pZCBTSEExOjphZGRCeXRlcyhjb25z
dCB1aW50OF90KiBpbnB1dCwgc2l6ZV90IGxlbmd0aCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIENDX1NIQTFfVXBkYXRlKCZtX2NvbnRleHQsIGlucHV0LCBsZW5ndGgpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogfQogCiB2b2lkIFNIQTE6OmNvbXB1dGVIYXNoKERpZ2VzdCYgaGFzaCkKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIENDX1NIQTFfRmluYWwoaGFzaC5kYXRhKCksICZtX2NvbnRleHQpOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogfQogCiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFk
aW5nUHRocmVhZHMuY3BwIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCmlu
ZGV4IGRkMDFjNmM3NmVlNjk4NTljNGNjZDhiMTFjNmM5YThjZDFjMDQ5NjIuLjEwNTBjM2I0Y2Zh
ZjU2YjNkOWFjZWU0ZGQ0MmZiMzI5MzA0MjkxNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1RocmVhZGluZ1B0aHJlYWRzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhy
ZWFkcy5jcHAKQEAgLTEwOSwxNSArMTA5LDggQEAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxT
ZW1hcGhvcmU+IGdsb2JhbFNlbWFwaG9yZUZvclN1c3BlbmRSZXN1bWU7CiBzdGF0aWMgY29uc3Rl
eHByIGNvbnN0IGludCBTaWdUaHJlYWRTdXNwZW5kUmVzdW1lID0gU0lHVVNSMTsKIHN0YXRpYyBz
dGQ6OmF0b21pYzxUaHJlYWQqPiB0YXJnZXRUaHJlYWQgeyBudWxscHRyIH07CiAKLSNpZiBDT01Q
SUxFUihHQ0MpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tbG9jYWwtYWRkciIKLSNlbmRpZiAvLyBDT01QSUxFUihH
Q0MpCi0KLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tc3RhY2stYWRkcmVz
cyIKLSNlbmRpZiAvLyBDT01QSUxFUihDTEFORykKK0lHTk9SRV9HQ0NfV0FSTklOR1NfQkVHSU4o
InJldHVybi1sb2NhbC1hZGRyIikKK0lHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigicmV0dXJu
LXN0YWNrLWFkZHJlc3MiKQogCiBzdGF0aWMgTkVWRVJfSU5MSU5FIHZvaWQqIGdldEFwcHJveGlt
YXRlU3RhY2tQb2ludGVyKCkKIHsKQEAgLTEyNiwxMyArMTE5LDggQEAgc3RhdGljIE5FVkVSX0lO
TElORSB2b2lkKiBnZXRBcHByb3hpbWF0ZVN0YWNrUG9pbnRlcigpCiAgICAgcmV0dXJuIGJpdHdp
c2VfY2FzdDx2b2lkKj4oc3RhY2tMb2NhdGlvbik7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0MpCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykKLQotI2lm
IENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8v
IENPTVBJTEVSKENMQU5HKQorSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAorSUdOT1JFX0dDQ19X
QVJOSU5HU19FTkQKIAogdm9pZCBUaHJlYWQ6OnNpZ25hbEhhbmRsZXJTdXNwZW5kUmVzdW1lKGlu
dCwgc2lnaW5mb190Kiwgdm9pZCogdWNvbnRleHQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9WZWN0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCmluZGV4IDg1MTg0Yjk0MDdj
NjkzNzc2MGExMGM2NWIxYWU1NzIyN2E4ZjdmZmYuLmNjOGEyNDhkYjY2NzIwMjJmMmY4MjlkOTY0
NDQ1YTZlYmVmMTU0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCkBAIC01MjksMTQgKzUyOSw5IEBAIHB1YmxpYzoKICAg
ICB7CiAgICAgICAgIEFTU0VSVChidWZmZXIoKSk7CiAKLSNpZiBDT01QSUxFUihHQ0MpCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdpbnZhbGlkLW9mZnNldG9mIgotI2VuZGlmCisgICAgICAgIElHTk9SRV9HQ0NfV0FSTklOR1Nf
QkVHSU4oImludmFsaWQtb2Zmc2V0b2YiKQogICAgICAgICBzdGF0aWNfYXNzZXJ0KChvZmZzZXRv
ZihWZWN0b3JCdWZmZXIsIG1faW5saW5lQnVmZmVyKSArIHNpemVvZihtX2lubGluZUJ1ZmZlcikp
ICUgOCA9PSAwLCAiSW5saW5lIGJ1ZmZlciBlbmQgbmVlZHMgdG8gYmUgb24gOCBieXRlIGJvdW5k
YXJ5IGZvciBBU2FuIGFubm90YXRpb25zIHRvIHdvcmsuIik7Ci0jaWYgQ09NUElMRVIoR0NDKQot
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgICAgICBJR05PUkVfR0NDX1dB
Uk5JTkdTX0VORAogCiAgICAgICAgIGlmIChidWZmZXIoKSA9PSBpbmxpbmVCdWZmZXIoKSkKICAg
ICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2lubGluZUJ1ZmZlcikg
KyBzaXplb2YobV9pbmxpbmVCdWZmZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4
dC9XVEZTdHJpbmcuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCmluZGV4
IDJiMGU1ZjM5Y2Q0M2M2ZGY0MWEwYzE4YmM0YmJkMzg0ZjE5NTEzZDYuLmE4NzUyOWZjNmIzYjgy
ZjIzOGFlNzUwZmY5YzI5M2Q2NDhiMmMzZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvV1RGU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAK
QEAgLTQ1MywxMCArNDUzLDcgQEAgV1RGX0FUVFJJQlVURV9QUklOVEYoMSwgMCkgc3RhdGljIFN0
cmluZyBjcmVhdGVXaXRoRm9ybWF0QW5kQXJndW1lbnRzKGNvbnN0IGNoYXIKICAgICB2YV9saXN0
IGFyZ3NDb3B5OwogICAgIHZhX2NvcHkoYXJnc0NvcHksIGFyZ3MpOwogCi0jaWYgQ09NUElMRVIo
Q0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LW5vbmxpdGVyYWwiCi0jZW5kaWYKKyAgICBBTExPV19O
T05MSVRFUkFMX0ZPUk1BVF9CRUdJTgogCiAjaWYgVVNFKENGKSAmJiAhT1MoV0lORE9XUykKICAg
ICBpZiAoc3Ryc3RyKGZvcm1hdCwgIiVAIikpIHsKQEAgLTQ5Miw5ICs0ODksNyBAQCBXVEZfQVRU
UklCVVRFX1BSSU5URigxLCAwKSBzdGF0aWMgU3RyaW5nIGNyZWF0ZVdpdGhGb3JtYXRBbmRBcmd1
bWVudHMoY29uc3QgY2hhcgogICAgIHZzbnByaW50ZihidWZmZXIuZGF0YSgpLCBidWZmZXIuc2l6
ZSgpLCBmb3JtYXQsIGFyZ3NDb3B5KTsKICAgICB2YV9lbmQoYXJnc0NvcHkpOwogCi0jaWYgQ09N
UElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBB
TExPV19OT05MSVRFUkFMX0ZPUk1BVF9FTkQKIAogICAgIHJldHVybiBTdHJpbmdJbXBsOjpjcmVh
dGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGJ1ZmZlci5kYXRhKCkpLCBsZW4pOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaAppbmRl
eCAyYWExMTgwZGFlZmM3OGYwNjZmYjcxNGY3NmU5NTY2NDBiOGMxOTYxLi4wMDU1MmJmNjY2Yjhk
ZDc5MmU3ODU4OTdkNzlkMjBhZTdkNzQzZDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaApAQCAtMjksMTIgKzI5LDExIEBACiAjaW5jbHVkZSAi
TGliV2ViUlRDTWFjcm9zLmgiCiAjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgiCiAK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgog
CiAjaW5jbHVkZSA8d2VicnRjL2FwaS9kYXRhY2hhbm5lbGludGVyZmFjZS5oPgogCi0jcHJhZ21h
IEdDQyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAKIG5hbWVz
cGFjZSB3ZWJydGMgewogc3RydWN0IERhdGFDaGFubmVsSW5pdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5k
cG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ01lZGlhRW5kcG9pbnQuaAppbmRleCAzZmQ1MDk2OTA5MmFlZWUwMjMwODAyNmI2Mzc1
NjU5MjYyZGI0MmRiLi41ODA2YTgzMDU4MmQ1MGRhN2JjNjFhNjQ0MWQ4MGU1YzY1NDIyZWY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENNZWRpYUVuZHBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCkBAIC0zMiwxNSArMzIs
MTQgQEAKICNpbmNsdWRlICJSVENSdHBSZWNlaXZlci5oIgogI2luY2x1ZGUgPFRpbWVyLmg+CiAK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgog
CiAjaW5jbHVkZSA8d2VicnRjL2FwaS9qc2VwLmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS9wZWVy
Y29ubmVjdGlvbmludGVyZmFjZS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9wYy9wZWVyY29ubmVjdGlv
bmZhY3RvcnkuaD4KICNpbmNsdWRlIDx3ZWJydGMvcGMvcnRjc3RhdHNjb2xsZWN0b3IuaD4KIAot
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAog
CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZl
UmVmQ291bnRlZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDT2JzZXJ2ZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENPYnNlcnZlcnMuaAppbmRleCA1MjZh
MTE4MDhmYTAxNjFiMGExMWIwMmU3ZGM1N2Y2YmI3MWFjMmZkLi5kMTk5Y2E3ZTQ3ZDI0MmRjMjJj
YjVkZTYyMDkwMjliYmQ4NjZkM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENPYnNlcnZlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENPYnNlcnZlcnMu
aApAQCAtMjgsMTIgKzI4LDExIEBACiAKICNpbmNsdWRlICJMaWJXZWJSVENNYWNyb3MuaCIKIAot
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAK
ICNpbmNsdWRlIDx3ZWJydGMvYXBpL3BlZXJjb25uZWN0aW9uaW50ZXJmYWNlLmg+CiAKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgcG9wCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBSZWNlaXZlckJhY2tlbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFJlY2Vp
dmVyQmFja2VuZC5oCmluZGV4IDdhY2UyZTQyZGE2MzFlZTk3MTJkOGFkOGVjYjY5ZDg0YjZjZWEy
YjEuLmYxNTczMzZhOTZhZGQxYjRkNDg3ZWYwNmE5MWVjYWJmZmI0YjYxZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0
cFJlY2VpdmVyQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFJlY2VpdmVyQmFja2VuZC5oCkBAIC0yOSwxMyArMjks
MTIgQEAKICNpbmNsdWRlICJMaWJXZWJSVENNYWNyb3MuaCIKICNpbmNsdWRlICJSVENSdHBSZWNl
aXZlckJhY2tlbmQuaCIKIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdD
QyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9Q
QVJBTUVURVJTX0JFR0lOCiAKICNpbmNsdWRlIDx3ZWJydGMvYXBpL3J0cHJlY2VpdmVyaW50ZXJm
YWNlLmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL3Njb3BlZF9yZWZfcHRyLmg+CiAKLSNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBTZW5k
ZXJCYWNrZW5kLmgKaW5kZXggYzczNDQwNDNhMzY1YjI0MmI4MjEwMTViZWE3NGIxYzMyYjgxZjBh
NC4uMGIwOTM3ZjRhMjg3ZjljODcwODVkZTNjMDYwYTlmODYwZDFiYjcxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRw
U2VuZGVyQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQuaApAQCAtMzMsMTMgKzMzLDEyIEBA
CiAjaW5jbHVkZSAiUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgiCiAjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJB
TUVURVJTX0JFR0lOCiAKICNpbmNsdWRlIDx3ZWJydGMvYXBpL3J0cHNlbmRlcmludGVyZmFjZS5o
PgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS9zY29wZWRfcmVmX3B0ci5oPgogCi0jcHJhZ21h
IEdDQyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFu
c2NlaXZlckJhY2tlbmQuaAppbmRleCBjNDdmZjIwMTljYzJhNjJiZmY5NzgzNWMxMWRhZWZjMDFk
Y2M1M2RiLi4zYTYzMjZlZGM0NDcwOWYwOTE2ODA2NDEyMWVmZjgwYThjZmI2OTc2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENSdHBUcmFuc2NlaXZlckJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuaApAQCAt
MzAsMTMgKzMwLDEyIEBACiAjaW5jbHVkZSAiTGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZC5oIgog
I2luY2x1ZGUgIlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZC5oIgogCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFy
YW1ldGVyIgorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0
Yy9hcGkvcnRwdHJhbnNjZWl2ZXJpbnRlcmZhY2UuaD4KICNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jh
c2Uvc2NvcGVkX3JlZl9wdHIuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKK0FMTE9X
X1VOVVNFRF9QQVJBTUVURVJTX0VORAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1N0YXRzQ29sbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENTdGF0c0NvbGxlY3Rvci5oCmluZGV4IGM2NDYxN2Y5Njk1MDA4MjZl
OTA1YjczZmNjZjhiNzUyOWQ1NmI1ZTMuLjhiMmE4NjRmY2ZlMGQxOThkNTkwMGU4NTQzODUyYzJi
OTkxM2Y0YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1N0YXRzQ29sbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDU3RhdHNDb2xsZWN0b3IuaApA
QCAtMzAsMTIgKzMwLDExIEBACiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorQUxMT1df
VU5VU0VEX1BBUkFNRVRFUlNfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9wYy9ydGNzdGF0c2Nv
bGxlY3Rvci5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BB
UkFNRVRFUlNfRU5ECiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDVXRpbHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
VXRpbHMuY3BwCmluZGV4IDY0NTA5ZDA2MzViNTk5MjllODliODcyZmRiMmQ4ODdkMmI0ZTkwNjcu
LmE5MDBmZDIzZmZjY2VmZjE4ZGQ2NmFkNmYzNGY2MTY4NDBjZjU1MzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1V0aWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENVdGlscy5jcHAKQEAgLTMyLDEzICszMiwxMiBAQAogI2luY2x1ZGUgIlJUQ1J0cFBh
cmFtZXRlcnMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51
c2VkLXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAKICNpbmNsdWRl
IDx3ZWJydGMvYXBpL3J0cHBhcmFtZXRlcnMuaD4KICNpbmNsdWRlIDx3ZWJydGMvYXBpL3J0cHRy
YW5zY2VpdmVyaW50ZXJmYWNlLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCitBTExP
V19VTlVTRURfUEFSQU1FVEVSU19FTkQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NyeXB0by9jb21tb25jcnlwdG8vQ3J5cHRvRGln
ZXN0Q29tbW9uQ3J5cHRvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY3J5cHRvL2NvbW1v
bmNyeXB0by9DcnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwCmluZGV4IGI0N2Y4ZWVjNjg4Mzdj
NzI3ZDVmOGZjYzk3MTZkY2JkM2NhYzY1M2UuLjFjZTU3OTdmZWY2Mjk3M2VlZGI0NzM0ODljMjE0
OTdjN2JiZmI0NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY3J5cHRvL2Nv
bW1vbmNyeXB0by9DcnlwdG9EaWdlc3RDb21tb25DcnlwdG8uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvY3J5cHRvL2NvbW1vbmNyeXB0by9DcnlwdG9EaWdlc3RDb21tb25DcnlwdG8u
Y3BwCkBAIC05NywxMCArOTcsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvRGlnZXN0PiBDcnlw
dG9EaWdlc3Q6OmNyZWF0ZShDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobSBhbGdvcgogICAgIGNhc2Ug
Q3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8xOiB7CiAgICAgICAgIENDX1NIQTFfQ1RYKiBj
b250ZXh0ID0gbmV3IENDX1NIQTFfQ1RYOwogICAgICAgICBkaWdlc3QtPm1fY29udGV4dC0+Y2ND
b250ZXh0ID0gY29udGV4dDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgQ0NfU0hB
MV9Jbml0KGNvbnRleHQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgcmV0dXJuIGRpZ2VzdDsK
ICAgICB9CiAgICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzIyNDogewpAQCAt
MTM0LDEwICsxMzMsOSBAQCB2b2lkIENyeXB0b0RpZ2VzdDo6YWRkQnl0ZXMoY29uc3Qgdm9pZCog
aW5wdXQsIHNpemVfdCBsZW5ndGgpCiB7CiAgICAgc3dpdGNoIChtX2NvbnRleHQtPmFsZ29yaXRo
bSkgewogICAgIGNhc2UgQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8xOgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgICAgICBDQ19TSEExX1VwZGF0ZSh0b1NIQTFDb250ZXh0KG1fY29u
dGV4dC5nZXQoKSksIGlucHV0LCBsZW5ndGgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8yMjQ6CiAgICAgICAg
IENDX1NIQTIyNF9VcGRhdGUodG9TSEEyMjRDb250ZXh0KG1fY29udGV4dC5nZXQoKSksIGlucHV0
LCBsZW5ndGgpOwpAQCAtMTYwLDEwICsxNTgsOSBAQCBWZWN0b3I8dWludDhfdD4gQ3J5cHRvRGln
ZXN0Ojpjb21wdXRlSGFzaCgpCiAgICAgc3dpdGNoIChtX2NvbnRleHQtPmFsZ29yaXRobSkgewog
ICAgIGNhc2UgQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8xOgogICAgICAgICByZXN1bHQu
cmVzaXplKENDX1NIQTFfRElHRVNUX0xFTkdUSCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgICAgIENDX1NIQTFfRmluYWwocmVzdWx0LmRhdGEoKSwgdG9TSEExQ29udGV4dChtX2NvbnRl
eHQuZ2V0KCkpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ3J5
cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8yMjQ6CiAgICAgICAgIHJlc3VsdC5yZXNpemUoQ0Nf
U0hBMjI0X0RJR0VTVF9MRU5HVEgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY29jb2EvQVZLaXRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29h
L0FWS2l0U1BJLmgKaW5kZXggOTE0NTE3ZWZlN2NiMTRiNWZhZjJjNWIxYjY3ZjIzNjZjNjJjNjk5
NS4uNTk3M2MwOWZhYmRhMmY5OGY1MmMzY2Y5M2U4ZDE5NmE5MzFmYWUxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZLaXRTUEkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVktpdFNQSS5oCkBAIC0zOCwxMCArMzgsOSBAQAog
I2VuZGlmCiAKICNpbXBvcnQgPEFWS2l0L0FWUGxheWVyQ29udHJvbGxlci5oPgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V29iamMtcHJvcGVydHktbm8tYXR0cmlidXRlIgorSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0JFR0lO
KCJvYmpjLXByb3BlcnR5LW5vLWF0dHJpYnV0ZSIpCiAjaW1wb3J0IDxBVktpdC9BVlBsYXllckxh
eWVyVmlldy5oPgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX0NMQU5HX1dB
Uk5JTkdTX0VORAogI2ltcG9ydCA8QVZLaXQvQVZQbGF5ZXJWaWV3Q29udHJvbGxlcl9Qcml2YXRl
Lmg+CiAjaW1wb3J0IDxBVktpdC9BVlBsYXllclZpZXdDb250cm9sbGVyX1dlYktpdE9ubHkuaD4K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNLZXllZEFy
Y2hpdmVyU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU0tleWVkQXJj
aGl2ZXJTUEkuaAppbmRleCA1NWE2NDg4NmE4ODBmNWI5MGVhMmRhNmNmNTFhYmE0YmE2N2M0MjVk
Li4wNzA2ZWZlODVhNmNlZWIxMjQ0ZDFlODk3ZmEzODRhNzFmZGNlY2UyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaApA
QCAtODYsMTAgKzg2LDkgQEAgaW5saW5lIE5TRGF0YSAqX051bGxhYmxlIGluc2VjdXJlbHlBcmNo
aXZlZERhdGFXaXRoUm9vdE9iamVjdChpZCBfTm9ubnVsbCBvYmplY3QKIAogaW5saW5lIGlkIF9O
dWxsYWJsZSBpbnNlY3VyZWx5VW5hcmNoaXZlT2JqZWN0RnJvbURhdGEoTlNEYXRhICogX05vbm51
bGwgZGF0YSkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBbTlNLZXllZFVuYXJj
aGl2ZXIgdW5hcmNoaXZlT2JqZWN0V2l0aERhdGE6ZGF0YV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIGlu
bGluZSBpZCBfTnVsbGFibGUgdW5hcmNoaXZlZE9iamVjdE9mQ2xhc3Nlc0Zyb21EYXRhKE5TU2V0
PENsYXNzPiAqIF9Ob25udWxsIGNsYXNzZXMsIE5TRGF0YSAqIF9Ob25udWxsIGRhdGEpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvTWVkaWFQbGF5ZXJTUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oCmluZGV4IGRk
ODdmOTNhZjcwMjViY2E2ZDEzMzQ1N2IzZjZiMTIwNmEwMTQ0ZjguLjgxN2QwOWEyODczNDgxY2M3
MWMyN2UzOWNjMzZkYmFkOTk5MjFiNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2lvcy9NZWRpYVBsYXllclNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2lvcy9NZWRpYVBsYXllclNQSS5oCkBAIC03NSwyMSArNzUsMTkgQEAgZW51bSB7CiB9Owog
dHlwZWRlZiBOU1VJbnRlZ2VyIE1QQVZJdGVtVHlwZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIEBpbnRl
cmZhY2UgTVBBdWRpb1ZpZGVvUm91dGluZ1BvcG92ZXJDb250cm9sbGVyIDogVUlQb3BvdmVyQ29u
dHJvbGxlcgogQGVuZAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIEBpbnRlcmZhY2UgTVBBdWRpb1ZpZGVvUm91dGluZ1Bv
cG92ZXJDb250cm9sbGVyICgpCiAtIChpZClpbml0V2l0aFR5cGU6KE1QQVZJdGVtVHlwZSlhdkl0
ZW1UeXBlOwogQGVuZAogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogQGludGVyZmFjZSBNUEFWUm91dGluZ1No
ZWV0IDogVUlWaWV3CiBAZW5kCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogQGludGVyZmFjZSBNUEFWUm91dGluZ1NoZWV0
ICgpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduLCBzZXR0ZXI9c2V0QVZJdGVtVHlwZTop
IE1QQVZJdGVtVHlwZSBhdkl0ZW1UeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lz
dGVtL21hYy9Qb3B1cE1lbnUubW0KaW5kZXggMjIzMzU3NWRjMzRlNzYxZTg2MWNiYjQ1Mjg3Yjcz
M2YyY2Q0YWMyMy4uOWJiZDQ2MTlhM2U2NmE2OWIzYWFiOWRmYWFlN2E3ZTVjY2RmY2Y1OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvUG9wdXBNZW51Lm1tCkBAIC00
NCwxMCArNDQsOSBAQCBuYW1lc3BhY2UgUEFMIHsKIHZvaWQgcG9wVXBNZW51KE5TTWVudSAqbWVu
dSwgTlNQb2ludCBsb2NhdGlvbiwgZmxvYXQgd2lkdGgsIE5TVmlldyAqdmlldywgaW50IHNlbGVj
dGVkSXRlbSwgTlNGb250ICpmb250LCBOU0NvbnRyb2xTaXplIGNvbnRyb2xTaXplLCBib29sIHVz
ZXNDdXN0b21BcHBlYXJhbmNlKQogewogICAgIE5TUmVjdCBhZGp1c3RlZFBvcHVwQm91bmRzID0g
W3ZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46W3ZpZXcgY29udmVydFJlY3Q6dmlldy5i
b3VuZHMgdG9WaWV3Om5pbF1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKGNvbnRyb2xT
aXplICE9IE5TTWluaUNvbnRyb2xTaXplKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBhZGp1
c3RlZFBvcHVwQm91bmRzLm9yaWdpbi54IC09IDM7CiAgICAgICAgIGFkanVzdGVkUG9wdXBCb3Vu
ZHMub3JpZ2luLnkgLT0gMTsKICAgICAgICAgYWRqdXN0ZWRQb3B1cEJvdW5kcy5zaXplLndpZHRo
ICs9IDY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvV2Vi
UGFuZWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvV2ViUGFuZWwubW0K
aW5kZXggMzE3YmRhMDJlN2I3ZWIyN2E5YmQyYjU5Nzk1NmY1NDEyZGFjZjEyNi4uYzZlNDYwY2Yw
ZWY2NTE5YjYxMTA1OWUzMTUzMjYzNGUzNWQ3ZWViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zeXN0ZW0vbWFjL1dlYlBhbmVsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3lzdGVtL21hYy9XZWJQYW5lbC5tbQpAQCAtMzQsMTAgKzM0LDkgQEAKIAogLSAoaW5z
dGFuY2V0eXBlKWluaXQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHN0YXRpYyBOU1VJbnRl
Z2VyIHN0eWxlTWFzayA9IE5TTWluaWF0dXJpemFibGVXaW5kb3dNYXNrIHwgTlNDbG9zYWJsZVdp
bmRvd01hc2sgfCBOU1Jlc2l6YWJsZVdpbmRvd01hc2sgIHwgTlNUaXRsZWRXaW5kb3dNYXNrIHwg
TlNTbWFsbFdpbmRvd01hc2sgfCBOU1NpZGVVdGlsaXR5V2luZG93TWFzayB8IE5TVXRpbGl0eVdp
bmRvd01hc2s7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgCiAgICAgcmV0dXJuIFtzdXBlciBpbml0V2l0aENv
bnRlbnRSZWN0Ok5TWmVyb1JlY3Qgc3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5nOk5TQmFja2lu
Z1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IDM5OTE3N2YzNTNlMmY4
MDlkMmRmYzc4YWI2NjU0OGFhYjkyOTM1OTQuLmQ0NzZlMGFlNzM0Y2MxNTdjZGJjOGZhZDU4M2Jk
YzhhMWZhZmFlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L0FYT2JqZWN0Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvQVhPYmplY3RDYWNoZU1hYy5tbQpAQCAtMzQ2LDEwICszNDYsOSBAQCB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmos
IEFYTm90aWZpYwogICAgIAogICAgIC8vIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb24g
d2lsbCBjYWxsIHRoaXMgbWV0aG9kLCAoYnV0IG5vdCB3aGVuIHJ1bm5pbmcgRFJUKSwgc28gQVNT
RVJUIGhlcmUgdG8gbWFrZSBzdXJlIGl0IGRvZXMgbm90IGNyYXNoLgogICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjY2MgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgQVNTRVJUKFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkXSB8fCB0
cnVlKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhv
YmotPndyYXBwZXIoKSwgbWFjTm90aWZpY2F0aW9uLCBuaWwpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMu
bW0KaW5kZXggY2NlOTcyY2ZjZDAyZTU3NTRlY2NlY2M1NzhmYTRiNDBhOTk2OGMyNi4uOGQ4MTcy
MWIwYjNjM2QxYzJlNGY1YWU3Yjk1MDU4OGU4OTc0MjI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1t
CkBAIC01NSwxMCArNTUsOSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6Om92ZXJyaWRlQXR0
YWNobWVudFBhcmVudChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnQpCiAgICAgICAgIHBhcmVu
dFdyYXBwZXIgPSBwYXJlbnQtPndyYXBwZXIoKTsKICAgICB9CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgIFtbd3JhcHBlcigpIGF0dGFjaG1lbnRWaWV3XSBhY2Nlc3NpYmlsaXR5U2V0T3ZlcnJp
ZGVWYWx1ZTpwYXJlbnRXcmFwcGVyIGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlQYXJlbnRB
dHRyaWJ1dGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogfQogICAgIAogYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0
OjphY2Nlc3NpYmlsaXR5SWdub3JlQXR0YWNobWVudCgpIGNvbnN0CkBAIC02OSwxMSArNjgsMTAg
QEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5SWdub3JlQXR0YWNobWVu
dCgpIGNvbnN0CiAgICAgaWYgKGlzQXR0YWNobWVudCgpICYmICh3aWRnZXQgPSB3aWRnZXRGb3JB
dHRhY2htZW50VmlldygpKSAmJiB3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAoW3dyYXBwZXIoKSBhdHRhY2ht
ZW50Vmlld10pCiAgICAgICAgIHJldHVybiBbW3dyYXBwZXIoKSBhdHRhY2htZW50Vmlld10gYWNj
ZXNzaWJpbGl0eUlzSWdub3JlZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICAvLyBBdHRhY2htZW50cyBh
cmUgaWdub3JlZCBieSBkZWZhdWx0ICh1bmxlc3Mgd2UgZGV0ZXJtaW5lIHRoYXQgd2Ugc2hvdWxk
IGV4cG9zZSB0aGVtKS4KICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0KaW5kZXggMDRjMTg2YTA4YWM4YWYyODYwN2M0MWJhN2VkZDBhMDE3Yzky
YmY2Ni4uNjUwM2Q0MDZjZTgzMDI5Y2NmZmU1ZDNmNGMxOTQwMDE2ZTNjZGI2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAgLTE2NzksMTAgKzE2NzksOSBAQCBz
dGF0aWMgaWQgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnMoQVhPYmplY3RDYWNo
ZSogY2FjaGUsIGNvbnN0IFZpc2libAogICAgIFdpZGdldCogd2lkZ2V0ID0gbV9vYmplY3QtPndp
ZGdldCgpOwogICAgIGlmICghd2lkZ2V0KQogICAgICAgICByZXR1cm4gbmlsOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgcmV0dXJuIFsod2lkZ2V0LT5wbGF0Zm9ybVdpZGdldCgpKSBhY2Nlc3Np
YmlsaXR5QXR0cmlidXRlVmFsdWU6IE5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKIH0KIAogLSAoaWQpcmVtb3RlQWNjZXNzaWJpbGl0eVBhcmVudE9iamVjdApA
QCAtMTc1MSwxMCArMTc1MCw5IEBAIHN0YXRpYyBOU011dGFibGVBcnJheSAqY29udmVydFN0cmlu
Z3NUb05TQXJyYXkoY29uc3QgVmVjdG9yPFN0cmluZz4mIHZlY3RvcikKICAgICBpZiAoZnJhbWVW
aWV3ICYmIGZyYW1lVmlldy0+cGxhdGZvcm1XaWRnZXQoKSkgewogICAgICAgICBOU1BvaW50IG5z
UG9pbnQgPSAoTlNQb2ludClwb2ludDsKICAgICAgICAgTlNWaWV3KiB2aWV3ID0gZnJhbWVWaWV3
LT5kb2N1bWVudFZpZXcoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgbnNQb2lu
dCA9IFtbdmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46W3ZpZXcgY29udmVydFBvaW50
Om5zUG9pbnQgdG9WaWV3Om5pbF1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgcmV0dXJuIENH
UG9pbnRNYWtlKG5zUG9pbnQueCwgbnNQb2ludC55KTsKICAgICB9IGVsc2UgewogICAgICAgICAK
QEAgLTIwMDYsMTEgKzIwMDQsMTAgQEAgc3RhdGljIE5TU3RyaW5nICpyb2xlVmFsdWVUb05TU3Ry
aW5nKEFjY2Vzc2liaWxpdHlSb2xlIHZhbHVlKQogCiAtIChOU1N0cmluZyopcm9sZQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKG1fb2JqZWN0LT5pc0F0dGFjaG1lbnQoKSkKICAgICAg
ICAgcmV0dXJuIFtbc2VsZiBhdHRhY2htZW50Vmlld10gYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZh
bHVlOk5TQWNjZXNzaWJpbGl0eVJvbGVBdHRyaWJ1dGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIEFjY2Vz
c2liaWxpdHlSb2xlIHJvbGUgPSBtX29iamVjdC0+cm9sZVZhbHVlKCk7CiAKICAgICBpZiAocm9s
ZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFiZWwgJiYgaXM8QWNjZXNzaWJpbGl0eUxhYmVsPigq
bV9vYmplY3QpICYmIGRvd25jYXN0PEFjY2Vzc2liaWxpdHlMYWJlbD4oKm1fb2JqZWN0KS5jb250
YWluc09ubHlTdGF0aWNUZXh0KCkpCkBAIC0yMDMwLDggKzIwMjcsNyBAQCBzdGF0aWMgTlNTdHJp
bmcgKnJvbGVWYWx1ZVRvTlNTdHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUgdmFsdWUpCiAgICAgcmV0
dXJuIE5TQWNjZXNzaWJpbGl0eVVua25vd25Sb2xlOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogLSAo
TlNTdHJpbmcqKXN1YnJvbGUKIHsKICAgICBpZiAobV9vYmplY3QtPmlzUGFzc3dvcmRGaWVsZCgp
KQpAQCAtMjI0MSwxOSArMjIzNywxOCBAQCBzdGF0aWMgTlNTdHJpbmcgKnJvbGVWYWx1ZVRvTlNT
dHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUgdmFsdWUpCiAgICAgCiAgICAgcmV0dXJuIG5pbDsKIH0K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogCiAtIChOU1N0cmluZyopcm9sZURlc2NyaXB0aW9uCiB7CiAgICAgaWYgKCFtX29i
amVjdCkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8g
YXR0YWNobWVudHMgaGF2ZSB0aGUgQVhJbWFnZSByb2xlLCBidXQgYSBkaWZmZXJlbnQgc3Vicm9s
ZQogICAgIGlmIChtX29iamVjdC0+aXNBdHRhY2htZW50KCkpCiAgICAgICAgIHJldHVybiBbW3Nl
bGYgYXR0YWNobWVudFZpZXddIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2li
aWxpdHlSb2xlRGVzY3JpcHRpb25BdHRyaWJ1dGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBvdmVycmlkZVJvbGVEZXNjcmlwdGlvbiA9IG1fb2JqZWN0LT5yb2xlRGVz
Y3JpcHRpb24oKTsKICAgICBpZiAoIW92ZXJyaWRlUm9sZURlc2NyaXB0aW9uLmlzTnVsbCgpICYm
ICFvdmVycmlkZVJvbGVEZXNjcmlwdGlvbi5pc0VtcHR5KCkpCkBAIC0zNDcyLDggKzM0NjcsNyBA
QCBzdGF0aWMgTlNTdHJpbmcgKnJvbGVWYWx1ZVRvTlNTdHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUg
dmFsdWUpCiAgICAgcmV0dXJuIHBhcmFtQXR0cnM7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIC0g
KHZvaWQpYWNjZXNzaWJpbGl0eVBlcmZvcm1QcmVzc0FjdGlvbgogewpAQCAtMzUzMSw3ICszNTI1
LDcgQEAgc3RhdGljIE5TU3RyaW5nICpyb2xlVmFsdWVUb05TU3RyaW5nKEFjY2Vzc2liaWxpdHlS
b2xlIHZhbHVlKQogICAgICAgICBtX29iamVjdC0+ZGVjcmVtZW50KCk7CiB9CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
CiAtICh2b2lkKWFjY2Vzc2liaWxpdHlQZXJmb3JtU2hvd01lbnVBY3Rpb24KIHsKQEAgLTQzNDMs
OCArNDMzNyw3IEBAIHN0YXRpYyB2b2lkIGZvcm1hdEZvckRlYnVnZ2VyKGNvbnN0IFZpc2libGVQ
b3NpdGlvblJhbmdlJiByYW5nZSwgY2hhciogYnVmZmVyLCB1CiAgICAgcmV0dXJuIE5TTm90Rm91
bmQ7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAtIChOU1VJbnRlZ2VyKWFjY2Vzc2liaWxpdHlBcnJh
eUF0dHJpYnV0ZUNvdW50OihOU1N0cmluZyAqKWF0dHJpYnV0ZQogewogICAgIGlmICghW3NlbGYg
dXBkYXRlT2JqZWN0QmFja2luZ1N0b3JlXSkKQEAgLTQzNjUsNyArNDM1OCw3IEBAIHN0YXRpYyB2
b2lkIGZvcm1hdEZvckRlYnVnZ2VyKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJiByYW5nZSwg
Y2hhciogYnVmZmVyLCB1CiAgICAgCiAgICAgcmV0dXJuIFtzdXBlciBhY2Nlc3NpYmlsaXR5QXJy
YXlBdHRyaWJ1dGVDb3VudDphdHRyaWJ1dGVdOwogfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIC0gKE5TQXJyYXkgKilh
Y2Nlc3NpYmlsaXR5QXJyYXlBdHRyaWJ1dGVWYWx1ZXM6KE5TU3RyaW5nICopYXR0cmlidXRlIGlu
ZGV4OihOU1VJbnRlZ2VyKWluZGV4IG1heENvdW50OihOU1VJbnRlZ2VyKW1heENvdW50CiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KaW5kZXggMDJi
ODQyODNlZDM5YjE0MTJkYTBjMDEzM2EwMjczOWEwYjY0MjMzNC4uMThkMDEzY2VmZjI4MTJiYjk1
OWJjOTRmNWNiY2MzMTkzNDI0ZTU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpj
L1dlYlNjcmlwdE9iamVjdC5tbQpAQCAtNzAyLDEzICs3MDIsMTIgQEAgc3RhdGljIHZvaWQgZ2V0
TGlzdEZyb21OU0FycmF5KEV4ZWNTdGF0ZSAqZXhlYywgTlNBcnJheSAqYXJyYXksIFJvb3RPYmpl
Y3QqIHJvb3QKICAgICByZXR1cm4gc2VsZjsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV29iamMtbWlzc2luZy1z
dXBlci1jYWxscyIKK0lHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigib2JqYy1taXNzaW5nLXN1
cGVyLWNhbGxzIikKIC0gKHZvaWQpZGVhbGxvYwogewogICAgIHJldHVybjsKIH0KLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKIAogKyAoV2Vi
VW5kZWZpbmVkICopdW5kZWZpbmVkCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX2NsYXNzLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19j
bGFzcy5tbQppbmRleCBjZTFlZjY1NTdhMDc2M2E3ZDM0MzBhM2JmOTg2YTE5ODdmOGNiMzU2Li5m
OTMyMjc1MGQ0MWJhYmNjM2M4YjM3ZTZkZTlmZmM2MTg2MDE4NTFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2NsYXNzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9vYmpjL29iamNfY2xhc3MubW0KQEAgLTE2MywxMCArMTYzLDkgQEAgRmllbGQqIE9i
amNDbGFzczo6ZmllbGROYW1lZChQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBJbnN0YW5jZSog
aW5zdGFuY2UpIGNvbnMKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZpZWxkTmFtZSA9IGFk
b3B0Q0YoQ0ZTdHJpbmdDcmVhdGVXaXRoQ1N0cmluZyhOVUxMLCBqc05hbWUuZGF0YSgpLCBrQ0ZT
dHJpbmdFbmNvZGluZ0FTQ0lJKSk7CiAgICAgaWQgdGFyZ2V0T2JqZWN0ID0gKHN0YXRpY19jYXN0
PE9iamNJbnN0YW5jZSo+KGluc3RhbmNlKSktPmdldE9iamVjdCgpOwogI2lmIFBMQVRGT1JNKElP
UykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVd1bmRlY2xhcmVkLXNlbGVjdG9yIgorICAgIElHTk9SRV9XQVJOSU5HU19C
RUdJTigidW5kZWNsYXJlZC1zZWxlY3RvciIpCiAgICAgaWQgYXR0cmlidXRlcyA9IFt0YXJnZXRP
YmplY3QgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhdHRyaWJ1dGVLZXlzKV0gPyBbdGFy
Z2V0T2JqZWN0IHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IoYXR0cmlidXRlS2V5cyldIDogbmls
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HU19FTkQK
ICNlbHNlCiAgICAgaWQgYXR0cmlidXRlcyA9IFt0YXJnZXRPYmplY3QgYXR0cmlidXRlS2V5c107
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9Db21tb25DcnlwdG9V
dGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NvbW1vbkNyeXB0b1V0aWxpdGll
cy5jcHAKaW5kZXggZTA0OTJlZTY3MTEwZjg4YzczMTUyMTZkNmM2OGI2MzM0OTZkNzdhMC4uNzJm
Y2MxZGIyN2EzZDE3MjZjYmZhNjc3NjIzNzY5NzIxMWMwM2RmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL0NvbW1vbkNyeXB0b1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL0NvbW1vbkNyeXB0b1V0aWxpdGllcy5jcHAKQEAgLTUyLDEwICs1Miw5IEBA
IGJvb2wgZ2V0Q29tbW9uQ3J5cHRvRGlnZXN0QWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgaGFzaEZ1bmN0aW9uLCBDQ0RpCiB7CiAgICAgc3dpdGNoIChoYXNoRnVuY3Rpb24pIHsK
ICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8xOgotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgICAgICBhbGdvcml0aG0gPSBrQ0NEaWdlc3RTSEExOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpTSEFfMjI0OgogICAgICAgICBhbGdvcml0aG0gPSBrQ0NEaWdlc3RTSEEyMjQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19H
Q01NYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNf
R0NNTWFjLmNwcAppbmRleCBiMmJjMjQ4ODhjN2VlNzU4ZTlkYjQwMjM5N2E4ZmE2ZTRmMWQxZTA4
Li4xMWY0NjcwMTA0NWU5MDEzOWY1ZGEzMjk3YThkOWU5MDA2ZmM2NWJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTU1hYy5j
cHAKQEAgLTQwLDEwICs0MCw5IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+
IGVuY3J5cHRBRVNfR0NNKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaXYsIGNvCiAgICAgVmVjdG9y
PHVpbnQ4X3Q+IGNpcGhlclRleHQocGxhaW5UZXh0LnNpemUoKSk7IC8vIFBlciBzZWN0aW9uIDUu
Mi4xLjI6IGh0dHA6Ly9udmxwdWJzLm5pc3QuZ292L25pc3RwdWJzL0xlZ2FjeS9TUC9uaXN0c3Bl
Y2lhbHB1YmxpY2F0aW9uODAwLTM4ZC5wZGYKICAgICBWZWN0b3I8dWludDhfdD4gdGFnKGRlc2ly
ZWRUYWdMZW5ndGhJbkJ5dGVzKTsKICAgICAvLyB0YWdMZW5ndGggaXMgYWN0dWFsIGFuIGlucHV0
IDxyZGFyOi8vcHJvYmxlbS8zMDY2MDA3ND4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENDQ3J5
cHRvclN0YXR1cyBzdGF0dXMgPSBDQ0NyeXB0b3JHQ00oa0NDRW5jcnlwdCwga0NDQWxnb3JpdGht
QUVTLCBrZXkuZGF0YSgpLCBrZXkuc2l6ZSgpLCBpdi5kYXRhKCksIGl2LnNpemUoKSwgYWRkaXRp
b25hbERhdGEuZGF0YSgpLCBhZGRpdGlvbmFsRGF0YS5zaXplKCksIHBsYWluVGV4dC5kYXRhKCks
IHBsYWluVGV4dC5zaXplKCksIGNpcGhlclRleHQuZGF0YSgpLCB0YWcuZGF0YSgpLCAmZGVzaXJl
ZFRhZ0xlbmd0aEluQnl0ZXMpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIGlmIChzdGF0dXMpCiAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OwogCkBAIC01OCwxMCArNTcsOSBA
QCBzdGF0aWMgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBkZWN5cHRBRVNfR0NNKGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYgaXYsIGNvbgogICAgIFZlY3Rvcjx1aW50OF90PiB0YWcoZGVzaXJl
ZFRhZ0xlbmd0aEluQnl0ZXMpOwogICAgIHNpemVfdCBvZmZzZXQgPSBjaXBoZXJUZXh0LnNpemUo
KSAtIGRlc2lyZWRUYWdMZW5ndGhJbkJ5dGVzOwogICAgIC8vIHRhZ0xlbmd0aCBpcyBhY3R1YWwg
YW4gaW5wdXQgPHJkYXI6Ly9wcm9ibGVtLzMwNjYwMDc0PgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgQ0NDcnlwdG9yU3RhdHVzIHN0YXR1cyA9IENDQ3J5cHRvckdDTShrQ0NEZWNyeXB0LCBrQ0NB
bGdvcml0aG1BRVMsIGtleS5kYXRhKCksIGtleS5zaXplKCksIGl2LmRhdGEoKSwgaXYuc2l6ZSgp
LCBhZGRpdGlvbmFsRGF0YS5kYXRhKCksIGFkZGl0aW9uYWxEYXRhLnNpemUoKSwgY2lwaGVyVGV4
dC5kYXRhKCksIG9mZnNldCwgcGxhaW5UZXh0LmRhdGEoKSwgdGFnLmRhdGEoKSwgJmRlc2lyZWRU
YWdMZW5ndGhJbkJ5dGVzKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBpZiAoc3RhdHVzKQogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9tYWMvU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0KaW5kZXgg
YTUxN2Y5MjJlMDQ4ZDE0MTc3YzRmNmY4YzQzNjIzMTMwODgxNDk2OS4uNGFkN2FiMDQwZjFjN2Nj
OWFjZWU0MjQ3ZWFjOGE0ODBmM2ZkNzcxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tCkBAIC0yMjAsMTUgKzIy
MCwxNCBAQCBib29sIHdyYXBTZXJpYWxpemVkQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90
PiYgbWFzdGVyS2V5LCBjb25zdCBWZWN0b3I8dWludAogICAgIHNpemVfdCB0YWdMZW5ndGggPSAx
NjsKICAgICB1aW50OF90IHRhZ1t0YWdMZW5ndGhdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICBzdGF0dXMgPSBDQ0NyeXB0b3JHQ00oa0NDRW5jcnlwdCwga0NDQWxnb3JpdGhtQUVTMTI4LCBr
ZWsuZGF0YSgpLCBrZWsuc2l6ZSgpLAogICAgICAgICBudWxscHRyLCAwLCAvLyBpdgogICAgICAg
ICBudWxscHRyLCAwLCAvLyBhdXRoIGRhdGEKICAgICAgICAga2V5LmRhdGEoKSwga2V5LnNpemUo
KSwKICAgICAgICAgZW5jcnlwdGVkS2V5LmRhdGEoKSwKICAgICAgICAgdGFnLCAmdGFnTGVuZ3Ro
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIAogICAgIGlmIChzdGF0dXMgIT0ga0NDU3VjY2VzcykKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtMjg5LDE1ICsyODgsMTQgQEAgYm9vbCB1bndyYXBTZXJpYWxpemVk
Q3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgbWFzdGVyS2V5LCBjb25zdCBWZWN0b3I8
dWkKICAgICB1aW50OF90IGFjdHVhbFRhZ1t0YWdMZW5ndGhdOwogCiAgICAga2V5LnJlc2l6ZShl
bmNyeXB0ZWRLZXkuc2l6ZSgpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHN0YXR1cyA9IEND
Q3J5cHRvckdDTShrQ0NEZWNyeXB0LCBrQ0NBbGdvcml0aG1BRVMxMjgsIGtlay5kYXRhKCksIGtl
ay5zaXplKCksCiAgICAgICAgIG51bGxwdHIsIDAsIC8vIGl2CiAgICAgICAgIG51bGxwdHIsIDAs
IC8vIGF1dGggZGF0YQogICAgICAgICBlbmNyeXB0ZWRLZXkuZGF0YSgpLCBlbmNyeXB0ZWRLZXku
c2l6ZSgpLAogICAgICAgICBrZXkuZGF0YSgpLAogICAgICAgICBhY3R1YWxUYWcsICZ0YWdMZW5n
dGgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogCiAgICAgaWYgKHN0YXR1cyAhPSBrQ0NTdWNjZXNzKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVj
dG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5weSBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFw
LnB5CmluZGV4IGIzNGU2MTdiMTQ2ZDMyOWZiMWJjMzJhMGJiNzBjN2NiYmE0OTk5MWEuLjMyZGE1
OTBmYTM2YzViN2FiNTRlYzkzZDQ1YTA0NWFlZjYyNWNkNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50
TWFwLnB5CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFzc0Fu
ZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5CkBAIC05NCwxMSArOTQsNyBAQCBvdXRwdXRfZmls
ZS53cml0ZSgiIiIKIAogI2luY2x1ZGUgIkNTU1BhcnNlclNlbGVjdG9yLmgiCiAKLSNpZiBkZWZp
bmVkKF9fY2xhbmdfXykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIKLSNlbmRpZgorSUdO
T1JFX1dBUk5JTkdTX0JFR0lOKCJpbXBsaWNpdC1mYWxsdGhyb3VnaCIpCiAKIC8vIE9sZGVyIHZl
cnNpb25zIG9mIGdwZXJmIGxpa2UgdG8gdXNlIHRoZSBgcmVnaXN0ZXJgIGtleXdvcmQuCiAjZGVm
aW5lIHJlZ2lzdGVyCkBAIC0yMDMsOSArMTk5LDcgQEAgUHNldWRvQ2xhc3NPckNvbXBhdGliaWxp
dHlQc2V1ZG9FbGVtZW50IHBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFMK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HU19FTkQKIAog
IiIiKQogb3V0cHV0X2ZpbGUuY2xvc2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L21ha2VTZWxlY3RvclBzZXVkb0VsZW1lbnRzTWFwLnB5IGIvU291cmNlL1dlYkNvcmUvY3NzL21h
a2VTZWxlY3RvclBzZXVkb0VsZW1lbnRzTWFwLnB5CmluZGV4IDIwMTgyNmVkNTEzODk0ZDRmZjdm
M2FmMDUxM2FkNzIzODY5MmFmODguLmU5OTNmZGQyMjIxY2FhMjg0ZGE1MmVjMDcyMmRjNGVkZDM2
MmYwNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9F
bGVtZW50c01hcC5weQorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRv
RWxlbWVudHNNYXAucHkKQEAgLTkyLDExICs5Miw3IEBAIG91dHB1dF9maWxlLndyaXRlKCIiIgog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNlbGVjdG9yUHNldWRvVHlwZU1hcC5oIgog
Ci0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XaW1wbGljaXQtZmFsbHRocm91Z2giCi0j
ZW5kaWYKK0lHTk9SRV9XQVJOSU5HU19CRUdJTigiaW1wbGljaXQtZmFsbHRocm91Z2giKQogCiAv
LyBPbGRlciB2ZXJzaW9ucyBvZiBncGVyZiBsaWtlIHRvIHVzZSB0aGUgYHJlZ2lzdGVyYCBrZXl3
b3JkLgogI2RlZmluZSByZWdpc3RlcgpAQCAtMTk4LDkgKzE5NCw3IEBAIENTU1NlbGVjdG9yOjpQ
c2V1ZG9FbGVtZW50VHlwZSBwYXJzZVBzZXVkb0VsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nSW1w
bCYgcHNldWRvCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2lmIGRlZmluZWQoX19jbGFu
Z19fKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitJR05PUkVfV0FSTklO
R1NfRU5ECiAKICIiIikKIG91dHB1dF9maWxlLmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VGV4dEl0ZXJhdG9yLmNwcAppbmRleCBiMjhkODQ2ZjY4NzYyOGMzYzAzMGY0NzI5YzZhYzI1MTAy
NTUyMjI3Li41M2EwZjJhODE1NWM5ZjY1YWI1MWRmYmY5Y2JkNGZmNmI3ZTgwMWIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCkBAIC0yMDExLDEwICsyMDExLDcgQEAg
c3RhdGljIGlubGluZSBib29sIGNvbnRhaW5zS2FuYUxldHRlcnMoY29uc3QgU3RyaW5nJiBwYXR0
ZXJuKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotI2VuZGlmCitBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogLy8gTk9URTogSUNVJ3MgdW5vcm1fbm9ybWFsaXplIGZ1bmN0
aW9uIGlzIGRlcHJlY2F0ZWQuCiAKIHN0YXRpYyB2b2lkIG5vcm1hbGl6ZUNoYXJhY3RlcnMoY29u
c3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgVmVjdG9yPFVDaGFyPiYgYnVm
ZmVyKQpAQCAtMjAzOCw5ICsyMDM1LDcgQEAgc3RhdGljIHZvaWQgbm9ybWFsaXplQ2hhcmFjdGVy
cyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBWZWN0b3IKICAgICBB
U1NFUlQoc3RhdHVzID09IFVfU1RSSU5HX05PVF9URVJNSU5BVEVEX1dBUk5JTkcpOwogfQogCi0j
aWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNl
bmRpZgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIHN0YXRpYyBib29sIGlz
Tm9uTGF0aW4xU2VwYXJhdG9yKFVDaGFyMzIgY2hhcmFjdGVyKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYWMvRWRpdG9yTWFjLm1tCmluZGV4IDNkN2EyZjU1OWE0ZDRiYzE2MTAwOWMwNzNhOTlj
NWU2OWFhMDVjMGUuLjQxNThlYzc5YzhjYTc4MzU0M2IzYmU3N2M0MmMxYTRkZjgxYmE3NjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KQEAgLTgxLDExICs4MSwxMCBA
QCB2b2lkIEVkaXRvcjo6cGFzdGVXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJk
LCBib29sIGFsbG93UGxhaW5UZXh0LCBNYQogewogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBz
ZWxlY3RlZFJhbmdlKCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIEZJWE1FOiBIb3cg
Y2FuIHRoaXMgaGFyZC1jb2RlZCBwYXN0ZWJvYXJkIG5hbWUgYmUgcmlnaHQsIGdpdmVuIHRoYXQg
dGhlIHBhc3NlZC1pbiBwYXN0ZWJvYXJkIGhhcyBhIG5hbWU/CiAgICAgY2xpZW50KCktPnNldElu
c2VydGlvblBhc3RlYm9hcmQoTlNHZW5lcmFsUGJvYXJkKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIGJv
b2wgY2hvc2VQbGFpblRleHQ7CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50
ID0gd2ViQ29udGVudEZyb21QYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkLCAqcmFuZ2UsIGFsbG93UGxh
aW5UZXh0LCBjaG9zZVBsYWluVGV4dCk7CkBAIC0xMTEsMTEgKzExMCwxMCBAQCB2b2lkIEVkaXRv
cjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKCkKIAogICAgIFZlY3RvcjxTdHJpbmc+IHR5
cGVzOwogICAgIHR5cGVzLmFwcGVuZChTdHJpbmcobGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUo
KSkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3Rl
Ym9hcmRTdHJhdGVneSgpLT5zZXRUeXBlcyh0eXBlcywgTlNGaW5kUGJvYXJkKTsKICAgICBwbGF0
Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnNldFN0cmluZ0ZvclR5cGUo
bV9mcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHNlbGVjdGVkVGV4dEZvckRh
dGFUcmFuc2ZlcigpKSwgbGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUoKSwgTlNGaW5kUGJvYXJk
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIH0KIAogdm9pZCBFZGl0b3I6OnJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVi
b2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQpAQCAtMTY5LDExICsxNjcsMTAgQEAg
dm9pZCBFZGl0b3I6OnJlcGxhY2VOb2RlRnJvbVBhc3RlYm9hcmQoTm9kZSogbm9kZSwgY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgLy8gRklYTUU6IEhvdyBjYW4gdGhpcyBoYXJkLWNvZGVkIHBhc3Rl
Ym9hcmQgbmFtZSBiZSByaWdodCwgZ2l2ZW4gdGhhdCB0aGUgcGFzc2VkLWluIHBhc3RlYm9hcmQg
aGFzIGEgbmFtZT8KICAgICBjbGllbnQoKS0+c2V0SW5zZXJ0aW9uUGFzdGVib2FyZChOU0dlbmVy
YWxQYm9hcmQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgYm9vbCBjaG9zZVBsYWluVGV4dDsKICAgICBp
ZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gd2ViQ29udGVudEZyb21QYXN0
ZWJvYXJkKHBhc3RlYm9hcmQsICpyYW5nZSwgdHJ1ZSwgY2hvc2VQbGFpblRleHQpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KaW5kZXggYTI2NDMwY2YyNTI0
YWQyMDRkNjEzNzlhMGVkMGIwMDk5NjU2YjkxZC4uNjU0ODg4YThiZjAyOTg0MWU2ZjVjZTM2MGYz
MTEyOTdkNjg2MTBmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRI
YW5kbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1h
Yy5tbQpAQCAtNjEyLDEwICs2MTIsOSBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c2VuZEZha2VFdmVu
dHNBZnRlcldpZGdldFRyYWNraW5nKE5TRXZlbnQgKmluaXRpYXRpbmdFdmVudCkKICAgICAgICAg
Ly8gbm8gdXAtdG8tZGF0ZSBjYWNoZSBvZiB0aGVtIGFueXdoZXJlLgogICAgICAgICBmYWtlRXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVNb3VzZU1vdmVkCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpbW3ZpZXctPnBs
YXRmb3JtV2lkZ2V0KCkgd2luZG93XQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91
c2VMb2NhdGlvbl1dCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRpbmdFdmVudCBtb2RpZmllckZsYWdzXQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6W2luaXRpYXRpbmdF
dmVudCB0aW1lc3RhbXBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRv
d051bWJlcjpbaW5pdGlhdGluZ0V2ZW50IHdpbmRvd051bWJlcl0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCmluZGV4IDUyZGI5
OWUwZjllNTdmM2JhMzU4ZGY4NWYwNzFkYjc4NTI4NGJjMGYuLjljNDRiODZlZWQ3YjViZmYwZmQ2
ZWI2OTY3NTExNmZkOWFiNThhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQpAQCAtMTMyLDEwICsxMzIsOSBAQCB2b2lk
IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6cGFpbnRDb250ZW50cyhjb25z
dCBHcmFwaGljc0xheWVyKiwgRwogCiAgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IGdyYXBo
aWNzQ29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
Q0dMYXllclJlZiBoaWdobGlnaHRMYXllciA9IERESGlnaGxpZ2h0R2V0TGF5ZXJXaXRoQ29udGV4
dChkZEhpZ2hsaWdodCgpLCBjZ0NvbnRleHQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIENHUmVjdCBoaWdo
bGlnaHRCb3VuZGluZ1JlY3QgPSBEREhpZ2hsaWdodEdldEJvdW5kaW5nUmVjdChkZEhpZ2hsaWdo
dCgpKTsKICAgICBoaWdobGlnaHRCb3VuZGluZ1JlY3Qub3JpZ2luID0gQ0dQb2ludFplcm87CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggYjA1
NTBjZjUzMDVlODYzNWRiNGQ1YTgyZTg5NjZmMDhmMDJhNzUwYi4uNDJiYTE0NWY2NGM3Yjk3NWMy
ZTFjNDZlMmExNTJiNjY1MzE2NTViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5jcHAKQEAgLTU0LDE0ICs1NCw5IEBAIFN0cmluZyBmb3JtYXRMb2NhbGl6
ZWRTdHJpbmcoU3RyaW5nIGZvcm1hdCwgLi4uKQogICAgIHZhX2xpc3QgYXJndW1lbnRzOwogICAg
IHZhX3N0YXJ0KGFyZ3VtZW50cywgZm9ybWF0KTsKIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2VuZGlmCisgICAgQUxMT1dfTk9OTElURVJBTF9G
T1JNQVRfQkVHSU4KICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVXaXRo
Rm9ybWF0QW5kQXJndW1lbnRzKDAsIDAsIGZvcm1hdC5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBh
cmd1bWVudHMpKTsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0VORAogCiAgICAgdmFf
ZW5kKGFyZ3VtZW50cyk7CiAgICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaAppbmRleCA0MWE1MGIyMTNmZGUwOGQzN2ZkYmFh
Y2JiYzk2YjYxYWM4NzMxMzVjLi4zOTY1NWY2MTQ3YmFlMmZkMjJlZDBjY2E4MGZhOWM2MWFjN2Nk
ODgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oCkBAIC0x
OTUsMTAgKzE5NSw5IEBAIHN0ZDo6b3B0aW9uYWw8U2NyZWVuRGF0YT4gU2NyZWVuRGF0YTo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCiAKICAgICAgICAgYXV0byBjb2xvclNwYWNlRGF0YSA9IGFk
b3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGljY0RhdGEtPmRhdGEoKSwg
aWNjRGF0YS0+c2l6ZSgpKSk7CiAgICAgICAgIC8vIEZJWE1FOiA8aHR0cDovL3dlYmtpdC5vcmcv
Yi8xODQzNTg+IFdlIHNob3VsZCBzd2l0Y2ggdG8gQ0dDb2xvclNwYWNlQ3JlYXRlSUNDQmFzZWQu
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGNnQ29sb3JTcGFjZSA9IGFkb3B0Q0Yo
Q0dDb2xvclNwYWNlQ3JlYXRlV2l0aElDQ1Byb2ZpbGUoY29sb3JTcGFjZURhdGEuZ2V0KCkpKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3Zp
ZGVyLmNwcAppbmRleCBiNmNlNjk2MjA1MTA3YmQyMmU5NGZjNDM1ZDg3MDFlMGY4M2VlNjJlLi41
NzQzOTFiNWMxMTFhMzJiZTkxMjVjYTZjZTA2MDBmNWQ2MzgyMjU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRl
ci5jcHAKQEAgLTEwMywxMCArMTAzLDkgQEAgSElER2FtZXBhZFByb3ZpZGVyOjpISURHYW1lcGFk
UHJvdmlkZXIoKQogCiB2b2lkIEhJREdhbWVwYWRQcm92aWRlcjo6c3RvcE1vbml0b3JpbmdJbnB1
dCgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1Xbm9ubnVsbCIKKyAgICBJR05PUkVfTlVMTF9DSEVDS19XQVJOSU5H
U19CRUdJTgogICAgIElPSElETWFuYWdlclJlZ2lzdGVySW5wdXRWYWx1ZUNhbGxiYWNrKG1fbWFu
YWdlci5nZXQoKSwgbnVsbHB0ciwgbnVsbHB0cik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgSUdOT1JFX05VTExfQ0hFQ0tfV0FSTklOR1NfRU5ECiB9CiAKIHZvaWQgSElER2Ft
ZXBhZFByb3ZpZGVyOjpzdGFydE1vbml0b3JpbmdJbnB1dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAppbmRleCA1ZjI5YWY4
NWE5NDgzZDQ3NjJlOTg3YjMyMDViODBlMTdjM2JiMTljLi5kYWRiMjU5NzhlNzhjMmJiNWRmMDAw
Y2QyN2FkNTM3ZTFlY2ViNWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKQEAgLTExOCwxNCArMTE4LDkgQEAgc3RkOjp1
bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheT4gUGxhdGZvcm1EaXNwbGF5OjpjcmVhdGVQbGF0Zm9y
bURpc3BsYXkoKQogUGxhdGZvcm1EaXNwbGF5JiBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3Bs
YXkoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSNpZiBDT01QSUxF
UihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMiCi0jZW5kaWYKKyAgICBJ
R05PUkVfQ0xBTkdfV0FSTklOR1NfQkVHSU4oImV4aXQtdGltZS1kZXN0cnVjdG9ycyIpCiAgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IGRpc3BsYXk7Ci0jaWYgQ09N
UElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBJ
R05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtd
ewogICAgICAgICBkaXNwbGF5ID0gY3JlYXRlUGxhdGZvcm1EaXNwbGF5KCk7CiAgICAgfSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWly
QXdhcmVUZXh0SXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
U3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcAppbmRleCA0ZDVkODA4OGE5MmNlOTdl
OWNkNDgwYmM0YzhlYTU2OGI4ZTZhNmJhLi5lODJiYmY2YWFjMGI5Yjk1M2Y3NWJkMjQxMjY5OGE5
ZDA5ZTFjYTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
dXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAKQEAgLTY5
LDEwICs2OSw3IEBAIGJvb2wgU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yOjpjb25zdW1l
U2xvd0Nhc2UoVUNoYXIzMiYgY2hhcmFjdGVyLCB1bnNpZ25lCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKLSNlbmRpZgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIC8vIE5P
VEU6IElDVSdzIHVub3JtX25vcm1hbGl6ZSBmdW5jdGlvbiBpcyBkZXByZWNhdGVkLgogCiBVQ2hh
cjMyIFN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvcjo6bm9ybWFsaXplVm9pY2luZ01hcmtz
KCkKQEAgLTk1LDggKzkyLDYgQEAgVUNoYXIzMiBTdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0
b3I6Om5vcm1hbGl6ZVZvaWNpbmdNYXJrcygpCiAgICAgcmV0dXJuIDA7CiB9CiAKLSNpZiBDT01Q
SUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3Jv
dXBBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCmluZGV4IGIyYzFlOTY2MzRiM2Y1NjRm
ZmMwYzViZDE2YjI5ZWU0MmQ4NGZhMmMuLmY3ODJkOGI3ZTBmZDg5N2QwMmJhYTVhZDFmNzczMzFh
YmI5ZmFiY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFW
Rk9iakMubW0KQEAgLTEyMywxMCArMTIzLDkgQEAgdm9pZCBNZWRpYVNlbGVjdGlvbkdyb3VwQVZG
T2JqQzo6dXBkYXRlT3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgY2hhcmFjdGVyaXMKIAog
ICAgICAgICBtX29wdGlvbnMucmVtb3ZlKChfX2JyaWRnZSBDRlR5cGVSZWYpcmVtb3ZlZEFWT3B0
aW9uKTsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBBVk1lZGlhU2VsZWN0aW9uT3B0
aW9uKiBzZWxlY3RlZE9wdGlvbiA9IFttX3BsYXllckl0ZW0gc2VsZWN0ZWRNZWRpYU9wdGlvbklu
TWVkaWFTZWxlY3Rpb25Hcm91cDptX21lZGlhU2VsZWN0aW9uR3JvdXAuZ2V0KCldOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogICAgIGZvciAoQVZNZWRpYVNlbGVjdGlvbk9wdGlvbiogYWRkZWRBVk9wdGlvbiBpbiBh
ZGRlZEFWT3B0aW9ucy5nZXQoKSkgewogICAgICAgICBhdXRvIGFkZGVkT3B0aW9uID0gTWVkaWFT
ZWxlY3Rpb25PcHRpb25BVkZPYmpDOjpjcmVhdGUoKnRoaXMsIGFkZGVkQVZPcHRpb24pOwogICAg
ICAgICBpZiAoYWRkZWRBVk9wdGlvbiA9PSBzZWxlY3RlZE9wdGlvbikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Np
b25BVlN0cmVhbVNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCmluZGV4IDI2YWIw
MjRkOGJjOWY4MmJmN2Q2NTU1OTM2ZGM1ZWI1YWE0YjUwMjguLjdiMjAyODEyMTA3MmRiNTcxMTdl
YTYxMGUzM2FjMzQ0ZjEyZTExNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
Q0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbQpAQCAtMTk4LDEyICsxOTgsMTEgQEAgYm9vbCBD
RE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8
VWludDhBcnJheT4mIG5leHQKIAogICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiBjZXJ0aWZpY2F0
ZURhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOm1fY2VydGlmaWNh
dGUtPmRhdGEoKSBsZW5ndGg6bV9jZXJ0aWZpY2F0ZS0+bGVuZ3RoKCldKTsKIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V29iamMtbGl0ZXJhbC1jb252ZXJzaW9uIgorICAgICAgICBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
QkVHSU4oIm9iamMtbGl0ZXJhbC1jb252ZXJzaW9uIikKICAgICAgICAgU3RyaW5nIHN0b3JhZ2VQ
YXRoID0gdGhpcy0+c3RvcmFnZVBhdGgoKTsKICAgICAgICAgaWYgKCFzdG9yYWdlUGF0aC5pc0Vt
cHR5KCkgJiYgW2dldEFWU3RyZWFtU2Vzc2lvbkNsYXNzKCkgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3RvcihyZW1vdmVQZW5kaW5nRXhwaXJlZFNlc3Npb25SZXBvcnRzOndpdGhBcHBJZGVudGlm
aWVyOnN0b3JhZ2VEaXJlY3RvcnlBdFVSTDopXSkKICAgICAgICAgICAgIFtnZXRBVlN0cmVhbVNl
c3Npb25DbGFzcygpIHJlbW92ZVBlbmRpbmdFeHBpcmVkU2Vzc2lvblJlcG9ydHM6QFttX2V4cGly
ZWRTZXNzaW9uLmdldCgpXSB3aXRoQXBwSWRlbnRpZmllcjpjZXJ0aWZpY2F0ZURhdGEuZ2V0KCkg
c3RvcmFnZURpcmVjdG9yeUF0VVJMOltOU1VSTCBmaWxlVVJMV2l0aFBhdGg6c3RvcmFnZVBhdGhd
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX0NMQU5HX1dB
Uk5JTkdTX0VORAogICAgICAgICBtX2V4cGlyZWRTZXNzaW9uID0gbnVsbHB0cjsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQpAQCAtMjQzLDEwICsyNDIsOSBAQCBib29sIENETVNlc3Npb25B
VlN0cmVhbVNlc3Npb246OnVwZGF0ZShVaW50OEFycmF5KiBrZXksIFJlZlB0cjxVaW50OEFycmF5
PiYgbmV4dAogICAgICAgICB9CiAKICAgICAgICAgTlNFcnJvciogZXJyb3IgPSBuaWw7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFJldGFpblB0cjxOU0RhdGE+IHJlcXVlc3QgPSBb
cHJvdGVjdGVkU291cmNlQnVmZmVyLT5wYXJzZXIoKSBzdHJlYW1pbmdDb250ZW50S2V5UmVxdWVz
dERhdGFGb3JBcHA6Y2VydGlmaWNhdGVEYXRhLmdldCgpIGNvbnRlbnRJZGVudGlmaWVyOmluaXRE
YXRhLmdldCgpIHRyYWNrSUQ6cHJvdGVjdGVkU291cmNlQnVmZmVyLT5wcm90ZWN0ZWRUcmFja0lE
KCkgb3B0aW9uczpvcHRpb25zLmdldCgpIGVycm9yOiZlcnJvcl07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
CiAgICAgICAgIGlmICghW3Byb3RlY3RlZFNvdXJjZUJ1ZmZlci0+cGFyc2VyKCkgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcihjb250ZW50UHJvdGVjdGlvblNlc3Npb25JZGVudGlmaWVyKV0p
CiAgICAgICAgICAgICBtX3Nlc3Npb25JZCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKTsK
QEAgLTI3MywxMCArMjcxLDkgQEAgYm9vbCBDRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uOjp1cGRh
dGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG5leHQKICAgICBlcnJvckNv
ZGUgPSBNZWRpYVBsYXllcjo6Tm9FcnJvcjsKICAgICBzeXN0ZW1Db2RlID0gMDsKICAgICBSZXRh
aW5QdHI8TlNEYXRhPiBrZXlEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhC
eXRlczprZXktPmRhdGEoKSBsZW5ndGg6a2V5LT5sZW5ndGgoKV0pOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgW3Byb3RlY3RlZFNvdXJjZUJ1ZmZlci0+cGFyc2VyKCkgcHJvY2Vzc0NvbnRlbnRL
ZXlSZXNwb25zZURhdGE6a2V5RGF0YS5nZXQoKSBmb3JUcmFja0lEOnByb3RlY3RlZFNvdXJjZUJ1
ZmZlci0+cHJvdGVjdGVkVHJhY2tJRCgpXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIHJldHVybiB0cnVl
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291
cmNlQVZGT2JqQy5oCmluZGV4IGQzMjZmMmZhMmZiMmIxYzYwZWQ5ZTNiOTM4OGFhNTQ1OWQ5ZDc1
ZTEuLjM4NjE2YjQ3ZjliNzViOTFlZjNkNTEzODIwNjljNjRlYzA0YTk2YTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNl
c3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgK
QEAgLTU0LDExICs1NCw5IEBAIHB1YmxpYzoKIAogICAgIC8vIFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDRXJyb3JDbGllbnQKICAgICB2b2lkIGxheWVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyICosIE5TRXJyb3IgKiwgYm9vbCYgc2hvdWxkSWdub3JlKSBvdmVy
cmlkZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKKyAgICBBTExPV19ORVdf
QVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiAgICAgdm9pZCByZW5kZXJlckRpZFJlY2VpdmVFcnJv
cihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKiwgTlNFcnJvciAqLCBib29sJiBzaG91bGRJ
Z25vcmUpIG92ZXJyaWRlOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9X
X05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiAKICAgICB2b2lkIGFkZFNvdXJjZUJ1ZmZlcihT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyopOwogICAgIHZvaWQgcmVtb3ZlU291cmNlQnVmZmVy
KFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRl
eCBhZGMxZDZhMmMyMGUxYzcyNTk1YzMzNjA5MTk2NzI0N2JlZjA0NjY5Li4wZmIxMzA4ZDlhOGEx
MTcwNjk0ZDJiMzIxNjk0NmQ0NDMyYWMwNmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAg
LTI2OTksMTAgKzI2OTksOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnNldEN1cnJlbnRUZXh0VHJhY2soSW5iYW5kVGV4dFRyYWNrUHJpdgogCiAgICAgaWYgKHRy
YWNrKSB7CiAgICAgICAgIGlmICh0cmFjay0+dGV4dFRyYWNrQ2F0ZWdvcnkoKSA9PSBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGOjpMZWdhY3lDbG9zZWRDYXB0aW9uKQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICAgICAgICAgIFttX2F2UGxheWVyLmdldCgpIHNldENsb3NlZENhcHRp
b25EaXNwbGF5RW5hYmxlZDpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAjaWYgSEFWRShBVkZP
VU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKQogI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMp
CiAgICAgICAgIGVsc2UgaWYgKHRyYWNrLT50ZXh0VHJhY2tDYXRlZ29yeSgpID09IEluYmFuZFRl
eHRUcmFja1ByaXZhdGVBVkY6Ok91dE9mQmFuZCkKQEAgLTI3MTUsMTAgKzI3MTQsOSBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldEN1cnJlbnRUZXh0VHJhY2so
SW5iYW5kVGV4dFRyYWNrUHJpdgogI2lmIEhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElP
Tl9HUk9VUCkKICAgICAgICAgW21fYXZQbGF5ZXJJdGVtLmdldCgpIHNlbGVjdE1lZGlhT3B0aW9u
OjAgaW5NZWRpYVNlbGVjdGlvbkdyb3VwOnNhZmVNZWRpYVNlbGVjdGlvbkdyb3VwRm9yTGVnaWJs
ZU1lZGlhKCldOwogI2VuZGlmCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFttX2F2
UGxheWVyLmdldCgpIHNldENsb3NlZENhcHRpb25EaXNwbGF5RW5hYmxlZDpOT107Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgIH0KIAogfQpAQCAtMjczNCwxMCArMjczMiw5IEBAIFN0cmluZyBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2so
KSBjb25zdAogI2lmIEhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCkKICAg
ICAvLyBJZiBBVkZvdW5kYXRpb24gaGFzIGFuIGF1ZGlibGUgZ3JvdXAsIHJldHVybiB0aGUgbGFu
Z3VhZ2Ugb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBhdWRpYmxlIG9wdGlvbi4KICAgICBBVk1l
ZGlhU2VsZWN0aW9uR3JvdXBUeXBlICphdWRpYmxlR3JvdXAgPSBbbV9hdkFzc2V0LmdldCgpIG1l
ZGlhU2VsZWN0aW9uR3JvdXBGb3JNZWRpYUNoYXJhY3RlcmlzdGljOkFWTWVkaWFDaGFyYWN0ZXJp
c3RpY0F1ZGlibGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQVZNZWRpYVNlbGVjdGlvbk9w
dGlvblR5cGUgKmN1cnJlbnRseVNlbGVjdGVkQXVkaWJsZU9wdGlvbiA9IFttX2F2UGxheWVySXRl
bS5nZXQoKSBzZWxlY3RlZE1lZGlhT3B0aW9uSW5NZWRpYVNlbGVjdGlvbkdyb3VwOmF1ZGlibGVH
cm91cF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgaWYgKGN1cnJlbnRseVNlbGVjdGVkQXVkaWJsZU9wdGlv
bikgewogICAgICAgICBtX2xhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjayA9IFtbY3VycmVudGx5
U2VsZWN0ZWRBdWRpYmxlT3B0aW9uIGxvY2FsZV0gbG9jYWxlSWRlbnRpZmllcl07CiAgICAgICAg
IElORk9fTE9HKExPR0lERU5USUZJRVIsICJsYW5ndWFnZSBvZiBzZWxlY3RlZCBhdWRpYmxlIG9w
dGlvbiAiLCBtX2xhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjayk7CkBAIC0yODI4LDEwICsyODI1
LDkgQEAgc3RhdGljIE5TU3RyaW5nICpleGVybmFsRGV2aWNlRGlzcGxheU5hbWVGb3JQbGF5ZXIo
QVZQbGF5ZXJUeXBlICpwbGF5ZXIpCiAKICAgICAgICAgYXV0byBvdXRwdXREZXZpY2VOYW1lcyA9
IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwogICAgICAgICBmb3IgKEFW
T3V0cHV0RGV2aWNlICpvdXRwdXREZXZpY2UgaW4gW291dHB1dENvbnRleHQgb3V0cHV0RGV2aWNl
c10pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBhdXRvIG91dHB1dERldmljZU5hbWUg
PSBhZG9wdE5TKFtbb3V0cHV0RGV2aWNlIG5hbWVdIGNvcHldKTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAg
ICAgW291dHB1dERldmljZU5hbWVzIGFkZE9iamVjdDpvdXRwdXREZXZpY2VOYW1lLmdldCgpXTsK
ICAgICAgICAgfQogCkBAIC0zMjUxLDEwICszMjQ3LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjYW5QbGF5RmFzdFJldmVyc2VEaWRDaGFuZ2UoYm9vbCBuZXdW
YWwKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0U2hvdWxkRGlz
YWJsZVNsZWVwKGJvb2wgZmxhZykKIHsKICNpZiBQTEFURk9STShJT1MpICYmICFQTEFURk9STShJ
T1NfU0lNVUxBVE9SKSAmJiAhUExBVEZPUk0oSU9TTUFDKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgW21fYXZQbGF5ZXIgX3NldFByZXZlbnRzU2xlZXBEdXJpbmdWaWRlb1BsYXliYWNrOmZsYWdd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZmxhZyk7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggMDQ0NGQ5YWYwNTczZjViNzI3YTYzNTlkYjVkZTQ3
MWRhODI3YWVlMy4uNGNiMjljYzY3MjFkMDkxZDIzNjZiMjJiZmI4NGU0Y2QwNjMxNjBmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTY5LDEyICs2OSwxMCBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUlu
c2Vuc2l0aXZlSGFzaD4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9X
SVRIT1VUX0dVQVJEU19CRUdJTgogICAgIHZvaWQgYWRkQXVkaW9SZW5kZXJlcihBVlNhbXBsZUJ1
ZmZlckF1ZGlvUmVuZGVyZXIqKTsKICAgICB2b2lkIHJlbW92ZUF1ZGlvUmVuZGVyZXIoQVZTYW1w
bGVCdWZmZXJBdWRpb1JlbmRlcmVyKik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKIAogICAgIE1lZGlhUGxheWVyOjpO
ZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTWVkaWFQbGF5
ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtODcsMTEgKzg1
LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TG9hZGluZ1Byb2dyZXNzc2VkKGJvb2wgZmxhZykg
eyBtX2xvYWRpbmdQcm9ncmVzc2VkID0gZmxhZzsgfQogICAgIHZvaWQgc2V0SGFzQXZhaWxhYmxl
VmlkZW9GcmFtZShib29sKTsKICAgICBib29sIGhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSBjb25z
dCBvdmVycmlkZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKKyAgICBBTExP
V19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiAgICAgdm9pZCBzZXRIYXNBdmFpbGFibGVB
dWRpb1NhbXBsZShBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqLCBib29sKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VO
RAogICAgIGJvb2wgYWxsUmVuZGVyZXJzSGF2ZUF2YWlsYWJsZVNhbXBsZXMoKSBjb25zdCB7IHJl
dHVybiBtX2FsbFJlbmRlcmVyc0hhdmVBdmFpbGFibGVTYW1wbGVzOyB9CiAgICAgdm9pZCB1cGRh
dGVBbGxSZW5kZXJlcnNIYXZlQXZhaWxhYmxlU2FtcGxlcygpOwogICAgIHZvaWQgZHVyYXRpb25D
aGFuZ2VkKCk7CkBAIC0yNjcsMTIgKzI2MywxMCBAQCBwcml2YXRlOgogICAgIHN0cnVjdCBBdWRp
b1JlbmRlcmVyUHJvcGVydGllcyB7CiAgICAgICAgIGJvb2wgaGFzQXVkaWJsZVNhbXBsZSB7IGZh
bHNlIH07CiAgICAgfTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKKyAgICBB
TExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiAgICAgSGFzaE1hcDxSZXRhaW5QdHI8
Q0ZUeXBlUmVmPiwgQXVkaW9SZW5kZXJlclByb3BlcnRpZXM+IG1fc2FtcGxlQnVmZmVyQXVkaW9S
ZW5kZXJlck1hcDsKICAgICBSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJSZW5kZXJTeW5jaHJvbml6
ZXI+IG1fc3luY2hyb25pemVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFM
TE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiAgICAgUmV0YWluUHRyPGlkPiBtX3RpbWVK
dW1wZWRPYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8aWQ+IG1fZHVyYXRpb25PYnNlcnZlcjsKICAg
ICBSZXRhaW5QdHI8QVZTdHJlYW1TZXNzaW9uPiBtX3N0cmVhbVNlc3Npb247CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0KaW5kZXggOTY4ZmM1YTA4N2YzMTFkODhiMjM5ZTY3Njk0ODk0OTIxM2I0
Y2JhNi4uYjAyYzYyMzJjMDEyYzZkNzJlYzI3NjU3M2Q3YjhhZThlMGUzODU5OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNjIsMTcgKzYyLDEzIEBAIFNPRlRfTElOS19GUkFNRVdP
UktfT1BUSU9OQUwoQVZGb3VuZGF0aW9uKQogCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZG
b3VuZGF0aW9uLCBBVkFzc2V0KQogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRhdGlv
biwgQVZVUkxBc3NldCkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKK0FMTE9X
X05FV19BUElfV0lUSE9VVF9HVUFSRFNfQkVHSU4KIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChB
VkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlcikKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiBTT0ZUX0xJ
TktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKK0FMTE9XX05FV19BUElfV0lU
SE9VVF9HVUFSRFNfQkVHSU4KIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24s
IEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKIFNPRlRfTElOS19DTEFT
U19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWU3RyZWFtRGF0YVBhcnNlcikKIFNPRlRfTElOS19D
TEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWU3RyZWFtU2Vzc2lvbik7CiBTT0ZUX0xJTktf
Q0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlZpZGVvUGVyZm9ybWFuY2VNZXRyaWNzKQpA
QCAtNzczLDExICs3NjksOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQzo6c2V0SGFzQXZhaWxhYmxlVmlkZW9GcmFtZShib29sIGZsYWcpCiAgICAgfQogfQogCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitBTExPV19ORVdfQVBJX1dJVEhPVVRf
R1VBUkRTX0JFR0lOCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
c2V0SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKiBy
ZW5kZXJlciwgYm9vbCBmbGFnKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1df
TkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKIHsKICAgICBhdXRvIGl0ZXIgPSBtX3NhbXBsZUJ1
ZmZlckF1ZGlvUmVuZGVyZXJNYXAuZmluZCgoX19icmlkZ2UgQ0ZUeXBlUmVmKXJlbmRlcmVyKTsK
ICAgICBpZiAoaXRlciA9PSBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXAuZW5kKCkpCkBA
IC0xMDE3LDExICsxMDExLDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OnNldE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6TmV0d29ya1MKICAgICBtX3BsYXll
ci0+bmV0d29ya1N0YXRlQ2hhbmdlZCgpOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFz
IgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJp
bGl0eS1uZXciCitBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6YWRkQXVkaW9SZW5kZXJlcihBVlNhbXBs
ZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqIGF1ZGlvUmVuZGVyZXIpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCitBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VORAogewogICAgIGlmICgh
bV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmFkZCgoX19icmlkZ2UgQ0ZUeXBlUmVmKWF1
ZGlvUmVuZGVyZXIsIEF1ZGlvUmVuZGVyZXJQcm9wZXJ0aWVzKCkpLmlzTmV3RW50cnkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTEwMzQsMTEgKzEwMjYsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6YWRkQXVkaW9SZW5kZXJlcihBVlNhbXBsZUJ1ZmZlckF1ZGlv
UgogICAgIG1fcGxheWVyLT5jbGllbnQoKS5tZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2Vk
KG1fcGxheWVyKTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxM
T1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19CRUdJTgogdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6OnJlbW92ZUF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRp
b1JlbmRlcmVyKiBhdWRpb1JlbmRlcmVyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
QUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKIHsKICAgICBhdXRvIGl0ZXIgPSBtX3Nh
bXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXAuZmluZCgoX19icmlkZ2UgQ0ZUeXBlUmVmKWF1ZGlv
UmVuZGVyZXIpOwogICAgIGlmIChpdGVyID09IG1fc2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlck1h
cC5lbmQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5oCmluZGV4IDAxOWNmMzdiNmJiZGFhYzRjNGViZmVhM2Y5ODRiMmFiZDliZjEz
YTEuLmUyZDJiNTY2ODgwNTNhMWE1NzhkODk2ZWJiYmNkZWVlMmEwNzQ0MmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaApAQCAt
NzAsMTEgKzcwLDkgQEAgY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakNFcnJvckNsaWVu
dCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakNFcnJv
ckNsaWVudCgpID0gZGVmYXVsdDsKICAgICB2aXJ0dWFsIHZvaWQgbGF5ZXJEaWRSZWNlaXZlRXJy
b3IoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgKiwgTlNFcnJvciAqLCBib29sJiBzaG91bGRJ
Z25vcmUpID0gMDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKKyAgICBBTExP
V19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiAgICAgdmlydHVhbCB2b2lkIHJlbmRlcmVy
RGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqLCBOU0Vycm9yICos
IGJvb2wmIHNob3VsZElnbm9yZSkgPSAwOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiB9OwogCiBjbGFzcyBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQyBmaW5hbCA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQcml2YXRlIHsK
QEAgLTExNywxMSArMTE1LDkgQEAgcHVibGljOgogICAgIHZvaWQgdW5yZWdpc3RlckZvckVycm9y
Tm90aWZpY2F0aW9ucyhTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQ0Vycm9yQ2xpZW50Kik7CiAg
ICAgdm9pZCBsYXllckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciAq
LCBOU0Vycm9yICopOwogICAgIHZvaWQgb3V0cHV0T2JzY3VyZWREdWVUb0luc3VmZmljaWVudEV4
dGVybmFsUHJvdGVjdGlvbkNoYW5nZWQoYm9vbCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFz
IgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJp
bGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19CRUdJTgogICAgIHZv
aWQgcmVuZGVyZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICos
IE5TRXJyb3IgKik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfTkVX
X0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKIAogICAgIHZvaWQgc2V0VmlkZW9MYXllcihBVlNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllciopOwogICAgIHZvaWQgc2V0RGVjb21wcmVzc2lvblNlc3Npb24o
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uKik7CkBAIC0xNTIsMTEgKzE0OCw5IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkZXN0cm95UmVuZGVyZXJzKCk7CiAKICAgICB2b2lkIGZsdXNoVmlkZW8o
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKKyAgICBBTExPV19ORVdfQVBJ
X1dJVEhPVVRfR1VBUkRTX0JFR0lOCiAgICAgdm9pZCBmbHVzaChBVlNhbXBsZUJ1ZmZlckF1ZGlv
UmVuZGVyZXIgKik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfTkVX
X0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKIAogICAgIFdlYWtQdHI8U291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKnRoaXMpOyB9CiAKQEAgLTE3MCwxMSArMTY0LDkgQEAgcHJpdmF0ZToKICAgICBSZXRh
aW5QdHI8QVZTdHJlYW1EYXRhUGFyc2VyPiBtX3BhcnNlcjsKICAgICBSZXRhaW5QdHI8QVZBc3Nl
dD4gbV9hc3NldDsKICAgICBSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IG1f
ZGlzcGxheUxheWVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAgIEFM
TE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfQkVHSU4KICAgICBIYXNoTWFwPGludCwgUmV0YWlu
UHRyPEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlcj4+IG1fYXVkaW9SZW5kZXJlcnM7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJE
U19FTkQKICAgICBSZXRhaW5QdHI8V2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXI+IG1fZGVs
ZWdhdGU7CiAgICAgUmV0YWluUHRyPFdlYkFWU2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lcj4gbV9l
cnJvckxpc3RlbmVyOwogICAgIFJldGFpblB0cjxOU0Vycm9yPiBtX2hkY3BFcnJvcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0K
aW5kZXggZGM5MzQ3OGVlMzViMzA5ZmJlOGYxZDI1ZmUzNTEyOTY1ZmUwNjZmNS4uNGNmMjc1M2Fl
MjBmMzllOTdiOWNkMmEwODc5YTczYzMyZGEzYjY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTY4LDExICs2OCw5
IEBAIFNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoQVZGb3VuZGF0aW9uKQogCiBTT0ZUX0xJ
TktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVkFzc2V0VHJhY2spCiBTT0ZUX0xJTktfQ0xBU1MoQVZG
b3VuZGF0aW9uLCBBVlN0cmVhbURhdGFQYXJzZXIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFz
IgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJp
bGl0eS1uZXciCitBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiBTT0ZUX0xJTktf
Q0xBU1MoQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIpCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VORAog
U09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIp
CiBTT0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbVNlc3Npb24pCiAKQEAgLTI0
MywyMyArMjQxLDE5IEBAIFNPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljCiBAaW50ZXJmYWNlIFdlYkFW
U2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lciA6IE5TT2JqZWN0IHsKICAgICBXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQyogX3BhcmVudDsKICAgICBWZWN0b3I8UmV0YWluUHRyPEFW
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPj4gX2xheWVyczsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXBy
YWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZh
aWxhYmlsaXR5LW5ldyIKKyAgICBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiAg
ICAgVmVjdG9yPFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+PiBfcmVuZGVy
ZXJzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX05FV19BUElfV0lU
SE9VVF9HVUFSRFNfRU5ECiB9CiAKIC0gKGlkKWluaXRXaXRoUGFyZW50OihXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQyopcGFyZW50OwogLSAodm9pZClpbnZhbGlkYXRlOwogLSAo
dm9pZCliZWdpbk9ic2VydmluZ0xheWVyOihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciAqKWxh
eWVyOwogLSAodm9pZClzdG9wT2JzZXJ2aW5nTGF5ZXI6KEFWU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyICopbGF5ZXI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitBTExPV19O
RVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiAtICh2b2lkKWJlZ2luT2JzZXJ2aW5nUmVuZGVy
ZXI6KEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqKXJlbmRlcmVyOwogLSAodm9pZClzdG9w
T2JzZXJ2aW5nUmVuZGVyZXI6KEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqKXJlbmRlcmVy
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dV
QVJEU19FTkQKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkFWU2FtcGxlQnVmZmVyRXJyb3JM
aXN0ZW5lcgpAQCAtMzIyLDEyICszMTYsMTAgQEAgU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRh
dGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJGYWlsZWRUb0RlY29kZU5vdGlmaWMKICAg
ICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNl
bGYgbmFtZTpBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckZhaWxlZFRvRGVjb2RlTm90aWZpY2F0
aW9uIG9iamVjdDpsYXllcl07CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5l
dyIKK0FMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfQkVHSU4KIC0gKHZvaWQpYmVnaW5PYnNl
cnZpbmdSZW5kZXJlcjooQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKilyZW5kZXJlcgogewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJE
U19FTkQKICAgICBBU1NFUlQoX3BhcmVudCk7CiAgICAgQVNTRVJUKCFfcmVuZGVyZXJzLmNvbnRh
aW5zKHJlbmRlcmVyKSk7CiAKQEAgLTMzNSwxMSArMzI3LDkgQEAgU09GVF9MSU5LX0NPTlNUQU5U
KEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJGYWlsZWRUb0RlY29kZU5v
dGlmaWMKICAgICBbcmVuZGVyZXIgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiZXJyb3Ii
IG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0Om51bGxwdHJdOwog
fQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitBTExPV19ORVdfQVBJX1dJ
VEhPVVRfR1VBUkRTX0JFR0lOCiAtICh2b2lkKXN0b3BPYnNlcnZpbmdSZW5kZXJlcjooQVZTYW1w
bGVCdWZmZXJBdWRpb1JlbmRlcmVyKilyZW5kZXJlcgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKIHsKICAgICBBU1NFUlQoX3Bh
cmVudCk7CiAgICAgQVNTRVJUKF9yZW5kZXJlcnMuY29udGFpbnMocmVuZGVyZXIpKTsKQEAgLTM3
MiwxMSArMzYyLDkgQEAgU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXJGYWlsZWRUb0RlY29kZU5vdGlmaWMKICAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogCiAgICAgfSBlbHNlIGlmIChbb2JqZWN0IGlzS2luZE9mQ2xhc3M6
Z2V0QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyQ2xhc3MoKV0pIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtu
b3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJk
ZWQtYXZhaWxhYmlsaXR5LW5ldyIKKyAgICAgICAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJE
U19CRUdJTgogICAgICAgICBSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyPiBy
ZW5kZXJlciA9IChBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKilvYmplY3Q7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFS
RFNfRU5ECiAgICAgICAgIFJldGFpblB0cjxOU0Vycm9yPiBlcnJvciA9IFtjaGFuZ2UgdmFsdWVG
b3JLZXk6TlNLZXlWYWx1ZUNoYW5nZU5ld0tleV07CiAKICAgICAgICAgQVNTRVJUKF9yZW5kZXJl
cnMuY29udGFpbnMocmVuZGVyZXIuZ2V0KCkpKTsKQEAgLTg1MiwyMSArODQwLDE3IEBAIHZvaWQg
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnRyYWNrRGlkQ2hhbmdlRW5hYmxlZChBdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU291CiAgICAgaW50IHRyYWNrSUQgPSB0cmFjay0+dHJhY2tJRCgpOwog
CiAgICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFz
IgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJp
bGl0eS1uZXciCisgICAgICAgIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfQkVHSU4KICAg
ICAgICAgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlcj4gcmVuZGVyZXIgPSBt
X2F1ZGlvUmVuZGVyZXJzLmdldCh0cmFja0lEKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKICAgICAgICAgW21f
cGFyc2VyIHNldFNob3VsZFByb3ZpZGVNZWRpYURhdGE6Tk8gZm9yVHJhY2tJRDp0cmFja0lEXTsK
ICAgICAgICAgaWYgKG1fbWVkaWFTb3VyY2UpCiAgICAgICAgICAgICBtX21lZGlhU291cmNlLT5w
bGF5ZXIoKS0+cmVtb3ZlQXVkaW9SZW5kZXJlcihyZW5kZXJlci5nZXQoKSk7CiAgICAgfSBlbHNl
IHsKICAgICAgICAgW21fcGFyc2VyIHNldFNob3VsZFByb3ZpZGVNZWRpYURhdGE6WUVTIGZvclRy
YWNrSUQ6dHJhY2tJRF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAg
ICAgIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfQkVHSU4KICAgICAgICAgUmV0YWluUHRy
PEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlcj4gcmVuZGVyZXI7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiAg
ICAgICAgIGlmICghbV9hdWRpb1JlbmRlcmVycy5jb250YWlucyh0cmFja0lEKSkgewogICAgICAg
ICAgICAgcmVuZGVyZXIgPSBhZG9wdE5TKFthbGxvY0FWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJl
ckluc3RhbmNlKCkgaW5pdF0pOwogICAgICAgICAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdl
YWtQdHIoKTsKQEAgLTk5NywxMSArOTgxLDkgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6b3V0cHV0T2JzY3VyZWREdWVUb0luc3VmZmljaWVudEV4dGVybmFsUHJvdGVjdGkKICAg
ICBsYXllckRpZFJlY2VpdmVFcnJvcihtX2Rpc3BsYXlMYXllci5nZXQoKSwgZXJyb3IuZ2V0KCkp
OwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitBTExPV19ORVdfQVBJ
X1dJVEhPVVRfR1VBUkRTX0JFR0lOCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpy
ZW5kZXJlckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKnJlbmRl
cmVyLCBOU0Vycm9yICplcnJvcikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9X
X05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiB7CiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnJlbmRlcmVyRGlkUmVjZWl2ZUVycm9yKCVwKTogcmVu
ZGVyZXIoJXApLCBlcnJvciglQCkiLCB0aGlzLCByZW5kZXJlciwgW2Vycm9yIGRlc2NyaXB0aW9u
XSk7CiAKQEAgLTEwNTAsMTEgKzEwMzIsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjpmbHVzaFZpZGVvKCkKICAgICB9CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMi
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmls
aXR5LW5ldyIKK0FMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfQkVHSU4KIHZvaWQgU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OmZsdXNoKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAq
cmVuZGVyZXIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ORVdfQVBJX1dJ
VEhPVVRfR1VBUkRTX0VORAogewogICAgIFtyZW5kZXJlciBmbHVzaF07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXll
ckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxh
dGZvcm1DQUxheWVyQ29jb2EubW0KaW5kZXggZGYwNDEwM2M3MWE5ODk2NGU5ZjI5ZmUxOTgxYjM2
MjE1OGE2YmQ5OS4uZmIyYWExZTQxNWE4MzNjNTFmYzBlYzg0NjIzYWRlOTdmZDUyMWIxOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZv
cm1DQUxheWVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvY29jb2EvUGxhdGZvcm1DQUxheWVyQ29jb2EubW0KQEAgLTExNTAsMTAgKzExNTAsOSBAQCB2
b2lkIFBsYXRmb3JtQ0FMYXllcjo6ZHJhd0xheWVyQ29udGVudHMoQ0dDb250ZXh0UmVmIGNvbnRl
eHQsIFdlYkNvcmU6OlBsYXRmb3JtQwogICAgIAogICAgIC8vIFNldCB1cCBhbiBOU0dyYXBoaWNz
Q29udGV4dCBmb3IgdGhlIGNvbnRleHQsIHNvIHRoYXQgcGFydHMgb2YgQXBwS2l0IHRoYXQgcmVs
eSBvbgogICAgIC8vIHRoZSBjdXJyZW50IE5TR3JhcGhpY3NDb250ZXh0IChlLmcuIE5TQ2VsbCBk
cmF3aW5nKSBnZXQgdGhlIHJpZ2h0IG9uZS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TR3Jh
cGhpY3NDb250ZXh0KiBsYXllckNvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3ND
b250ZXh0V2l0aEdyYXBoaWNzUG9ydDpjb250ZXh0IGZsaXBwZWQ6WUVTXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6bGF5ZXJDb250ZXh0XTsK
ICNlbmRpZgogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcAppbmRleCBlZjg0M2EwNjFl
OWMwYzgyNjcxNjM0ODlkY2ZhYTM2NWIwZjc1NzllLi45ZWZlNmY1ODdjNzI0ZDNmMGQ4ZTFmZGYy
NzkyNGM0ZTI0ZTczMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcApAQCAtNDksMTQg
KzQ5LDkgQEAgY29uc3QgRm9udCogRm9udENhc2NhZGU6OmZvbnRGb3JDb21iaW5pbmdDaGFyYWN0
ZXJTZXF1ZW5jZShjb25zdCBVQ2hhciogY2hhcmFjdGUKIHsKICAgICBVRXJyb3JDb2RlIGVycm9y
ID0gVV9aRVJPX0VSUk9SOwogICAgIFZlY3RvcjxVQ2hhciwgND4gbm9ybWFsaXplZENoYXJhY3Rl
cnMobGVuZ3RoKTsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSNlbmRpZgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgaW50MzJfdCBub3JtYWxpemVkTGVuZ3RoID0gdW5vcm1fbm9ybWFsaXplKGNo
YXJhY3RlcnMsIGxlbmd0aCwgVU5PUk1fTkZDLCBVTk9STV9VTklDT0RFXzNfMiwgbm9ybWFsaXpl
ZENoYXJhY3RlcnMuZGF0YSgpLCBsZW5ndGgsICZlcnJvcik7Ci0jaWYgQ09NUElMRVIoR0NDX09S
X0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIGlmIChVX0ZBSUxVUkUoZXJyb3IpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VEZWNvZGVyQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VEZWNvZGVyQ0cuY3BwCmluZGV4IGI3ZDU5MmE5YzhhMjVkNzBk
MzdmNTE5ZjUxMzdjNDJkM2EzMzFhZWUuLjhiNjFlNmM3NmY5OWMzNjE0ZDRhMzBiZTZhMGZjYzFk
MGNjNDI4MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlRGVjb2RlckNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZURlY29kZXJDRy5jcHAKQEAgLTQyMywxNCArNDIzLDkgQEAgTmF0aXZlSW1hZ2VQ
dHIgSW1hZ2VEZWNvZGVyQ0c6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCBpbmRleCwg
U3Vic2FtcGxpbmcKICAgICAvLyB3aGljaCBjYXVzZWQgYSBwZXJmb3JtYW5jZSByZWdyZXNzaW9u
IGZvciB1cyBzaW5jZSB0aGUgaW1hZ2VzIGhhZCB0byBiZSByZXNhbXBsZWQvcmVjcmVhdGVkIGV2
ZXJ5IHRpbWUgd2UgY2FsbGVkCiAgICAgLy8gQ0dDb250ZXh0RHJhd0ltYWdlLiBXZSBub3cgdGVs
bCBDRyB0byBjYWNoZSB0aGUgZHJhd24gaW1hZ2VzLiBTZWUgYWxzbyA8cmRhcjovL3Byb2JsZW0v
MTQzNjY3NTU+IC0KICAgICAvLyBDb3JlR3JhcGhpY3MgbmVlZHMgdG8gdW4tZGVwcmVjYXRlIGtD
R0ltYWdlQ2FjaGluZ1RlbXBvcmFyeSBzaW5jZSBpdCdzIHN0aWxsIG5vdCB0aGUgZGVmYXVsdC4K
LSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
LSNlbmRpZgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0dJ
bWFnZVNldENhY2hpbmdGbGFncyhpbWFnZS5nZXQoKSwga0NHSW1hZ2VDYWNoaW5nVGVtcG9yYXJ5
KTsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNl
bmRpZgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogI2VuZGlmIC8vIFBM
QVRGT1JNKElPUykKICAgICAKICAgICBTdHJpbmcgdXRpID0gdGhpcy0+dXRpKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKaW5k
ZXggZDZiOWUxMDViN2E5NzJjNTJlY2VmYWRiMWM1ZDU1Y2I2Zjg0NDkyOS4uNjA5MjIyYTk3YjJm
NGVlZjFkMDFjYzkyYmYxMjZlOGYzMjdhNmI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaApAQCAtMzQsOCArMzQsNyBAQCBj
bGFzcyBHcmFwaGljc0xheWVyOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiB9CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAKICNpZiBVU0UoT1BFTkdMKQogQGludGVyZmFjZSBXZWJHTExheWVyIDogQ0FM
YXllcgpAQCAtNjcsNCArNjYsNCBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKIAogQGVuZAog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQppbmRleCBl
ODkwMWJjMTNhZGE0MDUyMzJkMGQzZmY0NDUxOTYzZDdkNzU2NWIyLi40MGNjNGZlYzNlNzBhNzdj
ZWU1OTM1ZTkyY2Q0MWJmNWU5NWVkN2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxl
ckNvcmVUZXh0Lm1tCkBAIC0xNTgsMTAgKzE1OCw5IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9s
bGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zRm9yQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY3As
CiAKICAgICAgICAgUHJvdmlkZXJJbmZvIGluZm8gPSB7IGNwLCBsZW5ndGgsIHN0cmluZ0F0dHJp
YnV0ZXMuZ2V0KCkgfTsKICAgICAgICAgLy8gRklYTUU6IFNvbWUgU0RLcyBjb21wbGFpbiB0aGF0
IHRoZSBzZWNvbmQgcGFyYW1ldGVyIGJlbG93IGNhbm5vdCBiZSBudWxsLgotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25v
bm51bGwiCisgICAgICAgIElHTk9SRV9OVUxMX0NIRUNLX1dBUk5JTkdTX0JFR0lOCiAgICAgICAg
IFJldGFpblB0cjxDVFR5cGVzZXR0ZXJSZWY+IHR5cGVzZXR0ZXIgPSBhZG9wdENGKENUVHlwZXNl
dHRlckNyZWF0ZVdpdGhVbmlDaGFyUHJvdmlkZXJBbmRPcHRpb25zKCZwcm92aWRlU3RyaW5nQW5k
QXR0cmlidXRlcywgMCwgJmluZm8sIG1fcnVuLmx0cigpID8gbHRyVHlwZXNldHRlck9wdGlvbnMg
OiBydGxUeXBlc2V0dGVyT3B0aW9ucykpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgICAgICBJR05PUkVfTlVMTF9DSEVDS19XQVJOSU5HU19FTkQKIAogICAgICAgICBsaW5lID0g
YWRvcHRDRihDVFR5cGVzZXR0ZXJDcmVhdGVMaW5lKHR5cGVzZXR0ZXIuZ2V0KCksIENGUmFuZ2VN
YWtlKDAsIDApKSk7CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ljb25NYWMubW0KaW5kZXggNjE0M2I1MWQ0MzY0NWQ1YWQ0OGMzOTVhZjdj
NGVhMjY0MzNkN2M0YS4uNjViYjEzOTAyNDQ3MzVlYzBiM2Y2YWU1ZmQ2ODgxNDkxMjY5ZDFiYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0K
QEAgLTM2LDEwICszNiw5IEBAIEljb246Okljb24oTlNJbWFnZSAqaW1hZ2UpCiAgICAgOiBtX25z
SW1hZ2UoaW1hZ2UpCiB7CiAgICAgLy8gTmVlZCB0aGlzIGJlY2F1c2UgV2ViQ29yZSB1c2VzIEFw
cEtpdCdzIGZsaXBwZWQgY29vcmRpbmF0ZSBzeXN0ZW0gZXhjbHVzaXZlbHkuCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICBbaW1hZ2Ugc2V0RmxpcHBlZDpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiBJ
Y29uOjp+SWNvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvUERGRG9jdW1lbnRJbWFnZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9QREZEb2N1bWVudEltYWdlTWFjLm1tCmluZGV4IDZkYTkyMWI5OGFmMmY5NDhj
YmFjMjYzNTkwYTM0Y2RiYzg4ZGI1YjIuLjI3MjZiZGNlMGNjMWQwYzAzMmRkNTM3NGY4YmYxYjc4
NThhYWUwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9QREZEb2N1bWVudEltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9QREZEb2N1bWVudEltYWdlTWFjLm1tCkBAIC03MywxMCArNzMsOSBAQCB2b2lk
IFBERkRvY3VtZW50SW1hZ2U6OmRyYXdQREZQYWdlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkK
ICAgICBib29sIGFsbG93c1N1YnBpeGVsUXVhbnRpemF0aW9uID0gQ0dDb250ZXh0R2V0QWxsb3dz
Rm9udFN1YnBpeGVsUXVhbnRpemF0aW9uKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCkpOwogICAg
IGJvb2wgYWxsb3dzU3VicGl4ZWxQb3NpdGlvbmluZyA9IENHQ29udGV4dEdldEFsbG93c0ZvbnRT
dWJwaXhlbFBvc2l0aW9uaW5nKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCkpOwogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBbW21fZG9jdW1lbnQgcGFnZUF0SW5kZXg6MF0gZHJhd1dpdGhCb3g6
a1BERkRpc3BsYXlCb3hDcm9wQm94XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIENHQ29udGV4dFNldEFs
bG93c0ZvbnRTbW9vdGhpbmcoY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSwgYWxsb3dzU21vb3Ro
aW5nKTsKICAgICBDR0NvbnRleHRTZXRBbGxvd3NGb250U3VicGl4ZWxRdWFudGl6YXRpb24oY29u
dGV4dC5wbGF0Zm9ybUNvbnRleHQoKSwgYWxsb3dzU3VicGl4ZWxRdWFudGl6YXRpb24pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYktpdE5TSW1h
Z2VFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViS2l0
TlNJbWFnZUV4dHJhcy5tbQppbmRleCA0NjY0ZjY2ZjczODU3M2RmYWI5MDU0ZTk0M2ExNGUxOTBi
ZWMyZjg3Li43ZjNkMTY1Nzg2YjZjMzIxODA0OTIxNjRiNWE2YjdlNWZlNzFhYjNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViS2l0TlNJbWFnZUV4
dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViS2l0
TlNJbWFnZUV4dHJhcy5tbQpAQCAtMzcsMTAgKzM3LDkgQEAKICAgICBbdHJhbnNmb3JtIHNjYWxl
Qnk6ZGV2aWNlU2NhbGVGYWN0b3JdOwogCiAgICAgTlNSZWN0IGJvdW5kcyA9IHsgTlNaZXJvUG9p
bnQsIHNlbGYuc2l6ZSB9OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQk9PTCBmbGlwcGVkT3Jp
ZW50YXRpb24gPSBzZWxmLmlzRmxpcHBlZDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbc2VsZiBsb2NrRm9j
dXNXaXRoUmVjdDpib3VuZHMgY29udGV4dDpuaWwgaGludHM6QHsgTlNJbWFnZUhpbnRDVE0gOiB0
cmFuc2Zvcm0gfSBmbGlwcGVkOmZsaXBwZWRPcmllbnRhdGlvbl07CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tCmluZGV4IDVmYjIxNWEyOTcwZGQ5NjJh
YTBiZGNhOTgzYTkxMDRlZDRkNDNlMTAuLjE5ZDI3NWI3MTlhM2E5ZTZlZDUzZmM2OGNmNDdhNzY0
MzkwOThkNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1h
Z2VJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5t
bQpAQCAtNTIsOCArNTIsNyBAQAogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1w
b3J0IDx3dGYvU29mdExpbmtpbmcuaD4KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV251bGxhYmlsaXR5LWNvbXBsZXRl
bmVzcyIKK0lHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigibnVsbGFiaWxpdHktY29tcGxldGVu
ZXNzIikKIAogU09GVF9MSU5LX0ZSQU1FV09SSyhVSUtpdCkKIFNPRlRfTElOS19DTEFTUyhVSUtp
dCwgVUlGb250KQpAQCAtNjMsNyArNjIsNyBAQCBTT0ZUX0xJTksoVUlLaXQsIFVJR3JhcGhpY3NH
ZXRDdXJyZW50Q29udGV4dCwgQ0dDb250ZXh0UmVmLCAodm9pZCksICgpKQogU09GVF9MSU5LKFVJ
S2l0LCBVSUdyYXBoaWNzR2V0SW1hZ2VGcm9tQ3VycmVudEltYWdlQ29udGV4dCwgVUlJbWFnZSAq
LCAodm9pZCksICgpKQogU09GVF9MSU5LKFVJS2l0LCBVSUdyYXBoaWNzRW5kSW1hZ2VDb250ZXh0
LCB2b2lkLCAodm9pZCksICgpKQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05P
UkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KaW5kZXggNTYxMDJmYTI5MDdhZjg0
ZmUxMzMwMjFmMDhlNGVmNDNiMjdkYzk5Mi4uMjAxY2IzMzhiYmQ3ZGM3NTNiMzM1YTMwMDYyYzJi
OTEyNmIxMTk0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJ
bWFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFj
Lm1tCkBAIC03MSwxMCArNzEsOSBAQCBSZXRhaW5QdHI8TlNJbWFnZT4gc2NhbGVEcmFnSW1hZ2Uo
UmV0YWluUHRyPE5TSW1hZ2U+IGltYWdlLCBGbG9hdFNpemUgc2NhbGUpCiAgICAgTlNTaXplIG5l
d1NpemUgPSBOU01ha2VTaXplKChvcmlnaW5hbFNpemUud2lkdGggKiBzY2FsZS53aWR0aCgpKSwg
KG9yaWdpbmFsU2l6ZS5oZWlnaHQgKiBzY2FsZS5oZWlnaHQoKSkpOwogICAgIG5ld1NpemUud2lk
dGggPSByb3VuZGYobmV3U2l6ZS53aWR0aCk7CiAgICAgbmV3U2l6ZS5oZWlnaHQgPSByb3VuZGYo
bmV3U2l6ZS5oZWlnaHQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW2ltYWdlIHNldFNjYWxl
c1doZW5SZXNpemVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW2ltYWdlIHNldFNpemU6bmV3U2l6
ZV07CiAgICAgcmV0dXJuIGltYWdlOwogfQpAQCAtMzEyLDEwICszMTEsOSBAQCBEcmFnSW1hZ2VS
ZWYgY3JlYXRlRHJhZ0ltYWdlRm9yTGluayhFbGVtZW50JiBlbGVtZW50LCBVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiB0aQogICAgIFJldGFpblB0cjxOU0ltYWdlPiBkcmFnSW1hZ2UgPSBhZG9wdE5T
KFtbTlNJbWFnZSBhbGxvY10gaW5pdFdpdGhTaXplOmltYWdlU2l6ZV0pOwogICAgIFtkcmFnSW1h
Z2UgX3dlYl9sb2NrRm9jdXNXaXRoRGV2aWNlU2NhbGVGYWN0b3I6ZGV2aWNlU2NhbGVGYWN0b3Jd
OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBHcmFwaGljc0NvbnRleHQgY29udGV4dCgoQ0dD
b250ZXh0UmVmKVtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0uZ3JhcGhpY3NQb3J0
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIAogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAx
MDEzMDAKICAgICBjb250ZXh0LnRyYW5zbGF0ZShsaW5rSW1hZ2VTaGFkb3dSYWRpdXMsIGxpbmtJ
bWFnZVNoYWRvd1JhZGl1cyAtIGxpbmtJbWFnZVNoYWRvd09mZnNldFkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaAppbmRl
eCAwN2FhOTVmZjA4YTAzNzgyNjBhODJhMGY1NjVmYTg4YjhiYjg1NjU0Li5kMzI0MjkwM2I3ODk0
ODYzMzQxYjMxZjBjMzk0ZGQ5MmY2MDM1NDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaApAQCAtMjcsOCArMjcsNyBA
QAogCiAjaWYgUExBVEZPUk0oTUFDKQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTg5LDYgKzg4LDYgQEAgaW5saW5lIE5TU3RyaW5nICpsZWdhY3lGaWxlc1By
b21pc2VQYXN0ZWJvYXJkVHlwZSgpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbQppbmRleCBjOThm
YzI4NTlmZmM3OWUxOTU0OGYxODY3ZTMzMDYwYjE2ODNiMDczLi40MWU0MjViY2Y5MjZlYTZlNjI5
YzAxMGQzNzdiMzUwMDU2MDMxZjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0KQEAgLTMyLDggKzMy
LDcgQEAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0OjpMb2NhbEN1cnJlbnRHcmFwaGljc0Nv
bnRleHQoR3JhcGhpY3NDb250ZXh0JiBncmFwaGkKIHsKICAgICBncmFwaGljc0NvbnRleHQuc2F2
ZSgpOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0g
dGhpcy0+Y2dDb250ZXh0KCk7CiAgICAgaWYgKGNnQ29udGV4dCA9PSBbW05TR3JhcGhpY3NDb250
ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdKSB7CiAgICAgICAgIG1fc2F2ZWROU0dy
YXBoaWNzQ29udGV4dCA9IDA7CkBAIC00Miw3ICs0MSw3IEBAIExvY2FsQ3VycmVudEdyYXBoaWNz
Q29udGV4dDo6TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4dCYgZ3Jh
cGhpCiAKICAgICBtX3NhdmVkTlNHcmFwaGljc0NvbnRleHQgPSBbW05TR3JhcGhpY3NDb250ZXh0
IGN1cnJlbnRDb250ZXh0XSByZXRhaW5dOwogICAgIE5TR3JhcGhpY3NDb250ZXh0KiBuZXdDb250
ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6
Y2dDb250ZXh0IGZsaXBwZWQ6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbTlNHcmFwaGljc0NvbnRl
eHQgc2V0Q3VycmVudENvbnRleHQ6bmV3Q29udGV4dF07CiAgICAgbV9kaWRTZXRHcmFwaGljc0Nv
bnRleHQgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2Fy
ZE1hYy5tbQppbmRleCAxZGQ2NzZjYzUyOTdlMTM3MjljMmFjMmE5MjI5MGQxMzYyNWE5NTVhLi4z
YzM2N2RhNDg0MGMwZTQyZDNhNGE5NWM3MDYxMTU1OTYxMTM0NzYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQpAQCAtOTksMTkgKzk5LDE3IEBAIFBh
c3RlYm9hcmQ6OlBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHByb21pCiAKIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0
ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oTlNHZW5lcmFsUGJvYXJkKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiBzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4o
TlNEcmFnUGJvYXJkKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9h
cmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJiBkcmFn
RGF0YSkKQEAgLTYxOCwxOCArNjE2LDE2IEBAIHN0YXRpYyB2b2lkIHNldERyYWdJbWFnZUltcGwo
TlNJbWFnZSAqaW1hZ2UsIE5TUG9pbnQgb2Zmc2V0KQogICAgIFJldGFpblB0cjxOU0JpdG1hcElt
YWdlUmVwPiBiaXRtYXBJbWFnZTsKICAgICBpZiAoIWltYWdlUmVwIHx8ICFbaW1hZ2VSZXAgaXNL
aW5kT2ZDbGFzczpbTlNCaXRtYXBJbWFnZVJlcCBjbGFzc11dIHx8ICFOU0VxdWFsU2l6ZXMoaW1h
Z2VSZXAuc2l6ZSwgaW1hZ2VTaXplKSkgewogICAgICAgICBbaW1hZ2UgbG9ja0ZvY3VzXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgYml0bWFwSW1hZ2UgPSBhZG9wdE5TKFtbTlNC
aXRtYXBJbWFnZVJlcCBhbGxvY10gaW5pdFdpdGhGb2N1c2VkVmlld1JlY3Q6KihOU1JlY3QqKSZp
bWFnZVJlY3RdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFtpbWFnZSB1bmxvY2tGb2N1c107
CiAgICAgICAgIAogICAgICAgICAvLyB3ZSBtYXkgaGF2ZSB0byBmbGlwIHRoZSBiaXRzIHdlIGp1
c3QgcmVhZCBpZiB0aGUgaW1hZ2Ugd2FzIGZsaXBwZWQgc2luY2UgaXQgbWVhbnMgdGhlIGNhY2hl
IHdhcyBhbHNvCiAgICAgICAgIC8vIGFuZCBDb3JlRHJhZ1NldEltYWdlIGNhbid0IHRha2UgYSB0
cmFuc2Zvcm0gZm9yIHJlbmRlcmluZy4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAg
ZmxpcEltYWdlID0gaW1hZ2UuaXNGbGlwcGVkOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9IGVsc2Ug
ewogICAgICAgICBmbGlwSW1hZ2UgPSBmYWxzZTsKICAgICAgICAgYml0bWFwSW1hZ2UgPSAoTlNC
aXRtYXBJbWFnZVJlcCAqKWltYWdlUmVwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IGNlNmUwMGJhNzAyYjc3
NGE0MDQzMjlkN2Q0NTVkZWMxMWY2MDY4NTEuLjgyMjM1ZTU2NmRiY2JjYTdhZTJhYjZhZDgxNGY3
MWFmOTliZmNlZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTQ2LDEwICs0Niw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogTlNQb2ludCBnbG9iYWxQb2ludChjb25zdCBOU1BvaW50JiB3aW5kb3dQb2lu
dCwgTlNXaW5kb3cgKndpbmRvdykKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBm
bGlwU2NyZWVuUG9pbnQoW3dpbmRvdyBjb252ZXJ0QmFzZVRvU2NyZWVuOndpbmRvd1BvaW50XSwg
c2NyZWVuKHdpbmRvdykpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiBzdGF0aWMgTlNQb2ludCBnbG9iYWxQ
b2ludEZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TU0xLZXlHZW5lcmF0b3JNYWMubW0KaW5kZXggNDcwMGIwMThjNTMwYzExMmZiOGRk
MTNkMjg3M2MxMDQ0ZTdkYzcxOC4uZmM0MGFhMTliMDRjM2FlMzQ3MTgwMjc2M2Y3ZGYzODlhNzIy
OGM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NTTEtleUdlbmVy
YXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU1NMS2V5R2VuZXJh
dG9yTWFjLm1tCkBAIC00NCw4ICs0NCw3IEBAIFdURl9ERUNMQVJFX0NGX1RZUEVfVFJBSVQoU2Vj
QUNMKTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiBzdHJ1Y3Qg
UHVibGljS2V5QW5kQ2hhbGxlbmdlIHsKICAgICBDU1NNX1g1MDlfU1VCSkVDVF9QVUJMSUNfS0VZ
X0lORk8gc3ViamVjdFB1YmxpY0tleUluZm87CkBAIC0yMjMsNyArMjIyLDcgQEAgc3RhdGljIFN0
cmluZyBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQga2V5U2l6ZSwg
Y29uc3QgQ1N0cmluZyYKICAgICByZXR1cm4gYmFzZTY0RW5jb2RlKGVuY29kZWRTaWduZWRQdWJs
aWNLZXlBbmRDaGFsbGVuZ2UuRGF0YSwgZW5jb2RlZFNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5n
ZS5MZW5ndGgpOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogdm9pZCBnZXRTdXBwb3J0ZWRLZXlTaXplcyhWZWN0
b3I8U3RyaW5nPiYgc3VwcG9ydGVkS2V5U2l6ZXMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsVmlld01hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tCmluZGV4IDI2YjZjYjRmMjFmOGIzYzg5OTM2ZDFkNmU2
Mzg3YzE2Yjg0MDRkM2IuLjA5ZWQyMGZmZWUzNTQxNDhkYjU1NDNiYTBmMzZjZTNkMzk2NGY5NzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tCkBAIC0y
MzAsMTAgKzIzMCw5IEBAIEludFJlY3QgU2Nyb2xsVmlldzo6cGxhdGZvcm1Db250ZW50c1RvU2Ny
ZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0CiAgICAgaWYgKE5TVmlldyogZG9jdW1lbnRW
aWV3ID0gdGhpcy0+ZG9jdW1lbnRWaWV3KCkpIHsKICAgICAgICAgTlNSZWN0IHRlbXBSZWN0ID0g
cmVjdDsKICAgICAgICAgdGVtcFJlY3QgPSBbZG9jdW1lbnRWaWV3IGNvbnZlcnRSZWN0OnRlbXBS
ZWN0IHRvVmlldzpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICB0ZW1wUmVj
dC5vcmlnaW4gPSBbW2RvY3VtZW50VmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46dGVt
cFJlY3Qub3JpZ2luXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIHJldHVybiBlbmNsb3NpbmdJ
bnRSZWN0KHRlbXBSZWN0KTsKICAgICB9CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
QEAgLTI0NCwxMCArMjQzLDkgQEAgSW50UG9pbnQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TY3JlZW5U
b0NvbnRlbnRzKGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKIHsKICAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CiAgICAgaWYgKE5TVmlldyogZG9jdW1lbnRWaWV3ID0gdGhpcy0+
ZG9jdW1lbnRWaWV3KCkpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgTlNQb2lu
dCB3aW5kb3dDb29yZCA9IFtbZG9jdW1lbnRWaWV3IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFz
ZTogcG9pbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgcmV0dXJuIEludFBvaW50KFtkb2N1
bWVudFZpZXcgY29udmVydFBvaW50OndpbmRvd0Nvb3JkIGZyb21WaWV3Om5pbF0pOwogICAgIH0K
ICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1RoZW1lTWFjLm1tCmluZGV4IDk1N2Y3YzUwNzI4ODQxZDRkMDUwMWJiY2IyMTE2ZWM2ZDE2NmRh
NTAuLjM0NzM0MjY4ZWVjM2VjNDA2YjdmNWJlNDI5YmYzNDAxNWQ0M2ZmYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KQEAgLTM1OCwxMCArMzU4LDkgQEAgc3RhdGlj
IE5TQnV0dG9uQ2VsbCAqc2hhcmVkQ2hlY2tib3hDZWxsKGNvbnN0IENvbnRyb2xTdGF0ZXMmIHN0
YXRlcywgY29uc3QgSW50U2kKIAogc3RhdGljIGJvb2wgZHJhd0NlbGxGb2N1c1JpbmdXaXRoRnJh
bWVBdFRpbWUoTlNDZWxsICpjZWxsLCBOU1JlY3QgY2VsbEZyYW1lLCBOU1ZpZXcgKmNvbnRyb2xW
aWV3LCBOU1RpbWVJbnRlcnZhbCB0aW1lT2Zmc2V0KQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IChDR0NvbnRleHRSZWYpW1tOU0dyYXBoaWNzQ29u
dGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBDR0Nv
bnRleHRTYXZlR1N0YXRlKGNnQ29udGV4dCk7CiAKICAgICBDR0ZvY3VzUmluZ1N0eWxlIGZvY3Vz
UmluZ1N0eWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlBs
YXliYWNrQ29udHJvbHNNYW5hZ2VyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dl
YlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyLm1tCmluZGV4IGI2ZWFkYTMxODA2NDAyNTAwNjAyYmZh
YjBkMzI5NTdkYTZmMmI0NTEuLjc3NzBlZTQ1NjE4NGUxODI3Y2EyZDFlMDljNDA4MGNkNDI2YzUw
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJQbGF5YmFja0Nv
bnRyb2xzTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxh
eWJhY2tDb250cm9sc01hbmFnZXIubW0KQEAgLTM0LDggKzM0LDcgQEAKICNpbXBvcnQgPHd0Zi9T
b2Z0TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdudWxsYWJpbGl0eS1jb21wbGV0ZW5lc3MiCitJR05PUkVfQ0xBTkdfV0FSTklOR1NfQkVHSU4o
Im51bGxhYmlsaXR5LWNvbXBsZXRlbmVzcyIpCiBTT0ZUX0xJTktfRlJBTUVXT1JLKEFWS2l0KQog
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwCiBTT0ZUX0xJTktf
Q0xBU1NfT1BUSU9OQUwoQVZLaXQsIEFWVG91Y2hCYXJNZWRpYVNlbGVjdGlvbk9wdGlvbikKQEAg
LTM0Niw3ICszNDUsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBtZWRpYVNl
bGVjdGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPE1lZGlhU2VsZWN0aQogfQogI2VuZGlmCiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKIAog
QGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2lkZ2V0TWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbQppbmRleCA5OTZj
MTlkNTUwZjkxMzFmYTAyMzYwYjY1N2Y4OGJlOWY5ZTY2NmJiLi5hMzczZGFiYzcwYmQwMzcxNDk5
NzU1ZjEwYjE2NDFkNDEwMDRlYzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2lkZ2V0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XaWRn
ZXRNYWMubW0KQEAgLTIwOCwxMCArMjA4LDkgQEAgdm9pZCBXaWRnZXQ6OnBhaW50KEdyYXBoaWNz
Q29udGV4dCYgcCwgY29uc3QgSW50UmVjdCYgciwgU2VjdXJpdHlPcmlnaW5QYWludFBvbGkKICAg
ICBSZWY8V2lkZ2V0PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKIAogICAgIE5TR3JhcGhpY3NDb250
ZXh0ICpjdXJyZW50Q29udGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAoY3VycmVudENvbnRleHQgPT0gW1t2aWV3IHdp
bmRvd10gZ3JhcGhpY3NDb250ZXh0XSB8fCAhW2N1cnJlbnRDb250ZXh0IGlzRHJhd2luZ1RvU2Ny
ZWVuXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgLy8gVGhpcyBpcyB0aGUgY29tbW9uIGNh
c2Ugb2YgZHJhd2luZyBpbnRvIGEgd2luZG93IG9yIGFuIGluY2x1c2l2ZSBsYXllciwgb3IgcHJp
bnRpbmcuCiAgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICAgICAgW3Zp
ZXcgZGlzcGxheVJlY3RJZ25vcmluZ09wYWNpdHk6W3ZpZXcgY29udmVydFJlY3Q6ciBmcm9tVmll
dzpbdmlldyBzdXBlcnZpZXddXV07CkBAIC0yMzgsMTAgKzIzNyw5IEBAIHZvaWQgV2lkZ2V0Ojpw
YWludChHcmFwaGljc0NvbnRleHQmIHAsIGNvbnN0IEludFJlY3QmIHIsIFNlY3VyaXR5T3JpZ2lu
UGFpbnRQb2xpCiAgICAgfQogCiAgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IHAucGxhdGZv
cm1Db250ZXh0KCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBBU1NFUlQoY2dDb250ZXh0ID09
IFtjdXJyZW50Q29udGV4dCBncmFwaGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBDR0NvbnRl
eHRTYXZlR1N0YXRlKGNnQ29udGV4dCk7CiAKICAgICBOU1JlY3Qgdmlld0ZyYW1lID0gW3ZpZXcg
ZnJhbWVdOwpAQCAtMjU1LDEwICsyNTMsOSBAQCB2b2lkIFdpZGdldDo6cGFpbnQoR3JhcGhpY3ND
b250ZXh0JiBwLCBjb25zdCBJbnRSZWN0JiByLCBTZWN1cml0eU9yaWdpblBhaW50UG9saQogCiAg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAgICAgTlNHcmFwaGljc0NvbnRleHQgKm5zQ29udGV4dCA9IFtOU0dyYXBoaWNz
Q29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmNnQ29udGV4dCBmbGlwcGVk
Ok5PXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFt2aWV3IGRpc3BsYXlSZWN0SWdub3JpbmdP
cGFjaXR5Olt2aWV3IGNvbnZlcnRSZWN0OnIgZnJvbVZpZXc6W3ZpZXcgc3VwZXJ2aWV3XV0gaW5D
b250ZXh0Om5zQ29udGV4dF07CiAgICAgfQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCmluZGV4IGI1MTMxOGM4MzRlMjU0YWE5
ZjcyMzY1ZWZlNjdmMzU0NjY4Y2U5YWUuLjA0NGJmYTg1ZjBjYWM0NjBjNzVjYjMzY2U3ZjZiNDdj
NGU1MjRmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCkBAIC0zNSwxMiAr
MzUsMTEgQEAKICNpbmNsdWRlICJMaWJXZWJSVENNYWNyb3MuaCIKICNpbmNsdWRlICJSZWFsdGlt
ZU1lZGlhU291cmNlLmgiCiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitBTExPV19VTlVTRURf
UEFSQU1FVEVSU19CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRjL2FwaS9tZWRpYXN0cmVhbWludGVy
ZmFjZS5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BBUkFN
RVRFUlNfRU5ECiAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNv
bWluZ1ZpZGVvU291cmNlLmgKaW5kZXggMWIwYmY5NGRmNWQ0YzkzZGVmODAyNGVmYTkxYTVlMTY1
YmY1ZDk2ZC4uMDY2ODBhYjNkN2YwYzljNWEwZjdhZjA3MWYxNjBjODkyZjdkMTBkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWlu
Z1ZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKQEAgLTM1LDEyICszNSwxMSBAQAogI2luY2x1
ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIK
IAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lO
CiAKICNpbmNsdWRlIDx3ZWJydGMvYXBpL21lZGlhc3RyZWFtaW50ZXJmYWNlLmg+CiAKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgcG9wCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKIAogI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2Uu
aAppbmRleCBlYTQ1N2Y3ZDUzMzUwYWZkMTg0NGVmM2NmNDMyMTFmODMzMjk1NmY0Li43YzBhOGZi
NjRhMTU1ZGQ0ODQ4YTlhNDNhZmIzNDc0ZjNjMTIzZjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5n
QXVkaW9Tb3VyY2UuaApAQCAtMzUsMTIgKzM1LDExIEBACiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1l
dGVyIgorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9h
cGkvbWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AK
K0FMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAogCiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVS
ZWZDb3VudGVkLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwCmluZGV4
IDE0YThlOTRiZDJiOGE4YjNlOGVhZWY3MDdjMTZjZGYwYzYwZTdiMTguLmFkNWY3ZTQzMjg2OTQx
ZDlmNTEwMmY2MmY5M2RkMDA4OGE3NWZiZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlLmNwcApAQCAtMzMsMTMgKzMzLDEyIEBACiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAK
LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgog
CiAjaW5jbHVkZSA8d2VicnRjL2FwaS92aWRlby9pNDIwX2J1ZmZlci5oPgogI2luY2x1ZGUgPHdl
YnJ0Yy9jb21tb25fdmlkZW8vbGlieXV2L2luY2x1ZGUvd2VicnRjX2xpYnl1di5oPgogCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAKICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZS5oCmluZGV4IDU0OGVhM2YwMWQ4MDdlODdjZTExZDMwZTZjYmNkYjcwMmY5MTU1ZTEuLjg1MDVm
ZGNhYzcyMWY0ODU3ZmM4ZmYxYTdhZDg3NmMwMzc4NDAxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZS5oCkBAIC0zNCwxMyArMzQsMTIgQEAKICNpbmNsdWRlICJNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgPFRpbWVyLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJh
bWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRj
L2FwaS9tZWRpYXN0cmVhbWludGVyZmFjZS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9jb21tb25fdmlk
ZW8vaW5jbHVkZS9pNDIwX2J1ZmZlcl9wb29sLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cG9wCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKIAogI2luY2x1ZGUgPHd0Zi9PcHRpb25h
bC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0F1
ZGlvTW9kdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDQXVkaW9Nb2R1bGUuaAppbmRleCA3OWU5OWQ3Y2UyMDZmODkyNTk2YmRkNGYz
ZDFjZWY3ZTVlYjM3ZGUwLi5hMTVmNDgzMGQ2OWJjY2QzM2IzNTIxNTM2NzI4OWQ2N2FhMDZhNThh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDQXVkaW9Nb2R1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDQXVkaW9Nb2R1bGUuaApAQCAtMjksMTQgKzI5
LDEzIEBACiAKICNpbmNsdWRlICJMaWJXZWJSVENNYWNyb3MuaCIKIAotI3ByYWdtYSBHQ0MgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBh
cmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAKICNpbmNsdWRlIDx3ZWJy
dGMvbW9kdWxlcy9hdWRpb19kZXZpY2UvaW5jbHVkZS9hdWRpb19kZXZpY2UuaD4KICNpbmNsdWRl
IDx3ZWJydGMvcnRjX2Jhc2UvbWVzc2FnZWhhbmRsZXIuaD4KICNpbmNsdWRlIDx3ZWJydGMvcnRj
X2Jhc2UvdGhyZWFkLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCitBTExPV19VTlVT
RURfUEFSQU1FVEVSU19FTkQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJv
dmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCAxYTE0NTNjODliN2MzMjM5ZmZmNWVhMWQyNWIz
ZDAwNWUzOTUxYzM4Li4zOTkyNWRmYmRhZDEyMzk2OTI5YmQxZWM4OGEzZmQ5YmEzZTgwYTU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTMxLDggKzMxLDcgQEAK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSA8ZGxmY24uaD4KIAotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2Vk
LXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAKICNpbmNsdWRlIDx3
ZWJydGMvYXBpL2F1ZGlvX2NvZGVjcy9idWlsdGluX2F1ZGlvX2RlY29kZXJfZmFjdG9yeS5oPgog
I2luY2x1ZGUgPHdlYnJ0Yy9hcGkvYXVkaW9fY29kZWNzL2J1aWx0aW5fYXVkaW9fZW5jb2Rlcl9m
YWN0b3J5Lmg+CkBAIC00Myw3ICs0Miw3IEBACiAjaW5jbHVkZSA8d2VicnRjL3BjL3BlZXJjb25u
ZWN0aW9uZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS9waHlzaWNhbHNvY2tl
dHNlcnZlci5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BB
UkFNRVRFUlNfRU5ECiAKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXgg
OGZjY2YyMmEwMDVmZDc5ODYwYzJjOTU4NjYzNzAzNjgxMzIzOGQ5Ni4uN2MyZjUxODc1ZmVmYTI1
YjMyN2U0ZTA0M2U0Yjc1M2ZkOWI3MmE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmgKQEAgLTM1LDE1ICszNSwxNCBAQAogCiAjaWYgVVNFKExJQldFQlJUQykKIAotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
dW51c2VkLXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAKICNpbmNs
dWRlIDx3ZWJydGMvYXBpL3BlZXJjb25uZWN0aW9uaW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8d2Vi
cnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlcl9mYWN0b3J5Lmg+CiAjaW5jbHVkZSA8
d2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lmg+CiAjaW5jbHVk
ZSA8d2VicnRjL3J0Y19iYXNlL3Njb3BlZF9yZWZfcHRyLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgcG9wCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKIAogbmFtZXNwYWNlIHJ0YyB7
CiBjbGFzcyBOZXR3b3JrTWFuYWdlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
VmlkZW9Tb3VyY2VDb2NvYS5tbQppbmRleCBiYmFjOGRhNWU0MzljOGEyMGEyOGRlY2Y1NzdkZWNk
NjYxOGU3YTQ3Li40OWNkYmRlODgwY2Q0MGVhNjgxMWIxOGUwMDVjZTk2ZTViNDU1ZGQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCkBAIC0z
NCwxMiArMzQsMTEgQEAKICNpbmNsdWRlICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKICNpbmNsdWRl
IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0
ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRjL3Nk
ay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmg+CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAogCiAjaW5jbHVkZSA8d3RmL2NmL1R5cGVD
YXN0c0NGLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
Q29jb2EuY3BwCmluZGV4IGJjOGFmMzllYzg4YmYxYmEzMjBhM2JmYjEwNjI3MTMxZmRiNDEwNjQu
Ljc5NWYyMmUzMWUyMzhmYmZiYjkxODliMGM0ODkwOWE4MDlmMzAyM2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcApAQCAtMzAsMTQgKzMw
LDEzIEBACiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1l
dGVyIgorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9h
cGkvdmlkZW8vaTQyMF9idWZmZXIuaD4KICNpbmNsdWRlIDx3ZWJydGMvY29tbW9uX3ZpZGVvL2xp
Ynl1di9pbmNsdWRlL3dlYnJ0Y19saWJ5dXYuaD4KICNpbmNsdWRlIDx3ZWJydGMvc2RrL1dlYktp
dC9XZWJLaXRVdGlsaXRpZXMuaD4KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxM
T1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29m
dExpbmsuaD4KICNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5l
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkNGTmV0LmNwcAppbmRleCA4MTE5ZmQ1ZTU1NmU2YzFkN2JmYzFmYmFiNGI1Yjg4OTEw
YzM5ZTVmLi5jOWQyOTY0NDIxZWJkZDhiNDY3NDA0NmRjYzRjNTAzYzdhZmI0OTk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbkNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcApAQCAtNjQsMTIgKzY0LDExIEBAIHN0YXRpYyBp
bmxpbmUgQ0ZUeXBlSUQgdHlwZUlEKCkgeyByZXR1cm4gQ2xhc3NOYW1lIyNHZXRUeXBlSUQoKTsg
fSBcCiB9OwogCiAjaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogI2VuZGlmCiBE
RUNMQVJFX0NGX1RZUEVfVFJBSVQoQ0ZIVFRQQ29va2llKTsKICNpZiBDT01QSUxFUihDTEFORykK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogI2VuZGlmCiAKICN1bmRlZiBERUNMQVJFX0NGX1RZUEVfVFJBSVQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5l
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxl
Q0ZOZXQuY3BwCmluZGV4IDA5NWEwYzRiN2Q4NGFjOWM5YWJhYzQ0YTFhNWY0NmU5ZWJjMDAwN2Eu
LjVjYmRhNWJkZDQ2NzI5ZGViYjZhYmYwNDRmZDE1ODY1YmNhZjE3N2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNG
TmV0LmNwcApAQCAtMTcxLDEyICsxNzEsMTEgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRl
Q0ZVUkxDb25uZWN0aW9uKGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wKICNl
bHNlCiAgICAgaWYgKGFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGVIb3N0cygpLmNvbnRhaW5zKGZp
cnN0UmVxdWVzdCgpLnVybCgpLmhvc3QoKS50b1N0cmluZygpKSkgewogICAgICAgICBzc2xQcm9w
cyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCAwLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZh
bHVlQ2FsbEJhY2tzKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIENGRGljdGlv
bmFyeUFkZFZhbHVlKHNzbFByb3BzLmdldCgpLCBrQ0ZTdHJlYW1TU0xBbGxvd3NBbnlSb290LCBr
Q0ZCb29sZWFuVHJ1ZSk7CiAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKHNzbFByb3BzLmdl
dCgpLCBrQ0ZTdHJlYW1TU0xBbGxvd3NFeHBpcmVkUm9vdHMsIGtDRkJvb2xlYW5UcnVlKTsKICAg
ICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoc3NsUHJvcHMuZ2V0KCksIGtDRlN0cmVhbVNTTEFs
bG93c0V4cGlyZWRDZXJ0aWZpY2F0ZXMsIGtDRkJvb2xlYW5UcnVlKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAjaWYgIVBMQVRGT1JNKFdJTikgLy8gPHJkYXI6Ly9wcm9ibGVtLzMzOTkzNDYyPiAtIERpc2Fi
bGluZyB2YWxpZGF0aW9uIG9mIGNlcnRpZmljYXRlIGNoYWluIGJyZWFrcyBTU0wgb24gV2luZG93
cy4KICAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoc3NsUHJvcHMuZ2V0KCksIGtDRlN0cmVh
bVNTTFZhbGlkYXRlc0NlcnRpZmljYXRlQ2hhaW4sIGtDRkJvb2xlYW5GYWxzZSk7CiAjZW5kaWYK
QEAgLTIzNCwxMCArMjMzLDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25u
ZWN0aW9uKGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wKICAgICBpZiAoc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpCiAgICAgICAgIGNsaWVudC5zaG91bGRVc2VDcmVkZW50
aWFsU3RvcmFnZSA9IDA7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGQtPm1fY29ubmVjdGlv
biA9IGFkb3B0Q0YoQ0ZVUkxDb25uZWN0aW9uQ3JlYXRlV2l0aFByb3BlcnRpZXMoMCwgcmVxdWVz
dC5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxDRlVSTENvbm5lY3Rpb25DbGllbnQqPigmY2xpZW50
KSwgcHJvcGVydGllc0RpY3Rpb25hcnkuZ2V0KCkpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogYm9vbCBS
ZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3Bw
CmluZGV4IDllZDVhYTBjOWQ5YmYxM2VlYTMxYTI5NTY4YTI0OTc1NzRlNTg2YzQuLjk2MzQ3OWQ2
NzIyMGJjYTk5ODA3YzJlZjRiNTA2MzdkY2ZlZjNjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRs
ZUltcGxDRk5ldC5jcHAKQEAgLTY2NiwxMCArNjY2LDcgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5k
bGVJbXBsOjpyZXBvcnRFcnJvclRvQ2xpZW50KENGRXJyb3JSZWYgZXJyb3IpCiAKICNpZiBQTEFU
Rk9STShNQUMpCiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKLSNlbmRpZgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAKICAgICBpZiAoQ0ZFcXVhbChDRkVycm9yR2V0RG9tYWluKGVycm9yKSwga0NGRXJyb3JE
b21haW5PU1N0YXR1cykpIHsKICAgICAgICAgY29uc3QgY2hhciogZGVzY3JpcHRpb25PU1N0YXR1
cyA9IEdldE1hY09TU3RhdHVzQ29tbWVudFN0cmluZyhzdGF0aWNfY2FzdDxPU1N0YXR1cz4oZXJy
b3JDb2RlKSk7CkBAIC02NzcsOSArNjc0LDcgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBs
OjpyZXBvcnRFcnJvclRvQ2xpZW50KENGRXJyb3JSZWYgZXJyb3IpCiAgICAgICAgICAgICBkZXNj
cmlwdGlvbiA9ICJPU1N0YXR1cyBFcnJvciAiICsgU3RyaW5nOjpudW1iZXIoZXJyb3JDb2RlKSAr
ICI6ICIgKyBkZXNjcmlwdGlvbk9TU3RhdHVzOwogICAgIH0KIAotI2lmIENPTVBJTEVSKENMQU5H
KQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NyZWF0ZS1odHRwLWhlYWRlci1uYW1lLXRhYmxlIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jcmVhdGUtaHR0cC1oZWFkZXItbmFtZS10YWJs
ZQppbmRleCBlYTJiNzQzMzY0ODNiMDUwNjM4NzEzZmQ1MTczYTZiMDliOGQ2MDcwLi5mNWJlYjYz
NzExMjljN2NhYWEzOWY1ZDk5OWU0ZDlhYzAzYjBiNmJmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NyZWF0ZS1odHRwLWhlYWRlci1uYW1lLXRhYmxlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3JlYXRlLWh0dHAtaGVhZGVyLW5hbWUt
dGFibGUKQEAgLTkwLDExICs5MCw3IEBAIGdwZXJmX2ZpbGUud3JpdGUoJycnCiAKICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKLSNpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJp
bXBsaWNpdC1mYWxsdGhyb3VnaCIpCiAKIC8vIE9sZGVyIHZlcnNpb25zIG9mIGdwZXJmIGxpa2Ug
dG8gdXNlIHRoZSBgcmVnaXN0ZXJgIGtleXdvcmQuCiAjZGVmaW5lIHJlZ2lzdGVyCkBAIC0xNzks
NyArMTc1LDcgQEAgU3RyaW5nVmlldyBodHRwSGVhZGVyTmFtZVN0cmluZyhIVFRQSGVhZGVyTmFt
ZSBoZWFkZXJOYW1lKQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjaWYgZGVmaW5lZChfX2Ns
YW5nX18pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfV0FSTklOR1NfRU5E
CiAjZW5kaWYKICcnJykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCBiOWZjMmEyZjE3Y2Q5NTc0MDA0
Y2JiOTc0OTlhYWJkMTE2NmUwNzNiLi5hZGU3Yjg1MjViOGM5NTJjMGZjZjllOGU5OWMyNzdmY2Vk
NDk5NGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9S
ZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtMjIwLDEwICsyMjAsOSBAQCB2b2lkIFJlc291
cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wgc2hvdWxk
VXNlQ3JlZGVudGlhbAogICAgIC8vIHdlYiBjb250ZW50IGZvciBwdXJwb3NlcyBvZiBBcHAgVHJh
bnNwb3J0IFNlY3VyaXR5LgogICAgIFtwcm9wZXJ0eURpY3Rpb25hcnkgc2V0T2JqZWN0OkB7QCJO
U0FsbG93c0FyYml0cmFyeUxvYWRzSW5XZWJDb250ZW50IjogQFlFU30gZm9yS2V5OkAiX2tDRlVS
TENvbm5lY3Rpb25Qcm9wZXJ0eUFUU0ZyYW1ld29ya092ZXJyaWRlcyJdOwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIGQtPm1fY29ubmVjdGlvbiA9IGFkb3B0TlMoW1tOU1VSTENvbm5lY3Rpb24gYWxs
b2NdIF9pbml0V2l0aFJlcXVlc3Q6bnNSZXF1ZXN0IGRlbGVnYXRlOmRlbGVnYXRlIHVzZXNDYWNo
ZTp1c2VzQ2FjaGUgbWF4Q29udGVudExlbmd0aDowIHN0YXJ0SW1tZWRpYXRlbHk6Tk8gY29ubmVj
dGlvblByb3BlcnRpZXM6cHJvcGVydHlEaWN0aW9uYXJ5XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogYm9vbCBS
ZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9U
ZXh0RW5jb2RpbmcuY3BwCmluZGV4IDQwMTNmMzdjZjdlMWQ3Zjc3MjhkOGMwMDdmZmE2ODE3MjZk
NWUwMWQuLjQwNWY5MzM5NGUxZTZlMjkxMzZhODA0NjBiODJjNzZmZDcwYTUwYWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAKQEAgLTY5LDEwICs2
OSw3IEBAIFN0cmluZyBUZXh0RW5jb2Rpbmc6OmRlY29kZShjb25zdCBjaGFyKiBkYXRhLCBzaXpl
X3QgbGVuZ3RoLCBib29sIHN0b3BPbkVycm9yLCBiCiAgICAgcmV0dXJuIG5ld1RleHRDb2RlYygq
dGhpcyktPmRlY29kZShkYXRhLCBsZW5ndGgsIHRydWUsIHN0b3BPbkVycm9yLCBzYXdFcnJvcik7
CiB9CiAKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSNlbmRpZgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIC8v
IE5PVEU6IElDVSdzIHVub3JtX3F1aWNrQ2hlY2sgYW5kIHVub3JtX25vcm1hbGl6ZSBmdW5jdGlv
bnMgYXJlIGRlcHJlY2F0ZWQuCiAKIFZlY3Rvcjx1aW50OF90PiBUZXh0RW5jb2Rpbmc6OmVuY29k
ZShTdHJpbmdWaWV3IHRleHQsIFVuZW5jb2RhYmxlSGFuZGxpbmcgaGFuZGxpbmcpIGNvbnN0CkBA
IC0xMTIsOSArMTA5LDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IFRleHRFbmNvZGluZzo6ZW5jb2RlKFN0
cmluZ1ZpZXcgdGV4dCwgVW5lbmNvZGFibGVIYW5kbGluZyBoYW5kbGkKICAgICByZXR1cm4gbmV3
VGV4dENvZGVjKCp0aGlzKS0+ZW5jb2RlKFN0cmluZ1ZpZXcgeyBzb3VyY2UsIHNvdXJjZUxlbmd0
aCB9LCBoYW5kbGluZyk7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21h
IEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIAogY29uc3QgY2hhciogVGV4dEVuY29kaW5nOjpkb21OYW1lKCkgY29uc3QKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bi5oCmluZGV4IDg0MDM1MzBlOTlkMjBiOGQ0OGJhOTQ3N2ZmMTc5ZGVmNmQ4ZTg5MjguLjE3NDA2
N2FkNWQ4NzU5MDE2NzA5YTVjNGYwMjZhMzEzNzk3YjU2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaApAQCAtMjgsMTMg
KzI4LDEyIEBACiAKICNpbmNsdWRlICJMaWJXZWJSVENNYWNyb3MuaCIKIAotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2Vk
LXBhcmFtZXRlciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAKICNpbmNsdWRlIDx3
ZWJydGMvYXBpL21lZGlhc3RyZWFtaW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS9w
ZWVyY29ubmVjdGlvbmludGVyZmFjZS5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAor
QUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoR3JhbW1hci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLmNwcAppbmRleCAzMWRmMWMwZDE1OGEy
NzhmNGMwOTZjYjJiYTkxMWYzZjdiMDFiOTQzLi41ZTA2OWQ3OTEwNzJiZjU3ZGRkNzNjNDNlNGUx
ZWE5MTY3MzFmNWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhHcmFtbWFyLmNwcApAQCAtMjE1NCwx
NSArMjE1NCwxMCBAQCB5eWVycm9ybGFiOgogICAvKiBQYWNpZnkgY29tcGlsZXJzIGxpa2UgR0ND
IHdoZW4gdGhlIHVzZXIgY29kZSBuZXZlciBpbnZva2VzCiAgICAgIFlZRVJST1IgYW5kIHRoZSBs
YWJlbCB5eWVycm9ybGFiIHRoZXJlZm9yZSBuZXZlciBhcHBlYXJzIGluIHVzZXIKICAgICAgY29k
ZS4gICovCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5yZWFjaGFibGUtY29kZSIK
LSNlbmRpZgorICBJR05PUkVfQ0xBTkdfV0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUi
KQogICBpZiAoLypDT05TVENPTkQqLyAwKQogICAgICBnb3RvIHl5ZXJyb3JsYWI7Ci0jaWYgQ09N
UElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgSUdO
T1JFX0NMQU5HX1dBUk5JTkdTX0VORAogCiAgIC8qIERvIG5vdCByZWNsYWltIHRoZSBzeW1ib2xz
IG9mIHRoZSBydWxlIHdoaWNoIGFjdGlvbiB0cmlnZ2VyZWQKICAgICAgdGhpcyBZWUVSUk9SLiAg
Ki8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IGMyZDQ1ZDY2YmQyNThlYjgzMmMyNTRmZWI4MzVh
YWRlNjcxM2U5NDUuLjk0ZjAyZDdiNGZiOGU4YWE1MjI4OTQxNDZkMGU5NTA2MDM4MWY3Y2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFU
YXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtMTE4LDEyICsxMTgsMTEgQEAgTlNIVFRQQ29va2llU3Rv
cmFnZSAqTmV0d29ya0RhdGFUYXNrQ29jb2E6OnN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UoKQogICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNIVFRQQ29va2llU3RvcmFnZT4+IHN0
YXRlbGVzc0Nvb2tpZVN0b3JhZ2U7CiAgICAgaWYgKCFzdGF0ZWxlc3NDb29raWVTdG9yYWdlLmdl
dCgpKSB7CiAjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA8IDEwMTMwMCkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub25udWxsIgorICAgICAgICBJR05PUkVfTlVMTF9D
SEVDS19XQVJOSU5HU19CRUdJTgogI2VuZGlmCiAgICAgICAgIHN0YXRlbGVzc0Nvb2tpZVN0b3Jh
Z2UuZ2V0KCkgPSBhZG9wdE5TKFtbTlNIVFRQQ29va2llU3RvcmFnZSBhbGxvY10gX2luaXRXaXRo
SWRlbnRpZmllcjpuaWwgcHJpdmF0ZTpZRVNdKTsKICNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMzAwKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgICAgICBJR05PUkVfTlVMTF9DSEVDS19XQVJOSU5HU19FTkQKICNlbmRp
ZgogICAgICAgICBzdGF0ZWxlc3NDb29raWVTdG9yYWdlLmdldCgpLmdldCgpLmNvb2tpZUFjY2Vw
dFBvbGljeSA9IE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3ND
b2NvYS5tbQppbmRleCBmZDc2NjRjZTYxMzBiZmM3OGM4NTYyOWZhZDk3Y2M0NzEzNjExNWMxLi5i
YjM3OWE0NTMyZTg4ODU3NGJjMzVhOGYwYmM5OWM2NmU4OTA5Y2ZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29h
Lm1tCkBAIC0yMjMsOCArMjIzLDcgQEAgc3RhdGljIHZvaWQgc2F2ZUNvb2tpZXMoTlNIVFRQQ29v
a2llU3RvcmFnZSAqY29va2llU3RvcmFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm8KIAogdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TeW5jQWxsQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRlcikgewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmls
ZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIAogI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApCiAgICAgUmVmUHRyPENhbGxiYWNrQWdncmVn
YXRvcj4gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RG
TW92ZShjb21wbGV0aW9uSGFuZGVyKSk7CkBAIC0yMzYsNyArMjM1LDcgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6cGxhdGZvcm1TeW5jQWxsQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGkKICAgICBjb21wbGV0aW9uSGFuZGVyKCk7CiAjZW5kaWYKIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVByZXBhcmVUb1N1c3BlbmQoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tIGIvU291
cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCmluZGV4IGMz
MTIwYmI1OWEwYTU0YjY5ODcwOTJmYWY1NjkyZDQyNDE1M2U2MTcuLjZlZTVkNDg3Y2Q5OGQxN2M3
OGNjMmU4YTIwOTAyZTg2MjkyNmNlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2lu
UHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsdWdp
blByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0KQEAgLTI2MCwxMyArMjYwLDEyIEBAIHN0
YXRpYyB1bnNpZ25lZCBtb2RhbENvdW50OwogCiBzdGF0aWMgdm9pZCBiZWdpbk1vZGFsKCkKIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIE1ha2Ugc3VyZSB0byBtYWtlIG91cnNlbHZlcyB0
aGUgZnJvbnQgcHJvY2VzcwogICAgIFByb2Nlc3NTZXJpYWxOdW1iZXIgcHNuOwogICAgIEdldEN1
cnJlbnRQcm9jZXNzKCZwc24pOwogICAgIFNldEZyb250UHJvY2VzcygmcHNuKTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIAogICAgIGlmICghbW9kYWxDb3VudCsrKQogICAgICAgICBzZXRNb2RhbCh0cnVlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1No
aW0ubW0gYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NTaGlt
Lm1tCmluZGV4IDQwMzZkM2I4NzQ0MDM2ODA3MmIyMGI3ODAyNjE3ZDE5ZTlkMWIwYTQuLjQ0NmM2
MjFiNjllNWM5MmNkYjEwMjgwMTMyNWZlMGI3ZTUxOTA3NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0KKysrIGIvU291cmNl
L1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hpbS5tbQpAQCAtNDgsOCAr
NDgsNyBAQCBzdGF0aWMgUGx1Z2luUHJvY2Vzc1NoaW1DYWxsYmFja3MgcGx1Z2luUHJvY2Vzc1No
aW1DYWxsYmFja3M7CiAKICNpZm5kZWYgX19MUDY0X18KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogc3Rh
dGljIHZvaWQgc2hpbURlYnVnZ2VyKHZvaWQpCiB7CkBAIC0xMzMsNyArMTMyLDcgQEAgRFlMRF9J
TlRFUlBPU0Uoc2hpbUhpZGVXaW5kb3csIEhpZGVXaW5kb3cpOwogRFlMRF9JTlRFUlBPU0Uoc2hp
bUxTT3BlbkNGVVJMUmVmLCBMU09wZW5DRlVSTFJlZik7CiBEWUxEX0lOVEVSUE9TRShzaGltTWFj
aFZNTWFwLCBtYWNoX3ZtX21hcCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVs
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1
Z2luTW9kdWxlLmNwcAppbmRleCA2MGY0MWViZGZmNjFjODYzNzdjYWZmMTdjYWViNTZhOTQ0NWVj
Nzc5Li5kYWQ4YjA5MmYzOTNlOGMxOTJiYTRhZmJlYzZlMzcxMGEwZTUzNDY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9k
dWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL05ldHNj
YXBlUGx1Z2luTW9kdWxlLmNwcApAQCAtMjQyLDggKzI0Miw3IEBAIGJvb2wgTmV0c2NhcGVQbHVn
aW5Nb2R1bGU6OnRyeUxvYWQoKQogI2lmIFBMVUdJTl9BUkNISVRFQ1RVUkUoTUFDKQogI2lmbmRl
ZiBOUF9OT19DQVJCT04KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKICAgICAvLyBQbHVnaW5zIChh
dCBsZWFzdCBRVCkgcmVxdWlyZSB0aGF0IHlvdSBjYWxsIFVzZVJlc0ZpbGUgb24gdGhlIHJlc291
cmNlIGZpbGUgYmVmb3JlIGxvYWRpbmcgaXQuCiAgICAgUmVzRmlsZVJlZk51bSBjdXJyZW50UmVz
b3VyY2VGaWxlID0gQ3VyUmVzRmlsZSgpOwpAQCAtMjU4LDcgKzI1Nyw3IEBAIGJvb2wgTmV0c2Nh
cGVQbHVnaW5Nb2R1bGU6OnRyeUxvYWQoKQogICAgIC8vIFJlc3RvcmUgdGhlIHJlc291cmNlIGZp
bGUuCiAgICAgVXNlUmVzRmlsZShjdXJyZW50UmVzb3VyY2VGaWxlKTsKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0NoaWxkUHJv
Y2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9DaGlsZFByb2Nlc3NJT1MubW0K
aW5kZXggOWJkZDcyZjgzZjQzMTNlNDYwYzVkY2UwYjM5ZWNkNWU1NTdiNzRjYS4uZThjMDkzODky
MjkwYzFhNTYyNDM0MTlhYjBjNDk2OTMyYzU3ZWJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9pb3MvQ2hpbGRQcm9jZXNzSU9TLm1tCkBAIC04MCwxMCArODAsOSBAQCB2b2lkIENoaWxkUHJv
Y2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzJgogICAgICAgICBpZiAoIXNhbmRib3hQcm9maWxlUGF0aC5pc0VtcHR5KCkpIHsK
ICAgICAgICAgICAgIENTdHJpbmcgcHJvZmlsZVBhdGggPSBGaWxlU3lzdGVtOjpmaWxlU3lzdGVt
UmVwcmVzZW50YXRpb24oc2FuZGJveFByb2ZpbGVQYXRoKTsKICAgICAgICAgICAgIGNoYXIqIGVy
cm9yQnVmOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAgIGlmIChzYW5k
Ym94X2luaXRfd2l0aF9wYXJhbWV0ZXJzKHByb2ZpbGVQYXRoLmRhdGEoKSwgU0FOREJPWF9OQU1F
RF9FWFRFUk5BTCwgc2FuZGJveFBhcmFtZXRlcnMubmFtZWRQYXJhbWV0ZXJBcnJheSgpLCAmZXJy
b3JCdWYpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICAgICAgV1RGTG9n
QWx3YXlzKCIlczogQ291bGRuJ3QgaW5pdGlhbGl6ZSBzYW5kYm94IHByb2ZpbGUgWyVzXSwgZXJy
b3IgJyVzJ1xuIiwgZ2V0cHJvZ25hbWUoKSwgcHJvZmlsZVBhdGguZGF0YSgpLCBlcnJvckJ1Zik7
CiAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gc2FuZGJveFBhcmFt
ZXRlcnMuY291bnQoKTsgaSAhPSBjb3VudDsgKytpKQogICAgICAgICAgICAgICAgICAgICBXVEZM
b2dBbHdheXMoIiVzPSVzXG4iLCBzYW5kYm94UGFyYW1ldGVycy5uYW1lKGkpLCBzYW5kYm94UGFy
YW1ldGVycy52YWx1ZShpKSk7CkBAIC05NSwxMCArOTQsOSBAQCB2b2lkIENoaWxkUHJvY2Vzczo6
aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzJgogICAgIH0KICAgICBjYXNlIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnM6OlVz
ZVNhbmRib3hQcm9maWxlOiB7CiAgICAgICAgIGNoYXIqIGVycm9yQnVmOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgICAgICBpZiAoc2FuZGJveF9pbml0X3dpdGhfcGFyYW1ldGVycyhzYW5k
Ym94UGFyYW1ldGVycy5zYW5kYm94UHJvZmlsZSgpLnV0ZjgoKS5kYXRhKCksIDAsIHNhbmRib3hQ
YXJhbWV0ZXJzLm5hbWVkUGFyYW1ldGVyQXJyYXkoKSwgJmVycm9yQnVmKSkgewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzOiBDb3VsZG4ndCBpbml0aWFs
aXplIHNhbmRib3ggcHJvZmlsZSwgZXJyb3IgJyVzJ1xuIiwgZ2V0cHJvZ25hbWUoKSwgZXJyb3JC
dWYpOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gc2FuZGJveFBhcmFt
ZXRlcnMuY291bnQoKTsgaSAhPSBjb3VudDsgKytpKQogICAgICAgICAgICAgICAgIFdURkxvZ0Fs
d2F5cygiJXM9JXNcbiIsIHNhbmRib3hQYXJhbWV0ZXJzLm5hbWUoaSksIHNhbmRib3hQYXJhbWV0
ZXJzLnZhbHVlKGkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGls
ZFByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFj
Lm1tCmluZGV4IDA0Mzg3MjY5YmM3NGY5NzUxYTUyZGNiYmQyMDliZjhhZTczM2MzZWEuLjIxZTNh
ZDQzMzNkN2M2YTg5OGQ2Zjg5ODE2MjkzNjI0Njc1NjI1NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQpAQCAtNTM0LDEwICs1MzQsOSBAQCBzdGF0aWMg
Ym9vbCBjb21waWxlQW5kQXBwbHlTYW5kYm94U2xvd0Nhc2UoY29uc3QgU3RyaW5nJiBwcm9maWxl
T3JQcm9maWxlUGF0aCwgYgogICAgIGNoYXIqIGVycm9yQnVmOwogICAgIENTdHJpbmcgdGVtcCA9
IGlzUHJvZmlsZVBhdGggPyBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocHJv
ZmlsZU9yUHJvZmlsZVBhdGgpIDogcHJvZmlsZU9yUHJvZmlsZVBhdGgudXRmOCgpOwogICAgIHVp
bnQ2NF90IGZsYWdzID0gaXNQcm9maWxlUGF0aCA/IFNBTkRCT1hfTkFNRURfRVhURVJOQUwgOiAw
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKHNhbmRib3hfaW5pdF93aXRoX3BhcmFtZXRl
cnModGVtcC5kYXRhKCksIGZsYWdzLCBwYXJhbWV0ZXJzLm5hbWVkUGFyYW1ldGVyQXJyYXkoKSwg
JmVycm9yQnVmKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgV1RGTG9nQWx3YXlzKCIlczog
Q291bGQgbm90IGluaXRpYWxpemUgc2FuZGJveCBwcm9maWxlIFslc10sIGVycm9yICclcydcbiIs
IGdldHByb2duYW1lKCksIHRlbXAuZGF0YSgpLCBlcnJvckJ1Zik7CiAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwLCBjb3VudCA9IHBhcmFtZXRlcnMuY291bnQoKTsgaSAhPSBjb3VudDsgKytpKQog
ICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIlcz0lc1xuIiwgcGFyYW1ldGVycy5uYW1lKGkpLCBw
YXJhbWV0ZXJzLnZhbHVlKGkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9Db2xvclNwYWNlRGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9Db2xvclNwYWNl
RGF0YS5tbQppbmRleCA2NWYyYjVhNmQ3ODM2MWY2YzQ1MDVkY2U5MTg1NjdhYzMxYWM4OGFjLi4z
OTFjOGRkZjU0NTZkNDRkMTAxMmQxZmY4YjNjY2MxNDExMWY3MjMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEubW0KKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLm1tCkBAIC04MywxMCArODMsOSBAQCBib29sIENv
bG9yU3BhY2VEYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBDb2xvclNwYWNlRGF0
YSYgY29sb3JTcGFjZURhdAogICAgICAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIGRhdGEp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgICAgIGNvbG9yU3BhY2VEYXRhLmNnQ29sb3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNl
Q3JlYXRlV2l0aElDQ1Byb2ZpbGUoZGF0YS5nZXQoKSkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9T
YW5kYm94RXh0ZW5zaW9uTWFjLm1tCmluZGV4IGM1NGVjNTRlOGUwNDJhNzkyYTE4YzI4ZWIzNDMy
Y2FlNDhkODEzZmMuLjg5NjE4ODRmY2M3MmVhOTYxYmNjMTJiMzcwMTA4MTFkZjhmNTUwZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCkBA
IC04NSwxMiArODUsMTEgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIHN3aXRjaCAodHlwZSkg
ewogICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRPbmx5OgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lv
bl9pc3N1ZV9maWxlKEFQUF9TQU5EQk9YX1JFQUQsIHBhdGgsIDApOwogICAgICAgICBjYXNlIFNh
bmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRXcml0ZToKICAgICAgICAgICAgIHJldHVybiBzYW5k
Ym94X2V4dGVuc2lvbl9pc3N1ZV9maWxlKEFQUF9TQU5EQk9YX1JFQURfV1JJVEUsIHBhdGgsIDAp
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIGNhc2UgU2FuZGJveEV4dGVuc2lvbjo6VHlw
ZTo6R2VuZXJpYzoKICAgICAgICAgICAgIHJldHVybiBzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9n
ZW5lcmljKHBhdGgsIDApOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA3MjE3ZDhhYmU0MGVhYWI5MWZkNTQ3ZjJmYTg5
ZDQwMTViZGY1ZmZkLi4wYzA0YWQ5ZDA2MGU0MDUxMzM5MzQyNGZmNGZhMjg4Y2Q3NDdiYWQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAg
LTQwMzIsMTAgKzQwMzIsOSBAQCBXRUJDT1JFX0NPTU1BTkQoeWFua0FuZFNlbGVjdCkKIAogLSAo
aWQpX3dlYl9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTooTlNTdHJpbmcgKilhdHRy
aWJ1dGUKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBbc3VwZXIgYWNjZXNzaWJp
bGl0eUF0dHJpYnV0ZVZhbHVlOmF0dHJpYnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKHZvaWQp
X3dlYl9zdXBlckRvQ29tbWFuZEJ5U2VsZWN0b3I6KFNFTClzZWxlY3RvcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24u
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJh
dGlvbi5tbQppbmRleCAyZDg1M2M3NjliMjA4ZDMzZDJhYzgyZjNjMWJiZjIwNDljYWMwYTUyLi4z
MWYyYTkzNmQ5YWY5MWY5ZTBiZmI5NjZlYTBiZmFkZmM5OTg5MDVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJh
dGlvbi5tbQpAQCAtNDk4LDggKzQ5OCw3IEBAIHN0YXRpYyBOU1N0cmluZyAqZGVmYXVsdEFwcGxp
Y2F0aW9uTmFtZUZvclVzZXJBZ2VudCgpCiAgICAgcmV0dXJuIGhhbmRsZXIgPyBzdGF0aWNfY2Fz
dDxXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYSo+KGhhbmRsZXIuZ2V0KCkpLT5hcGlI
YW5kbGVyKCkgOiBuaWw7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
K0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIC0gKF9XS1dlYnNpdGVEYXRh
U3RvcmUgKilfd2Vic2l0ZURhdGFTdG9yZQogewpAQCAtNTExLDcgKzUxMCw3IEBAIHN0YXRpYyBO
U1N0cmluZyAqZGVmYXVsdEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCgpCiAgICAgc2VsZi53
ZWJzaXRlRGF0YVN0b3JlID0gd2Vic2l0ZURhdGFTdG9yZSA/IHdlYnNpdGVEYXRhU3RvcmUtPl9k
YXRhU3RvcmUuZ2V0KCkgOiBudWxscHRyOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogI2lmIFBMQVRGT1JNKElP
UykKIC0gKFdLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5ICopX2NvbnRlbnRQcm92aWRl
clJlZ2lzdHJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGQ1NjIxYjAwNGU1ZDA3NzI4MWZkNTBmOTQ5
YmZmYTJiY2UzZTc4MjQuLmJhNGJmM2ExZmQ2YWZiZDljMmFiODFkNWNiZGRiZGMxZTMwYTU4MzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRl
RGF0YVN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tX
ZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC00MCw4ICs0MCw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhO
U1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVR5cGVzKSB7CiAgICAgX1dLV2Vic2l0ZURhdGFUeXBl
V2ViU1FMRGF0YWJhc2VzID0gMSA8PCA1LAogfTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogQGltcGxl
bWVudGF0aW9uIF9XS1dlYnNpdGVEYXRhU3RvcmUKIApAQCAtMTA3LDYgKzEwNiw2IEBAIHN0YXRp
YyBSZXRhaW5QdHI8TlNTZXQ+IHRvV0tXZWJzaXRlRGF0YVR5cGVzKF9XS1dlYnNpdGVEYXRhVHlw
ZXMgd2Vic2l0ZURhdGFUeXBlCiAKIEBlbmQKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCBl
Njg3MzExNTI1ZjI0MTRlMDRiNTgwNTc1YTA3ZDNkM2RlYTM1M2FhLi4zMmRkZGRmNzdhMTViMjFk
OTliZjllNTlhNWVhNzlkMTgzZDM2NGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMjA4Miw4ICsyMDgyLDcgQEAgdm9p
ZCB3ZWJraXRXZWJWaWV3UnVuQXNNb2RhbChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogCiAjaWYg
UExBVEZPUk0oR1RLKQogLy8gVGhpcyBpcyB0byBzdXBwcmVzcyB3YXJuaW5ncyBhYm91dCBnZGtf
dGhyZWFkc19sZWF2ZSBhbmQgZ2RrX3RocmVhZHNfZW50ZXIuCi0jcHJhZ21hIEdDQyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IGdka190aHJlYWRzX2xlYXZlKCk7CiAjZW5kaWYKIApAQCAtMjA5MSw3ICsyMDkwLDcgQEAgdm9p
ZCB3ZWJraXRXZWJWaWV3UnVuQXNNb2RhbChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogCiAjaWYg
UExBVEZPUk0oR1RLKQogICAgIGdka190aHJlYWRzX2VudGVyKCk7Ci0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogI2VuZGlm
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggZmU4
ZDljYTVmNGM1ZWFjNjFkM2MxMGQ2MGI5ZTk0ODY2YTJlMGJmNS4uN2RhMGM3ZWFhZDgxZTY3NDIw
YzdkN2IzMTUxZWZjMWMxMDRiYTEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW0KQEAgLTk3NSwxMCArOTc1LDkgQEAgU29tZSBvdGhlciBlZGl0aW5nLXJlbGF0
ZWQgbWV0aG9kcyBzdGlsbCB1bmltcGxlbWVudGVkOgogCiAtIChpZClfd2ViX3N1cGVyQWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOihOU1N0cmluZyAqKWF0dHJpYnV0ZQogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgcmV0dXJuIFtzdXBlciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6
YXR0cmlidXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogLSAodm9pZClfd2ViX3N1cGVyRG9Db21tYW5k
QnlTZWxlY3RvcjooU0VMKXNlbGVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Eb3dubG9hZENsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL0Rvd25sb2FkQ2xpZW50Lm1tCmluZGV4IDBlYjFjZjY0MDMyODY4NjFhYTQyNzRkZmM3NDQ4
NDNmMGJkMDBhNmEuLjcyNDM0NDg3ZDQyMWNiZTFmOWJhMmVhNmNiYWNkMThkMzI4ODU1ZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0Rvd25sb2FkQ2xpZW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0Rvd25sb2FkQ2xpZW50Lm1tCkBA
IC0yMDIsMTAgKzIwMiw5IEBAIHZvaWQgRG93bmxvYWRDbGllbnQ6OmRlY2lkZURlc3RpbmF0aW9u
V2l0aFN1Z2dlc3RlZEZpbGVuYW1lKFdlYlByb2Nlc3NQb29sJiwgRG93CiAKICAgICBpZiAobV9k
ZWxlZ2F0ZU1ldGhvZHMuZG93bmxvYWREZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxl
bmFtZUFsbG93T3ZlcndyaXRlKSB7CiAgICAgICAgIEJPT0wgYWxsb3dPdmVyd3JpdGUgPSBOTzsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgTlNTdHJpbmcgKmRlc3RpbmF0aW9uID0g
W21fZGVsZWdhdGUgX2Rvd25sb2FkOndyYXBwZXIoZG93bmxvYWRQcm94eSkgZGVjaWRlRGVzdGlu
YXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWU6ZmlsZW5hbWUgYWxsb3dPdmVyd3JpdGU6JmFsbG93
T3ZlcndyaXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGFs
bG93T3ZlcndyaXRlID8gQWxsb3dPdmVyd3JpdGU6OlllcyA6IEFsbG93T3ZlcndyaXRlOjpObywg
ZGVzdGluYXRpb24pOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFttX2RlbGVnYXRlIF9kb3dubG9h
ZDp3cmFwcGVyKGRvd25sb2FkUHJveHkpIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZp
bGVuYW1lOmZpbGVuYW1lIGNvbXBsZXRpb25IYW5kbGVyOkJsb2NrUHRyPHZvaWQoQk9PTCwgTlNT
dHJpbmcgKik+Ojpmcm9tQ2FsbGFibGUoW2NoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxD
aGVja2VyOjpjcmVhdGUobV9kZWxlZ2F0ZS5nZXQoKS5nZXQoKSwgQHNlbGVjdG9yKF9kb3dubG9h
ZDpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZTpjb21wbGV0aW9uSGFuZGxl
cjopKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKEJP
T0wgYWxsb3dPdmVyd3JpdGUsIE5TU3RyaW5nICpkZXN0aW5hdGlvbikgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
Q2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTGVnYWN5Q3VzdG9tUHJv
dG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCmluZGV4IDE5YTU5YjQyY2FiN2I1NDdlZDk0NDYwZTcyZmMw
Mzk2Y2ZlNzkyODcuLjZjMTI1Mzk2NTUwN2U1Yzk1MmNjMjc4MzEyZTAwZDhjMzU0NDcxODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3Rv
Y29sTWFuYWdlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9M
ZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0KQEAgLTU2LDEyICs1NiwxMSBAQAog
ICAgIF9jdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eSA9IGN1c3RvbVByb3RvY29sTWFuYWdlclBy
b3h5OwogICAgIF9jdXN0b21Qcm90b2NvbElEID0gY3VzdG9tUHJvdG9jb2xJRDsKICAgICBfc3Rv
cmFnZVBvbGljeSA9IE5TVVJMQ2FjaGVTdG9yYWdlTm90QWxsb3dlZDsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIF91cmxDb25uZWN0aW9uID0gW1tOU1VSTENvbm5lY3Rpb24gYWxsb2NdIGluaXRX
aXRoUmVxdWVzdDpyZXF1ZXN0IGRlbGVnYXRlOnNlbGYgc3RhcnRJbW1lZGlhdGVseTpOT107CiAg
ICAgW191cmxDb25uZWN0aW9uIHNjaGVkdWxlSW5SdW5Mb29wOltOU1J1bkxvb3AgbWFpblJ1bkxv
b3BdIGZvck1vZGU6TlNSdW5Mb29wQ29tbW9uTW9kZXNdOwogICAgIFtfdXJsQ29ubmVjdGlvbiBz
dGFydF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICByZXR1cm4gc2VsZjsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCBkYTYxMDYxNzNk
MWQ1OWZlNzRmODhkOTI4NDhjZDc2YTExZTg0YTIxLi43M2M0NmM1ZThkOGFhZWI2OGEyMGJmMTQ5
YmFiMjBmZWI2NzQzNDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
TmF2aWdhdGlvblN0YXRlLm1tCkBAIC01NzUsMTAgKzU3NSw5IEBAIHZvaWQgTmF2aWdhdGlvblN0
YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdl
YlBhZ2VQCiAgICAgICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Vc2VySW5mb0Rl
Y2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcykKICAgICAgICAgICAgIFsoaWQgPFdLTmF2aWdh
dGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdh
dGlvblN0YXRlLm1fd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndyYXBw
ZXIobmF2aWdhdGlvbkFjdGlvbikgdXNlckluZm86dXNlckluZm8gPyBzdGF0aWNfY2FzdDxpZCA8
TlNTZWN1cmVDb2Rpbmc+Pih1c2VySW5mby0+d3JhcHBlcigpKSA6IG5pbCBkZWNpc2lvbkhhbmRs
ZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKICAgICAgICAgZWxzZSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgICAgICAgICAgWyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2
YXRlPiluYXZpZ2F0aW9uRGVsZWdhdGUgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJW
aWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246d3JhcHBlcihuYXZpZ2F0aW9uQWN0
aW9uKSBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgYXV0byBkZWNpc2lvbkhh
bmRsZXJXaXRob3V0UG9saWNpZXMgPSBbZGVjaXNpb25IYW5kbGVyV2l0aFBvbGljaWVzID0gV1RG
TW92ZShkZWNpc2lvbkhhbmRsZXJXaXRoUG9saWNpZXMpXSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5IGFjdGlvblBvbGljeSkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBmMGI5ZDMwMDBhOWU2NTQ1YWRiMGIxMjQ1MzFmNTcwZTQ4
MjI1OWI0Li4zZWNlODIwZWQ0YjMxNjQzNjkzZjUyMjQ3ZWRhZDljNjhiODFmZjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTIwMywxMyArMjAz
LDEyIEBAIHZvaWQgVUlEZWxlZ2F0ZTo6Q29udGV4dE1lbnVDbGllbnQ6Om1lbnVGcm9tUHJvcG9z
ZWRNZW51KFdlYlBhZ2VQcm94eSYsIE5TTWVudSAqCiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAobV91aURlbGVnYXRlLm1fZGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdDb250ZXh0TWVudUZvckVsZW1lbnQpCiAgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmll
dzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNvbnRleHRNZW51Om1lbnUgZm9yRWxlbWVudDpjb250
ZXh0TWVudUVsZW1lbnRJbmZvLmdldCgpXSk7CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihbKGlk
IDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93
ZWJWaWV3IGNvbnRleHRNZW51Om1lbnUgZm9yRWxlbWVudDpjb250ZXh0TWVudUVsZW1lbnRJbmZv
LmdldCgpIHVzZXJJbmZvOnVzZXJJbmZvID8gc3RhdGljX2Nhc3Q8aWQgPE5TU2VjdXJlQ29kaW5n
Pj4odXNlckluZm8tPndyYXBwZXIoKSkgOiBuaWxdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xD
b2NvYS5tbQppbmRleCBkMTZmNTg1MmRkZjg0YTRkNTkyYjlmMzNlNzhlYjMyZGE5MjBiMTAzLi40
ZTVhZTMxNzNhOTUxY2ZmMzkwYTE5NzYxMTBmNDBlYjRiMTkyYzM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTE2
NiwxMSArMTY2LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtUmVzb2x2ZVBhdGhz
Rm9yU2FuZGJveEV4dGVuc2lvbnMoKQogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQogewogI2lmIFBMQVRGT1JNKE1BQykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEFTU0VSVCho
YXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11bmljYXRlV2l0aFdp
bmRvd1NlcnZlcikpOwogICAgIHBhcmFtZXRlcnMuYWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlcklu
dGVyZmFjZUVuYWJsZWQgPSBbW05TQXBwIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFY
RW5oYW5jZWRVc2VySW50ZXJmYWNlIl0gYm9vbFZhbHVlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbHNlCiAg
ICAgcGFyYW1ldGVycy5hY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCA9
IGZhbHNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tCmluZGV4IDFhZjRhZGRmMWQ3YzQ3YTcxMjg2MjlhZWUzNjE4ZGQ5ODE3NzBiYjQuLjA1
MGFmMjRiNjQ0NjE2ZTIzZmIzNzdhODFlNjJjMGJiOTUyMDk0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC01NTgsMTUgKzU1OCwxNCBAQCBz
dGF0aWMgY29uc3QgTlNVSW50ZWdlciBvcmRlcmVkTGlzdFNlZ21lbnQgPSAyOwogICAgIFtpbnNl
cnRMaXN0Q29udHJvbCBzZXRXaWR0aDpsaXN0Q29udHJvbFNlZ21lbnRXaWR0aCBmb3JTZWdtZW50
Om9yZGVyZWRMaXN0U2VnbWVudF07CiAgICAgaW5zZXJ0TGlzdENvbnRyb2wuZm9udCA9IFtOU0Zv
bnQgc3lzdGVtRm9udE9mU2l6ZToxNV07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlkIHNl
Z21lbnRFbGVtZW50ID0gTlNBY2Nlc3NpYmlsaXR5VW5pZ25vcmVkRGVzY2VuZGFudChpbnNlcnRM
aXN0Q29udHJvbCk7CiAgICAgTlNBcnJheSAqc2VnbWVudHMgPSBbc2VnbWVudEVsZW1lbnQgYWNj
ZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRl
XTsKICAgICBBU1NFUlQoc2VnbWVudHMuY291bnQgPT0gMyk7CiAgICAgW3NlZ21lbnRzW25vTGlz
dFNlZ21lbnRdIGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVlOldlYkNvcmU6Omluc2VydExp
c3RUeXBlTm9uZSgpIGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0dHJp
YnV0ZV07CiAgICAgW3NlZ21lbnRzW3Vub3JkZXJlZExpc3RTZWdtZW50XSBhY2Nlc3NpYmlsaXR5
U2V0T3ZlcnJpZGVWYWx1ZTpXZWJDb3JlOjppbnNlcnRMaXN0VHlwZUJ1bGxldGVkQWNjZXNzaWJp
bGl0eVRpdGxlKCkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uQXR0cmli
dXRlXTsKICAgICBbc2VnbWVudHNbb3JkZXJlZExpc3RTZWdtZW50XSBhY2Nlc3NpYmlsaXR5U2V0
T3ZlcnJpZGVWYWx1ZTpXZWJDb3JlOjppbnNlcnRMaXN0VHlwZU51bWJlcmVkQWNjZXNzaWJpbGl0
eVRpdGxlKCkgZm9yQXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uQXR0cmlidXRl
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIAogICAgIHNlbGYudmlldyA9IGluc2VydExpc3RDb250cm9sOwogCkBA
IC0xNjU1LDExICsxNjU0LDEwIEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVdpbmRvd0FuZFZp
ZXdGcmFtZXMoKQogICAgICAgICBpZiAod2Vha1RoaXMtPm1fbmVlZHNWaWV3RnJhbWVJbldpbmRv
d0Nvb3JkaW5hdGVzKQogICAgICAgICAgICAgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9
IFt3ZWFrVGhpcy0+bV92aWV3IGNvbnZlcnRSZWN0Olt3ZWFrVGhpcy0+bV92aWV3IGZyYW1lXSB0
b1ZpZXc6bmlsXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgaWYgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgICAg
ICBhY2Nlc3NpYmlsaXR5UG9zaXRpb24gPSBbW3dlYWtUaGlzLT5tX3ZpZXcgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVBvc2l0aW9uQXR0cmlidXRlXSBwb2ludFZh
bHVlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAKICAgICAgICAgd2Vha1RoaXMtPm1f
cGFnZS0+d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQodmlld0ZyYW1lSW5XaW5kb3dDb29yZGlu
YXRlcywgYWNjZXNzaWJpbGl0eVBvc2l0aW9uKTsKICAgICB9KTsKQEAgLTM3NDUsMTAgKzM3NDMs
OSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkcmFnZ2VkSW1hZ2UoTlNJbWFnZSAqLCBDR1BvaW50IGVu
ZFBvaW50LCBOU0RyYWdPcGVyYXRpb24gb3BlcgogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZW5kRHJh
Z0VuZFRvUGFnZShDR1BvaW50IGVuZFBvaW50LCBOU0RyYWdPcGVyYXRpb24gb3BlcmF0aW9uKQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNQb2ludCB3aW5kb3dJbWFnZUxvYyA9IFtbbV92
aWV3IHdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpOU1BvaW50RnJvbUNHUG9pbnQoZW5kUG9p
bnQpXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICBOU1BvaW50IHdpbmRvd01vdXNlTG9jID0gd2luZG93SW1h
Z2VMb2M7CiAKICAgICAvLyBQcmV2ZW50IHF1ZXVlZCBtb3VzZURyYWdnZWQgZXZlbnRzIGZyb20g
Y29taW5nIGFmdGVyIHRoZSBkcmFnIGFuZCBmYWtlIG1vdXNlVXAgZXZlbnQuCkBAIC00MDI2LDEw
ICs0MDIzLDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c3RhcnREcmFnKGNvbnN0IFdlYkNvcmU6OkRy
YWdJdGVtJiBpdGVtLCBjb25zdCBTaGFyZWFibGVCaXRtYXAKICAgICAvLyBUaGUgY2FsbCBiZWxv
dyBjb3VsZCByZWxlYXNlIHRoZSB2aWV3LgogICAgIGF1dG8gcHJvdGVjdG9yID0gbV92aWV3Lmdl
dCgpOwogICAgIGF1dG8gY2xpZW50RHJhZ0xvY2F0aW9uID0gaXRlbS5kcmFnTG9jYXRpb25Jbldp
bmRvd0Nvb3JkaW5hdGVzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNQYXN0ZWJvYXJkICpw
YXN0ZWJvYXJkID0gW05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6TlNEcmFnUGJvYXJk
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIAogICAgIGlmIChhdXRvJiBpbmZvID0gaXRlbS5wcm9taXNlZEF0dGFj
aG1lbnRJbmZvKSB7CiAgICAgICAgIE5TU3RyaW5nICp1dGlUeXBlID0gaW5mby5jb250ZW50VHlw
ZTsKQEAgLTQwNTgsMTAgKzQwNTQsOSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzdGFydERyYWcoY29u
c3QgV2ViQ29yZTo6RHJhZ0l0ZW0mIGl0ZW0sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcAogICAgIH0K
IAogICAgIFtwYXN0ZWJvYXJkIHNldFN0cmluZzpAIiIgZm9yVHlwZTpQYXN0ZWJvYXJkVHlwZXM6
OldlYkR1bW15UGJvYXJkVHlwZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbbV92aWV3IGRy
YWdJbWFnZTpkcmFnTlNJbWFnZS5nZXQoKSBhdDpOU1BvaW50RnJvbUNHUG9pbnQoY2xpZW50RHJh
Z0xvY2F0aW9uKSBvZmZzZXQ6TlNaZXJvU2l6ZSBldmVudDptX2xhc3RNb3VzZURvd25FdmVudC5n
ZXQoKSBwYXN0ZWJvYXJkOnBhc3RlYm9hcmQgc291cmNlOm1fdmlldy5nZXRBdXRvcmVsZWFzZWQo
KSBzbGlkZUJhY2s6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBtX3BhZ2UtPmRpZFN0YXJ0RHJhZygp
OwogfQogCkBAIC00ODA3LDExICs0ODAyLDEwIEBAIHZvaWQgV2ViVmlld0ltcGw6OmNoYXJhY3Rl
ckluZGV4Rm9yUG9pbnQoTlNQb2ludCBwb2ludCwgdm9pZCheY29tcGxldGlvbkhhbmRsZXJQCiAK
ICAgICBOU1dpbmRvdyAqd2luZG93ID0gW21fdmlldyB3aW5kb3ddOwogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICBpZiAod2luZG93KQogICAgICAgICBwb2ludCA9IFt3aW5kb3cgY29udmVydFNj
cmVlblRvQmFzZTpwb2ludF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgcG9pbnQgPSBbbV92aWV3IGNvbnZl
cnRQb2ludDpwb2ludCBmcm9tVmlldzpuaWxdOyAgLy8gdGhlIHBvaW50IGlzIHJlbGF0aXZlIHRv
IHRoZSBtYWluIGZyYW1lCiAKICAgICBtX3BhZ2UtPmNoYXJhY3RlckluZGV4Rm9yUG9pbnRBc3lu
YyhXZWJDb3JlOjpJbnRQb2ludChwb2ludCksIFtjb21wbGV0aW9uSGFuZGxlcl0odWludDY0X3Qg
cmVzdWx0LCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQ
cm94eU1hYy5tbQppbmRleCBkNDM1ZTFmMzQwY2JlMjRjN2VkYTliNzRhMjcyYjI0ZmRkMzEzZGRk
Li5lZjg2Mzg1MzYzMTNkZmQ0ZDQ4NzU5MmQwNjgwYmZlOTljMTFkNWQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vz
c1Byb3h5TWFjLm1tCkBAIC05NCwxMCArOTQsOSBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6
cGxhdGZvcm1Jbml0aWFsaXplUGx1Z2luUHJvY2VzcyhQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYQog
Ym9vbCBQbHVnaW5Qcm9jZXNzUHJveHk6OmdldFBsdWdpblByb2Nlc3NTZXJpYWxOdW1iZXIoUHJv
Y2Vzc1NlcmlhbE51bWJlciYgcGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJlcikKIHsKICAgICBwaWRf
dCBwbHVnaW5Qcm9jZXNzUElEID0gcHJvY2Vzc0lkZW50aWZpZXIoKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIHJldHVybiBHZXRQcm9jZXNzRm9yUElEKHBsdWdpblByb2Nlc3NQSUQsICZwbHVn
aW5Qcm9jZXNzU2VyaWFsTnVtYmVyKSA9PSBub0VycjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogdm9pZCBQ
bHVnaW5Qcm9jZXNzUHJveHk6Om1ha2VQbHVnaW5Qcm9jZXNzVGhlRnJvbnRQcm9jZXNzKCkKQEAg
LTEwNiwyMCArMTA1LDE4IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjptYWtlUGx1Z2luUHJv
Y2Vzc1RoZUZyb250UHJvY2VzcygpCiAgICAgaWYgKCFnZXRQbHVnaW5Qcm9jZXNzU2VyaWFsTnVt
YmVyKHBsdWdpblByb2Nlc3NTZXJpYWxOdW1iZXIpKQogICAgICAgICByZXR1cm47CiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgIFNldEZyb250UHJvY2VzcygmcGx1Z2luUHJvY2Vzc1NlcmlhbE51
bWJlcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjptYWtlVUlQ
cm9jZXNzVGhlRnJvbnRQcm9jZXNzKCkKIHsKICAgICBQcm9jZXNzU2VyaWFsTnVtYmVyIHByb2Nl
c3NTZXJpYWxOdW1iZXI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBHZXRDdXJyZW50UHJvY2Vz
cygmcHJvY2Vzc1NlcmlhbE51bWJlcik7CiAgICAgU2V0RnJvbnRQcm9jZXNzKCZwcm9jZXNzU2Vy
aWFsTnVtYmVyKTsgICAgICAgICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogdm9pZCBQbHVnaW5Qcm9j
ZXNzUHJveHk6OnNldEZ1bGxzY3JlZW5XaW5kb3dJc1Nob3dpbmcoYm9vbCBmdWxsc2NyZWVuV2lu
ZG93SXNTaG93aW5nKQpAQCAtMTUyLDEwICsxNDksOSBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94
eTo6ZXhpdEZ1bGxzY3JlZW4oKQogewogICAgIC8vIElmIHRoZSBwbHVnLWluIGhvc3QgaXMgdGhl
IGN1cnJlbnQgYXBwbGljYXRpb24gdGhlbiB3ZSBzaG91bGQgYnJpbmcgb3Vyc2VsdmVzIHRvIHRo
ZSBmcm9udCB3aGVuIGl0IGV4aXRzIGZ1bGwtc2NyZWVuIG1vZGUuCiAgICAgUHJvY2Vzc1Nlcmlh
bE51bWJlciBmcm9udFByb2Nlc3NTZXJpYWxOdW1iZXI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICBHZXRGcm9udFByb2Nlc3MoJmZyb250UHJvY2Vzc1NlcmlhbE51bWJlcik7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAKICAgICAvLyBUaGUgVUkgcHJvY2VzcyBtdXN0IGJlIHRoZSBmcm9udCBwcm9jZXNzIGluIG9y
ZGVyIHRvIGNoYW5nZSB0aGUgcHJlc2VudGF0aW9uIG1vZGUuCiAgICAgbWFrZVVJUHJvY2Vzc1Ro
ZUZyb250UHJvY2VzcygpOwpAQCAtMTY4LDE1ICsxNjQsMTMgQEAgdm9pZCBQbHVnaW5Qcm9jZXNz
UHJveHk6OmV4aXRGdWxsc2NyZWVuKCkKICAgICAvLyBJZiB0aGUgcGx1Zy1pbiBwcm9jZXNzIHdh
cyBub3QgdGhlIGZyb250IHByb2Nlc3MsIHN3aXRjaCBiYWNrIHRvIHRoZSBwcmV2aW91cyBmcm9u
dCBwcm9jZXNzLgogICAgIC8vIChPdGhlcndpc2Ugd2UnbGwga2VlcCB0aGUgVUkgcHJvY2VzcyBh
cyB0aGUgZnJvbnQgcHJvY2VzcykuCiAgICAgQm9vbGVhbiBpc1BsdWdpblByb2Nlc3NGcm9udFBy
b2Nlc3M7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBTYW1lUHJvY2VzcygmZnJvbnRQcm9jZXNz
U2VyaWFsTnVtYmVyLCAmcGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJlciwgJmlzUGx1Z2luUHJvY2Vz
c0Zyb250UHJvY2Vzcyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgaWYgKCFpc1BsdWdpblByb2Nlc3NGcm9u
dFByb2Nlc3MpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgU2V0RnJvbnRQcm9j
ZXNzKCZmcm9udFByb2Nlc3NTZXJpYWxOdW1iZXIpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9TbWFydE1hZ25pZmlj
YXRpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1NtYXJ0TWFn
bmlmaWNhdGlvbkNvbnRyb2xsZXIubW0KaW5kZXggYjM2MmQ1N2I5YzQzYTg1ZjM2NmUzM2I2YTdk
NDkyOTlmNmE5ZDRmMy4uMjM1YWE1Yjk3MmJmMjE5NWUzYTYxMDJlMmU3YWRlMzg0ZmEzZDg4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlv
bkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1NtYXJ0TWFn
bmlmaWNhdGlvbkNvbnRyb2xsZXIubW0KQEAgLTM3LDEyICszNywxMSBAQAogI2ltcG9ydCAiV2Vi
UGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KIAogI2ltcG9ydCAiVUlLaXRTUEkuaCIKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIHN0YXRpYyBjb25zdCBmbG9h
dCBzbWFydE1hZ25pZmljYXRpb25QYW5TY3JvbGxUaHJlc2hvbGRab29tZWRPdXQgPSA2MDsKIHN0
YXRpYyBjb25zdCBmbG9hdCBzbWFydE1hZ25pZmljYXRpb25QYW5TY3JvbGxUaHJlc2hvbGRJUGhv
bmUgPSAxMDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tHZW9s
b2NhdGlvblByb3ZpZGVySU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLR2Vv
bG9jYXRpb25Qcm92aWRlcklPUy5tbQppbmRleCA4OGQ5Mzk3NzEzMDBmYzA5YWM1MTg2YWRmMTMx
MzAyODQxMDdkMDE0Li5iZGNjNTcxMGZjN2Y0OTY1ZjNjOThkZTE3MTYxMzU5ZmE3MzU3NTgyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3Zp
ZGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9u
UHJvdmlkZXJJT1MubW0KQEAgLTUzLDggKzUzLDcgQEAKICNpbXBvcnQgPFdlYktpdC9XZWJHZW9s
b2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViQWxsb3dE
ZW55UG9saWN5TGlzdGVuZXIuaD4KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogQGludGVyZmFjZSBXS0dl
b2xvY2F0aW9uUHJvdmlkZXJJT1MgKF9XS0dlb2xvY2F0aW9uQ29yZUxvY2F0aW9uTGlzdGVuZXIp
IDxfV0tHZW9sb2NhdGlvbkNvcmVMb2NhdGlvbkxpc3RlbmVyPgogQGVuZApAQCAtMzU0LDYgKzM1
Myw2IEBAIHN0YXRpYyB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShXS0dlb2xvY2F0aW9uTWFu
YWdlclJlZiBnZW9sb2NhdGlvbk1hbmFnZXIsIGJvCiB9CiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZW5k
aWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLTGVnYWN5UERGVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0xl
Z2FjeVBERlZpZXcubW0KaW5kZXggMGI1ZDlkNmM2NDZiNDI4MmMwZmNiNzNlMWNiZmQwY2EzNGYz
NWFhNi4uZDM4ZjMxYzgxNWYzYzlmM2U5OGRhNTJlNTRmYjg4ODg0ZWQwYTQzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTGVnYWN5UERGVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tMZWdhY3lQREZWaWV3Lm1tCkBAIC01MSw4ICs1
MSw3IEBACiAKIC8vIEFsbCBvZiBVSVBERlBhZ2UqIGFyZSBkZXByZWNhdGVkLCBzbyBqdXN0IGln
bm9yZSBkZXByZWNhdGVkIGRlY2xhcmF0aW9ucwogLy8gaW4gdGhpcyBmaWxlIHVudGlsIHdlIHN3
aXRjaCBvZmYgdGhlbS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIGNvbnN0IENHRmxvYXQgcGRmUGFnZU1h
cmdpbiA9IDg7CiBjb25zdCBDR0Zsb2F0IHBkZk1pbmltdW1ab29tU2NhbGUgPSAxOwpAQCAtODU3
LDYgKzg1Niw2IEBAIHN0YXRpYyBOU1N0cmluZ0NvbXBhcmVPcHRpb25zIHN0cmluZ0NvbXBhcmVP
cHRpb25zKF9XS0ZpbmRPcHRpb25zIG9wdGlvbnMpCiAKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9T
TUFDKQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIAogI2VuZGlmIC8vIEVOQUJMRShXS0xFR0FDWVBERlZJRVcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZQYWdlTnVtYmVySW5kaWNh
dG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERGUGFnZU51bWJlckluZGlj
YXRvci5tbQppbmRleCA5NzliMzBkMzgxNGIxMzA2YzBhYWIxOTU2ZWMzN2EzZGE2NjA2MzhiLi44
MTlhZmI3MGYzNTI4NjE4N2M4NGI4ZDhkNzkzZDQ0ODJmNDY3MjQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3IubW0K
QEAgLTE4MywxMCArMTgzLDkgQEAgY29uc3QgTlNUaW1lSW50ZXJ2YWwgaW5kaWNhdG9yTW92ZUR1
cmF0aW9uID0gMC4zOwogICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY29udGV4dCk7CiAgICAgQ0dD
b250ZXh0QWRkUmVjdChjb250ZXh0LCBjb3JuZXJJbWFnZUJvdW5kcyk7CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIFVJQmV6aWVyUGF0aCAqY29ybmVyUGF0aCA9IFtVSUJlemllclBhdGggYmV6
aWVyUGF0aFdpdGhSb3VuZGVkUmVjdDpjb3JuZXJJbWFnZUJvdW5kcyBieVJvdW5kaW5nQ29ybmVy
czooVUlSZWN0Q29ybmVyKVVJQWxsQ29ybmVycyBjb3JuZXJSYWRpaTpDR1NpemVNYWtlKGluZGlj
YXRvckNvcm5lclJhZGl1cywgaW5kaWNhdG9yQ29ybmVyUmFkaXVzKV07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgQ0dDb250ZXh0QWRkUGF0aChjb250ZXh0LCBbY29ybmVyUGF0aCBDR1BhdGhdKTsKICAgICBD
R0NvbnRleHRFT0NsaXAoY29udGV4dCk7CiAgICAgQ0dDb250ZXh0RmlsbFJlY3QoY29udGV4dCwg
Y29ybmVySW1hZ2VCb3VuZHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW0KaW5kZXgg
NzA0ZGJlN2Y3NjI0ZjFjZjdmZTFlMDhlOWRhMTQwMzMxN2E5NjliZS4uOWRkYjkxMTczMDQwZDFh
YjE5OWVlNDlhY2NmNTc3ZDMzMzAyNGZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9T
Lm1tCkBAIC0zMTksMTAgKzMxOSw5IEBAIHZvaWQgV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bk
b3duSU9TOjpkaWRTZWxlY3RPcHRpb24oY29uc3QgU3RyaW5nJiBzZWxlY3RlZE9wCiAgICAgW19z
dWdnZXN0aW9uc1ZpZXdDb250cm9sbGVyIHJlbG9hZERhdGFdOwogICAgIFtbc2VsZi52aWV3IF9m
b3JtSW5wdXRTZXNzaW9uXSBzZXRTdWdnZXN0aW9uczpbc2VsZiB0ZXh0U3VnZ2VzdGlvbnNdXTsK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICBbX3BvcG92ZXIgc2V0UG9wb3ZlckNvbnRyb2xsZXI6W1tb
VUlQb3BvdmVyQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6
X3N1Z2dlc3Rpb25zVmlld0NvbnRyb2xsZXIuZ2V0KCldIGF1dG9yZWxlYXNlXV07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
IAogICAgIFtfcG9wb3ZlciBwcmVzZW50UG9wb3ZlckFuaW1hdGVkOk5PXTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0FpclBsYXlSb3V0ZVBpY2tl
ci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0FpclBsYXlSb3V0ZVBp
Y2tlci5tbQppbmRleCA3NGJkMjMyZDYyMmVlODFlMDdiZjQ0OWUzMDg3YTI1OTdmYzcyOGZjLi5j
YzNhOGVkNTk2NmEyZDAwMzk2NmZjMGIwMDhjMDU3ZTg5YmMwZThmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tBaXJQbGF5Um91dGVQaWNrZXIubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLQWlyUGxheVJvdXRlUGlja2Vy
Lm1tCkBAIC0zOSw4ICszOSw3IEBACiAjaW1wb3J0ICJXS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiBTT0ZUX0xJ
TktfRlJBTUVXT1JLKE1lZGlhUGxheWVyKQogU09GVF9MSU5LX0NMQVNTKE1lZGlhUGxheWVyLCBN
UEFWUm91dGluZ0NvbnRyb2xsZXIpCkBAIC0xNjAsNyArMTU5LDcgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKIAogQGVuZAogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogI2Vsc2UgCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQppbmRleCA4
MmQ2ZjJhMGY1YTkwZjBkNGY5NWJiNGZmYmIzZmU4YzFiYmQ4Njc5Li5iOWMxZmFlZjRjMDY3NTMx
OGEyNWQ4ZjEzNDcxOGM2ZDViMmZkMDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tCkBAIC00Niw4ICs0Niw3IEBA
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIHN0YXRpYyBp
bmxpbmUgVUlJbWFnZVBpY2tlckNvbnRyb2xsZXJDYW1lcmFEZXZpY2UgY2FtZXJhRGV2aWNlRm9y
TWVkaWFDYXB0dXJlVHlwZShXZWJDb3JlOjpNZWRpYUNhcHR1cmVUeXBlIG1lZGlhQ2FwdHVyZVR5
cGUpCiB7CkBAIC0xNjAsMTAgKzE1OSw5IEBAIHN0YXRpYyBpbmxpbmUgVUlJbWFnZSAqY2FtZXJh
SWNvbigpCiAgICAgQk9PTCBfdXNpbmdDYW1lcmE7CiAgICAgUmV0YWluUHRyPFVJSW1hZ2VQaWNr
ZXJDb250cm9sbGVyPiBfaW1hZ2VQaWNrZXI7CiAgICAgUmV0YWluUHRyPFVJVmlld0NvbnRyb2xs
ZXI+IF9wcmVzZW50YXRpb25WaWV3Q29udHJvbGxlcjsgLy8gaVBob25lIGFsd2F5cy4gaVBhZCBm
b3IgRnVsbHNjcmVlbiBDYW1lcmEuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBSZXRhaW5QdHI8
VUlQb3BvdmVyQ29udHJvbGxlcj4gX3ByZXNlbnRhdGlvblBvcG92ZXI7IC8vIGlQYWQgZm9yIGFj
dGlvbiBzaGVldCBhbmQgUGhvdG8gTGlicmFyeS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBSZXRhaW5QdHI8
VUlEb2N1bWVudE1lbnVWaWV3Q29udHJvbGxlcj4gX2RvY3VtZW50TWVudUNvbnRyb2xsZXI7CiAg
ICAgV2ViQ29yZTo6TWVkaWFDYXB0dXJlVHlwZSBfbWVkaWFDYXB0dXJlVHlwZTsKIH0KQEAgLTQ1
MCwxMCArNDQ4LDkgQEAgc3RhdGljIE5TQXJyYXkgKlVUSXNGb3JNSU1FVHlwZXMoTlNBcnJheSAq
bWltZVR5cGVzKQogewogICAgIFtzZWxmIF9kaXNtaXNzRGlzcGxheUFuaW1hdGVkOmFuaW1hdGVk
XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgX3ByZXNlbnRhdGlvblBvcG92ZXIgPSBhZG9w
dE5TKFtbVUlQb3BvdmVyQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhDb250ZW50Vmlld0NvbnRy
b2xsZXI6Y29udGVudFZpZXdDb250cm9sbGVyXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW19wcmVzZW50
YXRpb25Qb3BvdmVyIHNldERlbGVnYXRlOnNlbGZdOwogICAgIFtfcHJlc2VudGF0aW9uUG9wb3Zl
ciBwcmVzZW50UG9wb3ZlckZyb21SZWN0OkNHUmVjdEludGVncmFsKENHUmVjdE1ha2UoX2ludGVy
YWN0aW9uUG9pbnQueCwgX2ludGVyYWN0aW9uUG9pbnQueSwgMSwgMSkpIGluVmlldzpfdmlldyBw
ZXJtaXR0ZWRBcnJvd0RpcmVjdGlvbnM6VUlQb3BvdmVyQXJyb3dEaXJlY3Rpb25BbnkgYW5pbWF0
ZWQ6YW5pbWF0ZWRdOwogfQpAQCAtNzIwLDYgKzcxNyw2IEBAIHN0YXRpYyBOU0FycmF5ICpVVElz
Rm9yTUlNRVR5cGVzKE5TQXJyYXkgKm1pbWVUeXBlcykKIAogQGVuZAogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1Db2xvckNvbnRyb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvZm9ybXMvV0tGb3JtQ29sb3JDb250cm9sLm1tCmluZGV4IDYwOWJhYzMxZjU2YWE1YWFl
YmYwM2MyZTMxOGMxNTU0YTU4ZTk1YTcuLjgyNGVkM2Q5MWJjYjE3YjFjMTQwZWQ0ZmEzYmFhMTZh
ZWNlMDc0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9X
S0Zvcm1Db2xvckNvbnRyb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zv
cm1zL1dLRm9ybUNvbG9yQ29udHJvbC5tbQpAQCAtNjYsMTAgKzY2LDkgQEAgc3RhdGljIGNvbnN0
IENHRmxvYXQgY29sb3JQb3BvdmVyQ29ybmVyUmFkaXVzID0gOTsKICAgICBbcG9wb3ZlclZpZXdD
b250cm9sbGVyIHNldFZpZXc6Y29udHJvbENvbnRhaW5lclZpZXcuZ2V0KCldOwogICAgIFtwb3Bv
dmVyVmlld0NvbnRyb2xsZXIgc2V0UHJlZmVycmVkQ29udGVudFNpemU6W2NvbnRyb2xDb250YWlu
ZXJWaWV3IHNpemVdXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgUmV0YWluUHRyPFVJUG9w
b3ZlckNvbnRyb2xsZXI+IGNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbVUlQb3BvdmVyQ29udHJvbGxl
ciBhbGxvY10gaW5pdFdpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6cG9wb3ZlclZpZXdDb250cm9s
bGVyLmdldCgpXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW3NlbGYgc2V0UG9wb3ZlckNvbnRyb2xsZXI6
Y29udHJvbGxlci5nZXQoKV07CiAKICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLm1tCmluZGV4
IDFjZDYyZTNiYjUxODEzYjcxNGUzNGEzY2ZiZWI3M2FiYWFhOTBjZTMuLmQwMmRmZmZmZGE1YTY2
NDYxMTI0ZDM4NTgxN2Q4NjU5YTYwMmNlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29udHJvbC5tbQpAQCAtMzMwLDE2ICsz
MzAsMTQgQEAgc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtNaWxsaXNlY29uZHNQZXJTZWNv
bmQgPSAxMDAwOwogICAgIFJldGFpblB0cjxVSU5hdmlnYXRpb25Db250cm9sbGVyPiBuYXZpZ2F0
aW9uQ29udHJvbGxlciA9IGFkb3B0TlMoW1tVSU5hdmlnYXRpb25Db250cm9sbGVyIGFsbG9jXSBp
bml0V2l0aFJvb3RWaWV3Q29udHJvbGxlcjpfdmlld0NvbnRyb2xsZXIuZ2V0KCldKTsKICAgICBV
SU5hdmlnYXRpb25JdGVtICpuYXZpZ2F0aW9uSXRlbSA9IG5hdmlnYXRpb25Db250cm9sbGVyLmdl
dCgpLm5hdmlnYXRpb25CYXIudG9wSXRlbTsKICAgICBOU1N0cmluZyAqY2xlYXJTdHJpbmcgPSBX
RUJfVUlfU1RSSU5HX0tFWSgiQ2xlYXIiLCAiQ2xlYXIgQnV0dG9uIERhdGUgUG9wb3ZlciIsICJD
bGVhciBidXR0b24gaW4gZGF0ZSBpbnB1dCBwb3BvdmVyIik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBVSUJhckJ1dHRvbkl0ZW0gKmNsZWFyQnV0dG9uID0gW1tbVUlCYXJCdXR0b25JdGVtIGFs
bG9jXSBpbml0V2l0aFRpdGxlOmNsZWFyU3RyaW5nIHN0eWxlOlVJQmFyQnV0dG9uSXRlbVN0eWxl
Qm9yZGVyZWQgdGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3RvcihjbGVhcjopXSBhdXRvcmVsZWFz
ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAgICAgW25hdmlnYXRpb25JdGVtIHNldFJpZ2h0QmFyQnV0dG9uSXRl
bTpjbGVhckJ1dHRvbl07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFJldGFpblB0cjxVSVBv
cG92ZXJDb250cm9sbGVyPiBjb250cm9sbGVyID0gYWRvcHROUyhbW1VJUG9wb3ZlckNvbnRyb2xs
ZXIgYWxsb2NdIGluaXRXaXRoQ29udGVudFZpZXdDb250cm9sbGVyOm5hdmlnYXRpb25Db250cm9s
bGVyLmdldCgpXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW3NlbGYgc2V0UG9wb3ZlckNvbnRyb2xsZXI6
Y29udHJvbGxlci5nZXQoKV07CiAKICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9wb3Zlci5oCmluZGV4IDBlYzhjNjU1Mzg3
OWFiZGM1YjkyMTBmOTU3ODI0YjA3ZTBiMGZkZWIuLmM5Njc2MWM2YmQ5MzcwMGUzMmZjOGI3ZGJj
N2RiOGQ4MjMyMzhkNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9m
b3Jtcy9XS0Zvcm1Qb3BvdmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zv
cm1zL1dLRm9ybVBvcG92ZXIuaApAQCAtNDAsMTAgKzQwLDkgQEAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgV0tDb250ZW50VmlldyAqdmlldzsKIAogQHByb3BlcnR5IChub25hdG9t
aWMsIGFzc2lnbikgQ0dQb2ludCBwcmVzZW50YXRpb25Qb2ludDsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBVSVBvcG92ZXJDb250cm9sbGVyICpwb3BvdmVy
Q29udHJvbGxlcjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgaWQgPFdL
Um90YXRpbmdQb3BvdmVyRGVsZWdhdGU+IGRpc21pc3Npb25EZWxlZ2F0ZTsKIEBlbmQKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9wb3Zlci5tbQpp
bmRleCBiZTJmMGQyY2FkNGZmOGMyZmQ0MTgxNTYzYjdlNmRiNmRjYjhlMmEwLi42YjE4YzNkMDIy
ZTU5YzRmYjZkZjkwNzY0ZjViNjI5ZThlY2RmYzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9wb3Zlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9wb3Zlci5tbQpAQCAtMzYsOCArMzYsNyBAQAog
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiBAaW1wbGVtZW50
YXRpb24gV0tGb3JtUm90YXRpbmdBY2Nlc3NvcnlQb3BvdmVyCiAKQEAgLTE3OCw2ICsxNzcsNiBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZW5kaWYgLy8g
UExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zv
cm1zL1dLRm9ybVNlbGVjdFBvcG92ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
Zm9ybXMvV0tGb3JtU2VsZWN0UG9wb3Zlci5tbQppbmRleCA1N2JmYTQwNzA0YTIwZTMyZWVjYjhm
ZTFjNzZjMmM1MGU4ZDhmOTA0Li40M2I3ZWNiZmJhYzY3ZGEwYWI0YzFlZjJiYTdiNzY1N2VkYWJm
OTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3Jt
U2VsZWN0UG9wb3Zlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMv
V0tGb3JtU2VsZWN0UG9wb3Zlci5tbQpAQCAtNDAxLDEwICs0MDEsOSBAQCBzdGF0aWMgTlNTdHJp
bmcgKnN0cmluZ1dpdGhXcml0aW5nRGlyZWN0aW9uKE5TU3RyaW5nICpzdHJpbmcsIFVJVGV4dFdy
aXRpbmdEaXJlYwogICAgIGVsc2UKICAgICAgICAgcG9wb3ZlclZpZXdDb250cm9sbGVyLnByZWZl
cnJlZENvbnRlbnRTaXplID0gcG9wb3ZlclNpemU7CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBzZWxmLnBvcG92ZXJDb250cm9sbGVyID0gW1tbVUlQb3BvdmVyQ29udHJvbGxlciBhbGxv
Y10gaW5pdFdpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6cG9wb3ZlclZpZXdDb250cm9sbGVyXSBh
dXRvcmVsZWFzZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBbbmF2Q29udHJvbGxlciByZWxlYXNlXTsK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50
SW1wbE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5tbQppbmRleCA4YzIzYjI4YjgyMGI1YmUxZTc0MWIzMTdlM2QyMDlmZmE4MTYxZDBjLi5jNDc5
YmI5YTAxNmE0MzgxMGU0YjNhNzIyODg1ODVmNDE3NDY5NTc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC00MTksMTAgKzQxOSw5
IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnBpbm5lZFN0YXRlRGlkQ2hhbmdlKCkKICAgICAKIElu
dFBvaW50IFBhZ2VDbGllbnRJbXBsOjpzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JiBw
b2ludCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TUG9pbnQgd2luZG93Q29vcmQgPSBb
W21fdmlldyB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6cG9pbnRdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgIHJldHVybiBJbnRQb2ludChbbV92aWV3IGNvbnZlcnRQb2ludDp3aW5kb3dDb29yZCBmcm9t
VmlldzpuaWxdKTsKIH0KICAgICAKQEAgLTQzMCwxMCArNDI5LDkgQEAgSW50UmVjdCBQYWdlQ2xp
ZW50SW1wbDo6cm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIE5T
UmVjdCB0ZW1wUmVjdCA9IHJlY3Q7CiAgICAgdGVtcFJlY3QgPSBbbV92aWV3IGNvbnZlcnRSZWN0
OnRlbXBSZWN0IHRvVmlldzpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgdGVtcFJlY3Qu
b3JpZ2luID0gW1ttX3ZpZXcgd2luZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOnRlbXBSZWN0Lm9y
aWdpbl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QodGVtcFJlY3Qp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCmluZGV4IDVhNmJmYzMzY2VmMmQyMDZhOWUwNmQx
NWRkZjFjODdjYzM3MTI0NTYuLmI2MGE1NWM5NWFlYjJlY2ZhOTAzOGNmZDYxN2M3N2YyMTliMTk3
NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCkBAIC0yNjUsMTIgKzI2NSwxMSBAQCBzdGF0aWMg
UmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZUltYWdlV2l0aENvcGllZERhdGEoQ0dJbWFnZVJl
ZiBzb3VyY2VJbWFnZSkKICAgICAvLyBmdXR1cmUgb3ZlcmhlYWQuCiAgICAgd2ViVmlld0NvbnRl
bnRzID0gY3JlYXRlSW1hZ2VXaXRoQ29waWVkRGF0YSh3ZWJWaWV3Q29udGVudHMuZ2V0KCkpOwog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBTY3JlZW4gdXBkYXRlcyB0byBiZSByZS1lbmFi
bGVkIGluIF9zdGFydEVudGVyRnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjoKICAgICBO
U0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3Bs
YXk6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogCiAgICAgW3NlbGYgX21hbmFnZXJdLT5zYXZlU2Nyb2xsUG9z
aXRpb24oKTsKICAgICBfc2F2ZWRUb3BDb250ZW50SW5zZXQgPSBfcGFnZS0+dG9wQ29udGVudElu
c2V0KCk7CkBAIC0zMjUsMTEgKzMyNCwxMCBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9X
aWR0aCA9IDQ4MCArIDIwICsgMjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogICAg
IGlmIChjb21wbGV0ZWQpIHsKICAgICAgICAgX2Z1bGxTY3JlZW5TdGF0ZSA9IEluRnVsbFNjcmVl
bjsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAvLyBTY3JlZW4gdXBkYXRlcyB0
byBiZSByZS1lbmFibGVkIHRhIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgYmxvY2suCiAgICAgICAg
IE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFtzZWxm
IF9tYW5hZ2VyXS0+ZGlkRW50ZXJGdWxsU2NyZWVuKCk7CiAgICAgICAgIFtzZWxmIF9tYW5hZ2Vy
XS0+c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihmYWxzZSk7CiAKQEAgLTM0NywxMCArMzQ1LDkgQEAg
c3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIwOyAvLyBOb3Rl
OiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKICAgICAgICAgLy8gVHJhbnNpdGlvbiB0byBmdWxsc2Ny
ZWVuIGZhaWxlZC4gQ2xlYW4gdXAuCiAgICAgICAgIF9mdWxsU2NyZWVuU3RhdGUgPSBOb3RJbkZ1
bGxTY3JlZW47CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgW1tzZWxmIHdpbmRv
d10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIF9wYWdlLT5z
ZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzKGZhbHNlKTsKIAogICAgICAgICBOU1Jlc3BvbmRl
ciAqZmlyc3RSZXNwb25kZXIgPSBbW3NlbGYgd2luZG93XSBmaXJzdFJlc3BvbmRlcl07CkBAIC0z
NjksMTAgKzM2Niw5IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsg
MjAgKyAyMDsgLy8gTm90ZTogS2VlcCBpbiBzeW5jIHdpdGggbWVkCiAgICAgICAgIFtzZWxmIF9t
YW5hZ2VyXS0+c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihmYWxzZSk7CiAgICAgfQogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAog
ICAgIGlmIChfcmVxdWVzdGVkRXhpdEZ1bGxTY3JlZW4pIHsKICAgICAgICAgX3JlcXVlc3RlZEV4
aXRGdWxsU2NyZWVuID0gTk87CkBAIC00MDIsMTIgKzM5OCwxMSBAQCBzdGF0aWMgY29uc3QgZmxv
YXQgbWluVmlkZW9XaWR0aCA9IDQ4MCArIDIwICsgMjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3
aXRoIG1lZAogCiAgICAgW193ZWJWaWV3UGxhY2Vob2xkZXIgc2V0RXhpdFdhcm5pbmdWaXNpYmxl
Ok5PXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUg
cmUtZW5hYmxlZCBpbiBfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjog
b3IgYmVnYW5FeGl0RnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6ZmluYWxGcmFtZToKICAgICBO
U0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3Bs
YXk6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogCiAgICAgLy8gU2VlIHRoZSByZWxhdGVkIGNvbW1lbnQgaW4g
ZW50ZXJGdWxsU2NyZWVuOgogICAgIC8vIFdlIHdpbGwgcmVzdW1lIHRoZSBub3JtYWwgYmVoYXZp
b3IgaW4gX3N0YXJ0RXhpdEZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246CkBAIC00Mzcs
MTAgKzQzMiw5IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAg
KyAyMDsgLy8gTm90ZTogS2VlcCBpbiBzeW5jIHdpdGggbWVkCiAgICAgICAgIC8vIEJlY2F1c2Ug
d2UgYXJlIGJyZWFraW5nIHRoZSBub3JtYWwgYW5pbWF0aW9uIHBhdHRlcm4sIHJlLWVuYWJsZSBz
Y3JlZW4gdXBkYXRlcwogICAgICAgICAvLyBhcyBleGl0RnVsbFNjcmVlbiBoYXMgZGlzYWJsZWQg
dGhlbSwgYnV0IF9zdGFydEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOgogICAg
ICAgICAvLyB3aWxsIG5ldmVyIGJlIGNhbGxlZC4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICAgICAgTlNFbmFibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIH0KIAog
ICAgIFtbc2VsZiB3aW5kb3ddIGV4aXRGdWxsU2NyZWVuTW9kZTpzZWxmXTsKQEAgLTQ2MywyMCAr
NDU3LDE4IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAgKyAy
MDsgLy8gTm90ZTogS2VlcCBpbiBzeW5jIHdpdGggbWVkCiAKICAgICBOU1Jlc3BvbmRlciAqZmly
c3RSZXNwb25kZXIgPSBbW3NlbGYgd2luZG93XSBmaXJzdFJlc3BvbmRlcl07CiAKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIC8vIFNjcmVlbiB1cGRhdGVzIHRvIGJlIHJlLWVuYWJsZWQgaW4gY29t
cGxldGVGaW5pc2hFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbkFmdGVyUmVwYWludC4KICAgICBOU0Rp
c2FibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgX3BhZ2UtPnNldFN1cHByZXNz
VmlzaWJpbGl0eVVwZGF0ZXModHJ1ZSk7CiAgICAgW1tzZWxmIHdpbmRvd10gb3JkZXJPdXQ6c2Vs
Zl07CiAgICAgTlNWaWV3ICpjb250ZW50VmlldyA9IFtbc2VsZiB3aW5kb3ddIGNvbnRlbnRWaWV3
XTsKICAgICBjb250ZW50Vmlldy5oaWRkZW4gPSBZRVM7CiAgICAgW19iYWNrZ3JvdW5kVmlldy5n
ZXQoKS5sYXllciByZW1vdmVBbGxBbmltYXRpb25zXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IFtbX3dlYlZpZXdQbGFjZWhvbGRlciB3aW5kb3ddIHNldEF1dG9kaXNwbGF5Ok5PXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIAogICAgIFtzZWxmIF9yZXBsYWNlVmlldzpfd2ViVmlld1BsYWNlaG9sZGVyLmdldCgp
IHdpdGg6X3dlYlZpZXddOwogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwpAQCAtNTA5
LDE2ICs1MDEsMTQgQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0ODAgKyAy
MCArIDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKIC0gKHZvaWQpY29tcGxldGVG
aW5pc2hFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbkFmdGVyUmVwYWludAogewogICAgIF9yZXBhaW50
Q2FsbGJhY2sgPSBudWxscHRyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1tfd2ViVmlldyB3
aW5kb3ddIHNldEF1dG9kaXNwbGF5OllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW1tfd2ViVmlldyB3
aW5kb3ddIGRpc3BsYXlJZk5lZWRlZF07CiAgICAgX3BhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0
eVVwZGF0ZXMoZmFsc2UpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNFbmFibGVTY3JlZW5V
cGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKHZvaWQpcGVyZm9ybUNsb3NlOihpZClzZW5k
ZXIKQEAgLTcyNywxNSArNzE3LDEzIEBAIHN0YXRpYyBDQUFuaW1hdGlvbiAqZmFkZUFuaW1hdGlv
bihDRlRpbWVJbnRlcnZhbCBkdXJhdGlvbiwgQW5pbWF0aW9uRGlyZWN0aW9uIGRpCiAgICAgW3dp
bmRvdyBtYWtlRmlyc3RSZXNwb25kZXI6X3dlYlZpZXddOwogCiAgICAgX3BhZ2UtPnNldFN1cHBy
ZXNzVmlzaWJpbGl0eVVwZGF0ZXMoZmFsc2UpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1tz
ZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbW3NlbGYg
d2luZG93XSBkaXNwbGF5SWZOZWVkZWRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNFbmFi
bGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKHZvaWQpX3N0YXJ0RXhpdEZ1
bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246KE5TVGltZUludGVydmFsKWR1cmF0aW9uCkBA
IC03NTgsMTUgKzc0NiwxMyBAQCBzdGF0aWMgQ0FBbmltYXRpb24gKmZhZGVBbmltYXRpb24oQ0ZU
aW1lSW50ZXJ2YWwgZHVyYXRpb24sIEFuaW1hdGlvbkRpcmVjdGlvbiBkaQogICAgIFtfYmFja2dy
b3VuZFZpZXcuZ2V0KCkubGF5ZXIgYWRkQW5pbWF0aW9uOmZhZGVBbmltYXRpb24oZHVyYXRpb24s
IEFuaW1hdGVPdXQpIGZvcktleTpAImZ1bGxzY3JlZW4iXTsKIAogICAgIF9wYWdlLT5zZXRTdXBw
cmVzc1Zpc2liaWxpdHlVcGRhdGVzKGZhbHNlKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtb
c2VsZiB3aW5kb3ddIHNldEF1dG9kaXNwbGF5OllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW1tzZWxm
IHdpbmRvd10gZGlzcGxheUlmTmVlZGVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TRW5h
YmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAtICh2b2lkKV93YXRjaGRvZ1Rp
bWVyRmlyZWQ6KE5TVGltZXIgKil0aW1lcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLUHJpbnRpbmdWaWV3Lm1tCmluZGV4IDFmZGE3ZGJlNWRmMWZmN2RiMTc3MGNhZmIxNDBkZmY1
NjBmNWEzOGMuLmQyMDZmZmUwODk1MzRjMzJmM2UyMTYyMjA5ZGViYzcyMDg3NWViZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0KQEAgLTc4LDE2
ICs3OCwxNCBAQCBzdGF0aWMgQk9PTCBpc0ZvcmNpbmdQcmV2aWV3VXBkYXRlOwogCiAtICh2b2lk
KV9zZXRBdXRvZGlzcGxheTooQk9PTCluZXdTdGF0ZQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgaWYgKCFuZXdTdGF0ZSAmJiBbW193a1ZpZXcgd2luZG93XSBpc0F1dG9kaXNwbGF5XSkKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgW193a1ZpZXcgZGlzcGxheUlmTmVl
ZGVkXTsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgIFtbX3drVmlldyB3aW5kb3ddIHNldEF1dG9kaXNwbGF5Om5ld1N0
YXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIC8vIEZvciBzb21lIHJlYXNvbiwgcGFpbnRpbmcgZG9l
c24ndCBoYXBwZW4gZm9yIGEgbG9uZyB0aW1lIHdpdGhvdXQgdGhpcyBjYWxsLCA8cmRhcjovL3By
b2JsZW0vODk3NTIyOT4uCiAgICAgaWYgKG5ld1N0YXRlKQpAQCAtNDU0LDE5ICs0NTIsMTcgQEAg
c3RhdGljIE5TU3RyaW5nICpsaW5rRGVzdGluYXRpb25OYW1lKFBERkRvY3VtZW50ICpkb2N1bWVu
dCwgUERGRGVzdGluYXRpb24gKmRlc3QKICAgICB9CiAKICAgICBOU0dyYXBoaWNzQ29udGV4dCAq
bnNHcmFwaGljc0NvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSBzdGF0aWNfY2Fz
dDxDR0NvbnRleHRSZWY+KFtuc0dyYXBoaWNzQ29udGV4dCBncmFwaGljc1BvcnRdKTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIAogICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY29udGV4dCk7CiAgICAgQ0dDb250ZXh0
VHJhbnNsYXRlQ1RNKGNvbnRleHQsIHBvaW50LngsIHBvaW50LnkpOwogICAgIENHQ29udGV4dFNj
YWxlQ1RNKGNvbnRleHQsIF90b3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIC1fdG90YWxTY2Fs
ZUZhY3RvckZvclByaW50aW5nKTsKICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dCwg
MCwgLVtwZGZQYWdlIGJvdW5kc0ZvckJveDprUERGRGlzcGxheUJveE1lZGlhQm94XS5zaXplLmhl
aWdodCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbcGRmUGFnZSBkcmF3V2l0aEJveDprUERG
RGlzcGxheUJveE1lZGlhQm94XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIENHQWZmaW5lVHJhbnNmb3Jt
IHRyYW5zZm9ybSA9IENHQ29udGV4dEdldENUTShjb250ZXh0KTsKIApAQCAtNDc5LDEwICs0NzUs
OSBAQCBzdGF0aWMgTlNTdHJpbmcgKmxpbmtEZXN0aW5hdGlvbk5hbWUoUERGRG9jdW1lbnQgKmRv
Y3VtZW50LCBQREZEZXN0aW5hdGlvbiAqZGVzdAogICAgICAgICBpZiAoIVthbm5vdGF0aW9uIGlz
S2luZE9mQ2xhc3M6V2ViS2l0OjpwZGZBbm5vdGF0aW9uTGlua0NsYXNzKCldKQogICAgICAgICAg
ICAgY29udGludWU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgUERGQW5ub3Rh
dGlvbkxpbmsgKmxpbmtBbm5vdGF0aW9uID0gKFBERkFubm90YXRpb25MaW5rICopYW5ub3RhdGlv
bjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIE5TVVJMICp1cmwgPSBbbGlua0Fubm90YXRpb24g
VVJMXTsKICAgICAgICAgQ0dSZWN0IHRyYW5zZm9ybWVkUmVjdCA9IENHUmVjdEFwcGx5QWZmaW5l
VHJhbnNmb3JtKE5TUmVjdFRvQ0dSZWN0KFtsaW5rQW5ub3RhdGlvbiBib3VuZHNdKSwgdHJhbnNm
b3JtKTsKIApAQCAtNTQ1LDEwICs1NDAsOSBAQCBzdGF0aWMgTlNTdHJpbmcgKmxpbmtEZXN0aW5h
dGlvbk5hbWUoUERGRG9jdW1lbnQgKmRvY3VtZW50LCBQREZEZXN0aW5hdGlvbiAqZGVzdAogICAg
IH0KIAogICAgIFJlZlB0cjxXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcD4gYml0bWFwID0gcGFnZVBy
ZXZpZXdJdGVyYXRvci0+dmFsdWU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDR0NvbnRleHRS
ZWYgY2dDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dDb250ZXh0UmVmPihbW05TR3JhcGhpY3NDb250
ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dCBjb250ZXh0KGNnQ29udGV4dCk7CiAgICAgV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwpAQCAtNTg5LDEw
ICs1ODMsOSBAQCBzdGF0aWMgTlNTdHJpbmcgKmxpbmtEZXN0aW5hdGlvbk5hbWUoUERGRG9jdW1l
bnQgKmRvY3VtZW50LCBQREZEZXN0aW5hdGlvbiAqZGVzdAogICAgICAgICAgICAgICAgIGlmICgh
W2Fubm90YXRpb24gaXNLaW5kT2ZDbGFzczpXZWJLaXQ6OnBkZkFubm90YXRpb25MaW5rQ2xhc3Mo
KV0pCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICAgICAgICAgICAgICBQREZBbm5vdGF0aW9uTGluayAqbGlua0Fubm90
YXRpb24gPSAoUERGQW5ub3RhdGlvbkxpbmsgKilhbm5vdGF0aW9uOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgICAgICAgICAgICAgIGlmIChsaW5rQW5ub3RhdGlvbi5VUkwpCiAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbQppbmRleCBhZTM2NDFl
Zjc5NzQ2M2ExODBjMGZiMjY3NGIwMDJhYjExYTg3OTYyLi5iZTk2Y2EyODAwYWExNTA0ZTU4MzY4
MjdkN2RjZjA2Zjc3NGY2NmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0KQEAgLTEwNiwxMCArMTA2
LDkgQEAKIAogLSAoQk9PTClfaW50ZXJwcmV0S2V5RXZlbnQ6KE5TRXZlbnQgKilldmVudCB1c2lu
Z0xlZ2FjeUNvY29hVGV4dElucHV0OihCT09MKXVzaW5nTGVnYWN5Q29jb2FUZXh0SW5wdXQgc3Ry
aW5nOihOU1N0cmluZyAqKilzdHJpbmcKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEJPT0wg
aGFkTWFya2VkVGV4dCA9IFtfaW5wdXRUZXh0VmlldyBoYXNNYXJrZWRUZXh0XTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAKICAgICAqc3RyaW5nID0gbmlsOwogCkBAIC0xMjQsMTAgKzEyMyw5IEBACiAgICAgaWYg
KCFbW19pbnB1dFRleHRWaWV3IGlucHV0Q29udGV4dF0gaGFuZGxlRXZlbnQ6ZXZlbnRdKQogICAg
ICAgICByZXR1cm4gTk87CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAoW19pbnB1
dFRleHRWaWV3IGhhc01hcmtlZFRleHRdKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAvLyBE
b24ndCBzaG93IHRoZSBpbnB1dCBtZXRob2Qgd2luZG93IGZvciBkZWFkIGtleXMKICAgICAgICAg
aWYgKFtbZXZlbnQgY2hhcmFjdGVyc10gbGVuZ3RoXSA+IDApCiAgICAgICAgICAgICBbc2VsZiBv
cmRlckZyb250Om5pbF07CkBAIC0xNjEsMTAgKzE1OSw5IEBACiAKIC0gKEJPT0wpX2hhc01hcmtl
ZFRleHQKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBbX2lucHV0VGV4dFZpZXcg
aGFzTWFya2VkVGV4dF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQppbmRleCA4YjVkYjE1
OTVhYjM1N2ZlYzk0ZGNlNzdjNzY0ZWFkY2JiNjM1NjBkLi42ODRiMTM2Nzg2MTMwOTA4NGNjMTQy
NWZjMjBlYTQ1ZDg2ZmNmNzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCkBAIC0xODgsMTAgKzE4OCw5IEBAIHZvaWQgV2Vi
UG9wdXBNZW51UHJveHlNYWM6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4
dERpcmVjdGlvbiB0ZXh0CiAgICAgW05TQXBwIHBvc3RFdmVudDpmYWtlRXZlbnQgYXRTdGFydDpZ
RVNdOwogICAgIGZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50
VHlwZU1vdXNlTW92ZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRp
b246W1ttX3dlYlZpZXcgd2luZG93XQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6W2luaXRpYXRp
bmdOU0V2ZW50IG1vZGlmaWVyRmxhZ3NdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGltZXN0YW1wOltpbml0aWF0aW5nTlNFdmVudCB0aW1lc3RhbXBdCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgd2luZG93TnVtYmVyOltpbml0aWF0aW5nTlNFdmVudCB3aW5kb3dO
dW1iZXJdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KaW5kZXggZWRjZjUzMmM4
NWFhZjhjNmIzYTUwYWUzZDY0YmUwNmU5YWEwZTM0MC4uMjkwYjY1Y2MwMTYzZGJiMmE0ZjFmMDkz
MmZmNmYwN2NmNjJjZWYzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQpA
QCAtMzczLDEwICszNzMsOSBAQCBzdGF0aWMgaW5saW5lIEV2ZW50UmVjb3JkIGluaXRpYWxpemVF
dmVudFJlY29yZChFdmVudEtpbmQgZXZlbnRLaW5kKQogCiAgICAgZXZlbnRSZWNvcmQud2hhdCA9
IGV2ZW50S2luZDsKICAgICBldmVudFJlY29yZC5tZXNzYWdlID0gMDsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIGV2ZW50UmVjb3JkLndoZW4gPSBUaWNrQ291bnQoKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAg
ICBldmVudFJlY29yZC53aGVyZSA9IFBvaW50KCk7CiAgICAgZXZlbnRSZWNvcmQubW9kaWZpZXJz
ID0gMDsKIApAQCAtMTA0MywxMCArMTA0Miw5IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46OnNlbmRD
b21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQogCiAgICAgICAgIC8vIFNl
dCB0aGUgc2NyaXB0IGNvZGUgYXMgdGhlIGtleWJvYXJkIHNjcmlwdC4gTm9ybWFsbHkgQ2FyYm9u
IGRvZXMgdGhpcyB3aGVuZXZlciB0aGUgaW5wdXQgc291cmNlIGNoYW5nZXMuCiAgICAgICAgIC8v
IEhvd2V2ZXIsIHRoaXMgaXMgb25seSBkb25lIGZvciB0aGUgcHJvY2VzcyB0aGF0IGhhcyB0aGUg
a2V5Ym9hcmQgZm9jdXMuIFdlIGNoZWF0IGFuZCBkbyBpdCBoZXJlIGluc3RlYWQuCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFNldFNjcmlwdE1hbmFnZXJWYXJpYWJsZShzbUtleVNj
cmlwdCwgc2NyaXB0Q29kZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAKICAgICAgICAgRXZl
bnRSZWNvcmQgZXZlbnQgPSBpbml0aWFsaXplRXZlbnRSZWNvcmQoa2V5RG93bik7CiAgICAgICAg
IGV2ZW50Lm1vZGlmaWVycyA9IDA7CkBAIC0xMTIxLDExICsxMTE5LDEwIEBAIHN0YXRpYyB2b2lk
IG1ha2VDR0xQcmVzZW50TGF5ZXJPcGFxdWUoQ0FMYXllciAqcGx1Z2luUm9vdExheWVyKQogICAg
ICAgICByZXR1cm47CiAKICAgICBDbGFzcyBjZ2xQcmVzZW50TGF5ZXJDbGFzcyA9IE5TQ2xhc3NG
cm9tU3RyaW5nKEAiQ0dMUHJlc2VudExheWVyIik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBp
ZiAoIVtjZ2xQcmVzZW50TGF5ZXJDbGFzcyBpc1N1YmNsYXNzT2ZDbGFzczpbQ0FPcGVuR0xMYXll
ciBjbGFzc11dKQogICAgICAgICByZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBDQUxheWVyICps
YXllciA9IFtzdWJsYXllcnMgb2JqZWN0QXRJbmRleDowXTsKICAgICBpZiAoIVtsYXllciBpc0tp
bmRPZkNsYXNzOmNnbFByZXNlbnRMYXllckNsYXNzXSkKQEAgLTExODEsMTEgKzExNzgsMTAgQEAg
dm9pZCBOZXRzY2FwZVBsdWdpbjo6bnVsbEV2ZW50VGltZXJGaXJlZCgpCiAgICAgZXZlbnQud2hl
cmUudiA9IG1vdXNlUG9zaXRpb24ueTsKIAogICAgIGV2ZW50Lm1vZGlmaWVycyA9IEdldEN1cnJl
bnRLZXlNb2RpZmllcnMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmICghQnV0dG9uKCkp
CiAgICAgICAgIGV2ZW50Lm1vZGlmaWVycyB8PSBidG5TdGF0ZTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAg
IE5QUF9IYW5kbGVFdmVudCgmZXZlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggNGNhYTZjYzBmNjA0NTBjMDNiMjJh
Mjg0ZGQxM2FmMjVlZmQ2ZTM4Ni4uZGEwNDEwNzJhM2Q2MGNjYjYxYWE4MGExYzRjMzJiMjRkODk2
Mjk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tCkBAIC0zMTYsMTAgKzMxNiw5IEBAIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdFNj
cm9sbE1hZ25pdHVkZVRocmVzaG9sZEZvclBhZ2VGbGlwID0gMjA7CiAgICAgaWYgKFdlYktpdDo6
UERGUGx1Z2luQW5ub3RhdGlvbiogYWN0aXZlQW5ub3RhdGlvbiA9IF9wZGZQbHVnaW4tPmFjdGl2
ZUFubm90YXRpb24oKSkgewogICAgICAgICBpZiAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZSogZXhp
c3RpbmdDYWNoZSA9IF9wZGZQbHVnaW4tPmF4T2JqZWN0Q2FjaGUoKSkgewogICAgICAgICAgICAg
aWYgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCA9IGV4aXN0aW5nQ2FjaGUt
PmdldE9yQ3JlYXRlKGFjdGl2ZUFubm90YXRpb24tPmVsZW1lbnQoKSkpCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAgICAgICByZXR1cm4gW29iamVjdC0+d3JhcHBl
cigpIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIl9BWEFzc29jaWF0ZWRQbHVnaW5QYXJl
bnQiXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgfQogICAgIH0KICAgICByZXR1
cm4gbmlsOwpAQCAtNDI0LDEwICs0MjMsOSBAQCBzdGF0aWMgY29uc3QgaW50IGRlZmF1bHRTY3Jv
bGxNYWduaXR1ZGVUaHJlc2hvbGRGb3JQYWdlRmxpcCA9IDIwOwogCiAtICh2b2lkKXdyaXRlSXRl
bXNUb1Bhc3RlYm9hcmQ6KE5TQXJyYXkgKilpdGVtcyB3aXRoVHlwZXM6KE5TQXJyYXkgKil0eXBl
cwogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgX3BkZlBsdWdpbi0+d3JpdGVJdGVtc1RvUGFz
dGVib2FyZChOU0dlbmVyYWxQYm9hcmQsIGl0ZW1zLCB0eXBlcyk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAK
IC0gKHZvaWQpc2hvd0RlZmluaXRpb25Gb3JBdHRyaWJ1dGVkU3RyaW5nOihOU0F0dHJpYnV0ZWRT
dHJpbmcgKilzdHJpbmcgYXRQb2ludDooQ0dQb2ludClwb2ludApAQCAtMTY1MCwxMSArMTY0OCwx
MCBAQCBib29sIFBERlBsdWdpbjo6aGFuZGxlRWRpdGluZ0NvbW1hbmQoY29uc3QgU3RyaW5nJiBj
b21tYW5kTmFtZSwgY29uc3QgU3RyaW5nJiBhcgogICAgICAgICBbbV9wZGZMYXllckNvbnRyb2xs
ZXIgc2VsZWN0QWxsXTsKICAgICBlbHNlIGlmIChjb21tYW5kTmFtZSA9PSAidGFrZUZpbmRTdHJp
bmdGcm9tU2VsZWN0aW9uIikgewogICAgICAgICBOU1N0cmluZyAqc3RyaW5nID0gW21fcGRmTGF5
ZXJDb250cm9sbGVyIGN1cnJlbnRTZWxlY3Rpb25dLnN0cmluZzsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAgICAgaWYgKHN0cmluZy5sZW5ndGgpCiAgICAgICAgICAgICB3cml0ZUl0ZW1z
VG9QYXN0ZWJvYXJkKE5TRmluZFBib2FyZCwgQFsgW3N0cmluZyBkYXRhVXNpbmdFbmNvZGluZzpO
U1VURjhTdHJpbmdFbmNvZGluZ10gXSwgQFsgTlNQYXN0ZWJvYXJkVHlwZVN0cmluZyBdKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0xNzM0LDEzICsxNzMx
LDEyIEBAIHZvaWQgUERGUGx1Z2luOjpzZXRBY3RpdmVBbm5vdGF0aW9uKFBERkFubm90YXRpb24g
KmFubm90YXRpb24pCiAgICAgICAgIG1fYWN0aXZlQW5ub3RhdGlvbi0+Y29tbWl0KCk7CiAKICAg
ICBpZiAoYW5ub3RhdGlvbikgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBpZiAo
W2Fubm90YXRpb24gaXNLaW5kT2ZDbGFzczpwZGZBbm5vdGF0aW9uVGV4dFdpZGdldENsYXNzKCld
ICYmIHN0YXRpY19jYXN0PFBERkFubm90YXRpb25UZXh0V2lkZ2V0ICo+KGFubm90YXRpb24pLmlz
UmVhZE9ubHkpIHsKICAgICAgICAgICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IG51bGxwdHI7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICAgICAg
bV9hY3RpdmVBbm5vdGF0aW9uID0gUERGUGx1Z2luQW5ub3RhdGlvbjo6Y3JlYXRlKGFubm90YXRp
b24sIG1fcGRmTGF5ZXJDb250cm9sbGVyLmdldCgpLCB0aGlzKTsKICAgICAgICAgbV9hY3RpdmVB
bm5vdGF0aW9uLT5hdHRhY2gobV9hbm5vdGF0aW9uQ29udGFpbmVyLmdldCgpKTsKQEAgLTIwNzgs
MTAgKzIwNzQsOSBAQCBzdGQ6OnR1cGxlPFN0cmluZywgUERGU2VsZWN0aW9uICosIE5TRGljdGlv
bmFyeSAqPiBQREZQbHVnaW46Omxvb2t1cFRleHRBdExvY2F0aQogICAgICAgICBpZiAoIU5TUG9p
bnRJblJlY3QocG9pbnRJblBhZ2VTcGFjZSwgYm91bmRzKSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFBERkFubm90YXRpb25MaW5rICps
aW5rQW5ub3RhdGlvbiA9IChQREZBbm5vdGF0aW9uTGluayAqKWFubm90YXRpb247Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgICAgICBOU1VSTCAqdXJsID0gbGlua0Fubm90YXRpb24uVVJMOwogICAgICAg
ICBpZiAoIXVybCkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24uaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5v
dGF0aW9uLmgKaW5kZXggMGY3Njc1YzVkMjMxZDU3ZDkyYmQ2Mjc5MzZlOWUwMjRkMmUxYzY4ZC4u
YTgxZGRmNjNhNGU2MWRkMzBjN2I3ZDkxOTA3NmIzZjhhMmZjM2VkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
Q2hvaWNlQW5ub3RhdGlvbi5oCkBAIC01MywxMCArNTMsOSBAQCBwcml2YXRlOgogCiAgICAgUmVm
PFdlYkNvcmU6OkVsZW1lbnQ+IGNyZWF0ZUFubm90YXRpb25FbGVtZW50KCkgb3ZlcnJpZGU7CiAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFBERkFubm90YXRpb25DaG9pY2VXaWRnZXQgKmNob2lj
ZUFubm90YXRpb24oKSB7IHJldHVybiBzdGF0aWNfY2FzdDxQREZBbm5vdGF0aW9uQ2hvaWNlV2lk
Z2V0ICo+KGFubm90YXRpb24oKSk7IH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbQppbmRleCA1ODI1ZmQzZWNh
YjQ2MTU0ZjhmOWQwNTAxM2Y2NTRhYzhjNjE1OGNmLi4xMDBhMDM2NmFmNDRmOWExM2Q5ODk2MWMx
NmMxMzdjNjFkMGU5NmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbQpAQCAt
NjcsMTAgKzY3LDkgQEAgdm9pZCBQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uOjpjb21taXQoKQog
UmVmPEVsZW1lbnQ+IFBERlBsdWdpbkNob2ljZUFubm90YXRpb246OmNyZWF0ZUFubm90YXRpb25F
bGVtZW50KCkKIHsKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBwYXJlbnQoKS0+ZG9jdW1lbnQo
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFBERkFubm90YXRpb25DaG9pY2VXaWRnZXQgKmNo
b2ljZUFubm90YXRpb24gPSB0aGlzLT5jaG9pY2VBbm5vdGF0aW9uKCk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAK
ICAgICBhdXRvIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHNlbGVjdFRhZywgZmFs
c2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYv
UERGUGx1Z2luVGV4dEFubm90YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5oCmluZGV4IDkyZDQwMjNjZDcwZTk0ZDk4
ZDRiYjU4MWUzMGE3ZDI4NWIxOWQ5ZGMuLjM2ZDNhM2QyMWVmMWZlYzVmNDYwZTQ4OWY4MDU0OGI3
ZjNmYmMyZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5oCkBAIC02MCwxMCArNjAsOSBA
QCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIGJvb2wgaGFuZGxlRXZlbnQoV2ViQ29yZTo6RXZl
bnQmKSBvdmVycmlkZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgUERGQW5ub3RhdGlvblRl
eHRXaWRnZXQgKnRleHRBbm5vdGF0aW9uKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UERG
QW5ub3RhdGlvblRleHRXaWRnZXQgKj4oYW5ub3RhdGlvbigpKTsgfQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0KaW5k
ZXggMmM2YTc2YzRiMGUxMTU1MTAxOTVmZmQ2OTc0ODY0NjZhNzVmMTI2OC4uYmUwNjAzZjJjMWRh
NGEwYzU4OWY1NThjM2Y4YWU0YzRiMmEzZTcxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlv
bi5tbQpAQCAtODAsMTAgKzgwLDkgQEAgUERGUGx1Z2luVGV4dEFubm90YXRpb246On5QREZQbHVn
aW5UZXh0QW5ub3RhdGlvbigpCiBSZWY8RWxlbWVudD4gUERGUGx1Z2luVGV4dEFubm90YXRpb246
OmNyZWF0ZUFubm90YXRpb25FbGVtZW50KCkKIHsKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBw
YXJlbnQoKS0+ZG9jdW1lbnQoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFBERkFubm90YXRp
b25UZXh0V2lkZ2V0ICp0ZXh0QW5ub3RhdGlvbiA9IHRoaXMtPnRleHRBbm5vdGF0aW9uKCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgYm9vbCBpc011bHRpbGluZSA9IHRleHRBbm5vdGF0aW9uLmlzTXVsdGls
aW5lOwogCiAgICAgYXV0byBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpc011bHRp
bGluZSA/IHRleHRhcmVhVGFnIDogaW5wdXRUYWcsIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5h
dGl2ZVRleHRDbGllbnQuaAppbmRleCA0NTIwZTlkNjliYzgwMmY2ZWJkYTY1YjI5N2U4YThkNDU4
YzE5NzI4Li4xNGU2OWYxMmY1ZGM1NTNlYmEzODJjMDJiYjc1NzFhMGJhNWVjOGNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRp
dmVUZXh0Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oCkBAIC01MSwxNCArNTEsMTEgQEAgcHVibGlj
OgogI2VuZGlmCiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jaWYgZGVmaW5lZChfX2hhc193YXJuaW5nKSAmJiBfX2hhc193YXJuaW5n
KCItV3VudXNlZC1wcml2YXRlLWZpZWxkIikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3VudXNlZC1wcml2YXRlLWZpZWxkIgotI2VuZGlmCisgICAgSUdOT1JFX0NMQU5HX1dB
Uk5JTkdTX0JFR0lOKCJ1bnVzZWQtcHJpdmF0ZS1maWVsZCIpCiAjZW5kaWYKICAgICBXZWJQYWdl
ICptX3BhZ2U7CiAjaWYgUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xp
ZW50TWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJEcmFnQ2xpZW50TWFjLm1tCmluZGV4IGE4NzdlN2ZjZmEwYTM5ODc5Nzc3MGExNDM0NDkwNWZm
OTczMDMyZjAuLjNiZDdkMWZiYjM4Y2IyMDlhZmRiNzFkZWIxOGI5ZDkxZWRkOTEzMGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJh
Z0NsaWVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KQEAgLTcyLDEwICs3Miw5IEBAIHN0YXRpYyBSZWZQ
dHI8U2hhcmVhYmxlQml0bWFwPiBjb252ZXJ0SW1hZ2VUb0JpdG1hcChOU0ltYWdlICppbWFnZSwg
Y29uc3QgSW50U2l6CiAKICAgICBSZXRhaW5QdHI8TlNHcmFwaGljc0NvbnRleHQ+IHNhdmVkQ29u
dGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF07CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDpbTlNHcmFw
aGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0V2l0aEdyYXBoaWNzUG9ydDpncmFwaGljc0NvbnRl
eHQtPnBsYXRmb3JtQ29udGV4dCgpIGZsaXBwZWQ6WUVTXV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW2lt
YWdlIGRyYXdJblJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBiaXRtYXAtPnNpemUoKS53aWR0aCgpLCBi
aXRtYXAtPnNpemUoKS5oZWlnaHQoKSkgZnJvbVJlY3Q6TlNaZXJvUmVjdCBvcGVyYXRpb246TlND
b21wb3NpdGluZ09wZXJhdGlvblNvdXJjZU92ZXIgZnJhY3Rpb246MSByZXNwZWN0RmxpcHBlZDpZ
RVMgaGludHM6bmlsXTsKIAogICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzZXRDdXJyZW50Q29udGV4
dDpzYXZlZENvbnRleHQuZ2V0KCldOwpAQCAtMTEzLDEwICsxMTIsOSBAQCBzdGF0aWMgV2ViQ29y
ZTo6Q2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlKEVsZW1lbnQmIGVsZW1lbnQpCiAKIHZvaWQgV2Vi
RHJhZ0NsaWVudDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZE5hbWUsIEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IGxhYmVsLCBGcmFtZSopCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBBU1NFUlQocGFzdGVi
b2FyZE5hbWUgPT0gU3RyaW5nKE5TRHJhZ1Bib2FyZCkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgV2Vi
Q29yZTo6Q2FjaGVkSW1hZ2UqIGltYWdlID0gY2FjaGVkSW1hZ2UoZWxlbWVudCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0TWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW0KaW5kZXggZmU5NGU4NWU0NzBm
NGE4N2U1OWZlOWQ3ZWNmODQ0MmZlZTU3Y2YzMy4uZmQ5YjE4NWNmZjBiZTZkMGM5ZmE4NjI2Yzkw
Y2NmZmM5NTYwM2M1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RN
YWMubW0KQEAgLTE5Miw4ICsxOTIsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIHJl
dHVybiBZRVM7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAtIChpZClhY2Nlc3NpYmlsaXR5SGl0VGVz
dDooTlNQb2ludClwb2ludAogewogICAgIGlmICghbV9wYWdlKQpAQCAtMjE1LDcgKzIxNCw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKICAgICByZXR1cm4gW1tzZWxmIGFjY2Vzc2liaWxp
dHlSb290T2JqZWN0V3JhcHBlcl0gYWNjZXNzaWJpbGl0eUhpdFRlc3Q6Y29udmVydGVkUG9pbnRd
OwogfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCAyYmRkMDhmZGQ4M2ZkYjVkNTA4NTVlN2Nj
NThlNTk2ZTJlYzBhN2Y0Li42OTA1NDc1OTc5ZDk2MGY2ZmEzNGZkMDQ0MzNjODA2NmRjYzQwZDM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFn
ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFn
ZU1hYy5tbQpAQCAtODE5LDExICs4MTksMTAgQEAgc3RhdGljIHZvaWQgZHJhd1BERlBhZ2UoUERG
RG9jdW1lbnQgKnBkZkRvY3VtZW50LCBDRkluZGV4IHBhZ2VJbmRleCwgQ0dDb250ZXh0UmUKICAg
ICB9CiAKICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2F2ZUdyYXBoaWNzU3RhdGVdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OltO
U0dyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmNvbnRleHQg
ZmxpcHBlZDpOT11dOwogICAgIFtwZGZQYWdlIGRyYXdXaXRoQm94OmtQREZEaXNwbGF5Qm94Q3Jv
cEJveF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHJlc3RvcmVHcmFwaGlj
c1N0YXRlXTsKIAogICAgIENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IENHQ29udGV4dEdl
dENUTShjb250ZXh0KTsKQEAgLTgzMiwxMCArODMxLDkgQEAgc3RhdGljIHZvaWQgZHJhd1BERlBh
Z2UoUERGRG9jdW1lbnQgKnBkZkRvY3VtZW50LCBDRkluZGV4IHBhZ2VJbmRleCwgQ0dDb250ZXh0
UmUKICAgICAgICAgaWYgKCFbYW5ub3RhdGlvbiBpc0tpbmRPZkNsYXNzOnBkZkFubm90YXRpb25M
aW5rQ2xhc3MoKV0pCiAgICAgICAgICAgICBjb250aW51ZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgICAgICBQREZBbm5vdGF0aW9uTGluayAqbGlua0Fubm90YXRpb24gPSAoUERGQW5u
b3RhdGlvbkxpbmsgKilhbm5vdGF0aW9uOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgTlNVUkwg
KnVybCA9IFtsaW5rQW5ub3RhdGlvbiBVUkxdOwogICAgICAgICBpZiAoIXVybCkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9u
L0NhcmJvblV0aWxzLm0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uVXRp
bHMubQppbmRleCBiNzk1ZTliNDJhNmU3MTQ4NWRkMTc3Y2NkOWRkYzczYTQ5NDdlMGRmLi44YzRm
YTUyNGU5ODM0MWY5NjNhYjljMGY0YmVkMTE2NGI0MzZjYTllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uVXRpbHMubQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uVXRpbHMubQpAQCAtODcsMTAgKzg3LDkgQEAgc3RhdGlj
IHVuc2lnbmVkIGdldE5TQXV0b3JlbGVhc2VQb29sQ291bnQodm9pZCkKIFBvb2xDbGVhbmVyKCBF
dmVudExvb3BUaW1lclJlZiBpblRpbWVyLCBFdmVudExvb3BJZGxlVGltZXJNZXNzYWdlIGluU3Rh
dGUsIHZvaWQgKmluVXNlckRhdGEgKQogewogICAgIGlmICggaW5TdGF0ZSA9PSBrRXZlbnRMb29w
SWRsZVRpbWVyU3RhcnRlZCApIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdjYXN0LXF1YWwiCisgICAgICAgIElHTk9S
RV9XQVJOSU5HU19CRUdJTigiY2FzdC1xdWFsIikKICAgICAgICAgQ0ZTdHJpbmdSZWYgbW9kZSA9
IENGUnVuTG9vcENvcHlDdXJyZW50TW9kZSggKENGUnVuTG9vcFJlZilHZXRDRlJ1bkxvb3BGcm9t
RXZlbnRMb29wKCBHZXRDdXJyZW50RXZlbnRMb29wKCkgKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HU19FTkQKICAgICAgICAgRXZlbnRMb29w
UmVmIHRoaXNMb29wID0gR2V0Q3VycmVudEV2ZW50TG9vcCAoKTsKICAgICAgICAgaWYgKCBDRkVx
dWFsKCBtb2RlLCBrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUgKSAmJiB0aGlzTG9vcCA9PSBwb29sTG9v
cCkgewogICAgICAgICAgICAgdW5zaWduZWQgY3VycmVudE51bVBvb2xzID0gZ2V0TlNBdXRvcmVs
ZWFzZVBvb2xDb3VudCgpLTE7ICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCmluZGV4IGQxNTIyZjNmMDIz
ZWYwZjZkZTMzNjJiZGEzYjMwNDk0Nzg4OGMwYmYuLmIwOWUwNmMyNDlmYmQwOGVlZTdkNmU5MzQ3
NjU5MzE3OTVjZjM1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJv
bi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0Nh
cmJvbi9DYXJib25XaW5kb3dBZGFwdGVyLm1tCkBAIC0xNzcsMTAgKzE3Nyw5IEBAIHN0YXRpYyBP
U1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5F
dmVudEhhbmRsZXJDYWxsCiAgICAgLy8gQnV0IG5vdyB0aGUgbm9uLXJldGFpbmVkIHdpbmRvdyBj
bGFzcyBpcyBhIENhcmJvbiBzZWNyZXQgdGhhdCdzIG5vdCBldmVuIGluCiAgICAgLy8gV2luZG93
c1ByaXYuaDsgbWF5YmUgd2UnbGwgaGF2ZSB0byByZXZpc2l0IHRoaXMgaWYgc29tZW9uZSBuZWVk
cyB0byB1c2UgV2ViS2l0CiAgICAgLy8gaW4gYSBub24tcmV0YWluZWQgd2luZG93LgotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgYmFja2luZ1N0b3JlVHlwZSA9IE5TQmFja2luZ1N0b3JlUmV0YWlu
ZWQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAKICAgICAvLyBGaWd1cmUgb3V0IHRoZSB3aW5kb3cncyBzdHlsZSBt
YXNrLgogICAgIHN0eWxlTWFzayA9IF9OU0NhcmJvbldpbmRvd01hc2s7CkBAIC0yMDUsMTAgKzIw
NCw5IEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFu
ZGxlckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAgICAgLy8gRG8gc29tZSBzdGFuZGFyZCBD
b2NvYSBpbml0aWFsaXphdGlvbi4gIFRoZSBkZWZlciBhcmd1bWVudCdzIHZhbHVlIGlzIFlFUyBi
ZWNhdXNlIHdlIGRvbid0IHdhbnQgLVtOU1dpbmRvdyBfY29tbW9uQXdha2VdIHRvIGdldCBjYWxs
ZWQuICBJdCBkb2Vzbid0IGFwcGVhciB0aGF0IGFueSByZWxldmFudCBOU1dpbmRvdyBjb2RlIGNo
ZWNrcyBfd0ZsYWdzLmRlZmVycmVkLCBzbyB3ZSBzaG91bGQgYmUgYWJsZSB0byBnZXQgYXdheSB3
aXRoIHRoZSBsaWUuCiAgICAgc2VsZiA9IChDYXJib25XaW5kb3dBZGFwdGVyKilbc3VwZXIgX2lu
aXRDb250ZW50Om51bGxwdHIgc3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5nOmJhY2tpbmdTdG9y
ZVR5cGUgZGVmZXI6WUVTIGNvbnRlbnRWaWV3OmNhcmJvbldpbmRvd0NvbnRlbnRWaWV3XTsKICAg
ICBpZiAoIXNlbGYpIHJldHVybiBuaWw7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBhc3NlcnQo
X2NvbnRlbnRWaWV3KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIC8vIFJlY29yZCBhY2N1cmF0ZWx5IHdo
ZXRoZXIgb3Igbm90IHRoaXMgd2luZG93IGhhcyBhIHNoYWRvdywgaW4gY2FzZSBzb21lb25lIGFz
a3MuCiAgLy8gICBfYXV4aWxpYXJ5U3RvcmFnZS0+X2F1eFdGbGFncy5oYXNTaGFkb3cgPSAod2lu
ZG93QXR0cmlidXRlcyAmIGtXaW5kb3dOb1NoYWRvd0F0dHJpYnV0ZSkgPyBOTyA6IFlFUzsKQEAg
LTI4MSwxMCArMjc5LDkgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZl
bnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKICAgICAvLyBmbHVzaGVz
IGl0LgogCiAgICAgaWYgKFtzZWxmIHdpbmRvd051bWJlcl0gIT0gLTEpIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICAgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IChDR0NvbnRleHRS
ZWYpW1tzZWxmIF90aHJlYWRDb250ZXh0XSBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICAgICAgQ0dDb250ZXh0U3luY2hyb25pemUoY2dDb250ZXh0KTsKICAgICB9CiB9CkBAIC0z
NzQsMTEgKzM3MSwxMCBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVu
dChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAgIC8vIEluaXRpYWxp
emUgZm9yIHNhZmUgcmV0dXJuaW5nLgogICAgIEJPT0wgcmVjb25jaWxpYXRpb25XYXNOZWNlc3Nh
cnkgPSBOTzsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8gUHJlY29uZGl0aW9uIGNoZWNr
LgogICAgIGFzc2VydChfY29udGVudFZpZXcpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgLy8gR2V0IHRo
ZSBDYXJib24gd2luZG93J3MgYm91bmRzLCB3aGljaCBhcmUgZXhwcmVzc2VkIGluIGdsb2JhbCBz
Y3JlZW4gY29vcmRpbmF0ZXMsIHdpdGggKDAsMCkgYXQgdGhlIHRvcC1sZWZ0IG9mIHRoZSBtYWlu
IHNjcmVlbi4KICAgICBvc1N0YXR1cyA9IEdldFdpbmRvd0JvdW5kcyhfd2luZG93UmVmLCBrV2lu
ZG93U3RydWN0dXJlUmduLCAmd2luZG93U3RydWN0dXJlQm91bmRzUmVjdCk7CkBAIC0zOTMsMjgg
KzM4OSwyNiBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVu
dEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAgIG5ld1dpbmRvd0ZyYW1lUmVj
dC5vcmlnaW4ueSA9IE5TTWF4WShbKE5TU2NyZWVuICopW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmpl
Y3RBdEluZGV4OjBdIGZyYW1lXSkgLSB3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0LmJvdHRvbTsK
ICAgICBuZXdXaW5kb3dGcmFtZVJlY3Quc2l6ZS53aWR0aCA9IHdpbmRvd1N0cnVjdHVyZUJvdW5k
c1JlY3QucmlnaHQgLSB3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0LmxlZnQ7CiAgICAgbmV3V2lu
ZG93RnJhbWVSZWN0LnNpemUuaGVpZ2h0ID0gd2luZG93U3RydWN0dXJlQm91bmRzUmVjdC5ib3R0
b20gLSB3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0LnRvcDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIGlmICghTlNFcXVhbFJlY3RzKG5ld1dpbmRvd0ZyYW1lUmVjdCwgX2ZyYW1lKSkgewogICAg
ICAgICBbc2VsZiBfc2V0RnJhbWU6bmV3V2luZG93RnJhbWVSZWN0XTsKICAgICAgICAgW19ib3Jk
ZXJWaWV3IHNldEZyYW1lU2l6ZTpuZXdXaW5kb3dGcmFtZVJlY3Quc2l6ZV07CiAgICAgICAgIHJl
Y29uY2lsaWF0aW9uV2FzTmVjZXNzYXJ5ID0gWUVTOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAg
IC8vIFNldCB0aGUgY29udGVudCB2aWV3J3MgZnJhbWUgcmVjdCBmcm9tIHRoZSBDYXJib24gd2lu
ZG93J3MgY29udGVudCByZWdpb24gYm91bmRzLgogICAgIG5ld0NvbnRlbnRGcmFtZVJlY3Qub3Jp
Z2luLnggPSB3aW5kb3dDb250ZW50Qm91bmRzUmVjdC5sZWZ0IC0gd2luZG93U3RydWN0dXJlQm91
bmRzUmVjdC5sZWZ0OwogICAgIG5ld0NvbnRlbnRGcmFtZVJlY3Qub3JpZ2luLnkgPSB3aW5kb3dT
dHJ1Y3R1cmVCb3VuZHNSZWN0LmJvdHRvbSAtIHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LmJvdHRv
bTsKICAgICBuZXdDb250ZW50RnJhbWVSZWN0LnNpemUud2lkdGggPSB3aW5kb3dDb250ZW50Qm91
bmRzUmVjdC5yaWdodCAtIHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LmxlZnQ7CiAgICAgbmV3Q29u
dGVudEZyYW1lUmVjdC5zaXplLmhlaWdodCA9IHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LmJvdHRv
bSAtIHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LnRvcDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IG9sZENvbnRlbnRGcmFtZVJlY3QgPSBbKE5TVmlldyAqKV9jb250ZW50VmlldyBmcmFtZV07CiAg
ICAgaWYgKCFOU0VxdWFsUmVjdHMobmV3Q29udGVudEZyYW1lUmVjdCwgb2xkQ29udGVudEZyYW1l
UmVjdCkpIHsKICAgICAgICAgWyhOU1ZpZXcgKilfY29udGVudFZpZXcgc2V0RnJhbWU6bmV3Q29u
dGVudEZyYW1lUmVjdF07CiAgICAgICAgIHJlY29uY2lsaWF0aW9uV2FzTmVjZXNzYXJ5ID0gWUVT
OwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIC8vIERvbmUuCiAgICAgcmV0dXJuIHJlY29uY2ls
aWF0aW9uV2FzTmVjZXNzYXJ5OwpAQCAtNTk1LDggKzU4OSw3IEBAIHN0YXRpYyBPU1N0YXR1cyBO
U0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhhbmRs
ZXJDYWxsCiAvLyBUaGlzIGZ1bmN0aW9uIGlzIG1vc3RseSBjdXQtYW5kLXBhc3RlZCBmcm9tIC1b
TlNXaW5kb3cgX3Rlcm1XaW5kb3dJZk93bmVyXS4gIE0uUC4gTm90aWNlIC0gOC83LzAwCiAtICh2
b2lkKV90ZXJtV2luZG93SWZPd25lcgogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW3NlbGYg
X3NldFdpbmRvd051bWJlcjotMV07CiAgICAgX3dGbGFncy5pc1Rlcm1pbmF0aW5nID0gWUVTOwog
ICAgIGlmIChfd2luZG93UmVmICYmIF93aW5kb3dSZWZJc093bmVkKQpAQCAtNjA2LDcgKzU5OSw3
IEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxl
ckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAvLyAgICAgICAgW19ib3JkZXJWaWV3IHNldFNo
YWRvd1N0YXRlOmtGcmFtZVNoYWRvd05vbmVdOwogLy8gICAgfQogICAgIF93RmxhZ3MuaXNUZXJt
aW5hdGluZyA9IE5POwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAKQEAgLTYyNiwxMCArNjE5LDkgQEAgc3Rh
dGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJl
ZiBpbkV2ZW50SGFuZGxlckNhbGwKICAgICBbc3VwZXIgX3dpbmRvd01vdmVkVG9SZWN0OmFjdHVh
bEZyYW1lXTsKIAogICAgIC8vIExldCBDYXJib24ga25vdyB0aGF0IHRoZSB3aW5kb3cgaGFzIGJl
ZW4gbW92ZWQsIHVubGVzcyB0aGlzIG1ldGhvZCBpcyBiZWluZyBjYWxsZWQgImVhcmx5LiIKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChfd0ZsYWdzLnZpc2libGUpIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAgICAgICAgIG9zU3RhdHVzID0gX1N5bmNXaW5kb3dXaXRoQ0dBZnRlck1vdmUoX3dpbmRv
d1JlZik7CiAgICAgICAgIGlmIChvc1N0YXR1cyE9bm9FcnIpIE5TTG9nKEAiQSBDYXJib24gd2lu
ZG93J3MgYm91bmRzIGNvdWxkbid0IGJlIHN5bmNocm9uaXplZCAoJWkpLiIsIChpbnQpb3NTdGF0
dXMpOwogICAgIH0KQEAgLTc1OCwxMSArNzUwLDEwIEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJv
bldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxs
CiAgICAgUmVjdCB3aW5kb3dDb250ZW50Qm91bmRzUmVjdDsKIAogICAgIC8vIFByZWNvbmRpdGlv
biBjaGVjay4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGFzc2VydChfYm9yZGVyVmlldyk7CiAg
ICAgYXNzZXJ0KFtfYm9yZGVyVmlldyBpc0tpbmRPZkNsYXNzOltDYXJib25XaW5kb3dGcmFtZSBj
bGFzc11dKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBhc3NlcnQoX3dpbmRvd1JlZik7CiAKICAgICAvLyBQ
YXJhbWV0ZXIgY2hlY2suCkBAIC03NzYsOCArNzY3LDcgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2Fy
Ym9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNh
bGwKICAgICBjb250ZW50RnJhbWVSZWN0LnNpemUud2lkdGggPSB3aW5kb3dDb250ZW50Qm91bmRz
UmVjdC5yaWdodCAtIHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LmxlZnQ7CiAgICAgY29udGVudEZy
YW1lUmVjdC5zaXplLmhlaWdodCA9IHdpbmRvd0NvbnRlbnRCb3VuZHNSZWN0LmJvdHRvbSAtIHdp
bmRvd0NvbnRlbnRCb3VuZHNSZWN0LnRvcDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8g
SWYgdGhlIGNvbnRlbnQgdmlldyBpcyBzdGlsbCBpbiBzb21lIG90aGVyIHZpZXcgaGllcmFyY2h5
LCBwcnkgaXQgZnJlZS4KICAgICBbX2NvbnRlbnRWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOwog
ICAgIGFzc2VydCghW19jb250ZW50VmlldyBzdXBlcnZpZXddKTsKQEAgLTc5MSw3ICs3ODEsNyBA
QCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJD
YWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogCiAgICAgLy8gVGVsbCB0aGUgY29udGVudCB2aWV3
IGl0J3MgbmV3IHBsYWNlIGluIHRoZSByZXNwb25kZXIgY2hhaW4uCiAgICAgW19jb250ZW50Vmll
dyBzZXROZXh0UmVzcG9uZGVyOnNlbGZdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAKQEAgLTk0NCwxMCAr
OTM0LDkgQEAgQ2xlYW5VcDoKICAgICBISVJlY3QgZnJhbWU7CiAKICAgICBISVZpZXdHZXRGcmFt
ZShyb290LCAmZnJhbWUpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW19ib3JkZXJWaWV3IHNl
dEZyYW1lU2l6ZToqKE5TU2l6ZSopJmZyYW1lLnNpemVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAtICh2
b2lkKV9oYW5kbGVDb250ZW50Qm91bmRzQ2hhbmdlZApAQCAtOTY0LDEzICs5NTMsMTIgQEAgQ2xl
YW5VcDoKICAgICAvLyBTZXQgdGhlIGNvbnRlbnQgdmlldydzIGZyYW1lIHJlY3QgZnJvbSB0aGUg
Q2FyYm9uIHdpbmRvdydzIGNvbnRlbnQgcmVnaW9uIGJvdW5kcy4KICAgICBjb250ZW50RnJhbWUu
b3JpZ2luLnkgPSByb290Qm91bmRzLnNpemUuaGVpZ2h0IC0gQ0dSZWN0R2V0TWF4WShjb250ZW50
RnJhbWUpOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBvbGRDb250ZW50RnJhbWVSZWN0ID0g
WyhOU1ZpZXcgKilfY29udGVudFZpZXcgZnJhbWVdOwogICAgIGlmICghTlNFcXVhbFJlY3RzKCoo
TlNSZWN0KikmY29udGVudEZyYW1lLCBvbGRDb250ZW50RnJhbWVSZWN0KSkgewogICAgICAgICBb
KE5TVmlldyAqKV9jb250ZW50VmlldyBzZXRGcmFtZToqKE5TUmVjdCopJmNvbnRlbnRGcmFtZV07
CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogfQogCiAtIChPU1N0YXR1cylfaGFuZGxlQ2FyYm9uRXZlbnQ6
KEV2ZW50UmVmKWluRXZlbnQgY2FsbFJlZjooRXZlbnRIYW5kbGVyQ2FsbFJlZilpbkNhbGxSZWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dG
cmFtZS5tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0ZyYW1l
Lm0KaW5kZXggZTkyNmViNmMyMWUwZmE4OGYyOGRjNGEwNjFjMzkwMjI1MzI1ZWI5Ny4uYTdjYmYz
Mzg0ODg1ZDUwYjJlNGRhMjlkOTI3ZmQ1ZDEyZGU4MmIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0ZyYW1lLm0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0ZyYW1lLm0KQEAgLTI0MSwxMCArMjQx
LDkgQEAgLSAoTlNTdHJpbmcgKil0aXRsZSB7CiAgICAgd2luZG93UmVmID0gW2NhcmJvbldpbmRv
dyB3aW5kb3dSZWZdOwogICAgIG9zU3RhdHVzID0gQ29weVdpbmRvd1RpdGxlQXNDRlN0cmluZyh3
aW5kb3dSZWYsICZ3aW5kb3dUaXRsZSk7CiAgICAgaWYgKG9zU3RhdHVzPT1ub0VycikgewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2Nhc3QtcXVhbCIKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJjYXN0LXF1
YWwiKQogICAgICAgICB3aW5kb3dUaXRsZUFzTlNTdHJpbmcgPSAoTlNTdHJpbmcgKil3aW5kb3dU
aXRsZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX1dBUk5J
TkdTX0VORAogICAgIH0gZWxzZSB7CiAgICAgICAgIE5TTG9nKEAiQSBDYXJib24gd2luZG93J3Mg
dGl0bGUgY291bGRuJ3QgYmUgZ290dGVuLiIpOwogICAgICAgICB3aW5kb3dUaXRsZUFzTlNTdHJp
bmcgPSBAIiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vSElW
aWV3QWRhcHRlci5tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJVmlld0FkYXB0
ZXIubQppbmRleCBmM2Q5OTY1YWI3ZmQxMzg0YWJiNTVlNTljNWEwOTQ0YjVlNjAxZTcwLi5lMTdj
YmM2Nzc5NjZmMjMyZGNiMGYyMTRlNWIwNjY3NzIzZjEyYTZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DYXJib24vSElWaWV3QWRhcHRlci5tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0KQEAgLTg4LDEwICs4OCw5IEBAICsg
KHZvaWQpYmluZEhJVmlld1RvTlNWaWV3OihISVZpZXdSZWYpaGlWaWV3IG5zVmlldzooTlNWaWV3
Kiluc1ZpZXcKIAogKyAoSElWaWV3UmVmKWdldEhJVmlld0Zvck5TVmlldzooTlNWaWV3KilpblZp
ZXcKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdjYXN0LXF1YWwiCisgICAgSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJj
YXN0LXF1YWwiKQogICAgIHJldHVybiBzVmlld01hcCA/IChISVZpZXdSZWYpQ0ZEaWN0aW9uYXJ5
R2V0VmFsdWUoc1ZpZXdNYXAsIGluVmlldykgOiBOVUxMOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIElHTk9SRV9XQVJOSU5HU19FTkQKIH0KIAogKyAodm9pZCl1bmJpbmROU1Zp
ZXc6KE5TVmlldyopaW5WaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
YXJib24vSElXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJV2Vi
Vmlldy5tbQppbmRleCA0MDZiNzc5ZmFjZjdhM2Q0MTRiYjJkZmNhMzk1NTE2NGU3NjI5MjZhLi44
MGYzNTFjYTk5MTA4OWExMGExMjY0MTZjZDlmNTczYzllZjk1NzY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vSElXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NhcmJvbi9ISVdlYlZpZXcubW0KQEAgLTI4OCwxMSArMjg4LDEwIEBAIHN0
YXRpYyBVSW50MzIgR2V0QmVoYXZpb3JzKCkKIAogc3RhdGljIENHQ29udGV4dFJlZiBvdmVycmlk
ZUNHQ29udGV4dChOU1dpbmRvdyAqd2luZG93LCBDR0NvbnRleHRSZWYgY29udGV4dCkKIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIE5TV2luZG93R3JhcGhpY3NDb250ZXh0ICpncmFwaGljc0Nv
bnRleHQgPSAoTlNXaW5kb3dHcmFwaGljc0NvbnRleHQgKil3aW5kb3cuZ3JhcGhpY3NDb250ZXh0
OwogICAgIENHQ29udGV4dFJlZiBzYXZlZENvbnRleHQgPSAoQ0dDb250ZXh0UmVmKWdyYXBoaWNz
Q29udGV4dC5ncmFwaGljc1BvcnQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgQ0dDb250ZXh0UmV0YWluKHNh
dmVkQ29udGV4dCk7CiAgICAgW2dyYXBoaWNzQ29udGV4dCBfd2ViX3NldEdyYXBoaWNzUG9ydDpj
b250ZXh0XTsKICAgICByZXR1cm4gc2F2ZWRDb250ZXh0OwpAQCAtMzAwLDEwICsyOTksOSBAQCBz
dGF0aWMgQ0dDb250ZXh0UmVmIG92ZXJyaWRlQ0dDb250ZXh0KE5TV2luZG93ICp3aW5kb3csIENH
Q29udGV4dFJlZiBjb250ZXh0KQogCiBzdGF0aWMgdm9pZCByZXN0b3JlQ0dDb250ZXh0KE5TV2lu
ZG93ICp3aW5kb3csIENHQ29udGV4dFJlZiBzYXZlZENvbnRleHQpCiB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICBOU1dpbmRvd0dyYXBoaWNzQ29udGV4dCAqZ3JhcGhpY3NDb250ZXh0ID0gKE5T
V2luZG93R3JhcGhpY3NDb250ZXh0ICopd2luZG93LmdyYXBoaWNzQ29udGV4dDsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAgICBbZ3JhcGhpY3NDb250ZXh0IF93ZWJfc2V0R3JhcGhpY3NQb3J0OnNhdmVkQ29udGV4
dF07CiAgICAgQ0dDb250ZXh0UmVsZWFzZShzYXZlZENvbnRleHQpOwogfQpAQCAtMzIzLDEyICsz
MjEsMTEgQEAgc3RhdGljIHZvaWQgRHJhdyhISVdlYlZpZXcqIGluVmlldywgUmduSGFuZGxlIGxp
bWl0UmduLCBDR0NvbnRleHRSZWYgaW5Db250ZXh0KQogICAgICAgICBHcmFmUHRyIHBvcnQ7CiAg
ICAgICAgIFJlY3QgcG9ydFJlY3Q7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAg
R2V0UG9ydCgmcG9ydCk7CiAgICAgICAgIEdldFBvcnRCb3VuZHMocG9ydCwgJnBvcnRSZWN0KTsK
ICAgICAgICAgQ3JlYXRlQ0dDb250ZXh0Rm9yUG9ydChwb3J0LCAmaW5Db250ZXh0KTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogICAgICAgICBTeW5jQ0dDb250ZXh0T3JpZ2luV2l0aFBvcnQoaW5Db250ZXh0
LCBwb3J0KTsKICAgICAgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGluQ29udGV4dCwgMCwgKHBv
cnRSZWN0LmJvdHRvbSAtIHBvcnRSZWN0LnRvcCkpOwogICAgICAgICBDR0NvbnRleHRTY2FsZUNU
TShpbkNvbnRleHQsIDEsIC0xKTsKQEAgLTE0NzUsNyArMTQ3Miw5IEBAIFVwZGF0ZU9ic2VydmVy
KENGUnVuTG9vcE9ic2VydmVyUmVmIG9ic2VydmVyLCBDRlJ1bkxvb3BBY3Rpdml0eSBhY3Rpdml0
eSwgdm9pZCAqCiAgICAgLy8gcHJpbnRmKCJVcGRhdGUgb2JzZXJ2ZXIgY2FsbGVkXG4iKTsKIAog
ICAgIGlmIChyZWdpb24pIHsKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAgICAgR2V0V2luZG93UmVnaW9uKEdldENvbnRyb2xPd25lcih2aWV3LT5mVmll
d1JlZiksIGtXaW5kb3dVcGRhdGVSZ24sIHJlZ2lvbik7CisgICAgICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAKICAgICAgICAgaWYgKCFFbXB0eVJnbihyZWdp
b24pKSB7CiAgICAgICAgICAgICBSZ25IYW5kbGUgb3VyUmduID0gTmV3UmduKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvRE9NL0RPTS5tbQppbmRleCA4ZWJiOGEwZGFmNjM0NWYyMTkwM2Q2ZmVjYjI0ZDhm
MTRlMDZjMmExLi5iMWJlZDBhOWY2MWE1YzEyYTY4ZmUyZGQ0MTk5NWJmMjcxNzJmYTAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0RPTS9ET00ubW0KQEAgLTI0NCw4ICsyNDQsNyBAQCBzdGF0aWMgaW5s
aW5lIFdLUXVhZCB6ZXJvUXVhZCgpCiAKIEBpbXBsZW1lbnRhdGlvbiBET01Ob2RlIChXZWJDb3Jl
SW50ZXJuYWwpCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdvYmpjLXByb3RvY29sLW1ldGhvZC1pbXBsZW1lbnRhdGlv
biIKK0lHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigib2JqYy1wcm90b2NvbC1tZXRob2QtaW1w
bGVtZW50YXRpb24iKQogCiAtIChOU1N0cmluZyAqKWRlc2NyaXB0aW9uCiB7CkBAIC0yNTksNyAr
MjU4LDcgQEAgc3RhdGljIGlubGluZSBXS1F1YWQgemVyb1F1YWQoKQogICAgIHJldHVybiBbTlNT
dHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjwlQCBbJUBdOiAlcD4iLCBbW3NlbGYgY2xhc3NdIGRl
c2NyaXB0aW9uXSwgW3NlbGYgbm9kZU5hbWVdLCBfaW50ZXJuYWxdOwogfQogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKIC0gKEJpbmRp
bmdzOjpSb290T2JqZWN0Kilfcm9vdE9iamVjdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9IaXN0b3J5L1dlYkhpc3RvcnkuaAppbmRleCBmODNjNTI0ZDE5ZGViNzYyN2VjNWVkMjU5ZTFk
YTZiNDZiMTFkZjY5Li41YmNlM2JiNzU1NTY3OTQzOWM2MmJlYTYzOTVjNzIxMTc0MmFkYTZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnkuaApAQCAtMTI4
LDEwICsxMjgsOSBAQCBXRUJLSVRfQ0xBU1NfREVQUkVDQVRFRF9NQUMoMTBfMywgMTBfMTQpCiAg
ICAgQHBhcmFtIGNhbGVuZGFyRGF0ZSBBIGRhdGUgaWRlbnRpZnlpbmcgdGhlIHVuaXF1ZSBkYXkg
b2YgaW50ZXJlc3QuCiAgICAgQHJlc3VsdCBSZXR1cm5zIGFuIGFycmF5IG9mIFdlYkhpc3RvcnlJ
dGVtcyBsYXN0IHZpc2l0ZWQgb24gdGhlIGluZGljYXRlZCBkYXkuCiAqLwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KIC0gKE5TQXJyYXkgKilvcmRlcmVkSXRlbXNMYXN0VmlzaXRlZE9uRGF5OihOU0NhbGVuZGFy
RGF0ZSAqKWNhbGVuZGFyRGF0ZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogI2VuZGlmCiAKIC8qIQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5Lm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5Lm1tCmluZGV4IDkwNDk2YmJiOTkzNjQy
OTk2YmY1YTI0NTZkZjg2ODhkZjg2NTYwN2IuLjRkMTZlMzg4MDYxZDljZmVmM2I4N2E5Y2FlOWFi
NzgwZDA0MmZmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3Rvcnkv
V2ViSGlzdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhp
c3RvcnkubW0KQEAgLTQ0Niw4ICs0NDYsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkhpc3RvcnlEYXRl
S2V5IGRhdGVLZXkoTlNUaW1lSW50ZXJ2YWwgZGF0ZSkKIAogLy8gTUFSSzogREFURS1CQVNFRCBS
RVRSSUVWQUwKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogLSAoTlNBcnJheSAqKW9yZGVyZWRMYXN0Vmlz
aXRlZERheXMKIHsKQEAgLTQ3OSw3ICs0NzgsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkhpc3RvcnlE
YXRlS2V5IGRhdGVLZXkoTlNUaW1lSW50ZXJ2YWwgZGF0ZSkKICAgICByZXR1cm4gX2VudHJpZXNC
eURhdGUtPmdldChkYXRlS2V5KS5nZXQoKTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIC8vIE1BUks6IFVSTCBN
QVRDSElORwogCkBAIC01MzEsOCArNTMwLDcgQEAgc3RhdGljIGlubGluZSBXZWJIaXN0b3J5RGF0
ZUtleSBkYXRlS2V5KE5TVGltZUludGVydmFsIGRhdGUpCiAgICAgcmV0dXJuIFtbTlNVc2VyRGVm
YXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGludGVnZXJGb3JLZXk6QCJXZWJLaXRIaXN0b3J5
SXRlbUxpbWl0Il07CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIC8vIFJldHVybiBhIGRhdGUgdGhh
dCBtYXJrcyB0aGUgYWdlIGxpbWl0IGZvciBoaXN0b3J5IGVudHJpZXMgc2F2ZWQgdG8gb3IKIC8v
IGxvYWRlZCBmcm9tIGRpc2suIEFueSBlbnRyeSBvbGRlciB0aGFuIHRoaXMgaXRlbSBzaG91bGQg
YmUgcmVqZWN0ZWQuCkBAIC01NDIsNyArNTQwLDcgQEAgc3RhdGljIGlubGluZSBXZWJIaXN0b3J5
RGF0ZUtleSBkYXRlS2V5KE5TVGltZUludGVydmFsIGRhdGUpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3VyczowIG1pbnV0ZXM6MCBzZWNv
bmRzOjBdOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogLSAoQk9PTClsb2FkSGlzdG9yeUd1dHNGcm9tVVJMOihO
U1VSTCAqKVVSTCBzYXZlZEl0ZW1zQ291bnQ6KGludCAqKW51bWJlck9mSXRlbXNMb2FkZWQgY29s
bGVjdERpc2NhcmRlZEl0ZW1zSW50bzooTlNNdXRhYmxlQXJyYXkgKilkaXNjYXJkZWRJdGVtcyBl
cnJvcjooTlNFcnJvciAqKillcnJvcgogewpAQCAtNTYxLDEwICs1NTksOSBAQCBzdGF0aWMgaW5s
aW5lIFdlYkhpc3RvcnlEYXRlS2V5IGRhdGVLZXkoTlNUaW1lSW50ZXJ2YWwgZGF0ZSkKICAgICAg
ICAgICAgIHJldHVybiBOTzsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgICAgIE5TRGF0YSAqZGF0YSA9IFtOU1VSTENvbm5lY3Rpb24gc2VuZFN5
bmNocm9ub3VzUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOlVSTF0gcmV0dXJu
aW5nUmVzcG9uc2U6bmlsIGVycm9yOmVycm9yXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIGlm
IChkYXRhLmxlbmd0aCkKICAgICAgICAgICAgIGRpY3Rpb25hcnkgPSBbTlNQcm9wZXJ0eUxpc3RT
ZXJpYWxpemF0aW9uIHByb3BlcnR5TGlzdFdpdGhEYXRhOmRhdGEgb3B0aW9uczpOU1Byb3BlcnR5
TGlzdEltbXV0YWJsZSBmb3JtYXQ6bnVsbHB0ciBlcnJvcjpudWxscHRyXTsKICAgICB9CkBAIC03
NjgsMTUgKzc2NSwxNCBAQCBzdGF0aWMgaW5saW5lIFdlYkhpc3RvcnlEYXRlS2V5IGRhdGVLZXko
TlNUaW1lSW50ZXJ2YWwgZGF0ZSkKICAgICByZXR1cm4gW19oaXN0b3J5UHJpdmF0ZSBvcmRlcmVk
TGFzdFZpc2l0ZWREYXlzXTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogLSAoTlNBcnJheSAqKW9y
ZGVyZWRJdGVtc0xhc3RWaXNpdGVkT25EYXk6KE5TQ2FsZW5kYXJEYXRlICopZGF0ZQogewogICAg
IHJldHVybiBbX2hpc3RvcnlQcml2YXRlIG9yZGVyZWRJdGVtc0xhc3RWaXNpdGVkT25EYXk6ZGF0
ZV07CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogCiAvLyBNQVJLOiBVUkwgTUFUQ0hJTkcKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KaW5kZXggY2MxODU3
YWYwMmJhYTA3OWVjOTJhODFlNDYwNTAwNTg5MjNhOWM5OC4uOGYxN2MzYWY4OWYyYjI3NGFiNDc1
NDVlYTlmOWVhYWE2YzllY2RmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
SGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9I
aXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCkBAIC0xOTksMTAgKzE5OSw5IEBAIHZvaWQgV0tOb3Rp
ZnlIaXN0b3J5SXRlbUNoYW5nZWQoSGlzdG9yeUl0ZW0qKQogI2lmICFQTEFURk9STShJT1MpCiAt
IChOU0ltYWdlICopaWNvbgogewotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoIAotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgcmV0dXJuIFtbV2ViSWNv
bkRhdGFiYXNlIHNoYXJlZEljb25EYXRhYmFzZV0gaWNvbkZvclVSTDpbc2VsZiBVUkxTdHJpbmdd
IHdpdGhTaXplOldlYkljb25TbWFsbFNpemVdOwotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdE5TU3RyaW5nRXh0cmFz
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5t
bQppbmRleCA3Zjk5NTAyZjM2Yjc0OTIzZjMxMWUwMDYxYWViZTE0ZDc2NjQ2Y2NlLi4wN2YxNDFj
NzllNDRlZDk4YmM2OTc5OWM5MmY1YmQzZWNlNzRjODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9NaXNjL1dlYktpdE5TU3RyaW5nRXh0cmFzLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0TlNTdHJpbmdFeHRyYXMubW0KQEAgLTc3LDEwICs3
Nyw5IEBAIHN0YXRpYyBib29sIGNhblVzZUZhc3RSZW5kZXJlcihjb25zdCBVbmlDaGFyKiBidWZm
ZXIsIHVuc2lnbmVkIGxlbmd0aCkKICAgICAgICAgcG9pbnQueSA9IENHQ2VpbGluZyhwb2ludC55
KTsKIAogICAgICAgICBOU0dyYXBoaWNzQ29udGV4dCAqbnNDb250ZXh0ID0gW05TR3JhcGhpY3ND
b250ZXh0IGN1cnJlbnRDb250ZXh0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAg
Q0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IHN0YXRpY19jYXN0PENHQ29udGV4dFJlZj4oW25zQ29u
dGV4dCBncmFwaGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIEdyYXBoaWNzQ29u
dGV4dCBncmFwaGljc0NvbnRleHQgeyBjZ0NvbnRleHQgfTsKIAogICAgICAgICAvLyBXZWJDb3Jl
IHJlcXVpcmVzIGEgZmxpcHBlZCBncmFwaGljcyBjb250ZXh0LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU0ltYWdlRXh0cmFzLm0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9NaXNjL1dlYk5TSW1hZ2VFeHRyYXMubQppbmRleCBjMzI2NDNiNDk4ZmFlNzBm
ZDMxMjRhZTVjNDU2OWUwM2U5NmIyZmMxLi41ZmFhMTdhMmVjMDg1MmRhZjNmMWFhN2U2NTNlNjZi
YTFmOGQxMTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5T
SW1hZ2VFeHRyYXMubQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TSW1h
Z2VFeHRyYXMubQpAQCAtNTMsMTAgKzUzLDkgQEAgLSAodm9pZClfd2ViX3NjYWxlVG9NYXhTaXpl
OihOU1NpemUpc2l6ZQogICAgIAogICAgIGlmKHJlc2l6ZURlbHRhID4gMC4wKXsKICAgICAgICAg
TlNTaXplIG5ld1NpemUgPSBOU01ha2VTaXplKChvcmlnaW5hbFNpemUud2lkdGggKiByZXNpemVE
ZWx0YSksIChvcmlnaW5hbFNpemUuaGVpZ2h0ICogcmVzaXplRGVsdGEpKTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICAgICAgW3NlbGYgc2V0U2NhbGVzV2hlblJlc2l6ZWQ6WUVTXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAgICAgICAgIFtzZWxmIHNldFNpemU6bmV3U2l6ZV07CiAgICAgfQogfQpA
QCAtNjUsMjkgKzY0LDI1IEBAIC0gKHZvaWQpX3dlYl9kaXNzb2x2ZVRvRnJhY3Rpb246KGZsb2F0
KWRlbHRhCiB7CiAgICAgTlNJbWFnZSAqZGlzc29sdmVkSW1hZ2UgPSBbW05TSW1hZ2UgYWxsb2Nd
IGluaXRXaXRoU2l6ZTpbc2VsZiBzaXplXV07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5T
UG9pbnQgcG9pbnQgPSBbc2VsZiBpc0ZsaXBwZWRdID8gTlNNYWtlUG9pbnQoMCwgW3NlbGYgc2l6
ZV0uaGVpZ2h0KSA6IE5TWmVyb1BvaW50OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIAogICAgIC8vIEluIHRo
aXMgY2FzZSB0aGUgZHJhZ2dpbmcgaW1hZ2UgaXMgYWx3YXlzIGNvcnJlY3QuCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICBbZGlzc29sdmVkSW1hZ2Ugc2V0RmxpcHBlZDpbc2VsZiBpc0ZsaXBwZWRd
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIAogICAgIFtkaXNzb2x2ZWRJbWFnZSBsb2NrRm9jdXNdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgW3NlbGYgZGlzc29sdmVUb1BvaW50OnBvaW50IGZyYWN0aW9uOiBk
ZWx0YV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW2Rpc3NvbHZlZEltYWdlIHVubG9ja0ZvY3VzXTsKIAog
ICAgIFtzZWxmIGxvY2tGb2N1c107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbZGlzc29sdmVk
SW1hZ2UgY29tcG9zaXRlVG9Qb2ludDpwb2ludCBvcGVyYXRpb246TlNDb21wb3NpdGVDb3B5XTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICAgICBbc2VsZiB1bmxvY2tGb2N1c107CiAKICAgICBbZGlzc29sdmVkSW1h
Z2UgcmVsZWFzZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dl
Yk5TUGFzdGVib2FyZEV4dHJhcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2Vi
TlNQYXN0ZWJvYXJkRXh0cmFzLm1tCmluZGV4IGZhMjNjNmNiZGIxNDZiODYyY2NlMmVhZTQ4MGFl
YTExOTk2YzFiYjAuLmRhYmJjZGJjMzBhOWUyMTdlZTFlOWNhOThhNDJkNDMzZDIyOTM5NGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0
cmFzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJk
RXh0cmFzLm1tCkBAIC0xODQsMTAgKzE4NCw5IEBAIHN0YXRpYyBOU0FycmF5ICpfd3JpdGFibGVU
eXBlc0ZvckltYWdlV2l0aEFyY2hpdmUgKHZvaWQpCiAKICsgKGludClfd2ViX3NldEZpbmRQYXN0
ZWJvYXJkU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyB3aXRoT3duZXI6KGlkKW93bmVyCiB7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICBOU1Bhc3RlYm9hcmQgKmZpbmRQYXN0ZWJvYXJkID0gW05T
UGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6TlNGaW5kUGJvYXJkXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICBbZmluZFBhc3RlYm9hcmQgZGVjbGFyZVR5cGVzOltOU0FycmF5IGFycmF5V2l0aE9iamVj
dDpsZWdhY3lTdHJpbmdQYXN0ZWJvYXJkVHlwZSgpXSBvd25lcjpvd25lcl07CiAgICAgW2ZpbmRQ
YXN0ZWJvYXJkIHNldFN0cmluZzpzdHJpbmcgZm9yVHlwZTpsZWdhY3lTdHJpbmdQYXN0ZWJvYXJk
VHlwZSgpXTsKICAgICByZXR1cm4gW2ZpbmRQYXN0ZWJvYXJkIGNoYW5nZUNvdW50XTsKQEAgLTI3
OSwxMCArMjc4LDkgQEAgc3RhdGljIENhY2hlZEltYWdlKiBpbWFnZUZyb21FbGVtZW50KERPTUVs
ZW1lbnQgKmRvbUVsZW1lbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFy
Y2hpdmU6KFdlYkFyY2hpdmUgKilhcmNoaXZlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzb3VyY2U6KFdlYkhUTUxWaWV3ICopc291cmNlCiB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICBBU1NFUlQoc2VsZiA9PSBbTlNQYXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRoTmFtZTpO
U0RyYWdQYm9hcmRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIE5TU3RyaW5nICpleHRlbnNpb24gPSBA
IiI7CiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiB0eXBlcyA9IGFkb3B0TlMoW1tOU011
dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOmxlZ2FjeUZpbGVzUHJvbWlzZVBhc3Rl
Ym9hcmRUeXBlKCksIG5pbF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
UGFuZWxzL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1BhbmVscy9XZWJBdXRoZW50aWNhdGlvblBhbmVsLm0KaW5kZXggNjdmMThiOGY1Mzc1ZWFjNTQ1
YjIzYTYzZGI5NzZmNjk0NzZiN2Q0ZS4uNWZjMzIzYzgyMDEzMTQ5Y2EyZDUxMjE2ZDZlODY5ODcz
YTY3ZGRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGFuZWxzL1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwubQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QYW5lbHMv
V2ViQXV0aGVudGljYXRpb25QYW5lbC5tCkBAIC0xMDQsMTAgKzEwNCw5IEBAIC0gKElCQWN0aW9u
KWxvZ0luOihpZClzZW5kZXIKIC0gKEJPT0wpbG9hZE5pYgogewogICAgIGlmICghbmliTG9hZGVk
KSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGlmIChbTlNCdW5kbGUgbG9hZE5p
Yk5hbWVkOldlYkF1dGhlbnRpY2F0aW9uUGFuZWxOaWJOYW1lIG93bmVyOnNlbGZdKSB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgIG5pYkxvYWRlZCA9IFlFUzsKICAgICAgICAgICAg
IFtpbWFnZVZpZXcgc2V0SW1hZ2U6W05TSW1hZ2UgaW1hZ2VOYW1lZDpAIk5TQXBwbGljYXRpb25J
Y29uIl1dOwogICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFn
ZXIubW0KaW5kZXggMDIxMGIwNjZiYWFkMjY5N2UwOWYyOGUwODlhZDM1ZmE3NGYzNjlkZi4uZTE1
MGEzN2RjYzRiYWNjODliNzQ2YTUwNDc1ODk3ZmQ0NWUxMTIzNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkhvc3RNYW5hZ2VyLm1tCkBAIC0xODcsMTAgKzE4Nyw5IEBAIGJvb2wgTmV0c2NhcGVQ
bHVnaW5Ib3N0TWFuYWdlcjo6c3Bhd25QbHVnaW5Ib3N0KGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0
aCwgY3B1X3R5CiAKICAgICBQcm9jZXNzU2VyaWFsTnVtYmVyIHBzbjsKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgR2V0Q3VycmVudFByb2Nlc3MoJnBzbik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBB
U1NFUlQoTUFDSF9QT1JUX1ZBTElEKGNsaWVudFBvcnQpKTsKICAgICBrciA9IF9XS1BIQ2hlY2tJ
bldpdGhQbHVnaW5Ib3N0KHBsdWdpbkhvc3RQb3J0LCBzdGF0aWNfY2FzdDx1aW50OF90Kj4oY29u
c3RfY2FzdDx2b2lkKj4oW2RhdGEgYnl0ZXNdKSksIFtkYXRhIGxlbmd0aF0sIGNsaWVudFBvcnQs
IHBzbi5oaWdoTG9uZ09mUFNOLCBwc24ubG93TG9uZ09mUFNOLCByZW5kZXJTZXJ2ZXJQb3J0LApA
QCAtMzIyLDExICszMjEsMTAgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyOjpkaWRD
cmVhdGVXaW5kb3coKQogICAgICAgICBpZiAoIWhvc3RQcm94eS0+aXNNZW51QmFyVmlzaWJsZSgp
KSB7CiAgICAgICAgICAgICAvLyBNYWtlIG91cnNlbHZlcyB0aGUgZnJvbnQgcHJvY2Vzcy4KICAg
ICAgICAgICAgIFByb2Nlc3NTZXJpYWxOdW1iZXIgcHNuOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAgICAgICAgIEdldEN1cnJlbnRQcm9jZXNzKCZwc24pOwogICAgICAgICAgICAg
U2V0RnJvbnRQcm9jZXNzKCZwc24pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1t
CmluZGV4IGVjNWYwZGE1OGE2MmE5ZTU0NDc4Y2MyYzBmNzA3ZWI0YzcxMDEwYjYuLmYxYzRhZDMx
ODkwZTA1NmFlYjM4OGI0ZGNiZGVkZmI1NGY2MDFmMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2lu
SG9zdFByb3h5Lm1tCkBAIC0zNDEsMzIgKzM0MSwyOSBAQCBib29sIE5ldHNjYXBlUGx1Z2luSG9z
dFByb3h5Ojpwcm9jZXNzUmVxdWVzdHMoKQogCiB2b2lkIE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5
OjptYWtlQ3VycmVudFByb2Nlc3NGcm9udFByb2Nlc3MoKQogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgUHJvY2Vzc1NlcmlhbE51bWJlciBwc247CiAgICAgR2V0Q3VycmVudFByb2Nlc3MoJnBz
bik7CiAgICAgU2V0RnJvbnRQcm9jZXNzKCZwc24pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiB2b2lkIE5l
dHNjYXBlUGx1Z2luSG9zdFByb3h5OjptYWtlUGx1Z2luSG9zdFByb2Nlc3NGcm9udFByb2Nlc3Mo
KSBjb25zdAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgU2V0RnJvbnRQcm9jZXNzKCZtX3Bs
dWdpbkhvc3RQU04pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiBib29sIE5ldHNjYXBlUGx1Z2luSG9zdFBy
b3h5Ojppc1BsdWdpbkhvc3RQcm9jZXNzRnJvbnRQcm9jZXNzKCkgY29uc3QKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIFByb2Nlc3NTZXJpYWxOdW1iZXIgZnJvbnRQcm9jZXNzOwogICAgIEdl
dEZyb250UHJvY2VzcygmZnJvbnRQcm9jZXNzKTsKIAogICAgIEJvb2xlYW4gaXNTYW1lUHJvY2Vz
cyA9IDA7CiAgICAgU2FtZVByb2Nlc3MoJmZyb250UHJvY2VzcywgJm1fcGx1Z2luSG9zdFBTTiwg
JmlzU2FtZVByb2Nlc3MpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgcmV0dXJuIGlzU2FtZVByb2Nlc3M7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
bHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggZTkzZmI1
MDZlNWRlMGE1ZGFlM2FmYTU2NThjYmFmNDE3OGUyNmFhMS4uYWM3YTRiYjMxOGM1NWY5MzU5Yzk4
ZTBhOGJmOTZkMWU2ZTQ0MzYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQ
cm94eS5tbQpAQCAtNDIzLDEwICs0MjMsOSBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQ
cm94eTo6c3RhcnRUaW1lcnMoYm9vbCB0aHJvdHRsZVRpbWVycykKICAgICAKIHZvaWQgTmV0c2Nh
cGVQbHVnaW5JbnN0YW5jZVByb3h5Ojptb3VzZUV2ZW50KE5TVmlldyAqcGx1Z2luVmlldywgTlNF
dmVudCAqZXZlbnQsIE5QQ29jb2FFdmVudFR5cGUgdHlwZSkKIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgIE5TUG9pbnQgc2NyZWVuUG9pbnQgPSBbW2V2ZW50IHdpbmRvd10gY29udmVydEJhc2VU
b1NjcmVlbjpbZXZlbnQgbG9jYXRpb25JbldpbmRvd11dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIE5TUG9p
bnQgcGx1Z2luUG9pbnQgPSBbcGx1Z2luVmlldyBjb252ZXJ0UG9pbnQ6W2V2ZW50IGxvY2F0aW9u
SW5XaW5kb3ddIGZyb21WaWV3Om5pbF07CiAgICAgCiAgICAgaW50IGNsaWNrQ291bnQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWRO
ZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hv
c3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggZjNlMDRiNGY1NTgwNjEx
OTFjODZmZDY3NzU1MTU5MTQ4NjNkMTE5NC4uNTA5NmY3ZDNhMWNmZjhjM2RkNTZlN2I4ODkzMTVh
YTdkYmNkMzg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9I
b3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQpA
QCAtNDc3LDggKzQ3Nyw3IEBAIGV4dGVybiAiQyIgewogICAgIH0KIAogICAgIGlmIChfcHJveHkp
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgaWYgKF9zb2Z0d2FyZVJlbmRlcmVy
KSB7CiAgICAgICAgICAgICBpZiAoW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0RHJh
d2luZ1RvU2NyZWVuXSkgewogICAgICAgICAgICAgICAgIF9zb2Z0d2FyZVJlbmRlcmVyLT5yZW5k
ZXIoKENHQ29udGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFw
aGljc1BvcnRdLCBOU1JlY3RUb0NHUmVjdChyZWN0KSk7CkBAIC00ODgsNyArNDg3LDcgQEAgZXh0
ZXJuICJDIiB7CiAgICAgICAgIH0gZWxzZSBpZiAoX3NuYXBzaG90dGluZyAmJiBbc2VsZiBzdXBw
b3J0c1NuYXBzaG90dGluZ10pIHsKICAgICAgICAgICAgIF9wcm94eS0+c25hcHNob3QocmVpbnRl
cnByZXRfY2FzdDxDR0NvbnRleHRSZWY+KFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRl
eHRdIGdyYXBoaWNzUG9ydF0pLCBbc2VsZiBib3VuZHNdLnNpemUud2lkdGgsIFtzZWxmIGJvdW5k
c10uc2l6ZS5oZWlnaHQpOwogICAgICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgICAgIHJl
dHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5z
L0hvc3RlZC9XZWJUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm0KaW5k
ZXggZmJkNjY3Yjc0OGY4NDIzZWVlODgxN2FlNGQxNWI1YTc2NjJmYjUxOS4uNTA0OTJmMTBlZGZh
N2U1MmE4MDFhNTY5MmY1MTJhZTAwNzAzODhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYlRleHRJbnB1dFdp
bmRvd0NvbnRyb2xsZXIubQpAQCAtMTA2LDE5ICsxMDYsMTcgQEAgLSAodm9pZClfa2V5Ym9hcmRJ
bnB1dFNvdXJjZUNoYW5nZWQ6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiAKIC0gKEJP
T0wpX2ludGVycHJldEtleUV2ZW50OihOU0V2ZW50ICopZXZlbnQgc3RyaW5nOihOU1N0cmluZyAq
KilzdHJpbmcKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEJPT0wgaGFkTWFya2VkVGV4dCA9
IFtfaW5wdXRUZXh0VmlldyBoYXNNYXJrZWRUZXh0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgICpzdHJp
bmcgPSBuaWw7CiAKICAgICAvLyBMZXQgVFNNIGtub3cgdGhhdCBhIGJvdHRvbSBpbnB1dCB3aW5k
b3cgd291bGQgYmUgY3JlYXRlZCBmb3IgbWFya2VkIHRleHQuCiAgICAgLy8gRklYTUU6IENhbiBi
ZSByZW1vdmVkIG9uY2Ugd2UgY2FuIHJlbHkgb24gX19OU1VzZXNGbG9hdGluZ0lucHV0V2luZG93
IChvciBhIGJldHRlciBBUEkpIGJlaW5nIGF2YWlsYWJsZSBldmVyeXdoZXJlLgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2Nhc3QtcXVhbCIKKyAgICBJR05PUkVfV0FSTklOR1NfQkVHSU4oImNhc3QtcXVhbCIpCiAgICAg
RXZlbnRSZWYgY2FyYm9uRXZlbnQgPSAoRXZlbnRSZWYpW2V2ZW50IGV2ZW50UmVmXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR1NfRU5ECiAgICAgaWYg
KGNhcmJvbkV2ZW50KSB7CiAgICAgICAgIEJvb2xlYW4gaWdub3JlUEFIID0gdHJ1ZTsKICAgICAg
ICAgU2V0RXZlbnRQYXJhbWV0ZXIoY2FyYm9uRXZlbnQsICdpUEFIJywgdHlwZUJvb2xlYW4sIHNp
emVvZihpZ25vcmVQQUgpLCAmaWdub3JlUEFIKTsKQEAgLTEyNywxMCArMTI1LDkgQEAgLSAoQk9P
TClfaW50ZXJwcmV0S2V5RXZlbnQ6KE5TRXZlbnQgKilldmVudCBzdHJpbmc6KE5TU3RyaW5nICoq
KXN0cmluZwogICAgIGlmICghW1tfaW5wdXRUZXh0VmlldyBpbnB1dENvbnRleHRdIGhhbmRsZUV2
ZW50OmV2ZW50XSkKICAgICAgICAgcmV0dXJuIE5POwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgaWYgKFtfaW5wdXRUZXh0VmlldyBoYXNNYXJrZWRUZXh0XSkgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAgICAgICAgLy8gRG9uJ3Qgc2hvdyB0aGUgaW5wdXQgbWV0aG9kIHdpbmRvdyBmb3IgZGVh
ZCBrZXlzCiAgICAgICAgIGlmIChbW2V2ZW50IGNoYXJhY3RlcnNdIGxlbmd0aF0gPiAwKQogICAg
ICAgICAgICAgW3NlbGYgb3JkZXJGcm9udDpuaWxdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmlu
ZGV4IDZkODVhOGM1ZWE0MTU5ODJiMTA4ZWVhYTZkZWM0N2MwYzg2NjE5OTQuLmI0YzVlNmY3MDZh
OTBmNTIwOGJmNzI1ZTc5MzZjZTJkMGVjY2E1MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0K
QEAgLTcyOSwyNSArNzI5LDIyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIHN3aXRj
aCAoc291cmNlU3BhY2UpIHsKICAgICAgICAgY2FzZSBOUENvb3JkaW5hdGVTcGFjZVBsdWdpbjoK
ICAgICAgICAgICAgIHNvdXJjZVBvaW50SW5TY3JlZW5TcGFjZSA9IFtzZWxmIGNvbnZlcnRQb2lu
dDpzb3VyY2VQb2ludCB0b1ZpZXc6bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgICAgICAgICBzb3VyY2VQb2ludEluU2NyZWVuU3BhY2UgPSBbW3NlbGYgY3VycmVudFdpbmRv
d10gY29udmVydEJhc2VUb1NjcmVlbjpzb3VyY2VQb2ludEluU2NyZWVuU3BhY2VdOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgICAgICBj
YXNlIE5QQ29vcmRpbmF0ZVNwYWNlV2luZG93OgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICAgICAgICAgIHNvdXJjZVBvaW50SW5TY3JlZW5TcGFjZSA9IFtbc2VsZiBjdXJyZW50V2lu
ZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOnNvdXJjZVBvaW50XTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBOUENvb3Jk
aW5hdGVTcGFjZUZsaXBwZWRXaW5kb3c6CiAgICAgICAgICAgICBzb3VyY2VQb2ludC55ID0gW1tz
ZWxmIGN1cnJlbnRXaW5kb3ddIGZyYW1lXS5zaXplLmhlaWdodCAtIHNvdXJjZVBvaW50Lnk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgc291cmNlUG9pbnRJblNjcmVl
blNwYWNlID0gW1tzZWxmIGN1cnJlbnRXaW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46c291cmNl
UG9pbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIAogICAgICAgICBjYXNlIE5QQ29vcmRpbmF0ZVNwYWNlU2NyZWVuOgpAQCAtNzY3LDI1ICs3
NjQsMjIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgLy8gVGhlbiBjb252ZXJ0IGJh
Y2sgdG8gdGhlIGRlc3RpbmF0aW9uIHNwYWNlCiAgICAgc3dpdGNoIChkZXN0U3BhY2UpIHsKICAg
ICAgICAgY2FzZSBOUENvb3JkaW5hdGVTcGFjZVBsdWdpbjoKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgICAgICAgICBkZXN0UG9pbnQgPSBbW3NlbGYgY3VycmVudFdpbmRvd10gY29u
dmVydFNjcmVlblRvQmFzZTpzb3VyY2VQb2ludEluU2NyZWVuU3BhY2VdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiAgICAgICAgICAgICBkZXN0UG9pbnQgPSBbc2VsZiBjb252ZXJ0UG9pbnQ6ZGVzdFBv
aW50IGZyb21WaWV3Om5pbF07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAg
ICAgICBjYXNlIE5QQ29vcmRpbmF0ZVNwYWNlV2luZG93OgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAgICAgICAgIGRlc3RQb2ludCA9IFtbc2VsZiBjdXJyZW50V2luZG93XSBjb252
ZXJ0U2NyZWVuVG9CYXNlOnNvdXJjZVBvaW50SW5TY3JlZW5TcGFjZV07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgTlBD
b29yZGluYXRlU3BhY2VGbGlwcGVkV2luZG93OgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICAgICAgICAgIGRlc3RQb2ludCA9IFtbc2VsZiBjdXJyZW50V2luZG93XSBjb252ZXJ0U2Ny
ZWVuVG9CYXNlOnNvdXJjZVBvaW50SW5TY3JlZW5TcGFjZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICAgICAgICAgIGRlc3RQb2ludC55ID0gW1tzZWxmIGN1cnJlbnRXaW5kb3ddIGZyYW1lXS5z
aXplLmhlaWdodCAtIGRlc3RQb2ludC55OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2Nh
cGVQbHVnaW5QYWNrYWdlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJO
ZXRzY2FwZVBsdWdpblBhY2thZ2UubW0KaW5kZXggZjIyODkzNDc0MjE5MDRiZWUzYzg4NjY2YzRl
MzAwOTJmYzEwNTBkZS4uNTRkMGFkYzRmMGUyZjI1ODc0NzhlYWY5ZjYwNjE2YzkwMTg0NDU1YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBs
dWdpblBhY2thZ2UubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJO
ZXRzY2FwZVBsdWdpblBhY2thZ2UubW0KQEAgLTE2NywxNCArMTY3LDEzIEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogICAgIGlmICghTlBfSW5pdGlhbGl6ZSB8fCAhTlBfR2V0RW50cnlQb2lu
dHMgfHwgIU5QX1NodXRkb3duKQogICAgICAgICByZXR1cm4gTk87CiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIC8vIFBsdWdpbnMgKGF0IGxlYXN0IFFUKSByZXF1aXJlIHRoYXQgeW91IGNhbGwg
VXNlUmVzRmlsZSBvbiB0aGUgcmVzb3VyY2UgZmlsZSBiZWZvcmUgbG9hZGluZyBpdC4KICAgICBy
ZXNvdXJjZVJlZiA9IFtzZWxmIG9wZW5SZXNvdXJjZUZpbGVdOwogICAgIGlmIChyZXNvdXJjZVJl
ZiAhPSAtMSkgewogICAgICAgICBVc2VSZXNGaWxlKHJlc291cmNlUmVmKTsKICAgICB9Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiAKICAgICBicm93c2VyRnVuY3MudmVyc2lvbiA9IE5QX1ZFUlNJT05fTUlOT1I7CiAg
ICAgYnJvd3NlckZ1bmNzLnNpemUgPSBzaXplb2YoTlBOZXRzY2FwZUZ1bmNzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZp
ZXcubW0KaW5kZXggNDlkYzFjNTE0ZjcyYzQ0OWZmZGFlNzI5Y2E4ZDljMDgxNjRhOWUzZS4uOWE3
NDVkOTM4M2Y3NDQ3ZjU0MmRmNTA0NWUyNDQ1YjM4NTNlMDg4MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0K
QEAgLTM3NywxMCArMzc3LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGdldE5QUmVjdChjb25zdCBO
U1JlY3QmIG5yLCBOUFJlY3QmIG5wcikKICAgICAgICAgICAgIFJnbkhhbmRsZSBjbGlwUmVnaW9u
ID0gTmV3UmduKCk7CiAgICAgICAgICAgICBxZFBvcnRTdGF0ZS0+Y2xpcFJlZ2lvbiA9IGNsaXBS
ZWdpb247CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBDR0NvbnRl
eHRSZWYgY3VycmVudENvbnRleHQgPSAoQ0dDb250ZXh0UmVmKVtbTlNHcmFwaGljc0NvbnRleHQg
Y3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAg
ICAgICAgIGlmIChjdXJyZW50Q29udGV4dCAmJiBDR0NvbnRleHRHZXRUeXBlKGN1cnJlbnRDb250
ZXh0KSA9PSBrQ0dDb250ZXh0VHlwZUJpdG1hcCkgewogICAgICAgICAgICAgICAgIC8vIFdlIGNo
ZWNrIGZvciBrQ0dDb250ZXh0VHlwZUJpdG1hcCBoZXJlLCBiZWNhdXNlIGlmIHdlIGp1c3QgY2Fs
bGVkIENHQml0bWFwQ29udGV4dEdldERhdGEKICAgICAgICAgICAgICAgICAvLyBvbiBhbnkgY29u
dGV4dCwgd2UnZCBsb2cgdG8gdGhlIGNvbnNvbGUgZXZlcnkgdGltZS4gQnV0IGV2ZW4gaWYgY3Vy
cmVudENvbnRleHQgaXMgYQpAQCAtNTAzLDEwICs1MDIsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQg
Z2V0TlBSZWN0KGNvbnN0IE5TUmVjdCYgbnIsIE5QUmVjdCYgbnByKQogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBBU1NFUlQoW05TVmlldyBmb2N1c1ZpZXddID09IHNlbGYpOwogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSBz
dGF0aWNfY2FzdDxDR0NvbnRleHRSZWY+KFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRl
eHRdIGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICAgICAgICAgIFBv
cnRTdGF0ZV9DRyAqY2dQb3J0U3RhdGUgPSAoUG9ydFN0YXRlX0NHICopbWFsbG9jKHNpemVvZihQ
b3J0U3RhdGVfQ0cpKTsKICAgICAgICAgICAgIHBvcnRTdGF0ZSA9IChQb3J0U3RhdGUpY2dQb3J0
U3RhdGU7CkBAIC02OTUsMTAgKzY5Myw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3Qo
Y29uc3QgTlNSZWN0JiBuciwgTlBSZWN0JiBucHIpCiB7CiAgICAgQVNTRVJUKF9ldmVudEhhbmRs
ZXIpOwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQg
PSBzdGF0aWNfY2FzdDxDR0NvbnRleHRSZWY+KFtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENv
bnRleHRdIGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIF9ldmVudEhhbmRsZXItPmRy
YXdSZWN0KGNvbnRleHQsIHJlY3QpOwogfQogCkBAIC0xMzM4LDEwICsxMzM1LDkgQEAgc3RhdGlj
IGlubGluZSB2b2lkIGdldE5QUmVjdChjb25zdCBOU1JlY3QmIG5yLCBOUFJlY3QmIG5wcikKICAg
ICAgICAgaWYgKHByaW50ZWRQbHVnaW5CaXRtYXApIHsKICAgICAgICAgICAgIC8vIEZsaXAgdGhl
IGJpdG1hcCBiZWZvcmUgZHJhd2luZyBiZWNhdXNlIHRoZSBRdWlja0RyYXcgcG9ydCBpcyBmbGlw
cGVkIHJlbGF0aXZlCiAgICAgICAgICAgICAvLyB0byB0aGlzIHZpZXcuCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgICAgICAgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IChDR0Nv
bnRleHRSZWYpW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShj
Z0NvbnRleHQpOwogICAgICAgICAgICAgTlNSZWN0IGJvdW5kcyA9IFtzZWxmIGJvdW5kc107CiAg
ICAgICAgICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY2dDb250ZXh0LCAwLjBmLCBOU0hlaWdo
dChib3VuZHMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMv
V2ViUGx1Z2luQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMv
V2ViUGx1Z2luQ29udHJvbGxlci5tbQppbmRleCAyOTBmZWY2M2FkOTE2YWE2MThkMzBhMjFkOTE0
M2UyMThlYzkwZTg1Li44Mzc5ZDNkN2M4M2IwMTUwNTJkZjgxMWNmNDM3MTMxNzkwY2I3NDU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRy
b2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJQbHVnaW5D
b250cm9sbGVyLm1tCkBAIC02NTQsMjEgKzY1NCwxOSBAQCBzdGF0aWMgYWxlcnREaWRFbmRJTVAg
b3JpZ2luYWxfVFNVcGRhdGVDaGVja19hbGVydERpZEVuZF9yZXR1cm5Db2RlX2NvbnRleHRJbmZv
XwogCiBzdGF0aWMgdm9pZCBXZWJLaXRfVFNVcGRhdGVDaGVja19hbGVydERpZEVuZF9yZXR1cm5D
b2RlX2NvbnRleHRJbmZvXyhpZCBvYmplY3QsIFNFTCBzZWxlY3RvciwgTlNBbGVydCAqYWxlcnQs
IE5TSW50ZWdlciByZXR1cm5Db2RlLCB2b2lkKiBjb250ZXh0SW5mbykKIHsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIFtbKFRTVXBkYXRlQ2hlY2sgKilvYmplY3QgZGVsZWdhdGVdIGF1dG9yZWxl
YXNlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIG9yaWdpbmFsX1RTVXBkYXRlQ2hlY2tfYWxlcnREaWRF
bmRfcmV0dXJuQ29kZV9jb250ZXh0SW5mb18ob2JqZWN0LCBzZWxlY3RvciwgYWxlcnQsIHJldHVy
bkNvZGUsIGNvbnRleHRJbmZvKTsKIH0KIAogc3RhdGljIHZvaWQgV2ViS2l0X05TQWxlcnRfYmVn
aW5TaGVldE1vZGFsRm9yV2luZG93X21vZGFsRGVsZWdhdGVfZGlkRW5kU2VsZWN0b3JfY29udGV4
dEluZm9fKGlkIG9iamVjdCwgU0VMIHNlbGVjdG9yLCBOU1dpbmRvdyAqd2luZG93LCBpZCBtb2Rh
bERlbGVnYXRlLCBTRUwgZGlkRW5kU2VsZWN0b3IsIHZvaWQqIGNvbnRleHRJbmZvKQogewotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKGlzS2luZE9mQ2xhc3MobW9kYWxEZWxlZ2F0ZSwgQCJU
U1VwZGF0ZUNoZWNrIikpCiAgICAgICAgIFtbKFRTVXBkYXRlQ2hlY2sgKiltb2RhbERlbGVnYXRl
IGRlbGVnYXRlXSByZXRhaW5dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgb3JpZ2luYWxfTlNBbGVydF9i
ZWdpblNoZWV0TW9kYWxGb3JXaW5kb3dfbW9kYWxEZWxlZ2F0ZV9kaWRFbmRTZWxlY3Rvcl9jb250
ZXh0SW5mb18ob2JqZWN0LCBzZWxlY3Rvciwgd2luZG93LCBtb2RhbERlbGVnYXRlLCBkaWRFbmRT
ZWxlY3RvciwgY29udGV4dEluZm8pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCmluZGV4IDdiMWZiZWFlZTEwNjA5
YmVjOWYzYzJmZTRkNjQ2Njk5ZGQzZDRhZjguLjg5NzEwMzhhMWMxMzkyZTBmNWNhYjNjNmFjYTli
ZDVhNzMxZWUyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1BvcHVwTWVudU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KQEAgLTExMywxNSArMTEzLDE0IEBAIHZvaWQgUG9w
dXBNZW51TWFjOjpwb3B1bGF0ZSgpCiAgICAgICAgIFttZW51SXRlbSBzZXRFbmFibGVkOm1fY2xp
ZW50LT5pdGVtSXNFbmFibGVkKGkpXTsKICAgICAgICAgW21lbnVJdGVtIHNldFRvb2xUaXA6bV9j
bGllbnQtPml0ZW1Ub29sVGlwKGkpXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAg
ICAvLyBBbGxvdyB0aGUgYWNjZXNzaWJsZSB0ZXh0IG9mIHRoZSBpdGVtIHRvIGJlIG92ZXJyaWRk
ZW4gaWYgbmVjZXNzYXJ5LgogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkgewogICAgICAgICAgICAgTlNTdHJpbmcgKmFjY2Vzc2liaWxpdHlPdmVycmlk
ZSA9IG1fY2xpZW50LT5pdGVtQWNjZXNzaWJpbGl0eVRleHQoaSk7CiAgICAgICAgICAgICBpZiAo
W2FjY2Vzc2liaWxpdHlPdmVycmlkZSBsZW5ndGhdKQogICAgICAgICAgICAgICAgIFttZW51SXRl
bSBhY2Nlc3NpYmlsaXR5U2V0T3ZlcnJpZGVWYWx1ZTphY2Nlc3NpYmlsaXR5T3ZlcnJpZGUgZm9y
QXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uQXR0cmlidXRlXTsKICAgICAgICAg
fQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xp
ZW50LmgKaW5kZXggYzhkMzNlYjE4OWE2ZjMxZDVjY2JkZTE4ZWQ1N2I2ZmU1NGNmZjdkNC4uYzNj
MzNkZGE2ZTdkYjY2OTFjNThjZmE2NWRiYTliMDE4NzJiNmVjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJu
YXRpdmVUZXh0Q2xpZW50LmgKQEAgLTUwLDE0ICs1MCwxMSBAQCBwdWJsaWM6CiAjZW5kaWYKIHBy
aXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNpZiBkZWZpbmVkKF9faGFzX3dhcm5pbmcpICYmIF9faGFzX3dhcm5pbmcoIi1XdW51c2VkLXBy
aXZhdGUtZmllbGQiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2Vk
LXByaXZhdGUtZmllbGQiCi0jZW5kaWYKK0lHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigidW51
c2VkLXByaXZhdGUtZmllbGQiKQogI2VuZGlmCiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwogI2lm
IFBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9DTEFO
R19XQVJOSU5HU19FTkQKICNlbmRpZgogI2lmIFVTRShBVVRPQ09SUkVDVElPTl9QQU5FTCkKICAg
ICBDb3JyZWN0aW9uUGFuZWwgbV9jb3JyZWN0aW9uUGFuZWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbQppbmRleCBh
NTkyNGY0N2UwNjcyY2U2YTU0NDE5ODgxNDA1N2E2ZjdkNjhkY2UyLi5hNGNjNmFmMjdhODJhZTdi
ZTYwNjA3NTBiNTUxMzg4YzAxYWFiMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0KQEAgLTEzMywxMCArMTMz
LDkgQEAgdm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcoRHJhZ0l0ZW0gZHJhZ0l0ZW0sIERh
dGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBGcmEKICAgICAgICAgICAgIFJlcG9ydERpc2NhcmRl
ZERlbGVnYXRlRXhjZXB0aW9uKHNlbGVjdG9yLCBleGNlcHRpb24pOwogICAgICAgICB9CiAgICAg
fSBlbHNlCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFt0b3BIVE1MVmlldyBkcmFn
SW1hZ2U6ZHJhZ05TSW1hZ2UgYXQ6ZHJhZ0xvY2F0aW9uSW5Db250ZW50Q29vcmRpbmF0ZXMgb2Zm
c2V0Ok5TWmVyb1NpemUgZXZlbnQ6ZXZlbnQgcGFzdGVib2FyZDpwYXN0ZWJvYXJkIHNvdXJjZTpz
b3VyY2VIVE1MVmlldyBzbGlkZUJhY2s6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHZvaWQg
V2ViRHJhZ0NsaWVudDo6YmVnaW5EcmFnKERyYWdJdGVtIGRyYWdJdGVtLCBGcmFtZSYgZnJhbWUs
IGNvbnN0IEludFBvaW50JiBtb3VzZURvd25Qb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIG1vdXNl
RHJhZ2dlZFBvc2l0aW9uLCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRHJhZ1NvdXJjZUFj
dGlvbiBkcmFnU291cmNlQWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCA5
YjkxMDdkZmYyODRmODljNTg3MjA0ZDZiMTYzZWUzOGQ0ZGNlZWI2Li4yODIxMjQyNzIzMmQyMzE5
M2IyODFjYzE1YWYyMGMyMWJkOTlhZjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpA
QCAtMzA4LDIwICszMDgsMTggQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1h
aW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiBkb2MKIAogICAgIGlmICgh
bWFpblJlc291cmNlTG9hZGVyKSB7CiAgICAgICAgIC8vIFRoZSByZXNvdXJjZSBoYXMgYWxyZWFk
eSBiZWVuIGNhY2hlZCwgb3IgdGhlIGNvbnZlcnNpb24gaXMgYmVpbmcgYXR0bXB0ZWQgd2hlbiBu
b3QgY2FsbGluZyBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKCkuCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFdlYkRvd25sb2FkICp3ZWJEb3dubG9hZCA9IFtb
V2ViRG93bmxvYWQgYWxsb2NdIGluaXRXaXRoUmVxdWVzdDpyZXF1ZXN0Lm5zVVJMUmVxdWVzdChI
VFRQQm9keVVwZGF0ZVBvbGljeTo6VXBkYXRlSFRUUEJvZHkpIGRlbGVnYXRlOlt3ZWJWaWV3IGRv
d25sb2FkRGVsZWdhdGVdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFt3ZWJEb3dubG9hZCBh
dXRvcmVsZWFzZV07CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBSZXNvdXJjZUhhbmRs
ZSogaGFuZGxlID0gbWFpblJlc291cmNlTG9hZGVyLT5oYW5kbGUoKTsKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICBbV2ViRG93bmxvYWQgX2Rvd25sb2FkV2l0aExvYWRpbmdDb25uZWN0aW9uOmhhbmRs
ZS0+Y29ubmVjdGlvbigpIHJlcXVlc3Q6cmVxdWVzdC5uc1VSTFJlcXVlc3QoSFRUUEJvZHlVcGRh
dGVQb2xpY3k6OlVwZGF0ZUhUVFBCb2R5KSByZXNwb25zZTpyZXNwb25zZS5uc1VSTFJlc3BvbnNl
KCkgZGVsZWdhdGU6W3dlYlZpZXcgZG93bmxvYWREZWxlZ2F0ZV0gcHJveHk6bmlsXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogfQogCiBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvYWRSZXNvdXJj
ZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRlciogbG9hZGVyLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBpbnQgbGVu
Z3RoKQpAQCAtMjM0NSwxMCArMjM0Myw5IEBAIHN0YXRpYyBOU0ltYWdlICp3ZWJHZXROU0ltYWdl
KEltYWdlKiBpbWFnZSwgTlNTaXplIHNpemUpCiAgICAgaWYgKCFuc0ltYWdlKQogICAgICAgICBy
ZXR1cm4gbmlsOwogICAgIGlmICghTlNFcXVhbFNpemVzKFtuc0ltYWdlIHNpemVdLCBzaXplKSkg
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBbbnNJbWFnZSBzZXRTY2FsZXNXaGVu
UmVzaXplZDpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgW25zSW1hZ2Ugc2V0U2l6ZTpz
aXplXTsKICAgICB9CiAgICAgcmV0dXJuIG5zSW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCmluZGV4IDkx
YjY1YmVjOTRiZjg5NGY0MTY1NGJlOTRiZWRhMzMxZDllZWVkOTAuLmM4YmE3ZmI0MTJiZGMwZDM4
NzdkOWViZDQ3ZjExZTJlYmVjNjc3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tCkBAIC0yNjYsMTAgKzI2
Niw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIEFTU0VSVChbX3RhcmdldFZpZXcg
d2luZG93XSk7CiAKICAgICBOU1JlY3QgaGlnaGxpZ2h0V2luZG93RnJhbWUgPSBbX3RhcmdldFZp
ZXcgY29udmVydFJlY3Q6W190YXJnZXRWaWV3IHZpc2libGVSZWN0XSB0b1ZpZXc6bmlsXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIGhpZ2hsaWdodFdpbmRvd0ZyYW1lLm9yaWdpbiA9IFtbX3Rh
cmdldFZpZXcgd2luZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOmhpZ2hsaWdodFdpbmRvd0ZyYW1l
Lm9yaWdpbl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICByZXR1cm4gaGlnaGxpZ2h0V2luZG93RnJhbWU7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2Vi
Tm9kZUhpZ2hsaWdodFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0
b3IvV2ViTm9kZUhpZ2hsaWdodFZpZXcubW0KaW5kZXggZTdjZDVlNDYyZGYyNjhmYWQyMDZkZGE1
MTJkZDUzMzM1M2IxOTA0Ni4uYTVhNTBjZWNhNTIxMTVkMzkyNDA1OGE0ODAyZmVhNzZhYzFkMGRk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5v
ZGVIaWdobGlnaHRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3Bl
Y3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbQpAQCAtOTgsMTAgKzk4LDkgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKICAgICAgICAgQVNTRVJUKFtbTlNHcmFwaGljc0NvbnRleHQgY3Vy
cmVudENvbnRleHRdIGlzRmxpcHBlZF0pOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
ICAgIEdyYXBoaWNzQ29udGV4dCBjb250ZXh0KChQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCopW1tO
U0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgICAgICBbX3dlYk5vZGVIaWdobGlnaHQgaW5zcGVjdG9yQ29udHJvbGxlcl0t
PmRyYXdIaWdobGlnaHQoY29udGV4dCk7CiAgICAgICAgIFtOU0dyYXBoaWNzQ29udGV4dCByZXN0
b3JlR3JhcGhpY3NTdGF0ZV07CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJDbGlwVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViQ2xpcFZpZXcubW0KaW5kZXggNWZkNWMxNDI3MDJiMTg2ZWE5NDA3ZjM4ZmMwZTNj
OTM2YjQ3YjQ2YS4uN2Y1NTI0YTM0NWNmYjVhMmVmN2IxMzRjMTFiZDgwNjBmZjMxMGFjYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJDbGlwVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1tCkBAIC02
Niw4ICs2Niw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIGlmICghc2VsZikKICAg
ICAgICAgcmV0dXJuIG5pbDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8gSW4gV2ViSFRN
TFZpZXcsIHdlIHNldCBhIGNsaXAuIFRoaXMgaXMgbm90IHR5cGljYWwgdG8gZG8gaW4gYW4KICAg
ICAvLyBOU1ZpZXcsIGFuZCB3aGlsZSBjb3JyZWN0IGZvciBhbnkgb25lIGludm9jYXRpb24gb2Yg
ZHJhd1JlY3Q6LAogICAgIC8vIGl0IGNhdXNlcyBzb21lIGJhZCBwcm9ibGVtcyBpZiB0aGF0IGNs
aXAgaXMgY2FjaGVkIGJldHdlZW4gY2FsbHMuCkBAIC03OCw3ICs3Nyw3IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogICAgIC8vIFNlZSB0aGVzZSBidWdzIGZvciBtb3JlIGluZm9ybWF0aW9u
OgogICAgIC8vIDxyZGFyOi8vcHJvYmxlbS8zNDA5MzE1PjogUkVHUkVTU1NJT04gKDdCNTgtN0I2
MCk/OiBTYWZhcmkgZHJhd3MgYmxhbmsgZnJhbWVzIG9uIG1hY29zeC5hcHBsZS5jb20gcGVyZiBw
YWdlCiAgICAgW3NlbGYgcmVsZWFzZUdTdGF0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICByZXR1cm4g
c2VsZjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
RnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmlu
ZGV4IGM1YzI1ZGU1ZjhjYjZlODI1NWRjYThmNDJjODhjOGY0YzI2NzlhMTcuLjM3YjMzYzgxMDg0
MDJiZWNmN2U1NDU3MDU2YzRkNjM3MWMyMjA0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtNDQ0LDEwICs0NDQsOSBAQCBzdGF0aWMgTlNVUkwg
KmNyZWF0ZVVuaXF1ZVdlYkRhdGFVUkwoKTsKICAgICAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9
IGZyYW1lLT52aWV3KCkpIHsKICAgICAgICAgICAgIHZpZXctPnNldFRyYW5zcGFyZW50KCFkcmF3
c0JhY2tncm91bmQpOwogI2lmICFQTEFURk9STShJT1MpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgICAgICAgICAgQ29sb3IgY29sb3IgPSBjb2xvckZyb21OU0NvbG9yKFtiYWNrZ3Jv
dW5kQ29sb3IgY29sb3JVc2luZ0NvbG9yU3BhY2VOYW1lOk5TRGV2aWNlUkdCQ29sb3JTcGFjZV0p
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAjZWxzZQogICAgICAgICAgICAgQ29sb3IgY29sb3IgPSBD
b2xvcihiYWNrZ3JvdW5kQ29sb3IpOwogI2VuZGlmCkBAIC02MjMsMTAgKzYyMiw5IEBAIHN0YXRp
YyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVy
KQogI2lmICFQTEFURk9STShJT1MpCiAgICAgQVNTRVJUKFtbTlNHcmFwaGljc0NvbnRleHQgY3Vy
cmVudENvbnRleHRdIGlzRmxpcHBlZF0pOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDR0Nv
bnRleHRSZWYgY3R4ID0gc3RhdGljX2Nhc3Q8Q0dDb250ZXh0UmVmPihbW05TR3JhcGhpY3NDb250
ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbHNlCiAg
ICAgQ0dDb250ZXh0UmVmIGN0eCA9IFdLR2V0Q3VycmVudEdyYXBoaWNzQ29udGV4dCgpOwogI2Vu
ZGlmCkBAIC0yMjA4LDEwICsyMjA2LDkgQEAgc3RhdGljIFdlYkZyYW1lTG9hZFR5cGUgdG9XZWJG
cmFtZUxvYWRUeXBlKEZyYW1lTG9hZFR5cGUgZnJhbWVMb2FkVHlwZSkKICAgICBpZiAoIUFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKICAgICAgICAgQVhPYmplY3RDYWNo
ZTo6ZW5hYmxlQWNjZXNzaWJpbGl0eSgpOwogI2lmICFQTEFURk9STShJT1MpCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgICAgIEFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVy
ZmFjZUFjY2Vzc2liaWxpdHkoW1tOU0FwcCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNB
Y2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlQXR0cmlidXRlXSBib29sVmFsdWVdKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAjZW5kaWYKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQpp
bmRleCA3NTNkY2ViMjhkMzBlNmE5MGY0MDE3ZDlmMDFlM2Q0ZWRmZmYxNTM5Li41ZWEyMzM5M2Jm
ZTczN2MwNmMyNGUwNDJlMGUwZTFkNDIyZGI5N2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KQEAg
LTIwNywxMSArMjA3LDEwIEBAIHN0YXRpYyBOU1JlY3QgY29udmVydFJlY3RUb1NjcmVlbihOU1dp
bmRvdyAqd2luZG93LCBOU1JlY3QgcmVjdCkKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gd2Vi
Vmlld0NvbnRlbnRzID0gYWRvcHRDRihDR1dpbmRvd0xpc3RDcmVhdGVJbWFnZShOU1JlY3RUb0NH
UmVjdCh3ZWJWaWV3RnJhbWUpLCBrQ0dXaW5kb3dMaXN0T3B0aW9uSW5jbHVkaW5nV2luZG93LCB3
aW5kb3dJRCwga0NHV2luZG93SW1hZ2VTaG91bGRCZU9wYXF1ZSkpOwogICAgIAogICAgIC8vIFNj
cmVlbiB1cGRhdGVzIHRvIGJlIHJlLWVuYWJsZWQgaW4gYmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRo
SW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0Rpc2Fi
bGVTY3JlZW5VcGRhdGVzKCk7CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6Tk9d
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogCiAgICAgTlNSZXNwb25kZXIgKndlYldpbmRvd0ZpcnN0UmVzcG9uZGVy
ID0gW1tfd2ViVmlldyB3aW5kb3ddIGZpcnN0UmVzcG9uZGVyXTsKICAgICBbW3NlbGYgd2luZG93
XSBzZXRGcmFtZTpzY3JlZW5GcmFtZSBkaXNwbGF5Ok5PXTsKQEAgLTI2OCwxMSArMjY3LDEwIEBA
IHN0YXRpYyB2b2lkIHNldENsaXBSZWN0Rm9yV2luZG93KE5TV2luZG93ICp3aW5kb3csIE5TUmVj
dCBjbGlwUmVjdCkKICAgICBfaXNFbnRlcmluZ0Z1bGxTY3JlZW4gPSBOTzsKICAgICAKICAgICBp
ZiAoY29tcGxldGVkKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIC8vIFNjcmVl
biB1cGRhdGVzIHRvIGJlIHJlLWVuYWJsZWQgYXQgdGhlIGVuZCBvZiB0aGlzIGJsb2NrCiAgICAg
ICAgIE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFtz
ZWxmIF9kb2N1bWVudF0tPnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oZmFsc2UpOwogICAgICAgICBb
c2VsZiBfZG9jdW1lbnRdLT53ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KF9lbGVt
ZW50LmdldCgpKTsKICAgICAgICAgCkBAIC0yOTQsMTAgKzI5Miw5IEBAIHN0YXRpYyB2b2lkIHNl
dENsaXBSZWN0Rm9yV2luZG93KE5TV2luZG93ICp3aW5kb3csIE5TUmVjdCBjbGlwUmVjdCkKICAg
ICAgICAgCiAgICAgICAgIFtfYmFja2dyb3VuZFdpbmRvdy5nZXQoKSBvcmRlck91dDpzZWxmXTsK
ICAgICAgICAgW19iYWNrZ3JvdW5kV2luZG93LmdldCgpIHNldEZyYW1lOk5TWmVyb1JlY3QgZGlz
cGxheTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBOU0VuYWJsZVNjcmVl
blVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfSBlbHNlCiAgICAgICAgIFtfc2NhbGVB
bmltYXRpb24uZ2V0KCkgc3RvcEFuaW1hdGlvbl07CiB9CkBAIC0zMTUsMTIgKzMxMiwxMSBAQCBz
dGF0aWMgdm9pZCBzZXRDbGlwUmVjdEZvcldpbmRvdyhOU1dpbmRvdyAqd2luZG93LCBOU1JlY3Qg
Y2xpcFJlY3QpCiAgICAgICAgIHJldHVybjsKICAgICBfaXNGdWxsU2NyZWVuID0gTk87CiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIC8vIFNjcmVlbiB1cGRhdGVzIHRvIGJlIHJlLWVuYWJsZWQg
aW4gYmVnYW5FeGl0RnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6ZmluYWxGcmFtZToKICAgICBO
U0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3Bs
YXk6Tk9dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogCiAgICAgX2ZpbmFsRnJhbWUgPSBzY3JlZW5SZWN0T2ZDb250
ZW50cyhfZWxlbWVudC5nZXQoKSk7CiAKQEAgLTM2MCwxMSArMzU2LDEwIEBAIHN0YXRpYyB2b2lk
IHNldENsaXBSZWN0Rm9yV2luZG93KE5TV2luZG93ICp3aW5kb3csIE5TUmVjdCBjbGlwUmVjdCkK
ICAgICAKICAgICBbc2VsZiBfdXBkYXRlTWVudUFuZERvY2tGb3JGdWxsU2NyZWVuXTsKIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBh
dCB0aGUgZW5kIG9mIHRoaXMgZnVuY3Rpb24KICAgICBOU0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAKICAgICBbc2VsZiBfZG9jdW1lbnRdLT5zZXRBbmltYXRpbmdGdWxsU2Ny
ZWVuKGZhbHNlKTsKICAgICBbc2VsZiBfZG9jdW1lbnRdLT53ZWJraXREaWRFeGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoX2VsZW1lbnQuZ2V0KCkpOwpAQCAtMzkxLDEwICszODYsOSBAQCBzdGF0aWMg
dm9pZCBzZXRDbGlwUmVjdEZvcldpbmRvdyhOU1dpbmRvdyAqd2luZG93LCBOU1JlY3QgY2xpcFJl
Y3QpCiAKICAgICBbW193ZWJWaWV3IHdpbmRvd10gbWFrZUtleUFuZE9yZGVyRnJvbnQ6c2VsZl07
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogfQogCiAtICh2b2lkKXBlcmZvcm1DbG9zZTooaWQpc2VuZGVyCkBAIC01MTMsMTAg
KzUwNyw5IEBAIHN0YXRpYyBOU1JlY3Qgd2luZG93RnJhbWVGcm9tQXBwYXJlbnRGcmFtZXMoTlNS
ZWN0IHNjcmVlbkZyYW1lLCBOU1JlY3QgaW5pdGlhbEZyCiAgICAgCiAgICAgLy8gc2V0Q2xpcFJl
Y3RGb3JXaW5kb3cgdGFrZXMgd2luZG93IGNvb3JkaW5hdGVzLCBzbyBjb252ZXJ0IGZyb20gc2Ny
ZWVuIGNvb3JkaW5hdGVzIGhlcmU6CiAgICAgTlNSZWN0IGZpbmFsQm91bmRzID0gX2ZpbmFsRnJh
bWU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBmaW5hbEJvdW5kcy5vcmlnaW4gPSBbW3NlbGYg
d2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOmZpbmFsQm91bmRzLm9yaWdpbl07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAgICAgc2V0Q2xpcFJlY3RGb3JXaW5kb3coc2VsZi53aW5kb3csIGZpbmFsQm91bmRzKTsK
ICAgICAKICAgICBbW3NlbGYgd2luZG93XSBtYWtlS2V5QW5kT3JkZXJGcm9udDpzZWxmXTsKQEAg
LTU0MywxNiArNTM2LDE0IEBAIHN0YXRpYyBOU1JlY3Qgd2luZG93RnJhbWVGcm9tQXBwYXJlbnRG
cmFtZXMoTlNSZWN0IHNjcmVlbkZyYW1lLCBOU1JlY3QgaW5pdGlhbEZyCiAgICAgCiAgICAgW19i
YWNrZ3JvdW5kV2luZG93LmdldCgpIG9yZGVyV2luZG93Ok5TV2luZG93QmVsb3cgcmVsYXRpdmVU
bzpbW3NlbGYgd2luZG93XSB3aW5kb3dOdW1iZXJdXTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1dG9kaXNwbGF5OllFU107Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgW1tzZWxmIHdpbmRvd10gZGlzcGxheUlmTmVlZGVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIC8vIFNjcmVlbiB1cGRhdGVzIGRpc2FibGVkIGluIGVudGVyRnVsbFNjcmVlbjoKICAgICBO
U0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogLSAodm9pZClfc3RhcnRF
eGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRp
b24KQEAgLTU5MSwyMyArNTgyLDIwIEBAIHN0YXRpYyBOU1JlY3Qgd2luZG93RnJhbWVGcm9tQXBw
YXJlbnRGcmFtZXMoTlNSZWN0IHNjcmVlbkZyYW1lLCBOU1JlY3QgaW5pdGlhbEZyCiAgICAgCiAg
ICAgLy8gc2V0Q2xpcFJlY3RGb3JXaW5kb3cgdGFrZXMgd2luZG93IGNvb3JkaW5hdGVzLCBzbyBj
b252ZXJ0IGZyb20gc2NyZWVuIGNvb3JkaW5hdGVzIGhlcmU6CiAgICAgTlNSZWN0IGZpbmFsQm91
bmRzID0gX2ZpbmFsRnJhbWU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBmaW5hbEJvdW5kcy5v
cmlnaW4gPSBbW3NlbGYgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOmZpbmFsQm91bmRzLm9y
aWdpbl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgc2V0Q2xpcFJlY3RGb3JXaW5kb3coc2VsZi53aW5kb3cs
IGZpbmFsQm91bmRzKTsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtbc2VsZiB3aW5k
b3ddIHNldEF1dG9kaXNwbGF5OllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW1tzZWxmIHdpbmRvd10g
ZGlzcGxheUlmTmVlZGVkXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgLy8gU2NyZWVuIHVw
ZGF0ZXMgZGlzYWJsZWQgaW4gZXhpdEZ1bGxTY3JlZW46CiAgICAgTlNFbmFibGVTY3JlZW5VcGRh
dGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDE5MmUxODM1MTNjMGJlZDg3NGM0OTlmMDY1
ZWNjM2EyNDNlYTMxZWQuLjI2NGI4YjBjOTIxMGU0YjI0ZGU4NGNhN2Y0YjkyNzU5NmExYTljMzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpA
QCAtNjI2LDEwICs2MjYsOSBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxOU0ludGVnZXI+IHRvVGFn
KENvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKIAogLSAoTlNWaWV3ICopX3dlYl9ib3JkZXJWaWV3
CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICByZXR1cm4gX2JvcmRlclZpZXc7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiB9CiAKIEBlbmQKQEAgLTE0OTYsMTAgKzE0OTUsOSBAQCBzdGF0aWMgTlNDb250cm9sU3Rh
dGVWYWx1ZSBraXQoVHJpU3RhdGUgc3RhdGUpCiB7CiAgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAogICAgICAg
ICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgY29udmVy
dFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBt
b2RpZmllckZsYWdzOltbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXQogICAgICAg
ICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAg
ICAgIHdpbmRvd051bWJlcjpbW3NlbGYgd2luZG93XSB3aW5kb3dOdW1iZXJdCkBAIC0xNTQwLDE5
ICsxNTM4LDE3IEBAIHN0YXRpYyBOU0NvbnRyb2xTdGF0ZVZhbHVlIGtpdChUcmlTdGF0ZSBzdGF0
ZSkKICNpZiBQTEFURk9STShNQUMpCiAgICAgQVNTRVJUKCFfcHJpdmF0ZS0+c3Vidmlld3NTZXRB
c2lkZSk7CiAgICAgQVNTRVJUKF9wcml2YXRlLT5zYXZlZFN1YnZpZXdzID09IG5pbCk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICBfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3cyA9IF9zdWJ2aWV3czsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKICAgICAvLyBXZSBuZWVkIHRvIGtlZXAgdGhlIGxheWVyLWhvc3Rpbmcgdmll
dyBpbiB0aGUgc3Vidmlld3MsIG90aGVyd2lzZSB0aGUgbGF5ZXJzIGZsYXNoLgogICAgIGlmIChf
cHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldykgewogICAgICAgICBOU0FycmF5KiBuZXdTdWJ2aWV3
cyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOl9wcml2YXRlLT5sYXllckhvc3Rp
bmdWaWV3LCBuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBfc3Vidmlld3Mg
PSBuZXdTdWJ2aWV3czsKICAgICB9IGVsc2UKICAgICAgICAgX3N1YnZpZXdzID0gbmlsOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgIF9wcml2YXRlLT5zdWJ2aWV3c1NldEFzaWRlID0gWUVTOwogI2VuZGlmCiAg
fQpAQCAtMTU2MiwxNCArMTU1OCwxMyBAQCBzdGF0aWMgTlNDb250cm9sU3RhdGVWYWx1ZSBraXQo
VHJpU3RhdGUgc3RhdGUpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIEFTU0VSVChfcHJpdmF0ZS0+
c3Vidmlld3NTZXRBc2lkZSk7CiAgICAgaWYgKF9wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3KSB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFtfc3Vidmlld3MgcmVsZWFzZV07CiAg
ICAgICAgIF9zdWJ2aWV3cyA9IF9wcml2YXRlLT5zYXZlZFN1YnZpZXdzOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIEFTU0VSVChfc3Vidmlld3MgPT0gbmlsKTsKICAgICAgICAgX3N1YnZpZXdzID0g
X3ByaXZhdGUtPnNhdmVkU3Vidmlld3M7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIH0KICAgICBfcHJp
dmF0ZS0+c2F2ZWRTdWJ2aWV3cyA9IG5pbDsKICAgICBfcHJpdmF0ZS0+c3Vidmlld3NTZXRBc2lk
ZSA9IE5POwpAQCAtMjExMiwxMCArMjEwNyw5IEBAIHN0YXRpYyBib29sIG1vdXNlRXZlbnRJc1Bh
cnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50KQogCiAgICAgTlNFdmVudCAqZmFrZUV2ZW50
ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dl
ZAogICAgICAgICBsb2NhdGlvbjpbW3NlbGYgd2luZG93XQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAg
ICAgY29udmVydFNjcmVlblRvQmFzZTpbTlNFdmVudCBtb3VzZUxvY2F0aW9uXV0KLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgICAgICBtb2RpZmllckZsYWdzOltbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdz
XQogICAgICAgICB0aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURh
dGVdCiAgICAgICAgIHdpbmRvd051bWJlcjpbW3NlbGYgd2luZG93XSB3aW5kb3dOdW1iZXJdCkBA
IC0zOTg0LDEwICszOTc4LDkgQEAgc3RhdGljIEJPT0wgY3VycmVudFNjcm9sbElzQmxpdChOU1Zp
ZXcgKmNsaXBWaWV3KQogI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBPbmx5IGRvIHRoZSBzeW5j
aHJvbml6YXRpb24gZGFuY2UgaWYgd2UncmUgZHJhd2luZyBpbnRvIHRoZSB3aW5kb3csIG90aGVy
d2lzZQogICAgIC8vIHdlIHJpc2sgZGlzYWJsaW5nIHNjcmVlbiB1cGRhdGVzIHdoZW4gbm8gZmx1
c2ggaXMgcGVuZGluZy4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChbTlNHcmFwaGljc0Nv
bnRleHQgY3VycmVudENvbnRleHRdID09IFtbc2VsZiB3aW5kb3ddIGdyYXBoaWNzQ29udGV4dF0g
JiYgW3dlYlZpZXcgX25lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb25dKSB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogICAgICAgICAvLyBEaXNhYmxlIHNjcmVlbiB1cGRhdGVzIHRvIG1pbmltaXpl
IHRoZSBjaGFuY2VzIG9mIHRoZSByYWNlIGJldHdlZW4gdGhlIENBCiAgICAgICAgIC8vIGRpc3Bs
YXkgbGluayBhbmQgQXBwS2l0IGRyYXdpbmcgY2F1c2luZyBmbGFzaGVzLgogICAgICAgICBbW3Nl
bGYgd2luZG93XSBkaXNhYmxlU2NyZWVuVXBkYXRlc1VudGlsRmx1c2hdOwpAQCAtNDIxOSwxMiAr
NDIxMiwxMSBAQCBzdGF0aWMgQk9PTCBjdXJyZW50U2Nyb2xsSXNCbGl0KE5TVmlldyAqY2xpcFZp
ZXcpCiAgICAgaWYgKEZyYW1lKiBjb3JlZnJhbWUgPSBjb3JlKFtzZWxmIF9mcmFtZV0pKQogICAg
ICAgICBjb3JlZnJhbWUtPmV2ZW50SGFuZGxlcigpLm1vdXNlRG93bihldmVudCk7CiAjZWxzZQot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNJbnB1dE1hbmFnZXIgKmN1cnJlbnRJbnB1dE1hbmFn
ZXIgPSBbTlNJbnB1dE1hbmFnZXIgY3VycmVudElucHV0TWFuYWdlcl07CiAKICAgICBpZiAoIVtj
dXJyZW50SW5wdXRNYW5hZ2VyIHdhbnRzVG9IYW5kbGVNb3VzZUV2ZW50c10gfHwgIVtjdXJyZW50
SW5wdXRNYW5hZ2VyIGhhbmRsZU1vdXNlRXZlbnQ6ZXZlbnRdKSB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgICAgICBbX3ByaXZhdGUtPmNvbXBsZXRpb25Db250cm9sbGVyIGVuZFJldmVydGluZ0NoYW5n
ZTpOTyBtb3ZlTGVmdDpOT107CiAKICAgICAgICAgLy8gSWYgdGhlIHdlYiBwYWdlIGhhbmRsZXMg
dGhlIGNvbnRleHQgbWVudSBldmVudCBhbmQgbWVudUZvckV2ZW50OiByZXR1cm5zIG5pbCwgd2Un
bGwgZ2V0IGNvbnRyb2wgY2xpY2sgZXZlbnRzIGhlcmUuCkBAIC00Mjc5LDEyICs0MjcxLDExIEBA
IHN0YXRpYyBCT09MIGN1cnJlbnRTY3JvbGxJc0JsaXQoTlNWaWV3ICpjbGlwVmlldykKICAgICAv
LyB0aGUgY3VycmVudCBldmVudCBwcmV2ZW50cyB0aGF0IGZyb20gY2F1c2luZyBhIHByb2JsZW0g
aW5zaWRlIFdlYktpdCBvciBBcHBLaXQgY29kZS4KICAgICBbW2V2ZW50IHJldGFpbl0gYXV0b3Jl
bGVhc2VdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0lucHV0TWFuYWdlciAqY3VycmVu
dElucHV0TWFuYWdlciA9IFtOU0lucHV0TWFuYWdlciBjdXJyZW50SW5wdXRNYW5hZ2VyXTsKICAg
ICBpZiAoW2N1cnJlbnRJbnB1dE1hbmFnZXIgd2FudHNUb0hhbmRsZU1vdXNlRXZlbnRzXSAmJiBb
Y3VycmVudElucHV0TWFuYWdlciBoYW5kbGVNb3VzZUV2ZW50OmV2ZW50XSkKICAgICAgICAgcmV0
dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogCiAgICAgW3NlbGYgcmV0YWluXTsKIApAQCAtNDQ0OSwxMiArNDQ0
MCwxMSBAQCBzdGF0aWMgYm9vbCBtYXRjaGVzRXh0ZW5zaW9uT3JFcXVpdmFsZW50KE5TU3RyaW5n
ICpmaWxlbmFtZSwgTlNTdHJpbmcgKmV4dGVuc2lvbgogICAgIFtzZWxmIF9zZXRNb3VzZURvd25F
dmVudDpuaWxdOwogCiAjaWYgUExBVEZPUk0oTUFDKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
TlNJbnB1dE1hbmFnZXIgKmN1cnJlbnRJbnB1dE1hbmFnZXIgPSBbTlNJbnB1dE1hbmFnZXIgY3Vy
cmVudElucHV0TWFuYWdlcl07CiAgICAgaWYgKFtjdXJyZW50SW5wdXRNYW5hZ2VyIHdhbnRzVG9I
YW5kbGVNb3VzZUV2ZW50c10gJiYgW2N1cnJlbnRJbnB1dE1hbmFnZXIgaGFuZGxlTW91c2VFdmVu
dDpldmVudF0pCiAgICAgICAgIHJldHVybjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZgogCiAgICAgW3Nl
bGYgcmV0YWluXTsKQEAgLTQ4MDYsMTAgKzQ3OTYsOSBAQCBzdGF0aWMgUmVmUHRyPEtleWJvYXJk
RXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAtICh2b2lkKV9l
bmRQcmludE1vZGVBbmRSZXN0b3JlV2luZG93QXV0b2Rpc3BsYXkKIHsKICAgICBbc2VsZiBfZW5k
UHJpbnRNb2RlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1
dG9kaXNwbGF5OllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKHZvaWQpX2RlbGF5ZWRFbmRQcmlu
dE1vZGU6KE5TUHJpbnRPcGVyYXRpb24gKilpbml0aWF0aW5nT3BlcmF0aW9uCkBAIC00ODQ0LDEw
ICs0ODMzLDkgQEAgc3RhdGljIFJlZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRF
dmVudChGcmFtZSogY29yZUZyYW1lKQogICAgIC8vIE11c3QgZG8gdGhpcyBleHBsaWNpdCBkaXNw
bGF5IGhlcmUsIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSB2aWV3IG1pZ2h0IHJlZGlzcGxheSB3aGls
ZSB0aGUgcHJpbnQKICAgICAvLyBzaGVldCB3YXMgdXAsIHVzaW5nIHByaW50ZXIgZm9udHMgKGFu
ZCBsb29raW5nIGRpZmZlcmVudCkuCiAgICAgW3NlbGYgZGlzcGxheUlmTmVlZGVkXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1dG9kaXNwbGF5Ok5PXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKIAogICAgIFtbc2VsZiBfd2ViVmlld10gX2FkanVzdFByaW50aW5nTWFyZ2luc0Zv
ckhlYWRlckFuZEZvb3Rlcl07CiAgICAgTlNQcmludE9wZXJhdGlvbiAqcHJpbnRPcGVyYXRpb24g
PSBbTlNQcmludE9wZXJhdGlvbiBjdXJyZW50T3BlcmF0aW9uXTsKQEAgLTUwMzUsMTAgKzUwMjMs
OSBAQCBzdGF0aWMgUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZy
YW1lKiBjb3JlRnJhbWUpCiAjaWYgUExBVEZPUk0oSU9TKQogICAgICAgICByZXR1cm4gW2FjY1Ry
ZWUgYWNjZXNzaWJpbGl0eUhpdFRlc3Q6cG9pbnRdOwogI2Vsc2UKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAgICAgTlNQb2ludCB3aW5kb3dDb29yZCA9IFtbc2VsZiB3aW5kb3ddIGNvbnZl
cnRTY3JlZW5Ub0Jhc2U6cG9pbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgcmV0dXJuIFth
Y2NUcmVlIGFjY2Vzc2liaWxpdHlIaXRUZXN0OltzZWxmIGNvbnZlcnRQb2ludDp3aW5kb3dDb29y
ZCBmcm9tVmlldzpuaWxdXTsKICNlbmRpZgogICAgIH0KQEAgLTUwNzYsMTAgKzUwNjMsOSBAQCBz
dGF0aWMgUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBj
b3JlRnJhbWUpCiAKIC0gKE5TRGljdGlvbmFyeSAqKV9mb250QXR0cmlidXRlc0Zyb21Gb250UGFz
dGVib2FyZAogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNQYXN0ZWJvYXJkICpmb250UGFz
dGVib2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOk5TRm9udFBib2FyZF07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAgICAgaWYgKGZvbnRQYXN0ZWJvYXJkID09IG5pbCkKICAgICAgICAgcmV0
dXJuIG5pbDsKICAgICBOU0RhdGEgKmRhdGEgPSBbZm9udFBhc3RlYm9hcmQgZGF0YUZvclR5cGU6
bGVnYWN5Rm9udFBhc3RlYm9hcmRUeXBlKCldOwpAQCAtNTEwMywxMCArNTA4OSw5IEBAIHN0YXRp
YyBSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVG
cmFtZSkKIAogLSAoTlNTdHJpbmcgKilfY29sb3JBc1N0cmluZzooTlNDb2xvciAqKWNvbG9yCiB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0NvbG9yICpyZ2JDb2xvciA9IFtjb2xvciBjb2xv
clVzaW5nQ29sb3JTcGFjZU5hbWU6TlNEZXZpY2VSR0JDb2xvclNwYWNlXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICAvLyBGSVhNRTogSWYgY29sb3IgaXMgbm9uLW5pbCBhbmQgcmdiQ29sb3IgaXMgbmlsLCB0
aGF0IG1lYW5zIHdlIGdvdCBzb21lIGtpbmQKICAgICAvLyBvZiBmYW5jeSBjb2xvciB0aGF0IGNh
bid0IGJlIGNvbnZlcnRlZCB0byBSR0IuIENoYW5naW5nIHRoYXQgdG8gInRyYW5zcGFyZW50Igog
ICAgIC8vIG1pZ2h0IG5vdCBiZSBncmVhdCwgYnV0IGl0J3MgcHJvYmFibHkgT0suCkBAIC01Mjgz
LDEwICs1MjY4LDkgQEAgc3RhdGljIFJlZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9h
cmRFdmVudChGcmFtZSogY29yZUZyYW1lKQogCiAgICAgLy8gUHV0IFJURiB3aXRoIGZvbnQgYXR0
cmlidXRlcyBvbiB0aGUgcGFzdGVib2FyZC4KICAgICAvLyBNYXliZSBsYXRlciB3ZSBzaG91bGQg
YWRkIGEgcGFzdGVib2FyZCB0eXBlIHRoYXQgY29udGFpbnMgQ1NTIHRleHQgZm9yICJuYXRpdmUi
IGNvcHkgYW5kIHBhc3RlIGZvbnQuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNQYXN0
ZWJvYXJkICpmb250UGFzdGVib2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1l
Ok5TRm9udFBib2FyZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW2ZvbnRQYXN0ZWJvYXJkIGRlY2xhcmVU
eXBlczpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6bGVnYWN5Rm9udFBhc3RlYm9hcmRUeXBlKCld
IG93bmVyOm5pbF07CiAgICAgW2ZvbnRQYXN0ZWJvYXJkIHNldERhdGE6W3NlbGYgX3NlbGVjdGlv
blN0YXJ0Rm9udEF0dHJpYnV0ZXNBc1JURl0gZm9yVHlwZTpsZWdhY3lGb250UGFzdGVib2FyZFR5
cGUoKV07CiB9CkBAIC01OTUxLDE1ICs1OTM1LDE0IEBAIHN0YXRpYyBCT09MIHdyaXRpbmdEaXJl
Y3Rpb25LZXlCaW5kaW5nc0VuYWJsZWQoKQogICAgIGNvbnN0IFZlY3RvcjxLZXlwcmVzc0NvbW1h
bmQ+JiBjb21tYW5kcyA9IHBhcmFtZXRlcnMtPmV2ZW50LT5rZXlwcmVzc0NvbW1hbmRzKCk7CiAK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbW1hbmRzLnNpemUoKTsgKytpKSB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGlmIChjb21tYW5kc1tpXS5jb21tYW5kTmFtZSA9
PSAiaW5zZXJ0VGV4dDoiKQogICAgICAgICAgICAgW3NlbGYgaW5zZXJ0VGV4dDpjb21tYW5kc1tp
XS50ZXh0XTsKICAgICAgICAgZWxzZSBpZiAoY29tbWFuZHNbaV0uY29tbWFuZE5hbWUgPT0gIm5v
b3A6IikKICAgICAgICAgICAgIDsgLy8gRG8gbm90aGluZy4gVGhpcyBjYXNlIGNhbiBiZSByZW1v
dmVkIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzkwMjUwMTI+IGlzIGZpeGVkLgogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBbc2VsZiBkb0NvbW1hbmRCeVNlbGVjdG9yOk5TU2VsZWN0b3JGcm9tU3Ry
aW5nKGNvbW1hbmRzW2ldLmNvbW1hbmROYW1lKV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIH0KICAg
ICBwYXJhbWV0ZXJzLT5ldmVudC0+a2V5cHJlc3NDb21tYW5kcygpLmNsZWFyKCk7CiAgICAgcGFy
YW1ldGVycy0+c2hvdWxkU2F2ZUNvbW1hbmRzID0gd2FzU2F2aW5nQ29tbWFuZHM7CkBAIC02MTU1
LDEwICs2MTM4LDkgQEAgc3RhdGljIEJPT0wgd3JpdGluZ0RpcmVjdGlvbktleUJpbmRpbmdzRW5h
YmxlZCgpCiAgICAgICAgIC8vIElmIHdlIGFyZSBpbiBhIGxheWVyLWJhY2tlZCB2aWV3LCB3ZSBu
ZWVkIHRvIG1hbnVhbGx5IGluaXRpYWxpemUgdGhlIGdlb21ldHJ5IGZvciBvdXIgbGF5ZXIuCiAg
ICAgICAgIFt2aWV3TGF5ZXIgc2V0Qm91bmRzOk5TUmVjdFRvQ0dSZWN0KFtfcHJpdmF0ZS0+bGF5
ZXJIb3N0aW5nVmlldyBib3VuZHNdKV07CiAgICAgICAgIFt2aWV3TGF5ZXIgc2V0QW5jaG9yUG9p
bnQ6Q0dQb2ludE1ha2UoMCwgW3NlbGYgaXNGbGlwcGVkXSA/IDEgOiAwKV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgICAgIENHUG9pbnQgbGF5ZXJQb3NpdGlvbiA9IE5TUG9pbnRUb0NH
UG9pbnQoW3NlbGYgY29udmVydFBvaW50VG9CYXNlOltfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmll
dyBmcmFtZV0ub3JpZ2luXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBbdmlld0xheWVyIHNl
dFBvc2l0aW9uOmxheWVyUG9zaXRpb25dOwogICAgIH0KICAgICAKQEAgLTYyODgsMTAgKzYyNzAs
OSBAQCBzdGF0aWMgQk9PTCB3cml0aW5nRGlyZWN0aW9uS2V5QmluZGluZ3NFbmFibGVkKCkKICAg
ICAgICAgTE9HKFRleHRJbnB1dCwgInRleHRTdG9yYWdlIC0+IG5pbCIpOwogICAgICAgICByZXR1
cm4gbmlsOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TQXR0cmlidXRlZFN0cmlu
ZyAqcmVzdWx0ID0gW3NlbGYgYXR0cmlidXRlZFN1YnN0cmluZ0Zyb21SYW5nZTpOU01ha2VSYW5n
ZSgwLCBVSU5UX01BWCldOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgTE9HKFRleHRJbnB1dCwgInRleHRT
dG9yYWdlIC0+IFwiJUBcIiIsIHJlc3VsdCA/IFtyZXN1bHQgc3RyaW5nXSA6IEAiIik7CiAgICAg
CkBAIC02NzcwLDE1ICs2NzUxLDE0IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5T
QXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKICAgICB1
bnNpZ25lZCBzdGFydDsKICAgICB1bnNpZ25lZCBlbmQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICBpZiAoY29yZUZyYW1lLT5lZGl0b3IoKS5nZXRDb21wb3NpdGlvblNlbGVjdGlvbihzdGFydCwg
ZW5kKSkKICAgICAgICAgW1tOU0lucHV0TWFuYWdlciBjdXJyZW50SW5wdXRNYW5hZ2VyXSBtYXJr
ZWRUZXh0U2VsZWN0aW9uQ2hhbmdlZDpOU01ha2VSYW5nZShzdGFydCwgZW5kIC0gc3RhcnQpIGNs
aWVudDpzZWxmXTsKICAgICBlbHNlIHsKICAgICAgICAgY29yZUZyYW1lLT5lZGl0b3IoKS5jYW5j
ZWxDb21wb3NpdGlvbigpOwogICAgICAgICBbW05TSW5wdXRNYW5hZ2VyIGN1cnJlbnRJbnB1dE1h
bmFnZXJdIG1hcmtlZFRleHRBYmFuZG9uZWQ6c2VsZl07CiAgICAgfQotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UERGVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5t
bQppbmRleCAyNGRhYzllM2E4ZmI4OTM0YTY0ZDE5Y2IxY2QzMWFiOTFjYjdmZDg1Li5hMDk5YzQ2
ZGU3MjY5N2RjZGY5NTNmMWE0MWI5Yjc0MGMyMDA1MDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCkBAIC0xMjYsMTAgKzEyNiw5IEBAIHN0YXRp
YyB2b2lkIF9hcHBsaWNhdGlvbkluZm9Gb3JNSU1FVHlwZShOU1N0cmluZyAqdHlwZSwgTlNTdHJp
bmcgKipuYW1lLCBOU0ltYWdlCiB7CiAgICAgQ0ZVUkxSZWYgYXBwVVJMID0gbnVsbHB0cjsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgT1NTdGF0dXMgZXJyb3IgPSBMU0NvcHlBcHBsaWNhdGlv
bkZvck1JTUVUeXBlKChfX2JyaWRnZSBDRlN0cmluZ1JlZil0eXBlLCBrTFNSb2xlc0FsbCwgJmFw
cFVSTCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgaWYgKGVycm9yICE9IG5vRXJyKQogICAgICAgICByZXR1
cm47CiAgICAgCkBAIC0yMjYsMTAgKzIyNSw5IEBAIHN0YXRpYyBCT09MIF9QREZTZWxlY3Rpb25z
QXJlRXF1YWwoUERGU2VsZWN0aW9uICpzZWxlY3Rpb25BLCBQREZTZWxlY3Rpb24gKnNlbGVjCiAt
ICh2b2lkKWNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWE6KGlkKXNlbmRlcgogewogICAgIC8v
IEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgb25jZSA8cmRhcjovL3Byb2JsZW0vMjUxNDkyOTQ+IGhh
cyBiZWVuIGZpeGVkLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbm51bGwiCisgICAgSUdOT1JFX05VTExfQ0hFQ0tf
V0FSTklOR1NfQkVHSU4KICAgICBbUERGU3VidmlldyBzY3JvbGxTZWxlY3Rpb25Ub1Zpc2libGU6
bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfTlVMTF9DSEVD
S19XQVJOSU5HU19FTkQKIH0KIAogLSAodm9pZClzY3JvbGxQYWdlRG93bjooaWQpc2VuZGVyCkBA
IC0zNzAsMTAgKzM2OCw5IEBAIHN0YXRpYyBCT09MIF9QREZTZWxlY3Rpb25zQXJlRXF1YWwoUERG
U2VsZWN0aW9uICpzZWxlY3Rpb25BLCBQREZTZWxlY3Rpb24gKnNlbGVjCiAKIC0gKHZvaWQpX3Jl
Y3Vyc2l2ZURpc3BsYXlSZWN0SWZOZWVkZWRJZ25vcmluZ09wYWNpdHk6KE5TUmVjdClyZWN0IGlz
VmlzaWJsZVJlY3Q6KEJPT0wpaXNWaXNpYmxlUmVjdCByZWN0SXNWaXNpYmxlUmVjdEZvclZpZXc6
KE5TVmlldyAqKXZpc2libGVWaWV3IHRvcFZpZXc6KEJPT0wpdG9wVmlldwogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSAoQ0dDb250ZXh0UmVmKVtbTlNH
cmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgCiAgICAgYm9vbCBhbGxvd3NTbW9vdGhpbmcgPSBDR0NvbnRleHRHZXRBbGxvd3NGb250
U21vb3RoaW5nKGNvbnRleHQpOwogICAgIGJvb2wgYWxsb3dzU3VicGl4ZWxRdWFudGl6YXRpb24g
PSBDR0NvbnRleHRHZXRBbGxvd3NGb250U3VicGl4ZWxRdWFudGl6YXRpb24oY29udGV4dCk7CkBA
IC0zODYsMTAgKzM4Myw5IEBAIHN0YXRpYyBCT09MIF9QREZTZWxlY3Rpb25zQXJlRXF1YWwoUERG
U2VsZWN0aW9uICpzZWxlY3Rpb25BLCBQREZTZWxlY3Rpb24gKnNlbGVjCiAKIC0gKHZvaWQpX3Jl
Y3Vyc2l2ZURpc3BsYXlBbGxEaXJ0eVdpdGhMb2NrRm9jdXM6KEJPT0wpbmVlZHNMb2NrRm9jdXMg
dmlzUmVjdDooTlNSZWN0KXZpc1JlY3QKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENHQ29u
dGV4dFJlZiBjb250ZXh0ID0gKENHQ29udGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJl
bnRDb250ZXh0XSBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIAogICAgIGJvb2wgYWxs
b3dzU21vb3RoaW5nID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFNtb290aGluZyhjb250ZXh0KTsK
ICAgICBib29sIGFsbG93c1N1YnBpeGVsUXVhbnRpemF0aW9uID0gQ0dDb250ZXh0R2V0QWxsb3dz
Rm9udFN1YnBpeGVsUXVhbnRpemF0aW9uKGNvbnRleHQpOwpAQCAtNDAyLDEwICszOTgsOSBAQCBz
dGF0aWMgQk9PTCBfUERGU2VsZWN0aW9uc0FyZUVxdWFsKFBERlNlbGVjdGlvbiAqc2VsZWN0aW9u
QSwgUERGU2VsZWN0aW9uICpzZWxlYwogCiAtICh2b2lkKV9yZWN1cnNpdmU6KEJPT0wpcmVjdXJz
ZSBkaXNwbGF5UmVjdElnbm9yaW5nT3BhY2l0eTooTlNSZWN0KWRpc3BsYXlSZWN0IGluQ29udGV4
dDooTlNHcmFwaGljc0NvbnRleHQgKilncmFwaGljc0NvbnRleHQgdG9wVmlldzooQk9PTCl0b3BW
aWV3CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IChD
R0NvbnRleHRSZWYpW2dyYXBoaWNzQ29udGV4dCBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgIAogICAgIGJvb2wgYWxsb3dzU21vb3RoaW5nID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFNt
b290aGluZyhjb250ZXh0KTsKICAgICBib29sIGFsbG93c1N1YnBpeGVsUXVhbnRpemF0aW9uID0g
Q0dDb250ZXh0R2V0QWxsb3dzRm9udFN1YnBpeGVsUXVhbnRpemF0aW9uKGNvbnRleHQpOwpAQCAt
NjY5LDEwICs2NjQsOSBAQCBzdGF0aWMgQk9PTCBfUERGU2VsZWN0aW9uc0FyZUVxdWFsKFBERlNl
bGVjdGlvbiAqc2VsZWN0aW9uQSwgUERGU2VsZWN0aW9uICpzZWxlYwogICAgIFtQREZTdWJ2aWV3
IHNldEN1cnJlbnRTZWxlY3Rpb246c2VsZWN0aW9uXTsKIAogICAgIC8vIEZJWE1FOiBHZXQgcmlk
IG9mIHRoaXMgb25jZSA8cmRhcjovL3Byb2JsZW0vMjUxNDkyOTQ+IGhhcyBiZWVuIGZpeGVkLgot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV25vbm51bGwiCisgICAgSUdOT1JFX05VTExfQ0hFQ0tfV0FSTklOR1NfQkVHSU4K
ICAgICBbUERGU3VidmlldyBzY3JvbGxTZWxlY3Rpb25Ub1Zpc2libGU6bmlsXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfTlVMTF9DSEVDS19XQVJOSU5HU19FTkQK
ICAgICByZXR1cm4gWUVTOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyLm1tCmluZGV4IGM2
ZjBlNzM0NWY1ZWU4MmI3MWJjMWM0YWJhMjZjNDBlMjFmZjAzYTYuLmEzODFkMTBiMjhhM2RlZTk1
NDhlYTJlZTQ2OTk2MDU3YTNiMjZlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyLm1tCkBA
IC04NCwxMCArODQsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHsKICAgICBOU1JlY3Qg
c2Nyb2xsRnJhbWUgPSBOU01ha2VSZWN0KDAsIDAsIDEwMCwgMTAwKTsKICAgICBOU1JlY3QgdGFi
bGVGcmFtZSA9IE5TWmVyb1JlY3Q7ICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgdGFibGVG
cmFtZS5zaXplID0gW05TU2Nyb2xsVmlldyBjb250ZW50U2l6ZUZvckZyYW1lU2l6ZTpzY3JvbGxG
cmFtZS5zaXplIGhhc0hvcml6b250YWxTY3JvbGxlcjpOTyBoYXNWZXJ0aWNhbFNjcm9sbGVyOllF
UyBib3JkZXJUeXBlOk5TTm9Cb3JkZXJdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIE5TVGFibGVDb2x1bW4g
KmNvbHVtbiA9IFtbTlNUYWJsZUNvbHVtbiBhbGxvY10gaW5pdF07CiAgICAgW2NvbHVtbiBzZXRX
aWR0aDp0YWJsZUZyYW1lLnNpemUud2lkdGhdOwogICAgIFtjb2x1bW4gc2V0RWRpdGFibGU6Tk9d
OwpAQCAtMTMzLDEwICsxMzIsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogICAgIE5T
UmVjdCB3aW5kb3dGcmFtZTsKICAgICBOU1BvaW50IHdvcmRTdGFydCA9IHRvcExlZnQ7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICB3aW5kb3dGcmFtZS5vcmlnaW4gPSBbW192aWV3IHdpbmRvd10g
Y29udmVydEJhc2VUb1NjcmVlbjpbX2h0bWxWaWV3IGNvbnZlcnRQb2ludDp3b3JkU3RhcnQgdG9W
aWV3Om5pbF1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgIHdpbmRvd0ZyYW1lLnNpemUuaGVpZ2h0ID0gbnVt
YmVyVG9TaG93ICogW190YWJsZVZpZXcgcm93SGVpZ2h0XSArIChudW1iZXJUb1Nob3cgKyAxKSAq
IFtfdGFibGVWaWV3IGludGVyY2VsbFNwYWNpbmddLmhlaWdodDsKICAgICB3aW5kb3dGcmFtZS5v
cmlnaW4ueSAtPSB3aW5kb3dGcmFtZS5zaXplLmhlaWdodDsKICAgICBOU0RpY3Rpb25hcnkgKmF0
dHJpYnV0ZXMgPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtleXM6W05T
Rm9udCBzeXN0ZW1Gb250T2ZTaXplOjEyLjBmXSwgTlNGb250QXR0cmlidXRlTmFtZSwgbmlsXTsK
QEAgLTE1MSwxMCArMTQ5LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgfQogICAg
IHdpbmRvd0ZyYW1lLnNpemUud2lkdGggPSAxMDA7CiAgICAgaWYgKG1heEluZGV4ID49IDApIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgbWF4V2lkdGggPSBjZWlsZihbTlNTY3Jv
bGxWaWV3IGZyYW1lU2l6ZUZvckNvbnRlbnRTaXplOk5TTWFrZVNpemUobWF4V2lkdGgsIDEwMC4w
ZikgaGFzSG9yaXpvbnRhbFNjcm9sbGVyOk5PIGhhc1ZlcnRpY2FsU2Nyb2xsZXI6WUVTIGJvcmRl
clR5cGU6TlNOb0JvcmRlcl0ud2lkdGgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgbWF4V2lk
dGggPSBjZWlsZihbTlNXaW5kb3cgZnJhbWVSZWN0Rm9yQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgw
LjBmLCAwLjBmLCBtYXhXaWR0aCwgMTAwLjBmKSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tC
b3JkZXJsZXNzXS5zaXplLndpZHRoKTsKICAgICAgICAgbWF4V2lkdGggKz0gNS4wZjsKICAgICAg
ICAgd2luZG93RnJhbWUuc2l6ZS53aWR0aCA9IHN0ZDo6bWF4KG1heFdpZHRoLCB3aW5kb3dGcmFt
ZS5zaXplLndpZHRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQppbmRleCBhYjQzODg3
ZDE3NDRkNzUzZDUwMDNhMjJlMDRmNDI3NTE0YTFiZTY2Li5jNmUwNzE2NGNhZjA1Y2E0ODE5ZTMw
YTc4NmRjYzhhZDgzZDYwNTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCkBAIC0z
OCw4ICszOCw3IEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvU29m
dExpbmtpbmcuaD4KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogU09GVF9MSU5LX0ZSQU1FV09SSyhBVkZv
dW5kYXRpb24pCiBTT0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVlBsYXllckxheWVyKQpA
QCAtNTA5LDYgKzUwOCw2IEBAIHN0YXRpYyBOU1dpbmRvdyAqY3JlYXRlQmFja2dyb3VuZEZ1bGxz
Y3JlZW5XaW5kb3coTlNSZWN0IGZyYW1lLCBpbnQgbGV2ZWwpCiAKIEBlbmQKIAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tCmlu
ZGV4IGU3YmU4NmQzNzRlNDUwZWVlNzAwOTFjNWUzMmQ5M2IzMTVhNWNmMzkuLjdjM2Y1MDZlMDZk
OTdiZmRlOGVhNGNiMDk1NjBhOGM3MGIxMjNmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVl
bkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KQEAgLTM3MywxMCArMzczLDkgQEAgc3RhdGljIE5TVmll
dyAqY3JlYXRlTWVkaWFVSUJhY2tncm91bmRWaWV3KCkKICAgICBjb25zdCBDR0Zsb2F0IHF1aWNr
VGltZVBsYXllckhVREhlaWdodCA9IDU5OwogICAgIGNvbnN0IENHRmxvYXQgcXVpY2tUaW1lUGxh
eWVySFVEQ29udGVudEJvcmRlclBvc2l0aW9uID0gMzg7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIFt2aWV3IHNldENvbnRlbnRCb3JkZXJQb3NpdGlvbjpxdWlja1RpbWVQbGF5ZXJIVURDb250
ZW50Qm9yZGVyUG9zaXRpb24gLyBxdWlja1RpbWVQbGF5ZXJIVURIZWlnaHRdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogCiAgICAgcmV0dXJuIHZpZXc7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KaW5kZXggZjI0ZWE3MjcwMjNkMWI0NjAyM2I0NGY0ODE3ZTg2M2U1NDZjOTBk
Yy4uZmYxNTEyZmYwZjhjNWUzYjk1MzVkZTk1ZjYyN2MyNzcxMTkwYzJhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtODY1LDE1ICs4NjUsMTQgQEAg
c3RhdGljIGNvbnN0IE5TVUludGVnZXIgb3JkZXJlZExpc3RTZWdtZW50ID0gMjsKICAgICBbaW5z
ZXJ0TGlzdENvbnRyb2wgc2V0V2lkdGg6bGlzdENvbnRyb2xTZWdtZW50V2lkdGggZm9yU2VnbWVu
dDpvcmRlcmVkTGlzdFNlZ21lbnRdOwogICAgIGluc2VydExpc3RDb250cm9sLmZvbnQgPSBbTlNG
b250IHN5c3RlbUZvbnRPZlNpemU6MTVdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZCBz
ZWdtZW50RWxlbWVudCA9IE5TQWNjZXNzaWJpbGl0eVVuaWdub3JlZERlc2NlbmRhbnQoaW5zZXJ0
TGlzdENvbnRyb2wpOwogICAgIE5TQXJyYXkgKnNlZ21lbnRzID0gW3NlZ21lbnRFbGVtZW50IGFj
Y2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0
ZV07CiAgICAgQVNTRVJUKHNlZ21lbnRzLmNvdW50ID09IDMpOwogICAgIFtzZWdtZW50c1tub0xp
c3RTZWdtZW50XSBhY2Nlc3NpYmlsaXR5U2V0T3ZlcnJpZGVWYWx1ZTpXZWJDb3JlOjppbnNlcnRM
aXN0VHlwZU5vbmUoKSBmb3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25BdHRy
aWJ1dGVdOwogICAgIFtzZWdtZW50c1t1bm9yZGVyZWRMaXN0U2VnbWVudF0gYWNjZXNzaWJpbGl0
eVNldE92ZXJyaWRlVmFsdWU6V2ViQ29yZTo6aW5zZXJ0TGlzdFR5cGVCdWxsZXRlZEFjY2Vzc2li
aWxpdHlUaXRsZSgpIGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0dHJp
YnV0ZV07CiAgICAgW3NlZ21lbnRzW29yZGVyZWRMaXN0U2VnbWVudF0gYWNjZXNzaWJpbGl0eVNl
dE92ZXJyaWRlVmFsdWU6V2ViQ29yZTo6aW5zZXJ0TGlzdFR5cGVOdW1iZXJlZEFjY2Vzc2liaWxp
dHlUaXRsZSgpIGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0
ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAKICAgICBzZWxmLnZpZXcgPSBpbnNlcnRMaXN0Q29udHJvbDsKIApA
QCAtMjE3OCwxMSArMjE3NywxMCBAQCBzdGF0aWMgTlNNdXRhYmxlU2V0ICprbm93blBsdWdpbk1J
TUVUeXBlcygpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIGlmICghT1NBdG9taWNDb21wYXJlQW5kU3dhcDMyKDAsIDEsICZfcHJpdmF0ZS0+ZGlkRHJh
d1RpbGVzKSkKICAgICAgICAgcmV0dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgV2ViVGhyZWFkTG9j
aygpOwogCkBAIC0yNDUwLDEwICsyNDQ4LDkgQEAgc3RhdGljIGJvb2wgZmFzdERvY3VtZW50VGVh
cmRvd25FbmFibGVkKCkKICAgICBBU1NFUlQoVVJMKTsKICAgICAKICAgICBOU1VSTFJlcXVlc3Qg
KnJlcXVlc3QgPSBbW05TVVJMUmVxdWVzdCBhbGxvY10gaW5pdFdpdGhVUkw6VVJMXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgV2ViRG93bmxvYWQgKmRvd25sb2FkID0gW1dlYkRvd25sb2FkIF9kb3du
bG9hZFdpdGhSZXF1ZXN0OnJlcXVlc3QgZGVsZWdhdGU6X3ByaXZhdGUtPmRvd25sb2FkRGVsZWdh
dGUgZGlyZWN0b3J5Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbcmVxdWVzdCByZWxlYXNlXTsKIAogICAg
IHJldHVybiBkb3dubG9hZDsKQEAgLTU4OTMsMjEgKzU4OTAsMTkgQEAgc3RhdGljIGJvb2wgbmVl
ZHNXZWJWaWV3SW5pdFRocmVhZFdvcmthcm91bmQoKQogCiAtICh2b2lkKWVuY29kZVdpdGhDb2Rl
cjooTlNDb2RlciAqKWVuY29kZXIKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIFNldCBh
c3NpZGUgdGhlIHN1YnZpZXdzIGJlZm9yZSB3ZSBhcmNoaXZlLiBXZSBkb24ndCB3YW50IHRvIGFy
Y2hpdmUgYW55IHN1YnZpZXdzLgogICAgIC8vIFRoZSBzdWJ2aWV3cyB3aWxsIGFsd2F5cyBiZSBj
cmVhdGVkIGluIF9jb21tb25Jbml0aWFsaXphdGlvbkZyYW1lTmFtZTpncm91cE5hbWU6LgogICAg
IGlkIG9yaWdpbmFsU3Vidmlld3MgPSBfc3Vidmlld3M7CiAgICAgX3N1YnZpZXdzID0gbmlsOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogCiAgICAgW3N1cGVyIGVuY29kZVdpdGhDb2RlcjplbmNvZGVyXTsKIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgLy8gUmVzdG9yZSB0aGUgc3Vidmlld3Mgd2Ugc2V0IGFzaWRl
LgogICAgIF9zdWJ2aWV3cyA9IG9yaWdpbmFsU3Vidmlld3M7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBC
T09MIHVzZUJhY2tGb3J3YXJkTGlzdCA9IF9wcml2YXRlLT5wYWdlICYmIHN0YXRpY19jYXN0PEJh
Y2tGb3J3YXJkTGlzdCo+KF9wcml2YXRlLT5wYWdlLT5iYWNrRm9yd2FyZCgpLmNsaWVudCgpKS0+
ZW5hYmxlZCgpOwogICAgIGlmIChbZW5jb2RlciBhbGxvd3NLZXllZENvZGluZ10pIHsKQEAgLTcx
MzgsMTAgKzcxMzMsOSBAQCBzdGF0aWMgV2ViRnJhbWUgKmluY3JlbWVudEZyYW1lKFdlYkZyYW1l
ICpmcmFtZSwgV2ViRmluZE9wdGlvbnMgb3B0aW9ucyA9IDApCiAgICAgaWYgKGF1dG8gKmljb24g
PSBfcHJpdmF0ZS0+X21haW5GcmFtZUljb24uZ2V0KCkpCiAgICAgICAgIHJldHVybiBpY29uOwog
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2ggCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICByZXR1cm4gW1tXZWJJY29uRGF0YWJhc2Ugc2hhcmVkSWNv
bkRhdGFiYXNlXSBkZWZhdWx0SWNvbldpdGhTaXplOldlYkljb25TbWFsbFNpemVdOwotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIH0KIAogLSAodm9pZClfc2V0TWFpbkZyYW1lSWNvbjooTlNJbWFnZSAqKWljb24KQEAgLTkz
MDksMTAgKzkzMDMsOSBAQCBib29sIExheWVyRmx1c2hDb250cm9sbGVyOjpmbHVzaExheWVycygp
CiAgICAgICAgIC8vIEFwcEtpdCBtYXkgaGF2ZSBkaXNhYmxlZCBzY3JlZW4gdXBkYXRlcywgdGhp
bmtpbmcgYW4gdXBjb21pbmcgd2luZG93IGZsdXNoIHdpbGwgcmUtZW5hYmxlIHRoZW0uCiAgICAg
ICAgIC8vIEluIGNhc2Ugc2V0TmVlZHNEaXNwbGF5SW5SZWN0KCkgaGFzIHByZXZlbnRlZCB0aGUg
d2luZG93IGZyb20gbmVlZGluZyB0byBiZSBmbHVzaGVkLCByZS1lbmFibGUgc2NyZWVuCiAgICAg
ICAgIC8vIHVwZGF0ZXMgaGVyZS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgaWYg
KCFbd2luZG93IGlzRmx1c2hXaW5kb3dEaXNhYmxlZF0pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAg
ICAgICAgICAgIFt3aW5kb3cgX2VuYWJsZVNjcmVlblVwZGF0ZXNJZk5lZWRlZF07CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJXaW5kb3dB
bmltYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYldpbmRvd0Fu
aW1hdGlvbi5tbQppbmRleCA5MjM1OGY2YjdkZTNhYmE5NjRlZWFmMTc0MjVmMjcxYjk1YWE4NjA5
Li5hZmE3YjUxNDdiOTVkYjdhZDRkNTc3YTY5MDhlODgwNDkwODk0YWVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYldpbmRvd0FuaW1hdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYldpbmRvd0FuaW1hdGlvbi5tbQpA
QCAtMTI1LDEwICsxMjUsOSBAQCBzdGF0aWMgQ0dTQ29ubmVjdGlvbklEIG1haW5XaW5kb3dTZXJ2
ZXJDb25uZWN0aW9uSUQoKQogc3RhdGljIHZvaWQgc2V0U2NhbGVkRnJhbWVGb3JXaW5kb3coTlNX
aW5kb3cgKndpbmRvdywgTlNSZWN0IHNjYWxlRnJhbWUsIE5TUmVjdCBub25TY2FsZWRGcmFtZSkK
IHsKICAgICBpZiAoTlNFcXVhbFJlY3RzKHNjYWxlRnJhbWUsIG5vblNjYWxlZEZyYW1lKSkgewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV25vbm51bGwiCisgICAgICAgIElHTk9SRV9OVUxMX0NIRUNLX1dBUk5JTkdTX0JF
R0lOCiAgICAgICAgIENHU1NldFdpbmRvd1dhcnAobWFpbldpbmRvd1NlcnZlckNvbm5lY3Rpb25J
RCgpLCB3aW5kb3cud2luZG93TnVtYmVyLCAwLCAwLCBudWxscHRyKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgSUdOT1JFX05VTExfQ0hFQ0tfV0FSTklOR1NfRU5ECiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349540</attachid>
            <date>2018-09-12 05:13:00 -0700</date>
            <delta_ts>2018-09-12 08:09:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188996-20180912141259.patch</filename>
            <type>text/plain</type>
            <size>323258</size>
            <attacher name="Guillaume Emont">guijemont</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1OTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NjBhYmVlNDE4OWYxNDQyYWZjNTJjNTk4MDk5MzA1YTIwMTc1ZWQxLi4yNGJiNGZiNjI0MDc0ZTdm
MjllMGFhNmNlOTk3NGIxMDhhMTY0ZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEg
KzEsNDMgQEAKKzIwMTgtMDgtMjcgIEd1aWxsYXVtZSBFbW9udCAgPGd1aWplbW9udEBpZ2FsaWEu
Y29tPgorCisgICAgICAgIEFkZCBJR05PUkVfV0FSTklOR18uKiBtYWNyb3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk5NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE1pY2hhZWwgQ2F0YW56YXJvLgorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tP
YmplY3QuaDoKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5jOgorICAgICAgICAqIGFzc2Vt
Ymxlci9MaW5rQnVmZmVyLmg6CisgICAgICAgIChKU0M6OkxpbmtCdWZmZXI6OmZpbmFsaXplQ29k
ZVdpdGhEaXNhc3NlbWJseSk6CisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAg
ICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgICogYjMvQjNUeXBlLmg6CisgICAgICAgICog
YjMvQjNUeXBlTWFwLmg6CisgICAgICAgICogYjMvQjNXaWR0aC5oOgorICAgICAgICAqIGIzL2Fp
ci9BaXJBcmcuY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJBcmcuaDoKKyAgICAgICAgKiBiMy9h
aXIvQWlyQ29kZS5oOgorICAgICAgICAqIGJ5dGVjb2RlL09wY29kZS5oOgorICAgICAgICAoSlND
OjpwYWRPcGNvZGVOYW1lKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVOdW1iZXIpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVNaXNjKToKKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgICogZnRsL0ZUTE91dHB1dC5o
OgorICAgICAgICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxw
ZXJzOjpjYWxjdWxhdGVQb2tlT2Zmc2V0KToKKyAgICAgICAgKiBsbGludC9MTEludERhdGEuY3Bw
OgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6TExJ
bnQ6OnNsb3dQYXRoTG9nRik6CisgICAgICAgICogcnVudGltZS9Db25maWdGaWxlLmNwcDoKKyAg
ICAgICAgKEpTQzo6Q29uZmlnRmlsZTo6Y2Fub25pY2FsaXplUGF0aHMpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dlbmVy
aWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9KU0dlbmVy
aWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5j
cHA6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OnNldEFsaWFzZWRPcHRpb24pOgorICAgICAgICAq
IHRvb2xzL0NvZGVQcm9maWxpbmcuY3BwOgorICAgICAgICAqIHdhc20vV2FzbVNlY3Rpb25zLmg6
CisgICAgICAgICogd2FzbS9nZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIucHk6CisK
ID09IFJvbGxlZCBvdmVyIHRvIENoYW5nZUxvZy0yMDE4LTA5LTExID09CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGU2MGFiZWU0
MTg5ZjE0NDJhZmM1MmM1OTgwOTkzMDVhMjAxNzVlZDEuLjcyZDcyYmM2MzIwYTdkYTUwYzM3NDk5
NDQ1ZDAyMzJjNDI3ZDAzNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xICsxLDI3IEBACisyMDE4LTA4LTI3ICBHdWlsbGF1
bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgSUdOT1JFX1dB
Uk5JTkdfLiogbWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODg5OTYKKworICAgICAgICBSZXZpZXdlZCBieSBNaWNoYWVsIENhdGFuemFyby4K
KworICAgICAgICAqIHd0Zi9Bc3NlcnRpb25zLmNwcDoKKyAgICAgICAgKiB3dGYvQXNzZXJ0aW9u
cy5oOgorICAgICAgICAqIHd0Zi9Db21waWxlci5oOgorICAgICAgICAqIHd0Zi9NRDUuY3BwOgor
ICAgICAgICAoV1RGOjpNRDU6Ok1ENSk6CisgICAgICAgIChXVEY6Ok1ENTo6YWRkQnl0ZXMpOgor
ICAgICAgICAoV1RGOjpNRDU6OmNoZWNrc3VtKToKKyAgICAgICAgKiB3dGYvUHJpbnRTdHJlYW0u
Y3BwOgorICAgICAgICAoV1RGOjpQcmludFN0cmVhbTo6cHJpbnRmVmFyaWFibGVGb3JtYXQpOgor
ICAgICAgICAqIHd0Zi9TSEExLmNwcDoKKyAgICAgICAgKFdURjo6U0hBMTo6U0hBMSk6CisgICAg
ICAgIChXVEY6OlNIQTE6OmFkZEJ5dGVzKToKKyAgICAgICAgKFdURjo6U0hBMTo6Y29tcHV0ZUhh
c2gpOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHA6CisgICAgICAgICogd3Rm
L1ZlY3Rvci5oOgorICAgICAgICAoV1RGOjpWZWN0b3JCdWZmZXI6OmVuZE9mQnVmZmVyKToKKyAg
ICAgICAgKiB3dGYvdGV4dC9XVEZTdHJpbmcuY3BwOgorICAgICAgICAoV1RGOjpjcmVhdGVXaXRo
Rm9ybWF0QW5kQXJndW1lbnRzKToKKwogPT0gUm9sbGVkIG92ZXIgdG8gQ2hhbmdlTG9nLTIwMTgt
MDktMTEgPT0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlZWM4MzNhY2ZkNTE5Njc3YWJkNzZhYThmMDAwZTI2NTM5
MGU2M2RiLi5hNmQxYjcwYzhlZDNjOTEwZWZjZWY5YmVhZmUzODI1YTBjNmEwOTlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMxIEBACisyMDE4LTA4LTI3ICBHdWlsbGF1bWUgRW1vbnQgIDxndWlq
ZW1vbnRAaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgSUdOT1JFX1dBUk5JTkdfLiogbWFjcm9z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg5OTYK
KworICAgICAgICBSZXZpZXdlZCBieSBNaWNoYWVsIENhdGFuemFyby4KKworICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5o
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlh
RW5kcG9pbnQuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZp
Y2F0aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6b3ZlcnJpZGVB
dHRhY2htZW50UGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6
OmFjY2Vzc2liaWxpdHlJZ25vcmVBdHRhY2htZW50IGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgcmVuZGVyV2lkZ2V0Q2hpbGRyZW5dKToK
KyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgY29udmVydFBvaW50VG9T
Y3JlZW5TcGFjZTpdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIg
cm9sZV0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciByb2xlRGVz
Y3JpcHRpb25dKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW06Cisg
ICAgICAgICogYnJpZGdlL29iamMvb2JqY19jbGFzcy5tbToKKyAgICAgICAgKEpTQzo6QmluZGlu
Z3M6Ok9iamNDbGFzczo6ZmllbGROYW1lZCBjb25zdCk6CisgICAgICAgICogY3J5cHRvL0NvbW1v
bkNyeXB0b1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRDb21tb25DcnlwdG9E
aWdlc3RBbGdvcml0aG0pOgorICAgICAgICAqIGNyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVT
X0dDTU1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjplbmNyeXB0QUVTX0dDTSk6CisgICAgICAg
IChXZWJDb3JlOjpkZWN5cHRBRVNfR0NNKToKKyAgICAgICAgKiBjcnlwdG8vbWFjL1NlcmlhbGl6
ZWRDcnlwdG9LZXlXcmFwTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6d3JhcFNlcmlhbGl6ZWRD
cnlwdG9LZXkpOgorICAgICAgICAoV2ViQ29yZTo6dW53cmFwU2VyaWFsaXplZENyeXB0b0tleSk6
CisgICAgICAgICogY3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVs
ZW1lbnRNYXAucHk6CisgICAgICAgICogY3NzL21ha2VTZWxlY3RvclBzZXVkb0VsZW1lbnRzTWFw
LnB5OgorICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKiBlZGl0
aW5nL21hYy9FZGl0b3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBhc3RlV2l0
aFBhc3RlYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp0YWtlRmluZFN0cmluZ0Zy
b21TZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlTm9kZUZyb21Q
YXN0ZWJvYXJkKToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFj
a2luZyk6CisgICAgICAgICogcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6
cGFpbnRDb250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpmb3JtYXRMb2NhbGl6ZWRTdHJpbmcpOgorICAgICAgICAqIHBs
YXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRhdGE6
OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3Zp
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhJREdhbWVwYWRQcm92aWRlcjo6c3RvcE1vbml0
b3JpbmdJbnB1dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJh
dG9yLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFT
ZWxlY3Rpb25Hcm91cEFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlbGVjdGlv
bkdyb3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkNETVNlc3Npb25BVlN0cmVhbVNlc3Npb246OnVwZGF0ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291
cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRDdXJyZW50VGV4dFRy
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6Omxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjayBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRTaG91bGREaXNhYmxlU2xl
ZXApOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OklHTk9SRV9DTEFOR19XQVJOSU5HX0VORCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKC1bV2ViQVZT
YW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyIGJlZ2luT2JzZXJ2aW5nUmVuZGVyZXI6XSk6CisgICAg
ICAgICgtW1dlYkFWU2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lciBzdG9wT2JzZXJ2aW5nUmVuZGVy
ZXI6XSk6CisgICAgICAgICgtW1dlYkFWU2FtcGxlQnVmZmVyRXJyb3JMaXN0ZW5lciBvYnNlcnZl
VmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOgorICAgICAgICAoV2Vi
Q29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnRyYWNrRGlkQ2hhbmdlRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpJR05PUkVfQ0xBTkdfV0FSTklOR19FTkQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1tOgorICAg
ICAgICAoUGxhdGZvcm1DQUxheWVyOjpkcmF3TGF5ZXJDb250ZW50cyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGb250Q2FzY2FkZTo6Zm9udEZvckNvbWJpbmluZ0NoYXJhY3RlclNlcXVlbmNlIGNv
bnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZURlY29kZXJDRy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJDRzo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5k
ZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dENv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvckRv
Y3VtZW50TWFya2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExh
eWVyLmg6CisgICAgICAgIChJR05PUkVfQ0xBTkdfV0FSTklORyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5z
Rm9yQ2hhcmFjdGVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpJY29uOjpJY29uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvUERGRG9jdW1lbnRJbWFnZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBE
RkRvY3VtZW50SW1hZ2U6OmRyYXdQREZQYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvV2ViS2l0TlNJbWFnZUV4dHJhcy5tbToKKyAgICAgICAgKC1bTlNJbWFnZSBfd2ViX2xv
Y2tGb2N1c1dpdGhEZXZpY2VTY2FsZUZhY3RvcjpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mv
RHJhZ0ltYWdlSU9TLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpzY2FsZURyYWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVEcmFnSW1hZ2VGb3JMaW5rKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTGVnYWN5TlNQ
YXN0ZWJvYXJkVHlwZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3Jh
cGhpY3NDb250ZXh0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxDdXJyZW50R3JhcGhpY3ND
b250ZXh0OjpMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3Jl
YXRlRm9yQ29weUFuZFBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0
ZUZvckRyYWdBbmREcm9wKToKKyAgICAgICAgKFdlYkNvcmU6OnNldERyYWdJbWFnZUltcGwpOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6Omdsb2JhbFBvaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU1NMS2V5
R2VuZXJhdG9yTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxhdGZvcm1Db250ZW50c1RvU2NyZWVu
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtU2NyZWVuVG9D
b250ZW50cyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6ZHJhd0NlbGxGb2N1c1JpbmdXaXRoRnJhbWVBdFRpbWUpOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9XZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5tbToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvV2lkZ2V0TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0Ojpw
YWludCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1
ZGlvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNv
bWluZ1ZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0F1ZGlvTW9kdWxlLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2EubW06CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbik6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6cmVwb3J0RXJyb3JUb0NsaWVudCk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jcmVhdGUtaHR0cC1oZWFkZXItbmFtZS10YWJsZToKKyAg
ICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHA6CisgICAgICAgICogdGVzdGlu
Zy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB4bWwvWFBhdGhHcmFt
bWFyLmNwcDoKKwogMjAxOC0wOS0xMiAgUGFibG8gU2FhdmVkcmEgIDxwc2FhdmVkcmFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBMaW5raW5nIGFnYWluc3QgbGliV1BFV2ViS2l0LTAuMS5zbyBpcyBu
b3QgcG9zaWJsZSB3aGVuIFdQRSBpcyBidWlsZCB3aXRoIEVOQUJMRV9WSURFTz1PRkYgYW5kIEVO
QUJMRV9XRUJfQVVESU89T0ZGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBhYTM4OGNhOGZkMjk0ZmVj
NDkxMWFmODk1MDY2NGY4YTZjMzg4ZjNiLi5lNGYzODRkZjQ5OGNlZTllY2RhMGU0ZmJlMjFjMGRh
MWQ0NDJhZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOC0wOC0y
NyAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRk
IElHTk9SRV9XQVJOSU5HXy4qIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWljaGFlbCBD
YXRhbnphcm8uCisKKyAgICAgICAgKiBwYWwvY3J5cHRvL2NvbW1vbmNyeXB0by9DcnlwdG9EaWdl
c3RDb21tb25DcnlwdG8uY3BwOgorICAgICAgICAoUEFMOjpDcnlwdG9EaWdlc3Q6OmNyZWF0ZSk6
CisgICAgICAgIChQQUw6OkNyeXB0b0RpZ2VzdDo6YWRkQnl0ZXMpOgorICAgICAgICAoUEFMOjpD
cnlwdG9EaWdlc3Q6OmNvbXB1dGVIYXNoKToKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL0FWS2l0
U1BJLmg6CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaDoKKyAg
ICAgICAgKGluc2VjdXJlbHlVbmFyY2hpdmVPYmplY3RGcm9tRGF0YSk6CisgICAgICAgICogcGFs
L3NwaS9pb3MvTWVkaWFQbGF5ZXJTUEkuaDoKKyAgICAgICAgKiBwYWwvc3lzdGVtL21hYy9Qb3B1
cE1lbnUubW06CisgICAgICAgIChQQUw6OnBvcFVwTWVudSk6CisgICAgICAgICogcGFsL3N5c3Rl
bS9tYWMvV2ViUGFuZWwubW06CisgICAgICAgICgtW1dlYlBhbmVsIGluaXRdKToKKwogMjAxOC0w
OS0xMCAgSmFtZXMgU2F2YWdlICA8amFtZXMuc2F2YWdlQGFwcGxlLmNvbT4KIAogICAgICAgICBF
eHBvc2UgLWFwcGxlLXN5c3RlbS1jb250YWluZXItYm9yZGVyIGNvbG9yIHRvIGludGVybmFsIHdl
YiB2aWV3cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggOTUxYzU0ZWI1YWI2OWY0ZDQ4MDc0MTRjYTkxZjhhYTUxMjUz
ZTY5OS4uOTU4M2NhM2JhYjgxMmNmOTdhOTkwMmMwNDI1MTA1NjQwYmE5ZGIwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMTkgQEAKKzIwMTgtMDgtMjcgIEd1aWxsYXVtZSBFbW9udCAgPGd1aWplbW9u
dEBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBJR05PUkVfV0FSTklOR18uKiBtYWNyb3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk5NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE1pY2hhZWwgQ2F0YW56YXJvLgorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpzdGF0ZWxlc3NDb29raWVTdG9yYWdlKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TeW5jQWxsQ29va2llcyk6CisgICAgICAg
ICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6YmVnaW5Nb2RhbCk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vz
c1NoaW0ubW06CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVn
aW5Nb2R1bGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbk1vZHVsZTo6dHJ5
TG9hZCk6CisgICAgICAgICogU2hhcmVkL2lvcy9DaGlsZFByb2Nlc3NJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OkNoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gpOgorICAgICAgICAqIFNo
YXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojpjb21waWxlQW5k
QXBwbHlTYW5kYm94U2xvd0Nhc2UpOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29sb3JTcGFjZURh
dGEubW06CisgICAgICAgIChXZWJLaXQ6OkNvbG9yU3BhY2VEYXRhOjpkZWNvZGUpOgorICAgICAg
ICAqIFNoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
U2FuZGJveEV4dGVuc2lvbkltcGw6OnNhbmRib3hFeHRlbnNpb25Gb3JUeXBlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IF93ZWJfc3VwZXJBY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3
UnVuQXNNb2RhbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAg
ICAgICAoLVtXS1ZpZXcgX3dlYl9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvRG93bmxvYWRDbGllbnQubW06CisgICAgICAgIChX
ZWJLaXQ6OkRvd25sb2FkQ2xpZW50OjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxl
bmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFu
YWdlckNsaWVudC5tbToKKyAgICAgICAgKC1bV0tDdXN0b21Qcm90b2NvbExvYWRlciBpbml0V2l0
aExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5OmN1c3RvbVByb3RvY29sSUQ6cmVxdWVz
dDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tOgorICAg
ICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpDb250ZXh0TWVudUNsaWVu
dDo6bWVudUZyb21Qcm9wb3NlZE1lbnUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxh
dGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLm1tOgorICAgICAgICAoLVtXS1RleHRMaXN0VG91Y2hCYXJWaWV3Q29udHJvbGxl
ciBpbml0V2l0aFdlYlZpZXdJbXBsOl0pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
dXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpzZW5kRHJhZ0VuZFRvUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzdGFy
dERyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y2hhcmFjdGVySW5kZXhGb3JQ
b2ludCk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94
eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpnZXRQbHVnaW5Q
cm9jZXNzU2VyaWFsTnVtYmVyKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5
OjptYWtlUGx1Z2luUHJvY2Vzc1RoZUZyb250UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlBs
dWdpblByb2Nlc3NQcm94eTo6bWFrZVVJUHJvY2Vzc1RoZUZyb250UHJvY2Vzcyk6CisgICAgICAg
IChXZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tbToKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbToKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dLTGVnYWN5UERGVmlldy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dLUERGUGFnZU51bWJlckluZGljYXRvci5tbToKKyAgICAgICAgKC1bV0tQREZQYWdlTnVtYmVy
SW5kaWNhdG9yIF9tYWtlUm91bmRlZENvcm5lcnNdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L2Zvcm1zL1dLQWlyUGxheVJvdXRlUGlja2VyLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
Zm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW06CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVs
IF9wcmVzZW50UG9wb3ZlcldpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6YW5pbWF0ZWQ6XSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Db2xvckNvbnRyb2wubW06CisgICAg
ICAgICgtW1dLQ29sb3JQb3BvdmVyIGluaXRXaXRoVmlldzpdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29udHJvbC5tbToKKyAgICAgICAgKC1bV0tEYXRlVGlt
ZVBvcG92ZXIgaW5pdFdpdGhWaWV3OmRhdGVQaWNrZXJNb2RlOl0pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9wb3Zlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
Zm9ybXMvV0tGb3JtUG9wb3Zlci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dL
Rm9ybVNlbGVjdFBvcG92ZXIubW06CisgICAgICAgICgtW1dLU2VsZWN0UG9wb3ZlciBpbml0V2l0
aFZpZXc6aGFzR3JvdXBzOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudElt
cGxNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzY3JlZW5Ub1Jvb3RW
aWV3KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJvb3RWaWV3VG9TY3JlZW4p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5t
bToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBlbnRlckZ1bGxTY3Jl
ZW46XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZmluaXNoZWRF
bnRlckZ1bGxTY3JlZW5BbmltYXRpb246XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIgZXhpdEZ1bGxTY3JlZW5dKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlciBiZWdhbkV4aXRGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTpmaW5hbEZy
YW1lOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGZpbmlzaGVk
RXhpdEZ1bGxTY3JlZW5BbmltYXRpb246XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIgY29tcGxldGVGaW5pc2hFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbkFmdGVyUmVw
YWludF0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIF9zdGFydEVu
dGVyRnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlciBfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhE
dXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tOgor
ICAgICAgICAoLVtXS1ByaW50aW5nVmlldyBfc2V0QXV0b2Rpc3BsYXk6XSk6CisgICAgICAgICgt
W1dLUHJpbnRpbmdWaWV3IF9kcmF3UERGRG9jdW1lbnQ6cGFnZTphdFBvaW50Ol0pOgorICAgICAg
ICAoLVtXS1ByaW50aW5nVmlldyBfZHJhd1ByZXZpZXc6XSk6CisgICAgICAgICgtW1dLUHJpbnRp
bmdWaWV3IGRyYXdSZWN0Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tUZXh0SW5wdXRX
aW5kb3dDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS1RleHRJbnB1dFBhbmVsIF9pbnRlcnBy
ZXRLZXlFdmVudDp1c2luZ0xlZ2FjeUNvY29hVGV4dElucHV0OnN0cmluZzpdKToKKyAgICAgICAg
KC1bV0tUZXh0SW5wdXRQYW5lbCBfaGFzTWFya2VkVGV4dF0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVw
TWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojpp
bml0aWFsaXplRXZlbnRSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6
c2VuZENvbXBsZXhUZXh0SW5wdXQpOgorICAgICAgICAoV2ViS2l0OjptYWtlQ0dMUHJlc2VudExh
eWVyT3BhcXVlKToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW46Om51bGxFdmVudFRp
bWVyRmlyZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1t
OgorICAgICAgICAoLVtXS1BERlBsdWdpbkFjY2Vzc2liaWxpdHlPYmplY3QgYWNjZXNzaWJpbGl0
eUZvY3VzZWRVSUVsZW1lbnRdKToKKyAgICAgICAgKC1bV0tQREZMYXllckNvbnRyb2xsZXJEZWxl
Z2F0ZSB3cml0ZUl0ZW1zVG9QYXN0ZWJvYXJkOndpdGhUeXBlczpdKToKKyAgICAgICAgKFdlYktp
dDo6UERGUGx1Z2luOjpoYW5kbGVFZGl0aW5nQ29tbWFuZCk6CisgICAgICAgIChXZWJLaXQ6OlBE
RlBsdWdpbjo6c2V0QWN0aXZlQW5ub3RhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OiBjb25zdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0
aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VB
bm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9u
OjpjcmVhdGVBbm5vdGF0aW9uRWxlbWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlBE
RlBsdWdpblRleHRBbm5vdGF0aW9uOjpjcmVhdGVBbm5vdGF0aW9uRWxlbWVudCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFj
Lm1tOgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0SW1hZ2VUb0JpdG1hcCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkRyYWdDbGllbnQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFj
Lm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6ZHJhd1BERlBhZ2UpOgorCiAyMDE4LTA5LTExICBPbGl2aWEgQmFybmV0
dCAgPG9iYXJuZXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgdGhlIFdlYiBTaGFy
ZSBBUEkgZm9yIG1hYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGU5N2Q4OGJlMjEz
NTQzMTkzYTU5YzM1MzRkOGE0MTU5ZjBlY2FhOTUuLmM4ZWUxNzc2YzMxYjZjMDdiYjQ4NzRhODQ5
Y2UzOGQ5MzMyNjRiNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MzMgQEAKKzIwMTgtMDgtMjcgIEd1aWxsYXVtZSBFbW9udCAgPGd1aWplbW9udEBpZ2FsaWEuY29t
PgorCisgICAgICAgIEFkZCBJR05PUkVfV0FSTklOR18uKiBtYWNyb3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk5NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE1pY2hhZWwgQ2F0YW56YXJvLgorCisgICAgICAgICogQ2FyYm9uL0NhcmJvblV0aWxz
Lm06CisgICAgICAgIChQb29sQ2xlYW5lcik6CisgICAgICAgICogQ2FyYm9uL0NhcmJvbldpbmRv
d0FkYXB0ZXIubW06CisgICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgaW5pdFdpdGhDYXJi
b25XaW5kb3dSZWY6dGFraW5nT3duZXJzaGlwOmRpc2FibGVPcmRlcmluZzpjYXJib246XSk6Cisg
ICAgICAgICgtW0NhcmJvbldpbmRvd0FkYXB0ZXIgc2V0Vmlld3NOZWVkRGlzcGxheTpdKToKKyAg
ICAgICAgKC1bQ2FyYm9uV2luZG93QWRhcHRlciByZWNvbmNpbGVUb0NhcmJvbldpbmRvd0JvdW5k
c10pOgorICAgICAgICAoLVtDYXJib25XaW5kb3dBZGFwdGVyIF90ZXJtV2luZG93SWZPd25lcl0p
OgorICAgICAgICAoLVtDYXJib25XaW5kb3dBZGFwdGVyIF93aW5kb3dNb3ZlZFRvUmVjdDpdKToK
KyAgICAgICAgKC1bQ2FyYm9uV2luZG93QWRhcHRlciBzZXRDb250ZW50VmlldzpdKToKKyAgICAg
ICAgKC1bQ2FyYm9uV2luZG93QWRhcHRlciBfaGFuZGxlUm9vdEJvdW5kc0NoYW5nZWRdKToKKyAg
ICAgICAgKC1bQ2FyYm9uV2luZG93QWRhcHRlciBfaGFuZGxlQ29udGVudEJvdW5kc0NoYW5nZWRd
KToKKyAgICAgICAgKiBDYXJib24vQ2FyYm9uV2luZG93RnJhbWUubToKKyAgICAgICAgKC1bQ2Fy
Ym9uV2luZG93RnJhbWUgdGl0bGVdKToKKyAgICAgICAgKiBDYXJib24vSElWaWV3QWRhcHRlci5t
OgorICAgICAgICAoK1tISVZpZXdBZGFwdGVyIGdldEhJVmlld0Zvck5TVmlldzpdKToKKyAgICAg
ICAgKiBDYXJib24vSElXZWJWaWV3Lm1tOgorICAgICAgICAob3ZlcnJpZGVDR0NvbnRleHQpOgor
ICAgICAgICAocmVzdG9yZUNHQ29udGV4dCk6CisgICAgICAgIChEcmF3KToKKyAgICAgICAgKiBE
T00vRE9NLm1tOgorICAgICAgICAqIEhpc3RvcnkvV2ViSGlzdG9yeS5tbToKKyAgICAgICAgKC1b
V2ViSGlzdG9yeVByaXZhdGUgbG9hZEhpc3RvcnlHdXRzRnJvbVVSTDpzYXZlZEl0ZW1zQ291bnQ6
Y29sbGVjdERpc2NhcmRlZEl0ZW1zSW50bzplcnJvcjpdKToKKyAgICAgICAgKiBIaXN0b3J5L1dl
Ykhpc3RvcnlJdGVtLm1tOgorICAgICAgICAoLVtXZWJIaXN0b3J5SXRlbSBpY29uXSk6CisgICAg
ICAgICogTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5tbToKKyAgICAgICAgKC1bTlNTdHJpbmcg
X3dlYl9kcmF3QXRQb2ludDpmb250OnRleHRDb2xvcjpdKToKKyAgICAgICAgKiBNaXNjL1dlYk5T
SW1hZ2VFeHRyYXMubToKKyAgICAgICAgKC1bTlNJbWFnZSBfd2ViX3NjYWxlVG9NYXhTaXplOl0p
OgorICAgICAgICAoLVtOU0ltYWdlIF93ZWJfZGlzc29sdmVUb0ZyYWN0aW9uOl0pOgorICAgICAg
ICAqIE1pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tOgorICAgICAgICAoK1tOU1Bhc3RlYm9h
cmQgX3dlYl9zZXRGaW5kUGFzdGVib2FyZFN0cmluZzp3aXRoT3duZXI6XSk6CisgICAgICAgICgt
W05TUGFzdGVib2FyZCBfd2ViX2RlY2xhcmVBbmRXcml0ZURyYWdJbWFnZUZvckVsZW1lbnQ6VVJM
OnRpdGxlOmFyY2hpdmU6c291cmNlOl0pOgorICAgICAgICAqIFBhbmVscy9XZWJBdXRoZW50aWNh
dGlvblBhbmVsLm06CisgICAgICAgICgtW1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgbG9hZE5pYl0p
OgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW06
CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI6OnNwYXduUGx1Z2lu
SG9zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI6OmRpZENy
ZWF0ZVdpbmRvdyk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0
UHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjptYWtl
Q3VycmVudFByb2Nlc3NGcm9udFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBs
dWdpbkhvc3RQcm94eTo6bWFrZVBsdWdpbkhvc3RQcm9jZXNzRnJvbnRQcm9jZXNzIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHk6OmlzUGx1Z2luSG9zdFBy
b2Nlc3NGcm9udFByb2Nlc3MgY29uc3QpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNj
YXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVn
aW5JbnN0YW5jZVByb3h5Ojptb3VzZUV2ZW50KToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9X
ZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgtW1dlYkhvc3RlZE5ldHNj
YXBlUGx1Z2luVmlldyBkcmF3UmVjdDpdKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9XZWJU
ZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm06CisgICAgICAgICgtW1dlYlRleHRJbnB1dFBhbmVs
IF9pbnRlcnByZXRLZXlFdmVudDpzdHJpbmc6XSk6CisgICAgICAgICogUGx1Z2lucy9XZWJCYXNl
TmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoLVtXZWJCYXNlTmV0c2NhcGVQbHVnaW5W
aWV3IGNvbnZlcnRGcm9tWDphbmRZOnNwYWNlOnRvWDphbmRZOnNwYWNlOl0pOgorICAgICAgICAq
IFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLm1tOgorICAgICAgICAoLVtXZWJOZXRz
Y2FwZVBsdWdpblBhY2thZ2UgX3RyeUxvYWRdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNj
YXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5WaWV3IHNhdmVB
bmRTZXROZXdQb3J0U3RhdGVGb3JVcGRhdGU6XSk6CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1
Z2luVmlldyBzZW5kRHJhd1JlY3RFdmVudDpdKToKKyAgICAgICAgKC1bV2ViTmV0c2NhcGVQbHVn
aW5WaWV3IGRyYXdSZWN0Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxl
ci5tbToKKyAgICAgICAgKFdlYktpdF9UU1VwZGF0ZUNoZWNrX2FsZXJ0RGlkRW5kX3JldHVybkNv
ZGVfY29udGV4dEluZm9fKToKKyAgICAgICAgKFdlYktpdF9OU0FsZXJ0X2JlZ2luU2hlZXRNb2Rh
bEZvcldpbmRvd19tb2RhbERlbGVnYXRlX2RpZEVuZFNlbGVjdG9yX2NvbnRleHRJbmZvXyk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tOgorICAgICAgICAoUG9wdXBN
ZW51TWFjOjpwb3B1bGF0ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRp
dmVUZXh0Q2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5t
bToKKyAgICAgICAgKFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRl
ckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKToKKyAgICAgICAgKHdl
YkdldE5TSW1hZ2UpOgorICAgICAgICAqIFdlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1t
OgorICAgICAgICAqIFdlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbToKKyAgICAg
ICAgKC1bV2ViTm9kZUhpZ2hsaWdodFZpZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICogV2ViVmll
dy9XZWJDbGlwVmlldy5tbToKKyAgICAgICAgKC1bV2ViQ2xpcFZpZXcgaW5pdFdpdGhGcmFtZTpd
KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBf
dXBkYXRlQmFja2dyb3VuZEFuZFVwZGF0ZXNXaGlsZU9mZnNjcmVlbl0pOgorICAgICAgICAoLVtX
ZWJGcmFtZSBfZHJhd1JlY3Q6Y29udGVudHNPbmx5Ol0pOgorICAgICAgICAoLVtXZWJGcmFtZSBh
Y2Nlc3NpYmlsaXR5Um9vdF0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRy
b2xsZXIubW06CisgICAgICAgICgtW1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyIGVudGVyRnVsbFNj
cmVlbjpdKToKKyAgICAgICAgKC1bV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIgZmluaXNoZWRFbnRl
ckZ1bGxTY3JlZW5BbmltYXRpb246XSk6CisgICAgICAgICgtW1dlYkZ1bGxTY3JlZW5Db250cm9s
bGVyIGV4aXRGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
IGZpbmlzaGVkRXhpdEZ1bGxTY3JlZW5BbmltYXRpb246XSk6CisgICAgICAgICgtW1dlYkZ1bGxT
Y3JlZW5Db250cm9sbGVyIF9zdGFydEVudGVyRnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlv
bjpdKToKKyAgICAgICAgKC1bV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIgX3N0YXJ0RXhpdEZ1bGxT
Y3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246XSk6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1M
Vmlldy5tbToKKyAgICAgICAgKC1bTlNXaW5kb3cgX3dlYl9ib3JkZXJWaWV3XSk6CisgICAgICAg
ICgtW1dlYkhUTUxWaWV3IF91cGRhdGVNb3VzZW92ZXJXaXRoRmFrZUV2ZW50XSk6CisgICAgICAg
ICgtW1dlYkhUTUxWaWV3IF9zZXRBc2lkZVN1YnZpZXdzXSk6CisgICAgICAgICgtW1dlYkhUTUxW
aWV3IF9hdXRvc2Nyb2xsXSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGRyYXdSZWN0Ol0pOgor
ICAgICAgICAoLVtXZWJIVE1MVmlldyBtb3VzZURvd246XSk6CisgICAgICAgICgtW1dlYkhUTUxW
aWV3IG1vdXNlRHJhZ2dlZDpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgbW91c2VVcDpdKToK
KyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2VuZFByaW50TW9kZUFuZFJlc3RvcmVXaW5kb3dBdXRv
ZGlzcGxheV0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBrbm93c1BhZ2VSYW5nZTpdKToKKyAg
ICAgICAgKC1bV2ViSFRNTFZpZXcgYWNjZXNzaWJpbGl0eUhpdFRlc3Q6XSk6CisgICAgICAgICgt
W1dlYkhUTUxWaWV3IF9mb250QXR0cmlidXRlc0Zyb21Gb250UGFzdGVib2FyZF0pOgorICAgICAg
ICAoLVtXZWJIVE1MVmlldyBfY29sb3JBc1N0cmluZzpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZp
ZXcgY29weUZvbnQ6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9leGVjdXRlU2F2ZWRLZXlw
cmVzc0NvbW1hbmRzXSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGF0dGFjaFJvb3RMYXllcjpd
KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgdGV4dFN0b3JhZ2VdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgX3VwZGF0ZVNlbGVjdGlvbkZvcklucHV0TWFuYWdlcl0pOgorICAgICAgICAqIFdl
YlZpZXcvV2ViUERGVmlldy5tbToKKyAgICAgICAgKF9hcHBsaWNhdGlvbkluZm9Gb3JNSU1FVHlw
ZSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgY2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYTpd
KToKKyAgICAgICAgKC1bV2ViUERGVmlldyBfcmVjdXJzaXZlRGlzcGxheVJlY3RJZk5lZWRlZEln
bm9yaW5nT3BhY2l0eTppc1Zpc2libGVSZWN0OnJlY3RJc1Zpc2libGVSZWN0Rm9yVmlldzp0b3BW
aWV3Ol0pOgorICAgICAgICAoLVtXZWJQREZWaWV3IF9yZWN1cnNpdmVEaXNwbGF5QWxsRGlydHlX
aXRoTG9ja0ZvY3VzOnZpc1JlY3Q6XSk6CisgICAgICAgICgtW1dlYlBERlZpZXcgX3JlY3Vyc2l2
ZTpkaXNwbGF5UmVjdElnbm9yaW5nT3BhY2l0eTppbkNvbnRleHQ6dG9wVmlldzpdKToKKyAgICAg
ICAgKC1bV2ViUERGVmlldyBzZWFyY2hGb3I6ZGlyZWN0aW9uOmNhc2VTZW5zaXRpdmU6d3JhcDpz
dGFydEluU2VsZWN0aW9uOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVGV4dENvbXBsZXRpb25D
b250cm9sbGVyLm1tOgorICAgICAgICAoLVtXZWJUZXh0Q29tcGxldGlvbkNvbnRyb2xsZXIgX2J1
aWxkVUldKToKKyAgICAgICAgKC1bV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyIF9wbGFjZVBv
cHVwV2luZG93Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlci5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0Nv
bnRyb2xsZXIubW06CisgICAgICAgIChjcmVhdGVNZWRpYVVJQmFja2dyb3VuZFZpZXcpOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVGV4dExpc3RUb3VjaEJh
clZpZXdDb250cm9sbGVyIGluaXRXaXRoV2ViVmlldzpdKToKKyAgICAgICAgKC1bV2ViVmlldyBf
ZGlzcGF0Y2hUaWxlRGlkRHJhdzpdKToKKyAgICAgICAgKC1bV2ViVmlldyBlbmNvZGVXaXRoQ29k
ZXI6XSk6CisgICAgICAgICgtW1dlYlZpZXcgbWFpbkZyYW1lSWNvbl0pOgorICAgICAgICAoTGF5
ZXJGbHVzaENvbnRyb2xsZXI6OmZsdXNoTGF5ZXJzKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYldp
bmRvd0FuaW1hdGlvbi5tbToKKyAgICAgICAgKHNldFNjYWxlZEZyYW1lRm9yV2luZG93KToKKwog
MjAxOC0wOS0xMCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAog
ICAgICAgICBSZW1vdmUgdW51c2VkIG5lZWRzRGVzdHJ1Y3Rpb24gY2xhc3MgdmFyaWFibGVzIGZy
b20gSGFzaFRyYWl0cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaAppbmRleCAxNjM2NDY5NjM4OWRlYzkwZTA1MGVkMjAwMGVhZTcyYzFkNzkyMTNhLi4xOGQ1
MGY3MTA2ZmQ0OGVlYjM1OWE5YmI4NzVhODdhNDE4MzZjNTdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTU4LDE4ICsxNTgsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCogZ2V0UHJpdmF0ZSgpOwogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBm
aXggdGhlIHdhcm5pbmdzIGZvciBleHRlcm4tdGVtcGxhdGUgaW4gSlNPYmplY3QgdGVtcGxhdGUg
Y2xhc3NlczogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTk3OQot
I2lmIENPTVBJTEVSKENMQU5HKQotI2lmIF9faGFzX3dhcm5pbmcoIi1XdW5kZWZpbmVkLXZhci10
ZW1wbGF0ZSIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5kZWZpbmVkLXZhci10ZW1wbGF0ZSIKLSNlbmRpZgotI2Vu
ZGlmCisgICAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0JFR0lOKCJ1bmRlZmluZWQtdmFyLXRlbXBs
YXRlIikKICAgICBERUNMQVJFX0lORk87Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jaWYgX19oYXNf
d2FybmluZygiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKLSNlbmRpZgotI2VuZGlmCisgICAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAog
CiAgICAgSlNDbGFzc1JlZiBjbGFzc1JlZigpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGJhY2tPYmpl
Y3REYXRhLT5qc0NsYXNzOyB9CiAgICAgYm9vbCBpbmhlcml0cyhKU0NsYXNzUmVmKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMKaW5kZXggM2ZjODYxMjE5
YTMwODQ1YWE4YmU4NjQ0NjA1OGFmYjNmNjIwN2FkOS4uNzhhZDdkNjA2NmVjZTA5MGYyN2JkNmE3
MzJlMTA0NzU1MzI3ZGViNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy90ZXN0YXBpLmMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0
YXBpLmMKQEAgLTExNDAsMTAgKzExNDAsNyBAQCBzdGF0aWMgYm9vbCBnbG9iYWxDb250ZXh0TmFt
ZVRlc3QoKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0MpCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAi
LVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZSIKLSNlbmRpZgorSUdOT1JFX0dDQ19XQVJOSU5HU19C
RUdJTigidW51c2VkLWJ1dC1zZXQtdmFyaWFibGUiKQogc3RhdGljIHZvaWQgY2hlY2tDb25zdG5l
c3NJbkpTT2JqZWN0TmFtZXMoKQogewogICAgIEpTU3RhdGljRnVuY3Rpb24gZnVuOwpAQCAtMTE1
MSw5ICsxMTQ4LDcgQEAgc3RhdGljIHZvaWQgY2hlY2tDb25zdG5lc3NJbkpTT2JqZWN0TmFtZXMo
KQogICAgIEpTU3RhdGljVmFsdWUgdmFsOwogICAgIHZhbC5uYW1lID0gInNvbWV0aGluZyI7CiB9
Ci0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgor
SUdOT1JFX0dDQ19XQVJOSU5HU19FTkQKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiBleHRlcm4gIkMi
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgKaW5kZXgg
NTU5OTA4YWRkMDNkZTIxNWFhNjBhZjcyODA5ZmEzM2UxYzlkOTdhOS4uMjNlNDBkZGMzM2UxZmYw
NjM3YWJjOWE0NzlhNzY4NGVmYzM3MTI4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9MaW5rQnVmZmVyLmgKQEAgLTI2MywxNSArMjYzLDExIEBAIHB1YmxpYzoKICAgICB0
ZW1wbGF0ZTxQdHJUYWcgdGFnLCB0eXBlbmFtZS4uLiBBcmdzPgogICAgIENvZGVSZWY8dGFnPiBm
aW5hbGl6ZUNvZGVXaXRoRGlzYXNzZW1ibHkoY29uc3QgY2hhciogZm9ybWF0LCBBcmdzLi4uIGFy
Z3MpCiAgICAgewotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25s
aXRlcmFsIgotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1zZWN1cml0
eSIKLSNlbmRpZgorICAgICAgICBBTExPV19OT05MSVRFUkFMX0ZPUk1BVF9CRUdJTgorICAgICAg
ICBJR05PUkVfV0FSTklOR1NfQkVHSU4oImZvcm1hdC1zZWN1cml0eSIpCiAgICAgICAgIHJldHVy
biBmaW5hbGl6ZUNvZGVXaXRoRGlzYXNzZW1ibHlJbXBsKGZvcm1hdCwgYXJncy4uLikudGVtcGxh
dGUgcmV0YWdnZWQ8dGFnPigpOwotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICAgICAgSUdOT1JFX1dBUk5JTkdTX0VORAor
ICAgICAgICBBTExPV19OT05MSVRFUkFMX0ZPUk1BVF9FTkQKICAgICB9CiAKICAgICB0ZW1wbGF0
ZTxQdHJUYWcgdGFnPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93
ZXJUb0Fpci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcApp
bmRleCAyY2RiNzI0M2QzNGUyN2U1NzYxYzkzNDkzNWNlNTUxODE0ZDViNjJhLi4wMDY1MjdhZjY4
ZDM0NWY1ZTgwYzg0YzQwZTc4ZGZjNTQwZjdlZTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNMb3dlclRvQWlyLmNwcApAQCAtNjIsMTAgKzYyLDkgQEAKICNpbmNsdWRlIDx3dGYvSW5k
ZXhTZXQuaD4KICNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KIAotI2lmIENPTVBJTEVSKEdDQykg
JiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdyZXR1cm4tdHlwZSIKLSNlbmRpZiAvLyBDT01QSUxF
UihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JF
VFVSTl9UWVBFX1dBUk5JTkdTX0JFR0lOCisjZW5kaWYKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBCMyB7CiAKQEAgLTM1MjcsOCArMzUyNiw4IEBAIHZvaWQgbG93ZXJUb0FpcihQcm9jZWR1
cmUmIHByb2NlZHVyZSkKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCiAKLSNpZiBDT01QSUxF
UihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNl
bmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNB
QkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX1dBUk5JTkdTX0VORAorI2VuZGlmCiAKICNlbmRpZiAv
LyBFTkFCTEUoQjNfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
T3Bjb2RlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAKaW5kZXgg
N2ViZjY2YjcwYTQ1MGM5MmFlMTU0OWQ1MjY0YmM5OTBkYTFiZWMxNC4uZGMxMDI0OTc5MzQxYjNm
NmExNTVkYjc4YzIwMjM0OTI2NzI1ZjE3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzT3Bjb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNv
ZGUuY3BwCkBAIC0zMCwxMCArMzAsOSBAQAogCiAjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+
CiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0dXJuLXR5
cGUiCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NF
UlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9XQVJOSU5HU19CRUdJTgorI2VuZGlmCiAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCkBAIC0zNzMsOCArMzcyLDggQEAgdm9p
ZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIE9wY29kZSBvcGNvZGUpCiAKIH0gLy8g
bmFtZXNwYWNlIFdURgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NF
UlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9XQVJO
SU5HU19FTkQKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1R5cGUuaAppbmRleCA0Y2VhYThhMWRmMTRiOGI2YjY4ZTBlODBiZmViNmE5ZTBhMmQ4
ZTgyLi40Y2Q0NzEwZTliMzk0ODUyYjVjNTU0MTk0YWRmMTJmN2E4ZDViMDY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVHlwZS5oCkBAIC0zMCwxMCArMzAsOSBAQAogI2luY2x1ZGUgIkIzQ29tbW9u
LmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCi0jaWYgQ09NUElMRVIoR0NDKSAm
JiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2VuZGlmIC8vIENPTVBJTEVS
KEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVU
VVJOX1RZUEVfV0FSTklOR1NfQkVHSU4KKyNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEIzIHsKIApAQCAtODcsOCArODYsOCBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJl
YW0mLCBKU0M6OkIzOjpUeXBlKTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKLSNpZiBDT01QSUxF
UihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNl
bmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNB
QkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX1dBUk5JTkdTX0VORAorI2VuZGlmCiAKICNlbmRpZiAv
LyBFTkFCTEUoQjNfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
VHlwZU1hcC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVHlwZU1hcC5oCmluZGV4IGMw
ZWE0MTMwNDhhNTU1NmY1ZGMzNDU4ZDM4NDBlNWZiNWI5OWQ2ZDEuLjE2ZDgwN2U0ZjllNGU1ZjFl
NmE5Mjk3NTg4YmJiNzA2MmYxOGNjYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1R5cGVNYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNUeXBlTWFw
LmgKQEAgLTMwLDEwICszMCw5IEBACiAjaW5jbHVkZSAiQjNUeXBlLmgiCiAjaW5jbHVkZSA8d3Rm
L1ByaW50U3RyZWFtLmg+CiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAot
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XcmV0dXJuLXR5cGUiCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElT
QUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9XQVJOSU5HU19C
RUdJTgorI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCkBAIC0xMDEs
OCArMTAwLDggQEAgcHJpdmF0ZToKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCiAKLSNpZiBD
T01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
b3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAorI2lmIEFTU0VS
VF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX1dBUk5JTkdTX0VORAorI2VuZGlmCiAKICNl
bmRpZiAvLyBFTkFCTEUoQjNfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzV2lkdGguaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dpZHRoLmgKaW5kZXgg
ZTM2NTgzZjY5NGI4ODNmYjJiODg5ZDAxMzEwODM0YTA1MzFjZmM0Ny4uZTkyYWRkYThiNWM4Yzhj
MTAyNzI4OGVmNDg4OTc0NGIwZTgyOTk3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzV2lkdGguaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNXaWR0aC5o
CkBAIC0zMCwxMCArMzAsOSBAQAogI2luY2x1ZGUgIkIzQmFuay5oIgogI2luY2x1ZGUgIkIzVHlw
ZS5oIgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVy
bi10eXBlIgotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYg
QVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfV0FSTklOR1NfQkVHSU4KKyNlbmRp
ZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIApAQCAtMTQzLDkgKzE0Miw5IEBA
IHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIEpTQzo6QjM6OldpZHRoKTsKIAogfSAv
LyBuYW1lc3BhY2UgV1RGCiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAot
I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpICYmIEFT
U0VSVF9ESVNBQkxFRAorI2lmIEFTU0VSVF9ESVNBQkxFRAorSUdOT1JFX1JFVFVSTl9UWVBFX1dB
Uk5JTkdTX0VORAorI2VuZGlmCiAKICNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5jcHAKaW5kZXggZjllNDY5YzA0N2NiZWIzODcxNzc3
NTFjNDljNzY2YzU3OWU2ODUzOS4uMmRhYzJlYTdmYTg0ZDI3M2YwMDNiMGIwN2MwNTk5N2U1MjI2
MWRjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmNwcApAQCAtMzQsMTAg
KzM0LDkgQEAKICNpbmNsdWRlICJGUFJJbmZvLmgiCiAjaW5jbHVkZSAiR1BSSW5mby5oIgogCi0j
aWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgot
I2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJ
U0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfV0FSTklOR1NfQkVHSU4KKyNlbmRpZgogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKQEAgLTM3OSw4ICsz
NzgsOCBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgQXJnOjpTaWduZWRu
ZXNzIHNpZ25lZG5lc3MpCiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCi0jaWYgQ09NUElMRVIoR0ND
KSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYg
Ly8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQK
K0lHTk9SRV9SRVRVUk5fVFlQRV9XQVJOSU5HU19FTkQKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5B
QkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
QXJnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCmluZGV4IDgzOGZj
YTg5MjEyNzFjMWIwNzc4YjI1ZDQ1MDU3OWRlNDM3OTU3NjcuLmNkMjE2MmRkZmI5YWY5ZTFkYjVl
MDhlMGI3NGUwZTkwYzRhNjMyYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQXJnLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcu
aApAQCAtMzUsMTAgKzM1LDkgQEAKICNpbmNsdWRlICJCM1dpZHRoLmgiCiAjaW5jbHVkZSA8d3Rm
L09wdGlvbmFsLmg+CiAKLSNpZiBDT01QSUxFUihHQ0MpICYmIEFTU0VSVF9ESVNBQkxFRAotI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XcmV0dXJuLXR5cGUiCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJM
RUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5fVFlQRV9XQVJOSU5HU19CRUdJ
TgorI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCkBAIC0xNDk0LDgg
KzE0OTMsOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPEpTQzo6QjM6OkFpcjo6QXJn
PiA6IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxKU0M6OkIzOgogCiB9IC8vIG5hbWVzcGFjZSBXVEYK
IAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisj
aWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfV0FSTklOR1NfRU5ECisjZW5k
aWYKIAogI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyQ29kZS5oCmluZGV4IDc1OTcwMzBmZGNmMDQyYmZjM2Q4ZGVhMjI4MWI5ZWIyOGJhMjU0MzUu
LjI5NjljZWFkNWYzMGMzOTAwZmNlZDdiZWE1ZjdlZjEzOTRjMmUwZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCkBAIC00NCwxMCArNDQsOSBAQCBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIEIzIHsKIAogY2xhc3MgUHJvY2VkdXJlOwogCi0jaWYgQ09NUElMRVIoR0ND
KSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVybi10eXBlIgotI2VuZGlmIC8vIENPTVBJ
TEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVf
UkVUVVJOX1RZUEVfV0FSTklOR1NfQkVHSU4KKyNlbmRpZgogCiBuYW1lc3BhY2UgQWlyIHsKIApA
QCAtMzg4LDggKzM4Nyw4IEBAIHByaXZhdGU6CiAKIH0gfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIz
OjpBaXIKIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdD
QyBkaWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FC
TEVECisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfV0FSTklOR1NfRU5E
CisjZW5kaWYKIAogI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvT3Bjb2RlLmgKaW5kZXggMDdkOWE3MzE0ZWViMTA5YzczMTIzN2Q0YmUzMjcxMzFi
MTFjOTRlZS4uNGVmMjc0ZmFlYjM0YjAxZjhlY2JjNmQ0ZGY5NTQwMWM4OTk3ZGEzOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaApAQCAtNzQsMTggKzc0LDEzIEBAIGNv
bnN0IGludCBudW1PcGNvZGVJRHMgPSBOVU1CRVJfT0ZfQllURUNPREVfSURTICsgTlVNQkVSX09G
X0JZVEVDT0RFX0hFTFBFUl9JRFM7CiAgICAgY29uc3QgaW50IG9wY29kZUxlbmd0aHNbbnVtT3Bj
b2RlSURzXSA9IHsgRk9SX0VBQ0hfT1BDT0RFX0lEKE9QQ09ERV9JRF9MRU5HVEhfTUFQKSB9Owog
I3VuZGVmIE9QQ09ERV9JRF9MRU5HVEhfTUFQCiAKLSNpZiBDT01QSUxFUihHQ0MpCi0jcHJhZ21h
IEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd0
eXBlLWxpbWl0cyIKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0eXBlLWxpbWl0cyIp
CiAKICNkZWZpbmUgVkVSSUZZX09QQ09ERV9JRChpZCwgc2l6ZSkgQ09NUElMRV9BU1NFUlQoaWQg
PD0gbnVtT3Bjb2RlSURzLCBBU1NFUlRfVEhBVF9KU19PUENPREVfSURTX0FSRV9WQUxJRCk7CiAg
ICAgRk9SX0VBQ0hfT1BDT0RFX0lEKFZFUklGWV9PUENPREVfSUQpOwogI3VuZGVmIFZFUklGWV9P
UENPREVfSUQKIAotI2lmIENPTVBJTEVSKEdDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9w
Ci0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HU19FTkQKIAogI2lmIEVOQUJMRShDT01QVVRFRF9HT1RP
X09QQ09ERVMpCiB0eXBlZGVmIHZvaWQqIE9wY29kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggYmRiNGRiNzI0YzMyY2YwZWNiOGFk
NGNkOGI4OGYwMzAxYWRkMTBmNC4uNGI3OGQxMTIwN2Q2YTVhNjhiZDliNWUzNmYyNTU2YTliNTNh
MzMxMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKQEAgLTk2NjAsMTQgKzk2NjAsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxh
dGVOdW1iZXIoRWRnZSBlZGdlKQogICAgICAgICBKU1ZhbHVlUmVncyhncHIpLCBlZGdlLCBTcGVj
Qnl0ZWNvZGVOdW1iZXIsCiAgICAgICAgIG1faml0LmJyYW5jaElmTm90TnVtYmVyKGdwcikpOwog
I2Vsc2UKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdlbnVtLWNvbXBhcmUiCi0j
ZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR1NfQkVHSU4oImVudW0tY29tcGFyZSIpCiAgICAgc3Rh
dGljX2Fzc2VydChKU1ZhbHVlOjpJbnQzMlRhZyA+PSBKU1ZhbHVlOjpMb3dlc3RUYWcsICJJbnQz
MlRhZyBpcyBpbmNsdWRlZCBpbiA+PSBKU1ZhbHVlOjpMb3dlc3RUYWcgcmFuZ2UuIik7Ci0jaWYg
Q09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRp
ZgorICAgIElHTk9SRV9XQVJOSU5HU19FTkQKICAgICBHUFJSZWcgdGFnR1BSID0gdmFsdWUudGFn
R1BSKCk7CiAgICAgREZHX1RZUEVfQ0hFQ0soCiAgICAgICAgIHZhbHVlLmpzVmFsdWVSZWdzKCks
IGVkZ2UsIH5TcGVjSW50MzJPbmx5LApAQCAtMTAxNzQsMTQgKzEwMTY5LDkgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6c3BlY3VsYXRlTWlzYyhFZGdlIGVkZ2UsIEpTVmFsdWVSZWdzIHJlZ3MpCiAg
ICAgICAgIHJlZ3MsIGVkZ2UsIFNwZWNNaXNjLAogICAgICAgICBtX2ppdC5icmFuY2g2NChNYWNy
b0Fzc2VtYmxlcjo6QWJvdmUsIHJlZ3MuZ3ByKCksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
NjQoVGFnQml0VHlwZU90aGVyIHwgVGFnQml0Qm9vbCB8IFRhZ0JpdFVuZGVmaW5lZCkpKTsKICNl
bHNlCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZW51bS1jb21wYXJlIgotI2Vu
ZGlmCisgICAgSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJlbnVtLWNvbXBhcmUiKQogICAgIHN0YXRp
Y19hc3NlcnQoSlNWYWx1ZTo6SW50MzJUYWcgPj0gSlNWYWx1ZTo6VW5kZWZpbmVkVGFnLCAiSW50
MzJUYWcgaXMgaW5jbHVkZWQgaW4gPj0gSlNWYWx1ZTo6VW5kZWZpbmVkVGFnIHJhbmdlLiIpOwot
I2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0j
ZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR1NfRU5ECiAgICAgREZHX1RZUEVfQ0hFQ0soCiAgICAg
ICAgIHJlZ3MsIGVkZ2UsIH5TcGVjSW50MzJPbmx5LAogICAgICAgICBtX2ppdC5icmFuY2hJZklu
dDMyKHJlZ3MudGFnR1BSKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDEyMWZkNjNmODc3YzhhZGE2MDhlMWRmMGQ4YTA5
YzUyZDU3MTliZGYuLjE0ZGMxOGE4OWRmYWY4ZWI5ZjZkZGJmMGU3NzRhMGUwN2Q2OTBkYzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cApAQCAtODc2LDEyICs4NzYsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2Rl
KiBub2RlKQogCiAvLyBDbGFuZyBzaG91bGQgYWxsb3cgdW5yZWFjaGFibGUgW1tjbGFuZzo6ZmFs
bHRocm91Z2hdXSBpbiB0ZW1wbGF0ZSBmdW5jdGlvbnMgaWYgYW55IHRlbXBsYXRlIGV4cGFuc2lv
biB1c2VzIGl0CiAvLyBodHRwOi8vbGx2bS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MTg2MTkK
LSNpZiBDT01QSUxFUihDTEFORykgJiYgZGVmaW5lZChfX2hhc193YXJuaW5nKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNpZiBfX2hhc193YXJuaW5nKCItV2ltcGxpY2l0LWZhbGx0
aHJvdWdoIikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2ltcGxpY2l0LWZh
bGx0aHJvdWdoIgotI2VuZGlmCi0jZW5kaWYKK0lHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigi
aW1wbGljaXQtZmFsbHRocm91Z2giKQogdGVtcGxhdGU8Ym9vbCBzdHJpY3Q+CiBHUFJSZWcgU3Bl
Y3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJbnQzMkludGVybmFsKEVkZ2UgZWRnZSwgRGF0YUZv
cm1hdCYgcmV0dXJuRm9ybWF0KQogewpAQCAtMTAxMiw5ICsxMDA3LDcgQEAgR1BSUmVnIFNwZWN1
bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlSW50MzJJbnRlcm5hbChFZGdlIGVkZ2UsIERhdGFGb3Jt
YXQmIHJldHVybkYKICAgICAgICAgcmV0dXJuIEludmFsaWRHUFJSZWc7CiAgICAgfQogfQotI2lm
IENPTVBJTEVSKENMQU5HKSAmJiBkZWZpbmVkKF9faGFzX3dhcm5pbmcpCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKK0lHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKIAogR1BS
UmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlSW50MzIoRWRnZSBlZGdlLCBEYXRhRm9y
bWF0JiByZXR1cm5Gb3JtYXQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTE91dHB1dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaApp
bmRleCA5ZjU5MzY5Yzg5YmU1N2U2ZWU3NzllMTE2ZjM3ZmU2YzJiN2U5NzBmLi42YmFlYjllZGM2
MmZjMGMwNWU2N2ZiNWI5NzBhMmFhMTgzZTZhNTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMT3V0cHV0LmgKQEAgLTUwLDExICs1MCw4IEBACiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50
U3RyZWFtLmg+CiAKIC8vIEZJWE1FOiByZW1vdmUgdGhpcyBvbmNlIGV2ZXJ5dGhpbmcgY2FuIGJl
IGdlbmVyYXRlZCB0aHJvdWdoIEIzLgotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V21pc3Npbmctbm9yZXR1cm4iCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51
c2VkLXBhcmFtZXRlciIKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCitJR05PUkVf
V0FSTklOR1NfQkVHSU4oIm1pc3Npbmctbm9yZXR1cm4iKQorQUxMT1dfVU5VU0VEX1BBUkFNRVRF
UlNfQkVHSU4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTUwMCw5ICs0OTcsOCBAQCBpbmxpbmUg
dm9pZCBPdXRwdXQ6OmFkZEluY29taW5nVG9QaGkoTFZhbHVlIHBoaSwgVmFsdWVGcm9tQmxvY2sg
dmFsdWUsIFBhcmFtcy4uLgogICAgIGFkZEluY29taW5nVG9QaGkocGhpLCB0aGVSZXN0Li4uKTsK
IH0KIAotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDX09SX0NMQU5HKQorQUxMT1dfVU5VU0VEX1BBUkFN
RVRFUlNfRU5ECitJR05PUkVfV0FSTklOR1NfRU5ECiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpG
VEwKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKaW5kZXggMWQ4ZTNi
ZWU5YjZiZDY3ZTcwOTM0NzU1MzZkMmJkNTdkMWYzMTgzZi4uYzMwNDQxOWVkNDM2Zjg1ODExMzMz
YWU2NTI0NGE3OWFkMjRlNTNhYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9DQ2FsbEhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVs
cGVycy5oCkBAIC0zMjksMTQgKzMyOSw5IEBAIHByaXZhdGU6CiAKICAgICAgICAgY3VycmVudEdQ
UkFyZ3VtZW50ICs9IGV4dHJhR1BSQXJnczsKICAgICAgICAgY3VycmVudEZQUkFyZ3VtZW50IC09
IG51bUNyb3NzU291cmNlczsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdD
QyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd0eXBl
LWxpbWl0cyIKLSNlbmRpZgorICAgICAgICBJR05PUkVfV0FSTklOR1NfQkVHSU4oInR5cGUtbGlt
aXRzIikKICAgICAgICAgQVNTRVJUKGN1cnJlbnRHUFJBcmd1bWVudCA+PSBHUFJJbmZvOjpudW1i
ZXJPZkFyZ3VtZW50UmVnaXN0ZXJzIHx8IGN1cnJlbnRGUFJBcmd1bWVudCA+PSBGUFJJbmZvOjpu
dW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKTsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgICAgIElHTk9SRV9XQVJOSU5H
U19FTkQKIAogICAgICAgICB1bnNpZ25lZCBwb2tlT2Zmc2V0ID0gUE9LRV9BUkdVTUVOVF9PRkZT
RVQgKyBleHRyYVBva2U7CiAgICAgICAgIHBva2VPZmZzZXQgKz0gc3RkOjptYXgoY3VycmVudEdQ
UkFyZ3VtZW50LCBudW1iZXJPZkdQQXJndW1lbnRSZWdpc3RlcnMpIC0gbnVtYmVyT2ZHUEFyZ3Vt
ZW50UmVnaXN0ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50RGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcApp
bmRleCBjOTNkMTVjNzRjNThmZjVkOTZhYTBhYWQ5NDM0MTNmMDg1YTNkOTJlLi40MWY2NGI0YWZh
MzFlODE5Y2Y1NGI5ZmJjZDgwODNmNWEzMTM2ZTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnREYXRhLmNwcApAQCAtNjcsMTAgKzY3LDcgQEAgdm9pZCBpbml0aWFsaXplKCkK
ICNlbmRpZiAvLyBFTkFCTEUoSklUKQogfQogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XbWlzc2luZy1ub3JldHVybiIKLSNlbmRpZgorSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0JFR0lO
KCJtaXNzaW5nLW5vcmV0dXJuIikKIHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0mIHZt
KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0xOTksOCArMTk2LDYgQEAgdm9pZCBEYXRh
OjpwZXJmb3JtQXNzZXJ0aW9ucyhWTSYgdm0pCiAgICAgICAgIEFTU0VSVChBcml0aFByb2ZpbGU6
OmZyb21JbnQoYml0cykucmhzT2JzZXJ2ZWRUeXBlKCkuaXNPbmx5TnVtYmVyKCkpOwogICAgIH0K
IH0KLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNl
bmRpZgorSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
TExJbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQ
YXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3Bw
CmluZGV4IDY4MWY2Mzg3OWM0OWIwNGJlMGQ5OTNlMDVlNDE2MWFkNjQwMmRiYjMuLjNjNWY5YTI5
NDJiMzAwM2ZlNDIxMzhmN2U0ZGRjM2VhMGRlZWI3YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAtMjA2LDE2ICsyMDYsMTIgQEAgdm9p
ZCBzbG93UGF0aExuKGNvbnN0IFR5cGVzJi4uLiB2YWx1ZXMpCiB0ZW1wbGF0ZTx0eXBlbmFtZS4u
LiBUeXBlcz4KIHZvaWQgc2xvd1BhdGhMb2dGKGNvbnN0IGNoYXIqIGZvcm1hdCwgY29uc3QgVHlw
ZXMmLi4uIHZhbHVlcykKIHsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdD
QyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3Jt
YXQtbm9ubGl0ZXJhbCIKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQt
c2VjdXJpdHkiCi0jZW5kaWYKKyAgICBBTExPV19OT05MSVRFUkFMX0ZPUk1BVF9CRUdJTgorICAg
IElHTk9SRV9XQVJOSU5HU19CRUdJTigiZm9ybWF0LXNlY3VyaXR5IikKICAgICBpZiAoT3B0aW9u
czo6dHJhY2VMTEludFNsb3dQYXRoKCkpCiAgICAgICAgIGRhdGFMb2dGKGZvcm1hdCwgdmFsdWVz
Li4uKTsKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHBvcAotI2VuZGlmCisgICAgSUdOT1JFX1dBUk5JTkdTX0VORAorICAgIEFMTE9XX05PTkxJVEVS
QUxfRk9STUFUX0VORAogfQogCiAjZWxzZSAvLyBub3QgTExJTlRfVFJBQ0lORwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uZmlnRmlsZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25maWdGaWxlLmNwcAppbmRleCA5OGMxOTZmODJmNjg1
MWJkZjcwZWY4ZDYyMjNiNWExNjkxMjkzNjJmLi5jOWFhODUzNDdhYWZhNzVmNjY2ODZhOTBmZTNk
YTY2ZDE5YzZiNjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b25maWdGaWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25maWdG
aWxlLmNwcApAQCAtNDkxLDE0ICs0OTEsMTMgQEAgdm9pZCBDb25maWdGaWxlOjpjYW5vbmljYWxp
emVQYXRocygpCiAgICAgICAgICAgICAgICAgICAgIHN0cm5jYXQoZmlsZW5hbWVCdWZmZXIsICIv
IiwgMik7IC8vIFJvb20gZm9yICcvJyBwbHVzIE5VTAogI2lmIENPTVBJTEVSKEdDQykKICNpZiBH
Q0NfVkVSU0lPTl9BVF9MRUFTVCg4LCAwLCAwKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xc3RyaW5nb3AtdHJ1bmNhdGlvbiIK
KyAgICAgICAgICAgICAgICBJR05PUkVfV0FSTklOR1NfQkVHSU4oInN0cmluZ29wLXRydW5jYXRp
b24iKQogI2VuZGlmCiAjZW5kaWYKICAgICAgICAgICAgICAgICBzdHJuY2F0KGZpbGVuYW1lQnVm
ZmVyLCBtX2ZpbGVuYW1lLCBzaXplb2YoZmlsZW5hbWVCdWZmZXIpIC0gc3RybGVuKGZpbGVuYW1l
QnVmZmVyKSAtIDEpOwogI2lmIENPTVBJTEVSKEdDQykKICNpZiBHQ0NfVkVSU0lPTl9BVF9MRUFT
VCg4LCAwLCAwKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgICAgICBJ
R05PUkVfV0FSTklOR1NfRU5ECiAjZW5kaWYKICNlbmRpZgogICAgICAgICAgICAgICAgIHN0cm5j
cHkobV9maWxlbmFtZSwgZmlsZW5hbWVCdWZmZXIsIHNfbWF4UGF0aExlbmd0aCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3Bw
CmluZGV4IGYwNWNmZjVmODhhNTUxYzNhN2M0YmFhZDJmMDNjNWI0Nzc4OWFmNmQuLmRmMmY2NzY0
ZTEwM2YwYzIwOTRiNmQwYTM2ZTllNWYxNzFjYWFjZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCkBAIC0yMDgsMTAg
KzIwOCw3IEBAIEVuY29kZWRKU1ZhbHVlIHNldERhdGEoRXhlY1N0YXRlKiBleGVjKQogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLSNpZiBDT01QSUxFUihD
TEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdtaXNzaW5nLXByb3RvdHlwZXMiCi0jZW5kaWYKK0lHTk9SRV9DTEFO
R19XQVJOSU5HU19CRUdJTigibWlzc2luZy1wcm90b3R5cGVzIikKIAogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvR2V0dGVyQnVmZmVyKEV4ZWNTdGF0ZSogZXhlYykK
IHsKQEAgLTMyOCw4ICszMjUsNiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFW
aWV3UHJvdG9GdW5jU2V0RmxvYXQ2NChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgcmV0dXJuIHNl
dERhdGE8RmxvYXQ2NEFkYXB0b3I+KGV4ZWMpOwogfQotI2lmIENPTVBJTEVSKENMQU5HKQotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5ECiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rv
ci5oCmluZGV4IDhhY2ZkNDhlMjNmZmQ5NmNiY2IyZmJiN2JmNzEyZjc4MDhmNWE0NDAuLjFmYjYw
Y2I4ZDJjOWIwZGVjMGJlNDY2YThhMTlmNDExOWQ2YTcxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3Iu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5
Vmlld0NvbnN0cnVjdG9yLmgKQEAgLTQzLDE5ICs0MywxMCBAQCBwdWJsaWM6CiAgICAgICAgIFZN
JiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBKU09iamVjdCogcHJvdG90eXBlLCBjb25z
dCBTdHJpbmcmIG5hbWUsIEZ1bmN0aW9uRXhlY3V0YWJsZSogcHJpdmF0ZUFsbG9jYXRvcik7CiAK
ICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGZpeCB0aGUgd2FybmluZ3MgZm9yIGV4dGVybi10ZW1w
bGF0ZSBpbiBKU09iamVjdCB0ZW1wbGF0ZSBjbGFzc2VzOiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYxOTc5Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jaWYgX19oYXNf
d2FybmluZygiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmRlZmluZWQt
dmFyLXRlbXBsYXRlIgotI2VuZGlmCi0jZW5kaWYKKyAgICBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
QkVHSU4oInVuZGVmaW5lZC12YXItdGVtcGxhdGUiKQogICAgIERFQ0xBUkVfSU5GTzsKLSNpZiBD
T01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3VuZGVmaW5lZC12YXItdGVtcGxh
dGUiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCi0jZW5kaWYKLSAgICAK
KyAgICBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECisKICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlKTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oCmluZGV4IDRlMWViN2Q4ODM0Y2Jj
NWRlNzJjZDZjYzZiMWQyNGI0NjE0M2M1YjYuLmI0MzYwZTkxOGVkOWE1MGYzZDYzMzhmMzM2OGEz
MWM5OTVhMGE5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaApAQCAtNDMsMTgg
KzQzLDkgQEAgcHVibGljOgogICAgICAgICBWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
Kik7CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGZpeCB0aGUgd2FybmluZ3MgZm9yIGV4dGVy
bi10ZW1wbGF0ZSBpbiBKU09iamVjdCB0ZW1wbGF0ZSBjbGFzc2VzOiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxOTc5Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jaWYg
X19oYXNfd2FybmluZygiLVd1bmRlZmluZWQtdmFyLXRlbXBsYXRlIikKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmRl
ZmluZWQtdmFyLXRlbXBsYXRlIgotI2VuZGlmCi0jZW5kaWYKKyAgICBJR05PUkVfQ0xBTkdfV0FS
TklOR1NfQkVHSU4oInVuZGVmaW5lZC12YXItdGVtcGxhdGUiKQogICAgIERFQ0xBUkVfSU5GTzsK
LSNpZiBDT01QSUxFUihDTEFORykKLSNpZiBfX2hhc193YXJuaW5nKCItV3VuZGVmaW5lZC12YXIt
dGVtcGxhdGUiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCi0jZW5kaWYK
KyAgICBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgCiAgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlw
ZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9u
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAppbmRleCA0
MDdjNTcwNDc0NmIwNGNmZjc0ZGZhOThiOWJjMzEzZmM3MzM2NjRmLi5kMDIzNjhlMTQ0YTdjYzZh
YzkyZWNkOWNmMDVkOGVhZGNkNGE2YzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcHRpb25zLmNwcApAQCAtNzQ0LDEyICs3NDQsNyBAQCBib29sIE9wdGlvbnM6OnNldEFsaWFz
ZWRPcHRpb24oY29uc3QgY2hhciogYXJnKQogICAgIGlmICghZXF1YWxTdHIpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotI2lmIENPTVBJTEVSKENMQU5HKQotI2lmIF9faGFzX3dhcm5pbmcoIi1X
dGF1dG9sb2dpY2FsLWNvbXBhcmUiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3RhdXRvbG9naWNhbC1jb21wYXJlIgot
I2VuZGlmCi0jZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1j
b21wYXJlIikKIAogICAgIC8vIEZvciBlYWNoIG9wdGlvbiwgY2hlY2sgaWYgdGhlIHNwZWNpZnkg
YXJnIGlzIGEgbWF0Y2guIElmIHNvLCBzZXQgdGhlIGFyZwogICAgIC8vIGlmIHRoZSB2YWx1ZSBt
YWtlcyBzZW5zZS4gT3RoZXJ3aXNlLCBtb3ZlIG9uIHRvIGNoZWNraW5nIHRoZSBuZXh0IG9wdGlv
bi4KQEAgLTc3MiwxMSArNzY3LDcgQEAgYm9vbCBPcHRpb25zOjpzZXRBbGlhc2VkT3B0aW9uKGNv
bnN0IGNoYXIqIGFyZykKICAgICBKU0NfQUxJQVNFRF9PUFRJT05TKEZPUl9FQUNIX09QVElPTikK
ICN1bmRlZiBGT1JfRUFDSF9PUFRJT04KIAotI2lmIENPTVBJTEVSKENMQU5HKQotI2lmIF9faGFz
X3dhcm5pbmcoIi1XdGF1dG9sb2dpY2FsLWNvbXBhcmUiKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAotI2VuZGlmCi0jZW5kaWYKKyAgICBJR05PUkVfV0FSTklOR1NfRU5ECiAKICAgICBy
ZXR1cm4gZmFsc2U7IC8vIE5vIG9wdGlvbiBtYXRjaGVkLgogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxpbmcuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxpbmcuY3BwCmluZGV4IGMzZGE4YzJjMjkzZmNjOWJjYzcz
ZGYxMmY2OTZmNGNlM2I0OThkYTMuLmU0NGRjMzQzYmU3YTM4NmUzNWVjNWUwOWVhYWJkZWFhNjc3
ZDQzYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9Db2RlUHJvZmls
aW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvQ29kZVByb2ZpbGluZy5j
cHAKQEAgLTQ0LDEwICs0NCw3IEBAIHZvbGF0aWxlIENvZGVQcm9maWxlKiBDb2RlUHJvZmlsaW5n
OjpzX3Byb2ZpbGVTdGFjayA9IDA7CiBDb2RlUHJvZmlsaW5nOjpNb2RlIENvZGVQcm9maWxpbmc6
OnNfbW9kZSA9IENvZGVQcm9maWxpbmc6OkRpc2FibGVkOwogV1RGOjpNZXRhQWxsb2NhdG9yVHJh
Y2tlciogQ29kZVByb2ZpbGluZzo6c190cmFja2VyID0gMDsKIAotI2lmIENPTVBJTEVSKENMQU5H
KQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV21pc3Npbmctbm9yZXR1cm4iCi0jZW5kaWYKK0lHTk9SRV9DTEFOR19XQVJO
SU5HU19CRUdJTigibWlzc2luZy1ub3JldHVybiIpCiAKICNpZiBIQVZFKE1BQ0hJTkVfQ09OVEVY
VCkKIC8vIEhlbHBlciBmdW5jdGlvbiB0byBzdGFydCAmIHN0b3AgdGhlIHRpbWVyLgpAQCAtNjMs
OSArNjAsNyBAQCBzdGF0aWMgdm9pZCBzZXRQcm9maWxlVGltZXIodW5zaWduZWQgdXNlYykKIH0K
ICNlbmRpZgogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCi0jZW5kaWYKK0lHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKIAogI2lmIEhBVkUoTUFDSElO
RV9DT05URVhUKQogc3RhdGljIHZvaWQgcHJvZmlsaW5nVGltZXIoaW50LCBzaWdpbmZvX3QqLCB2
b2lkKiB1YXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2Vj
dGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TZWN0aW9ucy5oCmluZGV4
IGU2OTI0Yjc5NTNjYzM2NDZiZWU5MDg0NDFhNjNjNjNjMjk0YTc3ZDYuLmIwOTdkMTRkODMyMzU1
Njg3OGVlN2FjMGRkMjVmMTdlMzZlMmI0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21TZWN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21TZWN0aW9ucy5oCkBAIC0yNywxMCArMjcsOSBAQAogCiAjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3JldHVy
bi10eXBlIgotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisjaWYg
QVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfV0FSTklOR1NfQkVHSU4KKyNlbmRp
ZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCkBAIC0xMDcsOCArMTA2LDgg
QEAgaW5saW5lIGNvbnN0IGNoYXIqIG1ha2VTdHJpbmcoU2VjdGlvbiBzZWN0aW9uKQogCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6V2FzbQogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElT
QUJMRUQKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYgLy8gQ09NUElMRVIoR0ND
KSAmJiBBU1NFUlRfRElTQUJMRUQKKyNpZiBBU1NFUlRfRElTQUJMRUQKK0lHTk9SRV9SRVRVUk5f
VFlQRV9XQVJOSU5HU19FTkQKKyNlbmRpZgogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vZ2VuZXJhdGVXYXNtVmFs
aWRhdGVJbmxpbmVzSGVhZGVyLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vZ2VuZXJh
dGVXYXNtVmFsaWRhdGVJbmxpbmVzSGVhZGVyLnB5CmluZGV4IGJjNTRhMjIzNzQ2NWRiOWM3ZDkw
M2YyMmE5NTQyYTFjYTY4ZWY1NTUuLjc4NmQwOTZiNjZlNjgyZGQ2NTc3ZDJkZTI2NTA4MmI3MjEx
NTZiY2EgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2dlbmVyYXRlV2Fz
bVZhbGlkYXRlSW5saW5lc0hlYWRlci5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9nZW5lcmF0ZVdhc21WYWxpZGF0ZUlubGluZXNIZWFkZXIucHkKQEAgLTEyNywxMCArMTI3LDkg
QEAgY29udGVudHMgPSB3YXNtLmhlYWRlciArICIiIgogCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4
dHJhcy5oPgogCi0jaWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Jl
dHVybi10eXBlIgotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECisj
aWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfV0FSTklOR1NfQkVHSU4KKyNl
bmRpZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCkBAIC0xNjAsOSArMTU5
LDkgQEAgYXV0byBWYWxpZGF0ZTo6c3RvcmUoU3RvcmVPcFR5cGUgb3AsIEV4cHJlc3Npb25UeXBl
IHBvaW50ZXIsIEV4cHJlc3Npb25UeXBlIHZhbHUKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldh
c20KIAotI2lmIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVECi0jcHJhZ21hIEdDQyBk
aWFnbm9zdGljIHBvcAotI2VuZGlmIC8vIENPTVBJTEVSKEdDQykgJiYgQVNTRVJUX0RJU0FCTEVE
CisjaWYgQVNTRVJUX0RJU0FCTEVECitJR05PUkVfUkVUVVJOX1RZUEVfV0FSTklOR1NfRU5ECisj
ZW5kaWYKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNw
cAppbmRleCBmZThmYWMwN2Q2Zjc1NzNlMDJmMjY5ZGU1YjBiNTBmMmJkZTdkYzVkLi4yYjk0NjBh
YTY3ZWViN2I5MmE5M2Y3NGNmYjU2MTEyYTQ3NDI4ODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9Bc3NlcnRpb25zLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmNwcApA
QCAtNzksMTAgKzc5LDkgQEAgZXh0ZXJuICJDIiB7CiBzdGF0aWMgdm9pZCBsb2dUb1N0ZGVycihj
b25zdCBjaGFyKiBidWZmZXIpCiB7CiAjaWYgVVNFKEFQUExFX1NZU1RFTV9MT0cpCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBhc2xfbG9nKDAsIDAsIEFTTF9MRVZFTF9OT1RJQ0UsICIlcyIsIGJ1
ZmZlcik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAjZW5kaWYKICAgICBmcHV0cyhidWZmZXIsIHN0ZGVycik7CiB9
CkBAIC05NCwxNCArOTMsOSBAQCBzdGF0aWMgdm9pZCB2cHJpbnRmX3N0ZGVycl9jb21tb24oY29u
c3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ3MpCiAgICAgaWYgKHN0cnN0cihmb3JtYXQsICIl
QCIpKSB7CiAgICAgICAgIGF1dG8gY2ZGb3JtYXQgPSBhZG9wdENGKENGU3RyaW5nQ3JlYXRlV2l0
aENTdHJpbmcobnVsbHB0ciwgZm9ybWF0LCBrQ0ZTdHJpbmdFbmNvZGluZ1VURjgpKTsKIAotI2lm
IENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2VuZGlmCisg
ICAgICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lOCiAgICAgICAgIGF1dG8gc3RyID0g
YWRvcHRDRihDRlN0cmluZ0NyZWF0ZVdpdGhGb3JtYXRBbmRBcmd1bWVudHMobnVsbHB0ciwgbnVs
bHB0ciwgY2ZGb3JtYXQuZ2V0KCksIGFyZ3MpKTsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgICAgICBBTExPV19OT05MSVRFUkFM
X0ZPUk1BVF9FTkQKICAgICAgICAgQ0ZJbmRleCBsZW5ndGggPSBDRlN0cmluZ0dldE1heGltdW1T
aXplRm9yRW5jb2RpbmcoQ0ZTdHJpbmdHZXRMZW5ndGgoc3RyLmdldCgpKSwga0NGU3RyaW5nRW5j
b2RpbmdVVEY4KTsKICAgICAgICAgY29uc3RleHByIHVuc2lnbmVkIEluaXRpYWxCdWZmZXJTaXpl
IHsgMjU2IH07CiAgICAgICAgIFZlY3RvcjxjaGFyLCBJbml0aWFsQnVmZmVyU2l6ZT4gYnVmZmVy
KGxlbmd0aCArIDEpOwpAQCAtMTEzLDEzICsxMDcsMTIgQEAgc3RhdGljIHZvaWQgdnByaW50Zl9z
dGRlcnJfY29tbW9uKGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmdzKQogICAgIH0KIAog
I2lmIFVTRShBUFBMRV9TWVNURU1fTE9HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgdmFfbGlz
dCBjb3B5T2ZBcmdzOwogICAgIHZhX2NvcHkoY29weU9mQXJncywgYXJncyk7CiAgICAgYXNsX3Zs
b2coMCwgMCwgQVNMX0xFVkVMX05PVElDRSwgZm9ybWF0LCBjb3B5T2ZBcmdzKTsKICAgICB2YV9l
bmQoY29weU9mQXJncyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAjZW5kaWYKIAogICAgIC8vIEZhbGwgdGhyb3Vn
aCB0byB3cml0ZSB0byBzdGRlcnIgaW4gdGhlIHNhbWUgbWFubmVyIGFzIG90aGVyIHBsYXRmb3Jt
cy4KQEAgLTE0MSwxMCArMTM0LDcgQEAgc3RhdGljIHZvaWQgdnByaW50Zl9zdGRlcnJfY29tbW9u
KGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmdzKQogICAgIHZmcHJpbnRmKHN0ZGVyciwg
Zm9ybWF0LCBhcmdzKTsKIH0KIAotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEg
R0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zv
cm1hdC1ub25saXRlcmFsIgotI2VuZGlmCitBTExPV19OT05MSVRFUkFMX0ZPUk1BVF9CRUdJTgog
CiBzdGF0aWMgdm9pZCB2cHJpbnRmX3N0ZGVycl93aXRoX3ByZWZpeChjb25zdCBjaGFyKiBwcmVm
aXgsIGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmdzKQogewpAQCAtMTc0LDkgKzE2NCw3
IEBAIHN0YXRpYyB2b2lkIHZwcmludGZfc3RkZXJyX3dpdGhfdHJhaWxpbmdfbmV3bGluZShjb25z
dCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QgYXJnCiAgICAgdnByaW50Zl9zdGRlcnJfY29tbW9uKGZv
cm1hdFdpdGhOZXdsaW5lLmRhdGEoKSwgYXJncyk7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0NfT1Jf
Q0xBTkcpCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitBTExPV19OT05MSVRF
UkFMX0ZPUk1BVF9FTkQKIAogV1RGX0FUVFJJQlVURV9QUklOVEYoMSwgMikKIHN0YXRpYyB2b2lk
IHByaW50Zl9zdGRlcnJfY29tbW9uKGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKQpAQCAtMzg1LDE0
ICszNzMsOSBAQCB2b2lkIFdURkxvZ1dpdGhMZXZlbChXVEZMb2dDaGFubmVsKiBjaGFubmVsLCBX
VEZMb2dMZXZlbCBsZXZlbCwgY29uc3QgY2hhciogZm9ybQogICAgIHZhX2xpc3QgYXJnczsKICAg
ICB2YV9zdGFydChhcmdzLCBmb3JtYXQpOwogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZm9ybWF0LW5vbmxpdGVyYWwiCi0jZW5kaWYKKyAgICBBTExPV19OT05MSVRFUkFMX0ZPUk1B
VF9CRUdJTgogICAgIFdURkxvZyhjaGFubmVsLCBmb3JtYXQsIGFyZ3MpOwotI2lmIENPTVBJTEVS
KENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgQUxMT1df
Tk9OTElURVJBTF9GT1JNQVRfRU5ECiAKICAgICB2YV9lbmQoYXJncyk7CiB9CkBAIC00MTUsMTQg
KzM5OCw5IEBAIHZvaWQgV1RGTG9nKFdURkxvZ0NoYW5uZWwqIGNoYW5uZWwsIGNvbnN0IGNoYXIq
IGZvcm1hdCwgLi4uKQogICAgIHZhX2xpc3QgYXJnczsKICAgICB2YV9zdGFydChhcmdzLCBmb3Jt
YXQpOwogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LW5vbmxpdGVyYWwi
Ci0jZW5kaWYKKyAgICBBTExPV19OT05MSVRFUkFMX0ZPUk1BVF9CRUdJTgogICAgIFN0cmluZyBs
b2dnaW5nU3RyaW5nID0gU3RyaW5nOjpmb3JtYXQoZm9ybWF0LCBhcmdzKTsKLSNpZiBDT01QSUxF
UihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIEFMTE9X
X05PTkxJVEVSQUxfRk9STUFUX0VORAogCiAgICAgdmFfZW5kKGFyZ3MpOwogCkBAIC00NDIsMTQg
KzQyMCw5IEBAIHZvaWQgV1RGTG9nVmVyYm9zZShjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwg
Y29uc3QgY2hhciogZnVuY3Rpb24sIFdURkxvZ0NoYW5uCiAgICAgdmFfbGlzdCBhcmdzOwogICAg
IHZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFU
X0JFR0lOCiAgICAgV1RGTG9nKGNoYW5uZWwsIGZvcm1hdCwgYXJncyk7Ci0jaWYgQ09NUElMRVIo
Q0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBBTExPV19O
T05MSVRFUkFMX0ZPUk1BVF9FTkQKIAogICAgIHZhX2VuZChhcmdzKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oIGIvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5o
CmluZGV4IDViMjhmODZmYTkzMWQ4Y2ExYWMxODM4NTg1ZjJmMGYyZDM1ZjU5ZjYuLmY1NjdhMjIx
NmZlNGM2Nzc2ZTkyNjBhMmU5NWUwZGRkNjRkNDE0YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0Fzc2VydGlvbnMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmgKQEAgLTYw
MiwxNSArNjAyLDE0IEBAIGlubGluZSB2b2lkIGNvbXBpbGVyRmVuY2VGb3JDcmFzaCgpCiAjaWYg
Q09NUElMRVIoQ0xBTkcpCiAvLyBUaGlzIHdvdWxkIGJlIGEgbWFjcm8gZXhjZXB0IHRoYXQgaXRz
IHVzZSBvZiAjcHJhZ21hIHdvcmtzIGJlc3QgYXJvdW5kCiAvLyBhIGZ1bmN0aW9uLiBIZW5jZSBp
dCB1c2VzIG1hY3JvIG5hbWluZyBjb252ZW50aW9uLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV21pc3Npbmctbm9yZXR1
cm4iCitJR05PUkVfQ0xBTkdfV0FSTklOR1NfQkVHSU4oIm1pc3Npbmctbm9yZXR1cm4iKQogc3Rh
dGljIGlubGluZSB2b2lkIFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpCiB7CiAgICAgLy8gVGhp
cyAqTVVTVCogYmUgYSByZWxlYXNlIGFzc2VydC4gV2UgdXNlIGl0IGluIHBsYWNlcyB3aGVyZSBp
dCdzIGJldHRlciB0byBjcmFzaCB0aGFuIHRvIGtlZXAKICAgICAvLyBnb2luZy4KICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogI2Vsc2UKICNkZWZpbmUgVU5SRUFDSEFCTEVf
Rk9SX1BMQVRGT1JNKCkgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Db21waWxlci5oIGIvU291cmNlL1dURi93dGYvQ29tcGls
ZXIuaAppbmRleCA3OThjMzA5MGM5YjFjMTg1ODBhM2E2YmU2ZmFiNjViZGFjZTZmZmFhLi43MWU2
YjhlNmEwOGU1Mzc1NGUxNDhhOGU4MzkwNzk2ZDFjOWFhYzBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9Db21waWxlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmgKQEAgLTM4
NSw0ICszODUsODMgQEAKICNkZWZpbmUgX19oYXNfaW5jbHVkZShwYXRoKSAwCiAjZW5kaWYKIAor
LyogSUdOT1JFX1dBUk5JTkdTLiogKi8KKworLy8gQ2FuJ3QgdXNlIFdURl9DT05DQVQoKSBhbmQg
U1RSSU5HSVpFKCkgYmVjYXVzZSB0aGV5IGFyZSBkZWZpbmVkIGluCisvLyBTdGRMaWJFeHRyYXMu
aCB3aGljaCBpbmNsdWRlcyB1cworI2RlZmluZSBfQ09NUElMRVJfQ09OQ0FUX0koYSwgYikgYSAj
IyBiCisjZGVmaW5lIF9DT01QSUxFUl9DT05DQVQoYSwgYikgX0NPTVBJTEVSX0NPTkNBVF9JKGEs
IGIpCisKKyNkZWZpbmUgX0NPTVBJTEVSX1NUUklOR0laRShleHApICNleHAKKworI2RlZmluZSBf
Q09NUElMRVJfV0FSTklOR19OQU1FKHdhcm5pbmcpICItVyIgd2FybmluZworCisjaWYgQ09NUElM
RVIoR0NDX09SX0NMQU5HKQorI2RlZmluZSBJR05PUkVfV0FSTklOR1NfQkVHSU5fQ09ORChjb25k
LCBjb21waWxlciwgd2FybmluZykgXAorICAgIF9QcmFnbWEoX0NPTVBJTEVSX1NUUklOR0laRShj
b21waWxlciBkaWFnbm9zdGljIHB1c2gpKSBcCisgICAgX0NPTVBJTEVSX0NPTkNBVChJR05PUkVf
V0FSTklOR1NfQkVHSU5fSU1QTF8sIGNvbmQpKGNvbXBpbGVyLCB3YXJuaW5nKQorCisjZGVmaW5l
IElHTk9SRV9XQVJOSU5HU19CRUdJTl9JTVBMXzEoY29tcGlsZXIsIHdhcm5pbmcpIFwKKyAgICBf
UHJhZ21hKF9DT01QSUxFUl9TVFJJTkdJWkUoY29tcGlsZXIgZGlhZ25vc3RpYyBpZ25vcmVkIHdh
cm5pbmcpKQorI2RlZmluZSBJR05PUkVfV0FSTklOR1NfQkVHSU5fSU1QTF8wKGNvbXBpbGVyLCB3
YXJuaW5nKQorI2RlZmluZSBJR05PUkVfV0FSTklOR1NfQkVHSU5fSU1QTF8oY29tcGlsZXIsIHdh
cm5pbmcpCisKKworI2RlZmluZSBJR05PUkVfV0FSTklOR1NfRU5EX0lNUEwoY29tcGlsZXIpIF9Q
cmFnbWEoX0NPTVBJTEVSX1NUUklOR0laRShjb21waWxlciBkaWFnbm9zdGljIHBvcCkpCisKKyNp
ZiBkZWZpbmVkKF9faGFzX3dhcm5pbmcpCisjZGVmaW5lIF9JR05PUkVfV0FSTklOR1NfQkVHSU5f
SU1QTChjb21waWxlciwgd2FybmluZykgXAorICAgIElHTk9SRV9XQVJOSU5HU19CRUdJTl9DT05E
KF9faGFzX3dhcm5pbmcod2FybmluZyksIGNvbXBpbGVyLCB3YXJuaW5nKQorI2Vsc2UKKyNkZWZp
bmUgX0lHTk9SRV9XQVJOSU5HU19CRUdJTl9JTVBMKGNvbXBpbGVyLCB3YXJuaW5nKSBJR05PUkVf
V0FSTklOR1NfQkVHSU5fQ09ORCgxLCBjb21waWxlciwgd2FybmluZykKKyNlbmRpZgorCisjZGVm
aW5lIElHTk9SRV9XQVJOSU5HU19CRUdJTl9JTVBMKGNvbXBpbGVyLCB3YXJuaW5nKSBcCisgICAg
X0lHTk9SRV9XQVJOSU5HU19CRUdJTl9JTVBMKGNvbXBpbGVyLCBfQ09NUElMRVJfV0FSTklOR19O
QU1FKHdhcm5pbmcpKQorCisjZW5kaWYgLy8gQ09NUElMRVIoR0NDX09SX0NMQU5HKQorCisKKyNp
ZiBDT01QSUxFUihHQ0MpCisjZGVmaW5lIElHTk9SRV9HQ0NfV0FSTklOR1NfQkVHSU4od2Fybmlu
ZykgSUdOT1JFX1dBUk5JTkdTX0JFR0lOX0lNUEwoR0NDLCB3YXJuaW5nKQorI2RlZmluZSBJR05P
UkVfR0NDX1dBUk5JTkdTX0VORCBJR05PUkVfV0FSTklOR1NfRU5EX0lNUEwoR0NDKQorI2Vsc2UK
KyNkZWZpbmUgSUdOT1JFX0dDQ19XQVJOSU5HU19CRUdJTih3YXJuaW5nKQorI2RlZmluZSBJR05P
UkVfR0NDX1dBUk5JTkdTX0VORAorI2VuZGlmCisKKyNpZiBDT01QSUxFUihDTEFORykKKyNkZWZp
bmUgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0JFR0lOKHdhcm5pbmcpIElHTk9SRV9XQVJOSU5HU19C
RUdJTl9JTVBMKGNsYW5nLCB3YXJuaW5nKQorI2RlZmluZSBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5EIElHTk9SRV9XQVJOSU5HU19FTkRfSU1QTChjbGFuZykKKyNlbHNlCisjZGVmaW5lIElHTk9S
RV9DTEFOR19XQVJOSU5HU19CRUdJTih3YXJuaW5nKQorI2RlZmluZSBJR05PUkVfQ0xBTkdfV0FS
TklOR1NfRU5ECisjZW5kaWYKKworI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKKyNkZWZpbmUg
SUdOT1JFX1dBUk5JTkdTX0JFR0lOKHdhcm5pbmcpIElHTk9SRV9XQVJOSU5HU19CRUdJTl9JTVBM
KEdDQywgd2FybmluZykKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdTX0VORCBJR05PUkVfV0FSTklO
R1NfRU5EX0lNUEwoR0NDKQorI2Vsc2UKKyNkZWZpbmUgSUdOT1JFX1dBUk5JTkdTX0JFR0lOKHdh
cm5pbmcpCisjZGVmaW5lIElHTk9SRV9XQVJOSU5HU19FTkQKKyNlbmRpZgorCisjZGVmaW5lIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOIElHTk9SRV9XQVJOSU5HU19CRUdJTigi
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiKQorI2RlZmluZSBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQgSUdOT1JFX1dBUk5JTkdTX0VORAorCisjZGVmaW5lIEFMTE9XX05FV19BUElf
V0lUSE9VVF9HVUFSRFNfQkVHSU4gSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0JFR0lOKCJ1bmd1YXJk
ZWQtYXZhaWxhYmlsaXR5LW5ldyIpCisjZGVmaW5lIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFS
RFNfRU5EIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKKworI2RlZmluZSBBTExPV19VTlVTRURf
UEFSQU1FVEVSU19CRUdJTiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInVudXNlZC1wYXJhbWV0ZXIi
KQorI2RlZmluZSBBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQgSUdOT1JFX1dBUk5JTkdTX0VO
RAorCisjZGVmaW5lIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lOIElHTk9SRV9XQVJOSU5H
U19CRUdJTigiZm9ybWF0LW5vbmxpdGVyYWwiKQorI2RlZmluZSBBTExPV19OT05MSVRFUkFMX0ZP
Uk1BVF9FTkQgSUdOT1JFX1dBUk5JTkdTX0VORAorCisjZGVmaW5lIElHTk9SRV9SRVRVUk5fVFlQ
RV9XQVJOSU5HU19CRUdJTiBJR05PUkVfV0FSTklOR1NfQkVHSU4oInJldHVybi10eXBlIikKKyNk
ZWZpbmUgSUdOT1JFX1JFVFVSTl9UWVBFX1dBUk5JTkdTX0VORCBJR05PUkVfV0FSTklOR1NfRU5E
CisKKyNkZWZpbmUgSUdOT1JFX05VTExfQ0hFQ0tfV0FSTklOR1NfQkVHSU4gSUdOT1JFX1dBUk5J
TkdTX0JFR0lOKCJub25udWxsIikKKyNkZWZpbmUgSUdOT1JFX05VTExfQ0hFQ0tfV0FSTklOR1Nf
RU5EIElHTk9SRV9XQVJOSU5HU19FTkQKKwogI2VuZGlmIC8qIFdURl9Db21waWxlcl9oICovCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NRDUuY3BwIGIvU291cmNlL1dURi93dGYvTUQ1LmNw
cAppbmRleCBlNDliYTFiZWI1YzgwZjdjZWM0MzNmZDgzMjcyMmMwOTI1MjczMDkwLi5lMjcwYjc0
MWFjNThiMDNjZDg5NjI4OGM5NzgwMDFiYmQwOTcxYWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9NRDUuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01ENS5jcHAKQEAgLTU5LDI2ICs1OSwy
MyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogTUQ1OjpNRDUoKQogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgQ0NfTUQ1X0luaXQoJm1fY29udGV4dCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHZvaWQgTUQ1
OjphZGRCeXRlcyhjb25zdCB1aW50OF90KiBpbnB1dCwgc2l6ZV90IGxlbmd0aCkKIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgIENDX01ENV9VcGRhdGUoJm1fY29udGV4dCwgaW5wdXQsIGxlbmd0
aCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiB9CiAKIHZvaWQgTUQ1OjpjaGVja3N1bShEaWdlc3QmIGhhc2gpCiB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDQ19NRDVfRmluYWwoaGFzaC5kYXRhKCksICZtX2Nv
bnRleHQpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogfQogICAgIAogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1ByaW50U3RyZWFtLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmNwcApp
bmRleCAzODBjNjdiY2JiOTBlMzY2ZDg2MTgwODc4MDczMjQ1ZTYxM2U0YjRmLi5kM2VlZGZjOTY3
ZjNlYWU2NjZhZTMwNTQ4OTg3MTBlMmJlYTdjZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9QcmludFN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uY3BwCkBA
IC00NiwyMiArNDYsMTQgQEAgdm9pZCBQcmludFN0cmVhbTo6cHJpbnRmKGNvbnN0IGNoYXIqIGZv
cm1hdCwgLi4uKQogCiB2b2lkIFByaW50U3RyZWFtOjpwcmludGZWYXJpYWJsZUZvcm1hdChjb25z
dCBjaGFyKiBmb3JtYXQsIC4uLikKIHsKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdm
b3JtYXQtbm9ubGl0ZXJhbCIKLSNlbGlmIENPTVBJTEVSKEdDQykKLSNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3N1Z2dlc3QtYXR0
cmlidXRlPWZvcm1hdCIKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFUX0JFR0lO
CisgICAgSUdOT1JFX0dDQ19XQVJOSU5HU19CRUdJTigic3VnZ2VzdC1hdHRyaWJ1dGU9Zm9ybWF0
IikKICAgICB2YV9saXN0IGFyZ0xpc3Q7CiAgICAgdmFfc3RhcnQoYXJnTGlzdCwgZm9ybWF0KTsK
ICAgICB2cHJpbnRmKGZvcm1hdCwgYXJnTGlzdCk7CiAgICAgdmFfZW5kKGFyZ0xpc3QpOwotI2lm
IENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VsaWYgQ09N
UElMRVIoR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIElHTk9S
RV9HQ0NfV0FSTklOR1NfRU5ECisgICAgQUxMT1dfTk9OTElURVJBTF9GT1JNQVRfRU5ECiB9CiAK
IHZvaWQgUHJpbnRTdHJlYW06OmZsdXNoKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1NI
QTEuY3BwIGIvU291cmNlL1dURi93dGYvU0hBMS5jcHAKaW5kZXggMzA1ZjA3NzU4OWQ5YmEzZTY1
MGZiM2U3NWNjZmVhZDZlMmQ1MmFmZi4uNjdiYmNjMmRkODU1MjE5MjUxMTc5MTRjNDQxMTNiZjUy
YjVjZDJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU0hBMS5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvU0hBMS5jcHAKQEAgLTQxLDI2ICs0MSwyMyBAQCBuYW1lc3BhY2UgV1RGIHsKIAog
U0hBMTo6U0hBMSgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDQ19TSEExX0luaXQoJm1f
Y29udGV4dCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHZvaWQgU0hBMTo6YWRkQnl0ZXMoY29uc3QgdWlu
dDhfdCogaW5wdXQsIHNpemVfdCBsZW5ndGgpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBD
Q19TSEExX1VwZGF0ZSgmbV9jb250ZXh0LCBpbnB1dCwgbGVuZ3RoKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0K
IAogdm9pZCBTSEExOjpjb21wdXRlSGFzaChEaWdlc3QmIGhhc2gpCiB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICBDQ19TSEExX0ZpbmFsKGhhc2guZGF0YSgpLCAmbV9jb250ZXh0KTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIH0KIAogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0
aHJlYWRzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAppbmRleCBk
ZDAxYzZjNzZlZTY5ODU5YzRjY2Q4YjExYzZjOWE4Y2QxYzA0OTYyLi4xMDUwYzNiNGNmYWY1NmIz
ZDlhY2VlNGRkNDJmYjMyOTMwNDI5MTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJl
YWRpbmdQdGhyZWFkcy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMu
Y3BwCkBAIC0xMDksMTUgKzEwOSw4IEBAIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8U2VtYXBo
b3JlPiBnbG9iYWxTZW1hcGhvcmVGb3JTdXNwZW5kUmVzdW1lOwogc3RhdGljIGNvbnN0ZXhwciBj
b25zdCBpbnQgU2lnVGhyZWFkU3VzcGVuZFJlc3VtZSA9IFNJR1VTUjE7CiBzdGF0aWMgc3RkOjph
dG9taWM8VGhyZWFkKj4gdGFyZ2V0VGhyZWFkIHsgbnVsbHB0ciB9OwogCi0jaWYgQ09NUElMRVIo
R0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XcmV0dXJuLWxvY2FsLWFkZHIiCi0jZW5kaWYgLy8gQ09NUElMRVIoR0NDKQot
Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcmV0dXJuLXN0YWNrLWFkZHJlc3MiCi0j
ZW5kaWYgLy8gQ09NUElMRVIoQ0xBTkcpCitJR05PUkVfR0NDX1dBUk5JTkdTX0JFR0lOKCJyZXR1
cm4tbG9jYWwtYWRkciIpCitJR05PUkVfQ0xBTkdfV0FSTklOR1NfQkVHSU4oInJldHVybi1zdGFj
ay1hZGRyZXNzIikKIAogc3RhdGljIE5FVkVSX0lOTElORSB2b2lkKiBnZXRBcHByb3hpbWF0ZVN0
YWNrUG9pbnRlcigpCiB7CkBAIC0xMjYsMTMgKzExOSw4IEBAIHN0YXRpYyBORVZFUl9JTkxJTkUg
dm9pZCogZ2V0QXBwcm94aW1hdGVTdGFja1BvaW50ZXIoKQogICAgIHJldHVybiBiaXR3aXNlX2Nh
c3Q8dm9pZCo+KHN0YWNrTG9jYXRpb24pOwogfQogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAvLyBDT01QSUxFUihHQ0MpCi0KLSNpZiBDT01Q
SUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZiAvLyBDT01Q
SUxFUihDTEFORykKK0lHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKK0lHTk9SRV9HQ0NfV0FSTklO
R1NfRU5ECiAKIHZvaWQgVGhyZWFkOjpzaWduYWxIYW5kbGVyU3VzcGVuZFJlc3VtZShpbnQsIHNp
Z2luZm9fdCosIHZvaWQqIHVjb250ZXh0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
VmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAppbmRleCA4NTE4NGI5NDA3YzY5Mzc3
NjBhMTBjNjViMWFlNTcyMjdhOGY3ZmZmLi5jYzhhMjQ4ZGI2NjcyMDIyZjJmODI5ZDk2NDQ0NWE2
ZWJlZjE1NDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9WZWN0b3IuaApAQCAtNTI5LDE0ICs1MjksOSBAQCBwdWJsaWM6CiAgICAgewog
ICAgICAgICBBU1NFUlQoYnVmZmVyKCkpOwogCi0jaWYgQ09NUElMRVIoR0NDKQotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XaW52
YWxpZC1vZmZzZXRvZiIKLSNlbmRpZgorICAgICAgICBJR05PUkVfR0NDX1dBUk5JTkdTX0JFR0lO
KCJpbnZhbGlkLW9mZnNldG9mIikKICAgICAgICAgc3RhdGljX2Fzc2VydCgob2Zmc2V0b2YoVmVj
dG9yQnVmZmVyLCBtX2lubGluZUJ1ZmZlcikgKyBzaXplb2YobV9pbmxpbmVCdWZmZXIpKSAlIDgg
PT0gMCwgIklubGluZSBidWZmZXIgZW5kIG5lZWRzIHRvIGJlIG9uIDggYnl0ZSBib3VuZGFyeSBm
b3IgQVNhbiBhbm5vdGF0aW9ucyB0byB3b3JrLiIpOwotI2lmIENPTVBJTEVSKEdDQykKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICAgICAgSUdOT1JFX0dDQ19XQVJOSU5H
U19FTkQKIAogICAgICAgICBpZiAoYnVmZmVyKCkgPT0gaW5saW5lQnVmZmVyKCkpCiAgICAgICAg
ICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9pbmxpbmVCdWZmZXIpICsgc2l6
ZW9mKG1faW5saW5lQnVmZmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RG
U3RyaW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAppbmRleCAyYjBl
NWYzOWNkNDNjNmRmNDFhMGMxOGJjNGJiZDM4NGYxOTUxM2Q2Li5hODc1MjlmYzZiM2I4MmYyMzhh
ZTc1MGZmOWMyOTNkNjQ4YjJjM2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dU
RlN0cmluZy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCkBAIC00
NTMsMTAgKzQ1Myw3IEBAIFdURl9BVFRSSUJVVEVfUFJJTlRGKDEsIDApIHN0YXRpYyBTdHJpbmcg
Y3JlYXRlV2l0aEZvcm1hdEFuZEFyZ3VtZW50cyhjb25zdCBjaGFyCiAgICAgdmFfbGlzdCBhcmdz
Q29weTsKICAgICB2YV9jb3B5KGFyZ3NDb3B5LCBhcmdzKTsKIAotI2lmIENPTVBJTEVSKENMQU5H
KQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotI2VuZGlmCisgICAgQUxMT1dfTk9OTElU
RVJBTF9GT1JNQVRfQkVHSU4KIAogI2lmIFVTRShDRikgJiYgIU9TKFdJTkRPV1MpCiAgICAgaWYg
KHN0cnN0cihmb3JtYXQsICIlQCIpKSB7CkBAIC00OTIsOSArNDg5LDcgQEAgV1RGX0FUVFJJQlVU
RV9QUklOVEYoMSwgMCkgc3RhdGljIFN0cmluZyBjcmVhdGVXaXRoRm9ybWF0QW5kQXJndW1lbnRz
KGNvbnN0IGNoYXIKICAgICB2c25wcmludGYoYnVmZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUoKSwg
Zm9ybWF0LCBhcmdzQ29weSk7CiAgICAgdmFfZW5kKGFyZ3NDb3B5KTsKIAotI2lmIENPTVBJTEVS
KENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgQUxMT1df
Tk9OTElURVJBTF9GT1JNQVRfRU5ECiAKICAgICByZXR1cm4gU3RyaW5nSW1wbDo6Y3JlYXRlKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihidWZmZXIuZGF0YSgpKSwgbGVuKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKaW5kZXggMmFh
MTE4MGRhZWZjNzhmMDY2ZmI3MTRmNzZlOTU2NjQwYjhjMTk2MS4uMDA1NTJiZjY2NmI4ZGQ3OTJl
Nzg1ODk3ZDc5ZDIwYWU3ZDc0M2QwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
RGF0YUNoYW5uZWxIYW5kbGVyLmgKQEAgLTI5LDEyICsyOSwxMSBAQAogI2luY2x1ZGUgIkxpYldl
YlJUQ01hY3Jvcy5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIgogCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAi
LVd1bnVzZWQtcGFyYW1ldGVyIgorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfQkVHSU4KIAogI2lu
Y2x1ZGUgPHdlYnJ0Yy9hcGkvZGF0YWNoYW5uZWxpbnRlcmZhY2UuaD4KIAotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwb3AKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAogCiBuYW1lc3BhY2Ug
d2VicnRjIHsKIHN0cnVjdCBEYXRhQ2hhbm5lbEluaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENNZWRpYUVuZHBvaW50LmgKaW5kZXggM2ZkNTA5NjkwOTJhZWVlMDIzMDgwMjZiNjM3NTY1OTI2
MmRiNDJkYi4uNTgwNmE4MzA1ODJkNTBkYTdiYzYxYTY0NDFkODBlNWM2NTQyMmVmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDTWVkaWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaApAQCAtMzIsMTUgKzMyLDE0IEBA
CiAjaW5jbHVkZSAiUlRDUnRwUmVjZWl2ZXIuaCIKICNpbmNsdWRlIDxUaW1lci5oPgogCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAi
LVd1bnVzZWQtcGFyYW1ldGVyIgorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfQkVHSU4KIAogI2lu
Y2x1ZGUgPHdlYnJ0Yy9hcGkvanNlcC5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvcGVlcmNvbm5l
Y3Rpb25pbnRlcmZhY2UuaD4KICNpbmNsdWRlIDx3ZWJydGMvcGMvcGVlcmNvbm5lY3Rpb25mYWN0
b3J5Lmg+CiAjaW5jbHVkZSA8d2VicnRjL3BjL3J0Y3N0YXRzY29sbGVjdG9yLmg+CiAKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgcG9wCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKIAogI2lu
Y2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNv
dW50ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ09ic2VydmVycy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDT2JzZXJ2ZXJzLmgKaW5kZXggNTI2YTExODA4
ZmEwMTYxYjBhMTFiMDJlN2RjNTdmNmJiNzFhYzJmZC4uZDE5OWNhN2U0N2QyNDJkYzIyY2I1ZGU2
MjA5MDI5YmJkODY2ZDNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDT2JzZXJ2ZXJzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDT2JzZXJ2ZXJzLmgKQEAg
LTI4LDEyICsyOCwxMSBAQAogCiAjaW5jbHVkZSAiTGliV2ViUlRDTWFjcm9zLmgiCiAKLSNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3VudXNlZC1wYXJhbWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgogCiAjaW5j
bHVkZSA8d2VicnRjL2FwaS9wZWVyY29ubmVjdGlvbmludGVyZmFjZS5oPgogCi0jcHJhZ21hIEdD
QyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBSZWNlaXZlckJh
Y2tlbmQuaAppbmRleCA3YWNlMmU0MmRhNjMxZWU5NzEyZDhhZDhlY2I2OWQ4NGI2Y2VhMmIxLi5m
MTU3MzM2YTk2YWRkMWI0ZDQ4N2VmMDZhOTFlY2FiZmZiNGI2MWVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBSZWNl
aXZlckJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENSdHBSZWNlaXZlckJhY2tlbmQuaApAQCAtMjksMTMgKzI5LDEyIEBA
CiAjaW5jbHVkZSAiTGliV2ViUlRDTWFjcm9zLmgiCiAjaW5jbHVkZSAiUlRDUnRwUmVjZWl2ZXJC
YWNrZW5kLmgiCiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlh
Z25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1F
VEVSU19CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRjL2FwaS9ydHByZWNlaXZlcmludGVyZmFjZS5o
PgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS9zY29wZWRfcmVmX3B0ci5oPgogCi0jcHJhZ21h
IEdDQyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyQmFj
a2VuZC5oCmluZGV4IGM3MzQ0MDQzYTM2NWIyNDJiODIxMDE1YmVhNzRiMWMzMmI4MWYwYTQuLjBi
MDkzN2Y0YTI4N2Y5Yzg3MDg1ZGUzYzA2MGE5Zjg2MGQxYmI3MWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFNlbmRl
ckJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kLmgKQEAgLTMzLDEzICszMywxMiBAQAogI2lu
Y2x1ZGUgIlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9XZWFr
UHRyLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVS
U19CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRjL2FwaS9ydHBzZW5kZXJpbnRlcmZhY2UuaD4KICNp
bmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2Uvc2NvcGVkX3JlZl9wdHIuaD4KIAotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwb3AKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNjZWl2
ZXJCYWNrZW5kLmgKaW5kZXggYzQ3ZmYyMDE5Y2MyYTYyYmZmOTc4MzVjMTFkYWVmYzAxZGNjNTNk
Yi4uM2E2MzI2ZWRjNDQ3MDlmMDkxNjgwNjQxMjFlZmY4MGE4Y2ZiNjk3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRw
VHJhbnNjZWl2ZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmgKQEAgLTMwLDEz
ICszMCwxMiBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQuaCIKICNpbmNs
dWRlICJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuaCIKIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRl
ciIKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAKICNpbmNsdWRlIDx3ZWJydGMvYXBp
L3J0cHRyYW5zY2VpdmVyaW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL3Nj
b3BlZF9yZWZfcHRyLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCitBTExPV19VTlVT
RURfUEFSQU1FVEVSU19FTkQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENTdGF0
c0NvbGxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDU3RhdHNDb2xsZWN0b3IuaAppbmRleCBjNjQ2MTdmOTY5NTAwODI2ZTkwNWI3
M2ZjY2Y4Yjc1MjlkNTZiNWUzLi44YjJhODY0ZmNmZTBkMTk4ZDU5MDBlODU0Mzg1MmMyYjk5MTNm
NGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENTdGF0c0NvbGxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1N0YXRzQ29sbGVjdG9yLmgKQEAgLTMw
LDEyICszMCwxMSBAQAogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIKK0FMTE9XX1VOVVNF
RF9QQVJBTUVURVJTX0JFR0lOCiAKICNpbmNsdWRlIDx3ZWJydGMvcGMvcnRjc3RhdHNjb2xsZWN0
b3IuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX1VOVVNFRF9QQVJBTUVU
RVJTX0VORAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1V0aWxzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1V0aWxz
LmNwcAppbmRleCA4YTU3MDZkYTNkY2U3ZDljNTM0OTAxNzdiODU1NjMyNzk4YTQxMTRiLi4xNzEz
YjYzODA3NmMwZGQxODBhYmFkZThjYjNjOGZhMzUwOTNkZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENVdGlscy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDVXRpbHMuY3BwCkBAIC0zMiwxMyArMzIsMTIgQEAKICNpbmNsdWRlICJSVENSdHBQYXJhbWV0
ZXJzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1w
YXJhbWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgogCiAjaW5jbHVkZSA8d2Vi
cnRjL2FwaS9ydHBwYXJhbWV0ZXJzLmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS9ydHB0cmFuc2Nl
aXZlcmludGVyZmFjZS5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5V
U0VEX1BBUkFNRVRFUlNfRU5ECiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jcnlwdG8vY29tbW9uY3J5cHRvL0NyeXB0b0RpZ2VzdENv
bW1vbkNyeXB0by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NyeXB0by9jb21tb25jcnlw
dG8vQ3J5cHRvRGlnZXN0Q29tbW9uQ3J5cHRvLmNwcAppbmRleCBiNDdmOGVlYzY4ODM3YzcyN2Q1
ZjhmY2M5NzE2ZGNiZDNjYWM2NTNlLi4xY2U1Nzk3ZmVmNjI5NzNlZWRiNDczNDg5YzIxNDk3Yzdi
YmZiNDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NyeXB0by9jb21tb25j
cnlwdG8vQ3J5cHRvRGlnZXN0Q29tbW9uQ3J5cHRvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NyeXB0by9jb21tb25jcnlwdG8vQ3J5cHRvRGlnZXN0Q29tbW9uQ3J5cHRvLmNwcApA
QCAtOTcsMTAgKzk3LDkgQEAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0RpZ2VzdD4gQ3J5cHRvRGln
ZXN0OjpjcmVhdGUoQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG0gYWxnb3IKICAgICBjYXNlIENyeXB0
b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMTogewogICAgICAgICBDQ19TSEExX0NUWCogY29udGV4
dCA9IG5ldyBDQ19TSEExX0NUWDsKICAgICAgICAgZGlnZXN0LT5tX2NvbnRleHQtPmNjQ29udGV4
dCA9IGNvbnRleHQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIENDX1NIQTFfSW5p
dChjb250ZXh0KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIHJldHVybiBkaWdlc3Q7CiAgICAg
fQogICAgIGNhc2UgQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8yMjQ6IHsKQEAgLTEzNCwx
MCArMTMzLDkgQEAgdm9pZCBDcnlwdG9EaWdlc3Q6OmFkZEJ5dGVzKGNvbnN0IHZvaWQqIGlucHV0
LCBzaXplX3QgbGVuZ3RoKQogewogICAgIHN3aXRjaCAobV9jb250ZXh0LT5hbGdvcml0aG0pIHsK
ICAgICBjYXNlIENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMToKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICAgICAgQ0NfU0hBMV9VcGRhdGUodG9TSEExQ29udGV4dChtX2NvbnRleHQu
Z2V0KCkpLCBpbnB1dCwgbGVuZ3RoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIHJldHVybjsK
ICAgICBjYXNlIENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMjI0OgogICAgICAgICBDQ19T
SEEyMjRfVXBkYXRlKHRvU0hBMjI0Q29udGV4dChtX2NvbnRleHQuZ2V0KCkpLCBpbnB1dCwgbGVu
Z3RoKTsKQEAgLTE2MCwxMCArMTU4LDkgQEAgVmVjdG9yPHVpbnQ4X3Q+IENyeXB0b0RpZ2VzdDo6
Y29tcHV0ZUhhc2goKQogICAgIHN3aXRjaCAobV9jb250ZXh0LT5hbGdvcml0aG0pIHsKICAgICBj
YXNlIENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMToKICAgICAgICAgcmVzdWx0LnJlc2l6
ZShDQ19TSEExX0RJR0VTVF9MRU5HVEgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAg
ICBDQ19TSEExX0ZpbmFsKHJlc3VsdC5kYXRhKCksIHRvU0hBMUNvbnRleHQobV9jb250ZXh0Lmdl
dCgpKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBicmVhazsKICAgICBjYXNlIENyeXB0b0Rp
Z2VzdDo6QWxnb3JpdGhtOjpTSEFfMjI0OgogICAgICAgICByZXN1bHQucmVzaXplKENDX1NIQTIy
NF9ESUdFU1RfTEVOR1RIKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NvY29hL0FWS2l0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVktp
dFNQSS5oCmluZGV4IDkxNDUxN2VmZTdjYjE0YjVmYWYyYzViMWI2N2YyMzY2YzYyYzY5OTUuLjU5
NzNjMDlmYWJkYTJmOThmNTJjM2NmOTNlOGQxOTZhOTMxZmFlMWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWS2l0U1BJLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY29jb2EvQVZLaXRTUEkuaApAQCAtMzgsMTAgKzM4LDkgQEAKICNlbmRp
ZgogCiAjaW1wb3J0IDxBVktpdC9BVlBsYXllckNvbnRyb2xsZXIuaD4KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdvYmpj
LXByb3BlcnR5LW5vLWF0dHJpYnV0ZSIKK0lHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigib2Jq
Yy1wcm9wZXJ0eS1uby1hdHRyaWJ1dGUiKQogI2ltcG9ydCA8QVZLaXQvQVZQbGF5ZXJMYXllclZp
ZXcuaD4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0lHTk9SRV9DTEFOR19XQVJOSU5H
U19FTkQKICNpbXBvcnQgPEFWS2l0L0FWUGxheWVyVmlld0NvbnRyb2xsZXJfUHJpdmF0ZS5oPgog
I2ltcG9ydCA8QVZLaXQvQVZQbGF5ZXJWaWV3Q29udHJvbGxlcl9XZWJLaXRPbmx5Lmg+CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZl
clNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVy
U1BJLmgKaW5kZXggNTVhNjQ4ODZhODgwZjViOTBlYTJkYTZjZjUxYWJhNGJhNjdjNDI1ZC4uMDcw
NmVmZTg1YTZjZWViMTI0NGQxZTg5N2ZhMzg0YTcxZmRjZWNlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVyU1BJLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVyU1BJLmgKQEAgLTg2
LDEwICs4Niw5IEBAIGlubGluZSBOU0RhdGEgKl9OdWxsYWJsZSBpbnNlY3VyZWx5QXJjaGl2ZWRE
YXRhV2l0aFJvb3RPYmplY3QoaWQgX05vbm51bGwgb2JqZWN0CiAKIGlubGluZSBpZCBfTnVsbGFi
bGUgaW5zZWN1cmVseVVuYXJjaGl2ZU9iamVjdEZyb21EYXRhKE5TRGF0YSAqIF9Ob25udWxsIGRh
dGEpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICByZXR1cm4gW05TS2V5ZWRVbmFyY2hpdmVy
IHVuYXJjaGl2ZU9iamVjdFdpdGhEYXRhOmRhdGFdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiBpbmxpbmUg
aWQgX051bGxhYmxlIHVuYXJjaGl2ZWRPYmplY3RPZkNsYXNzZXNGcm9tRGF0YShOU1NldDxDbGFz
cz4gKiBfTm9ubnVsbCBjbGFzc2VzLCBOU0RhdGEgKiBfTm9ubnVsbCBkYXRhKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL01lZGlhUGxheWVyU1BJLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvTWVkaWFQbGF5ZXJTUEkuaAppbmRleCBkZDg3Zjkz
YWY3MDI1YmNhNmQxMzM0NTdiM2Y2YjEyMDZhMDE0NGY4Li44MTdkMDlhMjg3MzQ4MWNjNzFjMjdl
MzljYzM2ZGJhZDk5OTIxYjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9pb3MvTWVkaWFQbGF5ZXJTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9p
b3MvTWVkaWFQbGF5ZXJTUEkuaApAQCAtNzUsMjEgKzc1LDE5IEBAIGVudW0gewogfTsKIHR5cGVk
ZWYgTlNVSW50ZWdlciBNUEFWSXRlbVR5cGU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiBAaW50ZXJmYWNl
IE1QQXVkaW9WaWRlb1JvdXRpbmdQb3BvdmVyQ29udHJvbGxlciA6IFVJUG9wb3ZlckNvbnRyb2xs
ZXIKIEBlbmQKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogCiBAaW50ZXJmYWNlIE1QQXVkaW9WaWRlb1JvdXRpbmdQb3BvdmVy
Q29udHJvbGxlciAoKQogLSAoaWQpaW5pdFdpdGhUeXBlOihNUEFWSXRlbVR5cGUpYXZJdGVtVHlw
ZTsKIEBlbmQKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIEBpbnRlcmZhY2UgTVBBVlJvdXRpbmdTaGVldCA6
IFVJVmlldwogQGVuZAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIEBpbnRlcmZhY2UgTVBBVlJvdXRpbmdTaGVldCAoKQog
QHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbiwgc2V0dGVyPXNldEFWSXRlbVR5cGU6KSBNUEFW
SXRlbVR5cGUgYXZJdGVtVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3lzdGVtL21hYy9Qb3B1cE1lbnUubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9t
YWMvUG9wdXBNZW51Lm1tCmluZGV4IDIyMzM1NzVkYzM0ZTc2MWU4NjFjYmI0NTI4N2I3MzNmMmNk
NGFjMjMuLjliYmQ0NjE5YTNlNjZhNjliM2FhYjlkZmFhZTdhN2U1Y2NkZmNmNTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL21hYy9Qb3B1cE1lbnUubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1BvcHVwTWVudS5tbQpAQCAtNDQsMTAg
KzQ0LDkgQEAgbmFtZXNwYWNlIFBBTCB7CiB2b2lkIHBvcFVwTWVudShOU01lbnUgKm1lbnUsIE5T
UG9pbnQgbG9jYXRpb24sIGZsb2F0IHdpZHRoLCBOU1ZpZXcgKnZpZXcsIGludCBzZWxlY3RlZEl0
ZW0sIE5TRm9udCAqZm9udCwgTlNDb250cm9sU2l6ZSBjb250cm9sU2l6ZSwgYm9vbCB1c2VzQ3Vz
dG9tQXBwZWFyYW5jZSkKIHsKICAgICBOU1JlY3QgYWRqdXN0ZWRQb3B1cEJvdW5kcyA9IFt2aWV3
LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOlt2aWV3IGNvbnZlcnRSZWN0OnZpZXcuYm91bmRz
IHRvVmlldzpuaWxdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChjb250cm9sU2l6ZSAh
PSBOU01pbmlDb250cm9sU2l6ZSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgYWRqdXN0ZWRQ
b3B1cEJvdW5kcy5vcmlnaW4ueCAtPSAzOwogICAgICAgICBhZGp1c3RlZFBvcHVwQm91bmRzLm9y
aWdpbi55IC09IDE7CiAgICAgICAgIGFkanVzdGVkUG9wdXBCb3VuZHMuc2l6ZS53aWR0aCArPSA2
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1dlYlBhbmVs
Lm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1dlYlBhbmVsLm1tCmluZGV4
IDMxN2JkYTAyZTdiN2ViMjdhOWJkMmI1OTc5NTZmNTQxMmRhY2YxMjYuLmM2ZTQ2MGNmMGVmNjUx
OWI2MTEwNTllMzE1MzI2MzRlMzVkN2VlYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3lzdGVtL21hYy9XZWJQYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3N5c3RlbS9tYWMvV2ViUGFuZWwubW0KQEAgLTM0LDEwICszNCw5IEBACiAKIC0gKGluc3RhbmNl
dHlwZSlpbml0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBzdGF0aWMgTlNVSW50ZWdlciBz
dHlsZU1hc2sgPSBOU01pbmlhdHVyaXphYmxlV2luZG93TWFzayB8IE5TQ2xvc2FibGVXaW5kb3dN
YXNrIHwgTlNSZXNpemFibGVXaW5kb3dNYXNrICB8IE5TVGl0bGVkV2luZG93TWFzayB8IE5TU21h
bGxXaW5kb3dNYXNrIHwgTlNTaWRlVXRpbGl0eVdpbmRvd01hc2sgfCBOU1V0aWxpdHlXaW5kb3dN
YXNrOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgIAogICAgIHJldHVybiBbc3VwZXIgaW5pdFdpdGhDb250ZW50
UmVjdDpOU1plcm9SZWN0IHN0eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9y
ZUJ1ZmZlcmVkIGRlZmVyOllFU107CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCAzOTkxNzdmMzUzZTJmODA5ZDJk
ZmM3OGFiNjY1NDhhYWI5MjkzNTk0Li5kNDc2ZTBhZTczNGNjMTU3Y2RiYzhmYWQ1ODNiZGM4YTFm
YWZhZTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW0KQEAgLTM0NiwxMCArMzQ2LDkgQEAgdm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5v
dGlmaWMKICAgICAKICAgICAvLyBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uIHdpbGwg
Y2FsbCB0aGlzIG1ldGhvZCwgKGJ1dCBub3Qgd2hlbiBydW5uaW5nIERSVCksIHNvIEFTU0VSVCBo
ZXJlIHRvIG1ha2Ugc3VyZSBpdCBkb2VzIG5vdCBjcmFzaC4KICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY2NjIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IEFTU0VSVChbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eUlzSWdub3JlZF0gfHwgdHJ1ZSk7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAKICAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqLT53
cmFwcGVyKCksIG1hY05vdGlmaWNhdGlvbiwgbmlsKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCmlu
ZGV4IGNjZTk3MmNmY2QwMmU1NzU0ZWNjZWNjNTc4ZmE0YjQwYTk5NjhjMjYuLjhkODE3MjFiMGIz
YzNkMWMyZTRmNWFlN2I5NTA1ODhlODk3NDIyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQpAQCAt
NTUsMTAgKzU1LDkgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpvdmVycmlkZUF0dGFjaG1l
bnRQYXJlbnQoQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50KQogICAgICAgICBwYXJlbnRXcmFw
cGVyID0gcGFyZW50LT53cmFwcGVyKCk7CiAgICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICBbW3dyYXBwZXIoKSBhdHRhY2htZW50Vmlld10gYWNjZXNzaWJpbGl0eVNldE92ZXJyaWRlVmFs
dWU6cGFyZW50V3JhcHBlciBmb3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5UGFyZW50QXR0cmli
dXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKIH0KICAgICAKIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNj
ZXNzaWJpbGl0eUlnbm9yZUF0dGFjaG1lbnQoKSBjb25zdApAQCAtNjksMTEgKzY4LDEwIEBAIGJv
b2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlnbm9yZUF0dGFjaG1lbnQoKSBj
b25zdAogICAgIGlmIChpc0F0dGFjaG1lbnQoKSAmJiAod2lkZ2V0ID0gd2lkZ2V0Rm9yQXR0YWNo
bWVudFZpZXcoKSkgJiYgd2lkZ2V0LT5pc0ZyYW1lVmlldygpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKFt3cmFwcGVyKCkgYXR0YWNobWVudFZp
ZXddKQogICAgICAgICByZXR1cm4gW1t3cmFwcGVyKCkgYXR0YWNobWVudFZpZXddIGFjY2Vzc2li
aWxpdHlJc0lnbm9yZWRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgLy8gQXR0YWNobWVudHMgYXJlIGln
bm9yZWQgYnkgZGVmYXVsdCAodW5sZXNzIHdlIGRldGVybWluZSB0aGF0IHdlIHNob3VsZCBleHBv
c2UgdGhlbSkuCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyTWFjLm1tCmluZGV4IDA0YzE4NmEwOGFjOGFmMjg2MDdjNDFiYTdlZGQwYTAxN2M5MmJmNjYu
LjY1MDNkNDA2Y2U4MzAyOWNjZmZlNWQzZjRjMTk0MDAxNmUzY2RiNjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0xNjc5LDEwICsxNjc5LDkgQEAgc3RhdGlj
IGlkIHRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zKEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlLCBjb25zdCBWaXNpYmwKICAgICBXaWRnZXQqIHdpZGdldCA9IG1fb2JqZWN0LT53aWRnZXQo
KTsKICAgICBpZiAoIXdpZGdldCkKICAgICAgICAgcmV0dXJuIG5pbDsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIHJldHVybiBbKHdpZGdldC0+cGxhdGZvcm1XaWRnZXQoKSkgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOiBOU0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZV07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiB9CiAKIC0gKGlkKXJlbW90ZUFjY2Vzc2liaWxpdHlQYXJlbnRPYmplY3QKQEAgLTE3
NTEsMTAgKzE3NTAsOSBAQCBzdGF0aWMgTlNNdXRhYmxlQXJyYXkgKmNvbnZlcnRTdHJpbmdzVG9O
U0FycmF5KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2ZWN0b3IpCiAgICAgaWYgKGZyYW1lVmlldyAm
JiBmcmFtZVZpZXctPnBsYXRmb3JtV2lkZ2V0KCkpIHsKICAgICAgICAgTlNQb2ludCBuc1BvaW50
ID0gKE5TUG9pbnQpcG9pbnQ7CiAgICAgICAgIE5TVmlldyogdmlldyA9IGZyYW1lVmlldy0+ZG9j
dW1lbnRWaWV3KCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIG5zUG9pbnQgPSBb
W3ZpZXcgd2luZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOlt2aWV3IGNvbnZlcnRQb2ludDpuc1Bv
aW50IHRvVmlldzpuaWxdXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIHJldHVybiBDR1BvaW50
TWFrZShuc1BvaW50LngsIG5zUG9pbnQueSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgCkBAIC0y
MDA2LDExICsyMDA0LDEwIEBAIHN0YXRpYyBOU1N0cmluZyAqcm9sZVZhbHVlVG9OU1N0cmluZyhB
Y2Nlc3NpYmlsaXR5Um9sZSB2YWx1ZSkKIAogLSAoTlNTdHJpbmcqKXJvbGUKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIGlmIChtX29iamVjdC0+aXNBdHRhY2htZW50KCkpCiAgICAgICAgIHJl
dHVybiBbW3NlbGYgYXR0YWNobWVudFZpZXddIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpO
U0FjY2Vzc2liaWxpdHlSb2xlQXR0cmlidXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBBY2Nlc3NpYmls
aXR5Um9sZSByb2xlID0gbV9vYmplY3QtPnJvbGVWYWx1ZSgpOwogCiAgICAgaWYgKHJvbGUgPT0g
QWNjZXNzaWJpbGl0eVJvbGU6OkxhYmVsICYmIGlzPEFjY2Vzc2liaWxpdHlMYWJlbD4oKm1fb2Jq
ZWN0KSAmJiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5TGFiZWw+KCptX29iamVjdCkuY29udGFpbnNP
bmx5U3RhdGljVGV4dCgpKQpAQCAtMjAzMCw4ICsyMDI3LDcgQEAgc3RhdGljIE5TU3RyaW5nICpy
b2xlVmFsdWVUb05TU3RyaW5nKEFjY2Vzc2liaWxpdHlSb2xlIHZhbHVlKQogICAgIHJldHVybiBO
U0FjY2Vzc2liaWxpdHlVbmtub3duUm9sZTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIC0gKE5TU3Ry
aW5nKilzdWJyb2xlCiB7CiAgICAgaWYgKG1fb2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSkKQEAg
LTIyNDEsMTkgKzIyMzcsMTggQEAgc3RhdGljIE5TU3RyaW5nICpyb2xlVmFsdWVUb05TU3RyaW5n
KEFjY2Vzc2liaWxpdHlSb2xlIHZhbHVlKQogICAgIAogICAgIHJldHVybiBuaWw7CiB9Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIAogLSAoTlNTdHJpbmcqKXJvbGVEZXNjcmlwdGlvbgogewogICAgIGlmICghbV9vYmplY3Qp
CiAgICAgICAgIHJldHVybiBuaWw7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIGF0dGFj
aG1lbnRzIGhhdmUgdGhlIEFYSW1hZ2Ugcm9sZSwgYnV0IGEgZGlmZmVyZW50IHN1YnJvbGUKICAg
ICBpZiAobV9vYmplY3QtPmlzQXR0YWNobWVudCgpKQogICAgICAgICByZXR1cm4gW1tzZWxmIGF0
dGFjaG1lbnRWaWV3XSBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5
Um9sZURlc2NyaXB0aW9uQXR0cmlidXRlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgb3ZlcnJpZGVSb2xlRGVzY3JpcHRpb24gPSBtX29iamVjdC0+cm9sZURlc2NyaXB0
aW9uKCk7CiAgICAgaWYgKCFvdmVycmlkZVJvbGVEZXNjcmlwdGlvbi5pc051bGwoKSAmJiAhb3Zl
cnJpZGVSb2xlRGVzY3JpcHRpb24uaXNFbXB0eSgpKQpAQCAtMzQ3Miw4ICszNDY3LDcgQEAgc3Rh
dGljIE5TU3RyaW5nICpyb2xlVmFsdWVUb05TU3RyaW5nKEFjY2Vzc2liaWxpdHlSb2xlIHZhbHVl
KQogICAgIHJldHVybiBwYXJhbUF0dHJzOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiAtICh2b2lk
KWFjY2Vzc2liaWxpdHlQZXJmb3JtUHJlc3NBY3Rpb24KIHsKQEAgLTM1MzEsNyArMzUyNSw3IEBA
IHN0YXRpYyBOU1N0cmluZyAqcm9sZVZhbHVlVG9OU1N0cmluZyhBY2Nlc3NpYmlsaXR5Um9sZSB2
YWx1ZSkKICAgICAgICAgbV9vYmplY3QtPmRlY3JlbWVudCgpOwogfQogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogLSAo
dm9pZClhY2Nlc3NpYmlsaXR5UGVyZm9ybVNob3dNZW51QWN0aW9uCiB7CkBAIC00MzQzLDggKzQz
MzcsNyBAQCBzdGF0aWMgdm9pZCBmb3JtYXRGb3JEZWJ1Z2dlcihjb25zdCBWaXNpYmxlUG9zaXRp
b25SYW5nZSYgcmFuZ2UsIGNoYXIqIGJ1ZmZlciwgdQogICAgIHJldHVybiBOU05vdEZvdW5kOwog
fQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogLSAoTlNVSW50ZWdlcilhY2Nlc3NpYmlsaXR5QXJyYXlBdHRy
aWJ1dGVDb3VudDooTlNTdHJpbmcgKilhdHRyaWJ1dGUKIHsKICAgICBpZiAoIVtzZWxmIHVwZGF0
ZU9iamVjdEJhY2tpbmdTdG9yZV0pCkBAIC00MzY1LDcgKzQzNTgsNyBAQCBzdGF0aWMgdm9pZCBm
b3JtYXRGb3JEZWJ1Z2dlcihjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYgcmFuZ2UsIGNoYXIq
IGJ1ZmZlciwgdQogICAgIAogICAgIHJldHVybiBbc3VwZXIgYWNjZXNzaWJpbGl0eUFycmF5QXR0
cmlidXRlQ291bnQ6YXR0cmlidXRlXTsKIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
K0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAtIChOU0FycmF5ICopYWNjZXNz
aWJpbGl0eUFycmF5QXR0cmlidXRlVmFsdWVzOihOU1N0cmluZyAqKWF0dHJpYnV0ZSBpbmRleDoo
TlNVSW50ZWdlcilpbmRleCBtYXhDb3VudDooTlNVSW50ZWdlciltYXhDb3VudAogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCmluZGV4IDAyYjg0Mjgz
ZWQzOWIxNDEyZGEwYzAxMzNhMDI3MzlhMGI2NDIzMzQuLjE4ZDAxM2NlZmYyODEyYmI5NTliYzk0
ZjVjYmNjMzE5MzQyNGU1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpj
L1dlYlNjcmlwdE9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJT
Y3JpcHRPYmplY3QubW0KQEAgLTcwMiwxMyArNzAyLDEyIEBAIHN0YXRpYyB2b2lkIGdldExpc3RG
cm9tTlNBcnJheShFeGVjU3RhdGUgKmV4ZWMsIE5TQXJyYXkgKmFycmF5LCBSb290T2JqZWN0KiBy
b290CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdvYmpjLW1pc3Npbmctc3VwZXIt
Y2FsbHMiCitJR05PUkVfQ0xBTkdfV0FSTklOR1NfQkVHSU4oIm9iamMtbWlzc2luZy1zdXBlci1j
YWxscyIpCiAtICh2b2lkKWRlYWxsb2MKIHsKICAgICByZXR1cm47CiB9Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCitJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKICsgKFdlYlVuZGVm
aW5lZCAqKXVuZGVmaW5lZAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29i
amMvb2JqY19jbGFzcy5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfY2xhc3Mu
bW0KaW5kZXggY2UxZWY2NTU3YTA3NjNhN2QzNDMwYTNiZjk4NmExOTg3ZjhjYjM1Ni4uZjkzMjI3
NTBkNDFiYWJjYzNjOGIzN2U2ZGU5ZmZjNjE4NjAxODUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL29iamMvb2JqY19jbGFzcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX2NsYXNzLm1tCkBAIC0xNjMsMTAgKzE2Myw5IEBAIEZpZWxkKiBPYmpjQ2xh
c3M6OmZpZWxkTmFtZWQoUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSW5zdGFuY2UqIGluc3Rh
bmNlKSBjb25zCiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBmaWVsZE5hbWUgPSBhZG9wdENG
KENGU3RyaW5nQ3JlYXRlV2l0aENTdHJpbmcoTlVMTCwganNOYW1lLmRhdGEoKSwga0NGU3RyaW5n
RW5jb2RpbmdBU0NJSSkpOwogICAgIGlkIHRhcmdldE9iamVjdCA9IChzdGF0aWNfY2FzdDxPYmpj
SW5zdGFuY2UqPihpbnN0YW5jZSkpLT5nZXRPYmplY3QoKTsKICNpZiBQTEFURk9STShJT1MpCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW5kZWNsYXJlZC1zZWxlY3RvciIKKyAgICBJR05PUkVfV0FSTklOR1NfQkVHSU4o
InVuZGVjbGFyZWQtc2VsZWN0b3IiKQogICAgIGlkIGF0dHJpYnV0ZXMgPSBbdGFyZ2V0T2JqZWN0
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYXR0cmlidXRlS2V5cyldID8gW3RhcmdldE9i
amVjdCBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKGF0dHJpYnV0ZUtleXMpXSA6IG5pbDsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBJR05PUkVfV0FSTklOR1NfRU5ECiAjZWxz
ZQogICAgIGlkIGF0dHJpYnV0ZXMgPSBbdGFyZ2V0T2JqZWN0IGF0dHJpYnV0ZUtleXNdOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0
aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9Db21tb25DcnlwdG9VdGlsaXRpZXMuY3Bw
CmluZGV4IGUwNDkyZWU2NzExMGY4OGM3MzE1MjE2ZDZjNjhiNjMzNDk2ZDc3YTAuLjcyZmNjMWRi
MjdhM2QxNzI2Y2JmYTY3NzYyMzc2OTcyMTFjMDNkZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9Db21tb25DcnlwdG9VdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9Db21tb25DcnlwdG9VdGlsaXRpZXMuY3BwCkBAIC01MiwxMCArNTIsOSBAQCBib29s
IGdldENvbW1vbkNyeXB0b0RpZ2VzdEFsZ29yaXRobShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IGhhc2hGdW5jdGlvbiwgQ0NEaQogewogICAgIHN3aXRjaCAoaGFzaEZ1bmN0aW9uKSB7CiAgICAg
Y2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMToKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAgICAgYWxnb3JpdGhtID0ga0NDRGlnZXN0U0hBMTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6U0hBXzIyNDoKICAgICAgICAgYWxnb3JpdGhtID0ga0NDRGlnZXN0U0hBMjI0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNTWFj
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTU1h
Yy5jcHAKaW5kZXggYjJiYzI0ODg4YzdlZTc1OGU5ZGI0MDIzOTdhOGZhNmU0ZjFkMWUwOC4uMTFm
NDY3MDEwNDVlOTAxMzlmNWRhMzI5N2E4ZDllOTAwNmZjNjViZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNTWFjLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwCkBA
IC00MCwxMCArNDAsOSBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBlbmNy
eXB0QUVTX0dDTShjb25zdCBWZWN0b3I8dWludDhfdD4mIGl2LCBjbwogICAgIFZlY3Rvcjx1aW50
OF90PiBjaXBoZXJUZXh0KHBsYWluVGV4dC5zaXplKCkpOyAvLyBQZXIgc2VjdGlvbiA1LjIuMS4y
OiBodHRwOi8vbnZscHVicy5uaXN0Lmdvdi9uaXN0cHVicy9MZWdhY3kvU1AvbmlzdHNwZWNpYWxw
dWJsaWNhdGlvbjgwMC0zOGQucGRmCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHRhZyhkZXNpcmVkVGFn
TGVuZ3RoSW5CeXRlcyk7CiAgICAgLy8gdGFnTGVuZ3RoIGlzIGFjdHVhbCBhbiBpbnB1dCA8cmRh
cjovL3Byb2JsZW0vMzA2NjAwNzQ+Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDQ0NyeXB0b3JT
dGF0dXMgc3RhdHVzID0gQ0NDcnlwdG9yR0NNKGtDQ0VuY3J5cHQsIGtDQ0FsZ29yaXRobUFFUywg
a2V5LmRhdGEoKSwga2V5LnNpemUoKSwgaXYuZGF0YSgpLCBpdi5zaXplKCksIGFkZGl0aW9uYWxE
YXRhLmRhdGEoKSwgYWRkaXRpb25hbERhdGEuc2l6ZSgpLCBwbGFpblRleHQuZGF0YSgpLCBwbGFp
blRleHQuc2l6ZSgpLCBjaXBoZXJUZXh0LmRhdGEoKSwgdGFnLmRhdGEoKSwgJmRlc2lyZWRUYWdM
ZW5ndGhJbkJ5dGVzKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsKIApAQCAtNTgsMTAgKzU3LDkgQEAgc3Rh
dGljIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gZGVjeXB0QUVTX0dDTShjb25zdCBWZWN0
b3I8dWludDhfdD4mIGl2LCBjb24KICAgICBWZWN0b3I8dWludDhfdD4gdGFnKGRlc2lyZWRUYWdM
ZW5ndGhJbkJ5dGVzKTsKICAgICBzaXplX3Qgb2Zmc2V0ID0gY2lwaGVyVGV4dC5zaXplKCkgLSBk
ZXNpcmVkVGFnTGVuZ3RoSW5CeXRlczsKICAgICAvLyB0YWdMZW5ndGggaXMgYWN0dWFsIGFuIGlu
cHV0IDxyZGFyOi8vcHJvYmxlbS8zMDY2MDA3ND4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEND
Q3J5cHRvclN0YXR1cyBzdGF0dXMgPSBDQ0NyeXB0b3JHQ00oa0NDRGVjcnlwdCwga0NDQWxnb3Jp
dGhtQUVTLCBrZXkuZGF0YSgpLCBrZXkuc2l6ZSgpLCBpdi5kYXRhKCksIGl2LnNpemUoKSwgYWRk
aXRpb25hbERhdGEuZGF0YSgpLCBhZGRpdGlvbmFsRGF0YS5zaXplKCksIGNpcGhlclRleHQuZGF0
YSgpLCBvZmZzZXQsIHBsYWluVGV4dC5kYXRhKCksIHRhZy5kYXRhKCksICZkZXNpcmVkVGFnTGVu
Z3RoSW5CeXRlcyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9tYWMvU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tCmluZGV4IGE1MTdm
OTIyZTA0OGQxNDE3N2M0ZjZmOGM0MzYyMzEzMDg4MTQ5NjkuLjRhZDdhYjA0MGYxYzdjYzlhY2Vl
NDI0N2VhYzhhNDgwZjNmZDc3MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9t
YWMvU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbQpAQCAtMjIwLDE1ICsyMjAsMTQg
QEAgYm9vbCB3cmFwU2VyaWFsaXplZENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mIG1h
c3RlcktleSwgY29uc3QgVmVjdG9yPHVpbnQKICAgICBzaXplX3QgdGFnTGVuZ3RoID0gMTY7CiAg
ICAgdWludDhfdCB0YWdbdGFnTGVuZ3RoXTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgc3Rh
dHVzID0gQ0NDcnlwdG9yR0NNKGtDQ0VuY3J5cHQsIGtDQ0FsZ29yaXRobUFFUzEyOCwga2VrLmRh
dGEoKSwga2VrLnNpemUoKSwKICAgICAgICAgbnVsbHB0ciwgMCwgLy8gaXYKICAgICAgICAgbnVs
bHB0ciwgMCwgLy8gYXV0aCBkYXRhCiAgICAgICAgIGtleS5kYXRhKCksIGtleS5zaXplKCksCiAg
ICAgICAgIGVuY3J5cHRlZEtleS5kYXRhKCksCiAgICAgICAgIHRhZywgJnRhZ0xlbmd0aCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAKICAgICBpZiAoc3RhdHVzICE9IGtDQ1N1Y2Nlc3MpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTI4OSwxNSArMjg4LDE0IEBAIGJvb2wgdW53cmFwU2VyaWFsaXplZENyeXB0
b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mIG1hc3RlcktleSwgY29uc3QgVmVjdG9yPHVpCiAg
ICAgdWludDhfdCBhY3R1YWxUYWdbdGFnTGVuZ3RoXTsKIAogICAgIGtleS5yZXNpemUoZW5jcnlw
dGVkS2V5LnNpemUoKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBzdGF0dXMgPSBDQ0NyeXB0
b3JHQ00oa0NDRGVjcnlwdCwga0NDQWxnb3JpdGhtQUVTMTI4LCBrZWsuZGF0YSgpLCBrZWsuc2l6
ZSgpLAogICAgICAgICBudWxscHRyLCAwLCAvLyBpdgogICAgICAgICBudWxscHRyLCAwLCAvLyBh
dXRoIGRhdGEKICAgICAgICAgZW5jcnlwdGVkS2V5LmRhdGEoKSwgZW5jcnlwdGVkS2V5LnNpemUo
KSwKICAgICAgICAga2V5LmRhdGEoKSwKICAgICAgICAgYWN0dWFsVGFnLCAmdGFnTGVuZ3RoKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKIAogICAgIGlmIChzdGF0dXMgIT0ga0NDU3VjY2VzcykKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBz
ZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvbWFrZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5weQpp
bmRleCBiMzRlNjE3YjE0NmQzMjlmYjFiYzMyYTBiYjcwYzdjYmJhNDk5OTFhLi4zMmRhNTkwZmEz
NmM1YjdhYjU0ZWM5M2Q0NWEwNDVhZWY2MjVjZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5w
eQorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21w
YXRpYmlsaXR5RWxlbWVudE1hcC5weQpAQCAtOTQsMTEgKzk0LDcgQEAgb3V0cHV0X2ZpbGUud3Jp
dGUoIiIiCiAKICNpbmNsdWRlICJDU1NQYXJzZXJTZWxlY3Rvci5oIgogCi0jaWYgZGVmaW5lZChf
X2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XaW1wbGljaXQtZmFsbHRocm91Z2giCi0jZW5kaWYKK0lHTk9SRV9X
QVJOSU5HU19CRUdJTigiaW1wbGljaXQtZmFsbHRocm91Z2giKQogCiAvLyBPbGRlciB2ZXJzaW9u
cyBvZiBncGVyZiBsaWtlIHRvIHVzZSB0aGUgYHJlZ2lzdGVyYCBrZXl3b3JkLgogI2RlZmluZSBy
ZWdpc3RlcgpAQCAtMjAzLDkgKzE5OSw3IEBAIFBzZXVkb0NsYXNzT3JDb21wYXRpYmlsaXR5UHNl
dWRvRWxlbWVudCBwYXJzZVBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRTCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2lmIGRlZmluZWQoX19jbGFuZ19fKQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCitJR05PUkVfV0FSTklOR1NfRU5ECiAKICIiIikK
IG91dHB1dF9maWxlLmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtl
U2VsZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5weSBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlU2Vs
ZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5weQppbmRleCAyMDE4MjZlZDUxMzg5NGQ0ZmY3ZjNhZjA1
MTNhZDcyMzg2OTJhZjg4Li5lOTkzZmRkMjIyMWNhYTI4NGRhNTJlYzA3MjJkYzRlZGQzNjJmMDU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvRWxlbWVu
dHNNYXAucHkKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0VsZW1l
bnRzTWFwLnB5CkBAIC05MiwxMSArOTIsNyBAQCBvdXRwdXRfZmlsZS53cml0ZSgiIiIKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTZWxlY3RvclBzZXVkb1R5cGVNYXAuaCIKIAotI2lm
IGRlZmluZWQoX19jbGFuZ19fKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIgotI2VuZGlm
CitJR05PUkVfV0FSTklOR1NfQkVHSU4oImltcGxpY2l0LWZhbGx0aHJvdWdoIikKIAogLy8gT2xk
ZXIgdmVyc2lvbnMgb2YgZ3BlcmYgbGlrZSB0byB1c2UgdGhlIGByZWdpc3RlcmAga2V5d29yZC4K
ICNkZWZpbmUgcmVnaXN0ZXIKQEAgLTE5OCw5ICsxOTQsNyBAQCBDU1NTZWxlY3Rvcjo6UHNldWRv
RWxlbWVudFR5cGUgcGFyc2VQc2V1ZG9FbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZ0ltcGwmIHBz
ZXVkbwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNpZiBkZWZpbmVkKF9fY2xhbmdfXykK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorSUdOT1JFX1dBUk5JTkdTX0VO
RAogCiAiIiIpCiBvdXRwdXRfZmlsZS5jbG9zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJ
dGVyYXRvci5jcHAKaW5kZXggYjI4ZDg0NmY2ODc2MjhjM2MwMzBmNDcyOWM2YWMyNTEwMjU1MjIy
Ny4uNTNhMGYyYTgxNTVjOWY2NWFiNTFkZmJmOWNiZDRmZjZiN2U4MDFiMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcApAQCAtMjAxMSwxMCArMjAxMSw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBjb250YWluc0thbmFMZXR0ZXJzKGNvbnN0IFN0cmluZyYgcGF0dGVybikK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSNlbmRpZgorQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KIC8vIE5PVEU6IElDVSdzIHVub3JtX25vcm1hbGl6ZSBmdW5jdGlvbiBp
cyBkZXByZWNhdGVkLgogCiBzdGF0aWMgdm9pZCBub3JtYWxpemVDaGFyYWN0ZXJzKGNvbnN0IFVD
aGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIFZlY3RvcjxVQ2hhcj4mIGJ1ZmZlcikK
QEAgLTIwMzgsOSArMjAzNSw3IEBAIHN0YXRpYyB2b2lkIG5vcm1hbGl6ZUNoYXJhY3RlcnMoY29u
c3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgVmVjdG9yCiAgICAgQVNTRVJU
KHN0YXR1cyA9PSBVX1NUUklOR19OT1RfVEVSTUlOQVRFRF9XQVJOSU5HKTsKIH0KIAotI2lmIENP
TVBJTEVSKEdDQ19PUl9DTEFORykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYK
K0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiBzdGF0aWMgYm9vbCBpc05vbkxh
dGluMVNlcGFyYXRvcihVQ2hhcjMyIGNoYXJhY3RlcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFjL0VkaXRvck1hYy5tbQppbmRleCAzZDdhMmY1NTlhNGQ0YmMxNjEwMDljMDczYTk5YzVlNjlh
YTA1YzBlLi40MTU4ZWM3OWM4Y2E3ODM1NDNiM2JlNzdjNDJjMWE0ZGY4MWJhNzY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCkBAIC04MSwxMSArODEsMTAgQEAgdm9p
ZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwgYm9v
bCBhbGxvd1BsYWluVGV4dCwgTWEKIHsKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gc2VsZWN0
ZWRSYW5nZSgpOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBGSVhNRTogSG93IGNhbiB0
aGlzIGhhcmQtY29kZWQgcGFzdGVib2FyZCBuYW1lIGJlIHJpZ2h0LCBnaXZlbiB0aGF0IHRoZSBw
YXNzZWQtaW4gcGFzdGVib2FyZCBoYXMgYSBuYW1lPwogICAgIGNsaWVudCgpLT5zZXRJbnNlcnRp
b25QYXN0ZWJvYXJkKE5TR2VuZXJhbFBib2FyZCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBib29sIGNo
b3NlUGxhaW5UZXh0OwogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IHdl
YkNvbnRlbnRGcm9tUGFzdGVib2FyZCgqcGFzdGVib2FyZCwgKnJhbmdlLCBhbGxvd1BsYWluVGV4
dCwgY2hvc2VQbGFpblRleHQpOwpAQCAtMTExLDExICsxMTAsMTAgQEAgdm9pZCBFZGl0b3I6OnRh
a2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbigpCiAKICAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsK
ICAgICB0eXBlcy5hcHBlbmQoU3RyaW5nKGxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRUeXBlKCkpKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJk
U3RyYXRlZ3koKS0+c2V0VHlwZXModHlwZXMsIE5TRmluZFBib2FyZCk7CiAgICAgcGxhdGZvcm1T
dHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zZXRTdHJpbmdGb3JUeXBlKG1fZnJh
bWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhzZWxlY3RlZFRleHRGb3JEYXRhVHJh
bnNmZXIoKSksIGxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRUeXBlKCksIE5TRmluZFBib2FyZCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiB9CiAKIHZvaWQgRWRpdG9yOjpyZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQo
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKQEAgLTE2OSwxMSArMTY3LDEwIEBAIHZvaWQg
RWRpdG9yOjpyZXBsYWNlTm9kZUZyb21QYXN0ZWJvYXJkKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIC8vIEZJWE1FOiBIb3cgY2FuIHRoaXMgaGFyZC1jb2RlZCBwYXN0ZWJvYXJk
IG5hbWUgYmUgcmlnaHQsIGdpdmVuIHRoYXQgdGhlIHBhc3NlZC1pbiBwYXN0ZWJvYXJkIGhhcyBh
IG5hbWU/CiAgICAgY2xpZW50KCktPnNldEluc2VydGlvblBhc3RlYm9hcmQoTlNHZW5lcmFsUGJv
YXJkKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIGJvb2wgY2hvc2VQbGFpblRleHQ7CiAgICAgaWYgKFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IHdlYkNvbnRlbnRGcm9tUGFzdGVib2Fy
ZChwYXN0ZWJvYXJkLCAqcmFuZ2UsIHRydWUsIGNob3NlUGxhaW5UZXh0KSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IGEyNjQzMGNmMjUyNGFkMjA0
ZDYxMzc5YTBlZDBiMDA5OTY1NmI5MWQuLjY1NDg4OGE4YmYwMjk4NDFlNmY1Y2UzNjBmMzExMjk3
ZDY4NjEwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0K
QEAgLTYxMiwxMCArNjEyLDkgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0
ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQpCiAgICAgICAgIC8vIG5v
IHVwLXRvLWRhdGUgY2FjaGUgb2YgdGhlbSBhbnl3aGVyZS4KICAgICAgICAgZmFrZUV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTW91c2VNb3ZlZAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246W1t2aWV3LT5wbGF0Zm9y
bVdpZGdldCgpIHdpbmRvd10KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9j
YXRpb25dXQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nRXZlbnQgbW9kaWZpZXJGbGFnc10KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOltpbml0aWF0aW5nRXZlbnQg
dGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dOdW1i
ZXI6W2luaXRpYXRpbmdFdmVudCB3aW5kb3dOdW1iZXJdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQppbmRleCA1MmRiOTllMGY5
ZTU3ZjNiYTM1OGRmODVmMDcxZGI3ODUyODRiYzBmLi45YzQ0Yjg2ZWVkN2I1YmZmMGZkNmViNjk2
NzUxMTZmZDlhYjU4YTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1Nl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KQEAgLTEzMiwxMCArMTMyLDkgQEAgdm9pZCBTZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OnBhaW50Q29udGVudHMoY29uc3QgR3Jh
cGhpY3NMYXllciosIEcKIAogICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBncmFwaGljc0Nv
bnRleHQucGxhdGZvcm1Db250ZXh0KCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENHTGF5
ZXJSZWYgaGlnaGxpZ2h0TGF5ZXIgPSBEREhpZ2hsaWdodEdldExheWVyV2l0aENvbnRleHQoZGRI
aWdobGlnaHQoKSwgY2dDb250ZXh0KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBDR1JlY3QgaGlnaGxpZ2h0
Qm91bmRpbmdSZWN0ID0gRERIaWdobGlnaHRHZXRCb3VuZGluZ1JlY3QoZGRIaWdobGlnaHQoKSk7
CiAgICAgaGlnaGxpZ2h0Qm91bmRpbmdSZWN0Lm9yaWdpbiA9IENHUG9pbnRaZXJvOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IGIwNTUwY2Y1
MzA1ZTg2MzVkYjRkNWE4MmU4OTY2ZjA4ZjAyYTc1MGIuLjQyYmExNDVmNjRjN2I5NzVjMmUxYzQ2
ZTJhMTUyYjY2NTMxNjU1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuY3BwCkBAIC01NCwxNCArNTQsOSBAQCBTdHJpbmcgZm9ybWF0TG9jYWxpemVkU3Ry
aW5nKFN0cmluZyBmb3JtYXQsIC4uLikKICAgICB2YV9saXN0IGFyZ3VtZW50czsKICAgICB2YV9z
dGFydChhcmd1bWVudHMsIGZvcm1hdCk7CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdmb3JtYXQtbm9ubGl0ZXJhbCIKLSNlbmRpZgorICAgIEFMTE9XX05PTkxJVEVSQUxfRk9STUFU
X0JFR0lOCiAgICAgYXV0byByZXN1bHQgPSBhZG9wdENGKENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1h
dEFuZEFyZ3VtZW50cygwLCAwLCBmb3JtYXQuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgYXJndW1l
bnRzKSk7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
Ci0jZW5kaWYKKyAgICBBTExPV19OT05MSVRFUkFMX0ZPUk1BVF9FTkQKIAogICAgIHZhX2VuZChh
cmd1bWVudHMpOwogICAgIHJldHVybiByZXN1bHQuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgKaW5kZXggNDFhNTBiMjEzZmRlMDhkMzdmZGJhYWNiYmM5
NmI2MWFjODczMTM1Yy4uMzk2NTVmNjE0N2JhZTJmZDIyZWQwY2NhODBmYTljNjFhYzdjZDg4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaApAQCAtMTk1LDEw
ICsxOTUsOSBAQCBzdGQ6Om9wdGlvbmFsPFNjcmVlbkRhdGE+IFNjcmVlbkRhdGE6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQogCiAgICAgICAgIGF1dG8gY29sb3JTcGFjZURhdGEgPSBhZG9wdENG
KENGRGF0YUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBpY2NEYXRhLT5kYXRhKCksIGljY0Rh
dGEtPnNpemUoKSkpOwogICAgICAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTg0
MzU4PiBXZSBzaG91bGQgc3dpdGNoIHRvIENHQ29sb3JTcGFjZUNyZWF0ZUlDQ0Jhc2VkLgotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBjZ0NvbG9yU3BhY2UgPSBhZG9wdENGKENHQ29s
b3JTcGFjZUNyZWF0ZVdpdGhJQ0NQcm9maWxlKGNvbG9yU3BhY2VEYXRhLmdldCgpKSk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogICAgICAgICBicmVhazsKICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRQcm92aWRlci5j
cHAKaW5kZXggYjZjZTY5NjIwNTEwN2JkMjJlOTRmYzQzNWQ4NzAxZTBmODNlZTYyZS4uNTc0Mzkx
YjVjMTExYTMyYmU5MTI1Y2E2Y2UwNjAwZjVkNjM4MjI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkUHJvdmlkZXIuY3Bw
CkBAIC0xMDMsMTAgKzEwMyw5IEBAIEhJREdhbWVwYWRQcm92aWRlcjo6SElER2FtZXBhZFByb3Zp
ZGVyKCkKIAogdm9pZCBISURHYW1lcGFkUHJvdmlkZXI6OnN0b3BNb25pdG9yaW5nSW5wdXQoKQog
ewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV25vbm51bGwiCisgICAgSUdOT1JFX05VTExfQ0hFQ0tfV0FSTklOR1NfQkVH
SU4KICAgICBJT0hJRE1hbmFnZXJSZWdpc3RlcklucHV0VmFsdWVDYWxsYmFjayhtX21hbmFnZXIu
Z2V0KCksIG51bGxwdHIsIG51bGxwdHIpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIElHTk9SRV9OVUxMX0NIRUNLX1dBUk5JTkdTX0VORAogfQogCiB2b2lkIEhJREdhbWVwYWRQ
cm92aWRlcjo6c3RhcnRNb25pdG9yaW5nSW5wdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKaW5kZXggNWYyOWFmODVhOTQ4
M2Q0NzYyZTk4N2IzMjA1YjgwZTE3YzNiYjE5Yy4uZGFkYjI1OTc4ZTc4YzJiYjVkZjAwMGNkMjdh
ZDUzN2UxZWNlYjVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUGxhdGZvcm1EaXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCkBAIC0xMTgsMTQgKzExOCw5IEBAIHN0ZDo6dW5pcXVl
X3B0cjxQbGF0Zm9ybURpc3BsYXk+IFBsYXRmb3JtRGlzcGxheTo6Y3JlYXRlUGxhdGZvcm1EaXNw
bGF5KCkKIFBsYXRmb3JtRGlzcGxheSYgUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkK
IHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Ci0jaWYgQ09NUElMRVIoQ0xB
TkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZXhpdC10aW1lLWRlc3RydWN0b3JzIgotI2VuZGlmCisgICAgSUdOT1JF
X0NMQU5HX1dBUk5JTkdTX0JFR0lOKCJleGl0LXRpbWUtZGVzdHJ1Y3RvcnMiKQogICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBkaXNwbGF5OwotI2lmIENPTVBJTEVS
KENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgICAgSUdOT1JF
X0NMQU5HX1dBUk5JTkdTX0VORAogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXXsKICAg
ICAgICAgZGlzcGxheSA9IGNyZWF0ZVBsYXRmb3JtRGlzcGxheSgpOwogICAgIH0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJl
VGV4dEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N1cnJv
Z2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAKaW5kZXggNGQ1ZDgwODhhOTJjZTk3ZTljZDQ4
MGJjNGM4ZWE1NjhiOGU2YTZiYS4uZTgyYmJmNmFhYzBiOWI5NTNmNzViZDI0MTI2OThhOWQwOWUx
Y2EyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9n
YXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwCkBAIC02OSwxMCAr
NjksNyBAQCBib29sIFN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvcjo6Y29uc3VtZVNsb3dD
YXNlKFVDaGFyMzImIGNoYXJhY3RlciwgdW5zaWduZQogICAgIHJldHVybiB0cnVlOwogfQogCi0j
aWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
Ci0jZW5kaWYKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAvLyBOT1RFOiBJ
Q1UncyB1bm9ybV9ub3JtYWxpemUgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZC4KIAogVUNoYXIzMiBT
dXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3I6Om5vcm1hbGl6ZVZvaWNpbmdNYXJrcygpCkBA
IC05NSw4ICs5Miw2IEBAIFVDaGFyMzIgU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yOjpu
b3JtYWxpemVWb2ljaW5nTWFya3MoKQogICAgIHJldHVybiAwOwogfQogCi0jaWYgQ09NUElMRVIo
R0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZG
T2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQppbmRleCBiMmMxZTk2NjM0YjNmNTY0ZmZjMGM1
YmQxNmIyOWVlNDJkODRmYTJjLi5mNzgyZDhiN2UwZmQ4OTdkMDJiYWE1YWQxZjc3MzMxYWJiOWZh
YmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpD
Lm1tCkBAIC0xMjMsMTAgKzEyMyw5IEBAIHZvaWQgTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6
OnVwZGF0ZU9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGNoYXJhY3RlcmlzCiAKICAgICAg
ICAgbV9vcHRpb25zLnJlbW92ZSgoX19icmlkZ2UgQ0ZUeXBlUmVmKXJlbW92ZWRBVk9wdGlvbik7
CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQVZNZWRpYVNlbGVjdGlvbk9wdGlvbiog
c2VsZWN0ZWRPcHRpb24gPSBbbV9wbGF5ZXJJdGVtIHNlbGVjdGVkTWVkaWFPcHRpb25Jbk1lZGlh
U2VsZWN0aW9uR3JvdXA6bV9tZWRpYVNlbGVjdGlvbkdyb3VwLmdldCgpXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICBmb3IgKEFWTWVkaWFTZWxlY3Rpb25PcHRpb24qIGFkZGVkQVZPcHRpb24gaW4gYWRkZWRB
Vk9wdGlvbnMuZ2V0KCkpIHsKICAgICAgICAgYXV0byBhZGRlZE9wdGlvbiA9IE1lZGlhU2VsZWN0
aW9uT3B0aW9uQVZGT2JqQzo6Y3JlYXRlKCp0aGlzLCBhZGRlZEFWT3B0aW9uKTsKICAgICAgICAg
aWYgKGFkZGVkQVZPcHRpb24gPT0gc2VsZWN0ZWRPcHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZT
dHJlYW1TZXNzaW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbi5tbQppbmRleCAyNmFiMDI0ZDhi
YzlmODJiZjdkNjU1NTkzNmRjNWViNWFhNGI1MDI4Li43YjIwMjgxMjEwNzJkYjU3MTE3ZWE2MTBl
MzNhYzM0NGYxMmUxMTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZTdHJlYW1TZXNzaW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNl
c3Npb25BVlN0cmVhbVNlc3Npb24ubW0KQEAgLTE5OCwxMiArMTk4LDExIEBAIGJvb2wgQ0RNU2Vz
c2lvbkFWU3RyZWFtU2Vzc2lvbjo6dXBkYXRlKFVpbnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVpbnQ4
QXJyYXk+JiBuZXh0CiAKICAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4gY2VydGlmaWNhdGVEYXRh
ID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczptX2NlcnRpZmljYXRlLT5k
YXRhKCkgbGVuZ3RoOm1fY2VydGlmaWNhdGUtPmxlbmd0aCgpXSk7CiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdvYmpj
LWxpdGVyYWwtY29udmVyc2lvbiIKKyAgICAgICAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0JFR0lO
KCJvYmpjLWxpdGVyYWwtY29udmVyc2lvbiIpCiAgICAgICAgIFN0cmluZyBzdG9yYWdlUGF0aCA9
IHRoaXMtPnN0b3JhZ2VQYXRoKCk7CiAgICAgICAgIGlmICghc3RvcmFnZVBhdGguaXNFbXB0eSgp
ICYmIFtnZXRBVlN0cmVhbVNlc3Npb25DbGFzcygpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IocmVtb3ZlUGVuZGluZ0V4cGlyZWRTZXNzaW9uUmVwb3J0czp3aXRoQXBwSWRlbnRpZmllcjpz
dG9yYWdlRGlyZWN0b3J5QXRVUkw6KV0pCiAgICAgICAgICAgICBbZ2V0QVZTdHJlYW1TZXNzaW9u
Q2xhc3MoKSByZW1vdmVQZW5kaW5nRXhwaXJlZFNlc3Npb25SZXBvcnRzOkBbbV9leHBpcmVkU2Vz
c2lvbi5nZXQoKV0gd2l0aEFwcElkZW50aWZpZXI6Y2VydGlmaWNhdGVEYXRhLmdldCgpIHN0b3Jh
Z2VEaXJlY3RvcnlBdFVSTDpbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOnN0b3JhZ2VQYXRoXV07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9DTEFOR19XQVJOSU5H
U19FTkQKICAgICAgICAgbV9leHBpcmVkU2Vzc2lvbiA9IG51bGxwdHI7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KQEAgLTI0MywxMCArMjQyLDkgQEAgYm9vbCBDRE1TZXNzaW9uQVZTdHJl
YW1TZXNzaW9uOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG5l
eHQKICAgICAgICAgfQogCiAgICAgICAgIE5TRXJyb3IqIGVycm9yID0gbmlsOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiByZXF1ZXN0ID0gW3Byb3Rl
Y3RlZFNvdXJjZUJ1ZmZlci0+cGFyc2VyKCkgc3RyZWFtaW5nQ29udGVudEtleVJlcXVlc3REYXRh
Rm9yQXBwOmNlcnRpZmljYXRlRGF0YS5nZXQoKSBjb250ZW50SWRlbnRpZmllcjppbml0RGF0YS5n
ZXQoKSB0cmFja0lEOnByb3RlY3RlZFNvdXJjZUJ1ZmZlci0+cHJvdGVjdGVkVHJhY2tJRCgpIG9w
dGlvbnM6b3B0aW9ucy5nZXQoKSBlcnJvcjomZXJyb3JdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAg
ICAgICBpZiAoIVtwcm90ZWN0ZWRTb3VyY2VCdWZmZXItPnBhcnNlcigpIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoY29udGVudFByb3RlY3Rpb25TZXNzaW9uSWRlbnRpZmllcildKQogICAg
ICAgICAgICAgbV9zZXNzaW9uSWQgPSBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCk7CkBAIC0y
NzMsMTAgKzI3MSw5IEBAIGJvb2wgQ0RNU2Vzc2lvbkFWU3RyZWFtU2Vzc2lvbjo6dXBkYXRlKFVp
bnQ4QXJyYXkqIGtleSwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0CiAgICAgZXJyb3JDb2RlID0g
TWVkaWFQbGF5ZXI6Ok5vRXJyb3I7CiAgICAgc3lzdGVtQ29kZSA9IDA7CiAgICAgUmV0YWluUHRy
PE5TRGF0YT4ga2V5RGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6
a2V5LT5kYXRhKCkgbGVuZ3RoOmtleS0+bGVuZ3RoKCldKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIFtwcm90ZWN0ZWRTb3VyY2VCdWZmZXItPnBhcnNlcigpIHByb2Nlc3NDb250ZW50S2V5UmVz
cG9uc2VEYXRhOmtleURhdGEuZ2V0KCkgZm9yVHJhY2tJRDpwcm90ZWN0ZWRTb3VyY2VCdWZmZXIt
PnByb3RlY3RlZFRyYWNrSUQoKV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFW
Rk9iakMuaAppbmRleCBkMzI2ZjJmYTJmYjJiMWM2MGVkOWUzYjkzODhhYTU0NTlkOWQ3NWUxLi4z
ODYxNmI0N2Y5Yjc1YjkxZWYzZDUxMzgyMDY5YzY0ZWMwNGE5NmE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9u
TWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC01
NCwxMSArNTQsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Q0Vycm9yQ2xpZW50CiAgICAgdm9pZCBsYXllckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllciAqLCBOU0Vycm9yICosIGJvb2wmIHNob3VsZElnbm9yZSkgb3ZlcnJpZGU7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9X
SVRIT1VUX0dVQVJEU19CRUdJTgogICAgIHZvaWQgcmVuZGVyZXJEaWRSZWNlaXZlRXJyb3IoQVZT
YW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICosIE5TRXJyb3IgKiwgYm9vbCYgc2hvdWxkSWdub3Jl
KSBvdmVycmlkZTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ORVdf
QVBJX1dJVEhPVVRfR1VBUkRTX0VORAogCiAgICAgdm9pZCBhZGRTb3VyY2VCdWZmZXIoU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMqKTsKICAgICB2b2lkIHJlbW92ZVNvdXJjZUJ1ZmZlcihTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQyopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggYWRj
MWQ2YTJjMjBlMWM3MjU5NWMzMzYwOTE5NjcyNDdiZWYwNDY2OS4uMGZiMTMwOGQ5YThhMTE3MDY5
NGQyYjMyMTY5NDZkNDQzMmFjMDZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yNjk5
LDEwICsyNjk5LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpz
ZXRDdXJyZW50VGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXYKIAogICAgIGlmICh0cmFjaykg
ewogICAgICAgICBpZiAodHJhY2stPnRleHRUcmFja0NhdGVnb3J5KCkgPT0gSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUFWRjo6TGVnYWN5Q2xvc2VkQ2FwdGlvbikKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgICAgICAgICBbbV9hdlBsYXllci5nZXQoKSBzZXRDbG9zZWRDYXB0aW9uRGlz
cGxheUVuYWJsZWQ6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogI2lmIEhBVkUoQVZGT1VOREFU
SU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCkKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQogICAg
ICAgICBlbHNlIGlmICh0cmFjay0+dGV4dFRyYWNrQ2F0ZWdvcnkoKSA9PSBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGOjpPdXRPZkJhbmQpCkBAIC0yNzE1LDEwICsyNzE0LDkgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRDdXJyZW50VGV4dFRyYWNrKEluYmFu
ZFRleHRUcmFja1ByaXYKICNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JP
VVApCiAgICAgICAgIFttX2F2UGxheWVySXRlbS5nZXQoKSBzZWxlY3RNZWRpYU9wdGlvbjowIGlu
TWVkaWFTZWxlY3Rpb25Hcm91cDpzYWZlTWVkaWFTZWxlY3Rpb25Hcm91cEZvckxlZ2libGVNZWRp
YSgpXTsKICNlbmRpZgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBbbV9hdlBsYXll
ci5nZXQoKSBzZXRDbG9zZWRDYXB0aW9uRGlzcGxheUVuYWJsZWQ6Tk9dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAgICB9CiAKIH0KQEAgLTI3MzQsMTAgKzI3MzIsOSBAQCBTdHJpbmcgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrKCkgY29u
c3QKICNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiAgICAgLy8g
SWYgQVZGb3VuZGF0aW9uIGhhcyBhbiBhdWRpYmxlIGdyb3VwLCByZXR1cm4gdGhlIGxhbmd1YWdl
IG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgYXVkaWJsZSBvcHRpb24uCiAgICAgQVZNZWRpYVNl
bGVjdGlvbkdyb3VwVHlwZSAqYXVkaWJsZUdyb3VwID0gW21fYXZBc3NldC5nZXQoKSBtZWRpYVNl
bGVjdGlvbkdyb3VwRm9yTWVkaWFDaGFyYWN0ZXJpc3RpYzpBVk1lZGlhQ2hhcmFjdGVyaXN0aWNB
dWRpYmxlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEFWTWVkaWFTZWxlY3Rpb25PcHRpb25U
eXBlICpjdXJyZW50bHlTZWxlY3RlZEF1ZGlibGVPcHRpb24gPSBbbV9hdlBsYXllckl0ZW0uZ2V0
KCkgc2VsZWN0ZWRNZWRpYU9wdGlvbkluTWVkaWFTZWxlY3Rpb25Hcm91cDphdWRpYmxlR3JvdXBd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgIGlmIChjdXJyZW50bHlTZWxlY3RlZEF1ZGlibGVPcHRpb24pIHsK
ICAgICAgICAgbV9sYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2sgPSBbW2N1cnJlbnRseVNlbGVj
dGVkQXVkaWJsZU9wdGlvbiBsb2NhbGVdIGxvY2FsZUlkZW50aWZpZXJdOwogICAgICAgICBJTkZP
X0xPRyhMT0dJREVOVElGSUVSLCAibGFuZ3VhZ2Ugb2Ygc2VsZWN0ZWQgYXVkaWJsZSBvcHRpb24g
IiwgbV9sYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2spOwpAQCAtMjgyOCwxMCArMjgyNSw5IEBA
IHN0YXRpYyBOU1N0cmluZyAqZXhlcm5hbERldmljZURpc3BsYXlOYW1lRm9yUGxheWVyKEFWUGxh
eWVyVHlwZSAqcGxheWVyKQogCiAgICAgICAgIGF1dG8gb3V0cHV0RGV2aWNlTmFtZXMgPSBhZG9w
dE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKICAgICAgICAgZm9yIChBVk91dHB1
dERldmljZSAqb3V0cHV0RGV2aWNlIGluIFtvdXRwdXRDb250ZXh0IG91dHB1dERldmljZXNdKSB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgYXV0byBvdXRwdXREZXZpY2VOYW1lID0gYWRv
cHROUyhbW291dHB1dERldmljZSBuYW1lXSBjb3B5XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgIFtv
dXRwdXREZXZpY2VOYW1lcyBhZGRPYmplY3Q6b3V0cHV0RGV2aWNlTmFtZS5nZXQoKV07CiAgICAg
ICAgIH0KIApAQCAtMzI1MSwxMCArMzI0Nyw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6Y2FuUGxheUZhc3RSZXZlcnNlRGlkQ2hhbmdlKGJvb2wgbmV3VmFsCiB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNob3VsZERpc2FibGVT
bGVlcChib29sIGZsYWcpCiB7CiAjaWYgUExBVEZPUk0oSU9TKSAmJiAhUExBVEZPUk0oSU9TX1NJ
TVVMQVRPUikgJiYgIVBMQVRGT1JNKElPU01BQykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtt
X2F2UGxheWVyIF9zZXRQcmV2ZW50c1NsZWVwRHVyaW5nVmlkZW9QbGF5YmFjazpmbGFnXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGZsYWcpOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5oCmluZGV4IDA0NDRkOWFmMDU3M2Y1YjcyN2E2MzU5ZGI1ZGU0NzFkYTgy
N2FlZTMuLjRjYjI5Y2M2NzIxZDA5MWQyMzY2YjIyYmZiODRlNGNkMDYzMTYwZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5oCkBAIC02OSwxMiArNjksMTAgQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNp
dGl2ZUhhc2g+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
c3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAgIEFMTE9XX05FV19BUElfV0lUSE9V
VF9HVUFSRFNfQkVHSU4KICAgICB2b2lkIGFkZEF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJB
dWRpb1JlbmRlcmVyKik7CiAgICAgdm9pZCByZW1vdmVBdWRpb1JlbmRlcmVyKEFWU2FtcGxlQnVm
ZmVyQXVkaW9SZW5kZXJlciopOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFM
TE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiAKICAgICBNZWRpYVBsYXllcjo6TmV0d29y
a1N0YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIE1lZGlhUGxheWVyOjpS
ZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKQEAgLTg3LDExICs4NSw5IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldExvYWRpbmdQcm9ncmVzc3NlZChib29sIGZsYWcpIHsgbV9s
b2FkaW5nUHJvZ3Jlc3NlZCA9IGZsYWc7IH0KICAgICB2b2lkIHNldEhhc0F2YWlsYWJsZVZpZGVv
RnJhbWUoYm9vbCk7CiAgICAgYm9vbCBoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVX
X0FQSV9XSVRIT1VUX0dVQVJEU19CRUdJTgogICAgIHZvaWQgc2V0SGFzQXZhaWxhYmxlQXVkaW9T
YW1wbGUoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKiwgYm9vbCk7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKICAg
ICBib29sIGFsbFJlbmRlcmVyc0hhdmVBdmFpbGFibGVTYW1wbGVzKCkgY29uc3QgeyByZXR1cm4g
bV9hbGxSZW5kZXJlcnNIYXZlQXZhaWxhYmxlU2FtcGxlczsgfQogICAgIHZvaWQgdXBkYXRlQWxs
UmVuZGVyZXJzSGF2ZUF2YWlsYWJsZVNhbXBsZXMoKTsKICAgICB2b2lkIGR1cmF0aW9uQ2hhbmdl
ZCgpOwpAQCAtMjY3LDEyICsyNjMsMTAgQEAgcHJpdmF0ZToKICAgICBzdHJ1Y3QgQXVkaW9SZW5k
ZXJlclByb3BlcnRpZXMgewogICAgICAgICBib29sIGhhc0F1ZGlibGVTYW1wbGUgeyBmYWxzZSB9
OwogICAgIH07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1df
TkVXX0FQSV9XSVRIT1VUX0dVQVJEU19CRUdJTgogICAgIEhhc2hNYXA8UmV0YWluUHRyPENGVHlw
ZVJlZj4sIEF1ZGlvUmVuZGVyZXJQcm9wZXJ0aWVzPiBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVy
ZXJNYXA7CiAgICAgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyPiBt
X3N5bmNocm9uaXplcjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19O
RVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VORAogICAgIFJldGFpblB0cjxpZD4gbV90aW1lSnVtcGVk
T2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPGlkPiBtX2R1cmF0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0
YWluUHRyPEFWU3RyZWFtU2Vzc2lvbj4gbV9zdHJlYW1TZXNzaW9uOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLm1tCmluZGV4IDk2OGZjNWEwODdmMzExZDg4YjIzOWU2NzY5NDg5NDkyMTNiNGNiYTYu
LmIwMmM2MjMyYzAxMmM2ZDcyZWMyNzY1NzNkN2I4YWU4ZTBlMzg1OTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0KQEAgLTYyLDE3ICs2MiwxMyBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX09Q
VElPTkFMKEFWRm91bmRhdGlvbikKIAogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRh
dGlvbiwgQVZBc3NldCkKIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFW
VVJMQXNzZXQpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitBTExPV19ORVdf
QVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3Vu
ZGF0aW9uLCBBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCitBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VORAogU09GVF9MSU5LX0NM
QVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitBTExPV19ORVdfQVBJX1dJVEhPVVRf
R1VBUkRTX0JFR0lOCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlNh
bXBsZUJ1ZmZlclJlbmRlclN5bmNocm9uaXplcikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKK0FMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiBTT0ZUX0xJTktfQ0xBU1NfT1BU
SU9OQUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbURhdGFQYXJzZXIpCiBTT0ZUX0xJTktfQ0xBU1Nf
T1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbVNlc3Npb24pOwogU09GVF9MSU5LX0NMQVNT
X09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZWaWRlb1BlcmZvcm1hbmNlTWV0cmljcykKQEAgLTc3
MywxMSArNzY5LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoYm9vbCBmbGFnKQogICAgIH0KIH0KIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJE
U19CRUdJTgogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEhh
c0F2YWlsYWJsZUF1ZGlvU2FtcGxlKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciogcmVuZGVy
ZXIsIGJvb2wgZmxhZykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19B
UElfV0lUSE9VVF9HVUFSRFNfRU5ECiB7CiAgICAgYXV0byBpdGVyID0gbV9zYW1wbGVCdWZmZXJB
dWRpb1JlbmRlcmVyTWFwLmZpbmQoKF9fYnJpZGdlIENGVHlwZVJlZilyZW5kZXJlcik7CiAgICAg
aWYgKGl0ZXIgPT0gbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyTWFwLmVuZCgpKQpAQCAtMTAx
NywxMSArMTAxMSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTCiAgICAgbV9wbGF5ZXItPm5l
dHdvcmtTdGF0ZUNoYW5nZWQoKTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHkt
bmV3IgorQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19CRUdJTgogdm9pZCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmFkZEF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZm
ZXJBdWRpb1JlbmRlcmVyKiBhdWRpb1JlbmRlcmVyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKIHsKICAgICBpZiAoIW1fc2Ft
cGxlQnVmZmVyQXVkaW9SZW5kZXJlck1hcC5hZGQoKF9fYnJpZGdlIENGVHlwZVJlZilhdWRpb1Jl
bmRlcmVyLCBBdWRpb1JlbmRlcmVyUHJvcGVydGllcygpKS5pc05ld0VudHJ5KQogICAgICAgICBy
ZXR1cm47CkBAIC0xMDM0LDExICsxMDI2LDkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OmFkZEF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1IKICAg
ICBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChtX3Bs
YXllcik7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKK0FMTE9XX05F
V19BUElfV0lUSE9VVF9HVUFSRFNfQkVHSU4KIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpyZW1vdmVBdWRpb1JlbmRlcmVyKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5k
ZXJlciogYXVkaW9SZW5kZXJlcikKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9X
X05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiB7CiAgICAgYXV0byBpdGVyID0gbV9zYW1wbGVC
dWZmZXJBdWRpb1JlbmRlcmVyTWFwLmZpbmQoKF9fYnJpZGdlIENGVHlwZVJlZilhdWRpb1JlbmRl
cmVyKTsKICAgICBpZiAoaXRlciA9PSBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJNYXAuZW5k
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakMuaAppbmRleCAwMTljZjM3YjZiYmRhYWM0YzRlYmZlYTNmOTg0YjJhYmQ5YmYxM2ExLi5l
MmQyYjU2Njg4MDUzYTFhNTc4ZDg5NmViYmJjZGVlZTJhMDc0NDJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKQEAgLTcwLDEx
ICs3MCw5IEBAIGNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDRXJyb3JDbGllbnQgewog
cHVibGljOgogICAgIHZpcnR1YWwgflNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDRXJyb3JDbGll
bnQoKSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCB2b2lkIGxheWVyRGlkUmVjZWl2ZUVycm9yKEFW
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyICosIE5TRXJyb3IgKiwgYm9vbCYgc2hvdWxkSWdub3Jl
KSA9IDA7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVX
X0FQSV9XSVRIT1VUX0dVQVJEU19CRUdJTgogICAgIHZpcnR1YWwgdm9pZCByZW5kZXJlckRpZFJl
Y2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKiwgTlNFcnJvciAqLCBib29s
JiBzaG91bGRJZ25vcmUpID0gMDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VORAogfTsKIAogY2xhc3MgU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMgZmluYWwgOiBwdWJsaWMgU291cmNlQnVmZmVyUHJpdmF0ZSB7CkBAIC0x
MTcsMTEgKzExNSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHVucmVnaXN0ZXJGb3JFcnJvck5vdGlm
aWNhdGlvbnMoU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakNFcnJvckNsaWVudCopOwogICAgIHZv
aWQgbGF5ZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgKiwgTlNF
cnJvciAqKTsKICAgICB2b2lkIG91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRlcm5h
bFByb3RlY3Rpb25DaGFuZ2VkKGJvb2wpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHkt
bmV3IgorICAgIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfQkVHSU4KICAgICB2b2lkIHJl
bmRlcmVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqLCBOU0Vy
cm9yICopOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX05FV19BUElf
V0lUSE9VVF9HVUFSRFNfRU5ECiAKICAgICB2b2lkIHNldFZpZGVvTGF5ZXIoQVZTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIqKTsKICAgICB2b2lkIHNldERlY29tcHJlc3Npb25TZXNzaW9uKFdlYkNv
cmVEZWNvbXByZXNzaW9uU2Vzc2lvbiopOwpAQCAtMTUyLDExICsxNDgsOSBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGVzdHJveVJlbmRlcmVycygpOwogCiAgICAgdm9pZCBmbHVzaFZpZGVvKCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9XSVRI
T1VUX0dVQVJEU19CRUdJTgogICAgIHZvaWQgZmx1c2goQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRl
cmVyICopOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX05FV19BUElf
V0lUSE9VVF9HVUFSRFNfRU5ECiAKICAgICBXZWFrUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKTsgfQogCkBAIC0xNzAsMTEgKzE2NCw5IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRy
PEFWU3RyZWFtRGF0YVBhcnNlcj4gbV9wYXJzZXI7CiAgICAgUmV0YWluUHRyPEFWQXNzZXQ+IG1f
YXNzZXQ7CiAgICAgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBtX2Rpc3Bs
YXlMYXllcjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyIKKyAgICBBTExPV19O
RVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiAgICAgSGFzaE1hcDxpbnQsIFJldGFpblB0cjxB
VlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+PiBtX2F1ZGlvUmVuZGVyZXJzOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5E
CiAgICAgUmV0YWluUHRyPFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyPiBtX2RlbGVnYXRl
OwogICAgIFJldGFpblB0cjxXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVuZXI+IG1fZXJyb3JM
aXN0ZW5lcjsKICAgICBSZXRhaW5QdHI8TlNFcnJvcj4gbV9oZGNwRXJyb3I7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4
IGRjOTM0NzhlZTM1YjMwOWZiZThmMWQyNWZlMzUxMjk2NWZlMDY2ZjUuLjRjZjI3NTNhZTIwZjM5
ZTk3YjljZDJhMDg3OWE3M2MzMmRhM2I2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC02OCwxMSArNjgsOSBAQCBT
T0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAogU09GVF9MSU5LX0NM
QVNTKEFWRm91bmRhdGlvbiwgQVZBc3NldFRyYWNrKQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRh
dGlvbiwgQVZTdHJlYW1EYXRhUGFyc2VyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHkt
bmV3IgorQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19CRUdJTgogU09GVF9MSU5LX0NMQVNT
KEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKQotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKIFNPRlRf
TElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKQogU09G
VF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZTdHJlYW1TZXNzaW9uKQogCkBAIC0yNDMsMjMg
KzI0MSwxOSBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllckZhaWxlZFRvRGVjb2RlTm90aWZpYwogQGludGVyZmFjZSBXZWJBVlNhbXBs
ZUJ1ZmZlckVycm9yTGlzdGVuZXIgOiBOU09iamVjdCB7CiAgICAgV2ViQ29yZTo6U291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMqIF9wYXJlbnQ7CiAgICAgVmVjdG9yPFJldGFpblB0cjxBVlNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllcj4+IF9sYXllcnM7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFz
IgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJp
bGl0eS1uZXciCisgICAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19CRUdJTgogICAgIFZl
Y3RvcjxSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyPj4gX3JlbmRlcmVyczsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ORVdfQVBJX1dJVEhPVVRf
R1VBUkRTX0VORAogfQogCiAtIChpZClpbml0V2l0aFBhcmVudDooV2ViQ29yZTo6U291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMqKXBhcmVudDsKIC0gKHZvaWQpaW52YWxpZGF0ZTsKIC0gKHZvaWQp
YmVnaW5PYnNlcnZpbmdMYXllcjooQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgKilsYXllcjsK
IC0gKHZvaWQpc3RvcE9ic2VydmluZ0xheWVyOihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciAq
KWxheWVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQ
SV9XSVRIT1VUX0dVQVJEU19CRUdJTgogLSAodm9pZCliZWdpbk9ic2VydmluZ1JlbmRlcmVyOihB
VlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKilyZW5kZXJlcjsKIC0gKHZvaWQpc3RvcE9ic2Vy
dmluZ1JlbmRlcmVyOihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKilyZW5kZXJlcjsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNf
RU5ECiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVu
ZXIKQEAgLTMyMiwxMiArMzE2LDEwIEBAIFNPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24s
IEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljCiAgICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5h
bWU6QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJGYWlsZWRUb0RlY29kZU5vdGlmaWNhdGlvbiBv
YmplY3Q6bGF5ZXJdOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1uZXciCitB
TExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiAtICh2b2lkKWJlZ2luT2JzZXJ2aW5n
UmVuZGVyZXI6KEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciopcmVuZGVyZXIKIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5E
CiAgICAgQVNTRVJUKF9wYXJlbnQpOwogICAgIEFTU0VSVCghX3JlbmRlcmVycy5jb250YWlucyhy
ZW5kZXJlcikpOwogCkBAIC0zMzUsMTEgKzMyNyw5IEBAIFNPRlRfTElOS19DT05TVEFOVChBVkZv
dW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyRmFpbGVkVG9EZWNvZGVOb3RpZmlj
CiAgICAgW3JlbmRlcmVyIGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImVycm9yIiBvcHRp
b25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDpudWxscHRyXTsKIH0KIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9XSVRIT1VU
X0dVQVJEU19CRUdJTgogLSAodm9pZClzdG9wT2JzZXJ2aW5nUmVuZGVyZXI6KEFWU2FtcGxlQnVm
ZmVyQXVkaW9SZW5kZXJlciopcmVuZGVyZXIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
K0FMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiB7CiAgICAgQVNTRVJUKF9wYXJlbnQp
OwogICAgIEFTU0VSVChfcmVuZGVyZXJzLmNvbnRhaW5zKHJlbmRlcmVyKSk7CkBAIC0zNzIsMTEg
KzM2Miw5IEBAIFNPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljCiAgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKIAogICAgIH0gZWxzZSBpZiAoW29iamVjdCBpc0tpbmRPZkNsYXNzOmdldEFW
U2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCldKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1w
cmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2
YWlsYWJpbGl0eS1uZXciCisgICAgICAgIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfQkVH
SU4KICAgICAgICAgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlcj4gcmVuZGVy
ZXIgPSAoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICopb2JqZWN0OwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VO
RAogICAgICAgICBSZXRhaW5QdHI8TlNFcnJvcj4gZXJyb3IgPSBbY2hhbmdlIHZhbHVlRm9yS2V5
Ok5TS2V5VmFsdWVDaGFuZ2VOZXdLZXldOwogCiAgICAgICAgIEFTU0VSVChfcmVuZGVyZXJzLmNv
bnRhaW5zKHJlbmRlcmVyLmdldCgpKSk7CkBAIC04NTIsMjEgKzg0MCwxNyBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0cmFja0RpZENoYW5nZUVuYWJsZWQoQXVkaW9UcmFja1By
aXZhdGVNZWRpYVNvdQogICAgIGludCB0cmFja0lEID0gdHJhY2stPnRyYWNrSUQoKTsKIAogICAg
IGlmICghdHJhY2stPmVuYWJsZWQoKSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHkt
bmV3IgorICAgICAgICBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiAgICAgICAg
IFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+IHJlbmRlcmVyID0gbV9hdWRp
b1JlbmRlcmVycy5nZXQodHJhY2tJRCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiAgICAgICAgIFttX3BhcnNl
ciBzZXRTaG91bGRQcm92aWRlTWVkaWFEYXRhOk5PIGZvclRyYWNrSUQ6dHJhY2tJRF07CiAgICAg
ICAgIGlmIChtX21lZGlhU291cmNlKQogICAgICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVy
KCktPnJlbW92ZUF1ZGlvUmVuZGVyZXIocmVuZGVyZXIuZ2V0KCkpOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIFttX3BhcnNlciBzZXRTaG91bGRQcm92aWRlTWVkaWFEYXRhOllFUyBmb3JUcmFja0lE
OnRyYWNrSURdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorICAgICAgICBB
TExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiAgICAgICAgIFJldGFpblB0cjxBVlNh
bXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+IHJlbmRlcmVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VORAogICAgICAg
ICBpZiAoIW1fYXVkaW9SZW5kZXJlcnMuY29udGFpbnModHJhY2tJRCkpIHsKICAgICAgICAgICAg
IHJlbmRlcmVyID0gYWRvcHROUyhbYWxsb2NBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJJbnN0
YW5jZSgpIGluaXRdKTsKICAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRy
KCk7CkBAIC05OTcsMTEgKzk4MSw5IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
Om91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRlcm5hbFByb3RlY3RpCiAgICAgbGF5
ZXJEaWRSZWNlaXZlRXJyb3IobV9kaXNwbGF5TGF5ZXIuZ2V0KCksIGVycm9yLmdldCgpKTsKIH0K
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV3Vua25vd24tcHJhZ21hcyIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV3VuZ3VhcmRlZC1hdmFpbGFiaWxpdHktbmV3IgorQUxMT1dfTkVXX0FQSV9XSVRI
T1VUX0dVQVJEU19CRUdJTgogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6cmVuZGVy
ZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICpyZW5kZXJlciwg
TlNFcnJvciAqZXJyb3IpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ORVdf
QVBJX1dJVEhPVVRfR1VBUkRTX0VORAogewogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlckRpZFJlY2VpdmVFcnJvciglcCk6IHJlbmRlcmVy
KCVwKSwgZXJyb3IoJUApIiwgdGhpcywgcmVuZGVyZXIsIFtlcnJvciBkZXNjcmlwdGlvbl0pOwog
CkBAIC0xMDUwLDExICsxMDMyLDkgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
Zmx1c2hWaWRlbygpCiAgICAgfQogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5ndWFyZGVkLWF2YWlsYWJpbGl0eS1u
ZXciCitBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiB2b2lkIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjpmbHVzaChBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKnJlbmRl
cmVyKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfTkVXX0FQSV9XSVRIT1VU
X0dVQVJEU19FTkQKIHsKICAgICBbcmVuZGVyZXIgZmx1c2hdOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBTGF5ZXJDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3Jt
Q0FMYXllckNvY29hLm1tCmluZGV4IGRmMDQxMDNjNzFhOTg5NjRlOWYyOWZlMTk4MWIzNjIxNThh
NmJkOTkuLmZiMmFhMWU0MTVhODMzYzUxZmMwZWM4NDYyM2FkZTk3ZmQ1MjFiMTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FM
YXllckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2Nv
Y29hL1BsYXRmb3JtQ0FMYXllckNvY29hLm1tCkBAIC0xMTUwLDEwICsxMTUwLDkgQEAgdm9pZCBQ
bGF0Zm9ybUNBTGF5ZXI6OmRyYXdMYXllckNvbnRlbnRzKENHQ29udGV4dFJlZiBjb250ZXh0LCBX
ZWJDb3JlOjpQbGF0Zm9ybUMKICAgICAKICAgICAvLyBTZXQgdXAgYW4gTlNHcmFwaGljc0NvbnRl
eHQgZm9yIHRoZSBjb250ZXh0LCBzbyB0aGF0IHBhcnRzIG9mIEFwcEtpdCB0aGF0IHJlbHkgb24K
ICAgICAvLyB0aGUgY3VycmVudCBOU0dyYXBoaWNzQ29udGV4dCAoZS5nLiBOU0NlbGwgZHJhd2lu
ZykgZ2V0IHRoZSByaWdodCBvbmUuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0dyYXBoaWNz
Q29udGV4dCogbGF5ZXJDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4
dFdpdGhHcmFwaGljc1BvcnQ6Y29udGV4dCBmbGlwcGVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAg
W05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OmxheWVyQ29udGV4dF07CiAjZW5k
aWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKaW5kZXggZWY4NDNhMDYxZTljMGM4
MjY3MTYzNDg5ZGNmYWEzNjViMGY3NTc5ZS4uOWVmZTZmNTg3YzcyNGQzZjBkOGUxZmRmMjc5MjRj
NGUyNGU3MzI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKQEAgLTQ5LDE0ICs0OSw5
IEBAIGNvbnN0IEZvbnQqIEZvbnRDYXNjYWRlOjpmb250Rm9yQ29tYmluaW5nQ2hhcmFjdGVyU2Vx
dWVuY2UoY29uc3QgVUNoYXIqIGNoYXJhY3RlCiB7CiAgICAgVUVycm9yQ29kZSBlcnJvciA9IFVf
WkVST19FUlJPUjsKICAgICBWZWN0b3I8VUNoYXIsIDQ+IG5vcm1hbGl6ZWRDaGFyYWN0ZXJzKGxl
bmd0aCk7Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0jZW5kaWYKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgIGludDMyX3Qgbm9ybWFsaXplZExlbmd0aCA9IHVub3JtX25vcm1hbGl6ZShjaGFyYWN0
ZXJzLCBsZW5ndGgsIFVOT1JNX05GQywgVU5PUk1fVU5JQ09ERV8zXzIsIG5vcm1hbGl6ZWRDaGFy
YWN0ZXJzLmRhdGEoKSwgbGVuZ3RoLCAmZXJyb3IpOwotI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFO
RykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBpZiAoVV9GQUlMVVJFKGVycm9yKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlRGVjb2RlckNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlRGVjb2RlckNHLmNwcAppbmRleCBiN2Q1OTJhOWM4YTI1ZDcwZDM3ZjUx
OWY1MTM3YzQyZDNhMzMxYWVlLi44YjYxZTZjNzZmOTljMzYxNGQ0YTMwYmU2YTBmY2MxZDBjYzQy
ODE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZURlY29kZXJDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VEZWNvZGVyQ0cuY3BwCkBAIC00MjMsMTQgKzQyMyw5IEBAIE5hdGl2ZUltYWdlUHRyIElt
YWdlRGVjb2RlckNHOjpjcmVhdGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QgaW5kZXgsIFN1YnNh
bXBsaW5nCiAgICAgLy8gd2hpY2ggY2F1c2VkIGEgcGVyZm9ybWFuY2UgcmVncmVzc2lvbiBmb3Ig
dXMgc2luY2UgdGhlIGltYWdlcyBoYWQgdG8gYmUgcmVzYW1wbGVkL3JlY3JlYXRlZCBldmVyeSB0
aW1lIHdlIGNhbGxlZAogICAgIC8vIENHQ29udGV4dERyYXdJbWFnZS4gV2Ugbm93IHRlbGwgQ0cg
dG8gY2FjaGUgdGhlIGRyYXduIGltYWdlcy4gU2VlIGFsc28gPHJkYXI6Ly9wcm9ibGVtLzE0MzY2
NzU1PiAtCiAgICAgLy8gQ29yZUdyYXBoaWNzIG5lZWRzIHRvIHVuLWRlcHJlY2F0ZSBrQ0dJbWFn
ZUNhY2hpbmdUZW1wb3Jhcnkgc2luY2UgaXQncyBzdGlsbCBub3QgdGhlIGRlZmF1bHQuCi0jaWYg
Q09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0jZW5k
aWYKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENHSW1hZ2VT
ZXRDYWNoaW5nRmxhZ3MoaW1hZ2UuZ2V0KCksIGtDR0ltYWdlQ2FjaGluZ1RlbXBvcmFyeSk7Ci0j
aWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZiAvLyBQTEFURk9S
TShJT1MpCiAgICAgCiAgICAgU3RyaW5nIHV0aSA9IHRoaXMtPnV0aSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oCmluZGV4IGQ2
YjllMTA1YjdhOTcyYzUyZWNlZmFkYjFjNWQ1NWNiNmY4NDQ5MjkuLjYwOTIyMmE5N2IyZjRlZWYx
ZDAxY2M5MmJmMTI2ZThmMzI3YTZiOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKQEAgLTM0LDggKzM0LDcgQEAgY2xhc3Mg
R3JhcGhpY3NMYXllcjsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwogfQogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogCiAjaWYgVVNFKE9QRU5HTCkKIEBpbnRlcmZhY2UgV2ViR0xMYXllciA6IENBTGF5ZXIK
QEAgLTY3LDQgKzY2LDQgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiAKIEBlbmQKIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29t
cGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0KaW5kZXggZTg5MDFi
YzEzYWRhNDA1MjMyZDBkM2ZmNDQ1MTk2M2Q3ZDc1NjViMi4uNDBjYzRmZWMzZTcwYTc3Y2VlNTkz
NWU5MmNkNDFiZjVlOTVlZDdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3Jl
VGV4dC5tbQpAQCAtMTU4LDEwICsxNTgsOSBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6
Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNwLAogCiAg
ICAgICAgIFByb3ZpZGVySW5mbyBpbmZvID0geyBjcCwgbGVuZ3RoLCBzdHJpbmdBdHRyaWJ1dGVz
LmdldCgpIH07CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIFNES3MgY29tcGxhaW4gdGhhdCB0aGUg
c2Vjb25kIHBhcmFtZXRlciBiZWxvdyBjYW5ub3QgYmUgbnVsbC4KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub25udWxs
IgorICAgICAgICBJR05PUkVfTlVMTF9DSEVDS19XQVJOSU5HU19CRUdJTgogICAgICAgICBSZXRh
aW5QdHI8Q1RUeXBlc2V0dGVyUmVmPiB0eXBlc2V0dGVyID0gYWRvcHRDRihDVFR5cGVzZXR0ZXJD
cmVhdGVXaXRoVW5pQ2hhclByb3ZpZGVyQW5kT3B0aW9ucygmcHJvdmlkZVN0cmluZ0FuZEF0dHJp
YnV0ZXMsIDAsICZpbmZvLCBtX3J1bi5sdHIoKSA/IGx0clR5cGVzZXR0ZXJPcHRpb25zIDogcnRs
VHlwZXNldHRlck9wdGlvbnMpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgSUdOT1JFX05VTExfQ0hFQ0tfV0FSTklOR1NfRU5ECiAKICAgICAgICAgbGluZSA9IGFkb3B0
Q0YoQ1RUeXBlc2V0dGVyQ3JlYXRlTGluZSh0eXBlc2V0dGVyLmdldCgpLCBDRlJhbmdlTWFrZSgw
LCAwKSkpOwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvSWNvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9JY29uTWFjLm1tCmluZGV4IDYxNDNiNTFkNDM2NDVkNWFkNDhjMzk1YWY3YzRlYTI2
NDMzZDdjNGEuLjY1YmIxMzkwMjQ0NzM1ZWMwYjNmNmFlNWZkNjg4MTQ5MTI2OWQxYmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29uTWFjLm1tCkBAIC0z
NiwxMCArMzYsOSBAQCBJY29uOjpJY29uKE5TSW1hZ2UgKmltYWdlKQogICAgIDogbV9uc0ltYWdl
KGltYWdlKQogewogICAgIC8vIE5lZWQgdGhpcyBiZWNhdXNlIFdlYkNvcmUgdXNlcyBBcHBLaXQn
cyBmbGlwcGVkIGNvb3JkaW5hdGUgc3lzdGVtIGV4Y2x1c2l2ZWx5LgotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgW2ltYWdlIHNldEZsaXBwZWQ6WUVTXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogSWNvbjo6
fkljb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L1BERkRvY3VtZW50SW1hZ2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvUERGRG9jdW1lbnRJbWFnZU1hYy5tbQppbmRleCA2ZGE5MjFiOThhZjJmOTQ4Y2JhYzI2
MzU5MGEzNGNkYmM4OGRiNWIyLi4yNzI2YmRjZTBjYzFkMGMwMzJkZDUzNzRmOGJmMWI3ODU4YWFl
MDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvUERG
RG9jdW1lbnRJbWFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvUERGRG9jdW1lbnRJbWFnZU1hYy5tbQpAQCAtNzMsMTAgKzczLDkgQEAgdm9pZCBQREZE
b2N1bWVudEltYWdlOjpkcmF3UERGUGFnZShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAg
Ym9vbCBhbGxvd3NTdWJwaXhlbFF1YW50aXphdGlvbiA9IENHQ29udGV4dEdldEFsbG93c0ZvbnRT
dWJwaXhlbFF1YW50aXphdGlvbihjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKTsKICAgICBib29s
IGFsbG93c1N1YnBpeGVsUG9zaXRpb25pbmcgPSBDR0NvbnRleHRHZXRBbGxvd3NGb250U3VicGl4
ZWxQb3NpdGlvbmluZyhjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKTsKIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgW1ttX2RvY3VtZW50IHBhZ2VBdEluZGV4OjBdIGRyYXdXaXRoQm94OmtQREZE
aXNwbGF5Qm94Q3JvcEJveF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBDR0NvbnRleHRTZXRBbGxvd3NG
b250U21vb3RoaW5nKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIGFsbG93c1Ntb290aGluZyk7
CiAgICAgQ0dDb250ZXh0U2V0QWxsb3dzRm9udFN1YnBpeGVsUXVhbnRpemF0aW9uKGNvbnRleHQu
cGxhdGZvcm1Db250ZXh0KCksIGFsbG93c1N1YnBpeGVsUXVhbnRpemF0aW9uKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJLaXROU0ltYWdlRXh0
cmFzLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYktpdE5TSW1h
Z2VFeHRyYXMubW0KaW5kZXggNDY2NGY2NmY3Mzg1NzNkZmFiOTA1NGU5NDNhMTRlMTkwYmVjMmY4
Ny4uN2YzZDE2NTc4NmI2YzMyMTgwNDkyMTY0YjVhNmI3ZTVmZTcxYWIzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYktpdE5TSW1hZ2VFeHRyYXMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYktpdE5TSW1h
Z2VFeHRyYXMubW0KQEAgLTM3LDEwICszNyw5IEBACiAgICAgW3RyYW5zZm9ybSBzY2FsZUJ5OmRl
dmljZVNjYWxlRmFjdG9yXTsKIAogICAgIE5TUmVjdCBib3VuZHMgPSB7IE5TWmVyb1BvaW50LCBz
ZWxmLnNpemUgfTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEJPT0wgZmxpcHBlZE9yaWVudGF0
aW9uID0gc2VsZi5pc0ZsaXBwZWQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW3NlbGYgbG9ja0ZvY3VzV2l0
aFJlY3Q6Ym91bmRzIGNvbnRleHQ6bmlsIGhpbnRzOkB7IE5TSW1hZ2VIaW50Q1RNIDogdHJhbnNm
b3JtIH0gZmxpcHBlZDpmbGlwcGVkT3JpZW50YXRpb25dOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbQppbmRleCA1ZmIyMTVhMjk3MGRkOTYyYWEwYmRj
YTk4M2E5MTA0ZWQ0ZDQzZTEwLi4xOWQyNzViNzE5YTNhOWU2ZWQ1M2ZjNjhjZjQ3YTc2NDM5MDk4
ZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0KQEAg
LTUyLDggKzUyLDcgQEAKICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8
d3RmL1NvZnRMaW5raW5nLmg+CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdudWxsYWJpbGl0eS1jb21wbGV0ZW5lc3Mi
CitJR05PUkVfQ0xBTkdfV0FSTklOR1NfQkVHSU4oIm51bGxhYmlsaXR5LWNvbXBsZXRlbmVzcyIp
CiAKIFNPRlRfTElOS19GUkFNRVdPUksoVUlLaXQpCiBTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJ
Rm9udCkKQEAgLTYzLDcgKzYyLDcgQEAgU09GVF9MSU5LKFVJS2l0LCBVSUdyYXBoaWNzR2V0Q3Vy
cmVudENvbnRleHQsIENHQ29udGV4dFJlZiwgKHZvaWQpLCAoKSkKIFNPRlRfTElOSyhVSUtpdCwg
VUlHcmFwaGljc0dldEltYWdlRnJvbUN1cnJlbnRJbWFnZUNvbnRleHQsIFVJSW1hZ2UgKiwgKHZv
aWQpLCAoKSkKIFNPRlRfTElOSyhVSUtpdCwgVUlHcmFwaGljc0VuZEltYWdlQ29udGV4dCwgdm9p
ZCwgKHZvaWQpLCAoKSkKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX0NM
QU5HX1dBUk5JTkdTX0VORAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCmluZGV4IDU2MTAyZmEyOTA3YWY4NGZlMTMz
MDIxZjA4ZTRlZjQzYjI3ZGM5OTIuLjIwMWNiMzM4YmJkN2RjNzUzYjMzNWEzMDA2MmMyYjkxMjZi
MTE5NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQpA
QCAtNzEsMTAgKzcxLDkgQEAgUmV0YWluUHRyPE5TSW1hZ2U+IHNjYWxlRHJhZ0ltYWdlKFJldGFp
blB0cjxOU0ltYWdlPiBpbWFnZSwgRmxvYXRTaXplIHNjYWxlKQogICAgIE5TU2l6ZSBuZXdTaXpl
ID0gTlNNYWtlU2l6ZSgob3JpZ2luYWxTaXplLndpZHRoICogc2NhbGUud2lkdGgoKSksIChvcmln
aW5hbFNpemUuaGVpZ2h0ICogc2NhbGUuaGVpZ2h0KCkpKTsKICAgICBuZXdTaXplLndpZHRoID0g
cm91bmRmKG5ld1NpemUud2lkdGgpOwogICAgIG5ld1NpemUuaGVpZ2h0ID0gcm91bmRmKG5ld1Np
emUuaGVpZ2h0KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtpbWFnZSBzZXRTY2FsZXNXaGVu
UmVzaXplZDpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtpbWFnZSBzZXRTaXplOm5ld1NpemVdOwog
ICAgIHJldHVybiBpbWFnZTsKIH0KQEAgLTMxMiwxMCArMzExLDkgQEAgRHJhZ0ltYWdlUmVmIGNy
ZWF0ZURyYWdJbWFnZUZvckxpbmsoRWxlbWVudCYgZWxlbWVudCwgVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgdGkKICAgICBSZXRhaW5QdHI8TlNJbWFnZT4gZHJhZ0ltYWdlID0gYWRvcHROUyhbW05T
SW1hZ2UgYWxsb2NdIGluaXRXaXRoU2l6ZTppbWFnZVNpemVdKTsKICAgICBbZHJhZ0ltYWdlIF93
ZWJfbG9ja0ZvY3VzV2l0aERldmljZVNjYWxlRmFjdG9yOmRldmljZVNjYWxlRmFjdG9yXTsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgR3JhcGhpY3NDb250ZXh0IGNvbnRleHQoKENHQ29udGV4
dFJlZilbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdLmdyYXBoaWNzUG9ydCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMzAw
CiAgICAgY29udGV4dC50cmFuc2xhdGUobGlua0ltYWdlU2hhZG93UmFkaXVzLCBsaW5rSW1hZ2VT
aGFkb3dSYWRpdXMgLSBsaW5rSW1hZ2VTaGFkb3dPZmZzZXRZKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9MZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmgKaW5kZXggMDdh
YTk1ZmYwOGEwMzc4MjYwYTgyYTBmNTY1ZmE4OGI4YmI4NTY1NC4uZDMyNDI5MDNiNzg5NDg2MzM0
MWIzMWYwYzM5NGRkOTJmNjAzNTQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmgKQEAgLTI3LDggKzI3LDcgQEAKIAog
I2lmIFBMQVRGT1JNKE1BQykKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC04OSw2ICs4OCw2IEBAIGlubGluZSBOU1N0cmluZyAqbGVnYWN5RmlsZXNQcm9taXNl
UGFzdGVib2FyZFR5cGUoKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAj
ZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0KaW5kZXggYzk4ZmMyODU5
ZmZjNzllMTk1NDhmMTg2N2UzMzA2MGIxNjgzYjA3My4uNDFlNDI1YmNmOTI2ZWE2ZTYyOWMwMTBk
Mzc3YjM1MDA1NjAzMWY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tCkBAIC0zMiw4ICszMiw3IEBA
IExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dDo6TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0
KEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpCiB7CiAgICAgZ3JhcGhpY3NDb250ZXh0LnNhdmUoKTsK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IHRoaXMt
PmNnQ29udGV4dCgpOwogICAgIGlmIChjZ0NvbnRleHQgPT0gW1tOU0dyYXBoaWNzQ29udGV4dCBj
dXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XSkgewogICAgICAgICBtX3NhdmVkTlNHcmFwaGlj
c0NvbnRleHQgPSAwOwpAQCAtNDIsNyArNDEsNyBAQCBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRl
eHQ6OkxvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dChHcmFwaGljc0NvbnRleHQmIGdyYXBoaQog
CiAgICAgbV9zYXZlZE5TR3JhcGhpY3NDb250ZXh0ID0gW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJy
ZW50Q29udGV4dF0gcmV0YWluXTsKICAgICBOU0dyYXBoaWNzQ29udGV4dCogbmV3Q29udGV4dCA9
IFtOU0dyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQb3J0OmNnQ29u
dGV4dCBmbGlwcGVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNl
dEN1cnJlbnRDb250ZXh0Om5ld0NvbnRleHRdOwogICAgIG1fZGlkU2V0R3JhcGhpY3NDb250ZXh0
ID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0
ZWJvYXJkTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMu
bW0KaW5kZXggMWRkNjc2Y2M1Mjk3ZTEzNzI5YzJhYzJhOTIyOTBkMTM2MjVhOTU1YS4uM2MzNjdk
YTQ4NDBjMGU0MmQzYTRhOTVjNzA2MTE1NTk2MTEzNDc2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KQEAgLTk5LDE5ICs5OSwxNyBAQCBQYXN0ZWJv
YXJkOjpQYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBwcm9taQogCiBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2Fy
ZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KE5TR2VuZXJhbFBib2FyZCk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogc3RkOjp1bmlxdWVfcHRyPFBh
c3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkKIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KE5TRHJh
Z1Bib2FyZCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQ
YXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEp
CkBAIC02MTgsMTggKzYxNiwxNiBAQCBzdGF0aWMgdm9pZCBzZXREcmFnSW1hZ2VJbXBsKE5TSW1h
Z2UgKmltYWdlLCBOU1BvaW50IG9mZnNldCkKICAgICBSZXRhaW5QdHI8TlNCaXRtYXBJbWFnZVJl
cD4gYml0bWFwSW1hZ2U7CiAgICAgaWYgKCFpbWFnZVJlcCB8fCAhW2ltYWdlUmVwIGlzS2luZE9m
Q2xhc3M6W05TQml0bWFwSW1hZ2VSZXAgY2xhc3NdXSB8fCAhTlNFcXVhbFNpemVzKGltYWdlUmVw
LnNpemUsIGltYWdlU2l6ZSkpIHsKICAgICAgICAgW2ltYWdlIGxvY2tGb2N1c107Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGJpdG1hcEltYWdlID0gYWRvcHROUyhbW05TQml0bWFw
SW1hZ2VSZXAgYWxsb2NdIGluaXRXaXRoRm9jdXNlZFZpZXdSZWN0OiooTlNSZWN0KikmaW1hZ2VS
ZWN0XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBbaW1hZ2UgdW5sb2NrRm9jdXNdOwogICAg
ICAgICAKICAgICAgICAgLy8gd2UgbWF5IGhhdmUgdG8gZmxpcCB0aGUgYml0cyB3ZSBqdXN0IHJl
YWQgaWYgdGhlIGltYWdlIHdhcyBmbGlwcGVkIHNpbmNlIGl0IG1lYW5zIHRoZSBjYWNoZSB3YXMg
YWxzbwogICAgICAgICAvLyBhbmQgQ29yZURyYWdTZXRJbWFnZSBjYW4ndCB0YWtlIGEgdHJhbnNm
b3JtIGZvciByZW5kZXJpbmcuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGZsaXBJ
bWFnZSA9IGltYWdlLmlzRmxpcHBlZDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfSBlbHNlIHsKICAg
ICAgICAgZmxpcEltYWdlID0gZmFsc2U7CiAgICAgICAgIGJpdG1hcEltYWdlID0gKE5TQml0bWFw
SW1hZ2VSZXAgKilpbWFnZVJlcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQppbmRleCBjZTZlMDBiYTcwMmI3NzRhNDA0
MzI5ZDdkNDU1ZGVjMTFmNjA2ODUxLi44MjIzNWU1NjZkYmNiY2E3YWUyYWI2YWQ4MTRmNzFhZjk5
YmZjZWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1F
dmVudEZhY3RvcnlNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRm
b3JtRXZlbnRGYWN0b3J5TWFjLm1tCkBAIC00NiwxMCArNDYsOSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIE5TUG9pbnQgZ2xvYmFsUG9pbnQoY29uc3QgTlNQb2ludCYgd2luZG93UG9pbnQsIE5T
V2luZG93ICp3aW5kb3cpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICByZXR1cm4gZmxpcFNj
cmVlblBvaW50KFt3aW5kb3cgY29udmVydEJhc2VUb1NjcmVlbjp3aW5kb3dQb2ludF0sIHNjcmVl
bih3aW5kb3cpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogc3RhdGljIE5TUG9pbnQgZ2xvYmFsUG9pbnRG
b3JFdmVudChOU0V2ZW50ICpldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TU0xLZXlHZW5lcmF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU1NMS2V5R2VuZXJhdG9yTWFjLm1tCmluZGV4IDQ3MDBiMDE4YzUzMGMxMTJmYjhkZDEzZDI4
NzNjMTA0NGU3ZGM3MTguLmZjNDBhYTE5YjA0YzNhZTM0NzE4MDI3NjNmN2RmMzg5YTcyMjhjOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TU0xLZXlHZW5lcmF0b3JN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NTTEtleUdlbmVyYXRvck1h
Yy5tbQpAQCAtNDQsOCArNDQsNyBAQCBXVEZfREVDTEFSRV9DRl9UWVBFX1RSQUlUKFNlY0FDTCk7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogc3RydWN0IFB1Ymxp
Y0tleUFuZENoYWxsZW5nZSB7CiAgICAgQ1NTTV9YNTA5X1NVQkpFQ1RfUFVCTElDX0tFWV9JTkZP
IHN1YmplY3RQdWJsaWNLZXlJbmZvOwpAQCAtMjIzLDcgKzIyMiw3IEBAIHN0YXRpYyBTdHJpbmcg
c2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGtleVNpemUsIGNvbnN0
IENTdHJpbmcmCiAgICAgcmV0dXJuIGJhc2U2NEVuY29kZShlbmNvZGVkU2lnbmVkUHVibGljS2V5
QW5kQ2hhbGxlbmdlLkRhdGEsIGVuY29kZWRTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2UuTGVu
Z3RoKTsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAKIHZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVjdG9yPFN0
cmluZz4mIHN1cHBvcnRlZEtleVNpemVzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsVmlld01hYy5tbQppbmRleCAyNmI2Y2I0ZjIxZjhiM2M4OTkzNmQxZDZlNjM4N2Mx
NmI4NDA0ZDNiLi4wOWVkMjBmZmVlMzU0MTQ4ZGI1NTQzYmEwZjM2Y2UzZDM5NjRmOTcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsVmlld01hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsVmlld01hYy5tbQpAQCAtMjMwLDEw
ICsyMzAsOSBAQCBJbnRSZWN0IFNjcm9sbFZpZXc6OnBsYXRmb3JtQ29udGVudHNUb1NjcmVlbihj
b25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAogICAgIGlmIChOU1ZpZXcqIGRvY3VtZW50VmlldyA9
IHRoaXMtPmRvY3VtZW50VmlldygpKSB7CiAgICAgICAgIE5TUmVjdCB0ZW1wUmVjdCA9IHJlY3Q7
CiAgICAgICAgIHRlbXBSZWN0ID0gW2RvY3VtZW50VmlldyBjb252ZXJ0UmVjdDp0ZW1wUmVjdCB0
b1ZpZXc6bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgdGVtcFJlY3Qub3Jp
Z2luID0gW1tkb2N1bWVudFZpZXcgd2luZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOnRlbXBSZWN0
Lm9yaWdpbl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVj
dCh0ZW1wUmVjdCk7CiAgICAgfQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CkBAIC0y
NDQsMTAgKzI0Myw5IEBAIEludFBvaW50IFNjcm9sbFZpZXc6OnBsYXRmb3JtU2NyZWVuVG9Db250
ZW50cyhjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TOwogICAgIGlmIChOU1ZpZXcqIGRvY3VtZW50VmlldyA9IHRoaXMtPmRvY3Vt
ZW50VmlldygpKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIE5TUG9pbnQgd2lu
ZG93Q29vcmQgPSBbW2RvY3VtZW50VmlldyB3aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6IHBv
aW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIHJldHVybiBJbnRQb2ludChbZG9jdW1lbnRW
aWV3IGNvbnZlcnRQb2ludDp3aW5kb3dDb29yZCBmcm9tVmlldzpuaWxdKTsKICAgICB9CiAgICAg
RU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9UaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVt
ZU1hYy5tbQppbmRleCA5NTdmN2M1MDcyODg0MWQ0ZDA1MDFiYmNiMjExNmVjNmQxNjZkYTUwLi4z
NDczNDI2OGVlYzNlYzQwNmI3ZjViZTQyOWJmMzQwMTVkNDNmZmEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCkBAIC0zNTgsMTAgKzM1OCw5IEBAIHN0YXRpYyBOU0J1
dHRvbkNlbGwgKnNoYXJlZENoZWNrYm94Q2VsbChjb25zdCBDb250cm9sU3RhdGVzJiBzdGF0ZXMs
IGNvbnN0IEludFNpCiAKIHN0YXRpYyBib29sIGRyYXdDZWxsRm9jdXNSaW5nV2l0aEZyYW1lQXRU
aW1lKE5TQ2VsbCAqY2VsbCwgTlNSZWN0IGNlbGxGcmFtZSwgTlNWaWV3ICpjb250cm9sVmlldywg
TlNUaW1lSW50ZXJ2YWwgdGltZU9mZnNldCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENH
Q29udGV4dFJlZiBjZ0NvbnRleHQgPSAoQ0dDb250ZXh0UmVmKVtbTlNHcmFwaGljc0NvbnRleHQg
Y3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgQ0dDb250ZXh0
U2F2ZUdTdGF0ZShjZ0NvbnRleHQpOwogCiAgICAgQ0dGb2N1c1JpbmdTdHlsZSBmb2N1c1JpbmdT
dHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJQbGF5YmFj
a0NvbnRyb2xzTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJQbGF5
YmFja0NvbnRyb2xzTWFuYWdlci5tbQppbmRleCBiNmVhZGEzMTgwNjQwMjUwMDYwMmJmYWIwZDMy
OTU3ZGE2ZjJiNDUxLi43NzcwZWU0NTYxODRlMTgyN2NhMmQxZTA5YzQwODBjZDQyNmM1MDlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9s
c01hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYlBsYXliYWNr
Q29udHJvbHNNYW5hZ2VyLm1tCkBAIC0zNCw4ICszNCw3IEBACiAjaW1wb3J0IDx3dGYvU29mdExp
bmtpbmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbnVs
bGFiaWxpdHktY29tcGxldGVuZXNzIgorSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0JFR0lOKCJudWxs
YWJpbGl0eS1jb21wbGV0ZW5lc3MiKQogU09GVF9MSU5LX0ZSQU1FV09SSyhBVktpdCkKICNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMAogU09GVF9MSU5LX0NMQVNT
X09QVElPTkFMKEFWS2l0LCBBVlRvdWNoQmFyTWVkaWFTZWxlY3Rpb25PcHRpb24pCkBAIC0zNDYs
NyArMzQ1LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gbWVkaWFTZWxlY3Rp
b25PcHRpb25zKGNvbnN0IFZlY3RvcjxNZWRpYVNlbGVjdGkKIH0KICNlbmRpZgogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAKIEBlbmQK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0KaW5kZXggOTk2YzE5ZDU1
MGY5MTMxZmEwMjM2MGI2NTdmODhiZTlmOWU2NjZiYi4uYTM3M2RhYmM3MGJkMDM3MTQ5OTc1NWYx
MGIxNjQxZDQxMDA0ZWMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1dpZGdldE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2lkZ2V0TWFj
Lm1tCkBAIC0yMDgsMTAgKzIwOCw5IEBAIHZvaWQgV2lkZ2V0OjpwYWludChHcmFwaGljc0NvbnRl
eHQmIHAsIGNvbnN0IEludFJlY3QmIHIsIFNlY3VyaXR5T3JpZ2luUGFpbnRQb2xpCiAgICAgUmVm
PFdpZGdldD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKICAgICBOU0dyYXBoaWNzQ29udGV4dCAq
Y3VycmVudENvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdOwotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKGN1cnJlbnRDb250ZXh0ID09IFtbdmlldyB3aW5kb3dd
IGdyYXBoaWNzQ29udGV4dF0gfHwgIVtjdXJyZW50Q29udGV4dCBpc0RyYXdpbmdUb1NjcmVlbl0p
IHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGNvbW1vbiBjYXNlIG9m
IGRyYXdpbmcgaW50byBhIHdpbmRvdyBvciBhbiBpbmNsdXNpdmUgbGF5ZXIsIG9yIHByaW50aW5n
LgogICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAgICAgICAgIFt2aWV3IGRp
c3BsYXlSZWN0SWdub3JpbmdPcGFjaXR5Olt2aWV3IGNvbnZlcnRSZWN0OnIgZnJvbVZpZXc6W3Zp
ZXcgc3VwZXJ2aWV3XV1dOwpAQCAtMjM4LDEwICsyMzcsOSBAQCB2b2lkIFdpZGdldDo6cGFpbnQo
R3JhcGhpY3NDb250ZXh0JiBwLCBjb25zdCBJbnRSZWN0JiByLCBTZWN1cml0eU9yaWdpblBhaW50
UG9saQogICAgIH0KIAogICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBwLnBsYXRmb3JtQ29u
dGV4dCgpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQVNTRVJUKGNnQ29udGV4dCA9PSBbY3Vy
cmVudENvbnRleHQgZ3JhcGhpY3NQb3J0XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgQ0dDb250ZXh0U2F2
ZUdTdGF0ZShjZ0NvbnRleHQpOwogCiAgICAgTlNSZWN0IHZpZXdGcmFtZSA9IFt2aWV3IGZyYW1l
XTsKQEAgLTI1NSwxMCArMjUzLDkgQEAgdm9pZCBXaWRnZXQ6OnBhaW50KEdyYXBoaWNzQ29udGV4
dCYgcCwgY29uc3QgSW50UmVjdCYgciwgU2VjdXJpdHlPcmlnaW5QYWludFBvbGkKIAogICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgICAgIE5TR3JhcGhpY3NDb250ZXh0ICpuc0NvbnRleHQgPSBbTlNHcmFwaGljc0NvbnRl
eHQgZ3JhcGhpY3NDb250ZXh0V2l0aEdyYXBoaWNzUG9ydDpjZ0NvbnRleHQgZmxpcHBlZDpOT107
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgICAgICBbdmlldyBkaXNwbGF5UmVjdElnbm9yaW5nT3BhY2l0
eTpbdmlldyBjb252ZXJ0UmVjdDpyIGZyb21WaWV3Olt2aWV3IHN1cGVydmlld11dIGluQ29udGV4
dDpuc0NvbnRleHRdOwogICAgIH0KICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNv
bWluZ0F1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaAppbmRleCBiNTEzMThjODM0ZTI1NGFhOWY3MjM2
NWVmZTY3ZjM1NDY2OGNlOWFlLi4wNDRiZmE4NWYwY2FjNDYwYzc1Y2IzM2NlN2Y2YjQ3YzRlNTI0
ZjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZUluY29taW5nQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaApAQCAtMzUsMTIgKzM1LDEx
IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDTWFjcm9zLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRp
YVNvdXJjZS5oIgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorQUxMT1dfVU5VU0VEX1BBUkFN
RVRFUlNfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvbWVkaWFzdHJlYW1pbnRlcmZhY2Uu
aD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJT
X0VORAogCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdW
aWRlb1NvdXJjZS5oCmluZGV4IDFiMGJmOTRkZjVkNGM5M2RlZjgwMjRlZmE5MWE1ZTE2NWJmNWQ5
NmQuLjA2NjgwYWIzZDdmMGM5YzVhMGY3YWYwNzFmMTYwYzg5MmY3ZDEwZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRl
b1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oCkBAIC0zNSwxMiArMzUsMTEgQEAKICNpbmNsdWRlICJM
aWJXZWJSVENNYWNyb3MuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCiAKLSNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV3VudXNlZC1wYXJhbWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgogCiAj
aW5jbHVkZSA8d2VicnRjL2FwaS9tZWRpYXN0cmVhbWludGVyZmFjZS5oPgogCi0jcHJhZ21hIEdD
QyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAKICNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKaW5k
ZXggZWE0NTdmN2Q1MzM1MGFmZDE4NDRlZjNjZjQzMjExZjgzMzI5NTZmNC4uN2MwYThmYjY0YTE1
NWRkNDg0OGE5YTQzYWZiMzQ3NGYzYzEyM2Y3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlLmgKQEAgLTM1LDEyICszNSwxMSBAQAogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIK
K0FMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAKICNpbmNsdWRlIDx3ZWJydGMvYXBpL21l
ZGlhc3RyZWFtaW50ZXJmYWNlLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCitBTExP
V19VTlVTRURfUEFSQU1FVEVSU19FTkQKIAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcAppbmRleCAxNGE4
ZTk0YmQyYjhhOGIzZThlYWVmNzA3YzE2Y2RmMGM2MGU3YjE4Li5hZDVmN2U0MzI4Njk0MWQ5ZjUx
MDJmNjJmOTNkZDAwODhhNzVmYmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZS5jcHAKQEAgLTMzLDEzICszMywxMiBAQAogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogCi0jcHJh
Z21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAi
LVd1bnVzZWQtcGFyYW1ldGVyIgorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfQkVHSU4KIAogI2lu
Y2x1ZGUgPHdlYnJ0Yy9hcGkvdmlkZW8vaTQyMF9idWZmZXIuaD4KICNpbmNsdWRlIDx3ZWJydGMv
Y29tbW9uX3ZpZGVvL2xpYnl1di9pbmNsdWRlL3dlYnJ0Y19saWJ5dXYuaD4KIAotI3ByYWdtYSBH
Q0MgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAogCiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaApp
bmRleCA1NDhlYTNmMDFkODA3ZTg3Y2UxMWQzMGU2Y2JjZGI3MDJmOTE1NWUxLi44NTA1ZmRjYWM3
MjFmNDg1N2ZjOGZmMWE3YWQ4NzZjMDM3ODQwMWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2UuaApAQCAtMzQsMTMgKzM0LDEyIEBACiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUuaCIKICNpbmNsdWRlIDxUaW1lci5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVy
IgorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkv
bWVkaWFzdHJlYW1pbnRlcmZhY2UuaD4KICNpbmNsdWRlIDx3ZWJydGMvY29tbW9uX3ZpZGVvL2lu
Y2x1ZGUvaTQyMF9idWZmZXJfcG9vbC5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAor
QUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4K
ICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01v
ZHVsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ0F1ZGlvTW9kdWxlLmgKaW5kZXggNzllOTlkN2NlMjA2Zjg5MjU5NmJkZDRmM2QxY2Vm
N2U1ZWIzN2RlMC4uYTE1ZjQ4MzBkNjliY2NkMzNiMzUyMTUzNjcyODlkNjdhYTA2YTU4YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ0F1ZGlvTW9kdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0F1ZGlvTW9kdWxlLmgKQEAgLTI5LDE0ICsyOSwxMyBA
QAogCiAjaW5jbHVkZSAiTGliV2ViUlRDTWFjcm9zLmgiCiAKLSNwcmFnbWEgR0NDIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0
ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRjL21v
ZHVsZXMvYXVkaW9fZGV2aWNlL2luY2x1ZGUvYXVkaW9fZGV2aWNlLmg+CiAjaW5jbHVkZSA8d2Vi
cnRjL3J0Y19iYXNlL21lc3NhZ2VoYW5kbGVyLmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNl
L3RocmVhZC5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorQUxMT1dfVU5VU0VEX1BB
UkFNRVRFUlNfRU5ECiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5jcHAKaW5kZXggMWExNDUzYzg5YjdjMzIzOWZmZjVlYTFkMjViM2QwMDVl
Mzk1MWMzOC4uMzk5MjVkZmJkYWQxMjM5NjkyOWJkMWVjODhhM2ZkOWJhM2U4MGE1OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC0zMSw4ICszMSw3IEBACiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgPGRsZmNuLmg+CiAKLSNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJh
bWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRj
L2FwaS9hdWRpb19jb2RlY3MvYnVpbHRpbl9hdWRpb19kZWNvZGVyX2ZhY3RvcnkuaD4KICNpbmNs
dWRlIDx3ZWJydGMvYXBpL2F1ZGlvX2NvZGVjcy9idWlsdGluX2F1ZGlvX2VuY29kZXJfZmFjdG9y
eS5oPgpAQCAtNDMsNyArNDIsNyBAQAogI2luY2x1ZGUgPHdlYnJ0Yy9wYy9wZWVyY29ubmVjdGlv
bmZhY3RvcnkuaD4KICNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvcGh5c2ljYWxzb2NrZXRzZXJ2
ZXIuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX1VOVVNFRF9QQVJBTUVU
RVJTX0VORAogCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4IDhmY2Nm
MjJhMDA1ZmQ3OTg2MGMyYzk1ODY2MzcwMzY4MTMyMzhkOTYuLjdjMmY1MTg3NWZlZmEyNWIzMjdl
NGUwNDNlNGI3NTNmZDliNzJhNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5o
CkBAIC0zNSwxNSArMzUsMTQgQEAKIAogI2lmIFVTRShMSUJXRUJSVEMpCiAKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNl
ZC1wYXJhbWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgogCiAjaW5jbHVkZSA8
d2VicnRjL2FwaS9wZWVyY29ubmVjdGlvbmludGVyZmFjZS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9h
cGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0
Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdl
YnJ0Yy9ydGNfYmFzZS9zY29wZWRfcmVmX3B0ci5oPgogCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGlj
IHBvcAorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECiAKIG5hbWVzcGFjZSBydGMgewogY2xh
c3MgTmV0d29ya01hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlQ29jb2EubW0KaW5kZXggYmJhYzhkYTVlNDM5YzhhMjBhMjhkZWNmNTc3ZGVjZDY2MThl
N2E0Ny4uNDljZGJkZTg4MGNkNDBlYTY4MTFiMThlMDA1Y2U5NmU1YjQ1NWRkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQpAQCAtMzQsMTIg
KzM0LDExIEBACiAjaW5jbHVkZSAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCiAjaW5jbHVkZSA8cGFs
L2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgor
QUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfQkVHSU4KIAogI2luY2x1ZGUgPHdlYnJ0Yy9zZGsvV2Vi
S2l0L1dlYktpdFV0aWxpdGllcy5oPgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitB
TExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKIAogI2luY2x1ZGUgPHd0Zi9jZi9UeXBlQ2FzdHND
Ri5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29h
LmNwcAppbmRleCBiYzhhZjM5ZWM4OGJmMWJhMzIwYTNiZmIxMDYyNzEzMWZkYjQxMDY0Li43OTVm
MjJlMzFlMjM4ZmJmYmI5MTg5YjBjNDg5MDlhODA5ZjMwMjNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKQEAgLTMwLDE0ICszMCwxMyBA
QAogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRlciIK
K0FMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAKICNpbmNsdWRlIDx3ZWJydGMvYXBpL3Zp
ZGVvL2k0MjBfYnVmZmVyLmg+CiAjaW5jbHVkZSA8d2VicnRjL2NvbW1vbl92aWRlby9saWJ5dXYv
aW5jbHVkZS93ZWJydGNfbGlieXV2Lmg+CiAjaW5jbHVkZSA8d2VicnRjL3Nkay9XZWJLaXQvV2Vi
S2l0VXRpbGl0aWVzLmg+CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX1VO
VVNFRF9QQVJBTUVURVJTX0VORAogCiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
Lmg+CiAjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Np
b25DRk5ldC5jcHAKaW5kZXggODExOWZkNWU1NTZlNmMxZDdiZmMxZmJhYjRiNWI4ODkxMGMzOWU1
Zi4uYzlkMjk2NDQyMWViZGQ4YjQ2NzQwNDZkY2M0YzUwM2M3YWZiNDk5NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25D
Rk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKQEAgLTY0LDEyICs2NCwxMSBAQCBzdGF0aWMgaW5saW5l
IENGVHlwZUlEIHR5cGVJRCgpIHsgcmV0dXJuIENsYXNzTmFtZSMjR2V0VHlwZUlEKCk7IH0gXAog
fTsKIAogI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICNlbmRpZgogREVDTEFS
RV9DRl9UWVBFX1RSQUlUKENGSFRUUENvb2tpZSk7CiAjaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICNlbmRpZgogCiAjdW5kZWYgREVDTEFSRV9DRl9UWVBFX1RSQUlUCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0
LmNwcAppbmRleCAwOTVhMGM0YjdkODRhYzljOWFiYWM0NGExYTVmNDZlOWViYzAwMDdhLi41Y2Jk
YTViZGQ0NjcyOWRlYmI2YWJmMDQ0ZmQxNTg2NWJjYWYxNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5j
cHAKQEAgLTE3MSwxMiArMTcxLDExIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJM
Q29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAjZWxzZQog
ICAgIGlmIChhbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlSG9zdHMoKS5jb250YWlucyhmaXJzdFJl
cXVlc3QoKS51cmwoKS5ob3N0KCkudG9TdHJpbmcoKSkpIHsKICAgICAgICAgc3NsUHJvcHMgPSBh
ZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwg
JmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNh
bGxCYWNrcykpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBDRkRpY3Rpb25hcnlB
ZGRWYWx1ZShzc2xQcm9wcy5nZXQoKSwga0NGU3RyZWFtU1NMQWxsb3dzQW55Um9vdCwga0NGQm9v
bGVhblRydWUpOwogICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShzc2xQcm9wcy5nZXQoKSwg
a0NGU3RyZWFtU1NMQWxsb3dzRXhwaXJlZFJvb3RzLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgICAg
IENGRGljdGlvbmFyeUFkZFZhbHVlKHNzbFByb3BzLmdldCgpLCBrQ0ZTdHJlYW1TU0xBbGxvd3NF
eHBpcmVkQ2VydGlmaWNhdGVzLCBrQ0ZCb29sZWFuVHJ1ZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogI2lm
ICFQTEFURk9STShXSU4pIC8vIDxyZGFyOi8vcHJvYmxlbS8zMzk5MzQ2Mj4gLSBEaXNhYmxpbmcg
dmFsaWRhdGlvbiBvZiBjZXJ0aWZpY2F0ZSBjaGFpbiBicmVha3MgU1NMIG9uIFdpbmRvd3MuCiAg
ICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKHNzbFByb3BzLmdldCgpLCBrQ0ZTdHJlYW1TU0xW
YWxpZGF0ZXNDZXJ0aWZpY2F0ZUNoYWluLCBrQ0ZCb29sZWFuRmFsc2UpOwogI2VuZGlmCkBAIC0y
MzQsMTAgKzIzMyw5IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlv
bihib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgaWYgKHNob3VsZFVz
ZUNyZWRlbnRpYWxTdG9yYWdlKQogICAgICAgICBjbGllbnQuc2hvdWxkVXNlQ3JlZGVudGlhbFN0
b3JhZ2UgPSAwOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBkLT5tX2Nvbm5lY3Rpb24gPSBh
ZG9wdENGKENGVVJMQ29ubmVjdGlvbkNyZWF0ZVdpdGhQcm9wZXJ0aWVzKDAsIHJlcXVlc3QuZ2V0
KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZVUkxDb25uZWN0aW9uQ2xpZW50Kj4oJmNsaWVudCksIHBy
b3BlcnRpZXNEaWN0aW9uYXJ5LmdldCgpKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIGJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAppbmRl
eCA5ZWQ1YWEwYzlkOWJmMTNlZWEzMWEyOTU2OGEyNDk3NTc0ZTU4NmM0Li45NjM0NzlkNjcyMjBi
Y2E5OTgwN2MyZWY0YjUwNjM3ZGNmZWYzYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBs
Q0ZOZXQuY3BwCkBAIC02NjYsMTAgKzY2Niw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1w
bDo6cmVwb3J0RXJyb3JUb0NsaWVudChDRkVycm9yUmVmIGVycm9yKQogCiAjaWYgUExBVEZPUk0o
TUFDKQogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0jZW5kaWYKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
CiAgICAgaWYgKENGRXF1YWwoQ0ZFcnJvckdldERvbWFpbihlcnJvciksIGtDRkVycm9yRG9tYWlu
T1NTdGF0dXMpKSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGRlc2NyaXB0aW9uT1NTdGF0dXMgPSBH
ZXRNYWNPU1N0YXR1c0NvbW1lbnRTdHJpbmcoc3RhdGljX2Nhc3Q8T1NTdGF0dXM+KGVycm9yQ29k
ZSkpOwpAQCAtNjc3LDkgKzY3NCw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6cmVw
b3J0RXJyb3JUb0NsaWVudChDRkVycm9yUmVmIGVycm9yKQogICAgICAgICAgICAgZGVzY3JpcHRp
b24gPSAiT1NTdGF0dXMgRXJyb3IgIiArIFN0cmluZzo6bnVtYmVyKGVycm9yQ29kZSkgKyAiOiAi
ICsgZGVzY3JpcHRpb25PU1N0YXR1czsKICAgICB9CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jcmVhdGUtaHR0cC1oZWFkZXItbmFtZS10YWJsZSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3JlYXRlLWh0dHAtaGVhZGVyLW5hbWUtdGFibGUKaW5k
ZXggZWEyYjc0MzM2NDgzYjA1MDYzODcxM2ZkNTE3M2E2YjA5YjhkNjA3MC4uZjViZWI2MzcxMTI5
YzdjYWFhMzlmNWQ5OTllNGQ5YWMwM2IwYjZiZiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jcmVhdGUtaHR0cC1oZWFkZXItbmFtZS10YWJsZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NyZWF0ZS1odHRwLWhlYWRlci1uYW1lLXRhYmxl
CkBAIC05MCwxMSArOTAsNyBAQCBncGVyZl9maWxlLndyaXRlKCcnJwogCiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nVmlldy5oPgogCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
dW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XaW1w
bGljaXQtZmFsbHRocm91Z2giCi0jZW5kaWYKK0lHTk9SRV9XQVJOSU5HU19CRUdJTigiaW1wbGlj
aXQtZmFsbHRocm91Z2giKQogCiAvLyBPbGRlciB2ZXJzaW9ucyBvZiBncGVyZiBsaWtlIHRvIHVz
ZSB0aGUgYHJlZ2lzdGVyYCBrZXl3b3JkLgogI2RlZmluZSByZWdpc3RlcgpAQCAtMTc5LDcgKzE3
NSw3IEBAIFN0cmluZ1ZpZXcgaHR0cEhlYWRlck5hbWVTdHJpbmcoSFRUUEhlYWRlck5hbWUgaGVh
ZGVyTmFtZSkKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2lmIGRlZmluZWQoX19jbGFuZ19f
KQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorSUdOT1JFX1dBUk5JTkdTX0VORAogI2Vu
ZGlmCiAnJycpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXggYjlmYzJhMmYxN2NkOTU3NDAwNGNiYjk3
NDk5YWFiZDExNjZlMDczYi4uYWRlN2I4NTI1YjhjOTUyYzBmY2Y5ZThlOTljMjc3ZmNlZDQ5OTRk
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VIYW5kbGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VIYW5kbGVNYWMubW0KQEAgLTIyMCwxMCArMjIwLDkgQEAgdm9pZCBSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNy
ZWRlbnRpYWwKICAgICAvLyB3ZWIgY29udGVudCBmb3IgcHVycG9zZXMgb2YgQXBwIFRyYW5zcG9y
dCBTZWN1cml0eS4KICAgICBbcHJvcGVydHlEaWN0aW9uYXJ5IHNldE9iamVjdDpAe0AiTlNBbGxv
d3NBcmJpdHJhcnlMb2Fkc0luV2ViQ29udGVudCI6IEBZRVN9IGZvcktleTpAIl9rQ0ZVUkxDb25u
ZWN0aW9uUHJvcGVydHlBVFNGcmFtZXdvcmtPdmVycmlkZXMiXTsKIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBkLT5tX2Nvbm5lY3Rpb24gPSBhZG9wdE5TKFtbTlNVUkxDb25uZWN0aW9uIGFsbG9jXSBf
aW5pdFdpdGhSZXF1ZXN0Om5zUmVxdWVzdCBkZWxlZ2F0ZTpkZWxlZ2F0ZSB1c2VzQ2FjaGU6dXNl
c0NhY2hlIG1heENvbnRlbnRMZW5ndGg6MCBzdGFydEltbWVkaWF0ZWx5Ok5PIGNvbm5lY3Rpb25Q
cm9wZXJ0aWVzOnByb3BlcnR5RGljdGlvbmFyeV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIGJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dEVuY29kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVu
Y29kaW5nLmNwcAppbmRleCA0MDEzZjM3Y2Y3ZTFkN2Y3NzI4ZDhjMDA3ZmZhNjgxNzI2ZDVlMDFk
Li40MDVmOTMzOTRlMWU2ZTI5MTM2YTgwNDYwYjgyYzc2ZmQ3MGE1MGFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwCkBAIC02OSwxMCArNjksNyBA
QCBTdHJpbmcgVGV4dEVuY29kaW5nOjpkZWNvZGUoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxl
bmd0aCwgYm9vbCBzdG9wT25FcnJvciwgYgogICAgIHJldHVybiBuZXdUZXh0Q29kZWMoKnRoaXMp
LT5kZWNvZGUoZGF0YSwgbGVuZ3RoLCB0cnVlLCBzdG9wT25FcnJvciwgc2F3RXJyb3IpOwogfQog
Ci0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0jZW5kaWYKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAvLyBOT1RF
OiBJQ1UncyB1bm9ybV9xdWlja0NoZWNrIGFuZCB1bm9ybV9ub3JtYWxpemUgZnVuY3Rpb25zIGFy
ZSBkZXByZWNhdGVkLgogCiBWZWN0b3I8dWludDhfdD4gVGV4dEVuY29kaW5nOjplbmNvZGUoU3Ry
aW5nVmlldyB0ZXh0LCBVbmVuY29kYWJsZUhhbmRsaW5nIGhhbmRsaW5nKSBjb25zdApAQCAtMTEy
LDkgKzEwOSw3IEBAIFZlY3Rvcjx1aW50OF90PiBUZXh0RW5jb2Rpbmc6OmVuY29kZShTdHJpbmdW
aWV3IHRleHQsIFVuZW5jb2RhYmxlSGFuZGxpbmcgaGFuZGxpCiAgICAgcmV0dXJuIG5ld1RleHRD
b2RlYygqdGhpcyktPmVuY29kZShTdHJpbmdWaWV3IHsgc291cmNlLCBzb3VyY2VMZW5ndGggfSwg
aGFuZGxpbmcpOwogfQogCi0jaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQotI3ByYWdtYSBHQ0Mg
ZGlhZ25vc3RpYyBwb3AKLSNlbmRpZgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAKIGNvbnN0IGNoYXIqIFRleHRFbmNvZGluZzo6ZG9tTmFtZSgpIGNvbnN0CiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaApp
bmRleCA4NDAzNTMwZTk5ZDIwYjhkNDhiYTk0NzdmZjE3OWRlZjZkOGU4OTI4Li4xNzQwNjdhZDVk
ODc1OTAxNjcwOWE1YzRmMDI2YTMxMzc5N2I1NmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTI4LDEzICsyOCwx
MiBAQAogCiAjaW5jbHVkZSAiTGliV2ViUlRDTWFjcm9zLmgiCiAKLSNwcmFnbWEgR0NDIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJh
bWV0ZXIiCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgogCiAjaW5jbHVkZSA8d2VicnRj
L2FwaS9tZWRpYXN0cmVhbWludGVyZmFjZS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvcGVlcmNv
bm5lY3Rpb25pbnRlcmZhY2UuaD4KIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKK0FMTE9X
X1VOVVNFRF9QQVJBTUVURVJTX0VORAogCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEdyYW1tYXIuY3BwIGIvU291
cmNlL1dlYkNvcmUveG1sL1hQYXRoR3JhbW1hci5jcHAKaW5kZXggMzFkZjFjMGQxNThhMjc4ZjRj
MDk2Y2IyYmE5MTFmM2Y3YjAxYjk0My4uNWUwNjlkNzkxMDcyYmY1N2RkZDczYzQzZTRlMWVhOTE2
NzMxZjVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoR3JhbW1hci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoR3JhbW1hci5jcHAKQEAgLTIxNTQsMTUgKzIx
NTQsMTAgQEAgeXllcnJvcmxhYjoKICAgLyogUGFjaWZ5IGNvbXBpbGVycyBsaWtlIEdDQyB3aGVu
IHRoZSB1c2VyIGNvZGUgbmV2ZXIgaW52b2tlcwogICAgICBZWUVSUk9SIGFuZCB0aGUgbGFiZWwg
eXllcnJvcmxhYiB0aGVyZWZvcmUgbmV2ZXIgYXBwZWFycyBpbiB1c2VyCiAgICAgIGNvZGUuICAq
LwotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VucmVhY2hhYmxlLWNvZGUiCi0jZW5k
aWYKKyAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKICAg
aWYgKC8qQ09OU1RDT05EKi8gMCkKICAgICAgZ290byB5eWVycm9ybGFiOwotI2lmIENPTVBJTEVS
KENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VuZGlmCisgIElHTk9SRV9D
TEFOR19XQVJOSU5HU19FTkQKIAogICAvKiBEbyBub3QgcmVjbGFpbSB0aGUgc3ltYm9scyBvZiB0
aGUgcnVsZSB3aGljaCBhY3Rpb24gdHJpZ2dlcmVkCiAgICAgIHRoaXMgWVlFUlJPUi4gICovCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRh
VGFza0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
RGF0YVRhc2tDb2NvYS5tbQppbmRleCBjMmQ0NWQ2NmJkMjU4ZWI4MzJjMjU0ZmViODM1YWFkZTY3
MTNlOTQ1Li45NGYwMmQ3YjRmYjhlOGFhNTIyODk0MTQ2ZDBlOTUwNjAzODFmN2NiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0Nv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0Rh
dGFUYXNrQ29jb2EubW0KQEAgLTExOCwxMiArMTE4LDExIEBAIE5TSFRUUENvb2tpZVN0b3JhZ2Ug
Kk5ldHdvcmtEYXRhVGFza0NvY29hOjpzdGF0ZWxlc3NDb29raWVTdG9yYWdlKCkKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPE5TSFRUUENvb2tpZVN0b3JhZ2U+PiBzdGF0ZWxl
c3NDb29raWVTdG9yYWdlOwogICAgIGlmICghc3RhdGVsZXNzQ29va2llU3RvcmFnZS5nZXQoKSkg
ewogI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
PCAxMDEzMDApCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1Xbm9ubnVsbCIKKyAgICAgICAgSUdOT1JFX05VTExfQ0hFQ0tf
V0FSTklOR1NfQkVHSU4KICNlbmRpZgogICAgICAgICBzdGF0ZWxlc3NDb29raWVTdG9yYWdlLmdl
dCgpID0gYWRvcHROUyhbW05TSFRUUENvb2tpZVN0b3JhZ2UgYWxsb2NdIF9pbml0V2l0aElkZW50
aWZpZXI6bmlsIHByaXZhdGU6WUVTXSk7CiAjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTMwMCkKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICAgICAgSUdOT1JFX05VTExfQ0hFQ0tfV0FSTklOR1NfRU5ECiAjZW5kaWYKICAg
ICAgICAgc3RhdGVsZXNzQ29va2llU3RvcmFnZS5nZXQoKS5nZXQoKS5jb29raWVBY2NlcHRQb2xp
Y3kgPSBOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlcjsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2Eu
bW0KaW5kZXggZmQ3NjY0Y2U2MTMwYmZjNzhjODU2MjlmYWQ5N2NjNDcxMzYxMTVjMS4uYmIzNzlh
NDUzMmU4ODg1NzRiYzM1YThmMGJjOTljNjZlODkwOWNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQpA
QCAtMjIzLDggKzIyMyw3IEBAIHN0YXRpYyB2b2lkIHNhdmVDb29raWVzKE5TSFRUUENvb2tpZVN0
b3JhZ2UgKmNvb2tpZVN0b3JhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvCiAKIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnBsYXRmb3JtU3luY0FsbENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kZXIpIHsKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQ
cm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICAKICNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTQwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKQogICAgIFJlZlB0cjxDYWxsYmFja0FnZ3JlZ2F0b3I+
IGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUo
Y29tcGxldGlvbkhhbmRlcikpOwpAQCAtMjM2LDcgKzIzNSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnBsYXRmb3JtU3luY0FsbENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpCiAgICAgY29tcGxldGlvbkhhbmRlcigpOwogI2VuZGlmCiAKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0K
IAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1QcmVwYXJlVG9TdXNwZW5kKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQppbmRleCBjMzEyMGJi
NTlhMGE1NGI2OTg3MDkyZmFmNTY5MmQ0MjQxNTNlNjE3Li42ZWU1ZDQ4N2NkOThkMTdjNzhjYzJl
OGEyMDkwMmU4NjI5MjZjZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nl
c3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9j
ZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCkBAIC0yNjAsMTMgKzI2MCwxMiBAQCBzdGF0aWMg
dW5zaWduZWQgbW9kYWxDb3VudDsKIAogc3RhdGljIHZvaWQgYmVnaW5Nb2RhbCgpCiB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICAvLyBNYWtlIHN1cmUgdG8gbWFrZSBvdXJzZWx2ZXMgdGhlIGZy
b250IHByb2Nlc3MKICAgICBQcm9jZXNzU2VyaWFsTnVtYmVyIHBzbjsKICAgICBHZXRDdXJyZW50
UHJvY2VzcygmcHNuKTsKICAgICBTZXRGcm9udFByb2Nlc3MoJnBzbik7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAK
ICAgICBpZiAoIW1vZGFsQ291bnQrKykKICAgICAgICAgc2V0TW9kYWwodHJ1ZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NTaGltLm1t
IGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hpbS5tbQpp
bmRleCA0MDM2ZDNiODc0NDAzNjgwNzJiMjBiNzgwMjYxN2QxOWU5ZDFiMGE0Li40NDZjNjIxYjY5
ZTVjOTJjZGIxMDI4MDEzMjVmZTBiN2U1MTkwNzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NTaGltLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0KQEAgLTQ4LDggKzQ4LDcg
QEAgc3RhdGljIFBsdWdpblByb2Nlc3NTaGltQ2FsbGJhY2tzIHBsdWdpblByb2Nlc3NTaGltQ2Fs
bGJhY2tzOwogCiAjaWZuZGVmIF9fTFA2NF9fCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIHN0YXRpYyB2
b2lkIHNoaW1EZWJ1Z2dlcih2b2lkKQogewpAQCAtMTMzLDcgKzEzMiw3IEBAIERZTERfSU5URVJQ
T1NFKHNoaW1IaWRlV2luZG93LCBIaWRlV2luZG93KTsKIERZTERfSU5URVJQT1NFKHNoaW1MU09w
ZW5DRlVSTFJlZiwgTFNPcGVuQ0ZVUkxSZWYpOwogRFlMRF9JTlRFUlBPU0Uoc2hpbU1hY2hWTU1h
cCwgbWFjaF92bV9tYXApOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1bGUuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1v
ZHVsZS5jcHAKaW5kZXggNjBmNDFlYmRmZjYxYzg2Mzc3Y2FmZjE3Y2FlYjU2YTk0NDVlYzc3OS4u
ZGFkOGIwOTJmMzkzZThjMTkyYmE0YWZiZWM2ZTM3MTBhMGU1MzQ2NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVsZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBs
dWdpbk1vZHVsZS5jcHAKQEAgLTI0Miw4ICsyNDIsNyBAQCBib29sIE5ldHNjYXBlUGx1Z2luTW9k
dWxlOjp0cnlMb2FkKCkKICNpZiBQTFVHSU5fQVJDSElURUNUVVJFKE1BQykKICNpZm5kZWYgTlBf
Tk9fQ0FSQk9OCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiAgICAgLy8gUGx1Z2lucyAoYXQgbGVh
c3QgUVQpIHJlcXVpcmUgdGhhdCB5b3UgY2FsbCBVc2VSZXNGaWxlIG9uIHRoZSByZXNvdXJjZSBm
aWxlIGJlZm9yZSBsb2FkaW5nIGl0LgogICAgIFJlc0ZpbGVSZWZOdW0gY3VycmVudFJlc291cmNl
RmlsZSA9IEN1clJlc0ZpbGUoKTsKQEAgLTI1OCw3ICsyNTcsNyBAQCBib29sIE5ldHNjYXBlUGx1
Z2luTW9kdWxlOjp0cnlMb2FkKCkKICAgICAvLyBSZXN0b3JlIHRoZSByZXNvdXJjZSBmaWxlLgog
ICAgIFVzZVJlc0ZpbGUoY3VycmVudFJlc291cmNlRmlsZSk7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9DaGlsZFByb2Nlc3NJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvQ2hpbGRQcm9jZXNzSU9TLm1tCmluZGV4
IDliZGQ3MmY4M2Y0MzEzZTQ2MGM1ZGNlMGIzOWVjZDVlNTU3Yjc0Y2EuLmU4YzA5Mzg5MjI5MGMx
YTU2MjQzNDE5YWIwYzQ5NjkzMmM1N2ViZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2lvcy9DaGlsZFByb2Nlc3NJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L0NoaWxkUHJvY2Vzc0lPUy5tbQpAQCAtODAsMTAgKzgwLDkgQEAgdm9pZCBDaGlsZFByb2Nlc3M6
OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1l
dGVycyYKICAgICAgICAgaWYgKCFzYW5kYm94UHJvZmlsZVBhdGguaXNFbXB0eSgpKSB7CiAgICAg
ICAgICAgICBDU3RyaW5nIHByb2ZpbGVQYXRoID0gRmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJl
c2VudGF0aW9uKHNhbmRib3hQcm9maWxlUGF0aCk7CiAgICAgICAgICAgICBjaGFyKiBlcnJvckJ1
ZjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBpZiAoc2FuZGJveF9p
bml0X3dpdGhfcGFyYW1ldGVycyhwcm9maWxlUGF0aC5kYXRhKCksIFNBTkRCT1hfTkFNRURfRVhU
RVJOQUwsIHNhbmRib3hQYXJhbWV0ZXJzLm5hbWVkUGFyYW1ldGVyQXJyYXkoKSwgJmVycm9yQnVm
KSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5
cygiJXM6IENvdWxkbid0IGluaXRpYWxpemUgc2FuZGJveCBwcm9maWxlIFslc10sIGVycm9yICcl
cydcbiIsIGdldHByb2duYW1lKCksIHByb2ZpbGVQYXRoLmRhdGEoKSwgZXJyb3JCdWYpOwogICAg
ICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9IHNhbmRib3hQYXJhbWV0ZXJz
LmNvdW50KCk7IGkgIT0gY291bnQ7ICsraSkKICAgICAgICAgICAgICAgICAgICAgV1RGTG9nQWx3
YXlzKCIlcz0lc1xuIiwgc2FuZGJveFBhcmFtZXRlcnMubmFtZShpKSwgc2FuZGJveFBhcmFtZXRl
cnMudmFsdWUoaSkpOwpAQCAtOTUsMTAgKzk0LDkgQEAgdm9pZCBDaGlsZFByb2Nlc3M6OmluaXRp
YWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYK
ICAgICB9CiAgICAgY2FzZSBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzOjpVc2VTYW5k
Ym94UHJvZmlsZTogewogICAgICAgICBjaGFyKiBlcnJvckJ1ZjsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAgICAgaWYgKHNhbmRib3hfaW5pdF93aXRoX3BhcmFtZXRlcnMoc2FuZGJveFBh
cmFtZXRlcnMuc2FuZGJveFByb2ZpbGUoKS51dGY4KCkuZGF0YSgpLCAwLCBzYW5kYm94UGFyYW1l
dGVycy5uYW1lZFBhcmFtZXRlckFycmF5KCksICZlcnJvckJ1ZikpIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIlczogQ291bGRuJ3QgaW5pdGlhbGl6ZSBz
YW5kYm94IHByb2ZpbGUsIGVycm9yICclcydcbiIsIGdldHByb2duYW1lKCksIGVycm9yQnVmKTsK
ICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9IHNhbmRib3hQYXJhbWV0ZXJz
LmNvdW50KCk7IGkgIT0gY291bnQ7ICsraSkKICAgICAgICAgICAgICAgICBXVEZMb2dBbHdheXMo
IiVzPSVzXG4iLCBzYW5kYm94UGFyYW1ldGVycy5uYW1lKGkpLCBzYW5kYm94UGFyYW1ldGVycy52
YWx1ZShpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ2hpbGRQcm9j
ZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQpp
bmRleCAwNDM4NzI2OWJjNzRmOTc1MWE1MmRjYmJkMjA5YmY4YWU3MzNjM2VhLi4yMWUzYWQ0MzMz
ZDdjNmE4OThkNmY4OTgxNjI5MzYyNDY3NTYyNTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9DaGlsZFByb2Nlc3NNYWMubW0KQEAgLTUzNCwxMCArNTM0LDkgQEAgc3RhdGljIGJvb2wg
Y29tcGlsZUFuZEFwcGx5U2FuZGJveFNsb3dDYXNlKGNvbnN0IFN0cmluZyYgcHJvZmlsZU9yUHJv
ZmlsZVBhdGgsIGIKICAgICBjaGFyKiBlcnJvckJ1ZjsKICAgICBDU3RyaW5nIHRlbXAgPSBpc1By
b2ZpbGVQYXRoID8gRmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHByb2ZpbGVP
clByb2ZpbGVQYXRoKSA6IHByb2ZpbGVPclByb2ZpbGVQYXRoLnV0ZjgoKTsKICAgICB1aW50NjRf
dCBmbGFncyA9IGlzUHJvZmlsZVBhdGggPyBTQU5EQk9YX05BTUVEX0VYVEVSTkFMIDogMDsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChzYW5kYm94X2luaXRfd2l0aF9wYXJhbWV0ZXJzKHRl
bXAuZGF0YSgpLCBmbGFncywgcGFyYW1ldGVycy5uYW1lZFBhcmFtZXRlckFycmF5KCksICZlcnJv
ckJ1ZikpIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXM6IENvdWxk
IG5vdCBpbml0aWFsaXplIHNhbmRib3ggcHJvZmlsZSBbJXNdLCBlcnJvciAnJXMnXG4iLCBnZXRw
cm9nbmFtZSgpLCB0ZW1wLmRhdGEoKSwgZXJyb3JCdWYpOwogICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMCwgY291bnQgPSBwYXJhbWV0ZXJzLmNvdW50KCk7IGkgIT0gY291bnQ7ICsraSkKICAgICAg
ICAgICAgIFdURkxvZ0Fsd2F5cygiJXM9JXNcbiIsIHBhcmFtZXRlcnMubmFtZShpKSwgcGFyYW1l
dGVycy52YWx1ZShpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ29s
b3JTcGFjZURhdGEubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEu
bW0KaW5kZXggNjVmMmI1YTZkNzgzNjFmNmM0NTA1ZGNlOTE4NTY3YWMzMWFjODhhYy4uMzkxYzhk
ZGY1NDU2ZDQ0ZDEwMTJkMWZmOGIzY2NjMTQxMTFmNzIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9Db2xvclNwYWNlRGF0YS5tbQpAQCAtODMsMTAgKzgzLDkgQEAgYm9vbCBDb2xvclNw
YWNlRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgQ29sb3JTcGFjZURhdGEmIGNv
bG9yU3BhY2VEYXQKICAgICAgICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCBkYXRhKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAg
ICBjb2xvclNwYWNlRGF0YS5jZ0NvbG9yU3BhY2UgPSBhZG9wdENGKENHQ29sb3JTcGFjZUNyZWF0
ZVdpdGhJQ0NQcm9maWxlKGRhdGEuZ2V0KCkpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L1NhbmRib3hFeHRlbnNpb25NYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2FuZGJv
eEV4dGVuc2lvbk1hYy5tbQppbmRleCBjNTRlYzU0ZThlMDQyYTc5MmExOGMyOGViMzQzMmNhZTQ4
ZDgxM2ZjLi44OTYxODg0ZmNjNzJlYTk2MWJjYzEyYjM3MDEwODExZGY4ZjU1MGZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbQpAQCAtODUs
MTIgKzg1LDExIEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAg
ICAgICAgY2FzZSBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkT25seToKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNz
dWVfZmlsZShBUFBfU0FOREJPWF9SRUFELCBwYXRoLCAwKTsKICAgICAgICAgY2FzZSBTYW5kYm94
RXh0ZW5zaW9uOjpUeXBlOjpSZWFkV3JpdGU6CiAgICAgICAgICAgICByZXR1cm4gc2FuZGJveF9l
eHRlbnNpb25faXNzdWVfZmlsZShBUFBfU0FOREJPWF9SRUFEX1dSSVRFLCBwYXRoLCAwKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgICAgICBjYXNlIFNhbmRib3hFeHRlbnNpb246OlR5cGU6Okdl
bmVyaWM6CiAgICAgICAgICAgICByZXR1cm4gc2FuZGJveF9leHRlbnNpb25faXNzdWVfZ2VuZXJp
YyhwYXRoLCAwKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KaW5kZXggZDA3ZTcyZjcxNTcyMzk3MjVjNDg5MTk2YTczZWI1YTIx
NWJiZGJmNS4uZjQ3MTc3NDJmMjJmZjg3ZDc5ODJmM2FhM2M2ZDk2MmYyMjM2NjdiZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC00MDM3
LDEwICs0MDM3LDkgQEAgV0VCQ09SRV9DT01NQU5EKHlhbmtBbmRTZWxlY3QpCiAKIC0gKGlkKV93
ZWJfc3VwZXJBY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6KE5TU3RyaW5nICopYXR0cmlidXRl
CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICByZXR1cm4gW3N1cGVyIGFjY2Vzc2liaWxpdHlB
dHRyaWJ1dGVWYWx1ZTphdHRyaWJ1dGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAtICh2b2lkKV93ZWJf
c3VwZXJEb0NvbW1hbmRCeVNlbGVjdG9yOihTRUwpc2VsZWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24u
bW0KaW5kZXggMmQ4NTNjNzY5YjIwOGQzM2QyYWM4MmYzYzFiYmYyMDQ5Y2FjMGE1Mi4uMzFmMmE5
MzZkOWFmOTFmOWUwYmZiOTY2ZWEwYmZhZGZjOTk4OTA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24u
bW0KQEAgLTQ5OCw4ICs0OTgsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKmRlZmF1bHRBcHBsaWNhdGlv
bk5hbWVGb3JVc2VyQWdlbnQoKQogICAgIHJldHVybiBoYW5kbGVyID8gc3RhdGljX2Nhc3Q8V2Vi
S2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EqPihoYW5kbGVyLmdldCgpKS0+YXBpSGFuZGxl
cigpIDogbmlsOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiAtIChfV0tXZWJzaXRlRGF0YVN0b3Jl
ICopX3dlYnNpdGVEYXRhU3RvcmUKIHsKQEAgLTUxMSw3ICs1MTAsNyBAQCBzdGF0aWMgTlNTdHJp
bmcgKmRlZmF1bHRBcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQoKQogICAgIHNlbGYud2Vic2l0
ZURhdGFTdG9yZSA9IHdlYnNpdGVEYXRhU3RvcmUgPyB3ZWJzaXRlRGF0YVN0b3JlLT5fZGF0YVN0
b3JlLmdldCgpIDogbnVsbHB0cjsKIH0KIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICNpZiBQTEFURk9STShJT1MpCiAt
IChXS1dlYlZpZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeSAqKV9jb250ZW50UHJvdmlkZXJSZWdp
c3RyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dl
YnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2Vic2l0ZURhdGFTdG9yZS5tbQppbmRleCBkNTYyMWIwMDRlNWQwNzcyODFmZDUwZjk0OWJmZmEy
YmNlM2U3ODI0Li5iYTRiZjNhMWZkNmFmYmQ5YzJhYjgxZDVjYmRkYmRjMWUzMGE1ODM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0
ZURhdGFTdG9yZS5tbQpAQCAtNDAsOCArNDAsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50
ZWdlciwgX1dLV2Vic2l0ZURhdGFUeXBlcykgewogICAgIF9XS1dlYnNpdGVEYXRhVHlwZVdlYlNR
TERhdGFiYXNlcyA9IDEgPDwgNSwKIH07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIEBpbXBsZW1lbnRh
dGlvbiBfV0tXZWJzaXRlRGF0YVN0b3JlCiAKQEAgLTEwNyw2ICsxMDYsNiBAQCBzdGF0aWMgUmV0
YWluUHRyPE5TU2V0PiB0b1dLV2Vic2l0ZURhdGFUeXBlcyhfV0tXZWJzaXRlRGF0YVR5cGVzIHdl
YnNpdGVEYXRhVHlwZQogCiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggNWFjNDZj
Y2VlZDg5NTI5NzVjOTIyMWE3YmQ1ODJiMTkwM2U3NDVmZC4uNjY2YjEwMTFjZTViNzAyOWYwNTA5
ODRmZjgxZDI4Njk2OTlmNWQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTIwODQsOCArMjA4NCw3IEBAIHZvaWQgd2Vi
a2l0V2ViVmlld1J1bkFzTW9kYWwoV2ViS2l0V2ViVmlldyogd2ViVmlldykKIAogI2lmIFBMQVRG
T1JNKEdUSykKIC8vIFRoaXMgaXMgdG8gc3VwcHJlc3Mgd2FybmluZ3MgYWJvdXQgZ2RrX3RocmVh
ZHNfbGVhdmUgYW5kIGdka190aHJlYWRzX2VudGVyLgotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBnZGtf
dGhyZWFkc19sZWF2ZSgpOwogI2VuZGlmCiAKQEAgLTIwOTMsNyArMjA5Miw3IEBAIHZvaWQgd2Vi
a2l0V2ViVmlld1J1bkFzTW9kYWwoV2ViS2l0V2ViVmlldyogd2ViVmlldykKIAogI2lmIFBMQVRG
T1JNKEdUSykKICAgICBnZGtfdGhyZWFkc19lbnRlcigpOwotI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICNlbmRpZgogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGZlOGQ5Y2E1
ZjRjNWVhYzYxZDNjMTBkNjBiOWU5NDg2NmEyZTBiZjUuLjdkYTBjN2VhYWQ4MWU2NzQyMGM3ZDdi
MzE1MWVmYzFjMTA0YmExMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3Lm1tCkBAIC05NzUsMTAgKzk3NSw5IEBAIFNvbWUgb3RoZXIgZWRpdGluZy1yZWxhdGVkIG1l
dGhvZHMgc3RpbGwgdW5pbXBsZW1lbnRlZDoKIAogLSAoaWQpX3dlYl9zdXBlckFjY2Vzc2liaWxp
dHlBdHRyaWJ1dGVWYWx1ZTooTlNTdHJpbmcgKilhdHRyaWJ1dGUKIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIHJldHVybiBbc3VwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOmF0dHJp
YnV0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKHZvaWQpX3dlYl9zdXBlckRvQ29tbWFuZEJ5U2Vs
ZWN0b3I6KFNFTClzZWxlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvRG93bmxvYWRDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9E
b3dubG9hZENsaWVudC5tbQppbmRleCAwZWIxY2Y2NDAzMjg2ODYxYWE0Mjc0ZGZjNzQ0ODQzZjBi
ZDAwYTZhLi43MjQzNDQ4N2Q0MjFjYmUxZjliYTJlYTZjYmFjZDE4ZDMyODg1NWVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZENsaWVudC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZENsaWVudC5tbQpAQCAtMjAy
LDEwICsyMDIsOSBAQCB2b2lkIERvd25sb2FkQ2xpZW50OjpkZWNpZGVEZXN0aW5hdGlvbldpdGhT
dWdnZXN0ZWRGaWxlbmFtZShXZWJQcm9jZXNzUG9vbCYsIERvdwogCiAgICAgaWYgKG1fZGVsZWdh
dGVNZXRob2RzLmRvd25sb2FkRGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWVB
bGxvd092ZXJ3cml0ZSkgewogICAgICAgICBCT09MIGFsbG93T3ZlcndyaXRlID0gTk87Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIE5TU3RyaW5nICpkZXN0aW5hdGlvbiA9IFttX2Rl
bGVnYXRlIF9kb3dubG9hZDp3cmFwcGVyKGRvd25sb2FkUHJveHkpIGRlY2lkZURlc3RpbmF0aW9u
V2l0aFN1Z2dlc3RlZEZpbGVuYW1lOmZpbGVuYW1lIGFsbG93T3ZlcndyaXRlOiZhbGxvd092ZXJ3
cml0ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihhbGxvd092
ZXJ3cml0ZSA/IEFsbG93T3ZlcndyaXRlOjpZZXMgOiBBbGxvd092ZXJ3cml0ZTo6Tm8sIGRlc3Rp
bmF0aW9uKTsKICAgICB9IGVsc2UgewogICAgICAgICBbbV9kZWxlZ2F0ZSBfZG93bmxvYWQ6d3Jh
cHBlcihkb3dubG9hZFByb3h5KSBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFt
ZTpmaWxlbmFtZSBjb21wbGV0aW9uSGFuZGxlcjpCbG9ja1B0cjx2b2lkKEJPT0wsIE5TU3RyaW5n
ICopPjo6ZnJvbUNhbGxhYmxlKFtjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tl
cjo6Y3JlYXRlKG1fZGVsZWdhdGUuZ2V0KCkuZ2V0KCksIEBzZWxlY3RvcihfZG93bmxvYWQ6ZGVj
aWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWU6Y29tcGxldGlvbkhhbmRsZXI6KSks
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChCT09MIGFs
bG93T3ZlcndyaXRlLCBOU1N0cmluZyAqZGVzdGluYXRpb24pIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVu
dC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVByb3RvY29s
TWFuYWdlckNsaWVudC5tbQppbmRleCAxOWE1OWI0MmNhYjdiNTQ3ZWQ5NDQ2MGU3MmZjMDM5NmNm
ZTc5Mjg3Li42YzEyNTM5NjU1MDdlNWM5NTJjYzI3ODMxMmUwMGQ4YzM1NDQ3MTgzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2NvbE1h
bmFnZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTGVnYWN5
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50Lm1tCkBAIC01NiwxMiArNTYsMTEgQEAKICAgICBf
Y3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkgPSBjdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTsK
ICAgICBfY3VzdG9tUHJvdG9jb2xJRCA9IGN1c3RvbVByb3RvY29sSUQ7CiAgICAgX3N0b3JhZ2VQ
b2xpY3kgPSBOU1VSTENhY2hlU3RvcmFnZU5vdEFsbG93ZWQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBfdXJsQ29ubmVjdGlvbiA9IFtbTlNVUkxDb25uZWN0aW9uIGFsbG9jXSBpbml0V2l0aFJl
cXVlc3Q6cmVxdWVzdCBkZWxlZ2F0ZTpzZWxmIHN0YXJ0SW1tZWRpYXRlbHk6Tk9dOwogICAgIFtf
dXJsQ29ubmVjdGlvbiBzY2hlZHVsZUluUnVuTG9vcDpbTlNSdW5Mb29wIG1haW5SdW5Mb29wXSBm
b3JNb2RlOk5TUnVuTG9vcENvbW1vbk1vZGVzXTsKICAgICBbX3VybENvbm5lY3Rpb24gc3RhcnRd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogCiAgICAgcmV0dXJuIHNlbGY7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KaW5kZXggZGE2MTA2MTczZDFkNTlm
ZTc0Zjg4ZDkyODQ4Y2Q3NmExMWU4NGEyMS4uNzNjNDZjNWU4ZDhhYWViNjhhMjBiZjE0OWJhYjIw
ZmViNjc0MzQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2
aWdhdGlvblN0YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmln
YXRpb25TdGF0ZS5tbQpAQCAtNTc1LDEwICs1NzUsOSBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6
TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdl
UAogICAgICAgICBpZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRo
b2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uVXNlckluZm9EZWNpc2lv
bkhhbmRsZXJXZWJzaXRlUG9saWNpZXMpCiAgICAgICAgICAgICBbKGlkIDxXS05hdmlnYXRpb25E
ZWxlZ2F0ZVByaXZhdGU+KW5hdmlnYXRpb25EZWxlZ2F0ZSBfd2ViVmlldzptX25hdmlnYXRpb25T
dGF0ZS5tX3dlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp3cmFwcGVyKG5h
dmlnYXRpb25BY3Rpb24pIHVzZXJJbmZvOnVzZXJJbmZvID8gc3RhdGljX2Nhc3Q8aWQgPE5TU2Vj
dXJlQ29kaW5nPj4odXNlckluZm8tPndyYXBwZXIoKSkgOiBuaWwgZGVjaXNpb25IYW5kbGVyOmRl
Y2lzaW9uSGFuZGxlci5nZXQoKV07CiAgICAgICAgIGVsc2UgewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICAgICAgICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4p
bmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndyYXBwZXIobmF2aWdhdGlvbkFjdGlvbikg
ZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8gZGVjaXNpb25IYW5kbGVy
V2l0aG91dFBvbGljaWVzID0gW2RlY2lzaW9uSGFuZGxlcldpdGhQb2xpY2llcyA9IFdURk1vdmUo
ZGVjaXNpb25IYW5kbGVyV2l0aFBvbGljaWVzKV0gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBh
Y3Rpb25Qb2xpY3kpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUubW0KaW5kZXggZjBiOWQzMDAwYTllNjU0NWFkYjBiMTI0NTMxZjU3MGU0ODIyNTli
NC4uM2VjZTgyMGVkNGIzMTY0MzY5M2Y1MjI0N2VkYWQ5YzY4YjgxZmY2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0yMDMsMTMgKzIwMywxMiBA
QCB2b2lkIFVJRGVsZWdhdGU6OkNvbnRleHRNZW51Q2xpZW50OjptZW51RnJvbVByb3Bvc2VkTWVu
dShXZWJQYWdlUHJveHkmLCBOU01lbnUgKgogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3Q29udGV4dE1lbnVGb3JFbGVtZW50KQogICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIoWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91
aURlbGVnYXRlLm1fd2ViVmlldyBjb250ZXh0TWVudTptZW51IGZvckVsZW1lbnQ6Y29udGV4dE1l
bnVFbGVtZW50SW5mby5nZXQoKV0pOwogCiAgICAgY29tcGxldGlvbkhhbmRsZXIoWyhpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmll
dyBjb250ZXh0TWVudTptZW51IGZvckVsZW1lbnQ6Y29udGV4dE1lbnVFbGVtZW50SW5mby5nZXQo
KSB1c2VySW5mbzp1c2VySW5mbyA/IHN0YXRpY19jYXN0PGlkIDxOU1NlY3VyZUNvZGluZz4+KHVz
ZXJJbmZvLT53cmFwcGVyKCkpIDogbmlsXSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0KaW5kZXggZDE2ZjU4NTJkZGY4NGE0ZDU5MmI5ZjMzZTc4ZWIzMmRhOTIwYjEwMy4uNGU1YWUz
MTczYTk1MWNmZjM5MGExOTc2MTEwZjQwZWI0YjE5MmMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC0xNjYsMTEg
KzE2NiwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybVJlc29sdmVQYXRoc0ZvclNh
bmRib3hFeHRlbnNpb25zKCkKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsK
ICNpZiBQTEFURk9STShNQUMpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBBU1NFUlQoaGFzUHJv
Y2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5Db21tdW5pY2F0ZVdpdGhXaW5kb3dT
ZXJ2ZXIpKTsKICAgICBwYXJhbWV0ZXJzLmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZh
Y2VFbmFibGVkID0gW1tOU0FwcCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWEVuaGFu
Y2VkVXNlckludGVyZmFjZSJdIGJvb2xWYWx1ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAjZWxzZQogICAgIHBh
cmFtZXRlcnMuYWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQgPSBmYWxz
ZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bQppbmRleCA5YmI4MDVlMGQ2ZGQ2MWNmM2I1MDI3ZGRjYWU4YjdkNGFjYjBhYTMzLi42MTYxMTBj
ZmQwZWUxYjgzMDJlNmRjOTcwZjNhZDNlNTA3NzA5NGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtNTU4LDE1ICs1NTgsMTQgQEAgc3RhdGlj
IGNvbnN0IE5TVUludGVnZXIgb3JkZXJlZExpc3RTZWdtZW50ID0gMjsKICAgICBbaW5zZXJ0TGlz
dENvbnRyb2wgc2V0V2lkdGg6bGlzdENvbnRyb2xTZWdtZW50V2lkdGggZm9yU2VnbWVudDpvcmRl
cmVkTGlzdFNlZ21lbnRdOwogICAgIGluc2VydExpc3RDb250cm9sLmZvbnQgPSBbTlNGb250IHN5
c3RlbUZvbnRPZlNpemU6MTVdOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZCBzZWdtZW50
RWxlbWVudCA9IE5TQWNjZXNzaWJpbGl0eVVuaWdub3JlZERlc2NlbmRhbnQoaW5zZXJ0TGlzdENv
bnRyb2wpOwogICAgIE5TQXJyYXkgKnNlZ21lbnRzID0gW3NlZ21lbnRFbGVtZW50IGFjY2Vzc2li
aWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZV07CiAg
ICAgQVNTRVJUKHNlZ21lbnRzLmNvdW50ID09IDMpOwogICAgIFtzZWdtZW50c1tub0xpc3RTZWdt
ZW50XSBhY2Nlc3NpYmlsaXR5U2V0T3ZlcnJpZGVWYWx1ZTpXZWJDb3JlOjppbnNlcnRMaXN0VHlw
ZU5vbmUoKSBmb3JBdHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25BdHRyaWJ1dGVd
OwogICAgIFtzZWdtZW50c1t1bm9yZGVyZWRMaXN0U2VnbWVudF0gYWNjZXNzaWJpbGl0eVNldE92
ZXJyaWRlVmFsdWU6V2ViQ29yZTo6aW5zZXJ0TGlzdFR5cGVCdWxsZXRlZEFjY2Vzc2liaWxpdHlU
aXRsZSgpIGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0ZV07
CiAgICAgW3NlZ21lbnRzW29yZGVyZWRMaXN0U2VnbWVudF0gYWNjZXNzaWJpbGl0eVNldE92ZXJy
aWRlVmFsdWU6V2ViQ29yZTo6aW5zZXJ0TGlzdFR5cGVOdW1iZXJlZEFjY2Vzc2liaWxpdHlUaXRs
ZSgpIGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0ZV07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAKICAgICBzZWxmLnZpZXcgPSBpbnNlcnRMaXN0Q29udHJvbDsKIApAQCAtMTY1
NSwxMSArMTY1NCwxMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVXaW5kb3dBbmRWaWV3RnJh
bWVzKCkKICAgICAgICAgaWYgKHdlYWtUaGlzLT5tX25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29y
ZGluYXRlcykKICAgICAgICAgICAgIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMgPSBbd2Vh
a1RoaXMtPm1fdmlldyBjb252ZXJ0UmVjdDpbd2Vha1RoaXMtPm1fdmlldyBmcmFtZV0gdG9WaWV3
Om5pbF07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGlmIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICAgICAgYWNj
ZXNzaWJpbGl0eVBvc2l0aW9uID0gW1t3ZWFrVGhpcy0+bV92aWV3IGFjY2Vzc2liaWxpdHlBdHRy
aWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlQb3NpdGlvbkF0dHJpYnV0ZV0gcG9pbnRWYWx1ZV07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgCiAgICAgICAgIHdlYWtUaGlzLT5tX3BhZ2Ut
PndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMs
IGFjY2Vzc2liaWxpdHlQb3NpdGlvbik7CiAgICAgfSk7CkBAIC0zNzg2LDEwICszNzg0LDkgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6ZHJhZ2dlZEltYWdlKE5TSW1hZ2UgKiwgQ0dQb2ludCBlbmRQb2lu
dCwgTlNEcmFnT3BlcmF0aW9uIG9wZXIKIAogdm9pZCBXZWJWaWV3SW1wbDo6c2VuZERyYWdFbmRU
b1BhZ2UoQ0dQb2ludCBlbmRQb2ludCwgTlNEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbikKIHsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIE5TUG9pbnQgd2luZG93SW1hZ2VMb2MgPSBbW21fdmlldyB3
aW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6TlNQb2ludEZyb21DR1BvaW50KGVuZFBvaW50KV07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAgICAgTlNQb2ludCB3aW5kb3dNb3VzZUxvYyA9IHdpbmRvd0ltYWdlTG9j
OwogCiAgICAgLy8gUHJldmVudCBxdWV1ZWQgbW91c2VEcmFnZ2VkIGV2ZW50cyBmcm9tIGNvbWlu
ZyBhZnRlciB0aGUgZHJhZyBhbmQgZmFrZSBtb3VzZVVwIGV2ZW50LgpAQCAtNDA2NywxMCArNDA2
NCw5IEBAIHZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0RHJhZyhjb25zdCBXZWJDb3JlOjpEcmFnSXRl
bSYgaXRlbSwgY29uc3QgU2hhcmVhYmxlQml0bWFwCiAgICAgLy8gVGhlIGNhbGwgYmVsb3cgY291
bGQgcmVsZWFzZSB0aGUgdmlldy4KICAgICBhdXRvIHByb3RlY3RvciA9IG1fdmlldy5nZXQoKTsK
ICAgICBhdXRvIGNsaWVudERyYWdMb2NhdGlvbiA9IGl0ZW0uZHJhZ0xvY2F0aW9uSW5XaW5kb3dD
b29yZGluYXRlczsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TUGFzdGVib2FyZCAqcGFzdGVi
b2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhOYW1lOk5TRHJhZ1Bib2FyZF07Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAKICAgICBpZiAoYXV0byYgaW5mbyA9IGl0ZW0ucHJvbWlzZWRBdHRhY2htZW50
SW5mbykgewogICAgICAgICBOU1N0cmluZyAqdXRpVHlwZSA9IGluZm8uY29udGVudFR5cGU7CkBA
IC00MDk5LDEwICs0MDk1LDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c3RhcnREcmFnKGNvbnN0IFdl
YkNvcmU6OkRyYWdJdGVtJiBpdGVtLCBjb25zdCBTaGFyZWFibGVCaXRtYXAKICAgICB9CiAKICAg
ICBbcGFzdGVib2FyZCBzZXRTdHJpbmc6QCIiIGZvclR5cGU6UGFzdGVib2FyZFR5cGVzOjpXZWJE
dW1teVBib2FyZFR5cGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW21fdmlldyBkcmFnSW1h
Z2U6ZHJhZ05TSW1hZ2UuZ2V0KCkgYXQ6TlNQb2ludEZyb21DR1BvaW50KGNsaWVudERyYWdMb2Nh
dGlvbikgb2Zmc2V0Ok5TWmVyb1NpemUgZXZlbnQ6bV9sYXN0TW91c2VEb3duRXZlbnQuZ2V0KCkg
cGFzdGVib2FyZDpwYXN0ZWJvYXJkIHNvdXJjZTptX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgc2xp
ZGVCYWNrOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgbV9wYWdlLT5kaWRTdGFydERyYWcoKTsKIH0K
IApAQCAtNDg0OCwxMSArNDg0MywxMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpjaGFyYWN0ZXJJbmRl
eEZvclBvaW50KE5TUG9pbnQgcG9pbnQsIHZvaWQoXmNvbXBsZXRpb25IYW5kbGVyUAogCiAgICAg
TlNXaW5kb3cgKndpbmRvdyA9IFttX3ZpZXcgd2luZG93XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgaWYgKHdpbmRvdykKICAgICAgICAgcG9pbnQgPSBbd2luZG93IGNvbnZlcnRTY3JlZW5U
b0Jhc2U6cG9pbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIHBvaW50ID0gW21fdmlldyBjb252ZXJ0UG9p
bnQ6cG9pbnQgZnJvbVZpZXc6bmlsXTsgIC8vIHRoZSBwb2ludCBpcyByZWxhdGl2ZSB0byB0aGUg
bWFpbiBmcmFtZQogCiAgICAgbV9wYWdlLT5jaGFyYWN0ZXJJbmRleEZvclBvaW50QXN5bmMoV2Vi
Q29yZTo6SW50UG9pbnQocG9pbnQpLCBbY29tcGxldGlvbkhhbmRsZXJdKHVpbnQ2NF90IHJlc3Vs
dCwgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlN
YWMubW0KaW5kZXggZDQzNWUxZjM0MGNiZTI0YzdlZGE5Yjc0YTI3MmIyNGZkZDMxM2RkZC4uZWY4
NjM4NTM2MzEzZGZkNGQ0ODc1OTJkMDY4MGJmZTk5YzExZDVkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94
eU1hYy5tbQpAQCAtOTQsMTAgKzk0LDkgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OnBsYXRm
b3JtSW5pdGlhbGl6ZVBsdWdpblByb2Nlc3MoUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGEKIGJvb2wg
UGx1Z2luUHJvY2Vzc1Byb3h5OjpnZXRQbHVnaW5Qcm9jZXNzU2VyaWFsTnVtYmVyKFByb2Nlc3NT
ZXJpYWxOdW1iZXImIHBsdWdpblByb2Nlc3NTZXJpYWxOdW1iZXIpCiB7CiAgICAgcGlkX3QgcGx1
Z2luUHJvY2Vzc1BJRCA9IHByb2Nlc3NJZGVudGlmaWVyKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICByZXR1cm4gR2V0UHJvY2Vzc0ZvclBJRChwbHVnaW5Qcm9jZXNzUElELCAmcGx1Z2luUHJv
Y2Vzc1NlcmlhbE51bWJlcikgPT0gbm9FcnI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHZvaWQgUGx1Z2lu
UHJvY2Vzc1Byb3h5OjptYWtlUGx1Z2luUHJvY2Vzc1RoZUZyb250UHJvY2VzcygpCkBAIC0xMDYs
MjAgKzEwNSwxOCBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6bWFrZVBsdWdpblByb2Nlc3NU
aGVGcm9udFByb2Nlc3MoKQogICAgIGlmICghZ2V0UGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJlcihw
bHVnaW5Qcm9jZXNzU2VyaWFsTnVtYmVyKSkKICAgICAgICAgcmV0dXJuOwogCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICBTZXRGcm9udFByb2Nlc3MoJnBsdWdpblByb2Nlc3NTZXJpYWxOdW1iZXIp
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogfQogCiB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6bWFrZVVJUHJvY2Vz
c1RoZUZyb250UHJvY2VzcygpCiB7CiAgICAgUHJvY2Vzc1NlcmlhbE51bWJlciBwcm9jZXNzU2Vy
aWFsTnVtYmVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgR2V0Q3VycmVudFByb2Nlc3MoJnBy
b2Nlc3NTZXJpYWxOdW1iZXIpOwogICAgIFNldEZyb250UHJvY2VzcygmcHJvY2Vzc1NlcmlhbE51
bWJlcik7ICAgICAgICAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzc1By
b3h5OjpzZXRGdWxsc2NyZWVuV2luZG93SXNTaG93aW5nKGJvb2wgZnVsbHNjcmVlbldpbmRvd0lz
U2hvd2luZykKQEAgLTE1MiwxMCArMTQ5LDkgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmV4
aXRGdWxsc2NyZWVuKCkKIHsKICAgICAvLyBJZiB0aGUgcGx1Zy1pbiBob3N0IGlzIHRoZSBjdXJy
ZW50IGFwcGxpY2F0aW9uIHRoZW4gd2Ugc2hvdWxkIGJyaW5nIG91cnNlbHZlcyB0byB0aGUgZnJv
bnQgd2hlbiBpdCBleGl0cyBmdWxsLXNjcmVlbiBtb2RlLgogICAgIFByb2Nlc3NTZXJpYWxOdW1i
ZXIgZnJvbnRQcm9jZXNzU2VyaWFsTnVtYmVyOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgR2V0
RnJvbnRQcm9jZXNzKCZmcm9udFByb2Nlc3NTZXJpYWxOdW1iZXIpOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAg
ICAgLy8gVGhlIFVJIHByb2Nlc3MgbXVzdCBiZSB0aGUgZnJvbnQgcHJvY2VzcyBpbiBvcmRlciB0
byBjaGFuZ2UgdGhlIHByZXNlbnRhdGlvbiBtb2RlLgogICAgIG1ha2VVSVByb2Nlc3NUaGVGcm9u
dFByb2Nlc3MoKTsKQEAgLTE2OCwxNSArMTY0LDEzIEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5
OjpleGl0RnVsbHNjcmVlbigpCiAgICAgLy8gSWYgdGhlIHBsdWctaW4gcHJvY2VzcyB3YXMgbm90
IHRoZSBmcm9udCBwcm9jZXNzLCBzd2l0Y2ggYmFjayB0byB0aGUgcHJldmlvdXMgZnJvbnQgcHJv
Y2Vzcy4KICAgICAvLyAoT3RoZXJ3aXNlIHdlJ2xsIGtlZXAgdGhlIFVJIHByb2Nlc3MgYXMgdGhl
IGZyb250IHByb2Nlc3MpLgogICAgIEJvb2xlYW4gaXNQbHVnaW5Qcm9jZXNzRnJvbnRQcm9jZXNz
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgU2FtZVByb2Nlc3MoJmZyb250UHJvY2Vzc1Nlcmlh
bE51bWJlciwgJnBsdWdpblByb2Nlc3NTZXJpYWxOdW1iZXIsICZpc1BsdWdpblByb2Nlc3NGcm9u
dFByb2Nlc3MpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgIGlmICghaXNQbHVnaW5Qcm9jZXNzRnJvbnRQcm9j
ZXNzKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFNldEZyb250UHJvY2Vzcygm
ZnJvbnRQcm9jZXNzU2VyaWFsTnVtYmVyKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9u
Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9TbWFydE1hZ25pZmlj
YXRpb25Db250cm9sbGVyLm1tCmluZGV4IGIzNjJkNTdiOWM0M2E4NWYzNjZlMzNiNmE3ZDQ5Mjk5
ZjZhOWQ0ZjMuLjIzNWFhNWI5NzJiZjIxOTVlM2E2MTAyZTJlN2FkZTM4NGZhM2Q4ODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9TbWFydE1hZ25pZmljYXRpb25Db250
cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9TbWFydE1hZ25pZmlj
YXRpb25Db250cm9sbGVyLm1tCkBAIC0zNywxMiArMzcsMTEgQEAKICNpbXBvcnQgIldlYlBhZ2VQ
cm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAK
ICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiBzdGF0aWMgY29uc3QgZmxvYXQgc21h
cnRNYWduaWZpY2F0aW9uUGFuU2Nyb2xsVGhyZXNob2xkWm9vbWVkT3V0ID0gNjA7CiBzdGF0aWMg
Y29uc3QgZmxvYXQgc21hcnRNYWduaWZpY2F0aW9uUGFuU2Nyb2xsVGhyZXNob2xkSVBob25lID0g
MTAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRp
b25Qcm92aWRlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0
aW9uUHJvdmlkZXJJT1MubW0KaW5kZXggODhkOTM5NzcxMzAwZmMwOWFjNTE4NmFkZjEzMTMwMjg0
MTA3ZDAxNC4uYmRjYzU3MTBmYzdmNDk2NWYzYzk4ZGUxNzE2MTM1OWZhNzM1NzU4MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3Zp
ZGVySU9TLm1tCkBAIC01Myw4ICs1Myw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViR2VvbG9jYXRp
b25Db3JlTG9jYXRpb25Qcm92aWRlci5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkFsbG93RGVueVBv
bGljeUxpc3RlbmVyLmg+CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKIEBpbnRlcmZhY2UgV0tHZW9sb2Nh
dGlvblByb3ZpZGVySU9TIChfV0tHZW9sb2NhdGlvbkNvcmVMb2NhdGlvbkxpc3RlbmVyKSA8X1dL
R2VvbG9jYXRpb25Db3JlTG9jYXRpb25MaXN0ZW5lcj4KIEBlbmQKQEAgLTM1NCw2ICszNTMsNiBA
QCBzdGF0aWMgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koV0tHZW9sb2NhdGlvbk1hbmFnZXJS
ZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCBibwogfQogQGVuZAogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogI2VuZGlmIC8v
IFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0xlZ2FjeVBERlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tMZWdhY3lQ
REZWaWV3Lm1tCmluZGV4IDBiNWQ5ZDZjNjQ2YjQyODJjMGZjYjczZTFjYmZkMGNhMzRmMzVhYTYu
LmQzOGYzMWM4MTVmM2M5ZjNlOThkYTUyZTU0ZmI4ODg4NGVkMGE0MzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0xlZ2FjeVBERlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTGVnYWN5UERGVmlldy5tbQpAQCAtNTEsOCArNTEsNyBA
QAogCiAvLyBBbGwgb2YgVUlQREZQYWdlKiBhcmUgZGVwcmVjYXRlZCwgc28ganVzdCBpZ25vcmUg
ZGVwcmVjYXRlZCBkZWNsYXJhdGlvbnMKIC8vIGluIHRoaXMgZmlsZSB1bnRpbCB3ZSBzd2l0Y2gg
b2ZmIHRoZW0uCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiBjb25zdCBDR0Zsb2F0IHBkZlBhZ2VNYXJnaW4g
PSA4OwogY29uc3QgQ0dGbG9hdCBwZGZNaW5pbXVtWm9vbVNjYWxlID0gMTsKQEAgLTg1Nyw2ICs4
NTYsNiBAQCBzdGF0aWMgTlNTdHJpbmdDb21wYXJlT3B0aW9ucyBzdHJpbmdDb21wYXJlT3B0aW9u
cyhfV0tGaW5kT3B0aW9ucyBvcHRpb25zKQogCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPU01BQykK
IAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAKICNlbmRpZiAvLyBFTkFCTEUoV0tMRUdBQ1lQREZWSUVXKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERGUGFnZU51bWJlckluZGljYXRvci5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3Iu
bW0KaW5kZXggOTc5YjMwZDM4MTRiMTMwNmMwYWFiMTk1NmVjMzdhM2RhNjYwNjM4Yi4uODE5YWZi
NzBmMzUyODYxODdjODRiOGQ4ZDc5M2Q0NDgyZjQ2NzI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLUERGUGFnZU51bWJlckluZGljYXRvci5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLm1tCkBAIC0x
ODMsMTAgKzE4Myw5IEBAIGNvbnN0IE5TVGltZUludGVydmFsIGluZGljYXRvck1vdmVEdXJhdGlv
biA9IDAuMzsKICAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNvbnRleHQpOwogICAgIENHQ29udGV4
dEFkZFJlY3QoY29udGV4dCwgY29ybmVySW1hZ2VCb3VuZHMpOwogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICBVSUJlemllclBhdGggKmNvcm5lclBhdGggPSBbVUlCZXppZXJQYXRoIGJlemllclBh
dGhXaXRoUm91bmRlZFJlY3Q6Y29ybmVySW1hZ2VCb3VuZHMgYnlSb3VuZGluZ0Nvcm5lcnM6KFVJ
UmVjdENvcm5lcilVSUFsbENvcm5lcnMgY29ybmVyUmFkaWk6Q0dTaXplTWFrZShpbmRpY2F0b3JD
b3JuZXJSYWRpdXMsIGluZGljYXRvckNvcm5lclJhZGl1cyldOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIENH
Q29udGV4dEFkZFBhdGgoY29udGV4dCwgW2Nvcm5lclBhdGggQ0dQYXRoXSk7CiAgICAgQ0dDb250
ZXh0RU9DbGlwKGNvbnRleHQpOwogICAgIENHQ29udGV4dEZpbGxSZWN0KGNvbnRleHQsIGNvcm5l
ckltYWdlQm91bmRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1tCmluZGV4IDcwNGRi
ZTdmNzYyNGYxY2Y3ZmUxZTA4ZTlkYTE0MDMzMTdhOTY5YmUuLjlkZGI5MTE3MzA0MGQxYWIxOTll
ZTQ5YWNjZjU3N2QzMzMwMjRmZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbQpA
QCAtMzE5LDEwICszMTksOSBAQCB2b2lkIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklP
Uzo6ZGlkU2VsZWN0T3B0aW9uKGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRPcAogICAgIFtfc3VnZ2Vz
dGlvbnNWaWV3Q29udHJvbGxlciByZWxvYWREYXRhXTsKICAgICBbW3NlbGYudmlldyBfZm9ybUlu
cHV0U2Vzc2lvbl0gc2V0U3VnZ2VzdGlvbnM6W3NlbGYgdGV4dFN1Z2dlc3Rpb25zXV07CiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgW19wb3BvdmVyIHNldFBvcG92ZXJDb250cm9sbGVyOltbW1VJUG9w
b3ZlckNvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoQ29udGVudFZpZXdDb250cm9sbGVyOl9zdWdn
ZXN0aW9uc1ZpZXdDb250cm9sbGVyLmdldCgpXSBhdXRvcmVsZWFzZV1dOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAg
ICBbX3BvcG92ZXIgcHJlc2VudFBvcG92ZXJBbmltYXRlZDpOT107CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tBaXJQbGF5Um91dGVQaWNrZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tBaXJQbGF5Um91dGVQaWNrZXIu
bW0KaW5kZXggNzRiZDIzMmQ2MjJlZTgxZTA3YmY0NDllMzA4N2EyNTk3ZmM3MjhmYy4uY2MzYThl
ZDU5NjZhMmQwMDM5NjZmYzBiMDA4YzA1N2U4OWJjMGU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLQWlyUGxheVJvdXRlUGlja2VyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0FpclBsYXlSb3V0ZVBpY2tlci5tbQpA
QCAtMzksOCArMzksNyBAQAogI2ltcG9ydCAiV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgiCiAj
aW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogU09GVF9MSU5LX0ZS
QU1FV09SSyhNZWRpYVBsYXllcikKIFNPRlRfTElOS19DTEFTUyhNZWRpYVBsYXllciwgTVBBVlJv
dXRpbmdDb250cm9sbGVyKQpAQCAtMTYwLDcgKzE1OSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiAKIEBlbmQKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICNlbHNlIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0KaW5kZXggODJkNmYy
YTBmNWE5MGYwZDRmOTViYjRmZmJiM2ZlOGMxYmJkODY3OS4uYjljMWZhZWY0YzA2NzUzMThhMjVk
OGYxMzQ3MThjNmQ1YjJmZDAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQpAQCAtNDYsOCArNDYsNyBAQAogCiB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiBzdGF0aWMgaW5saW5l
IFVJSW1hZ2VQaWNrZXJDb250cm9sbGVyQ2FtZXJhRGV2aWNlIGNhbWVyYURldmljZUZvck1lZGlh
Q2FwdHVyZVR5cGUoV2ViQ29yZTo6TWVkaWFDYXB0dXJlVHlwZSBtZWRpYUNhcHR1cmVUeXBlKQog
ewpAQCAtMTYwLDEwICsxNTksOSBAQCBzdGF0aWMgaW5saW5lIFVJSW1hZ2UgKmNhbWVyYUljb24o
KQogICAgIEJPT0wgX3VzaW5nQ2FtZXJhOwogICAgIFJldGFpblB0cjxVSUltYWdlUGlja2VyQ29u
dHJvbGxlcj4gX2ltYWdlUGlja2VyOwogICAgIFJldGFpblB0cjxVSVZpZXdDb250cm9sbGVyPiBf
cHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXI7IC8vIGlQaG9uZSBhbHdheXMuIGlQYWQgZm9yIEZ1
bGxzY3JlZW4gQ2FtZXJhLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgUmV0YWluUHRyPFVJUG9w
b3ZlckNvbnRyb2xsZXI+IF9wcmVzZW50YXRpb25Qb3BvdmVyOyAvLyBpUGFkIGZvciBhY3Rpb24g
c2hlZXQgYW5kIFBob3RvIExpYnJhcnkuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgUmV0YWluUHRyPFVJRG9j
dW1lbnRNZW51Vmlld0NvbnRyb2xsZXI+IF9kb2N1bWVudE1lbnVDb250cm9sbGVyOwogICAgIFdl
YkNvcmU6Ok1lZGlhQ2FwdHVyZVR5cGUgX21lZGlhQ2FwdHVyZVR5cGU7CiB9CkBAIC00NTAsMTAg
KzQ0OCw5IEBAIHN0YXRpYyBOU0FycmF5ICpVVElzRm9yTUlNRVR5cGVzKE5TQXJyYXkgKm1pbWVU
eXBlcykKIHsKICAgICBbc2VsZiBfZGlzbWlzc0Rpc3BsYXlBbmltYXRlZDphbmltYXRlZF07CiAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIF9wcmVzZW50YXRpb25Qb3BvdmVyID0gYWRvcHROUyhb
W1VJUG9wb3ZlckNvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoQ29udGVudFZpZXdDb250cm9sbGVy
OmNvbnRlbnRWaWV3Q29udHJvbGxlcl0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtfcHJlc2VudGF0aW9u
UG9wb3ZlciBzZXREZWxlZ2F0ZTpzZWxmXTsKICAgICBbX3ByZXNlbnRhdGlvblBvcG92ZXIgcHJl
c2VudFBvcG92ZXJGcm9tUmVjdDpDR1JlY3RJbnRlZ3JhbChDR1JlY3RNYWtlKF9pbnRlcmFjdGlv
blBvaW50LngsIF9pbnRlcmFjdGlvblBvaW50LnksIDEsIDEpKSBpblZpZXc6X3ZpZXcgcGVybWl0
dGVkQXJyb3dEaXJlY3Rpb25zOlVJUG9wb3ZlckFycm93RGlyZWN0aW9uQW55IGFuaW1hdGVkOmFu
aW1hdGVkXTsKIH0KQEAgLTcyMCw2ICs3MTcsNiBAQCBzdGF0aWMgTlNBcnJheSAqVVRJc0Zvck1J
TUVUeXBlcyhOU0FycmF5ICptaW1lVHlwZXMpCiAKIEBlbmQKIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICNlbmRpZiAv
LyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
Zm9ybXMvV0tGb3JtQ29sb3JDb250cm9sLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5tbQppbmRleCA2MDliYWMzMWY1NmFhNWFhZWJmMDNj
MmUzMThjMTU1NGE1OGU5NWE3Li44MjRlZDNkOTFiY2IxN2IxYzE0MGVkNGZhM2JhYTE2YWVjZTA3
NDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3Jt
Q29sb3JDb250cm9sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9X
S0Zvcm1Db2xvckNvbnRyb2wubW0KQEAgLTY2LDEwICs2Niw5IEBAIHN0YXRpYyBjb25zdCBDR0Zs
b2F0IGNvbG9yUG9wb3ZlckNvcm5lclJhZGl1cyA9IDk7CiAgICAgW3BvcG92ZXJWaWV3Q29udHJv
bGxlciBzZXRWaWV3OmNvbnRyb2xDb250YWluZXJWaWV3LmdldCgpXTsKICAgICBbcG9wb3ZlclZp
ZXdDb250cm9sbGVyIHNldFByZWZlcnJlZENvbnRlbnRTaXplOltjb250cm9sQ29udGFpbmVyVmll
dyBzaXplXV07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFJldGFpblB0cjxVSVBvcG92ZXJD
b250cm9sbGVyPiBjb250cm9sbGVyID0gYWRvcHROUyhbW1VJUG9wb3ZlckNvbnRyb2xsZXIgYWxs
b2NdIGluaXRXaXRoQ29udGVudFZpZXdDb250cm9sbGVyOnBvcG92ZXJWaWV3Q29udHJvbGxlci5n
ZXQoKV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogICAgIFtzZWxmIHNldFBvcG92ZXJDb250cm9sbGVyOmNvbnRy
b2xsZXIuZ2V0KCldOwogCiAgICAgcmV0dXJuIHNlbGY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29udHJvbC5tbQppbmRleCAxY2Q2
MmUzYmI1MTgxM2I3MTRlMzRhM2NmYmViNzNhYmFhYTkwY2UzLi5kMDJkZmZmZmRhNWE2NjQ2MTEy
NGQzODU4MTdkODY1OWE2MDJjZWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW0KQEAgLTMzMCwxNiArMzMwLDE0
IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBrTWlsbGlzZWNvbmRzUGVyU2Vjb25kID0g
MTAwMDsKICAgICBSZXRhaW5QdHI8VUlOYXZpZ2F0aW9uQ29udHJvbGxlcj4gbmF2aWdhdGlvbkNv
bnRyb2xsZXIgPSBhZG9wdE5TKFtbVUlOYXZpZ2F0aW9uQ29udHJvbGxlciBhbGxvY10gaW5pdFdp
dGhSb290Vmlld0NvbnRyb2xsZXI6X3ZpZXdDb250cm9sbGVyLmdldCgpXSk7CiAgICAgVUlOYXZp
Z2F0aW9uSXRlbSAqbmF2aWdhdGlvbkl0ZW0gPSBuYXZpZ2F0aW9uQ29udHJvbGxlci5nZXQoKS5u
YXZpZ2F0aW9uQmFyLnRvcEl0ZW07CiAgICAgTlNTdHJpbmcgKmNsZWFyU3RyaW5nID0gV0VCX1VJ
X1NUUklOR19LRVkoIkNsZWFyIiwgIkNsZWFyIEJ1dHRvbiBEYXRlIFBvcG92ZXIiLCAiQ2xlYXIg
YnV0dG9uIGluIGRhdGUgaW5wdXQgcG9wb3ZlciIpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
VUlCYXJCdXR0b25JdGVtICpjbGVhckJ1dHRvbiA9IFtbW1VJQmFyQnV0dG9uSXRlbSBhbGxvY10g
aW5pdFdpdGhUaXRsZTpjbGVhclN0cmluZyBzdHlsZTpVSUJhckJ1dHRvbkl0ZW1TdHlsZUJvcmRl
cmVkIHRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0b3IoY2xlYXI6KV0gYXV0b3JlbGVhc2VdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogICAgIFtuYXZpZ2F0aW9uSXRlbSBzZXRSaWdodEJhckJ1dHRvbkl0ZW06Y2xl
YXJCdXR0b25dOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBSZXRhaW5QdHI8VUlQb3BvdmVy
Q29udHJvbGxlcj4gY29udHJvbGxlciA9IGFkb3B0TlMoW1tVSVBvcG92ZXJDb250cm9sbGVyIGFs
bG9jXSBpbml0V2l0aENvbnRlbnRWaWV3Q29udHJvbGxlcjpuYXZpZ2F0aW9uQ29udHJvbGxlci5n
ZXQoKV0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogICAgIFtzZWxmIHNldFBvcG92ZXJDb250cm9sbGVyOmNvbnRy
b2xsZXIuZ2V0KCldOwogCiAgICAgcmV0dXJuIHNlbGY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9wb3Zlci5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIuaAppbmRleCAwZWM4YzY1NTM4NzlhYmRj
NWI5MjEwZjk1NzgyNGIwN2UwYjBmZGViLi5jOTY3NjFjNmJkOTM3MDBlMzJmYzhiN2RiYzdkYjhk
ODIzMjM4ZDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMv
V0tGb3JtUG9wb3Zlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9X
S0Zvcm1Qb3BvdmVyLmgKQEAgLTQwLDEwICs0MCw5IEBACiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIFdLQ29udGVudFZpZXcgKnZpZXc7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBh
c3NpZ24pIENHUG9pbnQgcHJlc2VudGF0aW9uUG9pbnQ7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogQHByb3Bl
cnR5IChub25hdG9taWMsIHJldGFpbikgVUlQb3BvdmVyQ29udHJvbGxlciAqcG9wb3ZlckNvbnRy
b2xsZXI7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIGlkIDxXS1JvdGF0
aW5nUG9wb3ZlckRlbGVnYXRlPiBkaXNtaXNzaW9uRGVsZWdhdGU7CiBAZW5kCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIubW0KaW5kZXgg
YmUyZjBkMmNhZDRmZjhjMmZkNDE4MTU2M2I3ZTZkYjZkY2I4ZTJhMC4uNmIxOGMzZDAyMmU1OWM0
ZmI2ZGY5MDc2NGY1YjYyOWU4ZWNkZmM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVBvcG92ZXIubW0KQEAgLTM2LDggKzM2LDcgQEAKIAogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogQGltcGxlbWVudGF0aW9u
IFdLRm9ybVJvdGF0aW5nQWNjZXNzb3J5UG9wb3ZlcgogCkBAIC0xNzgsNiArMTc3LDYgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAogQGVuZAogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogI2VuZGlmIC8vIFBMQVRG
T1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9X
S0Zvcm1TZWxlY3RQb3BvdmVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1z
L1dLRm9ybVNlbGVjdFBvcG92ZXIubW0KaW5kZXggNTdiZmE0MDcwNGEyMGUzMmVlY2I4ZmUxYzc2
YzJjNTBlOGQ4ZjkwNC4uNDNiN2VjYmZiYWM2N2RhMGFiNGMxZWYyYmE3Yjc2NTdlZGFiZjk5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybVNlbGVj
dFBvcG92ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9y
bVNlbGVjdFBvcG92ZXIubW0KQEAgLTQwMSwxMCArNDAxLDkgQEAgc3RhdGljIE5TU3RyaW5nICpz
dHJpbmdXaXRoV3JpdGluZ0RpcmVjdGlvbihOU1N0cmluZyAqc3RyaW5nLCBVSVRleHRXcml0aW5n
RGlyZWMKICAgICBlbHNlCiAgICAgICAgIHBvcG92ZXJWaWV3Q29udHJvbGxlci5wcmVmZXJyZWRD
b250ZW50U2l6ZSA9IHBvcG92ZXJTaXplOwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
c2VsZi5wb3BvdmVyQ29udHJvbGxlciA9IFtbW1VJUG9wb3ZlckNvbnRyb2xsZXIgYWxsb2NdIGlu
aXRXaXRoQ29udGVudFZpZXdDb250cm9sbGVyOnBvcG92ZXJWaWV3Q29udHJvbGxlcl0gYXV0b3Jl
bGVhc2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogCiAgICAgW25hdkNvbnRyb2xsZXIgcmVsZWFzZV07CiAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0K
aW5kZXggZWFiYjAwOGM5NzM2ZmY0YTIyYWNkYjg4OWFmNmVlYmI0MTg0ODIyZi4uNmMzNWYzYjdl
ODZkMGQyZGZlMzkzZmYzZDJkMmI0YmI0MjM4NWFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpAQCAtNDE5LDEwICs0MTksOSBAQCB2
b2lkIFBhZ2VDbGllbnRJbXBsOjpwaW5uZWRTdGF0ZURpZENoYW5nZSgpCiAgICAgCiBJbnRQb2lu
dCBQYWdlQ2xpZW50SW1wbDo6c2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYgcG9pbnQp
CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU1BvaW50IHdpbmRvd0Nvb3JkID0gW1ttX3Zp
ZXcgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOnBvaW50XTsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBy
ZXR1cm4gSW50UG9pbnQoW21fdmlldyBjb252ZXJ0UG9pbnQ6d2luZG93Q29vcmQgZnJvbVZpZXc6
bmlsXSk7CiB9CiAgICAgCkBAIC00MzAsMTAgKzQyOSw5IEBAIEludFJlY3QgUGFnZUNsaWVudElt
cGw6OnJvb3RWaWV3VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBOU1JlY3Qg
dGVtcFJlY3QgPSByZWN0OwogICAgIHRlbXBSZWN0ID0gW21fdmlldyBjb252ZXJ0UmVjdDp0ZW1w
UmVjdCB0b1ZpZXc6bmlsXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHRlbXBSZWN0Lm9yaWdp
biA9IFtbbV92aWV3IHdpbmRvd10gY29udmVydEJhc2VUb1NjcmVlbjp0ZW1wUmVjdC5vcmlnaW5d
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KHRlbXBSZWN0KTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlci5tbQppbmRleCA1YTZiZmMzM2NlZjJkMjA2YTllMDZkMTVkZGYx
Yzg3Y2MzNzEyNDU2Li5iNjBhNTVjOTVhZWIyZWNmYTkwMzhjZmQ2MTdjNzdmMjE5YjE5NzYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlci5tbQpAQCAtMjY1LDEyICsyNjUsMTEgQEAgc3RhdGljIFJldGFp
blB0cjxDR0ltYWdlUmVmPiBjcmVhdGVJbWFnZVdpdGhDb3BpZWREYXRhKENHSW1hZ2VSZWYgc291
cmNlSW1hZ2UpCiAgICAgLy8gZnV0dXJlIG92ZXJoZWFkLgogICAgIHdlYlZpZXdDb250ZW50cyA9
IGNyZWF0ZUltYWdlV2l0aENvcGllZERhdGEod2ViVmlld0NvbnRlbnRzLmdldCgpKTsKIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCiAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUgcmUtZW5hYmxlZCBp
biBfc3RhcnRFbnRlckZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246CiAgICAgTlNEaXNh
YmxlU2NyZWVuVXBkYXRlcygpOwogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1dG9kaXNwbGF5Ok5P
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIAogICAgIFtzZWxmIF9tYW5hZ2VyXS0+c2F2ZVNjcm9sbFBvc2l0aW9u
KCk7CiAgICAgX3NhdmVkVG9wQ29udGVudEluc2V0ID0gX3BhZ2UtPnRvcENvbnRlbnRJbnNldCgp
OwpAQCAtMzI1LDExICszMjQsMTAgQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGgg
PSA0ODAgKyAyMCArIDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKICAgICBpZiAo
Y29tcGxldGVkKSB7CiAgICAgICAgIF9mdWxsU2NyZWVuU3RhdGUgPSBJbkZ1bGxTY3JlZW47CiAK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgLy8gU2NyZWVuIHVwZGF0ZXMgdG8gYmUg
cmUtZW5hYmxlZCB0YSB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IGJsb2NrLgogICAgICAgICBOU0Rp
c2FibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBbc2VsZiBfbWFu
YWdlcl0tPmRpZEVudGVyRnVsbFNjcmVlbigpOwogICAgICAgICBbc2VsZiBfbWFuYWdlcl0tPnNl
dEFuaW1hdGluZ0Z1bGxTY3JlZW4oZmFsc2UpOwogCkBAIC0zNDcsMTAgKzM0NSw5IEBAIHN0YXRp
YyBjb25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTogS2Vl
cCBpbiBzeW5jIHdpdGggbWVkCiAgICAgICAgIC8vIFRyYW5zaXRpb24gdG8gZnVsbHNjcmVlbiBm
YWlsZWQuIENsZWFuIHVwLgogICAgICAgICBfZnVsbFNjcmVlblN0YXRlID0gTm90SW5GdWxsU2Ny
ZWVuOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFtbc2VsZiB3aW5kb3ddIHNl
dEF1dG9kaXNwbGF5OllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBfcGFnZS0+c2V0U3Vw
cHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7CiAKICAgICAgICAgTlNSZXNwb25kZXIgKmZp
cnN0UmVzcG9uZGVyID0gW1tzZWxmIHdpbmRvd10gZmlyc3RSZXNwb25kZXJdOwpAQCAtMzY5LDEw
ICszNjYsOSBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9XaWR0aCA9IDQ4MCArIDIwICsg
MjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogICAgICAgICBbc2VsZiBfbWFuYWdl
cl0tPnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oZmFsc2UpOwogICAgIH0KIAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgTlNFbmFibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBp
ZiAoX3JlcXVlc3RlZEV4aXRGdWxsU2NyZWVuKSB7CiAgICAgICAgIF9yZXF1ZXN0ZWRFeGl0RnVs
bFNjcmVlbiA9IE5POwpAQCAtNDAyLDEyICszOTgsMTEgQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1p
blZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBt
ZWQKIAogICAgIFtfd2ViVmlld1BsYWNlaG9sZGVyIHNldEV4aXRXYXJuaW5nVmlzaWJsZTpOT107
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIFNjcmVlbiB1cGRhdGVzIHRvIGJlIHJlLWVu
YWJsZWQgaW4gX3N0YXJ0RXhpdEZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246IG9yIGJl
Z2FuRXhpdEZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6CiAgICAgTlNEaXNh
YmxlU2NyZWVuVXBkYXRlcygpOwogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1dG9kaXNwbGF5Ok5P
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIAogICAgIC8vIFNlZSB0aGUgcmVsYXRlZCBjb21tZW50IGluIGVudGVy
RnVsbFNjcmVlbjoKICAgICAvLyBXZSB3aWxsIHJlc3VtZSB0aGUgbm9ybWFsIGJlaGF2aW9yIGlu
IF9zdGFydEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOgpAQCAtNDM3LDEwICs0
MzIsOSBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9XaWR0aCA9IDQ4MCArIDIwICsgMjA7
IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogICAgICAgICAvLyBCZWNhdXNlIHdlIGFy
ZSBicmVha2luZyB0aGUgbm9ybWFsIGFuaW1hdGlvbiBwYXR0ZXJuLCByZS1lbmFibGUgc2NyZWVu
IHVwZGF0ZXMKICAgICAgICAgLy8gYXMgZXhpdEZ1bGxTY3JlZW4gaGFzIGRpc2FibGVkIHRoZW0s
IGJ1dCBfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjoKICAgICAgICAg
Ly8gd2lsbCBuZXZlciBiZSBjYWxsZWQuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAg
IE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiAKICAgICBb
W3NlbGYgd2luZG93XSBleGl0RnVsbFNjcmVlbk1vZGU6c2VsZl07CkBAIC00NjMsMjAgKzQ1Nywx
OCBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9XaWR0aCA9IDQ4MCArIDIwICsgMjA7IC8v
IE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogCiAgICAgTlNSZXNwb25kZXIgKmZpcnN0UmVz
cG9uZGVyID0gW1tzZWxmIHdpbmRvd10gZmlyc3RSZXNwb25kZXJdOwogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICAvLyBTY3JlZW4gdXBkYXRlcyB0byBiZSByZS1lbmFibGVkIGluIGNvbXBsZXRl
RmluaXNoRXhpdEZ1bGxTY3JlZW5BbmltYXRpb25BZnRlclJlcGFpbnQuCiAgICAgTlNEaXNhYmxl
U2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIF9wYWdlLT5zZXRTdXBwcmVzc1Zpc2li
aWxpdHlVcGRhdGVzKHRydWUpOwogICAgIFtbc2VsZiB3aW5kb3ddIG9yZGVyT3V0OnNlbGZdOwog
ICAgIE5TVmlldyAqY29udGVudFZpZXcgPSBbW3NlbGYgd2luZG93XSBjb250ZW50Vmlld107CiAg
ICAgY29udGVudFZpZXcuaGlkZGVuID0gWUVTOwogICAgIFtfYmFja2dyb3VuZFZpZXcuZ2V0KCku
bGF5ZXIgcmVtb3ZlQWxsQW5pbWF0aW9uc107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbW193
ZWJWaWV3UGxhY2Vob2xkZXIgd2luZG93XSBzZXRBdXRvZGlzcGxheTpOT107Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAKICAgICBbc2VsZiBfcmVwbGFjZVZpZXc6X3dlYlZpZXdQbGFjZWhvbGRlci5nZXQoKSB3aXRo
Ol93ZWJWaWV3XTsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKQEAgLTUwOSwxNiAr
NTAxLDE0IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAgKyAy
MDsgLy8gTm90ZTogS2VlcCBpbiBzeW5jIHdpdGggbWVkCiAtICh2b2lkKWNvbXBsZXRlRmluaXNo
RXhpdEZ1bGxTY3JlZW5BbmltYXRpb25BZnRlclJlcGFpbnQKIHsKICAgICBfcmVwYWludENhbGxi
YWNrID0gbnVsbHB0cjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtbX3dlYlZpZXcgd2luZG93
XSBzZXRBdXRvZGlzcGxheTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtbX3dlYlZpZXcgd2luZG93
XSBkaXNwbGF5SWZOZWVkZWRdOwogICAgIF9wYWdlLT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRh
dGVzKGZhbHNlKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TRW5hYmxlU2NyZWVuVXBkYXRl
cygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogfQogCiAtICh2b2lkKXBlcmZvcm1DbG9zZTooaWQpc2VuZGVyCkBA
IC03MjcsMTUgKzcxNywxMyBAQCBzdGF0aWMgQ0FBbmltYXRpb24gKmZhZGVBbmltYXRpb24oQ0ZU
aW1lSW50ZXJ2YWwgZHVyYXRpb24sIEFuaW1hdGlvbkRpcmVjdGlvbiBkaQogICAgIFt3aW5kb3cg
bWFrZUZpcnN0UmVzcG9uZGVyOl93ZWJWaWV3XTsKIAogICAgIF9wYWdlLT5zZXRTdXBwcmVzc1Zp
c2liaWxpdHlVcGRhdGVzKGZhbHNlKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtbc2VsZiB3
aW5kb3ddIHNldEF1dG9kaXNwbGF5OllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW1tzZWxmIHdpbmRv
d10gZGlzcGxheUlmTmVlZGVkXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TRW5hYmxlU2Ny
ZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAtICh2b2lkKV9zdGFydEV4aXRGdWxsU2Ny
ZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJhdGlvbgpAQCAtNzU4
LDE1ICs3NDYsMTMgQEAgc3RhdGljIENBQW5pbWF0aW9uICpmYWRlQW5pbWF0aW9uKENGVGltZUlu
dGVydmFsIGR1cmF0aW9uLCBBbmltYXRpb25EaXJlY3Rpb24gZGkKICAgICBbX2JhY2tncm91bmRW
aWV3LmdldCgpLmxheWVyIGFkZEFuaW1hdGlvbjpmYWRlQW5pbWF0aW9uKGR1cmF0aW9uLCBBbmlt
YXRlT3V0KSBmb3JLZXk6QCJmdWxsc2NyZWVuIl07CiAKICAgICBfcGFnZS0+c2V0U3VwcHJlc3NW
aXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbW3NlbGYg
d2luZG93XSBzZXRBdXRvZGlzcGxheTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtbc2VsZiB3aW5k
b3ddIGRpc3BsYXlJZk5lZWRlZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0VuYWJsZVNj
cmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogLSAodm9pZClfd2F0Y2hkb2dUaW1lckZp
cmVkOihOU1RpbWVyICopdGltZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XS1ByaW50aW5nVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1By
aW50aW5nVmlldy5tbQppbmRleCAxZmRhN2RiZTVkZjFmZjdkYjE3NzBjYWZiMTQwZGZmNTYwZjVh
MzhjLi5kMjA2ZmZlMDg5NTM0YzMyZjNlMjE2MjIwOWRlYmM3MjA4NzVlYmY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCkBAIC03OCwxNiArNzgs
MTQgQEAgc3RhdGljIEJPT0wgaXNGb3JjaW5nUHJldmlld1VwZGF0ZTsKIAogLSAodm9pZClfc2V0
QXV0b2Rpc3BsYXk6KEJPT0wpbmV3U3RhdGUKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlm
ICghbmV3U3RhdGUgJiYgW1tfd2tWaWV3IHdpbmRvd10gaXNBdXRvZGlzcGxheV0pCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAgIFtfd2tWaWV3IGRpc3BsYXlJZk5lZWRlZF07
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICBbW193a1ZpZXcgd2luZG93XSBzZXRBdXRvZGlzcGxheTpuZXdTdGF0ZV07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAKICAgICAvLyBGb3Igc29tZSByZWFzb24sIHBhaW50aW5nIGRvZXNuJ3Qg
aGFwcGVuIGZvciBhIGxvbmcgdGltZSB3aXRob3V0IHRoaXMgY2FsbCwgPHJkYXI6Ly9wcm9ibGVt
Lzg5NzUyMjk+LgogICAgIGlmIChuZXdTdGF0ZSkKQEAgLTQ1NCwxOSArNDUyLDE3IEBAIHN0YXRp
YyBOU1N0cmluZyAqbGlua0Rlc3RpbmF0aW9uTmFtZShQREZEb2N1bWVudCAqZG9jdW1lbnQsIFBE
RkRlc3RpbmF0aW9uICpkZXN0CiAgICAgfQogCiAgICAgTlNHcmFwaGljc0NvbnRleHQgKm5zR3Jh
cGhpY3NDb250ZXh0ID0gW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dD
b250ZXh0UmVmPihbbnNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NQb3J0XSk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAKICAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNvbnRleHQpOwogICAgIENHQ29udGV4dFRyYW5z
bGF0ZUNUTShjb250ZXh0LCBwb2ludC54LCBwb2ludC55KTsKICAgICBDR0NvbnRleHRTY2FsZUNU
TShjb250ZXh0LCBfdG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nLCAtX3RvdGFsU2NhbGVGYWN0
b3JGb3JQcmludGluZyk7CiAgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNvbnRleHQsIDAsIC1b
cGRmUGFnZSBib3VuZHNGb3JCb3g6a1BERkRpc3BsYXlCb3hNZWRpYUJveF0uc2l6ZS5oZWlnaHQp
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW3BkZlBhZ2UgZHJhd1dpdGhCb3g6a1BERkRpc3Bs
YXlCb3hNZWRpYUJveF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFu
c2Zvcm0gPSBDR0NvbnRleHRHZXRDVE0oY29udGV4dCk7CiAKQEAgLTQ3OSwxMCArNDc1LDkgQEAg
c3RhdGljIE5TU3RyaW5nICpsaW5rRGVzdGluYXRpb25OYW1lKFBERkRvY3VtZW50ICpkb2N1bWVu
dCwgUERGRGVzdGluYXRpb24gKmRlc3QKICAgICAgICAgaWYgKCFbYW5ub3RhdGlvbiBpc0tpbmRP
ZkNsYXNzOldlYktpdDo6cGRmQW5ub3RhdGlvbkxpbmtDbGFzcygpXSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFBERkFubm90YXRpb25M
aW5rICpsaW5rQW5ub3RhdGlvbiA9IChQREZBbm5vdGF0aW9uTGluayAqKWFubm90YXRpb247Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgICAgICBOU1VSTCAqdXJsID0gW2xpbmtBbm5vdGF0aW9uIFVSTF07
CiAgICAgICAgIENHUmVjdCB0cmFuc2Zvcm1lZFJlY3QgPSBDR1JlY3RBcHBseUFmZmluZVRyYW5z
Zm9ybShOU1JlY3RUb0NHUmVjdChbbGlua0Fubm90YXRpb24gYm91bmRzXSksIHRyYW5zZm9ybSk7
CiAKQEAgLTU0NSwxMCArNTQwLDkgQEAgc3RhdGljIE5TU3RyaW5nICpsaW5rRGVzdGluYXRpb25O
YW1lKFBERkRvY3VtZW50ICpkb2N1bWVudCwgUERGRGVzdGluYXRpb24gKmRlc3QKICAgICB9CiAK
ICAgICBSZWZQdHI8V2ViS2l0OjpTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IHBhZ2VQcmV2aWV3
SXRlcmF0b3ItPnZhbHVlOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0dDb250ZXh0UmVmIGNn
Q29udGV4dCA9IHN0YXRpY19jYXN0PENHQ29udGV4dFJlZj4oW1tOU0dyYXBoaWNzQ29udGV4dCBj
dXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQgY29udGV4dChjZ0NvbnRleHQpOwogICAgIFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKQEAgLTU4OSwxMCArNTgz
LDkgQEAgc3RhdGljIE5TU3RyaW5nICpsaW5rRGVzdGluYXRpb25OYW1lKFBERkRvY3VtZW50ICpk
b2N1bWVudCwgUERGRGVzdGluYXRpb24gKmRlc3QKICAgICAgICAgICAgICAgICBpZiAoIVthbm5v
dGF0aW9uIGlzS2luZE9mQ2xhc3M6V2ViS2l0OjpwZGZBbm5vdGF0aW9uTGlua0NsYXNzKCldKQog
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgICAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgICAgICAgICAgICAgUERGQW5ub3RhdGlvbkxpbmsgKmxpbmtBbm5vdGF0aW9u
ID0gKFBERkFubm90YXRpb25MaW5rICopYW5ub3RhdGlvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICAgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAgICAgICAgICAgICAgICBpZiAobGlua0Fubm90YXRpb24uVVJMKQogICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0KaW5kZXggYWUzNjQxZWY3OTc0
NjNhMTgwYzBmYjI2NzRiMDAyYWIxMWE4Nzk2Mi4uYmU5NmNhMjgwMGFhMTUwNGU1ODM2ODI3ZDdk
Y2YwNmY3NzRmNjZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
VGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tCkBAIC0xMDYsMTAgKzEwNiw5IEBA
CiAKIC0gKEJPT0wpX2ludGVycHJldEtleUV2ZW50OihOU0V2ZW50ICopZXZlbnQgdXNpbmdMZWdh
Y3lDb2NvYVRleHRJbnB1dDooQk9PTCl1c2luZ0xlZ2FjeUNvY29hVGV4dElucHV0IHN0cmluZzoo
TlNTdHJpbmcgKiopc3RyaW5nCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBCT09MIGhhZE1h
cmtlZFRleHQgPSBbX2lucHV0VGV4dFZpZXcgaGFzTWFya2VkVGV4dF07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
CiAgICAgKnN0cmluZyA9IG5pbDsKIApAQCAtMTI0LDEwICsxMjMsOSBAQAogICAgIGlmICghW1tf
aW5wdXRUZXh0VmlldyBpbnB1dENvbnRleHRdIGhhbmRsZUV2ZW50OmV2ZW50XSkKICAgICAgICAg
cmV0dXJuIE5POwogICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKFtfaW5wdXRUZXh0
VmlldyBoYXNNYXJrZWRUZXh0XSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgLy8gRG9uJ3Qg
c2hvdyB0aGUgaW5wdXQgbWV0aG9kIHdpbmRvdyBmb3IgZGVhZCBrZXlzCiAgICAgICAgIGlmIChb
W2V2ZW50IGNoYXJhY3RlcnNdIGxlbmd0aF0gPiAwKQogICAgICAgICAgICAgW3NlbGYgb3JkZXJG
cm9udDpuaWxdOwpAQCAtMTYxLDEwICsxNTksOSBAQAogCiAtIChCT09MKV9oYXNNYXJrZWRUZXh0
CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICByZXR1cm4gW19pbnB1dFRleHRWaWV3IGhhc01h
cmtlZFRleHRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KaW5kZXggOGI1ZGIxNTk1YWIz
NTdmZWM5NGRjZTc3Yzc2NGVhZGNiYjYzNTYwZC4uNjg0YjEzNjc4NjEzMDkwODRjYzE0MjVmYzIw
ZWE0NWQ4NmZjZjc2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dl
YlBvcHVwTWVudVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
ZWJQb3B1cE1lbnVQcm94eU1hYy5tbQpAQCAtMTg4LDEwICsxODgsOSBAQCB2b2lkIFdlYlBvcHVw
TWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJl
Y3Rpb24gdGV4dAogICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZmFrZUV2ZW50IGF0U3RhcnQ6WUVTXTsK
ICAgICBmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVN
b3VzZU1vdmVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOltb
bV93ZWJWaWV3IHdpbmRvd10KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICAgICAgICAgICAg
ICBjb252ZXJ0U2NyZWVuVG9CYXNlOltOU0V2ZW50IG1vdXNlTG9jYXRpb25dXQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOltpbml0aWF0aW5nTlNF
dmVudCBtb2RpZmllckZsYWdzXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRp
bWVzdGFtcDpbaW5pdGlhdGluZ05TRXZlbnQgdGltZXN0YW1wXQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbaW5pdGlhdGluZ05TRXZlbnQgd2luZG93TnVtYmVy
XQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
bWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCmluZGV4IGVkY2Y1MzJjODVhYWY4
YzZiM2E1MGFlM2Q2NGJlMDZlOWFhMGUzNDAuLjI5MGI2NWNjMDE2M2RiYjJhNGYxZjA5MzJmZjZm
MDdjZjYyY2VmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KQEAgLTM3
MywxMCArMzczLDkgQEAgc3RhdGljIGlubGluZSBFdmVudFJlY29yZCBpbml0aWFsaXplRXZlbnRS
ZWNvcmQoRXZlbnRLaW5kIGV2ZW50S2luZCkKIAogICAgIGV2ZW50UmVjb3JkLndoYXQgPSBldmVu
dEtpbmQ7CiAgICAgZXZlbnRSZWNvcmQubWVzc2FnZSA9IDA7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBldmVudFJlY29yZC53aGVuID0gVGlja0NvdW50KCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgZXZl
bnRSZWNvcmQud2hlcmUgPSBQb2ludCgpOwogICAgIGV2ZW50UmVjb3JkLm1vZGlmaWVycyA9IDA7
CiAKQEAgLTEwNDMsMTAgKzEwNDIsOSBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luOjpzZW5kQ29tcGxl
eFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKIAogICAgICAgICAvLyBTZXQgdGhl
IHNjcmlwdCBjb2RlIGFzIHRoZSBrZXlib2FyZCBzY3JpcHQuIE5vcm1hbGx5IENhcmJvbiBkb2Vz
IHRoaXMgd2hlbmV2ZXIgdGhlIGlucHV0IHNvdXJjZSBjaGFuZ2VzLgogICAgICAgICAvLyBIb3dl
dmVyLCB0aGlzIGlzIG9ubHkgZG9uZSBmb3IgdGhlIHByb2Nlc3MgdGhhdCBoYXMgdGhlIGtleWJv
YXJkIGZvY3VzLiBXZSBjaGVhdCBhbmQgZG8gaXQgaGVyZSBpbnN0ZWFkLgotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgICAgICBTZXRTY3JpcHRNYW5hZ2VyVmFyaWFibGUoc21LZXlTY3JpcHQs
IHNjcmlwdENvZGUpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgCiAgICAgICAgIEV2ZW50UmVj
b3JkIGV2ZW50ID0gaW5pdGlhbGl6ZUV2ZW50UmVjb3JkKGtleURvd24pOwogICAgICAgICBldmVu
dC5tb2RpZmllcnMgPSAwOwpAQCAtMTEyMSwxMSArMTExOSwxMCBAQCBzdGF0aWMgdm9pZCBtYWtl
Q0dMUHJlc2VudExheWVyT3BhcXVlKENBTGF5ZXIgKnBsdWdpblJvb3RMYXllcikKICAgICAgICAg
cmV0dXJuOwogCiAgICAgQ2xhc3MgY2dsUHJlc2VudExheWVyQ2xhc3MgPSBOU0NsYXNzRnJvbVN0
cmluZyhAIkNHTFByZXNlbnRMYXllciIpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKCFb
Y2dsUHJlc2VudExheWVyQ2xhc3MgaXNTdWJjbGFzc09mQ2xhc3M6W0NBT3BlbkdMTGF5ZXIgY2xh
c3NdXSkKICAgICAgICAgcmV0dXJuOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgQ0FMYXllciAqbGF5ZXIg
PSBbc3VibGF5ZXJzIG9iamVjdEF0SW5kZXg6MF07CiAgICAgaWYgKCFbbGF5ZXIgaXNLaW5kT2ZD
bGFzczpjZ2xQcmVzZW50TGF5ZXJDbGFzc10pCkBAIC0xMTgxLDExICsxMTc4LDEwIEBAIHZvaWQg
TmV0c2NhcGVQbHVnaW46Om51bGxFdmVudFRpbWVyRmlyZWQoKQogICAgIGV2ZW50LndoZXJlLnYg
PSBtb3VzZVBvc2l0aW9uLnk7CiAKICAgICBldmVudC5tb2RpZmllcnMgPSBHZXRDdXJyZW50S2V5
TW9kaWZpZXJzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAoIUJ1dHRvbigpKQogICAg
ICAgICBldmVudC5tb2RpZmllcnMgfD0gYnRuU3RhdGU7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBOUFBf
SGFuZGxlRXZlbnQoJmV2ZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IDRjYWE2Y2MwZjYwNDUwYzAzYjIyYTI4NGRk
MTNhZjI1ZWZkNmUzODYuLmRhMDQxMDcyYTNkNjBjY2I2MWFhODBhMWM0YzMyYjI0ZDg5NjI5NTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbQpAQCAtMzE2LDEwICszMTYsOSBAQCBzdGF0aWMgY29uc3QgaW50IGRlZmF1bHRTY3JvbGxN
YWduaXR1ZGVUaHJlc2hvbGRGb3JQYWdlRmxpcCA9IDIwOwogICAgIGlmIChXZWJLaXQ6OlBERlBs
dWdpbkFubm90YXRpb24qIGFjdGl2ZUFubm90YXRpb24gPSBfcGRmUGx1Z2luLT5hY3RpdmVBbm5v
dGF0aW9uKCkpIHsKICAgICAgICAgaWYgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGUqIGV4aXN0aW5n
Q2FjaGUgPSBfcGRmUGx1Z2luLT5heE9iamVjdENhY2hlKCkpIHsKICAgICAgICAgICAgIGlmIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QgPSBleGlzdGluZ0NhY2hlLT5nZXRP
ckNyZWF0ZShhY3RpdmVBbm5vdGF0aW9uLT5lbGVtZW50KCkpKQotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgICAgICAgICAgICAgcmV0dXJuIFtvYmplY3QtPndyYXBwZXIoKSBh
Y2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJfQVhBc3NvY2lhdGVkUGx1Z2luUGFyZW50Il07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIG5p
bDsKQEAgLTQyNCwxMCArNDIzLDkgQEAgc3RhdGljIGNvbnN0IGludCBkZWZhdWx0U2Nyb2xsTWFn
bml0dWRlVGhyZXNob2xkRm9yUGFnZUZsaXAgPSAyMDsKIAogLSAodm9pZCl3cml0ZUl0ZW1zVG9Q
YXN0ZWJvYXJkOihOU0FycmF5ICopaXRlbXMgd2l0aFR5cGVzOihOU0FycmF5ICopdHlwZXMKIHsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIF9wZGZQbHVnaW4tPndyaXRlSXRlbXNUb1Bhc3RlYm9h
cmQoTlNHZW5lcmFsUGJvYXJkLCBpdGVtcywgdHlwZXMpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiAtICh2
b2lkKXNob3dEZWZpbml0aW9uRm9yQXR0cmlidXRlZFN0cmluZzooTlNBdHRyaWJ1dGVkU3RyaW5n
ICopc3RyaW5nIGF0UG9pbnQ6KENHUG9pbnQpcG9pbnQKQEAgLTE2NTAsMTEgKzE2NDgsMTAgQEAg
Ym9vbCBQREZQbHVnaW46OmhhbmRsZUVkaXRpbmdDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFu
ZE5hbWUsIGNvbnN0IFN0cmluZyYgYXIKICAgICAgICAgW21fcGRmTGF5ZXJDb250cm9sbGVyIHNl
bGVjdEFsbF07CiAgICAgZWxzZSBpZiAoY29tbWFuZE5hbWUgPT0gInRha2VGaW5kU3RyaW5nRnJv
bVNlbGVjdGlvbiIpIHsKICAgICAgICAgTlNTdHJpbmcgKnN0cmluZyA9IFttX3BkZkxheWVyQ29u
dHJvbGxlciBjdXJyZW50U2VsZWN0aW9uXS5zdHJpbmc7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgICAgIGlmIChzdHJpbmcubGVuZ3RoKQogICAgICAgICAgICAgd3JpdGVJdGVtc1RvUGFz
dGVib2FyZChOU0ZpbmRQYm9hcmQsIEBbIFtzdHJpbmcgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4
U3RyaW5nRW5jb2RpbmddIF0sIEBbIE5TUGFzdGVib2FyZFR5cGVTdHJpbmcgXSk7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpAQCAtMTczNCwxMyArMTczMSwxMiBA
QCB2b2lkIFBERlBsdWdpbjo6c2V0QWN0aXZlQW5ub3RhdGlvbihQREZBbm5vdGF0aW9uICphbm5v
dGF0aW9uKQogICAgICAgICBtX2FjdGl2ZUFubm90YXRpb24tPmNvbW1pdCgpOwogCiAgICAgaWYg
KGFubm90YXRpb24pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgaWYgKFthbm5v
dGF0aW9uIGlzS2luZE9mQ2xhc3M6cGRmQW5ub3RhdGlvblRleHRXaWRnZXRDbGFzcygpXSAmJiBz
dGF0aWNfY2FzdDxQREZBbm5vdGF0aW9uVGV4dFdpZGdldCAqPihhbm5vdGF0aW9uKS5pc1JlYWRP
bmx5KSB7CiAgICAgICAgICAgICBtX2FjdGl2ZUFubm90YXRpb24gPSBudWxscHRyOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgICAgIG1fYWN0
aXZlQW5ub3RhdGlvbiA9IFBERlBsdWdpbkFubm90YXRpb246OmNyZWF0ZShhbm5vdGF0aW9uLCBt
X3BkZkxheWVyQ29udHJvbGxlci5nZXQoKSwgdGhpcyk7CiAgICAgICAgIG1fYWN0aXZlQW5ub3Rh
dGlvbi0+YXR0YWNoKG1fYW5ub3RhdGlvbkNvbnRhaW5lci5nZXQoKSk7CkBAIC0yMDc4LDEwICsy
MDc0LDkgQEAgc3RkOjp0dXBsZTxTdHJpbmcsIFBERlNlbGVjdGlvbiAqLCBOU0RpY3Rpb25hcnkg
Kj4gUERGUGx1Z2luOjpsb29rdXBUZXh0QXRMb2NhdGkKICAgICAgICAgaWYgKCFOU1BvaW50SW5S
ZWN0KHBvaW50SW5QYWdlU3BhY2UsIGJvdW5kcykpCiAgICAgICAgICAgICBjb250aW51ZTsKIAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBQREZBbm5vdGF0aW9uTGluayAqbGlua0Fu
bm90YXRpb24gPSAoUERGQW5ub3RhdGlvbkxpbmsgKilhbm5vdGF0aW9uOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAgICAgICAgTlNVUkwgKnVybCA9IGxpbmtBbm5vdGF0aW9uLlVSTDsKICAgICAgICAgaWYg
KCF1cmwpCiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlv
bi5oCmluZGV4IDBmNzY3NWM1ZDIzMWQ1N2Q5MmJkNjI3OTM2ZTllMDI0ZDJlMWM2OGQuLmE4MWRk
ZjYzYTRlNjFkZDMwYzdiN2Q5MTkwNzZiM2Y4YTJmYzNlZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2lj
ZUFubm90YXRpb24uaApAQCAtNTMsMTAgKzUzLDkgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxXZWJD
b3JlOjpFbGVtZW50PiBjcmVhdGVBbm5vdGF0aW9uRWxlbWVudCgpIG92ZXJyaWRlOwogCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICBQREZBbm5vdGF0aW9uQ2hvaWNlV2lkZ2V0ICpjaG9pY2VBbm5v
dGF0aW9uKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UERGQW5ub3RhdGlvbkNob2ljZVdpZGdldCAq
Pihhbm5vdGF0aW9uKCkpOyB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0KaW5kZXggNTgyNWZkM2VjYWI0NjE1
NGY4ZjlkMDUwMTNmNjU0YWM4YzYxNThjZi4uMTAwYTAzNjZhZjQ0ZjlhMTNkOTg5NjFjMTZjMTM3
YzYxZDBlOTZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0KQEAgLTY3LDEw
ICs2Nyw5IEBAIHZvaWQgUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbjo6Y29tbWl0KCkKIFJlZjxF
bGVtZW50PiBQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uOjpjcmVhdGVBbm5vdGF0aW9uRWxlbWVu
dCgpCiB7CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gcGFyZW50KCktPmRvY3VtZW50KCk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICBQREZBbm5vdGF0aW9uQ2hvaWNlV2lkZ2V0ICpjaG9pY2VB
bm5vdGF0aW9uID0gdGhpcy0+Y2hvaWNlQW5ub3RhdGlvbigpOwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAg
YXV0byBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChzZWxlY3RUYWcsIGZhbHNlKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpblRleHRBbm5vdGF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luVGV4dEFubm90YXRpb24uaAppbmRleCA5MmQ0MDIzY2Q3MGU5NGQ5OGQ0YmI1
ODFlMzBhN2QyODViMTlkOWRjLi4zNmQzYTNkMjFlZjFmZWM1ZjQ2MGU0ODlmODA1NDhiN2YzZmJj
MmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luVGV4dEFubm90YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24uaApAQCAtNjAsMTAgKzYwLDkgQEAgcHJv
dGVjdGVkOgogcHJpdmF0ZToKICAgICBib29sIGhhbmRsZUV2ZW50KFdlYkNvcmU6OkV2ZW50Jikg
b3ZlcnJpZGU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFBERkFubm90YXRpb25UZXh0V2lk
Z2V0ICp0ZXh0QW5ub3RhdGlvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFBERkFubm90
YXRpb25UZXh0V2lkZ2V0ICo+KGFubm90YXRpb24oKSk7IH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCmluZGV4IDJj
NmE3NmM0YjBlMTE1NTEwMTk1ZmZkNjk3NDg2NDY2YTc1ZjEyNjguLmJlMDYwM2YyYzFkYTRhMGM1
ODlmNTU4YzNmOGFlNGM0YjJhM2U3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0K
QEAgLTgwLDEwICs4MCw5IEBAIFBERlBsdWdpblRleHRBbm5vdGF0aW9uOjp+UERGUGx1Z2luVGV4
dEFubm90YXRpb24oKQogUmVmPEVsZW1lbnQ+IFBERlBsdWdpblRleHRBbm5vdGF0aW9uOjpjcmVh
dGVBbm5vdGF0aW9uRWxlbWVudCgpCiB7CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gcGFyZW50
KCktPmRvY3VtZW50KCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBQREZBbm5vdGF0aW9uVGV4
dFdpZGdldCAqdGV4dEFubm90YXRpb24gPSB0aGlzLT50ZXh0QW5ub3RhdGlvbigpOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogICAgIGJvb2wgaXNNdWx0aWxpbmUgPSB0ZXh0QW5ub3RhdGlvbi5pc011bHRpbGluZTsK
IAogICAgIGF1dG8gZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaXNNdWx0aWxpbmUg
PyB0ZXh0YXJlYVRhZyA6IGlucHV0VGFnLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVU
ZXh0Q2xpZW50LmgKaW5kZXggNDUyMGU5ZDY5YmM4MDJmNmViZGE2NWIyOTdlOGE4ZDQ1OGMxOTcy
OC4uMTRlNjlmMTJmNWRjNTUzZWJhMzgyYzAyYmI3NTcxYTBiYTVlYzhjYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4
dENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaApAQCAtNTEsMTQgKzUxLDExIEBAIHB1YmxpYzoKICNl
bmRpZgogcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1MpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI2lmIGRlZmluZWQoX19oYXNfd2FybmluZykgJiYgX19oYXNfd2FybmluZygiLVd1
bnVzZWQtcHJpdmF0ZS1maWVsZCIpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVd1bnVzZWQtcHJpdmF0ZS1maWVsZCIKLSNlbmRpZgorICAgIElHTk9SRV9DTEFOR19XQVJOSU5H
U19CRUdJTigidW51c2VkLXByaXZhdGUtZmllbGQiKQogI2VuZGlmCiAgICAgV2ViUGFnZSAqbV9w
YWdlOwogI2lmIFBMQVRGT1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJh
Z0NsaWVudE1hYy5tbQppbmRleCBhODc3ZTdmY2ZhMGEzOTg3OTc3NzBhMTQzNDQ5MDVmZjk3MzAz
MmYwLi4zYmQ3ZDFmYmIzOGNiMjA5YWZkYjcxZGViMThiOWQ5MWVkZDkxMzBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGll
bnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJEcmFnQ2xpZW50TWFjLm1tCkBAIC03MiwxMCArNzIsOSBAQCBzdGF0aWMgUmVmUHRyPFNo
YXJlYWJsZUJpdG1hcD4gY29udmVydEltYWdlVG9CaXRtYXAoTlNJbWFnZSAqaW1hZ2UsIGNvbnN0
IEludFNpegogCiAgICAgUmV0YWluUHRyPE5TR3JhcGhpY3NDb250ZXh0PiBzYXZlZENvbnRleHQg
PSBbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdOwogCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6W05TR3JhcGhpY3ND
b250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Z3JhcGhpY3NDb250ZXh0LT5w
bGF0Zm9ybUNvbnRleHQoKSBmbGlwcGVkOllFU11dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtpbWFnZSBk
cmF3SW5SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgYml0bWFwLT5zaXplKCkud2lkdGgoKSwgYml0bWFw
LT5zaXplKCkuaGVpZ2h0KCkpIGZyb21SZWN0Ok5TWmVyb1JlY3Qgb3BlcmF0aW9uOk5TQ29tcG9z
aXRpbmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9uOjEgcmVzcGVjdEZsaXBwZWQ6WUVTIGhp
bnRzOm5pbF07CiAKICAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6c2F2
ZWRDb250ZXh0LmdldCgpXTsKQEAgLTExMywxMCArMTEyLDkgQEAgc3RhdGljIFdlYkNvcmU6OkNh
Y2hlZEltYWdlKiBjYWNoZWRJbWFnZShFbGVtZW50JiBlbGVtZW50KQogCiB2b2lkIFdlYkRyYWdD
bGllbnQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRO
YW1lLCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBsYWJl
bCwgRnJhbWUqKQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQVNTRVJUKHBhc3RlYm9hcmRO
YW1lID09IFN0cmluZyhOU0RyYWdQYm9hcmQpKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIFdlYkNvcmU6
OkNhY2hlZEltYWdlKiBpbWFnZSA9IGNhY2hlZEltYWdlKGVsZW1lbnQpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2Vi
UGFnZU9iamVjdE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9X
S0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCmluZGV4IGZlOTRlODVlNDcwZjRhODdl
NTlmZTlkN2VjZjg0NDJmZWU1N2NmMzMuLmZkOWIxODVjZmYwYmU2ZDBjOWZhODYyNmM5MGNjZmZj
OTU2MDNjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLm1t
CkBAIC0xOTIsOCArMTkyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICByZXR1cm4g
WUVTOwogfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogLSAoaWQpYWNjZXNzaWJpbGl0eUhpdFRlc3Q6KE5T
UG9pbnQpcG9pbnQKIHsKICAgICBpZiAoIW1fcGFnZSkKQEAgLTIxNSw3ICsyMTQsNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwogCiAgICAgcmV0dXJuIFtbc2VsZiBhY2Nlc3NpYmlsaXR5Um9v
dE9iamVjdFdyYXBwZXJdIGFjY2Vzc2liaWxpdHlIaXRUZXN0OmNvbnZlcnRlZFBvaW50XTsKIH0K
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggYzlhYTVlZTUwZTEyMDM2YWExYjI0YzAwNDU2ZjRl
ZjY3NDJjYmI1ZC4uYjc4MTc5NjA1MTk5ZDYzYzVkOTg0ZmRkNWVkYmI5ZTIzMjcxYjBhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMu
bW0KQEAgLTgxOSwxMSArODE5LDEwIEBAIHN0YXRpYyB2b2lkIGRyYXdQREZQYWdlKFBERkRvY3Vt
ZW50ICpwZGZEb2N1bWVudCwgQ0ZJbmRleCBwYWdlSW5kZXgsIENHQ29udGV4dFJlCiAgICAgfQog
CiAgICAgW05TR3JhcGhpY3NDb250ZXh0IHNhdmVHcmFwaGljc1N0YXRlXTsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDpbTlNHcmFw
aGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0V2l0aEdyYXBoaWNzUG9ydDpjb250ZXh0IGZsaXBw
ZWQ6Tk9dXTsKICAgICBbcGRmUGFnZSBkcmF3V2l0aEJveDprUERGRGlzcGxheUJveENyb3BCb3hd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgIFtOU0dyYXBoaWNzQ29udGV4dCByZXN0b3JlR3JhcGhpY3NTdGF0
ZV07CiAKICAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBDR0NvbnRleHRHZXRDVE0o
Y29udGV4dCk7CkBAIC04MzIsMTAgKzgzMSw5IEBAIHN0YXRpYyB2b2lkIGRyYXdQREZQYWdlKFBE
RkRvY3VtZW50ICpwZGZEb2N1bWVudCwgQ0ZJbmRleCBwYWdlSW5kZXgsIENHQ29udGV4dFJlCiAg
ICAgICAgIGlmICghW2Fubm90YXRpb24gaXNLaW5kT2ZDbGFzczpwZGZBbm5vdGF0aW9uTGlua0Ns
YXNzKCldKQogICAgICAgICAgICAgY29udGludWU7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICAgICAgUERGQW5ub3RhdGlvbkxpbmsgKmxpbmtBbm5vdGF0aW9uID0gKFBERkFubm90YXRp
b25MaW5rICopYW5ub3RhdGlvbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIE5TVVJMICp1cmwg
PSBbbGlua0Fubm90YXRpb24gVVJMXTsKICAgICAgICAgaWYgKCF1cmwpCiAgICAgICAgICAgICBj
b250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJi
b25VdGlscy5tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvblV0aWxzLm0K
aW5kZXggYjc5NWU5YjQyYTZlNzE0ODVkZDE3N2NjZDlkZGM3M2E0OTQ3ZTBkZi4uOGM0ZmE1MjRl
OTgzNDFmOTYzYWI5YzBmNGJlZDExNjRiNDM2Y2E5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2FyYm9uL0NhcmJvblV0aWxzLm0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2FyYm9uL0NhcmJvblV0aWxzLm0KQEAgLTg3LDEwICs4Nyw5IEBAIHN0YXRpYyB1bnNp
Z25lZCBnZXROU0F1dG9yZWxlYXNlUG9vbENvdW50KHZvaWQpCiBQb29sQ2xlYW5lciggRXZlbnRM
b29wVGltZXJSZWYgaW5UaW1lciwgRXZlbnRMb29wSWRsZVRpbWVyTWVzc2FnZSBpblN0YXRlLCB2
b2lkICppblVzZXJEYXRhICkKIHsKICAgICBpZiAoIGluU3RhdGUgPT0ga0V2ZW50TG9vcElkbGVU
aW1lclN0YXJ0ZWQgKSB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XY2FzdC1xdWFsIgorICAgICAgICBJR05PUkVfV0FS
TklOR1NfQkVHSU4oImNhc3QtcXVhbCIpCiAgICAgICAgIENGU3RyaW5nUmVmIG1vZGUgPSBDRlJ1
bkxvb3BDb3B5Q3VycmVudE1vZGUoIChDRlJ1bkxvb3BSZWYpR2V0Q0ZSdW5Mb29wRnJvbUV2ZW50
TG9vcCggR2V0Q3VycmVudEV2ZW50TG9vcCgpICkpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBJR05PUkVfV0FSTklOR1NfRU5ECiAgICAgICAgIEV2ZW50TG9vcFJlZiB0
aGlzTG9vcCA9IEdldEN1cnJlbnRFdmVudExvb3AgKCk7CiAgICAgICAgIGlmICggQ0ZFcXVhbCgg
bW9kZSwga0NGUnVuTG9vcERlZmF1bHRNb2RlICkgJiYgdGhpc0xvb3AgPT0gcG9vbExvb3ApIHsK
ICAgICAgICAgICAgIHVuc2lnbmVkIGN1cnJlbnROdW1Qb29scyA9IGdldE5TQXV0b3JlbGVhc2VQ
b29sQ291bnQoKS0xOyAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2FyYm9uL0NhcmJvbldpbmRvd0FkYXB0ZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DYXJib24vQ2FyYm9uV2luZG93QWRhcHRlci5tbQppbmRleCBkMTUyMmYzZjAyM2VmMGY2
ZGUzMzYyYmRhM2IzMDQ5NDc4ODhjMGJmLi5iMDllMDZjMjQ5ZmJkMDhlZWU3ZDZlOTM0NzY1OTMx
Nzk1Y2YzNTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2Fy
Ym9uV2luZG93QWRhcHRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24v
Q2FyYm9uV2luZG93QWRhcHRlci5tbQpAQCAtMTc3LDEwICsxNzcsOSBAQCBzdGF0aWMgT1NTdGF0
dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRI
YW5kbGVyQ2FsbAogICAgIC8vIEJ1dCBub3cgdGhlIG5vbi1yZXRhaW5lZCB3aW5kb3cgY2xhc3Mg
aXMgYSBDYXJib24gc2VjcmV0IHRoYXQncyBub3QgZXZlbiBpbgogICAgIC8vIFdpbmRvd3NQcml2
Lmg7IG1heWJlIHdlJ2xsIGhhdmUgdG8gcmV2aXNpdCB0aGlzIGlmIHNvbWVvbmUgbmVlZHMgdG8g
dXNlIFdlYktpdAogICAgIC8vIGluIGEgbm9uLXJldGFpbmVkIHdpbmRvdy4KLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgIGJhY2tpbmdTdG9yZVR5cGUgPSBOU0JhY2tpbmdTdG9yZVJldGFpbmVkOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogCiAgICAgLy8gRmlndXJlIG91dCB0aGUgd2luZG93J3Mgc3R5bGUgbWFzay4K
ICAgICBzdHlsZU1hc2sgPSBfTlNDYXJib25XaW5kb3dNYXNrOwpAQCAtMjA1LDEwICsyMDQsOSBA
QCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJD
YWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAgIC8vIERvIHNvbWUgc3RhbmRhcmQgQ29jb2Eg
aW5pdGlhbGl6YXRpb24uICBUaGUgZGVmZXIgYXJndW1lbnQncyB2YWx1ZSBpcyBZRVMgYmVjYXVz
ZSB3ZSBkb24ndCB3YW50IC1bTlNXaW5kb3cgX2NvbW1vbkF3YWtlXSB0byBnZXQgY2FsbGVkLiAg
SXQgZG9lc24ndCBhcHBlYXIgdGhhdCBhbnkgcmVsZXZhbnQgTlNXaW5kb3cgY29kZSBjaGVja3Mg
X3dGbGFncy5kZWZlcnJlZCwgc28gd2Ugc2hvdWxkIGJlIGFibGUgdG8gZ2V0IGF3YXkgd2l0aCB0
aGUgbGllLgogICAgIHNlbGYgPSAoQ2FyYm9uV2luZG93QWRhcHRlciopW3N1cGVyIF9pbml0Q29u
dGVudDpudWxscHRyIHN0eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpiYWNraW5nU3RvcmVUeXBl
IGRlZmVyOllFUyBjb250ZW50VmlldzpjYXJib25XaW5kb3dDb250ZW50Vmlld107CiAgICAgaWYg
KCFzZWxmKSByZXR1cm4gbmlsOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgYXNzZXJ0KF9jb250
ZW50Vmlldyk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICAvLyBSZWNvcmQgYWNjdXJhdGVseSB3aGV0aGVy
IG9yIG5vdCB0aGlzIHdpbmRvdyBoYXMgYSBzaGFkb3csIGluIGNhc2Ugc29tZW9uZSBhc2tzLgog
IC8vICAgX2F1eGlsaWFyeVN0b3JhZ2UtPl9hdXhXRmxhZ3MuaGFzU2hhZG93ID0gKHdpbmRvd0F0
dHJpYnV0ZXMgJiBrV2luZG93Tm9TaGFkb3dBdHRyaWJ1dGUpID8gTk8gOiBZRVM7CkBAIC0yODEs
MTAgKzI3OSw5IEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2
ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAgICAgLy8gZmx1c2hlcyBpdC4K
IAogICAgIGlmIChbc2VsZiB3aW5kb3dOdW1iZXJdICE9IC0xKSB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSAoQ0dDb250ZXh0UmVmKVtb
c2VsZiBfdGhyZWFkQ29udGV4dF0gZ3JhcGhpY3NQb3J0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAg
ICAgIENHQ29udGV4dFN5bmNocm9uaXplKGNnQ29udGV4dCk7CiAgICAgfQogfQpAQCAtMzc0LDEx
ICszNzEsMTAgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZl
bnRIYW5kbGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKICAgICAvLyBJbml0aWFsaXplIGZv
ciBzYWZlIHJldHVybmluZy4KICAgICBCT09MIHJlY29uY2lsaWF0aW9uV2FzTmVjZXNzYXJ5ID0g
Tk87CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIFByZWNvbmRpdGlvbiBjaGVjay4KICAg
ICBhc3NlcnQoX2NvbnRlbnRWaWV3KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIC8vIEdldCB0aGUgQ2Fy
Ym9uIHdpbmRvdydzIGJvdW5kcywgd2hpY2ggYXJlIGV4cHJlc3NlZCBpbiBnbG9iYWwgc2NyZWVu
IGNvb3JkaW5hdGVzLCB3aXRoICgwLDApIGF0IHRoZSB0b3AtbGVmdCBvZiB0aGUgbWFpbiBzY3Jl
ZW4uCiAgICAgb3NTdGF0dXMgPSBHZXRXaW5kb3dCb3VuZHMoX3dpbmRvd1JlZiwga1dpbmRvd1N0
cnVjdHVyZVJnbiwgJndpbmRvd1N0cnVjdHVyZUJvdW5kc1JlY3QpOwpAQCAtMzkzLDI4ICszODks
MjYgQEAgc3RhdGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5k
bGVyQ2FsbFJlZiBpbkV2ZW50SGFuZGxlckNhbGwKICAgICBuZXdXaW5kb3dGcmFtZVJlY3Qub3Jp
Z2luLnkgPSBOU01heFkoWyhOU1NjcmVlbiAqKVtbTlNTY3JlZW4gc2NyZWVuc10gb2JqZWN0QXRJ
bmRleDowXSBmcmFtZV0pIC0gd2luZG93U3RydWN0dXJlQm91bmRzUmVjdC5ib3R0b207CiAgICAg
bmV3V2luZG93RnJhbWVSZWN0LnNpemUud2lkdGggPSB3aW5kb3dTdHJ1Y3R1cmVCb3VuZHNSZWN0
LnJpZ2h0IC0gd2luZG93U3RydWN0dXJlQm91bmRzUmVjdC5sZWZ0OwogICAgIG5ld1dpbmRvd0Zy
YW1lUmVjdC5zaXplLmhlaWdodCA9IHdpbmRvd1N0cnVjdHVyZUJvdW5kc1JlY3QuYm90dG9tIC0g
d2luZG93U3RydWN0dXJlQm91bmRzUmVjdC50b3A7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBp
ZiAoIU5TRXF1YWxSZWN0cyhuZXdXaW5kb3dGcmFtZVJlY3QsIF9mcmFtZSkpIHsKICAgICAgICAg
W3NlbGYgX3NldEZyYW1lOm5ld1dpbmRvd0ZyYW1lUmVjdF07CiAgICAgICAgIFtfYm9yZGVyVmll
dyBzZXRGcmFtZVNpemU6bmV3V2luZG93RnJhbWVSZWN0LnNpemVdOwogICAgICAgICByZWNvbmNp
bGlhdGlvbldhc05lY2Vzc2FyeSA9IFlFUzsKICAgICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICAvLyBT
ZXQgdGhlIGNvbnRlbnQgdmlldydzIGZyYW1lIHJlY3QgZnJvbSB0aGUgQ2FyYm9uIHdpbmRvdydz
IGNvbnRlbnQgcmVnaW9uIGJvdW5kcy4KICAgICBuZXdDb250ZW50RnJhbWVSZWN0Lm9yaWdpbi54
ID0gd2luZG93Q29udGVudEJvdW5kc1JlY3QubGVmdCAtIHdpbmRvd1N0cnVjdHVyZUJvdW5kc1Jl
Y3QubGVmdDsKICAgICBuZXdDb250ZW50RnJhbWVSZWN0Lm9yaWdpbi55ID0gd2luZG93U3RydWN0
dXJlQm91bmRzUmVjdC5ib3R0b20gLSB3aW5kb3dDb250ZW50Qm91bmRzUmVjdC5ib3R0b207CiAg
ICAgbmV3Q29udGVudEZyYW1lUmVjdC5zaXplLndpZHRoID0gd2luZG93Q29udGVudEJvdW5kc1Jl
Y3QucmlnaHQgLSB3aW5kb3dDb250ZW50Qm91bmRzUmVjdC5sZWZ0OwogICAgIG5ld0NvbnRlbnRG
cmFtZVJlY3Quc2l6ZS5oZWlnaHQgPSB3aW5kb3dDb250ZW50Qm91bmRzUmVjdC5ib3R0b20gLSB3
aW5kb3dDb250ZW50Qm91bmRzUmVjdC50b3A7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBvbGRD
b250ZW50RnJhbWVSZWN0ID0gWyhOU1ZpZXcgKilfY29udGVudFZpZXcgZnJhbWVdOwogICAgIGlm
ICghTlNFcXVhbFJlY3RzKG5ld0NvbnRlbnRGcmFtZVJlY3QsIG9sZENvbnRlbnRGcmFtZVJlY3Qp
KSB7CiAgICAgICAgIFsoTlNWaWV3ICopX2NvbnRlbnRWaWV3IHNldEZyYW1lOm5ld0NvbnRlbnRG
cmFtZVJlY3RdOwogICAgICAgICByZWNvbmNpbGlhdGlvbldhc05lY2Vzc2FyeSA9IFlFUzsKICAg
ICB9Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAKICAgICAvLyBEb25lLgogICAgIHJldHVybiByZWNvbmNpbGlhdGlv
bldhc05lY2Vzc2FyeTsKQEAgLTU5NSw4ICs1ODksNyBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJi
b25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2Fs
bAogLy8gVGhpcyBmdW5jdGlvbiBpcyBtb3N0bHkgY3V0LWFuZC1wYXN0ZWQgZnJvbSAtW05TV2lu
ZG93IF90ZXJtV2luZG93SWZPd25lcl0uICBNLlAuIE5vdGljZSAtIDgvNy8wMAogLSAodm9pZClf
dGVybVdpbmRvd0lmT3duZXIKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtzZWxmIF9zZXRX
aW5kb3dOdW1iZXI6LTFdOwogICAgIF93RmxhZ3MuaXNUZXJtaW5hdGluZyA9IFlFUzsKICAgICBp
ZiAoX3dpbmRvd1JlZiAmJiBfd2luZG93UmVmSXNPd25lZCkKQEAgLTYwNiw3ICs1OTksNyBAQCBz
dGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5kb3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxs
UmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogLy8gICAgICAgIFtfYm9yZGVyVmlldyBzZXRTaGFkb3dT
dGF0ZTprRnJhbWVTaGFkb3dOb25lXTsKIC8vICAgIH0KICAgICBfd0ZsYWdzLmlzVGVybWluYXRp
bmcgPSBOTzsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogCkBAIC02MjYsMTAgKzYxOSw5IEBAIHN0YXRpYyBP
U1N0YXR1cyBOU0NhcmJvbldpbmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5F
dmVudEhhbmRsZXJDYWxsCiAgICAgW3N1cGVyIF93aW5kb3dNb3ZlZFRvUmVjdDphY3R1YWxGcmFt
ZV07CiAKICAgICAvLyBMZXQgQ2FyYm9uIGtub3cgdGhhdCB0aGUgd2luZG93IGhhcyBiZWVuIG1v
dmVkLCB1bmxlc3MgdGhpcyBtZXRob2QgaXMgYmVpbmcgY2FsbGVkICJlYXJseS4iCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBpZiAoX3dGbGFncy52aXNpYmxlKSB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgICAgICBvc1N0YXR1cyA9IF9TeW5jV2luZG93V2l0aENHQWZ0ZXJNb3ZlKF93aW5kb3dSZWYp
OwogICAgICAgICBpZiAob3NTdGF0dXMhPW5vRXJyKSBOU0xvZyhAIkEgQ2FyYm9uIHdpbmRvdydz
IGJvdW5kcyBjb3VsZG4ndCBiZSBzeW5jaHJvbml6ZWQgKCVpKS4iLCAoaW50KW9zU3RhdHVzKTsK
ICAgICB9CkBAIC03NTgsMTEgKzc1MCwxMCBAQCBzdGF0aWMgT1NTdGF0dXMgTlNDYXJib25XaW5k
b3dIYW5kbGVFdmVudChFdmVudEhhbmRsZXJDYWxsUmVmIGluRXZlbnRIYW5kbGVyQ2FsbAogICAg
IFJlY3Qgd2luZG93Q29udGVudEJvdW5kc1JlY3Q7CiAKICAgICAvLyBQcmVjb25kaXRpb24gY2hl
Y2suCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBhc3NlcnQoX2JvcmRlclZpZXcpOwogICAgIGFz
c2VydChbX2JvcmRlclZpZXcgaXNLaW5kT2ZDbGFzczpbQ2FyYm9uV2luZG93RnJhbWUgY2xhc3Nd
XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAgICAgYXNzZXJ0KF93aW5kb3dSZWYpOwogCiAgICAgLy8gUGFyYW1l
dGVyIGNoZWNrLgpAQCAtNzc2LDggKzc2Nyw3IEBAIHN0YXRpYyBPU1N0YXR1cyBOU0NhcmJvbldp
bmRvd0hhbmRsZUV2ZW50KEV2ZW50SGFuZGxlckNhbGxSZWYgaW5FdmVudEhhbmRsZXJDYWxsCiAg
ICAgY29udGVudEZyYW1lUmVjdC5zaXplLndpZHRoID0gd2luZG93Q29udGVudEJvdW5kc1JlY3Qu
cmlnaHQgLSB3aW5kb3dDb250ZW50Qm91bmRzUmVjdC5sZWZ0OwogICAgIGNvbnRlbnRGcmFtZVJl
Y3Quc2l6ZS5oZWlnaHQgPSB3aW5kb3dDb250ZW50Qm91bmRzUmVjdC5ib3R0b20gLSB3aW5kb3dD
b250ZW50Qm91bmRzUmVjdC50b3A7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIElmIHRo
ZSBjb250ZW50IHZpZXcgaXMgc3RpbGwgaW4gc29tZSBvdGhlciB2aWV3IGhpZXJhcmNoeSwgcHJ5
IGl0IGZyZWUuCiAgICAgW19jb250ZW50VmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKICAgICBh
c3NlcnQoIVtfY29udGVudFZpZXcgc3VwZXJ2aWV3XSk7CkBAIC03OTEsNyArNzgxLDcgQEAgc3Rh
dGljIE9TU3RhdHVzIE5TQ2FyYm9uV2luZG93SGFuZGxlRXZlbnQoRXZlbnRIYW5kbGVyQ2FsbFJl
ZiBpbkV2ZW50SGFuZGxlckNhbGwKIAogICAgIC8vIFRlbGwgdGhlIGNvbnRlbnQgdmlldyBpdCdz
IG5ldyBwbGFjZSBpbiB0aGUgcmVzcG9uZGVyIGNoYWluLgogICAgIFtfY29udGVudFZpZXcgc2V0
TmV4dFJlc3BvbmRlcjpzZWxmXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogCkBAIC05NDQsMTAgKzkzNCw5
IEBAIENsZWFuVXA6CiAgICAgSElSZWN0IGZyYW1lOwogCiAgICAgSElWaWV3R2V0RnJhbWUocm9v
dCwgJmZyYW1lKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtfYm9yZGVyVmlldyBzZXRGcmFt
ZVNpemU6KihOU1NpemUqKSZmcmFtZS5zaXplXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogLSAodm9pZClf
aGFuZGxlQ29udGVudEJvdW5kc0NoYW5nZWQKQEAgLTk2NCwxMyArOTUzLDEyIEBAIENsZWFuVXA6
CiAgICAgLy8gU2V0IHRoZSBjb250ZW50IHZpZXcncyBmcmFtZSByZWN0IGZyb20gdGhlIENhcmJv
biB3aW5kb3cncyBjb250ZW50IHJlZ2lvbiBib3VuZHMuCiAgICAgY29udGVudEZyYW1lLm9yaWdp
bi55ID0gcm9vdEJvdW5kcy5zaXplLmhlaWdodCAtIENHUmVjdEdldE1heFkoY29udGVudEZyYW1l
KTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgb2xkQ29udGVudEZyYW1lUmVjdCA9IFsoTlNW
aWV3ICopX2NvbnRlbnRWaWV3IGZyYW1lXTsKICAgICBpZiAoIU5TRXF1YWxSZWN0cygqKE5TUmVj
dCopJmNvbnRlbnRGcmFtZSwgb2xkQ29udGVudEZyYW1lUmVjdCkpIHsKICAgICAgICAgWyhOU1Zp
ZXcgKilfY29udGVudFZpZXcgc2V0RnJhbWU6KihOU1JlY3QqKSZjb250ZW50RnJhbWVdOwogICAg
IH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIH0KIAogLSAoT1NTdGF0dXMpX2hhbmRsZUNhcmJvbkV2ZW50OihFdmVu
dFJlZilpbkV2ZW50IGNhbGxSZWY6KEV2ZW50SGFuZGxlckNhbGxSZWYpaW5DYWxsUmVmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DYXJib24vQ2FyYm9uV2luZG93RnJhbWUu
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dGcmFtZS5tCmlu
ZGV4IGU5MjZlYjZjMjFlMGZhODhmMjhkYzRhMDYxYzM5MDIyNTMyNWViOTcuLmE3Y2JmMzM4NDg4
NWQ1MGIyZTRkYTI5ZDkyN2ZkNWQxMmRlODJiMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dGcmFtZS5tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NhcmJvbi9DYXJib25XaW5kb3dGcmFtZS5tCkBAIC0yNDEsMTAgKzI0MSw5IEBA
IC0gKE5TU3RyaW5nICopdGl0bGUgewogICAgIHdpbmRvd1JlZiA9IFtjYXJib25XaW5kb3cgd2lu
ZG93UmVmXTsKICAgICBvc1N0YXR1cyA9IENvcHlXaW5kb3dUaXRsZUFzQ0ZTdHJpbmcod2luZG93
UmVmLCAmd2luZG93VGl0bGUpOwogICAgIGlmIChvc1N0YXR1cz09bm9FcnIpIHsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdjYXN0LXF1YWwiCisgICAgICAgIElHTk9SRV9XQVJOSU5HU19CRUdJTigiY2FzdC1xdWFsIikK
ICAgICAgICAgd2luZG93VGl0bGVBc05TU3RyaW5nID0gKE5TU3RyaW5nICopd2luZG93VGl0bGU7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIElHTk9SRV9XQVJOSU5HU19F
TkQKICAgICB9IGVsc2UgewogICAgICAgICBOU0xvZyhAIkEgQ2FyYm9uIHdpbmRvdydzIHRpdGxl
IGNvdWxkbid0IGJlIGdvdHRlbi4iKTsKICAgICAgICAgd2luZG93VGl0bGVBc05TU3RyaW5nID0g
QCIiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJVmlld0Fk
YXB0ZXIubSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVZpZXdBZGFwdGVyLm0K
aW5kZXggZjNkOTk2NWFiN2ZkMTM4NGFiYjU1ZTU5YzVhMDk0NGI1ZTYwMWU3MC4uZTE3Y2JjNjc3
OTY2ZjIzMmRjYjBmMjE0ZTViMDY2NzcyM2YxMmE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2FyYm9uL0hJVmlld0FkYXB0ZXIubQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DYXJib24vSElWaWV3QWRhcHRlci5tCkBAIC04OCwxMCArODgsOSBAQCArICh2b2lk
KWJpbmRISVZpZXdUb05TVmlldzooSElWaWV3UmVmKWhpVmlldyBuc1ZpZXc6KE5TVmlldyopbnNW
aWV3CiAKICsgKEhJVmlld1JlZilnZXRISVZpZXdGb3JOU1ZpZXc6KE5TVmlldyopaW5WaWV3CiB7
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XY2FzdC1xdWFsIgorICAgIElHTk9SRV9XQVJOSU5HU19CRUdJTigiY2FzdC1x
dWFsIikKICAgICByZXR1cm4gc1ZpZXdNYXAgPyAoSElWaWV3UmVmKUNGRGljdGlvbmFyeUdldFZh
bHVlKHNWaWV3TWFwLCBpblZpZXcpIDogTlVMTDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBJR05PUkVfV0FSTklOR1NfRU5ECiB9CiAKICsgKHZvaWQpdW5iaW5kTlNWaWV3OihO
U1ZpZXcqKWluVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2FyYm9u
L0hJV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NhcmJvbi9ISVdlYlZpZXcu
bW0KaW5kZXggNDA2Yjc3OWZhY2Y3YTNkNDE0YmIyZGZjYTM5NTUxNjRlNzYyOTI2YS4uODBmMzUx
Y2E5OTEwODlhMTBhMTI2NDE2Y2Q5ZjU3M2M5ZWY5NTc2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2FyYm9uL0hJV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DYXJib24vSElXZWJWaWV3Lm1tCkBAIC0yODgsMTEgKzI4OCwxMCBAQCBzdGF0aWMg
VUludDMyIEdldEJlaGF2aW9ycygpCiAKIHN0YXRpYyBDR0NvbnRleHRSZWYgb3ZlcnJpZGVDR0Nv
bnRleHQoTlNXaW5kb3cgKndpbmRvdywgQ0dDb250ZXh0UmVmIGNvbnRleHQpCiB7Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KICAgICBOU1dpbmRvd0dyYXBoaWNzQ29udGV4dCAqZ3JhcGhpY3NDb250ZXh0
ID0gKE5TV2luZG93R3JhcGhpY3NDb250ZXh0ICopd2luZG93LmdyYXBoaWNzQ29udGV4dDsKICAg
ICBDR0NvbnRleHRSZWYgc2F2ZWRDb250ZXh0ID0gKENHQ29udGV4dFJlZilncmFwaGljc0NvbnRl
eHQuZ3JhcGhpY3NQb3J0OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIENHQ29udGV4dFJldGFpbihzYXZlZENv
bnRleHQpOwogICAgIFtncmFwaGljc0NvbnRleHQgX3dlYl9zZXRHcmFwaGljc1BvcnQ6Y29udGV4
dF07CiAgICAgcmV0dXJuIHNhdmVkQ29udGV4dDsKQEAgLTMwMCwxMCArMjk5LDkgQEAgc3RhdGlj
IENHQ29udGV4dFJlZiBvdmVycmlkZUNHQ29udGV4dChOU1dpbmRvdyAqd2luZG93LCBDR0NvbnRl
eHRSZWYgY29udGV4dCkKIAogc3RhdGljIHZvaWQgcmVzdG9yZUNHQ29udGV4dChOU1dpbmRvdyAq
d2luZG93LCBDR0NvbnRleHRSZWYgc2F2ZWRDb250ZXh0KQogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgTlNXaW5kb3dHcmFwaGljc0NvbnRleHQgKmdyYXBoaWNzQ29udGV4dCA9IChOU1dpbmRv
d0dyYXBoaWNzQ29udGV4dCAqKXdpbmRvdy5ncmFwaGljc0NvbnRleHQ7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgW2dyYXBoaWNzQ29udGV4dCBfd2ViX3NldEdyYXBoaWNzUG9ydDpzYXZlZENvbnRleHRdOwog
ICAgIENHQ29udGV4dFJlbGVhc2Uoc2F2ZWRDb250ZXh0KTsKIH0KQEAgLTMyMywxMiArMzIxLDEx
IEBAIHN0YXRpYyB2b2lkIERyYXcoSElXZWJWaWV3KiBpblZpZXcsIFJnbkhhbmRsZSBsaW1pdFJn
biwgQ0dDb250ZXh0UmVmIGluQ29udGV4dCkKICAgICAgICAgR3JhZlB0ciBwb3J0OwogICAgICAg
ICBSZWN0IHBvcnRSZWN0OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIEdldFBv
cnQoJnBvcnQpOwogICAgICAgICBHZXRQb3J0Qm91bmRzKHBvcnQsICZwb3J0UmVjdCk7CiAgICAg
ICAgIENyZWF0ZUNHQ29udGV4dEZvclBvcnQocG9ydCwgJmluQ29udGV4dCk7Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICAgICAgU3luY0NHQ29udGV4dE9yaWdpbldpdGhQb3J0KGluQ29udGV4dCwgcG9y
dCk7CiAgICAgICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShpbkNvbnRleHQsIDAsIChwb3J0UmVj
dC5ib3R0b20gLSBwb3J0UmVjdC50b3ApKTsKICAgICAgICAgQ0dDb250ZXh0U2NhbGVDVE0oaW5D
b250ZXh0LCAxLCAtMSk7CkBAIC0xNDc1LDcgKzE0NzIsOSBAQCBVcGRhdGVPYnNlcnZlcihDRlJ1
bkxvb3BPYnNlcnZlclJlZiBvYnNlcnZlciwgQ0ZSdW5Mb29wQWN0aXZpdHkgYWN0aXZpdHksIHZv
aWQgKgogICAgIC8vIHByaW50ZigiVXBkYXRlIG9ic2VydmVyIGNhbGxlZFxuIik7CiAKICAgICBp
ZiAocmVnaW9uKSB7CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgICAgIEdldFdpbmRvd1JlZ2lvbihHZXRDb250cm9sT3duZXIodmlldy0+ZlZpZXdSZWYp
LCBrV2luZG93VXBkYXRlUmduLCByZWdpb24pOworICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICAgICAgICAgCiAgICAgICAgIGlmICghRW1wdHlSZ24ocmVnaW9uKSkg
ewogICAgICAgICAgICAgUmduSGFuZGxlIG91clJnbiA9IE5ld1JnbigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0RPTS9ET00ubW0KaW5kZXggOGViYjhhMGRhZjYzNDVmMjE5MDNkNmZlY2IyNGQ4ZjE0ZTA2
YzJhMS4uYjFiZWQwYTlmNjFhNWMxMmE2OGZlMmRkNDE5OTViZjI3MTcyZmEwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9ET00vRE9NLm1tCkBAIC0yNDQsOCArMjQ0LDcgQEAgc3RhdGljIGlubGluZSBX
S1F1YWQgemVyb1F1YWQoKQogCiBAaW1wbGVtZW50YXRpb24gRE9NTm9kZSAoV2ViQ29yZUludGVy
bmFsKQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1Xb2JqYy1wcm90b2NvbC1tZXRob2QtaW1wbGVtZW50YXRpb24iCitJ
R05PUkVfQ0xBTkdfV0FSTklOR1NfQkVHSU4oIm9iamMtcHJvdG9jb2wtbWV0aG9kLWltcGxlbWVu
dGF0aW9uIikKIAogLSAoTlNTdHJpbmcgKilkZXNjcmlwdGlvbgogewpAQCAtMjU5LDcgKzI1OCw3
IEBAIHN0YXRpYyBpbmxpbmUgV0tRdWFkIHplcm9RdWFkKCkKICAgICByZXR1cm4gW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCI8JUAgWyVAXTogJXA+IiwgW1tzZWxmIGNsYXNzXSBkZXNjcmlw
dGlvbl0sIFtzZWxmIG5vZGVOYW1lXSwgX2ludGVybmFsXTsKIH0KIAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogCiAtIChCaW5kaW5nczo6
Um9vdE9iamVjdCopX3Jvb3RPYmplY3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hp
c3RvcnkvV2ViSGlzdG9yeS5tbQppbmRleCA5MDQ5NmJiYjk5MzY0Mjk5NmJmNWEyNDU2ZGY4Njg4
ZGY4NjU2MDdiLi40ZDE2ZTM4ODA2MWQ5Y2ZlZjNiODdhOWNhZTlhYjc4MGQwNDJmZjI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnkubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5Lm1tCkBAIC00NDYs
OCArNDQ2LDcgQEAgc3RhdGljIGlubGluZSBXZWJIaXN0b3J5RGF0ZUtleSBkYXRlS2V5KE5TVGlt
ZUludGVydmFsIGRhdGUpCiAKIC8vIE1BUks6IERBVEUtQkFTRUQgUkVUUklFVkFMCiAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAKIC0gKE5TQXJyYXkgKilvcmRlcmVkTGFzdFZpc2l0ZWREYXlzCiB7CkBAIC00
NzksNyArNDc4LDcgQEAgc3RhdGljIGlubGluZSBXZWJIaXN0b3J5RGF0ZUtleSBkYXRlS2V5KE5T
VGltZUludGVydmFsIGRhdGUpCiAgICAgcmV0dXJuIF9lbnRyaWVzQnlEYXRlLT5nZXQoZGF0ZUtl
eSkuZ2V0KCk7CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK0FMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogCiAvLyBNQVJLOiBVUkwgTUFUQ0hJTkcKIApAQCAtNTMx
LDggKzUzMCw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViSGlzdG9yeURhdGVLZXkgZGF0ZUtleShOU1Rp
bWVJbnRlcnZhbCBkYXRlKQogICAgIHJldHVybiBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNl
ckRlZmF1bHRzXSBpbnRlZ2VyRm9yS2V5OkAiV2ViS2l0SGlzdG9yeUl0ZW1MaW1pdCJdOwogfQog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogCiAvLyBSZXR1cm4gYSBkYXRlIHRoYXQgbWFya3MgdGhlIGFnZSBs
aW1pdCBmb3IgaGlzdG9yeSBlbnRyaWVzIHNhdmVkIHRvIG9yCiAvLyBsb2FkZWQgZnJvbSBkaXNr
LiBBbnkgZW50cnkgb2xkZXIgdGhhbiB0aGlzIGl0ZW0gc2hvdWxkIGJlIHJlamVjdGVkLgpAQCAt
NTQyLDcgKzU0MCw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViSGlzdG9yeURhdGVLZXkgZGF0ZUtleShO
U1RpbWVJbnRlcnZhbCBkYXRlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaG91cnM6MCBtaW51dGVzOjAgc2Vjb25kczowXTsKIH0KIAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAKIC0gKEJPT0wpbG9hZEhpc3RvcnlHdXRzRnJvbVVSTDooTlNVUkwgKilVUkwgc2F2ZWRJ
dGVtc0NvdW50OihpbnQgKiludW1iZXJPZkl0ZW1zTG9hZGVkIGNvbGxlY3REaXNjYXJkZWRJdGVt
c0ludG86KE5TTXV0YWJsZUFycmF5ICopZGlzY2FyZGVkSXRlbXMgZXJyb3I6KE5TRXJyb3IgKiop
ZXJyb3IKIHsKQEAgLTU2MSwxMCArNTU5LDkgQEAgc3RhdGljIGlubGluZSBXZWJIaXN0b3J5RGF0
ZUtleSBkYXRlS2V5KE5TVGltZUludGVydmFsIGRhdGUpCiAgICAgICAgICAgICByZXR1cm4gTk87
CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAg
ICBOU0RhdGEgKmRhdGEgPSBbTlNVUkxDb25uZWN0aW9uIHNlbmRTeW5jaHJvbm91c1JlcXVlc3Q6
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpVUkxdIHJldHVybmluZ1Jlc3BvbnNlOm5pbCBl
cnJvcjplcnJvcl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBpZiAoZGF0YS5sZW5ndGgpCiAg
ICAgICAgICAgICBkaWN0aW9uYXJ5ID0gW05TUHJvcGVydHlMaXN0U2VyaWFsaXphdGlvbiBwcm9w
ZXJ0eUxpc3RXaXRoRGF0YTpkYXRhIG9wdGlvbnM6TlNQcm9wZXJ0eUxpc3RJbW11dGFibGUgZm9y
bWF0Om51bGxwdHIgZXJyb3I6bnVsbHB0cl07CiAgICAgfQpAQCAtNzY4LDE1ICs3NjUsMTQgQEAg
c3RhdGljIGlubGluZSBXZWJIaXN0b3J5RGF0ZUtleSBkYXRlS2V5KE5TVGltZUludGVydmFsIGRh
dGUpCiAgICAgcmV0dXJuIFtfaGlzdG9yeVByaXZhdGUgb3JkZXJlZExhc3RWaXNpdGVkRGF5c107
CiB9CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAKIC0gKE5TQXJyYXkgKilvcmRlcmVkSXRlbXNMYXN0Vmlz
aXRlZE9uRGF5OihOU0NhbGVuZGFyRGF0ZSAqKWRhdGUKIHsKICAgICByZXR1cm4gW19oaXN0b3J5
UHJpdmF0ZSBvcmRlcmVkSXRlbXNMYXN0VmlzaXRlZE9uRGF5OmRhdGVdOwogfQogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
IAogLy8gTUFSSzogVVJMIE1BVENISU5HCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCmluZGV4IGNjMTg1N2FmMDJiYWEwNzllYzkyYTgx
ZTQ2MDUwMDU4OTIzYTljOTguLjhmMTdjM2FmODlmMmIyNzRhYjQ3NTQ1ZWE5ZjllYWFhNmM5ZWNk
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9y
eUl0ZW0ubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5
SXRlbS5tbQpAQCAtMTk5LDEwICsxOTksOSBAQCB2b2lkIFdLTm90aWZ5SGlzdG9yeUl0ZW1DaGFu
Z2VkKEhpc3RvcnlJdGVtKikKICNpZiAhUExBVEZPUk0oSU9TKQogLSAoTlNJbWFnZSAqKWljb24K
IHsKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaCAKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBbW1dlYkljb25EYXRhYmFzZSBzaGFyZWRJ
Y29uRGF0YWJhc2VdIGljb25Gb3JVUkw6W3NlbGYgVVJMU3RyaW5nXSB3aXRoU2l6ZTpXZWJJY29u
U21hbGxTaXplXTsKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvTWlzYy9XZWJLaXROU1N0cmluZ0V4dHJhcy5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL01pc2MvV2ViS2l0TlNTdHJpbmdFeHRyYXMubW0KaW5kZXggN2Y5OTUwMmYz
NmI3NDkyM2YzMTFlMDA2MWFlYmUxNGQ3NjY0NmNjZS4uMDdmMTQxYzc5ZTQ0ZWQ5OGJjNjk3OTlj
OTJmNWJkM2VjZTc0Yzg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlz
Yy9XZWJLaXROU1N0cmluZ0V4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9N
aXNjL1dlYktpdE5TU3RyaW5nRXh0cmFzLm1tCkBAIC03NywxMCArNzcsOSBAQCBzdGF0aWMgYm9v
bCBjYW5Vc2VGYXN0UmVuZGVyZXIoY29uc3QgVW5pQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5n
dGgpCiAgICAgICAgIHBvaW50LnkgPSBDR0NlaWxpbmcocG9pbnQueSk7CiAKICAgICAgICAgTlNH
cmFwaGljc0NvbnRleHQgKm5zQ29udGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29u
dGV4dF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIENHQ29udGV4dFJlZiBjZ0Nv
bnRleHQgPSBzdGF0aWNfY2FzdDxDR0NvbnRleHRSZWY+KFtuc0NvbnRleHQgZ3JhcGhpY3NQb3J0
XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250
ZXh0IHsgY2dDb250ZXh0IH07CiAKICAgICAgICAgLy8gV2ViQ29yZSByZXF1aXJlcyBhIGZsaXBw
ZWQgZ3JhcGhpY3MgY29udGV4dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L01pc2MvV2ViTlNJbWFnZUV4dHJhcy5tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9X
ZWJOU0ltYWdlRXh0cmFzLm0KaW5kZXggYzMyNjQzYjQ5OGZhZTcwZmQzMTI0YWU1YzQ1NjllMDNl
OTZiMmZjMS4uNWZhYTE3YTJlYzA4NTJkYWYzZjFhYTdlNjUzZTY2YmExZjhkMTE4MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU0ltYWdlRXh0cmFzLm0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU0ltYWdlRXh0cmFzLm0KQEAgLTUz
LDEwICs1Myw5IEBAIC0gKHZvaWQpX3dlYl9zY2FsZVRvTWF4U2l6ZTooTlNTaXplKXNpemUKICAg
ICAKICAgICBpZihyZXNpemVEZWx0YSA+IDAuMCl7CiAgICAgICAgIE5TU2l6ZSBuZXdTaXplID0g
TlNNYWtlU2l6ZSgob3JpZ2luYWxTaXplLndpZHRoICogcmVzaXplRGVsdGEpLCAob3JpZ2luYWxT
aXplLmhlaWdodCAqIHJlc2l6ZURlbHRhKSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
ICAgIFtzZWxmIHNldFNjYWxlc1doZW5SZXNpemVkOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAg
ICAgICBbc2VsZiBzZXRTaXplOm5ld1NpemVdOwogICAgIH0KIH0KQEAgLTY1LDI5ICs2NCwyNSBA
QCAtICh2b2lkKV93ZWJfZGlzc29sdmVUb0ZyYWN0aW9uOihmbG9hdClkZWx0YQogewogICAgIE5T
SW1hZ2UgKmRpc3NvbHZlZEltYWdlID0gW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aFNpemU6W3Nl
bGYgc2l6ZV1dOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU1BvaW50IHBvaW50ID0gW3Nl
bGYgaXNGbGlwcGVkXSA/IE5TTWFrZVBvaW50KDAsIFtzZWxmIHNpemVdLmhlaWdodCkgOiBOU1pl
cm9Qb2ludDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAKICAgICAvLyBJbiB0aGlzIGNhc2UgdGhlIGRyYWdn
aW5nIGltYWdlIGlzIGFsd2F5cyBjb3JyZWN0LgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW2Rp
c3NvbHZlZEltYWdlIHNldEZsaXBwZWQ6W3NlbGYgaXNGbGlwcGVkXV07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAK
ICAgICBbZGlzc29sdmVkSW1hZ2UgbG9ja0ZvY3VzXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
IFtzZWxmIGRpc3NvbHZlVG9Qb2ludDpwb2ludCBmcmFjdGlvbjogZGVsdGFdOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogICAgIFtkaXNzb2x2ZWRJbWFnZSB1bmxvY2tGb2N1c107CiAKICAgICBbc2VsZiBsb2NrRm9j
dXNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW2Rpc3NvbHZlZEltYWdlIGNvbXBvc2l0ZVRv
UG9pbnQ6cG9pbnQgb3BlcmF0aW9uOk5TQ29tcG9zaXRlQ29weV07Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAg
W3NlbGYgdW5sb2NrRm9jdXNdOwogCiAgICAgW2Rpc3NvbHZlZEltYWdlIHJlbGVhc2VdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRy
YXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJh
cy5tbQppbmRleCBmYTIzYzZjYmRiMTQ2Yjg2MmNjZTJlYWU0ODBhZWExMTk5NmMxYmIwLi5kYWJi
Y2RiYzMwYTllMjE3ZWUxZTljYTk4YTQyZDQzM2QyMjkzOTRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQpAQCAtMTg0
LDEwICsxODQsOSBAQCBzdGF0aWMgTlNBcnJheSAqX3dyaXRhYmxlVHlwZXNGb3JJbWFnZVdpdGhB
cmNoaXZlICh2b2lkKQogCiArIChpbnQpX3dlYl9zZXRGaW5kUGFzdGVib2FyZFN0cmluZzooTlNT
dHJpbmcgKilzdHJpbmcgd2l0aE93bmVyOihpZClvd25lcgogewotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgTlNQYXN0ZWJvYXJkICpmaW5kUGFzdGVib2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVi
b2FyZFdpdGhOYW1lOk5TRmluZFBib2FyZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW2ZpbmRQYXN0ZWJv
YXJkIGRlY2xhcmVUeXBlczpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6bGVnYWN5U3RyaW5nUGFz
dGVib2FyZFR5cGUoKV0gb3duZXI6b3duZXJdOwogICAgIFtmaW5kUGFzdGVib2FyZCBzZXRTdHJp
bmc6c3RyaW5nIGZvclR5cGU6bGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUoKV07CiAgICAgcmV0
dXJuIFtmaW5kUGFzdGVib2FyZCBjaGFuZ2VDb3VudF07CkBAIC0yNzksMTAgKzI3OCw5IEBAIHN0
YXRpYyBDYWNoZWRJbWFnZSogaW1hZ2VGcm9tRWxlbWVudChET01FbGVtZW50ICpkb21FbGVtZW50
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmNoaXZlOihXZWJBcmNoaXZl
ICopYXJjaGl2ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOihX
ZWJIVE1MVmlldyAqKXNvdXJjZQogewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQVNTRVJUKHNl
bGYgPT0gW05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6TlNEcmFnUGJvYXJkXSk7Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAKICAgICBOU1N0cmluZyAqZXh0ZW5zaW9uID0gQCIiOwogICAgIFJldGFpblB0
cjxOU011dGFibGVBcnJheT4gdHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2Nd
IGluaXRXaXRoT2JqZWN0czpsZWdhY3lGaWxlc1Byb21pc2VQYXN0ZWJvYXJkVHlwZSgpLCBuaWxd
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BhbmVscy9XZWJBdXRoZW50
aWNhdGlvblBhbmVsLm0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QYW5lbHMvV2ViQXV0aGVu
dGljYXRpb25QYW5lbC5tCmluZGV4IDY3ZjE4YjhmNTM3NWVhYzU0NWIyM2E2M2RiOTc2ZjY5NDc2
YjdkNGUuLjVmYzMyM2M4MjAxMzE0OWNhMmQ1MTIxNmQ2ZTg2OTg3M2E2N2RkYWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BhbmVscy9XZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGFuZWxzL1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwubQpAQCAtMTA0LDEwICsxMDQsOSBAQCAtIChJQkFjdGlvbilsb2dJbjooaWQpc2VuZGVy
CiAtIChCT09MKWxvYWROaWIKIHsKICAgICBpZiAoIW5pYkxvYWRlZCkgewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgICAgICBpZiAoW05TQnVuZGxlIGxvYWROaWJOYW1lZDpXZWJBdXRoZW50
aWNhdGlvblBhbmVsTmliTmFtZSBvd25lcjpzZWxmXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgICAgICAgICBuaWJMb2FkZWQgPSBZRVM7CiAgICAgICAgICAgICBbaW1hZ2VWaWV3IHNldElt
YWdlOltOU0ltYWdlIGltYWdlTmFtZWQ6QCJOU0FwcGxpY2F0aW9uSWNvbiJdXTsKICAgICAgICAg
fSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9z
dGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLm1tCmluZGV4IDAyMTBi
MDY2YmFhZDI2OTdlMDlmMjhlMDg5YWQzNWZhNzRmMzY5ZGYuLmUxNTBhMzdkY2M0YmFjYzg5Yjc0
NmE1MDQ3NTg5N2ZkNDVlMTEyMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdl
ci5tbQpAQCAtMTg3LDEwICsxODcsOSBAQCBib29sIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI6
OnNwYXduUGx1Z2luSG9zdChjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIGNwdV90eQogCiAgICAg
UHJvY2Vzc1NlcmlhbE51bWJlciBwc247CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIEdldEN1
cnJlbnRQcm9jZXNzKCZwc24pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgQVNTRVJUKE1BQ0hfUE9SVF9W
QUxJRChjbGllbnRQb3J0KSk7CiAgICAga3IgPSBfV0tQSENoZWNrSW5XaXRoUGx1Z2luSG9zdChw
bHVnaW5Ib3N0UG9ydCwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KFtk
YXRhIGJ5dGVzXSkpLCBbZGF0YSBsZW5ndGhdLCBjbGllbnRQb3J0LCBwc24uaGlnaExvbmdPZlBT
TiwgcHNuLmxvd0xvbmdPZlBTTiwgcmVuZGVyU2VydmVyUG9ydCwKQEAgLTMyMiwxMSArMzIxLDEw
IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlcjo6ZGlkQ3JlYXRlV2luZG93KCkKICAg
ICAgICAgaWYgKCFob3N0UHJveHktPmlzTWVudUJhclZpc2libGUoKSkgewogICAgICAgICAgICAg
Ly8gTWFrZSBvdXJzZWx2ZXMgdGhlIGZyb250IHByb2Nlc3MuCiAgICAgICAgICAgICBQcm9jZXNz
U2VyaWFsTnVtYmVyIHBzbjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAg
ICBHZXRDdXJyZW50UHJvY2VzcygmcHNuKTsKICAgICAgICAgICAgIFNldEZyb250UHJvY2Vzcygm
cHNuKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
bHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQppbmRleCBlYzVmMGRhNThh
NjJhOWU1NDQ3OGNjMmMwZjcwN2ViNGM3MTAxMGI2Li5mMWM0YWQzMTg5MGUwNTZhZWIzODhiNGRj
YmRlZGZiNTRmNjAxZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbQpAQCAt
MzQxLDMyICszNDEsMjkgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6cHJvY2Vzc1Jl
cXVlc3RzKCkKIAogdm9pZCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6bWFrZUN1cnJlbnRQcm9j
ZXNzRnJvbnRQcm9jZXNzKCkKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFByb2Nlc3NTZXJp
YWxOdW1iZXIgcHNuOwogICAgIEdldEN1cnJlbnRQcm9jZXNzKCZwc24pOwogICAgIFNldEZyb250
UHJvY2VzcygmcHNuKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogdm9pZCBOZXRzY2FwZVBsdWdpbkhvc3RQ
cm94eTo6bWFrZVBsdWdpbkhvc3RQcm9jZXNzRnJvbnRQcm9jZXNzKCkgY29uc3QKIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgIFNldEZyb250UHJvY2VzcygmbV9wbHVnaW5Ib3N0UFNOKTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKIH0KIAogYm9vbCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6aXNQbHVnaW5Ib3N0
UHJvY2Vzc0Zyb250UHJvY2VzcygpIGNvbnN0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBQ
cm9jZXNzU2VyaWFsTnVtYmVyIGZyb250UHJvY2VzczsKICAgICBHZXRGcm9udFByb2Nlc3MoJmZy
b250UHJvY2Vzcyk7CiAKICAgICBCb29sZWFuIGlzU2FtZVByb2Nlc3MgPSAwOwogICAgIFNhbWVQ
cm9jZXNzKCZmcm9udFByb2Nlc3MsICZtX3BsdWdpbkhvc3RQU04sICZpc1NhbWVQcm9jZXNzKTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKIAogICAgIHJldHVybiBpc1NhbWVQcm9jZXNzOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0
YW5jZVByb3h5Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0
c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4IGU5M2ZiNTA2ZTVkZTBhNWRhZTNhZmE1
NjU4Y2JhZjQxNzhlMjZhYTEuLmFjN2E0YmIzMThjNTVmOTM1OWM5OGUwYThiZjk2ZDFlNmU0NDM2
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05l
dHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTQyMywx
MCArNDIzLDkgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnN0YXJ0VGltZXJz
KGJvb2wgdGhyb3R0bGVUaW1lcnMpCiAgICAgCiB2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQ
cm94eTo6bW91c2VFdmVudChOU1ZpZXcgKnBsdWdpblZpZXcsIE5TRXZlbnQgKmV2ZW50LCBOUENv
Y29hRXZlbnRUeXBlIHR5cGUpCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBOU1BvaW50IHNj
cmVlblBvaW50ID0gW1tldmVudCB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46W2V2ZW50IGxv
Y2F0aW9uSW5XaW5kb3ddXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBOU1BvaW50IHBsdWdpblBvaW50ID0g
W3BsdWdpblZpZXcgY29udmVydFBvaW50OltldmVudCBsb2NhdGlvbkluV2luZG93XSBmcm9tVmll
dzpuaWxdOwogICAgIAogICAgIGludCBjbGlja0NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0
c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IGYzZTA0YjRmNTU4MDYxMTkxYzg2ZmQ2Nzc1NTE1OTE0
ODYzZDExOTQuLjUwOTZmN2QzYTFjZmY4YzNkZDU2ZTdiODg5MzE1YWE3ZGJjZDM4NDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5l
dHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5z
L0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTQ3Nyw4ICs0NzcsNyBA
QCBleHRlcm4gIkMiIHsKICAgICB9CiAKICAgICBpZiAoX3Byb3h5KSB7Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgICAgIGlmIChfc29mdHdhcmVSZW5kZXJlcikgewogICAgICAgICAgICAg
aWYgKFtOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dERyYXdpbmdUb1NjcmVlbl0pIHsK
ICAgICAgICAgICAgICAgICBfc29mdHdhcmVSZW5kZXJlci0+cmVuZGVyKChDR0NvbnRleHRSZWYp
W1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhpY3NQb3J0XSwgTlNSZWN0
VG9DR1JlY3QocmVjdCkpOwpAQCAtNDg4LDcgKzQ4Nyw3IEBAIGV4dGVybiAiQyIgewogICAgICAg
ICB9IGVsc2UgaWYgKF9zbmFwc2hvdHRpbmcgJiYgW3NlbGYgc3VwcG9ydHNTbmFwc2hvdHRpbmdd
KSB7CiAgICAgICAgICAgICBfcHJveHktPnNuYXBzaG90KHJlaW50ZXJwcmV0X2Nhc3Q8Q0dDb250
ZXh0UmVmPihbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRd
KSwgW3NlbGYgYm91bmRzXS5zaXplLndpZHRoLCBbc2VsZiBib3VuZHNdLnNpemUuaGVpZ2h0KTsK
ICAgICAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViVGV4dElu
cHV0V2luZG93Q29udHJvbGxlci5tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9I
b3N0ZWQvV2ViVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tCmluZGV4IGZiZDY2N2I3NDhmODQy
M2VlZTg4MTdhZTRkMTViNWE3NjYyZmI1MTkuLjUwNDkyZjEwZWRmYTdlNTJhODAxYTU2OTJmNTEy
YWUwMDcwMzg4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMv
SG9zdGVkL1dlYlRleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm0K
QEAgLTEwNiwxOSArMTA2LDE3IEBAIC0gKHZvaWQpX2tleWJvYXJkSW5wdXRTb3VyY2VDaGFuZ2Vk
OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogCiAtIChCT09MKV9pbnRlcnByZXRLZXlF
dmVudDooTlNFdmVudCAqKWV2ZW50IHN0cmluZzooTlNTdHJpbmcgKiopc3RyaW5nCiB7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICBCT09MIGhhZE1hcmtlZFRleHQgPSBbX2lucHV0VGV4dFZpZXcg
aGFzTWFya2VkVGV4dF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICAqc3RyaW5nID0gbmlsOwogCiAgICAg
Ly8gTGV0IFRTTSBrbm93IHRoYXQgYSBib3R0b20gaW5wdXQgd2luZG93IHdvdWxkIGJlIGNyZWF0
ZWQgZm9yIG1hcmtlZCB0ZXh0LgogICAgIC8vIEZJWE1FOiBDYW4gYmUgcmVtb3ZlZCBvbmNlIHdl
IGNhbiByZWx5IG9uIF9fTlNVc2VzRmxvYXRpbmdJbnB1dFdpbmRvdyAob3IgYSBiZXR0ZXIgQVBJ
KSBiZWluZyBhdmFpbGFibGUgZXZlcnl3aGVyZS4KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdjYXN0LXF1YWwiCisgICAg
SUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJjYXN0LXF1YWwiKQogICAgIEV2ZW50UmVmIGNhcmJvbkV2
ZW50ID0gKEV2ZW50UmVmKVtldmVudCBldmVudFJlZl07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCisgICAgSUdOT1JFX1dBUk5JTkdTX0VORAogICAgIGlmIChjYXJib25FdmVudCkgewog
ICAgICAgICBCb29sZWFuIGlnbm9yZVBBSCA9IHRydWU7CiAgICAgICAgIFNldEV2ZW50UGFyYW1l
dGVyKGNhcmJvbkV2ZW50LCAnaVBBSCcsIHR5cGVCb29sZWFuLCBzaXplb2YoaWdub3JlUEFIKSwg
Jmlnbm9yZVBBSCk7CkBAIC0xMjcsMTAgKzEyNSw5IEBAIC0gKEJPT0wpX2ludGVycHJldEtleUV2
ZW50OihOU0V2ZW50ICopZXZlbnQgc3RyaW5nOihOU1N0cmluZyAqKilzdHJpbmcKICAgICBpZiAo
IVtbX2lucHV0VGV4dFZpZXcgaW5wdXRDb250ZXh0XSBoYW5kbGVFdmVudDpldmVudF0pCiAgICAg
ICAgIHJldHVybiBOTzsKICAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIGlmIChbX2lucHV0
VGV4dFZpZXcgaGFzTWFya2VkVGV4dF0pIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIC8vIERv
bid0IHNob3cgdGhlIGlucHV0IG1ldGhvZCB3aW5kb3cgZm9yIGRlYWQga2V5cwogICAgICAgICBp
ZiAoW1tldmVudCBjaGFyYWN0ZXJzXSBsZW5ndGhdID4gMCkKICAgICAgICAgICAgIFtzZWxmIG9y
ZGVyRnJvbnQ6bmlsXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdp
bnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA2ZDg1YThjNWVhNDE1
OTgyYjEwOGVlYWE2ZGVjNDdjMGM4NjYxOTk0Li5iNGM1ZTZmNzA2YTkwZjUyMDhiZjcyNWU3OTM2
Y2UyZDBlY2NhNTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5z
L1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC03MjksMjUgKzcyOSwy
MiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICBzd2l0Y2ggKHNvdXJjZVNwYWNlKSB7
CiAgICAgICAgIGNhc2UgTlBDb29yZGluYXRlU3BhY2VQbHVnaW46CiAgICAgICAgICAgICBzb3Vy
Y2VQb2ludEluU2NyZWVuU3BhY2UgPSBbc2VsZiBjb252ZXJ0UG9pbnQ6c291cmNlUG9pbnQgdG9W
aWV3Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgc291cmNl
UG9pbnRJblNjcmVlblNwYWNlID0gW1tzZWxmIGN1cnJlbnRXaW5kb3ddIGNvbnZlcnRCYXNlVG9T
Y3JlZW46c291cmNlUG9pbnRJblNjcmVlblNwYWNlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBOUENvb3JkaW5hdGVT
cGFjZVdpbmRvdzoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBzb3Vy
Y2VQb2ludEluU2NyZWVuU3BhY2UgPSBbW3NlbGYgY3VycmVudFdpbmRvd10gY29udmVydEJhc2VU
b1NjcmVlbjpzb3VyY2VQb2ludF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAg
ICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgTlBDb29yZGluYXRlU3BhY2VGbGlwcGVk
V2luZG93OgogICAgICAgICAgICAgc291cmNlUG9pbnQueSA9IFtbc2VsZiBjdXJyZW50V2luZG93
XSBmcmFtZV0uc2l6ZS5oZWlnaHQgLSBzb3VyY2VQb2ludC55OwotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICAgICAgICAgIHNvdXJjZVBvaW50SW5TY3JlZW5TcGFjZSA9IFtbc2VsZiBj
dXJyZW50V2luZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOnNvdXJjZVBvaW50XTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2Fz
ZSBOUENvb3JkaW5hdGVTcGFjZVNjcmVlbjoKQEAgLTc2NywyNSArNzY0LDIyIEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogICAgIC8vIFRoZW4gY29udmVydCBiYWNrIHRvIHRoZSBkZXN0aW5h
dGlvbiBzcGFjZQogICAgIHN3aXRjaCAoZGVzdFNwYWNlKSB7CiAgICAgICAgIGNhc2UgTlBDb29y
ZGluYXRlU3BhY2VQbHVnaW46Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAg
ICAgZGVzdFBvaW50ID0gW1tzZWxmIGN1cnJlbnRXaW5kb3ddIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6
c291cmNlUG9pbnRJblNjcmVlblNwYWNlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAg
ICAgZGVzdFBvaW50ID0gW3NlbGYgY29udmVydFBvaW50OmRlc3RQb2ludCBmcm9tVmlldzpuaWxd
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBOUENvb3Jk
aW5hdGVTcGFjZVdpbmRvdzoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAg
ICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAg
ICBkZXN0UG9pbnQgPSBbW3NlbGYgY3VycmVudFdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpz
b3VyY2VQb2ludEluU2NyZWVuU3BhY2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIE5QQ29vcmRpbmF0ZVNwYWNlRmxp
cHBlZFdpbmRvdzoKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBkZXN0
UG9pbnQgPSBbW3NlbGYgY3VycmVudFdpbmRvd10gY29udmVydFNjcmVlblRvQmFzZTpzb3VyY2VQ
b2ludEluU2NyZWVuU3BhY2VdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAg
ICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBkZXN0
UG9pbnQueSA9IFtbc2VsZiBjdXJyZW50V2luZG93XSBmcmFtZV0uc2l6ZS5oZWlnaHQgLSBkZXN0
UG9pbnQueTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luUGFja2FnZS5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5QYWNr
YWdlLm1tCmluZGV4IGYyMjg5MzQ3NDIxOTA0YmVlM2M4ODY2NmM0ZTMwMDkyZmMxMDUwZGUuLjU0
ZDBhZGM0ZjBlMmYyNTg3NDc4ZWFmOWY2MDYxNmM5MDE4NDQ1NWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5QYWNr
YWdlLm1tCkBAIC0xNjcsMTQgKzE2NywxMyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAg
ICBpZiAoIU5QX0luaXRpYWxpemUgfHwgIU5QX0dldEVudHJ5UG9pbnRzIHx8ICFOUF9TaHV0ZG93
bikKICAgICAgICAgcmV0dXJuIE5POwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBQbHVn
aW5zIChhdCBsZWFzdCBRVCkgcmVxdWlyZSB0aGF0IHlvdSBjYWxsIFVzZVJlc0ZpbGUgb24gdGhl
IHJlc291cmNlIGZpbGUgYmVmb3JlIGxvYWRpbmcgaXQuCiAgICAgcmVzb3VyY2VSZWYgPSBbc2Vs
ZiBvcGVuUmVzb3VyY2VGaWxlXTsKICAgICBpZiAocmVzb3VyY2VSZWYgIT0gLTEpIHsKICAgICAg
ICAgVXNlUmVzRmlsZShyZXNvdXJjZVJlZik7CiAgICAgfQotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgYnJv
d3NlckZ1bmNzLnZlcnNpb24gPSBOUF9WRVJTSU9OX01JTk9SOwogICAgIGJyb3dzZXJGdW5jcy5z
aXplID0gc2l6ZW9mKE5QTmV0c2NhcGVGdW5jcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDQ5ZGMx
YzUxNGY3MmM0NDlmZmRhZTcyOWNhOGQ5YzA4MTY0YTllM2UuLjlhNzQ1ZDkzODNmNzQ0N2Y1NDJk
ZjUwNDVlMjQ0NWIzODUzZTA4ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC0zNzcsMTAgKzM3Nyw5
IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXROUFJlY3QoY29uc3QgTlNSZWN0JiBuciwgTlBSZWN0
JiBucHIpCiAgICAgICAgICAgICBSZ25IYW5kbGUgY2xpcFJlZ2lvbiA9IE5ld1JnbigpOwogICAg
ICAgICAgICAgcWRQb3J0U3RhdGUtPmNsaXBSZWdpb24gPSBjbGlwUmVnaW9uOwogCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAgICAgQ0dDb250ZXh0UmVmIGN1cnJlbnRDb250
ZXh0ID0gKENHQ29udGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBn
cmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBpZiAoY3VycmVu
dENvbnRleHQgJiYgQ0dDb250ZXh0R2V0VHlwZShjdXJyZW50Q29udGV4dCkgPT0ga0NHQ29udGV4
dFR5cGVCaXRtYXApIHsKICAgICAgICAgICAgICAgICAvLyBXZSBjaGVjayBmb3Iga0NHQ29udGV4
dFR5cGVCaXRtYXAgaGVyZSwgYmVjYXVzZSBpZiB3ZSBqdXN0IGNhbGxlZCBDR0JpdG1hcENvbnRl
eHRHZXREYXRhCiAgICAgICAgICAgICAgICAgLy8gb24gYW55IGNvbnRleHQsIHdlJ2QgbG9nIHRv
IHRoZSBjb25zb2xlIGV2ZXJ5IHRpbWUuIEJ1dCBldmVuIGlmIGN1cnJlbnRDb250ZXh0IGlzIGEK
QEAgLTUwMywxMCArNTAyLDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGdldE5QUmVjdChjb25zdCBO
U1JlY3QmIG5yLCBOUFJlY3QmIG5wcikKICAgICAgICAgICAgIAogICAgICAgICAgICAgQVNTRVJU
KFtOU1ZpZXcgZm9jdXNWaWV3XSA9PSBzZWxmKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVj
bGFyYXRpb25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KICAgICAgICAgICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dDb250
ZXh0UmVmPihbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRd
KTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgICAgICAgICBQb3J0U3RhdGVfQ0cgKmNnUG9y
dFN0YXRlID0gKFBvcnRTdGF0ZV9DRyAqKW1hbGxvYyhzaXplb2YoUG9ydFN0YXRlX0NHKSk7CiAg
ICAgICAgICAgICBwb3J0U3RhdGUgPSAoUG9ydFN0YXRlKWNnUG9ydFN0YXRlOwpAQCAtNjk1LDEw
ICs2OTMsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0TlBSZWN0KGNvbnN0IE5TUmVjdCYgbnIs
IE5QUmVjdCYgbnByKQogewogICAgIEFTU0VSVChfZXZlbnRIYW5kbGVyKTsKICAgICAKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dD
b250ZXh0UmVmPihbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBncmFwaGljc1Bv
cnRdKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICBfZXZlbnRIYW5kbGVyLT5kcmF3UmVjdChjb250ZXh0LCBy
ZWN0KTsKIH0KIApAQCAtMTMzOCwxMCArMTMzNSw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXRO
UFJlY3QoY29uc3QgTlNSZWN0JiBuciwgTlBSZWN0JiBucHIpCiAgICAgICAgIGlmIChwcmludGVk
UGx1Z2luQml0bWFwKSB7CiAgICAgICAgICAgICAvLyBGbGlwIHRoZSBiaXRtYXAgYmVmb3JlIGRy
YXdpbmcgYmVjYXVzZSB0aGUgUXVpY2tEcmF3IHBvcnQgaXMgZmxpcHBlZCByZWxhdGl2ZQogICAg
ICAgICAgICAgLy8gdG8gdGhpcyB2aWV3LgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgorICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICAgICAgICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSAoQ0dDb250ZXh0UmVmKVtbTlNHcmFw
aGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF07Ci0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICAgICAgICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY2dDb250ZXh0KTsKICAgICAg
ICAgICAgIE5TUmVjdCBib3VuZHMgPSBbc2VsZiBib3VuZHNdOwogICAgICAgICAgICAgQ0dDb250
ZXh0VHJhbnNsYXRlQ1RNKGNnQ29udGV4dCwgMC4wZiwgTlNIZWlnaHQoYm91bmRzKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xs
ZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xs
ZXIubW0KaW5kZXggMjkwZmVmNjNhZDkxNmFhNjE4ZDMwYTIxZDkxNDNlMjE4ZWM5MGU4NS4uODM3
OWQzZDdjODNiMDE1MDUyZGY4MTFjZjQzNzEzMTc5MGNiNzQ1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQpAQCAt
NjU0LDIxICs2NTQsMTkgQEAgc3RhdGljIGFsZXJ0RGlkRW5kSU1QIG9yaWdpbmFsX1RTVXBkYXRl
Q2hlY2tfYWxlcnREaWRFbmRfcmV0dXJuQ29kZV9jb250ZXh0SW5mb18KIAogc3RhdGljIHZvaWQg
V2ViS2l0X1RTVXBkYXRlQ2hlY2tfYWxlcnREaWRFbmRfcmV0dXJuQ29kZV9jb250ZXh0SW5mb18o
aWQgb2JqZWN0LCBTRUwgc2VsZWN0b3IsIE5TQWxlcnQgKmFsZXJ0LCBOU0ludGVnZXIgcmV0dXJu
Q29kZSwgdm9pZCogY29udGV4dEluZm8pCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbWyhU
U1VwZGF0ZUNoZWNrICopb2JqZWN0IGRlbGVnYXRlXSBhdXRvcmVsZWFzZV07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAKICAgICBvcmlnaW5hbF9UU1VwZGF0ZUNoZWNrX2FsZXJ0RGlkRW5kX3JldHVybkNvZGVfY29u
dGV4dEluZm9fKG9iamVjdCwgc2VsZWN0b3IsIGFsZXJ0LCByZXR1cm5Db2RlLCBjb250ZXh0SW5m
byk7CiB9CiAKIHN0YXRpYyB2b2lkIFdlYktpdF9OU0FsZXJ0X2JlZ2luU2hlZXRNb2RhbEZvcldp
bmRvd19tb2RhbERlbGVnYXRlX2RpZEVuZFNlbGVjdG9yX2NvbnRleHRJbmZvXyhpZCBvYmplY3Qs
IFNFTCBzZWxlY3RvciwgTlNXaW5kb3cgKndpbmRvdywgaWQgbW9kYWxEZWxlZ2F0ZSwgU0VMIGRp
ZEVuZFNlbGVjdG9yLCB2b2lkKiBjb250ZXh0SW5mbykKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIGlmIChpc0tpbmRPZkNsYXNzKG1vZGFsRGVsZWdhdGUsIEAiVFNVcGRhdGVDaGVjayIpKQog
ICAgICAgICBbWyhUU1VwZGF0ZUNoZWNrICopbW9kYWxEZWxlZ2F0ZSBkZWxlZ2F0ZV0gcmV0YWlu
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIAogICAgIG9yaWdpbmFsX05TQWxlcnRfYmVnaW5TaGVldE1vZGFsRm9y
V2luZG93X21vZGFsRGVsZWdhdGVfZGlkRW5kU2VsZWN0b3JfY29udGV4dEluZm9fKG9iamVjdCwg
c2VsZWN0b3IsIHdpbmRvdywgbW9kYWxEZWxlZ2F0ZSwgZGlkRW5kU2VsZWN0b3IsIGNvbnRleHRJ
bmZvKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1BvcHVwTWVudU1hYy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1BvcHVwTWVudU1hYy5tbQppbmRleCA3YjFmYmVhZWUxMDYwOWJlYzlmM2MyZmU0ZDY0NjY5
OWRkM2Q0YWY4Li44OTcxMDM4YTFjMTM5MmUwZjVjYWIzYzZhY2E5YmQ1YTczMWVlMmFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBN
ZW51TWFjLm1tCkBAIC0xMTMsMTUgKzExMywxNCBAQCB2b2lkIFBvcHVwTWVudU1hYzo6cG9wdWxh
dGUoKQogICAgICAgICBbbWVudUl0ZW0gc2V0RW5hYmxlZDptX2NsaWVudC0+aXRlbUlzRW5hYmxl
ZChpKV07CiAgICAgICAgIFttZW51SXRlbSBzZXRUb29sVGlwOm1fY2xpZW50LT5pdGVtVG9vbFRp
cChpKV07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgLy8gQWxsb3cgdGhlIGFj
Y2Vzc2libGUgdGV4dCBvZiB0aGUgaXRlbSB0byBiZSBvdmVycmlkZGVuIGlmIG5lY2Vzc2FyeS4K
ICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKICAg
ICAgICAgICAgIE5TU3RyaW5nICphY2Nlc3NpYmlsaXR5T3ZlcnJpZGUgPSBtX2NsaWVudC0+aXRl
bUFjY2Vzc2liaWxpdHlUZXh0KGkpOwogICAgICAgICAgICAgaWYgKFthY2Nlc3NpYmlsaXR5T3Zl
cnJpZGUgbGVuZ3RoXSkKICAgICAgICAgICAgICAgICBbbWVudUl0ZW0gYWNjZXNzaWJpbGl0eVNl
dE92ZXJyaWRlVmFsdWU6YWNjZXNzaWJpbGl0eU92ZXJyaWRlIGZvckF0dHJpYnV0ZTpOU0FjY2Vz
c2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0ZV07CiAgICAgICAgIH0KLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oCmluZGV4IGM4ZDMz
ZWIxODlhNmYzMWQ1Y2NiZGUxOGVkNTdiNmZlNTRjZmY3ZDQuLmMzYzMzZGRhNmU3ZGI2NjkxYzU4
Y2ZhNjVkYmE5YjAxODcyYjZlY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5o
CkBAIC01MCwxNCArNTAsMTEgQEAgcHVibGljOgogI2VuZGlmCiBwcml2YXRlOgogI2lmIFBMQVRG
T1JNKElPUykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jaWYgZGVmaW5lZChfX2hh
c193YXJuaW5nKSAmJiBfX2hhc193YXJuaW5nKCItV3VudXNlZC1wcml2YXRlLWZpZWxkIikKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wcml2YXRlLWZpZWxkIgot
I2VuZGlmCitJR05PUkVfQ0xBTkdfV0FSTklOR1NfQkVHSU4oInVudXNlZC1wcml2YXRlLWZpZWxk
IikKICNlbmRpZgogICAgIFdlYlZpZXcqIG1fd2ViVmlldzsKICNpZiBQTEFURk9STShJT1MpCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAj
ZW5kaWYKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpCiAgICAgQ29ycmVjdGlvblBhbmVs
IG1fY29ycmVjdGlvblBhbmVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0KaW5kZXggYTU5MjRmNDdlMDY3MmNlNmE1
NDQxOTg4MTQwNTdhNmY3ZDY4ZGNlMi4uYTRjYzZhZjI3YTgyYWU3YmU2MDYwNzUwYjU1MTM4OGMw
MWFhYjI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRHJhZ0NsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCkBAIC0xMzMsMTAgKzEzMyw5IEBAIHZvaWQgV2ViRHJh
Z0NsaWVudDo6c3RhcnREcmFnKERyYWdJdGVtIGRyYWdJdGVtLCBEYXRhVHJhbnNmZXImIGRhdGFU
cmFuc2ZlciwgRnJhCiAgICAgICAgICAgICBSZXBvcnREaXNjYXJkZWREZWxlZ2F0ZUV4Y2VwdGlv
bihzZWxlY3RvciwgZXhjZXB0aW9uKTsKICAgICAgICAgfQogICAgIH0gZWxzZQotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgICAgICBbdG9wSFRNTFZpZXcgZHJhZ0ltYWdlOmRyYWdOU0ltYWdl
IGF0OmRyYWdMb2NhdGlvbkluQ29udGVudENvb3JkaW5hdGVzIG9mZnNldDpOU1plcm9TaXplIGV2
ZW50OmV2ZW50IHBhc3RlYm9hcmQ6cGFzdGVib2FyZCBzb3VyY2U6c291cmNlSFRNTFZpZXcgc2xp
ZGVCYWNrOllFU107Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiB2b2lkIFdlYkRyYWdDbGllbnQ6OmJl
Z2luRHJhZyhEcmFnSXRlbSBkcmFnSXRlbSwgRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRQb2ludCYg
bW91c2VEb3duUG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBtb3VzZURyYWdnZWRQb3NpdGlvbiwg
RGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIERyYWdTb3VyY2VBY3Rpb24gZHJhZ1NvdXJjZUFj
dGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggOWI5MTA3ZGZmMjg0Zjg5YzU4
NzIwNGQ2YjE2M2VlMzhkNGRjZWViNi4uMjgyMTI0MjcyMzJkMjMxOTNiMjgxY2MxNWFmMjBjMjFi
ZDk5YWY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTMwOCwyMCArMzA4LDE4
IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9E
b3dubG9hZChEb2N1bWVudExvYWRlciogZG9jCiAKICAgICBpZiAoIW1haW5SZXNvdXJjZUxvYWRl
cikgewogICAgICAgICAvLyBUaGUgcmVzb3VyY2UgaGFzIGFscmVhZHkgYmVlbiBjYWNoZWQsIG9y
IHRoZSBjb252ZXJzaW9uIGlzIGJlaW5nIGF0dG1wdGVkIHdoZW4gbm90IGNhbGxpbmcgU3VicmVz
b3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSgpLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgICAgICBXZWJEb3dubG9hZCAqd2ViRG93bmxvYWQgPSBbW1dlYkRvd25sb2FkIGFsbG9j
XSBpbml0V2l0aFJlcXVlc3Q6cmVxdWVzdC5uc1VSTFJlcXVlc3QoSFRUUEJvZHlVcGRhdGVQb2xp
Y3k6OlVwZGF0ZUhUVFBCb2R5KSBkZWxlZ2F0ZTpbd2ViVmlldyBkb3dubG9hZERlbGVnYXRlXV07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgICAgICBbd2ViRG93bmxvYWQgYXV0b3JlbGVhc2VdOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSA9IG1haW5S
ZXNvdXJjZUxvYWRlci0+aGFuZGxlKCk7CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW1dlYkRvd25s
b2FkIF9kb3dubG9hZFdpdGhMb2FkaW5nQ29ubmVjdGlvbjpoYW5kbGUtPmNvbm5lY3Rpb24oKSBy
ZXF1ZXN0OnJlcXVlc3QubnNVUkxSZXF1ZXN0KEhUVFBCb2R5VXBkYXRlUG9saWN5OjpVcGRhdGVI
VFRQQm9keSkgcmVzcG9uc2U6cmVzcG9uc2UubnNVUkxSZXNwb25zZSgpIGRlbGVnYXRlOlt3ZWJW
aWV3IGRvd25sb2FkRGVsZWdhdGVdIHByb3h5Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogYm9vbCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUo
RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgaW50IGxlbmd0aCkKQEAgLTIzNDUsMTAg
KzIzNDMsOSBAQCBzdGF0aWMgTlNJbWFnZSAqd2ViR2V0TlNJbWFnZShJbWFnZSogaW1hZ2UsIE5T
U2l6ZSBzaXplKQogICAgIGlmICghbnNJbWFnZSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICBp
ZiAoIU5TRXF1YWxTaXplcyhbbnNJbWFnZSBzaXplXSwgc2l6ZSkpIHsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICAgICAgW25zSW1hZ2Ugc2V0U2NhbGVzV2hlblJlc2l6ZWQ6WUVTXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAgICAgICAgIFtuc0ltYWdlIHNldFNpemU6c2l6ZV07CiAgICAgfQogICAg
IHJldHVybiBuc0ltYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
SW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQppbmRleCA5MWI2NWJlYzk0YmY4OTRmNDE2
NTRiZTk0YmVkYTMzMWQ5ZWVlZDkwLi5jOGJhN2ZiNDEyYmRjMGQzODc3ZDllYmQ0N2YxMWUyZWJl
YzY3N2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3Iv
V2ViTm9kZUhpZ2hsaWdodC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNw
ZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQpAQCAtMjY2LDEwICsyNjYsOSBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKICAgICBBU1NFUlQoW190YXJnZXRWaWV3IHdpbmRvd10pOwogCiAgICAg
TlNSZWN0IGhpZ2hsaWdodFdpbmRvd0ZyYW1lID0gW190YXJnZXRWaWV3IGNvbnZlcnRSZWN0Oltf
dGFyZ2V0VmlldyB2aXNpYmxlUmVjdF0gdG9WaWV3Om5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBoaWdobGlnaHRXaW5kb3dGcmFtZS5vcmlnaW4gPSBbW190YXJnZXRWaWV3IHdpbmRvd10g
Y29udmVydEJhc2VUb1NjcmVlbjpoaWdobGlnaHRXaW5kb3dGcmFtZS5vcmlnaW5dOwotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogCiAgICAgcmV0dXJuIGhpZ2hsaWdodFdpbmRvd0ZyYW1lOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHRWaWV3
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGln
aHRWaWV3Lm1tCmluZGV4IGU3Y2Q1ZTQ2MmRmMjY4ZmFkMjA2ZGRhNTEyZGQ1MzMzNTNiMTkwNDYu
LmE1YTUwY2VjYTUyMTE1ZDM5MjQwNThhNDgwMmZlYTc2YWMxZDBkZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hs
aWdodFZpZXcubW0KQEAgLTk4LDEwICs5OCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiAgICAgICAgIEFTU0VSVChbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBpc0Zs
aXBwZWRdKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBHcmFwaGljc0NvbnRl
eHQgY29udGV4dCgoUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqKVtbTlNHcmFwaGljc0NvbnRleHQg
Y3VycmVudENvbnRleHRdIGdyYXBoaWNzUG9ydF0pOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAg
W193ZWJOb2RlSGlnaGxpZ2h0IGluc3BlY3RvckNvbnRyb2xsZXJdLT5kcmF3SGlnaGxpZ2h0KGNv
bnRleHQpOwogICAgICAgICBbTlNHcmFwaGljc0NvbnRleHQgcmVzdG9yZUdyYXBoaWNzU3RhdGVd
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Q2xpcFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3
Lm1tCmluZGV4IDVmZDVjMTQyNzAyYjE4NmVhOTQwN2YzOGZjMGUzYzkzNmI0N2I0NmEuLjdmNTUy
NGEzNDVjZmI1YTJlZjdiMTM0YzExYmQ4MDYwZmYzMTBhY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViQ2xpcFZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJDbGlwVmlldy5tbQpAQCAtNjYsOCArNjYsNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIEluIFdlYkhUTUxWaWV3LCB3ZSBzZXQgYSBj
bGlwLiBUaGlzIGlzIG5vdCB0eXBpY2FsIHRvIGRvIGluIGFuCiAgICAgLy8gTlNWaWV3LCBhbmQg
d2hpbGUgY29ycmVjdCBmb3IgYW55IG9uZSBpbnZvY2F0aW9uIG9mIGRyYXdSZWN0OiwKICAgICAv
LyBpdCBjYXVzZXMgc29tZSBiYWQgcHJvYmxlbXMgaWYgdGhhdCBjbGlwIGlzIGNhY2hlZCBiZXR3
ZWVuIGNhbGxzLgpAQCAtNzgsNyArNzcsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAg
ICAvLyBTZWUgdGhlc2UgYnVncyBmb3IgbW9yZSBpbmZvcm1hdGlvbjoKICAgICAvLyA8cmRhcjov
L3Byb2JsZW0vMzQwOTMxNT46IFJFR1JFU1NTSU9OICg3QjU4LTdCNjApPzogU2FmYXJpIGRyYXdz
IGJsYW5rIGZyYW1lcyBvbiBtYWNvc3guYXBwbGUuY29tIHBlcmYgcGFnZQogICAgIFtzZWxmIHJl
bGVhc2VHU3RhdGVdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgcmV0dXJuIHNlbGY7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCBjNWMyNWRlNWY4Y2I2
ZTgyNTVkY2E4ZjQyYzg4YzhmNGMyNjc5YTE3Li4zN2IzM2M4MTA4NDAyYmVjZjdlNTQ1NzA1NmM0
ZDYzNzFjMjIwNDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJh
bWUubW0KQEAgLTQ0NCwxMCArNDQ0LDkgQEAgc3RhdGljIE5TVVJMICpjcmVhdGVVbmlxdWVXZWJE
YXRhVVJMKCk7CiAgICAgICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmlldygpKSB7
CiAgICAgICAgICAgICB2aWV3LT5zZXRUcmFuc3BhcmVudCghZHJhd3NCYWNrZ3JvdW5kKTsKICNp
ZiAhUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
ICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAg
IENvbG9yIGNvbG9yID0gY29sb3JGcm9tTlNDb2xvcihbYmFja2dyb3VuZENvbG9yIGNvbG9yVXNp
bmdDb2xvclNwYWNlTmFtZTpOU0RldmljZVJHQkNvbG9yU3BhY2VdKTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogI2Vsc2UKICAgICAgICAgICAgIENvbG9yIGNvbG9yID0gQ29sb3IoYmFja2dyb3VuZENv
bG9yKTsKICNlbmRpZgpAQCAtNjIzLDEwICs2MjIsOSBAQCBzdGF0aWMgaW5saW5lIFdlYkRhdGFT
b3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICNpZiAhUExBVEZPUk0o
SU9TKQogICAgIEFTU0VSVChbW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBpc0Zs
aXBwZWRdKTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgQ0dDb250ZXh0UmVmIGN0eCA9IHN0
YXRpY19jYXN0PENHQ29udGV4dFJlZj4oW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4
dF0gZ3JhcGhpY3NQb3J0XSk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAjZWxzZQogICAgIENHQ29udGV4dFJlZiBj
dHggPSBXS0dldEN1cnJlbnRHcmFwaGljc0NvbnRleHQoKTsKICNlbmRpZgpAQCAtMjIwOCwxMCAr
MjIwNiw5IEBAIHN0YXRpYyBXZWJGcmFtZUxvYWRUeXBlIHRvV2ViRnJhbWVMb2FkVHlwZShGcmFt
ZUxvYWRUeXBlIGZyYW1lTG9hZFR5cGUpCiAgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKSB7CiAgICAgICAgIEFYT2JqZWN0Q2FjaGU6OmVuYWJsZUFjY2Vzc2li
aWxpdHkoKTsKICNpZiAhUExBVEZPUk0oSU9TKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICBBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5
KFtbTlNBcHAgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eUVuaGFu
Y2VkVXNlckludGVyZmFjZUF0dHJpYnV0ZV0gYm9vbFZhbHVlXSk7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
I2VuZGlmCiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KaW5kZXggNzUzZGNlYjI4ZDMw
ZTZhOTBmNDAxN2Q5ZjAxZTNkNGVkZmZmMTUzOS4uNWVhMjMzOTNiZmU3MzdjMDZjMjRlMDQyZTBl
MGUxZDQyMmRiOTdkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCkBAIC0yMDcsMTEgKzIwNywxMCBA
QCBzdGF0aWMgTlNSZWN0IGNvbnZlcnRSZWN0VG9TY3JlZW4oTlNXaW5kb3cgKndpbmRvdywgTlNS
ZWN0IHJlY3QpCiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHdlYlZpZXdDb250ZW50cyA9IGFk
b3B0Q0YoQ0dXaW5kb3dMaXN0Q3JlYXRlSW1hZ2UoTlNSZWN0VG9DR1JlY3Qod2ViVmlld0ZyYW1l
KSwga0NHV2luZG93TGlzdE9wdGlvbkluY2x1ZGluZ1dpbmRvdywgd2luZG93SUQsIGtDR1dpbmRv
d0ltYWdlU2hvdWxkQmVPcGFxdWUpKTsKICAgICAKICAgICAvLyBTY3JlZW4gdXBkYXRlcyB0byBi
ZSByZS1lbmFibGVkIGluIGJlZ2FuRW50ZXJGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTpmaW5h
bEZyYW1lOgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgTlNEaXNhYmxlU2NyZWVuVXBkYXRlcygp
OwogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1dG9kaXNwbGF5Ok5PXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAog
ICAgIE5TUmVzcG9uZGVyICp3ZWJXaW5kb3dGaXJzdFJlc3BvbmRlciA9IFtbX3dlYlZpZXcgd2lu
ZG93XSBmaXJzdFJlc3BvbmRlcl07CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0RnJhbWU6c2NyZWVu
RnJhbWUgZGlzcGxheTpOT107CkBAIC0yNjgsMTEgKzI2NywxMCBAQCBzdGF0aWMgdm9pZCBzZXRD
bGlwUmVjdEZvcldpbmRvdyhOU1dpbmRvdyAqd2luZG93LCBOU1JlY3QgY2xpcFJlY3QpCiAgICAg
X2lzRW50ZXJpbmdGdWxsU2NyZWVuID0gTk87CiAgICAgCiAgICAgaWYgKGNvbXBsZXRlZCkgewot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICAvLyBTY3JlZW4gdXBkYXRlcyB0byBiZSBy
ZS1lbmFibGVkIGF0IHRoZSBlbmQgb2YgdGhpcyBibG9jawogICAgICAgICBOU0Rpc2FibGVTY3Jl
ZW5VcGRhdGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICBbc2VsZiBfZG9jdW1lbnRdLT5z
ZXRBbmltYXRpbmdGdWxsU2NyZWVuKGZhbHNlKTsKICAgICAgICAgW3NlbGYgX2RvY3VtZW50XS0+
d2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChfZWxlbWVudC5nZXQoKSk7CiAgICAg
ICAgIApAQCAtMjk0LDEwICsyOTIsOSBAQCBzdGF0aWMgdm9pZCBzZXRDbGlwUmVjdEZvcldpbmRv
dyhOU1dpbmRvdyAqd2luZG93LCBOU1JlY3QgY2xpcFJlY3QpCiAgICAgICAgIAogICAgICAgICBb
X2JhY2tncm91bmRXaW5kb3cuZ2V0KCkgb3JkZXJPdXQ6c2VsZl07CiAgICAgICAgIFtfYmFja2dy
b3VuZFdpbmRvdy5nZXQoKSBzZXRGcmFtZTpOU1plcm9SZWN0IGRpc3BsYXk6WUVTXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgTlNFbmFibGVTY3JlZW5VcGRhdGVzKCk7Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogICAgIH0gZWxzZQogICAgICAgICBbX3NjYWxlQW5pbWF0aW9uLmdldCgpIHN0
b3BBbmltYXRpb25dOwogfQpAQCAtMzE1LDEyICszMTIsMTEgQEAgc3RhdGljIHZvaWQgc2V0Q2xp
cFJlY3RGb3JXaW5kb3coTlNXaW5kb3cgKndpbmRvdywgTlNSZWN0IGNsaXBSZWN0KQogICAgICAg
ICByZXR1cm47CiAgICAgX2lzRnVsbFNjcmVlbiA9IE5POwogCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICAvLyBTY3JlZW4gdXBkYXRlcyB0byBiZSByZS1lbmFibGVkIGluIGJlZ2FuRXhpdEZ1bGxT
Y3JlZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6CiAgICAgTlNEaXNhYmxlU2NyZWVuVXBk
YXRlcygpOwogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1dG9kaXNwbGF5Ok5PXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIAogICAgIF9maW5hbEZyYW1lID0gc2NyZWVuUmVjdE9mQ29udGVudHMoX2VsZW1lbnQuZ2V0
KCkpOwogCkBAIC0zNjAsMTEgKzM1NiwxMCBAQCBzdGF0aWMgdm9pZCBzZXRDbGlwUmVjdEZvcldp
bmRvdyhOU1dpbmRvdyAqd2luZG93LCBOU1JlY3QgY2xpcFJlY3QpCiAgICAgCiAgICAgW3NlbGYg
X3VwZGF0ZU1lbnVBbmREb2NrRm9yRnVsbFNjcmVlbl07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIC8vIFNjcmVlbiB1cGRhdGVzIHRvIGJlIHJlLWVuYWJsZWQgYXQgdGhlIGVuZCBvZiB0aGlz
IGZ1bmN0aW9uCiAgICAgTlNEaXNhYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAg
ICAgW3NlbGYgX2RvY3VtZW50XS0+c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihmYWxzZSk7CiAgICAg
W3NlbGYgX2RvY3VtZW50XS0+d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KF9lbGVt
ZW50LmdldCgpKTsKQEAgLTM5MSwxMCArMzg2LDkgQEAgc3RhdGljIHZvaWQgc2V0Q2xpcFJlY3RG
b3JXaW5kb3coTlNXaW5kb3cgKndpbmRvdywgTlNSZWN0IGNsaXBSZWN0KQogCiAgICAgW1tfd2Vi
VmlldyB3aW5kb3ddIG1ha2VLZXlBbmRPcmRlckZyb250OnNlbGZdOwogCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogLSAo
dm9pZClwZXJmb3JtQ2xvc2U6KGlkKXNlbmRlcgpAQCAtNTEzLDEwICs1MDcsOSBAQCBzdGF0aWMg
TlNSZWN0IHdpbmRvd0ZyYW1lRnJvbUFwcGFyZW50RnJhbWVzKE5TUmVjdCBzY3JlZW5GcmFtZSwg
TlNSZWN0IGluaXRpYWxGcgogICAgIAogICAgIC8vIHNldENsaXBSZWN0Rm9yV2luZG93IHRha2Vz
IHdpbmRvdyBjb29yZGluYXRlcywgc28gY29udmVydCBmcm9tIHNjcmVlbiBjb29yZGluYXRlcyBo
ZXJlOgogICAgIE5TUmVjdCBmaW5hbEJvdW5kcyA9IF9maW5hbEZyYW1lOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgZmluYWxCb3VuZHMub3JpZ2luID0gW1tzZWxmIHdpbmRvd10gY29udmVydFNj
cmVlblRvQmFzZTpmaW5hbEJvdW5kcy5vcmlnaW5dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIHNldENsaXBS
ZWN0Rm9yV2luZG93KHNlbGYud2luZG93LCBmaW5hbEJvdW5kcyk7CiAgICAgCiAgICAgW1tzZWxm
IHdpbmRvd10gbWFrZUtleUFuZE9yZGVyRnJvbnQ6c2VsZl07CkBAIC01NDMsMTYgKzUzNiwxNCBA
QCBzdGF0aWMgTlNSZWN0IHdpbmRvd0ZyYW1lRnJvbUFwcGFyZW50RnJhbWVzKE5TUmVjdCBzY3Jl
ZW5GcmFtZSwgTlNSZWN0IGluaXRpYWxGcgogICAgIAogICAgIFtfYmFja2dyb3VuZFdpbmRvdy5n
ZXQoKSBvcmRlcldpbmRvdzpOU1dpbmRvd0JlbG93IHJlbGF0aXZlVG86W1tzZWxmIHdpbmRvd10g
d2luZG93TnVtYmVyXV07CiAgICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbW3NlbGYgd2lu
ZG93XSBzZXRBdXRvZGlzcGxheTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAor
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtbc2VsZiB3aW5kb3dd
IGRpc3BsYXlJZk5lZWRlZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBTY3JlZW4gdXBk
YXRlcyBkaXNhYmxlZCBpbiBlbnRlckZ1bGxTY3JlZW46CiAgICAgTlNFbmFibGVTY3JlZW5VcGRh
dGVzKCk7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKHZvaWQpX3N0YXJ0RXhpdEZ1bGxTY3JlZW5Bbmlt
YXRpb25XaXRoRHVyYXRpb246KE5TVGltZUludGVydmFsKWR1cmF0aW9uCkBAIC01OTEsMjMgKzU4
MiwyMCBAQCBzdGF0aWMgTlNSZWN0IHdpbmRvd0ZyYW1lRnJvbUFwcGFyZW50RnJhbWVzKE5TUmVj
dCBzY3JlZW5GcmFtZSwgTlNSZWN0IGluaXRpYWxGcgogICAgIAogICAgIC8vIHNldENsaXBSZWN0
Rm9yV2luZG93IHRha2VzIHdpbmRvdyBjb29yZGluYXRlcywgc28gY29udmVydCBmcm9tIHNjcmVl
biBjb29yZGluYXRlcyBoZXJlOgogICAgIE5TUmVjdCBmaW5hbEJvdW5kcyA9IF9maW5hbEZyYW1l
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgZmluYWxCb3VuZHMub3JpZ2luID0gW1tzZWxmIHdp
bmRvd10gY29udmVydFNjcmVlblRvQmFzZTpmaW5hbEJvdW5kcy5vcmlnaW5dOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogICAgIHNldENsaXBSZWN0Rm9yV2luZG93KHNlbGYud2luZG93LCBmaW5hbEJvdW5kcyk7CiAg
ICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxh
eTpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogICAgIFtbc2VsZiB3aW5kb3ddIGRpc3BsYXlJZk5lZWRlZF07
CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIC8vIFNjcmVlbiB1cGRhdGVzIGRpc2FibGVkIGlu
IGV4aXRGdWxsU2NyZWVuOgogICAgIE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1M
Vmlldy5tbQppbmRleCAxOTJlMTgzNTEzYzBiZWQ4NzRjNDk5ZjA2NWVjYzNhMjQzZWEzMWVkLi4y
NjRiOGIwYzkyMTBlNGIyNGRlODRjYTdmNGI5Mjc1OTZhMWE5YzMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTYyNiwxMCArNjI2LDkg
QEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TlNJbnRlZ2VyPiB0b1RhZyhDb250ZXh0TWVudUFjdGlv
biBhY3Rpb24pCiAKIC0gKE5TVmlldyAqKV93ZWJfYm9yZGVyVmlldwogewotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgcmV0dXJuIF9ib3JkZXJWaWV3OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogCiBAZW5kCkBA
IC0xNDk2LDEwICsxNDk1LDkgQEAgc3RhdGljIE5TQ29udHJvbFN0YXRlVmFsdWUga2l0KFRyaVN0
YXRlIHN0YXRlKQogewogICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZl
bnRXaXRoVHlwZTpOU0V2ZW50VHlwZU1vdXNlTW92ZWQKICAgICAgICAgbG9jYXRpb246W1tzZWxm
IHdpbmRvd10KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGNvbnZlcnRTY3JlZW5Ub0Jhc2U6W05T
RXZlbnQgbW91c2VMb2NhdGlvbl1dCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCitBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgbW9kaWZpZXJGbGFnczpbW05T
QXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10KICAgICAgICAgdGltZXN0YW1wOltOU0Rh
dGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXQogICAgICAgICB3aW5kb3dOdW1iZXI6
W1tzZWxmIHdpbmRvd10gd2luZG93TnVtYmVyXQpAQCAtMTU0MCwxOSArMTUzOCwxNyBAQCBzdGF0
aWMgTlNDb250cm9sU3RhdGVWYWx1ZSBraXQoVHJpU3RhdGUgc3RhdGUpCiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIEFTU0VSVCghX3ByaXZhdGUtPnN1YnZpZXdzU2V0QXNpZGUpOwogICAgIEFTU0VS
VChfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3cyA9PSBuaWwpOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgX3ByaXZhdGUtPnNhdmVkU3Vidmlld3MgPSBfc3Vidmlld3M7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAg
Ly8gV2UgbmVlZCB0byBrZWVwIHRoZSBsYXllci1ob3N0aW5nIHZpZXcgaW4gdGhlIHN1YnZpZXdz
LCBvdGhlcndpc2UgdGhlIGxheWVycyBmbGFzaC4KICAgICBpZiAoX3ByaXZhdGUtPmxheWVySG9z
dGluZ1ZpZXcpIHsKICAgICAgICAgTlNBcnJheSogbmV3U3Vidmlld3MgPSBbW05TQXJyYXkgYWxs
b2NdIGluaXRXaXRoT2JqZWN0czpfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldywgbmlsXTsKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgX3N1YnZpZXdzID0gbmV3U3Vidmlld3M7CiAg
ICAgfSBlbHNlCiAgICAgICAgIF9zdWJ2aWV3cyA9IG5pbDsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBfcHJp
dmF0ZS0+c3Vidmlld3NTZXRBc2lkZSA9IFlFUzsKICNlbmRpZgogIH0KQEAgLTE1NjIsMTQgKzE1
NTgsMTMgQEAgc3RhdGljIE5TQ29udHJvbFN0YXRlVmFsdWUga2l0KFRyaVN0YXRlIHN0YXRlKQog
I2lmIFBMQVRGT1JNKE1BQykKICAgICBBU1NFUlQoX3ByaXZhdGUtPnN1YnZpZXdzU2V0QXNpZGUp
OwogICAgIGlmIChfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldykgewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgICAgICBbX3N1YnZpZXdzIHJlbGVhc2VdOwogICAgICAgICBfc3Vidmlld3Mg
PSBfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3czsKICAgICB9IGVsc2UgewogICAgICAgICBBU1NFUlQo
X3N1YnZpZXdzID09IG5pbCk7CiAgICAgICAgIF9zdWJ2aWV3cyA9IF9wcml2YXRlLT5zYXZlZFN1
YnZpZXdzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiAgICAgX3ByaXZhdGUtPnNhdmVkU3Vidmll
d3MgPSBuaWw7CiAgICAgX3ByaXZhdGUtPnN1YnZpZXdzU2V0QXNpZGUgPSBOTzsKQEAgLTIxMTIs
MTAgKzIxMDcsOSBAQCBzdGF0aWMgYm9vbCBtb3VzZUV2ZW50SXNQYXJ0T2ZDbGlja09yRHJhZyhO
U0V2ZW50ICpldmVudCkKIAogICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQKICAgICAgICAgbG9jYXRp
b246W1tzZWxmIHdpbmRvd10KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGNvbnZlcnRTY3JlZW5U
b0Jhc2U6W05TRXZlbnQgbW91c2VMb2NhdGlvbl1dCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgbW9kaWZpZXJG
bGFnczpbW05TQXBwIGN1cnJlbnRFdmVudF0gbW9kaWZpZXJGbGFnc10KICAgICAgICAgdGltZXN0
YW1wOltOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXQogICAgICAgICB3aW5k
b3dOdW1iZXI6W1tzZWxmIHdpbmRvd10gd2luZG93TnVtYmVyXQpAQCAtMzk4NCwxMCArMzk3OCw5
IEBAIHN0YXRpYyBCT09MIGN1cnJlbnRTY3JvbGxJc0JsaXQoTlNWaWV3ICpjbGlwVmlldykKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgLy8gT25seSBkbyB0aGUgc3luY2hyb25pemF0aW9uIGRhbmNl
IGlmIHdlJ3JlIGRyYXdpbmcgaW50byB0aGUgd2luZG93LCBvdGhlcndpc2UKICAgICAvLyB3ZSBy
aXNrIGRpc2FibGluZyBzY3JlZW4gdXBkYXRlcyB3aGVuIG5vIGZsdXNoIGlzIHBlbmRpbmcuCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAoW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250
ZXh0XSA9PSBbW3NlbGYgd2luZG93XSBncmFwaGljc0NvbnRleHRdICYmIFt3ZWJWaWV3IF9uZWVk
c09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uXSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAg
ICAgLy8gRGlzYWJsZSBzY3JlZW4gdXBkYXRlcyB0byBtaW5pbWl6ZSB0aGUgY2hhbmNlcyBvZiB0
aGUgcmFjZSBiZXR3ZWVuIHRoZSBDQQogICAgICAgICAvLyBkaXNwbGF5IGxpbmsgYW5kIEFwcEtp
dCBkcmF3aW5nIGNhdXNpbmcgZmxhc2hlcy4KICAgICAgICAgW1tzZWxmIHdpbmRvd10gZGlzYWJs
ZVNjcmVlblVwZGF0ZXNVbnRpbEZsdXNoXTsKQEAgLTQyMTksMTIgKzQyMTIsMTEgQEAgc3RhdGlj
IEJPT0wgY3VycmVudFNjcm9sbElzQmxpdChOU1ZpZXcgKmNsaXBWaWV3KQogICAgIGlmIChGcmFt
ZSogY29yZWZyYW1lID0gY29yZShbc2VsZiBfZnJhbWVdKSkKICAgICAgICAgY29yZWZyYW1lLT5l
dmVudEhhbmRsZXIoKS5tb3VzZURvd24oZXZlbnQpOwogI2Vsc2UKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgIE5TSW5wdXRNYW5hZ2VyICpjdXJyZW50SW5wdXRNYW5hZ2VyID0gW05TSW5wdXRNYW5h
Z2VyIGN1cnJlbnRJbnB1dE1hbmFnZXJdOwogCiAgICAgaWYgKCFbY3VycmVudElucHV0TWFuYWdl
ciB3YW50c1RvSGFuZGxlTW91c2VFdmVudHNdIHx8ICFbY3VycmVudElucHV0TWFuYWdlciBoYW5k
bGVNb3VzZUV2ZW50OmV2ZW50XSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgW19wcml2YXRl
LT5jb21wbGV0aW9uQ29udHJvbGxlciBlbmRSZXZlcnRpbmdDaGFuZ2U6Tk8gbW92ZUxlZnQ6Tk9d
OwogCiAgICAgICAgIC8vIElmIHRoZSB3ZWIgcGFnZSBoYW5kbGVzIHRoZSBjb250ZXh0IG1lbnUg
ZXZlbnQgYW5kIG1lbnVGb3JFdmVudDogcmV0dXJucyBuaWwsIHdlJ2xsIGdldCBjb250cm9sIGNs
aWNrIGV2ZW50cyBoZXJlLgpAQCAtNDI3OSwxMiArNDI3MSwxMSBAQCBzdGF0aWMgQk9PTCBjdXJy
ZW50U2Nyb2xsSXNCbGl0KE5TVmlldyAqY2xpcFZpZXcpCiAgICAgLy8gdGhlIGN1cnJlbnQgZXZl
bnQgcHJldmVudHMgdGhhdCBmcm9tIGNhdXNpbmcgYSBwcm9ibGVtIGluc2lkZSBXZWJLaXQgb3Ig
QXBwS2l0IGNvZGUuCiAgICAgW1tldmVudCByZXRhaW5dIGF1dG9yZWxlYXNlXTsKIAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgTlNJbnB1dE1hbmFnZXIgKmN1cnJlbnRJbnB1dE1hbmFnZXIgPSBb
TlNJbnB1dE1hbmFnZXIgY3VycmVudElucHV0TWFuYWdlcl07CiAgICAgaWYgKFtjdXJyZW50SW5w
dXRNYW5hZ2VyIHdhbnRzVG9IYW5kbGVNb3VzZUV2ZW50c10gJiYgW2N1cnJlbnRJbnB1dE1hbmFn
ZXIgaGFuZGxlTW91c2VFdmVudDpldmVudF0pCiAgICAgICAgIHJldHVybjsKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
IAogICAgIFtzZWxmIHJldGFpbl07CiAKQEAgLTQ0NDksMTIgKzQ0NDAsMTEgQEAgc3RhdGljIGJv
b2wgbWF0Y2hlc0V4dGVuc2lvbk9yRXF1aXZhbGVudChOU1N0cmluZyAqZmlsZW5hbWUsIE5TU3Ry
aW5nICpleHRlbnNpb24KICAgICBbc2VsZiBfc2V0TW91c2VEb3duRXZlbnQ6bmlsXTsKIAogI2lm
IFBMQVRGT1JNKE1BQykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TSW5wdXRNYW5hZ2VyICpj
dXJyZW50SW5wdXRNYW5hZ2VyID0gW05TSW5wdXRNYW5hZ2VyIGN1cnJlbnRJbnB1dE1hbmFnZXJd
OwogICAgIGlmIChbY3VycmVudElucHV0TWFuYWdlciB3YW50c1RvSGFuZGxlTW91c2VFdmVudHNd
ICYmIFtjdXJyZW50SW5wdXRNYW5hZ2VyIGhhbmRsZU1vdXNlRXZlbnQ6ZXZlbnRdKQogICAgICAg
ICByZXR1cm47Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAjZW5kaWYKIAogICAgIFtzZWxmIHJldGFpbl07CkBAIC00
ODA2LDEwICs0Nzk2LDkgQEAgc3RhdGljIFJlZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5
Ym9hcmRFdmVudChGcmFtZSogY29yZUZyYW1lKQogLSAodm9pZClfZW5kUHJpbnRNb2RlQW5kUmVz
dG9yZVdpbmRvd0F1dG9kaXNwbGF5CiB7CiAgICAgW3NlbGYgX2VuZFByaW50TW9kZV07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpZRVNdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogfQogCiAtICh2b2lkKV9kZWxheWVkRW5kUHJpbnRNb2RlOihOU1ByaW50T3Bl
cmF0aW9uICopaW5pdGlhdGluZ09wZXJhdGlvbgpAQCAtNDg0NCwxMCArNDgzMyw5IEBAIHN0YXRp
YyBSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVG
cmFtZSkKICAgICAvLyBNdXN0IGRvIHRoaXMgZXhwbGljaXQgZGlzcGxheSBoZXJlLCBiZWNhdXNl
IG90aGVyd2lzZSB0aGUgdmlldyBtaWdodCByZWRpc3BsYXkgd2hpbGUgdGhlIHByaW50CiAgICAg
Ly8gc2hlZXQgd2FzIHVwLCB1c2luZyBwcmludGVyIGZvbnRzIChhbmQgbG9va2luZyBkaWZmZXJl
bnQpLgogICAgIFtzZWxmIGRpc3BsYXlJZk5lZWRlZF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpOT107Ci0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBb
W3NlbGYgX3dlYlZpZXddIF9hZGp1c3RQcmludGluZ01hcmdpbnNGb3JIZWFkZXJBbmRGb290ZXJd
OwogICAgIE5TUHJpbnRPcGVyYXRpb24gKnByaW50T3BlcmF0aW9uID0gW05TUHJpbnRPcGVyYXRp
b24gY3VycmVudE9wZXJhdGlvbl07CkBAIC01MDM1LDEwICs1MDIzLDkgQEAgc3RhdGljIFJlZlB0
cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVudChGcmFtZSogY29yZUZyYW1lKQog
I2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgcmV0dXJuIFthY2NUcmVlIGFjY2Vzc2liaWxpdHlI
aXRUZXN0OnBvaW50XTsKICNlbHNlCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIE5T
UG9pbnQgd2luZG93Q29vcmQgPSBbW3NlbGYgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOnBv
aW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIHJldHVybiBbYWNjVHJlZSBhY2Nlc3NpYmls
aXR5SGl0VGVzdDpbc2VsZiBjb252ZXJ0UG9pbnQ6d2luZG93Q29vcmQgZnJvbVZpZXc6bmlsXV07
CiAjZW5kaWYKICAgICB9CkBAIC01MDc2LDEwICs1MDYzLDkgQEAgc3RhdGljIFJlZlB0cjxLZXli
b2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVudChGcmFtZSogY29yZUZyYW1lKQogCiAtIChO
U0RpY3Rpb25hcnkgKilfZm9udEF0dHJpYnV0ZXNGcm9tRm9udFBhc3RlYm9hcmQKIHsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgIE5TUGFzdGVib2FyZCAqZm9udFBhc3RlYm9hcmQgPSBbTlNQYXN0
ZWJvYXJkIHBhc3RlYm9hcmRXaXRoTmFtZTpOU0ZvbnRQYm9hcmRdOwotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAg
IGlmIChmb250UGFzdGVib2FyZCA9PSBuaWwpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgTlNE
YXRhICpkYXRhID0gW2ZvbnRQYXN0ZWJvYXJkIGRhdGFGb3JUeXBlOmxlZ2FjeUZvbnRQYXN0ZWJv
YXJkVHlwZSgpXTsKQEAgLTUxMDMsMTAgKzUwODksOSBAQCBzdGF0aWMgUmVmUHRyPEtleWJvYXJk
RXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAKIC0gKE5TU3Ry
aW5nICopX2NvbG9yQXNTdHJpbmc6KE5TQ29sb3IgKiljb2xvcgogewotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgTlNDb2xvciAqcmdiQ29sb3IgPSBbY29sb3IgY29sb3JVc2luZ0NvbG9yU3BhY2VO
YW1lOk5TRGV2aWNlUkdCQ29sb3JTcGFjZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgLy8gRklYTUU6IElm
IGNvbG9yIGlzIG5vbi1uaWwgYW5kIHJnYkNvbG9yIGlzIG5pbCwgdGhhdCBtZWFucyB3ZSBnb3Qg
c29tZSBraW5kCiAgICAgLy8gb2YgZmFuY3kgY29sb3IgdGhhdCBjYW4ndCBiZSBjb252ZXJ0ZWQg
dG8gUkdCLiBDaGFuZ2luZyB0aGF0IHRvICJ0cmFuc3BhcmVudCIKICAgICAvLyBtaWdodCBub3Qg
YmUgZ3JlYXQsIGJ1dCBpdCdzIHByb2JhYmx5IE9LLgpAQCAtNTI4MywxMCArNTI2OCw5IEBAIHN0
YXRpYyBSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNv
cmVGcmFtZSkKIAogICAgIC8vIFB1dCBSVEYgd2l0aCBmb250IGF0dHJpYnV0ZXMgb24gdGhlIHBh
c3RlYm9hcmQuCiAgICAgLy8gTWF5YmUgbGF0ZXIgd2Ugc2hvdWxkIGFkZCBhIHBhc3RlYm9hcmQg
dHlwZSB0aGF0IGNvbnRhaW5zIENTUyB0ZXh0IGZvciAibmF0aXZlIiBjb3B5IGFuZCBwYXN0ZSBm
b250LgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIE5TUGFzdGVib2FyZCAqZm9udFBhc3Rl
Ym9hcmQgPSBbTlNQYXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRoTmFtZTpOU0ZvbnRQYm9hcmRdOwot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogICAgIFtmb250UGFzdGVib2FyZCBkZWNsYXJlVHlwZXM6W05TQXJyYXkgYXJy
YXlXaXRoT2JqZWN0OmxlZ2FjeUZvbnRQYXN0ZWJvYXJkVHlwZSgpXSBvd25lcjpuaWxdOwogICAg
IFtmb250UGFzdGVib2FyZCBzZXREYXRhOltzZWxmIF9zZWxlY3Rpb25TdGFydEZvbnRBdHRyaWJ1
dGVzQXNSVEZdIGZvclR5cGU6bGVnYWN5Rm9udFBhc3RlYm9hcmRUeXBlKCldOwogfQpAQCAtNTk1
MSwxNSArNTkzNSwxNCBAQCBzdGF0aWMgQk9PTCB3cml0aW5nRGlyZWN0aW9uS2V5QmluZGluZ3NF
bmFibGVkKCkKICAgICBjb25zdCBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMgPSBw
YXJhbWV0ZXJzLT5ldmVudC0+a2V5cHJlc3NDb21tYW5kcygpOwogCiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBjb21tYW5kcy5zaXplKCk7ICsraSkgewotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgICAgICBpZiAoY29tbWFuZHNbaV0uY29tbWFuZE5hbWUgPT0gImluc2VydFRleHQ6IikK
ICAgICAgICAgICAgIFtzZWxmIGluc2VydFRleHQ6Y29tbWFuZHNbaV0udGV4dF07CiAgICAgICAg
IGVsc2UgaWYgKGNvbW1hbmRzW2ldLmNvbW1hbmROYW1lID09ICJub29wOiIpCiAgICAgICAgICAg
ICA7IC8vIERvIG5vdGhpbmcuIFRoaXMgY2FzZSBjYW4gYmUgcmVtb3ZlZCBvbmNlIDxyZGFyOi8v
cHJvYmxlbS85MDI1MDEyPiBpcyBmaXhlZC4KICAgICAgICAgZWxzZQogICAgICAgICAgICAgW3Nl
bGYgZG9Db21tYW5kQnlTZWxlY3RvcjpOU1NlbGVjdG9yRnJvbVN0cmluZyhjb21tYW5kc1tpXS5j
b21tYW5kTmFtZSldOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiAgICAgcGFyYW1ldGVycy0+ZXZl
bnQtPmtleXByZXNzQ29tbWFuZHMoKS5jbGVhcigpOwogICAgIHBhcmFtZXRlcnMtPnNob3VsZFNh
dmVDb21tYW5kcyA9IHdhc1NhdmluZ0NvbW1hbmRzOwpAQCAtNjE1NSwxMCArNjEzOCw5IEBAIHN0
YXRpYyBCT09MIHdyaXRpbmdEaXJlY3Rpb25LZXlCaW5kaW5nc0VuYWJsZWQoKQogICAgICAgICAv
LyBJZiB3ZSBhcmUgaW4gYSBsYXllci1iYWNrZWQgdmlldywgd2UgbmVlZCB0byBtYW51YWxseSBp
bml0aWFsaXplIHRoZSBnZW9tZXRyeSBmb3Igb3VyIGxheWVyLgogICAgICAgICBbdmlld0xheWVy
IHNldEJvdW5kczpOU1JlY3RUb0NHUmVjdChbX3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcgYm91
bmRzXSldOwogICAgICAgICBbdmlld0xheWVyIHNldEFuY2hvclBvaW50OkNHUG9pbnRNYWtlKDAs
IFtzZWxmIGlzRmxpcHBlZF0gPyAxIDogMCldOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICBDR1BvaW50IGxheWVyUG9zaXRpb24gPSBOU1BvaW50VG9DR1BvaW50KFtzZWxmIGNvbnZl
cnRQb2ludFRvQmFzZTpbX3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcgZnJhbWVdLm9yaWdpbl0p
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgW3ZpZXdMYXllciBzZXRQb3NpdGlvbjpsYXllclBv
c2l0aW9uXTsKICAgICB9CiAgICAgCkBAIC02Mjg4LDEwICs2MjcwLDkgQEAgc3RhdGljIEJPT0wg
d3JpdGluZ0RpcmVjdGlvbktleUJpbmRpbmdzRW5hYmxlZCgpCiAgICAgICAgIExPRyhUZXh0SW5w
dXQsICJ0ZXh0U3RvcmFnZSAtPiBuaWwiKTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9Ci0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KICAgICBOU0F0dHJpYnV0ZWRTdHJpbmcgKnJlc3VsdCA9IFtzZWxm
IGF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgVUlOVF9NQVgpXTsK
LSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKIAogICAgIExPRyhUZXh0SW5wdXQsICJ0ZXh0U3RvcmFnZSAtPiBcIiVAXCIi
LCByZXN1bHQgPyBbcmVzdWx0IHN0cmluZ10gOiBAIiIpOwogICAgIApAQCAtNjc3MCwxNSArNjc1
MSwxNCBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcg
KnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogCiAgICAgdW5zaWduZWQgc3RhcnQ7CiAg
ICAgdW5zaWduZWQgZW5kOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKGNvcmVGcmFtZS0+
ZWRpdG9yKCkuZ2V0Q29tcG9zaXRpb25TZWxlY3Rpb24oc3RhcnQsIGVuZCkpCiAgICAgICAgIFtb
TlNJbnB1dE1hbmFnZXIgY3VycmVudElucHV0TWFuYWdlcl0gbWFya2VkVGV4dFNlbGVjdGlvbkNo
YW5nZWQ6TlNNYWtlUmFuZ2Uoc3RhcnQsIGVuZCAtIHN0YXJ0KSBjbGllbnQ6c2VsZl07CiAgICAg
ZWxzZSB7CiAgICAgICAgIGNvcmVGcmFtZS0+ZWRpdG9yKCkuY2FuY2VsQ29tcG9zaXRpb24oKTsK
ICAgICAgICAgW1tOU0lucHV0TWFuYWdlciBjdXJyZW50SW5wdXRNYW5hZ2VyXSBtYXJrZWRUZXh0
QWJhbmRvbmVkOnNlbGZdOwogICAgIH0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KaW5kZXggMjRkYWM5ZTNh
OGZiODkzNGE2NGQxOWNiMWNkMzFhYjkxY2I3ZmQ4NS4uYTA5OWM0NmRlNzI2OTdkY2RmOTUzZjFh
NDFiOWI3NDBjMjAwNTA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUERGVmlldy5tbQpAQCAtMTI2LDEwICsxMjYsOSBAQCBzdGF0aWMgdm9pZCBfYXBwbGljYXRp
b25JbmZvRm9yTUlNRVR5cGUoTlNTdHJpbmcgKnR5cGUsIE5TU3RyaW5nICoqbmFtZSwgTlNJbWFn
ZQogewogICAgIENGVVJMUmVmIGFwcFVSTCA9IG51bGxwdHI7CiAKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgIE9TU3RhdHVzIGVycm9yID0gTFNDb3B5QXBwbGljYXRpb25Gb3JNSU1FVHlwZSgoX19i
cmlkZ2UgQ0ZTdHJpbmdSZWYpdHlwZSwga0xTUm9sZXNBbGwsICZhcHBVUkwpOwotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAogICAgIGlmIChlcnJvciAhPSBub0VycikKICAgICAgICAgcmV0dXJuOwogICAgIApAQCAtMjI2
LDEwICsyMjUsOSBAQCBzdGF0aWMgQk9PTCBfUERGU2VsZWN0aW9uc0FyZUVxdWFsKFBERlNlbGVj
dGlvbiAqc2VsZWN0aW9uQSwgUERGU2VsZWN0aW9uICpzZWxlYwogLSAodm9pZCljZW50ZXJTZWxl
Y3Rpb25JblZpc2libGVBcmVhOihpZClzZW5kZXIKIHsKICAgICAvLyBGSVhNRTogR2V0IHJpZCBv
ZiB0aGlzIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzI1MTQ5Mjk0PiBoYXMgYmVlbiBmaXhlZC4KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdub25udWxsIgorICAgIElHTk9SRV9OVUxMX0NIRUNLX1dBUk5JTkdTX0JFR0lOCiAg
ICAgW1BERlN1YnZpZXcgc2Nyb2xsU2VsZWN0aW9uVG9WaXNpYmxlOm5pbF07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCisgICAgSUdOT1JFX05VTExfQ0hFQ0tfV0FSTklOR1NfRU5ECiB9
CiAKIC0gKHZvaWQpc2Nyb2xsUGFnZURvd246KGlkKXNlbmRlcgpAQCAtMzcwLDEwICszNjgsOSBA
QCBzdGF0aWMgQk9PTCBfUERGU2VsZWN0aW9uc0FyZUVxdWFsKFBERlNlbGVjdGlvbiAqc2VsZWN0
aW9uQSwgUERGU2VsZWN0aW9uICpzZWxlYwogCiAtICh2b2lkKV9yZWN1cnNpdmVEaXNwbGF5UmVj
dElmTmVlZGVkSWdub3JpbmdPcGFjaXR5OihOU1JlY3QpcmVjdCBpc1Zpc2libGVSZWN0OihCT09M
KWlzVmlzaWJsZVJlY3QgcmVjdElzVmlzaWJsZVJlY3RGb3JWaWV3OihOU1ZpZXcgKil2aXNpYmxl
VmlldyB0b3BWaWV3OihCT09MKXRvcFZpZXcKIHsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIENH
Q29udGV4dFJlZiBjb250ZXh0ID0gKENHQ29udGV4dFJlZilbW05TR3JhcGhpY3NDb250ZXh0IGN1
cnJlbnRDb250ZXh0XSBncmFwaGljc1BvcnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIAogICAgIGJvb2wg
YWxsb3dzU21vb3RoaW5nID0gQ0dDb250ZXh0R2V0QWxsb3dzRm9udFNtb290aGluZyhjb250ZXh0
KTsKICAgICBib29sIGFsbG93c1N1YnBpeGVsUXVhbnRpemF0aW9uID0gQ0dDb250ZXh0R2V0QWxs
b3dzRm9udFN1YnBpeGVsUXVhbnRpemF0aW9uKGNvbnRleHQpOwpAQCAtMzg2LDEwICszODMsOSBA
QCBzdGF0aWMgQk9PTCBfUERGU2VsZWN0aW9uc0FyZUVxdWFsKFBERlNlbGVjdGlvbiAqc2VsZWN0
aW9uQSwgUERGU2VsZWN0aW9uICpzZWxlYwogCiAtICh2b2lkKV9yZWN1cnNpdmVEaXNwbGF5QWxs
RGlydHlXaXRoTG9ja0ZvY3VzOihCT09MKW5lZWRzTG9ja0ZvY3VzIHZpc1JlY3Q6KE5TUmVjdCl2
aXNSZWN0CiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9
IChDR0NvbnRleHRSZWYpW1tOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZ3JhcGhp
Y3NQb3J0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAKICAgICBib29sIGFsbG93c1Ntb290aGluZyA9IENH
Q29udGV4dEdldEFsbG93c0ZvbnRTbW9vdGhpbmcoY29udGV4dCk7CiAgICAgYm9vbCBhbGxvd3NT
dWJwaXhlbFF1YW50aXphdGlvbiA9IENHQ29udGV4dEdldEFsbG93c0ZvbnRTdWJwaXhlbFF1YW50
aXphdGlvbihjb250ZXh0KTsKQEAgLTQwMiwxMCArMzk4LDkgQEAgc3RhdGljIEJPT0wgX1BERlNl
bGVjdGlvbnNBcmVFcXVhbChQREZTZWxlY3Rpb24gKnNlbGVjdGlvbkEsIFBERlNlbGVjdGlvbiAq
c2VsZWMKIAogLSAodm9pZClfcmVjdXJzaXZlOihCT09MKXJlY3Vyc2UgZGlzcGxheVJlY3RJZ25v
cmluZ09wYWNpdHk6KE5TUmVjdClkaXNwbGF5UmVjdCBpbkNvbnRleHQ6KE5TR3JhcGhpY3NDb250
ZXh0ICopZ3JhcGhpY3NDb250ZXh0IHRvcFZpZXc6KEJPT0wpdG9wVmlldwogewotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSAoQ0dDb250ZXh0UmVmKVtncmFw
aGljc0NvbnRleHQgZ3JhcGhpY3NQb3J0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAKICAgICBib29sIGFs
bG93c1Ntb290aGluZyA9IENHQ29udGV4dEdldEFsbG93c0ZvbnRTbW9vdGhpbmcoY29udGV4dCk7
CiAgICAgYm9vbCBhbGxvd3NTdWJwaXhlbFF1YW50aXphdGlvbiA9IENHQ29udGV4dEdldEFsbG93
c0ZvbnRTdWJwaXhlbFF1YW50aXphdGlvbihjb250ZXh0KTsKQEAgLTY2OSwxMCArNjY0LDkgQEAg
c3RhdGljIEJPT0wgX1BERlNlbGVjdGlvbnNBcmVFcXVhbChQREZTZWxlY3Rpb24gKnNlbGVjdGlv
bkEsIFBERlNlbGVjdGlvbiAqc2VsZWMKICAgICBbUERGU3VidmlldyBzZXRDdXJyZW50U2VsZWN0
aW9uOnNlbGVjdGlvbl07CiAKICAgICAvLyBGSVhNRTogR2V0IHJpZCBvZiB0aGlzIG9uY2UgPHJk
YXI6Ly9wcm9ibGVtLzI1MTQ5Mjk0PiBoYXMgYmVlbiBmaXhlZC4KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub25udWxs
IgorICAgIElHTk9SRV9OVUxMX0NIRUNLX1dBUk5JTkdTX0JFR0lOCiAgICAgW1BERlN1YnZpZXcg
c2Nyb2xsU2VsZWN0aW9uVG9WaXNpYmxlOm5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCisgICAgSUdOT1JFX05VTExfQ0hFQ0tfV0FSTklOR1NfRU5ECiAgICAgcmV0dXJuIFlFUzsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJUZXh0
Q29tcGxldGlvbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5tbQppbmRleCBjNmYwZTczNDVmNWVlODJiNzFi
YzFjNGFiYTI2YzQwZTIxZmYwM2E2Li5hMzgxZDEwYjI4YTNkZWU5NTQ4ZWEyZWU0Njk5NjA1N2Ez
YjI2ZTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlRl
eHRDb21wbGV0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlRleHRDb21wbGV0aW9uQ29udHJvbGxlci5tbQpAQCAtODQsMTAgKzg0LDkgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB7CiAgICAgTlNSZWN0IHNjcm9sbEZyYW1lID0gTlNN
YWtlUmVjdCgwLCAwLCAxMDAsIDEwMCk7CiAgICAgTlNSZWN0IHRhYmxlRnJhbWUgPSBOU1plcm9S
ZWN0OyAgICAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHRhYmxlRnJhbWUuc2l6ZSA9IFtOU1Nj
cm9sbFZpZXcgY29udGVudFNpemVGb3JGcmFtZVNpemU6c2Nyb2xsRnJhbWUuc2l6ZSBoYXNIb3Jp
em9udGFsU2Nyb2xsZXI6Tk8gaGFzVmVydGljYWxTY3JvbGxlcjpZRVMgYm9yZGVyVHlwZTpOU05v
Qm9yZGVyXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBOU1RhYmxlQ29sdW1uICpjb2x1bW4gPSBbW05TVGFi
bGVDb2x1bW4gYWxsb2NdIGluaXRdOwogICAgIFtjb2x1bW4gc2V0V2lkdGg6dGFibGVGcmFtZS5z
aXplLndpZHRoXTsKICAgICBbY29sdW1uIHNldEVkaXRhYmxlOk5PXTsKQEAgLTEzMywxMCArMTMy
LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKICAgICBOU1JlY3Qgd2luZG93RnJhbWU7
CiAgICAgTlNQb2ludCB3b3JkU3RhcnQgPSB0b3BMZWZ0OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgd2luZG93RnJhbWUub3JpZ2luID0gW1tfdmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3Jl
ZW46W19odG1sVmlldyBjb252ZXJ0UG9pbnQ6d29yZFN0YXJ0IHRvVmlldzpuaWxdXTsKLSNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICB3aW5kb3dGcmFtZS5zaXplLmhlaWdodCA9IG51bWJlclRvU2hvdyAqIFtfdGFi
bGVWaWV3IHJvd0hlaWdodF0gKyAobnVtYmVyVG9TaG93ICsgMSkgKiBbX3RhYmxlVmlldyBpbnRl
cmNlbGxTcGFjaW5nXS5oZWlnaHQ7CiAgICAgd2luZG93RnJhbWUub3JpZ2luLnkgLT0gd2luZG93
RnJhbWUuc2l6ZS5oZWlnaHQ7CiAgICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzID0gW05TRGlj
dGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOltOU0ZvbnQgc3lzdGVtRm9udE9m
U2l6ZToxMi4wZl0sIE5TRm9udEF0dHJpYnV0ZU5hbWUsIG5pbF07CkBAIC0xNTEsMTAgKzE0OSw5
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgIH0KICAgICB3aW5kb3dGcmFtZS5zaXpl
LndpZHRoID0gMTAwOwogICAgIGlmIChtYXhJbmRleCA+PSAwKSB7Ci0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05TU2Nyb2xsVmlldyBmcmFtZVNpemVG
b3JDb250ZW50U2l6ZTpOU01ha2VTaXplKG1heFdpZHRoLCAxMDAuMGYpIGhhc0hvcml6b250YWxT
Y3JvbGxlcjpOTyBoYXNWZXJ0aWNhbFNjcm9sbGVyOllFUyBib3JkZXJUeXBlOk5TTm9Cb3JkZXJd
LndpZHRoKTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIG1heFdpZHRoID0gY2VpbGYoW05TV2lu
ZG93IGZyYW1lUmVjdEZvckNvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMC4wZiwgMC4wZiwgbWF4V2lk
dGgsIDEwMC4wZikgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzc10uc2l6ZS53
aWR0aCk7CiAgICAgICAgIG1heFdpZHRoICs9IDUuMGY7CiAgICAgICAgIHdpbmRvd0ZyYW1lLnNp
emUud2lkdGggPSBzdGQ6Om1heChtYXhXaWR0aCwgd2luZG93RnJhbWUuc2l6ZS53aWR0aCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0KaW5kZXggYWI0Mzg4N2QxNzQ0ZDc1M2Q1MDAzYTIy
ZTA0ZjQyNzUxNGExYmU2Ni4uYzZlMDcxNjRjYWYwNWNhNDgxOWUzMGE3ODZkY2M4YWQ4M2Q2MDUz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQpAQCAtMzgsOCArMzgsNyBAQAogI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAKIFNPRlRfTElOS19GUkFNRVdPUksoQVZGb3VuZGF0aW9uKQogU09GVF9M
SU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZQbGF5ZXJMYXllcikKQEAgLTUwOSw2ICs1MDgsNiBA
QCBzdGF0aWMgTlNXaW5kb3cgKmNyZWF0ZUJhY2tncm91bmRGdWxsc2NyZWVuV2luZG93KE5TUmVj
dCBmcmFtZSwgaW50IGxldmVsKQogCiBAZW5kCiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVE
V2luZG93Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
VmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQppbmRleCBlN2JlODZkMzc0ZTQ1
MGVlZTcwMDkxYzVlMzJkOTNiMzE1YTVjZjM5Li43YzNmNTA2ZTA2ZDk3YmZkZThlYTRjYjA5NTYw
YThjNzBiMTIzZjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9s
bGVyLm1tCkBAIC0zNzMsMTAgKzM3Myw5IEBAIHN0YXRpYyBOU1ZpZXcgKmNyZWF0ZU1lZGlhVUlC
YWNrZ3JvdW5kVmlldygpCiAgICAgY29uc3QgQ0dGbG9hdCBxdWlja1RpbWVQbGF5ZXJIVURIZWln
aHQgPSA1OTsKICAgICBjb25zdCBDR0Zsb2F0IHF1aWNrVGltZVBsYXllckhVRENvbnRlbnRCb3Jk
ZXJQb3NpdGlvbiA9IDM4OwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbdmlldyBzZXRDb250
ZW50Qm9yZGVyUG9zaXRpb246cXVpY2tUaW1lUGxheWVySFVEQ29udGVudEJvcmRlclBvc2l0aW9u
IC8gcXVpY2tUaW1lUGxheWVySFVESGVpZ2h0XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
b3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIHJldHVybiB2
aWV3OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4
IGYyNGVhNzI3MDIzZDFiNDYwMjNiNDRmNDgxN2U4NjNlNTQ2YzkwZGMuLmZmMTUxMmZmMGY4YzVl
M2I5NTM1ZGU5NWY2MjdjMjc3MTE5MGMyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KQEAgLTg2NSwxNSArODY1LDE0IEBAIHN0YXRpYyBjb25zdCBOU1VJ
bnRlZ2VyIG9yZGVyZWRMaXN0U2VnbWVudCA9IDI7CiAgICAgW2luc2VydExpc3RDb250cm9sIHNl
dFdpZHRoOmxpc3RDb250cm9sU2VnbWVudFdpZHRoIGZvclNlZ21lbnQ6b3JkZXJlZExpc3RTZWdt
ZW50XTsKICAgICBpbnNlcnRMaXN0Q29udHJvbC5mb250ID0gW05TRm9udCBzeXN0ZW1Gb250T2ZT
aXplOjE1XTsKIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWQgc2VnbWVudEVsZW1lbnQgPSBO
U0FjY2Vzc2liaWxpdHlVbmlnbm9yZWREZXNjZW5kYW50KGluc2VydExpc3RDb250cm9sKTsKICAg
ICBOU0FycmF5ICpzZWdtZW50cyA9IFtzZWdtZW50RWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmli
dXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRyaWJ1dGVdOwogICAgIEFTU0VSVChz
ZWdtZW50cy5jb3VudCA9PSAzKTsKICAgICBbc2VnbWVudHNbbm9MaXN0U2VnbWVudF0gYWNjZXNz
aWJpbGl0eVNldE92ZXJyaWRlVmFsdWU6V2ViQ29yZTo6aW5zZXJ0TGlzdFR5cGVOb25lKCkgZm9y
QXR0cmlidXRlOk5TQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uQXR0cmlidXRlXTsKICAgICBbc2Vn
bWVudHNbdW5vcmRlcmVkTGlzdFNlZ21lbnRdIGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVl
OldlYkNvcmU6Omluc2VydExpc3RUeXBlQnVsbGV0ZWRBY2Nlc3NpYmlsaXR5VGl0bGUoKSBmb3JB
dHRyaWJ1dGU6TlNBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25BdHRyaWJ1dGVdOwogICAgIFtzZWdt
ZW50c1tvcmRlcmVkTGlzdFNlZ21lbnRdIGFjY2Vzc2liaWxpdHlTZXRPdmVycmlkZVZhbHVlOldl
YkNvcmU6Omluc2VydExpc3RUeXBlTnVtYmVyZWRBY2Nlc3NpYmlsaXR5VGl0bGUoKSBmb3JBdHRy
aWJ1dGU6TlNBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb25BdHRyaWJ1dGVdOwotI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
CiAgICAgc2VsZi52aWV3ID0gaW5zZXJ0TGlzdENvbnRyb2w7CiAKQEAgLTIxNzgsMTEgKzIxNzcs
MTAgQEAgc3RhdGljIE5TTXV0YWJsZVNldCAqa25vd25QbHVnaW5NSU1FVHlwZXMoKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBpZiAoIU9TQXRvbWlj
Q29tcGFyZUFuZFN3YXAzMigwLCAxLCAmX3ByaXZhdGUtPmRpZERyYXdUaWxlcykpCiAgICAgICAg
IHJldHVybjsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIFdlYlRocmVhZExvY2soKTsKIApAQCAtMjQ1MCwx
MCArMjQ0OCw5IEBAIHN0YXRpYyBib29sIGZhc3REb2N1bWVudFRlYXJkb3duRW5hYmxlZCgpCiAg
ICAgQVNTRVJUKFVSTCk7CiAgICAgCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW1tOU1VS
TFJlcXVlc3QgYWxsb2NdIGluaXRXaXRoVVJMOlVSTF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1k
ZWNsYXJhdGlvbnMiCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFdl
YkRvd25sb2FkICpkb3dubG9hZCA9IFtXZWJEb3dubG9hZCBfZG93bmxvYWRXaXRoUmVxdWVzdDpy
ZXF1ZXN0IGRlbGVnYXRlOl9wcml2YXRlLT5kb3dubG9hZERlbGVnYXRlIGRpcmVjdG9yeTpuaWxd
OwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgW3JlcXVlc3QgcmVsZWFzZV07CiAKICAgICByZXR1cm4gZG93bmxvYWQ7
CkBAIC01ODkzLDIxICs1ODkwLDE5IEBAIHN0YXRpYyBib29sIG5lZWRzV2ViVmlld0luaXRUaHJl
YWRXb3JrYXJvdW5kKCkKIAogLSAodm9pZCllbmNvZGVXaXRoQ29kZXI6KE5TQ29kZXIgKillbmNv
ZGVyCiB7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBTZXQgYXNzaWRlIHRoZSBzdWJ2aWV3
cyBiZWZvcmUgd2UgYXJjaGl2ZS4gV2UgZG9uJ3Qgd2FudCB0byBhcmNoaXZlIGFueSBzdWJ2aWV3
cy4KICAgICAvLyBUaGUgc3Vidmlld3Mgd2lsbCBhbHdheXMgYmUgY3JlYXRlZCBpbiBfY29tbW9u
SW5pdGlhbGl6YXRpb25GcmFtZU5hbWU6Z3JvdXBOYW1lOi4KICAgICBpZCBvcmlnaW5hbFN1YnZp
ZXdzID0gX3N1YnZpZXdzOwogICAgIF9zdWJ2aWV3cyA9IG5pbDsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwb3AKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAg
IFtzdXBlciBlbmNvZGVXaXRoQ29kZXI6ZW5jb2Rlcl07CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIC8vIFJlc3RvcmUgdGhlIHN1YnZpZXdzIHdlIHNldCBhc2lkZS4KICAgICBfc3Vidmlld3Mg
PSBvcmlnaW5hbFN1YnZpZXdzOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgQk9PTCB1c2VCYWNrRm9yd2Fy
ZExpc3QgPSBfcHJpdmF0ZS0+cGFnZSAmJiBzdGF0aWNfY2FzdDxCYWNrRm9yd2FyZExpc3QqPihf
cHJpdmF0ZS0+cGFnZS0+YmFja0ZvcndhcmQoKS5jbGllbnQoKSktPmVuYWJsZWQoKTsKICAgICBp
ZiAoW2VuY29kZXIgYWxsb3dzS2V5ZWRDb2RpbmddKSB7CkBAIC03MTM4LDEwICs3MTMzLDkgQEAg
c3RhdGljIFdlYkZyYW1lICppbmNyZW1lbnRGcmFtZShXZWJGcmFtZSAqZnJhbWUsIFdlYkZpbmRP
cHRpb25zIG9wdGlvbnMgPSAwKQogICAgIGlmIChhdXRvICppY29uID0gX3ByaXZhdGUtPl9tYWlu
RnJhbWVJY29uLmdldCgpKQogICAgICAgICByZXR1cm4gaWNvbjsKIAotI3ByYWdtYSBHQ0MgZGlh
Z25vc3RpYyBwdXNoIAotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIgorICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAgICAgcmV0dXJuIFtbV2ViSWNvbkRhdGFiYXNlIHNoYXJlZEljb25EYXRhYmFzZV0gZGVmYXVs
dEljb25XaXRoU2l6ZTpXZWJJY29uU21hbGxTaXplXTsKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cG9wCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiAKIC0gKHZvaWQp
X3NldE1haW5GcmFtZUljb246KE5TSW1hZ2UgKilpY29uCkBAIC05MzA5LDEwICs5MzAzLDkgQEAg
Ym9vbCBMYXllckZsdXNoQ29udHJvbGxlcjo6Zmx1c2hMYXllcnMoKQogICAgICAgICAvLyBBcHBL
aXQgbWF5IGhhdmUgZGlzYWJsZWQgc2NyZWVuIHVwZGF0ZXMsIHRoaW5raW5nIGFuIHVwY29taW5n
IHdpbmRvdyBmbHVzaCB3aWxsIHJlLWVuYWJsZSB0aGVtLgogICAgICAgICAvLyBJbiBjYXNlIHNl
dE5lZWRzRGlzcGxheUluUmVjdCgpIGhhcyBwcmV2ZW50ZWQgdGhlIHdpbmRvdyBmcm9tIG5lZWRp
bmcgdG8gYmUgZmx1c2hlZCwgcmUtZW5hYmxlIHNjcmVlbgogICAgICAgICAvLyB1cGRhdGVzIGhl
cmUuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGlmICghW3dpbmRvdyBpc0ZsdXNo
V2luZG93RGlzYWJsZWRdKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICBbd2luZG93
IF9lbmFibGVTY3JlZW5VcGRhdGVzSWZOZWVkZWRdOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViV2luZG93QW5pbWF0aW9uLm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJXaW5kb3dBbmltYXRpb24ubW0KaW5kZXgg
OTIzNThmNmI3ZGUzYWJhOTY0ZWVhZjE3NDI1ZjI3MWI5NWFhODYwOS4uYWZhN2I1MTQ3Yjk1ZGI3
YWQ0ZDU3N2E2OTA4ZTg4MDQ5MDg5NGFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJXaW5kb3dBbmltYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJXaW5kb3dBbmltYXRpb24ubW0KQEAgLTEyNSwxMCArMTI1LDkg
QEAgc3RhdGljIENHU0Nvbm5lY3Rpb25JRCBtYWluV2luZG93U2VydmVyQ29ubmVjdGlvbklEKCkK
IHN0YXRpYyB2b2lkIHNldFNjYWxlZEZyYW1lRm9yV2luZG93KE5TV2luZG93ICp3aW5kb3csIE5T
UmVjdCBzY2FsZUZyYW1lLCBOU1JlY3Qgbm9uU2NhbGVkRnJhbWUpCiB7CiAgICAgaWYgKE5TRXF1
YWxSZWN0cyhzY2FsZUZyYW1lLCBub25TY2FsZWRGcmFtZSkpIHsKLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub25udWxs
IgorICAgICAgICBJR05PUkVfTlVMTF9DSEVDS19XQVJOSU5HU19CRUdJTgogICAgICAgICBDR1NT
ZXRXaW5kb3dXYXJwKG1haW5XaW5kb3dTZXJ2ZXJDb25uZWN0aW9uSUQoKSwgd2luZG93LndpbmRv
d051bWJlciwgMCwgMCwgbnVsbHB0cik7Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisg
ICAgICAgIElHTk9SRV9OVUxMX0NIRUNLX1dBUk5JTkdTX0VORAogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>