<?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>29244</bug_id>
          
          <creation_ts>2009-09-14 07:17:11 -0700</creation_ts>
          <short_desc>undefined reference errors when linking due to gperf and inlining</short_desc>
          <delta_ts>2010-10-04 02:36:51 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Priit Laes (IRC: plaes)">plaes</reporter>
          <assigned_to name="Andras Becsi">abecsi</assigned_to>
          <cc>abecsi</cc>
    
    <cc>asampson</cc>
    
    <cc>barbieri</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>erlv5241</cc>
    
    <cc>evan</cc>
    
    <cc>gnome</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hezhit</cc>
    
    <cc>jmalonzo</cc>
    
    <cc>kenneth</cc>
    
    <cc>leavengood</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mario.bensi</cc>
    
    <cc>ojab</cc>
    
    <cc>ossy</cc>
    
    <cc>paroga</cc>
    
    <cc>senorblanco</cc>
    
    <cc>simon.maxime</cc>
    
    <cc>superstippi</cc>
    
    <cc>umphilitus</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>147050</commentid>
    <comment_count>0</comment_count>
    <who name="Priit Laes (IRC: plaes)">plaes</who>
    <bug_when>2009-09-14 07:17:11 -0700</bug_when>
    <thetext>When configuring with --enable-debug. Linking fails with following errors:
[snip]
make  all-am
make[1]: Entering directory `/home/plaes/code/WebKit/WebKitBuild&apos;
/bin/mkdir -p ./.deps/DerivedSources
  CCLD   Programs/GtkLauncher
./.libs/libwebkit-1.0.so: undefined reference to `findEntity(char const*, unsigned int)&apos;
./.libs/libwebkit-1.0.so: undefined reference to `findColor(char const*, unsigned int)&apos;
./.libs/libwebkit-1.0.so: undefined reference to `findProp(char const*, unsigned int)&apos;
./.libs/libwebkit-1.0.so: undefined reference to `findValue(char const*, unsigned int)&apos;
./.libs/libwebkit-1.0.so: undefined reference to `findDoctypeEntry(char const*, unsigned int)&apos;
collect2: ld returned 1 exit status
make[1]: *** [Programs/GtkLauncher] Error 1
make[1]: Leaving directory `/home/plaes/code/WebKit/WebKitBuild&apos;
make: *** [all] Error 2
[/snip]

All these symbols come from files that are autogenerated using gperf.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147052</commentid>
    <comment_count>1</comment_count>
    <who name="Priit Laes (IRC: plaes)">plaes</who>
    <bug_when>2009-09-14 07:28:22 -0700</bug_when>
    <thetext>After reading GCC bug report below, should we fix our gperf-files instead??

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41194</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147477</commentid>
    <comment_count>2</comment_count>
    <who name="Priit Laes (IRC: plaes)">plaes</who>
    <bug_when>2009-09-15 22:40:16 -0700</bug_when>
    <thetext>From the discussion with gperf developer Bruno Haible:


&gt; &gt;   - the source code of the source file that #includes the processed file?
&gt; Hum? It seems to be compiled straight into library...

OK, so that was compiled as a C file and thus created a &apos;findEntity&apos; function
with C linkage.

&gt; &gt;   - the output of
&gt; &gt;        $ nm --dynamic .libs/libwebkit-1.0.so | grep findEntity
&gt; [output]
&gt;                        U _Z10findEntityPKcj
&gt; 000000000138d1a8 T findEntity
&gt; [/output]

Here you see that &apos;findEntity&apos; exists as a function with C linkage but some
other compilation unit needs it as a function with C++ linkage.


What you need is either to #include the generated C file like this:
  #include &quot;gperf-generated-c-code.c&quot;
from a C++ compilation unit. Or directly name the generated file
&quot;gperf-generated-c-code.cc&quot;, and tell gperf to generate C++ code instead
of ANSI C code.

Or to use the following declaration in your C++ compilation units:

  extern &quot;C&quot; {
  extern const struct Entity *findEntity (const char *str, unsigned int len);
  }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150375</commentid>
    <comment_count>3</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-09-27 04:19:15 -0700</bug_when>
    <thetext>*** Bug 29778 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153085</commentid>
    <comment_count>4</comment_count>
      <attachid>40800</attachid>
    <who name="Priit Laes (IRC: plaes)">plaes</who>
    <bug_when>2009-10-07 09:48:53 -0700</bug_when>
    <thetext>Created attachment 40800
webkit-resolve-findentity-link-error.patch

One out of 5 is done: no more &quot;undefined reference to `findEntity(char const*, unsigned int)&apos;&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153918</commentid>
    <comment_count>5</comment_count>
    <who name="Priit Laes (IRC: plaes)">plaes</who>
    <bug_when>2009-10-11 03:32:13 -0700</bug_when>
    <thetext>Just a note, so I won&apos;t forget:
&lt; bdash&gt; 1) Make the C++ gperf output work + add smaller wrapper functions to match the existing functions that are used
&lt; bdash&gt; 2) Stop including the .c files directly from .cpp files, give them matching .h files, and compile them separately on all platforms
&lt; bdash&gt; or do both (convert to using C++ and compile them separately)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163361</commentid>
    <comment_count>6</comment_count>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-11-13 10:32:00 -0800</bug_when>
    <thetext>Chrome bug: http://code.google.com/p/chromium/issues/detail?id=26496 .
Nothing too useful there except to note they found that turning off optimizations (-O0 instead of -O1) is a workaround.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173700</commentid>
    <comment_count>7</comment_count>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-12-20 03:33:05 -0800</bug_when>
    <thetext>Does this still happen?  I haven&apos;t heard anyone complain about it in a while.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173929</commentid>
    <comment_count>8</comment_count>
    <who name="Priit Laes (IRC: plaes)">plaes</who>
    <bug_when>2009-12-21 02:01:51 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Does this still happen?  I haven&apos;t heard anyone complain about it in a while.

Probably yes (I don&apos;t have access to my dev-machine to be 100% sure).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174746</commentid>
    <comment_count>9</comment_count>
    <who name="he zhitong">hezhit</who>
    <bug_when>2009-12-24 00:24:32 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Does this still happen?  I haven&apos;t heard anyone complain about it in a while.

Yes, when linking chrome in latest chromium source minutes ago.

and change gcc flag -O0 to -O1 in webcore.target.mk fixes..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189809</commentid>
    <comment_count>10</comment_count>
    <who name="Stephan Aßmus">superstippi</who>
    <bug_when>2010-02-11 15:21:53 -0800</bug_when>
    <thetext>We experience exactly the same problem when building on Haiku, with GCC 4.3.3 and  with NDEBUG not being defined. The Haiku build system (not currently in SVN) is setup such that it uses -g for CC and C++ flags when NDEBUG is not defined. Our solution has been to simply patch the affected generated source code after generation, such that the whole #define block which tries to force inlining is wrapped in #ifdef NDEBUG ... #endif. Since this works, I believe the problem is not the linkage being used, since then it would also show up in release builds. The problem is more likely that GCC simply refuses to inline those functions in debug (-g) builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190338</commentid>
    <comment_count>11</comment_count>
    <who name="Ryan Leavengood">leavengood</who>
    <bug_when>2010-02-14 11:18:34 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; The problem is more likely that GCC simply refuses to inline
&gt; those functions in debug (-g) builds.

Based on my reading of the GCC manuals, that is exactly what it does. Since inlining functions can make debugging more difficult, they aren&apos;t inlined in debug builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216723</commentid>
    <comment_count>12</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-04-24 08:01:24 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Just a note, so I won&apos;t forget:
&gt; &lt; bdash&gt; 1) Make the C++ gperf output work + add smaller wrapper functions to
&gt; match the existing functions that are used
&gt; &lt; bdash&gt; 2) Stop including the .c files directly from .cpp files, give them
&gt; matching .h files, and compile them separately on all platforms
&gt; &lt; bdash&gt; or do both (convert to using C++ and compile them separately)

I&apos;m working on this since the debug linking problem also exists on the Qt port using gcc 4.4.2 and gcc 4.5.0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217187</commentid>
    <comment_count>13</comment_count>
      <attachid>54317</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-04-26 10:48:21 -0700</bug_when>
    <thetext>Created attachment 54317
first draft: Refactor gperf hash generation to fix the debug build with gcc &gt;= 4.4.0.

Uploading the first draft and marking it r? to force a build check on the EWS bots. This patch is not complete yet, because the gyp file is not updated, so it will probably fail on the chromium bot. I would need some help from a gyp pro to fix it. Eric, maybe?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217189</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-26 10:52:06 -0700</bug_when>
    <thetext>Attachment 54317 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/chromium/src/WebEntities.cpp:36:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:48:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 23 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>217199</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-26 11:13:48 -0700</bug_when>
    <thetext>Attachment 54317 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1907028</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217210</commentid>
    <comment_count>16</comment_count>
      <attachid>54317</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-26 11:35:54 -0700</bug_when>
    <thetext>Comment on attachment 54317
first draft: Refactor gperf hash generation to fix the debug build with gcc &gt;= 4.4.0.

Do all these changes have to happen at once? Is there a way to do this a step at a time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217219</commentid>
    <comment_count>17</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-04-26 12:17:58 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 54317 [details])
&gt; Do all these changes have to happen at once? Is there a way to do this a step
&gt; at a time?

I could upload the make-hash-tools.pl and add the needed extra steps as separate rules to the build tools as a first step without touching the sources, and then update the sources and remove the old build rules as a second step if that would make the reviewing process easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223964</commentid>
    <comment_count>18</comment_count>
      <attachid>55713</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-05-11 09:44:59 -0700</bug_when>
    <thetext>Created attachment 55713
Refactor gperf code generation and usage to fix the debug build with gcc&gt;4.4.

Gperf code generation is done by a new script called WebCore/make-hash-tools.pl now,
and the generation options were moved into the gperf files, to make the options more understandable
and the generation process less redundant across the various ports.
Hitherto gperf generated C code, these files were included in multiple C++ files across WebCore
to access the functionality provided. This resulted in debug build failure with newer gcc versions
because of a new feature of gcc, which disables C style inlining in debug mode.
The make-hash-tools.pl script lets gperf generate C++ code for all gperf files now, which are compiled
in their own compilation unit.
The functionality provided by the generated code is wrapped behind HashTools.h, so there is no need
for multiple inclusions of generated C files to access these functions.

No new functionality added, no new tests needed.

Multiple patches would make the whole change confusing and error-prone, so leaving it in one peace.
The diff is big, but simple structured, hopefully the more lengthly explanation will make it easier to understand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223969</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-11 09:47:36 -0700</bug_when>
    <thetext>Attachment 55713 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit/chromium/src/WebEntities.cpp:36:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:48:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 28 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>223990</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-11 10:14:48 -0700</bug_when>
    <thetext>Attachment 55713 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2225112</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224114</commentid>
    <comment_count>21</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-11 13:03:38 -0700</bug_when>
    <thetext>When setting r- (which should only be done by reviewers) please comment on why that was set negative. As I guess it is due to the build failures, and it is your own patch, removing the r? makes more sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224118</commentid>
    <comment_count>22</comment_count>
      <attachid>55713</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-05-11 13:10:39 -0700</bug_when>
    <thetext>Comment on attachment 55713
Refactor gperf code generation and usage to fix the debug build with gcc&gt;4.4.

Sorry for the mistake. The chromium build failure was the cause, I&apos;m working blindly on that platform. The mac EWS doesn&apos;t seem to function though, it has no output and build on Leopard worked for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224146</commentid>
    <comment_count>23</comment_count>
      <attachid>55754</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-05-11 14:13:52 -0700</bug_when>
    <thetext>Created attachment 55754
Refactor gperf v2

Ok, my bad. Mac EWS was correct, the previous patch didn&apos;t build on Leopard, it was a preliminary version of the working one.
Now it should also work on chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224159</commentid>
    <comment_count>24</comment_count>
      <attachid>55757</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-05-11 14:34:53 -0700</bug_when>
    <thetext>Created attachment 55757
Refactor gperf v2 update

Updated patch to ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224167</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-11 14:40:23 -0700</bug_when>
    <thetext>Attachment 55757 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit/chromium/src/WebEntities.cpp:36:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:48:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 31 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>224219</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-11 15:59:00 -0700</bug_when>
    <thetext>Attachment 55757 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2194134</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224511</commentid>
    <comment_count>27</comment_count>
      <attachid>55757</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-05-12 03:52:17 -0700</bug_when>
    <thetext>Comment on attachment 55757
Refactor gperf v2 update

The chromium build system doesn&apos;t like me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224604</commentid>
    <comment_count>28</comment_count>
      <attachid>55845</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-05-12 07:54:04 -0700</bug_when>
    <thetext>Created attachment 55845
Refactor gperf v3

Multiple build systems are a torture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224605</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-12 07:56:28 -0700</bug_when>
    <thetext>Attachment 55845 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebKit/chromium/src/WebEntities.cpp:36:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:48:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 31 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>224608</commentid>
    <comment_count>30</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-12 08:00:33 -0700</bug_when>
    <thetext>Attachment 55845 did not build on mac:
Build output: http://webkit-commit-queue.appspot.com/results/2173167</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224616</commentid>
    <comment_count>31</comment_count>
      <attachid>55845</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-05-12 08:09:00 -0700</bug_when>
    <thetext>Comment on attachment 55845
Refactor gperf v3

Ok, then let&apos;s try to split this into smaller pieces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224646</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-12 08:43:49 -0700</bug_when>
    <thetext>Attachment 55845 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2212168</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225777</commentid>
    <comment_count>33</comment_count>
    <who name="Gustavo Sverzut Barbieri">barbieri</who>
    <bug_when>2010-05-14 06:09:23 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #5)
&gt; &gt; Just a note, so I won&apos;t forget:
&gt; &gt; &lt; bdash&gt; 1) Make the C++ gperf output work + add smaller wrapper functions to
&gt; &gt; match the existing functions that are used
&gt; &gt; &lt; bdash&gt; 2) Stop including the .c files directly from .cpp files, give them
&gt; &gt; matching .h files, and compile them separately on all platforms
&gt; &gt; &lt; bdash&gt; or do both (convert to using C++ and compile them separately)
&gt; 
&gt; I&apos;m working on this since the debug linking problem also exists on the Qt port using gcc 4.4.2 and gcc 4.5.0.

I don&apos;t fully agree with bdash&apos;s solution. If we generate C++ code and another object that is linked together, we will do more function calls for no good. If we have them included as they are right now, the function will effectively go away with optimizations (as happens now). I guess the extern &quot;C&quot; {} is the best solution, it will keep performance hit away and should solve the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225840</commentid>
    <comment_count>34</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-05-14 08:37:17 -0700</bug_when>
    <thetext>&gt; I don&apos;t fully agree with bdash&apos;s solution. If we generate C++ code and another 
&gt; object that is linked together, we will do more function calls for no good. If we 
&gt; have them included as they are right now, the function will effectively go away 
&gt; with optimizations (as happens now). I guess the extern &quot;C&quot; {} is the best 
&gt; solution, it will keep performance hit away and should solve the problem.

The problem is that extern &quot;C&quot; doesn&apos;t fix the linking issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227430</commentid>
    <comment_count>35</comment_count>
    <who name="Lucas De Marchi">lucas.de.marchi</who>
    <bug_when>2010-05-18 12:34:56 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; &gt; I don&apos;t fully agree with bdash&apos;s solution. If we generate C++ code and another 
&gt; &gt; object that is linked together, we will do more function calls for no good. If we 
&gt; &gt; have them included as they are right now, the function will effectively go away 
&gt; &gt; with optimizations (as happens now). I guess the extern &quot;C&quot; {} is the best 
&gt; &gt; solution, it will keep performance hit away and should solve the problem.
&gt; 
&gt; The problem is that extern &quot;C&quot; doesn&apos;t fix the linking issue.

Don&apos;t think so. I have a similar patch that does not work only for
findValue symbol.

I dislike this patch so much too, because it&apos;d be a one-line patch to gperf, simply changing __attribute__(__gnu_inline__) to __attribute__(__always_inline__)
I&apos;m wondering if this would be acceptable by gperf and webkit projects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227754</commentid>
    <comment_count>36</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-05-19 02:53:05 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; I dislike this patch so much too, because it&apos;d be a one-line patch to gperf, simply changing __attribute__(__gnu_inline__) to __attribute__(__always_inline__)
&gt; I&apos;m wondering if this would be acceptable by gperf and webkit projects.

I don&apos;t think patching gperf source and then build it, isn&apos;t acceptable by WebKit project, because it would require extra work from all developers to setup patched gperf and it would be error prone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227764</commentid>
    <comment_count>37</comment_count>
    <who name="Stephan Aßmus">superstippi</who>
    <bug_when>2010-05-19 03:54:43 -0700</bug_when>
    <thetext>In the Haiku build system, we simply post-process the generated files:

# modify the checks around gnu_inline to include NDEBUG so that symbols are
# generated for debug builds
for file in CSSPropertyNames.cpp CSSValueKeywords.c ColorData.c DocTypeStrings.cpp HTMLEntityNames.c
do
	echo &quot;Patching $file: wrap gnu_inline in NDEBUG check&quot;
	sed --in-place=.unpatched -e &apos;s/__GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__/NDEBUG \&amp;\&amp; (__GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__)/g&apos; &quot;$file&quot;
done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227842</commentid>
    <comment_count>38</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-05-19 08:36:36 -0700</bug_when>
    <thetext>

(In reply to comment #35)
&gt; (In reply to comment #34)
&gt; &gt; &gt; I don&apos;t fully agree with bdash&apos;s solution. If we generate C++ code and another 
&gt; &gt; &gt; object that is linked together, we will do more function calls for no good. If we 
&gt; &gt; &gt; have them included as they are right now, the function will effectively go away 
&gt; &gt; &gt; with optimizations (as happens now). I guess the extern &quot;C&quot; {} is the best 
&gt; &gt; &gt; solution, it will keep performance hit away and should solve the problem.
&gt; &gt; 
&gt; &gt; The problem is that extern &quot;C&quot; doesn&apos;t fix the linking issue.
&gt; 
&gt; Don&apos;t think so. I have a similar patch that does not work only for
&gt; findValue symbol.

Then please contribute your patch, so we can discuss the two solutions here and resolve this issue which is rotting here for almost 10 months now.

For me the approach of the first patch by Priit didn&apos;t fix the linking issues on QtWebKit using gcc 4.5.0.

&gt; I dislike this patch so much too, because it&apos;d be a one-line patch to gperf, simply changing __attribute__(__gnu_inline__) to __attribute__(__always_inline__)
&gt; I&apos;m wondering if this would be acceptable by gperf and webkit projects.

Changing gnu_inline to always_inline in the generated file fixes the linking issue indeed.
But as I see it the problem is not only this linking issue, much more the redundant gperf configuration across five (or so) build systems and their maintainability, not to speak of the multiple source file inclusions across the tree. 
Post-processing the generated files would introduce a much bigger mess than the current one and is a dirty work-around. I&apos;d much better like to fix the current mess of multiple c and cpp source inclusions across WebCore and concentrate the code generation to one script, and not to work around issues and sweep them under the carpet.
The introduced function calls by separating the generated code into it&apos;s own compilation unit are by no means significant compared to the time consumed by the function logic itself and the runtime of the parsers which use it, so I think this is not an argument against the approach originally proposed by bdash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228037</commentid>
    <comment_count>39</comment_count>
      <attachid>56528</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-05-19 16:04:55 -0700</bug_when>
    <thetext>Created attachment 56528
refactor gperf usage 1st iteration

Just to check the build on the EWS bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228041</commentid>
    <comment_count>40</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-19 16:08:32 -0700</bug_when>
    <thetext>Attachment 56528 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/platform/graphics/Color.cpp:34:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/html/HTMLTokenizer.cpp:58:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 17 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>228091</commentid>
    <comment_count>41</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-19 17:15:14 -0700</bug_when>
    <thetext>Attachment 56528 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2278348</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228329</commentid>
    <comment_count>42</comment_count>
      <attachid>56587</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-05-20 05:02:27 -0700</bug_when>
    <thetext>Created attachment 56587
centralize gperf usage

Now with ChangeLog, hopefully this is correct.

This patch is the firs half of the previous approach which removes the redundancy of gperf usage from multiple build systems and centralizes the code generation to make-hash-tools.pl. This doesn&apos;t fix the linking issues yet, they have to be addressed in a follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228331</commentid>
    <comment_count>43</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-20 05:05:51 -0700</bug_when>
    <thetext>Attachment 56587 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/platform/graphics/Color.cpp:34:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/html/HTMLTokenizer.cpp:58:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 19 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>228806</commentid>
    <comment_count>44</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-05-21 02:19:32 -0700</bug_when>
    <thetext>(In reply to comment #43)
&gt; Attachment 56587 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
&gt; WebCore/platform/graphics/Color.cpp:34:  Alphabetical sorting problem.  [build/include_order] [4]
&gt; WebCore/html/HTMLTokenizer.cpp:58:  Alphabetical sorting problem.  [build/include_order] [4]
&gt; Total errors found: 2 in 19 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

This style error is due to the separate source inclusions and was not introduced by me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237392</commentid>
    <comment_count>45</comment_count>
      <attachid>56587</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-12 18:26:07 -0700</bug_when>
    <thetext>Comment on attachment 56587
centralize gperf usage

Seems OK. Not obviously a big improvement, but I suppose we can all adopt the build style the Chrome team decided on instead of using the make file. I&apos;m a bit sad, though, because originally DerivedSources.make was going to be shared by all build systems. It seems that dream has died!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237556</commentid>
    <comment_count>46</comment_count>
      <attachid>56587</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-06-13 07:11:23 -0700</bug_when>
    <thetext>Comment on attachment 56587
centralize gperf usage

(In reply to comment #45)
&gt; (From update of attachment 56587 [details])
&gt; Seems OK. Not obviously a big improvement, but I suppose we can all adopt the build style the Chrome team decided on instead of using the make file. I&apos;m a bit sad, though, because originally DerivedSources.make was going to be shared by all build systems. It seems that dream has died!

Thanks a lot Darin. First half landed in r61091.

After working on it a bit more I&apos;ll submit the second half which should fix the linking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241243</commentid>
    <comment_count>47</comment_count>
      <attachid>59364</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-06-22 06:58:56 -0700</bug_when>
    <thetext>Created attachment 59364
patch

This patch makes the make-hash-tools.pl script generate C++ code for all gperf files now, which are compiled in their own compilation unit, so the linking error with gcc 4.5 in debug mode gets fixed.

Unfortunately this change introduces a potential performance drop of 0.5%-1.3% on our page loading test suite (http://gitorious.org/methanol) with QtWebKit trunk which has 1.5% - 3.0% deviation and thus is inconclusive and insignificant. This drop might be due to some previously inlined functions becoming real function calls but methanol does not convince me that the shown drop is real because some pages show near to 1% performance increase with 0.5-1.0% deviation so this needs further investigation with other PLT suites on other ports of WebKit (Methanol PLT uses locally mirrored popular webpages and measures loading time using a JS framework). 

I tried several other solutions to fix the issue but none of them worked.
(Before somebody mentions it again: extern &quot;C&quot; doesn&apos;t fix the linking problem because it is due to gcc 4.5&apos;s disabled inlining in debug mode and not because of conflicting C and C++ linkage.)
 
We could work around the issue by patching the generated sources as mentioned earlier, but this hack raises revulsive feeling in me.
If someone has a working (or partially working) solution, please contribute so we can work out a solution which has definitely no performance penalties.

None the less I set r? for this patch because there is a memory usage dropdown due to the smaller code size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241251</commentid>
    <comment_count>48</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-22 07:58:28 -0700</bug_when>
    <thetext>Attachment 59364 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3340601</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241269</commentid>
    <comment_count>49</comment_count>
      <attachid>59373</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-06-22 08:42:02 -0700</bug_when>
    <thetext>Created attachment 59373
patch

Also apply changes to chromium sources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241318</commentid>
    <comment_count>50</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-22 10:16:02 -0700</bug_when>
    <thetext>Attachment 59373 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3283563</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241435</commentid>
    <comment_count>51</comment_count>
      <attachid>59373</attachid>
    <who name="Lucas De Marchi">lucas.de.marchi</who>
    <bug_when>2010-06-22 13:46:52 -0700</bug_when>
    <thetext>Comment on attachment 59373
patch

&gt;+    my $htmlEntityNamesGenerated   = &quot;$outdir/HTMLEntityNamesHash.hpp&quot;;

Why are you using .hpp? There&apos;s only 1 header in the hole webkit tree named .hpp. I think would be better to name it as .h instead.


Also, CMake changes are missing. As we talked previously, I can help with that. Is there anything to be done besides adding the .cpp files?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241599</commentid>
    <comment_count>52</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-22 18:59:02 -0700</bug_when>
    <thetext>Attachment 59373 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/3330593</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241968</commentid>
    <comment_count>53</comment_count>
      <attachid>59540</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-06-23 11:27:25 -0700</bug_when>
    <thetext>Created attachment 59540
updated patch

Thanks Lucas you remind me, I&apos;ve updated the CMake file now. Also updated the chromium gyp file, which I missed previously. I can&apos;t find the output of the Windows EWS, and if it is correct on Windows I also need to add the new files to its project file.
This 7 or more different build systems seems hardly maintainable for the long term.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242057</commentid>
    <comment_count>54</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-23 13:41:39 -0700</bug_when>
    <thetext>Attachment 59540 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3284625</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242079</commentid>
    <comment_count>55</comment_count>
      <attachid>59562</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-06-23 14:13:58 -0700</bug_when>
    <thetext>Created attachment 59562
updated patch

Updated patch to work on ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242114</commentid>
    <comment_count>56</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-23 15:19:09 -0700</bug_when>
    <thetext>Attachment 59540 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/3339619</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242117</commentid>
    <comment_count>57</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-23 15:21:39 -0700</bug_when>
    <thetext>Attachment 59540 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/3321686</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242200</commentid>
    <comment_count>58</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-23 17:59:20 -0700</bug_when>
    <thetext>Attachment 59562 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3338696</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242286</commentid>
    <comment_count>59</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-23 21:53:48 -0700</bug_when>
    <thetext>Attachment 59562 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/3276696</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242360</commentid>
    <comment_count>60</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-06-24 00:39:03 -0700</bug_when>
    <thetext>(In reply to comment #58)
&gt; Attachment 59562 [details] did not build on chromium:
&gt; Build output: http://webkit-commit-queue.appspot.com/results/3338696

Seems that the chromium ews has an incremental build problem with my patch, because locally I can build it with a clean build. I might have missed some dependency setting in the gyp file, could someone with more chromium knowledge check it, please?
Also the windows ews is not too helpful, so I&apos;ll have to set up a build environment for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242528</commentid>
    <comment_count>61</comment_count>
    <who name="Evan Martin">evan</who>
    <bug_when>2010-06-24 08:43:22 -0700</bug_when>
    <thetext>If you are confident that your patch is reasonable (it seems likely, given the state of the non-chrome bots), perhaps a better approach is to ask on #webkit for a chrome developer to do a clean build of the relevant webkit bots after you check it in.

(We have to do this occasionally for non-webkit bits of chrome, so I don&apos;t think it&apos;s too much to ask.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242582</commentid>
    <comment_count>62</comment_count>
      <attachid>59674</attachid>
    <who name="Leandro Pereira">leandro</who>
    <bug_when>2010-06-24 10:41:49 -0700</bug_when>
    <thetext>Created attachment 59674
EFL port patch

Attachment #59562 breaks the EFL build; applying this patch after #59562 has been applied fixes the build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248689</commentid>
    <comment_count>63</comment_count>
    <who name="Gustavo Sverzut Barbieri">barbieri</who>
    <bug_when>2010-07-08 19:26:35 -0700</bug_when>
    <thetext>anyone reviewing abecsi&apos;s patch? Looks good to me.

abecsi, could you integrate Leandro&apos;s patch in yours so you don&apos;t break EFL when it is applied?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248844</commentid>
    <comment_count>64</comment_count>
      <attachid>61019</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-07-09 02:05:59 -0700</bug_when>
    <thetext>Created attachment 61019
updated patch with EFL changes

I rebased the patch to ToT and incorporated the cmake changes by Leandro. Thanks for the help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248967</commentid>
    <comment_count>65</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-09 06:59:39 -0700</bug_when>
    <thetext>Attachment 61019 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/3499072</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254147</commentid>
    <comment_count>66</comment_count>
    <who name="Ling Kun">erlv5241</who>
    <bug_when>2010-07-21 00:26:00 -0700</bug_when>
    <thetext>This patch can&apos;t patched to latest webkit svn r63640. 
git apply --check ~/webkit_gperf.patch
error: patch failed: ChangeLog:1
error: ChangeLog: patch does not apply
error: patch failed: WebCore/CMakeLists.txt:525
error: WebCore/CMakeLists.txt: patch does not apply
error: patch failed: WebCore/ChangeLog:1
error: WebCore/ChangeLog: patch does not apply
error: patch failed: WebCore/WebCore.gyp/WebCore.gyp:692
error: WebCore/WebCore.gyp/WebCore.gyp: patch does not apply
error: patch failed: WebCore/WebCore.xcodeproj/project.pbxproj:22118
error: WebCore/WebCore.xcodeproj/project.pbxproj: patch does not apply
error: patch failed: WebKit/chromium/ChangeLog:1
error: WebKit/chromium/ChangeLog: patch does not apply
error: patch failed: WebKit/qt/ChangeLog:1
error: WebKit/qt/ChangeLog: patch does not apply</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255309</commentid>
    <comment_count>67</comment_count>
      <attachid>62415</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-07-23 04:54:10 -0700</bug_when>
    <thetext>Created attachment 62415
updated patch

Updated patch to ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255324</commentid>
    <comment_count>68</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-07-23 05:01:18 -0700</bug_when>
    <thetext>Could someone familiar with the Windows build system check the patch, or kick the EWS to force a clean build, I suspect a clean build should fix it.
I&apos;m struggling to configure a build environment capable of building the Windows port, but am unsuccessful yet to build the trunk.

Thanks in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255439</commentid>
    <comment_count>69</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-23 09:49:57 -0700</bug_when>
    <thetext>Attachment 62415 did not build on win:
Build output: http://queues.webkit.org/results/3399761</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262017</commentid>
    <comment_count>70</comment_count>
      <attachid>63867</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-08-09 01:37:48 -0700</bug_when>
    <thetext>Created attachment 63867
updated patch

Updated patch to ToT and hopefully fixed Windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262025</commentid>
    <comment_count>71</comment_count>
      <attachid>63870</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-08-09 02:03:04 -0700</bug_when>
    <thetext>Created attachment 63870
updated patch

Update to the right ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262106</commentid>
    <comment_count>72</comment_count>
      <attachid>63889</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-08-09 05:23:45 -0700</bug_when>
    <thetext>Created attachment 63889
updated patch

Somehow the Windows file endings got lost from the vcproj file. Now it should be up-to-date.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267938</commentid>
    <comment_count>73</comment_count>
      <attachid>65127</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-08-23 09:06:59 -0700</bug_when>
    <thetext>Created attachment 65127
updated to ToT

Updated the patch to ToT after recent changes on the HTML Parser. Nevertheless of https://bugs.webkit.org/show_bug.cgi?id=43981 on Windows svn-apply still cannot apply a this, so if the EWS also fails I will reopen the above bug.
Could someone please review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271468</commentid>
    <comment_count>74</comment_count>
      <attachid>65924</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-08-30 09:40:39 -0700</bug_when>
    <thetext>Created attachment 65924
updated patch

Updated to ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272882</commentid>
    <comment_count>75</comment_count>
    <who name="Jerry Caldicot">umphilitus</who>
    <bug_when>2010-09-01 10:33:47 -0700</bug_when>
    <thetext>(In reply to comment #74)
&gt; Created an attachment (id=65924) [details]
&gt; updated patch
&gt; 
&gt; Updated to ToT

tried to apply both the patch from 08-30 and 08-23 resulting in the same error:


ERROR: net-libs/webkit-gtk-1.2.3 failed:
 *   Failed Patch: gperf.patch!
 *
 * Call stack:
 *     ebuild.sh, line   54:  Called src_prepare
 *   environment, line 3181:  Called epatch &apos;/usr/local/portage/net-libs/webkit-gtk/files/gperf.patch&apos;
 *   environment, line 1838:  Called die
 * The specific snippet of code:
 *               die &quot;Failed Patch: ${patchname}!&quot;;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273955</commentid>
    <comment_count>76</comment_count>
      <attachid>66501</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-03 08:22:52 -0700</bug_when>
    <thetext>Created attachment 66501
updated to ToT

Updated patch because of CMakeLists.txt conflicts.
This change (and the previous ones) locally works for me on Windows, svn-apply just can&apos;t apply it because of some cygwin patch bug, but this issue shouldn&apos;t prevent the review, since the Windows change only touches the vcproj file.
Seems that reviewers are scared away by this bug, 25 people are CCed including me, but no one even dares to comment on the patches. I slowly lose my motivation in updating a patch no reviewer cares about, but this issue blocks our migration to gcc 4.5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286282</commentid>
    <comment_count>77</comment_count>
      <attachid>66501</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-09-28 08:58:31 -0700</bug_when>
    <thetext>Comment on attachment 66501
updated to ToT

This solution is based on suggestions of bdash (https://bugs.webkit.org/show_bug.cgi?id=29244#c5).
There wasn&apos;t any objection, so I can&apos;t see any reason why not to give r+ and block migrating to gcc 4.5 any further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286285</commentid>
    <comment_count>78</comment_count>
      <attachid>66501</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-28 09:01:56 -0700</bug_when>
    <thetext>Comment on attachment 66501
updated to ToT

Clearing flags on attachment: 66501

Committed r68521: &lt;http://trac.webkit.org/changeset/68521&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286286</commentid>
    <comment_count>79</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-28 09:02:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286447</commentid>
    <comment_count>80</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-09-28 12:31:04 -0700</bug_when>
    <thetext>After rolling past this CL, we&apos;re getting errors in the downstream chromium/win release builder:

http://build.chromium.org/buildbot/waterfall/builders/Chromium%20Builder/builds/35014/steps/compile/logs/stdio

I&apos;m not certain this CL is to blame -- it&apos;s definitely something in the range 68504:68527.  I thought I&apos;d mention it in case someone had any insight.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286495</commentid>
    <comment_count>81</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-09-28 13:24:10 -0700</bug_when>
    <thetext>&gt; I&apos;m not certain this CL is to blame -- it&apos;s definitely something in the range 68504:68527.  I thought I&apos;d mention it in case someone had any insight.

Confirmed:  r68520 is fine, r68521 fails.  It seems to be related to the #include of system headers inside a namespace, which VS2008 doesn&apos;t like.  ColorData.cpp has:

namespace WebCore {
#include &quot;ColorDataHash.h&quot;

...

and ColorDataHash.h has #include &lt;string.h&gt;.

Same for DocTypeStringsHash.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286503</commentid>
    <comment_count>82</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-09-28 13:44:40 -0700</bug_when>
    <thetext>I&apos;ve opened https://bugs.webkit.org/show_bug.cgi?id=46751 for this error, and I have a fix that I&apos;ll try out on that bug to get EWS bot results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286792</commentid>
    <comment_count>83</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-09-29 04:18:18 -0700</bug_when>
    <thetext>GTK buildfixes landed in:
http://trac.webkit.org/changeset/68528
http://trac.webkit.org/changeset/68529
http://trac.webkit.org/changeset/68550

Chromium fix landed it:
http://trac.webkit.org/changeset/68563</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288779</commentid>
    <comment_count>84</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-10-03 12:13:58 -0700</bug_when>
    <thetext>Is there a reason why we put the code of _whole_ files (HashTools.h, ColorData.cpp and DocTypeStrings.cpp) into the perl script? I can&apos;t find any generated code in these files.
Why are they not simply in the SVN tree?

I don&apos;t know the exact problem now, but the different CR/CRLF line endings of gperf and perl make problems on Windows without cygwin since this patch.
An other problem I have with this patch is, that gperf needs to be in the path now and I can&apos;t provide it via an argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288798</commentid>
    <comment_count>85</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-10-03 15:44:25 -0700</bug_when>
    <thetext>(In reply to comment #84)
&gt; Is there a reason why we put the code of _whole_ files (HashTools.h, ColorData.cpp and DocTypeStrings.cpp) into the perl script? I can&apos;t find any generated code in these files.
&gt; Why are they not simply in the SVN tree?

This is a remainder of a previous design, there is no actual cause for the mentioned code to be in the perl script, except for being in a central place and not to increase the number of source files unnecessarily.
At least HashTools.h could be in it&apos;s own file.

&gt; 
&gt; I don&apos;t know the exact problem now, but the different CR/CRLF line endings of gperf and perl make problems on Windows without cygwin since this patch.

Moving the mentioned code to separate files wouldn&apos;t fix this issue either, would it? If it would, I&apos;ll move those to separate files as you suggested.

&gt; An other problem I have with this patch is, that gperf needs to be in the path now and I can&apos;t provide it via an argument.

I could expand the scripts to accept the gperf command via an argument if this is a problem but the centralization of the gperf commands was introduced in http://trac.webkit.org/changeset/61091 a long time ago, and there was no option to provide the gperf command as argument before that neither (except for a hacked port specific project file).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288841</commentid>
    <comment_count>86</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-10-04 01:52:15 -0700</bug_when>
    <thetext>(In reply to comment #85)
&gt; This is a remainder of a previous design, there is no actual cause for the mentioned code to be in the perl script, except for being in a central place and not to increase the number of source files unnecessarily.
If it&apos;s not a big taks for you I&apos;d like to see 3 &quot;real&quot; files.

&gt; Moving the mentioned code to separate files wouldn&apos;t fix this issue either, would it? If it would, I&apos;ll move those to separate files as you suggested.
I&apos;m not sure, but maybe. :-/

&gt; I could expand the scripts to accept the gperf command via an argument if this is a problem but the centralization of the gperf commands was introduced in http://trac.webkit.org/changeset/61091 a long time ago, and there was no option to provide the gperf command as argument before that neither (except for a hacked port specific project file).
You didn&apos;t changed the CMake files in r61091 ;-).

Sorry for the following question: Is there much value in the make-hash-tools.pl? After my requested changes it only consist out of two gperf calls and IMHO it&apos;s more clear to call gperf from the &quot;native&quot; buildsystem, because it can provide better error handling than a wrapper scipt.

If we like the centralized definition of gperf (=good idea) I think that we should call it like:
&quot;make-gperf.pl path/to/ColorData.gperf &gt; output/dir/ColorDataHash.h&quot; and
&quot;make-gperf.pl path/to/DocTypeStrings.gperf &gt; output/dir/DocTypeStringsHash.h&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288852</commentid>
    <comment_count>87</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-10-04 02:36:51 -0700</bug_when>
    <thetext>(In reply to comment #86)
&gt; You didn&apos;t changed the CMake files in r61091 ;-).
&gt; 
Right. Sorry.

&gt; If we like the centralized definition of gperf (=good idea) I think that we should call it like:
&gt; &quot;make-gperf.pl path/to/ColorData.gperf &gt; output/dir/ColorDataHash.h&quot; and
&gt; &quot;make-gperf.pl path/to/DocTypeStrings.gperf &gt; output/dir/DocTypeStringsHash.h&quot;

I would like this aproach, because the centralization was one of the main motives of the patch. If you need extra options this would be a way to handle it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40800</attachid>
            <date>2009-10-07 09:48:53 -0700</date>
            <delta_ts>2010-04-26 10:48:21 -0700</delta_ts>
            <desc>webkit-resolve-findentity-link-error.patch</desc>
            <filename>webkit-link-errors-findentity.patch</filename>
            <type>text/plain</type>
            <size>2287</size>
            <attacher name="Priit Laes (IRC: plaes)">plaes</attacher>
            
              <data encoding="base64">RnJvbSA2ZjhkMjU0YTdjOWI5ZjhhMGNkZWZjMTU2ZjBlNTQ4OTViNzA3ODIyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQcmlpdCBMYWVzIDxwbGFlc0BwbGFlcy5vcmc+CkRhdGU6IFdl
ZCwgNyBPY3QgMjAwOSAxOTo0NDo0NyArMDMwMApTdWJqZWN0OiBbUEFUQ0hdIDIwMDktMTAtMDcg
IFByaWl0IExhZXMgIDxwbGFlc0BwbGFlcy5vcmc+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgoKICAgICAgICBbR1RLXSBMaW5raW5nIGZhaWxzIHdpdGggdW5yZWZlcmVuY2Vk
IHN5bWJvbHMgZXJyb3IKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjkyNDQKCiAgICAgICAgSW5jbHVkZSAuYyBmaWxlcyB1c2luZyBleHRlcm4gIkMiIHt9
IGJsb2NrLgoKICAgICAgICAqIGh0bWwvSFRNTFRva2VuaXplci5jcHA6CiAgICAgICAgKiBodG1s
L1ByZWxvYWRTY2FubmVyLmNwcDoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAg
IHwgICAxMiArKysrKysrKysrKysKIFdlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcCAgfCAg
ICA0ICsrKy0KIFdlYkNvcmUvaHRtbC9QcmVsb2FkU2Nhbm5lci5jcHAgfCAgICA0ICsrKy0KIDMg
ZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFjZmYzZGMu
LmM3YzMwNWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMTAtMDcgIFByaWl0IExhZXMgIDxwbGFlc0Bw
bGFlcy5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgW0dUS10gTGlua2luZyBmYWlscyB3aXRoIHVucmVmZXJlbmNlZCBzeW1ib2xzIGVycm9yCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTI0NAorCisg
ICAgICAgIEluY2x1ZGUgLmMgZmlsZXMgdXNpbmcgZXh0ZXJuICJDIiB7fSBibG9jay4KKworICAg
ICAgICAqIGh0bWwvSFRNTFRva2VuaXplci5jcHA6CisgICAgICAgICogaHRtbC9QcmVsb2FkU2Nh
bm5lci5jcHA6CisKIDIwMDktMTAtMDcgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIEZpeCB0eXBvIGluIFBsdWdpblZpZXc6OmxvYWQgdGhhdCB3YXMgY2F1c2luZyBj
cm9zcy1vcmlnaW4gbG9hZHMgdG8KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5p
emVyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcAppbmRleCAxYTJkMjc2Li43
MTEyZjAwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKKysrIGIv
V2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwCkBAIC01NCw3ICs1NCw5IEBACiAjaW5jbHVk
ZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAotI2lu
Y2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jIgorZXh0ZXJuICJDIiB7CisgICNpbmNsdWRlICJIVE1M
RW50aXR5TmFtZXMuYyIKK30KIAogI2RlZmluZSBQUkVMT0FEX1NDQU5ORVJfRU5BQkxFRCAxCiAv
LyAjZGVmaW5lIElOU1RSVU1FTlRfTEFZT1VUX1NDSEVEVUxJTkcgMQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL1ByZWxvYWRTY2FubmVyLmNwcCBiL1dlYkNvcmUvaHRtbC9QcmVsb2FkU2Nhbm5l
ci5jcHAKaW5kZXggNjBlNTM4ZS4uYTdlMDI3YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL1By
ZWxvYWRTY2FubmVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvUHJlbG9hZFNjYW5uZXIuY3BwCkBA
IC00Nyw3ICs0Nyw5IEBACiAvLyBVc2UgX19HTlVDX18gaW5zdGVhZCBvZiBQTEFURk9STShHQ0Mp
IHRvIHN0YXkgY29uc2lzdGVudCB3aXRoIHRoZSBncGVyZiBnZW5lcmF0ZWQgYyBmaWxlCiAjaWZk
ZWYgX19HTlVDX18KIC8vIFRoZSBtYWluIHRva2VuaXplciBpbmNsdWRlcyB0aGlzIHRvbyBzbyB3
ZSBhcmUgZ2V0dGluZyB0d28gY29waWVzIG9mIHRoZSBkYXRhLiBIb3dldmVyLCB0aGlzIHdheSB0
aGUgY29kZSBnZXRzIGlubGluZWQuCi0jaW5jbHVkZSAiSFRNTEVudGl0eU5hbWVzLmMiCitleHRl
cm4gIkMiIHsKKyAgI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jIgorfQogI2Vsc2UKIC8vIE5v
dCBpbmxpbmVkIGZvciBub24tR0NDIGNvbXBpbGVycwogc3RydWN0IEVudGl0eSB7Ci0tIAoxLjYu
NS5yYzIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54317</attachid>
            <date>2010-04-26 10:48:21 -0700</date>
            <delta_ts>2010-05-11 09:44:59 -0700</delta_ts>
            <desc>first draft: Refactor gperf hash generation to fix the debug build with gcc &gt;= 4.4.0.</desc>
            <filename>0001-Refactor-gperf-hash-gereration-to-fix-the-debug-buil.patch</filename>
            <type>text/plain</type>
            <size>36160</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">RnJvbSAyZjI0M2QzMmRjODY0YWNiZjQyOTgzZGY2MzYwN2Y3MDNlMjNjMjhmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyYXMgQmVjc2kgPGFiZWNzaUBpbmYudS1zemVnZWQuaHU+
CkRhdGU6IE1vbiwgMjYgQXByIDIwMTAgMTk6MjY6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIXSBS
ZWZhY3RvciBncGVyZiBoYXNoIGdlcmVyYXRpb24gdG8gZml4IHRoZSBkZWJ1ZyBidWlsZCB3aXRo
IGdjYyA+PSA0LjQuMC4KIEdwZXJmIGNvZGUgZ2VuZXJhdGlvbiB3YXMgbW92ZWQgaW50byBXZWJD
b3JlL21ha2UtaGFzaC10b29scy5wbCwgaXQKIGdlbmVyYXRlcyBDKysgY29kZSBub3cgd2hpY2gg
aXMgY29tcGlsZWQgaW4gaXRzIG93biBjb21waWxhdGlvbiB1bml0LgogVGhlIGdlbmVyYXRlZCBj
b2RlIGlzIHdyYXBwZWQgYmVoaW5kIGEgaGVhZGVyLCBzbyB0aGVyZSBpcyBubyBuZWVkCiBmb3Ig
bXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQgQyBmaWxlcyBhbnkgbW9yZSwKIG9ubHkg
SGFzaFRvb2xzLmggaGFzIHRvIGJlIGluY2x1ZGVkLgoKd2Via2l0Lm9yZy9iLzI5MjQ0Ci0tLQog
V2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQubWsgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSAr
LQogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlICAgICAgICAgICAgICAgICAgICAgIHwgICAx
NiArLQogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAyNyArKy0tCiBXZWJDb3JlL1dlYkNvcmUucHJpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDQ0ICsrKy0tLQogV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcCAgICAgIHwgICAgMSArCiBXZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bi5jcHAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDggKy0KIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNw
cCAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwICAg
ICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0
aW9uLmNwcCAgICAgICAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvY3NzL21ha2Vwcm9wLnBsICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNTQgKysrKystLQogV2ViQ29yZS9jc3MvbWFrZXZh
bHVlcy5wbCAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1NyArKysrKy0tCiBXZWJDb3JlL2h0
bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYgICAgICAgICAgICAgICAgfCAgIDI0ICsrLS0KIFdlYkNv
cmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIFdl
YkNvcmUvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYgICAgICAgICAgICAgICB8ICAgMjEgKyst
CiBXZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAgICAgICAgICAgICAgICAgICAgfCAgICAz
ICstCiBXZWJDb3JlL2h0bWwvUHJlbG9hZFNjYW5uZXIuY3BwICAgICAgICAgICAgICAgICAgfCAg
IDEzICstLQogV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwgICAgICAgICAgICAgICAgICAgICAg
IHwgIDE4OCArKysrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0lt
cGxpY2l0QW5pbWF0aW9uLmNwcCAgICAgfCAgICAxICsKIFdlYkNvcmUvcGxhdGZvcm0vQ29sb3JE
YXRhLmdwZXJmICAgICAgICAgICAgICAgICB8ICAgMTMgKystCiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yLmNwcCAgICAgICAgICAgICAgfCAgICAzICstCiBXZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkVudGl0aWVzLmNwcCAgICAgICAgICAgICAgfCAgIDEwICstCiBXZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgfCAgICA0ICstCiAyMyBmaWxlcyBj
aGFuZ2VkLCAzODQgaW5zZXJ0aW9ucygrKSwgMTI1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg
MTAwNjQ0IFdlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9B
bmRyb2lkLmRlcml2ZWQubWsgYi9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5tawppbmRleCBjNjc4
ZTYwLi45ZWUyZWIwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5taworKysg
Yi9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5tawpAQCAtNTUsOSArNTUsMTAgQEAgTE9DQUxfR0VO
RVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCiAKICMgRE9DVFlQRSBzdHJpbmdzCiAKLUdFTiA6PSAk
KGludGVybWVkaWF0ZXMpL2h0bWwvRG9jVHlwZVN0cmluZ3MuY3BwCi0kKEdFTik6IFBSSVZBVEVf
Q1VTVE9NX1RPT0wgPSBncGVyZiAtQ0VvdCAtTCBBTlNJLUMgLWsgIioiIC1OIGZpbmREb2N0eXBl
RW50cnkgLUYgLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyxQdWJJREluZm86OmVBbG1vc3RT
dGFuZGFyZHMgJDwgPiAkQAorR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvaHRtbC9Eb2NUeXBlU3Ry
aW5nc0ltcGwuY3BwCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBwZXJsICQoTE9DQUxf
UEFUSCkvbWFrZS1oYXNoLXRvb2xzLnBsIGRvY3R5cGUgJChkaXIgJEApICQoTE9DQUxfUEFUSCkv
aHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgogJChHRU4pOiAkKExPQ0FMX1BBVEgpL2h0bWwvRG9j
VHlwZVN0cmluZ3MuZ3BlcmYKKyQoR0VOKTogU0NSSVBUIDo9ICQoTE9DQUxfUEFUSCkvbWFrZS1o
YXNoLXRvb2xzLnBsCiAJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKICMgd2UgaGF2ZSB0
byBkbyB0aGlzIGRlcCBieSBoYW5kOgogJChpbnRlcm1lZGlhdGVzKS9odG1sL0hUTUxEb2N1bWVu
dC5vIDogJChHRU4pCkBAIC02NSwxOCArNjYsMjAgQEAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0hU
TUxEb2N1bWVudC5vIDogJChHRU4pCiAKICMgSFRNTCBlbnRpdHkgbmFtZXMKIAotR0VOIDo9ICQo
aW50ZXJtZWRpYXRlcykvaHRtbC9IVE1MRW50aXR5TmFtZXMuYwotJChHRU4pOiBQUklWQVRFX0NV
U1RPTV9UT09MID0gZ3BlcmYgLWEgLUwgQU5TSS1DIC1DIC1HIC1jIC1vIC10IC1rICcqJyAtTiBm
aW5kRW50aXR5IC1EIC1zIDIgJDwgPiAkQAorR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvaHRtbC9I
VE1MRW50aXR5TmFtZXNJbXBsLmNwcAorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gcGVy
bCAkKExPQ0FMX1BBVEgpL21ha2UtaGFzaC10b29scy5wbCBlbnRpdGllcyAkKGRpciAkQCkgJChM
T0NBTF9QQVRIKS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgogJChHRU4pOiAkKExPQ0FMX1BB
VEgpL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCiskKEdFTik6IFNDUklQVCA6PSAkKExPQ0FM
X1BBVEgpL21ha2UtaGFzaC10b29scy5wbAogCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2Up
CiBMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKIAogCiAjIGNvbG9yIG5hbWVzCiAK
LUdFTiA6PSAkKGludGVybWVkaWF0ZXMpL3BsYXRmb3JtL0NvbG9yRGF0YS5jCi0kKEdFTik6IFBS
SVZBVEVfQ1VTVE9NX1RPT0wgPSBncGVyZiAtQ0RFb3QgLUwgQU5TSS1DIC1rICcqJyAtTiBmaW5k
Q29sb3IgLUQgLXMgMiAkPCA+ICRACitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9wbGF0Zm9ybS9D
b2xvckRhdGFJbXBsLmNwcAorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gcGVybCAkKExP
Q0FMX1BBVEgpL21ha2UtaGFzaC10b29scy5wbCBjb2xvcmRhdGEgJChkaXIgJEApICQoTE9DQUxf
UEFUSCkvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCiAkKEdFTik6ICQoTE9DQUxfUEFUSCkvcGxh
dGZvcm0vQ29sb3JEYXRhLmdwZXJmCiskKEdFTik6IFNDUklQVCA6PSAkKExPQ0FMX1BBVEgpL21h
a2UtaGFzaC10b29scy5wbAogCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCiBMT0NBTF9H
RU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGY5Y2U0ZDYu
LmUyODcyZDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQ0OCwxMCArNDQ4LDEwIEBAIGFsbCA6IFwK
ICAgICBDU1NHcmFtbWFyLmNwcCBcCiAgICAgQ1NTUHJvcGVydHlOYW1lcy5oIFwKICAgICBDU1NW
YWx1ZUtleXdvcmRzLmggXAotICAgIENvbG9yRGF0YS5jIFwKKyAgICBDb2xvckRhdGFJbXBsLmNw
cCBcCiAgICAgRG9jVHlwZVN0cmluZ3MuY3BwIFwKICAgICBIVE1MRWxlbWVudEZhY3RvcnkuY3Bw
IFwKLSAgICBIVE1MRW50aXR5TmFtZXMuYyBcCisgICAgSFRNTEVudGl0eU5hbWVzSW1wbC5jcHAg
XAogICAgIEhUTUxOYW1lcy5jcHAgXAogICAgIFdNTEVsZW1lbnRGYWN0b3J5LmNwcCBcCiAgICAg
V01MTmFtZXMuY3BwIFwKQEAgLTUzOSwyMiArNTM5LDIyIEBAIENTU1ZhbHVlS2V5d29yZHMuaCA6
ICQoV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09SRFMpIGNzcy9tYWtldmFsdWVzLnBsCiAKICMgRE9D
VFlQRSBzdHJpbmdzCiAKLURvY1R5cGVTdHJpbmdzLmNwcCA6IGh0bWwvRG9jVHlwZVN0cmluZ3Mu
Z3BlcmYKLQlncGVyZiAtQ0VvdCAtTCBBTlNJLUMgLWsgIioiIC1OIGZpbmREb2N0eXBlRW50cnkg
LUYgLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyxQdWJJREluZm86OmVBbG1vc3RTdGFuZGFy
ZHMgJDwgPiAkQAorRG9jVHlwZVN0cmluZ3NJbXBsLmNwcCA6IGh0bWwvRG9jVHlwZVN0cmluZ3Mu
Z3BlcmYgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwKKwlwZXJsICQoV2ViQ29yZSkvbWFr
ZS1oYXNoLXRvb2xzLnBsIGRvY3R5cGUgLiBodG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCiAKICMg
LS0tLS0tLS0KIAogIyBIVE1MIGVudGl0eSBuYW1lcwogCi1IVE1MRW50aXR5TmFtZXMuYyA6IGh0
bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCi0JZ3BlcmYgLWEgLUwgQU5TSS1DIC1DIC1HIC1jIC1v
IC10IC1rICcqJyAtTiBmaW5kRW50aXR5IC1EIC1zIDIgJDwgPiAkQAorSFRNTEVudGl0eU5hbWVz
SW1wbC5jcHAgOiBodG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZiAkKFdlYkNvcmUpL21ha2UtaGFz
aC10b29scy5wbAorCXBlcmwgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwgZW50aXRpZXMg
LiBodG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgogCiAjIC0tLS0tLS0tCiAKICMgY29sb3IgbmFt
ZXMKIAotQ29sb3JEYXRhLmMgOiBwbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKLQlncGVyZiAtQ0RF
b3QgLUwgQU5TSS1DIC1rICcqJyAtTiBmaW5kQ29sb3IgLUQgLXMgMiAkPCA+ICRACitDb2xvckRh
dGFJbXBsLmNwcCA6IHBsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZiAkKFdlYkNvcmUpL21ha2UtaGFz
aC10b29scy5wbAorCXBlcmwgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwgY29sb3JkYXRh
IC4gcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCiAKICMgLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggZGFl
MTU3Ni4uNWI0YjBiOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC03OSw5ICs3OSw5IEBAIHdlYmNvcmVndGtfY3BwZmxh
Z3MgKz0gXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwCiAKIHdl
YmNvcmVfYnVpbHRfbm9zb3VyY2VzICs9IFwKLQlEZXJpdmVkU291cmNlcy9Eb2NUeXBlU3RyaW5n
cy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0RvY1R5cGVTdHJpbmdzSW1wbC5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL3Rva2VuaXplci5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0NvbG9yRGF0YS5jIFwK
KwlEZXJpdmVkU291cmNlcy9Db2xvckRhdGFJbXBsLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Vi
a2l0L3dlYmtpdGRvbWR1bW15LmMKIAogd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKQEAgLTkw
LDcgKzkwLDcgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9D
U1NQcm9wZXJ0eU5hbWVzLmggXAogCURlcml2ZWRTb3VyY2VzL0NTU1ZhbHVlS2V5d29yZHMuaCBc
CiAJRGVyaXZlZFNvdXJjZXMvSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCBcCi0JRGVyaXZlZFNvdXJj
ZXMvSFRNTEVudGl0eU5hbWVzLmMgXAorCURlcml2ZWRTb3VyY2VzL0hUTUxFbnRpdHlOYW1lc0lt
cGwuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9IVE1MTmFtZXMuY3BwIFwKIAlEZXJpdmVkU291cmNl
cy9KU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9Vc2Vy
QWdlbnRTdHlsZVNoZWV0cy5oIFwKQEAgLTM2MjYsMjcgKzM2MjYsMzAgQEAgRGVyaXZlZFNvdXJj
ZXMvQ1NTUHJvcGVydHlOYW1lcy5oOiAkKFdFQkNPUkVfQ1NTX1BST1BFUlRZX05BTUVTKSAkKFdl
YkNvcmUpL2Nzcy8KIAlpZiBzb3J0ICQoV0VCQ09SRV9DU1NfUFJPUEVSVFlfTkFNRVMpIHwgdW5p
cSAtZCB8IGdyZXAgLUUgJ15bXiNdJzsgdGhlbiBlY2hvICdEdXBsaWNhdGUgdmFsdWUhJzsgZXhp
dCAxOyBmaQogCWNhdCAkKFdFQkNPUkVfQ1NTX1BST1BFUlRZX05BTUVTKSA+IENTU1Byb3BlcnR5
TmFtZXMuaW4KIAkkKFBFUkwpICIkKFdlYkNvcmUpL2Nzcy9tYWtlcHJvcC5wbCIKLQltdiBDU1NQ
cm9wZXJ0eU5hbWVzLiogJChHRU5TT1VSQ0VTKQorCW12IENTU1Byb3BlcnR5TmFtZXMuaCAkKEdF
TlNPVVJDRVMpCisJbXYgQ1NTUHJvcGVydHlOYW1lc0ltcGwuY3BwICQoR0VOU09VUkNFUykKKwlt
diBDU1NQcm9wZXJ0eU5hbWVzSGFzaC5ocHAgJChHRU5TT1VSQ0VTKQogCiAjIExvd2VyIGNhc2Ug
YWxsIHRoZSB2YWx1ZXMsIGFzIENTUyB2YWx1ZXMgYXJlIGNhc2UtaW5zZW5zaXRpdmUKIERlcml2
ZWRTb3VyY2VzL0NTU1ZhbHVlS2V5d29yZHMuaCA6ICQoV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09S
RFMpICQoV2ViQ29yZSkvY3NzL21ha2V2YWx1ZXMucGwKIAkkKFBFUkwpIC1uZSAncHJpbnQgbGMn
ICQoV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09SRFMpID4gQ1NTVmFsdWVLZXl3b3Jkcy5pbgogCWlm
IHNvcnQgQ1NTVmFsdWVLZXl3b3Jkcy5pbiB8IHVuaXEgLWQgfCBncmVwIC1FICdeW14jXSc7IHRo
ZW4gZWNobyAnRHVwbGljYXRlIHZhbHVlISc7IGV4aXQgMTsgZmkKIAkkKFBFUkwpICIkKFdlYkNv
cmUpL2Nzcy9tYWtldmFsdWVzLnBsIgotCW12IENTU1ZhbHVlS2V5d29yZHMuKiAkKEdFTlNPVVJD
RVMpCisJbXYgQ1NTVmFsdWVLZXl3b3Jkcy5oICQoR0VOU09VUkNFUykKKwltdiBDU1NWYWx1ZUtl
eXdvcmRzSW1wbC5jcHAgJChHRU5TT1VSQ0VTKQorCW12IENTU1ZhbHVlS2V5d29yZHNIYXNoLmhw
cCAkKEdFTlNPVVJDRVMpCiAKICMgRE9DVFlQRSBzdHJpbmdzCi1EZXJpdmVkU291cmNlcy9Eb2NU
eXBlU3RyaW5ncy5jcHAgOiAkKFdlYkNvcmUpL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKLQkk
KEFNX1ZfR0VOKSQoR1BFUkYpIC1DRW90IC1JIC1MIEFOU0ktQyAtayAiKiIgLU4gZmluZERvY3R5
cGVFbnRyeSAtRiAsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzLFB1YklESW5mbzo6ZUFsbW9z
dFN0YW5kYXJkcyAkKFdlYkNvcmUpL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYgPiAkQAorRGVy
aXZlZFNvdXJjZXMvRG9jVHlwZVN0cmluZ3NJbXBsLmNwcCA6ICQoV2ViQ29yZSkvaHRtbC9Eb2NU
eXBlU3RyaW5ncy5ncGVyZiAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbAorCSQoUEVSTCkg
JChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwgZG9jdHlwZSAkKEdFTlNPVVJDRVMpICQoV2Vi
Q29yZSkvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgogCiAjIEhUTUwgZW50aXR5IG5hbWVzCi1E
ZXJpdmVkU291cmNlcy9IVE1MRW50aXR5TmFtZXMuYyA6ICQoV2ViQ29yZSkvaHRtbC9IVE1MRW50
aXR5TmFtZXMuZ3BlcmYKLQkkKEFNX1ZfR0VOKSQoR1BFUkYpIC1hIC1JIC1MIEFOU0ktQyAtQyAt
RyAtYyAtbyAtdCAtayAnKicgLU4gZmluZEVudGl0eSAtRCAtcyAyIFwKLQkkKFdlYkNvcmUpL2h0
bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmID4gJEAKK0Rlcml2ZWRTb3VyY2VzL0hUTUxFbnRpdHlO
YW1lc0ltcGwuY3BwIDogJChXZWJDb3JlKS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZiAkKFdl
YkNvcmUpL21ha2UtaGFzaC10b29scy5wbAorCSQoUEVSTCkgJChXZWJDb3JlKS9tYWtlLWhhc2gt
dG9vbHMucGwgZW50aXRpZXMgJChHRU5TT1VSQ0VTKSAkKFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0
eU5hbWVzLmdwZXJmCiAKICMgY29sb3IgbmFtZXMKLURlcml2ZWRTb3VyY2VzL0NvbG9yRGF0YS5j
OiAkKFdlYkNvcmUpL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgotCSQoQU1fVl9HRU4pJChHUEVS
RikgLUNERW90IC1MIEFOU0ktQyAtayAnKicgLU4gZmluZENvbG9yIC1EIC1zIDIgJDwgPiAkQAor
RGVyaXZlZFNvdXJjZXMvQ29sb3JEYXRhSW1wbC5jcHA6ICQoV2ViQ29yZSkvcGxhdGZvcm0vQ29s
b3JEYXRhLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBsCisJJChQRVJMKSAkKFdl
YkNvcmUpL21ha2UtaGFzaC10b29scy5wbCBjb2xvcmRhdGEgJChHRU5TT1VSQ0VTKSAkKFdlYkNv
cmUpL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgogCiAjIENTUyB0b2tlbml6ZXIKIERlcml2ZWRT
b3VyY2VzL3Rva2VuaXplci5jcHAgOiAkKFdlYkNvcmUpL2Nzcy90b2tlbml6ZXIuZmxleCAkKFdl
YkNvcmUpL2Nzcy9tYWtldG9rZW5pemVyCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJp
IGIvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCA3ZGQzMTE1Li5jOGRlZTEyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTE3NCw3
ICsxNzQsNyBAQCBYTElOS19OQU1FUyA9ICQkUFdEL3N2Zy94bGlua2F0dHJzLmluCiAKIFRPS0VO
SVpFUiA9ICQkUFdEL2Nzcy90b2tlbml6ZXIuZmxleAogCi1ET0NUWVBFU1RSSU5HUyA9ICQkUFdE
L2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKK0RPQ1RZUEVTVFJJTkdTX0dQRVJGID0gJCRQV0Qv
aHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgogCiBDU1NCSVNPTiA9ICQkUFdEL2Nzcy9DU1NHcmFt
bWFyLnkKIApAQCAtMTg2LDcgKzE4Niw3IEBAIFhNTE5TX05BTUVTID0gJCRQV0QveG1sL3htbG5z
YXR0cnMuaW4KIAogRU5USVRJRVNfR1BFUkYgPSAkJFBXRC9odG1sL0hUTUxFbnRpdHlOYW1lcy5n
cGVyZgogCi1DT0xPUkRBVF9HUEVSRiA9ICQkUFdEL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgor
Q09MT1JEQVRBX0dQRVJGID0gJCRQV0QvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCiAKIFdBTERP
Q1NTUFJPUFMgPSAkJFBXRC9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgogCkBAIC02MTksMTcgKzYx
OSwxNyBAQCB4bGlua25hbWVzLmlucHV0ID0gWExJTktfTkFNRVMKIGFkZEV4dHJhQ29tcGlsZXIo
eGxpbmtuYW1lcykKIAogIyBHRU5FUkFUT1IgNi1BOgotY3NzcHJvcHMub3V0cHV0ID0gJCR7V0Nf
R0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uY3BwCi1jc3Nwcm9wcy5p
bnB1dCA9IFdBTERPQ1NTUFJPUFMKIGNzc3Byb3BzLndrU2NyaXB0ID0gJCRQV0QvY3NzL21ha2Vw
cm9wLnBsCitjc3Nwcm9wcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0NT
U1Byb3BlcnR5TmFtZXNJbXBsLmNwcAorY3NzcHJvcHMuaW5wdXQgPSBXQUxET0NTU1BST1BTCiBj
c3Nwcm9wcy5jb21tYW5kcyA9IHBlcmwgLW5lIFwicHJpbnQgbGNcIiAke1FNQUtFX0ZJTEVfTkFN
RX0gJCR7REFTSEJPQVJEU1VQUE9SVENTU1BST1BFUlRJRVN9ICQke0VYVFJBQ1NTUFJPUEVSVElF
U30gPiAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5pbiAm
JiBjZCAkJFdDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUiAmJiBwZXJsICQkY3NzcHJvcHMud2tTY3Jp
cHQgJiYgJChERUxfRklMRSkgJHtRTUFLRV9GSUxFX0JBU0V9LmluICR7UU1BS0VfRklMRV9CQVNF
fS5ncGVyZgogY3NzcHJvcHMuZGVwZW5kcyA9ICR7UU1BS0VfRklMRV9OQU1FfSAkJHtEQVNIQk9B
UkRTVVBQT1JUQ1NTUFJPUEVSVElFU30gJCR7RVhUUkFDU1NQUk9QRVJUSUVTfQogYWRkRXh0cmFD
b21waWxlcihjc3Nwcm9wcykKIAogIyBHRU5FUkFUT1IgNi1COgotY3NzdmFsdWVzLm91dHB1dCA9
ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9LmMKLWNzc3Zh
bHVlcy5pbnB1dCA9IFdBTERPQ1NTVkFMVUVTCiBjc3N2YWx1ZXMud2tTY3JpcHQgPSAkJFBXRC9j
c3MvbWFrZXZhbHVlcy5wbAorY3NzdmFsdWVzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUn0vQ1NTVmFsdWVLZXl3b3Jkc0ltcGwuY3BwCitjc3N2YWx1ZXMuaW5wdXQgPSBXQUxE
T0NTU1ZBTFVFUwogY3NzdmFsdWVzLmNvbW1hbmRzID0gcGVybCAtbmUgXCJwcmludCBsY1wiICR7
UU1BS0VfRklMRV9OQU1FfSAkJEVYVFJBQ1NTVkFMVUVTID4gJCR7V0NfR0VORVJBVEVEX1NPVVJD
RVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJiYgY2QgJCRXQ19HRU5FUkFURURfU09VUkNF
U19ESVIgJiYgcGVybCAkJGNzc3ZhbHVlcy53a1NjcmlwdCAmJiAkKERFTF9GSUxFKSAke1FNQUtF
X0ZJTEVfQkFTRX0uaW4gJHtRTUFLRV9GSUxFX0JBU0V9LmdwZXJmCiBjc3N2YWx1ZXMuZGVwZW5k
cyA9ICR7UU1BS0VfRklMRV9OQU1FfSAkJHtFWFRSQUNTU1ZBTFVFU30KIGNzc3ZhbHVlcy5jbGVh
biA9ICR7UU1BS0VfRklMRV9PVVR9ICR7UU1BS0VfVkFSX1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJ
Un0vJHtRTUFLRV9GSUxFX0JBU0V9LmgKQEAgLTY4NSwyNCArNjg1LDI4IEBAIHhtbG5hbWVzLndr
U2NyaXB0ID0gJCRQV0QvZG9tL21ha2VfbmFtZXMucGwKIHhtbG5hbWVzLmNvbW1hbmRzID0gcGVy
bCAtSSQkUFdEL2JpbmRpbmdzL3NjcmlwdHMgJCR4bWxuYW1lcy53a1NjcmlwdCAtLWF0dHJzICQk
UFdEL3htbC94bWxhdHRycy5pbiAtLXByZXByb2Nlc3NvciBcIiQke1FNQUtFX01PQ30gLUVcIiAt
LW91dHB1dERpciAkJFdDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUgogYWRkRXh0cmFDb21waWxlcih4
bWxuYW1lcykKIAotIyBHRU5FUkFUT1IgOC1BOgotZW50aXRpZXMub3V0cHV0ID0gJCR7V0NfR0VO
RVJBVEVEX1NPVVJDRVNfRElSfS9IVE1MRW50aXR5TmFtZXMuYworIyBHRU5FUkFUT1IgOC1lbnRp
dGllczoKK2VudGl0aWVzLndrU2NyaXB0ID0gJCRQV0QvbWFrZS1oYXNoLXRvb2xzLnBsCitlbnRp
dGllcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0hUTUxFbnRpdHlOYW1l
c0ltcGwuY3BwCiBlbnRpdGllcy5pbnB1dCA9IEVOVElUSUVTX0dQRVJGCi1lbnRpdGllcy5jb21t
YW5kcyA9IGdwZXJmIC1hIC1MIEFOU0ktQyAtQyAtRyAtYyAtbyAtdCAtLWluY2x1ZGVzIC0ta2V5
LXBvc2l0aW9ucz0iKiIgLU4gZmluZEVudGl0eSAtRCAtcyAyIDwgJCRQV0QvaHRtbC9IVE1MRW50
aXR5TmFtZXMuZ3BlcmYgPiAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0hUTUxFbnRpdHlO
YW1lcy5jCitlbnRpdGllcy5jb21tYW5kcyA9IHBlcmwgJCRlbnRpdGllcy53a1NjcmlwdCBlbnRp
dGllcyAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9ICQkRU5USVRJRVNfR1BFUkYKIGVudGl0
aWVzLmNsZWFuID0gJHtRTUFLRV9GSUxFX09VVH0KIGFkZEV4dHJhQ29tcGlsZXIoZW50aXRpZXMp
CiAKLSMgR0VORVJBVE9SIDgtQjoKLWRvY3R5cGVzdHJpbmdzLm91dHB1dCA9ICQke1dDX0dFTkVS
QVRFRF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9LmNwcAotZG9jdHlwZXN0cmluZ3Mu
aW5wdXQgPSBET0NUWVBFU1RSSU5HUwotZG9jdHlwZXN0cmluZ3MuY29tbWFuZHMgPSBncGVyZiAt
Q0VvdCAtTCBBTlNJLUMgLS1pbmNsdWRlcyAtLWtleS1wb3NpdGlvbnM9IioiIC1OIGZpbmREb2N0
eXBlRW50cnkgLUYgLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyxQdWJJREluZm86OmVBbG1v
c3RTdGFuZGFyZHMgPCAke1FNQUtFX0ZJTEVfTkFNRX0gPj4gJHtRTUFLRV9GSUxFX09VVH0KLWRv
Y3R5cGVzdHJpbmdzLmNsZWFuID0gJHtRTUFLRV9GSUxFX09VVH0KLWFkZEV4dHJhQ29tcGlsZXIo
ZG9jdHlwZXN0cmluZ3MpCi0KLSMgR0VORVJBVE9SIDgtQzoKLWNvbG9yZGF0YS5vdXRwdXQgPSAk
JHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0NvbG9yRGF0YS5jCi1jb2xvcmRhdGEuaW5wdXQg
PSBDT0xPUkRBVF9HUEVSRgotY29sb3JkYXRhLmNvbW1hbmRzID0gZ3BlcmYgLUNERW90IC1MIEFO
U0ktQyAtLWluY2x1ZGVzIC0ta2V5LXBvc2l0aW9ucz0iKiIgLU4gZmluZENvbG9yIC1EIC1zIDIg
PCAke1FNQUtFX0ZJTEVfTkFNRX0gPj4gJHtRTUFLRV9GSUxFX09VVH0KKyMgR0VORVJBVE9SIDgt
ZG9jdHlwZToKK2RvY3R5cGUud2tTY3JpcHQgPSAkJFBXRC9tYWtlLWhhc2gtdG9vbHMucGwKK2Rv
Y3R5cGUub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9Eb2NUeXBlU3RyaW5n
c0ltcGwuY3BwCitkb2N0eXBlLmlucHV0ID0gRE9DVFlQRVNUUklOR1NfR1BFUkYKK2RvY3R5cGUu
Y29tbWFuZHMgPSBwZXJsICQkZG9jdHlwZS53a1NjcmlwdCBkb2N0eXBlICQke1dDX0dFTkVSQVRF
RF9TT1VSQ0VTX0RJUn0gJCRET0NUWVBFU1RSSU5HU19HUEVSRgorZG9jdHlwZS5jbGVhbiA9ICR7
UU1BS0VfRklMRV9PVVR9CithZGRFeHRyYUNvbXBpbGVyKGRvY3R5cGUpCisKKyMgR0VORVJBVE9S
IDgtY29sb3JkYXRhOgorY29sb3JkYXRhLndrU2NyaXB0ID0gJCRQV0QvbWFrZS1oYXNoLXRvb2xz
LnBsCitjb2xvcmRhdGEub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9Db2xv
ckRhdGFJbXBsLmNwcAorY29sb3JkYXRhLmlucHV0ID0gQ09MT1JEQVRBX0dQRVJGCitjb2xvcmRh
dGEuY29tbWFuZHMgPSBwZXJsICQkY29sb3JkYXRhLndrU2NyaXB0IGNvbG9yZGF0YSAkJHtXQ19H
RU5FUkFURURfU09VUkNFU19ESVJ9ICQkQ09MT1JEQVRBX0dQRVJGCitjb2xvcmRhdGEuY2xlYW4g
PSAke1FNQUtFX0ZJTEVfT1VUfQogYWRkRXh0cmFDb21waWxlcihjb2xvcmRhdGEpCiAKICMgR0VO
RVJBVE9SIDk6CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwIGIvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApp
bmRleCBmMWM4ZGJmLi5hY2QwNzE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3Qu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNp
bmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJSZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVy
Qm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3Nz
L0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1dlYkNvcmUvY3NzL0NTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCAzMWM3NTA3Li41OWM2NjE1IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9j
c3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiU3R5bGVk
RWxlbWVudC5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggMDRhODg1
NS4uZTczYWY2YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC02MCw2ICs2MCw3IEBACiAjaW5jbHVkZSAiRmxv
YXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiRm9udEZhbWlseVZhbHVlLmgiCiAjaW5jbHVkZSAi
Rm9udFZhbHVlLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiTWVkaWFMaXN0
LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV4cC5oIgogI2luY2x1ZGUgIlBhaXIuaCIKQEAgLTg2
LDkgKzg3LDYgQEAgZXh0ZXJuIGludCBjc3N5eXBhcnNlKHZvaWQqIHBhcnNlcik7CiB1c2luZyBu
YW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIAotI2luY2x1ZGUgIkNTU1Byb3Bl
cnR5TmFtZXMuY3BwIgotI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuYyIKLQogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBDU1NQYXJzZXJTdHJpbmcmIGEs
IGNvbnN0IGNoYXIqIGIpCkBAIC01MzU1LDcgKzUzNTMsNyBAQCBzdGF0aWMgaW50IGNzc1Byb3Bl
cnR5SUQoY29uc3QgVUNoYXIqIHByb3BlcnR5TmFtZSwgdW5zaWduZWQgbGVuZ3RoKQogICAgICAg
ICB9CiAgICAgfQogCi0gICAgY29uc3QgcHJvcHMqIGhhc2hUYWJsZUVudHJ5ID0gZmluZFByb3Ao
bmFtZSwgbGVuZ3RoKTsKKyAgICBjb25zdCBQcm9wZXJ0eSogaGFzaFRhYmxlRW50cnkgPSBmaW5k
UHJvcGVydHkobmFtZSwgbGVuZ3RoKTsKICAgICByZXR1cm4gaGFzaFRhYmxlRW50cnkgPyBoYXNo
VGFibGVFbnRyeS0+aWQgOiAwOwogfQogCkBAIC01Mzk3LDcgKzUzOTUsNyBAQCBpbnQgY3NzVmFs
dWVLZXl3b3JkSUQoY29uc3QgQ1NTUGFyc2VyU3RyaW5nJiBzdHJpbmcpCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICBjb25zdCBjc3NfdmFsdWUqIGhhc2hUYWJsZUVudHJ5ID0gZmluZFZhbHVlKGJ1
ZmZlciwgbGVuZ3RoKTsKKyAgICBjb25zdCBWYWx1ZSogaGFzaFRhYmxlRW50cnkgPSBmaW5kVmFs
dWUoYnVmZmVyLCBsZW5ndGgpOwogICAgIHJldHVybiBoYXNoVGFibGVFbnRyeSA/IGhhc2hUYWJs
ZUVudHJ5LT5pZCA6IDA7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAppbmRleCAyMTBk
NmY1Li4zMzdmMGM1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5j
cHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJDb3VudGVyLmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIk5vZGUu
aCIKICNpbmNsdWRlICJQYWlyLmgiCiAjaW5jbHVkZSAiUkdCQ29sb3IuaCIKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcCBiL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNw
cAppbmRleCBkN2YyMTc1Li45YzhhNTFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0eS5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCkBAIC0yMiw2ICsyMiw3
IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHkuaCIKIAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFt
ZXMuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZURlY2xhcmF0aW9uLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uY3BwCmlu
ZGV4IDQwNGE5NzguLmU0NWQyZmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVj
bGFyYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uY3BwCkBA
IC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHkuaCIKICNpbmNsdWRlICJDU1NQ
cm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTUnVsZS5oIgorI2luY2x1ZGUgIkhhc2hUb29s
cy5oIgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbCBiL1dlYkNvcmUvY3NzL21ha2Vw
cm9wLnBsCmluZGV4IDExNTk2OWYuLjk2OGI5NjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL21h
a2Vwcm9wLnBsCisrKyBiL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCkBAIC01LDYgKzUsNyBAQAog
IyAgIENvcHlyaWdodCAoQykgMTk5OSBXYWxkbyBCYXN0aWFuIChiYXN0aWFuQGtkZS5vcmcpCiAj
ICAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICMgICBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisjICAgQ29weXJpZ2h0IChDKSAyMDEwIEFuZHJhcyBCZWNzaSAoYWJl
Y3NpQGluZi51LXN6ZWdlZC5odSksIFVuaXZlcnNpdHkgb2YgU3plZ2VkCiAjCiAjICAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
IyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0zNywxMiArMzgsMTkgQEAgb3BlbiBHUEVSRiwgIj5DU1NQcm9wZXJ0eU5hbWVz
LmdwZXJmIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1Byb3BlcnR5TmFtZXMuZ3AKIHByaW50
IEdQRVJGIDw8ICJFT0YiOwogJXsKIC8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVy
YXRlZCBmcm9tIENTU1Byb3BlcnR5TmFtZXMuaW4gYnkgbWFrZXByb3AsIGRvIG5vdCBlZGl0ICov
Ci0jaW5jbHVkZSBcIkNTU1Byb3BlcnR5TmFtZXMuaFwiCiAlfQotc3RydWN0IHByb3BzIHsKLSAg
ICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGludCBpZDsKLX07Cislc3RydWN0LXR5cGUKK3N0cnVj
dCBQcm9wZXJ0eTsKKyVvbWl0LXN0cnVjdC10eXBlCislbGFuZ3VhZ2U9QysrCislcmVhZG9ubHkt
dGFibGVzCislZ2xvYmFsLXRhYmxlCislY29tcGFyZS1zdHJuY21wCislZGVmaW5lIGNsYXNzLW5h
bWUgQ1NTUHJvcGVydHlOYW1lc0hhc2gKKyVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmlu
ZFByb3BlcnR5SW1wbAorJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgcHJvcGVyeV9oYXNoX2Z1
bmN0aW9uCislaW5jbHVkZXMKKyVlbnVtCiAlJQogRU9GCiAKQEAgLTU3LDYgKzY1LDcgQEAgY2xv
c2UgR1BFUkY7CiBvcGVuIEhFQURFUiwgIj5DU1NQcm9wZXJ0eU5hbWVzLmgiIHx8IGRpZSAiQ291
bGQgbm90IG9wZW4gQ1NTUHJvcGVydHlOYW1lcy5oIGZvciB3cml0aW5nIjsKIHByaW50IEhFQURF
UiA8PCAiRU9GIjsKIC8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9t
IENTU1Byb3BlcnR5TmFtZXMuaW4gYnkgbWFrZXByb3AsIGRvIG5vdCBlZGl0ICovCisjaW5jbHVk
ZSAid3RmL3RleHQvQ1N0cmluZy5oIgogCiAjaWZuZGVmIENTU1Byb3BlcnR5TmFtZXNfaAogI2Rl
ZmluZSBDU1NQcm9wZXJ0eU5hbWVzX2gKQEAgLTg2LDE2ICs5NSwxNCBAQCBwcmludCBIRUFERVIg
ImNvbnN0IHNpemVfdCBtYXhDU1NQcm9wZXJ0eU5hbWVMZW5ndGggPSAkbWF4TGVuO1xuIjsKIAog
cHJpbnQgSEVBREVSIDw8ICJFT0YiOwogCi1jb25zdCBjaGFyKiBnZXRQcm9wZXJ0eU5hbWUoQ1NT
UHJvcGVydHlJRCk7Ci0KLSNlbmRpZgorI2VuZGlmIC8vIENTU1Byb3BlcnR5TmFtZXNfaAogRU9G
CiAKIGNsb3NlIEhFQURFUjsKIAotc3lzdGVtKCJncGVyZiAtYSAtTCBBTlNJLUMgLUUgLUMgLWMg
LW8gLXQgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1OZmluZFByb3AgLUhoYXNoX3Byb3AgLVd3b3Jk
bGlzdF9wcm9wIC1EIC1zIDIgQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiA+IENTU1Byb3BlcnR5TmFt
ZXMuY3BwIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CitzeXN0ZW0o
ImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtcyAyIENTU1Byb3BlcnR5TmFtZXMuZ3Bl
cmYgPiBDU1NQcm9wZXJ0eU5hbWVzSGFzaC5ocHAiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVy
ZiBmYWlsZWQ6ICQ/IjsKIAotb3BlbiBDLCAiPj5DU1NQcm9wZXJ0eU5hbWVzLmNwcCIgfHwgZGll
ICJDb3VsZCBub3Qgb3BlbiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCBmb3Igd3JpdGluZyI7CitvcGVu
IEMsICI+PkNTU1Byb3BlcnR5TmFtZXNIYXNoLmhwcCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBD
U1NQcm9wZXJ0eU5hbWVzSGFzaC5ocHAgZm9yIHdyaXRpbmciOwogcHJpbnQgQyAic3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBwcm9wZXJ0eU5hbWVTdHJpbmdzWyRudW1dID0ge1xuIjsKIAogZm9y
ZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CkBAIC0xMDQsNiArMTExLDI3IEBAIGZvcmVhY2ggbXkg
JG5hbWUgKEBuYW1lcykgewogCiBwcmludCBDIDw8ICJFT0YiOwogfTsKKworRU9GCisKK2Nsb3Nl
IEM7CisKK215ICRwcm9wZXJ0eU5hbWVzSW1wbCA9ICJDU1NQcm9wZXJ0eU5hbWVzSW1wbC5jcHAi
OworCitvcGVuIFBST1BFUlRZTkFNRVMsICI+JHByb3BlcnR5TmFtZXNJbXBsIiB8fCBkaWUgIkNv
dWxkIG5vdCBvcGVuICRwcm9wZXJ0eU5hbWVzSW1wbCBmb3Igd3JpdGluZyI7CitwcmludCBQUk9Q
RVJUWU5BTUVTIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJh
dGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKworI2luY2x1ZGUgIkhh
c2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiQ1NTUHJvcGVydHlO
YW1lc0hhc2guaHBwIgorCitjb25zdCBQcm9wZXJ0eSogZmluZFByb3BlcnR5IChyZWdpc3RlciBj
b25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7CisgICAgcmV0dXJu
IENTU1Byb3BlcnR5TmFtZXNIYXNoOjpmaW5kUHJvcGVydHlJbXBsKHN0ciwgbGVuKTsKK30KKwog
Y29uc3QgY2hhciogZ2V0UHJvcGVydHlOYW1lKENTU1Byb3BlcnR5SUQgaWQpCiB7CiAgICAgaWYg
KGlkIDwgZmlyc3RDU1NQcm9wZXJ0eSkKQEAgLTExMyw3ICsxNDEsOSBAQCBjb25zdCBjaGFyKiBn
ZXRQcm9wZXJ0eU5hbWUoQ1NTUHJvcGVydHlJRCBpZCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
cmV0dXJuIHByb3BlcnR5TmFtZVN0cmluZ3NbaW5kZXhdOwogfQotRU9GCiAKLWNsb3NlIEM7Cit9
CisKK0VPRgorY2xvc2UgUFJPUEVSVFlOQU1FUzsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3Mv
bWFrZXZhbHVlcy5wbCBiL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwKaW5kZXggZTQ5OTgxZC4u
OGNkNGZiNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAorKysgYi9XZWJD
b3JlL2Nzcy9tYWtldmFsdWVzLnBsCkBAIC01LDYgKzUsNyBAQAogIyAgIENvcHlyaWdodCAoQykg
MTk5OSBXYWxkbyBCYXN0aWFuIChiYXN0aWFuQGtkZS5vcmcpCiAjICAgQ29weXJpZ2h0IChDKSAy
MDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgICBDb3B5cmlnaHQgKEMpIDIw
MDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisjICAgQ29w
eXJpZ2h0IChDKSAyMDEwIEFuZHJhcyBCZWNzaSAoYWJlY3NpQGluZi51LXN6ZWdlZC5odSksIFVu
aXZlcnNpdHkgb2YgU3plZ2VkCiAjCiAjICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogIyAgIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zNywxMyArMzgsMTkg
QEAgb3BlbiBHUEVSRiwgIj5DU1NWYWx1ZUtleXdvcmRzLmdwZXJmIiB8fCBkaWUgIkNvdWxkIG5v
dCBvcGVuIENTU1ZhbHVlS2V5d29yZHMuZ3AKIHByaW50IEdQRVJGIDw8ICJFT0YiOwogJXsKIC8q
IFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIENTU1ZhbHVlS2V5d29y
ZHMuaW4gYnkgbWFrZXZhbHVlcywgZG8gbm90IGVkaXQgKi8KLQotI2luY2x1ZGUgXCJDU1NWYWx1
ZUtleXdvcmRzLmhcIgogJX0KLXN0cnVjdCBjc3NfdmFsdWUgewotICAgIGNvbnN0IGNoYXIqIG5h
bWU7Ci0gICAgaW50IGlkOwotfTsKKyVzdHJ1Y3QtdHlwZQorc3RydWN0IFZhbHVlOworJW9taXQt
c3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysKKyVyZWFkb25seS10YWJsZXMKKyVnbG9iYWwtdGFi
bGUKKyVjb21wYXJlLXN0cm5jbXAKKyVkZWZpbmUgY2xhc3MtbmFtZSBDU1NWYWx1ZUtleXdvcmRz
SGFzaAorJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kVmFsdWVJbXBsCislZGVmaW5l
IGhhc2gtZnVuY3Rpb24tbmFtZSB2YWx1ZV9oYXNoX2Z1bmN0aW9uCislaW5jbHVkZXMKKyVlbnVt
CiAlJQogRU9GCiAKQEAgLTU4LDkgKzY1LDEwIEBAIGNsb3NlIEdQRVJGOwogb3BlbiBIRUFERVIs
ICI+Q1NTVmFsdWVLZXl3b3Jkcy5oIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1ZhbHVlS2V5
d29yZHMuaCBmb3Igd3JpdGluZyI7CiBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAvKiBUaGlzIGZp
bGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBDU1NWYWx1ZUtleXdvcmRzLmluIGJ5
IG1ha2V2YWx1ZXMsIGRvIG5vdCBlZGl0ICovCisjaW5jbHVkZSAid3RmL3RleHQvQ1N0cmluZy5o
IgogCi0jaWZuZGVmIENTU1ZhbHVlc19oCi0jZGVmaW5lIENTU1ZhbHVlc19oCisjaWZuZGVmIENT
U1ZhbHVlS2V5d29yZHNfaAorI2RlZmluZSBDU1NWYWx1ZUtleXdvcmRzX2gKIAogY29uc3QgaW50
IENTU1ZhbHVlSW52YWxpZCA9IDA7CiBFT0YKQEAgLTgwLDE1ICs4OCwxNCBAQCBwcmludCBIRUFE
RVIgImNvbnN0IGludCBudW1DU1NWYWx1ZUtleXdvcmRzID0gIiAuICRpIC4gIjtcbiI7CiBwcmlu
dCBIRUFERVIgImNvbnN0IHNpemVfdCBtYXhDU1NWYWx1ZUtleXdvcmRMZW5ndGggPSAiIC4gJG1h
eExlbiAuICI7XG4iOwogcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogCi1jb25zdCBjaGFyKiBnZXRW
YWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpOwogCi0jZW5kaWYKKyNlbmRpZiAvLyBDU1NWYWx1
ZUtleXdvcmRzX2gKIEVPRgogY2xvc2UgSEVBREVSOwogCi1zeXN0ZW0oImdwZXJmIC1MIEFOU0kt
QyAtRSAtQyAtbiAtbyAtdCAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLU5maW5kVmFsdWUgLUhoYXNo
X3ZhbCAtV3dvcmRsaXN0X3ZhbHVlIC1EIENTU1ZhbHVlS2V5d29yZHMuZ3BlcmYgPiBDU1NWYWx1
ZUtleXdvcmRzLmMiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKK3N5
c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1zIDIgQ1NTVmFsdWVLZXl3b3Jk
cy5ncGVyZiA+IENTU1ZhbHVlS2V5d29yZHNIYXNoLmhwcCIpID09IDAgfHwgZGllICJjYWxsaW5n
IGdwZXJmIGZhaWxlZDogJD8iOwogCi1vcGVuIEMsICI+PkNTU1ZhbHVlS2V5d29yZHMuYyIgfHwg
ZGllICJDb3VsZCBub3Qgb3BlbiBDU1NWYWx1ZUtleXdvcmRzLmMgZm9yIHdyaXRpbmciOworb3Bl
biBDLCAiPj5DU1NWYWx1ZUtleXdvcmRzSGFzaC5ocHAiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4g
Q1NTVmFsdWVLZXl3b3Jkc0hhc2guaHBwIGZvciB3cml0aW5nIjsKIHByaW50IEMgICJzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IHZhbHVlTGlzdFtdID0ge1xuIjsKIHByaW50IEMgICJcIlwiLFxu
IjsKIGZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgewpAQCAtOTcsMTIgKzEwNCwzNCBAQCBmb3Jl
YWNoIG15ICRuYW1lIChAbmFtZXMpIHsKIHByaW50IEMgPDwgIkVPRiI7CiAgICAgMAogfTsKKwor
RU9GCisKK2Nsb3NlIEM7CisKK215ICR2YWx1ZUtleXdvcmRzSW1wbCA9ICJDU1NWYWx1ZUtleXdv
cmRzSW1wbC5jcHAiOworCitvcGVuIFZBTFVFS0VZV09SRFMsICI+JHZhbHVlS2V5d29yZHNJbXBs
IiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICR2YWx1ZUtleXdvcmRzSW1wbCBmb3Igd3JpdGluZyI7
CitwcmludCBWQUxVRUtFWVdPUkRTIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRp
Y2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKwor
I2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAi
Q1NTVmFsdWVLZXl3b3Jkc0hhc2guaHBwIgorCitjb25zdCBWYWx1ZSogZmluZFZhbHVlIChyZWdp
c3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7CisgICAg
cmV0dXJuIENTU1ZhbHVlS2V5d29yZHNIYXNoOjpmaW5kVmFsdWVJbXBsKHN0ciwgbGVuKTsKK30K
KwogY29uc3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKQogewogICAgIGlm
IChpZCA+PSBudW1DU1NWYWx1ZUtleXdvcmRzIHx8IGlkIDw9IDApCiAgICAgICAgIHJldHVybiAw
OwogICAgIHJldHVybiB2YWx1ZUxpc3RbaWRdOwogfQotRU9GCiAKLWNsb3NlIEM7Cit9CisKK0VP
RgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmIGIvV2ViQ29y
ZS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCmluZGV4IDM5ODYyNmUuLjFjNzQxMWQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgorKysgYi9XZWJDb3JlL2h0
bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKQEAgLTEsMTQgKzEsMTYgQEAKLXN0cnVjdCBQdWJJRElu
Zm8gewotICAgIGVudW0gZU1vZGUgeyAKLSAgICAgICAgZVF1aXJrcywgICAgICAgICAKLSAgICAg
ICAgZVF1aXJrczMsICAgICAgIAotICAgICAgICBlQWxtb3N0U3RhbmRhcmRzCi0gICAgfTsKLQot
ICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgZU1vZGUgbW9kZV9pZl9ub19zeXNpZDsKLSAgICBl
TW9kZSBtb2RlX2lmX3N5c2lkOwotfQorJXN0cnVjdC10eXBlCitzdHJ1Y3QgUHViSURJbmZvOwor
JW9taXQtc3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysKKyVyZWFkb25seS10YWJsZXMKKyVnbG9i
YWwtdGFibGUKKyVjb21wYXJlLXN0cm5jbXAKKyVkZWZpbmUgaW5pdGlhbGl6ZXItc3VmZml4ICxQ
dWJJREluZm86OmVBbG1vc3RTdGFuZGFyZHMsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzCisl
ZGVmaW5lIGNsYXNzLW5hbWUgRG9jVHlwZVN0cmluZ3NIYXNoCislZGVmaW5lIGxvb2t1cC1mdW5j
dGlvbi1uYW1lIGZpbmREb2N0eXBlRW50cnlJbXBsCislZGVmaW5lIGhhc2gtZnVuY3Rpb24tbmFt
ZSBkb2N0eXBlX2hhc2hfZnVuY3Rpb24KKyVpbmNsdWRlcworJWVudW0KICUlCiAiKy8vc2lsbWFy
aWwvL2R0ZCBodG1sIHBybyB2MHIxMSAxOTk3MDEwMS8vZW4iLCBQdWJJREluZm86OmVRdWlya3Mz
LCBQdWJJREluZm86OmVRdWlya3MzCiAiLS8vYWR2YXNvZnQgbHRkLy9kdGQgaHRtbCAzLjAgYXN3
ZWRpdCArIGV4dGVuc2lvbnMvL2VuIiwgUHViSURJbmZvOjplUXVpcmtzMywgUHViSURJbmZvOjpl
UXVpcmtzMwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAgYi9XZWJD
b3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAppbmRleCAzMDQ4ZWU5Li5hNmM3ZTZlIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TERvY3VtZW50LmNwcApAQCAtNjQsNiArNjQsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgi
CiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVk
ZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEVsZW1lbnRGYWN0b3J5LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCkBAIC03Myw4ICs3
NCw2IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAotI2luY2x1ZGUgIkRvY1R5cGVTdHJpbmdzLmNwcCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hU
TUxFbnRpdHlOYW1lcy5ncGVyZiBiL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYK
aW5kZXggYjE2YjNkOC4uZDYzZDEzMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxFbnRp
dHlOYW1lcy5ncGVyZgorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCkBA
IC0yLDYgKzIsNyBAQAogLyoKICAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtu
b2xsQG1waS1oZC5tcGcuZGUpCiAgICAgIENvcHlyaWdodCAoQykgMjAwMiwgMjAwMywgMjAwNCwg
MjAwNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgICAgIENvcHlyaWdodCAoQykg
MjAxMCBBbmRyYXMgQmVjc2kgKGFiZWNzaUBpbmYudS1zemVnZWQuaHUpLCBVbml2ZXJzaXR5IG9m
IFN6ZWdlZAogICAKICAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjEsMTUgKzIyLDIxIEBACiAgIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KICAgCiAgICAgSFRNTEVudGl0eU5hbWVzLmdwZXJmOiBpbnB1dCBm
aWxlIHRvIGdlbmVyYXRlIGEgaGFzaCB0YWJsZSBmb3IgZW50aXRpZXMKLSAgICBIVE1MRW50aXR5
TmFtZXMuYzogRE8gTk9UIEVESVQhIGdlbmVyYXRlZCBieSB0aGUgY29tbWFuZAotICAgICJncGVy
ZiAtYSAtTCAiQU5TSS1DIiAtQyAtRyAtYyAtbyAtdCAtayAnKicgLU5maW5kRW50aXR5IC1EIC1z
IDIgSFRNTEVudGl0eU5hbWVzLmdwZXJmID4gZW50aXRpZXMuYyIgICAKLSAgICBmcm9tIEhUTUxF
bnRpdHlOYW1lcy5ncGVyZiAKKyAgICBIVE1MRW50aXR5TmFtZXMuaHBwOiBETyBOT1QgRURJVCEg
Z2VuZXJhdGVkIGJ5IFdlYkNvcmUvbWFrZV9oYXNoX3Rvb2xzLnBsCiAqLwogJX0KLXN0cnVjdCBF
bnRpdHkgewotICAgIGNvbnN0IGNoYXIgKm5hbWU7Ci0gICAgaW50IGNvZGU7Ci19OworJXN0cnVj
dC10eXBlCitzdHJ1Y3QgRW50aXR5OworJW9taXQtc3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysK
KyVyZWFkb25seS10YWJsZXMKKyVnbG9iYWwtdGFibGUKKyVjb21wYXJlLXN0cm5jbXAKKyVkZWZp
bmUgY2xhc3MtbmFtZSBIVE1MRW50aXR5SGFzaAorJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFt
ZSBmaW5kRW50aXR5SW1wbAorJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgZW50aXR5X2hhc2hf
ZnVuY3Rpb24KKyVpbmNsdWRlcworJWVudW0KICUlCiBBRWxpZywgMHgwMGM2CiBBTVAsIDM4CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAgYi9XZWJDb3JlL2h0bWwv
SFRNTFRva2VuaXplci5jcHAKaW5kZXggYzgwN2E0Zi4uYTUzY2RmOSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5p
emVyLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIYXNoVG9v
bHMuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgog
I2luY2x1ZGUgIkhUTUxQYXJzZXIuaCIKQEAgLTU1LDggKzU2LDYgQEAKICNpbmNsdWRlIDx3dGYv
QVNDSUlDVHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCi0jaW5jbHVkZSAi
SFRNTEVudGl0eU5hbWVzLmMiCi0KICNkZWZpbmUgUFJFTE9BRF9TQ0FOTkVSX0VOQUJMRUQgMQog
Ly8gI2RlZmluZSBJTlNUUlVNRU5UX0xBWU9VVF9TQ0hFRFVMSU5HIDEKIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL1ByZWxvYWRTY2FubmVyLmNwcCBiL1dlYkNvcmUvaHRtbC9QcmVsb2FkU2Nh
bm5lci5jcHAKaW5kZXggY2Q4NGIyMC4uZWVmYTQ2ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L1ByZWxvYWRTY2FubmVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvUHJlbG9hZFNjYW5uZXIuY3Bw
CkBAIC0zOCwyNCArMzgsMTMgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIK
ICNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+
CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgogCi0vLyBVc2UgX19HTlVDX18gaW5z
dGVhZCBvZiBQTEFURk9STShHQ0MpIHRvIHN0YXkgY29uc2lzdGVudCB3aXRoIHRoZSBncGVyZiBn
ZW5lcmF0ZWQgYyBmaWxlCi0jaWZkZWYgX19HTlVDX18KLS8vIFRoZSBtYWluIHRva2VuaXplciBp
bmNsdWRlcyB0aGlzIHRvbyBzbyB3ZSBhcmUgZ2V0dGluZyB0d28gY29waWVzIG9mIHRoZSBkYXRh
LiBIb3dldmVyLCB0aGlzIHdheSB0aGUgY29kZSBnZXRzIGlubGluZWQuCi0jaW5jbHVkZSAiSFRN
TEVudGl0eU5hbWVzLmMiCi0jZWxzZQotLy8gTm90IGlubGluZWQgZm9yIG5vbi1HQ0MgY29tcGls
ZXJzCi1zdHJ1Y3QgRW50aXR5IHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGludCBjb2Rl
OwotfTsKLWNvbnN0IHN0cnVjdCBFbnRpdHkqIGZpbmRFbnRpdHkocmVnaXN0ZXIgY29uc3QgY2hh
ciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKLSNlbmRpZgogCiAjZGVmaW5lIFBS
RUxPQURfREVCVUcgMAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL21ha2UtaGFzaC10b29scy5wbCBi
L1dlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjFkN2RmYTkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL21ha2UtaGFzaC10b29s
cy5wbApAQCAtMCwwICsxLDE4OCBAQAorIyEgL3Vzci9iaW4vcGVybAorIworIyAgIFRoaXMgZmls
ZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgcHJvamVjdAorIworIyAgIENvcHlyaWdodCAoQykgMjAx
MCBBbmRyYXMgQmVjc2kgKGFiZWNzaUBpbmYudS1zemVnZWQuaHUpLCBVbml2ZXJzaXR5IG9mIFN6
ZWdlZAorIworIyAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyMgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworIyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyMgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorIyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyAg
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisjICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyMgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKwordXNlIHN0cmljdDsKK3VzZSBTd2l0Y2g7CisKK215ICRvcHRpb24gICAgICAgICAg
ICAgICAgICAgICA9ICRBUkdWWzBdOworc2hpZnQ7CitteSAkb3V0ZGlyICAgICAgICAgICAgICAg
ICAgICAgPSAkQVJHVlswXTsKK3NoaWZ0OworCitteSAkaGFzaFRvb2xzSGVhZGVyID0gIiRvdXRk
aXIvSGFzaFRvb2xzLmgiOworCitzdWIgY3JlYXRlSGFzaFRvb2xzSGVhZGVyKCkgeworCitvcGVu
IEhFQURFUiwgIj4kaGFzaFRvb2xzSGVhZGVyIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRoYXNo
VG9vbHNIZWFkZXIgZm9yIHdyaXRpbmciOworcHJpbnQgSEVBREVSIDw8ICJFT0YiOworLyogVGhp
cyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwg
ZG8gbm90IGVkaXQgKi8KKworI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKyNpbmNsdWRl
ICJDU1NQcm9wZXJ0eU5hbWVzLmgiCisKKyNpZm5kZWYgSGFzaFRvb2xzX2gKKyNkZWZpbmUgSGFz
aFRvb2xzX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRW50aXR5IHsKKyAgICBj
b25zdCBjaGFyKiBuYW1lOworICAgIGludCBjb2RlOworfTsKKworc3RydWN0IFB1YklESW5mbyB7
CisgICAgZW51bSBlTW9kZSB7CisgICAgICAgIGVRdWlya3MsCisgICAgICAgIGVRdWlya3MzLAor
ICAgICAgICBlQWxtb3N0U3RhbmRhcmRzCisgICAgfTsKKworICAgIGNvbnN0IGNoYXIqIG5hbWU7
CisgICAgZU1vZGUgbW9kZV9pZl9ub19zeXNpZDsKKyAgICBlTW9kZSBtb2RlX2lmX3N5c2lkOwor
fTsKKworc3RydWN0IE5hbWVkQ29sb3IgeworICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgaW50
IFJHQlZhbHVlOworfTsKKworc3RydWN0IFByb3BlcnR5IHsKKyAgICBjb25zdCBjaGFyKiBuYW1l
OworICAgIGludCBpZDsKK307CisKK3N0cnVjdCBWYWx1ZSB7CisgICAgY29uc3QgY2hhciogbmFt
ZTsKKyAgICBpbnQgaWQ7Cit9OworCitjb25zdCBFbnRpdHkqIGZpbmRFbnRpdHkocmVnaXN0ZXIg
Y29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKK2NvbnN0IFB1YklE
SW5mbyogZmluZERvY3R5cGVFbnRyeShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVy
IHVuc2lnbmVkIGludCBsZW4pOworY29uc3QgTmFtZWRDb2xvciogZmluZENvbG9yKHJlZ2lzdGVy
IGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbik7Citjb25zdCBQcm9w
ZXJ0eSogZmluZFByb3BlcnR5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5z
aWduZWQgaW50IGxlbik7Citjb25zdCBWYWx1ZSogZmluZFZhbHVlKHJlZ2lzdGVyIGNvbnN0IGNo
YXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbik7CisKK2NvbnN0IGNoYXIqIGdldFBy
b3BlcnR5TmFtZShDU1NQcm9wZXJ0eUlEKTsKK2NvbnN0IGNoYXIqIGdldFZhbHVlTmFtZSh1bnNp
Z25lZCBzaG9ydCBpZCk7CisKK30KKworI2VuZGlmIC8vIEhhc2hUb29sc19oCisKK0VPRgorY2xv
c2UgSEVBREVSOworCit9CisKK3N3aXRjaCAoJG9wdGlvbikgeworCitjYXNlICJlbnRpdGllcyIg
eworCisjIENyZWF0ZSB0aGUgZm9sbG93aW5nIG9uY2UgaW4gdGhlIEhUTUxFbnRpdHlOYW1lcyBj
cmVhdGlvbiBwaGFzZQorY3JlYXRlSGFzaFRvb2xzSGVhZGVyKCk7CisKK215ICRodG1sRW50aXR5
TmFtZXNJbXBsICAgICAgICA9ICIkb3V0ZGlyL0hUTUxFbnRpdHlOYW1lc0ltcGwuY3BwIjsKK215
ICRodG1sRW50aXR5TmFtZXNHZW5lcmF0ZWQgICA9ICIkb3V0ZGlyL0hUTUxFbnRpdHlOYW1lc0hh
c2guaHBwIjsKK215ICRodG1sRW50aXR5TmFtZXNHcGVyZiAgICAgICA9ICRBUkdWWzBdOworc2hp
ZnQ7CisKK29wZW4gRU5USVRJRVMsICI+JGh0bWxFbnRpdHlOYW1lc0ltcGwiIHx8IGRpZSAiQ291
bGQgbm90IG9wZW4gJGh0bWxFbnRpdHlOYW1lc0ltcGwgZm9yIHdyaXRpbmciOworcHJpbnQgRU5U
SVRJRVMgPDwgIkVPRiI7CisvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQg
YnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBkbyBub3QgZWRpdCAqLworCisjaW5jbHVkZSAiSGFzaFRv
b2xzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXNI
YXNoLmhwcCIKKworY29uc3QgRW50aXR5KiBmaW5kRW50aXR5KHJlZ2lzdGVyIGNvbnN0IGNoYXIq
IHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbikKK3sKKyAgICByZXR1cm4gSFRNTEVudGl0
eUhhc2g6OmZpbmRFbnRpdHlJbXBsKHN0ciwgbGVuKTsKK30KKworfQorCitFT0YKK2Nsb3NlIEVO
VElUSUVTOworc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLXMgMiAkaHRt
bEVudGl0eU5hbWVzR3BlcmYgPiAkaHRtbEVudGl0eU5hbWVzR2VuZXJhdGVkIikgPT0gMCB8fCBk
aWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CisKK30gIyBjYXNlICJlbnRpdGllcyIKKwor
Y2FzZSAiZG9jdHlwZSIgeworCitteSAkZG9jVHlwZVN0cmluZ3NJbXBsICAgICAgICAgPSAiJG91
dGRpci9Eb2NUeXBlU3RyaW5nc0ltcGwuY3BwIjsKK215ICRkb2NUeXBlU3RyaW5nc0dlbmVyYXRl
ZCAgICA9ICIkb3V0ZGlyL0RvY1R5cGVTdHJpbmdzSGFzaC5ocHAiOworbXkgJGRvY1R5cGVTdHJp
bmdzR3BlcmYgICAgICAgID0gJEFSR1ZbMF07CitzaGlmdDsKKworb3BlbiBET0NUWVBFU1RSSU5H
UywgIj4kZG9jVHlwZVN0cmluZ3NJbXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRkb2NUeXBl
U3RyaW5nc0ltcGwgZm9yIHdyaXRpbmciOworcHJpbnQgRE9DVFlQRVNUUklOR1MgPDwgIkVPRiI7
CisvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRv
b2xzLnBsLCBkbyBub3QgZWRpdCAqLworCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJEb2NUeXBlU3RyaW5nc0hhc2guaHBwIgorCitjb25z
dCBQdWJJREluZm8qIGZpbmREb2N0eXBlRW50cnkgKHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwg
cmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbikKK3sKKyAgICByZXR1cm4gRG9jVHlwZVN0cmluZ3NI
YXNoOjpmaW5kRG9jdHlwZUVudHJ5SW1wbChzdHIsIGxlbik7Cit9CisKK30KKworRU9GCitjbG9z
ZSBET0NUWVBFU1RSSU5HUzsKK3N5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1z
IDIgJGRvY1R5cGVTdHJpbmdzR3BlcmYgPiAkZG9jVHlwZVN0cmluZ3NHZW5lcmF0ZWQiKSA9PSAw
IHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKKworfSAjIGNhc2UgImRvY3R5cGUi
CisKK2Nhc2UgImNvbG9yZGF0YSIgeworCitteSAkY29sb3JEYXRhSW1wbCAgICAgICAgPSAiJG91
dGRpci9Db2xvckRhdGFJbXBsLmNwcCI7CitteSAkY29sb3JEYXRhR2VuZXJhdGVkICAgPSAiJG91
dGRpci9Db2xvckRhdGFIYXNoLmhwcCI7CitteSAkY29sb3JEYXRhR3BlcmYgICAgICAgPSAkQVJH
VlswXTsKK3NoaWZ0OworCitvcGVuIENPTE9SREFUQSwgIj4kY29sb3JEYXRhSW1wbCIgfHwgZGll
ICJDb3VsZCBub3Qgb3BlbiAkY29sb3JEYXRhSW1wbCBmb3Igd3JpdGluZyI7CitwcmludCBDT0xP
UkRBVEEgPDwgIkVPRiI7CisvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQg
YnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBkbyBub3QgZWRpdCAqLworCisjaW5jbHVkZSAiSGFzaFRv
b2xzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJDb2xvckRhdGFIYXNoLmhw
cCIKKworY29uc3Qgc3RydWN0IE5hbWVkQ29sb3IqIGZpbmRDb2xvciAocmVnaXN0ZXIgY29uc3Qg
Y2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHJldHVybiBDb2xv
ckRhdGFIYXNoOjpmaW5kQ29sb3JJbXBsKHN0ciwgbGVuKTsKK30KKworfQorCitFT0YKK2Nsb3Nl
IENPTE9SREFUQTsKK3N5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1zIDIg
JGNvbG9yRGF0YUdwZXJmID4gJGNvbG9yRGF0YUdlbmVyYXRlZCIpID09IDAgfHwgZGllICJjYWxs
aW5nIGdwZXJmIGZhaWxlZDogJD8iOworCit9ICMgY2FzZSAiY29sb3JkYXRhIgorCit9ICMgc3dp
dGNoICgkb3B0aW9uKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNp
dEFuaW1hdGlvbi5jcHAgYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9u
LmNwcAppbmRleCAzMjhmZTBlLi5jZWFlYmRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0ltcGxpY2l0QW5pbWF0aW9uLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNvbXBv
c2l0ZUFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiSW1wbGlj
aXRBbmltYXRpb24uaCIKICNpbmNsdWRlICJLZXlmcmFtZUFuaW1hdGlvbi5oIgogI2luY2x1ZGUg
IlJlbmRlckxheWVyLmgiCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0YS5n
cGVyZiBiL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCmluZGV4IDhhNTQ5MTYuLmQ2
ODRjYjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCkBAIC0xLDQgKzEsMTUgQEAKLXN0cnVj
dCBOYW1lZENvbG9yIHsgY29uc3QgY2hhciAqbmFtZTsgaW50IFJHQlZhbHVlOyB9OworJXN0cnVj
dC10eXBlCitzdHJ1Y3QgTmFtZWRDb2xvcjsKKyVvbWl0LXN0cnVjdC10eXBlCislbGFuZ3VhZ2U9
QysrCislcmVhZG9ubHktdGFibGVzCislZ2xvYmFsLXRhYmxlCislY29tcGFyZS1zdHJuY21wCisl
ZGVmaW5lIGNsYXNzLW5hbWUgQ29sb3JEYXRhSGFzaAorJWRlZmluZSBsb29rdXAtZnVuY3Rpb24t
bmFtZSBmaW5kQ29sb3JJbXBsCislZGVmaW5lIGhhc2gtZnVuY3Rpb24tbmFtZSBjb2xvcmRhdGFf
aGFzaF9mdW5jdGlvbgorJWluY2x1ZGVzCislZW51bQogJSUKIGFsaWNlYmx1ZSwgMHhmMGY4ZmYK
IGFudGlxdWV3aGl0ZSwgMHhmYWViZDcKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3IuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKaW5k
ZXggZDk4YjIwMi4uYTg3ZGFmZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKQEAg
LTI2LDEzICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbG9yLmgi
CiAKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgog
I2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+CiAKLSNpbmNsdWRlICJDb2xvckRhdGEuYyIKLQogdXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRW50aXRpZXMuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFbnRp
dGllcy5jcHAKaW5kZXggYjkxNDNkOS4uYTg4MDY3MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJFbnRpdGllcy5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFbnRp
dGllcy5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgPHN0cmluZy5oPgogCisjaW5j
bHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRl
ICJTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQxLDE1ICs0
Miw2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1uYW1lc3BhY2UgewotLy8gTm90
ZSB0aGF0IHRoaXMgZmlsZSBpcyBhbHNvIGluY2x1ZGVkIGJ5IEhUTUxUb2tlbml6ZXIuY3BwIHNv
IHdlIGFyZSBnZXR0aW5nCi0vLyB0d28gY29waWVzIG9mIHRoZSBkYXRhIGluIG1lbW9yeS4gIFdl
IGNhbiBmaXggdGhpcyBieSBjaGFuZ2luZyB0aGUgc2NyaXB0Ci0vLyB0aGF0IGdlbmVyYXRlZCB0
aGUgYXJyYXkgdG8gY3JlYXRlIGEgc3RhdGljIGNvbnN0IHRoYXQgaXMgaXRzIGxlbmd0aCwgYnV0
Ci0vLyB0aGlzIGlzIGxvdyBwcmlvcml0eSBzaW5jZSB0aGUgZGF0YSBpcyBsZXNzIHRoYW4gNEsu
IFdlIHVzZSBhbm9ueW1vdXMKLS8vIG5hbWVzcGFjZSB0byBwcmV2ZW50IG5hbWUgY29sbGlzaW9u
cy4KLSNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXMuYyIgLy8gTk9MSU5UCi19Ci0KIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiB2b2lkIHBvcHVsYXRlTWFwKFdURjo6SGFzaE1hcDxpbnQsIFdlYkNvcmU6
OlN0cmluZz4mIG1hcCwKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFF0LmNwcAppbmRleCA3YTM5MmUwLi42NmI2MjFkIDEwMDY0NAotLS0gYS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCkBAIC0zMiw3ICszMiw2IEBA
CiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uaCIKLSNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiRm9ybVN0
YXRlLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIkZyYW1l
VHJlZS5oIgpAQCAtNDYsNiArNDUsNyBAQAogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgog
I2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNp
bmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUg
IkhUTUxBcHBsZXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCkBAIC0x
MzMzLDcgKzEzMzMsNyBAQCBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRRdDo6
Y3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmIHBsdWdpblNpemUsCiAgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtcVN0eWxlU2hlZXRQcm9wZXJ0aWVzOyArK2kpIHsKICAg
ICAgICAgICAgICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5ID0gcXN0eWxlU2hlZXRQcm9wZXJ0
aWVzW2ldOwogCi0gICAgICAgICAgICAgICAgc3R5bGVTaGVldCArPSBRU3RyaW5nOjpmcm9tTGF0
aW4xKDo6Z2V0UHJvcGVydHlOYW1lKHByb3BlcnR5KSk7CisgICAgICAgICAgICAgICAgc3R5bGVT
aGVldCArPSBRU3RyaW5nOjpmcm9tTGF0aW4xKGdldFByb3BlcnR5TmFtZShwcm9wZXJ0eSkpOwog
ICAgICAgICAgICAgICAgIHN0eWxlU2hlZXQgKz0gUUxhdGluMUNoYXIoJzonKTsKICAgICAgICAg
ICAgICAgICBzdHlsZVNoZWV0ICs9IGNvbXB1dGVkU3R5bGUoZWxlbWVudCktPmdldFByb3BlcnR5
VmFsdWUocHJvcGVydHkpOwogICAgICAgICAgICAgICAgIHN0eWxlU2hlZXQgKz0gUUxhdGluMUNo
YXIoJzsnKTsKLS0gCjEuNS42LjUKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55713</attachid>
            <date>2010-05-11 09:44:59 -0700</date>
            <delta_ts>2010-05-11 13:10:39 -0700</delta_ts>
            <desc>Refactor gperf code generation and usage to fix the debug build with gcc&gt;4.4.</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>52558</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLm1rIGIvV2ViQ29yZS9BbmRyb2lk
LmRlcml2ZWQubWsKaW5kZXggYzY3OGU2MC4uOWVlMmViMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9B
bmRyb2lkLmRlcml2ZWQubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQubWsKQEAgLTU1
LDkgKzU1LDEwIEBAIExPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQogCiAjIERPQ1RZ
UEUgc3RyaW5ncwogCi1HRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9odG1sL0RvY1R5cGVTdHJpbmdz
LmNwcAotJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gZ3BlcmYgLUNFb3QgLUwgQU5TSS1D
IC1rICIqIiAtTiBmaW5kRG9jdHlwZUVudHJ5IC1GICxQdWJJREluZm86OmVBbG1vc3RTdGFuZGFy
ZHMsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzICQ8ID4gJEAKK0dFTiA6PSAkKGludGVybWVk
aWF0ZXMpL2h0bWwvRG9jVHlwZVN0cmluZ3NJbXBsLmNwcAorJChHRU4pOiBQUklWQVRFX0NVU1RP
TV9UT09MID0gcGVybCAkKExPQ0FMX1BBVEgpL21ha2UtaGFzaC10b29scy5wbCBkb2N0eXBlICQo
ZGlyICRAKSAkKExPQ0FMX1BBVEgpL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKICQoR0VOKTog
JChMT0NBTF9QQVRIKS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCiskKEdFTik6IFNDUklQVCA6
PSAkKExPQ0FMX1BBVEgpL21ha2UtaGFzaC10b29scy5wbAogCSQodHJhbnNmb3JtLWdlbmVyYXRl
ZC1zb3VyY2UpCiAjIHdlIGhhdmUgdG8gZG8gdGhpcyBkZXAgYnkgaGFuZDoKICQoaW50ZXJtZWRp
YXRlcykvaHRtbC9IVE1MRG9jdW1lbnQubyA6ICQoR0VOKQpAQCAtNjUsMTggKzY2LDIwIEBAICQo
aW50ZXJtZWRpYXRlcykvaHRtbC9IVE1MRG9jdW1lbnQubyA6ICQoR0VOKQogCiAjIEhUTUwgZW50
aXR5IG5hbWVzCiAKLUdFTiA6PSAkKGludGVybWVkaWF0ZXMpL2h0bWwvSFRNTEVudGl0eU5hbWVz
LmMKLSQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IGdwZXJmIC1hIC1MIEFOU0ktQyAtQyAt
RyAtYyAtbyAtdCAtayAnKicgLU4gZmluZEVudGl0eSAtRCAtcyAyICQ8ID4gJEAKK0dFTiA6PSAk
KGludGVybWVkaWF0ZXMpL2h0bWwvSFRNTEVudGl0eU5hbWVzSW1wbC5jcHAKKyQoR0VOKTogUFJJ
VkFURV9DVVNUT01fVE9PTCA9IHBlcmwgJChMT0NBTF9QQVRIKS9tYWtlLWhhc2gtdG9vbHMucGwg
ZW50aXRpZXMgJChkaXIgJEApICQoTE9DQUxfUEFUSCkvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3Bl
cmYKICQoR0VOKTogJChMT0NBTF9QQVRIKS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgorJChH
RU4pOiBTQ1JJUFQgOj0gJChMT0NBTF9QQVRIKS9tYWtlLWhhc2gtdG9vbHMucGwKIAkkKHRyYW5z
Zm9ybS1nZW5lcmF0ZWQtc291cmNlKQogTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4p
CiAKIAogIyBjb2xvciBuYW1lcwogCi1HRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9wbGF0Zm9ybS9D
b2xvckRhdGEuYwotJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gZ3BlcmYgLUNERW90IC1M
IEFOU0ktQyAtayAnKicgLU4gZmluZENvbG9yIC1EIC1zIDIgJDwgPiAkQAorR0VOIDo9ICQoaW50
ZXJtZWRpYXRlcykvcGxhdGZvcm0vQ29sb3JEYXRhSW1wbC5jcHAKKyQoR0VOKTogUFJJVkFURV9D
VVNUT01fVE9PTCA9IHBlcmwgJChMT0NBTF9QQVRIKS9tYWtlLWhhc2gtdG9vbHMucGwgY29sb3Jk
YXRhICQoZGlyICRAKSAkKExPQ0FMX1BBVEgpL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgogJChH
RU4pOiAkKExPQ0FMX1BBVEgpL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgorJChHRU4pOiBTQ1JJ
UFQgOj0gJChMT0NBTF9QQVRIKS9tYWtlLWhhc2gtdG9vbHMucGwKIAkkKHRyYW5zZm9ybS1nZW5l
cmF0ZWQtc291cmNlKQogTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzcwYzk4
Ny4uNjNhMjNlMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxMC0wNS0xMSAgQW5kcmFzIEJlY3NpICA8YWJl
Y3NpQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWZhY3RvciBncGVyZiBjb2RlIGdlbmVyYXRpb24gYW5kIHVzYWdlIHRv
IGZpeCB0aGUgZGVidWcgYnVpbGQgd2l0aCBnY2M+NC40LgorICAgICAgICB3ZWJraXQub3JnL2Iv
MjkyNDQKKworICAgICAgICBHcGVyZiBjb2RlIGdlbmVyYXRpb24gaXMgZG9uZSBieSBhIG5ldyBz
Y3JpcHQgY2FsbGVkIFdlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsIG5vdywKKyAgICAgICAgYW5k
IHRoZSBnZW5lcmF0aW9uIG9wdGlvbnMgd2VyZSBtb3ZlZCBpbnRvIHRoZSBncGVyZiBmaWxlcywg
dG8gbWFrZSB0aGUgb3B0aW9ucyBtb3JlIHVuZGVyc3RhbmRhYmxlCisgICAgICAgIGFuZCB0aGUg
Z2VuZXJhdGlvbiBwcm9jZXNzIGxlc3MgcmVkdW5kYW50IGFjcm9zcyB0aGUgdmFyaW91cyBwb3J0
cy4KKyAgICAgICAgSGl0aGVydG8gZ3BlcmYgZ2VuZXJhdGVkIEMgY29kZSwgdGhlc2UgZmlsZXMg
d2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBDKysgZmlsZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAg
ICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGlu
IGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBuZXdlciBnY2MgdmVyc2lvbnMKKyAgICAgICAgYmVj
YXVzZSBvZiBhIG5ldyBmZWF0dXJlIG9mIGdjYywgd2hpY2ggZGlzYWJsZXMgQyBzdHlsZSBpbmxp
bmluZyBpbiBkZWJ1ZyBtb2RlLgorICAgICAgICBUaGUgbWFrZS1oYXNoLXRvb2xzLnBsIHNjcmlw
dCBsZXRzIGdwZXJmIGdlbmVyYXRlIEMrKyBjb2RlIGZvciBhbGwgZ3BlcmYgZmlsZXMgbm93LCB3
aGljaCBhcmUgY29tcGlsZWQKKyAgICAgICAgaW4gdGhlaXIgb3duIGNvbXBpbGF0aW9uIHVuaXQu
CisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoZSBnZW5lcmF0ZWQgY29k
ZSBpcyB3cmFwcGVkIGJlaGluZCBIYXNoVG9vbHMuaCwgc28gdGhlcmUgaXMgbm8gbmVlZAorICAg
ICAgICBmb3IgbXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQgQyBmaWxlcyB0byBhY2Nl
c3MgdGhlc2UgZnVuY3Rpb25zLgorCisgICAgICAgIE5vIG5ldyBmdW5jdGlvbmFsaXR5IGFkZGVk
LCBubyBuZXcgdGVzdHMgbmVlZGVkLgorCisgICAgICAgICogQW5kcm9pZC5kZXJpdmVkLm1rOgor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06
CisgICAgICAgICogV2ViQ29yZS5neXAvc2NyaXB0cy9ydWxlX2dwZXJmLnB5OgorICAgICAgICAq
IFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAg
ICAgKiBjc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAqIGNzcy9D
U1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3NzUHJvcGVydHlJRCk6CisgICAgICAg
IChXZWJDb3JlOjpjc3NWYWx1ZUtleXdvcmRJRCk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlLmNwcDoKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHkuY3BwOgorICAgICAgICAqIGNz
cy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKiBjc3MvbWFrZXByb3AucGw6Cisg
ICAgICAgICogY3NzL21ha2V2YWx1ZXMucGw6CisgICAgICAgICogaHRtbC9Eb2NUeXBlU3RyaW5n
cy5ncGVyZjoKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5jcHA6CisgICAgICAgICogaHRt
bC9IVE1MRW50aXR5TmFtZXMuZ3BlcmY6CisgICAgICAgICogaHRtbC9IVE1MVG9rZW5pemVyLmNw
cDoKKyAgICAgICAgKiBodG1sL1ByZWxvYWRTY2FubmVyLmNwcDoKKyAgICAgICAgKiBtYWtlLWhh
c2gtdG9vbHMucGw6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5p
bWF0aW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmY6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwOgorCiAyMDEwLTA1LTExICBCZW5qYW1pbiBQ
b3VsYWluICA8YmVuamFtaW4ucG91bGFpbkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzI2N2E2
ZS4uODM5ZTMyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDYyLDEwICs0NjIsMTAgQEAgYWxsIDog
XAogICAgIENTU0dyYW1tYXIuY3BwIFwKICAgICBDU1NQcm9wZXJ0eU5hbWVzLmggXAogICAgIENT
U1ZhbHVlS2V5d29yZHMuaCBcCi0gICAgQ29sb3JEYXRhLmMgXAotICAgIERvY1R5cGVTdHJpbmdz
LmNwcCBcCisgICAgQ29sb3JEYXRhSW1wbC5jcHAgXAorICAgIERvY1R5cGVTdHJpbmdzSW1wbC5j
cHAgXAogICAgIEhUTUxFbGVtZW50RmFjdG9yeS5jcHAgXAotICAgIEhUTUxFbnRpdHlOYW1lcy5j
IFwKKyAgICBIVE1MRW50aXR5TmFtZXNJbXBsLmNwcCBcCiAgICAgSFRNTE5hbWVzLmNwcCBcCiAg
ICAgV01MRWxlbWVudEZhY3RvcnkuY3BwIFwKICAgICBXTUxOYW1lcy5jcHAgXApAQCAtNTUzLDIy
ICs1NTMsMjIgQEAgQ1NTVmFsdWVLZXl3b3Jkcy5oIDogJChXRUJDT1JFX0NTU19WQUxVRV9LRVlX
T1JEUykgY3NzL21ha2V2YWx1ZXMucGwKIAogIyBET0NUWVBFIHN0cmluZ3MKIAotRG9jVHlwZVN0
cmluZ3MuY3BwIDogaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgotCWdwZXJmIC1DRW90IC1MIEFO
U0ktQyAtayAiKiIgLU4gZmluZERvY3R5cGVFbnRyeSAtRiAsUHViSURJbmZvOjplQWxtb3N0U3Rh
bmRhcmRzLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyAkPCA+ICRACitEb2NUeXBlU3RyaW5n
c0ltcGwuY3BwIDogaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZiAkKFdlYkNvcmUpL21ha2UtaGFz
aC10b29scy5wbAorCXBlcmwgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwgZG9jdHlwZSAu
ICQoV2ViQ29yZSkvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgogCiAjIC0tLS0tLS0tCiAKICMg
SFRNTCBlbnRpdHkgbmFtZXMKIAotSFRNTEVudGl0eU5hbWVzLmMgOiBodG1sL0hUTUxFbnRpdHlO
YW1lcy5ncGVyZgotCWdwZXJmIC1hIC1MIEFOU0ktQyAtQyAtRyAtYyAtbyAtdCAtayAnKicgLU4g
ZmluZEVudGl0eSAtRCAtcyAyICQ8ID4gJEAKK0hUTUxFbnRpdHlOYW1lc0ltcGwuY3BwIDogaHRt
bC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwKKwlw
ZXJsICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBsIGVudGl0aWVzIC4gJChXZWJDb3JlKS9o
dG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgogCiAjIC0tLS0tLS0tCiAKICMgY29sb3IgbmFtZXMK
IAotQ29sb3JEYXRhLmMgOiBwbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKLQlncGVyZiAtQ0RFb3Qg
LUwgQU5TSS1DIC1rICcqJyAtTiBmaW5kQ29sb3IgLUQgLXMgMiAkPCA+ICRACitDb2xvckRhdGFJ
bXBsLmNwcCA6IHBsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZiAkKFdlYkNvcmUpL21ha2UtaGFzaC10
b29scy5wbAorCXBlcmwgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwgY29sb3JkYXRhIC4g
JChXZWJDb3JlKS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKIAogIyAtLS0tLS0tLQogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpp
bmRleCA0ODgyZTgyLi42M2QwNmMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTc5LDkgKzc5LDkgQEAgd2ViY29yZWd0
a19jcHBmbGFncyArPSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAKIAogd2ViY29yZV9idWlsdF9ub3NvdXJjZXMgKz0gXAotCURlcml2ZWRTb3VyY2VzL0RvY1R5
cGVTdHJpbmdzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvRG9jVHlwZVN0cmluZ3NJbXBsLmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvdG9rZW5pemVyLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvQ29sb3JE
YXRhLmMgXAorCURlcml2ZWRTb3VyY2VzL0NvbG9yRGF0YUltcGwuY3BwIFwKIAlEZXJpdmVkU291
cmNlcy93ZWJraXQvd2Via2l0ZG9tZHVtbXkuYwogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0g
XApAQCAtOTAsNyArOTAsNyBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRT
b3VyY2VzL0NTU1Byb3BlcnR5TmFtZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvQ1NTVmFsdWVLZXl3
b3Jkcy5oIFwKIAlEZXJpdmVkU291cmNlcy9IVE1MRWxlbWVudEZhY3RvcnkuY3BwIFwKLQlEZXJp
dmVkU291cmNlcy9IVE1MRW50aXR5TmFtZXMuYyBcCisJRGVyaXZlZFNvdXJjZXMvSFRNTEVudGl0
eU5hbWVzSW1wbC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0hUTUxOYW1lcy5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL0pTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgXAogCURlcml2ZWRTb3Vy
Y2VzL1VzZXJBZ2VudFN0eWxlU2hlZXRzLmggXApAQCAtMzY3NywyNyArMzY3NywzMCBAQCBEZXJp
dmVkU291cmNlcy9DU1NQcm9wZXJ0eU5hbWVzLmg6ICQoV0VCQ09SRV9DU1NfUFJPUEVSVFlfTkFN
RVMpICQoV2ViQ29yZSkvY3NzLwogCWlmIHNvcnQgJChXRUJDT1JFX0NTU19QUk9QRVJUWV9OQU1F
UykgfCB1bmlxIC1kIHwgZ3JlcCAtRSAnXlteI10nOyB0aGVuIGVjaG8gJ0R1cGxpY2F0ZSB2YWx1
ZSEnOyBleGl0IDE7IGZpCiAJY2F0ICQoV0VCQ09SRV9DU1NfUFJPUEVSVFlfTkFNRVMpID4gQ1NT
UHJvcGVydHlOYW1lcy5pbgogCSQoUEVSTCkgIiQoV2ViQ29yZSkvY3NzL21ha2Vwcm9wLnBsIgot
CW12IENTU1Byb3BlcnR5TmFtZXMuKiAkKEdFTlNPVVJDRVMpCisJbXYgQ1NTUHJvcGVydHlOYW1l
cy5oICQoR0VOU09VUkNFUykKKwltdiBDU1NQcm9wZXJ0eU5hbWVzSW1wbC5jcHAgJChHRU5TT1VS
Q0VTKQorCW12IENTU1Byb3BlcnR5TmFtZXNIYXNoLmhwcCAkKEdFTlNPVVJDRVMpCiAKICMgTG93
ZXIgY2FzZSBhbGwgdGhlIHZhbHVlcywgYXMgQ1NTIHZhbHVlcyBhcmUgY2FzZS1pbnNlbnNpdGl2
ZQogRGVyaXZlZFNvdXJjZXMvQ1NTVmFsdWVLZXl3b3Jkcy5oIDogJChXRUJDT1JFX0NTU19WQUxV
RV9LRVlXT1JEUykgJChXZWJDb3JlKS9jc3MvbWFrZXZhbHVlcy5wbAogCSQoUEVSTCkgLW5lICdw
cmludCBsYycgJChXRUJDT1JFX0NTU19WQUxVRV9LRVlXT1JEUykgPiBDU1NWYWx1ZUtleXdvcmRz
LmluCiAJaWYgc29ydCBDU1NWYWx1ZUtleXdvcmRzLmluIHwgdW5pcSAtZCB8IGdyZXAgLUUgJ15b
XiNdJzsgdGhlbiBlY2hvICdEdXBsaWNhdGUgdmFsdWUhJzsgZXhpdCAxOyBmaQogCSQoUEVSTCkg
IiQoV2ViQ29yZSkvY3NzL21ha2V2YWx1ZXMucGwiCi0JbXYgQ1NTVmFsdWVLZXl3b3Jkcy4qICQo
R0VOU09VUkNFUykKKwltdiBDU1NWYWx1ZUtleXdvcmRzLmggJChHRU5TT1VSQ0VTKQorCW12IENT
U1ZhbHVlS2V5d29yZHNJbXBsLmNwcCAkKEdFTlNPVVJDRVMpCisJbXYgQ1NTVmFsdWVLZXl3b3Jk
c0hhc2guaHBwICQoR0VOU09VUkNFUykKIAogIyBET0NUWVBFIHN0cmluZ3MKLURlcml2ZWRTb3Vy
Y2VzL0RvY1R5cGVTdHJpbmdzLmNwcCA6ICQoV2ViQ29yZSkvaHRtbC9Eb2NUeXBlU3RyaW5ncy5n
cGVyZgotCSQoQU1fVl9HRU4pJChHUEVSRikgLUNFb3QgLUkgLUwgQU5TSS1DIC1rICIqIiAtTiBm
aW5kRG9jdHlwZUVudHJ5IC1GICxQdWJJREluZm86OmVBbG1vc3RTdGFuZGFyZHMsUHViSURJbmZv
OjplQWxtb3N0U3RhbmRhcmRzICQoV2ViQ29yZSkvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZiA+
ICRACitEZXJpdmVkU291cmNlcy9Eb2NUeXBlU3RyaW5nc0ltcGwuY3BwIDogJChXZWJDb3JlKS9o
dG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBsCisJ
JChQRVJMKSAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCBkb2N0eXBlICQoR0VOU09VUkNF
UykgJChXZWJDb3JlKS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCiAKICMgSFRNTCBlbnRpdHkg
bmFtZXMKLURlcml2ZWRTb3VyY2VzL0hUTUxFbnRpdHlOYW1lcy5jIDogJChXZWJDb3JlKS9odG1s
L0hUTUxFbnRpdHlOYW1lcy5ncGVyZgotCSQoQU1fVl9HRU4pJChHUEVSRikgLWEgLUkgLUwgQU5T
SS1DIC1DIC1HIC1jIC1vIC10IC1rICcqJyAtTiBmaW5kRW50aXR5IC1EIC1zIDIgXAotCSQoV2Vi
Q29yZSkvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYgPiAkQAorRGVyaXZlZFNvdXJjZXMvSFRN
TEVudGl0eU5hbWVzSW1wbC5jcHAgOiAkKFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdw
ZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBsCisJJChQRVJMKSAkKFdlYkNvcmUpL21h
a2UtaGFzaC10b29scy5wbCBlbnRpdGllcyAkKEdFTlNPVVJDRVMpICQoV2ViQ29yZSkvaHRtbC9I
VE1MRW50aXR5TmFtZXMuZ3BlcmYKIAogIyBjb2xvciBuYW1lcwotRGVyaXZlZFNvdXJjZXMvQ29s
b3JEYXRhLmM6ICQoV2ViQ29yZSkvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCi0JJChBTV9WX0dF
TikkKEdQRVJGKSAtQ0RFb3QgLUwgQU5TSS1DIC1rICcqJyAtTiBmaW5kQ29sb3IgLUQgLXMgMiAk
PCA+ICRACitEZXJpdmVkU291cmNlcy9Db2xvckRhdGFJbXBsLmNwcDogJChXZWJDb3JlKS9wbGF0
Zm9ybS9Db2xvckRhdGEuZ3BlcmYgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwKKwkkKFBF
UkwpICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBsIGNvbG9yZGF0YSAkKEdFTlNPVVJDRVMp
ICQoV2ViQ29yZSkvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCiAKICMgQ1NTIHRva2VuaXplcgog
RGVyaXZlZFNvdXJjZXMvdG9rZW5pemVyLmNwcCA6ICQoV2ViQ29yZSkvY3NzL3Rva2VuaXplci5m
bGV4ICQoV2ViQ29yZSkvY3NzL21ha2V0b2tlbml6ZXIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5neXAvc2NyaXB0cy9ydWxlX2dwZXJmLnB5IGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3Jp
cHRzL3J1bGVfZ3BlcmYucHkKaW5kZXggZTc2ZWQ2Zi4uODA1YzU2YSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL3J1bGVfZ3BlcmYucHkKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLmd5cC9zY3JpcHRzL3J1bGVfZ3BlcmYucHkKQEAgLTMyLDU0ICszMiwzNSBAQAogIyBVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRo
YXQgY2FuIGJlCiAjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKLSMgdXNhZ2U6IHJ1bGVf
Z3BlcmYucHkgSU5QVVRfRklMRSBPVVRQVVRfRElSCisjIHVzYWdlOiBydWxlX2dwZXJmLnB5IElO
UFVUX0ZJTEUKICMgSU5QVVRfRklMRSBpcyBhIHBhdGggdG8gRG9jVHlwZVN0cmluZ3MuZ3BlcmYs
IEhUTUxFbnRpdHlOYW1lcy5ncGVyZiwgb3IKICMgQ29sb3JEYXRhLmdwZXJmLgotIyBPVVRQVVRf
RElSIGlzIHdoZXJlIHRoZSBncGVyZi1nZW5lcmF0ZWQgLmNwcCBmaWxlIHNob3VsZCBiZSBwbGFj
ZWQuIEJlY2F1c2UKLSMgc29tZSB1c2VycyB3YW50IGEgLmMgZmlsZSBpbnN0ZWFkIG9mIGEgLmNw
cCBmaWxlLCB0aGUgLmNwcCBmaWxlIGlzIGNvcGllZAotIyB0byAuYyB3aGVuIGRvbmUuCiAKIGlt
cG9ydCBwb3NpeHBhdGgKLWltcG9ydCBzaHV0aWwKIGltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQg
c3lzCiAKLWFzc2VydCBsZW4oc3lzLmFyZ3YpID09IDMKK2Fzc2VydCBsZW4oc3lzLmFyZ3YpID09
IDIKIAogaW5wdXRGaWxlID0gc3lzLmFyZ3ZbMV0KLW91dHB1dERpciA9IHN5cy5hcmd2WzJdCiAK
IGdwZXJmQ29tbWFuZHMgPSB7Ci0gICAgJ0RvY1R5cGVTdHJpbmdzLmdwZXJmJzogWwotICAgICAg
ICAnLUNFb3QnLCAnLUwnLCAnQU5TSS1DJywgJy1rKicsICctTicsICdmaW5kRG9jdHlwZUVudHJ5
JywKLSAgICAgICAgJy1GJywgJyxQdWJJREluZm86OmVBbG1vc3RTdGFuZGFyZHMsUHViSURJbmZv
OjplQWxtb3N0U3RhbmRhcmRzJwotICAgIF0sCi0gICAgJ0hUTUxFbnRpdHlOYW1lcy5ncGVyZic6
IFsKLSAgICAgICAgJy1hJywgJy1MJywgJ0FOU0ktQycsICctQycsICctRycsICctYycsICctbycs
ICctdCcsICctayonLAotICAgICAgICAnLU4nLCAnZmluZEVudGl0eScsICctRCcsICctcycsICcy
JwotICAgIF0sCi0gICAgJ0NvbG9yRGF0YS5ncGVyZic6IFsKLSAgICAgICAgJy1DREVvdCcsICct
TCcsICdBTlNJLUMnLCAnLWsqJywgJy1OJywgJ2ZpbmRDb2xvcicsICctRCcsICctcycsICcyJwot
ICAgIF0sCisgICAgJ0RvY1R5cGVTdHJpbmdzLmdwZXJmJzogICdkb2N0eXBlJywKKyAgICAnSFRN
TEVudGl0eU5hbWVzLmdwZXJmJzogJ2VudGl0aWVzJywKKyAgICAnQ29sb3JEYXRhLmdwZXJmJzog
J2NvbG9yZGF0YScsCiB9CiAKIGlucHV0TmFtZSA9IHBvc2l4cGF0aC5iYXNlbmFtZShpbnB1dEZp
bGUpCiBhc3NlcnQgaW5wdXROYW1lIGluIGdwZXJmQ29tbWFuZHMKIAogKGlucHV0Um9vdCwgaW5w
dXRFeHQpID0gcG9zaXhwYXRoLnNwbGl0ZXh0KGlucHV0TmFtZSkKLW91dHB1dENwcCA9IHBvc2l4
cGF0aC5qb2luKG91dHB1dERpciwgaW5wdXRSb290ICsgJy5jcHAnKQogCi0jY29tbWFuZCA9IFsn
Z3BlcmYnLCAnLS1vdXRwdXQtZmlsZScsIG91dHB1dENwcF0KLWNvbW1hbmQgPSBbJ2dwZXJmJ10K
LWNvbW1hbmQuZXh0ZW5kKGdwZXJmQ29tbWFuZHNbaW5wdXROYW1lXSkKK2NvbW1hbmQgPSBbJ3Bl
cmwnXQorY29tbWFuZC5hcHBlbmQoZ3BlcmZDb21tYW5kc1tpbnB1dE5hbWVdKQogY29tbWFuZC5h
cHBlbmQoaW5wdXRGaWxlKQogCi1vZmlsZSA9IG9wZW4ob3V0cHV0Q3BwLCAndycpCi0KICMgRG8g
aXQuIGNoZWNrX2NhbGwgaXMgbmV3IGluIDIuNSwgc28gc2ltdWxhdGUgaXRzIGJlaGF2aW9yIHdp
dGggY2FsbCBhbmQKICMgYXNzZXJ0LgotcmV0dXJuQ29kZSA9IHN1YnByb2Nlc3MuY2FsbChjb21t
YW5kLCBzdGRvdXQ9b2ZpbGUuZmlsZW5vKCkpCityZXR1cm5Db2RlID0gc3VicHJvY2Vzcy5jYWxs
KGNvbW1hbmQpCiBhc3NlcnQgcmV0dXJuQ29kZSA9PSAwCiAKLW91dHB1dEMgPSBwb3NpeHBhdGgu
am9pbihvdXRwdXREaXIsIGlucHV0Um9vdCArICcuYycpCi1zaHV0aWwuY29weWZpbGUob3V0cHV0
Q3BwLCBvdXRwdXRDKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1dlYkNvcmUv
V2ViQ29yZS5wcmkKaW5kZXggZWU2OTk5NC4uOGY0YTNkNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLnByaQorKysgYi9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC0xNzcsNyArMTc3LDcgQEAg
WExJTktfTkFNRVMgPSAkJFBXRC9zdmcveGxpbmthdHRycy5pbgogCiBUT0tFTklaRVIgPSAkJFBX
RC9jc3MvdG9rZW5pemVyLmZsZXgKIAotRE9DVFlQRVNUUklOR1MgPSAkJFBXRC9odG1sL0RvY1R5
cGVTdHJpbmdzLmdwZXJmCitET0NUWVBFU1RSSU5HU19HUEVSRiA9ICQkUFdEL2h0bWwvRG9jVHlw
ZVN0cmluZ3MuZ3BlcmYKIAogQ1NTQklTT04gPSAkJFBXRC9jc3MvQ1NTR3JhbW1hci55CiAKQEAg
LTE4OSw3ICsxODksNyBAQCBYTUxOU19OQU1FUyA9ICQkUFdEL3htbC94bWxuc2F0dHJzLmluCiAK
IEVOVElUSUVTX0dQRVJGID0gJCRQV0QvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKIAotQ09M
T1JEQVRfR1BFUkYgPSAkJFBXRC9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKK0NPTE9SREFUQV9H
UEVSRiA9ICQkUFdEL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgogCiBXQUxET0NTU1BST1BTID0g
JCRQV0QvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KIApAQCAtNjQ2LDE3ICs2NDYsMTcgQEAgeGxp
bmtuYW1lcy5pbnB1dCA9IFhMSU5LX05BTUVTCiBhZGRFeHRyYUNvbXBpbGVyKHhsaW5rbmFtZXMp
CiAKICMgR0VORVJBVE9SIDYtQToKLWNzc3Byb3BzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9T
T1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9LmNwcAotY3NzcHJvcHMuaW5wdXQgPSBXQUxE
T0NTU1BST1BTCiBjc3Nwcm9wcy53a1NjcmlwdCA9ICQkUFdEL2Nzcy9tYWtlcHJvcC5wbAorY3Nz
cHJvcHMub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5h
bWVzSW1wbC5jcHAKK2Nzc3Byb3BzLmlucHV0ID0gV0FMRE9DU1NQUk9QUwogY3NzcHJvcHMuY29t
bWFuZHMgPSBwZXJsIC1uZSBcInByaW50IGxjXCIgJHtRTUFLRV9GSUxFX05BTUV9ICQke0RBU0hC
T0FSRFNVUFBPUlRDU1NQUk9QRVJUSUVTfSAkJHtFWFRSQUNTU1BST1BFUlRJRVN9ID4gJCR7V0Nf
R0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJiYgY2QgJCRXQ19H
RU5FUkFURURfU09VUkNFU19ESVIgJiYgcGVybCAkJGNzc3Byb3BzLndrU2NyaXB0ICYmICQoREVM
X0ZJTEUpICR7UU1BS0VfRklMRV9CQVNFfS5pbiAke1FNQUtFX0ZJTEVfQkFTRX0uZ3BlcmYKIGNz
c3Byb3BzLmRlcGVuZHMgPSAke1FNQUtFX0ZJTEVfTkFNRX0gJCR7REFTSEJPQVJEU1VQUE9SVENT
U1BST1BFUlRJRVN9ICQke0VYVFJBQ1NTUFJPUEVSVElFU30KIGFkZEV4dHJhQ29tcGlsZXIoY3Nz
cHJvcHMpCiAKICMgR0VORVJBVE9SIDYtQjoKLWNzc3ZhbHVlcy5vdXRwdXQgPSAkJHtXQ19HRU5F
UkFURURfU09VUkNFU19ESVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5jCi1jc3N2YWx1ZXMuaW5wdXQg
PSBXQUxET0NTU1ZBTFVFUwogY3NzdmFsdWVzLndrU2NyaXB0ID0gJCRQV0QvY3NzL21ha2V2YWx1
ZXMucGwKK2Nzc3ZhbHVlcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0NT
U1ZhbHVlS2V5d29yZHNJbXBsLmNwcAorY3NzdmFsdWVzLmlucHV0ID0gV0FMRE9DU1NWQUxVRVMK
IGNzc3ZhbHVlcy5jb21tYW5kcyA9IHBlcmwgLW5lIFwicHJpbnQgbGNcIiAke1FNQUtFX0ZJTEVf
TkFNRX0gJCRFWFRSQUNTU1ZBTFVFUyA+ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vJHtR
TUFLRV9GSUxFX0JBU0V9LmluICYmIGNkICQkV0NfR0VORVJBVEVEX1NPVVJDRVNfRElSICYmIHBl
cmwgJCRjc3N2YWx1ZXMud2tTY3JpcHQgJiYgJChERUxfRklMRSkgJHtRTUFLRV9GSUxFX0JBU0V9
LmluICR7UU1BS0VfRklMRV9CQVNFfS5ncGVyZgogY3NzdmFsdWVzLmRlcGVuZHMgPSAke1FNQUtF
X0ZJTEVfTkFNRX0gJCR7RVhUUkFDU1NWQUxVRVN9CiBjc3N2YWx1ZXMuY2xlYW4gPSAke1FNQUtF
X0ZJTEVfT1VUfSAke1FNQUtFX1ZBUl9XQ19HRU5FUkFURURfU09VUkNFU19ESVJ9LyR7UU1BS0Vf
RklMRV9CQVNFfS5oCkBAIC03MTIsMjQgKzcxMiwyOCBAQCB4bWxuYW1lcy53a1NjcmlwdCA9ICQk
UFdEL2RvbS9tYWtlX25hbWVzLnBsCiB4bWxuYW1lcy5jb21tYW5kcyA9IHBlcmwgLUkkJFBXRC9i
aW5kaW5ncy9zY3JpcHRzICQkeG1sbmFtZXMud2tTY3JpcHQgLS1hdHRycyAkJFBXRC94bWwveG1s
YXR0cnMuaW4gLS1wcmVwcm9jZXNzb3IgXCIkJHtRTUFLRV9NT0N9IC1FXCIgLS1vdXRwdXREaXIg
JCRXQ19HRU5FUkFURURfU09VUkNFU19ESVIKIGFkZEV4dHJhQ29tcGlsZXIoeG1sbmFtZXMpCiAK
LSMgR0VORVJBVE9SIDgtQToKLWVudGl0aWVzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUn0vSFRNTEVudGl0eU5hbWVzLmMKKyMgR0VORVJBVE9SIDgtZW50aXRpZXM6CitlbnRp
dGllcy53a1NjcmlwdCA9ICQkUFdEL21ha2UtaGFzaC10b29scy5wbAorZW50aXRpZXMub3V0cHV0
ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9IVE1MRW50aXR5TmFtZXNJbXBsLmNwcAog
ZW50aXRpZXMuaW5wdXQgPSBFTlRJVElFU19HUEVSRgotZW50aXRpZXMuY29tbWFuZHMgPSBncGVy
ZiAtYSAtTCBBTlNJLUMgLUMgLUcgLWMgLW8gLXQgLS1pbmNsdWRlcyAtLWtleS1wb3NpdGlvbnM9
IioiIC1OIGZpbmRFbnRpdHkgLUQgLXMgMiA8ICQkUFdEL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdw
ZXJmID4gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9IVE1MRW50aXR5TmFtZXMuYworZW50
aXRpZXMuY29tbWFuZHMgPSBwZXJsICQkZW50aXRpZXMud2tTY3JpcHQgZW50aXRpZXMgJCR7V0Nf
R0VORVJBVEVEX1NPVVJDRVNfRElSfSAkJEVOVElUSUVTX0dQRVJGCiBlbnRpdGllcy5jbGVhbiA9
ICR7UU1BS0VfRklMRV9PVVR9CiBhZGRFeHRyYUNvbXBpbGVyKGVudGl0aWVzKQogCi0jIEdFTkVS
QVRPUiA4LUI6Ci1kb2N0eXBlc3RyaW5ncy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNF
U19ESVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5jcHAKLWRvY3R5cGVzdHJpbmdzLmlucHV0ID0gRE9D
VFlQRVNUUklOR1MKLWRvY3R5cGVzdHJpbmdzLmNvbW1hbmRzID0gZ3BlcmYgLUNFb3QgLUwgQU5T
SS1DIC0taW5jbHVkZXMgLS1rZXktcG9zaXRpb25zPSIqIiAtTiBmaW5kRG9jdHlwZUVudHJ5IC1G
ICxQdWJJREluZm86OmVBbG1vc3RTdGFuZGFyZHMsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRz
IDwgJHtRTUFLRV9GSUxFX05BTUV9ID4+ICR7UU1BS0VfRklMRV9PVVR9Ci1kb2N0eXBlc3RyaW5n
cy5jbGVhbiA9ICR7UU1BS0VfRklMRV9PVVR9Ci1hZGRFeHRyYUNvbXBpbGVyKGRvY3R5cGVzdHJp
bmdzKQotCi0jIEdFTkVSQVRPUiA4LUM6Ci1jb2xvcmRhdGEub3V0cHV0ID0gJCR7V0NfR0VORVJB
VEVEX1NPVVJDRVNfRElSfS9Db2xvckRhdGEuYwotY29sb3JkYXRhLmlucHV0ID0gQ09MT1JEQVRf
R1BFUkYKLWNvbG9yZGF0YS5jb21tYW5kcyA9IGdwZXJmIC1DREVvdCAtTCBBTlNJLUMgLS1pbmNs
dWRlcyAtLWtleS1wb3NpdGlvbnM9IioiIC1OIGZpbmRDb2xvciAtRCAtcyAyIDwgJHtRTUFLRV9G
SUxFX05BTUV9ID4+ICR7UU1BS0VfRklMRV9PVVR9CisjIEdFTkVSQVRPUiA4LWRvY3R5cGU6Citk
b2N0eXBlLndrU2NyaXB0ID0gJCRQV0QvbWFrZS1oYXNoLXRvb2xzLnBsCitkb2N0eXBlLm91dHB1
dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vRG9jVHlwZVN0cmluZ3NJbXBsLmNwcAor
ZG9jdHlwZS5pbnB1dCA9IERPQ1RZUEVTVFJJTkdTX0dQRVJGCitkb2N0eXBlLmNvbW1hbmRzID0g
cGVybCAkJGRvY3R5cGUud2tTY3JpcHQgZG9jdHlwZSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19E
SVJ9ICQkRE9DVFlQRVNUUklOR1NfR1BFUkYKK2RvY3R5cGUuY2xlYW4gPSAke1FNQUtFX0ZJTEVf
T1VUfQorYWRkRXh0cmFDb21waWxlcihkb2N0eXBlKQorCisjIEdFTkVSQVRPUiA4LWNvbG9yZGF0
YToKK2NvbG9yZGF0YS53a1NjcmlwdCA9ICQkUFdEL21ha2UtaGFzaC10b29scy5wbAorY29sb3Jk
YXRhLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vQ29sb3JEYXRhSW1wbC5j
cHAKK2NvbG9yZGF0YS5pbnB1dCA9IENPTE9SREFUQV9HUEVSRgorY29sb3JkYXRhLmNvbW1hbmRz
ID0gcGVybCAkJGNvbG9yZGF0YS53a1NjcmlwdCBjb2xvcmRhdGEgJCR7V0NfR0VORVJBVEVEX1NP
VVJDRVNfRElSfSAkJENPTE9SREFUQV9HUEVSRgorY29sb3JkYXRhLmNsZWFuID0gJHtRTUFLRV9G
SUxFX09VVH0KIGFkZEV4dHJhQ29tcGlsZXIoY29sb3JkYXRhKQogCiAjIEdFTkVSQVRPUiA5Ogpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhOGYxYjNiLi4z
YTUzNjBlIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NDkwMyw4ICs0OTAzLDEzIEBACiAJCUUxRjFFODMwMEMzQzJCQjkwMDZEQjM5MSAvKiBYU0xURXh0
ZW5zaW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFGMUU4MkUwQzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmggKi87IH07CiAJCUUx
RkY1N0EzMEYwMTI1NUIwMDg5MUVCQiAvKiBUaHJlYWRHbG9iYWxEYXRhLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGNTdBMjBGMDEyNTVCMDA4OTFF
QkIgLyogVGhyZWFkR2xvYmFsRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUUxRkY1N0E2MEYwMTI1NkIwMDg5MUVCQiAvKiBUaHJlYWRHbG9i
YWxEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRkY1N0E1MEYwMTI1NkIwMDg5MUVCQiAvKiBUaHJlYWRHbG9iYWxEYXRhLmNwcCAqLzsgfTsK
KwkJRTQwNkYzRkMxMTk4MzEzQzAwOUQ1OUQ2IC8qIENvbG9yRGF0YUltcGwuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwNkYzRkIxMTk4MzA3RDAw
OUQ1OUQ2IC8qIENvbG9yRGF0YUltcGwuY3BwICovOyB9OworCQlFNDA2RjNGRDExOTgzMTNGMDA5
RDU5RDYgLyogRG9jVHlwZVN0cmluZ3NJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDZGM0ZBMTE5ODMwNEQwMDlENTlENiAvKiBEb2NUeXBl
U3RyaW5nc0ltcGwuY3BwICovOyB9OworCQlFNDA2RjQwMzExOTgzMkE1MDA5RDU5RDYgLyogSFRN
TEVudGl0eU5hbWVzSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDA2RjQwMjExOTgzMjlBMDA5RDU5RDYgLyogSFRNTEVudGl0eU5hbWVzSW1w
bC5jcHAgKi87IH07CiAJCUU0MTVGMTY5MEQ5QTE2NUQwMDMzQ0U5NyAvKiBET01FbGVtZW50VGlt
ZUNvbnRyb2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU0MTVGMTY4MEQ5QTE2NUQwMDMzQ0U5NyAvKiBET01FbGVtZW50VGltZUNvbnRyb2wuaCAqLzsg
fTsKIAkJRTQxNUYxODQwRDlBMUE4MzAwMzNDRTk3IC8qIEVsZW1lbnRUaW1lQ29udHJvbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQxNUYxODMwRDlB
MUE4MzAwMzNDRTk3IC8qIEVsZW1lbnRUaW1lQ29udHJvbC5oICovOyB9OworCQlFNDFFQTAzQTEx
OTgzNzczMDA3MTBCQzUgLyogQ1NTUHJvcGVydHlOYW1lc0ltcGwuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQxRUEwMzgxMTk4MzZEQjAwNzEwQkM1
IC8qIENTU1Byb3BlcnR5TmFtZXNJbXBsLmNwcCAqLzsgfTsKKwkJRTQxRUEwM0IxMTk4Mzc3OTAw
NzEwQkM1IC8qIENTU1ZhbHVlS2V5d29yZHNJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MUVBMDM5MTE5ODM3NDkwMDcxMEJDNSAvKiBDU1NW
YWx1ZUtleXdvcmRzSW1wbC5jcHAgKi87IH07CiAJCUU0NDYxM0ExMENENjMzMTAwMEZBREE3NSAv
KiBIVE1MQXVkaW9FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU0NDYxMzhGMENENjMzMTAwMEZBREE3NSAvKiBIVE1MQXVkaW9FbGVtZW50
LmNwcCAqLzsgfTsKIAkJRTQ0NjEzQTIwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxBdWRpb0VsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NDYx
MzkwMENENjMzMTAwMEZBREE3NSAvKiBIVE1MQXVkaW9FbGVtZW50LmggKi87IH07CiAJCUU0NDYx
M0E0MENENjMzMTAwMEZBREE3NSAvKiBIVE1MTWVkaWFFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NDYxMzkyMENENjMzMTAwMEZBREE3
NSAvKiBIVE1MTWVkaWFFbGVtZW50LmNwcCAqLzsgfTsKQEAgLTY3ODQsMTggKzY3ODksMTMgQEAK
IAkJNjU2NTNGMkEwRDk3MjdEMjAwQ0E5NzIzIC8qIFNWR0FsdEdseXBoRWxlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbHRHbHlwaEVsZW1lbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1M0YyQjBEOTcyN0QyMDBDQTk3MjMg
LyogU1ZHQWx0R2x5cGhFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNWR0FsdEdseXBoRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1
M0YyQzBEOTcyN0QyMDBDQTk3MjMgLyogU1ZHQWx0R2x5cGhFbGVtZW50LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBTVkdBbHRHbHlwaEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk2NTY1ODBFRDA5RDEyQjIwMDAwRTYxRDcgLyogQ1NTUHJvcGVydHlOYW1lcy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTUHJvcGVydHlOYW1l
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MEVFMDlEMTJCMjAwMDBF
NjFENyAvKiBDU1NQcm9wZXJ0eU5hbWVzLmdwZXJmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBD
U1NQcm9wZXJ0eU5hbWVzLmdwZXJmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1
ODBFRjA5RDEyQjIwMDAwRTYxRDcgLyogQ1NTUHJvcGVydHlOYW1lcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUHJvcGVydHlOYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk2NTY1ODExQzA5RDEyREIyMDAwRTYxRDcgLyogRG9jVHlwZVN0cmluZ3Mu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY1R5cGVTdHJpbmdz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgxNDQwOUQxMzA0MzAwMEU2
MUQ3IC8qIENTU0dyYW1tYXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENTU0dyYW1tYXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2NTY1ODE0
NjA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5jICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5jOyBwYXRoID0gQ1NTVmFsdWVLZXl3b3Jkcy5jOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2NTY1ODE0NzA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5n
cGVyZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ1NTVmFsdWVLZXl3b3Jkcy5ncGVyZjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgxNDgwOUQxMzA0MzAwMEU2MUQ3IC8qIENT
U1ZhbHVlS2V5d29yZHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1Zh
bHVlS2V5d29yZHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNjU2NTgxNEIwOUQx
MzA0MzAwMEU2MUQ3IC8qIEhUTUxFbnRpdHlOYW1lcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5jOyBwYXRoID0gSFRNTEVudGl0eU5hbWVzLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTY1NjU4MTRDMDlEMTMwNDMwMDBFNjFENyAvKiB0b2tlbml6ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IHRva2VuaXplci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTY1NjU4MUFDMDlEMTRFRTYwMDBFNjFENyAvKiBDaGFyc2V0RGF0YS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2hhcnNldERhdGEuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2NTY1ODFBRDA5RDE0RUU2MDAwRTYxRDcg
LyogQ29sb3JEYXRhLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBDb2xvckRh
dGEuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgxQUUwOUQxNEVFNjAwMEU2
MUQ3IC8qIFVzZXJBZ2VudFN0eWxlU2hlZXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBVc2VyQWdlbnRTdHlsZVNoZWV0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk2NTY1ODFBRjA5RDE0RUU2MDAwRTYxRDcgLyogVXNlckFnZW50U3R5bGVTaGVldHNEYXRh
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyQWdlbnRTdHls
ZVNoZWV0c0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODFFNjA5
RDE1MDhEMDAwRTYxRDcgLyogU1ZHRWxlbWVudEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0VsZW1lbnRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMzY1LDkgKzEwMzY1LDE0IEBACiAJCUUxRjFFODJFMEMzQzJC
QjkwMDZEQjM5MSAvKiBYU0xURXh0ZW5zaW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBYU0xURXh0ZW5zaW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MUZGNTdBMjBGMDEyNTVCMDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRHbG9iYWxEYXRhLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUxRkY1N0E1MEYwMTI1NkIwMDg5MUVCQiAvKiBUaHJlYWRHbG9iYWxE
YXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRocmVhZEdsb2Jh
bERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNDA2RjNGQTExOTgzMDRE
MDA5RDU5RDYgLyogRG9jVHlwZVN0cmluZ3NJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IERvY1R5cGVTdHJpbmdzSW1wbC5jcHA7IHBhdGggPSAuLi9XZWJLaXRC
dWlsZC9SZWxlYXNlL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRG9jVHlwZVN0cmluZ3NJbXBsLmNw
cDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlFNDA2RjNGQjExOTgzMDdEMDA5RDU5
RDYgLyogQ29sb3JEYXRhSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBDb2xvckRhdGFJbXBsLmNwcDsgcGF0aCA9IC4uL1dlYktpdEJ1aWxkL1JlbGVhc2UvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9Db2xvckRhdGFJbXBsLmNwcDsgc291cmNlVHJlZSA9IFNPVVJD
RV9ST09UOyB9OworCQlFNDA2RjQwMjExOTgzMjlBMDA5RDU5RDYgLyogSFRNTEVudGl0eU5hbWVz
SW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBIVE1MRW50aXR5
TmFtZXNJbXBsLmNwcDsgcGF0aCA9IC4uL1dlYktpdEJ1aWxkL1JlbGVhc2UvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9IVE1MRW50aXR5TmFtZXNJbXBsLmNwcDsgc291cmNlVHJlZSA9IFNPVVJDRV9S
T09UOyB9OwogCQlFNDE1RjEwQzBEOUEwNTg3MDAzM0NFOTcgLyogRWxlbWVudFRpbWVDb250cm9s
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFbGVtZW50VGltZUNvbnRyb2wuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDE1RjE2ODBEOUExNjVEMDAzM0NFOTcgLyogRE9N
RWxlbWVudFRpbWVDb250cm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERP
TUVsZW1lbnRUaW1lQ29udHJvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDE1
RjE4MzBEOUExQTgzMDAzM0NFOTcgLyogRWxlbWVudFRpbWVDb250cm9sLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVsZW1lbnRUaW1lQ29udHJvbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFNDFFQTAzODExOTgzNkRCMDA3MTBCQzUgLyogQ1NTUHJvcGVydHlO
YW1lc0ltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ1NTUHJv
cGVydHlOYW1lc0ltcGwuY3BwOyBwYXRoID0gLi4vV2ViS2l0QnVpbGQvUmVsZWFzZS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFtZXNJbXBsLmNwcDsgc291cmNlVHJlZSA9IFNP
VVJDRV9ST09UOyB9OworCQlFNDFFQTAzOTExOTgzNzQ5MDA3MTBCQzUgLyogQ1NTVmFsdWVLZXl3
b3Jkc0ltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ1NTVmFs
dWVLZXl3b3Jkc0ltcGwuY3BwOyBwYXRoID0gLi4vV2ViS2l0QnVpbGQvUmVsZWFzZS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0NTU1ZhbHVlS2V5d29yZHNJbXBsLmNwcDsgc291cmNlVHJlZSA9IFNP
VVJDRV9ST09UOyB9OwogCQlFNDQ2MTM4RjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTEF1ZGlvRWxl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MQXVkaW9F
bGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ0NjEzOTAwQ0Q2MzMx
MDAwRkFEQTc1IC8qIEhUTUxBdWRpb0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSFRNTEF1ZGlvRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNDQ2MTM5MTBDRDYzMzEwMDBGQURBNzUgLyogSFRNTEF1ZGlvRWxlbWVudC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gSFRNTEF1ZGlvRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMTYzNCwyMCArMTE2MzksMjAgQEAKIAkJNjU2NTgwRUMwOUQxMkIyMDAw
MEU2MUQ3IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJRTQxRUEwMzkxMTk4Mzc0OTAwNzEwQkM1IC8qIENTU1ZhbHVlS2V5
d29yZHNJbXBsLmNwcCAqLywKKwkJCQlFNDFFQTAzODExOTgzNkRCMDA3MTBCQzUgLyogQ1NTUHJv
cGVydHlOYW1lc0ltcGwuY3BwICovLAorCQkJCUU0MDZGNDAyMTE5ODMyOUEwMDlENTlENiAvKiBI
VE1MRW50aXR5TmFtZXNJbXBsLmNwcCAqLywKKwkJCQlFNDA2RjNGQjExOTgzMDdEMDA5RDU5RDYg
LyogQ29sb3JEYXRhSW1wbC5jcHAgKi8sCisJCQkJRTQwNkYzRkExMTk4MzA0RDAwOUQ1OUQ2IC8q
IERvY1R5cGVTdHJpbmdzSW1wbC5jcHAgKi8sCiAJCQkJNjU2NTgxQUMwOUQxNEVFNjAwMEU2MUQ3
IC8qIENoYXJzZXREYXRhLmNwcCAqLywKLQkJCQk2NTY1ODFBRDA5RDE0RUU2MDAwRTYxRDcgLyog
Q29sb3JEYXRhLmMgKi8sCiAJCQkJNjU2NTgxNDQwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU0dyYW1t
YXIuY3BwICovLAogCQkJCTY1MEY1M0RCMDlEMTVEREEwMEM5QjBDOCAvKiBDU1NHcmFtbWFyLmgg
Ki8sCi0JCQkJNjU2NTgwRUQwOUQxMkIyMDAwMEU2MUQ3IC8qIENTU1Byb3BlcnR5TmFtZXMuY3Bw
ICovLAogCQkJCTY1NjU4MEVFMDlEMTJCMjAwMDBFNjFENyAvKiBDU1NQcm9wZXJ0eU5hbWVzLmdw
ZXJmICovLAogCQkJCTY1NjU4MEVGMDlEMTJCMjAwMDBFNjFENyAvKiBDU1NQcm9wZXJ0eU5hbWVz
LmggKi8sCi0JCQkJNjU2NTgxNDYwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMu
YyAqLywKIAkJCQk2NTY1ODE0NzA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5n
cGVyZiAqLywKIAkJCQk2NTY1ODE0ODA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jk
cy5oICovLAotCQkJCTY1NjU4MTFDMDlEMTJEQjIwMDBFNjFENyAvKiBEb2NUeXBlU3RyaW5ncy5j
cHAgKi8sCiAJCQkJQTE3QzgxMjAwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9y
eS5jcHAgKi8sCiAJCQkJQTE3QzgxMjEwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFj
dG9yeS5oICovLAotCQkJCTY1NjU4MTRCMDlEMTMwNDMwMDBFNjFENyAvKiBIVE1MRW50aXR5TmFt
ZXMuYyAqLywKIAkJCQlBOEQwNkIzODBBMjY1RENEMDA1RTcyMDMgLyogSFRNTE5hbWVzLmNwcCAq
LywKIAkJCQlBOEQwNkIzNzBBMjY1RENEMDA1RTcyMDMgLyogSFRNTE5hbWVzLmggKi8sCiAJCQkJ
OTM4RTY1RjYwOUYwOTg1RDAwOEE0OEVDIC8qIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5j
cHAgKi8sCkBAIC0yMTQwNSw2ICsyMTQxMCwxMSBAQAogCQkJCUM1RjRGNDBDMTE5MzA2QUMwMEZE
RkFERCAvKiBKU0lEQlJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzVGNEY0MTAxMTkz
MDZDMDAwRkRGQUREIC8qIEpTSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDNTk1NjY3ODExOTMyNEM2MDBGRENFNDcgLyogSlNJREJSZXF1ZXN0Q3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUU0MDZGM0ZDMTE5ODMxM0MwMDlENTlENiAvKiBDb2xvckRh
dGFJbXBsLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUU0MDZGM0ZEMTE5ODMxM0YwMDlENTlENiAv
KiBEb2NUeXBlU3RyaW5nc0ltcGwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTQwNkY0MDMxMTk4
MzJBNTAwOUQ1OUQ2IC8qIEhUTUxFbnRpdHlOYW1lc0ltcGwuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJRTQxRUEwM0ExMTk4Mzc3MzAwNzEwQkM1IC8qIENTU1Byb3BlcnR5TmFtZXNJbXBsLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUU0MUVBMDNCMTE5ODM3NzkwMDcxMEJDNSAvKiBDU1NWYWx1ZUtl
eXdvcmRzSW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGJhNTAzYjguLmI3MmVjZTYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIkNTU1ZhbHVlTGlzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIlJlY3Qu
aCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwIGIvV2Vi
Q29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDdjMDlmOTEuLjcz
OGNmN2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
LmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMu
aCIKICNpbmNsdWRlICJTdHlsZWRFbGVtZW50LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAppbmRleCA2ZjdjZjEyLi4zMjk2MzcwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTYxLDYgKzYx
LDcgQEAKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJGb250RmFtaWx5
VmFsdWUuaCIKICNpbmNsdWRlICJGb250VmFsdWUuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIK
ICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5j
bHVkZSAiUGFpci5oIgpAQCAtODgsOSArODksNiBAQCBleHRlcm4gaW50IGNzc3l5cGFyc2Uodm9p
ZCogcGFyc2VyKTsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2luZyBuYW1lc3BhY2UgV1RGOwog
Ci0jaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5jcHAiCi0jaW5jbHVkZSAiQ1NTVmFsdWVLZXl3
b3Jkcy5jIgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJ
TlZBTElEX05VTV9QQVJTRURfUFJPUEVSVElFUyA9IFVJTlRfTUFYOwpAQCAtNTUyNiw3ICs1NTI0
LDcgQEAgc3RhdGljIGludCBjc3NQcm9wZXJ0eUlEKGNvbnN0IFVDaGFyKiBwcm9wZXJ0eU5hbWUs
IHVuc2lnbmVkIGxlbmd0aCkKICAgICAgICAgfQogICAgIH0KIAotICAgIGNvbnN0IHByb3BzKiBo
YXNoVGFibGVFbnRyeSA9IGZpbmRQcm9wKG5hbWUsIGxlbmd0aCk7CisgICAgY29uc3QgUHJvcGVy
dHkqIGhhc2hUYWJsZUVudHJ5ID0gZmluZFByb3BlcnR5KG5hbWUsIGxlbmd0aCk7CiAgICAgcmV0
dXJuIGhhc2hUYWJsZUVudHJ5ID8gaGFzaFRhYmxlRW50cnktPmlkIDogMDsKIH0KIApAQCAtNTU2
OCw3ICs1NTY2LDcgQEAgaW50IGNzc1ZhbHVlS2V5d29yZElEKGNvbnN0IENTU1BhcnNlclN0cmlu
ZyYgc3RyaW5nKQogICAgICAgICB9CiAgICAgfQogCi0gICAgY29uc3QgY3NzX3ZhbHVlKiBoYXNo
VGFibGVFbnRyeSA9IGZpbmRWYWx1ZShidWZmZXIsIGxlbmd0aCk7CisgICAgY29uc3QgVmFsdWUq
IGhhc2hUYWJsZUVudHJ5ID0gZmluZFZhbHVlKGJ1ZmZlciwgbGVuZ3RoKTsKICAgICByZXR1cm4g
aGFzaFRhYmxlRW50cnkgPyBoYXNoVGFibGVFbnRyeS0+aWQgOiAwOwogfQogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5jcHAKaW5kZXggMjEwZDZmNS4uMzM3ZjBjNSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVk
ZSAiQ291bnRlci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJIYXNo
VG9vbHMuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiUGFpci5oIgogI2luY2x1ZGUg
IlJHQkNvbG9yLmgiCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAgYi9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKaW5kZXggZDdmMjE3NS4uOWM4YTUxYSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnR5LmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5LmgiCiAK
ICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9XZWJDb3JlL2Nzcy9D
U1NTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA0MDRhOTc4Li5lNDVkMmZmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9D
U1NTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkNTU1By
b3BlcnR5LmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1J1
bGUuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5o
PgogCiB1c2luZyBuYW1lc3BhY2UgV1RGOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvbWFrZXBy
b3AucGwgYi9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAppbmRleCAxMTU5NjlmLi45NjhiOTYwIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAorKysgYi9XZWJDb3JlL2Nzcy9tYWtl
cHJvcC5wbApAQCAtNSw2ICs1LDcgQEAKICMgICBDb3B5cmlnaHQgKEMpIDE5OTkgV2FsZG8gQmFz
dGlhbiAoYmFzdGlhbkBrZGUub3JnKQogIyAgIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjICAgQ29weXJpZ2h0IChDKSAyMDA4IE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorIyAgIENvcHlyaWdodCAo
QykgMjAxMCBBbmRyYXMgQmVjc2kgKGFiZWNzaUBpbmYudS1zemVnZWQuaHUpLCBVbml2ZXJzaXR5
IG9mIFN6ZWdlZAogIwogIyAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICMgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzcsMTIgKzM4LDE5IEBAIG9wZW4g
R1BFUkYsICI+Q1NTUHJvcGVydHlOYW1lcy5ncGVyZiIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBD
U1NQcm9wZXJ0eU5hbWVzLmdwCiBwcmludCBHUEVSRiA8PCAiRU9GIjsKICV7CiAvKiBUaGlzIGZp
bGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBDU1NQcm9wZXJ0eU5hbWVzLmluIGJ5
IG1ha2Vwcm9wLCBkbyBub3QgZWRpdCAqLwotI2luY2x1ZGUgXCJDU1NQcm9wZXJ0eU5hbWVzLmhc
IgogJX0KLXN0cnVjdCBwcm9wcyB7Ci0gICAgY29uc3QgY2hhciogbmFtZTsKLSAgICBpbnQgaWQ7
Ci19OworJXN0cnVjdC10eXBlCitzdHJ1Y3QgUHJvcGVydHk7Cislb21pdC1zdHJ1Y3QtdHlwZQor
JWxhbmd1YWdlPUMrKworJXJlYWRvbmx5LXRhYmxlcworJWdsb2JhbC10YWJsZQorJWNvbXBhcmUt
c3RybmNtcAorJWRlZmluZSBjbGFzcy1uYW1lIENTU1Byb3BlcnR5TmFtZXNIYXNoCislZGVmaW5l
IGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRQcm9wZXJ0eUltcGwKKyVkZWZpbmUgaGFzaC1mdW5j
dGlvbi1uYW1lIHByb3BlcnlfaGFzaF9mdW5jdGlvbgorJWluY2x1ZGVzCislZW51bQogJSUKIEVP
RgogCkBAIC01Nyw2ICs2NSw3IEBAIGNsb3NlIEdQRVJGOwogb3BlbiBIRUFERVIsICI+Q1NTUHJv
cGVydHlOYW1lcy5oIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1Byb3BlcnR5TmFtZXMuaCBm
b3Igd3JpdGluZyI7CiBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAvKiBUaGlzIGZpbGUgaXMgYXV0
b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBDU1NQcm9wZXJ0eU5hbWVzLmluIGJ5IG1ha2Vwcm9w
LCBkbyBub3QgZWRpdCAqLworI2luY2x1ZGUgInd0Zi90ZXh0L0NTdHJpbmcuaCIKIAogI2lmbmRl
ZiBDU1NQcm9wZXJ0eU5hbWVzX2gKICNkZWZpbmUgQ1NTUHJvcGVydHlOYW1lc19oCkBAIC04Niwx
NiArOTUsMTQgQEAgcHJpbnQgSEVBREVSICJjb25zdCBzaXplX3QgbWF4Q1NTUHJvcGVydHlOYW1l
TGVuZ3RoID0gJG1heExlbjtcbiI7CiAKIHByaW50IEhFQURFUiA8PCAiRU9GIjsKIAotY29uc3Qg
Y2hhciogZ2V0UHJvcGVydHlOYW1lKENTU1Byb3BlcnR5SUQpOwotCi0jZW5kaWYKKyNlbmRpZiAv
LyBDU1NQcm9wZXJ0eU5hbWVzX2gKIEVPRgogCiBjbG9zZSBIRUFERVI7CiAKLXN5c3RlbSgiZ3Bl
cmYgLWEgLUwgQU5TSS1DIC1FIC1DIC1jIC1vIC10IC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtTmZp
bmRQcm9wIC1IaGFzaF9wcm9wIC1Xd29yZGxpc3RfcHJvcCAtRCAtcyAyIENTU1Byb3BlcnR5TmFt
ZXMuZ3BlcmYgPiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdw
ZXJmIGZhaWxlZDogJD8iOworc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQg
LXMgMiBDU1NQcm9wZXJ0eU5hbWVzLmdwZXJmID4gQ1NTUHJvcGVydHlOYW1lc0hhc2guaHBwIikg
PT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKLW9wZW4gQywgIj4+Q1NT
UHJvcGVydHlOYW1lcy5jcHAiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTUHJvcGVydHlOYW1l
cy5jcHAgZm9yIHdyaXRpbmciOworb3BlbiBDLCAiPj5DU1NQcm9wZXJ0eU5hbWVzSGFzaC5ocHAi
IHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTUHJvcGVydHlOYW1lc0hhc2guaHBwIGZvciB3cml0
aW5nIjsKIHByaW50IEMgInN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcHJvcGVydHlOYW1lU3Ry
aW5nc1skbnVtXSA9IHtcbiI7CiAKIGZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgewpAQCAtMTA0
LDYgKzExMSwyNyBAQCBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKIAogcHJpbnQgQyA8PCAi
RU9GIjsKIH07CisKK0VPRgorCitjbG9zZSBDOworCitteSAkcHJvcGVydHlOYW1lc0ltcGwgPSAi
Q1NTUHJvcGVydHlOYW1lc0ltcGwuY3BwIjsKKworb3BlbiBQUk9QRVJUWU5BTUVTLCAiPiRwcm9w
ZXJ0eU5hbWVzSW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkcHJvcGVydHlOYW1lc0ltcGwg
Zm9yIHdyaXRpbmciOworcHJpbnQgUFJPUEVSVFlOQU1FUyA8PCAiRU9GIjsKKy8qIFRoaXMgZmls
ZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5v
dCBlZGl0ICovCisKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXNIYXNoLmhwcCIKKworY29uc3QgUHJvcGVydHkq
IGZpbmRQcm9wZXJ0eSAocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25l
ZCBpbnQgbGVuKQoreworICAgIHJldHVybiBDU1NQcm9wZXJ0eU5hbWVzSGFzaDo6ZmluZFByb3Bl
cnR5SW1wbChzdHIsIGxlbik7Cit9CisKIGNvbnN0IGNoYXIqIGdldFByb3BlcnR5TmFtZShDU1NQ
cm9wZXJ0eUlEIGlkKQogewogICAgIGlmIChpZCA8IGZpcnN0Q1NTUHJvcGVydHkpCkBAIC0xMTMs
NyArMTQxLDkgQEAgY29uc3QgY2hhciogZ2V0UHJvcGVydHlOYW1lKENTU1Byb3BlcnR5SUQgaWQp
CiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBwcm9wZXJ0eU5hbWVTdHJpbmdzW2luZGV4
XTsKIH0KLUVPRgogCi1jbG9zZSBDOworfQorCitFT0YKK2Nsb3NlIFBST1BFUlRZTkFNRVM7CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwgYi9XZWJDb3JlL2Nzcy9tYWtl
dmFsdWVzLnBsCmluZGV4IGU0OTk4MWQuLjhjZDRmYjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3Nz
L21ha2V2YWx1ZXMucGwKKysrIGIvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbApAQCAtNSw2ICs1
LDcgQEAKICMgICBDb3B5cmlnaHQgKEMpIDE5OTkgV2FsZG8gQmFzdGlhbiAoYmFzdGlhbkBrZGUu
b3JnKQogIyAgIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAjICAgQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorIyAgIENvcHlyaWdodCAoQykgMjAxMCBBbmRyYXMgQmVjc2kgKGFi
ZWNzaUBpbmYudS1zemVnZWQuaHUpLCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogIwogIyAgIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICMgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwpAQCAtMzcsMTMgKzM4LDE5IEBAIG9wZW4gR1BFUkYsICI+Q1NTVmFsdWVLZXl3b3Jk
cy5ncGVyZiIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NWYWx1ZUtleXdvcmRzLmdwCiBwcmlu
dCBHUEVSRiA8PCAiRU9GIjsKICV7CiAvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5l
cmF0ZWQgZnJvbSBDU1NWYWx1ZUtleXdvcmRzLmluIGJ5IG1ha2V2YWx1ZXMsIGRvIG5vdCBlZGl0
ICovCi0KLSNpbmNsdWRlIFwiQ1NTVmFsdWVLZXl3b3Jkcy5oXCIKICV9Ci1zdHJ1Y3QgY3NzX3Zh
bHVlIHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGludCBpZDsKLX07Cislc3RydWN0LXR5
cGUKK3N0cnVjdCBWYWx1ZTsKKyVvbWl0LXN0cnVjdC10eXBlCislbGFuZ3VhZ2U9QysrCislcmVh
ZG9ubHktdGFibGVzCislZ2xvYmFsLXRhYmxlCislY29tcGFyZS1zdHJuY21wCislZGVmaW5lIGNs
YXNzLW5hbWUgQ1NTVmFsdWVLZXl3b3Jkc0hhc2gKKyVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5h
bWUgZmluZFZhbHVlSW1wbAorJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgdmFsdWVfaGFzaF9m
dW5jdGlvbgorJWluY2x1ZGVzCislZW51bQogJSUKIEVPRgogCkBAIC01OCw5ICs2NSwxMCBAQCBj
bG9zZSBHUEVSRjsKIG9wZW4gSEVBREVSLCAiPkNTU1ZhbHVlS2V5d29yZHMuaCIgfHwgZGllICJD
b3VsZCBub3Qgb3BlbiBDU1NWYWx1ZUtleXdvcmRzLmggZm9yIHdyaXRpbmciOwogcHJpbnQgSEVB
REVSIDw8ICJFT0YiOwogLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZy
b20gQ1NTVmFsdWVLZXl3b3Jkcy5pbiBieSBtYWtldmFsdWVzLCBkbyBub3QgZWRpdCAqLworI2lu
Y2x1ZGUgInd0Zi90ZXh0L0NTdHJpbmcuaCIKIAotI2lmbmRlZiBDU1NWYWx1ZXNfaAotI2RlZmlu
ZSBDU1NWYWx1ZXNfaAorI2lmbmRlZiBDU1NWYWx1ZUtleXdvcmRzX2gKKyNkZWZpbmUgQ1NTVmFs
dWVLZXl3b3Jkc19oCiAKIGNvbnN0IGludCBDU1NWYWx1ZUludmFsaWQgPSAwOwogRU9GCkBAIC04
MCwxNSArODgsMTQgQEAgcHJpbnQgSEVBREVSICJjb25zdCBpbnQgbnVtQ1NTVmFsdWVLZXl3b3Jk
cyA9ICIgLiAkaSAuICI7XG4iOwogcHJpbnQgSEVBREVSICJjb25zdCBzaXplX3QgbWF4Q1NTVmFs
dWVLZXl3b3JkTGVuZ3RoID0gIiAuICRtYXhMZW4gLiAiO1xuIjsKIHByaW50IEhFQURFUiA8PCAi
RU9GIjsKIAotY29uc3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKTsKIAot
I2VuZGlmCisjZW5kaWYgLy8gQ1NTVmFsdWVLZXl3b3Jkc19oCiBFT0YKIGNsb3NlIEhFQURFUjsK
IAotc3lzdGVtKCJncGVyZiAtTCBBTlNJLUMgLUUgLUMgLW4gLW8gLXQgLS1rZXktcG9zaXRpb25z
PVwiKlwiIC1OZmluZFZhbHVlIC1IaGFzaF92YWwgLVd3b3JkbGlzdF92YWx1ZSAtRCBDU1NWYWx1
ZUtleXdvcmRzLmdwZXJmID4gQ1NTVmFsdWVLZXl3b3Jkcy5jIikgPT0gMCB8fCBkaWUgImNhbGxp
bmcgZ3BlcmYgZmFpbGVkOiAkPyI7CitzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipc
IiAtRCAtcyAyIENTU1ZhbHVlS2V5d29yZHMuZ3BlcmYgPiBDU1NWYWx1ZUtleXdvcmRzSGFzaC5o
cHAiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKIAotb3BlbiBDLCAi
Pj5DU1NWYWx1ZUtleXdvcmRzLmMiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTVmFsdWVLZXl3
b3Jkcy5jIGZvciB3cml0aW5nIjsKK29wZW4gQywgIj4+Q1NTVmFsdWVLZXl3b3Jkc0hhc2guaHBw
IiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1ZhbHVlS2V5d29yZHNIYXNoLmhwcCBmb3Igd3Jp
dGluZyI7CiBwcmludCBDICAic3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB2YWx1ZUxpc3RbXSA9
IHtcbiI7CiBwcmludCBDICAiXCJcIixcbiI7CiBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsK
QEAgLTk3LDEyICsxMDQsMzQgQEAgZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CiBwcmludCBD
IDw8ICJFT0YiOwogICAgIDAKIH07CisKK0VPRgorCitjbG9zZSBDOworCitteSAkdmFsdWVLZXl3
b3Jkc0ltcGwgPSAiQ1NTVmFsdWVLZXl3b3Jkc0ltcGwuY3BwIjsKKworb3BlbiBWQUxVRUtFWVdP
UkRTLCAiPiR2YWx1ZUtleXdvcmRzSW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkdmFsdWVL
ZXl3b3Jkc0ltcGwgZm9yIHdyaXRpbmciOworcHJpbnQgVkFMVUVLRVlXT1JEUyA8PCAiRU9GIjsK
Ky8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9v
bHMucGwsIGRvIG5vdCBlZGl0ICovCisKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHNIYXNoLmhwcCIKKworY29u
c3QgVmFsdWUqIGZpbmRWYWx1ZSAocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1
bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHJldHVybiBDU1NWYWx1ZUtleXdvcmRzSGFzaDo6Zmlu
ZFZhbHVlSW1wbChzdHIsIGxlbik7Cit9CisKIGNvbnN0IGNoYXIqIGdldFZhbHVlTmFtZSh1bnNp
Z25lZCBzaG9ydCBpZCkKIHsKICAgICBpZiAoaWQgPj0gbnVtQ1NTVmFsdWVLZXl3b3JkcyB8fCBp
ZCA8PSAwKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gdmFsdWVMaXN0W2lkXTsKIH0K
LUVPRgogCi1jbG9zZSBDOworfQorCitFT0YKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9Eb2NU
eXBlU3RyaW5ncy5ncGVyZiBiL1dlYkNvcmUvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgppbmRl
eCAzOTg2MjZlLi4xYzc0MTFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvRG9jVHlwZVN0cmlu
Z3MuZ3BlcmYKKysrIGIvV2ViQ29yZS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCkBAIC0xLDE0
ICsxLDE2IEBACi1zdHJ1Y3QgUHViSURJbmZvIHsKLSAgICBlbnVtIGVNb2RlIHsgCi0gICAgICAg
IGVRdWlya3MsICAgICAgICAgCi0gICAgICAgIGVRdWlya3MzLCAgICAgICAKLSAgICAgICAgZUFs
bW9zdFN0YW5kYXJkcwotICAgIH07Ci0KLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGVNb2Rl
IG1vZGVfaWZfbm9fc3lzaWQ7Ci0gICAgZU1vZGUgbW9kZV9pZl9zeXNpZDsKLX0KKyVzdHJ1Y3Qt
dHlwZQorc3RydWN0IFB1YklESW5mbzsKKyVvbWl0LXN0cnVjdC10eXBlCislbGFuZ3VhZ2U9Qysr
CislcmVhZG9ubHktdGFibGVzCislZ2xvYmFsLXRhYmxlCislY29tcGFyZS1zdHJuY21wCislZGVm
aW5lIGluaXRpYWxpemVyLXN1ZmZpeCAsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzLFB1YklE
SW5mbzo6ZUFsbW9zdFN0YW5kYXJkcworJWRlZmluZSBjbGFzcy1uYW1lIERvY1R5cGVTdHJpbmdz
SGFzaAorJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kRG9jdHlwZUVudHJ5SW1wbAor
JWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgZG9jdHlwZV9oYXNoX2Z1bmN0aW9uCislaW5jbHVk
ZXMKKyVlbnVtCiAlJQogIisvL3NpbG1hcmlsLy9kdGQgaHRtbCBwcm8gdjByMTEgMTk5NzAxMDEv
L2VuIiwgUHViSURJbmZvOjplUXVpcmtzMywgUHViSURJbmZvOjplUXVpcmtzMwogIi0vL2FkdmFz
b2Z0IGx0ZC8vZHRkIGh0bWwgMy4wIGFzd2VkaXQgKyBleHRlbnNpb25zLy9lbiIsIFB1YklESW5m
bzo6ZVF1aXJrczMsIFB1YklESW5mbzo6ZVF1aXJrczMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKaW5kZXgg
MzA0OGVlOS4uYTZjN2U2ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKQEAgLTY0LDYgKzY0LDcgQEAK
ICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIkhUTUxC
b2R5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50RmFjdG9yeS5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgpAQCAtNzMsOCArNzQsNiBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKLSNpbmNsdWRlICJEb2NUeXBlU3RyaW5ncy5jcHAi
Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYgYi9XZWJDb3JlL2h0
bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCmluZGV4IGIxNmIzZDguLmQ2M2QxMzMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxFbnRpdHlOYW1lcy5ncGVyZgpAQCAtMiw2ICsyLDcgQEAKIC8qCiAgICAgIENvcHlyaWdo
dCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBtcGktaGQubXBnLmRlKQogICAgICBDb3B5cmln
aHQgKEMpIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICAgICBDb3B5cmlnaHQgKEMpIDIwMTAgQW5kcmFzIEJlY3NpIChhYmVjc2lAaW5mLnUt
c3plZ2VkLmh1KSwgVW5pdmVyc2l0eSBvZiBTemVnZWQKICAgCiAgICAgIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTIxLDE1ICsyMiwyMSBAQAogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIAogICAgIEhUTUxF
bnRpdHlOYW1lcy5ncGVyZjogaW5wdXQgZmlsZSB0byBnZW5lcmF0ZSBhIGhhc2ggdGFibGUgZm9y
IGVudGl0aWVzCi0gICAgSFRNTEVudGl0eU5hbWVzLmM6IERPIE5PVCBFRElUISBnZW5lcmF0ZWQg
YnkgdGhlIGNvbW1hbmQKLSAgICAiZ3BlcmYgLWEgLUwgIkFOU0ktQyIgLUMgLUcgLWMgLW8gLXQg
LWsgJyonIC1OZmluZEVudGl0eSAtRCAtcyAyIEhUTUxFbnRpdHlOYW1lcy5ncGVyZiA+IGVudGl0
aWVzLmMiICAgCi0gICAgZnJvbSBIVE1MRW50aXR5TmFtZXMuZ3BlcmYgCisgICAgSFRNTEVudGl0
eU5hbWVzLmhwcDogRE8gTk9UIEVESVQhIGdlbmVyYXRlZCBieSBXZWJDb3JlL21ha2VfaGFzaF90
b29scy5wbAogKi8KICV9Ci1zdHJ1Y3QgRW50aXR5IHsKLSAgICBjb25zdCBjaGFyICpuYW1lOwot
ICAgIGludCBjb2RlOwotfTsKKyVzdHJ1Y3QtdHlwZQorc3RydWN0IEVudGl0eTsKKyVvbWl0LXN0
cnVjdC10eXBlCislbGFuZ3VhZ2U9QysrCislcmVhZG9ubHktdGFibGVzCislZ2xvYmFsLXRhYmxl
CislY29tcGFyZS1zdHJuY21wCislZGVmaW5lIGNsYXNzLW5hbWUgSFRNTEVudGl0eUhhc2gKKyVk
ZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZEVudGl0eUltcGwKKyVkZWZpbmUgaGFzaC1m
dW5jdGlvbi1uYW1lIGVudGl0eV9oYXNoX2Z1bmN0aW9uCislaW5jbHVkZXMKKyVlbnVtCiAlJQog
QUVsaWcsIDB4MDBjNgogQU1QLCAzOApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUb2tl
bml6ZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwCmluZGV4IGM4MDdhNGYu
LmE1M2NkZjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcAorKysg
Yi9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNs
dWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VyLmgiCkBAIC01NSw4
ICs1Niw2IEBACiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KIAotI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jIgotCiAjZGVmaW5lIFBS
RUxPQURfU0NBTk5FUl9FTkFCTEVEIDEKIC8vICNkZWZpbmUgSU5TVFJVTUVOVF9MQVlPVVRfU0NI
RURVTElORyAxCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9QcmVsb2FkU2Nhbm5lci5jcHAg
Yi9XZWJDb3JlL2h0bWwvUHJlbG9hZFNjYW5uZXIuY3BwCmluZGV4IGNkODRiMjAuLmVlZmE0NmYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9QcmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvV2ViQ29y
ZS9odG1sL1ByZWxvYWRTY2FubmVyLmNwcApAQCAtMzgsMjQgKzM4LDEzIEBACiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgi
CisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUu
aD4KIAotLy8gVXNlIF9fR05VQ19fIGluc3RlYWQgb2YgUExBVEZPUk0oR0NDKSB0byBzdGF5IGNv
bnNpc3RlbnQgd2l0aCB0aGUgZ3BlcmYgZ2VuZXJhdGVkIGMgZmlsZQotI2lmZGVmIF9fR05VQ19f
Ci0vLyBUaGUgbWFpbiB0b2tlbml6ZXIgaW5jbHVkZXMgdGhpcyB0b28gc28gd2UgYXJlIGdldHRp
bmcgdHdvIGNvcGllcyBvZiB0aGUgZGF0YS4gSG93ZXZlciwgdGhpcyB3YXkgdGhlIGNvZGUgZ2V0
cyBpbmxpbmVkLgotI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jIgotI2Vsc2UKLS8vIE5vdCBp
bmxpbmVkIGZvciBub24tR0NDIGNvbXBpbGVycwotc3RydWN0IEVudGl0eSB7Ci0gICAgY29uc3Qg
Y2hhciogbmFtZTsKLSAgICBpbnQgY29kZTsKLX07Ci1jb25zdCBzdHJ1Y3QgRW50aXR5KiBmaW5k
RW50aXR5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxl
bik7Ci0jZW5kaWYKIAogI2RlZmluZSBQUkVMT0FEX0RFQlVHIDAKIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9tYWtlLWhhc2gtdG9vbHMucGwgYi9XZWJDb3JlL21ha2UtaGFzaC10b29scy5wbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDdkZmE5Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwKQEAgLTAsMCArMSwxODggQEAKKyMhIC91c3Iv
YmluL3BlcmwKKyMKKyMgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IHByb2plY3QK
KyMKKyMgICBDb3B5cmlnaHQgKEMpIDIwMTAgQW5kcmFzIEJlY3NpIChhYmVjc2lAaW5mLnUtc3pl
Z2VkLmh1KSwgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyMKKyMgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyMgICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyMgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisjCisjICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
IyAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIwor
IyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyMgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworIyAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisj
ICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisKK3VzZSBzdHJpY3Q7Cit1c2UgU3dpdGNo
OworCitteSAkb3B0aW9uICAgICAgICAgICAgICAgICAgICAgPSAkQVJHVlswXTsKK3NoaWZ0Owor
bXkgJG91dGRpciAgICAgICAgICAgICAgICAgICAgID0gJEFSR1ZbMF07CitzaGlmdDsKKworbXkg
JGhhc2hUb29sc0hlYWRlciA9ICIkb3V0ZGlyL0hhc2hUb29scy5oIjsKKworc3ViIGNyZWF0ZUhh
c2hUb29sc0hlYWRlcigpIHsKKworb3BlbiBIRUFERVIsICI+JGhhc2hUb29sc0hlYWRlciIgfHwg
ZGllICJDb3VsZCBub3Qgb3BlbiAkaGFzaFRvb2xzSGVhZGVyIGZvciB3cml0aW5nIjsKK3ByaW50
IEhFQURFUiA8PCAiRU9GIjsKKy8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRl
ZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5vdCBlZGl0ICovCisKKyNpbmNsdWRlICJDU1NW
YWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgorCisjaWZuZGVm
IEhhc2hUb29sc19oCisjZGVmaW5lIEhhc2hUb29sc19oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RydWN0IEVudGl0eSB7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBpbnQgY29kZTsK
K307CisKK3N0cnVjdCBQdWJJREluZm8geworICAgIGVudW0gZU1vZGUgeworICAgICAgICBlUXVp
cmtzLAorICAgICAgICBlUXVpcmtzMywKKyAgICAgICAgZUFsbW9zdFN0YW5kYXJkcworICAgIH07
CisKKyAgICBjb25zdCBjaGFyKiBuYW1lOworICAgIGVNb2RlIG1vZGVfaWZfbm9fc3lzaWQ7Cisg
ICAgZU1vZGUgbW9kZV9pZl9zeXNpZDsKK307CisKK3N0cnVjdCBOYW1lZENvbG9yIHsKKyAgICBj
b25zdCBjaGFyKiBuYW1lOworICAgIGludCBSR0JWYWx1ZTsKK307CisKK3N0cnVjdCBQcm9wZXJ0
eSB7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBpbnQgaWQ7Cit9OworCitzdHJ1Y3QgVmFs
dWUgeworICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgaW50IGlkOworfTsKKworY29uc3QgRW50
aXR5KiBmaW5kRW50aXR5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWdu
ZWQgaW50IGxlbik7Citjb25zdCBQdWJJREluZm8qIGZpbmREb2N0eXBlRW50cnkocmVnaXN0ZXIg
Y29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKK2NvbnN0IE5hbWVk
Q29sb3IqIGZpbmRDb2xvcihyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2ln
bmVkIGludCBsZW4pOworY29uc3QgUHJvcGVydHkqIGZpbmRQcm9wZXJ0eShyZWdpc3RlciBjb25z
dCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pOworY29uc3QgVmFsdWUqIGZp
bmRWYWx1ZShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBs
ZW4pOworCitjb25zdCBjaGFyKiBnZXRQcm9wZXJ0eU5hbWUoQ1NTUHJvcGVydHlJRCk7Citjb25z
dCBjaGFyKiBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpOworCit9CisKKyNlbmRpZiAv
LyBIYXNoVG9vbHNfaAorCitFT0YKK2Nsb3NlIEhFQURFUjsKKworfQorCitzd2l0Y2ggKCRvcHRp
b24pIHsKKworY2FzZSAiZW50aXRpZXMiIHsKKworIyBDcmVhdGUgdGhlIGZvbGxvd2luZyBvbmNl
IGluIHRoZSBIVE1MRW50aXR5TmFtZXMgY3JlYXRpb24gcGhhc2UKK2NyZWF0ZUhhc2hUb29sc0hl
YWRlcigpOworCitteSAkaHRtbEVudGl0eU5hbWVzSW1wbCAgICAgICAgPSAiJG91dGRpci9IVE1M
RW50aXR5TmFtZXNJbXBsLmNwcCI7CitteSAkaHRtbEVudGl0eU5hbWVzR2VuZXJhdGVkICAgPSAi
JG91dGRpci9IVE1MRW50aXR5TmFtZXNIYXNoLmhwcCI7CitteSAkaHRtbEVudGl0eU5hbWVzR3Bl
cmYgICAgICAgPSAkQVJHVlswXTsKK3NoaWZ0OworCitvcGVuIEVOVElUSUVTLCAiPiRodG1sRW50
aXR5TmFtZXNJbXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRodG1sRW50aXR5TmFtZXNJbXBs
IGZvciB3cml0aW5nIjsKK3ByaW50IEVOVElUSUVTIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlz
IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVk
aXQgKi8KKworI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7Cisj
aW5jbHVkZSAiSFRNTEVudGl0eU5hbWVzSGFzaC5ocHAiCisKK2NvbnN0IEVudGl0eSogZmluZEVu
dGl0eShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4p
Cit7CisgICAgcmV0dXJuIEhUTUxFbnRpdHlIYXNoOjpmaW5kRW50aXR5SW1wbChzdHIsIGxlbik7
Cit9CisKK30KKworRU9GCitjbG9zZSBFTlRJVElFUzsKK3N5c3RlbSgiZ3BlcmYgLS1rZXktcG9z
aXRpb25zPVwiKlwiIC1EIC1zIDIgJGh0bWxFbnRpdHlOYW1lc0dwZXJmID4gJGh0bWxFbnRpdHlO
YW1lc0dlbmVyYXRlZCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwor
Cit9ICMgY2FzZSAiZW50aXRpZXMiCisKK2Nhc2UgImRvY3R5cGUiIHsKKworbXkgJGRvY1R5cGVT
dHJpbmdzSW1wbCAgICAgICAgID0gIiRvdXRkaXIvRG9jVHlwZVN0cmluZ3NJbXBsLmNwcCI7Citt
eSAkZG9jVHlwZVN0cmluZ3NHZW5lcmF0ZWQgICAgPSAiJG91dGRpci9Eb2NUeXBlU3RyaW5nc0hh
c2guaHBwIjsKK215ICRkb2NUeXBlU3RyaW5nc0dwZXJmICAgICAgICA9ICRBUkdWWzBdOworc2hp
ZnQ7CisKK29wZW4gRE9DVFlQRVNUUklOR1MsICI+JGRvY1R5cGVTdHJpbmdzSW1wbCIgfHwgZGll
ICJDb3VsZCBub3Qgb3BlbiAkZG9jVHlwZVN0cmluZ3NJbXBsIGZvciB3cml0aW5nIjsKK3ByaW50
IERPQ1RZUEVTVFJJTkdTIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkg
Z2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKworI2luY2x1
ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiRG9jVHlw
ZVN0cmluZ3NIYXNoLmhwcCIKKworY29uc3QgUHViSURJbmZvKiBmaW5kRG9jdHlwZUVudHJ5IChy
ZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7Cisg
ICAgcmV0dXJuIERvY1R5cGVTdHJpbmdzSGFzaDo6ZmluZERvY3R5cGVFbnRyeUltcGwoc3RyLCBs
ZW4pOworfQorCit9CisKK0VPRgorY2xvc2UgRE9DVFlQRVNUUklOR1M7CitzeXN0ZW0oImdwZXJm
IC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtcyAyICRkb2NUeXBlU3RyaW5nc0dwZXJmID4gJGRvY1R5
cGVTdHJpbmdzR2VuZXJhdGVkIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAk
PyI7CisKK30gIyBjYXNlICJkb2N0eXBlIgorCitjYXNlICJjb2xvcmRhdGEiIHsKKworbXkgJGNv
bG9yRGF0YUltcGwgICAgICAgID0gIiRvdXRkaXIvQ29sb3JEYXRhSW1wbC5jcHAiOworbXkgJGNv
bG9yRGF0YUdlbmVyYXRlZCAgID0gIiRvdXRkaXIvQ29sb3JEYXRhSGFzaC5ocHAiOworbXkgJGNv
bG9yRGF0YUdwZXJmICAgICAgID0gJEFSR1ZbMF07CitzaGlmdDsKKworb3BlbiBDT0xPUkRBVEEs
ICI+JGNvbG9yRGF0YUltcGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJGNvbG9yRGF0YUltcGwg
Zm9yIHdyaXRpbmciOworcHJpbnQgQ09MT1JEQVRBIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlz
IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVk
aXQgKi8KKworI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7Cisj
aW5jbHVkZSAiQ29sb3JEYXRhSGFzaC5ocHAiCisKK2NvbnN0IHN0cnVjdCBOYW1lZENvbG9yKiBm
aW5kQ29sb3IgKHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50
IGxlbikKK3sKKyAgICByZXR1cm4gQ29sb3JEYXRhSGFzaDo6ZmluZENvbG9ySW1wbChzdHIsIGxl
bik7Cit9CisKK30KKworRU9GCitjbG9zZSBDT0xPUkRBVEE7CitzeXN0ZW0oImdwZXJmIC0ta2V5
LXBvc2l0aW9ucz1cIipcIiAtRCAtcyAyICRjb2xvckRhdGFHcGVyZiA+ICRjb2xvckRhdGFHZW5l
cmF0ZWQiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKKworfSAjIGNh
c2UgImNvbG9yZGF0YSIKKworfSAjIHN3aXRjaCAoJG9wdGlvbikKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwIGIvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKaW5kZXggMzI4ZmUwZS4uY2VhZWJkYSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKKysr
IGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJDb21wb3NpdGVBbmltYXRpb24uaCIKICNpbmNsdWRlICJDU1NQ
cm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkhhc2hU
b29scy5oIgogI2luY2x1ZGUgIkltcGxpY2l0QW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiS2V5ZnJh
bWVBbmltYXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYgYi9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0
YS5ncGVyZgppbmRleCA4YTU0OTE2Li5kNjg0Y2I5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL0NvbG9yRGF0YS5ncGVyZgorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVy
ZgpAQCAtMSw0ICsxLDE1IEBACi1zdHJ1Y3QgTmFtZWRDb2xvciB7IGNvbnN0IGNoYXIgKm5hbWU7
IGludCBSR0JWYWx1ZTsgfTsKKyVzdHJ1Y3QtdHlwZQorc3RydWN0IE5hbWVkQ29sb3I7Cislb21p
dC1zdHJ1Y3QtdHlwZQorJWxhbmd1YWdlPUMrKworJXJlYWRvbmx5LXRhYmxlcworJWdsb2JhbC10
YWJsZQorJWNvbXBhcmUtc3RybmNtcAorJWRlZmluZSBjbGFzcy1uYW1lIENvbG9yRGF0YUhhc2gK
KyVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZENvbG9ySW1wbAorJWRlZmluZSBoYXNo
LWZ1bmN0aW9uLW5hbWUgY29sb3JkYXRhX2hhc2hfZnVuY3Rpb24KKyVpbmNsdWRlcworJWVudW0K
ICUlCiBhbGljZWJsdWUsIDB4ZjBmOGZmCiBhbnRpcXVld2hpdGUsIDB4ZmFlYmQ3CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3IuY3BwCmluZGV4IGQ5OGIyMDIuLmE4N2RhZmQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3IuY3BwCkBAIC0yNiwxMyArMjYsMTIgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJDb2xvci5oIgogCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCi0jaW5jbHVkZSAi
Q29sb3JEYXRhLmMiCi0KIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2luZyBuYW1lc3BhY2UgV1RG
OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCA0NzQ1NzJlLi42MTFmZmM5IDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxMC0wNS0xMSAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQGluZi51LXN6ZWdl
ZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZWZhY3RvciBncGVyZiBjb2RlIGdlbmVyYXRpb24gYW5kIHVzYWdlIHRvIGZpeCB0aGUgZGVidWcg
YnVpbGQgd2l0aCBnY2M+NC40LgorICAgICAgICB3ZWJraXQub3JnL2IvMjkyNDQKKworICAgICAg
ICBHcGVyZiBjb2RlIGdlbmVyYXRpb24gaXMgZG9uZSBieSBhIG5ldyBzY3JpcHQgY2FsbGVkIFdl
YkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsIG5vdywKKyAgICAgICAgYW5kIHRoZSBnZW5lcmF0aW9u
IG9wdGlvbnMgd2VyZSBtb3ZlZCBpbnRvIHRoZSBncGVyZiBmaWxlcywgdG8gbWFrZSB0aGUgb3B0
aW9ucyBtb3JlIHVuZGVyc3RhbmRhYmxlCisgICAgICAgIGFuZCB0aGUgZ2VuZXJhdGlvbiBwcm9j
ZXNzIGxlc3MgcmVkdW5kYW50IGFjcm9zcyB0aGUgdmFyaW91cyBwb3J0cy4KKyAgICAgICAgSGl0
aGVydG8gZ3BlcmYgZ2VuZXJhdGVkIEMgY29kZSwgdGhlc2UgZmlsZXMgd2VyZSBpbmNsdWRlZCBp
biBtdWx0aXBsZSBDKysgZmlsZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAgICAgdG8gYWNjZXNzIHRo
ZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGluIGRlYnVnIGJ1aWxkIGZh
aWx1cmUgd2l0aCBuZXdlciBnY2MgdmVyc2lvbnMKKyAgICAgICAgYmVjYXVzZSBvZiBhIG5ldyBm
ZWF0dXJlIG9mIGdjYywgd2hpY2ggZGlzYWJsZXMgQyBzdHlsZSBpbmxpbmluZyBpbiBkZWJ1ZyBt
b2RlLgorICAgICAgICBUaGUgbWFrZS1oYXNoLXRvb2xzLnBsIHNjcmlwdCBsZXRzIGdwZXJmIGdl
bmVyYXRlIEMrKyBjb2RlIGZvciBhbGwgZ3BlcmYgZmlsZXMgbm93LCB3aGljaCBhcmUgY29tcGls
ZWQKKyAgICAgICAgaW4gdGhlaXIgb3duIGNvbXBpbGF0aW9uIHVuaXQuCisgICAgICAgIFRoZSBm
dW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoZSBnZW5lcmF0ZWQgY29kZSBpcyB3cmFwcGVkIGJl
aGluZCBIYXNoVG9vbHMuaCwgc28gdGhlcmUgaXMgbm8gbmVlZAorICAgICAgICBmb3IgbXVsdGlw
bGUgaW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQgQyBmaWxlcyB0byBhY2Nlc3MgdGhlc2UgZnVuY3Rp
b25zLgorCisgICAgICAgICogc3JjL1dlYkVudGl0aWVzLmNwcDoKKwogMjAxMC0wNS0xMCAgVG9u
eSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQg
VGFtdXJhLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFbnRpdGllcy5jcHAg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVudGl0aWVzLmNwcAppbmRleCBiOTE0M2Q5Li5hODgw
NjcxIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVudGl0aWVzLmNwcAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVudGl0aWVzLmNwcApAQCAtMzMsNiArMzMsNyBAQAog
CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlN0cmluZ0J1aWxkZXIuaCIKICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgpAQCAtNDEsMTUgKzQyLDYgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKLW5hbWVzcGFjZSB7Ci0vLyBOb3RlIHRoYXQgdGhpcyBmaWxlIGlzIGFsc28gaW5j
bHVkZWQgYnkgSFRNTFRva2VuaXplci5jcHAgc28gd2UgYXJlIGdldHRpbmcKLS8vIHR3byBjb3Bp
ZXMgb2YgdGhlIGRhdGEgaW4gbWVtb3J5LiAgV2UgY2FuIGZpeCB0aGlzIGJ5IGNoYW5naW5nIHRo
ZSBzY3JpcHQKLS8vIHRoYXQgZ2VuZXJhdGVkIHRoZSBhcnJheSB0byBjcmVhdGUgYSBzdGF0aWMg
Y29uc3QgdGhhdCBpcyBpdHMgbGVuZ3RoLCBidXQKLS8vIHRoaXMgaXMgbG93IHByaW9yaXR5IHNp
bmNlIHRoZSBkYXRhIGlzIGxlc3MgdGhhbiA0Sy4gV2UgdXNlIGFub255bW91cwotLy8gbmFtZXNw
YWNlIHRvIHByZXZlbnQgbmFtZSBjb2xsaXNpb25zLgotI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1l
cy5jIiAvLyBOT0xJTlQKLX0KLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgcG9wdWxhdGVN
YXAoV1RGOjpIYXNoTWFwPGludCwgV2ViQ29yZTo6U3RyaW5nPiYgbWFwLApkaWZmIC0tZ2l0IGEv
V2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMzg1ZDU4MS4u
NmFhYzczOSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUtMTEgIEFuZHJhcyBCZWNzaSAgPGFi
ZWNzaUBpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVmYWN0b3IgZ3BlcmYgY29kZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0
byBmaXggdGhlIGRlYnVnIGJ1aWxkIHdpdGggZ2NjPjQuNC4KKyAgICAgICAgd2Via2l0Lm9yZy9i
LzI5MjQ0CisKKyAgICAgICAgR3BlcmYgY29kZSBnZW5lcmF0aW9uIGlzIGRvbmUgYnkgYSBuZXcg
c2NyaXB0IGNhbGxlZCBXZWJDb3JlL21ha2UtaGFzaC10b29scy5wbCBub3csCisgICAgICAgIGFu
ZCB0aGUgZ2VuZXJhdGlvbiBvcHRpb25zIHdlcmUgbW92ZWQgaW50byB0aGUgZ3BlcmYgZmlsZXMs
IHRvIG1ha2UgdGhlIG9wdGlvbnMgbW9yZSB1bmRlcnN0YW5kYWJsZQorICAgICAgICBhbmQgdGhl
IGdlbmVyYXRpb24gcHJvY2VzcyBsZXNzIHJlZHVuZGFudCBhY3Jvc3MgdGhlIHZhcmlvdXMgcG9y
dHMuCisgICAgICAgIEhpdGhlcnRvIGdwZXJmIGdlbmVyYXRlZCBDIGNvZGUsIHRoZXNlIGZpbGVz
IHdlcmUgaW5jbHVkZWQgaW4gbXVsdGlwbGUgQysrIGZpbGVzIGFjcm9zcyBXZWJDb3JlCisgICAg
ICAgIHRvIGFjY2VzcyB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZC4gVGhpcyByZXN1bHRlZCBp
biBkZWJ1ZyBidWlsZCBmYWlsdXJlIHdpdGggbmV3ZXIgZ2NjIHZlcnNpb25zCisgICAgICAgIGJl
Y2F1c2Ugb2YgYSBuZXcgZmVhdHVyZSBvZiBnY2MsIHdoaWNoIGRpc2FibGVzIEMgc3R5bGUgaW5s
aW5pbmcgaW4gZGVidWcgbW9kZS4KKyAgICAgICAgVGhlIG1ha2UtaGFzaC10b29scy5wbCBzY3Jp
cHQgbGV0cyBncGVyZiBnZW5lcmF0ZSBDKysgY29kZSBmb3IgYWxsIGdwZXJmIGZpbGVzIG5vdywg
d2hpY2ggYXJlIGNvbXBpbGVkCisgICAgICAgIGluIHRoZWlyIG93biBjb21waWxhdGlvbiB1bml0
LgorICAgICAgICBUaGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSB0aGUgZ2VuZXJhdGVkIGNv
ZGUgaXMgd3JhcHBlZCBiZWhpbmQgSGFzaFRvb2xzLmgsIHNvIHRoZXJlIGlzIG5vIG5lZWQKKyAg
ICAgICAgZm9yIG11bHRpcGxlIGluY2x1c2lvbnMgb2YgZ2VuZXJhdGVkIEMgZmlsZXMgdG8gYWNj
ZXNzIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6
Y3JlYXRlUGx1Z2luKToKKwogMjAxMC0wNS0wOSAgTm9hbSBSb3NlbnRoYWwgIDxub2FtLnJvc2Vu
dGhhbEBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJp
c3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5jcHAKaW5kZXggYTBiMDZmYi4uYmFiMWQwNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMzIsNyArMzIsNiBAQAogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmgiCi0jaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkZvcm1TdGF0ZS5o
IgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50UXQuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUu
aCIKQEAgLTQ2LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNs
dWRlICJSZW5kZXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVk
ZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJIVE1M
QXBwbGV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgpAQCAtMTMzMyw3
ICsxMzMzLDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0
ZVBsdWdpbihjb25zdCBJbnRTaXplJiBwbHVnaW5TaXplLAogICAgICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG51bXFTdHlsZVNoZWV0UHJvcGVydGllczsgKytpKSB7CiAgICAgICAg
ICAgICAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSA9IHFzdHlsZVNoZWV0UHJvcGVydGllc1tp
XTsKIAotICAgICAgICAgICAgICAgIHN0eWxlU2hlZXQgKz0gUVN0cmluZzo6ZnJvbUxhdGluMSg6
OmdldFByb3BlcnR5TmFtZShwcm9wZXJ0eSkpOworICAgICAgICAgICAgICAgIHN0eWxlU2hlZXQg
Kz0gUVN0cmluZzo6ZnJvbUxhdGluMShnZXRQcm9wZXJ0eU5hbWUocHJvcGVydHkpKTsKICAgICAg
ICAgICAgICAgICBzdHlsZVNoZWV0ICs9IFFMYXRpbjFDaGFyKCc6Jyk7CiAgICAgICAgICAgICAg
ICAgc3R5bGVTaGVldCArPSBjb21wdXRlZFN0eWxlKGVsZW1lbnQpLT5nZXRQcm9wZXJ0eVZhbHVl
KHByb3BlcnR5KTsKICAgICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9IFFMYXRpbjFDaGFyKCc7
Jyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55754</attachid>
            <date>2010-05-11 14:13:52 -0700</date>
            <delta_ts>2010-05-11 14:34:53 -0700</delta_ts>
            <desc>Refactor gperf v2</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>56072</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLm1rIGIvV2ViQ29yZS9BbmRyb2lk
LmRlcml2ZWQubWsKaW5kZXggYzY3OGU2MC4uOWVlMmViMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9B
bmRyb2lkLmRlcml2ZWQubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQubWsKQEAgLTU1
LDkgKzU1LDEwIEBAIExPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQogCiAjIERPQ1RZ
UEUgc3RyaW5ncwogCi1HRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9odG1sL0RvY1R5cGVTdHJpbmdz
LmNwcAotJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gZ3BlcmYgLUNFb3QgLUwgQU5TSS1D
IC1rICIqIiAtTiBmaW5kRG9jdHlwZUVudHJ5IC1GICxQdWJJREluZm86OmVBbG1vc3RTdGFuZGFy
ZHMsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzICQ8ID4gJEAKK0dFTiA6PSAkKGludGVybWVk
aWF0ZXMpL2h0bWwvRG9jVHlwZVN0cmluZ3NJbXBsLmNwcAorJChHRU4pOiBQUklWQVRFX0NVU1RP
TV9UT09MID0gcGVybCAkKExPQ0FMX1BBVEgpL21ha2UtaGFzaC10b29scy5wbCBkb2N0eXBlICQo
ZGlyICRAKSAkKExPQ0FMX1BBVEgpL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKICQoR0VOKTog
JChMT0NBTF9QQVRIKS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCiskKEdFTik6IFNDUklQVCA6
PSAkKExPQ0FMX1BBVEgpL21ha2UtaGFzaC10b29scy5wbAogCSQodHJhbnNmb3JtLWdlbmVyYXRl
ZC1zb3VyY2UpCiAjIHdlIGhhdmUgdG8gZG8gdGhpcyBkZXAgYnkgaGFuZDoKICQoaW50ZXJtZWRp
YXRlcykvaHRtbC9IVE1MRG9jdW1lbnQubyA6ICQoR0VOKQpAQCAtNjUsMTggKzY2LDIwIEBAICQo
aW50ZXJtZWRpYXRlcykvaHRtbC9IVE1MRG9jdW1lbnQubyA6ICQoR0VOKQogCiAjIEhUTUwgZW50
aXR5IG5hbWVzCiAKLUdFTiA6PSAkKGludGVybWVkaWF0ZXMpL2h0bWwvSFRNTEVudGl0eU5hbWVz
LmMKLSQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IGdwZXJmIC1hIC1MIEFOU0ktQyAtQyAt
RyAtYyAtbyAtdCAtayAnKicgLU4gZmluZEVudGl0eSAtRCAtcyAyICQ8ID4gJEAKK0dFTiA6PSAk
KGludGVybWVkaWF0ZXMpL2h0bWwvSFRNTEVudGl0eU5hbWVzSW1wbC5jcHAKKyQoR0VOKTogUFJJ
VkFURV9DVVNUT01fVE9PTCA9IHBlcmwgJChMT0NBTF9QQVRIKS9tYWtlLWhhc2gtdG9vbHMucGwg
ZW50aXRpZXMgJChkaXIgJEApICQoTE9DQUxfUEFUSCkvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3Bl
cmYKICQoR0VOKTogJChMT0NBTF9QQVRIKS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgorJChH
RU4pOiBTQ1JJUFQgOj0gJChMT0NBTF9QQVRIKS9tYWtlLWhhc2gtdG9vbHMucGwKIAkkKHRyYW5z
Zm9ybS1nZW5lcmF0ZWQtc291cmNlKQogTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4p
CiAKIAogIyBjb2xvciBuYW1lcwogCi1HRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9wbGF0Zm9ybS9D
b2xvckRhdGEuYwotJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gZ3BlcmYgLUNERW90IC1M
IEFOU0ktQyAtayAnKicgLU4gZmluZENvbG9yIC1EIC1zIDIgJDwgPiAkQAorR0VOIDo9ICQoaW50
ZXJtZWRpYXRlcykvcGxhdGZvcm0vQ29sb3JEYXRhSW1wbC5jcHAKKyQoR0VOKTogUFJJVkFURV9D
VVNUT01fVE9PTCA9IHBlcmwgJChMT0NBTF9QQVRIKS9tYWtlLWhhc2gtdG9vbHMucGwgY29sb3Jk
YXRhICQoZGlyICRAKSAkKExPQ0FMX1BBVEgpL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgogJChH
RU4pOiAkKExPQ0FMX1BBVEgpL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgorJChHRU4pOiBTQ1JJ
UFQgOj0gJChMT0NBTF9QQVRIKS9tYWtlLWhhc2gtdG9vbHMucGwKIAkkKHRyYW5zZm9ybS1nZW5l
cmF0ZWQtc291cmNlKQogTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzcwYzk4
Ny4uZTQ2NWRjMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw1MCBAQAorMjAxMC0wNS0xMSAgQW5kcmFzIEJlY3NpICA8YWJl
Y3NpQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWZhY3RvciBncGVyZiBjb2RlIGdlbmVyYXRpb24gYW5kIHVzYWdlIHRv
IGZpeCB0aGUgZGVidWcgYnVpbGQgd2l0aCBnY2M+NC40LgorICAgICAgICB3ZWJraXQub3JnL2Iv
MjkyNDQKKworICAgICAgICBHcGVyZiBjb2RlIGdlbmVyYXRpb24gaXMgZG9uZSBieSBhIG5ldyBz
Y3JpcHQgY2FsbGVkIFdlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsIG5vdywKKyAgICAgICAgYW5k
IHRoZSBnZW5lcmF0aW9uIG9wdGlvbnMgd2VyZSBtb3ZlZCBpbnRvIHRoZSBncGVyZiBmaWxlcywg
dG8gbWFrZSB0aGUgb3B0aW9ucyBtb3JlIHVuZGVyc3RhbmRhYmxlCisgICAgICAgIGFuZCB0aGUg
Z2VuZXJhdGlvbiBwcm9jZXNzIGxlc3MgcmVkdW5kYW50IGFjcm9zcyB0aGUgdmFyaW91cyBwb3J0
cy4KKyAgICAgICAgSGl0aGVydG8gZ3BlcmYgZ2VuZXJhdGVkIEMgY29kZSwgdGhlc2UgZmlsZXMg
d2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBDKysgZmlsZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAg
ICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGlu
IGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBuZXdlciBnY2MgdmVyc2lvbnMKKyAgICAgICAgYmVj
YXVzZSBvZiBhIG5ldyBmZWF0dXJlIG9mIGdjYywgd2hpY2ggZGlzYWJsZXMgQyBzdHlsZSBpbmxp
bmluZyBpbiBkZWJ1ZyBtb2RlLgorICAgICAgICBUaGUgbWFrZS1oYXNoLXRvb2xzLnBsIHNjcmlw
dCBsZXRzIGdwZXJmIGdlbmVyYXRlIEMrKyBjb2RlIGZvciBhbGwgZ3BlcmYgZmlsZXMgbm93LCB3
aGljaCBhcmUgY29tcGlsZWQKKyAgICAgICAgaW4gdGhlaXIgb3duIGNvbXBpbGF0aW9uIHVuaXQu
CisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoZSBnZW5lcmF0ZWQgY29k
ZSBpcyB3cmFwcGVkIGJlaGluZCBIYXNoVG9vbHMuaCwgc28gdGhlcmUgaXMgbm8gbmVlZAorICAg
ICAgICBmb3IgbXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQgQyBmaWxlcyB0byBhY2Nl
c3MgdGhlc2UgZnVuY3Rpb25zLgorCisgICAgICAgIE5vIG5ldyBmdW5jdGlvbmFsaXR5IGFkZGVk
LCBubyBuZXcgdGVzdHMgbmVlZGVkLgorCisgICAgICAgICogQW5kcm9pZC5kZXJpdmVkLm1rOgor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06
CisgICAgICAgICogV2ViQ29yZS5neXAvc2NyaXB0cy9ydWxlX2dwZXJmLnB5OgorICAgICAgICAq
IFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKiBjc3MvQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y3NzUHJvcGVydHlJRCk6CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUtl
eXdvcmRJRCk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAg
KiBjc3MvQ1NTUHJvcGVydHkuY3BwOgorICAgICAgICAqIGNzcy9DU1NTdHlsZURlY2xhcmF0aW9u
LmNwcDoKKyAgICAgICAgKiBjc3MvbWFrZXByb3AucGw6CisgICAgICAgICogY3NzL21ha2V2YWx1
ZXMucGw6CisgICAgICAgICogaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZjoKKyAgICAgICAgKiBo
dG1sL0hUTUxEb2N1bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3Bl
cmY6CisgICAgICAgICogaHRtbC9IVE1MVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKiBodG1sL1By
ZWxvYWRTY2FubmVyLmNwcDoKKyAgICAgICAgKiBtYWtlLWhhc2gtdG9vbHMucGw6IEFkZGVkLgor
ICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmY6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3IuY3BwOgorCiAyMDEwLTA1LTExICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW4ucG91
bGFpbkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJp
c3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzI2N2E2ZS4uODM5ZTMyOCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtNDYyLDEwICs0NjIsMTAgQEAgYWxsIDogXAogICAgIENTU0dyYW1tYXIuY3Bw
IFwKICAgICBDU1NQcm9wZXJ0eU5hbWVzLmggXAogICAgIENTU1ZhbHVlS2V5d29yZHMuaCBcCi0g
ICAgQ29sb3JEYXRhLmMgXAotICAgIERvY1R5cGVTdHJpbmdzLmNwcCBcCisgICAgQ29sb3JEYXRh
SW1wbC5jcHAgXAorICAgIERvY1R5cGVTdHJpbmdzSW1wbC5jcHAgXAogICAgIEhUTUxFbGVtZW50
RmFjdG9yeS5jcHAgXAotICAgIEhUTUxFbnRpdHlOYW1lcy5jIFwKKyAgICBIVE1MRW50aXR5TmFt
ZXNJbXBsLmNwcCBcCiAgICAgSFRNTE5hbWVzLmNwcCBcCiAgICAgV01MRWxlbWVudEZhY3Rvcnku
Y3BwIFwKICAgICBXTUxOYW1lcy5jcHAgXApAQCAtNTUzLDIyICs1NTMsMjIgQEAgQ1NTVmFsdWVL
ZXl3b3Jkcy5oIDogJChXRUJDT1JFX0NTU19WQUxVRV9LRVlXT1JEUykgY3NzL21ha2V2YWx1ZXMu
cGwKIAogIyBET0NUWVBFIHN0cmluZ3MKIAotRG9jVHlwZVN0cmluZ3MuY3BwIDogaHRtbC9Eb2NU
eXBlU3RyaW5ncy5ncGVyZgotCWdwZXJmIC1DRW90IC1MIEFOU0ktQyAtayAiKiIgLU4gZmluZERv
Y3R5cGVFbnRyeSAtRiAsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzLFB1YklESW5mbzo6ZUFs
bW9zdFN0YW5kYXJkcyAkPCA+ICRACitEb2NUeXBlU3RyaW5nc0ltcGwuY3BwIDogaHRtbC9Eb2NU
eXBlU3RyaW5ncy5ncGVyZiAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbAorCXBlcmwgJChX
ZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwgZG9jdHlwZSAuICQoV2ViQ29yZSkvaHRtbC9Eb2NU
eXBlU3RyaW5ncy5ncGVyZgogCiAjIC0tLS0tLS0tCiAKICMgSFRNTCBlbnRpdHkgbmFtZXMKIAot
SFRNTEVudGl0eU5hbWVzLmMgOiBodG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgotCWdwZXJmIC1h
IC1MIEFOU0ktQyAtQyAtRyAtYyAtbyAtdCAtayAnKicgLU4gZmluZEVudGl0eSAtRCAtcyAyICQ8
ID4gJEAKK0hUTUxFbnRpdHlOYW1lc0ltcGwuY3BwIDogaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3Bl
cmYgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwKKwlwZXJsICQoV2ViQ29yZSkvbWFrZS1o
YXNoLXRvb2xzLnBsIGVudGl0aWVzIC4gJChXZWJDb3JlKS9odG1sL0hUTUxFbnRpdHlOYW1lcy5n
cGVyZgogCiAjIC0tLS0tLS0tCiAKICMgY29sb3IgbmFtZXMKIAotQ29sb3JEYXRhLmMgOiBwbGF0
Zm9ybS9Db2xvckRhdGEuZ3BlcmYKLQlncGVyZiAtQ0RFb3QgLUwgQU5TSS1DIC1rICcqJyAtTiBm
aW5kQ29sb3IgLUQgLXMgMiAkPCA+ICRACitDb2xvckRhdGFJbXBsLmNwcCA6IHBsYXRmb3JtL0Nv
bG9yRGF0YS5ncGVyZiAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbAorCXBlcmwgJChXZWJD
b3JlKS9tYWtlLWhhc2gtdG9vbHMucGwgY29sb3JkYXRhIC4gJChXZWJDb3JlKS9wbGF0Zm9ybS9D
b2xvckRhdGEuZ3BlcmYKIAogIyAtLS0tLS0tLQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA0ODgyZTgyLi42M2QwNmMy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KQEAgLTc5LDkgKzc5LDkgQEAgd2ViY29yZWd0a19jcHBmbGFncyArPSBcCiAJLUkk
KHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAKIAogd2ViY29yZV9idWlsdF9u
b3NvdXJjZXMgKz0gXAotCURlcml2ZWRTb3VyY2VzL0RvY1R5cGVTdHJpbmdzLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvRG9jVHlwZVN0cmluZ3NJbXBsLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvdG9r
ZW5pemVyLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvQ29sb3JEYXRhLmMgXAorCURlcml2ZWRTb3Vy
Y2VzL0NvbG9yRGF0YUltcGwuY3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvd2Via2l0ZG9t
ZHVtbXkuYwogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXApAQCAtOTAsNyArOTAsNyBAQCB3
ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL0NTU1Byb3BlcnR5TmFt
ZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvQ1NTVmFsdWVLZXl3b3Jkcy5oIFwKIAlEZXJpdmVkU291
cmNlcy9IVE1MRWxlbWVudEZhY3RvcnkuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9IVE1MRW50aXR5
TmFtZXMuYyBcCisJRGVyaXZlZFNvdXJjZXMvSFRNTEVudGl0eU5hbWVzSW1wbC5jcHAgXAogCURl
cml2ZWRTb3VyY2VzL0hUTUxOYW1lcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTSFRNTEVsZW1l
bnRXcmFwcGVyRmFjdG9yeS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1VzZXJBZ2VudFN0eWxlU2hl
ZXRzLmggXApAQCAtMzY3NywyNyArMzY3NywzMCBAQCBEZXJpdmVkU291cmNlcy9DU1NQcm9wZXJ0
eU5hbWVzLmg6ICQoV0VCQ09SRV9DU1NfUFJPUEVSVFlfTkFNRVMpICQoV2ViQ29yZSkvY3NzLwog
CWlmIHNvcnQgJChXRUJDT1JFX0NTU19QUk9QRVJUWV9OQU1FUykgfCB1bmlxIC1kIHwgZ3JlcCAt
RSAnXlteI10nOyB0aGVuIGVjaG8gJ0R1cGxpY2F0ZSB2YWx1ZSEnOyBleGl0IDE7IGZpCiAJY2F0
ICQoV0VCQ09SRV9DU1NfUFJPUEVSVFlfTkFNRVMpID4gQ1NTUHJvcGVydHlOYW1lcy5pbgogCSQo
UEVSTCkgIiQoV2ViQ29yZSkvY3NzL21ha2Vwcm9wLnBsIgotCW12IENTU1Byb3BlcnR5TmFtZXMu
KiAkKEdFTlNPVVJDRVMpCisJbXYgQ1NTUHJvcGVydHlOYW1lcy5oICQoR0VOU09VUkNFUykKKwlt
diBDU1NQcm9wZXJ0eU5hbWVzSW1wbC5jcHAgJChHRU5TT1VSQ0VTKQorCW12IENTU1Byb3BlcnR5
TmFtZXNIYXNoLmhwcCAkKEdFTlNPVVJDRVMpCiAKICMgTG93ZXIgY2FzZSBhbGwgdGhlIHZhbHVl
cywgYXMgQ1NTIHZhbHVlcyBhcmUgY2FzZS1pbnNlbnNpdGl2ZQogRGVyaXZlZFNvdXJjZXMvQ1NT
VmFsdWVLZXl3b3Jkcy5oIDogJChXRUJDT1JFX0NTU19WQUxVRV9LRVlXT1JEUykgJChXZWJDb3Jl
KS9jc3MvbWFrZXZhbHVlcy5wbAogCSQoUEVSTCkgLW5lICdwcmludCBsYycgJChXRUJDT1JFX0NT
U19WQUxVRV9LRVlXT1JEUykgPiBDU1NWYWx1ZUtleXdvcmRzLmluCiAJaWYgc29ydCBDU1NWYWx1
ZUtleXdvcmRzLmluIHwgdW5pcSAtZCB8IGdyZXAgLUUgJ15bXiNdJzsgdGhlbiBlY2hvICdEdXBs
aWNhdGUgdmFsdWUhJzsgZXhpdCAxOyBmaQogCSQoUEVSTCkgIiQoV2ViQ29yZSkvY3NzL21ha2V2
YWx1ZXMucGwiCi0JbXYgQ1NTVmFsdWVLZXl3b3Jkcy4qICQoR0VOU09VUkNFUykKKwltdiBDU1NW
YWx1ZUtleXdvcmRzLmggJChHRU5TT1VSQ0VTKQorCW12IENTU1ZhbHVlS2V5d29yZHNJbXBsLmNw
cCAkKEdFTlNPVVJDRVMpCisJbXYgQ1NTVmFsdWVLZXl3b3Jkc0hhc2guaHBwICQoR0VOU09VUkNF
UykKIAogIyBET0NUWVBFIHN0cmluZ3MKLURlcml2ZWRTb3VyY2VzL0RvY1R5cGVTdHJpbmdzLmNw
cCA6ICQoV2ViQ29yZSkvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgotCSQoQU1fVl9HRU4pJChH
UEVSRikgLUNFb3QgLUkgLUwgQU5TSS1DIC1rICIqIiAtTiBmaW5kRG9jdHlwZUVudHJ5IC1GICxQ
dWJJREluZm86OmVBbG1vc3RTdGFuZGFyZHMsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzICQo
V2ViQ29yZSkvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZiA+ICRACitEZXJpdmVkU291cmNlcy9E
b2NUeXBlU3RyaW5nc0ltcGwuY3BwIDogJChXZWJDb3JlKS9odG1sL0RvY1R5cGVTdHJpbmdzLmdw
ZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBsCisJJChQRVJMKSAkKFdlYkNvcmUpL21h
a2UtaGFzaC10b29scy5wbCBkb2N0eXBlICQoR0VOU09VUkNFUykgJChXZWJDb3JlKS9odG1sL0Rv
Y1R5cGVTdHJpbmdzLmdwZXJmCiAKICMgSFRNTCBlbnRpdHkgbmFtZXMKLURlcml2ZWRTb3VyY2Vz
L0hUTUxFbnRpdHlOYW1lcy5jIDogJChXZWJDb3JlKS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVy
ZgotCSQoQU1fVl9HRU4pJChHUEVSRikgLWEgLUkgLUwgQU5TSS1DIC1DIC1HIC1jIC1vIC10IC1r
ICcqJyAtTiBmaW5kRW50aXR5IC1EIC1zIDIgXAotCSQoV2ViQ29yZSkvaHRtbC9IVE1MRW50aXR5
TmFtZXMuZ3BlcmYgPiAkQAorRGVyaXZlZFNvdXJjZXMvSFRNTEVudGl0eU5hbWVzSW1wbC5jcHAg
OiAkKFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1o
YXNoLXRvb2xzLnBsCisJJChQRVJMKSAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCBlbnRp
dGllcyAkKEdFTlNPVVJDRVMpICQoV2ViQ29yZSkvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYK
IAogIyBjb2xvciBuYW1lcwotRGVyaXZlZFNvdXJjZXMvQ29sb3JEYXRhLmM6ICQoV2ViQ29yZSkv
cGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCi0JJChBTV9WX0dFTikkKEdQRVJGKSAtQ0RFb3QgLUwg
QU5TSS1DIC1rICcqJyAtTiBmaW5kQ29sb3IgLUQgLXMgMiAkPCA+ICRACitEZXJpdmVkU291cmNl
cy9Db2xvckRhdGFJbXBsLmNwcDogJChXZWJDb3JlKS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYg
JChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwKKwkkKFBFUkwpICQoV2ViQ29yZSkvbWFrZS1o
YXNoLXRvb2xzLnBsIGNvbG9yZGF0YSAkKEdFTlNPVVJDRVMpICQoV2ViQ29yZSkvcGxhdGZvcm0v
Q29sb3JEYXRhLmdwZXJmCiAKICMgQ1NTIHRva2VuaXplcgogRGVyaXZlZFNvdXJjZXMvdG9rZW5p
emVyLmNwcCA6ICQoV2ViQ29yZSkvY3NzL3Rva2VuaXplci5mbGV4ICQoV2ViQ29yZSkvY3NzL21h
a2V0b2tlbml6ZXIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAg
Yi9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCmluZGV4IGFkZjZkOTQuLmI1NzdmNzIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApAQCAtMjg4LDcgKzI4OCw4IEBACiAgICAgICAgICAg
ICAnLi4vY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4nLAogICAgICAgICAgIF0sCiAgICAgICAgICAg
J291dHB1dHMnOiBbCi0gICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Vi
a2l0L0NTU1Byb3BlcnR5TmFtZXMuY3BwJywKKyAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1F
RElBVEVfRElSKS93ZWJraXQvQ1NTUHJvcGVydHlOYW1lcy5ocHAnLAorICAgICAgICAgICAgJzwo
U0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NQcm9wZXJ0eU5hbWVzSW1wbC5jcHAn
LAogICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NQcm9w
ZXJ0eU5hbWVzLmgnLAogICAgICAgICAgIF0sCiAgICAgICAgICAgJ2FjdGlvbic6IFsKQEAgLTMx
Myw3ICszMTQsOCBAQAogICAgICAgICAgICAgJy4uL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluJywK
ICAgICAgICAgICBdLAogICAgICAgICAgICdvdXRwdXRzJzogWwotICAgICAgICAgICAgJzwoU0hB
UkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NWYWx1ZUtleXdvcmRzLmMnLAorICAgICAg
ICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NWYWx1ZUtleXdvcmRz
LmhwcCcsCisgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L0NT
U1ZhbHVlS2V5d29yZHNJbXBsLmNwcCcsCiAgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJ
QVRFX0RJUikvd2Via2l0L0NTU1ZhbHVlS2V5d29yZHMuaCcsCiAgICAgICAgICAgXSwKICAgICAg
ICAgICAnYWN0aW9uJzogWwpAQCAtNTMwLDE4ICs1MzIsMTEgQEAKICAgICAgICAgewogICAgICAg
ICAgICdydWxlX25hbWUnOiAnZ3BlcmYnLAogICAgICAgICAgICdleHRlbnNpb24nOiAnZ3BlcmYn
LAotICAgICAgICAgICMgZ3BlcmYgb3V0cHV0IGlzIG9ubHkgZXZlciAjaW5jbHVkZWQgYnkgb3Ro
ZXIgc291cmNlIGZpbGVzLiAgQXMKLSAgICAgICAgICAjIHN1Y2gsIHByb2Nlc3Nfb3V0cHV0c19h
c19zb3VyY2VzIGlzIG9mZi4gIFNvbWUgZ3BlcmYgb3V0cHV0IGlzCi0gICAgICAgICAgIyAjaW5j
bHVkZWQgYXMgKi5jIGFuZCBzb21lIGFzICouY3BwLiAgU2luY2UgdGhlcmUncyBubyB3YXkgdG8g
dGVsbAotICAgICAgICAgICMgd2hpY2ggb25lIHdpbGwgYmUgbmVlZGVkIGluIGEgcnVsZSBkZWZp
bml0aW9uLCBkZWNsYXJlIGJvdGggYXMKLSAgICAgICAgICAjIG91dHB1dHMuICBUaGUgaGFybmVz
cyBzY3JpcHQgd2lsbCBnZW5lcmF0ZSBvbmUgZmlsZSBhbmQgY29weSBpdCB0bwotICAgICAgICAg
ICMgdGhlIG90aGVyLgogICAgICAgICAgICMKLSAgICAgICAgICAjIFRoaXMgcnVsZSBwbGFjZXMg
b3V0cHV0cyBpbiBTSEFSRURfSU5URVJNRURJQVRFX0RJUiBiZWNhdXNlIGdsdWUKLSAgICAgICAg
ICAjIG5lZWRzIGFjY2VzcyB0byBIVE1MRW50aXR5TmFtZXMuYy4KKyAgICAgICAgICAjIGdwZXJm
IG91dHB1dHMgYXJlIGdlbmVyYXRlZCBieSBXZWJDb3JlL21ha2UtaGFzaC10b29scy5wbAorICAg
ICAgICAgICMKICAgICAgICAgICAnb3V0cHV0cyc6IFsKLSAgICAgICAgICAgICc8KFNIQVJFRF9J
TlRFUk1FRElBVEVfRElSKS93ZWJraXQvPChSVUxFX0lOUFVUX1JPT1QpLmMnLAotICAgICAgICAg
ICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC88KFJVTEVfSU5QVVRfUk9PVCku
Y3BwJywKKyAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvPChS
VUxFX0lOUFVUX1JPT1QpSW1wbC5jcHAnLAogICAgICAgICAgIF0sCiAgICAgICAgICAgJ2FjdGlv
bic6IFsKICAgICAgICAgICAgICdweXRob24nLApAQCAtNTQ5LDcgKzU0NCw2IEBACiAgICAgICAg
ICAgICAnPChSVUxFX0lOUFVUX1BBVEgpJywKICAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1F
RElBVEVfRElSKS93ZWJraXQnCiAgICAgICAgICAgXSwKLSAgICAgICAgICAncHJvY2Vzc19vdXRw
dXRzX2FzX3NvdXJjZXMnOiAwLAogICAgICAgICB9LAogICAgICAgICAjIFJ1bGUgdG8gYnVpbGQg
Z2VuZXJhdGVkIEphdmFTY3JpcHQgKFY4KSBiaW5kaW5ncyBmcm9tIC5pZGwgc291cmNlLgogICAg
ICAgICB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX2Nz
c3Byb3BlcnR5bmFtZXMucHkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX2Nz
c3Byb3BlcnR5bmFtZXMucHkKaW5kZXggNjAzMTRkNy4uMDE5NmFlMyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9jc3Nwcm9wZXJ0eW5hbWVzLnB5CisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9hY3Rpb25fY3NzcHJvcGVydHluYW1lcy5weQpA
QCAtMzMsOCArMzMsOCBAQAogIwogIyB1c2FnZTogYWN0aW9uX21ha2VuYW1lcy5weSBPVVRQVVRT
IC0tIElOUFVUUwogIwotIyBFeGFjdGx5IHR3byBvdXRwdXRzIG11c3QgYmUgc3BlY2lmaWVkOiBh
IHBhdGggdG8gZWFjaCBvZiBDU1NQcm9wZXJ0eU5hbWVzLmNwcAotIyBhbmQgQ1NTUHJvcGVydHlO
YW1lcy5oLgorIyBFeGFjdGx5IHRocmVlIG91dHB1dHMgbXVzdCBiZSBzcGVjaWZpZWQ6IGEgcGF0
aCB0byBlYWNoIG9mIENTU1Byb3BlcnR5TmFtZXNJbXBsLmNwcCwKKyMgQ1NTUHJvcGVydHlOYW1l
cy5ocHAgYW5kIENTU1Byb3BlcnR5TmFtZXMuaC4KICMKICMgTXVsdGlwbGUgaW5wdXRzIG1heSBi
ZSBzcGVjaWZpZWQuIE9uZSBpbnB1dCBtdXN0IGhhdmUgYSBiYXNlbmFtZSBvZgogIyBtYWtlcHJv
cC5wbDsgdGhpcyBpcyB0YWtlbiBhcyB0aGUgcGF0aCB0byBtYWtlcHJvcC5wbC4gQWxsIG90aGVy
IGlucHV0cyBhcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9hY3Rp
b25fY3NzdmFsdWVrZXl3b3Jkcy5weSBiL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9hY3Rp
b25fY3NzdmFsdWVrZXl3b3Jkcy5weQppbmRleCBlYmY4OTViLi4zOThkNzRiIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX2Nzc3ZhbHVla2V5d29yZHMucHkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9jc3N2YWx1ZWtleXdvcmRz
LnB5CkBAIC0zNyw4ICszNyw4IEBACiAjCiAjIHVzYWdlOiBhY3Rpb25fY3NzdmFsdWVrZXl3b3Jk
cy5weSBPVVRQVVRTIC0tIElOUFVUUwogIwotIyBFeGFjdGx5IHR3byBvdXRwdXRzIG11c3QgYmUg
c3BlY2lmaWVkOiBhIHBhdGggdG8gZWFjaCBvZiBDU1NWYWx1ZUtleXdvcmRzLmMKLSMgYW5kIENT
U1ZhbHVlS2V5d29yZHMuaC4KKyMgRXhhY3RseSB0aHJlZSBvdXRwdXRzIG11c3QgYmUgc3BlY2lm
aWVkOiBhIHBhdGggdG8gZWFjaCBvZiBDU1NWYWx1ZUtleXdvcmRzSW1wbC5jcHAsCisjIENTU1Zh
bHVlS2V5d29yZHMuaHBwLCBhbmQgQ1NTVmFsdWVLZXl3b3Jkcy5oLgogIwogIyBNdWx0aXBsZSBp
bnB1dHMgbWF5IGJlIHNwZWNpZmllZC4gT25lIGlucHV0IG11c3QgaGF2ZSBhIGJhc2VuYW1lIG9m
CiAjIG1ha2V2YWx1ZXMucGw7IHRoaXMgaXMgdGFrZW4gYXMgdGhlIHBhdGggdG8gbWFrZXZhbHVl
cy5wbC4gQWxsIG90aGVyIGlucHV0cwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9z
Y3JpcHRzL3J1bGVfZ3BlcmYucHkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvcnVsZV9n
cGVyZi5weQppbmRleCBlNzZlZDZmLi5jZWVlYWIzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwL3NjcmlwdHMvcnVsZV9ncGVyZi5weQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwL3Nj
cmlwdHMvcnVsZV9ncGVyZi5weQpAQCAtNDAsNyArNDAsNiBAQAogIyB0byAuYyB3aGVuIGRvbmUu
CiAKIGltcG9ydCBwb3NpeHBhdGgKLWltcG9ydCBzaHV0aWwKIGltcG9ydCBzdWJwcm9jZXNzCiBp
bXBvcnQgc3lzCiAKQEAgLTUwLDM2ICs0OSwyMyBAQCBpbnB1dEZpbGUgPSBzeXMuYXJndlsxXQog
b3V0cHV0RGlyID0gc3lzLmFyZ3ZbMl0KIAogZ3BlcmZDb21tYW5kcyA9IHsKLSAgICAnRG9jVHlw
ZVN0cmluZ3MuZ3BlcmYnOiBbCi0gICAgICAgICctQ0VvdCcsICctTCcsICdBTlNJLUMnLCAnLWsq
JywgJy1OJywgJ2ZpbmREb2N0eXBlRW50cnknLAotICAgICAgICAnLUYnLCAnLFB1YklESW5mbzo6
ZUFsbW9zdFN0YW5kYXJkcyxQdWJJREluZm86OmVBbG1vc3RTdGFuZGFyZHMnCi0gICAgXSwKLSAg
ICAnSFRNTEVudGl0eU5hbWVzLmdwZXJmJzogWwotICAgICAgICAnLWEnLCAnLUwnLCAnQU5TSS1D
JywgJy1DJywgJy1HJywgJy1jJywgJy1vJywgJy10JywgJy1rKicsCi0gICAgICAgICctTicsICdm
aW5kRW50aXR5JywgJy1EJywgJy1zJywgJzInCi0gICAgXSwKLSAgICAnQ29sb3JEYXRhLmdwZXJm
JzogWwotICAgICAgICAnLUNERW90JywgJy1MJywgJ0FOU0ktQycsICctayonLCAnLU4nLCAnZmlu
ZENvbG9yJywgJy1EJywgJy1zJywgJzInCi0gICAgXSwKKyAgICAnRG9jVHlwZVN0cmluZ3MuZ3Bl
cmYnOiBkb2N0eXBlLAorICAgICdIVE1MRW50aXR5TmFtZXMuZ3BlcmYnOiBlbnRpdGllcywKKyAg
ICAnQ29sb3JEYXRhLmdwZXJmJzogY29sb3JkYXRhLAogfQogCiBpbnB1dE5hbWUgPSBwb3NpeHBh
dGguYmFzZW5hbWUoaW5wdXRGaWxlKQogYXNzZXJ0IGlucHV0TmFtZSBpbiBncGVyZkNvbW1hbmRz
CiAKIChpbnB1dFJvb3QsIGlucHV0RXh0KSA9IHBvc2l4cGF0aC5zcGxpdGV4dChpbnB1dE5hbWUp
Ci1vdXRwdXRDcHAgPSBwb3NpeHBhdGguam9pbihvdXRwdXREaXIsIGlucHV0Um9vdCArICcuY3Bw
JykKIAotI2NvbW1hbmQgPSBbJ2dwZXJmJywgJy0tb3V0cHV0LWZpbGUnLCBvdXRwdXRDcHBdCi1j
b21tYW5kID0gWydncGVyZiddCi1jb21tYW5kLmV4dGVuZChncGVyZkNvbW1hbmRzW2lucHV0TmFt
ZV0pCitjb21tYW5kID0gWydwZXJsJ10KK2NvbW1hbmQuYXBwZW5kKGdwZXJmQ29tbWFuZHNbaW5w
dXROYW1lXSkKK2NvbW1hbmQuYXBwZW5kKG91dHB1dERpcikKIGNvbW1hbmQuYXBwZW5kKGlucHV0
RmlsZSkKIAotb2ZpbGUgPSBvcGVuKG91dHB1dENwcCwgJ3cnKQotCiAjIERvIGl0LiBjaGVja19j
YWxsIGlzIG5ldyBpbiAyLjUsIHNvIHNpbXVsYXRlIGl0cyBiZWhhdmlvciB3aXRoIGNhbGwgYW5k
CiAjIGFzc2VydC4KLXJldHVybkNvZGUgPSBzdWJwcm9jZXNzLmNhbGwoY29tbWFuZCwgc3Rkb3V0
PW9maWxlLmZpbGVubygpKQorcmV0dXJuQ29kZSA9IHN1YnByb2Nlc3MuY2FsbChjb21tYW5kKQog
YXNzZXJ0IHJldHVybkNvZGUgPT0gMAogCi1vdXRwdXRDID0gcG9zaXhwYXRoLmpvaW4ob3V0cHV0
RGlyLCBpbnB1dFJvb3QgKyAnLmMnKQotc2h1dGlsLmNvcHlmaWxlKG91dHB1dENwcCwgb3V0cHV0
QykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJp
CmluZGV4IGVlNjk5OTQuLjhmNGEzZDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcmkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtMTc3LDcgKzE3Nyw3IEBAIFhMSU5LX05BTUVT
ID0gJCRQV0Qvc3ZnL3hsaW5rYXR0cnMuaW4KIAogVE9LRU5JWkVSID0gJCRQV0QvY3NzL3Rva2Vu
aXplci5mbGV4CiAKLURPQ1RZUEVTVFJJTkdTID0gJCRQV0QvaHRtbC9Eb2NUeXBlU3RyaW5ncy5n
cGVyZgorRE9DVFlQRVNUUklOR1NfR1BFUkYgPSAkJFBXRC9odG1sL0RvY1R5cGVTdHJpbmdzLmdw
ZXJmCiAKIENTU0JJU09OID0gJCRQV0QvY3NzL0NTU0dyYW1tYXIueQogCkBAIC0xODksNyArMTg5
LDcgQEAgWE1MTlNfTkFNRVMgPSAkJFBXRC94bWwveG1sbnNhdHRycy5pbgogCiBFTlRJVElFU19H
UEVSRiA9ICQkUFdEL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCiAKLUNPTE9SREFUX0dQRVJG
ID0gJCRQV0QvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCitDT0xPUkRBVEFfR1BFUkYgPSAkJFBX
RC9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKIAogV0FMRE9DU1NQUk9QUyA9ICQkUFdEL2Nzcy9D
U1NQcm9wZXJ0eU5hbWVzLmluCiAKQEAgLTY0NiwxNyArNjQ2LDE3IEBAIHhsaW5rbmFtZXMuaW5w
dXQgPSBYTElOS19OQU1FUwogYWRkRXh0cmFDb21waWxlcih4bGlua25hbWVzKQogCiAjIEdFTkVS
QVRPUiA2LUE6Ci1jc3Nwcm9wcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9
LyR7UU1BS0VfRklMRV9CQVNFfS5jcHAKLWNzc3Byb3BzLmlucHV0ID0gV0FMRE9DU1NQUk9QUwog
Y3NzcHJvcHMud2tTY3JpcHQgPSAkJFBXRC9jc3MvbWFrZXByb3AucGwKK2Nzc3Byb3BzLm91dHB1
dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lc0ltcGwuY3Bw
Citjc3Nwcm9wcy5pbnB1dCA9IFdBTERPQ1NTUFJPUFMKIGNzc3Byb3BzLmNvbW1hbmRzID0gcGVy
bCAtbmUgXCJwcmludCBsY1wiICR7UU1BS0VfRklMRV9OQU1FfSAkJHtEQVNIQk9BUkRTVVBQT1JU
Q1NTUFJPUEVSVElFU30gJCR7RVhUUkFDU1NQUk9QRVJUSUVTfSA+ICQke1dDX0dFTkVSQVRFRF9T
T1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9LmluICYmIGNkICQkV0NfR0VORVJBVEVEX1NP
VVJDRVNfRElSICYmIHBlcmwgJCRjc3Nwcm9wcy53a1NjcmlwdCAmJiAkKERFTF9GSUxFKSAke1FN
QUtFX0ZJTEVfQkFTRX0uaW4gJHtRTUFLRV9GSUxFX0JBU0V9LmdwZXJmCiBjc3Nwcm9wcy5kZXBl
bmRzID0gJHtRTUFLRV9GSUxFX05BTUV9ICQke0RBU0hCT0FSRFNVUFBPUlRDU1NQUk9QRVJUSUVT
fSAkJHtFWFRSQUNTU1BST1BFUlRJRVN9CiBhZGRFeHRyYUNvbXBpbGVyKGNzc3Byb3BzKQogCiAj
IEdFTkVSQVRPUiA2LUI6Ci1jc3N2YWx1ZXMub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJD
RVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uYwotY3NzdmFsdWVzLmlucHV0ID0gV0FMRE9DU1NW
QUxVRVMKIGNzc3ZhbHVlcy53a1NjcmlwdCA9ICQkUFdEL2Nzcy9tYWtldmFsdWVzLnBsCitjc3N2
YWx1ZXMub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9DU1NWYWx1ZUtleXdv
cmRzSW1wbC5jcHAKK2Nzc3ZhbHVlcy5pbnB1dCA9IFdBTERPQ1NTVkFMVUVTCiBjc3N2YWx1ZXMu
Y29tbWFuZHMgPSBwZXJsIC1uZSBcInByaW50IGxjXCIgJHtRTUFLRV9GSUxFX05BTUV9ICQkRVhU
UkFDU1NWQUxVRVMgPiAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9LyR7UU1BS0VfRklMRV9C
QVNFfS5pbiAmJiBjZCAkJFdDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUiAmJiBwZXJsICQkY3NzdmFs
dWVzLndrU2NyaXB0ICYmICQoREVMX0ZJTEUpICR7UU1BS0VfRklMRV9CQVNFfS5pbiAke1FNQUtF
X0ZJTEVfQkFTRX0uZ3BlcmYKIGNzc3ZhbHVlcy5kZXBlbmRzID0gJHtRTUFLRV9GSUxFX05BTUV9
ICQke0VYVFJBQ1NTVkFMVUVTfQogY3NzdmFsdWVzLmNsZWFuID0gJHtRTUFLRV9GSUxFX09VVH0g
JHtRTUFLRV9WQVJfV0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0u
aApAQCAtNzEyLDI0ICs3MTIsMjggQEAgeG1sbmFtZXMud2tTY3JpcHQgPSAkJFBXRC9kb20vbWFr
ZV9uYW1lcy5wbAogeG1sbmFtZXMuY29tbWFuZHMgPSBwZXJsIC1JJCRQV0QvYmluZGluZ3Mvc2Ny
aXB0cyAkJHhtbG5hbWVzLndrU2NyaXB0IC0tYXR0cnMgJCRQV0QveG1sL3htbGF0dHJzLmluIC0t
cHJlcHJvY2Vzc29yIFwiJCR7UU1BS0VfTU9DfSAtRVwiIC0tb3V0cHV0RGlyICQkV0NfR0VORVJB
VEVEX1NPVVJDRVNfRElSCiBhZGRFeHRyYUNvbXBpbGVyKHhtbG5hbWVzKQogCi0jIEdFTkVSQVRP
UiA4LUE6Ci1lbnRpdGllcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0hU
TUxFbnRpdHlOYW1lcy5jCisjIEdFTkVSQVRPUiA4LWVudGl0aWVzOgorZW50aXRpZXMud2tTY3Jp
cHQgPSAkJFBXRC9tYWtlLWhhc2gtdG9vbHMucGwKK2VudGl0aWVzLm91dHB1dCA9ICQke1dDX0dF
TkVSQVRFRF9TT1VSQ0VTX0RJUn0vSFRNTEVudGl0eU5hbWVzSW1wbC5jcHAKIGVudGl0aWVzLmlu
cHV0ID0gRU5USVRJRVNfR1BFUkYKLWVudGl0aWVzLmNvbW1hbmRzID0gZ3BlcmYgLWEgLUwgQU5T
SS1DIC1DIC1HIC1jIC1vIC10IC0taW5jbHVkZXMgLS1rZXktcG9zaXRpb25zPSIqIiAtTiBmaW5k
RW50aXR5IC1EIC1zIDIgPCAkJFBXRC9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZiA+ICQke1dD
X0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vSFRNTEVudGl0eU5hbWVzLmMKK2VudGl0aWVzLmNvbW1h
bmRzID0gcGVybCAkJGVudGl0aWVzLndrU2NyaXB0IGVudGl0aWVzICQke1dDX0dFTkVSQVRFRF9T
T1VSQ0VTX0RJUn0gJCRFTlRJVElFU19HUEVSRgogZW50aXRpZXMuY2xlYW4gPSAke1FNQUtFX0ZJ
TEVfT1VUfQogYWRkRXh0cmFDb21waWxlcihlbnRpdGllcykKIAotIyBHRU5FUkFUT1IgOC1COgot
ZG9jdHlwZXN0cmluZ3Mub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FN
QUtFX0ZJTEVfQkFTRX0uY3BwCi1kb2N0eXBlc3RyaW5ncy5pbnB1dCA9IERPQ1RZUEVTVFJJTkdT
Ci1kb2N0eXBlc3RyaW5ncy5jb21tYW5kcyA9IGdwZXJmIC1DRW90IC1MIEFOU0ktQyAtLWluY2x1
ZGVzIC0ta2V5LXBvc2l0aW9ucz0iKiIgLU4gZmluZERvY3R5cGVFbnRyeSAtRiAsUHViSURJbmZv
OjplQWxtb3N0U3RhbmRhcmRzLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyA8ICR7UU1BS0Vf
RklMRV9OQU1FfSA+PiAke1FNQUtFX0ZJTEVfT1VUfQotZG9jdHlwZXN0cmluZ3MuY2xlYW4gPSAk
e1FNQUtFX0ZJTEVfT1VUfQotYWRkRXh0cmFDb21waWxlcihkb2N0eXBlc3RyaW5ncykKLQotIyBH
RU5FUkFUT1IgOC1DOgotY29sb3JkYXRhLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUn0vQ29sb3JEYXRhLmMKLWNvbG9yZGF0YS5pbnB1dCA9IENPTE9SREFUX0dQRVJGCi1jb2xv
cmRhdGEuY29tbWFuZHMgPSBncGVyZiAtQ0RFb3QgLUwgQU5TSS1DIC0taW5jbHVkZXMgLS1rZXkt
cG9zaXRpb25zPSIqIiAtTiBmaW5kQ29sb3IgLUQgLXMgMiA8ICR7UU1BS0VfRklMRV9OQU1FfSA+
PiAke1FNQUtFX0ZJTEVfT1VUfQorIyBHRU5FUkFUT1IgOC1kb2N0eXBlOgorZG9jdHlwZS53a1Nj
cmlwdCA9ICQkUFdEL21ha2UtaGFzaC10b29scy5wbAorZG9jdHlwZS5vdXRwdXQgPSAkJHtXQ19H
RU5FUkFURURfU09VUkNFU19ESVJ9L0RvY1R5cGVTdHJpbmdzSW1wbC5jcHAKK2RvY3R5cGUuaW5w
dXQgPSBET0NUWVBFU1RSSU5HU19HUEVSRgorZG9jdHlwZS5jb21tYW5kcyA9IHBlcmwgJCRkb2N0
eXBlLndrU2NyaXB0IGRvY3R5cGUgJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfSAkJERPQ1RZ
UEVTVFJJTkdTX0dQRVJGCitkb2N0eXBlLmNsZWFuID0gJHtRTUFLRV9GSUxFX09VVH0KK2FkZEV4
dHJhQ29tcGlsZXIoZG9jdHlwZSkKKworIyBHRU5FUkFUT1IgOC1jb2xvcmRhdGE6Citjb2xvcmRh
dGEud2tTY3JpcHQgPSAkJFBXRC9tYWtlLWhhc2gtdG9vbHMucGwKK2NvbG9yZGF0YS5vdXRwdXQg
PSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0NvbG9yRGF0YUltcGwuY3BwCitjb2xvcmRh
dGEuaW5wdXQgPSBDT0xPUkRBVEFfR1BFUkYKK2NvbG9yZGF0YS5jb21tYW5kcyA9IHBlcmwgJCRj
b2xvcmRhdGEud2tTY3JpcHQgY29sb3JkYXRhICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0g
JCRDT0xPUkRBVEFfR1BFUkYKK2NvbG9yZGF0YS5jbGVhbiA9ICR7UU1BS0VfRklMRV9PVVR9CiBh
ZGRFeHRyYUNvbXBpbGVyKGNvbG9yZGF0YSkKIAogIyBHRU5FUkFUT1IgOToKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYThmMWIzYi4uM2E1MzYwZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ5MDMsOCArNDkw
MywxMyBAQAogCQlFMUYxRTgzMDBDM0MyQkI5MDA2REIzOTEgLyogWFNMVEV4dGVuc2lvbnMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRjFFODJFMEMz
QzJCQjkwMDZEQjM5MSAvKiBYU0xURXh0ZW5zaW9ucy5oICovOyB9OwogCQlFMUZGNTdBMzBGMDEy
NTVCMDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjU3QTIwRjAxMjU1QjAwODkxRUJCIC8qIFRocmVh
ZEdsb2JhbERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFMUZGNTdBNjBGMDEyNTZCMDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZGNTdBNTBG
MDEyNTZCMDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5jcHAgKi87IH07CisJCUU0MDZGM0ZD
MTE5ODMxM0MwMDlENTlENiAvKiBDb2xvckRhdGFJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDZGM0ZCMTE5ODMwN0QwMDlENTlENiAvKiBD
b2xvckRhdGFJbXBsLmNwcCAqLzsgfTsKKwkJRTQwNkYzRkQxMTk4MzEzRjAwOUQ1OUQ2IC8qIERv
Y1R5cGVTdHJpbmdzSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDA2RjNGQTExOTgzMDREMDA5RDU5RDYgLyogRG9jVHlwZVN0cmluZ3NJbXBs
LmNwcCAqLzsgfTsKKwkJRTQwNkY0MDMxMTk4MzJBNTAwOUQ1OUQ2IC8qIEhUTUxFbnRpdHlOYW1l
c0ltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTQwNkY0MDIxMTk4MzI5QTAwOUQ1OUQ2IC8qIEhUTUxFbnRpdHlOYW1lc0ltcGwuY3BwICovOyB9
OwogCQlFNDE1RjE2OTBEOUExNjVEMDAzM0NFOTcgLyogRE9NRWxlbWVudFRpbWVDb250cm9sLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDE1RjE2ODBE
OUExNjVEMDAzM0NFOTcgLyogRE9NRWxlbWVudFRpbWVDb250cm9sLmggKi87IH07CiAJCUU0MTVG
MTg0MEQ5QTFBODMwMDMzQ0U5NyAvKiBFbGVtZW50VGltZUNvbnRyb2wuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MTVGMTgzMEQ5QTFBODMwMDMzQ0U5
NyAvKiBFbGVtZW50VGltZUNvbnRyb2wuaCAqLzsgfTsKKwkJRTQxRUEwM0ExMTk4Mzc3MzAwNzEw
QkM1IC8qIENTU1Byb3BlcnR5TmFtZXNJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MUVBMDM4MTE5ODM2REIwMDcxMEJDNSAvKiBDU1NQcm9w
ZXJ0eU5hbWVzSW1wbC5jcHAgKi87IH07CisJCUU0MUVBMDNCMTE5ODM3NzkwMDcxMEJDNSAvKiBD
U1NWYWx1ZUtleXdvcmRzSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNDFFQTAzOTExOTgzNzQ5MDA3MTBCQzUgLyogQ1NTVmFsdWVLZXl3b3Jk
c0ltcGwuY3BwICovOyB9OwogCQlFNDQ2MTNBMTBDRDYzMzEwMDBGQURBNzUgLyogSFRNTEF1ZGlv
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNDQ2MTM4RjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTEF1ZGlvRWxlbWVudC5jcHAgKi87IH07
CiAJCUU0NDYxM0EyMENENjMzMTAwMEZBREE3NSAvKiBIVE1MQXVkaW9FbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDQ2MTM5MDBDRDYzMzEw
MDBGQURBNzUgLyogSFRNTEF1ZGlvRWxlbWVudC5oICovOyB9OwogCQlFNDQ2MTNBNDBDRDYzMzEw
MDBGQURBNzUgLyogSFRNTE1lZGlhRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDQ2MTM5MjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTE1l
ZGlhRWxlbWVudC5jcHAgKi87IH07CkBAIC02Nzg0LDE4ICs2Nzg5LDEzIEBACiAJCTY1NjUzRjJB
MEQ5NzI3RDIwMENBOTcyMyAvKiBTVkdBbHRHbHlwaEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQWx0R2x5cGhFbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTNGMkIwRDk3MjdEMjAwQ0E5NzIzIC8qIFNWR0FsdEds
eXBoRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbHRHbHlw
aEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTNGMkMwRDk3MjdE
MjAwQ0E5NzIzIC8qIFNWR0FsdEdseXBoRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU1ZHQWx0R2x5cGhFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NjU2NTgwRUQwOUQxMkIyMDAwMEU2MUQ3IC8qIENTU1Byb3BlcnR5TmFtZXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1Byb3BlcnR5TmFtZXMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODBFRTA5RDEyQjIwMDAwRTYxRDcgLyogQ1NT
UHJvcGVydHlOYW1lcy5ncGVyZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ1NTUHJvcGVydHlO
YW1lcy5ncGVyZjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgwRUYwOUQxMkIy
MDAwMEU2MUQ3IC8qIENTU1Byb3BlcnR5TmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENTU1Byb3BlcnR5TmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNjU2NTgxMUMwOUQxMkRCMjAwMEU2MUQ3IC8qIERvY1R5cGVTdHJpbmdzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2NUeXBlU3RyaW5ncy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MTQ0MDlEMTMwNDMwMDBFNjFENyAvKiBDU1NH
cmFtbWFyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NHcmFt
bWFyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNjU2NTgxNDYwOUQxMzA0MzAw
MEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsg
cGF0aCA9IENTU1ZhbHVlS2V5d29yZHMuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NjU2NTgxNDcwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMuZ3BlcmYgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IENTU1ZhbHVlS2V5d29yZHMuZ3BlcmY7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTY1NjU4MTQ4MDlEMTMwNDMwMDBFNjFENyAvKiBDU1NWYWx1ZUtleXdv
cmRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NWYWx1ZUtleXdvcmRz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTY1NjU4MTRCMDlEMTMwNDMwMDBFNjFE
NyAvKiBIVE1MRW50aXR5TmFtZXMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9
IEhUTUxFbnRpdHlOYW1lcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODE0
QzA5RDEzMDQzMDAwRTYxRDcgLyogdG9rZW5pemVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSB0b2tlbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk2NTY1ODFBQzA5RDE0RUU2MDAwRTYxRDcgLyogQ2hhcnNldERhdGEuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENoYXJzZXREYXRhLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNjU2NTgxQUQwOUQxNEVFNjAwMEU2MUQ3IC8qIENvbG9yRGF0
YS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gQ29sb3JEYXRhLmM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MUFFMDlEMTRFRTYwMDBFNjFENyAvKiBVc2Vy
QWdlbnRTdHlsZVNoZWV0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNl
ckFnZW50U3R5bGVTaGVldHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgx
QUYwOUQxNEVFNjAwMEU2MUQ3IC8qIFVzZXJBZ2VudFN0eWxlU2hlZXRzRGF0YS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlckFnZW50U3R5bGVTaGVldHNEYXRh
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgxRTYwOUQxNTA4RDAwMEU2
MUQ3IC8qIFNWR0VsZW1lbnRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTVkdFbGVtZW50RmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMDM2NSw5ICsxMDM2NSwxNCBAQAogCQlFMUYxRTgyRTBDM0MyQkI5MDA2REIzOTEg
LyogWFNMVEV4dGVuc2lvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFNM
VEV4dGVuc2lvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjU3QTIwRjAx
MjU1QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVGhyZWFkR2xvYmFsRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMUZGNTdBNTBGMDEyNTZCMDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHJlYWRHbG9iYWxEYXRhLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTQwNkYzRkExMTk4MzA0RDAwOUQ1OUQ2IC8q
IERvY1R5cGVTdHJpbmdzSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBEb2NUeXBlU3RyaW5nc0ltcGwuY3BwOyBwYXRoID0gLi4vV2ViS2l0QnVpbGQvUmVsZWFz
ZS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RvY1R5cGVTdHJpbmdzSW1wbC5jcHA7IHNvdXJjZVRy
ZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJRTQwNkYzRkIxMTk4MzA3RDAwOUQ1OUQ2IC8qIENvbG9y
RGF0YUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ29sb3JE
YXRhSW1wbC5jcHA7IHBhdGggPSAuLi9XZWJLaXRCdWlsZC9SZWxlYXNlL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvQ29sb3JEYXRhSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsK
KwkJRTQwNkY0MDIxMTk4MzI5QTAwOUQ1OUQ2IC8qIEhUTUxFbnRpdHlOYW1lc0ltcGwuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSFRNTEVudGl0eU5hbWVzSW1wbC5j
cHA7IHBhdGggPSAuLi9XZWJLaXRCdWlsZC9SZWxlYXNlL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SFRNTEVudGl0eU5hbWVzSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJ
RTQxNUYxMEMwRDlBMDU4NzAwMzNDRTk3IC8qIEVsZW1lbnRUaW1lQ29udHJvbC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gRWxlbWVudFRpbWVDb250cm9sLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTQxNUYxNjgwRDlBMTY1RDAwMzNDRTk3IC8qIERPTUVsZW1lbnRUaW1l
Q29udHJvbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01FbGVtZW50VGlt
ZUNvbnRyb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxNUYxODMwRDlBMUE4
MzAwMzNDRTk3IC8qIEVsZW1lbnRUaW1lQ29udHJvbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBFbGVtZW50VGltZUNvbnRyb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTQxRUEwMzgxMTk4MzZEQjAwNzEwQkM1IC8qIENTU1Byb3BlcnR5TmFtZXNJbXBsLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENTU1Byb3BlcnR5TmFtZXNJ
bXBsLmNwcDsgcGF0aCA9IC4uL1dlYktpdEJ1aWxkL1JlbGVhc2UvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9DU1NQcm9wZXJ0eU5hbWVzSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsg
fTsKKwkJRTQxRUEwMzkxMTk4Mzc0OTAwNzEwQkM1IC8qIENTU1ZhbHVlS2V5d29yZHNJbXBsLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENTU1ZhbHVlS2V5d29yZHNJ
bXBsLmNwcDsgcGF0aCA9IC4uL1dlYktpdEJ1aWxkL1JlbGVhc2UvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9DU1NWYWx1ZUtleXdvcmRzSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsg
fTsKIAkJRTQ0NjEzOEYwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxBdWRpb0VsZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEF1ZGlvRWxlbWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0NDYxMzkwMENENjMzMTAwMEZBREE3NSAv
KiBIVE1MQXVkaW9FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhU
TUxBdWRpb0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ0NjEzOTEw
Q0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxBdWRpb0VsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IEhUTUxBdWRpb0VsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTE2MzQsMjAgKzExNjM5LDIwIEBACiAJCTY1NjU4MEVDMDlEMTJCMjAwMDBFNjFENyAvKiBE
ZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCUU0MUVBMDM5MTE5ODM3NDkwMDcxMEJDNSAvKiBDU1NWYWx1ZUtleXdvcmRzSW1wbC5j
cHAgKi8sCisJCQkJRTQxRUEwMzgxMTk4MzZEQjAwNzEwQkM1IC8qIENTU1Byb3BlcnR5TmFtZXNJ
bXBsLmNwcCAqLywKKwkJCQlFNDA2RjQwMjExOTgzMjlBMDA5RDU5RDYgLyogSFRNTEVudGl0eU5h
bWVzSW1wbC5jcHAgKi8sCisJCQkJRTQwNkYzRkIxMTk4MzA3RDAwOUQ1OUQ2IC8qIENvbG9yRGF0
YUltcGwuY3BwICovLAorCQkJCUU0MDZGM0ZBMTE5ODMwNEQwMDlENTlENiAvKiBEb2NUeXBlU3Ry
aW5nc0ltcGwuY3BwICovLAogCQkJCTY1NjU4MUFDMDlEMTRFRTYwMDBFNjFENyAvKiBDaGFyc2V0
RGF0YS5jcHAgKi8sCi0JCQkJNjU2NTgxQUQwOUQxNEVFNjAwMEU2MUQ3IC8qIENvbG9yRGF0YS5j
ICovLAogCQkJCTY1NjU4MTQ0MDlEMTMwNDMwMDBFNjFENyAvKiBDU1NHcmFtbWFyLmNwcCAqLywK
IAkJCQk2NTBGNTNEQjA5RDE1RERBMDBDOUIwQzggLyogQ1NTR3JhbW1hci5oICovLAotCQkJCTY1
NjU4MEVEMDlEMTJCMjAwMDBFNjFENyAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCAqLywKIAkJCQk2
NTY1ODBFRTA5RDEyQjIwMDAwRTYxRDcgLyogQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiAqLywKIAkJ
CQk2NTY1ODBFRjA5RDEyQjIwMDAwRTYxRDcgLyogQ1NTUHJvcGVydHlOYW1lcy5oICovLAotCQkJ
CTY1NjU4MTQ2MDlEMTMwNDMwMDBFNjFENyAvKiBDU1NWYWx1ZUtleXdvcmRzLmMgKi8sCiAJCQkJ
NjU2NTgxNDcwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMuZ3BlcmYgKi8sCiAJ
CQkJNjU2NTgxNDgwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMuaCAqLywKLQkJ
CQk2NTY1ODExQzA5RDEyREIyMDAwRTYxRDcgLyogRG9jVHlwZVN0cmluZ3MuY3BwICovLAogCQkJ
CUExN0M4MTIwMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuY3BwICovLAog
CQkJCUExN0M4MTIxMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuaCAqLywK
LQkJCQk2NTY1ODE0QjA5RDEzMDQzMDAwRTYxRDcgLyogSFRNTEVudGl0eU5hbWVzLmMgKi8sCiAJ
CQkJQThEMDZCMzgwQTI2NURDRDAwNUU3MjAzIC8qIEhUTUxOYW1lcy5jcHAgKi8sCiAJCQkJQThE
MDZCMzcwQTI2NURDRDAwNUU3MjAzIC8qIEhUTUxOYW1lcy5oICovLAogCQkJCTkzOEU2NUY2MDlG
MDk4NUQwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwICovLApAQCAt
MjE0MDUsNiArMjE0MTAsMTEgQEAKIAkJCQlDNUY0RjQwQzExOTMwNkFDMDBGREZBREQgLyogSlNJ
REJSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1RjRGNDEwMTE5MzA2QzAwMEZERkFE
RCAvKiBKU0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU5
NTY2NzgxMTkzMjRDNjAwRkRDRTQ3IC8qIEpTSURCUmVxdWVzdEN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlFNDA2RjNGQzExOTgzMTNDMDA5RDU5RDYgLyogQ29sb3JEYXRhSW1wbC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlFNDA2RjNGRDExOTgzMTNGMDA5RDU5RDYgLyogRG9jVHlwZVN0
cmluZ3NJbXBsLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUU0MDZGNDAzMTE5ODMyQTUwMDlENTlE
NiAvKiBIVE1MRW50aXR5TmFtZXNJbXBsLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUU0MUVBMDNB
MTE5ODM3NzMwMDcxMEJDNSAvKiBDU1NQcm9wZXJ0eU5hbWVzSW1wbC5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlFNDFFQTAzQjExOTgzNzc5MDA3MTBCQzUgLyogQ1NTVmFsdWVLZXl3b3Jkc0ltcGwu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwIGIvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcAppbmRleCBiYTUwM2I4Li5iNzJlY2U2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDU1NW
YWx1ZUxpc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGUuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJSZWN0LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1dlYkNvcmUvY3NzL0NT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA3YzA5ZjkxLi43MzhjZjdiIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIv
V2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0zMSw2ICszMSw3
IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVk
ZSAiU3R5bGVkRWxlbWVudC5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5k
ZXggNmY3Y2YxMi4uMzI5NjM3MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC02MSw2ICs2MSw3IEBACiAjaW5j
bHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiRm9udEZhbWlseVZhbHVlLmgiCiAj
aW5jbHVkZSAiRm9udFZhbHVlLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAi
TWVkaWFMaXN0LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV4cC5oIgogI2luY2x1ZGUgIlBhaXIu
aCIKQEAgLTg4LDkgKzg5LDYgQEAgZXh0ZXJuIGludCBjc3N5eXBhcnNlKHZvaWQqIHBhcnNlcik7
CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIAotI2luY2x1ZGUg
IkNTU1Byb3BlcnR5TmFtZXMuY3BwIgotI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuYyIKLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgSU5WQUxJRF9OVU1f
UEFSU0VEX1BST1BFUlRJRVMgPSBVSU5UX01BWDsKQEAgLTU1MjYsNyArNTUyNCw3IEBAIHN0YXRp
YyBpbnQgY3NzUHJvcGVydHlJRChjb25zdCBVQ2hhciogcHJvcGVydHlOYW1lLCB1bnNpZ25lZCBs
ZW5ndGgpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBjb25zdCBwcm9wcyogaGFzaFRhYmxlRW50
cnkgPSBmaW5kUHJvcChuYW1lLCBsZW5ndGgpOworICAgIGNvbnN0IFByb3BlcnR5KiBoYXNoVGFi
bGVFbnRyeSA9IGZpbmRQcm9wZXJ0eShuYW1lLCBsZW5ndGgpOwogICAgIHJldHVybiBoYXNoVGFi
bGVFbnRyeSA/IGhhc2hUYWJsZUVudHJ5LT5pZCA6IDA7CiB9CiAKQEAgLTU1NjgsNyArNTU2Niw3
IEBAIGludCBjc3NWYWx1ZUtleXdvcmRJRChjb25zdCBDU1NQYXJzZXJTdHJpbmcmIHN0cmluZykK
ICAgICAgICAgfQogICAgIH0KIAotICAgIGNvbnN0IGNzc192YWx1ZSogaGFzaFRhYmxlRW50cnkg
PSBmaW5kVmFsdWUoYnVmZmVyLCBsZW5ndGgpOworICAgIGNvbnN0IFZhbHVlKiBoYXNoVGFibGVF
bnRyeSA9IGZpbmRWYWx1ZShidWZmZXIsIGxlbmd0aCk7CiAgICAgcmV0dXJuIGhhc2hUYWJsZUVu
dHJ5ID8gaGFzaFRhYmxlRW50cnktPmlkIDogMDsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
Y3BwCmluZGV4IDIxMGQ2ZjUuLjMzN2YwYzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAK
QEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkNvdW50ZXIu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAj
aW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBhaXIuaCIKICNpbmNsdWRlICJSR0JDb2xvci5o
IgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwIGIvV2ViQ29yZS9jc3Mv
Q1NTUHJvcGVydHkuY3BwCmluZGV4IGQ3ZjIxNzUuLjljOGE1MWEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvY3NzL0NTU1Byb3BlcnR5LmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAK
QEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eS5oIgogCiAjaW5jbHVkZSAi
Q1NTUHJvcGVydHlOYW1lcy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtU3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uY3BwIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNs
YXJhdGlvbi5jcHAKaW5kZXggNDA0YTk3OC4uZTQ1ZDJmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNs
YXJhdGlvbi5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eS5oIgog
I2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NSdWxlLmgiCisjaW5j
bHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdURjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsIGIvV2Vi
Q29yZS9jc3MvbWFrZXByb3AucGwKaW5kZXggMTE1OTY5Zi4uZWY2YTI3NyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9jc3MvbWFrZXByb3AucGwKKysrIGIvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwKQEAg
LTUsNiArNSw3IEBACiAjICAgQ29weXJpZ2h0IChDKSAxOTk5IFdhbGRvIEJhc3RpYW4gKGJhc3Rp
YW5Aa2RlLm9yZykKICMgICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIyAgIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyMgICBDb3B5cmlnaHQgKEMpIDIwMTAgQW5k
cmFzIEJlY3NpIChhYmVjc2lAaW5mLnUtc3plZ2VkLmh1KSwgVW5pdmVyc2l0eSBvZiBTemVnZWQK
ICMKICMgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAjICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM3LDEyICszOCwxOSBAQCBvcGVuIEdQRVJGLCAiPkNT
U1Byb3BlcnR5TmFtZXMuZ3BlcmYiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTUHJvcGVydHlO
YW1lcy5ncAogcHJpbnQgR1BFUkYgPDwgIkVPRiI7CiAlewogLyogVGhpcyBmaWxlIGlzIGF1dG9t
YXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gQ1NTUHJvcGVydHlOYW1lcy5pbiBieSBtYWtlcHJvcCwg
ZG8gbm90IGVkaXQgKi8KLSNpbmNsdWRlIFwiQ1NTUHJvcGVydHlOYW1lcy5oXCIKICV9Ci1zdHJ1
Y3QgcHJvcHMgewotICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgaW50IGlkOwotfTsKKyVzdHJ1
Y3QtdHlwZQorc3RydWN0IFByb3BlcnR5OworJW9taXQtc3RydWN0LXR5cGUKKyVsYW5ndWFnZT1D
KysKKyVyZWFkb25seS10YWJsZXMKKyVnbG9iYWwtdGFibGUKKyVjb21wYXJlLXN0cm5jbXAKKyVk
ZWZpbmUgY2xhc3MtbmFtZSBDU1NQcm9wZXJ0eU5hbWVzSGFzaAorJWRlZmluZSBsb29rdXAtZnVu
Y3Rpb24tbmFtZSBmaW5kUHJvcGVydHlJbXBsCislZGVmaW5lIGhhc2gtZnVuY3Rpb24tbmFtZSBw
cm9wZXJ5X2hhc2hfZnVuY3Rpb24KKyVpbmNsdWRlcworJWVudW0KICUlCiBFT0YKIApAQCAtNTcs
NiArNjUsNyBAQCBjbG9zZSBHUEVSRjsKIG9wZW4gSEVBREVSLCAiPkNTU1Byb3BlcnR5TmFtZXMu
aCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NQcm9wZXJ0eU5hbWVzLmggZm9yIHdyaXRpbmci
OwogcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkg
Z2VuZXJhdGVkIGZyb20gQ1NTUHJvcGVydHlOYW1lcy5pbiBieSBtYWtlcHJvcCwgZG8gbm90IGVk
aXQgKi8KKyNpbmNsdWRlICJ3dGYvdGV4dC9DU3RyaW5nLmgiCiAKICNpZm5kZWYgQ1NTUHJvcGVy
dHlOYW1lc19oCiAjZGVmaW5lIENTU1Byb3BlcnR5TmFtZXNfaApAQCAtODYsMTYgKzk1LDE0IEBA
IHByaW50IEhFQURFUiAiY29uc3Qgc2l6ZV90IG1heENTU1Byb3BlcnR5TmFtZUxlbmd0aCA9ICRt
YXhMZW47XG4iOwogCiBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAKLWNvbnN0IGNoYXIqIGdldFBy
b3BlcnR5TmFtZShDU1NQcm9wZXJ0eUlEKTsKLQotI2VuZGlmCisjZW5kaWYgLy8gQ1NTUHJvcGVy
dHlOYW1lc19oCiBFT0YKIAogY2xvc2UgSEVBREVSOwogCi1zeXN0ZW0oImdwZXJmIC1hIC1MIEFO
U0ktQyAtRSAtQyAtYyAtbyAtdCAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLU5maW5kUHJvcCAtSGhh
c2hfcHJvcCAtV3dvcmRsaXN0X3Byb3AgLUQgLXMgMiBDU1NQcm9wZXJ0eU5hbWVzLmdwZXJmID4g
Q1NTUHJvcGVydHlOYW1lcy5jcHAiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6
ICQ/IjsKK3N5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1zIDIgQ1NTUHJv
cGVydHlOYW1lcy5ncGVyZiA+IENTU1Byb3BlcnR5TmFtZXNIYXNoLmhwcCIpID09IDAgfHwgZGll
ICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwogCi1vcGVuIEMsICI+PkNTU1Byb3BlcnR5TmFt
ZXMuY3BwIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1Byb3BlcnR5TmFtZXMuY3BwIGZvciB3
cml0aW5nIjsKK29wZW4gQywgIj4+Q1NTUHJvcGVydHlOYW1lc0hhc2guaHBwIiB8fCBkaWUgIkNv
dWxkIG5vdCBvcGVuIENTU1Byb3BlcnR5TmFtZXNIYXNoLmhwcCBmb3Igd3JpdGluZyI7CiBwcmlu
dCBDICJzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHByb3BlcnR5TmFtZVN0cmluZ3NbJG51bV0g
PSB7XG4iOwogCiBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKQEAgLTEwNCw2ICsxMTEsMjgg
QEAgZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CiAKIHByaW50IEMgPDwgIkVPRiI7CiB9Owor
CitFT0YKKworY2xvc2UgQzsKKworbXkgJHByb3BlcnR5TmFtZXNJbXBsID0gIkNTU1Byb3BlcnR5
TmFtZXNJbXBsLmNwcCI7CisKK29wZW4gUFJPUEVSVFlOQU1FUywgIj4kcHJvcGVydHlOYW1lc0lt
cGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJHByb3BlcnR5TmFtZXNJbXBsIGZvciB3cml0aW5n
IjsKK3ByaW50IFBST1BFUlRZTkFNRVMgPDwgIkVPRiI7CisvKiBUaGlzIGZpbGUgaXMgYXV0b21h
dGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBkbyBub3QgZWRpdCAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzSGFzaC5ocHAiCisKK2NvbnN0
IFByb3BlcnR5KiBmaW5kUHJvcGVydHkgKHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0
ZXIgdW5zaWduZWQgaW50IGxlbikKK3sKKyAgICByZXR1cm4gQ1NTUHJvcGVydHlOYW1lc0hhc2g6
OmZpbmRQcm9wZXJ0eUltcGwoc3RyLCBsZW4pOworfQorCiBjb25zdCBjaGFyKiBnZXRQcm9wZXJ0
eU5hbWUoQ1NTUHJvcGVydHlJRCBpZCkKIHsKICAgICBpZiAoaWQgPCBmaXJzdENTU1Byb3BlcnR5
KQpAQCAtMTEzLDcgKzE0Miw5IEBAIGNvbnN0IGNoYXIqIGdldFByb3BlcnR5TmFtZShDU1NQcm9w
ZXJ0eUlEIGlkKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gcHJvcGVydHlOYW1lU3Ry
aW5nc1tpbmRleF07CiB9Ci1FT0YKIAotY2xvc2UgQzsKK30KKworRU9GCitjbG9zZSBQUk9QRVJU
WU5BTUVTOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsIGIvV2ViQ29y
ZS9jc3MvbWFrZXZhbHVlcy5wbAppbmRleCBlNDk5ODFkLi42ODgwZGU3IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCisrKyBiL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwK
QEAgLTUsNiArNSw3IEBACiAjICAgQ29weXJpZ2h0IChDKSAxOTk5IFdhbGRvIEJhc3RpYW4gKGJh
c3RpYW5Aa2RlLm9yZykKICMgICBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogIyAgIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyMgICBDb3B5cmlnaHQgKEMpIDIwMTAgQW5kcmFz
IEJlY3NpIChhYmVjc2lAaW5mLnUtc3plZ2VkLmh1KSwgVW5pdmVyc2l0eSBvZiBTemVnZWQKICMK
ICMgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAjICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM3LDEzICszOCwxOSBAQCBvcGVuIEdQRVJGLCAiPkNTU1Zh
bHVlS2V5d29yZHMuZ3BlcmYiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTVmFsdWVLZXl3b3Jk
cy5ncAogcHJpbnQgR1BFUkYgPDwgIkVPRiI7CiAlewogLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRp
Y2FsbHkgZ2VuZXJhdGVkIGZyb20gQ1NTVmFsdWVLZXl3b3Jkcy5pbiBieSBtYWtldmFsdWVzLCBk
byBub3QgZWRpdCAqLwotCi0jaW5jbHVkZSBcIkNTU1ZhbHVlS2V5d29yZHMuaFwiCiAlfQotc3Ry
dWN0IGNzc192YWx1ZSB7Ci0gICAgY29uc3QgY2hhciogbmFtZTsKLSAgICBpbnQgaWQ7Ci19Owor
JXN0cnVjdC10eXBlCitzdHJ1Y3QgVmFsdWU7Cislb21pdC1zdHJ1Y3QtdHlwZQorJWxhbmd1YWdl
PUMrKworJXJlYWRvbmx5LXRhYmxlcworJWdsb2JhbC10YWJsZQorJWNvbXBhcmUtc3RybmNtcAor
JWRlZmluZSBjbGFzcy1uYW1lIENTU1ZhbHVlS2V5d29yZHNIYXNoCislZGVmaW5lIGxvb2t1cC1m
dW5jdGlvbi1uYW1lIGZpbmRWYWx1ZUltcGwKKyVkZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1lIHZh
bHVlX2hhc2hfZnVuY3Rpb24KKyVpbmNsdWRlcworJWVudW0KICUlCiBFT0YKIApAQCAtNTgsOSAr
NjUsMTAgQEAgY2xvc2UgR1BFUkY7CiBvcGVuIEhFQURFUiwgIj5DU1NWYWx1ZUtleXdvcmRzLmgi
IHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTVmFsdWVLZXl3b3Jkcy5oIGZvciB3cml0aW5nIjsK
IHByaW50IEhFQURFUiA8PCAiRU9GIjsKIC8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdl
bmVyYXRlZCBmcm9tIENTU1ZhbHVlS2V5d29yZHMuaW4gYnkgbWFrZXZhbHVlcywgZG8gbm90IGVk
aXQgKi8KKyNpbmNsdWRlICJ3dGYvdGV4dC9DU3RyaW5nLmgiCiAKLSNpZm5kZWYgQ1NTVmFsdWVz
X2gKLSNkZWZpbmUgQ1NTVmFsdWVzX2gKKyNpZm5kZWYgQ1NTVmFsdWVLZXl3b3Jkc19oCisjZGVm
aW5lIENTU1ZhbHVlS2V5d29yZHNfaAogCiBjb25zdCBpbnQgQ1NTVmFsdWVJbnZhbGlkID0gMDsK
IEVPRgpAQCAtODAsMTUgKzg4LDE0IEBAIHByaW50IEhFQURFUiAiY29uc3QgaW50IG51bUNTU1Zh
bHVlS2V5d29yZHMgPSAiIC4gJGkgLiAiO1xuIjsKIHByaW50IEhFQURFUiAiY29uc3Qgc2l6ZV90
IG1heENTU1ZhbHVlS2V5d29yZExlbmd0aCA9ICIgLiAkbWF4TGVuIC4gIjtcbiI7CiBwcmludCBI
RUFERVIgPDwgIkVPRiI7CiAKLWNvbnN0IGNoYXIqIGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9y
dCBpZCk7CiAKLSNlbmRpZgorI2VuZGlmIC8vIENTU1ZhbHVlS2V5d29yZHNfaAogRU9GCiBjbG9z
ZSBIRUFERVI7CiAKLXN5c3RlbSgiZ3BlcmYgLUwgQU5TSS1DIC1FIC1DIC1uIC1vIC10IC0ta2V5
LXBvc2l0aW9ucz1cIipcIiAtTmZpbmRWYWx1ZSAtSGhhc2hfdmFsIC1Xd29yZGxpc3RfdmFsdWUg
LUQgQ1NTVmFsdWVLZXl3b3Jkcy5ncGVyZiA+IENTU1ZhbHVlS2V5d29yZHMuYyIpID09IDAgfHwg
ZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOworc3lzdGVtKCJncGVyZiAtLWtleS1wb3Np
dGlvbnM9XCIqXCIgLUQgLXMgMiBDU1NWYWx1ZUtleXdvcmRzLmdwZXJmID4gQ1NTVmFsdWVLZXl3
b3Jkc0hhc2guaHBwIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAK
LW9wZW4gQywgIj4+Q1NTVmFsdWVLZXl3b3Jkcy5jIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENT
U1ZhbHVlS2V5d29yZHMuYyBmb3Igd3JpdGluZyI7CitvcGVuIEMsICI+PkNTU1ZhbHVlS2V5d29y
ZHNIYXNoLmhwcCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NWYWx1ZUtleXdvcmRzSGFzaC5o
cHAgZm9yIHdyaXRpbmciOwogcHJpbnQgQyAgInN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdmFs
dWVMaXN0W10gPSB7XG4iOwogcHJpbnQgQyAgIlwiXCIsXG4iOwogZm9yZWFjaCBteSAkbmFtZSAo
QG5hbWVzKSB7CkBAIC05NywxMiArMTA0LDM1IEBAIGZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykg
ewogcHJpbnQgQyA8PCAiRU9GIjsKICAgICAwCiB9OworCitFT0YKKworY2xvc2UgQzsKKworbXkg
JHZhbHVlS2V5d29yZHNJbXBsID0gIkNTU1ZhbHVlS2V5d29yZHNJbXBsLmNwcCI7CisKK29wZW4g
VkFMVUVLRVlXT1JEUywgIj4kdmFsdWVLZXl3b3Jkc0ltcGwiIHx8IGRpZSAiQ291bGQgbm90IG9w
ZW4gJHZhbHVlS2V5d29yZHNJbXBsIGZvciB3cml0aW5nIjsKK3ByaW50IFZBTFVFS0VZV09SRFMg
PDwgIkVPRiI7CisvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFr
ZS1oYXNoLXRvb2xzLnBsLCBkbyBub3QgZWRpdCAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiSGFzaFRvb2xzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJD
U1NWYWx1ZUtleXdvcmRzSGFzaC5ocHAiCisKK2NvbnN0IFZhbHVlKiBmaW5kVmFsdWUgKHJlZ2lz
dGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbikKK3sKKyAgICBy
ZXR1cm4gQ1NTVmFsdWVLZXl3b3Jkc0hhc2g6OmZpbmRWYWx1ZUltcGwoc3RyLCBsZW4pOworfQor
CiBjb25zdCBjaGFyKiBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpCiB7CiAgICAgaWYg
KGlkID49IG51bUNTU1ZhbHVlS2V5d29yZHMgfHwgaWQgPD0gMCkKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgcmV0dXJuIHZhbHVlTGlzdFtpZF07CiB9Ci1FT0YKIAotY2xvc2UgQzsKK30KKworRU9G
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYgYi9XZWJDb3Jl
L2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKaW5kZXggMzk4NjI2ZS4uMWM3NDExZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCisrKyBiL1dlYkNvcmUvaHRt
bC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgpAQCAtMSwxNCArMSwxNiBAQAotc3RydWN0IFB1YklESW5m
byB7Ci0gICAgZW51bSBlTW9kZSB7IAotICAgICAgICBlUXVpcmtzLCAgICAgICAgIAotICAgICAg
ICBlUXVpcmtzMywgICAgICAgCi0gICAgICAgIGVBbG1vc3RTdGFuZGFyZHMKLSAgICB9OwotCi0g
ICAgY29uc3QgY2hhciogbmFtZTsKLSAgICBlTW9kZSBtb2RlX2lmX25vX3N5c2lkOwotICAgIGVN
b2RlIG1vZGVfaWZfc3lzaWQ7Ci19Cislc3RydWN0LXR5cGUKK3N0cnVjdCBQdWJJREluZm87Cisl
b21pdC1zdHJ1Y3QtdHlwZQorJWxhbmd1YWdlPUMrKworJXJlYWRvbmx5LXRhYmxlcworJWdsb2Jh
bC10YWJsZQorJWNvbXBhcmUtc3RybmNtcAorJWRlZmluZSBpbml0aWFsaXplci1zdWZmaXggLFB1
YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyxQdWJJREluZm86OmVBbG1vc3RTdGFuZGFyZHMKKyVk
ZWZpbmUgY2xhc3MtbmFtZSBEb2NUeXBlU3RyaW5nc0hhc2gKKyVkZWZpbmUgbG9va3VwLWZ1bmN0
aW9uLW5hbWUgZmluZERvY3R5cGVFbnRyeUltcGwKKyVkZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1l
IGRvY3R5cGVfaGFzaF9mdW5jdGlvbgorJWluY2x1ZGVzCislZW51bQogJSUKICIrLy9zaWxtYXJp
bC8vZHRkIGh0bWwgcHJvIHYwcjExIDE5OTcwMTAxLy9lbiIsIFB1YklESW5mbzo6ZVF1aXJrczMs
IFB1YklESW5mbzo6ZVF1aXJrczMKICItLy9hZHZhc29mdCBsdGQvL2R0ZCBodG1sIDMuMCBhc3dl
ZGl0ICsgZXh0ZW5zaW9ucy8vZW4iLCBQdWJJREluZm86OmVRdWlya3MzLCBQdWJJREluZm86OmVR
dWlya3MzCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcCBiL1dlYkNv
cmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCmluZGV4IDMwNDhlZTkuLmE2YzdlNmUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
RG9jdW1lbnQuY3BwCkBAIC02NCw2ICs2NCw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
ICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRl
ICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJIVE1MQm9keUVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MRWxlbWVudEZhY3RvcnkuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTczLDggKzc0
LDYgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
Ci0jaW5jbHVkZSAiRG9jVHlwZVN0cmluZ3MuY3BwIgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRN
TEVudGl0eU5hbWVzLmdwZXJmIGIvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgpp
bmRleCBiMTZiM2Q4Li5kNjNkMTMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEVudGl0
eU5hbWVzLmdwZXJmCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKQEAg
LTIsNiArMiw3IEBACiAvKgogICAgICBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25v
bGxAbXBpLWhkLm1wZy5kZSkKICAgICAgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDAzLCAyMDA0LCAy
MDA1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgICAgQ29weXJpZ2h0IChDKSAy
MDEwIEFuZHJhcyBCZWNzaSAoYWJlY3NpQGluZi51LXN6ZWdlZC5odSksIFVuaXZlcnNpdHkgb2Yg
U3plZ2VkCiAgIAogICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMSwxNSArMjIsMjEgQEAKICAgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogICAKICAgICBIVE1MRW50aXR5TmFtZXMuZ3BlcmY6IGlucHV0IGZp
bGUgdG8gZ2VuZXJhdGUgYSBoYXNoIHRhYmxlIGZvciBlbnRpdGllcwotICAgIEhUTUxFbnRpdHlO
YW1lcy5jOiBETyBOT1QgRURJVCEgZ2VuZXJhdGVkIGJ5IHRoZSBjb21tYW5kCi0gICAgImdwZXJm
IC1hIC1MICJBTlNJLUMiIC1DIC1HIC1jIC1vIC10IC1rICcqJyAtTmZpbmRFbnRpdHkgLUQgLXMg
MiBIVE1MRW50aXR5TmFtZXMuZ3BlcmYgPiBlbnRpdGllcy5jIiAgIAotICAgIGZyb20gSFRNTEVu
dGl0eU5hbWVzLmdwZXJmIAorICAgIEhUTUxFbnRpdHlOYW1lcy5ocHA6IERPIE5PVCBFRElUISBn
ZW5lcmF0ZWQgYnkgV2ViQ29yZS9tYWtlX2hhc2hfdG9vbHMucGwKICovCiAlfQotc3RydWN0IEVu
dGl0eSB7Ci0gICAgY29uc3QgY2hhciAqbmFtZTsKLSAgICBpbnQgY29kZTsKLX07Cislc3RydWN0
LXR5cGUKK3N0cnVjdCBFbnRpdHk7Cislb21pdC1zdHJ1Y3QtdHlwZQorJWxhbmd1YWdlPUMrKwor
JXJlYWRvbmx5LXRhYmxlcworJWdsb2JhbC10YWJsZQorJWNvbXBhcmUtc3RybmNtcAorJWRlZmlu
ZSBjbGFzcy1uYW1lIEhUTUxFbnRpdHlIYXNoCislZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1l
IGZpbmRFbnRpdHlJbXBsCislZGVmaW5lIGhhc2gtZnVuY3Rpb24tbmFtZSBlbnRpdHlfaGFzaF9m
dW5jdGlvbgorJWluY2x1ZGVzCislZW51bQogJSUKIEFFbGlnLCAweDAwYzYKIEFNUCwgMzgKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcCBiL1dlYkNvcmUvaHRtbC9I
VE1MVG9rZW5pemVyLmNwcAppbmRleCBjODA3YTRmLi5hNTNjZGY5IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6
ZXIuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhhc2hUb29s
cy5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAj
aW5jbHVkZSAiSFRNTFBhcnNlci5oIgpAQCAtNTUsOCArNTYsNiBAQAogI2luY2x1ZGUgPHd0Zi9B
U0NJSUNUeXBlLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKLSNpbmNsdWRlICJI
VE1MRW50aXR5TmFtZXMuYyIKLQogI2RlZmluZSBQUkVMT0FEX1NDQU5ORVJfRU5BQkxFRCAxCiAv
LyAjZGVmaW5lIElOU1RSVU1FTlRfTEFZT1VUX1NDSEVEVUxJTkcgMQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvUHJlbG9hZFNjYW5uZXIuY3BwIGIvV2ViQ29yZS9odG1sL1ByZWxvYWRTY2Fu
bmVyLmNwcAppbmRleCBjZDg0YjIwLi5lZWZhNDZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
UHJlbG9hZFNjYW5uZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9QcmVsb2FkU2Nhbm5lci5jcHAK
QEAgLTM4LDI0ICszOCwxMyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgog
I2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4K
ICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CiAKLS8vIFVzZSBfX0dOVUNfXyBpbnN0
ZWFkIG9mIFBMQVRGT1JNKEdDQykgdG8gc3RheSBjb25zaXN0ZW50IHdpdGggdGhlIGdwZXJmIGdl
bmVyYXRlZCBjIGZpbGUKLSNpZmRlZiBfX0dOVUNfXwotLy8gVGhlIG1haW4gdG9rZW5pemVyIGlu
Y2x1ZGVzIHRoaXMgdG9vIHNvIHdlIGFyZSBnZXR0aW5nIHR3byBjb3BpZXMgb2YgdGhlIGRhdGEu
IEhvd2V2ZXIsIHRoaXMgd2F5IHRoZSBjb2RlIGdldHMgaW5saW5lZC4KLSNpbmNsdWRlICJIVE1M
RW50aXR5TmFtZXMuYyIKLSNlbHNlCi0vLyBOb3QgaW5saW5lZCBmb3Igbm9uLUdDQyBjb21waWxl
cnMKLXN0cnVjdCBFbnRpdHkgewotICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgaW50IGNvZGU7
Ci19OwotY29uc3Qgc3RydWN0IEVudGl0eSogZmluZEVudGl0eShyZWdpc3RlciBjb25zdCBjaGFy
KiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pOwotI2VuZGlmCiAKICNkZWZpbmUgUFJF
TE9BRF9ERUJVRyAwCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsIGIv
V2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMDVjNWExNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbWFrZS1oYXNoLXRvb2xz
LnBsCkBAIC0wLDAgKzEsMTkxIEBACisjISAvdXNyL2Jpbi9wZXJsCisjCisjICAgVGhpcyBmaWxl
IGlzIHBhcnQgb2YgdGhlIFdlYktpdCBwcm9qZWN0CisjCisjICAgQ29weXJpZ2h0IChDKSAyMDEw
IEFuZHJhcyBCZWNzaSAoYWJlY3NpQGluZi51LXN6ZWdlZC5odSksIFVuaXZlcnNpdHkgb2YgU3pl
Z2VkCisjCisjICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorIyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisjICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyAgIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorIyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisjICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyMgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorIyAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorCit1c2Ugc3RyaWN0OwordXNlIFN3aXRjaDsKKworbXkgJG9wdGlvbiAgICAgICAgICAg
ICAgICAgICAgID0gJEFSR1ZbMF07CitzaGlmdDsKK215ICRvdXRkaXIgICAgICAgICAgICAgICAg
ICAgICA9ICRBUkdWWzBdOworc2hpZnQ7CisKK215ICRoYXNoVG9vbHNIZWFkZXIgPSAiJG91dGRp
ci9IYXNoVG9vbHMuaCI7CisKK3N1YiBjcmVhdGVIYXNoVG9vbHNIZWFkZXIoKSB7CisKK29wZW4g
SEVBREVSLCAiPiRoYXNoVG9vbHNIZWFkZXIiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJGhhc2hU
b29sc0hlYWRlciBmb3Igd3JpdGluZyI7CitwcmludCBIRUFERVIgPDwgIkVPRiI7CisvKiBUaGlz
IGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBk
byBub3QgZWRpdCAqLworCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUg
IkNTU1Byb3BlcnR5TmFtZXMuaCIKKworI2lmbmRlZiBIYXNoVG9vbHNfaAorI2RlZmluZSBIYXNo
VG9vbHNfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBFbnRpdHkgeworICAgIGNv
bnN0IGNoYXIqIG5hbWU7CisgICAgaW50IGNvZGU7Cit9OworCitzdHJ1Y3QgUHViSURJbmZvIHsK
KyAgICBlbnVtIGVNb2RlIHsKKyAgICAgICAgZVF1aXJrcywKKyAgICAgICAgZVF1aXJrczMsCisg
ICAgICAgIGVBbG1vc3RTdGFuZGFyZHMKKyAgICB9OworCisgICAgY29uc3QgY2hhciogbmFtZTsK
KyAgICBlTW9kZSBtb2RlX2lmX25vX3N5c2lkOworICAgIGVNb2RlIG1vZGVfaWZfc3lzaWQ7Cit9
OworCitzdHJ1Y3QgTmFtZWRDb2xvciB7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBpbnQg
UkdCVmFsdWU7Cit9OworCitzdHJ1Y3QgUHJvcGVydHkgeworICAgIGNvbnN0IGNoYXIqIG5hbWU7
CisgICAgaW50IGlkOworfTsKKworc3RydWN0IFZhbHVlIHsKKyAgICBjb25zdCBjaGFyKiBuYW1l
OworICAgIGludCBpZDsKK307CisKK2NvbnN0IEVudGl0eSogZmluZEVudGl0eShyZWdpc3RlciBj
b25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pOworY29uc3QgUHViSURJ
bmZvKiBmaW5kRG9jdHlwZUVudHJ5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIg
dW5zaWduZWQgaW50IGxlbik7Citjb25zdCBOYW1lZENvbG9yKiBmaW5kQ29sb3IocmVnaXN0ZXIg
Y29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKK2NvbnN0IFByb3Bl
cnR5KiBmaW5kUHJvcGVydHkocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNp
Z25lZCBpbnQgbGVuKTsKK2NvbnN0IFZhbHVlKiBmaW5kVmFsdWUocmVnaXN0ZXIgY29uc3QgY2hh
ciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKKworY29uc3QgY2hhciogZ2V0UHJv
cGVydHlOYW1lKENTU1Byb3BlcnR5SUQpOworY29uc3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2ln
bmVkIHNob3J0IGlkKTsKKworfQorCisjZW5kaWYgLy8gSGFzaFRvb2xzX2gKKworRU9GCitjbG9z
ZSBIRUFERVI7CisKK30KKworc3dpdGNoICgkb3B0aW9uKSB7CisKK2Nhc2UgImVudGl0aWVzIiB7
CisKKyMgQ3JlYXRlIHRoZSBmb2xsb3dpbmcgb25jZSBpbiB0aGUgSFRNTEVudGl0eU5hbWVzIGNy
ZWF0aW9uIHBoYXNlCitjcmVhdGVIYXNoVG9vbHNIZWFkZXIoKTsKKworbXkgJGh0bWxFbnRpdHlO
YW1lc0ltcGwgICAgICAgID0gIiRvdXRkaXIvSFRNTEVudGl0eU5hbWVzSW1wbC5jcHAiOworbXkg
JGh0bWxFbnRpdHlOYW1lc0dlbmVyYXRlZCAgID0gIiRvdXRkaXIvSFRNTEVudGl0eU5hbWVzSGFz
aC5ocHAiOworbXkgJGh0bWxFbnRpdHlOYW1lc0dwZXJmICAgICAgID0gJEFSR1ZbMF07CitzaGlm
dDsKKworb3BlbiBFTlRJVElFUywgIj4kaHRtbEVudGl0eU5hbWVzSW1wbCIgfHwgZGllICJDb3Vs
ZCBub3Qgb3BlbiAkaHRtbEVudGl0eU5hbWVzSW1wbCBmb3Igd3JpdGluZyI7CitwcmludCBFTlRJ
VElFUyA8PCAiRU9GIjsKKy8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBi
eSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5vdCBlZGl0ICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworI2luY2x1
ZGUgIkhUTUxFbnRpdHlOYW1lc0hhc2guaHBwIgorCitjb25zdCBFbnRpdHkqIGZpbmRFbnRpdHko
cmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKQorewor
ICAgIHJldHVybiBIVE1MRW50aXR5SGFzaDo6ZmluZEVudGl0eUltcGwoc3RyLCBsZW4pOworfQor
Cit9CisKK0VPRgorY2xvc2UgRU5USVRJRVM7CitzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9u
cz1cIipcIiAtRCAtcyAyICRodG1sRW50aXR5TmFtZXNHcGVyZiA+ICRodG1sRW50aXR5TmFtZXNH
ZW5lcmF0ZWQiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKKworfSAj
IGNhc2UgImVudGl0aWVzIgorCitjYXNlICJkb2N0eXBlIiB7CisKK215ICRkb2NUeXBlU3RyaW5n
c0ltcGwgICAgICAgICA9ICIkb3V0ZGlyL0RvY1R5cGVTdHJpbmdzSW1wbC5jcHAiOworbXkgJGRv
Y1R5cGVTdHJpbmdzR2VuZXJhdGVkICAgID0gIiRvdXRkaXIvRG9jVHlwZVN0cmluZ3NIYXNoLmhw
cCI7CitteSAkZG9jVHlwZVN0cmluZ3NHcGVyZiAgICAgICAgPSAkQVJHVlswXTsKK3NoaWZ0Owor
CitvcGVuIERPQ1RZUEVTVFJJTkdTLCAiPiRkb2NUeXBlU3RyaW5nc0ltcGwiIHx8IGRpZSAiQ291
bGQgbm90IG9wZW4gJGRvY1R5cGVTdHJpbmdzSW1wbCBmb3Igd3JpdGluZyI7CitwcmludCBET0NU
WVBFU1RSSU5HUyA8PCAiRU9GIjsKKy8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVy
YXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5vdCBlZGl0ICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
I2luY2x1ZGUgIkRvY1R5cGVTdHJpbmdzSGFzaC5ocHAiCisKK2NvbnN0IFB1YklESW5mbyogZmlu
ZERvY3R5cGVFbnRyeSAocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25l
ZCBpbnQgbGVuKQoreworICAgIHJldHVybiBEb2NUeXBlU3RyaW5nc0hhc2g6OmZpbmREb2N0eXBl
RW50cnlJbXBsKHN0ciwgbGVuKTsKK30KKworfQorCitFT0YKK2Nsb3NlIERPQ1RZUEVTVFJJTkdT
Oworc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLXMgMiAkZG9jVHlwZVN0cmlu
Z3NHcGVyZiA+ICRkb2NUeXBlU3RyaW5nc0dlbmVyYXRlZCIpID09IDAgfHwgZGllICJjYWxsaW5n
IGdwZXJmIGZhaWxlZDogJD8iOworCit9ICMgY2FzZSAiZG9jdHlwZSIKKworY2FzZSAiY29sb3Jk
YXRhIiB7CisKK215ICRjb2xvckRhdGFJbXBsICAgICAgICA9ICIkb3V0ZGlyL0NvbG9yRGF0YUlt
cGwuY3BwIjsKK215ICRjb2xvckRhdGFHZW5lcmF0ZWQgICA9ICIkb3V0ZGlyL0NvbG9yRGF0YUhh
c2guaHBwIjsKK215ICRjb2xvckRhdGFHcGVyZiAgICAgICA9ICRBUkdWWzBdOworc2hpZnQ7CisK
K29wZW4gQ09MT1JEQVRBLCAiPiRjb2xvckRhdGFJbXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVu
ICRjb2xvckRhdGFJbXBsIGZvciB3cml0aW5nIjsKK3ByaW50IENPTE9SREFUQSA8PCAiRU9GIjsK
Ky8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9v
bHMucGwsIGRvIG5vdCBlZGl0ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJI
YXNoVG9vbHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworI2luY2x1ZGUgIkNvbG9yRGF0YUhh
c2guaHBwIgorCitjb25zdCBzdHJ1Y3QgTmFtZWRDb2xvciogZmluZENvbG9yIChyZWdpc3RlciBj
b25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7CisgICAgcmV0dXJu
IENvbG9yRGF0YUhhc2g6OmZpbmRDb2xvckltcGwoc3RyLCBsZW4pOworfQorCit9CisKK0VPRgor
Y2xvc2UgQ09MT1JEQVRBOworc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQg
LXMgMiAkY29sb3JEYXRhR3BlcmYgPiAkY29sb3JEYXRhR2VuZXJhdGVkIikgPT0gMCB8fCBkaWUg
ImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CisKK30gIyBjYXNlICJjb2xvcmRhdGEiCisKK30g
IyBzd2l0Y2ggKCRvcHRpb24pCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0lt
cGxpY2l0QW5pbWF0aW9uLmNwcCBiL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmlt
YXRpb24uY3BwCmluZGV4IDMyOGZlMGUuLmNlYWViZGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
Q29tcG9zaXRlQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJJ
bXBsaWNpdEFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIktleWZyYW1lQW5pbWF0aW9uLmgiCiAjaW5j
bHVkZSAiUmVuZGVyTGF5ZXIuaCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JE
YXRhLmdwZXJmIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKaW5kZXggOGE1NDkx
Ni4uZDY4NGNiOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKQEAgLTEsNCArMSwxNSBAQAot
c3RydWN0IE5hbWVkQ29sb3IgeyBjb25zdCBjaGFyICpuYW1lOyBpbnQgUkdCVmFsdWU7IH07Cisl
c3RydWN0LXR5cGUKK3N0cnVjdCBOYW1lZENvbG9yOworJW9taXQtc3RydWN0LXR5cGUKKyVsYW5n
dWFnZT1DKysKKyVyZWFkb25seS10YWJsZXMKKyVnbG9iYWwtdGFibGUKKyVjb21wYXJlLXN0cm5j
bXAKKyVkZWZpbmUgY2xhc3MtbmFtZSBDb2xvckRhdGFIYXNoCislZGVmaW5lIGxvb2t1cC1mdW5j
dGlvbi1uYW1lIGZpbmRDb2xvckltcGwKKyVkZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1lIGNvbG9y
ZGF0YV9oYXNoX2Z1bmN0aW9uCislaW5jbHVkZXMKKyVlbnVtCiAlJQogYWxpY2VibHVlLCAweGYw
ZjhmZgogYW50aXF1ZXdoaXRlLCAweGZhZWJkNwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db2xvci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNw
cAppbmRleCBkOThiMjAyLi5hODdkYWZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNw
cApAQCAtMjYsMTMgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29s
b3IuaCIKIAorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5j
bHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAotI2luY2x1ZGUgIkNvbG9yRGF0YS5jIgotCiB1c2lu
ZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
NDc0NTcyZS4uNjExZmZjOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDUt
MTEgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUBpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgZ3BlcmYgY29kZSBn
ZW5lcmF0aW9uIGFuZCB1c2FnZSB0byBmaXggdGhlIGRlYnVnIGJ1aWxkIHdpdGggZ2NjPjQuNC4K
KyAgICAgICAgd2Via2l0Lm9yZy9iLzI5MjQ0CisKKyAgICAgICAgR3BlcmYgY29kZSBnZW5lcmF0
aW9uIGlzIGRvbmUgYnkgYSBuZXcgc2NyaXB0IGNhbGxlZCBXZWJDb3JlL21ha2UtaGFzaC10b29s
cy5wbCBub3csCisgICAgICAgIGFuZCB0aGUgZ2VuZXJhdGlvbiBvcHRpb25zIHdlcmUgbW92ZWQg
aW50byB0aGUgZ3BlcmYgZmlsZXMsIHRvIG1ha2UgdGhlIG9wdGlvbnMgbW9yZSB1bmRlcnN0YW5k
YWJsZQorICAgICAgICBhbmQgdGhlIGdlbmVyYXRpb24gcHJvY2VzcyBsZXNzIHJlZHVuZGFudCBh
Y3Jvc3MgdGhlIHZhcmlvdXMgcG9ydHMuCisgICAgICAgIEhpdGhlcnRvIGdwZXJmIGdlbmVyYXRl
ZCBDIGNvZGUsIHRoZXNlIGZpbGVzIHdlcmUgaW5jbHVkZWQgaW4gbXVsdGlwbGUgQysrIGZpbGVz
IGFjcm9zcyBXZWJDb3JlCisgICAgICAgIHRvIGFjY2VzcyB0aGUgZnVuY3Rpb25hbGl0eSBwcm92
aWRlZC4gVGhpcyByZXN1bHRlZCBpbiBkZWJ1ZyBidWlsZCBmYWlsdXJlIHdpdGggbmV3ZXIgZ2Nj
IHZlcnNpb25zCisgICAgICAgIGJlY2F1c2Ugb2YgYSBuZXcgZmVhdHVyZSBvZiBnY2MsIHdoaWNo
IGRpc2FibGVzIEMgc3R5bGUgaW5saW5pbmcgaW4gZGVidWcgbW9kZS4KKyAgICAgICAgVGhlIG1h
a2UtaGFzaC10b29scy5wbCBzY3JpcHQgbGV0cyBncGVyZiBnZW5lcmF0ZSBDKysgY29kZSBmb3Ig
YWxsIGdwZXJmIGZpbGVzIG5vdywgd2hpY2ggYXJlIGNvbXBpbGVkCisgICAgICAgIGluIHRoZWly
IG93biBjb21waWxhdGlvbiB1bml0LgorICAgICAgICBUaGUgZnVuY3Rpb25hbGl0eSBwcm92aWRl
ZCBieSB0aGUgZ2VuZXJhdGVkIGNvZGUgaXMgd3JhcHBlZCBiZWhpbmQgSGFzaFRvb2xzLmgsIHNv
IHRoZXJlIGlzIG5vIG5lZWQKKyAgICAgICAgZm9yIG11bHRpcGxlIGluY2x1c2lvbnMgb2YgZ2Vu
ZXJhdGVkIEMgZmlsZXMgdG8gYWNjZXNzIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgICAgICAqIHNy
Yy9XZWJFbnRpdGllcy5jcHA6CisKIDIwMTAtMDUtMTAgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRW50aXRpZXMuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJFbnRpdGllcy5jcHAKaW5kZXggYjkxNDNkOS4uYTg4MDY3MSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJFbnRpdGllcy5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJFbnRpdGllcy5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgPHN0cmluZy5o
PgogCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
ICNpbmNsdWRlICJTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAg
LTQxLDE1ICs0Miw2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1uYW1lc3BhY2Ug
ewotLy8gTm90ZSB0aGF0IHRoaXMgZmlsZSBpcyBhbHNvIGluY2x1ZGVkIGJ5IEhUTUxUb2tlbml6
ZXIuY3BwIHNvIHdlIGFyZSBnZXR0aW5nCi0vLyB0d28gY29waWVzIG9mIHRoZSBkYXRhIGluIG1l
bW9yeS4gIFdlIGNhbiBmaXggdGhpcyBieSBjaGFuZ2luZyB0aGUgc2NyaXB0Ci0vLyB0aGF0IGdl
bmVyYXRlZCB0aGUgYXJyYXkgdG8gY3JlYXRlIGEgc3RhdGljIGNvbnN0IHRoYXQgaXMgaXRzIGxl
bmd0aCwgYnV0Ci0vLyB0aGlzIGlzIGxvdyBwcmlvcml0eSBzaW5jZSB0aGUgZGF0YSBpcyBsZXNz
IHRoYW4gNEsuIFdlIHVzZSBhbm9ueW1vdXMKLS8vIG5hbWVzcGFjZSB0byBwcmV2ZW50IG5hbWUg
Y29sbGlzaW9ucy4KLSNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXMuYyIgLy8gTk9MSU5UCi19Ci0K
IG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIHBvcHVsYXRlTWFwKFdURjo6SGFzaE1hcDxpbnQs
IFdlYkNvcmU6OlN0cmluZz4mIG1hcCwKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cg
Yi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDM4NWQ1ODEuLjZhYWM3MzkgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI0IEBACisyMDEwLTA1LTExICBBbmRyYXMgQmVjc2kgIDxhYmVjc2lAaW5mLnUtc3plZ2VkLmh1
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFj
dG9yIGdwZXJmIGNvZGUgZ2VuZXJhdGlvbiBhbmQgdXNhZ2UgdG8gZml4IHRoZSBkZWJ1ZyBidWls
ZCB3aXRoIGdjYz40LjQuCisgICAgICAgIHdlYmtpdC5vcmcvYi8yOTI0NAorCisgICAgICAgIEdw
ZXJmIGNvZGUgZ2VuZXJhdGlvbiBpcyBkb25lIGJ5IGEgbmV3IHNjcmlwdCBjYWxsZWQgV2ViQ29y
ZS9tYWtlLWhhc2gtdG9vbHMucGwgbm93LAorICAgICAgICBhbmQgdGhlIGdlbmVyYXRpb24gb3B0
aW9ucyB3ZXJlIG1vdmVkIGludG8gdGhlIGdwZXJmIGZpbGVzLCB0byBtYWtlIHRoZSBvcHRpb25z
IG1vcmUgdW5kZXJzdGFuZGFibGUKKyAgICAgICAgYW5kIHRoZSBnZW5lcmF0aW9uIHByb2Nlc3Mg
bGVzcyByZWR1bmRhbnQgYWNyb3NzIHRoZSB2YXJpb3VzIHBvcnRzLgorICAgICAgICBIaXRoZXJ0
byBncGVyZiBnZW5lcmF0ZWQgQyBjb2RlLCB0aGVzZSBmaWxlcyB3ZXJlIGluY2x1ZGVkIGluIG11
bHRpcGxlIEMrKyBmaWxlcyBhY3Jvc3MgV2ViQ29yZQorICAgICAgICB0byBhY2Nlc3MgdGhlIGZ1
bmN0aW9uYWxpdHkgcHJvdmlkZWQuIFRoaXMgcmVzdWx0ZWQgaW4gZGVidWcgYnVpbGQgZmFpbHVy
ZSB3aXRoIG5ld2VyIGdjYyB2ZXJzaW9ucworICAgICAgICBiZWNhdXNlIG9mIGEgbmV3IGZlYXR1
cmUgb2YgZ2NjLCB3aGljaCBkaXNhYmxlcyBDIHN0eWxlIGlubGluaW5nIGluIGRlYnVnIG1vZGUu
CisgICAgICAgIFRoZSBtYWtlLWhhc2gtdG9vbHMucGwgc2NyaXB0IGxldHMgZ3BlcmYgZ2VuZXJh
dGUgQysrIGNvZGUgZm9yIGFsbCBncGVyZiBmaWxlcyBub3csIHdoaWNoIGFyZSBjb21waWxlZAor
ICAgICAgICBpbiB0aGVpciBvd24gY29tcGlsYXRpb24gdW5pdC4KKyAgICAgICAgVGhlIGZ1bmN0
aW9uYWxpdHkgcHJvdmlkZWQgYnkgdGhlIGdlbmVyYXRlZCBjb2RlIGlzIHdyYXBwZWQgYmVoaW5k
IEhhc2hUb29scy5oLCBzbyB0aGVyZSBpcyBubyBuZWVkCisgICAgICAgIGZvciBtdWx0aXBsZSBp
bmNsdXNpb25zIG9mIGdlbmVyYXRlZCBDIGZpbGVzIHRvIGFjY2VzcyB0aGVzZSBmdW5jdGlvbnMu
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbik6CisKIDIw
MTAtMDUtMDkgIE5vYW0gUm9zZW50aGFsICA8bm9hbS5yb3NlbnRoYWxAbm9raWEuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IGEwYjA2
ZmIuLmJhYjFkMDQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5jcHAKQEAgLTMyLDcgKzMyLDYgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgotI2luY2x1ZGUgIkNTU1By
b3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCkBAIC00Niw2ICs0NSw3IEBA
CiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyUGFydC5oIgog
I2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2lu
Y2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAjaW5jbHVkZSAiSFRNTEFwcGxldEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKQEAgLTEzMzMsNyArMTMzMyw3IEBAIFBhc3NSZWZQ
dHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6
ZSYgcGx1Z2luU2l6ZSwKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1x
U3R5bGVTaGVldFByb3BlcnRpZXM7ICsraSkgewogICAgICAgICAgICAgICAgIENTU1Byb3BlcnR5
SUQgcHJvcGVydHkgPSBxc3R5bGVTaGVldFByb3BlcnRpZXNbaV07CiAKLSAgICAgICAgICAgICAg
ICBzdHlsZVNoZWV0ICs9IFFTdHJpbmc6OmZyb21MYXRpbjEoOjpnZXRQcm9wZXJ0eU5hbWUocHJv
cGVydHkpKTsKKyAgICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9IFFTdHJpbmc6OmZyb21MYXRp
bjEoZ2V0UHJvcGVydHlOYW1lKHByb3BlcnR5KSk7CiAgICAgICAgICAgICAgICAgc3R5bGVTaGVl
dCArPSBRTGF0aW4xQ2hhcignOicpOwogICAgICAgICAgICAgICAgIHN0eWxlU2hlZXQgKz0gY29t
cHV0ZWRTdHlsZShlbGVtZW50KS0+Z2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7CiAgICAgICAg
ICAgICAgICAgc3R5bGVTaGVldCArPSBRTGF0aW4xQ2hhcignOycpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55757</attachid>
            <date>2010-05-11 14:34:53 -0700</date>
            <delta_ts>2010-05-12 07:54:04 -0700</delta_ts>
            <desc>Refactor gperf v2 update</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>56032</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLm1rIGIvV2ViQ29yZS9BbmRyb2lk
LmRlcml2ZWQubWsKaW5kZXggYzY3OGU2MC4uOWVlMmViMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9B
bmRyb2lkLmRlcml2ZWQubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQubWsKQEAgLTU1
LDkgKzU1LDEwIEBAIExPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQogCiAjIERPQ1RZ
UEUgc3RyaW5ncwogCi1HRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9odG1sL0RvY1R5cGVTdHJpbmdz
LmNwcAotJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gZ3BlcmYgLUNFb3QgLUwgQU5TSS1D
IC1rICIqIiAtTiBmaW5kRG9jdHlwZUVudHJ5IC1GICxQdWJJREluZm86OmVBbG1vc3RTdGFuZGFy
ZHMsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzICQ8ID4gJEAKK0dFTiA6PSAkKGludGVybWVk
aWF0ZXMpL2h0bWwvRG9jVHlwZVN0cmluZ3NJbXBsLmNwcAorJChHRU4pOiBQUklWQVRFX0NVU1RP
TV9UT09MID0gcGVybCAkKExPQ0FMX1BBVEgpL21ha2UtaGFzaC10b29scy5wbCBkb2N0eXBlICQo
ZGlyICRAKSAkKExPQ0FMX1BBVEgpL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKICQoR0VOKTog
JChMT0NBTF9QQVRIKS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCiskKEdFTik6IFNDUklQVCA6
PSAkKExPQ0FMX1BBVEgpL21ha2UtaGFzaC10b29scy5wbAogCSQodHJhbnNmb3JtLWdlbmVyYXRl
ZC1zb3VyY2UpCiAjIHdlIGhhdmUgdG8gZG8gdGhpcyBkZXAgYnkgaGFuZDoKICQoaW50ZXJtZWRp
YXRlcykvaHRtbC9IVE1MRG9jdW1lbnQubyA6ICQoR0VOKQpAQCAtNjUsMTggKzY2LDIwIEBAICQo
aW50ZXJtZWRpYXRlcykvaHRtbC9IVE1MRG9jdW1lbnQubyA6ICQoR0VOKQogCiAjIEhUTUwgZW50
aXR5IG5hbWVzCiAKLUdFTiA6PSAkKGludGVybWVkaWF0ZXMpL2h0bWwvSFRNTEVudGl0eU5hbWVz
LmMKLSQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IGdwZXJmIC1hIC1MIEFOU0ktQyAtQyAt
RyAtYyAtbyAtdCAtayAnKicgLU4gZmluZEVudGl0eSAtRCAtcyAyICQ8ID4gJEAKK0dFTiA6PSAk
KGludGVybWVkaWF0ZXMpL2h0bWwvSFRNTEVudGl0eU5hbWVzSW1wbC5jcHAKKyQoR0VOKTogUFJJ
VkFURV9DVVNUT01fVE9PTCA9IHBlcmwgJChMT0NBTF9QQVRIKS9tYWtlLWhhc2gtdG9vbHMucGwg
ZW50aXRpZXMgJChkaXIgJEApICQoTE9DQUxfUEFUSCkvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3Bl
cmYKICQoR0VOKTogJChMT0NBTF9QQVRIKS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgorJChH
RU4pOiBTQ1JJUFQgOj0gJChMT0NBTF9QQVRIKS9tYWtlLWhhc2gtdG9vbHMucGwKIAkkKHRyYW5z
Zm9ybS1nZW5lcmF0ZWQtc291cmNlKQogTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4p
CiAKIAogIyBjb2xvciBuYW1lcwogCi1HRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9wbGF0Zm9ybS9D
b2xvckRhdGEuYwotJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gZ3BlcmYgLUNERW90IC1M
IEFOU0ktQyAtayAnKicgLU4gZmluZENvbG9yIC1EIC1zIDIgJDwgPiAkQAorR0VOIDo9ICQoaW50
ZXJtZWRpYXRlcykvcGxhdGZvcm0vQ29sb3JEYXRhSW1wbC5jcHAKKyQoR0VOKTogUFJJVkFURV9D
VVNUT01fVE9PTCA9IHBlcmwgJChMT0NBTF9QQVRIKS9tYWtlLWhhc2gtdG9vbHMucGwgY29sb3Jk
YXRhICQoZGlyICRAKSAkKExPQ0FMX1BBVEgpL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgogJChH
RU4pOiAkKExPQ0FMX1BBVEgpL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgorJChHRU4pOiBTQ1JJ
UFQgOj0gJChMT0NBTF9QQVRIKS9tYWtlLWhhc2gtdG9vbHMucGwKIAkkKHRyYW5zZm9ybS1nZW5l
cmF0ZWQtc291cmNlKQogTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODRkZTMw
OS4uNzdjNjBiYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw1MCBAQAorMjAxMC0wNS0xMSAgQW5kcmFzIEJlY3NpICA8YWJl
Y3NpQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWZhY3RvciBncGVyZiBjb2RlIGdlbmVyYXRpb24gYW5kIHVzYWdlIHRv
IGZpeCB0aGUgZGVidWcgYnVpbGQgd2l0aCBnY2M+NC40LgorICAgICAgICB3ZWJraXQub3JnL2Iv
MjkyNDQKKworICAgICAgICBHcGVyZiBjb2RlIGdlbmVyYXRpb24gaXMgZG9uZSBieSBhIG5ldyBz
Y3JpcHQgY2FsbGVkIFdlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsIG5vdywKKyAgICAgICAgYW5k
IHRoZSBnZW5lcmF0aW9uIG9wdGlvbnMgd2VyZSBtb3ZlZCBpbnRvIHRoZSBncGVyZiBmaWxlcywg
dG8gbWFrZSB0aGUgb3B0aW9ucyBtb3JlIHVuZGVyc3RhbmRhYmxlCisgICAgICAgIGFuZCB0aGUg
Z2VuZXJhdGlvbiBwcm9jZXNzIGxlc3MgcmVkdW5kYW50IGFjcm9zcyB0aGUgdmFyaW91cyBwb3J0
cy4KKyAgICAgICAgSGl0aGVydG8gZ3BlcmYgZ2VuZXJhdGVkIEMgY29kZSwgdGhlc2UgZmlsZXMg
d2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBDKysgZmlsZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAg
ICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGlu
IGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBuZXdlciBnY2MgdmVyc2lvbnMKKyAgICAgICAgYmVj
YXVzZSBvZiBhIG5ldyBmZWF0dXJlIG9mIGdjYywgd2hpY2ggZGlzYWJsZXMgQyBzdHlsZSBpbmxp
bmluZyBpbiBkZWJ1ZyBtb2RlLgorICAgICAgICBUaGUgbWFrZS1oYXNoLXRvb2xzLnBsIHNjcmlw
dCBsZXRzIGdwZXJmIGdlbmVyYXRlIEMrKyBjb2RlIGZvciBhbGwgZ3BlcmYgZmlsZXMgbm93LCB3
aGljaCBhcmUgY29tcGlsZWQKKyAgICAgICAgaW4gdGhlaXIgb3duIGNvbXBpbGF0aW9uIHVuaXQu
CisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoZSBnZW5lcmF0ZWQgY29k
ZSBpcyB3cmFwcGVkIGJlaGluZCBIYXNoVG9vbHMuaCwgc28gdGhlcmUgaXMgbm8gbmVlZAorICAg
ICAgICBmb3IgbXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQgQyBmaWxlcyB0byBhY2Nl
c3MgdGhlc2UgZnVuY3Rpb25zLgorCisgICAgICAgIE5vIG5ldyBmdW5jdGlvbmFsaXR5IGFkZGVk
LCBubyBuZXcgdGVzdHMgbmVlZGVkLgorCisgICAgICAgICogQW5kcm9pZC5kZXJpdmVkLm1rOgor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06
CisgICAgICAgICogV2ViQ29yZS5neXAvc2NyaXB0cy9ydWxlX2dwZXJmLnB5OgorICAgICAgICAq
IFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKiBjc3MvQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y3NzUHJvcGVydHlJRCk6CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUtl
eXdvcmRJRCk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAg
KiBjc3MvQ1NTUHJvcGVydHkuY3BwOgorICAgICAgICAqIGNzcy9DU1NTdHlsZURlY2xhcmF0aW9u
LmNwcDoKKyAgICAgICAgKiBjc3MvbWFrZXByb3AucGw6CisgICAgICAgICogY3NzL21ha2V2YWx1
ZXMucGw6CisgICAgICAgICogaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZjoKKyAgICAgICAgKiBo
dG1sL0hUTUxEb2N1bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3Bl
cmY6CisgICAgICAgICogaHRtbC9IVE1MVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKiBodG1sL1By
ZWxvYWRTY2FubmVyLmNwcDoKKyAgICAgICAgKiBtYWtlLWhhc2gtdG9vbHMucGw6IEFkZGVkLgor
ICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmY6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3IuY3BwOgorCiAyMDEwLTA1LTExICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBGYWxrZW5idXJnLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IGQzZjA1NzguLjA3OGEwYjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQ2Mywx
MCArNDYzLDEwIEBAIGFsbCA6IFwKICAgICBDU1NHcmFtbWFyLmNwcCBcCiAgICAgQ1NTUHJvcGVy
dHlOYW1lcy5oIFwKICAgICBDU1NWYWx1ZUtleXdvcmRzLmggXAotICAgIENvbG9yRGF0YS5jIFwK
LSAgICBEb2NUeXBlU3RyaW5ncy5jcHAgXAorICAgIENvbG9yRGF0YUltcGwuY3BwIFwKKyAgICBE
b2NUeXBlU3RyaW5nc0ltcGwuY3BwIFwKICAgICBIVE1MRWxlbWVudEZhY3RvcnkuY3BwIFwKLSAg
ICBIVE1MRW50aXR5TmFtZXMuYyBcCisgICAgSFRNTEVudGl0eU5hbWVzSW1wbC5jcHAgXAogICAg
IEhUTUxOYW1lcy5jcHAgXAogICAgIFdNTEVsZW1lbnRGYWN0b3J5LmNwcCBcCiAgICAgV01MTmFt
ZXMuY3BwIFwKQEAgLTU1NCwyMiArNTU0LDIyIEBAIENTU1ZhbHVlS2V5d29yZHMuaCA6ICQoV0VC
Q09SRV9DU1NfVkFMVUVfS0VZV09SRFMpIGNzcy9tYWtldmFsdWVzLnBsCiAKICMgRE9DVFlQRSBz
dHJpbmdzCiAKLURvY1R5cGVTdHJpbmdzLmNwcCA6IGh0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYK
LQlncGVyZiAtQ0VvdCAtTCBBTlNJLUMgLWsgIioiIC1OIGZpbmREb2N0eXBlRW50cnkgLUYgLFB1
YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyxQdWJJREluZm86OmVBbG1vc3RTdGFuZGFyZHMgJDwg
PiAkQAorRG9jVHlwZVN0cmluZ3NJbXBsLmNwcCA6IGh0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYg
JChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwKKwlwZXJsICQoV2ViQ29yZSkvbWFrZS1oYXNo
LXRvb2xzLnBsIGRvY3R5cGUgLiAkKFdlYkNvcmUpL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYK
IAogIyAtLS0tLS0tLQogCiAjIEhUTUwgZW50aXR5IG5hbWVzCiAKLUhUTUxFbnRpdHlOYW1lcy5j
IDogaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKLQlncGVyZiAtYSAtTCBBTlNJLUMgLUMgLUcg
LWMgLW8gLXQgLWsgJyonIC1OIGZpbmRFbnRpdHkgLUQgLXMgMiAkPCA+ICRACitIVE1MRW50aXR5
TmFtZXNJbXBsLmNwcCA6IGh0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmICQoV2ViQ29yZSkvbWFr
ZS1oYXNoLXRvb2xzLnBsCisJcGVybCAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCBlbnRp
dGllcyAuICQoV2ViQ29yZSkvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKIAogIyAtLS0tLS0t
LQogCiAjIGNvbG9yIG5hbWVzCiAKLUNvbG9yRGF0YS5jIDogcGxhdGZvcm0vQ29sb3JEYXRhLmdw
ZXJmCi0JZ3BlcmYgLUNERW90IC1MIEFOU0ktQyAtayAnKicgLU4gZmluZENvbG9yIC1EIC1zIDIg
JDwgPiAkQAorQ29sb3JEYXRhSW1wbC5jcHAgOiBwbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYgJChX
ZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwKKwlwZXJsICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRv
b2xzLnBsIGNvbG9yZGF0YSAuICQoV2ViQ29yZSkvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCiAK
ICMgLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KaW5kZXggYTZlMjMwMi4uMTYyMjU3OSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC03OSw5
ICs3OSw5IEBAIHdlYmNvcmVndGtfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwCiAKIHdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzICs9IFwKLQlE
ZXJpdmVkU291cmNlcy9Eb2NUeXBlU3RyaW5ncy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0RvY1R5
cGVTdHJpbmdzSW1wbC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3Rva2VuaXplci5jcHAgXAotCURl
cml2ZWRTb3VyY2VzL0NvbG9yRGF0YS5jIFwKKwlEZXJpdmVkU291cmNlcy9Db2xvckRhdGFJbXBs
LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L3dlYmtpdGRvbWR1bW15LmMKIAogd2ViY29y
ZV9idWlsdF9zb3VyY2VzICs9IFwKQEAgLTkwLDcgKzkwLDcgQEAgd2ViY29yZV9idWlsdF9zb3Vy
Y2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9DU1NQcm9wZXJ0eU5hbWVzLmggXAogCURlcml2ZWRT
b3VyY2VzL0NTU1ZhbHVlS2V5d29yZHMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSFRNTEVsZW1lbnRG
YWN0b3J5LmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvSFRNTEVudGl0eU5hbWVzLmMgXAorCURlcml2
ZWRTb3VyY2VzL0hUTUxFbnRpdHlOYW1lc0ltcGwuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9IVE1M
TmFtZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU0hUTUxFbGVtZW50V3JhcHBlckZhY3Rvcnku
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy9Vc2VyQWdlbnRTdHlsZVNoZWV0cy5oIFwKQEAgLTM2Nzgs
MjcgKzM2NzgsMzAgQEAgRGVyaXZlZFNvdXJjZXMvQ1NTUHJvcGVydHlOYW1lcy5oOiAkKFdFQkNP
UkVfQ1NTX1BST1BFUlRZX05BTUVTKSAkKFdlYkNvcmUpL2Nzcy8KIAlpZiBzb3J0ICQoV0VCQ09S
RV9DU1NfUFJPUEVSVFlfTkFNRVMpIHwgdW5pcSAtZCB8IGdyZXAgLUUgJ15bXiNdJzsgdGhlbiBl
Y2hvICdEdXBsaWNhdGUgdmFsdWUhJzsgZXhpdCAxOyBmaQogCWNhdCAkKFdFQkNPUkVfQ1NTX1BS
T1BFUlRZX05BTUVTKSA+IENTU1Byb3BlcnR5TmFtZXMuaW4KIAkkKFBFUkwpICIkKFdlYkNvcmUp
L2Nzcy9tYWtlcHJvcC5wbCIKLQltdiBDU1NQcm9wZXJ0eU5hbWVzLiogJChHRU5TT1VSQ0VTKQor
CW12IENTU1Byb3BlcnR5TmFtZXMuaCAkKEdFTlNPVVJDRVMpCisJbXYgQ1NTUHJvcGVydHlOYW1l
c0ltcGwuY3BwICQoR0VOU09VUkNFUykKKwltdiBDU1NQcm9wZXJ0eU5hbWVzSGFzaC5ocHAgJChH
RU5TT1VSQ0VTKQogCiAjIExvd2VyIGNhc2UgYWxsIHRoZSB2YWx1ZXMsIGFzIENTUyB2YWx1ZXMg
YXJlIGNhc2UtaW5zZW5zaXRpdmUKIERlcml2ZWRTb3VyY2VzL0NTU1ZhbHVlS2V5d29yZHMuaCA6
ICQoV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09SRFMpICQoV2ViQ29yZSkvY3NzL21ha2V2YWx1ZXMu
cGwKIAkkKFBFUkwpIC1uZSAncHJpbnQgbGMnICQoV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09SRFMp
ID4gQ1NTVmFsdWVLZXl3b3Jkcy5pbgogCWlmIHNvcnQgQ1NTVmFsdWVLZXl3b3Jkcy5pbiB8IHVu
aXEgLWQgfCBncmVwIC1FICdeW14jXSc7IHRoZW4gZWNobyAnRHVwbGljYXRlIHZhbHVlISc7IGV4
aXQgMTsgZmkKIAkkKFBFUkwpICIkKFdlYkNvcmUpL2Nzcy9tYWtldmFsdWVzLnBsIgotCW12IENT
U1ZhbHVlS2V5d29yZHMuKiAkKEdFTlNPVVJDRVMpCisJbXYgQ1NTVmFsdWVLZXl3b3Jkcy5oICQo
R0VOU09VUkNFUykKKwltdiBDU1NWYWx1ZUtleXdvcmRzSW1wbC5jcHAgJChHRU5TT1VSQ0VTKQor
CW12IENTU1ZhbHVlS2V5d29yZHNIYXNoLmhwcCAkKEdFTlNPVVJDRVMpCiAKICMgRE9DVFlQRSBz
dHJpbmdzCi1EZXJpdmVkU291cmNlcy9Eb2NUeXBlU3RyaW5ncy5jcHAgOiAkKFdlYkNvcmUpL2h0
bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKLQkkKEFNX1ZfR0VOKSQoR1BFUkYpIC1DRW90IC1JIC1M
IEFOU0ktQyAtayAiKiIgLU4gZmluZERvY3R5cGVFbnRyeSAtRiAsUHViSURJbmZvOjplQWxtb3N0
U3RhbmRhcmRzLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyAkKFdlYkNvcmUpL2h0bWwvRG9j
VHlwZVN0cmluZ3MuZ3BlcmYgPiAkQAorRGVyaXZlZFNvdXJjZXMvRG9jVHlwZVN0cmluZ3NJbXBs
LmNwcCA6ICQoV2ViQ29yZSkvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZiAkKFdlYkNvcmUpL21h
a2UtaGFzaC10b29scy5wbAorCSQoUEVSTCkgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwg
ZG9jdHlwZSAkKEdFTlNPVVJDRVMpICQoV2ViQ29yZSkvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVy
ZgogCiAjIEhUTUwgZW50aXR5IG5hbWVzCi1EZXJpdmVkU291cmNlcy9IVE1MRW50aXR5TmFtZXMu
YyA6ICQoV2ViQ29yZSkvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKLQkkKEFNX1ZfR0VOKSQo
R1BFUkYpIC1hIC1JIC1MIEFOU0ktQyAtQyAtRyAtYyAtbyAtdCAtayAnKicgLU4gZmluZEVudGl0
eSAtRCAtcyAyIFwKLQkkKFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmID4gJEAK
K0Rlcml2ZWRTb3VyY2VzL0hUTUxFbnRpdHlOYW1lc0ltcGwuY3BwIDogJChXZWJDb3JlKS9odG1s
L0hUTUxFbnRpdHlOYW1lcy5ncGVyZiAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbAorCSQo
UEVSTCkgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwgZW50aXRpZXMgJChHRU5TT1VSQ0VT
KSAkKFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCiAKICMgY29sb3IgbmFtZXMK
LURlcml2ZWRTb3VyY2VzL0NvbG9yRGF0YS5jOiAkKFdlYkNvcmUpL3BsYXRmb3JtL0NvbG9yRGF0
YS5ncGVyZgotCSQoQU1fVl9HRU4pJChHUEVSRikgLUNERW90IC1MIEFOU0ktQyAtayAnKicgLU4g
ZmluZENvbG9yIC1EIC1zIDIgJDwgPiAkQAorRGVyaXZlZFNvdXJjZXMvQ29sb3JEYXRhSW1wbC5j
cHA6ICQoV2ViQ29yZSkvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1o
YXNoLXRvb2xzLnBsCisJJChQRVJMKSAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCBjb2xv
cmRhdGEgJChHRU5TT1VSQ0VTKSAkKFdlYkNvcmUpL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgog
CiAjIENTUyB0b2tlbml6ZXIKIERlcml2ZWRTb3VyY2VzL3Rva2VuaXplci5jcHAgOiAkKFdlYkNv
cmUpL2Nzcy90b2tlbml6ZXIuZmxleCAkKFdlYkNvcmUpL2Nzcy9tYWtldG9rZW5pemVyCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIvV2ViQ29yZS9XZWJDb3Jl
Lmd5cC9XZWJDb3JlLmd5cAppbmRleCBhZGY2ZDk0Li5iNTc3ZjcyIDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXAKQEAgLTI4OCw3ICsyODgsOCBAQAogICAgICAgICAgICAgJy4uL2Nzcy9DU1NQcm9w
ZXJ0eU5hbWVzLmluJywKICAgICAgICAgICBdLAogICAgICAgICAgICdvdXRwdXRzJzogWwotICAg
ICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NQcm9wZXJ0eU5h
bWVzLmNwcCcsCisgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0
L0NTU1Byb3BlcnR5TmFtZXMuaHBwJywKKyAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElB
VEVfRElSKS93ZWJraXQvQ1NTUHJvcGVydHlOYW1lc0ltcGwuY3BwJywKICAgICAgICAgICAgICc8
KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvQ1NTUHJvcGVydHlOYW1lcy5oJywKICAg
ICAgICAgICBdLAogICAgICAgICAgICdhY3Rpb24nOiBbCkBAIC0zMTMsNyArMzE0LDggQEAKICAg
ICAgICAgICAgICcuLi9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbicsCiAgICAgICAgICAgXSwKICAg
ICAgICAgICAnb3V0cHV0cyc6IFsKLSAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVf
RElSKS93ZWJraXQvQ1NTVmFsdWVLZXl3b3Jkcy5jJywKKyAgICAgICAgICAgICc8KFNIQVJFRF9J
TlRFUk1FRElBVEVfRElSKS93ZWJraXQvQ1NTVmFsdWVLZXl3b3Jkcy5ocHAnLAorICAgICAgICAg
ICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NWYWx1ZUtleXdvcmRzSW1w
bC5jcHAnLAogICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9D
U1NWYWx1ZUtleXdvcmRzLmgnLAogICAgICAgICAgIF0sCiAgICAgICAgICAgJ2FjdGlvbic6IFsK
QEAgLTUzMCwxOCArNTMyLDExIEBACiAgICAgICAgIHsKICAgICAgICAgICAncnVsZV9uYW1lJzog
J2dwZXJmJywKICAgICAgICAgICAnZXh0ZW5zaW9uJzogJ2dwZXJmJywKLSAgICAgICAgICAjIGdw
ZXJmIG91dHB1dCBpcyBvbmx5IGV2ZXIgI2luY2x1ZGVkIGJ5IG90aGVyIHNvdXJjZSBmaWxlcy4g
IEFzCi0gICAgICAgICAgIyBzdWNoLCBwcm9jZXNzX291dHB1dHNfYXNfc291cmNlcyBpcyBvZmYu
ICBTb21lIGdwZXJmIG91dHB1dCBpcwotICAgICAgICAgICMgI2luY2x1ZGVkIGFzICouYyBhbmQg
c29tZSBhcyAqLmNwcC4gIFNpbmNlIHRoZXJlJ3Mgbm8gd2F5IHRvIHRlbGwKLSAgICAgICAgICAj
IHdoaWNoIG9uZSB3aWxsIGJlIG5lZWRlZCBpbiBhIHJ1bGUgZGVmaW5pdGlvbiwgZGVjbGFyZSBi
b3RoIGFzCi0gICAgICAgICAgIyBvdXRwdXRzLiAgVGhlIGhhcm5lc3Mgc2NyaXB0IHdpbGwgZ2Vu
ZXJhdGUgb25lIGZpbGUgYW5kIGNvcHkgaXQgdG8KLSAgICAgICAgICAjIHRoZSBvdGhlci4KICAg
ICAgICAgICAjCi0gICAgICAgICAgIyBUaGlzIHJ1bGUgcGxhY2VzIG91dHB1dHMgaW4gU0hBUkVE
X0lOVEVSTUVESUFURV9ESVIgYmVjYXVzZSBnbHVlCi0gICAgICAgICAgIyBuZWVkcyBhY2Nlc3Mg
dG8gSFRNTEVudGl0eU5hbWVzLmMuCisgICAgICAgICAgIyBncGVyZiBvdXRwdXRzIGFyZSBnZW5l
cmF0ZWQgYnkgV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwKKyAgICAgICAgICAjCiAgICAgICAg
ICAgJ291dHB1dHMnOiBbCi0gICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikv
d2Via2l0LzwoUlVMRV9JTlBVVF9ST09UKS5jJywKLSAgICAgICAgICAgICc8KFNIQVJFRF9JTlRF
Uk1FRElBVEVfRElSKS93ZWJraXQvPChSVUxFX0lOUFVUX1JPT1QpLmNwcCcsCisgICAgICAgICAg
ICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0LzwoUlVMRV9JTlBVVF9ST09UKUlt
cGwuY3BwJywKICAgICAgICAgICBdLAogICAgICAgICAgICdhY3Rpb24nOiBbCiAgICAgICAgICAg
ICAncHl0aG9uJywKQEAgLTU0OSw3ICs1NDQsNiBAQAogICAgICAgICAgICAgJzwoUlVMRV9JTlBV
VF9QQVRIKScsCiAgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0
JwogICAgICAgICAgIF0sCi0gICAgICAgICAgJ3Byb2Nlc3Nfb3V0cHV0c19hc19zb3VyY2VzJzog
MCwKICAgICAgICAgfSwKICAgICAgICAgIyBSdWxlIHRvIGJ1aWxkIGdlbmVyYXRlZCBKYXZhU2Ny
aXB0IChWOCkgYmluZGluZ3MgZnJvbSAuaWRsIHNvdXJjZS4KICAgICAgICAgewpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9jc3Nwcm9wZXJ0eW5hbWVzLnB5
IGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9jc3Nwcm9wZXJ0eW5hbWVzLnB5
CmluZGV4IDYwMzE0ZDcuLjAxOTZhZTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXAv
c2NyaXB0cy9hY3Rpb25fY3NzcHJvcGVydHluYW1lcy5weQorKysgYi9XZWJDb3JlL1dlYkNvcmUu
Z3lwL3NjcmlwdHMvYWN0aW9uX2Nzc3Byb3BlcnR5bmFtZXMucHkKQEAgLTMzLDggKzMzLDggQEAK
ICMKICMgdXNhZ2U6IGFjdGlvbl9tYWtlbmFtZXMucHkgT1VUUFVUUyAtLSBJTlBVVFMKICMKLSMg
RXhhY3RseSB0d28gb3V0cHV0cyBtdXN0IGJlIHNwZWNpZmllZDogYSBwYXRoIHRvIGVhY2ggb2Yg
Q1NTUHJvcGVydHlOYW1lcy5jcHAKLSMgYW5kIENTU1Byb3BlcnR5TmFtZXMuaC4KKyMgRXhhY3Rs
eSB0aHJlZSBvdXRwdXRzIG11c3QgYmUgc3BlY2lmaWVkOiBhIHBhdGggdG8gZWFjaCBvZiBDU1NQ
cm9wZXJ0eU5hbWVzSW1wbC5jcHAsCisjIENTU1Byb3BlcnR5TmFtZXMuaHBwIGFuZCBDU1NQcm9w
ZXJ0eU5hbWVzLmguCiAjCiAjIE11bHRpcGxlIGlucHV0cyBtYXkgYmUgc3BlY2lmaWVkLiBPbmUg
aW5wdXQgbXVzdCBoYXZlIGEgYmFzZW5hbWUgb2YKICMgbWFrZXByb3AucGw7IHRoaXMgaXMgdGFr
ZW4gYXMgdGhlIHBhdGggdG8gbWFrZXByb3AucGwuIEFsbCBvdGhlciBpbnB1dHMgYXJlCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX2Nzc3ZhbHVla2V5d29y
ZHMucHkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX2Nzc3ZhbHVla2V5d29y
ZHMucHkKaW5kZXggZWJmODk1Yi4uMzk4ZDc0YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
Lmd5cC9zY3JpcHRzL2FjdGlvbl9jc3N2YWx1ZWtleXdvcmRzLnB5CisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS5neXAvc2NyaXB0cy9hY3Rpb25fY3NzdmFsdWVrZXl3b3Jkcy5weQpAQCAtMzcsOCArMzcs
OCBAQAogIwogIyB1c2FnZTogYWN0aW9uX2Nzc3ZhbHVla2V5d29yZHMucHkgT1VUUFVUUyAtLSBJ
TlBVVFMKICMKLSMgRXhhY3RseSB0d28gb3V0cHV0cyBtdXN0IGJlIHNwZWNpZmllZDogYSBwYXRo
IHRvIGVhY2ggb2YgQ1NTVmFsdWVLZXl3b3Jkcy5jCi0jIGFuZCBDU1NWYWx1ZUtleXdvcmRzLmgu
CisjIEV4YWN0bHkgdGhyZWUgb3V0cHV0cyBtdXN0IGJlIHNwZWNpZmllZDogYSBwYXRoIHRvIGVh
Y2ggb2YgQ1NTVmFsdWVLZXl3b3Jkc0ltcGwuY3BwLAorIyBDU1NWYWx1ZUtleXdvcmRzLmhwcCwg
YW5kIENTU1ZhbHVlS2V5d29yZHMuaC4KICMKICMgTXVsdGlwbGUgaW5wdXRzIG1heSBiZSBzcGVj
aWZpZWQuIE9uZSBpbnB1dCBtdXN0IGhhdmUgYSBiYXNlbmFtZSBvZgogIyBtYWtldmFsdWVzLnBs
OyB0aGlzIGlzIHRha2VuIGFzIHRoZSBwYXRoIHRvIG1ha2V2YWx1ZXMucGwuIEFsbCBvdGhlciBp
bnB1dHMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9ydWxlX2dwZXJm
LnB5IGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL3J1bGVfZ3BlcmYucHkKaW5kZXggZTc2
ZWQ2Zi4uY2VlZWFiMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL3J1
bGVfZ3BlcmYucHkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL3J1bGVfZ3BlcmYu
cHkKQEAgLTQwLDcgKzQwLDYgQEAKICMgdG8gLmMgd2hlbiBkb25lLgogCiBpbXBvcnQgcG9zaXhw
YXRoCi1pbXBvcnQgc2h1dGlsCiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHN5cwogCkBAIC01
MCwzNiArNDksMjMgQEAgaW5wdXRGaWxlID0gc3lzLmFyZ3ZbMV0KIG91dHB1dERpciA9IHN5cy5h
cmd2WzJdCiAKIGdwZXJmQ29tbWFuZHMgPSB7Ci0gICAgJ0RvY1R5cGVTdHJpbmdzLmdwZXJmJzog
WwotICAgICAgICAnLUNFb3QnLCAnLUwnLCAnQU5TSS1DJywgJy1rKicsICctTicsICdmaW5kRG9j
dHlwZUVudHJ5JywKLSAgICAgICAgJy1GJywgJyxQdWJJREluZm86OmVBbG1vc3RTdGFuZGFyZHMs
UHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzJwotICAgIF0sCi0gICAgJ0hUTUxFbnRpdHlOYW1l
cy5ncGVyZic6IFsKLSAgICAgICAgJy1hJywgJy1MJywgJ0FOU0ktQycsICctQycsICctRycsICct
YycsICctbycsICctdCcsICctayonLAotICAgICAgICAnLU4nLCAnZmluZEVudGl0eScsICctRCcs
ICctcycsICcyJwotICAgIF0sCi0gICAgJ0NvbG9yRGF0YS5ncGVyZic6IFsKLSAgICAgICAgJy1D
REVvdCcsICctTCcsICdBTlNJLUMnLCAnLWsqJywgJy1OJywgJ2ZpbmRDb2xvcicsICctRCcsICct
cycsICcyJwotICAgIF0sCisgICAgJ0RvY1R5cGVTdHJpbmdzLmdwZXJmJzogZG9jdHlwZSwKKyAg
ICAnSFRNTEVudGl0eU5hbWVzLmdwZXJmJzogZW50aXRpZXMsCisgICAgJ0NvbG9yRGF0YS5ncGVy
Zic6IGNvbG9yZGF0YSwKIH0KIAogaW5wdXROYW1lID0gcG9zaXhwYXRoLmJhc2VuYW1lKGlucHV0
RmlsZSkKIGFzc2VydCBpbnB1dE5hbWUgaW4gZ3BlcmZDb21tYW5kcwogCiAoaW5wdXRSb290LCBp
bnB1dEV4dCkgPSBwb3NpeHBhdGguc3BsaXRleHQoaW5wdXROYW1lKQotb3V0cHV0Q3BwID0gcG9z
aXhwYXRoLmpvaW4ob3V0cHV0RGlyLCBpbnB1dFJvb3QgKyAnLmNwcCcpCiAKLSNjb21tYW5kID0g
WydncGVyZicsICctLW91dHB1dC1maWxlJywgb3V0cHV0Q3BwXQotY29tbWFuZCA9IFsnZ3BlcmYn
XQotY29tbWFuZC5leHRlbmQoZ3BlcmZDb21tYW5kc1tpbnB1dE5hbWVdKQorY29tbWFuZCA9IFsn
cGVybCddCitjb21tYW5kLmFwcGVuZChncGVyZkNvbW1hbmRzW2lucHV0TmFtZV0pCitjb21tYW5k
LmFwcGVuZChvdXRwdXREaXIpCiBjb21tYW5kLmFwcGVuZChpbnB1dEZpbGUpCiAKLW9maWxlID0g
b3BlbihvdXRwdXRDcHAsICd3JykKLQogIyBEbyBpdC4gY2hlY2tfY2FsbCBpcyBuZXcgaW4gMi41
LCBzbyBzaW11bGF0ZSBpdHMgYmVoYXZpb3Igd2l0aCBjYWxsIGFuZAogIyBhc3NlcnQuCi1yZXR1
cm5Db2RlID0gc3VicHJvY2Vzcy5jYWxsKGNvbW1hbmQsIHN0ZG91dD1vZmlsZS5maWxlbm8oKSkK
K3JldHVybkNvZGUgPSBzdWJwcm9jZXNzLmNhbGwoY29tbWFuZCkKIGFzc2VydCByZXR1cm5Db2Rl
ID09IDAKIAotb3V0cHV0QyA9IHBvc2l4cGF0aC5qb2luKG91dHB1dERpciwgaW5wdXRSb290ICsg
Jy5jJykKLXNodXRpbC5jb3B5ZmlsZShvdXRwdXRDcHAsIG91dHB1dEMpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCA3NjQyMzc5Li5h
NGYxYzRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS5wcmkKQEAgLTE3Nyw3ICsxNzcsNyBAQCBYTElOS19OQU1FUyA9ICQkUFdEL3N2Zy94bGlu
a2F0dHJzLmluCiAKIFRPS0VOSVpFUiA9ICQkUFdEL2Nzcy90b2tlbml6ZXIuZmxleAogCi1ET0NU
WVBFU1RSSU5HUyA9ICQkUFdEL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKK0RPQ1RZUEVTVFJJ
TkdTX0dQRVJGID0gJCRQV0QvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgogCiBDU1NCSVNPTiA9
ICQkUFdEL2Nzcy9DU1NHcmFtbWFyLnkKIApAQCAtMTg5LDcgKzE4OSw3IEBAIFhNTE5TX05BTUVT
ID0gJCRQV0QveG1sL3htbG5zYXR0cnMuaW4KIAogRU5USVRJRVNfR1BFUkYgPSAkJFBXRC9odG1s
L0hUTUxFbnRpdHlOYW1lcy5ncGVyZgogCi1DT0xPUkRBVF9HUEVSRiA9ICQkUFdEL3BsYXRmb3Jt
L0NvbG9yRGF0YS5ncGVyZgorQ09MT1JEQVRBX0dQRVJGID0gJCRQV0QvcGxhdGZvcm0vQ29sb3JE
YXRhLmdwZXJmCiAKIFdBTERPQ1NTUFJPUFMgPSAkJFBXRC9jc3MvQ1NTUHJvcGVydHlOYW1lcy5p
bgogCkBAIC02NDcsMTcgKzY0NywxNyBAQCB4bGlua25hbWVzLmlucHV0ID0gWExJTktfTkFNRVMK
IGFkZEV4dHJhQ29tcGlsZXIoeGxpbmtuYW1lcykKIAogIyBHRU5FUkFUT1IgNi1BOgotY3NzcHJv
cHMub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFT
RX0uY3BwCi1jc3Nwcm9wcy5pbnB1dCA9IFdBTERPQ1NTUFJPUFMKIGNzc3Byb3BzLndrU2NyaXB0
ID0gJCRQV0QvY3NzL21ha2Vwcm9wLnBsCitjc3Nwcm9wcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFU
RURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnR5TmFtZXNJbXBsLmNwcAorY3NzcHJvcHMuaW5wdXQg
PSBXQUxET0NTU1BST1BTCiBjc3Nwcm9wcy5jb21tYW5kcyA9IHBlcmwgLW5lIFwicHJpbnQgbGNc
IiAke1FNQUtFX0ZJTEVfTkFNRX0gJCR7REFTSEJPQVJEU1VQUE9SVENTU1BST1BFUlRJRVN9ICQk
e0VYVFJBQ1NTUFJPUEVSVElFU30gPiAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9LyR7UU1B
S0VfRklMRV9CQVNFfS5pbiAmJiBjZCAkJFdDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUiAmJiBwZXJs
ICQkY3NzcHJvcHMud2tTY3JpcHQgJiYgJChERUxfRklMRSkgJHtRTUFLRV9GSUxFX0JBU0V9Lmlu
ICR7UU1BS0VfRklMRV9CQVNFfS5ncGVyZgogY3NzcHJvcHMuZGVwZW5kcyA9ICR7UU1BS0VfRklM
RV9OQU1FfSAkJHtEQVNIQk9BUkRTVVBQT1JUQ1NTUFJPUEVSVElFU30gJCR7RVhUUkFDU1NQUk9Q
RVJUSUVTfQogYWRkRXh0cmFDb21waWxlcihjc3Nwcm9wcykKIAogIyBHRU5FUkFUT1IgNi1COgot
Y3NzdmFsdWVzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9G
SUxFX0JBU0V9LmMKLWNzc3ZhbHVlcy5pbnB1dCA9IFdBTERPQ1NTVkFMVUVTCiBjc3N2YWx1ZXMu
d2tTY3JpcHQgPSAkJFBXRC9jc3MvbWFrZXZhbHVlcy5wbAorY3NzdmFsdWVzLm91dHB1dCA9ICQk
e1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vQ1NTVmFsdWVLZXl3b3Jkc0ltcGwuY3BwCitjc3N2
YWx1ZXMuaW5wdXQgPSBXQUxET0NTU1ZBTFVFUwogY3NzdmFsdWVzLmNvbW1hbmRzID0gcGVybCAt
bmUgXCJwcmludCBsY1wiICR7UU1BS0VfRklMRV9OQU1FfSAkJEVYVFJBQ1NTVkFMVUVTID4gJCR7
V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJiYgY2QgJCRX
Q19HRU5FUkFURURfU09VUkNFU19ESVIgJiYgcGVybCAkJGNzc3ZhbHVlcy53a1NjcmlwdCAmJiAk
KERFTF9GSUxFKSAke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJHtRTUFLRV9GSUxFX0JBU0V9LmdwZXJm
CiBjc3N2YWx1ZXMuZGVwZW5kcyA9ICR7UU1BS0VfRklMRV9OQU1FfSAkJHtFWFRSQUNTU1ZBTFVF
U30KIGNzc3ZhbHVlcy5jbGVhbiA9ICR7UU1BS0VfRklMRV9PVVR9ICR7UU1BS0VfVkFSX1dDX0dF
TkVSQVRFRF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9LmgKQEAgLTcxMywyNCArNzEz
LDI4IEBAIHhtbG5hbWVzLndrU2NyaXB0ID0gJCRQV0QvZG9tL21ha2VfbmFtZXMucGwKIHhtbG5h
bWVzLmNvbW1hbmRzID0gcGVybCAtSSQkUFdEL2JpbmRpbmdzL3NjcmlwdHMgJCR4bWxuYW1lcy53
a1NjcmlwdCAtLWF0dHJzICQkUFdEL3htbC94bWxhdHRycy5pbiAtLXByZXByb2Nlc3NvciBcIiQk
e1FNQUtFX01PQ30gLUVcIiAtLW91dHB1dERpciAkJFdDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUgog
YWRkRXh0cmFDb21waWxlcih4bWxuYW1lcykKIAotIyBHRU5FUkFUT1IgOC1BOgotZW50aXRpZXMu
b3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9IVE1MRW50aXR5TmFtZXMuYwor
IyBHRU5FUkFUT1IgOC1lbnRpdGllczoKK2VudGl0aWVzLndrU2NyaXB0ID0gJCRQV0QvbWFrZS1o
YXNoLXRvb2xzLnBsCitlbnRpdGllcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19E
SVJ9L0hUTUxFbnRpdHlOYW1lc0ltcGwuY3BwCiBlbnRpdGllcy5pbnB1dCA9IEVOVElUSUVTX0dQ
RVJGCi1lbnRpdGllcy5jb21tYW5kcyA9IGdwZXJmIC1hIC1MIEFOU0ktQyAtQyAtRyAtYyAtbyAt
dCAtLWluY2x1ZGVzIC0ta2V5LXBvc2l0aW9ucz0iKiIgLU4gZmluZEVudGl0eSAtRCAtcyAyIDwg
JCRQV0QvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYgPiAkJHtXQ19HRU5FUkFURURfU09VUkNF
U19ESVJ9L0hUTUxFbnRpdHlOYW1lcy5jCitlbnRpdGllcy5jb21tYW5kcyA9IHBlcmwgJCRlbnRp
dGllcy53a1NjcmlwdCBlbnRpdGllcyAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9ICQkRU5U
SVRJRVNfR1BFUkYKIGVudGl0aWVzLmNsZWFuID0gJHtRTUFLRV9GSUxFX09VVH0KIGFkZEV4dHJh
Q29tcGlsZXIoZW50aXRpZXMpCiAKLSMgR0VORVJBVE9SIDgtQjoKLWRvY3R5cGVzdHJpbmdzLm91
dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9LmNw
cAotZG9jdHlwZXN0cmluZ3MuaW5wdXQgPSBET0NUWVBFU1RSSU5HUwotZG9jdHlwZXN0cmluZ3Mu
Y29tbWFuZHMgPSBncGVyZiAtQ0VvdCAtTCBBTlNJLUMgLS1pbmNsdWRlcyAtLWtleS1wb3NpdGlv
bnM9IioiIC1OIGZpbmREb2N0eXBlRW50cnkgLUYgLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJk
cyxQdWJJREluZm86OmVBbG1vc3RTdGFuZGFyZHMgPCAke1FNQUtFX0ZJTEVfTkFNRX0gPj4gJHtR
TUFLRV9GSUxFX09VVH0KLWRvY3R5cGVzdHJpbmdzLmNsZWFuID0gJHtRTUFLRV9GSUxFX09VVH0K
LWFkZEV4dHJhQ29tcGlsZXIoZG9jdHlwZXN0cmluZ3MpCi0KLSMgR0VORVJBVE9SIDgtQzoKLWNv
bG9yZGF0YS5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0NvbG9yRGF0YS5j
Ci1jb2xvcmRhdGEuaW5wdXQgPSBDT0xPUkRBVF9HUEVSRgotY29sb3JkYXRhLmNvbW1hbmRzID0g
Z3BlcmYgLUNERW90IC1MIEFOU0ktQyAtLWluY2x1ZGVzIC0ta2V5LXBvc2l0aW9ucz0iKiIgLU4g
ZmluZENvbG9yIC1EIC1zIDIgPCAke1FNQUtFX0ZJTEVfTkFNRX0gPj4gJHtRTUFLRV9GSUxFX09V
VH0KKyMgR0VORVJBVE9SIDgtZG9jdHlwZToKK2RvY3R5cGUud2tTY3JpcHQgPSAkJFBXRC9tYWtl
LWhhc2gtdG9vbHMucGwKK2RvY3R5cGUub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNf
RElSfS9Eb2NUeXBlU3RyaW5nc0ltcGwuY3BwCitkb2N0eXBlLmlucHV0ID0gRE9DVFlQRVNUUklO
R1NfR1BFUkYKK2RvY3R5cGUuY29tbWFuZHMgPSBwZXJsICQkZG9jdHlwZS53a1NjcmlwdCBkb2N0
eXBlICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0gJCRET0NUWVBFU1RSSU5HU19HUEVSRgor
ZG9jdHlwZS5jbGVhbiA9ICR7UU1BS0VfRklMRV9PVVR9CithZGRFeHRyYUNvbXBpbGVyKGRvY3R5
cGUpCisKKyMgR0VORVJBVE9SIDgtY29sb3JkYXRhOgorY29sb3JkYXRhLndrU2NyaXB0ID0gJCRQ
V0QvbWFrZS1oYXNoLXRvb2xzLnBsCitjb2xvcmRhdGEub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVE
X1NPVVJDRVNfRElSfS9Db2xvckRhdGFJbXBsLmNwcAorY29sb3JkYXRhLmlucHV0ID0gQ09MT1JE
QVRBX0dQRVJGCitjb2xvcmRhdGEuY29tbWFuZHMgPSBwZXJsICQkY29sb3JkYXRhLndrU2NyaXB0
IGNvbG9yZGF0YSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9ICQkQ09MT1JEQVRBX0dQRVJG
Citjb2xvcmRhdGEuY2xlYW4gPSAke1FNQUtFX0ZJTEVfT1VUfQogYWRkRXh0cmFDb21waWxlcihj
b2xvcmRhdGEpCiAKICMgR0VORVJBVE9SIDk6CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGM5MzgzMWQuLmRmNTg5YTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00OTA3LDggKzQ5MDcsMTMgQEAKIAkJRTFGMUU4
MzAwQzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUYxRTgyRTBDM0MyQkI5MDA2REIzOTEgLyog
WFNMVEV4dGVuc2lvbnMuaCAqLzsgfTsKIAkJRTFGRjU3QTMwRjAxMjU1QjAwODkxRUJCIC8qIFRo
cmVhZEdsb2JhbERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxRkY1N0EyMEYwMTI1NUIwMDg5MUVCQiAvKiBUaHJlYWRHbG9iYWxEYXRhLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFGRjU3QTYw
RjAxMjU2QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjU3QTUwRjAxMjU2QjAwODkxRUJCIC8q
IFRocmVhZEdsb2JhbERhdGEuY3BwICovOyB9OworCQlFNDA2RjNGQzExOTgzMTNDMDA5RDU5RDYg
LyogQ29sb3JEYXRhSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDA2RjNGQjExOTgzMDdEMDA5RDU5RDYgLyogQ29sb3JEYXRhSW1wbC5jcHAg
Ki87IH07CisJCUU0MDZGM0ZEMTE5ODMxM0YwMDlENTlENiAvKiBEb2NUeXBlU3RyaW5nc0ltcGwu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwNkYz
RkExMTk4MzA0RDAwOUQ1OUQ2IC8qIERvY1R5cGVTdHJpbmdzSW1wbC5jcHAgKi87IH07CisJCUU0
MDZGNDAzMTE5ODMyQTUwMDlENTlENiAvKiBIVE1MRW50aXR5TmFtZXNJbXBsLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDZGNDAyMTE5ODMyOUEw
MDlENTlENiAvKiBIVE1MRW50aXR5TmFtZXNJbXBsLmNwcCAqLzsgfTsKIAkJRTQxNUYxNjkwRDlB
MTY1RDAwMzNDRTk3IC8qIERPTUVsZW1lbnRUaW1lQ29udHJvbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQxNUYxNjgwRDlBMTY1RDAwMzNDRTk3IC8q
IERPTUVsZW1lbnRUaW1lQ29udHJvbC5oICovOyB9OwogCQlFNDE1RjE4NDBEOUExQTgzMDAzM0NF
OTcgLyogRWxlbWVudFRpbWVDb250cm9sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDE1RjE4MzBEOUExQTgzMDAzM0NFOTcgLyogRWxlbWVudFRpbWVD
b250cm9sLmggKi87IH07CisJCUU0MUVBMDNBMTE5ODM3NzMwMDcxMEJDNSAvKiBDU1NQcm9wZXJ0
eU5hbWVzSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNDFFQTAzODExOTgzNkRCMDA3MTBCQzUgLyogQ1NTUHJvcGVydHlOYW1lc0ltcGwuY3Bw
ICovOyB9OworCQlFNDFFQTAzQjExOTgzNzc5MDA3MTBCQzUgLyogQ1NTVmFsdWVLZXl3b3Jkc0lt
cGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQx
RUEwMzkxMTk4Mzc0OTAwNzEwQkM1IC8qIENTU1ZhbHVlS2V5d29yZHNJbXBsLmNwcCAqLzsgfTsK
IAkJRTQ0NjEzQTEwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxBdWRpb0VsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0NjEzOEYwQ0Q2MzMx
MDAwRkFEQTc1IC8qIEhUTUxBdWRpb0VsZW1lbnQuY3BwICovOyB9OwogCQlFNDQ2MTNBMjBDRDYz
MzEwMDBGQURBNzUgLyogSFRNTEF1ZGlvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0NjEzOTAwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxB
dWRpb0VsZW1lbnQuaCAqLzsgfTsKIAkJRTQ0NjEzQTQwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxN
ZWRpYUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTQ0NjEzOTIwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxNZWRpYUVsZW1lbnQuY3BwICov
OyB9OwpAQCAtNjc5MSwxOCArNjc5NiwxMyBAQAogCQk2NTY1M0YyQTBEOTcyN0QyMDBDQTk3MjMg
LyogU1ZHQWx0R2x5cGhFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNWR0FsdEdseXBoRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTY1NjUzRjJCMEQ5NzI3RDIwMENBOTcyMyAvKiBTVkdBbHRHbHlwaEVsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQWx0R2x5cGhFbGVtZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjUzRjJDMEQ5NzI3RDIwMENBOTcyMyAvKiBTVkdB
bHRHbHlwaEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0FsdEdseXBoRWxl
bWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTY1NjU4MEVEMDlEMTJCMjAw
MDBFNjFENyAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDU1NQcm9wZXJ0eU5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNjU2NTgwRUUwOUQxMkIyMDAwMEU2MUQ3IC8qIENTU1Byb3BlcnR5TmFtZXMuZ3Bl
cmYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU1Byb3BlcnR5TmFtZXMuZ3BlcmY7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MEVGMDlEMTJCMjAwMDBFNjFENyAvKiBDU1NQ
cm9wZXJ0eU5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NQcm9w
ZXJ0eU5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTY1NjU4MTFDMDlEMTJE
QjIwMDBFNjFENyAvKiBEb2NUeXBlU3RyaW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRG9jVHlwZVN0cmluZ3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2NTY1ODE0NDA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTR3JhbW1hci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTR3JhbW1hci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTY1NjU4MTQ2MDlEMTMwNDMwMDBFNjFENyAvKiBDU1NWYWx1
ZUtleXdvcmRzLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBDU1NWYWx1ZUtl
eXdvcmRzLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MTQ3MDlEMTMwNDMw
MDBFNjFENyAvKiBDU1NWYWx1ZUtleXdvcmRzLmdwZXJmICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBDU1NWYWx1ZUtleXdvcmRzLmdwZXJmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
NTY1ODE0ODA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTVmFsdWVLZXl3b3Jkcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk2NTY1ODE0QjA5RDEzMDQzMDAwRTYxRDcgLyogSFRNTEVudGl0eU5h
bWVzLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBIVE1MRW50aXR5TmFtZXMu
Yzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgxNEMwOUQxMzA0MzAwMEU2MUQ3
IC8qIHRva2VuaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
dG9rZW5pemVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgxQUMwOUQx
NEVFNjAwMEU2MUQ3IC8qIENoYXJzZXREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDaGFyc2V0RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTY1NjU4MUFEMDlEMTRFRTYwMDBFNjFENyAvKiBDb2xvckRhdGEuYyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgcGF0aCA9IENvbG9yRGF0YS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2NTY1ODFBRTA5RDE0RUU2MDAwRTYxRDcgLyogVXNlckFnZW50U3R5bGVTaGVldHMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJBZ2VudFN0eWxlU2hlZXRz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MUFGMDlEMTRFRTYwMDBFNjFE
NyAvKiBVc2VyQWdlbnRTdHlsZVNoZWV0c0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFVzZXJBZ2VudFN0eWxlU2hlZXRzRGF0YS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MUU2MDlEMTUwOEQwMDBFNjFENyAvKiBTVkdFbGVtZW50
RmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRWxl
bWVudEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAzNzIsOSAr
MTAzNzIsMTQgQEAKIAkJRTFGMUU4MkUwQzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhTTFRFeHRlbnNpb25zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkY1N0EyMEYwMTI1NUIwMDg5MUVCQiAvKiBU
aHJlYWRHbG9iYWxEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVh
ZEdsb2JhbERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjU3QTUwRjAx
MjU2QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVGhyZWFkR2xvYmFsRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUU0MDZGM0ZBMTE5ODMwNEQwMDlENTlENiAvKiBEb2NUeXBlU3RyaW5nc0lt
cGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRG9jVHlwZVN0cmlu
Z3NJbXBsLmNwcDsgcGF0aCA9IC4uL1dlYktpdEJ1aWxkL1JlbGVhc2UvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9Eb2NUeXBlU3RyaW5nc0ltcGwuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7
IH07CisJCUU0MDZGM0ZCMTE5ODMwN0QwMDlENTlENiAvKiBDb2xvckRhdGFJbXBsLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENvbG9yRGF0YUltcGwuY3BwOyBwYXRo
ID0gLi4vV2ViS2l0QnVpbGQvUmVsZWFzZS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NvbG9yRGF0
YUltcGwuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUU0MDZGNDAyMTE5ODMy
OUEwMDlENTlENiAvKiBIVE1MRW50aXR5TmFtZXNJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IEhUTUxFbnRpdHlOYW1lc0ltcGwuY3BwOyBwYXRoID0gLi4vV2Vi
S2l0QnVpbGQvUmVsZWFzZS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxFbnRpdHlOYW1lc0lt
cGwuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUU0MTVGMTBDMEQ5QTA1ODcw
MDMzQ0U5NyAvKiBFbGVtZW50VGltZUNvbnRyb2wuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEVsZW1lbnRUaW1lQ29udHJvbC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0
MTVGMTY4MEQ5QTE2NUQwMDMzQ0U5NyAvKiBET01FbGVtZW50VGltZUNvbnRyb2wuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRWxlbWVudFRpbWVDb250cm9sLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTVGMTgzMEQ5QTFBODMwMDMzQ0U5NyAvKiBFbGVt
ZW50VGltZUNvbnRyb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVu
dFRpbWVDb250cm9sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0MUVBMDM4MTE5
ODM2REIwMDcxMEJDNSAvKiBDU1NQcm9wZXJ0eU5hbWVzSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDU1NQcm9wZXJ0eU5hbWVzSW1wbC5jcHA7IHBhdGggPSAu
Li9XZWJLaXRCdWlsZC9SZWxlYXNlL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTUHJvcGVydHlO
YW1lc0ltcGwuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCUU0MUVBMDM5MTE5
ODM3NDkwMDcxMEJDNSAvKiBDU1NWYWx1ZUtleXdvcmRzSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDU1NWYWx1ZUtleXdvcmRzSW1wbC5jcHA7IHBhdGggPSAu
Li9XZWJLaXRCdWlsZC9SZWxlYXNlL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTVmFsdWVLZXl3
b3Jkc0ltcGwuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUU0NDYxMzhGMENE
NjMzMTAwMEZBREE3NSAvKiBIVE1MQXVkaW9FbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxBdWRpb0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFNDQ2MTM5MDBDRDYzMzEwMDBGQURBNzUgLyogSFRNTEF1ZGlvRWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MQXVkaW9FbGVtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0NDYxMzkxMENENjMzMTAwMEZBREE3NSAv
KiBIVE1MQXVkaW9FbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MQXVkaW9F
bGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNjQxLDIwICsxMTY0
NiwyMCBAQAogCQk2NTY1ODBFQzA5RDEyQjIwMDAwRTYxRDcgLyogRGVyaXZlZCBTb3VyY2VzICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlFNDFFQTAzOTEx
OTgzNzQ5MDA3MTBCQzUgLyogQ1NTVmFsdWVLZXl3b3Jkc0ltcGwuY3BwICovLAorCQkJCUU0MUVB
MDM4MTE5ODM2REIwMDcxMEJDNSAvKiBDU1NQcm9wZXJ0eU5hbWVzSW1wbC5jcHAgKi8sCisJCQkJ
RTQwNkY0MDIxMTk4MzI5QTAwOUQ1OUQ2IC8qIEhUTUxFbnRpdHlOYW1lc0ltcGwuY3BwICovLAor
CQkJCUU0MDZGM0ZCMTE5ODMwN0QwMDlENTlENiAvKiBDb2xvckRhdGFJbXBsLmNwcCAqLywKKwkJ
CQlFNDA2RjNGQTExOTgzMDREMDA5RDU5RDYgLyogRG9jVHlwZVN0cmluZ3NJbXBsLmNwcCAqLywK
IAkJCQk2NTY1ODFBQzA5RDE0RUU2MDAwRTYxRDcgLyogQ2hhcnNldERhdGEuY3BwICovLAotCQkJ
CTY1NjU4MUFEMDlEMTRFRTYwMDBFNjFENyAvKiBDb2xvckRhdGEuYyAqLywKIAkJCQk2NTY1ODE0
NDA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTR3JhbW1hci5jcHAgKi8sCiAJCQkJNjUwRjUzREIwOUQx
NUREQTAwQzlCMEM4IC8qIENTU0dyYW1tYXIuaCAqLywKLQkJCQk2NTY1ODBFRDA5RDEyQjIwMDAw
RTYxRDcgLyogQ1NTUHJvcGVydHlOYW1lcy5jcHAgKi8sCiAJCQkJNjU2NTgwRUUwOUQxMkIyMDAw
MEU2MUQ3IC8qIENTU1Byb3BlcnR5TmFtZXMuZ3BlcmYgKi8sCiAJCQkJNjU2NTgwRUYwOUQxMkIy
MDAwMEU2MUQ3IC8qIENTU1Byb3BlcnR5TmFtZXMuaCAqLywKLQkJCQk2NTY1ODE0NjA5RDEzMDQz
MDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5jICovLAogCQkJCTY1NjU4MTQ3MDlEMTMwNDMw
MDBFNjFENyAvKiBDU1NWYWx1ZUtleXdvcmRzLmdwZXJmICovLAogCQkJCTY1NjU4MTQ4MDlEMTMw
NDMwMDBFNjFENyAvKiBDU1NWYWx1ZUtleXdvcmRzLmggKi8sCi0JCQkJNjU2NTgxMUMwOUQxMkRC
MjAwMEU2MUQ3IC8qIERvY1R5cGVTdHJpbmdzLmNwcCAqLywKIAkJCQlBMTdDODEyMDBGMkE1Q0Y3
MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCAqLywKIAkJCQlBMTdDODEyMTBGMkE1
Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmggKi8sCi0JCQkJNjU2NTgxNEIwOUQx
MzA0MzAwMEU2MUQ3IC8qIEhUTUxFbnRpdHlOYW1lcy5jICovLAogCQkJCUE4RDA2QjM4MEEyNjVE
Q0QwMDVFNzIwMyAvKiBIVE1MTmFtZXMuY3BwICovLAogCQkJCUE4RDA2QjM3MEEyNjVEQ0QwMDVF
NzIwMyAvKiBIVE1MTmFtZXMuaCAqLywKIAkJCQk5MzhFNjVGNjA5RjA5ODVEMDA4QTQ4RUMgLyog
SlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAqLywKQEAgLTIxNDE5LDYgKzIxNDI0LDEx
IEBACiAJCQkJQzU5NTY2NzgxMTkzMjRDNjAwRkRDRTQ3IC8qIEpTSURCUmVxdWVzdEN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTk0RjQzQjExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxl
UmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFOTRGNDUwMTE5MjA5NjQwMEI3Rjc1RCAv
KiBGaWxlUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUU0MDZGM0ZDMTE5ODMxM0MwMDlE
NTlENiAvKiBDb2xvckRhdGFJbXBsLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUU0MDZGM0ZEMTE5
ODMxM0YwMDlENTlENiAvKiBEb2NUeXBlU3RyaW5nc0ltcGwuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJRTQwNkY0MDMxMTk4MzJBNTAwOUQ1OUQ2IC8qIEhUTUxFbnRpdHlOYW1lc0ltcGwuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRTQxRUEwM0ExMTk4Mzc3MzAwNzEwQkM1IC8qIENTU1Byb3BlcnR5
TmFtZXNJbXBsLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUU0MUVBMDNCMTE5ODM3NzkwMDcxMEJD
NSAvKiBDU1NWYWx1ZUtleXdvcmRzSW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGJhNTAzYjguLmI3MmVjZTYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
KysrIGIvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMzYs
NiArMzYsNyBAQAogI2luY2x1ZGUgIkNTU1ZhbHVlTGlzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgog
I2luY2x1ZGUgIlJlY3QuaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5k
ZXJMYXllci5oIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24uY3BwIGIvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCmlu
ZGV4IDdjMDlmOTEuLjczOGNmN2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbi5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNs
dWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJTdHlsZWRFbGVtZW50LmgiCiAKIHVzaW5nIG5h
bWVzcGFjZSBzdGQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA2ZjdjZjEyLi4zMjk2MzcwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKQEAgLTYxLDYgKzYxLDcgQEAKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNs
dWRlICJGb250RmFtaWx5VmFsdWUuaCIKICNpbmNsdWRlICJGb250VmFsdWUuaCIKKyNpbmNsdWRl
ICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1
ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiUGFpci5oIgpAQCAtODgsOSArODksNiBAQCBleHRlcm4gaW50
IGNzc3l5cGFyc2Uodm9pZCogcGFyc2VyKTsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2luZyBu
YW1lc3BhY2UgV1RGOwogCi0jaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5jcHAiCi0jaW5jbHVk
ZSAiQ1NTVmFsdWVLZXl3b3Jkcy5jIgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBJTlZBTElEX05VTV9QQVJTRURfUFJPUEVSVElFUyA9IFVJTlRfTUFYOwpA
QCAtNTUyNiw3ICs1NTI0LDcgQEAgc3RhdGljIGludCBjc3NQcm9wZXJ0eUlEKGNvbnN0IFVDaGFy
KiBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVkIGxlbmd0aCkKICAgICAgICAgfQogICAgIH0KIAotICAg
IGNvbnN0IHByb3BzKiBoYXNoVGFibGVFbnRyeSA9IGZpbmRQcm9wKG5hbWUsIGxlbmd0aCk7Cisg
ICAgY29uc3QgUHJvcGVydHkqIGhhc2hUYWJsZUVudHJ5ID0gZmluZFByb3BlcnR5KG5hbWUsIGxl
bmd0aCk7CiAgICAgcmV0dXJuIGhhc2hUYWJsZUVudHJ5ID8gaGFzaFRhYmxlRW50cnktPmlkIDog
MDsKIH0KIApAQCAtNTU2OCw3ICs1NTY2LDcgQEAgaW50IGNzc1ZhbHVlS2V5d29yZElEKGNvbnN0
IENTU1BhcnNlclN0cmluZyYgc3RyaW5nKQogICAgICAgICB9CiAgICAgfQogCi0gICAgY29uc3Qg
Y3NzX3ZhbHVlKiBoYXNoVGFibGVFbnRyeSA9IGZpbmRWYWx1ZShidWZmZXIsIGxlbmd0aCk7Cisg
ICAgY29uc3QgVmFsdWUqIGhhc2hUYWJsZUVudHJ5ID0gZmluZFZhbHVlKGJ1ZmZlciwgbGVuZ3Ro
KTsKICAgICByZXR1cm4gaGFzaFRhYmxlRW50cnkgPyBoYXNoVGFibGVFbnRyeS0+aWQgOiAwOwog
fQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9XZWJD
b3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKaW5kZXggMjEwZDZmNS4uMzM3ZjBjNSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCisrKyBiL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNv
bG9yLmgiCiAjaW5jbHVkZSAiQ291bnRlci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
KyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiUGFp
ci5oIgogI2luY2x1ZGUgIlJHQkNvbG9yLmgiCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQ
cm9wZXJ0eS5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKaW5kZXggZDdmMjE3NS4u
OWM4YTUxYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCisrKyBiL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIkNT
U1Byb3BlcnR5LmgiCiAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCisjaW5jbHVkZSAi
SGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAg
Yi9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA0MDRhOTc4Li5lNDVk
MmZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAorKysg
Yi9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjYsNiArMjYsNyBAQAog
I2luY2x1ZGUgIkNTU1Byb3BlcnR5LmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgog
I2luY2x1ZGUgIkNTU1J1bGUuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlIDx3
dGYvQVNDSUlDVHlwZS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV1RGOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9jc3MvbWFrZXByb3AucGwgYi9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAppbmRleCAxMTU5
NjlmLi5lZjZhMjc3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAorKysgYi9X
ZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbApAQCAtNSw2ICs1LDcgQEAKICMgICBDb3B5cmlnaHQgKEMp
IDE5OTkgV2FsZG8gQmFzdGlhbiAoYmFzdGlhbkBrZGUub3JnKQogIyAgIENvcHlyaWdodCAoQykg
MjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjICAgQ29weXJpZ2h0
IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQor
IyAgIENvcHlyaWdodCAoQykgMjAxMCBBbmRyYXMgQmVjc2kgKGFiZWNzaUBpbmYudS1zemVnZWQu
aHUpLCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogIwogIyAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICMgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzcsMTIg
KzM4LDE5IEBAIG9wZW4gR1BFUkYsICI+Q1NTUHJvcGVydHlOYW1lcy5ncGVyZiIgfHwgZGllICJD
b3VsZCBub3Qgb3BlbiBDU1NQcm9wZXJ0eU5hbWVzLmdwCiBwcmludCBHUEVSRiA8PCAiRU9GIjsK
ICV7CiAvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBDU1NQcm9w
ZXJ0eU5hbWVzLmluIGJ5IG1ha2Vwcm9wLCBkbyBub3QgZWRpdCAqLwotI2luY2x1ZGUgXCJDU1NQ
cm9wZXJ0eU5hbWVzLmhcIgogJX0KLXN0cnVjdCBwcm9wcyB7Ci0gICAgY29uc3QgY2hhciogbmFt
ZTsKLSAgICBpbnQgaWQ7Ci19OworJXN0cnVjdC10eXBlCitzdHJ1Y3QgUHJvcGVydHk7Cislb21p
dC1zdHJ1Y3QtdHlwZQorJWxhbmd1YWdlPUMrKworJXJlYWRvbmx5LXRhYmxlcworJWdsb2JhbC10
YWJsZQorJWNvbXBhcmUtc3RybmNtcAorJWRlZmluZSBjbGFzcy1uYW1lIENTU1Byb3BlcnR5TmFt
ZXNIYXNoCislZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRQcm9wZXJ0eUltcGwKKyVk
ZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1lIHByb3BlcnlfaGFzaF9mdW5jdGlvbgorJWluY2x1ZGVz
CislZW51bQogJSUKIEVPRgogCkBAIC01Nyw2ICs2NSw3IEBAIGNsb3NlIEdQRVJGOwogb3BlbiBI
RUFERVIsICI+Q1NTUHJvcGVydHlOYW1lcy5oIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1By
b3BlcnR5TmFtZXMuaCBmb3Igd3JpdGluZyI7CiBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAvKiBU
aGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBDU1NQcm9wZXJ0eU5hbWVz
LmluIGJ5IG1ha2Vwcm9wLCBkbyBub3QgZWRpdCAqLworI2luY2x1ZGUgInd0Zi90ZXh0L0NTdHJp
bmcuaCIKIAogI2lmbmRlZiBDU1NQcm9wZXJ0eU5hbWVzX2gKICNkZWZpbmUgQ1NTUHJvcGVydHlO
YW1lc19oCkBAIC04NiwxNiArOTUsMTQgQEAgcHJpbnQgSEVBREVSICJjb25zdCBzaXplX3QgbWF4
Q1NTUHJvcGVydHlOYW1lTGVuZ3RoID0gJG1heExlbjtcbiI7CiAKIHByaW50IEhFQURFUiA8PCAi
RU9GIjsKIAotY29uc3QgY2hhciogZ2V0UHJvcGVydHlOYW1lKENTU1Byb3BlcnR5SUQpOwotCi0j
ZW5kaWYKKyNlbmRpZiAvLyBDU1NQcm9wZXJ0eU5hbWVzX2gKIEVPRgogCiBjbG9zZSBIRUFERVI7
CiAKLXN5c3RlbSgiZ3BlcmYgLWEgLUwgQU5TSS1DIC1FIC1DIC1jIC1vIC10IC0ta2V5LXBvc2l0
aW9ucz1cIipcIiAtTmZpbmRQcm9wIC1IaGFzaF9wcm9wIC1Xd29yZGxpc3RfcHJvcCAtRCAtcyAy
IENTU1Byb3BlcnR5TmFtZXMuZ3BlcmYgPiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCIpID09IDAgfHwg
ZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOworc3lzdGVtKCJncGVyZiAtLWtleS1wb3Np
dGlvbnM9XCIqXCIgLUQgLXMgMiBDU1NQcm9wZXJ0eU5hbWVzLmdwZXJmID4gQ1NTUHJvcGVydHlO
YW1lc0hhc2guaHBwIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAK
LW9wZW4gQywgIj4+Q1NTUHJvcGVydHlOYW1lcy5jcHAiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4g
Q1NTUHJvcGVydHlOYW1lcy5jcHAgZm9yIHdyaXRpbmciOworb3BlbiBDLCAiPj5DU1NQcm9wZXJ0
eU5hbWVzSGFzaC5ocHAiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTUHJvcGVydHlOYW1lc0hh
c2guaHBwIGZvciB3cml0aW5nIjsKIHByaW50IEMgInN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
cHJvcGVydHlOYW1lU3RyaW5nc1skbnVtXSA9IHtcbiI7CiAKIGZvcmVhY2ggbXkgJG5hbWUgKEBu
YW1lcykgewpAQCAtMTA0LDYgKzExMSwyOCBAQCBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsK
IAogcHJpbnQgQyA8PCAiRU9GIjsKIH07CisKK0VPRgorCitjbG9zZSBDOworCitteSAkcHJvcGVy
dHlOYW1lc0ltcGwgPSAiQ1NTUHJvcGVydHlOYW1lc0ltcGwuY3BwIjsKKworb3BlbiBQUk9QRVJU
WU5BTUVTLCAiPiRwcm9wZXJ0eU5hbWVzSW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkcHJv
cGVydHlOYW1lc0ltcGwgZm9yIHdyaXRpbmciOworcHJpbnQgUFJPUEVSVFlOQU1FUyA8PCAiRU9G
IjsKKy8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gt
dG9vbHMucGwsIGRvIG5vdCBlZGl0ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJIYXNoVG9vbHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworI2luY2x1ZGUgIkNTU1Byb3Bl
cnR5TmFtZXNIYXNoLmhwcCIKKworY29uc3QgUHJvcGVydHkqIGZpbmRQcm9wZXJ0eSAocmVnaXN0
ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHJl
dHVybiBDU1NQcm9wZXJ0eU5hbWVzSGFzaDo6ZmluZFByb3BlcnR5SW1wbChzdHIsIGxlbik7Cit9
CisKIGNvbnN0IGNoYXIqIGdldFByb3BlcnR5TmFtZShDU1NQcm9wZXJ0eUlEIGlkKQogewogICAg
IGlmIChpZCA8IGZpcnN0Q1NTUHJvcGVydHkpCkBAIC0xMTMsNyArMTQyLDkgQEAgY29uc3QgY2hh
ciogZ2V0UHJvcGVydHlOYW1lKENTU1Byb3BlcnR5SUQgaWQpCiAgICAgICAgIHJldHVybiAwOwog
ICAgIHJldHVybiBwcm9wZXJ0eU5hbWVTdHJpbmdzW2luZGV4XTsKIH0KLUVPRgogCi1jbG9zZSBD
OworfQorCitFT0YKK2Nsb3NlIFBST1BFUlRZTkFNRVM7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Y3NzL21ha2V2YWx1ZXMucGwgYi9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCmluZGV4IGU0OTk4
MWQuLjY4ODBkZTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwKKysrIGIv
V2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbApAQCAtNSw2ICs1LDcgQEAKICMgICBDb3B5cmlnaHQg
KEMpIDE5OTkgV2FsZG8gQmFzdGlhbiAoYmFzdGlhbkBrZGUub3JnKQogIyAgIENvcHlyaWdodCAo
QykgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjICAgQ29weXJpZ2h0IChD
KSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorIyAg
IENvcHlyaWdodCAoQykgMjAxMCBBbmRyYXMgQmVjc2kgKGFiZWNzaUBpbmYudS1zemVnZWQuaHUp
LCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogIwogIyAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICMgICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzcsMTMgKzM4
LDE5IEBAIG9wZW4gR1BFUkYsICI+Q1NTVmFsdWVLZXl3b3Jkcy5ncGVyZiIgfHwgZGllICJDb3Vs
ZCBub3Qgb3BlbiBDU1NWYWx1ZUtleXdvcmRzLmdwCiBwcmludCBHUEVSRiA8PCAiRU9GIjsKICV7
CiAvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBDU1NWYWx1ZUtl
eXdvcmRzLmluIGJ5IG1ha2V2YWx1ZXMsIGRvIG5vdCBlZGl0ICovCi0KLSNpbmNsdWRlIFwiQ1NT
VmFsdWVLZXl3b3Jkcy5oXCIKICV9Ci1zdHJ1Y3QgY3NzX3ZhbHVlIHsKLSAgICBjb25zdCBjaGFy
KiBuYW1lOwotICAgIGludCBpZDsKLX07Cislc3RydWN0LXR5cGUKK3N0cnVjdCBWYWx1ZTsKKyVv
bWl0LXN0cnVjdC10eXBlCislbGFuZ3VhZ2U9QysrCislcmVhZG9ubHktdGFibGVzCislZ2xvYmFs
LXRhYmxlCislY29tcGFyZS1zdHJuY21wCislZGVmaW5lIGNsYXNzLW5hbWUgQ1NTVmFsdWVLZXl3
b3Jkc0hhc2gKKyVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZFZhbHVlSW1wbAorJWRl
ZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgdmFsdWVfaGFzaF9mdW5jdGlvbgorJWluY2x1ZGVzCisl
ZW51bQogJSUKIEVPRgogCkBAIC01OCw5ICs2NSwxMCBAQCBjbG9zZSBHUEVSRjsKIG9wZW4gSEVB
REVSLCAiPkNTU1ZhbHVlS2V5d29yZHMuaCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NWYWx1
ZUtleXdvcmRzLmggZm9yIHdyaXRpbmciOwogcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogLyogVGhp
cyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gQ1NTVmFsdWVLZXl3b3Jkcy5p
biBieSBtYWtldmFsdWVzLCBkbyBub3QgZWRpdCAqLworI2luY2x1ZGUgInd0Zi90ZXh0L0NTdHJp
bmcuaCIKIAotI2lmbmRlZiBDU1NWYWx1ZXNfaAotI2RlZmluZSBDU1NWYWx1ZXNfaAorI2lmbmRl
ZiBDU1NWYWx1ZUtleXdvcmRzX2gKKyNkZWZpbmUgQ1NTVmFsdWVLZXl3b3Jkc19oCiAKIGNvbnN0
IGludCBDU1NWYWx1ZUludmFsaWQgPSAwOwogRU9GCkBAIC04MCwxNSArODgsMTQgQEAgcHJpbnQg
SEVBREVSICJjb25zdCBpbnQgbnVtQ1NTVmFsdWVLZXl3b3JkcyA9ICIgLiAkaSAuICI7XG4iOwog
cHJpbnQgSEVBREVSICJjb25zdCBzaXplX3QgbWF4Q1NTVmFsdWVLZXl3b3JkTGVuZ3RoID0gIiAu
ICRtYXhMZW4gLiAiO1xuIjsKIHByaW50IEhFQURFUiA8PCAiRU9GIjsKIAotY29uc3QgY2hhciog
Z2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKTsKIAotI2VuZGlmCisjZW5kaWYgLy8gQ1NT
VmFsdWVLZXl3b3Jkc19oCiBFT0YKIGNsb3NlIEhFQURFUjsKIAotc3lzdGVtKCJncGVyZiAtTCBB
TlNJLUMgLUUgLUMgLW4gLW8gLXQgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1OZmluZFZhbHVlIC1I
aGFzaF92YWwgLVd3b3JkbGlzdF92YWx1ZSAtRCBDU1NWYWx1ZUtleXdvcmRzLmdwZXJmID4gQ1NT
VmFsdWVLZXl3b3Jkcy5jIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7
CitzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtcyAyIENTU1ZhbHVlS2V5
d29yZHMuZ3BlcmYgPiBDU1NWYWx1ZUtleXdvcmRzSGFzaC5ocHAiKSA9PSAwIHx8IGRpZSAiY2Fs
bGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKIAotb3BlbiBDLCAiPj5DU1NWYWx1ZUtleXdvcmRzLmMi
IHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTVmFsdWVLZXl3b3Jkcy5jIGZvciB3cml0aW5nIjsK
K29wZW4gQywgIj4+Q1NTVmFsdWVLZXl3b3Jkc0hhc2guaHBwIiB8fCBkaWUgIkNvdWxkIG5vdCBv
cGVuIENTU1ZhbHVlS2V5d29yZHNIYXNoLmhwcCBmb3Igd3JpdGluZyI7CiBwcmludCBDICAic3Rh
dGljIGNvbnN0IGNoYXIgKiBjb25zdCB2YWx1ZUxpc3RbXSA9IHtcbiI7CiBwcmludCBDICAiXCJc
IixcbiI7CiBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKQEAgLTk3LDEyICsxMDQsMzUgQEAg
Zm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CiBwcmludCBDIDw8ICJFT0YiOwogICAgIDAKIH07
CisKK0VPRgorCitjbG9zZSBDOworCitteSAkdmFsdWVLZXl3b3Jkc0ltcGwgPSAiQ1NTVmFsdWVL
ZXl3b3Jkc0ltcGwuY3BwIjsKKworb3BlbiBWQUxVRUtFWVdPUkRTLCAiPiR2YWx1ZUtleXdvcmRz
SW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkdmFsdWVLZXl3b3Jkc0ltcGwgZm9yIHdyaXRp
bmciOworcHJpbnQgVkFMVUVLRVlXT1JEUyA8PCAiRU9GIjsKKy8qIFRoaXMgZmlsZSBpcyBhdXRv
bWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5vdCBlZGl0ICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHNIYXNoLmhwcCIKKworY29u
c3QgVmFsdWUqIGZpbmRWYWx1ZSAocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1
bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHJldHVybiBDU1NWYWx1ZUtleXdvcmRzSGFzaDo6Zmlu
ZFZhbHVlSW1wbChzdHIsIGxlbik7Cit9CisKIGNvbnN0IGNoYXIqIGdldFZhbHVlTmFtZSh1bnNp
Z25lZCBzaG9ydCBpZCkKIHsKICAgICBpZiAoaWQgPj0gbnVtQ1NTVmFsdWVLZXl3b3JkcyB8fCBp
ZCA8PSAwKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gdmFsdWVMaXN0W2lkXTsKIH0K
LUVPRgogCi1jbG9zZSBDOworfQorCitFT0YKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9Eb2NU
eXBlU3RyaW5ncy5ncGVyZiBiL1dlYkNvcmUvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgppbmRl
eCAzOTg2MjZlLi4xYzc0MTFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvRG9jVHlwZVN0cmlu
Z3MuZ3BlcmYKKysrIGIvV2ViQ29yZS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCkBAIC0xLDE0
ICsxLDE2IEBACi1zdHJ1Y3QgUHViSURJbmZvIHsKLSAgICBlbnVtIGVNb2RlIHsgCi0gICAgICAg
IGVRdWlya3MsICAgICAgICAgCi0gICAgICAgIGVRdWlya3MzLCAgICAgICAKLSAgICAgICAgZUFs
bW9zdFN0YW5kYXJkcwotICAgIH07Ci0KLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGVNb2Rl
IG1vZGVfaWZfbm9fc3lzaWQ7Ci0gICAgZU1vZGUgbW9kZV9pZl9zeXNpZDsKLX0KKyVzdHJ1Y3Qt
dHlwZQorc3RydWN0IFB1YklESW5mbzsKKyVvbWl0LXN0cnVjdC10eXBlCislbGFuZ3VhZ2U9Qysr
CislcmVhZG9ubHktdGFibGVzCislZ2xvYmFsLXRhYmxlCislY29tcGFyZS1zdHJuY21wCislZGVm
aW5lIGluaXRpYWxpemVyLXN1ZmZpeCAsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzLFB1YklE
SW5mbzo6ZUFsbW9zdFN0YW5kYXJkcworJWRlZmluZSBjbGFzcy1uYW1lIERvY1R5cGVTdHJpbmdz
SGFzaAorJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kRG9jdHlwZUVudHJ5SW1wbAor
JWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgZG9jdHlwZV9oYXNoX2Z1bmN0aW9uCislaW5jbHVk
ZXMKKyVlbnVtCiAlJQogIisvL3NpbG1hcmlsLy9kdGQgaHRtbCBwcm8gdjByMTEgMTk5NzAxMDEv
L2VuIiwgUHViSURJbmZvOjplUXVpcmtzMywgUHViSURJbmZvOjplUXVpcmtzMwogIi0vL2FkdmFz
b2Z0IGx0ZC8vZHRkIGh0bWwgMy4wIGFzd2VkaXQgKyBleHRlbnNpb25zLy9lbiIsIFB1YklESW5m
bzo6ZVF1aXJrczMsIFB1YklESW5mbzo6ZVF1aXJrczMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKaW5kZXgg
MzA0OGVlOS4uYTZjN2U2ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKQEAgLTY0LDYgKzY0LDcgQEAK
ICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIkhUTUxC
b2R5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50RmFjdG9yeS5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgpAQCAtNzMsOCArNzQsNiBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKLSNpbmNsdWRlICJEb2NUeXBlU3RyaW5ncy5jcHAi
Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYgYi9XZWJDb3JlL2h0
bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCmluZGV4IGIxNmIzZDguLmQ2M2QxMzMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxFbnRpdHlOYW1lcy5ncGVyZgpAQCAtMiw2ICsyLDcgQEAKIC8qCiAgICAgIENvcHlyaWdo
dCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBtcGktaGQubXBnLmRlKQogICAgICBDb3B5cmln
aHQgKEMpIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICAgICBDb3B5cmlnaHQgKEMpIDIwMTAgQW5kcmFzIEJlY3NpIChhYmVjc2lAaW5mLnUt
c3plZ2VkLmh1KSwgVW5pdmVyc2l0eSBvZiBTemVnZWQKICAgCiAgICAgIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTIxLDE1ICsyMiwyMSBAQAogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIAogICAgIEhUTUxF
bnRpdHlOYW1lcy5ncGVyZjogaW5wdXQgZmlsZSB0byBnZW5lcmF0ZSBhIGhhc2ggdGFibGUgZm9y
IGVudGl0aWVzCi0gICAgSFRNTEVudGl0eU5hbWVzLmM6IERPIE5PVCBFRElUISBnZW5lcmF0ZWQg
YnkgdGhlIGNvbW1hbmQKLSAgICAiZ3BlcmYgLWEgLUwgIkFOU0ktQyIgLUMgLUcgLWMgLW8gLXQg
LWsgJyonIC1OZmluZEVudGl0eSAtRCAtcyAyIEhUTUxFbnRpdHlOYW1lcy5ncGVyZiA+IGVudGl0
aWVzLmMiICAgCi0gICAgZnJvbSBIVE1MRW50aXR5TmFtZXMuZ3BlcmYgCisgICAgSFRNTEVudGl0
eU5hbWVzLmhwcDogRE8gTk9UIEVESVQhIGdlbmVyYXRlZCBieSBXZWJDb3JlL21ha2VfaGFzaF90
b29scy5wbAogKi8KICV9Ci1zdHJ1Y3QgRW50aXR5IHsKLSAgICBjb25zdCBjaGFyICpuYW1lOwot
ICAgIGludCBjb2RlOwotfTsKKyVzdHJ1Y3QtdHlwZQorc3RydWN0IEVudGl0eTsKKyVvbWl0LXN0
cnVjdC10eXBlCislbGFuZ3VhZ2U9QysrCislcmVhZG9ubHktdGFibGVzCislZ2xvYmFsLXRhYmxl
CislY29tcGFyZS1zdHJuY21wCislZGVmaW5lIGNsYXNzLW5hbWUgSFRNTEVudGl0eUhhc2gKKyVk
ZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZEVudGl0eUltcGwKKyVkZWZpbmUgaGFzaC1m
dW5jdGlvbi1uYW1lIGVudGl0eV9oYXNoX2Z1bmN0aW9uCislaW5jbHVkZXMKKyVlbnVtCiAlJQog
QUVsaWcsIDB4MDBjNgogQU1QLCAzOApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUb2tl
bml6ZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwCmluZGV4IGM4MDdhNGYu
LmE1M2NkZjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcAorKysg
Yi9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNs
dWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VyLmgiCkBAIC01NSw4
ICs1Niw2IEBACiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KIAotI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jIgotCiAjZGVmaW5lIFBS
RUxPQURfU0NBTk5FUl9FTkFCTEVEIDEKIC8vICNkZWZpbmUgSU5TVFJVTUVOVF9MQVlPVVRfU0NI
RURVTElORyAxCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9QcmVsb2FkU2Nhbm5lci5jcHAg
Yi9XZWJDb3JlL2h0bWwvUHJlbG9hZFNjYW5uZXIuY3BwCmluZGV4IGNkODRiMjAuLmVlZmE0NmYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9QcmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvV2ViQ29y
ZS9odG1sL1ByZWxvYWRTY2FubmVyLmNwcApAQCAtMzgsMjQgKzM4LDEzIEBACiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgi
CisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUu
aD4KIAotLy8gVXNlIF9fR05VQ19fIGluc3RlYWQgb2YgUExBVEZPUk0oR0NDKSB0byBzdGF5IGNv
bnNpc3RlbnQgd2l0aCB0aGUgZ3BlcmYgZ2VuZXJhdGVkIGMgZmlsZQotI2lmZGVmIF9fR05VQ19f
Ci0vLyBUaGUgbWFpbiB0b2tlbml6ZXIgaW5jbHVkZXMgdGhpcyB0b28gc28gd2UgYXJlIGdldHRp
bmcgdHdvIGNvcGllcyBvZiB0aGUgZGF0YS4gSG93ZXZlciwgdGhpcyB3YXkgdGhlIGNvZGUgZ2V0
cyBpbmxpbmVkLgotI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jIgotI2Vsc2UKLS8vIE5vdCBp
bmxpbmVkIGZvciBub24tR0NDIGNvbXBpbGVycwotc3RydWN0IEVudGl0eSB7Ci0gICAgY29uc3Qg
Y2hhciogbmFtZTsKLSAgICBpbnQgY29kZTsKLX07Ci1jb25zdCBzdHJ1Y3QgRW50aXR5KiBmaW5k
RW50aXR5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxl
bik7Ci0jZW5kaWYKIAogI2RlZmluZSBQUkVMT0FEX0RFQlVHIDAKIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9tYWtlLWhhc2gtdG9vbHMucGwgYi9XZWJDb3JlL21ha2UtaGFzaC10b29scy5wbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWM1YTE3Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwKQEAgLTAsMCArMSwxOTEgQEAKKyMhIC91c3Iv
YmluL3BlcmwKKyMKKyMgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IHByb2plY3QK
KyMKKyMgICBDb3B5cmlnaHQgKEMpIDIwMTAgQW5kcmFzIEJlY3NpIChhYmVjc2lAaW5mLnUtc3pl
Z2VkLmh1KSwgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyMKKyMgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyMgICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyMgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisjCisjICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
IyAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIwor
IyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyMgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworIyAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisj
ICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisKK3VzZSBzdHJpY3Q7Cit1c2UgU3dpdGNo
OworCitteSAkb3B0aW9uICAgICAgICAgICAgICAgICAgICAgPSAkQVJHVlswXTsKK3NoaWZ0Owor
bXkgJG91dGRpciAgICAgICAgICAgICAgICAgICAgID0gJEFSR1ZbMF07CitzaGlmdDsKKworbXkg
JGhhc2hUb29sc0hlYWRlciA9ICIkb3V0ZGlyL0hhc2hUb29scy5oIjsKKworc3ViIGNyZWF0ZUhh
c2hUb29sc0hlYWRlcigpIHsKKworb3BlbiBIRUFERVIsICI+JGhhc2hUb29sc0hlYWRlciIgfHwg
ZGllICJDb3VsZCBub3Qgb3BlbiAkaGFzaFRvb2xzSGVhZGVyIGZvciB3cml0aW5nIjsKK3ByaW50
IEhFQURFUiA8PCAiRU9GIjsKKy8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRl
ZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5vdCBlZGl0ICovCisKKyNpbmNsdWRlICJDU1NW
YWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgorCisjaWZuZGVm
IEhhc2hUb29sc19oCisjZGVmaW5lIEhhc2hUb29sc19oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RydWN0IEVudGl0eSB7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBpbnQgY29kZTsK
K307CisKK3N0cnVjdCBQdWJJREluZm8geworICAgIGVudW0gZU1vZGUgeworICAgICAgICBlUXVp
cmtzLAorICAgICAgICBlUXVpcmtzMywKKyAgICAgICAgZUFsbW9zdFN0YW5kYXJkcworICAgIH07
CisKKyAgICBjb25zdCBjaGFyKiBuYW1lOworICAgIGVNb2RlIG1vZGVfaWZfbm9fc3lzaWQ7Cisg
ICAgZU1vZGUgbW9kZV9pZl9zeXNpZDsKK307CisKK3N0cnVjdCBOYW1lZENvbG9yIHsKKyAgICBj
b25zdCBjaGFyKiBuYW1lOworICAgIGludCBSR0JWYWx1ZTsKK307CisKK3N0cnVjdCBQcm9wZXJ0
eSB7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBpbnQgaWQ7Cit9OworCitzdHJ1Y3QgVmFs
dWUgeworICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgaW50IGlkOworfTsKKworY29uc3QgRW50
aXR5KiBmaW5kRW50aXR5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWdu
ZWQgaW50IGxlbik7Citjb25zdCBQdWJJREluZm8qIGZpbmREb2N0eXBlRW50cnkocmVnaXN0ZXIg
Y29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKK2NvbnN0IE5hbWVk
Q29sb3IqIGZpbmRDb2xvcihyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2ln
bmVkIGludCBsZW4pOworY29uc3QgUHJvcGVydHkqIGZpbmRQcm9wZXJ0eShyZWdpc3RlciBjb25z
dCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pOworY29uc3QgVmFsdWUqIGZp
bmRWYWx1ZShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBs
ZW4pOworCitjb25zdCBjaGFyKiBnZXRQcm9wZXJ0eU5hbWUoQ1NTUHJvcGVydHlJRCk7Citjb25z
dCBjaGFyKiBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpOworCit9CisKKyNlbmRpZiAv
LyBIYXNoVG9vbHNfaAorCitFT0YKK2Nsb3NlIEhFQURFUjsKKworfQorCitzd2l0Y2ggKCRvcHRp
b24pIHsKKworY2FzZSAiZW50aXRpZXMiIHsKKworIyBDcmVhdGUgdGhlIGZvbGxvd2luZyBvbmNl
IGluIHRoZSBIVE1MRW50aXR5TmFtZXMgY3JlYXRpb24gcGhhc2UKK2NyZWF0ZUhhc2hUb29sc0hl
YWRlcigpOworCitteSAkaHRtbEVudGl0eU5hbWVzSW1wbCAgICAgICAgPSAiJG91dGRpci9IVE1M
RW50aXR5TmFtZXNJbXBsLmNwcCI7CitteSAkaHRtbEVudGl0eU5hbWVzR2VuZXJhdGVkICAgPSAi
JG91dGRpci9IVE1MRW50aXR5TmFtZXNIYXNoLmhwcCI7CitteSAkaHRtbEVudGl0eU5hbWVzR3Bl
cmYgICAgICAgPSAkQVJHVlswXTsKK3NoaWZ0OworCitvcGVuIEVOVElUSUVTLCAiPiRodG1sRW50
aXR5TmFtZXNJbXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRodG1sRW50aXR5TmFtZXNJbXBs
IGZvciB3cml0aW5nIjsKK3ByaW50IEVOVElUSUVTIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlz
IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVk
aXQgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiSFRNTEVudGl0eU5hbWVzSGFzaC5ocHAiCisK
K2NvbnN0IEVudGl0eSogZmluZEVudGl0eShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lz
dGVyIHVuc2lnbmVkIGludCBsZW4pCit7CisgICAgcmV0dXJuIEhUTUxFbnRpdHlIYXNoOjpmaW5k
RW50aXR5SW1wbChzdHIsIGxlbik7Cit9CisKK30KKworRU9GCitjbG9zZSBFTlRJVElFUzsKK3N5
c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1zIDIgJGh0bWxFbnRpdHlOYW1l
c0dwZXJmID4gJGh0bWxFbnRpdHlOYW1lc0dlbmVyYXRlZCIpID09IDAgfHwgZGllICJjYWxsaW5n
IGdwZXJmIGZhaWxlZDogJD8iOworCit9ICMgY2FzZSAiZW50aXRpZXMiCisKK2Nhc2UgImRvY3R5
cGUiIHsKKworbXkgJGRvY1R5cGVTdHJpbmdzSW1wbCAgICAgICAgID0gIiRvdXRkaXIvRG9jVHlw
ZVN0cmluZ3NJbXBsLmNwcCI7CitteSAkZG9jVHlwZVN0cmluZ3NHZW5lcmF0ZWQgICAgPSAiJG91
dGRpci9Eb2NUeXBlU3RyaW5nc0hhc2guaHBwIjsKK215ICRkb2NUeXBlU3RyaW5nc0dwZXJmICAg
ICAgICA9ICRBUkdWWzBdOworc2hpZnQ7CisKK29wZW4gRE9DVFlQRVNUUklOR1MsICI+JGRvY1R5
cGVTdHJpbmdzSW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkZG9jVHlwZVN0cmluZ3NJbXBs
IGZvciB3cml0aW5nIjsKK3ByaW50IERPQ1RZUEVTVFJJTkdTIDw8ICJFT0YiOworLyogVGhpcyBm
aWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8g
bm90IGVkaXQgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiRG9jVHlwZVN0cmluZ3NIYXNoLmhw
cCIKKworY29uc3QgUHViSURJbmZvKiBmaW5kRG9jdHlwZUVudHJ5IChyZWdpc3RlciBjb25zdCBj
aGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7CisgICAgcmV0dXJuIERvY1R5
cGVTdHJpbmdzSGFzaDo6ZmluZERvY3R5cGVFbnRyeUltcGwoc3RyLCBsZW4pOworfQorCit9CisK
K0VPRgorY2xvc2UgRE9DVFlQRVNUUklOR1M7CitzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9u
cz1cIipcIiAtcyAyICRkb2NUeXBlU3RyaW5nc0dwZXJmID4gJGRvY1R5cGVTdHJpbmdzR2VuZXJh
dGVkIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CisKK30gIyBjYXNl
ICJkb2N0eXBlIgorCitjYXNlICJjb2xvcmRhdGEiIHsKKworbXkgJGNvbG9yRGF0YUltcGwgICAg
ICAgID0gIiRvdXRkaXIvQ29sb3JEYXRhSW1wbC5jcHAiOworbXkgJGNvbG9yRGF0YUdlbmVyYXRl
ZCAgID0gIiRvdXRkaXIvQ29sb3JEYXRhSGFzaC5ocHAiOworbXkgJGNvbG9yRGF0YUdwZXJmICAg
ICAgID0gJEFSR1ZbMF07CitzaGlmdDsKKworb3BlbiBDT0xPUkRBVEEsICI+JGNvbG9yRGF0YUlt
cGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJGNvbG9yRGF0YUltcGwgZm9yIHdyaXRpbmciOwor
cHJpbnQgQ09MT1JEQVRBIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkg
Z2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisjaW5jbHVkZSAiQ29sb3JEYXRhSGFzaC5ocHAiCisKK2NvbnN0IHN0cnVjdCBOYW1lZENv
bG9yKiBmaW5kQ29sb3IgKHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWdu
ZWQgaW50IGxlbikKK3sKKyAgICByZXR1cm4gQ29sb3JEYXRhSGFzaDo6ZmluZENvbG9ySW1wbChz
dHIsIGxlbik7Cit9CisKK30KKworRU9GCitjbG9zZSBDT0xPUkRBVEE7CitzeXN0ZW0oImdwZXJm
IC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtcyAyICRjb2xvckRhdGFHcGVyZiA+ICRjb2xvckRh
dGFHZW5lcmF0ZWQiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKKwor
fSAjIGNhc2UgImNvbG9yZGF0YSIKKworfSAjIHN3aXRjaCAoJG9wdGlvbikKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwIGIvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKaW5kZXggMzI4ZmUwZS4uY2VhZWJk
YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5j
cHAKKysrIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDb21wb3NpdGVBbmltYXRpb24uaCIKICNpbmNsdWRl
ICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUg
Ikhhc2hUb29scy5oIgogI2luY2x1ZGUgIkltcGxpY2l0QW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAi
S2V5ZnJhbWVBbmltYXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYgYi9XZWJDb3JlL3BsYXRmb3JtL0Nv
bG9yRGF0YS5ncGVyZgppbmRleCA4YTU0OTE2Li5kNjg0Y2I5IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0
YS5ncGVyZgpAQCAtMSw0ICsxLDE1IEBACi1zdHJ1Y3QgTmFtZWRDb2xvciB7IGNvbnN0IGNoYXIg
Km5hbWU7IGludCBSR0JWYWx1ZTsgfTsKKyVzdHJ1Y3QtdHlwZQorc3RydWN0IE5hbWVkQ29sb3I7
Cislb21pdC1zdHJ1Y3QtdHlwZQorJWxhbmd1YWdlPUMrKworJXJlYWRvbmx5LXRhYmxlcworJWds
b2JhbC10YWJsZQorJWNvbXBhcmUtc3RybmNtcAorJWRlZmluZSBjbGFzcy1uYW1lIENvbG9yRGF0
YUhhc2gKKyVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZENvbG9ySW1wbAorJWRlZmlu
ZSBoYXNoLWZ1bmN0aW9uLW5hbWUgY29sb3JkYXRhX2hhc2hfZnVuY3Rpb24KKyVpbmNsdWRlcwor
JWVudW0KICUlCiBhbGljZWJsdWUsIDB4ZjBmOGZmCiBhbnRpcXVld2hpdGUsIDB4ZmFlYmQ3CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCmluZGV4IGQ5OGIyMDIuLmE4N2RhZmQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCkBAIC0yNiwxMyArMjYsMTIgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJDb2xvci5oIgogCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCi0jaW5j
bHVkZSAiQ29sb3JEYXRhLmMiCi0KIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2luZyBuYW1lc3Bh
Y2UgV1RGOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzZWVmYjk2Li43YzQ2NjAwIDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMyBAQAorMjAxMC0wNS0xMSAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQGluZi51
LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZWZhY3RvciBncGVyZiBjb2RlIGdlbmVyYXRpb24gYW5kIHVzYWdlIHRvIGZpeCB0aGUg
ZGVidWcgYnVpbGQgd2l0aCBnY2M+NC40LgorICAgICAgICB3ZWJraXQub3JnL2IvMjkyNDQKKwor
ICAgICAgICBHcGVyZiBjb2RlIGdlbmVyYXRpb24gaXMgZG9uZSBieSBhIG5ldyBzY3JpcHQgY2Fs
bGVkIFdlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsIG5vdywKKyAgICAgICAgYW5kIHRoZSBnZW5l
cmF0aW9uIG9wdGlvbnMgd2VyZSBtb3ZlZCBpbnRvIHRoZSBncGVyZiBmaWxlcywgdG8gbWFrZSB0
aGUgb3B0aW9ucyBtb3JlIHVuZGVyc3RhbmRhYmxlCisgICAgICAgIGFuZCB0aGUgZ2VuZXJhdGlv
biBwcm9jZXNzIGxlc3MgcmVkdW5kYW50IGFjcm9zcyB0aGUgdmFyaW91cyBwb3J0cy4KKyAgICAg
ICAgSGl0aGVydG8gZ3BlcmYgZ2VuZXJhdGVkIEMgY29kZSwgdGhlc2UgZmlsZXMgd2VyZSBpbmNs
dWRlZCBpbiBtdWx0aXBsZSBDKysgZmlsZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAgICAgdG8gYWNj
ZXNzIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGluIGRlYnVnIGJ1
aWxkIGZhaWx1cmUgd2l0aCBuZXdlciBnY2MgdmVyc2lvbnMKKyAgICAgICAgYmVjYXVzZSBvZiBh
IG5ldyBmZWF0dXJlIG9mIGdjYywgd2hpY2ggZGlzYWJsZXMgQyBzdHlsZSBpbmxpbmluZyBpbiBk
ZWJ1ZyBtb2RlLgorICAgICAgICBUaGUgbWFrZS1oYXNoLXRvb2xzLnBsIHNjcmlwdCBsZXRzIGdw
ZXJmIGdlbmVyYXRlIEMrKyBjb2RlIGZvciBhbGwgZ3BlcmYgZmlsZXMgbm93LCB3aGljaCBhcmUg
Y29tcGlsZWQKKyAgICAgICAgaW4gdGhlaXIgb3duIGNvbXBpbGF0aW9uIHVuaXQuCisgICAgICAg
IFRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoZSBnZW5lcmF0ZWQgY29kZSBpcyB3cmFw
cGVkIGJlaGluZCBIYXNoVG9vbHMuaCwgc28gdGhlcmUgaXMgbm8gbmVlZAorICAgICAgICBmb3Ig
bXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQgQyBmaWxlcyB0byBhY2Nlc3MgdGhlc2Ug
ZnVuY3Rpb25zLgorCisgICAgICAgICogc3JjL1dlYkVudGl0aWVzLmNwcDoKKwogMjAxMC0wNS0x
MSAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVudGl0
aWVzLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRW50aXRpZXMuY3BwCmluZGV4IGI5MTQz
ZDkuLmE4ODA2NzEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRW50aXRpZXMu
Y3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRW50aXRpZXMuY3BwCkBAIC0zMyw2ICsz
Myw3IEBACiAKICNpbmNsdWRlIDxzdHJpbmcuaD4KIAorI2luY2x1ZGUgIkhhc2hUb29scy5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiU3RyaW5nQnVpbGRlci5oIgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC00MSwxNSArNDIsNiBAQAogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAotbmFtZXNwYWNlIHsKLS8vIE5vdGUgdGhhdCB0aGlzIGZpbGUgaXMg
YWxzbyBpbmNsdWRlZCBieSBIVE1MVG9rZW5pemVyLmNwcCBzbyB3ZSBhcmUgZ2V0dGluZwotLy8g
dHdvIGNvcGllcyBvZiB0aGUgZGF0YSBpbiBtZW1vcnkuICBXZSBjYW4gZml4IHRoaXMgYnkgY2hh
bmdpbmcgdGhlIHNjcmlwdAotLy8gdGhhdCBnZW5lcmF0ZWQgdGhlIGFycmF5IHRvIGNyZWF0ZSBh
IHN0YXRpYyBjb25zdCB0aGF0IGlzIGl0cyBsZW5ndGgsIGJ1dAotLy8gdGhpcyBpcyBsb3cgcHJp
b3JpdHkgc2luY2UgdGhlIGRhdGEgaXMgbGVzcyB0aGFuIDRLLiBXZSB1c2UgYW5vbnltb3VzCi0v
LyBuYW1lc3BhY2UgdG8gcHJldmVudCBuYW1lIGNvbGxpc2lvbnMuCi0jaW5jbHVkZSAiSFRNTEVu
dGl0eU5hbWVzLmMiIC8vIE5PTElOVAotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBw
b3B1bGF0ZU1hcChXVEY6Okhhc2hNYXA8aW50LCBXZWJDb3JlOjpTdHJpbmc+JiBtYXAsCmRpZmYg
LS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBj
ZmFhNTEwLi5mMDUxZGM2IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNS0xMSAgQW5kcmFzIEJl
Y3NpICA8YWJlY3NpQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciBncGVyZiBjb2RlIGdlbmVyYXRpb24gYW5k
IHVzYWdlIHRvIGZpeCB0aGUgZGVidWcgYnVpbGQgd2l0aCBnY2M+NC40LgorICAgICAgICB3ZWJr
aXQub3JnL2IvMjkyNDQKKworICAgICAgICBHcGVyZiBjb2RlIGdlbmVyYXRpb24gaXMgZG9uZSBi
eSBhIG5ldyBzY3JpcHQgY2FsbGVkIFdlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsIG5vdywKKyAg
ICAgICAgYW5kIHRoZSBnZW5lcmF0aW9uIG9wdGlvbnMgd2VyZSBtb3ZlZCBpbnRvIHRoZSBncGVy
ZiBmaWxlcywgdG8gbWFrZSB0aGUgb3B0aW9ucyBtb3JlIHVuZGVyc3RhbmRhYmxlCisgICAgICAg
IGFuZCB0aGUgZ2VuZXJhdGlvbiBwcm9jZXNzIGxlc3MgcmVkdW5kYW50IGFjcm9zcyB0aGUgdmFy
aW91cyBwb3J0cy4KKyAgICAgICAgSGl0aGVydG8gZ3BlcmYgZ2VuZXJhdGVkIEMgY29kZSwgdGhl
c2UgZmlsZXMgd2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBDKysgZmlsZXMgYWNyb3NzIFdlYkNv
cmUKKyAgICAgICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkLiBUaGlzIHJl
c3VsdGVkIGluIGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBuZXdlciBnY2MgdmVyc2lvbnMKKyAg
ICAgICAgYmVjYXVzZSBvZiBhIG5ldyBmZWF0dXJlIG9mIGdjYywgd2hpY2ggZGlzYWJsZXMgQyBz
dHlsZSBpbmxpbmluZyBpbiBkZWJ1ZyBtb2RlLgorICAgICAgICBUaGUgbWFrZS1oYXNoLXRvb2xz
LnBsIHNjcmlwdCBsZXRzIGdwZXJmIGdlbmVyYXRlIEMrKyBjb2RlIGZvciBhbGwgZ3BlcmYgZmls
ZXMgbm93LCB3aGljaCBhcmUgY29tcGlsZWQKKyAgICAgICAgaW4gdGhlaXIgb3duIGNvbXBpbGF0
aW9uIHVuaXQuCisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoZSBnZW5l
cmF0ZWQgY29kZSBpcyB3cmFwcGVkIGJlaGluZCBIYXNoVG9vbHMuaCwgc28gdGhlcmUgaXMgbm8g
bmVlZAorICAgICAgICBmb3IgbXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQgQyBmaWxl
cyB0byBhY2Nlc3MgdGhlc2UgZnVuY3Rpb25zLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNs
aWVudFF0OjpjcmVhdGVQbHVnaW4pOgorCiAyMDEwLTA1LTExICBBbnRvbmlvIEdvbWVzICA8dG9u
aWtpdG9vQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBDaHJpc3Rp
YW5zZW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5jcHAKaW5kZXggMDVlMDU0Yi4uZTY0YWI4NSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMzIsNyArMzIsNiBAQAogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgi
Ci0jaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkZvcm1TdGF0ZS5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50UXQuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIK
QEAgLTQ2LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRl
ICJSZW5kZXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAi
SGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJIVE1MQXBw
bGV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgpAQCAtMTMzMyw3ICsx
MzMzLDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBs
dWdpbihjb25zdCBJbnRTaXplJiBwbHVnaW5TaXplLAogICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG51bXFTdHlsZVNoZWV0UHJvcGVydGllczsgKytpKSB7CiAgICAgICAgICAg
ICAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSA9IHFzdHlsZVNoZWV0UHJvcGVydGllc1tpXTsK
IAotICAgICAgICAgICAgICAgIHN0eWxlU2hlZXQgKz0gUVN0cmluZzo6ZnJvbUxhdGluMSg6Omdl
dFByb3BlcnR5TmFtZShwcm9wZXJ0eSkpOworICAgICAgICAgICAgICAgIHN0eWxlU2hlZXQgKz0g
UVN0cmluZzo6ZnJvbUxhdGluMShnZXRQcm9wZXJ0eU5hbWUocHJvcGVydHkpKTsKICAgICAgICAg
ICAgICAgICBzdHlsZVNoZWV0ICs9IFFMYXRpbjFDaGFyKCc6Jyk7CiAgICAgICAgICAgICAgICAg
c3R5bGVTaGVldCArPSBjb21wdXRlZFN0eWxlKGVsZW1lbnQpLT5nZXRQcm9wZXJ0eVZhbHVlKHBy
b3BlcnR5KTsKICAgICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9IFFMYXRpbjFDaGFyKCc7Jyk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55845</attachid>
            <date>2010-05-12 07:54:04 -0700</date>
            <delta_ts>2010-05-12 08:09:00 -0700</delta_ts>
            <desc>Refactor gperf v3</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>52784</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLm1rIGIvV2ViQ29yZS9BbmRyb2lk
LmRlcml2ZWQubWsKaW5kZXggYzY3OGU2MC4uOWVlMmViMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9B
bmRyb2lkLmRlcml2ZWQubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQubWsKQEAgLTU1
LDkgKzU1LDEwIEBAIExPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQogCiAjIERPQ1RZ
UEUgc3RyaW5ncwogCi1HRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9odG1sL0RvY1R5cGVTdHJpbmdz
LmNwcAotJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gZ3BlcmYgLUNFb3QgLUwgQU5TSS1D
IC1rICIqIiAtTiBmaW5kRG9jdHlwZUVudHJ5IC1GICxQdWJJREluZm86OmVBbG1vc3RTdGFuZGFy
ZHMsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzICQ8ID4gJEAKK0dFTiA6PSAkKGludGVybWVk
aWF0ZXMpL2h0bWwvRG9jVHlwZVN0cmluZ3NJbXBsLmNwcAorJChHRU4pOiBQUklWQVRFX0NVU1RP
TV9UT09MID0gcGVybCAkKExPQ0FMX1BBVEgpL21ha2UtaGFzaC10b29scy5wbCBkb2N0eXBlICQo
ZGlyICRAKSAkKExPQ0FMX1BBVEgpL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKICQoR0VOKTog
JChMT0NBTF9QQVRIKS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCiskKEdFTik6IFNDUklQVCA6
PSAkKExPQ0FMX1BBVEgpL21ha2UtaGFzaC10b29scy5wbAogCSQodHJhbnNmb3JtLWdlbmVyYXRl
ZC1zb3VyY2UpCiAjIHdlIGhhdmUgdG8gZG8gdGhpcyBkZXAgYnkgaGFuZDoKICQoaW50ZXJtZWRp
YXRlcykvaHRtbC9IVE1MRG9jdW1lbnQubyA6ICQoR0VOKQpAQCAtNjUsMTggKzY2LDIwIEBAICQo
aW50ZXJtZWRpYXRlcykvaHRtbC9IVE1MRG9jdW1lbnQubyA6ICQoR0VOKQogCiAjIEhUTUwgZW50
aXR5IG5hbWVzCiAKLUdFTiA6PSAkKGludGVybWVkaWF0ZXMpL2h0bWwvSFRNTEVudGl0eU5hbWVz
LmMKLSQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IGdwZXJmIC1hIC1MIEFOU0ktQyAtQyAt
RyAtYyAtbyAtdCAtayAnKicgLU4gZmluZEVudGl0eSAtRCAtcyAyICQ8ID4gJEAKK0dFTiA6PSAk
KGludGVybWVkaWF0ZXMpL2h0bWwvSFRNTEVudGl0eU5hbWVzSW1wbC5jcHAKKyQoR0VOKTogUFJJ
VkFURV9DVVNUT01fVE9PTCA9IHBlcmwgJChMT0NBTF9QQVRIKS9tYWtlLWhhc2gtdG9vbHMucGwg
ZW50aXRpZXMgJChkaXIgJEApICQoTE9DQUxfUEFUSCkvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3Bl
cmYKICQoR0VOKTogJChMT0NBTF9QQVRIKS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgorJChH
RU4pOiBTQ1JJUFQgOj0gJChMT0NBTF9QQVRIKS9tYWtlLWhhc2gtdG9vbHMucGwKIAkkKHRyYW5z
Zm9ybS1nZW5lcmF0ZWQtc291cmNlKQogTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4p
CiAKIAogIyBjb2xvciBuYW1lcwogCi1HRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9wbGF0Zm9ybS9D
b2xvckRhdGEuYwotJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gZ3BlcmYgLUNERW90IC1M
IEFOU0ktQyAtayAnKicgLU4gZmluZENvbG9yIC1EIC1zIDIgJDwgPiAkQAorR0VOIDo9ICQoaW50
ZXJtZWRpYXRlcykvcGxhdGZvcm0vQ29sb3JEYXRhSW1wbC5jcHAKKyQoR0VOKTogUFJJVkFURV9D
VVNUT01fVE9PTCA9IHBlcmwgJChMT0NBTF9QQVRIKS9tYWtlLWhhc2gtdG9vbHMucGwgY29sb3Jk
YXRhICQoZGlyICRAKSAkKExPQ0FMX1BBVEgpL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgogJChH
RU4pOiAkKExPQ0FMX1BBVEgpL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgorJChHRU4pOiBTQ1JJ
UFQgOj0gJChMT0NBTF9QQVRIKS9tYWtlLWhhc2gtdG9vbHMucGwKIAkkKHRyYW5zZm9ybS1nZW5l
cmF0ZWQtc291cmNlKQogTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc5Y2E3
NS4uNWNlY2VjNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw1MCBAQAorMjAxMC0wNS0xMiAgQW5kcmFzIEJlY3NpICA8YWJl
Y3NpQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWZhY3RvciBncGVyZiBjb2RlIGdlbmVyYXRpb24gYW5kIHVzYWdlIHRv
IGZpeCB0aGUgZGVidWcgYnVpbGQgd2l0aCBnY2M+NC40LgorICAgICAgICB3ZWJraXQub3JnL2Iv
MjkyNDQKKworICAgICAgICBHcGVyZiBjb2RlIGdlbmVyYXRpb24gaXMgZG9uZSBieSBhIG5ldyBz
Y3JpcHQgY2FsbGVkIFdlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsIG5vdywKKyAgICAgICAgYW5k
IHRoZSBnZW5lcmF0aW9uIG9wdGlvbnMgd2VyZSBtb3ZlZCBpbnRvIHRoZSBncGVyZiBmaWxlcywg
dG8gbWFrZSB0aGUgb3B0aW9ucyBtb3JlIHVuZGVyc3RhbmRhYmxlCisgICAgICAgIGFuZCB0aGUg
Z2VuZXJhdGlvbiBwcm9jZXNzIGxlc3MgcmVkdW5kYW50IGFjcm9zcyB0aGUgdmFyaW91cyBwb3J0
cy4KKyAgICAgICAgSGl0aGVydG8gZ3BlcmYgZ2VuZXJhdGVkIEMgY29kZSwgdGhlc2UgZmlsZXMg
d2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBDKysgZmlsZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAg
ICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGlu
IGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBuZXdlciBnY2MgdmVyc2lvbnMKKyAgICAgICAgYmVj
YXVzZSBvZiBhIG5ldyBmZWF0dXJlIG9mIGdjYywgd2hpY2ggZGlzYWJsZXMgQyBzdHlsZSBpbmxp
bmluZyBpbiBkZWJ1ZyBtb2RlLgorICAgICAgICBUaGUgbWFrZS1oYXNoLXRvb2xzLnBsIHNjcmlw
dCBsZXRzIGdwZXJmIGdlbmVyYXRlIEMrKyBjb2RlIGZvciBhbGwgZ3BlcmYgZmlsZXMgbm93LCB3
aGljaCBhcmUgY29tcGlsZWQKKyAgICAgICAgaW4gdGhlaXIgb3duIGNvbXBpbGF0aW9uIHVuaXQu
CisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoZSBnZW5lcmF0ZWQgY29k
ZSBpcyB3cmFwcGVkIGJlaGluZCBIYXNoVG9vbHMuaCwgc28gdGhlcmUgaXMgbm8gbmVlZAorICAg
ICAgICBmb3IgbXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQgQyBmaWxlcyB0byBhY2Nl
c3MgdGhlc2UgZnVuY3Rpb25zLgorCisgICAgICAgIE5vIG5ldyBmdW5jdGlvbmFsaXR5IGFkZGVk
LCBubyBuZXcgdGVzdHMgbmVlZGVkLgorCisgICAgICAgICogQW5kcm9pZC5kZXJpdmVkLm1rOgor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06
CisgICAgICAgICogV2ViQ29yZS5neXAvc2NyaXB0cy9ydWxlX2dwZXJmLnB5OgorICAgICAgICAq
IFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKiBjc3MvQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y3NzUHJvcGVydHlJRCk6CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUtl
eXdvcmRJRCk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAg
KiBjc3MvQ1NTUHJvcGVydHkuY3BwOgorICAgICAgICAqIGNzcy9DU1NTdHlsZURlY2xhcmF0aW9u
LmNwcDoKKyAgICAgICAgKiBjc3MvbWFrZXByb3AucGw6CisgICAgICAgICogY3NzL21ha2V2YWx1
ZXMucGw6CisgICAgICAgICogaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZjoKKyAgICAgICAgKiBo
dG1sL0hUTUxEb2N1bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3Bl
cmY6CisgICAgICAgICogaHRtbC9IVE1MVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKiBodG1sL1By
ZWxvYWRTY2FubmVyLmNwcDoKKyAgICAgICAgKiBtYWtlLWhhc2gtdG9vbHMucGw6IEFkZGVkLgor
ICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmY6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3IuY3BwOgorCiAyMDEwLTA1LTEyICBZb3VuZyBIYW4gTGVlICA8am95YnJvQGNvbXBhbnkx
MDAubmV0PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IGQzZjA1NzguLjA3OGEwYjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQ2MywxMCArNDYz
LDEwIEBAIGFsbCA6IFwKICAgICBDU1NHcmFtbWFyLmNwcCBcCiAgICAgQ1NTUHJvcGVydHlOYW1l
cy5oIFwKICAgICBDU1NWYWx1ZUtleXdvcmRzLmggXAotICAgIENvbG9yRGF0YS5jIFwKLSAgICBE
b2NUeXBlU3RyaW5ncy5jcHAgXAorICAgIENvbG9yRGF0YUltcGwuY3BwIFwKKyAgICBEb2NUeXBl
U3RyaW5nc0ltcGwuY3BwIFwKICAgICBIVE1MRWxlbWVudEZhY3RvcnkuY3BwIFwKLSAgICBIVE1M
RW50aXR5TmFtZXMuYyBcCisgICAgSFRNTEVudGl0eU5hbWVzSW1wbC5jcHAgXAogICAgIEhUTUxO
YW1lcy5jcHAgXAogICAgIFdNTEVsZW1lbnRGYWN0b3J5LmNwcCBcCiAgICAgV01MTmFtZXMuY3Bw
IFwKQEAgLTU1NCwyMiArNTU0LDIyIEBAIENTU1ZhbHVlS2V5d29yZHMuaCA6ICQoV0VCQ09SRV9D
U1NfVkFMVUVfS0VZV09SRFMpIGNzcy9tYWtldmFsdWVzLnBsCiAKICMgRE9DVFlQRSBzdHJpbmdz
CiAKLURvY1R5cGVTdHJpbmdzLmNwcCA6IGh0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKLQlncGVy
ZiAtQ0VvdCAtTCBBTlNJLUMgLWsgIioiIC1OIGZpbmREb2N0eXBlRW50cnkgLUYgLFB1YklESW5m
bzo6ZUFsbW9zdFN0YW5kYXJkcyxQdWJJREluZm86OmVBbG1vc3RTdGFuZGFyZHMgJDwgPiAkQAor
RG9jVHlwZVN0cmluZ3NJbXBsLmNwcCA6IGh0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYgJChXZWJD
b3JlKS9tYWtlLWhhc2gtdG9vbHMucGwKKwlwZXJsICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xz
LnBsIGRvY3R5cGUgLiAkKFdlYkNvcmUpL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKIAogIyAt
LS0tLS0tLQogCiAjIEhUTUwgZW50aXR5IG5hbWVzCiAKLUhUTUxFbnRpdHlOYW1lcy5jIDogaHRt
bC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKLQlncGVyZiAtYSAtTCBBTlNJLUMgLUMgLUcgLWMgLW8g
LXQgLWsgJyonIC1OIGZpbmRFbnRpdHkgLUQgLXMgMiAkPCA+ICRACitIVE1MRW50aXR5TmFtZXNJ
bXBsLmNwcCA6IGh0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNo
LXRvb2xzLnBsCisJcGVybCAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCBlbnRpdGllcyAu
ICQoV2ViQ29yZSkvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKIAogIyAtLS0tLS0tLQogCiAj
IGNvbG9yIG5hbWVzCiAKLUNvbG9yRGF0YS5jIDogcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCi0J
Z3BlcmYgLUNERW90IC1MIEFOU0ktQyAtayAnKicgLU4gZmluZENvbG9yIC1EIC1zIDIgJDwgPiAk
QAorQ29sb3JEYXRhSW1wbC5jcHAgOiBwbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYgJChXZWJDb3Jl
KS9tYWtlLWhhc2gtdG9vbHMucGwKKwlwZXJsICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBs
IGNvbG9yZGF0YSAuICQoV2ViQ29yZSkvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCiAKICMgLS0t
LS0tLS0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0KaW5kZXggOTE1MmI1Zi4uZTIzYWEwMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC03OSw5ICs3OSw5
IEBAIHdlYmNvcmVndGtfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwCiAKIHdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzICs9IFwKLQlEZXJpdmVk
U291cmNlcy9Eb2NUeXBlU3RyaW5ncy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0RvY1R5cGVTdHJp
bmdzSW1wbC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3Rva2VuaXplci5jcHAgXAotCURlcml2ZWRT
b3VyY2VzL0NvbG9yRGF0YS5jIFwKKwlEZXJpdmVkU291cmNlcy9Db2xvckRhdGFJbXBsLmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L3dlYmtpdGRvbWR1bW15LmMKIAogd2ViY29yZV9idWls
dF9zb3VyY2VzICs9IFwKQEAgLTkwLDcgKzkwLDcgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9
IFwKIAlEZXJpdmVkU291cmNlcy9DU1NQcm9wZXJ0eU5hbWVzLmggXAogCURlcml2ZWRTb3VyY2Vz
L0NTU1ZhbHVlS2V5d29yZHMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSFRNTEVsZW1lbnRGYWN0b3J5
LmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvSFRNTEVudGl0eU5hbWVzLmMgXAorCURlcml2ZWRTb3Vy
Y2VzL0hUTUxFbnRpdHlOYW1lc0ltcGwuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9IVE1MTmFtZXMu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIFwK
IAlEZXJpdmVkU291cmNlcy9Vc2VyQWdlbnRTdHlsZVNoZWV0cy5oIFwKQEAgLTM2ODAsMjcgKzM2
ODAsMzAgQEAgRGVyaXZlZFNvdXJjZXMvQ1NTUHJvcGVydHlOYW1lcy5oOiAkKFdFQkNPUkVfQ1NT
X1BST1BFUlRZX05BTUVTKSAkKFdlYkNvcmUpL2Nzcy8KIAlpZiBzb3J0ICQoV0VCQ09SRV9DU1Nf
UFJPUEVSVFlfTkFNRVMpIHwgdW5pcSAtZCB8IGdyZXAgLUUgJ15bXiNdJzsgdGhlbiBlY2hvICdE
dXBsaWNhdGUgdmFsdWUhJzsgZXhpdCAxOyBmaQogCWNhdCAkKFdFQkNPUkVfQ1NTX1BST1BFUlRZ
X05BTUVTKSA+IENTU1Byb3BlcnR5TmFtZXMuaW4KIAkkKFBFUkwpICIkKFdlYkNvcmUpL2Nzcy9t
YWtlcHJvcC5wbCIKLQltdiBDU1NQcm9wZXJ0eU5hbWVzLiogJChHRU5TT1VSQ0VTKQorCW12IENT
U1Byb3BlcnR5TmFtZXMuaCAkKEdFTlNPVVJDRVMpCisJbXYgQ1NTUHJvcGVydHlOYW1lc0ltcGwu
Y3BwICQoR0VOU09VUkNFUykKKwltdiBDU1NQcm9wZXJ0eU5hbWVzSGFzaC5ocHAgJChHRU5TT1VS
Q0VTKQogCiAjIExvd2VyIGNhc2UgYWxsIHRoZSB2YWx1ZXMsIGFzIENTUyB2YWx1ZXMgYXJlIGNh
c2UtaW5zZW5zaXRpdmUKIERlcml2ZWRTb3VyY2VzL0NTU1ZhbHVlS2V5d29yZHMuaCA6ICQoV0VC
Q09SRV9DU1NfVkFMVUVfS0VZV09SRFMpICQoV2ViQ29yZSkvY3NzL21ha2V2YWx1ZXMucGwKIAkk
KFBFUkwpIC1uZSAncHJpbnQgbGMnICQoV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09SRFMpID4gQ1NT
VmFsdWVLZXl3b3Jkcy5pbgogCWlmIHNvcnQgQ1NTVmFsdWVLZXl3b3Jkcy5pbiB8IHVuaXEgLWQg
fCBncmVwIC1FICdeW14jXSc7IHRoZW4gZWNobyAnRHVwbGljYXRlIHZhbHVlISc7IGV4aXQgMTsg
ZmkKIAkkKFBFUkwpICIkKFdlYkNvcmUpL2Nzcy9tYWtldmFsdWVzLnBsIgotCW12IENTU1ZhbHVl
S2V5d29yZHMuKiAkKEdFTlNPVVJDRVMpCisJbXYgQ1NTVmFsdWVLZXl3b3Jkcy5oICQoR0VOU09V
UkNFUykKKwltdiBDU1NWYWx1ZUtleXdvcmRzSW1wbC5jcHAgJChHRU5TT1VSQ0VTKQorCW12IENT
U1ZhbHVlS2V5d29yZHNIYXNoLmhwcCAkKEdFTlNPVVJDRVMpCiAKICMgRE9DVFlQRSBzdHJpbmdz
Ci1EZXJpdmVkU291cmNlcy9Eb2NUeXBlU3RyaW5ncy5jcHAgOiAkKFdlYkNvcmUpL2h0bWwvRG9j
VHlwZVN0cmluZ3MuZ3BlcmYKLQkkKEFNX1ZfR0VOKSQoR1BFUkYpIC1DRW90IC1JIC1MIEFOU0kt
QyAtayAiKiIgLU4gZmluZERvY3R5cGVFbnRyeSAtRiAsUHViSURJbmZvOjplQWxtb3N0U3RhbmRh
cmRzLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyAkKFdlYkNvcmUpL2h0bWwvRG9jVHlwZVN0
cmluZ3MuZ3BlcmYgPiAkQAorRGVyaXZlZFNvdXJjZXMvRG9jVHlwZVN0cmluZ3NJbXBsLmNwcCA6
ICQoV2ViQ29yZSkvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZiAkKFdlYkNvcmUpL21ha2UtaGFz
aC10b29scy5wbAorCSQoUEVSTCkgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwgZG9jdHlw
ZSAkKEdFTlNPVVJDRVMpICQoV2ViQ29yZSkvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgogCiAj
IEhUTUwgZW50aXR5IG5hbWVzCi1EZXJpdmVkU291cmNlcy9IVE1MRW50aXR5TmFtZXMuYyA6ICQo
V2ViQ29yZSkvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKLQkkKEFNX1ZfR0VOKSQoR1BFUkYp
IC1hIC1JIC1MIEFOU0ktQyAtQyAtRyAtYyAtbyAtdCAtayAnKicgLU4gZmluZEVudGl0eSAtRCAt
cyAyIFwKLQkkKFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmID4gJEAKK0Rlcml2
ZWRTb3VyY2VzL0hUTUxFbnRpdHlOYW1lc0ltcGwuY3BwIDogJChXZWJDb3JlKS9odG1sL0hUTUxF
bnRpdHlOYW1lcy5ncGVyZiAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbAorCSQoUEVSTCkg
JChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwgZW50aXRpZXMgJChHRU5TT1VSQ0VTKSAkKFdl
YkNvcmUpL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCiAKICMgY29sb3IgbmFtZXMKLURlcml2
ZWRTb3VyY2VzL0NvbG9yRGF0YS5jOiAkKFdlYkNvcmUpL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVy
ZgotCSQoQU1fVl9HRU4pJChHUEVSRikgLUNERW90IC1MIEFOU0ktQyAtayAnKicgLU4gZmluZENv
bG9yIC1EIC1zIDIgJDwgPiAkQAorRGVyaXZlZFNvdXJjZXMvQ29sb3JEYXRhSW1wbC5jcHA6ICQo
V2ViQ29yZSkvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRv
b2xzLnBsCisJJChQRVJMKSAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCBjb2xvcmRhdGEg
JChHRU5TT1VSQ0VTKSAkKFdlYkNvcmUpL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgogCiAjIENT
UyB0b2tlbml6ZXIKIERlcml2ZWRTb3VyY2VzL3Rva2VuaXplci5jcHAgOiAkKFdlYkNvcmUpL2Nz
cy90b2tlbml6ZXIuZmxleCAkKFdlYkNvcmUpL2Nzcy9tYWtldG9rZW5pemVyCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cAppbmRleCBhZGY2ZDk0Li5iNTc3ZjcyIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5n
eXAKQEAgLTI4OCw3ICsyODgsOCBAQAogICAgICAgICAgICAgJy4uL2Nzcy9DU1NQcm9wZXJ0eU5h
bWVzLmluJywKICAgICAgICAgICBdLAogICAgICAgICAgICdvdXRwdXRzJzogWwotICAgICAgICAg
ICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NQcm9wZXJ0eU5hbWVzLmNw
cCcsCisgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L0NTU1By
b3BlcnR5TmFtZXMuaHBwJywKKyAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElS
KS93ZWJraXQvQ1NTUHJvcGVydHlOYW1lc0ltcGwuY3BwJywKICAgICAgICAgICAgICc8KFNIQVJF
RF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvQ1NTUHJvcGVydHlOYW1lcy5oJywKICAgICAgICAg
ICBdLAogICAgICAgICAgICdhY3Rpb24nOiBbCkBAIC0zMTMsNyArMzE0LDggQEAKICAgICAgICAg
ICAgICcuLi9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbicsCiAgICAgICAgICAgXSwKICAgICAgICAg
ICAnb3V0cHV0cyc6IFsKLSAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93
ZWJraXQvQ1NTVmFsdWVLZXl3b3Jkcy5jJywKKyAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1F
RElBVEVfRElSKS93ZWJraXQvQ1NTVmFsdWVLZXl3b3Jkcy5ocHAnLAorICAgICAgICAgICAgJzwo
U0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NWYWx1ZUtleXdvcmRzSW1wbC5jcHAn
LAogICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NWYWx1
ZUtleXdvcmRzLmgnLAogICAgICAgICAgIF0sCiAgICAgICAgICAgJ2FjdGlvbic6IFsKQEAgLTUz
MCwxOCArNTMyLDExIEBACiAgICAgICAgIHsKICAgICAgICAgICAncnVsZV9uYW1lJzogJ2dwZXJm
JywKICAgICAgICAgICAnZXh0ZW5zaW9uJzogJ2dwZXJmJywKLSAgICAgICAgICAjIGdwZXJmIG91
dHB1dCBpcyBvbmx5IGV2ZXIgI2luY2x1ZGVkIGJ5IG90aGVyIHNvdXJjZSBmaWxlcy4gIEFzCi0g
ICAgICAgICAgIyBzdWNoLCBwcm9jZXNzX291dHB1dHNfYXNfc291cmNlcyBpcyBvZmYuICBTb21l
IGdwZXJmIG91dHB1dCBpcwotICAgICAgICAgICMgI2luY2x1ZGVkIGFzICouYyBhbmQgc29tZSBh
cyAqLmNwcC4gIFNpbmNlIHRoZXJlJ3Mgbm8gd2F5IHRvIHRlbGwKLSAgICAgICAgICAjIHdoaWNo
IG9uZSB3aWxsIGJlIG5lZWRlZCBpbiBhIHJ1bGUgZGVmaW5pdGlvbiwgZGVjbGFyZSBib3RoIGFz
Ci0gICAgICAgICAgIyBvdXRwdXRzLiAgVGhlIGhhcm5lc3Mgc2NyaXB0IHdpbGwgZ2VuZXJhdGUg
b25lIGZpbGUgYW5kIGNvcHkgaXQgdG8KLSAgICAgICAgICAjIHRoZSBvdGhlci4KICAgICAgICAg
ICAjCi0gICAgICAgICAgIyBUaGlzIHJ1bGUgcGxhY2VzIG91dHB1dHMgaW4gU0hBUkVEX0lOVEVS
TUVESUFURV9ESVIgYmVjYXVzZSBnbHVlCi0gICAgICAgICAgIyBuZWVkcyBhY2Nlc3MgdG8gSFRN
TEVudGl0eU5hbWVzLmMuCisgICAgICAgICAgIyBncGVyZiBvdXRwdXRzIGFyZSBnZW5lcmF0ZWQg
YnkgV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwKKyAgICAgICAgICAjCiAgICAgICAgICAgJ291
dHB1dHMnOiBbCi0gICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0
LzwoUlVMRV9JTlBVVF9ST09UKS5jJywKLSAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElB
VEVfRElSKS93ZWJraXQvPChSVUxFX0lOUFVUX1JPT1QpLmNwcCcsCisgICAgICAgICAgICAnPChT
SEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0LzwoUlVMRV9JTlBVVF9ST09UKUltcGwuY3Bw
JywKICAgICAgICAgICBdLAogICAgICAgICAgICdhY3Rpb24nOiBbCiAgICAgICAgICAgICAncHl0
aG9uJywKQEAgLTU0OSw3ICs1NDQsNiBAQAogICAgICAgICAgICAgJzwoUlVMRV9JTlBVVF9QQVRI
KScsCiAgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0JwogICAg
ICAgICAgIF0sCi0gICAgICAgICAgJ3Byb2Nlc3Nfb3V0cHV0c19hc19zb3VyY2VzJzogMCwKICAg
ICAgICAgfSwKICAgICAgICAgIyBSdWxlIHRvIGJ1aWxkIGdlbmVyYXRlZCBKYXZhU2NyaXB0IChW
OCkgYmluZGluZ3MgZnJvbSAuaWRsIHNvdXJjZS4KICAgICAgICAgewpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9jc3Nwcm9wZXJ0eW5hbWVzLnB5IGIvV2Vi
Q29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL2FjdGlvbl9jc3Nwcm9wZXJ0eW5hbWVzLnB5CmluZGV4
IDYwMzE0ZDcuLjAxOTZhZTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0
cy9hY3Rpb25fY3NzcHJvcGVydHluYW1lcy5weQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwL3Nj
cmlwdHMvYWN0aW9uX2Nzc3Byb3BlcnR5bmFtZXMucHkKQEAgLTMzLDggKzMzLDggQEAKICMKICMg
dXNhZ2U6IGFjdGlvbl9tYWtlbmFtZXMucHkgT1VUUFVUUyAtLSBJTlBVVFMKICMKLSMgRXhhY3Rs
eSB0d28gb3V0cHV0cyBtdXN0IGJlIHNwZWNpZmllZDogYSBwYXRoIHRvIGVhY2ggb2YgQ1NTUHJv
cGVydHlOYW1lcy5jcHAKLSMgYW5kIENTU1Byb3BlcnR5TmFtZXMuaC4KKyMgRXhhY3RseSB0aHJl
ZSBvdXRwdXRzIG11c3QgYmUgc3BlY2lmaWVkOiBhIHBhdGggdG8gZWFjaCBvZiBDU1NQcm9wZXJ0
eU5hbWVzSW1wbC5jcHAsCisjIENTU1Byb3BlcnR5TmFtZXMuaHBwIGFuZCBDU1NQcm9wZXJ0eU5h
bWVzLmguCiAjCiAjIE11bHRpcGxlIGlucHV0cyBtYXkgYmUgc3BlY2lmaWVkLiBPbmUgaW5wdXQg
bXVzdCBoYXZlIGEgYmFzZW5hbWUgb2YKICMgbWFrZXByb3AucGw7IHRoaXMgaXMgdGFrZW4gYXMg
dGhlIHBhdGggdG8gbWFrZXByb3AucGwuIEFsbCBvdGhlciBpbnB1dHMgYXJlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX2Nzc3ZhbHVla2V5d29yZHMucHkg
Yi9XZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvYWN0aW9uX2Nzc3ZhbHVla2V5d29yZHMucHkK
aW5kZXggZWJmODk1Yi4uMzk4ZDc0YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9z
Y3JpcHRzL2FjdGlvbl9jc3N2YWx1ZWtleXdvcmRzLnB5CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5n
eXAvc2NyaXB0cy9hY3Rpb25fY3NzdmFsdWVrZXl3b3Jkcy5weQpAQCAtMzcsOCArMzcsOCBAQAog
IwogIyB1c2FnZTogYWN0aW9uX2Nzc3ZhbHVla2V5d29yZHMucHkgT1VUUFVUUyAtLSBJTlBVVFMK
ICMKLSMgRXhhY3RseSB0d28gb3V0cHV0cyBtdXN0IGJlIHNwZWNpZmllZDogYSBwYXRoIHRvIGVh
Y2ggb2YgQ1NTVmFsdWVLZXl3b3Jkcy5jCi0jIGFuZCBDU1NWYWx1ZUtleXdvcmRzLmguCisjIEV4
YWN0bHkgdGhyZWUgb3V0cHV0cyBtdXN0IGJlIHNwZWNpZmllZDogYSBwYXRoIHRvIGVhY2ggb2Yg
Q1NTVmFsdWVLZXl3b3Jkc0ltcGwuY3BwLAorIyBDU1NWYWx1ZUtleXdvcmRzLmhwcCwgYW5kIENT
U1ZhbHVlS2V5d29yZHMuaC4KICMKICMgTXVsdGlwbGUgaW5wdXRzIG1heSBiZSBzcGVjaWZpZWQu
IE9uZSBpbnB1dCBtdXN0IGhhdmUgYSBiYXNlbmFtZSBvZgogIyBtYWtldmFsdWVzLnBsOyB0aGlz
IGlzIHRha2VuIGFzIHRoZSBwYXRoIHRvIG1ha2V2YWx1ZXMucGwuIEFsbCBvdGhlciBpbnB1dHMK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9ydWxlX2dwZXJmLnB5IGIv
V2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL3J1bGVfZ3BlcmYucHkKaW5kZXggZTc2ZWQ2Zi4u
ZTI0YTE3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL3J1bGVfZ3Bl
cmYucHkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9zY3JpcHRzL3J1bGVfZ3BlcmYucHkKQEAg
LTQwLDcgKzQwLDYgQEAKICMgdG8gLmMgd2hlbiBkb25lLgogCiBpbXBvcnQgcG9zaXhwYXRoCi1p
bXBvcnQgc2h1dGlsCiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHN5cwogCkBAIC01MCwzNiAr
NDksMjIgQEAgaW5wdXRGaWxlID0gc3lzLmFyZ3ZbMV0KIG91dHB1dERpciA9IHN5cy5hcmd2WzJd
CiAKIGdwZXJmQ29tbWFuZHMgPSB7Ci0gICAgJ0RvY1R5cGVTdHJpbmdzLmdwZXJmJzogWwotICAg
ICAgICAnLUNFb3QnLCAnLUwnLCAnQU5TSS1DJywgJy1rKicsICctTicsICdmaW5kRG9jdHlwZUVu
dHJ5JywKLSAgICAgICAgJy1GJywgJyxQdWJJREluZm86OmVBbG1vc3RTdGFuZGFyZHMsUHViSURJ
bmZvOjplQWxtb3N0U3RhbmRhcmRzJwotICAgIF0sCi0gICAgJ0hUTUxFbnRpdHlOYW1lcy5ncGVy
Zic6IFsKLSAgICAgICAgJy1hJywgJy1MJywgJ0FOU0ktQycsICctQycsICctRycsICctYycsICct
bycsICctdCcsICctayonLAotICAgICAgICAnLU4nLCAnZmluZEVudGl0eScsICctRCcsICctcycs
ICcyJwotICAgIF0sCi0gICAgJ0NvbG9yRGF0YS5ncGVyZic6IFsKLSAgICAgICAgJy1DREVvdCcs
ICctTCcsICdBTlNJLUMnLCAnLWsqJywgJy1OJywgJ2ZpbmRDb2xvcicsICctRCcsICctcycsICcy
JwotICAgIF0sCisgICAgJ0RvY1R5cGVTdHJpbmdzLmdwZXJmJzogJ2RvY3R5cGUnLAorICAgICdI
VE1MRW50aXR5TmFtZXMuZ3BlcmYnOiAnZW50aXRpZXMnLAorICAgICdDb2xvckRhdGEuZ3BlcmYn
OiAnY29sb3JkYXRhJywKIH0KIAogaW5wdXROYW1lID0gcG9zaXhwYXRoLmJhc2VuYW1lKGlucHV0
RmlsZSkKIGFzc2VydCBpbnB1dE5hbWUgaW4gZ3BlcmZDb21tYW5kcwogCi0oaW5wdXRSb290LCBp
bnB1dEV4dCkgPSBwb3NpeHBhdGguc3BsaXRleHQoaW5wdXROYW1lKQotb3V0cHV0Q3BwID0gcG9z
aXhwYXRoLmpvaW4ob3V0cHV0RGlyLCBpbnB1dFJvb3QgKyAnLmNwcCcpCi0KLSNjb21tYW5kID0g
WydncGVyZicsICctLW91dHB1dC1maWxlJywgb3V0cHV0Q3BwXQotY29tbWFuZCA9IFsnZ3BlcmYn
XQotY29tbWFuZC5leHRlbmQoZ3BlcmZDb21tYW5kc1tpbnB1dE5hbWVdKQorY29tbWFuZCA9IFsn
cGVybCddCitjb21tYW5kLmFwcGVuZCgnLi4vbWFrZS1oYXNoLXRvb2xzLnBsJykKK2NvbW1hbmQu
YXBwZW5kKGdwZXJmQ29tbWFuZHNbaW5wdXROYW1lXSkKK2NvbW1hbmQuYXBwZW5kKG91dHB1dERp
cikKIGNvbW1hbmQuYXBwZW5kKGlucHV0RmlsZSkKIAotb2ZpbGUgPSBvcGVuKG91dHB1dENwcCwg
J3cnKQotCiAjIERvIGl0LiBjaGVja19jYWxsIGlzIG5ldyBpbiAyLjUsIHNvIHNpbXVsYXRlIGl0
cyBiZWhhdmlvciB3aXRoIGNhbGwgYW5kCiAjIGFzc2VydC4KLXJldHVybkNvZGUgPSBzdWJwcm9j
ZXNzLmNhbGwoY29tbWFuZCwgc3Rkb3V0PW9maWxlLmZpbGVubygpKQorcmV0dXJuQ29kZSA9IHN1
YnByb2Nlc3MuY2FsbChjb21tYW5kKQogYXNzZXJ0IHJldHVybkNvZGUgPT0gMAogCi1vdXRwdXRD
ID0gcG9zaXhwYXRoLmpvaW4ob3V0cHV0RGlyLCBpbnB1dFJvb3QgKyAnLmMnKQotc2h1dGlsLmNv
cHlmaWxlKG91dHB1dENwcCwgb3V0cHV0QykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5w
cmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDc2NDIzNzkuLmE0ZjFjNGEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtMTc3
LDcgKzE3Nyw3IEBAIFhMSU5LX05BTUVTID0gJCRQV0Qvc3ZnL3hsaW5rYXR0cnMuaW4KIAogVE9L
RU5JWkVSID0gJCRQV0QvY3NzL3Rva2VuaXplci5mbGV4CiAKLURPQ1RZUEVTVFJJTkdTID0gJCRQ
V0QvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgorRE9DVFlQRVNUUklOR1NfR1BFUkYgPSAkJFBX
RC9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCiAKIENTU0JJU09OID0gJCRQV0QvY3NzL0NTU0dy
YW1tYXIueQogCkBAIC0xODksNyArMTg5LDcgQEAgWE1MTlNfTkFNRVMgPSAkJFBXRC94bWwveG1s
bnNhdHRycy5pbgogCiBFTlRJVElFU19HUEVSRiA9ICQkUFdEL2h0bWwvSFRNTEVudGl0eU5hbWVz
LmdwZXJmCiAKLUNPTE9SREFUX0dQRVJGID0gJCRQV0QvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJm
CitDT0xPUkRBVEFfR1BFUkYgPSAkJFBXRC9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKIAogV0FM
RE9DU1NQUk9QUyA9ICQkUFdEL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCiAKQEAgLTY0NywxNyAr
NjQ3LDE3IEBAIHhsaW5rbmFtZXMuaW5wdXQgPSBYTElOS19OQU1FUwogYWRkRXh0cmFDb21waWxl
cih4bGlua25hbWVzKQogCiAjIEdFTkVSQVRPUiA2LUE6Ci1jc3Nwcm9wcy5vdXRwdXQgPSAkJHtX
Q19HRU5FUkFURURfU09VUkNFU19ESVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5jcHAKLWNzc3Byb3Bz
LmlucHV0ID0gV0FMRE9DU1NQUk9QUwogY3NzcHJvcHMud2tTY3JpcHQgPSAkJFBXRC9jc3MvbWFr
ZXByb3AucGwKK2Nzc3Byb3BzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0v
Q1NTUHJvcGVydHlOYW1lc0ltcGwuY3BwCitjc3Nwcm9wcy5pbnB1dCA9IFdBTERPQ1NTUFJPUFMK
IGNzc3Byb3BzLmNvbW1hbmRzID0gcGVybCAtbmUgXCJwcmludCBsY1wiICR7UU1BS0VfRklMRV9O
QU1FfSAkJHtEQVNIQk9BUkRTVVBQT1JUQ1NTUFJPUEVSVElFU30gJCR7RVhUUkFDU1NQUk9QRVJU
SUVTfSA+ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9Lmlu
ICYmIGNkICQkV0NfR0VORVJBVEVEX1NPVVJDRVNfRElSICYmIHBlcmwgJCRjc3Nwcm9wcy53a1Nj
cmlwdCAmJiAkKERFTF9GSUxFKSAke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJHtRTUFLRV9GSUxFX0JB
U0V9LmdwZXJmCiBjc3Nwcm9wcy5kZXBlbmRzID0gJHtRTUFLRV9GSUxFX05BTUV9ICQke0RBU0hC
T0FSRFNVUFBPUlRDU1NQUk9QRVJUSUVTfSAkJHtFWFRSQUNTU1BST1BFUlRJRVN9CiBhZGRFeHRy
YUNvbXBpbGVyKGNzc3Byb3BzKQogCiAjIEdFTkVSQVRPUiA2LUI6Ci1jc3N2YWx1ZXMub3V0cHV0
ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uYwotY3Nz
dmFsdWVzLmlucHV0ID0gV0FMRE9DU1NWQUxVRVMKIGNzc3ZhbHVlcy53a1NjcmlwdCA9ICQkUFdE
L2Nzcy9tYWtldmFsdWVzLnBsCitjc3N2YWx1ZXMub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NP
VVJDRVNfRElSfS9DU1NWYWx1ZUtleXdvcmRzSW1wbC5jcHAKK2Nzc3ZhbHVlcy5pbnB1dCA9IFdB
TERPQ1NTVkFMVUVTCiBjc3N2YWx1ZXMuY29tbWFuZHMgPSBwZXJsIC1uZSBcInByaW50IGxjXCIg
JHtRTUFLRV9GSUxFX05BTUV9ICQkRVhUUkFDU1NWQUxVRVMgPiAkJHtXQ19HRU5FUkFURURfU09V
UkNFU19ESVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5pbiAmJiBjZCAkJFdDX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUiAmJiBwZXJsICQkY3NzdmFsdWVzLndrU2NyaXB0ICYmICQoREVMX0ZJTEUpICR7UU1B
S0VfRklMRV9CQVNFfS5pbiAke1FNQUtFX0ZJTEVfQkFTRX0uZ3BlcmYKIGNzc3ZhbHVlcy5kZXBl
bmRzID0gJHtRTUFLRV9GSUxFX05BTUV9ICQke0VYVFJBQ1NTVkFMVUVTfQogY3NzdmFsdWVzLmNs
ZWFuID0gJHtRTUFLRV9GSUxFX09VVH0gJHtRTUFLRV9WQVJfV0NfR0VORVJBVEVEX1NPVVJDRVNf
RElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uaApAQCAtNzEzLDI0ICs3MTMsMjggQEAgeG1sbmFtZXMu
d2tTY3JpcHQgPSAkJFBXRC9kb20vbWFrZV9uYW1lcy5wbAogeG1sbmFtZXMuY29tbWFuZHMgPSBw
ZXJsIC1JJCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAkJHhtbG5hbWVzLndrU2NyaXB0IC0tYXR0cnMg
JCRQV0QveG1sL3htbGF0dHJzLmluIC0tcHJlcHJvY2Vzc29yIFwiJCR7UU1BS0VfTU9DfSAtRVwi
IC0tb3V0cHV0RGlyICQkV0NfR0VORVJBVEVEX1NPVVJDRVNfRElSCiBhZGRFeHRyYUNvbXBpbGVy
KHhtbG5hbWVzKQogCi0jIEdFTkVSQVRPUiA4LUE6Ci1lbnRpdGllcy5vdXRwdXQgPSAkJHtXQ19H
RU5FUkFURURfU09VUkNFU19ESVJ9L0hUTUxFbnRpdHlOYW1lcy5jCisjIEdFTkVSQVRPUiA4LWVu
dGl0aWVzOgorZW50aXRpZXMud2tTY3JpcHQgPSAkJFBXRC9tYWtlLWhhc2gtdG9vbHMucGwKK2Vu
dGl0aWVzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vSFRNTEVudGl0eU5h
bWVzSW1wbC5jcHAKIGVudGl0aWVzLmlucHV0ID0gRU5USVRJRVNfR1BFUkYKLWVudGl0aWVzLmNv
bW1hbmRzID0gZ3BlcmYgLWEgLUwgQU5TSS1DIC1DIC1HIC1jIC1vIC10IC0taW5jbHVkZXMgLS1r
ZXktcG9zaXRpb25zPSIqIiAtTiBmaW5kRW50aXR5IC1EIC1zIDIgPCAkJFBXRC9odG1sL0hUTUxF
bnRpdHlOYW1lcy5ncGVyZiA+ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vSFRNTEVudGl0
eU5hbWVzLmMKK2VudGl0aWVzLmNvbW1hbmRzID0gcGVybCAkJGVudGl0aWVzLndrU2NyaXB0IGVu
dGl0aWVzICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0gJCRFTlRJVElFU19HUEVSRgogZW50
aXRpZXMuY2xlYW4gPSAke1FNQUtFX0ZJTEVfT1VUfQogYWRkRXh0cmFDb21waWxlcihlbnRpdGll
cykKIAotIyBHRU5FUkFUT1IgOC1COgotZG9jdHlwZXN0cmluZ3Mub3V0cHV0ID0gJCR7V0NfR0VO
RVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uY3BwCi1kb2N0eXBlc3RyaW5n
cy5pbnB1dCA9IERPQ1RZUEVTVFJJTkdTCi1kb2N0eXBlc3RyaW5ncy5jb21tYW5kcyA9IGdwZXJm
IC1DRW90IC1MIEFOU0ktQyAtLWluY2x1ZGVzIC0ta2V5LXBvc2l0aW9ucz0iKiIgLU4gZmluZERv
Y3R5cGVFbnRyeSAtRiAsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzLFB1YklESW5mbzo6ZUFs
bW9zdFN0YW5kYXJkcyA8ICR7UU1BS0VfRklMRV9OQU1FfSA+PiAke1FNQUtFX0ZJTEVfT1VUfQot
ZG9jdHlwZXN0cmluZ3MuY2xlYW4gPSAke1FNQUtFX0ZJTEVfT1VUfQotYWRkRXh0cmFDb21waWxl
cihkb2N0eXBlc3RyaW5ncykKLQotIyBHRU5FUkFUT1IgOC1DOgotY29sb3JkYXRhLm91dHB1dCA9
ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vQ29sb3JEYXRhLmMKLWNvbG9yZGF0YS5pbnB1
dCA9IENPTE9SREFUX0dQRVJGCi1jb2xvcmRhdGEuY29tbWFuZHMgPSBncGVyZiAtQ0RFb3QgLUwg
QU5TSS1DIC0taW5jbHVkZXMgLS1rZXktcG9zaXRpb25zPSIqIiAtTiBmaW5kQ29sb3IgLUQgLXMg
MiA8ICR7UU1BS0VfRklMRV9OQU1FfSA+PiAke1FNQUtFX0ZJTEVfT1VUfQorIyBHRU5FUkFUT1Ig
OC1kb2N0eXBlOgorZG9jdHlwZS53a1NjcmlwdCA9ICQkUFdEL21ha2UtaGFzaC10b29scy5wbAor
ZG9jdHlwZS5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0RvY1R5cGVTdHJp
bmdzSW1wbC5jcHAKK2RvY3R5cGUuaW5wdXQgPSBET0NUWVBFU1RSSU5HU19HUEVSRgorZG9jdHlw
ZS5jb21tYW5kcyA9IHBlcmwgJCRkb2N0eXBlLndrU2NyaXB0IGRvY3R5cGUgJCR7V0NfR0VORVJB
VEVEX1NPVVJDRVNfRElSfSAkJERPQ1RZUEVTVFJJTkdTX0dQRVJGCitkb2N0eXBlLmNsZWFuID0g
JHtRTUFLRV9GSUxFX09VVH0KK2FkZEV4dHJhQ29tcGlsZXIoZG9jdHlwZSkKKworIyBHRU5FUkFU
T1IgOC1jb2xvcmRhdGE6Citjb2xvcmRhdGEud2tTY3JpcHQgPSAkJFBXRC9tYWtlLWhhc2gtdG9v
bHMucGwKK2NvbG9yZGF0YS5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0Nv
bG9yRGF0YUltcGwuY3BwCitjb2xvcmRhdGEuaW5wdXQgPSBDT0xPUkRBVEFfR1BFUkYKK2NvbG9y
ZGF0YS5jb21tYW5kcyA9IHBlcmwgJCRjb2xvcmRhdGEud2tTY3JpcHQgY29sb3JkYXRhICQke1dD
X0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0gJCRDT0xPUkRBVEFfR1BFUkYKK2NvbG9yZGF0YS5jbGVh
biA9ICR7UU1BS0VfRklMRV9PVVR9CiBhZGRFeHRyYUNvbXBpbGVyKGNvbG9yZGF0YSkKIAogIyBH
RU5FUkFUT1IgOToKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggY2I4NGMwMy4uOWY0OGYwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTY3OTMsMTggKzY3OTMsMTMgQEAKIAkJNjU2NTNGMkEwRDk3MjdEMjAwQ0E5
NzIzIC8qIFNWR0FsdEdseXBoRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTVkdBbHRHbHlwaEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2NTY1M0YyQjBEOTcyN0QyMDBDQTk3MjMgLyogU1ZHQWx0R2x5cGhFbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FsdEdseXBoRWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1M0YyQzBEOTcyN0QyMDBDQTk3MjMgLyog
U1ZHQWx0R2x5cGhFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdBbHRHbHlw
aEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2NTY1ODBFRDA5RDEy
QjIwMDAwRTYxRDcgLyogQ1NTUHJvcGVydHlOYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ1NTUHJvcGVydHlOYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTY1NjU4MEVFMDlEMTJCMjAwMDBFNjFENyAvKiBDU1NQcm9wZXJ0eU5hbWVz
LmdwZXJmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NQcm9wZXJ0eU5hbWVzLmdwZXJmOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODBFRjA5RDEyQjIwMDAwRTYxRDcgLyog
Q1NTUHJvcGVydHlOYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NT
UHJvcGVydHlOYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2NTY1ODExQzA5
RDEyREIyMDAwRTYxRDcgLyogRG9jVHlwZVN0cmluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERvY1R5cGVTdHJpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNjU2NTgxNDQwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU0dyYW1tYXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0dyYW1tYXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2NTY1ODE0NjA5RDEzMDQzMDAwRTYxRDcgLyogQ1NT
VmFsdWVLZXl3b3Jkcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gQ1NTVmFs
dWVLZXl3b3Jkcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODE0NzA5RDEz
MDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5ncGVyZiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gQ1NTVmFsdWVLZXl3b3Jkcy5ncGVyZjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNjU2NTgxNDgwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ZhbHVlS2V5d29yZHMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNjU2NTgxNEIwOUQxMzA0MzAwMEU2MUQ3IC8qIEhUTUxFbnRp
dHlOYW1lcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gSFRNTEVudGl0eU5h
bWVzLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MTRDMDlEMTMwNDMwMDBF
NjFENyAvKiB0b2tlbml6ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IHRva2VuaXplci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MUFD
MDlEMTRFRTYwMDBFNjFENyAvKiBDaGFyc2V0RGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ2hhcnNldERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk2NTY1ODFBRDA5RDE0RUU2MDAwRTYxRDcgLyogQ29sb3JEYXRhLmMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBDb2xvckRhdGEuYzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNjU2NTgxQUUwOUQxNEVFNjAwMEU2MUQ3IC8qIFVzZXJBZ2VudFN0eWxlU2hl
ZXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyQWdlbnRTdHlsZVNo
ZWV0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODFBRjA5RDE0RUU2MDAw
RTYxRDcgLyogVXNlckFnZW50U3R5bGVTaGVldHNEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyQWdlbnRTdHlsZVNoZWV0c0RhdGEuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODFFNjA5RDE1MDhEMDAwRTYxRDcgLyogU1ZHRWxl
bWVudEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R0VsZW1lbnRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMzc0
LDYgKzEwMzY5LDExIEBACiAJCUUxRjFFODJFMEMzQzJCQjkwMDZEQjM5MSAvKiBYU0xURXh0ZW5z
aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYU0xURXh0ZW5zaW9ucy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZGNTdBMjBGMDEyNTVCMDA4OTFFQkIg
LyogVGhyZWFkR2xvYmFsRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBU
aHJlYWRHbG9iYWxEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkY1N0E1
MEYwMTI1NkIwMDg5MUVCQiAvKiBUaHJlYWRHbG9iYWxEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRocmVhZEdsb2JhbERhdGEuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFNDA2RjNGQTExOTgzMDREMDA5RDU5RDYgLyogRG9jVHlwZVN0cmlu
Z3NJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERvY1R5cGVT
dHJpbmdzSW1wbC5jcHA7IHBhdGggPSAuLi9XZWJLaXRCdWlsZC9SZWxlYXNlL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvRG9jVHlwZVN0cmluZ3NJbXBsLmNwcDsgc291cmNlVHJlZSA9IFNPVVJDRV9S
T09UOyB9OworCQlFNDA2RjNGQjExOTgzMDdEMDA5RDU5RDYgLyogQ29sb3JEYXRhSW1wbC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDb2xvckRhdGFJbXBsLmNwcDsg
cGF0aCA9IC4uL1dlYktpdEJ1aWxkL1JlbGVhc2UvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Db2xv
ckRhdGFJbXBsLmNwcDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlFNDA2RjQwMjEx
OTgzMjlBMDA5RDU5RDYgLyogSFRNTEVudGl0eU5hbWVzSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBIVE1MRW50aXR5TmFtZXNJbXBsLmNwcDsgcGF0aCA9IC4u
L1dlYktpdEJ1aWxkL1JlbGVhc2UvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MRW50aXR5TmFt
ZXNJbXBsLmNwcDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlFNDFFQTAzODExOTgz
NkRCMDA3MTBCQzUgLyogQ1NTUHJvcGVydHlOYW1lc0ltcGwuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQ1NTUHJvcGVydHlOYW1lc0ltcGwuY3BwOyBwYXRoID0gLi4v
V2ViS2l0QnVpbGQvUmVsZWFzZS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFt
ZXNJbXBsLmNwcDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQlFNDFFQTAzOTExOTgz
NzQ5MDA3MTBCQzUgLyogQ1NTVmFsdWVLZXl3b3Jkc0ltcGwuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQ1NTVmFsdWVLZXl3b3Jkc0ltcGwuY3BwOyBwYXRoID0gLi4v
V2ViS2l0QnVpbGQvUmVsZWFzZS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1ZhbHVlS2V5d29y
ZHNJbXBsLmNwcDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9CiAJCUU0MTVGMTBDMEQ5QTA1
ODcwMDMzQ0U5NyAvKiBFbGVtZW50VGltZUNvbnRyb2wuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IEVsZW1lbnRUaW1lQ29udHJvbC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU0MTVGMTY4MEQ5QTE2NUQwMDMzQ0U5NyAvKiBET01FbGVtZW50VGltZUNvbnRyb2wuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRWxlbWVudFRpbWVDb250cm9sLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTVGMTgzMEQ5QTFBODMwMDMzQ0U5NyAvKiBF
bGVtZW50VGltZUNvbnRyb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxl
bWVudFRpbWVDb250cm9sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTY0NSwy
MCArMTE2NDUsMjAgQEAKIAkJNjU2NTgwRUMwOUQxMkIyMDAwMEU2MUQ3IC8qIERlcml2ZWQgU291
cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRTQx
RUEwMzkxMTk4Mzc0OTAwNzEwQkM1IC8qIENTU1ZhbHVlS2V5d29yZHNJbXBsLmNwcCAqLywKKwkJ
CQlFNDFFQTAzODExOTgzNkRCMDA3MTBCQzUgLyogQ1NTUHJvcGVydHlOYW1lc0ltcGwuY3BwICov
LAorCQkJCUU0MDZGNDAyMTE5ODMyOUEwMDlENTlENiAvKiBIVE1MRW50aXR5TmFtZXNJbXBsLmNw
cCAqLywKKwkJCQlFNDA2RjNGQjExOTgzMDdEMDA5RDU5RDYgLyogQ29sb3JEYXRhSW1wbC5jcHAg
Ki8sCisJCQkJRTQwNkYzRkExMTk4MzA0RDAwOUQ1OUQ2IC8qIERvY1R5cGVTdHJpbmdzSW1wbC5j
cHAgKi8sCiAJCQkJNjU2NTgxQUMwOUQxNEVFNjAwMEU2MUQ3IC8qIENoYXJzZXREYXRhLmNwcCAq
LywKLQkJCQk2NTY1ODFBRDA5RDE0RUU2MDAwRTYxRDcgLyogQ29sb3JEYXRhLmMgKi8sCiAJCQkJ
NjU2NTgxNDQwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU0dyYW1tYXIuY3BwICovLAogCQkJCTY1MEY1
M0RCMDlEMTVEREEwMEM5QjBDOCAvKiBDU1NHcmFtbWFyLmggKi8sCi0JCQkJNjU2NTgwRUQwOUQx
MkIyMDAwMEU2MUQ3IC8qIENTU1Byb3BlcnR5TmFtZXMuY3BwICovLAogCQkJCTY1NjU4MEVFMDlE
MTJCMjAwMDBFNjFENyAvKiBDU1NQcm9wZXJ0eU5hbWVzLmdwZXJmICovLAogCQkJCTY1NjU4MEVG
MDlEMTJCMjAwMDBFNjFENyAvKiBDU1NQcm9wZXJ0eU5hbWVzLmggKi8sCi0JCQkJNjU2NTgxNDYw
OUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMuYyAqLywKIAkJCQk2NTY1ODE0NzA5
RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5ncGVyZiAqLywKIAkJCQk2NTY1ODE0
ODA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5oICovLAotCQkJCTY1NjU4MTFD
MDlEMTJEQjIwMDBFNjFENyAvKiBEb2NUeXBlU3RyaW5ncy5jcHAgKi8sCiAJCQkJQTE3QzgxMjAw
RjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5jcHAgKi8sCiAJCQkJQTE3Qzgx
MjEwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oICovLAotCQkJCTY1NjU4
MTRCMDlEMTMwNDMwMDBFNjFENyAvKiBIVE1MRW50aXR5TmFtZXMuYyAqLywKIAkJCQlBOEQwNkIz
ODBBMjY1RENEMDA1RTcyMDMgLyogSFRNTE5hbWVzLmNwcCAqLywKIAkJCQlBOEQwNkIzNzBBMjY1
RENEMDA1RTcyMDMgLyogSFRNTE5hbWVzLmggKi8sCiAJCQkJOTM4RTY1RjYwOUYwOTg1RDAwOEE0
OEVDIC8qIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgKi8sCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvV2ViQ29yZS9jc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBiYTUwM2I4Li5iNzJlY2U2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisr
KyBiL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTM2LDYg
KzM2LDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNp
bmNsdWRlICJSZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVy
TGF5ZXIuaCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uLmNwcCBiL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRl
eCA3YzA5ZjkxLi43MzhjZjdiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVk
ZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogCiB1c2luZyBuYW1l
c3BhY2Ugc3RkOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggNmY3Y2YxMi4uMzI5NjM3MCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
CkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVk
ZSAiRm9udEZhbWlseVZhbHVlLmgiCiAjaW5jbHVkZSAiRm9udFZhbHVlLmgiCisjaW5jbHVkZSAi
SGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVy
eUV4cC5oIgogI2luY2x1ZGUgIlBhaXIuaCIKQEAgLTg4LDkgKzg5LDYgQEAgZXh0ZXJuIGludCBj
c3N5eXBhcnNlKHZvaWQqIHBhcnNlcik7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFt
ZXNwYWNlIFdURjsKIAotI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuY3BwIgotI2luY2x1ZGUg
IkNTU1ZhbHVlS2V5d29yZHMuYyIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29u
c3QgdW5zaWduZWQgSU5WQUxJRF9OVU1fUEFSU0VEX1BST1BFUlRJRVMgPSBVSU5UX01BWDsKQEAg
LTU1MjYsNyArNTUyNCw3IEBAIHN0YXRpYyBpbnQgY3NzUHJvcGVydHlJRChjb25zdCBVQ2hhciog
cHJvcGVydHlOYW1lLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBj
b25zdCBwcm9wcyogaGFzaFRhYmxlRW50cnkgPSBmaW5kUHJvcChuYW1lLCBsZW5ndGgpOworICAg
IGNvbnN0IFByb3BlcnR5KiBoYXNoVGFibGVFbnRyeSA9IGZpbmRQcm9wZXJ0eShuYW1lLCBsZW5n
dGgpOwogICAgIHJldHVybiBoYXNoVGFibGVFbnRyeSA/IGhhc2hUYWJsZUVudHJ5LT5pZCA6IDA7
CiB9CiAKQEAgLTU1NjgsNyArNTU2Niw3IEBAIGludCBjc3NWYWx1ZUtleXdvcmRJRChjb25zdCBD
U1NQYXJzZXJTdHJpbmcmIHN0cmluZykKICAgICAgICAgfQogICAgIH0KIAotICAgIGNvbnN0IGNz
c192YWx1ZSogaGFzaFRhYmxlRW50cnkgPSBmaW5kVmFsdWUoYnVmZmVyLCBsZW5ndGgpOworICAg
IGNvbnN0IFZhbHVlKiBoYXNoVGFibGVFbnRyeSA9IGZpbmRWYWx1ZShidWZmZXIsIGxlbmd0aCk7
CiAgICAgcmV0dXJuIGhhc2hUYWJsZUVudHJ5ID8gaGFzaFRhYmxlRW50cnktPmlkIDogMDsKIH0K
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIGIvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCmluZGV4IDIxMGQ2ZjUuLjMzN2YwYzUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAorKysgYi9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDb2xv
ci5oIgogI2luY2x1ZGUgIkNvdW50ZXIuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisj
aW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBhaXIu
aCIKICNpbmNsdWRlICJSR0JDb2xvci5oIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUHJv
cGVydHkuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCmluZGV4IGQ3ZjIxNzUuLjlj
OGE1MWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAorKysgYi9XZWJD
b3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJDU1NQ
cm9wZXJ0eS5oIgogCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgorI2luY2x1ZGUgIkhh
c2hUb29scy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uY3BwIGIv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggNDA0YTk3OC4uZTQ1ZDJm
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNp
bmNsdWRlICJDU1NQcm9wZXJ0eS5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNp
bmNsdWRlICJDU1NSdWxlLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSA8d3Rm
L0FTQ0lJQ1R5cGUuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvY3NzL21ha2Vwcm9wLnBsIGIvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwKaW5kZXggMTE1OTY5
Zi4uZWY2YTI3NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwKKysrIGIvV2Vi
Q29yZS9jc3MvbWFrZXByb3AucGwKQEAgLTUsNiArNSw3IEBACiAjICAgQ29weXJpZ2h0IChDKSAx
OTk5IFdhbGRvIEJhc3RpYW4gKGJhc3RpYW5Aa2RlLm9yZykKICMgICBDb3B5cmlnaHQgKEMpIDIw
MDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyAgIENvcHlyaWdodCAo
QykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyMg
ICBDb3B5cmlnaHQgKEMpIDIwMTAgQW5kcmFzIEJlY3NpIChhYmVjc2lAaW5mLnUtc3plZ2VkLmh1
KSwgVW5pdmVyc2l0eSBvZiBTemVnZWQKICMKICMgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAjICAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM3LDEyICsz
OCwxOSBAQCBvcGVuIEdQRVJGLCAiPkNTU1Byb3BlcnR5TmFtZXMuZ3BlcmYiIHx8IGRpZSAiQ291
bGQgbm90IG9wZW4gQ1NTUHJvcGVydHlOYW1lcy5ncAogcHJpbnQgR1BFUkYgPDwgIkVPRiI7CiAl
ewogLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gQ1NTUHJvcGVy
dHlOYW1lcy5pbiBieSBtYWtlcHJvcCwgZG8gbm90IGVkaXQgKi8KLSNpbmNsdWRlIFwiQ1NTUHJv
cGVydHlOYW1lcy5oXCIKICV9Ci1zdHJ1Y3QgcHJvcHMgewotICAgIGNvbnN0IGNoYXIqIG5hbWU7
Ci0gICAgaW50IGlkOwotfTsKKyVzdHJ1Y3QtdHlwZQorc3RydWN0IFByb3BlcnR5OworJW9taXQt
c3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysKKyVyZWFkb25seS10YWJsZXMKKyVnbG9iYWwtdGFi
bGUKKyVjb21wYXJlLXN0cm5jbXAKKyVkZWZpbmUgY2xhc3MtbmFtZSBDU1NQcm9wZXJ0eU5hbWVz
SGFzaAorJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kUHJvcGVydHlJbXBsCislZGVm
aW5lIGhhc2gtZnVuY3Rpb24tbmFtZSBwcm9wZXJ5X2hhc2hfZnVuY3Rpb24KKyVpbmNsdWRlcwor
JWVudW0KICUlCiBFT0YKIApAQCAtNTcsNiArNjUsNyBAQCBjbG9zZSBHUEVSRjsKIG9wZW4gSEVB
REVSLCAiPkNTU1Byb3BlcnR5TmFtZXMuaCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NQcm9w
ZXJ0eU5hbWVzLmggZm9yIHdyaXRpbmciOwogcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogLyogVGhp
cyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gQ1NTUHJvcGVydHlOYW1lcy5p
biBieSBtYWtlcHJvcCwgZG8gbm90IGVkaXQgKi8KKyNpbmNsdWRlICJ3dGYvdGV4dC9DU3RyaW5n
LmgiCiAKICNpZm5kZWYgQ1NTUHJvcGVydHlOYW1lc19oCiAjZGVmaW5lIENTU1Byb3BlcnR5TmFt
ZXNfaApAQCAtODYsMTYgKzk1LDE0IEBAIHByaW50IEhFQURFUiAiY29uc3Qgc2l6ZV90IG1heENT
U1Byb3BlcnR5TmFtZUxlbmd0aCA9ICRtYXhMZW47XG4iOwogCiBwcmludCBIRUFERVIgPDwgIkVP
RiI7CiAKLWNvbnN0IGNoYXIqIGdldFByb3BlcnR5TmFtZShDU1NQcm9wZXJ0eUlEKTsKLQotI2Vu
ZGlmCisjZW5kaWYgLy8gQ1NTUHJvcGVydHlOYW1lc19oCiBFT0YKIAogY2xvc2UgSEVBREVSOwog
Ci1zeXN0ZW0oImdwZXJmIC1hIC1MIEFOU0ktQyAtRSAtQyAtYyAtbyAtdCAtLWtleS1wb3NpdGlv
bnM9XCIqXCIgLU5maW5kUHJvcCAtSGhhc2hfcHJvcCAtV3dvcmRsaXN0X3Byb3AgLUQgLXMgMiBD
U1NQcm9wZXJ0eU5hbWVzLmdwZXJmID4gQ1NTUHJvcGVydHlOYW1lcy5jcHAiKSA9PSAwIHx8IGRp
ZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKK3N5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRp
b25zPVwiKlwiIC1EIC1zIDIgQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiA+IENTU1Byb3BlcnR5TmFt
ZXNIYXNoLmhwcCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwogCi1v
cGVuIEMsICI+PkNTU1Byb3BlcnR5TmFtZXMuY3BwIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENT
U1Byb3BlcnR5TmFtZXMuY3BwIGZvciB3cml0aW5nIjsKK29wZW4gQywgIj4+Q1NTUHJvcGVydHlO
YW1lc0hhc2guaHBwIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1Byb3BlcnR5TmFtZXNIYXNo
LmhwcCBmb3Igd3JpdGluZyI7CiBwcmludCBDICJzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHBy
b3BlcnR5TmFtZVN0cmluZ3NbJG51bV0gPSB7XG4iOwogCiBmb3JlYWNoIG15ICRuYW1lIChAbmFt
ZXMpIHsKQEAgLTEwNCw2ICsxMTEsMjggQEAgZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CiAK
IHByaW50IEMgPDwgIkVPRiI7CiB9OworCitFT0YKKworY2xvc2UgQzsKKworbXkgJHByb3BlcnR5
TmFtZXNJbXBsID0gIkNTU1Byb3BlcnR5TmFtZXNJbXBsLmNwcCI7CisKK29wZW4gUFJPUEVSVFlO
QU1FUywgIj4kcHJvcGVydHlOYW1lc0ltcGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJHByb3Bl
cnR5TmFtZXNJbXBsIGZvciB3cml0aW5nIjsKK3ByaW50IFBST1BFUlRZTkFNRVMgPDwgIkVPRiI7
CisvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRv
b2xzLnBsLCBkbyBub3QgZWRpdCAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
SGFzaFRvb2xzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJDU1NQcm9wZXJ0
eU5hbWVzSGFzaC5ocHAiCisKK2NvbnN0IFByb3BlcnR5KiBmaW5kUHJvcGVydHkgKHJlZ2lzdGVy
IGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbikKK3sKKyAgICByZXR1
cm4gQ1NTUHJvcGVydHlOYW1lc0hhc2g6OmZpbmRQcm9wZXJ0eUltcGwoc3RyLCBsZW4pOworfQor
CiBjb25zdCBjaGFyKiBnZXRQcm9wZXJ0eU5hbWUoQ1NTUHJvcGVydHlJRCBpZCkKIHsKICAgICBp
ZiAoaWQgPCBmaXJzdENTU1Byb3BlcnR5KQpAQCAtMTEzLDcgKzE0Miw5IEBAIGNvbnN0IGNoYXIq
IGdldFByb3BlcnR5TmFtZShDU1NQcm9wZXJ0eUlEIGlkKQogICAgICAgICByZXR1cm4gMDsKICAg
ICByZXR1cm4gcHJvcGVydHlOYW1lU3RyaW5nc1tpbmRleF07CiB9Ci1FT0YKIAotY2xvc2UgQzsK
K30KKworRU9GCitjbG9zZSBQUk9QRVJUWU5BTUVTOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nz
cy9tYWtldmFsdWVzLnBsIGIvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAppbmRleCBlNDk5ODFk
Li42ODgwZGU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCisrKyBiL1dl
YkNvcmUvY3NzL21ha2V2YWx1ZXMucGwKQEAgLTUsNiArNSw3IEBACiAjICAgQ29weXJpZ2h0IChD
KSAxOTk5IFdhbGRvIEJhc3RpYW4gKGJhc3RpYW5Aa2RlLm9yZykKICMgICBDb3B5cmlnaHQgKEMp
IDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyAgIENvcHlyaWdodCAoQykg
MjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyMgICBD
b3B5cmlnaHQgKEMpIDIwMTAgQW5kcmFzIEJlY3NpIChhYmVjc2lAaW5mLnUtc3plZ2VkLmh1KSwg
VW5pdmVyc2l0eSBvZiBTemVnZWQKICMKICMgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAjICAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM3LDEzICszOCwx
OSBAQCBvcGVuIEdQRVJGLCAiPkNTU1ZhbHVlS2V5d29yZHMuZ3BlcmYiIHx8IGRpZSAiQ291bGQg
bm90IG9wZW4gQ1NTVmFsdWVLZXl3b3Jkcy5ncAogcHJpbnQgR1BFUkYgPDwgIkVPRiI7CiAlewog
LyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gQ1NTVmFsdWVLZXl3
b3Jkcy5pbiBieSBtYWtldmFsdWVzLCBkbyBub3QgZWRpdCAqLwotCi0jaW5jbHVkZSBcIkNTU1Zh
bHVlS2V5d29yZHMuaFwiCiAlfQotc3RydWN0IGNzc192YWx1ZSB7Ci0gICAgY29uc3QgY2hhciog
bmFtZTsKLSAgICBpbnQgaWQ7Ci19OworJXN0cnVjdC10eXBlCitzdHJ1Y3QgVmFsdWU7Cislb21p
dC1zdHJ1Y3QtdHlwZQorJWxhbmd1YWdlPUMrKworJXJlYWRvbmx5LXRhYmxlcworJWdsb2JhbC10
YWJsZQorJWNvbXBhcmUtc3RybmNtcAorJWRlZmluZSBjbGFzcy1uYW1lIENTU1ZhbHVlS2V5d29y
ZHNIYXNoCislZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRWYWx1ZUltcGwKKyVkZWZp
bmUgaGFzaC1mdW5jdGlvbi1uYW1lIHZhbHVlX2hhc2hfZnVuY3Rpb24KKyVpbmNsdWRlcworJWVu
dW0KICUlCiBFT0YKIApAQCAtNTgsOSArNjUsMTAgQEAgY2xvc2UgR1BFUkY7CiBvcGVuIEhFQURF
UiwgIj5DU1NWYWx1ZUtleXdvcmRzLmgiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTVmFsdWVL
ZXl3b3Jkcy5oIGZvciB3cml0aW5nIjsKIHByaW50IEhFQURFUiA8PCAiRU9GIjsKIC8qIFRoaXMg
ZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIENTU1ZhbHVlS2V5d29yZHMuaW4g
YnkgbWFrZXZhbHVlcywgZG8gbm90IGVkaXQgKi8KKyNpbmNsdWRlICJ3dGYvdGV4dC9DU3RyaW5n
LmgiCiAKLSNpZm5kZWYgQ1NTVmFsdWVzX2gKLSNkZWZpbmUgQ1NTVmFsdWVzX2gKKyNpZm5kZWYg
Q1NTVmFsdWVLZXl3b3Jkc19oCisjZGVmaW5lIENTU1ZhbHVlS2V5d29yZHNfaAogCiBjb25zdCBp
bnQgQ1NTVmFsdWVJbnZhbGlkID0gMDsKIEVPRgpAQCAtODAsMTUgKzg4LDE0IEBAIHByaW50IEhF
QURFUiAiY29uc3QgaW50IG51bUNTU1ZhbHVlS2V5d29yZHMgPSAiIC4gJGkgLiAiO1xuIjsKIHBy
aW50IEhFQURFUiAiY29uc3Qgc2l6ZV90IG1heENTU1ZhbHVlS2V5d29yZExlbmd0aCA9ICIgLiAk
bWF4TGVuIC4gIjtcbiI7CiBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAKLWNvbnN0IGNoYXIqIGdl
dFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBpZCk7CiAKLSNlbmRpZgorI2VuZGlmIC8vIENTU1Zh
bHVlS2V5d29yZHNfaAogRU9GCiBjbG9zZSBIRUFERVI7CiAKLXN5c3RlbSgiZ3BlcmYgLUwgQU5T
SS1DIC1FIC1DIC1uIC1vIC10IC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtTmZpbmRWYWx1ZSAtSGhh
c2hfdmFsIC1Xd29yZGxpc3RfdmFsdWUgLUQgQ1NTVmFsdWVLZXl3b3Jkcy5ncGVyZiA+IENTU1Zh
bHVlS2V5d29yZHMuYyIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwor
c3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLXMgMiBDU1NWYWx1ZUtleXdv
cmRzLmdwZXJmID4gQ1NTVmFsdWVLZXl3b3Jkc0hhc2guaHBwIikgPT0gMCB8fCBkaWUgImNhbGxp
bmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKLW9wZW4gQywgIj4+Q1NTVmFsdWVLZXl3b3Jkcy5jIiB8
fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1ZhbHVlS2V5d29yZHMuYyBmb3Igd3JpdGluZyI7Citv
cGVuIEMsICI+PkNTU1ZhbHVlS2V5d29yZHNIYXNoLmhwcCIgfHwgZGllICJDb3VsZCBub3Qgb3Bl
biBDU1NWYWx1ZUtleXdvcmRzSGFzaC5ocHAgZm9yIHdyaXRpbmciOwogcHJpbnQgQyAgInN0YXRp
YyBjb25zdCBjaGFyICogY29uc3QgdmFsdWVMaXN0W10gPSB7XG4iOwogcHJpbnQgQyAgIlwiXCIs
XG4iOwogZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CkBAIC05NywxMiArMTA0LDM1IEBAIGZv
cmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgewogcHJpbnQgQyA8PCAiRU9GIjsKICAgICAwCiB9Owor
CitFT0YKKworY2xvc2UgQzsKKworbXkgJHZhbHVlS2V5d29yZHNJbXBsID0gIkNTU1ZhbHVlS2V5
d29yZHNJbXBsLmNwcCI7CisKK29wZW4gVkFMVUVLRVlXT1JEUywgIj4kdmFsdWVLZXl3b3Jkc0lt
cGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJHZhbHVlS2V5d29yZHNJbXBsIGZvciB3cml0aW5n
IjsKK3ByaW50IFZBTFVFS0VZV09SRFMgPDwgIkVPRiI7CisvKiBUaGlzIGZpbGUgaXMgYXV0b21h
dGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBkbyBub3QgZWRpdCAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzSGFzaC5ocHAiCisKK2NvbnN0
IFZhbHVlKiBmaW5kVmFsdWUgKHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5z
aWduZWQgaW50IGxlbikKK3sKKyAgICByZXR1cm4gQ1NTVmFsdWVLZXl3b3Jkc0hhc2g6OmZpbmRW
YWx1ZUltcGwoc3RyLCBsZW4pOworfQorCiBjb25zdCBjaGFyKiBnZXRWYWx1ZU5hbWUodW5zaWdu
ZWQgc2hvcnQgaWQpCiB7CiAgICAgaWYgKGlkID49IG51bUNTU1ZhbHVlS2V5d29yZHMgfHwgaWQg
PD0gMCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIHZhbHVlTGlzdFtpZF07CiB9Ci1F
T0YKIAotY2xvc2UgQzsKK30KKworRU9GCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRG9jVHlw
ZVN0cmluZ3MuZ3BlcmYgYi9XZWJDb3JlL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKaW5kZXgg
Mzk4NjI2ZS4uMWM3NDExZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0RvY1R5cGVTdHJpbmdz
LmdwZXJmCisrKyBiL1dlYkNvcmUvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgpAQCAtMSwxNCAr
MSwxNiBAQAotc3RydWN0IFB1YklESW5mbyB7Ci0gICAgZW51bSBlTW9kZSB7IAotICAgICAgICBl
UXVpcmtzLCAgICAgICAgIAotICAgICAgICBlUXVpcmtzMywgICAgICAgCi0gICAgICAgIGVBbG1v
c3RTdGFuZGFyZHMKLSAgICB9OwotCi0gICAgY29uc3QgY2hhciogbmFtZTsKLSAgICBlTW9kZSBt
b2RlX2lmX25vX3N5c2lkOwotICAgIGVNb2RlIG1vZGVfaWZfc3lzaWQ7Ci19Cislc3RydWN0LXR5
cGUKK3N0cnVjdCBQdWJJREluZm87Cislb21pdC1zdHJ1Y3QtdHlwZQorJWxhbmd1YWdlPUMrKwor
JXJlYWRvbmx5LXRhYmxlcworJWdsb2JhbC10YWJsZQorJWNvbXBhcmUtc3RybmNtcAorJWRlZmlu
ZSBpbml0aWFsaXplci1zdWZmaXggLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyxQdWJJRElu
Zm86OmVBbG1vc3RTdGFuZGFyZHMKKyVkZWZpbmUgY2xhc3MtbmFtZSBEb2NUeXBlU3RyaW5nc0hh
c2gKKyVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZERvY3R5cGVFbnRyeUltcGwKKyVk
ZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1lIGRvY3R5cGVfaGFzaF9mdW5jdGlvbgorJWluY2x1ZGVz
CislZW51bQogJSUKICIrLy9zaWxtYXJpbC8vZHRkIGh0bWwgcHJvIHYwcjExIDE5OTcwMTAxLy9l
biIsIFB1YklESW5mbzo6ZVF1aXJrczMsIFB1YklESW5mbzo6ZVF1aXJrczMKICItLy9hZHZhc29m
dCBsdGQvL2R0ZCBodG1sIDMuMCBhc3dlZGl0ICsgZXh0ZW5zaW9ucy8vZW4iLCBQdWJJREluZm86
OmVRdWlya3MzLCBQdWJJREluZm86OmVRdWlya3MzCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTERvY3VtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCmluZGV4IDMw
NDhlZTkuLmE2YzdlNmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3Bw
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCkBAIC02NCw2ICs2NCw3IEBACiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRl
ICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJIVE1MQm9k
eUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudEZhY3RvcnkuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKQEAgLTczLDggKzc0LDYgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCi0jaW5jbHVkZSAiRG9jVHlwZVN0cmluZ3MuY3BwIgot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmIGIvV2ViQ29yZS9odG1s
L0hUTUxFbnRpdHlOYW1lcy5ncGVyZgppbmRleCBiMTZiM2Q4Li5kNjNkMTMzIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MRW50aXR5TmFtZXMuZ3BlcmYKQEAgLTIsNiArMiw3IEBACiAvKgogICAgICBDb3B5cmlnaHQg
KEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAbXBpLWhkLm1wZy5kZSkKICAgICAgQ29weXJpZ2h0
IChDKSAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAgICAgQ29weXJpZ2h0IChDKSAyMDEwIEFuZHJhcyBCZWNzaSAoYWJlY3NpQGluZi51LXN6
ZWdlZC5odSksIFVuaXZlcnNpdHkgb2YgU3plZ2VkCiAgIAogICAgICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0yMSwxNSArMjIsMjEgQEAKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAKICAgICBIVE1MRW50
aXR5TmFtZXMuZ3BlcmY6IGlucHV0IGZpbGUgdG8gZ2VuZXJhdGUgYSBoYXNoIHRhYmxlIGZvciBl
bnRpdGllcwotICAgIEhUTUxFbnRpdHlOYW1lcy5jOiBETyBOT1QgRURJVCEgZ2VuZXJhdGVkIGJ5
IHRoZSBjb21tYW5kCi0gICAgImdwZXJmIC1hIC1MICJBTlNJLUMiIC1DIC1HIC1jIC1vIC10IC1r
ICcqJyAtTmZpbmRFbnRpdHkgLUQgLXMgMiBIVE1MRW50aXR5TmFtZXMuZ3BlcmYgPiBlbnRpdGll
cy5jIiAgIAotICAgIGZyb20gSFRNTEVudGl0eU5hbWVzLmdwZXJmIAorICAgIEhUTUxFbnRpdHlO
YW1lcy5ocHA6IERPIE5PVCBFRElUISBnZW5lcmF0ZWQgYnkgV2ViQ29yZS9tYWtlX2hhc2hfdG9v
bHMucGwKICovCiAlfQotc3RydWN0IEVudGl0eSB7Ci0gICAgY29uc3QgY2hhciAqbmFtZTsKLSAg
ICBpbnQgY29kZTsKLX07Cislc3RydWN0LXR5cGUKK3N0cnVjdCBFbnRpdHk7Cislb21pdC1zdHJ1
Y3QtdHlwZQorJWxhbmd1YWdlPUMrKworJXJlYWRvbmx5LXRhYmxlcworJWdsb2JhbC10YWJsZQor
JWNvbXBhcmUtc3RybmNtcAorJWRlZmluZSBjbGFzcy1uYW1lIEhUTUxFbnRpdHlIYXNoCislZGVm
aW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRFbnRpdHlJbXBsCislZGVmaW5lIGhhc2gtZnVu
Y3Rpb24tbmFtZSBlbnRpdHlfaGFzaF9mdW5jdGlvbgorJWluY2x1ZGVzCislZW51bQogJSUKIEFF
bGlnLCAweDAwYzYKIEFNUCwgMzgKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5p
emVyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcAppbmRleCBjODA3YTRmLi5h
NTNjZGY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKKysrIGIv
V2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lVmll
dy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlci5oIgpAQCAtNTUsOCAr
NTYsNiBAQAogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CiAKLSNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXMuYyIKLQogI2RlZmluZSBQUkVM
T0FEX1NDQU5ORVJfRU5BQkxFRCAxCiAvLyAjZGVmaW5lIElOU1RSVU1FTlRfTEFZT1VUX1NDSEVE
VUxJTkcgMQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvUHJlbG9hZFNjYW5uZXIuY3BwIGIv
V2ViQ29yZS9odG1sL1ByZWxvYWRTY2FubmVyLmNwcAppbmRleCBjZDg0YjIwLi5lZWZhNDZmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvUHJlbG9hZFNjYW5uZXIuY3BwCisrKyBiL1dlYkNvcmUv
aHRtbC9QcmVsb2FkU2Nhbm5lci5jcHAKQEAgLTM4LDI0ICszOCwxMyBAQAogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgor
I2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+
CiAKLS8vIFVzZSBfX0dOVUNfXyBpbnN0ZWFkIG9mIFBMQVRGT1JNKEdDQykgdG8gc3RheSBjb25z
aXN0ZW50IHdpdGggdGhlIGdwZXJmIGdlbmVyYXRlZCBjIGZpbGUKLSNpZmRlZiBfX0dOVUNfXwot
Ly8gVGhlIG1haW4gdG9rZW5pemVyIGluY2x1ZGVzIHRoaXMgdG9vIHNvIHdlIGFyZSBnZXR0aW5n
IHR3byBjb3BpZXMgb2YgdGhlIGRhdGEuIEhvd2V2ZXIsIHRoaXMgd2F5IHRoZSBjb2RlIGdldHMg
aW5saW5lZC4KLSNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXMuYyIKLSNlbHNlCi0vLyBOb3QgaW5s
aW5lZCBmb3Igbm9uLUdDQyBjb21waWxlcnMKLXN0cnVjdCBFbnRpdHkgewotICAgIGNvbnN0IGNo
YXIqIG5hbWU7Ci0gICAgaW50IGNvZGU7Ci19OwotY29uc3Qgc3RydWN0IEVudGl0eSogZmluZEVu
dGl0eShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4p
OwotI2VuZGlmCiAKICNkZWZpbmUgUFJFTE9BRF9ERUJVRyAwCiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvbWFrZS1oYXNoLXRvb2xzLnBsIGIvV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDVjNWExNwotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsCkBAIC0wLDAgKzEsMTkxIEBACisjISAvdXNyL2Jp
bi9wZXJsCisjCisjICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBwcm9qZWN0Cisj
CisjICAgQ29weXJpZ2h0IChDKSAyMDEwIEFuZHJhcyBCZWNzaSAoYWJlY3NpQGluZi51LXN6ZWdl
ZC5odSksIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisjCisjICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyAgIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisjICAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisjICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorIworIyAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjICAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMg
ICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMg
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisjICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyMgICB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorIyAg
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorCit1c2Ugc3RyaWN0OwordXNlIFN3aXRjaDsK
KworbXkgJG9wdGlvbiAgICAgICAgICAgICAgICAgICAgID0gJEFSR1ZbMF07CitzaGlmdDsKK215
ICRvdXRkaXIgICAgICAgICAgICAgICAgICAgICA9ICRBUkdWWzBdOworc2hpZnQ7CisKK215ICRo
YXNoVG9vbHNIZWFkZXIgPSAiJG91dGRpci9IYXNoVG9vbHMuaCI7CisKK3N1YiBjcmVhdGVIYXNo
VG9vbHNIZWFkZXIoKSB7CisKK29wZW4gSEVBREVSLCAiPiRoYXNoVG9vbHNIZWFkZXIiIHx8IGRp
ZSAiQ291bGQgbm90IG9wZW4gJGhhc2hUb29sc0hlYWRlciBmb3Igd3JpdGluZyI7CitwcmludCBI
RUFERVIgPDwgIkVPRiI7CisvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQg
YnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBkbyBub3QgZWRpdCAqLworCisjaW5jbHVkZSAiQ1NTVmFs
dWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKKworI2lmbmRlZiBI
YXNoVG9vbHNfaAorI2RlZmluZSBIYXNoVG9vbHNfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3N0cnVjdCBFbnRpdHkgeworICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgaW50IGNvZGU7Cit9
OworCitzdHJ1Y3QgUHViSURJbmZvIHsKKyAgICBlbnVtIGVNb2RlIHsKKyAgICAgICAgZVF1aXJr
cywKKyAgICAgICAgZVF1aXJrczMsCisgICAgICAgIGVBbG1vc3RTdGFuZGFyZHMKKyAgICB9Owor
CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBlTW9kZSBtb2RlX2lmX25vX3N5c2lkOworICAg
IGVNb2RlIG1vZGVfaWZfc3lzaWQ7Cit9OworCitzdHJ1Y3QgTmFtZWRDb2xvciB7CisgICAgY29u
c3QgY2hhciogbmFtZTsKKyAgICBpbnQgUkdCVmFsdWU7Cit9OworCitzdHJ1Y3QgUHJvcGVydHkg
eworICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgaW50IGlkOworfTsKKworc3RydWN0IFZhbHVl
IHsKKyAgICBjb25zdCBjaGFyKiBuYW1lOworICAgIGludCBpZDsKK307CisKK2NvbnN0IEVudGl0
eSogZmluZEVudGl0eShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVk
IGludCBsZW4pOworY29uc3QgUHViSURJbmZvKiBmaW5kRG9jdHlwZUVudHJ5KHJlZ2lzdGVyIGNv
bnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbik7Citjb25zdCBOYW1lZENv
bG9yKiBmaW5kQ29sb3IocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25l
ZCBpbnQgbGVuKTsKK2NvbnN0IFByb3BlcnR5KiBmaW5kUHJvcGVydHkocmVnaXN0ZXIgY29uc3Qg
Y2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKK2NvbnN0IFZhbHVlKiBmaW5k
VmFsdWUocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVu
KTsKKworY29uc3QgY2hhciogZ2V0UHJvcGVydHlOYW1lKENTU1Byb3BlcnR5SUQpOworY29uc3Qg
Y2hhciogZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKTsKKworfQorCisjZW5kaWYgLy8g
SGFzaFRvb2xzX2gKKworRU9GCitjbG9zZSBIRUFERVI7CisKK30KKworc3dpdGNoICgkb3B0aW9u
KSB7CisKK2Nhc2UgImVudGl0aWVzIiB7CisKKyMgQ3JlYXRlIHRoZSBmb2xsb3dpbmcgb25jZSBp
biB0aGUgSFRNTEVudGl0eU5hbWVzIGNyZWF0aW9uIHBoYXNlCitjcmVhdGVIYXNoVG9vbHNIZWFk
ZXIoKTsKKworbXkgJGh0bWxFbnRpdHlOYW1lc0ltcGwgICAgICAgID0gIiRvdXRkaXIvSFRNTEVu
dGl0eU5hbWVzSW1wbC5jcHAiOworbXkgJGh0bWxFbnRpdHlOYW1lc0dlbmVyYXRlZCAgID0gIiRv
dXRkaXIvSFRNTEVudGl0eU5hbWVzSGFzaC5ocHAiOworbXkgJGh0bWxFbnRpdHlOYW1lc0dwZXJm
ICAgICAgID0gJEFSR1ZbMF07CitzaGlmdDsKKworb3BlbiBFTlRJVElFUywgIj4kaHRtbEVudGl0
eU5hbWVzSW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkaHRtbEVudGl0eU5hbWVzSW1wbCBm
b3Igd3JpdGluZyI7CitwcmludCBFTlRJVElFUyA8PCAiRU9GIjsKKy8qIFRoaXMgZmlsZSBpcyBh
dXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5vdCBlZGl0
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lc0hhc2guaHBwIgorCitj
b25zdCBFbnRpdHkqIGZpbmRFbnRpdHkocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3Rl
ciB1bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHJldHVybiBIVE1MRW50aXR5SGFzaDo6ZmluZEVu
dGl0eUltcGwoc3RyLCBsZW4pOworfQorCit9CisKK0VPRgorY2xvc2UgRU5USVRJRVM7CitzeXN0
ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtcyAyICRodG1sRW50aXR5TmFtZXNH
cGVyZiA+ICRodG1sRW50aXR5TmFtZXNHZW5lcmF0ZWQiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBn
cGVyZiBmYWlsZWQ6ICQ/IjsKKworfSAjIGNhc2UgImVudGl0aWVzIgorCitjYXNlICJkb2N0eXBl
IiB7CisKK215ICRkb2NUeXBlU3RyaW5nc0ltcGwgICAgICAgICA9ICIkb3V0ZGlyL0RvY1R5cGVT
dHJpbmdzSW1wbC5jcHAiOworbXkgJGRvY1R5cGVTdHJpbmdzR2VuZXJhdGVkICAgID0gIiRvdXRk
aXIvRG9jVHlwZVN0cmluZ3NIYXNoLmhwcCI7CitteSAkZG9jVHlwZVN0cmluZ3NHcGVyZiAgICAg
ICAgPSAkQVJHVlswXTsKK3NoaWZ0OworCitvcGVuIERPQ1RZUEVTVFJJTkdTLCAiPiRkb2NUeXBl
U3RyaW5nc0ltcGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJGRvY1R5cGVTdHJpbmdzSW1wbCBm
b3Igd3JpdGluZyI7CitwcmludCBET0NUWVBFU1RSSU5HUyA8PCAiRU9GIjsKKy8qIFRoaXMgZmls
ZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5v
dCBlZGl0ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworI2luY2x1ZGUgIkRvY1R5cGVTdHJpbmdzSGFzaC5ocHAi
CisKK2NvbnN0IFB1YklESW5mbyogZmluZERvY3R5cGVFbnRyeSAocmVnaXN0ZXIgY29uc3QgY2hh
ciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHJldHVybiBEb2NUeXBl
U3RyaW5nc0hhc2g6OmZpbmREb2N0eXBlRW50cnlJbXBsKHN0ciwgbGVuKTsKK30KKworfQorCitF
T0YKK2Nsb3NlIERPQ1RZUEVTVFJJTkdTOworc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9
XCIqXCIgLXMgMiAkZG9jVHlwZVN0cmluZ3NHcGVyZiA+ICRkb2NUeXBlU3RyaW5nc0dlbmVyYXRl
ZCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOworCit9ICMgY2FzZSAi
ZG9jdHlwZSIKKworY2FzZSAiY29sb3JkYXRhIiB7CisKK215ICRjb2xvckRhdGFJbXBsICAgICAg
ICA9ICIkb3V0ZGlyL0NvbG9yRGF0YUltcGwuY3BwIjsKK215ICRjb2xvckRhdGFHZW5lcmF0ZWQg
ICA9ICIkb3V0ZGlyL0NvbG9yRGF0YUhhc2guaHBwIjsKK215ICRjb2xvckRhdGFHcGVyZiAgICAg
ICA9ICRBUkdWWzBdOworc2hpZnQ7CisKK29wZW4gQ09MT1JEQVRBLCAiPiRjb2xvckRhdGFJbXBs
IiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRjb2xvckRhdGFJbXBsIGZvciB3cml0aW5nIjsKK3By
aW50IENPTE9SREFUQSA8PCAiRU9GIjsKKy8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdl
bmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5vdCBlZGl0ICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworI2luY2x1ZGUgIkNvbG9yRGF0YUhhc2guaHBwIgorCitjb25zdCBzdHJ1Y3QgTmFtZWRDb2xv
ciogZmluZENvbG9yIChyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVk
IGludCBsZW4pCit7CisgICAgcmV0dXJuIENvbG9yRGF0YUhhc2g6OmZpbmRDb2xvckltcGwoc3Ry
LCBsZW4pOworfQorCit9CisKK0VPRgorY2xvc2UgQ09MT1JEQVRBOworc3lzdGVtKCJncGVyZiAt
LWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLXMgMiAkY29sb3JEYXRhR3BlcmYgPiAkY29sb3JEYXRh
R2VuZXJhdGVkIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CisKK30g
IyBjYXNlICJjb2xvcmRhdGEiCisKK30gIyBzd2l0Y2ggKCRvcHRpb24pCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcCBiL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCmluZGV4IDMyOGZlMGUuLmNlYWViZGEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3Bw
CisrKyBiL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ29tcG9zaXRlQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAi
Q1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJI
YXNoVG9vbHMuaCIKICNpbmNsdWRlICJJbXBsaWNpdEFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIktl
eWZyYW1lQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db2xv
ckRhdGEuZ3BlcmYKaW5kZXggOGE1NDkxNi4uZDY4NGNiOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEu
Z3BlcmYKQEAgLTEsNCArMSwxNSBAQAotc3RydWN0IE5hbWVkQ29sb3IgeyBjb25zdCBjaGFyICpu
YW1lOyBpbnQgUkdCVmFsdWU7IH07Cislc3RydWN0LXR5cGUKK3N0cnVjdCBOYW1lZENvbG9yOwor
JW9taXQtc3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysKKyVyZWFkb25seS10YWJsZXMKKyVnbG9i
YWwtdGFibGUKKyVjb21wYXJlLXN0cm5jbXAKKyVkZWZpbmUgY2xhc3MtbmFtZSBDb2xvckRhdGFI
YXNoCislZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRDb2xvckltcGwKKyVkZWZpbmUg
aGFzaC1mdW5jdGlvbi1uYW1lIGNvbG9yZGF0YV9oYXNoX2Z1bmN0aW9uCislaW5jbHVkZXMKKyVl
bnVtCiAlJQogYWxpY2VibHVlLCAweGYwZjhmZgogYW50aXF1ZXdoaXRlLCAweGZhZWJkNwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAppbmRleCBkOThiMjAyLi5hODdkYWZkIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcApAQCAtMjYsMTMgKzI2LDEyIEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIKIAorI2luY2x1ZGUgIkhhc2hUb29scy5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAotI2luY2x1
ZGUgIkNvbG9yRGF0YS5jIgotCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNl
IFdURjsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOTA1MDU2NC4uMzZmN2QxMCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDUtMTIgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUBpbmYudS1z
emVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVmYWN0b3IgZ3BlcmYgY29kZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0byBmaXggdGhlIGRl
YnVnIGJ1aWxkIHdpdGggZ2NjPjQuNC4KKyAgICAgICAgd2Via2l0Lm9yZy9iLzI5MjQ0CisKKyAg
ICAgICAgR3BlcmYgY29kZSBnZW5lcmF0aW9uIGlzIGRvbmUgYnkgYSBuZXcgc2NyaXB0IGNhbGxl
ZCBXZWJDb3JlL21ha2UtaGFzaC10b29scy5wbCBub3csCisgICAgICAgIGFuZCB0aGUgZ2VuZXJh
dGlvbiBvcHRpb25zIHdlcmUgbW92ZWQgaW50byB0aGUgZ3BlcmYgZmlsZXMsIHRvIG1ha2UgdGhl
IG9wdGlvbnMgbW9yZSB1bmRlcnN0YW5kYWJsZQorICAgICAgICBhbmQgdGhlIGdlbmVyYXRpb24g
cHJvY2VzcyBsZXNzIHJlZHVuZGFudCBhY3Jvc3MgdGhlIHZhcmlvdXMgcG9ydHMuCisgICAgICAg
IEhpdGhlcnRvIGdwZXJmIGdlbmVyYXRlZCBDIGNvZGUsIHRoZXNlIGZpbGVzIHdlcmUgaW5jbHVk
ZWQgaW4gbXVsdGlwbGUgQysrIGZpbGVzIGFjcm9zcyBXZWJDb3JlCisgICAgICAgIHRvIGFjY2Vz
cyB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZC4gVGhpcyByZXN1bHRlZCBpbiBkZWJ1ZyBidWls
ZCBmYWlsdXJlIHdpdGggbmV3ZXIgZ2NjIHZlcnNpb25zCisgICAgICAgIGJlY2F1c2Ugb2YgYSBu
ZXcgZmVhdHVyZSBvZiBnY2MsIHdoaWNoIGRpc2FibGVzIEMgc3R5bGUgaW5saW5pbmcgaW4gZGVi
dWcgbW9kZS4KKyAgICAgICAgVGhlIG1ha2UtaGFzaC10b29scy5wbCBzY3JpcHQgbGV0cyBncGVy
ZiBnZW5lcmF0ZSBDKysgY29kZSBmb3IgYWxsIGdwZXJmIGZpbGVzIG5vdywgd2hpY2ggYXJlIGNv
bXBpbGVkCisgICAgICAgIGluIHRoZWlyIG93biBjb21waWxhdGlvbiB1bml0LgorICAgICAgICBU
aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSB0aGUgZ2VuZXJhdGVkIGNvZGUgaXMgd3JhcHBl
ZCBiZWhpbmQgSGFzaFRvb2xzLmgsIHNvIHRoZXJlIGlzIG5vIG5lZWQKKyAgICAgICAgZm9yIG11
bHRpcGxlIGluY2x1c2lvbnMgb2YgZ2VuZXJhdGVkIEMgZmlsZXMgdG8gYWNjZXNzIHRoZXNlIGZ1
bmN0aW9ucy4KKworICAgICAgICAqIHNyYy9XZWJFbnRpdGllcy5jcHA6CisKIDIwMTAtMDUtMTAg
IHlhZWwgYWhhcm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFbnRp
dGllcy5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVudGl0aWVzLmNwcAppbmRleCBiOTE0
M2Q5Li5hODgwNjcxIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVudGl0aWVz
LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVudGl0aWVzLmNwcApAQCAtMzMsNiAr
MzMsNyBAQAogCiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlN0cmluZ0J1aWxkZXIuaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNDEsMTUgKzQyLDYgQEAKIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLW5hbWVzcGFjZSB7Ci0vLyBOb3RlIHRoYXQgdGhpcyBmaWxlIGlz
IGFsc28gaW5jbHVkZWQgYnkgSFRNTFRva2VuaXplci5jcHAgc28gd2UgYXJlIGdldHRpbmcKLS8v
IHR3byBjb3BpZXMgb2YgdGhlIGRhdGEgaW4gbWVtb3J5LiAgV2UgY2FuIGZpeCB0aGlzIGJ5IGNo
YW5naW5nIHRoZSBzY3JpcHQKLS8vIHRoYXQgZ2VuZXJhdGVkIHRoZSBhcnJheSB0byBjcmVhdGUg
YSBzdGF0aWMgY29uc3QgdGhhdCBpcyBpdHMgbGVuZ3RoLCBidXQKLS8vIHRoaXMgaXMgbG93IHBy
aW9yaXR5IHNpbmNlIHRoZSBkYXRhIGlzIGxlc3MgdGhhbiA0Sy4gV2UgdXNlIGFub255bW91cwot
Ly8gbmFtZXNwYWNlIHRvIHByZXZlbnQgbmFtZSBjb2xsaXNpb25zLgotI2luY2x1ZGUgIkhUTUxF
bnRpdHlOYW1lcy5jIiAvLyBOT0xJTlQKLX0KLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQg
cG9wdWxhdGVNYXAoV1RGOjpIYXNoTWFwPGludCwgV2ViQ29yZTo6U3RyaW5nPiYgbWFwLApkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXgg
Y2ZhYTUxMC4uMzQyZWEwNiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUtMTIgIEFuZHJhcyBC
ZWNzaSAgPGFiZWNzaUBpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgZ3BlcmYgY29kZSBnZW5lcmF0aW9uIGFu
ZCB1c2FnZSB0byBmaXggdGhlIGRlYnVnIGJ1aWxkIHdpdGggZ2NjPjQuNC4KKyAgICAgICAgd2Vi
a2l0Lm9yZy9iLzI5MjQ0CisKKyAgICAgICAgR3BlcmYgY29kZSBnZW5lcmF0aW9uIGlzIGRvbmUg
YnkgYSBuZXcgc2NyaXB0IGNhbGxlZCBXZWJDb3JlL21ha2UtaGFzaC10b29scy5wbCBub3csCisg
ICAgICAgIGFuZCB0aGUgZ2VuZXJhdGlvbiBvcHRpb25zIHdlcmUgbW92ZWQgaW50byB0aGUgZ3Bl
cmYgZmlsZXMsIHRvIG1ha2UgdGhlIG9wdGlvbnMgbW9yZSB1bmRlcnN0YW5kYWJsZQorICAgICAg
ICBhbmQgdGhlIGdlbmVyYXRpb24gcHJvY2VzcyBsZXNzIHJlZHVuZGFudCBhY3Jvc3MgdGhlIHZh
cmlvdXMgcG9ydHMuCisgICAgICAgIEhpdGhlcnRvIGdwZXJmIGdlbmVyYXRlZCBDIGNvZGUsIHRo
ZXNlIGZpbGVzIHdlcmUgaW5jbHVkZWQgaW4gbXVsdGlwbGUgQysrIGZpbGVzIGFjcm9zcyBXZWJD
b3JlCisgICAgICAgIHRvIGFjY2VzcyB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZC4gVGhpcyBy
ZXN1bHRlZCBpbiBkZWJ1ZyBidWlsZCBmYWlsdXJlIHdpdGggbmV3ZXIgZ2NjIHZlcnNpb25zCisg
ICAgICAgIGJlY2F1c2Ugb2YgYSBuZXcgZmVhdHVyZSBvZiBnY2MsIHdoaWNoIGRpc2FibGVzIEMg
c3R5bGUgaW5saW5pbmcgaW4gZGVidWcgbW9kZS4KKyAgICAgICAgVGhlIG1ha2UtaGFzaC10b29s
cy5wbCBzY3JpcHQgbGV0cyBncGVyZiBnZW5lcmF0ZSBDKysgY29kZSBmb3IgYWxsIGdwZXJmIGZp
bGVzIG5vdywgd2hpY2ggYXJlIGNvbXBpbGVkCisgICAgICAgIGluIHRoZWlyIG93biBjb21waWxh
dGlvbiB1bml0LgorICAgICAgICBUaGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSB0aGUgZ2Vu
ZXJhdGVkIGNvZGUgaXMgd3JhcHBlZCBiZWhpbmQgSGFzaFRvb2xzLmgsIHNvIHRoZXJlIGlzIG5v
IG5lZWQKKyAgICAgICAgZm9yIG11bHRpcGxlIGluY2x1c2lvbnMgb2YgZ2VuZXJhdGVkIEMgZmls
ZXMgdG8gYWNjZXNzIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJD
bGllbnRRdDo6Y3JlYXRlUGx1Z2luKToKKwogMjAxMC0wNS0xMSAgQW50b25pbyBHb21lcyAgPHRv
bmlraXRvb0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggQ2hyaXN0
aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
UXQuY3BwCmluZGV4IDA1ZTA1NGIuLmU2NGFiODUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTMyLDcgKzMyLDYgQEAKIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5o
IgotI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudFF0LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgi
CkBAIC00Niw2ICs0NSw3IEBACiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyUGFydC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUg
Ikhhc2hUb29scy5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAjaW5jbHVkZSAiSFRNTEFw
cGxldEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKQEAgLTEzMzMsNyAr
MTMzMyw3IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVQ
bHVnaW4oY29uc3QgSW50U2l6ZSYgcGx1Z2luU2l6ZSwKICAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBudW1xU3R5bGVTaGVldFByb3BlcnRpZXM7ICsraSkgewogICAgICAgICAg
ICAgICAgIENTU1Byb3BlcnR5SUQgcHJvcGVydHkgPSBxc3R5bGVTaGVldFByb3BlcnRpZXNbaV07
CiAKLSAgICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9IFFTdHJpbmc6OmZyb21MYXRpbjEoOjpn
ZXRQcm9wZXJ0eU5hbWUocHJvcGVydHkpKTsKKyAgICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9
IFFTdHJpbmc6OmZyb21MYXRpbjEoZ2V0UHJvcGVydHlOYW1lKHByb3BlcnR5KSk7CiAgICAgICAg
ICAgICAgICAgc3R5bGVTaGVldCArPSBRTGF0aW4xQ2hhcignOicpOwogICAgICAgICAgICAgICAg
IHN0eWxlU2hlZXQgKz0gY29tcHV0ZWRTdHlsZShlbGVtZW50KS0+Z2V0UHJvcGVydHlWYWx1ZShw
cm9wZXJ0eSk7CiAgICAgICAgICAgICAgICAgc3R5bGVTaGVldCArPSBRTGF0aW4xQ2hhcignOycp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56528</attachid>
            <date>2010-05-19 16:04:55 -0700</date>
            <delta_ts>2010-05-20 05:02:27 -0700</delta_ts>
            <desc>refactor gperf usage 1st iteration</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>33158</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQppbmRleCA4MTRkYjBiLi41YjBlNmZjIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBA
IC00NjgsMTAgKzQ2OCwxMCBAQCBhbGwgOiBcCiAgICAgQ1NTR3JhbW1hci5jcHAgXAogICAgIENT
U1Byb3BlcnR5TmFtZXMuaCBcCiAgICAgQ1NTVmFsdWVLZXl3b3Jkcy5oIFwKLSAgICBDb2xvckRh
dGEuYyBcCisgICAgQ29sb3JEYXRhLmNwcCBcCiAgICAgRG9jVHlwZVN0cmluZ3MuY3BwIFwKICAg
ICBIVE1MRWxlbWVudEZhY3RvcnkuY3BwIFwKLSAgICBIVE1MRW50aXR5TmFtZXMuYyBcCisgICAg
SFRNTEVudGl0eU5hbWVzLmNwcCBcCiAgICAgSFRNTE5hbWVzLmNwcCBcCiAgICAgV01MRWxlbWVu
dEZhY3RvcnkuY3BwIFwKICAgICBXTUxOYW1lcy5jcHAgXApAQCAtNTU5LDIyICs1NTksMjIgQEAg
Q1NTVmFsdWVLZXl3b3Jkcy5oIDogJChXRUJDT1JFX0NTU19WQUxVRV9LRVlXT1JEUykgY3NzL21h
a2V2YWx1ZXMucGwKIAogIyBET0NUWVBFIHN0cmluZ3MKIAotRG9jVHlwZVN0cmluZ3MuY3BwIDog
aHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgotCWdwZXJmIC1DRW90IC1MIEFOU0ktQyAtayAiKiIg
LU4gZmluZERvY3R5cGVFbnRyeSAtRiAsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzLFB1YklE
SW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyAkPCA+ICRACitEb2NUeXBlU3RyaW5ncy5jcHAgOiBodG1s
L0RvY1R5cGVTdHJpbmdzLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBsCisJcGVy
bCAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCAuICQoV2ViQ29yZSkvaHRtbC9Eb2NUeXBl
U3RyaW5ncy5ncGVyZgogCiAjIC0tLS0tLS0tCiAKICMgSFRNTCBlbnRpdHkgbmFtZXMKIAotSFRN
TEVudGl0eU5hbWVzLmMgOiBodG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgotCWdwZXJmIC1hIC1M
IEFOU0ktQyAtQyAtRyAtYyAtbyAtdCAtayAnKicgLU4gZmluZEVudGl0eSAtRCAtcyAyICQ8ID4g
JEAKK0hUTUxFbnRpdHlOYW1lcy5jcHAgOiBodG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZiAkKFdl
YkNvcmUpL21ha2UtaGFzaC10b29scy5wbAorCXBlcmwgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9v
bHMucGwgLiAkKFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCiAKICMgLS0tLS0t
LS0KIAogIyBjb2xvciBuYW1lcwogCi1Db2xvckRhdGEuYyA6IHBsYXRmb3JtL0NvbG9yRGF0YS5n
cGVyZgotCWdwZXJmIC1DREVvdCAtTCBBTlNJLUMgLWsgJyonIC1OIGZpbmRDb2xvciAtRCAtcyAy
ICQ8ID4gJEAKK0NvbG9yRGF0YS5jcHAgOiBwbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYgJChXZWJD
b3JlKS9tYWtlLWhhc2gtdG9vbHMucGwKKwlwZXJsICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xz
LnBsIC4gJChXZWJDb3JlKS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKIAogIyAtLS0tLS0tLQog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQppbmRleCBmNmQyYzExLi40Yzk1YmU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTgyLDcgKzgyLDcgQEAgd2Vi
Y29yZWd0a19jcHBmbGFncyArPSBcCiB3ZWJjb3JlX2J1aWx0X25vc291cmNlcyArPSBcCiAJRGVy
aXZlZFNvdXJjZXMvRG9jVHlwZVN0cmluZ3MuY3BwIFwKIAlEZXJpdmVkU291cmNlcy90b2tlbml6
ZXIuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9Db2xvckRhdGEuYyBcCisJRGVyaXZlZFNvdXJjZXMv
Q29sb3JEYXRhLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L3dlYmtpdGRvbWR1bW15LmMK
IAogd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKQEAgLTkxLDcgKzkxLDcgQEAgd2ViY29yZV9i
dWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9DU1NQcm9wZXJ0eU5hbWVzLmggXAog
CURlcml2ZWRTb3VyY2VzL0NTU1ZhbHVlS2V5d29yZHMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSFRN
TEVsZW1lbnRGYWN0b3J5LmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvSFRNTEVudGl0eU5hbWVzLmMg
XAorCURlcml2ZWRTb3VyY2VzL0hUTUxFbnRpdHlOYW1lcy5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L0hUTUxOYW1lcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTSFRNTEVsZW1lbnRXcmFwcGVyRmFj
dG9yeS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1VzZXJBZ2VudFN0eWxlU2hlZXRzLmggXApAQCAt
MzcyNCwxNyArMzcyNCwxNiBAQCBEZXJpdmVkU291cmNlcy9DU1NWYWx1ZUtleXdvcmRzLmggOiAk
KFdFQkNPUkVfQ1NTX1ZBTFVFX0tFWVdPUkRTKSAkKFdlYkNvcmUpL2NzcwogCW12IENTU1ZhbHVl
S2V5d29yZHMuKiAkKEdFTlNPVVJDRVMpCiAKICMgRE9DVFlQRSBzdHJpbmdzCi1EZXJpdmVkU291
cmNlcy9Eb2NUeXBlU3RyaW5ncy5jcHAgOiAkKFdlYkNvcmUpL2h0bWwvRG9jVHlwZVN0cmluZ3Mu
Z3BlcmYKLQkkKEFNX1ZfR0VOKSQoR1BFUkYpIC1DRW90IC1JIC1MIEFOU0ktQyAtayAiKiIgLU4g
ZmluZERvY3R5cGVFbnRyeSAtRiAsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzLFB1YklESW5m
bzo6ZUFsbW9zdFN0YW5kYXJkcyAkKFdlYkNvcmUpL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYg
PiAkQAorRGVyaXZlZFNvdXJjZXMvRG9jVHlwZVN0cmluZ3MuY3BwIDogJChXZWJDb3JlKS9odG1s
L0RvY1R5cGVTdHJpbmdzLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBsCisJJChQ
RVJMKSAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCAkKEdFTlNPVVJDRVMpICQoV2ViQ29y
ZSkvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgogCiAjIEhUTUwgZW50aXR5IG5hbWVzCi1EZXJp
dmVkU291cmNlcy9IVE1MRW50aXR5TmFtZXMuYyA6ICQoV2ViQ29yZSkvaHRtbC9IVE1MRW50aXR5
TmFtZXMuZ3BlcmYKLQkkKEFNX1ZfR0VOKSQoR1BFUkYpIC1hIC1JIC1MIEFOU0ktQyAtQyAtRyAt
YyAtbyAtdCAtayAnKicgLU4gZmluZEVudGl0eSAtRCAtcyAyIFwKLQkkKFdlYkNvcmUpL2h0bWwv
SFRNTEVudGl0eU5hbWVzLmdwZXJmID4gJEAKK0Rlcml2ZWRTb3VyY2VzL0hUTUxFbnRpdHlOYW1l
cy5jcHAgOiAkKFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmICQoV2ViQ29yZSkv
bWFrZS1oYXNoLXRvb2xzLnBsCisJJChQRVJMKSAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5w
bCAkKEdFTlNPVVJDRVMpICQoV2ViQ29yZSkvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKIAog
IyBjb2xvciBuYW1lcwotRGVyaXZlZFNvdXJjZXMvQ29sb3JEYXRhLmM6ICQoV2ViQ29yZSkvcGxh
dGZvcm0vQ29sb3JEYXRhLmdwZXJmCi0JJChBTV9WX0dFTikkKEdQRVJGKSAtQ0RFb3QgLUwgQU5T
SS1DIC1rICcqJyAtTiBmaW5kQ29sb3IgLUQgLXMgMiAkPCA+ICRACitEZXJpdmVkU291cmNlcy9D
b2xvckRhdGEuY3BwOiAkKFdlYkNvcmUpL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZiAkKFdlYkNv
cmUpL21ha2UtaGFzaC10b29scy5wbAorCSQoUEVSTCkgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9v
bHMucGwgJChHRU5TT1VSQ0VTKSAkKFdlYkNvcmUpL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgog
CiAjIENTUyB0b2tlbml6ZXIKIERlcml2ZWRTb3VyY2VzL3Rva2VuaXplci5jcHAgOiAkKFdlYkNv
cmUpL2Nzcy90b2tlbml6ZXIuZmxleCAkKFdlYkNvcmUpL2Nzcy9tYWtldG9rZW5pemVyCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIvV2ViQ29yZS9XZWJDb3Jl
Lmd5cC9XZWJDb3JlLmd5cAppbmRleCA3NjM0NzY1Li43YjE2MzI3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXAKQEAgLTMxMyw3ICszMTMsNyBAQAogICAgICAgICAgICAgJy4uL2Nzcy9DU1NWYWx1
ZUtleXdvcmRzLmluJywKICAgICAgICAgICBdLAogICAgICAgICAgICdvdXRwdXRzJzogWwotICAg
ICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NWYWx1ZUtleXdv
cmRzLmMnLAorICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9D
U1NWYWx1ZUtleXdvcmRzLmNwcCcsCiAgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRF
X0RJUikvd2Via2l0L0NTU1ZhbHVlS2V5d29yZHMuaCcsCiAgICAgICAgICAgXSwKICAgICAgICAg
ICAnYWN0aW9uJzogWwpAQCAtNTMwLDI0ICs1MzAsMjAgQEAKICAgICAgICAgewogICAgICAgICAg
ICdydWxlX25hbWUnOiAnZ3BlcmYnLAogICAgICAgICAgICdleHRlbnNpb24nOiAnZ3BlcmYnLAot
ICAgICAgICAgICMgZ3BlcmYgb3V0cHV0IGlzIG9ubHkgZXZlciAjaW5jbHVkZWQgYnkgb3RoZXIg
c291cmNlIGZpbGVzLiAgQXMKLSAgICAgICAgICAjIHN1Y2gsIHByb2Nlc3Nfb3V0cHV0c19hc19z
b3VyY2VzIGlzIG9mZi4gIFNvbWUgZ3BlcmYgb3V0cHV0IGlzCi0gICAgICAgICAgIyAjaW5jbHVk
ZWQgYXMgKi5jIGFuZCBzb21lIGFzICouY3BwLiAgU2luY2UgdGhlcmUncyBubyB3YXkgdG8gdGVs
bAotICAgICAgICAgICMgd2hpY2ggb25lIHdpbGwgYmUgbmVlZGVkIGluIGEgcnVsZSBkZWZpbml0
aW9uLCBkZWNsYXJlIGJvdGggYXMKLSAgICAgICAgICAjIG91dHB1dHMuICBUaGUgaGFybmVzcyBz
Y3JpcHQgd2lsbCBnZW5lcmF0ZSBvbmUgZmlsZSBhbmQgY29weSBpdCB0bwotICAgICAgICAgICMg
dGhlIG90aGVyLgogICAgICAgICAgICMKLSAgICAgICAgICAjIFRoaXMgcnVsZSBwbGFjZXMgb3V0
cHV0cyBpbiBTSEFSRURfSU5URVJNRURJQVRFX0RJUiBiZWNhdXNlIGdsdWUKLSAgICAgICAgICAj
IG5lZWRzIGFjY2VzcyB0byBIVE1MRW50aXR5TmFtZXMuYy4KKyAgICAgICAgICAjIGdwZXJmIG91
dHB1dHMgYXJlIGdlbmVyYXRlZCBieSBXZWJDb3JlL21ha2UtaGFzaC10b29scy5wbAorICAgICAg
ICAgICMKICAgICAgICAgICAnb3V0cHV0cyc6IFsKLSAgICAgICAgICAgICc8KFNIQVJFRF9JTlRF
Uk1FRElBVEVfRElSKS93ZWJraXQvPChSVUxFX0lOUFVUX1JPT1QpLmMnLAogICAgICAgICAgICAg
JzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC88KFJVTEVfSU5QVVRfUk9PVCkuY3Bw
JywKICAgICAgICAgICBdLAorICAgICAgICAgICdkZXBlbmRlbmNpZXMnOiBbCisgICAgICAgICAg
ICAnLi4vbWFrZS1oYXNoLXRvb2xzLnBsJywKKyAgICAgICAgICBdLAogICAgICAgICAgICdhY3Rp
b24nOiBbCi0gICAgICAgICAgICAncHl0aG9uJywKLSAgICAgICAgICAgICdzY3JpcHRzL3J1bGVf
Z3BlcmYucHknLAotICAgICAgICAgICAgJzwoUlVMRV9JTlBVVF9QQVRIKScsCisgICAgICAgICAg
ICAncGVybCcsCisgICAgICAgICAgICAnLi4vbWFrZS1oYXNoLXRvb2xzLnBsJywKICAgICAgICAg
ICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQnCisgICAgICAgICAgICAnPChS
VUxFX0lOUFVUX1BBVEgpJywKICAgICAgICAgICBdLAogICAgICAgICAgICdwcm9jZXNzX291dHB1
dHNfYXNfc291cmNlcyc6IDAsCiAgICAgICAgIH0sCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwL3NjcmlwdHMvcnVsZV9ncGVyZi5weSBiL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0
cy9ydWxlX2dwZXJmLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNzZlZDZmLi4w
MDAwMDAwCi0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXAvc2NyaXB0cy9ydWxlX2dwZXJmLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotIyEvdXNyL2Jpbi9weXRob24KLSMKLSMgQ29w
eXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIAotIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jIAotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMg
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotIyAKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotIwotIyBDb3B5cmlnaHQgKGMpIDIwMDkgVGhlIENocm9taXVtIEF1dGhv
cnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdv
dmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhl
IExJQ0VOU0UgZmlsZS4KLQotIyB1c2FnZTogcnVsZV9ncGVyZi5weSBJTlBVVF9GSUxFIE9VVFBV
VF9ESVIKLSMgSU5QVVRfRklMRSBpcyBhIHBhdGggdG8gRG9jVHlwZVN0cmluZ3MuZ3BlcmYsIEhU
TUxFbnRpdHlOYW1lcy5ncGVyZiwgb3IKLSMgQ29sb3JEYXRhLmdwZXJmLgotIyBPVVRQVVRfRElS
IGlzIHdoZXJlIHRoZSBncGVyZi1nZW5lcmF0ZWQgLmNwcCBmaWxlIHNob3VsZCBiZSBwbGFjZWQu
IEJlY2F1c2UKLSMgc29tZSB1c2VycyB3YW50IGEgLmMgZmlsZSBpbnN0ZWFkIG9mIGEgLmNwcCBm
aWxlLCB0aGUgLmNwcCBmaWxlIGlzIGNvcGllZAotIyB0byAuYyB3aGVuIGRvbmUuCi0KLWltcG9y
dCBwb3NpeHBhdGgKLWltcG9ydCBzaHV0aWwKLWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgc3lz
Ci0KLWFzc2VydCBsZW4oc3lzLmFyZ3YpID09IDMKLQotaW5wdXRGaWxlID0gc3lzLmFyZ3ZbMV0K
LW91dHB1dERpciA9IHN5cy5hcmd2WzJdCi0KLWdwZXJmQ29tbWFuZHMgPSB7Ci0gICAgJ0RvY1R5
cGVTdHJpbmdzLmdwZXJmJzogWwotICAgICAgICAnLUNFb3QnLCAnLUwnLCAnQU5TSS1DJywgJy1r
KicsICctTicsICdmaW5kRG9jdHlwZUVudHJ5JywKLSAgICAgICAgJy1GJywgJyxQdWJJREluZm86
OmVBbG1vc3RTdGFuZGFyZHMsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzJwotICAgIF0sCi0g
ICAgJ0hUTUxFbnRpdHlOYW1lcy5ncGVyZic6IFsKLSAgICAgICAgJy1hJywgJy1MJywgJ0FOU0kt
QycsICctQycsICctRycsICctYycsICctbycsICctdCcsICctayonLAotICAgICAgICAnLU4nLCAn
ZmluZEVudGl0eScsICctRCcsICctcycsICcyJwotICAgIF0sCi0gICAgJ0NvbG9yRGF0YS5ncGVy
Zic6IFsKLSAgICAgICAgJy1DREVvdCcsICctTCcsICdBTlNJLUMnLCAnLWsqJywgJy1OJywgJ2Zp
bmRDb2xvcicsICctRCcsICctcycsICcyJwotICAgIF0sCi19Ci0KLWlucHV0TmFtZSA9IHBvc2l4
cGF0aC5iYXNlbmFtZShpbnB1dEZpbGUpCi1hc3NlcnQgaW5wdXROYW1lIGluIGdwZXJmQ29tbWFu
ZHMKLQotKGlucHV0Um9vdCwgaW5wdXRFeHQpID0gcG9zaXhwYXRoLnNwbGl0ZXh0KGlucHV0TmFt
ZSkKLW91dHB1dENwcCA9IHBvc2l4cGF0aC5qb2luKG91dHB1dERpciwgaW5wdXRSb290ICsgJy5j
cHAnKQotCi0jY29tbWFuZCA9IFsnZ3BlcmYnLCAnLS1vdXRwdXQtZmlsZScsIG91dHB1dENwcF0K
LWNvbW1hbmQgPSBbJ2dwZXJmJ10KLWNvbW1hbmQuZXh0ZW5kKGdwZXJmQ29tbWFuZHNbaW5wdXRO
YW1lXSkKLWNvbW1hbmQuYXBwZW5kKGlucHV0RmlsZSkKLQotb2ZpbGUgPSBvcGVuKG91dHB1dENw
cCwgJ3cnKQotCi0jIERvIGl0LiBjaGVja19jYWxsIGlzIG5ldyBpbiAyLjUsIHNvIHNpbXVsYXRl
IGl0cyBiZWhhdmlvciB3aXRoIGNhbGwgYW5kCi0jIGFzc2VydC4KLXJldHVybkNvZGUgPSBzdWJw
cm9jZXNzLmNhbGwoY29tbWFuZCwgc3Rkb3V0PW9maWxlLmZpbGVubygpKQotYXNzZXJ0IHJldHVy
bkNvZGUgPT0gMAotCi1vdXRwdXRDID0gcG9zaXhwYXRoLmpvaW4ob3V0cHV0RGlyLCBpbnB1dFJv
b3QgKyAnLmMnKQotc2h1dGlsLmNvcHlmaWxlKG91dHB1dENwcCwgb3V0cHV0QykKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDRkYTFh
YTguLjYxYjdlODggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnByaQpAQCAtMTc5LDcgKzE3OSw3IEBAIFhMSU5LX05BTUVTID0gJCRQV0Qvc3Zn
L3hsaW5rYXR0cnMuaW4KIAogVE9LRU5JWkVSID0gJCRQV0QvY3NzL3Rva2VuaXplci5mbGV4CiAK
LURPQ1RZUEVTVFJJTkdTID0gJCRQV0QvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgorRE9DVFlQ
RVNUUklOR1NfR1BFUkYgPSAkJFBXRC9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCiAKIENTU0JJ
U09OID0gJCRQV0QvY3NzL0NTU0dyYW1tYXIueQogCkBAIC0xOTEsNyArMTkxLDcgQEAgWE1MTlNf
TkFNRVMgPSAkJFBXRC94bWwveG1sbnNhdHRycy5pbgogCiBFTlRJVElFU19HUEVSRiA9ICQkUFdE
L2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCiAKLUNPTE9SREFUX0dQRVJGID0gJCRQV0QvcGxh
dGZvcm0vQ29sb3JEYXRhLmdwZXJmCitDT0xPUkRBVEFfR1BFUkYgPSAkJFBXRC9wbGF0Zm9ybS9D
b2xvckRhdGEuZ3BlcmYKIAogV0FMRE9DU1NQUk9QUyA9ICQkUFdEL2Nzcy9DU1NQcm9wZXJ0eU5h
bWVzLmluCiAKQEAgLTY1NCwxNyArNjU0LDE3IEBAIHhsaW5rbmFtZXMuaW5wdXQgPSBYTElOS19O
QU1FUwogYWRkRXh0cmFDb21waWxlcih4bGlua25hbWVzKQogCiAjIEdFTkVSQVRPUiA2LUE6Ci1j
c3Nwcm9wcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9LyR7UU1BS0VfRklM
RV9CQVNFfS5jcHAKLWNzc3Byb3BzLmlucHV0ID0gV0FMRE9DU1NQUk9QUwogY3NzcHJvcHMud2tT
Y3JpcHQgPSAkJFBXRC9jc3MvbWFrZXByb3AucGwKK2Nzc3Byb3BzLm91dHB1dCA9ICQke1dDX0dF
TkVSQVRFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5jcHAKK2Nzc3Byb3BzLmlucHV0
ID0gV0FMRE9DU1NQUk9QUwogY3NzcHJvcHMuY29tbWFuZHMgPSBwZXJsIC1uZSBcInByaW50IGxj
XCIgJHtRTUFLRV9GSUxFX05BTUV9ICQke0RBU0hCT0FSRFNVUFBPUlRDU1NQUk9QRVJUSUVTfSAk
JHtFWFRSQUNTU1BST1BFUlRJRVN9ID4gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FN
QUtFX0ZJTEVfQkFTRX0uaW4gJiYgY2QgJCRXQ19HRU5FUkFURURfU09VUkNFU19ESVIgJiYgcGVy
bCAkJGNzc3Byb3BzLndrU2NyaXB0ICYmICQoREVMX0ZJTEUpICR7UU1BS0VfRklMRV9CQVNFfS5p
biAke1FNQUtFX0ZJTEVfQkFTRX0uZ3BlcmYKIGNzc3Byb3BzLmRlcGVuZHMgPSAke1FNQUtFX0ZJ
TEVfTkFNRX0gJCR7REFTSEJPQVJEU1VQUE9SVENTU1BST1BFUlRJRVN9ICQke0VYVFJBQ1NTUFJP
UEVSVElFU30KIGFkZEV4dHJhQ29tcGlsZXIoY3NzcHJvcHMpCiAKICMgR0VORVJBVE9SIDYtQjoK
LWNzc3ZhbHVlcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9LyR7UU1BS0Vf
RklMRV9CQVNFfS5jCi1jc3N2YWx1ZXMuaW5wdXQgPSBXQUxET0NTU1ZBTFVFUwogY3NzdmFsdWVz
LndrU2NyaXB0ID0gJCRQV0QvY3NzL21ha2V2YWx1ZXMucGwKK2Nzc3ZhbHVlcy5vdXRwdXQgPSAk
JHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0NTU1ZhbHVlS2V5d29yZHMuY3BwCitjc3N2YWx1
ZXMuaW5wdXQgPSBXQUxET0NTU1ZBTFVFUwogY3NzdmFsdWVzLmNvbW1hbmRzID0gcGVybCAtbmUg
XCJwcmludCBsY1wiICR7UU1BS0VfRklMRV9OQU1FfSAkJEVYVFJBQ1NTVkFMVUVTID4gJCR7V0Nf
R0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJiYgY2QgJCRXQ19H
RU5FUkFURURfU09VUkNFU19ESVIgJiYgcGVybCAkJGNzc3ZhbHVlcy53a1NjcmlwdCAmJiAkKERF
TF9GSUxFKSAke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJHtRTUFLRV9GSUxFX0JBU0V9LmdwZXJmCiBj
c3N2YWx1ZXMuZGVwZW5kcyA9ICR7UU1BS0VfRklMRV9OQU1FfSAkJHtFWFRSQUNTU1ZBTFVFU30K
IGNzc3ZhbHVlcy5jbGVhbiA9ICR7UU1BS0VfRklMRV9PVVR9ICR7UU1BS0VfVkFSX1dDX0dFTkVS
QVRFRF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9LmgKQEAgLTcyMSwyMyArNzIxLDMw
IEBAIHhtbG5hbWVzLmNvbW1hbmRzID0gcGVybCAtSSQkUFdEL2JpbmRpbmdzL3NjcmlwdHMgJCR4
bWxuYW1lcy53a1NjcmlwdCAtLWF0dHJzICQkCiBhZGRFeHRyYUNvbXBpbGVyKHhtbG5hbWVzKQog
CiAjIEdFTkVSQVRPUiA4LUE6Ci1lbnRpdGllcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09V
UkNFU19ESVJ9L0hUTUxFbnRpdHlOYW1lcy5jCitlbnRpdGllcy5vdXRwdXQgPSAkJHtXQ19HRU5F
UkFURURfU09VUkNFU19ESVJ9L0hUTUxFbnRpdHlOYW1lcy5jcHAKIGVudGl0aWVzLmlucHV0ID0g
RU5USVRJRVNfR1BFUkYKLWVudGl0aWVzLmNvbW1hbmRzID0gZ3BlcmYgLWEgLUwgQU5TSS1DIC1D
IC1HIC1jIC1vIC10IC0taW5jbHVkZXMgLS1rZXktcG9zaXRpb25zPSIqIiAtTiBmaW5kRW50aXR5
IC1EIC1zIDIgPCAkJFBXRC9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZiA+ICQke1dDX0dFTkVS
QVRFRF9TT1VSQ0VTX0RJUn0vSFRNTEVudGl0eU5hbWVzLmMKK2VudGl0aWVzLndrU2NyaXB0ID0g
JCRQV0QvbWFrZS1oYXNoLXRvb2xzLnBsCitlbnRpdGllcy5jb21tYW5kcyA9IHBlcmwgJCRlbnRp
dGllcy53a1NjcmlwdCAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9ICQkRU5USVRJRVNfR1BF
UkYKIGVudGl0aWVzLmNsZWFuID0gJHtRTUFLRV9GSUxFX09VVH0KK2VudGl0aWVzLmRlcGVuZHMg
PSAkJFBXRC9tYWtlLWhhc2gtdG9vbHMucGwKIGFkZEV4dHJhQ29tcGlsZXIoZW50aXRpZXMpCiAK
ICMgR0VORVJBVE9SIDgtQjoKLWRvY3R5cGVzdHJpbmdzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRF
RF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9LmNwcAotZG9jdHlwZXN0cmluZ3MuaW5w
dXQgPSBET0NUWVBFU1RSSU5HUwotZG9jdHlwZXN0cmluZ3MuY29tbWFuZHMgPSBncGVyZiAtQ0Vv
dCAtTCBBTlNJLUMgLS1pbmNsdWRlcyAtLWtleS1wb3NpdGlvbnM9IioiIC1OIGZpbmREb2N0eXBl
RW50cnkgLUYgLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyxQdWJJREluZm86OmVBbG1vc3RT
dGFuZGFyZHMgPCAke1FNQUtFX0ZJTEVfTkFNRX0gPj4gJHtRTUFLRV9GSUxFX09VVH0KK2RvY3R5
cGVzdHJpbmdzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vRG9jVHlwZVN0
cmluZ3MuY3BwCitkb2N0eXBlc3RyaW5ncy5pbnB1dCA9IERPQ1RZUEVTVFJJTkdTX0dQRVJGCitk
b2N0eXBlc3RyaW5ncy53a1NjcmlwdCA9ICQkUFdEL21ha2UtaGFzaC10b29scy5wbAorZG9jdHlw
ZXN0cmluZ3MuY29tbWFuZHMgPSBwZXJsICQkZG9jdHlwZXN0cmluZ3Mud2tTY3JpcHQgJCR7V0Nf
R0VORVJBVEVEX1NPVVJDRVNfRElSfSAkJERPQ1RZUEVTVFJJTkdTX0dQRVJGCiBkb2N0eXBlc3Ry
aW5ncy5jbGVhbiA9ICR7UU1BS0VfRklMRV9PVVR9Citkb2N0eXBlc3RyaW5ncy5kZXBlbmRzID0g
JCRQV0QvbWFrZS1oYXNoLXRvb2xzLnBsCiBhZGRFeHRyYUNvbXBpbGVyKGRvY3R5cGVzdHJpbmdz
KQogCiAjIEdFTkVSQVRPUiA4LUM6Ci1jb2xvcmRhdGEub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVE
X1NPVVJDRVNfRElSfS9Db2xvckRhdGEuYwotY29sb3JkYXRhLmlucHV0ID0gQ09MT1JEQVRfR1BF
UkYKLWNvbG9yZGF0YS5jb21tYW5kcyA9IGdwZXJmIC1DREVvdCAtTCBBTlNJLUMgLS1pbmNsdWRl
cyAtLWtleS1wb3NpdGlvbnM9IioiIC1OIGZpbmRDb2xvciAtRCAtcyAyIDwgJHtRTUFLRV9GSUxF
X05BTUV9ID4+ICR7UU1BS0VfRklMRV9PVVR9Citjb2xvcmRhdGEub3V0cHV0ID0gJCR7V0NfR0VO
RVJBVEVEX1NPVVJDRVNfRElSfS9Db2xvckRhdGEuY3BwCitjb2xvcmRhdGEuaW5wdXQgPSBDT0xP
UkRBVEFfR1BFUkYKK2NvbG9yZGF0YS53a1NjcmlwdCA9ICQkUFdEL21ha2UtaGFzaC10b29scy5w
bAorY29sb3JkYXRhLmNvbW1hbmRzID0gcGVybCAkJGNvbG9yZGF0YS53a1NjcmlwdCAkJHtXQ19H
RU5FUkFURURfU09VUkNFU19ESVJ9ICQkQ09MT1JEQVRBX0dQRVJGCitjb2xvcmRhdGEuY2xlYW4g
PSAke1FNQUtFX0ZJTEVfT1VUfQorY29sb3JkYXRhLmRlcGVuZHMgPSAkJFBXRC9tYWtlLWhhc2gt
dG9vbHMucGwKIGFkZEV4dHJhQ29tcGlsZXIoY29sb3JkYXRhKQogCiAjIEdFTkVSQVRPUiA5Ogpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzY2IyZTY3Li5h
NmVjOWQ5IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NjgyNiwxOCArNjgyNiwxMyBAQAogCQk2NTY1M0YyQTBEOTcyN0QyMDBDQTk3MjMgLyogU1ZHQWx0
R2x5cGhFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R0FsdEdseXBoRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjUz
RjJCMEQ5NzI3RDIwMENBOTcyMyAvKiBTVkdBbHRHbHlwaEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQWx0R2x5cGhFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTY1NjUzRjJDMEQ5NzI3RDIwMENBOTcyMyAvKiBTVkdBbHRHbHlwaEVs
ZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR0FsdEdseXBoRWxlbWVudC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTY1NjU4MEVEMDlEMTJCMjAwMDBFNjFENyAv
KiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDU1NQcm9wZXJ0eU5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NjU2NTgwRUUwOUQxMkIyMDAwMEU2MUQ3IC8qIENTU1Byb3BlcnR5TmFtZXMuZ3BlcmYgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IENTU1Byb3BlcnR5TmFtZXMuZ3BlcmY7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTY1NjU4MEVGMDlEMTJCMjAwMDBFNjFENyAvKiBDU1NQcm9wZXJ0eU5h
bWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NQcm9wZXJ0eU5hbWVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTY1NjU4MTFDMDlEMTJEQjIwMDBFNjFE
NyAvKiBEb2NUeXBlU3RyaW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRG9jVHlwZVN0cmluZ3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
NTY1ODE0NDA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTR3JhbW1hci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTR3JhbW1hci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTY1NjU4MTQ2MDlEMTMwNDMwMDBFNjFENyAvKiBDU1NWYWx1ZUtleXdvcmRz
LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBDU1NWYWx1ZUtleXdvcmRzLmM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MTQ3MDlEMTMwNDMwMDBFNjFENyAv
KiBDU1NWYWx1ZUtleXdvcmRzLmdwZXJmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NWYWx1
ZUtleXdvcmRzLmdwZXJmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODE0ODA5
RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ1NTVmFsdWVLZXl3b3Jkcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk2NTY1ODE0QjA5RDEzMDQzMDAwRTYxRDcgLyogSFRNTEVudGl0eU5hbWVzLmMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBIVE1MRW50aXR5TmFtZXMuYzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgxNEMwOUQxMzA0MzAwMEU2MUQ3IC8qIHRva2Vu
aXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gdG9rZW5pemVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgxQUMwOUQxNEVFNjAwMEU2
MUQ3IC8qIENoYXJzZXREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDaGFyc2V0RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTY1NjU4
MUFEMDlEMTRFRTYwMDBFNjFENyAvKiBDb2xvckRhdGEuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuYzsgcGF0aCA9IENvbG9yRGF0YS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
NTY1ODFBRTA5RDE0RUU2MDAwRTYxRDcgLyogVXNlckFnZW50U3R5bGVTaGVldHMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJBZ2VudFN0eWxlU2hlZXRzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MUFGMDlEMTRFRTYwMDBFNjFENyAvKiBVc2Vy
QWdlbnRTdHlsZVNoZWV0c0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFVzZXJBZ2VudFN0eWxlU2hlZXRzRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTY1NjU4MUU2MDlEMTUwOEQwMDBFNjFENyAvKiBTVkdFbGVtZW50RmFjdG9yeS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRWxlbWVudEZhY3Rv
cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA0MzcsNiArMTA0MzIsMTEg
QEAKIAkJRTFGMUU4MkUwQzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhTTFRFeHRlbnNpb25zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUxRkY1N0EyMEYwMTI1NUIwMDg5MUVCQiAvKiBUaHJlYWRHbG9i
YWxEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVhZEdsb2JhbERh
dGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjU3QTUwRjAxMjU2QjAwODkx
RUJCIC8qIFRocmVhZEdsb2JhbERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVGhyZWFkR2xvYmFsRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUU0MDZGM0ZBMTE5ODMwNEQwMDlENTlENiAvKiBEb2NUeXBlU3RyaW5ncy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBEb2NUeXBlU3RyaW5ncy5jcHA7IHBhdGgg
PSBEb2NUeXBlU3RyaW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0MDZG
M0ZCMTE5ODMwN0QwMDlENTlENiAvKiBDb2xvckRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gQ29sb3JEYXRhLmNwcDsgcGF0aCA9IENvbG9yRGF0YS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0MDZGNDAyMTE5ODMyOUEwMDlENTlENiAvKiBI
VE1MRW50aXR5TmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
SFRNTEVudGl0eU5hbWVzLmNwcDsgcGF0aCA9IEhUTUxFbnRpdHlOYW1lcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0MUVBMDM4MTE5ODM2REIwMDcxMEJDNSAvKiBDU1NQcm9w
ZXJ0eU5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENTU1By
b3BlcnR5TmFtZXMuY3BwOyBwYXRoID0gQ1NTUHJvcGVydHlOYW1lcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUU0MUVBMDM5MTE5ODM3NDkwMDcxMEJDNSAvKiBDU1NWYWx1ZUtl
eXdvcmRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENTU1ZhbHVl
S2V5d29yZHMuY3BwOyBwYXRoID0gQ1NTVmFsdWVLZXl3b3Jkcy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUU0MTVGMTBDMEQ5QTA1ODcwMDMzQ0U5NyAvKiBFbGVtZW50VGltZUNv
bnRyb2wuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVsZW1lbnRUaW1lQ29udHJvbC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTVGMTY4MEQ5QTE2NUQwMDMzQ0U5NyAv
KiBET01FbGVtZW50VGltZUNvbnRyb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRE9NRWxlbWVudFRpbWVDb250cm9sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU0MTVGMTgzMEQ5QTFBODMwMDMzQ0U5NyAvKiBFbGVtZW50VGltZUNvbnRyb2wuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudFRpbWVDb250cm9sLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTcyMiwyMCArMTE3MjIsMjAgQEAKIAkJNjU2NTgwRUMw
OUQxMkIyMDAwMEU2MUQ3IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRTQxRUEwMzkxMTk4Mzc0OTAwNzEwQkM1IC8qIENT
U1ZhbHVlS2V5d29yZHMuY3BwICovLAorCQkJCUU0MUVBMDM4MTE5ODM2REIwMDcxMEJDNSAvKiBD
U1NQcm9wZXJ0eU5hbWVzLmNwcCAqLywKKwkJCQlFNDA2RjQwMjExOTgzMjlBMDA5RDU5RDYgLyog
SFRNTEVudGl0eU5hbWVzLmNwcCAqLywKKwkJCQlFNDA2RjNGQjExOTgzMDdEMDA5RDU5RDYgLyog
Q29sb3JEYXRhLmNwcCAqLywKKwkJCQlFNDA2RjNGQTExOTgzMDREMDA5RDU5RDYgLyogRG9jVHlw
ZVN0cmluZ3MuY3BwICovLAogCQkJCTY1NjU4MUFDMDlEMTRFRTYwMDBFNjFENyAvKiBDaGFyc2V0
RGF0YS5jcHAgKi8sCi0JCQkJNjU2NTgxQUQwOUQxNEVFNjAwMEU2MUQ3IC8qIENvbG9yRGF0YS5j
ICovLAogCQkJCTY1NjU4MTQ0MDlEMTMwNDMwMDBFNjFENyAvKiBDU1NHcmFtbWFyLmNwcCAqLywK
IAkJCQk2NTBGNTNEQjA5RDE1RERBMDBDOUIwQzggLyogQ1NTR3JhbW1hci5oICovLAotCQkJCTY1
NjU4MEVEMDlEMTJCMjAwMDBFNjFENyAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCAqLywKIAkJCQk2
NTY1ODBFRTA5RDEyQjIwMDAwRTYxRDcgLyogQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiAqLywKIAkJ
CQk2NTY1ODBFRjA5RDEyQjIwMDAwRTYxRDcgLyogQ1NTUHJvcGVydHlOYW1lcy5oICovLAotCQkJ
CTY1NjU4MTQ2MDlEMTMwNDMwMDBFNjFENyAvKiBDU1NWYWx1ZUtleXdvcmRzLmMgKi8sCiAJCQkJ
NjU2NTgxNDcwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMuZ3BlcmYgKi8sCiAJ
CQkJNjU2NTgxNDgwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMuaCAqLywKLQkJ
CQk2NTY1ODExQzA5RDEyREIyMDAwRTYxRDcgLyogRG9jVHlwZVN0cmluZ3MuY3BwICovLAogCQkJ
CUExN0M4MTIwMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuY3BwICovLAog
CQkJCUExN0M4MTIxMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuaCAqLywK
LQkJCQk2NTY1ODE0QjA5RDEzMDQzMDAwRTYxRDcgLyogSFRNTEVudGl0eU5hbWVzLmMgKi8sCiAJ
CQkJQThEMDZCMzgwQTI2NURDRDAwNUU3MjAzIC8qIEhUTUxOYW1lcy5jcHAgKi8sCiAJCQkJQThE
MDZCMzcwQTI2NURDRDAwNUU3MjAzIC8qIEhUTUxOYW1lcy5oICovLAogCQkJCTkzOEU2NUY2MDlG
MDk4NUQwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwICovLApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAKaW5kZXggMTgyNmQ0Mi4uNGY3YWJhMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC04OSw3ICs4OSw3
IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2luZyBuYW1lc3BhY2UgV1RGOwogCiAjaW5jbHVk
ZSAiQ1NTUHJvcGVydHlOYW1lcy5jcHAiCi0jaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5jIgor
I2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuY3BwIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTU1MjYsNyArNTUyNiw3IEBAIHN0YXRpYyBpbnQgY3NzUHJvcGVydHlJRChjb25zdCBVQ2hh
ciogcHJvcGVydHlOYW1lLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICBjb25zdCBwcm9wcyogaGFzaFRhYmxlRW50cnkgPSBmaW5kUHJvcChuYW1lLCBsZW5ndGgpOwor
ICAgIGNvbnN0IFByb3BlcnR5KiBoYXNoVGFibGVFbnRyeSA9IGZpbmRQcm9wZXJ0eShuYW1lLCBs
ZW5ndGgpOwogICAgIHJldHVybiBoYXNoVGFibGVFbnRyeSA/IGhhc2hUYWJsZUVudHJ5LT5pZCA6
IDA7CiB9CiAKQEAgLTU1NjgsNyArNTU2OCw3IEBAIGludCBjc3NWYWx1ZUtleXdvcmRJRChjb25z
dCBDU1NQYXJzZXJTdHJpbmcmIHN0cmluZykKICAgICAgICAgfQogICAgIH0KIAotICAgIGNvbnN0
IGNzc192YWx1ZSogaGFzaFRhYmxlRW50cnkgPSBmaW5kVmFsdWUoYnVmZmVyLCBsZW5ndGgpOwor
ICAgIGNvbnN0IFZhbHVlKiBoYXNoVGFibGVFbnRyeSA9IGZpbmRWYWx1ZShidWZmZXIsIGxlbmd0
aCk7CiAgICAgcmV0dXJuIGhhc2hUYWJsZUVudHJ5ID8gaGFzaFRhYmxlRW50cnktPmlkIDogMDsK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwgYi9XZWJDb3JlL2Nzcy9t
YWtlcHJvcC5wbAppbmRleCAxMTU5NjlmLi4wZmQxZjA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nz
cy9tYWtlcHJvcC5wbAorKysgYi9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbApAQCAtNSw2ICs1LDcg
QEAKICMgICBDb3B5cmlnaHQgKEMpIDE5OTkgV2FsZG8gQmFzdGlhbiAoYmFzdGlhbkBrZGUub3Jn
KQogIyAgIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAjICAgQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorIyAgIENvcHlyaWdodCAoQykgMjAxMCBBbmRyYXMgQmVjc2kg
KGFiZWNzaUBpbmYudS1zemVnZWQuaHUpLCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogIwogIyAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICMgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMzksMTAgKzQwLDIwIEBAIHByaW50IEdQRVJGIDw8ICJFT0YiOwogLyog
VGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gQ1NTUHJvcGVydHlOYW1l
cy5pbiBieSBtYWtlcHJvcCwgZG8gbm90IGVkaXQgKi8KICNpbmNsdWRlIFwiQ1NTUHJvcGVydHlO
YW1lcy5oXCIKICV9Ci1zdHJ1Y3QgcHJvcHMgeworJXN0cnVjdC10eXBlCitzdHJ1Y3QgUHJvcGVy
dHkgewogICAgIGNvbnN0IGNoYXIqIG5hbWU7CiAgICAgaW50IGlkOwogfTsKKyVsYW5ndWFnZT1B
TlNJLUMKKyVyZWFkb25seS10YWJsZXMKKyVnbG9iYWwtdGFibGUKKyVjb21wYXJlLXN0cm5jbXAK
KyVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZFByb3BlcnR5CislZGVmaW5lIGhhc2gt
ZnVuY3Rpb24tbmFtZSBwcm9wZXJ5X2hhc2hfZnVuY3Rpb24KKyVkZWZpbmUgd29yZC1hcnJheS1u
YW1lIHByb3BlcnR5X3dvcmRsaXN0CislaW5jbHVkZXMKKyVlbnVtCiAlJQogRU9GCiAKQEAgLTg4
LDEyICs5OSwxMyBAQCBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAKIGNvbnN0IGNoYXIqIGdldFBy
b3BlcnR5TmFtZShDU1NQcm9wZXJ0eUlEKTsKIAotI2VuZGlmCisjZW5kaWYgLy8gQ1NTUHJvcGVy
dHlOYW1lc19oCisKIEVPRgogCiBjbG9zZSBIRUFERVI7CiAKLXN5c3RlbSgiZ3BlcmYgLWEgLUwg
QU5TSS1DIC1FIC1DIC1jIC1vIC10IC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtTmZpbmRQcm9wIC1I
aGFzaF9wcm9wIC1Xd29yZGxpc3RfcHJvcCAtRCAtcyAyIENTU1Byb3BlcnR5TmFtZXMuZ3BlcmYg
PiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxl
ZDogJD8iOworc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLW4gLXMgMiBD
U1NQcm9wZXJ0eU5hbWVzLmdwZXJmID4gQ1NTUHJvcGVydHlOYW1lcy5jcHAiKSA9PSAwIHx8IGRp
ZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKIAogb3BlbiBDLCAiPj5DU1NQcm9wZXJ0eU5h
bWVzLmNwcCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCBmb3Ig
d3JpdGluZyI7CiBwcmludCBDICJzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHByb3BlcnR5TmFt
ZVN0cmluZ3NbJG51bV0gPSB7XG4iOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvbWFrZXZhbHVl
cy5wbCBiL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwKaW5kZXggZTQ5OTgxZC4uNDIxZTQ3MCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAorKysgYi9XZWJDb3JlL2Nzcy9t
YWtldmFsdWVzLnBsCkBAIC01LDYgKzUsNyBAQAogIyAgIENvcHlyaWdodCAoQykgMTk5OSBXYWxk
byBCYXN0aWFuIChiYXN0aWFuQGtkZS5vcmcpCiAjICAgQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgICBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisjICAgQ29weXJpZ2h0IChD
KSAyMDEwIEFuZHJhcyBCZWNzaSAoYWJlY3NpQGluZi51LXN6ZWdlZC5odSksIFVuaXZlcnNpdHkg
b2YgU3plZ2VkCiAjCiAjICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogIyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00MCwxMCArNDEsMTkgQEAgcHJpbnQg
R1BFUkYgPDwgIkVPRiI7CiAKICNpbmNsdWRlIFwiQ1NTVmFsdWVLZXl3b3Jkcy5oXCIKICV9Ci1z
dHJ1Y3QgY3NzX3ZhbHVlIHsKKyVzdHJ1Y3QtdHlwZQorc3RydWN0IFZhbHVlIHsKICAgICBjb25z
dCBjaGFyKiBuYW1lOwogICAgIGludCBpZDsKIH07CislbGFuZ3VhZ2U9QU5TSS1DCislcmVhZG9u
bHktdGFibGVzCislY29tcGFyZS1zdHJuY21wCislZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1l
IGZpbmRWYWx1ZQorJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgdmFsdWVfaGFzaF9mdW5jdGlv
bgorJWRlZmluZSB3b3JkLWFycmF5LW5hbWUgdmFsdWVfd29yZF9saXN0CislaW5jbHVkZXMKKyVl
bnVtCiAlJQogRU9GCiAKQEAgLTU5LDggKzY5LDggQEAgb3BlbiBIRUFERVIsICI+Q1NTVmFsdWVL
ZXl3b3Jkcy5oIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1ZhbHVlS2V5d29yZHMuaCBmb3IK
IHByaW50IEhFQURFUiA8PCAiRU9GIjsKIC8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdl
bmVyYXRlZCBmcm9tIENTU1ZhbHVlS2V5d29yZHMuaW4gYnkgbWFrZXZhbHVlcywgZG8gbm90IGVk
aXQgKi8KIAotI2lmbmRlZiBDU1NWYWx1ZXNfaAotI2RlZmluZSBDU1NWYWx1ZXNfaAorI2lmbmRl
ZiBDU1NWYWx1ZUtleXdvcmRzX2gKKyNkZWZpbmUgQ1NTVmFsdWVLZXl3b3Jkc19oCiAKIGNvbnN0
IGludCBDU1NWYWx1ZUludmFsaWQgPSAwOwogRU9GCkBAIC04MiwxMyArOTIsMTMgQEAgcHJpbnQg
SEVBREVSIDw8ICJFT0YiOwogCiBjb25zdCBjaGFyKiBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hv
cnQgaWQpOwogCi0jZW5kaWYKKyNlbmRpZiAvLyBDU1NWYWx1ZUtleXdvcmRzX2gKIEVPRgogY2xv
c2UgSEVBREVSOwogCi1zeXN0ZW0oImdwZXJmIC1MIEFOU0ktQyAtRSAtQyAtbiAtbyAtdCAtLWtl
eS1wb3NpdGlvbnM9XCIqXCIgLU5maW5kVmFsdWUgLUhoYXNoX3ZhbCAtV3dvcmRsaXN0X3ZhbHVl
IC1EIENTU1ZhbHVlS2V5d29yZHMuZ3BlcmYgPiBDU1NWYWx1ZUtleXdvcmRzLmMiKSA9PSAwIHx8
IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKK3N5c3RlbSgiZ3BlcmYgLS1rZXktcG9z
aXRpb25zPVwiKlwiIC1EIC1uIC1zIDIgQ1NTVmFsdWVLZXl3b3Jkcy5ncGVyZiA+IENTU1ZhbHVl
S2V5d29yZHMuY3BwIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAK
LW9wZW4gQywgIj4+Q1NTVmFsdWVLZXl3b3Jkcy5jIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENT
U1ZhbHVlS2V5d29yZHMuYyBmb3Igd3JpdGluZyI7CitvcGVuIEMsICI+PkNTU1ZhbHVlS2V5d29y
ZHMuY3BwIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1ZhbHVlS2V5d29yZHMuY3BwIGZvciB3
cml0aW5nIjsKIHByaW50IEMgICJzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZhbHVlTGlzdFtd
ID0ge1xuIjsKIHByaW50IEMgICJcIlwiLFxuIjsKIGZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykg
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmIGIvV2ViQ29y
ZS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCmluZGV4IDM5ODYyNmUuLjVjMjEzYjAgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgorKysgYi9XZWJDb3JlL2h0
bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKQEAgLTEsMyArMSw0IEBACislc3RydWN0LXR5cGUKIHN0
cnVjdCBQdWJJREluZm8gewogICAgIGVudW0gZU1vZGUgeyAKICAgICAgICAgZVF1aXJrcywgICAg
ICAgICAKQEAgLTksNiArMTAsMTUgQEAgc3RydWN0IFB1YklESW5mbyB7CiAgICAgZU1vZGUgbW9k
ZV9pZl9ub19zeXNpZDsKICAgICBlTW9kZSBtb2RlX2lmX3N5c2lkOwogfQorJWxhbmd1YWdlPUFO
U0ktQworJXJlYWRvbmx5LXRhYmxlcworJWdsb2JhbC10YWJsZQorJWNvbXBhcmUtc3RybmNtcAor
JWRlZmluZSBpbml0aWFsaXplci1zdWZmaXggLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyxQ
dWJJREluZm86OmVBbG1vc3RTdGFuZGFyZHMKKyVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUg
ZmluZERvY3R5cGVFbnRyeQorJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgZG9jdHlwZV9oYXNo
X2Z1bmN0aW9uCislaW5jbHVkZXMKKyVlbnVtCiAlJQogIisvL3NpbG1hcmlsLy9kdGQgaHRtbCBw
cm8gdjByMTEgMTk5NzAxMDEvL2VuIiwgUHViSURJbmZvOjplUXVpcmtzMywgUHViSURJbmZvOjpl
UXVpcmtzMwogIi0vL2FkdmFzb2Z0IGx0ZC8vZHRkIGh0bWwgMy4wIGFzd2VkaXQgKyBleHRlbnNp
b25zLy9lbiIsIFB1YklESW5mbzo6ZVF1aXJrczMsIFB1YklESW5mbzo6ZVF1aXJrczMKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNUxleGVyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MNUxl
eGVyLmNwcAppbmRleCAwNDY0MzljLi4wN2Y5M2QzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTDVMZXhlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1TGV4ZXIuY3BwCkBAIC00MSw3
ICs0MSw3IEBACiAvLyBVc2UgX19HTlVDX18gaW5zdGVhZCBvZiBQTEFURk9STShHQ0MpIHRvIHN0
YXkgY29uc2lzdGVudCB3aXRoIHRoZSBncGVyZiBnZW5lcmF0ZWQgYyBmaWxlCiAjaWZkZWYgX19H
TlVDX18KIC8vIFRoZSBtYWluIHRva2VuaXplciBpbmNsdWRlcyB0aGlzIHRvbyBzbyB3ZSBhcmUg
Z2V0dGluZyB0d28gY29waWVzIG9mIHRoZSBkYXRhLiBIb3dldmVyLCB0aGlzIHdheSB0aGUgY29k
ZSBnZXRzIGlubGluZWQuCi0jaW5jbHVkZSAiSFRNTEVudGl0eU5hbWVzLmMiCisjaW5jbHVkZSAi
SFRNTEVudGl0eU5hbWVzLmNwcCIKICNlbHNlCiAvLyBOb3QgaW5saW5lZCBmb3Igbm9uLUdDQyBj
b21waWxlcnMKIHN0cnVjdCBFbnRpdHkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxF
bnRpdHlOYW1lcy5ncGVyZiBiL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKaW5k
ZXggYjE2YjNkOC4uYzY2NWVmZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlO
YW1lcy5ncGVyZgorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCkBAIC0y
MSwxNSArMjEsMjIgQEAKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAKICAgICBIVE1MRW50aXR5
TmFtZXMuZ3BlcmY6IGlucHV0IGZpbGUgdG8gZ2VuZXJhdGUgYSBoYXNoIHRhYmxlIGZvciBlbnRp
dGllcwotICAgIEhUTUxFbnRpdHlOYW1lcy5jOiBETyBOT1QgRURJVCEgZ2VuZXJhdGVkIGJ5IHRo
ZSBjb21tYW5kCi0gICAgImdwZXJmIC1hIC1MICJBTlNJLUMiIC1DIC1HIC1jIC1vIC10IC1rICcq
JyAtTmZpbmRFbnRpdHkgLUQgLXMgMiBIVE1MRW50aXR5TmFtZXMuZ3BlcmYgPiBlbnRpdGllcy5j
IiAgIAotICAgIGZyb20gSFRNTEVudGl0eU5hbWVzLmdwZXJmIAorICAgIEhUTUxFbnRpdHlOYW1l
cy5jcHA6IERPIE5PVCBFRElUISBnZW5lcmF0ZWQgYnkgV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMu
cGwKICovCiAlfQorJXN0cnVjdC10eXBlCiBzdHJ1Y3QgRW50aXR5IHsKICAgICBjb25zdCBjaGFy
ICpuYW1lOwogICAgIGludCBjb2RlOwogfTsKKyVsYW5ndWFnZT1BTlNJLUMKKyVyZWFkb25seS10
YWJsZXMKKyVnbG9iYWwtdGFibGUKKyVjb21wYXJlLXN0cm5jbXAKKyVkZWZpbmUgbG9va3VwLWZ1
bmN0aW9uLW5hbWUgZmluZEVudGl0eQorJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgZW50aXR5
X2hhc2hfZnVuY3Rpb24KKyVpbmNsdWRlcworJWVudW0KICUlCiBBRWxpZywgMHgwMGM2CiBBTVAs
IDM4CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAgYi9XZWJDb3Jl
L2h0bWwvSFRNTFRva2VuaXplci5jcHAKaW5kZXggN2IzZTNiOC4uNTc2YjNmMiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
VG9rZW5pemVyLmNwcApAQCAtNTUsNyArNTUsNyBAQAogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBl
Lmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKLSNpbmNsdWRlICJIVE1MRW50aXR5
TmFtZXMuYyIKKyNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXMuY3BwIgogCiAjZGVmaW5lIFBSRUxP
QURfU0NBTk5FUl9FTkFCTEVEIDEKIC8vICNkZWZpbmUgSU5TVFJVTUVOVF9MQVlPVVRfU0NIRURV
TElORyAxCkBAIC03NSw3ICs3NSw3IEBAIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdFRva2VuaXpl
ckNodW5rU2l6ZSA9IDQwOTY7CiAvLyBGSVhNRTogV2Ugd291bGQgbGlrZSB0aGlzIGNvbnN0YW50
IHRvIGJlIDIwMG1zLgogLy8gWWllbGRpbmcgbW9yZSBhZ2dyZXNzaXZlbHkgcmVzdWx0cyBpbiBp
bmNyZWFzZWQgcmVzcG9uc2l2ZW5lc3MgYW5kIGJldHRlciBpbmNyZW1lbnRhbCByZW5kZXJpbmcu
CiAvLyBJdCBzbG93cyBkb3duIG92ZXJhbGwgcGFnZS1sb2FkIG9uIHNsb3dlciBtYWNoaW5lcywg
dGhvdWdoLCBzbyBmb3Igbm93IHdlIHNldCBhIHZhbHVlIG9mIDUwMC4KLS8vIEZvciBzbWFsbGVy
IGNodW5rcyAoYWJvdmUpIGRlY3JlYXNlIHRoZSB2YWx1ZSBvZiBUaW1lckRlbGF5IGFzIHRoZSB0
aGUgdG9rZW5pemVyIHNob3VsZCBub3QgCisvLyBGb3Igc21hbGxlciBjaHVua3MgKGFib3ZlKSBk
ZWNyZWFzZSB0aGUgdmFsdWUgb2YgVGltZXJEZWxheSBhcyB0aGUgdG9rZW5pemVyIHNob3VsZCBu
b3QgCiAvLyB5aWVsZCBmb3IgYXMgbG9uZyBhIHBlcmlvZCBvdGhlcndpc2UgaXQgd2lsbCB0YWtl
IHdheSB0byBsb25nIHRvIGxvYWQgYSBwYWdlLgogc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0
VG9rZW5pemVyVGltZURlbGF5ID0gMC41MDA7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9Q
cmVsb2FkU2Nhbm5lci5jcHAgYi9XZWJDb3JlL2h0bWwvUHJlbG9hZFNjYW5uZXIuY3BwCmluZGV4
IGVlN2U3NjEuLmQzOTA5MmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9QcmVsb2FkU2Nhbm5l
ci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL1ByZWxvYWRTY2FubmVyLmNwcApAQCAtNDcsNyArNDcs
NyBAQAogLy8gVXNlIF9fR05VQ19fIGluc3RlYWQgb2YgUExBVEZPUk0oR0NDKSB0byBzdGF5IGNv
bnNpc3RlbnQgd2l0aCB0aGUgZ3BlcmYgZ2VuZXJhdGVkIGMgZmlsZQogI2lmZGVmIF9fR05VQ19f
CiAvLyBUaGUgbWFpbiB0b2tlbml6ZXIgaW5jbHVkZXMgdGhpcyB0b28gc28gd2UgYXJlIGdldHRp
bmcgdHdvIGNvcGllcyBvZiB0aGUgZGF0YS4gSG93ZXZlciwgdGhpcyB3YXkgdGhlIGNvZGUgZ2V0
cyBpbmxpbmVkLgotI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jIgorI2luY2x1ZGUgIkhUTUxF
bnRpdHlOYW1lcy5jcHAiCiAjZWxzZQogLy8gTm90IGlubGluZWQgZm9yIG5vbi1HQ0MgY29tcGls
ZXJzCiBzdHJ1Y3QgRW50aXR5IHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbWFrZS1oYXNoLXRvb2xz
LnBsIGIvV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNDJjYjZmZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbWFrZS1oYXNo
LXRvb2xzLnBsCkBAIC0wLDAgKzEsNjIgQEAKKyMhIC91c3IvYmluL3BlcmwKKyMKKyMgICBUaGlz
IGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IHByb2plY3QKKyMKKyMgICBDb3B5cmlnaHQgKEMp
IDIwMTAgQW5kcmFzIEJlY3NpIChhYmVjc2lAaW5mLnUtc3plZ2VkLmh1KSwgVW5pdmVyc2l0eSBv
ZiBTemVnZWQKKyMKKyMgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyMgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisj
ICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisjICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyMgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyAgIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyAgIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyMgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworIyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisjICAgQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisKK3VzZSBzdHJpY3Q7Cit1c2UgU3dpdGNoOwordXNlIEZpbGU6OkJhc2VuYW1l
OworCitteSAkb3V0ZGlyID0gJEFSR1ZbMF07CitzaGlmdDsKK215ICRvcHRpb24gPSBiYXNlbmFt
ZSgkQVJHVlswXSwiLmdwZXJmIik7CisKK3N3aXRjaCAoJG9wdGlvbikgeworCitjYXNlICJIVE1M
RW50aXR5TmFtZXMiIHsKKworICAgIG15ICRodG1sRW50aXR5TmFtZXNHZW5lcmF0ZWQgICA9ICIk
b3V0ZGlyL0hUTUxFbnRpdHlOYW1lcy5jcHAiOworICAgIG15ICRodG1sRW50aXR5TmFtZXNHcGVy
ZiAgICAgICA9ICRBUkdWWzBdOworICAgIHNoaWZ0OworCisgICAgc3lzdGVtKCJncGVyZiAtLWtl
eS1wb3NpdGlvbnM9XCIqXCIgLUQgLXMgMiAkaHRtbEVudGl0eU5hbWVzR3BlcmYgPiAkaHRtbEVu
dGl0eU5hbWVzR2VuZXJhdGVkIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAk
PyI7CisKK30gIyBjYXNlICJIVE1MRW50aXR5TmFtZXMiCisKK2Nhc2UgIkRvY1R5cGVTdHJpbmdz
IiB7CisKKyAgICBteSAkZG9jVHlwZVN0cmluZ3NHZW5lcmF0ZWQgICAgPSAiJG91dGRpci9Eb2NU
eXBlU3RyaW5ncy5jcHAiOworICAgIG15ICRkb2NUeXBlU3RyaW5nc0dwZXJmICAgICAgICA9ICRB
UkdWWzBdOworICAgIHNoaWZ0OworCisgICAgc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9
XCIqXCIgLXMgMiAkZG9jVHlwZVN0cmluZ3NHcGVyZiA+ICRkb2NUeXBlU3RyaW5nc0dlbmVyYXRl
ZCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOworCit9ICMgY2FzZSAi
RG9jVHlwZVN0cmluZ3MiCisKK2Nhc2UgIkNvbG9yRGF0YSIgeworCisgICAgbXkgJGNvbG9yRGF0
YUdlbmVyYXRlZCAgID0gIiRvdXRkaXIvQ29sb3JEYXRhLmNwcCI7CisgICAgbXkgJGNvbG9yRGF0
YUdwZXJmICAgICAgID0gJEFSR1ZbMF07CisgICAgc2hpZnQ7CisKKyAgICBzeXN0ZW0oImdwZXJm
IC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtcyAyICRjb2xvckRhdGFHcGVyZiA+ICRjb2xvckRh
dGFHZW5lcmF0ZWQiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKKwor
fSAjIGNhc2UgIkNvbG9yRGF0YSIKKworfSAjIHN3aXRjaCAoJG9wdGlvbikKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db2xv
ckRhdGEuZ3BlcmYKaW5kZXggOGE1NDkxNi4uMTFlZjc5OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEu
Z3BlcmYKQEAgLTEsNCArMSwxNiBAQAotc3RydWN0IE5hbWVkQ29sb3IgeyBjb25zdCBjaGFyICpu
YW1lOyBpbnQgUkdCVmFsdWU7IH07Cislc3RydWN0LXR5cGUKK3N0cnVjdCBOYW1lZENvbG9yIHsK
KyAgICBjb25zdCBjaGFyICpuYW1lOworICAgIGludCBSR0JWYWx1ZTsKK307CislbGFuZ3VhZ2U9
QU5TSS1DCislcmVhZG9ubHktdGFibGVzCislZ2xvYmFsLXRhYmxlCislY29tcGFyZS1zdHJuY21w
CislZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRDb2xvcgorJWRlZmluZSBoYXNoLWZ1
bmN0aW9uLW5hbWUgY29sb3JkYXRhX2hhc2hfZnVuY3Rpb24KKyVpbmNsdWRlcworJWVudW0KICUl
CiBhbGljZWJsdWUsIDB4ZjBmOGZmCiBhbnRpcXVld2hpdGUsIDB4ZmFlYmQ3CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3IuY3BwCmluZGV4IDE3YTVkMzguLjJmMmEzNTcgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3IuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCi0jaW5jbHVkZSAiQ29sb3JE
YXRhLmMiCisjaW5jbHVkZSAiQ29sb3JEYXRhLmNwcCIKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsK
IHVzaW5nIG5hbWVzcGFjZSBXVEY7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkVudGl0aWVzLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRW50aXRpZXMuY3BwCmluZGV4
IGI5MTQzZDkuLjI1MzhhNjcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRW50
aXRpZXMuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRW50aXRpZXMuY3BwCkBAIC00
Nyw3ICs0Nyw3IEBAIG5hbWVzcGFjZSB7CiAvLyB0aGF0IGdlbmVyYXRlZCB0aGUgYXJyYXkgdG8g
Y3JlYXRlIGEgc3RhdGljIGNvbnN0IHRoYXQgaXMgaXRzIGxlbmd0aCwgYnV0CiAvLyB0aGlzIGlz
IGxvdyBwcmlvcml0eSBzaW5jZSB0aGUgZGF0YSBpcyBsZXNzIHRoYW4gNEsuIFdlIHVzZSBhbm9u
eW1vdXMKIC8vIG5hbWVzcGFjZSB0byBwcmV2ZW50IG5hbWUgY29sbGlzaW9ucy4KLSNpbmNsdWRl
ICJIVE1MRW50aXR5TmFtZXMuYyIgLy8gTk9MSU5UCisjaW5jbHVkZSAiSFRNTEVudGl0eU5hbWVz
LmNwcCIgLy8gTk9MSU5UCiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56587</attachid>
            <date>2010-05-20 05:02:27 -0700</date>
            <delta_ts>2010-06-13 07:11:22 -0700</delta_ts>
            <desc>centralize gperf usage</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>35658</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTgyOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMTAtMDUtMjAgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUBpbmYudS1z
emVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ2VudHJhbGl6ZSB0aGUgZ3BlcmYgY29kZSBnZW5lcmF0aW9uIGNvbW1hbmRzIGludG8gbWFr
ZS1oYXNoLXRvb2xzLnBsCisgICAgICAgIHRvIGF2b2lkIHJlZHVuZGFuY3kgYWNyb3NzIG11bHRp
cGxlIGJ1aWxkIHN5c3RlbXMuCisgICAgICAgIERvIHRoaXMgaW4gcHJlcGFyYXRpb24gb2YgcmVm
YWN0b3JpbmcgdGhlIHVzYWdlIG9mIHRoZXNlIGdlbmVyYXRlZAorICAgICAgICBzb3VyY2VzIHRv
IGZpeCB0aGUgZGVidWcgbGlua2luZyBlcnJvciBvbiBMaW51eCB3aXRoIGdjYyA+PSA0LjQuMC4K
KworICAgICAgICB3ZWJraXQub3JnL2IvMjkyNDQKKworICAgICAgICBObyBmdW5jdGlvbmFsaXR5
IGNoYW5nZSwgc28gbm8gbmV3IHRlc3RzIG5lZWRlZC4KKworICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5n
eXAvV2ViQ29yZS5neXA6CisgICAgICAgICogV2ViQ29yZS5neXAvc2NyaXB0cy9ydWxlX2dwZXJm
LnB5OiBSZW1vdmVkLgorICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNzc1Byb3BlcnR5SUQpOgorICAgICAgICAoV2ViQ29yZTo6Y3Nz
VmFsdWVLZXl3b3JkSUQpOgorICAgICAgICAqIGNzcy9tYWtlcHJvcC5wbDoKKyAgICAgICAgKiBj
c3MvbWFrZXZhbHVlcy5wbDoKKyAgICAgICAgKiBodG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmOgor
ICAgICAgICAqIGh0bWwvSFRNTDVMZXhlci5jcHA6CisgICAgICAgICogaHRtbC9IVE1MRW50aXR5
TmFtZXMuZ3BlcmY6CisgICAgICAgICogaHRtbC9IVE1MVG9rZW5pemVyLmNwcDoKKyAgICAgICAg
KiBodG1sL1ByZWxvYWRTY2FubmVyLmNwcDoKKyAgICAgICAgKiBtYWtlLWhhc2gtdG9vbHMucGw6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZjoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHA6CisKIDIwMTAtMDUtMjAgIE1PUklUQSBIYWppbWUg
IDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEu
CkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiA1OTgyOCkKKysrIFdlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtNDY4LDEwICs0NjgsMTAgQEAgYWxsIDog
XAogICAgIENTU0dyYW1tYXIuY3BwIFwKICAgICBDU1NQcm9wZXJ0eU5hbWVzLmggXAogICAgIENT
U1ZhbHVlS2V5d29yZHMuaCBcCi0gICAgQ29sb3JEYXRhLmMgXAorICAgIENvbG9yRGF0YS5jcHAg
XAogICAgIERvY1R5cGVTdHJpbmdzLmNwcCBcCiAgICAgSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCBc
Ci0gICAgSFRNTEVudGl0eU5hbWVzLmMgXAorICAgIEhUTUxFbnRpdHlOYW1lcy5jcHAgXAogICAg
IEhUTUxOYW1lcy5jcHAgXAogICAgIFdNTEVsZW1lbnRGYWN0b3J5LmNwcCBcCiAgICAgV01MTmFt
ZXMuY3BwIFwKQEAgLTU1OSwyMiArNTU5LDIyIEBAIENTU1ZhbHVlS2V5d29yZHMuaCA6ICQoV0VC
Q09SRV9DU1NfVkFMVUUKIAogIyBET0NUWVBFIHN0cmluZ3MKIAotRG9jVHlwZVN0cmluZ3MuY3Bw
IDogaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgotCWdwZXJmIC1DRW90IC1MIEFOU0ktQyAtayAi
KiIgLU4gZmluZERvY3R5cGVFbnRyeSAtRiAsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzLFB1
YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyAkPCA+ICRACitEb2NUeXBlU3RyaW5ncy5jcHAgOiBo
dG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBsCisJ
cGVybCAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCAuICQoV2ViQ29yZSkvaHRtbC9Eb2NU
eXBlU3RyaW5ncy5ncGVyZgogCiAjIC0tLS0tLS0tCiAKICMgSFRNTCBlbnRpdHkgbmFtZXMKIAot
SFRNTEVudGl0eU5hbWVzLmMgOiBodG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgotCWdwZXJmIC1h
IC1MIEFOU0ktQyAtQyAtRyAtYyAtbyAtdCAtayAnKicgLU4gZmluZEVudGl0eSAtRCAtcyAyICQ8
ID4gJEAKK0hUTUxFbnRpdHlOYW1lcy5jcHAgOiBodG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZiAk
KFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbAorCXBlcmwgJChXZWJDb3JlKS9tYWtlLWhhc2gt
dG9vbHMucGwgLiAkKFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCiAKICMgLS0t
LS0tLS0KIAogIyBjb2xvciBuYW1lcwogCi1Db2xvckRhdGEuYyA6IHBsYXRmb3JtL0NvbG9yRGF0
YS5ncGVyZgotCWdwZXJmIC1DREVvdCAtTCBBTlNJLUMgLWsgJyonIC1OIGZpbmRDb2xvciAtRCAt
cyAyICQ8ID4gJEAKK0NvbG9yRGF0YS5jcHAgOiBwbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYgJChX
ZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwKKwlwZXJsICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRv
b2xzLnBsIC4gJChXZWJDb3JlKS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKIAogIyAtLS0tLS0t
LQogCkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
R05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDU5ODI4KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQkod29ya2luZyBjb3B5KQpAQCAtODIsNyArODIsNyBAQCB3ZWJjb3JlZ3RrX2NwcGZsYWdzICs9
IFwKIHdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9Eb2NUeXBl
U3RyaW5ncy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3Rva2VuaXplci5jcHAgXAotCURlcml2ZWRT
b3VyY2VzL0NvbG9yRGF0YS5jIFwKKwlEZXJpdmVkU291cmNlcy9Db2xvckRhdGEuY3BwIFwKIAlE
ZXJpdmVkU291cmNlcy93ZWJraXQvd2Via2l0ZG9tZHVtbXkuYwogCiB3ZWJjb3JlX2J1aWx0X3Nv
dXJjZXMgKz0gXApAQCAtOTEsNyArOTEsNyBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAog
CURlcml2ZWRTb3VyY2VzL0NTU1Byb3BlcnR5TmFtZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvQ1NT
VmFsdWVLZXl3b3Jkcy5oIFwKIAlEZXJpdmVkU291cmNlcy9IVE1MRWxlbWVudEZhY3RvcnkuY3Bw
IFwKLQlEZXJpdmVkU291cmNlcy9IVE1MRW50aXR5TmFtZXMuYyBcCisJRGVyaXZlZFNvdXJjZXMv
SFRNTEVudGl0eU5hbWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSFRNTE5hbWVzLmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBcCiAJRGVyaXZl
ZFNvdXJjZXMvVXNlckFnZW50U3R5bGVTaGVldHMuaCBcCkBAIC0zNzIyLDE3ICszNzIyLDE2IEBA
IERlcml2ZWRTb3VyY2VzL0NTU1ZhbHVlS2V5d29yZHMuaCA6ICQoV0UKIAltdiBDU1NWYWx1ZUtl
eXdvcmRzLiogJChHRU5TT1VSQ0VTKQogCiAjIERPQ1RZUEUgc3RyaW5ncwotRGVyaXZlZFNvdXJj
ZXMvRG9jVHlwZVN0cmluZ3MuY3BwIDogJChXZWJDb3JlKS9odG1sL0RvY1R5cGVTdHJpbmdzLmdw
ZXJmCi0JJChBTV9WX0dFTikkKEdQRVJGKSAtQ0VvdCAtSSAtTCBBTlNJLUMgLWsgIioiIC1OIGZp
bmREb2N0eXBlRW50cnkgLUYgLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyxQdWJJREluZm86
OmVBbG1vc3RTdGFuZGFyZHMgJChXZWJDb3JlKS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmID4g
JEAKK0Rlcml2ZWRTb3VyY2VzL0RvY1R5cGVTdHJpbmdzLmNwcCA6ICQoV2ViQ29yZSkvaHRtbC9E
b2NUeXBlU3RyaW5ncy5ncGVyZiAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbAorCSQoUEVS
TCkgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwgJChHRU5TT1VSQ0VTKSAkKFdlYkNvcmUp
L2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKIAogIyBIVE1MIGVudGl0eSBuYW1lcwotRGVyaXZl
ZFNvdXJjZXMvSFRNTEVudGl0eU5hbWVzLmMgOiAkKFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0eU5h
bWVzLmdwZXJmCi0JJChBTV9WX0dFTikkKEdQRVJGKSAtYSAtSSAtTCBBTlNJLUMgLUMgLUcgLWMg
LW8gLXQgLWsgJyonIC1OIGZpbmRFbnRpdHkgLUQgLXMgMiBcCi0JJChXZWJDb3JlKS9odG1sL0hU
TUxFbnRpdHlOYW1lcy5ncGVyZiA+ICRACitEZXJpdmVkU291cmNlcy9IVE1MRW50aXR5TmFtZXMu
Y3BwIDogJChXZWJDb3JlKS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZiAkKFdlYkNvcmUpL21h
a2UtaGFzaC10b29scy5wbAorCSQoUEVSTCkgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwg
JChHRU5TT1VSQ0VTKSAkKFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCiAKICMg
Y29sb3IgbmFtZXMKLURlcml2ZWRTb3VyY2VzL0NvbG9yRGF0YS5jOiAkKFdlYkNvcmUpL3BsYXRm
b3JtL0NvbG9yRGF0YS5ncGVyZgotCSQoQU1fVl9HRU4pJChHUEVSRikgLUNERW90IC1MIEFOU0kt
QyAtayAnKicgLU4gZmluZENvbG9yIC1EIC1zIDIgJDwgPiAkQAorRGVyaXZlZFNvdXJjZXMvQ29s
b3JEYXRhLmNwcDogJChXZWJDb3JlKS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYgJChXZWJDb3Jl
KS9tYWtlLWhhc2gtdG9vbHMucGwKKwkkKFBFUkwpICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xz
LnBsICQoR0VOU09VUkNFUykgJChXZWJDb3JlKS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKIAog
IyBDU1MgdG9rZW5pemVyCiBEZXJpdmVkU291cmNlcy90b2tlbml6ZXIuY3BwIDogJChXZWJDb3Jl
KS9jc3MvdG9rZW5pemVyLmZsZXggJChXZWJDb3JlKS9jc3MvbWFrZXRva2VuaXplcgpJbmRleDog
V2ViQ29yZS9XZWJDb3JlLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJpCShy
ZXZpc2lvbiA1OTgyOCkKKysrIFdlYkNvcmUvV2ViQ29yZS5wcmkJKHdvcmtpbmcgY29weSkKQEAg
LTE3OSw3ICsxNzksNyBAQCBYTElOS19OQU1FUyA9ICQkUFdEL3N2Zy94bGlua2F0dHJzLmluCiAK
IFRPS0VOSVpFUiA9ICQkUFdEL2Nzcy90b2tlbml6ZXIuZmxleAogCi1ET0NUWVBFU1RSSU5HUyA9
ICQkUFdEL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKK0RPQ1RZUEVTVFJJTkdTX0dQRVJGID0g
JCRQV0QvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgogCiBDU1NCSVNPTiA9ICQkUFdEL2Nzcy9D
U1NHcmFtbWFyLnkKIApAQCAtMTkxLDcgKzE5MSw3IEBAIFhNTE5TX05BTUVTID0gJCRQV0QveG1s
L3htbG5zYXR0cnMuaW4KIAogRU5USVRJRVNfR1BFUkYgPSAkJFBXRC9odG1sL0hUTUxFbnRpdHlO
YW1lcy5ncGVyZgogCi1DT0xPUkRBVF9HUEVSRiA9ICQkUFdEL3BsYXRmb3JtL0NvbG9yRGF0YS5n
cGVyZgorQ09MT1JEQVRBX0dQRVJGID0gJCRQV0QvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCiAK
IFdBTERPQ1NTUFJPUFMgPSAkJFBXRC9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgogCkBAIC02NTQs
MTcgKzY1NCwxNyBAQCB4bGlua25hbWVzLmlucHV0ID0gWExJTktfTkFNRVMKIGFkZEV4dHJhQ29t
cGlsZXIoeGxpbmtuYW1lcykKIAogIyBHRU5FUkFUT1IgNi1BOgotY3NzcHJvcHMub3V0cHV0ID0g
JCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uY3BwCi1jc3Nw
cm9wcy5pbnB1dCA9IFdBTERPQ1NTUFJPUFMKIGNzc3Byb3BzLndrU2NyaXB0ID0gJCRQV0QvY3Nz
L21ha2Vwcm9wLnBsCitjc3Nwcm9wcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19E
SVJ9L0NTU1Byb3BlcnR5TmFtZXMuY3BwCitjc3Nwcm9wcy5pbnB1dCA9IFdBTERPQ1NTUFJPUFMK
IGNzc3Byb3BzLmNvbW1hbmRzID0gcGVybCAtbmUgXCJwcmludCBsY1wiICR7UU1BS0VfRklMRV9O
QU1FfSAkJHtEQVNIQk9BUkRTVVBQT1JUQ1NTUFJPUEVSVElFU30gJCR7RVhUUkFDU1NQUk9QRVJU
SUVTfSA+ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9Lmlu
ICYmIGNkICQkV0NfR0VORVJBVEVEX1NPVVJDRVNfRElSICYmIHBlcmwgJCRjc3Nwcm9wcy53a1Nj
cmlwdCAmJiAkKERFTF9GSUxFKSAke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJHtRTUFLRV9GSUxFX0JB
U0V9LmdwZXJmCiBjc3Nwcm9wcy5kZXBlbmRzID0gJHtRTUFLRV9GSUxFX05BTUV9ICQke0RBU0hC
T0FSRFNVUFBPUlRDU1NQUk9QRVJUSUVTfSAkJHtFWFRSQUNTU1BST1BFUlRJRVN9CiBhZGRFeHRy
YUNvbXBpbGVyKGNzc3Byb3BzKQogCiAjIEdFTkVSQVRPUiA2LUI6Ci1jc3N2YWx1ZXMub3V0cHV0
ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uYwotY3Nz
dmFsdWVzLmlucHV0ID0gV0FMRE9DU1NWQUxVRVMKIGNzc3ZhbHVlcy53a1NjcmlwdCA9ICQkUFdE
L2Nzcy9tYWtldmFsdWVzLnBsCitjc3N2YWx1ZXMub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NP
VVJDRVNfRElSfS9DU1NWYWx1ZUtleXdvcmRzLmNwcAorY3NzdmFsdWVzLmlucHV0ID0gV0FMRE9D
U1NWQUxVRVMKIGNzc3ZhbHVlcy5jb21tYW5kcyA9IHBlcmwgLW5lIFwicHJpbnQgbGNcIiAke1FN
QUtFX0ZJTEVfTkFNRX0gJCRFWFRSQUNTU1ZBTFVFUyA+ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9LmluICYmIGNkICQkV0NfR0VORVJBVEVEX1NPVVJDRVNf
RElSICYmIHBlcmwgJCRjc3N2YWx1ZXMud2tTY3JpcHQgJiYgJChERUxfRklMRSkgJHtRTUFLRV9G
SUxFX0JBU0V9LmluICR7UU1BS0VfRklMRV9CQVNFfS5ncGVyZgogY3NzdmFsdWVzLmRlcGVuZHMg
PSAke1FNQUtFX0ZJTEVfTkFNRX0gJCR7RVhUUkFDU1NWQUxVRVN9CiBjc3N2YWx1ZXMuY2xlYW4g
PSAke1FNQUtFX0ZJTEVfT1VUfSAke1FNQUtFX1ZBUl9XQ19HRU5FUkFURURfU09VUkNFU19ESVJ9
LyR7UU1BS0VfRklMRV9CQVNFfS5oCkBAIC03MjEsMjMgKzcyMSwzMCBAQCB4bWxuYW1lcy5jb21t
YW5kcyA9IHBlcmwgLUkkJFBXRC9iaW5kaW5nCiBhZGRFeHRyYUNvbXBpbGVyKHhtbG5hbWVzKQog
CiAjIEdFTkVSQVRPUiA4LUE6Ci1lbnRpdGllcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09V
UkNFU19ESVJ9L0hUTUxFbnRpdHlOYW1lcy5jCitlbnRpdGllcy5vdXRwdXQgPSAkJHtXQ19HRU5F
UkFURURfU09VUkNFU19ESVJ9L0hUTUxFbnRpdHlOYW1lcy5jcHAKIGVudGl0aWVzLmlucHV0ID0g
RU5USVRJRVNfR1BFUkYKLWVudGl0aWVzLmNvbW1hbmRzID0gZ3BlcmYgLWEgLUwgQU5TSS1DIC1D
IC1HIC1jIC1vIC10IC0taW5jbHVkZXMgLS1rZXktcG9zaXRpb25zPSIqIiAtTiBmaW5kRW50aXR5
IC1EIC1zIDIgPCAkJFBXRC9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZiA+ICQke1dDX0dFTkVS
QVRFRF9TT1VSQ0VTX0RJUn0vSFRNTEVudGl0eU5hbWVzLmMKK2VudGl0aWVzLndrU2NyaXB0ID0g
JCRQV0QvbWFrZS1oYXNoLXRvb2xzLnBsCitlbnRpdGllcy5jb21tYW5kcyA9IHBlcmwgJCRlbnRp
dGllcy53a1NjcmlwdCAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9ICQkRU5USVRJRVNfR1BF
UkYKIGVudGl0aWVzLmNsZWFuID0gJHtRTUFLRV9GSUxFX09VVH0KK2VudGl0aWVzLmRlcGVuZHMg
PSAkJFBXRC9tYWtlLWhhc2gtdG9vbHMucGwKIGFkZEV4dHJhQ29tcGlsZXIoZW50aXRpZXMpCiAK
ICMgR0VORVJBVE9SIDgtQjoKLWRvY3R5cGVzdHJpbmdzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRF
RF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9LmNwcAotZG9jdHlwZXN0cmluZ3MuaW5w
dXQgPSBET0NUWVBFU1RSSU5HUwotZG9jdHlwZXN0cmluZ3MuY29tbWFuZHMgPSBncGVyZiAtQ0Vv
dCAtTCBBTlNJLUMgLS1pbmNsdWRlcyAtLWtleS1wb3NpdGlvbnM9IioiIC1OIGZpbmREb2N0eXBl
RW50cnkgLUYgLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyxQdWJJREluZm86OmVBbG1vc3RT
dGFuZGFyZHMgPCAke1FNQUtFX0ZJTEVfTkFNRX0gPj4gJHtRTUFLRV9GSUxFX09VVH0KK2RvY3R5
cGVzdHJpbmdzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vRG9jVHlwZVN0
cmluZ3MuY3BwCitkb2N0eXBlc3RyaW5ncy5pbnB1dCA9IERPQ1RZUEVTVFJJTkdTX0dQRVJGCitk
b2N0eXBlc3RyaW5ncy53a1NjcmlwdCA9ICQkUFdEL21ha2UtaGFzaC10b29scy5wbAorZG9jdHlw
ZXN0cmluZ3MuY29tbWFuZHMgPSBwZXJsICQkZG9jdHlwZXN0cmluZ3Mud2tTY3JpcHQgJCR7V0Nf
R0VORVJBVEVEX1NPVVJDRVNfRElSfSAkJERPQ1RZUEVTVFJJTkdTX0dQRVJGCiBkb2N0eXBlc3Ry
aW5ncy5jbGVhbiA9ICR7UU1BS0VfRklMRV9PVVR9Citkb2N0eXBlc3RyaW5ncy5kZXBlbmRzID0g
JCRQV0QvbWFrZS1oYXNoLXRvb2xzLnBsCiBhZGRFeHRyYUNvbXBpbGVyKGRvY3R5cGVzdHJpbmdz
KQogCiAjIEdFTkVSQVRPUiA4LUM6Ci1jb2xvcmRhdGEub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVE
X1NPVVJDRVNfRElSfS9Db2xvckRhdGEuYwotY29sb3JkYXRhLmlucHV0ID0gQ09MT1JEQVRfR1BF
UkYKLWNvbG9yZGF0YS5jb21tYW5kcyA9IGdwZXJmIC1DREVvdCAtTCBBTlNJLUMgLS1pbmNsdWRl
cyAtLWtleS1wb3NpdGlvbnM9IioiIC1OIGZpbmRDb2xvciAtRCAtcyAyIDwgJHtRTUFLRV9GSUxF
X05BTUV9ID4+ICR7UU1BS0VfRklMRV9PVVR9Citjb2xvcmRhdGEub3V0cHV0ID0gJCR7V0NfR0VO
RVJBVEVEX1NPVVJDRVNfRElSfS9Db2xvckRhdGEuY3BwCitjb2xvcmRhdGEuaW5wdXQgPSBDT0xP
UkRBVEFfR1BFUkYKK2NvbG9yZGF0YS53a1NjcmlwdCA9ICQkUFdEL21ha2UtaGFzaC10b29scy5w
bAorY29sb3JkYXRhLmNvbW1hbmRzID0gcGVybCAkJGNvbG9yZGF0YS53a1NjcmlwdCAkJHtXQ19H
RU5FUkFURURfU09VUkNFU19ESVJ9ICQkQ09MT1JEQVRBX0dQRVJGCitjb2xvcmRhdGEuY2xlYW4g
PSAke1FNQUtFX0ZJTEVfT1VUfQorY29sb3JkYXRhLmRlcGVuZHMgPSAkJFBXRC9tYWtlLWhhc2gt
dG9vbHMucGwKIGFkZEV4dHJhQ29tcGlsZXIoY29sb3JkYXRhKQogCiAjIEdFTkVSQVRPUiA5OgpJ
bmRleDogV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9t
YWtlLWhhc2gtdG9vbHMucGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL21ha2UtaGFzaC10b29s
cy5wbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MiBAQAorIyEgL3Vzci9iaW4vcGVybAorIwor
IyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgcHJvamVjdAorIworIyAgIENvcHly
aWdodCAoQykgMjAxMCBBbmRyYXMgQmVjc2kgKGFiZWNzaUBpbmYudS1zemVnZWQuaHUpLCBVbml2
ZXJzaXR5IG9mIFN6ZWdlZAorIworIyAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworIyAgIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyAgIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyMKKyMgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyMgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjICAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjICAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorIyAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisjICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyMgICBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKwordXNlIHN0cmljdDsKK3VzZSBTd2l0Y2g7Cit1c2UgRmlsZTo6
QmFzZW5hbWU7CisKK215ICRvdXRkaXIgPSAkQVJHVlswXTsKK3NoaWZ0OworbXkgJG9wdGlvbiA9
IGJhc2VuYW1lKCRBUkdWWzBdLCIuZ3BlcmYiKTsKKworc3dpdGNoICgkb3B0aW9uKSB7CisKK2Nh
c2UgIkhUTUxFbnRpdHlOYW1lcyIgeworCisgICAgbXkgJGh0bWxFbnRpdHlOYW1lc0dlbmVyYXRl
ZCAgID0gIiRvdXRkaXIvSFRNTEVudGl0eU5hbWVzLmNwcCI7CisgICAgbXkgJGh0bWxFbnRpdHlO
YW1lc0dwZXJmICAgICAgID0gJEFSR1ZbMF07CisgICAgc2hpZnQ7CisKKyAgICBzeXN0ZW0oImdw
ZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtcyAyICRodG1sRW50aXR5TmFtZXNHcGVyZiA+
ICRodG1sRW50aXR5TmFtZXNHZW5lcmF0ZWQiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBm
YWlsZWQ6ICQ/IjsKKworfSAjIGNhc2UgIkhUTUxFbnRpdHlOYW1lcyIKKworY2FzZSAiRG9jVHlw
ZVN0cmluZ3MiIHsKKworICAgIG15ICRkb2NUeXBlU3RyaW5nc0dlbmVyYXRlZCAgICA9ICIkb3V0
ZGlyL0RvY1R5cGVTdHJpbmdzLmNwcCI7CisgICAgbXkgJGRvY1R5cGVTdHJpbmdzR3BlcmYgICAg
ICAgID0gJEFSR1ZbMF07CisgICAgc2hpZnQ7CisKKyAgICBzeXN0ZW0oImdwZXJmIC0ta2V5LXBv
c2l0aW9ucz1cIipcIiAtcyAyICRkb2NUeXBlU3RyaW5nc0dwZXJmID4gJGRvY1R5cGVTdHJpbmdz
R2VuZXJhdGVkIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CisKK30g
IyBjYXNlICJEb2NUeXBlU3RyaW5ncyIKKworY2FzZSAiQ29sb3JEYXRhIiB7CisKKyAgICBteSAk
Y29sb3JEYXRhR2VuZXJhdGVkICAgPSAiJG91dGRpci9Db2xvckRhdGEuY3BwIjsKKyAgICBteSAk
Y29sb3JEYXRhR3BlcmYgICAgICAgPSAkQVJHVlswXTsKKyAgICBzaGlmdDsKKworICAgIHN5c3Rl
bSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1zIDIgJGNvbG9yRGF0YUdwZXJmID4g
JGNvbG9yRGF0YUdlbmVyYXRlZCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDog
JD8iOworCit9ICMgY2FzZSAiQ29sb3JEYXRhIgorCit9ICMgc3dpdGNoICgkb3B0aW9uKQpJbmRl
eDogV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCShyZXZpc2lvbiA1OTgyOCkKKysrIFdlYkNvcmUvV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXAJKHdvcmtpbmcgY29weSkKQEAgLTMxMyw3ICszMTMsNyBAQAog
ICAgICAgICAgICAgJy4uL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluJywKICAgICAgICAgICBdLAog
ICAgICAgICAgICdvdXRwdXRzJzogWwotICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFU
RV9ESVIpL3dlYmtpdC9DU1NWYWx1ZUtleXdvcmRzLmMnLAorICAgICAgICAgICAgJzwoU0hBUkVE
X0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NWYWx1ZUtleXdvcmRzLmNwcCcsCiAgICAgICAg
ICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L0NTU1ZhbHVlS2V5d29yZHMu
aCcsCiAgICAgICAgICAgXSwKICAgICAgICAgICAnYWN0aW9uJzogWwpAQCAtNTMwLDI0ICs1MzAs
MjAgQEAKICAgICAgICAgewogICAgICAgICAgICdydWxlX25hbWUnOiAnZ3BlcmYnLAogICAgICAg
ICAgICdleHRlbnNpb24nOiAnZ3BlcmYnLAotICAgICAgICAgICMgZ3BlcmYgb3V0cHV0IGlzIG9u
bHkgZXZlciAjaW5jbHVkZWQgYnkgb3RoZXIgc291cmNlIGZpbGVzLiAgQXMKLSAgICAgICAgICAj
IHN1Y2gsIHByb2Nlc3Nfb3V0cHV0c19hc19zb3VyY2VzIGlzIG9mZi4gIFNvbWUgZ3BlcmYgb3V0
cHV0IGlzCi0gICAgICAgICAgIyAjaW5jbHVkZWQgYXMgKi5jIGFuZCBzb21lIGFzICouY3BwLiAg
U2luY2UgdGhlcmUncyBubyB3YXkgdG8gdGVsbAotICAgICAgICAgICMgd2hpY2ggb25lIHdpbGwg
YmUgbmVlZGVkIGluIGEgcnVsZSBkZWZpbml0aW9uLCBkZWNsYXJlIGJvdGggYXMKLSAgICAgICAg
ICAjIG91dHB1dHMuICBUaGUgaGFybmVzcyBzY3JpcHQgd2lsbCBnZW5lcmF0ZSBvbmUgZmlsZSBh
bmQgY29weSBpdCB0bwotICAgICAgICAgICMgdGhlIG90aGVyLgogICAgICAgICAgICMKLSAgICAg
ICAgICAjIFRoaXMgcnVsZSBwbGFjZXMgb3V0cHV0cyBpbiBTSEFSRURfSU5URVJNRURJQVRFX0RJ
UiBiZWNhdXNlIGdsdWUKLSAgICAgICAgICAjIG5lZWRzIGFjY2VzcyB0byBIVE1MRW50aXR5TmFt
ZXMuYy4KKyAgICAgICAgICAjIGdwZXJmIG91dHB1dHMgYXJlIGdlbmVyYXRlZCBieSBXZWJDb3Jl
L21ha2UtaGFzaC10b29scy5wbAorICAgICAgICAgICMKICAgICAgICAgICAnb3V0cHV0cyc6IFsK
LSAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvPChSVUxFX0lO
UFVUX1JPT1QpLmMnLAogICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dl
YmtpdC88KFJVTEVfSU5QVVRfUk9PVCkuY3BwJywKICAgICAgICAgICBdLAorICAgICAgICAgICdk
ZXBlbmRlbmNpZXMnOiBbCisgICAgICAgICAgICAnLi4vbWFrZS1oYXNoLXRvb2xzLnBsJywKKyAg
ICAgICAgICBdLAogICAgICAgICAgICdhY3Rpb24nOiBbCi0gICAgICAgICAgICAncHl0aG9uJywK
LSAgICAgICAgICAgICdzY3JpcHRzL3J1bGVfZ3BlcmYucHknLAorICAgICAgICAgICAgJ3Blcmwn
LAorICAgICAgICAgICAgJy4uL21ha2UtaGFzaC10b29scy5wbCcsCisgICAgICAgICAgICAnPChT
SEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0JywKICAgICAgICAgICAgICc8KFJVTEVfSU5Q
VVRfUEFUSCknLAotICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtp
dCcKICAgICAgICAgICBdLAogICAgICAgICAgICdwcm9jZXNzX291dHB1dHNfYXNfc291cmNlcyc6
IDAsCiAgICAgICAgIH0sCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvcnVsZV9n
cGVyZi5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMvcnVsZV9n
cGVyZi5weQkocmV2aXNpb24gNTk4MjgpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwL3NjcmlwdHMv
cnVsZV9ncGVyZi5weQkod29ya2luZyBjb3B5KQpAQCAtMSw4NSArMCwwIEBACi0jIS91c3IvYmlu
L3B5dGhvbgotIwotIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSMgCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMgCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMg
ZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jIAotIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0j
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jCi0jIENvcHlyaWdodCAoYykgMjAwOSBU
aGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0jIHVzYWdlOiBydWxlX2dwZXJmLnB5
IElOUFVUX0ZJTEUgT1VUUFVUX0RJUgotIyBJTlBVVF9GSUxFIGlzIGEgcGF0aCB0byBEb2NUeXBl
U3RyaW5ncy5ncGVyZiwgSFRNTEVudGl0eU5hbWVzLmdwZXJmLCBvcgotIyBDb2xvckRhdGEuZ3Bl
cmYuCi0jIE9VVFBVVF9ESVIgaXMgd2hlcmUgdGhlIGdwZXJmLWdlbmVyYXRlZCAuY3BwIGZpbGUg
c2hvdWxkIGJlIHBsYWNlZC4gQmVjYXVzZQotIyBzb21lIHVzZXJzIHdhbnQgYSAuYyBmaWxlIGlu
c3RlYWQgb2YgYSAuY3BwIGZpbGUsIHRoZSAuY3BwIGZpbGUgaXMgY29waWVkCi0jIHRvIC5jIHdo
ZW4gZG9uZS4KLQotaW1wb3J0IHBvc2l4cGF0aAotaW1wb3J0IHNodXRpbAotaW1wb3J0IHN1YnBy
b2Nlc3MKLWltcG9ydCBzeXMKLQotYXNzZXJ0IGxlbihzeXMuYXJndikgPT0gMwotCi1pbnB1dEZp
bGUgPSBzeXMuYXJndlsxXQotb3V0cHV0RGlyID0gc3lzLmFyZ3ZbMl0KLQotZ3BlcmZDb21tYW5k
cyA9IHsKLSAgICAnRG9jVHlwZVN0cmluZ3MuZ3BlcmYnOiBbCi0gICAgICAgICctQ0VvdCcsICct
TCcsICdBTlNJLUMnLCAnLWsqJywgJy1OJywgJ2ZpbmREb2N0eXBlRW50cnknLAotICAgICAgICAn
LUYnLCAnLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyxQdWJJREluZm86OmVBbG1vc3RTdGFu
ZGFyZHMnCi0gICAgXSwKLSAgICAnSFRNTEVudGl0eU5hbWVzLmdwZXJmJzogWwotICAgICAgICAn
LWEnLCAnLUwnLCAnQU5TSS1DJywgJy1DJywgJy1HJywgJy1jJywgJy1vJywgJy10JywgJy1rKics
Ci0gICAgICAgICctTicsICdmaW5kRW50aXR5JywgJy1EJywgJy1zJywgJzInCi0gICAgXSwKLSAg
ICAnQ29sb3JEYXRhLmdwZXJmJzogWwotICAgICAgICAnLUNERW90JywgJy1MJywgJ0FOU0ktQycs
ICctayonLCAnLU4nLCAnZmluZENvbG9yJywgJy1EJywgJy1zJywgJzInCi0gICAgXSwKLX0KLQot
aW5wdXROYW1lID0gcG9zaXhwYXRoLmJhc2VuYW1lKGlucHV0RmlsZSkKLWFzc2VydCBpbnB1dE5h
bWUgaW4gZ3BlcmZDb21tYW5kcwotCi0oaW5wdXRSb290LCBpbnB1dEV4dCkgPSBwb3NpeHBhdGgu
c3BsaXRleHQoaW5wdXROYW1lKQotb3V0cHV0Q3BwID0gcG9zaXhwYXRoLmpvaW4ob3V0cHV0RGly
LCBpbnB1dFJvb3QgKyAnLmNwcCcpCi0KLSNjb21tYW5kID0gWydncGVyZicsICctLW91dHB1dC1m
aWxlJywgb3V0cHV0Q3BwXQotY29tbWFuZCA9IFsnZ3BlcmYnXQotY29tbWFuZC5leHRlbmQoZ3Bl
cmZDb21tYW5kc1tpbnB1dE5hbWVdKQotY29tbWFuZC5hcHBlbmQoaW5wdXRGaWxlKQotCi1vZmls
ZSA9IG9wZW4ob3V0cHV0Q3BwLCAndycpCi0KLSMgRG8gaXQuIGNoZWNrX2NhbGwgaXMgbmV3IGlu
IDIuNSwgc28gc2ltdWxhdGUgaXRzIGJlaGF2aW9yIHdpdGggY2FsbCBhbmQKLSMgYXNzZXJ0Lgot
cmV0dXJuQ29kZSA9IHN1YnByb2Nlc3MuY2FsbChjb21tYW5kLCBzdGRvdXQ9b2ZpbGUuZmlsZW5v
KCkpCi1hc3NlcnQgcmV0dXJuQ29kZSA9PSAwCi0KLW91dHB1dEMgPSBwb3NpeHBhdGguam9pbihv
dXRwdXREaXIsIGlucHV0Um9vdCArICcuYycpCi1zaHV0aWwuY29weWZpbGUob3V0cHV0Q3BwLCBv
dXRwdXRDKQpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDU5ODI4KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTY4MjUsMTggKzY4MjUsMTMgQEAKIAkJNjU2NTNGMkEw
RDk3MjdEMjAwQ0E5NzIzIC8qIFNWR0FsdEdseXBoRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbHRHbHlwaEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2NTY1M0YyQjBEOTcyN0QyMDBDQTk3MjMgLyogU1ZHQWx0R2x5
cGhFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FsdEdseXBo
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1M0YyQzBEOTcyN0Qy
MDBDQTk3MjMgLyogU1ZHQWx0R2x5cGhFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBTVkdBbHRHbHlwaEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2
NTY1ODBFRDA5RDEyQjIwMDAwRTYxRDcgLyogQ1NTUHJvcGVydHlOYW1lcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTUHJvcGVydHlOYW1lcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MEVFMDlEMTJCMjAwMDBFNjFENyAvKiBDU1NQ
cm9wZXJ0eU5hbWVzLmdwZXJmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NQcm9wZXJ0eU5h
bWVzLmdwZXJmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODBFRjA5RDEyQjIw
MDAwRTYxRDcgLyogQ1NTUHJvcGVydHlOYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ1NTUHJvcGVydHlOYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk2NTY1ODExQzA5RDEyREIyMDAwRTYxRDcgLyogRG9jVHlwZVN0cmluZ3MuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY1R5cGVTdHJpbmdzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgxNDQwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU0dy
YW1tYXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0dyYW1t
YXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2NTY1ODE0NjA5RDEzMDQzMDAw
RTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBw
YXRoID0gQ1NTVmFsdWVLZXl3b3Jkcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
NTY1ODE0NzA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5ncGVyZiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gQ1NTVmFsdWVLZXl3b3Jkcy5ncGVyZjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjU2NTgxNDgwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29y
ZHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ZhbHVlS2V5d29yZHMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNjU2NTgxNEIwOUQxMzA0MzAwMEU2MUQ3
IC8qIEhUTUxFbnRpdHlOYW1lcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0g
SFRNTEVudGl0eU5hbWVzLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MTRD
MDlEMTMwNDMwMDBFNjFENyAvKiB0b2tlbml6ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IHRva2VuaXplci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTY1NjU4MUFDMDlEMTRFRTYwMDBFNjFENyAvKiBDaGFyc2V0RGF0YS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2hhcnNldERhdGEuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk2NTY1ODFBRDA5RDE0RUU2MDAwRTYxRDcgLyogQ29sb3JEYXRh
LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBDb2xvckRhdGEuYzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgxQUUwOUQxNEVFNjAwMEU2MUQ3IC8qIFVzZXJB
Z2VudFN0eWxlU2hlZXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2Vy
QWdlbnRTdHlsZVNoZWV0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODFB
RjA5RDE0RUU2MDAwRTYxRDcgLyogVXNlckFnZW50U3R5bGVTaGVldHNEYXRhLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyQWdlbnRTdHlsZVNoZWV0c0RhdGEu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODFFNjA5RDE1MDhEMDAwRTYx
RDcgLyogU1ZHRWxlbWVudEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNWR0VsZW1lbnRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEwNDM0LDYgKzEwNDI5LDExIEBACiAJCUUxRjFFODJFMEMzQzJCQjkwMDZEQjM5MSAv
KiBYU0xURXh0ZW5zaW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYU0xU
RXh0ZW5zaW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZGNTdBMjBGMDEy
NTVCMDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUaHJlYWRHbG9iYWxEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUxRkY1N0E1MEYwMTI1NkIwMDg5MUVCQiAvKiBUaHJlYWRHbG9iYWxEYXRhLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRocmVhZEdsb2JhbERhdGEuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNDA2RjNGQTExOTgzMDREMDA5RDU5RDYgLyog
RG9jVHlwZVN0cmluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
RG9jVHlwZVN0cmluZ3MuY3BwOyBwYXRoID0gRG9jVHlwZVN0cmluZ3MuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFNDA2RjNGQjExOTgzMDdEMDA5RDU5RDYgLyogQ29sb3JEYXRh
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENvbG9yRGF0YS5jcHA7
IHBhdGggPSBDb2xvckRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNDA2
RjQwMjExOTgzMjlBMDA5RDU5RDYgLyogSFRNTEVudGl0eU5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEhUTUxFbnRpdHlOYW1lcy5jcHA7IHBhdGggPSBIVE1M
RW50aXR5TmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNDFFQTAzODEx
OTgzNkRCMDA3MTBCQzUgLyogQ1NTUHJvcGVydHlOYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBDU1NQcm9wZXJ0eU5hbWVzLmNwcDsgcGF0aCA9IENTU1Byb3Bl
cnR5TmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNDFFQTAzOTExOTgz
NzQ5MDA3MTBCQzUgLyogQ1NTVmFsdWVLZXl3b3Jkcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBDU1NWYWx1ZUtleXdvcmRzLmNwcDsgcGF0aCA9IENTU1ZhbHVlS2V5
d29yZHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDE1RjEwQzBEOUEwNTg3
MDAzM0NFOTcgLyogRWxlbWVudFRpbWVDb250cm9sLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBFbGVtZW50VGltZUNvbnRyb2wuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NDE1RjE2ODBEOUExNjVEMDAzM0NFOTcgLyogRE9NRWxlbWVudFRpbWVDb250cm9sLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUVsZW1lbnRUaW1lQ29udHJvbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDE1RjE4MzBEOUExQTgzMDAzM0NFOTcgLyogRWxl
bWVudFRpbWVDb250cm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVsZW1l
bnRUaW1lQ29udHJvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE3MTksMjAg
KzExNzE5LDIwIEBACiAJCTY1NjU4MEVDMDlEMTJCMjAwMDBFNjFENyAvKiBEZXJpdmVkIFNvdXJj
ZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUU0MUVB
MDM5MTE5ODM3NDkwMDcxMEJDNSAvKiBDU1NWYWx1ZUtleXdvcmRzLmNwcCAqLywKKwkJCQlFNDFF
QTAzODExOTgzNkRCMDA3MTBCQzUgLyogQ1NTUHJvcGVydHlOYW1lcy5jcHAgKi8sCisJCQkJRTQw
NkY0MDIxMTk4MzI5QTAwOUQ1OUQ2IC8qIEhUTUxFbnRpdHlOYW1lcy5jcHAgKi8sCisJCQkJRTQw
NkYzRkIxMTk4MzA3RDAwOUQ1OUQ2IC8qIENvbG9yRGF0YS5jcHAgKi8sCisJCQkJRTQwNkYzRkEx
MTk4MzA0RDAwOUQ1OUQ2IC8qIERvY1R5cGVTdHJpbmdzLmNwcCAqLywKIAkJCQk2NTY1ODFBQzA5
RDE0RUU2MDAwRTYxRDcgLyogQ2hhcnNldERhdGEuY3BwICovLAotCQkJCTY1NjU4MUFEMDlEMTRF
RTYwMDBFNjFENyAvKiBDb2xvckRhdGEuYyAqLywKIAkJCQk2NTY1ODE0NDA5RDEzMDQzMDAwRTYx
RDcgLyogQ1NTR3JhbW1hci5jcHAgKi8sCiAJCQkJNjUwRjUzREIwOUQxNUREQTAwQzlCMEM4IC8q
IENTU0dyYW1tYXIuaCAqLywKLQkJCQk2NTY1ODBFRDA5RDEyQjIwMDAwRTYxRDcgLyogQ1NTUHJv
cGVydHlOYW1lcy5jcHAgKi8sCiAJCQkJNjU2NTgwRUUwOUQxMkIyMDAwMEU2MUQ3IC8qIENTU1By
b3BlcnR5TmFtZXMuZ3BlcmYgKi8sCiAJCQkJNjU2NTgwRUYwOUQxMkIyMDAwMEU2MUQ3IC8qIENT
U1Byb3BlcnR5TmFtZXMuaCAqLywKLQkJCQk2NTY1ODE0NjA5RDEzMDQzMDAwRTYxRDcgLyogQ1NT
VmFsdWVLZXl3b3Jkcy5jICovLAogCQkJCTY1NjU4MTQ3MDlEMTMwNDMwMDBFNjFENyAvKiBDU1NW
YWx1ZUtleXdvcmRzLmdwZXJmICovLAogCQkJCTY1NjU4MTQ4MDlEMTMwNDMwMDBFNjFENyAvKiBD
U1NWYWx1ZUtleXdvcmRzLmggKi8sCi0JCQkJNjU2NTgxMUMwOUQxMkRCMjAwMEU2MUQ3IC8qIERv
Y1R5cGVTdHJpbmdzLmNwcCAqLywKIAkJCQlBMTdDODEyMDBGMkE1Q0Y3MDA1REFBRUIgLyogSFRN
TEVsZW1lbnRGYWN0b3J5LmNwcCAqLywKIAkJCQlBMTdDODEyMTBGMkE1Q0Y3MDA1REFBRUIgLyog
SFRNTEVsZW1lbnRGYWN0b3J5LmggKi8sCi0JCQkJNjU2NTgxNEIwOUQxMzA0MzAwMEU2MUQ3IC8q
IEhUTUxFbnRpdHlOYW1lcy5jICovLAogCQkJCUE4RDA2QjM4MEEyNjVEQ0QwMDVFNzIwMyAvKiBI
VE1MTmFtZXMuY3BwICovLAogCQkJCUE4RDA2QjM3MEEyNjVEQ0QwMDVFNzIwMyAvKiBIVE1MTmFt
ZXMuaCAqLywKIAkJCQk5MzhFNjVGNjA5RjA5ODVEMDA4QTQ4RUMgLyogSlNIVE1MRWxlbWVudFdy
YXBwZXJGYWN0b3J5LmNwcCAqLywKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkocmV2aXNpb24gNTk4MjgpCisr
KyBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3
IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2luZyBuYW1lc3BhY2UgV1RGOwogCiAjaW5jbHVk
ZSAiQ1NTUHJvcGVydHlOYW1lcy5jcHAiCi0jaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5jIgor
I2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuY3BwIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTU1MjYsNyArNTUyNiw3IEBAIHN0YXRpYyBpbnQgY3NzUHJvcGVydHlJRChjb25zdCBVQ2hh
ciogcHIKICAgICAgICAgfQogICAgIH0KIAotICAgIGNvbnN0IHByb3BzKiBoYXNoVGFibGVFbnRy
eSA9IGZpbmRQcm9wKG5hbWUsIGxlbmd0aCk7CisgICAgY29uc3QgUHJvcGVydHkqIGhhc2hUYWJs
ZUVudHJ5ID0gZmluZFByb3BlcnR5KG5hbWUsIGxlbmd0aCk7CiAgICAgcmV0dXJuIGhhc2hUYWJs
ZUVudHJ5ID8gaGFzaFRhYmxlRW50cnktPmlkIDogMDsKIH0KIApAQCAtNTU2OCw3ICs1NTY4LDcg
QEAgaW50IGNzc1ZhbHVlS2V5d29yZElEKGNvbnN0IENTU1BhcnNlclN0cgogICAgICAgICB9CiAg
ICAgfQogCi0gICAgY29uc3QgY3NzX3ZhbHVlKiBoYXNoVGFibGVFbnRyeSA9IGZpbmRWYWx1ZShi
dWZmZXIsIGxlbmd0aCk7CisgICAgY29uc3QgVmFsdWUqIGhhc2hUYWJsZUVudHJ5ID0gZmluZFZh
bHVlKGJ1ZmZlciwgbGVuZ3RoKTsKICAgICByZXR1cm4gaGFzaFRhYmxlRW50cnkgPyBoYXNoVGFi
bGVFbnRyeS0+aWQgOiAwOwogfQogCkluZGV4OiBXZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAkocmV2aXNpb24gNTk4MjgpCisrKyBX
ZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAkod29ya2luZyBjb3B5KQpAQCAtNSw2ICs1LDcgQEAKICMg
ICBDb3B5cmlnaHQgKEMpIDE5OTkgV2FsZG8gQmFzdGlhbiAoYmFzdGlhbkBrZGUub3JnKQogIyAg
IENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAjICAgQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQorIyAgIENvcHlyaWdodCAoQykgMjAxMCBBbmRyYXMgQmVjc2kgKGFiZWNz
aUBpbmYudS1zemVnZWQuaHUpLCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogIwogIyAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICMg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtMzksMTAgKzQwLDIwIEBAIHByaW50IEdQRVJGIDw8ICJFT0YiOwogLyogVGhpcyBm
aWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gQ1NTUHJvcGVydHlOYW1lcy5pbiBi
eSBtYWtlcHJvcCwgZG8gbm90IGVkaXQgKi8KICNpbmNsdWRlIFwiQ1NTUHJvcGVydHlOYW1lcy5o
XCIKICV9Ci1zdHJ1Y3QgcHJvcHMgeworJXN0cnVjdC10eXBlCitzdHJ1Y3QgUHJvcGVydHkgewog
ICAgIGNvbnN0IGNoYXIqIG5hbWU7CiAgICAgaW50IGlkOwogfTsKKyVsYW5ndWFnZT1BTlNJLUMK
KyVyZWFkb25seS10YWJsZXMKKyVnbG9iYWwtdGFibGUKKyVjb21wYXJlLXN0cm5jbXAKKyVkZWZp
bmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZFByb3BlcnR5CislZGVmaW5lIGhhc2gtZnVuY3Rp
b24tbmFtZSBwcm9wZXJ5X2hhc2hfZnVuY3Rpb24KKyVkZWZpbmUgd29yZC1hcnJheS1uYW1lIHBy
b3BlcnR5X3dvcmRsaXN0CislaW5jbHVkZXMKKyVlbnVtCiAlJQogRU9GCiAKQEAgLTg4LDEyICs5
OSwxMyBAQCBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAKIGNvbnN0IGNoYXIqIGdldFByb3BlcnR5
TmFtZShDU1NQcm9wZXJ0eUlEKTsKIAotI2VuZGlmCisjZW5kaWYgLy8gQ1NTUHJvcGVydHlOYW1l
c19oCisKIEVPRgogCiBjbG9zZSBIRUFERVI7CiAKLXN5c3RlbSgiZ3BlcmYgLWEgLUwgQU5TSS1D
IC1FIC1DIC1jIC1vIC10IC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtTmZpbmRQcm9wIC1IaGFzaF9w
cm9wIC1Xd29yZGxpc3RfcHJvcCAtRCAtcyAyIENTU1Byb3BlcnR5TmFtZXMuZ3BlcmYgPiBDU1NQ
cm9wZXJ0eU5hbWVzLmNwcCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8i
Oworc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLW4gLXMgMiBDU1NQcm9w
ZXJ0eU5hbWVzLmdwZXJmID4gQ1NTUHJvcGVydHlOYW1lcy5jcHAiKSA9PSAwIHx8IGRpZSAiY2Fs
bGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKIAogb3BlbiBDLCAiPj5DU1NQcm9wZXJ0eU5hbWVzLmNw
cCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCBmb3Igd3JpdGlu
ZyI7CiBwcmludCBDICJzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHByb3BlcnR5TmFtZVN0cmlu
Z3NbJG51bV0gPSB7XG4iOwpJbmRleDogV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCShyZXZpc2lvbiA1OTgyOCkKKysrIFdl
YkNvcmUvY3NzL21ha2V2YWx1ZXMucGwJKHdvcmtpbmcgY29weSkKQEAgLTUsNiArNSw3IEBACiAj
ICAgQ29weXJpZ2h0IChDKSAxOTk5IFdhbGRvIEJhc3RpYW4gKGJhc3RpYW5Aa2RlLm9yZykKICMg
ICBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyAg
IENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKKyMgICBDb3B5cmlnaHQgKEMpIDIwMTAgQW5kcmFzIEJlY3NpIChhYmVjc2lAaW5m
LnUtc3plZ2VkLmh1KSwgVW5pdmVyc2l0eSBvZiBTemVnZWQKICMKICMgICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAjICAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTQwLDEwICs0MSwxOSBAQCBwcmludCBHUEVSRiA8PCAiRU9GIjsKIAogI2luY2x1ZGUgXCJD
U1NWYWx1ZUtleXdvcmRzLmhcIgogJX0KLXN0cnVjdCBjc3NfdmFsdWUgeworJXN0cnVjdC10eXBl
CitzdHJ1Y3QgVmFsdWUgewogICAgIGNvbnN0IGNoYXIqIG5hbWU7CiAgICAgaW50IGlkOwogfTsK
KyVsYW5ndWFnZT1BTlNJLUMKKyVyZWFkb25seS10YWJsZXMKKyVjb21wYXJlLXN0cm5jbXAKKyVk
ZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZFZhbHVlCislZGVmaW5lIGhhc2gtZnVuY3Rp
b24tbmFtZSB2YWx1ZV9oYXNoX2Z1bmN0aW9uCislZGVmaW5lIHdvcmQtYXJyYXktbmFtZSB2YWx1
ZV93b3JkX2xpc3QKKyVpbmNsdWRlcworJWVudW0KICUlCiBFT0YKIApAQCAtNTksOCArNjksOCBA
QCBvcGVuIEhFQURFUiwgIj5DU1NWYWx1ZUtleXdvcmRzLmgiIHx8IGRpCiBwcmludCBIRUFERVIg
PDwgIkVPRiI7CiAvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBD
U1NWYWx1ZUtleXdvcmRzLmluIGJ5IG1ha2V2YWx1ZXMsIGRvIG5vdCBlZGl0ICovCiAKLSNpZm5k
ZWYgQ1NTVmFsdWVzX2gKLSNkZWZpbmUgQ1NTVmFsdWVzX2gKKyNpZm5kZWYgQ1NTVmFsdWVLZXl3
b3Jkc19oCisjZGVmaW5lIENTU1ZhbHVlS2V5d29yZHNfaAogCiBjb25zdCBpbnQgQ1NTVmFsdWVJ
bnZhbGlkID0gMDsKIEVPRgpAQCAtODIsMTMgKzkyLDEzIEBAIHByaW50IEhFQURFUiA8PCAiRU9G
IjsKIAogY29uc3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKTsKIAotI2Vu
ZGlmCisjZW5kaWYgLy8gQ1NTVmFsdWVLZXl3b3Jkc19oCiBFT0YKIGNsb3NlIEhFQURFUjsKIAot
c3lzdGVtKCJncGVyZiAtTCBBTlNJLUMgLUUgLUMgLW4gLW8gLXQgLS1rZXktcG9zaXRpb25zPVwi
KlwiIC1OZmluZFZhbHVlIC1IaGFzaF92YWwgLVd3b3JkbGlzdF92YWx1ZSAtRCBDU1NWYWx1ZUtl
eXdvcmRzLmdwZXJmID4gQ1NTVmFsdWVLZXl3b3Jkcy5jIikgPT0gMCB8fCBkaWUgImNhbGxpbmcg
Z3BlcmYgZmFpbGVkOiAkPyI7CitzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAt
RCAtbiAtcyAyIENTU1ZhbHVlS2V5d29yZHMuZ3BlcmYgPiBDU1NWYWx1ZUtleXdvcmRzLmNwcCIp
ID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwogCi1vcGVuIEMsICI+PkNT
U1ZhbHVlS2V5d29yZHMuYyIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NWYWx1ZUtleXdvcmRz
LmMgZm9yIHdyaXRpbmciOworb3BlbiBDLCAiPj5DU1NWYWx1ZUtleXdvcmRzLmNwcCIgfHwgZGll
ICJDb3VsZCBub3Qgb3BlbiBDU1NWYWx1ZUtleXdvcmRzLmNwcCBmb3Igd3JpdGluZyI7CiBwcmlu
dCBDICAic3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB2YWx1ZUxpc3RbXSA9IHtcbiI7CiBwcmlu
dCBDICAiXCJcIixcbiI7CiBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKSW5kZXg6IFdlYkNv
cmUvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwv
RG9jVHlwZVN0cmluZ3MuZ3BlcmYJKHJldmlzaW9uIDU5ODI4KQorKysgV2ViQ29yZS9odG1sL0Rv
Y1R5cGVTdHJpbmdzLmdwZXJmCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNCBAQAorJXN0cnVj
dC10eXBlCiBzdHJ1Y3QgUHViSURJbmZvIHsKICAgICBlbnVtIGVNb2RlIHsgCiAgICAgICAgIGVR
dWlya3MsICAgICAgICAgCkBAIC05LDYgKzEwLDE1IEBAIHN0cnVjdCBQdWJJREluZm8gewogICAg
IGVNb2RlIG1vZGVfaWZfbm9fc3lzaWQ7CiAgICAgZU1vZGUgbW9kZV9pZl9zeXNpZDsKIH0KKyVs
YW5ndWFnZT1BTlNJLUMKKyVyZWFkb25seS10YWJsZXMKKyVnbG9iYWwtdGFibGUKKyVjb21wYXJl
LXN0cm5jbXAKKyVkZWZpbmUgaW5pdGlhbGl6ZXItc3VmZml4ICxQdWJJREluZm86OmVBbG1vc3RT
dGFuZGFyZHMsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzCislZGVmaW5lIGxvb2t1cC1mdW5j
dGlvbi1uYW1lIGZpbmREb2N0eXBlRW50cnkKKyVkZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1lIGRv
Y3R5cGVfaGFzaF9mdW5jdGlvbgorJWluY2x1ZGVzCislZW51bQogJSUKICIrLy9zaWxtYXJpbC8v
ZHRkIGh0bWwgcHJvIHYwcjExIDE5OTcwMTAxLy9lbiIsIFB1YklESW5mbzo6ZVF1aXJrczMsIFB1
YklESW5mbzo6ZVF1aXJrczMKICItLy9hZHZhc29mdCBsdGQvL2R0ZCBodG1sIDMuMCBhc3dlZGl0
ICsgZXh0ZW5zaW9ucy8vZW4iLCBQdWJJREluZm86OmVRdWlya3MzLCBQdWJJREluZm86OmVRdWly
a3MzCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTDVMZXhlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9odG1sL0hUTUw1TGV4ZXIuY3BwCShyZXZpc2lvbiA1OTgyOCkKKysrIFdlYkNvcmUvaHRt
bC9IVE1MNUxleGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQAogLy8gVXNl
IF9fR05VQ19fIGluc3RlYWQgb2YgUExBVEZPUk0oR0NDKSB0byBzdGF5IGNvbnNpc3RlbnQgd2l0
aCB0aGUgZ3BlcmYgZ2VuZXJhdGVkIGMgZmlsZQogI2lmZGVmIF9fR05VQ19fCiAvLyBUaGUgbWFp
biB0b2tlbml6ZXIgaW5jbHVkZXMgdGhpcyB0b28gc28gd2UgYXJlIGdldHRpbmcgdHdvIGNvcGll
cyBvZiB0aGUgZGF0YS4gSG93ZXZlciwgdGhpcyB3YXkgdGhlIGNvZGUgZ2V0cyBpbmxpbmVkLgot
I2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jIgorI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5j
cHAiCiAjZWxzZQogLy8gTm90IGlubGluZWQgZm9yIG5vbi1HQ0MgY29tcGlsZXJzCiBzdHJ1Y3Qg
RW50aXR5IHsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgkocmV2aXNpb24gNTk4
MjgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCSh3b3JraW5nIGNvcHkp
CkBAIC0yMSwxNSArMjEsMjIgQEAKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAKICAgICBIVE1M
RW50aXR5TmFtZXMuZ3BlcmY6IGlucHV0IGZpbGUgdG8gZ2VuZXJhdGUgYSBoYXNoIHRhYmxlIGZv
ciBlbnRpdGllcwotICAgIEhUTUxFbnRpdHlOYW1lcy5jOiBETyBOT1QgRURJVCEgZ2VuZXJhdGVk
IGJ5IHRoZSBjb21tYW5kCi0gICAgImdwZXJmIC1hIC1MICJBTlNJLUMiIC1DIC1HIC1jIC1vIC10
IC1rICcqJyAtTmZpbmRFbnRpdHkgLUQgLXMgMiBIVE1MRW50aXR5TmFtZXMuZ3BlcmYgPiBlbnRp
dGllcy5jIiAgIAotICAgIGZyb20gSFRNTEVudGl0eU5hbWVzLmdwZXJmIAorICAgIEhUTUxFbnRp
dHlOYW1lcy5jcHA6IERPIE5PVCBFRElUISBnZW5lcmF0ZWQgYnkgV2ViQ29yZS9tYWtlLWhhc2gt
dG9vbHMucGwKICovCiAlfQorJXN0cnVjdC10eXBlCiBzdHJ1Y3QgRW50aXR5IHsKICAgICBjb25z
dCBjaGFyICpuYW1lOwogICAgIGludCBjb2RlOwogfTsKKyVsYW5ndWFnZT1BTlNJLUMKKyVyZWFk
b25seS10YWJsZXMKKyVnbG9iYWwtdGFibGUKKyVjb21wYXJlLXN0cm5jbXAKKyVkZWZpbmUgbG9v
a3VwLWZ1bmN0aW9uLW5hbWUgZmluZEVudGl0eQorJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUg
ZW50aXR5X2hhc2hfZnVuY3Rpb24KKyVpbmNsdWRlcworJWVudW0KICUlCiBBRWxpZywgMHgwMGM2
CiBBTVAsIDM4CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwCShyZXZpc2lvbiA1OTgyOCkKKysr
IFdlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNyAr
NTUsNyBAQAogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CiAKLSNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXMuYyIKKyNpbmNsdWRlICJIVE1M
RW50aXR5TmFtZXMuY3BwIgogCiAjZGVmaW5lIFBSRUxPQURfU0NBTk5FUl9FTkFCTEVEIDEKIC8v
ICNkZWZpbmUgSU5TVFJVTUVOVF9MQVlPVVRfU0NIRURVTElORyAxCkBAIC03NSw3ICs3NSw3IEBA
IHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdFRva2VuaXplckNodW5rU2kKIC8vIEZJWE1FOiBXZSB3
b3VsZCBsaWtlIHRoaXMgY29uc3RhbnQgdG8gYmUgMjAwbXMuCiAvLyBZaWVsZGluZyBtb3JlIGFn
Z3Jlc3NpdmVseSByZXN1bHRzIGluIGluY3JlYXNlZCByZXNwb25zaXZlbmVzcyBhbmQgYmV0dGVy
IGluY3JlbWVudGFsIHJlbmRlcmluZy4KIC8vIEl0IHNsb3dzIGRvd24gb3ZlcmFsbCBwYWdlLWxv
YWQgb24gc2xvd2VyIG1hY2hpbmVzLCB0aG91Z2gsIHNvIGZvciBub3cgd2Ugc2V0IGEgdmFsdWUg
b2YgNTAwLgotLy8gRm9yIHNtYWxsZXIgY2h1bmtzIChhYm92ZSkgZGVjcmVhc2UgdGhlIHZhbHVl
IG9mIFRpbWVyRGVsYXkgYXMgdGhlIHRoZSB0b2tlbml6ZXIgc2hvdWxkIG5vdCAKKy8vIEZvciBz
bWFsbGVyIGNodW5rcyAoYWJvdmUpIGRlY3JlYXNlIHRoZSB2YWx1ZSBvZiBUaW1lckRlbGF5IGFz
IHRoZSB0b2tlbml6ZXIgc2hvdWxkIG5vdCAKIC8vIHlpZWxkIGZvciBhcyBsb25nIGEgcGVyaW9k
IG90aGVyd2lzZSBpdCB3aWxsIHRha2Ugd2F5IHRvIGxvbmcgdG8gbG9hZCBhIHBhZ2UuCiBzdGF0
aWMgY29uc3QgZG91YmxlIGRlZmF1bHRUb2tlbml6ZXJUaW1lRGVsYXkgPSAwLjUwMDsKIApJbmRl
eDogV2ViQ29yZS9odG1sL1ByZWxvYWRTY2FubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvUHJlbG9hZFNjYW5uZXIuY3BwCShyZXZpc2lvbiA1OTgyOCkKKysrIFdlYkNvcmUvaHRt
bC9QcmVsb2FkU2Nhbm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAKIC8v
IFVzZSBfX0dOVUNfXyBpbnN0ZWFkIG9mIFBMQVRGT1JNKEdDQykgdG8gc3RheSBjb25zaXN0ZW50
IHdpdGggdGhlIGdwZXJmIGdlbmVyYXRlZCBjIGZpbGUKICNpZmRlZiBfX0dOVUNfXwogLy8gVGhl
IG1haW4gdG9rZW5pemVyIGluY2x1ZGVzIHRoaXMgdG9vIHNvIHdlIGFyZSBnZXR0aW5nIHR3byBj
b3BpZXMgb2YgdGhlIGRhdGEuIEhvd2V2ZXIsIHRoaXMgd2F5IHRoZSBjb2RlIGdldHMgaW5saW5l
ZC4KLSNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXMuYyIKKyNpbmNsdWRlICJIVE1MRW50aXR5TmFt
ZXMuY3BwIgogI2Vsc2UKIC8vIE5vdCBpbmxpbmVkIGZvciBub24tR0NDIGNvbXBpbGVycwogc3Ry
dWN0IEVudGl0eSB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgkocmV2aXNpb24gNTk4
MjgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgkod29ya2luZyBjb3B5KQpA
QCAtMSw0ICsxLDE2IEBACi1zdHJ1Y3QgTmFtZWRDb2xvciB7IGNvbnN0IGNoYXIgKm5hbWU7IGlu
dCBSR0JWYWx1ZTsgfTsKKyVzdHJ1Y3QtdHlwZQorc3RydWN0IE5hbWVkQ29sb3IgeworICAgIGNv
bnN0IGNoYXIgKm5hbWU7CisgICAgaW50IFJHQlZhbHVlOworfTsKKyVsYW5ndWFnZT1BTlNJLUMK
KyVyZWFkb25seS10YWJsZXMKKyVnbG9iYWwtdGFibGUKKyVjb21wYXJlLXN0cm5jbXAKKyVkZWZp
bmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZENvbG9yCislZGVmaW5lIGhhc2gtZnVuY3Rpb24t
bmFtZSBjb2xvcmRhdGFfaGFzaF9mdW5jdGlvbgorJWluY2x1ZGVzCislZW51bQogJSUKIGFsaWNl
Ymx1ZSwgMHhmMGY4ZmYKIGFudGlxdWV3aGl0ZSwgMHhmYWViZDcKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3IuY3BwCShyZXZpc2lvbiA1OTgyOCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAjaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCi0j
aW5jbHVkZSAiQ29sb3JEYXRhLmMiCisjaW5jbHVkZSAiQ29sb3JEYXRhLmNwcCIKIAogdXNpbmcg
bmFtZXNwYWNlIHN0ZDsKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkluZGV4OiBXZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDU5ODI4KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA1LTIwICBBbmRyYXMgQmVjc2kgIDxhYmVjc2lAaW5m
LnUtc3plZ2VkLmh1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENlbnRyYWxpemUgdGhlIGdwZXJmIGNvZGUgZ2VuZXJhdGlvbiBjb21tYW5kcyBpbnRv
IG1ha2UtaGFzaC10b29scy5wbAorICAgICAgICB0byBhdm9pZCByZWR1bmRhbmN5IGFjcm9zcyBt
dWx0aXBsZSBidWlsZCBzeXN0ZW1zLgorICAgICAgICBEbyB0aGlzIGluIHByZXBhcmF0aW9uIG9m
IHJlZmFjdG9yaW5nIHRoZSB1c2FnZSBvZiB0aGVzZSBnZW5lcmF0ZWQKKyAgICAgICAgc291cmNl
cyB0byBmaXggdGhlIGRlYnVnIGxpbmtpbmcgZXJyb3Igb24gTGludXggd2l0aCBnY2MgPj0gNC40
LjAuCisKKyAgICAgICAgd2Via2l0Lm9yZy9iLzI5MjQ0CisKKyAgICAgICAgKiBzcmMvV2ViRW50
aXRpZXMuY3BwOgorCiAyMDEwLTA1LTE5ICBWYW5nZWxpcyBLb2trZXZpcyAgPHZhbmdlbGlzQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCkluZGV4OiBX
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVudGl0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkVudGl0aWVzLmNwcAkocmV2aXNpb24gNTk4MjgpCisrKyBXZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkVudGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcs
NyBAQCBuYW1lc3BhY2UgewogLy8gdGhhdCBnZW5lcmF0ZWQgdGhlIGFycmF5IHRvIGNyZWF0ZSBh
IHN0YXRpYyBjb25zdCB0aGF0IGlzIGl0cyBsZW5ndGgsIGJ1dAogLy8gdGhpcyBpcyBsb3cgcHJp
b3JpdHkgc2luY2UgdGhlIGRhdGEgaXMgbGVzcyB0aGFuIDRLLiBXZSB1c2UgYW5vbnltb3VzCiAv
LyBuYW1lc3BhY2UgdG8gcHJldmVudCBuYW1lIGNvbGxpc2lvbnMuCi0jaW5jbHVkZSAiSFRNTEVu
dGl0eU5hbWVzLmMiIC8vIE5PTElOVAorI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jcHAiIC8v
IE5PTElOVAogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59364</attachid>
            <date>2010-06-22 06:58:56 -0700</date>
            <delta_ts>2010-06-22 08:42:02 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>25639</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjliYjU3YS4uYjRmOTZhZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMC0wNi0yMiAgQW5kcmFzIEJlY3Np
ICA8YWJlY3NpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVmYWN0b3IgZ3BlcmYgY29kZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0
byBmaXggdGhlIGRlYnVnIGJ1aWxkIHdpdGggZ2NjPjQuNC4KKyAgICAgICAgd2Via2l0Lm9yZy9i
LzI5MjQ0CisKKyAgICAgICAgSGl0aGVydG8gZ3BlcmYgZ2VuZXJhdGVkIEMgY29kZSwgdGhlc2Ug
ZmlsZXMgd2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBDKysgZmlsZXMgYWNyb3NzIFdlYkNvcmUK
KyAgICAgICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkLiBUaGlzIHJlc3Vs
dGVkIGluIGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBuZXdlciBnY2MgdmVyc2lvbnMKKyAgICAg
ICAgYmVjYXVzZSBvZiBhIGJlaGF2aW91ciBjaGFuZ2Ugb2YgZ2NjLCB3aGljaCBkaXNhYmxlcyBD
IHN0eWxlIGlubGluaW5nIGluIGRlYnVnIG1vZGUuCisgICAgICAgIFRoZSBtYWtlLWhhc2gtdG9v
bHMucGwgc2NyaXB0IGxldHMgZ3BlcmYgZ2VuZXJhdGUgQysrIGNvZGUgZm9yIGFsbCBncGVyZiBm
aWxlcyBub3csIHdoaWNoIGFyZSBjb21waWxlZAorICAgICAgICBpbiB0aGVpciBvd24gY29tcGls
YXRpb24gdW5pdC4KKyAgICAgICAgVGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgdGhlIGdl
bmVyYXRlZCBjb2RlIGlzIHdyYXBwZWQgYmVoaW5kIEhhc2hUb29scy5oLCBzbyB0aGVyZSBpcyBu
byBuZWVkCisgICAgICAgIGZvciBtdWx0aXBsZSBpbmNsdXNpb25zIG9mIGdlbmVyYXRlZCBDIGZp
bGVzIHRvIGFjY2VzcyB0aGVzZSBmdW5jdGlvbnMuCisKKyAgICAgICAgTm8gbmV3IGZ1bmN0aW9u
YWxpdHkgYWRkZWQsIG5vIG5ldyB0ZXN0cyBuZWVkZWQuCisKKyAgICAgICAgKiBXZWJDb3JlLnBy
aToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgICogY3NzL21ha2Vwcm9wLnBsOgorICAgICAg
ICAqIGNzcy9tYWtldmFsdWVzLnBsOgorICAgICAgICAqIGh0bWwvRG9jVHlwZVN0cmluZ3MuZ3Bl
cmY6CisgICAgICAgICogaHRtbC9IVE1MNUVudGl0eVBhcnNlci5jcHA6CisgICAgICAgICogaHRt
bC9IVE1MRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNw
cDoKKyAgICAgICAgKiBodG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZjoKKyAgICAgICAgKiBodG1s
L1ByZWxvYWRTY2FubmVyLmNwcDoKKyAgICAgICAgKiBtYWtlLWhhc2gtdG9vbHMucGw6CisgICAg
ICAgICogcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0NvbG9yLmNwcDoKKwogMjAxMC0wNi0yMiAgWXV0YSBLaXRhbXVyYSAgPHl1dGFrQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5kZXgg
YmIwYmU2Zi4uNGZjNDQ0MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9X
ZWJDb3JlL1dlYkNvcmUucHJpCkBAIC02ODEsNyArNjgxLDcgQEAgY3NzcHJvcHMud2tTY3JpcHQg
PSAkJFBXRC9jc3MvbWFrZXByb3AucGwKIGNzc3Byb3BzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRF
RF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5jcHAKIGNzc3Byb3BzLmlucHV0ID0gV0FM
RE9DU1NQUk9QUwogY3NzcHJvcHMuY29tbWFuZHMgPSBwZXJsIC1uZSBcInByaW50IGxjXCIgJHtR
TUFLRV9GSUxFX05BTUV9ICQke0RBU0hCT0FSRFNVUFBPUlRDU1NQUk9QRVJUSUVTfSAkJHtFWFRS
QUNTU1BST1BFUlRJRVN9ID4gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtFX0ZJ
TEVfQkFTRX0uaW4gJiYgY2QgJCRXQ19HRU5FUkFURURfU09VUkNFU19ESVIgJiYgcGVybCAkJGNz
c3Byb3BzLndrU2NyaXB0ICYmICQoREVMX0ZJTEUpICR7UU1BS0VfRklMRV9CQVNFfS5pbiAke1FN
QUtFX0ZJTEVfQkFTRX0uZ3BlcmYKLWNzc3Byb3BzLmRlcGVuZHMgPSAke1FNQUtFX0ZJTEVfTkFN
RX0gJCR7REFTSEJPQVJEU1VQUE9SVENTU1BST1BFUlRJRVN9ICQke0VYVFJBQ1NTUFJPUEVSVElF
U30KK2Nzc3Byb3BzLmRlcGVuZHMgPSAke1FNQUtFX0ZJTEVfTkFNRX0gJCR7REFTSEJPQVJEU1VQ
UE9SVENTU1BST1BFUlRJRVN9ICQke0VYVFJBQ1NTUFJPUEVSVElFU30gJCRjc3Nwcm9wcy53a1Nj
cmlwdAogYWRkRXh0cmFDb21waWxlcihjc3Nwcm9wcykKIAogIyBHRU5FUkFUT1IgNi1COgpAQCAt
Njg5LDcgKzY4OSw3IEBAIGNzc3ZhbHVlcy53a1NjcmlwdCA9ICQkUFdEL2Nzcy9tYWtldmFsdWVz
LnBsCiBjc3N2YWx1ZXMub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9DU1NW
YWx1ZUtleXdvcmRzLmNwcAogY3NzdmFsdWVzLmlucHV0ID0gV0FMRE9DU1NWQUxVRVMKIGNzc3Zh
bHVlcy5jb21tYW5kcyA9IHBlcmwgLW5lIFwicHJpbnQgbGNcIiAke1FNQUtFX0ZJTEVfTkFNRX0g
JCRFWFRSQUNTU1ZBTFVFUyA+ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9G
SUxFX0JBU0V9LmluICYmIGNkICQkV0NfR0VORVJBVEVEX1NPVVJDRVNfRElSICYmIHBlcmwgJCRj
c3N2YWx1ZXMud2tTY3JpcHQgJiYgJChERUxfRklMRSkgJHtRTUFLRV9GSUxFX0JBU0V9LmluICR7
UU1BS0VfRklMRV9CQVNFfS5ncGVyZgotY3NzdmFsdWVzLmRlcGVuZHMgPSAke1FNQUtFX0ZJTEVf
TkFNRX0gJCR7RVhUUkFDU1NWQUxVRVN9Citjc3N2YWx1ZXMuZGVwZW5kcyA9ICR7UU1BS0VfRklM
RV9OQU1FfSAkJHtFWFRSQUNTU1ZBTFVFU30gJCRjc3N2YWx1ZXMud2tTY3JpcHQKIGNzc3ZhbHVl
cy5jbGVhbiA9ICR7UU1BS0VfRklMRV9PVVR9ICR7UU1BS0VfVkFSX1dDX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9LmgKIGFkZEV4dHJhQ29tcGlsZXIoY3NzdmFsdWVz
KQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU3ZmRj
NDEuLjI2Mzk0OTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0zNzMsNiArMzczLDExIEBACiAJCTFBNTY5RDIzMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50
aW1lX29iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUE1NjlDRjQwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfb2JqZWN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUE1NjlEMjQwRDdFMkI4
MjAwN0MzOTgzIC8qIHJ1bnRpbWVfcm9vdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTU2OUNGNTBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9y
b290LmNwcCAqLzsgfTsKIAkJMUE1NjlEMjUwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfcm9v
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE1NjlD
RjYwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfcm9vdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFBNjc2RTVEMTFDRkMzRTAwMDJGODVENSAv
KiBIVE1MRW50aXR5TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTQwNkY0MDIxMTk4MzI5QTAwOUQ1OUQ2IC8qIEhUTUxFbnRpdHlOYW1lcy5j
cHAgKi87IH07CisJCTFBNjc2RTVFMTFDRkMzRTYwMDJGODVENSAvKiBDU1NWYWx1ZUtleXdvcmRz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MUVB
MDM5MTE5ODM3NDkwMDcxMEJDNSAvKiBDU1NWYWx1ZUtleXdvcmRzLmNwcCAqLzsgfTsKKwkJMUE2
NzZFNjAxMUNGQzNFRTAwMkY4NUQ1IC8qIENvbG9yRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDA2RjNGQjExOTgzMDdEMDA5RDU5RDYgLyog
Q29sb3JEYXRhLmNwcCAqLzsgfTsKKwkJMUE2NzZFNjExMUNGQzNGQjAwMkY4NUQ1IC8qIENTU1By
b3BlcnR5TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTQxRUEwMzgxMTk4MzZEQjAwNzEwQkM1IC8qIENTU1Byb3BlcnR5TmFtZXMuY3BwICov
OyB9OworCQkxQTY3NkU2MjExQ0ZDNDA4MDAyRjg1RDUgLyogRG9jVHlwZVN0cmluZ3MuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwNkYzRkExMTk4
MzA0RDAwOUQ1OUQ2IC8qIERvY1R5cGVTdHJpbmdzLmNwcCAqLzsgfTsKIAkJMUE2OTM4MDEwQTEx
MTAwQTAwQzEyN0ZFIC8qIFRleHREb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTY5MzdGRjBBMTExMDBBMDBDMTI3RkUgLyogVGV4dERv
Y3VtZW50LmNwcCAqLzsgfTsKIAkJMUE2OTM4MDIwQTExMTAwQTAwQzEyN0ZFIC8qIFRleHREb2N1
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2
OTM4MDAwQTExMTAwQTAwQzEyN0ZFIC8qIFRleHREb2N1bWVudC5oICovOyB9OwogCQkxQTcxRDU3
QjBGMzM4MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTcxRDU3OTBGMzM4MTkwMDBGOUNFNEUgLyog
SWRlbnRpZmllclJlcC5jcHAgKi87IH07CkBAIC0yMTgxNSw2ICsyMTgyMCwxMSBAQAogCQkJCTIw
MEIxOTA5MTFDMjc3RDkwMERDQ0QzQSAvKiBTY3JpcHRCcmVha3BvaW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBRDhGODFDMTFDQUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjUyNUE5NjYxMUNBMjM0MDAwM0EyM0E4IC8qIEpTU1FM
RXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBNjc2RTVEMTFDRkMzRTAwMDJGODVE
NSAvKiBIVE1MRW50aXR5TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUE2NzZFNUUxMUNG
QzNFNjAwMkY4NUQ1IC8qIENTU1ZhbHVlS2V5d29yZHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MUE2NzZFNjAxMUNGQzNFRTAwMkY4NUQ1IC8qIENvbG9yRGF0YS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkxQTY3NkU2MTExQ0ZDM0ZCMDAyRjg1RDUgLyogQ1NTUHJvcGVydHlOYW1lcy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkxQTY3NkU2MjExQ0ZDNDA4MDAyRjg1RDUgLyogRG9jVHlwZVN0cmlu
Z3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA0MzMwZDA5Li5kMTIxMTczIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKQEAgLTYxLDYgKzYxLDcgQEAKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24u
aCIKICNpbmNsdWRlICJGb250RmFtaWx5VmFsdWUuaCIKICNpbmNsdWRlICJGb250VmFsdWUuaCIK
KyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRl
ICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiUGFpci5oIgpAQCAtODgsOSArODksNiBAQCBl
eHRlcm4gaW50IGNzc3l5cGFyc2Uodm9pZCogcGFyc2VyKTsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7
CiB1c2luZyBuYW1lc3BhY2UgV1RGOwogCi0jaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5jcHAi
Ci0jaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5jcHAiCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIElOVkFMSURfTlVNX1BBUlNFRF9QUk9QRVJUSUVTID0g
VUlOVF9NQVg7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbCBiL1dlYkNvcmUv
Y3NzL21ha2Vwcm9wLnBsCmluZGV4IDBmZDFmMDguLjUzYTJmZDQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvY3NzL21ha2Vwcm9wLnBsCisrKyBiL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCkBAIC00MSwx
NSArNDEsMTQgQEAgcHJpbnQgR1BFUkYgPDwgIkVPRiI7CiAjaW5jbHVkZSBcIkNTU1Byb3BlcnR5
TmFtZXMuaFwiCiAlfQogJXN0cnVjdC10eXBlCi1zdHJ1Y3QgUHJvcGVydHkgewotICAgIGNvbnN0
IGNoYXIqIG5hbWU7Ci0gICAgaW50IGlkOwotfTsKLSVsYW5ndWFnZT1BTlNJLUMKK3N0cnVjdCBQ
cm9wZXJ0eTsKKyVvbWl0LXN0cnVjdC10eXBlCislbGFuZ3VhZ2U9QysrCiAlcmVhZG9ubHktdGFi
bGVzCiAlZ2xvYmFsLXRhYmxlCiAlY29tcGFyZS1zdHJuY21wCi0lZGVmaW5lIGxvb2t1cC1mdW5j
dGlvbi1uYW1lIGZpbmRQcm9wZXJ0eQorJWRlZmluZSBjbGFzcy1uYW1lIENTU1Byb3BlcnR5TmFt
ZXNIYXNoCislZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRQcm9wZXJ0eUltcGwKICVk
ZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1lIHByb3BlcnlfaGFzaF9mdW5jdGlvbgogJWRlZmluZSB3
b3JkLWFycmF5LW5hbWUgcHJvcGVydHlfd29yZGxpc3QKICVpbmNsdWRlcwpAQCAtNzIsNiArNzEs
MTAgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogI2lmbmRlZiBDU1NQcm9wZXJ0eU5hbWVzX2gK
ICNkZWZpbmUgQ1NTUHJvcGVydHlOYW1lc19oCiAKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCiBlbnVtIENTU1Byb3BlcnR5SUQgewogICAgIENTU1Byb3BlcnR5
SW52YWxpZCA9IDAsCiBFT0YKQEAgLTk5LDE1ICsxMDIsMTcgQEAgcHJpbnQgSEVBREVSIDw8ICJF
T0YiOwogCiBjb25zdCBjaGFyKiBnZXRQcm9wZXJ0eU5hbWUoQ1NTUHJvcGVydHlJRCk7CiAKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKwogI2VuZGlmIC8vIENTU1Byb3BlcnR5TmFtZXNfaAogCiBF
T0YKIAogY2xvc2UgSEVBREVSOwogCi1zeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipc
IiAtRCAtbiAtcyAyIENTU1Byb3BlcnR5TmFtZXMuZ3BlcmYgPiBDU1NQcm9wZXJ0eU5hbWVzLmNw
cCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOworc3lzdGVtKCJncGVy
ZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLW4gLXMgMiBDU1NQcm9wZXJ0eU5hbWVzLmdwZXJm
ID4gQ1NTUHJvcGVydHlOYW1lc0hhc2guaHBwIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYg
ZmFpbGVkOiAkPyI7CiAKLW9wZW4gQywgIj4+Q1NTUHJvcGVydHlOYW1lcy5jcHAiIHx8IGRpZSAi
Q291bGQgbm90IG9wZW4gQ1NTUHJvcGVydHlOYW1lcy5jcHAgZm9yIHdyaXRpbmciOworb3BlbiBD
LCAiPj5DU1NQcm9wZXJ0eU5hbWVzSGFzaC5ocHAiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NT
UHJvcGVydHlOYW1lc0hhc2guaHBwIGZvciB3cml0aW5nIjsKIHByaW50IEMgInN0YXRpYyBjb25z
dCBjaGFyICogY29uc3QgcHJvcGVydHlOYW1lU3RyaW5nc1skbnVtXSA9IHtcbiI7CiAKIGZvcmVh
Y2ggbXkgJG5hbWUgKEBuYW1lcykgewpAQCAtMTE2LDYgKzEyMSwyOSBAQCBmb3JlYWNoIG15ICRu
YW1lIChAbmFtZXMpIHsKIAogcHJpbnQgQyA8PCAiRU9GIjsKIH07CisKK0VPRgorCitjbG9zZSBD
OworCitteSAkcHJvcGVydHlOYW1lc0ltcGwgPSAiQ1NTUHJvcGVydHlOYW1lcy5jcHAiOworCitv
cGVuIFBST1BFUlRZTkFNRVMsICI+JHByb3BlcnR5TmFtZXNJbXBsIiB8fCBkaWUgIkNvdWxkIG5v
dCBvcGVuICRwcm9wZXJ0eU5hbWVzSW1wbCBmb3Igd3JpdGluZyI7CitwcmludCBQUk9QRVJUWU5B
TUVTIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5
IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKworCisjaW5jbHVkZSAiQ1NTUHJv
cGVydHlOYW1lcy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lc0hhc2guaHBwIgorCitjb25zdCBQcm9wZXJ0
eSogZmluZFByb3BlcnR5IChyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2ln
bmVkIGludCBsZW4pCit7CisgICAgcmV0dXJuIENTU1Byb3BlcnR5TmFtZXNIYXNoOjpmaW5kUHJv
cGVydHlJbXBsKHN0ciwgbGVuKTsKK30KKwogY29uc3QgY2hhciogZ2V0UHJvcGVydHlOYW1lKENT
U1Byb3BlcnR5SUQgaWQpCiB7CiAgICAgaWYgKGlkIDwgZmlyc3RDU1NQcm9wZXJ0eSkKQEAgLTEy
NSw3ICsxNTMsMTAgQEAgY29uc3QgY2hhciogZ2V0UHJvcGVydHlOYW1lKENTU1Byb3BlcnR5SUQg
aWQpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBwcm9wZXJ0eU5hbWVTdHJpbmdzW2lu
ZGV4XTsKIH0KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCiBFT0YKIAotY2xvc2UgQzsKK2Ns
b3NlIFBST1BFUlRZTkFNRVM7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMu
cGwgYi9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCmluZGV4IDQyMWU0NzAuLjcxYzg3YTUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwKKysrIGIvV2ViQ29yZS9jc3MvbWFr
ZXZhbHVlcy5wbApAQCAtNDIsMTQgKzQyLDEzIEBAIHByaW50IEdQRVJGIDw8ICJFT0YiOwogI2lu
Y2x1ZGUgXCJDU1NWYWx1ZUtleXdvcmRzLmhcIgogJX0KICVzdHJ1Y3QtdHlwZQotc3RydWN0IFZh
bHVlIHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGludCBpZDsKLX07Ci0lbGFuZ3VhZ2U9
QU5TSS1DCitzdHJ1Y3QgVmFsdWU7Cislb21pdC1zdHJ1Y3QtdHlwZQorJWxhbmd1YWdlPUMrKwog
JXJlYWRvbmx5LXRhYmxlcwogJWNvbXBhcmUtc3RybmNtcAotJWRlZmluZSBsb29rdXAtZnVuY3Rp
b24tbmFtZSBmaW5kVmFsdWUKKyVkZWZpbmUgY2xhc3MtbmFtZSBDU1NWYWx1ZUtleXdvcmRzSGFz
aAorJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kVmFsdWVJbXBsCiAlZGVmaW5lIGhh
c2gtZnVuY3Rpb24tbmFtZSB2YWx1ZV9oYXNoX2Z1bmN0aW9uCiAlZGVmaW5lIHdvcmQtYXJyYXkt
bmFtZSB2YWx1ZV93b3JkX2xpc3QKICVpbmNsdWRlcwpAQCAtNzIsNiArNzEsMTAgQEAgcHJpbnQg
SEVBREVSIDw8ICJFT0YiOwogI2lmbmRlZiBDU1NWYWx1ZUtleXdvcmRzX2gKICNkZWZpbmUgQ1NT
VmFsdWVLZXl3b3Jkc19oCiAKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCiBjb25zdCBpbnQgQ1NTVmFsdWVJbnZhbGlkID0gMDsKIEVPRgogCkBAIC05MiwxMyAr
OTUsMTYgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogCiBjb25zdCBjaGFyKiBnZXRWYWx1ZU5h
bWUodW5zaWduZWQgc2hvcnQgaWQpOwogCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKICNlbmRp
ZiAvLyBDU1NWYWx1ZUtleXdvcmRzX2gKKwogRU9GCiBjbG9zZSBIRUFERVI7CiAKLXN5c3RlbSgi
Z3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1uIC1zIDIgQ1NTVmFsdWVLZXl3b3Jkcy5n
cGVyZiA+IENTU1ZhbHVlS2V5d29yZHMuY3BwIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYg
ZmFpbGVkOiAkPyI7CitzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtbiAt
cyAyIENTU1ZhbHVlS2V5d29yZHMuZ3BlcmYgPiBDU1NWYWx1ZUtleXdvcmRzSGFzaC5ocHAiKSA9
PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKIAotb3BlbiBDLCAiPj5DU1NW
YWx1ZUtleXdvcmRzLmNwcCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NWYWx1ZUtleXdvcmRz
LmNwcCBmb3Igd3JpdGluZyI7CitvcGVuIEMsICI+PkNTU1ZhbHVlS2V5d29yZHNIYXNoLmhwcCIg
fHwgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NWYWx1ZUtleXdvcmRzSGFzaC5ocHAgZm9yIHdyaXRp
bmciOwogcHJpbnQgQyAgInN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdmFsdWVMaXN0W10gPSB7
XG4iOwogcHJpbnQgQyAgIlwiXCIsXG4iOwogZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CkBA
IC0xMDcsMTIgKzExMywzOCBAQCBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKIHByaW50IEMg
PDwgIkVPRiI7CiAgICAgMAogfTsKKworRU9GCisKK2Nsb3NlIEM7CisKK215ICR2YWx1ZUtleXdv
cmRzSW1wbCA9ICJDU1NWYWx1ZUtleXdvcmRzLmNwcCI7CisKK29wZW4gVkFMVUVLRVlXT1JEUywg
Ij4kdmFsdWVLZXl3b3Jkc0ltcGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJHZhbHVlS2V5d29y
ZHNJbXBsIGZvciB3cml0aW5nIjsKK3ByaW50IFZBTFVFS0VZV09SRFMgPDwgIkVPRiI7CisvKiBU
aGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBs
LCBkbyBub3QgZWRpdCAqLworCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1
ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiQ1NTVmFs
dWVLZXl3b3Jkc0hhc2guaHBwIgorCitjb25zdCBWYWx1ZSogZmluZFZhbHVlIChyZWdpc3RlciBj
b25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7CisgICAgcmV0dXJu
IENTU1ZhbHVlS2V5d29yZHNIYXNoOjpmaW5kVmFsdWVJbXBsKHN0ciwgbGVuKTsKK30KKwogY29u
c3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKQogewogICAgIGlmIChpZCA+
PSBudW1DU1NWYWx1ZUtleXdvcmRzIHx8IGlkIDw9IDApCiAgICAgICAgIHJldHVybiAwOwogICAg
IHJldHVybiB2YWx1ZUxpc3RbaWRdOwogfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKIEVP
RgogCi1jbG9zZSBDOworY2xvc2UgVkFMVUVLRVlXT1JEUzsKKwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmIGIvV2ViQ29yZS9odG1sL0RvY1R5cGVTdHJpbmdz
LmdwZXJmCmluZGV4IDVjMjEzYjAuLjZiN2RhMDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9E
b2NUeXBlU3RyaW5ncy5ncGVyZgorKysgYi9XZWJDb3JlL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3Bl
cmYKQEAgLTEsMjEgKzEsMTMgQEAKICVzdHJ1Y3QtdHlwZQotc3RydWN0IFB1YklESW5mbyB7Ci0g
ICAgZW51bSBlTW9kZSB7IAotICAgICAgICBlUXVpcmtzLCAgICAgICAgIAotICAgICAgICBlUXVp
cmtzMywgICAgICAgCi0gICAgICAgIGVBbG1vc3RTdGFuZGFyZHMKLSAgICB9OwotCi0gICAgY29u
c3QgY2hhciogbmFtZTsKLSAgICBlTW9kZSBtb2RlX2lmX25vX3N5c2lkOwotICAgIGVNb2RlIG1v
ZGVfaWZfc3lzaWQ7Ci19Ci0lbGFuZ3VhZ2U9QU5TSS1DCitzdHJ1Y3QgUHViSURJbmZvOworJW9t
aXQtc3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysKICVyZWFkb25seS10YWJsZXMKICVnbG9iYWwt
dGFibGUKICVjb21wYXJlLXN0cm5jbXAKKyVkZWZpbmUgY2xhc3MtbmFtZSBEb2NUeXBlU3RyaW5n
c0hhc2gKICVkZWZpbmUgaW5pdGlhbGl6ZXItc3VmZml4ICxQdWJJREluZm86OmVBbG1vc3RTdGFu
ZGFyZHMsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzCi0lZGVmaW5lIGxvb2t1cC1mdW5jdGlv
bi1uYW1lIGZpbmREb2N0eXBlRW50cnkKKyVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmlu
ZERvY3R5cGVFbnRyeUltcGwKICVkZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1lIGRvY3R5cGVfaGFz
aF9mdW5jdGlvbgogJWluY2x1ZGVzCiAlZW51bQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hU
TUw1RW50aXR5UGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MNUVudGl0eVBhcnNlci5jcHAK
aW5kZXggZjE2ODI0NS4uNWQwOTJkZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUw1RW50
aXR5UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTDVFbnRpdHlQYXJzZXIuY3BwCkBA
IC0yOCwyMSArMjgsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhUTUw1RW50
aXR5UGFyc2VyLmgiCiAKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKLS8vIFVzZSBfX0dOVUNfXyBpbnN0ZWFkIG9mIFBMQVRGT1JNKEdDQykgdG8gc3Rh
eSBjb25zaXN0ZW50IHdpdGggdGhlIGdwZXJmIGdlbmVyYXRlZCBjIGZpbGUKLSNpZmRlZiBfX0dO
VUNfXwotLy8gVGhlIG1haW4gcGFyc2VyIGluY2x1ZGVzIHRoaXMgdG9vIHNvIHdlIGFyZSBnZXR0
aW5nIHR3byBjb3BpZXMgb2YgdGhlIGRhdGEuIEhvd2V2ZXIsIHRoaXMgd2F5IHRoZSBjb2RlIGdl
dHMgaW5saW5lZC4KLSNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXMuY3BwIgotI2Vsc2UKLS8vIE5v
dCBpbmxpbmVkIGZvciBub24tR0NDIGNvbXBpbGVycwotc3RydWN0IEVudGl0eSB7Ci0gICAgY29u
c3QgY2hhciogbmFtZTsKLSAgICBpbnQgY29kZTsKLX07Ci1jb25zdCBzdHJ1Y3QgRW50aXR5KiBm
aW5kRW50aXR5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50
IGxlbik7Ci0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIFdURjsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAgYi9XZWJDb3Jl
L2h0bWwvSFRNTERvY3VtZW50LmNwcAppbmRleCAwNTA3NGE0Li43MmQ5NWI2IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTERv
Y3VtZW50LmNwcApAQCAtNjQsNiArNjQsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAj
aW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAi
SGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiSFRNTDVEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUg
IkhUTUxCb2R5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50RmFjdG9yeS5oIgpAQCAt
NzUsOCArNzYsNiBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogCi0jaW5jbHVkZSAiRG9jVHlwZVN0cmluZ3MuY3BwIgotCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1l
bnRQYXJzZXIuY3BwCmluZGV4IDI3ZjAxNjMuLjQyOGE4NDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1l
bnRQYXJzZXIuY3BwCkBAIC0zOSwxMyArMzksMTQgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAi
SGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKLSNpbmNsdWRlICJMZWdhY3lIVE1MVHJlZUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAi
SFRNTFNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVmlld1NvdXJjZURvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiSW1hZ2VMb2FkZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmgiCisjaW5jbHVkZSAiTGVnYWN5SFRNTFRyZWVDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKICNpbmNsdWRlICJQcmVsb2FkU2Nhbm5lci5oIgogI2luY2x1ZGUgIlNjcmlwdENv
bnRyb2xsZXIuaCIKQEAgLTU1LDggKzU2LDYgQEAKICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5o
PgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCi0jaW5jbHVkZSAiSFRNTEVudGl0eU5h
bWVzLmNwcCIKLQogI2RlZmluZSBQUkVMT0FEX1NDQU5ORVJfRU5BQkxFRCAxCiAKIHVzaW5nIG5h
bWVzcGFjZSBXVEY7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdw
ZXJmIGIvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgppbmRleCBjNjY1ZWZlLi40
YmQ1YjQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCisr
KyBiL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKQEAgLTI1LDE1ICsyNSwxNCBA
QAogKi8KICV9CiAlc3RydWN0LXR5cGUKLXN0cnVjdCBFbnRpdHkgewotICAgIGNvbnN0IGNoYXIg
Km5hbWU7Ci0gICAgaW50IGNvZGU7Ci19OwotJWxhbmd1YWdlPUFOU0ktQworc3RydWN0IEVudGl0
eTsKKyVsYW5ndWFnZT1DKysKKyVvbWl0LXN0cnVjdC10eXBlCiAlcmVhZG9ubHktdGFibGVzCiAl
Z2xvYmFsLXRhYmxlCiAlY29tcGFyZS1zdHJuY21wCi0lZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1u
YW1lIGZpbmRFbnRpdHkKKyVkZWZpbmUgY2xhc3MtbmFtZSBIVE1MRW50aXR5SGFzaAorJWRlZmlu
ZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kRW50aXR5SW1wbAogJWRlZmluZSBoYXNoLWZ1bmN0
aW9uLW5hbWUgZW50aXR5X2hhc2hfZnVuY3Rpb24KICVpbmNsdWRlcwogJWVudW0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9QcmVsb2FkU2Nhbm5lci5jcHAgYi9XZWJDb3JlL2h0bWwvUHJlbG9h
ZFNjYW5uZXIuY3BwCmluZGV4IGQzOTA5MmEuLjlmZmIzNzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9QcmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL1ByZWxvYWRTY2FubmVy
LmNwcApAQCAtMzgsMjUgKzM4LDEzIEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xz
LmgiCiAjaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgi
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KIAotLy8gVXNlIF9fR05VQ19f
IGluc3RlYWQgb2YgUExBVEZPUk0oR0NDKSB0byBzdGF5IGNvbnNpc3RlbnQgd2l0aCB0aGUgZ3Bl
cmYgZ2VuZXJhdGVkIGMgZmlsZQotI2lmZGVmIF9fR05VQ19fCi0vLyBUaGUgbWFpbiB0b2tlbml6
ZXIgaW5jbHVkZXMgdGhpcyB0b28gc28gd2UgYXJlIGdldHRpbmcgdHdvIGNvcGllcyBvZiB0aGUg
ZGF0YS4gSG93ZXZlciwgdGhpcyB3YXkgdGhlIGNvZGUgZ2V0cyBpbmxpbmVkLgotI2luY2x1ZGUg
IkhUTUxFbnRpdHlOYW1lcy5jcHAiCi0jZWxzZQotLy8gTm90IGlubGluZWQgZm9yIG5vbi1HQ0Mg
Y29tcGlsZXJzCi1zdHJ1Y3QgRW50aXR5IHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGlu
dCBjb2RlOwotfTsKLWNvbnN0IHN0cnVjdCBFbnRpdHkqIGZpbmRFbnRpdHkocmVnaXN0ZXIgY29u
c3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKLSNlbmRpZgotCiAjZGVm
aW5lIFBSRUxPQURfREVCVUcgMAogCiB1c2luZyBuYW1lc3BhY2UgV1RGOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwgYi9XZWJDb3JlL21ha2UtaGFzaC10b29scy5wbApp
bmRleCA0MmNiNmZkLi5lZDFiYmYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL21ha2UtaGFzaC10b29s
cy5wbAorKysgYi9XZWJDb3JlL21ha2UtaGFzaC10b29scy5wbApAQCAtMjYsMzUgKzI2LDE1OCBA
QCB1c2UgRmlsZTo6QmFzZW5hbWU7CiBteSAkb3V0ZGlyID0gJEFSR1ZbMF07CiBzaGlmdDsKIG15
ICRvcHRpb24gPSBiYXNlbmFtZSgkQVJHVlswXSwiLmdwZXJmIik7CitteSAkaGFzaFRvb2xzSGVh
ZGVyID0gIiRvdXRkaXIvSGFzaFRvb2xzLmgiOworCitzdWIgY3JlYXRlSGFzaFRvb2xzSGVhZGVy
KCkgeworCitvcGVuIEhFQURFUiwgIj4kaGFzaFRvb2xzSGVhZGVyIiB8fCBkaWUgIkNvdWxkIG5v
dCBvcGVuICRoYXNoVG9vbHNIZWFkZXIgZm9yIHdyaXRpbmciOworcHJpbnQgSEVBREVSIDw8ICJF
T0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFz
aC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKworI2lmbmRlZiBIYXNoVG9vbHNfaAorI2RlZmlu
ZSBIYXNoVG9vbHNfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBFbnRpdHkgewor
ICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgaW50IGNvZGU7Cit9OworCitzdHJ1Y3QgUHViSURJ
bmZvIHsKKyAgICBlbnVtIGVNb2RlIHsKKyAgICAgICAgZVF1aXJrcywKKyAgICAgICAgZVF1aXJr
czMsCisgICAgICAgIGVBbG1vc3RTdGFuZGFyZHMKKyAgICB9OworCisgICAgY29uc3QgY2hhciog
bmFtZTsKKyAgICBlTW9kZSBtb2RlX2lmX25vX3N5c2lkOworICAgIGVNb2RlIG1vZGVfaWZfc3lz
aWQ7Cit9OworCitzdHJ1Y3QgTmFtZWRDb2xvciB7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAg
ICBpbnQgUkdCVmFsdWU7Cit9OworCitzdHJ1Y3QgUHJvcGVydHkgeworICAgIGNvbnN0IGNoYXIq
IG5hbWU7CisgICAgaW50IGlkOworfTsKKworc3RydWN0IFZhbHVlIHsKKyAgICBjb25zdCBjaGFy
KiBuYW1lOworICAgIGludCBpZDsKK307CisKK2NvbnN0IEVudGl0eSogZmluZEVudGl0eShyZWdp
c3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pOworY29uc3Qg
UHViSURJbmZvKiBmaW5kRG9jdHlwZUVudHJ5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVn
aXN0ZXIgdW5zaWduZWQgaW50IGxlbik7Citjb25zdCBOYW1lZENvbG9yKiBmaW5kQ29sb3IocmVn
aXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKK2NvbnN0
IFByb3BlcnR5KiBmaW5kUHJvcGVydHkocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3Rl
ciB1bnNpZ25lZCBpbnQgbGVuKTsKK2NvbnN0IFZhbHVlKiBmaW5kVmFsdWUocmVnaXN0ZXIgY29u
c3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKKworfQorCisjZW5kaWYg
Ly8gSGFzaFRvb2xzX2gKKworRU9GCitjbG9zZSBIRUFERVI7CisKK30KKworCiAKIHN3aXRjaCAo
JG9wdGlvbikgewogCiBjYXNlICJIVE1MRW50aXR5TmFtZXMiIHsKIAotICAgIG15ICRodG1sRW50
aXR5TmFtZXNHZW5lcmF0ZWQgICA9ICIkb3V0ZGlyL0hUTUxFbnRpdHlOYW1lcy5jcHAiOworICAg
IGNyZWF0ZUhhc2hUb29sc0hlYWRlcigpOworCisgICAgbXkgJGh0bWxFbnRpdHlOYW1lc0ltcGwg
ICAgICAgID0gIiRvdXRkaXIvSFRNTEVudGl0eU5hbWVzLmNwcCI7CisgICAgbXkgJGh0bWxFbnRp
dHlOYW1lc0dlbmVyYXRlZCAgID0gIiRvdXRkaXIvSFRNTEVudGl0eU5hbWVzSGFzaC5ocHAiOwog
ICAgIG15ICRodG1sRW50aXR5TmFtZXNHcGVyZiAgICAgICA9ICRBUkdWWzBdOwogICAgIHNoaWZ0
OwogCisgICAgb3BlbiBFTlRJVElFUywgIj4kaHRtbEVudGl0eU5hbWVzSW1wbCIgfHwgZGllICJD
b3VsZCBub3Qgb3BlbiAkaHRtbEVudGl0eU5hbWVzSW1wbCBmb3Igd3JpdGluZyI7CisgICAgcHJp
bnQgRU5USVRJRVMgPDwgIkVPRiI7CisvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5l
cmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBkbyBub3QgZWRpdCAqLworCisjaW5jbHVkZSAi
SGFzaFRvb2xzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJIVE1MRW50aXR5
TmFtZXNIYXNoLmhwcCIKKworY29uc3QgRW50aXR5KiBmaW5kRW50aXR5KHJlZ2lzdGVyIGNvbnN0
IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbikKK3sKKyAgICByZXR1cm4gSFRN
TEVudGl0eUhhc2g6OmZpbmRFbnRpdHlJbXBsKHN0ciwgbGVuKTsKK30KKworfQorCitFT0YKKyAg
ICBjbG9zZSBFTlRJVElFUzsKKwogICAgIHN5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwi
KlwiIC1EIC1zIDIgJGh0bWxFbnRpdHlOYW1lc0dwZXJmID4gJGh0bWxFbnRpdHlOYW1lc0dlbmVy
YXRlZCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwogCiB9ICMgY2Fz
ZSAiSFRNTEVudGl0eU5hbWVzIgogCiBjYXNlICJEb2NUeXBlU3RyaW5ncyIgewogCi0gICAgbXkg
JGRvY1R5cGVTdHJpbmdzR2VuZXJhdGVkICAgID0gIiRvdXRkaXIvRG9jVHlwZVN0cmluZ3MuY3Bw
IjsKKyAgICBteSAkZG9jVHlwZVN0cmluZ3NJbXBsICAgICAgICAgPSAiJG91dGRpci9Eb2NUeXBl
U3RyaW5ncy5jcHAiOworICAgIG15ICRkb2NUeXBlU3RyaW5nc0dlbmVyYXRlZCAgICA9ICIkb3V0
ZGlyL0RvY1R5cGVTdHJpbmdzSGFzaC5ocHAiOwogICAgIG15ICRkb2NUeXBlU3RyaW5nc0dwZXJm
ICAgICAgICA9ICRBUkdWWzBdOwogICAgIHNoaWZ0OwogCisgICAgb3BlbiBET0NUWVBFU1RSSU5H
UywgIj4kZG9jVHlwZVN0cmluZ3NJbXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRkb2NUeXBl
U3RyaW5nc0ltcGwgZm9yIHdyaXRpbmciOworICAgIHByaW50IERPQ1RZUEVTVFJJTkdTIDw8ICJF
T0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFz
aC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKworI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiRG9jVHlwZVN0cmluZ3NIYXNoLmhwcCIKKwor
Y29uc3QgUHViSURJbmZvKiBmaW5kRG9jdHlwZUVudHJ5IChyZWdpc3RlciBjb25zdCBjaGFyKiBz
dHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7CisgICAgcmV0dXJuIERvY1R5cGVTdHJp
bmdzSGFzaDo6ZmluZERvY3R5cGVFbnRyeUltcGwoc3RyLCBsZW4pOworfQorCit9CisKK0VPRgor
ICAgIGNsb3NlIERPQ1RZUEVTVFJJTkdTOworCiAgICAgc3lzdGVtKCJncGVyZiAtLWtleS1wb3Np
dGlvbnM9XCIqXCIgLXMgMiAkZG9jVHlwZVN0cmluZ3NHcGVyZiA+ICRkb2NUeXBlU3RyaW5nc0dl
bmVyYXRlZCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwogCiB9ICMg
Y2FzZSAiRG9jVHlwZVN0cmluZ3MiCiAKIGNhc2UgIkNvbG9yRGF0YSIgewogCi0gICAgbXkgJGNv
bG9yRGF0YUdlbmVyYXRlZCAgID0gIiRvdXRkaXIvQ29sb3JEYXRhLmNwcCI7Ci0gICAgbXkgJGNv
bG9yRGF0YUdwZXJmICAgICAgID0gJEFSR1ZbMF07CisgICAgbXkgJGNvbG9yRGF0YUltcGwgICAg
ICAgICAgICAgID0gIiRvdXRkaXIvQ29sb3JEYXRhLmNwcCI7CisgICAgbXkgJGNvbG9yRGF0YUdl
bmVyYXRlZCAgICAgICAgID0gIiRvdXRkaXIvQ29sb3JEYXRhSGFzaC5ocHAiOworICAgIG15ICRj
b2xvckRhdGFHcGVyZiAgICAgICAgICAgICA9ICRBUkdWWzBdOwogICAgIHNoaWZ0OwogCisgICAg
b3BlbiBDT0xPUkRBVEEsICI+JGNvbG9yRGF0YUltcGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4g
JGNvbG9yRGF0YUltcGwgZm9yIHdyaXRpbmciOworICAgIHByaW50IENPTE9SREFUQSA8PCAiRU9G
IjsKKy8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gt
dG9vbHMucGwsIGRvIG5vdCBlZGl0ICovCisKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworI2luY2x1ZGUgIkNvbG9yRGF0YUhhc2guaHBwIgorCitjb25zdCBz
dHJ1Y3QgTmFtZWRDb2xvciogZmluZENvbG9yIChyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJl
Z2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7CisgICAgcmV0dXJuIENvbG9yRGF0YUhhc2g6OmZp
bmRDb2xvckltcGwoc3RyLCBsZW4pOworfQorCit9CisKK0VPRgorICAgIGNsb3NlIENPTE9SREFU
QTsKKwogICAgIHN5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1zIDIgJGNv
bG9yRGF0YUdwZXJmID4gJGNvbG9yRGF0YUdlbmVyYXRlZCIpID09IDAgfHwgZGllICJjYWxsaW5n
IGdwZXJmIGZhaWxlZDogJD8iOwogCiB9ICMgY2FzZSAiQ29sb3JEYXRhIgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYgYi9XZWJDb3JlL3BsYXRmb3JtL0NvbG9y
RGF0YS5ncGVyZgppbmRleCAxMWVmNzk4Li5kNjg0Y2I5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL0NvbG9yRGF0YS5ncGVyZgorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0YS5n
cGVyZgpAQCAtMSwxMyArMSwxMiBAQAogJXN0cnVjdC10eXBlCi1zdHJ1Y3QgTmFtZWRDb2xvciB7
Ci0gICAgY29uc3QgY2hhciAqbmFtZTsKLSAgICBpbnQgUkdCVmFsdWU7Ci19OwotJWxhbmd1YWdl
PUFOU0ktQworc3RydWN0IE5hbWVkQ29sb3I7Cislb21pdC1zdHJ1Y3QtdHlwZQorJWxhbmd1YWdl
PUMrKwogJXJlYWRvbmx5LXRhYmxlcwogJWdsb2JhbC10YWJsZQogJWNvbXBhcmUtc3RybmNtcAot
JWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kQ29sb3IKKyVkZWZpbmUgY2xhc3MtbmFt
ZSBDb2xvckRhdGFIYXNoCislZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRDb2xvcklt
cGwKICVkZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1lIGNvbG9yZGF0YV9oYXNoX2Z1bmN0aW9uCiAl
aW5jbHVkZXMKICVlbnVtCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCmluZGV4IDJmMmEz
NTcuLjY1NDdjMWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3Iu
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCkBAIC0yNiwxMyAr
MjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb2xvci5oIgogCisjaW5j
bHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRl
IDxtYXRoLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWF0
aEV4dHJhcy5oPgogCi0jaW5jbHVkZSAiQ29sb3JEYXRhLmNwcCIKLQogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDkwNDVhYjMuLjU4
NDM3YmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA2LTIyICBBbmRyYXMg
QmVjc2kgIDxhYmVjc2lAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciBncGVyZiBjb2RlIGdlbmVyYXRpb24gYW5kIHVz
YWdlIHRvIGZpeCB0aGUgZGVidWcgYnVpbGQgd2l0aCBnY2M+NC40LgorICAgICAgICB3ZWJraXQu
b3JnL2IvMjkyNDQKKworICAgICAgICBIaXRoZXJ0byBncGVyZiBnZW5lcmF0ZWQgQyBjb2RlLCB0
aGVzZSBmaWxlcyB3ZXJlIGluY2x1ZGVkIGluIG11bHRpcGxlIEMrKyBmaWxlcyBhY3Jvc3MgV2Vi
Q29yZQorICAgICAgICB0byBhY2Nlc3MgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQuIFRoaXMg
cmVzdWx0ZWQgaW4gZGVidWcgYnVpbGQgZmFpbHVyZSB3aXRoIG5ld2VyIGdjYyB2ZXJzaW9ucwor
ICAgICAgICBiZWNhdXNlIG9mIGEgYmVoYXZpb3VyIGNoYW5nZSBvZiBnY2MsIHdoaWNoIGRpc2Fi
bGVzIEMgc3R5bGUgaW5saW5pbmcgaW4gZGVidWcgbW9kZS4KKyAgICAgICAgVGhlIG1ha2UtaGFz
aC10b29scy5wbCBzY3JpcHQgbGV0cyBncGVyZiBnZW5lcmF0ZSBDKysgY29kZSBmb3IgYWxsIGdw
ZXJmIGZpbGVzIG5vdywgd2hpY2ggYXJlIGNvbXBpbGVkCisgICAgICAgIGluIHRoZWlyIG93biBj
b21waWxhdGlvbiB1bml0LgorICAgICAgICBUaGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSB0
aGUgZ2VuZXJhdGVkIGNvZGUgaXMgd3JhcHBlZCBiZWhpbmQgSGFzaFRvb2xzLmgsIHNvIHRoZXJl
IGlzIG5vIG5lZWQKKyAgICAgICAgZm9yIG11bHRpcGxlIGluY2x1c2lvbnMgb2YgZ2VuZXJhdGVk
IEMgZmlsZXMgdG8gYWNjZXNzIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgICAgICAqIHNyYy9XZWJF
bnRpdGllcy5jcHA6CisKIDIwMTAtMDYtMjEgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2ds
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFbnRpdGllcy5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkVudGl0aWVzLmNwcAppbmRleCAyYjhhZTNjLi40YjQ4MzYwIDEwMDY0NAotLS0gYS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkVudGl0aWVzLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkVudGl0aWVzLmNwcApAQCAtMzEsOSArMzEsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIldlYkVudGl0aWVzLmgiCiAKLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQorI2luY2x1
ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8
c3RyaW5nLmg+CiAjaW5jbHVkZSAiU3RyaW5nQnVpbGRlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAKQEAgLTQxLDE1ICs0MSw2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
Ci1uYW1lc3BhY2UgewotLy8gTm90ZSB0aGF0IHRoaXMgZmlsZSBpcyBhbHNvIGluY2x1ZGVkIGJ5
IEhUTUxEb2N1bWVudFBhcnNlci5jcHAgc28gd2UgYXJlIGdldHRpbmcKLS8vIHR3byBjb3BpZXMg
b2YgdGhlIGRhdGEgaW4gbWVtb3J5LiAgV2UgY2FuIGZpeCB0aGlzIGJ5IGNoYW5naW5nIHRoZSBz
Y3JpcHQKLS8vIHRoYXQgZ2VuZXJhdGVkIHRoZSBhcnJheSB0byBjcmVhdGUgYSBzdGF0aWMgY29u
c3QgdGhhdCBpcyBpdHMgbGVuZ3RoLCBidXQKLS8vIHRoaXMgaXMgbG93IHByaW9yaXR5IHNpbmNl
IHRoZSBkYXRhIGlzIGxlc3MgdGhhbiA0Sy4gV2UgdXNlIGFub255bW91cwotLy8gbmFtZXNwYWNl
IHRvIHByZXZlbnQgbmFtZSBjb2xsaXNpb25zLgotI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5j
cHAiIC8vIE5PTElOVAotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBwb3B1bGF0ZU1h
cChXVEY6Okhhc2hNYXA8aW50LCBXZWJDb3JlOjpTdHJpbmc+JiBtYXAsCmRpZmYgLS1naXQgYS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAxMzQ1NzdmLi5m
MjU3MmMzIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNi0yMiAgQW5kcmFzIEJlY3NpICA8YWJl
Y3NpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVmYWN0b3IgZ3BlcmYgY29kZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0byBmaXgg
dGhlIGRlYnVnIGJ1aWxkIHdpdGggZ2NjPjQuNC4KKyAgICAgICAgd2Via2l0Lm9yZy9iLzI5MjQ0
CisKKyAgICAgICAgSGl0aGVydG8gZ3BlcmYgZ2VuZXJhdGVkIEMgY29kZSwgdGhlc2UgZmlsZXMg
d2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBDKysgZmlsZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAg
ICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGlu
IGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBuZXdlciBnY2MgdmVyc2lvbnMKKyAgICAgICAgYmVj
YXVzZSBvZiBhIGJlaGF2aW91ciBjaGFuZ2Ugb2YgZ2NjLCB3aGljaCBkaXNhYmxlcyBDIHN0eWxl
IGlubGluaW5nIGluIGRlYnVnIG1vZGUuCisgICAgICAgIFRoZSBtYWtlLWhhc2gtdG9vbHMucGwg
c2NyaXB0IGxldHMgZ3BlcmYgZ2VuZXJhdGUgQysrIGNvZGUgZm9yIGFsbCBncGVyZiBmaWxlcyBu
b3csIHdoaWNoIGFyZSBjb21waWxlZAorICAgICAgICBpbiB0aGVpciBvd24gY29tcGlsYXRpb24g
dW5pdC4KKyAgICAgICAgVGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgdGhlIGdlbmVyYXRl
ZCBjb2RlIGlzIHdyYXBwZWQgYmVoaW5kIEhhc2hUb29scy5oLCBzbyB0aGVyZSBpcyBubyBuZWVk
CisgICAgICAgIGZvciBtdWx0aXBsZSBpbmNsdXNpb25zIG9mIGdlbmVyYXRlZCBDIGZpbGVzIHRv
IGFjY2VzcyB0aGVzZSBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
UXQ6OmNyZWF0ZVBsdWdpbik6CisKIDIwMTAtMDYtMjEgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gQnVpbGQgZml4IGZvciBRdCBvbiBXaW5kb3dzIE1T
VkMyMDA4CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5jcHAKaW5kZXggNDJiMGM0OS4uYzYwOWUzNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMTMyMiw3ICsxMzIyLDcgQEAgUGFz
c1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbihjb25zdCBJ
bnRTaXplJiBwbHVnaW5TaXplLAogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG51bXFTdHlsZVNoZWV0UHJvcGVydGllczsgKytpKSB7CiAgICAgICAgICAgICAgICAgQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eSA9IHFzdHlsZVNoZWV0UHJvcGVydGllc1tpXTsKIAotICAgICAgICAg
ICAgICAgIHN0eWxlU2hlZXQgKz0gUVN0cmluZzo6ZnJvbUxhdGluMSg6OmdldFByb3BlcnR5TmFt
ZShwcm9wZXJ0eSkpOworICAgICAgICAgICAgICAgIHN0eWxlU2hlZXQgKz0gUVN0cmluZzo6ZnJv
bUxhdGluMShnZXRQcm9wZXJ0eU5hbWUocHJvcGVydHkpKTsKICAgICAgICAgICAgICAgICBzdHls
ZVNoZWV0ICs9IFFMYXRpbjFDaGFyKCc6Jyk7CiAgICAgICAgICAgICAgICAgc3R5bGVTaGVldCAr
PSBjb21wdXRlZFN0eWxlKGVsZW1lbnQpLT5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKICAg
ICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9IFFMYXRpbjFDaGFyKCc7Jyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59373</attachid>
            <date>2010-06-22 08:42:02 -0700</date>
            <delta_ts>2010-06-23 11:27:25 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>26664</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MTYxNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTAtMDYtMjIgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
ZmFjdG9yIGdwZXJmIGNvZGUgZ2VuZXJhdGlvbiBhbmQgdXNhZ2UgdG8gZml4IHRoZSBkZWJ1ZyBi
dWlsZCB3aXRoIGdjYz40LjQuCisgICAgICAgIHdlYmtpdC5vcmcvYi8yOTI0NAorCisgICAgICAg
IEhpdGhlcnRvIGdwZXJmIGdlbmVyYXRlZCBDIGNvZGUsIHRoZXNlIGZpbGVzIHdlcmUgaW5jbHVk
ZWQgaW4gbXVsdGlwbGUgQysrIGZpbGVzIGFjcm9zcyBXZWJDb3JlCisgICAgICAgIHRvIGFjY2Vz
cyB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZC4gVGhpcyByZXN1bHRlZCBpbiBkZWJ1ZyBidWls
ZCBmYWlsdXJlIHdpdGggbmV3ZXIgZ2NjIHZlcnNpb25zCisgICAgICAgIGJlY2F1c2Ugb2YgYSBi
ZWhhdmlvdXIgY2hhbmdlIG9mIGdjYywgd2hpY2ggZGlzYWJsZXMgQyBzdHlsZSBpbmxpbmluZyBp
biBkZWJ1ZyBtb2RlLgorICAgICAgICBUaGUgbWFrZS1oYXNoLXRvb2xzLnBsIHNjcmlwdCBsZXRz
IGdwZXJmIGdlbmVyYXRlIEMrKyBjb2RlIGZvciBhbGwgZ3BlcmYgZmlsZXMgbm93LCB3aGljaCBh
cmUgY29tcGlsZWQKKyAgICAgICAgaW4gdGhlaXIgb3duIGNvbXBpbGF0aW9uIHVuaXQuCisgICAg
ICAgIFRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoZSBnZW5lcmF0ZWQgY29kZSBpcyB3
cmFwcGVkIGJlaGluZCBIYXNoVG9vbHMuaCwgc28gdGhlcmUgaXMgbm8gbmVlZAorICAgICAgICBm
b3IgbXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQgQyBmaWxlcyB0byBhY2Nlc3MgdGhl
c2UgZnVuY3Rpb25zLgorCisgICAgICAgIE5vIG5ldyBmdW5jdGlvbmFsaXR5IGFkZGVkLCBubyBu
ZXcgdGVzdHMgbmVlZGVkLgorCisgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIu
Y3BwOgorICAgICAgICAqIGNzcy9tYWtlcHJvcC5wbDoKKyAgICAgICAgKiBjc3MvbWFrZXZhbHVl
cy5wbDoKKyAgICAgICAgKiBodG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmOgorICAgICAgICAqIGh0
bWwvSFRNTDVFbnRpdHlQYXJzZXIuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50LmNw
cDoKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgICogaHRt
bC9IVE1MRW50aXR5TmFtZXMuZ3BlcmY6CisgICAgICAgICogaHRtbC9QcmVsb2FkU2Nhbm5lci5j
cHA6CisgICAgICAgICogbWFrZS1oYXNoLXRvb2xzLnBsOgorICAgICAgICAqIHBsYXRmb3JtL0Nv
bG9yRGF0YS5ncGVyZjoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHA6CisK
IDIwMTAtMDYtMjIgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KSW5kZXg6IFdlYkNvcmUvV2ViQ29y
ZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnByaQkocmV2aXNpb24gNjE2MTcp
CisrKyBXZWJDb3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNvcHkpCkBAIC02ODEsNyArNjgxLDcg
QEAgY3NzcHJvcHMud2tTY3JpcHQgPSAkJFBXRC9jc3MvbWFrZXByb3AucAogY3NzcHJvcHMub3V0
cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmNwcAog
Y3NzcHJvcHMuaW5wdXQgPSBXQUxET0NTU1BST1BTCiBjc3Nwcm9wcy5jb21tYW5kcyA9IHBlcmwg
LW5lIFwicHJpbnQgbGNcIiAke1FNQUtFX0ZJTEVfTkFNRX0gJCR7REFTSEJPQVJEU1VQUE9SVENT
U1BST1BFUlRJRVN9ICQke0VYVFJBQ1NTUFJPUEVSVElFU30gPiAkJHtXQ19HRU5FUkFURURfU09V
UkNFU19ESVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5pbiAmJiBjZCAkJFdDX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUiAmJiBwZXJsICQkY3NzcHJvcHMud2tTY3JpcHQgJiYgJChERUxfRklMRSkgJHtRTUFL
RV9GSUxFX0JBU0V9LmluICR7UU1BS0VfRklMRV9CQVNFfS5ncGVyZgotY3NzcHJvcHMuZGVwZW5k
cyA9ICR7UU1BS0VfRklMRV9OQU1FfSAkJHtEQVNIQk9BUkRTVVBQT1JUQ1NTUFJPUEVSVElFU30g
JCR7RVhUUkFDU1NQUk9QRVJUSUVTfQorY3NzcHJvcHMuZGVwZW5kcyA9ICR7UU1BS0VfRklMRV9O
QU1FfSAkJHtEQVNIQk9BUkRTVVBQT1JUQ1NTUFJPUEVSVElFU30gJCR7RVhUUkFDU1NQUk9QRVJU
SUVTfSAkJGNzc3Byb3BzLndrU2NyaXB0CiBhZGRFeHRyYUNvbXBpbGVyKGNzc3Byb3BzKQogCiAj
IEdFTkVSQVRPUiA2LUI6CkBAIC02ODksNyArNjg5LDcgQEAgY3NzdmFsdWVzLndrU2NyaXB0ID0g
JCRQV0QvY3NzL21ha2V2YWx1ZQogY3NzdmFsdWVzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9T
T1VSQ0VTX0RJUn0vQ1NTVmFsdWVLZXl3b3Jkcy5jcHAKIGNzc3ZhbHVlcy5pbnB1dCA9IFdBTERP
Q1NTVkFMVUVTCiBjc3N2YWx1ZXMuY29tbWFuZHMgPSBwZXJsIC1uZSBcInByaW50IGxjXCIgJHtR
TUFLRV9GSUxFX05BTUV9ICQkRVhUUkFDU1NWQUxVRVMgPiAkJHtXQ19HRU5FUkFURURfU09VUkNF
U19ESVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5pbiAmJiBjZCAkJFdDX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUiAmJiBwZXJsICQkY3NzdmFsdWVzLndrU2NyaXB0ICYmICQoREVMX0ZJTEUpICR7UU1BS0Vf
RklMRV9CQVNFfS5pbiAke1FNQUtFX0ZJTEVfQkFTRX0uZ3BlcmYKLWNzc3ZhbHVlcy5kZXBlbmRz
ID0gJHtRTUFLRV9GSUxFX05BTUV9ICQke0VYVFJBQ1NTVkFMVUVTfQorY3NzdmFsdWVzLmRlcGVu
ZHMgPSAke1FNQUtFX0ZJTEVfTkFNRX0gJCR7RVhUUkFDU1NWQUxVRVN9ICQkY3NzdmFsdWVzLndr
U2NyaXB0CiBjc3N2YWx1ZXMuY2xlYW4gPSAke1FNQUtFX0ZJTEVfT1VUfSAke1FNQUtFX1ZBUl9X
Q19HRU5FUkFURURfU09VUkNFU19ESVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5oCiBhZGRFeHRyYUNv
bXBpbGVyKGNzc3ZhbHVlcykKIApJbmRleDogV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwJKHJldmlzaW9uIDYxNjE3KQor
KysgV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDM1ICsy
NiwxNzIgQEAgdXNlIEZpbGU6OkJhc2VuYW1lOwogbXkgJG91dGRpciA9ICRBUkdWWzBdOwogc2hp
ZnQ7CiBteSAkb3B0aW9uID0gYmFzZW5hbWUoJEFSR1ZbMF0sIi5ncGVyZiIpOworbXkgJGhhc2hU
b29sc0hlYWRlciA9ICIkb3V0ZGlyL0hhc2hUb29scy5oIjsKKworc3ViIGNyZWF0ZUhhc2hUb29s
c0hlYWRlcigpIHsKKworb3BlbiBIRUFERVIsICI+JGhhc2hUb29sc0hlYWRlciIgfHwgZGllICJD
b3VsZCBub3Qgb3BlbiAkaGFzaFRvb2xzSGVhZGVyIGZvciB3cml0aW5nIjsKK3ByaW50IEhFQURF
UiA8PCAiRU9GIjsKKy8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBt
YWtlLWhhc2gtdG9vbHMucGwsIGRvIG5vdCBlZGl0ICovCisKKyNpZm5kZWYgSGFzaFRvb2xzX2gK
KyNkZWZpbmUgSGFzaFRvb2xzX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRW50
aXR5IHsKKyAgICBjb25zdCBjaGFyKiBuYW1lOworICAgIGludCBjb2RlOworfTsKKworc3RydWN0
IFB1YklESW5mbyB7CisgICAgZW51bSBlTW9kZSB7CisgICAgICAgIGVRdWlya3MsCisgICAgICAg
IGVRdWlya3MzLAorICAgICAgICBlQWxtb3N0U3RhbmRhcmRzCisgICAgfTsKKworICAgIGNvbnN0
IGNoYXIqIG5hbWU7CisgICAgZU1vZGUgbW9kZV9pZl9ub19zeXNpZDsKKyAgICBlTW9kZSBtb2Rl
X2lmX3N5c2lkOworfTsKKworc3RydWN0IE5hbWVkQ29sb3IgeworICAgIGNvbnN0IGNoYXIqIG5h
bWU7CisgICAgaW50IFJHQlZhbHVlOworfTsKKworc3RydWN0IFByb3BlcnR5IHsKKyAgICBjb25z
dCBjaGFyKiBuYW1lOworICAgIGludCBpZDsKK307CisKK3N0cnVjdCBWYWx1ZSB7CisgICAgY29u
c3QgY2hhciogbmFtZTsKKyAgICBpbnQgaWQ7Cit9OworCitjb25zdCBFbnRpdHkqIGZpbmRFbnRp
dHkocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsK
K2NvbnN0IFB1YklESW5mbyogZmluZERvY3R5cGVFbnRyeShyZWdpc3RlciBjb25zdCBjaGFyKiBz
dHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pOworY29uc3QgTmFtZWRDb2xvciogZmluZENv
bG9yKHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbik7
Citjb25zdCBQcm9wZXJ0eSogZmluZFByb3BlcnR5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwg
cmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbik7Citjb25zdCBWYWx1ZSogZmluZFZhbHVlKHJlZ2lz
dGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbik7CisKKy8vIE5l
ZWRlZCBieSBDaHJvbWl1bQorY29uc3QgRW50aXR5KiB3b3JkTGlzdCgpOworY29uc3QgaW50IHdv
cmRMaXN0U2l6ZSgpOworCit9CisKKyNlbmRpZiAvLyBIYXNoVG9vbHNfaAorCitFT0YKK2Nsb3Nl
IEhFQURFUjsKKworfQorCisKIAogc3dpdGNoICgkb3B0aW9uKSB7CiAKIGNhc2UgIkhUTUxFbnRp
dHlOYW1lcyIgewogCi0gICAgbXkgJGh0bWxFbnRpdHlOYW1lc0dlbmVyYXRlZCAgID0gIiRvdXRk
aXIvSFRNTEVudGl0eU5hbWVzLmNwcCI7CisgICAgY3JlYXRlSGFzaFRvb2xzSGVhZGVyKCk7CisK
KyAgICBteSAkaHRtbEVudGl0eU5hbWVzSW1wbCAgICAgICAgPSAiJG91dGRpci9IVE1MRW50aXR5
TmFtZXMuY3BwIjsKKyAgICBteSAkaHRtbEVudGl0eU5hbWVzR2VuZXJhdGVkICAgPSAiJG91dGRp
ci9IVE1MRW50aXR5TmFtZXNIYXNoLmhwcCI7CiAgICAgbXkgJGh0bWxFbnRpdHlOYW1lc0dwZXJm
ICAgICAgID0gJEFSR1ZbMF07CiAgICAgc2hpZnQ7CiAKKyAgICBvcGVuIEVOVElUSUVTLCAiPiRo
dG1sRW50aXR5TmFtZXNJbXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRodG1sRW50aXR5TmFt
ZXNJbXBsIGZvciB3cml0aW5nIjsKKyAgICBwcmludCBFTlRJVElFUyA8PCAiRU9GIjsKKy8qIFRo
aXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGws
IGRvIG5vdCBlZGl0ICovCisKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lc0hhc2guaHBwIgorCitjb25zdCBFbnRp
dHkqIGZpbmRFbnRpdHkocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25l
ZCBpbnQgbGVuKQoreworICAgIHJldHVybiBIVE1MRW50aXR5SGFzaDo6ZmluZEVudGl0eUltcGwo
c3RyLCBsZW4pOworfQorCitjb25zdCBFbnRpdHkqIHdvcmRMaXN0KCkKK3sKKyAgICByZXR1cm4g
V2ViQ29yZTo6d29yZGxpc3Q7Cit9CisKK2NvbnN0IGludCB3b3JkTGlzdFNpemUoKQoreworICAg
IHJldHVybiBzaXplb2YoV2ViQ29yZTo6d29yZGxpc3QpIC8gc2l6ZW9mKEVudGl0eSk7Cit9CisK
K30KKworRU9GCisgICAgY2xvc2UgRU5USVRJRVM7CisKICAgICBzeXN0ZW0oImdwZXJmIC0ta2V5
LXBvc2l0aW9ucz1cIipcIiAtRCAtcyAyICRodG1sRW50aXR5TmFtZXNHcGVyZiA+ICRodG1sRW50
aXR5TmFtZXNHZW5lcmF0ZWQiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/
IjsKIAogfSAjIGNhc2UgIkhUTUxFbnRpdHlOYW1lcyIKIAogY2FzZSAiRG9jVHlwZVN0cmluZ3Mi
IHsKIAotICAgIG15ICRkb2NUeXBlU3RyaW5nc0dlbmVyYXRlZCAgICA9ICIkb3V0ZGlyL0RvY1R5
cGVTdHJpbmdzLmNwcCI7CisgICAgbXkgJGRvY1R5cGVTdHJpbmdzSW1wbCAgICAgICAgID0gIiRv
dXRkaXIvRG9jVHlwZVN0cmluZ3MuY3BwIjsKKyAgICBteSAkZG9jVHlwZVN0cmluZ3NHZW5lcmF0
ZWQgICAgPSAiJG91dGRpci9Eb2NUeXBlU3RyaW5nc0hhc2guaHBwIjsKICAgICBteSAkZG9jVHlw
ZVN0cmluZ3NHcGVyZiAgICAgICAgPSAkQVJHVlswXTsKICAgICBzaGlmdDsKIAorICAgIG9wZW4g
RE9DVFlQRVNUUklOR1MsICI+JGRvY1R5cGVTdHJpbmdzSW1wbCIgfHwgZGllICJDb3VsZCBub3Qg
b3BlbiAkZG9jVHlwZVN0cmluZ3NJbXBsIGZvciB3cml0aW5nIjsKKyAgICBwcmludCBET0NUWVBF
U1RSSU5HUyA8PCAiRU9GIjsKKy8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRl
ZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5vdCBlZGl0ICovCisKKyNpbmNsdWRlICJIYXNo
VG9vbHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworI2luY2x1ZGUgIkRvY1R5cGVTdHJpbmdz
SGFzaC5ocHAiCisKK2NvbnN0IFB1YklESW5mbyogZmluZERvY3R5cGVFbnRyeSAocmVnaXN0ZXIg
Y29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHJldHVy
biBEb2NUeXBlU3RyaW5nc0hhc2g6OmZpbmREb2N0eXBlRW50cnlJbXBsKHN0ciwgbGVuKTsKK30K
KworfQorCitFT0YKKyAgICBjbG9zZSBET0NUWVBFU1RSSU5HUzsKKwogICAgIHN5c3RlbSgiZ3Bl
cmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1zIDIgJGRvY1R5cGVTdHJpbmdzR3BlcmYgPiAkZG9j
VHlwZVN0cmluZ3NHZW5lcmF0ZWQiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6
ICQ/IjsKIAogfSAjIGNhc2UgIkRvY1R5cGVTdHJpbmdzIgogCiBjYXNlICJDb2xvckRhdGEiIHsK
IAotICAgIG15ICRjb2xvckRhdGFHZW5lcmF0ZWQgICA9ICIkb3V0ZGlyL0NvbG9yRGF0YS5jcHAi
OwotICAgIG15ICRjb2xvckRhdGFHcGVyZiAgICAgICA9ICRBUkdWWzBdOworICAgIG15ICRjb2xv
ckRhdGFJbXBsICAgICAgICAgICAgICA9ICIkb3V0ZGlyL0NvbG9yRGF0YS5jcHAiOworICAgIG15
ICRjb2xvckRhdGFHZW5lcmF0ZWQgICAgICAgICA9ICIkb3V0ZGlyL0NvbG9yRGF0YUhhc2guaHBw
IjsKKyAgICBteSAkY29sb3JEYXRhR3BlcmYgICAgICAgICAgICAgPSAkQVJHVlswXTsKICAgICBz
aGlmdDsKIAorICAgIG9wZW4gQ09MT1JEQVRBLCAiPiRjb2xvckRhdGFJbXBsIiB8fCBkaWUgIkNv
dWxkIG5vdCBvcGVuICRjb2xvckRhdGFJbXBsIGZvciB3cml0aW5nIjsKKyAgICBwcmludCBDT0xP
UkRBVEEgPDwgIkVPRiI7CisvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQg
YnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBkbyBub3QgZWRpdCAqLworCisjaW5jbHVkZSAiSGFzaFRv
b2xzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJDb2xvckRhdGFIYXNoLmhw
cCIKKworY29uc3Qgc3RydWN0IE5hbWVkQ29sb3IqIGZpbmRDb2xvciAocmVnaXN0ZXIgY29uc3Qg
Y2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHJldHVybiBDb2xv
ckRhdGFIYXNoOjpmaW5kQ29sb3JJbXBsKHN0ciwgbGVuKTsKK30KKworfQorCitFT0YKKyAgICBj
bG9zZSBDT0xPUkRBVEE7CisKICAgICBzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipc
IiAtRCAtcyAyICRjb2xvckRhdGFHcGVyZiA+ICRjb2xvckRhdGFHZW5lcmF0ZWQiKSA9PSAwIHx8
IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKIAogfSAjIGNhc2UgIkNvbG9yRGF0YSIK
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biA2MTYxNykKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0zNzMsNiArMzczLDExIEBACiAJCTFBNTY5RDIzMEQ3RTJCODIwMDdD
Mzk4MyAvKiBydW50aW1lX29iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUE1NjlDRjQwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfb2JqZWN0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUE1
NjlEMjQwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfcm9vdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTU2OUNGNTBEN0UyQjgyMDA3QzM5ODMg
LyogcnVudGltZV9yb290LmNwcCAqLzsgfTsKIAkJMUE1NjlEMjUwRDdFMkI4MjAwN0MzOTgzIC8q
IHJ1bnRpbWVfcm9vdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUE1NjlDRjYwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfcm9vdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFBNjc2RTVEMTFDRkMz
RTAwMDJGODVENSAvKiBIVE1MRW50aXR5TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwNkY0MDIxMTk4MzI5QTAwOUQ1OUQ2IC8qIEhUTUxF
bnRpdHlOYW1lcy5jcHAgKi87IH07CisJCTFBNjc2RTVFMTFDRkMzRTYwMDJGODVENSAvKiBDU1NW
YWx1ZUtleXdvcmRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU0MUVBMDM5MTE5ODM3NDkwMDcxMEJDNSAvKiBDU1NWYWx1ZUtleXdvcmRzLmNwcCAq
LzsgfTsKKwkJMUE2NzZFNjAxMUNGQzNFRTAwMkY4NUQ1IC8qIENvbG9yRGF0YS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDA2RjNGQjExOTgzMDdE
MDA5RDU5RDYgLyogQ29sb3JEYXRhLmNwcCAqLzsgfTsKKwkJMUE2NzZFNjExMUNGQzNGQjAwMkY4
NUQ1IC8qIENTU1Byb3BlcnR5TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTQxRUEwMzgxMTk4MzZEQjAwNzEwQkM1IC8qIENTU1Byb3BlcnR5
TmFtZXMuY3BwICovOyB9OworCQkxQTY3NkU2MjExQ0ZDNDA4MDAyRjg1RDUgLyogRG9jVHlwZVN0
cmluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTQwNkYzRkExMTk4MzA0RDAwOUQ1OUQ2IC8qIERvY1R5cGVTdHJpbmdzLmNwcCAqLzsgfTsKIAkJ
MUE2OTM4MDEwQTExMTAwQTAwQzEyN0ZFIC8qIFRleHREb2N1bWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTY5MzdGRjBBMTExMDBBMDBDMTI3
RkUgLyogVGV4dERvY3VtZW50LmNwcCAqLzsgfTsKIAkJMUE2OTM4MDIwQTExMTAwQTAwQzEyN0ZF
IC8qIFRleHREb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUE2OTM4MDAwQTExMTAwQTAwQzEyN0ZFIC8qIFRleHREb2N1bWVudC5oICovOyB9
OwogCQkxQTcxRDU3QjBGMzM4MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTcxRDU3OTBGMzM4MTkw
MDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5jcHAgKi87IH07CkBAIC0yMTgxNSw2ICsyMTgyMCwx
MSBAQAogCQkJCTIwMEIxOTA5MTFDMjc3RDkwMERDQ0QzQSAvKiBTY3JpcHRCcmVha3BvaW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBRDhGODFDMTFDQUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjUyNUE5NjYxMUNBMjM0MDAwM0Ey
M0E4IC8qIEpTU1FMRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBNjc2RTVEMTFD
RkMzRTAwMDJGODVENSAvKiBIVE1MRW50aXR5TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MUE2NzZFNUUxMUNGQzNFNjAwMkY4NUQ1IC8qIENTU1ZhbHVlS2V5d29yZHMuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMUE2NzZFNjAxMUNGQzNFRTAwMkY4NUQ1IC8qIENvbG9yRGF0YS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkxQTY3NkU2MTExQ0ZDM0ZCMDAyRjg1RDUgLyogQ1NTUHJvcGVydHlO
YW1lcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQTY3NkU2MjExQ0ZDNDA4MDAyRjg1RDUgLyog
RG9jVHlwZVN0cmluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHJldmlz
aW9uIDYxNjE3KQorKysgV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjEsNiArNjEsNyBAQAogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUg
IkZvbnRGYW1pbHlWYWx1ZS5oIgogI2luY2x1ZGUgIkZvbnRWYWx1ZS5oIgorI2luY2x1ZGUgIkhh
c2hUb29scy5oIgogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlF
eHAuaCIKICNpbmNsdWRlICJQYWlyLmgiCkBAIC04OCw5ICs4OSw2IEBAIGV4dGVybiBpbnQgY3Nz
eXlwYXJzZSh2b2lkKiBwYXJzZXIpOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHVzaW5nIG5hbWVz
cGFjZSBXVEY7CiAKLSNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmNwcCIKLSNpbmNsdWRlICJD
U1NWYWx1ZUtleXdvcmRzLmNwcCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29u
c3QgdW5zaWduZWQgSU5WQUxJRF9OVU1fUEFSU0VEX1BST1BFUlRJRVMgPSBVSU5UX01BWDsKSW5k
ZXg6IFdlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL21h
a2Vwcm9wLnBsCShyZXZpc2lvbiA2MTYxNykKKysrIFdlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCSh3
b3JraW5nIGNvcHkpCkBAIC00MSwxNSArNDEsMTQgQEAgcHJpbnQgR1BFUkYgPDwgIkVPRiI7CiAj
aW5jbHVkZSBcIkNTU1Byb3BlcnR5TmFtZXMuaFwiCiAlfQogJXN0cnVjdC10eXBlCi1zdHJ1Y3Qg
UHJvcGVydHkgewotICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgaW50IGlkOwotfTsKLSVsYW5n
dWFnZT1BTlNJLUMKK3N0cnVjdCBQcm9wZXJ0eTsKKyVvbWl0LXN0cnVjdC10eXBlCislbGFuZ3Vh
Z2U9QysrCiAlcmVhZG9ubHktdGFibGVzCiAlZ2xvYmFsLXRhYmxlCiAlY29tcGFyZS1zdHJuY21w
Ci0lZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRQcm9wZXJ0eQorJWRlZmluZSBjbGFz
cy1uYW1lIENTU1Byb3BlcnR5TmFtZXNIYXNoCislZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1l
IGZpbmRQcm9wZXJ0eUltcGwKICVkZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1lIHByb3BlcnlfaGFz
aF9mdW5jdGlvbgogJWRlZmluZSB3b3JkLWFycmF5LW5hbWUgcHJvcGVydHlfd29yZGxpc3QKICVp
bmNsdWRlcwpAQCAtNzIsNiArNzEsMTAgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogI2lmbmRl
ZiBDU1NQcm9wZXJ0eU5hbWVzX2gKICNkZWZpbmUgQ1NTUHJvcGVydHlOYW1lc19oCiAKKyNpbmNs
dWRlIDxzdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCiBlbnVtIENTU1Byb3BlcnR5
SUQgewogICAgIENTU1Byb3BlcnR5SW52YWxpZCA9IDAsCiBFT0YKQEAgLTk5LDE1ICsxMDIsMTcg
QEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogCiBjb25zdCBjaGFyKiBnZXRQcm9wZXJ0eU5hbWUo
Q1NTUHJvcGVydHlJRCk7CiAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwogI2VuZGlmIC8vIENT
U1Byb3BlcnR5TmFtZXNfaAogCiBFT0YKIAogY2xvc2UgSEVBREVSOwogCi1zeXN0ZW0oImdwZXJm
IC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtbiAtcyAyIENTU1Byb3BlcnR5TmFtZXMuZ3BlcmYg
PiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxl
ZDogJD8iOworc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLW4gLXMgMiBD
U1NQcm9wZXJ0eU5hbWVzLmdwZXJmID4gQ1NTUHJvcGVydHlOYW1lc0hhc2guaHBwIikgPT0gMCB8
fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKLW9wZW4gQywgIj4+Q1NTUHJvcGVy
dHlOYW1lcy5jcHAiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTUHJvcGVydHlOYW1lcy5jcHAg
Zm9yIHdyaXRpbmciOworb3BlbiBDLCAiPj5DU1NQcm9wZXJ0eU5hbWVzSGFzaC5ocHAiIHx8IGRp
ZSAiQ291bGQgbm90IG9wZW4gQ1NTUHJvcGVydHlOYW1lc0hhc2guaHBwIGZvciB3cml0aW5nIjsK
IHByaW50IEMgInN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcHJvcGVydHlOYW1lU3RyaW5nc1sk
bnVtXSA9IHtcbiI7CiAKIGZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgewpAQCAtMTE2LDYgKzEy
MSwyOSBAQCBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKIAogcHJpbnQgQyA8PCAiRU9GIjsK
IH07CisKK0VPRgorCitjbG9zZSBDOworCitteSAkcHJvcGVydHlOYW1lc0ltcGwgPSAiQ1NTUHJv
cGVydHlOYW1lcy5jcHAiOworCitvcGVuIFBST1BFUlRZTkFNRVMsICI+JHByb3BlcnR5TmFtZXNJ
bXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRwcm9wZXJ0eU5hbWVzSW1wbCBmb3Igd3JpdGlu
ZyI7CitwcmludCBQUk9QRVJUWU5BTUVTIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9t
YXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8K
KworCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lc0hhc2gu
aHBwIgorCitjb25zdCBQcm9wZXJ0eSogZmluZFByb3BlcnR5IChyZWdpc3RlciBjb25zdCBjaGFy
KiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7CisgICAgcmV0dXJuIENTU1Byb3Bl
cnR5TmFtZXNIYXNoOjpmaW5kUHJvcGVydHlJbXBsKHN0ciwgbGVuKTsKK30KKwogY29uc3QgY2hh
ciogZ2V0UHJvcGVydHlOYW1lKENTU1Byb3BlcnR5SUQgaWQpCiB7CiAgICAgaWYgKGlkIDwgZmly
c3RDU1NQcm9wZXJ0eSkKQEAgLTEyNSw3ICsxNTMsMTAgQEAgY29uc3QgY2hhciogZ2V0UHJvcGVy
dHlOYW1lKENTU1Byb3BlcnR5SQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gcHJvcGVy
dHlOYW1lU3RyaW5nc1tpbmRleF07CiB9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwogRU9G
CiAKLWNsb3NlIEM7CitjbG9zZSBQUk9QRVJUWU5BTUVTOwogCkluZGV4OiBXZWJDb3JlL2Nzcy9t
YWtldmFsdWVzLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwJKHJl
dmlzaW9uIDYxNjE3KQorKysgV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAkod29ya2luZyBjb3B5
KQpAQCAtNDIsMTQgKzQyLDEzIEBAIHByaW50IEdQRVJGIDw8ICJFT0YiOwogI2luY2x1ZGUgXCJD
U1NWYWx1ZUtleXdvcmRzLmhcIgogJX0KICVzdHJ1Y3QtdHlwZQotc3RydWN0IFZhbHVlIHsKLSAg
ICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGludCBpZDsKLX07Ci0lbGFuZ3VhZ2U9QU5TSS1DCitz
dHJ1Y3QgVmFsdWU7Cislb21pdC1zdHJ1Y3QtdHlwZQorJWxhbmd1YWdlPUMrKwogJXJlYWRvbmx5
LXRhYmxlcwogJWNvbXBhcmUtc3RybmNtcAotJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBm
aW5kVmFsdWUKKyVkZWZpbmUgY2xhc3MtbmFtZSBDU1NWYWx1ZUtleXdvcmRzSGFzaAorJWRlZmlu
ZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kVmFsdWVJbXBsCiAlZGVmaW5lIGhhc2gtZnVuY3Rp
b24tbmFtZSB2YWx1ZV9oYXNoX2Z1bmN0aW9uCiAlZGVmaW5lIHdvcmQtYXJyYXktbmFtZSB2YWx1
ZV93b3JkX2xpc3QKICVpbmNsdWRlcwpAQCAtNzIsNiArNzEsMTAgQEAgcHJpbnQgSEVBREVSIDw8
ICJFT0YiOwogI2lmbmRlZiBDU1NWYWx1ZUtleXdvcmRzX2gKICNkZWZpbmUgQ1NTVmFsdWVLZXl3
b3Jkc19oCiAKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCiBj
b25zdCBpbnQgQ1NTVmFsdWVJbnZhbGlkID0gMDsKIEVPRgogCkBAIC05MiwxMyArOTUsMTYgQEAg
cHJpbnQgSEVBREVSIDw8ICJFT0YiOwogCiBjb25zdCBjaGFyKiBnZXRWYWx1ZU5hbWUodW5zaWdu
ZWQgc2hvcnQgaWQpOwogCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKICNlbmRpZiAvLyBDU1NW
YWx1ZUtleXdvcmRzX2gKKwogRU9GCiBjbG9zZSBIRUFERVI7CiAKLXN5c3RlbSgiZ3BlcmYgLS1r
ZXktcG9zaXRpb25zPVwiKlwiIC1EIC1uIC1zIDIgQ1NTVmFsdWVLZXl3b3Jkcy5ncGVyZiA+IENT
U1ZhbHVlS2V5d29yZHMuY3BwIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAk
PyI7CitzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtbiAtcyAyIENTU1Zh
bHVlS2V5d29yZHMuZ3BlcmYgPiBDU1NWYWx1ZUtleXdvcmRzSGFzaC5ocHAiKSA9PSAwIHx8IGRp
ZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKIAotb3BlbiBDLCAiPj5DU1NWYWx1ZUtleXdv
cmRzLmNwcCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NWYWx1ZUtleXdvcmRzLmNwcCBmb3Ig
d3JpdGluZyI7CitvcGVuIEMsICI+PkNTU1ZhbHVlS2V5d29yZHNIYXNoLmhwcCIgfHwgZGllICJD
b3VsZCBub3Qgb3BlbiBDU1NWYWx1ZUtleXdvcmRzSGFzaC5ocHAgZm9yIHdyaXRpbmciOwogcHJp
bnQgQyAgInN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdmFsdWVMaXN0W10gPSB7XG4iOwogcHJp
bnQgQyAgIlwiXCIsXG4iOwogZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CkBAIC0xMDcsMTIg
KzExMywzOCBAQCBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKIHByaW50IEMgPDwgIkVPRiI7
CiAgICAgMAogfTsKKworRU9GCisKK2Nsb3NlIEM7CisKK215ICR2YWx1ZUtleXdvcmRzSW1wbCA9
ICJDU1NWYWx1ZUtleXdvcmRzLmNwcCI7CisKK29wZW4gVkFMVUVLRVlXT1JEUywgIj4kdmFsdWVL
ZXl3b3Jkc0ltcGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJHZhbHVlS2V5d29yZHNJbXBsIGZv
ciB3cml0aW5nIjsKK3ByaW50IFZBTFVFS0VZV09SRFMgPDwgIkVPRiI7CisvKiBUaGlzIGZpbGUg
aXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBkbyBub3Qg
ZWRpdCAqLworCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkhhc2hU
b29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jk
c0hhc2guaHBwIgorCitjb25zdCBWYWx1ZSogZmluZFZhbHVlIChyZWdpc3RlciBjb25zdCBjaGFy
KiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7CisgICAgcmV0dXJuIENTU1ZhbHVl
S2V5d29yZHNIYXNoOjpmaW5kVmFsdWVJbXBsKHN0ciwgbGVuKTsKK30KKwogY29uc3QgY2hhciog
Z2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKQogewogICAgIGlmIChpZCA+PSBudW1DU1NW
YWx1ZUtleXdvcmRzIHx8IGlkIDw9IDApCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiB2
YWx1ZUxpc3RbaWRdOwogfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKIEVPRgogCi1jbG9z
ZSBDOworY2xvc2UgVkFMVUVLRVlXT1JEUzsKKwpJbmRleDogV2ViQ29yZS9odG1sL0RvY1R5cGVT
dHJpbmdzLmdwZXJmCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9Eb2NUeXBlU3RyaW5ncy5n
cGVyZgkocmV2aXNpb24gNjE2MTcpCisrKyBXZWJDb3JlL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3Bl
cmYJKHdvcmtpbmcgY29weSkKQEAgLTEsMjEgKzEsMTMgQEAKICVzdHJ1Y3QtdHlwZQotc3RydWN0
IFB1YklESW5mbyB7Ci0gICAgZW51bSBlTW9kZSB7IAotICAgICAgICBlUXVpcmtzLCAgICAgICAg
IAotICAgICAgICBlUXVpcmtzMywgICAgICAgCi0gICAgICAgIGVBbG1vc3RTdGFuZGFyZHMKLSAg
ICB9OwotCi0gICAgY29uc3QgY2hhciogbmFtZTsKLSAgICBlTW9kZSBtb2RlX2lmX25vX3N5c2lk
OwotICAgIGVNb2RlIG1vZGVfaWZfc3lzaWQ7Ci19Ci0lbGFuZ3VhZ2U9QU5TSS1DCitzdHJ1Y3Qg
UHViSURJbmZvOworJW9taXQtc3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysKICVyZWFkb25seS10
YWJsZXMKICVnbG9iYWwtdGFibGUKICVjb21wYXJlLXN0cm5jbXAKKyVkZWZpbmUgY2xhc3MtbmFt
ZSBEb2NUeXBlU3RyaW5nc0hhc2gKICVkZWZpbmUgaW5pdGlhbGl6ZXItc3VmZml4ICxQdWJJRElu
Zm86OmVBbG1vc3RTdGFuZGFyZHMsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzCi0lZGVmaW5l
IGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmREb2N0eXBlRW50cnkKKyVkZWZpbmUgbG9va3VwLWZ1
bmN0aW9uLW5hbWUgZmluZERvY3R5cGVFbnRyeUltcGwKICVkZWZpbmUgaGFzaC1mdW5jdGlvbi1u
YW1lIGRvY3R5cGVfaGFzaF9mdW5jdGlvbgogJWluY2x1ZGVzCiAlZW51bQpJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUw1RW50aXR5UGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwv
SFRNTDVFbnRpdHlQYXJzZXIuY3BwCShyZXZpc2lvbiA2MTYxNykKKysrIFdlYkNvcmUvaHRtbC9I
VE1MNUVudGl0eVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDIxICsyOCw5IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRNTDVFbnRpdHlQYXJzZXIuaCIKIAorI2lu
Y2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAotLy8gVXNlIF9f
R05VQ19fIGluc3RlYWQgb2YgUExBVEZPUk0oR0NDKSB0byBzdGF5IGNvbnNpc3RlbnQgd2l0aCB0
aGUgZ3BlcmYgZ2VuZXJhdGVkIGMgZmlsZQotI2lmZGVmIF9fR05VQ19fCi0vLyBUaGUgbWFpbiBw
YXJzZXIgaW5jbHVkZXMgdGhpcyB0b28gc28gd2UgYXJlIGdldHRpbmcgdHdvIGNvcGllcyBvZiB0
aGUgZGF0YS4gSG93ZXZlciwgdGhpcyB3YXkgdGhlIGNvZGUgZ2V0cyBpbmxpbmVkLgotI2luY2x1
ZGUgIkhUTUxFbnRpdHlOYW1lcy5jcHAiCi0jZWxzZQotLy8gTm90IGlubGluZWQgZm9yIG5vbi1H
Q0MgY29tcGlsZXJzCi1zdHJ1Y3QgRW50aXR5IHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAg
IGludCBjb2RlOwotfTsKLWNvbnN0IHN0cnVjdCBFbnRpdHkqIGZpbmRFbnRpdHkocmVnaXN0ZXIg
Y29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKLSNlbmRpZgotCiB1
c2luZyBuYW1lc3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBXZWJDb3Jl
L2h0bWwvSFRNTERvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTERv
Y3VtZW50LmNwcAkocmV2aXNpb24gNjE2MTcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsNiArNjQsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisj
aW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiSFRNTDVEb2N1bWVudFBhcnNlci5oIgog
I2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50RmFjdG9y
eS5oIgpAQCAtNzUsOCArNzYsNiBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogCi0jaW5jbHVkZSAiRG9jVHlwZVN0cmluZ3MuY3BwIgotCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CkluZGV4OiBX
ZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcAkocmV2aXNpb24gNjE2MTcpCisrKyBXZWJDb3Jl
L2h0bWwvSFRNTERvY3VtZW50UGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksMTMgKzM5
LDE0IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2lu
Y2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIkhU
TUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiTGVnYWN5SFRN
TFRyZWVDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5oIgogI2luY2x1ZGUgIkltYWdlTG9hZGVyLmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgorI2luY2x1ZGUgIkxlZ2FjeUhU
TUxUcmVlQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUHJlbG9h
ZFNjYW5uZXIuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC01NSw4ICs1Niw2
IEBACiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KIAotI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jcHAiCi0KICNkZWZpbmUgUFJFTE9B
RF9TQ0FOTkVSX0VOQUJMRUQgMQogCiB1c2luZyBuYW1lc3BhY2UgV1RGOwpJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwv
SFRNTEVudGl0eU5hbWVzLmdwZXJmCShyZXZpc2lvbiA2MTYxNykKKysrIFdlYkNvcmUvaHRtbC9I
VE1MRW50aXR5TmFtZXMuZ3BlcmYJKHdvcmtpbmcgY29weSkKQEAgLTI1LDE1ICsyNSwxNCBAQAog
Ki8KICV9CiAlc3RydWN0LXR5cGUKLXN0cnVjdCBFbnRpdHkgewotICAgIGNvbnN0IGNoYXIgKm5h
bWU7Ci0gICAgaW50IGNvZGU7Ci19OwotJWxhbmd1YWdlPUFOU0ktQworc3RydWN0IEVudGl0eTsK
KyVsYW5ndWFnZT1DKysKKyVvbWl0LXN0cnVjdC10eXBlCiAlcmVhZG9ubHktdGFibGVzCiAlZ2xv
YmFsLXRhYmxlCiAlY29tcGFyZS1zdHJuY21wCi0lZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1l
IGZpbmRFbnRpdHkKKyVkZWZpbmUgY2xhc3MtbmFtZSBIVE1MRW50aXR5SGFzaAorJWRlZmluZSBs
b29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kRW50aXR5SW1wbAogJWRlZmluZSBoYXNoLWZ1bmN0aW9u
LW5hbWUgZW50aXR5X2hhc2hfZnVuY3Rpb24KICVpbmNsdWRlcwogJWVudW0KSW5kZXg6IFdlYkNv
cmUvaHRtbC9QcmVsb2FkU2Nhbm5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL1By
ZWxvYWRTY2FubmVyLmNwcAkocmV2aXNpb24gNjE2MTcpCisrKyBXZWJDb3JlL2h0bWwvUHJlbG9h
ZFNjYW5uZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwyNSArMzgsMTMgQEAKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIu
aCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29k
ZS5oPgogCi0vLyBVc2UgX19HTlVDX18gaW5zdGVhZCBvZiBQTEFURk9STShHQ0MpIHRvIHN0YXkg
Y29uc2lzdGVudCB3aXRoIHRoZSBncGVyZiBnZW5lcmF0ZWQgYyBmaWxlCi0jaWZkZWYgX19HTlVD
X18KLS8vIFRoZSBtYWluIHRva2VuaXplciBpbmNsdWRlcyB0aGlzIHRvbyBzbyB3ZSBhcmUgZ2V0
dGluZyB0d28gY29waWVzIG9mIHRoZSBkYXRhLiBIb3dldmVyLCB0aGlzIHdheSB0aGUgY29kZSBn
ZXRzIGlubGluZWQuCi0jaW5jbHVkZSAiSFRNTEVudGl0eU5hbWVzLmNwcCIKLSNlbHNlCi0vLyBO
b3QgaW5saW5lZCBmb3Igbm9uLUdDQyBjb21waWxlcnMKLXN0cnVjdCBFbnRpdHkgewotICAgIGNv
bnN0IGNoYXIqIG5hbWU7Ci0gICAgaW50IGNvZGU7Ci19OwotY29uc3Qgc3RydWN0IEVudGl0eSog
ZmluZEVudGl0eShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGlu
dCBsZW4pOwotI2VuZGlmCi0KICNkZWZpbmUgUFJFTE9BRF9ERUJVRyAwCiAKIHVzaW5nIG5hbWVz
cGFjZSBXVEY7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgkocmV2aXNpb24gNjE2MTcp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgkod29ya2luZyBjb3B5KQpAQCAt
MSwxMyArMSwxMiBAQAogJXN0cnVjdC10eXBlCi1zdHJ1Y3QgTmFtZWRDb2xvciB7Ci0gICAgY29u
c3QgY2hhciAqbmFtZTsKLSAgICBpbnQgUkdCVmFsdWU7Ci19OwotJWxhbmd1YWdlPUFOU0ktQwor
c3RydWN0IE5hbWVkQ29sb3I7Cislb21pdC1zdHJ1Y3QtdHlwZQorJWxhbmd1YWdlPUMrKwogJXJl
YWRvbmx5LXRhYmxlcwogJWdsb2JhbC10YWJsZQogJWNvbXBhcmUtc3RybmNtcAotJWRlZmluZSBs
b29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kQ29sb3IKKyVkZWZpbmUgY2xhc3MtbmFtZSBDb2xvckRh
dGFIYXNoCislZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRDb2xvckltcGwKICVkZWZp
bmUgaGFzaC1mdW5jdGlvbi1uYW1lIGNvbG9yZGF0YV9oYXNoX2Z1bmN0aW9uCiAlaW5jbHVkZXMK
ICVlbnVtCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAkocmV2aXNpb24gNjE2
MTcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjYsMTMgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29s
b3IuaCIKIAorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5j
bHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAotI2luY2x1ZGUgIkNvbG9yRGF0YS5jcHAiCi0KIHVz
aW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2luZyBuYW1lc3BhY2UgV1RGOwogCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDYxNjE3KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEwLTA2LTIyICBBbmRyYXMgQmVjc2kgIDxhYmVj
c2lAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZWZhY3RvciBncGVyZiBjb2RlIGdlbmVyYXRpb24gYW5kIHVzYWdlIHRvIGZpeCB0
aGUgZGVidWcgYnVpbGQgd2l0aCBnY2M+NC40LgorICAgICAgICB3ZWJraXQub3JnL2IvMjkyNDQK
KworICAgICAgICBIaXRoZXJ0byBncGVyZiBnZW5lcmF0ZWQgQyBjb2RlLCB0aGVzZSBmaWxlcyB3
ZXJlIGluY2x1ZGVkIGluIG11bHRpcGxlIEMrKyBmaWxlcyBhY3Jvc3MgV2ViQ29yZQorICAgICAg
ICB0byBhY2Nlc3MgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQuIFRoaXMgcmVzdWx0ZWQgaW4g
ZGVidWcgYnVpbGQgZmFpbHVyZSB3aXRoIG5ld2VyIGdjYyB2ZXJzaW9ucworICAgICAgICBiZWNh
dXNlIG9mIGEgYmVoYXZpb3VyIGNoYW5nZSBvZiBnY2MsIHdoaWNoIGRpc2FibGVzIEMgc3R5bGUg
aW5saW5pbmcgaW4gZGVidWcgbW9kZS4KKyAgICAgICAgVGhlIG1ha2UtaGFzaC10b29scy5wbCBz
Y3JpcHQgbGV0cyBncGVyZiBnZW5lcmF0ZSBDKysgY29kZSBmb3IgYWxsIGdwZXJmIGZpbGVzIG5v
dywgd2hpY2ggYXJlIGNvbXBpbGVkCisgICAgICAgIGluIHRoZWlyIG93biBjb21waWxhdGlvbiB1
bml0LgorICAgICAgICBUaGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSB0aGUgZ2VuZXJhdGVk
IGNvZGUgaXMgd3JhcHBlZCBiZWhpbmQgSGFzaFRvb2xzLmgsIHNvIHRoZXJlIGlzIG5vIG5lZWQK
KyAgICAgICAgZm9yIG11bHRpcGxlIGluY2x1c2lvbnMgb2YgZ2VuZXJhdGVkIEMgZmlsZXMgdG8g
YWNjZXNzIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgICAgICAqIHNyYy9XZWJFbnRpdGllcy5jcHA6
CisKIDIwMTAtMDYtMjIgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpJbmRleDogV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJFbnRpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJFbnRpdGllcy5jcHAJKHJldmlzaW9uIDYxNjE3KQorKysgV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJFbnRpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDkgKzMxLDkgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJFbnRpdGllcy5oIgogCi0jaW5jbHVkZSA8c3Ry
aW5nLmg+Ci0KKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgorI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgIlN0cmluZ0J1aWxkZXIuaCIKICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCkBAIC00MSwxNSArNDEsNiBAQAogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAotbmFtZXNwYWNlIHsKLS8vIE5vdGUgdGhhdCB0aGlzIGZpbGUgaXMg
YWxzbyBpbmNsdWRlZCBieSBIVE1MRG9jdW1lbnRQYXJzZXIuY3BwIHNvIHdlIGFyZSBnZXR0aW5n
Ci0vLyB0d28gY29waWVzIG9mIHRoZSBkYXRhIGluIG1lbW9yeS4gIFdlIGNhbiBmaXggdGhpcyBi
eSBjaGFuZ2luZyB0aGUgc2NyaXB0Ci0vLyB0aGF0IGdlbmVyYXRlZCB0aGUgYXJyYXkgdG8gY3Jl
YXRlIGEgc3RhdGljIGNvbnN0IHRoYXQgaXMgaXRzIGxlbmd0aCwgYnV0Ci0vLyB0aGlzIGlzIGxv
dyBwcmlvcml0eSBzaW5jZSB0aGUgZGF0YSBpcyBsZXNzIHRoYW4gNEsuIFdlIHVzZSBhbm9ueW1v
dXMKLS8vIG5hbWVzcGFjZSB0byBwcmV2ZW50IG5hbWUgY29sbGlzaW9ucy4KLSNpbmNsdWRlICJI
VE1MRW50aXR5TmFtZXMuY3BwIiAvLyBOT0xJTlQKLX0KLQogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHZvaWQgcG9wdWxhdGVNYXAoV1RGOjpIYXNoTWFwPGludCwgV2ViQ29yZTo6U3RyaW5nPiYgbWFw
LApAQCAtOTEsOCArODIsOCBAQCBXZWJFbnRpdGllczo6V2ViRW50aXRpZXMoYm9vbCB4bWxFbnRp
dGllCiAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKICAgICBlbHNlCiAgICAgICAgIHBvcHVs
YXRlTWFwKG1fZW50aXRpZXNNYXAsCi0gICAgICAgICAgICAgICAgICAgIHdvcmRsaXN0LAotICAg
ICAgICAgICAgICAgICAgICBzaXplb2Yod29yZGxpc3QpIC8gc2l6ZW9mKEVudGl0eSksCisgICAg
ICAgICAgICAgICAgICAgIHdvcmRMaXN0KCksCisgICAgICAgICAgICAgICAgICAgIHdvcmRMaXN0
U2l6ZSgpLAogICAgICAgICAgICAgICAgICAgICB0cnVlKTsKIH0KIApJbmRleDogV2ViS2l0L3F0
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA2
MTYxNykKKysrIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwy
MSBAQAorMjAxMC0wNi0yMiAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgZ3Bl
cmYgY29kZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0byBmaXggdGhlIGRlYnVnIGJ1aWxkIHdpdGgg
Z2NjPjQuNC4KKyAgICAgICAgd2Via2l0Lm9yZy9iLzI5MjQ0CisKKyAgICAgICAgSGl0aGVydG8g
Z3BlcmYgZ2VuZXJhdGVkIEMgY29kZSwgdGhlc2UgZmlsZXMgd2VyZSBpbmNsdWRlZCBpbiBtdWx0
aXBsZSBDKysgZmlsZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAgICAgdG8gYWNjZXNzIHRoZSBmdW5j
dGlvbmFsaXR5IHByb3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGluIGRlYnVnIGJ1aWxkIGZhaWx1cmUg
d2l0aCBuZXdlciBnY2MgdmVyc2lvbnMKKyAgICAgICAgYmVjYXVzZSBvZiBhIGJlaGF2aW91ciBj
aGFuZ2Ugb2YgZ2NjLCB3aGljaCBkaXNhYmxlcyBDIHN0eWxlIGlubGluaW5nIGluIGRlYnVnIG1v
ZGUuCisgICAgICAgIFRoZSBtYWtlLWhhc2gtdG9vbHMucGwgc2NyaXB0IGxldHMgZ3BlcmYgZ2Vu
ZXJhdGUgQysrIGNvZGUgZm9yIGFsbCBncGVyZiBmaWxlcyBub3csIHdoaWNoIGFyZSBjb21waWxl
ZAorICAgICAgICBpbiB0aGVpciBvd24gY29tcGlsYXRpb24gdW5pdC4KKyAgICAgICAgVGhlIGZ1
bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgdGhlIGdlbmVyYXRlZCBjb2RlIGlzIHdyYXBwZWQgYmVo
aW5kIEhhc2hUb29scy5oLCBzbyB0aGVyZSBpcyBubyBuZWVkCisgICAgICAgIGZvciBtdWx0aXBs
ZSBpbmNsdXNpb25zIG9mIGdlbmVyYXRlZCBDIGZpbGVzIHRvIGFjY2VzcyB0aGVzZSBmdW5jdGlv
bnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbik6CisK
IDIwMTAtMDYtMjIgIFRhc3VrdSBTdXp1a2kgIDx0YXN1a3Uuc3V6dWtpQG5va2lhLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KSW5kZXg6IFdlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAJKHJldmlzaW9uIDYxNjE3
KQorKysgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzIyLDcgKzEzMjIsNyBAQCBQYXNzUmVmUHRyPFdpZGdldD4gRnJh
bWVMb2FkZXJDbGllbnRRdDo6CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bnVtcVN0eWxlU2hlZXRQcm9wZXJ0aWVzOyArK2kpIHsKICAgICAgICAgICAgICAgICBDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5ID0gcXN0eWxlU2hlZXRQcm9wZXJ0aWVzW2ldOwogCi0gICAgICAgICAg
ICAgICAgc3R5bGVTaGVldCArPSBRU3RyaW5nOjpmcm9tTGF0aW4xKDo6Z2V0UHJvcGVydHlOYW1l
KHByb3BlcnR5KSk7CisgICAgICAgICAgICAgICAgc3R5bGVTaGVldCArPSBRU3RyaW5nOjpmcm9t
TGF0aW4xKGdldFByb3BlcnR5TmFtZShwcm9wZXJ0eSkpOwogICAgICAgICAgICAgICAgIHN0eWxl
U2hlZXQgKz0gUUxhdGluMUNoYXIoJzonKTsKICAgICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9
IGNvbXB1dGVkU3R5bGUoZWxlbWVudCktPmdldFByb3BlcnR5VmFsdWUocHJvcGVydHkpOwogICAg
ICAgICAgICAgICAgIHN0eWxlU2hlZXQgKz0gUUxhdGluMUNoYXIoJzsnKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59540</attachid>
            <date>2010-06-23 11:27:25 -0700</date>
            <delta_ts>2010-06-23 14:13:58 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>28080</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MTY5OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTAtMDYtMjMgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVu
ZGVmaW5lZCByZWZlcmVuY2UgZXJyb3JzIHdoZW4gbGlua2luZyBkdWUgdG8gZ3BlcmYgYW5kIGlu
bGluaW5nLgorICAgICAgICB3ZWJraXQub3JnL2IvMjkyNDQKKworICAgICAgICBSZWZhY3RvciBn
cGVyZiBjb2RlIGdlbmVyYXRpb24gYW5kIHVzYWdlIHRvIGZpeCB0aGUgZGVidWcgYnVpbGQgd2l0
aCBnY2M+NC40LgorICAgICAgICBIaXRoZXJ0byBncGVyZiBnZW5lcmF0ZWQgQyBjb2RlLCB0aGVz
ZSBmaWxlcyB3ZXJlIGluY2x1ZGVkIGluIG11bHRpcGxlIEMrKyBmaWxlcyBhY3Jvc3MgV2ViQ29y
ZQorICAgICAgICB0byBhY2Nlc3MgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQuIFRoaXMgcmVz
dWx0ZWQgaW4gZGVidWcgYnVpbGQgZmFpbHVyZSB3aXRoIG5ld2VyIGdjYyB2ZXJzaW9ucworICAg
ICAgICBiZWNhdXNlIG9mIGEgYmVoYXZpb3VyIGNoYW5nZSBvZiBnY2MsIHdoaWNoIGRpc2FibGVz
IEMgc3R5bGUgaW5saW5pbmcgaW4gZGVidWcgbW9kZS4KKyAgICAgICAgVGhlIG1ha2UtaGFzaC10
b29scy5wbCBzY3JpcHQgbGV0cyBncGVyZiBnZW5lcmF0ZSBDKysgY29kZSBmb3IgYWxsIGdwZXJm
IGZpbGVzIG5vdywgd2hpY2ggYXJlIGNvbXBpbGVkCisgICAgICAgIGluIHRoZWlyIG93biBjb21w
aWxhdGlvbiB1bml0LgorICAgICAgICBUaGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSB0aGUg
Z2VuZXJhdGVkIGNvZGUgaXMgd3JhcHBlZCBiZWhpbmQgSGFzaFRvb2xzLmgsIHNvIHRoZXJlIGlz
IG5vIG5lZWQKKyAgICAgICAgZm9yIG11bHRpcGxlIGluY2x1c2lvbnMgb2YgZ2VuZXJhdGVkIEMg
ZmlsZXMgdG8gYWNjZXNzIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgICAgICBObyBuZXcgZnVuY3Rp
b25hbGl0eSBhZGRlZCwgbm8gbmV3IHRlc3RzIG5lZWRlZC4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdl
YkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKiBjc3MvbWFrZXByb3AucGw6
CisgICAgICAgICogY3NzL21ha2V2YWx1ZXMucGw6CisgICAgICAgICogaHRtbC9Eb2NUeXBlU3Ry
aW5ncy5ncGVyZjoKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5jcHA6CisgICAgICAgICog
aHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmY6CisgICAgICAgICogaHRtbC9IVE1MRW50aXR5UGFy
c2VyLmNwcDoKKyAgICAgICAgKiBodG1sL0xlZ2FjeVByZWxvYWRTY2FubmVyLmNwcDoKKyAgICAg
ICAgKiBtYWtlLWhhc2gtdG9vbHMucGw6CisgICAgICAgICogcGxhdGZvcm0vQ29sb3JEYXRhLmdw
ZXJmOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcDoKKwogMjAxMC0wNi0y
MyAgSnVzdGluIFNjaHVoICA8anNjaHVoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByNjE2OTUuCkluZGV4OiBXZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDYxNjk5KQorKysg
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNTE2LDYgKzUxNiwxMCBA
QCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NHcmFt
bWFyLmNwcAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSFRNTEVsZW1lbnRGYWN0b3J5LmNw
cAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSFRNTEVudGl0eU5hbWVzLmNwcAorICAgICR7
REVSSVZFRF9TT1VSQ0VTX0RJUn0vRG9jVHlwZVN0cmluZ3MuY3BwCisgICAgJHtERVJJVkVEX1NP
VVJDRVNfRElSfS9DU1NWYWx1ZUtleXdvcmRzLmNwcAorICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJ
Un0vQ1NTUHJvcGVydHlOYW1lcy5jcHAKKyAgICAke0RFUklWRURfU09VUkNFU19ESVJ9L0NvbG9y
RGF0YS5jcHAKICAgICAke0RFUklWRURfU09VUkNFU19ESVJ9L0hUTUxOYW1lcy5jcHAKICAgICAk
e0RFUklWRURfU09VUkNFU19ESVJ9L0pTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAKICAg
ICAke0RFUklWRURfU09VUkNFU19ESVJ9L1VzZXJBZ2VudFN0eWxlU2hlZXRzRGF0YS5jcHAKSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBy
aQkocmV2aXNpb24gNjE2OTkpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNvcHkp
CkBAIC02ODIsNyArNjgyLDcgQEAgY3NzcHJvcHMud2tTY3JpcHQgPSAkJFBXRC9jc3MvbWFrZXBy
b3AucAogY3NzcHJvcHMub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9DU1NQ
cm9wZXJ0eU5hbWVzLmNwcAogY3NzcHJvcHMuaW5wdXQgPSBXQUxET0NTU1BST1BTCiBjc3Nwcm9w
cy5jb21tYW5kcyA9IHBlcmwgLW5lIFwicHJpbnQgbGNcIiAke1FNQUtFX0ZJTEVfTkFNRX0gJCR7
REFTSEJPQVJEU1VQUE9SVENTU1BST1BFUlRJRVN9ICQke0VYVFJBQ1NTUFJPUEVSVElFU30gPiAk
JHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5pbiAmJiBjZCAk
JFdDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUiAmJiBwZXJsICQkY3NzcHJvcHMud2tTY3JpcHQgJiYg
JChERUxfRklMRSkgJHtRTUFLRV9GSUxFX0JBU0V9LmluICR7UU1BS0VfRklMRV9CQVNFfS5ncGVy
ZgotY3NzcHJvcHMuZGVwZW5kcyA9ICR7UU1BS0VfRklMRV9OQU1FfSAkJHtEQVNIQk9BUkRTVVBQ
T1JUQ1NTUFJPUEVSVElFU30gJCR7RVhUUkFDU1NQUk9QRVJUSUVTfQorY3NzcHJvcHMuZGVwZW5k
cyA9ICR7UU1BS0VfRklMRV9OQU1FfSAkJHtEQVNIQk9BUkRTVVBQT1JUQ1NTUFJPUEVSVElFU30g
JCR7RVhUUkFDU1NQUk9QRVJUSUVTfSAkJGNzc3Byb3BzLndrU2NyaXB0CiBhZGRFeHRyYUNvbXBp
bGVyKGNzc3Byb3BzKQogCiAjIEdFTkVSQVRPUiA2LUI6CkBAIC02OTAsNyArNjkwLDcgQEAgY3Nz
dmFsdWVzLndrU2NyaXB0ID0gJCRQV0QvY3NzL21ha2V2YWx1ZQogY3NzdmFsdWVzLm91dHB1dCA9
ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vQ1NTVmFsdWVLZXl3b3Jkcy5jcHAKIGNzc3Zh
bHVlcy5pbnB1dCA9IFdBTERPQ1NTVkFMVUVTCiBjc3N2YWx1ZXMuY29tbWFuZHMgPSBwZXJsIC1u
ZSBcInByaW50IGxjXCIgJHtRTUFLRV9GSUxFX05BTUV9ICQkRVhUUkFDU1NWQUxVRVMgPiAkJHtX
Q19HRU5FUkFURURfU09VUkNFU19ESVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5pbiAmJiBjZCAkJFdD
X0dFTkVSQVRFRF9TT1VSQ0VTX0RJUiAmJiBwZXJsICQkY3NzdmFsdWVzLndrU2NyaXB0ICYmICQo
REVMX0ZJTEUpICR7UU1BS0VfRklMRV9CQVNFfS5pbiAke1FNQUtFX0ZJTEVfQkFTRX0uZ3BlcmYK
LWNzc3ZhbHVlcy5kZXBlbmRzID0gJHtRTUFLRV9GSUxFX05BTUV9ICQke0VYVFJBQ1NTVkFMVUVT
fQorY3NzdmFsdWVzLmRlcGVuZHMgPSAke1FNQUtFX0ZJTEVfTkFNRX0gJCR7RVhUUkFDU1NWQUxV
RVN9ICQkY3NzdmFsdWVzLndrU2NyaXB0CiBjc3N2YWx1ZXMuY2xlYW4gPSAke1FNQUtFX0ZJTEVf
T1VUfSAke1FNQUtFX1ZBUl9XQ19HRU5FUkFURURfU09VUkNFU19ESVJ9LyR7UU1BS0VfRklMRV9C
QVNFfS5oCiBhZGRFeHRyYUNvbXBpbGVyKGNzc3ZhbHVlcykKIApJbmRleDogV2ViQ29yZS9tYWtl
LWhhc2gtdG9vbHMucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwJ
KHJldmlzaW9uIDYxNjk5KQorKysgV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwJKHdvcmtpbmcg
Y29weSkKQEAgLTI2LDM1ICsyNiwxODEgQEAgdXNlIEZpbGU6OkJhc2VuYW1lOwogbXkgJG91dGRp
ciA9ICRBUkdWWzBdOwogc2hpZnQ7CiBteSAkb3B0aW9uID0gYmFzZW5hbWUoJEFSR1ZbMF0sIi5n
cGVyZiIpOworbXkgJGhhc2hUb29sc0hlYWRlciA9ICIkb3V0ZGlyL0hhc2hUb29scy5oIjsKKwor
c3ViIGNyZWF0ZUhhc2hUb29sc0hlYWRlcigpIHsKKworb3BlbiBIRUFERVIsICI+JGhhc2hUb29s
c0hlYWRlciIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkaGFzaFRvb2xzSGVhZGVyIGZvciB3cml0
aW5nIjsKK3ByaW50IEhFQURFUiA8PCAiRU9GIjsKKy8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNh
bGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5vdCBlZGl0ICovCisKKyNp
Zm5kZWYgSGFzaFRvb2xzX2gKKyNkZWZpbmUgSGFzaFRvb2xzX2gKKworI2luY2x1ZGUgInd0Zi9Q
bGF0Zm9ybS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBFbnRpdHkgeworICAg
IGNvbnN0IGNoYXIqIG5hbWU7CisgICAgaW50IGNvZGU7Cit9OworCitzdHJ1Y3QgUHViSURJbmZv
IHsKKyAgICBlbnVtIGVNb2RlIHsKKyAgICAgICAgZVF1aXJrcywKKyAgICAgICAgZVF1aXJrczMs
CisgICAgICAgIGVBbG1vc3RTdGFuZGFyZHMKKyAgICB9OworCisgICAgY29uc3QgY2hhciogbmFt
ZTsKKyAgICBlTW9kZSBtb2RlX2lmX25vX3N5c2lkOworICAgIGVNb2RlIG1vZGVfaWZfc3lzaWQ7
Cit9OworCitzdHJ1Y3QgTmFtZWRDb2xvciB7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBp
bnQgUkdCVmFsdWU7Cit9OworCitzdHJ1Y3QgUHJvcGVydHkgeworICAgIGNvbnN0IGNoYXIqIG5h
bWU7CisgICAgaW50IGlkOworfTsKKworc3RydWN0IFZhbHVlIHsKKyAgICBjb25zdCBjaGFyKiBu
YW1lOworICAgIGludCBpZDsKK307CisKK2NvbnN0IEVudGl0eSogZmluZEVudGl0eShyZWdpc3Rl
ciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pOworY29uc3QgUHVi
SURJbmZvKiBmaW5kRG9jdHlwZUVudHJ5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0
ZXIgdW5zaWduZWQgaW50IGxlbik7Citjb25zdCBOYW1lZENvbG9yKiBmaW5kQ29sb3IocmVnaXN0
ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKK2NvbnN0IFBy
b3BlcnR5KiBmaW5kUHJvcGVydHkocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1
bnNpZ25lZCBpbnQgbGVuKTsKK2NvbnN0IFZhbHVlKiBmaW5kVmFsdWUocmVnaXN0ZXIgY29uc3Qg
Y2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKKworI2lmIFBMQVRGT1JNKENI
Uk9NSVVNKQorCitjb25zdCBFbnRpdHkqIHdvcmRMaXN0KCk7Citjb25zdCBpbnQgd29yZExpc3RT
aXplKCk7CisKKyNlbmRpZgorCit9CisKKyNlbmRpZiAvLyBIYXNoVG9vbHNfaAorCitFT0YKK2Ns
b3NlIEhFQURFUjsKKworfQorCisKIAogc3dpdGNoICgkb3B0aW9uKSB7CiAKIGNhc2UgIkhUTUxF
bnRpdHlOYW1lcyIgewogCi0gICAgbXkgJGh0bWxFbnRpdHlOYW1lc0dlbmVyYXRlZCAgID0gIiRv
dXRkaXIvSFRNTEVudGl0eU5hbWVzLmNwcCI7CisgICAgY3JlYXRlSGFzaFRvb2xzSGVhZGVyKCk7
CisKKyAgICBteSAkaHRtbEVudGl0eU5hbWVzSW1wbCAgICAgICAgPSAiJG91dGRpci9IVE1MRW50
aXR5TmFtZXMuY3BwIjsKKyAgICBteSAkaHRtbEVudGl0eU5hbWVzR2VuZXJhdGVkICAgPSAiJG91
dGRpci9IVE1MRW50aXR5TmFtZXNIYXNoLmgiOwogICAgIG15ICRodG1sRW50aXR5TmFtZXNHcGVy
ZiAgICAgICA9ICRBUkdWWzBdOwogICAgIHNoaWZ0OwogCisgICAgb3BlbiBFTlRJVElFUywgIj4k
aHRtbEVudGl0eU5hbWVzSW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkaHRtbEVudGl0eU5h
bWVzSW1wbCBmb3Igd3JpdGluZyI7CisgICAgcHJpbnQgRU5USVRJRVMgPDwgIkVPRiI7CisvKiBU
aGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBs
LCBkbyBub3QgZWRpdCAqLworCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKyNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXNIYXNoLmgiCisKK2NvbnN0IEVudGl0
eSogZmluZEVudGl0eShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVk
IGludCBsZW4pCit7CisgICAgcmV0dXJuIEhUTUxFbnRpdHlIYXNoOjpmaW5kRW50aXR5SW1wbChz
dHIsIGxlbik7Cit9CisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKworY29uc3QgRW50aXR5KiB3
b3JkTGlzdCgpCit7CisgICAgcmV0dXJuIFdlYkNvcmU6OmVudGl0eV93b3JkbGlzdDsKK30KKwor
Y29uc3QgaW50IHdvcmRMaXN0U2l6ZSgpCit7CisgICAgcmV0dXJuIHNpemVvZihXZWJDb3JlOjpl
bnRpdHlfd29yZGxpc3QpIC8gc2l6ZW9mKEVudGl0eSk7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9S
TShDSFJPTUlVTSkKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitFT0YKKyAgICBjbG9zZSBF
TlRJVElFUzsKKwogICAgIHN5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1z
IDIgJGh0bWxFbnRpdHlOYW1lc0dwZXJmID4gJGh0bWxFbnRpdHlOYW1lc0dlbmVyYXRlZCIpID09
IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwogCiB9ICMgY2FzZSAiSFRNTEVu
dGl0eU5hbWVzIgogCiBjYXNlICJEb2NUeXBlU3RyaW5ncyIgewogCi0gICAgbXkgJGRvY1R5cGVT
dHJpbmdzR2VuZXJhdGVkICAgID0gIiRvdXRkaXIvRG9jVHlwZVN0cmluZ3MuY3BwIjsKKyAgICBt
eSAkZG9jVHlwZVN0cmluZ3NJbXBsICAgICAgICAgPSAiJG91dGRpci9Eb2NUeXBlU3RyaW5ncy5j
cHAiOworICAgIG15ICRkb2NUeXBlU3RyaW5nc0dlbmVyYXRlZCAgICA9ICIkb3V0ZGlyL0RvY1R5
cGVTdHJpbmdzSGFzaC5oIjsKICAgICBteSAkZG9jVHlwZVN0cmluZ3NHcGVyZiAgICAgICAgPSAk
QVJHVlswXTsKICAgICBzaGlmdDsKIAorICAgIG9wZW4gRE9DVFlQRVNUUklOR1MsICI+JGRvY1R5
cGVTdHJpbmdzSW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkZG9jVHlwZVN0cmluZ3NJbXBs
IGZvciB3cml0aW5nIjsKKyAgICBwcmludCBET0NUWVBFU1RSSU5HUyA8PCAiRU9GIjsKKy8qIFRo
aXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGws
IGRvIG5vdCBlZGl0ICovCisKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworI2luY2x1ZGUgIkRvY1R5cGVTdHJpbmdzSGFzaC5oIgorCitjb25zdCBQdWJJRElu
Zm8qIGZpbmREb2N0eXBlRW50cnkgKHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIg
dW5zaWduZWQgaW50IGxlbikKK3sKKyAgICByZXR1cm4gRG9jVHlwZVN0cmluZ3NIYXNoOjpmaW5k
RG9jdHlwZUVudHJ5SW1wbChzdHIsIGxlbik7Cit9CisKK30KKworRU9GCisgICAgY2xvc2UgRE9D
VFlQRVNUUklOR1M7CisKICAgICBzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAt
cyAyICRkb2NUeXBlU3RyaW5nc0dwZXJmID4gJGRvY1R5cGVTdHJpbmdzR2VuZXJhdGVkIikgPT0g
MCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKIH0gIyBjYXNlICJEb2NUeXBl
U3RyaW5ncyIKIAogY2FzZSAiQ29sb3JEYXRhIiB7CiAKLSAgICBteSAkY29sb3JEYXRhR2VuZXJh
dGVkICAgPSAiJG91dGRpci9Db2xvckRhdGEuY3BwIjsKLSAgICBteSAkY29sb3JEYXRhR3BlcmYg
ICAgICAgPSAkQVJHVlswXTsKKyAgICBteSAkY29sb3JEYXRhSW1wbCAgICAgICAgICAgICAgPSAi
JG91dGRpci9Db2xvckRhdGEuY3BwIjsKKyAgICBteSAkY29sb3JEYXRhR2VuZXJhdGVkICAgICAg
ICAgPSAiJG91dGRpci9Db2xvckRhdGFIYXNoLmgiOworICAgIG15ICRjb2xvckRhdGFHcGVyZiAg
ICAgICAgICAgICA9ICRBUkdWWzBdOwogICAgIHNoaWZ0OwogCisgICAgb3BlbiBDT0xPUkRBVEEs
ICI+JGNvbG9yRGF0YUltcGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJGNvbG9yRGF0YUltcGwg
Zm9yIHdyaXRpbmciOworICAgIHByaW50IENPTE9SREFUQSA8PCAiRU9GIjsKKy8qIFRoaXMgZmls
ZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5v
dCBlZGl0ICovCisKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworI2luY2x1ZGUgIkNvbG9yRGF0YUhhc2guaCIKKworY29uc3Qgc3RydWN0IE5hbWVkQ29sb3Iq
IGZpbmRDb2xvciAocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBp
bnQgbGVuKQoreworICAgIHJldHVybiBDb2xvckRhdGFIYXNoOjpmaW5kQ29sb3JJbXBsKHN0ciwg
bGVuKTsKK30KKworfQorCitFT0YKKyAgICBjbG9zZSBDT0xPUkRBVEE7CisKICAgICBzeXN0ZW0o
ImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtcyAyICRjb2xvckRhdGFHcGVyZiA+ICRj
b2xvckRhdGFHZW5lcmF0ZWQiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/
IjsKIAogfSAjIGNhc2UgIkNvbG9yRGF0YSIKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAko
cmV2aXNpb24gNjE2OTkpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NDYsNyArNTQ2LDYgQEAKICAgICAgICAgICAgICc8KFNIQVJFRF9JTlRF
Uk1FRElBVEVfRElSKS93ZWJraXQnLAogICAgICAgICAgICAgJzwoUlVMRV9JTlBVVF9QQVRIKScs
CiAgICAgICAgICAgXSwKLSAgICAgICAgICAncHJvY2Vzc19vdXRwdXRzX2FzX3NvdXJjZXMnOiAw
LAogICAgICAgICB9LAogICAgICAgICAjIFJ1bGUgdG8gYnVpbGQgZ2VuZXJhdGVkIEphdmFTY3Jp
cHQgKFY4KSBiaW5kaW5ncyBmcm9tIC5pZGwgc291cmNlLgogICAgICAgICB7CkBAIC02NTMsNiAr
NjUyLDEzIEBACiAgICAgICAgICMgQWRkaXRpb25hbCAuY3BwIGZpbGVzIGZyb20gdGhlIHdlYmNv
cmVfYmluZGluZ3Nfc291cmNlcyBydWxlcy4KICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFU
RV9ESVIpL3dlYmtpdC9DU1NHcmFtbWFyLmNwcCcsCiAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1F
RElBVEVfRElSKS93ZWJraXQvWFBhdGhHcmFtbWFyLmNwcCcsCisKKyAgICAgICAgIyBBZGRpdGlv
bmFsIC5jcHAgZmlsZXMgZm9yIEhhc2hUb29scy5oCisgICAgICAgICc8KFNIQVJFRF9JTlRFUk1F
RElBVEVfRElSKS93ZWJraXQvSFRNTEVudGl0eU5hbWVzLmNwcCcsCisgICAgICAgICc8KFNIQVJF
RF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvRG9jVHlwZVN0cmluZ3MuY3BwJywKKyAgICAgICAg
JzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9Db2xvckRhdGEuY3BwJywKKyAgICAg
ICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NQcm9wZXJ0eU5hbWVzLmNw
cCcsCisgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvQ1NTVmFsdWVL
ZXl3b3Jkcy5jcHAnLAogICAgICAgXSwKICAgICAgICdjb25kaXRpb25zJzogWwogICAgICAgICBb
J2phdmFzY3JpcHRfZW5naW5lPT0idjgiJywgewpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDYxNjk5KQorKysgV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ1OCw2ICs0NTgs
MTEgQEAKIAkJMUFCN0ZDODYwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFsdWUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQjdGQzY1MEE4QjkyRUMw
MEQ5RDM3QiAvKiBYUGF0aFZhbHVlLmggKi87IH07CiAJCTFBQjdGQzg3MEE4QjkyRUMwMEQ5RDM3
QiAvKiBYUGF0aFZhcmlhYmxlUmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQjdGQzY2MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZh
cmlhYmxlUmVmZXJlbmNlLmNwcCAqLzsgfTsKIAkJMUFCN0ZDODgwQThCOTJFQzAwRDlEMzdCIC8q
IFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBQjdGQzY3MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhcmlhYmxl
UmVmZXJlbmNlLmggKi87IH07CisJCTFBQkE3NkM5MTFEMjBFNDcwMDRDMjAxQyAvKiBDb2xvckRh
dGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQw
NkYzRkIxMTk4MzA3RDAwOUQ1OUQ2IC8qIENvbG9yRGF0YS5jcHAgKi87IH07CisJCTFBQkE3NkNB
MTFEMjBFNTAwMDRDMjAxQyAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MUVBMDM4MTE5ODM2REIwMDcxMEJDNSAv
KiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCAqLzsgfTsKKwkJMUFCQTc2Q0IxMUQyMEU1NzAwNEMyMDFD
IC8qIENTU1ZhbHVlS2V5d29yZHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTQxRUEwMzkxMTk4Mzc0OTAwNzEwQkM1IC8qIENTU1ZhbHVlS2V5d29y
ZHMuY3BwICovOyB9OworCQkxQUJBNzZDQzExRDIwRTVCMDA0QzIwMUMgLyogRG9jVHlwZVN0cmlu
Z3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQw
NkYzRkExMTk4MzA0RDAwOUQ1OUQ2IC8qIERvY1R5cGVTdHJpbmdzLmNwcCAqLzsgfTsKKwkJMUFC
QTc3RkQxMUQyMTAzMTAwNEMyMDFDIC8qIEhUTUxFbnRpdHlOYW1lcy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDA2RjQwMjExOTgzMjlBMDA5RDU5
RDYgLyogSFRNTEVudGl0eU5hbWVzLmNwcCAqLzsgfTsKIAkJMUFCRkU3NTMwQ0Q5NjhEMDAwRkU0
ODM0IC8qIFNRTFRyYW5zYWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBQkZFNzUyMENEOTY4RDAwMEZFNDgzNCAvKiBTUUxUcmFuc2FjdGlv
bi5jcHAgKi87IH07CiAJCTFBQzIyNjBDMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0
aW9uQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUFDMjI2MEEwREI2OUYxOTAwODlCNjY5IC8qIEpTRE9NQXBwbGljYXRpb25DYWNoZS5jcHAg
Ki87IH07CiAJCTFBQzIyNjBEMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9uQ2Fj
aGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQzIy
NjBCMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuaCAqLzsgfTsKQEAg
LTIxODQ1LDYgKzIxODUwLDExIEBACiAJCQkJMUFEOEY4MUMxMUNBQjlFOTAwRTkzRTU0IC8qIFBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNTI1QTk2NjExQ0EyMzQw
MDAzQTIzQTggLyogSlNTUUxFeGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThFNkE3
ODIxMUQxNjYxQjAwMzExRjRBIC8qIEhUTUxQYXJzZXJTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMUFCQTc2QzkxMUQyMEU0NzAwNEMyMDFDIC8qIENvbG9yRGF0YS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkxQUJBNzZDQTExRDIwRTUwMDA0QzIwMUMgLyogQ1NTUHJvcGVydHlOYW1l
cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUJBNzZDQjExRDIwRTU3MDA0QzIwMUMgLyogQ1NT
VmFsdWVLZXl3b3Jkcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUJBNzZDQzExRDIwRTVCMDA0
QzIwMUMgLyogRG9jVHlwZVN0cmluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUFCQTc3RkQx
MUQyMTAzMTAwNEMyMDFDIC8qIEhUTUxFbnRpdHlOYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5k
ZXg6IFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAkocmV2aXNpb24gNjE2OTkpCisrKyBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSAiRmxvYXRDb252
ZXJzaW9uLmgiCiAjaW5jbHVkZSAiRm9udEZhbWlseVZhbHVlLmgiCiAjaW5jbHVkZSAiRm9udFZh
bHVlLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCiAj
aW5jbHVkZSAiTWVkaWFRdWVyeUV4cC5oIgogI2luY2x1ZGUgIlBhaXIuaCIKQEAgLTg4LDkgKzg5
LDYgQEAgZXh0ZXJuIGludCBjc3N5eXBhcnNlKHZvaWQqIHBhcnNlcik7CiB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIAotI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFt
ZXMuY3BwIgotI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuY3BwIgotCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJTlZBTElEX05VTV9QQVJTRURfUFJPUEVS
VElFUyA9IFVJTlRfTUFYOwpJbmRleDogV2ViQ29yZS9jc3MvbWFrZXByb3AucGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9jc3MvbWFrZXByb3AucGwJKHJldmlzaW9uIDYxNjk5KQorKysgV2ViQ29y
ZS9jc3MvbWFrZXByb3AucGwJKHdvcmtpbmcgY29weSkKQEAgLTQxLDE1ICs0MSwxNCBAQCBwcmlu
dCBHUEVSRiA8PCAiRU9GIjsKICNpbmNsdWRlIFwiQ1NTUHJvcGVydHlOYW1lcy5oXCIKICV9CiAl
c3RydWN0LXR5cGUKLXN0cnVjdCBQcm9wZXJ0eSB7Ci0gICAgY29uc3QgY2hhciogbmFtZTsKLSAg
ICBpbnQgaWQ7Ci19OwotJWxhbmd1YWdlPUFOU0ktQworc3RydWN0IFByb3BlcnR5OworJW9taXQt
c3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysKICVyZWFkb25seS10YWJsZXMKICVnbG9iYWwtdGFi
bGUKICVjb21wYXJlLXN0cm5jbXAKLSVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZFBy
b3BlcnR5CislZGVmaW5lIGNsYXNzLW5hbWUgQ1NTUHJvcGVydHlOYW1lc0hhc2gKKyVkZWZpbmUg
bG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZFByb3BlcnR5SW1wbAogJWRlZmluZSBoYXNoLWZ1bmN0
aW9uLW5hbWUgcHJvcGVyeV9oYXNoX2Z1bmN0aW9uCiAlZGVmaW5lIHdvcmQtYXJyYXktbmFtZSBw
cm9wZXJ0eV93b3JkbGlzdAogJWluY2x1ZGVzCkBAIC03Miw2ICs3MSwxMCBAQCBwcmludCBIRUFE
RVIgPDwgIkVPRiI7CiAjaWZuZGVmIENTU1Byb3BlcnR5TmFtZXNfaAogI2RlZmluZSBDU1NQcm9w
ZXJ0eU5hbWVzX2gKIAorI2luY2x1ZGUgPHN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKIGVudW0gQ1NTUHJvcGVydHlJRCB7CiAgICAgQ1NTUHJvcGVydHlJbnZhbGlkID0gMCwKIEVP
RgpAQCAtOTksMTUgKzEwMiwxNyBAQCBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAKIGNvbnN0IGNo
YXIqIGdldFByb3BlcnR5TmFtZShDU1NQcm9wZXJ0eUlEKTsKIAorfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCiAjZW5kaWYgLy8gQ1NTUHJvcGVydHlOYW1lc19oCiAKIEVPRgogCiBjbG9zZSBIRUFE
RVI7CiAKLXN5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1uIC1zIDIgQ1NT
UHJvcGVydHlOYW1lcy5ncGVyZiA+IENTU1Byb3BlcnR5TmFtZXMuY3BwIikgPT0gMCB8fCBkaWUg
ImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CitzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9u
cz1cIipcIiAtRCAtbiAtcyAyIENTU1Byb3BlcnR5TmFtZXMuZ3BlcmYgPiBDU1NQcm9wZXJ0eU5h
bWVzSGFzaC5oIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKLW9w
ZW4gQywgIj4+Q1NTUHJvcGVydHlOYW1lcy5jcHAiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NT
UHJvcGVydHlOYW1lcy5jcHAgZm9yIHdyaXRpbmciOworb3BlbiBDLCAiPj5DU1NQcm9wZXJ0eU5h
bWVzSGFzaC5oIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1Byb3BlcnR5TmFtZXNIYXNoLmgg
Zm9yIHdyaXRpbmciOwogcHJpbnQgQyAic3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBwcm9wZXJ0
eU5hbWVTdHJpbmdzWyRudW1dID0ge1xuIjsKIAogZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7
CkBAIC0xMTYsNiArMTIxLDI5IEBAIGZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgewogCiBwcmlu
dCBDIDw8ICJFT0YiOwogfTsKKworRU9GCisKK2Nsb3NlIEM7CisKK215ICRwcm9wZXJ0eU5hbWVz
SW1wbCA9ICJDU1NQcm9wZXJ0eU5hbWVzLmNwcCI7CisKK29wZW4gUFJPUEVSVFlOQU1FUywgIj4k
cHJvcGVydHlOYW1lc0ltcGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJHByb3BlcnR5TmFtZXNJ
bXBsIGZvciB3cml0aW5nIjsKK3ByaW50IFBST1BFUlRZTkFNRVMgPDwgIkVPRiI7CisvKiBUaGlz
IGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBk
byBub3QgZWRpdCAqLworCisKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCisjaW5jbHVk
ZSAiSGFzaFRvb2xzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJDU1NQcm9w
ZXJ0eU5hbWVzSGFzaC5oIgorCitjb25zdCBQcm9wZXJ0eSogZmluZFByb3BlcnR5IChyZWdpc3Rl
ciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7CisgICAgcmV0
dXJuIENTU1Byb3BlcnR5TmFtZXNIYXNoOjpmaW5kUHJvcGVydHlJbXBsKHN0ciwgbGVuKTsKK30K
KwogY29uc3QgY2hhciogZ2V0UHJvcGVydHlOYW1lKENTU1Byb3BlcnR5SUQgaWQpCiB7CiAgICAg
aWYgKGlkIDwgZmlyc3RDU1NQcm9wZXJ0eSkKQEAgLTEyNSw3ICsxNTMsMTAgQEAgY29uc3QgY2hh
ciogZ2V0UHJvcGVydHlOYW1lKENTU1Byb3BlcnR5SQogICAgICAgICByZXR1cm4gMDsKICAgICBy
ZXR1cm4gcHJvcGVydHlOYW1lU3RyaW5nc1tpbmRleF07CiB9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKwogRU9GCiAKLWNsb3NlIEM7CitjbG9zZSBQUk9QRVJUWU5BTUVTOwogCkluZGV4OiBX
ZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL21ha2V2
YWx1ZXMucGwJKHJldmlzaW9uIDYxNjk5KQorKysgV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAko
d29ya2luZyBjb3B5KQpAQCAtNDIsMTQgKzQyLDEzIEBAIHByaW50IEdQRVJGIDw8ICJFT0YiOwog
I2luY2x1ZGUgXCJDU1NWYWx1ZUtleXdvcmRzLmhcIgogJX0KICVzdHJ1Y3QtdHlwZQotc3RydWN0
IFZhbHVlIHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGludCBpZDsKLX07Ci0lbGFuZ3Vh
Z2U9QU5TSS1DCitzdHJ1Y3QgVmFsdWU7Cislb21pdC1zdHJ1Y3QtdHlwZQorJWxhbmd1YWdlPUMr
KwogJXJlYWRvbmx5LXRhYmxlcwogJWNvbXBhcmUtc3RybmNtcAotJWRlZmluZSBsb29rdXAtZnVu
Y3Rpb24tbmFtZSBmaW5kVmFsdWUKKyVkZWZpbmUgY2xhc3MtbmFtZSBDU1NWYWx1ZUtleXdvcmRz
SGFzaAorJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kVmFsdWVJbXBsCiAlZGVmaW5l
IGhhc2gtZnVuY3Rpb24tbmFtZSB2YWx1ZV9oYXNoX2Z1bmN0aW9uCiAlZGVmaW5lIHdvcmQtYXJy
YXktbmFtZSB2YWx1ZV93b3JkX2xpc3QKICVpbmNsdWRlcwpAQCAtNzIsNiArNzEsMTAgQEAgcHJp
bnQgSEVBREVSIDw8ICJFT0YiOwogI2lmbmRlZiBDU1NWYWx1ZUtleXdvcmRzX2gKICNkZWZpbmUg
Q1NTVmFsdWVLZXl3b3Jkc19oCiAKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCiBjb25zdCBpbnQgQ1NTVmFsdWVJbnZhbGlkID0gMDsKIEVPRgogCkBAIC05Miwx
MyArOTUsMTYgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogCiBjb25zdCBjaGFyKiBnZXRWYWx1
ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpOwogCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKICNl
bmRpZiAvLyBDU1NWYWx1ZUtleXdvcmRzX2gKKwogRU9GCiBjbG9zZSBIRUFERVI7CiAKLXN5c3Rl
bSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1uIC1zIDIgQ1NTVmFsdWVLZXl3b3Jk
cy5ncGVyZiA+IENTU1ZhbHVlS2V5d29yZHMuY3BwIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3Bl
cmYgZmFpbGVkOiAkPyI7CitzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAt
biAtcyAyIENTU1ZhbHVlS2V5d29yZHMuZ3BlcmYgPiBDU1NWYWx1ZUtleXdvcmRzSGFzaC5oIikg
PT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKLW9wZW4gQywgIj4+Q1NT
VmFsdWVLZXl3b3Jkcy5jcHAiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTVmFsdWVLZXl3b3Jk
cy5jcHAgZm9yIHdyaXRpbmciOworb3BlbiBDLCAiPj5DU1NWYWx1ZUtleXdvcmRzSGFzaC5oIiB8
fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1ZhbHVlS2V5d29yZHNIYXNoLmggZm9yIHdyaXRpbmci
OwogcHJpbnQgQyAgInN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdmFsdWVMaXN0W10gPSB7XG4i
OwogcHJpbnQgQyAgIlwiXCIsXG4iOwogZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CkBAIC0x
MDcsMTIgKzExMywzOCBAQCBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKIHByaW50IEMgPDwg
IkVPRiI7CiAgICAgMAogfTsKKworRU9GCisKK2Nsb3NlIEM7CisKK215ICR2YWx1ZUtleXdvcmRz
SW1wbCA9ICJDU1NWYWx1ZUtleXdvcmRzLmNwcCI7CisKK29wZW4gVkFMVUVLRVlXT1JEUywgIj4k
dmFsdWVLZXl3b3Jkc0ltcGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJHZhbHVlS2V5d29yZHNJ
bXBsIGZvciB3cml0aW5nIjsKK3ByaW50IFZBTFVFS0VZV09SRFMgPDwgIkVPRiI7CisvKiBUaGlz
IGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBk
byBub3QgZWRpdCAqLworCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUg
Ikhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiQ1NTVmFsdWVL
ZXl3b3Jkc0hhc2guaCIKKworY29uc3QgVmFsdWUqIGZpbmRWYWx1ZSAocmVnaXN0ZXIgY29uc3Qg
Y2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHJldHVybiBDU1NW
YWx1ZUtleXdvcmRzSGFzaDo6ZmluZFZhbHVlSW1wbChzdHIsIGxlbik7Cit9CisKIGNvbnN0IGNo
YXIqIGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBpZCkKIHsKICAgICBpZiAoaWQgPj0gbnVt
Q1NTVmFsdWVLZXl3b3JkcyB8fCBpZCA8PSAwKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1
cm4gdmFsdWVMaXN0W2lkXTsKIH0KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCiBFT0YKIAot
Y2xvc2UgQzsKK2Nsb3NlIFZBTFVFS0VZV09SRFM7CisKSW5kZXg6IFdlYkNvcmUvaHRtbC9Eb2NU
eXBlU3RyaW5ncy5ncGVyZgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvRG9jVHlwZVN0cmlu
Z3MuZ3BlcmYJKHJldmlzaW9uIDYxNjk5KQorKysgV2ViQ29yZS9odG1sL0RvY1R5cGVTdHJpbmdz
LmdwZXJmCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIxICsxLDEzIEBACiAlc3RydWN0LXR5cGUKLXN0
cnVjdCBQdWJJREluZm8gewotICAgIGVudW0gZU1vZGUgeyAKLSAgICAgICAgZVF1aXJrcywgICAg
ICAgICAKLSAgICAgICAgZVF1aXJrczMsICAgICAgIAotICAgICAgICBlQWxtb3N0U3RhbmRhcmRz
Ci0gICAgfTsKLQotICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgZU1vZGUgbW9kZV9pZl9ub19z
eXNpZDsKLSAgICBlTW9kZSBtb2RlX2lmX3N5c2lkOwotfQotJWxhbmd1YWdlPUFOU0ktQworc3Ry
dWN0IFB1YklESW5mbzsKKyVvbWl0LXN0cnVjdC10eXBlCislbGFuZ3VhZ2U9QysrCiAlcmVhZG9u
bHktdGFibGVzCiAlZ2xvYmFsLXRhYmxlCiAlY29tcGFyZS1zdHJuY21wCislZGVmaW5lIGNsYXNz
LW5hbWUgRG9jVHlwZVN0cmluZ3NIYXNoCiAlZGVmaW5lIGluaXRpYWxpemVyLXN1ZmZpeCAsUHVi
SURJbmZvOjplQWxtb3N0U3RhbmRhcmRzLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcwotJWRl
ZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kRG9jdHlwZUVudHJ5CislZGVmaW5lIGxvb2t1
cC1mdW5jdGlvbi1uYW1lIGZpbmREb2N0eXBlRW50cnlJbXBsCiAlZGVmaW5lIGhhc2gtZnVuY3Rp
b24tbmFtZSBkb2N0eXBlX2hhc2hfZnVuY3Rpb24KICVpbmNsdWRlcwogJWVudW0KSW5kZXg6IFdl
YkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9I
VE1MRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA2MTY5OSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MRG9j
dW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw2ICs2NCw3IEBACiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJIVE1MRG9jdW1lbnRQYXJzZXIu
aCIKICNpbmNsdWRlICJIVE1MQm9keUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudEZh
Y3RvcnkuaCIKQEAgLTc1LDggKzc2LDYgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAotI2luY2x1ZGUgIkRvY1R5cGVTdHJpbmdzLmNwcCIK
LQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCShyZXZpc2lvbiA2MTY5OSkKKysrIFdlYkNv
cmUvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYJKHdvcmtpbmcgY29weSkKQEAgLTI1LDE2ICsy
NSwxNiBAQAogKi8KICV9CiAlc3RydWN0LXR5cGUKLXN0cnVjdCBFbnRpdHkgewotICAgIGNvbnN0
IGNoYXIgKm5hbWU7Ci0gICAgaW50IGNvZGU7Ci19OwotJWxhbmd1YWdlPUFOU0ktQworc3RydWN0
IEVudGl0eTsKKyVsYW5ndWFnZT1DKysKKyVvbWl0LXN0cnVjdC10eXBlCiAlcmVhZG9ubHktdGFi
bGVzCiAlZ2xvYmFsLXRhYmxlCiAlY29tcGFyZS1zdHJuY21wCi0lZGVmaW5lIGxvb2t1cC1mdW5j
dGlvbi1uYW1lIGZpbmRFbnRpdHkKKyVkZWZpbmUgY2xhc3MtbmFtZSBIVE1MRW50aXR5SGFzaAor
JWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kRW50aXR5SW1wbAogJWRlZmluZSBoYXNo
LWZ1bmN0aW9uLW5hbWUgZW50aXR5X2hhc2hfZnVuY3Rpb24KKyVkZWZpbmUgd29yZC1hcnJheS1u
YW1lIGVudGl0eV93b3JkbGlzdAogJWluY2x1ZGVzCiAlZW51bQogJSUKSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MRW50aXR5UGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRN
TEVudGl0eVBhcnNlci5jcHAJKHJldmlzaW9uIDYxNjk5KQorKysgV2ViQ29yZS9odG1sL0hUTUxF
bnRpdHlQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwyMSArMjgsOSBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhUTUxFbnRpdHlQYXJzZXIuaCIKIAorI2luY2x1ZGUg
Ikhhc2hUb29scy5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAotLy8gVXNlIF9fR05VQ19f
IGluc3RlYWQgb2YgUExBVEZPUk0oR0NDKSB0byBzdGF5IGNvbnNpc3RlbnQgd2l0aCB0aGUgZ3Bl
cmYgZ2VuZXJhdGVkIGMgZmlsZQotI2lmZGVmIF9fR05VQ19fCi0vLyBUaGUgbWFpbiBwYXJzZXIg
aW5jbHVkZXMgdGhpcyB0b28gc28gd2UgYXJlIGdldHRpbmcgdHdvIGNvcGllcyBvZiB0aGUgZGF0
YS4gSG93ZXZlciwgdGhpcyB3YXkgdGhlIGNvZGUgZ2V0cyBpbmxpbmVkLgotI2luY2x1ZGUgIkhU
TUxFbnRpdHlOYW1lcy5jcHAiCi0jZWxzZQotLy8gTm90IGlubGluZWQgZm9yIG5vbi1HQ0MgY29t
cGlsZXJzCi1zdHJ1Y3QgRW50aXR5IHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGludCBj
b2RlOwotfTsKLWNvbnN0IHN0cnVjdCBFbnRpdHkqIGZpbmRFbnRpdHkocmVnaXN0ZXIgY29uc3Qg
Y2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKLSNlbmRpZgotCiB1c2luZyBu
YW1lc3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBXZWJDb3JlL2h0bWwv
TGVnYWN5UHJlbG9hZFNjYW5uZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9MZWdh
Y3lQcmVsb2FkU2Nhbm5lci5jcHAJKHJldmlzaW9uIDYxNjk5KQorKysgV2ViQ29yZS9odG1sL0xl
Z2FjeVByZWxvYWRTY2FubmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsMjUgKzM4LDEzIEBA
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiSFRNTExpbmtF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi91bmlj
b2RlL1VuaWNvZGUuaD4KIAotLy8gVXNlIF9fR05VQ19fIGluc3RlYWQgb2YgUExBVEZPUk0oR0ND
KSB0byBzdGF5IGNvbnNpc3RlbnQgd2l0aCB0aGUgZ3BlcmYgZ2VuZXJhdGVkIGMgZmlsZQotI2lm
ZGVmIF9fR05VQ19fCi0vLyBUaGUgbWFpbiB0b2tlbml6ZXIgaW5jbHVkZXMgdGhpcyB0b28gc28g
d2UgYXJlIGdldHRpbmcgdHdvIGNvcGllcyBvZiB0aGUgZGF0YS4gSG93ZXZlciwgdGhpcyB3YXkg
dGhlIGNvZGUgZ2V0cyBpbmxpbmVkLgotI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jcHAiCi0j
ZWxzZQotLy8gTm90IGlubGluZWQgZm9yIG5vbi1HQ0MgY29tcGlsZXJzCi1zdHJ1Y3QgRW50aXR5
IHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGludCBjb2RlOwotfTsKLWNvbnN0IHN0cnVj
dCBFbnRpdHkqIGZpbmRFbnRpdHkocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1
bnNpZ25lZCBpbnQgbGVuKTsKLSNlbmRpZgotCiAjZGVmaW5lIFBSRUxPQURfREVCVUcgMAogCiB1
c2luZyBuYW1lc3BhY2UgV1RGOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3Bl
cmYKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYJKHJldmlz
aW9uIDYxNjk5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTMgKzEsMTIgQEAKICVzdHJ1Y3QtdHlwZQotc3RydWN0IE5hbWVkQ29sb3Ig
ewotICAgIGNvbnN0IGNoYXIgKm5hbWU7Ci0gICAgaW50IFJHQlZhbHVlOwotfTsKLSVsYW5ndWFn
ZT1BTlNJLUMKK3N0cnVjdCBOYW1lZENvbG9yOworJW9taXQtc3RydWN0LXR5cGUKKyVsYW5ndWFn
ZT1DKysKICVyZWFkb25seS10YWJsZXMKICVnbG9iYWwtdGFibGUKICVjb21wYXJlLXN0cm5jbXAK
LSVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZENvbG9yCislZGVmaW5lIGNsYXNzLW5h
bWUgQ29sb3JEYXRhSGFzaAorJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kQ29sb3JJ
bXBsCiAlZGVmaW5lIGhhc2gtZnVuY3Rpb24tbmFtZSBjb2xvcmRhdGFfaGFzaF9mdW5jdGlvbgog
JWluY2x1ZGVzCiAlZW51bQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAJKHJl
dmlzaW9uIDYxNjk5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI2LDEzICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkNvbG9yLmgiCiAKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9u
cy5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKLSNpbmNsdWRlICJDb2xvckRhdGEu
Y3BwIgotCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIApJbmRl
eDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA2MTY5OSkKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNi0yMyAgQW5kcmFzIEJl
Y3NpICA8YWJlY3NpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVW5kZWZpbmVkIHJlZmVyZW5jZSBlcnJvcnMgd2hlbiBsaW5raW5n
IGR1ZSB0byBncGVyZiBhbmQgaW5saW5pbmcuCisgICAgICAgIHdlYmtpdC5vcmcvYi8yOTI0NAor
CisgICAgICAgIFJlZmFjdG9yIGdwZXJmIGNvZGUgZ2VuZXJhdGlvbiBhbmQgdXNhZ2UgdG8gZml4
IHRoZSBkZWJ1ZyBidWlsZCB3aXRoIGdjYz40LjQuCisgICAgICAgIEhpdGhlcnRvIGdwZXJmIGdl
bmVyYXRlZCBDIGNvZGUsIHRoZXNlIGZpbGVzIHdlcmUgaW5jbHVkZWQgaW4gbXVsdGlwbGUgQysr
IGZpbGVzIGFjcm9zcyBXZWJDb3JlCisgICAgICAgIHRvIGFjY2VzcyB0aGUgZnVuY3Rpb25hbGl0
eSBwcm92aWRlZC4gVGhpcyByZXN1bHRlZCBpbiBkZWJ1ZyBidWlsZCBmYWlsdXJlIHdpdGggbmV3
ZXIgZ2NjIHZlcnNpb25zCisgICAgICAgIGJlY2F1c2Ugb2YgYSBiZWhhdmlvdXIgY2hhbmdlIG9m
IGdjYywgd2hpY2ggZGlzYWJsZXMgQyBzdHlsZSBpbmxpbmluZyBpbiBkZWJ1ZyBtb2RlLgorICAg
ICAgICBUaGUgbWFrZS1oYXNoLXRvb2xzLnBsIHNjcmlwdCBsZXRzIGdwZXJmIGdlbmVyYXRlIEMr
KyBjb2RlIGZvciBhbGwgZ3BlcmYgZmlsZXMgbm93LCB3aGljaCBhcmUgY29tcGlsZWQKKyAgICAg
ICAgaW4gdGhlaXIgb3duIGNvbXBpbGF0aW9uIHVuaXQuCisgICAgICAgIFRoZSBmdW5jdGlvbmFs
aXR5IHByb3ZpZGVkIGJ5IHRoZSBnZW5lcmF0ZWQgY29kZSBpcyB3cmFwcGVkIGJlaGluZCBIYXNo
VG9vbHMuaCwgc28gdGhlcmUgaXMgbm8gbmVlZAorICAgICAgICBmb3IgbXVsdGlwbGUgaW5jbHVz
aW9ucyBvZiBnZW5lcmF0ZWQgQyBmaWxlcyB0byBhY2Nlc3MgdGhlc2UgZnVuY3Rpb25zLgorCisg
ICAgICAgICogc3JjL1dlYkVudGl0aWVzLmNwcDoKKwogMjAxMC0wNi0yMyAgWXV6byBGdWppc2hp
bWEgIDx5dXpvQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2hpbmljaGlybyBI
YW1hamkuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVudGl0aWVzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVudGl0aWVzLmNwcAkocmV2aXNpb24gNjE2
OTkpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVudGl0aWVzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzEsOSArMzEsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkVu
dGl0aWVzLmgiCiAKLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQorI2luY2x1ZGUgIkhhc2hUb29scy5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5j
bHVkZSAiU3RyaW5nQnVpbGRlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKQEAgLTQx
LDE1ICs0MSw2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1uYW1lc3BhY2Ugewot
Ly8gTm90ZSB0aGF0IHRoaXMgZmlsZSBpcyBhbHNvIGluY2x1ZGVkIGJ5IExlZ2FjeUhUTUxEb2N1
bWVudFBhcnNlci5jcHAgc28gd2UgYXJlIGdldHRpbmcKLS8vIHR3byBjb3BpZXMgb2YgdGhlIGRh
dGEgaW4gbWVtb3J5LiAgV2UgY2FuIGZpeCB0aGlzIGJ5IGNoYW5naW5nIHRoZSBzY3JpcHQKLS8v
IHRoYXQgZ2VuZXJhdGVkIHRoZSBhcnJheSB0byBjcmVhdGUgYSBzdGF0aWMgY29uc3QgdGhhdCBp
cyBpdHMgbGVuZ3RoLCBidXQKLS8vIHRoaXMgaXMgbG93IHByaW9yaXR5IHNpbmNlIHRoZSBkYXRh
IGlzIGxlc3MgdGhhbiA0Sy4gV2UgdXNlIGFub255bW91cwotLy8gbmFtZXNwYWNlIHRvIHByZXZl
bnQgbmFtZSBjb2xsaXNpb25zLgotI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jcHAiIC8vIE5P
TElOVAotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBwb3B1bGF0ZU1hcChXVEY6Okhh
c2hNYXA8aW50LCBXZWJDb3JlOjpTdHJpbmc+JiBtYXAsCkBAIC05MSw4ICs4Miw4IEBAIFdlYkVu
dGl0aWVzOjpXZWJFbnRpdGllcyhib29sIHhtbEVudGl0aWUKICAgICAgICAgICAgICAgICAgICAg
ZmFsc2UpOwogICAgIGVsc2UKICAgICAgICAgcG9wdWxhdGVNYXAobV9lbnRpdGllc01hcCwKLSAg
ICAgICAgICAgICAgICAgICAgd29yZGxpc3QsCi0gICAgICAgICAgICAgICAgICAgIHNpemVvZih3
b3JkbGlzdCkgLyBzaXplb2YoRW50aXR5KSwKKyAgICAgICAgICAgICAgICAgICAgd29yZExpc3Qo
KSwKKyAgICAgICAgICAgICAgICAgICAgd29yZExpc3RTaXplKCksCiAgICAgICAgICAgICAgICAg
ICAgIHRydWUpOwogfQogCkluZGV4OiBXZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDYxNjk5KQorKysgV2ViS2l0L3F0L0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEwLTA2LTIzICBBbmRyYXMg
QmVjc2kgIDxhYmVjc2lAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVbmRlZmluZWQgcmVmZXJlbmNlIGVycm9ycyB3aGVuIGxpbmtp
bmcgZHVlIHRvIGdwZXJmIGFuZCBpbmxpbmluZy4KKyAgICAgICAgd2Via2l0Lm9yZy9iLzI5MjQ0
CisKKyAgICAgICAgUmVmYWN0b3IgZ3BlcmYgY29kZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0byBm
aXggdGhlIGRlYnVnIGJ1aWxkIHdpdGggZ2NjPjQuNC4KKyAgICAgICAgSGl0aGVydG8gZ3BlcmYg
Z2VuZXJhdGVkIEMgY29kZSwgdGhlc2UgZmlsZXMgd2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBD
KysgZmlsZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAgICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFs
aXR5IHByb3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGluIGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBu
ZXdlciBnY2MgdmVyc2lvbnMKKyAgICAgICAgYmVjYXVzZSBvZiBhIGJlaGF2aW91ciBjaGFuZ2Ug
b2YgZ2NjLCB3aGljaCBkaXNhYmxlcyBDIHN0eWxlIGlubGluaW5nIGluIGRlYnVnIG1vZGUuCisg
ICAgICAgIFRoZSBtYWtlLWhhc2gtdG9vbHMucGwgc2NyaXB0IGxldHMgZ3BlcmYgZ2VuZXJhdGUg
QysrIGNvZGUgZm9yIGFsbCBncGVyZiBmaWxlcyBub3csIHdoaWNoIGFyZSBjb21waWxlZAorICAg
ICAgICBpbiB0aGVpciBvd24gY29tcGlsYXRpb24gdW5pdC4KKyAgICAgICAgVGhlIGZ1bmN0aW9u
YWxpdHkgcHJvdmlkZWQgYnkgdGhlIGdlbmVyYXRlZCBjb2RlIGlzIHdyYXBwZWQgYmVoaW5kIEhh
c2hUb29scy5oLCBzbyB0aGVyZSBpcyBubyBuZWVkCisgICAgICAgIGZvciBtdWx0aXBsZSBpbmNs
dXNpb25zIG9mIGdlbmVyYXRlZCBDIGZpbGVzIHRvIGFjY2VzcyB0aGVzZSBmdW5jdGlvbnMuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbik6CisKIDIwMTAt
MDYtMjMgIERhdmlkIEJvZGRpZSAgPGRib2RkaWVAdHJvbGx0ZWNoLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KSW5kZXg6IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAJKHJldmlzaW9uIDYxNjk5KQorKysgV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzIyLDcgKzEzMjIsNyBAQCBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJD
bGllbnRRdDo6CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtcVN0eWxl
U2hlZXRQcm9wZXJ0aWVzOyArK2kpIHsKICAgICAgICAgICAgICAgICBDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5ID0gcXN0eWxlU2hlZXRQcm9wZXJ0aWVzW2ldOwogCi0gICAgICAgICAgICAgICAgc3R5
bGVTaGVldCArPSBRU3RyaW5nOjpmcm9tTGF0aW4xKDo6Z2V0UHJvcGVydHlOYW1lKHByb3BlcnR5
KSk7CisgICAgICAgICAgICAgICAgc3R5bGVTaGVldCArPSBRU3RyaW5nOjpmcm9tTGF0aW4xKGdl
dFByb3BlcnR5TmFtZShwcm9wZXJ0eSkpOwogICAgICAgICAgICAgICAgIHN0eWxlU2hlZXQgKz0g
UUxhdGluMUNoYXIoJzonKTsKICAgICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9IGNvbXB1dGVk
U3R5bGUoZWxlbWVudCktPmdldFByb3BlcnR5VmFsdWUocHJvcGVydHkpOwogICAgICAgICAgICAg
ICAgIHN0eWxlU2hlZXQgKz0gUUxhdGluMUNoYXIoJzsnKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59562</attachid>
            <date>2010-06-23 14:13:58 -0700</date>
            <delta_ts>2010-07-09 02:05:59 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>28687</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MTcwOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTAtMDYtMjMgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVu
ZGVmaW5lZCByZWZlcmVuY2UgZXJyb3JzIHdoZW4gbGlua2luZyBkdWUgdG8gZ3BlcmYgYW5kIGlu
bGluaW5nLgorICAgICAgICB3ZWJraXQub3JnL2IvMjkyNDQKKworICAgICAgICBSZWZhY3RvciBn
cGVyZiBjb2RlIGdlbmVyYXRpb24gYW5kIHVzYWdlIHRvIGZpeCB0aGUgZGVidWcgYnVpbGQgd2l0
aCBnY2M+NC40LgorICAgICAgICBIaXRoZXJ0byBncGVyZiBnZW5lcmF0ZWQgQyBjb2RlLCB0aGVz
ZSBmaWxlcyB3ZXJlIGluY2x1ZGVkIGluIG11bHRpcGxlIEMrKyBmaWxlcyBhY3Jvc3MgV2ViQ29y
ZQorICAgICAgICB0byBhY2Nlc3MgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQuIFRoaXMgcmVz
dWx0ZWQgaW4gZGVidWcgYnVpbGQgZmFpbHVyZSB3aXRoIG5ld2VyIGdjYyB2ZXJzaW9ucworICAg
ICAgICBiZWNhdXNlIG9mIGEgYmVoYXZpb3VyIGNoYW5nZSBvZiBnY2MsIHdoaWNoIGRpc2FibGVz
IEMgc3R5bGUgaW5saW5pbmcgaW4gZGVidWcgbW9kZS4KKyAgICAgICAgVGhlIG1ha2UtaGFzaC10
b29scy5wbCBzY3JpcHQgbGV0cyBncGVyZiBnZW5lcmF0ZSBDKysgY29kZSBmb3IgYWxsIGdwZXJm
IGZpbGVzIG5vdywgd2hpY2ggYXJlIGNvbXBpbGVkCisgICAgICAgIGluIHRoZWlyIG93biBjb21w
aWxhdGlvbiB1bml0LgorICAgICAgICBUaGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSB0aGUg
Z2VuZXJhdGVkIGNvZGUgaXMgd3JhcHBlZCBiZWhpbmQgSGFzaFRvb2xzLmgsIHNvIHRoZXJlIGlz
IG5vIG5lZWQKKyAgICAgICAgZm9yIG11bHRpcGxlIGluY2x1c2lvbnMgb2YgZ2VuZXJhdGVkIEMg
ZmlsZXMgdG8gYWNjZXNzIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgICAgICBObyBuZXcgZnVuY3Rp
b25hbGl0eSBhZGRlZCwgbm8gbmV3IHRlc3RzIG5lZWRlZC4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdl
YkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKiBjc3MvbWFrZXByb3AucGw6
CisgICAgICAgICogY3NzL21ha2V2YWx1ZXMucGw6CisgICAgICAgICogaHRtbC9Eb2NUeXBlU3Ry
aW5ncy5ncGVyZjoKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5jcHA6CisgICAgICAgICog
aHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmY6CisgICAgICAgICogaHRtbC9IVE1MRW50aXR5UGFy
c2VyLmNwcDoKKyAgICAgICAgKiBodG1sL0xlZ2FjeVByZWxvYWRTY2FubmVyLmNwcDoKKyAgICAg
ICAgKiBtYWtlLWhhc2gtdG9vbHMucGw6CisgICAgICAgICogcGxhdGZvcm0vQ29sb3JEYXRhLmdw
ZXJmOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcDoKKwogMjAxMC0wNi0y
MyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWxleGV5IFByb3NrdXJ5YWtvdi4KSW5kZXg6IFdlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gNjE3MDgpCisrKyBXZWJD
b3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MTYsNiArNTE2LDEwIEBAIFNF
VChXZWJDb3JlX1NPVVJDRVMKICAgICAke0RFUklWRURfU09VUkNFU19ESVJ9L0NTU0dyYW1tYXIu
Y3BwCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9IVE1MRWxlbWVudEZhY3RvcnkuY3BwCiAg
ICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9IVE1MRW50aXR5TmFtZXMuY3BwCisgICAgJHtERVJJ
VkVEX1NPVVJDRVNfRElSfS9Eb2NUeXBlU3RyaW5ncy5jcHAKKyAgICAke0RFUklWRURfU09VUkNF
U19ESVJ9L0NTU1ZhbHVlS2V5d29yZHMuY3BwCisgICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9D
U1NQcm9wZXJ0eU5hbWVzLmNwcAorICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vQ29sb3JEYXRh
LmNwcAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSFRNTE5hbWVzLmNwcAogICAgICR7REVS
SVZFRF9TT1VSQ0VTX0RJUn0vSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAogICAgICR7
REVSSVZFRF9TT1VSQ0VTX0RJUn0vVXNlckFnZW50U3R5bGVTaGVldHNEYXRhLmNwcApJbmRleDog
V2ViQ29yZS9XZWJDb3JlLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJpCShy
ZXZpc2lvbiA2MTcwOCkKKysrIFdlYkNvcmUvV2ViQ29yZS5wcmkJKHdvcmtpbmcgY29weSkKQEAg
LTY4Miw3ICs2ODIsNyBAQCBjc3Nwcm9wcy53a1NjcmlwdCA9ICQkUFdEL2Nzcy9tYWtlcHJvcC5w
CiBjc3Nwcm9wcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0NTU1Byb3Bl
cnR5TmFtZXMuY3BwCiBjc3Nwcm9wcy5pbnB1dCA9IFdBTERPQ1NTUFJPUFMKIGNzc3Byb3BzLmNv
bW1hbmRzID0gcGVybCAtbmUgXCJwcmludCBsY1wiICR7UU1BS0VfRklMRV9OQU1FfSAkJHtEQVNI
Qk9BUkRTVVBQT1JUQ1NTUFJPUEVSVElFU30gJCR7RVhUUkFDU1NQUk9QRVJUSUVTfSA+ICQke1dD
X0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9LmluICYmIGNkICQkV0Nf
R0VORVJBVEVEX1NPVVJDRVNfRElSICYmIHBlcmwgJCRjc3Nwcm9wcy53a1NjcmlwdCAmJiAkKERF
TF9GSUxFKSAke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJHtRTUFLRV9GSUxFX0JBU0V9LmdwZXJmCi1j
c3Nwcm9wcy5kZXBlbmRzID0gJHtRTUFLRV9GSUxFX05BTUV9ICQke0RBU0hCT0FSRFNVUFBPUlRD
U1NQUk9QRVJUSUVTfSAkJHtFWFRSQUNTU1BST1BFUlRJRVN9Citjc3Nwcm9wcy5kZXBlbmRzID0g
JHtRTUFLRV9GSUxFX05BTUV9ICQke0RBU0hCT0FSRFNVUFBPUlRDU1NQUk9QRVJUSUVTfSAkJHtF
WFRSQUNTU1BST1BFUlRJRVN9ICQkY3NzcHJvcHMud2tTY3JpcHQKIGFkZEV4dHJhQ29tcGlsZXIo
Y3NzcHJvcHMpCiAKICMgR0VORVJBVE9SIDYtQjoKQEAgLTY5MCw3ICs2OTAsNyBAQCBjc3N2YWx1
ZXMud2tTY3JpcHQgPSAkJFBXRC9jc3MvbWFrZXZhbHVlCiBjc3N2YWx1ZXMub3V0cHV0ID0gJCR7
V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9DU1NWYWx1ZUtleXdvcmRzLmNwcAogY3NzdmFsdWVz
LmlucHV0ID0gV0FMRE9DU1NWQUxVRVMKIGNzc3ZhbHVlcy5jb21tYW5kcyA9IHBlcmwgLW5lIFwi
cHJpbnQgbGNcIiAke1FNQUtFX0ZJTEVfTkFNRX0gJCRFWFRSQUNTU1ZBTFVFUyA+ICQke1dDX0dF
TkVSQVRFRF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9LmluICYmIGNkICQkV0NfR0VO
RVJBVEVEX1NPVVJDRVNfRElSICYmIHBlcmwgJCRjc3N2YWx1ZXMud2tTY3JpcHQgJiYgJChERUxf
RklMRSkgJHtRTUFLRV9GSUxFX0JBU0V9LmluICR7UU1BS0VfRklMRV9CQVNFfS5ncGVyZgotY3Nz
dmFsdWVzLmRlcGVuZHMgPSAke1FNQUtFX0ZJTEVfTkFNRX0gJCR7RVhUUkFDU1NWQUxVRVN9Citj
c3N2YWx1ZXMuZGVwZW5kcyA9ICR7UU1BS0VfRklMRV9OQU1FfSAkJHtFWFRSQUNTU1ZBTFVFU30g
JCRjc3N2YWx1ZXMud2tTY3JpcHQKIGNzc3ZhbHVlcy5jbGVhbiA9ICR7UU1BS0VfRklMRV9PVVR9
ICR7UU1BS0VfVkFSX1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9
LmgKIGFkZEV4dHJhQ29tcGlsZXIoY3NzdmFsdWVzKQogCkluZGV4OiBXZWJDb3JlL21ha2UtaGFz
aC10b29scy5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL21ha2UtaGFzaC10b29scy5wbAkocmV2
aXNpb24gNjE3MDgpCisrKyBXZWJDb3JlL21ha2UtaGFzaC10b29scy5wbAkod29ya2luZyBjb3B5
KQpAQCAtMjYsMzUgKzI2LDE4MSBAQCB1c2UgRmlsZTo6QmFzZW5hbWU7CiBteSAkb3V0ZGlyID0g
JEFSR1ZbMF07CiBzaGlmdDsKIG15ICRvcHRpb24gPSBiYXNlbmFtZSgkQVJHVlswXSwiLmdwZXJm
Iik7CitteSAkaGFzaFRvb2xzSGVhZGVyID0gIiRvdXRkaXIvSGFzaFRvb2xzLmgiOworCitzdWIg
Y3JlYXRlSGFzaFRvb2xzSGVhZGVyKCkgeworCitvcGVuIEhFQURFUiwgIj4kaGFzaFRvb2xzSGVh
ZGVyIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRoYXNoVG9vbHNIZWFkZXIgZm9yIHdyaXRpbmci
OworcHJpbnQgSEVBREVSIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkg
Z2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKworI2lmbmRl
ZiBIYXNoVG9vbHNfaAorI2RlZmluZSBIYXNoVG9vbHNfaAorCisjaW5jbHVkZSAid3RmL1BsYXRm
b3JtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEVudGl0eSB7CisgICAgY29u
c3QgY2hhciogbmFtZTsKKyAgICBpbnQgY29kZTsKK307CisKK3N0cnVjdCBQdWJJREluZm8gewor
ICAgIGVudW0gZU1vZGUgeworICAgICAgICBlUXVpcmtzLAorICAgICAgICBlUXVpcmtzMywKKyAg
ICAgICAgZUFsbW9zdFN0YW5kYXJkcworICAgIH07CisKKyAgICBjb25zdCBjaGFyKiBuYW1lOwor
ICAgIGVNb2RlIG1vZGVfaWZfbm9fc3lzaWQ7CisgICAgZU1vZGUgbW9kZV9pZl9zeXNpZDsKK307
CisKK3N0cnVjdCBOYW1lZENvbG9yIHsKKyAgICBjb25zdCBjaGFyKiBuYW1lOworICAgIGludCBS
R0JWYWx1ZTsKK307CisKK3N0cnVjdCBQcm9wZXJ0eSB7CisgICAgY29uc3QgY2hhciogbmFtZTsK
KyAgICBpbnQgaWQ7Cit9OworCitzdHJ1Y3QgVmFsdWUgeworICAgIGNvbnN0IGNoYXIqIG5hbWU7
CisgICAgaW50IGlkOworfTsKKworY29uc3QgRW50aXR5KiBmaW5kRW50aXR5KHJlZ2lzdGVyIGNv
bnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbik7Citjb25zdCBQdWJJRElu
Zm8qIGZpbmREb2N0eXBlRW50cnkocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1
bnNpZ25lZCBpbnQgbGVuKTsKK2NvbnN0IE5hbWVkQ29sb3IqIGZpbmRDb2xvcihyZWdpc3RlciBj
b25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pOworY29uc3QgUHJvcGVy
dHkqIGZpbmRQcm9wZXJ0eShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2ln
bmVkIGludCBsZW4pOworY29uc3QgVmFsdWUqIGZpbmRWYWx1ZShyZWdpc3RlciBjb25zdCBjaGFy
KiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pOworCisjaWYgUExBVEZPUk0oQ0hST01J
VU0pCisKK2NvbnN0IEVudGl0eSogd29yZExpc3QoKTsKK2NvbnN0IGludCB3b3JkTGlzdFNpemUo
KTsKKworI2VuZGlmCisKK30KKworI2VuZGlmIC8vIEhhc2hUb29sc19oCisKK0VPRgorY2xvc2Ug
SEVBREVSOworCit9CisKKwogCiBzd2l0Y2ggKCRvcHRpb24pIHsKIAogY2FzZSAiSFRNTEVudGl0
eU5hbWVzIiB7CiAKLSAgICBteSAkaHRtbEVudGl0eU5hbWVzR2VuZXJhdGVkICAgPSAiJG91dGRp
ci9IVE1MRW50aXR5TmFtZXMuY3BwIjsKKyAgICBjcmVhdGVIYXNoVG9vbHNIZWFkZXIoKTsKKwor
ICAgIG15ICRodG1sRW50aXR5TmFtZXNJbXBsICAgICAgICA9ICIkb3V0ZGlyL0hUTUxFbnRpdHlO
YW1lcy5jcHAiOworICAgIG15ICRodG1sRW50aXR5TmFtZXNHZW5lcmF0ZWQgICA9ICIkb3V0ZGly
L0hUTUxFbnRpdHlOYW1lc0hhc2guaCI7CiAgICAgbXkgJGh0bWxFbnRpdHlOYW1lc0dwZXJmICAg
ICAgID0gJEFSR1ZbMF07CiAgICAgc2hpZnQ7CiAKKyAgICBvcGVuIEVOVElUSUVTLCAiPiRodG1s
RW50aXR5TmFtZXNJbXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRodG1sRW50aXR5TmFtZXNJ
bXBsIGZvciB3cml0aW5nIjsKKyAgICBwcmludCBFTlRJVElFUyA8PCAiRU9GIjsKKy8qIFRoaXMg
ZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRv
IG5vdCBlZGl0ICovCisKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lc0hhc2guaCIKKworY29uc3QgRW50aXR5KiBm
aW5kRW50aXR5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50
IGxlbikKK3sKKyAgICByZXR1cm4gSFRNTEVudGl0eUhhc2g6OmZpbmRFbnRpdHlJbXBsKHN0ciwg
bGVuKTsKK30KKworI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorCitjb25zdCBFbnRpdHkqIHdvcmRM
aXN0KCkKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6ZW50aXR5X3dvcmRsaXN0OworfQorCitjb25z
dCBpbnQgd29yZExpc3RTaXplKCkKK3sKKyAgICByZXR1cm4gc2l6ZW9mKFdlYkNvcmU6OmVudGl0
eV93b3JkbGlzdCkgLyBzaXplb2YoRW50aXR5KTsKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENI
Uk9NSVVNKQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK0VPRgorICAgIGNsb3NlIEVOVElU
SUVTOworCiAgICAgc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLXMgMiAk
aHRtbEVudGl0eU5hbWVzR3BlcmYgPiAkaHRtbEVudGl0eU5hbWVzR2VuZXJhdGVkIikgPT0gMCB8
fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKIH0gIyBjYXNlICJIVE1MRW50aXR5
TmFtZXMiCiAKIGNhc2UgIkRvY1R5cGVTdHJpbmdzIiB7CiAKLSAgICBteSAkZG9jVHlwZVN0cmlu
Z3NHZW5lcmF0ZWQgICAgPSAiJG91dGRpci9Eb2NUeXBlU3RyaW5ncy5jcHAiOworICAgIG15ICRk
b2NUeXBlU3RyaW5nc0ltcGwgICAgICAgICA9ICIkb3V0ZGlyL0RvY1R5cGVTdHJpbmdzLmNwcCI7
CisgICAgbXkgJGRvY1R5cGVTdHJpbmdzR2VuZXJhdGVkICAgID0gIiRvdXRkaXIvRG9jVHlwZVN0
cmluZ3NIYXNoLmgiOwogICAgIG15ICRkb2NUeXBlU3RyaW5nc0dwZXJmICAgICAgICA9ICRBUkdW
WzBdOwogICAgIHNoaWZ0OwogCisgICAgb3BlbiBET0NUWVBFU1RSSU5HUywgIj4kZG9jVHlwZVN0
cmluZ3NJbXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRkb2NUeXBlU3RyaW5nc0ltcGwgZm9y
IHdyaXRpbmciOworICAgIHByaW50IERPQ1RZUEVTVFJJTkdTIDw8ICJFT0YiOworLyogVGhpcyBm
aWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8g
bm90IGVkaXQgKi8KKworI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisjaW5jbHVkZSAiRG9jVHlwZVN0cmluZ3NIYXNoLmgiCisKK2NvbnN0IFB1YklESW5mbyog
ZmluZERvY3R5cGVFbnRyeSAocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNp
Z25lZCBpbnQgbGVuKQoreworICAgIHJldHVybiBEb2NUeXBlU3RyaW5nc0hhc2g6OmZpbmREb2N0
eXBlRW50cnlJbXBsKHN0ciwgbGVuKTsKK30KKworfQorCitFT0YKKyAgICBjbG9zZSBET0NUWVBF
U1RSSU5HUzsKKwogICAgIHN5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1zIDIg
JGRvY1R5cGVTdHJpbmdzR3BlcmYgPiAkZG9jVHlwZVN0cmluZ3NHZW5lcmF0ZWQiKSA9PSAwIHx8
IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKIAogfSAjIGNhc2UgIkRvY1R5cGVTdHJp
bmdzIgogCiBjYXNlICJDb2xvckRhdGEiIHsKIAotICAgIG15ICRjb2xvckRhdGFHZW5lcmF0ZWQg
ICA9ICIkb3V0ZGlyL0NvbG9yRGF0YS5jcHAiOwotICAgIG15ICRjb2xvckRhdGFHcGVyZiAgICAg
ICA9ICRBUkdWWzBdOworICAgIG15ICRjb2xvckRhdGFJbXBsICAgICAgICAgICAgICA9ICIkb3V0
ZGlyL0NvbG9yRGF0YS5jcHAiOworICAgIG15ICRjb2xvckRhdGFHZW5lcmF0ZWQgICAgICAgICA9
ICIkb3V0ZGlyL0NvbG9yRGF0YUhhc2guaCI7CisgICAgbXkgJGNvbG9yRGF0YUdwZXJmICAgICAg
ICAgICAgID0gJEFSR1ZbMF07CiAgICAgc2hpZnQ7CiAKKyAgICBvcGVuIENPTE9SREFUQSwgIj4k
Y29sb3JEYXRhSW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkY29sb3JEYXRhSW1wbCBmb3Ig
d3JpdGluZyI7CisgICAgcHJpbnQgQ09MT1JEQVRBIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlz
IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVk
aXQgKi8KKworI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7Cisj
aW5jbHVkZSAiQ29sb3JEYXRhSGFzaC5oIgorCitjb25zdCBzdHJ1Y3QgTmFtZWRDb2xvciogZmlu
ZENvbG9yIChyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBs
ZW4pCit7CisgICAgcmV0dXJuIENvbG9yRGF0YUhhc2g6OmZpbmRDb2xvckltcGwoc3RyLCBsZW4p
OworfQorCit9CisKK0VPRgorICAgIGNsb3NlIENPTE9SREFUQTsKKwogICAgIHN5c3RlbSgiZ3Bl
cmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1zIDIgJGNvbG9yRGF0YUdwZXJmID4gJGNvbG9y
RGF0YUdlbmVyYXRlZCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwog
CiB9ICMgY2FzZSAiQ29sb3JEYXRhIgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3Jl
Lmd5cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCShyZXZp
c2lvbiA2MTcwOCkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJKHdvcmtpbmcg
Y29weSkKQEAgLTU0Niw3ICs1NDYsNiBAQAogICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVE
SUFURV9ESVIpL3dlYmtpdCcsCiAgICAgICAgICAgICAnPChSVUxFX0lOUFVUX1BBVEgpJywKICAg
ICAgICAgICBdLAotICAgICAgICAgICdwcm9jZXNzX291dHB1dHNfYXNfc291cmNlcyc6IDAsCiAg
ICAgICAgIH0sCiAgICAgICAgICMgUnVsZSB0byBidWlsZCBnZW5lcmF0ZWQgSmF2YVNjcmlwdCAo
VjgpIGJpbmRpbmdzIGZyb20gLmlkbCBzb3VyY2UuCiAgICAgICAgIHsKQEAgLTY1Myw2ICs2NTIs
MTMgQEAKICAgICAgICAgIyBBZGRpdGlvbmFsIC5jcHAgZmlsZXMgZnJvbSB0aGUgd2ViY29yZV9i
aW5kaW5nc19zb3VyY2VzIHJ1bGVzLgogICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJ
Uikvd2Via2l0L0NTU0dyYW1tYXIuY3BwJywKICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFU
RV9ESVIpL3dlYmtpdC9YUGF0aEdyYW1tYXIuY3BwJywKKworICAgICAgICAjIEFkZGl0aW9uYWwg
LmNwcCBmaWxlcyBmb3IgSGFzaFRvb2xzLmgKKyAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFU
RV9ESVIpL3dlYmtpdC9IVE1MRW50aXR5TmFtZXMuY3BwJywKKyAgICAgICAgJzwoU0hBUkVEX0lO
VEVSTUVESUFURV9ESVIpL3dlYmtpdC9Eb2NUeXBlU3RyaW5ncy5jcHAnLAorICAgICAgICAnPChT
SEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L0NvbG9yRGF0YS5jcHAnLAorICAgICAgICAn
PChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L0NTU1Byb3BlcnR5TmFtZXMuY3BwJywK
KyAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NWYWx1ZUtleXdv
cmRzLmNwcCcsCiAgICAgICBdLAogICAgICAgJ2NvbmRpdGlvbnMnOiBbCiAgICAgICAgIFsnamF2
YXNjcmlwdF9lbmdpbmU9PSJ2OCInLCB7CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNjE3MDgpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDU4LDYgKzQ1OCwxMSBA
QAogCQkxQUI3RkM4NjBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFCN0ZDNjUwQThCOTJFQzAwRDlE
MzdCIC8qIFhQYXRoVmFsdWUuaCAqLzsgfTsKIAkJMUFCN0ZDODcwQThCOTJFQzAwRDlEMzdCIC8q
IFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUFCN0ZDNjYwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFi
bGVSZWZlcmVuY2UuY3BwICovOyB9OwogCQkxQUI3RkM4ODBBOEI5MkVDMDBEOUQzN0IgLyogWFBh
dGhWYXJpYWJsZVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUFCN0ZDNjcwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZl
cmVuY2UuaCAqLzsgfTsKKwkJMUFCQTc2QzkxMUQyMEU0NzAwNEMyMDFDIC8qIENvbG9yRGF0YS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDA2RjNG
QjExOTgzMDdEMDA5RDU5RDYgLyogQ29sb3JEYXRhLmNwcCAqLzsgfTsKKwkJMUFCQTc2Q0ExMUQy
MEU1MDAwNEMyMDFDIC8qIENTU1Byb3BlcnR5TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQxRUEwMzgxMTk4MzZEQjAwNzEwQkM1IC8qIENT
U1Byb3BlcnR5TmFtZXMuY3BwICovOyB9OworCQkxQUJBNzZDQjExRDIwRTU3MDA0QzIwMUMgLyog
Q1NTVmFsdWVLZXl3b3Jkcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDFFQTAzOTExOTgzNzQ5MDA3MTBCQzUgLyogQ1NTVmFsdWVLZXl3b3Jkcy5j
cHAgKi87IH07CisJCTFBQkE3NkNDMTFEMjBFNUIwMDRDMjAxQyAvKiBEb2NUeXBlU3RyaW5ncy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDA2RjNG
QTExOTgzMDREMDA5RDU5RDYgLyogRG9jVHlwZVN0cmluZ3MuY3BwICovOyB9OworCQkxQUJBNzdG
RDExRDIxMDMxMDA0QzIwMUMgLyogSFRNTEVudGl0eU5hbWVzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDZGNDAyMTE5ODMyOUEwMDlENTlENiAv
KiBIVE1MRW50aXR5TmFtZXMuY3BwICovOyB9OwogCQkxQUJGRTc1MzBDRDk2OEQwMDBGRTQ4MzQg
LyogU1FMVHJhbnNhY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUFCRkU3NTIwQ0Q5NjhEMDAwRkU0ODM0IC8qIFNRTFRyYW5zYWN0aW9uLmNw
cCAqLzsgfTsKIAkJMUFDMjI2MEMwREI2OUYxOTAwODlCNjY5IC8qIEpTRE9NQXBwbGljYXRpb25D
YWNoZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QUMyMjYwQTBEQjY5RjE5MDA4OUI2NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCAqLzsg
fTsKIAkJMUFDMjI2MEQwREI2OUYxOTAwODlCNjY5IC8qIEpTRE9NQXBwbGljYXRpb25DYWNoZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDMjI2MEIw
REI2OUYxOTAwODlCNjY5IC8qIEpTRE9NQXBwbGljYXRpb25DYWNoZS5oICovOyB9OwpAQCAtMjE4
NDUsNiArMjE4NTAsMTEgQEAKIAkJCQkxQUQ4RjgxQzExQ0FCOUU5MDBFOTNFNTQgLyogUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI1MjVBOTY2MTFDQTIzNDAwMDNB
MjNBOCAvKiBKU1NRTEV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEU2QTc4MjEx
RDE2NjFCMDAzMTFGNEEgLyogSFRNTFBhcnNlclNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkxQUJBNzZDOTExRDIwRTQ3MDA0QzIwMUMgLyogQ29sb3JEYXRhLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTFBQkE3NkNBMTFEMjBFNTAwMDRDMjAxQyAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTFBQkE3NkNCMTFEMjBFNTcwMDRDMjAxQyAvKiBDU1NWYWx1
ZUtleXdvcmRzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBQkE3NkNDMTFEMjBFNUIwMDRDMjAx
QyAvKiBEb2NUeXBlU3RyaW5ncy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUJBNzdGRDExRDIx
MDMxMDA0QzIwMUMgLyogSFRNTEVudGl0eU5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDog
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCShyZXZpc2lvbiA2MTcwOCkKKysrIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDcgQEAKICNpbmNsdWRlICJGbG9hdENvbnZlcnNp
b24uaCIKICNpbmNsdWRlICJGb250RmFtaWx5VmFsdWUuaCIKICNpbmNsdWRlICJGb250VmFsdWUu
aCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNs
dWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiUGFpci5oIgpAQCAtODgsOSArODksNiBA
QCBleHRlcm4gaW50IGNzc3l5cGFyc2Uodm9pZCogcGFyc2VyKTsKIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CiB1c2luZyBuYW1lc3BhY2UgV1RGOwogCi0jaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5j
cHAiCi0jaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5jcHAiCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIElOVkFMSURfTlVNX1BBUlNFRF9QUk9QRVJUSUVT
ID0gVUlOVF9NQVg7CkluZGV4OiBXZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAkocmV2aXNpb24gNjE3MDgpCisrKyBXZWJDb3JlL2Nz
cy9tYWtlcHJvcC5wbAkod29ya2luZyBjb3B5KQpAQCAtNDEsMTUgKzQxLDE0IEBAIHByaW50IEdQ
RVJGIDw8ICJFT0YiOwogI2luY2x1ZGUgXCJDU1NQcm9wZXJ0eU5hbWVzLmhcIgogJX0KICVzdHJ1
Y3QtdHlwZQotc3RydWN0IFByb3BlcnR5IHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGlu
dCBpZDsKLX07Ci0lbGFuZ3VhZ2U9QU5TSS1DCitzdHJ1Y3QgUHJvcGVydHk7Cislb21pdC1zdHJ1
Y3QtdHlwZQorJWxhbmd1YWdlPUMrKwogJXJlYWRvbmx5LXRhYmxlcwogJWdsb2JhbC10YWJsZQog
JWNvbXBhcmUtc3RybmNtcAotJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kUHJvcGVy
dHkKKyVkZWZpbmUgY2xhc3MtbmFtZSBDU1NQcm9wZXJ0eU5hbWVzSGFzaAorJWRlZmluZSBsb29r
dXAtZnVuY3Rpb24tbmFtZSBmaW5kUHJvcGVydHlJbXBsCiAlZGVmaW5lIGhhc2gtZnVuY3Rpb24t
bmFtZSBwcm9wZXJ5X2hhc2hfZnVuY3Rpb24KICVkZWZpbmUgd29yZC1hcnJheS1uYW1lIHByb3Bl
cnR5X3dvcmRsaXN0CiAlaW5jbHVkZXMKQEAgLTcyLDYgKzcxLDEwIEBAIHByaW50IEhFQURFUiA8
PCAiRU9GIjsKICNpZm5kZWYgQ1NTUHJvcGVydHlOYW1lc19oCiAjZGVmaW5lIENTU1Byb3BlcnR5
TmFtZXNfaAogCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwog
ZW51bSBDU1NQcm9wZXJ0eUlEIHsKICAgICBDU1NQcm9wZXJ0eUludmFsaWQgPSAwLAogRU9GCkBA
IC05OSwxNSArMTAyLDE3IEBAIHByaW50IEhFQURFUiA8PCAiRU9GIjsKIAogY29uc3QgY2hhciog
Z2V0UHJvcGVydHlOYW1lKENTU1Byb3BlcnR5SUQpOwogCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKICNlbmRpZiAvLyBDU1NQcm9wZXJ0eU5hbWVzX2gKIAogRU9GCiAKIGNsb3NlIEhFQURFUjsK
IAotc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLW4gLXMgMiBDU1NQcm9w
ZXJ0eU5hbWVzLmdwZXJmID4gQ1NTUHJvcGVydHlOYW1lcy5jcHAiKSA9PSAwIHx8IGRpZSAiY2Fs
bGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKK3N5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwi
KlwiIC1EIC1uIC1zIDIgQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiA+IENTU1Byb3BlcnR5TmFtZXNI
YXNoLmgiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKIAotb3BlbiBD
LCAiPj5DU1NQcm9wZXJ0eU5hbWVzLmNwcCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NQcm9w
ZXJ0eU5hbWVzLmNwcCBmb3Igd3JpdGluZyI7CitvcGVuIEMsICI+PkNTU1Byb3BlcnR5TmFtZXNI
YXNoLmgiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTUHJvcGVydHlOYW1lc0hhc2guaCBmb3Ig
d3JpdGluZyI7CiBwcmludCBDICJzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHByb3BlcnR5TmFt
ZVN0cmluZ3NbJG51bV0gPSB7XG4iOwogCiBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKQEAg
LTExNiw2ICsxMjEsMjkgQEAgZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CiAKIHByaW50IEMg
PDwgIkVPRiI7CiB9OworCitFT0YKKworY2xvc2UgQzsKKworbXkgJHByb3BlcnR5TmFtZXNJbXBs
ID0gIkNTU1Byb3BlcnR5TmFtZXMuY3BwIjsKKworb3BlbiBQUk9QRVJUWU5BTUVTLCAiPiRwcm9w
ZXJ0eU5hbWVzSW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkcHJvcGVydHlOYW1lc0ltcGwg
Zm9yIHdyaXRpbmciOworcHJpbnQgUFJPUEVSVFlOQU1FUyA8PCAiRU9GIjsKKy8qIFRoaXMgZmls
ZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5v
dCBlZGl0ICovCisKKworI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKKyNpbmNsdWRlICJI
YXNoVG9vbHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworI2luY2x1ZGUgIkNTU1Byb3BlcnR5
TmFtZXNIYXNoLmgiCisKK2NvbnN0IFByb3BlcnR5KiBmaW5kUHJvcGVydHkgKHJlZ2lzdGVyIGNv
bnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbikKK3sKKyAgICByZXR1cm4g
Q1NTUHJvcGVydHlOYW1lc0hhc2g6OmZpbmRQcm9wZXJ0eUltcGwoc3RyLCBsZW4pOworfQorCiBj
b25zdCBjaGFyKiBnZXRQcm9wZXJ0eU5hbWUoQ1NTUHJvcGVydHlJRCBpZCkKIHsKICAgICBpZiAo
aWQgPCBmaXJzdENTU1Byb3BlcnR5KQpAQCAtMTI1LDcgKzE1MywxMCBAQCBjb25zdCBjaGFyKiBn
ZXRQcm9wZXJ0eU5hbWUoQ1NTUHJvcGVydHlJCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVy
biBwcm9wZXJ0eU5hbWVTdHJpbmdzW2luZGV4XTsKIH0KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCiBFT0YKIAotY2xvc2UgQzsKK2Nsb3NlIFBST1BFUlRZTkFNRVM7CiAKSW5kZXg6IFdlYkNv
cmUvY3NzL21ha2V2YWx1ZXMucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvbWFrZXZhbHVl
cy5wbAkocmV2aXNpb24gNjE3MDgpCisrKyBXZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MiwxNCArNDIsMTMgQEAgcHJpbnQgR1BFUkYgPDwgIkVPRiI7CiAjaW5j
bHVkZSBcIkNTU1ZhbHVlS2V5d29yZHMuaFwiCiAlfQogJXN0cnVjdC10eXBlCi1zdHJ1Y3QgVmFs
dWUgewotICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgaW50IGlkOwotfTsKLSVsYW5ndWFnZT1B
TlNJLUMKK3N0cnVjdCBWYWx1ZTsKKyVvbWl0LXN0cnVjdC10eXBlCislbGFuZ3VhZ2U9QysrCiAl
cmVhZG9ubHktdGFibGVzCiAlY29tcGFyZS1zdHJuY21wCi0lZGVmaW5lIGxvb2t1cC1mdW5jdGlv
bi1uYW1lIGZpbmRWYWx1ZQorJWRlZmluZSBjbGFzcy1uYW1lIENTU1ZhbHVlS2V5d29yZHNIYXNo
CislZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRWYWx1ZUltcGwKICVkZWZpbmUgaGFz
aC1mdW5jdGlvbi1uYW1lIHZhbHVlX2hhc2hfZnVuY3Rpb24KICVkZWZpbmUgd29yZC1hcnJheS1u
YW1lIHZhbHVlX3dvcmRfbGlzdAogJWluY2x1ZGVzCkBAIC03Miw2ICs3MSwxMCBAQCBwcmludCBI
RUFERVIgPDwgIkVPRiI7CiAjaWZuZGVmIENTU1ZhbHVlS2V5d29yZHNfaAogI2RlZmluZSBDU1NW
YWx1ZUtleXdvcmRzX2gKIAorI2luY2x1ZGUgPHN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKIGNvbnN0IGludCBDU1NWYWx1ZUludmFsaWQgPSAwOwogRU9GCiAKQEAgLTkyLDEzICs5
NSwxNiBAQCBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAKIGNvbnN0IGNoYXIqIGdldFZhbHVlTmFt
ZSh1bnNpZ25lZCBzaG9ydCBpZCk7CiAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwogI2VuZGlm
IC8vIENTU1ZhbHVlS2V5d29yZHNfaAorCiBFT0YKIGNsb3NlIEhFQURFUjsKIAotc3lzdGVtKCJn
cGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLW4gLXMgMiBDU1NWYWx1ZUtleXdvcmRzLmdw
ZXJmID4gQ1NTVmFsdWVLZXl3b3Jkcy5jcHAiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBm
YWlsZWQ6ICQ/IjsKK3N5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1uIC1z
IDIgQ1NTVmFsdWVLZXl3b3Jkcy5ncGVyZiA+IENTU1ZhbHVlS2V5d29yZHNIYXNoLmgiKSA9PSAw
IHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKIAotb3BlbiBDLCAiPj5DU1NWYWx1
ZUtleXdvcmRzLmNwcCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NWYWx1ZUtleXdvcmRzLmNw
cCBmb3Igd3JpdGluZyI7CitvcGVuIEMsICI+PkNTU1ZhbHVlS2V5d29yZHNIYXNoLmgiIHx8IGRp
ZSAiQ291bGQgbm90IG9wZW4gQ1NTVmFsdWVLZXl3b3Jkc0hhc2guaCBmb3Igd3JpdGluZyI7CiBw
cmludCBDICAic3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB2YWx1ZUxpc3RbXSA9IHtcbiI7CiBw
cmludCBDICAiXCJcIixcbiI7CiBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKQEAgLTEwNywx
MiArMTEzLDM4IEBAIGZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgewogcHJpbnQgQyA8PCAiRU9G
IjsKICAgICAwCiB9OworCitFT0YKKworY2xvc2UgQzsKKworbXkgJHZhbHVlS2V5d29yZHNJbXBs
ID0gIkNTU1ZhbHVlS2V5d29yZHMuY3BwIjsKKworb3BlbiBWQUxVRUtFWVdPUkRTLCAiPiR2YWx1
ZUtleXdvcmRzSW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkdmFsdWVLZXl3b3Jkc0ltcGwg
Zm9yIHdyaXRpbmciOworcHJpbnQgVkFMVUVLRVlXT1JEUyA8PCAiRU9GIjsKKy8qIFRoaXMgZmls
ZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5v
dCBlZGl0ICovCisKKyNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSAiSGFz
aFRvb2xzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzSGFzaC5oIgorCitjb25zdCBWYWx1ZSogZmluZFZhbHVlIChyZWdpc3RlciBjb25zdCBjaGFy
KiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7CisgICAgcmV0dXJuIENTU1ZhbHVl
S2V5d29yZHNIYXNoOjpmaW5kVmFsdWVJbXBsKHN0ciwgbGVuKTsKK30KKwogY29uc3QgY2hhciog
Z2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKQogewogICAgIGlmIChpZCA+PSBudW1DU1NW
YWx1ZUtleXdvcmRzIHx8IGlkIDw9IDApCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiB2
YWx1ZUxpc3RbaWRdOwogfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKIEVPRgogCi1jbG9z
ZSBDOworY2xvc2UgVkFMVUVLRVlXT1JEUzsKKwpJbmRleDogV2ViQ29yZS9odG1sL0RvY1R5cGVT
dHJpbmdzLmdwZXJmCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9Eb2NUeXBlU3RyaW5ncy5n
cGVyZgkocmV2aXNpb24gNjE3MDgpCisrKyBXZWJDb3JlL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3Bl
cmYJKHdvcmtpbmcgY29weSkKQEAgLTEsMjEgKzEsMTMgQEAKICVzdHJ1Y3QtdHlwZQotc3RydWN0
IFB1YklESW5mbyB7Ci0gICAgZW51bSBlTW9kZSB7IAotICAgICAgICBlUXVpcmtzLCAgICAgICAg
IAotICAgICAgICBlUXVpcmtzMywgICAgICAgCi0gICAgICAgIGVBbG1vc3RTdGFuZGFyZHMKLSAg
ICB9OwotCi0gICAgY29uc3QgY2hhciogbmFtZTsKLSAgICBlTW9kZSBtb2RlX2lmX25vX3N5c2lk
OwotICAgIGVNb2RlIG1vZGVfaWZfc3lzaWQ7Ci19Ci0lbGFuZ3VhZ2U9QU5TSS1DCitzdHJ1Y3Qg
UHViSURJbmZvOworJW9taXQtc3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysKICVyZWFkb25seS10
YWJsZXMKICVnbG9iYWwtdGFibGUKICVjb21wYXJlLXN0cm5jbXAKKyVkZWZpbmUgY2xhc3MtbmFt
ZSBEb2NUeXBlU3RyaW5nc0hhc2gKICVkZWZpbmUgaW5pdGlhbGl6ZXItc3VmZml4ICxQdWJJRElu
Zm86OmVBbG1vc3RTdGFuZGFyZHMsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzCi0lZGVmaW5l
IGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmREb2N0eXBlRW50cnkKKyVkZWZpbmUgbG9va3VwLWZ1
bmN0aW9uLW5hbWUgZmluZERvY3R5cGVFbnRyeUltcGwKICVkZWZpbmUgaGFzaC1mdW5jdGlvbi1u
YW1lIGRvY3R5cGVfaGFzaF9mdW5jdGlvbgogJWluY2x1ZGVzCiAlZW51bQpJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxE
b2N1bWVudC5jcHAJKHJldmlzaW9uIDYxNzA4KQorKysgV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJGcmFtZUxv
YWRlci5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgor
I2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudFBhcnNlci5oIgog
I2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50RmFjdG9y
eS5oIgpAQCAtNzUsOCArNzYsNiBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogCi0jaW5jbHVkZSAiRG9jVHlwZVN0cmluZ3MuY3BwIgotCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CkluZGV4OiBX
ZWJDb3JlL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYJKHJldmlzaW9uIDYxNzA4KQorKysgV2ViQ29yZS9o
dG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgkod29ya2luZyBjb3B5KQpAQCAtMjUsMTYgKzI1LDE2
IEBACiAqLwogJX0KICVzdHJ1Y3QtdHlwZQotc3RydWN0IEVudGl0eSB7Ci0gICAgY29uc3QgY2hh
ciAqbmFtZTsKLSAgICBpbnQgY29kZTsKLX07Ci0lbGFuZ3VhZ2U9QU5TSS1DCitzdHJ1Y3QgRW50
aXR5OworJWxhbmd1YWdlPUMrKworJW9taXQtc3RydWN0LXR5cGUKICVyZWFkb25seS10YWJsZXMK
ICVnbG9iYWwtdGFibGUKICVjb21wYXJlLXN0cm5jbXAKLSVkZWZpbmUgbG9va3VwLWZ1bmN0aW9u
LW5hbWUgZmluZEVudGl0eQorJWRlZmluZSBjbGFzcy1uYW1lIEhUTUxFbnRpdHlIYXNoCislZGVm
aW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRFbnRpdHlJbXBsCiAlZGVmaW5lIGhhc2gtZnVu
Y3Rpb24tbmFtZSBlbnRpdHlfaGFzaF9mdW5jdGlvbgorJWRlZmluZSB3b3JkLWFycmF5LW5hbWUg
ZW50aXR5X3dvcmRsaXN0CiAlaW5jbHVkZXMKICVlbnVtCiAlJQpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxFbnRpdHlQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRW50
aXR5UGFyc2VyLmNwcAkocmV2aXNpb24gNjE3MDgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVudGl0
eVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDIxICsyOCw5IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSFRNTEVudGl0eVBhcnNlci5oIgogCisjaW5jbHVkZSAiSGFz
aFRvb2xzLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi0vLyBVc2UgX19HTlVDX18gaW5z
dGVhZCBvZiBQTEFURk9STShHQ0MpIHRvIHN0YXkgY29uc2lzdGVudCB3aXRoIHRoZSBncGVyZiBn
ZW5lcmF0ZWQgYyBmaWxlCi0jaWZkZWYgX19HTlVDX18KLS8vIFRoZSBtYWluIHBhcnNlciBpbmNs
dWRlcyB0aGlzIHRvbyBzbyB3ZSBhcmUgZ2V0dGluZyB0d28gY29waWVzIG9mIHRoZSBkYXRhLiBI
b3dldmVyLCB0aGlzIHdheSB0aGUgY29kZSBnZXRzIGlubGluZWQuCi0jaW5jbHVkZSAiSFRNTEVu
dGl0eU5hbWVzLmNwcCIKLSNlbHNlCi0vLyBOb3QgaW5saW5lZCBmb3Igbm9uLUdDQyBjb21waWxl
cnMKLXN0cnVjdCBFbnRpdHkgewotICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgaW50IGNvZGU7
Ci19OwotY29uc3Qgc3RydWN0IEVudGl0eSogZmluZEVudGl0eShyZWdpc3RlciBjb25zdCBjaGFy
KiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pOwotI2VuZGlmCi0KIHVzaW5nIG5hbWVz
cGFjZSBXVEY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFdlYkNvcmUvaHRtbC9MZWdh
Y3lIVE1MRG9jdW1lbnRQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9MZWdh
Y3lIVE1MRG9jdW1lbnRQYXJzZXIuY3BwCShyZXZpc2lvbiA2MTcwOCkKKysrIFdlYkNvcmUvaHRt
bC9MZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICsz
OSw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2lu
Y2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIkhU
TUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTGVnYWN5SFRN
TFRyZWVCdWlsZGVyLmgiCkBAIC01NCw4ICs1NSw2IEBACiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5
cGUuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAotI2luY2x1ZGUgIkhUTUxFbnRp
dHlOYW1lcy5jcHAiCi0KICNkZWZpbmUgUFJFTE9BRF9TQ0FOTkVSX0VOQUJMRUQgMQogCiB1c2lu
ZyBuYW1lc3BhY2UgV1RGOwpJbmRleDogV2ViQ29yZS9odG1sL0xlZ2FjeVByZWxvYWRTY2FubmVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvTGVnYWN5UHJlbG9hZFNjYW5uZXIuY3Bw
CShyZXZpc2lvbiA2MTcwOCkKKysrIFdlYkNvcmUvaHRtbC9MZWdhY3lQcmVsb2FkU2Nhbm5lci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDI1ICszOCwxMyBAQAogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1
ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CiAKLS8v
IFVzZSBfX0dOVUNfXyBpbnN0ZWFkIG9mIFBMQVRGT1JNKEdDQykgdG8gc3RheSBjb25zaXN0ZW50
IHdpdGggdGhlIGdwZXJmIGdlbmVyYXRlZCBjIGZpbGUKLSNpZmRlZiBfX0dOVUNfXwotLy8gVGhl
IG1haW4gdG9rZW5pemVyIGluY2x1ZGVzIHRoaXMgdG9vIHNvIHdlIGFyZSBnZXR0aW5nIHR3byBj
b3BpZXMgb2YgdGhlIGRhdGEuIEhvd2V2ZXIsIHRoaXMgd2F5IHRoZSBjb2RlIGdldHMgaW5saW5l
ZC4KLSNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXMuY3BwIgotI2Vsc2UKLS8vIE5vdCBpbmxpbmVk
IGZvciBub24tR0NDIGNvbXBpbGVycwotc3RydWN0IEVudGl0eSB7Ci0gICAgY29uc3QgY2hhciog
bmFtZTsKLSAgICBpbnQgY29kZTsKLX07Ci1jb25zdCBzdHJ1Y3QgRW50aXR5KiBmaW5kRW50aXR5
KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbik7Ci0j
ZW5kaWYKLQogI2RlZmluZSBQUkVMT0FEX0RFQlVHIDAKIAogdXNpbmcgbmFtZXNwYWNlIFdURjsK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCShyZXZpc2lvbiA2MTcwOCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICsxLDEy
IEBACiAlc3RydWN0LXR5cGUKLXN0cnVjdCBOYW1lZENvbG9yIHsKLSAgICBjb25zdCBjaGFyICpu
YW1lOwotICAgIGludCBSR0JWYWx1ZTsKLX07Ci0lbGFuZ3VhZ2U9QU5TSS1DCitzdHJ1Y3QgTmFt
ZWRDb2xvcjsKKyVvbWl0LXN0cnVjdC10eXBlCislbGFuZ3VhZ2U9QysrCiAlcmVhZG9ubHktdGFi
bGVzCiAlZ2xvYmFsLXRhYmxlCiAlY29tcGFyZS1zdHJuY21wCi0lZGVmaW5lIGxvb2t1cC1mdW5j
dGlvbi1uYW1lIGZpbmRDb2xvcgorJWRlZmluZSBjbGFzcy1uYW1lIENvbG9yRGF0YUhhc2gKKyVk
ZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZENvbG9ySW1wbAogJWRlZmluZSBoYXNoLWZ1
bmN0aW9uLW5hbWUgY29sb3JkYXRhX2hhc2hfZnVuY3Rpb24KICVpbmNsdWRlcwogJWVudW0KSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCShyZXZpc2lvbiA2MTcwOCkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwx
MyArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb2xvci5oIgogCisj
aW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNs
dWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYv
TWF0aEV4dHJhcy5oPgogCi0jaW5jbHVkZSAiQ29sb3JEYXRhLmNwcCIKLQogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNp
b24gNjE3MDgpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMDYtMjMgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVu
ZGVmaW5lZCByZWZlcmVuY2UgZXJyb3JzIHdoZW4gbGlua2luZyBkdWUgdG8gZ3BlcmYgYW5kIGlu
bGluaW5nLgorICAgICAgICB3ZWJraXQub3JnL2IvMjkyNDQKKworICAgICAgICBSZWZhY3RvciBn
cGVyZiBjb2RlIGdlbmVyYXRpb24gYW5kIHVzYWdlIHRvIGZpeCB0aGUgZGVidWcgYnVpbGQgd2l0
aCBnY2M+NC40LgorICAgICAgICBIaXRoZXJ0byBncGVyZiBnZW5lcmF0ZWQgQyBjb2RlLCB0aGVz
ZSBmaWxlcyB3ZXJlIGluY2x1ZGVkIGluIG11bHRpcGxlIEMrKyBmaWxlcyBhY3Jvc3MgV2ViQ29y
ZQorICAgICAgICB0byBhY2Nlc3MgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQuIFRoaXMgcmVz
dWx0ZWQgaW4gZGVidWcgYnVpbGQgZmFpbHVyZSB3aXRoIG5ld2VyIGdjYyB2ZXJzaW9ucworICAg
ICAgICBiZWNhdXNlIG9mIGEgYmVoYXZpb3VyIGNoYW5nZSBvZiBnY2MsIHdoaWNoIGRpc2FibGVz
IEMgc3R5bGUgaW5saW5pbmcgaW4gZGVidWcgbW9kZS4KKyAgICAgICAgVGhlIG1ha2UtaGFzaC10
b29scy5wbCBzY3JpcHQgbGV0cyBncGVyZiBnZW5lcmF0ZSBDKysgY29kZSBmb3IgYWxsIGdwZXJm
IGZpbGVzIG5vdywgd2hpY2ggYXJlIGNvbXBpbGVkCisgICAgICAgIGluIHRoZWlyIG93biBjb21w
aWxhdGlvbiB1bml0LgorICAgICAgICBUaGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSB0aGUg
Z2VuZXJhdGVkIGNvZGUgaXMgd3JhcHBlZCBiZWhpbmQgSGFzaFRvb2xzLmgsIHNvIHRoZXJlIGlz
IG5vIG5lZWQKKyAgICAgICAgZm9yIG11bHRpcGxlIGluY2x1c2lvbnMgb2YgZ2VuZXJhdGVkIEMg
ZmlsZXMgdG8gYWNjZXNzIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgICAgICAqIHNyYy9XZWJFbnRp
dGllcy5jcHA6CisKIDIwMTAtMDYtMjMgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNoaW5pY2hpcm8gSGFtYWppLgpJbmRleDogV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJFbnRpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJFbnRpdGllcy5jcHAJKHJldmlzaW9uIDYxNzA4KQorKysgV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJFbnRpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDkgKzMxLDkgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJFbnRpdGllcy5oIgogCi0jaW5jbHVk
ZSA8c3RyaW5nLmg+Ci0KKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgorI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgIlN0cmluZ0J1aWxkZXIu
aCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCkBAIC00MSwxNSArNDEsNiBAQAogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotbmFtZXNwYWNlIHsKLS8vIE5vdGUgdGhhdCB0aGlzIGZp
bGUgaXMgYWxzbyBpbmNsdWRlZCBieSBMZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIuY3BwIHNvIHdl
IGFyZSBnZXR0aW5nCi0vLyB0d28gY29waWVzIG9mIHRoZSBkYXRhIGluIG1lbW9yeS4gIFdlIGNh
biBmaXggdGhpcyBieSBjaGFuZ2luZyB0aGUgc2NyaXB0Ci0vLyB0aGF0IGdlbmVyYXRlZCB0aGUg
YXJyYXkgdG8gY3JlYXRlIGEgc3RhdGljIGNvbnN0IHRoYXQgaXMgaXRzIGxlbmd0aCwgYnV0Ci0v
LyB0aGlzIGlzIGxvdyBwcmlvcml0eSBzaW5jZSB0aGUgZGF0YSBpcyBsZXNzIHRoYW4gNEsuIFdl
IHVzZSBhbm9ueW1vdXMKLS8vIG5hbWVzcGFjZSB0byBwcmV2ZW50IG5hbWUgY29sbGlzaW9ucy4K
LSNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXMuY3BwIiAvLyBOT0xJTlQKLX0KLQogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIHZvaWQgcG9wdWxhdGVNYXAoV1RGOjpIYXNoTWFwPGludCwgV2ViQ29yZTo6
U3RyaW5nPiYgbWFwLApAQCAtOTEsOCArODIsOCBAQCBXZWJFbnRpdGllczo6V2ViRW50aXRpZXMo
Ym9vbCB4bWxFbnRpdGllCiAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKICAgICBlbHNlCiAg
ICAgICAgIHBvcHVsYXRlTWFwKG1fZW50aXRpZXNNYXAsCi0gICAgICAgICAgICAgICAgICAgIHdv
cmRsaXN0LAotICAgICAgICAgICAgICAgICAgICBzaXplb2Yod29yZGxpc3QpIC8gc2l6ZW9mKEVu
dGl0eSksCisgICAgICAgICAgICAgICAgICAgIHdvcmRMaXN0KCksCisgICAgICAgICAgICAgICAg
ICAgIHdvcmRMaXN0U2l6ZSgpLAogICAgICAgICAgICAgICAgICAgICB0cnVlKTsKIH0KIApJbmRl
eDogV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MTcwOCkKKysrIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyMiBAQAorMjAxMC0wNi0yMyAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VW5kZWZpbmVkIHJlZmVyZW5jZSBlcnJvcnMgd2hlbiBsaW5raW5nIGR1ZSB0byBncGVyZiBhbmQg
aW5saW5pbmcuCisgICAgICAgIHdlYmtpdC5vcmcvYi8yOTI0NAorCisgICAgICAgIFJlZmFjdG9y
IGdwZXJmIGNvZGUgZ2VuZXJhdGlvbiBhbmQgdXNhZ2UgdG8gZml4IHRoZSBkZWJ1ZyBidWlsZCB3
aXRoIGdjYz40LjQuCisgICAgICAgIEhpdGhlcnRvIGdwZXJmIGdlbmVyYXRlZCBDIGNvZGUsIHRo
ZXNlIGZpbGVzIHdlcmUgaW5jbHVkZWQgaW4gbXVsdGlwbGUgQysrIGZpbGVzIGFjcm9zcyBXZWJD
b3JlCisgICAgICAgIHRvIGFjY2VzcyB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZC4gVGhpcyBy
ZXN1bHRlZCBpbiBkZWJ1ZyBidWlsZCBmYWlsdXJlIHdpdGggbmV3ZXIgZ2NjIHZlcnNpb25zCisg
ICAgICAgIGJlY2F1c2Ugb2YgYSBiZWhhdmlvdXIgY2hhbmdlIG9mIGdjYywgd2hpY2ggZGlzYWJs
ZXMgQyBzdHlsZSBpbmxpbmluZyBpbiBkZWJ1ZyBtb2RlLgorICAgICAgICBUaGUgbWFrZS1oYXNo
LXRvb2xzLnBsIHNjcmlwdCBsZXRzIGdwZXJmIGdlbmVyYXRlIEMrKyBjb2RlIGZvciBhbGwgZ3Bl
cmYgZmlsZXMgbm93LCB3aGljaCBhcmUgY29tcGlsZWQKKyAgICAgICAgaW4gdGhlaXIgb3duIGNv
bXBpbGF0aW9uIHVuaXQuCisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRo
ZSBnZW5lcmF0ZWQgY29kZSBpcyB3cmFwcGVkIGJlaGluZCBIYXNoVG9vbHMuaCwgc28gdGhlcmUg
aXMgbm8gbmVlZAorICAgICAgICBmb3IgbXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQg
QyBmaWxlcyB0byBhY2Nlc3MgdGhlc2UgZnVuY3Rpb25zLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlckNsaWVudFF0OjpjcmVhdGVQbHVnaW4pOgorCiAyMDEwLTA2LTIzICBEYXZpZCBCb2RkaWUg
IDxkYm9kZGllQHRyb2xsdGVjaC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1
c21hbm4uCkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuY3BwCShyZXZpc2lvbiA2MTcwOCkKKysrIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMyMiw3ICsxMzIy
LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OgogICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bXFTdHlsZVNoZWV0UHJvcGVydGllczsgKytp
KSB7CiAgICAgICAgICAgICAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSA9IHFzdHlsZVNoZWV0
UHJvcGVydGllc1tpXTsKIAotICAgICAgICAgICAgICAgIHN0eWxlU2hlZXQgKz0gUVN0cmluZzo6
ZnJvbUxhdGluMSg6OmdldFByb3BlcnR5TmFtZShwcm9wZXJ0eSkpOworICAgICAgICAgICAgICAg
IHN0eWxlU2hlZXQgKz0gUVN0cmluZzo6ZnJvbUxhdGluMShnZXRQcm9wZXJ0eU5hbWUocHJvcGVy
dHkpKTsKICAgICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9IFFMYXRpbjFDaGFyKCc6Jyk7CiAg
ICAgICAgICAgICAgICAgc3R5bGVTaGVldCArPSBjb21wdXRlZFN0eWxlKGVsZW1lbnQpLT5nZXRQ
cm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKICAgICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9IFFM
YXRpbjFDaGFyKCc7Jyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59674</attachid>
            <date>2010-06-24 10:41:49 -0700</date>
            <delta_ts>2010-07-09 02:05:59 -0700</delta_ts>
            <desc>EFL port patch</desc>
            <filename>gperf.patch</filename>
            <type>text/plain</type>
            <size>2983</size>
            <attacher name="Leandro Pereira">leandro</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAkocmV2aXNpb24gNjE3NjIpCisrKyBXZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xNjkyLDkgKzE2OTYsMTEgQEAKIAogTElTVChBUFBFTkQgV2ViQ29y
ZV9TT1VSQ0VTICR7SlNfSURMX0ZJTEVTfSkKIAotR0VORVJBVEVfR1BFUkYoJHtXRUJDT1JFX0RJ
Un0vaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYpCi1HRU5FUkFURV9HUEVSRigke1dFQkNPUkVf
RElSfS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYpCi1HRU5FUkFURV9HUEVSRigke1dFQkNPUkVf
RElSfS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmKQorTUFLRV9IQVNIX1RPT0xTKCR7V0VCQ09S
RV9ESVJ9L2h0bWwvSFRNTEVudGl0eU5hbWVzKQorTUFLRV9IQVNIX1RPT0xTKCR7V0VCQ09SRV9E
SVJ9L2h0bWwvRG9jVHlwZVN0cmluZ3MpCitNQUtFX0hBU0hfVE9PTFMoJHtERVJJVkVEX1NPVVJD
RVNfRElSfS9DU1NWYWx1ZUtleXdvcmRzKQorTUFLRV9IQVNIX1RPT0xTKCR7REVSSVZFRF9TT1VS
Q0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcykKK01BS0VfSEFTSF9UT09MUygke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9Db2xvckRhdGEpCiAKIEdFTkVSQVRFX1RPS0VOSVpFUigpCiBHRU5FUkFURV9V
U0VSX0FHRU5UX1NUWUxFUygpCkBAIC0xNzA1LDYgKzE3MTEsNyBAQAogR0VORVJBVEVfQ1NTX1BS
T1BFUlRZX05BTUVTKCkKIEdFTkVSQVRFX0NTU19WQUxVRV9LRVlXT1JEUygpCiAKK0FERF9TT1VS
Q0VfREVSSVZFRF9ERVBFTkRFTkNJRVMoJHtERVJJVkVEX1NPVVJDRVNfRElSfS9IYXNoVG9vbHMu
aCBIVE1MRW50aXR5TmFtZXMuY3BwIERvY1R5cGVTdHJpbmdzLmNwcCBDU1NWYWx1ZUtleXdvcmRz
LmNwcCBDU1NQcm9wZXJ0eU5hbWVzLmNwcCBDb2xvckRhdGEuY3BwKQogQUREX1NPVVJDRV9ERVJJ
VkVEX0RFUEVOREVOQ0lFUygke0RFUklWRURfU09VUkNFU19ESVJ9L0NTU0dyYW1tYXIuY3BwIENT
U1ZhbHVlS2V5d29yZHMuaCkKIEFERF9TT1VSQ0VfREVSSVZFRF9ERVBFTkRFTkNJRVMoJHtERVJJ
VkVEX1NPVVJDRVNfRElSfS9DU1NHcmFtbWFyLmNwcCBDU1NQcm9wZXJ0eU5hbWVzLmgpCiBBRERf
U09VUkNFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7V0VCQ09SRV9ESVJ9L2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZU1hcHBpbmdzLmggQ1NTVmFsdWVLZXl3b3Jkcy5oKQpJbmRleDogY21ha2UvV2ViS2l0
R2VuZXJhdG9ycy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjbWFrZS9XZWJLaXRHZW5lcmF0b3JzLmNt
YWtlCShyZXZpc2lvbiA2MTc2MikKKysrIGNtYWtlL1dlYktpdEdlbmVyYXRvcnMuY21ha2UJKHdv
cmtpbmcgY29weSkKQEAgLTIsNyArMiw2IEBACiAjIEl0IHdpbGwgY2hlY2sgZm9yIHRoZSBwcm9n
cmFtcyBhbmQgZGVmaW5lIHRoZSBnaXZlbiBleGVjdXRhYmxlczoKICMgICAgUEVSTF9FWEVDVVRB
QkxFCiAjICAgIEJJU09OX0VYRUNVVEFCTEUKLSMgICAgR1BFUkZfRVhFQ1VUQUJMRQogIyAgICBG
TEVYX0VYRUNVVEFCTEUKIAogSU5DTFVERSAoV2ViS2l0RlMpCkBAIC02OSwyNyArNjgsMjYgQEAK
IEVORE1BQ1JPICgpCiAKIAotRklORF9QUk9HUkFNKEdQRVJGX0VYRUNVVEFCTEUgZ3BlcmYpCi1J
RiAoTk9UIEdQRVJGX0VYRUNVVEFCTEUpCi0gIE1FU1NBR0UoRkFUQUxfRVJST1IgIk1pc3Npbmcg
Z3BlcmYiKQotRU5ESUYgKCkKLUZJTkRfUEFDS0FHRV9IQU5ETEVfU1RBTkRBUkRfQVJHUyhHUGVy
ZiBERUZBVUxUX01TRyBHUEVSRl9FWEVDVVRBQkxFKQotU0VUKFBFUkZfSEFTSF9HRU5FUkFUT1Ig
JHtXRUJDT1JFX0RJUn0vbWFrZS1oYXNoLXRvb2xzLnBsKQotCiAjIC0gQ3JlYXRlIHBlcmZlY3Qg
aGFzaCB0YWJsZXMgdXNpbmcgZ3BlcmYKLSMgR0VORVJBVEVfR1BFUkYoZXh0ZW5zaW9uIHNvdXJj
ZV9maWxlKQotIwotIyBUaGUgZ2VuZXJhdGVkIGZpbGVzIGxpdmVzIGluICR7REVSSVZFRF9TT1VS
Q0VTX0RJUn0gYW5kIGVuZHMgaW4gLmNwcAotTUFDUk8oR0VORVJBVEVfR1BFUkYgX3NvdXJjZSkK
K01BQ1JPKE1BS0VfSEFTSF9UT09MUyBfc291cmNlKQogICBHRVRfRklMRU5BTUVfQ09NUE9ORU5U
KF9uYW1lICR7X3NvdXJjZX0gTkFNRV9XRSkKKyAgCisgIElGICgke19zb3VyY2V9IFNUUkVRVUFM
ICJIVE1MRW50aXR5TmFtZXMiKQorICAgIFNFVChfaGFzaF90b29sc19oICIke0RFUklWRURfU09V
UkNFU19ESVJ9L0hhc2hUb29scy5oIikKKyAgRUxTRSAoKQorICAgIFNFVChfaGFzaF90b29sc19o
ICIiKQorICBFTkRJRiAoKQorCiAgIEFERF9DVVNUT01fQ09NTUFORCgKLSAgICBPVVRQVVQgJHtE
RVJJVkVEX1NPVVJDRVNfRElSfS8ke19uYW1lfS5jcHAKLSAgICBERVBFTkRTICR7X3NvdXJjZX0K
LSAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1BFUkZfSEFTSF9HRU5FUkFUT1J9ICR7
REVSSVZFRF9TT1VSQ0VTX0RJUn0gJHtfc291cmNlfQorICAgIE9VVFBVVCAke0RFUklWRURfU09V
UkNFU19ESVJ9LyR7X25hbWV9LmNwcCAke19oYXNoX3Rvb2xzX2h9CisgICAgQ09NTUFORCAke1BF
UkxfRVhFQ1VUQUJMRX0gJHtXRUJDT1JFX0RJUn0vbWFrZS1oYXNoLXRvb2xzLnBsICR7REVSSVZF
RF9TT1VSQ0VTX0RJUn0gJHtfc291cmNlfS5ncGVyZgogICAgIFZFUkJBVElNKQotRU5ETUFDUk8g
KCkKIAorICBVTlNFVChfbmFtZSkKKyAgVU5TRVQoX2hhc2hfdG9vbHNfaCkKK0VORE1BQ1JPKCkK
IAorCiAjIE1vZHVsZXMgdGhhdCB0aGUgYmluZGluZ3MgZ2VuZXJhdG9yIHNjcmlwdHMgbWF5IHVz
ZQogU0VUKFNDUklQVFNfQklORElOR1MKICAgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yLnBtCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61019</attachid>
            <date>2010-07-09 02:05:59 -0700</date>
            <delta_ts>2010-07-23 04:54:10 -0700</delta_ts>
            <desc>updated patch with EFL changes</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>34304</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">RnJvbSA3M2E4YzNiMDczMjI2Zjc4ZTk2ODZjY2NjMjFlYTZiY2YzMDZlMDJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyYXMgQmVjc2kgPGFiZWNzaUBpbmYudS1zemVnZWQuaHU+
CkRhdGU6IEZyaSwgOSBKdWwgMjAxMCAxMTowMTowMSArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIFVu
ZGVmaW5lZCByZWZlcmVuY2UgZXJyb3JzIHdoZW4gbGlua2luZyBkdWUgdG8gZ3BlcmYgYW5kIGlu
bGluaW5nLgoKLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDIwICsrKwogV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAxMyArKy0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMzcgKysrKysKIFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5n
eXAgICAgICAgICAgICAgICAgICB8ICAgIDggKy0KIFdlYkNvcmUvV2ViQ29yZS5wcmkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qICAgICAgICB8ICAgMTAgKysKIFdlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvY3NzL21ha2Vw
cm9wLnBsICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDkgKysrKysrLS0KIFdlYkNvcmUv
Y3NzL21ha2V2YWx1ZXMucGwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNTAgKysrKysrLS0K
IFdlYkNvcmUvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZiAgICAgICAgICAgICAgICB8ICAgMTgg
Ky0tCiBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcCAgICAgICAgICAgICAgICAgICAgfCAg
ICAzICstCiBXZWJDb3JlL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmICAgICAgICAgICAgICAg
fCAgIDEyICstCiBXZWJDb3JlL2h0bWwvSFRNTEVudGl0eVBhcnNlci5jcHAgICAgICAgICAgICAg
ICAgfCAgIDE0ICstLQogV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxEb2N1bWVudFBhcnNlci5jcHAg
ICAgICAgIHwgICAgMyArLQogV2ViQ29yZS9odG1sL0xlZ2FjeVByZWxvYWRTY2FubmVyLmNwcCAg
ICAgICAgICAgIHwgICAxNCArLS0KIFdlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsICAgICAgICAg
ICAgICAgICAgICAgICB8ICAxNTQgKysrKysrKysrKysrKysrKysrKysrLQogV2ViQ29yZS9wbGF0
Zm9ybS9Db2xvckRhdGEuZ3BlcmYgICAgICAgICAgICAgICAgIHwgICAxMSArLQogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgICAgICAgICAgICAgIHwgICAgMyArLQogV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysKIFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRW50aXRpZXMuY3BwICAgICAgICAgICAgICB8ICAgMTcgKy0t
CiBXZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIx
ICsrKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIHwg
ICAgMiArLQogY21ha2UvV2ViS2l0R2VuZXJhdG9ycy5jbWFrZSAgICAgICAgICAgICAgICAgICAg
IHwgICAzMCArKy0tLQogMjMgZmlsZXMgY2hhbmdlZCwgNDAwIGluc2VydGlvbnMoKyksIDExOCBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggYmQy
OWMxOC4uYmEyMGM4NyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDEwLTA3LTA5ICBBbmRyYXMgQmVjc2kgIDxhYmVjc2lAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVbmRl
ZmluZWQgcmVmZXJlbmNlIGVycm9ycyB3aGVuIGxpbmtpbmcgZHVlIHRvIGdwZXJmIGFuZCBpbmxp
bmluZy4KKyAgICAgICAgd2Via2l0Lm9yZy9iLzI5MjQ0CisKKyAgICAgICAgRUZMIENNYWtlIGNo
YW5nZXMgYnkgTGVhbmRybyBQZXJlaXJhIDxsZWFuZHJvQHByb2Z1c2lvbi5tb2JpPiAKKworICAg
ICAgICBSZWZhY3RvciBncGVyZiBjb2RlIGdlbmVyYXRpb24gYW5kIHVzYWdlIHRvIGZpeCB0aGUg
ZGVidWcgYnVpbGQgd2l0aCBnY2M+NC40LgorICAgICAgICBIaXRoZXJ0byBncGVyZiBnZW5lcmF0
ZWQgQyBjb2RlLCB0aGVzZSBmaWxlcyB3ZXJlIGluY2x1ZGVkIGluIG11bHRpcGxlIEMrKyBmaWxl
cyBhY3Jvc3MgV2ViQ29yZQorICAgICAgICB0byBhY2Nlc3MgdGhlIGZ1bmN0aW9uYWxpdHkgcHJv
dmlkZWQuIFRoaXMgcmVzdWx0ZWQgaW4gZGVidWcgYnVpbGQgZmFpbHVyZSB3aXRoIG5ld2VyIGdj
YyB2ZXJzaW9ucworICAgICAgICBiZWNhdXNlIG9mIGEgYmVoYXZpb3VyIGNoYW5nZSBvZiBnY2Ms
IHdoaWNoIGRpc2FibGVzIEMgc3R5bGUgaW5saW5pbmcgaW4gZGVidWcgbW9kZS4KKyAgICAgICAg
VGhlIG1ha2UtaGFzaC10b29scy5wbCBzY3JpcHQgbGV0cyBncGVyZiBnZW5lcmF0ZSBDKysgY29k
ZSBmb3IgYWxsIGdwZXJmIGZpbGVzIG5vdywgd2hpY2ggYXJlIGNvbXBpbGVkCisgICAgICAgIGlu
IHRoZWlyIG93biBjb21waWxhdGlvbiB1bml0LgorICAgICAgICBUaGUgZnVuY3Rpb25hbGl0eSBw
cm92aWRlZCBieSB0aGUgZ2VuZXJhdGVkIGNvZGUgaXMgd3JhcHBlZCBiZWhpbmQgSGFzaFRvb2xz
LmgsIHNvIHRoZXJlIGlzIG5vIG5lZWQKKyAgICAgICAgZm9yIG11bHRpcGxlIGluY2x1c2lvbnMg
b2YgZ2VuZXJhdGVkIEMgZmlsZXMgdG8gYWNjZXNzIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgICAg
ICAqIGNtYWtlL1dlYktpdEdlbmVyYXRvcnMuY21ha2U6CisKIDIwMTAtMDctMDcgIFJhZmFlbCBB
bnRvZ25vbGxpICA8YW50b2dub2xsaUBwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNGMyM2Q0MC4uYzkyOGQ1YiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01
MjEsNiArNTIxLDEwIEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICAke0RFUklWRURfU09VUkNF
U19ESVJ9L0NTU0dyYW1tYXIuY3BwCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9IVE1MRWxl
bWVudEZhY3RvcnkuY3BwCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9IVE1MRW50aXR5TmFt
ZXMuY3BwCisgICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Eb2NUeXBlU3RyaW5ncy5jcHAKKyAg
ICAke0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1ZhbHVlS2V5d29yZHMuY3BwCisgICAgJHtERVJJ
VkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmNwcAorICAgICR7REVSSVZFRF9TT1VS
Q0VTX0RJUn0vQ29sb3JEYXRhLmNwcAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSFRNTE5h
bWVzLmNwcAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSlNIVE1MRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmNwcAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vVXNlckFnZW50U3R5bGVTaGVl
dHNEYXRhLmNwcApAQCAtMTcxNCw5ICsxNzE4LDExIEBAIEdFTkVSQVRFX0lOU1BFQ1RPUl9GUk9N
X0lETChpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbCkKIAogTElTVChBUFBFTkQgV2Vi
Q29yZV9TT1VSQ0VTICR7SlNfSURMX0ZJTEVTfSAke0luc3BlY3Rvcl9JRExfRklMRVN9KQogCi1H
RU5FUkFURV9HUEVSRigke1dFQkNPUkVfRElSfS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZikK
LUdFTkVSQVRFX0dQRVJGKCR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZikK
LUdFTkVSQVRFX0dQRVJGKCR7V0VCQ09SRV9ESVJ9L2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYp
CitNQUtFX0hBU0hfVE9PTFMoJHtXRUJDT1JFX0RJUn0vaHRtbC9IVE1MRW50aXR5TmFtZXMpCitN
QUtFX0hBU0hfVE9PTFMoJHtXRUJDT1JFX0RJUn0vaHRtbC9Eb2NUeXBlU3RyaW5ncykKK01BS0Vf
SEFTSF9UT09MUygke0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1ZhbHVlS2V5d29yZHMpCitNQUtF
X0hBU0hfVE9PTFMoJHtERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzKQorTUFL
RV9IQVNIX1RPT0xTKCR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL0NvbG9yRGF0YSkKIAogR0VORVJB
VEVfVE9LRU5JWkVSKCkKIEdFTkVSQVRFX1VTRVJfQUdFTlRfU1RZTEVTKCkKQEAgLTE3MjcsNiAr
MTczMyw3IEBAIEdFTkVSQVRFX0dSQU1NQVIoeHBhdGh5eSAke1dFQkNPUkVfRElSfS94bWwvWFBh
dGhHcmFtbWFyLnkpCiBHRU5FUkFURV9DU1NfUFJPUEVSVFlfTkFNRVMoKQogR0VORVJBVEVfQ1NT
X1ZBTFVFX0tFWVdPUkRTKCkKIAorQUREX1NPVVJDRV9ERVJJVkVEX0RFUEVOREVOQ0lFUygke0RF
UklWRURfU09VUkNFU19ESVJ9L0hhc2hUb29scy5oIEhUTUxFbnRpdHlOYW1lcy5jcHAgRG9jVHlw
ZVN0cmluZ3MuY3BwIENTU1ZhbHVlS2V5d29yZHMuY3BwIENTU1Byb3BlcnR5TmFtZXMuY3BwIENv
bG9yRGF0YS5jcHApCiBBRERfU09VUkNFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7REVSSVZFRF9T
T1VSQ0VTX0RJUn0vQ1NTR3JhbW1hci5jcHAgQ1NTVmFsdWVLZXl3b3Jkcy5oKQogQUREX1NPVVJD
RV9ERVJJVkVEX0RFUEVOREVOQ0lFUygke0RFUklWRURfU09VUkNFU19ESVJ9L0NTU0dyYW1tYXIu
Y3BwIENTU1Byb3BlcnR5TmFtZXMuaCkKIEFERF9TT1VSQ0VfREVSSVZFRF9ERVBFTkRFTkNJRVMo
JHtXRUJDT1JFX0RJUn0vY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBDU1NWYWx1ZUtl
eXdvcmRzLmgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGVlMzczM2YuLjhhOTU0MzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTAtMDctMDkgIEFu
ZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuZGVmaW5lZCByZWZlcmVuY2UgZXJyb3JzIHdoZW4g
bGlua2luZyBkdWUgdG8gZ3BlcmYgYW5kIGlubGluaW5nLgorICAgICAgICB3ZWJraXQub3JnL2Iv
MjkyNDQKKworICAgICAgICBFRkwgQ01ha2UgY2hhbmdlcyBieSBMZWFuZHJvIFBlcmVpcmEgPGxl
YW5kcm9AcHJvZnVzaW9uLm1vYmk+IAorCisgICAgICAgIFJlZmFjdG9yIGdwZXJmIGNvZGUgZ2Vu
ZXJhdGlvbiBhbmQgdXNhZ2UgdG8gZml4IHRoZSBkZWJ1ZyBidWlsZCB3aXRoIGdjYz40LjQuCisg
ICAgICAgIEhpdGhlcnRvIGdwZXJmIGdlbmVyYXRlZCBDIGNvZGUsIHRoZXNlIGZpbGVzIHdlcmUg
aW5jbHVkZWQgaW4gbXVsdGlwbGUgQysrIGZpbGVzIGFjcm9zcyBXZWJDb3JlCisgICAgICAgIHRv
IGFjY2VzcyB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZC4gVGhpcyByZXN1bHRlZCBpbiBkZWJ1
ZyBidWlsZCBmYWlsdXJlIHdpdGggbmV3ZXIgZ2NjIHZlcnNpb25zCisgICAgICAgIGJlY2F1c2Ug
b2YgYSBiZWhhdmlvdXIgY2hhbmdlIG9mIGdjYywgd2hpY2ggZGlzYWJsZXMgQyBzdHlsZSBpbmxp
bmluZyBpbiBkZWJ1ZyBtb2RlLgorICAgICAgICBUaGUgbWFrZS1oYXNoLXRvb2xzLnBsIHNjcmlw
dCBsZXRzIGdwZXJmIGdlbmVyYXRlIEMrKyBjb2RlIGZvciBhbGwgZ3BlcmYgZmlsZXMgbm93LCB3
aGljaCBhcmUgY29tcGlsZWQKKyAgICAgICAgaW4gdGhlaXIgb3duIGNvbXBpbGF0aW9uIHVuaXQu
CisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoZSBnZW5lcmF0ZWQgY29k
ZSBpcyB3cmFwcGVkIGJlaGluZCBIYXNoVG9vbHMuaCwgc28gdGhlcmUgaXMgbm8gbmVlZAorICAg
ICAgICBmb3IgbXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQgQyBmaWxlcyB0byBhY2Nl
c3MgdGhlc2UgZnVuY3Rpb25zLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQuCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cC9XZWJDb3JlLmd5
cDoKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgICog
Y3NzL21ha2Vwcm9wLnBsOgorICAgICAgICAqIGNzcy9tYWtldmFsdWVzLnBsOgorICAgICAgICAq
IGh0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmY6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQu
Y3BwOgorICAgICAgICAqIGh0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmOgorICAgICAgICAqIGh0
bWwvSFRNTEVudGl0eVBhcnNlci5jcHA6CisgICAgICAgICogaHRtbC9MZWdhY3lIVE1MRG9jdW1l
bnRQYXJzZXIuY3BwOgorICAgICAgICAqIGh0bWwvTGVnYWN5UHJlbG9hZFNjYW5uZXIuY3BwOgor
ICAgICAgICAqIG1ha2UtaGFzaC10b29scy5wbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Db2xvckRh
dGEuZ3BlcmY6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwOgorCiAyMDEw
LTA3LTA5ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3Jl
Lmd5cCBiL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKaW5kZXggNzNkZTc5Zi4uZGY2
MzI2ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9X
ZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCkBAIC01ODIsNyArNTgyLDYgQEAKICAgICAg
ICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQnLAogICAgICAgICAgICAg
JzwoUlVMRV9JTlBVVF9QQVRIKScsCiAgICAgICAgICAgXSwKLSAgICAgICAgICAncHJvY2Vzc19v
dXRwdXRzX2FzX3NvdXJjZXMnOiAwLAogICAgICAgICB9LAogICAgICAgICAjIFJ1bGUgdG8gYnVp
bGQgZ2VuZXJhdGVkIEphdmFTY3JpcHQgKFY4KSBiaW5kaW5ncyBmcm9tIC5pZGwgc291cmNlLgog
ICAgICAgICB7CkBAIC02OTIsNiArNjkxLDEzIEBACiAKICAgICAgICAgIyBBZGRpdGlvbmFsIC5j
cHAgZmlsZXMgZnJvbSB0aGUgd2ViY29yZV9pbnNwZWN0b3Jfc291cmNlcyBsaXN0LgogICAgICAg
ICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2ViY29yZS9iaW5kaW5ncy9SZW1vdGVJbnNw
ZWN0b3JGcm9udGVuZDIuY3BwJywKKworICAgICAgICAjIEFkZGl0aW9uYWwgLmNwcCBmaWxlcyBm
b3IgSGFzaFRvb2xzLmgKKyAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtp
dC9IVE1MRW50aXR5TmFtZXMuY3BwJywKKyAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9E
SVIpL3dlYmtpdC9Eb2NUeXBlU3RyaW5ncy5jcHAnLAorICAgICAgICAnPChTSEFSRURfSU5URVJN
RURJQVRFX0RJUikvd2Via2l0L0NvbG9yRGF0YS5jcHAnLAorICAgICAgICAnPChTSEFSRURfSU5U
RVJNRURJQVRFX0RJUikvd2Via2l0L0NTU1Byb3BlcnR5TmFtZXMuY3BwJywKKyAgICAgICAgJzwo
U0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NWYWx1ZUtleXdvcmRzLmNwcCcsCiAg
ICAgICBdLAogICAgICAgJ2NvbmRpdGlvbnMnOiBbCiAgICAgICAgIFsnamF2YXNjcmlwdF9lbmdp
bmU9PSJ2OCInLCB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9X
ZWJDb3JlLnByaQppbmRleCBhM2IyNDhkLi5iNTE1MWUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTY5NSw3ICs2OTUsNyBAQCBj
c3Nwcm9wcy53a1NjcmlwdCA9ICQkUFdEL2Nzcy9tYWtlcHJvcC5wbAogY3NzcHJvcHMub3V0cHV0
ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmNwcAogY3Nz
cHJvcHMuaW5wdXQgPSBXQUxET0NTU1BST1BTCiBjc3Nwcm9wcy5jb21tYW5kcyA9IHBlcmwgLW5l
IFwicHJpbnQgbGNcIiAke1FNQUtFX0ZJTEVfTkFNRX0gJCR7REFTSEJPQVJEU1VQUE9SVENTU1BS
T1BFUlRJRVN9ICQke0VYVFJBQ1NTUFJPUEVSVElFU30gPiAkJHtXQ19HRU5FUkFURURfU09VUkNF
U19ESVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5pbiAmJiBjZCAkJFdDX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUiAmJiBwZXJsICQkY3NzcHJvcHMud2tTY3JpcHQgJiYgJChERUxfRklMRSkgJHtRTUFLRV9G
SUxFX0JBU0V9LmluICR7UU1BS0VfRklMRV9CQVNFfS5ncGVyZgotY3NzcHJvcHMuZGVwZW5kcyA9
ICR7UU1BS0VfRklMRV9OQU1FfSAkJHtEQVNIQk9BUkRTVVBQT1JUQ1NTUFJPUEVSVElFU30gJCR7
RVhUUkFDU1NQUk9QRVJUSUVTfQorY3NzcHJvcHMuZGVwZW5kcyA9ICR7UU1BS0VfRklMRV9OQU1F
fSAkJHtEQVNIQk9BUkRTVVBQT1JUQ1NTUFJPUEVSVElFU30gJCR7RVhUUkFDU1NQUk9QRVJUSUVT
fSAkJGNzc3Byb3BzLndrU2NyaXB0CiBhZGRFeHRyYUNvbXBpbGVyKGNzc3Byb3BzKQogCiAjIEdF
TkVSQVRPUiA2LUI6CkBAIC03MDMsNyArNzAzLDcgQEAgY3NzdmFsdWVzLndrU2NyaXB0ID0gJCRQ
V0QvY3NzL21ha2V2YWx1ZXMucGwKIGNzc3ZhbHVlcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURf
U09VUkNFU19ESVJ9L0NTU1ZhbHVlS2V5d29yZHMuY3BwCiBjc3N2YWx1ZXMuaW5wdXQgPSBXQUxE
T0NTU1ZBTFVFUwogY3NzdmFsdWVzLmNvbW1hbmRzID0gcGVybCAtbmUgXCJwcmludCBsY1wiICR7
UU1BS0VfRklMRV9OQU1FfSAkJEVYVFJBQ1NTVkFMVUVTID4gJCR7V0NfR0VORVJBVEVEX1NPVVJD
RVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJiYgY2QgJCRXQ19HRU5FUkFURURfU09VUkNF
U19ESVIgJiYgcGVybCAkJGNzc3ZhbHVlcy53a1NjcmlwdCAmJiAkKERFTF9GSUxFKSAke1FNQUtF
X0ZJTEVfQkFTRX0uaW4gJHtRTUFLRV9GSUxFX0JBU0V9LmdwZXJmCi1jc3N2YWx1ZXMuZGVwZW5k
cyA9ICR7UU1BS0VfRklMRV9OQU1FfSAkJHtFWFRSQUNTU1ZBTFVFU30KK2Nzc3ZhbHVlcy5kZXBl
bmRzID0gJHtRTUFLRV9GSUxFX05BTUV9ICQke0VYVFJBQ1NTVkFMVUVTfSAkJGNzc3ZhbHVlcy53
a1NjcmlwdAogY3NzdmFsdWVzLmNsZWFuID0gJHtRTUFLRV9GSUxFX09VVH0gJHtRTUFLRV9WQVJf
V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uaAogYWRkRXh0cmFD
b21waWxlcihjc3N2YWx1ZXMpCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMDAzMmQwMy4uMDNlZTE2OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTQ4Miw2ICs0ODIsMTEgQEAKIAkJMUFCN0ZDODYwQThCOTJF
QzAwRDlEMzdCIC8qIFhQYXRoVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBQjdGQzY1MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhbHVlLmgg
Ki87IH07CiAJCTFBQjdGQzg3MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhcmlhYmxlUmVmZXJl
bmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFB
QjdGQzY2MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhcmlhYmxlUmVmZXJlbmNlLmNwcCAqLzsg
fTsKIAkJMUFCN0ZDODgwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQjdGQzY3
MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhcmlhYmxlUmVmZXJlbmNlLmggKi87IH07CisJCTFB
QkE3NkM5MTFEMjBFNDcwMDRDMjAxQyAvKiBDb2xvckRhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwNkYzRkIxMTk4MzA3RDAwOUQ1OUQ2IC8q
IENvbG9yRGF0YS5jcHAgKi87IH07CisJCTFBQkE3NkNBMTFEMjBFNTAwMDRDMjAxQyAvKiBDU1NQ
cm9wZXJ0eU5hbWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU0MUVBMDM4MTE5ODM2REIwMDcxMEJDNSAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCAq
LzsgfTsKKwkJMUFCQTc2Q0IxMUQyMEU1NzAwNEMyMDFDIC8qIENTU1ZhbHVlS2V5d29yZHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQxRUEwMzkx
MTk4Mzc0OTAwNzEwQkM1IC8qIENTU1ZhbHVlS2V5d29yZHMuY3BwICovOyB9OworCQkxQUJBNzZD
QzExRDIwRTVCMDA0QzIwMUMgLyogRG9jVHlwZVN0cmluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwNkYzRkExMTk4MzA0RDAwOUQ1OUQ2IC8q
IERvY1R5cGVTdHJpbmdzLmNwcCAqLzsgfTsKKwkJMUFCQTc3RkQxMUQyMTAzMTAwNEMyMDFDIC8q
IEhUTUxFbnRpdHlOYW1lcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDA2RjQwMjExOTgzMjlBMDA5RDU5RDYgLyogSFRNTEVudGl0eU5hbWVzLmNw
cCAqLzsgfTsKIAkJMUFCRkU3NTMwQ0Q5NjhEMDAwRkU0ODM0IC8qIFNRTFRyYW5zYWN0aW9uLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQkZFNzUy
MENEOTY4RDAwMEZFNDgzNCAvKiBTUUxUcmFuc2FjdGlvbi5jcHAgKi87IH07CiAJCTFBQzIyNjBD
MERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDMjI2MEEwREI2OUYxOTAwODlC
NjY5IC8qIEpTRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgKi87IH07CiAJCTFBQzIyNjBEMERCNjlG
MTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQzIyNjBCMERCNjlGMTkwMDg5QjY2OSAvKiBK
U0RPTUFwcGxpY2F0aW9uQ2FjaGUuaCAqLzsgfTsKQEAgLTIyMTE4LDYgKzIyMTIzLDExIEBACiAJ
CQkJNEY0RjVGRkIxMUNCRDJFMTAwQTE4NkJGIC8qIFJlbW90ZUluc3BlY3RvckZyb250ZW5kMi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0VGNTYxMDExRTQwNzgzMDA3RTAyNkYgLyogSFRNTENv
bnN0cnVjdGlvblNpdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBOENBNUYxMUU0RTZEMTAw
ODEyRkI3IC8qIEJhY2tGb3J3YXJkTGlzdEltcGwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUFC
QTc2QzkxMUQyMEU0NzAwNEMyMDFDIC8qIENvbG9yRGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkxQUJBNzZDQTExRDIwRTUwMDA0QzIwMUMgLyogQ1NTUHJvcGVydHlOYW1lcy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkxQUJBNzZDQjExRDIwRTU3MDA0QzIwMUMgLyogQ1NTVmFsdWVLZXl3b3Jk
cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUJBNzZDQzExRDIwRTVCMDA0QzIwMUMgLyogRG9j
VHlwZVN0cmluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUFCQTc3RkQxMUQyMTAzMTAwNEMy
MDFDIC8qIEhUTUxFbnRpdHlOYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4
IDQ2YmMxNGQuLmUxMjQwZjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAK
KysrIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNjEsNiArNjEsNyBAQAogI2luY2x1
ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkZvbnRGYW1pbHlWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkZvbnRWYWx1ZS5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIk1l
ZGlhTGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlFeHAuaCIKICNpbmNsdWRlICJQYWlyLmgi
CkBAIC04OCw5ICs4OSw2IEBAIGV4dGVybiBpbnQgY3NzeXlwYXJzZSh2b2lkKiBwYXJzZXIpOwog
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKLSNpbmNsdWRlICJD
U1NQcm9wZXJ0eU5hbWVzLmNwcCIKLSNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmNwcCIKLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgSU5WQUxJRF9OVU1f
UEFSU0VEX1BST1BFUlRJRVMgPSBVSU5UX01BWDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL21h
a2Vwcm9wLnBsIGIvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwKaW5kZXggMGZkMWYwOC4uMGRkODQ0
NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwKKysrIGIvV2ViQ29yZS9jc3Mv
bWFrZXByb3AucGwKQEAgLTQxLDE1ICs0MSwxNCBAQCBwcmludCBHUEVSRiA8PCAiRU9GIjsKICNp
bmNsdWRlIFwiQ1NTUHJvcGVydHlOYW1lcy5oXCIKICV9CiAlc3RydWN0LXR5cGUKLXN0cnVjdCBQ
cm9wZXJ0eSB7Ci0gICAgY29uc3QgY2hhciogbmFtZTsKLSAgICBpbnQgaWQ7Ci19OwotJWxhbmd1
YWdlPUFOU0ktQworc3RydWN0IFByb3BlcnR5OworJW9taXQtc3RydWN0LXR5cGUKKyVsYW5ndWFn
ZT1DKysKICVyZWFkb25seS10YWJsZXMKICVnbG9iYWwtdGFibGUKICVjb21wYXJlLXN0cm5jbXAK
LSVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZFByb3BlcnR5CislZGVmaW5lIGNsYXNz
LW5hbWUgQ1NTUHJvcGVydHlOYW1lc0hhc2gKKyVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUg
ZmluZFByb3BlcnR5SW1wbAogJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgcHJvcGVyeV9oYXNo
X2Z1bmN0aW9uCiAlZGVmaW5lIHdvcmQtYXJyYXktbmFtZSBwcm9wZXJ0eV93b3JkbGlzdAogJWlu
Y2x1ZGVzCkBAIC03Miw2ICs3MSwxMCBAQCBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAjaWZuZGVm
IENTU1Byb3BlcnR5TmFtZXNfaAogI2RlZmluZSBDU1NQcm9wZXJ0eU5hbWVzX2gKIAorI2luY2x1
ZGUgPHN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKIGVudW0gQ1NTUHJvcGVydHlJ
RCB7CiAgICAgQ1NTUHJvcGVydHlJbnZhbGlkID0gMCwKIEVPRgpAQCAtOTksMTUgKzEwMiwxNyBA
QCBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAKIGNvbnN0IGNoYXIqIGdldFByb3BlcnR5TmFtZShD
U1NQcm9wZXJ0eUlEKTsKIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCiAjZW5kaWYgLy8gQ1NT
UHJvcGVydHlOYW1lc19oCiAKIEVPRgogCiBjbG9zZSBIRUFERVI7CiAKLXN5c3RlbSgiZ3BlcmYg
LS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1uIC1zIDIgQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiA+
IENTU1Byb3BlcnR5TmFtZXMuY3BwIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVk
OiAkPyI7CitzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtbiAtcyAyIENT
U1Byb3BlcnR5TmFtZXMuZ3BlcmYgPiBDU1NQcm9wZXJ0eU5hbWVzSGFzaC5oIikgPT0gMCB8fCBk
aWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKLW9wZW4gQywgIj4+Q1NTUHJvcGVydHlO
YW1lcy5jcHAiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTUHJvcGVydHlOYW1lcy5jcHAgZm9y
IHdyaXRpbmciOworb3BlbiBDLCAiPj5DU1NQcm9wZXJ0eU5hbWVzSGFzaC5oIiB8fCBkaWUgIkNv
dWxkIG5vdCBvcGVuIENTU1Byb3BlcnR5TmFtZXNIYXNoLmggZm9yIHdyaXRpbmciOwogcHJpbnQg
QyAic3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBwcm9wZXJ0eU5hbWVTdHJpbmdzWyRudW1dID0g
e1xuIjsKIAogZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CkBAIC0xMTYsNiArMTIxLDI5IEBA
IGZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgewogCiBwcmludCBDIDw8ICJFT0YiOwogfTsKKwor
RU9GCisKK2Nsb3NlIEM7CisKK215ICRwcm9wZXJ0eU5hbWVzSW1wbCA9ICJDU1NQcm9wZXJ0eU5h
bWVzLmNwcCI7CisKK29wZW4gUFJPUEVSVFlOQU1FUywgIj4kcHJvcGVydHlOYW1lc0ltcGwiIHx8
IGRpZSAiQ291bGQgbm90IG9wZW4gJHByb3BlcnR5TmFtZXNJbXBsIGZvciB3cml0aW5nIjsKK3By
aW50IFBST1BFUlRZTkFNRVMgPDwgIkVPRiI7CisvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxs
eSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBkbyBub3QgZWRpdCAqLworCisKKyNp
bmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzSGFzaC5oIgorCitj
b25zdCBQcm9wZXJ0eSogZmluZFByb3BlcnR5IChyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJl
Z2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7CisgICAgcmV0dXJuIENTU1Byb3BlcnR5TmFtZXNI
YXNoOjpmaW5kUHJvcGVydHlJbXBsKHN0ciwgbGVuKTsKK30KKwogY29uc3QgY2hhciogZ2V0UHJv
cGVydHlOYW1lKENTU1Byb3BlcnR5SUQgaWQpCiB7CiAgICAgaWYgKGlkIDwgZmlyc3RDU1NQcm9w
ZXJ0eSkKQEAgLTEyNSw3ICsxNTMsMTAgQEAgY29uc3QgY2hhciogZ2V0UHJvcGVydHlOYW1lKENT
U1Byb3BlcnR5SUQgaWQpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBwcm9wZXJ0eU5h
bWVTdHJpbmdzW2luZGV4XTsKIH0KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCiBFT0YKIAot
Y2xvc2UgQzsKK2Nsb3NlIFBST1BFUlRZTkFNRVM7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3Nz
L21ha2V2YWx1ZXMucGwgYi9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCmluZGV4IDQyMWU0NzAu
LmM5ZjdmNzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwKKysrIGIvV2Vi
Q29yZS9jc3MvbWFrZXZhbHVlcy5wbApAQCAtNDIsMTQgKzQyLDEzIEBAIHByaW50IEdQRVJGIDw8
ICJFT0YiOwogI2luY2x1ZGUgXCJDU1NWYWx1ZUtleXdvcmRzLmhcIgogJX0KICVzdHJ1Y3QtdHlw
ZQotc3RydWN0IFZhbHVlIHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGludCBpZDsKLX07
Ci0lbGFuZ3VhZ2U9QU5TSS1DCitzdHJ1Y3QgVmFsdWU7Cislb21pdC1zdHJ1Y3QtdHlwZQorJWxh
bmd1YWdlPUMrKwogJXJlYWRvbmx5LXRhYmxlcwogJWNvbXBhcmUtc3RybmNtcAotJWRlZmluZSBs
b29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kVmFsdWUKKyVkZWZpbmUgY2xhc3MtbmFtZSBDU1NWYWx1
ZUtleXdvcmRzSGFzaAorJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kVmFsdWVJbXBs
CiAlZGVmaW5lIGhhc2gtZnVuY3Rpb24tbmFtZSB2YWx1ZV9oYXNoX2Z1bmN0aW9uCiAlZGVmaW5l
IHdvcmQtYXJyYXktbmFtZSB2YWx1ZV93b3JkX2xpc3QKICVpbmNsdWRlcwpAQCAtNzIsNiArNzEs
MTAgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogI2lmbmRlZiBDU1NWYWx1ZUtleXdvcmRzX2gK
ICNkZWZpbmUgQ1NTVmFsdWVLZXl3b3Jkc19oCiAKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCiBjb25zdCBpbnQgQ1NTVmFsdWVJbnZhbGlkID0gMDsKIEVPRgog
CkBAIC05MiwxMyArOTUsMTYgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogCiBjb25zdCBjaGFy
KiBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpOwogCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKICNlbmRpZiAvLyBDU1NWYWx1ZUtleXdvcmRzX2gKKwogRU9GCiBjbG9zZSBIRUFERVI7
CiAKLXN5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1uIC1zIDIgQ1NTVmFs
dWVLZXl3b3Jkcy5ncGVyZiA+IENTU1ZhbHVlS2V5d29yZHMuY3BwIikgPT0gMCB8fCBkaWUgImNh
bGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CitzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1c
IipcIiAtRCAtbiAtcyAyIENTU1ZhbHVlS2V5d29yZHMuZ3BlcmYgPiBDU1NWYWx1ZUtleXdvcmRz
SGFzaC5oIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKLW9wZW4g
QywgIj4+Q1NTVmFsdWVLZXl3b3Jkcy5jcHAiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTVmFs
dWVLZXl3b3Jkcy5jcHAgZm9yIHdyaXRpbmciOworb3BlbiBDLCAiPj5DU1NWYWx1ZUtleXdvcmRz
SGFzaC5oIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1ZhbHVlS2V5d29yZHNIYXNoLmggZm9y
IHdyaXRpbmciOwogcHJpbnQgQyAgInN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdmFsdWVMaXN0
W10gPSB7XG4iOwogcHJpbnQgQyAgIlwiXCIsXG4iOwogZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVz
KSB7CkBAIC0xMDcsMTIgKzExMywzOCBAQCBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKIHBy
aW50IEMgPDwgIkVPRiI7CiAgICAgMAogfTsKKworRU9GCisKK2Nsb3NlIEM7CisKK215ICR2YWx1
ZUtleXdvcmRzSW1wbCA9ICJDU1NWYWx1ZUtleXdvcmRzLmNwcCI7CisKK29wZW4gVkFMVUVLRVlX
T1JEUywgIj4kdmFsdWVLZXl3b3Jkc0ltcGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJHZhbHVl
S2V5d29yZHNJbXBsIGZvciB3cml0aW5nIjsKK3ByaW50IFZBTFVFS0VZV09SRFMgPDwgIkVPRiI7
CisvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRv
b2xzLnBsLCBkbyBub3QgZWRpdCAqLworCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgor
I2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAi
Q1NTVmFsdWVLZXl3b3Jkc0hhc2guaCIKKworY29uc3QgVmFsdWUqIGZpbmRWYWx1ZSAocmVnaXN0
ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHJl
dHVybiBDU1NWYWx1ZUtleXdvcmRzSGFzaDo6ZmluZFZhbHVlSW1wbChzdHIsIGxlbik7Cit9CisK
IGNvbnN0IGNoYXIqIGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBpZCkKIHsKICAgICBpZiAo
aWQgPj0gbnVtQ1NTVmFsdWVLZXl3b3JkcyB8fCBpZCA8PSAwKQogICAgICAgICByZXR1cm4gMDsK
ICAgICByZXR1cm4gdmFsdWVMaXN0W2lkXTsKIH0KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CiBFT0YKIAotY2xvc2UgQzsKK2Nsb3NlIFZBTFVFS0VZV09SRFM7CisKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZiBiL1dlYkNvcmUvaHRtbC9Eb2NUeXBlU3Ry
aW5ncy5ncGVyZgppbmRleCA1YzIxM2IwLi42YjdkYTA0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKKysrIGIvV2ViQ29yZS9odG1sL0RvY1R5cGVTdHJpbmdz
LmdwZXJmCkBAIC0xLDIxICsxLDEzIEBACiAlc3RydWN0LXR5cGUKLXN0cnVjdCBQdWJJREluZm8g
ewotICAgIGVudW0gZU1vZGUgeyAKLSAgICAgICAgZVF1aXJrcywgICAgICAgICAKLSAgICAgICAg
ZVF1aXJrczMsICAgICAgIAotICAgICAgICBlQWxtb3N0U3RhbmRhcmRzCi0gICAgfTsKLQotICAg
IGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgZU1vZGUgbW9kZV9pZl9ub19zeXNpZDsKLSAgICBlTW9k
ZSBtb2RlX2lmX3N5c2lkOwotfQotJWxhbmd1YWdlPUFOU0ktQworc3RydWN0IFB1YklESW5mbzsK
KyVvbWl0LXN0cnVjdC10eXBlCislbGFuZ3VhZ2U9QysrCiAlcmVhZG9ubHktdGFibGVzCiAlZ2xv
YmFsLXRhYmxlCiAlY29tcGFyZS1zdHJuY21wCislZGVmaW5lIGNsYXNzLW5hbWUgRG9jVHlwZVN0
cmluZ3NIYXNoCiAlZGVmaW5lIGluaXRpYWxpemVyLXN1ZmZpeCAsUHViSURJbmZvOjplQWxtb3N0
U3RhbmRhcmRzLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcwotJWRlZmluZSBsb29rdXAtZnVu
Y3Rpb24tbmFtZSBmaW5kRG9jdHlwZUVudHJ5CislZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1l
IGZpbmREb2N0eXBlRW50cnlJbXBsCiAlZGVmaW5lIGhhc2gtZnVuY3Rpb24tbmFtZSBkb2N0eXBl
X2hhc2hfZnVuY3Rpb24KICVpbmNsdWRlcwogJWVudW0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKaW5kZXgg
ZmYwYzJkZS4uNTA0N2NhMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKQEAgLTY0LDYgKzY0LDcgQEAK
ICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIkhUTUxE
b2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxFbGVtZW50RmFjdG9yeS5oIgpAQCAtNzUsOCArNzYsNiBAQAogI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCi0jaW5jbHVkZSAiRG9jVHlw
ZVN0cmluZ3MuY3BwIgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJm
IGIvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgppbmRleCBjNjY1ZWZlLi42ZWM1
ZGNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCisrKyBi
L1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKQEAgLTI1LDE2ICsyNSwxNiBAQAog
Ki8KICV9CiAlc3RydWN0LXR5cGUKLXN0cnVjdCBFbnRpdHkgewotICAgIGNvbnN0IGNoYXIgKm5h
bWU7Ci0gICAgaW50IGNvZGU7Ci19OwotJWxhbmd1YWdlPUFOU0ktQworc3RydWN0IEVudGl0eTsK
KyVsYW5ndWFnZT1DKysKKyVvbWl0LXN0cnVjdC10eXBlCiAlcmVhZG9ubHktdGFibGVzCiAlZ2xv
YmFsLXRhYmxlCiAlY29tcGFyZS1zdHJuY21wCi0lZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1l
IGZpbmRFbnRpdHkKKyVkZWZpbmUgY2xhc3MtbmFtZSBIVE1MRW50aXR5SGFzaAorJWRlZmluZSBs
b29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kRW50aXR5SW1wbAogJWRlZmluZSBoYXNoLWZ1bmN0aW9u
LW5hbWUgZW50aXR5X2hhc2hfZnVuY3Rpb24KKyVkZWZpbmUgd29yZC1hcnJheS1uYW1lIGVudGl0
eV93b3JkbGlzdAogJWluY2x1ZGVzCiAlZW51bQogJSUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MRW50aXR5UGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5UGFyc2VyLmNw
cAppbmRleCA4NGIyMDA2Li40NjIxZWYzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEVu
dGl0eVBhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlQYXJzZXIuY3BwCkBA
IC0yOCwyMSArMjgsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhUTUxFbnRp
dHlQYXJzZXIuaCIKIAorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAotLy8gVXNlIF9fR05VQ19fIGluc3RlYWQgb2YgUExBVEZPUk0oR0NDKSB0byBzdGF5
IGNvbnNpc3RlbnQgd2l0aCB0aGUgZ3BlcmYgZ2VuZXJhdGVkIGMgZmlsZQotI2lmZGVmIF9fR05V
Q19fCi0vLyBUaGUgbWFpbiBwYXJzZXIgaW5jbHVkZXMgdGhpcyB0b28gc28gd2UgYXJlIGdldHRp
bmcgdHdvIGNvcGllcyBvZiB0aGUgZGF0YS4gSG93ZXZlciwgdGhpcyB3YXkgdGhlIGNvZGUgZ2V0
cyBpbmxpbmVkLgotI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jcHAiCi0jZWxzZQotLy8gTm90
IGlubGluZWQgZm9yIG5vbi1HQ0MgY29tcGlsZXJzCi1zdHJ1Y3QgRW50aXR5IHsKLSAgICBjb25z
dCBjaGFyKiBuYW1lOwotICAgIGludCBjb2RlOwotfTsKLWNvbnN0IHN0cnVjdCBFbnRpdHkqIGZp
bmRFbnRpdHkocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQg
bGVuKTsKLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyLmNw
cCBiL1dlYkNvcmUvaHRtbC9MZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IGNiNWZh
YzguLmFhNmUyNDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9MZWdhY3lIVE1MRG9jdW1lbnRQ
YXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9MZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIuY3Bw
CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRlci5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgog
I2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVk
ZSAiTGVnYWN5SFRNTFRyZWVCdWlsZGVyLmgiCkBAIC01NCw4ICs1NSw2IEBACiAjaW5jbHVkZSA8
d3RmL0FTQ0lJQ1R5cGUuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAotI2luY2x1
ZGUgIkhUTUxFbnRpdHlOYW1lcy5jcHAiCi0KICNkZWZpbmUgUFJFTE9BRF9TQ0FOTkVSX0VOQUJM
RUQgMQogCiB1c2luZyBuYW1lc3BhY2UgV1RGOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0xl
Z2FjeVByZWxvYWRTY2FubmVyLmNwcCBiL1dlYkNvcmUvaHRtbC9MZWdhY3lQcmVsb2FkU2Nhbm5l
ci5jcHAKaW5kZXggYzlmZGE0Zi4uN2E2ZDAxNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0xl
Z2FjeVByZWxvYWRTY2FubmVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvTGVnYWN5UHJlbG9hZFNj
YW5uZXIuY3BwCkBAIC0zOCwyNSArMzgsMTMgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJIYXNo
VG9vbHMuaCIKICNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgogCi0vLyBVc2UgX19H
TlVDX18gaW5zdGVhZCBvZiBQTEFURk9STShHQ0MpIHRvIHN0YXkgY29uc2lzdGVudCB3aXRoIHRo
ZSBncGVyZiBnZW5lcmF0ZWQgYyBmaWxlCi0jaWZkZWYgX19HTlVDX18KLS8vIFRoZSBtYWluIHRv
a2VuaXplciBpbmNsdWRlcyB0aGlzIHRvbyBzbyB3ZSBhcmUgZ2V0dGluZyB0d28gY29waWVzIG9m
IHRoZSBkYXRhLiBIb3dldmVyLCB0aGlzIHdheSB0aGUgY29kZSBnZXRzIGlubGluZWQuCi0jaW5j
bHVkZSAiSFRNTEVudGl0eU5hbWVzLmNwcCIKLSNlbHNlCi0vLyBOb3QgaW5saW5lZCBmb3Igbm9u
LUdDQyBjb21waWxlcnMKLXN0cnVjdCBFbnRpdHkgewotICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0g
ICAgaW50IGNvZGU7Ci19OwotY29uc3Qgc3RydWN0IEVudGl0eSogZmluZEVudGl0eShyZWdpc3Rl
ciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pOwotI2VuZGlmCi0K
ICNkZWZpbmUgUFJFTE9BRF9ERUJVRyAwCiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL21ha2UtaGFzaC10b29scy5wbCBiL1dlYkNvcmUvbWFrZS1oYXNoLXRvb2xz
LnBsCmluZGV4IDQyY2I2ZmQuLjQzMmFjNDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbWFrZS1oYXNo
LXRvb2xzLnBsCisrKyBiL1dlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsCkBAIC0yNiwzNSArMjYs
MTgxIEBAIHVzZSBGaWxlOjpCYXNlbmFtZTsKIG15ICRvdXRkaXIgPSAkQVJHVlswXTsKIHNoaWZ0
OwogbXkgJG9wdGlvbiA9IGJhc2VuYW1lKCRBUkdWWzBdLCIuZ3BlcmYiKTsKK215ICRoYXNoVG9v
bHNIZWFkZXIgPSAiJG91dGRpci9IYXNoVG9vbHMuaCI7CisKK3N1YiBjcmVhdGVIYXNoVG9vbHNI
ZWFkZXIoKSB7CisKK29wZW4gSEVBREVSLCAiPiRoYXNoVG9vbHNIZWFkZXIiIHx8IGRpZSAiQ291
bGQgbm90IG9wZW4gJGhhc2hUb29sc0hlYWRlciBmb3Igd3JpdGluZyI7CitwcmludCBIRUFERVIg
PDwgIkVPRiI7CisvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFr
ZS1oYXNoLXRvb2xzLnBsLCBkbyBub3QgZWRpdCAqLworCisjaWZuZGVmIEhhc2hUb29sc19oCisj
ZGVmaW5lIEhhc2hUb29sc19oCisKKyNpbmNsdWRlICJ3dGYvUGxhdGZvcm0uaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRW50aXR5IHsKKyAgICBjb25zdCBjaGFyKiBuYW1lOwor
ICAgIGludCBjb2RlOworfTsKKworc3RydWN0IFB1YklESW5mbyB7CisgICAgZW51bSBlTW9kZSB7
CisgICAgICAgIGVRdWlya3MsCisgICAgICAgIGVRdWlya3MzLAorICAgICAgICBlQWxtb3N0U3Rh
bmRhcmRzCisgICAgfTsKKworICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgZU1vZGUgbW9kZV9p
Zl9ub19zeXNpZDsKKyAgICBlTW9kZSBtb2RlX2lmX3N5c2lkOworfTsKKworc3RydWN0IE5hbWVk
Q29sb3IgeworICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgaW50IFJHQlZhbHVlOworfTsKKwor
c3RydWN0IFByb3BlcnR5IHsKKyAgICBjb25zdCBjaGFyKiBuYW1lOworICAgIGludCBpZDsKK307
CisKK3N0cnVjdCBWYWx1ZSB7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBpbnQgaWQ7Cit9
OworCitjb25zdCBFbnRpdHkqIGZpbmRFbnRpdHkocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCBy
ZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKK2NvbnN0IFB1YklESW5mbyogZmluZERvY3R5cGVF
bnRyeShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4p
OworY29uc3QgTmFtZWRDb2xvciogZmluZENvbG9yKHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwg
cmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbik7Citjb25zdCBQcm9wZXJ0eSogZmluZFByb3BlcnR5
KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbik7Citj
b25zdCBWYWx1ZSogZmluZFZhbHVlKHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIg
dW5zaWduZWQgaW50IGxlbik7CisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKworY29uc3QgRW50
aXR5KiB3b3JkTGlzdCgpOworY29uc3QgaW50IHdvcmRMaXN0U2l6ZSgpOworCisjZW5kaWYKKwor
fQorCisjZW5kaWYgLy8gSGFzaFRvb2xzX2gKKworRU9GCitjbG9zZSBIRUFERVI7CisKK30KKwor
CiAKIHN3aXRjaCAoJG9wdGlvbikgewogCiBjYXNlICJIVE1MRW50aXR5TmFtZXMiIHsKIAotICAg
IG15ICRodG1sRW50aXR5TmFtZXNHZW5lcmF0ZWQgICA9ICIkb3V0ZGlyL0hUTUxFbnRpdHlOYW1l
cy5jcHAiOworICAgIGNyZWF0ZUhhc2hUb29sc0hlYWRlcigpOworCisgICAgbXkgJGh0bWxFbnRp
dHlOYW1lc0ltcGwgICAgICAgID0gIiRvdXRkaXIvSFRNTEVudGl0eU5hbWVzLmNwcCI7CisgICAg
bXkgJGh0bWxFbnRpdHlOYW1lc0dlbmVyYXRlZCAgID0gIiRvdXRkaXIvSFRNTEVudGl0eU5hbWVz
SGFzaC5oIjsKICAgICBteSAkaHRtbEVudGl0eU5hbWVzR3BlcmYgICAgICAgPSAkQVJHVlswXTsK
ICAgICBzaGlmdDsKIAorICAgIG9wZW4gRU5USVRJRVMsICI+JGh0bWxFbnRpdHlOYW1lc0ltcGwi
IHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJGh0bWxFbnRpdHlOYW1lc0ltcGwgZm9yIHdyaXRpbmci
OworICAgIHByaW50IEVOVElUSUVTIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRp
Y2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKwor
I2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAi
SFRNTEVudGl0eU5hbWVzSGFzaC5oIgorCitjb25zdCBFbnRpdHkqIGZpbmRFbnRpdHkocmVnaXN0
ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHJl
dHVybiBIVE1MRW50aXR5SGFzaDo6ZmluZEVudGl0eUltcGwoc3RyLCBsZW4pOworfQorCisjaWYg
UExBVEZPUk0oQ0hST01JVU0pCisKK2NvbnN0IEVudGl0eSogd29yZExpc3QoKQoreworICAgIHJl
dHVybiBXZWJDb3JlOjplbnRpdHlfd29yZGxpc3Q7Cit9CisKK2NvbnN0IGludCB3b3JkTGlzdFNp
emUoKQoreworICAgIHJldHVybiBzaXplb2YoV2ViQ29yZTo6ZW50aXR5X3dvcmRsaXN0KSAvIHNp
emVvZihFbnRpdHkpOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ0hST01JVU0pCisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworRU9GCisgICAgY2xvc2UgRU5USVRJRVM7CisKICAgICBzeXN0
ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtcyAyICRodG1sRW50aXR5TmFtZXNH
cGVyZiA+ICRodG1sRW50aXR5TmFtZXNHZW5lcmF0ZWQiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBn
cGVyZiBmYWlsZWQ6ICQ/IjsKIAogfSAjIGNhc2UgIkhUTUxFbnRpdHlOYW1lcyIKIAogY2FzZSAi
RG9jVHlwZVN0cmluZ3MiIHsKIAotICAgIG15ICRkb2NUeXBlU3RyaW5nc0dlbmVyYXRlZCAgICA9
ICIkb3V0ZGlyL0RvY1R5cGVTdHJpbmdzLmNwcCI7CisgICAgbXkgJGRvY1R5cGVTdHJpbmdzSW1w
bCAgICAgICAgID0gIiRvdXRkaXIvRG9jVHlwZVN0cmluZ3MuY3BwIjsKKyAgICBteSAkZG9jVHlw
ZVN0cmluZ3NHZW5lcmF0ZWQgICAgPSAiJG91dGRpci9Eb2NUeXBlU3RyaW5nc0hhc2guaCI7CiAg
ICAgbXkgJGRvY1R5cGVTdHJpbmdzR3BlcmYgICAgICAgID0gJEFSR1ZbMF07CiAgICAgc2hpZnQ7
CiAKKyAgICBvcGVuIERPQ1RZUEVTVFJJTkdTLCAiPiRkb2NUeXBlU3RyaW5nc0ltcGwiIHx8IGRp
ZSAiQ291bGQgbm90IG9wZW4gJGRvY1R5cGVTdHJpbmdzSW1wbCBmb3Igd3JpdGluZyI7CisgICAg
cHJpbnQgRE9DVFlQRVNUUklOR1MgPDwgIkVPRiI7CisvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGlj
YWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBkbyBub3QgZWRpdCAqLworCisj
aW5jbHVkZSAiSGFzaFRvb2xzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJE
b2NUeXBlU3RyaW5nc0hhc2guaCIKKworY29uc3QgUHViSURJbmZvKiBmaW5kRG9jdHlwZUVudHJ5
IChyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7
CisgICAgcmV0dXJuIERvY1R5cGVTdHJpbmdzSGFzaDo6ZmluZERvY3R5cGVFbnRyeUltcGwoc3Ry
LCBsZW4pOworfQorCit9CisKK0VPRgorICAgIGNsb3NlIERPQ1RZUEVTVFJJTkdTOworCiAgICAg
c3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLXMgMiAkZG9jVHlwZVN0cmluZ3NH
cGVyZiA+ICRkb2NUeXBlU3RyaW5nc0dlbmVyYXRlZCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdw
ZXJmIGZhaWxlZDogJD8iOwogCiB9ICMgY2FzZSAiRG9jVHlwZVN0cmluZ3MiCiAKIGNhc2UgIkNv
bG9yRGF0YSIgewogCi0gICAgbXkgJGNvbG9yRGF0YUdlbmVyYXRlZCAgID0gIiRvdXRkaXIvQ29s
b3JEYXRhLmNwcCI7Ci0gICAgbXkgJGNvbG9yRGF0YUdwZXJmICAgICAgID0gJEFSR1ZbMF07Cisg
ICAgbXkgJGNvbG9yRGF0YUltcGwgICAgICAgICAgICAgID0gIiRvdXRkaXIvQ29sb3JEYXRhLmNw
cCI7CisgICAgbXkgJGNvbG9yRGF0YUdlbmVyYXRlZCAgICAgICAgID0gIiRvdXRkaXIvQ29sb3JE
YXRhSGFzaC5oIjsKKyAgICBteSAkY29sb3JEYXRhR3BlcmYgICAgICAgICAgICAgPSAkQVJHVlsw
XTsKICAgICBzaGlmdDsKIAorICAgIG9wZW4gQ09MT1JEQVRBLCAiPiRjb2xvckRhdGFJbXBsIiB8
fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRjb2xvckRhdGFJbXBsIGZvciB3cml0aW5nIjsKKyAgICBw
cmludCBDT0xPUkRBVEEgPDwgIkVPRiI7CisvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBn
ZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBkbyBub3QgZWRpdCAqLworCisjaW5jbHVk
ZSAiSGFzaFRvb2xzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJDb2xvckRh
dGFIYXNoLmgiCisKK2NvbnN0IHN0cnVjdCBOYW1lZENvbG9yKiBmaW5kQ29sb3IgKHJlZ2lzdGVy
IGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbikKK3sKKyAgICByZXR1
cm4gQ29sb3JEYXRhSGFzaDo6ZmluZENvbG9ySW1wbChzdHIsIGxlbik7Cit9CisKK30KKworRU9G
CisgICAgY2xvc2UgQ09MT1JEQVRBOworCiAgICAgc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlv
bnM9XCIqXCIgLUQgLXMgMiAkY29sb3JEYXRhR3BlcmYgPiAkY29sb3JEYXRhR2VuZXJhdGVkIikg
PT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKIH0gIyBjYXNlICJDb2xv
ckRhdGEiCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZiBiL1dl
YkNvcmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCmluZGV4IDExZWY3OTguLmQ2ODRjYjkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCkBAIC0xLDEzICsxLDEyIEBACiAlc3RydWN0LXR5cGUK
LXN0cnVjdCBOYW1lZENvbG9yIHsKLSAgICBjb25zdCBjaGFyICpuYW1lOwotICAgIGludCBSR0JW
YWx1ZTsKLX07Ci0lbGFuZ3VhZ2U9QU5TSS1DCitzdHJ1Y3QgTmFtZWRDb2xvcjsKKyVvbWl0LXN0
cnVjdC10eXBlCislbGFuZ3VhZ2U9QysrCiAlcmVhZG9ubHktdGFibGVzCiAlZ2xvYmFsLXRhYmxl
CiAlY29tcGFyZS1zdHJuY21wCi0lZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRDb2xv
cgorJWRlZmluZSBjbGFzcy1uYW1lIENvbG9yRGF0YUhhc2gKKyVkZWZpbmUgbG9va3VwLWZ1bmN0
aW9uLW5hbWUgZmluZENvbG9ySW1wbAogJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgY29sb3Jk
YXRhX2hhc2hfZnVuY3Rpb24KICVpbmNsdWRlcwogJWVudW0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b2xvci5jcHAKaW5kZXggMmYyYTM1Ny4uNjU0N2MxYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b2xvci5jcHAKQEAgLTI2LDEzICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkNvbG9yLmgiCiAKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKLSNpbmNsdWRlICJDb2xvckRhdGEuY3Bw
IgotCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIApkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggNzI0NWU4Yy4uMzQ3NzdiYyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAK
KzIwMTAtMDctMDkgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuZGVmaW5lZCByZWZlcmVu
Y2UgZXJyb3JzIHdoZW4gbGlua2luZyBkdWUgdG8gZ3BlcmYgYW5kIGlubGluaW5nLgorICAgICAg
ICB3ZWJraXQub3JnL2IvMjkyNDQKKworICAgICAgICBFRkwgQ01ha2UgY2hhbmdlcyBieSBMZWFu
ZHJvIFBlcmVpcmEgPGxlYW5kcm9AcHJvZnVzaW9uLm1vYmk+IAorCisgICAgICAgIFJlZmFjdG9y
IGdwZXJmIGNvZGUgZ2VuZXJhdGlvbiBhbmQgdXNhZ2UgdG8gZml4IHRoZSBkZWJ1ZyBidWlsZCB3
aXRoIGdjYz40LjQuCisgICAgICAgIEhpdGhlcnRvIGdwZXJmIGdlbmVyYXRlZCBDIGNvZGUsIHRo
ZXNlIGZpbGVzIHdlcmUgaW5jbHVkZWQgaW4gbXVsdGlwbGUgQysrIGZpbGVzIGFjcm9zcyBXZWJD
b3JlCisgICAgICAgIHRvIGFjY2VzcyB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZC4gVGhpcyBy
ZXN1bHRlZCBpbiBkZWJ1ZyBidWlsZCBmYWlsdXJlIHdpdGggbmV3ZXIgZ2NjIHZlcnNpb25zCisg
ICAgICAgIGJlY2F1c2Ugb2YgYSBiZWhhdmlvdXIgY2hhbmdlIG9mIGdjYywgd2hpY2ggZGlzYWJs
ZXMgQyBzdHlsZSBpbmxpbmluZyBpbiBkZWJ1ZyBtb2RlLgorICAgICAgICBUaGUgbWFrZS1oYXNo
LXRvb2xzLnBsIHNjcmlwdCBsZXRzIGdwZXJmIGdlbmVyYXRlIEMrKyBjb2RlIGZvciBhbGwgZ3Bl
cmYgZmlsZXMgbm93LCB3aGljaCBhcmUgY29tcGlsZWQKKyAgICAgICAgaW4gdGhlaXIgb3duIGNv
bXBpbGF0aW9uIHVuaXQuCisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRo
ZSBnZW5lcmF0ZWQgY29kZSBpcyB3cmFwcGVkIGJlaGluZCBIYXNoVG9vbHMuaCwgc28gdGhlcmUg
aXMgbm8gbmVlZAorICAgICAgICBmb3IgbXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQg
QyBmaWxlcyB0byBhY2Nlc3MgdGhlc2UgZnVuY3Rpb25zLgorCisgICAgICAgICogc3JjL1dlYkVu
dGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRW50aXRpZXM6OldlYkVudGl0aWVzKToK
KwogMjAxMC0wNy0wOCAgSmF5IENpdmVsbGkgIDxqY2l2ZWxsaUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJFbnRpdGllcy5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVudGl0aWVz
LmNwcAppbmRleCA2NjVkOGQ5Li43OGMzZjVmIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkVudGl0aWVzLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVudGl0aWVz
LmNwcApAQCAtMzEsOSArMzEsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldl
YkVudGl0aWVzLmgiCiAKLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQorI2luY2x1ZGUgIkhhc2hUb29s
cy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8c3RyaW5nLmg+CiAj
aW5jbHVkZSAiU3RyaW5nQnVpbGRlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKQEAg
LTQxLDE1ICs0MSw2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1uYW1lc3BhY2Ug
ewotLy8gTm90ZSB0aGF0IHRoaXMgZmlsZSBpcyBhbHNvIGluY2x1ZGVkIGJ5IExlZ2FjeUhUTUxE
b2N1bWVudFBhcnNlci5jcHAgc28gd2UgYXJlIGdldHRpbmcKLS8vIHR3byBjb3BpZXMgb2YgdGhl
IGRhdGEgaW4gbWVtb3J5LiAgV2UgY2FuIGZpeCB0aGlzIGJ5IGNoYW5naW5nIHRoZSBzY3JpcHQK
LS8vIHRoYXQgZ2VuZXJhdGVkIHRoZSBhcnJheSB0byBjcmVhdGUgYSBzdGF0aWMgY29uc3QgdGhh
dCBpcyBpdHMgbGVuZ3RoLCBidXQKLS8vIHRoaXMgaXMgbG93IHByaW9yaXR5IHNpbmNlIHRoZSBk
YXRhIGlzIGxlc3MgdGhhbiA0Sy4gV2UgdXNlIGFub255bW91cwotLy8gbmFtZXNwYWNlIHRvIHBy
ZXZlbnQgbmFtZSBjb2xsaXNpb25zLgotI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jcHAiIC8v
IE5PTElOVAotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBwb3B1bGF0ZU1hcChXVEY6
Okhhc2hNYXA8aW50LCBXZWJDb3JlOjpTdHJpbmc+JiBtYXAsCkBAIC05MSw4ICs4Miw4IEBAIFdl
YkVudGl0aWVzOjpXZWJFbnRpdGllcyhib29sIHhtbEVudGl0aWVzKQogICAgICAgICAgICAgICAg
ICAgICBmYWxzZSk7CiAgICAgZWxzZQogICAgICAgICBwb3B1bGF0ZU1hcChtX2VudGl0aWVzTWFw
LAotICAgICAgICAgICAgICAgICAgICB3b3JkbGlzdCwKLSAgICAgICAgICAgICAgICAgICAgc2l6
ZW9mKHdvcmRsaXN0KSAvIHNpemVvZihFbnRpdHkpLAorICAgICAgICAgICAgICAgICAgICB3b3Jk
TGlzdCgpLAorICAgICAgICAgICAgICAgICAgICB3b3JkTGlzdFNpemUoKSwKICAgICAgICAgICAg
ICAgICAgICAgdHJ1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGU0OTc2MWEuLmMwZTI5YmUgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDEwLTA3LTA5ICBBbmRyYXMgQmVjc2kgIDxhYmVjc2lAd2Via2l0Lm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVbmRlZmluZWQgcmVm
ZXJlbmNlIGVycm9ycyB3aGVuIGxpbmtpbmcgZHVlIHRvIGdwZXJmIGFuZCBpbmxpbmluZy4KKyAg
ICAgICAgd2Via2l0Lm9yZy9iLzI5MjQ0CisKKyAgICAgICAgRUZMIENNYWtlIGNoYW5nZXMgYnkg
TGVhbmRybyBQZXJlaXJhIDxsZWFuZHJvQHByb2Z1c2lvbi5tb2JpPiAKKworICAgICAgICBSZWZh
Y3RvciBncGVyZiBjb2RlIGdlbmVyYXRpb24gYW5kIHVzYWdlIHRvIGZpeCB0aGUgZGVidWcgYnVp
bGQgd2l0aCBnY2M+NC40LgorICAgICAgICBIaXRoZXJ0byBncGVyZiBnZW5lcmF0ZWQgQyBjb2Rl
LCB0aGVzZSBmaWxlcyB3ZXJlIGluY2x1ZGVkIGluIG11bHRpcGxlIEMrKyBmaWxlcyBhY3Jvc3Mg
V2ViQ29yZQorICAgICAgICB0byBhY2Nlc3MgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQuIFRo
aXMgcmVzdWx0ZWQgaW4gZGVidWcgYnVpbGQgZmFpbHVyZSB3aXRoIG5ld2VyIGdjYyB2ZXJzaW9u
cworICAgICAgICBiZWNhdXNlIG9mIGEgYmVoYXZpb3VyIGNoYW5nZSBvZiBnY2MsIHdoaWNoIGRp
c2FibGVzIEMgc3R5bGUgaW5saW5pbmcgaW4gZGVidWcgbW9kZS4KKyAgICAgICAgVGhlIG1ha2Ut
aGFzaC10b29scy5wbCBzY3JpcHQgbGV0cyBncGVyZiBnZW5lcmF0ZSBDKysgY29kZSBmb3IgYWxs
IGdwZXJmIGZpbGVzIG5vdywgd2hpY2ggYXJlIGNvbXBpbGVkCisgICAgICAgIGluIHRoZWlyIG93
biBjb21waWxhdGlvbiB1bml0LgorICAgICAgICBUaGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBi
eSB0aGUgZ2VuZXJhdGVkIGNvZGUgaXMgd3JhcHBlZCBiZWhpbmQgSGFzaFRvb2xzLmgsIHNvIHRo
ZXJlIGlzIG5vIG5lZWQKKyAgICAgICAgZm9yIG11bHRpcGxlIGluY2x1c2lvbnMgb2YgZ2VuZXJh
dGVkIEMgZmlsZXMgdG8gYWNjZXNzIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlUGx1Z2luKToKKwogMjAxMC0wNy0wOSAgS2VudCBIYW5z
ZW4gIDxrZW50LmhhbnNlbkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0
aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRRdC5jcHAKaW5kZXggMDM0ODI1MS4uMWYwZTExMyAxMDA2NDQKLS0tIGEv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMTM5OCw3
ICsxMzk4LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0
ZVBsdWdpbihjb25zdCBJbnRTaXplJiBwbHVnaW5TaXplLAogICAgICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG51bXFTdHlsZVNoZWV0UHJvcGVydGllczsgKytpKSB7CiAgICAgICAg
ICAgICAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSA9IHFzdHlsZVNoZWV0UHJvcGVydGllc1tp
XTsKIAotICAgICAgICAgICAgICAgIHN0eWxlU2hlZXQgKz0gUVN0cmluZzo6ZnJvbUxhdGluMSg6
OmdldFByb3BlcnR5TmFtZShwcm9wZXJ0eSkpOworICAgICAgICAgICAgICAgIHN0eWxlU2hlZXQg
Kz0gUVN0cmluZzo6ZnJvbUxhdGluMShnZXRQcm9wZXJ0eU5hbWUocHJvcGVydHkpKTsKICAgICAg
ICAgICAgICAgICBzdHlsZVNoZWV0ICs9IFFMYXRpbjFDaGFyKCc6Jyk7CiAgICAgICAgICAgICAg
ICAgc3R5bGVTaGVldCArPSBjb21wdXRlZFN0eWxlKGVsZW1lbnQpLT5nZXRQcm9wZXJ0eVZhbHVl
KHByb3BlcnR5KTsKICAgICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9IFFMYXRpbjFDaGFyKCc7
Jyk7CmRpZmYgLS1naXQgYS9jbWFrZS9XZWJLaXRHZW5lcmF0b3JzLmNtYWtlIGIvY21ha2UvV2Vi
S2l0R2VuZXJhdG9ycy5jbWFrZQppbmRleCAzMDAzNDc2Li42YWUwYTc4IDEwMDY0NAotLS0gYS9j
bWFrZS9XZWJLaXRHZW5lcmF0b3JzLmNtYWtlCisrKyBiL2NtYWtlL1dlYktpdEdlbmVyYXRvcnMu
Y21ha2UKQEAgLTIsNyArMiw2IEBACiAjIEl0IHdpbGwgY2hlY2sgZm9yIHRoZSBwcm9ncmFtcyBh
bmQgZGVmaW5lIHRoZSBnaXZlbiBleGVjdXRhYmxlczoKICMgICAgUEVSTF9FWEVDVVRBQkxFCiAj
ICAgIEJJU09OX0VYRUNVVEFCTEUKLSMgICAgR1BFUkZfRVhFQ1VUQUJMRQogIyAgICBGTEVYX0VY
RUNVVEFCTEUKIAogSU5DTFVERSAoV2ViS2l0RlMpCkBAIC02OSwyNSArNjgsMjQgQEAgTUFDUk8o
R0VORVJBVEVfR1JBTU1BUiBfcHJlZml4IF9zb3VyY2UpCiBFTkRNQUNSTyAoKQogCiAKLUZJTkRf
UFJPR1JBTShHUEVSRl9FWEVDVVRBQkxFIGdwZXJmKQotSUYgKE5PVCBHUEVSRl9FWEVDVVRBQkxF
KQotICBNRVNTQUdFKEZBVEFMX0VSUk9SICJNaXNzaW5nIGdwZXJmIikKLUVORElGICgpCi1GSU5E
X1BBQ0tBR0VfSEFORExFX1NUQU5EQVJEX0FSR1MoR1BlcmYgREVGQVVMVF9NU0cgR1BFUkZfRVhF
Q1VUQUJMRSkKLVNFVChQRVJGX0hBU0hfR0VORVJBVE9SICR7V0VCQ09SRV9ESVJ9L21ha2UtaGFz
aC10b29scy5wbCkKLQogIyAtIENyZWF0ZSBwZXJmZWN0IGhhc2ggdGFibGVzIHVzaW5nIGdwZXJm
Ci0jIEdFTkVSQVRFX0dQRVJGKGV4dGVuc2lvbiBzb3VyY2VfZmlsZSkKLSMKLSMgVGhlIGdlbmVy
YXRlZCBmaWxlcyBsaXZlcyBpbiAke0RFUklWRURfU09VUkNFU19ESVJ9IGFuZCBlbmRzIGluIC5j
cHAKLU1BQ1JPKEdFTkVSQVRFX0dQRVJGIF9zb3VyY2UpCitNQUNSTyhNQUtFX0hBU0hfVE9PTFMg
X3NvdXJjZSkKICAgR0VUX0ZJTEVOQU1FX0NPTVBPTkVOVChfbmFtZSAke19zb3VyY2V9IE5BTUVf
V0UpCisgIAorICBJRiAoJHtfc291cmNlfSBTVFJFUVVBTCAiSFRNTEVudGl0eU5hbWVzIikKKyAg
ICBTRVQoX2hhc2hfdG9vbHNfaCAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9IYXNoVG9vbHMuaCIp
CisgIEVMU0UgKCkKKyAgICBTRVQoX2hhc2hfdG9vbHNfaCAiIikKKyAgRU5ESUYgKCkKKwogICBB
RERfQ1VTVE9NX0NPTU1BTkQoCi0gICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtf
bmFtZX0uY3BwCi0gICAgREVQRU5EUyAke19zb3VyY2V9Ci0gICAgQ09NTUFORCAke1BFUkxfRVhF
Q1VUQUJMRX0gJHtQRVJGX0hBU0hfR0VORVJBVE9SfSAke0RFUklWRURfU09VUkNFU19ESVJ9ICR7
X3NvdXJjZX0KKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfRElSfS8ke19uYW1lfS5jcHAg
JHtfaGFzaF90b29sc19ofQorICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCQ09S
RV9ESVJ9L21ha2UtaGFzaC10b29scy5wbCAke0RFUklWRURfU09VUkNFU19ESVJ9ICR7X3NvdXJj
ZX0uZ3BlcmYKICAgICBWRVJCQVRJTSkKLUVORE1BQ1JPICgpCisKKyAgVU5TRVQoX25hbWUpCisg
IFVOU0VUKF9oYXNoX3Rvb2xzX2gpCitFTkRNQUNSTygpCiAKIAogIyBNb2R1bGVzIHRoYXQgdGhl
IGJpbmRpbmdzIGdlbmVyYXRvciBzY3JpcHRzIG1heSB1c2UKLS0gCjEuNi41Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62415</attachid>
            <date>2010-07-23 04:54:10 -0700</date>
            <delta_ts>2010-08-09 01:37:48 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>487332.patch</filename>
            <type>text/plain</type>
            <size>34357</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">RnJvbSAzOGI5ZDg3N2E0NmE3Mzk1ZWNiZGFkOTgxYmZjZDRhOGU2YjIzZjJjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyYXMgQmVjc2kgPGFiZWNzaUBpbmYudS1zemVnZWQuaHU+
CkRhdGU6IEZyaSwgMjMgSnVsIDIwMTAgMTE6NDI6MTMgKzAwMDAKU3ViamVjdDogW1BBVENIXSBV
bmRlZmluZWQgcmVmZXJlbmNlIGVycm9ycyB3aGVuIGxpbmtpbmcgZHVlIHRvIGdwZXJmIGFuZCBp
bmxpbmluZy4KCi0tLQogQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAyMCArKysKIFdlYkNvcmUvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTMgKystCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDM3ICsrKysrCiBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUu
Z3lwICAgICAgICAgICAgICAgICAgfCAgICA4ICstCiBXZWJDb3JlL1dlYkNvcmUucHJpICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgfCAgIDEwICsrCiBXZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL2Nzcy9tYWtl
cHJvcC5wbCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQ5ICsrKysrKy0tCiBXZWJDb3Jl
L2Nzcy9tYWtldmFsdWVzLnBsICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUwICsrKysrKy0t
CiBXZWJDb3JlL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYgICAgICAgICAgICAgICAgfCAgIDE4
ICstLQogV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMyArLQogV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZiAgICAgICAgICAgICAg
IHwgICAxMiArLQogV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlQYXJzZXIuY3BwICAgICAgICAgICAg
ICAgIHwgICAxNCArLS0KIFdlYkNvcmUvaHRtbC9MZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIuY3Bw
ICAgICAgICB8ICAgIDMgKy0KIFdlYkNvcmUvaHRtbC9MZWdhY3lQcmVsb2FkU2Nhbm5lci5jcHAg
ICAgICAgICAgICB8ICAgMTQgKy0tCiBXZWJDb3JlL21ha2UtaGFzaC10b29scy5wbCAgICAgICAg
ICAgICAgICAgICAgICAgfCAgMTU0ICsrKysrKysrKysrKysrKysrKysrKy0KIFdlYkNvcmUvcGxh
dGZvcm0vQ29sb3JEYXRhLmdwZXJmICAgICAgICAgICAgICAgICB8ICAgMTEgKy0KIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwICAgICAgICAgICAgICB8ICAgIDMgKy0KIFdlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjEgKysrCiBX
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVudGl0aWVzLmNwcCAgICAgICAgICAgICAgfCAgIDE3ICst
LQogV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy
MSArKysKIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCB8
ICAgIDIgKy0KIGNtYWtlL1dlYktpdEdlbmVyYXRvcnMuY21ha2UgICAgICAgICAgICAgICAgICAg
ICB8ICAgMzAgKystLS0KIDIzIGZpbGVzIGNoYW5nZWQsIDQwMCBpbnNlcnRpb25zKCspLCAxMTgg
ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGYx
YWVjNTguLjM0YjNmZTggMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMyBAQAorMjAxMC0wNy0yMyAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5k
ZWZpbmVkIHJlZmVyZW5jZSBlcnJvcnMgd2hlbiBsaW5raW5nIGR1ZSB0byBncGVyZiBhbmQgaW5s
aW5pbmcuCisgICAgICAgIHdlYmtpdC5vcmcvYi8yOTI0NAorCisgICAgICAgIEVGTCBDTWFrZSBj
aGFuZ2VzIGJ5IExlYW5kcm8gUGVyZWlyYSA8bGVhbmRyb0Bwcm9mdXNpb24ubW9iaT4gCisKKyAg
ICAgICAgUmVmYWN0b3IgZ3BlcmYgY29kZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0byBmaXggdGhl
IGRlYnVnIGJ1aWxkIHdpdGggZ2NjPjQuNC4KKyAgICAgICAgSGl0aGVydG8gZ3BlcmYgZ2VuZXJh
dGVkIEMgY29kZSwgdGhlc2UgZmlsZXMgd2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBDKysgZmls
ZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAgICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFsaXR5IHBy
b3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGluIGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBuZXdlciBn
Y2MgdmVyc2lvbnMKKyAgICAgICAgYmVjYXVzZSBvZiBhIGJlaGF2aW91ciBjaGFuZ2Ugb2YgZ2Nj
LCB3aGljaCBkaXNhYmxlcyBDIHN0eWxlIGlubGluaW5nIGluIGRlYnVnIG1vZGUuCisgICAgICAg
IFRoZSBtYWtlLWhhc2gtdG9vbHMucGwgc2NyaXB0IGxldHMgZ3BlcmYgZ2VuZXJhdGUgQysrIGNv
ZGUgZm9yIGFsbCBncGVyZiBmaWxlcyBub3csIHdoaWNoIGFyZSBjb21waWxlZAorICAgICAgICBp
biB0aGVpciBvd24gY29tcGlsYXRpb24gdW5pdC4KKyAgICAgICAgVGhlIGZ1bmN0aW9uYWxpdHkg
cHJvdmlkZWQgYnkgdGhlIGdlbmVyYXRlZCBjb2RlIGlzIHdyYXBwZWQgYmVoaW5kIEhhc2hUb29s
cy5oLCBzbyB0aGVyZSBpcyBubyBuZWVkCisgICAgICAgIGZvciBtdWx0aXBsZSBpbmNsdXNpb25z
IG9mIGdlbmVyYXRlZCBDIGZpbGVzIHRvIGFjY2VzcyB0aGVzZSBmdW5jdGlvbnMuCisKKyAgICAg
ICAgKiBjbWFrZS9XZWJLaXRHZW5lcmF0b3JzLmNtYWtlOgorCiAyMDEwLTA3LTIwICBSYWZhZWwg
QW50b2dub2xsaSAgPGFudG9nbm9sbGlAcHJvZnVzaW9uLm1vYmk+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQW50b25pbyBHb21lcy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ5YzA1OTMuLmIzZDM5ZDggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtNTI3LDYgKzUyNywxMCBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgJHtERVJJVkVEX1NP
VVJDRVNfRElSfS9DU1NHcmFtbWFyLmNwcAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSFRN
TEVsZW1lbnRGYWN0b3J5LmNwcAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSFRNTEVudGl0
eU5hbWVzLmNwcAorICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRG9jVHlwZVN0cmluZ3MuY3Bw
CisgICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NWYWx1ZUtleXdvcmRzLmNwcAorICAgICR7
REVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5jcHAKKyAgICAke0RFUklWRURf
U09VUkNFU19ESVJ9L0NvbG9yRGF0YS5jcHAKICAgICAke0RFUklWRURfU09VUkNFU19ESVJ9L0hU
TUxOYW1lcy5jcHAKICAgICAke0RFUklWRURfU09VUkNFU19ESVJ9L0pTSFRNTEVsZW1lbnRXcmFw
cGVyRmFjdG9yeS5jcHAKICAgICAke0RFUklWRURfU09VUkNFU19ESVJ9L01hdGhNTEVsZW1lbnRG
YWN0b3J5LmNwcApAQCAtMTc0OCw5ICsxNzUyLDExIEBAIEdFTkVSQVRFX0lOU1BFQ1RPUl9GUk9N
X0lETChpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbCkKIAogTElTVChBUFBFTkQgV2ViQ29yZV9TT1VS
Q0VTICR7SlNfSURMX0ZJTEVTfSAke0luc3BlY3Rvcl9JRExfRklMRVN9KQogCi1HRU5FUkFURV9H
UEVSRigke1dFQkNPUkVfRElSfS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZikKLUdFTkVSQVRF
X0dQRVJGKCR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZikKLUdFTkVSQVRF
X0dQRVJGKCR7V0VCQ09SRV9ESVJ9L2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYpCitNQUtFX0hB
U0hfVE9PTFMoJHtXRUJDT1JFX0RJUn0vaHRtbC9IVE1MRW50aXR5TmFtZXMpCitNQUtFX0hBU0hf
VE9PTFMoJHtXRUJDT1JFX0RJUn0vaHRtbC9Eb2NUeXBlU3RyaW5ncykKK01BS0VfSEFTSF9UT09M
Uygke0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1ZhbHVlS2V5d29yZHMpCitNQUtFX0hBU0hfVE9P
TFMoJHtERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzKQorTUFLRV9IQVNIX1RP
T0xTKCR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL0NvbG9yRGF0YSkKIAogR0VORVJBVEVfVE9LRU5J
WkVSKCkKIEdFTkVSQVRFX1VTRVJfQUdFTlRfU1RZTEVTKCkKQEAgLTE3NjEsNiArMTc2Nyw3IEBA
IEdFTkVSQVRFX0dSQU1NQVIoeHBhdGh5eSAke1dFQkNPUkVfRElSfS94bWwvWFBhdGhHcmFtbWFy
LnkpCiBHRU5FUkFURV9DU1NfUFJPUEVSVFlfTkFNRVMoKQogR0VORVJBVEVfQ1NTX1ZBTFVFX0tF
WVdPUkRTKCkKIAorQUREX1NPVVJDRV9ERVJJVkVEX0RFUEVOREVOQ0lFUygke0RFUklWRURfU09V
UkNFU19ESVJ9L0hhc2hUb29scy5oIEhUTUxFbnRpdHlOYW1lcy5jcHAgRG9jVHlwZVN0cmluZ3Mu
Y3BwIENTU1ZhbHVlS2V5d29yZHMuY3BwIENTU1Byb3BlcnR5TmFtZXMuY3BwIENvbG9yRGF0YS5j
cHApCiBBRERfU09VUkNFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7REVSSVZFRF9TT1VSQ0VTX0RJ
Un0vQ1NTR3JhbW1hci5jcHAgQ1NTVmFsdWVLZXl3b3Jkcy5oKQogQUREX1NPVVJDRV9ERVJJVkVE
X0RFUEVOREVOQ0lFUygke0RFUklWRURfU09VUkNFU19ESVJ9L0NTU0dyYW1tYXIuY3BwIENTU1By
b3BlcnR5TmFtZXMuaCkKIEFERF9TT1VSQ0VfREVSSVZFRF9ERVBFTkRFTkNJRVMoJHtXRUJDT1JF
X0RJUn0vY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBDU1NWYWx1ZUtleXdvcmRzLmgp
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDViNWNmYTkuLjM5MDE5YTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTAtMDctMjMgIEFuZHJhcyBCZWNz
aSAgPGFiZWNzaUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVuZGVmaW5lZCByZWZlcmVuY2UgZXJyb3JzIHdoZW4gbGlua2luZyBk
dWUgdG8gZ3BlcmYgYW5kIGlubGluaW5nLgorICAgICAgICB3ZWJraXQub3JnL2IvMjkyNDQKKwor
ICAgICAgICBFRkwgQ01ha2UgY2hhbmdlcyBieSBMZWFuZHJvIFBlcmVpcmEgPGxlYW5kcm9AcHJv
ZnVzaW9uLm1vYmk+IAorCisgICAgICAgIFJlZmFjdG9yIGdwZXJmIGNvZGUgZ2VuZXJhdGlvbiBh
bmQgdXNhZ2UgdG8gZml4IHRoZSBkZWJ1ZyBidWlsZCB3aXRoIGdjYz40LjQuCisgICAgICAgIEhp
dGhlcnRvIGdwZXJmIGdlbmVyYXRlZCBDIGNvZGUsIHRoZXNlIGZpbGVzIHdlcmUgaW5jbHVkZWQg
aW4gbXVsdGlwbGUgQysrIGZpbGVzIGFjcm9zcyBXZWJDb3JlCisgICAgICAgIHRvIGFjY2VzcyB0
aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZC4gVGhpcyByZXN1bHRlZCBpbiBkZWJ1ZyBidWlsZCBm
YWlsdXJlIHdpdGggbmV3ZXIgZ2NjIHZlcnNpb25zCisgICAgICAgIGJlY2F1c2Ugb2YgYSBiZWhh
dmlvdXIgY2hhbmdlIG9mIGdjYywgd2hpY2ggZGlzYWJsZXMgQyBzdHlsZSBpbmxpbmluZyBpbiBk
ZWJ1ZyBtb2RlLgorICAgICAgICBUaGUgbWFrZS1oYXNoLXRvb2xzLnBsIHNjcmlwdCBsZXRzIGdw
ZXJmIGdlbmVyYXRlIEMrKyBjb2RlIGZvciBhbGwgZ3BlcmYgZmlsZXMgbm93LCB3aGljaCBhcmUg
Y29tcGlsZWQKKyAgICAgICAgaW4gdGhlaXIgb3duIGNvbXBpbGF0aW9uIHVuaXQuCisgICAgICAg
IFRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoZSBnZW5lcmF0ZWQgY29kZSBpcyB3cmFw
cGVkIGJlaGluZCBIYXNoVG9vbHMuaCwgc28gdGhlcmUgaXMgbm8gbmVlZAorICAgICAgICBmb3Ig
bXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQgQyBmaWxlcyB0byBhY2Nlc3MgdGhlc2Ug
ZnVuY3Rpb25zLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cC9XZWJDb3JlLmd5cDoKKyAgICAg
ICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgICogY3NzL21ha2Vw
cm9wLnBsOgorICAgICAgICAqIGNzcy9tYWtldmFsdWVzLnBsOgorICAgICAgICAqIGh0bWwvRG9j
VHlwZVN0cmluZ3MuZ3BlcmY6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuY3BwOgorICAg
ICAgICAqIGh0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmOgorICAgICAgICAqIGh0bWwvSFRNTEVu
dGl0eVBhcnNlci5jcHA6CisgICAgICAgICogaHRtbC9MZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIu
Y3BwOgorICAgICAgICAqIGh0bWwvTGVnYWN5UHJlbG9hZFNjYW5uZXIuY3BwOgorICAgICAgICAq
IG1ha2UtaGFzaC10b29scy5wbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmY6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwOgorCiAyMDEwLTA3LTIyICBJ
bHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cCBiL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKaW5kZXggYWJkNDll
Ny4uZDM0YTkyYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAor
KysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCkBAIC02MDcsNyArNjA3LDYgQEAK
ICAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQnLAogICAgICAg
ICAgICAgJzwoUlVMRV9JTlBVVF9QQVRIKScsCiAgICAgICAgICAgXSwKLSAgICAgICAgICAncHJv
Y2Vzc19vdXRwdXRzX2FzX3NvdXJjZXMnOiAwLAogICAgICAgICB9LAogICAgICAgICAjIFJ1bGUg
dG8gYnVpbGQgZ2VuZXJhdGVkIEphdmFTY3JpcHQgKFY4KSBiaW5kaW5ncyBmcm9tIC5pZGwgc291
cmNlLgogICAgICAgICB7CkBAIC03MDIsNiArNzAxLDEzIEBACiAgICAgICAgICMgaW4gd2ViY29y
ZV9maWxlcy4KICAgICAgICAgJzxAKGRlcml2ZWRfc291cmNlc19hZ2dyZWdhdGVfZmlsZXMpJywK
IAorICAgICAgICAjIEFkZGl0aW9uYWwgLmNwcCBmaWxlcyBmb3IgSGFzaFRvb2xzLmgKKyAgICAg
ICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9IVE1MRW50aXR5TmFtZXMuY3Bw
JywKKyAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9Eb2NUeXBlU3Ry
aW5ncy5jcHAnLAorICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L0Nv
bG9yRGF0YS5jcHAnLAorICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0
L0NTU1Byb3BlcnR5TmFtZXMuY3BwJywKKyAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9E
SVIpL3dlYmtpdC9DU1NWYWx1ZUtleXdvcmRzLmNwcCcsCisKICAgICAgICAgIyBBZGRpdGlvbmFs
IC5jcHAgZmlsZXMgZnJvbSB3ZWJjb3JlX2JpbmRpbmdzX3NvdXJjZXMgYWN0aW9ucy4KICAgICAg
ICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9IVE1MRWxlbWVudEZhY3Rvcnku
Y3BwJywKICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9IVE1MTmFt
ZXMuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNv
cmUucHJpCmluZGV4IDE4YTc2YTAuLjQ4NzQwMDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtNzkxLDcgKzc5MSw3IEBAIGNzc3By
b3BzLndrU2NyaXB0ID0gJCRQV0QvY3NzL21ha2Vwcm9wLnBsCiBjc3Nwcm9wcy5vdXRwdXQgPSAk
JHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnR5TmFtZXMuY3BwCiBjc3Nwcm9w
cy5pbnB1dCA9IFdBTERPQ1NTUFJPUFMKIGNzc3Byb3BzLmNvbW1hbmRzID0gcGVybCAtbmUgXCJw
cmludCBsY1wiICR7UU1BS0VfRklMRV9OQU1FfSAkJHtEQVNIQk9BUkRTVVBQT1JUQ1NTUFJPUEVS
VElFU30gJCR7RVhUUkFDU1NQUk9QRVJUSUVTfSA+ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJ
Un0vJHtRTUFLRV9GSUxFX0JBU0V9LmluICYmIGNkICQkV0NfR0VORVJBVEVEX1NPVVJDRVNfRElS
ICYmIHBlcmwgJCRjc3Nwcm9wcy53a1NjcmlwdCAmJiAkKERFTF9GSUxFKSAke1FNQUtFX0ZJTEVf
QkFTRX0uaW4gJHtRTUFLRV9GSUxFX0JBU0V9LmdwZXJmCi1jc3Nwcm9wcy5kZXBlbmRzID0gJHtR
TUFLRV9GSUxFX05BTUV9ICQke0RBU0hCT0FSRFNVUFBPUlRDU1NQUk9QRVJUSUVTfSAkJHtFWFRS
QUNTU1BST1BFUlRJRVN9Citjc3Nwcm9wcy5kZXBlbmRzID0gJHtRTUFLRV9GSUxFX05BTUV9ICQk
e0RBU0hCT0FSRFNVUFBPUlRDU1NQUk9QRVJUSUVTfSAkJHtFWFRSQUNTU1BST1BFUlRJRVN9ICQk
Y3NzcHJvcHMud2tTY3JpcHQKIGFkZEV4dHJhQ29tcGlsZXIoY3NzcHJvcHMpCiAKICMgR0VORVJB
VE9SIDYtQjoKQEAgLTc5OSw3ICs3OTksNyBAQCBjc3N2YWx1ZXMud2tTY3JpcHQgPSAkJFBXRC9j
c3MvbWFrZXZhbHVlcy5wbAogY3NzdmFsdWVzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUn0vQ1NTVmFsdWVLZXl3b3Jkcy5jcHAKIGNzc3ZhbHVlcy5pbnB1dCA9IFdBTERPQ1NT
VkFMVUVTCiBjc3N2YWx1ZXMuY29tbWFuZHMgPSBwZXJsIC1uZSBcInByaW50IGxjXCIgJHtRTUFL
RV9GSUxFX05BTUV9ICQkRVhUUkFDU1NWQUxVRVMgPiAkJHtXQ19HRU5FUkFURURfU09VUkNFU19E
SVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5pbiAmJiBjZCAkJFdDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJ
UiAmJiBwZXJsICQkY3NzdmFsdWVzLndrU2NyaXB0ICYmICQoREVMX0ZJTEUpICR7UU1BS0VfRklM
RV9CQVNFfS5pbiAke1FNQUtFX0ZJTEVfQkFTRX0uZ3BlcmYKLWNzc3ZhbHVlcy5kZXBlbmRzID0g
JHtRTUFLRV9GSUxFX05BTUV9ICQke0VYVFJBQ1NTVkFMVUVTfQorY3NzdmFsdWVzLmRlcGVuZHMg
PSAke1FNQUtFX0ZJTEVfTkFNRX0gJCR7RVhUUkFDU1NWQUxVRVN9ICQkY3NzdmFsdWVzLndrU2Ny
aXB0CiBjc3N2YWx1ZXMuY2xlYW4gPSAke1FNQUtFX0ZJTEVfT1VUfSAke1FNQUtFX1ZBUl9XQ19H
RU5FUkFURURfU09VUkNFU19ESVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5oCiBhZGRFeHRyYUNvbXBp
bGVyKGNzc3ZhbHVlcykKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA3OWNkNjZiLi5lMDY2MDczIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNDc5LDYgKzQ3OSwxMSBAQAogCQkxQUI3RkM4NjBBOEI5MkVDMDBE
OUQzN0IgLyogWFBhdGhWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUFCN0ZDNjUwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFsdWUuaCAqLzsg
fTsKIAkJMUFCN0ZDODcwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFCN0ZD
NjYwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwICovOyB9Owog
CQkxQUI3RkM4ODBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFCN0ZDNjcwQThC
OTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuaCAqLzsgfTsKKwkJMUFCQTc2
QzkxMUQyMEU0NzAwNEMyMDFDIC8qIENvbG9yRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDA2RjNGQjExOTgzMDdEMDA5RDU5RDYgLyogQ29s
b3JEYXRhLmNwcCAqLzsgfTsKKwkJMUFCQTc2Q0ExMUQyMEU1MDAwNEMyMDFDIC8qIENTU1Byb3Bl
cnR5TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTQxRUEwMzgxMTk4MzZEQjAwNzEwQkM1IC8qIENTU1Byb3BlcnR5TmFtZXMuY3BwICovOyB9
OworCQkxQUJBNzZDQjExRDIwRTU3MDA0QzIwMUMgLyogQ1NTVmFsdWVLZXl3b3Jkcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDFFQTAzOTExOTgz
NzQ5MDA3MTBCQzUgLyogQ1NTVmFsdWVLZXl3b3Jkcy5jcHAgKi87IH07CisJCTFBQkE3NkNDMTFE
MjBFNUIwMDRDMjAxQyAvKiBEb2NUeXBlU3RyaW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDA2RjNGQTExOTgzMDREMDA5RDU5RDYgLyogRG9j
VHlwZVN0cmluZ3MuY3BwICovOyB9OworCQkxQUJBNzdGRDExRDIxMDMxMDA0QzIwMUMgLyogSFRN
TEVudGl0eU5hbWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU0MDZGNDAyMTE5ODMyOUEwMDlENTlENiAvKiBIVE1MRW50aXR5TmFtZXMuY3BwICov
OyB9OwogCQkxQUJGRTc1MzBDRDk2OEQwMDBGRTQ4MzQgLyogU1FMVHJhbnNhY3Rpb24uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFCRkU3NTIwQ0Q5
NjhEMDAwRkU0ODM0IC8qIFNRTFRyYW5zYWN0aW9uLmNwcCAqLzsgfTsKIAkJMUFDMjI2MEMwREI2
OUYxOTAwODlCNjY5IC8qIEpTRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUMyMjYwQTBEQjY5RjE5MDA4OUI2Njkg
LyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCAqLzsgfTsKIAkJMUFDMjI2MEQwREI2OUYxOTAw
ODlCNjY5IC8qIEpTRE9NQXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDMjI2MEIwREI2OUYxOTAwODlCNjY5IC8qIEpTRE9N
QXBwbGljYXRpb25DYWNoZS5oICovOyB9OwpAQCAtMjAxNTMsNiArMjAxNTgsMTEgQEAKIAkJCWlz
YSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0
NzsKIAkJCWZpbGVzID0gKAorCQkJCTFBQkE3NkM5MTFEMjBFNDcwMDRDMjAxQyAvKiBDb2xvckRh
dGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUFCQTc2Q0ExMUQyMEU1MDAwNEMyMDFDIC8qIENT
U1Byb3BlcnR5TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUFCQTc2Q0IxMUQyMEU1NzAw
NEMyMDFDIC8qIENTU1ZhbHVlS2V5d29yZHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUFCQTc2
Q0MxMUQyMEU1QjAwNEMyMDFDIC8qIERvY1R5cGVTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTFBQkE3N0ZEMTFEMjEwMzEwMDRDMjAxQyAvKiBIVE1MRW50aXR5TmFtZXMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjVCNURDNjkxMTlCQjNENTAwMkE4NzkwIC8qIEFic3RyYWN0RGF0YWJh
c2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFMUIxRDAwRkY1OTg2OTAwNTc2QjNCIC8qIEFi
c3RyYWN0V29ya2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI5QTgxMjI4MEZCQjlDMUQwMDUx
MDI5MyAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cAppbmRleCBjZTFmMDVmLi45ZTViYjYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTYxLDYgKzYxLDcgQEAK
ICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJGb250RmFtaWx5VmFsdWUu
aCIKICNpbmNsdWRlICJGb250VmFsdWUuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNs
dWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAi
UGFpci5oIgpAQCAtODgsOSArODksNiBAQCBleHRlcm4gaW50IGNzc3l5cGFyc2Uodm9pZCogcGFy
c2VyKTsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2luZyBuYW1lc3BhY2UgV1RGOwogCi0jaW5j
bHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5jcHAiCi0jaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5j
cHAiCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIElOVkFM
SURfTlVNX1BBUlNFRF9QUk9QRVJUSUVTID0gVUlOVF9NQVg7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2Nzcy9tYWtlcHJvcC5wbCBiL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCmluZGV4IDBmZDFmMDgu
LjBkZDg0NDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCisrKyBiL1dlYkNv
cmUvY3NzL21ha2Vwcm9wLnBsCkBAIC00MSwxNSArNDEsMTQgQEAgcHJpbnQgR1BFUkYgPDwgIkVP
RiI7CiAjaW5jbHVkZSBcIkNTU1Byb3BlcnR5TmFtZXMuaFwiCiAlfQogJXN0cnVjdC10eXBlCi1z
dHJ1Y3QgUHJvcGVydHkgewotICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgaW50IGlkOwotfTsK
LSVsYW5ndWFnZT1BTlNJLUMKK3N0cnVjdCBQcm9wZXJ0eTsKKyVvbWl0LXN0cnVjdC10eXBlCisl
bGFuZ3VhZ2U9QysrCiAlcmVhZG9ubHktdGFibGVzCiAlZ2xvYmFsLXRhYmxlCiAlY29tcGFyZS1z
dHJuY21wCi0lZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRQcm9wZXJ0eQorJWRlZmlu
ZSBjbGFzcy1uYW1lIENTU1Byb3BlcnR5TmFtZXNIYXNoCislZGVmaW5lIGxvb2t1cC1mdW5jdGlv
bi1uYW1lIGZpbmRQcm9wZXJ0eUltcGwKICVkZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1lIHByb3Bl
cnlfaGFzaF9mdW5jdGlvbgogJWRlZmluZSB3b3JkLWFycmF5LW5hbWUgcHJvcGVydHlfd29yZGxp
c3QKICVpbmNsdWRlcwpAQCAtNzIsNiArNzEsMTAgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwog
I2lmbmRlZiBDU1NQcm9wZXJ0eU5hbWVzX2gKICNkZWZpbmUgQ1NTUHJvcGVydHlOYW1lc19oCiAK
KyNpbmNsdWRlIDxzdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCiBlbnVtIENTU1By
b3BlcnR5SUQgewogICAgIENTU1Byb3BlcnR5SW52YWxpZCA9IDAsCiBFT0YKQEAgLTk5LDE1ICsx
MDIsMTcgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogCiBjb25zdCBjaGFyKiBnZXRQcm9wZXJ0
eU5hbWUoQ1NTUHJvcGVydHlJRCk7CiAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwogI2VuZGlm
IC8vIENTU1Byb3BlcnR5TmFtZXNfaAogCiBFT0YKIAogY2xvc2UgSEVBREVSOwogCi1zeXN0ZW0o
ImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtbiAtcyAyIENTU1Byb3BlcnR5TmFtZXMu
Z3BlcmYgPiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJm
IGZhaWxlZDogJD8iOworc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLW4g
LXMgMiBDU1NQcm9wZXJ0eU5hbWVzLmdwZXJmID4gQ1NTUHJvcGVydHlOYW1lc0hhc2guaCIpID09
IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwogCi1vcGVuIEMsICI+PkNTU1By
b3BlcnR5TmFtZXMuY3BwIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1Byb3BlcnR5TmFtZXMu
Y3BwIGZvciB3cml0aW5nIjsKK29wZW4gQywgIj4+Q1NTUHJvcGVydHlOYW1lc0hhc2guaCIgfHwg
ZGllICJDb3VsZCBub3Qgb3BlbiBDU1NQcm9wZXJ0eU5hbWVzSGFzaC5oIGZvciB3cml0aW5nIjsK
IHByaW50IEMgInN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcHJvcGVydHlOYW1lU3RyaW5nc1sk
bnVtXSA9IHtcbiI7CiAKIGZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgewpAQCAtMTE2LDYgKzEy
MSwyOSBAQCBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKIAogcHJpbnQgQyA8PCAiRU9GIjsK
IH07CisKK0VPRgorCitjbG9zZSBDOworCitteSAkcHJvcGVydHlOYW1lc0ltcGwgPSAiQ1NTUHJv
cGVydHlOYW1lcy5jcHAiOworCitvcGVuIFBST1BFUlRZTkFNRVMsICI+JHByb3BlcnR5TmFtZXNJ
bXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRwcm9wZXJ0eU5hbWVzSW1wbCBmb3Igd3JpdGlu
ZyI7CitwcmludCBQUk9QRVJUWU5BTUVTIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9t
YXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8K
KworCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lc0hhc2gu
aCIKKworY29uc3QgUHJvcGVydHkqIGZpbmRQcm9wZXJ0eSAocmVnaXN0ZXIgY29uc3QgY2hhciog
c3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHJldHVybiBDU1NQcm9wZXJ0
eU5hbWVzSGFzaDo6ZmluZFByb3BlcnR5SW1wbChzdHIsIGxlbik7Cit9CisKIGNvbnN0IGNoYXIq
IGdldFByb3BlcnR5TmFtZShDU1NQcm9wZXJ0eUlEIGlkKQogewogICAgIGlmIChpZCA8IGZpcnN0
Q1NTUHJvcGVydHkpCkBAIC0xMjUsNyArMTUzLDEwIEBAIGNvbnN0IGNoYXIqIGdldFByb3BlcnR5
TmFtZShDU1NQcm9wZXJ0eUlEIGlkKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gcHJv
cGVydHlOYW1lU3RyaW5nc1tpbmRleF07CiB9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwog
RU9GCiAKLWNsb3NlIEM7CitjbG9zZSBQUk9QRVJUWU5BTUVTOwogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2Nzcy9tYWtldmFsdWVzLnBsIGIvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAppbmRleCA0
MjFlNDcwLi5jOWY3ZjcwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCisr
KyBiL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwKQEAgLTQyLDE0ICs0MiwxMyBAQCBwcmludCBH
UEVSRiA8PCAiRU9GIjsKICNpbmNsdWRlIFwiQ1NTVmFsdWVLZXl3b3Jkcy5oXCIKICV9CiAlc3Ry
dWN0LXR5cGUKLXN0cnVjdCBWYWx1ZSB7Ci0gICAgY29uc3QgY2hhciogbmFtZTsKLSAgICBpbnQg
aWQ7Ci19OwotJWxhbmd1YWdlPUFOU0ktQworc3RydWN0IFZhbHVlOworJW9taXQtc3RydWN0LXR5
cGUKKyVsYW5ndWFnZT1DKysKICVyZWFkb25seS10YWJsZXMKICVjb21wYXJlLXN0cm5jbXAKLSVk
ZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZFZhbHVlCislZGVmaW5lIGNsYXNzLW5hbWUg
Q1NTVmFsdWVLZXl3b3Jkc0hhc2gKKyVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZFZh
bHVlSW1wbAogJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgdmFsdWVfaGFzaF9mdW5jdGlvbgog
JWRlZmluZSB3b3JkLWFycmF5LW5hbWUgdmFsdWVfd29yZF9saXN0CiAlaW5jbHVkZXMKQEAgLTcy
LDYgKzcxLDEwIEBAIHByaW50IEhFQURFUiA8PCAiRU9GIjsKICNpZm5kZWYgQ1NTVmFsdWVLZXl3
b3Jkc19oCiAjZGVmaW5lIENTU1ZhbHVlS2V5d29yZHNfaAogCisjaW5jbHVkZSA8c3RyaW5nLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwogY29uc3QgaW50IENTU1ZhbHVlSW52YWxpZCA9IDA7
CiBFT0YKIApAQCAtOTIsMTMgKzk1LDE2IEBAIHByaW50IEhFQURFUiA8PCAiRU9GIjsKIAogY29u
c3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKTsKIAorfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCiAjZW5kaWYgLy8gQ1NTVmFsdWVLZXl3b3Jkc19oCisKIEVPRgogY2xvc2Ug
SEVBREVSOwogCi1zeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtbiAtcyAy
IENTU1ZhbHVlS2V5d29yZHMuZ3BlcmYgPiBDU1NWYWx1ZUtleXdvcmRzLmNwcCIpID09IDAgfHwg
ZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOworc3lzdGVtKCJncGVyZiAtLWtleS1wb3Np
dGlvbnM9XCIqXCIgLUQgLW4gLXMgMiBDU1NWYWx1ZUtleXdvcmRzLmdwZXJmID4gQ1NTVmFsdWVL
ZXl3b3Jkc0hhc2guaCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwog
Ci1vcGVuIEMsICI+PkNTU1ZhbHVlS2V5d29yZHMuY3BwIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVu
IENTU1ZhbHVlS2V5d29yZHMuY3BwIGZvciB3cml0aW5nIjsKK29wZW4gQywgIj4+Q1NTVmFsdWVL
ZXl3b3Jkc0hhc2guaCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NWYWx1ZUtleXdvcmRzSGFz
aC5oIGZvciB3cml0aW5nIjsKIHByaW50IEMgICJzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZh
bHVlTGlzdFtdID0ge1xuIjsKIHByaW50IEMgICJcIlwiLFxuIjsKIGZvcmVhY2ggbXkgJG5hbWUg
KEBuYW1lcykgewpAQCAtMTA3LDEyICsxMTMsMzggQEAgZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVz
KSB7CiBwcmludCBDIDw8ICJFT0YiOwogICAgIDAKIH07CisKK0VPRgorCitjbG9zZSBDOworCitt
eSAkdmFsdWVLZXl3b3Jkc0ltcGwgPSAiQ1NTVmFsdWVLZXl3b3Jkcy5jcHAiOworCitvcGVuIFZB
TFVFS0VZV09SRFMsICI+JHZhbHVlS2V5d29yZHNJbXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVu
ICR2YWx1ZUtleXdvcmRzSW1wbCBmb3Igd3JpdGluZyI7CitwcmludCBWQUxVRUtFWVdPUkRTIDw8
ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2Ut
aGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKworI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29y
ZHMuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworI2lu
Y2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHNIYXNoLmgiCisKK2NvbnN0IFZhbHVlKiBmaW5kVmFsdWUg
KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbikKK3sK
KyAgICByZXR1cm4gQ1NTVmFsdWVLZXl3b3Jkc0hhc2g6OmZpbmRWYWx1ZUltcGwoc3RyLCBsZW4p
OworfQorCiBjb25zdCBjaGFyKiBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpCiB7CiAg
ICAgaWYgKGlkID49IG51bUNTU1ZhbHVlS2V5d29yZHMgfHwgaWQgPD0gMCkKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgcmV0dXJuIHZhbHVlTGlzdFtpZF07CiB9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKwogRU9GCiAKLWNsb3NlIEM7CitjbG9zZSBWQUxVRUtFWVdPUkRTOworCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYgYi9XZWJDb3JlL2h0bWwvRG9j
VHlwZVN0cmluZ3MuZ3BlcmYKaW5kZXggNWMyMTNiMC4uNmI3ZGEwNCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCisrKyBiL1dlYkNvcmUvaHRtbC9Eb2NUeXBl
U3RyaW5ncy5ncGVyZgpAQCAtMSwyMSArMSwxMyBAQAogJXN0cnVjdC10eXBlCi1zdHJ1Y3QgUHVi
SURJbmZvIHsKLSAgICBlbnVtIGVNb2RlIHsgCi0gICAgICAgIGVRdWlya3MsICAgICAgICAgCi0g
ICAgICAgIGVRdWlya3MzLCAgICAgICAKLSAgICAgICAgZUFsbW9zdFN0YW5kYXJkcwotICAgIH07
Ci0KLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGVNb2RlIG1vZGVfaWZfbm9fc3lzaWQ7Ci0g
ICAgZU1vZGUgbW9kZV9pZl9zeXNpZDsKLX0KLSVsYW5ndWFnZT1BTlNJLUMKK3N0cnVjdCBQdWJJ
REluZm87Cislb21pdC1zdHJ1Y3QtdHlwZQorJWxhbmd1YWdlPUMrKwogJXJlYWRvbmx5LXRhYmxl
cwogJWdsb2JhbC10YWJsZQogJWNvbXBhcmUtc3RybmNtcAorJWRlZmluZSBjbGFzcy1uYW1lIERv
Y1R5cGVTdHJpbmdzSGFzaAogJWRlZmluZSBpbml0aWFsaXplci1zdWZmaXggLFB1YklESW5mbzo6
ZUFsbW9zdFN0YW5kYXJkcyxQdWJJREluZm86OmVBbG1vc3RTdGFuZGFyZHMKLSVkZWZpbmUgbG9v
a3VwLWZ1bmN0aW9uLW5hbWUgZmluZERvY3R5cGVFbnRyeQorJWRlZmluZSBsb29rdXAtZnVuY3Rp
b24tbmFtZSBmaW5kRG9jdHlwZUVudHJ5SW1wbAogJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUg
ZG9jdHlwZV9oYXNoX2Z1bmN0aW9uCiAlaW5jbHVkZXMKICVlbnVtCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3Bw
CmluZGV4IGZmMGMyZGUuLjUwNDdjYTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRG9j
dW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCkBAIC02NCw2ICs2
NCw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIK
ICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRl
ICJIVE1MRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJIVE1MQm9keUVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MRWxlbWVudEZhY3RvcnkuaCIKQEAgLTc1LDggKzc2LDYgQEAKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAotI2luY2x1ZGUg
IkRvY1R5cGVTdHJpbmdzLmNwcCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlOYW1l
cy5ncGVyZiBiL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKaW5kZXggYzY2NWVm
ZS4uNmVjNWRjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVy
ZgorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCkBAIC0yNSwxNiArMjUs
MTYgQEAKICovCiAlfQogJXN0cnVjdC10eXBlCi1zdHJ1Y3QgRW50aXR5IHsKLSAgICBjb25zdCBj
aGFyICpuYW1lOwotICAgIGludCBjb2RlOwotfTsKLSVsYW5ndWFnZT1BTlNJLUMKK3N0cnVjdCBF
bnRpdHk7CislbGFuZ3VhZ2U9QysrCislb21pdC1zdHJ1Y3QtdHlwZQogJXJlYWRvbmx5LXRhYmxl
cwogJWdsb2JhbC10YWJsZQogJWNvbXBhcmUtc3RybmNtcAotJWRlZmluZSBsb29rdXAtZnVuY3Rp
b24tbmFtZSBmaW5kRW50aXR5CislZGVmaW5lIGNsYXNzLW5hbWUgSFRNTEVudGl0eUhhc2gKKyVk
ZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZEVudGl0eUltcGwKICVkZWZpbmUgaGFzaC1m
dW5jdGlvbi1uYW1lIGVudGl0eV9oYXNoX2Z1bmN0aW9uCislZGVmaW5lIHdvcmQtYXJyYXktbmFt
ZSBlbnRpdHlfd29yZGxpc3QKICVpbmNsdWRlcwogJWVudW0KICUlCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvSFRNTEVudGl0eVBhcnNlci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eVBh
cnNlci5jcHAKaW5kZXggODRiMjAwNi4uNDYyMWVmMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0hUTUxFbnRpdHlQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5UGFyc2Vy
LmNwcApAQCAtMjgsMjEgKzI4LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJI
VE1MRW50aXR5UGFyc2VyLmgiCiAKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKLS8vIFVzZSBfX0dOVUNfXyBpbnN0ZWFkIG9mIFBMQVRGT1JNKEdDQykg
dG8gc3RheSBjb25zaXN0ZW50IHdpdGggdGhlIGdwZXJmIGdlbmVyYXRlZCBjIGZpbGUKLSNpZmRl
ZiBfX0dOVUNfXwotLy8gVGhlIG1haW4gcGFyc2VyIGluY2x1ZGVzIHRoaXMgdG9vIHNvIHdlIGFy
ZSBnZXR0aW5nIHR3byBjb3BpZXMgb2YgdGhlIGRhdGEuIEhvd2V2ZXIsIHRoaXMgd2F5IHRoZSBj
b2RlIGdldHMgaW5saW5lZC4KLSNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXMuY3BwIgotI2Vsc2UK
LS8vIE5vdCBpbmxpbmVkIGZvciBub24tR0NDIGNvbXBpbGVycwotc3RydWN0IEVudGl0eSB7Ci0g
ICAgY29uc3QgY2hhciogbmFtZTsKLSAgICBpbnQgY29kZTsKLX07Ci1jb25zdCBzdHJ1Y3QgRW50
aXR5KiBmaW5kRW50aXR5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWdu
ZWQgaW50IGxlbik7Ci0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIFdURjsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxEb2N1bWVudFBh
cnNlci5jcHAgYi9XZWJDb3JlL2h0bWwvTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyLmNwcAppbmRl
eCBjYjVmYWM4Li5hYTZlMjQwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvTGVnYWN5SFRNTERv
Y3VtZW50UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvTGVnYWN5SFRNTERvY3VtZW50UGFy
c2VyLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIYXNoVG9v
bHMuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgog
I2luY2x1ZGUgIkxlZ2FjeUhUTUxUcmVlQnVpbGRlci5oIgpAQCAtNTQsOCArNTUsNiBAQAogI2lu
Y2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAK
LSNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXMuY3BwIgotCiAjZGVmaW5lIFBSRUxPQURfU0NBTk5F
Ul9FTkFCTEVEIDEKIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9MZWdhY3lQcmVsb2FkU2Nhbm5lci5jcHAgYi9XZWJDb3JlL2h0bWwvTGVnYWN5UHJlbG9h
ZFNjYW5uZXIuY3BwCmluZGV4IGM5ZmRhNGYuLjdhNmQwMTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9MZWdhY3lQcmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0xlZ2FjeVBy
ZWxvYWRTY2FubmVyLmNwcApAQCAtMzgsMjUgKzM4LDEzIEBACiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVk
ZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KIAotLy8g
VXNlIF9fR05VQ19fIGluc3RlYWQgb2YgUExBVEZPUk0oR0NDKSB0byBzdGF5IGNvbnNpc3RlbnQg
d2l0aCB0aGUgZ3BlcmYgZ2VuZXJhdGVkIGMgZmlsZQotI2lmZGVmIF9fR05VQ19fCi0vLyBUaGUg
bWFpbiB0b2tlbml6ZXIgaW5jbHVkZXMgdGhpcyB0b28gc28gd2UgYXJlIGdldHRpbmcgdHdvIGNv
cGllcyBvZiB0aGUgZGF0YS4gSG93ZXZlciwgdGhpcyB3YXkgdGhlIGNvZGUgZ2V0cyBpbmxpbmVk
LgotI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jcHAiCi0jZWxzZQotLy8gTm90IGlubGluZWQg
Zm9yIG5vbi1HQ0MgY29tcGlsZXJzCi1zdHJ1Y3QgRW50aXR5IHsKLSAgICBjb25zdCBjaGFyKiBu
YW1lOwotICAgIGludCBjb2RlOwotfTsKLWNvbnN0IHN0cnVjdCBFbnRpdHkqIGZpbmRFbnRpdHko
cmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKLSNl
bmRpZgotCiAjZGVmaW5lIFBSRUxPQURfREVCVUcgMAogCiB1c2luZyBuYW1lc3BhY2UgV1RGOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwgYi9XZWJDb3JlL21ha2UtaGFz
aC10b29scy5wbAppbmRleCA0MmNiNmZkLi40MzJhYzQwIDEwMDY0NAotLS0gYS9XZWJDb3JlL21h
a2UtaGFzaC10b29scy5wbAorKysgYi9XZWJDb3JlL21ha2UtaGFzaC10b29scy5wbApAQCAtMjYs
MzUgKzI2LDE4MSBAQCB1c2UgRmlsZTo6QmFzZW5hbWU7CiBteSAkb3V0ZGlyID0gJEFSR1ZbMF07
CiBzaGlmdDsKIG15ICRvcHRpb24gPSBiYXNlbmFtZSgkQVJHVlswXSwiLmdwZXJmIik7CitteSAk
aGFzaFRvb2xzSGVhZGVyID0gIiRvdXRkaXIvSGFzaFRvb2xzLmgiOworCitzdWIgY3JlYXRlSGFz
aFRvb2xzSGVhZGVyKCkgeworCitvcGVuIEhFQURFUiwgIj4kaGFzaFRvb2xzSGVhZGVyIiB8fCBk
aWUgIkNvdWxkIG5vdCBvcGVuICRoYXNoVG9vbHNIZWFkZXIgZm9yIHdyaXRpbmciOworcHJpbnQg
SEVBREVSIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVk
IGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKworI2lmbmRlZiBIYXNoVG9v
bHNfaAorI2RlZmluZSBIYXNoVG9vbHNfaAorCisjaW5jbHVkZSAid3RmL1BsYXRmb3JtLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEVudGl0eSB7CisgICAgY29uc3QgY2hhciog
bmFtZTsKKyAgICBpbnQgY29kZTsKK307CisKK3N0cnVjdCBQdWJJREluZm8geworICAgIGVudW0g
ZU1vZGUgeworICAgICAgICBlUXVpcmtzLAorICAgICAgICBlUXVpcmtzMywKKyAgICAgICAgZUFs
bW9zdFN0YW5kYXJkcworICAgIH07CisKKyAgICBjb25zdCBjaGFyKiBuYW1lOworICAgIGVNb2Rl
IG1vZGVfaWZfbm9fc3lzaWQ7CisgICAgZU1vZGUgbW9kZV9pZl9zeXNpZDsKK307CisKK3N0cnVj
dCBOYW1lZENvbG9yIHsKKyAgICBjb25zdCBjaGFyKiBuYW1lOworICAgIGludCBSR0JWYWx1ZTsK
K307CisKK3N0cnVjdCBQcm9wZXJ0eSB7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBpbnQg
aWQ7Cit9OworCitzdHJ1Y3QgVmFsdWUgeworICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgaW50
IGlkOworfTsKKworY29uc3QgRW50aXR5KiBmaW5kRW50aXR5KHJlZ2lzdGVyIGNvbnN0IGNoYXIq
IHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbik7Citjb25zdCBQdWJJREluZm8qIGZpbmRE
b2N0eXBlRW50cnkocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBp
bnQgbGVuKTsKK2NvbnN0IE5hbWVkQ29sb3IqIGZpbmRDb2xvcihyZWdpc3RlciBjb25zdCBjaGFy
KiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pOworY29uc3QgUHJvcGVydHkqIGZpbmRQ
cm9wZXJ0eShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBs
ZW4pOworY29uc3QgVmFsdWUqIGZpbmRWYWx1ZShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJl
Z2lzdGVyIHVuc2lnbmVkIGludCBsZW4pOworCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisKK2Nv
bnN0IEVudGl0eSogd29yZExpc3QoKTsKK2NvbnN0IGludCB3b3JkTGlzdFNpemUoKTsKKworI2Vu
ZGlmCisKK30KKworI2VuZGlmIC8vIEhhc2hUb29sc19oCisKK0VPRgorY2xvc2UgSEVBREVSOwor
Cit9CisKKwogCiBzd2l0Y2ggKCRvcHRpb24pIHsKIAogY2FzZSAiSFRNTEVudGl0eU5hbWVzIiB7
CiAKLSAgICBteSAkaHRtbEVudGl0eU5hbWVzR2VuZXJhdGVkICAgPSAiJG91dGRpci9IVE1MRW50
aXR5TmFtZXMuY3BwIjsKKyAgICBjcmVhdGVIYXNoVG9vbHNIZWFkZXIoKTsKKworICAgIG15ICRo
dG1sRW50aXR5TmFtZXNJbXBsICAgICAgICA9ICIkb3V0ZGlyL0hUTUxFbnRpdHlOYW1lcy5jcHAi
OworICAgIG15ICRodG1sRW50aXR5TmFtZXNHZW5lcmF0ZWQgICA9ICIkb3V0ZGlyL0hUTUxFbnRp
dHlOYW1lc0hhc2guaCI7CiAgICAgbXkgJGh0bWxFbnRpdHlOYW1lc0dwZXJmICAgICAgID0gJEFS
R1ZbMF07CiAgICAgc2hpZnQ7CiAKKyAgICBvcGVuIEVOVElUSUVTLCAiPiRodG1sRW50aXR5TmFt
ZXNJbXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRodG1sRW50aXR5TmFtZXNJbXBsIGZvciB3
cml0aW5nIjsKKyAgICBwcmludCBFTlRJVElFUyA8PCAiRU9GIjsKKy8qIFRoaXMgZmlsZSBpcyBh
dXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5vdCBlZGl0
ICovCisKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworI2lu
Y2x1ZGUgIkhUTUxFbnRpdHlOYW1lc0hhc2guaCIKKworY29uc3QgRW50aXR5KiBmaW5kRW50aXR5
KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbikKK3sK
KyAgICByZXR1cm4gSFRNTEVudGl0eUhhc2g6OmZpbmRFbnRpdHlJbXBsKHN0ciwgbGVuKTsKK30K
KworI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorCitjb25zdCBFbnRpdHkqIHdvcmRMaXN0KCkKK3sK
KyAgICByZXR1cm4gV2ViQ29yZTo6ZW50aXR5X3dvcmRsaXN0OworfQorCitjb25zdCBpbnQgd29y
ZExpc3RTaXplKCkKK3sKKyAgICByZXR1cm4gc2l6ZW9mKFdlYkNvcmU6OmVudGl0eV93b3JkbGlz
dCkgLyBzaXplb2YoRW50aXR5KTsKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENIUk9NSVVNKQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK0VPRgorICAgIGNsb3NlIEVOVElUSUVTOworCiAg
ICAgc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLXMgMiAkaHRtbEVudGl0
eU5hbWVzR3BlcmYgPiAkaHRtbEVudGl0eU5hbWVzR2VuZXJhdGVkIikgPT0gMCB8fCBkaWUgImNh
bGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKIH0gIyBjYXNlICJIVE1MRW50aXR5TmFtZXMiCiAK
IGNhc2UgIkRvY1R5cGVTdHJpbmdzIiB7CiAKLSAgICBteSAkZG9jVHlwZVN0cmluZ3NHZW5lcmF0
ZWQgICAgPSAiJG91dGRpci9Eb2NUeXBlU3RyaW5ncy5jcHAiOworICAgIG15ICRkb2NUeXBlU3Ry
aW5nc0ltcGwgICAgICAgICA9ICIkb3V0ZGlyL0RvY1R5cGVTdHJpbmdzLmNwcCI7CisgICAgbXkg
JGRvY1R5cGVTdHJpbmdzR2VuZXJhdGVkICAgID0gIiRvdXRkaXIvRG9jVHlwZVN0cmluZ3NIYXNo
LmgiOwogICAgIG15ICRkb2NUeXBlU3RyaW5nc0dwZXJmICAgICAgICA9ICRBUkdWWzBdOwogICAg
IHNoaWZ0OwogCisgICAgb3BlbiBET0NUWVBFU1RSSU5HUywgIj4kZG9jVHlwZVN0cmluZ3NJbXBs
IiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRkb2NUeXBlU3RyaW5nc0ltcGwgZm9yIHdyaXRpbmci
OworICAgIHByaW50IERPQ1RZUEVTVFJJTkdTIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1
dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQg
Ki8KKworI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5j
bHVkZSAiRG9jVHlwZVN0cmluZ3NIYXNoLmgiCisKK2NvbnN0IFB1YklESW5mbyogZmluZERvY3R5
cGVFbnRyeSAocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQg
bGVuKQoreworICAgIHJldHVybiBEb2NUeXBlU3RyaW5nc0hhc2g6OmZpbmREb2N0eXBlRW50cnlJ
bXBsKHN0ciwgbGVuKTsKK30KKworfQorCitFT0YKKyAgICBjbG9zZSBET0NUWVBFU1RSSU5HUzsK
KwogICAgIHN5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1zIDIgJGRvY1R5cGVT
dHJpbmdzR3BlcmYgPiAkZG9jVHlwZVN0cmluZ3NHZW5lcmF0ZWQiKSA9PSAwIHx8IGRpZSAiY2Fs
bGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKIAogfSAjIGNhc2UgIkRvY1R5cGVTdHJpbmdzIgogCiBj
YXNlICJDb2xvckRhdGEiIHsKIAotICAgIG15ICRjb2xvckRhdGFHZW5lcmF0ZWQgICA9ICIkb3V0
ZGlyL0NvbG9yRGF0YS5jcHAiOwotICAgIG15ICRjb2xvckRhdGFHcGVyZiAgICAgICA9ICRBUkdW
WzBdOworICAgIG15ICRjb2xvckRhdGFJbXBsICAgICAgICAgICAgICA9ICIkb3V0ZGlyL0NvbG9y
RGF0YS5jcHAiOworICAgIG15ICRjb2xvckRhdGFHZW5lcmF0ZWQgICAgICAgICA9ICIkb3V0ZGly
L0NvbG9yRGF0YUhhc2guaCI7CisgICAgbXkgJGNvbG9yRGF0YUdwZXJmICAgICAgICAgICAgID0g
JEFSR1ZbMF07CiAgICAgc2hpZnQ7CiAKKyAgICBvcGVuIENPTE9SREFUQSwgIj4kY29sb3JEYXRh
SW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkY29sb3JEYXRhSW1wbCBmb3Igd3JpdGluZyI7
CisgICAgcHJpbnQgQ09MT1JEQVRBIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRp
Y2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKwor
I2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAi
Q29sb3JEYXRhSGFzaC5oIgorCitjb25zdCBzdHJ1Y3QgTmFtZWRDb2xvciogZmluZENvbG9yIChy
ZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7Cisg
ICAgcmV0dXJuIENvbG9yRGF0YUhhc2g6OmZpbmRDb2xvckltcGwoc3RyLCBsZW4pOworfQorCit9
CisKK0VPRgorICAgIGNsb3NlIENPTE9SREFUQTsKKwogICAgIHN5c3RlbSgiZ3BlcmYgLS1rZXkt
cG9zaXRpb25zPVwiKlwiIC1EIC1zIDIgJGNvbG9yRGF0YUdwZXJmID4gJGNvbG9yRGF0YUdlbmVy
YXRlZCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwogCiB9ICMgY2Fz
ZSAiQ29sb3JEYXRhIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3Bl
cmYgYi9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgppbmRleCAxMWVmNzk4Li5kNjg0
Y2I5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZgpAQCAtMSwxMyArMSwxMiBAQAogJXN0cnVj
dC10eXBlCi1zdHJ1Y3QgTmFtZWRDb2xvciB7Ci0gICAgY29uc3QgY2hhciAqbmFtZTsKLSAgICBp
bnQgUkdCVmFsdWU7Ci19OwotJWxhbmd1YWdlPUFOU0ktQworc3RydWN0IE5hbWVkQ29sb3I7Cisl
b21pdC1zdHJ1Y3QtdHlwZQorJWxhbmd1YWdlPUMrKwogJXJlYWRvbmx5LXRhYmxlcwogJWdsb2Jh
bC10YWJsZQogJWNvbXBhcmUtc3RybmNtcAotJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBm
aW5kQ29sb3IKKyVkZWZpbmUgY2xhc3MtbmFtZSBDb2xvckRhdGFIYXNoCislZGVmaW5lIGxvb2t1
cC1mdW5jdGlvbi1uYW1lIGZpbmRDb2xvckltcGwKICVkZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1l
IGNvbG9yZGF0YV9oYXNoX2Z1bmN0aW9uCiAlaW5jbHVkZXMKICVlbnVtCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3IuY3BwCmluZGV4IDgwYzgyODYuLmYyOGQ1MWMgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3IuY3BwCkBAIC0yNiwxMyArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJDb2xvci5oIgogCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCi0jaW5jbHVkZSAiQ29sb3JE
YXRhLmNwcCIKLQogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAK
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDkyZGIzMWYuLmJkYzViYTggMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI0IEBACisyMDEwLTA3LTIzICBBbmRyYXMgQmVjc2kgIDxhYmVjc2lAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVbmRlZmluZWQg
cmVmZXJlbmNlIGVycm9ycyB3aGVuIGxpbmtpbmcgZHVlIHRvIGdwZXJmIGFuZCBpbmxpbmluZy4K
KyAgICAgICAgd2Via2l0Lm9yZy9iLzI5MjQ0CisKKyAgICAgICAgRUZMIENNYWtlIGNoYW5nZXMg
YnkgTGVhbmRybyBQZXJlaXJhIDxsZWFuZHJvQHByb2Z1c2lvbi5tb2JpPiAKKworICAgICAgICBS
ZWZhY3RvciBncGVyZiBjb2RlIGdlbmVyYXRpb24gYW5kIHVzYWdlIHRvIGZpeCB0aGUgZGVidWcg
YnVpbGQgd2l0aCBnY2M+NC40LgorICAgICAgICBIaXRoZXJ0byBncGVyZiBnZW5lcmF0ZWQgQyBj
b2RlLCB0aGVzZSBmaWxlcyB3ZXJlIGluY2x1ZGVkIGluIG11bHRpcGxlIEMrKyBmaWxlcyBhY3Jv
c3MgV2ViQ29yZQorICAgICAgICB0byBhY2Nlc3MgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQu
IFRoaXMgcmVzdWx0ZWQgaW4gZGVidWcgYnVpbGQgZmFpbHVyZSB3aXRoIG5ld2VyIGdjYyB2ZXJz
aW9ucworICAgICAgICBiZWNhdXNlIG9mIGEgYmVoYXZpb3VyIGNoYW5nZSBvZiBnY2MsIHdoaWNo
IGRpc2FibGVzIEMgc3R5bGUgaW5saW5pbmcgaW4gZGVidWcgbW9kZS4KKyAgICAgICAgVGhlIG1h
a2UtaGFzaC10b29scy5wbCBzY3JpcHQgbGV0cyBncGVyZiBnZW5lcmF0ZSBDKysgY29kZSBmb3Ig
YWxsIGdwZXJmIGZpbGVzIG5vdywgd2hpY2ggYXJlIGNvbXBpbGVkCisgICAgICAgIGluIHRoZWly
IG93biBjb21waWxhdGlvbiB1bml0LgorICAgICAgICBUaGUgZnVuY3Rpb25hbGl0eSBwcm92aWRl
ZCBieSB0aGUgZ2VuZXJhdGVkIGNvZGUgaXMgd3JhcHBlZCBiZWhpbmQgSGFzaFRvb2xzLmgsIHNv
IHRoZXJlIGlzIG5vIG5lZWQKKyAgICAgICAgZm9yIG11bHRpcGxlIGluY2x1c2lvbnMgb2YgZ2Vu
ZXJhdGVkIEMgZmlsZXMgdG8gYWNjZXNzIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgICAgICAqIHNy
Yy9XZWJFbnRpdGllcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVudGl0aWVzOjpXZWJFbnRp
dGllcyk6CisKIDIwMTAtMDctMjMgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IFNoaW5pY2hpcm8gSGFtYWppLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJFbnRpdGllcy5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkVudGl0aWVzLmNwcAppbmRleCA2NjVkOGQ5Li43OGMzZjVmIDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkVudGl0aWVzLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkVudGl0aWVzLmNwcApAQCAtMzEsOSArMzEsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIldlYkVudGl0aWVzLmgiCiAKLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQorI2luY2x1ZGUg
Ikhhc2hUb29scy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8c3Ry
aW5nLmg+CiAjaW5jbHVkZSAiU3RyaW5nQnVpbGRlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAKQEAgLTQxLDE1ICs0MSw2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1u
YW1lc3BhY2UgewotLy8gTm90ZSB0aGF0IHRoaXMgZmlsZSBpcyBhbHNvIGluY2x1ZGVkIGJ5IExl
Z2FjeUhUTUxEb2N1bWVudFBhcnNlci5jcHAgc28gd2UgYXJlIGdldHRpbmcKLS8vIHR3byBjb3Bp
ZXMgb2YgdGhlIGRhdGEgaW4gbWVtb3J5LiAgV2UgY2FuIGZpeCB0aGlzIGJ5IGNoYW5naW5nIHRo
ZSBzY3JpcHQKLS8vIHRoYXQgZ2VuZXJhdGVkIHRoZSBhcnJheSB0byBjcmVhdGUgYSBzdGF0aWMg
Y29uc3QgdGhhdCBpcyBpdHMgbGVuZ3RoLCBidXQKLS8vIHRoaXMgaXMgbG93IHByaW9yaXR5IHNp
bmNlIHRoZSBkYXRhIGlzIGxlc3MgdGhhbiA0Sy4gV2UgdXNlIGFub255bW91cwotLy8gbmFtZXNw
YWNlIHRvIHByZXZlbnQgbmFtZSBjb2xsaXNpb25zLgotI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1l
cy5jcHAiIC8vIE5PTElOVAotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBwb3B1bGF0
ZU1hcChXVEY6Okhhc2hNYXA8aW50LCBXZWJDb3JlOjpTdHJpbmc+JiBtYXAsCkBAIC05MSw4ICs4
Miw4IEBAIFdlYkVudGl0aWVzOjpXZWJFbnRpdGllcyhib29sIHhtbEVudGl0aWVzKQogICAgICAg
ICAgICAgICAgICAgICBmYWxzZSk7CiAgICAgZWxzZQogICAgICAgICBwb3B1bGF0ZU1hcChtX2Vu
dGl0aWVzTWFwLAotICAgICAgICAgICAgICAgICAgICB3b3JkbGlzdCwKLSAgICAgICAgICAgICAg
ICAgICAgc2l6ZW9mKHdvcmRsaXN0KSAvIHNpemVvZihFbnRpdHkpLAorICAgICAgICAgICAgICAg
ICAgICB3b3JkTGlzdCgpLAorICAgICAgICAgICAgICAgICAgICB3b3JkTGlzdFNpemUoKSwKICAg
ICAgICAgICAgICAgICAgICAgdHJ1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFu
Z2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDRmMTcwNmUuLjg0ZmYzZTQgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI0IEBACisyMDEwLTA3LTIzICBBbmRyYXMgQmVjc2kgIDxhYmVjc2lAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVbmRl
ZmluZWQgcmVmZXJlbmNlIGVycm9ycyB3aGVuIGxpbmtpbmcgZHVlIHRvIGdwZXJmIGFuZCBpbmxp
bmluZy4KKyAgICAgICAgd2Via2l0Lm9yZy9iLzI5MjQ0CisKKyAgICAgICAgRUZMIENNYWtlIGNo
YW5nZXMgYnkgTGVhbmRybyBQZXJlaXJhIDxsZWFuZHJvQHByb2Z1c2lvbi5tb2JpPiAKKworICAg
ICAgICBSZWZhY3RvciBncGVyZiBjb2RlIGdlbmVyYXRpb24gYW5kIHVzYWdlIHRvIGZpeCB0aGUg
ZGVidWcgYnVpbGQgd2l0aCBnY2M+NC40LgorICAgICAgICBIaXRoZXJ0byBncGVyZiBnZW5lcmF0
ZWQgQyBjb2RlLCB0aGVzZSBmaWxlcyB3ZXJlIGluY2x1ZGVkIGluIG11bHRpcGxlIEMrKyBmaWxl
cyBhY3Jvc3MgV2ViQ29yZQorICAgICAgICB0byBhY2Nlc3MgdGhlIGZ1bmN0aW9uYWxpdHkgcHJv
dmlkZWQuIFRoaXMgcmVzdWx0ZWQgaW4gZGVidWcgYnVpbGQgZmFpbHVyZSB3aXRoIG5ld2VyIGdj
YyB2ZXJzaW9ucworICAgICAgICBiZWNhdXNlIG9mIGEgYmVoYXZpb3VyIGNoYW5nZSBvZiBnY2Ms
IHdoaWNoIGRpc2FibGVzIEMgc3R5bGUgaW5saW5pbmcgaW4gZGVidWcgbW9kZS4KKyAgICAgICAg
VGhlIG1ha2UtaGFzaC10b29scy5wbCBzY3JpcHQgbGV0cyBncGVyZiBnZW5lcmF0ZSBDKysgY29k
ZSBmb3IgYWxsIGdwZXJmIGZpbGVzIG5vdywgd2hpY2ggYXJlIGNvbXBpbGVkCisgICAgICAgIGlu
IHRoZWlyIG93biBjb21waWxhdGlvbiB1bml0LgorICAgICAgICBUaGUgZnVuY3Rpb25hbGl0eSBw
cm92aWRlZCBieSB0aGUgZ2VuZXJhdGVkIGNvZGUgaXMgd3JhcHBlZCBiZWhpbmQgSGFzaFRvb2xz
LmgsIHNvIHRoZXJlIGlzIG5vIG5lZWQKKyAgICAgICAgZm9yIG11bHRpcGxlIGluY2x1c2lvbnMg
b2YgZ2VuZXJhdGVkIEMgZmlsZXMgdG8gYWNjZXNzIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlUGx1Z2luKToKKwogMjAxMC0wNy0yMiAg
WWFlbCBBaGFyb24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTGFzemxvIEdvbWJvcy4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudFF0LmNwcAppbmRleCBmYzBmNmMzLi44YzM0N2UzIDEwMDY0NAotLS0gYS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCkBAIC0xMzk5LDcgKzEz
OTksNyBAQCBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlUGx1
Z2luKGNvbnN0IEludFNpemUmIHBsdWdpblNpemUsCiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbnVtcVN0eWxlU2hlZXRQcm9wZXJ0aWVzOyArK2kpIHsKICAgICAgICAgICAg
ICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5ID0gcXN0eWxlU2hlZXRQcm9wZXJ0aWVzW2ldOwog
Ci0gICAgICAgICAgICAgICAgc3R5bGVTaGVldCArPSBRU3RyaW5nOjpmcm9tTGF0aW4xKDo6Z2V0
UHJvcGVydHlOYW1lKHByb3BlcnR5KSk7CisgICAgICAgICAgICAgICAgc3R5bGVTaGVldCArPSBR
U3RyaW5nOjpmcm9tTGF0aW4xKGdldFByb3BlcnR5TmFtZShwcm9wZXJ0eSkpOwogICAgICAgICAg
ICAgICAgIHN0eWxlU2hlZXQgKz0gUUxhdGluMUNoYXIoJzonKTsKICAgICAgICAgICAgICAgICBz
dHlsZVNoZWV0ICs9IGNvbXB1dGVkU3R5bGUoZWxlbWVudCktPmdldFByb3BlcnR5VmFsdWUocHJv
cGVydHkpOwogICAgICAgICAgICAgICAgIHN0eWxlU2hlZXQgKz0gUUxhdGluMUNoYXIoJzsnKTsK
ZGlmZiAtLWdpdCBhL2NtYWtlL1dlYktpdEdlbmVyYXRvcnMuY21ha2UgYi9jbWFrZS9XZWJLaXRH
ZW5lcmF0b3JzLmNtYWtlCmluZGV4IDk3NWI5YTAuLjUwYzM5YjkgMTAwNjQ0Ci0tLSBhL2NtYWtl
L1dlYktpdEdlbmVyYXRvcnMuY21ha2UKKysrIGIvY21ha2UvV2ViS2l0R2VuZXJhdG9ycy5jbWFr
ZQpAQCAtMiw3ICsyLDYgQEAKICMgSXQgd2lsbCBjaGVjayBmb3IgdGhlIHByb2dyYW1zIGFuZCBk
ZWZpbmUgdGhlIGdpdmVuIGV4ZWN1dGFibGVzOgogIyAgICBQRVJMX0VYRUNVVEFCTEUKICMgICAg
QklTT05fRVhFQ1VUQUJMRQotIyAgICBHUEVSRl9FWEVDVVRBQkxFCiAjICAgIEZMRVhfRVhFQ1VU
QUJMRQogCiBJTkNMVURFIChXZWJLaXRGUykKQEAgLTY5LDI1ICs2OCwyNCBAQCBNQUNSTyhHRU5F
UkFURV9HUkFNTUFSIF9wcmVmaXggX3NvdXJjZSkKIEVORE1BQ1JPICgpCiAKIAotRklORF9QUk9H
UkFNKEdQRVJGX0VYRUNVVEFCTEUgZ3BlcmYpCi1JRiAoTk9UIEdQRVJGX0VYRUNVVEFCTEUpCi0g
IE1FU1NBR0UoRkFUQUxfRVJST1IgIk1pc3NpbmcgZ3BlcmYiKQotRU5ESUYgKCkKLUZJTkRfUEFD
S0FHRV9IQU5ETEVfU1RBTkRBUkRfQVJHUyhHUGVyZiBERUZBVUxUX01TRyBHUEVSRl9FWEVDVVRB
QkxFKQotU0VUKFBFUkZfSEFTSF9HRU5FUkFUT1IgJHtXRUJDT1JFX0RJUn0vbWFrZS1oYXNoLXRv
b2xzLnBsKQotCiAjIC0gQ3JlYXRlIHBlcmZlY3QgaGFzaCB0YWJsZXMgdXNpbmcgZ3BlcmYKLSMg
R0VORVJBVEVfR1BFUkYoZXh0ZW5zaW9uIHNvdXJjZV9maWxlKQotIwotIyBUaGUgZ2VuZXJhdGVk
IGZpbGVzIGxpdmVzIGluICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0gYW5kIGVuZHMgaW4gLmNwcAot
TUFDUk8oR0VORVJBVEVfR1BFUkYgX3NvdXJjZSkKK01BQ1JPKE1BS0VfSEFTSF9UT09MUyBfc291
cmNlKQogICBHRVRfRklMRU5BTUVfQ09NUE9ORU5UKF9uYW1lICR7X3NvdXJjZX0gTkFNRV9XRSkK
KyAgCisgIElGICgke19zb3VyY2V9IFNUUkVRVUFMICJIVE1MRW50aXR5TmFtZXMiKQorICAgIFNF
VChfaGFzaF90b29sc19oICIke0RFUklWRURfU09VUkNFU19ESVJ9L0hhc2hUb29scy5oIikKKyAg
RUxTRSAoKQorICAgIFNFVChfaGFzaF90b29sc19oICIiKQorICBFTkRJRiAoKQorCiAgIEFERF9D
VVNUT01fQ09NTUFORCgKLSAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfRElSfS8ke19uYW1l
fS5jcHAKLSAgICBERVBFTkRTICR7X3NvdXJjZX0KLSAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRB
QkxFfSAke1BFUkZfSEFTSF9HRU5FUkFUT1J9ICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0gJHtfc291
cmNlfQorICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19ESVJ9LyR7X25hbWV9LmNwcCAke19o
YXNoX3Rvb2xzX2h9CisgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJDT1JFX0RJ
Un0vbWFrZS1oYXNoLXRvb2xzLnBsICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0gJHtfc291cmNlfS5n
cGVyZgogICAgIFZFUkJBVElNKQotRU5ETUFDUk8gKCkKKworICBVTlNFVChfbmFtZSkKKyAgVU5T
RVQoX2hhc2hfdG9vbHNfaCkKK0VORE1BQ1JPKCkKIAogCiAjIE1vZHVsZXMgdGhhdCB0aGUgYmlu
ZGluZ3MgZ2VuZXJhdG9yIHNjcmlwdHMgbWF5IHVzZQotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63867</attachid>
            <date>2010-08-09 01:37:48 -0700</date>
            <delta_ts>2010-08-09 02:03:04 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>gperf.patch</filename>
            <type>text/plain</type>
            <size>33769</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBkNDU3YmVjLi5lZTgwZDQ1
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMDgtMDkgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuZGVmaW5lZCByZWZlcmVu
Y2UgZXJyb3JzIHdoZW4gbGlua2luZyBkdWUgdG8gZ3BlcmYgYW5kIGlubGluaW5nLgorICAgICAg
ICB3ZWJraXQub3JnL2IvMjkyNDQKKworICAgICAgICBFRkwgQ01ha2UgY2hhbmdlcyBieSBMZWFu
ZHJvIFBlcmVpcmEgPGxlYW5kcm9AcHJvZnVzaW9uLm1vYmk+IAorCisgICAgICAgIFJlZmFjdG9y
IGdwZXJmIGNvZGUgZ2VuZXJhdGlvbiBhbmQgdXNhZ2UgdG8gZml4IHRoZSBkZWJ1ZyBidWlsZCB3
aXRoIGdjYz40LjQuCisgICAgICAgIEhpdGhlcnRvIGdwZXJmIGdlbmVyYXRlZCBDIGNvZGUsIHRo
ZXNlIGZpbGVzIHdlcmUgaW5jbHVkZWQgaW4gbXVsdGlwbGUgQysrIGZpbGVzIGFjcm9zcyBXZWJD
b3JlCisgICAgICAgIHRvIGFjY2VzcyB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZC4gVGhpcyBy
ZXN1bHRlZCBpbiBkZWJ1ZyBidWlsZCBmYWlsdXJlIHdpdGggbmV3ZXIgZ2NjIHZlcnNpb25zCisg
ICAgICAgIGJlY2F1c2Ugb2YgYSBiZWhhdmlvdXIgY2hhbmdlIG9mIGdjYywgd2hpY2ggZGlzYWJs
ZXMgQyBzdHlsZSBpbmxpbmluZyBpbiBkZWJ1ZyBtb2RlLgorICAgICAgICBUaGUgbWFrZS1oYXNo
LXRvb2xzLnBsIHNjcmlwdCBsZXRzIGdwZXJmIGdlbmVyYXRlIEMrKyBjb2RlIGZvciBhbGwgZ3Bl
cmYgZmlsZXMgbm93LCB3aGljaCBhcmUgY29tcGlsZWQKKyAgICAgICAgaW4gdGhlaXIgb3duIGNv
bXBpbGF0aW9uIHVuaXQuCisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRo
ZSBnZW5lcmF0ZWQgY29kZSBpcyB3cmFwcGVkIGJlaGluZCBIYXNoVG9vbHMuaCwgc28gdGhlcmUg
aXMgbm8gbmVlZAorICAgICAgICBmb3IgbXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQg
QyBmaWxlcyB0byBhY2Nlc3MgdGhlc2UgZnVuY3Rpb25zLgorCisgICAgICAgICogY21ha2UvV2Vi
S2l0R2VuZXJhdG9ycy5jbWFrZToKKwogMjAxMC0wOC0wNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjY0OTA0LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggMWRkYjBjMS4uMDcyODcxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MzEsNiArNTMx
LDEwIEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICAke0RFUklWRURfU09VUkNFU19ESVJ9L0NT
U0dyYW1tYXIuY3BwCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9IVE1MRWxlbWVudEZhY3Rv
cnkuY3BwCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9IVE1MRW50aXR5TmFtZXMuY3BwCisg
ICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Eb2NUeXBlU3RyaW5ncy5jcHAKKyAgICAke0RFUklW
RURfU09VUkNFU19ESVJ9L0NTU1ZhbHVlS2V5d29yZHMuY3BwCisgICAgJHtERVJJVkVEX1NPVVJD
RVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmNwcAorICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0v
Q29sb3JEYXRhLmNwcAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSFRNTE5hbWVzLmNwcAog
ICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNw
cAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwCkBA
IC0xODIwLDkgKzE4MjQsMTEgQEAgR0VORVJBVEVfSU5TUEVDVE9SX0ZST01fSURMKGluc3BlY3Rv
ci9JbnNwZWN0b3IuaWRsKQogCiBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtKU19JRExf
RklMRVN9ICR7SW5zcGVjdG9yX0lETF9GSUxFU30pCiAKLUdFTkVSQVRFX0dQRVJGKCR7V0VCQ09S
RV9ESVJ9L2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmKQotR0VORVJBVEVfR1BFUkYoJHtXRUJD
T1JFX0RJUn0vcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmKQotR0VORVJBVEVfR1BFUkYoJHtXRUJD
T1JFX0RJUn0vaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZikKK01BS0VfSEFTSF9UT09MUygke1dF
QkNPUkVfRElSfS9odG1sL0hUTUxFbnRpdHlOYW1lcykKK01BS0VfSEFTSF9UT09MUygke1dFQkNP
UkVfRElSfS9odG1sL0RvY1R5cGVTdHJpbmdzKQorTUFLRV9IQVNIX1RPT0xTKCR7REVSSVZFRF9T
T1VSQ0VTX0RJUn0vQ1NTVmFsdWVLZXl3b3JkcykKK01BS0VfSEFTSF9UT09MUygke0RFUklWRURf
U09VUkNFU19ESVJ9L0NTU1Byb3BlcnR5TmFtZXMpCitNQUtFX0hBU0hfVE9PTFMoJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vQ29sb3JEYXRhKQogCiBHRU5FUkFURV9UT0tFTklaRVIoKQogR0VORVJB
VEVfVVNFUl9BR0VOVF9TVFlMRVMoKQpAQCAtMTgzMyw2ICsxODM5LDcgQEAgR0VORVJBVEVfR1JB
TU1BUih4cGF0aHl5ICR7V0VCQ09SRV9ESVJ9L3htbC9YUGF0aEdyYW1tYXIueSkKIEdFTkVSQVRF
X0NTU19QUk9QRVJUWV9OQU1FUygpCiBHRU5FUkFURV9DU1NfVkFMVUVfS0VZV09SRFMoKQogCitB
RERfU09VUkNFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSGFz
aFRvb2xzLmggSFRNTEVudGl0eU5hbWVzLmNwcCBEb2NUeXBlU3RyaW5ncy5jcHAgQ1NTVmFsdWVL
ZXl3b3Jkcy5jcHAgQ1NTUHJvcGVydHlOYW1lcy5jcHAgQ29sb3JEYXRhLmNwcCkKIEFERF9TT1VS
Q0VfREVSSVZFRF9ERVBFTkRFTkNJRVMoJHtERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NHcmFtbWFy
LmNwcCBDU1NWYWx1ZUtleXdvcmRzLmgpCiBBRERfU09VUkNFX0RFUklWRURfREVQRU5ERU5DSUVT
KCR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTR3JhbW1hci5jcHAgQ1NTUHJvcGVydHlOYW1lcy5o
KQogQUREX1NPVVJDRV9ERVJJVkVEX0RFUEVOREVOQ0lFUygke1dFQkNPUkVfRElSfS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIENTU1ZhbHVlS2V5d29yZHMuaCkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzUzMWM2NS4uY2Jk
ODMwNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMC0wOC0wOSAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVW5kZWZpbmVkIHJlZmVyZW5jZSBlcnJvcnMgd2hlbiBsaW5raW5nIGR1ZSB0byBncGVyZiBh
bmQgaW5saW5pbmcuCisgICAgICAgIHdlYmtpdC5vcmcvYi8yOTI0NAorCisgICAgICAgIEVGTCBD
TWFrZSBjaGFuZ2VzIGJ5IExlYW5kcm8gUGVyZWlyYSA8bGVhbmRyb0Bwcm9mdXNpb24ubW9iaT4g
CisKKyAgICAgICAgUmVmYWN0b3IgZ3BlcmYgY29kZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0byBm
aXggdGhlIGRlYnVnIGJ1aWxkIHdpdGggZ2NjPjQuNC4KKyAgICAgICAgSGl0aGVydG8gZ3BlcmYg
Z2VuZXJhdGVkIEMgY29kZSwgdGhlc2UgZmlsZXMgd2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBD
KysgZmlsZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAgICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFs
aXR5IHByb3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGluIGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBu
ZXdlciBnY2MgdmVyc2lvbnMKKyAgICAgICAgYmVjYXVzZSBvZiBhIGJlaGF2aW91ciBjaGFuZ2Ug
b2YgZ2NjLCB3aGljaCBkaXNhYmxlcyBDIHN0eWxlIGlubGluaW5nIGluIGRlYnVnIG1vZGUuCisg
ICAgICAgIFRoZSBtYWtlLWhhc2gtdG9vbHMucGwgc2NyaXB0IGxldHMgZ3BlcmYgZ2VuZXJhdGUg
QysrIGNvZGUgZm9yIGFsbCBncGVyZiBmaWxlcyBub3csIHdoaWNoIGFyZSBjb21waWxlZAorICAg
ICAgICBpbiB0aGVpciBvd24gY29tcGlsYXRpb24gdW5pdC4KKyAgICAgICAgVGhlIGZ1bmN0aW9u
YWxpdHkgcHJvdmlkZWQgYnkgdGhlIGdlbmVyYXRlZCBjb2RlIGlzIHdyYXBwZWQgYmVoaW5kIEhh
c2hUb29scy5oLCBzbyB0aGVyZSBpcyBubyBuZWVkCisgICAgICAgIGZvciBtdWx0aXBsZSBpbmNs
dXNpb25zIG9mIGdlbmVyYXRlZCBDIGZpbGVzIHRvIGFjY2VzcyB0aGVzZSBmdW5jdGlvbnMuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdl
YkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTUGFy
c2VyLmNwcDoKKyAgICAgICAgKiBjc3MvbWFrZXByb3AucGw6CisgICAgICAgICogY3NzL21ha2V2
YWx1ZXMucGw6CisgICAgICAgICogaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZjoKKyAgICAgICAg
KiBodG1sL0hUTUxEb2N1bWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MRW50aXR5TmFtZXMu
Z3BlcmY6CisgICAgICAgICogaHRtbC9IVE1MRW50aXR5UGFyc2VyLmNwcDoKKyAgICAgICAgKiBo
dG1sL0xlZ2FjeUhUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgICogaHRtbC9MZWdhY3lQ
cmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgICogbWFrZS1oYXNoLXRvb2xzLnBsOgorICAgICAg
ICAqIHBsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZjoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5jcHA6CisKIDIwMTAtMDgtMDkgIEZyYW7Dp29pcyBTYXVzc2V0ICA8c2F1c3NldEBn
bWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5z
ZW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIvV2ViQ29y
ZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRleCBhMjhlZTVkLi41NWRiYjIxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5neXAvV2ViQ29yZS5neXAKQEAgLTYwNyw3ICs2MDcsNiBAQAogICAgICAgICAgICAgJzwoU0hB
UkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdCcsCiAgICAgICAgICAgICAnPChSVUxFX0lOUFVU
X1BBVEgpJywKICAgICAgICAgICBdLAotICAgICAgICAgICdwcm9jZXNzX291dHB1dHNfYXNfc291
cmNlcyc6IDAsCiAgICAgICAgIH0sCiAgICAgICAgICMgUnVsZSB0byBidWlsZCBnZW5lcmF0ZWQg
SmF2YVNjcmlwdCAoVjgpIGJpbmRpbmdzIGZyb20gLmlkbCBzb3VyY2UuCiAgICAgICAgIHsKQEAg
LTcwMiw2ICs3MDEsMTMgQEAKICAgICAgICAgIyBpbiB3ZWJjb3JlX2ZpbGVzLgogICAgICAgICAn
PEAoZGVyaXZlZF9zb3VyY2VzX2FnZ3JlZ2F0ZV9maWxlcyknLAogCisgICAgICAgICMgQWRkaXRp
b25hbCAuY3BwIGZpbGVzIGZvciBIYXNoVG9vbHMuaAorICAgICAgICAnPChTSEFSRURfSU5URVJN
RURJQVRFX0RJUikvd2Via2l0L0hUTUxFbnRpdHlOYW1lcy5jcHAnLAorICAgICAgICAnPChTSEFS
RURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L0RvY1R5cGVTdHJpbmdzLmNwcCcsCisgICAgICAg
ICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvQ29sb3JEYXRhLmNwcCcsCisgICAg
ICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvQ1NTUHJvcGVydHlOYW1lcy5j
cHAnLAorICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L0NTU1ZhbHVl
S2V5d29yZHMuY3BwJywKKwogICAgICAgICAjIEFkZGl0aW9uYWwgLmNwcCBmaWxlcyBmcm9tIHdl
YmNvcmVfYmluZGluZ3Nfc291cmNlcyBhY3Rpb25zLgogICAgICAgICAnPChTSEFSRURfSU5URVJN
RURJQVRFX0RJUikvd2Via2l0L0hUTUxFbGVtZW50RmFjdG9yeS5jcHAnLAogICAgICAgICAnPChT
SEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L0hUTUxOYW1lcy5jcHAnLApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5kZXggN2RkMDY4
MS4uMTYzYWE2YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9XZWJDb3Jl
L1dlYkNvcmUucHJpCkBAIC03MDcsNyArNzA3LDcgQEAgY3NzcHJvcHMud2tTY3JpcHQgPSAkJFBX
RC9jc3MvbWFrZXByb3AucGwKIGNzc3Byb3BzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5jcHAKIGNzc3Byb3BzLmlucHV0ID0gV0FMRE9DU1NQ
Uk9QUwogY3NzcHJvcHMuY29tbWFuZHMgPSBwZXJsIC1uZSBcInByaW50IGxjXCIgJHtRTUFLRV9G
SUxFX05BTUV9ICQke0RBU0hCT0FSRFNVUFBPUlRDU1NQUk9QRVJUSUVTfSAkJHtFWFRSQUNTU1BS
T1BFUlRJRVN9ID4gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFT
RX0uaW4gJiYgY2QgJCRXQ19HRU5FUkFURURfU09VUkNFU19ESVIgJiYgcGVybCAkJGNzc3Byb3Bz
LndrU2NyaXB0ICYmICQoREVMX0ZJTEUpICR7UU1BS0VfRklMRV9CQVNFfS5pbiAke1FNQUtFX0ZJ
TEVfQkFTRX0uZ3BlcmYKLWNzc3Byb3BzLmRlcGVuZHMgPSAke1FNQUtFX0ZJTEVfTkFNRX0gJCR7
REFTSEJPQVJEU1VQUE9SVENTU1BST1BFUlRJRVN9ICQke0VYVFJBQ1NTUFJPUEVSVElFU30KK2Nz
c3Byb3BzLmRlcGVuZHMgPSAke1FNQUtFX0ZJTEVfTkFNRX0gJCR7REFTSEJPQVJEU1VQUE9SVENT
U1BST1BFUlRJRVN9ICQke0VYVFJBQ1NTUFJPUEVSVElFU30gJCRjc3Nwcm9wcy53a1NjcmlwdAog
YWRkRXh0cmFDb21waWxlcihjc3Nwcm9wcykKIAogIyBHRU5FUkFUT1IgNi1COgpAQCAtNzE1LDcg
KzcxNSw3IEBAIGNzc3ZhbHVlcy53a1NjcmlwdCA9ICQkUFdEL2Nzcy9tYWtldmFsdWVzLnBsCiBj
c3N2YWx1ZXMub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9DU1NWYWx1ZUtl
eXdvcmRzLmNwcAogY3NzdmFsdWVzLmlucHV0ID0gV0FMRE9DU1NWQUxVRVMKIGNzc3ZhbHVlcy5j
b21tYW5kcyA9IHBlcmwgLW5lIFwicHJpbnQgbGNcIiAke1FNQUtFX0ZJTEVfTkFNRX0gJCRFWFRS
QUNTU1ZBTFVFUyA+ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JB
U0V9LmluICYmIGNkICQkV0NfR0VORVJBVEVEX1NPVVJDRVNfRElSICYmIHBlcmwgJCRjc3N2YWx1
ZXMud2tTY3JpcHQgJiYgJChERUxfRklMRSkgJHtRTUFLRV9GSUxFX0JBU0V9LmluICR7UU1BS0Vf
RklMRV9CQVNFfS5ncGVyZgotY3NzdmFsdWVzLmRlcGVuZHMgPSAke1FNQUtFX0ZJTEVfTkFNRX0g
JCR7RVhUUkFDU1NWQUxVRVN9Citjc3N2YWx1ZXMuZGVwZW5kcyA9ICR7UU1BS0VfRklMRV9OQU1F
fSAkJHtFWFRSQUNTU1ZBTFVFU30gJCRjc3N2YWx1ZXMud2tTY3JpcHQKIGNzc3ZhbHVlcy5jbGVh
biA9ICR7UU1BS0VfRklMRV9PVVR9ICR7UU1BS0VfVkFSX1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJ
Un0vJHtRTUFLRV9GSUxFX0JBU0V9LmgKIGFkZEV4dHJhQ29tcGlsZXIoY3NzdmFsdWVzKQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBmODExMjk1Li41OGEyZjY2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTU0NSw2ICs1NDUsMzAgQEAK
IAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRP
dXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xIYXNoVG9vbHMuaCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRP
dXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xIVE1MRW50aXR5TmFt
ZXMuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIk
KFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXERvY1R5
cGVTdHJpbmdzLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNl
c1xDU1NWYWx1ZUtleXdvcmRzLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xDU1NQcm9wZXJ0eU5hbWVzLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xDb2xvckRhdGEuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCIKIAkJ
CQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDM3OTFkYzkuLjA1NTEwMDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC00ODgsNiArNDg4LDExIEBACiAJCTFBQjdGQzg2MEE4QjkyRUMwMEQ5
RDM3QiAvKiBYUGF0aFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQUI3RkM2NTBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYWx1ZS5oICovOyB9
OwogCQkxQUI3RkM4NzBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUI3RkM2
NjBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5jcHAgKi87IH07CiAJ
CTFBQjdGQzg4MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhcmlhYmxlUmVmZXJlbmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUI3RkM2NzBBOEI5
MkVDMDBEOUQzN0IgLyogWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oICovOyB9OworCQkxQUJBNzZD
OTExRDIwRTQ3MDA0QzIwMUMgLyogQ29sb3JEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDZGM0ZCMTE5ODMwN0QwMDlENTlENiAvKiBDb2xv
ckRhdGEuY3BwICovOyB9OworCQkxQUJBNzZDQTExRDIwRTUwMDA0QzIwMUMgLyogQ1NTUHJvcGVy
dHlOYW1lcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNDFFQTAzODExOTgzNkRCMDA3MTBCQzUgLyogQ1NTUHJvcGVydHlOYW1lcy5jcHAgKi87IH07
CisJCTFBQkE3NkNCMTFEMjBFNTcwMDRDMjAxQyAvKiBDU1NWYWx1ZUtleXdvcmRzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MUVBMDM5MTE5ODM3
NDkwMDcxMEJDNSAvKiBDU1NWYWx1ZUtleXdvcmRzLmNwcCAqLzsgfTsKKwkJMUFCQTc2Q0MxMUQy
MEU1QjAwNEMyMDFDIC8qIERvY1R5cGVTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDZGM0ZBMTE5ODMwNEQwMDlENTlENiAvKiBEb2NU
eXBlU3RyaW5ncy5jcHAgKi87IH07CisJCTFBQkE3N0ZEMTFEMjEwMzEwMDRDMjAxQyAvKiBIVE1M
RW50aXR5TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTQwNkY0MDIxMTk4MzI5QTAwOUQ1OUQ2IC8qIEhUTUxFbnRpdHlOYW1lcy5jcHAgKi87
IH07CiAJCTFBQkZFNzUzMENEOTY4RDAwMEZFNDgzNCAvKiBTUUxUcmFuc2FjdGlvbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUJGRTc1MjBDRDk2
OEQwMDBGRTQ4MzQgLyogU1FMVHJhbnNhY3Rpb24uY3BwICovOyB9OwogCQkxQUMyMjYwQzBEQjY5
RjE5MDA4OUI2NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQzIyNjBBMERCNjlGMTkwMDg5QjY2OSAv
KiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwICovOyB9OwogCQkxQUMyMjYwRDBEQjY5RjE5MDA4
OUI2NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUMyMjYwQjBEQjY5RjE5MDA4OUI2NjkgLyogSlNET01B
cHBsaWNhdGlvbkNhY2hlLmggKi87IH07CkBAIC0yMDQyOSw2ICsyMDQzNCwxMSBAQAogCQkJaXNh
ID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OwogCQkJZmlsZXMgPSAoCisJCQkJMUFCQTc2QzkxMUQyMEU0NzAwNEMyMDFDIC8qIENvbG9yRGF0
YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUJBNzZDQTExRDIwRTUwMDA0QzIwMUMgLyogQ1NT
UHJvcGVydHlOYW1lcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUJBNzZDQjExRDIwRTU3MDA0
QzIwMUMgLyogQ1NTVmFsdWVLZXl3b3Jkcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUJBNzZD
QzExRDIwRTVCMDA0QzIwMUMgLyogRG9jVHlwZVN0cmluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMUFCQTc3RkQxMUQyMTAzMTAwNEMyMDFDIC8qIEhUTUxFbnRpdHlOYW1lcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCNUI1REM2OTExOUJCM0Q1MDAyQTg3OTAgLyogQWJzdHJhY3REYXRhYmFz
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MUUxQjFEMDBGRjU5ODY5MDA1NzZCM0IgLyogQWJz
dHJhY3RXb3JrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjlBODEyMjgwRkJCOUMxRDAwNTEw
MjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
CmluZGV4IGFhNmNkZDkuLmM4ZjExNzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNjEsNiArNjEsNyBAQAog
I2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkZvbnRGYW1pbHlWYWx1ZS5o
IgogI2luY2x1ZGUgIkZvbnRWYWx1ZS5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1
ZGUgIk1lZGlhTGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlFeHAuaCIKICNpbmNsdWRlICJQ
YWlyLmgiCkBAIC04OCw5ICs4OSw2IEBAIGV4dGVybiBpbnQgY3NzeXlwYXJzZSh2b2lkKiBwYXJz
ZXIpOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKLSNpbmNs
dWRlICJDU1NQcm9wZXJ0eU5hbWVzLmNwcCIKLSNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmNw
cCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgSU5WQUxJ
RF9OVU1fUEFSU0VEX1BST1BFUlRJRVMgPSBVSU5UX01BWDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Y3NzL21ha2Vwcm9wLnBsIGIvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwKaW5kZXggMGZkMWYwOC4u
MGRkODQ0NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwKKysrIGIvV2ViQ29y
ZS9jc3MvbWFrZXByb3AucGwKQEAgLTQxLDE1ICs0MSwxNCBAQCBwcmludCBHUEVSRiA8PCAiRU9G
IjsKICNpbmNsdWRlIFwiQ1NTUHJvcGVydHlOYW1lcy5oXCIKICV9CiAlc3RydWN0LXR5cGUKLXN0
cnVjdCBQcm9wZXJ0eSB7Ci0gICAgY29uc3QgY2hhciogbmFtZTsKLSAgICBpbnQgaWQ7Ci19Owot
JWxhbmd1YWdlPUFOU0ktQworc3RydWN0IFByb3BlcnR5OworJW9taXQtc3RydWN0LXR5cGUKKyVs
YW5ndWFnZT1DKysKICVyZWFkb25seS10YWJsZXMKICVnbG9iYWwtdGFibGUKICVjb21wYXJlLXN0
cm5jbXAKLSVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZFByb3BlcnR5CislZGVmaW5l
IGNsYXNzLW5hbWUgQ1NTUHJvcGVydHlOYW1lc0hhc2gKKyVkZWZpbmUgbG9va3VwLWZ1bmN0aW9u
LW5hbWUgZmluZFByb3BlcnR5SW1wbAogJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgcHJvcGVy
eV9oYXNoX2Z1bmN0aW9uCiAlZGVmaW5lIHdvcmQtYXJyYXktbmFtZSBwcm9wZXJ0eV93b3JkbGlz
dAogJWluY2x1ZGVzCkBAIC03Miw2ICs3MSwxMCBAQCBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAj
aWZuZGVmIENTU1Byb3BlcnR5TmFtZXNfaAogI2RlZmluZSBDU1NQcm9wZXJ0eU5hbWVzX2gKIAor
I2luY2x1ZGUgPHN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKIGVudW0gQ1NTUHJv
cGVydHlJRCB7CiAgICAgQ1NTUHJvcGVydHlJbnZhbGlkID0gMCwKIEVPRgpAQCAtOTksMTUgKzEw
MiwxNyBAQCBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAKIGNvbnN0IGNoYXIqIGdldFByb3BlcnR5
TmFtZShDU1NQcm9wZXJ0eUlEKTsKIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCiAjZW5kaWYg
Ly8gQ1NTUHJvcGVydHlOYW1lc19oCiAKIEVPRgogCiBjbG9zZSBIRUFERVI7CiAKLXN5c3RlbSgi
Z3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1uIC1zIDIgQ1NTUHJvcGVydHlOYW1lcy5n
cGVyZiA+IENTU1Byb3BlcnR5TmFtZXMuY3BwIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYg
ZmFpbGVkOiAkPyI7CitzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtbiAt
cyAyIENTU1Byb3BlcnR5TmFtZXMuZ3BlcmYgPiBDU1NQcm9wZXJ0eU5hbWVzSGFzaC5oIikgPT0g
MCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKLW9wZW4gQywgIj4+Q1NTUHJv
cGVydHlOYW1lcy5jcHAiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTUHJvcGVydHlOYW1lcy5j
cHAgZm9yIHdyaXRpbmciOworb3BlbiBDLCAiPj5DU1NQcm9wZXJ0eU5hbWVzSGFzaC5oIiB8fCBk
aWUgIkNvdWxkIG5vdCBvcGVuIENTU1Byb3BlcnR5TmFtZXNIYXNoLmggZm9yIHdyaXRpbmciOwog
cHJpbnQgQyAic3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBwcm9wZXJ0eU5hbWVTdHJpbmdzWyRu
dW1dID0ge1xuIjsKIAogZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CkBAIC0xMTYsNiArMTIx
LDI5IEBAIGZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgewogCiBwcmludCBDIDw8ICJFT0YiOwog
fTsKKworRU9GCisKK2Nsb3NlIEM7CisKK215ICRwcm9wZXJ0eU5hbWVzSW1wbCA9ICJDU1NQcm9w
ZXJ0eU5hbWVzLmNwcCI7CisKK29wZW4gUFJPUEVSVFlOQU1FUywgIj4kcHJvcGVydHlOYW1lc0lt
cGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJHByb3BlcnR5TmFtZXNJbXBsIGZvciB3cml0aW5n
IjsKK3ByaW50IFBST1BFUlRZTkFNRVMgPDwgIkVPRiI7CisvKiBUaGlzIGZpbGUgaXMgYXV0b21h
dGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBkbyBub3QgZWRpdCAqLwor
CisKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzSGFzaC5o
IgorCitjb25zdCBQcm9wZXJ0eSogZmluZFByb3BlcnR5IChyZWdpc3RlciBjb25zdCBjaGFyKiBz
dHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7CisgICAgcmV0dXJuIENTU1Byb3BlcnR5
TmFtZXNIYXNoOjpmaW5kUHJvcGVydHlJbXBsKHN0ciwgbGVuKTsKK30KKwogY29uc3QgY2hhciog
Z2V0UHJvcGVydHlOYW1lKENTU1Byb3BlcnR5SUQgaWQpCiB7CiAgICAgaWYgKGlkIDwgZmlyc3RD
U1NQcm9wZXJ0eSkKQEAgLTEyNSw3ICsxNTMsMTAgQEAgY29uc3QgY2hhciogZ2V0UHJvcGVydHlO
YW1lKENTU1Byb3BlcnR5SUQgaWQpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBwcm9w
ZXJ0eU5hbWVTdHJpbmdzW2luZGV4XTsKIH0KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCiBF
T0YKIAotY2xvc2UgQzsKK2Nsb3NlIFBST1BFUlRZTkFNRVM7CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvY3NzL21ha2V2YWx1ZXMucGwgYi9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCmluZGV4IDQy
MWU0NzAuLmM5ZjdmNzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwKKysr
IGIvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbApAQCAtNDIsMTQgKzQyLDEzIEBAIHByaW50IEdQ
RVJGIDw8ICJFT0YiOwogI2luY2x1ZGUgXCJDU1NWYWx1ZUtleXdvcmRzLmhcIgogJX0KICVzdHJ1
Y3QtdHlwZQotc3RydWN0IFZhbHVlIHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGludCBp
ZDsKLX07Ci0lbGFuZ3VhZ2U9QU5TSS1DCitzdHJ1Y3QgVmFsdWU7Cislb21pdC1zdHJ1Y3QtdHlw
ZQorJWxhbmd1YWdlPUMrKwogJXJlYWRvbmx5LXRhYmxlcwogJWNvbXBhcmUtc3RybmNtcAotJWRl
ZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kVmFsdWUKKyVkZWZpbmUgY2xhc3MtbmFtZSBD
U1NWYWx1ZUtleXdvcmRzSGFzaAorJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kVmFs
dWVJbXBsCiAlZGVmaW5lIGhhc2gtZnVuY3Rpb24tbmFtZSB2YWx1ZV9oYXNoX2Z1bmN0aW9uCiAl
ZGVmaW5lIHdvcmQtYXJyYXktbmFtZSB2YWx1ZV93b3JkX2xpc3QKICVpbmNsdWRlcwpAQCAtNzIs
NiArNzEsMTAgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogI2lmbmRlZiBDU1NWYWx1ZUtleXdv
cmRzX2gKICNkZWZpbmUgQ1NTVmFsdWVLZXl3b3Jkc19oCiAKKyNpbmNsdWRlIDxzdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCiBjb25zdCBpbnQgQ1NTVmFsdWVJbnZhbGlkID0gMDsK
IEVPRgogCkBAIC05MiwxMyArOTUsMTYgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogCiBjb25z
dCBjaGFyKiBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpOwogCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKICNlbmRpZiAvLyBDU1NWYWx1ZUtleXdvcmRzX2gKKwogRU9GCiBjbG9zZSBI
RUFERVI7CiAKLXN5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1uIC1zIDIg
Q1NTVmFsdWVLZXl3b3Jkcy5ncGVyZiA+IENTU1ZhbHVlS2V5d29yZHMuY3BwIikgPT0gMCB8fCBk
aWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CitzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0
aW9ucz1cIipcIiAtRCAtbiAtcyAyIENTU1ZhbHVlS2V5d29yZHMuZ3BlcmYgPiBDU1NWYWx1ZUtl
eXdvcmRzSGFzaC5oIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAK
LW9wZW4gQywgIj4+Q1NTVmFsdWVLZXl3b3Jkcy5jcHAiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4g
Q1NTVmFsdWVLZXl3b3Jkcy5jcHAgZm9yIHdyaXRpbmciOworb3BlbiBDLCAiPj5DU1NWYWx1ZUtl
eXdvcmRzSGFzaC5oIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1ZhbHVlS2V5d29yZHNIYXNo
LmggZm9yIHdyaXRpbmciOwogcHJpbnQgQyAgInN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdmFs
dWVMaXN0W10gPSB7XG4iOwogcHJpbnQgQyAgIlwiXCIsXG4iOwogZm9yZWFjaCBteSAkbmFtZSAo
QG5hbWVzKSB7CkBAIC0xMDcsMTIgKzExMywzOCBAQCBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMp
IHsKIHByaW50IEMgPDwgIkVPRiI7CiAgICAgMAogfTsKKworRU9GCisKK2Nsb3NlIEM7CisKK215
ICR2YWx1ZUtleXdvcmRzSW1wbCA9ICJDU1NWYWx1ZUtleXdvcmRzLmNwcCI7CisKK29wZW4gVkFM
VUVLRVlXT1JEUywgIj4kdmFsdWVLZXl3b3Jkc0ltcGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4g
JHZhbHVlS2V5d29yZHNJbXBsIGZvciB3cml0aW5nIjsKK3ByaW50IFZBTFVFS0VZV09SRFMgPDwg
IkVPRiI7CisvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1o
YXNoLXRvb2xzLnBsLCBkbyBub3QgZWRpdCAqLworCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jk
cy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5j
bHVkZSAiQ1NTVmFsdWVLZXl3b3Jkc0hhc2guaCIKKworY29uc3QgVmFsdWUqIGZpbmRWYWx1ZSAo
cmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKQorewor
ICAgIHJldHVybiBDU1NWYWx1ZUtleXdvcmRzSGFzaDo6ZmluZFZhbHVlSW1wbChzdHIsIGxlbik7
Cit9CisKIGNvbnN0IGNoYXIqIGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBpZCkKIHsKICAg
ICBpZiAoaWQgPj0gbnVtQ1NTVmFsdWVLZXl3b3JkcyB8fCBpZCA8PSAwKQogICAgICAgICByZXR1
cm4gMDsKICAgICByZXR1cm4gdmFsdWVMaXN0W2lkXTsKIH0KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCiBFT0YKIAotY2xvc2UgQzsKK2Nsb3NlIFZBTFVFS0VZV09SRFM7CisKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZiBiL1dlYkNvcmUvaHRtbC9Eb2NU
eXBlU3RyaW5ncy5ncGVyZgppbmRleCA1YzIxM2IwLi42YjdkYTA0IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKKysrIGIvV2ViQ29yZS9odG1sL0RvY1R5cGVT
dHJpbmdzLmdwZXJmCkBAIC0xLDIxICsxLDEzIEBACiAlc3RydWN0LXR5cGUKLXN0cnVjdCBQdWJJ
REluZm8gewotICAgIGVudW0gZU1vZGUgeyAKLSAgICAgICAgZVF1aXJrcywgICAgICAgICAKLSAg
ICAgICAgZVF1aXJrczMsICAgICAgIAotICAgICAgICBlQWxtb3N0U3RhbmRhcmRzCi0gICAgfTsK
LQotICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgZU1vZGUgbW9kZV9pZl9ub19zeXNpZDsKLSAg
ICBlTW9kZSBtb2RlX2lmX3N5c2lkOwotfQotJWxhbmd1YWdlPUFOU0ktQworc3RydWN0IFB1YklE
SW5mbzsKKyVvbWl0LXN0cnVjdC10eXBlCislbGFuZ3VhZ2U9QysrCiAlcmVhZG9ubHktdGFibGVz
CiAlZ2xvYmFsLXRhYmxlCiAlY29tcGFyZS1zdHJuY21wCislZGVmaW5lIGNsYXNzLW5hbWUgRG9j
VHlwZVN0cmluZ3NIYXNoCiAlZGVmaW5lIGluaXRpYWxpemVyLXN1ZmZpeCAsUHViSURJbmZvOjpl
QWxtb3N0U3RhbmRhcmRzLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcwotJWRlZmluZSBsb29r
dXAtZnVuY3Rpb24tbmFtZSBmaW5kRG9jdHlwZUVudHJ5CislZGVmaW5lIGxvb2t1cC1mdW5jdGlv
bi1uYW1lIGZpbmREb2N0eXBlRW50cnlJbXBsCiAlZGVmaW5lIGhhc2gtZnVuY3Rpb24tbmFtZSBk
b2N0eXBlX2hhc2hfZnVuY3Rpb24KICVpbmNsdWRlcwogJWVudW0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAK
aW5kZXggZmYwYzJkZS4uNTA0N2NhMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1
bWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKQEAgLTY0LDYgKzY0
LDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUg
IkhUTUxEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxFbGVtZW50RmFjdG9yeS5oIgpAQCAtNzUsOCArNzYsNiBAQAogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCi0jaW5jbHVkZSAi
RG9jVHlwZVN0cmluZ3MuY3BwIgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eU5hbWVz
LmdwZXJmIGIvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgppbmRleCBjNjY1ZWZl
Li42ZWM1ZGNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJm
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKQEAgLTI1LDE2ICsyNSwx
NiBAQAogKi8KICV9CiAlc3RydWN0LXR5cGUKLXN0cnVjdCBFbnRpdHkgewotICAgIGNvbnN0IGNo
YXIgKm5hbWU7Ci0gICAgaW50IGNvZGU7Ci19OwotJWxhbmd1YWdlPUFOU0ktQworc3RydWN0IEVu
dGl0eTsKKyVsYW5ndWFnZT1DKysKKyVvbWl0LXN0cnVjdC10eXBlCiAlcmVhZG9ubHktdGFibGVz
CiAlZ2xvYmFsLXRhYmxlCiAlY29tcGFyZS1zdHJuY21wCi0lZGVmaW5lIGxvb2t1cC1mdW5jdGlv
bi1uYW1lIGZpbmRFbnRpdHkKKyVkZWZpbmUgY2xhc3MtbmFtZSBIVE1MRW50aXR5SGFzaAorJWRl
ZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kRW50aXR5SW1wbAogJWRlZmluZSBoYXNoLWZ1
bmN0aW9uLW5hbWUgZW50aXR5X2hhc2hfZnVuY3Rpb24KKyVkZWZpbmUgd29yZC1hcnJheS1uYW1l
IGVudGl0eV93b3JkbGlzdAogJWluY2x1ZGVzCiAlZW51bQogJSUKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9IVE1MRW50aXR5UGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5UGFy
c2VyLmNwcAppbmRleCA4NGIyMDA2Li40NjIxZWYzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTEVudGl0eVBhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlQYXJzZXIu
Y3BwCkBAIC0yOCwyMSArMjgsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhU
TUxFbnRpdHlQYXJzZXIuaCIKIAorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KIAotLy8gVXNlIF9fR05VQ19fIGluc3RlYWQgb2YgUExBVEZPUk0oR0NDKSB0
byBzdGF5IGNvbnNpc3RlbnQgd2l0aCB0aGUgZ3BlcmYgZ2VuZXJhdGVkIGMgZmlsZQotI2lmZGVm
IF9fR05VQ19fCi0vLyBUaGUgbWFpbiBwYXJzZXIgaW5jbHVkZXMgdGhpcyB0b28gc28gd2UgYXJl
IGdldHRpbmcgdHdvIGNvcGllcyBvZiB0aGUgZGF0YS4gSG93ZXZlciwgdGhpcyB3YXkgdGhlIGNv
ZGUgZ2V0cyBpbmxpbmVkLgotI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jcHAiCi0jZWxzZQot
Ly8gTm90IGlubGluZWQgZm9yIG5vbi1HQ0MgY29tcGlsZXJzCi1zdHJ1Y3QgRW50aXR5IHsKLSAg
ICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGludCBjb2RlOwotfTsKLWNvbnN0IHN0cnVjdCBFbnRp
dHkqIGZpbmRFbnRpdHkocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25l
ZCBpbnQgbGVuKTsKLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgV1RGOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvTGVnYWN5SFRNTERvY3VtZW50UGFy
c2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9MZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4
IGNiNWZhYzguLmFhNmUyNDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9MZWdhY3lIVE1MRG9j
dW1lbnRQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9MZWdhY3lIVE1MRG9jdW1lbnRQYXJz
ZXIuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhhc2hUb29s
cy5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAj
aW5jbHVkZSAiTGVnYWN5SFRNTFRyZWVCdWlsZGVyLmgiCkBAIC01NCw4ICs1NSw2IEBACiAjaW5j
bHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAot
I2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jcHAiCi0KICNkZWZpbmUgUFJFTE9BRF9TQ0FOTkVS
X0VOQUJMRUQgMQogCiB1c2luZyBuYW1lc3BhY2UgV1RGOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0xlZ2FjeVByZWxvYWRTY2FubmVyLmNwcCBiL1dlYkNvcmUvaHRtbC9MZWdhY3lQcmVsb2Fk
U2Nhbm5lci5jcHAKaW5kZXggYzlmZGE0Zi4uN2E2ZDAxNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9o
dG1sL0xlZ2FjeVByZWxvYWRTY2FubmVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvTGVnYWN5UHJl
bG9hZFNjYW5uZXIuY3BwCkBAIC0zOCwyNSArMzgsMTMgQEAKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRl
ICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgogCi0vLyBV
c2UgX19HTlVDX18gaW5zdGVhZCBvZiBQTEFURk9STShHQ0MpIHRvIHN0YXkgY29uc2lzdGVudCB3
aXRoIHRoZSBncGVyZiBnZW5lcmF0ZWQgYyBmaWxlCi0jaWZkZWYgX19HTlVDX18KLS8vIFRoZSBt
YWluIHRva2VuaXplciBpbmNsdWRlcyB0aGlzIHRvbyBzbyB3ZSBhcmUgZ2V0dGluZyB0d28gY29w
aWVzIG9mIHRoZSBkYXRhLiBIb3dldmVyLCB0aGlzIHdheSB0aGUgY29kZSBnZXRzIGlubGluZWQu
Ci0jaW5jbHVkZSAiSFRNTEVudGl0eU5hbWVzLmNwcCIKLSNlbHNlCi0vLyBOb3QgaW5saW5lZCBm
b3Igbm9uLUdDQyBjb21waWxlcnMKLXN0cnVjdCBFbnRpdHkgewotICAgIGNvbnN0IGNoYXIqIG5h
bWU7Ci0gICAgaW50IGNvZGU7Ci19OwotY29uc3Qgc3RydWN0IEVudGl0eSogZmluZEVudGl0eShy
ZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pOwotI2Vu
ZGlmCi0KICNkZWZpbmUgUFJFTE9BRF9ERUJVRyAwCiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL21ha2UtaGFzaC10b29scy5wbCBiL1dlYkNvcmUvbWFrZS1oYXNo
LXRvb2xzLnBsCmluZGV4IDQyY2I2ZmQuLjQzMmFjNDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbWFr
ZS1oYXNoLXRvb2xzLnBsCisrKyBiL1dlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsCkBAIC0yNiwz
NSArMjYsMTgxIEBAIHVzZSBGaWxlOjpCYXNlbmFtZTsKIG15ICRvdXRkaXIgPSAkQVJHVlswXTsK
IHNoaWZ0OwogbXkgJG9wdGlvbiA9IGJhc2VuYW1lKCRBUkdWWzBdLCIuZ3BlcmYiKTsKK215ICRo
YXNoVG9vbHNIZWFkZXIgPSAiJG91dGRpci9IYXNoVG9vbHMuaCI7CisKK3N1YiBjcmVhdGVIYXNo
VG9vbHNIZWFkZXIoKSB7CisKK29wZW4gSEVBREVSLCAiPiRoYXNoVG9vbHNIZWFkZXIiIHx8IGRp
ZSAiQ291bGQgbm90IG9wZW4gJGhhc2hUb29sc0hlYWRlciBmb3Igd3JpdGluZyI7CitwcmludCBI
RUFERVIgPDwgIkVPRiI7CisvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQg
YnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBkbyBub3QgZWRpdCAqLworCisjaWZuZGVmIEhhc2hUb29s
c19oCisjZGVmaW5lIEhhc2hUb29sc19oCisKKyNpbmNsdWRlICJ3dGYvUGxhdGZvcm0uaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRW50aXR5IHsKKyAgICBjb25zdCBjaGFyKiBu
YW1lOworICAgIGludCBjb2RlOworfTsKKworc3RydWN0IFB1YklESW5mbyB7CisgICAgZW51bSBl
TW9kZSB7CisgICAgICAgIGVRdWlya3MsCisgICAgICAgIGVRdWlya3MzLAorICAgICAgICBlQWxt
b3N0U3RhbmRhcmRzCisgICAgfTsKKworICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgZU1vZGUg
bW9kZV9pZl9ub19zeXNpZDsKKyAgICBlTW9kZSBtb2RlX2lmX3N5c2lkOworfTsKKworc3RydWN0
IE5hbWVkQ29sb3IgeworICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgaW50IFJHQlZhbHVlOwor
fTsKKworc3RydWN0IFByb3BlcnR5IHsKKyAgICBjb25zdCBjaGFyKiBuYW1lOworICAgIGludCBp
ZDsKK307CisKK3N0cnVjdCBWYWx1ZSB7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBpbnQg
aWQ7Cit9OworCitjb25zdCBFbnRpdHkqIGZpbmRFbnRpdHkocmVnaXN0ZXIgY29uc3QgY2hhciog
c3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKK2NvbnN0IFB1YklESW5mbyogZmluZERv
Y3R5cGVFbnRyeShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGlu
dCBsZW4pOworY29uc3QgTmFtZWRDb2xvciogZmluZENvbG9yKHJlZ2lzdGVyIGNvbnN0IGNoYXIq
IHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbik7Citjb25zdCBQcm9wZXJ0eSogZmluZFBy
b3BlcnR5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxl
bik7Citjb25zdCBWYWx1ZSogZmluZFZhbHVlKHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVn
aXN0ZXIgdW5zaWduZWQgaW50IGxlbik7CisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKworY29u
c3QgRW50aXR5KiB3b3JkTGlzdCgpOworY29uc3QgaW50IHdvcmRMaXN0U2l6ZSgpOworCisjZW5k
aWYKKworfQorCisjZW5kaWYgLy8gSGFzaFRvb2xzX2gKKworRU9GCitjbG9zZSBIRUFERVI7CisK
K30KKworCiAKIHN3aXRjaCAoJG9wdGlvbikgewogCiBjYXNlICJIVE1MRW50aXR5TmFtZXMiIHsK
IAotICAgIG15ICRodG1sRW50aXR5TmFtZXNHZW5lcmF0ZWQgICA9ICIkb3V0ZGlyL0hUTUxFbnRp
dHlOYW1lcy5jcHAiOworICAgIGNyZWF0ZUhhc2hUb29sc0hlYWRlcigpOworCisgICAgbXkgJGh0
bWxFbnRpdHlOYW1lc0ltcGwgICAgICAgID0gIiRvdXRkaXIvSFRNTEVudGl0eU5hbWVzLmNwcCI7
CisgICAgbXkgJGh0bWxFbnRpdHlOYW1lc0dlbmVyYXRlZCAgID0gIiRvdXRkaXIvSFRNTEVudGl0
eU5hbWVzSGFzaC5oIjsKICAgICBteSAkaHRtbEVudGl0eU5hbWVzR3BlcmYgICAgICAgPSAkQVJH
VlswXTsKICAgICBzaGlmdDsKIAorICAgIG9wZW4gRU5USVRJRVMsICI+JGh0bWxFbnRpdHlOYW1l
c0ltcGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJGh0bWxFbnRpdHlOYW1lc0ltcGwgZm9yIHdy
aXRpbmciOworICAgIHByaW50IEVOVElUSUVTIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1
dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQg
Ki8KKworI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5j
bHVkZSAiSFRNTEVudGl0eU5hbWVzSGFzaC5oIgorCitjb25zdCBFbnRpdHkqIGZpbmRFbnRpdHko
cmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKQorewor
ICAgIHJldHVybiBIVE1MRW50aXR5SGFzaDo6ZmluZEVudGl0eUltcGwoc3RyLCBsZW4pOworfQor
CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisKK2NvbnN0IEVudGl0eSogd29yZExpc3QoKQorewor
ICAgIHJldHVybiBXZWJDb3JlOjplbnRpdHlfd29yZGxpc3Q7Cit9CisKK2NvbnN0IGludCB3b3Jk
TGlzdFNpemUoKQoreworICAgIHJldHVybiBzaXplb2YoV2ViQ29yZTo6ZW50aXR5X3dvcmRsaXN0
KSAvIHNpemVvZihFbnRpdHkpOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ0hST01JVU0pCisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworRU9GCisgICAgY2xvc2UgRU5USVRJRVM7CisKICAg
ICBzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtcyAyICRodG1sRW50aXR5
TmFtZXNHcGVyZiA+ICRodG1sRW50aXR5TmFtZXNHZW5lcmF0ZWQiKSA9PSAwIHx8IGRpZSAiY2Fs
bGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKIAogfSAjIGNhc2UgIkhUTUxFbnRpdHlOYW1lcyIKIAog
Y2FzZSAiRG9jVHlwZVN0cmluZ3MiIHsKIAotICAgIG15ICRkb2NUeXBlU3RyaW5nc0dlbmVyYXRl
ZCAgICA9ICIkb3V0ZGlyL0RvY1R5cGVTdHJpbmdzLmNwcCI7CisgICAgbXkgJGRvY1R5cGVTdHJp
bmdzSW1wbCAgICAgICAgID0gIiRvdXRkaXIvRG9jVHlwZVN0cmluZ3MuY3BwIjsKKyAgICBteSAk
ZG9jVHlwZVN0cmluZ3NHZW5lcmF0ZWQgICAgPSAiJG91dGRpci9Eb2NUeXBlU3RyaW5nc0hhc2gu
aCI7CiAgICAgbXkgJGRvY1R5cGVTdHJpbmdzR3BlcmYgICAgICAgID0gJEFSR1ZbMF07CiAgICAg
c2hpZnQ7CiAKKyAgICBvcGVuIERPQ1RZUEVTVFJJTkdTLCAiPiRkb2NUeXBlU3RyaW5nc0ltcGwi
IHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJGRvY1R5cGVTdHJpbmdzSW1wbCBmb3Igd3JpdGluZyI7
CisgICAgcHJpbnQgRE9DVFlQRVNUUklOR1MgPDwgIkVPRiI7CisvKiBUaGlzIGZpbGUgaXMgYXV0
b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBkbyBub3QgZWRpdCAq
LworCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNs
dWRlICJEb2NUeXBlU3RyaW5nc0hhc2guaCIKKworY29uc3QgUHViSURJbmZvKiBmaW5kRG9jdHlw
ZUVudHJ5IChyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBs
ZW4pCit7CisgICAgcmV0dXJuIERvY1R5cGVTdHJpbmdzSGFzaDo6ZmluZERvY3R5cGVFbnRyeUlt
cGwoc3RyLCBsZW4pOworfQorCit9CisKK0VPRgorICAgIGNsb3NlIERPQ1RZUEVTVFJJTkdTOwor
CiAgICAgc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLXMgMiAkZG9jVHlwZVN0
cmluZ3NHcGVyZiA+ICRkb2NUeXBlU3RyaW5nc0dlbmVyYXRlZCIpID09IDAgfHwgZGllICJjYWxs
aW5nIGdwZXJmIGZhaWxlZDogJD8iOwogCiB9ICMgY2FzZSAiRG9jVHlwZVN0cmluZ3MiCiAKIGNh
c2UgIkNvbG9yRGF0YSIgewogCi0gICAgbXkgJGNvbG9yRGF0YUdlbmVyYXRlZCAgID0gIiRvdXRk
aXIvQ29sb3JEYXRhLmNwcCI7Ci0gICAgbXkgJGNvbG9yRGF0YUdwZXJmICAgICAgID0gJEFSR1Zb
MF07CisgICAgbXkgJGNvbG9yRGF0YUltcGwgICAgICAgICAgICAgID0gIiRvdXRkaXIvQ29sb3JE
YXRhLmNwcCI7CisgICAgbXkgJGNvbG9yRGF0YUdlbmVyYXRlZCAgICAgICAgID0gIiRvdXRkaXIv
Q29sb3JEYXRhSGFzaC5oIjsKKyAgICBteSAkY29sb3JEYXRhR3BlcmYgICAgICAgICAgICAgPSAk
QVJHVlswXTsKICAgICBzaGlmdDsKIAorICAgIG9wZW4gQ09MT1JEQVRBLCAiPiRjb2xvckRhdGFJ
bXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRjb2xvckRhdGFJbXBsIGZvciB3cml0aW5nIjsK
KyAgICBwcmludCBDT0xPUkRBVEEgPDwgIkVPRiI7CisvKiBUaGlzIGZpbGUgaXMgYXV0b21hdGlj
YWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBkbyBub3QgZWRpdCAqLworCisj
aW5jbHVkZSAiSGFzaFRvb2xzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJD
b2xvckRhdGFIYXNoLmgiCisKK2NvbnN0IHN0cnVjdCBOYW1lZENvbG9yKiBmaW5kQ29sb3IgKHJl
Z2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbikKK3sKKyAg
ICByZXR1cm4gQ29sb3JEYXRhSGFzaDo6ZmluZENvbG9ySW1wbChzdHIsIGxlbik7Cit9CisKK30K
KworRU9GCisgICAgY2xvc2UgQ09MT1JEQVRBOworCiAgICAgc3lzdGVtKCJncGVyZiAtLWtleS1w
b3NpdGlvbnM9XCIqXCIgLUQgLXMgMiAkY29sb3JEYXRhR3BlcmYgPiAkY29sb3JEYXRhR2VuZXJh
dGVkIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKIH0gIyBjYXNl
ICJDb2xvckRhdGEiCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVy
ZiBiL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCmluZGV4IDExZWY3OTguLmQ2ODRj
YjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCkBAIC0xLDEzICsxLDEyIEBACiAlc3RydWN0
LXR5cGUKLXN0cnVjdCBOYW1lZENvbG9yIHsKLSAgICBjb25zdCBjaGFyICpuYW1lOwotICAgIGlu
dCBSR0JWYWx1ZTsKLX07Ci0lbGFuZ3VhZ2U9QU5TSS1DCitzdHJ1Y3QgTmFtZWRDb2xvcjsKKyVv
bWl0LXN0cnVjdC10eXBlCislbGFuZ3VhZ2U9QysrCiAlcmVhZG9ubHktdGFibGVzCiAlZ2xvYmFs
LXRhYmxlCiAlY29tcGFyZS1zdHJuY21wCi0lZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZp
bmRDb2xvcgorJWRlZmluZSBjbGFzcy1uYW1lIENvbG9yRGF0YUhhc2gKKyVkZWZpbmUgbG9va3Vw
LWZ1bmN0aW9uLW5hbWUgZmluZENvbG9ySW1wbAogJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUg
Y29sb3JkYXRhX2hhc2hfZnVuY3Rpb24KICVpbmNsdWRlcwogJWVudW0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db2xvci5jcHAKaW5kZXggODBjODI4Ni4uZjI4ZDUxYyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db2xvci5jcHAKQEAgLTI2LDEzICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkNvbG9yLmgiCiAKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0
aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKLSNpbmNsdWRlICJDb2xvckRh
dGEuY3BwIgotCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIApk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggYTRjODQ1Yy4uMThiMTY3ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjQgQEAKKzIwMTAtMDgtMDkgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuZGVmaW5lZCBy
ZWZlcmVuY2UgZXJyb3JzIHdoZW4gbGlua2luZyBkdWUgdG8gZ3BlcmYgYW5kIGlubGluaW5nLgor
ICAgICAgICB3ZWJraXQub3JnL2IvMjkyNDQKKworICAgICAgICBFRkwgQ01ha2UgY2hhbmdlcyBi
eSBMZWFuZHJvIFBlcmVpcmEgPGxlYW5kcm9AcHJvZnVzaW9uLm1vYmk+IAorCisgICAgICAgIFJl
ZmFjdG9yIGdwZXJmIGNvZGUgZ2VuZXJhdGlvbiBhbmQgdXNhZ2UgdG8gZml4IHRoZSBkZWJ1ZyBi
dWlsZCB3aXRoIGdjYz40LjQuCisgICAgICAgIEhpdGhlcnRvIGdwZXJmIGdlbmVyYXRlZCBDIGNv
ZGUsIHRoZXNlIGZpbGVzIHdlcmUgaW5jbHVkZWQgaW4gbXVsdGlwbGUgQysrIGZpbGVzIGFjcm9z
cyBXZWJDb3JlCisgICAgICAgIHRvIGFjY2VzcyB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZC4g
VGhpcyByZXN1bHRlZCBpbiBkZWJ1ZyBidWlsZCBmYWlsdXJlIHdpdGggbmV3ZXIgZ2NjIHZlcnNp
b25zCisgICAgICAgIGJlY2F1c2Ugb2YgYSBiZWhhdmlvdXIgY2hhbmdlIG9mIGdjYywgd2hpY2gg
ZGlzYWJsZXMgQyBzdHlsZSBpbmxpbmluZyBpbiBkZWJ1ZyBtb2RlLgorICAgICAgICBUaGUgbWFr
ZS1oYXNoLXRvb2xzLnBsIHNjcmlwdCBsZXRzIGdwZXJmIGdlbmVyYXRlIEMrKyBjb2RlIGZvciBh
bGwgZ3BlcmYgZmlsZXMgbm93LCB3aGljaCBhcmUgY29tcGlsZWQKKyAgICAgICAgaW4gdGhlaXIg
b3duIGNvbXBpbGF0aW9uIHVuaXQuCisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVk
IGJ5IHRoZSBnZW5lcmF0ZWQgY29kZSBpcyB3cmFwcGVkIGJlaGluZCBIYXNoVG9vbHMuaCwgc28g
dGhlcmUgaXMgbm8gbmVlZAorICAgICAgICBmb3IgbXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBnZW5l
cmF0ZWQgQyBmaWxlcyB0byBhY2Nlc3MgdGhlc2UgZnVuY3Rpb25zLgorCisgICAgICAgICogc3Jj
L1dlYkVudGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRW50aXRpZXM6OldlYkVudGl0
aWVzKToKKwogMjAxMC0wOC0wNyAgSmF5IENpdmVsbGkgIDxqY2l2ZWxsaUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkVudGl0aWVzLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRW50
aXRpZXMuY3BwCmluZGV4IDY2NWQ4ZDkuLjc4YzNmNWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRW50aXRpZXMuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRW50
aXRpZXMuY3BwCkBAIC0zMSw5ICszMSw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiV2ViRW50aXRpZXMuaCIKIAotI2luY2x1ZGUgPHN0cmluZy5oPgotCisjaW5jbHVkZSAiSGFz
aFRvb2xzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDxzdHJpbmcu
aD4KICNpbmNsdWRlICJTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
IApAQCAtNDEsMTUgKzQxLDYgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLW5hbWVz
cGFjZSB7Ci0vLyBOb3RlIHRoYXQgdGhpcyBmaWxlIGlzIGFsc28gaW5jbHVkZWQgYnkgTGVnYWN5
SFRNTERvY3VtZW50UGFyc2VyLmNwcCBzbyB3ZSBhcmUgZ2V0dGluZwotLy8gdHdvIGNvcGllcyBv
ZiB0aGUgZGF0YSBpbiBtZW1vcnkuICBXZSBjYW4gZml4IHRoaXMgYnkgY2hhbmdpbmcgdGhlIHNj
cmlwdAotLy8gdGhhdCBnZW5lcmF0ZWQgdGhlIGFycmF5IHRvIGNyZWF0ZSBhIHN0YXRpYyBjb25z
dCB0aGF0IGlzIGl0cyBsZW5ndGgsIGJ1dAotLy8gdGhpcyBpcyBsb3cgcHJpb3JpdHkgc2luY2Ug
dGhlIGRhdGEgaXMgbGVzcyB0aGFuIDRLLiBXZSB1c2UgYW5vbnltb3VzCi0vLyBuYW1lc3BhY2Ug
dG8gcHJldmVudCBuYW1lIGNvbGxpc2lvbnMuCi0jaW5jbHVkZSAiSFRNTEVudGl0eU5hbWVzLmNw
cCIgLy8gTk9MSU5UCi19Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIHBvcHVsYXRlTWFw
KFdURjo6SGFzaE1hcDxpbnQsIFdlYkNvcmU6OlN0cmluZz4mIG1hcCwKQEAgLTkxLDggKzgyLDgg
QEAgV2ViRW50aXRpZXM6OldlYkVudGl0aWVzKGJvb2wgeG1sRW50aXRpZXMpCiAgICAgICAgICAg
ICAgICAgICAgIGZhbHNlKTsKICAgICBlbHNlCiAgICAgICAgIHBvcHVsYXRlTWFwKG1fZW50aXRp
ZXNNYXAsCi0gICAgICAgICAgICAgICAgICAgIHdvcmRsaXN0LAotICAgICAgICAgICAgICAgICAg
ICBzaXplb2Yod29yZGxpc3QpIC8gc2l6ZW9mKEVudGl0eSksCisgICAgICAgICAgICAgICAgICAg
IHdvcmRMaXN0KCksCisgICAgICAgICAgICAgICAgICAgIHdvcmRMaXN0U2l6ZSgpLAogICAgICAg
ICAgICAgICAgICAgICB0cnVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxv
ZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggNzI3NTY0Mi4uYTg5ZWJhOSAxMDA2NDQKLS0t
IGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjQgQEAKKzIwMTAtMDgtMDkgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuZGVmaW5l
ZCByZWZlcmVuY2UgZXJyb3JzIHdoZW4gbGlua2luZyBkdWUgdG8gZ3BlcmYgYW5kIGlubGluaW5n
LgorICAgICAgICB3ZWJraXQub3JnL2IvMjkyNDQKKworICAgICAgICBFRkwgQ01ha2UgY2hhbmdl
cyBieSBMZWFuZHJvIFBlcmVpcmEgPGxlYW5kcm9AcHJvZnVzaW9uLm1vYmk+IAorCisgICAgICAg
IFJlZmFjdG9yIGdwZXJmIGNvZGUgZ2VuZXJhdGlvbiBhbmQgdXNhZ2UgdG8gZml4IHRoZSBkZWJ1
ZyBidWlsZCB3aXRoIGdjYz40LjQuCisgICAgICAgIEhpdGhlcnRvIGdwZXJmIGdlbmVyYXRlZCBD
IGNvZGUsIHRoZXNlIGZpbGVzIHdlcmUgaW5jbHVkZWQgaW4gbXVsdGlwbGUgQysrIGZpbGVzIGFj
cm9zcyBXZWJDb3JlCisgICAgICAgIHRvIGFjY2VzcyB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRl
ZC4gVGhpcyByZXN1bHRlZCBpbiBkZWJ1ZyBidWlsZCBmYWlsdXJlIHdpdGggbmV3ZXIgZ2NjIHZl
cnNpb25zCisgICAgICAgIGJlY2F1c2Ugb2YgYSBiZWhhdmlvdXIgY2hhbmdlIG9mIGdjYywgd2hp
Y2ggZGlzYWJsZXMgQyBzdHlsZSBpbmxpbmluZyBpbiBkZWJ1ZyBtb2RlLgorICAgICAgICBUaGUg
bWFrZS1oYXNoLXRvb2xzLnBsIHNjcmlwdCBsZXRzIGdwZXJmIGdlbmVyYXRlIEMrKyBjb2RlIGZv
ciBhbGwgZ3BlcmYgZmlsZXMgbm93LCB3aGljaCBhcmUgY29tcGlsZWQKKyAgICAgICAgaW4gdGhl
aXIgb3duIGNvbXBpbGF0aW9uIHVuaXQuCisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IHByb3Zp
ZGVkIGJ5IHRoZSBnZW5lcmF0ZWQgY29kZSBpcyB3cmFwcGVkIGJlaGluZCBIYXNoVG9vbHMuaCwg
c28gdGhlcmUgaXMgbm8gbmVlZAorICAgICAgICBmb3IgbXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBn
ZW5lcmF0ZWQgQyBmaWxlcyB0byBhY2Nlc3MgdGhlc2UgZnVuY3Rpb25zLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVQbHVnaW4pOgorCiAyMDEwLTA4LTA4ICBBcml5
YSBIaWRheWF0ICA8YXJpeWFAc2VuY2hhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRv
bmlvIEdvbWVzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50UXQuY3BwCmluZGV4IDEwNjAwMjMuLjNkOTFkNTUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTE0MDcsNyArMTQwNyw3IEBA
IFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVQbHVnaW4oY29u
c3QgSW50U2l6ZSYgcGx1Z2luU2l6ZSwKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBudW1xU3R5bGVTaGVldFByb3BlcnRpZXM7ICsraSkgewogICAgICAgICAgICAgICAgIENT
U1Byb3BlcnR5SUQgcHJvcGVydHkgPSBxc3R5bGVTaGVldFByb3BlcnRpZXNbaV07CiAKLSAgICAg
ICAgICAgICAgICBzdHlsZVNoZWV0ICs9IFFTdHJpbmc6OmZyb21MYXRpbjEoOjpnZXRQcm9wZXJ0
eU5hbWUocHJvcGVydHkpKTsKKyAgICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9IFFTdHJpbmc6
OmZyb21MYXRpbjEoZ2V0UHJvcGVydHlOYW1lKHByb3BlcnR5KSk7CiAgICAgICAgICAgICAgICAg
c3R5bGVTaGVldCArPSBRTGF0aW4xQ2hhcignOicpOwogICAgICAgICAgICAgICAgIHN0eWxlU2hl
ZXQgKz0gY29tcHV0ZWRTdHlsZShlbGVtZW50KS0+Z2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7
CiAgICAgICAgICAgICAgICAgc3R5bGVTaGVldCArPSBRTGF0aW4xQ2hhcignOycpOwpkaWZmIC0t
Z2l0IGEvY21ha2UvV2ViS2l0R2VuZXJhdG9ycy5jbWFrZSBiL2NtYWtlL1dlYktpdEdlbmVyYXRv
cnMuY21ha2UKaW5kZXggNTBjOTA3Ny4uNWQzYjg2ZCAxMDA2NDQKLS0tIGEvY21ha2UvV2ViS2l0
R2VuZXJhdG9ycy5jbWFrZQorKysgYi9jbWFrZS9XZWJLaXRHZW5lcmF0b3JzLmNtYWtlCkBAIC0y
LDcgKzIsNiBAQAogIyBJdCB3aWxsIGNoZWNrIGZvciB0aGUgcHJvZ3JhbXMgYW5kIGRlZmluZSB0
aGUgZ2l2ZW4gZXhlY3V0YWJsZXM6CiAjICAgIFBFUkxfRVhFQ1VUQUJMRQogIyAgICBCSVNPTl9F
WEVDVVRBQkxFCi0jICAgIEdQRVJGX0VYRUNVVEFCTEUKICMgICAgRkxFWF9FWEVDVVRBQkxFCiAK
IElOQ0xVREUgKFdlYktpdEZTKQpAQCAtNjksMjUgKzY4LDI0IEBAIE1BQ1JPKEdFTkVSQVRFX0dS
QU1NQVIgX3ByZWZpeCBfc291cmNlKQogRU5ETUFDUk8gKCkKIAogCi1GSU5EX1BST0dSQU0oR1BF
UkZfRVhFQ1VUQUJMRSBncGVyZikKLUlGIChOT1QgR1BFUkZfRVhFQ1VUQUJMRSkKLSAgTUVTU0FH
RShGQVRBTF9FUlJPUiAiTWlzc2luZyBncGVyZiIpCi1FTkRJRiAoKQotRklORF9QQUNLQUdFX0hB
TkRMRV9TVEFOREFSRF9BUkdTKEdQZXJmIERFRkFVTFRfTVNHIEdQRVJGX0VYRUNVVEFCTEUpCi1T
RVQoUEVSRl9IQVNIX0dFTkVSQVRPUiAke1dFQkNPUkVfRElSfS9tYWtlLWhhc2gtdG9vbHMucGwp
Ci0KICMgLSBDcmVhdGUgcGVyZmVjdCBoYXNoIHRhYmxlcyB1c2luZyBncGVyZgotIyBHRU5FUkFU
RV9HUEVSRihleHRlbnNpb24gc291cmNlX2ZpbGUpCi0jCi0jIFRoZSBnZW5lcmF0ZWQgZmlsZXMg
bGl2ZXMgaW4gJHtERVJJVkVEX1NPVVJDRVNfRElSfSBhbmQgZW5kcyBpbiAuY3BwCi1NQUNSTyhH
RU5FUkFURV9HUEVSRiBfc291cmNlKQorTUFDUk8oTUFLRV9IQVNIX1RPT0xTIF9zb3VyY2UpCiAg
IEdFVF9GSUxFTkFNRV9DT01QT05FTlQoX25hbWUgJHtfc291cmNlfSBOQU1FX1dFKQorICAKKyAg
SUYgKCR7X3NvdXJjZX0gU1RSRVFVQUwgIkhUTUxFbnRpdHlOYW1lcyIpCisgICAgU0VUKF9oYXNo
X3Rvb2xzX2ggIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSGFzaFRvb2xzLmgiKQorICBFTFNFICgp
CisgICAgU0VUKF9oYXNoX3Rvb2xzX2ggIiIpCisgIEVORElGICgpCisKICAgQUREX0NVU1RPTV9D
T01NQU5EKAotICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19ESVJ9LyR7X25hbWV9LmNwcAot
ICAgIERFUEVORFMgJHtfc291cmNlfQotICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7
UEVSRl9IQVNIX0dFTkVSQVRPUn0gJHtERVJJVkVEX1NPVVJDRVNfRElSfSAke19zb3VyY2V9Cisg
ICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtfbmFtZX0uY3BwICR7X2hhc2hfdG9v
bHNfaH0KKyAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQkNPUkVfRElSfS9tYWtl
LWhhc2gtdG9vbHMucGwgJHtERVJJVkVEX1NPVVJDRVNfRElSfSAke19zb3VyY2V9LmdwZXJmCiAg
ICAgVkVSQkFUSU0pCi1FTkRNQUNSTyAoKQorCisgIFVOU0VUKF9uYW1lKQorICBVTlNFVChfaGFz
aF90b29sc19oKQorRU5ETUFDUk8oKQogCiAKICMgTW9kdWxlcyB0aGF0IHRoZSBiaW5kaW5ncyBn
ZW5lcmF0b3Igc2NyaXB0cyBtYXkgdXNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63870</attachid>
            <date>2010-08-09 02:03:04 -0700</date>
            <delta_ts>2010-08-09 05:23:45 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>gperf.patch</filename>
            <type>text/plain</type>
            <size>33777</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBkNDU3YmVjLi5lZTgwZDQ1
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMDgtMDkgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuZGVmaW5lZCByZWZlcmVu
Y2UgZXJyb3JzIHdoZW4gbGlua2luZyBkdWUgdG8gZ3BlcmYgYW5kIGlubGluaW5nLgorICAgICAg
ICB3ZWJraXQub3JnL2IvMjkyNDQKKworICAgICAgICBFRkwgQ01ha2UgY2hhbmdlcyBieSBMZWFu
ZHJvIFBlcmVpcmEgPGxlYW5kcm9AcHJvZnVzaW9uLm1vYmk+IAorCisgICAgICAgIFJlZmFjdG9y
IGdwZXJmIGNvZGUgZ2VuZXJhdGlvbiBhbmQgdXNhZ2UgdG8gZml4IHRoZSBkZWJ1ZyBidWlsZCB3
aXRoIGdjYz40LjQuCisgICAgICAgIEhpdGhlcnRvIGdwZXJmIGdlbmVyYXRlZCBDIGNvZGUsIHRo
ZXNlIGZpbGVzIHdlcmUgaW5jbHVkZWQgaW4gbXVsdGlwbGUgQysrIGZpbGVzIGFjcm9zcyBXZWJD
b3JlCisgICAgICAgIHRvIGFjY2VzcyB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZC4gVGhpcyBy
ZXN1bHRlZCBpbiBkZWJ1ZyBidWlsZCBmYWlsdXJlIHdpdGggbmV3ZXIgZ2NjIHZlcnNpb25zCisg
ICAgICAgIGJlY2F1c2Ugb2YgYSBiZWhhdmlvdXIgY2hhbmdlIG9mIGdjYywgd2hpY2ggZGlzYWJs
ZXMgQyBzdHlsZSBpbmxpbmluZyBpbiBkZWJ1ZyBtb2RlLgorICAgICAgICBUaGUgbWFrZS1oYXNo
LXRvb2xzLnBsIHNjcmlwdCBsZXRzIGdwZXJmIGdlbmVyYXRlIEMrKyBjb2RlIGZvciBhbGwgZ3Bl
cmYgZmlsZXMgbm93LCB3aGljaCBhcmUgY29tcGlsZWQKKyAgICAgICAgaW4gdGhlaXIgb3duIGNv
bXBpbGF0aW9uIHVuaXQuCisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRo
ZSBnZW5lcmF0ZWQgY29kZSBpcyB3cmFwcGVkIGJlaGluZCBIYXNoVG9vbHMuaCwgc28gdGhlcmUg
aXMgbm8gbmVlZAorICAgICAgICBmb3IgbXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQg
QyBmaWxlcyB0byBhY2Nlc3MgdGhlc2UgZnVuY3Rpb25zLgorCisgICAgICAgICogY21ha2UvV2Vi
S2l0R2VuZXJhdG9ycy5jbWFrZToKKwogMjAxMC0wOC0wNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjY0OTA0LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggMWRkYjBjMS4uMDcyODcxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MzEsNiArNTMx
LDEwIEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICAke0RFUklWRURfU09VUkNFU19ESVJ9L0NT
U0dyYW1tYXIuY3BwCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9IVE1MRWxlbWVudEZhY3Rv
cnkuY3BwCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9IVE1MRW50aXR5TmFtZXMuY3BwCisg
ICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Eb2NUeXBlU3RyaW5ncy5jcHAKKyAgICAke0RFUklW
RURfU09VUkNFU19ESVJ9L0NTU1ZhbHVlS2V5d29yZHMuY3BwCisgICAgJHtERVJJVkVEX1NPVVJD
RVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmNwcAorICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0v
Q29sb3JEYXRhLmNwcAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSFRNTE5hbWVzLmNwcAog
ICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNw
cAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwCkBA
IC0xODIwLDkgKzE4MjQsMTEgQEAgR0VORVJBVEVfSU5TUEVDVE9SX0ZST01fSURMKGluc3BlY3Rv
ci9JbnNwZWN0b3IuaWRsKQogCiBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtKU19JRExf
RklMRVN9ICR7SW5zcGVjdG9yX0lETF9GSUxFU30pCiAKLUdFTkVSQVRFX0dQRVJGKCR7V0VCQ09S
RV9ESVJ9L2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmKQotR0VORVJBVEVfR1BFUkYoJHtXRUJD
T1JFX0RJUn0vcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmKQotR0VORVJBVEVfR1BFUkYoJHtXRUJD
T1JFX0RJUn0vaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZikKK01BS0VfSEFTSF9UT09MUygke1dF
QkNPUkVfRElSfS9odG1sL0hUTUxFbnRpdHlOYW1lcykKK01BS0VfSEFTSF9UT09MUygke1dFQkNP
UkVfRElSfS9odG1sL0RvY1R5cGVTdHJpbmdzKQorTUFLRV9IQVNIX1RPT0xTKCR7REVSSVZFRF9T
T1VSQ0VTX0RJUn0vQ1NTVmFsdWVLZXl3b3JkcykKK01BS0VfSEFTSF9UT09MUygke0RFUklWRURf
U09VUkNFU19ESVJ9L0NTU1Byb3BlcnR5TmFtZXMpCitNQUtFX0hBU0hfVE9PTFMoJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vQ29sb3JEYXRhKQogCiBHRU5FUkFURV9UT0tFTklaRVIoKQogR0VORVJB
VEVfVVNFUl9BR0VOVF9TVFlMRVMoKQpAQCAtMTgzMyw2ICsxODM5LDcgQEAgR0VORVJBVEVfR1JB
TU1BUih4cGF0aHl5ICR7V0VCQ09SRV9ESVJ9L3htbC9YUGF0aEdyYW1tYXIueSkKIEdFTkVSQVRF
X0NTU19QUk9QRVJUWV9OQU1FUygpCiBHRU5FUkFURV9DU1NfVkFMVUVfS0VZV09SRFMoKQogCitB
RERfU09VUkNFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSGFz
aFRvb2xzLmggSFRNTEVudGl0eU5hbWVzLmNwcCBEb2NUeXBlU3RyaW5ncy5jcHAgQ1NTVmFsdWVL
ZXl3b3Jkcy5jcHAgQ1NTUHJvcGVydHlOYW1lcy5jcHAgQ29sb3JEYXRhLmNwcCkKIEFERF9TT1VS
Q0VfREVSSVZFRF9ERVBFTkRFTkNJRVMoJHtERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NHcmFtbWFy
LmNwcCBDU1NWYWx1ZUtleXdvcmRzLmgpCiBBRERfU09VUkNFX0RFUklWRURfREVQRU5ERU5DSUVT
KCR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTR3JhbW1hci5jcHAgQ1NTUHJvcGVydHlOYW1lcy5o
KQogQUREX1NPVVJDRV9ERVJJVkVEX0RFUEVOREVOQ0lFUygke1dFQkNPUkVfRElSfS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIENTU1ZhbHVlS2V5d29yZHMuaCkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzUzMWM2NS4uMzcw
MmQyYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMC0wOC0wOSAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVW5kZWZpbmVkIHJlZmVyZW5jZSBlcnJvcnMgd2hlbiBsaW5raW5nIGR1ZSB0byBncGVyZiBh
bmQgaW5saW5pbmcuCisgICAgICAgIHdlYmtpdC5vcmcvYi8yOTI0NAorCisgICAgICAgIEVGTCBD
TWFrZSBjaGFuZ2VzIGJ5IExlYW5kcm8gUGVyZWlyYSA8bGVhbmRyb0Bwcm9mdXNpb24ubW9iaT4g
CisKKyAgICAgICAgUmVmYWN0b3IgZ3BlcmYgY29kZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0byBm
aXggdGhlIGRlYnVnIGJ1aWxkIHdpdGggZ2NjPjQuNC4KKyAgICAgICAgSGl0aGVydG8gZ3BlcmYg
Z2VuZXJhdGVkIEMgY29kZSwgdGhlc2UgZmlsZXMgd2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBD
KysgZmlsZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAgICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFs
aXR5IHByb3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGluIGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBu
ZXdlciBnY2MgdmVyc2lvbnMKKyAgICAgICAgYmVjYXVzZSBvZiBhIGJlaGF2aW91ciBjaGFuZ2Ug
b2YgZ2NjLCB3aGljaCBkaXNhYmxlcyBDIHN0eWxlIGlubGluaW5nIGluIGRlYnVnIG1vZGUuCisg
ICAgICAgIFRoZSBtYWtlLWhhc2gtdG9vbHMucGwgc2NyaXB0IGxldHMgZ3BlcmYgZ2VuZXJhdGUg
QysrIGNvZGUgZm9yIGFsbCBncGVyZiBmaWxlcyBub3csIHdoaWNoIGFyZSBjb21waWxlZAorICAg
ICAgICBpbiB0aGVpciBvd24gY29tcGlsYXRpb24gdW5pdC4KKyAgICAgICAgVGhlIGZ1bmN0aW9u
YWxpdHkgcHJvdmlkZWQgYnkgdGhlIGdlbmVyYXRlZCBjb2RlIGlzIHdyYXBwZWQgYmVoaW5kIEhh
c2hUb29scy5oLCBzbyB0aGVyZSBpcyBubyBuZWVkCisgICAgICAgIGZvciBtdWx0aXBsZSBpbmNs
dXNpb25zIG9mIGdlbmVyYXRlZCBDIGZpbGVzIHRvIGFjY2VzcyB0aGVzZSBmdW5jdGlvbnMuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUu
cHJpOgorICAgICAgICAqIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNz
cy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAqIGNzcy9tYWtlcHJvcC5wbDoKKyAgICAgICAgKiBj
c3MvbWFrZXZhbHVlcy5wbDoKKyAgICAgICAgKiBodG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmOgor
ICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxFbnRp
dHlOYW1lcy5ncGVyZjoKKyAgICAgICAgKiBodG1sL0hUTUxFbnRpdHlQYXJzZXIuY3BwOgorICAg
ICAgICAqIGh0bWwvTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKiBodG1s
L0xlZ2FjeVByZWxvYWRTY2FubmVyLmNwcDoKKyAgICAgICAgKiBtYWtlLWhhc2gtdG9vbHMucGw6
CisgICAgICAgICogcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yLmNwcDoKKwogMjAxMC0wOC0wOSAgRnJhbsOnb2lzIFNhdXNzZXQgIDxz
YXVzc2V0QGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAg
Yi9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCmluZGV4IGEyOGVlNWQuLjU1ZGJiMjEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApAQCAtNjA3LDcgKzYwNyw2IEBACiAgICAgICAgICAg
ICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0JywKICAgICAgICAgICAgICc8KFJV
TEVfSU5QVVRfUEFUSCknLAogICAgICAgICAgIF0sCi0gICAgICAgICAgJ3Byb2Nlc3Nfb3V0cHV0
c19hc19zb3VyY2VzJzogMCwKICAgICAgICAgfSwKICAgICAgICAgIyBSdWxlIHRvIGJ1aWxkIGdl
bmVyYXRlZCBKYXZhU2NyaXB0IChWOCkgYmluZGluZ3MgZnJvbSAuaWRsIHNvdXJjZS4KICAgICAg
ICAgewpAQCAtNzAyLDYgKzcwMSwxMyBAQAogICAgICAgICAjIGluIHdlYmNvcmVfZmlsZXMuCiAg
ICAgICAgICc8QChkZXJpdmVkX3NvdXJjZXNfYWdncmVnYXRlX2ZpbGVzKScsCiAKKyAgICAgICAg
IyBBZGRpdGlvbmFsIC5jcHAgZmlsZXMgZm9yIEhhc2hUb29scy5oCisgICAgICAgICc8KFNIQVJF
RF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvSFRNTEVudGl0eU5hbWVzLmNwcCcsCisgICAgICAg
ICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvRG9jVHlwZVN0cmluZ3MuY3BwJywK
KyAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9Db2xvckRhdGEuY3Bw
JywKKyAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NQcm9wZXJ0
eU5hbWVzLmNwcCcsCisgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQv
Q1NTVmFsdWVLZXl3b3Jkcy5jcHAnLAorCiAgICAgICAgICMgQWRkaXRpb25hbCAuY3BwIGZpbGVz
IGZyb20gd2ViY29yZV9iaW5kaW5nc19zb3VyY2VzIGFjdGlvbnMuCiAgICAgICAgICc8KFNIQVJF
RF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCcsCiAgICAg
ICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvSFRNTE5hbWVzLmNwcCcsCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRl
eCA3ZGQwNjgxLi4xNjNhYTZhIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTcwNyw3ICs3MDcsNyBAQCBjc3Nwcm9wcy53a1Njcmlw
dCA9ICQkUFdEL2Nzcy9tYWtlcHJvcC5wbAogY3NzcHJvcHMub3V0cHV0ID0gJCR7V0NfR0VORVJB
VEVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmNwcAogY3NzcHJvcHMuaW5wdXQgPSBX
QUxET0NTU1BST1BTCiBjc3Nwcm9wcy5jb21tYW5kcyA9IHBlcmwgLW5lIFwicHJpbnQgbGNcIiAk
e1FNQUtFX0ZJTEVfTkFNRX0gJCR7REFTSEJPQVJEU1VQUE9SVENTU1BST1BFUlRJRVN9ICQke0VY
VFJBQ1NTUFJPUEVSVElFU30gPiAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9LyR7UU1BS0Vf
RklMRV9CQVNFfS5pbiAmJiBjZCAkJFdDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUiAmJiBwZXJsICQk
Y3NzcHJvcHMud2tTY3JpcHQgJiYgJChERUxfRklMRSkgJHtRTUFLRV9GSUxFX0JBU0V9LmluICR7
UU1BS0VfRklMRV9CQVNFfS5ncGVyZgotY3NzcHJvcHMuZGVwZW5kcyA9ICR7UU1BS0VfRklMRV9O
QU1FfSAkJHtEQVNIQk9BUkRTVVBQT1JUQ1NTUFJPUEVSVElFU30gJCR7RVhUUkFDU1NQUk9QRVJU
SUVTfQorY3NzcHJvcHMuZGVwZW5kcyA9ICR7UU1BS0VfRklMRV9OQU1FfSAkJHtEQVNIQk9BUkRT
VVBQT1JUQ1NTUFJPUEVSVElFU30gJCR7RVhUUkFDU1NQUk9QRVJUSUVTfSAkJGNzc3Byb3BzLndr
U2NyaXB0CiBhZGRFeHRyYUNvbXBpbGVyKGNzc3Byb3BzKQogCiAjIEdFTkVSQVRPUiA2LUI6CkBA
IC03MTUsNyArNzE1LDcgQEAgY3NzdmFsdWVzLndrU2NyaXB0ID0gJCRQV0QvY3NzL21ha2V2YWx1
ZXMucGwKIGNzc3ZhbHVlcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0NT
U1ZhbHVlS2V5d29yZHMuY3BwCiBjc3N2YWx1ZXMuaW5wdXQgPSBXQUxET0NTU1ZBTFVFUwogY3Nz
dmFsdWVzLmNvbW1hbmRzID0gcGVybCAtbmUgXCJwcmludCBsY1wiICR7UU1BS0VfRklMRV9OQU1F
fSAkJEVYVFJBQ1NTVkFMVUVTID4gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtF
X0ZJTEVfQkFTRX0uaW4gJiYgY2QgJCRXQ19HRU5FUkFURURfU09VUkNFU19ESVIgJiYgcGVybCAk
JGNzc3ZhbHVlcy53a1NjcmlwdCAmJiAkKERFTF9GSUxFKSAke1FNQUtFX0ZJTEVfQkFTRX0uaW4g
JHtRTUFLRV9GSUxFX0JBU0V9LmdwZXJmCi1jc3N2YWx1ZXMuZGVwZW5kcyA9ICR7UU1BS0VfRklM
RV9OQU1FfSAkJHtFWFRSQUNTU1ZBTFVFU30KK2Nzc3ZhbHVlcy5kZXBlbmRzID0gJHtRTUFLRV9G
SUxFX05BTUV9ICQke0VYVFJBQ1NTVkFMVUVTfSAkJGNzc3ZhbHVlcy53a1NjcmlwdAogY3NzdmFs
dWVzLmNsZWFuID0gJHtRTUFLRV9GSUxFX09VVH0gJHtRTUFLRV9WQVJfV0NfR0VORVJBVEVEX1NP
VVJDRVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uaAogYWRkRXh0cmFDb21waWxlcihjc3N2YWx1
ZXMpCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2og
Yi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGY4MTEyOTUuLjU4
YTJmNjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTQ1LDYgKzU0
NSwzMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIk
KFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEhhc2hU
b29scy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIk
KFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEhUTUxF
bnRpdHlOYW1lcy5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcRG9jVHlwZVN0cmluZ3MuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXENTU1ZhbHVlS2V5d29yZHMuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXENTU1Byb3BlcnR5TmFtZXMuY3BwIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXENvbG9yRGF0YS5jcHAiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIu
Y3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMzc5MWRjOS4uMDU1MTAwNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ4OCw2ICs0ODgsMTEgQEAKIAkJMUFCN0ZDODYwQThC
OTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBQjdGQzY1MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhbHVl
LmggKi87IH07CiAJCTFBQjdGQzg3MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhcmlhYmxlUmVm
ZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBQjdGQzY2MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhcmlhYmxlUmVmZXJlbmNlLmNwcCAq
LzsgfTsKIAkJMUFCN0ZDODgwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVu
Y2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQjdG
QzY3MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhcmlhYmxlUmVmZXJlbmNlLmggKi87IH07CisJ
CTFBQkE3NkM5MTFEMjBFNDcwMDRDMjAxQyAvKiBDb2xvckRhdGEuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwNkYzRkIxMTk4MzA3RDAwOUQ1OUQ2
IC8qIENvbG9yRGF0YS5jcHAgKi87IH07CisJCTFBQkE3NkNBMTFEMjBFNTAwMDRDMjAxQyAvKiBD
U1NQcm9wZXJ0eU5hbWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU0MUVBMDM4MTE5ODM2REIwMDcxMEJDNSAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNw
cCAqLzsgfTsKKwkJMUFCQTc2Q0IxMUQyMEU1NzAwNEMyMDFDIC8qIENTU1ZhbHVlS2V5d29yZHMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQxRUEw
MzkxMTk4Mzc0OTAwNzEwQkM1IC8qIENTU1ZhbHVlS2V5d29yZHMuY3BwICovOyB9OworCQkxQUJB
NzZDQzExRDIwRTVCMDA0QzIwMUMgLyogRG9jVHlwZVN0cmluZ3MuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwNkYzRkExMTk4MzA0RDAwOUQ1OUQ2
IC8qIERvY1R5cGVTdHJpbmdzLmNwcCAqLzsgfTsKKwkJMUFCQTc3RkQxMUQyMTAzMTAwNEMyMDFD
IC8qIEhUTUxFbnRpdHlOYW1lcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNDA2RjQwMjExOTgzMjlBMDA5RDU5RDYgLyogSFRNTEVudGl0eU5hbWVz
LmNwcCAqLzsgfTsKIAkJMUFCRkU3NTMwQ0Q5NjhEMDAwRkU0ODM0IC8qIFNRTFRyYW5zYWN0aW9u
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQkZF
NzUyMENEOTY4RDAwMEZFNDgzNCAvKiBTUUxUcmFuc2FjdGlvbi5jcHAgKi87IH07CiAJCTFBQzIy
NjBDMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDMjI2MEEwREI2OUYxOTAw
ODlCNjY5IC8qIEpTRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgKi87IH07CiAJCTFBQzIyNjBEMERC
NjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQzIyNjBCMERCNjlGMTkwMDg5QjY2OSAv
KiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuaCAqLzsgfTsKQEAgLTIwNDI5LDYgKzIwNDM0LDExIEBA
CiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIx
NDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQkxQUJBNzZDOTExRDIwRTQ3MDA0QzIwMUMgLyog
Q29sb3JEYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBQkE3NkNBMTFEMjBFNTAwMDRDMjAx
QyAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBQkE3NkNCMTFE
MjBFNTcwMDRDMjAxQyAvKiBDU1NWYWx1ZUtleXdvcmRzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTFBQkE3NkNDMTFEMjBFNUIwMDRDMjAxQyAvKiBEb2NUeXBlU3RyaW5ncy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkxQUJBNzdGRDExRDIxMDMxMDA0QzIwMUMgLyogSFRNTEVudGl0eU5hbWVzLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUI1QjVEQzY5MTE5QkIzRDUwMDJBODc5MCAvKiBBYnN0cmFj
dERhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxRTFCMUQwMEZGNTk4NjkwMDU3NkIz
QiAvKiBBYnN0cmFjdFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyOUE4MTIyODBGQkI5
QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKaW5kZXggYWE2Y2RkOS4uYzhmMTE3MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC02MSw2ICs2
MSw3IEBACiAjaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiRm9udEZhbWls
eVZhbHVlLmgiCiAjaW5jbHVkZSAiRm9udFZhbHVlLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgi
CiAjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV4cC5oIgogI2lu
Y2x1ZGUgIlBhaXIuaCIKQEAgLTg4LDkgKzg5LDYgQEAgZXh0ZXJuIGludCBjc3N5eXBhcnNlKHZv
aWQqIHBhcnNlcik7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIFdURjsK
IAotI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuY3BwIgotI2luY2x1ZGUgIkNTU1ZhbHVlS2V5
d29yZHMuY3BwIgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBJTlZBTElEX05VTV9QQVJTRURfUFJPUEVSVElFUyA9IFVJTlRfTUFYOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9jc3MvbWFrZXByb3AucGwgYi9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAppbmRleCAw
ZmQxZjA4Li4wZGQ4NDQ0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAorKysg
Yi9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbApAQCAtNDEsMTUgKzQxLDE0IEBAIHByaW50IEdQRVJG
IDw8ICJFT0YiOwogI2luY2x1ZGUgXCJDU1NQcm9wZXJ0eU5hbWVzLmhcIgogJX0KICVzdHJ1Y3Qt
dHlwZQotc3RydWN0IFByb3BlcnR5IHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGludCBp
ZDsKLX07Ci0lbGFuZ3VhZ2U9QU5TSS1DCitzdHJ1Y3QgUHJvcGVydHk7Cislb21pdC1zdHJ1Y3Qt
dHlwZQorJWxhbmd1YWdlPUMrKwogJXJlYWRvbmx5LXRhYmxlcwogJWdsb2JhbC10YWJsZQogJWNv
bXBhcmUtc3RybmNtcAotJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kUHJvcGVydHkK
KyVkZWZpbmUgY2xhc3MtbmFtZSBDU1NQcm9wZXJ0eU5hbWVzSGFzaAorJWRlZmluZSBsb29rdXAt
ZnVuY3Rpb24tbmFtZSBmaW5kUHJvcGVydHlJbXBsCiAlZGVmaW5lIGhhc2gtZnVuY3Rpb24tbmFt
ZSBwcm9wZXJ5X2hhc2hfZnVuY3Rpb24KICVkZWZpbmUgd29yZC1hcnJheS1uYW1lIHByb3BlcnR5
X3dvcmRsaXN0CiAlaW5jbHVkZXMKQEAgLTcyLDYgKzcxLDEwIEBAIHByaW50IEhFQURFUiA8PCAi
RU9GIjsKICNpZm5kZWYgQ1NTUHJvcGVydHlOYW1lc19oCiAjZGVmaW5lIENTU1Byb3BlcnR5TmFt
ZXNfaAogCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwogZW51
bSBDU1NQcm9wZXJ0eUlEIHsKICAgICBDU1NQcm9wZXJ0eUludmFsaWQgPSAwLAogRU9GCkBAIC05
OSwxNSArMTAyLDE3IEBAIHByaW50IEhFQURFUiA8PCAiRU9GIjsKIAogY29uc3QgY2hhciogZ2V0
UHJvcGVydHlOYW1lKENTU1Byb3BlcnR5SUQpOwogCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
ICNlbmRpZiAvLyBDU1NQcm9wZXJ0eU5hbWVzX2gKIAogRU9GCiAKIGNsb3NlIEhFQURFUjsKIAot
c3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLW4gLXMgMiBDU1NQcm9wZXJ0
eU5hbWVzLmdwZXJmID4gQ1NTUHJvcGVydHlOYW1lcy5jcHAiKSA9PSAwIHx8IGRpZSAiY2FsbGlu
ZyBncGVyZiBmYWlsZWQ6ICQ/IjsKK3N5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwi
IC1EIC1uIC1zIDIgQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiA+IENTU1Byb3BlcnR5TmFtZXNIYXNo
LmgiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKIAotb3BlbiBDLCAi
Pj5DU1NQcm9wZXJ0eU5hbWVzLmNwcCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NQcm9wZXJ0
eU5hbWVzLmNwcCBmb3Igd3JpdGluZyI7CitvcGVuIEMsICI+PkNTU1Byb3BlcnR5TmFtZXNIYXNo
LmgiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTUHJvcGVydHlOYW1lc0hhc2guaCBmb3Igd3Jp
dGluZyI7CiBwcmludCBDICJzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHByb3BlcnR5TmFtZVN0
cmluZ3NbJG51bV0gPSB7XG4iOwogCiBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKQEAgLTEx
Niw2ICsxMjEsMjkgQEAgZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CiAKIHByaW50IEMgPDwg
IkVPRiI7CiB9OworCitFT0YKKworY2xvc2UgQzsKKworbXkgJHByb3BlcnR5TmFtZXNJbXBsID0g
IkNTU1Byb3BlcnR5TmFtZXMuY3BwIjsKKworb3BlbiBQUk9QRVJUWU5BTUVTLCAiPiRwcm9wZXJ0
eU5hbWVzSW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkcHJvcGVydHlOYW1lc0ltcGwgZm9y
IHdyaXRpbmciOworcHJpbnQgUFJPUEVSVFlOQU1FUyA8PCAiRU9GIjsKKy8qIFRoaXMgZmlsZSBp
cyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5vdCBl
ZGl0ICovCisKKworI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKKyNpbmNsdWRlICJIYXNo
VG9vbHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFt
ZXNIYXNoLmgiCisKK2NvbnN0IFByb3BlcnR5KiBmaW5kUHJvcGVydHkgKHJlZ2lzdGVyIGNvbnN0
IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbikKK3sKKyAgICByZXR1cm4gQ1NT
UHJvcGVydHlOYW1lc0hhc2g6OmZpbmRQcm9wZXJ0eUltcGwoc3RyLCBsZW4pOworfQorCiBjb25z
dCBjaGFyKiBnZXRQcm9wZXJ0eU5hbWUoQ1NTUHJvcGVydHlJRCBpZCkKIHsKICAgICBpZiAoaWQg
PCBmaXJzdENTU1Byb3BlcnR5KQpAQCAtMTI1LDcgKzE1MywxMCBAQCBjb25zdCBjaGFyKiBnZXRQ
cm9wZXJ0eU5hbWUoQ1NTUHJvcGVydHlJRCBpZCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0
dXJuIHByb3BlcnR5TmFtZVN0cmluZ3NbaW5kZXhdOwogfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKIEVPRgogCi1jbG9zZSBDOworY2xvc2UgUFJPUEVSVFlOQU1FUzsKIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbCBiL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwK
aW5kZXggNDIxZTQ3MC4uYzlmN2Y3MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvbWFrZXZhbHVl
cy5wbAorKysgYi9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCkBAIC00MiwxNCArNDIsMTMgQEAg
cHJpbnQgR1BFUkYgPDwgIkVPRiI7CiAjaW5jbHVkZSBcIkNTU1ZhbHVlS2V5d29yZHMuaFwiCiAl
fQogJXN0cnVjdC10eXBlCi1zdHJ1Y3QgVmFsdWUgewotICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0g
ICAgaW50IGlkOwotfTsKLSVsYW5ndWFnZT1BTlNJLUMKK3N0cnVjdCBWYWx1ZTsKKyVvbWl0LXN0
cnVjdC10eXBlCislbGFuZ3VhZ2U9QysrCiAlcmVhZG9ubHktdGFibGVzCiAlY29tcGFyZS1zdHJu
Y21wCi0lZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRWYWx1ZQorJWRlZmluZSBjbGFz
cy1uYW1lIENTU1ZhbHVlS2V5d29yZHNIYXNoCislZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1l
IGZpbmRWYWx1ZUltcGwKICVkZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1lIHZhbHVlX2hhc2hfZnVu
Y3Rpb24KICVkZWZpbmUgd29yZC1hcnJheS1uYW1lIHZhbHVlX3dvcmRfbGlzdAogJWluY2x1ZGVz
CkBAIC03Miw2ICs3MSwxMCBAQCBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAjaWZuZGVmIENTU1Zh
bHVlS2V5d29yZHNfaAogI2RlZmluZSBDU1NWYWx1ZUtleXdvcmRzX2gKIAorI2luY2x1ZGUgPHN0
cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKIGNvbnN0IGludCBDU1NWYWx1ZUludmFs
aWQgPSAwOwogRU9GCiAKQEAgLTkyLDEzICs5NSwxNiBAQCBwcmludCBIRUFERVIgPDwgIkVPRiI7
CiAKIGNvbnN0IGNoYXIqIGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBpZCk7CiAKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKwogI2VuZGlmIC8vIENTU1ZhbHVlS2V5d29yZHNfaAorCiBFT0YK
IGNsb3NlIEhFQURFUjsKIAotc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQg
LW4gLXMgMiBDU1NWYWx1ZUtleXdvcmRzLmdwZXJmID4gQ1NTVmFsdWVLZXl3b3Jkcy5jcHAiKSA9
PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKK3N5c3RlbSgiZ3BlcmYgLS1r
ZXktcG9zaXRpb25zPVwiKlwiIC1EIC1uIC1zIDIgQ1NTVmFsdWVLZXl3b3Jkcy5ncGVyZiA+IENT
U1ZhbHVlS2V5d29yZHNIYXNoLmgiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6
ICQ/IjsKIAotb3BlbiBDLCAiPj5DU1NWYWx1ZUtleXdvcmRzLmNwcCIgfHwgZGllICJDb3VsZCBu
b3Qgb3BlbiBDU1NWYWx1ZUtleXdvcmRzLmNwcCBmb3Igd3JpdGluZyI7CitvcGVuIEMsICI+PkNT
U1ZhbHVlS2V5d29yZHNIYXNoLmgiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTVmFsdWVLZXl3
b3Jkc0hhc2guaCBmb3Igd3JpdGluZyI7CiBwcmludCBDICAic3RhdGljIGNvbnN0IGNoYXIgKiBj
b25zdCB2YWx1ZUxpc3RbXSA9IHtcbiI7CiBwcmludCBDICAiXCJcIixcbiI7CiBmb3JlYWNoIG15
ICRuYW1lIChAbmFtZXMpIHsKQEAgLTEwNywxMiArMTEzLDM4IEBAIGZvcmVhY2ggbXkgJG5hbWUg
KEBuYW1lcykgewogcHJpbnQgQyA8PCAiRU9GIjsKICAgICAwCiB9OworCitFT0YKKworY2xvc2Ug
QzsKKworbXkgJHZhbHVlS2V5d29yZHNJbXBsID0gIkNTU1ZhbHVlS2V5d29yZHMuY3BwIjsKKwor
b3BlbiBWQUxVRUtFWVdPUkRTLCAiPiR2YWx1ZUtleXdvcmRzSW1wbCIgfHwgZGllICJDb3VsZCBu
b3Qgb3BlbiAkdmFsdWVLZXl3b3Jkc0ltcGwgZm9yIHdyaXRpbmciOworcHJpbnQgVkFMVUVLRVlX
T1JEUyA8PCAiRU9GIjsKKy8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBi
eSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5vdCBlZGl0ICovCisKKyNpbmNsdWRlICJDU1NWYWx1
ZUtleXdvcmRzLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKyNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzSGFzaC5oIgorCitjb25zdCBWYWx1ZSogZmlu
ZFZhbHVlIChyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBs
ZW4pCit7CisgICAgcmV0dXJuIENTU1ZhbHVlS2V5d29yZHNIYXNoOjpmaW5kVmFsdWVJbXBsKHN0
ciwgbGVuKTsKK30KKwogY29uc3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlk
KQogewogICAgIGlmIChpZCA+PSBudW1DU1NWYWx1ZUtleXdvcmRzIHx8IGlkIDw9IDApCiAgICAg
ICAgIHJldHVybiAwOwogICAgIHJldHVybiB2YWx1ZUxpc3RbaWRdOwogfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKIEVPRgogCi1jbG9zZSBDOworY2xvc2UgVkFMVUVLRVlXT1JEUzsKKwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmIGIvV2ViQ29yZS9o
dG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCmluZGV4IDVjMjEzYjAuLjZiN2RhMDQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgorKysgYi9XZWJDb3JlL2h0bWwv
RG9jVHlwZVN0cmluZ3MuZ3BlcmYKQEAgLTEsMjEgKzEsMTMgQEAKICVzdHJ1Y3QtdHlwZQotc3Ry
dWN0IFB1YklESW5mbyB7Ci0gICAgZW51bSBlTW9kZSB7IAotICAgICAgICBlUXVpcmtzLCAgICAg
ICAgIAotICAgICAgICBlUXVpcmtzMywgICAgICAgCi0gICAgICAgIGVBbG1vc3RTdGFuZGFyZHMK
LSAgICB9OwotCi0gICAgY29uc3QgY2hhciogbmFtZTsKLSAgICBlTW9kZSBtb2RlX2lmX25vX3N5
c2lkOwotICAgIGVNb2RlIG1vZGVfaWZfc3lzaWQ7Ci19Ci0lbGFuZ3VhZ2U9QU5TSS1DCitzdHJ1
Y3QgUHViSURJbmZvOworJW9taXQtc3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysKICVyZWFkb25s
eS10YWJsZXMKICVnbG9iYWwtdGFibGUKICVjb21wYXJlLXN0cm5jbXAKKyVkZWZpbmUgY2xhc3Mt
bmFtZSBEb2NUeXBlU3RyaW5nc0hhc2gKICVkZWZpbmUgaW5pdGlhbGl6ZXItc3VmZml4ICxQdWJJ
REluZm86OmVBbG1vc3RTdGFuZGFyZHMsUHViSURJbmZvOjplQWxtb3N0U3RhbmRhcmRzCi0lZGVm
aW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmREb2N0eXBlRW50cnkKKyVkZWZpbmUgbG9va3Vw
LWZ1bmN0aW9uLW5hbWUgZmluZERvY3R5cGVFbnRyeUltcGwKICVkZWZpbmUgaGFzaC1mdW5jdGlv
bi1uYW1lIGRvY3R5cGVfaGFzaF9mdW5jdGlvbgogJWluY2x1ZGVzCiAlZW51bQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTERvY3Vt
ZW50LmNwcAppbmRleCBmZjBjMmRlLi41MDQ3Y2ExIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTERvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcApAQCAt
NjQsNiArNjQsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVU
cmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAj
aW5jbHVkZSAiSFRNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnRGYWN0b3J5LmgiCkBAIC03NSw4ICs3Niw2IEBACiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKLSNp
bmNsdWRlICJEb2NUeXBlU3RyaW5ncy5jcHAiCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRW50
aXR5TmFtZXMuZ3BlcmYgYi9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCmluZGV4
IGM2NjVlZmUuLjZlYzVkY2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFt
ZXMuZ3BlcmYKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgpAQCAtMjUs
MTYgKzI1LDE2IEBACiAqLwogJX0KICVzdHJ1Y3QtdHlwZQotc3RydWN0IEVudGl0eSB7Ci0gICAg
Y29uc3QgY2hhciAqbmFtZTsKLSAgICBpbnQgY29kZTsKLX07Ci0lbGFuZ3VhZ2U9QU5TSS1DCitz
dHJ1Y3QgRW50aXR5OworJWxhbmd1YWdlPUMrKworJW9taXQtc3RydWN0LXR5cGUKICVyZWFkb25s
eS10YWJsZXMKICVnbG9iYWwtdGFibGUKICVjb21wYXJlLXN0cm5jbXAKLSVkZWZpbmUgbG9va3Vw
LWZ1bmN0aW9uLW5hbWUgZmluZEVudGl0eQorJWRlZmluZSBjbGFzcy1uYW1lIEhUTUxFbnRpdHlI
YXNoCislZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRFbnRpdHlJbXBsCiAlZGVmaW5l
IGhhc2gtZnVuY3Rpb24tbmFtZSBlbnRpdHlfaGFzaF9mdW5jdGlvbgorJWRlZmluZSB3b3JkLWFy
cmF5LW5hbWUgZW50aXR5X3dvcmRsaXN0CiAlaW5jbHVkZXMKICVlbnVtCiAlJQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxF
bnRpdHlQYXJzZXIuY3BwCmluZGV4IDg0YjIwMDYuLjQ2MjFlZjMgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MRW50aXR5UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEVudGl0
eVBhcnNlci5jcHAKQEAgLTI4LDIxICsyOCw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSFRNTEVudGl0eVBhcnNlci5oIgogCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogCi0vLyBVc2UgX19HTlVDX18gaW5zdGVhZCBvZiBQTEFURk9S
TShHQ0MpIHRvIHN0YXkgY29uc2lzdGVudCB3aXRoIHRoZSBncGVyZiBnZW5lcmF0ZWQgYyBmaWxl
Ci0jaWZkZWYgX19HTlVDX18KLS8vIFRoZSBtYWluIHBhcnNlciBpbmNsdWRlcyB0aGlzIHRvbyBz
byB3ZSBhcmUgZ2V0dGluZyB0d28gY29waWVzIG9mIHRoZSBkYXRhLiBIb3dldmVyLCB0aGlzIHdh
eSB0aGUgY29kZSBnZXRzIGlubGluZWQuCi0jaW5jbHVkZSAiSFRNTEVudGl0eU5hbWVzLmNwcCIK
LSNlbHNlCi0vLyBOb3QgaW5saW5lZCBmb3Igbm9uLUdDQyBjb21waWxlcnMKLXN0cnVjdCBFbnRp
dHkgewotICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgaW50IGNvZGU7Ci19OwotY29uc3Qgc3Ry
dWN0IEVudGl0eSogZmluZEVudGl0eShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVy
IHVuc2lnbmVkIGludCBsZW4pOwotI2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9MZWdhY3lIVE1MRG9j
dW1lbnRQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxEb2N1bWVudFBhcnNlci5j
cHAKaW5kZXggY2I1ZmFjOC4uYWE2ZTI0MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0xlZ2Fj
eUhUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxEb2N1
bWVudFBhcnNlci5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAi
SGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKICNpbmNsdWRlICJMZWdhY3lIVE1MVHJlZUJ1aWxkZXIuaCIKQEAgLTU0LDggKzU1LDYg
QEAKICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgogCi0jaW5jbHVkZSAiSFRNTEVudGl0eU5hbWVzLmNwcCIKLQogI2RlZmluZSBQUkVMT0FE
X1NDQU5ORVJfRU5BQkxFRCAxCiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvTGVnYWN5UHJlbG9hZFNjYW5uZXIuY3BwIGIvV2ViQ29yZS9odG1sL0xlZ2Fj
eVByZWxvYWRTY2FubmVyLmNwcAppbmRleCBjOWZkYTRmLi43YTZkMDE2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvTGVnYWN5UHJlbG9hZFNjYW5uZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9M
ZWdhY3lQcmVsb2FkU2Nhbm5lci5jcHAKQEAgLTM4LDI1ICszOCwxMyBAQAogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgor
I2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+
CiAKLS8vIFVzZSBfX0dOVUNfXyBpbnN0ZWFkIG9mIFBMQVRGT1JNKEdDQykgdG8gc3RheSBjb25z
aXN0ZW50IHdpdGggdGhlIGdwZXJmIGdlbmVyYXRlZCBjIGZpbGUKLSNpZmRlZiBfX0dOVUNfXwot
Ly8gVGhlIG1haW4gdG9rZW5pemVyIGluY2x1ZGVzIHRoaXMgdG9vIHNvIHdlIGFyZSBnZXR0aW5n
IHR3byBjb3BpZXMgb2YgdGhlIGRhdGEuIEhvd2V2ZXIsIHRoaXMgd2F5IHRoZSBjb2RlIGdldHMg
aW5saW5lZC4KLSNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXMuY3BwIgotI2Vsc2UKLS8vIE5vdCBp
bmxpbmVkIGZvciBub24tR0NDIGNvbXBpbGVycwotc3RydWN0IEVudGl0eSB7Ci0gICAgY29uc3Qg
Y2hhciogbmFtZTsKLSAgICBpbnQgY29kZTsKLX07Ci1jb25zdCBzdHJ1Y3QgRW50aXR5KiBmaW5k
RW50aXR5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxl
bik7Ci0jZW5kaWYKLQogI2RlZmluZSBQUkVMT0FEX0RFQlVHIDAKIAogdXNpbmcgbmFtZXNwYWNl
IFdURjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsIGIvV2ViQ29yZS9t
YWtlLWhhc2gtdG9vbHMucGwKaW5kZXggNDJjYjZmZC4uNDMyYWM0MCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9tYWtlLWhhc2gtdG9vbHMucGwKKysrIGIvV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwK
QEAgLTI2LDM1ICsyNiwxODEgQEAgdXNlIEZpbGU6OkJhc2VuYW1lOwogbXkgJG91dGRpciA9ICRB
UkdWWzBdOwogc2hpZnQ7CiBteSAkb3B0aW9uID0gYmFzZW5hbWUoJEFSR1ZbMF0sIi5ncGVyZiIp
OworbXkgJGhhc2hUb29sc0hlYWRlciA9ICIkb3V0ZGlyL0hhc2hUb29scy5oIjsKKworc3ViIGNy
ZWF0ZUhhc2hUb29sc0hlYWRlcigpIHsKKworb3BlbiBIRUFERVIsICI+JGhhc2hUb29sc0hlYWRl
ciIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkaGFzaFRvb2xzSGVhZGVyIGZvciB3cml0aW5nIjsK
K3ByaW50IEhFQURFUiA8PCAiRU9GIjsKKy8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdl
bmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5vdCBlZGl0ICovCisKKyNpZm5kZWYg
SGFzaFRvb2xzX2gKKyNkZWZpbmUgSGFzaFRvb2xzX2gKKworI2luY2x1ZGUgInd0Zi9QbGF0Zm9y
bS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBFbnRpdHkgeworICAgIGNvbnN0
IGNoYXIqIG5hbWU7CisgICAgaW50IGNvZGU7Cit9OworCitzdHJ1Y3QgUHViSURJbmZvIHsKKyAg
ICBlbnVtIGVNb2RlIHsKKyAgICAgICAgZVF1aXJrcywKKyAgICAgICAgZVF1aXJrczMsCisgICAg
ICAgIGVBbG1vc3RTdGFuZGFyZHMKKyAgICB9OworCisgICAgY29uc3QgY2hhciogbmFtZTsKKyAg
ICBlTW9kZSBtb2RlX2lmX25vX3N5c2lkOworICAgIGVNb2RlIG1vZGVfaWZfc3lzaWQ7Cit9Owor
CitzdHJ1Y3QgTmFtZWRDb2xvciB7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBpbnQgUkdC
VmFsdWU7Cit9OworCitzdHJ1Y3QgUHJvcGVydHkgeworICAgIGNvbnN0IGNoYXIqIG5hbWU7Cisg
ICAgaW50IGlkOworfTsKKworc3RydWN0IFZhbHVlIHsKKyAgICBjb25zdCBjaGFyKiBuYW1lOwor
ICAgIGludCBpZDsKK307CisKK2NvbnN0IEVudGl0eSogZmluZEVudGl0eShyZWdpc3RlciBjb25z
dCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pOworY29uc3QgUHViSURJbmZv
KiBmaW5kRG9jdHlwZUVudHJ5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5z
aWduZWQgaW50IGxlbik7Citjb25zdCBOYW1lZENvbG9yKiBmaW5kQ29sb3IocmVnaXN0ZXIgY29u
c3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKK2NvbnN0IFByb3BlcnR5
KiBmaW5kUHJvcGVydHkocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25l
ZCBpbnQgbGVuKTsKK2NvbnN0IFZhbHVlKiBmaW5kVmFsdWUocmVnaXN0ZXIgY29uc3QgY2hhciog
c3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKKworI2lmIFBMQVRGT1JNKENIUk9NSVVN
KQorCitjb25zdCBFbnRpdHkqIHdvcmRMaXN0KCk7Citjb25zdCBpbnQgd29yZExpc3RTaXplKCk7
CisKKyNlbmRpZgorCit9CisKKyNlbmRpZiAvLyBIYXNoVG9vbHNfaAorCitFT0YKK2Nsb3NlIEhF
QURFUjsKKworfQorCisKIAogc3dpdGNoICgkb3B0aW9uKSB7CiAKIGNhc2UgIkhUTUxFbnRpdHlO
YW1lcyIgewogCi0gICAgbXkgJGh0bWxFbnRpdHlOYW1lc0dlbmVyYXRlZCAgID0gIiRvdXRkaXIv
SFRNTEVudGl0eU5hbWVzLmNwcCI7CisgICAgY3JlYXRlSGFzaFRvb2xzSGVhZGVyKCk7CisKKyAg
ICBteSAkaHRtbEVudGl0eU5hbWVzSW1wbCAgICAgICAgPSAiJG91dGRpci9IVE1MRW50aXR5TmFt
ZXMuY3BwIjsKKyAgICBteSAkaHRtbEVudGl0eU5hbWVzR2VuZXJhdGVkICAgPSAiJG91dGRpci9I
VE1MRW50aXR5TmFtZXNIYXNoLmgiOwogICAgIG15ICRodG1sRW50aXR5TmFtZXNHcGVyZiAgICAg
ICA9ICRBUkdWWzBdOwogICAgIHNoaWZ0OwogCisgICAgb3BlbiBFTlRJVElFUywgIj4kaHRtbEVu
dGl0eU5hbWVzSW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkaHRtbEVudGl0eU5hbWVzSW1w
bCBmb3Igd3JpdGluZyI7CisgICAgcHJpbnQgRU5USVRJRVMgPDwgIkVPRiI7CisvKiBUaGlzIGZp
bGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBkbyBu
b3QgZWRpdCAqLworCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKyNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXNIYXNoLmgiCisKK2NvbnN0IEVudGl0eSogZmlu
ZEVudGl0eShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBs
ZW4pCit7CisgICAgcmV0dXJuIEhUTUxFbnRpdHlIYXNoOjpmaW5kRW50aXR5SW1wbChzdHIsIGxl
bik7Cit9CisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKworY29uc3QgRW50aXR5KiB3b3JkTGlz
dCgpCit7CisgICAgcmV0dXJuIFdlYkNvcmU6OmVudGl0eV93b3JkbGlzdDsKK30KKworY29uc3Qg
aW50IHdvcmRMaXN0U2l6ZSgpCit7CisgICAgcmV0dXJuIHNpemVvZihXZWJDb3JlOjplbnRpdHlf
d29yZGxpc3QpIC8gc2l6ZW9mKEVudGl0eSk7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDSFJP
TUlVTSkKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitFT0YKKyAgICBjbG9zZSBFTlRJVElF
UzsKKwogICAgIHN5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1zIDIgJGh0
bWxFbnRpdHlOYW1lc0dwZXJmID4gJGh0bWxFbnRpdHlOYW1lc0dlbmVyYXRlZCIpID09IDAgfHwg
ZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwogCiB9ICMgY2FzZSAiSFRNTEVudGl0eU5h
bWVzIgogCiBjYXNlICJEb2NUeXBlU3RyaW5ncyIgewogCi0gICAgbXkgJGRvY1R5cGVTdHJpbmdz
R2VuZXJhdGVkICAgID0gIiRvdXRkaXIvRG9jVHlwZVN0cmluZ3MuY3BwIjsKKyAgICBteSAkZG9j
VHlwZVN0cmluZ3NJbXBsICAgICAgICAgPSAiJG91dGRpci9Eb2NUeXBlU3RyaW5ncy5jcHAiOwor
ICAgIG15ICRkb2NUeXBlU3RyaW5nc0dlbmVyYXRlZCAgICA9ICIkb3V0ZGlyL0RvY1R5cGVTdHJp
bmdzSGFzaC5oIjsKICAgICBteSAkZG9jVHlwZVN0cmluZ3NHcGVyZiAgICAgICAgPSAkQVJHVlsw
XTsKICAgICBzaGlmdDsKIAorICAgIG9wZW4gRE9DVFlQRVNUUklOR1MsICI+JGRvY1R5cGVTdHJp
bmdzSW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkZG9jVHlwZVN0cmluZ3NJbXBsIGZvciB3
cml0aW5nIjsKKyAgICBwcmludCBET0NUWVBFU1RSSU5HUyA8PCAiRU9GIjsKKy8qIFRoaXMgZmls
ZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5v
dCBlZGl0ICovCisKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworI2luY2x1ZGUgIkRvY1R5cGVTdHJpbmdzSGFzaC5oIgorCitjb25zdCBQdWJJREluZm8qIGZp
bmREb2N0eXBlRW50cnkgKHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWdu
ZWQgaW50IGxlbikKK3sKKyAgICByZXR1cm4gRG9jVHlwZVN0cmluZ3NIYXNoOjpmaW5kRG9jdHlw
ZUVudHJ5SW1wbChzdHIsIGxlbik7Cit9CisKK30KKworRU9GCisgICAgY2xvc2UgRE9DVFlQRVNU
UklOR1M7CisKICAgICBzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtcyAyICRk
b2NUeXBlU3RyaW5nc0dwZXJmID4gJGRvY1R5cGVTdHJpbmdzR2VuZXJhdGVkIikgPT0gMCB8fCBk
aWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKIH0gIyBjYXNlICJEb2NUeXBlU3RyaW5n
cyIKIAogY2FzZSAiQ29sb3JEYXRhIiB7CiAKLSAgICBteSAkY29sb3JEYXRhR2VuZXJhdGVkICAg
PSAiJG91dGRpci9Db2xvckRhdGEuY3BwIjsKLSAgICBteSAkY29sb3JEYXRhR3BlcmYgICAgICAg
PSAkQVJHVlswXTsKKyAgICBteSAkY29sb3JEYXRhSW1wbCAgICAgICAgICAgICAgPSAiJG91dGRp
ci9Db2xvckRhdGEuY3BwIjsKKyAgICBteSAkY29sb3JEYXRhR2VuZXJhdGVkICAgICAgICAgPSAi
JG91dGRpci9Db2xvckRhdGFIYXNoLmgiOworICAgIG15ICRjb2xvckRhdGFHcGVyZiAgICAgICAg
ICAgICA9ICRBUkdWWzBdOwogICAgIHNoaWZ0OwogCisgICAgb3BlbiBDT0xPUkRBVEEsICI+JGNv
bG9yRGF0YUltcGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJGNvbG9yRGF0YUltcGwgZm9yIHdy
aXRpbmciOworICAgIHByaW50IENPTE9SREFUQSA8PCAiRU9GIjsKKy8qIFRoaXMgZmlsZSBpcyBh
dXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5vdCBlZGl0
ICovCisKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworI2lu
Y2x1ZGUgIkNvbG9yRGF0YUhhc2guaCIKKworY29uc3Qgc3RydWN0IE5hbWVkQ29sb3IqIGZpbmRD
b2xvciAocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVu
KQoreworICAgIHJldHVybiBDb2xvckRhdGFIYXNoOjpmaW5kQ29sb3JJbXBsKHN0ciwgbGVuKTsK
K30KKworfQorCitFT0YKKyAgICBjbG9zZSBDT0xPUkRBVEE7CisKICAgICBzeXN0ZW0oImdwZXJm
IC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtcyAyICRjb2xvckRhdGFHcGVyZiA+ICRjb2xvckRh
dGFHZW5lcmF0ZWQiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKIAog
fSAjIGNhc2UgIkNvbG9yRGF0YSIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JE
YXRhLmdwZXJmIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKaW5kZXggMTFlZjc5
OC4uZDY4NGNiOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKQEAgLTEsMTMgKzEsMTIgQEAK
ICVzdHJ1Y3QtdHlwZQotc3RydWN0IE5hbWVkQ29sb3IgewotICAgIGNvbnN0IGNoYXIgKm5hbWU7
Ci0gICAgaW50IFJHQlZhbHVlOwotfTsKLSVsYW5ndWFnZT1BTlNJLUMKK3N0cnVjdCBOYW1lZENv
bG9yOworJW9taXQtc3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysKICVyZWFkb25seS10YWJsZXMK
ICVnbG9iYWwtdGFibGUKICVjb21wYXJlLXN0cm5jbXAKLSVkZWZpbmUgbG9va3VwLWZ1bmN0aW9u
LW5hbWUgZmluZENvbG9yCislZGVmaW5lIGNsYXNzLW5hbWUgQ29sb3JEYXRhSGFzaAorJWRlZmlu
ZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kQ29sb3JJbXBsCiAlZGVmaW5lIGhhc2gtZnVuY3Rp
b24tbmFtZSBjb2xvcmRhdGFfaGFzaF9mdW5jdGlvbgogJWluY2x1ZGVzCiAlZW51bQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbG9yLmNwcAppbmRleCA4MGM4Mjg2Li5mMjhkNTFjIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbG9yLmNwcApAQCAtMjYsMTMgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIKIAorI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAotI2luY2x1ZGUg
IkNvbG9yRGF0YS5jcHAiCi0KIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2luZyBuYW1lc3BhY2Ug
V1RGOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCBhNGM4NDVjLi4xOGIxNjdlIDEwMDY0NAotLS0gYS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNCBAQAorMjAxMC0wOC0wOSAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5k
ZWZpbmVkIHJlZmVyZW5jZSBlcnJvcnMgd2hlbiBsaW5raW5nIGR1ZSB0byBncGVyZiBhbmQgaW5s
aW5pbmcuCisgICAgICAgIHdlYmtpdC5vcmcvYi8yOTI0NAorCisgICAgICAgIEVGTCBDTWFrZSBj
aGFuZ2VzIGJ5IExlYW5kcm8gUGVyZWlyYSA8bGVhbmRyb0Bwcm9mdXNpb24ubW9iaT4gCisKKyAg
ICAgICAgUmVmYWN0b3IgZ3BlcmYgY29kZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0byBmaXggdGhl
IGRlYnVnIGJ1aWxkIHdpdGggZ2NjPjQuNC4KKyAgICAgICAgSGl0aGVydG8gZ3BlcmYgZ2VuZXJh
dGVkIEMgY29kZSwgdGhlc2UgZmlsZXMgd2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBDKysgZmls
ZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAgICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFsaXR5IHBy
b3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGluIGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBuZXdlciBn
Y2MgdmVyc2lvbnMKKyAgICAgICAgYmVjYXVzZSBvZiBhIGJlaGF2aW91ciBjaGFuZ2Ugb2YgZ2Nj
LCB3aGljaCBkaXNhYmxlcyBDIHN0eWxlIGlubGluaW5nIGluIGRlYnVnIG1vZGUuCisgICAgICAg
IFRoZSBtYWtlLWhhc2gtdG9vbHMucGwgc2NyaXB0IGxldHMgZ3BlcmYgZ2VuZXJhdGUgQysrIGNv
ZGUgZm9yIGFsbCBncGVyZiBmaWxlcyBub3csIHdoaWNoIGFyZSBjb21waWxlZAorICAgICAgICBp
biB0aGVpciBvd24gY29tcGlsYXRpb24gdW5pdC4KKyAgICAgICAgVGhlIGZ1bmN0aW9uYWxpdHkg
cHJvdmlkZWQgYnkgdGhlIGdlbmVyYXRlZCBjb2RlIGlzIHdyYXBwZWQgYmVoaW5kIEhhc2hUb29s
cy5oLCBzbyB0aGVyZSBpcyBubyBuZWVkCisgICAgICAgIGZvciBtdWx0aXBsZSBpbmNsdXNpb25z
IG9mIGdlbmVyYXRlZCBDIGZpbGVzIHRvIGFjY2VzcyB0aGVzZSBmdW5jdGlvbnMuCisKKyAgICAg
ICAgKiBzcmMvV2ViRW50aXRpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFbnRpdGllczo6
V2ViRW50aXRpZXMpOgorCiAyMDEwLTA4LTA3ICBKYXkgQ2l2ZWxsaSAgPGpjaXZlbGxpQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRW50aXRpZXMuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJFbnRpdGllcy5jcHAKaW5kZXggNjY1ZDhkOS4uNzhjM2Y1ZiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJFbnRpdGllcy5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJFbnRpdGllcy5jcHAKQEAgLTMxLDkgKzMxLDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJXZWJFbnRpdGllcy5oIgogCi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KKyNpbmNs
dWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUg
PHN0cmluZy5oPgogI2luY2x1ZGUgIlN0cmluZ0J1aWxkZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogCkBAIC00MSwxNSArNDEsNiBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAotbmFtZXNwYWNlIHsKLS8vIE5vdGUgdGhhdCB0aGlzIGZpbGUgaXMgYWxzbyBpbmNsdWRlZCBi
eSBMZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIuY3BwIHNvIHdlIGFyZSBnZXR0aW5nCi0vLyB0d28g
Y29waWVzIG9mIHRoZSBkYXRhIGluIG1lbW9yeS4gIFdlIGNhbiBmaXggdGhpcyBieSBjaGFuZ2lu
ZyB0aGUgc2NyaXB0Ci0vLyB0aGF0IGdlbmVyYXRlZCB0aGUgYXJyYXkgdG8gY3JlYXRlIGEgc3Rh
dGljIGNvbnN0IHRoYXQgaXMgaXRzIGxlbmd0aCwgYnV0Ci0vLyB0aGlzIGlzIGxvdyBwcmlvcml0
eSBzaW5jZSB0aGUgZGF0YSBpcyBsZXNzIHRoYW4gNEsuIFdlIHVzZSBhbm9ueW1vdXMKLS8vIG5h
bWVzcGFjZSB0byBwcmV2ZW50IG5hbWUgY29sbGlzaW9ucy4KLSNpbmNsdWRlICJIVE1MRW50aXR5
TmFtZXMuY3BwIiAvLyBOT0xJTlQKLX0KLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgcG9w
dWxhdGVNYXAoV1RGOjpIYXNoTWFwPGludCwgV2ViQ29yZTo6U3RyaW5nPiYgbWFwLApAQCAtOTEs
OCArODIsOCBAQCBXZWJFbnRpdGllczo6V2ViRW50aXRpZXMoYm9vbCB4bWxFbnRpdGllcykKICAg
ICAgICAgICAgICAgICAgICAgZmFsc2UpOwogICAgIGVsc2UKICAgICAgICAgcG9wdWxhdGVNYXAo
bV9lbnRpdGllc01hcCwKLSAgICAgICAgICAgICAgICAgICAgd29yZGxpc3QsCi0gICAgICAgICAg
ICAgICAgICAgIHNpemVvZih3b3JkbGlzdCkgLyBzaXplb2YoRW50aXR5KSwKKyAgICAgICAgICAg
ICAgICAgICAgd29yZExpc3QoKSwKKyAgICAgICAgICAgICAgICAgICAgd29yZExpc3RTaXplKCks
CiAgICAgICAgICAgICAgICAgICAgIHRydWUpOwogfQogCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQv
Q2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA3Mjc1NjQyLi5hODllYmE5IDEw
MDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNCBAQAorMjAxMC0wOC0wOSAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VW5kZWZpbmVkIHJlZmVyZW5jZSBlcnJvcnMgd2hlbiBsaW5raW5nIGR1ZSB0byBncGVyZiBhbmQg
aW5saW5pbmcuCisgICAgICAgIHdlYmtpdC5vcmcvYi8yOTI0NAorCisgICAgICAgIEVGTCBDTWFr
ZSBjaGFuZ2VzIGJ5IExlYW5kcm8gUGVyZWlyYSA8bGVhbmRyb0Bwcm9mdXNpb24ubW9iaT4gCisK
KyAgICAgICAgUmVmYWN0b3IgZ3BlcmYgY29kZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0byBmaXgg
dGhlIGRlYnVnIGJ1aWxkIHdpdGggZ2NjPjQuNC4KKyAgICAgICAgSGl0aGVydG8gZ3BlcmYgZ2Vu
ZXJhdGVkIEMgY29kZSwgdGhlc2UgZmlsZXMgd2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBDKysg
ZmlsZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAgICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFsaXR5
IHByb3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGluIGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBuZXdl
ciBnY2MgdmVyc2lvbnMKKyAgICAgICAgYmVjYXVzZSBvZiBhIGJlaGF2aW91ciBjaGFuZ2Ugb2Yg
Z2NjLCB3aGljaCBkaXNhYmxlcyBDIHN0eWxlIGlubGluaW5nIGluIGRlYnVnIG1vZGUuCisgICAg
ICAgIFRoZSBtYWtlLWhhc2gtdG9vbHMucGwgc2NyaXB0IGxldHMgZ3BlcmYgZ2VuZXJhdGUgQysr
IGNvZGUgZm9yIGFsbCBncGVyZiBmaWxlcyBub3csIHdoaWNoIGFyZSBjb21waWxlZAorICAgICAg
ICBpbiB0aGVpciBvd24gY29tcGlsYXRpb24gdW5pdC4KKyAgICAgICAgVGhlIGZ1bmN0aW9uYWxp
dHkgcHJvdmlkZWQgYnkgdGhlIGdlbmVyYXRlZCBjb2RlIGlzIHdyYXBwZWQgYmVoaW5kIEhhc2hU
b29scy5oLCBzbyB0aGVyZSBpcyBubyBuZWVkCisgICAgICAgIGZvciBtdWx0aXBsZSBpbmNsdXNp
b25zIG9mIGdlbmVyYXRlZCBDIGZpbGVzIHRvIGFjY2VzcyB0aGVzZSBmdW5jdGlvbnMuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbik6CisKIDIwMTAtMDgt
MDggIEFyaXlhIEhpZGF5YXQgIDxhcml5YUBzZW5jaGEuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFudG9uaW8gR29tZXMuCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRRdC5jcHAKaW5kZXggMTA2MDAyMy4uM2Q5MWQ1NSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMTQwNyw3ICsx
NDA3LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBs
dWdpbihjb25zdCBJbnRTaXplJiBwbHVnaW5TaXplLAogICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG51bXFTdHlsZVNoZWV0UHJvcGVydGllczsgKytpKSB7CiAgICAgICAgICAg
ICAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSA9IHFzdHlsZVNoZWV0UHJvcGVydGllc1tpXTsK
IAotICAgICAgICAgICAgICAgIHN0eWxlU2hlZXQgKz0gUVN0cmluZzo6ZnJvbUxhdGluMSg6Omdl
dFByb3BlcnR5TmFtZShwcm9wZXJ0eSkpOworICAgICAgICAgICAgICAgIHN0eWxlU2hlZXQgKz0g
UVN0cmluZzo6ZnJvbUxhdGluMShnZXRQcm9wZXJ0eU5hbWUocHJvcGVydHkpKTsKICAgICAgICAg
ICAgICAgICBzdHlsZVNoZWV0ICs9IFFMYXRpbjFDaGFyKCc6Jyk7CiAgICAgICAgICAgICAgICAg
c3R5bGVTaGVldCArPSBjb21wdXRlZFN0eWxlKGVsZW1lbnQpLT5nZXRQcm9wZXJ0eVZhbHVlKHBy
b3BlcnR5KTsKICAgICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9IFFMYXRpbjFDaGFyKCc7Jyk7
CmRpZmYgLS1naXQgYS9jbWFrZS9XZWJLaXRHZW5lcmF0b3JzLmNtYWtlIGIvY21ha2UvV2ViS2l0
R2VuZXJhdG9ycy5jbWFrZQppbmRleCA1MGM5MDc3Li41ZDNiODZkIDEwMDY0NAotLS0gYS9jbWFr
ZS9XZWJLaXRHZW5lcmF0b3JzLmNtYWtlCisrKyBiL2NtYWtlL1dlYktpdEdlbmVyYXRvcnMuY21h
a2UKQEAgLTIsNyArMiw2IEBACiAjIEl0IHdpbGwgY2hlY2sgZm9yIHRoZSBwcm9ncmFtcyBhbmQg
ZGVmaW5lIHRoZSBnaXZlbiBleGVjdXRhYmxlczoKICMgICAgUEVSTF9FWEVDVVRBQkxFCiAjICAg
IEJJU09OX0VYRUNVVEFCTEUKLSMgICAgR1BFUkZfRVhFQ1VUQUJMRQogIyAgICBGTEVYX0VYRUNV
VEFCTEUKIAogSU5DTFVERSAoV2ViS2l0RlMpCkBAIC02OSwyNSArNjgsMjQgQEAgTUFDUk8oR0VO
RVJBVEVfR1JBTU1BUiBfcHJlZml4IF9zb3VyY2UpCiBFTkRNQUNSTyAoKQogCiAKLUZJTkRfUFJP
R1JBTShHUEVSRl9FWEVDVVRBQkxFIGdwZXJmKQotSUYgKE5PVCBHUEVSRl9FWEVDVVRBQkxFKQot
ICBNRVNTQUdFKEZBVEFMX0VSUk9SICJNaXNzaW5nIGdwZXJmIikKLUVORElGICgpCi1GSU5EX1BB
Q0tBR0VfSEFORExFX1NUQU5EQVJEX0FSR1MoR1BlcmYgREVGQVVMVF9NU0cgR1BFUkZfRVhFQ1VU
QUJMRSkKLVNFVChQRVJGX0hBU0hfR0VORVJBVE9SICR7V0VCQ09SRV9ESVJ9L21ha2UtaGFzaC10
b29scy5wbCkKLQogIyAtIENyZWF0ZSBwZXJmZWN0IGhhc2ggdGFibGVzIHVzaW5nIGdwZXJmCi0j
IEdFTkVSQVRFX0dQRVJGKGV4dGVuc2lvbiBzb3VyY2VfZmlsZSkKLSMKLSMgVGhlIGdlbmVyYXRl
ZCBmaWxlcyBsaXZlcyBpbiAke0RFUklWRURfU09VUkNFU19ESVJ9IGFuZCBlbmRzIGluIC5jcHAK
LU1BQ1JPKEdFTkVSQVRFX0dQRVJGIF9zb3VyY2UpCitNQUNSTyhNQUtFX0hBU0hfVE9PTFMgX3Nv
dXJjZSkKICAgR0VUX0ZJTEVOQU1FX0NPTVBPTkVOVChfbmFtZSAke19zb3VyY2V9IE5BTUVfV0Up
CisgIAorICBJRiAoJHtfc291cmNlfSBTVFJFUVVBTCAiSFRNTEVudGl0eU5hbWVzIikKKyAgICBT
RVQoX2hhc2hfdG9vbHNfaCAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9IYXNoVG9vbHMuaCIpCisg
IEVMU0UgKCkKKyAgICBTRVQoX2hhc2hfdG9vbHNfaCAiIikKKyAgRU5ESUYgKCkKKwogICBBRERf
Q1VTVE9NX0NPTU1BTkQoCi0gICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vJHtfbmFt
ZX0uY3BwCi0gICAgREVQRU5EUyAke19zb3VyY2V9Ci0gICAgQ09NTUFORCAke1BFUkxfRVhFQ1VU
QUJMRX0gJHtQRVJGX0hBU0hfR0VORVJBVE9SfSAke0RFUklWRURfU09VUkNFU19ESVJ9ICR7X3Nv
dXJjZX0KKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfRElSfS8ke19uYW1lfS5jcHAgJHtf
aGFzaF90b29sc19ofQorICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9E
SVJ9L21ha2UtaGFzaC10b29scy5wbCAke0RFUklWRURfU09VUkNFU19ESVJ9ICR7X3NvdXJjZX0u
Z3BlcmYKICAgICBWRVJCQVRJTSkKLUVORE1BQ1JPICgpCisKKyAgVU5TRVQoX25hbWUpCisgIFVO
U0VUKF9oYXNoX3Rvb2xzX2gpCitFTkRNQUNSTygpCiAKIAogIyBNb2R1bGVzIHRoYXQgdGhlIGJp
bmRpbmdzIGdlbmVyYXRvciBzY3JpcHRzIG1heSB1c2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63889</attachid>
            <date>2010-08-09 05:23:45 -0700</date>
            <delta_ts>2010-08-23 09:06:59 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>gperf.patch</filename>
            <type>text/plain</type>
            <size>34403</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDY0OTc2
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDgt
MDkgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuZGVmaW5lZCByZWZlcmVuY2UgZXJyb3Jz
IHdoZW4gbGlua2luZyBkdWUgdG8gZ3BlcmYgYW5kIGlubGluaW5nLgorICAgICAgICB3ZWJraXQu
b3JnL2IvMjkyNDQKKworICAgICAgICBFRkwgQ01ha2UgY2hhbmdlcyBieSBMZWFuZHJvIFBlcmVp
cmEgPGxlYW5kcm9AcHJvZnVzaW9uLm1vYmk+IAorCisgICAgICAgIFJlZmFjdG9yIGdwZXJmIGNv
ZGUgZ2VuZXJhdGlvbiBhbmQgdXNhZ2UgdG8gZml4IHRoZSBkZWJ1ZyBidWlsZCB3aXRoIGdjYz40
LjQuCisgICAgICAgIEhpdGhlcnRvIGdwZXJmIGdlbmVyYXRlZCBDIGNvZGUsIHRoZXNlIGZpbGVz
IHdlcmUgaW5jbHVkZWQgaW4gbXVsdGlwbGUgQysrIGZpbGVzIGFjcm9zcyBXZWJDb3JlCisgICAg
ICAgIHRvIGFjY2VzcyB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZC4gVGhpcyByZXN1bHRlZCBp
biBkZWJ1ZyBidWlsZCBmYWlsdXJlIHdpdGggbmV3ZXIgZ2NjIHZlcnNpb25zCisgICAgICAgIGJl
Y2F1c2Ugb2YgYSBiZWhhdmlvdXIgY2hhbmdlIG9mIGdjYywgd2hpY2ggZGlzYWJsZXMgQyBzdHls
ZSBpbmxpbmluZyBpbiBkZWJ1ZyBtb2RlLgorICAgICAgICBUaGUgbWFrZS1oYXNoLXRvb2xzLnBs
IHNjcmlwdCBsZXRzIGdwZXJmIGdlbmVyYXRlIEMrKyBjb2RlIGZvciBhbGwgZ3BlcmYgZmlsZXMg
bm93LCB3aGljaCBhcmUgY29tcGlsZWQKKyAgICAgICAgaW4gdGhlaXIgb3duIGNvbXBpbGF0aW9u
IHVuaXQuCisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoZSBnZW5lcmF0
ZWQgY29kZSBpcyB3cmFwcGVkIGJlaGluZCBIYXNoVG9vbHMuaCwgc28gdGhlcmUgaXMgbm8gbmVl
ZAorICAgICAgICBmb3IgbXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQgQyBmaWxlcyB0
byBhY2Nlc3MgdGhlc2UgZnVuY3Rpb25zLgorCisgICAgICAgICogY21ha2UvV2ViS2l0R2VuZXJh
dG9ycy5jbWFrZToKKwogMjAxMC0wOC0wNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJv
dEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjY0OTA0LgpJ
bmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDY0OTc2KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSw0MSBAQAorMjAxMC0wOC0wOSAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5k
ZWZpbmVkIHJlZmVyZW5jZSBlcnJvcnMgd2hlbiBsaW5raW5nIGR1ZSB0byBncGVyZiBhbmQgaW5s
aW5pbmcuCisgICAgICAgIHdlYmtpdC5vcmcvYi8yOTI0NAorCisgICAgICAgIEVGTCBDTWFrZSBj
aGFuZ2VzIGJ5IExlYW5kcm8gUGVyZWlyYSA8bGVhbmRyb0Bwcm9mdXNpb24ubW9iaT4gCisKKyAg
ICAgICAgUmVmYWN0b3IgZ3BlcmYgY29kZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0byBmaXggdGhl
IGRlYnVnIGJ1aWxkIHdpdGggZ2NjPjQuNC4KKyAgICAgICAgSGl0aGVydG8gZ3BlcmYgZ2VuZXJh
dGVkIEMgY29kZSwgdGhlc2UgZmlsZXMgd2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBDKysgZmls
ZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAgICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFsaXR5IHBy
b3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGluIGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBuZXdlciBn
Y2MgdmVyc2lvbnMKKyAgICAgICAgYmVjYXVzZSBvZiBhIGJlaGF2aW91ciBjaGFuZ2Ugb2YgZ2Nj
LCB3aGljaCBkaXNhYmxlcyBDIHN0eWxlIGlubGluaW5nIGluIGRlYnVnIG1vZGUuCisgICAgICAg
IFRoZSBtYWtlLWhhc2gtdG9vbHMucGwgc2NyaXB0IGxldHMgZ3BlcmYgZ2VuZXJhdGUgQysrIGNv
ZGUgZm9yIGFsbCBncGVyZiBmaWxlcyBub3csIHdoaWNoIGFyZSBjb21waWxlZAorICAgICAgICBp
biB0aGVpciBvd24gY29tcGlsYXRpb24gdW5pdC4KKyAgICAgICAgVGhlIGZ1bmN0aW9uYWxpdHkg
cHJvdmlkZWQgYnkgdGhlIGdlbmVyYXRlZCBjb2RlIGlzIHdyYXBwZWQgYmVoaW5kIEhhc2hUb29s
cy5oLCBzbyB0aGVyZSBpcyBubyBuZWVkCisgICAgICAgIGZvciBtdWx0aXBsZSBpbmNsdXNpb25z
IG9mIGdlbmVyYXRlZCBDIGZpbGVzIHRvIGFjY2VzcyB0aGVzZSBmdW5jdGlvbnMuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUucHJpOgor
ICAgICAgICAqIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NQ
YXJzZXIuY3BwOgorICAgICAgICAqIGNzcy9tYWtlcHJvcC5wbDoKKyAgICAgICAgKiBjc3MvbWFr
ZXZhbHVlcy5wbDoKKyAgICAgICAgKiBodG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmOgorICAgICAg
ICAqIGh0bWwvSFRNTERvY3VtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxFbnRpdHlOYW1l
cy5ncGVyZjoKKyAgICAgICAgKiBodG1sL0hUTUxFbnRpdHlQYXJzZXIuY3BwOgorICAgICAgICAq
IGh0bWwvTGVnYWN5SFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKiBodG1sL0xlZ2Fj
eVByZWxvYWRTY2FubmVyLmNwcDoKKyAgICAgICAgKiBtYWtlLWhhc2gtdG9vbHMucGw6CisgICAg
ICAgICogcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0NvbG9yLmNwcDoKKwogMjAxMC0wOC0wOSAgRHVtaXRydSBEYW5pbGl1YyAgPGR1bWlAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeGluZyB0aGUgYnVpbGRzIGFmdGVy
IHI2NDk2Ny4KSW5kZXg6IFdlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gNjQ5NzYpCisrKyBXZWJDb3JlL0NNYWtlTGlz
dHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MzEsNiArNTMxLDEwIEBAIFNFVChXZWJDb3JlX1NP
VVJDRVMKICAgICAke0RFUklWRURfU09VUkNFU19ESVJ9L0NTU0dyYW1tYXIuY3BwCiAgICAgJHtE
RVJJVkVEX1NPVVJDRVNfRElSfS9IVE1MRWxlbWVudEZhY3RvcnkuY3BwCiAgICAgJHtERVJJVkVE
X1NPVVJDRVNfRElSfS9IVE1MRW50aXR5TmFtZXMuY3BwCisgICAgJHtERVJJVkVEX1NPVVJDRVNf
RElSfS9Eb2NUeXBlU3RyaW5ncy5jcHAKKyAgICAke0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Zh
bHVlS2V5d29yZHMuY3BwCisgICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5h
bWVzLmNwcAorICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vQ29sb3JEYXRhLmNwcAogICAgICR7
REVSSVZFRF9TT1VSQ0VTX0RJUn0vSFRNTE5hbWVzLmNwcAogICAgICR7REVSSVZFRF9TT1VSQ0VT
X0RJUn0vSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAogICAgICR7REVSSVZFRF9TT1VS
Q0VTX0RJUn0vTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwCkBAIC0xODIxLDkgKzE4MjUsMTEgQEAg
R0VORVJBVEVfSU5TUEVDVE9SX0ZST01fSURMKGluc3BlY3Rvci9JbgogCiBMSVNUKEFQUEVORCBX
ZWJDb3JlX1NPVVJDRVMgJHtKU19JRExfRklMRVN9ICR7SW5zcGVjdG9yX0lETF9GSUxFU30pCiAK
LUdFTkVSQVRFX0dQRVJGKCR7V0VCQ09SRV9ESVJ9L2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJm
KQotR0VORVJBVEVfR1BFUkYoJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJm
KQotR0VORVJBVEVfR1BFUkYoJHtXRUJDT1JFX0RJUn0vaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVy
ZikKK01BS0VfSEFTSF9UT09MUygke1dFQkNPUkVfRElSfS9odG1sL0hUTUxFbnRpdHlOYW1lcykK
K01BS0VfSEFTSF9UT09MUygke1dFQkNPUkVfRElSfS9odG1sL0RvY1R5cGVTdHJpbmdzKQorTUFL
RV9IQVNIX1RPT0xTKCR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTVmFsdWVLZXl3b3JkcykKK01B
S0VfSEFTSF9UT09MUygke0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnR5TmFtZXMpCitN
QUtFX0hBU0hfVE9PTFMoJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vQ29sb3JEYXRhKQogCiBHRU5F
UkFURV9UT0tFTklaRVIoKQogR0VORVJBVEVfVVNFUl9BR0VOVF9TVFlMRVMoKQpAQCAtMTgzNCw2
ICsxODQwLDcgQEAgR0VORVJBVEVfR1JBTU1BUih4cGF0aHl5ICR7V0VCQ09SRV9ESVJ9LwogR0VO
RVJBVEVfQ1NTX1BST1BFUlRZX05BTUVTKCkKIEdFTkVSQVRFX0NTU19WQUxVRV9LRVlXT1JEUygp
CiAKK0FERF9TT1VSQ0VfREVSSVZFRF9ERVBFTkRFTkNJRVMoJHtERVJJVkVEX1NPVVJDRVNfRElS
fS9IYXNoVG9vbHMuaCBIVE1MRW50aXR5TmFtZXMuY3BwIERvY1R5cGVTdHJpbmdzLmNwcCBDU1NW
YWx1ZUtleXdvcmRzLmNwcCBDU1NQcm9wZXJ0eU5hbWVzLmNwcCBDb2xvckRhdGEuY3BwKQogQURE
X1NPVVJDRV9ERVJJVkVEX0RFUEVOREVOQ0lFUygke0RFUklWRURfU09VUkNFU19ESVJ9L0NTU0dy
YW1tYXIuY3BwIENTU1ZhbHVlS2V5d29yZHMuaCkKIEFERF9TT1VSQ0VfREVSSVZFRF9ERVBFTkRF
TkNJRVMoJHtERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NHcmFtbWFyLmNwcCBDU1NQcm9wZXJ0eU5h
bWVzLmgpCiBBRERfU09VUkNFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7V0VCQ09SRV9ESVJ9L2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggQ1NTVmFsdWVLZXl3b3Jkcy5oKQpJbmRleDog
V2ViQ29yZS9XZWJDb3JlLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJpCShy
ZXZpc2lvbiA2NDk3NikKKysrIFdlYkNvcmUvV2ViQ29yZS5wcmkJKHdvcmtpbmcgY29weSkKQEAg
LTcwNyw3ICs3MDcsNyBAQCBjc3Nwcm9wcy53a1NjcmlwdCA9ICQkUFdEL2Nzcy9tYWtlcHJvcC5w
CiBjc3Nwcm9wcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0NTU1Byb3Bl
cnR5TmFtZXMuY3BwCiBjc3Nwcm9wcy5pbnB1dCA9IFdBTERPQ1NTUFJPUFMKIGNzc3Byb3BzLmNv
bW1hbmRzID0gcGVybCAtbmUgXCJwcmludCBsY1wiICR7UU1BS0VfRklMRV9OQU1FfSAkJHtEQVNI
Qk9BUkRTVVBQT1JUQ1NTUFJPUEVSVElFU30gJCR7RVhUUkFDU1NQUk9QRVJUSUVTfSA+ICQke1dD
X0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9LmluICYmIGNkICQkV0Nf
R0VORVJBVEVEX1NPVVJDRVNfRElSICYmIHBlcmwgJCRjc3Nwcm9wcy53a1NjcmlwdCAmJiAkKERF
TF9GSUxFKSAke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJHtRTUFLRV9GSUxFX0JBU0V9LmdwZXJmCi1j
c3Nwcm9wcy5kZXBlbmRzID0gJHtRTUFLRV9GSUxFX05BTUV9ICQke0RBU0hCT0FSRFNVUFBPUlRD
U1NQUk9QRVJUSUVTfSAkJHtFWFRSQUNTU1BST1BFUlRJRVN9Citjc3Nwcm9wcy5kZXBlbmRzID0g
JHtRTUFLRV9GSUxFX05BTUV9ICQke0RBU0hCT0FSRFNVUFBPUlRDU1NQUk9QRVJUSUVTfSAkJHtF
WFRSQUNTU1BST1BFUlRJRVN9ICQkY3NzcHJvcHMud2tTY3JpcHQKIGFkZEV4dHJhQ29tcGlsZXIo
Y3NzcHJvcHMpCiAKICMgR0VORVJBVE9SIDYtQjoKQEAgLTcxNSw3ICs3MTUsNyBAQCBjc3N2YWx1
ZXMud2tTY3JpcHQgPSAkJFBXRC9jc3MvbWFrZXZhbHVlCiBjc3N2YWx1ZXMub3V0cHV0ID0gJCR7
V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9DU1NWYWx1ZUtleXdvcmRzLmNwcAogY3NzdmFsdWVz
LmlucHV0ID0gV0FMRE9DU1NWQUxVRVMKIGNzc3ZhbHVlcy5jb21tYW5kcyA9IHBlcmwgLW5lIFwi
cHJpbnQgbGNcIiAke1FNQUtFX0ZJTEVfTkFNRX0gJCRFWFRSQUNTU1ZBTFVFUyA+ICQke1dDX0dF
TkVSQVRFRF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9LmluICYmIGNkICQkV0NfR0VO
RVJBVEVEX1NPVVJDRVNfRElSICYmIHBlcmwgJCRjc3N2YWx1ZXMud2tTY3JpcHQgJiYgJChERUxf
RklMRSkgJHtRTUFLRV9GSUxFX0JBU0V9LmluICR7UU1BS0VfRklMRV9CQVNFfS5ncGVyZgotY3Nz
dmFsdWVzLmRlcGVuZHMgPSAke1FNQUtFX0ZJTEVfTkFNRX0gJCR7RVhUUkFDU1NWQUxVRVN9Citj
c3N2YWx1ZXMuZGVwZW5kcyA9ICR7UU1BS0VfRklMRV9OQU1FfSAkJHtFWFRSQUNTU1ZBTFVFU30g
JCRjc3N2YWx1ZXMud2tTY3JpcHQKIGNzc3ZhbHVlcy5jbGVhbiA9ICR7UU1BS0VfRklMRV9PVVR9
ICR7UU1BS0VfVkFSX1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vJHtRTUFLRV9GSUxFX0JBU0V9
LmgKIGFkZEV4dHJhQ29tcGlsZXIoY3NzdmFsdWVzKQogCkluZGV4OiBXZWJDb3JlL21ha2UtaGFz
aC10b29scy5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL21ha2UtaGFzaC10b29scy5wbAkocmV2
aXNpb24gNjQ5NzYpCisrKyBXZWJDb3JlL21ha2UtaGFzaC10b29scy5wbAkod29ya2luZyBjb3B5
KQpAQCAtMjYsMzUgKzI2LDE4MSBAQCB1c2UgRmlsZTo6QmFzZW5hbWU7CiBteSAkb3V0ZGlyID0g
JEFSR1ZbMF07CiBzaGlmdDsKIG15ICRvcHRpb24gPSBiYXNlbmFtZSgkQVJHVlswXSwiLmdwZXJm
Iik7CitteSAkaGFzaFRvb2xzSGVhZGVyID0gIiRvdXRkaXIvSGFzaFRvb2xzLmgiOworCitzdWIg
Y3JlYXRlSGFzaFRvb2xzSGVhZGVyKCkgeworCitvcGVuIEhFQURFUiwgIj4kaGFzaFRvb2xzSGVh
ZGVyIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRoYXNoVG9vbHNIZWFkZXIgZm9yIHdyaXRpbmci
OworcHJpbnQgSEVBREVSIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkg
Z2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKworI2lmbmRl
ZiBIYXNoVG9vbHNfaAorI2RlZmluZSBIYXNoVG9vbHNfaAorCisjaW5jbHVkZSAid3RmL1BsYXRm
b3JtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEVudGl0eSB7CisgICAgY29u
c3QgY2hhciogbmFtZTsKKyAgICBpbnQgY29kZTsKK307CisKK3N0cnVjdCBQdWJJREluZm8gewor
ICAgIGVudW0gZU1vZGUgeworICAgICAgICBlUXVpcmtzLAorICAgICAgICBlUXVpcmtzMywKKyAg
ICAgICAgZUFsbW9zdFN0YW5kYXJkcworICAgIH07CisKKyAgICBjb25zdCBjaGFyKiBuYW1lOwor
ICAgIGVNb2RlIG1vZGVfaWZfbm9fc3lzaWQ7CisgICAgZU1vZGUgbW9kZV9pZl9zeXNpZDsKK307
CisKK3N0cnVjdCBOYW1lZENvbG9yIHsKKyAgICBjb25zdCBjaGFyKiBuYW1lOworICAgIGludCBS
R0JWYWx1ZTsKK307CisKK3N0cnVjdCBQcm9wZXJ0eSB7CisgICAgY29uc3QgY2hhciogbmFtZTsK
KyAgICBpbnQgaWQ7Cit9OworCitzdHJ1Y3QgVmFsdWUgeworICAgIGNvbnN0IGNoYXIqIG5hbWU7
CisgICAgaW50IGlkOworfTsKKworY29uc3QgRW50aXR5KiBmaW5kRW50aXR5KHJlZ2lzdGVyIGNv
bnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbik7Citjb25zdCBQdWJJRElu
Zm8qIGZpbmREb2N0eXBlRW50cnkocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1
bnNpZ25lZCBpbnQgbGVuKTsKK2NvbnN0IE5hbWVkQ29sb3IqIGZpbmRDb2xvcihyZWdpc3RlciBj
b25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pOworY29uc3QgUHJvcGVy
dHkqIGZpbmRQcm9wZXJ0eShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2ln
bmVkIGludCBsZW4pOworY29uc3QgVmFsdWUqIGZpbmRWYWx1ZShyZWdpc3RlciBjb25zdCBjaGFy
KiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pOworCisjaWYgUExBVEZPUk0oQ0hST01J
VU0pCisKK2NvbnN0IEVudGl0eSogd29yZExpc3QoKTsKK2NvbnN0IGludCB3b3JkTGlzdFNpemUo
KTsKKworI2VuZGlmCisKK30KKworI2VuZGlmIC8vIEhhc2hUb29sc19oCisKK0VPRgorY2xvc2Ug
SEVBREVSOworCit9CisKKwogCiBzd2l0Y2ggKCRvcHRpb24pIHsKIAogY2FzZSAiSFRNTEVudGl0
eU5hbWVzIiB7CiAKLSAgICBteSAkaHRtbEVudGl0eU5hbWVzR2VuZXJhdGVkICAgPSAiJG91dGRp
ci9IVE1MRW50aXR5TmFtZXMuY3BwIjsKKyAgICBjcmVhdGVIYXNoVG9vbHNIZWFkZXIoKTsKKwor
ICAgIG15ICRodG1sRW50aXR5TmFtZXNJbXBsICAgICAgICA9ICIkb3V0ZGlyL0hUTUxFbnRpdHlO
YW1lcy5jcHAiOworICAgIG15ICRodG1sRW50aXR5TmFtZXNHZW5lcmF0ZWQgICA9ICIkb3V0ZGly
L0hUTUxFbnRpdHlOYW1lc0hhc2guaCI7CiAgICAgbXkgJGh0bWxFbnRpdHlOYW1lc0dwZXJmICAg
ICAgID0gJEFSR1ZbMF07CiAgICAgc2hpZnQ7CiAKKyAgICBvcGVuIEVOVElUSUVTLCAiPiRodG1s
RW50aXR5TmFtZXNJbXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRodG1sRW50aXR5TmFtZXNJ
bXBsIGZvciB3cml0aW5nIjsKKyAgICBwcmludCBFTlRJVElFUyA8PCAiRU9GIjsKKy8qIFRoaXMg
ZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRv
IG5vdCBlZGl0ICovCisKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworI2luY2x1ZGUgIkhUTUxFbnRpdHlOYW1lc0hhc2guaCIKKworY29uc3QgRW50aXR5KiBm
aW5kRW50aXR5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50
IGxlbikKK3sKKyAgICByZXR1cm4gSFRNTEVudGl0eUhhc2g6OmZpbmRFbnRpdHlJbXBsKHN0ciwg
bGVuKTsKK30KKworI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorCitjb25zdCBFbnRpdHkqIHdvcmRM
aXN0KCkKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6ZW50aXR5X3dvcmRsaXN0OworfQorCitjb25z
dCBpbnQgd29yZExpc3RTaXplKCkKK3sKKyAgICByZXR1cm4gc2l6ZW9mKFdlYkNvcmU6OmVudGl0
eV93b3JkbGlzdCkgLyBzaXplb2YoRW50aXR5KTsKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENI
Uk9NSVVNKQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK0VPRgorICAgIGNsb3NlIEVOVElU
SUVTOworCiAgICAgc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLXMgMiAk
aHRtbEVudGl0eU5hbWVzR3BlcmYgPiAkaHRtbEVudGl0eU5hbWVzR2VuZXJhdGVkIikgPT0gMCB8
fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKIH0gIyBjYXNlICJIVE1MRW50aXR5
TmFtZXMiCiAKIGNhc2UgIkRvY1R5cGVTdHJpbmdzIiB7CiAKLSAgICBteSAkZG9jVHlwZVN0cmlu
Z3NHZW5lcmF0ZWQgICAgPSAiJG91dGRpci9Eb2NUeXBlU3RyaW5ncy5jcHAiOworICAgIG15ICRk
b2NUeXBlU3RyaW5nc0ltcGwgICAgICAgICA9ICIkb3V0ZGlyL0RvY1R5cGVTdHJpbmdzLmNwcCI7
CisgICAgbXkgJGRvY1R5cGVTdHJpbmdzR2VuZXJhdGVkICAgID0gIiRvdXRkaXIvRG9jVHlwZVN0
cmluZ3NIYXNoLmgiOwogICAgIG15ICRkb2NUeXBlU3RyaW5nc0dwZXJmICAgICAgICA9ICRBUkdW
WzBdOwogICAgIHNoaWZ0OwogCisgICAgb3BlbiBET0NUWVBFU1RSSU5HUywgIj4kZG9jVHlwZVN0
cmluZ3NJbXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRkb2NUeXBlU3RyaW5nc0ltcGwgZm9y
IHdyaXRpbmciOworICAgIHByaW50IERPQ1RZUEVTVFJJTkdTIDw8ICJFT0YiOworLyogVGhpcyBm
aWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8g
bm90IGVkaXQgKi8KKworI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisjaW5jbHVkZSAiRG9jVHlwZVN0cmluZ3NIYXNoLmgiCisKK2NvbnN0IFB1YklESW5mbyog
ZmluZERvY3R5cGVFbnRyeSAocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNp
Z25lZCBpbnQgbGVuKQoreworICAgIHJldHVybiBEb2NUeXBlU3RyaW5nc0hhc2g6OmZpbmREb2N0
eXBlRW50cnlJbXBsKHN0ciwgbGVuKTsKK30KKworfQorCitFT0YKKyAgICBjbG9zZSBET0NUWVBF
U1RSSU5HUzsKKwogICAgIHN5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1zIDIg
JGRvY1R5cGVTdHJpbmdzR3BlcmYgPiAkZG9jVHlwZVN0cmluZ3NHZW5lcmF0ZWQiKSA9PSAwIHx8
IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKIAogfSAjIGNhc2UgIkRvY1R5cGVTdHJp
bmdzIgogCiBjYXNlICJDb2xvckRhdGEiIHsKIAotICAgIG15ICRjb2xvckRhdGFHZW5lcmF0ZWQg
ICA9ICIkb3V0ZGlyL0NvbG9yRGF0YS5jcHAiOwotICAgIG15ICRjb2xvckRhdGFHcGVyZiAgICAg
ICA9ICRBUkdWWzBdOworICAgIG15ICRjb2xvckRhdGFJbXBsICAgICAgICAgICAgICA9ICIkb3V0
ZGlyL0NvbG9yRGF0YS5jcHAiOworICAgIG15ICRjb2xvckRhdGFHZW5lcmF0ZWQgICAgICAgICA9
ICIkb3V0ZGlyL0NvbG9yRGF0YUhhc2guaCI7CisgICAgbXkgJGNvbG9yRGF0YUdwZXJmICAgICAg
ICAgICAgID0gJEFSR1ZbMF07CiAgICAgc2hpZnQ7CiAKKyAgICBvcGVuIENPTE9SREFUQSwgIj4k
Y29sb3JEYXRhSW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkY29sb3JEYXRhSW1wbCBmb3Ig
d3JpdGluZyI7CisgICAgcHJpbnQgQ09MT1JEQVRBIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlz
IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVk
aXQgKi8KKworI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7Cisj
aW5jbHVkZSAiQ29sb3JEYXRhSGFzaC5oIgorCitjb25zdCBzdHJ1Y3QgTmFtZWRDb2xvciogZmlu
ZENvbG9yIChyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBs
ZW4pCit7CisgICAgcmV0dXJuIENvbG9yRGF0YUhhc2g6OmZpbmRDb2xvckltcGwoc3RyLCBsZW4p
OworfQorCit9CisKK0VPRgorICAgIGNsb3NlIENPTE9SREFUQTsKKwogICAgIHN5c3RlbSgiZ3Bl
cmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1zIDIgJGNvbG9yRGF0YUdwZXJmID4gJGNvbG9y
RGF0YUdlbmVyYXRlZCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwog
CiB9ICMgY2FzZSAiQ29sb3JEYXRhIgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3Jl
Lmd5cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCShyZXZp
c2lvbiA2NDk3NikKKysrIFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJKHdvcmtpbmcg
Y29weSkKQEAgLTYwNyw3ICs2MDcsNiBAQAogICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVE
SUFURV9ESVIpL3dlYmtpdCcsCiAgICAgICAgICAgICAnPChSVUxFX0lOUFVUX1BBVEgpJywKICAg
ICAgICAgICBdLAotICAgICAgICAgICdwcm9jZXNzX291dHB1dHNfYXNfc291cmNlcyc6IDAsCiAg
ICAgICAgIH0sCiAgICAgICAgICMgUnVsZSB0byBidWlsZCBnZW5lcmF0ZWQgSmF2YVNjcmlwdCAo
VjgpIGJpbmRpbmdzIGZyb20gLmlkbCBzb3VyY2UuCiAgICAgICAgIHsKQEAgLTcwMiw2ICs3MDEs
MTMgQEAKICAgICAgICAgIyBpbiB3ZWJjb3JlX2ZpbGVzLgogICAgICAgICAnPEAoZGVyaXZlZF9z
b3VyY2VzX2FnZ3JlZ2F0ZV9maWxlcyknLAogCisgICAgICAgICMgQWRkaXRpb25hbCAuY3BwIGZp
bGVzIGZvciBIYXNoVG9vbHMuaAorICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikv
d2Via2l0L0hUTUxFbnRpdHlOYW1lcy5jcHAnLAorICAgICAgICAnPChTSEFSRURfSU5URVJNRURJ
QVRFX0RJUikvd2Via2l0L0RvY1R5cGVTdHJpbmdzLmNwcCcsCisgICAgICAgICc8KFNIQVJFRF9J
TlRFUk1FRElBVEVfRElSKS93ZWJraXQvQ29sb3JEYXRhLmNwcCcsCisgICAgICAgICc8KFNIQVJF
RF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvQ1NTUHJvcGVydHlOYW1lcy5jcHAnLAorICAgICAg
ICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L0NTU1ZhbHVlS2V5d29yZHMuY3Bw
JywKKwogICAgICAgICAjIEFkZGl0aW9uYWwgLmNwcCBmaWxlcyBmcm9tIHdlYmNvcmVfYmluZGlu
Z3Nfc291cmNlcyBhY3Rpb25zLgogICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikv
d2Via2l0L0hUTUxFbGVtZW50RmFjdG9yeS5jcHAnLAogICAgICAgICAnPChTSEFSRURfSU5URVJN
RURJQVRFX0RJUikvd2Via2l0L0hUTUxOYW1lcy5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA2NDk3NikKKysrIFdlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTU0NSw2ICs1NDUsMzAgQEAK
IAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJL
aXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xIYXNoVG9vbHMu
aCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQo
V2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSFRNTEVu
dGl0eU5hbWVzLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcRG9jVHlwZVN0cmluZ3MuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xDU1NWYWx1ZUtleXdvcmRzLmNwcCINCisJCQkJPg0KKwkJCTwvRmls
ZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcQ1NTUHJvcGVydHlOYW1lcy5jcHAiDQorCQkJ
CT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91
dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXENvbG9yRGF0YS5jcHAi
DQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdl
YktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEluc3BlY3Rv
ckJhY2tlbmREaXNwYXRjaGVyLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNjQ5NzYpCisr
KyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtNDg4LDYgKzQ4OCwxMSBAQAogCQkxQUI3RkM4NjBBOEI5MkVDMDBEOUQzN0IgLyogWFBh
dGhWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUFCN0ZDNjUwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFsdWUuaCAqLzsgfTsKIAkJMUFCN0ZD
ODcwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFCN0ZDNjYwQThCOTJFQzAw
RDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwICovOyB9OwogCQkxQUI3RkM4ODBB
OEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFCN0ZDNjcwQThCOTJFQzAwRDlEMzdC
IC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuaCAqLzsgfTsKKwkJMUFCQTc2QzkxMUQyMEU0NzAw
NEMyMDFDIC8qIENvbG9yRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNDA2RjNGQjExOTgzMDdEMDA5RDU5RDYgLyogQ29sb3JEYXRhLmNwcCAq
LzsgfTsKKwkJMUFCQTc2Q0ExMUQyMEU1MDAwNEMyMDFDIC8qIENTU1Byb3BlcnR5TmFtZXMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQxRUEwMzgx
MTk4MzZEQjAwNzEwQkM1IC8qIENTU1Byb3BlcnR5TmFtZXMuY3BwICovOyB9OworCQkxQUJBNzZD
QjExRDIwRTU3MDA0QzIwMUMgLyogQ1NTVmFsdWVLZXl3b3Jkcy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDFFQTAzOTExOTgzNzQ5MDA3MTBCQzUg
LyogQ1NTVmFsdWVLZXl3b3Jkcy5jcHAgKi87IH07CisJCTFBQkE3NkNDMTFEMjBFNUIwMDRDMjAx
QyAvKiBEb2NUeXBlU3RyaW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNDA2RjNGQTExOTgzMDREMDA5RDU5RDYgLyogRG9jVHlwZVN0cmluZ3Mu
Y3BwICovOyB9OworCQkxQUJBNzdGRDExRDIxMDMxMDA0QzIwMUMgLyogSFRNTEVudGl0eU5hbWVz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MDZG
NDAyMTE5ODMyOUEwMDlENTlENiAvKiBIVE1MRW50aXR5TmFtZXMuY3BwICovOyB9OwogCQkxQUJG
RTc1MzBDRDk2OEQwMDBGRTQ4MzQgLyogU1FMVHJhbnNhY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFCRkU3NTIwQ0Q5NjhEMDAwRkU0ODM0
IC8qIFNRTFRyYW5zYWN0aW9uLmNwcCAqLzsgfTsKIAkJMUFDMjI2MEMwREI2OUYxOTAwODlCNjY5
IC8qIEpTRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQUMyMjYwQTBEQjY5RjE5MDA4OUI2NjkgLyogSlNET01BcHBs
aWNhdGlvbkNhY2hlLmNwcCAqLzsgfTsKIAkJMUFDMjI2MEQwREI2OUYxOTAwODlCNjY5IC8qIEpT
RE9NQXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUFDMjI2MEIwREI2OUYxOTAwODlCNjY5IC8qIEpTRE9NQXBwbGljYXRpb25D
YWNoZS5oICovOyB9OwpAQCAtMjA0MjksNiArMjA0MzQsMTEgQEAKIAkJCWlzYSA9IFBCWFNvdXJj
ZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVz
ID0gKAorCQkJCTFBQkE3NkM5MTFEMjBFNDcwMDRDMjAxQyAvKiBDb2xvckRhdGEuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMUFCQTc2Q0ExMUQyMEU1MDAwNEMyMDFDIC8qIENTU1Byb3BlcnR5TmFt
ZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUFCQTc2Q0IxMUQyMEU1NzAwNEMyMDFDIC8qIENT
U1ZhbHVlS2V5d29yZHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUFCQTc2Q0MxMUQyMEU1QjAw
NEMyMDFDIC8qIERvY1R5cGVTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBQkE3N0ZE
MTFEMjEwMzEwMDRDMjAxQyAvKiBIVE1MRW50aXR5TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjVCNURDNjkxMTlCQjNENTAwMkE4NzkwIC8qIEFic3RyYWN0RGF0YWJhc2UuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDFFMUIxRDAwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2Vy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI5QTgxMjI4MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nl
c3NpYmlsaXR5QVJJQUdyaWQuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBXZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHJl
dmlzaW9uIDY0OTc2KQorKysgV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjEsNiArNjEsNyBAQAogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1
ZGUgIkZvbnRGYW1pbHlWYWx1ZS5oIgogI2luY2x1ZGUgIkZvbnRWYWx1ZS5oIgorI2luY2x1ZGUg
Ikhhc2hUb29scy5oIgogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVl
cnlFeHAuaCIKICNpbmNsdWRlICJQYWlyLmgiCkBAIC04OCw5ICs4OSw2IEBAIGV4dGVybiBpbnQg
Y3NzeXlwYXJzZSh2b2lkKiBwYXJzZXIpOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHVzaW5nIG5h
bWVzcGFjZSBXVEY7CiAKLSNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmNwcCIKLSNpbmNsdWRl
ICJDU1NWYWx1ZUtleXdvcmRzLmNwcCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgSU5WQUxJRF9OVU1fUEFSU0VEX1BST1BFUlRJRVMgPSBVSU5UX01BWDsK
SW5kZXg6IFdlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3Nz
L21ha2Vwcm9wLnBsCShyZXZpc2lvbiA2NDk3NikKKysrIFdlYkNvcmUvY3NzL21ha2Vwcm9wLnBs
CSh3b3JraW5nIGNvcHkpCkBAIC00MSwxNSArNDEsMTQgQEAgcHJpbnQgR1BFUkYgPDwgIkVPRiI7
CiAjaW5jbHVkZSBcIkNTU1Byb3BlcnR5TmFtZXMuaFwiCiAlfQogJXN0cnVjdC10eXBlCi1zdHJ1
Y3QgUHJvcGVydHkgewotICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgaW50IGlkOwotfTsKLSVs
YW5ndWFnZT1BTlNJLUMKK3N0cnVjdCBQcm9wZXJ0eTsKKyVvbWl0LXN0cnVjdC10eXBlCislbGFu
Z3VhZ2U9QysrCiAlcmVhZG9ubHktdGFibGVzCiAlZ2xvYmFsLXRhYmxlCiAlY29tcGFyZS1zdHJu
Y21wCi0lZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRQcm9wZXJ0eQorJWRlZmluZSBj
bGFzcy1uYW1lIENTU1Byb3BlcnR5TmFtZXNIYXNoCislZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1u
YW1lIGZpbmRQcm9wZXJ0eUltcGwKICVkZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1lIHByb3Blcnlf
aGFzaF9mdW5jdGlvbgogJWRlZmluZSB3b3JkLWFycmF5LW5hbWUgcHJvcGVydHlfd29yZGxpc3QK
ICVpbmNsdWRlcwpAQCAtNzIsNiArNzEsMTAgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogI2lm
bmRlZiBDU1NQcm9wZXJ0eU5hbWVzX2gKICNkZWZpbmUgQ1NTUHJvcGVydHlOYW1lc19oCiAKKyNp
bmNsdWRlIDxzdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCiBlbnVtIENTU1Byb3Bl
cnR5SUQgewogICAgIENTU1Byb3BlcnR5SW52YWxpZCA9IDAsCiBFT0YKQEAgLTk5LDE1ICsxMDIs
MTcgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogCiBjb25zdCBjaGFyKiBnZXRQcm9wZXJ0eU5h
bWUoQ1NTUHJvcGVydHlJRCk7CiAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwogI2VuZGlmIC8v
IENTU1Byb3BlcnR5TmFtZXNfaAogCiBFT0YKIAogY2xvc2UgSEVBREVSOwogCi1zeXN0ZW0oImdw
ZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtbiAtcyAyIENTU1Byb3BlcnR5TmFtZXMuZ3Bl
cmYgPiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZh
aWxlZDogJD8iOworc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLW4gLXMg
MiBDU1NQcm9wZXJ0eU5hbWVzLmdwZXJmID4gQ1NTUHJvcGVydHlOYW1lc0hhc2guaCIpID09IDAg
fHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwogCi1vcGVuIEMsICI+PkNTU1Byb3Bl
cnR5TmFtZXMuY3BwIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1Byb3BlcnR5TmFtZXMuY3Bw
IGZvciB3cml0aW5nIjsKK29wZW4gQywgIj4+Q1NTUHJvcGVydHlOYW1lc0hhc2guaCIgfHwgZGll
ICJDb3VsZCBub3Qgb3BlbiBDU1NQcm9wZXJ0eU5hbWVzSGFzaC5oIGZvciB3cml0aW5nIjsKIHBy
aW50IEMgInN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcHJvcGVydHlOYW1lU3RyaW5nc1skbnVt
XSA9IHtcbiI7CiAKIGZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgewpAQCAtMTE2LDYgKzEyMSwy
OSBAQCBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKIAogcHJpbnQgQyA8PCAiRU9GIjsKIH07
CisKK0VPRgorCitjbG9zZSBDOworCitteSAkcHJvcGVydHlOYW1lc0ltcGwgPSAiQ1NTUHJvcGVy
dHlOYW1lcy5jcHAiOworCitvcGVuIFBST1BFUlRZTkFNRVMsICI+JHByb3BlcnR5TmFtZXNJbXBs
IiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRwcm9wZXJ0eU5hbWVzSW1wbCBmb3Igd3JpdGluZyI7
CitwcmludCBQUk9QRVJUWU5BTUVTIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRp
Y2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKwor
CisjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lc0hhc2guaCIK
KworY29uc3QgUHJvcGVydHkqIGZpbmRQcm9wZXJ0eSAocmVnaXN0ZXIgY29uc3QgY2hhciogc3Ry
LCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHJldHVybiBDU1NQcm9wZXJ0eU5h
bWVzSGFzaDo6ZmluZFByb3BlcnR5SW1wbChzdHIsIGxlbik7Cit9CisKIGNvbnN0IGNoYXIqIGdl
dFByb3BlcnR5TmFtZShDU1NQcm9wZXJ0eUlEIGlkKQogewogICAgIGlmIChpZCA8IGZpcnN0Q1NT
UHJvcGVydHkpCkBAIC0xMjUsNyArMTUzLDEwIEBAIGNvbnN0IGNoYXIqIGdldFByb3BlcnR5TmFt
ZShDU1NQcm9wZXJ0eUkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIHByb3BlcnR5TmFt
ZVN0cmluZ3NbaW5kZXhdOwogfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKIEVPRgogCi1j
bG9zZSBDOworY2xvc2UgUFJPUEVSVFlOQU1FUzsKIApJbmRleDogV2ViQ29yZS9jc3MvbWFrZXZh
bHVlcy5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCShyZXZpc2lv
biA2NDk3NikKKysrIFdlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwJKHdvcmtpbmcgY29weSkKQEAg
LTQyLDE0ICs0MiwxMyBAQCBwcmludCBHUEVSRiA8PCAiRU9GIjsKICNpbmNsdWRlIFwiQ1NTVmFs
dWVLZXl3b3Jkcy5oXCIKICV9CiAlc3RydWN0LXR5cGUKLXN0cnVjdCBWYWx1ZSB7Ci0gICAgY29u
c3QgY2hhciogbmFtZTsKLSAgICBpbnQgaWQ7Ci19OwotJWxhbmd1YWdlPUFOU0ktQworc3RydWN0
IFZhbHVlOworJW9taXQtc3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysKICVyZWFkb25seS10YWJs
ZXMKICVjb21wYXJlLXN0cm5jbXAKLSVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZFZh
bHVlCislZGVmaW5lIGNsYXNzLW5hbWUgQ1NTVmFsdWVLZXl3b3Jkc0hhc2gKKyVkZWZpbmUgbG9v
a3VwLWZ1bmN0aW9uLW5hbWUgZmluZFZhbHVlSW1wbAogJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5h
bWUgdmFsdWVfaGFzaF9mdW5jdGlvbgogJWRlZmluZSB3b3JkLWFycmF5LW5hbWUgdmFsdWVfd29y
ZF9saXN0CiAlaW5jbHVkZXMKQEAgLTcyLDYgKzcxLDEwIEBAIHByaW50IEhFQURFUiA8PCAiRU9G
IjsKICNpZm5kZWYgQ1NTVmFsdWVLZXl3b3Jkc19oCiAjZGVmaW5lIENTU1ZhbHVlS2V5d29yZHNf
aAogCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwogY29uc3Qg
aW50IENTU1ZhbHVlSW52YWxpZCA9IDA7CiBFT0YKIApAQCAtOTIsMTMgKzk1LDE2IEBAIHByaW50
IEhFQURFUiA8PCAiRU9GIjsKIAogY29uc3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNo
b3J0IGlkKTsKIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCiAjZW5kaWYgLy8gQ1NTVmFsdWVL
ZXl3b3Jkc19oCisKIEVPRgogY2xvc2UgSEVBREVSOwogCi1zeXN0ZW0oImdwZXJmIC0ta2V5LXBv
c2l0aW9ucz1cIipcIiAtRCAtbiAtcyAyIENTU1ZhbHVlS2V5d29yZHMuZ3BlcmYgPiBDU1NWYWx1
ZUtleXdvcmRzLmNwcCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwor
c3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLW4gLXMgMiBDU1NWYWx1ZUtl
eXdvcmRzLmdwZXJmID4gQ1NTVmFsdWVLZXl3b3Jkc0hhc2guaCIpID09IDAgfHwgZGllICJjYWxs
aW5nIGdwZXJmIGZhaWxlZDogJD8iOwogCi1vcGVuIEMsICI+PkNTU1ZhbHVlS2V5d29yZHMuY3Bw
IiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1ZhbHVlS2V5d29yZHMuY3BwIGZvciB3cml0aW5n
IjsKK29wZW4gQywgIj4+Q1NTVmFsdWVLZXl3b3Jkc0hhc2guaCIgfHwgZGllICJDb3VsZCBub3Qg
b3BlbiBDU1NWYWx1ZUtleXdvcmRzSGFzaC5oIGZvciB3cml0aW5nIjsKIHByaW50IEMgICJzdGF0
aWMgY29uc3QgY2hhciAqIGNvbnN0IHZhbHVlTGlzdFtdID0ge1xuIjsKIHByaW50IEMgICJcIlwi
LFxuIjsKIGZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgewpAQCAtMTA3LDEyICsxMTMsMzggQEAg
Zm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CiBwcmludCBDIDw8ICJFT0YiOwogICAgIDAKIH07
CisKK0VPRgorCitjbG9zZSBDOworCitteSAkdmFsdWVLZXl3b3Jkc0ltcGwgPSAiQ1NTVmFsdWVL
ZXl3b3Jkcy5jcHAiOworCitvcGVuIFZBTFVFS0VZV09SRFMsICI+JHZhbHVlS2V5d29yZHNJbXBs
IiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICR2YWx1ZUtleXdvcmRzSW1wbCBmb3Igd3JpdGluZyI7
CitwcmludCBWQUxVRUtFWVdPUkRTIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRp
Y2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKwor
I2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHNIYXNoLmgiCisK
K2NvbnN0IFZhbHVlKiBmaW5kVmFsdWUgKHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0
ZXIgdW5zaWduZWQgaW50IGxlbikKK3sKKyAgICByZXR1cm4gQ1NTVmFsdWVLZXl3b3Jkc0hhc2g6
OmZpbmRWYWx1ZUltcGwoc3RyLCBsZW4pOworfQorCiBjb25zdCBjaGFyKiBnZXRWYWx1ZU5hbWUo
dW5zaWduZWQgc2hvcnQgaWQpCiB7CiAgICAgaWYgKGlkID49IG51bUNTU1ZhbHVlS2V5d29yZHMg
fHwgaWQgPD0gMCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIHZhbHVlTGlzdFtpZF07
CiB9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwogRU9GCiAKLWNsb3NlIEM7CitjbG9zZSBW
QUxVRUtFWVdPUkRTOworCkluZGV4OiBXZWJDb3JlL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCShyZXZpc2lv
biA2NDk3NikKKysrIFdlYkNvcmUvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgkod29ya2luZyBj
b3B5KQpAQCAtMSwyMSArMSwxMyBAQAogJXN0cnVjdC10eXBlCi1zdHJ1Y3QgUHViSURJbmZvIHsK
LSAgICBlbnVtIGVNb2RlIHsgCi0gICAgICAgIGVRdWlya3MsICAgICAgICAgCi0gICAgICAgIGVR
dWlya3MzLCAgICAgICAKLSAgICAgICAgZUFsbW9zdFN0YW5kYXJkcwotICAgIH07Ci0KLSAgICBj
b25zdCBjaGFyKiBuYW1lOwotICAgIGVNb2RlIG1vZGVfaWZfbm9fc3lzaWQ7Ci0gICAgZU1vZGUg
bW9kZV9pZl9zeXNpZDsKLX0KLSVsYW5ndWFnZT1BTlNJLUMKK3N0cnVjdCBQdWJJREluZm87Cisl
b21pdC1zdHJ1Y3QtdHlwZQorJWxhbmd1YWdlPUMrKwogJXJlYWRvbmx5LXRhYmxlcwogJWdsb2Jh
bC10YWJsZQogJWNvbXBhcmUtc3RybmNtcAorJWRlZmluZSBjbGFzcy1uYW1lIERvY1R5cGVTdHJp
bmdzSGFzaAogJWRlZmluZSBpbml0aWFsaXplci1zdWZmaXggLFB1YklESW5mbzo6ZUFsbW9zdFN0
YW5kYXJkcyxQdWJJREluZm86OmVBbG1vc3RTdGFuZGFyZHMKLSVkZWZpbmUgbG9va3VwLWZ1bmN0
aW9uLW5hbWUgZmluZERvY3R5cGVFbnRyeQorJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBm
aW5kRG9jdHlwZUVudHJ5SW1wbAogJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgZG9jdHlwZV9o
YXNoX2Z1bmN0aW9uCiAlaW5jbHVkZXMKICVlbnVtCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTERv
Y3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAko
cmV2aXNpb24gNjQ5NzYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjQsNiArNjQsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5j
bHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiSGFz
aFRvb2xzLmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiSFRN
TEJvZHlFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnRGYWN0b3J5LmgiCkBAIC03NSw4
ICs3Niw2IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKLSNpbmNsdWRlICJEb2NUeXBlU3RyaW5ncy5jcHAiCi0KIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MRW50aXR5TmFtZXMuZ3BlcmYKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbnRp
dHlOYW1lcy5ncGVyZgkocmV2aXNpb24gNjQ5NzYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVudGl0
eU5hbWVzLmdwZXJmCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxNiArMjUsMTYgQEAKICovCiAlfQog
JXN0cnVjdC10eXBlCi1zdHJ1Y3QgRW50aXR5IHsKLSAgICBjb25zdCBjaGFyICpuYW1lOwotICAg
IGludCBjb2RlOwotfTsKLSVsYW5ndWFnZT1BTlNJLUMKK3N0cnVjdCBFbnRpdHk7CislbGFuZ3Vh
Z2U9QysrCislb21pdC1zdHJ1Y3QtdHlwZQogJXJlYWRvbmx5LXRhYmxlcwogJWdsb2JhbC10YWJs
ZQogJWNvbXBhcmUtc3RybmNtcAotJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kRW50
aXR5CislZGVmaW5lIGNsYXNzLW5hbWUgSFRNTEVudGl0eUhhc2gKKyVkZWZpbmUgbG9va3VwLWZ1
bmN0aW9uLW5hbWUgZmluZEVudGl0eUltcGwKICVkZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1lIGVu
dGl0eV9oYXNoX2Z1bmN0aW9uCislZGVmaW5lIHdvcmQtYXJyYXktbmFtZSBlbnRpdHlfd29yZGxp
c3QKICVpbmNsdWRlcwogJWVudW0KICUlCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEVudGl0eVBh
cnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlQYXJzZXIuY3Bw
CShyZXZpc2lvbiA2NDk3NikKKysrIFdlYkNvcmUvaHRtbC9IVE1MRW50aXR5UGFyc2VyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsMjEgKzI4LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJIVE1MRW50aXR5UGFyc2VyLmgiCiAKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKLS8vIFVzZSBfX0dOVUNfXyBpbnN0ZWFkIG9mIFBMQVRG
T1JNKEdDQykgdG8gc3RheSBjb25zaXN0ZW50IHdpdGggdGhlIGdwZXJmIGdlbmVyYXRlZCBjIGZp
bGUKLSNpZmRlZiBfX0dOVUNfXwotLy8gVGhlIG1haW4gcGFyc2VyIGluY2x1ZGVzIHRoaXMgdG9v
IHNvIHdlIGFyZSBnZXR0aW5nIHR3byBjb3BpZXMgb2YgdGhlIGRhdGEuIEhvd2V2ZXIsIHRoaXMg
d2F5IHRoZSBjb2RlIGdldHMgaW5saW5lZC4KLSNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXMuY3Bw
IgotI2Vsc2UKLS8vIE5vdCBpbmxpbmVkIGZvciBub24tR0NDIGNvbXBpbGVycwotc3RydWN0IEVu
dGl0eSB7Ci0gICAgY29uc3QgY2hhciogbmFtZTsKLSAgICBpbnQgY29kZTsKLX07Ci1jb25zdCBz
dHJ1Y3QgRW50aXR5KiBmaW5kRW50aXR5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0
ZXIgdW5zaWduZWQgaW50IGxlbik7Ci0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIFdURjsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxEb2N1bWVu
dFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxEb2N1bWVu
dFBhcnNlci5jcHAJKHJldmlzaW9uIDY0OTc2KQorKysgV2ViQ29yZS9odG1sL0xlZ2FjeUhUTUxE
b2N1bWVudFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNs
dWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJMZWdhY3lIVE1MVHJlZUJ1aWxkZXIu
aCIKQEAgLTU0LDggKzU1LDYgQEAKICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgogI2luY2x1
ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCi0jaW5jbHVkZSAiSFRNTEVudGl0eU5hbWVzLmNwcCIK
LQogI2RlZmluZSBQUkVMT0FEX1NDQU5ORVJfRU5BQkxFRCAxCiAKIHVzaW5nIG5hbWVzcGFjZSBX
VEY7CkluZGV4OiBXZWJDb3JlL2h0bWwvTGVnYWN5UHJlbG9hZFNjYW5uZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9MZWdhY3lQcmVsb2FkU2Nhbm5lci5jcHAJKHJldmlzaW9uIDY0
OTc2KQorKysgV2ViQ29yZS9odG1sL0xlZ2FjeVByZWxvYWRTY2FubmVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzgsMjUgKzM4LDEzIEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiSGFzaFRvb2xz
LmgiCiAjaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgi
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KIAotLy8gVXNlIF9fR05VQ19f
IGluc3RlYWQgb2YgUExBVEZPUk0oR0NDKSB0byBzdGF5IGNvbnNpc3RlbnQgd2l0aCB0aGUgZ3Bl
cmYgZ2VuZXJhdGVkIGMgZmlsZQotI2lmZGVmIF9fR05VQ19fCi0vLyBUaGUgbWFpbiB0b2tlbml6
ZXIgaW5jbHVkZXMgdGhpcyB0b28gc28gd2UgYXJlIGdldHRpbmcgdHdvIGNvcGllcyBvZiB0aGUg
ZGF0YS4gSG93ZXZlciwgdGhpcyB3YXkgdGhlIGNvZGUgZ2V0cyBpbmxpbmVkLgotI2luY2x1ZGUg
IkhUTUxFbnRpdHlOYW1lcy5jcHAiCi0jZWxzZQotLy8gTm90IGlubGluZWQgZm9yIG5vbi1HQ0Mg
Y29tcGlsZXJzCi1zdHJ1Y3QgRW50aXR5IHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGlu
dCBjb2RlOwotfTsKLWNvbnN0IHN0cnVjdCBFbnRpdHkqIGZpbmRFbnRpdHkocmVnaXN0ZXIgY29u
c3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKLSNlbmRpZgotCiAjZGVm
aW5lIFBSRUxPQURfREVCVUcgMAogCiB1c2luZyBuYW1lc3BhY2UgV1RGOwpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9Db2xvckRhdGEuZ3BlcmYJKHJldmlzaW9uIDY0OTc2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9D
b2xvckRhdGEuZ3BlcmYJKHdvcmtpbmcgY29weSkKQEAgLTEsMTMgKzEsMTIgQEAKICVzdHJ1Y3Qt
dHlwZQotc3RydWN0IE5hbWVkQ29sb3IgewotICAgIGNvbnN0IGNoYXIgKm5hbWU7Ci0gICAgaW50
IFJHQlZhbHVlOwotfTsKLSVsYW5ndWFnZT1BTlNJLUMKK3N0cnVjdCBOYW1lZENvbG9yOworJW9t
aXQtc3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysKICVyZWFkb25seS10YWJsZXMKICVnbG9iYWwt
dGFibGUKICVjb21wYXJlLXN0cm5jbXAKLSVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmlu
ZENvbG9yCislZGVmaW5lIGNsYXNzLW5hbWUgQ29sb3JEYXRhSGFzaAorJWRlZmluZSBsb29rdXAt
ZnVuY3Rpb24tbmFtZSBmaW5kQ29sb3JJbXBsCiAlZGVmaW5lIGhhc2gtZnVuY3Rpb24tbmFtZSBj
b2xvcmRhdGFfaGFzaF9mdW5jdGlvbgogJWluY2x1ZGVzCiAlZW51bQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db2xvci5jcHAJKHJldmlzaW9uIDY0OTc2KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db2xvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDEzICsyNiwxMiBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbG9yLmgiCiAKKyNpbmNsdWRlICJIYXNo
VG9vbHMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPG1hdGguaD4K
ICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+
CiAKLSNpbmNsdWRlICJDb2xvckRhdGEuY3BwIgotCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNp
bmcgbmFtZXNwYWNlIFdURjsKIApJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA2NDk3NikKKysr
IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBA
QAorMjAxMC0wOC0wOSAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5kZWZpbmVkIHJlZmVy
ZW5jZSBlcnJvcnMgd2hlbiBsaW5raW5nIGR1ZSB0byBncGVyZiBhbmQgaW5saW5pbmcuCisgICAg
ICAgIHdlYmtpdC5vcmcvYi8yOTI0NAorCisgICAgICAgIEVGTCBDTWFrZSBjaGFuZ2VzIGJ5IExl
YW5kcm8gUGVyZWlyYSA8bGVhbmRyb0Bwcm9mdXNpb24ubW9iaT4gCisKKyAgICAgICAgUmVmYWN0
b3IgZ3BlcmYgY29kZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0byBmaXggdGhlIGRlYnVnIGJ1aWxk
IHdpdGggZ2NjPjQuNC4KKyAgICAgICAgSGl0aGVydG8gZ3BlcmYgZ2VuZXJhdGVkIEMgY29kZSwg
dGhlc2UgZmlsZXMgd2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBDKysgZmlsZXMgYWNyb3NzIFdl
YkNvcmUKKyAgICAgICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkLiBUaGlz
IHJlc3VsdGVkIGluIGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBuZXdlciBnY2MgdmVyc2lvbnMK
KyAgICAgICAgYmVjYXVzZSBvZiBhIGJlaGF2aW91ciBjaGFuZ2Ugb2YgZ2NjLCB3aGljaCBkaXNh
YmxlcyBDIHN0eWxlIGlubGluaW5nIGluIGRlYnVnIG1vZGUuCisgICAgICAgIFRoZSBtYWtlLWhh
c2gtdG9vbHMucGwgc2NyaXB0IGxldHMgZ3BlcmYgZ2VuZXJhdGUgQysrIGNvZGUgZm9yIGFsbCBn
cGVyZiBmaWxlcyBub3csIHdoaWNoIGFyZSBjb21waWxlZAorICAgICAgICBpbiB0aGVpciBvd24g
Y29tcGlsYXRpb24gdW5pdC4KKyAgICAgICAgVGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkg
dGhlIGdlbmVyYXRlZCBjb2RlIGlzIHdyYXBwZWQgYmVoaW5kIEhhc2hUb29scy5oLCBzbyB0aGVy
ZSBpcyBubyBuZWVkCisgICAgICAgIGZvciBtdWx0aXBsZSBpbmNsdXNpb25zIG9mIGdlbmVyYXRl
ZCBDIGZpbGVzIHRvIGFjY2VzcyB0aGVzZSBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBzcmMvV2Vi
RW50aXRpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFbnRpdGllczo6V2ViRW50aXRpZXMp
OgorCiAyMDEwLTA4LTA5ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIE5vdCByZXZpZXdlZC4gQ2hyb21pdW0gdGVzdHMgZml4LgpJbmRleDogV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJFbnRpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJFbnRpdGllcy5jcHAJKHJldmlzaW9uIDY0OTc2KQorKysgV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJFbnRpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDkgKzMxLDkgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJFbnRpdGllcy5oIgogCi0jaW5jbHVk
ZSA8c3RyaW5nLmg+Ci0KKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgorI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgIlN0cmluZ0J1aWxkZXIu
aCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCkBAIC00MSwxNSArNDEsNiBAQAogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotbmFtZXNwYWNlIHsKLS8vIE5vdGUgdGhhdCB0aGlzIGZp
bGUgaXMgYWxzbyBpbmNsdWRlZCBieSBMZWdhY3lIVE1MRG9jdW1lbnRQYXJzZXIuY3BwIHNvIHdl
IGFyZSBnZXR0aW5nCi0vLyB0d28gY29waWVzIG9mIHRoZSBkYXRhIGluIG1lbW9yeS4gIFdlIGNh
biBmaXggdGhpcyBieSBjaGFuZ2luZyB0aGUgc2NyaXB0Ci0vLyB0aGF0IGdlbmVyYXRlZCB0aGUg
YXJyYXkgdG8gY3JlYXRlIGEgc3RhdGljIGNvbnN0IHRoYXQgaXMgaXRzIGxlbmd0aCwgYnV0Ci0v
LyB0aGlzIGlzIGxvdyBwcmlvcml0eSBzaW5jZSB0aGUgZGF0YSBpcyBsZXNzIHRoYW4gNEsuIFdl
IHVzZSBhbm9ueW1vdXMKLS8vIG5hbWVzcGFjZSB0byBwcmV2ZW50IG5hbWUgY29sbGlzaW9ucy4K
LSNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXMuY3BwIiAvLyBOT0xJTlQKLX0KLQogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIHZvaWQgcG9wdWxhdGVNYXAoV1RGOjpIYXNoTWFwPGludCwgV2ViQ29yZTo6
U3RyaW5nPiYgbWFwLApAQCAtOTEsOCArODIsOCBAQCBXZWJFbnRpdGllczo6V2ViRW50aXRpZXMo
Ym9vbCB4bWxFbnRpdGllCiAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKICAgICBlbHNlCiAg
ICAgICAgIHBvcHVsYXRlTWFwKG1fZW50aXRpZXNNYXAsCi0gICAgICAgICAgICAgICAgICAgIHdv
cmRsaXN0LAotICAgICAgICAgICAgICAgICAgICBzaXplb2Yod29yZGxpc3QpIC8gc2l6ZW9mKEVu
dGl0eSksCisgICAgICAgICAgICAgICAgICAgIHdvcmRMaXN0KCksCisgICAgICAgICAgICAgICAg
ICAgIHdvcmRMaXN0U2l6ZSgpLAogICAgICAgICAgICAgICAgICAgICB0cnVlKTsKIH0KIApJbmRl
eDogV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDk3NikKKysrIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyNCBAQAorMjAxMC0wOC0wOSAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VW5kZWZpbmVkIHJlZmVyZW5jZSBlcnJvcnMgd2hlbiBsaW5raW5nIGR1ZSB0byBncGVyZiBhbmQg
aW5saW5pbmcuCisgICAgICAgIHdlYmtpdC5vcmcvYi8yOTI0NAorCisgICAgICAgIEVGTCBDTWFr
ZSBjaGFuZ2VzIGJ5IExlYW5kcm8gUGVyZWlyYSA8bGVhbmRyb0Bwcm9mdXNpb24ubW9iaT4gCisK
KyAgICAgICAgUmVmYWN0b3IgZ3BlcmYgY29kZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0byBmaXgg
dGhlIGRlYnVnIGJ1aWxkIHdpdGggZ2NjPjQuNC4KKyAgICAgICAgSGl0aGVydG8gZ3BlcmYgZ2Vu
ZXJhdGVkIEMgY29kZSwgdGhlc2UgZmlsZXMgd2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBDKysg
ZmlsZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAgICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFsaXR5
IHByb3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGluIGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBuZXdl
ciBnY2MgdmVyc2lvbnMKKyAgICAgICAgYmVjYXVzZSBvZiBhIGJlaGF2aW91ciBjaGFuZ2Ugb2Yg
Z2NjLCB3aGljaCBkaXNhYmxlcyBDIHN0eWxlIGlubGluaW5nIGluIGRlYnVnIG1vZGUuCisgICAg
ICAgIFRoZSBtYWtlLWhhc2gtdG9vbHMucGwgc2NyaXB0IGxldHMgZ3BlcmYgZ2VuZXJhdGUgQysr
IGNvZGUgZm9yIGFsbCBncGVyZiBmaWxlcyBub3csIHdoaWNoIGFyZSBjb21waWxlZAorICAgICAg
ICBpbiB0aGVpciBvd24gY29tcGlsYXRpb24gdW5pdC4KKyAgICAgICAgVGhlIGZ1bmN0aW9uYWxp
dHkgcHJvdmlkZWQgYnkgdGhlIGdlbmVyYXRlZCBjb2RlIGlzIHdyYXBwZWQgYmVoaW5kIEhhc2hU
b29scy5oLCBzbyB0aGVyZSBpcyBubyBuZWVkCisgICAgICAgIGZvciBtdWx0aXBsZSBpbmNsdXNp
b25zIG9mIGdlbmVyYXRlZCBDIGZpbGVzIHRvIGFjY2VzcyB0aGVzZSBmdW5jdGlvbnMuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbik6CisKIDIwMTAtMDgt
MDggIEFyaXlhIEhpZGF5YXQgIDxhcml5YUBzZW5jaGEuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFudG9uaW8gR29tZXMuCkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCShyZXZpc2lvbiA2NDk3NikKKysrIFdlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTQwNyw3ICsxNDA3LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6
OgogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bXFTdHlsZVNoZWV0UHJv
cGVydGllczsgKytpKSB7CiAgICAgICAgICAgICAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSA9
IHFzdHlsZVNoZWV0UHJvcGVydGllc1tpXTsKIAotICAgICAgICAgICAgICAgIHN0eWxlU2hlZXQg
Kz0gUVN0cmluZzo6ZnJvbUxhdGluMSg6OmdldFByb3BlcnR5TmFtZShwcm9wZXJ0eSkpOworICAg
ICAgICAgICAgICAgIHN0eWxlU2hlZXQgKz0gUVN0cmluZzo6ZnJvbUxhdGluMShnZXRQcm9wZXJ0
eU5hbWUocHJvcGVydHkpKTsKICAgICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9IFFMYXRpbjFD
aGFyKCc6Jyk7CiAgICAgICAgICAgICAgICAgc3R5bGVTaGVldCArPSBjb21wdXRlZFN0eWxlKGVs
ZW1lbnQpLT5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKICAgICAgICAgICAgICAgICBzdHls
ZVNoZWV0ICs9IFFMYXRpbjFDaGFyKCc7Jyk7CkluZGV4OiBjbWFrZS9XZWJLaXRHZW5lcmF0b3Jz
LmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGNtYWtlL1dlYktpdEdlbmVyYXRvcnMuY21ha2UJKHJldmlz
aW9uIDY0OTc2KQorKysgY21ha2UvV2ViS2l0R2VuZXJhdG9ycy5jbWFrZQkod29ya2luZyBjb3B5
KQpAQCAtMiw3ICsyLDYgQEAKICMgSXQgd2lsbCBjaGVjayBmb3IgdGhlIHByb2dyYW1zIGFuZCBk
ZWZpbmUgdGhlIGdpdmVuIGV4ZWN1dGFibGVzOgogIyAgICBQRVJMX0VYRUNVVEFCTEUKICMgICAg
QklTT05fRVhFQ1VUQUJMRQotIyAgICBHUEVSRl9FWEVDVVRBQkxFCiAjICAgIEZMRVhfRVhFQ1VU
QUJMRQogCiBJTkNMVURFIChXZWJLaXRGUykKQEAgLTY5LDI1ICs2OCwyNCBAQCBNQUNSTyhHRU5F
UkFURV9HUkFNTUFSIF9wcmVmaXggX3NvdXJjZSkKIEVORE1BQ1JPICgpCiAKIAotRklORF9QUk9H
UkFNKEdQRVJGX0VYRUNVVEFCTEUgZ3BlcmYpCi1JRiAoTk9UIEdQRVJGX0VYRUNVVEFCTEUpCi0g
IE1FU1NBR0UoRkFUQUxfRVJST1IgIk1pc3NpbmcgZ3BlcmYiKQotRU5ESUYgKCkKLUZJTkRfUEFD
S0FHRV9IQU5ETEVfU1RBTkRBUkRfQVJHUyhHUGVyZiBERUZBVUxUX01TRyBHUEVSRl9FWEVDVVRB
QkxFKQotU0VUKFBFUkZfSEFTSF9HRU5FUkFUT1IgJHtXRUJDT1JFX0RJUn0vbWFrZS1oYXNoLXRv
b2xzLnBsKQotCiAjIC0gQ3JlYXRlIHBlcmZlY3QgaGFzaCB0YWJsZXMgdXNpbmcgZ3BlcmYKLSMg
R0VORVJBVEVfR1BFUkYoZXh0ZW5zaW9uIHNvdXJjZV9maWxlKQotIwotIyBUaGUgZ2VuZXJhdGVk
IGZpbGVzIGxpdmVzIGluICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0gYW5kIGVuZHMgaW4gLmNwcAot
TUFDUk8oR0VORVJBVEVfR1BFUkYgX3NvdXJjZSkKK01BQ1JPKE1BS0VfSEFTSF9UT09MUyBfc291
cmNlKQogICBHRVRfRklMRU5BTUVfQ09NUE9ORU5UKF9uYW1lICR7X3NvdXJjZX0gTkFNRV9XRSkK
KyAgCisgIElGICgke19zb3VyY2V9IFNUUkVRVUFMICJIVE1MRW50aXR5TmFtZXMiKQorICAgIFNF
VChfaGFzaF90b29sc19oICIke0RFUklWRURfU09VUkNFU19ESVJ9L0hhc2hUb29scy5oIikKKyAg
RUxTRSAoKQorICAgIFNFVChfaGFzaF90b29sc19oICIiKQorICBFTkRJRiAoKQorCiAgIEFERF9D
VVNUT01fQ09NTUFORCgKLSAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfRElSfS8ke19uYW1l
fS5jcHAKLSAgICBERVBFTkRTICR7X3NvdXJjZX0KLSAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRB
QkxFfSAke1BFUkZfSEFTSF9HRU5FUkFUT1J9ICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0gJHtfc291
cmNlfQorICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19ESVJ9LyR7X25hbWV9LmNwcCAke19o
YXNoX3Rvb2xzX2h9CisgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJDT1JFX0RJ
Un0vbWFrZS1oYXNoLXRvb2xzLnBsICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0gJHtfc291cmNlfS5n
cGVyZgogICAgIFZFUkJBVElNKQotRU5ETUFDUk8gKCkKKworICBVTlNFVChfbmFtZSkKKyAgVU5T
RVQoX2hhc2hfdG9vbHNfaCkKK0VORE1BQ1JPKCkKIAogCiAjIE1vZHVsZXMgdGhhdCB0aGUgYmlu
ZGluZ3MgZ2VuZXJhdG9yIHNjcmlwdHMgbWF5IHVzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65127</attachid>
            <date>2010-08-23 09:06:59 -0700</date>
            <delta_ts>2010-08-30 09:40:39 -0700</delta_ts>
            <desc>updated to ToT</desc>
            <filename>gperf.patch</filename>
            <type>text/plain</type>
            <size>26084</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDY1ODEy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDgt
MjMgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuZGVmaW5lZCByZWZlcmVuY2UgZXJyb3Jz
IHdoZW4gbGlua2luZyBkdWUgdG8gZ3BlcmYgYW5kIGlubGluaW5nLgorICAgICAgICB3ZWJraXQu
b3JnL2IvMjkyNDQKKworICAgICAgICBFRkwgQ01ha2UgY2hhbmdlcyBieSBMZWFuZHJvIFBlcmVp
cmEgPGxlYW5kcm9AcHJvZnVzaW9uLm1vYmk+CisKKyAgICAgICAgUmVmYWN0b3IgZ3BlcmYgY29k
ZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0byBmaXggdGhlIGRlYnVnIGJ1aWxkIHdpdGggZ2NjPjQu
NC4KKyAgICAgICAgSGl0aGVydG8gZ3BlcmYgZ2VuZXJhdGVkIEMgY29kZSwgdGhlc2UgZmlsZXMg
d2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBDKysgZmlsZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAg
ICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGlu
IGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBuZXdlciBnY2MgdmVyc2lvbnMKKyAgICAgICAgYmVj
YXVzZSBvZiBhIGJlaGF2aW91ciBjaGFuZ2Ugb2YgZ2NjLCB3aGljaCBkaXNhYmxlcyBDIHN0eWxl
IGlubGluaW5nIGluIGRlYnVnIG1vZGUuCisgICAgICAgIFRoZSBtYWtlLWhhc2gtdG9vbHMucGwg
c2NyaXB0IGxldHMgZ3BlcmYgZ2VuZXJhdGUgQysrIGNvZGUgZm9yIGFsbCBncGVyZiBmaWxlcyBu
b3csIHdoaWNoIGFyZSBjb21waWxlZAorICAgICAgICBpbiB0aGVpciBvd24gY29tcGlsYXRpb24g
dW5pdC4KKyAgICAgICAgVGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgdGhlIGdlbmVyYXRl
ZCBjb2RlIGlzIHdyYXBwZWQgYmVoaW5kIEhhc2hUb29scy5oLCBzbyB0aGVyZSBpcyBubyBuZWVk
CisgICAgICAgIGZvciBtdWx0aXBsZSBpbmNsdXNpb25zIG9mIGdlbmVyYXRlZCBDIGZpbGVzIHRv
IGFjY2VzcyB0aGVzZSBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBjbWFrZS9XZWJLaXRNYWNyb3Mu
Y21ha2U6CisKIDIwMTAtMDgtMjAgIExlYW5kcm8gUGVyZWlyYSAgPGxlYW5kcm9AcHJvZnVzaW9u
Lm1vYmk+CiAKICAgICAgICAgW0VGTF0gVW5yZXZpZXdlZC4gRml4IGJ1aWxkIHdoZW4gdXNpbmcg
R05VIGdvbGQuCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L0NoYW5nZUxvZwkocmV2aXNpb24gNjU4MTIpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDEwLTA4LTIzICBBbmRyYXMgQmVjc2kgIDxhYmVj
c2lAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVbmRlZmluZWQgcmVmZXJlbmNlIGVycm9ycyB3aGVuIGxpbmtpbmcgZHVlIHRvIGdw
ZXJmIGFuZCBpbmxpbmluZy4KKyAgICAgICAgd2Via2l0Lm9yZy9iLzI5MjQ0CisKKyAgICAgICAg
RUZMIENNYWtlIGNoYW5nZXMgYnkgTGVhbmRybyBQZXJlaXJhIDxsZWFuZHJvQHByb2Z1c2lvbi5t
b2JpPgorCisgICAgICAgIFJlZmFjdG9yIGdwZXJmIGNvZGUgZ2VuZXJhdGlvbiBhbmQgdXNhZ2Ug
dG8gZml4IHRoZSBkZWJ1ZyBidWlsZCB3aXRoIGdjYz40LjQuCisgICAgICAgIEhpdGhlcnRvIGdw
ZXJmIGdlbmVyYXRlZCBDIGNvZGUsIHRoZXNlIGZpbGVzIHdlcmUgaW5jbHVkZWQgaW4gbXVsdGlw
bGUgQysrIGZpbGVzIGFjcm9zcyBXZWJDb3JlCisgICAgICAgIHRvIGFjY2VzcyB0aGUgZnVuY3Rp
b25hbGl0eSBwcm92aWRlZC4gVGhpcyByZXN1bHRlZCBpbiBkZWJ1ZyBidWlsZCBmYWlsdXJlIHdp
dGggbmV3ZXIgZ2NjIHZlcnNpb25zCisgICAgICAgIGJlY2F1c2Ugb2YgYSBiZWhhdmlvdXIgY2hh
bmdlIG9mIGdjYywgd2hpY2ggZGlzYWJsZXMgQyBzdHlsZSBpbmxpbmluZyBpbiBkZWJ1ZyBtb2Rl
LgorICAgICAgICBUaGUgbWFrZS1oYXNoLXRvb2xzLnBsIHNjcmlwdCBsZXRzIGdwZXJmIGdlbmVy
YXRlIEMrKyBjb2RlIGZvciBhbGwgZ3BlcmYgZmlsZXMgbm93LCB3aGljaCBhcmUgY29tcGlsZWQK
KyAgICAgICAgaW4gdGhlaXIgb3duIGNvbXBpbGF0aW9uIHVuaXQuCisgICAgICAgIFRoZSBmdW5j
dGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoZSBnZW5lcmF0ZWQgY29kZSBpcyB3cmFwcGVkIGJlaGlu
ZCBIYXNoVG9vbHMuaCwgc28gdGhlcmUgaXMgbm8gbmVlZAorICAgICAgICBmb3IgbXVsdGlwbGUg
aW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQgQyBmaWxlcyB0byBhY2Nlc3MgdGhlc2UgZnVuY3Rpb25z
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cC9XZWJDb3JlLmd5cDoKKyAgICAgICAgKiBXZWJD
b3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NT
U1BhcnNlci5jcHA6CisgICAgICAgICogY3NzL21ha2Vwcm9wLnBsOgorICAgICAgICAqIGNzcy9t
YWtldmFsdWVzLnBsOgorICAgICAgICAqIGh0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmY6CisgICAg
ICAgICogaHRtbC9IVE1MRG9jdW1lbnQuY3BwOgorICAgICAgICAqIG1ha2UtaGFzaC10b29scy5w
bDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmY6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3IuY3BwOgorCiAyMDEwLTA4LTIzICBQYXZlbCBQb2Rpdmlsb3YgIDxw
b2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRt
YW4uCkluZGV4OiBXZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
Q01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDY1ODEyKQorKysgV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtNTQ0LDYgKzU0NCwxMCBAQCBFTkRJRigpCiBTRVQoV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9IVE1MRWxlbWVudEZhY3Rvcnku
Y3BwCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9IVE1MRW50aXR5VGFibGUuY3BwCisgICAg
JHtERVJJVkVEX1NPVVJDRVNfRElSfS9Eb2NUeXBlU3RyaW5ncy5jcHAKKyAgICAke0RFUklWRURf
U09VUkNFU19ESVJ9L0NTU1ZhbHVlS2V5d29yZHMuY3BwCisgICAgJHtERVJJVkVEX1NPVVJDRVNf
RElSfS9DU1NQcm9wZXJ0eU5hbWVzLmNwcAorICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vQ29s
b3JEYXRhLmNwcAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSFRNTE5hbWVzLmNwcAogICAg
ICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAog
ICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwCkBAIC0x
ODczLDEyICsxODc3LDEwIEBAIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0pTX0lETF9G
SUwKIAogR0VORVJBVEVfSlNPTigke1dFQkNPUkVfRElSfS9odG1sL0hUTUxFbnRpdHlOYW1lcy5q
c29uICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSFRNTEVudGl0eVRhYmxlLmNwcCAke1dFQkNPUkVf
RElSfS8uLi9XZWJLaXRUb29scy9TY3JpcHRzL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZSkKIAot
Ci1HRU5FUkFURV9HUEVSRigke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYg
JHtERVJJVkVEX1NPVVJDRVNfRElSfS9Db2xvckRhdGEuY3BwIGZpbmRDb2xvciAiIikKK01BS0Vf
SEFTSF9UT09MUygke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9Db2xvckRhdGEpCiBBRERfU09VUkNF
X0RFUklWRURfREVQRU5ERU5DSUVTKCR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yLmNwcCBDb2xvckRhdGEuY3BwKQogCi0KLUdFTkVSQVRFX0dQRVJGKCR7V0VCQ09SRV9ESVJ9
L2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Eb2NUeXBl
U3RyaW5ncy5jcHAgZmluZERvY3R5cGVFbnRyeSAiLUYsUHViSURJbmZvOjplQWxtb3N0U3RhbmRh
cmRzLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyIpCitNQUtFX0hBU0hfVE9PTFMoJHtXRUJD
T1JFX0RJUn0vaHRtbC9Eb2NUeXBlU3RyaW5ncykKIEFERF9TT1VSQ0VfREVSSVZFRF9ERVBFTkRF
TkNJRVMoJHtXRUJDT1JFX0RJUn0vaHRtbC9IVE1MRG9jdW1lbnQuY3BwIERvY1R5cGVTdHJpbmdz
LmNwcCkKIAogCkBAIC0xODk4LDYgKzE5MDAsNyBAQCBHRU5FUkFURV9DU1NfUFJPUEVSVFlfTkFN
RVMoKQogR0VORVJBVEVfQ1NTX1ZBTFVFX0tFWVdPUkRTKCkKIAogCitBRERfU09VUkNFX0RFUklW
RURfREVQRU5ERU5DSUVTKCR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSGFzaFRvb2xzLmggRG9jVHlw
ZVN0cmluZ3MuY3BwIENTU1ZhbHVlS2V5d29yZHMuY3BwIENTU1Byb3BlcnR5TmFtZXMuY3BwIENv
bG9yRGF0YS5jcHApCiBBRERfU09VUkNFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7REVSSVZFRF9T
T1VSQ0VTX0RJUn0vQ1NTR3JhbW1hci5jcHAgQ1NTVmFsdWVLZXl3b3Jkcy5oKQogQUREX1NPVVJD
RV9ERVJJVkVEX0RFUEVOREVOQ0lFUygke0RFUklWRURfU09VUkNFU19ESVJ9L0NTU0dyYW1tYXIu
Y3BwIENTU1Byb3BlcnR5TmFtZXMuaCkKIEFERF9TT1VSQ0VfREVSSVZFRF9ERVBFTkRFTkNJRVMo
JHtXRUJDT1JFX0RJUn0vY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBDU1NWYWx1ZUtl
eXdvcmRzLmgpCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJpCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvV2ViQ29yZS5wcmkJKHJldmlzaW9uIDY1ODEyKQorKysgV2ViQ29yZS9XZWJDb3JlLnByaQko
d29ya2luZyBjb3B5KQpAQCAtNTMwLDcgKzUzMCw3IEBAIGNzc3Byb3BzLndrU2NyaXB0ID0gJCRQ
V0QvY3NzL21ha2Vwcm9wLnAKIGNzc3Byb3BzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5jcHAKIGNzc3Byb3BzLmlucHV0ID0gV0FMRE9DU1NQ
Uk9QUwogY3NzcHJvcHMuY29tbWFuZHMgPSBwZXJsIC1uZSBcInByaW50IGxjXCIgJHtRTUFLRV9G
SUxFX05BTUV9ICQke0RBU0hCT0FSRFNVUFBPUlRDU1NQUk9QRVJUSUVTfSAkJHtFWFRSQUNTU1BS
T1BFUlRJRVN9ID4gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFT
RX0uaW4gJiYgY2QgJCRXQ19HRU5FUkFURURfU09VUkNFU19ESVIgJiYgcGVybCAkJGNzc3Byb3Bz
LndrU2NyaXB0ICYmICQoREVMX0ZJTEUpICR7UU1BS0VfRklMRV9CQVNFfS5pbiAke1FNQUtFX0ZJ
TEVfQkFTRX0uZ3BlcmYKLWNzc3Byb3BzLmRlcGVuZHMgPSAke1FNQUtFX0ZJTEVfTkFNRX0gJCR7
REFTSEJPQVJEU1VQUE9SVENTU1BST1BFUlRJRVN9ICQke0VYVFJBQ1NTUFJPUEVSVElFU30KK2Nz
c3Byb3BzLmRlcGVuZHMgPSAke1FNQUtFX0ZJTEVfTkFNRX0gJCR7REFTSEJPQVJEU1VQUE9SVENT
U1BST1BFUlRJRVN9ICQke0VYVFJBQ1NTUFJPUEVSVElFU30gJCRjc3Nwcm9wcy53a1NjcmlwdAog
YWRkRXh0cmFDb21waWxlcihjc3Nwcm9wcykKIAogIyBHRU5FUkFUT1IgNi1COgpAQCAtNTM4LDcg
KzUzOCw3IEBAIGNzc3ZhbHVlcy53a1NjcmlwdCA9ICQkUFdEL2Nzcy9tYWtldmFsdWUKIGNzc3Zh
bHVlcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0NTU1ZhbHVlS2V5d29y
ZHMuY3BwCiBjc3N2YWx1ZXMuaW5wdXQgPSBXQUxET0NTU1ZBTFVFUwogY3NzdmFsdWVzLmNvbW1h
bmRzID0gcGVybCAtbmUgXCJwcmludCBsY1wiICR7UU1BS0VfRklMRV9OQU1FfSAkJEVYVFJBQ1NT
VkFMVUVTID4gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0u
aW4gJiYgY2QgJCRXQ19HRU5FUkFURURfU09VUkNFU19ESVIgJiYgcGVybCAkJGNzc3ZhbHVlcy53
a1NjcmlwdCAmJiAkKERFTF9GSUxFKSAke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJHtRTUFLRV9GSUxF
X0JBU0V9LmdwZXJmCi1jc3N2YWx1ZXMuZGVwZW5kcyA9ICR7UU1BS0VfRklMRV9OQU1FfSAkJHtF
WFRSQUNTU1ZBTFVFU30KK2Nzc3ZhbHVlcy5kZXBlbmRzID0gJHtRTUFLRV9GSUxFX05BTUV9ICQk
e0VYVFJBQ1NTVkFMVUVTfSAkJGNzc3ZhbHVlcy53a1NjcmlwdAogY3NzdmFsdWVzLmNsZWFuID0g
JHtRTUFLRV9GSUxFX09VVH0gJHtRTUFLRV9WQVJfV0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8k
e1FNQUtFX0ZJTEVfQkFTRX0uaAogYWRkRXh0cmFDb21waWxlcihjc3N2YWx1ZXMpCiAKSW5kZXg6
IFdlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbWFrZS1o
YXNoLXRvb2xzLnBsCShyZXZpc2lvbiA2NTgxMikKKysrIFdlYkNvcmUvbWFrZS1oYXNoLXRvb2xz
LnBsCSh3b3JraW5nIGNvcHkpCkBAIC0yNywyNCArMjcsMTIxIEBAIG15ICRvdXRkaXIgPSAkQVJH
VlswXTsKIHNoaWZ0OwogbXkgJG9wdGlvbiA9IGJhc2VuYW1lKCRBUkdWWzBdLCIuZ3BlcmYiKTsK
IAorbXkgJGhhc2hUb29sc0hlYWRlciA9ICIkb3V0ZGlyL0hhc2hUb29scy5oIjsKKworc3ViIGNy
ZWF0ZUhhc2hUb29sc0hlYWRlcigpIHsKKworb3BlbiBIRUFERVIsICI+JGhhc2hUb29sc0hlYWRl
ciIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkaGFzaFRvb2xzSGVhZGVyIGZvciB3cml0aW5nIjsK
K3ByaW50IEhFQURFUiA8PCAiRU9GIjsKKy8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdl
bmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5vdCBlZGl0ICovCisKKyNpZm5kZWYg
SGFzaFRvb2xzX2gKKyNkZWZpbmUgSGFzaFRvb2xzX2gKKworI2luY2x1ZGUgInd0Zi9QbGF0Zm9y
bS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBQdWJJREluZm8geworICAgIGVu
dW0gZU1vZGUgeworICAgICAgICBlUXVpcmtzLAorICAgICAgICBlUXVpcmtzMywKKyAgICAgICAg
ZUFsbW9zdFN0YW5kYXJkcworICAgIH07CisKKyAgICBjb25zdCBjaGFyKiBuYW1lOworICAgIGVN
b2RlIG1vZGVfaWZfbm9fc3lzaWQ7CisgICAgZU1vZGUgbW9kZV9pZl9zeXNpZDsKK307CisKK3N0
cnVjdCBOYW1lZENvbG9yIHsKKyAgICBjb25zdCBjaGFyKiBuYW1lOworICAgIGludCBSR0JWYWx1
ZTsKK307CisKK3N0cnVjdCBQcm9wZXJ0eSB7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBp
bnQgaWQ7Cit9OworCitzdHJ1Y3QgVmFsdWUgeworICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAg
aW50IGlkOworfTsKKworY29uc3QgUHViSURJbmZvKiBmaW5kRG9jdHlwZUVudHJ5KHJlZ2lzdGVy
IGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbik7Citjb25zdCBOYW1l
ZENvbG9yKiBmaW5kQ29sb3IocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNp
Z25lZCBpbnQgbGVuKTsKK2NvbnN0IFByb3BlcnR5KiBmaW5kUHJvcGVydHkocmVnaXN0ZXIgY29u
c3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKK2NvbnN0IFZhbHVlKiBm
aW5kVmFsdWUocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQg
bGVuKTsKK30KKworI2VuZGlmIC8vIEhhc2hUb29sc19oCisKK0VPRgorY2xvc2UgSEVBREVSOwor
Cit9CisKIHN3aXRjaCAoJG9wdGlvbikgewogCiBjYXNlICJEb2NUeXBlU3RyaW5ncyIgewogCi0g
ICAgbXkgJGRvY1R5cGVTdHJpbmdzR2VuZXJhdGVkICAgID0gIiRvdXRkaXIvRG9jVHlwZVN0cmlu
Z3MuY3BwIjsKKyAgICBjcmVhdGVIYXNoVG9vbHNIZWFkZXIoKTsKKworICAgIG15ICRkb2NUeXBl
U3RyaW5nc0ltcGwgICAgICAgICA9ICIkb3V0ZGlyL0RvY1R5cGVTdHJpbmdzLmNwcCI7CisgICAg
bXkgJGRvY1R5cGVTdHJpbmdzR2VuZXJhdGVkICAgID0gIiRvdXRkaXIvRG9jVHlwZVN0cmluZ3NI
YXNoLmgiOwogICAgIG15ICRkb2NUeXBlU3RyaW5nc0dwZXJmICAgICAgICA9ICRBUkdWWzBdOwog
ICAgIHNoaWZ0OwogCisgICAgb3BlbiBET0NUWVBFU1RSSU5HUywgIj4kZG9jVHlwZVN0cmluZ3NJ
bXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRkb2NUeXBlU3RyaW5nc0ltcGwgZm9yIHdyaXRp
bmciOworICAgIHByaW50IERPQ1RZUEVTVFJJTkdTIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlz
IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVk
aXQgKi8KKworI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7Cisj
aW5jbHVkZSAiRG9jVHlwZVN0cmluZ3NIYXNoLmgiCisKK2NvbnN0IFB1YklESW5mbyogZmluZERv
Y3R5cGVFbnRyeSAocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBp
bnQgbGVuKQoreworICAgIHJldHVybiBEb2NUeXBlU3RyaW5nc0hhc2g6OmZpbmREb2N0eXBlRW50
cnlJbXBsKHN0ciwgbGVuKTsKK30KKworfQorCitFT0YKKyAgICBjbG9zZSBET0NUWVBFU1RSSU5H
UzsKKwogICAgIHN5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1zIDIgJGRvY1R5
cGVTdHJpbmdzR3BlcmYgPiAkZG9jVHlwZVN0cmluZ3NHZW5lcmF0ZWQiKSA9PSAwIHx8IGRpZSAi
Y2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKIAogfSAjIGNhc2UgIkRvY1R5cGVTdHJpbmdzIgog
CiBjYXNlICJDb2xvckRhdGEiIHsKIAotICAgIG15ICRjb2xvckRhdGFHZW5lcmF0ZWQgICA9ICIk
b3V0ZGlyL0NvbG9yRGF0YS5jcHAiOwotICAgIG15ICRjb2xvckRhdGFHcGVyZiAgICAgICA9ICRB
UkdWWzBdOworICAgIG15ICRjb2xvckRhdGFJbXBsICAgICAgICAgICAgICA9ICIkb3V0ZGlyL0Nv
bG9yRGF0YS5jcHAiOworICAgIG15ICRjb2xvckRhdGFHZW5lcmF0ZWQgICAgICAgICA9ICIkb3V0
ZGlyL0NvbG9yRGF0YUhhc2guaCI7CisgICAgbXkgJGNvbG9yRGF0YUdwZXJmICAgICAgICAgICAg
ID0gJEFSR1ZbMF07CiAgICAgc2hpZnQ7CiAKKyAgICBvcGVuIENPTE9SREFUQSwgIj4kY29sb3JE
YXRhSW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkY29sb3JEYXRhSW1wbCBmb3Igd3JpdGlu
ZyI7CisgICAgcHJpbnQgQ09MT1JEQVRBIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9t
YXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8K
KworI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVk
ZSAiQ29sb3JEYXRhSGFzaC5oIgorCitjb25zdCBzdHJ1Y3QgTmFtZWRDb2xvciogZmluZENvbG9y
IChyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7
CisgICAgcmV0dXJuIENvbG9yRGF0YUhhc2g6OmZpbmRDb2xvckltcGwoc3RyLCBsZW4pOworfQor
Cit9CisKK0VPRgorICAgIGNsb3NlIENPTE9SREFUQTsKKwogICAgIHN5c3RlbSgiZ3BlcmYgLS1r
ZXktcG9zaXRpb25zPVwiKlwiIC1EIC1zIDIgJGNvbG9yRGF0YUdwZXJmID4gJGNvbG9yRGF0YUdl
bmVyYXRlZCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwogCiB9ICMg
Y2FzZSAiQ29sb3JEYXRhIgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCShyZXZpc2lvbiA2
NTgxMikKKysrIFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJKHdvcmtpbmcgY29weSkK
QEAgLTYyMSw3ICs2MjEsNiBAQAogICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9E
SVIpL3dlYmtpdCcsCiAgICAgICAgICAgICAnPChSVUxFX0lOUFVUX1BBVEgpJywKICAgICAgICAg
ICBdLAotICAgICAgICAgICdwcm9jZXNzX291dHB1dHNfYXNfc291cmNlcyc6IDAsCiAgICAgICAg
IH0sCiAgICAgICAgIHsKICAgICAgICAgICAncnVsZV9uYW1lJzogJ2pzb24nLApAQCAtNzM3LDYg
KzczNiwxMiBAQAogICAgICAgICAjIGluIHdlYmNvcmVfZmlsZXMuCiAgICAgICAgICc8QChkZXJp
dmVkX3NvdXJjZXNfYWdncmVnYXRlX2ZpbGVzKScsCiAKKyAgICAgICAgIyBBZGRpdGlvbmFsIC5j
cHAgZmlsZXMgZm9yIEhhc2hUb29scy5oCisgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVf
RElSKS93ZWJraXQvRG9jVHlwZVN0cmluZ3MuY3BwJywKKyAgICAgICAgJzwoU0hBUkVEX0lOVEVS
TUVESUFURV9ESVIpL3dlYmtpdC9Db2xvckRhdGEuY3BwJywKKyAgICAgICAgJzwoU0hBUkVEX0lO
VEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NQcm9wZXJ0eU5hbWVzLmNwcCcsCisgICAgICAgICc8
KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvQ1NTVmFsdWVLZXl3b3Jkcy5jcHAnLAor
CiAgICAgICAgICMgQWRkaXRpb25hbCAuY3BwIGZpbGVzIGZyb20gd2ViY29yZV9iaW5kaW5nc19z
b3VyY2VzIGFjdGlvbnMuCiAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJr
aXQvSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCcsCiAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElB
VEVfRElSKS93ZWJraXQvSFRNTE5hbWVzLmNwcCcsCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDY1ODEyKQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNTQ1LDYgKzU0NSwyNiBAQAogCQkJ
CT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91
dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEhhc2hUb29scy5oIg0K
KwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJL
aXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xEb2NUeXBlU3Ry
aW5ncy5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQ
YXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XENTU1ZhbHVlS2V5d29yZHMuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xDU1NQcm9wZXJ0eU5hbWVzLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcQ29sb3JEYXRhLmNwcCINCisJCQkJPg0KKwkJCTwv
RmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxv
YmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXIuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA2NTgxMikKKysrIFdlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00ODksNiArNDg5
LDEwIEBACiAJCTFBQjdGQzg2MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhbHVlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUI3RkM2NTBBOEI5MkVD
MDBEOUQzN0IgLyogWFBhdGhWYWx1ZS5oICovOyB9OwogCQkxQUI3RkM4NzBBOEI5MkVDMDBEOUQz
N0IgLyogWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUI3RkM2NjBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhW
YXJpYWJsZVJlZmVyZW5jZS5jcHAgKi87IH07CiAJCTFBQjdGQzg4MEE4QjkyRUMwMEQ5RDM3QiAv
KiBYUGF0aFZhcmlhYmxlUmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQUI3RkM2NzBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYXJpYWJs
ZVJlZmVyZW5jZS5oICovOyB9OworCQkxQUJBNzZDOTExRDIwRTQ3MDA0QzIwMUMgLyogQ29sb3JE
YXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0
MDZGM0ZCMTE5ODMwN0QwMDlENTlENiAvKiBDb2xvckRhdGEuY3BwICovOyB9OworCQkxQUJBNzZD
QTExRDIwRTUwMDA0QzIwMUMgLyogQ1NTUHJvcGVydHlOYW1lcy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDFFQTAzODExOTgzNkRCMDA3MTBCQzUg
LyogQ1NTUHJvcGVydHlOYW1lcy5jcHAgKi87IH07CisJCTFBQkE3NkNCMTFEMjBFNTcwMDRDMjAx
QyAvKiBDU1NWYWx1ZUtleXdvcmRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU0MUVBMDM5MTE5ODM3NDkwMDcxMEJDNSAvKiBDU1NWYWx1ZUtleXdv
cmRzLmNwcCAqLzsgfTsKKwkJMUFCQTc2Q0MxMUQyMEU1QjAwNEMyMDFDIC8qIERvY1R5cGVTdHJp
bmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0
MDZGM0ZBMTE5ODMwNEQwMDlENTlENiAvKiBEb2NUeXBlU3RyaW5ncy5jcHAgKi87IH07CiAJCTFB
QkZFNzUzMENEOTY4RDAwMEZFNDgzNCAvKiBTUUxUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUJGRTc1MjBDRDk2OEQwMDBGRTQ4
MzQgLyogU1FMVHJhbnNhY3Rpb24uY3BwICovOyB9OwogCQkxQUMyMjYwQzBEQjY5RjE5MDA4OUI2
NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQzIyNjBBMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFw
cGxpY2F0aW9uQ2FjaGUuY3BwICovOyB9OwogCQkxQUMyMjYwRDBEQjY5RjE5MDA4OUI2NjkgLyog
SlNET01BcHBsaWNhdGlvbkNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQUMyMjYwQjBEQjY5RjE5MDA4OUI2NjkgLyogSlNET01BcHBsaWNhdGlv
bkNhY2hlLmggKi87IH07CkBAIC0yMDY1MCw2ICsyMDY1NCwxMCBAQAogCQkJaXNhID0gUEJYU291
cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmls
ZXMgPSAoCisJCQkJMUFCQTc2QzkxMUQyMEU0NzAwNEMyMDFDIC8qIENvbG9yRGF0YS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkxQUJBNzZDQTExRDIwRTUwMDA0QzIwMUMgLyogQ1NTUHJvcGVydHlO
YW1lcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUJBNzZDQjExRDIwRTU3MDA0QzIwMUMgLyog
Q1NTVmFsdWVLZXl3b3Jkcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUJBNzZDQzExRDIwRTVC
MDA0QzIwMUMgLyogRG9jVHlwZVN0cmluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjVCNURD
NjkxMTlCQjNENTAwMkE4NzkwIC8qIEFic3RyYWN0RGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDFFMUIxRDAwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTI5QTgxMjI4MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5
QVJJQUdyaWQuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHJldmlzaW9uIDY1
ODEyKQorKysgV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEs
NiArNjEsNyBAQAogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkZvbnRG
YW1pbHlWYWx1ZS5oIgogI2luY2x1ZGUgIkZvbnRWYWx1ZS5oIgorI2luY2x1ZGUgIkhhc2hUb29s
cy5oIgogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlFeHAuaCIK
ICNpbmNsdWRlICJQYWlyLmgiCkBAIC04OCw5ICs4OSw2IEBAIGV4dGVybiBpbnQgY3NzeXlwYXJz
ZSh2b2lkKiBwYXJzZXIpOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHVzaW5nIG5hbWVzcGFjZSBX
VEY7CiAKLSNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmNwcCIKLSNpbmNsdWRlICJDU1NWYWx1
ZUtleXdvcmRzLmNwcCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgdW5z
aWduZWQgSU5WQUxJRF9OVU1fUEFSU0VEX1BST1BFUlRJRVMgPSBVSU5UX01BWDsKSW5kZXg6IFdl
YkNvcmUvY3NzL21ha2Vwcm9wLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL21ha2Vwcm9w
LnBsCShyZXZpc2lvbiA2NTgxMikKKysrIFdlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCSh3b3JraW5n
IGNvcHkpCkBAIC00MSwxNSArNDEsMTQgQEAgcHJpbnQgR1BFUkYgPDwgIkVPRiI7CiAjaW5jbHVk
ZSBcIkNTU1Byb3BlcnR5TmFtZXMuaFwiCiAlfQogJXN0cnVjdC10eXBlCi1zdHJ1Y3QgUHJvcGVy
dHkgewotICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgaW50IGlkOwotfTsKLSVsYW5ndWFnZT1B
TlNJLUMKK3N0cnVjdCBQcm9wZXJ0eTsKKyVvbWl0LXN0cnVjdC10eXBlCislbGFuZ3VhZ2U9Qysr
CiAlcmVhZG9ubHktdGFibGVzCiAlZ2xvYmFsLXRhYmxlCiAlY29tcGFyZS1zdHJuY21wCi0lZGVm
aW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRQcm9wZXJ0eQorJWRlZmluZSBjbGFzcy1uYW1l
IENTU1Byb3BlcnR5TmFtZXNIYXNoCislZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRQ
cm9wZXJ0eUltcGwKICVkZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1lIHByb3BlcnlfaGFzaF9mdW5j
dGlvbgogJWRlZmluZSB3b3JkLWFycmF5LW5hbWUgcHJvcGVydHlfd29yZGxpc3QKICVpbmNsdWRl
cwpAQCAtNzIsNiArNzEsMTAgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogI2lmbmRlZiBDU1NQ
cm9wZXJ0eU5hbWVzX2gKICNkZWZpbmUgQ1NTUHJvcGVydHlOYW1lc19oCiAKKyNpbmNsdWRlIDxz
dHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCiBlbnVtIENTU1Byb3BlcnR5SUQgewog
ICAgIENTU1Byb3BlcnR5SW52YWxpZCA9IDAsCiBFT0YKQEAgLTk5LDE1ICsxMDIsMTcgQEAgcHJp
bnQgSEVBREVSIDw8ICJFT0YiOwogCiBjb25zdCBjaGFyKiBnZXRQcm9wZXJ0eU5hbWUoQ1NTUHJv
cGVydHlJRCk7CiAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwogI2VuZGlmIC8vIENTU1Byb3Bl
cnR5TmFtZXNfaAogCiBFT0YKIAogY2xvc2UgSEVBREVSOwogCi1zeXN0ZW0oImdwZXJmIC0ta2V5
LXBvc2l0aW9ucz1cIipcIiAtRCAtbiAtcyAyIENTU1Byb3BlcnR5TmFtZXMuZ3BlcmYgPiBDU1NQ
cm9wZXJ0eU5hbWVzLmNwcCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8i
Oworc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLW4gLXMgMiBDU1NQcm9w
ZXJ0eU5hbWVzLmdwZXJmID4gQ1NTUHJvcGVydHlOYW1lc0hhc2guaCIpID09IDAgfHwgZGllICJj
YWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwogCi1vcGVuIEMsICI+PkNTU1Byb3BlcnR5TmFtZXMu
Y3BwIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1Byb3BlcnR5TmFtZXMuY3BwIGZvciB3cml0
aW5nIjsKK29wZW4gQywgIj4+Q1NTUHJvcGVydHlOYW1lc0hhc2guaCIgfHwgZGllICJDb3VsZCBu
b3Qgb3BlbiBDU1NQcm9wZXJ0eU5hbWVzSGFzaC5oIGZvciB3cml0aW5nIjsKIHByaW50IEMgInN0
YXRpYyBjb25zdCBjaGFyICogY29uc3QgcHJvcGVydHlOYW1lU3RyaW5nc1skbnVtXSA9IHtcbiI7
CiAKIGZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgewpAQCAtMTE2LDYgKzEyMSwyOSBAQCBmb3Jl
YWNoIG15ICRuYW1lIChAbmFtZXMpIHsKIAogcHJpbnQgQyA8PCAiRU9GIjsKIH07CisKK0VPRgor
CitjbG9zZSBDOworCitteSAkcHJvcGVydHlOYW1lc0ltcGwgPSAiQ1NTUHJvcGVydHlOYW1lcy5j
cHAiOworCitvcGVuIFBST1BFUlRZTkFNRVMsICI+JHByb3BlcnR5TmFtZXNJbXBsIiB8fCBkaWUg
IkNvdWxkIG5vdCBvcGVuICRwcm9wZXJ0eU5hbWVzSW1wbCBmb3Igd3JpdGluZyI7CitwcmludCBQ
Uk9QRVJUWU5BTUVTIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2Vu
ZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKworCisjaW5jbHVk
ZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lc0hhc2guaCIKKworY29uc3Qg
UHJvcGVydHkqIGZpbmRQcm9wZXJ0eSAocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3Rl
ciB1bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHJldHVybiBDU1NQcm9wZXJ0eU5hbWVzSGFzaDo6
ZmluZFByb3BlcnR5SW1wbChzdHIsIGxlbik7Cit9CisKIGNvbnN0IGNoYXIqIGdldFByb3BlcnR5
TmFtZShDU1NQcm9wZXJ0eUlEIGlkKQogewogICAgIGlmIChpZCA8IGZpcnN0Q1NTUHJvcGVydHkp
CkBAIC0xMjUsNyArMTUzLDEwIEBAIGNvbnN0IGNoYXIqIGdldFByb3BlcnR5TmFtZShDU1NQcm9w
ZXJ0eUkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIHByb3BlcnR5TmFtZVN0cmluZ3Nb
aW5kZXhdOwogfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKIEVPRgogCi1jbG9zZSBDOwor
Y2xvc2UgUFJPUEVSVFlOQU1FUzsKIApJbmRleDogV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCShyZXZpc2lvbiA2NTgxMikK
KysrIFdlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwJKHdvcmtpbmcgY29weSkKQEAgLTQyLDE0ICs0
MiwxMyBAQCBwcmludCBHUEVSRiA8PCAiRU9GIjsKICNpbmNsdWRlIFwiQ1NTVmFsdWVLZXl3b3Jk
cy5oXCIKICV9CiAlc3RydWN0LXR5cGUKLXN0cnVjdCBWYWx1ZSB7Ci0gICAgY29uc3QgY2hhciog
bmFtZTsKLSAgICBpbnQgaWQ7Ci19OwotJWxhbmd1YWdlPUFOU0ktQworc3RydWN0IFZhbHVlOwor
JW9taXQtc3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysKICVyZWFkb25seS10YWJsZXMKICVjb21w
YXJlLXN0cm5jbXAKLSVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZFZhbHVlCislZGVm
aW5lIGNsYXNzLW5hbWUgQ1NTVmFsdWVLZXl3b3Jkc0hhc2gKKyVkZWZpbmUgbG9va3VwLWZ1bmN0
aW9uLW5hbWUgZmluZFZhbHVlSW1wbAogJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgdmFsdWVf
aGFzaF9mdW5jdGlvbgogJWRlZmluZSB3b3JkLWFycmF5LW5hbWUgdmFsdWVfd29yZF9saXN0CiAl
aW5jbHVkZXMKQEAgLTcyLDYgKzcxLDEwIEBAIHByaW50IEhFQURFUiA8PCAiRU9GIjsKICNpZm5k
ZWYgQ1NTVmFsdWVLZXl3b3Jkc19oCiAjZGVmaW5lIENTU1ZhbHVlS2V5d29yZHNfaAogCisjaW5j
bHVkZSA8c3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwogY29uc3QgaW50IENTU1Zh
bHVlSW52YWxpZCA9IDA7CiBFT0YKIApAQCAtOTIsMTMgKzk1LDE2IEBAIHByaW50IEhFQURFUiA8
PCAiRU9GIjsKIAogY29uc3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKTsK
IAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCiAjZW5kaWYgLy8gQ1NTVmFsdWVLZXl3b3Jkc19o
CisKIEVPRgogY2xvc2UgSEVBREVSOwogCi1zeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1c
IipcIiAtRCAtbiAtcyAyIENTU1ZhbHVlS2V5d29yZHMuZ3BlcmYgPiBDU1NWYWx1ZUtleXdvcmRz
LmNwcCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOworc3lzdGVtKCJn
cGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLW4gLXMgMiBDU1NWYWx1ZUtleXdvcmRzLmdw
ZXJmID4gQ1NTVmFsdWVLZXl3b3Jkc0hhc2guaCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJm
IGZhaWxlZDogJD8iOwogCi1vcGVuIEMsICI+PkNTU1ZhbHVlS2V5d29yZHMuY3BwIiB8fCBkaWUg
IkNvdWxkIG5vdCBvcGVuIENTU1ZhbHVlS2V5d29yZHMuY3BwIGZvciB3cml0aW5nIjsKK29wZW4g
QywgIj4+Q1NTVmFsdWVLZXl3b3Jkc0hhc2guaCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NW
YWx1ZUtleXdvcmRzSGFzaC5oIGZvciB3cml0aW5nIjsKIHByaW50IEMgICJzdGF0aWMgY29uc3Qg
Y2hhciAqIGNvbnN0IHZhbHVlTGlzdFtdID0ge1xuIjsKIHByaW50IEMgICJcIlwiLFxuIjsKIGZv
cmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgewpAQCAtMTA3LDEyICsxMTMsMzggQEAgZm9yZWFjaCBt
eSAkbmFtZSAoQG5hbWVzKSB7CiBwcmludCBDIDw8ICJFT0YiOwogICAgIDAKIH07CisKK0VPRgor
CitjbG9zZSBDOworCitteSAkdmFsdWVLZXl3b3Jkc0ltcGwgPSAiQ1NTVmFsdWVLZXl3b3Jkcy5j
cHAiOworCitvcGVuIFZBTFVFS0VZV09SRFMsICI+JHZhbHVlS2V5d29yZHNJbXBsIiB8fCBkaWUg
IkNvdWxkIG5vdCBvcGVuICR2YWx1ZUtleXdvcmRzSW1wbCBmb3Igd3JpdGluZyI7CitwcmludCBW
QUxVRUtFWVdPUkRTIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2Vu
ZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKworI2luY2x1ZGUg
IkNTU1ZhbHVlS2V5d29yZHMuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHNIYXNoLmgiCisKK2NvbnN0IFZh
bHVlKiBmaW5kVmFsdWUgKHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWdu
ZWQgaW50IGxlbikKK3sKKyAgICByZXR1cm4gQ1NTVmFsdWVLZXl3b3Jkc0hhc2g6OmZpbmRWYWx1
ZUltcGwoc3RyLCBsZW4pOworfQorCiBjb25zdCBjaGFyKiBnZXRWYWx1ZU5hbWUodW5zaWduZWQg
c2hvcnQgaWQpCiB7CiAgICAgaWYgKGlkID49IG51bUNTU1ZhbHVlS2V5d29yZHMgfHwgaWQgPD0g
MCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIHZhbHVlTGlzdFtpZF07CiB9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKwogRU9GCiAKLWNsb3NlIEM7CitjbG9zZSBWQUxVRUtFWVdP
UkRTOworCkluZGV4OiBXZWJDb3JlL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCShyZXZpc2lvbiA2NTgxMikK
KysrIFdlYkNvcmUvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgkod29ya2luZyBjb3B5KQpAQCAt
MSwyMSArMSwxMyBAQAogJXN0cnVjdC10eXBlCi1zdHJ1Y3QgUHViSURJbmZvIHsKLSAgICBlbnVt
IGVNb2RlIHsgCi0gICAgICAgIGVRdWlya3MsICAgICAgICAgCi0gICAgICAgIGVRdWlya3MzLCAg
ICAgICAKLSAgICAgICAgZUFsbW9zdFN0YW5kYXJkcwotICAgIH07Ci0KLSAgICBjb25zdCBjaGFy
KiBuYW1lOwotICAgIGVNb2RlIG1vZGVfaWZfbm9fc3lzaWQ7Ci0gICAgZU1vZGUgbW9kZV9pZl9z
eXNpZDsKLX0KLSVsYW5ndWFnZT1BTlNJLUMKK3N0cnVjdCBQdWJJREluZm87Cislb21pdC1zdHJ1
Y3QtdHlwZQorJWxhbmd1YWdlPUMrKwogJXJlYWRvbmx5LXRhYmxlcwogJWdsb2JhbC10YWJsZQog
JWNvbXBhcmUtc3RybmNtcAorJWRlZmluZSBjbGFzcy1uYW1lIERvY1R5cGVTdHJpbmdzSGFzaAog
JWRlZmluZSBpbml0aWFsaXplci1zdWZmaXggLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyxQ
dWJJREluZm86OmVBbG1vc3RTdGFuZGFyZHMKLSVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUg
ZmluZERvY3R5cGVFbnRyeQorJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kRG9jdHlw
ZUVudHJ5SW1wbAogJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgZG9jdHlwZV9oYXNoX2Z1bmN0
aW9uCiAlaW5jbHVkZXMKICVlbnVtCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAkocmV2aXNpb24g
NjU4MTIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjQsNiArNjQsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJh
bWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgi
CiAjaW5jbHVkZSAiSFRNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiSFRNTEJvZHlFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnRGYWN0b3J5LmgiCkBAIC03NCw4ICs3NSw2IEBA
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAK
LSNpbmNsdWRlICJEb2NUeXBlU3RyaW5ncy5jcHAiCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vQ29sb3JE
YXRhLmdwZXJmCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJm
CShyZXZpc2lvbiA2NTgxMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDEzICsxLDEyIEBACiAlc3RydWN0LXR5cGUKLXN0cnVjdCBOYW1l
ZENvbG9yIHsKLSAgICBjb25zdCBjaGFyICpuYW1lOwotICAgIGludCBSR0JWYWx1ZTsKLX07Ci0l
bGFuZ3VhZ2U9QU5TSS1DCitzdHJ1Y3QgTmFtZWRDb2xvcjsKKyVvbWl0LXN0cnVjdC10eXBlCisl
bGFuZ3VhZ2U9QysrCiAlcmVhZG9ubHktdGFibGVzCiAlZ2xvYmFsLXRhYmxlCiAlY29tcGFyZS1z
dHJuY21wCi0lZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRDb2xvcgorJWRlZmluZSBj
bGFzcy1uYW1lIENvbG9yRGF0YUhhc2gKKyVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmlu
ZENvbG9ySW1wbAogJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgY29sb3JkYXRhX2hhc2hfZnVu
Y3Rpb24KICVpbmNsdWRlcwogJWVudW0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3Iu
Y3BwCShyZXZpc2lvbiA2NTgxMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3Iu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMyArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJDb2xvci5oIgogCisjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8d3RmL0Fz
c2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCi0jaW5jbHVkZSAiQ29s
b3JEYXRhLmNwcCIKLQogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHVzaW5nIG5hbWVzcGFjZSBXVEY7
CiAKSW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0No
YW5nZUxvZwkocmV2aXNpb24gNjU4MTIpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDgtMjMgIEFuZHJhcyBCZWNzaSAgPGFiZWNz
aUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVuZGVmaW5lZCByZWZlcmVuY2UgZXJyb3JzIHdoZW4gbGlua2luZyBkdWUgdG8gZ3Bl
cmYgYW5kIGlubGluaW5nLgorICAgICAgICB3ZWJraXQub3JnL2IvMjkyNDQKKworICAgICAgICBF
RkwgQ01ha2UgY2hhbmdlcyBieSBMZWFuZHJvIFBlcmVpcmEgPGxlYW5kcm9AcHJvZnVzaW9uLm1v
Ymk+CisKKyAgICAgICAgUmVmYWN0b3IgZ3BlcmYgY29kZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0
byBmaXggdGhlIGRlYnVnIGJ1aWxkIHdpdGggZ2NjPjQuNC4KKyAgICAgICAgSGl0aGVydG8gZ3Bl
cmYgZ2VuZXJhdGVkIEMgY29kZSwgdGhlc2UgZmlsZXMgd2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBs
ZSBDKysgZmlsZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAgICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlv
bmFsaXR5IHByb3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGluIGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0
aCBuZXdlciBnY2MgdmVyc2lvbnMKKyAgICAgICAgYmVjYXVzZSBvZiBhIGJlaGF2aW91ciBjaGFu
Z2Ugb2YgZ2NjLCB3aGljaCBkaXNhYmxlcyBDIHN0eWxlIGlubGluaW5nIGluIGRlYnVnIG1vZGUu
CisgICAgICAgIFRoZSBtYWtlLWhhc2gtdG9vbHMucGwgc2NyaXB0IGxldHMgZ3BlcmYgZ2VuZXJh
dGUgQysrIGNvZGUgZm9yIGFsbCBncGVyZiBmaWxlcyBub3csIHdoaWNoIGFyZSBjb21waWxlZAor
ICAgICAgICBpbiB0aGVpciBvd24gY29tcGlsYXRpb24gdW5pdC4KKyAgICAgICAgVGhlIGZ1bmN0
aW9uYWxpdHkgcHJvdmlkZWQgYnkgdGhlIGdlbmVyYXRlZCBjb2RlIGlzIHdyYXBwZWQgYmVoaW5k
IEhhc2hUb29scy5oLCBzbyB0aGVyZSBpcyBubyBuZWVkCisgICAgICAgIGZvciBtdWx0aXBsZSBp
bmNsdXNpb25zIG9mIGdlbmVyYXRlZCBDIGZpbGVzIHRvIGFjY2VzcyB0aGVzZSBmdW5jdGlvbnMu
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbik6CisKIDIw
MTAtMDgtMjAgIEdpcmlzaCBSYW1ha3Jpc2huYW4gIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgQXJpeWEgSGlkYXlhdC4KSW5kZXg6IFdlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAJKHJldmlzaW9uIDY1ODEy
KQorKysgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNDA3LDcgKzE0MDcsNyBAQCBQYXNzUmVmUHRyPFdpZGdldD4gRnJh
bWVMb2FkZXJDbGllbnRRdDo6CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bnVtcVN0eWxlU2hlZXRQcm9wZXJ0aWVzOyArK2kpIHsKICAgICAgICAgICAgICAgICBDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5ID0gcXN0eWxlU2hlZXRQcm9wZXJ0aWVzW2ldOwogCi0gICAgICAgICAg
ICAgICAgc3R5bGVTaGVldCArPSBRU3RyaW5nOjpmcm9tTGF0aW4xKDo6Z2V0UHJvcGVydHlOYW1l
KHByb3BlcnR5KSk7CisgICAgICAgICAgICAgICAgc3R5bGVTaGVldCArPSBRU3RyaW5nOjpmcm9t
TGF0aW4xKGdldFByb3BlcnR5TmFtZShwcm9wZXJ0eSkpOwogICAgICAgICAgICAgICAgIHN0eWxl
U2hlZXQgKz0gUUxhdGluMUNoYXIoJzonKTsKICAgICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9
IGNvbXB1dGVkU3R5bGUoZWxlbWVudCktPmdldFByb3BlcnR5VmFsdWUocHJvcGVydHkpOwogICAg
ICAgICAgICAgICAgIHN0eWxlU2hlZXQgKz0gUUxhdGluMUNoYXIoJzsnKTsKSW5kZXg6IGNtYWtl
L1dlYktpdE1hY3Jvcy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjbWFrZS9XZWJLaXRNYWNyb3MuY21h
a2UJKHJldmlzaW9uIDY1ODEyKQorKysgY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCSh3b3JraW5n
IGNvcHkpCkBAIC04NCwxNSArODQsMjQgQEAgTUFDUk8gKEdFTkVSQVRFX0dSQU1NQVIgX3ByZWZp
eCBfaW5wdXQgXwogICAgICAgICBWRVJCQVRJTSkKIEVORE1BQ1JPICgpCiAKK01BQ1JPKE1BS0Vf
SEFTSF9UT09MUyBfc291cmNlKQorICAgIEdFVF9GSUxFTkFNRV9DT01QT05FTlQoX25hbWUgJHtf
c291cmNlfSBOQU1FX1dFKQorCisgICAgSUYgKCR7X3NvdXJjZX0gU1RSRVFVQUwgIkRvY1R5cGVT
dHJpbmdzIikKKyAgICAgICAgU0VUKF9oYXNoX3Rvb2xzX2ggIiR7REVSSVZFRF9TT1VSQ0VTX0RJ
Un0vSGFzaFRvb2xzLmgiKQorICAgIEVMU0UgKCkKKyAgICAgICAgU0VUKF9oYXNoX3Rvb2xzX2gg
IiIpCisgICAgRU5ESUYgKCkKIAotTUFDUk8gKEdFTkVSQVRFX0dQRVJGIF9pbnB1dCBfb3V0cHV0
IF9mdW5jIF9vcHRzKQogICAgIEFERF9DVVNUT01fQ09NTUFORCgKLSAgICAgICAgT1VUUFVUICR7
X291dHB1dH0KLSAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7X2lucHV0fQotICAgICAgICBDT01N
QU5EICR7R1BFUkZfRVhFQ1VUQUJMRX0gLUNERUdJb3QgLUwgQU5TSS1DIC0ta2V5LXBvc2l0aW9u
cz0qIC1zIDIgLU4gJHtfZnVuY30gJHtfb3B0c30gPCAke19pbnB1dH0gPiAke19vdXRwdXR9Cisg
ICAgICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19ESVJ9LyR7X25hbWV9LmNwcCAke19oYXNo
X3Rvb2xzX2h9CisgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke19zb3VyY2V9LmdwZXJmIAorICAg
ICAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQkNPUkVfRElSfS9tYWtlLWhhc2gt
dG9vbHMucGwgJHtERVJJVkVEX1NPVVJDRVNfRElSfSAke19zb3VyY2V9LmdwZXJmCiAgICAgICAg
IFZFUkJBVElNKQotRU5ETUFDUk8gKCkKIAorICAgIFVOU0VUKF9uYW1lKQorICAgIFVOU0VUKF9o
YXNoX3Rvb2xzX2gpCitFTkRNQUNSTygpCiAKIE1BQ1JPIChXRUJLSVRfV1JBUF9TT1VSQ0VMSVNU
IF9pbnB1dCkKICAgICBJRiAoV1RGX1BMQVRGT1JNX1FUKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65924</attachid>
            <date>2010-08-30 09:40:39 -0700</date>
            <delta_ts>2010-09-03 08:22:52 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>gperf.patch</filename>
            <type>text/plain</type>
            <size>25942</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDY2Mzg5
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDgt
MzAgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuZGVmaW5lZCByZWZlcmVuY2UgZXJyb3Jz
IHdoZW4gbGlua2luZyBkdWUgdG8gZ3BlcmYgYW5kIGlubGluaW5nLgorICAgICAgICB3ZWJraXQu
b3JnL2IvMjkyNDQKKworICAgICAgICBFRkwgQ01ha2UgY2hhbmdlcyBieSBMZWFuZHJvIFBlcmVp
cmEgPGxlYW5kcm9AcHJvZnVzaW9uLm1vYmk+CisKKyAgICAgICAgUmVmYWN0b3IgZ3BlcmYgY29k
ZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0byBmaXggdGhlIGRlYnVnIGJ1aWxkIHdpdGggZ2NjPjQu
NC4KKyAgICAgICAgSGl0aGVydG8gZ3BlcmYgZ2VuZXJhdGVkIEMgY29kZSwgdGhlc2UgZmlsZXMg
d2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBDKysgZmlsZXMgYWNyb3NzIFdlYkNvcmUKKyAgICAg
ICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkLiBUaGlzIHJlc3VsdGVkIGlu
IGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBuZXdlciBnY2MgdmVyc2lvbnMKKyAgICAgICAgYmVj
YXVzZSBvZiBhIGJlaGF2aW91ciBjaGFuZ2Ugb2YgZ2NjLCB3aGljaCBkaXNhYmxlcyBDIHN0eWxl
IGlubGluaW5nIGluIGRlYnVnIG1vZGUuCisgICAgICAgIFRoZSBtYWtlLWhhc2gtdG9vbHMucGwg
c2NyaXB0IGxldHMgZ3BlcmYgZ2VuZXJhdGUgQysrIGNvZGUgZm9yIGFsbCBncGVyZiBmaWxlcyBu
b3csIHdoaWNoIGFyZSBjb21waWxlZAorICAgICAgICBpbiB0aGVpciBvd24gY29tcGlsYXRpb24g
dW5pdC4KKyAgICAgICAgVGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgdGhlIGdlbmVyYXRl
ZCBjb2RlIGlzIHdyYXBwZWQgYmVoaW5kIEhhc2hUb29scy5oLCBzbyB0aGVyZSBpcyBubyBuZWVk
CisgICAgICAgIGZvciBtdWx0aXBsZSBpbmNsdXNpb25zIG9mIGdlbmVyYXRlZCBDIGZpbGVzIHRv
IGFjY2VzcyB0aGVzZSBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBjbWFrZS9XZWJLaXRNYWNyb3Mu
Y21ha2U6CisKIDIwMTAtMDgtMzAgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KSW5kZXg6IFdlYkNvcmUvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NjM4OSkK
KysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIw
MTAtMDgtMzAgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuZGVmaW5lZCByZWZlcmVuY2Ug
ZXJyb3JzIHdoZW4gbGlua2luZyBkdWUgdG8gZ3BlcmYgYW5kIGlubGluaW5nLgorICAgICAgICB3
ZWJraXQub3JnL2IvMjkyNDQKKworICAgICAgICBFRkwgQ01ha2UgY2hhbmdlcyBieSBMZWFuZHJv
IFBlcmVpcmEgPGxlYW5kcm9AcHJvZnVzaW9uLm1vYmk+CisKKyAgICAgICAgUmVmYWN0b3IgZ3Bl
cmYgY29kZSBnZW5lcmF0aW9uIGFuZCB1c2FnZSB0byBmaXggdGhlIGRlYnVnIGJ1aWxkIHdpdGgg
Z2NjPjQuNC4KKyAgICAgICAgSGl0aGVydG8gZ3BlcmYgZ2VuZXJhdGVkIEMgY29kZSwgdGhlc2Ug
ZmlsZXMgd2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBDKysgZmlsZXMgYWNyb3NzIFdlYkNvcmUK
KyAgICAgICAgdG8gYWNjZXNzIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkLiBUaGlzIHJlc3Vs
dGVkIGluIGRlYnVnIGJ1aWxkIGZhaWx1cmUgd2l0aCBuZXdlciBnY2MgdmVyc2lvbnMKKyAgICAg
ICAgYmVjYXVzZSBvZiBhIGJlaGF2aW91ciBjaGFuZ2Ugb2YgZ2NjLCB3aGljaCBkaXNhYmxlcyBD
IHN0eWxlIGlubGluaW5nIGluIGRlYnVnIG1vZGUuCisgICAgICAgIFRoZSBtYWtlLWhhc2gtdG9v
bHMucGwgc2NyaXB0IGxldHMgZ3BlcmYgZ2VuZXJhdGUgQysrIGNvZGUgZm9yIGFsbCBncGVyZiBm
aWxlcyBub3csIHdoaWNoIGFyZSBjb21waWxlZAorICAgICAgICBpbiB0aGVpciBvd24gY29tcGls
YXRpb24gdW5pdC4KKyAgICAgICAgVGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgdGhlIGdl
bmVyYXRlZCBjb2RlIGlzIHdyYXBwZWQgYmVoaW5kIEhhc2hUb29scy5oLCBzbyB0aGVyZSBpcyBu
byBuZWVkCisgICAgICAgIGZvciBtdWx0aXBsZSBpbmNsdXNpb25zIG9mIGdlbmVyYXRlZCBDIGZp
bGVzIHRvIGFjY2VzcyB0aGVzZSBmdW5jdGlvbnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5l
ZWRlZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUuZ3lw
L1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKiBjc3Mv
bWFrZXByb3AucGw6CisgICAgICAgICogY3NzL21ha2V2YWx1ZXMucGw6CisgICAgICAgICogaHRt
bC9Eb2NUeXBlU3RyaW5ncy5ncGVyZjoKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5jcHA6
CisgICAgICAgICogbWFrZS1oYXNoLXRvb2xzLnBsOgorICAgICAgICAqIHBsYXRmb3JtL0NvbG9y
RGF0YS5ncGVyZjoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHA6CisKIDIw
MTAtMDgtMzAgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KSW5kZXg6IFdlYkNvcmUvQ01ha2VMaXN0cy50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gNjYzODkpCisr
KyBXZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01NDgsNiArNTQ4LDEw
IEBAIEVORElGKCkKIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICAke0RFUklWRURfU09VUkNFU19E
SVJ9L0hUTUxFbGVtZW50RmFjdG9yeS5jcHAKICAgICAke0RFUklWRURfU09VUkNFU19ESVJ9L0hU
TUxFbnRpdHlUYWJsZS5jcHAKKyAgICAke0RFUklWRURfU09VUkNFU19ESVJ9L0RvY1R5cGVTdHJp
bmdzLmNwcAorICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTVmFsdWVLZXl3b3Jkcy5jcHAK
KyAgICAke0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnR5TmFtZXMuY3BwCisgICAgJHtE
RVJJVkVEX1NPVVJDRVNfRElSfS9Db2xvckRhdGEuY3BwCiAgICAgJHtERVJJVkVEX1NPVVJDRVNf
RElSfS9IVE1MTmFtZXMuY3BwCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9KU0hUTUxFbGVt
ZW50V3JhcHBlckZhY3RvcnkuY3BwCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9NYXRoTUxF
bGVtZW50RmFjdG9yeS5jcHAKQEAgLTE4OTAsMTIgKzE4OTQsMTAgQEAgTElTVChBUFBFTkQgV2Vi
Q29yZV9TT1VSQ0VTICR7SlNfSURMX0ZJTAogCiBHRU5FUkFURV9FTlRJVElFUygke1dFQkNPUkVf
RElSfS9odG1sL3BhcnNlci9IVE1MRW50aXR5TmFtZXMuaW4gJHtERVJJVkVEX1NPVVJDRVNfRElS
fS9IVE1MRW50aXR5VGFibGUuY3BwICR7V0VCQ09SRV9ESVJ9L2h0bWwvcGFyc2VyL2NyZWF0ZS1o
dG1sLWVudGl0eS10YWJsZSkKIAotCi1HRU5FUkFURV9HUEVSRigke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS9Db2xvckRhdGEuZ3BlcmYgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Db2xvckRhdGEuY3Bw
IGZpbmRDb2xvciAiIikKK01BS0VfSEFTSF9UT09MUygke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9D
b2xvckRhdGEpCiBBRERfU09VUkNFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcCBDb2xvckRhdGEuY3BwKQogCi0KLUdFTkVSQVRF
X0dQRVJGKCR7V0VCQ09SRV9ESVJ9L2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYgJHtERVJJVkVE
X1NPVVJDRVNfRElSfS9Eb2NUeXBlU3RyaW5ncy5jcHAgZmluZERvY3R5cGVFbnRyeSAiLUYsUHVi
SURJbmZvOjplQWxtb3N0U3RhbmRhcmRzLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyIpCitN
QUtFX0hBU0hfVE9PTFMoJHtXRUJDT1JFX0RJUn0vaHRtbC9Eb2NUeXBlU3RyaW5ncykKIEFERF9T
T1VSQ0VfREVSSVZFRF9ERVBFTkRFTkNJRVMoJHtXRUJDT1JFX0RJUn0vaHRtbC9IVE1MRG9jdW1l
bnQuY3BwIERvY1R5cGVTdHJpbmdzLmNwcCkKIAogCkBAIC0xOTE1LDYgKzE5MTcsNyBAQCBHRU5F
UkFURV9DU1NfUFJPUEVSVFlfTkFNRVMoKQogR0VORVJBVEVfQ1NTX1ZBTFVFX0tFWVdPUkRTKCkK
IAogCitBRERfU09VUkNFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7REVSSVZFRF9TT1VSQ0VTX0RJ
Un0vSGFzaFRvb2xzLmggRG9jVHlwZVN0cmluZ3MuY3BwIENTU1ZhbHVlS2V5d29yZHMuY3BwIENT
U1Byb3BlcnR5TmFtZXMuY3BwIENvbG9yRGF0YS5jcHApCiBBRERfU09VUkNFX0RFUklWRURfREVQ
RU5ERU5DSUVTKCR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTR3JhbW1hci5jcHAgQ1NTVmFsdWVL
ZXl3b3Jkcy5oKQogQUREX1NPVVJDRV9ERVJJVkVEX0RFUEVOREVOQ0lFUygke0RFUklWRURfU09V
UkNFU19ESVJ9L0NTU0dyYW1tYXIuY3BwIENTU1Byb3BlcnR5TmFtZXMuaCkKIEFERF9TT1VSQ0Vf
REVSSVZFRF9ERVBFTkRFTkNJRVMoJHtXRUJDT1JFX0RJUn0vY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
TWFwcGluZ3MuaCBDU1NWYWx1ZUtleXdvcmRzLmgpCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJp
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlzaW9uIDY2Mzg5KQorKysg
V2ViQ29yZS9XZWJDb3JlLnByaQkod29ya2luZyBjb3B5KQpAQCAtNTMwLDcgKzUzMCw3IEBAIGNz
c3Byb3BzLndrU2NyaXB0ID0gJCRQV0QvY3NzL21ha2Vwcm9wLnAKIGNzc3Byb3BzLm91dHB1dCA9
ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5jcHAKIGNzc3By
b3BzLmlucHV0ID0gV0FMRE9DU1NQUk9QUwogY3NzcHJvcHMuY29tbWFuZHMgPSBwZXJsIC1uZSBc
InByaW50IGxjXCIgJHtRTUFLRV9GSUxFX05BTUV9ICQke0RBU0hCT0FSRFNVUFBPUlRDU1NQUk9Q
RVJUSUVTfSAkJHtFWFRSQUNTU1BST1BFUlRJRVN9ID4gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNf
RElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJiYgY2QgJCRXQ19HRU5FUkFURURfU09VUkNFU19E
SVIgJiYgcGVybCAkJGNzc3Byb3BzLndrU2NyaXB0ICYmICQoREVMX0ZJTEUpICR7UU1BS0VfRklM
RV9CQVNFfS5pbiAke1FNQUtFX0ZJTEVfQkFTRX0uZ3BlcmYKLWNzc3Byb3BzLmRlcGVuZHMgPSAk
e1FNQUtFX0ZJTEVfTkFNRX0gJCR7REFTSEJPQVJEU1VQUE9SVENTU1BST1BFUlRJRVN9ICQke0VY
VFJBQ1NTUFJPUEVSVElFU30KK2Nzc3Byb3BzLmRlcGVuZHMgPSAke1FNQUtFX0ZJTEVfTkFNRX0g
JCR7REFTSEJPQVJEU1VQUE9SVENTU1BST1BFUlRJRVN9ICQke0VYVFJBQ1NTUFJPUEVSVElFU30g
JCRjc3Nwcm9wcy53a1NjcmlwdAogYWRkRXh0cmFDb21waWxlcihjc3Nwcm9wcykKIAogIyBHRU5F
UkFUT1IgNi1COgpAQCAtNTM4LDcgKzUzOCw3IEBAIGNzc3ZhbHVlcy53a1NjcmlwdCA9ICQkUFdE
L2Nzcy9tYWtldmFsdWUKIGNzc3ZhbHVlcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNF
U19ESVJ9L0NTU1ZhbHVlS2V5d29yZHMuY3BwCiBjc3N2YWx1ZXMuaW5wdXQgPSBXQUxET0NTU1ZB
TFVFUwogY3NzdmFsdWVzLmNvbW1hbmRzID0gcGVybCAtbmUgXCJwcmludCBsY1wiICR7UU1BS0Vf
RklMRV9OQU1FfSAkJEVYVFJBQ1NTVkFMVUVTID4gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElS
fS8ke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJiYgY2QgJCRXQ19HRU5FUkFURURfU09VUkNFU19ESVIg
JiYgcGVybCAkJGNzc3ZhbHVlcy53a1NjcmlwdCAmJiAkKERFTF9GSUxFKSAke1FNQUtFX0ZJTEVf
QkFTRX0uaW4gJHtRTUFLRV9GSUxFX0JBU0V9LmdwZXJmCi1jc3N2YWx1ZXMuZGVwZW5kcyA9ICR7
UU1BS0VfRklMRV9OQU1FfSAkJHtFWFRSQUNTU1ZBTFVFU30KK2Nzc3ZhbHVlcy5kZXBlbmRzID0g
JHtRTUFLRV9GSUxFX05BTUV9ICQke0VYVFJBQ1NTVkFMVUVTfSAkJGNzc3ZhbHVlcy53a1Njcmlw
dAogY3NzdmFsdWVzLmNsZWFuID0gJHtRTUFLRV9GSUxFX09VVH0gJHtRTUFLRV9WQVJfV0NfR0VO
RVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uaAogYWRkRXh0cmFDb21waWxl
cihjc3N2YWx1ZXMpCiAKSW5kZXg6IFdlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsCShyZXZpc2lvbiA2NjM4OSkKKysrIFdl
YkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0yNywyNCArMjcsMTIx
IEBAIG15ICRvdXRkaXIgPSAkQVJHVlswXTsKIHNoaWZ0OwogbXkgJG9wdGlvbiA9IGJhc2VuYW1l
KCRBUkdWWzBdLCIuZ3BlcmYiKTsKIAorbXkgJGhhc2hUb29sc0hlYWRlciA9ICIkb3V0ZGlyL0hh
c2hUb29scy5oIjsKKworc3ViIGNyZWF0ZUhhc2hUb29sc0hlYWRlcigpIHsKKworb3BlbiBIRUFE
RVIsICI+JGhhc2hUb29sc0hlYWRlciIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkaGFzaFRvb2xz
SGVhZGVyIGZvciB3cml0aW5nIjsKK3ByaW50IEhFQURFUiA8PCAiRU9GIjsKKy8qIFRoaXMgZmls
ZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9vbHMucGwsIGRvIG5v
dCBlZGl0ICovCisKKyNpZm5kZWYgSGFzaFRvb2xzX2gKKyNkZWZpbmUgSGFzaFRvb2xzX2gKKwor
I2luY2x1ZGUgInd0Zi9QbGF0Zm9ybS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVj
dCBQdWJJREluZm8geworICAgIGVudW0gZU1vZGUgeworICAgICAgICBlUXVpcmtzLAorICAgICAg
ICBlUXVpcmtzMywKKyAgICAgICAgZUFsbW9zdFN0YW5kYXJkcworICAgIH07CisKKyAgICBjb25z
dCBjaGFyKiBuYW1lOworICAgIGVNb2RlIG1vZGVfaWZfbm9fc3lzaWQ7CisgICAgZU1vZGUgbW9k
ZV9pZl9zeXNpZDsKK307CisKK3N0cnVjdCBOYW1lZENvbG9yIHsKKyAgICBjb25zdCBjaGFyKiBu
YW1lOworICAgIGludCBSR0JWYWx1ZTsKK307CisKK3N0cnVjdCBQcm9wZXJ0eSB7CisgICAgY29u
c3QgY2hhciogbmFtZTsKKyAgICBpbnQgaWQ7Cit9OworCitzdHJ1Y3QgVmFsdWUgeworICAgIGNv
bnN0IGNoYXIqIG5hbWU7CisgICAgaW50IGlkOworfTsKKworY29uc3QgUHViSURJbmZvKiBmaW5k
RG9jdHlwZUVudHJ5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQg
aW50IGxlbik7Citjb25zdCBOYW1lZENvbG9yKiBmaW5kQ29sb3IocmVnaXN0ZXIgY29uc3QgY2hh
ciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKK2NvbnN0IFByb3BlcnR5KiBmaW5k
UHJvcGVydHkocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQg
bGVuKTsKK2NvbnN0IFZhbHVlKiBmaW5kVmFsdWUocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCBy
ZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKK30KKworI2VuZGlmIC8vIEhhc2hUb29sc19oCisK
K0VPRgorY2xvc2UgSEVBREVSOworCit9CisKIHN3aXRjaCAoJG9wdGlvbikgewogCiBjYXNlICJE
b2NUeXBlU3RyaW5ncyIgewogCi0gICAgbXkgJGRvY1R5cGVTdHJpbmdzR2VuZXJhdGVkICAgID0g
IiRvdXRkaXIvRG9jVHlwZVN0cmluZ3MuY3BwIjsKKyAgICBjcmVhdGVIYXNoVG9vbHNIZWFkZXIo
KTsKKworICAgIG15ICRkb2NUeXBlU3RyaW5nc0ltcGwgICAgICAgICA9ICIkb3V0ZGlyL0RvY1R5
cGVTdHJpbmdzLmNwcCI7CisgICAgbXkgJGRvY1R5cGVTdHJpbmdzR2VuZXJhdGVkICAgID0gIiRv
dXRkaXIvRG9jVHlwZVN0cmluZ3NIYXNoLmgiOwogICAgIG15ICRkb2NUeXBlU3RyaW5nc0dwZXJm
ICAgICAgICA9ICRBUkdWWzBdOwogICAgIHNoaWZ0OwogCisgICAgb3BlbiBET0NUWVBFU1RSSU5H
UywgIj4kZG9jVHlwZVN0cmluZ3NJbXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICRkb2NUeXBl
U3RyaW5nc0ltcGwgZm9yIHdyaXRpbmciOworICAgIHByaW50IERPQ1RZUEVTVFJJTkdTIDw8ICJF
T0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFz
aC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKworI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiRG9jVHlwZVN0cmluZ3NIYXNoLmgiCisKK2Nv
bnN0IFB1YklESW5mbyogZmluZERvY3R5cGVFbnRyeSAocmVnaXN0ZXIgY29uc3QgY2hhciogc3Ry
LCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHJldHVybiBEb2NUeXBlU3RyaW5n
c0hhc2g6OmZpbmREb2N0eXBlRW50cnlJbXBsKHN0ciwgbGVuKTsKK30KKworfQorCitFT0YKKyAg
ICBjbG9zZSBET0NUWVBFU1RSSU5HUzsKKwogICAgIHN5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRp
b25zPVwiKlwiIC1zIDIgJGRvY1R5cGVTdHJpbmdzR3BlcmYgPiAkZG9jVHlwZVN0cmluZ3NHZW5l
cmF0ZWQiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKIAogfSAjIGNh
c2UgIkRvY1R5cGVTdHJpbmdzIgogCiBjYXNlICJDb2xvckRhdGEiIHsKIAotICAgIG15ICRjb2xv
ckRhdGFHZW5lcmF0ZWQgICA9ICIkb3V0ZGlyL0NvbG9yRGF0YS5jcHAiOwotICAgIG15ICRjb2xv
ckRhdGFHcGVyZiAgICAgICA9ICRBUkdWWzBdOworICAgIG15ICRjb2xvckRhdGFJbXBsICAgICAg
ICAgICAgICA9ICIkb3V0ZGlyL0NvbG9yRGF0YS5jcHAiOworICAgIG15ICRjb2xvckRhdGFHZW5l
cmF0ZWQgICAgICAgICA9ICIkb3V0ZGlyL0NvbG9yRGF0YUhhc2guaCI7CisgICAgbXkgJGNvbG9y
RGF0YUdwZXJmICAgICAgICAgICAgID0gJEFSR1ZbMF07CiAgICAgc2hpZnQ7CiAKKyAgICBvcGVu
IENPTE9SREFUQSwgIj4kY29sb3JEYXRhSW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkY29s
b3JEYXRhSW1wbCBmb3Igd3JpdGluZyI7CisgICAgcHJpbnQgQ09MT1JEQVRBIDw8ICJFT0YiOwor
LyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29s
cy5wbCwgZG8gbm90IGVkaXQgKi8KKworI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiQ29sb3JEYXRhSGFzaC5oIgorCitjb25zdCBzdHJ1Y3Qg
TmFtZWRDb2xvciogZmluZENvbG9yIChyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVy
IHVuc2lnbmVkIGludCBsZW4pCit7CisgICAgcmV0dXJuIENvbG9yRGF0YUhhc2g6OmZpbmRDb2xv
ckltcGwoc3RyLCBsZW4pOworfQorCit9CisKK0VPRgorICAgIGNsb3NlIENPTE9SREFUQTsKKwog
ICAgIHN5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1zIDIgJGNvbG9yRGF0
YUdwZXJmID4gJGNvbG9yRGF0YUdlbmVyYXRlZCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJm
IGZhaWxlZDogJD8iOwogCiB9ICMgY2FzZSAiQ29sb3JEYXRhIgpJbmRleDogV2ViQ29yZS9XZWJD
b3JlLmd5cC9XZWJDb3JlLmd5cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dl
YkNvcmUuZ3lwCShyZXZpc2lvbiA2NjM4OSkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29y
ZS5neXAJKHdvcmtpbmcgY29weSkKQEAgLTY0MSw3ICs2NDEsNiBAQAogICAgICAgICAgICAgJzwo
U0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdCcsCiAgICAgICAgICAgICAnPChSVUxFX0lO
UFVUX1BBVEgpJywKICAgICAgICAgICBdLAotICAgICAgICAgICdwcm9jZXNzX291dHB1dHNfYXNf
c291cmNlcyc6IDAsCiAgICAgICAgIH0sCiAgICAgICAgICMgUnVsZSB0byBidWlsZCBnZW5lcmF0
ZWQgSmF2YVNjcmlwdCAoVjgpIGJpbmRpbmdzIGZyb20gLmlkbCBzb3VyY2UuCiAgICAgICAgIHsK
QEAgLTczOCw2ICs3MzcsMTIgQEAKICAgICAgICAgIyBpbiB3ZWJjb3JlX2ZpbGVzLgogICAgICAg
ICAnPEAoZGVyaXZlZF9zb3VyY2VzX2FnZ3JlZ2F0ZV9maWxlcyknLAogCisgICAgICAgICMgQWRk
aXRpb25hbCAuY3BwIGZpbGVzIGZvciBIYXNoVG9vbHMuaAorICAgICAgICAnPChTSEFSRURfSU5U
RVJNRURJQVRFX0RJUikvd2Via2l0L0RvY1R5cGVTdHJpbmdzLmNwcCcsCisgICAgICAgICc8KFNI
QVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvQ29sb3JEYXRhLmNwcCcsCisgICAgICAgICc8
KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvQ1NTUHJvcGVydHlOYW1lcy5jcHAnLAor
ICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L0NTU1ZhbHVlS2V5d29y
ZHMuY3BwJywKKwogICAgICAgICAjIEFkZGl0aW9uYWwgLmNwcCBmaWxlcyBmcm9tIHdlYmNvcmVf
YmluZGluZ3Nfc291cmNlcyBhY3Rpb25zLgogICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRF
X0RJUikvd2Via2l0L0hUTUxFbGVtZW50RmFjdG9yeS5jcHAnLAogICAgICAgICAnPChTSEFSRURf
SU5URVJNRURJQVRFX0RJUikvd2Via2l0L0hUTUxOYW1lcy5jcHAnLApJbmRleDogV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA2NjM4OSkKKysrIFdlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTU0NSw2ICs1NDUs
MjYgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0i
JChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xIYXNo
VG9vbHMuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBh
dGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
RG9jVHlwZVN0cmluZ3MuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJ
CVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xDU1NWYWx1ZUtleXdvcmRzLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJ
CQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcQ1NTUHJvcGVydHlOYW1lcy5jcHAiDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXENvbG9yRGF0YS5jcHAiDQorCQkJ
CT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91
dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEluc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkluZGV4OiBXZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNjYzODkpCisrKyBXZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
NDkzLDYgKzQ5MywxMCBAQAogCQkxQUI3RkM4NjBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYWx1
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFCN0ZD
NjUwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFsdWUuaCAqLzsgfTsKIAkJMUFCN0ZDODcwQThC
OTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFCN0ZDNjYwQThCOTJFQzAwRDlEMzdC
IC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwICovOyB9OwogCQkxQUI3RkM4ODBBOEI5MkVD
MDBEOUQzN0IgLyogWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFCN0ZDNjcwQThCOTJFQzAwRDlEMzdCIC8qIFhQ
YXRoVmFyaWFibGVSZWZlcmVuY2UuaCAqLzsgfTsKKwkJMUFCQTc2QzkxMUQyMEU0NzAwNEMyMDFD
IC8qIENvbG9yRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFNDA2RjNGQjExOTgzMDdEMDA5RDU5RDYgLyogQ29sb3JEYXRhLmNwcCAqLzsgfTsK
KwkJMUFCQTc2Q0ExMUQyMEU1MDAwNEMyMDFDIC8qIENTU1Byb3BlcnR5TmFtZXMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQxRUEwMzgxMTk4MzZE
QjAwNzEwQkM1IC8qIENTU1Byb3BlcnR5TmFtZXMuY3BwICovOyB9OworCQkxQUJBNzZDQjExRDIw
RTU3MDA0QzIwMUMgLyogQ1NTVmFsdWVLZXl3b3Jkcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDFFQTAzOTExOTgzNzQ5MDA3MTBCQzUgLyogQ1NT
VmFsdWVLZXl3b3Jkcy5jcHAgKi87IH07CisJCTFBQkE3NkNDMTFEMjBFNUIwMDRDMjAxQyAvKiBE
b2NUeXBlU3RyaW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFNDA2RjNGQTExOTgzMDREMDA5RDU5RDYgLyogRG9jVHlwZVN0cmluZ3MuY3BwICov
OyB9OwogCQkxQUJGRTc1MzBDRDk2OEQwMDBGRTQ4MzQgLyogU1FMVHJhbnNhY3Rpb24uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFCRkU3NTIwQ0Q5
NjhEMDAwRkU0ODM0IC8qIFNRTFRyYW5zYWN0aW9uLmNwcCAqLzsgfTsKIAkJMUFDMjI2MEMwREI2
OUYxOTAwODlCNjY5IC8qIEpTRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUMyMjYwQTBEQjY5RjE5MDA4OUI2Njkg
LyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCAqLzsgfTsKIAkJMUFDMjI2MEQwREI2OUYxOTAw
ODlCNjY5IC8qIEpTRE9NQXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDMjI2MEIwREI2OUYxOTAwODlCNjY5IC8qIEpTRE9N
QXBwbGljYXRpb25DYWNoZS5oICovOyB9OwpAQCAtMjA3MjksNiArMjA3MzMsMTAgQEAKIAkJCWlz
YSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0
NzsKIAkJCWZpbGVzID0gKAorCQkJCTFBQkE3NkM5MTFEMjBFNDcwMDRDMjAxQyAvKiBDb2xvckRh
dGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUFCQTc2Q0ExMUQyMEU1MDAwNEMyMDFDIC8qIENT
U1Byb3BlcnR5TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUFCQTc2Q0IxMUQyMEU1NzAw
NEMyMDFDIC8qIENTU1ZhbHVlS2V5d29yZHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUFCQTc2
Q0MxMUQyMEU1QjAwNEMyMDFDIC8qIERvY1R5cGVTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUI1QjVEQzY5MTE5QkIzRDUwMDJBODc5MCAvKiBBYnN0cmFjdERhdGFiYXNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTQxRTFCMUQwMEZGNTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyOUE4MTIyODBGQkI5QzFEMDA1MTAyOTMgLyogQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCShy
ZXZpc2lvbiA2NjM4OSkKKysrIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTYxLDYgKzYxLDcgQEAKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNs
dWRlICJGb250RmFtaWx5VmFsdWUuaCIKICNpbmNsdWRlICJGb250VmFsdWUuaCIKKyNpbmNsdWRl
ICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1
ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiUGFpci5oIgpAQCAtODgsOSArODksNiBAQCBleHRlcm4gaW50
IGNzc3l5cGFyc2Uodm9pZCogcGFyc2VyKTsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2luZyBu
YW1lc3BhY2UgV1RGOwogCi0jaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5jcHAiCi0jaW5jbHVk
ZSAiQ1NTVmFsdWVLZXl3b3Jkcy5jcHAiCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIElOVkFMSURfTlVNX1BBUlNFRF9QUk9QRVJUSUVTID0gVUlOVF9NQVg7
CkluZGV4OiBXZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nz
cy9tYWtlcHJvcC5wbAkocmV2aXNpb24gNjYzODkpCisrKyBXZWJDb3JlL2Nzcy9tYWtlcHJvcC5w
bAkod29ya2luZyBjb3B5KQpAQCAtNDEsMTUgKzQxLDE0IEBAIHByaW50IEdQRVJGIDw8ICJFT0Yi
OwogI2luY2x1ZGUgXCJDU1NQcm9wZXJ0eU5hbWVzLmhcIgogJX0KICVzdHJ1Y3QtdHlwZQotc3Ry
dWN0IFByb3BlcnR5IHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGludCBpZDsKLX07Ci0l
bGFuZ3VhZ2U9QU5TSS1DCitzdHJ1Y3QgUHJvcGVydHk7Cislb21pdC1zdHJ1Y3QtdHlwZQorJWxh
bmd1YWdlPUMrKwogJXJlYWRvbmx5LXRhYmxlcwogJWdsb2JhbC10YWJsZQogJWNvbXBhcmUtc3Ry
bmNtcAotJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kUHJvcGVydHkKKyVkZWZpbmUg
Y2xhc3MtbmFtZSBDU1NQcm9wZXJ0eU5hbWVzSGFzaAorJWRlZmluZSBsb29rdXAtZnVuY3Rpb24t
bmFtZSBmaW5kUHJvcGVydHlJbXBsCiAlZGVmaW5lIGhhc2gtZnVuY3Rpb24tbmFtZSBwcm9wZXJ5
X2hhc2hfZnVuY3Rpb24KICVkZWZpbmUgd29yZC1hcnJheS1uYW1lIHByb3BlcnR5X3dvcmRsaXN0
CiAlaW5jbHVkZXMKQEAgLTcyLDYgKzcxLDEwIEBAIHByaW50IEhFQURFUiA8PCAiRU9GIjsKICNp
Zm5kZWYgQ1NTUHJvcGVydHlOYW1lc19oCiAjZGVmaW5lIENTU1Byb3BlcnR5TmFtZXNfaAogCisj
aW5jbHVkZSA8c3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwogZW51bSBDU1NQcm9w
ZXJ0eUlEIHsKICAgICBDU1NQcm9wZXJ0eUludmFsaWQgPSAwLAogRU9GCkBAIC0xMDUsMTcgKzEw
OCw0MSBAQCBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAKIGNvbnN0IGNoYXIqIGdldFByb3BlcnR5
TmFtZShDU1NQcm9wZXJ0eUlEKTsKIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCiAjZW5kaWYg
Ly8gQ1NTUHJvcGVydHlOYW1lc19oCiAKIEVPRgogCiBjbG9zZSBIRUFERVI7CiAKLXN5c3RlbSgi
Z3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1uIC1zIDIgQ1NTUHJvcGVydHlOYW1lcy5n
cGVyZiA+IENTU1Byb3BlcnR5TmFtZXMuY3BwIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYg
ZmFpbGVkOiAkPyI7CitzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtbiAt
cyAyIENTU1Byb3BlcnR5TmFtZXMuZ3BlcmYgPiBDU1NQcm9wZXJ0eU5hbWVzSGFzaC5oIikgPT0g
MCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKLW9wZW4gQywgIj4+Q1NTUHJv
cGVydHlOYW1lcy5jcHAiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTUHJvcGVydHlOYW1lcy5j
cHAgZm9yIHdyaXRpbmciOworb3BlbiBDLCAiPj5DU1NQcm9wZXJ0eU5hbWVzSGFzaC5oIiB8fCBk
aWUgIkNvdWxkIG5vdCBvcGVuIENTU1Byb3BlcnR5TmFtZXNIYXNoLmggZm9yIHdyaXRpbmciOwog
cHJpbnQgQyA8PCAiRU9GIjsKIAorRU9GCisKK2Nsb3NlIEM7CisKK215ICRwcm9wZXJ0eU5hbWVz
SW1wbCA9ICJDU1NQcm9wZXJ0eU5hbWVzLmNwcCI7CisKK29wZW4gUFJPUEVSVFlOQU1FUywgIj4k
cHJvcGVydHlOYW1lc0ltcGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJHByb3BlcnR5TmFtZXNJ
bXBsIGZvciB3cml0aW5nIjsKK3ByaW50IFBST1BFUlRZTkFNRVMgPDwgIkVPRiI7CisvKiBUaGlz
IGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBk
byBub3QgZWRpdCAqLworCisKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCisjaW5jbHVk
ZSAiSGFzaFRvb2xzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJDU1NQcm9w
ZXJ0eU5hbWVzSGFzaC5oIgorCitjb25zdCBQcm9wZXJ0eSogZmluZFByb3BlcnR5IChyZWdpc3Rl
ciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBsZW4pCit7CisgICAgcmV0
dXJuIENTU1Byb3BlcnR5TmFtZXNIYXNoOjpmaW5kUHJvcGVydHlJbXBsKHN0ciwgbGVuKTsKK30K
KwogY29uc3QgY2hhciogZ2V0UHJvcGVydHlOYW1lKENTU1Byb3BlcnR5SUQgaWQpCiB7CiAgICAg
aWYgKGlkIDwgZmlyc3RDU1NQcm9wZXJ0eSkKQEAgLTEyNSw3ICsxNTIsMTAgQEAgY29uc3QgY2hh
ciogZ2V0UHJvcGVydHlOYW1lKENTU1Byb3BlcnR5SQogICAgICAgICByZXR1cm4gMDsKICAgICBy
ZXR1cm4gcHJvcGVydHlOYW1lU3RyaW5nc1tpbmRleF07CiB9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKwogRU9GCiAKLWNsb3NlIEM7CitjbG9zZSBQUk9QRVJUWU5BTUVTOwogCkluZGV4OiBX
ZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL21ha2V2
YWx1ZXMucGwJKHJldmlzaW9uIDY2Mzg5KQorKysgV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAko
d29ya2luZyBjb3B5KQpAQCAtNDIsMTQgKzQyLDEzIEBAIHByaW50IEdQRVJGIDw8ICJFT0YiOwog
I2luY2x1ZGUgXCJDU1NWYWx1ZUtleXdvcmRzLmhcIgogJX0KICVzdHJ1Y3QtdHlwZQotc3RydWN0
IFZhbHVlIHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIGludCBpZDsKLX07Ci0lbGFuZ3Vh
Z2U9QU5TSS1DCitzdHJ1Y3QgVmFsdWU7Cislb21pdC1zdHJ1Y3QtdHlwZQorJWxhbmd1YWdlPUMr
KwogJXJlYWRvbmx5LXRhYmxlcwogJWNvbXBhcmUtc3RybmNtcAotJWRlZmluZSBsb29rdXAtZnVu
Y3Rpb24tbmFtZSBmaW5kVmFsdWUKKyVkZWZpbmUgY2xhc3MtbmFtZSBDU1NWYWx1ZUtleXdvcmRz
SGFzaAorJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kVmFsdWVJbXBsCiAlZGVmaW5l
IGhhc2gtZnVuY3Rpb24tbmFtZSB2YWx1ZV9oYXNoX2Z1bmN0aW9uCiAlZGVmaW5lIHdvcmQtYXJy
YXktbmFtZSB2YWx1ZV93b3JkX2xpc3QKICVpbmNsdWRlcwpAQCAtNzIsNiArNzEsMTAgQEAgcHJp
bnQgSEVBREVSIDw8ICJFT0YiOwogI2lmbmRlZiBDU1NWYWx1ZUtleXdvcmRzX2gKICNkZWZpbmUg
Q1NTVmFsdWVLZXl3b3Jkc19oCiAKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCiBjb25zdCBpbnQgQ1NTVmFsdWVJbnZhbGlkID0gMDsKIEVPRgogCkBAIC05Miwx
MyArOTUsMTYgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogCiBjb25zdCBjaGFyKiBnZXRWYWx1
ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpOwogCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKICNl
bmRpZiAvLyBDU1NWYWx1ZUtleXdvcmRzX2gKKwogRU9GCiBjbG9zZSBIRUFERVI7CiAKLXN5c3Rl
bSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1uIC1zIDIgQ1NTVmFsdWVLZXl3b3Jk
cy5ncGVyZiA+IENTU1ZhbHVlS2V5d29yZHMuY3BwIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3Bl
cmYgZmFpbGVkOiAkPyI7CitzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAt
biAtcyAyIENTU1ZhbHVlS2V5d29yZHMuZ3BlcmYgPiBDU1NWYWx1ZUtleXdvcmRzSGFzaC5oIikg
PT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKLW9wZW4gQywgIj4+Q1NT
VmFsdWVLZXl3b3Jkcy5jcHAiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTVmFsdWVLZXl3b3Jk
cy5jcHAgZm9yIHdyaXRpbmciOworb3BlbiBDLCAiPj5DU1NWYWx1ZUtleXdvcmRzSGFzaC5oIiB8
fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1ZhbHVlS2V5d29yZHNIYXNoLmggZm9yIHdyaXRpbmci
OwogcHJpbnQgQyAgInN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdmFsdWVMaXN0W10gPSB7XG4i
OwogcHJpbnQgQyAgIlwiXCIsXG4iOwogZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CkBAIC0x
MDcsMTIgKzExMywzOCBAQCBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKIHByaW50IEMgPDwg
IkVPRiI7CiAgICAgMAogfTsKKworRU9GCisKK2Nsb3NlIEM7CisKK215ICR2YWx1ZUtleXdvcmRz
SW1wbCA9ICJDU1NWYWx1ZUtleXdvcmRzLmNwcCI7CisKK29wZW4gVkFMVUVLRVlXT1JEUywgIj4k
dmFsdWVLZXl3b3Jkc0ltcGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJHZhbHVlS2V5d29yZHNJ
bXBsIGZvciB3cml0aW5nIjsKK3ByaW50IFZBTFVFS0VZV09SRFMgPDwgIkVPRiI7CisvKiBUaGlz
IGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBk
byBub3QgZWRpdCAqLworCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUg
Ikhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiQ1NTVmFsdWVL
ZXl3b3Jkc0hhc2guaCIKKworY29uc3QgVmFsdWUqIGZpbmRWYWx1ZSAocmVnaXN0ZXIgY29uc3Qg
Y2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHJldHVybiBDU1NW
YWx1ZUtleXdvcmRzSGFzaDo6ZmluZFZhbHVlSW1wbChzdHIsIGxlbik7Cit9CisKIGNvbnN0IGNo
YXIqIGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBpZCkKIHsKICAgICBpZiAoaWQgPj0gbnVt
Q1NTVmFsdWVLZXl3b3JkcyB8fCBpZCA8PSAwKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1
cm4gdmFsdWVMaXN0W2lkXTsKIH0KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCiBFT0YKIAot
Y2xvc2UgQzsKK2Nsb3NlIFZBTFVFS0VZV09SRFM7CisKSW5kZXg6IFdlYkNvcmUvaHRtbC9Eb2NU
eXBlU3RyaW5ncy5ncGVyZgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvRG9jVHlwZVN0cmlu
Z3MuZ3BlcmYJKHJldmlzaW9uIDY2Mzg5KQorKysgV2ViQ29yZS9odG1sL0RvY1R5cGVTdHJpbmdz
LmdwZXJmCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIxICsxLDEzIEBACiAlc3RydWN0LXR5cGUKLXN0
cnVjdCBQdWJJREluZm8gewotICAgIGVudW0gZU1vZGUgeyAKLSAgICAgICAgZVF1aXJrcywgICAg
ICAgICAKLSAgICAgICAgZVF1aXJrczMsICAgICAgIAotICAgICAgICBlQWxtb3N0U3RhbmRhcmRz
Ci0gICAgfTsKLQotICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgZU1vZGUgbW9kZV9pZl9ub19z
eXNpZDsKLSAgICBlTW9kZSBtb2RlX2lmX3N5c2lkOwotfQotJWxhbmd1YWdlPUFOU0ktQworc3Ry
dWN0IFB1YklESW5mbzsKKyVvbWl0LXN0cnVjdC10eXBlCislbGFuZ3VhZ2U9QysrCiAlcmVhZG9u
bHktdGFibGVzCiAlZ2xvYmFsLXRhYmxlCiAlY29tcGFyZS1zdHJuY21wCislZGVmaW5lIGNsYXNz
LW5hbWUgRG9jVHlwZVN0cmluZ3NIYXNoCiAlZGVmaW5lIGluaXRpYWxpemVyLXN1ZmZpeCAsUHVi
SURJbmZvOjplQWxtb3N0U3RhbmRhcmRzLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcwotJWRl
ZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kRG9jdHlwZUVudHJ5CislZGVmaW5lIGxvb2t1
cC1mdW5jdGlvbi1uYW1lIGZpbmREb2N0eXBlRW50cnlJbXBsCiAlZGVmaW5lIGhhc2gtZnVuY3Rp
b24tbmFtZSBkb2N0eXBlX2hhc2hfZnVuY3Rpb24KICVpbmNsdWRlcwogJWVudW0KSW5kZXg6IFdl
YkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9I
VE1MRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA2NjM4OSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MRG9j
dW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw2ICs2NCw3IEBACiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJIVE1MRG9jdW1lbnRQYXJzZXIu
aCIKICNpbmNsdWRlICJIVE1MQm9keUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudEZh
Y3RvcnkuaCIKQEAgLTc0LDggKzc1LDYgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAotI2luY2x1ZGUgIkRvY1R5cGVTdHJpbmdzLmNwcCIK
LQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYJKHJldmlzaW9uIDY2Mzg5KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYJKHdvcmtpbmcgY29weSkKQEAgLTEsMTMgKzEsMTIgQEAK
ICVzdHJ1Y3QtdHlwZQotc3RydWN0IE5hbWVkQ29sb3IgewotICAgIGNvbnN0IGNoYXIgKm5hbWU7
Ci0gICAgaW50IFJHQlZhbHVlOwotfTsKLSVsYW5ndWFnZT1BTlNJLUMKK3N0cnVjdCBOYW1lZENv
bG9yOworJW9taXQtc3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysKICVyZWFkb25seS10YWJsZXMK
ICVnbG9iYWwtdGFibGUKICVjb21wYXJlLXN0cm5jbXAKLSVkZWZpbmUgbG9va3VwLWZ1bmN0aW9u
LW5hbWUgZmluZENvbG9yCislZGVmaW5lIGNsYXNzLW5hbWUgQ29sb3JEYXRhSGFzaAorJWRlZmlu
ZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kQ29sb3JJbXBsCiAlZGVmaW5lIGhhc2gtZnVuY3Rp
b24tbmFtZSBjb2xvcmRhdGFfaGFzaF9mdW5jdGlvbgogJWluY2x1ZGVzCiAlZW51bQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAJKHJldmlzaW9uIDY2Mzg5KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDEzICsy
NiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbG9yLmgiCiAKKyNpbmNs
dWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUg
PG1hdGguaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYXRo
RXh0cmFzLmg+CiAKLSNpbmNsdWRlICJDb2xvckRhdGEuY3BwIgotCiB1c2luZyBuYW1lc3BhY2Ug
c3RkOwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIApJbmRleDogV2ViS2l0L3F0L0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NjM4OSkKKysrIFdl
YktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0w
OC0zMCAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5kZWZpbmVkIHJlZmVyZW5jZSBlcnJv
cnMgd2hlbiBsaW5raW5nIGR1ZSB0byBncGVyZiBhbmQgaW5saW5pbmcuCisgICAgICAgIHdlYmtp
dC5vcmcvYi8yOTI0NAorCisgICAgICAgIEVGTCBDTWFrZSBjaGFuZ2VzIGJ5IExlYW5kcm8gUGVy
ZWlyYSA8bGVhbmRyb0Bwcm9mdXNpb24ubW9iaT4KKworICAgICAgICBSZWZhY3RvciBncGVyZiBj
b2RlIGdlbmVyYXRpb24gYW5kIHVzYWdlIHRvIGZpeCB0aGUgZGVidWcgYnVpbGQgd2l0aCBnY2M+
NC40LgorICAgICAgICBIaXRoZXJ0byBncGVyZiBnZW5lcmF0ZWQgQyBjb2RlLCB0aGVzZSBmaWxl
cyB3ZXJlIGluY2x1ZGVkIGluIG11bHRpcGxlIEMrKyBmaWxlcyBhY3Jvc3MgV2ViQ29yZQorICAg
ICAgICB0byBhY2Nlc3MgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQuIFRoaXMgcmVzdWx0ZWQg
aW4gZGVidWcgYnVpbGQgZmFpbHVyZSB3aXRoIG5ld2VyIGdjYyB2ZXJzaW9ucworICAgICAgICBi
ZWNhdXNlIG9mIGEgYmVoYXZpb3VyIGNoYW5nZSBvZiBnY2MsIHdoaWNoIGRpc2FibGVzIEMgc3R5
bGUgaW5saW5pbmcgaW4gZGVidWcgbW9kZS4KKyAgICAgICAgVGhlIG1ha2UtaGFzaC10b29scy5w
bCBzY3JpcHQgbGV0cyBncGVyZiBnZW5lcmF0ZSBDKysgY29kZSBmb3IgYWxsIGdwZXJmIGZpbGVz
IG5vdywgd2hpY2ggYXJlIGNvbXBpbGVkCisgICAgICAgIGluIHRoZWlyIG93biBjb21waWxhdGlv
biB1bml0LgorICAgICAgICBUaGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSB0aGUgZ2VuZXJh
dGVkIGNvZGUgaXMgd3JhcHBlZCBiZWhpbmQgSGFzaFRvb2xzLmgsIHNvIHRoZXJlIGlzIG5vIG5l
ZWQKKyAgICAgICAgZm9yIG11bHRpcGxlIGluY2x1c2lvbnMgb2YgZ2VuZXJhdGVkIEMgZmlsZXMg
dG8gYWNjZXNzIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGll
bnRRdDo6Y3JlYXRlUGx1Z2luKToKKwogMjAxMC0wOC0zMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjY2MTk4LgpJbmRleDogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFF0LmNwcAkocmV2aXNpb24gNjYzODkpCisrKyBXZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MDcsNyArMTQw
Nyw3IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudFF0OjoKICAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1xU3R5bGVTaGVldFByb3BlcnRpZXM7ICsr
aSkgewogICAgICAgICAgICAgICAgIENTU1Byb3BlcnR5SUQgcHJvcGVydHkgPSBxc3R5bGVTaGVl
dFByb3BlcnRpZXNbaV07CiAKLSAgICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9IFFTdHJpbmc6
OmZyb21MYXRpbjEoOjpnZXRQcm9wZXJ0eU5hbWUocHJvcGVydHkpKTsKKyAgICAgICAgICAgICAg
ICBzdHlsZVNoZWV0ICs9IFFTdHJpbmc6OmZyb21MYXRpbjEoZ2V0UHJvcGVydHlOYW1lKHByb3Bl
cnR5KSk7CiAgICAgICAgICAgICAgICAgc3R5bGVTaGVldCArPSBRTGF0aW4xQ2hhcignOicpOwog
ICAgICAgICAgICAgICAgIHN0eWxlU2hlZXQgKz0gY29tcHV0ZWRTdHlsZShlbGVtZW50KS0+Z2V0
UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7CiAgICAgICAgICAgICAgICAgc3R5bGVTaGVldCArPSBR
TGF0aW4xQ2hhcignOycpOwpJbmRleDogY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGNtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQkocmV2aXNpb24gNjYzODkpCisrKyBjbWFr
ZS9XZWJLaXRNYWNyb3MuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTg0LDE1ICs4NCwyNCBAQCBN
QUNSTyAoR0VORVJBVEVfR1JBTU1BUiBfcHJlZml4IF9pbnB1dCBfCiAgICAgICAgIFZFUkJBVElN
KQogRU5ETUFDUk8gKCkKIAorTUFDUk8oTUFLRV9IQVNIX1RPT0xTIF9zb3VyY2UpCisgICAgR0VU
X0ZJTEVOQU1FX0NPTVBPTkVOVChfbmFtZSAke19zb3VyY2V9IE5BTUVfV0UpCisKKyAgICBJRiAo
JHtfc291cmNlfSBTVFJFUVVBTCAiRG9jVHlwZVN0cmluZ3MiKQorICAgICAgICBTRVQoX2hhc2hf
dG9vbHNfaCAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9IYXNoVG9vbHMuaCIpCisgICAgRUxTRSAo
KQorICAgICAgICBTRVQoX2hhc2hfdG9vbHNfaCAiIikKKyAgICBFTkRJRiAoKQogCi1NQUNSTyAo
R0VORVJBVEVfR1BFUkYgX2lucHV0IF9vdXRwdXQgX2Z1bmMgX29wdHMpCiAgICAgQUREX0NVU1RP
TV9DT01NQU5EKAotICAgICAgICBPVVRQVVQgJHtfb3V0cHV0fQotICAgICAgICBNQUlOX0RFUEVO
REVOQ1kgJHtfaW5wdXR9Ci0gICAgICAgIENPTU1BTkQgJHtHUEVSRl9FWEVDVVRBQkxFfSAtQ0RF
R0lvdCAtTCBBTlNJLUMgLS1rZXktcG9zaXRpb25zPSogLXMgMiAtTiAke19mdW5jfSAke19vcHRz
fSA8ICR7X2lucHV0fSA+ICR7X291dHB1dH0KKyAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VS
Q0VTX0RJUn0vJHtfbmFtZX0uY3BwICR7X2hhc2hfdG9vbHNfaH0KKyAgICAgICAgTUFJTl9ERVBF
TkRFTkNZICR7X3NvdXJjZX0uZ3BlcmYgCisgICAgICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFC
TEV9ICR7V0VCQ09SRV9ESVJ9L21ha2UtaGFzaC10b29scy5wbCAke0RFUklWRURfU09VUkNFU19E
SVJ9ICR7X3NvdXJjZX0uZ3BlcmYKICAgICAgICAgVkVSQkFUSU0pCi1FTkRNQUNSTyAoKQogCisg
ICAgVU5TRVQoX25hbWUpCisgICAgVU5TRVQoX2hhc2hfdG9vbHNfaCkKK0VORE1BQ1JPKCkKIAog
TUFDUk8gKFdFQktJVF9XUkFQX1NPVVJDRUxJU1QgX2lucHV0KQogICAgIElGIChXVEZfUExBVEZP
Uk1fUVQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66501</attachid>
            <date>2010-09-03 08:22:52 -0700</date>
            <delta_ts>2010-09-28 09:01:56 -0700</delta_ts>
            <desc>updated to ToT</desc>
            <filename>0001-Undefined-reference-errors-when-linking-due-to-gperf.patch</filename>
            <type>text/plain</type>
            <size>26899</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">RnJvbSBhZTNjYjlmZTNiMzUyZDIzNWRkMjllNDI2Y2U3YzY4NzU3ZGFhMWRkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyYXMgQmVjc2kgPGFiZWNzaUBpbmYudS1zemVnZWQuaHU+
CkRhdGU6IEZyaSwgMyBTZXAgMjAxMCAxNjo1OToyNyArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIFVu
ZGVmaW5lZCByZWZlcmVuY2UgZXJyb3JzIHdoZW4gbGlua2luZyBkdWUgdG8gZ3BlcmYgYW5kIGlu
bGluaW5nLgoKLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDIwICsrKysKIFdlYkNvcmUvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTEgKystCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDM0ICsrKysrKysKIFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29y
ZS5neXAgICAgICAgICAgICAgICAgICB8ICAgIDcgKystCiBXZWJDb3JlL1dlYkNvcmUucHJpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qICAgICAgICAgICAgfCAgIDIwICsrKysKIFdlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgICAgICB8ICAgIDggKysKIFdlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUv
Y3NzL21ha2Vwcm9wLnBsICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDggKysrKysrKyst
LQogV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbCAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1
MCArKysrKysrKystLQogV2ViQ29yZS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmICAgICAgICAg
ICAgICAgIHwgICAxOCArLS0tCiBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcCAgICAgICAg
ICAgICAgICAgICAgfCAgICAzICstCiBXZWJDb3JlL21ha2UtaGFzaC10b29scy5wbCAgICAgICAg
ICAgICAgICAgICAgICAgfCAgMTAzICsrKysrKysrKysrKysrKysrKysrKy0KIFdlYkNvcmUvcGxh
dGZvcm0vQ29sb3JEYXRhLmdwZXJmICAgICAgICAgICAgICAgICB8ICAgMTEgKy0tCiBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcCAgICAgICAgICAgICAgfCAgICAzICstCiBXZWJL
aXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIxICsrKysr
CiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgfCAgICAy
ICstCiBjbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDE5ICsrKy0KIDE4IGZpbGVzIGNoYW5nZWQsIDMyNiBpbnNlcnRpb25zKCspLCA2MCBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMTE0MGFkMS4u
NGYwMGRhMyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIzIEBACisyMDEwLTA5LTAzICBBbmRyYXMgQmVjc2kgIDxhYmVjc2lAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVbmRlZmluZWQg
cmVmZXJlbmNlIGVycm9ycyB3aGVuIGxpbmtpbmcgZHVlIHRvIGdwZXJmIGFuZCBpbmxpbmluZy4K
KyAgICAgICAgd2Via2l0Lm9yZy9iLzI5MjQ0CisKKyAgICAgICAgRUZMIENNYWtlIGNoYW5nZXMg
YnkgTGVhbmRybyBQZXJlaXJhIDxsZWFuZHJvQHByb2Z1c2lvbi5tb2JpPgorCisgICAgICAgIFJl
ZmFjdG9yIGdwZXJmIGNvZGUgZ2VuZXJhdGlvbiBhbmQgdXNhZ2UgdG8gZml4IHRoZSBkZWJ1ZyBi
dWlsZCB3aXRoIGdjYz40LjQuCisgICAgICAgIEhpdGhlcnRvIGdwZXJmIGdlbmVyYXRlZCBDIGNv
ZGUsIHRoZXNlIGZpbGVzIHdlcmUgaW5jbHVkZWQgaW4gbXVsdGlwbGUgQysrIGZpbGVzIGFjcm9z
cyBXZWJDb3JlCisgICAgICAgIHRvIGFjY2VzcyB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZC4g
VGhpcyByZXN1bHRlZCBpbiBkZWJ1ZyBidWlsZCBmYWlsdXJlIHdpdGggbmV3ZXIgZ2NjIHZlcnNp
b25zCisgICAgICAgIGJlY2F1c2Ugb2YgYSBiZWhhdmlvdXIgY2hhbmdlIG9mIGdjYywgd2hpY2gg
ZGlzYWJsZXMgQyBzdHlsZSBpbmxpbmluZyBpbiBkZWJ1ZyBtb2RlLgorICAgICAgICBUaGUgbWFr
ZS1oYXNoLXRvb2xzLnBsIHNjcmlwdCBsZXRzIGdwZXJmIGdlbmVyYXRlIEMrKyBjb2RlIGZvciBh
bGwgZ3BlcmYgZmlsZXMgbm93LCB3aGljaCBhcmUgY29tcGlsZWQKKyAgICAgICAgaW4gdGhlaXIg
b3duIGNvbXBpbGF0aW9uIHVuaXQuCisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVk
IGJ5IHRoZSBnZW5lcmF0ZWQgY29kZSBpcyB3cmFwcGVkIGJlaGluZCBIYXNoVG9vbHMuaCwgc28g
dGhlcmUgaXMgbm8gbmVlZAorICAgICAgICBmb3IgbXVsdGlwbGUgaW5jbHVzaW9ucyBvZiBnZW5l
cmF0ZWQgQyBmaWxlcyB0byBhY2Nlc3MgdGhlc2UgZnVuY3Rpb25zLgorCisgICAgICAgICogY21h
a2UvV2ViS2l0TWFjcm9zLmNtYWtlOgorCiAyMDEwLTA5LTAyICBMdWNhcyBEZSBNYXJjaGkgIDxs
dWNhcy5kZW1hcmNoaUBwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRv
bmlvIEdvbWVzLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggMWQ5MTU5Zi4uYWQxYjZlYSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MzMsNiAr
NTMzLDEwIEBAIElGIChFTkFCTEVfU1ZHKQogRU5ESUYoKQogCiBTRVQoV2ViQ29yZV9TT1VSQ0VT
CisgICAgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Eb2NUeXBlU3RyaW5ncy5jcHAKKyAgICAke0RF
UklWRURfU09VUkNFU19ESVJ9L0NTU1ZhbHVlS2V5d29yZHMuY3BwCisgICAgJHtERVJJVkVEX1NP
VVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmNwcAorICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJ
Un0vQ29sb3JEYXRhLmNwcAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSFRNTEVudGl0eVRh
YmxlLmNwcAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vVXNlckFnZW50U3R5bGVTaGVldHNE
YXRhLmNwcAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXIuY3BwCkBAIC0xODkxLDEyICsxODk1LDEwIEBAIExJU1QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUyAke0pTX0lETF9GSUxFU30gJHtJbnNwZWN0b3JfSURMX0ZJTEVTfSkKIAogR0VORVJBVEVf
RU5USVRJRVMoJHtXRUJDT1JFX0RJUn0vaHRtbC9wYXJzZXIvSFRNTEVudGl0eU5hbWVzLmluICR7
REVSSVZFRF9TT1VSQ0VTX0RJUn0vSFRNTEVudGl0eVRhYmxlLmNwcCAke1dFQkNPUkVfRElSfS9o
dG1sL3BhcnNlci9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGUpCiAKLQotR0VORVJBVEVfR1BFUkYo
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmICR7REVSSVZFRF9TT1VSQ0VT
X0RJUn0vQ29sb3JEYXRhLmNwcCBmaW5kQ29sb3IgIiIpCitNQUtFX0hBU0hfVE9PTFMoJHtXRUJD
T1JFX0RJUn0vcGxhdGZvcm0vQ29sb3JEYXRhKQogQUREX1NPVVJDRV9ERVJJVkVEX0RFUEVOREVO
Q0lFUygke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgQ29sb3JEYXRh
LmNwcCkKIAotCi1HRU5FUkFURV9HUEVSRigke1dFQkNPUkVfRElSfS9odG1sL0RvY1R5cGVTdHJp
bmdzLmdwZXJmICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRG9jVHlwZVN0cmluZ3MuY3BwIGZpbmRE
b2N0eXBlRW50cnkgIi1GLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyxQdWJJREluZm86OmVB
bG1vc3RTdGFuZGFyZHMiKQorTUFLRV9IQVNIX1RPT0xTKCR7V0VCQ09SRV9ESVJ9L2h0bWwvRG9j
VHlwZVN0cmluZ3MpCiBBRERfU09VUkNFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7V0VCQ09SRV9E
SVJ9L2h0bWwvSFRNTERvY3VtZW50LmNwcCBEb2NUeXBlU3RyaW5ncy5jcHApCiAKIApAQCAtMTkx
Niw2ICsxOTE4LDcgQEAgR0VORVJBVEVfQ1NTX1BST1BFUlRZX05BTUVTKCkKIEdFTkVSQVRFX0NT
U19WQUxVRV9LRVlXT1JEUygpCiAKIAorQUREX1NPVVJDRV9ERVJJVkVEX0RFUEVOREVOQ0lFUygk
e0RFUklWRURfU09VUkNFU19ESVJ9L0hhc2hUb29scy5oIERvY1R5cGVTdHJpbmdzLmNwcCBDU1NW
YWx1ZUtleXdvcmRzLmNwcCBDU1NQcm9wZXJ0eU5hbWVzLmNwcCBDb2xvckRhdGEuY3BwKQogQURE
X1NPVVJDRV9ERVJJVkVEX0RFUEVOREVOQ0lFUygke0RFUklWRURfU09VUkNFU19ESVJ9L0NTU0dy
YW1tYXIuY3BwIENTU1ZhbHVlS2V5d29yZHMuaCkKIEFERF9TT1VSQ0VfREVSSVZFRF9ERVBFTkRF
TkNJRVMoJHtERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NHcmFtbWFyLmNwcCBDU1NQcm9wZXJ0eU5h
bWVzLmgpCiBBRERfU09VUkNFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7V0VCQ09SRV9ESVJ9L2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggQ1NTVmFsdWVLZXl3b3Jkcy5oKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlYTYyY2M2
Li40YjAwMTVmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEwLTA5LTAzICBBbmRyYXMgQmVjc2kgIDxhYmVj
c2lAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVbmRlZmluZWQgcmVmZXJlbmNlIGVycm9ycyB3aGVuIGxpbmtpbmcgZHVlIHRvIGdw
ZXJmIGFuZCBpbmxpbmluZy4KKyAgICAgICAgd2Via2l0Lm9yZy9iLzI5MjQ0CisKKyAgICAgICAg
RUZMIENNYWtlIGNoYW5nZXMgYnkgTGVhbmRybyBQZXJlaXJhIDxsZWFuZHJvQHByb2Z1c2lvbi5t
b2JpPgorCisgICAgICAgIFJlZmFjdG9yIGdwZXJmIGNvZGUgZ2VuZXJhdGlvbiBhbmQgdXNhZ2Ug
dG8gZml4IHRoZSBkZWJ1ZyBidWlsZCB3aXRoIGdjYz40LjQuCisgICAgICAgIEhpdGhlcnRvIGdw
ZXJmIGdlbmVyYXRlZCBDIGNvZGUsIHRoZXNlIGZpbGVzIHdlcmUgaW5jbHVkZWQgaW4gbXVsdGlw
bGUgQysrIGZpbGVzIGFjcm9zcyBXZWJDb3JlCisgICAgICAgIHRvIGFjY2VzcyB0aGUgZnVuY3Rp
b25hbGl0eSBwcm92aWRlZC4gVGhpcyByZXN1bHRlZCBpbiBkZWJ1ZyBidWlsZCBmYWlsdXJlIHdp
dGggbmV3ZXIgZ2NjIHZlcnNpb25zCisgICAgICAgIGJlY2F1c2Ugb2YgYSBiZWhhdmlvdXIgY2hh
bmdlIG9mIGdjYywgd2hpY2ggZGlzYWJsZXMgQyBzdHlsZSBpbmxpbmluZyBpbiBkZWJ1ZyBtb2Rl
LgorICAgICAgICBUaGUgbWFrZS1oYXNoLXRvb2xzLnBsIHNjcmlwdCBsZXRzIGdwZXJmIGdlbmVy
YXRlIEMrKyBjb2RlIGZvciBhbGwgZ3BlcmYgZmlsZXMgbm93LCB3aGljaCBhcmUgY29tcGlsZWQK
KyAgICAgICAgaW4gdGhlaXIgb3duIGNvbXBpbGF0aW9uIHVuaXQuCisgICAgICAgIFRoZSBmdW5j
dGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoZSBnZW5lcmF0ZWQgY29kZSBpcyB3cmFwcGVkIGJlaGlu
ZCBIYXNoVG9vbHMuaCwgc28gdGhlcmUgaXMgbm8gbmVlZAorICAgICAgICBmb3IgbXVsdGlwbGUg
aW5jbHVzaW9ucyBvZiBnZW5lcmF0ZWQgQyBmaWxlcyB0byBhY2Nlc3MgdGhlc2UgZnVuY3Rpb25z
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cC9XZWJDb3JlLmd5cDoKKyAgICAgICAgKiBXZWJD
b3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NT
U1BhcnNlci5jcHA6CisgICAgICAgICogY3NzL21ha2Vwcm9wLnBsOgorICAgICAgICAqIGNzcy9t
YWtldmFsdWVzLnBsOgorICAgICAgICAqIGh0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmY6CisgICAg
ICAgICogaHRtbC9IVE1MRG9jdW1lbnQuY3BwOgorICAgICAgICAqIG1ha2UtaGFzaC10b29scy5w
bDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmY6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3IuY3BwOgorCiAyMDEwLTA5LTAzICBOaWtvbGFzIFppbW1lcm1hbm4g
IDxuemltbWVybWFubkByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6
ZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCmluZGV4IDU5NTAzNGUuLmMyYTBiNzcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKKysrIGIvV2ViQ29yZS9XZWJDb3Jl
Lmd5cC9XZWJDb3JlLmd5cApAQCAtNjM5LDcgKzYzOSw2IEBACiAgICAgICAgICAgICAnPChTSEFS
RURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0JywKICAgICAgICAgICAgICc8KFJVTEVfSU5QVVRf
UEFUSCknLAogICAgICAgICAgIF0sCi0gICAgICAgICAgJ3Byb2Nlc3Nfb3V0cHV0c19hc19zb3Vy
Y2VzJzogMCwKICAgICAgICAgfSwKICAgICAgICAgIyBSdWxlIHRvIGJ1aWxkIGdlbmVyYXRlZCBK
YXZhU2NyaXB0IChWOCkgYmluZGluZ3MgZnJvbSAuaWRsIHNvdXJjZS4KICAgICAgICAgewpAQCAt
NzM2LDYgKzczNSwxMiBAQAogICAgICAgICAjIGluIHdlYmNvcmVfZmlsZXMuCiAgICAgICAgICc8
QChkZXJpdmVkX3NvdXJjZXNfYWdncmVnYXRlX2ZpbGVzKScsCiAKKyAgICAgICAgIyBBZGRpdGlv
bmFsIC5jcHAgZmlsZXMgZm9yIEhhc2hUb29scy5oCisgICAgICAgICc8KFNIQVJFRF9JTlRFUk1F
RElBVEVfRElSKS93ZWJraXQvRG9jVHlwZVN0cmluZ3MuY3BwJywKKyAgICAgICAgJzwoU0hBUkVE
X0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9Db2xvckRhdGEuY3BwJywKKyAgICAgICAgJzwoU0hB
UkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9DU1NQcm9wZXJ0eU5hbWVzLmNwcCcsCisgICAg
ICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvQ1NTVmFsdWVLZXl3b3Jkcy5j
cHAnLAorCiAgICAgICAgICMgQWRkaXRpb25hbCAuY3BwIGZpbGVzIGZyb20gd2ViY29yZV9iaW5k
aW5nc19zb3VyY2VzIGFjdGlvbnMuCiAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElS
KS93ZWJraXQvSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCcsCiAgICAgICAgICc8KFNIQVJFRF9JTlRF
Uk1FRElBVEVfRElSKS93ZWJraXQvSFRNTE5hbWVzLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCBhNGM2OWIxLi4wYzljYTI2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5w
cmkKQEAgLTUzMCw3ICs1MzAsNyBAQCBjc3Nwcm9wcy53a1NjcmlwdCA9ICQkUFdEL2Nzcy9tYWtl
cHJvcC5wbAogY3NzcHJvcHMub3V0cHV0ID0gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS9D
U1NQcm9wZXJ0eU5hbWVzLmNwcAogY3NzcHJvcHMuaW5wdXQgPSBXQUxET0NTU1BST1BTCiBjc3Nw
cm9wcy5jb21tYW5kcyA9IHBlcmwgLW5lIFwicHJpbnQgbGNcIiAke1FNQUtFX0ZJTEVfTkFNRX0g
JCR7REFTSEJPQVJEU1VQUE9SVENTU1BST1BFUlRJRVN9ICQke0VYVFJBQ1NTUFJPUEVSVElFU30g
PiAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9LyR7UU1BS0VfRklMRV9CQVNFfS5pbiAmJiBj
ZCAkJFdDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUiAmJiBwZXJsICQkY3NzcHJvcHMud2tTY3JpcHQg
JiYgJChERUxfRklMRSkgJHtRTUFLRV9GSUxFX0JBU0V9LmluICR7UU1BS0VfRklMRV9CQVNFfS5n
cGVyZgotY3NzcHJvcHMuZGVwZW5kcyA9ICR7UU1BS0VfRklMRV9OQU1FfSAkJHtEQVNIQk9BUkRT
VVBQT1JUQ1NTUFJPUEVSVElFU30gJCR7RVhUUkFDU1NQUk9QRVJUSUVTfQorY3NzcHJvcHMuZGVw
ZW5kcyA9ICR7UU1BS0VfRklMRV9OQU1FfSAkJHtEQVNIQk9BUkRTVVBQT1JUQ1NTUFJPUEVSVElF
U30gJCR7RVhUUkFDU1NQUk9QRVJUSUVTfSAkJGNzc3Byb3BzLndrU2NyaXB0CiBhZGRFeHRyYUNv
bXBpbGVyKGNzc3Byb3BzKQogCiAjIEdFTkVSQVRPUiA2LUI6CkBAIC01MzgsNyArNTM4LDcgQEAg
Y3NzdmFsdWVzLndrU2NyaXB0ID0gJCRQV0QvY3NzL21ha2V2YWx1ZXMucGwKIGNzc3ZhbHVlcy5v
dXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0NTU1ZhbHVlS2V5d29yZHMuY3Bw
CiBjc3N2YWx1ZXMuaW5wdXQgPSBXQUxET0NTU1ZBTFVFUwogY3NzdmFsdWVzLmNvbW1hbmRzID0g
cGVybCAtbmUgXCJwcmludCBsY1wiICR7UU1BS0VfRklMRV9OQU1FfSAkJEVYVFJBQ1NTVkFMVUVT
ID4gJCR7V0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJiYg
Y2QgJCRXQ19HRU5FUkFURURfU09VUkNFU19ESVIgJiYgcGVybCAkJGNzc3ZhbHVlcy53a1Njcmlw
dCAmJiAkKERFTF9GSUxFKSAke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJHtRTUFLRV9GSUxFX0JBU0V9
LmdwZXJmCi1jc3N2YWx1ZXMuZGVwZW5kcyA9ICR7UU1BS0VfRklMRV9OQU1FfSAkJHtFWFRSQUNT
U1ZBTFVFU30KK2Nzc3ZhbHVlcy5kZXBlbmRzID0gJHtRTUFLRV9GSUxFX05BTUV9ICQke0VYVFJB
Q1NTVkFMVUVTfSAkJGNzc3ZhbHVlcy53a1NjcmlwdAogY3NzdmFsdWVzLmNsZWFuID0gJHtRTUFL
RV9GSUxFX09VVH0gJHtRTUFLRV9WQVJfV0NfR0VORVJBVEVEX1NPVVJDRVNfRElSfS8ke1FNQUtF
X0ZJTEVfQkFTRX0uaAogYWRkRXh0cmFDb21waWxlcihjc3N2YWx1ZXMpCiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGI3ZTUzMzQuLjAyNjMyMDMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTQ1LDYgKzU0NSwyNiBAQAogCQkJCT4NCiAJ
CQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEhhc2hUb29scy5oIg0KKwkJCQk+
DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRw
dXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xEb2NUeXBlU3RyaW5ncy5j
cHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIk
KFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXENTU1Zh
bHVlS2V5d29yZHMuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJl
bGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xDU1NQcm9wZXJ0eU5hbWVzLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcQ29sb3JEYXRhLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3Bw
Ig0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggYzhiODhlYy4uMDNlMzE3YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ5Myw2ICs0OTMsMTAgQEAKIAkJMUFCN0ZDODYwQThC
OTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBQjdGQzY1MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhbHVl
LmggKi87IH07CiAJCTFBQjdGQzg3MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhcmlhYmxlUmVm
ZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBQjdGQzY2MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhcmlhYmxlUmVmZXJlbmNlLmNwcCAq
LzsgfTsKIAkJMUFCN0ZDODgwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVu
Y2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQjdG
QzY3MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhcmlhYmxlUmVmZXJlbmNlLmggKi87IH07CisJ
CTFBQkE3NkM5MTFEMjBFNDcwMDRDMjAxQyAvKiBDb2xvckRhdGEuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwNkYzRkIxMTk4MzA3RDAwOUQ1OUQ2
IC8qIENvbG9yRGF0YS5jcHAgKi87IH07CisJCTFBQkE3NkNBMTFEMjBFNTAwMDRDMjAxQyAvKiBD
U1NQcm9wZXJ0eU5hbWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU0MUVBMDM4MTE5ODM2REIwMDcxMEJDNSAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNw
cCAqLzsgfTsKKwkJMUFCQTc2Q0IxMUQyMEU1NzAwNEMyMDFDIC8qIENTU1ZhbHVlS2V5d29yZHMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQxRUEw
MzkxMTk4Mzc0OTAwNzEwQkM1IC8qIENTU1ZhbHVlS2V5d29yZHMuY3BwICovOyB9OworCQkxQUJB
NzZDQzExRDIwRTVCMDA0QzIwMUMgLyogRG9jVHlwZVN0cmluZ3MuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwNkYzRkExMTk4MzA0RDAwOUQ1OUQ2
IC8qIERvY1R5cGVTdHJpbmdzLmNwcCAqLzsgfTsKIAkJMUFCRkU3NTMwQ0Q5NjhEMDAwRkU0ODM0
IC8qIFNRTFRyYW5zYWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBQkZFNzUyMENEOTY4RDAwMEZFNDgzNCAvKiBTUUxUcmFuc2FjdGlvbi5j
cHAgKi87IH07CiAJCTFBQzIyNjBDMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9u
Q2FjaGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUFDMjI2MEEwREI2OUYxOTAwODlCNjY5IC8qIEpTRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgKi87
IH07CiAJCTFBQzIyNjBEMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQzIyNjBC
MERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuaCAqLzsgfTsKQEAgLTIw
NzI5LDYgKzIwNzMzLDEwIEBACiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1
aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQkxQUJBNzZDOTEx
RDIwRTQ3MDA0QzIwMUMgLyogQ29sb3JEYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBQkE3
NkNBMTFEMjBFNTAwMDRDMjAxQyAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTFBQkE3NkNCMTFEMjBFNTcwMDRDMjAxQyAvKiBDU1NWYWx1ZUtleXdvcmRzLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTFBQkE3NkNDMTFEMjBFNUIwMDRDMjAxQyAvKiBEb2NUeXBlU3Ry
aW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNUI1REM2OTExOUJCM0Q1MDAyQTg3OTAgLyog
QWJzdHJhY3REYXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MUUxQjFEMDBGRjU5ODY5
MDA1NzZCM0IgLyogQWJzdHJhY3RXb3JrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjlBODEy
MjgwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZC5jcHAgaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCmluZGV4IDY4NzIzNWYuLjg5ZWM5ZDYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAt
NjEsNiArNjEsNyBAQAogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkZv
bnRGYW1pbHlWYWx1ZS5oIgogI2luY2x1ZGUgIkZvbnRWYWx1ZS5oIgorI2luY2x1ZGUgIkhhc2hU
b29scy5oIgogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlFeHAu
aCIKICNpbmNsdWRlICJQYWlyLmgiCkBAIC04OCw5ICs4OSw2IEBAIGV4dGVybiBpbnQgY3NzeXlw
YXJzZSh2b2lkKiBwYXJzZXIpOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHVzaW5nIG5hbWVzcGFj
ZSBXVEY7CiAKLSNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmNwcCIKLSNpbmNsdWRlICJDU1NW
YWx1ZUtleXdvcmRzLmNwcCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgSU5WQUxJRF9OVU1fUEFSU0VEX1BST1BFUlRJRVMgPSBVSU5UX01BWDsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsIGIvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwK
aW5kZXggODgxMGU4ZC4uNjRmNWE2YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvbWFrZXByb3Au
cGwKKysrIGIvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwKQEAgLTQxLDE1ICs0MSwxNCBAQCBwcmlu
dCBHUEVSRiA8PCAiRU9GIjsKICNpbmNsdWRlIFwiQ1NTUHJvcGVydHlOYW1lcy5oXCIKICV9CiAl
c3RydWN0LXR5cGUKLXN0cnVjdCBQcm9wZXJ0eSB7Ci0gICAgY29uc3QgY2hhciogbmFtZTsKLSAg
ICBpbnQgaWQ7Ci19OwotJWxhbmd1YWdlPUFOU0ktQworc3RydWN0IFByb3BlcnR5OworJW9taXQt
c3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysKICVyZWFkb25seS10YWJsZXMKICVnbG9iYWwtdGFi
bGUKICVjb21wYXJlLXN0cm5jbXAKLSVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZFBy
b3BlcnR5CislZGVmaW5lIGNsYXNzLW5hbWUgQ1NTUHJvcGVydHlOYW1lc0hhc2gKKyVkZWZpbmUg
bG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZFByb3BlcnR5SW1wbAogJWRlZmluZSBoYXNoLWZ1bmN0
aW9uLW5hbWUgcHJvcGVyeV9oYXNoX2Z1bmN0aW9uCiAlZGVmaW5lIHdvcmQtYXJyYXktbmFtZSBw
cm9wZXJ0eV93b3JkbGlzdAogJWluY2x1ZGVzCkBAIC03Miw2ICs3MSwxMCBAQCBwcmludCBIRUFE
RVIgPDwgIkVPRiI7CiAjaWZuZGVmIENTU1Byb3BlcnR5TmFtZXNfaAogI2RlZmluZSBDU1NQcm9w
ZXJ0eU5hbWVzX2gKIAorI2luY2x1ZGUgPHN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKIGVudW0gQ1NTUHJvcGVydHlJRCB7CiAgICAgQ1NTUHJvcGVydHlJbnZhbGlkID0gMCwKIEVP
RgpAQCAtMTA1LDE3ICsxMDgsNDEgQEAgcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogCiBjb25zdCBj
aGFyKiBnZXRQcm9wZXJ0eU5hbWUoQ1NTUHJvcGVydHlJRCk7CiAKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKwogI2VuZGlmIC8vIENTU1Byb3BlcnR5TmFtZXNfaAogCiBFT0YKIAogY2xvc2UgSEVB
REVSOwogCi1zeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtbiAtcyAyIENT
U1Byb3BlcnR5TmFtZXMuZ3BlcmYgPiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCIpID09IDAgfHwgZGll
ICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOworc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlv
bnM9XCIqXCIgLUQgLW4gLXMgMiBDU1NQcm9wZXJ0eU5hbWVzLmdwZXJmID4gQ1NTUHJvcGVydHlO
YW1lc0hhc2guaCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwogCi1v
cGVuIEMsICI+PkNTU1Byb3BlcnR5TmFtZXMuY3BwIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENT
U1Byb3BlcnR5TmFtZXMuY3BwIGZvciB3cml0aW5nIjsKK29wZW4gQywgIj4+Q1NTUHJvcGVydHlO
YW1lc0hhc2guaCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NQcm9wZXJ0eU5hbWVzSGFzaC5o
IGZvciB3cml0aW5nIjsKIHByaW50IEMgPDwgIkVPRiI7CiAKK0VPRgorCitjbG9zZSBDOworCitt
eSAkcHJvcGVydHlOYW1lc0ltcGwgPSAiQ1NTUHJvcGVydHlOYW1lcy5jcHAiOworCitvcGVuIFBS
T1BFUlRZTkFNRVMsICI+JHByb3BlcnR5TmFtZXNJbXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVu
ICRwcm9wZXJ0eU5hbWVzSW1wbCBmb3Igd3JpdGluZyI7CitwcmludCBQUk9QRVJUWU5BTUVTIDw8
ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2Ut
aGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQgKi8KKworCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlO
YW1lcy5oIgorI2luY2x1ZGUgIkhhc2hUb29scy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7Cisj
aW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lc0hhc2guaCIKKworY29uc3QgUHJvcGVydHkqIGZpbmRQ
cm9wZXJ0eSAocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQg
bGVuKQoreworICAgIHJldHVybiBDU1NQcm9wZXJ0eU5hbWVzSGFzaDo6ZmluZFByb3BlcnR5SW1w
bChzdHIsIGxlbik7Cit9CisKIGNvbnN0IGNoYXIqIGdldFByb3BlcnR5TmFtZShDU1NQcm9wZXJ0
eUlEIGlkKQogewogICAgIGlmIChpZCA8IGZpcnN0Q1NTUHJvcGVydHkpCkBAIC0xMjUsNyArMTUy
LDEwIEBAIGNvbnN0IGNoYXIqIGdldFByb3BlcnR5TmFtZShDU1NQcm9wZXJ0eUlEIGlkKQogICAg
ICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gcHJvcGVydHlOYW1lU3RyaW5nc1tpbmRleF07CiB9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwogRU9GCiAKLWNsb3NlIEM7CitjbG9zZSBQUk9Q
RVJUWU5BTUVTOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsIGIvV2Vi
Q29yZS9jc3MvbWFrZXZhbHVlcy5wbAppbmRleCA0MjFlNDcwLi5jOWY3ZjcwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCisrKyBiL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMu
cGwKQEAgLTQyLDE0ICs0MiwxMyBAQCBwcmludCBHUEVSRiA8PCAiRU9GIjsKICNpbmNsdWRlIFwi
Q1NTVmFsdWVLZXl3b3Jkcy5oXCIKICV9CiAlc3RydWN0LXR5cGUKLXN0cnVjdCBWYWx1ZSB7Ci0g
ICAgY29uc3QgY2hhciogbmFtZTsKLSAgICBpbnQgaWQ7Ci19OwotJWxhbmd1YWdlPUFOU0ktQwor
c3RydWN0IFZhbHVlOworJW9taXQtc3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysKICVyZWFkb25s
eS10YWJsZXMKICVjb21wYXJlLXN0cm5jbXAKLSVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUg
ZmluZFZhbHVlCislZGVmaW5lIGNsYXNzLW5hbWUgQ1NTVmFsdWVLZXl3b3Jkc0hhc2gKKyVkZWZp
bmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZFZhbHVlSW1wbAogJWRlZmluZSBoYXNoLWZ1bmN0
aW9uLW5hbWUgdmFsdWVfaGFzaF9mdW5jdGlvbgogJWRlZmluZSB3b3JkLWFycmF5LW5hbWUgdmFs
dWVfd29yZF9saXN0CiAlaW5jbHVkZXMKQEAgLTcyLDYgKzcxLDEwIEBAIHByaW50IEhFQURFUiA8
PCAiRU9GIjsKICNpZm5kZWYgQ1NTVmFsdWVLZXl3b3Jkc19oCiAjZGVmaW5lIENTU1ZhbHVlS2V5
d29yZHNfaAogCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwog
Y29uc3QgaW50IENTU1ZhbHVlSW52YWxpZCA9IDA7CiBFT0YKIApAQCAtOTIsMTMgKzk1LDE2IEBA
IHByaW50IEhFQURFUiA8PCAiRU9GIjsKIAogY29uc3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2ln
bmVkIHNob3J0IGlkKTsKIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCiAjZW5kaWYgLy8gQ1NT
VmFsdWVLZXl3b3Jkc19oCisKIEVPRgogY2xvc2UgSEVBREVSOwogCi1zeXN0ZW0oImdwZXJmIC0t
a2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtbiAtcyAyIENTU1ZhbHVlS2V5d29yZHMuZ3BlcmYgPiBD
U1NWYWx1ZUtleXdvcmRzLmNwcCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDog
JD8iOworc3lzdGVtKCJncGVyZiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLW4gLXMgMiBDU1NW
YWx1ZUtleXdvcmRzLmdwZXJmID4gQ1NTVmFsdWVLZXl3b3Jkc0hhc2guaCIpID09IDAgfHwgZGll
ICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwogCi1vcGVuIEMsICI+PkNTU1ZhbHVlS2V5d29y
ZHMuY3BwIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1ZhbHVlS2V5d29yZHMuY3BwIGZvciB3
cml0aW5nIjsKK29wZW4gQywgIj4+Q1NTVmFsdWVLZXl3b3Jkc0hhc2guaCIgfHwgZGllICJDb3Vs
ZCBub3Qgb3BlbiBDU1NWYWx1ZUtleXdvcmRzSGFzaC5oIGZvciB3cml0aW5nIjsKIHByaW50IEMg
ICJzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZhbHVlTGlzdFtdID0ge1xuIjsKIHByaW50IEMg
ICJcIlwiLFxuIjsKIGZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgewpAQCAtMTA3LDEyICsxMTMs
MzggQEAgZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CiBwcmludCBDIDw8ICJFT0YiOwogICAg
IDAKIH07CisKK0VPRgorCitjbG9zZSBDOworCitteSAkdmFsdWVLZXl3b3Jkc0ltcGwgPSAiQ1NT
VmFsdWVLZXl3b3Jkcy5jcHAiOworCitvcGVuIFZBTFVFS0VZV09SRFMsICI+JHZhbHVlS2V5d29y
ZHNJbXBsIiB8fCBkaWUgIkNvdWxkIG5vdCBvcGVuICR2YWx1ZUtleXdvcmRzSW1wbCBmb3Igd3Jp
dGluZyI7CitwcmludCBWQUxVRUtFWVdPUkRTIDw8ICJFT0YiOworLyogVGhpcyBmaWxlIGlzIGF1
dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IG1ha2UtaGFzaC10b29scy5wbCwgZG8gbm90IGVkaXQg
Ki8KKworI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKyNpbmNsdWRlICJIYXNoVG9vbHMu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHNIYXNo
LmgiCisKK2NvbnN0IFZhbHVlKiBmaW5kVmFsdWUgKHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwg
cmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbikKK3sKKyAgICByZXR1cm4gQ1NTVmFsdWVLZXl3b3Jk
c0hhc2g6OmZpbmRWYWx1ZUltcGwoc3RyLCBsZW4pOworfQorCiBjb25zdCBjaGFyKiBnZXRWYWx1
ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpCiB7CiAgICAgaWYgKGlkID49IG51bUNTU1ZhbHVlS2V5
d29yZHMgfHwgaWQgPD0gMCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIHZhbHVlTGlz
dFtpZF07CiB9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwogRU9GCiAKLWNsb3NlIEM7Citj
bG9zZSBWQUxVRUtFWVdPUkRTOworCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRG9jVHlwZVN0
cmluZ3MuZ3BlcmYgYi9XZWJDb3JlL2h0bWwvRG9jVHlwZVN0cmluZ3MuZ3BlcmYKaW5kZXggNWMy
MTNiMC4uNmI3ZGEwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0RvY1R5cGVTdHJpbmdzLmdw
ZXJmCisrKyBiL1dlYkNvcmUvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgpAQCAtMSwyMSArMSwx
MyBAQAogJXN0cnVjdC10eXBlCi1zdHJ1Y3QgUHViSURJbmZvIHsKLSAgICBlbnVtIGVNb2RlIHsg
Ci0gICAgICAgIGVRdWlya3MsICAgICAgICAgCi0gICAgICAgIGVRdWlya3MzLCAgICAgICAKLSAg
ICAgICAgZUFsbW9zdFN0YW5kYXJkcwotICAgIH07Ci0KLSAgICBjb25zdCBjaGFyKiBuYW1lOwot
ICAgIGVNb2RlIG1vZGVfaWZfbm9fc3lzaWQ7Ci0gICAgZU1vZGUgbW9kZV9pZl9zeXNpZDsKLX0K
LSVsYW5ndWFnZT1BTlNJLUMKK3N0cnVjdCBQdWJJREluZm87Cislb21pdC1zdHJ1Y3QtdHlwZQor
JWxhbmd1YWdlPUMrKwogJXJlYWRvbmx5LXRhYmxlcwogJWdsb2JhbC10YWJsZQogJWNvbXBhcmUt
c3RybmNtcAorJWRlZmluZSBjbGFzcy1uYW1lIERvY1R5cGVTdHJpbmdzSGFzaAogJWRlZmluZSBp
bml0aWFsaXplci1zdWZmaXggLFB1YklESW5mbzo6ZUFsbW9zdFN0YW5kYXJkcyxQdWJJREluZm86
OmVBbG1vc3RTdGFuZGFyZHMKLSVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZERvY3R5
cGVFbnRyeQorJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kRG9jdHlwZUVudHJ5SW1w
bAogJWRlZmluZSBoYXNoLWZ1bmN0aW9uLW5hbWUgZG9jdHlwZV9oYXNoX2Z1bmN0aW9uCiAlaW5j
bHVkZXMKICVlbnVtCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcCBi
L1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCmluZGV4IGQ2OGE4Y2MuLjY2YzgxMmUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRt
bC9IVE1MRG9jdW1lbnQuY3BwCkBAIC02NCw2ICs2NCw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNp
bmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJIVE1MRG9jdW1lbnRQYXJzZXIuaCIKICNp
bmNsdWRlICJIVE1MQm9keUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudEZhY3Rvcnku
aCIKQEAgLTc0LDggKzc1LDYgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KIAotI2luY2x1ZGUgIkRvY1R5cGVTdHJpbmdzLmNwcCIKLQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwgYi9XZWJDb3JlL21ha2UtaGFzaC10b29scy5w
bAppbmRleCA4Y2M5OTUyLi5hOGM2ODRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL21ha2UtaGFzaC10
b29scy5wbAorKysgYi9XZWJDb3JlL21ha2UtaGFzaC10b29scy5wbApAQCAtMjcsMjQgKzI3LDEy
MSBAQCBteSAkb3V0ZGlyID0gJEFSR1ZbMF07CiBzaGlmdDsKIG15ICRvcHRpb24gPSBiYXNlbmFt
ZSgkQVJHVlswXSwiLmdwZXJmIik7CiAKK215ICRoYXNoVG9vbHNIZWFkZXIgPSAiJG91dGRpci9I
YXNoVG9vbHMuaCI7CisKK3N1YiBjcmVhdGVIYXNoVG9vbHNIZWFkZXIoKSB7CisKK29wZW4gSEVB
REVSLCAiPiRoYXNoVG9vbHNIZWFkZXIiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJGhhc2hUb29s
c0hlYWRlciBmb3Igd3JpdGluZyI7CitwcmludCBIRUFERVIgPDwgIkVPRiI7CisvKiBUaGlzIGZp
bGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZS1oYXNoLXRvb2xzLnBsLCBkbyBu
b3QgZWRpdCAqLworCisjaWZuZGVmIEhhc2hUb29sc19oCisjZGVmaW5lIEhhc2hUb29sc19oCisK
KyNpbmNsdWRlICJ3dGYvUGxhdGZvcm0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1
Y3QgUHViSURJbmZvIHsKKyAgICBlbnVtIGVNb2RlIHsKKyAgICAgICAgZVF1aXJrcywKKyAgICAg
ICAgZVF1aXJrczMsCisgICAgICAgIGVBbG1vc3RTdGFuZGFyZHMKKyAgICB9OworCisgICAgY29u
c3QgY2hhciogbmFtZTsKKyAgICBlTW9kZSBtb2RlX2lmX25vX3N5c2lkOworICAgIGVNb2RlIG1v
ZGVfaWZfc3lzaWQ7Cit9OworCitzdHJ1Y3QgTmFtZWRDb2xvciB7CisgICAgY29uc3QgY2hhciog
bmFtZTsKKyAgICBpbnQgUkdCVmFsdWU7Cit9OworCitzdHJ1Y3QgUHJvcGVydHkgeworICAgIGNv
bnN0IGNoYXIqIG5hbWU7CisgICAgaW50IGlkOworfTsKKworc3RydWN0IFZhbHVlIHsKKyAgICBj
b25zdCBjaGFyKiBuYW1lOworICAgIGludCBpZDsKK307CisKK2NvbnN0IFB1YklESW5mbyogZmlu
ZERvY3R5cGVFbnRyeShyZWdpc3RlciBjb25zdCBjaGFyKiBzdHIsIHJlZ2lzdGVyIHVuc2lnbmVk
IGludCBsZW4pOworY29uc3QgTmFtZWRDb2xvciogZmluZENvbG9yKHJlZ2lzdGVyIGNvbnN0IGNo
YXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbik7Citjb25zdCBQcm9wZXJ0eSogZmlu
ZFByb3BlcnR5KHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50
IGxlbik7Citjb25zdCBWYWx1ZSogZmluZFZhbHVlKHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0ciwg
cmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbik7Cit9CisKKyNlbmRpZiAvLyBIYXNoVG9vbHNfaAor
CitFT0YKK2Nsb3NlIEhFQURFUjsKKworfQorCiBzd2l0Y2ggKCRvcHRpb24pIHsKIAogY2FzZSAi
RG9jVHlwZVN0cmluZ3MiIHsKIAotICAgIG15ICRkb2NUeXBlU3RyaW5nc0dlbmVyYXRlZCAgICA9
ICIkb3V0ZGlyL0RvY1R5cGVTdHJpbmdzLmNwcCI7CisgICAgY3JlYXRlSGFzaFRvb2xzSGVhZGVy
KCk7CisKKyAgICBteSAkZG9jVHlwZVN0cmluZ3NJbXBsICAgICAgICAgPSAiJG91dGRpci9Eb2NU
eXBlU3RyaW5ncy5jcHAiOworICAgIG15ICRkb2NUeXBlU3RyaW5nc0dlbmVyYXRlZCAgICA9ICIk
b3V0ZGlyL0RvY1R5cGVTdHJpbmdzSGFzaC5oIjsKICAgICBteSAkZG9jVHlwZVN0cmluZ3NHcGVy
ZiAgICAgICAgPSAkQVJHVlswXTsKICAgICBzaGlmdDsKIAorICAgIG9wZW4gRE9DVFlQRVNUUklO
R1MsICI+JGRvY1R5cGVTdHJpbmdzSW1wbCIgfHwgZGllICJDb3VsZCBub3Qgb3BlbiAkZG9jVHlw
ZVN0cmluZ3NJbXBsIGZvciB3cml0aW5nIjsKKyAgICBwcmludCBET0NUWVBFU1RSSU5HUyA8PCAi
RU9GIjsKKy8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhh
c2gtdG9vbHMucGwsIGRvIG5vdCBlZGl0ICovCisKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworI2luY2x1ZGUgIkRvY1R5cGVTdHJpbmdzSGFzaC5oIgorCitj
b25zdCBQdWJJREluZm8qIGZpbmREb2N0eXBlRW50cnkgKHJlZ2lzdGVyIGNvbnN0IGNoYXIqIHN0
ciwgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGxlbikKK3sKKyAgICByZXR1cm4gRG9jVHlwZVN0cmlu
Z3NIYXNoOjpmaW5kRG9jdHlwZUVudHJ5SW1wbChzdHIsIGxlbik7Cit9CisKK30KKworRU9GCisg
ICAgY2xvc2UgRE9DVFlQRVNUUklOR1M7CisKICAgICBzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0
aW9ucz1cIipcIiAtcyAyICRkb2NUeXBlU3RyaW5nc0dwZXJmID4gJGRvY1R5cGVTdHJpbmdzR2Vu
ZXJhdGVkIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CiAKIH0gIyBj
YXNlICJEb2NUeXBlU3RyaW5ncyIKIAogY2FzZSAiQ29sb3JEYXRhIiB7CiAKLSAgICBteSAkY29s
b3JEYXRhR2VuZXJhdGVkICAgPSAiJG91dGRpci9Db2xvckRhdGEuY3BwIjsKLSAgICBteSAkY29s
b3JEYXRhR3BlcmYgICAgICAgPSAkQVJHVlswXTsKKyAgICBteSAkY29sb3JEYXRhSW1wbCAgICAg
ICAgICAgICAgPSAiJG91dGRpci9Db2xvckRhdGEuY3BwIjsKKyAgICBteSAkY29sb3JEYXRhR2Vu
ZXJhdGVkICAgICAgICAgPSAiJG91dGRpci9Db2xvckRhdGFIYXNoLmgiOworICAgIG15ICRjb2xv
ckRhdGFHcGVyZiAgICAgICAgICAgICA9ICRBUkdWWzBdOwogICAgIHNoaWZ0OwogCisgICAgb3Bl
biBDT0xPUkRBVEEsICI+JGNvbG9yRGF0YUltcGwiIHx8IGRpZSAiQ291bGQgbm90IG9wZW4gJGNv
bG9yRGF0YUltcGwgZm9yIHdyaXRpbmciOworICAgIHByaW50IENPTE9SREFUQSA8PCAiRU9GIjsK
Ky8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBtYWtlLWhhc2gtdG9v
bHMucGwsIGRvIG5vdCBlZGl0ICovCisKKyNpbmNsdWRlICJIYXNoVG9vbHMuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworI2luY2x1ZGUgIkNvbG9yRGF0YUhhc2guaCIKKworY29uc3Qgc3RydWN0
IE5hbWVkQ29sb3IqIGZpbmRDb2xvciAocmVnaXN0ZXIgY29uc3QgY2hhciogc3RyLCByZWdpc3Rl
ciB1bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHJldHVybiBDb2xvckRhdGFIYXNoOjpmaW5kQ29s
b3JJbXBsKHN0ciwgbGVuKTsKK30KKworfQorCitFT0YKKyAgICBjbG9zZSBDT0xPUkRBVEE7CisK
ICAgICBzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtcyAyICRjb2xvckRh
dGFHcGVyZiA+ICRjb2xvckRhdGFHZW5lcmF0ZWQiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVy
ZiBmYWlsZWQ6ICQ/IjsKIAogfSAjIGNhc2UgIkNvbG9yRGF0YSIKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vQ29sb3JEYXRhLmdwZXJmIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEu
Z3BlcmYKaW5kZXggMTFlZjc5OC4uZDY4NGNiOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9Db2xvckRhdGEuZ3BlcmYKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYK
QEAgLTEsMTMgKzEsMTIgQEAKICVzdHJ1Y3QtdHlwZQotc3RydWN0IE5hbWVkQ29sb3IgewotICAg
IGNvbnN0IGNoYXIgKm5hbWU7Ci0gICAgaW50IFJHQlZhbHVlOwotfTsKLSVsYW5ndWFnZT1BTlNJ
LUMKK3N0cnVjdCBOYW1lZENvbG9yOworJW9taXQtc3RydWN0LXR5cGUKKyVsYW5ndWFnZT1DKysK
ICVyZWFkb25seS10YWJsZXMKICVnbG9iYWwtdGFibGUKICVjb21wYXJlLXN0cm5jbXAKLSVkZWZp
bmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZENvbG9yCislZGVmaW5lIGNsYXNzLW5hbWUgQ29s
b3JEYXRhSGFzaAorJWRlZmluZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kQ29sb3JJbXBsCiAl
ZGVmaW5lIGhhc2gtZnVuY3Rpb24tbmFtZSBjb2xvcmRhdGFfaGFzaF9mdW5jdGlvbgogJWluY2x1
ZGVzCiAlZW51bQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAppbmRleCA4MGM4Mjg2Li5m
MjhkNTFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcApAQCAtMjYsMTMgKzI2LDEy
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIKIAorI2luY2x1ZGUg
Ikhhc2hUb29scy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8bWF0
aC5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KIAotI2luY2x1ZGUgIkNvbG9yRGF0YS5jcHAiCi0KIHVzaW5nIG5hbWVzcGFjZSBzdGQ7
CiB1c2luZyBuYW1lc3BhY2UgV1RGOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9n
IGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA2ZGM0Mjg2Li5hNjhlZjcwIDEwMDY0NAotLS0g
YS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNCBAQAorMjAxMC0wOS0wMyAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5kZWZpbmVk
IHJlZmVyZW5jZSBlcnJvcnMgd2hlbiBsaW5raW5nIGR1ZSB0byBncGVyZiBhbmQgaW5saW5pbmcu
CisgICAgICAgIHdlYmtpdC5vcmcvYi8yOTI0NAorCisgICAgICAgIEVGTCBDTWFrZSBjaGFuZ2Vz
IGJ5IExlYW5kcm8gUGVyZWlyYSA8bGVhbmRyb0Bwcm9mdXNpb24ubW9iaT4KKworICAgICAgICBS
ZWZhY3RvciBncGVyZiBjb2RlIGdlbmVyYXRpb24gYW5kIHVzYWdlIHRvIGZpeCB0aGUgZGVidWcg
YnVpbGQgd2l0aCBnY2M+NC40LgorICAgICAgICBIaXRoZXJ0byBncGVyZiBnZW5lcmF0ZWQgQyBj
b2RlLCB0aGVzZSBmaWxlcyB3ZXJlIGluY2x1ZGVkIGluIG11bHRpcGxlIEMrKyBmaWxlcyBhY3Jv
c3MgV2ViQ29yZQorICAgICAgICB0byBhY2Nlc3MgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQu
IFRoaXMgcmVzdWx0ZWQgaW4gZGVidWcgYnVpbGQgZmFpbHVyZSB3aXRoIG5ld2VyIGdjYyB2ZXJz
aW9ucworICAgICAgICBiZWNhdXNlIG9mIGEgYmVoYXZpb3VyIGNoYW5nZSBvZiBnY2MsIHdoaWNo
IGRpc2FibGVzIEMgc3R5bGUgaW5saW5pbmcgaW4gZGVidWcgbW9kZS4KKyAgICAgICAgVGhlIG1h
a2UtaGFzaC10b29scy5wbCBzY3JpcHQgbGV0cyBncGVyZiBnZW5lcmF0ZSBDKysgY29kZSBmb3Ig
YWxsIGdwZXJmIGZpbGVzIG5vdywgd2hpY2ggYXJlIGNvbXBpbGVkCisgICAgICAgIGluIHRoZWly
IG93biBjb21waWxhdGlvbiB1bml0LgorICAgICAgICBUaGUgZnVuY3Rpb25hbGl0eSBwcm92aWRl
ZCBieSB0aGUgZ2VuZXJhdGVkIGNvZGUgaXMgd3JhcHBlZCBiZWhpbmQgSGFzaFRvb2xzLmgsIHNv
IHRoZXJlIGlzIG5vIG5lZWQKKyAgICAgICAgZm9yIG11bHRpcGxlIGluY2x1c2lvbnMgb2YgZ2Vu
ZXJhdGVkIEMgZmlsZXMgdG8gYWNjZXNzIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlUGx1Z2luKToKKwogMjAxMC0wOS0wMiAgWXVyeSBT
ZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQ
YXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuY3BwCmluZGV4IDU5ZjZhYzYuLmUwYzc2NWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTE0MDcsNyArMTQwNyw3
IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVQbHVnaW4o
Y29uc3QgSW50U2l6ZSYgcGx1Z2luU2l6ZSwKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBudW1xU3R5bGVTaGVldFByb3BlcnRpZXM7ICsraSkgewogICAgICAgICAgICAgICAg
IENTU1Byb3BlcnR5SUQgcHJvcGVydHkgPSBxc3R5bGVTaGVldFByb3BlcnRpZXNbaV07CiAKLSAg
ICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9IFFTdHJpbmc6OmZyb21MYXRpbjEoOjpnZXRQcm9w
ZXJ0eU5hbWUocHJvcGVydHkpKTsKKyAgICAgICAgICAgICAgICBzdHlsZVNoZWV0ICs9IFFTdHJp
bmc6OmZyb21MYXRpbjEoZ2V0UHJvcGVydHlOYW1lKHByb3BlcnR5KSk7CiAgICAgICAgICAgICAg
ICAgc3R5bGVTaGVldCArPSBRTGF0aW4xQ2hhcignOicpOwogICAgICAgICAgICAgICAgIHN0eWxl
U2hlZXQgKz0gY29tcHV0ZWRTdHlsZShlbGVtZW50KS0+Z2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0
eSk7CiAgICAgICAgICAgICAgICAgc3R5bGVTaGVldCArPSBRTGF0aW4xQ2hhcignOycpOwpkaWZm
IC0tZ2l0IGEvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlIGIvY21ha2UvV2ViS2l0TWFjcm9zLmNt
YWtlCmluZGV4IGI0ZjExNTMuLmYyMjE3NDcgMTAwNjQ0Ci0tLSBhL2NtYWtlL1dlYktpdE1hY3Jv
cy5jbWFrZQorKysgYi9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKQEAgLTg0LDE1ICs4NCwyNCBA
QCBNQUNSTyAoR0VORVJBVEVfR1JBTU1BUiBfcHJlZml4IF9pbnB1dCBfb3V0cHV0X2hlYWRlciBf
b3V0cHV0X3NvdXJjZSkKICAgICAgICAgVkVSQkFUSU0pCiBFTkRNQUNSTyAoKQogCitNQUNSTyhN
QUtFX0hBU0hfVE9PTFMgX3NvdXJjZSkKKyAgICBHRVRfRklMRU5BTUVfQ09NUE9ORU5UKF9uYW1l
ICR7X3NvdXJjZX0gTkFNRV9XRSkKKworICAgIElGICgke19zb3VyY2V9IFNUUkVRVUFMICJEb2NU
eXBlU3RyaW5ncyIpCisgICAgICAgIFNFVChfaGFzaF90b29sc19oICIke0RFUklWRURfU09VUkNF
U19ESVJ9L0hhc2hUb29scy5oIikKKyAgICBFTFNFICgpCisgICAgICAgIFNFVChfaGFzaF90b29s
c19oICIiKQorICAgIEVORElGICgpCiAKLU1BQ1JPIChHRU5FUkFURV9HUEVSRiBfaW5wdXQgX291
dHB1dCBfZnVuYyBfb3B0cykKICAgICBBRERfQ1VTVE9NX0NPTU1BTkQoCi0gICAgICAgIE9VVFBV
VCAke19vdXRwdXR9Ci0gICAgICAgIE1BSU5fREVQRU5ERU5DWSAke19pbnB1dH0KLSAgICAgICAg
Q09NTUFORCAke0dQRVJGX0VYRUNVVEFCTEV9IC1DREVHSW90IC1MIEFOU0ktQyAtLWtleS1wb3Np
dGlvbnM9KiAtcyAyIC1OICR7X2Z1bmN9ICR7X29wdHN9IDwgJHtfaW5wdXR9ID4gJHtfb3V0cHV0
fQorICAgICAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfRElSfS8ke19uYW1lfS5jcHAgJHtf
aGFzaF90b29sc19ofQorICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtfc291cmNlfS5ncGVyZiAK
KyAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJDT1JFX0RJUn0vbWFrZS1o
YXNoLXRvb2xzLnBsICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0gJHtfc291cmNlfS5ncGVyZgogICAg
ICAgICBWRVJCQVRJTSkKLUVORE1BQ1JPICgpCiAKKyAgICBVTlNFVChfbmFtZSkKKyAgICBVTlNF
VChfaGFzaF90b29sc19oKQorRU5ETUFDUk8oKQogCiBNQUNSTyAoV0VCS0lUX1dSQVBfU09VUkNF
TElTVCBfaW5wdXQpCiAgICAgSUYgKFdURl9QTEFURk9STV9RVCkKLS0gCjEuNy4yLjIKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>