<?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>139438</bug_id>
          
          <creation_ts>2014-12-09 02:43:45 -0800</creation_ts>
          <short_desc>[WPE][GTK] Enable usage of pre-compiled headers</short_desc>
          <delta_ts>2024-10-01 16:51:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CMake</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=176076</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=248202</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>231905</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Alberto Lopez Perez">clopez</reporter>
          <assigned_to name="Adrian Perez">aperez</assigned_to>
          <cc>aboya</cc>
    
    <cc>annulen</cc>
    
    <cc>aperez</cc>
    
    <cc>buildbot</cc>
    
    <cc>calvaris</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ivlev.igor</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>yoshiaki.jitsukawa</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1053723</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2014-12-09 02:43:45 -0800</bug_when>
    <thetext>The usage of pre-compiled headers can reduce compilation times. It has brought to my attention the existence of the the following CMake module to enable them: https://github.com/sakra/cotire</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053729</commentid>
    <comment_count>1</comment_count>
      <attachid>242904</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2014-12-09 03:13:43 -0800</bug_when>
    <thetext>Created attachment 242904
WIP patch. Enables pre-compiled headers on WTF and JSC. Fails on WebCore (commented out)

WIP: It enables pre-compiled headers on WTF and JSC. Fails on WebCore (its commented out). I didn&apos;t get performance measures yet, so I&apos;m not sure if this is worth. Test it by building with --cmakeargs=&quot;-DENABLE_PRECOMPILED_HEADERS=true&quot;. Check the main ChangeLog in the patch for more details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344457</commentid>
    <comment_count>2</comment_count>
      <attachid>319615</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-09-01 10:47:28 -0700</bug_when>
    <thetext>Created attachment 319615
Patch

Here goes another attempt at this, with a new patch which works well for both
JavaScriptCore and WebCore. The approach followed is to reuse the existing
prefix headers, adding system includes to them for GTK/WPE, and using them as
input for creation of the precompiled header. This way:

 - Only headers which are known to not change often get precompiled (that is:
   system headers, and those from the internal JHBuild for development builds).

 - We avoid breaking the build (super important!)

With the patch applied, with Clang, without CCache/IceCC, and using
“webkit-build --release --gtk --makeargs=WebCore”, build times are:

 - ~39 minutes WITH precompiled headers.
 - ~44 minutes WITHOUT precompiled headers.

This is certainly promising, and I already have some changes locally to also
enable precompiled headers for other targets (mainly WebKit, also WebProcess,
NetworkProcess, etc).

My main (and only) doubt is: Is it okay to reuse the existing prefix headers
for this?

(BTW, the builds I made here work fine, MiniBrowser works, and I also tried
running some layout tests (which worked), but I didn&apos;t wait for a full run to
finish.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344460</commentid>
    <comment_count>3</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-09-01 10:52:48 -0700</bug_when>
    <thetext>One comment: to use precompiled headers *and* CCache at the same
time, one needs to:

  export CCACHE_SLOPPINESS=pch_defines,time_macros

Cotire will emit a warning when CMake runs if it doesn&apos;t find the
environment variable set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344488</commentid>
    <comment_count>4</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-09-01 11:32:02 -0700</bug_when>
    <thetext>I think we should use https://github.com/larsch/cmake-precompiled-header for PCH and static *AllInOne.cpp files for unity builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344489</commentid>
    <comment_count>5</comment_count>
      <attachid>319615</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-01 11:32:19 -0700</bug_when>
    <thetext>Comment on attachment 319615
Patch

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

Awesome! I did not realize precompiled headers existed on Linux.

The necessity for the CCACHE_SLOPPINESS environment variable is the main blocker here. It has to work without needing any environment variables. ccache gets pulled in with the @developer-tools group on Fedora so it&apos;s expected to be present, but developers should not be expected to know what it is.

&gt; Source/JavaScriptCore/CMakeLists.txt:1607
&gt; +if (COMMAND cotire)

How does this conditional work? It&apos;s testing for what exactly?

&gt; Source/JavaScriptCore/CMakeLists.txt:1611
&gt; +        COTIRE_PREFIX_HEADER_INCLUDE_PATH &quot;${CMAKE_SOURCE_DIR}/WebKitBuild/DependenciesGTK/Root;${CMAKE_SOURCE_DIR}/WebKitBuild/DependenciesWPE/Root&quot;

r- also for the hardcoded paths. This is at least easy to fix; you can define some CMake variable differently in OptionsGTK.cmake and OptionsWPE.cmake and reuse it here.

&gt; Source/WebCore/CMakeLists.txt:4103
&gt; +        COTIRE_PREFIX_HEADER_INCLUDE_PATH &quot;${CMAKE_SOURCE_DIR}/WebKitBuild/DependenciesGTK/Root;${CMAKE_SOURCE_DIR}/WebKitBuild/DependenciesWPE/Root&quot;

Ditto.

&gt; Source/WebCore/WebCorePrefix.h:129
&gt; +#elif PLATFORM(GTK) || PLATFORM(WPE)

WebCorePrefix.h seems like the perfect location for this. I&apos;m not sure why you think it might not be OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344501</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-09-01 11:47:15 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #5)
&gt; Comment on attachment 319615 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=319615&amp;action=review
&gt; 
&gt; Awesome! I did not realize precompiled headers existed on Linux.
&gt; 
&gt; The necessity for the CCACHE_SLOPPINESS environment variable is the main
&gt; blocker here. It has to work without needing any environment variables.
&gt; ccache gets pulled in with the @developer-tools group on Fedora so it&apos;s
&gt; expected to be present, but developers should not be expected to know what
&gt; it is.
&gt; 

I strongly disagree with this being a blocker. Really.

Also, note that installing ccache doesn&apos;t mean you are using it.

To actually use ccache you have to change your default PATH.

$ which gcc
/usr/lib/ccache/gcc

And if you can change your PATH you can also change an environment variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344508</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-09-01 11:54:50 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #6)
&gt; (In reply to Michael Catanzaro from comment #5)
&gt; &gt; Comment on attachment 319615 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=319615&amp;action=review
&gt; &gt; 
&gt; &gt; Awesome! I did not realize precompiled headers existed on Linux.
&gt; &gt; 
&gt; &gt; The necessity for the CCACHE_SLOPPINESS environment variable is the main
&gt; &gt; blocker here. It has to work without needing any environment variables.
&gt; &gt; ccache gets pulled in with the @developer-tools group on Fedora so it&apos;s
&gt; &gt; expected to be present, but developers should not be expected to know what
&gt; &gt; it is.
&gt; &gt; 
&gt; 
&gt; I strongly disagree with this being a blocker. Really.
&gt; 
&gt; Also, note that installing ccache doesn&apos;t mean you are using it.
&gt; 
&gt; To actually use ccache you have to change your default PATH.
&gt; 
&gt; $ which gcc
&gt; /usr/lib/ccache/gcc
&gt; 
&gt; And if you can change your PATH you can also change an environment variable.

In any case the script build-webkit maybe can set this environment variable before executing CMake. That way everybody gets the right env var if they are using CMake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344544</commentid>
    <comment_count>8</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-09-01 13:03:43 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #6)
&gt; (In reply to Michael Catanzaro from comment #5)
&gt; &gt; Comment on attachment 319615 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=319615&amp;action=review
&gt; &gt; 
&gt; &gt; Awesome! I did not realize precompiled headers existed on Linux.
&gt; &gt; 
&gt; &gt; The necessity for the CCACHE_SLOPPINESS environment variable is the main
&gt; &gt; blocker here. It has to work without needing any environment variables.
&gt; &gt; ccache gets pulled in with the @developer-tools group on Fedora so it&apos;s
&gt; &gt; expected to be present, but developers should not be expected to know what
&gt; &gt; it is.
&gt; &gt; 
&gt; 
&gt; I strongly disagree with this being a blocker. Really.

Totally not a blocker. If you use CCache and do not set the environment
variable, compilation completes successfully anyway — CCache will just
have cache misses, as explained in the manual: 

   https://ccache.samba.org/manual.html#_precompiled_headers

&gt; Also, note that installing ccache doesn&apos;t mean you are using it.
&gt; 
&gt; To actually use ccache you have to change your default PATH.
&gt; 
&gt; $ which gcc
&gt; /usr/lib/ccache/gcc
&gt; 
&gt; And if you can change your PATH you can also change an environment variable.

Yep. CCache usage is optional, and it the user making the build is
responsible to opt-in to use it. The same goes for IceCC. It has always
been like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344546</commentid>
    <comment_count>9</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-09-01 13:10:08 -0700</bug_when>
    <thetext>(In reply to Konstantin Tokarev from comment #4)
&gt; I think we should use https://github.com/larsch/cmake-precompiled-header for
&gt; PCH and static *AllInOne.cpp files for unity builds.

Sorry, but cmake-precompiled-header does not support Clang — Cotire does.
That being said, if there is still a strong preference against Cotire, I can
try and modify cmake-precompiled-header to add Clang support.

At any rate, I think not supporting Clang for precompiled headers would be
bad, provided that some developers prefer it due to the (sometimes) better
error diagnostics and slightly faster build times. Also, some GNU/Linux
distributions which have old versions of GCC as the system compiler are
using Clang to build WebKitGTK+ and it would be nice that they could also
get faster builds by allowing usage of precompiled headers with Clang.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344550</commentid>
    <comment_count>10</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-09-01 13:14:49 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #5)
&gt; Comment on attachment 319615 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=319615&amp;action=review
&gt; 
&gt; Awesome! I did not realize precompiled headers existed on Linux.
&gt; 
&gt; The necessity for the CCACHE_SLOPPINESS environment variable is the main
&gt; blocker here. It has to work without needing any environment variables.
&gt; ccache gets pulled in with the @developer-tools group on Fedora so it&apos;s
&gt; expected to be present, but developers should not be expected to know what
&gt; it is.
&gt; 
&gt; &gt; Source/JavaScriptCore/CMakeLists.txt:1607
&gt; &gt; +if (COMMAND cotire)
&gt; 
&gt; How does this conditional work? It&apos;s testing for what exactly?

This checks whether a CMake function named “cotire” is available. When
Cotire is not loaded, this evaluates to “false” (note that CMake is
confusing: it uses the term “command” for functions that can be used
in CMake files).

&gt; &gt; Source/JavaScriptCore/CMakeLists.txt:1611
&gt; &gt; +        COTIRE_PREFIX_HEADER_INCLUDE_PATH &quot;${CMAKE_SOURCE_DIR}/WebKitBuild/DependenciesGTK/Root;${CMAKE_SOURCE_DIR}/WebKitBuild/DependenciesWPE/Root&quot;
&gt; 
&gt; r- also for the hardcoded paths. This is at least easy to fix; you can
&gt; define some CMake variable differently in OptionsGTK.cmake and
&gt; OptionsWPE.cmake and reuse it here.

Un-hardcoding these is a good suggestion, thanks!

&gt; &gt; Source/WebCore/WebCorePrefix.h:129
&gt; &gt; +#elif PLATFORM(GTK) || PLATFORM(WPE)
&gt; 
&gt; WebCorePrefix.h seems like the perfect location for this. I&apos;m not sure why
&gt; you think it might not be OK.

I also think that the existing prefix headers look like the perfect
place for this, but as I had never touched them before and the GTK+/WPE
ports didn&apos;t use them before, I was not 100% sure :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344555</commentid>
    <comment_count>11</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-09-01 13:25:44 -0700</bug_when>
    <thetext>So I am leaving a fresh build overnight in my laptop with the PCH
support added for the WebKit+WebProcess+NetworkProcess targets, and
if all goes well (as I expect!) tomorrow I&apos;ll post an updated patch
and new figures for the build times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344557</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-01 13:28:08 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #6)
&gt; To actually use ccache you have to change your default PATH.
&gt; 
&gt; $ which gcc
&gt; /usr/lib/ccache/gcc
&gt; 
&gt; And if you can change your PATH you can also change an environment variable.

The assumption that the user has intentionally enabled ccache, or even knows what ccache is, is not correct. For instance, on my machine:

$ which gcc
/usr/lib64/ccache/gcc

I didn&apos;t add that to my path, or do anything at all to configure ccache. Fedora has /etc/profile.d/ccache.sh to ensure it gets enabled without you having to know that ccache exists. It&apos;s not installed by default, but I did not intentionally install it either. At some point I ran the command &apos;dnf install @c-development&apos; which pulled it in. Safe to assume many, many developers will have done that.

(In reply to Carlos Alberto Lopez Perez from comment #7)
&gt; In any case the script build-webkit maybe can set this environment variable
&gt; before executing CMake. That way everybody gets the right env var if they
&gt; are using CMake.

That&apos;s not good enough. We need to set it from the CMake build system. Fortunately that should be very easy. It can be done with something like set(ENV{CCACHE_SLOPPINESS} ...). Let&apos;s just add that somewhere and move on.

(In reply to Adrian Perez from comment #8)
&gt; Totally not a blocker. If you use CCache and do not set the environment
&gt; variable, compilation completes successfully anyway — CCache will just
&gt; have cache misses, as explained in the manual: 
&gt; 
&gt;    https://ccache.samba.org/manual.html#_precompiled_headers

You said there would be a warning, and we don&apos;t allow build warnings. Anyway, we&apos;re lucky that it&apos;s easy enough to avoid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344562</commentid>
    <comment_count>13</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-09-01 13:46:05 -0700</bug_when>
    <thetext>(In reply to Konstantin Tokarev from comment #4)
&gt; I think we should use https://github.com/larsch/cmake-precompiled-header for
&gt; PCH and static *AllInOne.cpp files for unity builds.

Why is that better than Cotire?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344567</commentid>
    <comment_count>14</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-09-01 13:49:48 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #12)

&gt; [...]
&gt;
&gt; You said there would be a warning, and we don&apos;t allow build warnings.
&gt; Anyway, we&apos;re lucky that it&apos;s easy enough to avoid.

It&apos;s not a warning while compilation is in progress. CMake prints a
message during configuration telling the user (that is: *warning* the
user) that the environment variable should be defined later on while
building.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344570</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-01 14:02:12 -0700</bug_when>
    <thetext>Ah, OK then. I think that&apos;s OK. It&apos;s not so bad.

I guess it&apos;s not so easy to get the environment variable set after all. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344727</commentid>
    <comment_count>16</comment_count>
      <attachid>319687</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-09-01 20:30:03 -0700</bug_when>
    <thetext>Created attachment 319687
Alternative take, reusing existing macro

It turns out, the WebKit CMake files already had support
for doing precompiled headers with MSVC, so the best solution
in the end seemed to be to just hook there the missing CMake
spell to have it working for GCC and Clang. I reached this
solution after a long night trying to understand Cotire and
the suggestion by Konstantin, cmake-precompiled-header. Right
now I left my laptop doing a build, so no timings yet until
I get some hours of sleep -- hopefully the build will complete.

FWIW, personally I prefer this much simpler approach :-D

P.S: The patch will not pass the style checker, it is quite WIP
but I wanted to share it anyway so you can all give feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344728</commentid>
    <comment_count>17</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-09-01 20:30:52 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #16)

&gt; [...]
&gt; 
&gt; P.S: The patch will not pass the style checker, it is quite WIP
&gt; but I wanted to share it anyway so you can all give feedback.

Also the ChangeLog is not properly formatted O:-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344729</commentid>
    <comment_count>18</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-01 20:31:41 -0700</bug_when>
    <thetext>Attachment 319687 did not pass style-queue:


ERROR: Source/JavaScriptCore/JavaScriptCorePrefix.cpp:0:  No copyright message found.  You should have a line: &quot;Copyright [year] &lt;Copyright Owner&gt;&quot;  [legal/copyright] [5]
ERROR: Source/JavaScriptCore/JavaScriptCorePrefix.cpp:1:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 11 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>1344797</commentid>
    <comment_count>19</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-09-02 04:08:25 -0700</bug_when>
    <thetext>Well, the build didn&apos;t finish (see log below), but the method from the
simple patch mostly works: the PCH for JavaScriptCore got generated
and used, but then for WebCore it failed because there must be some
“-I...” flag missing when invoking the compiler to build the PCH.

Maybe I&apos;ll have some time later today to figure out how to pull the
missing compiler flags.

(BTW, the result is the same with Clang, so the switcheroo for chosing
the .gch/.pch suffix depending on the compiler is working well, too!)

--- Build Output ---

[168/6006] Generating ../../DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h
Only dealing with backends: [&quot;X86_64&quot;]
[1527/6006] Compiling PCH /home/aperez/devel/WebKit/WebKitBuild/Release/Source/WebCore/WebCoreDerivedSourcesPrefix.h.gch
FAILED: Source/WebCore/WebCoreDerivedSourcesPrefix.h.gch
cd /home/aperez/devel/WebKit/WebKitBuild/Release/Source/WebCore &amp;&amp; /usr/bin/g++ -x c++-header -o /home/aperez/devel/WebKit/WebKitBuild/Release/Source/WebCore/WebCoreDerivedSourcesPrefix.h.gch /home/aperez/devel/WebKit/Source/WebCore/WebCoreDerivedSourcesPrefix.cpp
In file included from /home/aperez/devel/WebKit/Source/WebCore/WebCoreDerivedSourcesPrefix.cpp:26:0:
/home/aperez/devel/WebKit/Source/WebCore/WebCorePrefix.h:34:10: fatal error: wtf/Platform.h: No such file or directory
 #include &lt;wtf/Platform.h&gt;
          ^~~~~~~~~~~~~~~~
compilation terminated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344801</commentid>
    <comment_count>20</comment_count>
      <attachid>319715</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-09-02 07:15:03 -0700</bug_when>
    <thetext>Created attachment 319715
Simple approach, now with include paths and defines passed when building PCHs


Here goes a new version of the simpler approach, which is not so
simple anymore, but it does not properly add the compiler defines
and include paths when compiling the prefix headers. In order to
get the lists of flags an extra parameter is passed to the macro,
which is the name of the target from which to pick the compiler
flags. The flags are written to a response file because that way
it is done as the last step after all the compilation setup has
been completed -- otherwise not all the flags get picked, in case
the WEBKIT_ADD_PRECOMPILED_HEADER is called *before* additional
options are set, which can happen in port-specific CMake snippets.

This version properly builds the PCHs, and I am waiting for the
builds to finish to be able to provide timings and validate that
WebKit is built correctly.

:-D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344802</commentid>
    <comment_count>21</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-02 07:16:42 -0700</bug_when>
    <thetext>Attachment 319715 did not pass style-queue:


ERROR: Source/JavaScriptCore/JavaScriptCorePrefix.cpp:0:  No copyright message found.  You should have a line: &quot;Copyright [year] &lt;Copyright Owner&gt;&quot;  [legal/copyright] [5]
ERROR: Source/JavaScriptCore/JavaScriptCorePrefix.cpp:1:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 14 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>1344805</commentid>
    <comment_count>22</comment_count>
      <attachid>319716</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-09-02 08:55:56 -0700</bug_when>
    <thetext>Created attachment 319716
WIP, fixes WebCoreDerivedSourcesPrefix; the style checker will still fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344806</commentid>
    <comment_count>23</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-02 08:57:48 -0700</bug_when>
    <thetext>Attachment 319716 did not pass style-queue:


ERROR: Source/JavaScriptCore/JavaScriptCorePrefix.cpp:0:  No copyright message found.  You should have a line: &quot;Copyright [year] &lt;Copyright Owner&gt;&quot;  [legal/copyright] [5]
ERROR: Source/JavaScriptCore/JavaScriptCorePrefix.cpp:1:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 14 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>1344814</commentid>
    <comment_count>24</comment_count>
      <attachid>319716</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-02 10:31:09 -0700</bug_when>
    <thetext>Comment on attachment 319716
WIP, fixes WebCoreDerivedSourcesPrefix; the style checker will still fail.

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

&gt; Source/WebKit/WebKit2Prefix.h:75
&gt; +#if USE(LIBEPOXY)
&gt; +#include &lt;epoxy.h&gt;
&gt; +#endif

We need to remove this from WebKit2Prefix.h because it&apos;s not in the include path. Seems this layer does not use libepoxy. See the build failure on the WPE bot.

&gt; Source/cmake/WebKitMacros.cmake:99
&gt; +            add_custom_command(
&gt; +                OUTPUT &quot;${PrecompiledBinary}&quot;
&gt; +                MAIN_DEPENDENCY &quot;${_cpp}&quot;
&gt; +                DEPENDS &quot;${PrecompiledBinary}.flags&quot;
&gt; +                COMMENT &quot;Compiling PCH ${PrecompiledBinary}&quot;
&gt; +                COMMAND &quot;${CMAKE_CXX_COMPILER}&quot; &quot;@${PrecompiledBinary}.flags&quot;
&gt; +                    -x c++-header ${_pch_cxx_flags} -o &quot;${PrecompiledBinary}&quot;
&gt; +                    &quot;${CMAKE_CURRENT_SOURCE_DIR}/${_cpp}&quot;)

So we did not need cotire after all? The bug title and ChangeLog entries need to be updated with the newer name.

&gt; ChangeLog:16
&gt; +2017-09-01  Adrian Perez de Castro  &lt;aperez@igalia.com&gt;
&gt; +
&gt; +        [CMake] Enable pre-compiled headers (PCH) (cotire)
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=139438
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * Source/cmake/WebKitMacros.cmake:
&gt; +
&gt; +2017-09-01  Adrian Perez de Castro  &lt;aperez@igalia.com&gt;
&gt; +
&gt; +        [CMake] Enable pre-compiled headers (PCH) (cotire)
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=139438
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +

Duplicate ChangeLog entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344825</commentid>
    <comment_count>25</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-09-02 11:14:29 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #24)
&gt; Comment on attachment 319716 [details]
&gt; WIP, fixes WebCoreDerivedSourcesPrefix; the style checker will still fail.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=319716&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebKit2Prefix.h:75
&gt; &gt; +#if USE(LIBEPOXY)
&gt; &gt; +#include &lt;epoxy.h&gt;
&gt; &gt; +#endif
&gt; 
&gt; We need to remove this from WebKit2Prefix.h because it&apos;s not in the include
&gt; path. Seems this layer does not use libepoxy. See the build failure on the
&gt; WPE bot.

Good catch. I have not tried building WPE yet, so this was an speculative
addition to the precompiled header. Once we have the initial support landed
we can look at what gets often included and try to add more #includes in
the prefix headers to further improve build times — IMHO that would be fine
as a follow-up patch :-)

&gt; &gt; Source/cmake/WebKitMacros.cmake:99
&gt; &gt; +            add_custom_command(
&gt; &gt; +                OUTPUT &quot;${PrecompiledBinary}&quot;
&gt; &gt; +                MAIN_DEPENDENCY &quot;${_cpp}&quot;
&gt; &gt; +                DEPENDS &quot;${PrecompiledBinary}.flags&quot;
&gt; &gt; +                COMMENT &quot;Compiling PCH ${PrecompiledBinary}&quot;
&gt; &gt; +                COMMAND &quot;${CMAKE_CXX_COMPILER}&quot; &quot;@${PrecompiledBinary}.flags&quot;
&gt; &gt; +                    -x c++-header ${_pch_cxx_flags} -o &quot;${PrecompiledBinary}&quot;
&gt; &gt; +                    &quot;${CMAKE_CURRENT_SOURCE_DIR}/${_cpp}&quot;)
&gt; 
&gt; So we did not need cotire after all? The bug title and ChangeLog entries
&gt; need to be updated with the newer name.

Noup, the simple approach works fine, thanks to the WebKit source code
being well organized and the usage we make of CMake being consistent.

Cotire does *a lot* of things because it tries to work in all possible
situations (old CMake versions, mixed C/C++ projects, compilers other
than GCC/Clang/MSVC, etc), and also it is made in such a way that it
queries *existing, already configured* CMake targets to allow adding
PCH+unitybuild support for any existing project, which is *very* hard
(I looked at the code, it&apos;s scaaary!); therefore it has a lot of code
needed to support all those scenarios.

&gt; &gt; ChangeLog:16
&gt; &gt; +2017-09-01  Adrian Perez de Castro  &lt;aperez@igalia.com&gt;
&gt; &gt; +
&gt; &gt; +        [CMake] Enable pre-compiled headers (PCH) (cotire)
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=139438
&gt; &gt; +
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; &gt; +
&gt; &gt; +        * Source/cmake/WebKitMacros.cmake:
&gt; &gt; +
&gt; &gt; +2017-09-01  Adrian Perez de Castro  &lt;aperez@igalia.com&gt;
&gt; &gt; +
&gt; &gt; +        [CMake] Enable pre-compiled headers (PCH) (cotire)
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=139438
&gt; &gt; +
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; &gt; +
&gt; 
&gt; Duplicate ChangeLog entry.

Yeah, I have been updating the attached patch to this bug often, to
let people see how it is coming along. It will need at least one last
cleanup pass (I have a couple of ideas to simplify macro invocations)
and fixing the ChangeLogs and other style violations.

At any rate, I will be updating with updates along the weekend — I am
determined to have PCH support working ASAP, because it will benefit
infrastructure (faster buildbots), developer experience (shorter
edit-compile-test cycle), and distributors (shorter build times to
update packages).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1345736</commentid>
    <comment_count>26</comment_count>
      <attachid>319716</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-05 18:05:12 -0700</bug_when>
    <thetext>Comment on attachment 319716
WIP, fixes WebCoreDerivedSourcesPrefix; the style checker will still fail.

I don&apos;t see anything major wrong with this, but you have some comments to address so let&apos;s get this out of the request queue for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347125</commentid>
    <comment_count>27</comment_count>
      <attachid>320349</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-09-09 10:15:38 -0700</bug_when>
    <thetext>Created attachment 320349
Patch

Updated version. Now this picks all the relevant
build flags which affect generation of the PCHs. After much back and forth
reading the CMake documentation, and checking what Cotire does (it turns
out it does many things because it *does* need to do them) I came up with
a not-so-big as Cotire yet not-as-simple as the solution pointed out by
Konstantin (which didn not work becayse it was missing flags).

Still pending to do actual full builds, with this I am getting consistently
between 1 and 2 minutes of saved build time when building only JSC. Also
gotta add the ChageLog entries and all -- but again, sharing early for
feedback. If somebody could run with this patch on MSVC to make sure I
did not break anything, that would be swell.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347127</commentid>
    <comment_count>28</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-09 10:17:26 -0700</bug_when>
    <thetext>Attachment 320349 did not pass style-queue:


ERROR: Source/JavaScriptCore/JavaScriptCorePrefix.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 10 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>1347154</commentid>
    <comment_count>29</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-09-09 14:26:48 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #27)

&gt; [...] If somebody could run with this patch on MSVC to make sure I
&gt; did not break anything, that would be swell.

...aaand of course the somebody is the Windows EWS. I&apos;ll fix it, and
also submit a version of the patch that enables PCHs by default, so
all the EWS run through it enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347161</commentid>
    <comment_count>30</comment_count>
      <attachid>320359</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-09-09 14:47:00 -0700</bug_when>
    <thetext>Created attachment 320359
Patch (not for landing)


This is an updated version with PCHs always enabled in order to
test things in all the EWS bots. If this works I will re-upload with the
check for ENABLE_PRECOMPILED_HEADERS in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347163</commentid>
    <comment_count>31</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-09 14:49:59 -0700</bug_when>
    <thetext>Attachment 320359 did not pass style-queue:


ERROR: Source/JavaScriptCore/JavaScriptCorePrefix.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 16 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>1348744</commentid>
    <comment_count>32</comment_count>
      <attachid>320359</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-09-14 06:10:18 -0700</bug_when>
    <thetext>Comment on attachment 320359
Patch (not for landing)

The patch looks good.
I&apos;m willing to do some benchmarks with it once it works ok.
For now, setting r- due to red EWS.
I tried it also locally and failed to build with:
FAILED: Source/WebCore/WebCore_DERIVED_SOURCES/pch.h.gch 
cd /home/clopez/webkit/webkit/WebKitBuild/Release/Source/WebCore &amp;&amp; /usr/bin/c++ @/home/clopez/webkit/webkit/WebKitBuild/Release/Source/WebCore/WebCore_DERIVED_SOURCES/flags -x c++-header -o /home/clopez/webkit/webkit/WebKitBuild/Release/Source/WebCore/WebCore_DERIVED_SOURCES/pch.h.gch /home/clopez/webkit/webkit/WebKitBuild/Release/Source/WebCore/WebCore_DERIVED_SOURCES/pch.h
In file included from /usr/include/c++/6/bits/stl_algo.h:59:0,
                 from /usr/include/c++/6/algorithm:62,
                 from /home/clopez/webkit/webkit/Source/WebCore/WebCorePrefix.h:81,
                 from /home/clopez/webkit/webkit/WebKitBuild/Release/Source/WebCore/WebCore_DERIVED_SOURCES/pch.h:1:
/usr/include/c++/6/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
 #include_next &lt;stdlib.h&gt;
                         ^
Which reminds me to bug 161697 (maybe related, take a look)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621634</commentid>
    <comment_count>33</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-02-21 07:08:09 -0800</bug_when>
    <thetext>We probably want to use the built-in support for precompiled
headers which will be available starting with CMake 3.16:

  https://onqtam.com/programming/2019-12-20-pch-unity-cmake-3-16/

Maybe it would be possible to have a macro which actually
calls CMake&apos;s target_precompile_headers() when using CMake 3.16
or newer, and which is a no-op otherwise (for older versions).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621909</commentid>
    <comment_count>34</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2020-02-22 16:36:16 -0800</bug_when>
    <thetext>We could also add cmake to jhbuild so it would be easier for developers to get this feature</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630684</commentid>
    <comment_count>35</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2020-03-17 03:45:33 -0700</bug_when>
    <thetext>I did some experiments with this feature and I&apos;d like to warn you that 3.16 is buggy, please use 3.17 at least</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805495</commentid>
    <comment_count>36</comment_count>
      <attachid>441574</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-18 02:28:09 -0700</bug_when>
    <thetext>Created attachment 441574
WIP Patch

New version using the CMake builtin PCH support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805502</commentid>
    <comment_count>37</comment_count>
      <attachid>441576</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-18 02:44:42 -0700</bug_when>
    <thetext>Created attachment 441576
WIP Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805531</commentid>
    <comment_count>38</comment_count>
      <attachid>441585</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-18 04:44:17 -0700</bug_when>
    <thetext>Created attachment 441585
WIP Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805543</commentid>
    <comment_count>39</comment_count>
      <attachid>441593</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-18 05:32:48 -0700</bug_when>
    <thetext>Created attachment 441593
WIP Patch v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805670</commentid>
    <comment_count>40</comment_count>
      <attachid>441627</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-18 12:09:20 -0700</bug_when>
    <thetext>Created attachment 441627
WIP Patch v5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805672</commentid>
    <comment_count>41</comment_count>
      <attachid>441628</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-18 12:11:25 -0700</bug_when>
    <thetext>Created attachment 441628
WIP Patch v6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805697</commentid>
    <comment_count>42</comment_count>
      <attachid>441636</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-18 13:17:12 -0700</bug_when>
    <thetext>Created attachment 441636
WIP Patch v7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805741</commentid>
    <comment_count>43</comment_count>
      <attachid>441649</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-18 15:34:20 -0700</bug_when>
    <thetext>Created attachment 441649
WIP Patch v8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806226</commentid>
    <comment_count>44</comment_count>
      <attachid>441769</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-19 12:27:34 -0700</bug_when>
    <thetext>Created attachment 441769
WIP Patch v9</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806260</commentid>
    <comment_count>45</comment_count>
      <attachid>441769</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2021-10-19 13:04:59 -0700</bug_when>
    <thetext>Comment on attachment 441769
WIP Patch v9

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

Looks like you&apos;re super close.

&gt; Source/WebKitLegacy/CMakeLists.txt:50
&gt; +WEBKIT_ADD_PRECOMPILED_HEADER(WebKitLegacy WebKitPrefix.h)

This should be done in the PlatformWin.cmake and the header is win/WebkitPrefix.h For PlatformMac it would be mac/WebKitPrefix.h

&gt; Tools/WebKitTestRunner/PlatformFTW.cmake:-32
&gt; -WEBKIT_ADD_PRECOMPILED_HEADER(&quot;WebKitTestRunnerPrefix.h&quot; &quot;win/WebKitTestRunnerPrefix.cpp&quot; WebKitTestRunner_SOURCES)

This again looks like you&apos;re going to hit an issue due to the location of the prefix header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806292</commentid>
    <comment_count>46</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-19 14:02:11 -0700</bug_when>
    <thetext>(In reply to Don Olmstead from comment #45)
&gt; Comment on attachment 441769 [details]
&gt; WIP Patch v9
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441769&amp;action=review
&gt; 
&gt; Looks like you&apos;re super close.
&gt; 
&gt; &gt; Source/WebKitLegacy/CMakeLists.txt:50
&gt; &gt; +WEBKIT_ADD_PRECOMPILED_HEADER(WebKitLegacy WebKitPrefix.h)
&gt; 
&gt; This should be done in the PlatformWin.cmake and the header is
&gt; win/WebkitPrefix.h For PlatformMac it would be mac/WebKitPrefix.h
&gt; 
&gt; &gt; Tools/WebKitTestRunner/PlatformFTW.cmake:-32
&gt; &gt; -WEBKIT_ADD_PRECOMPILED_HEADER(&quot;WebKitTestRunnerPrefix.h&quot; &quot;win/WebKitTestRunnerPrefix.cpp&quot; WebKitTestRunner_SOURCES)
&gt; 
&gt; This again looks like you&apos;re going to hit an issue due to the location of
&gt; the prefix header.

This souldn&apos;t be an issue, the header is indeed located at 
“Tools/WebKitTestRunner/WebKitTestRunnerPrefix.h” and with the
CMake PCH support the .cpp file is not really needed.

(Actually, next version of the patch will remove the unneeded
files as well.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806294</commentid>
    <comment_count>47</comment_count>
      <attachid>441792</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-19 14:04:01 -0700</bug_when>
    <thetext>Created attachment 441792
WIP Patch v10</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806340</commentid>
    <comment_count>48</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2021-10-19 14:56:47 -0700</bug_when>
    <thetext>```
C:\cygwin\home\buildbot\worker\Windows-EWS\build\Source\WebCore\platform\graphics\cg\ImageBufferCGBitmapBackend.cpp(146,36): error C2672: &apos;WTF::adoptCF&apos;: no matching overloaded function found [C:\cygwin\home\buildbot\worker\Windows-EWS\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]
```

This AppleWin failure is most likely due to WebCorePrefixHeader.h including CoreFoundation files so its a legit failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806934</commentid>
    <comment_count>49</comment_count>
      <attachid>441957</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2021-10-20 17:00:53 -0700</bug_when>
    <thetext>Created attachment 441957
Windows fixes

The DumpRenderTree and WebKitTestRunner bits on Windows use WEBKIT_EXECUTABLE_WRAP which creates a DLL that has all the code that the executable then runs. Apply to that wrapper library to prevent the build error seen on the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806965</commentid>
    <comment_count>50</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2021-10-20 17:50:18 -0700</bug_when>
    <thetext>Windows is happy. Not sure why WPE decided to stop building.

Anyways I&apos;ll leave the rest to you Adrian.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807109</commentid>
    <comment_count>51</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-21 06:17:14 -0700</bug_when>
    <thetext>(In reply to Don Olmstead from comment #50)
&gt; Windows is happy. Not sure why WPE decided to stop building.
&gt; 
&gt; Anyways I&apos;ll leave the rest to you Adrian.

Great, thanks for your support! I will integrate your fixes, check
why the WPE builder is choking now on the patch, and make sure this
gets landed in the next days \o/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807336</commentid>
    <comment_count>52</comment_count>
      <attachid>442060</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2021-10-21 13:28:05 -0700</bug_when>
    <thetext>Created attachment 442060
Windows and PlayStation fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807339</commentid>
    <comment_count>53</comment_count>
      <attachid>442060</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2021-10-21 13:31:12 -0700</bug_when>
    <thetext>Comment on attachment 442060
Windows and PlayStation fixes

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

Additional changes were required for a local PlayStation build so please use this as your base.

&gt; Source/WebCore/testing/js/WebCoreTestSupportPrefix.h:-48
&gt; -
&gt; -#define WEBCORE_TESTSUPPORT_EXPORT WEBCORE_EXPORT
&gt; -

This should be properly handled in PlatformExportMacros.h 🤞

&gt; Source/WebCore/testing/js/WebCoreTestSupportPrefix.h:130
&gt; +#elif defined(__APPLE__)
&gt; +
&gt;  #if !PLATFORM(IOS_FAMILY)
&gt;  #include &lt;CoreServices/CoreServices.h&gt;
&gt;  #endif // !PLATFORM(IOS_FAMILY)

PlayStation was ending up trying to include CoreServices.h so changed this into one big #if #elif setup to prevent that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807610</commentid>
    <comment_count>54</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-22 02:54:48 -0700</bug_when>
    <thetext>I left a script running overnight undisturbed in an old laptop, which
did three builds without this patch, and three builds after applying it.
The builds were done as of r284652 with the Flatpak SDK using the
following command:

  WK_USE_CCACHE=NO ./Tools/Scripts/build-webkit --gtk --no-experimental-features

The averaged build times were:

   Before: 2h:22m:07s
    After: 2h:12m:54s

While not much faster, it&apos;s still a ~7% speedup, and we get to simplify
and unify the handling of precompiled headers. We can probably tweak the
prefix headers to make a few more big #includes to further improve things,
but I would rather do that in a follow-up =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807638</commentid>
    <comment_count>55</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-22 05:34:24 -0700</bug_when>
    <thetext>Well, I don&apos;t know why the linker is being passed the precompiled
header or why that&apos;s an issue, but at least now I can reproduce it
locally: doing a build with the patch applied on top of a dirty
build directory using the Flatpak SDK hits it. Investigating…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808637</commentid>
    <comment_count>56</comment_count>
      <attachid>442431</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-25 15:48:28 -0700</bug_when>
    <thetext>Created attachment 442431
WIP Patch v11</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808640</commentid>
    <comment_count>57</comment_count>
      <attachid>442432</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-25 15:54:14 -0700</bug_when>
    <thetext>Created attachment 442432
WIP Patch v12</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810028</commentid>
    <comment_count>58</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-29 04:48:08 -0700</bug_when>
    <thetext>I have now a version of the patch that also makes the WPE port build
correctly. Just one pass more to clean up a couple of things and I will
post the finished patch to land :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810038</commentid>
    <comment_count>59</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-29 05:39:26 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #58)
&gt; I have now a version of the patch that also makes the WPE port build
&gt; correctly. Just one pass more to clean up a couple of things and I will
&gt; post the finished patch to land :-)

Wait! The plot thickens:

  % cmake --version | head -1
  cmake version 3.21.4
  % cmake --version | head -1
  cmake version 3.21.2
  %

System CMake (the newer one) works, but the one from the Flatpak SDK still
doesn&apos;t. Checking the diff between both versions I cannot find anything
obvious that would affect how target_precompile_headers() works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810042</commentid>
    <comment_count>60</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-29 05:41:02 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #59)
&gt; (In reply to Adrian Perez from comment #58)
&gt; &gt; I have now a version of the patch that also makes the WPE port build
&gt; &gt; correctly. Just one pass more to clean up a couple of things and I will
&gt; &gt; post the finished patch to land :-)
&gt; 
&gt; Wait! The plot thickens:
&gt; 
&gt;   % cmake --version | head -1
&gt;   cmake version 3.21.4
&gt;   % cmake --version | head -1
&gt;   cmake version 3.21.2
&gt;   %
&gt; 
&gt; System CMake (the newer one) works, but the one from the Flatpak SDK still
&gt; doesn&apos;t. Checking the diff between both versions I cannot find anything
&gt; obvious that would affect how target_precompile_headers() works.

Ah, also my non-Flatpak build dir is configured to use Clang; I have to
try with a configuration more similar to what “build-webkit“ does.

That being said... I am tempted to disable PCH for the JavaScriptCore
target for the WPE port and try to fix it after this patch lands. Opionions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810050</commentid>
    <comment_count>61</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-10-29 06:02:13 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #60)
&gt; (In reply to Adrian Perez from comment #59)
&gt; &gt; (In reply to Adrian Perez from comment #58)
&gt; &gt; &gt; I have now a version of the patch that also makes the WPE port build
&gt; &gt; &gt; correctly. Just one pass more to clean up a couple of things and I will
&gt; &gt; &gt; post the finished patch to land :-)
&gt; &gt; 
&gt; &gt; Wait! The plot thickens:
&gt; &gt; 
&gt; &gt;   % cmake --version | head -1
&gt; &gt;   cmake version 3.21.4
&gt; &gt;   % cmake --version | head -1
&gt; &gt;   cmake version 3.21.2
&gt; &gt;   %
&gt; &gt; 
&gt; &gt; System CMake (the newer one) works, but the one from the Flatpak SDK still
&gt; &gt; doesn&apos;t. Checking the diff between both versions I cannot find anything
&gt; &gt; obvious that would affect how target_precompile_headers() works.
&gt; 
&gt; Ah, also my non-Flatpak build dir is configured to use Clang; I have to
&gt; try with a configuration more similar to what “build-webkit“ does.

Further narrowing down: This happens only when the compiler is GCC. Aither
CMake generates correct build rules when Clang is the compiler, or Clang is
ignoring passed PCH files at link time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811668</commentid>
    <comment_count>62</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-11-03 14:54:28 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #61)
&gt; (In reply to Adrian Perez from comment #60)
&gt; &gt; (In reply to Adrian Perez from comment #59)
&gt; &gt; &gt; (In reply to Adrian Perez from comment #58)
&gt; &gt; &gt; &gt; I have now a version of the patch that also makes the WPE port build
&gt; &gt; &gt; &gt; correctly. Just one pass more to clean up a couple of things and I will
&gt; &gt; &gt; &gt; post the finished patch to land :-)
&gt; &gt; &gt; 
&gt; &gt; &gt; Wait! The plot thickens:
&gt; &gt; &gt; 
&gt; &gt; &gt;   % cmake --version | head -1
&gt; &gt; &gt;   cmake version 3.21.4
&gt; &gt; &gt;   % cmake --version | head -1
&gt; &gt; &gt;   cmake version 3.21.2
&gt; &gt; &gt;   %
&gt; &gt; &gt; 
&gt; &gt; &gt; System CMake (the newer one) works, but the one from the Flatpak SDK still
&gt; &gt; &gt; doesn&apos;t. Checking the diff between both versions I cannot find anything
&gt; &gt; &gt; obvious that would affect how target_precompile_headers() works.
&gt; &gt; 
&gt; &gt; Ah, also my non-Flatpak build dir is configured to use Clang; I have to
&gt; &gt; try with a configuration more similar to what “build-webkit“ does.
&gt; 
&gt; Further narrowing down: This happens only when the compiler is GCC. Aither
&gt; CMake generates correct build rules when Clang is the compiler, or Clang is
&gt; ignoring passed PCH files at link time.

Another round of testing later...

 - Both Clang and GCC trip with the .[pg]ch files being added in the
   linker command line.
 - Clang with *LLD* does not trip, no idea if it&apos;s LLD ignoring the
   file or the compiler driver removing it from the linker command.
 - In any case, the build.ninja/Makefile files produced by CMake have
   an invalid command line.
 - Seems to be a CMake bug, in the end.

Don has found https://gitlab.kitware.com/cmake/cmake/-/issues/22630 which
seems related but I built a patched CMake 3.21.3 with the associated fix
included and it did not help. At any rate, that is where I got an idea
to avoid adding calling target_precompile_headers() when the target is
of type OBJECT_LIBRARY — this works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811673</commentid>
    <comment_count>63</comment_count>
      <attachid>443247</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-11-03 14:57:31 -0700</bug_when>
    <thetext>Created attachment 443247
WIP Patch v13


Current version, for the sake of running it through the EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825662</commentid>
    <comment_count>64</comment_count>
      <attachid>447615</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-12-20 11:32:33 -0800</bug_when>
    <thetext>Created attachment 447615
Patch v14

Rebased, let&apos;s try and sort out the Windows build issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825838</commentid>
    <comment_count>65</comment_count>
      <attachid>447615</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-12-20 18:17:04 -0800</bug_when>
    <thetext>Comment on attachment 447615
Patch v14

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

&gt; Source/cmake/WebKitMacros.cmake:102
&gt; +        if (NOT type STREQUAL OBJECT_LIBRARY)

This patch doesn&apos;t work as expected. type should be ${type}

&gt; if (NOT ${type} STREQUAL OBJECT_LIBRARY)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825840</commentid>
    <comment_count>66</comment_count>
      <attachid>447615</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-12-20 18:18:03 -0800</bug_when>
    <thetext>Comment on attachment 447615
Patch v14

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

&gt;&gt; Source/cmake/WebKitMacros.cmake:102
&gt;&gt; +        if (NOT type STREQUAL OBJECT_LIBRARY)
&gt; 
&gt; This patch doesn&apos;t work as expected. type should be ${type}

This condition is unfortunate for WinCairo port.
WinCairo is using OBJECT library for WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825845</commentid>
    <comment_count>67</comment_count>
      <attachid>447615</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-12-20 18:36:49 -0800</bug_when>
    <thetext>Comment on attachment 447615
Patch v14

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

&gt; Source/cmake/WebKitMacros.cmake:99
&gt; +if (ENABLE_PRECOMPILED_HEADERS)

ENABLE_PRECOMPILED_HEADERS isn&apos;t defined yet in the first run.
I think you should move the condition into the function.

function(WEBKIT_ADD_PRECOMPILED_HEADER _target _header)
    if (ENABLE_PRECOMPILED_HEADERS)
       ...
    endif ()
endfunction()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826390</commentid>
    <comment_count>68</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-12-22 13:58:12 -0800</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #65)
&gt; Comment on attachment 447615 [details]
&gt; Patch v14
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=447615&amp;action=review
&gt; 
&gt; &gt; Source/cmake/WebKitMacros.cmake:102
&gt; &gt; +        if (NOT type STREQUAL OBJECT_LIBRARY)
&gt; 
&gt; This patch doesn&apos;t work as expected. type should be ${type}
&gt; 
&gt; &gt; if (NOT ${type} STREQUAL OBJECT_LIBRARY)

This works fine as-is, CMake tries to expand variables even if ${}
is not used to explicitly expand them inside “if” conditions (yeah,
CMake is weird, I can use ${type} here for the sake of clarity, though!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826391</commentid>
    <comment_count>69</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-12-22 13:59:20 -0800</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #66)
&gt; Comment on attachment 447615 [details]
&gt; Patch v14
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=447615&amp;action=review
&gt; 
&gt; &gt;&gt; Source/cmake/WebKitMacros.cmake:102
&gt; &gt;&gt; +        if (NOT type STREQUAL OBJECT_LIBRARY)
&gt; &gt; 
&gt; &gt; This patch doesn&apos;t work as expected. type should be ${type}
&gt; 
&gt; This condition is unfortunate for WinCairo port.
&gt; WinCairo is using OBJECT library for WebCore.

We also use an object library for JavaScriptCore in the WPE port.
I hope that CMake eventually fixes this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826392</commentid>
    <comment_count>70</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-12-22 14:00:24 -0800</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #67)
&gt; Comment on attachment 447615 [details]
&gt; Patch v14
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=447615&amp;action=review
&gt; 
&gt; &gt; Source/cmake/WebKitMacros.cmake:99
&gt; &gt; +if (ENABLE_PRECOMPILED_HEADERS)
&gt; 
&gt; ENABLE_PRECOMPILED_HEADERS isn&apos;t defined yet in the first run.
&gt; I think you should move the condition into the function.
&gt; 
&gt; function(WEBKIT_ADD_PRECOMPILED_HEADER _target _header)
&gt;     if (ENABLE_PRECOMPILED_HEADERS)
&gt;        ...
&gt;     endif ()
&gt; endfunction()

Will do, thanks for the suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826444</commentid>
    <comment_count>71</comment_count>
      <attachid>447615</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-12-22 16:45:43 -0800</bug_when>
    <thetext>Comment on attachment 447615
Patch v14

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

&gt;&gt;&gt;&gt;&gt; Source/cmake/WebKitMacros.cmake:102
&gt;&gt;&gt;&gt;&gt; +        if (NOT type STREQUAL OBJECT_LIBRARY)
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; This patch doesn&apos;t work as expected. type should be ${type}
&gt;&gt;&gt; 
&gt;&gt;&gt; This condition is unfortunate for WinCairo port.
&gt;&gt;&gt; WinCairo is using OBJECT library for WebCore.
&gt;&gt; 
&gt;&gt; This works fine as-is, CMake tries to expand variables even if ${}
&gt;&gt; is not used to explicitly expand them inside “if” conditions (yeah,
&gt;&gt; CMake is weird, I can use ${type} here for the sake of clarity, though!)
&gt; 
&gt; We also use an object library for JavaScriptCore in the WPE port.
&gt; I hope that CMake eventually fixes this bug.

My bad. I tried it again locally. The condition works. Is it a good idea to quote a string?
if (NOT type STREQUAL &quot;OBJECT_LIBRARY&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826446</commentid>
    <comment_count>72</comment_count>
      <attachid>447615</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-12-22 16:47:32 -0800</bug_when>
    <thetext>Comment on attachment 447615
Patch v14

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

&gt;&gt;&gt;&gt;&gt;&gt; Source/cmake/WebKitMacros.cmake:102
&gt;&gt;&gt;&gt;&gt;&gt; +        if (NOT type STREQUAL OBJECT_LIBRARY)
&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt; This patch doesn&apos;t work as expected. type should be ${type}
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; This condition is unfortunate for WinCairo port.
&gt;&gt;&gt;&gt; WinCairo is using OBJECT library for WebCore.
&gt;&gt;&gt; 
&gt;&gt;&gt; This works fine as-is, CMake tries to expand variables even if ${}
&gt;&gt;&gt; is not used to explicitly expand them inside “if” conditions (yeah,
&gt;&gt;&gt; CMake is weird, I can use ${type} here for the sake of clarity, though!)
&gt;&gt; 
&gt;&gt; We also use an object library for JavaScriptCore in the WPE port.
&gt;&gt; I hope that CMake eventually fixes this bug.
&gt; 
&gt; My bad. I tried it again locally. The condition works. Is it a good idea to quote a string?
&gt; if (NOT type STREQUAL &quot;OBJECT_LIBRARY&quot;)

As far as I tested locally, target_precompile_headers works for OBJECT libraries in WinCairo port.
Can you specify more conditions for the workaround?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842545</commentid>
    <comment_count>73</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2022-02-16 14:59:01 -0800</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #72)
&gt; Comment on attachment 447615 [details]
&gt; Patch v14
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=447615&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt;&gt;&gt; Source/cmake/WebKitMacros.cmake:102
&gt; &gt;&gt;&gt;&gt;&gt;&gt; +        if (NOT type STREQUAL OBJECT_LIBRARY)
&gt; &gt;&gt;&gt;&gt;&gt; 
&gt; &gt;&gt;&gt;&gt;&gt; This patch doesn&apos;t work as expected. type should be ${type}
&gt; &gt;&gt;&gt;&gt; 
&gt; &gt;&gt;&gt;&gt; This condition is unfortunate for WinCairo port.
&gt; &gt;&gt;&gt;&gt; WinCairo is using OBJECT library for WebCore.
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; This works fine as-is, CMake tries to expand variables even if ${}
&gt; &gt;&gt;&gt; is not used to explicitly expand them inside “if” conditions (yeah,
&gt; &gt;&gt;&gt; CMake is weird, I can use ${type} here for the sake of clarity, though!)
&gt; &gt;&gt; 
&gt; &gt;&gt; We also use an object library for JavaScriptCore in the WPE port.
&gt; &gt;&gt; I hope that CMake eventually fixes this bug.
&gt; &gt; 
&gt; &gt; My bad. I tried it again locally. The condition works. Is it a good idea to quote a string?
&gt; &gt; if (NOT type STREQUAL &quot;OBJECT_LIBRARY&quot;)
&gt; 
&gt; As far as I tested locally, target_precompile_headers works for OBJECT
&gt; libraries in WinCairo port.
&gt; Can you specify more conditions for the workaround?

Sure, we could try and enable the workaround only for non-MSVC compilers.

(Also I need to rebase the patch and update it a bit.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1915068</commentid>
    <comment_count>74</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-11-28 12:36:42 -0800</bug_when>
    <thetext>257057@main (bug#248202) landed the most part of your patch for Windows ports.
CMAKE_DISABLE_PRECOMPILE_HEADERS should be OFF for all ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2064682</commentid>
    <comment_count>75</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2024-10-01 16:37:48 -0700</bug_when>
    <thetext>I have a new version of the patch enabling precompiled headers for the
WPE and GTK ports, build times seem to indeed benefit from it:

* PCH enabled: 48359,85s user 3001,70s system 1638% cpu 52:15,20 total
* PCH disabled: 77931,63s user 4310,79s system 1696% cpu 1:20:47,65 total

OTOH, using ccache with precompiled headers looks may be a bit tricky,
see https://ccache.dev/manual/4.10.2.html#_precompiled_headers :-\</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2064691</commentid>
    <comment_count>76</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2024-10-01 16:51:28 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/34538</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242904</attachid>
            <date>2014-12-09 03:13:43 -0800</date>
            <delta_ts>2017-09-01 10:47:20 -0700</delta_ts>
            <desc>WIP patch. Enables pre-compiled headers on WTF and JSC. Fails on WebCore (commented out)</desc>
            <filename>wip-enable-cotire-pch-cmake.patch</filename>
            <type>text/plain</type>
            <size>160409</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggZGExNzM2
Yi4uNGJjMGRkMiAxMDA2NDQKLS0tIGEvQ01ha2VMaXN0cy50eHQKKysrIGIvQ01ha2VMaXN0cy50
eHQKQEAgLTEsNCArMSw0IEBACi1jbWFrZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gMi44Ljgp
CitjbWFrZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gMi44LjExKQogcHJvamVjdChXZWJLaXQp
CiAKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMyLDYgKzMyLDEzIEBAIGlmIChOT1QgREVG
SU5FRCBFTkFCTEVfVE9PTFMgQU5EIEVYSVNUUyAke1RPT0xTX0RJUn0pCiAgICAgc2V0KEVOQUJM
RV9UT09MUyBPTikKIGVuZGlmICgpCiAKK2lmIChERUZJTkVEIEVOQUJMRV9QUkVDT01QSUxFRF9I
RUFERVJTKQorICAgIGluY2x1ZGUoY290aXJlKQorICAgICMgc29tZSBwYXJhbWV0ZXJzIHRoYXQg
Y2FuIGJlIHVuY29tbWVudGVkIHRvIGVuYWJsZSBtb3JlIHZlcmJvc2Ugb3V0cHV0OgorICAgICNz
ZXQgKENPVElSRV9WRVJCT1NFIFRSVUUpCisgICAgI3NldCAoQ01BS0VfVkVSQk9TRV9NQUtFRklM
RSBPTikKK2VuZGlmICgpCisKICMgRG8gbm90IGNyZWF0ZSB0cmFuc2l0aXZlIGxpYnJhcnkgZGVw
ZW5kZW5jaWVzIGJ5IGRlZmF1bHQKIHNldChDTUFLRV9MSU5LX0lOVEVSRkFDRV9MSUJSQVJJRVMg
IiIpCiAKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA3ZDAwODQ4Li4x
NzMxYzgyIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzkgQEAKKzIwMTQtMTItMDkgIENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGln
YWxpYS5jb20+CisKKyAgICAgICAgW0NNYWtlXSBFbmFibGUgcHJlLWNvbXBpbGVkIGhlYWRlcnMg
KFBDSCkgKGNvdGlyZSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzOTQzOAorCisgICAgICAgIChXSVApIC0gUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKworICAgICAgICBQcm9wZXJ0aWVzIENPVElSRV9QUkVGSVhfSEVBREVSX0lHTk9SRV9Q
QVRIIGFuZCBDT1RJUkVfUFJFRklYX0hFQURFUl9JTkNMVURFX1BBVEgKKyAgICAgICAgY2FuIGJl
IHNldCB0byBpbmNsdWRlIGFuZCBleGNsdWRlIGhlYWRlciBmaWxlcyBiYXNlZCBvbiBwYXRocy4K
KyAgICAgICAgVGhlIGlkZWEgaXMgdGhhdCB5b3UgZG9uJ3QgaW5jbHVkZSB0aGUgaGVhZGVycyBv
ZiB5b3VyIHByb2plY3QgKHNpbmNlIHRob3NlIGFyZSBleHBlY3RlZAorICAgICAgICB0byBjaGFu
Z2Ugb2Z0ZW4pLCBidXQgZXh0ZXJuYWwgaGVhZGVycy4KKworICAgICAgICBCeSBkZWZhdWx0IENP
VElSRV9QUkVGSVhfSEVBREVSX0lHTk9SRV9QQVRIIGRlZmF1bHRzIHRvICR7Q01BS0VfQklOQVJZ
X0RJUn07JHtDTUFLRV9TT1VSQ0VfRElSfQorICAgICAgICBhbmQgQ09USVJFX1BSRUZJWF9IRUFE
RVJfSU5DTFVERV9QQVRIIGRlZmF1bHRzIHRvICIiLiBDaGVjayB0aGUgY290aXJlIG1hbnVhbCBm
b3IKKyAgICAgICAgbW9yZSBpbmZvcm1hdGlvbjogaHR0cHM6Ly9naXRodWIuY29tL3Nha3JhL2Nv
dGlyZS9ibG9iL21hc3Rlci9NQU5VQUwubWQKKworICAgICAgICBUaGUgZGVmYXVsdHMgZm9yIENP
VElSRV9QUkVGSVhfSEVBREVSX0lHTk9SRS9JTkNMVURFX1BBVEhTIG1ha2VzIHNlbnNlIG9uIG5v
cm1hbCBwcm9qZWN0cy4KKyAgICAgICAgSG93ZXZlciwgb24gV2ViS2l0IHdlIGhhdmUgc2V2ZXJh
bCAic3VicHJvamVjdHMiIG9uIHRoZSBzYW1lIHRyZWUuCisgICAgICAgIEZvciBleGFtcGxlLCB3
aGVuIGJ1aWxkaW5nIEpTQyBJIHdvdWxkIGxpa2UgdG8gaW5jbHVkZSB0aGUgaGVhZGVycyBmcm9t
IFdURi4KKworICAgICAgICBTbyB0aGUgaWRlYSBpcyB0byBtb2RpZnkgdGhlIGlnbm9yZSBwYXRo
IHRvIG9ubHkgaWdub3JlIHRoZSBmaWxlcyBvZiBlYWNoICJzdWJwcm9qZWN0IgorCisgICAgICAg
IFRoaXMgY2FuIGJlIHRlc3RlZCBieSBidWlsZGluZyBXZWJLaXQgd2l0aCB0aGUgZm9sbG93aW5n
IGFyZ3VtZW50cworICAgICAgICBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdCAtLVtidWlsZHBh
cmFtc10gLS1jbWFrZWFyZ3M9Ii1ERU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUlM9dHJ1ZSIKKwor
ICAgICAgICBBZnRlciB0aGF0LCBjaGVjayB0aGUgZmlsZXMgaW5zaWRlIHRoZSBnZW5lcmF0ZWQg
Y290aXJlIGRpcmVjdG9yaWVzIHRvIGdldCBhbgorICAgICAgICBpZGVhIG9mIHdoaWNoIGhlYWRl
cnMgaXMgcHJlLWNvbXBpbGluZworICAgICAgICAkIGZpbmQgV2ViS2l0QnVpbGQgLXR5cGUgZCAt
bmFtZSBjb3RpcmUKKworICAgICAgICBPbiBDTWFrZUxpc3RzLnR4dCB5b3UgY2FuIGFsc28gdW5j
b21tbmVudCBDT1RJUkVfVkVSQk9TRSB0byBnZXQgdmVyYm9zZSBvdXRwdXQuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDogRW5hYmxlIGNvdGlyZSB3aGVuIEVOQUJMRV9QUkVDT01QSUxFRF9I
RUFERVJTIGlzIGRlZmluZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL2NvdGlyZS5jbWFrZTog
QWRkZWQuIEltcG9ydCBjb3RpcmUgbW9kdWxlIGZyb20KKyAgICAgICAgaHR0cHM6Ly9naXRodWIu
Y29tL3Nha3JhL2NvdGlyZSAoY290aXJlIDEuNi42KQorCiAyMDE0LTEyLTA3ICBBbGJlcnRvIEdh
cmNpYSAgPGJlcnRvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gV2ViS2l0IGhhcyBhIG5l
dyByZXF1aXJlZCBkZXBlbmRlbmN5IG9uIEdudVRMUwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IGMyMzZmZmUuLjFkOGYzYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTExOTMsMyArMTE5Myw4IEBAIGVuZGlmICgpCiBpZiAoRU5BQkxFX0ZUTF9K
SVQpCiAgICAgYWRkX2RlcGVuZGVuY2llcyhKYXZhU2NyaXB0Q29yZSBsbHZtRm9ySlNDKQogZW5k
aWYgKCkKKworaWYgKERFRklORUQgRU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUlMpCisgICAgc2V0
X3RhcmdldF9wcm9wZXJ0aWVzKEphdmFTY3JpcHRDb3JlIFBST1BFUlRJRVMgQ09USVJFX1BSRUZJ
WF9IRUFERVJfSUdOT1JFX1BBVEggIiR7SkFWQVNDUklQVENPUkVfRElSfTske0RFUklWRURfU09V
UkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9IikKKyAgICBjb3RpcmUoSmF2YVNjcmlwdENvcmUpCitl
bmRpZiAoKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
CmluZGV4IDc0MTQyNzIuLjUzNjEyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDE0LTEyLTA5ICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3Bl
ekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFk
ZXJzIChQQ0gpIChjb3RpcmUpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAgICAoV0lQKSAtIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZCBjb3RpcmUgcnVsZXMsIGlu
Y2x1ZGUgYWxsIGhlYWRlcnMgZXhjZXB0CisgICAgICAgIHRoZSBKU0Mgb25lcy4KKwogMjAxNC0x
Mi0wOCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAg
IEZpeCBFRkwgYnVpbGQgZml4IHNpbmNlIHIxNzcwMDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2MzMGMwNS4uM2IxODAwOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0xMi0wOSAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVy
ZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2VdIEVuYWJsZSBwcmUtY29t
cGlsZWQgaGVhZGVycyAoUENIKSAoY290aXJlKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgKFdJUCkgLSBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDogQWRkIGNv
dGlyZSBydWxlcywgaW5jbHVkZSBhbGwgaGVhZGVycyBleGNlcHQKKyAgICAgICAgdGhlIFdURiBv
bmVzLgorCiAyMDE0LTEyLTA4ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbQXBwbGVdIFVzZSBBY2NlbGVyYXRlIGZyYW1ld29yayB0byBzcGVlZC11cCBGRUdhdXNz
aWFuQmx1cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCBiOWU2NjkxLi41N2UyNzgyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9D
TWFrZUxpc3RzLnR4dApAQCAtMjY4LDMgKzI2OCw4IEBAIHNldF90YXJnZXRfcHJvcGVydGllcyhX
VEYgUFJPUEVSVElFUyBGT0xERVIgIkphdmFTY3JpcHRDb3JlIikKIGlmIChXVEZfT1VUUFVUX05B
TUUpCiAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFdURiBQUk9QRVJUSUVTIE9VVFBVVF9OQU1F
ICR7V1RGX09VVFBVVF9OQU1FfSkKIGVuZGlmICgpCisKK2lmIChERUZJTkVEIEVOQUJMRV9QUkVD
T01QSUxFRF9IRUFERVJTKQorICAgIHNldF90YXJnZXRfcHJvcGVydGllcyhXVEYgUFJPUEVSVElF
UyBDT1RJUkVfUFJFRklYX0hFQURFUl9JR05PUkVfUEFUSCAiJHtXVEZfRElSfSIpCisgICAgY290
aXJlKFdURikKK2VuZGlmICgpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCA4MDIwOWJiLi5mOTVlZjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
MzUyMiw2ICszNTIyLDE1IEBAIGlmIChXZWJDb3JlX09VVFBVVF9OQU1FKQogICAgIHNldF90YXJn
ZXRfcHJvcGVydGllcyhXZWJDb3JlIFBST1BFUlRJRVMgT1VUUFVUX05BTUUgJHtXZWJDb3JlX09V
VFBVVF9OQU1FfSkKIGVuZGlmICgpCiAKKyMKKyMgY29tbWVudGVkIG91dCBiZWNhdXNlIGl0cyBi
cm9rZW4sIGRvbid0IGJ1aWxkcyBhcyBpcy4KKyMgbWF5YmUgdGhlIENPVElSRV9QUkVGSVhfSEVB
REVSX0lHTk9SRV9QQVRIIGFuZCBDT1RJUkVfUFJFRklYX0hFQURFUl9JTkNMVURFX1BBVEggbmVl
ZCBiZXR0ZXIgdHVubmluZy4KKyMKKyNpZiAoREVGSU5FRCBFTkFCTEVfUFJFQ09NUElMRURfSEVB
REVSUykKKyMgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFdlYkNvcmUgUFJPUEVSVElFUyBDT1RJ
UkVfUFJFRklYX0hFQURFUl9JR05PUkVfUEFUSCAiJHtXRUJDT1JFX0RJUn07JHtERVJJVkVEX1NP
VVJDRVNfV0VCQ09SRV9ESVJ9IikKKyMgICBjb3RpcmUoV2ViQ29yZSkKKyNlbmRpZiAoKQorCiBp
ZiAoU0hBUkVEX0NPUkUpCiAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFdlYkNvcmUgUFJPUEVS
VElFUyBWRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OfSBTT1ZFUlNJT04gJHtQUk9KRUNUX1ZFUlNJ
T05fTUFKT1J9KQogICAgIGluc3RhbGwoVEFSR0VUUyBXZWJDb3JlIERFU1RJTkFUSU9OICIke0xJ
Ql9JTlNUQUxMX0RJUn0iKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDIwNGJjOTguLjFiOWFlMDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0xMi0wOSAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVy
ZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2VdIEVuYWJsZSBwcmUtY29t
cGlsZWQgaGVhZGVycyAoUENIKSAoY290aXJlKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgKFdJUCkgLSBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQgY290aXJlIHJ1bGVzIGNvbW1lbnRlZCBvdXQsIGl0
IGRvbid0IGJ1aWxkcworICAgICAgICBhcyBpcy4gTmVlZHMgbW9yZSB0dW5uaW5nLgorCiAyMDE0
LTEyLTA5ICBBbGJlcnRvIEdhcmNpYSAgPGJlcnRvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW01l
ZGlhXVtHVEtdW0VGTF0gUmVkdWNlIHN0eWxlIHVwZGF0ZXMgKHBhaW50aW5nKSBpbiBjb250cm9s
cwpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL2NvdGlyZS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9j
b3RpcmUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDg1NWMxZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFrZS9jb3RpcmUuY21ha2UKQEAgLTAsMCArMSwz
NTUxIEBACisjIC0gY290aXJlIChjb21waWxlIHRpbWUgcmVkdWNlcikKKyMKKyMgU2VlIHRoZSBj
b3RpcmUgbWFudWFsIGZvciB1c2FnZSBoaW50cy4KKyMKKyM9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
IyBDb3B5cmlnaHQgMjAxMi0yMDE0IFNhc2NoYSBLcmF0a3kKKyMKKyMgUGVybWlzc2lvbiBpcyBo
ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KKyMgb2J0YWluaW5n
IGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KKyMg
ZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dAor
IyByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRv
IHVzZSwKKyMgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGlj
ZW5zZSwgYW5kL29yIHNlbGwKKyMgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1p
dCBwZXJzb25zIHRvIHdob20gdGhlCisjIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywg
c3ViamVjdCB0byB0aGUgZm9sbG93aW5nCisjIGNvbmRpdGlvbnM6CisjCisjIFRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCisjIGlu
Y2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3
YXJlLgorIworIyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS
QU5UWSBPRiBBTlkgS0lORCwKKyMgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P
VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTCisjIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECisjIE5PTklORlJJTkdFTUVOVC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUCisjIEhPTERFUlMgQkUgTElBQkxF
IEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLAorIyBXSEVUSEVSIElO
IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyMgRlJP
TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP
UgorIyBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisjPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKworaWYoX19DT1RJUkVfSU5DTFVERUQpCisJcmV0dXJuKCkKK2VuZGlmKCkKK3NldChfX0NP
VElSRV9JTkNMVURFRCBUUlVFKQorCisjIGNhbGwgY21ha2VfbWluaW11bV9yZXF1aXJlZCwgYnV0
IHByZXZlbnQgbW9kaWZpY2F0aW9uIG9mIHRoZSBDTWFrZSBwb2xpY3kgc3RhY2sgaW4gaW5jbHVk
ZSBtb2RlCisjIGNtYWtlX21pbmltdW1fcmVxdWlyZWQgYWxzbyBzZXRzIHRoZSBwb2xpY3kgdmVy
c2lvbiBhcyBhIHNpZGUgZWZmZWN0LCB3aGljaCB3ZSBoYXZlIHRvIGF2b2lkCitpZiAoTk9UIENN
QUtFX1NDUklQVF9NT0RFX0ZJTEUpCisJY21ha2VfcG9saWN5KFBVU0gpCitlbmRpZigpCisjIHdl
IG5lZWQgdGhlIENNYWtlIHZhcmlhYmxlcyBDTUFLRV9TQ1JJUFRfTU9ERV9GSUxFIGFuZCBDTUFL
RV9BUkdWIGF2YWlsYWJsZSBzaW5jZSAyLjguNQorIyB3ZSBuZWVkIEFQUEVORF9TVFJJTkcgb3B0
aW9uIGZvciBzZXRfcHJvcGVydHkgYXZhaWxhYmxlIHNpbmNlIDIuOC42CitjbWFrZV9taW5pbXVt
X3JlcXVpcmVkKFZFUlNJT04gMi44LjYpCitpZiAoTk9UIENNQUtFX1NDUklQVF9NT0RFX0ZJTEUp
CisJY21ha2VfcG9saWN5KFBPUCkKK2VuZGlmKCkKKworc2V0IChDT1RJUkVfQ01BS0VfTU9EVUxF
X0ZJTEUgIiR7Q01BS0VfQ1VSUkVOVF9MSVNUX0ZJTEV9IikKK3NldCAoQ09USVJFX0NNQUtFX01P
RFVMRV9WRVJTSU9OICIxLjYuNiIpCisKK2luY2x1ZGUoQ01ha2VQYXJzZUFyZ3VtZW50cykKK2lu
Y2x1ZGUoUHJvY2Vzc29yQ291bnQpCisKK2Z1bmN0aW9uIChjb3RpcmVfZGV0ZXJtaW5lX2NvbXBp
bGVyX3ZlcnNpb24gX2xhbmd1YWdlIF92ZXJzaW9uUHJlZml4KQorCWlmIChOT1QgJHtfdmVyc2lv
blByZWZpeH1fVkVSU0lPTikKKwkJIyB1c2UgQ01ha2UncyBwcmVkZWZpbmVkIGNvbXBpbGVyIHZl
cnNpb24gdmFyaWFibGUgKGF2YWlsYWJsZSBzaW5jZSBDTWFrZSAyLjguOCkKKwkJaWYgKERFRklO
RUQgQ01BS0VfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVSX1ZFUlNJT04pCisJCQlzZXQgKCR7X3ZlcnNp
b25QcmVmaXh9X1ZFUlNJT04gIiR7Q01BS0VfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVSX1ZFUlNJT059
IikKKwkJZWxzZWlmIChXSU4zMikKKwkJCSMgY2wuZXhlIG1lc3NlcyB3aXRoIHRoZSBvdXRwdXQg
c3RyZWFtcyB1bmxlc3MgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIFZTX1VOSUNPREVfT1VUUFVU
IGlzIGNsZWFyZWQKKwkJCXVuc2V0IChFTlZ7VlNfVU5JQ09ERV9PVVRQVVR9KQorCQkJc3RyaW5n
IChTVFJJUCAiJHtDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfQVJHMX0iIF9jb21waWxlckFy
ZzEpCisJCQlleGVjdXRlX3Byb2Nlc3MgKAorCQkJCUNPTU1BTkQgJHtDTUFLRV8ke19sYW5ndWFn
ZX1fQ09NUElMRVJ9ICR7X2NvbXBpbGVyQXJnMX0KKwkJCQlFUlJPUl9WQVJJQUJMRSBfdmVyc2lv
bkxpbmUgT1VUUFVUX1FVSUVUIFRJTUVPVVQgMTApCisJCQlzdHJpbmcgKFJFR0VYIFJFUExBQ0Ug
Ii4qVmVyc2lvbiAqKFswLTldKyhcXC5bMC05XSspKikuKiIgIlxcMSIgJHtfdmVyc2lvblByZWZp
eH1fVkVSU0lPTiAiJHtfdmVyc2lvbkxpbmV9IikKKwkJZWxzZSgpCisJCQkjIGFzc3VtZSBHQ0Mg
bGlrZSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlCisJCQlzdHJpbmcgKFNUUklQICIke0NNQUtFXyR7
X2xhbmd1YWdlfV9DT01QSUxFUl9BUkcxfSIgX2NvbXBpbGVyQXJnMSkKKwkJCWV4ZWN1dGVfcHJv
Y2VzcyAoCisJCQkJQ09NTUFORCAke0NNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUn0gJHtfY29t
cGlsZXJBcmcxfSAiLWR1bXB2ZXJzaW9uIgorCQkJCU9VVFBVVF9WQVJJQUJMRSAke192ZXJzaW9u
UHJlZml4fV9WRVJTSU9OCisJCQkJUkVTVUxUX1ZBUklBQkxFIF9yZXN1bHQKKwkJCQlPVVRQVVRf
U1RSSVBfVFJBSUxJTkdfV0hJVEVTUEFDRSBUSU1FT1VUIDEwKQorCQkJaWYgKF9yZXN1bHQpCisJ
CQkJc2V0ICgke192ZXJzaW9uUHJlZml4fV9WRVJTSU9OICIiKQorCQkJZW5kaWYoKQorCQllbmRp
ZigpCisJCWlmICgke192ZXJzaW9uUHJlZml4fV9WRVJTSU9OKQorCQkJc2V0ICgke192ZXJzaW9u
UHJlZml4fV9WRVJTSU9OICIkeyR7X3ZlcnNpb25QcmVmaXh9X1ZFUlNJT059IiBDQUNIRSBJTlRF
Uk5BTCAiJHtfbGFuZ3VhZ2V9IGNvbXBpbGVyIHZlcnNpb24iKQorCQllbmRpZigpCisJCXNldCAo
JHtfdmVyc2lvblByZWZpeH1fVkVSU0lPTiAiJHske192ZXJzaW9uUHJlZml4fV9WRVJTSU9OfSIg
UEFSRU5UX1NDT1BFKQorCQlpZiAoQ09USVJFX0RFQlVHKQorCQkJbWVzc2FnZSAoU1RBVFVTICIk
e0NNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUn0gdmVyc2lvbiAkeyR7X3ZlcnNpb25QcmVmaXh9
X1ZFUlNJT059IikKKwkJZW5kaWYoKQorCWVuZGlmKCkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rp
b24gKGNvdGlyZV9nZXRfc291cmNlX2ZpbGVfZXh0ZW5zaW9uIF9zb3VyY2VGaWxlIF9leHRWYXIp
CisJIyBnZXRfZmlsZW5hbWVfY29tcG9uZW50IHJldHVybnMgZXh0ZW5zaW9uIGZyb20gZmlyc3Qg
b2NjdXJyZW5jZSBvZiAuIGluIGZpbGUgbmFtZQorCSMgdGhpcyBmdW5jdGlvbiBjb21wdXRlcyB0
aGUgZXh0ZW5zaW9uIGZyb20gbGFzdCBvY2N1cnJlbmNlIG9mIC4gaW4gZmlsZSBuYW1lCisJc3Ry
aW5nIChGSU5EICIke19zb3VyY2VGaWxlfSIgIi4iIF9pbmRleCBSRVZFUlNFKQorCWlmIChfaW5k
ZXggR1JFQVRFUiAtMSkKKwkJbWF0aCAoRVhQUiBfaW5kZXggIiR7X2luZGV4fSArIDEiKQorCQlz
dHJpbmcgKFNVQlNUUklORyAiJHtfc291cmNlRmlsZX0iICR7X2luZGV4fSAtMSBfc291cmNlRXh0
KQorCWVsc2UoKQorCQlzZXQgKF9zb3VyY2VFeHQgIiIpCisJZW5kaWYoKQorCXNldCAoJHtfZXh0
VmFyfSAiJHtfc291cmNlRXh0fSIgUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCittYWNy
byAoY290aXJlX2NoZWNrX2lzX3BhdGhfcmVsYXRpdmVfdG8gX3BhdGggX2lzUmVsYXRpdmVWYXIp
CisJc2V0ICgke19pc1JlbGF0aXZlVmFyfSBGQUxTRSkKKwlpZiAoSVNfQUJTT0xVVEUgIiR7X3Bh
dGh9IikKKwkJZm9yZWFjaCAoX2RpciAke0FSR059KQorCQkJZmlsZSAoUkVMQVRJVkVfUEFUSCBf
cmVsUGF0aCAiJHtfZGlyfSIgIiR7X3BhdGh9IikKKwkJCWlmIChOT1QgX3JlbFBhdGggT1IgKE5P
VCBJU19BQlNPTFVURSAiJHtfcmVsUGF0aH0iIEFORCBOT1QgIiR7X3JlbFBhdGh9IiBNQVRDSEVT
ICJeXFwuXFwuIikpCisJCQkJc2V0ICgke19pc1JlbGF0aXZlVmFyfSBUUlVFKQorCQkJCWJyZWFr
KCkKKwkJCWVuZGlmKCkKKwkJZW5kZm9yZWFjaCgpCisJZW5kaWYoKQorZW5kbWFjcm8oKQorCitm
dW5jdGlvbiAoY290aXJlX2ZpbHRlcl9sYW5ndWFnZV9zb3VyY2VfZmlsZXMgX2xhbmd1YWdlIF9z
b3VyY2VGaWxlc1ZhciBfZXhjbHVkZWRTb3VyY2VGaWxlc1ZhciBfY290aXJlZFNvdXJjZUZpbGVz
VmFyKQorCXNldCAoX3NvdXJjZUZpbGVzICIiKQorCXNldCAoX2V4Y2x1ZGVkU291cmNlRmlsZXMg
IiIpCisJc2V0IChfY290aXJlZFNvdXJjZUZpbGVzICIiKQorCWlmIChDTUFLRV8ke19sYW5ndWFn
ZX1fU09VUkNFX0ZJTEVfRVhURU5TSU9OUykKKwkJc2V0IChfbGFuZ3VhZ2VFeHRlbnNpb25zICIk
e0NNQUtFXyR7X2xhbmd1YWdlfV9TT1VSQ0VfRklMRV9FWFRFTlNJT05TfSIpCisJZWxzZSgpCisJ
CXNldCAoX2xhbmd1YWdlRXh0ZW5zaW9ucyAiIikKKwllbmRpZigpCisJaWYgKENNQUtFXyR7X2xh
bmd1YWdlfV9JR05PUkVfRVhURU5TSU9OUykKKwkJc2V0IChfaWdub3JlRXh0ZW5zaW9ucyAiJHtD
TUFLRV8ke19sYW5ndWFnZX1fSUdOT1JFX0VYVEVOU0lPTlN9IikKKwllbHNlKCkKKwkJc2V0IChf
aWdub3JlRXh0ZW5zaW9ucyAiIikKKwllbmRpZigpCisJaWYgKENPVElSRV9VTklUWV9TT1VSQ0Vf
RVhDTFVERV9FWFRFTlNJT05TKQorCQlzZXQgKF9leGNsdWRlRXh0ZW5zaW9ucyAiJHtDT1RJUkVf
VU5JVFlfU09VUkNFX0VYQ0xVREVfRVhURU5TSU9OU30iKQorCWVsc2UoKQorCQlzZXQgKF9leGNs
dWRlRXh0ZW5zaW9ucyAiIikKKwllbmRpZigpCisJaWYgKENPVElSRV9ERUJVRykKKwkJbWVzc2Fn
ZSAoU1RBVFVTICIke19sYW5ndWFnZX0gc291cmNlIGZpbGUgZXh0ZW5zaW9uczogJHtfbGFuZ3Vh
Z2VFeHRlbnNpb25zfSIpCisJCW1lc3NhZ2UgKFNUQVRVUyAiJHtfbGFuZ3VhZ2V9IGlnbm9yZSBl
eHRlbnNpb25zOiAke19pZ25vcmVFeHRlbnNpb25zfSIpCisJCW1lc3NhZ2UgKFNUQVRVUyAiJHtf
bGFuZ3VhZ2V9IGV4Y2x1ZGUgZXh0ZW5zaW9uczogJHtfZXhjbHVkZUV4dGVuc2lvbnN9IikKKwll
bmRpZigpCisJZm9yZWFjaCAoX3NvdXJjZUZpbGUgJHtBUkdOfSkKKwkJZ2V0X3NvdXJjZV9maWxl
X3Byb3BlcnR5KF9zb3VyY2VJc0hlYWRlck9ubHkgIiR7X3NvdXJjZUZpbGV9IiBIRUFERVJfRklM
RV9PTkxZKQorCQlnZXRfc291cmNlX2ZpbGVfcHJvcGVydHkoX3NvdXJjZUlzRXh0ZXJuYWwgIiR7
X3NvdXJjZUZpbGV9IiBFWFRFUk5BTF9PQkpFQ1QpCisJCWdldF9zb3VyY2VfZmlsZV9wcm9wZXJ0
eShfc291cmNlSXNTeW1ib2xpYyAiJHtfc291cmNlRmlsZX0iIFNZTUJPTElDKQorCQlnZXRfc291
cmNlX2ZpbGVfcHJvcGVydHkoX3NvdXJjZUxhbmd1YWdlICIke19zb3VyY2VGaWxlfSIgTEFOR1VB
R0UpCisJCXNldCAoX3NvdXJjZUlzRmlsdGVyZWQgRkFMU0UpCisJCWlmIChOT1QgX3NvdXJjZUlz
SGVhZGVyT25seSBBTkQgTk9UIF9zb3VyY2VJc0V4dGVybmFsIEFORCBOT1QgX3NvdXJjZUlzU3lt
Ym9saWMpCisJCQljb3RpcmVfZ2V0X3NvdXJjZV9maWxlX2V4dGVuc2lvbigiJHtfc291cmNlRmls
ZX0iIF9zb3VyY2VFeHQpCisJCQlpZiAoX3NvdXJjZUV4dCkKKwkJCQlsaXN0IChGSU5EIF9pZ25v
cmVFeHRlbnNpb25zICIke19zb3VyY2VFeHR9IiBfaWdub3JlSW5kZXgpCisJCQkJaWYgKF9pZ25v
cmVJbmRleCBMRVNTIDApCisJCQkJCWxpc3QgKEZJTkQgX2V4Y2x1ZGVFeHRlbnNpb25zICIke19z
b3VyY2VFeHR9IiBfZXhjbHVkZUluZGV4KQorCQkJCQlpZiAoX2V4Y2x1ZGVJbmRleCBHUkVBVEVS
IC0xKQorCQkJCQkJbGlzdCAoQVBQRU5EIF9leGNsdWRlZFNvdXJjZUZpbGVzICIke19zb3VyY2VG
aWxlfSIpCisJCQkJCWVsc2UoKQorCQkJCQkJbGlzdCAoRklORCBfbGFuZ3VhZ2VFeHRlbnNpb25z
ICIke19zb3VyY2VFeHR9IiBfc291cmNlSW5kZXgpCisJCQkJCQlpZiAoX3NvdXJjZUluZGV4IEdS
RUFURVIgLTEpCisJCQkJCQkJc2V0IChfc291cmNlSXNGaWx0ZXJlZCBUUlVFKQorCQkJCQkJZWxz
ZWlmICgiJHtfc291cmNlTGFuZ3VhZ2V9IiBTVFJFUVVBTCAiJHtfbGFuZ3VhZ2V9IikKKwkJCQkJ
CQkjIGFkZCB0byBleGNsdWRlZCBzb3VyY2VzLCBpZiBmaWxlIGlzIG5vdCBpZ25vcmVkIGFuZCBo
YXMgY29ycmVjdCBsYW5ndWFnZSB3aXRob3V0IGhhdmluZyB0aGUgY29ycmVjdCBleHRlbnNpb24K
KwkJCQkJCQlsaXN0IChBUFBFTkQgX2V4Y2x1ZGVkU291cmNlRmlsZXMgIiR7X3NvdXJjZUZpbGV9
IikKKwkJCQkJCWVuZGlmKCkKKwkJCQkJZW5kaWYoKQorCQkJCWVuZGlmKCkKKwkJCWVuZGlmKCkK
KwkJZW5kaWYoKQorCQlpZiAoQ09USVJFX0RFQlVHKQorCQkJbWVzc2FnZSAoU1RBVFVTICIke19z
b3VyY2VGaWxlfSBmaWx0ZXJlZD0ke19zb3VyY2VJc0ZpbHRlcmVkfSBsYW5ndWFnZT0ke19zb3Vy
Y2VMYW5ndWFnZX0gaGVhZGVyPSR7X3NvdXJjZUlzSGVhZGVyT25seX0iKQorCQllbmRpZigpCisJ
CWlmIChfc291cmNlSXNGaWx0ZXJlZCkKKwkJCWdldF9zb3VyY2VfZmlsZV9wcm9wZXJ0eShfc291
cmNlSXNFeGNsdWRlZCAiJHtfc291cmNlRmlsZX0iIENPVElSRV9FWENMVURFRCkKKwkJCWdldF9z
b3VyY2VfZmlsZV9wcm9wZXJ0eShfc291cmNlSXNDb3RpcmVkICIke19zb3VyY2VGaWxlfSIgQ09U
SVJFX1RBUkdFVCkKKwkJCWdldF9zb3VyY2VfZmlsZV9wcm9wZXJ0eShfc291cmNlQ29tcGlsZUZs
YWdzICIke19zb3VyY2VGaWxlfSIgQ09NUElMRV9GTEFHUykKKwkJCWlmIChDT1RJUkVfREVCVUcp
CisJCQkJbWVzc2FnZSAoU1RBVFVTICIke19zb3VyY2VGaWxlfSBleGNsdWRlZD0ke19zb3VyY2VJ
c0V4Y2x1ZGVkfSBjb3RpcmVkPSR7X3NvdXJjZUlzQ290aXJlZH0gY29tcGlsZUZsYWdzPSR7X3Nv
dXJjZUNvbXBpbGVGbGFnc30iKQorCQkJZW5kaWYoKQorCQkJaWYgKF9zb3VyY2VJc0NvdGlyZWQp
CisJCQkJbGlzdCAoQVBQRU5EIF9jb3RpcmVkU291cmNlRmlsZXMgIiR7X3NvdXJjZUZpbGV9IikK
KwkJCWVsc2VpZiAoX3NvdXJjZUlzRXhjbHVkZWQgT1IgX3NvdXJjZUNvbXBpbGVGbGFncykKKwkJ
CQlsaXN0IChBUFBFTkQgX2V4Y2x1ZGVkU291cmNlRmlsZXMgIiR7X3NvdXJjZUZpbGV9IikKKwkJ
CWVsc2UoKQorCQkJCWxpc3QgKEFQUEVORCBfc291cmNlRmlsZXMgIiR7X3NvdXJjZUZpbGV9IikK
KwkJCWVuZGlmKCkKKwkJZW5kaWYoKQorCWVuZGZvcmVhY2goKQorCWlmIChDT1RJUkVfREVCVUcp
CisJCW1lc3NhZ2UgKFNUQVRVUyAiQWxsOiAke0FSR059IikKKwkJbWVzc2FnZSAoU1RBVFVTICIk
e19sYW5ndWFnZX06ICR7X3NvdXJjZUZpbGVzfSIpCisJCW1lc3NhZ2UgKFNUQVRVUyAiRXhjbHVk
ZWQ6ICR7X2V4Y2x1ZGVkU291cmNlRmlsZXN9IikKKwkJbWVzc2FnZSAoU1RBVFVTICJDb3RpcmVk
OiAke19jb3RpcmVkU291cmNlRmlsZXN9IikKKwllbmRpZigpCisJc2V0ICgke19zb3VyY2VGaWxl
c1Zhcn0gJHtfc291cmNlRmlsZXN9IFBBUkVOVF9TQ09QRSkKKwlzZXQgKCR7X2V4Y2x1ZGVkU291
cmNlRmlsZXNWYXJ9ICR7X2V4Y2x1ZGVkU291cmNlRmlsZXN9IFBBUkVOVF9TQ09QRSkKKwlzZXQg
KCR7X2NvdGlyZWRTb3VyY2VGaWxlc1Zhcn0gJHtfY290aXJlZFNvdXJjZUZpbGVzfSBQQVJFTlRf
U0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfZ2V0X29iamVjdHNfd2l0
aF9wcm9wZXJ0eV9vbiBfZmlsdGVyZWRPYmplY3RzVmFyIF9wcm9wZXJ0eSBfdHlwZSkKKwlzZXQg
KF9maWx0ZXJlZE9iamVjdHMgIiIpCisJZm9yZWFjaCAoX29iamVjdCAke0FSR059KQorCQlnZXRf
cHJvcGVydHkoX2lzU2V0ICR7X3R5cGV9ICIke19vYmplY3R9IiBQUk9QRVJUWSAke19wcm9wZXJ0
eX0gU0VUKQorCQlpZiAoX2lzU2V0KQorCQkJZ2V0X3Byb3BlcnR5KF9wcm9wZXJ0eVZhbHVlICR7
X3R5cGV9ICIke19vYmplY3R9IiBQUk9QRVJUWSAke19wcm9wZXJ0eX0pCisJCQlpZiAoX3Byb3Bl
cnR5VmFsdWUpCisJCQkJbGlzdCAoQVBQRU5EIF9maWx0ZXJlZE9iamVjdHMgIiR7X29iamVjdH0i
KQorCQkJZW5kaWYoKQorCQllbmRpZigpCisJZW5kZm9yZWFjaCgpCisJc2V0ICgke19maWx0ZXJl
ZE9iamVjdHNWYXJ9ICR7X2ZpbHRlcmVkT2JqZWN0c30gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rp
b24oKQorCitmdW5jdGlvbiAoY290aXJlX2dldF9vYmplY3RzX3dpdGhfcHJvcGVydHlfb2ZmIF9m
aWx0ZXJlZE9iamVjdHNWYXIgX3Byb3BlcnR5IF90eXBlKQorCXNldCAoX2ZpbHRlcmVkT2JqZWN0
cyAiIikKKwlmb3JlYWNoIChfb2JqZWN0ICR7QVJHTn0pCisJCWdldF9wcm9wZXJ0eShfaXNTZXQg
JHtfdHlwZX0gIiR7X29iamVjdH0iIFBST1BFUlRZICR7X3Byb3BlcnR5fSBTRVQpCisJCWlmIChf
aXNTZXQpCisJCQlnZXRfcHJvcGVydHkoX3Byb3BlcnR5VmFsdWUgJHtfdHlwZX0gIiR7X29iamVj
dH0iIFBST1BFUlRZICR7X3Byb3BlcnR5fSkKKwkJCWlmIChOT1QgX3Byb3BlcnR5VmFsdWUpCisJ
CQkJbGlzdCAoQVBQRU5EIF9maWx0ZXJlZE9iamVjdHMgIiR7X29iamVjdH0iKQorCQkJZW5kaWYo
KQorCQllbmRpZigpCisJZW5kZm9yZWFjaCgpCisJc2V0ICgke19maWx0ZXJlZE9iamVjdHNWYXJ9
ICR7X2ZpbHRlcmVkT2JqZWN0c30gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5j
dGlvbiAoY290aXJlX2dldF9zb3VyY2VfZmlsZV9wcm9wZXJ0eV92YWx1ZXMgX3ZhbHVlc1ZhciBf
cHJvcGVydHkpCisJc2V0IChfdmFsdWVzICIiKQorCWZvcmVhY2ggKF9zb3VyY2VGaWxlICR7QVJH
Tn0pCisJCWdldF9zb3VyY2VfZmlsZV9wcm9wZXJ0eShfcHJvcGVydHlWYWx1ZSAiJHtfc291cmNl
RmlsZX0iICR7X3Byb3BlcnR5fSkKKwkJaWYgKF9wcm9wZXJ0eVZhbHVlKQorCQkJbGlzdCAoQVBQ
RU5EIF92YWx1ZXMgIiR7X3Byb3BlcnR5VmFsdWV9IikKKwkJZW5kaWYoKQorCWVuZGZvcmVhY2go
KQorCXNldCAoJHtfdmFsdWVzVmFyfSAke192YWx1ZXN9IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0
aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9yZXNvbHZlX2NvbmZpZ19wcm9wZXJpdGVzIF9jb25m
aWd1cmF0aW9ucyBfcHJvcGVydGllc1ZhcikKKwlzZXQgKF9wcm9wZXJ0aWVzICIiKQorCWZvcmVh
Y2ggKF9wcm9wZXJ0eSAke0FSR059KQorCQlpZiAoIiR7X3Byb3BlcnR5fSIgTUFUQ0hFUyAiPENP
TkZJRz4iKQorCQkJZm9yZWFjaCAoX2NvbmZpZyAke19jb25maWd1cmF0aW9uc30pCisJCQkJc3Ry
aW5nIChUT1VQUEVSICIke19jb25maWd9IiBfdXBwZXJDb25maWcpCisJCQkJc3RyaW5nIChSRVBM
QUNFICI8Q09ORklHPiIgIiR7X3VwcGVyQ29uZmlnfSIgX2NvbmZpZ1Byb3BlcnR5ICIke19wcm9w
ZXJ0eX0iKQorCQkJCWxpc3QgKEFQUEVORCBfcHJvcGVydGllcyAke19jb25maWdQcm9wZXJ0eX0p
CisJCQllbmRmb3JlYWNoKCkKKwkJZWxzZSgpCisJCQlsaXN0IChBUFBFTkQgX3Byb3BlcnRpZXMg
JHtfcHJvcGVydHl9KQorCQllbmRpZigpCisJZW5kZm9yZWFjaCgpCisJc2V0ICgke19wcm9wZXJ0
aWVzVmFyfSAke19wcm9wZXJ0aWVzfSBQQVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1
bmN0aW9uIChjb3RpcmVfY29weV9zZXRfcHJvcGVyaXRlcyBfY29uZmlndXJhdGlvbnMgX3R5cGUg
X3NvdXJjZSBfdGFyZ2V0KQorCWNvdGlyZV9yZXNvbHZlX2NvbmZpZ19wcm9wZXJpdGVzKCIke19j
b25maWd1cmF0aW9uc30iIF9wcm9wZXJ0aWVzICR7QVJHTn0pCisJZm9yZWFjaCAoX3Byb3BlcnR5
ICR7X3Byb3BlcnRpZXN9KQorCQlnZXRfcHJvcGVydHkoX2lzU2V0ICR7X3R5cGV9ICR7X3NvdXJj
ZX0gUFJPUEVSVFkgJHtfcHJvcGVydHl9IFNFVCkKKwkJaWYgKF9pc1NldCkKKwkJCWdldF9wcm9w
ZXJ0eShfcHJvcGVydHlWYWx1ZSAke190eXBlfSAke19zb3VyY2V9IFBST1BFUlRZICR7X3Byb3Bl
cnR5fSkKKwkJCXNldF9wcm9wZXJ0eSgke190eXBlfSAke190YXJnZXR9IFBST1BFUlRZICR7X3By
b3BlcnR5fSAiJHtfcHJvcGVydHlWYWx1ZX0iKQorCQllbmRpZigpCisJZW5kZm9yZWFjaCgpCitl
bmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfZ2V0X3RhcmdldF9saW5rX2xpYnJhcmll
c19mb3JfdXNhZ2VfcmVxdWlyZW1lbnRzIF90YXJnZXQgX3RhcmdldExpbmtMaWJyYXJpZXNWYXIp
CisJc2V0IChfdGFyZ2V0TGlua0xpYnJhcmllcyAiIikKKwlnZXRfdGFyZ2V0X3Byb3BlcnR5KF9s
aWJyYXJpZXNUb1Byb2Nlc3MgJHtfdGFyZ2V0fSBMSU5LX0xJQlJBUklFUykKKwl3aGlsZSAoX2xp
YnJhcmllc1RvUHJvY2VzcykKKwkJIyByZW1vdmUgZnJvbSBoZWFkCisJCWxpc3QgKEdFVCBfbGli
cmFyaWVzVG9Qcm9jZXNzIDAgX2xpYnJhcnkpCisJCWxpc3QgKFJFTU9WRV9BVCBfbGlicmFyaWVz
VG9Qcm9jZXNzIDApCisJCWxpc3QgKEZJTkQgX3RhcmdldExpbmtMaWJyYXJpZXMgJHtfbGlicmFy
eX0gX2luZGV4KQorCQlpZiAoX2luZGV4IExFU1MgMCkKKwkJCWxpc3QgKEFQUEVORCBfdGFyZ2V0
TGlua0xpYnJhcmllcyAke19saWJyYXJ5fSkKKwkJCSMgcHJvY2VzcyB0cmFuc2l0aXZlIGxpYnJh
cmllcworCQkJaWYgKFRBUkdFVCAke19saWJyYXJ5fSkKKwkJCQlnZXRfdGFyZ2V0X3Byb3BlcnR5
KF9saWJyYXJpZXMgJHtfbGlicmFyeX0gSU5URVJGQUNFX0xJTktfTElCUkFSSUVTKQorCQkJCWlm
IChfbGlicmFyaWVzKQorCQkJCQlsaXN0IChBUFBFTkQgX2xpYnJhcmllc1RvUHJvY2VzcyAke19s
aWJyYXJpZXN9KQorCQkJCWVuZGlmKCkKKwkJCWVuZGlmKCkKKwkJZW5kaWYoKQorCWVuZHdoaWxl
KCkKKwlzZXQgKCR7X3RhcmdldExpbmtMaWJyYXJpZXNWYXJ9ICR7X3RhcmdldExpbmtMaWJyYXJp
ZXN9IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9maWx0
ZXJfY29tcGlsZV9mbGFncyBfbGFuZ3VhZ2UgX2ZsYWdGaWx0ZXIgX21hdGNoZWRPcHRpb25zVmFy
IF91bm1hdGNoZWRPcHRpb25zVmFyKQorCWlmIChXSU4zMiBBTkQgQ01BS0VfJHtfbGFuZ3VhZ2V9
X0NPTVBJTEVSX0lEIE1BVENIRVMgIk1TVkN8SW50ZWwiKQorCQlzZXQgKF9mbGFnUHJlZml4ICJb
Ly1dIikKKwllbHNlKCkKKwkJc2V0IChfZmxhZ1ByZWZpeCAiLS0/IikKKwllbmRpZigpCisJc2V0
IChfb3B0aW9uRmxhZyAiIikKKwlzZXQgKF9tYXRjaGVkT3B0aW9ucyAiIikKKwlzZXQgKF91bm1h
dGNoZWRPcHRpb25zICIiKQorCWZvcmVhY2ggKF9jb21waWxlRmxhZyAke0FSR059KQorCQlpZiAo
X2NvbXBpbGVGbGFnKQorCQkJaWYgKF9vcHRpb25GbGFnIEFORCBOT1QgIiR7X2NvbXBpbGVGbGFn
fSIgTUFUQ0hFUyAiXiR7X2ZsYWdQcmVmaXh9IikKKwkJCQkjIG9wdGlvbiB3aXRoIHNlcGFyYXRl
IGFyZ3VtZW50CisJCQkJbGlzdCAoQVBQRU5EIF9tYXRjaGVkT3B0aW9ucyAiJHtfY29tcGlsZUZs
YWd9IikKKwkJCQlzZXQgKF9vcHRpb25GbGFnICIiKQorCQkJZWxzZWlmICgiJHtfY29tcGlsZUZs
YWd9IiBNQVRDSEVTICJeKCR7X2ZsYWdQcmVmaXh9KSgke19mbGFnRmlsdGVyfSkkIikKKwkJCQkj
IHJlbWVtYmVyIG9wdGlvbgorCQkJCXNldCAoX29wdGlvbkZsYWcgIiR7Q01BS0VfTUFUQ0hfMn0i
KQorCQkJZWxzZWlmICgiJHtfY29tcGlsZUZsYWd9IiBNQVRDSEVTICJeKCR7X2ZsYWdQcmVmaXh9
KSgke19mbGFnRmlsdGVyfSkoLispJCIpCisJCQkJIyBvcHRpb24gd2l0aCBqb2luZWQgYXJndW1l
bnQKKwkJCQlsaXN0IChBUFBFTkQgX21hdGNoZWRPcHRpb25zICIke0NNQUtFX01BVENIXzN9IikK
KwkJCQlzZXQgKF9vcHRpb25GbGFnICIiKQorCQkJZWxzZSgpCisJCQkJIyBmbHVzaCByZW1lbWJl
cmVkIG9wdGlvbgorCQkJCWlmIChfb3B0aW9uRmxhZykKKwkJCQkJbGlzdCAoQVBQRU5EIF9tYXRj
aGVkT3B0aW9ucyAiJHtfb3B0aW9uRmxhZ30iKQorCQkJCQlzZXQgKF9vcHRpb25GbGFnICIiKQor
CQkJCWVuZGlmKCkKKwkJCQkjIGFkZCB0byB1bmZpbHRlcmVkIG9wdGlvbnMKKwkJCQlsaXN0IChB
UFBFTkQgX3VubWF0Y2hlZE9wdGlvbnMgIiR7X2NvbXBpbGVGbGFnfSIpCisJCQllbmRpZigpCisJ
CWVuZGlmKCkKKwllbmRmb3JlYWNoKCkKKwlpZiAoX29wdGlvbkZsYWcpCisJCWxpc3QgKEFQUEVO
RCBfbWF0Y2hlZE9wdGlvbnMgIiR7X29wdGlvbkZsYWd9IikKKwllbmRpZigpCisJaWYgKENPVElS
RV9ERUJVRykKKwkJbWVzc2FnZSAoU1RBVFVTICJGaWx0ZXIgJHtfZmxhZ0ZpbHRlcn0iKQorCQlp
ZiAoX21hdGNoZWRPcHRpb25zKQorCQkJbWVzc2FnZSAoU1RBVFVTICJNYXRjaGVkICR7X21hdGNo
ZWRPcHRpb25zfSIpCisJCWVuZGlmKCkKKwkJaWYgKF91bm1hdGNoZWRPcHRpb25zKQorCQkJbWVz
c2FnZSAoU1RBVFVTICJVbm1hdGNoZWQgJHtfdW5tYXRjaGVkT3B0aW9uc30iKQorCQllbmRpZigp
CisJZW5kaWYoKQorCXNldCAoJHtfbWF0Y2hlZE9wdGlvbnNWYXJ9ICR7X21hdGNoZWRPcHRpb25z
fSBQQVJFTlRfU0NPUEUpCisJc2V0ICgke191bm1hdGNoZWRPcHRpb25zVmFyfSAke191bm1hdGNo
ZWRPcHRpb25zfSBQQVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3Rp
cmVfZ2V0X3RhcmdldF9jb21waWxlX2ZsYWdzIF9jb25maWcgX2xhbmd1YWdlIF9kaXJlY3Rvcnkg
X3RhcmdldCBfZmxhZ3NWYXIpCisJc3RyaW5nIChUT1VQUEVSICIke19jb25maWd9IiBfdXBwZXJD
b25maWcpCisJIyBjb2xsZWN0IG9wdGlvbnMgZnJvbSBDTWFrZSBsYW5ndWFnZSB2YXJpYWJsZXMK
KwlzZXQgKF9jb21waWxlRmxhZ3MgIiIpCisJaWYgKENNQUtFXyR7X2xhbmd1YWdlfV9GTEFHUykK
KwkJc2V0IChfY29tcGlsZUZsYWdzICIke19jb21waWxlRmxhZ3N9ICR7Q01BS0VfJHtfbGFuZ3Vh
Z2V9X0ZMQUdTfSIpCisJZW5kaWYoKQorCWlmIChDTUFLRV8ke19sYW5ndWFnZX1fRkxBR1NfJHtf
dXBwZXJDb25maWd9KQorCQlzZXQgKF9jb21waWxlRmxhZ3MgIiR7X2NvbXBpbGVGbGFnc30gJHtD
TUFLRV8ke19sYW5ndWFnZX1fRkxBR1NfJHtfdXBwZXJDb25maWd9fSIpCisJZW5kaWYoKQorCWlm
IChfdGFyZ2V0KQorCQkjIGFkZCBvcHRpb24gZnJvbSBDTWFrZSB0YXJnZXQgdHlwZSB2YXJpYWJs
ZQorCQlnZXRfdGFyZ2V0X3Byb3BlcnR5KF90YXJnZXRUeXBlICR7X3RhcmdldH0gVFlQRSkKKwkJ
aWYgKFBPTElDWSBDTVAwMDE4KQorCQkJIyBoYW5kbGUgUE9TSVRJT05fSU5ERVBFTkRFTlRfQ09E
RSBwcm9wZXJ0eSBpbnRyb2R1Y2VkIHdpdGggQ01ha2UgMi44LjkgaWYgcG9saWN5IENNUDAwMTgg
aXMgdHVybmVkIG9uCisJCQljbWFrZV9wb2xpY3koR0VUIENNUDAwMTggX1BJQ19Qb2xpY3kpCisJ
CWVsc2UoKQorCQkJIyBkZWZhdWx0IHRvIG9sZCBiZWhhdmlvcgorCQkJc2V0IChfUElDX1BvbGlj
eSAiT0xEIikKKwkJZW5kaWYoKQorCQlpZiAoQ09USVJFX0RFQlVHKQorCQkJbWVzc2FnZShTVEFU
VVMgIkNNUDAwMTg9JHtfUElDX1BvbGljeX0iKQorCQllbmRpZigpCisJCWlmIChfUElDX1BvbGlj
eSBTVFJFUVVBTCAiTkVXIikKKwkJCSMgTkVXIGJlaGF2aW9yOiBob25vciB0aGUgUE9TSVRJT05f
SU5ERVBFTkRFTlRfQ09ERSB0YXJnZXQgcHJvcGVydHkKKwkJCWdldF90YXJnZXRfcHJvcGVydHko
X3RhcmdldFBJQyAke190YXJnZXR9IFBPU0lUSU9OX0lOREVQRU5ERU5UX0NPREUpCisJCQlpZiAo
X3RhcmdldFBJQykKKwkJCQlpZiAoX3RhcmdldFR5cGUgU1RSRVFVQUwgIkVYRUNVVEFCTEUiIEFO
RCBDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRV9PUFRJT05TX1BJRSkKKwkJCQkJc2V0IChfY29t
cGlsZUZsYWdzICIke19jb21waWxlRmxhZ3N9ICR7Q01BS0VfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVf
T1BUSU9OU19QSUV9IikKKwkJCQllbHNlaWYgKENNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFX09Q
VElPTlNfUElDKQorCQkJCQlzZXQgKF9jb21waWxlRmxhZ3MgIiR7X2NvbXBpbGVGbGFnc30gJHtD
TUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRV9PUFRJT05TX1BJQ30iKQorCQkJCWVuZGlmKCkKKwkJ
CWVuZGlmKCkKKwkJZWxzZSgpCisJCQkjIE9MRCBiZWhhdmlvciBvciBwb2xpY3kgbm90IHNldDog
dXNlIHRoZSB2YWx1ZSBvZiBDTUFLRV9TSEFSRURfTElCUkFSWV88TGFuZz5fRkxBR1MKKwkJCWlm
IChfdGFyZ2V0VHlwZSBTVFJFUVVBTCAiTU9EVUxFX0xJQlJBUlkiKQorCQkJCSMgZmxhZ3MgdmFy
aWFibGUgZm9yIG1vZHVsZSBsaWJyYXJ5IHVzZXMgZGlmZmVyZW50IG5hbWUgU0hBUkVEX01PRFVM
RQorCQkJCSMgKGUuZy4sIENNQUtFX1NIQVJFRF9NT0RVTEVfQ19GTEFHUykKKwkJCQlzZXQgKF90
YXJnZXRUeXBlIFNIQVJFRF9NT0RVTEUpCisJCQllbmRpZigpCisJCQlpZiAoQ01BS0VfJHtfdGFy
Z2V0VHlwZX1fJHtfbGFuZ3VhZ2V9X0ZMQUdTKQorCQkJCXNldCAoX2NvbXBpbGVGbGFncyAiJHtf
Y29tcGlsZUZsYWdzfSAke0NNQUtFXyR7X3RhcmdldFR5cGV9XyR7X2xhbmd1YWdlfV9GTEFHU30i
KQorCQkJZW5kaWYoKQorCQllbmRpZigpCisJZW5kaWYoKQorCWlmIChfZGlyZWN0b3J5KQorCQkj
IGFkZF9kZWZpbml0aW9ucyBtYXkgaGF2ZSBiZWVuIHVzZWQgdG8gYWRkIGZsYWdzIHRvIHRoZSBj
b21waWxlciBjb21tYW5kCisJCWdldF9kaXJlY3RvcnlfcHJvcGVydHkoX2RpckRlZmluaXRpb25z
IERJUkVDVE9SWSAiJHtfZGlyZWN0b3J5fSIgREVGSU5JVElPTlMpCisJCWlmIChfZGlyRGVmaW5p
dGlvbnMpCisJCQlzZXQgKF9jb21waWxlRmxhZ3MgIiR7X2NvbXBpbGVGbGFnc30gJHtfZGlyRGVm
aW5pdGlvbnN9IikKKwkJZW5kaWYoKQorCWVuZGlmKCkKKwlpZiAoX3RhcmdldCkKKwkJIyBhZGQg
dGFyZ2V0IGNvbXBpbGUgb3B0aW9ucworCQlnZXRfdGFyZ2V0X3Byb3BlcnR5KF90YXJnZXRmbGFn
cyAke190YXJnZXR9IENPTVBJTEVfRkxBR1MpCisJCWlmIChfdGFyZ2V0ZmxhZ3MpCisJCQlzZXQg
KF9jb21waWxlRmxhZ3MgIiR7X2NvbXBpbGVGbGFnc30gJHtfdGFyZ2V0ZmxhZ3N9IikKKwkJZW5k
aWYoKQorCQlnZXRfdGFyZ2V0X3Byb3BlcnR5KF90YXJnZXRPcHRpb25zICR7X3RhcmdldH0gQ09N
UElMRV9PUFRJT05TKQorCQlpZiAoX3RhcmdldE9wdGlvbnMpCisJCQlzZXQgKF9jb21waWxlRmxh
Z3MgIiR7X2NvbXBpbGVGbGFnc30gJHtfdGFyZ2V0T3B0aW9uc30iKQorCQllbmRpZigpCisJCSMg
aW50ZXJmYWNlIGNvbXBpbGUgb3B0aW9ucyBmcm9tIGxpbmtlZCBsaWJyYXJ5IHRhcmdldHMKKwkJ
Y290aXJlX2dldF90YXJnZXRfbGlua19saWJyYXJpZXNfZm9yX3VzYWdlX3JlcXVpcmVtZW50cygk
e190YXJnZXR9IF9saW5rTGlicmFyaWVzKQorCQlmb3JlYWNoIChfbGlicmFyeSAke19saW5rTGli
cmFyaWVzfSkKKwkJCWlmIChUQVJHRVQgJHtfbGlicmFyeX0pCisJCQkJZ2V0X3RhcmdldF9wcm9w
ZXJ0eShfdGFyZ2V0T3B0aW9ucyAke19saWJyYXJ5fSBJTlRFUkZBQ0VfQ09NUElMRV9PUFRJT05T
KQorCQkJCWlmIChfdGFyZ2V0T3B0aW9ucykKKwkJCQkJc2V0IChfY29tcGlsZUZsYWdzICIke19j
b21waWxlRmxhZ3N9ICR7X3RhcmdldE9wdGlvbnN9IikKKwkJCQllbmRpZigpCisJCQllbmRpZigp
CisJCWVuZGZvcmVhY2goKQorCWVuZGlmKCkKKwlpZiAoVU5JWCkKKwkJc2VwYXJhdGVfYXJndW1l
bnRzKF9jb21waWxlRmxhZ3MgVU5JWF9DT01NQU5EICIke19jb21waWxlRmxhZ3N9IikKKwllbHNl
aWYoV0lOMzIpCisJCXNlcGFyYXRlX2FyZ3VtZW50cyhfY29tcGlsZUZsYWdzIFdJTkRPV1NfQ09N
TUFORCAiJHtfY29tcGlsZUZsYWdzfSIpCisJZWxzZSgpCisJCXNlcGFyYXRlX2FyZ3VtZW50cyhf
Y29tcGlsZUZsYWdzKQorCWVuZGlmKCkKKwkjIHBsYXRmb3JtIHNwZWNpZmljIGZsYWdzCisJaWYg
KEFQUExFKQorCQlnZXRfdGFyZ2V0X3Byb3BlcnR5KF9hcmNoaXRlY3R1cmVzICR7X3RhcmdldH0g
T1NYX0FSQ0hJVEVDVFVSRVNfJHtfdXBwZXJDb25maWd9KQorCQlpZiAoTk9UIF9hcmNoaXRlY3R1
cmVzKQorCQkJZ2V0X3RhcmdldF9wcm9wZXJ0eShfYXJjaGl0ZWN0dXJlcyAke190YXJnZXR9IE9T
WF9BUkNISVRFQ1RVUkVTKQorCQllbmRpZigpCisJCWlmIChfYXJjaGl0ZWN0dXJlcykKKwkJCWZv
cmVhY2ggKF9hcmNoICR7X2FyY2hpdGVjdHVyZXN9KQorCQkJCWxpc3QgKEFQUEVORCBfY29tcGls
ZUZsYWdzICItYXJjaCIgIiR7X2FyY2h9IikKKwkJCWVuZGZvcmVhY2goKQorCQllbmRpZigpCisJ
CWlmIChDTUFLRV9PU1hfU1lTUk9PVCkKKwkJCWlmIChDTUFLRV8ke19sYW5ndWFnZX1fU1lTUk9P
VF9GTEFHKQorCQkJCWxpc3QgKEFQUEVORCBfY29tcGlsZUZsYWdzICIke0NNQUtFXyR7X2xhbmd1
YWdlfV9TWVNST09UX0ZMQUd9IiAiJHtDTUFLRV9PU1hfU1lTUk9PVH0iKQorCQkJZWxzZSgpCisJ
CQkJbGlzdCAoQVBQRU5EIF9jb21waWxlRmxhZ3MgIi1pc3lzcm9vdCIgIiR7Q01BS0VfT1NYX1NZ
U1JPT1R9IikKKwkJCWVuZGlmKCkKKwkJZW5kaWYoKQorCQlpZiAoQ01BS0VfT1NYX0RFUExPWU1F
TlRfVEFSR0VUKQorCQkJaWYgKENNQUtFXyR7X2xhbmd1YWdlfV9PU1hfREVQTE9ZTUVOVF9UQVJH
RVRfRkxBRykKKwkJCQlsaXN0IChBUFBFTkQgX2NvbXBpbGVGbGFncyAiJHtDTUFLRV8ke19sYW5n
dWFnZX1fT1NYX0RFUExPWU1FTlRfVEFSR0VUX0ZMQUd9JHtDTUFLRV9PU1hfREVQTE9ZTUVOVF9U
QVJHRVR9IikKKwkJCWVsc2UoKQorCQkJCWxpc3QgKEFQUEVORCBfY29tcGlsZUZsYWdzICItbW1h
Y29zeC12ZXJzaW9uLW1pbj0ke0NNQUtFX09TWF9ERVBMT1lNRU5UX1RBUkdFVH0iKQorCQkJZW5k
aWYoKQorCQllbmRpZigpCisJZW5kaWYoKQorCWlmIChDT1RJUkVfREVCVUcgQU5EIF9jb21waWxl
RmxhZ3MpCisJCW1lc3NhZ2UgKFNUQVRVUyAiVGFyZ2V0ICR7X3RhcmdldH0gY29tcGlsZSBmbGFn
cyAke19jb21waWxlRmxhZ3N9IikKKwllbmRpZigpCisJc2V0ICgke19mbGFnc1Zhcn0gJHtfY29t
cGlsZUZsYWdzfSBQQVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3Rp
cmVfZ2V0X3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzIF9jb25maWcgX2xhbmd1YWdlIF90YXJn
ZXRTb3VyY2VEaXIgX3RhcmdldEJpbmFyeURpciBfdGFyZ2V0IF9pbmNsdWRlRGlyc1ZhciBfc3lz
dGVtSW5jbHVkZURpcnNWYXIpCisJc2V0IChfaW5jbHVkZURpcnMgIiIpCisJc2V0IChfc3lzdGVt
SW5jbHVkZURpcnMgIiIpCisJIyBkZWZhdWx0IGluY2x1ZGUgZGlycworCWlmIChDTUFLRV9JTkNM
VURFX0NVUlJFTlRfRElSKQorCQlsaXN0IChBUFBFTkQgX2luY2x1ZGVEaXJzICIke190YXJnZXRC
aW5hcnlEaXJ9IikKKwkJbGlzdCAoQVBQRU5EIF9pbmNsdWRlRGlycyAiJHtfdGFyZ2V0U291cmNl
RGlyfSIpCisJZW5kaWYoKQorCSMgcGFyc2UgYWRkaXRpb25hbCBpbmNsdWRlIGRpcmVjdG9yaWVz
IGZyb20gdGFyZ2V0IGNvbXBpbGUgZmxhZ3MKKwlzZXQgKF90YXJnZXRGbGFncyAiIikKKwljb3Rp
cmVfZ2V0X3RhcmdldF9jb21waWxlX2ZsYWdzKCIke19jb25maWd9IiAiJHtfbGFuZ3VhZ2V9IiAi
JHtfdGFyZ2V0U291cmNlRGlyfSIgIiR7X3RhcmdldH0iIF90YXJnZXRGbGFncykKKwljb3RpcmVf
ZmlsdGVyX2NvbXBpbGVfZmxhZ3MoIiR7X2xhbmd1YWdlfSIgIkkiIF9kaXJzIF9pZ25vcmUgJHtf
dGFyZ2V0RmxhZ3N9KQorCWlmIChfZGlycykKKwkJbGlzdCAoQVBQRU5EIF9pbmNsdWRlRGlycyAk
e19kaXJzfSkKKwllbmRpZigpCisJIyB0YXJnZXQgaW5jbHVkZSBkaXJlY3RvcmllcworCWdldF9k
aXJlY3RvcnlfcHJvcGVydHkoX2RpcnMgRElSRUNUT1JZICIke190YXJnZXRTb3VyY2VEaXJ9IiBJ
TkNMVURFX0RJUkVDVE9SSUVTKQorCWlmIChfdGFyZ2V0KQorCQlnZXRfdGFyZ2V0X3Byb3BlcnR5
KF90YXJnZXREaXJzICR7X3RhcmdldH0gSU5DTFVERV9ESVJFQ1RPUklFUykKKwkJaWYgKF90YXJn
ZXREaXJzKQorCQkJbGlzdCAoQVBQRU5EIF9kaXJzICR7X3RhcmdldERpcnN9KQorCQllbmRpZigp
CisJCWdldF90YXJnZXRfcHJvcGVydHkoX3RhcmdldERpcnMgJHtfdGFyZ2V0fSBJTlRFUkZBQ0Vf
U1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVMpCisJCWlmIChfdGFyZ2V0RGlycykKKwkJCWxpc3Qg
KEFQUEVORCBfc3lzdGVtSW5jbHVkZURpcnMgJHtfdGFyZ2V0RGlyc30pCisJCWVuZGlmKCkKKwor
CQkjIGludGVyZmFjZSBpbmNsdWRlIGRpcmVjdG9yaWVzIGZyb20gbGlua2VkIGxpYnJhcnkgdGFy
Z2V0cworCQljb3RpcmVfZ2V0X3RhcmdldF9saW5rX2xpYnJhcmllc19mb3JfdXNhZ2VfcmVxdWly
ZW1lbnRzKCR7X3RhcmdldH0gX2xpbmtMaWJyYXJpZXMpCisJCWZvcmVhY2ggKF9saWJyYXJ5ICR7
X2xpbmtMaWJyYXJpZXN9KQorCQkJaWYgKFRBUkdFVCAke19saWJyYXJ5fSkKKwkJCQlnZXRfdGFy
Z2V0X3Byb3BlcnR5KF90YXJnZXREaXJzICR7X2xpYnJhcnl9IElOVEVSRkFDRV9JTkNMVURFX0RJ
UkVDVE9SSUVTKQorCQkJCWlmIChfdGFyZ2V0RGlycykKKwkJCQkJbGlzdCAoQVBQRU5EIF9kaXJz
ICR7X3RhcmdldERpcnN9KQorCQkJCWVuZGlmKCkKKwkJCQlnZXRfdGFyZ2V0X3Byb3BlcnR5KF90
YXJnZXREaXJzICR7X2xpYnJhcnl9IElOVEVSRkFDRV9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklF
UykKKwkJCQlpZiAoX3RhcmdldERpcnMpCisJCQkJCWxpc3QgKEFQUEVORCBfc3lzdGVtSW5jbHVk
ZURpcnMgJHtfdGFyZ2V0RGlyc30pCisJCQkJZW5kaWYoKQorCQkJZW5kaWYoKQorCQllbmRmb3Jl
YWNoKCkKKwllbmRpZigpCisJaWYgKGRpcnMpCisJCWxpc3QgKFJFTU9WRV9EVVBMSUNBVEVTIF9k
aXJzKQorCWVuZGlmKCkKKwlsaXN0IChMRU5HVEggX2luY2x1ZGVEaXJzIF9wcm9qZWN0SW5zZXJ0
SW5kZXgpCisJZm9yZWFjaCAoX2RpciAke19kaXJzfSkKKwkJaWYgKENNQUtFX0lOQ0xVREVfRElS
RUNUT1JJRVNfUFJPSkVDVF9CRUZPUkUpCisJCQljb3RpcmVfY2hlY2tfaXNfcGF0aF9yZWxhdGl2
ZV90bygiJHtfZGlyfSIgX2lzUmVsYXRpdmUgIiR7Q01BS0VfU09VUkNFX0RJUn0iICIke0NNQUtF
X0JJTkFSWV9ESVJ9IikKKwkJCWlmIChfaXNSZWxhdGl2ZSkKKwkJCQlsaXN0IChMRU5HVEggX2lu
Y2x1ZGVEaXJzIF9sZW4pCisJCQkJaWYgKF9sZW4gRVFVQUwgX3Byb2plY3RJbnNlcnRJbmRleCkK
KwkJCQkJbGlzdCAoQVBQRU5EIF9pbmNsdWRlRGlycyAiJHtfZGlyfSIpCisJCQkJZWxzZSgpCisJ
CQkJCWxpc3QgKElOU0VSVCBfaW5jbHVkZURpcnMgX3Byb2plY3RJbnNlcnRJbmRleCAiJHtfZGly
fSIpCisJCQkJZW5kaWYoKQorCQkJCW1hdGggKEVYUFIgX3Byb2plY3RJbnNlcnRJbmRleCAiJHtf
cHJvamVjdEluc2VydEluZGV4fSArIDEiKQorCQkJZWxzZSgpCisJCQkJbGlzdCAoQVBQRU5EIF9p
bmNsdWRlRGlycyAiJHtfZGlyfSIpCisJCQllbmRpZigpCisJCWVsc2UoKQorCQkJbGlzdCAoQVBQ
RU5EIF9pbmNsdWRlRGlycyAiJHtfZGlyfSIpCisJCWVuZGlmKCkKKwllbmRmb3JlYWNoKCkKKwls
aXN0IChSRU1PVkVfRFVQTElDQVRFUyBfaW5jbHVkZURpcnMpCisJbGlzdCAoUkVNT1ZFX0RVUExJ
Q0FURVMgX3N5c3RlbUluY2x1ZGVEaXJzKQorCWlmIChDTUFLRV8ke19sYW5ndWFnZX1fSU1QTElD
SVRfSU5DTFVERV9ESVJFQ1RPUklFUykKKwkJbGlzdCAoUkVNT1ZFX0lURU0gX2luY2x1ZGVEaXJz
ICR7Q01BS0VfJHtfbGFuZ3VhZ2V9X0lNUExJQ0lUX0lOQ0xVREVfRElSRUNUT1JJRVN9KQorCWVu
ZGlmKCkKKwlpZiAoQ09USVJFX0RFQlVHIEFORCBfaW5jbHVkZURpcnMpCisJCW1lc3NhZ2UgKFNU
QVRVUyAiVGFyZ2V0ICR7X3RhcmdldH0gaW5jbHVkZSBkaXJzICR7X2luY2x1ZGVEaXJzfSIpCisJ
ZW5kaWYoKQorCXNldCAoJHtfaW5jbHVkZURpcnNWYXJ9ICR7X2luY2x1ZGVEaXJzfSBQQVJFTlRf
U0NPUEUpCisJaWYgKENPVElSRV9ERUJVRyBBTkQgX3N5c3RlbUluY2x1ZGVEaXJzKQorCQltZXNz
YWdlIChTVEFUVVMgIlRhcmdldCAke190YXJnZXR9IHN5c3RlbSBpbmNsdWRlIGRpcnMgJHtfc3lz
dGVtSW5jbHVkZURpcnN9IikKKwllbmRpZigpCisJc2V0ICgke19zeXN0ZW1JbmNsdWRlRGlyc1Zh
cn0gJHtfc3lzdGVtSW5jbHVkZURpcnN9IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9uKCkKKwor
bWFjcm8gKGNvdGlyZV9tYWtlX0NfaWRlbnRpZmllciBfaWRlbnRpZmllclZhciBfc3RyKQorCWlm
IChDTUFLRV9WRVJTSU9OIFZFUlNJT05fTEVTUyAiMi44LjEyIikKKwkJIyBtaW1pYyBDTWFrZSBT
eXN0ZW1Ub29sczo6TWFrZUNpbmRlbnRpZmllciBiZWhhdmlvcgorCQlpZiAoIiR7X3N0cn0iIE1B
VENIRVMgIl5bMC05XS4rJCIpCisJCQlzZXQgKF9zdHIgIl8ke3N0cn0iKQorCQllbmRpZigpCisJ
CXN0cmluZyAoUkVHRVggUkVQTEFDRSAiW15hLXpBLVowLTldIiAiXyIgJHtfaWRlbnRpZmllclZh
cn0gIiR7X3N0cn0iKQorCWVsc2UoKQorCQlzdHJpbmcgKE1BS0VfQ19JREVOVElGSUVSICIke19z
dHJ9IiAiJHtfaWRlbnRpZmllclZhcn0iKQorCWVuZGlmKCkKK2VuZG1hY3JvKCkKKworZnVuY3Rp
b24gKGNvdGlyZV9nZXRfdGFyZ2V0X2V4cG9ydF9zeW1ib2wgX3RhcmdldCBfZXhwb3J0U3ltYm9s
VmFyKQorCXNldCAoX2V4cG9ydFN5bWJvbCAiIikKKwlnZXRfdGFyZ2V0X3Byb3BlcnR5KF90YXJn
ZXRUeXBlICR7X3RhcmdldH0gVFlQRSkKKwlnZXRfdGFyZ2V0X3Byb3BlcnR5KF9lbmFibGVFeHBv
cnRzICR7X3RhcmdldH0gRU5BQkxFX0VYUE9SVFMpCisJaWYgKF90YXJnZXRUeXBlIE1BVENIRVMg
IihTSEFSRUR8TU9EVUxFKV9MSUJSQVJZIiBPUgorCQkoX3RhcmdldFR5cGUgU1RSRVFVQUwgIkVY
RUNVVEFCTEUiIEFORCBfZW5hYmxlRXhwb3J0cykpCisJCWdldF90YXJnZXRfcHJvcGVydHkoX2V4
cG9ydFN5bWJvbCAke190YXJnZXR9IERFRklORV9TWU1CT0wpCisJCWlmIChOT1QgX2V4cG9ydFN5
bWJvbCkKKwkJCXNldCAoX2V4cG9ydFN5bWJvbCAiJHtfdGFyZ2V0fV9FWFBPUlRTIikKKwkJZW5k
aWYoKQorCQljb3RpcmVfbWFrZV9DX2lkZW50aWZpZXIoX2V4cG9ydFN5bWJvbCAiJHtfZXhwb3J0
U3ltYm9sfSIpCisJZW5kaWYoKQorCXNldCAoJHtfZXhwb3J0U3ltYm9sVmFyfSAke19leHBvcnRT
eW1ib2x9IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9n
ZXRfdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMgX2NvbmZpZyBfbGFuZ3VhZ2UgX2RpcmVjdG9y
eSBfdGFyZ2V0IF9kZWZpbml0aW9uc1ZhcikKKwlzdHJpbmcgKFRPVVBQRVIgIiR7X2NvbmZpZ30i
IF91cHBlckNvbmZpZykKKwlzZXQgKF9jb25maWdEZWZpbml0aW9ucyAiIikKKwkjIENNQUtFX0lO
VERJUiBmb3IgbXVsdGktY29uZmlndXJhdGlvbiBidWlsZCBzeXN0ZW1zCisJaWYgKE5PVCAiJHtD
TUFLRV9DRkdfSU5URElSfSIgU1RSRVFVQUwgIi4iKQorCQlsaXN0IChBUFBFTkQgX2NvbmZpZ0Rl
ZmluaXRpb25zICJDTUFLRV9JTlRESVI9XCIke19jb25maWd9XCIiKQorCWVuZGlmKCkKKwkjIHRh
cmdldCBleHBvcnQgZGVmaW5lIHN5bWJvbAorCWNvdGlyZV9nZXRfdGFyZ2V0X2V4cG9ydF9zeW1i
b2woIiR7X3RhcmdldH0iIF9kZWZpbmVTeW1ib2wpCisJaWYgKF9kZWZpbmVTeW1ib2wpCisJCWxp
c3QgKEFQUEVORCBfY29uZmlnRGVmaW5pdGlvbnMgIiR7X2RlZmluZVN5bWJvbH0iKQorCWVuZGlm
KCkKKwkjIGRpcmVjdG9yeSBjb21waWxlIGRlZmluaXRpb25zCisJZ2V0X2RpcmVjdG9yeV9wcm9w
ZXJ0eShfZGVmaW5pdGlvbnMgRElSRUNUT1JZICIke19kaXJlY3Rvcnl9IiBDT01QSUxFX0RFRklO
SVRJT05TKQorCWlmIChfZGVmaW5pdGlvbnMpCisJCWxpc3QgKEFQUEVORCBfY29uZmlnRGVmaW5p
dGlvbnMgJHtfZGVmaW5pdGlvbnN9KQorCWVuZGlmKCkKKwlnZXRfZGlyZWN0b3J5X3Byb3BlcnR5
KF9kZWZpbml0aW9ucyBESVJFQ1RPUlkgIiR7X2RpcmVjdG9yeX0iIENPTVBJTEVfREVGSU5JVElP
TlNfJHtfdXBwZXJDb25maWd9KQorCWlmIChfZGVmaW5pdGlvbnMpCisJCWxpc3QgKEFQUEVORCBf
Y29uZmlnRGVmaW5pdGlvbnMgJHtfZGVmaW5pdGlvbnN9KQorCWVuZGlmKCkKKwkjIHRhcmdldCBj
b21waWxlIGRlZmluaXRpb25zCisJZ2V0X3RhcmdldF9wcm9wZXJ0eShfZGVmaW5pdGlvbnMgJHtf
dGFyZ2V0fSBDT01QSUxFX0RFRklOSVRJT05TKQorCWlmIChfZGVmaW5pdGlvbnMpCisJCWxpc3Qg
KEFQUEVORCBfY29uZmlnRGVmaW5pdGlvbnMgJHtfZGVmaW5pdGlvbnN9KQorCWVuZGlmKCkKKwln
ZXRfdGFyZ2V0X3Byb3BlcnR5KF9kZWZpbml0aW9ucyAke190YXJnZXR9IENPTVBJTEVfREVGSU5J
VElPTlNfJHtfdXBwZXJDb25maWd9KQorCWlmIChfZGVmaW5pdGlvbnMpCisJCWxpc3QgKEFQUEVO
RCBfY29uZmlnRGVmaW5pdGlvbnMgJHtfZGVmaW5pdGlvbnN9KQorCWVuZGlmKCkKKwkjIGludGVy
ZmFjZSBjb21waWxlIGRlZmluaXRpb25zIGZyb20gbGlua2VkIGxpYnJhcnkgdGFyZ2V0cworCWNv
dGlyZV9nZXRfdGFyZ2V0X2xpbmtfbGlicmFyaWVzX2Zvcl91c2FnZV9yZXF1aXJlbWVudHMoJHtf
dGFyZ2V0fSBfbGlua0xpYnJhcmllcykKKwlmb3JlYWNoIChfbGlicmFyeSAke19saW5rTGlicmFy
aWVzfSkKKwkJaWYgKFRBUkdFVCAke19saWJyYXJ5fSkKKwkJCWdldF90YXJnZXRfcHJvcGVydHko
X2RlZmluaXRpb25zICR7X2xpYnJhcnl9IElOVEVSRkFDRV9DT01QSUxFX0RFRklOSVRJT05TKQor
CQkJaWYgKF9kZWZpbml0aW9ucykKKwkJCQlsaXN0IChBUFBFTkQgX2NvbmZpZ0RlZmluaXRpb25z
ICR7X2RlZmluaXRpb25zfSkKKwkJCWVuZGlmKCkKKwkJZW5kaWYoKQorCWVuZGZvcmVhY2goKQor
CSMgcGFyc2UgYWRkaXRpb25hbCBjb21waWxlIGRlZmluaXRpb25zIGZyb20gdGFyZ2V0IGNvbXBp
bGUgZmxhZ3MKKwkjIGFuZCBkb24ndCBsb29rIGF0IGRpcmVjdG9yeSBjb21waWxlIGRlZmluaXRp
b25zLCB3aGljaCB3ZSBhbHJlYWR5IGhhbmRsZWQKKwlzZXQgKF90YXJnZXRGbGFncyAiIikKKwlj
b3RpcmVfZ2V0X3RhcmdldF9jb21waWxlX2ZsYWdzKCIke19jb25maWd9IiAiJHtfbGFuZ3VhZ2V9
IiAiIiAiJHtfdGFyZ2V0fSIgX3RhcmdldEZsYWdzKQorCWNvdGlyZV9maWx0ZXJfY29tcGlsZV9m
bGFncygiJHtfbGFuZ3VhZ2V9IiAiRCIgX2RlZmluaXRpb25zIF9pZ25vcmUgJHtfdGFyZ2V0Rmxh
Z3N9KQorCWlmIChfZGVmaW5pdGlvbnMpCisJCWxpc3QgKEFQUEVORCBfY29uZmlnRGVmaW5pdGlv
bnMgJHtfZGVmaW5pdGlvbnN9KQorCWVuZGlmKCkKKwlsaXN0IChSRU1PVkVfRFVQTElDQVRFUyBf
Y29uZmlnRGVmaW5pdGlvbnMpCisJaWYgKENPVElSRV9ERUJVRyBBTkQgX2NvbmZpZ0RlZmluaXRp
b25zKQorCQltZXNzYWdlIChTVEFUVVMgIlRhcmdldCAke190YXJnZXR9IGNvbXBpbGUgZGVmaW5p
dGlvbnMgJHtfY29uZmlnRGVmaW5pdGlvbnN9IikKKwllbmRpZigpCisJc2V0ICgke19kZWZpbml0
aW9uc1Zhcn0gJHtfY29uZmlnRGVmaW5pdGlvbnN9IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9u
KCkKKworZnVuY3Rpb24gKGNvdGlyZV9nZXRfdGFyZ2V0X2NvbXBpbGVyX2ZsYWdzIF9jb25maWcg
X2xhbmd1YWdlIF9kaXJlY3RvcnkgX3RhcmdldCBfY29tcGlsZXJGbGFnc1ZhcikKKwkjIHBhcnNl
IHRhcmdldCBjb21waWxlIGZsYWdzIG9taXR0aW5nIGNvbXBpbGUgZGVmaW5pdGlvbnMgYW5kIGlu
Y2x1ZGUgZGlyZWN0aXZlcworCXNldCAoX3RhcmdldEZsYWdzICIiKQorCWNvdGlyZV9nZXRfdGFy
Z2V0X2NvbXBpbGVfZmxhZ3MoIiR7X2NvbmZpZ30iICIke19sYW5ndWFnZX0iICIke19kaXJlY3Rv
cnl9IiAiJHtfdGFyZ2V0fSIgX3RhcmdldEZsYWdzKQorCXNldCAoX2NvbXBpbGVyRmxhZ3MgIiIp
CisJY290aXJlX2ZpbHRlcl9jb21waWxlX2ZsYWdzKCIke19sYW5ndWFnZX0iICJbSURdIiBfaWdu
b3JlIF9jb21waWxlckZsYWdzICR7X3RhcmdldEZsYWdzfSkKKwlpZiAoQ09USVJFX0RFQlVHIEFO
RCBfY29tcGlsZXJGbGFncykKKwkJbWVzc2FnZSAoU1RBVFVTICJUYXJnZXQgJHtfdGFyZ2V0fSBj
b21waWxlciBmbGFncyAke19jb21waWxlckZsYWdzfSIpCisJZW5kaWYoKQorCXNldCAoJHtfY29t
cGlsZXJGbGFnc1Zhcn0gJHtfY29tcGlsZXJGbGFnc30gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rp
b24oKQorCitmdW5jdGlvbiAoY290aXJlX2FkZF9zeXNfcm9vdF9wYXRocyBfcGF0aHNWYXIpCisJ
aWYgKEFQUExFKQorCQlpZiAoQ01BS0VfT1NYX1NZU1JPT1QgQU5EIENNQUtFXyR7X2xhbmd1YWdl
fV9IQVNfSVNZU1JPT1QpCisJCQlmb3JlYWNoIChfcGF0aCBJTiBMSVNUUyAke19wYXRoc1Zhcn0p
CisJCQkJaWYgKElTX0FCU09MVVRFICIke19wYXRofSIpCisJCQkJCWdldF9maWxlbmFtZV9jb21w
b25lbnQoX3BhdGggIiR7Q01BS0VfT1NYX1NZU1JPT1R9LyR7X3BhdGh9IiBBQlNPTFVURSkKKwkJ
CQkJaWYgKEVYSVNUUyAiJHtfcGF0aH0iKQorCQkJCQkJbGlzdCAoQVBQRU5EICR7X3BhdGhzVmFy
fSAiJHtfcGF0aH0iKQorCQkJCQllbmRpZigpCisJCQkJZW5kaWYoKQorCQkJZW5kZm9yZWFjaCgp
CisJCWVuZGlmKCkKKwllbmRpZigpCisJc2V0ICgke19wYXRoc1Zhcn0gJHske19wYXRoc1Zhcn19
IFBBUkVOVF9TQ09QRSkKKwlpZiAoQ09USVJFX0RFQlVHKQorCQltZXNzYWdlIChTVEFUVVMgIiR7
X3BhdGhzVmFyfT0keyR7X3BhdGhzVmFyfX0iKQorCWVuZGlmKCkKK2VuZGZ1bmN0aW9uKCkKKwor
ZnVuY3Rpb24gKGNvdGlyZV9nZXRfc291cmNlX2V4dHJhX3Byb3BlcnRpZXMgX3NvdXJjZUZpbGUg
X3BhdHRlcm4gX3Jlc3VsdFZhcikKKwlzZXQgKF9leHRyYVByb3BlcnRpZXMgJHtBUkdOfSkKKwlz
ZXQgKF9yZXN1bHQgIiIpCisJaWYgKF9leHRyYVByb3BlcnRpZXMpCisJCWxpc3QgKEZJTkQgX2V4
dHJhUHJvcGVydGllcyAiJHtfc291cmNlRmlsZX0iIF9pbmRleCkKKwkJaWYgKF9pbmRleCBHUkVB
VEVSIC0xKQorCQkJbWF0aCAoRVhQUiBfaW5kZXggIiR7X2luZGV4fSArIDEiKQorCQkJbGlzdCAo
TEVOR1RIIF9leHRyYVByb3BlcnRpZXMgX2xlbikKKwkJCW1hdGggKEVYUFIgX2xlbiAiJHtfbGVu
fSAtIDEiKQorCQkJZm9yZWFjaCAoX2luZGV4IFJBTkdFICR7X2luZGV4fSAke19sZW59KQorCQkJ
CWxpc3QgKEdFVCBfZXh0cmFQcm9wZXJ0aWVzICR7X2luZGV4fSBfdmFsdWUpCisJCQkJaWYgKF92
YWx1ZSBNQVRDSEVTICIke19wYXR0ZXJufSIpCisJCQkJCWxpc3QgKEFQUEVORCBfcmVzdWx0ICIk
e192YWx1ZX0iKQorCQkJCWVsc2UoKQorCQkJCQlicmVhaygpCisJCQkJZW5kaWYoKQorCQkJZW5k
Zm9yZWFjaCgpCisJCWVuZGlmKCkKKwllbmRpZigpCisJc2V0ICgke19yZXN1bHRWYXJ9ICR7X3Jl
c3VsdH0gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX2dl
dF9zb3VyY2VfY29tcGlsZV9kZWZpbml0aW9ucyBfY29uZmlnIF9sYW5ndWFnZSBfc291cmNlRmls
ZSBfZGVmaW5pdGlvbnNWYXIpCisJc2V0IChfY29tcGlsZURlZmluaXRpb25zICIiKQorCWlmIChO
T1QgQ01BS0VfU0NSSVBUX01PREVfRklMRSkKKwkJc3RyaW5nIChUT1VQUEVSICIke19jb25maWd9
IiBfdXBwZXJDb25maWcpCisJCWdldF9zb3VyY2VfZmlsZV9wcm9wZXJ0eShfZGVmaW5pdGlvbnMg
IiR7X3NvdXJjZUZpbGV9IiBDT01QSUxFX0RFRklOSVRJT05TKQorCQlpZiAoX2RlZmluaXRpb25z
KQorCQkJbGlzdCAoQVBQRU5EIF9jb21waWxlRGVmaW5pdGlvbnMgJHtfZGVmaW5pdGlvbnN9KQor
CQllbmRpZigpCisJCWdldF9zb3VyY2VfZmlsZV9wcm9wZXJ0eShfZGVmaW5pdGlvbnMgIiR7X3Nv
dXJjZUZpbGV9IiBDT01QSUxFX0RFRklOSVRJT05TXyR7X3VwcGVyQ29uZmlnfSkKKwkJaWYgKF9k
ZWZpbml0aW9ucykKKwkJCWxpc3QgKEFQUEVORCBfY29tcGlsZURlZmluaXRpb25zICR7X2RlZmlu
aXRpb25zfSkKKwkJZW5kaWYoKQorCWVuZGlmKCkKKwljb3RpcmVfZ2V0X3NvdXJjZV9leHRyYV9w
cm9wZXJ0aWVzKCIke19zb3VyY2VGaWxlfSIgIl5bYS16QS1aMC05X10rKD0uKik/JCIgX2RlZmlu
aXRpb25zICR7QVJHTn0pCisJaWYgKF9kZWZpbml0aW9ucykKKwkJbGlzdCAoQVBQRU5EIF9jb21w
aWxlRGVmaW5pdGlvbnMgJHtfZGVmaW5pdGlvbnN9KQorCWVuZGlmKCkKKwlpZiAoQ09USVJFX0RF
QlVHIEFORCBfY29tcGlsZURlZmluaXRpb25zKQorCQltZXNzYWdlIChTVEFUVVMgIlNvdXJjZSAk
e19zb3VyY2VGaWxlfSBjb21waWxlIGRlZmluaXRpb25zICR7X2NvbXBpbGVEZWZpbml0aW9uc30i
KQorCWVuZGlmKCkKKwlzZXQgKCR7X2RlZmluaXRpb25zVmFyfSAke19jb21waWxlRGVmaW5pdGlv
bnN9IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9nZXRf
c291cmNlX2ZpbGVzX2NvbXBpbGVfZGVmaW5pdGlvbnMgX2NvbmZpZyBfbGFuZ3VhZ2UgX2RlZmlu
aXRpb25zVmFyKQorCXNldCAoX2NvbmZpZ0RlZmluaXRpb25zICIiKQorCWZvcmVhY2ggKF9zb3Vy
Y2VGaWxlICR7QVJHTn0pCisJCWNvdGlyZV9nZXRfc291cmNlX2NvbXBpbGVfZGVmaW5pdGlvbnMo
IiR7X2NvbmZpZ30iICIke19sYW5ndWFnZX0iICIke19zb3VyY2VGaWxlfSIgX3NvdXJjZURlZmlu
aXRpb25zKQorCQlpZiAoX3NvdXJjZURlZmluaXRpb25zKQorCQkJbGlzdCAoQVBQRU5EIF9jb25m
aWdEZWZpbml0aW9ucyAiJHtfc291cmNlRmlsZX0iICR7X3NvdXJjZURlZmluaXRpb25zfSAiLSIp
CisJCWVuZGlmKCkKKwllbmRmb3JlYWNoKCkKKwlzZXQgKCR7X2RlZmluaXRpb25zVmFyfSAke19j
b25maWdEZWZpbml0aW9uc30gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlv
biAoY290aXJlX2dldF9zb3VyY2VfdW5kZWZzIF9zb3VyY2VGaWxlIF9wcm9wZXJ0eSBfc291cmNl
VW5kZWZzVmFyKQorCXNldCAoX3NvdXJjZVVuZGVmcyAiIikKKwlpZiAoTk9UIENNQUtFX1NDUklQ
VF9NT0RFX0ZJTEUpCisJCWdldF9zb3VyY2VfZmlsZV9wcm9wZXJ0eShfdW5kZWZzICIke19zb3Vy
Y2VGaWxlfSIgJHtfcHJvcGVydHl9KQorCQlpZiAoX3VuZGVmcykKKwkJCWxpc3QgKEFQUEVORCBf
c291cmNlVW5kZWZzICR7X3VuZGVmc30pCisJCWVuZGlmKCkKKwllbmRpZigpCisJY290aXJlX2dl
dF9zb3VyY2VfZXh0cmFfcHJvcGVydGllcygiJHtfc291cmNlRmlsZX0iICJeW2EtekEtWjAtOV9d
KyQiIF91bmRlZnMgJHtBUkdOfSkKKwlpZiAoX3VuZGVmcykKKwkJbGlzdCAoQVBQRU5EIF9zb3Vy
Y2VVbmRlZnMgJHtfdW5kZWZzfSkKKwllbmRpZigpCisJaWYgKENPVElSRV9ERUJVRyBBTkQgX3Nv
dXJjZVVuZGVmcykKKwkJbWVzc2FnZSAoU1RBVFVTICJTb3VyY2UgJHtfc291cmNlRmlsZX0gJHtf
cHJvcGVydHl9IHVuZGVmcyAke19zb3VyY2VVbmRlZnN9IikKKwllbmRpZigpCisJc2V0ICgke19z
b3VyY2VVbmRlZnNWYXJ9ICR7X3NvdXJjZVVuZGVmc30gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rp
b24oKQorCitmdW5jdGlvbiAoY290aXJlX2dldF9zb3VyY2VfZmlsZXNfdW5kZWZzIF9wcm9wZXJ0
eSBfc291cmNlVW5kZWZzVmFyKQorCXNldCAoX3NvdXJjZVVuZGVmcyAiIikKKwlmb3JlYWNoIChf
c291cmNlRmlsZSAke0FSR059KQorCQljb3RpcmVfZ2V0X3NvdXJjZV91bmRlZnMoIiR7X3NvdXJj
ZUZpbGV9IiAke19wcm9wZXJ0eX0gX3VuZGVmcykKKwkJaWYgKF91bmRlZnMpCisJCQlsaXN0IChB
UFBFTkQgX3NvdXJjZVVuZGVmcyAiJHtfc291cmNlRmlsZX0iICR7X3VuZGVmc30gIi0iKQorCQll
bmRpZigpCisJZW5kZm9yZWFjaCgpCisJc2V0ICgke19zb3VyY2VVbmRlZnNWYXJ9ICR7X3NvdXJj
ZVVuZGVmc30gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCittYWNybyAoY290aXJlX3Nl
dF9jbWRfdG9fcHJvbG9ndWUgX2NtZFZhcikKKwlzZXQgKCR7X2NtZFZhcn0gIiR7Q01BS0VfQ09N
TUFORH0iKQorCWlmIChDT1RJUkVfREVCVUcpCisJCWxpc3QgKEFQUEVORCAke19jbWRWYXJ9ICIt
LXdhcm4tdW5pbml0aWFsaXplZCIpCisJZW5kaWYoKQorCWxpc3QgKEFQUEVORCAke19jbWRWYXJ9
ICItRENPVElSRV9CVUlMRF9UWVBFOlNUUklORz0kPENPTkZJR1VSQVRJT04+IikKKwlpZiAoQ09U
SVJFX1ZFUkJPU0UpCisJCWxpc3QgKEFQUEVORCAke19jbWRWYXJ9ICItRENPVElSRV9WRVJCT1NF
OkJPT0w9T04iKQorCWVsc2VpZigiJHtDTUFLRV9HRU5FUkFUT1J9IiBNQVRDSEVTICJNYWtlZmls
ZXMiKQorCQlsaXN0IChBUFBFTkQgJHtfY21kVmFyfSAiLURDT1RJUkVfVkVSQk9TRTpCT09MPSQo
VkVSQk9TRSkiKQorCWVuZGlmKCkKK2VuZG1hY3JvKCkKKworZnVuY3Rpb24gKGNvdGlyZV9pbml0
X2NvbXBpbGVfY21kIF9jbWRWYXIgX2xhbmd1YWdlIF9jb21waWxlckV4ZSBfY29tcGlsZXJBcmcx
KQorCWlmIChOT1QgX2NvbXBpbGVyRXhlKQorCQlzZXQgKF9jb21waWxlckV4ZSAiJHtDTUFLRV8k
e19sYW5ndWFnZX1fQ09NUElMRVJ9IikKKwllbmRpZigpCisJaWYgKE5PVCBfY29tcGlsZXJBcmcx
KQorCQlzZXQgKF9jb21waWxlckFyZzEgJHtDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfQVJH
MX0pCisJZW5kaWYoKQorCXN0cmluZyAoU1RSSVAgIiR7X2NvbXBpbGVyQXJnMX0iIF9jb21waWxl
ckFyZzEpCisJc2V0ICgke19jbWRWYXJ9ICIke19jb21waWxlckV4ZX0iICR7X2NvbXBpbGVyQXJn
MX0gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCittYWNybyAoY290aXJlX2FkZF9kZWZp
bml0aW9uc190b19jbWQgX2NtZFZhciBfbGFuZ3VhZ2UpCisJZm9yZWFjaCAoX2RlZmluaXRpb24g
JHtBUkdOfSkKKwkJaWYgKFdJTjMyIEFORCBDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfSUQg
TUFUQ0hFUyAiTVNWQ3xJbnRlbCIpCisJCQlsaXN0IChBUFBFTkQgJHtfY21kVmFyfSAiL0Qke19k
ZWZpbml0aW9ufSIpCisJCWVsc2UoKQorCQkJbGlzdCAoQVBQRU5EICR7X2NtZFZhcn0gIi1EJHtf
ZGVmaW5pdGlvbn0iKQorCQllbmRpZigpCisJZW5kZm9yZWFjaCgpCitlbmRtYWNybygpCisKK21h
Y3JvIChjb3RpcmVfYWRkX2luY2x1ZGVzX3RvX2NtZCBfY21kVmFyIF9sYW5ndWFnZSBfaW5jbHVk
ZVN5c3RlbUZsYWcgX2luY2x1ZGVzVmFyIF9zeXN0ZW1JbmNsdWRlc1ZhcikKKwlmb3JlYWNoIChf
aW5jbHVkZSAkeyR7X2luY2x1ZGVzVmFyfX0pCisJCWlmIChXSU4zMiBBTkQgQ01BS0VfJHtfbGFu
Z3VhZ2V9X0NPTVBJTEVSX0lEIE1BVENIRVMgIk1TVkN8SW50ZWwiKQorCQkJZmlsZSAoVE9fTkFU
SVZFX1BBVEggIiR7X2luY2x1ZGV9IiBfaW5jbHVkZSkKKwkJCWxpc3QgKEFQUEVORCAke19jbWRW
YXJ9ICIvSSR7X2luY2x1ZGV9IikKKwkJZWxzZSgpCisJCQlsaXN0IChGSU5EICR7X3N5c3RlbUlu
Y2x1ZGVzVmFyfSAke19pbmNsdWRlfSBfaW5kZXgpCisJCQlpZihfaW5kZXggR1JFQVRFUiAtMSBB
TkQgTk9UICIke19pbmNsdWRlU3lzdGVtRmxhZ30iIFNUUkVRVUFMICIiKQorCQkJCWxpc3QgKEFQ
UEVORCAke19jbWRWYXJ9ICIke19pbmNsdWRlU3lzdGVtRmxhZ30ke19pbmNsdWRlfSIpCisJCQll
bHNlKCkKKwkJCQlsaXN0IChBUFBFTkQgJHtfY21kVmFyfSAiLUkke19pbmNsdWRlfSIpCisJCQll
bmRpZigpCisJCWVuZGlmKCkKKwllbmRmb3JlYWNoKCkKK2VuZG1hY3JvKCkKKworbWFjcm8gKGNv
dGlyZV9hZGRfZnJhbWV3b3Jrc190b19jbWQgX2NtZFZhciBfbGFuZ3VhZ2UpCisJaWYgKEFQUExF
KQorCQlzZXQgKF9mcmFtZVdvcmtEaXJzICIiKQorCQlmb3JlYWNoIChfaW5jbHVkZSAke0FSR059
KQorCQkJaWYgKElTX0FCU09MVVRFICIke19pbmNsdWRlfSIgQU5EIF9pbmNsdWRlIE1BVENIRVMg
IlxcLmZyYW1ld29yayQiKQorCQkJCWdldF9maWxlbmFtZV9jb21wb25lbnQoX2ZyYW1lV29ya0Rp
ciAiJHtfaW5jbHVkZX0iIFBBVEgpCisJCQkJbGlzdCAoQVBQRU5EIF9mcmFtZVdvcmtEaXJzICIk
e19mcmFtZVdvcmtEaXJ9IikKKwkJCWVuZGlmKCkKKwkJZW5kZm9yZWFjaCgpCisJCWlmIChfZnJh
bWVXb3JrRGlycykKKwkJCWxpc3QgKFJFTU9WRV9EVVBMSUNBVEVTIF9mcmFtZVdvcmtEaXJzKQor
CQkJZm9yZWFjaCAoX2ZyYW1lV29ya0RpciAke19mcmFtZVdvcmtEaXJzfSkKKwkJCQlsaXN0IChB
UFBFTkQgJHtfY21kVmFyfSAiLUYke19mcmFtZVdvcmtEaXJ9IikKKwkJCWVuZGZvcmVhY2goKQor
CQllbmRpZigpCisJZW5kaWYoKQorZW5kbWFjcm8oKQorCittYWNybyAoY290aXJlX2FkZF9jb21w
aWxlX2ZsYWdzX3RvX2NtZCBfY21kVmFyKQorCWZvcmVhY2ggKF9mbGFnICR7QVJHTn0pCisJCWxp
c3QgKEFQUEVORCAke19jbWRWYXJ9ICIke19mbGFnfSIpCisJZW5kZm9yZWFjaCgpCitlbmRtYWNy
bygpCisKK2Z1bmN0aW9uIChjb3RpcmVfY2hlY2tfZmlsZV91cF90b19kYXRlIF9maWxlSXNVcFRv
RGF0ZVZhciBfZmlsZSkKKwlzZXQgKCR7X2ZpbGVJc1VwVG9EYXRlVmFyfSBGQUxTRSBQQVJFTlRf
U0NPUEUpCisJc2V0IChfdHJpZ2dlckZpbGUgIiIpCisJZm9yZWFjaCAoX2RlcGVuZGVuY3lGaWxl
ICR7QVJHTn0pCisJCWlmIChFWElTVFMgIiR7X2RlcGVuZGVuY3lGaWxlfSIgQU5EICIke19kZXBl
bmRlbmN5RmlsZX0iIElTX05FV0VSX1RIQU4gIiR7X2ZpbGV9IikKKwkJCXNldCAoX3RyaWdnZXJG
aWxlICIke19kZXBlbmRlbmN5RmlsZX0iKQorCQkJYnJlYWsoKQorCQllbmRpZigpCisJZW5kZm9y
ZWFjaCgpCisJZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChfZmlsZU5hbWUgIiR7X2ZpbGV9IiBOQU1F
KQorCWlmIChFWElTVFMgIiR7X2ZpbGV9IikKKwkJaWYgKF90cmlnZ2VyRmlsZSkKKwkJCWlmIChD
T1RJUkVfVkVSQk9TRSkKKwkJCQltZXNzYWdlIChTVEFUVVMgIiR7X2ZpbGVOYW1lfSB1cGRhdGUg
dHJpZ2dlcmVkIGJ5ICR7X3RyaWdnZXJGaWxlfSBjaGFuZ2UuIikKKwkJCWVuZGlmKCkKKwkJZWxz
ZSgpCisJCQlpZiAoQ09USVJFX1ZFUkJPU0UpCisJCQkJbWVzc2FnZSAoU1RBVFVTICIke19maWxl
TmFtZX0gaXMgdXAtdG8tZGF0ZS4iKQorCQkJZW5kaWYoKQorCQkJc2V0ICgke19maWxlSXNVcFRv
RGF0ZVZhcn0gVFJVRSBQQVJFTlRfU0NPUEUpCisJCWVuZGlmKCkKKwllbHNlKCkKKwkJaWYgKENP
VElSRV9WRVJCT1NFKQorCQkJbWVzc2FnZSAoU1RBVFVTICIke19maWxlTmFtZX0gZG9lcyBub3Qg
ZXhpc3QgeWV0LiIpCisJCWVuZGlmKCkKKwllbmRpZigpCitlbmRmdW5jdGlvbigpCisKK21hY3Jv
IChjb3RpcmVfZmluZF9jbG9zZXN0X3JlbGF0aXZlX3BhdGggX2hlYWRlckZpbGUgX2luY2x1ZGVE
aXJzIF9yZWxQYXRoVmFyKQorCXNldCAoJHtfcmVsUGF0aFZhcn0gIiIpCisJZm9yZWFjaCAoX2lu
Y2x1ZGVEaXIgJHtfaW5jbHVkZURpcnN9KQorCQlpZiAoSVNfRElSRUNUT1JZICIke19pbmNsdWRl
RGlyfSIpCisJCQlmaWxlIChSRUxBVElWRV9QQVRIIF9yZWxQYXRoICIke19pbmNsdWRlRGlyfSIg
IiR7X2hlYWRlckZpbGV9IikKKwkJCWlmIChOT1QgSVNfQUJTT0xVVEUgIiR7X3JlbFBhdGh9IiBB
TkQgTk9UICIke19yZWxQYXRofSIgTUFUQ0hFUyAiXlxcLlxcLiIpCisJCQkJc3RyaW5nIChMRU5H
VEggIiR7JHtfcmVsUGF0aFZhcn19IiBfY2xvc2VzdExlbikKKwkJCQlzdHJpbmcgKExFTkdUSCAi
JHtfcmVsUGF0aH0iIF9yZWxMZW4pCisJCQkJaWYgKF9jbG9zZXN0TGVuIEVRVUFMIDAgT1IgX3Jl
bExlbiBMRVNTIF9jbG9zZXN0TGVuKQorCQkJCQlzZXQgKCR7X3JlbFBhdGhWYXJ9ICIke19yZWxQ
YXRofSIpCisJCQkJZW5kaWYoKQorCQkJZW5kaWYoKQorCQllbHNlaWYgKCIke19pbmNsdWRlRGly
fSIgU1RSRVFVQUwgIiR7X2hlYWRlckZpbGV9IikKKwkJCSMgaWYgcGF0aCBtYXRjaGVzIGV4YWN0
bHksIHJldHVybiBzaG9ydCBub24tZW1wdHkgc3RyaW5nCisJCQlzZXQgKCR7X3JlbFBhdGhWYXJ9
ICIxIikKKwkJCWJyZWFrKCkKKwkJZW5kaWYoKQorCWVuZGZvcmVhY2goKQorZW5kbWFjcm8oKQor
CittYWNybyAoY290aXJlX2NoZWNrX2hlYWRlcl9maWxlX2xvY2F0aW9uIF9oZWFkZXJGaWxlIF9p
bnNpZGVJbmN1ZGVEaXJzIF9vdXRzaWRlSW5jdWRlRGlycyBfaGVhZGVySXNJbnNpZGUpCisJIyBj
aGVjayBoZWFkZXIgcGF0aCBhZ2FpbnN0IGlnbm9yZWQgYW5kIGhvbm9yZWQgaW5jbHVkZSBkaXJl
Y3RvcmllcworCWNvdGlyZV9maW5kX2Nsb3Nlc3RfcmVsYXRpdmVfcGF0aCgiJHtfaGVhZGVyRmls
ZX0iICIke19pbnNpZGVJbmN1ZGVEaXJzfSIgX2luc2lkZVJlbFBhdGgpCisJaWYgKF9pbnNpZGVS
ZWxQYXRoKQorCQkjIGhlYWRlciBpcyBpbnNpZGUsIGJ1dCBjb3VsZCBiZSBiZWNvbWUgb3V0c2lk
ZSBpZiB0aGVyZSBpcyBhIHNob3J0ZXIgb3V0c2lkZSBtYXRjaAorCQljb3RpcmVfZmluZF9jbG9z
ZXN0X3JlbGF0aXZlX3BhdGgoIiR7X2hlYWRlckZpbGV9IiAiJHtfb3V0c2lkZUluY3VkZURpcnN9
IiBfb3V0c2lkZVJlbFBhdGgpCisJCWlmIChfb3V0c2lkZVJlbFBhdGgpCisJCQlzdHJpbmcgKExF
TkdUSCAiJHtfaW5zaWRlUmVsUGF0aH0iIF9pbnNpZGVSZWxQYXRoTGVuKQorCQkJc3RyaW5nIChM
RU5HVEggIiR7X291dHNpZGVSZWxQYXRofSIgX291dHNpZGVSZWxQYXRoTGVuKQorCQkJaWYgKF9v
dXRzaWRlUmVsUGF0aExlbiBMRVNTIF9pbnNpZGVSZWxQYXRoTGVuKQorCQkJCXNldCAoJHtfaGVh
ZGVySXNJbnNpZGV9IEZBTFNFKQorCQkJZWxzZSgpCisJCQkJc2V0ICgke19oZWFkZXJJc0luc2lk
ZX0gVFJVRSkKKwkJCWVuZGlmKCkKKwkJZWxzZSgpCisJCQlzZXQgKCR7X2hlYWRlcklzSW5zaWRl
fSBUUlVFKQorCQllbmRpZigpCisJZWxzZSgpCisJCSMgaGVhZGVyIGlzIG91dHNpZGUKKwkJc2V0
ICgke19oZWFkZXJJc0luc2lkZX0gRkFMU0UpCisJZW5kaWYoKQorZW5kbWFjcm8oKQorCittYWNy
byAoY290aXJlX2NoZWNrX2lnbm9yZV9oZWFkZXJfZmlsZV9wYXRoIF9oZWFkZXJGaWxlIF9oZWFk
ZXJJc0lnbm9yZWRWYXIpCisJaWYgKE5PVCBFWElTVFMgIiR7X2hlYWRlckZpbGV9IikKKwkJc2V0
ICgke19oZWFkZXJJc0lnbm9yZWRWYXJ9IFRSVUUpCisJZWxzZWlmIChJU19ESVJFQ1RPUlkgIiR7
X2hlYWRlckZpbGV9IikKKwkJc2V0ICgke19oZWFkZXJJc0lnbm9yZWRWYXJ9IFRSVUUpCisJZWxz
ZWlmICgiJHtfaGVhZGVyRmlsZX0iIE1BVENIRVMgIlxcLlxcLnxbXy1dZml4ZWQiIEFORCAiJHtf
aGVhZGVyRmlsZX0iIE1BVENIRVMgIlxcLmgkIikKKwkJIyBoZXVyaXN0aWM6IGlnbm9yZSBDIGhl
YWRlcnMgd2l0aCBlbWJlZGRlZCBwYXJlbnQgZGlyZWN0b3J5IHJlZmVyZW5jZXMgb3IgIi1maXhl
ZCIgb3IgIl9maXhlZCIgaW4gcGF0aAorCQkjIHRoZXNlIG9mdGVuIHN0ZW0gZnJvbSB1c2luZyBH
Q0MgI2luY2x1ZGVfbmV4dCB0cmlja3MsIHdoaWNoIG1heSBicmVhayB0aGUgcHJlY29tcGlsZWQg
aGVhZGVyIGNvbXBpbGF0aW9uCisJCSMgd2l0aCB0aGUgZXJyb3IgbWVzc2FnZSAiZXJyb3I6IG5v
IGluY2x1ZGUgcGF0aCBpbiB3aGljaCB0byBzZWFyY2ggZm9yIGhlYWRlci5oIgorCQlzZXQgKCR7
X2hlYWRlcklzSWdub3JlZFZhcn0gVFJVRSkKKwllbHNlKCkKKwkJc2V0ICgke19oZWFkZXJJc0ln
bm9yZWRWYXJ9IEZBTFNFKQorCWVuZGlmKCkKK2VuZG1hY3JvKCkKKworbWFjcm8gKGNvdGlyZV9j
aGVja19pZ25vcmVfaGVhZGVyX2ZpbGVfZXh0IF9oZWFkZXJGaWxlIF9pZ25vcmVFeHRlbnNpb25z
VmFyIF9oZWFkZXJJc0lnbm9yZWRWYXIpCisJIyBjaGVjayBoZWFkZXIgZmlsZSBleHRlbnNpb24K
Kwljb3RpcmVfZ2V0X3NvdXJjZV9maWxlX2V4dGVuc2lvbigiJHtfaGVhZGVyRmlsZX0iIF9oZWFk
ZXJGaWxlRXh0KQorCXNldCAoJHtfaGVhZGVySXNJZ25vcmVkVmFyfSBGQUxTRSkKKwlpZiAoX2hl
YWRlckZpbGVFeHQpCisJCWxpc3QgKEZJTkQgJHtfaWdub3JlRXh0ZW5zaW9uc1Zhcn0gIiR7X2hl
YWRlckZpbGVFeHR9IiBfaW5kZXgpCisJCWlmIChfaW5kZXggR1JFQVRFUiAtMSkKKwkJCXNldCAo
JHtfaGVhZGVySXNJZ25vcmVkVmFyfSBUUlVFKQorCQllbmRpZigpCisJZW5kaWYoKQorZW5kbWFj
cm8oKQorCittYWNybyAoY290aXJlX3BhcnNlX2xpbmUgX2xpbmUgX2hlYWRlckZpbGVWYXIgX2hl
YWRlckRlcHRoVmFyKQorCWlmIChNU1ZDKQorCQkjIGNsLmV4ZSAvc2hvd0luY2x1ZGVzIG91dHB1
dCBsb29rcyBkaWZmZXJlbnQgZGVwZW5kaW5nIG9uIHRoZSBsYW5ndWFnZSBwYWNrIHVzZWQsIGUu
Zy46CisJCSMgRW5nbGlzaDogIk5vdGU6IGluY2x1ZGluZyBmaWxlOiAgIEM6XGRpcmVjdG9yeVxm
aWxlIgorCQkjIEdlcm1hbjogIkhpbndlaXM6IEVpbmxlc2VuIGRlciBEYXRlaTogICBDOlxkaXJl
Y3RvcnlcZmlsZSIKKwkJIyBXZSB1c2UgYSB2ZXJ5IGdlbmVyYWwgcmVndWxhciBleHByZXNzaW9u
LCByZWx5aW5nIG9uIHRoZSBwcmVzZW5jZSBvZiB0aGUgOiBjaGFyYWN0ZXJzCisJCWlmIChfbGlu
ZSBNQVRDSEVTICI6KCArKShbXjpdKzpbXjpdKykkIikKKwkJCSMgVmlzdWFsIFN0dWRpbyBjb21w
aWxlciBvdXRwdXQKKwkJCXN0cmluZyAoTEVOR1RIICIke0NNQUtFX01BVENIXzF9IiAke19oZWFk
ZXJEZXB0aFZhcn0pCisJCQlnZXRfZmlsZW5hbWVfY29tcG9uZW50KCR7X2hlYWRlckZpbGVWYXJ9
ICIke0NNQUtFX01BVENIXzJ9IiBBQlNPTFVURSkKKwkJZWxzZSgpCisJCQlzZXQgKCR7X2hlYWRl
ckZpbGVWYXJ9ICIiKQorCQkJc2V0ICgke19oZWFkZXJEZXB0aFZhcn0gMCkKKwkJZW5kaWYoKQor
CWVsc2UoKQorCQlpZiAoX2xpbmUgTUFUQ0hFUyAiXihcXC4rKSAoLiopJCIpCisJCQkjIEdDQyBs
aWtlIG91dHB1dAorCQkJc3RyaW5nIChMRU5HVEggIiR7Q01BS0VfTUFUQ0hfMX0iICR7X2hlYWRl
ckRlcHRoVmFyfSkKKwkJCWlmIChJU19BQlNPTFVURSAiJHtDTUFLRV9NQVRDSF8yfSIpCisJCQkJ
c2V0ICgke19oZWFkZXJGaWxlVmFyfSAiJHtDTUFLRV9NQVRDSF8yfSIpCisJCQllbHNlKCkKKwkJ
CQlnZXRfZmlsZW5hbWVfY29tcG9uZW50KCR7X2hlYWRlckZpbGVWYXJ9ICIke0NNQUtFX01BVENI
XzJ9IiBSRUFMUEFUSCkKKwkJCWVuZGlmKCkKKwkJZWxzZSgpCisJCQlzZXQgKCR7X2hlYWRlckZp
bGVWYXJ9ICIiKQorCQkJc2V0ICgke19oZWFkZXJEZXB0aFZhcn0gMCkKKwkJZW5kaWYoKQorCWVu
ZGlmKCkKK2VuZG1hY3JvKCkKKworZnVuY3Rpb24gKGNvdGlyZV9wYXJzZV9pbmNsdWRlcyBfbGFu
Z3VhZ2UgX3NjYW5PdXRwdXQgX2lnbm9yZWRJbmN1ZGVEaXJzIF9ob25vcmVkSW5jdWRlRGlycyBf
aWdub3JlZEV4dGVuc2lvbnMgX3NlbGVjdGVkSW5jbHVkZXNWYXIgX3VucGFyc2VkTGluZXNWYXIp
CisJaWYgKFdJTjMyKQorCQkjIHByZXZlbnQgQ01ha2UgbWFjcm8gaW52b2NhdGlvbiBlcnJvcnMg
ZHVlIHRvIGJhY2tzbGFzaCBjaGFyYWN0ZXJzIGluIFdpbmRvd3MgcGF0aHMKKwkJc3RyaW5nIChS
RVBMQUNFICJcXCIgIi8iIF9zY2FuT3V0cHV0ICIke19zY2FuT3V0cHV0fSIpCisJZW5kaWYoKQor
CSMgY2Fub25pemUgc2xhc2hlcworCXN0cmluZyAoUkVQTEFDRSAiLy8iICIvIiBfc2Nhbk91dHB1
dCAiJHtfc2Nhbk91dHB1dH0iKQorCSMgcHJldmVudCBzZW1pY29sb24gZnJvbSBiZWluZyBpbnRl
cnByZXRlZCBhcyBhIGxpbmUgc2VwYXJhdG9yCisJc3RyaW5nIChSRVBMQUNFICI7IiAiXFw7IiBf
c2Nhbk91dHB1dCAiJHtfc2Nhbk91dHB1dH0iKQorCSMgdGhlbiBzZXBhcmF0ZSBsaW5lcworCXN0
cmluZyAoUkVHRVggUkVQTEFDRSAiXG4iICI7IiBfc2Nhbk91dHB1dCAiJHtfc2Nhbk91dHB1dH0i
KQorCWxpc3QgKExFTkdUSCBfc2Nhbk91dHB1dCBfbGVuKQorCSMgcmVtb3ZlIGR1cGxpY2F0ZSBs
aW5lcyB0byBzcGVlZCB1cCBwYXJzaW5nCisJbGlzdCAoUkVNT1ZFX0RVUExJQ0FURVMgX3NjYW5P
dXRwdXQpCisJbGlzdCAoTEVOR1RIIF9zY2FuT3V0cHV0IF91bmlxdWVMZW4pCisJaWYgKENPVElS
RV9WRVJCT1NFIE9SIENPVElSRV9ERUJVRykKKwkJbWVzc2FnZSAoU1RBVFVTICJTY2FubmluZyAk
e191bmlxdWVMZW59IHVuaXF1ZSBsaW5lcyBvZiAke19sZW59IGZvciBpbmNsdWRlcyIpCisJCWlm
IChfaWdub3JlZEV4dGVuc2lvbnMpCisJCQltZXNzYWdlIChTVEFUVVMgIklnbm9yZWQgZXh0ZW5z
aW9uczogJHtfaWdub3JlZEV4dGVuc2lvbnN9IikKKwkJZW5kaWYoKQorCQlpZiAoX2lnbm9yZWRJ
bmN1ZGVEaXJzKQorCQkJbWVzc2FnZSAoU1RBVFVTICJJZ25vcmVkIHBhdGhzOiAke19pZ25vcmVk
SW5jdWRlRGlyc30iKQorCQllbmRpZigpCisJCWlmIChfaG9ub3JlZEluY3VkZURpcnMpCisJCQlt
ZXNzYWdlIChTVEFUVVMgIkluY2x1ZGVkIHBhdGhzOiAke19ob25vcmVkSW5jdWRlRGlyc30iKQor
CQllbmRpZigpCisJZW5kaWYoKQorCXNldCAoX3NvdXJjZUZpbGVzICR7QVJHTn0pCisJc2V0IChf
c2VsZWN0ZWRJbmNsdWRlcyAiIikKKwlzZXQgKF91bnBhcnNlZExpbmVzICIiKQorCSMgc3RhY2sg
a2VlcHMgdHJhY2sgb2YgaW5zaWRlL291dHNpZGUgcHJvamVjdCBzdGF0dXMgb2YgcHJvY2Vzc2Vk
IGhlYWRlciBmaWxlcworCXNldCAoX2hlYWRlcklzSW5zaWRlU3RhY2sgIiIpCisJZm9yZWFjaCAo
X2xpbmUgSU4gTElTVFMgX3NjYW5PdXRwdXQpCisJCWlmIChfbGluZSkKKwkJCWNvdGlyZV9wYXJz
ZV9saW5lKCIke19saW5lfSIgX2hlYWRlckZpbGUgX2hlYWRlckRlcHRoKQorCQkJaWYgKF9oZWFk
ZXJGaWxlKQorCQkJCWNvdGlyZV9jaGVja19oZWFkZXJfZmlsZV9sb2NhdGlvbigiJHtfaGVhZGVy
RmlsZX0iICIke19pZ25vcmVkSW5jdWRlRGlyc30iICIke19ob25vcmVkSW5jdWRlRGlyc30iIF9o
ZWFkZXJJc0luc2lkZSkKKwkJCQlpZiAoQ09USVJFX0RFQlVHKQorCQkJCQltZXNzYWdlIChTVEFU
VVMgIiR7X2hlYWRlckRlcHRofTogJHtfaGVhZGVyRmlsZX0gJHtfaGVhZGVySXNJbnNpZGV9IikK
KwkJCQllbmRpZigpCisJCQkJIyB1cGRhdGUgc3RhY2sKKwkJCQlsaXN0IChMRU5HVEggX2hlYWRl
cklzSW5zaWRlU3RhY2sgX3N0YWNrTGVuKQorCQkJCWlmIChfaGVhZGVyRGVwdGggR1JFQVRFUiBf
c3RhY2tMZW4pCisJCQkJCW1hdGggKEVYUFIgX3N0YWNrTGVuICIke19zdGFja0xlbn0gKyAxIikK
KwkJCQkJZm9yZWFjaCAoX2luZGV4IFJBTkdFICR7X3N0YWNrTGVufSAke19oZWFkZXJEZXB0aH0p
CisJCQkJCQlsaXN0IChBUFBFTkQgX2hlYWRlcklzSW5zaWRlU3RhY2sgJHtfaGVhZGVySXNJbnNp
ZGV9KQorCQkJCQllbmRmb3JlYWNoKCkKKwkJCQllbHNlKCkKKwkJCQkJZm9yZWFjaCAoX2luZGV4
IFJBTkdFICR7X2hlYWRlckRlcHRofSAke19zdGFja0xlbn0pCisJCQkJCQlsaXN0IChSRU1PVkVf
QVQgX2hlYWRlcklzSW5zaWRlU3RhY2sgLTEpCisJCQkJCWVuZGZvcmVhY2goKQorCQkJCQlsaXN0
IChBUFBFTkQgX2hlYWRlcklzSW5zaWRlU3RhY2sgJHtfaGVhZGVySXNJbnNpZGV9KQorCQkJCWVu
ZGlmKCkKKwkJCQlpZiAoQ09USVJFX0RFQlVHKQorCQkJCQltZXNzYWdlIChTVEFUVVMgIiR7X2hl
YWRlcklzSW5zaWRlU3RhY2t9IikKKwkJCQllbmRpZigpCisJCQkJIyBoZWFkZXIgaXMgYSBjYW5k
aWRhdGUgaWYgaXQgaXMgb3V0c2lkZSBwcm9qZWN0CisJCQkJaWYgKE5PVCBfaGVhZGVySXNJbnNp
ZGUpCisJCQkJCSMgZ2V0IHBhcmVudCBoZWFkZXIgZmlsZSdzIGluc2lkZS9vdXRzaWRlIHN0YXR1
cworCQkJCQlpZiAoX2hlYWRlckRlcHRoIEdSRUFURVIgMSkKKwkJCQkJCW1hdGggKEVYUFIgX2lu
ZGV4ICIke19oZWFkZXJEZXB0aH0gLSAyIikKKwkJCQkJCWxpc3QgKEdFVCBfaGVhZGVySXNJbnNp
ZGVTdGFjayAke19pbmRleH0gX3BhcmVudEhlYWRlcklzSW5zaWRlKQorCQkJCQllbHNlKCkKKwkJ
CQkJCXNldCAoX3BhcmVudEhlYWRlcklzSW5zaWRlIFRSVUUpCisJCQkJCWVuZGlmKCkKKwkJCQkJ
IyBzZWxlY3QgaGVhZGVyIGZpbGUgaWYgcGFyZW50IGhlYWRlciBmaWxlIGlzIGluc2lkZSBwcm9q
ZWN0CisJCQkJCSMgKGUuZy4sIGEgcHJvamVjdCBoZWFkZXIgZmlsZSB0aGF0IGluY2x1ZGVzIGEg
c3RhbmRhcmQgaGVhZGVyIGZpbGUpCisJCQkJCWlmIChfcGFyZW50SGVhZGVySXNJbnNpZGUpCisJ
CQkJCQljb3RpcmVfY2hlY2tfaWdub3JlX2hlYWRlcl9maWxlX3BhdGgoIiR7X2hlYWRlckZpbGV9
IiBfaGVhZGVySXNJZ25vcmVkKQorCQkJCQkJaWYgKE5PVCBfaGVhZGVySXNJZ25vcmVkKQorCQkJ
CQkJCWNvdGlyZV9jaGVja19pZ25vcmVfaGVhZGVyX2ZpbGVfZXh0KCIke19oZWFkZXJGaWxlfSIg
X2lnbm9yZWRFeHRlbnNpb25zIF9oZWFkZXJJc0lnbm9yZWQpCisJCQkJCQkJaWYgKE5PVCBfaGVh
ZGVySXNJZ25vcmVkKQorCQkJCQkJCQlsaXN0IChBUFBFTkQgX3NlbGVjdGVkSW5jbHVkZXMgIiR7
X2hlYWRlckZpbGV9IikKKwkJCQkJCQllbHNlKCkKKwkJCQkJCQkJIyBmaXggaGVhZGVyJ3MgaW5z
aWRlIHN0YXR1cyBvbiBzdGFjaywgaXQgaXMgaWdub3JlZCBieSBleHRlbnNpb24gbm93CisJCQkJ
CQkJCWxpc3QgKFJFTU9WRV9BVCBfaGVhZGVySXNJbnNpZGVTdGFjayAtMSkKKwkJCQkJCQkJbGlz
dCAoQVBQRU5EIF9oZWFkZXJJc0luc2lkZVN0YWNrIFRSVUUpCisJCQkJCQkJZW5kaWYoKQorCQkJ
CQkJZW5kaWYoKQorCQkJCQkJaWYgKENPVElSRV9ERUJVRykKKwkJCQkJCQltZXNzYWdlIChTVEFU
VVMgIiR7X2hlYWRlckZpbGV9ICR7X2lnbm9yZWRFeHRlbnNpb25zfSAke19oZWFkZXJJc0lnbm9y
ZWR9IikKKwkJCQkJCWVuZGlmKCkKKwkJCQkJZW5kaWYoKQorCQkJCWVuZGlmKCkKKwkJCWVsc2Uo
KQorCQkJCWlmIChNU1ZDKQorCQkJCQkjIGZvciBjbC5leGUgZG8gbm90IGtlZXAgdW5wYXJzZWQg
bGluZXMgd2hpY2ggc29sZWx5IGNvbnNpc3Qgb2YgYSBzb3VyY2UgZmlsZSBuYW1lCisJCQkJCXN0
cmluZyAoRklORCAiJHtfc291cmNlRmlsZXN9IiAiJHtfbGluZX0iIF9pbmRleCkKKwkJCQkJaWYg
KF9pbmRleCBMRVNTIDApCisJCQkJCQlsaXN0IChBUFBFTkQgX3VucGFyc2VkTGluZXMgIiR7X2xp
bmV9IikKKwkJCQkJZW5kaWYoKQorCQkJCWVsc2UoKQorCQkJCQlsaXN0IChBUFBFTkQgX3VucGFy
c2VkTGluZXMgIiR7X2xpbmV9IikKKwkJCQllbmRpZigpCisJCQllbmRpZigpCisJCWVuZGlmKCkK
KwllbmRmb3JlYWNoKCkKKwlsaXN0IChSRU1PVkVfRFVQTElDQVRFUyBfc2VsZWN0ZWRJbmNsdWRl
cykKKwlzZXQgKCR7X3NlbGVjdGVkSW5jbHVkZXNWYXJ9ICR7X3NlbGVjdGVkSW5jbHVkZXN9IFBB
UkVOVF9TQ09QRSkKKwlzZXQgKCR7X3VucGFyc2VkTGluZXNWYXJ9ICR7X3VucGFyc2VkTGluZXN9
IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9zY2FuX2lu
Y2x1ZGVzIF9pbmNsdWRlc1ZhcikKKwlzZXQoX29wdGlvbnMgIiIpCisJc2V0KF9vbmVWYWx1ZUFy
Z3MgQ09NUElMRVJfSUQgQ09NUElMRVJfRVhFQ1VUQUJMRSBDT01QSUxFUl9WRVJTSU9OIElOQ0xV
REVfU1lTVEVNX0ZMQUcgTEFOR1VBR0UgVU5QQVJTRURfTElORVMpCisJc2V0KF9tdWx0aVZhbHVl
QXJncyBDT01QSUxFX0RFRklOSVRJT05TIENPTVBJTEVfRkxBR1MgSU5DTFVERV9ESVJFQ1RPUklF
UyBTWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUyBJR05PUkVfUEFUSCBJTkNMVURFX1BBVEggSUdO
T1JFX0VYVEVOU0lPTlMpCisJY21ha2VfcGFyc2VfYXJndW1lbnRzKF9vcHRpb24gIiR7X29wdGlv
bnN9IiAiJHtfb25lVmFsdWVBcmdzfSIgIiR7X211bHRpVmFsdWVBcmdzfSIgJHtBUkdOfSkKKwlz
ZXQgKF9zb3VyY2VGaWxlcyAke19vcHRpb25fVU5QQVJTRURfQVJHVU1FTlRTfSkKKwlpZiAoTk9U
IF9vcHRpb25fTEFOR1VBR0UpCisJCXNldCAoX29wdGlvbl9MQU5HVUFHRSAiQ1hYIikKKwllbmRp
ZigpCisJaWYgKE5PVCBfb3B0aW9uX0NPTVBJTEVSX0lEKQorCQlzZXQgKF9vcHRpb25fQ09NUElM
RVJfSUQgIiR7Q01BS0VfJHtfb3B0aW9uX0xBTkdVQUdFfV9JRH0iKQorCWVuZGlmKCkKKwlzZXQg
KF9jbWQgIiR7X29wdGlvbl9DT01QSUxFUl9FWEVDVVRBQkxFfSIgJHtfb3B0aW9uX0NPTVBJTEVS
X0FSRzF9KQorCWNvdGlyZV9pbml0X2NvbXBpbGVfY21kKF9jbWQgIiR7X29wdGlvbl9MQU5HVUFH
RX0iICIke19vcHRpb25fQ09NUElMRVJfRVhFQ1VUQUJMRX0iICIke19vcHRpb25fQ09NUElMRVJf
QVJHMX0iKQorCWNvdGlyZV9hZGRfZGVmaW5pdGlvbnNfdG9fY21kKF9jbWQgIiR7X29wdGlvbl9M
QU5HVUFHRX0iICR7X29wdGlvbl9DT01QSUxFX0RFRklOSVRJT05TfSkKKwljb3RpcmVfYWRkX2Nv
bXBpbGVfZmxhZ3NfdG9fY21kKF9jbWQgJHtfb3B0aW9uX0NPTVBJTEVfRkxBR1N9KQorCWNvdGly
ZV9hZGRfaW5jbHVkZXNfdG9fY21kKF9jbWQgIiR7X29wdGlvbl9MQU5HVUFHRX0iICIke19vcHRp
b25fSU5DTFVERV9TWVNURU1fRkxBR30iIF9vcHRpb25fSU5DTFVERV9ESVJFQ1RPUklFUyBfb3B0
aW9uX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTKQorCWNvdGlyZV9hZGRfZnJhbWV3b3Jrc190
b19jbWQoX2NtZCAiJHtfb3B0aW9uX0xBTkdVQUdFfSIgJHtfb3B0aW9uX0lOQ0xVREVfRElSRUNU
T1JJRVN9KQorCWNvdGlyZV9hZGRfbWFrZWRlcF9mbGFncygiJHtfb3B0aW9uX0xBTkdVQUdFfSIg
IiR7X29wdGlvbl9DT01QSUxFUl9JRH0iICIke19vcHRpb25fQ09NUElMRVJfVkVSU0lPTn0iIF9j
bWQpCisJIyBvbmx5IGNvbnNpZGVyIGV4aXN0aW5nIHNvdXJjZSBmaWxlcyBmb3Igc2Nhbm5pbmcK
KwlzZXQgKF9leGlzdGluZ1NvdXJjZUZpbGVzICIiKQorCWZvcmVhY2ggKF9zb3VyY2VGaWxlICR7
X3NvdXJjZUZpbGVzfSkKKwkJaWYgKEVYSVNUUyAiJHtfc291cmNlRmlsZX0iKQorCQkJbGlzdCAo
QVBQRU5EIF9leGlzdGluZ1NvdXJjZUZpbGVzICIke19zb3VyY2VGaWxlfSIpCisJCWVuZGlmKCkK
KwllbmRmb3JlYWNoKCkKKwlpZiAoTk9UIF9leGlzdGluZ1NvdXJjZUZpbGVzKQorCQlzZXQgKCR7
X2luY2x1ZGVzVmFyfSAiIiBQQVJFTlRfU0NPUEUpCisJCXJldHVybigpCisJZW5kaWYoKQorCWxp
c3QgKEFQUEVORCBfY21kICR7X2V4aXN0aW5nU291cmNlRmlsZXN9KQorCWlmIChDT1RJUkVfVkVS
Qk9TRSkKKwkJbWVzc2FnZSAoU1RBVFVTICJleGVjdXRlX3Byb2Nlc3M6ICR7X2NtZH0iKQorCWVu
ZGlmKCkKKwlpZiAoX29wdGlvbl9DT01QSUxFUl9JRCBNQVRDSEVTICJNU1ZDIikKKwkJaWYgKENP
VElSRV9ERUJVRykKKwkJCW1lc3NhZ2UgKFNUQVRVUyAiY2xlYXJpbmcgVlNfVU5JQ09ERV9PVVRQ
VVQiKQorCQllbmRpZigpCisJCSMgY2wuZXhlIG1lc3NlcyB3aXRoIHRoZSBvdXRwdXQgc3RyZWFt
cyB1bmxlc3MgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIFZTX1VOSUNPREVfT1VUUFVUIGlzIGNs
ZWFyZWQKKwkJdW5zZXQgKEVOVntWU19VTklDT0RFX09VVFBVVH0pCisJZW5kaWYoKQorCWV4ZWN1
dGVfcHJvY2VzcygKKwkJQ09NTUFORCAke19jbWR9IFdPUktJTkdfRElSRUNUT1JZICIke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0iCisJCVJFU1VMVF9WQVJJQUJMRSBfcmVzdWx0IE9VVFBVVF9R
VUlFVCBFUlJPUl9WQVJJQUJMRSBfb3V0cHV0KQorCWlmIChfcmVzdWx0KQorCQltZXNzYWdlIChT
VEFUVVMgIlJlc3VsdCAke19yZXN1bHR9IHNjYW5uaW5nIGluY2x1ZGVzIG9mICR7X2V4aXN0aW5n
U291cmNlRmlsZXN9LiIpCisJZW5kaWYoKQorCWNvdGlyZV9wYXJzZV9pbmNsdWRlcygKKwkJIiR7
X29wdGlvbl9MQU5HVUFHRX0iICIke19vdXRwdXR9IgorCQkiJHtfb3B0aW9uX0lHTk9SRV9QQVRI
fSIgIiR7X29wdGlvbl9JTkNMVURFX1BBVEh9IgorCQkiJHtfb3B0aW9uX0lHTk9SRV9FWFRFTlNJ
T05TfSIKKwkJX2luY2x1ZGVzIF91bnBhcnNlZExpbmVzCisJCSR7X3NvdXJjZUZpbGVzfSkKKwlz
ZXQgKCR7X2luY2x1ZGVzVmFyfSAke19pbmNsdWRlc30gUEFSRU5UX1NDT1BFKQorCWlmIChfb3B0
aW9uX1VOUEFSU0VEX0xJTkVTKQorCQlzZXQgKCR7X29wdGlvbl9VTlBBUlNFRF9MSU5FU30gJHtf
dW5wYXJzZWRMaW5lc30gUEFSRU5UX1NDT1BFKQorCWVuZGlmKCkKK2VuZGZ1bmN0aW9uKCkKKwor
bWFjcm8gKGNvdGlyZV9hcHBlbmRfdW5kZWZzIF9jb250ZW50c1ZhcikKKwlzZXQgKF91bmRlZnMg
JHtBUkdOfSkKKwlpZiAoX3VuZGVmcykKKwkJbGlzdCAoUkVNT1ZFX0RVUExJQ0FURVMgX3VuZGVm
cykKKwkJZm9yZWFjaCAoX2RlZmluaXRpb24gJHtfdW5kZWZzfSkKKwkJCWxpc3QgKEFQUEVORCAk
e19jb250ZW50c1Zhcn0gIiN1bmRlZiAke19kZWZpbml0aW9ufSIpCisJCWVuZGZvcmVhY2goKQor
CWVuZGlmKCkKK2VuZG1hY3JvKCkKKworbWFjcm8gKGNvdGlyZV9jb21tZW50X3N0ciBfbGFuZ3Vh
Z2UgX2NvbW1lbnRUZXh0IF9jb21tZW50VmFyKQorCWlmICgiJHtfbGFuZ3VhZ2V9IiBTVFJFUVVB
TCAiQ01BS0UiKQorCQlzZXQgKCR7X2NvbW1lbnRWYXJ9ICIjICR7X2NvbW1lbnRUZXh0fSIpCisJ
ZWxzZSgpCisJCXNldCAoJHtfY29tbWVudFZhcn0gIi8qICR7X2NvbW1lbnRUZXh0fSAqLyIpCisJ
ZW5kaWYoKQorZW5kbWFjcm8oKQorCitmdW5jdGlvbiAoY290aXJlX3dyaXRlX2ZpbGUgX2xhbmd1
YWdlIF9maWxlIF9jb250ZW50cyBfZm9yY2UpCisJZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChfbW9k
dWxlTmFtZSAiJHtDT1RJUkVfQ01BS0VfTU9EVUxFX0ZJTEV9IiBOQU1FKQorCWNvdGlyZV9jb21t
ZW50X3N0cigiJHtfbGFuZ3VhZ2V9IiAiJHtfbW9kdWxlTmFtZX0gJHtDT1RJUkVfQ01BS0VfTU9E
VUxFX1ZFUlNJT059IGdlbmVyYXRlZCBmaWxlIiBfaGVhZGVyMSkKKwljb3RpcmVfY29tbWVudF9z
dHIoIiR7X2xhbmd1YWdlfSIgIiR7X2ZpbGV9IiBfaGVhZGVyMikKKwlzZXQgKF9jb250ZW50cyAi
JHtfaGVhZGVyMX1cbiR7X2hlYWRlcjJ9XG4ke19jb250ZW50c30iKQorCWlmIChDT1RJUkVfREVC
VUcpCisJCW1lc3NhZ2UgKFNUQVRVUyAiJHtfY29udGVudHN9IikKKwllbmRpZigpCisJaWYgKF9m
b3JjZSBPUiBOT1QgRVhJU1RTICIke19maWxlfSIpCisJCWZpbGUgKFdSSVRFICIke19maWxlfSIg
IiR7X2NvbnRlbnRzfSIpCisJZWxzZSgpCisJCWZpbGUgKFJFQUQgIiR7X2ZpbGV9IiBfb2xkQ29u
dGVudHMpCisJCWlmIChOT1QgIiR7X29sZENvbnRlbnRzfSIgU1RSRVFVQUwgIiR7X2NvbnRlbnRz
fSIpCisJCQlmaWxlIChXUklURSAiJHtfZmlsZX0iICIke19jb250ZW50c30iKQorCQllbHNlKCkK
KwkJCWlmIChDT1RJUkVfREVCVUcpCisJCQkJbWVzc2FnZSAoU1RBVFVTICIke19maWxlfSB1bmNo
YW5nZWQiKQorCQkJZW5kaWYoKQorCQllbmRpZigpCisJZW5kaWYoKQorZW5kZnVuY3Rpb24oKQor
CitmdW5jdGlvbiAoY290aXJlX2dlbmVyYXRlX3VuaXR5X3NvdXJjZSBfdW5pdHlGaWxlKQorCXNl
dChfb3B0aW9ucyAiIikKKwlzZXQoX29uZVZhbHVlQXJncyBMQU5HVUFHRSkKKwlzZXQoX211bHRp
VmFsdWVBcmdzCisJCURFUEVORFMgU09VUkNFU19DT01QSUxFX0RFRklOSVRJT05TCisJCVBSRV9V
TkRFRlMgU09VUkNFU19QUkVfVU5ERUZTIFBPU1RfVU5ERUZTIFNPVVJDRVNfUE9TVF9VTkRFRlMg
UFJPTE9HVUUgRVBJTE9HVUUpCisJY21ha2VfcGFyc2VfYXJndW1lbnRzKF9vcHRpb24gIiR7X29w
dGlvbnN9IiAiJHtfb25lVmFsdWVBcmdzfSIgIiR7X211bHRpVmFsdWVBcmdzfSIgJHtBUkdOfSkK
KwlpZiAoX29wdGlvbl9ERVBFTkRTKQorCQljb3RpcmVfY2hlY2tfZmlsZV91cF90b19kYXRlKF91
bml0eUZpbGVJc1VwVG9EYXRlICIke191bml0eUZpbGV9IiAke19vcHRpb25fREVQRU5EU30pCisJ
CWlmIChfdW5pdHlGaWxlSXNVcFRvRGF0ZSkKKwkJCXJldHVybigpCisJCWVuZGlmKCkKKwllbmRp
ZigpCisJc2V0IChfc291cmNlRmlsZXMgJHtfb3B0aW9uX1VOUEFSU0VEX0FSR1VNRU5UU30pCisJ
aWYgKE5PVCBfb3B0aW9uX1BSRV9VTkRFRlMpCisJCXNldCAoX29wdGlvbl9QUkVfVU5ERUZTICIi
KQorCWVuZGlmKCkKKwlpZiAoTk9UIF9vcHRpb25fU09VUkNFU19QUkVfVU5ERUZTKQorCQlzZXQg
KF9vcHRpb25fU09VUkNFU19QUkVfVU5ERUZTICIiKQorCWVuZGlmKCkKKwlpZiAoTk9UIF9vcHRp
b25fUE9TVF9VTkRFRlMpCisJCXNldCAoX29wdGlvbl9QT1NUX1VOREVGUyAiIikKKwllbmRpZigp
CisJaWYgKE5PVCBfb3B0aW9uX1NPVVJDRVNfUE9TVF9VTkRFRlMpCisJCXNldCAoX29wdGlvbl9T
T1VSQ0VTX1BPU1RfVU5ERUZTICIiKQorCWVuZGlmKCkKKwlzZXQgKF9jb250ZW50cyAiIikKKwlp
ZiAoX29wdGlvbl9QUk9MT0dVRSkKKwkJbGlzdCAoQVBQRU5EIF9jb250ZW50cyAke19vcHRpb25f
UFJPTE9HVUV9KQorCWVuZGlmKCkKKwlpZiAoX29wdGlvbl9MQU5HVUFHRSBBTkQgX3NvdXJjZUZp
bGVzKQorCQlpZiAoIiR7X29wdGlvbl9MQU5HVUFHRX0iIFNUUkVRVUFMICJDWFgiKQorCQkJbGlz
dCAoQVBQRU5EIF9jb250ZW50cyAiI2lmZGVmIF9fY3BsdXNwbHVzIikKKwkJZWxzZWlmICgiJHtf
b3B0aW9uX0xBTkdVQUdFfSIgU1RSRVFVQUwgIkMiKQorCQkJbGlzdCAoQVBQRU5EIF9jb250ZW50
cyAiI2lmbmRlZiBfX2NwbHVzcGx1cyIpCisJCWVuZGlmKCkKKwllbmRpZigpCisJc2V0IChfY29t
cGlsZVVuZGVmaW5pdGlvbnMgIiIpCisJZm9yZWFjaCAoX3NvdXJjZUZpbGUgJHtfc291cmNlRmls
ZXN9KQorCQljb3RpcmVfZ2V0X3NvdXJjZV9jb21waWxlX2RlZmluaXRpb25zKAorCQkJIiR7X29w
dGlvbl9DT05GSUdVUkFUSU9OfSIgIiR7X29wdGlvbl9MQU5HVUFHRX0iICIke19zb3VyY2VGaWxl
fSIgX2NvbXBpbGVEZWZpbml0aW9ucworCQkJJHtfb3B0aW9uX1NPVVJDRVNfQ09NUElMRV9ERUZJ
TklUSU9OU30pCisJCWNvdGlyZV9nZXRfc291cmNlX3VuZGVmcygiJHtfc291cmNlRmlsZX0iIENP
VElSRV9VTklUWV9TT1VSQ0VfUFJFX1VOREVGUyBfc291cmNlUHJlVW5kZWZzICR7X29wdGlvbl9T
T1VSQ0VTX1BSRV9VTkRFRlN9KQorCQljb3RpcmVfZ2V0X3NvdXJjZV91bmRlZnMoIiR7X3NvdXJj
ZUZpbGV9IiBDT1RJUkVfVU5JVFlfU09VUkNFX1BPU1RfVU5ERUZTIF9zb3VyY2VQb3N0VW5kZWZz
ICR7X29wdGlvbl9TT1VSQ0VTX1BPU1RfVU5ERUZTfSkKKwkJaWYgKF9vcHRpb25fUFJFX1VOREVG
UykKKwkJCWxpc3QgKEFQUEVORCBfY29tcGlsZVVuZGVmaW5pdGlvbnMgJHtfb3B0aW9uX1BSRV9V
TkRFRlN9KQorCQllbmRpZigpCisJCWlmIChfc291cmNlUHJlVW5kZWZzKQorCQkJbGlzdCAoQVBQ
RU5EIF9jb21waWxlVW5kZWZpbml0aW9ucyAke19zb3VyY2VQcmVVbmRlZnN9KQorCQllbmRpZigp
CisJCWlmIChfY29tcGlsZVVuZGVmaW5pdGlvbnMpCisJCQljb3RpcmVfYXBwZW5kX3VuZGVmcyhf
Y29udGVudHMgJHtfY29tcGlsZVVuZGVmaW5pdGlvbnN9KQorCQkJc2V0IChfY29tcGlsZVVuZGVm
aW5pdGlvbnMgIiIpCisJCWVuZGlmKCkKKwkJaWYgKF9zb3VyY2VQb3N0VW5kZWZzKQorCQkJbGlz
dCAoQVBQRU5EIF9jb21waWxlVW5kZWZpbml0aW9ucyAke19zb3VyY2VQb3N0VW5kZWZzfSkKKwkJ
ZW5kaWYoKQorCQlpZiAoX29wdGlvbl9QT1NUX1VOREVGUykKKwkJCWxpc3QgKEFQUEVORCBfY29t
cGlsZVVuZGVmaW5pdGlvbnMgJHtfb3B0aW9uX1BPU1RfVU5ERUZTfSkKKwkJZW5kaWYoKQorCQlm
b3JlYWNoIChfZGVmaW5pdGlvbiAke19jb21waWxlRGVmaW5pdGlvbnN9KQorCQkJaWYgKF9kZWZp
bml0aW9uIE1BVENIRVMgIl4oW2EtekEtWjAtOV9dKyk9KC4rKSQiKQorCQkJCWxpc3QgKEFQUEVO
RCBfY29udGVudHMgIiNkZWZpbmUgJHtDTUFLRV9NQVRDSF8xfSAke0NNQUtFX01BVENIXzJ9IikK
KwkJCQlsaXN0IChJTlNFUlQgX2NvbXBpbGVVbmRlZmluaXRpb25zIDAgIiR7Q01BS0VfTUFUQ0hf
MX0iKQorCQkJZWxzZSgpCisJCQkJbGlzdCAoQVBQRU5EIF9jb250ZW50cyAiI2RlZmluZSAke19k
ZWZpbml0aW9ufSIpCisJCQkJbGlzdCAoSU5TRVJUIF9jb21waWxlVW5kZWZpbml0aW9ucyAwICIk
e19kZWZpbml0aW9ufSIpCisJCQllbmRpZigpCisJCWVuZGZvcmVhY2goKQorCQlnZXRfZmlsZW5h
bWVfY29tcG9uZW50KF9zb3VyY2VGaWxlICIke19zb3VyY2VGaWxlfSIgQUJTT0xVVEUpCisJCWlm
IChXSU4zMikKKwkJCWZpbGUgKFRPX05BVElWRV9QQVRIICIke19zb3VyY2VGaWxlfSIgX3NvdXJj
ZUZpbGUpCisJCWVuZGlmKCkKKwkJbGlzdCAoQVBQRU5EIF9jb250ZW50cyAiI2luY2x1ZGUgXCIk
e19zb3VyY2VGaWxlfVwiIikKKwllbmRmb3JlYWNoKCkKKwlpZiAoX2NvbXBpbGVVbmRlZmluaXRp
b25zKQorCQljb3RpcmVfYXBwZW5kX3VuZGVmcyhfY29udGVudHMgJHtfY29tcGlsZVVuZGVmaW5p
dGlvbnN9KQorCQlzZXQgKF9jb21waWxlVW5kZWZpbml0aW9ucyAiIikKKwllbmRpZigpCisJaWYg
KF9vcHRpb25fTEFOR1VBR0UgQU5EIF9zb3VyY2VGaWxlcykKKwkJbGlzdCAoQVBQRU5EIF9jb250
ZW50cyAiI2VuZGlmIikKKwllbmRpZigpCisJaWYgKF9vcHRpb25fRVBJTE9HVUUpCisJCWxpc3Qg
KEFQUEVORCBfY29udGVudHMgJHtfb3B0aW9uX0VQSUxPR1VFfSkKKwllbmRpZigpCisJbGlzdCAo
QVBQRU5EIF9jb250ZW50cyAiIikKKwlzdHJpbmcgKFJFUExBQ0UgIjsiICJcbiIgX2NvbnRlbnRz
ICIke19jb250ZW50c30iKQorCWlmIChDT1RJUkVfVkVSQk9TRSkKKwkJbWVzc2FnZSAoIiR7X2Nv
bnRlbnRzfSIpCisJZW5kaWYoKQorCWNvdGlyZV93cml0ZV9maWxlKCIke19vcHRpb25fTEFOR1VB
R0V9IiAiJHtfdW5pdHlGaWxlfSIgIiR7X2NvbnRlbnRzfSIgVFJVRSkKK2VuZGZ1bmN0aW9uKCkK
KworZnVuY3Rpb24gKGNvdGlyZV9nZW5lcmF0ZV9wcmVmaXhfaGVhZGVyIF9wcmVmaXhGaWxlKQor
CXNldChfb3B0aW9ucyAiIikKKwlzZXQoX29uZVZhbHVlQXJncyBMQU5HVUFHRSBDT01QSUxFUl9F
WEVDVVRBQkxFIENPTVBJTEVSX0lEIENPTVBJTEVSX1ZFUlNJT04gSU5DTFVERV9TWVNURU1fRkxB
RykKKwlzZXQoX211bHRpVmFsdWVBcmdzIERFUEVORFMgQ09NUElMRV9ERUZJTklUSU9OUyBDT01Q
SUxFX0ZMQUdTCisJCUlOQ0xVREVfRElSRUNUT1JJRVMgU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJ
RVMgSUdOT1JFX1BBVEggSU5DTFVERV9QQVRIIElHTk9SRV9FWFRFTlNJT05TKQorCWNtYWtlX3Bh
cnNlX2FyZ3VtZW50cyhfb3B0aW9uICIke19vcHRpb25zfSIgIiR7X29uZVZhbHVlQXJnc30iICIk
e19tdWx0aVZhbHVlQXJnc30iICR7QVJHTn0pCisJaWYgKF9vcHRpb25fREVQRU5EUykKKwkJY290
aXJlX2NoZWNrX2ZpbGVfdXBfdG9fZGF0ZShfcHJlZml4RmlsZUlzVXBUb0RhdGUgIiR7X3ByZWZp
eEZpbGV9IiAke19vcHRpb25fREVQRU5EU30pCisJCWlmIChfcHJlZml4RmlsZUlzVXBUb0RhdGUp
CisJCQlzZXQgKF91bnBhcnNlZExpbmVzRmlsZSAiJHtfcHJlZml4RmlsZX0ubG9nIikKKwkJCWZp
bGUgKFdSSVRFICIke191bnBhcnNlZExpbmVzRmlsZX0iICIiKQorCQkJcmV0dXJuKCkKKwkJZW5k
aWYoKQorCWVuZGlmKCkKKwlzZXQgKF9wcm9sb2d1ZSAiIikKKwlzZXQgKF9lcGlsb2d1ZSAiIikK
KwlpZiAoX29wdGlvbl9DT01QSUxFUl9JRCBNQVRDSEVTICJDbGFuZyIpCisJCXNldCAoX3Byb2xv
Z3VlICIjcHJhZ21hIGNsYW5nIHN5c3RlbV9oZWFkZXIiKQorCWVsc2VpZiAoX29wdGlvbl9DT01Q
SUxFUl9JRCBNQVRDSEVTICJHTlUiKQorCQlzZXQgKF9wcm9sb2d1ZSAiI3ByYWdtYSBHQ0Mgc3lz
dGVtX2hlYWRlciIpCisJZWxzZWlmIChfb3B0aW9uX0NPTVBJTEVSX0lEIE1BVENIRVMgIk1TVkMi
KQorCQlzZXQgKF9wcm9sb2d1ZSAiI3ByYWdtYSB3YXJuaW5nKHB1c2gsIDApIikKKwkJc2V0IChf
ZXBpbG9ndWUgIiNwcmFnbWEgd2FybmluZyhwb3ApIikKKwllbHNlaWYgKF9vcHRpb25fQ09NUElM
RVJfSUQgTUFUQ0hFUyAiSW50ZWwiKQorCQkjIEludGVsIGNvbXBpbGVyIHJlcXVpcmVzIGhkcnN0
b3AgcHJhZ21hIHRvIHN0b3AgZ2VuZXJhdGluZyBQQ0ggZmlsZQorCQlzZXQgKF9lcGlsb2d1ZSAi
I3ByYWdtYSBoZHJzdG9wIikKKwllbmRpZigpCisJc2V0IChfc291cmNlRmlsZXMgJHtfb3B0aW9u
X1VOUEFSU0VEX0FSR1VNRU5UU30pCisJY290aXJlX3NjYW5faW5jbHVkZXMoX3NlbGVjdGVkSGVh
ZGVycyAke19zb3VyY2VGaWxlc30KKwkJTEFOR1VBR0UgIiR7X29wdGlvbl9MQU5HVUFHRX0iCisJ
CUNPTVBJTEVSX0VYRUNVVEFCTEUgIiR7X29wdGlvbl9DT01QSUxFUl9FWEVDVVRBQkxFfSIKKwkJ
Q09NUElMRVJfSUQgIiR7X29wdGlvbl9DT01QSUxFUl9JRH0iCisJCUNPTVBJTEVSX1ZFUlNJT04g
IiR7X29wdGlvbl9DT01QSUxFUl9WRVJTSU9OfSIKKwkJQ09NUElMRV9ERUZJTklUSU9OUyAke19v
cHRpb25fQ09NUElMRV9ERUZJTklUSU9OU30KKwkJQ09NUElMRV9GTEFHUyAke19vcHRpb25fQ09N
UElMRV9GTEFHU30KKwkJSU5DTFVERV9ESVJFQ1RPUklFUyAke19vcHRpb25fSU5DTFVERV9ESVJF
Q1RPUklFU30KKwkJSU5DTFVERV9TWVNURU1fRkxBRyAke19vcHRpb25fSU5DTFVERV9TWVNURU1f
RkxBR30KKwkJU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVMgJHtfb3B0aW9uX1NZU1RFTV9JTkNM
VURFX0RJUkVDVE9SSUVTfQorCQlJR05PUkVfUEFUSCAke19vcHRpb25fSUdOT1JFX1BBVEh9CisJ
CUlOQ0xVREVfUEFUSCAke19vcHRpb25fSU5DTFVERV9QQVRIfQorCQlJR05PUkVfRVhURU5TSU9O
UyAke19vcHRpb25fSUdOT1JFX0VYVEVOU0lPTlN9CisJCVVOUEFSU0VEX0xJTkVTIF91bnBhcnNl
ZExpbmVzKQorCWNvdGlyZV9nZW5lcmF0ZV91bml0eV9zb3VyY2UoIiR7X3ByZWZpeEZpbGV9Igor
CQlQUk9MT0dVRSAke19wcm9sb2d1ZX0gRVBJTE9HVUUgJHtfZXBpbG9ndWV9IExBTkdVQUdFICIk
e19vcHRpb25fTEFOR1VBR0V9IiAke19zZWxlY3RlZEhlYWRlcnN9KQorCXNldCAoX3VucGFyc2Vk
TGluZXNGaWxlICIke19wcmVmaXhGaWxlfS5sb2ciKQorCWlmIChfdW5wYXJzZWRMaW5lcykKKwkJ
aWYgKENPVElSRV9WRVJCT1NFIE9SIE5PVCBfc2VsZWN0ZWRIZWFkZXJzKQorCQkJbGlzdCAoTEVO
R1RIIF91bnBhcnNlZExpbmVzIF9za2lwcGVkTGluZUNvdW50KQorCQkJZmlsZSAoUkVMQVRJVkVf
UEFUSCBfdW5wYXJzZWRMaW5lc0ZpbGVSZWxQYXRoICIke0NNQUtFX0JJTkFSWV9ESVJ9IiAiJHtf
dW5wYXJzZWRMaW5lc0ZpbGV9IikKKwkJCW1lc3NhZ2UgKFNUQVRVUyAiJHtfc2tpcHBlZExpbmVD
b3VudH0gbGluZShzKSBza2lwcGVkLCBzZWUgJHtfdW5wYXJzZWRMaW5lc0ZpbGVSZWxQYXRofSIp
CisJCWVuZGlmKCkKKwkJc3RyaW5nIChSRVBMQUNFICI7IiAiXG4iIF91bnBhcnNlZExpbmVzICIk
e191bnBhcnNlZExpbmVzfSIpCisJZW5kaWYoKQorCWZpbGUgKFdSSVRFICIke191bnBhcnNlZExp
bmVzRmlsZX0iICIke191bnBhcnNlZExpbmVzfSIpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9u
IChjb3RpcmVfYWRkX21ha2VkZXBfZmxhZ3MgX2xhbmd1YWdlIF9jb21waWxlcklEIF9jb21waWxl
clZlcnNpb24gX2ZsYWdzVmFyKQorCXNldCAoX2ZsYWdzICR7JHtfZmxhZ3NWYXJ9fSkKKwlpZiAo
X2NvbXBpbGVySUQgTUFUQ0hFUyAiTVNWQyIpCisJCSMgY2wuZXhlIG9wdGlvbnMgdXNlZAorCQkj
IC9ub2xvZ28gc3VwcHJlc3NlcyBkaXNwbGF5IG9mIHNpZ24tb24gYmFubmVyCisJCSMgL1RDIHRy
ZWF0IGFsbCBmaWxlcyBuYW1lZCBvbiB0aGUgY29tbWFuZCBsaW5lIGFzIEMgc291cmNlIGZpbGVz
CisJCSMgL1RQIHRyZWF0IGFsbCBmaWxlcyBuYW1lZCBvbiB0aGUgY29tbWFuZCBsaW5lIGFzIEMr
KyBzb3VyY2UgZmlsZXMKKwkJIyAvRVAgcHJlcHJvY2VzcyB0byBzdGRvdXQgd2l0aG91dCAjbGlu
ZSBkaXJlY3RpdmVzCisJCSMgL3Nob3dJbmNsdWRlcyBsaXN0IGluY2x1ZGUgZmlsZXMKKwkJc2V0
IChfc291cmNlRmlsZVR5cGVDICIvVEMiKQorCQlzZXQgKF9zb3VyY2VGaWxlVHlwZUNYWCAiL1RQ
IikKKwkJaWYgKF9mbGFncykKKwkJCSMgYXBwZW5kIHRvIGxpc3QKKwkJCWxpc3QgKEFQUEVORCBf
ZmxhZ3MgL25vbG9nbyAiJHtfc291cmNlRmlsZVR5cGUke19sYW5ndWFnZX19IiAvRVAgL3Nob3dJ
bmNsdWRlcykKKwkJZWxzZSgpCisJCQkjIHJldHVybiBhcyBhIGZsYWcgc3RyaW5nCisJCQlzZXQg
KF9mbGFncyAiJHtfc291cmNlRmlsZVR5cGUke19sYW5ndWFnZX19IC9FUCAvc2hvd0luY2x1ZGVz
IikKKwkJZW5kaWYoKQorCWVsc2VpZiAoX2NvbXBpbGVySUQgTUFUQ0hFUyAiR05VIikKKwkJIyBH
Q0Mgb3B0aW9ucyB1c2VkCisJCSMgLUggcHJpbnQgdGhlIG5hbWUgb2YgZWFjaCBoZWFkZXIgZmls
ZSB1c2VkCisJCSMgLUUgaW52b2tlIHByZXByb2Nlc3NvcgorCQkjIC1mZGlyZWN0aXZlcy1vbmx5
IGRvIG5vdCBleHBhbmQgbWFjcm9zLCByZXF1aXJlcyBHQ0MgPj0gNC4zCisJCWlmIChfZmxhZ3Mp
CisJCQkjIGFwcGVuZCB0byBsaXN0CisJCQlsaXN0IChBUFBFTkQgX2ZsYWdzIC1IIC1FKQorCQkJ
aWYgKE5PVCAiJHtfY29tcGlsZXJWZXJzaW9ufSIgVkVSU0lPTl9MRVNTICI0LjMuMCIpCisJCQkJ
bGlzdCAoQVBQRU5EIF9mbGFncyAiLWZkaXJlY3RpdmVzLW9ubHkiKQorCQkJZW5kaWYoKQorCQll
bHNlKCkKKwkJCSMgcmV0dXJuIGFzIGEgZmxhZyBzdHJpbmcKKwkJCXNldCAoX2ZsYWdzICItSCAt
RSIpCisJCQlpZiAoTk9UICIke19jb21waWxlclZlcnNpb259IiBWRVJTSU9OX0xFU1MgIjQuMy4w
IikKKwkJCQlzZXQgKF9mbGFncyAiJHtfZmxhZ3N9IC1mZGlyZWN0aXZlcy1vbmx5IikKKwkJCWVu
ZGlmKCkKKwkJZW5kaWYoKQorCWVsc2VpZiAoX2NvbXBpbGVySUQgTUFUQ0hFUyAiQ2xhbmciKQor
CQkjIENsYW5nIG9wdGlvbnMgdXNlZAorCQkjIC1IIHByaW50IHRoZSBuYW1lIG9mIGVhY2ggaGVh
ZGVyIGZpbGUgdXNlZAorCQkjIC1FIGludm9rZSBwcmVwcm9jZXNzb3IKKwkJaWYgKF9mbGFncykK
KwkJCSMgYXBwZW5kIHRvIGxpc3QKKwkJCWxpc3QgKEFQUEVORCBfZmxhZ3MgLUggLUUpCisJCWVs
c2UoKQorCQkJIyByZXR1cm4gYXMgYSBmbGFnIHN0cmluZworCQkJc2V0IChfZmxhZ3MgIi1IIC1F
IikKKwkJZW5kaWYoKQorCWVsc2VpZiAoX2NvbXBpbGVySUQgTUFUQ0hFUyAiSW50ZWwiKQorCQlp
ZiAoV0lOMzIpCisJCQkjIFdpbmRvd3MgSW50ZWwgb3B0aW9ucyB1c2VkCisJCQkjIC9ub2xvZ28g
ZG8gbm90IGRpc3BsYXkgY29tcGlsZXIgdmVyc2lvbiBpbmZvcm1hdGlvbgorCQkJIyAvUUggZGlz
cGxheSB0aGUgaW5jbHVkZSBmaWxlIG9yZGVyCisJCQkjIC9FUCBwcmVwcm9jZXNzIHRvIHN0ZG91
dCwgb21pdHRpbmcgI2xpbmUgZGlyZWN0aXZlcworCQkJIyAvVEMgcHJvY2VzcyBhbGwgc291cmNl
IG9yIHVucmVjb2duaXplZCBmaWxlIHR5cGVzIGFzIEMgc291cmNlIGZpbGVzCisJCQkjIC9UUCBw
cm9jZXNzIGFsbCBzb3VyY2Ugb3IgdW5yZWNvZ25pemVkIGZpbGUgdHlwZXMgYXMgQysrIHNvdXJj
ZSBmaWxlcworCQkJc2V0IChfc291cmNlRmlsZVR5cGVDICIvVEMiKQorCQkJc2V0IChfc291cmNl
RmlsZVR5cGVDWFggIi9UUCIpCisJCQlpZiAoX2ZsYWdzKQorCQkJCSMgYXBwZW5kIHRvIGxpc3QK
KwkJCQlsaXN0IChBUFBFTkQgX2ZsYWdzIC9ub2xvZ28gIiR7X3NvdXJjZUZpbGVUeXBlJHtfbGFu
Z3VhZ2V9fSIgL0VQIC9RSCkKKwkJCWVsc2UoKQorCQkJCSMgcmV0dXJuIGFzIGEgZmxhZyBzdHJp
bmcKKwkJCQlzZXQgKF9mbGFncyAiJHtfc291cmNlRmlsZVR5cGUke19sYW5ndWFnZX19IC9FUCAv
UUgiKQorCQkJZW5kaWYoKQorCQllbHNlKCkKKwkJCSMgTGludXggLyBNYWMgT1MgWCBJbnRlbCBv
cHRpb25zIHVzZWQKKwkJCSMgLUggcHJpbnQgdGhlIG5hbWUgb2YgZWFjaCBoZWFkZXIgZmlsZSB1
c2VkCisJCQkjIC1FUCBwcmVwcm9jZXNzIHRvIHN0ZG91dCwgb21pdHRpbmcgI2xpbmUgZGlyZWN0
aXZlcworCQkJIyAtS2MrKyBwcm9jZXNzIGFsbCBzb3VyY2Ugb3IgdW5yZWNvZ25pemVkIGZpbGUg
dHlwZXMgYXMgQysrIHNvdXJjZSBmaWxlcworCQkJaWYgKF9mbGFncykKKwkJCQkjIGFwcGVuZCB0
byBsaXN0CisJCQkJaWYgKCIke19sYW5ndWFnZX0iIFNUUkVRVUFMICJDWFgiKQorCQkJCQlsaXN0
IChBUFBFTkQgX2ZsYWdzIC1LYysrKQorCQkJCWVuZGlmKCkKKwkJCQlsaXN0IChBUFBFTkQgX2Zs
YWdzIC1IIC1FUCkKKwkJCWVsc2UoKQorCQkJCSMgcmV0dXJuIGFzIGEgZmxhZyBzdHJpbmcKKwkJ
CQlpZiAoIiR7X2xhbmd1YWdlfSIgU1RSRVFVQUwgIkNYWCIpCisJCQkJCXNldCAoX2ZsYWdzICIt
S2MrKyAiKQorCQkJCWVuZGlmKCkKKwkJCQlzZXQgKF9mbGFncyAiJHtfZmxhZ3N9LUggLUVQIikK
KwkJCWVuZGlmKCkKKwkJZW5kaWYoKQorCWVsc2UoKQorCQltZXNzYWdlIChGQVRBTF9FUlJPUiAi
Y290aXJlOiB1bnN1cHBvcnRlZCAke19sYW5ndWFnZX0gY29tcGlsZXIgJHtfY29tcGlsZXJJRH0g
dmVyc2lvbiAke19jb21waWxlclZlcnNpb259LiIpCisJZW5kaWYoKQorCXNldCAoJHtfZmxhZ3NW
YXJ9ICR7X2ZsYWdzfSBQQVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChj
b3RpcmVfYWRkX3BjaF9jb21waWxhdGlvbl9mbGFncyBfbGFuZ3VhZ2UgX2NvbXBpbGVySUQgX2Nv
bXBpbGVyVmVyc2lvbiBfcHJlZml4RmlsZSBfcGNoRmlsZSBfaG9zdEZpbGUgX2ZsYWdzVmFyKQor
CXNldCAoX2ZsYWdzICR7JHtfZmxhZ3NWYXJ9fSkKKwlpZiAoX2NvbXBpbGVySUQgTUFUQ0hFUyAi
TVNWQyIpCisJCWZpbGUgKFRPX05BVElWRV9QQVRIICIke19wcmVmaXhGaWxlfSIgX3ByZWZpeEZp
bGVOYXRpdmUpCisJCWZpbGUgKFRPX05BVElWRV9QQVRIICIke19wY2hGaWxlfSIgX3BjaEZpbGVO
YXRpdmUpCisJCWZpbGUgKFRPX05BVElWRV9QQVRIICIke19ob3N0RmlsZX0iIF9ob3N0RmlsZU5h
dGl2ZSkKKwkJIyBjbC5leGUgb3B0aW9ucyB1c2VkCisJCSMgL1ljIGNyZWF0ZXMgYSBwcmVjb21w
aWxlZCBoZWFkZXIgZmlsZQorCQkjIC9GcCBzcGVjaWZpZXMgcHJlY29tcGlsZWQgaGVhZGVyIGJp
bmFyeSBmaWxlIG5hbWUKKwkJIyAvRkkgZm9yY2VzIGluY2x1c2lvbiBvZiBmaWxlCisJCSMgL1RD
IHRyZWF0IGFsbCBmaWxlcyBuYW1lZCBvbiB0aGUgY29tbWFuZCBsaW5lIGFzIEMgc291cmNlIGZp
bGVzCisJCSMgL1RQIHRyZWF0IGFsbCBmaWxlcyBuYW1lZCBvbiB0aGUgY29tbWFuZCBsaW5lIGFz
IEMrKyBzb3VyY2UgZmlsZXMKKwkJIyAvWnMgc3ludGF4IGNoZWNrIG9ubHkKKwkJc2V0IChfc291
cmNlRmlsZVR5cGVDICIvVEMiKQorCQlzZXQgKF9zb3VyY2VGaWxlVHlwZUNYWCAiL1RQIikKKwkJ
aWYgKF9mbGFncykKKwkJCSMgYXBwZW5kIHRvIGxpc3QKKwkJCWxpc3QgKEFQUEVORCBfZmxhZ3Mg
L25vbG9nbyAiJHtfc291cmNlRmlsZVR5cGUke19sYW5ndWFnZX19IgorCQkJCSIvWWMke19wcmVm
aXhGaWxlTmF0aXZlfSIgIi9GcCR7X3BjaEZpbGVOYXRpdmV9IiAiL0ZJJHtfcHJlZml4RmlsZU5h
dGl2ZX0iIC9acyAiJHtfaG9zdEZpbGVOYXRpdmV9IikKKwkJZWxzZSgpCisJCQkjIHJldHVybiBh
cyBhIGZsYWcgc3RyaW5nCisJCQlzZXQgKF9mbGFncyAiL1ljXCIke19wcmVmaXhGaWxlTmF0aXZl
fVwiIC9GcFwiJHtfcGNoRmlsZU5hdGl2ZX1cIiAvRklcIiR7X3ByZWZpeEZpbGVOYXRpdmV9XCIi
KQorCQllbmRpZigpCisJZWxzZWlmIChfY29tcGlsZXJJRCBNQVRDSEVTICJHTlV8Q2xhbmciKQor
CQkjIEdDQyAvIENsYW5nIG9wdGlvbnMgdXNlZAorCQkjIC14IHNwZWNpZnkgdGhlIHNvdXJjZSBs
YW5ndWFnZQorCQkjIC1jIGNvbXBpbGUgYnV0IGRvIG5vdCBsaW5rCisJCSMgLW8gcGxhY2Ugb3V0
cHV0IGluIGZpbGUKKwkJIyBub3RlIHRoYXQgd2UgY2Fubm90IHVzZSAtdyB0byBzdXBwcmVzcyBh
bGwgd2FybmluZ3MgdXBvbiBwcmUtY29tcGlsaW5nLCBiZWNhdXNlIHR1cm5pbmcgb2ZmIGEgd2Fy
bmluZyBtYXkKKwkJIyBhbHRlciBjb21waWxlIGZsYWdzIGFzIGEgc2lkZSBlZmZlY3QgKGUuZy4s
IC1Xd3JpdGUtc3RyaW5nIGltcGxpZXMgLWZjb25zdC1zdHJpbmdzKQorCQlzZXQgKF94TGFuZ3Vh
Z2VfQyAiYy1oZWFkZXIiKQorCQlzZXQgKF94TGFuZ3VhZ2VfQ1hYICJjKystaGVhZGVyIikKKwkJ
aWYgKF9mbGFncykKKwkJCSMgYXBwZW5kIHRvIGxpc3QKKwkJCWxpc3QgKEFQUEVORCBfZmxhZ3Mg
Ii14IiAiJHtfeExhbmd1YWdlXyR7X2xhbmd1YWdlfX0iICItYyIgIiR7X3ByZWZpeEZpbGV9IiAt
byAiJHtfcGNoRmlsZX0iKQorCQllbHNlKCkKKwkJCSMgcmV0dXJuIGFzIGEgZmxhZyBzdHJpbmcK
KwkJCXNldCAoX2ZsYWdzICIteCAke194TGFuZ3VhZ2VfJHtfbGFuZ3VhZ2V9fSAtYyBcIiR7X3By
ZWZpeEZpbGV9XCIgLW8gXCIke19wY2hGaWxlfVwiIikKKwkJZW5kaWYoKQorCWVsc2VpZiAoX2Nv
bXBpbGVySUQgTUFUQ0hFUyAiSW50ZWwiKQorCQlpZiAoV0lOMzIpCisJCQlmaWxlIChUT19OQVRJ
VkVfUEFUSCAiJHtfcHJlZml4RmlsZX0iIF9wcmVmaXhGaWxlTmF0aXZlKQorCQkJZmlsZSAoVE9f
TkFUSVZFX1BBVEggIiR7X3BjaEZpbGV9IiBfcGNoRmlsZU5hdGl2ZSkKKwkJCWZpbGUgKFRPX05B
VElWRV9QQVRIICIke19ob3N0RmlsZX0iIF9ob3N0RmlsZU5hdGl2ZSkKKwkJCSMgV2luZG93cyBJ
bnRlbCBvcHRpb25zIHVzZWQKKwkJCSMgL25vbG9nbyBkbyBub3QgZGlzcGxheSBjb21waWxlciB2
ZXJzaW9uIGluZm9ybWF0aW9uCisJCQkjIC9ZYyBjcmVhdGUgYSBwcmVjb21waWxlZCBoZWFkZXIg
KFBDSCkgZmlsZQorCQkJIyAvRnAgc3BlY2lmeSBhIHBhdGggb3IgZmlsZSBuYW1lIGZvciBwcmVj
b21waWxlZCBoZWFkZXIgZmlsZXMKKwkJCSMgL0ZJIHRlbGxzIHRoZSBwcmVwcm9jZXNzb3IgdG8g
aW5jbHVkZSBhIHNwZWNpZmllZCBmaWxlIG5hbWUgYXMgdGhlIGhlYWRlciBmaWxlCisJCQkjIC9U
QyBwcm9jZXNzIGFsbCBzb3VyY2Ugb3IgdW5yZWNvZ25pemVkIGZpbGUgdHlwZXMgYXMgQyBzb3Vy
Y2UgZmlsZXMKKwkJCSMgL1RQIHByb2Nlc3MgYWxsIHNvdXJjZSBvciB1bnJlY29nbml6ZWQgZmls
ZSB0eXBlcyBhcyBDKysgc291cmNlIGZpbGVzCisJCQkjIC9acyBzeW50YXggY2hlY2sgb25seQor
CQkJIyAvV3BjaC1tZXNzYWdlcyBlbmFibGUgZGlhZ25vc3RpY3MgcmVsYXRlZCB0byBwcmUtY29t
cGlsZWQgaGVhZGVycyAocmVxdWlyZXMgSW50ZWwgWEUgMjAxMyBVcGRhdGUgMikKKwkJCXNldCAo
X3NvdXJjZUZpbGVUeXBlQyAiL1RDIikKKwkJCXNldCAoX3NvdXJjZUZpbGVUeXBlQ1hYICIvVFAi
KQorCQkJaWYgKF9mbGFncykKKwkJCQkjIGFwcGVuZCB0byBsaXN0CisJCQkJbGlzdCAoQVBQRU5E
IF9mbGFncyAvbm9sb2dvICIke19zb3VyY2VGaWxlVHlwZSR7X2xhbmd1YWdlfX0iCisJCQkJCSIv
WWMiICIvRnAke19wY2hGaWxlTmF0aXZlfSIgIi9GSSR7X3ByZWZpeEZpbGVOYXRpdmV9IiAvWnMg
IiR7X2hvc3RGaWxlTmF0aXZlfSIpCisJCQkJaWYgKE5PVCAiJHtfY29tcGlsZXJWZXJzaW9ufSIg
VkVSU0lPTl9MRVNTICIxMy4xLjAiKQorCQkJCQlsaXN0IChBUFBFTkQgX2ZsYWdzICIvV3BjaC1t
ZXNzYWdlcyIpCisJCQkJZW5kaWYoKQorCQkJZWxzZSgpCisJCQkJIyByZXR1cm4gYXMgYSBmbGFn
IHN0cmluZworCQkJCXNldCAoX2ZsYWdzICIvWWMgL0ZwXCIke19wY2hGaWxlTmF0aXZlfVwiIC9G
SVwiJHtfcHJlZml4RmlsZU5hdGl2ZX1cIiIpCisJCQkJaWYgKE5PVCAiJHtfY29tcGlsZXJWZXJz
aW9ufSIgVkVSU0lPTl9MRVNTICIxMy4xLjAiKQorCQkJCQlzZXQgKF9mbGFncyAiJHtfZmxhZ3N9
IC9XcGNoLW1lc3NhZ2VzIikKKwkJCQllbmRpZigpCisJCQllbmRpZigpCisJCWVsc2UoKQorCQkJ
IyBMaW51eCAvIE1hYyBPUyBYIEludGVsIG9wdGlvbnMgdXNlZAorCQkJIyAtcGNoLWRpciBsb2Nh
dGlvbiBmb3IgcHJlY29tcGlsZWQgaGVhZGVyIGZpbGVzCisJCQkjIC1wY2gtY3JlYXRlIG5hbWUg
b2YgdGhlIHByZWNvbXBpbGVkIGhlYWRlciAoUENIKSB0byBjcmVhdGUKKwkJCSMgLUtjKysgcHJv
Y2VzcyBhbGwgc291cmNlIG9yIHVucmVjb2duaXplZCBmaWxlIHR5cGVzIGFzIEMrKyBzb3VyY2Ug
ZmlsZXMKKwkJCSMgLWZzeW50YXgtb25seSBjaGVjayBvbmx5IGZvciBjb3JyZWN0IHN5bnRheAor
CQkJIyAtV3BjaC1tZXNzYWdlcyBlbmFibGUgZGlhZ25vc3RpY3MgcmVsYXRlZCB0byBwcmUtY29t
cGlsZWQgaGVhZGVycyAocmVxdWlyZXMgSW50ZWwgWEUgMjAxMyBVcGRhdGUgMikKKwkJCWdldF9m
aWxlbmFtZV9jb21wb25lbnQoX3BjaERpciAiJHtfcGNoRmlsZX0iIFBBVEgpCisJCQlnZXRfZmls
ZW5hbWVfY29tcG9uZW50KF9wY2hOYW1lICIke19wY2hGaWxlfSIgTkFNRSkKKwkJCXNldCAoX3hM
YW5ndWFnZV9DICJjLWhlYWRlciIpCisJCQlzZXQgKF94TGFuZ3VhZ2VfQ1hYICJjKystaGVhZGVy
IikKKwkJCWlmIChfZmxhZ3MpCisJCQkJIyBhcHBlbmQgdG8gbGlzdAorCQkJCWlmICgiJHtfbGFu
Z3VhZ2V9IiBTVFJFUVVBTCAiQ1hYIikKKwkJCQkJbGlzdCAoQVBQRU5EIF9mbGFncyAtS2MrKykK
KwkJCQllbmRpZigpCisJCQkJbGlzdCAoQVBQRU5EIF9mbGFncyAiLWluY2x1ZGUiICIke19wcmVm
aXhGaWxlfSIgIi1wY2gtZGlyIiAiJHtfcGNoRGlyfSIgIi1wY2gtY3JlYXRlIiAiJHtfcGNoTmFt
ZX0iICItZnN5bnRheC1vbmx5IiAiJHtfaG9zdEZpbGV9IikKKwkJCQlpZiAoTk9UICIke19jb21w
aWxlclZlcnNpb259IiBWRVJTSU9OX0xFU1MgIjEzLjEuMCIpCisJCQkJCWxpc3QgKEFQUEVORCBf
ZmxhZ3MgIi1XcGNoLW1lc3NhZ2VzIikKKwkJCQllbmRpZigpCisJCQllbHNlKCkKKwkJCQkjIHJl
dHVybiBhcyBhIGZsYWcgc3RyaW5nCisJCQkJc2V0IChfZmxhZ3MgIi1pbmNsdWRlIFwiJHtfcHJl
Zml4RmlsZX1cIiAtcGNoLWRpciBcIiR7X3BjaERpcn1cIiAtcGNoLWNyZWF0ZSBcIiR7X3BjaE5h
bWV9XCIiKQorCQkJCWlmIChOT1QgIiR7X2NvbXBpbGVyVmVyc2lvbn0iIFZFUlNJT05fTEVTUyAi
MTMuMS4wIikKKwkJCQkJc2V0IChfZmxhZ3MgIiR7X2ZsYWdzfSAtV3BjaC1tZXNzYWdlcyIpCisJ
CQkJZW5kaWYoKQorCQkJZW5kaWYoKQorCQllbmRpZigpCisJZWxzZSgpCisJCW1lc3NhZ2UgKEZB
VEFMX0VSUk9SICJjb3RpcmU6IHVuc3VwcG9ydGVkICR7X2xhbmd1YWdlfSBjb21waWxlciAke19j
b21waWxlcklEfSB2ZXJzaW9uICR7X2NvbXBpbGVyVmVyc2lvbn0uIikKKwllbmRpZigpCisJc2V0
ICgke19mbGFnc1Zhcn0gJHtfZmxhZ3N9IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9uKCkKKwor
ZnVuY3Rpb24gKGNvdGlyZV9hZGRfcHJlZml4X3BjaF9pbmNsdXNpb25fZmxhZ3MgX2xhbmd1YWdl
IF9jb21waWxlcklEIF9jb21waWxlclZlcnNpb24gX3ByZWZpeEZpbGUgX3BjaEZpbGUgX2ZsYWdz
VmFyKQorCXNldCAoX2ZsYWdzICR7JHtfZmxhZ3NWYXJ9fSkKKwlpZiAoX2NvbXBpbGVySUQgTUFU
Q0hFUyAiTVNWQyIpCisJCWZpbGUgKFRPX05BVElWRV9QQVRIICIke19wcmVmaXhGaWxlfSIgX3By
ZWZpeEZpbGVOYXRpdmUpCisJCSMgY2wuZXhlIG9wdGlvbnMgdXNlZAorCQkjIC9ZdSB1c2VzIGEg
cHJlY29tcGlsZWQgaGVhZGVyIGZpbGUgZHVyaW5nIGJ1aWxkCisJCSMgL0ZwIHNwZWNpZmllcyBw
cmVjb21waWxlZCBoZWFkZXIgYmluYXJ5IGZpbGUgbmFtZQorCQkjIC9GSSBmb3JjZXMgaW5jbHVz
aW9uIG9mIGZpbGUKKwkJaWYgKF9wY2hGaWxlKQorCQkJZmlsZSAoVE9fTkFUSVZFX1BBVEggIiR7
X3BjaEZpbGV9IiBfcGNoRmlsZU5hdGl2ZSkKKwkJCWlmIChfZmxhZ3MpCisJCQkJIyBhcHBlbmQg
dG8gbGlzdAorCQkJCWxpc3QgKEFQUEVORCBfZmxhZ3MgIi9ZdSR7X3ByZWZpeEZpbGVOYXRpdmV9
IiAiL0ZwJHtfcGNoRmlsZU5hdGl2ZX0iICIvRkkke19wcmVmaXhGaWxlTmF0aXZlfSIpCisJCQll
bHNlKCkKKwkJCQkjIHJldHVybiBhcyBhIGZsYWcgc3RyaW5nCisJCQkJc2V0IChfZmxhZ3MgIi9Z
dVwiJHtfcHJlZml4RmlsZU5hdGl2ZX1cIiAvRnBcIiR7X3BjaEZpbGVOYXRpdmV9XCIgL0ZJXCIk
e19wcmVmaXhGaWxlTmF0aXZlfVwiIikKKwkJCWVuZGlmKCkKKwkJZWxzZSgpCisJCQkjIG5vIHBy
ZWNvbXBpbGVkIGhlYWRlciwgZm9yY2UgaW5jbHVzaW9uIG9mIHByZWZpeCBoZWFkZXIKKwkJCWlm
IChfZmxhZ3MpCisJCQkJIyBhcHBlbmQgdG8gbGlzdAorCQkJCWxpc3QgKEFQUEVORCBfZmxhZ3Mg
Ii9GSSR7X3ByZWZpeEZpbGVOYXRpdmV9IikKKwkJCWVsc2UoKQorCQkJCSMgcmV0dXJuIGFzIGEg
ZmxhZyBzdHJpbmcKKwkJCQlzZXQgKF9mbGFncyAiL0ZJXCIke19wcmVmaXhGaWxlTmF0aXZlfVwi
IikKKwkJCWVuZGlmKCkKKwkJZW5kaWYoKQorCWVsc2VpZiAoX2NvbXBpbGVySUQgTUFUQ0hFUyAi
R05VIikKKwkJIyBHQ0Mgb3B0aW9ucyB1c2VkCisJCSMgLWluY2x1ZGUgcHJvY2VzcyBpbmNsdWRl
IGZpbGUgYXMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHByaW1hcnkgc291cmNlIGZpbGUKKwkJIyAt
V2ludmFsaWQtcGNoIHdhcm5zIGlmIHByZWNvbXBpbGVkIGhlYWRlciBpcyBmb3VuZCBidXQgY2Fu
bm90IGJlIHVzZWQKKwkJIyBub3RlOiBjY2FjaGUgcmVxdWlyZXMgdGhlIC1pbmNsdWRlIGZsYWcg
dG8gYmUgdXNlZCBpbiBvcmRlciB0byBwcm9jZXNzIHByZWNvbXBpbGVkIGhlYWRlciBjb3JyZWN0
bHkKKwkJaWYgKF9mbGFncykKKwkJCSMgYXBwZW5kIHRvIGxpc3QKKwkJCWxpc3QgKEFQUEVORCBf
ZmxhZ3MgIi1XaW52YWxpZC1wY2giICItaW5jbHVkZSIgIiR7X3ByZWZpeEZpbGV9IikKKwkJZWxz
ZSgpCisJCQkjIHJldHVybiBhcyBhIGZsYWcgc3RyaW5nCisJCQlzZXQgKF9mbGFncyAiLVdpbnZh
bGlkLXBjaCAtaW5jbHVkZSBcIiR7X3ByZWZpeEZpbGV9XCIiKQorCQllbmRpZigpCisJZWxzZWlm
IChfY29tcGlsZXJJRCBNQVRDSEVTICJDbGFuZyIpCisJCSMgQ2xhbmcgb3B0aW9ucyB1c2VkCisJ
CSMgLWluY2x1ZGUgcHJvY2VzcyBpbmNsdWRlIGZpbGUgYXMgdGhlIGZpcnN0IGxpbmUgb2YgdGhl
IHByaW1hcnkgc291cmNlIGZpbGUKKwkJIyAtaW5jbHVkZS1wY2ggaW5jbHVkZSBwcmVjb21waWxl
ZCBoZWFkZXIgZmlsZQorCQkjIC1RdW51c2VkLWFyZ3VtZW50cyBkb24ndCBlbWl0IHdhcm5pbmcg
Zm9yIHVudXNlZCBkcml2ZXIgYXJndW1lbnRzCisJCSMgbm90ZTogY2NhY2hlIHJlcXVpcmVzIHRo
ZSAtaW5jbHVkZSBmbGFnIHRvIGJlIHVzZWQgaW4gb3JkZXIgdG8gcHJvY2VzcyBwcmVjb21waWxl
ZCBoZWFkZXIgY29ycmVjdGx5CisJCWlmIChfZmxhZ3MpCisJCQkjIGFwcGVuZCB0byBsaXN0CisJ
CQlsaXN0IChBUFBFTkQgX2ZsYWdzICItUXVudXNlZC1hcmd1bWVudHMiICItaW5jbHVkZSIgIiR7
X3ByZWZpeEZpbGV9IikKKwkJZWxzZSgpCisJCQkjIHJldHVybiBhcyBhIGZsYWcgc3RyaW5nCisJ
CQlzZXQgKF9mbGFncyAiLVF1bnVzZWQtYXJndW1lbnRzIC1pbmNsdWRlIFwiJHtfcHJlZml4Rmls
ZX1cIiIpCisJCWVuZGlmKCkKKwllbHNlaWYgKF9jb21waWxlcklEIE1BVENIRVMgIkludGVsIikK
KwkJaWYgKFdJTjMyKQorCQkJZmlsZSAoVE9fTkFUSVZFX1BBVEggIiR7X3ByZWZpeEZpbGV9IiBf
cHJlZml4RmlsZU5hdGl2ZSkKKwkJCSMgV2luZG93cyBJbnRlbCBvcHRpb25zIHVzZWQKKwkJCSMg
L1l1IHVzZSBhIHByZWNvbXBpbGVkIGhlYWRlciAoUENIKSBmaWxlCisJCQkjIC9GcCBzcGVjaWZ5
IGEgcGF0aCBvciBmaWxlIG5hbWUgZm9yIHByZWNvbXBpbGVkIGhlYWRlciBmaWxlcworCQkJIyAv
RkkgdGVsbHMgdGhlIHByZXByb2Nlc3NvciB0byBpbmNsdWRlIGEgc3BlY2lmaWVkIGZpbGUgbmFt
ZSBhcyB0aGUgaGVhZGVyIGZpbGUKKwkJCSMgL1dwY2gtbWVzc2FnZXMgZW5hYmxlIGRpYWdub3N0
aWNzIHJlbGF0ZWQgdG8gcHJlLWNvbXBpbGVkIGhlYWRlcnMgKHJlcXVpcmVzIEludGVsIFhFIDIw
MTMgVXBkYXRlIDIpCisJCQlpZiAoX3BjaEZpbGUpCisJCQkJZmlsZSAoVE9fTkFUSVZFX1BBVEgg
IiR7X3BjaEZpbGV9IiBfcGNoRmlsZU5hdGl2ZSkKKwkJCQlpZiAoX2ZsYWdzKQorCQkJCQkjIGFw
cGVuZCB0byBsaXN0CisJCQkJCWxpc3QgKEFQUEVORCBfZmxhZ3MgIi9ZdSIgIi9GcCR7X3BjaEZp
bGVOYXRpdmV9IiAiL0ZJJHtfcHJlZml4RmlsZU5hdGl2ZX0iKQorCQkJCQlpZiAoTk9UICIke19j
b21waWxlclZlcnNpb259IiBWRVJTSU9OX0xFU1MgIjEzLjEuMCIpCisJCQkJCQlsaXN0IChBUFBF
TkQgX2ZsYWdzICIvV3BjaC1tZXNzYWdlcyIpCisJCQkJCWVuZGlmKCkKKwkJCQllbHNlKCkKKwkJ
CQkJIyByZXR1cm4gYXMgYSBmbGFnIHN0cmluZworCQkJCQlzZXQgKF9mbGFncyAiL1l1IC9GcFwi
JHtfcGNoRmlsZU5hdGl2ZX1cIiAvRklcIiR7X3ByZWZpeEZpbGVOYXRpdmV9XCIiKQorCQkJCQlp
ZiAoTk9UICIke19jb21waWxlclZlcnNpb259IiBWRVJTSU9OX0xFU1MgIjEzLjEuMCIpCisJCQkJ
CQlzZXQgKF9mbGFncyAiJHtfZmxhZ3N9IC9XcGNoLW1lc3NhZ2VzIikKKwkJCQkJZW5kaWYoKQor
CQkJCWVuZGlmKCkKKwkJCWVsc2UoKQorCQkJCSMgbm8gcHJlY29tcGlsZWQgaGVhZGVyLCBmb3Jj
ZSBpbmNsdXNpb24gb2YgcHJlZml4IGhlYWRlcgorCQkJCWlmIChfZmxhZ3MpCisJCQkJCSMgYXBw
ZW5kIHRvIGxpc3QKKwkJCQkJbGlzdCAoQVBQRU5EIF9mbGFncyAiL0ZJJHtfcHJlZml4RmlsZU5h
dGl2ZX0iKQorCQkJCWVsc2UoKQorCQkJCQkjIHJldHVybiBhcyBhIGZsYWcgc3RyaW5nCisJCQkJ
CXNldCAoX2ZsYWdzICIvRklcIiR7X3ByZWZpeEZpbGVOYXRpdmV9XCIiKQorCQkJCWVuZGlmKCkK
KwkJCWVuZGlmKCkKKwkJZWxzZSgpCisJCQkjIExpbnV4IC8gTWFjIE9TIFggSW50ZWwgb3B0aW9u
cyB1c2VkCisJCQkjIC1wY2gtZGlyIGxvY2F0aW9uIGZvciBwcmVjb21waWxlZCBoZWFkZXIgZmls
ZXMKKwkJCSMgLXBjaC11c2UgbmFtZSBvZiB0aGUgcHJlY29tcGlsZWQgaGVhZGVyIChQQ0gpIHRv
IHVzZQorCQkJIyAtaW5jbHVkZSBwcm9jZXNzIGluY2x1ZGUgZmlsZSBhcyB0aGUgZmlyc3QgbGlu
ZSBvZiB0aGUgcHJpbWFyeSBzb3VyY2UgZmlsZQorCQkJIyAtV3BjaC1tZXNzYWdlcyBlbmFibGUg
ZGlhZ25vc3RpY3MgcmVsYXRlZCB0byBwcmUtY29tcGlsZWQgaGVhZGVycyAocmVxdWlyZXMgSW50
ZWwgWEUgMjAxMyBVcGRhdGUgMikKKwkJCWlmIChfcGNoRmlsZSkKKwkJCQlnZXRfZmlsZW5hbWVf
Y29tcG9uZW50KF9wY2hEaXIgIiR7X3BjaEZpbGV9IiBQQVRIKQorCQkJCWdldF9maWxlbmFtZV9j
b21wb25lbnQoX3BjaE5hbWUgIiR7X3BjaEZpbGV9IiBOQU1FKQorCQkJCWlmIChfZmxhZ3MpCisJ
CQkJCSMgYXBwZW5kIHRvIGxpc3QKKwkJCQkJbGlzdCAoQVBQRU5EIF9mbGFncyAiLWluY2x1ZGUi
ICIke19wcmVmaXhGaWxlfSIgIi1wY2gtZGlyIiAiJHtfcGNoRGlyfSIgIi1wY2gtdXNlIiAiJHtf
cGNoTmFtZX0iKQorCQkJCQlpZiAoTk9UICIke19jb21waWxlclZlcnNpb259IiBWRVJTSU9OX0xF
U1MgIjEzLjEuMCIpCisJCQkJCQlsaXN0IChBUFBFTkQgX2ZsYWdzICItV3BjaC1tZXNzYWdlcyIp
CisJCQkJCWVuZGlmKCkKKwkJCQllbHNlKCkKKwkJCQkJIyByZXR1cm4gYXMgYSBmbGFnIHN0cmlu
ZworCQkJCQlzZXQgKF9mbGFncyAiLWluY2x1ZGUgXCIke19wcmVmaXhGaWxlfVwiIC1wY2gtZGly
IFwiJHtfcGNoRGlyfVwiIC1wY2gtdXNlIFwiJHtfcGNoTmFtZX1cIiIpCisJCQkJCWlmIChOT1Qg
IiR7X2NvbXBpbGVyVmVyc2lvbn0iIFZFUlNJT05fTEVTUyAiMTMuMS4wIikKKwkJCQkJCXNldCAo
X2ZsYWdzICIke19mbGFnc30gLVdwY2gtbWVzc2FnZXMiKQorCQkJCQllbmRpZigpCisJCQkJZW5k
aWYoKQorCQkJZWxzZSgpCisJCQkJIyBubyBwcmVjb21waWxlZCBoZWFkZXIsIGZvcmNlIGluY2x1
c2lvbiBvZiBwcmVmaXggaGVhZGVyCisJCQkJaWYgKF9mbGFncykKKwkJCQkJIyBhcHBlbmQgdG8g
bGlzdAorCQkJCQlsaXN0IChBUFBFTkQgX2ZsYWdzICItaW5jbHVkZSIgIiR7X3ByZWZpeEZpbGV9
IikKKwkJCQllbHNlKCkKKwkJCQkJIyByZXR1cm4gYXMgYSBmbGFnIHN0cmluZworCQkJCQlzZXQg
KF9mbGFncyAiLWluY2x1ZGUgXCIke19wcmVmaXhGaWxlfVwiIikKKwkJCQllbmRpZigpCisJCQll
bmRpZigpCisJCWVuZGlmKCkKKwllbHNlKCkKKwkJbWVzc2FnZSAoRkFUQUxfRVJST1IgImNvdGly
ZTogdW5zdXBwb3J0ZWQgJHtfbGFuZ3VhZ2V9IGNvbXBpbGVyICR7X2NvbXBpbGVySUR9IHZlcnNp
b24gJHtfY29tcGlsZXJWZXJzaW9ufS4iKQorCWVuZGlmKCkKKwlzZXQgKCR7X2ZsYWdzVmFyfSAk
e19mbGFnc30gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJl
X3ByZWNvbXBpbGVfcHJlZml4X2hlYWRlciBfcHJlZml4RmlsZSBfcGNoRmlsZSBfaG9zdEZpbGUp
CisJc2V0KF9vcHRpb25zICIiKQorCXNldChfb25lVmFsdWVBcmdzIENPTVBJTEVSX0VYRUNVVEFC
TEUgQ09NUElMRVJfSUQgQ09NUElMRVJfVkVSU0lPTiBJTkNMVURFX1NZU1RFTV9GTEFHIExBTkdV
QUdFKQorCXNldChfbXVsdGlWYWx1ZUFyZ3MgQ09NUElMRV9ERUZJTklUSU9OUyBDT01QSUxFX0ZM
QUdTIElOQ0xVREVfRElSRUNUT1JJRVMgU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVMgU1lTKQor
CWNtYWtlX3BhcnNlX2FyZ3VtZW50cyhfb3B0aW9uICIke19vcHRpb25zfSIgIiR7X29uZVZhbHVl
QXJnc30iICIke19tdWx0aVZhbHVlQXJnc30iICR7QVJHTn0pCisJaWYgKE5PVCBfb3B0aW9uX0xB
TkdVQUdFKQorCQlzZXQgKF9vcHRpb25fTEFOR1VBR0UgIkNYWCIpCisJZW5kaWYoKQorCWlmIChO
T1QgX29wdGlvbl9DT01QSUxFUl9JRCkKKwkJc2V0IChfb3B0aW9uX0NPTVBJTEVSX0lEICIke0NN
QUtFXyR7X29wdGlvbl9MQU5HVUFHRX1fSUR9IikKKwllbmRpZigpCisJY290aXJlX2luaXRfY29t
cGlsZV9jbWQoX2NtZCAiJHtfb3B0aW9uX0xBTkdVQUdFfSIgIiR7X29wdGlvbl9DT01QSUxFUl9F
WEVDVVRBQkxFfSIgIiR7X29wdGlvbl9DT01QSUxFUl9BUkcxfSIpCisJY290aXJlX2FkZF9kZWZp
bml0aW9uc190b19jbWQoX2NtZCAiJHtfb3B0aW9uX0xBTkdVQUdFfSIgJHtfb3B0aW9uX0NPTVBJ
TEVfREVGSU5JVElPTlN9KQorCWNvdGlyZV9hZGRfY29tcGlsZV9mbGFnc190b19jbWQoX2NtZCAk
e19vcHRpb25fQ09NUElMRV9GTEFHU30pCisJY290aXJlX2FkZF9pbmNsdWRlc190b19jbWQoX2Nt
ZCAiJHtfb3B0aW9uX0xBTkdVQUdFfSIgIiR7X29wdGlvbl9JTkNMVURFX1NZU1RFTV9GTEFHfSIg
X29wdGlvbl9JTkNMVURFX0RJUkVDVE9SSUVTIF9vcHRpb25fU1lTVEVNX0lOQ0xVREVfRElSRUNU
T1JJRVMpCisJY290aXJlX2FkZF9mcmFtZXdvcmtzX3RvX2NtZChfY21kICIke19vcHRpb25fTEFO
R1VBR0V9IiAke19vcHRpb25fSU5DTFVERV9ESVJFQ1RPUklFU30pCisJY290aXJlX2FkZF9wY2hf
Y29tcGlsYXRpb25fZmxhZ3MoCisJCSIke19vcHRpb25fTEFOR1VBR0V9IiAiJHtfb3B0aW9uX0NP
TVBJTEVSX0lEfSIgIiR7X29wdGlvbl9DT01QSUxFUl9WRVJTSU9OfSIKKwkJIiR7X3ByZWZpeEZp
bGV9IiAiJHtfcGNoRmlsZX0iICIke19ob3N0RmlsZX0iIF9jbWQpCisJaWYgKENPVElSRV9WRVJC
T1NFKQorCQltZXNzYWdlIChTVEFUVVMgImV4ZWN1dGVfcHJvY2VzczogJHtfY21kfSIpCisJZW5k
aWYoKQorCWlmIChfb3B0aW9uX0NPTVBJTEVSX0lEIE1BVENIRVMgIk1TVkMiKQorCQlpZiAoQ09U
SVJFX0RFQlVHKQorCQkJbWVzc2FnZSAoU1RBVFVTICJjbGVhcmluZyBWU19VTklDT0RFX09VVFBV
VCIpCisJCWVuZGlmKCkKKwkJIyBjbC5leGUgbWVzc2VzIHdpdGggdGhlIG91dHB1dCBzdHJlYW1z
IHVubGVzcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgVlNfVU5JQ09ERV9PVVRQVVQgaXMgY2xl
YXJlZAorCQl1bnNldCAoRU5We1ZTX1VOSUNPREVfT1VUUFVUfSkKKwllbmRpZigpCisJZXhlY3V0
ZV9wcm9jZXNzKAorCQlDT01NQU5EICR7X2NtZH0KKwkJV09SS0lOR19ESVJFQ1RPUlkgIiR7Q01B
S0VfQ1VSUkVOVF9TT1VSQ0VfRElSfSIKKwkJUkVTVUxUX1ZBUklBQkxFIF9yZXN1bHQpCisJaWYg
KF9yZXN1bHQpCisJCW1lc3NhZ2UgKEZBVEFMX0VSUk9SICJjb3RpcmU6IGVycm9yICR7X3Jlc3Vs
dH0gcHJlY29tcGlsaW5nICR7X3ByZWZpeEZpbGV9LiIpCisJZW5kaWYoKQorZW5kZnVuY3Rpb24o
KQorCitmdW5jdGlvbiAoY290aXJlX2NoZWNrX3ByZWNvbXBpbGVkX2hlYWRlcl9zdXBwb3J0IF9s
YW5ndWFnZSBfdGFyZ2V0U291cmNlRGlyIF90YXJnZXQgX21zZ1ZhcikKKwlzZXQgKF91bnN1cHBv
cnRlZENvbXBpbGVyCisJCSJQcmVjb21waWxlZCBoZWFkZXJzIG5vdCBzdXBwb3J0ZWQgZm9yICR7
X2xhbmd1YWdlfSBjb21waWxlciAke0NNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9JRH0iKQor
CWlmIChDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfSUQgTUFUQ0hFUyAiTVNWQyIpCisJCSMg
c3VwcG9ydGVkIHNpbmNlIFZpc3VhbCBTdHVkaW8gQysrIDYuMAorCQkjIGFuZCBDTWFrZSBkb2Vz
IG5vdCBzdXBwb3J0IGFuIGVhcmxpZXIgdmVyc2lvbgorCQlzZXQgKCR7X21zZ1Zhcn0gIiIgUEFS
RU5UX1NDT1BFKQorCWVsc2VpZiAoQ01BS0VfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVSX0lEIE1BVENI
RVMgIkdOVSIpCisJCSMgR0NDIFBDSCBzdXBwb3J0IHJlcXVpcmVzIHZlcnNpb24gPj0gMy40CisJ
CWNvdGlyZV9kZXRlcm1pbmVfY29tcGlsZXJfdmVyc2lvbigiJHtfbGFuZ3VhZ2V9IiBDT1RJUkVf
JHtfbGFuZ3VhZ2V9X0NPTVBJTEVSKQorCQlpZiAoIiR7Q09USVJFXyR7X2xhbmd1YWdlfV9DT01Q
SUxFUl9WRVJTSU9OfSIgTUFUQ0hFUyAiLisiIEFORAorCQkJIiR7Q09USVJFXyR7X2xhbmd1YWdl
fV9DT01QSUxFUl9WRVJTSU9OfSIgVkVSU0lPTl9MRVNTICIzLjQuMCIpCisJCQlzZXQgKCR7X21z
Z1Zhcn0gIiR7X3Vuc3VwcG9ydGVkQ29tcGlsZXJ9IHZlcnNpb24gJHtDT1RJUkVfJHtfbGFuZ3Vh
Z2V9X0NPTVBJTEVSX1ZFUlNJT059LiIgUEFSRU5UX1NDT1BFKQorCQllbHNlKCkKKwkJCXNldCAo
JHtfbXNnVmFyfSAiIiBQQVJFTlRfU0NPUEUpCisJCWVuZGlmKCkKKwllbHNlaWYgKENNQUtFXyR7
X2xhbmd1YWdlfV9DT01QSUxFUl9JRCBNQVRDSEVTICJDbGFuZyIpCisJCSMgYWxsIENsYW5nIHZl
cnNpb25zIGhhdmUgUENIIHN1cHBvcnQKKwkJc2V0ICgke19tc2dWYXJ9ICIiIFBBUkVOVF9TQ09Q
RSkKKwllbHNlaWYgKENNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9JRCBNQVRDSEVTICJJbnRl
bCIpCisJCSMgSW50ZWwgUENIIHN1cHBvcnQgcmVxdWlyZXMgdmVyc2lvbiA+PSA4LjAuMAorCQlj
b3RpcmVfZGV0ZXJtaW5lX2NvbXBpbGVyX3ZlcnNpb24oIiR7X2xhbmd1YWdlfSIgQ09USVJFXyR7
X2xhbmd1YWdlfV9DT01QSUxFUikKKwkJaWYgKCIke0NPVElSRV8ke19sYW5ndWFnZX1fQ09NUElM
RVJfVkVSU0lPTn0iIE1BVENIRVMgIi4rIiBBTkQKKwkJCSIke0NPVElSRV8ke19sYW5ndWFnZX1f
Q09NUElMRVJfVkVSU0lPTn0iIFZFUlNJT05fTEVTUyAiOC4wLjAiKQorCQkJc2V0ICgke19tc2dW
YXJ9ICIke191bnN1cHBvcnRlZENvbXBpbGVyfSB2ZXJzaW9uICR7Q09USVJFXyR7X2xhbmd1YWdl
fV9DT01QSUxFUl9WRVJTSU9OfS4iIFBBUkVOVF9TQ09QRSkKKwkJZWxzZSgpCisJCQlzZXQgKCR7
X21zZ1Zhcn0gIiIgUEFSRU5UX1NDT1BFKQorCQllbmRpZigpCisJZWxzZSgpCisJCXNldCAoJHtf
bXNnVmFyfSAiJHtfdW5zdXBwb3J0ZWRDb21waWxlcn0uIiBQQVJFTlRfU0NPUEUpCisJZW5kaWYo
KQorCWlmIChDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVIgTUFUQ0hFUyAiY2NhY2hlIikKKwkJ
aWYgKE5PVCAiJEVOVntDQ0FDSEVfU0xPUFBJTkVTU30iIE1BVENIRVMgInRpbWVfbWFjcm9zIikK
KwkJCXNldCAoJHtfbXNnVmFyfQorCQkJCSJjY2FjaGUgcmVxdWlyZXMgdGhlIGVudmlyb25tZW50
IHZhcmlhYmxlIENDQUNIRV9TTE9QUElORVNTIHRvIGJlIHNldCB0byB0aW1lX21hY3Jvcy4iCisJ
CQkJUEFSRU5UX1NDT1BFKQorCQllbmRpZigpCisJZW5kaWYoKQorCWlmIChBUFBMRSkKKwkJIyBQ
Q0ggY29tcGlsYXRpb24gbm90IHN1cHBvcnRlZCBieSBHQ0MgLyBDbGFuZyBmb3IgbXVsdGktYXJj
aGl0ZWN0dXJlIGJ1aWxkcyAoZS5nLiwgaTM4NiwgeDg2XzY0KQorCQlpZiAoQ01BS0VfQ09ORklH
VVJBVElPTl9UWVBFUykKKwkJCXNldCAoX2NvbmZpZ3MgJHtDTUFLRV9DT05GSUdVUkFUSU9OX1RZ
UEVTfSkKKwkJZWxzZWlmIChDTUFLRV9CVUlMRF9UWVBFKQorCQkJc2V0IChfY29uZmlncyAke0NN
QUtFX0JVSUxEX1RZUEV9KQorCQllbHNlKCkKKwkJCXNldCAoX2NvbmZpZ3MgIk5vbmUiKQorCQll
bmRpZigpCisJCWZvcmVhY2ggKF9jb25maWcgJHtfY29uZmlnc30pCisJCQlzZXQgKF90YXJnZXRG
bGFncyAiIikKKwkJCWNvdGlyZV9nZXRfdGFyZ2V0X2NvbXBpbGVfZmxhZ3MoIiR7X2NvbmZpZ30i
ICIke19sYW5ndWFnZX0iICIke190YXJnZXRTb3VyY2VEaXJ9IiAiJHtfdGFyZ2V0fSIgX3Rhcmdl
dEZsYWdzKQorCQkJY290aXJlX2ZpbHRlcl9jb21waWxlX2ZsYWdzKCIke19sYW5ndWFnZX0iICJh
cmNoIiBfYXJjaGl0ZWN0dXJlcyBfaWdub3JlICR7X3RhcmdldEZsYWdzfSkKKwkJCWxpc3QgKExF
TkdUSCBfYXJjaGl0ZWN0dXJlcyBfbnVtYmVyT2ZBcmNoaXRlY3R1cmVzKQorCQkJaWYgKF9udW1i
ZXJPZkFyY2hpdGVjdHVyZXMgR1JFQVRFUiAxKQorCQkJCXN0cmluZyAoUkVQTEFDRSAiOyIgIiwg
IiBfYXJjaGl0ZWN0dXJlU3RyICIke19hcmNoaXRlY3R1cmVzfSIpCisJCQkJc2V0ICgke19tc2dW
YXJ9CisJCQkJCSJQcmVjb21waWxlZCBoZWFkZXJzIG5vdCBzdXBwb3J0ZWQgb24gRGFyd2luIGZv
ciBtdWx0aS1hcmNoaXRlY3R1cmUgYnVpbGRzICgke19hcmNoaXRlY3R1cmVTdHJ9KS4iCisJCQkJ
CVBBUkVOVF9TQ09QRSkKKwkJCQlicmVhaygpCisJCQllbmRpZigpCisJCWVuZGZvcmVhY2goKQor
CWVuZGlmKCkKK2VuZGZ1bmN0aW9uKCkKKworbWFjcm8gKGNvdGlyZV9nZXRfaW50ZXJtZWRpYXRl
X2RpciBfY290aXJlRGlyKQorCWdldF9maWxlbmFtZV9jb21wb25lbnQoJHtfY290aXJlRGlyfSAi
JHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7Q01BS0VfQ0ZHX0lOVERJUn0vJHtDT1RJUkVf
SU5URElSfSIgQUJTT0xVVEUpCitlbmRtYWNybygpCisKK21hY3JvIChjb3RpcmVfc2V0dXBfZmls
ZV9leHRlbnNpb25fdmFyaWFibGVzKQorCXNldCAoX3VuaXR5RmlsZUV4dF9DICIuYyIpCisJc2V0
IChfdW5pdHlGaWxlRXh0X0NYWCAiLmN4eCIpCisJc2V0IChfcHJlZml4RmlsZUV4dF9DICIuaCIp
CisJc2V0IChfcHJlZml4RmlsZUV4dF9DWFggIi5oeHgiKQorCXNldCAoX3ByZWZpeFNvdXJjZUZp
bGVFeHRfQyAiLmMiKQorCXNldCAoX3ByZWZpeFNvdXJjZUZpbGVFeHRfQ1hYICIuY3h4IikKK2Vu
ZG1hY3JvKCkKKworZnVuY3Rpb24gKGNvdGlyZV9tYWtlX3NpbmdsZV91bml0eV9zb3VyY2VfZmls
ZV9wYXRoIF9sYW5ndWFnZSBfdGFyZ2V0IF91bml0eUZpbGVWYXIpCisJY290aXJlX3NldHVwX2Zp
bGVfZXh0ZW5zaW9uX3ZhcmlhYmxlcygpCisJaWYgKE5PVCBERUZJTkVEIF91bml0eUZpbGVFeHRf
JHtfbGFuZ3VhZ2V9KQorCQlzZXQgKCR7X3VuaXR5RmlsZVZhcn0gIiIgUEFSRU5UX1NDT1BFKQor
CQlyZXR1cm4oKQorCWVuZGlmKCkKKwlzZXQgKF91bml0eUZpbGVCYXNlTmFtZSAiJHtfdGFyZ2V0
fV8ke19sYW5ndWFnZX0ke0NPVElSRV9VTklUWV9TT1VSQ0VfRklMRU5BTUVfU1VGRklYfSIpCisJ
c2V0IChfdW5pdHlGaWxlTmFtZSAiJHtfdW5pdHlGaWxlQmFzZU5hbWV9JHtfdW5pdHlGaWxlRXh0
XyR7X2xhbmd1YWdlfX0iKQorCWNvdGlyZV9nZXRfaW50ZXJtZWRpYXRlX2RpcihfYmFzZURpcikK
KwlzZXQgKF91bml0eUZpbGUgIiR7X2Jhc2VEaXJ9LyR7X3VuaXR5RmlsZU5hbWV9IikKKwlzZXQg
KCR7X3VuaXR5RmlsZVZhcn0gIiR7X3VuaXR5RmlsZX0iIFBBUkVOVF9TQ09QRSkKKwlpZiAoQ09U
SVJFX0RFQlVHKQorCQltZXNzYWdlKFNUQVRVUyAiJHtfdW5pdHlGaWxlfSIpCisJZW5kaWYoKQor
ZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX21ha2VfdW5pdHlfc291cmNlX2ZpbGVf
cGF0aHMgX2xhbmd1YWdlIF90YXJnZXQgX21heEluY2x1ZGVzIF91bml0eUZpbGVzVmFyKQorCWNv
dGlyZV9zZXR1cF9maWxlX2V4dGVuc2lvbl92YXJpYWJsZXMoKQorCWlmIChOT1QgREVGSU5FRCBf
dW5pdHlGaWxlRXh0XyR7X2xhbmd1YWdlfSkKKwkJc2V0ICgke191bml0eUZpbGVWYXJ9ICIiIFBB
UkVOVF9TQ09QRSkKKwkJcmV0dXJuKCkKKwllbmRpZigpCisJc2V0IChfdW5pdHlGaWxlQmFzZU5h
bWUgIiR7X3RhcmdldH1fJHtfbGFuZ3VhZ2V9JHtDT1RJUkVfVU5JVFlfU09VUkNFX0ZJTEVOQU1F
X1NVRkZJWH0iKQorCWNvdGlyZV9nZXRfaW50ZXJtZWRpYXRlX2RpcihfYmFzZURpcikKKwlzZXQg
KF9zdGFydEluZGV4IDApCisJc2V0IChfaW5kZXggMCkKKwlzZXQgKF91bml0eUZpbGVzICIiKQor
CXNldCAoX3NvdXJjZUZpbGVzICR7QVJHTn0pCisJZm9yZWFjaCAoX3NvdXJjZUZpbGUgJHtfc291
cmNlRmlsZXN9KQorCQlnZXRfc291cmNlX2ZpbGVfcHJvcGVydHkoX3N0YXJ0TmV3ICIke19zb3Vy
Y2VGaWxlfSIgQ09USVJFX1NUQVJUX05FV19VTklUWV9TT1VSQ0UpCisJCW1hdGggKEVYUFIgX3Vu
aXR5RmlsZUNvdW50ICIke19pbmRleH0gLSAke19zdGFydEluZGV4fSIpCisJCWlmIChfc3RhcnRO
ZXcgT1IgKF9tYXhJbmNsdWRlcyBHUkVBVEVSIDAgQU5EIE5PVCBfdW5pdHlGaWxlQ291bnQgTEVT
UyBfbWF4SW5jbHVkZXMpKQorCQkJaWYgKF9pbmRleCBHUkVBVEVSIDApCisJCQkJIyBzdGFydCBu
ZXcgdW5pdHkgZmlsZSBzZWdtZW50CisJCQkJbWF0aCAoRVhQUiBfZW5kSW5kZXggIiR7X2luZGV4
fSAtIDEiKQorCQkJCXNldCAoX3VuaXR5RmlsZU5hbWUgIiR7X3VuaXR5RmlsZUJhc2VOYW1lfV8k
e19zdGFydEluZGV4fV8ke19lbmRJbmRleH0ke191bml0eUZpbGVFeHRfJHtfbGFuZ3VhZ2V9fSIp
CisJCQkJbGlzdCAoQVBQRU5EIF91bml0eUZpbGVzICIke19iYXNlRGlyfS8ke191bml0eUZpbGVO
YW1lfSIpCisJCQllbmRpZigpCisJCQlzZXQgKF9zdGFydEluZGV4ICR7X2luZGV4fSkKKwkJZW5k
aWYoKQorCQltYXRoIChFWFBSIF9pbmRleCAiJHtfaW5kZXh9ICsgMSIpCisJZW5kZm9yZWFjaCgp
CisJbGlzdCAoTEVOR1RIIF9zb3VyY2VGaWxlcyBfbnVtYmVyT2ZTb3VyY2VzKQorCWlmIChfc3Rh
cnRJbmRleCBFUVVBTCAwKQorCQkjIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdW5pdHkgZmlsZQor
CQljb3RpcmVfbWFrZV9zaW5nbGVfdW5pdHlfc291cmNlX2ZpbGVfcGF0aCgke19sYW5ndWFnZX0g
JHtfdGFyZ2V0fSBfdW5pdHlGaWxlcykKKwllbHNlaWYgKF9zdGFydEluZGV4IExFU1MgX251bWJl
ck9mU291cmNlcykKKwkJIyBlbmQgd2l0aCBmaW5hbCB1bml0eSBmaWxlIHNlZ21lbnQKKwkJbWF0
aCAoRVhQUiBfZW5kSW5kZXggIiR7X2luZGV4fSAtIDEiKQorCQlzZXQgKF91bml0eUZpbGVOYW1l
ICIke191bml0eUZpbGVCYXNlTmFtZX1fJHtfc3RhcnRJbmRleH1fJHtfZW5kSW5kZXh9JHtfdW5p
dHlGaWxlRXh0XyR7X2xhbmd1YWdlfX0iKQorCQlsaXN0IChBUFBFTkQgX3VuaXR5RmlsZXMgIiR7
X2Jhc2VEaXJ9LyR7X3VuaXR5RmlsZU5hbWV9IikKKwllbmRpZigpCisJc2V0ICgke191bml0eUZp
bGVzVmFyfSAke191bml0eUZpbGVzfSBQQVJFTlRfU0NPUEUpCisJaWYgKENPVElSRV9ERUJVRykK
KwkJbWVzc2FnZShTVEFUVVMgIiR7X3VuaXR5RmlsZXN9IikKKwllbmRpZigpCitlbmRmdW5jdGlv
bigpCisKK2Z1bmN0aW9uIChjb3RpcmVfdW5pdHlfdG9fcHJlZml4X2ZpbGVfcGF0aCBfbGFuZ3Vh
Z2UgX3RhcmdldCBfdW5pdHlGaWxlIF9wcmVmaXhGaWxlVmFyKQorCWNvdGlyZV9zZXR1cF9maWxl
X2V4dGVuc2lvbl92YXJpYWJsZXMoKQorCWlmIChOT1QgREVGSU5FRCBfdW5pdHlGaWxlRXh0XyR7
X2xhbmd1YWdlfSkKKwkJc2V0ICgke19wcmVmaXhGaWxlVmFyfSAiIiBQQVJFTlRfU0NPUEUpCisJ
CXJldHVybigpCisJZW5kaWYoKQorCXNldCAoX3VuaXR5RmlsZUJhc2VOYW1lICIke190YXJnZXR9
XyR7X2xhbmd1YWdlfSR7Q09USVJFX1VOSVRZX1NPVVJDRV9GSUxFTkFNRV9TVUZGSVh9IikKKwlz
ZXQgKF9wcmVmaXhGaWxlQmFzZU5hbWUgIiR7X3RhcmdldH1fJHtfbGFuZ3VhZ2V9JHtDT1RJUkVf
UFJFRklYX0hFQURFUl9GSUxFTkFNRV9TVUZGSVh9IikKKwlzdHJpbmcgKFJFUExBQ0UgIiR7X3Vu
aXR5RmlsZUJhc2VOYW1lfSIgIiR7X3ByZWZpeEZpbGVCYXNlTmFtZX0iIF9wcmVmaXhGaWxlICIk
e191bml0eUZpbGV9IikKKwlzdHJpbmcgKFJFR0VYIFJFUExBQ0UgIiR7X3VuaXR5RmlsZUV4dF8k
e19sYW5ndWFnZX19JCIgIiR7X3ByZWZpeEZpbGVFeHRfJHtfbGFuZ3VhZ2V9fSIgX3ByZWZpeEZp
bGUgIiR7X3ByZWZpeEZpbGV9IikKKwlzZXQgKCR7X3ByZWZpeEZpbGVWYXJ9ICIke19wcmVmaXhG
aWxlfSIgUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX3By
ZWZpeF9oZWFkZXJfdG9fc291cmNlX2ZpbGVfcGF0aCBfbGFuZ3VhZ2UgX3ByZWZpeEhlYWRlckZp
bGUgX3ByZWZpeFNvdXJjZUZpbGVWYXIpCisJY290aXJlX3NldHVwX2ZpbGVfZXh0ZW5zaW9uX3Zh
cmlhYmxlcygpCisJaWYgKE5PVCBERUZJTkVEIF9wcmVmaXhTb3VyY2VGaWxlRXh0XyR7X2xhbmd1
YWdlfSkKKwkJc2V0ICgke19wcmVmaXhTb3VyY2VGaWxlVmFyfSAiIiBQQVJFTlRfU0NPUEUpCisJ
CXJldHVybigpCisJZW5kaWYoKQorCXN0cmluZyAoUkVHRVggUkVQTEFDRSAiJHtfcHJlZml4Rmls
ZUV4dF8ke19sYW5ndWFnZX19JCIgIiR7X3ByZWZpeFNvdXJjZUZpbGVFeHRfJHtfbGFuZ3VhZ2V9
fSIgX3ByZWZpeFNvdXJjZUZpbGUgIiR7X3ByZWZpeEhlYWRlckZpbGV9IikKKwlzZXQgKCR7X3By
ZWZpeFNvdXJjZUZpbGVWYXJ9ICIke19wcmVmaXhTb3VyY2VGaWxlfSIgUEFSRU5UX1NDT1BFKQor
ZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX21ha2VfcHJlZml4X2ZpbGVfbmFtZSBf
bGFuZ3VhZ2UgX3RhcmdldCBfcHJlZml4RmlsZUJhc2VOYW1lVmFyIF9wcmVmaXhGaWxlTmFtZVZh
cikKKwljb3RpcmVfc2V0dXBfZmlsZV9leHRlbnNpb25fdmFyaWFibGVzKCkKKwlpZiAoTk9UIF9s
YW5ndWFnZSkKKwkJc2V0IChfcHJlZml4RmlsZUJhc2VOYW1lICIke190YXJnZXR9JHtDT1RJUkVf
UFJFRklYX0hFQURFUl9GSUxFTkFNRV9TVUZGSVh9IikKKwkJc2V0IChfcHJlZml4RmlsZU5hbWUg
IiR7X3ByZWZpeEZpbGVCYXNlTmFtZX0ke19wcmVmaXhGaWxlRXh0X0N9IikKKwllbHNlaWYgKERF
RklORUQgX3ByZWZpeEZpbGVFeHRfJHtfbGFuZ3VhZ2V9KQorCQlzZXQgKF9wcmVmaXhGaWxlQmFz
ZU5hbWUgIiR7X3RhcmdldH1fJHtfbGFuZ3VhZ2V9JHtDT1RJUkVfUFJFRklYX0hFQURFUl9GSUxF
TkFNRV9TVUZGSVh9IikKKwkJc2V0IChfcHJlZml4RmlsZU5hbWUgIiR7X3ByZWZpeEZpbGVCYXNl
TmFtZX0ke19wcmVmaXhGaWxlRXh0XyR7X2xhbmd1YWdlfX0iKQorCWVsc2UoKQorCQlzZXQgKF9w
cmVmaXhGaWxlQmFzZU5hbWUgIiIpCisJCXNldCAoX3ByZWZpeEZpbGVOYW1lICIiKQorCWVuZGlm
KCkKKwlzZXQgKCR7X3ByZWZpeEZpbGVCYXNlTmFtZVZhcn0gIiR7X3ByZWZpeEZpbGVCYXNlTmFt
ZX0iIFBBUkVOVF9TQ09QRSkKKwlzZXQgKCR7X3ByZWZpeEZpbGVOYW1lVmFyfSAiJHtfcHJlZml4
RmlsZU5hbWV9IiBQQVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3Rp
cmVfbWFrZV9wcmVmaXhfZmlsZV9wYXRoIF9sYW5ndWFnZSBfdGFyZ2V0IF9wcmVmaXhGaWxlVmFy
KQorCWNvdGlyZV9tYWtlX3ByZWZpeF9maWxlX25hbWUoIiR7X2xhbmd1YWdlfSIgIiR7X3Rhcmdl
dH0iIF9wcmVmaXhGaWxlQmFzZU5hbWUgX3ByZWZpeEZpbGVOYW1lKQorCXNldCAoJHtfcHJlZml4
RmlsZVZhcn0gIiIgUEFSRU5UX1NDT1BFKQorCWlmIChfcHJlZml4RmlsZU5hbWUpCisJCWlmIChO
T1QgX2xhbmd1YWdlKQorCQkJc2V0IChfbGFuZ3VhZ2UgIkMiKQorCQllbmRpZigpCisJCWlmIChN
U1ZDIE9SIENNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9JRCBNQVRDSEVTICJHTlV8Q2xhbmd8
SW50ZWwiKQorCQkJY290aXJlX2dldF9pbnRlcm1lZGlhdGVfZGlyKF9iYXNlRGlyKQorCQkJc2V0
ICgke19wcmVmaXhGaWxlVmFyfSAiJHtfYmFzZURpcn0vJHtfcHJlZml4RmlsZU5hbWV9IiBQQVJF
TlRfU0NPUEUpCisJCWVuZGlmKCkKKwllbmRpZigpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9u
IChjb3RpcmVfbWFrZV9wY2hfZmlsZV9wYXRoIF9sYW5ndWFnZSBfdGFyZ2V0U291cmNlRGlyIF90
YXJnZXQgX3BjaEZpbGVWYXIpCisJY290aXJlX21ha2VfcHJlZml4X2ZpbGVfbmFtZSgiJHtfbGFu
Z3VhZ2V9IiAiJHtfdGFyZ2V0fSIgX3ByZWZpeEZpbGVCYXNlTmFtZSBfcHJlZml4RmlsZU5hbWUp
CisJc2V0ICgke19wY2hGaWxlVmFyfSAiIiBQQVJFTlRfU0NPUEUpCisJaWYgKF9wcmVmaXhGaWxl
QmFzZU5hbWUgQU5EIF9wcmVmaXhGaWxlTmFtZSkKKwkJY290aXJlX2NoZWNrX3ByZWNvbXBpbGVk
X2hlYWRlcl9zdXBwb3J0KCIke19sYW5ndWFnZX0iICIke190YXJnZXRTb3VyY2VEaXJ9IiAiJHtf
dGFyZ2V0fSIgX21zZykKKwkJaWYgKE5PVCBfbXNnKQorCQkJaWYgKFhDT0RFKQorCQkJCSMgRm9y
IFhjb2RlLCB3ZSBjb21wbGV0ZWx5IGhhbmQgb2ZmIHRoZSBjb21waWxhdGlvbiBvZiB0aGUgcHJl
Zml4IGhlYWRlciB0byB0aGUgSURFCisJCQkJcmV0dXJuKCkKKwkJCWVuZGlmKCkKKwkJCWNvdGly
ZV9nZXRfaW50ZXJtZWRpYXRlX2RpcihfYmFzZURpcikKKwkJCWlmIChDTUFLRV8ke19sYW5ndWFn
ZX1fQ09NUElMRVJfSUQgTUFUQ0hFUyAiTVNWQyIpCisJCQkJIyBNU1ZDIHVzZXMgdGhlIGV4dGVu
c2lvbiAucGNoIGFkZGVkIHRvIHRoZSBwcmVmaXggaGVhZGVyIGJhc2UgbmFtZQorCQkJCXNldCAo
JHtfcGNoRmlsZVZhcn0gIiR7X2Jhc2VEaXJ9LyR7X3ByZWZpeEZpbGVCYXNlTmFtZX0ucGNoIiBQ
QVJFTlRfU0NPUEUpCisJCQllbHNlaWYgKENNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9JRCBN
QVRDSEVTICJDbGFuZyIpCisJCQkJIyBDbGFuZyBsb29rcyBmb3IgYSBwcmVjb21waWxlZCBoZWFk
ZXIgY29ycmVzcG9uZGluZyB0byB0aGUgcHJlZml4IGhlYWRlciB3aXRoIHRoZSBleHRlbnNpb24g
LnBjaCBhcHBlbmRlZAorCQkJCXNldCAoJHtfcGNoRmlsZVZhcn0gIiR7X2Jhc2VEaXJ9LyR7X3By
ZWZpeEZpbGVOYW1lfS5wY2giIFBBUkVOVF9TQ09QRSkKKwkJCWVsc2VpZiAoQ01BS0VfJHtfbGFu
Z3VhZ2V9X0NPTVBJTEVSX0lEIE1BVENIRVMgIkdOVSIpCisJCQkJIyBHQ0MgbG9va3MgZm9yIGEg
cHJlY29tcGlsZWQgaGVhZGVyIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHByZWZpeCBoZWFkZXIgd2l0
aCB0aGUgZXh0ZW5zaW9uIC5nY2ggYXBwZW5kZWQKKwkJCQlzZXQgKCR7X3BjaEZpbGVWYXJ9ICIk
e19iYXNlRGlyfS8ke19wcmVmaXhGaWxlTmFtZX0uZ2NoIiBQQVJFTlRfU0NPUEUpCisJCQllbHNl
aWYgKENNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9JRCBNQVRDSEVTICJJbnRlbCIpCisJCQkJ
IyBJbnRlbCB1c2VzIHRoZSBleHRlbnNpb24gLnBjaGkgYWRkZWQgdG8gdGhlIHByZWZpeCBoZWFk
ZXIgYmFzZSBuYW1lCisJCQkJc2V0ICgke19wY2hGaWxlVmFyfSAiJHtfYmFzZURpcn0vJHtfcHJl
Zml4RmlsZUJhc2VOYW1lfS5wY2hpIiBQQVJFTlRfU0NPUEUpCisJCQllbmRpZigpCisJCWVuZGlm
KCkKKwllbmRpZigpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfc2VsZWN0X3Vu
aXR5X3NvdXJjZV9maWxlcyBfdW5pdHlGaWxlIF9zb3VyY2VzVmFyKQorCXNldCAoX3NvdXJjZUZp
bGVzICR7QVJHTn0pCisJaWYgKF9zb3VyY2VGaWxlcyBBTkQgIiR7X3VuaXR5RmlsZX0iIE1BVENI
RVMgIiR7Q09USVJFX1VOSVRZX1NPVVJDRV9GSUxFTkFNRV9TVUZGSVh9XyhbMC05XSspXyhbMC05
XSspIikKKwkJc2V0IChfc3RhcnRJbmRleCAke0NNQUtFX01BVENIXzF9KQorCQlzZXQgKF9lbmRJ
bmRleCAke0NNQUtFX01BVENIXzJ9KQorCQlsaXN0IChMRU5HVEggX3NvdXJjZUZpbGVzIF9udW1i
ZXJPZlNvdXJjZXMpCisJCWlmIChOT1QgX3N0YXJ0SW5kZXggTEVTUyBfbnVtYmVyT2ZTb3VyY2Vz
KQorCQkJbWF0aCAoRVhQUiBfc3RhcnRJbmRleCAiJHtfbnVtYmVyT2ZTb3VyY2VzfSAtIDEiKQor
CQllbmRpZigpCisJCWlmIChOT1QgX2VuZEluZGV4IExFU1MgX251bWJlck9mU291cmNlcykKKwkJ
CW1hdGggKEVYUFIgX2VuZEluZGV4ICIke19udW1iZXJPZlNvdXJjZXN9IC0gMSIpCisJCWVuZGlm
KCkKKwkJc2V0IChfZmlsZXMgIiIpCisJCWZvcmVhY2ggKF9pbmRleCBSQU5HRSAke19zdGFydElu
ZGV4fSAke19lbmRJbmRleH0pCisJCQlsaXN0IChHRVQgX3NvdXJjZUZpbGVzICR7X2luZGV4fSBf
ZmlsZSkKKwkJCWxpc3QgKEFQUEVORCBfZmlsZXMgIiR7X2ZpbGV9IikKKwkJZW5kZm9yZWFjaCgp
CisJZWxzZSgpCisJCXNldCAoX2ZpbGVzICR7X3NvdXJjZUZpbGVzfSkKKwllbmRpZigpCisJc2V0
ICgke19zb3VyY2VzVmFyfSAke19maWxlc30gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQor
CitmdW5jdGlvbiAoY290aXJlX2dldF91bml0eV9zb3VyY2VfZGVwZW5kZW5jaWVzIF9sYW5ndWFn
ZSBfdGFyZ2V0IF9kZXBlbmRlbmN5U291cmNlc1ZhcikKKwlzZXQgKF9kZXBlbmRlbmN5U291cmNl
cyAiIikKKwkjIGRlcGVuZCBvbiB0YXJnZXQncyBnZW5lcmF0ZWQgc291cmNlIGZpbGVzCisJY290
aXJlX2dldF9vYmplY3RzX3dpdGhfcHJvcGVydHlfb24oX2dlbmVyYXRlZFNvdXJjZXMgR0VORVJB
VEVEIFNPVVJDRSAke0FSR059KQorCWlmIChfZ2VuZXJhdGVkU291cmNlcykKKwkJIyBidXQgb21p
dCBhbGwgZ2VuZXJhdGVkIHNvdXJjZSBmaWxlcyB0aGF0IGhhdmUgdGhlIENPVElSRV9FWENMVURF
RCBwcm9wZXJ0eSBzZXQgdG8gdHJ1ZQorCQljb3RpcmVfZ2V0X29iamVjdHNfd2l0aF9wcm9wZXJ0
eV9vbihfZXhjbHVkZWRHZW5lcmF0ZWRTb3VyY2VzIENPVElSRV9FWENMVURFRCBTT1VSQ0UgJHtf
Z2VuZXJhdGVkU291cmNlc30pCisJCWlmIChfZXhjbHVkZWRHZW5lcmF0ZWRTb3VyY2VzKQorCQkJ
bGlzdCAoUkVNT1ZFX0lURU0gX2dlbmVyYXRlZFNvdXJjZXMgJHtfZXhjbHVkZWRHZW5lcmF0ZWRT
b3VyY2VzfSkKKwkJZW5kaWYoKQorCQkjIGFuZCBvbWl0IGFsbCBnZW5lcmF0ZWQgc291cmNlIGZp
bGVzIHRoYXQgaGF2ZSB0aGUgQ09USVJFX0RFUEVOREVOQ1kgcHJvcGVydHkgc2V0IHRvIGZhbHNl
IGV4cGxpY2l0bHkKKwkJY290aXJlX2dldF9vYmplY3RzX3dpdGhfcHJvcGVydHlfb2ZmKF9leGNs
dWRlZE5vbkRlcGVuZGVuY3lTb3VyY2VzIENPVElSRV9ERVBFTkRFTkNZIFNPVVJDRSAke19nZW5l
cmF0ZWRTb3VyY2VzfSkKKwkJaWYgKF9leGNsdWRlZE5vbkRlcGVuZGVuY3lTb3VyY2VzKQorCQkJ
bGlzdCAoUkVNT1ZFX0lURU0gX2dlbmVyYXRlZFNvdXJjZXMgJHtfZXhjbHVkZWROb25EZXBlbmRl
bmN5U291cmNlc30pCisJCWVuZGlmKCkKKwkJaWYgKF9nZW5lcmF0ZWRTb3VyY2VzKQorCQkJbGlz
dCAoQVBQRU5EIF9kZXBlbmRlbmN5U291cmNlcyAke19nZW5lcmF0ZWRTb3VyY2VzfSkKKwkJZW5k
aWYoKQorCWVuZGlmKCkKKwlpZiAoQ09USVJFX0RFQlVHIEFORCBfZGVwZW5kZW5jeVNvdXJjZXMp
CisJCW1lc3NhZ2UgKFNUQVRVUyAiJHtfbGFuZ3VhZ2V9ICR7X3RhcmdldH0gdW5pdHkgc291cmNl
IGRlcGVuZHMgb24gJHtfZGVwZW5kZW5jeVNvdXJjZXN9IikKKwllbmRpZigpCisJc2V0ICgke19k
ZXBlbmRlbmN5U291cmNlc1Zhcn0gJHtfZGVwZW5kZW5jeVNvdXJjZXN9IFBBUkVOVF9TQ09QRSkK
K2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9nZXRfcHJlZml4X2hlYWRlcl9kZXBl
bmRlbmNpZXMgX2xhbmd1YWdlIF90YXJnZXQgX2RlcGVuZGVuY3lTb3VyY2VzVmFyKQorCSMgZGVw
ZW5kIG9uIHRhcmdldCBzb3VyY2UgZmlsZXMgbWFya2VkIHdpdGggY3VzdG9tIENPVElSRV9ERVBF
TkRFTkNZIHByb3BlcnR5CisJc2V0IChfZGVwZW5kZW5jeVNvdXJjZXMgIiIpCisJY290aXJlX2dl
dF9vYmplY3RzX3dpdGhfcHJvcGVydHlfb24oX2RlcGVuZGVuY3lTb3VyY2VzIENPVElSRV9ERVBF
TkRFTkNZIFNPVVJDRSAke0FSR059KQorCWlmIChDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJf
SUQgTUFUQ0hFUyAiR05VfENsYW5nIikKKwkJIyBHQ0MgYW5kIGNsYW5nIHJhaXNlIGEgZmF0YWwg
ZXJyb3IgaWYgYSBmaWxlIGlzIG5vdCBmb3VuZCBkdXJpbmcgcHJlcHJvY2Vzc2luZworCQkjIHRo
dXMgd2UgZGVwZW5kIG9uIHRhcmdldCdzIGdlbmVyYXRlZCBzb3VyY2UgZmlsZXMgZm9yIHByZWZp
eCBoZWFkZXIgZ2VuZXJhdGlvbgorCQljb3RpcmVfZ2V0X29iamVjdHNfd2l0aF9wcm9wZXJ0eV9v
bihfZ2VuZXJhdGVkU291cmNlcyBHRU5FUkFURUQgU09VUkNFICR7QVJHTn0pCisJCWlmIChfZ2Vu
ZXJhdGVkU291cmNlcykKKwkJCWxpc3QgKEFQUEVORCBfZGVwZW5kZW5jeVNvdXJjZXMgJHtfZ2Vu
ZXJhdGVkU291cmNlc30pCisJCWVuZGlmKCkKKwllbmRpZigpCisJaWYgKENPVElSRV9ERUJVRyBB
TkQgX2RlcGVuZGVuY3lTb3VyY2VzKQorCQltZXNzYWdlIChTVEFUVVMgIiR7X2xhbmd1YWdlfSAk
e190YXJnZXR9IHByZWZpeCBoZWFkZXIgREVQRU5EUyAke19kZXBlbmRlbmN5U291cmNlc30iKQor
CWVuZGlmKCkKKwlzZXQgKCR7X2RlcGVuZGVuY3lTb3VyY2VzVmFyfSAke19kZXBlbmRlbmN5U291
cmNlc30gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX2dl
bmVyYXRlX3RhcmdldF9zY3JpcHQgX2xhbmd1YWdlIF9jb25maWd1cmF0aW9ucyBfdGFyZ2V0U291
cmNlRGlyIF90YXJnZXRCaW5hcnlEaXIgX3RhcmdldCBfdGFyZ2V0U2NyaXB0VmFyIF90YXJnZXRD
b25maWdTY3JpcHRWYXIpCisJc2V0IChDT1RJUkVfVEFSR0VUX1NPVVJDRVMgJHtBUkdOfSkKKwlj
b3RpcmVfZ2V0X3ByZWZpeF9oZWFkZXJfZGVwZW5kZW5jaWVzKCR7X2xhbmd1YWdlfSAke190YXJn
ZXR9IENPVElSRV9UQVJHRVRfUFJFRklYX0RFUEVORFMgJHtDT1RJUkVfVEFSR0VUX1NPVVJDRVN9
KQorCWNvdGlyZV9nZXRfdW5pdHlfc291cmNlX2RlcGVuZGVuY2llcygke19sYW5ndWFnZX0gJHtf
dGFyZ2V0fSBDT1RJUkVfVEFSR0VUX1VOSVRZX0RFUEVORFMgJHtDT1RJUkVfVEFSR0VUX1NPVVJD
RVN9KQorCSMgc2V0IHVwIHZhcmlhYmxlcyB0byBiZSBjb25maWd1cmVkCisJc2V0IChDT1RJUkVf
VEFSR0VUX0xBTkdVQUdFICIke19sYW5ndWFnZX0iKQorCWNvdGlyZV9kZXRlcm1pbmVfY29tcGls
ZXJfdmVyc2lvbigiJHtDT1RJUkVfVEFSR0VUX0xBTkdVQUdFfSIgQ09USVJFXyR7X2xhbmd1YWdl
fV9DT01QSUxFUikKKwlnZXRfdGFyZ2V0X3Byb3BlcnR5KENPVElSRV9UQVJHRVRfSUdOT1JFX1BB
VEggJHtfdGFyZ2V0fSBDT1RJUkVfUFJFRklYX0hFQURFUl9JR05PUkVfUEFUSCkKKwljb3RpcmVf
YWRkX3N5c19yb290X3BhdGhzKENPVElSRV9UQVJHRVRfSUdOT1JFX1BBVEgpCisJZ2V0X3Rhcmdl
dF9wcm9wZXJ0eShDT1RJUkVfVEFSR0VUX0lOQ0xVREVfUEFUSCAke190YXJnZXR9IENPVElSRV9Q
UkVGSVhfSEVBREVSX0lOQ0xVREVfUEFUSCkKKwljb3RpcmVfYWRkX3N5c19yb290X3BhdGhzKENP
VElSRV9UQVJHRVRfSU5DTFVERV9QQVRIKQorCWdldF90YXJnZXRfcHJvcGVydHkoQ09USVJFX1RB
UkdFVF9QUkVfVU5ERUZTICR7X3RhcmdldH0gQ09USVJFX1VOSVRZX1NPVVJDRV9QUkVfVU5ERUZT
KQorCWdldF90YXJnZXRfcHJvcGVydHkoQ09USVJFX1RBUkdFVF9QT1NUX1VOREVGUyAke190YXJn
ZXR9IENPVElSRV9VTklUWV9TT1VSQ0VfUE9TVF9VTkRFRlMpCisJZ2V0X3RhcmdldF9wcm9wZXJ0
eShDT1RJUkVfVEFSR0VUX01BWElNVU1fTlVNQkVSX09GX0lOQ0xVREVTICR7X3RhcmdldH0gQ09U
SVJFX1VOSVRZX1NPVVJDRV9NQVhJTVVNX05VTUJFUl9PRl9JTkNMVURFUykKKwljb3RpcmVfZ2V0
X3NvdXJjZV9maWxlc191bmRlZnMoQ09USVJFX1VOSVRZX1NPVVJDRV9QUkVfVU5ERUZTIENPVElS
RV9UQVJHRVRfU09VUkNFU19QUkVfVU5ERUZTICR7Q09USVJFX1RBUkdFVF9TT1VSQ0VTfSkKKwlj
b3RpcmVfZ2V0X3NvdXJjZV9maWxlc191bmRlZnMoQ09USVJFX1VOSVRZX1NPVVJDRV9QT1NUX1VO
REVGUyBDT1RJUkVfVEFSR0VUX1NPVVJDRVNfUE9TVF9VTkRFRlMgJHtDT1RJUkVfVEFSR0VUX1NP
VVJDRVN9KQorCXN0cmluZyAoU1RSSVAgIiR7Q01BS0VfSU5DTFVERV9TWVNURU1fRkxBR18ke19s
YW5ndWFnZX19IiBDT1RJUkVfSU5DTFVERV9TWVNURU1fRkxBRykKKwlzZXQgKENPVElSRV9UQVJH
RVRfQ09ORklHVVJBVElPTl9UWVBFUyAiJHtfY29uZmlndXJhdGlvbnN9IikKKwlmb3JlYWNoIChf
Y29uZmlnICR7X2NvbmZpZ3VyYXRpb25zfSkKKwkJc3RyaW5nIChUT1VQUEVSICIke19jb25maWd9
IiBfdXBwZXJDb25maWcpCisJCWNvdGlyZV9nZXRfdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMo
CisJCQkiJHtfY29uZmlnfSIgIiR7X2xhbmd1YWdlfSIgIiR7X3RhcmdldFNvdXJjZURpcn0iICIk
e190YXJnZXRCaW5hcnlEaXJ9IiAiJHtfdGFyZ2V0fSIgQ09USVJFX1RBUkdFVF9JTkNMVURFX0RJ
UkVDVE9SSUVTXyR7X3VwcGVyQ29uZmlnfSBDT1RJUkVfVEFSR0VUX1NZU1RFTV9JTkNMVURFX0RJ
UkVDVE9SSUVTXyR7X3VwcGVyQ29uZmlnfSkKKwkJY290aXJlX2dldF90YXJnZXRfY29tcGlsZV9k
ZWZpbml0aW9ucygKKwkJCSIke19jb25maWd9IiAiJHtfbGFuZ3VhZ2V9IiAiJHtfdGFyZ2V0U291
cmNlRGlyfSIgIiR7X3RhcmdldH0iIENPVElSRV9UQVJHRVRfQ09NUElMRV9ERUZJTklUSU9OU18k
e191cHBlckNvbmZpZ30pCisJCWNvdGlyZV9nZXRfdGFyZ2V0X2NvbXBpbGVyX2ZsYWdzKAorCQkJ
IiR7X2NvbmZpZ30iICIke19sYW5ndWFnZX0iICIke190YXJnZXRTb3VyY2VEaXJ9IiAiJHtfdGFy
Z2V0fSIgQ09USVJFX1RBUkdFVF9DT01QSUxFX0ZMQUdTXyR7X3VwcGVyQ29uZmlnfSkKKwkJY290
aXJlX2dldF9zb3VyY2VfZmlsZXNfY29tcGlsZV9kZWZpbml0aW9ucygKKwkJCSIke19jb25maWd9
IiAiJHtfbGFuZ3VhZ2V9IiBDT1RJUkVfVEFSR0VUX1NPVVJDRVNfQ09NUElMRV9ERUZJTklUSU9O
U18ke191cHBlckNvbmZpZ30gJHtDT1RJUkVfVEFSR0VUX1NPVVJDRVN9KQorCWVuZGZvcmVhY2go
KQorCWdldF9jbWFrZV9wcm9wZXJ0eShfdmFycyBWQVJJQUJMRVMpCisJc3RyaW5nIChSRUdFWCBN
QVRDSEFMTCAiQ09USVJFX1tBLVphLXowLTlfXSsiIF9tYXRjaFZhcnMgIiR7X3ZhcnN9IikKKwkj
IHJlbW92ZSBDT1RJUkVfVkVSQk9TRSB3aGljaCBpcyBwYXNzZWQgYXMgYSBDTWFrZSBkZWZpbmUg
b24gY29tbWFuZCBsaW5lCisJbGlzdCAoUkVNT1ZFX0lURU0gX21hdGNoVmFycyBDT1RJUkVfVkVS
Qk9TRSkKKwlzZXQgKF9jb250ZW50cyAiIikKKwlzZXQgKF9jb250ZW50c0hhc0dlbmVyYXRvckV4
cHJlc3Npb25zIEZBTFNFKQorCWZvcmVhY2ggKF92YXIgSU4gTElTVFMgX21hdGNoVmFycyBJVEVN
UworCQlNU1ZDIENNQUtFX0dFTkVSQVRPUiBDTUFLRV9CVUlMRF9UWVBFIENNQUtFX0NPTkZJR1VS
QVRJT05fVFlQRVMKKwkJQ01BS0VfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVSX0lEIENNQUtFXyR7X2xh
bmd1YWdlfV9DT01QSUxFUiBDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfQVJHMQorCQlDTUFL
RV8ke19sYW5ndWFnZX1fU09VUkNFX0ZJTEVfRVhURU5TSU9OUykKKwkJaWYgKERFRklORUQgJHtf
dmFyfSkKKwkJCXN0cmluZyAoUkVQTEFDRSAiXCIiICJcXFwiIiBfdmFsdWUgIiR7JHtfdmFyfX0i
KQorCQkJc2V0IChfY29udGVudHMgIiR7X2NvbnRlbnRzfXNldCAoJHtfdmFyfSBcIiR7X3ZhbHVl
fVwiKVxuIikKKwkJCWlmIChOT1QgX2NvbnRlbnRzSGFzR2VuZXJhdG9yRXhwcmVzc2lvbnMpCisJ
CQkJaWYgKCIke192YWx1ZX0iIE1BVENIRVMgIlxcJDwuKj4iKQorCQkJCQlzZXQgKF9jb250ZW50
c0hhc0dlbmVyYXRvckV4cHJlc3Npb25zIFRSVUUpCisJCQkJZW5kaWYoKQorCQkJZW5kaWYoKQor
CQllbmRpZigpCisJZW5kZm9yZWFjaCgpCisJZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChfbW9kdWxl
TmFtZSAiJHtDT1RJUkVfQ01BS0VfTU9EVUxFX0ZJTEV9IiBOQU1FKQorCXNldCAoX3RhcmdldENv
dGlyZVNjcmlwdCAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7X3RhcmdldH1fJHtfbGFu
Z3VhZ2V9XyR7X21vZHVsZU5hbWV9IikKKwljb3RpcmVfd3JpdGVfZmlsZSgiQ01BS0UiICIke190
YXJnZXRDb3RpcmVTY3JpcHR9IiAiJHtfY29udGVudHN9IiBGQUxTRSkKKwlpZiAoX2NvbnRlbnRz
SGFzR2VuZXJhdG9yRXhwcmVzc2lvbnMpCisJCSMgdXNlIGZpbGUoR0VORVJBVEUgLi4uKSB0byBl
eHBhbmQgZ2VuZXJhdG9yIGV4cHJlc3Npb25zIGluIHRoZSB0YXJnZXQgc2NyaXB0IGF0IENNYWtl
IGdlbmVyYXRlLXRpbWUKKwkJaWYgKE5PVCBDTUFLRV9WRVJTSU9OIFZFUlNJT05fTEVTUyAiMi44
LjEyIikKKwkJCSMgdGhlIGZpbGUoR0VORVJBVEUgLi4uKSBjb21tYW5kIHJlcXVpcmVzIGNtYWtl
IDIuOC4xMiBvciBsYXRlcgorCQkJc2V0IChfY29uZmlnTmFtZU9yTm9uZUdlbmVyYXRvckV4cHJl
c3Npb24gIiQ8JDxDT05GSUc6PjpOb25lPiQ8JDxOT1Q6JDxDT05GSUc6Pj46JDxDT05GSUdVUkFU
SU9OPj4iKQorCQkJc2V0IChfdGFyZ2V0Q290aXJlQ29uZmlnU2NyaXB0ICIke0NNQUtFX0NVUlJF
TlRfQklOQVJZX0RJUn0vJHtfdGFyZ2V0fV8ke19sYW5ndWFnZX1fJHtfY29uZmlnTmFtZU9yTm9u
ZUdlbmVyYXRvckV4cHJlc3Npb259XyR7X21vZHVsZU5hbWV9IikKKwkJCWZpbGUgKEdFTkVSQVRF
IE9VVFBVVCAiJHtfdGFyZ2V0Q290aXJlQ29uZmlnU2NyaXB0fSIgSU5QVVQgIiR7X3RhcmdldENv
dGlyZVNjcmlwdH0iKQorCQllbHNlKCkKKwkJCW1lc3NhZ2UgKFdBUk5JTkcgImNvdGlyZTogZ2Vu
ZXJhdG9yIGV4cHJlc3Npb24gdXNlZCBpbiB0YXJnZXQgJHtfdGFyZ2V0fS4gVGhpcyByZXF1aXJl
cyBDTWFrZSAyLjguMTIgb3IgbGF0ZXIuIikKKwkJCXNldCAoX3RhcmdldENvdGlyZUNvbmZpZ1Nj
cmlwdCAiJHtfdGFyZ2V0Q290aXJlU2NyaXB0fSIpCisJCWVuZGlmKCkKKwllbHNlKCkKKwkJc2V0
IChfdGFyZ2V0Q290aXJlQ29uZmlnU2NyaXB0ICIke190YXJnZXRDb3RpcmVTY3JpcHR9IikKKwll
bmRpZigpCisJc2V0ICgke190YXJnZXRTY3JpcHRWYXJ9ICIke190YXJnZXRDb3RpcmVTY3JpcHR9
IiBQQVJFTlRfU0NPUEUpCisJc2V0ICgke190YXJnZXRDb25maWdTY3JpcHRWYXJ9ICIke190YXJn
ZXRDb3RpcmVDb25maWdTY3JpcHR9IiBQQVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1
bmN0aW9uIChjb3RpcmVfc2V0dXBfcGNoX2ZpbGVfY29tcGlsYXRpb24gX2xhbmd1YWdlIF90YXJn
ZXQgX3RhcmdldFNvdXJjZURpciBfdGFyZ2V0U2NyaXB0IF9wcmVmaXhGaWxlIF9wY2hGaWxlKQor
CXNldCAoX3NvdXJjZUZpbGVzICR7QVJHTn0pCisJaWYgKENNQUtFXyR7X2xhbmd1YWdlfV9DT01Q
SUxFUl9JRCBNQVRDSEVTICJNU1ZDfEludGVsIikKKwkJIyBmb3IgVmlzdWFsIFN0dWRpbyBhbmQg
SW50ZWwsIHdlIGF0dGFjaCB0aGUgcHJlY29tcGlsZWQgaGVhZGVyIGNvbXBpbGF0aW9uIHRvIHRo
ZSBmaXJzdCBzb3VyY2UgZmlsZQorCQkjIHRoZSByZW1haW5pbmcgZmlsZXMgaW5jbHVkZSB0aGUg
cHJlY29tcGlsZWQgaGVhZGVyLCBzZWUgY290aXJlX3NldHVwX3BjaF9maWxlX2luY2x1c2lvbgor
CQlpZiAoX3NvdXJjZUZpbGVzKQorCQkJZmlsZSAoVE9fTkFUSVZFX1BBVEggIiR7X3ByZWZpeEZp
bGV9IiBfcHJlZml4RmlsZU5hdGl2ZSkKKwkJCWZpbGUgKFRPX05BVElWRV9QQVRIICIke19wY2hG
aWxlfSIgX3BjaEZpbGVOYXRpdmUpCisJCQlsaXN0IChHRVQgX3NvdXJjZUZpbGVzIDAgX2hvc3RG
aWxlKQorCQkJc2V0IChfZmxhZ3MgIiIpCisJCQljb3RpcmVfZGV0ZXJtaW5lX2NvbXBpbGVyX3Zl
cnNpb24oIiR7X2xhbmd1YWdlfSIgQ09USVJFXyR7X2xhbmd1YWdlfV9DT01QSUxFUikKKwkJCWNv
dGlyZV9hZGRfcGNoX2NvbXBpbGF0aW9uX2ZsYWdzKAorCQkJCSIke19sYW5ndWFnZX0iICIke0NN
QUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9JRH0iICIke0NPVElSRV8ke19sYW5ndWFnZX1fQ09N
UElMRVJfVkVSU0lPTn0iCisJCQkJIiR7X3ByZWZpeEZpbGV9IiAiJHtfcGNoRmlsZX0iICIke19o
b3N0RmlsZX0iIF9mbGFncykKKwkJCXNldF9wcm9wZXJ0eSAoU09VUkNFICR7X2hvc3RGaWxlfSBB
UFBFTkRfU1RSSU5HIFBST1BFUlRZIENPTVBJTEVfRkxBR1MgIiAke19mbGFnc30gIikKKwkJCXNl
dF9wcm9wZXJ0eSAoU09VUkNFICR7X2hvc3RGaWxlfSBBUFBFTkQgUFJPUEVSVFkgT0JKRUNUX09V
VFBVVFMgIiR7X3BjaEZpbGV9IikKKwkJCSMgbWFrZSBmaXJzdCBzb3VyY2UgZmlsZSBkZXBlbmQg
b24gcHJlZml4IGhlYWRlcgorCQkJc2V0X3Byb3BlcnR5IChTT1VSQ0UgJHtfaG9zdEZpbGV9IEFQ
UEVORCBQUk9QRVJUWSBPQkpFQ1RfREVQRU5EUyAiJHtfcHJlZml4RmlsZX0iKQorCQkJIyBtYXJr
IGZpcnN0IHNvdXJjZSBmaWxlIGFzIGNvdGlyZWQgdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nIHVz
ZWQgaW4gYW5vdGhlciBjb3RpcmVkIHRhcmdldAorCQkJc2V0X3Byb3BlcnR5IChTT1VSQ0UgJHtf
aG9zdEZpbGV9IFBST1BFUlRZIENPVElSRV9UQVJHRVQgIiR7X3RhcmdldH0iKQorCQllbmRpZigp
CisJZWxzZWlmICgiJHtDTUFLRV9HRU5FUkFUT1J9IiBNQVRDSEVTICJNYWtlZmlsZXN8TmluamEi
KQorCQkjIGZvciBtYWtlZmlsZSBiYXNlZCBnZW5lcmF0b3IsIHdlIGFkZCBhIGN1c3RvbSBjb21t
YW5kIHRvIHByZWNvbXBpbGUgdGhlIHByZWZpeCBoZWFkZXIKKwkJaWYgKF90YXJnZXRTY3JpcHQp
CisJCQljb3RpcmVfc2V0X2NtZF90b19wcm9sb2d1ZShfY21kcykKKwkJCWxpc3QgKEdFVCBfc291
cmNlRmlsZXMgMCBfaG9zdEZpbGUpCisJCQlsaXN0IChBUFBFTkQgX2NtZHMgLVAgIiR7Q09USVJF
X0NNQUtFX01PRFVMRV9GSUxFfSIgInByZWNvbXBpbGUiICIke190YXJnZXRTY3JpcHR9IiAiJHtf
cHJlZml4RmlsZX0iICIke19wY2hGaWxlfSIgIiR7X2hvc3RGaWxlfSIpCisJCQlmaWxlIChSRUxB
VElWRV9QQVRIIF9wY2hGaWxlUmVsUGF0aCAiJHtDTUFLRV9CSU5BUllfRElSfSIgIiR7X3BjaEZp
bGV9IikKKwkJCWlmIChDT1RJUkVfREVCVUcpCisJCQkJbWVzc2FnZSAoU1RBVFVTICJhZGRfY3Vz
dG9tX2NvbW1hbmQ6IE9VVFBVVCAke19wY2hGaWxlfSAke19jbWRzfSBERVBFTkRTICR7X3ByZWZp
eEZpbGV9IElNUExJQ0lUX0RFUEVORFMgJHtfbGFuZ3VhZ2V9ICR7X3ByZWZpeEZpbGV9IikKKwkJ
CWVuZGlmKCkKKwkJCXNldF9wcm9wZXJ0eSAoU09VUkNFICIke19wY2hGaWxlfSIgUFJPUEVSVFkg
R0VORVJBVEVEIFRSVUUpCisJCQlhZGRfY3VzdG9tX2NvbW1hbmQoCisJCQkJT1VUUFVUICIke19w
Y2hGaWxlfSIKKwkJCQlDT01NQU5EICR7X2NtZHN9CisJCQkJREVQRU5EUyAiJHtfcHJlZml4Rmls
ZX0iCisJCQkJSU1QTElDSVRfREVQRU5EUyAke19sYW5ndWFnZX0gIiR7X3ByZWZpeEZpbGV9Igor
CQkJCVdPUktJTkdfRElSRUNUT1JZICIke190YXJnZXRTb3VyY2VEaXJ9IgorCQkJCUNPTU1FTlQg
IkJ1aWxkaW5nICR7X2xhbmd1YWdlfSBwcmVjb21waWxlZCBoZWFkZXIgJHtfcGNoRmlsZVJlbFBh
dGh9IiBWRVJCQVRJTSkKKwkJZW5kaWYoKQorCWVuZGlmKCkKK2VuZGZ1bmN0aW9uKCkKKworZnVu
Y3Rpb24gKGNvdGlyZV9zZXR1cF9wY2hfZmlsZV9pbmNsdXNpb24gX2xhbmd1YWdlIF90YXJnZXQg
X3dob2xlVGFyZ2V0IF9wcmVmaXhGaWxlIF9wY2hGaWxlKQorCXNldCAoX3NvdXJjZUZpbGVzICR7
QVJHTn0pCisJaWYgKENNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9JRCBNQVRDSEVTICJNU1ZD
fEludGVsIikKKwkJIyBmb3IgVmlzdWFsIFN0dWRpbyBhbmQgSW50ZWwsIHdlIGluY2x1ZGUgdGhl
IHByZWNvbXBpbGVkIGhlYWRlciBpbiBhbGwgYnV0IHRoZSBmaXJzdCBzb3VyY2UgZmlsZQorCQkj
IHRoZSBmaXJzdCBzb3VyY2UgZmlsZSBkb2VzIHRoZSBwcmVjb21waWxlZCBoZWFkZXIgY29tcGls
YXRpb24sIHNlZSBjb3RpcmVfc2V0dXBfcGNoX2ZpbGVfY29tcGlsYXRpb24KKwkJbGlzdCAoTEVO
R1RIIF9zb3VyY2VGaWxlcyBfbnVtYmVyT2ZTb3VyY2VGaWxlcykKKwkJaWYgKF9udW1iZXJPZlNv
dXJjZUZpbGVzIEdSRUFURVIgMSkKKwkJCSMgbWFyayBzb3VyY2VzIGFzIGNvdGlyZWQgdG8gcHJl
dmVudCB0aGVtIGZyb20gYmVpbmcgdXNlZCBpbiBhbm90aGVyIGNvdGlyZWQgdGFyZ2V0CisJCQlz
ZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtfc291cmNlRmlsZXN9IFBST1BFUlRJRVMgQ09U
SVJFX1RBUkdFVCAiJHtfdGFyZ2V0fSIpCisJCQlsaXN0IChSRU1PVkVfQVQgX3NvdXJjZUZpbGVz
IDApCisJCQlzZXQgKF9mbGFncyAiIikKKwkJCWNvdGlyZV9kZXRlcm1pbmVfY29tcGlsZXJfdmVy
c2lvbigiJHtfbGFuZ3VhZ2V9IiBDT1RJUkVfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVSKQorCQkJY290
aXJlX2FkZF9wcmVmaXhfcGNoX2luY2x1c2lvbl9mbGFncygKKwkJCQkiJHtfbGFuZ3VhZ2V9IiAi
JHtDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfSUR9IiAiJHtDT1RJUkVfJHtfbGFuZ3VhZ2V9
X0NPTVBJTEVSX1ZFUlNJT059IgorCQkJCSIke19wcmVmaXhGaWxlfSIgIiR7X3BjaEZpbGV9IiBf
ZmxhZ3MpCisJCQlzZXRfcHJvcGVydHkgKFNPVVJDRSAke19zb3VyY2VGaWxlc30gQVBQRU5EX1NU
UklORyBQUk9QRVJUWSBDT01QSUxFX0ZMQUdTICIgJHtfZmxhZ3N9ICIpCisJCQkjIG1ha2Ugc291
cmNlIGZpbGVzIGRlcGVuZCBvbiBwcmVjb21waWxlZCBoZWFkZXIKKwkJCXNldF9wcm9wZXJ0eSAo
U09VUkNFICR7X3NvdXJjZUZpbGVzfSBBUFBFTkQgUFJPUEVSVFkgT0JKRUNUX0RFUEVORFMgIiR7
X3BjaEZpbGV9IikKKwkJZW5kaWYoKQorCWVsc2VpZiAoIiR7Q01BS0VfR0VORVJBVE9SfSIgTUFU
Q0hFUyAiTWFrZWZpbGVzfE5pbmphIikKKwkJaWYgKE5PVCBfd2hvbGVUYXJnZXQpCisJCQkjIGZv
ciBtYWtlZmlsZSBiYXNlZCBnZW5lcmF0b3IsIHdlIGZvcmNlIHRoZSBpbmNsdXNpb24gb2YgdGhl
IHByZWZpeCBoZWFkZXIgZm9yIGEgc3Vic2V0CisJCQkjIG9mIHRoZSBzb3VyY2UgZmlsZXMsIGlm
IHRoaXMgaXMgYSBtdWx0aS1sYW5ndWFnZSB0YXJnZXQgb3IgaGFzIGV4Y2x1ZGVkIGZpbGVzCisJ
CQlzZXQgKF9mbGFncyAiIikKKwkJCWNvdGlyZV9kZXRlcm1pbmVfY29tcGlsZXJfdmVyc2lvbigi
JHtfbGFuZ3VhZ2V9IiBDT1RJUkVfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVSKQorCQkJY290aXJlX2Fk
ZF9wcmVmaXhfcGNoX2luY2x1c2lvbl9mbGFncygKKwkJCQkiJHtfbGFuZ3VhZ2V9IiAiJHtDTUFL
RV8ke19sYW5ndWFnZX1fQ09NUElMRVJfSUR9IiAiJHtDT1RJUkVfJHtfbGFuZ3VhZ2V9X0NPTVBJ
TEVSX1ZFUlNJT059IgorCQkJCSIke19wcmVmaXhGaWxlfSIgIiR7X3BjaEZpbGV9IiBfZmxhZ3Mp
CisJCQlzZXRfcHJvcGVydHkgKFNPVVJDRSAke19zb3VyY2VGaWxlc30gQVBQRU5EX1NUUklORyBQ
Uk9QRVJUWSBDT01QSUxFX0ZMQUdTICIgJHtfZmxhZ3N9ICIpCisJCQkjIG1hcmsgc291cmNlcyBh
cyBjb3RpcmVkIHRvIHByZXZlbnQgdGhlbSBmcm9tIGJlaW5nIHVzZWQgaW4gYW5vdGhlciBjb3Rp
cmVkIHRhcmdldAorCQkJc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7X3NvdXJjZUZpbGVz
fSBQUk9QRVJUSUVTIENPVElSRV9UQVJHRVQgIiR7X3RhcmdldH0iKQorCQllbmRpZigpCisJCSMg
bWFrZSBzb3VyY2UgZmlsZXMgZGVwZW5kIG9uIHByZWNvbXBpbGVkIGhlYWRlcgorCQlzZXRfcHJv
cGVydHkgKFNPVVJDRSAke19zb3VyY2VGaWxlc30gQVBQRU5EIFBST1BFUlRZIE9CSkVDVF9ERVBF
TkRTICIke19wY2hGaWxlfSIpCisJZW5kaWYoKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAo
Y290aXJlX3NldHVwX3ByZWZpeF9maWxlX2luY2x1c2lvbiBfbGFuZ3VhZ2UgX3RhcmdldCBfcHJl
Zml4RmlsZSkKKwlzZXQgKF9zb3VyY2VGaWxlcyAke0FSR059KQorCSMgZm9yY2UgdGhlIGluY2x1
c2lvbiBvZiB0aGUgcHJlZml4IGhlYWRlciBmb3IgdGhlIGdpdmVuIHNvdXJjZSBmaWxlcworCXNl
dCAoX2ZsYWdzICIiKQorCWNvdGlyZV9kZXRlcm1pbmVfY29tcGlsZXJfdmVyc2lvbigiJHtfbGFu
Z3VhZ2V9IiBDT1RJUkVfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVSKQorCWNvdGlyZV9hZGRfcHJlZml4
X3BjaF9pbmNsdXNpb25fZmxhZ3MoCisJCSIke19sYW5ndWFnZX0iICIke0NNQUtFXyR7X2xhbmd1
YWdlfV9DT01QSUxFUl9JRH0iICIke0NPVElSRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfVkVSU0lP
Tn0iCisJCSIke19wcmVmaXhGaWxlfSIgIiIgX2ZsYWdzKQorCXNldF9wcm9wZXJ0eSAoU09VUkNF
ICR7X3NvdXJjZUZpbGVzfSBBUFBFTkRfU1RSSU5HIFBST1BFUlRZIENPTVBJTEVfRkxBR1MgIiAk
e19mbGFnc30gIikKKwkjIG1hcmsgc291cmNlcyBhcyBjb3RpcmVkIHRvIHByZXZlbnQgdGhlbSBm
cm9tIGJlaW5nIHVzZWQgaW4gYW5vdGhlciBjb3RpcmVkIHRhcmdldAorCXNldF9zb3VyY2VfZmls
ZXNfcHJvcGVydGllcygke19zb3VyY2VGaWxlc30gUFJPUEVSVElFUyBDT1RJUkVfVEFSR0VUICIk
e190YXJnZXR9IikKKwkjIG1ha2Ugc291cmNlIGZpbGVzIGRlcGVuZCBvbiBwcmVmaXggaGVhZGVy
CisJc2V0X3Byb3BlcnR5IChTT1VSQ0UgJHtfc291cmNlRmlsZXN9IEFQUEVORCBQUk9QRVJUWSBP
QkpFQ1RfREVQRU5EUyAiJHtfcHJlZml4RmlsZX0iKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlv
biAoY290aXJlX2dldF9maXJzdF9zZXRfcHJvcGVydHlfdmFsdWUgX3Byb3BlcnR5VmFsdWVWYXIg
X3R5cGUgX29iamVjdCkKKwlzZXQgKF9wcm9wZXJ0aWVzICR7QVJHTn0pCisJZm9yZWFjaCAoX3By
b3BlcnR5ICR7X3Byb3BlcnRpZXN9KQorCQlnZXRfcHJvcGVydHkoX3Byb3BlcnR5VmFsdWUgJHtf
dHlwZX0gIiR7X29iamVjdH0iIFBST1BFUlRZICR7X3Byb3BlcnR5fSkKKwkJaWYgKF9wcm9wZXJ0
eVZhbHVlKQorCQkJc2V0ICgke19wcm9wZXJ0eVZhbHVlVmFyfSAke19wcm9wZXJ0eVZhbHVlfSBQ
QVJFTlRfU0NPUEUpCisJCQlyZXR1cm4oKQorCQllbmRpZigpCisJZW5kZm9yZWFjaCgpCisJc2V0
ICgke19wcm9wZXJ0eVZhbHVlVmFyfSAiIiBQQVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCisK
K2Z1bmN0aW9uIChjb3RpcmVfc2V0dXBfY29tYmluZV9jb21tYW5kIF9sYW5ndWFnZSBfc291cmNl
RGlyIF90YXJnZXRTY3JpcHQgX2pvaW5lZEZpbGUgX2NtZHNWYXIpCisJc2V0IChfZmlsZXMgJHtB
UkdOfSkKKwlzZXQgKF9maWxlc1BhdGhzICIiKQorCWZvcmVhY2ggKF9maWxlICR7X2ZpbGVzfSkK
KwkJaWYgKElTX0FCU09MVVRFICIke19maWxlfSIpCisJCQlzZXQgKF9maWxlUGF0aCAiJHtfZmls
ZX0iKQorCQllbHNlKCkKKwkJCWdldF9maWxlbmFtZV9jb21wb25lbnQoX2ZpbGVQYXRoICIke19z
b3VyY2VEaXJ9LyR7X2ZpbGV9IiBBQlNPTFVURSkKKwkJZW5kaWYoKQorCQlmaWxlIChSRUxBVElW
RV9QQVRIIF9maWxlUmVsUGF0aCAiJHtfc291cmNlRGlyfSIgIiR7X2ZpbGVQYXRofSIpCisJCWlm
IChOT1QgSVNfQUJTT0xVVEUgIiR7X2ZpbGVSZWxQYXRofSIgQU5EIE5PVCAiJHtfZmlsZVJlbFBh
dGh9IiBNQVRDSEVTICJeXFwuXFwuIikKKwkJCWxpc3QgKEFQUEVORCBfZmlsZXNQYXRocyAiJHtf
ZmlsZVJlbFBhdGh9IikKKwkJZWxzZSgpCisJCQlsaXN0IChBUFBFTkQgX2ZpbGVzUGF0aHMgIiR7
X2ZpbGVQYXRofSIpCisJCWVuZGlmKCkKKwllbmRmb3JlYWNoKCkKKwljb3RpcmVfc2V0X2NtZF90
b19wcm9sb2d1ZShfcHJlZml4Q21kKQorCWxpc3QgKEFQUEVORCBfcHJlZml4Q21kIC1QICIke0NP
VElSRV9DTUFLRV9NT0RVTEVfRklMRX0iICJjb21iaW5lIikKKwlpZiAoX3RhcmdldFNjcmlwdCkK
KwkJbGlzdCAoQVBQRU5EIF9wcmVmaXhDbWQgIiR7X3RhcmdldFNjcmlwdH0iKQorCWVuZGlmKCkK
KwlsaXN0IChBUFBFTkQgX3ByZWZpeENtZCAiJHtfam9pbmVkRmlsZX0iICR7X2ZpbGVzUGF0aHN9
KQorCWlmIChDT1RJUkVfREVCVUcpCisJCW1lc3NhZ2UgKFNUQVRVUyAiYWRkX2N1c3RvbV9jb21t
YW5kOiBPVVRQVVQgJHtfam9pbmVkRmlsZX0gQ09NTUFORCAke19wcmVmaXhDbWR9IERFUEVORFMg
JHtfZmlsZXN9IikKKwllbmRpZigpCisJc2V0X3Byb3BlcnR5IChTT1VSQ0UgIiR7X2pvaW5lZEZp
bGV9IiBQUk9QRVJUWSBHRU5FUkFURUQgVFJVRSkKKwlmaWxlIChSRUxBVElWRV9QQVRIIF9qb2lu
ZWRGaWxlUmVsUGF0aCAiJHtDTUFLRV9CSU5BUllfRElSfSIgIiR7X2pvaW5lZEZpbGV9IikKKwln
ZXRfZmlsZW5hbWVfY29tcG9uZW50KF9qb2luZWRGaWxlQmFzZU5hbWUgIiR7X2pvaW5lZEZpbGV9
IiBOQU1FX1dFKQorCWdldF9maWxlbmFtZV9jb21wb25lbnQoX2pvaW5lZEZpbGVFeHQgIiR7X2pv
aW5lZEZpbGV9IiBFWFQpCisJaWYgKF9sYW5ndWFnZSBBTkQgX2pvaW5lZEZpbGVCYXNlTmFtZSBN
QVRDSEVTICIke0NPVElSRV9VTklUWV9TT1VSQ0VfRklMRU5BTUVfU1VGRklYfSQiKQorCQlzZXQg
KF9jb21tZW50ICJHZW5lcmF0aW5nICR7X2xhbmd1YWdlfSB1bml0eSBzb3VyY2UgJHtfam9pbmVk
RmlsZVJlbFBhdGh9IikKKwllbHNlaWYgKF9sYW5ndWFnZSBBTkQgX2pvaW5lZEZpbGVCYXNlTmFt
ZSBNQVRDSEVTICIke0NPVElSRV9QUkVGSVhfSEVBREVSX0ZJTEVOQU1FX1NVRkZJWH0kIikKKwkJ
aWYgKF9qb2luZWRGaWxlRXh0IE1BVENIRVMgIl5cXC5jIikKKwkJCXNldCAoX2NvbW1lbnQgIkdl
bmVyYXRpbmcgJHtfbGFuZ3VhZ2V9IHByZWZpeCBzb3VyY2UgJHtfam9pbmVkRmlsZVJlbFBhdGh9
IikKKwkJZWxzZSgpCisJCQlzZXQgKF9jb21tZW50ICJHZW5lcmF0aW5nICR7X2xhbmd1YWdlfSBw
cmVmaXggaGVhZGVyICR7X2pvaW5lZEZpbGVSZWxQYXRofSIpCisJCWVuZGlmKCkKKwllbHNlKCkK
KwkJc2V0IChfY29tbWVudCAiR2VuZXJhdGluZyAke19qb2luZWRGaWxlUmVsUGF0aH0iKQorCWVu
ZGlmKCkKKwlhZGRfY3VzdG9tX2NvbW1hbmQoCisJCU9VVFBVVCAiJHtfam9pbmVkRmlsZX0iCisJ
CUNPTU1BTkQgJHtfcHJlZml4Q21kfQorCQlERVBFTkRTICR7X2ZpbGVzfQorCQlDT01NRU5UICIk
e19jb21tZW50fSIKKwkJV09SS0lOR19ESVJFQ1RPUlkgIiR7X3NvdXJjZURpcn0iIFZFUkJBVElN
KQorCWxpc3QgKEFQUEVORCAke19jbWRzVmFyfSBDT01NQU5EICR7X3ByZWZpeENtZH0pCisJc2V0
ICgke19jbWRzVmFyfSAkeyR7X2NtZHNWYXJ9fSBQQVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigp
CisKK2Z1bmN0aW9uIChjb3RpcmVfc2V0dXBfdGFyZ2V0X3BjaF91c2FnZSBfbGFuZ3VhZ2VzIF90
YXJnZXRTb3VyY2VEaXIgX3RhcmdldCBfd2hvbGVUYXJnZXQpCisJaWYgKFhDT0RFKQorCQkjIGZv
ciBYY29kZSwgd2UgYXR0YWNoIGEgcHJlLWJ1aWxkIGFjdGlvbiB0byBnZW5lcmF0ZSB0aGUgdW5p
dHkgc291cmNlcyBhbmQgcHJlZml4IGhlYWRlcnMKKwkJIyBpZiBuZWNlc3NhcnksIHdlIGFsc28g
Z2VuZXJhdGUgYSBzaW5nbGUgcHJlZml4IGhlYWRlciB3aGljaCBpbmNsdWRlcyBhbGwgbGFuZ3Vh
Z2Ugc3BlY2lmaWMgcHJlZml4IGhlYWRlcnMKKwkJc2V0IChfcHJlZml4RmlsZXMgIiIpCisJCWZv
cmVhY2ggKF9sYW5ndWFnZSAke19sYW5ndWFnZXN9KQorCQkJZ2V0X3Byb3BlcnR5KF9wcmVmaXhG
aWxlIFRBUkdFVCAke190YXJnZXR9IFBST1BFUlRZIENPVElSRV8ke19sYW5ndWFnZX1fUFJFRklY
X0hFQURFUikKKwkJCWlmIChfcHJlZml4RmlsZSkKKwkJCQlsaXN0IChBUFBFTkQgX3ByZWZpeEZp
bGVzICIke19wcmVmaXhGaWxlfSIpCisJCQllbmRpZigpCisJCWVuZGZvcmVhY2goKQorCQlzZXQg
KF9jbWRzICR7QVJHTn0pCisJCWxpc3QgKExFTkdUSCBfcHJlZml4RmlsZXMgX251bWJlck9mUHJl
Zml4RmlsZXMpCisJCWlmIChfbnVtYmVyT2ZQcmVmaXhGaWxlcyBHUkVBVEVSIDEpCisJCQljb3Rp
cmVfbWFrZV9wcmVmaXhfZmlsZV9wYXRoKCIiICR7X3RhcmdldH0gX3ByZWZpeEhlYWRlcikKKwkJ
CWNvdGlyZV9zZXR1cF9jb21iaW5lX2NvbW1hbmQoIiIgIiR7X3RhcmdldFNvdXJjZURpcn0iICIi
ICIke19wcmVmaXhIZWFkZXJ9IiBfY21kcyAke19wcmVmaXhGaWxlc30pCisJCWVsc2UoKQorCQkJ
c2V0IChfcHJlZml4SGVhZGVyICIke19wcmVmaXhGaWxlc30iKQorCQllbmRpZigpCisJCWlmIChD
T1RJUkVfREVCVUcpCisJCQltZXNzYWdlIChTVEFUVVMgImFkZF9jdXN0b21fY29tbWFuZDogVEFS
R0VUICR7X3RhcmdldH0gUFJFX0JVSUxEICR7X2NtZHN9IikKKwkJZW5kaWYoKQorCQlhZGRfY3Vz
dG9tX2NvbW1hbmQoVEFSR0VUICIke190YXJnZXR9IgorCQkJUFJFX0JVSUxEICR7X2NtZHN9CisJ
CQlXT1JLSU5HX0RJUkVDVE9SWSAiJHtfdGFyZ2V0U291cmNlRGlyfSIKKwkJCUNPTU1FTlQgIlVw
ZGF0aW5nIHRhcmdldCAke190YXJnZXR9IHByZWZpeCBoZWFkZXJzIiBWRVJCQVRJTSkKKwkJIyBt
YWtlIFhjb2RlIHByZWNvbXBpbGUgdGhlIGdlbmVyYXRlZCBwcmVmaXggaGVhZGVyIHdpdGggUHJv
Y2Vzc1BDSCBhbmQgUHJvY2Vzc1BDSCsrCisJCXNldF90YXJnZXRfcHJvcGVydGllcygke190YXJn
ZXR9IFBST1BFUlRJRVMgWENPREVfQVRUUklCVVRFX0dDQ19QUkVDT01QSUxFX1BSRUZJWF9IRUFE
RVIgIllFUyIpCisJCXNldF90YXJnZXRfcHJvcGVydGllcygke190YXJnZXR9IFBST1BFUlRJRVMg
WENPREVfQVRUUklCVVRFX0dDQ19QUkVGSVhfSEVBREVSICIke19wcmVmaXhIZWFkZXJ9IikKKwll
bHNlaWYgKCIke0NNQUtFX0dFTkVSQVRPUn0iIE1BVENIRVMgIk1ha2VmaWxlc3xOaW5qYSIpCisJ
CSMgZm9yIG1ha2VmaWxlIGJhc2VkIGdlbmVyYXRvciwgd2UgZm9yY2UgaW5jbHVzaW9uIG9mIHRo
ZSBwcmVmaXggaGVhZGVyIGZvciBhbGwgdGFyZ2V0IHNvdXJjZSBmaWxlcworCQkjIGlmIHRoaXMg
aXMgYSBzaW5nbGUtbGFuZ3VhZ2UgdGFyZ2V0IHdpdGhvdXQgYW55IGV4Y2x1ZGVkIGZpbGVzCisJ
CWlmIChfd2hvbGVUYXJnZXQpCisJCQlzZXQgKF9sYW5ndWFnZSAiJHtfbGFuZ3VhZ2VzfSIpCisJ
CQkjIGZvciBWaXN1YWwgU3R1ZGlvIGFuZCBJbnRlbCwgcHJlY29tcGlsZWQgaGVhZGVyIGluY2x1
c2lvbiBpcyBhbHdheXMgZG9uZSBvbiB0aGUgc291cmNlIGZpbGUgbGV2ZWwKKwkJCSMgc2VlIGNv
dGlyZV9zZXR1cF9wY2hfZmlsZV9pbmNsdXNpb24KKwkJCWlmIChOT1QgQ01BS0VfJHtfbGFuZ3Vh
Z2V9X0NPTVBJTEVSX0lEIE1BVENIRVMgIk1TVkN8SW50ZWwiKQorCQkJCWdldF9wcm9wZXJ0eShf
cHJlZml4RmlsZSBUQVJHRVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJUkVfJHtfbGFuZ3VhZ2V9
X1BSRUZJWF9IRUFERVIpCisJCQkJZ2V0X3Byb3BlcnR5KF9wY2hGaWxlIFRBUkdFVCAke190YXJn
ZXR9IFBST1BFUlRZIENPVElSRV8ke19sYW5ndWFnZX1fUFJFQ09NUElMRURfSEVBREVSKQorCQkJ
CXNldCAoX2ZsYWdzICIiKQorCQkJCWNvdGlyZV9kZXRlcm1pbmVfY29tcGlsZXJfdmVyc2lvbigi
JHtfbGFuZ3VhZ2V9IiBDT1RJUkVfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVSKQorCQkJCWNvdGlyZV9h
ZGRfcHJlZml4X3BjaF9pbmNsdXNpb25fZmxhZ3MoCisJCQkJCSIke19sYW5ndWFnZX0iICIke0NN
QUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9JRH0iICIke0NPVElSRV8ke19sYW5ndWFnZX1fQ09N
UElMRVJfVkVSU0lPTn0iCisJCQkJCSIke19wcmVmaXhGaWxlfSIgIiR7X3BjaEZpbGV9IiBfZmxh
Z3MpCisJCQkJc2V0X3Byb3BlcnR5KFRBUkdFVCAke190YXJnZXR9IEFQUEVORF9TVFJJTkcgUFJP
UEVSVFkgQ09NUElMRV9GTEFHUyAiICR7X2ZsYWdzfSAiKQorCQkJZW5kaWYoKQorCQllbmRpZigp
CisJZW5kaWYoKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX3NldHVwX3VuaXR5
X2dlbmVyYXRpb25fY29tbWFuZHMgX2xhbmd1YWdlIF90YXJnZXRTb3VyY2VEaXIgX3RhcmdldCBf
dGFyZ2V0U2NyaXB0IF90YXJnZXRDb25maWdTY3JpcHQgX3VuaXR5RmlsZXMgX2NtZHNWYXIpCisJ
c2V0IChfZGVwZW5kZW5jeVNvdXJjZXMgIiIpCisJY290aXJlX2dldF91bml0eV9zb3VyY2VfZGVw
ZW5kZW5jaWVzKCR7X2xhbmd1YWdlfSAke190YXJnZXR9IF9kZXBlbmRlbmN5U291cmNlcyAke0FS
R059KQorCWZvcmVhY2ggKF91bml0eUZpbGUgJHtfdW5pdHlGaWxlc30pCisJCWZpbGUgKFJFTEFU
SVZFX1BBVEggX3VuaXR5RmlsZVJlbFBhdGggIiR7Q01BS0VfQklOQVJZX0RJUn0iICIke191bml0
eUZpbGV9IikKKwkJc2V0X3Byb3BlcnR5IChTT1VSQ0UgIiR7X3VuaXR5RmlsZX0iIFBST1BFUlRZ
IEdFTkVSQVRFRCBUUlVFKQorCQkjIHNldCB1cCBjb21waWxlZCB1bml0eSBzb3VyY2UgZGVwZW5k
ZW5jaWVzCisJCSMgdGhpcyBlbnN1cmVzIHRoYXQgbWlzc2luZyBzb3VyY2UgZmlsZXMgYXJlIGdl
bmVyYXRlZCBiZWZvcmUgdGhlIHVuaXR5IGZpbGUgaXMgY29tcGlsZWQKKwkJaWYgKENPVElSRV9E
RUJVRyBBTkQgX2RlcGVuZGVuY3lTb3VyY2VzKQorCQkJbWVzc2FnZSAoU1RBVFVTICIke191bml0
eUZpbGV9IE9CSkVDVF9ERVBFTkRTICR7X2RlcGVuZGVuY3lTb3VyY2VzfSIpCisJCWVuZGlmKCkK
KwkJaWYgKF9kZXBlbmRlbmN5U291cmNlcykKKwkJCXNldF9wcm9wZXJ0eSAoU09VUkNFICIke191
bml0eUZpbGV9IiBQUk9QRVJUWSBPQkpFQ1RfREVQRU5EUyAke19kZXBlbmRlbmN5U291cmNlc30p
CisJCWVuZGlmKCkKKwkJaWYgKFdJTjMyIEFORCBDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJf
SUQgTUFUQ0hFUyAiTVNWQ3xJbnRlbCIpCisJCQkjIHVuaXR5IGZpbGUgY29tcGlsYXRpb24gcmVz
dWx0cyBpbiBwb3RlbnRpYWxseSBodWdlIG9iamVjdCBmaWxlLCB0aHVzIHVzZSAvYmlnb2JqIGJ5
IGRlZmF1bHQgdW50ZXIgTVNWQyBhbmQgV2luZG93cyBJbnRlbAorCQkJc2V0X3Byb3BlcnR5IChT
T1VSQ0UgIiR7X3VuaXR5RmlsZX0iIEFQUEVORF9TVFJJTkcgUFJPUEVSVFkgQ09NUElMRV9GTEFH
UyAiL2JpZ29iaiIpCisJCWVuZGlmKCkKKwkJY290aXJlX3NldF9jbWRfdG9fcHJvbG9ndWUoX3Vu
aXR5Q21kKQorCQlsaXN0IChBUFBFTkQgX3VuaXR5Q21kIC1QICIke0NPVElSRV9DTUFLRV9NT0RV
TEVfRklMRX0iICJ1bml0eSIgIiR7X3RhcmdldENvbmZpZ1NjcmlwdH0iICIke191bml0eUZpbGV9
IikKKwkJaWYgKENPVElSRV9ERUJVRykKKwkJCW1lc3NhZ2UgKFNUQVRVUyAiYWRkX2N1c3RvbV9j
b21tYW5kOiBPVVRQVVQgJHtfdW5pdHlGaWxlfSBDT01NQU5EICR7X3VuaXR5Q21kfSBERVBFTkRT
ICR7X3RhcmdldFNjcmlwdH0iKQorCQllbmRpZigpCisJCWFkZF9jdXN0b21fY29tbWFuZCgKKwkJ
CU9VVFBVVCAiJHtfdW5pdHlGaWxlfSIKKwkJCUNPTU1BTkQgJHtfdW5pdHlDbWR9CisJCQlERVBF
TkRTICIke190YXJnZXRTY3JpcHR9IgorCQkJQ09NTUVOVCAiR2VuZXJhdGluZyAke19sYW5ndWFn
ZX0gdW5pdHkgc291cmNlICR7X3VuaXR5RmlsZVJlbFBhdGh9IgorCQkJV09SS0lOR19ESVJFQ1RP
UlkgIiR7X3RhcmdldFNvdXJjZURpcn0iIFZFUkJBVElNKQorCQlsaXN0IChBUFBFTkQgJHtfY21k
c1Zhcn0gQ09NTUFORCAke191bml0eUNtZH0pCisJZW5kZm9yZWFjaCgpCisJbGlzdCAoTEVOR1RI
IF91bml0eUZpbGVzIF9udW1iZXJPZlVuaXR5RmlsZXMpCisJaWYgKF9udW1iZXJPZlVuaXR5Rmls
ZXMgR1JFQVRFUiAxKQorCQkjIGNyZWF0ZSBhIGpvaW50IHVuaXR5IGZpbGUgZnJvbSBhbGwgdW5p
dHkgZmlsZSBzZWdtZW50cworCQljb3RpcmVfbWFrZV9zaW5nbGVfdW5pdHlfc291cmNlX2ZpbGVf
cGF0aCgke19sYW5ndWFnZX0gJHtfdGFyZ2V0fSBfdW5pdHlGaWxlKQorCQljb3RpcmVfc2V0dXBf
Y29tYmluZV9jb21tYW5kKCR7X2xhbmd1YWdlfSAiJHtfdGFyZ2V0U291cmNlRGlyfSIgIiR7X3Rh
cmdldENvbmZpZ1NjcmlwdH0iICIke191bml0eUZpbGV9IiAke19jbWRzVmFyfSAke191bml0eUZp
bGVzfSkKKwllbmRpZigpCisJc2V0ICgke19jbWRzVmFyfSAkeyR7X2NtZHNWYXJ9fSBQQVJFTlRf
U0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfc2V0dXBfcHJlZml4X2dl
bmVyYXRpb25fY29tbWFuZCBfbGFuZ3VhZ2UgX3RhcmdldCBfdGFyZ2V0U291cmNlRGlyIF90YXJn
ZXRTY3JpcHQgX3ByZWZpeEZpbGUgX3VuaXR5RmlsZSBfY21kc1ZhcikKKwlzZXQgKF9zb3VyY2VG
aWxlcyAke0FSR059KQorCXNldCAoX2RlcGVuZGVuY3lTb3VyY2VzICIiKQorCWNvdGlyZV9nZXRf
cHJlZml4X2hlYWRlcl9kZXBlbmRlbmNpZXMoJHtfbGFuZ3VhZ2V9ICR7X3RhcmdldH0gX2RlcGVu
ZGVuY3lTb3VyY2VzICR7X3NvdXJjZUZpbGVzfSkKKwljb3RpcmVfc2V0X2NtZF90b19wcm9sb2d1
ZShfcHJlZml4Q21kKQorCWxpc3QgKEFQUEVORCBfcHJlZml4Q21kIC1QICIke0NPVElSRV9DTUFL
RV9NT0RVTEVfRklMRX0iICJwcmVmaXgiICIke190YXJnZXRTY3JpcHR9IiAiJHtfcHJlZml4Rmls
ZX0iICIke191bml0eUZpbGV9IikKKwlzZXRfcHJvcGVydHkgKFNPVVJDRSAiJHtfcHJlZml4Rmls
ZX0iIFBST1BFUlRZIEdFTkVSQVRFRCBUUlVFKQorCWlmIChDT1RJUkVfREVCVUcpCisJCW1lc3Nh
Z2UgKFNUQVRVUyAiYWRkX2N1c3RvbV9jb21tYW5kOiBPVVRQVVQgJHtfcHJlZml4RmlsZX0gQ09N
TUFORCAke19wcmVmaXhDbWR9IERFUEVORFMgJHtfdW5pdHlGaWxlfSAke19kZXBlbmRlbmN5U291
cmNlc30iKQorCWVuZGlmKCkKKwlmaWxlIChSRUxBVElWRV9QQVRIIF9wcmVmaXhGaWxlUmVsUGF0
aCAiJHtDTUFLRV9CSU5BUllfRElSfSIgIiR7X3ByZWZpeEZpbGV9IikKKwlnZXRfZmlsZW5hbWVf
Y29tcG9uZW50KF9wcmVmaXhGaWxlRXh0ICIke19wcmVmaXhGaWxlfSIgRVhUKQorCWlmIChfcHJl
Zml4RmlsZUV4dCBNQVRDSEVTICJeXFwuYyIpCisJCXNldCAoX2NvbW1lbnQgIkdlbmVyYXRpbmcg
JHtfbGFuZ3VhZ2V9IHByZWZpeCBzb3VyY2UgJHtfcHJlZml4RmlsZVJlbFBhdGh9IikKKwllbHNl
KCkKKwkJc2V0IChfY29tbWVudCAiR2VuZXJhdGluZyAke19sYW5ndWFnZX0gcHJlZml4IGhlYWRl
ciAke19wcmVmaXhGaWxlUmVsUGF0aH0iKQorCWVuZGlmKCkKKwlhZGRfY3VzdG9tX2NvbW1hbmQo
CisJCU9VVFBVVCAiJHtfcHJlZml4RmlsZX0iICIke19wcmVmaXhGaWxlfS5sb2ciCisJCUNPTU1B
TkQgJHtfcHJlZml4Q21kfQorCQlERVBFTkRTICIke191bml0eUZpbGV9IiAke19kZXBlbmRlbmN5
U291cmNlc30KKwkJQ09NTUVOVCAiJHtfY29tbWVudH0iCisJCVdPUktJTkdfRElSRUNUT1JZICIk
e0NNQUtFX0JJTkFSWV9ESVJ9IiBWRVJCQVRJTSkKKwlsaXN0IChBUFBFTkQgJHtfY21kc1Zhcn0g
Q09NTUFORCAke19wcmVmaXhDbWR9KQorCXNldCAoJHtfY21kc1Zhcn0gJHske19jbWRzVmFyfX0g
UEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX3NldHVwX3By
ZWZpeF9nZW5lcmF0aW9uX2Zyb21fdW5pdHlfY29tbWFuZCBfbGFuZ3VhZ2UgX3RhcmdldCBfdGFy
Z2V0U291cmNlRGlyIF90YXJnZXRTY3JpcHQgX3ByZWZpeEZpbGUgX3VuaXR5RmlsZXMgX2NtZHNW
YXIpCisJc2V0IChfc291cmNlRmlsZXMgJHtBUkdOfSkKKwlpZiAoQ01BS0VfJHtfbGFuZ3VhZ2V9
X0NPTVBJTEVSX0lEIE1BVENIRVMgIkdOVXxDbGFuZyIpCisJCSMgR05VIGFuZCBDbGFuZyByZXF1
aXJlIGluZGlyZWN0IGNvbXBpbGF0aW9uIG9mIHRoZSBwcmVmaXggaGVhZGVyIHRvIG1ha2UgdGhl
bSBob25vciB0aGUgc3lzdGVtX2hlYWRlciBwcmFnbWEKKwkJY290aXJlX3ByZWZpeF9oZWFkZXJf
dG9fc291cmNlX2ZpbGVfcGF0aCgke19sYW5ndWFnZX0gIiR7X3ByZWZpeEZpbGV9IiBfcHJlZml4
U291cmNlRmlsZSkKKwllbHNlKCkKKwkJc2V0IChfcHJlZml4U291cmNlRmlsZSAiJHtfcHJlZml4
RmlsZX0iKQorCWVuZGlmKCkKKwlsaXN0IChMRU5HVEggX3VuaXR5RmlsZXMgX251bWJlck9mVW5p
dHlGaWxlcykKKwlpZiAoX251bWJlck9mVW5pdHlGaWxlcyBHUkVBVEVSIDEpCisJCWNvdGlyZV9t
YWtlX3NpbmdsZV91bml0eV9zb3VyY2VfZmlsZV9wYXRoKCR7X2xhbmd1YWdlfSAke190YXJnZXR9
IF91bml0eUZpbGUpCisJCWNvdGlyZV9zZXR1cF9wcmVmaXhfZ2VuZXJhdGlvbl9jb21tYW5kKAor
CQkJJHtfbGFuZ3VhZ2V9ICR7X3RhcmdldH0gIiR7X3RhcmdldFNvdXJjZURpcn0iICIke190YXJn
ZXRTY3JpcHR9IgorCQkJIiR7X3ByZWZpeFNvdXJjZUZpbGV9IiAiJHtfdW5pdHlGaWxlfSIgJHtf
Y21kc1Zhcn0gJHtfc291cmNlRmlsZXN9KQorCWVsc2UoKQorCQljb3RpcmVfc2V0dXBfcHJlZml4
X2dlbmVyYXRpb25fY29tbWFuZCgKKwkJCSR7X2xhbmd1YWdlfSAke190YXJnZXR9ICIke190YXJn
ZXRTb3VyY2VEaXJ9IiAiJHtfdGFyZ2V0U2NyaXB0fSIKKwkJCSIke19wcmVmaXhTb3VyY2VGaWxl
fSIgIiR7X3VuaXR5RmlsZXN9IiAke19jbWRzVmFyfSAke19zb3VyY2VGaWxlc30pCisJZW5kaWYo
KQorCWlmIChDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfSUQgTUFUQ0hFUyAiR05VfENsYW5n
IikKKwkJY290aXJlX3NldHVwX2NvbWJpbmVfY29tbWFuZCgke19sYW5ndWFnZX0gIiR7X3Rhcmdl
dFNvdXJjZURpcn0iICIke190YXJnZXRTY3JpcHR9IiAiJHtfcHJlZml4RmlsZX0iICR7X2NtZHNW
YXJ9ICR7X3ByZWZpeFNvdXJjZUZpbGV9KQorCWVuZGlmKCkKKwlzZXQgKCR7X2NtZHNWYXJ9ICR7
JHtfY21kc1Zhcn19IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNv
dGlyZV9zZXR1cF9wcmVmaXhfZ2VuZXJhdGlvbl9mcm9tX3Byb3ZpZGVkX2NvbW1hbmQgX2xhbmd1
YWdlIF90YXJnZXQgX3RhcmdldFNvdXJjZURpciBfdGFyZ2V0U2NyaXB0IF9wcmVmaXhGaWxlIF9j
bWRzVmFyKQorCXNldCAoX3ByZWZpeEhlYWRlckZpbGVzICR7QVJHTn0pCisJaWYgKENNQUtFXyR7
X2xhbmd1YWdlfV9DT01QSUxFUl9JRCBNQVRDSEVTICJHTlV8Q2xhbmciKQorCQkjIEdOVSBhbmQg
Q2xhbmcgcmVxdWlyZSBpbmRpcmVjdCBjb21waWxhdGlvbiBvZiB0aGUgcHJlZml4IGhlYWRlciB0
byBtYWtlIHRoZW0gaG9ub3IgdGhlIHN5c3RlbV9oZWFkZXIgcHJhZ21hCisJCWNvdGlyZV9wcmVm
aXhfaGVhZGVyX3RvX3NvdXJjZV9maWxlX3BhdGgoJHtfbGFuZ3VhZ2V9ICIke19wcmVmaXhGaWxl
fSIgX3ByZWZpeFNvdXJjZUZpbGUpCisJZWxzZSgpCisJCXNldCAoX3ByZWZpeFNvdXJjZUZpbGUg
IiR7X3ByZWZpeEZpbGV9IikKKwllbmRpZigpCisJY290aXJlX3NldHVwX2NvbWJpbmVfY29tbWFu
ZCgke19sYW5ndWFnZX0gIiR7X3RhcmdldFNvdXJjZURpcn0iICIke190YXJnZXRTY3JpcHR9IiAi
JHtfcHJlZml4U291cmNlRmlsZX0iIF9jbWRzICR7X3ByZWZpeEhlYWRlckZpbGVzfSkKKwlpZiAo
Q01BS0VfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVSX0lEIE1BVENIRVMgIkdOVXxDbGFuZyIpCisJCWNv
dGlyZV9zZXR1cF9jb21iaW5lX2NvbW1hbmQoJHtfbGFuZ3VhZ2V9ICIke190YXJnZXRTb3VyY2VE
aXJ9IiAiJHtfdGFyZ2V0U2NyaXB0fSIgIiR7X3ByZWZpeEZpbGV9IiBfY21kcyAke19wcmVmaXhT
b3VyY2VGaWxlfSkKKwllbmRpZigpCisJc2V0ICgke19jbWRzVmFyfSAkeyR7X2NtZHNWYXJ9fSBQ
QVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfaW5pdF9jb3Rp
cmVfdGFyZ2V0X3Byb3BlcnRpZXMgX3RhcmdldCkKKwlnZXRfcHJvcGVydHkoX2lzU2V0IFRBUkdF
VCAke190YXJnZXR9IFBST1BFUlRZIENPVElSRV9FTkFCTEVfUFJFQ09NUElMRURfSEVBREVSIFNF
VCkKKwlpZiAoTk9UIF9pc1NldCkKKwkJc2V0X3Byb3BlcnR5KFRBUkdFVCAke190YXJnZXR9IFBS
T1BFUlRZIENPVElSRV9FTkFCTEVfUFJFQ09NUElMRURfSEVBREVSIFRSVUUpCisJZW5kaWYoKQor
CWdldF9wcm9wZXJ0eShfaXNTZXQgVEFSR0VUICR7X3RhcmdldH0gUFJPUEVSVFkgQ09USVJFX0FE
RF9VTklUWV9CVUlMRCBTRVQpCisJaWYgKE5PVCBfaXNTZXQpCisJCXNldF9wcm9wZXJ0eShUQVJH
RVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJUkVfQUREX1VOSVRZX0JVSUxEIFRSVUUpCisJZW5k
aWYoKQorCWdldF9wcm9wZXJ0eShfaXNTZXQgVEFSR0VUICR7X3RhcmdldH0gUFJPUEVSVFkgQ09U
SVJFX0FERF9DTEVBTiBTRVQpCisJaWYgKE5PVCBfaXNTZXQpCisJCXNldF9wcm9wZXJ0eShUQVJH
RVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJUkVfQUREX0NMRUFOIEZBTFNFKQorCWVuZGlmKCkK
KwlnZXRfcHJvcGVydHkoX2lzU2V0IFRBUkdFVCAke190YXJnZXR9IFBST1BFUlRZIENPVElSRV9Q
UkVGSVhfSEVBREVSX0lHTk9SRV9QQVRIIFNFVCkKKwlpZiAoTk9UIF9pc1NldCkKKwkJc2V0X3By
b3BlcnR5KFRBUkdFVCAke190YXJnZXR9IFBST1BFUlRZIENPVElSRV9QUkVGSVhfSEVBREVSX0lH
Tk9SRV9QQVRIICIke0NNQUtFX1NPVVJDRV9ESVJ9IikKKwkJY290aXJlX2NoZWNrX2lzX3BhdGhf
cmVsYXRpdmVfdG8oIiR7Q01BS0VfQklOQVJZX0RJUn0iIF9pc1JlbGF0aXZlICIke0NNQUtFX1NP
VVJDRV9ESVJ9IikKKwkJaWYgKE5PVCBfaXNSZWxhdGl2ZSkKKwkJCXNldF9wcm9wZXJ0eShUQVJH
RVQgJHtfdGFyZ2V0fSBBUFBFTkQgUFJPUEVSVFkgQ09USVJFX1BSRUZJWF9IRUFERVJfSUdOT1JF
X1BBVEggIiR7Q01BS0VfQklOQVJZX0RJUn0iKQorCQllbmRpZigpCisJZW5kaWYoKQorCWdldF9w
cm9wZXJ0eShfaXNTZXQgVEFSR0VUICR7X3RhcmdldH0gUFJPUEVSVFkgQ09USVJFX1BSRUZJWF9I
RUFERVJfSU5DTFVERV9QQVRIIFNFVCkKKwlpZiAoTk9UIF9pc1NldCkKKwkJc2V0X3Byb3BlcnR5
KFRBUkdFVCAke190YXJnZXR9IFBST1BFUlRZIENPVElSRV9QUkVGSVhfSEVBREVSX0lOQ0xVREVf
UEFUSCAiIikKKwllbmRpZigpCisJZ2V0X3Byb3BlcnR5KF9pc1NldCBUQVJHRVQgJHtfdGFyZ2V0
fSBQUk9QRVJUWSBDT1RJUkVfVU5JVFlfU09VUkNFX1BSRV9VTkRFRlMgU0VUKQorCWlmIChOT1Qg
X2lzU2V0KQorCQlzZXRfcHJvcGVydHkoVEFSR0VUICR7X3RhcmdldH0gUFJPUEVSVFkgQ09USVJF
X1VOSVRZX1NPVVJDRV9QUkVfVU5ERUZTICIiKQorCWVuZGlmKCkKKwlnZXRfcHJvcGVydHkoX2lz
U2V0IFRBUkdFVCAke190YXJnZXR9IFBST1BFUlRZIENPVElSRV9VTklUWV9TT1VSQ0VfUE9TVF9V
TkRFRlMgU0VUKQorCWlmIChOT1QgX2lzU2V0KQorCQlzZXRfcHJvcGVydHkoVEFSR0VUICR7X3Rh
cmdldH0gUFJPUEVSVFkgQ09USVJFX1VOSVRZX1NPVVJDRV9QT1NUX1VOREVGUyAiIikKKwllbmRp
ZigpCisJZ2V0X3Byb3BlcnR5KF9pc1NldCBUQVJHRVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJ
UkVfVU5JVFlfTElOS19MSUJSQVJJRVNfSU5JVCBTRVQpCisJaWYgKE5PVCBfaXNTZXQpCisJCXNl
dF9wcm9wZXJ0eShUQVJHRVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJUkVfVU5JVFlfTElOS19M
SUJSQVJJRVNfSU5JVCAiIikKKwllbmRpZigpCisJZ2V0X3Byb3BlcnR5KF9pc1NldCBUQVJHRVQg
JHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJUkVfVU5JVFlfU09VUkNFX01BWElNVU1fTlVNQkVSX09G
X0lOQ0xVREVTIFNFVCkKKwlpZiAoTk9UIF9pc1NldCkKKwkJaWYgKENPVElSRV9NQVhJTVVNX05V
TUJFUl9PRl9VTklUWV9JTkNMVURFUykKKwkJCXNldF9wcm9wZXJ0eShUQVJHRVQgJHtfdGFyZ2V0
fSBQUk9QRVJUWSBDT1RJUkVfVU5JVFlfU09VUkNFX01BWElNVU1fTlVNQkVSX09GX0lOQ0xVREVT
ICIke0NPVElSRV9NQVhJTVVNX05VTUJFUl9PRl9VTklUWV9JTkNMVURFU30iKQorCQllbHNlKCkK
KwkJCXNldF9wcm9wZXJ0eShUQVJHRVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJUkVfVU5JVFlf
U09VUkNFX01BWElNVU1fTlVNQkVSX09GX0lOQ0xVREVTICIiKQorCQllbmRpZigpCisJZW5kaWYo
KQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX21ha2VfdGFyZ2V0X21lc3NhZ2Ug
X3RhcmdldCBfbGFuZ3VhZ2VzIF9kaXNhYmxlTXNnIF90YXJnZXRNc2dWYXIpCisJZ2V0X3Rhcmdl
dF9wcm9wZXJ0eShfdGFyZ2V0VXNlUENIICR7X3RhcmdldH0gQ09USVJFX0VOQUJMRV9QUkVDT01Q
SUxFRF9IRUFERVIpCisJZ2V0X3RhcmdldF9wcm9wZXJ0eShfdGFyZ2V0QWRkU0NVICR7X3Rhcmdl
dH0gQ09USVJFX0FERF9VTklUWV9CVUlMRCkKKwlzdHJpbmcgKFJFUExBQ0UgIjsiICIgIiBfbGFu
Z3VhZ2VzU3RyICIke19sYW5ndWFnZXN9IikKKwltYXRoIChFWFBSIF9udW1iZXJPZkV4Y2x1ZGVk
RmlsZXMgIiR7QVJHQ30gLSA0IikKKwlpZiAoX251bWJlck9mRXhjbHVkZWRGaWxlcyBFUVVBTCAw
KQorCQlzZXQgKF9leGNsdWRlZFN0ciAiIikKKwllbHNlaWYgKENPVElSRV9WRVJCT1NFIE9SIF9u
dW1iZXJPZkV4Y2x1ZGVkRmlsZXMgTEVTUyA0KQorCQlzdHJpbmcgKFJFUExBQ0UgIjsiICIsICIg
X2V4Y2x1ZGVkU3RyICJleGNsdWRpbmcgJHtBUkdOfSIpCisJZWxzZSgpCisJCXNldCAoX2V4Y2x1
ZGVkU3RyICJleGNsdWRpbmcgJHtfbnVtYmVyT2ZFeGNsdWRlZEZpbGVzfSBmaWxlcyIpCisJZW5k
aWYoKQorCXNldCAoX3RhcmdldE1zZyAiIikKKwlpZiAoTk9UIF9sYW5ndWFnZXMpCisJCXNldCAo
X3RhcmdldE1zZyAiVGFyZ2V0ICR7X3RhcmdldH0gY2Fubm90IGJlIGNvdGlyZWQuIikKKwkJaWYg
KF9kaXNhYmxlTXNnKQorCQkJc2V0IChfdGFyZ2V0TXNnICIke190YXJnZXRNc2d9ICR7X2Rpc2Fi
bGVNc2d9IikKKwkJZW5kaWYoKQorCWVsc2VpZiAoTk9UIF90YXJnZXRVc2VQQ0ggQU5EIE5PVCBf
dGFyZ2V0QWRkU0NVKQorCQlzZXQgKF90YXJnZXRNc2cgIiR7X2xhbmd1YWdlc1N0cn0gdGFyZ2V0
ICR7X3RhcmdldH0gY290aXJlZCB3aXRob3V0IHVuaXR5IGJ1aWxkIGFuZCBwcmVjb21waWxlZCBo
ZWFkZXIuIikKKwkJaWYgKF9kaXNhYmxlTXNnKQorCQkJc2V0IChfdGFyZ2V0TXNnICIke190YXJn
ZXRNc2d9ICR7X2Rpc2FibGVNc2d9IikKKwkJZW5kaWYoKQorCWVsc2VpZiAoTk9UIF90YXJnZXRV
c2VQQ0gpCisJCWlmIChfZXhjbHVkZWRTdHIpCisJCQlzZXQgKF90YXJnZXRNc2cgIiR7X2xhbmd1
YWdlc1N0cn0gdGFyZ2V0ICR7X3RhcmdldH0gY290aXJlZCB3aXRob3V0IHByZWNvbXBpbGVkIGhl
YWRlciAke19leGNsdWRlZFN0cn0uIikKKwkJZWxzZSgpCisJCQlzZXQgKF90YXJnZXRNc2cgIiR7
X2xhbmd1YWdlc1N0cn0gdGFyZ2V0ICR7X3RhcmdldH0gY290aXJlZCB3aXRob3V0IHByZWNvbXBp
bGVkIGhlYWRlci4iKQorCQllbmRpZigpCisJCWlmIChfZGlzYWJsZU1zZykKKwkJCXNldCAoX3Rh
cmdldE1zZyAiJHtfdGFyZ2V0TXNnfSAke19kaXNhYmxlTXNnfSIpCisJCWVuZGlmKCkKKwllbHNl
aWYgKE5PVCBfdGFyZ2V0QWRkU0NVKQorCQlpZiAoX2V4Y2x1ZGVkU3RyKQorCQkJc2V0IChfdGFy
Z2V0TXNnICIke19sYW5ndWFnZXNTdHJ9IHRhcmdldCAke190YXJnZXR9IGNvdGlyZWQgd2l0aG91
dCB1bml0eSBidWlsZCAke19leGNsdWRlZFN0cn0uIikKKwkJZWxzZSgpCisJCQlzZXQgKF90YXJn
ZXRNc2cgIiR7X2xhbmd1YWdlc1N0cn0gdGFyZ2V0ICR7X3RhcmdldH0gY290aXJlZCB3aXRob3V0
IHVuaXR5IGJ1aWxkLiIpCisJCWVuZGlmKCkKKwllbHNlKCkKKwkJaWYgKF9leGNsdWRlZFN0cikK
KwkJCXNldCAoX3RhcmdldE1zZyAiJHtfbGFuZ3VhZ2VzU3RyfSB0YXJnZXQgJHtfdGFyZ2V0fSBj
b3RpcmVkICR7X2V4Y2x1ZGVkU3RyfS4iKQorCQllbHNlKCkKKwkJCXNldCAoX3RhcmdldE1zZyAi
JHtfbGFuZ3VhZ2VzU3RyfSB0YXJnZXQgJHtfdGFyZ2V0fSBjb3RpcmVkLiIpCisJCWVuZGlmKCkK
KwllbmRpZigpCisJc2V0ICgke190YXJnZXRNc2dWYXJ9ICIke190YXJnZXRNc2d9IiBQQVJFTlRf
U0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfY2hvb3NlX3RhcmdldF9s
YW5ndWFnZXMgX3RhcmdldFNvdXJjZURpciBfdGFyZ2V0IF90YXJnZXRMYW5ndWFnZXNWYXIpCisJ
c2V0IChfbGFuZ3VhZ2VzICR7QVJHTn0pCisJc2V0IChfYWxsU291cmNlRmlsZXMgIiIpCisJc2V0
IChfYWxsRXhjbHVkZWRTb3VyY2VGaWxlcyAiIikKKwlzZXQgKF9hbGxDb3RpcmVkU291cmNlRmls
ZXMgIiIpCisJc2V0IChfdGFyZ2V0TGFuZ3VhZ2VzICIiKQorCWdldF90YXJnZXRfcHJvcGVydHko
X3RhcmdldFR5cGUgJHtfdGFyZ2V0fSBUWVBFKQorCWdldF90YXJnZXRfcHJvcGVydHkoX3Rhcmdl
dFNvdXJjZUZpbGVzICR7X3RhcmdldH0gU09VUkNFUykKKwlnZXRfdGFyZ2V0X3Byb3BlcnR5KF90
YXJnZXRVc2VQQ0ggJHtfdGFyZ2V0fSBDT1RJUkVfRU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUikK
KwlnZXRfdGFyZ2V0X3Byb3BlcnR5KF90YXJnZXRBZGRTQ1UgJHtfdGFyZ2V0fSBDT1RJUkVfQURE
X1VOSVRZX0JVSUxEKQorCXNldCAoX2Rpc2FibGVNc2cgIiIpCisJZm9yZWFjaCAoX2xhbmd1YWdl
ICR7X2xhbmd1YWdlc30pCisJCWdldF90YXJnZXRfcHJvcGVydHkoX3ByZWZpeEhlYWRlciAke190
YXJnZXR9IENPVElSRV8ke19sYW5ndWFnZX1fUFJFRklYX0hFQURFUikKKwkJZ2V0X3RhcmdldF9w
cm9wZXJ0eShfdW5pdHlCdWlsZEZpbGUgJHtfdGFyZ2V0fSBDT1RJUkVfJHtfbGFuZ3VhZ2V9X1VO
SVRZX1NPVVJDRSkKKwkJaWYgKF9wcmVmaXhIZWFkZXIgT1IgX3VuaXR5QnVpbGRGaWxlKQorCQkJ
bWVzc2FnZSAoU1RBVFVTICJjb3RpcmU6IHRhcmdldCAke190YXJnZXR9IGhhcyBhbHJlYWR5IGJl
ZW4gY290aXJlZC4iKQorCQkJc2V0ICgke190YXJnZXRMYW5ndWFnZXNWYXJ9ICIiIFBBUkVOVF9T
Q09QRSkKKwkJCXJldHVybigpCisJCWVuZGlmKCkKKwkJaWYgKF90YXJnZXRVc2VQQ0ggQU5EICIk
e19sYW5ndWFnZX0iIE1BVENIRVMgIl5DfENYWCQiKQorCQkJY290aXJlX2NoZWNrX3ByZWNvbXBp
bGVkX2hlYWRlcl9zdXBwb3J0KCIke19sYW5ndWFnZX0iICIke190YXJnZXRTb3VyY2VEaXJ9IiAi
JHtfdGFyZ2V0fSIgX2Rpc2FibGVNc2cpCisJCQlpZiAoX2Rpc2FibGVNc2cpCisJCQkJc2V0IChf
dGFyZ2V0VXNlUENIIEZBTFNFKQorCQkJZW5kaWYoKQorCQllbmRpZigpCisJCXNldCAoX3NvdXJj
ZUZpbGVzICIiKQorCQlzZXQgKF9leGNsdWRlZFNvdXJjZXMgIiIpCisJCXNldCAoX2NvdGlyZWRT
b3VyY2VzICIiKQorCQljb3RpcmVfZmlsdGVyX2xhbmd1YWdlX3NvdXJjZV9maWxlcygke19sYW5n
dWFnZX0gX3NvdXJjZUZpbGVzIF9leGNsdWRlZFNvdXJjZXMgX2NvdGlyZWRTb3VyY2VzICR7X3Rh
cmdldFNvdXJjZUZpbGVzfSkKKwkJaWYgKF9zb3VyY2VGaWxlcyBPUiBfZXhjbHVkZWRTb3VyY2Vz
IE9SIF9jb3RpcmVkU291cmNlcykKKwkJCWxpc3QgKEFQUEVORCBfdGFyZ2V0TGFuZ3VhZ2VzICR7
X2xhbmd1YWdlfSkKKwkJZW5kaWYoKQorCQlpZiAoX3NvdXJjZUZpbGVzKQorCQkJbGlzdCAoQVBQ
RU5EIF9hbGxTb3VyY2VGaWxlcyAke19zb3VyY2VGaWxlc30pCisJCWVuZGlmKCkKKwkJaWYgKF9l
eGNsdWRlZFNvdXJjZXMpCisJCQlsaXN0IChBUFBFTkQgX2FsbEV4Y2x1ZGVkU291cmNlRmlsZXMg
JHtfZXhjbHVkZWRTb3VyY2VzfSkKKwkJZW5kaWYoKQorCQlpZiAoX2NvdGlyZWRTb3VyY2VzKQor
CQkJbGlzdCAoQVBQRU5EIF9hbGxDb3RpcmVkU291cmNlRmlsZXMgJHtfY290aXJlZFNvdXJjZXN9
KQorCQllbmRpZigpCisJZW5kZm9yZWFjaCgpCisJc2V0IChfdGFyZ2V0TXNnTGV2ZWwgU1RBVFVT
KQorCWlmIChOT1QgX3RhcmdldExhbmd1YWdlcykKKwkJc3RyaW5nIChSRVBMQUNFICI7IiAiIG9y
ICIgX2xhbmd1YWdlc1N0ciAiJHtfbGFuZ3VhZ2VzfSIpCisJCXNldCAoX2Rpc2FibGVNc2cgIk5v
ICR7X2xhbmd1YWdlc1N0cn0gc291cmNlIGZpbGVzLiIpCisJCXNldCAoX3RhcmdldFVzZVBDSCBG
QUxTRSkKKwkJc2V0IChfdGFyZ2V0QWRkU0NVIEZBTFNFKQorCWVuZGlmKCkKKwlpZiAoX3Rhcmdl
dFVzZVBDSCkKKwkJbGlzdCAoTEVOR1RIIF9hbGxTb3VyY2VGaWxlcyBfbnVtYmVyT2ZTb3VyY2Vz
KQorCQlpZiAoX251bWJlck9mU291cmNlcyBMRVNTICR7Q09USVJFX01JTklNVU1fTlVNQkVSX09G
X1RBUkdFVF9TT1VSQ0VTfSkKKwkJCXNldCAoX2Rpc2FibGVNc2cgIlRvbyBmZXcgYXBwbGljYWJs
ZSBzb3VyY2VzLiIpCisJCQlzZXQgKF90YXJnZXRVc2VQQ0ggRkFMU0UpCisJCWVsc2VpZiAoX2Fs
bENvdGlyZWRTb3VyY2VGaWxlcykKKwkJCWNvdGlyZV9nZXRfc291cmNlX2ZpbGVfcHJvcGVydHlf
dmFsdWVzKF9jb3RpcmVUYXJnZXRzIENPVElSRV9UQVJHRVQgJHtfYWxsQ290aXJlZFNvdXJjZUZp
bGVzfSkKKwkJCWxpc3QgKFJFTU9WRV9EVVBMSUNBVEVTIF9jb3RpcmVUYXJnZXRzKQorCQkJc3Ry
aW5nIChSRVBMQUNFICI7IiAiLCAiIF9jb3RpcmVUYXJnZXRzU3RyICIke19jb3RpcmVUYXJnZXRz
fSIpCisJCQlzZXQgKF9kaXNhYmxlTXNnICJUYXJnZXQgc291cmNlcyBhbHJlYWR5IGluY2x1ZGUg
YSBwcmVjb21waWxlZCBoZWFkZXIgZm9yIHRhcmdldChzKSAke19jb3RpcmVUYXJnZXRzfS4iKQor
CQkJc2V0IChfZGlzYWJsZU1zZyAiJHtfZGlzYWJsZU1zZ30gU2V0IHRhcmdldCBwcm9wZXJ0eSBD
T1RJUkVfRU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUiB0byBGQUxTRSBmb3IgdGFyZ2V0cyAke190
YXJnZXR9LCIpCisJCQlzZXQgKF9kaXNhYmxlTXNnICIke19kaXNhYmxlTXNnfSAke19jb3RpcmVU
YXJnZXRzU3RyfSB0byBnZXQgYSB3b3JrYWJsZSBidWlsZCBzeXN0ZW0uIikKKwkJCXNldCAoX3Rh
cmdldE1zZ0xldmVsIFNFTkRfRVJST1IpCisJCQlzZXQgKF90YXJnZXRVc2VQQ0ggRkFMU0UpCisJ
CWVsc2VpZiAoWENPREUgQU5EIF9hbGxFeGNsdWRlZFNvdXJjZUZpbGVzKQorCQkJIyBmb3IgWGNv
ZGUsIHdlIGNhbm5vdCBhcHBseSB0aGUgcHJlY29tcGlsZWQgaGVhZGVyIHRvIGluZGl2aWR1YWwg
c291cmNlcywgb25seSB0byB0aGUgd2hvbGUgdGFyZ2V0CisJCQlzZXQgKF9kaXNhYmxlTXNnICJF
eGNsdXNpb24gb2Ygc291cmNlIGZpbGVzIG5vdCBzdXBwb3J0ZWQgZm9yIGdlbmVyYXRvciBYY29k
ZS4iKQorCQkJc2V0IChfdGFyZ2V0VXNlUENIIEZBTFNFKQorCQllbHNlaWYgKFhDT0RFIEFORCAi
JHtfdGFyZ2V0VHlwZX0iIFNUUkVRVUFMICJPQkpFQ1RfTElCUkFSWSIpCisJCQkjIGZvciBYY29k
ZSwgd2UgY2Fubm90IGFwcGx5IHRoZSByZXF1aXJlZCBQUkVfQlVJTEQgYWN0aW9uIHRvIGdlbmVy
YXRlIHRoZSBwcmVmaXggaGVhZGVyIHRvIGFuIE9CSkVDVF9MSUJSQVJZIHRhcmdldAorCQkJc2V0
IChfZGlzYWJsZU1zZyAiUmVxdWlyZWQgUFJFX0JVSUxEIGFjdGlvbiBub3Qgc3VwcG9ydGVkIGZv
ciBPQkpFQ1RfTElCUkFSWSB0YXJnZXRzIGZvciBnZW5lcmF0b3IgWGNvZGUuIikKKwkJCXNldCAo
X3RhcmdldFVzZVBDSCBGQUxTRSkKKwkJZW5kaWYoKQorCWVuZGlmKCkKKwlzZXRfcHJvcGVydHko
VEFSR0VUICR7X3RhcmdldH0gUFJPUEVSVFkgQ09USVJFX0VOQUJMRV9QUkVDT01QSUxFRF9IRUFE
RVIgJHtfdGFyZ2V0VXNlUENIfSkKKwlzZXRfcHJvcGVydHkoVEFSR0VUICR7X3RhcmdldH0gUFJP
UEVSVFkgQ09USVJFX0FERF9VTklUWV9CVUlMRCAke190YXJnZXRBZGRTQ1V9KQorCWNvdGlyZV9t
YWtlX3RhcmdldF9tZXNzYWdlKCR7X3RhcmdldH0gIiR7X3RhcmdldExhbmd1YWdlc30iICIke19k
aXNhYmxlTXNnfSIgX3RhcmdldE1zZyAke19hbGxFeGNsdWRlZFNvdXJjZUZpbGVzfSkKKwlpZiAo
X3RhcmdldE1zZykKKwkJaWYgKE5PVCBERUZJTkVEIENPVElSRU1TR18ke190YXJnZXR9KQorCQkJ
c2V0IChDT1RJUkVNU0dfJHtfdGFyZ2V0fSAiIikKKwkJZW5kaWYoKQorCQlpZiAoQ09USVJFX1ZF
UkJPU0UgT1IgTk9UICIke190YXJnZXRNc2dMZXZlbH0iIFNUUkVRVUFMICJTVEFUVVMiIE9SCisJ
CQlOT1QgIiR7Q09USVJFTVNHXyR7X3RhcmdldH19IiBTVFJFUVVBTCAiJHtfdGFyZ2V0TXNnfSIp
CisJCQkjIGNhY2hlIG1lc3NhZ2UgdG8gYXZvaWQgcmVkdW5kYW50IG1lc3NhZ2VzIG9uIHJlLWNv
bmZpZ3VyZQorCQkJc2V0IChDT1RJUkVNU0dfJHtfdGFyZ2V0fSAiJHtfdGFyZ2V0TXNnfSIgQ0FD
SEUgSU5URVJOQUwgIiR7X3RhcmdldH0gY290aXJlIG1lc3NhZ2UuIikKKwkJCW1lc3NhZ2UgKCR7
X3RhcmdldE1zZ0xldmVsfSAiJHtfdGFyZ2V0TXNnfSIpCisJCWVuZGlmKCkKKwllbmRpZigpCisJ
c2V0ICgke190YXJnZXRMYW5ndWFnZXNWYXJ9ICR7X3RhcmdldExhbmd1YWdlc30gUEFSRU5UX1ND
T1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX2NvbXB1dGVfdW5pdHlfbWF4
X251bWJlcl9vZl9pbmNsdWRlcyBfdGFyZ2V0IF9tYXhJbmNsdWRlc1ZhcikKKwlzZXQgKF9zb3Vy
Y2VGaWxlcyAke0FSR059KQorCWdldF90YXJnZXRfcHJvcGVydHkoX21heEluY2x1ZGVzICR7X3Rh
cmdldH0gQ09USVJFX1VOSVRZX1NPVVJDRV9NQVhJTVVNX05VTUJFUl9PRl9JTkNMVURFUykKKwlp
ZiAoX21heEluY2x1ZGVzIE1BVENIRVMgIigtanwtLXBhcmFsbGVsfC0tam9icykgPyhbMC05XSop
IikKKwkJc2V0IChfbnVtYmVyT2ZUaHJlYWRzICIke0NNQUtFX01BVENIXzJ9IikKKwkJaWYgKE5P
VCBfbnVtYmVyT2ZUaHJlYWRzKQorCQkJIyB1c2UgYWxsIGF2YWlsYWJsZSBjb3JlcworCQkJUHJv
Y2Vzc29yQ291bnQoX251bWJlck9mVGhyZWFkcykKKwkJZW5kaWYoKQorCQlsaXN0IChMRU5HVEgg
X3NvdXJjZUZpbGVzIF9udW1iZXJPZlNvdXJjZXMpCisJCW1hdGggKEVYUFIgX21heEluY2x1ZGVz
ICIoJHtfbnVtYmVyT2ZTb3VyY2VzfSArICR7X251bWJlck9mVGhyZWFkc30gLSAxKSAvICR7X251
bWJlck9mVGhyZWFkc30iKQorCQkjIGEgdW5pdHkgc291cmNlIHNlZ21lbnQgbXVzdCBub3QgY29u
dGFpbiBsZXNzIHRoYW4gQ09USVJFX01JTklNVU1fTlVNQkVSX09GX1RBUkdFVF9TT1VSQ0VTIGZp
bGVzCisJCWlmIChfbWF4SW5jbHVkZXMgTEVTUyAke0NPVElSRV9NSU5JTVVNX05VTUJFUl9PRl9U
QVJHRVRfU09VUkNFU30pCisJCQlzZXQgKF9tYXhJbmNsdWRlcyAke0NPVElSRV9NSU5JTVVNX05V
TUJFUl9PRl9UQVJHRVRfU09VUkNFU30pCisJCWVuZGlmKCkKKwllbHNlaWYgKE5PVCBfbWF4SW5j
bHVkZXMgTUFUQ0hFUyAiWzAtOV0rIikKKwkJc2V0IChfbWF4SW5jbHVkZXMgMCkKKwllbmRpZigp
CisJaWYgKENPVElSRV9ERUJVRykKKwkJbWVzc2FnZSAoU1RBVFVTICIke190YXJnZXR9IHVuaXR5
IHNvdXJjZSBtYXggaW5jbHVkZXMgPSAke19tYXhJbmNsdWRlc30iKQorCWVuZGlmKCkKKwlzZXQg
KCR7X21heEluY2x1ZGVzVmFyfSAke19tYXhJbmNsdWRlc30gUEFSRU5UX1NDT1BFKQorZW5kZnVu
Y3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX3Byb2Nlc3NfdGFyZ2V0X2xhbmd1YWdlIF9sYW5n
dWFnZSBfY29uZmlndXJhdGlvbnMgX3RhcmdldFNvdXJjZURpciBfdGFyZ2V0QmluYXJ5RGlyIF90
YXJnZXQgX3dob2xlVGFyZ2V0VmFyIF9jbWRzVmFyKQorCXNldCAoJHtfY21kc1Zhcn0gIiIgUEFS
RU5UX1NDT1BFKQorCWdldF90YXJnZXRfcHJvcGVydHkoX3RhcmdldFNvdXJjZUZpbGVzICR7X3Rh
cmdldH0gU09VUkNFUykKKwlzZXQgKF9zb3VyY2VGaWxlcyAiIikKKwlzZXQgKF9leGNsdWRlZFNv
dXJjZXMgIiIpCisJc2V0IChfY290aXJlZFNvdXJjZXMgIiIpCisJY290aXJlX2ZpbHRlcl9sYW5n
dWFnZV9zb3VyY2VfZmlsZXMoJHtfbGFuZ3VhZ2V9IF9zb3VyY2VGaWxlcyBfZXhjbHVkZWRTb3Vy
Y2VzIF9jb3RpcmVkU291cmNlcyAke190YXJnZXRTb3VyY2VGaWxlc30pCisJaWYgKE5PVCBfc291
cmNlRmlsZXMgQU5EIE5PVCBfY290aXJlZFNvdXJjZXMpCisJCXJldHVybigpCisJZW5kaWYoKQor
CXNldCAoX3dob2xlVGFyZ2V0ICR7JHtfd2hvbGVUYXJnZXRWYXJ9fSkKKwlzZXQgKF9jbWRzICIi
KQorCSMgY2hlY2sgZm9yIHVzZXIgcHJvdmlkZWQgdW5pdHkgc291cmNlIGZpbGUgbGlzdAorCWdl
dF9wcm9wZXJ0eShfdW5pdHlTb3VyY2VGaWxlcyBUQVJHRVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSBD
T1RJUkVfJHtfbGFuZ3VhZ2V9X1VOSVRZX1NPVVJDRV9JTklUKQorCWlmIChOT1QgX3VuaXR5U291
cmNlRmlsZXMpCisJCXNldCAoX3VuaXR5U291cmNlRmlsZXMgJHtfc291cmNlRmlsZXN9ICR7X2Nv
dGlyZWRTb3VyY2VzfSkKKwllbmRpZigpCisJY290aXJlX2dlbmVyYXRlX3RhcmdldF9zY3JpcHQo
CisJCSR7X2xhbmd1YWdlfSAiJHtfY29uZmlndXJhdGlvbnN9IiAiJHtfdGFyZ2V0U291cmNlRGly
fSIgIiR7X3RhcmdldEJpbmFyeURpcn0iICR7X3RhcmdldH0gX3RhcmdldFNjcmlwdCBfdGFyZ2V0
Q29uZmlnU2NyaXB0ICR7X3VuaXR5U291cmNlRmlsZXN9KQorCWNvdGlyZV9jb21wdXRlX3VuaXR5
X21heF9udW1iZXJfb2ZfaW5jbHVkZXMoJHtfdGFyZ2V0fSBfbWF4SW5jbHVkZXMgJHtfdW5pdHlT
b3VyY2VGaWxlc30pCisJY290aXJlX21ha2VfdW5pdHlfc291cmNlX2ZpbGVfcGF0aHMoJHtfbGFu
Z3VhZ2V9ICR7X3RhcmdldH0gJHtfbWF4SW5jbHVkZXN9IF91bml0eUZpbGVzICR7X3VuaXR5U291
cmNlRmlsZXN9KQorCWlmIChOT1QgX3VuaXR5RmlsZXMpCisJCXJldHVybigpCisJZW5kaWYoKQor
CWNvdGlyZV9zZXR1cF91bml0eV9nZW5lcmF0aW9uX2NvbW1hbmRzKAorCQkke19sYW5ndWFnZX0g
IiR7X3RhcmdldFNvdXJjZURpcn0iICR7X3RhcmdldH0gIiR7X3RhcmdldFNjcmlwdH0iICIke190
YXJnZXRDb25maWdTY3JpcHR9IiAiJHtfdW5pdHlGaWxlc30iIF9jbWRzICR7X3VuaXR5U291cmNl
RmlsZXN9KQorCWNvdGlyZV9tYWtlX3ByZWZpeF9maWxlX3BhdGgoJHtfbGFuZ3VhZ2V9ICR7X3Rh
cmdldH0gX3ByZWZpeEZpbGUpCisJaWYgKF9wcmVmaXhGaWxlKQorCQkjIGNoZWNrIGZvciB1c2Vy
IHByb3ZpZGVkIHByZWZpeCBoZWFkZXIgZmlsZXMKKwkJZ2V0X3Byb3BlcnR5KF9wcmVmaXhIZWFk
ZXJGaWxlcyBUQVJHRVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJUkVfJHtfbGFuZ3VhZ2V9X1BS
RUZJWF9IRUFERVJfSU5JVCkKKwkJaWYgKF9wcmVmaXhIZWFkZXJGaWxlcykKKwkJCWNvdGlyZV9z
ZXR1cF9wcmVmaXhfZ2VuZXJhdGlvbl9mcm9tX3Byb3ZpZGVkX2NvbW1hbmQoCisJCQkJJHtfbGFu
Z3VhZ2V9ICR7X3RhcmdldH0gIiR7X3RhcmdldFNvdXJjZURpcn0iICIke190YXJnZXRDb25maWdT
Y3JpcHR9IiAiJHtfcHJlZml4RmlsZX0iIF9jbWRzICR7X3ByZWZpeEhlYWRlckZpbGVzfSkKKwkJ
ZWxzZSgpCisJCQljb3RpcmVfc2V0dXBfcHJlZml4X2dlbmVyYXRpb25fZnJvbV91bml0eV9jb21t
YW5kKAorCQkJCSR7X2xhbmd1YWdlfSAke190YXJnZXR9ICIke190YXJnZXRTb3VyY2VEaXJ9IiAi
JHtfdGFyZ2V0Q29uZmlnU2NyaXB0fSIgIiR7X3ByZWZpeEZpbGV9IiAiJHtfdW5pdHlGaWxlc30i
IF9jbWRzICR7X3VuaXR5U291cmNlRmlsZXN9KQorCQllbmRpZigpCisJCWdldF90YXJnZXRfcHJv
cGVydHkoX3RhcmdldFVzZVBDSCAke190YXJnZXR9IENPVElSRV9FTkFCTEVfUFJFQ09NUElMRURf
SEVBREVSKQorCQlpZiAoX3RhcmdldFVzZVBDSCkKKwkJCWNvdGlyZV9tYWtlX3BjaF9maWxlX3Bh
dGgoJHtfbGFuZ3VhZ2V9ICIke190YXJnZXRTb3VyY2VEaXJ9IiAke190YXJnZXR9IF9wY2hGaWxl
KQorCQkJaWYgKF9wY2hGaWxlKQorCQkJCWNvdGlyZV9zZXR1cF9wY2hfZmlsZV9jb21waWxhdGlv
bigKKwkJCQkJJHtfbGFuZ3VhZ2V9ICR7X3RhcmdldH0gIiR7X3RhcmdldFNvdXJjZURpcn0iICIk
e190YXJnZXRDb25maWdTY3JpcHR9IiAiJHtfcHJlZml4RmlsZX0iICIke19wY2hGaWxlfSIgJHtf
c291cmNlRmlsZXN9KQorCQkJCWlmIChfZXhjbHVkZWRTb3VyY2VzKQorCQkJCQlzZXQgKF93aG9s
ZVRhcmdldCBGQUxTRSkKKwkJCQllbmRpZigpCisJCQkJY290aXJlX3NldHVwX3BjaF9maWxlX2lu
Y2x1c2lvbigKKwkJCQkJJHtfbGFuZ3VhZ2V9ICR7X3RhcmdldH0gJHtfd2hvbGVUYXJnZXR9ICIk
e19wcmVmaXhGaWxlfSIgIiR7X3BjaEZpbGV9IiAke19zb3VyY2VGaWxlc30pCisJCQllbmRpZigp
CisJCWVsc2VpZiAoX3ByZWZpeEhlYWRlckZpbGVzKQorCQkJIyB1c2VyIHByb3ZpZGVkIHByZWZp
eCBoZWFkZXIgbXVzdCBiZSBpbmNsdWRlZAorCQkJY290aXJlX3NldHVwX3ByZWZpeF9maWxlX2lu
Y2x1c2lvbigKKwkJCQkke19sYW5ndWFnZX0gJHtfdGFyZ2V0fSAiJHtfcHJlZml4RmlsZX0iICR7
X3NvdXJjZUZpbGVzfSkKKwkJZW5kaWYoKQorCWVuZGlmKCkKKwkjIG1hcmsgdGFyZ2V0IGFzIGNv
dGlyZWQgZm9yIGxhbmd1YWdlCisJc2V0X3Byb3BlcnR5KFRBUkdFVCAke190YXJnZXR9IFBST1BF
UlRZIENPVElSRV8ke19sYW5ndWFnZX1fVU5JVFlfU09VUkNFICIke191bml0eUZpbGVzfSIpCisJ
aWYgKF9wcmVmaXhGaWxlKQorCQlzZXRfcHJvcGVydHkoVEFSR0VUICR7X3RhcmdldH0gUFJPUEVS
VFkgQ09USVJFXyR7X2xhbmd1YWdlfV9QUkVGSVhfSEVBREVSICIke19wcmVmaXhGaWxlfSIpCisJ
CWlmIChfdGFyZ2V0VXNlUENIIEFORCBfcGNoRmlsZSkKKwkJCXNldF9wcm9wZXJ0eShUQVJHRVQg
JHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJUkVfJHtfbGFuZ3VhZ2V9X1BSRUNPTVBJTEVEX0hFQURF
UiAiJHtfcGNoRmlsZX0iKQorCQllbmRpZigpCisJZW5kaWYoKQorCXNldCAoJHtfd2hvbGVUYXJn
ZXRWYXJ9ICR7X3dob2xlVGFyZ2V0fSBQQVJFTlRfU0NPUEUpCisJc2V0ICgke19jbWRzVmFyfSAk
e19jbWRzfSBQQVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVf
c2V0dXBfY2xlYW5fdGFyZ2V0IF90YXJnZXQpCisJc2V0IChfY2xlYW5UYXJnZXROYW1lICIke190
YXJnZXR9JHtDT1RJUkVfQ0xFQU5fVEFSR0VUX1NVRkZJWH0iKQorCWlmIChOT1QgVEFSR0VUICIk
e19jbGVhblRhcmdldE5hbWV9IikKKwkJY290aXJlX3NldF9jbWRfdG9fcHJvbG9ndWUoX2NtZHMp
CisJCWdldF9maWxlbmFtZV9jb21wb25lbnQoX291dHB1dERpciAiJHtDTUFLRV9DVVJSRU5UX0JJ
TkFSWV9ESVJ9LyR7Q01BS0VfQ0ZHX0lOVERJUn0iIEFCU09MVVRFKQorCQlsaXN0IChBUFBFTkQg
X2NtZHMgLVAgIiR7Q09USVJFX0NNQUtFX01PRFVMRV9GSUxFfSIgImNsZWFudXAiICIke19vdXRw
dXREaXJ9IiAiJHtDT1RJUkVfSU5URElSfSIgIiR7X3RhcmdldH0iKQorCQlhZGRfY3VzdG9tX3Rh
cmdldCgke19jbGVhblRhcmdldE5hbWV9IENPTU1BTkQgJHtfY21kc30gV09SS0lOR19ESVJFQ1RP
UlkgIiR7Q01BS0VfQklOQVJZX0RJUn0iCisJCQlDT01NRU5UICJDbGVhbmluZyB1cCB0YXJnZXQg
JHtfdGFyZ2V0fSBjb3RpcmUgZ2VuZXJhdGVkIGZpbGVzIiBWRVJCQVRJTSkKKwkJY290aXJlX2lu
aXRfdGFyZ2V0KCIke19jbGVhblRhcmdldE5hbWV9IikKKwllbmRpZigpCitlbmRmdW5jdGlvbigp
CisKK2Z1bmN0aW9uIChjb3RpcmVfc2V0dXBfcGNoX3RhcmdldCBfbGFuZ3VhZ2VzIF9jb25maWd1
cmF0aW9ucyBfdGFyZ2V0KQorCWlmICgiJHtDTUFLRV9HRU5FUkFUT1J9IiBNQVRDSEVTICJNYWtl
ZmlsZXN8TmluamEiKQorCQkjIGZvciBtYWtlZmlsZSBiYXNlZCBnZW5lcmF0b3JzLCB3ZSBhZGQg
YSBjdXN0b20gdGFyZ2V0IHRvIHRyaWdnZXIgdGhlIGdlbmVyYXRpb24gb2YgdGhlIGNvdGlyZSBy
ZWxhdGVkIGZpbGVzCisJCXNldCAoX2RlcGVuZHNGaWxlcyAiIikKKwkJZm9yZWFjaCAoX2xhbmd1
YWdlICR7X2xhbmd1YWdlc30pCisJCQlzZXQgKF9wcm9wcyBDT1RJUkVfJHtfbGFuZ3VhZ2V9X1BS
RUZJWF9IRUFERVIgQ09USVJFXyR7X2xhbmd1YWdlfV9VTklUWV9TT1VSQ0UpCisJCQlpZiAoTk9U
IENNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9JRCBNQVRDSEVTICJNU1ZDfEludGVsIikKKwkJ
CQkjIFZpc3VhbCBTdHVkaW8gYW5kIEludGVsIG9ubHkgY3JlYXRlIHByZWNvbXBpbGVkIGhlYWRl
ciBhcyBhIHNpZGUgZWZmZWN0CisJCQkJbGlzdCAoSU5TRVJUIF9wcm9wcyAwIENPVElSRV8ke19s
YW5ndWFnZX1fUFJFQ09NUElMRURfSEVBREVSKQorCQkJZW5kaWYoKQorCQkJY290aXJlX2dldF9m
aXJzdF9zZXRfcHJvcGVydHlfdmFsdWUoX2RlcGVuZHNGaWxlIFRBUkdFVCAke190YXJnZXR9ICR7
X3Byb3BzfSkKKwkJCWlmIChfZGVwZW5kc0ZpbGUpCisJCQkJbGlzdCAoQVBQRU5EIF9kZXBlbmRz
RmlsZXMgIiR7X2RlcGVuZHNGaWxlfSIpCisJCQllbmRpZigpCisJCWVuZGZvcmVhY2goKQorCQlp
ZiAoX2RlcGVuZHNGaWxlcykKKwkJCXNldCAoX3BjaFRhcmdldE5hbWUgIiR7X3RhcmdldH0ke0NP
VElSRV9QQ0hfVEFSR0VUX1NVRkZJWH0iKQorCQkJYWRkX2N1c3RvbV90YXJnZXQoIiR7X3BjaFRh
cmdldE5hbWV9IiBERVBFTkRTICR7X2RlcGVuZHNGaWxlc30pCisJCQljb3RpcmVfaW5pdF90YXJn
ZXQoIiR7X3BjaFRhcmdldE5hbWV9IikKKwkJCWNvdGlyZV9hZGRfdG9fcGNoX2FsbF90YXJnZXQo
JHtfcGNoVGFyZ2V0TmFtZX0pCisJCWVuZGlmKCkKKwllbHNlKCkKKwkJIyBmb3Igb3RoZXIgZ2Vu
ZXJhdG9ycywgd2UgYWRkIHRoZSAiY2xlYW4gYWxsIiB0YXJnZXQgdG8gY2xlYW4gdXAgdGhlIHBy
ZWNvbXBpbGVkIGhlYWRlcgorCQljb3RpcmVfc2V0dXBfY2xlYW5fYWxsX3RhcmdldCgpCisJZW5k
aWYoKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX3NldHVwX3VuaXR5X2J1aWxk
X3RhcmdldCBfbGFuZ3VhZ2VzIF9jb25maWd1cmF0aW9ucyBfdGFyZ2V0U291cmNlRGlyIF90YXJn
ZXQpCisJZ2V0X3RhcmdldF9wcm9wZXJ0eShfdW5pdHlUYXJnZXROYW1lICR7X3RhcmdldH0gQ09U
SVJFX1VOSVRZX1RBUkdFVF9OQU1FKQorCWlmIChOT1QgX3VuaXR5VGFyZ2V0TmFtZSkKKwkJc2V0
IChfdW5pdHlUYXJnZXROYW1lICIke190YXJnZXR9JHtDT1RJUkVfVU5JVFlfQlVJTERfVEFSR0VU
X1NVRkZJWH0iKQorCWVuZGlmKCkKKwkjIGRldGVybWluZSB1bml0eSB0YXJnZXQgc3ViIHR5cGUK
KwlnZXRfdGFyZ2V0X3Byb3BlcnR5KF90YXJnZXRUeXBlICR7X3RhcmdldH0gVFlQRSkKKwlpZiAo
IiR7X3RhcmdldFR5cGV9IiBTVFJFUVVBTCAiRVhFQ1VUQUJMRSIpCisJCXNldCAoX3VuaXR5VGFy
Z2V0U3ViVHlwZSAiIikKKwllbHNlaWYgKF90YXJnZXRUeXBlIE1BVENIRVMgIihTVEFUSUN8U0hB
UkVEfE1PRFVMRXxPQkpFQ1QpX0xJQlJBUlkiKQorCQlzZXQgKF91bml0eVRhcmdldFN1YlR5cGUg
IiR7Q01BS0VfTUFUQ0hfMX0iKQorCWVsc2UoKQorCQltZXNzYWdlIChXQVJOSU5HICJjb3RpcmU6
IHRhcmdldCAke190YXJnZXR9IGhhcyB1bmtub3duIHRhcmdldCB0eXBlICR7X3RhcmdldFR5cGV9
LiIpCisJCXJldHVybigpCisJZW5kaWYoKQorCSMgZGV0ZXJtaW5lIHVuaXR5IHRhcmdldCBzb3Vy
Y2VzCisJZ2V0X3RhcmdldF9wcm9wZXJ0eShfdGFyZ2V0U291cmNlRmlsZXMgJHtfdGFyZ2V0fSBT
T1VSQ0VTKQorCXNldCAoX3VuaXR5VGFyZ2V0U291cmNlcyAke190YXJnZXRTb3VyY2VGaWxlc30p
CisJZm9yZWFjaCAoX2xhbmd1YWdlICR7X2xhbmd1YWdlc30pCisJCWdldF9wcm9wZXJ0eShfdW5p
dHlGaWxlcyBUQVJHRVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJUkVfJHtfbGFuZ3VhZ2V9X1VO
SVRZX1NPVVJDRSkKKwkJaWYgKF91bml0eUZpbGVzKQorCQkJIyByZW1vdmUgc291cmNlIGZpbGVz
IHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoZSB1bml0eSBzb3VyY2UKKwkJCXNldCAoX3NvdXJjZUZp
bGVzICIiKQorCQkJc2V0IChfZXhjbHVkZWRTb3VyY2VzICIiKQorCQkJc2V0IChfY290aXJlZFNv
dXJjZXMgIiIpCisJCQljb3RpcmVfZmlsdGVyX2xhbmd1YWdlX3NvdXJjZV9maWxlcygke19sYW5n
dWFnZX0gX3NvdXJjZUZpbGVzIF9leGNsdWRlZFNvdXJjZXMgX2NvdGlyZWRTb3VyY2VzICR7X3Rh
cmdldFNvdXJjZUZpbGVzfSkKKwkJCWlmIChfc291cmNlRmlsZXMgT1IgX2NvdGlyZWRTb3VyY2Vz
KQorCQkJCWxpc3QgKFJFTU9WRV9JVEVNIF91bml0eVRhcmdldFNvdXJjZXMgJHtfc291cmNlRmls
ZXN9ICR7X2NvdGlyZWRTb3VyY2VzfSkKKwkJCWVuZGlmKCkKKwkJCSMgaWYgY290aXJlIGlzIGFw
cGxpZWQgdG8gYSB0YXJnZXQgd2hpY2ggaGFzIG5vdCBiZWVuIGFkZGVkIGluIHRoZSBjdXJyZW50
IHNvdXJjZSBkaXIsCisJCQkjIG5vbi1leGlzdGluZyBmaWxlcyBjYW5ub3QgYmUgcmVmZXJlbmNl
ZCBmcm9tIHRoZSB1bml0eSBidWlsZCB0YXJnZXQgKHRoaXMgaXMgYSBDTWFrZSByZXN0cmljdGlv
bikKKwkJCWlmIChOT1QgIiR7X3RhcmdldFNvdXJjZURpcn0iIFNUUkVRVUFMICIke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0iKQorCQkJCXNldCAoX25vbkV4aXN0aW5nRmlsZXMgIiIpCisJCQkJ
Zm9yZWFjaCAoX2ZpbGUgJHtfdW5pdHlUYXJnZXRTb3VyY2VzfSkKKwkJCQkJaWYgKE5PVCBFWElT
VFMgIiR7X2ZpbGV9IikKKwkJCQkJCWxpc3QgKEFQUEVORCBfbm9uRXhpc3RpbmdGaWxlcyAiJHtf
ZmlsZX0iKQorCQkJCQllbmRpZigpCisJCQkJZW5kZm9yZWFjaCgpCisJCQkJaWYgKF9ub25FeGlz
dGluZ0ZpbGVzKQorCQkJCQlpZiAoQ09USVJFX1ZFUkJPU0UpCisJCQkJCQltZXNzYWdlIChTVEFU
VVMgInJlbW92aW5nIG5vbi1leGlzdGluZyAke19ub25FeGlzdGluZ0ZpbGVzfSBmcm9tICR7X3Vu
aXR5VGFyZ2V0TmFtZX0iKQorCQkJCQllbmRpZigpCisJCQkJCWxpc3QgKFJFTU9WRV9JVEVNIF91
bml0eVRhcmdldFNvdXJjZXMgJHtfbm9uRXhpc3RpbmdGaWxlc30pCisJCQkJZW5kaWYoKQorCQkJ
ZW5kaWYoKQorCQkJIyBhZGQgdW5pdHkgc291cmNlIGZpbGVzIGluc3RlYWQKKwkJCWxpc3QgKEFQ
UEVORCBfdW5pdHlUYXJnZXRTb3VyY2VzICR7X3VuaXR5RmlsZXN9KQorCQllbmRpZigpCisJZW5k
Zm9yZWFjaCgpCisJaWYgKENPVElSRV9ERUJVRykKKwkJbWVzc2FnZSAoU1RBVFVTICJhZGQgJHtf
dGFyZ2V0VHlwZX0gJHtfdW5pdHlUYXJnZXROYW1lfSAke191bml0eVRhcmdldFN1YlR5cGV9IEVY
Q0xVREVfRlJPTV9BTEwgJHtfdW5pdHlUYXJnZXRTb3VyY2VzfSIpCisJZW5kaWYoKQorCSMgZ2Vu
ZXJhdGUgdW5pdHkgdGFyZ2V0CisJaWYgKCIke190YXJnZXRUeXBlfSIgU1RSRVFVQUwgIkVYRUNV
VEFCTEUiKQorCQlhZGRfZXhlY3V0YWJsZSgke191bml0eVRhcmdldE5hbWV9ICR7X3VuaXR5VGFy
Z2V0U3ViVHlwZX0gRVhDTFVERV9GUk9NX0FMTCAke191bml0eVRhcmdldFNvdXJjZXN9KQorCWVs
c2UoKQorCQlhZGRfbGlicmFyeSgke191bml0eVRhcmdldE5hbWV9ICR7X3VuaXR5VGFyZ2V0U3Vi
VHlwZX0gRVhDTFVERV9GUk9NX0FMTCAke191bml0eVRhcmdldFNvdXJjZXN9KQorCWVuZGlmKCkK
KwlzZXQgKF9vdXRwdXREaXJQcm9wZXJ0aWVzCisJCUFSQ0hJVkVfT1VUUFVUX0RJUkVDVE9SWSBB
UkNISVZFX09VVFBVVF9ESVJFQ1RPUllfPENPTkZJRz4KKwkJTElCUkFSWV9PVVRQVVRfRElSRUNU
T1JZIExJQlJBUllfT1VUUFVUX0RJUkVDVE9SWV88Q09ORklHPgorCQlSVU5USU1FX09VVFBVVF9E
SVJFQ1RPUlkgUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZXzxDT05GSUc+KQorCSMgY29weSBvdXRw
dXQgbG9jYXRpb24gcHJvcGVydGllcworCWlmIChDT1RJUkVfVU5JVFlfT1VUUFVUX0RJUkVDVE9S
WSkKKwkJc2V0IChfc2V0RGVmYXVsdE91dHB1dERpciBUUlVFKQorCQlpZiAoSVNfQUJTT0xVVEUg
IiR7Q09USVJFX1VOSVRZX09VVFBVVF9ESVJFQ1RPUll9IikKKwkJCXNldCAoX291dHB1dERpciAi
JHtDT1RJUkVfVU5JVFlfT1VUUFVUX0RJUkVDVE9SWX0iKQorCQllbHNlKCkKKwkJCWNvdGlyZV9j
b3B5X3NldF9wcm9wZXJpdGVzKCIke19jb25maWd1cmF0aW9uc30iIFRBUkdFVCAke190YXJnZXR9
ICR7X3VuaXR5VGFyZ2V0TmFtZX0gJHtfb3V0cHV0RGlyUHJvcGVydGllc30pCisJCQljb3RpcmVf
cmVzb2x2ZV9jb25maWdfcHJvcGVyaXRlcygiJHtfY29uZmlndXJhdGlvbnN9IiBfcHJvcGVydGll
cyAke19vdXRwdXREaXJQcm9wZXJ0aWVzfSkKKwkJCWZvcmVhY2ggKF9wcm9wZXJ0eSAke19wcm9w
ZXJ0aWVzfSkKKwkJCQlnZXRfcHJvcGVydHkoX291dHB1dERpciBUQVJHRVQgJHtfdGFyZ2V0fSBQ
Uk9QRVJUWSAke19wcm9wZXJ0eX0pCisJCQkJaWYgKF9vdXRwdXREaXIpCisJCQkJCWdldF9maWxl
bmFtZV9jb21wb25lbnQoX291dHB1dERpciAiJHtfb3V0cHV0RGlyfS8ke0NPVElSRV9VTklUWV9P
VVRQVVRfRElSRUNUT1JZfSIgQUJTT0xVVEUpCisJCQkJCXNldF9wcm9wZXJ0eShUQVJHRVQgJHtf
dW5pdHlUYXJnZXROYW1lfSBQUk9QRVJUWSAke19wcm9wZXJ0eX0gIiR7X291dHB1dERpcn0iKQor
CQkJCQlzZXQgKF9zZXREZWZhdWx0T3V0cHV0RGlyIEZBTFNFKQorCQkJCWVuZGlmKCkKKwkJCWVu
ZGZvcmVhY2goKQorCQkJaWYgKF9zZXREZWZhdWx0T3V0cHV0RGlyKQorCQkJCWdldF9maWxlbmFt
ZV9jb21wb25lbnQoX291dHB1dERpciAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7Q09U
SVJFX1VOSVRZX09VVFBVVF9ESVJFQ1RPUll9IiBBQlNPTFVURSkKKwkJCWVuZGlmKCkKKwkJZW5k
aWYoKQorCQlpZiAoX3NldERlZmF1bHRPdXRwdXREaXIpCisJCQlzZXRfdGFyZ2V0X3Byb3BlcnRp
ZXMoJHtfdW5pdHlUYXJnZXROYW1lfSBQUk9QRVJUSUVTCisJCQkJQVJDSElWRV9PVVRQVVRfRElS
RUNUT1JZICIke19vdXRwdXREaXJ9IgorCQkJCUxJQlJBUllfT1VUUFVUX0RJUkVDVE9SWSAiJHtf
b3V0cHV0RGlyfSIKKwkJCQlSVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgIiR7X291dHB1dERpcn0i
KQorCQllbmRpZigpCisJZWxzZSgpCisJCWNvdGlyZV9jb3B5X3NldF9wcm9wZXJpdGVzKCIke19j
b25maWd1cmF0aW9uc30iIFRBUkdFVCAke190YXJnZXR9ICR7X3VuaXR5VGFyZ2V0TmFtZX0gJHtf
b3V0cHV0RGlyUHJvcGVydGllc30pCisJZW5kaWYoKQorCSMgY29weSBvdXRwdXQgbmFtZQorCWNv
dGlyZV9jb3B5X3NldF9wcm9wZXJpdGVzKCIke19jb25maWd1cmF0aW9uc30iIFRBUkdFVCAke190
YXJnZXR9ICR7X3VuaXR5VGFyZ2V0TmFtZX0KKwkJQVJDSElWRV9PVVRQVVRfTkFNRSBBUkNISVZF
X09VVFBVVF9OQU1FXzxDT05GSUc+CisJCUxJQlJBUllfT1VUUFVUX05BTUUgTElCUkFSWV9PVVRQ
VVRfTkFNRV88Q09ORklHPgorCQlPVVRQVVRfTkFNRSBPVVRQVVRfTkFNRV88Q09ORklHPgorCQlS
VU5USU1FX09VVFBVVF9OQU1FIFJVTlRJTUVfT1VUUFVUX05BTUVfPENPTkZJRz4KKwkJUFJFRklY
IDxDT05GSUc+X1BPU1RGSVggU1VGRklYKQorCSMgY29weSBjb21waWxlIHN0dWZmCisJY290aXJl
X2NvcHlfc2V0X3Byb3Blcml0ZXMoIiR7X2NvbmZpZ3VyYXRpb25zfSIgVEFSR0VUICR7X3Rhcmdl
dH0gJHtfdW5pdHlUYXJnZXROYW1lfQorCQlDT01QSUxFX0RFRklOSVRJT05TIENPTVBJTEVfREVG
SU5JVElPTlNfPENPTkZJRz4KKwkJQ09NUElMRV9GTEFHUyBDT01QSUxFX09QVElPTlMKKwkJRm9y
dHJhbl9GT1JNQVQgRm9ydHJhbl9NT0RVTEVfRElSRUNUT1JZCisJCUlOQ0xVREVfRElSRUNUT1JJ
RVMKKwkJSU5URVJQUk9DRURVUkFMX09QVElNSVpBVElPTiBJTlRFUlBST0NFRFVSQUxfT1BUSU1J
WkFUSU9OXzxDT05GSUc+CisJCVBPU0lUSU9OX0lOREVQRU5ERU5UX0NPREUKKwkJQ19WSVNJQklM
SVRZX1BSRVNFVCBDWFhfVklTSUJJTElUWV9QUkVTRVQgVklTSUJJTElUWV9JTkxJTkVTX0hJRERF
TikKKwkjIGNvcHkgaW50ZXJmYWNlIHN0dWZmCisJY290aXJlX2NvcHlfc2V0X3Byb3Blcml0ZXMo
IiR7X2NvbmZpZ3VyYXRpb25zfSIgVEFSR0VUICR7X3RhcmdldH0gJHtfdW5pdHlUYXJnZXROYW1l
fQorCQlDT01QQVRJQkxFX0lOVEVSRkFDRV9CT09MIENPTVBBVElCTEVfSU5URVJGQUNFX05VTUJF
Ul9NQVggQ09NUEFUSUJMRV9JTlRFUkZBQ0VfTlVNQkVSX01JTiBDT01QQVRJQkxFX0lOVEVSRkFD
RV9TVFJJTkcKKwkJSU5URVJGQUNFX0NPTVBJTEVfREVGSU5JVElPTlMgSU5URVJGQUNFX0NPTVBJ
TEVfT1BUSU9OUyBJTlRFUkZBQ0VfSU5DTFVERV9ESVJFQ1RPUklFUworCQlJTlRFUkZBQ0VfUE9T
SVRJT05fSU5ERVBFTkRFTlRfQ09ERSBJTlRFUkZBQ0VfU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJ
RVMKKwkJSU5URVJGQUNFX0FVVE9VSUNfT1BUSU9OUykKKwkjIGNvcHkgbGluayBzdHVmZgorCWNv
dGlyZV9jb3B5X3NldF9wcm9wZXJpdGVzKCIke19jb25maWd1cmF0aW9uc30iIFRBUkdFVCAke190
YXJnZXR9ICR7X3VuaXR5VGFyZ2V0TmFtZX0KKwkJQlVJTERfV0lUSF9JTlNUQUxMX1JQQVRIIElO
U1RBTExfUlBBVEggSU5TVEFMTF9SUEFUSF9VU0VfTElOS19QQVRIIFNLSVBfQlVJTERfUlBBVEgK
KwkJTElOS0VSX0xBTkdVQUdFIExJTktfREVQRU5EUyBMSU5LX0RFUEVORFNfTk9fU0hBUkVECisJ
CUxJTktfRkxBR1MgTElOS19GTEFHU188Q09ORklHPgorCQlMSU5LX0lOVEVSRkFDRV9MSUJSQVJJ
RVMgTElOS19JTlRFUkZBQ0VfTElCUkFSSUVTXzxDT05GSUc+CisJCUxJTktfSU5URVJGQUNFX01V
TFRJUExJQ0lUWSBMSU5LX0lOVEVSRkFDRV9NVUxUSVBMSUNJVFlfPENPTkZJRz4KKwkJTElOS19T
RUFSQ0hfU1RBUlRfU1RBVElDIExJTktfU0VBUkNIX0VORF9TVEFUSUMKKwkJU1RBVElDX0xJQlJB
UllfRkxBR1MgU1RBVElDX0xJQlJBUllfRkxBR1NfPENPTkZJRz4KKwkJTk9fU09OQU1FIFNPVkVS
U0lPTiBWRVJTSU9OKQorCSMgY29weSBRdCBzdHVmZgorCWNvdGlyZV9jb3B5X3NldF9wcm9wZXJp
dGVzKCIke19jb25maWd1cmF0aW9uc30iIFRBUkdFVCAke190YXJnZXR9ICR7X3VuaXR5VGFyZ2V0
TmFtZX0KKwkJQVVUT01PQyBBVVRPTU9DX01PQ19PUFRJT05TIEFVVE9VSUMgQVVUT1VJQ19PUFRJ
T05TIEFVVE9SQ0MgQVVUT1JDQ19PUFRJT05TCisJCUFVVE9HRU5fVEFSR0VUX0RFUEVORFMpCisJ
IyBjb3B5IGNtYWtlIHN0dWZmCisJY290aXJlX2NvcHlfc2V0X3Byb3Blcml0ZXMoIiR7X2NvbmZp
Z3VyYXRpb25zfSIgVEFSR0VUICR7X3RhcmdldH0gJHtfdW5pdHlUYXJnZXROYW1lfQorCQlJTVBM
SUNJVF9ERVBFTkRTX0lOQ0xVREVfVFJBTlNGT1JNIFJVTEVfTEFVTkNIX0NPTVBJTEUgUlVMRV9M
QVVOQ0hfQ1VTVE9NIFJVTEVfTEFVTkNIX0xJTkspCisJIyBjb3B5IEFwcGxlIHBsYXRmb3JtIHNw
ZWNpZmljIHN0dWZmCisJY290aXJlX2NvcHlfc2V0X3Byb3Blcml0ZXMoIiR7X2NvbmZpZ3VyYXRp
b25zfSIgVEFSR0VUICR7X3RhcmdldH0gJHtfdW5pdHlUYXJnZXROYW1lfQorCQlCVU5ETEUgQlVO
RExFX0VYVEVOU0lPTiBGUkFNRVdPUksgSU5TVEFMTF9OQU1FX0RJUiBNQUNPU1hfQlVORExFIE1B
Q09TWF9CVU5ETEVfSU5GT19QTElTVCBNQUNPU1hfRlJBTUVXT1JLX0lORk9fUExJU1QKKwkJTUFD
T1NYX1JQQVRIIE9TWF9BUkNISVRFQ1RVUkVTIE9TWF9BUkNISVRFQ1RVUkVTXzxDT05GSUc+IFBS
SVZBVEVfSEVBREVSIFBVQkxJQ19IRUFERVIgUkVTT1VSQ0UpCisJIyBjb3B5IFdpbmRvd3MgcGxh
dGZvcm0gc3BlY2lmaWMgc3R1ZmYKKwljb3RpcmVfY29weV9zZXRfcHJvcGVyaXRlcygiJHtfY29u
ZmlndXJhdGlvbnN9IiBUQVJHRVQgJHtfdGFyZ2V0fSAke191bml0eVRhcmdldE5hbWV9CisJCUdO
VXRvTVMKKwkJUERCX05BTUUgUERCX05BTUVfPENPTkZJRz4gUERCX09VVFBVVF9ESVJFQ1RPUlkg
UERCX09VVFBVVF9ESVJFQ1RPUllfPENPTkZJRz4KKwkJVlNfRE9UTkVUX1JFRkVSRU5DRVMgVlNf
R0xPQkFMX0tFWVdPUkQgVlNfR0xPQkFMX1BST0pFQ1RfVFlQRVMgVlNfR0xPQkFMX1JPT1ROQU1F
U1BBQ0UgVlNfS0VZV09SRAorCQlWU19TQ0NfQVVYUEFUSCBWU19TQ0NfTE9DQUxQQVRIIFZTX1ND
Q19QUk9KRUNUTkFNRSBWU19TQ0NfUFJPVklERVIKKwkJVlNfV0lOUlRfRVhURU5TSU9OUyBWU19X
SU5SVF9SRUZFUkVOQ0VTIFdJTjMyX0VYRUNVVEFCTEUpCisJIyB1c2Ugb3V0cHV0IG5hbWUgZnJv
bSBvcmlnaW5hbCB0YXJnZXQKKwlnZXRfdGFyZ2V0X3Byb3BlcnR5KF90YXJnZXRPdXRwdXROYW1l
ICR7X3VuaXR5VGFyZ2V0TmFtZX0gT1VUUFVUX05BTUUpCisJaWYgKE5PVCBfdGFyZ2V0T3V0cHV0
TmFtZSkKKwkJc2V0X3Byb3BlcnR5KFRBUkdFVCAke191bml0eVRhcmdldE5hbWV9IFBST1BFUlRZ
IE9VVFBVVF9OQU1FICIke190YXJnZXR9IikKKwllbmRpZigpCisJIyB1c2UgZXhwb3J0IHN5bWJv
bCBmcm9tIG9yaWdpbmFsIHRhcmdldAorCWNvdGlyZV9nZXRfdGFyZ2V0X2V4cG9ydF9zeW1ib2wo
IiR7X3RhcmdldH0iIF9kZWZpbmVTeW1ib2wpCisJaWYgKF9kZWZpbmVTeW1ib2wpCisJCXNldF9w
cm9wZXJ0eShUQVJHRVQgJHtfdW5pdHlUYXJnZXROYW1lfSBQUk9QRVJUWSBERUZJTkVfU1lNQk9M
ICIke19kZWZpbmVTeW1ib2x9IikKKwkJaWYgKCIke190YXJnZXRUeXBlfSIgU1RSRVFVQUwgIkVY
RUNVVEFCTEUiKQorCQkJc2V0X3Byb3BlcnR5KFRBUkdFVCAke191bml0eVRhcmdldE5hbWV9IFBS
T1BFUlRZIEVOQUJMRV9FWFBPUlRTIFRSVUUpCisJCWVuZGlmKCkKKwllbmRpZigpCisJY290aXJl
X2luaXRfdGFyZ2V0KCR7X3VuaXR5VGFyZ2V0TmFtZX0pCisJY290aXJlX2FkZF90b191bml0eV9h
bGxfdGFyZ2V0KCR7X3VuaXR5VGFyZ2V0TmFtZX0pCisJc2V0X3Byb3BlcnR5KFRBUkdFVCAke190
YXJnZXR9IFBST1BFUlRZIENPVElSRV9VTklUWV9UQVJHRVRfTkFNRSAiJHtfdW5pdHlUYXJnZXRO
YW1lfSIpCitlbmRmdW5jdGlvbihjb3RpcmVfc2V0dXBfdW5pdHlfYnVpbGRfdGFyZ2V0KQorCitm
dW5jdGlvbiAoY290aXJlX3RhcmdldCBfdGFyZ2V0KQorCXNldChfb3B0aW9ucyAiIikKKwlzZXQo
X29uZVZhbHVlQXJncyBTT1VSQ0VfRElSIEJJTkFSWV9ESVIpCisJc2V0KF9tdWx0aVZhbHVlQXJn
cyBMQU5HVUFHRVMgQ09ORklHVVJBVElPTlMpCisJY21ha2VfcGFyc2VfYXJndW1lbnRzKF9vcHRp
b24gIiR7X29wdGlvbnN9IiAiJHtfb25lVmFsdWVBcmdzfSIgIiR7X211bHRpVmFsdWVBcmdzfSIg
JHtBUkdOfSkKKwlpZiAoTk9UIF9vcHRpb25fU09VUkNFX0RJUikKKwkJc2V0IChfb3B0aW9uX1NP
VVJDRV9ESVIgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfSIpCisJZW5kaWYoKQorCWlmIChO
T1QgX29wdGlvbl9CSU5BUllfRElSKQorCQlzZXQgKF9vcHRpb25fQklOQVJZX0RJUiAiJHtDTUFL
RV9DVVJSRU5UX0JJTkFSWV9ESVJ9IikKKwllbmRpZigpCisJaWYgKE5PVCBfb3B0aW9uX0xBTkdV
QUdFUykKKwkJZ2V0X3Byb3BlcnR5IChfb3B0aW9uX0xBTkdVQUdFUyBHTE9CQUwgUFJPUEVSVFkg
RU5BQkxFRF9MQU5HVUFHRVMpCisJZW5kaWYoKQorCWlmIChOT1QgX29wdGlvbl9DT05GSUdVUkFU
SU9OUykKKwkJaWYgKENNQUtFX0NPTkZJR1VSQVRJT05fVFlQRVMpCisJCQlzZXQgKF9vcHRpb25f
Q09ORklHVVJBVElPTlMgJHtDTUFLRV9DT05GSUdVUkFUSU9OX1RZUEVTfSkKKwkJZWxzZWlmIChD
TUFLRV9CVUlMRF9UWVBFKQorCQkJc2V0IChfb3B0aW9uX0NPTkZJR1VSQVRJT05TICIke0NNQUtF
X0JVSUxEX1RZUEV9IikKKwkJZWxzZSgpCisJCQlzZXQgKF9vcHRpb25fQ09ORklHVVJBVElPTlMg
Ik5vbmUiKQorCQllbmRpZigpCisJZW5kaWYoKQorCSMgdHJpdmlhbCBjaGVja3MKKwlnZXRfdGFy
Z2V0X3Byb3BlcnR5KF9pbXBvcnRlZCAke190YXJnZXR9IElNUE9SVEVEKQorCWlmIChfaW1wb3J0
ZWQpCisJCW1lc3NhZ2UgKFdBUk5JTkcgImNvdGlyZTogaW1wb3J0ZWQgdGFyZ2V0ICR7X3Rhcmdl
dH0gY2Fubm90IGJlIGNvdGlyZWQuIikKKwkJcmV0dXJuKCkKKwllbmRpZigpCisJIyByZXNvbHZl
IGFsaWFzCisJZ2V0X3RhcmdldF9wcm9wZXJ0eShfYWxpYXNOYW1lICR7X3RhcmdldH0gQUxJQVNF
RF9UQVJHRVQpCisJaWYgKF9hbGlhc05hbWUpCisJCWlmIChDT1RJUkVfREVCVUcpCisJCQltZXNz
YWdlIChTVEFUVVMgIiR7X3RhcmdldH0gaXMgYW4gYWxpYXMuIEFwcGx5aW5nIGNvdGlyZSB0byBh
bGlhc2VkIHRhcmdldCAke19hbGlhc05hbWV9IGluc3RlYWQuIikKKwkJZW5kaWYoKQorCQlzZXQg
KF90YXJnZXQgJHtfYWxpYXNOYW1lfSkKKwllbmRpZigpCisJIyBjaGVjayBpZiB0YXJnZXQgbmVl
ZHMgdG8gYmUgY290aXJlZCBmb3IgYnVpbGQgdHlwZQorCSMgd2hlbiB1c2luZyBjb25maWd1cmF0
aW9uIHR5cGVzLCB0aGUgdGVzdCBpcyBwZXJmb3JtZWQgYXQgYnVpbGQgdGltZQorCWNvdGlyZV9p
bml0X2NvdGlyZV90YXJnZXRfcHJvcGVydGllcygke190YXJnZXR9KQorCWlmIChOT1QgQ01BS0Vf
Q09ORklHVVJBVElPTl9UWVBFUykKKwkJaWYgKENNQUtFX0JVSUxEX1RZUEUpCisJCQlsaXN0IChG
SU5EIF9vcHRpb25fQ09ORklHVVJBVElPTlMgIiR7Q01BS0VfQlVJTERfVFlQRX0iIF9pbmRleCkK
KwkJZWxzZSgpCisJCQlsaXN0IChGSU5EIF9vcHRpb25fQ09ORklHVVJBVElPTlMgIk5vbmUiIF9p
bmRleCkKKwkJZW5kaWYoKQorCQlpZiAoX2luZGV4IEVRVUFMIC0xKQorCQkJaWYgKENPVElSRV9E
RUJVRykKKwkJCQltZXNzYWdlIChTVEFUVVMgIkNNQUtFX0JVSUxEX1RZUEU9JHtDTUFLRV9CVUlM
RF9UWVBFfSBub3QgY290aXJlZCAoJHtfb3B0aW9uX0NPTkZJR1VSQVRJT05TfSkiKQorCQkJZW5k
aWYoKQorCQkJcmV0dXJuKCkKKwkJZW5kaWYoKQorCWVuZGlmKCkKKwkjIGNob29zZSBsYW5ndWFn
ZXMgdGhhdCBhcHBseSB0byB0aGUgdGFyZ2V0CisJY290aXJlX2Nob29zZV90YXJnZXRfbGFuZ3Vh
Z2VzKCIke19vcHRpb25fU09VUkNFX0RJUn0iICIke190YXJnZXR9IiBfdGFyZ2V0TGFuZ3VhZ2Vz
ICR7X29wdGlvbl9MQU5HVUFHRVN9KQorCWlmIChOT1QgX3RhcmdldExhbmd1YWdlcykKKwkJcmV0
dXJuKCkKKwllbmRpZigpCisJbGlzdCAoTEVOR1RIIF90YXJnZXRMYW5ndWFnZXMgX251bWJlck9m
TGFuZ3VhZ2VzKQorCWlmIChfbnVtYmVyT2ZMYW5ndWFnZXMgR1JFQVRFUiAxKQorCQlzZXQgKF93
aG9sZVRhcmdldCBGQUxTRSkKKwllbHNlKCkKKwkJc2V0IChfd2hvbGVUYXJnZXQgVFJVRSkKKwll
bmRpZigpCisJc2V0IChfY21kcyAiIikKKwlmb3JlYWNoIChfbGFuZ3VhZ2UgJHtfdGFyZ2V0TGFu
Z3VhZ2VzfSkKKwkJY290aXJlX3Byb2Nlc3NfdGFyZ2V0X2xhbmd1YWdlKCIke19sYW5ndWFnZX0i
ICIke19vcHRpb25fQ09ORklHVVJBVElPTlN9IgorCQkJIiR7X29wdGlvbl9TT1VSQ0VfRElSfSIg
IiR7X29wdGlvbl9CSU5BUllfRElSfSIgJHtfdGFyZ2V0fSBfd2hvbGVUYXJnZXQgX2NtZCkKKwkJ
aWYgKF9jbWQpCisJCQlsaXN0IChBUFBFTkQgX2NtZHMgJHtfY21kfSkKKwkJZW5kaWYoKQorCWVu
ZGZvcmVhY2goKQorCWdldF90YXJnZXRfcHJvcGVydHkoX3RhcmdldEFkZFNDVSAke190YXJnZXR9
IENPVElSRV9BRERfVU5JVFlfQlVJTEQpCisJaWYgKF90YXJnZXRBZGRTQ1UpCisJCWNvdGlyZV9z
ZXR1cF91bml0eV9idWlsZF90YXJnZXQoIiR7X3RhcmdldExhbmd1YWdlc30iICIke19vcHRpb25f
Q09ORklHVVJBVElPTlN9IiAiJHtfb3B0aW9uX1NPVVJDRV9ESVJ9IiAke190YXJnZXR9KQorCWVu
ZGlmKCkKKwlnZXRfdGFyZ2V0X3Byb3BlcnR5KF90YXJnZXRVc2VQQ0ggJHtfdGFyZ2V0fSBDT1RJ
UkVfRU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUikKKwlpZiAoX3RhcmdldFVzZVBDSCkKKwkJY290
aXJlX3NldHVwX3RhcmdldF9wY2hfdXNhZ2UoIiR7X3RhcmdldExhbmd1YWdlc30iICIke19vcHRp
b25fU09VUkNFX0RJUn0iICR7X3RhcmdldH0gJHtfd2hvbGVUYXJnZXR9ICR7X2NtZHN9KQorCQlj
b3RpcmVfc2V0dXBfcGNoX3RhcmdldCgiJHtfdGFyZ2V0TGFuZ3VhZ2VzfSIgIiR7X29wdGlvbl9D
T05GSUdVUkFUSU9OU30iICR7X3RhcmdldH0pCisJZW5kaWYoKQorCWdldF90YXJnZXRfcHJvcGVy
dHkoX3RhcmdldEFkZENsZWFuVGFyZ2V0ICR7X3RhcmdldH0gQ09USVJFX0FERF9DTEVBTikKKwlp
ZiAoX3RhcmdldEFkZENsZWFuVGFyZ2V0KQorCQljb3RpcmVfc2V0dXBfY2xlYW5fdGFyZ2V0KCR7
X3RhcmdldH0pCisJZW5kaWYoKQorZW5kZnVuY3Rpb24oY290aXJlX3RhcmdldCkKKworZnVuY3Rp
b24gKGNvdGlyZV9tYXBfbGlicmFyaWVzIF9zdHJhdGVneSBfbWFwcGVkTGlicmFyaWVzVmFyKQor
CXNldCAoX21hcHBlZExpYnJhcmllcyAiIikKKwlmb3JlYWNoIChfbGlicmFyeSAke0FSR059KQor
CQlpZiAoVEFSR0VUICIke19saWJyYXJ5fSIgQU5EICIke19zdHJhdGVneX0iIE1BVENIRVMgIkNP
UFlfVU5JVFkiKQorCQkJZ2V0X3RhcmdldF9wcm9wZXJ0eShfbGlicmFyeVVuaXR5VGFyZ2V0TmFt
ZSAke19saWJyYXJ5fSBDT1RJUkVfVU5JVFlfVEFSR0VUX05BTUUpCisJCQlpZiAoVEFSR0VUICIk
e19saWJyYXJ5VW5pdHlUYXJnZXROYW1lfSIpCisJCQkJbGlzdCAoQVBQRU5EIF9tYXBwZWRMaWJy
YXJpZXMgIiR7X2xpYnJhcnlVbml0eVRhcmdldE5hbWV9IikKKwkJCWVsc2UoKQorCQkJCWxpc3Qg
KEFQUEVORCBfbWFwcGVkTGlicmFyaWVzICIke19saWJyYXJ5fSIpCisJCQllbmRpZigpCisJCWVs
c2UoKQorCQkJbGlzdCAoQVBQRU5EIF9tYXBwZWRMaWJyYXJpZXMgIiR7X2xpYnJhcnl9IikKKwkJ
ZW5kaWYoKQorCWVuZGZvcmVhY2goKQorCWxpc3QgKFJFTU9WRV9EVVBMSUNBVEVTIF9tYXBwZWRM
aWJyYXJpZXMpCisJc2V0ICgke19tYXBwZWRMaWJyYXJpZXNWYXJ9ICR7X21hcHBlZExpYnJhcmll
c30gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX3Rhcmdl
dF9saW5rX2xpYnJhcmllcyBfdGFyZ2V0KQorCWdldF90YXJnZXRfcHJvcGVydHkoX3VuaXR5VGFy
Z2V0TmFtZSAke190YXJnZXR9IENPVElSRV9VTklUWV9UQVJHRVRfTkFNRSkKKwlpZiAoVEFSR0VU
ICIke191bml0eVRhcmdldE5hbWV9IikKKwkJZ2V0X3RhcmdldF9wcm9wZXJ0eShfbGlua0xpYnJh
cmllc1N0cmF0ZWd5ICR7X3RhcmdldH0gQ09USVJFX1VOSVRZX0xJTktfTElCUkFSSUVTX0lOSVQp
CisJCWlmIChDT1RJUkVfREVCVUcpCisJCQltZXNzYWdlIChTVEFUVVMgInVuaXR5IHRhcmdldCAk
e191bml0eVRhcmdldE5hbWV9IGxpbmsgc3RyYXRlZ3k6ICR7X2xpbmtMaWJyYXJpZXNTdHJhdGVn
eX0iKQorCQllbmRpZigpCisJCWlmICgiJHtfbGlua0xpYnJhcmllc1N0cmF0ZWd5fSIgTUFUQ0hF
UyAiXihDT1BZfENPUFlfVU5JVFkpJCIpCisJCQlpZiAoQ01BS0VfVkVSU0lPTiBWRVJTSU9OX0xF
U1MgIjIuOC4xMSIpCisJCQkJbWVzc2FnZSAoV0FSTklORyAiY290aXJlOiB1bml0eSB0YXJnZXQg
bGluayBzdHJhdGVneSAke19saW5rTGlicmFyaWVzU3RyYXRlZ3l9IHJlcXVpcmVzIENNYWtlIDIu
OC4xMSBvciBsYXRlci4gRGVmYXVsdGluZyB0byBOT05FIGZvciAke190YXJnZXR9LiIpCisJCQll
bHNlKCkKKwkJCQlnZXRfdGFyZ2V0X3Byb3BlcnR5KF9saW5rTGlicmFyaWVzICR7X3RhcmdldH0g
TElOS19MSUJSQVJJRVMpCisJCQkJZ2V0X3RhcmdldF9wcm9wZXJ0eShfaW50ZXJmYWNlTGlua0xp
YnJhcmllcyAke190YXJnZXR9IElOVEVSRkFDRV9MSU5LX0xJQlJBUklFUykKKwkJCQljb3RpcmVf
bWFwX2xpYnJhcmllcygiJHtfbGlua0xpYnJhcmllc1N0cmF0ZWd5fSIgX3VuaXR5TGlua0xpYnJh
cmllcyAke19saW5rTGlicmFyaWVzfSAke19pbnRlcmZhY2VMaW5rTGlicmFyaWVzfSkKKwkJCQlp
ZiAoQ09USVJFX0RFQlVHKQorCQkJCQltZXNzYWdlIChTVEFUVVMgInVuaXR5IHRhcmdldCAke191
bml0eVRhcmdldE5hbWV9IGxpYnJhcmllczogJHtfdW5pdHlMaW5rTGlicmFyaWVzfSIpCisJCQkJ
ZW5kaWYoKQorCQkJCWlmIChfdW5pdHlMaW5rTGlicmFyaWVzKQorCQkJCQl0YXJnZXRfbGlua19s
aWJyYXJpZXMoJHtfdW5pdHlUYXJnZXROYW1lfSAke191bml0eUxpbmtMaWJyYXJpZXN9KQorCQkJ
CWVuZGlmKCkKKwkJCWVuZGlmKCkKKwkJZW5kaWYoKQorCWVuZGlmKCkKK2VuZGZ1bmN0aW9uKGNv
dGlyZV90YXJnZXRfbGlua19saWJyYXJpZXMpCisKK2Z1bmN0aW9uIChjb3RpcmVfY2xlYW51cCBf
YmluYXJ5RGlyIF9jb3RpcmVJbnRlcm1lZGlhdGVEaXJOYW1lIF90YXJnZXROYW1lKQorCWlmIChf
dGFyZ2V0TmFtZSkKKwkJZmlsZSAoR0xPQl9SRUNVUlNFIF9jb3RpcmVGaWxlcyAiJHtfYmluYXJ5
RGlyfS8ke190YXJnZXROYW1lfSouKiIpCisJZWxzZSgpCisJCWZpbGUgKEdMT0JfUkVDVVJTRSBf
Y290aXJlRmlsZXMgIiR7X2JpbmFyeURpcn0vKi4qIikKKwllbmRpZigpCisJIyBmaWx0ZXIgZmls
ZXMgaW4gaW50ZXJtZWRpYXRlIGRpcmVjdG9yeQorCXNldCAoX2ZpbGVzVG9SZW1vdmUgIiIpCisJ
Zm9yZWFjaCAoX2ZpbGUgJHtfY290aXJlRmlsZXN9KQorCQlnZXRfZmlsZW5hbWVfY29tcG9uZW50
KF9kaXIgIiR7X2ZpbGV9IiBQQVRIKQorCQlnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9kaXJOYW1l
ICIke19kaXJ9IiBOQU1FKQorCQlpZiAoIiR7X2Rpck5hbWV9IiBTVFJFUVVBTCAiJHtfY290aXJl
SW50ZXJtZWRpYXRlRGlyTmFtZX0iKQorCQkJbGlzdCAoQVBQRU5EIF9maWxlc1RvUmVtb3ZlICIk
e19maWxlfSIpCisJCWVuZGlmKCkKKwllbmRmb3JlYWNoKCkKKwlpZiAoX2ZpbGVzVG9SZW1vdmUp
CisJCWlmIChDT1RJUkVfVkVSQk9TRSkKKwkJCW1lc3NhZ2UgKFNUQVRVUyAicmVtb3ZpbmcgJHtf
ZmlsZXNUb1JlbW92ZX0iKQorCQllbmRpZigpCisJCWZpbGUgKFJFTU9WRSAke19maWxlc1RvUmVt
b3ZlfSkKKwllbmRpZigpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfaW5pdF90
YXJnZXQgX3RhcmdldE5hbWUpCisJaWYgKENPVElSRV9UQVJHRVRTX0ZPTERFUikKKwkJc2V0X3Rh
cmdldF9wcm9wZXJ0aWVzKCR7X3RhcmdldE5hbWV9IFBST1BFUlRJRVMgRk9MREVSICIke0NPVElS
RV9UQVJHRVRTX0ZPTERFUn0iKQorCWVuZGlmKCkKKwlpZiAoTVNWQ19JREUpCisJCXNldF90YXJn
ZXRfcHJvcGVydGllcygke190YXJnZXROYW1lfSBQUk9QRVJUSUVTIEVYQ0xVREVfRlJPTV9ERUZB
VUxUX0JVSUxEIFRSVUUpCisJZW5kaWYoKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290
aXJlX2FkZF90b19wY2hfYWxsX3RhcmdldCBfcGNoVGFyZ2V0TmFtZSkKKwlzZXQgKF90YXJnZXRO
YW1lICIke0NPVElSRV9QQ0hfQUxMX1RBUkdFVF9OQU1FfSIpCisJaWYgKE5PVCBUQVJHRVQgIiR7
X3RhcmdldE5hbWV9IikKKwkJYWRkX2N1c3RvbV90YXJnZXQoIiR7X3RhcmdldE5hbWV9IiBXT1JL
SU5HX0RJUkVDVE9SWSAiJHtDTUFLRV9CSU5BUllfRElSfSIgVkVSQkFUSU0pCisJCWNvdGlyZV9p
bml0X3RhcmdldCgiJHtfdGFyZ2V0TmFtZX0iKQorCWVuZGlmKCkKKwljb3RpcmVfc2V0dXBfY2xl
YW5fYWxsX3RhcmdldCgpCisJYWRkX2RlcGVuZGVuY2llcygke190YXJnZXROYW1lfSAke19wY2hU
YXJnZXROYW1lfSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9hZGRfdG9fdW5p
dHlfYWxsX3RhcmdldCBfdW5pdHlUYXJnZXROYW1lKQorCXNldCAoX3RhcmdldE5hbWUgIiR7Q09U
SVJFX1VOSVRZX0JVSUxEX0FMTF9UQVJHRVRfTkFNRX0iKQorCWlmIChOT1QgVEFSR0VUICIke190
YXJnZXROYW1lfSIpCisJCWFkZF9jdXN0b21fdGFyZ2V0KCIke190YXJnZXROYW1lfSIgV09SS0lO
R19ESVJFQ1RPUlkgIiR7Q01BS0VfQklOQVJZX0RJUn0iIFZFUkJBVElNKQorCQljb3RpcmVfaW5p
dF90YXJnZXQoIiR7X3RhcmdldE5hbWV9IikKKwllbmRpZigpCisJY290aXJlX3NldHVwX2NsZWFu
X2FsbF90YXJnZXQoKQorCWFkZF9kZXBlbmRlbmNpZXMoJHtfdGFyZ2V0TmFtZX0gJHtfdW5pdHlU
YXJnZXROYW1lfSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9zZXR1cF9jbGVh
bl9hbGxfdGFyZ2V0KQorCXNldCAoX3RhcmdldE5hbWUgIiR7Q09USVJFX0NMRUFOX0FMTF9UQVJH
RVRfTkFNRX0iKQorCWlmIChOT1QgVEFSR0VUICIke190YXJnZXROYW1lfSIpCisJCWNvdGlyZV9z
ZXRfY21kX3RvX3Byb2xvZ3VlKF9jbWRzKQorCQlsaXN0IChBUFBFTkQgX2NtZHMgLVAgIiR7Q09U
SVJFX0NNQUtFX01PRFVMRV9GSUxFfSIgImNsZWFudXAiICIke0NNQUtFX0JJTkFSWV9ESVJ9IiAi
JHtDT1RJUkVfSU5URElSfSIpCisJCWFkZF9jdXN0b21fdGFyZ2V0KCR7X3RhcmdldE5hbWV9IENP
TU1BTkQgJHtfY21kc30KKwkJCVdPUktJTkdfRElSRUNUT1JZICIke0NNQUtFX0JJTkFSWV9ESVJ9
IiBDT01NRU5UICJDbGVhbmluZyB1cCBhbGwgY290aXJlIGdlbmVyYXRlZCBmaWxlcyIgVkVSQkFU
SU0pCisJCWNvdGlyZV9pbml0X3RhcmdldCgiJHtfdGFyZ2V0TmFtZX0iKQorCWVuZGlmKCkKK2Vu
ZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZSkKKwlzZXQoX29wdGlvbnMgIiIpCisJc2V0
KF9vbmVWYWx1ZUFyZ3MgU09VUkNFX0RJUiBCSU5BUllfRElSKQorCXNldChfbXVsdGlWYWx1ZUFy
Z3MgTEFOR1VBR0VTIENPTkZJR1VSQVRJT05TKQorCWNtYWtlX3BhcnNlX2FyZ3VtZW50cyhfb3B0
aW9uICIke19vcHRpb25zfSIgIiR7X29uZVZhbHVlQXJnc30iICIke19tdWx0aVZhbHVlQXJnc30i
ICR7QVJHTn0pCisJc2V0IChfdGFyZ2V0cyAke19vcHRpb25fVU5QQVJTRURfQVJHVU1FTlRTfSkK
KwlpZiAoTk9UIF9vcHRpb25fU09VUkNFX0RJUikKKwkJc2V0IChfb3B0aW9uX1NPVVJDRV9ESVIg
IiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfSIpCisJZW5kaWYoKQorCWlmIChOT1QgX29wdGlv
bl9CSU5BUllfRElSKQorCQlzZXQgKF9vcHRpb25fQklOQVJZX0RJUiAiJHtDTUFLRV9DVVJSRU5U
X0JJTkFSWV9ESVJ9IikKKwllbmRpZigpCisJZm9yZWFjaCAoX3RhcmdldCAke190YXJnZXRzfSkK
KwkJaWYgKFRBUkdFVCAke190YXJnZXR9KQorCQkJY290aXJlX3RhcmdldCgke190YXJnZXR9IExB
TkdVQUdFUyAke19vcHRpb25fTEFOR1VBR0VTfSBDT05GSUdVUkFUSU9OUyAke19vcHRpb25fQ09O
RklHVVJBVElPTlN9CisJCQkJU09VUkNFX0RJUiAiJHtfb3B0aW9uX1NPVVJDRV9ESVJ9IiBCSU5B
UllfRElSICIke19vcHRpb25fQklOQVJZX0RJUn0iKQorCQllbHNlKCkKKwkJCW1lc3NhZ2UgKFdB
Uk5JTkcgImNvdGlyZTogJHtfdGFyZ2V0fSBpcyBub3QgYSB0YXJnZXQuIikKKwkJZW5kaWYoKQor
CWVuZGZvcmVhY2goKQorCWZvcmVhY2ggKF90YXJnZXQgJHtfdGFyZ2V0c30pCisJCWlmIChUQVJH
RVQgJHtfdGFyZ2V0fSkKKwkJCWNvdGlyZV90YXJnZXRfbGlua19saWJyYXJpZXMoJHtfdGFyZ2V0
fSkKKwkJZW5kaWYoKQorCWVuZGZvcmVhY2goKQorZW5kZnVuY3Rpb24oKQorCitpZiAoQ01BS0Vf
U0NSSVBUX01PREVfRklMRSkKKworCSMgY290aXJlIGlzIGJlaW5nIHJ1biBpbiBzY3JpcHQgbW9k
ZQorCSMgbG9jYXRlIC1QIG9uIGNvbW1hbmQgYXJncworCXNldCAoQ09USVJFX0FSR0MgLTEpCisJ
Zm9yZWFjaCAoX2luZGV4IFJBTkdFICR7Q01BS0VfQVJHQ30pCisJCWlmIChDT1RJUkVfQVJHQyBH
UkVBVEVSIC0xKQorCQkJc2V0IChDT1RJUkVfQVJHViR7Q09USVJFX0FSR0N9ICIke0NNQUtFX0FS
R1Yke19pbmRleH19IikKKwkJCW1hdGggKEVYUFIgQ09USVJFX0FSR0MgIiR7Q09USVJFX0FSR0N9
ICsgMSIpCisJCWVsc2VpZiAoIiR7Q01BS0VfQVJHViR7X2luZGV4fX0iIFNUUkVRVUFMICItUCIp
CisJCQlzZXQgKENPVElSRV9BUkdDIDApCisJCWVuZGlmKCkKKwllbmRmb3JlYWNoKCkKKworCSMg
aW5jbHVkZSB0YXJnZXQgc2NyaXB0IGlmIGF2YWlsYWJsZQorCWlmICgiJHtDT1RJUkVfQVJHVjJ9
IiBNQVRDSEVTICJcXC5jbWFrZSQiKQorCQkjIHRoZSBpbmNsdWRlZCB0YXJnZXQgc2NyaXB0cyBz
ZXRzIHVwIGFkZGl0aW9uYWwgdmFyaWFibGVzIHJlbGF0aW5nIHRvIHRoZSB0YXJnZXQgKGUuZy4s
IENPVElSRV9UQVJHRVRfU09VUkNFUykKKwkJaW5jbHVkZSgiJHtDT1RJUkVfQVJHVjJ9IikKKwll
bmRpZigpCisKKwlpZiAoQ09USVJFX0RFQlVHKQorCQltZXNzYWdlIChTVEFUVVMgIiR7Q09USVJF
X0FSR1YwfSAke0NPVElSRV9BUkdWMX0gJHtDT1RJUkVfQVJHVjJ9ICR7Q09USVJFX0FSR1YzfSAk
e0NPVElSRV9BUkdWNH0gJHtDT1RJUkVfQVJHVjV9IikKKwllbmRpZigpCisKKwlpZiAoV0lOMzIp
CisJCSMgZm9yIE1TVkMsIGNvbXBpbGVyIElEcyBtYXkgbm90IGFsd2F5cyBiZSBzZXQgY29ycmVj
dGx5CisJCWlmIChNU1ZDKQorCQkJc2V0IChDTUFLRV9DX0NPTVBJTEVSX0lEICJNU1ZDIikKKwkJ
CXNldCAoQ01BS0VfQ1hYX0NPTVBJTEVSX0lEICJNU1ZDIikKKwkJZW5kaWYoKQorCWVuZGlmKCkK
KworCWlmIChOT1QgQ09USVJFX0JVSUxEX1RZUEUpCisJCXNldCAoQ09USVJFX0JVSUxEX1RZUEUg
Ik5vbmUiKQorCWVuZGlmKCkKKwlzdHJpbmcgKFRPVVBQRVIgIiR7Q09USVJFX0JVSUxEX1RZUEV9
IiBfdXBwZXJDb25maWcpCisJc2V0IChfaW5jbHVkZURpcnMgJHtDT1RJUkVfVEFSR0VUX0lOQ0xV
REVfRElSRUNUT1JJRVNfJHtfdXBwZXJDb25maWd9fSkKKwlzZXQgKF9zeXN0ZW1JbmNsdWRlRGly
cyAke0NPVElSRV9UQVJHRVRfU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVNfJHtfdXBwZXJDb25m
aWd9fSkKKwlzZXQgKF9jb21waWxlRGVmaW5pdGlvbnMgJHtDT1RJUkVfVEFSR0VUX0NPTVBJTEVf
REVGSU5JVElPTlNfJHtfdXBwZXJDb25maWd9fSkKKwlzZXQgKF9jb21waWxlRmxhZ3MgJHtDT1RJ
UkVfVEFSR0VUX0NPTVBJTEVfRkxBR1NfJHtfdXBwZXJDb25maWd9fSkKKwkjIGNoZWNrIGlmIHRh
cmdldCBoYXMgYmVlbiBjb3RpcmVkIGZvciBhY3R1YWwgYnVpbGQgdHlwZSBDT1RJUkVfQlVJTERf
VFlQRQorCWxpc3QgKEZJTkQgQ09USVJFX1RBUkdFVF9DT05GSUdVUkFUSU9OX1RZUEVTICIke0NP
VElSRV9CVUlMRF9UWVBFfSIgX2luZGV4KQorCWlmIChfaW5kZXggR1JFQVRFUiAtMSkKKwkJc2V0
IChfc291cmNlcyAke0NPVElSRV9UQVJHRVRfU09VUkNFU30pCisJCXNldCAoX3NvdXJjZXNEZWZp
bml0aW9ucyAke0NPVElSRV9UQVJHRVRfU09VUkNFU19DT01QSUxFX0RFRklOSVRJT05TXyR7X3Vw
cGVyQ29uZmlnfX0pCisJZWxzZSgpCisJCWlmIChDT1RJUkVfREVCVUcpCisJCQltZXNzYWdlIChT
VEFUVVMgIkNPVElSRV9CVUlMRF9UWVBFPSR7Q09USVJFX0JVSUxEX1RZUEV9IG5vdCBjb3RpcmVk
ICgke0NPVElSRV9UQVJHRVRfQ09ORklHVVJBVElPTl9UWVBFU30pIikKKwkJZW5kaWYoKQorCQlz
ZXQgKF9zb3VyY2VzICIiKQorCQlzZXQgKF9zb3VyY2VzRGVmaW5pdGlvbnMgIiIpCisJZW5kaWYo
KQorCXNldCAoX3RhcmdldFByZVVuZGVmcyAke0NPVElSRV9UQVJHRVRfUFJFX1VOREVGU30pCisJ
c2V0IChfdGFyZ2V0UG9zdFVuZGVmcyAke0NPVElSRV9UQVJHRVRfUE9TVF9VTkRFRlN9KQorCXNl
dCAoX3NvdXJjZXNQcmVVbmRlZnMgJHtDT1RJUkVfVEFSR0VUX1NPVVJDRVNfUFJFX1VOREVGU30p
CisJc2V0IChfc291cmNlc1Bvc3RVbmRlZnMgJHtDT1RJUkVfVEFSR0VUX1NPVVJDRVNfUE9TVF9V
TkRFRlN9KQorCisJaWYgKCIke0NPVElSRV9BUkdWMX0iIFNUUkVRVUFMICJ1bml0eSIpCisKKwkJ
Y290aXJlX3NlbGVjdF91bml0eV9zb3VyY2VfZmlsZXMoIiR7Q09USVJFX0FSR1YzfSIgX3NvdXJj
ZXMgJHtfc291cmNlc30pCisJCWNvdGlyZV9nZW5lcmF0ZV91bml0eV9zb3VyY2UoCisJCQkiJHtD
T1RJUkVfQVJHVjN9IiAke19zb3VyY2VzfQorCQkJTEFOR1VBR0UgIiR7Q09USVJFX1RBUkdFVF9M
QU5HVUFHRX0iCisJCQlERVBFTkRTICIke0NPVElSRV9BUkdWMH0iICIke0NPVElSRV9BUkdWMn0i
CisJCQlTT1VSQ0VTX0NPTVBJTEVfREVGSU5JVElPTlMgJHtfc291cmNlc0RlZmluaXRpb25zfQor
CQkJUFJFX1VOREVGUyAke190YXJnZXRQcmVVbmRlZnN9CisJCQlQT1NUX1VOREVGUyAke190YXJn
ZXRQb3N0VW5kZWZzfQorCQkJU09VUkNFU19QUkVfVU5ERUZTICR7X3NvdXJjZXNQcmVVbmRlZnN9
CisJCQlTT1VSQ0VTX1BPU1RfVU5ERUZTICR7X3NvdXJjZXNQb3N0VW5kZWZzfSkKKworCWVsc2Vp
ZiAoIiR7Q09USVJFX0FSR1YxfSIgU1RSRVFVQUwgInByZWZpeCIpCisKKwkJc2V0IChfZmlsZXMg
IiIpCisJCWZvcmVhY2ggKF9pbmRleCBSQU5HRSA0ICR7Q09USVJFX0FSR0N9KQorCQkJaWYgKENP
VElSRV9BUkdWJHtfaW5kZXh9KQorCQkJCWxpc3QgKEFQUEVORCBfZmlsZXMgIiR7Q09USVJFX0FS
R1Yke19pbmRleH19IikKKwkJCWVuZGlmKCkKKwkJZW5kZm9yZWFjaCgpCisKKwkJY290aXJlX2dl
bmVyYXRlX3ByZWZpeF9oZWFkZXIoCisJCQkiJHtDT1RJUkVfQVJHVjN9IiAke19maWxlc30KKwkJ
CUNPTVBJTEVSX0VYRUNVVEFCTEUgIiR7Q01BS0VfJHtDT1RJUkVfVEFSR0VUX0xBTkdVQUdFfV9D
T01QSUxFUn0iCisJCQlDT01QSUxFUl9BUkcxICR7Q01BS0VfJHtDT1RJUkVfVEFSR0VUX0xBTkdV
QUdFfV9DT01QSUxFUl9BUkcxfQorCQkJQ09NUElMRVJfSUQgIiR7Q01BS0VfJHtDT1RJUkVfVEFS
R0VUX0xBTkdVQUdFfV9DT01QSUxFUl9JRH0iCisJCQlDT01QSUxFUl9WRVJTSU9OICIke0NPVElS
RV8ke0NPVElSRV9UQVJHRVRfTEFOR1VBR0V9X0NPTVBJTEVSX1ZFUlNJT059IgorCQkJTEFOR1VB
R0UgIiR7Q09USVJFX1RBUkdFVF9MQU5HVUFHRX0iCisJCQlERVBFTkRTICIke0NPVElSRV9BUkdW
MH0iICIke0NPVElSRV9BUkdWNH0iICR7Q09USVJFX1RBUkdFVF9QUkVGSVhfREVQRU5EU30KKwkJ
CUlHTk9SRV9QQVRIICIke0NPVElSRV9UQVJHRVRfSUdOT1JFX1BBVEh9OyR7Q09USVJFX0FERElU
SU9OQUxfUFJFRklYX0hFQURFUl9JR05PUkVfUEFUSH0iCisJCQlJTkNMVURFX1BBVEggJHtDT1RJ
UkVfVEFSR0VUX0lOQ0xVREVfUEFUSH0KKwkJCUlHTk9SRV9FWFRFTlNJT05TICIke0NNQUtFXyR7
Q09USVJFX1RBUkdFVF9MQU5HVUFHRX1fU09VUkNFX0ZJTEVfRVhURU5TSU9OU307JHtDT1RJUkVf
QURESVRJT05BTF9QUkVGSVhfSEVBREVSX0lHTk9SRV9FWFRFTlNJT05TfSIKKwkJCUlOQ0xVREVf
U1lTVEVNX0ZMQUcgIiR7Q09USVJFX0lOQ0xVREVfU1lTVEVNX0ZMQUd9IgorCQkJSU5DTFVERV9E
SVJFQ1RPUklFUyAke19pbmNsdWRlRGlyc30KKwkJCVNZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVT
ICR7X3N5c3RlbUluY2x1ZGVEaXJzfQorCQkJQ09NUElMRV9ERUZJTklUSU9OUyAke19jb21waWxl
RGVmaW5pdGlvbnN9CisJCQlDT01QSUxFX0ZMQUdTICR7X2NvbXBpbGVGbGFnc30pCisKKwllbHNl
aWYgKCIke0NPVElSRV9BUkdWMX0iIFNUUkVRVUFMICJwcmVjb21waWxlIikKKworCQlzZXQgKF9m
aWxlcyAiIikKKwkJZm9yZWFjaCAoX2luZGV4IFJBTkdFIDUgJHtDT1RJUkVfQVJHQ30pCisJCQlp
ZiAoQ09USVJFX0FSR1Yke19pbmRleH0pCisJCQkJbGlzdCAoQVBQRU5EIF9maWxlcyAiJHtDT1RJ
UkVfQVJHViR7X2luZGV4fX0iKQorCQkJZW5kaWYoKQorCQllbmRmb3JlYWNoKCkKKworCQljb3Rp
cmVfcHJlY29tcGlsZV9wcmVmaXhfaGVhZGVyKAorCQkJIiR7Q09USVJFX0FSR1YzfSIgIiR7Q09U
SVJFX0FSR1Y0fSIgIiR7Q09USVJFX0FSR1Y1fSIKKwkJCUNPTVBJTEVSX0VYRUNVVEFCTEUgIiR7
Q01BS0VfJHtDT1RJUkVfVEFSR0VUX0xBTkdVQUdFfV9DT01QSUxFUn0iCisJCQlDT01QSUxFUl9B
UkcxICR7Q01BS0VfJHtDT1RJUkVfVEFSR0VUX0xBTkdVQUdFfV9DT01QSUxFUl9BUkcxfQorCQkJ
Q09NUElMRVJfSUQgIiR7Q01BS0VfJHtDT1RJUkVfVEFSR0VUX0xBTkdVQUdFfV9DT01QSUxFUl9J
RH0iCisJCQlDT01QSUxFUl9WRVJTSU9OICIke0NPVElSRV8ke0NPVElSRV9UQVJHRVRfTEFOR1VB
R0V9X0NPTVBJTEVSX1ZFUlNJT059IgorCQkJTEFOR1VBR0UgIiR7Q09USVJFX1RBUkdFVF9MQU5H
VUFHRX0iCisJCQlJTkNMVURFX1NZU1RFTV9GTEFHICIke0NPVElSRV9JTkNMVURFX1NZU1RFTV9G
TEFHfSIKKwkJCUlOQ0xVREVfRElSRUNUT1JJRVMgJHtfaW5jbHVkZURpcnN9CisJCQlTWVNURU1f
SU5DTFVERV9ESVJFQ1RPUklFUyAke19zeXN0ZW1JbmNsdWRlRGlyc30KKwkJCUNPTVBJTEVfREVG
SU5JVElPTlMgJHtfY29tcGlsZURlZmluaXRpb25zfQorCQkJQ09NUElMRV9GTEFHUyAke19jb21w
aWxlRmxhZ3N9KQorCisJZWxzZWlmICgiJHtDT1RJUkVfQVJHVjF9IiBTVFJFUVVBTCAiY29tYmlu
ZSIpCisKKwkJaWYgKENPVElSRV9UQVJHRVRfTEFOR1VBR0UpCisJCQlzZXQgKF9zdGFydEluZGV4
IDMpCisJCWVsc2UoKQorCQkJc2V0IChfc3RhcnRJbmRleCAyKQorCQllbmRpZigpCisJCXNldCAo
X2ZpbGVzICIiKQorCQlmb3JlYWNoIChfaW5kZXggUkFOR0UgJHtfc3RhcnRJbmRleH0gJHtDT1RJ
UkVfQVJHQ30pCisJCQlpZiAoQ09USVJFX0FSR1Yke19pbmRleH0pCisJCQkJbGlzdCAoQVBQRU5E
IF9maWxlcyAiJHtDT1RJUkVfQVJHViR7X2luZGV4fX0iKQorCQkJZW5kaWYoKQorCQllbmRmb3Jl
YWNoKCkKKwkJaWYgKENPVElSRV9UQVJHRVRfTEFOR1VBR0UpCisJCQljb3RpcmVfZ2VuZXJhdGVf
dW5pdHlfc291cmNlKCR7X2ZpbGVzfSBMQU5HVUFHRSAiJHtDT1RJUkVfVEFSR0VUX0xBTkdVQUdF
fSIpCisJCWVsc2UoKQorCQkJY290aXJlX2dlbmVyYXRlX3VuaXR5X3NvdXJjZSgke19maWxlc30p
CisJCWVuZGlmKCkKKworCWVsc2VpZiAoIiR7Q09USVJFX0FSR1YxfSIgU1RSRVFVQUwgImNsZWFu
dXAiKQorCisJCWNvdGlyZV9jbGVhbnVwKCIke0NPVElSRV9BUkdWMn0iICIke0NPVElSRV9BUkdW
M30iICIke0NPVElSRV9BUkdWNH0iKQorCisJZWxzZSgpCisJCW1lc3NhZ2UgKEZBVEFMX0VSUk9S
ICJjb3RpcmU6IHVua25vd24gY29tbWFuZCBcIiR7Q09USVJFX0FSR1YxfVwiLiIpCisJZW5kaWYo
KQorCitlbHNlKCkKKworCSMgY290aXJlIGlzIGJlaW5nIHJ1biBpbiBpbmNsdWRlIG1vZGUKKwkj
IHNldCB1cCBhbGwgdmFyaWFibGUgYW5kIHByb3BlcnR5IGRlZmluaXRpb25zCisKKwl1bnNldCAo
Q09USVJFX0NfQ09NUElMRVJfVkVSU0lPTiBDQUNIRSkKKwl1bnNldCAoQ09USVJFX0NYWF9DT01Q
SUxFUl9WRVJTSU9OIENBQ0hFKQorCisJaWYgKE5PVCBERUZJTkVEIENPVElSRV9ERUJVR19JTklU
KQorCQlpZiAoREVGSU5FRCBDT1RJUkVfREVCVUcpCisJCQlzZXQgKENPVElSRV9ERUJVR19JTklU
ICR7Q09USVJFX0RFQlVHfSkKKwkJZWxzZSgpCisJCQlzZXQgKENPVElSRV9ERUJVR19JTklUIEZB
TFNFKQorCQllbmRpZigpCisJZW5kaWYoKQorCW9wdGlvbiAoQ09USVJFX0RFQlVHICJFbmFibGUg
Y290aXJlIGRlYnVnZ2luZyBvdXRwdXQ/IiAke0NPVElSRV9ERUJVR19JTklUfSkKKworCWlmIChO
T1QgREVGSU5FRCBDT1RJUkVfVkVSQk9TRV9JTklUKQorCQlpZiAoREVGSU5FRCBDT1RJUkVfVkVS
Qk9TRSkKKwkJCXNldCAoQ09USVJFX1ZFUkJPU0VfSU5JVCAke0NPVElSRV9WRVJCT1NFfSkKKwkJ
ZWxzZSgpCisJCQlzZXQgKENPVElSRV9WRVJCT1NFX0lOSVQgRkFMU0UpCisJCWVuZGlmKCkKKwll
bmRpZigpCisJb3B0aW9uIChDT1RJUkVfVkVSQk9TRSAiRW5hYmxlIGNvdGlyZSB2ZXJib3NlIG91
dHB1dD8iICR7Q09USVJFX1ZFUkJPU0VfSU5JVH0pCisKKwlzZXQgKENPVElSRV9BRERJVElPTkFM
X1BSRUZJWF9IRUFERVJfSUdOT1JFX0VYVEVOU0lPTlMgImluYztpbmw7aXBwIiBDQUNIRSBTVFJJ
TkcKKwkJIklnbm9yZSBoZWFkZXJzIHdpdGggdGhlIGxpc3RlZCBmaWxlIGV4dGVuc2lvbnMgZnJv
bSB0aGUgZ2VuZXJhdGVkIHByZWZpeCBoZWFkZXIuIikKKworCXNldCAoQ09USVJFX0FERElUSU9O
QUxfUFJFRklYX0hFQURFUl9JR05PUkVfUEFUSCAiIiBDQUNIRSBTVFJJTkcKKwkJIklnbm9yZSBo
ZWFkZXJzIGZyb20gdGhlc2UgZGlyZWN0b3JpZXMgd2hlbiBnZW5lcmF0aW5nIHRoZSBwcmVmaXgg
aGVhZGVyLiIpCisKKwlzZXQgKENPVElSRV9VTklUWV9TT1VSQ0VfRVhDTFVERV9FWFRFTlNJT05T
ICJtO21tIiBDQUNIRSBTVFJJTkcKKwkJIklnbm9yZSBzb3VyY2VzIHdpdGggdGhlIGxpc3RlZCBm
aWxlIGV4dGVuc2lvbnMgZnJvbSB0aGUgZ2VuZXJhdGVkIHVuaXR5IHNvdXJjZS4iKQorCisJc2V0
IChDT1RJUkVfTUlOSU1VTV9OVU1CRVJfT0ZfVEFSR0VUX1NPVVJDRVMgIjMiIENBQ0hFIFNUUklO
RworCQkiTWluaW11bSBudW1iZXIgb2Ygc291cmNlcyBpbiB0YXJnZXQgcmVxdWlyZWQgdG8gZW5h
YmxlIHVzZSBvZiBwcmVjb21waWxlZCBoZWFkZXIuIikKKworCWlmIChOT1QgREVGSU5FRCBDT1RJ
UkVfTUFYSU1VTV9OVU1CRVJfT0ZfVU5JVFlfSU5DTFVERVNfSU5JVCkKKwkJaWYgKERFRklORUQg
Q09USVJFX01BWElNVU1fTlVNQkVSX09GX1VOSVRZX0lOQ0xVREVTKQorCQkJc2V0IChDT1RJUkVf
TUFYSU1VTV9OVU1CRVJfT0ZfVU5JVFlfSU5DTFVERVNfSU5JVCAke0NPVElSRV9NQVhJTVVNX05V
TUJFUl9PRl9VTklUWV9JTkNMVURFU30pCisJCWVsc2VpZiAoIiR7Q01BS0VfR0VORVJBVE9SfSIg
TUFUQ0hFUyAiSk9NfE5pbmphfFZpc3VhbCBTdHVkaW8iKQorCQkJIyBlbmFibGUgcGFyYWxsZWxp
emF0aW9uIGZvciBnZW5lcmF0b3JzIHRoYXQgcnVuIG11bHRpcGxlIGpvYnMgYnkgZGVmYXVsdAor
CQkJc2V0IChDT1RJUkVfTUFYSU1VTV9OVU1CRVJfT0ZfVU5JVFlfSU5DTFVERVNfSU5JVCAiLWoi
KQorCQllbHNlKCkKKwkJCXNldCAoQ09USVJFX01BWElNVU1fTlVNQkVSX09GX1VOSVRZX0lOQ0xV
REVTX0lOSVQgIjAiKQorCQllbmRpZigpCisJZW5kaWYoKQorCXNldCAoQ09USVJFX01BWElNVU1f
TlVNQkVSX09GX1VOSVRZX0lOQ0xVREVTICIke0NPVElSRV9NQVhJTVVNX05VTUJFUl9PRl9VTklU
WV9JTkNMVURFU19JTklUfSIgQ0FDSEUgU1RSSU5HCisJCSJNYXhpbXVtIG51bWJlciBvZiBzb3Vy
Y2UgZmlsZXMgdG8gaW5jbHVkZSBpbiBhIHNpbmdsZSB1bml0eSBzb3VyY2UgZmlsZS4iKQorCisJ
aWYgKE5PVCBDT1RJUkVfUFJFRklYX0hFQURFUl9GSUxFTkFNRV9TVUZGSVgpCisJCXNldCAoQ09U
SVJFX1BSRUZJWF9IRUFERVJfRklMRU5BTUVfU1VGRklYICJfcHJlZml4IikKKwllbmRpZigpCisJ
aWYgKE5PVCBDT1RJUkVfVU5JVFlfU09VUkNFX0ZJTEVOQU1FX1NVRkZJWCkKKwkJc2V0IChDT1RJ
UkVfVU5JVFlfU09VUkNFX0ZJTEVOQU1FX1NVRkZJWCAiX3VuaXR5IikKKwllbmRpZigpCisJaWYg
KE5PVCBDT1RJUkVfSU5URElSKQorCQlzZXQgKENPVElSRV9JTlRESVIgImNvdGlyZSIpCisJZW5k
aWYoKQorCWlmIChOT1QgQ09USVJFX1BDSF9BTExfVEFSR0VUX05BTUUpCisJCXNldCAoQ09USVJF
X1BDSF9BTExfVEFSR0VUX05BTUUgImFsbF9wY2giKQorCWVuZGlmKCkKKwlpZiAoTk9UIENPVElS
RV9VTklUWV9CVUlMRF9BTExfVEFSR0VUX05BTUUpCisJCXNldCAoQ09USVJFX1VOSVRZX0JVSUxE
X0FMTF9UQVJHRVRfTkFNRSAiYWxsX3VuaXR5IikKKwllbmRpZigpCisJaWYgKE5PVCBDT1RJUkVf
Q0xFQU5fQUxMX1RBUkdFVF9OQU1FKQorCQlzZXQgKENPVElSRV9DTEVBTl9BTExfVEFSR0VUX05B
TUUgImNsZWFuX2NvdGlyZSIpCisJZW5kaWYoKQorCWlmIChOT1QgQ09USVJFX0NMRUFOX1RBUkdF
VF9TVUZGSVgpCisJCXNldCAoQ09USVJFX0NMRUFOX1RBUkdFVF9TVUZGSVggIl9jbGVhbl9jb3Rp
cmUiKQorCWVuZGlmKCkKKwlpZiAoTk9UIENPVElSRV9QQ0hfVEFSR0VUX1NVRkZJWCkKKwkJc2V0
IChDT1RJUkVfUENIX1RBUkdFVF9TVUZGSVggIl9wY2giKQorCWVuZGlmKCkKKwlpZiAoTk9UIENP
VElSRV9VTklUWV9CVUlMRF9UQVJHRVRfU1VGRklYKQorCQlzZXQgKENPVElSRV9VTklUWV9CVUlM
RF9UQVJHRVRfU1VGRklYICJfdW5pdHkiKQorCWVuZGlmKCkKKwlpZiAoTk9UIERFRklORUQgQ09U
SVJFX1RBUkdFVFNfRk9MREVSKQorCQlzZXQgKENPVElSRV9UQVJHRVRTX0ZPTERFUiAiY290aXJl
IikKKwllbmRpZigpCisJaWYgKE5PVCBERUZJTkVEIENPVElSRV9VTklUWV9PVVRQVVRfRElSRUNU
T1JZKQorCQlpZiAoIiR7Q01BS0VfR0VORVJBVE9SfSIgTUFUQ0hFUyAiTmluamEiKQorCQkJIyBn
ZW5lcmF0ZWQgTmluamEgYnVpbGQgZmlsZXMgZG8gbm90IHdvcmsgaWYgdGhlIHVuaXR5IHRhcmdl
dCBwcm9kdWNlcyB0aGUgc2FtZSBvdXRwdXQgZmlsZSBhcyB0aGUgY290aXJlZCB0YXJnZXQKKwkJ
CXNldCAoQ09USVJFX1VOSVRZX09VVFBVVF9ESVJFQ1RPUlkgInVuaXR5IikKKwkJZWxzZSgpCisJ
CQlzZXQgKENPVElSRV9VTklUWV9PVVRQVVRfRElSRUNUT1JZICIiKQorCQllbmRpZigpCisJZW5k
aWYoKQorCisJIyBkZWZpbmUgY290aXJlIGNhY2hlIHZhcmlhYmxlcworCisJZGVmaW5lX3Byb3Bl
cnR5KAorCQlDQUNIRURfVkFSSUFCTEUgUFJPUEVSVFkgIkNPVElSRV9BRERJVElPTkFMX1BSRUZJ
WF9IRUFERVJfSUdOT1JFX1BBVEgiCisJCUJSSUVGX0RPQ1MgIklnbm9yZSBoZWFkZXJzIGZyb20g
dGhlc2UgZGlyZWN0b3JpZXMgd2hlbiBnZW5lcmF0aW5nIHRoZSBwcmVmaXggaGVhZGVyLiIKKwkJ
RlVMTF9ET0NTCisJCQkiVGhlIHZhcmlhYmxlIGNhbiBiZSBzZXQgdG8gYSBzZW1pY29sb24gc2Vw
YXJhdGVkIGxpc3Qgb2YgaW5jbHVkZSBkaXJlY3Rvcmllcy4iCisJCQkiSWYgYSBoZWFkZXIgZmls
ZSBpcyBmb3VuZCBpbiBvbmUgb2YgdGhlc2UgZGlyZWN0b3JpZXMgb3Igc3ViLWRpcmVjdG9yaWVz
LCBpdCB3aWxsIGJlIGV4Y2x1ZGVkIGZyb20gdGhlIGdlbmVyYXRlZCBwcmVmaXggaGVhZGVyLiIK
KwkJCSJJZiBub3QgZGVmaW5lZCwgZGVmYXVsdHMgdG8gZW1wdHkgbGlzdC4iCisJKQorCisJZGVm
aW5lX3Byb3BlcnR5KAorCQlDQUNIRURfVkFSSUFCTEUgUFJPUEVSVFkgIkNPVElSRV9BRERJVElP
TkFMX1BSRUZJWF9IRUFERVJfSUdOT1JFX0VYVEVOU0lPTlMiCisJCUJSSUVGX0RPQ1MgIklnbm9y
ZSBpbmNsdWRlcyB3aXRoIHRoZSBsaXN0ZWQgZmlsZSBleHRlbnNpb25zIGZyb20gdGhlIGdlbmVy
YXRlZCBwcmVmaXggaGVhZGVyLiIKKwkJRlVMTF9ET0NTCisJCQkiVGhlIHZhcmlhYmxlIGNhbiBi
ZSBzZXQgdG8gYSBzZW1pY29sb24gc2VwYXJhdGVkIGxpc3Qgb2YgZmlsZSBleHRlbnNpb25zLiIK
KwkJCSJJZiBhIGhlYWRlciBmaWxlIGV4dGVuc2lvbiBtYXRjaGVzIG9uZSBpbiB0aGUgbGlzdCwg
aXQgd2lsbCBiZSBleGNsdWRlZCBmcm9tIHRoZSBnZW5lcmF0ZWQgcHJlZml4IGhlYWRlci4iCisJ
CQkiSW5jbHVkZXMgd2l0aCBhbiBleHRlbnNpb24gaW4gQ01BS0VfPExBTkc+X1NPVVJDRV9GSUxF
X0VYVEVOU0lPTlMgYXJlIGFsd2F5cyBpZ25vcmVkLiIKKwkJCSJJZiBub3QgZGVmaW5lZCwgZGVm
YXVsdHMgdG8gaW5jO2lubDtpcHAuIgorCSkKKworCWRlZmluZV9wcm9wZXJ0eSgKKwkJQ0FDSEVE
X1ZBUklBQkxFIFBST1BFUlRZICJDT1RJUkVfVU5JVFlfU09VUkNFX0VYQ0xVREVfRVhURU5TSU9O
UyIKKwkJQlJJRUZfRE9DUyAiRXhjbHVkZSBzb3VyY2VzIHdpdGggdGhlIGxpc3RlZCBmaWxlIGV4
dGVuc2lvbnMgZnJvbSB0aGUgZ2VuZXJhdGVkIHVuaXR5IHNvdXJjZS4iCisJCUZVTExfRE9DUwor
CQkJIlRoZSB2YXJpYWJsZSBjYW4gYmUgc2V0IHRvIGEgc2VtaWNvbG9uIHNlcGFyYXRlZCBsaXN0
IG9mIGZpbGUgZXh0ZW5zaW9ucy4iCisJCQkiSWYgYSBzb3VyY2UgZmlsZSBleHRlbnNpb24gbWF0
Y2hlcyBvbmUgaW4gdGhlIGxpc3QsIGl0IHdpbGwgYmUgZXhjbHVkZWQgZnJvbSB0aGUgZ2VuZXJh
dGVkIHVuaXR5IHNvdXJjZSBmaWxlLiIKKwkJCSJTb3VyY2UgZmlsZXMgd2l0aCBhbiBleHRlbnNp
b24gaW4gQ01BS0VfPExBTkc+X0lHTk9SRV9FWFRFTlNJT05TIGFyZSBhbHdheXMgZXhjbHVkZWQu
IgorCQkJIklmIG5vdCBkZWZpbmVkLCBkZWZhdWx0cyB0byBtO21tLiIKKwkpCisKKwlkZWZpbmVf
cHJvcGVydHkoCisJCUNBQ0hFRF9WQVJJQUJMRSBQUk9QRVJUWSAiQ09USVJFX01JTklNVU1fTlVN
QkVSX09GX1RBUkdFVF9TT1VSQ0VTIgorCQlCUklFRl9ET0NTICJNaW5pbXVtIG51bWJlciBvZiBz
b3VyY2VzIGluIHRhcmdldCByZXF1aXJlZCB0byBlbmFibGUgdXNlIG9mIHByZWNvbXBpbGVkIGhl
YWRlci4iCisJCUZVTExfRE9DUworCQkJIlRoZSB2YXJpYWJsZSBjYW4gYmUgc2V0IHRvIGFuIGlu
dGVnZXIgPiAwLiIKKwkJCSJJZiBhIHRhcmdldCBjb250YWlucyBsZXNzIHRoYW4gdGhhdCBudW1i
ZXIgb2Ygc291cmNlIGZpbGVzLCBjb3RpcmUgd2lsbCBub3QgZW5hYmxlIHRoZSB1c2Ugb2YgdGhl
IHByZWNvbXBpbGVkIGhlYWRlciBmb3IgdGhlIHRhcmdldC4iCisJCQkiSWYgbm90IGRlZmluZWQs
IGRlZmF1bHRzIHRvIDMuIgorCSkKKworCWRlZmluZV9wcm9wZXJ0eSgKKwkJQ0FDSEVEX1ZBUklB
QkxFIFBST1BFUlRZICJDT1RJUkVfTUFYSU1VTV9OVU1CRVJfT0ZfVU5JVFlfSU5DTFVERVMiCisJ
CUJSSUVGX0RPQ1MgIk1heGltdW0gbnVtYmVyIG9mIHNvdXJjZSBmaWxlcyB0byBpbmNsdWRlIGlu
IGEgc2luZ2xlIHVuaXR5IHNvdXJjZSBmaWxlLiIKKwkJRlVMTF9ET0NTCisJCQkiVGhpcyBtYXkg
YmUgc2V0IHRvIGFuIGludGVnZXIgPj0gMC4iCisJCQkiSWYgMCwgY290aXJlIHdpbGwgb25seSBj
cmVhdGUgYSBzaW5nbGUgdW5pdHkgc291cmNlIGZpbGUuIgorCQkJIklmIGEgdGFyZ2V0IGNvbnRh
aW5zIG1vcmUgdGhhbiB0aGF0IG51bWJlciBvZiBzb3VyY2UgZmlsZXMsIGNvdGlyZSB3aWxsIGNy
ZWF0ZSBtdWx0aXBsZSB1bml0eSBzb3VyY2UgZmlsZXMgZm9yIGl0LiIKKwkJCSJDYW4gYmUgc2V0
IHRvIFwiLWpcIiB0byBvcHRpbWl6ZSB0aGUgY291bnQgb2YgdW5pdHkgc291cmNlIGZpbGVzIGZv
ciB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBwcm9jZXNzb3IgY29yZXMuIgorCQkJIkNhbiBiZSBz
ZXQgdG8gXCItaiBqb2JzXCIgdG8gb3B0aW1pemUgdGhlIG51bWJlciBvZiB1bml0eSBzb3VyY2Ug
ZmlsZXMgZm9yIHRoZSBnaXZlbiBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGpvYnMuIgorCQkJIklz
IHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgdGFyZ2V0IHByb3BlcnR5IENPVElSRV9VTklUWV9TT1VS
Q0VfTUFYSU1VTV9OVU1CRVJfT0ZfSU5DTFVERVMuIgorCQkJIkRlZmF1bHRzIHRvIFwiLWpcIiBm
b3IgdGhlIGdlbmVyYXRvcnMgVmlzdWFsIFN0dWRpbywgSk9NIG9yIE5pbmphLiBEZWZhdWx0cyB0
byAwIG90aGVyd2lzZS4iCisJKQorCisJIyBkZWZpbmUgY290aXJlIGRpcmVjdG9yeSBwcm9wZXJ0
aWVzCisKKwlkZWZpbmVfcHJvcGVydHkoCisJCURJUkVDVE9SWSBQUk9QRVJUWSAiQ09USVJFX0VO
QUJMRV9QUkVDT01QSUxFRF9IRUFERVIiCisJCUJSSUVGX0RPQ1MgIk1vZGlmeSBidWlsZCBjb21t
YW5kIG9mIGNvdGlyZWQgdGFyZ2V0cyBhZGRlZCBpbiB0aGlzIGRpcmVjdG9yeSB0byBtYWtlIHVz
ZSBvZiB0aGUgZ2VuZXJhdGVkIHByZWNvbXBpbGVkIGhlYWRlci4iCisJCUZVTExfRE9DUworCQkJ
IlNlZSB0YXJnZXQgcHJvcGVydHkgQ09USVJFX0VOQUJMRV9QUkVDT01QSUxFRF9IRUFERVIuIgor
CSkKKworCWRlZmluZV9wcm9wZXJ0eSgKKwkJRElSRUNUT1JZIFBST1BFUlRZICJDT1RJUkVfQURE
X1VOSVRZX0JVSUxEIgorCQlCUklFRl9ET0NTICJBZGQgYSBuZXcgdGFyZ2V0IHRoYXQgcGVyZm9y
bXMgYSB1bml0eSBidWlsZCBmb3IgY290aXJlZCB0YXJnZXRzIGFkZGVkIGluIHRoaXMgZGlyZWN0
b3J5LiIKKwkJRlVMTF9ET0NTCisJCQkiU2VlIHRhcmdldCBwcm9wZXJ0eSBDT1RJUkVfQUREX1VO
SVRZX0JVSUxELiIKKwkpCisKKwlkZWZpbmVfcHJvcGVydHkoCisJCURJUkVDVE9SWSBQUk9QRVJU
WSAiQ09USVJFX0FERF9DTEVBTiIKKwkJQlJJRUZfRE9DUyAiQWRkIGEgbmV3IHRhcmdldCB0aGF0
IGNsZWFucyBhbGwgY290aXJlIGdlbmVyYXRlZCBmaWxlcyBmb3IgY290aXJlZCB0YXJnZXRzIGFk
ZGVkIGluIHRoaXMgZGlyZWN0b3J5LiIKKwkJRlVMTF9ET0NTCisJCQkiU2VlIHRhcmdldCBwcm9w
ZXJ0eSBDT1RJUkVfQUREX0NMRUFOLiIKKwkpCisKKwlkZWZpbmVfcHJvcGVydHkoCisJCURJUkVD
VE9SWSBQUk9QRVJUWSAiQ09USVJFX1BSRUZJWF9IRUFERVJfSUdOT1JFX1BBVEgiCisJCUJSSUVG
X0RPQ1MgIklnbm9yZSBoZWFkZXJzIGZyb20gdGhlc2UgZGlyZWN0b3JpZXMgd2hlbiBnZW5lcmF0
aW5nIHRoZSBwcmVmaXggaGVhZGVyLiIKKwkJRlVMTF9ET0NTCisJCQkiU2VlIHRhcmdldCBwcm9w
ZXJ0eSBDT1RJUkVfUFJFRklYX0hFQURFUl9JR05PUkVfUEFUSC4iCisJKQorCisJZGVmaW5lX3By
b3BlcnR5KAorCQlESVJFQ1RPUlkgUFJPUEVSVFkgIkNPVElSRV9QUkVGSVhfSEVBREVSX0lOQ0xV
REVfUEFUSCIKKwkJQlJJRUZfRE9DUyAiSG9ub3IgaGVhZGVycyBmcm9tIHRoZXNlIGRpcmVjdG9y
aWVzIHdoZW4gZ2VuZXJhdGluZyB0aGUgcHJlZml4IGhlYWRlci4iCisJCUZVTExfRE9DUworCQkJ
IlNlZSB0YXJnZXQgcHJvcGVydHkgQ09USVJFX1BSRUZJWF9IRUFERVJfSU5DTFVERV9QQVRILiIK
KwkpCisKKwlkZWZpbmVfcHJvcGVydHkoCisJCURJUkVDVE9SWSBQUk9QRVJUWSAiQ09USVJFX1VO
SVRZX1NPVVJDRV9QUkVfVU5ERUZTIgorCQlCUklFRl9ET0NTICJQcmVwcm9jZXNzb3IgdW5kZWZz
IHRvIHBsYWNlIGluIHRoZSBnZW5lcmF0ZWQgdW5pdHkgc291cmNlIGZpbGUgYmVmb3JlIHRoZSBp
bmNsdXNpb24gb2YgZWFjaCBzb3VyY2UgZmlsZS4iCisJCUZVTExfRE9DUworCQkJIlNlZSB0YXJn
ZXQgcHJvcGVydHkgQ09USVJFX1VOSVRZX1NPVVJDRV9QUkVfVU5ERUZTLiIKKwkpCisKKwlkZWZp
bmVfcHJvcGVydHkoCisJCURJUkVDVE9SWSBQUk9QRVJUWSAiQ09USVJFX1VOSVRZX1NPVVJDRV9Q
T1NUX1VOREVGUyIKKwkJQlJJRUZfRE9DUyAiUHJlcHJvY2Vzc29yIHVuZGVmcyB0byBwbGFjZSBp
biB0aGUgZ2VuZXJhdGVkIHVuaXR5IHNvdXJjZSBmaWxlIGFmdGVyIHRoZSBpbmNsdXNpb24gb2Yg
ZWFjaCBzb3VyY2UgZmlsZS4iCisJCUZVTExfRE9DUworCQkJIlNlZSB0YXJnZXQgcHJvcGVydHkg
Q09USVJFX1VOSVRZX1NPVVJDRV9QT1NUX1VOREVGUy4iCisJKQorCisJZGVmaW5lX3Byb3BlcnR5
KAorCQlESVJFQ1RPUlkgUFJPUEVSVFkgIkNPVElSRV9VTklUWV9TT1VSQ0VfTUFYSU1VTV9OVU1C
RVJfT0ZfSU5DTFVERVMiCisJCUJSSUVGX0RPQ1MgIk1heGltdW0gbnVtYmVyIG9mIHNvdXJjZSBm
aWxlcyB0byBpbmNsdWRlIGluIGEgc2luZ2xlIHVuaXR5IHNvdXJjZSBmaWxlLiIKKwkJRlVMTF9E
T0NTCisJCQkiU2VlIHRhcmdldCBwcm9wZXJ0eSBDT1RJUkVfVU5JVFlfU09VUkNFX01BWElNVU1f
TlVNQkVSX09GX0lOQ0xVREVTLiIKKwkpCisKKwlkZWZpbmVfcHJvcGVydHkoCisJCURJUkVDVE9S
WSBQUk9QRVJUWSAiQ09USVJFX1VOSVRZX0xJTktfTElCUkFSSUVTX0lOSVQiCisJCUJSSUVGX0RP
Q1MgIkRlZmluZSBzdHJhdGVneSBmb3Igc2V0dGluZyB1cCB0aGUgdW5pdHkgdGFyZ2V0J3MgbGlu
ayBsaWJyYXJpZXMuIgorCQlGVUxMX0RPQ1MKKwkJCSJTZWUgdGFyZ2V0IHByb3BlcnR5IENPVElS
RV9VTklUWV9MSU5LX0xJQlJBUklFU19JTklULiIKKwkpCisKKwkjIGRlZmluZSBjb3RpcmUgdGFy
Z2V0IHByb3BlcnRpZXMKKworCWRlZmluZV9wcm9wZXJ0eSgKKwkJVEFSR0VUIFBST1BFUlRZICJD
T1RJUkVfRU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUiIgSU5IRVJJVEVECisJCUJSSUVGX0RPQ1Mg
Ik1vZGlmeSB0aGlzIHRhcmdldCdzIGJ1aWxkIGNvbW1hbmQgdG8gbWFrZSB1c2Ugb2YgdGhlIGdl
bmVyYXRlZCBwcmVjb21waWxlZCBoZWFkZXIuIgorCQlGVUxMX0RPQ1MKKwkJCSJJZiB0aGlzIHBy
b3BlcnR5IGlzIHNldCB0byBUUlVFLCBjb3RpcmUgd2lsbCBtb2RpZnkgdGhlIGJ1aWxkIGNvbW1h
bmQgdG8gbWFrZSB1c2Ugb2YgdGhlIGdlbmVyYXRlZCBwcmVjb21waWxlZCBoZWFkZXIuIgorCQkJ
IklycmVzcGVjdGl2ZSBvZiB0aGUgdmFsdWUgb2YgdGhpcyBwcm9wZXJ0eSwgY290aXJlIHdpbGwg
c2V0dXAgY3VzdG9tIGNvbW1hbmRzIHRvIGdlbmVyYXRlIHRoZSB1bml0eSBzb3VyY2UgYW5kIHBy
ZWZpeCBoZWFkZXIgZm9yIHRoZSB0YXJnZXQuIgorCQkJIkZvciBtYWtlZmlsZSBiYXNlZCBnZW5l
cmF0b3JzIGNvdGlyZSB3aWxsIGFsc28gc2V0IHVwIGEgY3VzdG9tIHRhcmdldCB0byBtYW51YWxs
eSBpbnZva2UgdGhlIGdlbmVyYXRpb24gb2YgdGhlIHByZWNvbXBpbGVkIGhlYWRlci4iCisJCQki
VGhlIHRhcmdldCBuYW1lIHdpbGwgYmUgc2V0IHRvIHRoaXMgdGFyZ2V0J3MgbmFtZSB3aXRoIHRo
ZSBzdWZmaXggX3BjaCBhcHBlbmRlZC4iCisJCQkiSW5oZXJpdGVkIGZyb20gZGlyZWN0b3J5LiIK
KwkJCSJEZWZhdWx0cyB0byBUUlVFLiIKKwkpCisKKwlkZWZpbmVfcHJvcGVydHkoCisJCVRBUkdF
VCBQUk9QRVJUWSAiQ09USVJFX0FERF9VTklUWV9CVUlMRCIgSU5IRVJJVEVECisJCUJSSUVGX0RP
Q1MgIkFkZCBhIG5ldyB0YXJnZXQgdGhhdCBwZXJmb3JtcyBhIHVuaXR5IGJ1aWxkIGZvciB0aGlz
IHRhcmdldC4iCisJCUZVTExfRE9DUworCQkJIklmIHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvIFRS
VUUsIGNvdGlyZSBjcmVhdGVzIGEgbmV3IHRhcmdldCBvZiB0aGUgc2FtZSB0eXBlIHRoYXQgdXNl
cyB0aGUgZ2VuZXJhdGVkIHVuaXR5IHNvdXJjZSBmaWxlIGluc3RlYWQgb2YgdGhlIHRhcmdldCBz
b3VyY2VzLiIKKwkJCSJNb3N0IG9mIHRoZSByZWxldmFudCB0YXJnZXQgcHJvcGVydGllcyB3aWxs
IGJlIGNvcGllZCBmcm9tIHRoaXMgdGFyZ2V0IHRvIHRoZSBuZXcgdW5pdHkgYnVpbGQgdGFyZ2V0
LiIKKwkJCSJUYXJnZXQgZGVwZW5kZW5jaWVzIGFuZCBsaW5rZWQgbGlicmFyaWVzIGhhdmUgdG8g
YmUgbWFudWFsbHkgc2V0IHVwIGZvciB0aGUgbmV3IHVuaXR5IGJ1aWxkIHRhcmdldC4iCisJCQki
VGhlIHVuaXR5IHRhcmdldCBuYW1lIHdpbGwgYmUgc2V0IHRvIHRoaXMgdGFyZ2V0J3MgbmFtZSB3
aXRoIHRoZSBzdWZmaXggX3VuaXR5IGFwcGVuZGVkLiIKKwkJCSJJbmhlcml0ZWQgZnJvbSBkaXJl
Y3RvcnkuIgorCQkJIkRlZmF1bHRzIHRvIFRSVUUuIgorCSkKKworCWRlZmluZV9wcm9wZXJ0eSgK
KwkJVEFSR0VUIFBST1BFUlRZICJDT1RJUkVfQUREX0NMRUFOIiBJTkhFUklURUQKKwkJQlJJRUZf
RE9DUyAiQWRkIGEgbmV3IHRhcmdldCB0aGF0IGNsZWFucyBhbGwgY290aXJlIGdlbmVyYXRlZCBm
aWxlcyBmb3IgdGhpcyB0YXJnZXQuIgorCQlGVUxMX0RPQ1MKKwkJCSJJZiB0aGlzIHByb3BlcnR5
IGlzIHNldCB0byBUUlVFLCBjb3RpcmUgY3JlYXRlcyBhIG5ldyB0YXJnZXQgdGhhdCBjbGVhbiBh
bGwgZmlsZXMgKHVuaXR5IHNvdXJjZSwgcHJlZml4IGhlYWRlciwgcHJlY29tcGlsZWQgaGVhZGVy
KS4iCisJCQkiVGhlIGNsZWFuIHRhcmdldCBuYW1lIHdpbGwgYmUgc2V0IHRvIHRoaXMgdGFyZ2V0
J3MgbmFtZSB3aXRoIHRoZSBzdWZmaXggX2NsZWFuX2NvdGlyZSBhcHBlbmRlZC4iCisJCQkiSW5o
ZXJpdGVkIGZyb20gZGlyZWN0b3J5LiIKKwkJCSJEZWZhdWx0cyB0byBGQUxTRS4iCisJKQorCisJ
ZGVmaW5lX3Byb3BlcnR5KAorCQlUQVJHRVQgUFJPUEVSVFkgIkNPVElSRV9QUkVGSVhfSEVBREVS
X0lHTk9SRV9QQVRIIiBJTkhFUklURUQKKwkJQlJJRUZfRE9DUyAiSWdub3JlIGhlYWRlcnMgZnJv
bSB0aGVzZSBkaXJlY3RvcmllcyB3aGVuIGdlbmVyYXRpbmcgdGhlIHByZWZpeCBoZWFkZXIuIgor
CQlGVUxMX0RPQ1MKKwkJCSJUaGUgcHJvcGVydHkgY2FuIGJlIHNldCB0byBhIGxpc3Qgb2YgZGly
ZWN0b3JpZXMuIgorCQkJIklmIGEgaGVhZGVyIGZpbGUgaXMgZm91bmQgaW4gb25lIG9mIHRoZXNl
IGRpcmVjdG9yaWVzIG9yIHN1Yi1kaXJlY3RvcmllcywgaXQgd2lsbCBiZSBleGNsdWRlZCBmcm9t
IHRoZSBnZW5lcmF0ZWQgcHJlZml4IGhlYWRlci4iCisJCQkiSW5oZXJpdGVkIGZyb20gZGlyZWN0
b3J5LiIKKwkJCSJJZiBub3Qgc2V0LCB0aGlzIHByb3BlcnR5IGlzIGluaXRpYWxpemVkIHRvIFwk
e0NNQUtFX1NPVVJDRV9ESVJ9O1wke0NNQUtFX0JJTkFSWV9ESVJ9LiIKKwkpCisKKwlkZWZpbmVf
cHJvcGVydHkoCisJCVRBUkdFVCBQUk9QRVJUWSAiQ09USVJFX1BSRUZJWF9IRUFERVJfSU5DTFVE
RV9QQVRIIiBJTkhFUklURUQKKwkJQlJJRUZfRE9DUyAiSG9ub3IgaGVhZGVycyBmcm9tIHRoZXNl
IGRpcmVjdG9yaWVzIHdoZW4gZ2VuZXJhdGluZyB0aGUgcHJlZml4IGhlYWRlci4iCisJCUZVTExf
RE9DUworCQkJIlRoZSBwcm9wZXJ0eSBjYW4gYmUgc2V0IHRvIGEgbGlzdCBvZiBkaXJlY3Rvcmll
cy4iCisJCQkiSWYgYSBoZWFkZXIgZmlsZSBpcyBmb3VuZCBpbiBvbmUgb2YgdGhlc2UgZGlyZWN0
b3JpZXMgb3Igc3ViLWRpcmVjdG9yaWVzLCBpdCB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBnZW5l
cmF0ZWQgcHJlZml4IGhlYWRlci4iCisJCQkiSWYgYSBoZWFkZXIgZmlsZSBpcyBib3RoIHNlbGVj
dGVkIGJ5IENPVElSRV9QUkVGSVhfSEVBREVSX0lHTk9SRV9QQVRIIGFuZCBDT1RJUkVfUFJFRklY
X0hFQURFUl9JTkNMVURFX1BBVEgsIgorCQkJInRoZSBvcHRpb24gd2hpY2ggeWllbGRzIHRoZSBj
bG9zZXIgcmVsYXRpdmUgcGF0aCBtYXRjaCB3aW5zLiIKKwkJCSJJbmhlcml0ZWQgZnJvbSBkaXJl
Y3RvcnkuIgorCQkJIklmIG5vdCBzZXQsIHRoaXMgcHJvcGVydHkgaXMgaW5pdGlhbGl6ZWQgdG8g
dGhlIGVtcHR5IGxpc3QuIgorCSkKKworCWRlZmluZV9wcm9wZXJ0eSgKKwkJVEFSR0VUIFBST1BF
UlRZICJDT1RJUkVfVU5JVFlfU09VUkNFX1BSRV9VTkRFRlMiIElOSEVSSVRFRAorCQlCUklFRl9E
T0NTICJQcmVwcm9jZXNzb3IgdW5kZWZzIHRvIHBsYWNlIGluIHRoZSBnZW5lcmF0ZWQgdW5pdHkg
c291cmNlIGZpbGUgYmVmb3JlIHRoZSBpbmNsdXNpb24gb2YgZWFjaCB0YXJnZXQgc291cmNlIGZp
bGUuIgorCQlGVUxMX0RPQ1MKKwkJCSJUaGlzIG1heSBiZSBzZXQgdG8gYSBzZW1pY29sb24tc2Vw
YXJhdGVkIGxpc3Qgb2YgcHJlcHJvY2Vzc29yIHN5bWJvbHMuIgorCQkJImNvdGlyZSB3aWxsIGFk
ZCBjb3JyZXNwb25kaW5nICN1bmRlZiBkaXJlY3RpdmVzIHRvIHRoZSBnZW5lcmF0ZWQgdW5pdCBz
b3VyY2UgZmlsZSBiZWZvcmUgZWFjaCB0YXJnZXQgc291cmNlIGZpbGUuIgorCQkJIkluaGVyaXRl
ZCBmcm9tIGRpcmVjdG9yeS4iCisJCQkiRGVmYXVsdHMgdG8gZW1wdHkgc3RyaW5nLiIKKwkpCisK
KwlkZWZpbmVfcHJvcGVydHkoCisJCVRBUkdFVCBQUk9QRVJUWSAiQ09USVJFX1VOSVRZX1NPVVJD
RV9QT1NUX1VOREVGUyIgSU5IRVJJVEVECisJCUJSSUVGX0RPQ1MgIlByZXByb2Nlc3NvciB1bmRl
ZnMgdG8gcGxhY2UgaW4gdGhlIGdlbmVyYXRlZCB1bml0eSBzb3VyY2UgZmlsZSBhZnRlciB0aGUg
aW5jbHVzaW9uIG9mIGVhY2ggdGFyZ2V0IHNvdXJjZSBmaWxlLiIKKwkJRlVMTF9ET0NTCisJCQki
VGhpcyBtYXkgYmUgc2V0IHRvIGEgc2VtaWNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mIHByZXByb2Nl
c3NvciBzeW1ib2xzLiIKKwkJCSJjb3RpcmUgd2lsbCBhZGQgY29ycmVzcG9uZGluZyAjdW5kZWYg
ZGlyZWN0aXZlcyB0byB0aGUgZ2VuZXJhdGVkIHVuaXQgc291cmNlIGZpbGUgYWZ0ZXIgZWFjaCB0
YXJnZXQgc291cmNlIGZpbGUuIgorCQkJIkluaGVyaXRlZCBmcm9tIGRpcmVjdG9yeS4iCisJCQki
RGVmYXVsdHMgdG8gZW1wdHkgc3RyaW5nLiIKKwkpCisKKwlkZWZpbmVfcHJvcGVydHkoCisJCVRB
UkdFVCBQUk9QRVJUWSAiQ09USVJFX1VOSVRZX1NPVVJDRV9NQVhJTVVNX05VTUJFUl9PRl9JTkNM
VURFUyIgSU5IRVJJVEVECisJCUJSSUVGX0RPQ1MgIk1heGltdW0gbnVtYmVyIG9mIHNvdXJjZSBm
aWxlcyB0byBpbmNsdWRlIGluIGEgc2luZ2xlIHVuaXR5IHNvdXJjZSBmaWxlLiIKKwkJRlVMTF9E
T0NTCisJCQkiVGhpcyBtYXkgYmUgc2V0IHRvIGFuIGludGVnZXIgPiAwLiIKKwkJCSJJZiBhIHRh
cmdldCBjb250YWlucyBtb3JlIHRoYW4gdGhhdCBudW1iZXIgb2Ygc291cmNlIGZpbGVzLCBjb3Rp
cmUgd2lsbCBjcmVhdGUgbXVsdGlwbGUgdW5pdHkgYnVpbGQgZmlsZXMgZm9yIGl0LiIKKwkJCSJJ
ZiBub3Qgc2V0LCBjb3RpcmUgd2lsbCBvbmx5IGNyZWF0ZSBhIHNpbmdsZSB1bml0eSBzb3VyY2Ug
ZmlsZS4iCisJCQkiSW5oZXJpdGVkIGZyb20gZGlyZWN0b3J5LiIKKwkJCSJEZWZhdWx0cyB0byBl
bXB0eS4iCisJKQorCisJZGVmaW5lX3Byb3BlcnR5KAorCQlUQVJHRVQgUFJPUEVSVFkgIkNPVElS
RV88TEFORz5fVU5JVFlfU09VUkNFX0lOSVQiCisJCUJSSUVGX0RPQ1MgIlVzZXIgcHJvdmlkZWQg
dW5pdHkgc291cmNlIGZpbGUgdG8gYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSBhdXRvbWF0aWNhbGx5
IGdlbmVyYXRlZCBvbmUuIgorCQlGVUxMX0RPQ1MKKwkJCSJJZiBzZXQsIGNvdGlyZSB3aWxsIG9u
bHkgYWRkIHRoZSBnaXZlbiBmaWxlKHMpIHRvIHRoZSBnZW5lcmF0ZWQgdW5pdHkgc291cmNlIGZp
bGUuIgorCQkJIklmIG5vdCBzZXQsIGNvdGlyZSB3aWxsIGFkZCBhbGwgdGhlIHRhcmdldCBzb3Vy
Y2UgZmlsZXMgdG8gdGhlIGdlbmVyYXRlZCB1bml0eSBzb3VyY2UgZmlsZS4iCisJCQkiVGhlIHBy
b3BlcnR5IGNhbiBiZSBzZXQgdG8gYSB1c2VyIHByb3ZpZGVkIHVuaXR5IHNvdXJjZSBmaWxlLiIK
KwkJCSJEZWZhdWx0cyB0byBlbXB0eS4iCisJKQorCisJZGVmaW5lX3Byb3BlcnR5KAorCQlUQVJH
RVQgUFJPUEVSVFkgIkNPVElSRV88TEFORz5fUFJFRklYX0hFQURFUl9JTklUIgorCQlCUklFRl9E
T0NTICJVc2VyIHByb3ZpZGVkIHByZWZpeCBoZWFkZXIgZmlsZSB0byBiZSB1c2VkIGluc3RlYWQg
b2YgdGhlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG9uZS4iCisJCUZVTExfRE9DUworCQkJIklm
IHNldCwgY290aXJlIHdpbGwgYWRkIHRoZSBnaXZlbiBoZWFkZXIgZmlsZShzKSB0byB0aGUgZ2Vu
ZXJhdGVkIHByZWZpeCBoZWFkZXIgZmlsZS4iCisJCQkiSWYgbm90IHNldCwgY290aXJlIHdpbGwg
Z2VuZXJhdGUgYSBwcmVmaXggaGVhZGVyIGJ5IHRyYWNraW5nIHRoZSBoZWFkZXIgZmlsZXMgaW5j
bHVkZWQgYnkgdGhlIHVuaXR5IHNvdXJjZSBmaWxlLiIKKwkJCSJUaGUgcHJvcGVydHkgY2FuIGJl
IHNldCB0byBhIHVzZXIgcHJvdmlkZWQgcHJlZml4IGhlYWRlciBmaWxlIChlLmcuLCBzdGRhZngu
aCkuIgorCQkJIkRlZmF1bHRzIHRvIGVtcHR5LiIKKwkpCisKKwlkZWZpbmVfcHJvcGVydHkoCisJ
CVRBUkdFVCBQUk9QRVJUWSAiQ09USVJFX1VOSVRZX0xJTktfTElCUkFSSUVTX0lOSVQiIElOSEVS
SVRFRAorCQlCUklFRl9ET0NTICJEZWZpbmUgc3RyYXRlZ3kgZm9yIHNldHRpbmcgdXAgdW5pdHkg
dGFyZ2V0J3MgbGluayBsaWJyYXJpZXMuIgorCQlGVUxMX0RPQ1MKKwkJCSJJZiB0aGlzIHByb3Bl
cnR5IGlzIGVtcHR5LCB0aGUgZ2VuZXJhdGVkIHVuaXR5IHRhcmdldCdzIGxpbmsgbGlicmFyaWVz
IGhhdmUgdG8gYmUgc2V0IHVwIG1hbnVhbGx5LiIKKwkJCSJJZiB0aGlzIHByb3BlcnR5IGlzIHNl
dCB0byBDT1BZLCB0aGUgdW5pdHkgdGFyZ2V0J3MgbGluayBsaWJyYXJpZXMgd2lsbCBiZSBjb3Bp
ZWQgZnJvbSB0aGlzIHRhcmdldC4iCisJCQkiSWYgdGhpcyBwcm9wZXJ0eSBpcyBzZXQgdG8gQ09Q
WV9VTklUWSwgdGhlIHVuaXR5IHRhcmdldCdzIGxpbmsgbGlicmFyaWVzIHdpbGwgYmUgY29waWVk
IGZyb20gdGhpcyB0YXJnZXQgd2l0aCBjb25zaWRlcmluZyBleGlzdGluZyB1bml0eSB0YXJnZXRz
LiIKKwkJCSJJbmhlcml0ZWQgZnJvbSBkaXJlY3RvcnkuIgorCQkJIkRlZmF1bHRzIHRvIGVtcHR5
LiIKKwkpCisKKwlkZWZpbmVfcHJvcGVydHkoCisJCVRBUkdFVCBQUk9QRVJUWSAiQ09USVJFXzxM
QU5HPl9VTklUWV9TT1VSQ0UiCisJCUJSSUVGX0RPQ1MgIlJlYWQtb25seSBwcm9wZXJ0eS4gVGhl
IGdlbmVyYXRlZCA8TEFORz4gdW5pdHkgc291cmNlIGZpbGUocykuIgorCQlGVUxMX0RPQ1MKKwkJ
CSJjb3RpcmUgc2V0cyB0aGlzIHByb3BlcnR5IHRvIHRoZSBwYXRoIG9mIHRoZSBnZW5lcmF0ZWQg
PExBTkc+IHNpbmdsZSBjb21wdXRhdGlvbiB1bml0IHNvdXJjZSBmaWxlIGZvciB0aGUgdGFyZ2V0
LiIKKwkJCSJEZWZhdWx0cyB0byBlbXB0eSBzdHJpbmcuIgorCSkKKworCWRlZmluZV9wcm9wZXJ0
eSgKKwkJVEFSR0VUIFBST1BFUlRZICJDT1RJUkVfPExBTkc+X1BSRUZJWF9IRUFERVIiCisJCUJS
SUVGX0RPQ1MgIlJlYWQtb25seSBwcm9wZXJ0eS4gVGhlIGdlbmVyYXRlZCA8TEFORz4gcHJlZml4
IGhlYWRlciBmaWxlLiIKKwkJRlVMTF9ET0NTCisJCQkiY290aXJlIHNldHMgdGhpcyBwcm9wZXJ0
eSB0byB0aGUgZnVsbCBwYXRoIG9mIHRoZSBnZW5lcmF0ZWQgPExBTkc+IGxhbmd1YWdlIHByZWZp
eCBoZWFkZXIgZm9yIHRoZSB0YXJnZXQuIgorCQkJIkRlZmF1bHRzIHRvIGVtcHR5IHN0cmluZy4i
CisJKQorCisJZGVmaW5lX3Byb3BlcnR5KAorCQlUQVJHRVQgUFJPUEVSVFkgIkNPVElSRV88TEFO
Rz5fUFJFQ09NUElMRURfSEVBREVSIgorCQlCUklFRl9ET0NTICJSZWFkLW9ubHkgcHJvcGVydHku
IFRoZSBnZW5lcmF0ZWQgPExBTkc+IHByZWNvbXBpbGVkIGhlYWRlciBmaWxlLiIKKwkJRlVMTF9E
T0NTCisJCQkiY290aXJlIHNldHMgdGhpcyBwcm9wZXJ0eSB0byB0aGUgZnVsbCBwYXRoIG9mIHRo
ZSBnZW5lcmF0ZWQgPExBTkc+IGxhbmd1YWdlIHByZWNvbXBpbGVkIGhlYWRlciBiaW5hcnkgZm9y
IHRoZSB0YXJnZXQuIgorCQkJIkRlZmF1bHRzIHRvIGVtcHR5IHN0cmluZy4iCisJKQorCisJZGVm
aW5lX3Byb3BlcnR5KAorCQlUQVJHRVQgUFJPUEVSVFkgIkNPVElSRV9VTklUWV9UQVJHRVRfTkFN
RSIKKwkJQlJJRUZfRE9DUyAiVGhlIG5hbWUgb2YgdGhlIGdlbmVyYXRlZCB1bml0eSBidWlsZCB0
YXJnZXQgY29ycmVzcG9uZGluZyB0byB0aGlzIHRhcmdldC4iCisJCUZVTExfRE9DUworCQkJIlRo
aXMgcHJvcGVydHkgY2FuIGJlIHNldCB0byB0aGUgZGVzaXJlZCBuYW1lIG9mIHRoZSB1bml0eSB0
YXJnZXQgdGhhdCB3aWxsIGJlIGNyZWF0ZWQgYnkgY290aXJlLiIKKwkJCSJJZiBub3Qgc2V0LCB0
aGUgdW5pdHkgdGFyZ2V0IG5hbWUgd2lsbCBiZSBzZXQgdG8gdGhpcyB0YXJnZXQncyBuYW1lIHdp
dGggdGhlIHN1ZmZpeCBfdW5pdHkgYXBwZW5kZWQuIgorCQkJIkFmdGVyIHRoaXMgdGFyZ2V0IGhh
cyBiZWVuIHByb2Nlc3NlZCBieSBjb3RpcmUsIHRoZSBwcm9wZXJ0eSBpcyBzZXQgdG8gdGhlIGFj
dHVhbCBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgdW5pdHkgdGFyZ2V0LiIKKwkJCSJEZWZhdWx0cyB0
byBlbXB0eSBzdHJpbmcuIgorCSkKKworCSMgZGVmaW5lIGNvdGlyZSBzb3VyY2UgcHJvcGVydGll
cworCisJZGVmaW5lX3Byb3BlcnR5KAorCQlTT1VSQ0UgUFJPUEVSVFkgIkNPVElSRV9FWENMVURF
RCIKKwkJQlJJRUZfRE9DUyAiRG8gbm90IG1vZGlmeSBzb3VyY2UgZmlsZSdzIGJ1aWxkIGNvbW1h
bmQuIgorCQlGVUxMX0RPQ1MKKwkJCSJJZiB0aGlzIHByb3BlcnR5IGlzIHNldCB0byBUUlVFLCB0
aGUgc291cmNlIGZpbGUncyBidWlsZCBjb21tYW5kIHdpbGwgbm90IGJlIG1vZGlmaWVkIHRvIG1h
a2UgdXNlIG9mIHRoZSBwcmVjb21waWxlZCBoZWFkZXIuIgorCQkJIlRoZSBzb3VyY2UgZmlsZSB3
aWxsIGFsc28gYmUgZXhjbHVkZWQgZnJvbSB0aGUgZ2VuZXJhdGVkIHVuaXR5IHNvdXJjZSBmaWxl
LiIKKwkJCSJTb3VyY2UgZmlsZXMgdGhhdCBoYXZlIHRoZWlyIENPTVBJTEVfRkxBR1MgcHJvcGVy
dHkgc2V0IHdpbGwgYmUgZXhjbHVkZWQgYnkgZGVmYXVsdC4iCisJCQkiRGVmYXVsdHMgdG8gRkFM
U0UuIgorCSkKKworCWRlZmluZV9wcm9wZXJ0eSgKKwkJU09VUkNFIFBST1BFUlRZICJDT1RJUkVf
REVQRU5ERU5DWSIKKwkJQlJJRUZfRE9DUyAiQWRkIHRoaXMgc291cmNlIGZpbGUgdG8gZGVwZW5k
ZW5jaWVzIG9mIHRoZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBwcmVmaXggaGVhZGVyIGZpbGUu
IgorCQlGVUxMX0RPQ1MKKwkJCSJJZiB0aGlzIHByb3BlcnR5IGlzIHNldCB0byBUUlVFLCB0aGUg
c291cmNlIGZpbGUgaXMgYWRkZWQgdG8gZGVwZW5kZW5jaWVzIG9mIHRoZSBnZW5lcmF0ZWQgcHJl
Zml4IGhlYWRlciBmaWxlLiIKKwkJCSJJZiB0aGUgZmlsZSBpcyBtb2RpZmllZCwgY290aXJlIHdp
bGwgcmUtZ2VuZXJhdGUgdGhlIHByZWZpeCBoZWFkZXIgc291cmNlIHVwb24gYnVpbGQuIgorCQkJ
IkRlZmF1bHRzIHRvIEZBTFNFLiIKKwkpCisKKwlkZWZpbmVfcHJvcGVydHkoCisJCVNPVVJDRSBQ
Uk9QRVJUWSAiQ09USVJFX1VOSVRZX1NPVVJDRV9QUkVfVU5ERUZTIgorCQlCUklFRl9ET0NTICJQ
cmVwcm9jZXNzb3IgdW5kZWZzIHRvIHBsYWNlIGluIHRoZSBnZW5lcmF0ZWQgdW5pdHkgc291cmNl
IGZpbGUgYmVmb3JlIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzb3VyY2UgZmlsZS4iCisJCUZVTExf
RE9DUworCQkJIlRoaXMgbWF5IGJlIHNldCB0byBhIHNlbWljb2xvbi1zZXBhcmF0ZWQgbGlzdCBv
ZiBwcmVwcm9jZXNzb3Igc3ltYm9scy4iCisJCQkiY290aXJlIHdpbGwgYWRkIGNvcnJlc3BvbmRp
bmcgI3VuZGVmIGRpcmVjdGl2ZXMgdG8gdGhlIGdlbmVyYXRlZCB1bml0IHNvdXJjZSBmaWxlIGJl
Zm9yZSB0aGlzIGZpbGUgaXMgaW5jbHVkZWQuIgorCQkJIkRlZmF1bHRzIHRvIGVtcHR5IHN0cmlu
Zy4iCisJKQorCisJZGVmaW5lX3Byb3BlcnR5KAorCQlTT1VSQ0UgUFJPUEVSVFkgIkNPVElSRV9V
TklUWV9TT1VSQ0VfUE9TVF9VTkRFRlMiCisJCUJSSUVGX0RPQ1MgIlByZXByb2Nlc3NvciB1bmRl
ZnMgdG8gcGxhY2UgaW4gdGhlIGdlbmVyYXRlZCB1bml0eSBzb3VyY2UgZmlsZSBhZnRlciB0aGUg
aW5jbHVzaW9uIG9mIHRoaXMgc291cmNlIGZpbGUuIgorCQlGVUxMX0RPQ1MKKwkJCSJUaGlzIG1h
eSBiZSBzZXQgdG8gYSBzZW1pY29sb24tc2VwYXJhdGVkIGxpc3Qgb2YgcHJlcHJvY2Vzc29yIHN5
bWJvbHMuIgorCQkJImNvdGlyZSB3aWxsIGFkZCBjb3JyZXNwb25kaW5nICN1bmRlZiBkaXJlY3Rp
dmVzIHRvIHRoZSBnZW5lcmF0ZWQgdW5pdCBzb3VyY2UgZmlsZSBhZnRlciB0aGlzIGZpbGUgaXMg
aW5jbHVkZWQuIgorCQkJIkRlZmF1bHRzIHRvIGVtcHR5IHN0cmluZy4iCisJKQorCisJZGVmaW5l
X3Byb3BlcnR5KAorCQlTT1VSQ0UgUFJPUEVSVFkgIkNPVElSRV9TVEFSVF9ORVdfVU5JVFlfU09V
UkNFIgorCQlCUklFRl9ET0NTICJTdGFydCBhIG5ldyB1bml0eSBzb3VyY2UgZmlsZSB3aGljaCBp
bmNsdWRlcyB0aGlzIHNvdXJjZSBmaWxlIGFzIHRoZSBmaXJzdCBvbmUuIgorCQlGVUxMX0RPQ1MK
KwkJCSJJZiB0aGlzIHByb3BlcnR5IGlzIHNldCB0byBUUlVFLCBjb3RpcmUgd2lsbCBjb21wbGV0
ZSB0aGUgY3VycmVudCB1bml0eSBmaWxlIGFuZCBzdGFydCBhIG5ldyBvbmUuIgorCQkJIlRoZSBu
ZXcgdW5pdHkgc291cmNlIGZpbGUgd2lsbCBpbmNsdWRlIHRoaXMgc291cmNlIGZpbGUgYXMgdGhl
IGZpcnN0IG9uZS4iCisJCQkiVGhpcyBwcm9wZXJ0eSBlc3NlbnRpYWxseSB3b3JrcyBhcyBhIHNl
cGFyYXRvciBmb3IgdW5pdHkgc291cmNlIGZpbGVzLiIKKwkJCSJEZWZhdWx0cyB0byBGQUxTRS4i
CisJKQorCisJZGVmaW5lX3Byb3BlcnR5KAorCQlTT1VSQ0UgUFJPUEVSVFkgIkNPVElSRV9UQVJH
RVQiCisJCUJSSUVGX0RPQ1MgIlJlYWQtb25seSBwcm9wZXJ0eS4gTWFyayB0aGlzIHNvdXJjZSBm
aWxlIGFzIGNvdGlyZWQgZm9yIHRoZSBnaXZlbiB0YXJnZXQuIgorCQlGVUxMX0RPQ1MKKwkJCSJj
b3RpcmUgc2V0cyB0aGlzIHByb3BlcnR5IHRvIHRoZSBuYW1lIG9mIHRhcmdldCwgdGhhdCB0aGUg
c291cmNlIGZpbGUncyBidWlsZCBjb21tYW5kIGhhcyBiZWVuIGFsdGVyZWQgZm9yLiIKKwkJCSJE
ZWZhdWx0cyB0byBlbXB0eSBzdHJpbmcuIgorCSkKKworCW1lc3NhZ2UgKFNUQVRVUyAiY290aXJl
ICR7Q09USVJFX0NNQUtFX01PRFVMRV9WRVJTSU9OfSBsb2FkZWQuIikKKworZW5kaWYoKQotLSAK
Mi4wLjAucmMyCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319615</attachid>
            <date>2017-09-01 10:47:28 -0700</date>
            <delta_ts>2017-09-02 07:14:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139438-20170901204726.patch</filename>
            <type>text/plain</type>
            <size>179455</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YjkzOWJhZmRmMzA0ZGIxMzJmODRmZjk3Y2M0YWUxYmRiNjA0NTM2Li42ZGE2YzRkZGVjMTBlNGU3
NjJiNjUyZTkyYzU3YTI5OTczYWU1ODY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNy0wOC0zMSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJz
IChQQ0gpIChjb3RpcmUpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBVc2UgSmF2YVNjcmlwdENvcmVQcmVmaXguaCB0byBn
ZW5lcmF0ZSBhIHByZWNvbXBpbGVkIGhlYWRlci4KKwogMjAxNy0wOC0zMSAgWXVzdWtlIFN1enVr
aSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbSlNDXSBGaXggIm5hbWUiIGFu
ZCAibGVuZ3RoIiBvZiBQcm94eSByZXZva2UgZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMDNmMWZk
YjBiZTIwZGU5NmQ2MDdhZGIwODkyMzQ5MDA0ZTQ3MDUzLi42ODg5ZDE0ZGMxODg0YjcxMDAwZTQy
NzMzZmJjNjdjOGVjMWJjZWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDkt
MDEgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbQ01ha2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKSAoY290aXJlKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IG5lZWRlZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBVc2UgV2ViQ29yZVByZWZpeC5o
IHRvIGdlbmVyYXRlIGEgcHJlY29tcGlsZWQgaGVhZGVyLgorICAgICAgICAqIFdlYkNvcmVQcmVm
aXguaDogQWRkIGluY2x1ZGVzIGZvciB0aGUgR1RLIGFuZCBXUEUgcG9ydHMsIGd1YXJkZWQgYWNj
b3JkaW5nbHkuCisKIDIwMTctMDktMDEgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtXaW5dIENvbXBpbGUgZXJyb3IsICdDYWNoZScgaXMgbm90IGRlY2xh
cmVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGRhMWJhMWQ5YmUxNTdi
NTgzYzgxMDc4YmFkYmVmZGVhZDViYjIwZmEuLmRiOGMzYTg3MzRiNTcwYzYwMzE4ZDA0ODljN2Nj
YWYwZmEwYzI0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2MDMs
MyArMTYwMywxMiBAQCBpZiAoTVNWQykKICAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJM
RX0gJHtXRUJLSVRfTElCUkFSSUVTX0RJUn0vdG9vbHMvc2NyaXB0cy92ZXJzaW9uLXN0YW1wLnBs
ICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0gJDxUQVJHRVRfRklMRTpKYXZhU2NyaXB0Q29yZT4KICAg
ICAgICAgVkVSQkFUSU0pCiBlbmRpZiAoKQorCitpZiAoQ09NTUFORCBjb3RpcmUpCisgICAgc2V0
X3RhcmdldF9wcm9wZXJ0aWVzKEphdmFTY3JpcHRDb3JlIFBST1BFUlRJRVMKKyAgICAgICAgQ09U
SVJFX0FERF9VTklUWV9CVUlMRCBGQUxTRQorICAgICAgICBDT1RJUkVfUFJFRklYX0hFQURFUl9J
R05PUkVfUEFUSCAiJHtDTUFLRV9TT1VSQ0VfRElSfSIKKyAgICAgICAgQ09USVJFX1BSRUZJWF9I
RUFERVJfSU5DTFVERV9QQVRIICIke0NNQUtFX1NPVVJDRV9ESVJ9L1dlYktpdEJ1aWxkL0RlcGVu
ZGVuY2llc0dUSy9Sb290OyR7Q01BS0VfU09VUkNFX0RJUn0vV2ViS2l0QnVpbGQvRGVwZW5kZW5j
aWVzV1BFL1Jvb3QiCisgICAgICAgIENPVElSRV9DWFhfUFJFRklYX0hFQURFUl9JTklUICIke0pB
VkFTQ1JJUFRDT1JFX0RJUn0vSmF2YVNjcmlwdENvcmVQcmVmaXguaCIpCisgICAgY290aXJlKEph
dmFTY3JpcHRDb3JlKQorZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDI0Nzg2M2I1
Y2MyMmM0YmUyNzFhZWZkMmRhN2FkMjQzOTMxNzk3ZS4uZTc1OTM4ZGMyOGNiN2MwOWI5ZjE5NGY1
MzQ1MGZlODAwNDJhNzFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQwOTUsMyArNDA5NSwx
MiBAQCBpZiAoTVNWQykKICAgICAgICAgQ09NUElMRV9QREJfTkFNRSAke1dlYkNvcmVfT1VUUFVU
X05BTUV9CiAgICAgKQogZW5kaWYgKCkKKworaWYgKENPTU1BTkQgY290aXJlKQorICAgIHNldF90
YXJnZXRfcHJvcGVydGllcyhXZWJDb3JlIFBST1BFUlRJRVMKKyAgICAgICAgQ09USVJFX0FERF9V
TklUWV9CVUlMRCBGQUxTRQorICAgICAgICBDT1RJUkVfUFJFRklYX0hFQURFUl9JR05PUkVfUEFU
SCAiJHtDTUFLRV9TT1VSQ0VfRElSfSIKKyAgICAgICAgQ09USVJFX1BSRUZJWF9IRUFERVJfSU5D
TFVERV9QQVRIICIke0NNQUtFX1NPVVJDRV9ESVJ9L1dlYktpdEJ1aWxkL0RlcGVuZGVuY2llc0dU
Sy9Sb290OyR7Q01BS0VfU09VUkNFX0RJUn0vV2ViS2l0QnVpbGQvRGVwZW5kZW5jaWVzV1BFL1Jv
b3QiCisgICAgICAgIENPVElSRV9DWFhfUFJFRklYX0hFQURFUl9JTklUICIke1dFQkNPUkVfRElS
fS9XZWJDb3JlUHJlZml4LmgiKQorICAgIGNvdGlyZShXZWJDb3JlKQorZW5kaWYgKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaCBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmVQcmVmaXguaAppbmRleCA2MWE1OWE1ZDE0NGFjNTYzNzI0Mjk0MTUxNWRkMWZkMjQwZWNj
YzBkLi5jMWNlNmYzY2Y1MzFkZmZhZmY4NjQ2YWE5ZGRmY2Q4M2E4NTE5ZTAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZVByZWZpeC5oCkBAIC0xMjUsNiArMTI1LDI5IEBACiAKICNpZiBQTEFURk9STShXSU5fQ0FJ
Uk8pCiAjaW5jbHVkZSA8d2luZG93cy5oPgorCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdQRSkKKworI2lmIFVTRShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby9jYWlyby5oPgorI2Vu
ZGlmCisKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDxnbGliLmg+CisjZW5kaWYKKworI2lmIFVT
RShTT1VQKQorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2VuZGlmCisKKyNpZiBVU0UoTElC
RVBPWFkpCisjaW5jbHVkZSA8ZXBveHkuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdTVFJFQU1FUikK
KyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjZW5kaWYKKwogI2Vsc2UKIAogI2lmIE9TKFdJTkRPV1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvY290aXJlLmNtYWtlIGIvU291cmNlL2NtYWtlL2Nv
dGlyZS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MmNkMjNkYjk4N2I4NTA0MGE0Nzc5OWM4OGE3MjBhNWM4
ZTI5NTJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL2NtYWtlL2NvdGlyZS5jbWFrZQpAQCAt
MCwwICsxLDQwNTQgQEAKKyMgLSBjb3RpcmUgKGNvbXBpbGUgdGltZSByZWR1Y2VyKQorIworIyBT
ZWUgdGhlIGNvdGlyZSBtYW51YWwgZm9yIHVzYWdlIGhpbnRzLgorIworIz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisjIENvcHlyaWdodCAyMDEyLTIwMTcgU2FzY2hhIEtyYXRreQorIworIyBQZXJtaXNz
aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgorIyBv
YnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh
dGlvbgorIyBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3
aXRob3V0CisjIHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSBy
aWdodHMgdG8gdXNlLAorIyBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRl
LCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorIyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg
dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyMgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRv
IGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcKKyMgY29uZGl0aW9uczoKKyMKKyMgVGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg
YmUKKyMgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0
aGUgU29mdHdhcmUuCisjCisjIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRI
T1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorIyBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMKKyMgT0YgTUVSQ0hBTlRBQklMSVRZ
LCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKKyMgTk9OSU5GUklOR0VNRU5U
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQKKyMgSE9MREVSUyBC
RSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksCisjIFdI
RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO
RworIyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU
SEUgVVNFIE9SCisjIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyM9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorCitpZihfX0NPVElSRV9JTkNMVURFRCkKKwlyZXR1cm4oKQorZW5kaWYoKQor
c2V0KF9fQ09USVJFX0lOQ0xVREVEIFRSVUUpCisKKyMgY2FsbCBjbWFrZV9taW5pbXVtX3JlcXVp
cmVkLCBidXQgcHJldmVudCBtb2RpZmljYXRpb24gb2YgdGhlIENNYWtlIHBvbGljeSBzdGFjayBp
biBpbmNsdWRlIG1vZGUKKyMgY21ha2VfbWluaW11bV9yZXF1aXJlZCBhbHNvIHNldHMgdGhlIHBv
bGljeSB2ZXJzaW9uIGFzIGEgc2lkZSBlZmZlY3QsIHdoaWNoIHdlIGhhdmUgdG8gYXZvaWQKK2lm
IChOT1QgQ01BS0VfU0NSSVBUX01PREVfRklMRSkKKwljbWFrZV9wb2xpY3koUFVTSCkKK2VuZGlm
KCkKK2NtYWtlX21pbmltdW1fcmVxdWlyZWQoVkVSU0lPTiAyLjguMTIpCitpZiAoTk9UIENNQUtF
X1NDUklQVF9NT0RFX0ZJTEUpCisJY21ha2VfcG9saWN5KFBPUCkKK2VuZGlmKCkKKworc2V0IChD
T1RJUkVfQ01BS0VfTU9EVUxFX0ZJTEUgIiR7Q01BS0VfQ1VSUkVOVF9MSVNUX0ZJTEV9IikKK3Nl
dCAoQ09USVJFX0NNQUtFX01PRFVMRV9WRVJTSU9OICIxLjcuMTAiKQorCisjIGFjdGl2YXRlIHNl
bGVjdCBwb2xpY2llcworaWYgKFBPTElDWSBDTVAwMDI1KQorCSMgQ29tcGlsZXIgaWQgZm9yIEFw
cGxlIENsYW5nIGlzIG5vdyBBcHBsZUNsYW5nCisJY21ha2VfcG9saWN5KFNFVCBDTVAwMDI1IE5F
VykKK2VuZGlmKCkKKworaWYgKFBPTElDWSBDTVAwMDI2KQorCSMgZGlzYWxsb3cgdXNlIG9mIHRo
ZSBMT0NBVElPTiB0YXJnZXQgcHJvcGVydHkKKwljbWFrZV9wb2xpY3koU0VUIENNUDAwMjYgTkVX
KQorZW5kaWYoKQorCitpZiAoUE9MSUNZIENNUDAwMzgpCisJIyB0YXJnZXRzIG1heSBub3QgbGlu
ayBkaXJlY3RseSB0byB0aGVtc2VsdmVzCisJY21ha2VfcG9saWN5KFNFVCBDTVAwMDM4IE5FVykK
K2VuZGlmKCkKKworaWYgKFBPTElDWSBDTVAwMDM5KQorCSMgdXRpbGl0eSB0YXJnZXRzIG1heSBu
b3QgaGF2ZSBsaW5rIGRlcGVuZGVuY2llcworCWNtYWtlX3BvbGljeShTRVQgQ01QMDAzOSBORVcp
CitlbmRpZigpCisKK2lmIChQT0xJQ1kgQ01QMDA0MCkKKwkjIHRhcmdldCBpbiB0aGUgVEFSR0VU
IHNpZ25hdHVyZSBvZiBhZGRfY3VzdG9tX2NvbW1hbmQoKSBtdXN0IGV4aXN0CisJY21ha2VfcG9s
aWN5KFNFVCBDTVAwMDQwIE5FVykKK2VuZGlmKCkKKworaWYgKFBPTElDWSBDTVAwMDQ1KQorCSMg
ZXJyb3Igb24gbm9uLWV4aXN0ZW50IHRhcmdldCBpbiBnZXRfdGFyZ2V0X3Byb3BlcnR5CisJY21h
a2VfcG9saWN5KFNFVCBDTVAwMDQ1IE5FVykKK2VuZGlmKCkKKworaWYgKFBPTElDWSBDTVAwMDQ2
KQorCSMgZXJyb3Igb24gbm9uLWV4aXN0ZW50IGRlcGVuZGVuY3kgaW4gYWRkX2RlcGVuZGVuY2ll
cworCWNtYWtlX3BvbGljeShTRVQgQ01QMDA0NiBORVcpCitlbmRpZigpCisKK2lmIChQT0xJQ1kg
Q01QMDA0OSkKKwkjIGRvIG5vdCBleHBhbmQgdmFyaWFibGVzIGluIHRhcmdldCBzb3VyY2UgZW50
cmllcworCWNtYWtlX3BvbGljeShTRVQgQ01QMDA0OSBORVcpCitlbmRpZigpCisKK2lmIChQT0xJ
Q1kgQ01QMDA1MCkKKwkjIGRpc2FsbG93IGFkZF9jdXN0b21fY29tbWFuZCBTT1VSQ0Ugc2lnbmF0
dXJlcworCWNtYWtlX3BvbGljeShTRVQgQ01QMDA1MCBORVcpCitlbmRpZigpCisKK2lmIChQT0xJ
Q1kgQ01QMDA1MSkKKwkjIGluY2x1ZGUgVEFSR0VUX09CSkVDVFMgZXhwcmVzc2lvbnMgaW4gYSB0
YXJnZXQncyBTT1VSQ0VTIHByb3BlcnR5CisJY21ha2VfcG9saWN5KFNFVCBDTVAwMDUxIE5FVykK
K2VuZGlmKCkKKworaWYgKFBPTElDWSBDTVAwMDUzKQorCSMgc2ltcGxpZnkgdmFyaWFibGUgcmVm
ZXJlbmNlIGFuZCBlc2NhcGUgc2VxdWVuY2UgZXZhbHVhdGlvbgorCWNtYWtlX3BvbGljeShTRVQg
Q01QMDA1MyBORVcpCitlbmRpZigpCisKK2lmIChQT0xJQ1kgQ01QMDA1NCkKKwkjIG9ubHkgaW50
ZXJwcmV0IGlmKCkgYXJndW1lbnRzIGFzIHZhcmlhYmxlcyBvciBrZXl3b3JkcyB3aGVuIHVucXVv
dGVkCisJY21ha2VfcG9saWN5KFNFVCBDTVAwMDU0IE5FVykKK2VuZGlmKCkKKworaWYgKFBPTElD
WSBDTVAwMDU1KQorCSMgc3RyaWN0IGNoZWNraW5nIGZvciBicmVhaygpIGNvbW1hbmQKKwljbWFr
ZV9wb2xpY3koU0VUIENNUDAwNTUgTkVXKQorZW5kaWYoKQorCitpbmNsdWRlKENNYWtlUGFyc2VB
cmd1bWVudHMpCitpbmNsdWRlKFByb2Nlc3NvckNvdW50KQorCitmdW5jdGlvbiAoY290aXJlX2dl
dF9jb25maWd1cmF0aW9uX3R5cGVzIF9jb25maWdzVmFyKQorCXNldCAoX2NvbmZpZ3MgIiIpCisJ
aWYgKENNQUtFX0NPTkZJR1VSQVRJT05fVFlQRVMpCisJCWxpc3QgKEFQUEVORCBfY29uZmlncyAk
e0NNQUtFX0NPTkZJR1VSQVRJT05fVFlQRVN9KQorCWVuZGlmKCkKKwlpZiAoQ01BS0VfQlVJTERf
VFlQRSkKKwkJbGlzdCAoQVBQRU5EIF9jb25maWdzICIke0NNQUtFX0JVSUxEX1RZUEV9IikKKwll
bmRpZigpCisJaWYgKF9jb25maWdzKQorCQlsaXN0IChSRU1PVkVfRFVQTElDQVRFUyBfY29uZmln
cykKKwkJc2V0ICgke19jb25maWdzVmFyfSAke19jb25maWdzfSBQQVJFTlRfU0NPUEUpCisJZWxz
ZSgpCisJCXNldCAoJHtfY29uZmlnc1Zhcn0gIk5vbmUiIFBBUkVOVF9TQ09QRSkKKwllbmRpZigp
CitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfZ2V0X3NvdXJjZV9maWxlX2V4dGVu
c2lvbiBfc291cmNlRmlsZSBfZXh0VmFyKQorCSMgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudCByZXR1
cm5zIGV4dGVuc2lvbiBmcm9tIGZpcnN0IG9jY3VycmVuY2Ugb2YgLiBpbiBmaWxlIG5hbWUKKwkj
IHRoaXMgZnVuY3Rpb24gY29tcHV0ZXMgdGhlIGV4dGVuc2lvbiBmcm9tIGxhc3Qgb2NjdXJyZW5j
ZSBvZiAuIGluIGZpbGUgbmFtZQorCXN0cmluZyAoRklORCAiJHtfc291cmNlRmlsZX0iICIuIiBf
aW5kZXggUkVWRVJTRSkKKwlpZiAoX2luZGV4IEdSRUFURVIgLTEpCisJCW1hdGggKEVYUFIgX2lu
ZGV4ICIke19pbmRleH0gKyAxIikKKwkJc3RyaW5nIChTVUJTVFJJTkcgIiR7X3NvdXJjZUZpbGV9
IiAke19pbmRleH0gLTEgX3NvdXJjZUV4dCkKKwllbHNlKCkKKwkJc2V0IChfc291cmNlRXh0ICIi
KQorCWVuZGlmKCkKKwlzZXQgKCR7X2V4dFZhcn0gIiR7X3NvdXJjZUV4dH0iIFBBUkVOVF9TQ09Q
RSkKK2VuZGZ1bmN0aW9uKCkKKworbWFjcm8gKGNvdGlyZV9jaGVja19pc19wYXRoX3JlbGF0aXZl
X3RvIF9wYXRoIF9pc1JlbGF0aXZlVmFyKQorCXNldCAoJHtfaXNSZWxhdGl2ZVZhcn0gRkFMU0Up
CisJaWYgKElTX0FCU09MVVRFICIke19wYXRofSIpCisJCWZvcmVhY2ggKF9kaXIgJHtBUkdOfSkK
KwkJCWZpbGUgKFJFTEFUSVZFX1BBVEggX3JlbFBhdGggIiR7X2Rpcn0iICIke19wYXRofSIpCisJ
CQlpZiAoTk9UIF9yZWxQYXRoIE9SIChOT1QgSVNfQUJTT0xVVEUgIiR7X3JlbFBhdGh9IiBBTkQg
Tk9UICIke19yZWxQYXRofSIgTUFUQ0hFUyAiXlxcLlxcLiIpKQorCQkJCXNldCAoJHtfaXNSZWxh
dGl2ZVZhcn0gVFJVRSkKKwkJCQlicmVhaygpCisJCQllbmRpZigpCisJCWVuZGZvcmVhY2goKQor
CWVuZGlmKCkKK2VuZG1hY3JvKCkKKworZnVuY3Rpb24gKGNvdGlyZV9maWx0ZXJfbGFuZ3VhZ2Vf
c291cmNlX2ZpbGVzIF9sYW5ndWFnZSBfdGFyZ2V0IF9zb3VyY2VGaWxlc1ZhciBfZXhjbHVkZWRT
b3VyY2VGaWxlc1ZhciBfY290aXJlZFNvdXJjZUZpbGVzVmFyKQorCWlmIChDTUFLRV8ke19sYW5n
dWFnZX1fU09VUkNFX0ZJTEVfRVhURU5TSU9OUykKKwkJc2V0IChfbGFuZ3VhZ2VFeHRlbnNpb25z
ICIke0NNQUtFXyR7X2xhbmd1YWdlfV9TT1VSQ0VfRklMRV9FWFRFTlNJT05TfSIpCisJZWxzZSgp
CisJCXNldCAoX2xhbmd1YWdlRXh0ZW5zaW9ucyAiIikKKwllbmRpZigpCisJaWYgKENNQUtFXyR7
X2xhbmd1YWdlfV9JR05PUkVfRVhURU5TSU9OUykKKwkJc2V0IChfaWdub3JlRXh0ZW5zaW9ucyAi
JHtDTUFLRV8ke19sYW5ndWFnZX1fSUdOT1JFX0VYVEVOU0lPTlN9IikKKwllbHNlKCkKKwkJc2V0
IChfaWdub3JlRXh0ZW5zaW9ucyAiIikKKwllbmRpZigpCisJaWYgKENPVElSRV9VTklUWV9TT1VS
Q0VfRVhDTFVERV9FWFRFTlNJT05TKQorCQlzZXQgKF9leGNsdWRlRXh0ZW5zaW9ucyAiJHtDT1RJ
UkVfVU5JVFlfU09VUkNFX0VYQ0xVREVfRVhURU5TSU9OU30iKQorCWVsc2UoKQorCQlzZXQgKF9l
eGNsdWRlRXh0ZW5zaW9ucyAiIikKKwllbmRpZigpCisJaWYgKENPVElSRV9ERUJVRyBBTkQgX2xh
bmd1YWdlRXh0ZW5zaW9ucykKKwkJbWVzc2FnZSAoU1RBVFVTICIke19sYW5ndWFnZX0gc291cmNl
IGZpbGUgZXh0ZW5zaW9uczogJHtfbGFuZ3VhZ2VFeHRlbnNpb25zfSIpCisJZW5kaWYoKQorCWlm
IChDT1RJUkVfREVCVUcgQU5EIF9pZ25vcmVFeHRlbnNpb25zKQorCQltZXNzYWdlIChTVEFUVVMg
IiR7X2xhbmd1YWdlfSBpZ25vcmUgZXh0ZW5zaW9uczogJHtfaWdub3JlRXh0ZW5zaW9uc30iKQor
CWVuZGlmKCkKKwlpZiAoQ09USVJFX0RFQlVHIEFORCBfZXhjbHVkZUV4dGVuc2lvbnMpCisJCW1l
c3NhZ2UgKFNUQVRVUyAiJHtfbGFuZ3VhZ2V9IGV4Y2x1ZGUgZXh0ZW5zaW9uczogJHtfZXhjbHVk
ZUV4dGVuc2lvbnN9IikKKwllbmRpZigpCisJaWYgKENNQUtFX1ZFUlNJT04gVkVSU0lPTl9MRVNT
ICIzLjEuMCIpCisJCXNldCAoX2FsbFNvdXJjZUZpbGVzICR7QVJHTn0pCisJZWxzZSgpCisJCSMg
YXMgb2YgQ01ha2UgMy4xIHRhcmdldCBzb3VyY2VzIG1heSBjb250YWluIGdlbmVyYXRvciBleHBy
ZXNzaW9ucworCQkjIHNpbmNlIHdlIGNhbm5vdCBvYnRhaW4gcmVxdWlyZWQgcHJvcGVydHkgaW5m
b3JtYXRpb24gYWJvdXQgc291cmNlIGZpbGVzIGFkZGVkCisJCSMgdGhyb3VnaCBnZW5lcmF0b3Ig
ZXhwcmVzc2lvbnMgYXQgY29uZmlndXJlIHRpbWUsIHdlIGZpbHRlciB0aGVtIG91dAorCQlzdHJp
bmcgKEdFTkVYX1NUUklQICIke0FSR059IiBfYWxsU291cmNlRmlsZXMpCisJZW5kaWYoKQorCXNl
dCAoX2ZpbHRlcmVkU291cmNlRmlsZXMgIiIpCisJc2V0IChfZXhjbHVkZWRTb3VyY2VGaWxlcyAi
IikKKwlmb3JlYWNoIChfc291cmNlRmlsZSAke19hbGxTb3VyY2VGaWxlc30pCisJCWdldF9zb3Vy
Y2VfZmlsZV9wcm9wZXJ0eShfc291cmNlSXNIZWFkZXJPbmx5ICIke19zb3VyY2VGaWxlfSIgSEVB
REVSX0ZJTEVfT05MWSkKKwkJZ2V0X3NvdXJjZV9maWxlX3Byb3BlcnR5KF9zb3VyY2VJc0V4dGVy
bmFsICIke19zb3VyY2VGaWxlfSIgRVhURVJOQUxfT0JKRUNUKQorCQlnZXRfc291cmNlX2ZpbGVf
cHJvcGVydHkoX3NvdXJjZUlzU3ltYm9saWMgIiR7X3NvdXJjZUZpbGV9IiBTWU1CT0xJQykKKwkJ
aWYgKE5PVCBfc291cmNlSXNIZWFkZXJPbmx5IEFORCBOT1QgX3NvdXJjZUlzRXh0ZXJuYWwgQU5E
IE5PVCBfc291cmNlSXNTeW1ib2xpYykKKwkJCWNvdGlyZV9nZXRfc291cmNlX2ZpbGVfZXh0ZW5z
aW9uKCIke19zb3VyY2VGaWxlfSIgX3NvdXJjZUV4dCkKKwkJCWlmIChfc291cmNlRXh0KQorCQkJ
CWxpc3QgKEZJTkQgX2lnbm9yZUV4dGVuc2lvbnMgIiR7X3NvdXJjZUV4dH0iIF9pZ25vcmVJbmRl
eCkKKwkJCQlpZiAoX2lnbm9yZUluZGV4IExFU1MgMCkKKwkJCQkJbGlzdCAoRklORCBfZXhjbHVk
ZUV4dGVuc2lvbnMgIiR7X3NvdXJjZUV4dH0iIF9leGNsdWRlSW5kZXgpCisJCQkJCWlmIChfZXhj
bHVkZUluZGV4IEdSRUFURVIgLTEpCisJCQkJCQlsaXN0IChBUFBFTkQgX2V4Y2x1ZGVkU291cmNl
RmlsZXMgIiR7X3NvdXJjZUZpbGV9IikKKwkJCQkJZWxzZSgpCisJCQkJCQlsaXN0IChGSU5EIF9s
YW5ndWFnZUV4dGVuc2lvbnMgIiR7X3NvdXJjZUV4dH0iIF9zb3VyY2VJbmRleCkKKwkJCQkJCWlm
IChfc291cmNlSW5kZXggR1JFQVRFUiAtMSkKKwkJCQkJCQkjIGNvbnNpZGVyIHNvdXJjZSBmaWxl
IHVubGVzcyBpdCBpcyBleGNsdWRlZCBleHBsaWNpdGx5CisJCQkJCQkJZ2V0X3NvdXJjZV9maWxl
X3Byb3BlcnR5KF9zb3VyY2VJc0V4Y2x1ZGVkICIke19zb3VyY2VGaWxlfSIgQ09USVJFX0VYQ0xV
REVEKQorCQkJCQkJCWlmIChfc291cmNlSXNFeGNsdWRlZCkKKwkJCQkJCQkJbGlzdCAoQVBQRU5E
IF9leGNsdWRlZFNvdXJjZUZpbGVzICIke19zb3VyY2VGaWxlfSIpCisJCQkJCQkJZWxzZSgpCisJ
CQkJCQkJCWxpc3QgKEFQUEVORCBfZmlsdGVyZWRTb3VyY2VGaWxlcyAiJHtfc291cmNlRmlsZX0i
KQorCQkJCQkJCWVuZGlmKCkKKwkJCQkJCWVsc2UoKQorCQkJCQkJCWdldF9zb3VyY2VfZmlsZV9w
cm9wZXJ0eShfc291cmNlTGFuZ3VhZ2UgIiR7X3NvdXJjZUZpbGV9IiBMQU5HVUFHRSkKKwkJCQkJ
CQlpZiAoIiR7X3NvdXJjZUxhbmd1YWdlfSIgU1RSRVFVQUwgIiR7X2xhbmd1YWdlfSIpCisJCQkJ
CQkJCSMgYWRkIHRvIGV4Y2x1ZGVkIHNvdXJjZXMsIGlmIGZpbGUgaXMgbm90IGlnbm9yZWQgYW5k
IGhhcyBjb3JyZWN0IGxhbmd1YWdlIHdpdGhvdXQgaGF2aW5nIHRoZSBjb3JyZWN0IGV4dGVuc2lv
bgorCQkJCQkJCQlsaXN0IChBUFBFTkQgX2V4Y2x1ZGVkU291cmNlRmlsZXMgIiR7X3NvdXJjZUZp
bGV9IikKKwkJCQkJCQllbmRpZigpCisJCQkJCQllbmRpZigpCisJCQkJCWVuZGlmKCkKKwkJCQll
bmRpZigpCisJCQllbmRpZigpCisJCWVuZGlmKCkKKwllbmRmb3JlYWNoKCkKKwkjIHNlcGFyYXRl
IGZpbHRlcmVkIHNvdXJjZSBmaWxlcyBmcm9tIGFscmVhZHkgY290aXJlZCBvbmVzCisJIyB0aGUg
Q09USVJFX1RBUkdFVCBwcm9wZXJ0eSBvZiBhIHNvdXJjZSBmaWxlIG1heSBiZSBzZXQgd2hpbGUg
YSB0YXJnZXQgaXMgYmVpbmcgcHJvY2Vzc2VkIGJ5IGNvdGlyZQorCXNldCAoX3NvdXJjZUZpbGVz
ICIiKQorCXNldCAoX2NvdGlyZWRTb3VyY2VGaWxlcyAiIikKKwlmb3JlYWNoIChfc291cmNlRmls
ZSAke19maWx0ZXJlZFNvdXJjZUZpbGVzfSkKKwkJZ2V0X3NvdXJjZV9maWxlX3Byb3BlcnR5KF9z
b3VyY2VJc0NvdGlyZWQgIiR7X3NvdXJjZUZpbGV9IiBDT1RJUkVfVEFSR0VUKQorCQlpZiAoX3Nv
dXJjZUlzQ290aXJlZCkKKwkJCWxpc3QgKEFQUEVORCBfY290aXJlZFNvdXJjZUZpbGVzICIke19z
b3VyY2VGaWxlfSIpCisJCWVsc2UoKQorCQkJZ2V0X3NvdXJjZV9maWxlX3Byb3BlcnR5KF9zb3Vy
Y2VDb21waWxlRmxhZ3MgIiR7X3NvdXJjZUZpbGV9IiBDT01QSUxFX0ZMQUdTKQorCQkJaWYgKF9z
b3VyY2VDb21waWxlRmxhZ3MpCisJCQkJIyBhZGQgdG8gZXhjbHVkZWQgc291cmNlcywgaWYgZmls
ZSBoYXMgY3VzdG9tIGNvbXBpbGUgZmxhZ3MKKwkJCQlsaXN0IChBUFBFTkQgX2V4Y2x1ZGVkU291
cmNlRmlsZXMgIiR7X3NvdXJjZUZpbGV9IikKKwkJCWVsc2UoKQorCQkJCWxpc3QgKEFQUEVORCBf
c291cmNlRmlsZXMgIiR7X3NvdXJjZUZpbGV9IikKKwkJCWVuZGlmKCkKKwkJZW5kaWYoKQorCWVu
ZGZvcmVhY2goKQorCWlmIChDT1RJUkVfREVCVUcpCisJCWlmIChfc291cmNlRmlsZXMpCisJCQlt
ZXNzYWdlIChTVEFUVVMgIkZpbHRlcmVkICR7X3RhcmdldH0gJHtfbGFuZ3VhZ2V9IHNvdXJjZXM6
ICR7X3NvdXJjZUZpbGVzfSIpCisJCWVuZGlmKCkKKwkJaWYgKF9leGNsdWRlZFNvdXJjZUZpbGVz
KQorCQkJbWVzc2FnZSAoU1RBVFVTICJFeGNsdWRlZCAke190YXJnZXR9ICR7X2xhbmd1YWdlfSBz
b3VyY2VzOiAke19leGNsdWRlZFNvdXJjZUZpbGVzfSIpCisJCWVuZGlmKCkKKwkJaWYgKF9jb3Rp
cmVkU291cmNlRmlsZXMpCisJCQltZXNzYWdlIChTVEFUVVMgIkNvdGlyZWQgJHtfdGFyZ2V0fSAk
e19sYW5ndWFnZX0gc291cmNlczogJHtfY290aXJlZFNvdXJjZUZpbGVzfSIpCisJCWVuZGlmKCkK
KwllbmRpZigpCisJc2V0ICgke19zb3VyY2VGaWxlc1Zhcn0gJHtfc291cmNlRmlsZXN9IFBBUkVO
VF9TQ09QRSkKKwlzZXQgKCR7X2V4Y2x1ZGVkU291cmNlRmlsZXNWYXJ9ICR7X2V4Y2x1ZGVkU291
cmNlRmlsZXN9IFBBUkVOVF9TQ09QRSkKKwlzZXQgKCR7X2NvdGlyZWRTb3VyY2VGaWxlc1Zhcn0g
JHtfY290aXJlZFNvdXJjZUZpbGVzfSBQQVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1
bmN0aW9uIChjb3RpcmVfZ2V0X29iamVjdHNfd2l0aF9wcm9wZXJ0eV9vbiBfZmlsdGVyZWRPYmpl
Y3RzVmFyIF9wcm9wZXJ0eSBfdHlwZSkKKwlzZXQgKF9maWx0ZXJlZE9iamVjdHMgIiIpCisJZm9y
ZWFjaCAoX29iamVjdCAke0FSR059KQorCQlnZXRfcHJvcGVydHkoX2lzU2V0ICR7X3R5cGV9ICIk
e19vYmplY3R9IiBQUk9QRVJUWSAke19wcm9wZXJ0eX0gU0VUKQorCQlpZiAoX2lzU2V0KQorCQkJ
Z2V0X3Byb3BlcnR5KF9wcm9wZXJ0eVZhbHVlICR7X3R5cGV9ICIke19vYmplY3R9IiBQUk9QRVJU
WSAke19wcm9wZXJ0eX0pCisJCQlpZiAoX3Byb3BlcnR5VmFsdWUpCisJCQkJbGlzdCAoQVBQRU5E
IF9maWx0ZXJlZE9iamVjdHMgIiR7X29iamVjdH0iKQorCQkJZW5kaWYoKQorCQllbmRpZigpCisJ
ZW5kZm9yZWFjaCgpCisJc2V0ICgke19maWx0ZXJlZE9iamVjdHNWYXJ9ICR7X2ZpbHRlcmVkT2Jq
ZWN0c30gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX2dl
dF9vYmplY3RzX3dpdGhfcHJvcGVydHlfb2ZmIF9maWx0ZXJlZE9iamVjdHNWYXIgX3Byb3BlcnR5
IF90eXBlKQorCXNldCAoX2ZpbHRlcmVkT2JqZWN0cyAiIikKKwlmb3JlYWNoIChfb2JqZWN0ICR7
QVJHTn0pCisJCWdldF9wcm9wZXJ0eShfaXNTZXQgJHtfdHlwZX0gIiR7X29iamVjdH0iIFBST1BF
UlRZICR7X3Byb3BlcnR5fSBTRVQpCisJCWlmIChfaXNTZXQpCisJCQlnZXRfcHJvcGVydHkoX3By
b3BlcnR5VmFsdWUgJHtfdHlwZX0gIiR7X29iamVjdH0iIFBST1BFUlRZICR7X3Byb3BlcnR5fSkK
KwkJCWlmIChOT1QgX3Byb3BlcnR5VmFsdWUpCisJCQkJbGlzdCAoQVBQRU5EIF9maWx0ZXJlZE9i
amVjdHMgIiR7X29iamVjdH0iKQorCQkJZW5kaWYoKQorCQllbmRpZigpCisJZW5kZm9yZWFjaCgp
CisJc2V0ICgke19maWx0ZXJlZE9iamVjdHNWYXJ9ICR7X2ZpbHRlcmVkT2JqZWN0c30gUEFSRU5U
X1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX2dldF9zb3VyY2VfZmls
ZV9wcm9wZXJ0eV92YWx1ZXMgX3ZhbHVlc1ZhciBfcHJvcGVydHkpCisJc2V0IChfdmFsdWVzICIi
KQorCWZvcmVhY2ggKF9zb3VyY2VGaWxlICR7QVJHTn0pCisJCWdldF9zb3VyY2VfZmlsZV9wcm9w
ZXJ0eShfcHJvcGVydHlWYWx1ZSAiJHtfc291cmNlRmlsZX0iICR7X3Byb3BlcnR5fSkKKwkJaWYg
KF9wcm9wZXJ0eVZhbHVlKQorCQkJbGlzdCAoQVBQRU5EIF92YWx1ZXMgIiR7X3Byb3BlcnR5VmFs
dWV9IikKKwkJZW5kaWYoKQorCWVuZGZvcmVhY2goKQorCXNldCAoJHtfdmFsdWVzVmFyfSAke192
YWx1ZXN9IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9y
ZXNvbHZlX2NvbmZpZ19wcm9wZXJ0aWVzIF9jb25maWd1cmF0aW9ucyBfcHJvcGVydGllc1ZhcikK
KwlzZXQgKF9wcm9wZXJ0aWVzICIiKQorCWZvcmVhY2ggKF9wcm9wZXJ0eSAke0FSR059KQorCQlp
ZiAoIiR7X3Byb3BlcnR5fSIgTUFUQ0hFUyAiPENPTkZJRz4iKQorCQkJZm9yZWFjaCAoX2NvbmZp
ZyAke19jb25maWd1cmF0aW9uc30pCisJCQkJc3RyaW5nIChUT1VQUEVSICIke19jb25maWd9IiBf
dXBwZXJDb25maWcpCisJCQkJc3RyaW5nIChSRVBMQUNFICI8Q09ORklHPiIgIiR7X3VwcGVyQ29u
ZmlnfSIgX2NvbmZpZ1Byb3BlcnR5ICIke19wcm9wZXJ0eX0iKQorCQkJCWxpc3QgKEFQUEVORCBf
cHJvcGVydGllcyAke19jb25maWdQcm9wZXJ0eX0pCisJCQllbmRmb3JlYWNoKCkKKwkJZWxzZSgp
CisJCQlsaXN0IChBUFBFTkQgX3Byb3BlcnRpZXMgJHtfcHJvcGVydHl9KQorCQllbmRpZigpCisJ
ZW5kZm9yZWFjaCgpCisJc2V0ICgke19wcm9wZXJ0aWVzVmFyfSAke19wcm9wZXJ0aWVzfSBQQVJF
TlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfY29weV9zZXRfcHJv
cGVydGllcyBfY29uZmlndXJhdGlvbnMgX3R5cGUgX3NvdXJjZSBfdGFyZ2V0KQorCWNvdGlyZV9y
ZXNvbHZlX2NvbmZpZ19wcm9wZXJ0aWVzKCIke19jb25maWd1cmF0aW9uc30iIF9wcm9wZXJ0aWVz
ICR7QVJHTn0pCisJZm9yZWFjaCAoX3Byb3BlcnR5ICR7X3Byb3BlcnRpZXN9KQorCQlnZXRfcHJv
cGVydHkoX2lzU2V0ICR7X3R5cGV9ICR7X3NvdXJjZX0gUFJPUEVSVFkgJHtfcHJvcGVydHl9IFNF
VCkKKwkJaWYgKF9pc1NldCkKKwkJCWdldF9wcm9wZXJ0eShfcHJvcGVydHlWYWx1ZSAke190eXBl
fSAke19zb3VyY2V9IFBST1BFUlRZICR7X3Byb3BlcnR5fSkKKwkJCXNldF9wcm9wZXJ0eSgke190
eXBlfSAke190YXJnZXR9IFBST1BFUlRZICR7X3Byb3BlcnR5fSAiJHtfcHJvcGVydHlWYWx1ZX0i
KQorCQllbmRpZigpCisJZW5kZm9yZWFjaCgpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChj
b3RpcmVfZ2V0X3RhcmdldF91c2FnZV9yZXF1aXJlbWVudHMgX3RhcmdldCBfY29uZmlnIF90YXJn
ZXRSZXF1aXJlbWVudHNWYXIpCisJc2V0IChfdGFyZ2V0UmVxdWlyZW1lbnRzICIiKQorCWdldF90
YXJnZXRfcHJvcGVydHkoX2xpYnJhcmllc1RvUHJvY2VzcyAke190YXJnZXR9IExJTktfTElCUkFS
SUVTKQorCXdoaWxlIChfbGlicmFyaWVzVG9Qcm9jZXNzKQorCQkjIHJlbW92ZSBmcm9tIGhlYWQK
KwkJbGlzdCAoR0VUIF9saWJyYXJpZXNUb1Byb2Nlc3MgMCBfbGlicmFyeSkKKwkJbGlzdCAoUkVN
T1ZFX0FUIF9saWJyYXJpZXNUb1Byb2Nlc3MgMCkKKwkJaWYgKF9saWJyYXJ5IE1BVENIRVMgIl5c
XCQ8XFwkPENPTkZJRzoke19jb25maWd9PjooW0EtWmEtejAtOV86LV0rKT4kIikKKwkJCXNldCAo
X2xpYnJhcnkgIiR7Q01BS0VfTUFUQ0hfMX0iKQorCQllbHNlaWYgKF9jb25maWcgU1RSRVFVQUwg
Ik5vbmUiIEFORCBfbGlicmFyeSBNQVRDSEVTICJeXFwkPFxcJDxDT05GSUc6PjooW0EtWmEtejAt
OV86LV0rKT4kIikKKwkJCXNldCAoX2xpYnJhcnkgIiR7Q01BS0VfTUFUQ0hfMX0iKQorCQllbmRp
ZigpCisJCWlmIChUQVJHRVQgJHtfbGlicmFyeX0pCisJCQlsaXN0IChGSU5EIF90YXJnZXRSZXF1
aXJlbWVudHMgJHtfbGlicmFyeX0gX2luZGV4KQorCQkJaWYgKF9pbmRleCBMRVNTIDApCisJCQkJ
bGlzdCAoQVBQRU5EIF90YXJnZXRSZXF1aXJlbWVudHMgJHtfbGlicmFyeX0pCisJCQkJIyBCRlMg
dHJhdmVyc2FsIG9mIHRyYW5zaXRpdmUgbGlicmFyaWVzCisJCQkJZ2V0X3RhcmdldF9wcm9wZXJ0
eShfbGlicmFyaWVzICR7X2xpYnJhcnl9IElOVEVSRkFDRV9MSU5LX0xJQlJBUklFUykKKwkJCQlp
ZiAoX2xpYnJhcmllcykKKwkJCQkJbGlzdCAoQVBQRU5EIF9saWJyYXJpZXNUb1Byb2Nlc3MgJHtf
bGlicmFyaWVzfSkKKwkJCQkJbGlzdCAoUkVNT1ZFX0RVUExJQ0FURVMgX2xpYnJhcmllc1RvUHJv
Y2VzcykKKwkJCQllbmRpZigpCisJCQllbmRpZigpCisJCWVuZGlmKCkKKwllbmR3aGlsZSgpCisJ
c2V0ICgke190YXJnZXRSZXF1aXJlbWVudHNWYXJ9ICR7X3RhcmdldFJlcXVpcmVtZW50c30gUEFS
RU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX2ZpbHRlcl9jb21w
aWxlX2ZsYWdzIF9sYW5ndWFnZSBfZmxhZ0ZpbHRlciBfbWF0Y2hlZE9wdGlvbnNWYXIgX3VubWF0
Y2hlZE9wdGlvbnNWYXIpCisJaWYgKFdJTjMyIEFORCBDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElM
RVJfSUQgTUFUQ0hFUyAiTVNWQ3xJbnRlbCIpCisJCXNldCAoX2ZsYWdQcmVmaXggIlsvLV0iKQor
CWVsc2UoKQorCQlzZXQgKF9mbGFnUHJlZml4ICItLT8iKQorCWVuZGlmKCkKKwlzZXQgKF9vcHRp
b25GbGFnICIiKQorCXNldCAoX21hdGNoZWRPcHRpb25zICIiKQorCXNldCAoX3VubWF0Y2hlZE9w
dGlvbnMgIiIpCisJZm9yZWFjaCAoX2NvbXBpbGVGbGFnICR7QVJHTn0pCisJCWlmIChfY29tcGls
ZUZsYWcpCisJCQlpZiAoX29wdGlvbkZsYWcgQU5EIE5PVCAiJHtfY29tcGlsZUZsYWd9IiBNQVRD
SEVTICJeJHtfZmxhZ1ByZWZpeH0iKQorCQkJCSMgb3B0aW9uIHdpdGggc2VwYXJhdGUgYXJndW1l
bnQKKwkJCQlsaXN0IChBUFBFTkQgX21hdGNoZWRPcHRpb25zICIke19jb21waWxlRmxhZ30iKQor
CQkJCXNldCAoX29wdGlvbkZsYWcgIiIpCisJCQllbHNlaWYgKCIke19jb21waWxlRmxhZ30iIE1B
VENIRVMgIl4oJHtfZmxhZ1ByZWZpeH0pKCR7X2ZsYWdGaWx0ZXJ9KSQiKQorCQkJCSMgcmVtZW1i
ZXIgb3B0aW9uCisJCQkJc2V0IChfb3B0aW9uRmxhZyAiJHtDTUFLRV9NQVRDSF8yfSIpCisJCQll
bHNlaWYgKCIke19jb21waWxlRmxhZ30iIE1BVENIRVMgIl4oJHtfZmxhZ1ByZWZpeH0pKCR7X2Zs
YWdGaWx0ZXJ9KSguKykkIikKKwkJCQkjIG9wdGlvbiB3aXRoIGpvaW5lZCBhcmd1bWVudAorCQkJ
CWxpc3QgKEFQUEVORCBfbWF0Y2hlZE9wdGlvbnMgIiR7Q01BS0VfTUFUQ0hfM30iKQorCQkJCXNl
dCAoX29wdGlvbkZsYWcgIiIpCisJCQllbHNlKCkKKwkJCQkjIGZsdXNoIHJlbWVtYmVyZWQgb3B0
aW9uCisJCQkJaWYgKF9vcHRpb25GbGFnKQorCQkJCQlsaXN0IChBUFBFTkQgX21hdGNoZWRPcHRp
b25zICIke19vcHRpb25GbGFnfSIpCisJCQkJCXNldCAoX29wdGlvbkZsYWcgIiIpCisJCQkJZW5k
aWYoKQorCQkJCSMgYWRkIHRvIHVuZmlsdGVyZWQgb3B0aW9ucworCQkJCWxpc3QgKEFQUEVORCBf
dW5tYXRjaGVkT3B0aW9ucyAiJHtfY29tcGlsZUZsYWd9IikKKwkJCWVuZGlmKCkKKwkJZW5kaWYo
KQorCWVuZGZvcmVhY2goKQorCWlmIChfb3B0aW9uRmxhZykKKwkJbGlzdCAoQVBQRU5EIF9tYXRj
aGVkT3B0aW9ucyAiJHtfb3B0aW9uRmxhZ30iKQorCWVuZGlmKCkKKwlpZiAoQ09USVJFX0RFQlVH
IEFORCBfbWF0Y2hlZE9wdGlvbnMpCisJCW1lc3NhZ2UgKFNUQVRVUyAiRmlsdGVyICR7X2ZsYWdG
aWx0ZXJ9IG1hdGNoZWQ6ICR7X21hdGNoZWRPcHRpb25zfSIpCisJZW5kaWYoKQorCWlmIChDT1RJ
UkVfREVCVUcgQU5EIF91bm1hdGNoZWRPcHRpb25zKQorCQltZXNzYWdlIChTVEFUVVMgIkZpbHRl
ciAke19mbGFnRmlsdGVyfSB1bm1hdGNoZWQ6ICR7X3VubWF0Y2hlZE9wdGlvbnN9IikKKwllbmRp
ZigpCisJc2V0ICgke19tYXRjaGVkT3B0aW9uc1Zhcn0gJHtfbWF0Y2hlZE9wdGlvbnN9IFBBUkVO
VF9TQ09QRSkKKwlzZXQgKCR7X3VubWF0Y2hlZE9wdGlvbnNWYXJ9ICR7X3VubWF0Y2hlZE9wdGlv
bnN9IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9pc190
YXJnZXRfc3VwcG9ydGVkIF90YXJnZXQgX2lzU3VwcG9ydGVkVmFyKQorCWlmIChOT1QgVEFSR0VU
ICIke190YXJnZXR9IikKKwkJc2V0ICgke19pc1N1cHBvcnRlZFZhcn0gRkFMU0UgUEFSRU5UX1ND
T1BFKQorCQlyZXR1cm4oKQorCWVuZGlmKCkKKwlnZXRfdGFyZ2V0X3Byb3BlcnR5KF9pbXBvcnRl
ZCAke190YXJnZXR9IElNUE9SVEVEKQorCWlmIChfaW1wb3J0ZWQpCisJCXNldCAoJHtfaXNTdXBw
b3J0ZWRWYXJ9IEZBTFNFIFBBUkVOVF9TQ09QRSkKKwkJcmV0dXJuKCkKKwllbmRpZigpCisJZ2V0
X3RhcmdldF9wcm9wZXJ0eShfdGFyZ2V0VHlwZSAke190YXJnZXR9IFRZUEUpCisJaWYgKE5PVCBf
dGFyZ2V0VHlwZSBNQVRDSEVTICJFWEVDVVRBQkxFfChTVEFUSUN8U0hBUkVEfE1PRFVMRXxPQkpF
Q1QpX0xJQlJBUlkiKQorCQlzZXQgKCR7X2lzU3VwcG9ydGVkVmFyfSBGQUxTRSBQQVJFTlRfU0NP
UEUpCisJCXJldHVybigpCisJZW5kaWYoKQorCXNldCAoJHtfaXNTdXBwb3J0ZWRWYXJ9IFRSVUUg
UEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX2dldF90YXJn
ZXRfY29tcGlsZV9mbGFncyBfY29uZmlnIF9sYW5ndWFnZSBfdGFyZ2V0IF9mbGFnc1ZhcikKKwlz
dHJpbmcgKFRPVVBQRVIgIiR7X2NvbmZpZ30iIF91cHBlckNvbmZpZykKKwkjIGNvbGxlY3Qgb3B0
aW9ucyBmcm9tIENNYWtlIGxhbmd1YWdlIHZhcmlhYmxlcworCXNldCAoX2NvbXBpbGVGbGFncyAi
IikKKwlpZiAoQ01BS0VfJHtfbGFuZ3VhZ2V9X0ZMQUdTKQorCQlzZXQgKF9jb21waWxlRmxhZ3Mg
IiR7X2NvbXBpbGVGbGFnc30gJHtDTUFLRV8ke19sYW5ndWFnZX1fRkxBR1N9IikKKwllbmRpZigp
CisJaWYgKENNQUtFXyR7X2xhbmd1YWdlfV9GTEFHU18ke191cHBlckNvbmZpZ30pCisJCXNldCAo
X2NvbXBpbGVGbGFncyAiJHtfY29tcGlsZUZsYWdzfSAke0NNQUtFXyR7X2xhbmd1YWdlfV9GTEFH
U18ke191cHBlckNvbmZpZ319IikKKwllbmRpZigpCisJaWYgKF90YXJnZXQpCisJCSMgYWRkIHRh
cmdldCBjb21waWxlIGZsYWdzCisJCWdldF90YXJnZXRfcHJvcGVydHkoX3RhcmdldGZsYWdzICR7
X3RhcmdldH0gQ09NUElMRV9GTEFHUykKKwkJaWYgKF90YXJnZXRmbGFncykKKwkJCXNldCAoX2Nv
bXBpbGVGbGFncyAiJHtfY29tcGlsZUZsYWdzfSAke190YXJnZXRmbGFnc30iKQorCQllbmRpZigp
CisJZW5kaWYoKQorCWlmIChVTklYKQorCQlzZXBhcmF0ZV9hcmd1bWVudHMoX2NvbXBpbGVGbGFn
cyBVTklYX0NPTU1BTkQgIiR7X2NvbXBpbGVGbGFnc30iKQorCWVsc2VpZihXSU4zMikKKwkJc2Vw
YXJhdGVfYXJndW1lbnRzKF9jb21waWxlRmxhZ3MgV0lORE9XU19DT01NQU5EICIke19jb21waWxl
RmxhZ3N9IikKKwllbHNlKCkKKwkJc2VwYXJhdGVfYXJndW1lbnRzKF9jb21waWxlRmxhZ3MpCisJ
ZW5kaWYoKQorCSMgdGFyZ2V0IGNvbXBpbGUgb3B0aW9ucworCWlmIChfdGFyZ2V0KQorCQlnZXRf
dGFyZ2V0X3Byb3BlcnR5KF90YXJnZXRPcHRpb25zICR7X3RhcmdldH0gQ09NUElMRV9PUFRJT05T
KQorCQlpZiAoX3RhcmdldE9wdGlvbnMpCisJCQlsaXN0IChBUFBFTkQgX2NvbXBpbGVGbGFncyAk
e190YXJnZXRPcHRpb25zfSkKKwkJZW5kaWYoKQorCWVuZGlmKCkKKwkjIGludGVyZmFjZSBjb21w
aWxlIG9wdGlvbnMgZnJvbSBsaW5rZWQgbGlicmFyeSB0YXJnZXRzCisJaWYgKF90YXJnZXQpCisJ
CXNldCAoX2xpbmtlZFRhcmdldHMgIiIpCisJCWNvdGlyZV9nZXRfdGFyZ2V0X3VzYWdlX3JlcXVp
cmVtZW50cygke190YXJnZXR9ICR7X2NvbmZpZ30gX2xpbmtlZFRhcmdldHMpCisJCWZvcmVhY2gg
KF9saW5rZWRUYXJnZXQgJHtfbGlua2VkVGFyZ2V0c30pCisJCQlnZXRfdGFyZ2V0X3Byb3BlcnR5
KF90YXJnZXRPcHRpb25zICR7X2xpbmtlZFRhcmdldH0gSU5URVJGQUNFX0NPTVBJTEVfT1BUSU9O
UykKKwkJCWlmIChfdGFyZ2V0T3B0aW9ucykKKwkJCQlsaXN0IChBUFBFTkQgX2NvbXBpbGVGbGFn
cyAke190YXJnZXRPcHRpb25zfSkKKwkJCWVuZGlmKCkKKwkJZW5kZm9yZWFjaCgpCisJZW5kaWYo
KQorCSMgaGFuZGxlIGxhbmd1YWdlIHN0YW5kYXJkIHByb3BlcnRpZXMKKwlpZiAoQ01BS0VfJHtf
bGFuZ3VhZ2V9X1NUQU5EQVJEX0RFRkFVTFQpCisJCSMgdXNlZCBjb21waWxlciBzdXBwb3J0cyBs
YW5ndWFnZSBzdGFuZGFyZCBsZXZlbHMKKwkJaWYgKF90YXJnZXQpCisJCQlnZXRfdGFyZ2V0X3By
b3BlcnR5KF90YXJnZXRMYW5ndWFnZVN0YW5kYXJkICR7X3RhcmdldH0gJHtfbGFuZ3VhZ2V9X1NU
QU5EQVJEKQorCQkJaWYgKF90YXJnZXRMYW5ndWFnZVN0YW5kYXJkKQorCQkJCXNldCAoX3R5cGUg
IkVYVEVOU0lPTiIpCisJCQkJZ2V0X3Byb3BlcnR5KF9pc1NldCBUQVJHRVQgJHtfdGFyZ2V0fSBQ
Uk9QRVJUWSAke19sYW5ndWFnZX1fRVhURU5TSU9OUyBTRVQpCisJCQkJaWYgKF9pc1NldCkKKwkJ
CQkJZ2V0X3RhcmdldF9wcm9wZXJ0eShfdGFyZ2V0VXNlTGFuZ3VhZ2VFeHRlbnNpb25zICR7X3Rh
cmdldH0gJHtfbGFuZ3VhZ2V9X0VYVEVOU0lPTlMpCisJCQkJCWlmIChOT1QgX3RhcmdldFVzZUxh
bmd1YWdlRXh0ZW5zaW9ucykKKwkJCQkJCXNldCAoX3R5cGUgIlNUQU5EQVJEIikKKwkJCQkJZW5k
aWYoKQorCQkJCWVuZGlmKCkKKwkJCQlpZiAoQ01BS0VfJHtfbGFuZ3VhZ2V9JHtfdGFyZ2V0TGFu
Z3VhZ2VTdGFuZGFyZH1fJHtfdHlwZX1fQ09NUElMRV9PUFRJT04pCisJCQkJCWxpc3QgKEFQUEVO
RCBfY29tcGlsZUZsYWdzICIke0NNQUtFXyR7X2xhbmd1YWdlfSR7X3RhcmdldExhbmd1YWdlU3Rh
bmRhcmR9XyR7X3R5cGV9X0NPTVBJTEVfT1BUSU9OfSIpCisJCQkJZW5kaWYoKQorCQkJZW5kaWYo
KQorCQllbmRpZigpCisJZW5kaWYoKQorCSMgaGFuZGxlIHRoZSBQT1NJVElPTl9JTkRFUEVOREVO
VF9DT0RFIHRhcmdldCBwcm9wZXJ0eQorCWlmIChfdGFyZ2V0KQorCQlnZXRfdGFyZ2V0X3Byb3Bl
cnR5KF90YXJnZXRQSUMgJHtfdGFyZ2V0fSBQT1NJVElPTl9JTkRFUEVOREVOVF9DT0RFKQorCQlp
ZiAoX3RhcmdldFBJQykKKwkJCWdldF90YXJnZXRfcHJvcGVydHkoX3RhcmdldFR5cGUgJHtfdGFy
Z2V0fSBUWVBFKQorCQkJaWYgKF90YXJnZXRUeXBlIFNUUkVRVUFMICJFWEVDVVRBQkxFIiBBTkQg
Q01BS0VfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVfT1BUSU9OU19QSUUpCisJCQkJbGlzdCAoQVBQRU5E
IF9jb21waWxlRmxhZ3MgIiR7Q01BS0VfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVfT1BUSU9OU19QSUV9
IikKKwkJCWVsc2VpZiAoQ01BS0VfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVfT1BUSU9OU19QSUMpCisJ
CQkJbGlzdCAoQVBQRU5EIF9jb21waWxlRmxhZ3MgIiR7Q01BS0VfJHtfbGFuZ3VhZ2V9X0NPTVBJ
TEVfT1BUSU9OU19QSUN9IikKKwkJCWVuZGlmKCkKKwkJZW5kaWYoKQorCWVuZGlmKCkKKwkjIGhh
bmRsZSB2aXNpYmlsaXR5IHRhcmdldCBwcm9wZXJ0aWVzCisJaWYgKF90YXJnZXQpCisJCWdldF90
YXJnZXRfcHJvcGVydHkoX3RhcmdldFZpc2liaWxpdHkgJHtfdGFyZ2V0fSAke19sYW5ndWFnZX1f
VklTSUJJTElUWV9QUkVTRVQpCisJCWlmIChfdGFyZ2V0VmlzaWJpbGl0eSBBTkQgQ01BS0VfJHtf
bGFuZ3VhZ2V9X0NPTVBJTEVfT1BUSU9OU19WSVNJQklMSVRZKQorCQkJbGlzdCAoQVBQRU5EIF9j
b21waWxlRmxhZ3MgIiR7Q01BS0VfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVfT1BUSU9OU19WSVNJQklM
SVRZfSR7X3RhcmdldFZpc2liaWxpdHl9IikKKwkJZW5kaWYoKQorCQlnZXRfdGFyZ2V0X3Byb3Bl
cnR5KF90YXJnZXRWaXNpYmlsaXR5SW5saW5lcyAke190YXJnZXR9IFZJU0lCSUxJVFlfSU5MSU5F
U19ISURERU4pCisJCWlmIChfdGFyZ2V0VmlzaWJpbGl0eUlubGluZXMgQU5EIENNQUtFXyR7X2xh
bmd1YWdlfV9DT01QSUxFX09QVElPTlNfVklTSUJJTElUWV9JTkxJTkVTX0hJRERFTikKKwkJCWxp
c3QgKEFQUEVORCBfY29tcGlsZUZsYWdzICIke0NNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFX09Q
VElPTlNfVklTSUJJTElUWV9JTkxJTkVTX0hJRERFTn0iKQorCQllbmRpZigpCisJZW5kaWYoKQor
CSMgcGxhdGZvcm0gc3BlY2lmaWMgZmxhZ3MKKwlpZiAoQVBQTEUpCisJCWdldF90YXJnZXRfcHJv
cGVydHkoX2FyY2hpdGVjdHVyZXMgJHtfdGFyZ2V0fSBPU1hfQVJDSElURUNUVVJFU18ke191cHBl
ckNvbmZpZ30pCisJCWlmIChOT1QgX2FyY2hpdGVjdHVyZXMpCisJCQlnZXRfdGFyZ2V0X3Byb3Bl
cnR5KF9hcmNoaXRlY3R1cmVzICR7X3RhcmdldH0gT1NYX0FSQ0hJVEVDVFVSRVMpCisJCWVuZGlm
KCkKKwkJaWYgKF9hcmNoaXRlY3R1cmVzKQorCQkJZm9yZWFjaCAoX2FyY2ggJHtfYXJjaGl0ZWN0
dXJlc30pCisJCQkJbGlzdCAoQVBQRU5EIF9jb21waWxlRmxhZ3MgIi1hcmNoIiAiJHtfYXJjaH0i
KQorCQkJZW5kZm9yZWFjaCgpCisJCWVuZGlmKCkKKwkJaWYgKENNQUtFX09TWF9TWVNST09UKQor
CQkJaWYgKENNQUtFXyR7X2xhbmd1YWdlfV9TWVNST09UX0ZMQUcpCisJCQkJbGlzdCAoQVBQRU5E
IF9jb21waWxlRmxhZ3MgIiR7Q01BS0VfJHtfbGFuZ3VhZ2V9X1NZU1JPT1RfRkxBR30iICIke0NN
QUtFX09TWF9TWVNST09UfSIpCisJCQllbHNlKCkKKwkJCQlsaXN0IChBUFBFTkQgX2NvbXBpbGVG
bGFncyAiLWlzeXNyb290IiAiJHtDTUFLRV9PU1hfU1lTUk9PVH0iKQorCQkJZW5kaWYoKQorCQll
bmRpZigpCisJCWlmIChDTUFLRV9PU1hfREVQTE9ZTUVOVF9UQVJHRVQpCisJCQlpZiAoQ01BS0Vf
JHtfbGFuZ3VhZ2V9X09TWF9ERVBMT1lNRU5UX1RBUkdFVF9GTEFHKQorCQkJCWxpc3QgKEFQUEVO
RCBfY29tcGlsZUZsYWdzICIke0NNQUtFXyR7X2xhbmd1YWdlfV9PU1hfREVQTE9ZTUVOVF9UQVJH
RVRfRkxBR30ke0NNQUtFX09TWF9ERVBMT1lNRU5UX1RBUkdFVH0iKQorCQkJZWxzZSgpCisJCQkJ
bGlzdCAoQVBQRU5EIF9jb21waWxlRmxhZ3MgIi1tbWFjb3N4LXZlcnNpb24tbWluPSR7Q01BS0Vf
T1NYX0RFUExPWU1FTlRfVEFSR0VUfSIpCisJCQllbmRpZigpCisJCWVuZGlmKCkKKwllbmRpZigp
CisJaWYgKENPVElSRV9ERUJVRyBBTkQgX2NvbXBpbGVGbGFncykKKwkJbWVzc2FnZSAoU1RBVFVT
ICJUYXJnZXQgJHtfdGFyZ2V0fSBjb21waWxlIGZsYWdzOiAke19jb21waWxlRmxhZ3N9IikKKwll
bmRpZigpCisJc2V0ICgke19mbGFnc1Zhcn0gJHtfY29tcGlsZUZsYWdzfSBQQVJFTlRfU0NPUEUp
CitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfZ2V0X3RhcmdldF9pbmNsdWRlX2Rp
cmVjdG9yaWVzIF9jb25maWcgX2xhbmd1YWdlIF90YXJnZXQgX2luY2x1ZGVEaXJzVmFyIF9zeXN0
ZW1JbmNsdWRlRGlyc1ZhcikKKwlzZXQgKF9pbmNsdWRlRGlycyAiIikKKwlzZXQgKF9zeXN0ZW1J
bmNsdWRlRGlycyAiIikKKwkjIGRlZmF1bHQgaW5jbHVkZSBkaXJzCisJaWYgKENNQUtFX0lOQ0xV
REVfQ1VSUkVOVF9ESVIpCisJCWxpc3QgKEFQUEVORCBfaW5jbHVkZURpcnMgIiR7Q01BS0VfQ1VS
UkVOVF9CSU5BUllfRElSfSIpCisJCWxpc3QgKEFQUEVORCBfaW5jbHVkZURpcnMgIiR7Q01BS0Vf
Q1VSUkVOVF9TT1VSQ0VfRElSfSIpCisJZW5kaWYoKQorCXNldCAoX3RhcmdldEZsYWdzICIiKQor
CWNvdGlyZV9nZXRfdGFyZ2V0X2NvbXBpbGVfZmxhZ3MoIiR7X2NvbmZpZ30iICIke19sYW5ndWFn
ZX0iICIke190YXJnZXR9IiBfdGFyZ2V0RmxhZ3MpCisJIyBwYXJzZSBhZGRpdGlvbmFsIGluY2x1
ZGUgZGlyZWN0b3JpZXMgZnJvbSB0YXJnZXQgY29tcGlsZSBmbGFncworCWlmIChDTUFLRV9JTkNM
VURFX0ZMQUdfJHtfbGFuZ3VhZ2V9KQorCQlzdHJpbmcgKFNUUklQICIke0NNQUtFX0lOQ0xVREVf
RkxBR18ke19sYW5ndWFnZX19IiBfaW5jbHVkZUZsYWcpCisJCXN0cmluZyAoUkVHRVggUkVQTEFD
RSAiXlstL10rIiAiIiBfaW5jbHVkZUZsYWcgIiR7X2luY2x1ZGVGbGFnfSIpCisJCWlmIChfaW5j
bHVkZUZsYWcpCisJCQlzZXQgKF9kaXJzICIiKQorCQkJY290aXJlX2ZpbHRlcl9jb21waWxlX2Zs
YWdzKCIke19sYW5ndWFnZX0iICIke19pbmNsdWRlRmxhZ30iIF9kaXJzIF9pZ25vcmUgJHtfdGFy
Z2V0RmxhZ3N9KQorCQkJaWYgKF9kaXJzKQorCQkJCWxpc3QgKEFQUEVORCBfaW5jbHVkZURpcnMg
JHtfZGlyc30pCisJCQllbmRpZigpCisJCWVuZGlmKCkKKwllbmRpZigpCisJIyBwYXJzZSBhZGRp
dGlvbmFsIHN5c3RlbSBpbmNsdWRlIGRpcmVjdG9yaWVzIGZyb20gdGFyZ2V0IGNvbXBpbGUgZmxh
Z3MKKwlpZiAoQ01BS0VfSU5DTFVERV9TWVNURU1fRkxBR18ke19sYW5ndWFnZX0pCisJCXN0cmlu
ZyAoU1RSSVAgIiR7Q01BS0VfSU5DTFVERV9TWVNURU1fRkxBR18ke19sYW5ndWFnZX19IiBfaW5j
bHVkZUZsYWcpCisJCXN0cmluZyAoUkVHRVggUkVQTEFDRSAiXlstL10rIiAiIiBfaW5jbHVkZUZs
YWcgIiR7X2luY2x1ZGVGbGFnfSIpCisJCWlmIChfaW5jbHVkZUZsYWcpCisJCQlzZXQgKF9kaXJz
ICIiKQorCQkJY290aXJlX2ZpbHRlcl9jb21waWxlX2ZsYWdzKCIke19sYW5ndWFnZX0iICIke19p
bmNsdWRlRmxhZ30iIF9kaXJzIF9pZ25vcmUgJHtfdGFyZ2V0RmxhZ3N9KQorCQkJaWYgKF9kaXJz
KQorCQkJCWxpc3QgKEFQUEVORCBfc3lzdGVtSW5jbHVkZURpcnMgJHtfZGlyc30pCisJCQllbmRp
ZigpCisJCWVuZGlmKCkKKwllbmRpZigpCisJIyB0YXJnZXQgaW5jbHVkZSBkaXJlY3Rvcmllcwor
CWdldF9kaXJlY3RvcnlfcHJvcGVydHkoX2RpcnMgRElSRUNUT1JZICIke0NNQUtFX0NVUlJFTlRf
U09VUkNFX0RJUn0iIElOQ0xVREVfRElSRUNUT1JJRVMpCisJaWYgKF90YXJnZXQpCisJCWdldF90
YXJnZXRfcHJvcGVydHkoX3RhcmdldERpcnMgJHtfdGFyZ2V0fSBJTkNMVURFX0RJUkVDVE9SSUVT
KQorCQlpZiAoX3RhcmdldERpcnMpCisJCQlsaXN0IChBUFBFTkQgX2RpcnMgJHtfdGFyZ2V0RGly
c30pCisJCWVuZGlmKCkKKwkJZ2V0X3RhcmdldF9wcm9wZXJ0eShfdGFyZ2V0RGlycyAke190YXJn
ZXR9IElOVEVSRkFDRV9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUykKKwkJaWYgKF90YXJnZXRE
aXJzKQorCQkJbGlzdCAoQVBQRU5EIF9zeXN0ZW1JbmNsdWRlRGlycyAke190YXJnZXREaXJzfSkK
KwkJZW5kaWYoKQorCWVuZGlmKCkKKwkjIGludGVyZmFjZSBpbmNsdWRlIGRpcmVjdG9yaWVzIGZy
b20gbGlua2VkIGxpYnJhcnkgdGFyZ2V0cworCWlmIChfdGFyZ2V0KQorCQlzZXQgKF9saW5rZWRU
YXJnZXRzICIiKQorCQljb3RpcmVfZ2V0X3RhcmdldF91c2FnZV9yZXF1aXJlbWVudHMoJHtfdGFy
Z2V0fSAke19jb25maWd9IF9saW5rZWRUYXJnZXRzKQorCQlmb3JlYWNoIChfbGlua2VkVGFyZ2V0
ICR7X2xpbmtlZFRhcmdldHN9KQorCQkJZ2V0X3RhcmdldF9wcm9wZXJ0eShfbGlua2VkVGFyZ2V0
VHlwZSAke19saW5rZWRUYXJnZXR9IFRZUEUpCisJCQlpZiAoQ01BS0VfSU5DTFVERV9DVVJSRU5U
X0RJUl9JTl9JTlRFUkZBQ0UgQU5EIE5PVCBDTUFLRV9WRVJTSU9OIFZFUlNJT05fTEVTUyAiMy40
LjAiIEFORAorCQkJCV9saW5rZWRUYXJnZXRUeXBlIE1BVENIRVMgIihTVEFUSUN8U0hBUkVEfE1P
RFVMRXxPQkpFQ1QpX0xJQlJBUlkiKQorCQkJCSMgQ01BS0VfSU5DTFVERV9DVVJSRU5UX0RJUl9J
Tl9JTlRFUkZBQ0UgcmVmZXJzIHRvIENNQUtFX0NVUlJFTlRfQklOQVJZX0RJUiBhbmQgQ01BS0Vf
Q1VSUkVOVF9TT1VSQ0VfRElSCisJCQkJIyBhdCB0aGUgdGltZSwgd2hlbiB0aGUgdGFyZ2V0IHdh
cyBjcmVhdGVkLiBUaGVzZSBjb3JyZXNwb25kIHRvIHRoZSB0YXJnZXQgcHJvcGVydGllcyBCSU5B
UllfRElSIGFuZCBTT1VSQ0VfRElSCisJCQkJIyB3aGljaCBhcmUgb25seSBhdmFpbGFibGUgd2l0
aCBDTWFrZSAzLjQgb3IgbGF0ZXIuCisJCQkJZ2V0X3RhcmdldF9wcm9wZXJ0eShfdGFyZ2V0RGly
cyAke19saW5rZWRUYXJnZXR9IEJJTkFSWV9ESVIpCisJCQkJaWYgKF90YXJnZXREaXJzKQorCQkJ
CQlsaXN0IChBUFBFTkQgX2RpcnMgJHtfdGFyZ2V0RGlyc30pCisJCQkJZW5kaWYoKQorCQkJCWdl
dF90YXJnZXRfcHJvcGVydHkoX3RhcmdldERpcnMgJHtfbGlua2VkVGFyZ2V0fSBTT1VSQ0VfRElS
KQorCQkJCWlmIChfdGFyZ2V0RGlycykKKwkJCQkJbGlzdCAoQVBQRU5EIF9kaXJzICR7X3Rhcmdl
dERpcnN9KQorCQkJCWVuZGlmKCkKKwkJCWVuZGlmKCkKKwkJCWdldF90YXJnZXRfcHJvcGVydHko
X3RhcmdldERpcnMgJHtfbGlua2VkVGFyZ2V0fSBJTlRFUkZBQ0VfSU5DTFVERV9ESVJFQ1RPUklF
UykKKwkJCWlmIChfdGFyZ2V0RGlycykKKwkJCQlsaXN0IChBUFBFTkQgX2RpcnMgJHtfdGFyZ2V0
RGlyc30pCisJCQllbmRpZigpCisJCQlnZXRfdGFyZ2V0X3Byb3BlcnR5KF90YXJnZXREaXJzICR7
X2xpbmtlZFRhcmdldH0gSU5URVJGQUNFX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTKQorCQkJ
aWYgKF90YXJnZXREaXJzKQorCQkJCWxpc3QgKEFQUEVORCBfc3lzdGVtSW5jbHVkZURpcnMgJHtf
dGFyZ2V0RGlyc30pCisJCQllbmRpZigpCisJCWVuZGZvcmVhY2goKQorCWVuZGlmKCkKKwlpZiAo
ZGlycykKKwkJbGlzdCAoUkVNT1ZFX0RVUExJQ0FURVMgX2RpcnMpCisJZW5kaWYoKQorCWxpc3Qg
KExFTkdUSCBfaW5jbHVkZURpcnMgX3Byb2plY3RJbnNlcnRJbmRleCkKKwlmb3JlYWNoIChfZGly
ICR7X2RpcnN9KQorCQlpZiAoQ01BS0VfSU5DTFVERV9ESVJFQ1RPUklFU19QUk9KRUNUX0JFRk9S
RSkKKwkJCWNvdGlyZV9jaGVja19pc19wYXRoX3JlbGF0aXZlX3RvKCIke19kaXJ9IiBfaXNSZWxh
dGl2ZSAiJHtDTUFLRV9TT1VSQ0VfRElSfSIgIiR7Q01BS0VfQklOQVJZX0RJUn0iKQorCQkJaWYg
KF9pc1JlbGF0aXZlKQorCQkJCWxpc3QgKExFTkdUSCBfaW5jbHVkZURpcnMgX2xlbikKKwkJCQlp
ZiAoX2xlbiBFUVVBTCBfcHJvamVjdEluc2VydEluZGV4KQorCQkJCQlsaXN0IChBUFBFTkQgX2lu
Y2x1ZGVEaXJzICIke19kaXJ9IikKKwkJCQllbHNlKCkKKwkJCQkJbGlzdCAoSU5TRVJUIF9pbmNs
dWRlRGlycyBfcHJvamVjdEluc2VydEluZGV4ICIke19kaXJ9IikKKwkJCQllbmRpZigpCisJCQkJ
bWF0aCAoRVhQUiBfcHJvamVjdEluc2VydEluZGV4ICIke19wcm9qZWN0SW5zZXJ0SW5kZXh9ICsg
MSIpCisJCQllbHNlKCkKKwkJCQlsaXN0IChBUFBFTkQgX2luY2x1ZGVEaXJzICIke19kaXJ9IikK
KwkJCWVuZGlmKCkKKwkJZWxzZSgpCisJCQlsaXN0IChBUFBFTkQgX2luY2x1ZGVEaXJzICIke19k
aXJ9IikKKwkJZW5kaWYoKQorCWVuZGZvcmVhY2goKQorCWxpc3QgKFJFTU9WRV9EVVBMSUNBVEVT
IF9pbmNsdWRlRGlycykKKwlsaXN0IChSRU1PVkVfRFVQTElDQVRFUyBfc3lzdGVtSW5jbHVkZURp
cnMpCisJaWYgKENNQUtFXyR7X2xhbmd1YWdlfV9JTVBMSUNJVF9JTkNMVURFX0RJUkVDVE9SSUVT
KQorCQlsaXN0IChSRU1PVkVfSVRFTSBfaW5jbHVkZURpcnMgJHtDTUFLRV8ke19sYW5ndWFnZX1f
SU1QTElDSVRfSU5DTFVERV9ESVJFQ1RPUklFU30pCisJZW5kaWYoKQorCWlmIChXSU4zMiBBTkQg
Tk9UIE1JTkdXKQorCQkjIGNvbnZlcnQgV2luZG93cyBwYXRocyBpbiBpbmNsdWRlIGRpcmVjdG9y
aWVzIHRvIENNYWtlIHBhdGhzCisJCWlmIChfaW5jbHVkZURpcnMpCisJCQlzZXQgKF9wYXRocyAi
IikKKwkJCWZvcmVhY2ggKF9kaXIgJHtfaW5jbHVkZURpcnN9KQorCQkJCWZpbGUgKFRPX0NNQUtF
X1BBVEggIiR7X2Rpcn0iIF9wYXRoKQorCQkJCWxpc3QgKEFQUEVORCBfcGF0aHMgIiR7X3BhdGh9
IikKKwkJCWVuZGZvcmVhY2goKQorCQkJc2V0IChfaW5jbHVkZURpcnMgJHtfcGF0aHN9KQorCQll
bmRpZigpCisJCWlmIChfc3lzdGVtSW5jbHVkZURpcnMpCisJCQlzZXQgKF9wYXRocyAiIikKKwkJ
CWZvcmVhY2ggKF9kaXIgJHtfc3lzdGVtSW5jbHVkZURpcnN9KQorCQkJCWZpbGUgKFRPX0NNQUtF
X1BBVEggIiR7X2Rpcn0iIF9wYXRoKQorCQkJCWxpc3QgKEFQUEVORCBfcGF0aHMgIiR7X3BhdGh9
IikKKwkJCWVuZGZvcmVhY2goKQorCQkJc2V0IChfc3lzdGVtSW5jbHVkZURpcnMgJHtfcGF0aHN9
KQorCQllbmRpZigpCisJZW5kaWYoKQorCWlmIChDT1RJUkVfREVCVUcgQU5EIF9pbmNsdWRlRGly
cykKKwkJbWVzc2FnZSAoU1RBVFVTICJUYXJnZXQgJHtfdGFyZ2V0fSBpbmNsdWRlIGRpcnM6ICR7
X2luY2x1ZGVEaXJzfSIpCisJZW5kaWYoKQorCXNldCAoJHtfaW5jbHVkZURpcnNWYXJ9ICR7X2lu
Y2x1ZGVEaXJzfSBQQVJFTlRfU0NPUEUpCisJaWYgKENPVElSRV9ERUJVRyBBTkQgX3N5c3RlbUlu
Y2x1ZGVEaXJzKQorCQltZXNzYWdlIChTVEFUVVMgIlRhcmdldCAke190YXJnZXR9IHN5c3RlbSBp
bmNsdWRlIGRpcnM6ICR7X3N5c3RlbUluY2x1ZGVEaXJzfSIpCisJZW5kaWYoKQorCXNldCAoJHtf
c3lzdGVtSW5jbHVkZURpcnNWYXJ9ICR7X3N5c3RlbUluY2x1ZGVEaXJzfSBQQVJFTlRfU0NPUEUp
CitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfZ2V0X3RhcmdldF9leHBvcnRfc3lt
Ym9sIF90YXJnZXQgX2V4cG9ydFN5bWJvbFZhcikKKwlzZXQgKF9leHBvcnRTeW1ib2wgIiIpCisJ
Z2V0X3RhcmdldF9wcm9wZXJ0eShfdGFyZ2V0VHlwZSAke190YXJnZXR9IFRZUEUpCisJZ2V0X3Rh
cmdldF9wcm9wZXJ0eShfZW5hYmxlRXhwb3J0cyAke190YXJnZXR9IEVOQUJMRV9FWFBPUlRTKQor
CWlmIChfdGFyZ2V0VHlwZSBNQVRDSEVTICIoU0hBUkVEfE1PRFVMRSlfTElCUkFSWSIgT1IKKwkJ
KF90YXJnZXRUeXBlIFNUUkVRVUFMICJFWEVDVVRBQkxFIiBBTkQgX2VuYWJsZUV4cG9ydHMpKQor
CQlnZXRfdGFyZ2V0X3Byb3BlcnR5KF9leHBvcnRTeW1ib2wgJHtfdGFyZ2V0fSBERUZJTkVfU1lN
Qk9MKQorCQlpZiAoTk9UIF9leHBvcnRTeW1ib2wpCisJCQlzZXQgKF9leHBvcnRTeW1ib2wgIiR7
X3RhcmdldH1fRVhQT1JUUyIpCisJCWVuZGlmKCkKKwkJc3RyaW5nIChNQUtFX0NfSURFTlRJRklF
UiAiJHtfZXhwb3J0U3ltYm9sfSIgX2V4cG9ydFN5bWJvbCkKKwllbmRpZigpCisJc2V0ICgke19l
eHBvcnRTeW1ib2xWYXJ9ICR7X2V4cG9ydFN5bWJvbH0gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rp
b24oKQorCitmdW5jdGlvbiAoY290aXJlX2dldF90YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyBf
Y29uZmlnIF9sYW5ndWFnZSBfdGFyZ2V0IF9kZWZpbml0aW9uc1ZhcikKKwlzdHJpbmcgKFRPVVBQ
RVIgIiR7X2NvbmZpZ30iIF91cHBlckNvbmZpZykKKwlzZXQgKF9jb25maWdEZWZpbml0aW9ucyAi
IikKKwkjIENNQUtFX0lOVERJUiBmb3IgbXVsdGktY29uZmlndXJhdGlvbiBidWlsZCBzeXN0ZW1z
CisJaWYgKE5PVCAiJHtDTUFLRV9DRkdfSU5URElSfSIgU1RSRVFVQUwgIi4iKQorCQlsaXN0IChB
UFBFTkQgX2NvbmZpZ0RlZmluaXRpb25zICJDTUFLRV9JTlRESVI9XCIke19jb25maWd9XCIiKQor
CWVuZGlmKCkKKwkjIHRhcmdldCBleHBvcnQgZGVmaW5lIHN5bWJvbAorCWNvdGlyZV9nZXRfdGFy
Z2V0X2V4cG9ydF9zeW1ib2woIiR7X3RhcmdldH0iIF9kZWZpbmVTeW1ib2wpCisJaWYgKF9kZWZp
bmVTeW1ib2wpCisJCWxpc3QgKEFQUEVORCBfY29uZmlnRGVmaW5pdGlvbnMgIiR7X2RlZmluZVN5
bWJvbH0iKQorCWVuZGlmKCkKKwkjIGRpcmVjdG9yeSBjb21waWxlIGRlZmluaXRpb25zCisJZ2V0
X2RpcmVjdG9yeV9wcm9wZXJ0eShfZGVmaW5pdGlvbnMgRElSRUNUT1JZICIke0NNQUtFX0NVUlJF
TlRfU09VUkNFX0RJUn0iIENPTVBJTEVfREVGSU5JVElPTlMpCisJaWYgKF9kZWZpbml0aW9ucykK
KwkJbGlzdCAoQVBQRU5EIF9jb25maWdEZWZpbml0aW9ucyAke19kZWZpbml0aW9uc30pCisJZW5k
aWYoKQorCWdldF9kaXJlY3RvcnlfcHJvcGVydHkoX2RlZmluaXRpb25zIERJUkVDVE9SWSAiJHtD
TUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9IiBDT01QSUxFX0RFRklOSVRJT05TXyR7X3VwcGVyQ29u
ZmlnfSkKKwlpZiAoX2RlZmluaXRpb25zKQorCQlsaXN0IChBUFBFTkQgX2NvbmZpZ0RlZmluaXRp
b25zICR7X2RlZmluaXRpb25zfSkKKwllbmRpZigpCisJIyB0YXJnZXQgY29tcGlsZSBkZWZpbml0
aW9ucworCWdldF90YXJnZXRfcHJvcGVydHkoX2RlZmluaXRpb25zICR7X3RhcmdldH0gQ09NUElM
RV9ERUZJTklUSU9OUykKKwlpZiAoX2RlZmluaXRpb25zKQorCQlsaXN0IChBUFBFTkQgX2NvbmZp
Z0RlZmluaXRpb25zICR7X2RlZmluaXRpb25zfSkKKwllbmRpZigpCisJZ2V0X3RhcmdldF9wcm9w
ZXJ0eShfZGVmaW5pdGlvbnMgJHtfdGFyZ2V0fSBDT01QSUxFX0RFRklOSVRJT05TXyR7X3VwcGVy
Q29uZmlnfSkKKwlpZiAoX2RlZmluaXRpb25zKQorCQlsaXN0IChBUFBFTkQgX2NvbmZpZ0RlZmlu
aXRpb25zICR7X2RlZmluaXRpb25zfSkKKwllbmRpZigpCisJIyBpbnRlcmZhY2UgY29tcGlsZSBk
ZWZpbml0aW9ucyBmcm9tIGxpbmtlZCBsaWJyYXJ5IHRhcmdldHMKKwlzZXQgKF9saW5rZWRUYXJn
ZXRzICIiKQorCWNvdGlyZV9nZXRfdGFyZ2V0X3VzYWdlX3JlcXVpcmVtZW50cygke190YXJnZXR9
ICR7X2NvbmZpZ30gX2xpbmtlZFRhcmdldHMpCisJZm9yZWFjaCAoX2xpbmtlZFRhcmdldCAke19s
aW5rZWRUYXJnZXRzfSkKKwkJZ2V0X3RhcmdldF9wcm9wZXJ0eShfZGVmaW5pdGlvbnMgJHtfbGlu
a2VkVGFyZ2V0fSBJTlRFUkZBQ0VfQ09NUElMRV9ERUZJTklUSU9OUykKKwkJaWYgKF9kZWZpbml0
aW9ucykKKwkJCWxpc3QgKEFQUEVORCBfY29uZmlnRGVmaW5pdGlvbnMgJHtfZGVmaW5pdGlvbnN9
KQorCQllbmRpZigpCisJZW5kZm9yZWFjaCgpCisJIyBwYXJzZSBhZGRpdGlvbmFsIGNvbXBpbGUg
ZGVmaW5pdGlvbnMgZnJvbSB0YXJnZXQgY29tcGlsZSBmbGFncworCSMgYW5kIGRvbid0IGxvb2sg
YXQgZGlyZWN0b3J5IGNvbXBpbGUgZGVmaW5pdGlvbnMsIHdoaWNoIHdlIGFscmVhZHkgaGFuZGxl
ZAorCXNldCAoX3RhcmdldEZsYWdzICIiKQorCWNvdGlyZV9nZXRfdGFyZ2V0X2NvbXBpbGVfZmxh
Z3MoIiR7X2NvbmZpZ30iICIke19sYW5ndWFnZX0iICIke190YXJnZXR9IiBfdGFyZ2V0RmxhZ3Mp
CisJY290aXJlX2ZpbHRlcl9jb21waWxlX2ZsYWdzKCIke19sYW5ndWFnZX0iICJEIiBfZGVmaW5p
dGlvbnMgX2lnbm9yZSAke190YXJnZXRGbGFnc30pCisJaWYgKF9kZWZpbml0aW9ucykKKwkJbGlz
dCAoQVBQRU5EIF9jb25maWdEZWZpbml0aW9ucyAke19kZWZpbml0aW9uc30pCisJZW5kaWYoKQor
CWxpc3QgKFJFTU9WRV9EVVBMSUNBVEVTIF9jb25maWdEZWZpbml0aW9ucykKKwlpZiAoQ09USVJF
X0RFQlVHIEFORCBfY29uZmlnRGVmaW5pdGlvbnMpCisJCW1lc3NhZ2UgKFNUQVRVUyAiVGFyZ2V0
ICR7X3RhcmdldH0gY29tcGlsZSBkZWZpbml0aW9uczogJHtfY29uZmlnRGVmaW5pdGlvbnN9IikK
KwllbmRpZigpCisJc2V0ICgke19kZWZpbml0aW9uc1Zhcn0gJHtfY29uZmlnRGVmaW5pdGlvbnN9
IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9nZXRfdGFy
Z2V0X2NvbXBpbGVyX2ZsYWdzIF9jb25maWcgX2xhbmd1YWdlIF90YXJnZXQgX2NvbXBpbGVyRmxh
Z3NWYXIpCisJIyBwYXJzZSB0YXJnZXQgY29tcGlsZSBmbGFncyBvbWl0dGluZyBjb21waWxlIGRl
ZmluaXRpb25zIGFuZCBpbmNsdWRlIGRpcmVjdGl2ZXMKKwlzZXQgKF90YXJnZXRGbGFncyAiIikK
Kwljb3RpcmVfZ2V0X3RhcmdldF9jb21waWxlX2ZsYWdzKCIke19jb25maWd9IiAiJHtfbGFuZ3Vh
Z2V9IiAiJHtfdGFyZ2V0fSIgX3RhcmdldEZsYWdzKQorCXNldCAoX2ZsYWdGaWx0ZXIgIkQiKQor
CWlmIChDTUFLRV9JTkNMVURFX0ZMQUdfJHtfbGFuZ3VhZ2V9KQorCQlzdHJpbmcgKFNUUklQICIk
e0NNQUtFX0lOQ0xVREVfRkxBR18ke19sYW5ndWFnZX19IiBfaW5jbHVkZUZsYWcpCisJCXN0cmlu
ZyAoUkVHRVggUkVQTEFDRSAiXlstL10rIiAiIiBfaW5jbHVkZUZsYWcgIiR7X2luY2x1ZGVGbGFn
fSIpCisJCWlmIChfaW5jbHVkZUZsYWcpCisJCQlzZXQgKF9mbGFnRmlsdGVyICIke19mbGFnRmls
dGVyfXwke19pbmNsdWRlRmxhZ30iKQorCQllbmRpZigpCisJZW5kaWYoKQorCWlmIChDTUFLRV9J
TkNMVURFX1NZU1RFTV9GTEFHXyR7X2xhbmd1YWdlfSkKKwkJc3RyaW5nIChTVFJJUCAiJHtDTUFL
RV9JTkNMVURFX1NZU1RFTV9GTEFHXyR7X2xhbmd1YWdlfX0iIF9pbmNsdWRlRmxhZykKKwkJc3Ry
aW5nIChSRUdFWCBSRVBMQUNFICJeWy0vXSsiICIiIF9pbmNsdWRlRmxhZyAiJHtfaW5jbHVkZUZs
YWd9IikKKwkJaWYgKF9pbmNsdWRlRmxhZykKKwkJCXNldCAoX2ZsYWdGaWx0ZXIgIiR7X2ZsYWdG
aWx0ZXJ9fCR7X2luY2x1ZGVGbGFnfSIpCisJCWVuZGlmKCkKKwllbmRpZigpCisJc2V0IChfY29t
cGlsZXJGbGFncyAiIikKKwljb3RpcmVfZmlsdGVyX2NvbXBpbGVfZmxhZ3MoIiR7X2xhbmd1YWdl
fSIgIiR7X2ZsYWdGaWx0ZXJ9IiBfaWdub3JlIF9jb21waWxlckZsYWdzICR7X3RhcmdldEZsYWdz
fSkKKwlpZiAoQ09USVJFX0RFQlVHIEFORCBfY29tcGlsZXJGbGFncykKKwkJbWVzc2FnZSAoU1RB
VFVTICJUYXJnZXQgJHtfdGFyZ2V0fSBjb21waWxlciBmbGFnczogJHtfY29tcGlsZXJGbGFnc30i
KQorCWVuZGlmKCkKKwlzZXQgKCR7X2NvbXBpbGVyRmxhZ3NWYXJ9ICR7X2NvbXBpbGVyRmxhZ3N9
IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9hZGRfc3lz
X3Jvb3RfcGF0aHMgX3BhdGhzVmFyKQorCWlmIChBUFBMRSkKKwkJaWYgKENNQUtFX09TWF9TWVNS
T09UIEFORCBDTUFLRV8ke19sYW5ndWFnZX1fSEFTX0lTWVNST09UKQorCQkJZm9yZWFjaCAoX3Bh
dGggSU4gTElTVFMgJHtfcGF0aHNWYXJ9KQorCQkJCWlmIChJU19BQlNPTFVURSAiJHtfcGF0aH0i
KQorCQkJCQlnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9wYXRoICIke0NNQUtFX09TWF9TWVNST09U
fS8ke19wYXRofSIgQUJTT0xVVEUpCisJCQkJCWlmIChFWElTVFMgIiR7X3BhdGh9IikKKwkJCQkJ
CWxpc3QgKEFQUEVORCAke19wYXRoc1Zhcn0gIiR7X3BhdGh9IikKKwkJCQkJZW5kaWYoKQorCQkJ
CWVuZGlmKCkKKwkJCWVuZGZvcmVhY2goKQorCQllbmRpZigpCisJZW5kaWYoKQorCXNldCAoJHtf
cGF0aHNWYXJ9ICR7JHtfcGF0aHNWYXJ9fSBQQVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCisK
K2Z1bmN0aW9uIChjb3RpcmVfZ2V0X3NvdXJjZV9leHRyYV9wcm9wZXJ0aWVzIF9zb3VyY2VGaWxl
IF9wYXR0ZXJuIF9yZXN1bHRWYXIpCisJc2V0IChfZXh0cmFQcm9wZXJ0aWVzICR7QVJHTn0pCisJ
c2V0IChfcmVzdWx0ICIiKQorCWlmIChfZXh0cmFQcm9wZXJ0aWVzKQorCQlsaXN0IChGSU5EIF9l
eHRyYVByb3BlcnRpZXMgIiR7X3NvdXJjZUZpbGV9IiBfaW5kZXgpCisJCWlmIChfaW5kZXggR1JF
QVRFUiAtMSkKKwkJCW1hdGggKEVYUFIgX2luZGV4ICIke19pbmRleH0gKyAxIikKKwkJCWxpc3Qg
KExFTkdUSCBfZXh0cmFQcm9wZXJ0aWVzIF9sZW4pCisJCQltYXRoIChFWFBSIF9sZW4gIiR7X2xl
bn0gLSAxIikKKwkJCWZvcmVhY2ggKF9pbmRleCBSQU5HRSAke19pbmRleH0gJHtfbGVufSkKKwkJ
CQlsaXN0IChHRVQgX2V4dHJhUHJvcGVydGllcyAke19pbmRleH0gX3ZhbHVlKQorCQkJCWlmIChf
dmFsdWUgTUFUQ0hFUyAiJHtfcGF0dGVybn0iKQorCQkJCQlsaXN0IChBUFBFTkQgX3Jlc3VsdCAi
JHtfdmFsdWV9IikKKwkJCQllbHNlKCkKKwkJCQkJYnJlYWsoKQorCQkJCWVuZGlmKCkKKwkJCWVu
ZGZvcmVhY2goKQorCQllbmRpZigpCisJZW5kaWYoKQorCXNldCAoJHtfcmVzdWx0VmFyfSAke19y
ZXN1bHR9IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9n
ZXRfc291cmNlX2NvbXBpbGVfZGVmaW5pdGlvbnMgX2NvbmZpZyBfbGFuZ3VhZ2UgX3NvdXJjZUZp
bGUgX2RlZmluaXRpb25zVmFyKQorCXNldCAoX2NvbXBpbGVEZWZpbml0aW9ucyAiIikKKwlpZiAo
Tk9UIENNQUtFX1NDUklQVF9NT0RFX0ZJTEUpCisJCXN0cmluZyAoVE9VUFBFUiAiJHtfY29uZmln
fSIgX3VwcGVyQ29uZmlnKQorCQlnZXRfc291cmNlX2ZpbGVfcHJvcGVydHkoX2RlZmluaXRpb25z
ICIke19zb3VyY2VGaWxlfSIgQ09NUElMRV9ERUZJTklUSU9OUykKKwkJaWYgKF9kZWZpbml0aW9u
cykKKwkJCWxpc3QgKEFQUEVORCBfY29tcGlsZURlZmluaXRpb25zICR7X2RlZmluaXRpb25zfSkK
KwkJZW5kaWYoKQorCQlnZXRfc291cmNlX2ZpbGVfcHJvcGVydHkoX2RlZmluaXRpb25zICIke19z
b3VyY2VGaWxlfSIgQ09NUElMRV9ERUZJTklUSU9OU18ke191cHBlckNvbmZpZ30pCisJCWlmIChf
ZGVmaW5pdGlvbnMpCisJCQlsaXN0IChBUFBFTkQgX2NvbXBpbGVEZWZpbml0aW9ucyAke19kZWZp
bml0aW9uc30pCisJCWVuZGlmKCkKKwllbmRpZigpCisJY290aXJlX2dldF9zb3VyY2VfZXh0cmFf
cHJvcGVydGllcygiJHtfc291cmNlRmlsZX0iICJeW2EtekEtWjAtOV9dKyg9LiopPyQiIF9kZWZp
bml0aW9ucyAke0FSR059KQorCWlmIChfZGVmaW5pdGlvbnMpCisJCWxpc3QgKEFQUEVORCBfY29t
cGlsZURlZmluaXRpb25zICR7X2RlZmluaXRpb25zfSkKKwllbmRpZigpCisJaWYgKENPVElSRV9E
RUJVRyBBTkQgX2NvbXBpbGVEZWZpbml0aW9ucykKKwkJbWVzc2FnZSAoU1RBVFVTICJTb3VyY2Ug
JHtfc291cmNlRmlsZX0gY29tcGlsZSBkZWZpbml0aW9uczogJHtfY29tcGlsZURlZmluaXRpb25z
fSIpCisJZW5kaWYoKQorCXNldCAoJHtfZGVmaW5pdGlvbnNWYXJ9ICR7X2NvbXBpbGVEZWZpbml0
aW9uc30gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX2dl
dF9zb3VyY2VfZmlsZXNfY29tcGlsZV9kZWZpbml0aW9ucyBfY29uZmlnIF9sYW5ndWFnZSBfZGVm
aW5pdGlvbnNWYXIpCisJc2V0IChfY29uZmlnRGVmaW5pdGlvbnMgIiIpCisJZm9yZWFjaCAoX3Nv
dXJjZUZpbGUgJHtBUkdOfSkKKwkJY290aXJlX2dldF9zb3VyY2VfY29tcGlsZV9kZWZpbml0aW9u
cygiJHtfY29uZmlnfSIgIiR7X2xhbmd1YWdlfSIgIiR7X3NvdXJjZUZpbGV9IiBfc291cmNlRGVm
aW5pdGlvbnMpCisJCWlmIChfc291cmNlRGVmaW5pdGlvbnMpCisJCQlsaXN0IChBUFBFTkQgX2Nv
bmZpZ0RlZmluaXRpb25zICIke19zb3VyY2VGaWxlfSIgJHtfc291cmNlRGVmaW5pdGlvbnN9ICIt
IikKKwkJZW5kaWYoKQorCWVuZGZvcmVhY2goKQorCXNldCAoJHtfZGVmaW5pdGlvbnNWYXJ9ICR7
X2NvbmZpZ0RlZmluaXRpb25zfSBQQVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0
aW9uIChjb3RpcmVfZ2V0X3NvdXJjZV91bmRlZnMgX3NvdXJjZUZpbGUgX3Byb3BlcnR5IF9zb3Vy
Y2VVbmRlZnNWYXIpCisJc2V0IChfc291cmNlVW5kZWZzICIiKQorCWlmIChOT1QgQ01BS0VfU0NS
SVBUX01PREVfRklMRSkKKwkJZ2V0X3NvdXJjZV9maWxlX3Byb3BlcnR5KF91bmRlZnMgIiR7X3Nv
dXJjZUZpbGV9IiAke19wcm9wZXJ0eX0pCisJCWlmIChfdW5kZWZzKQorCQkJbGlzdCAoQVBQRU5E
IF9zb3VyY2VVbmRlZnMgJHtfdW5kZWZzfSkKKwkJZW5kaWYoKQorCWVuZGlmKCkKKwljb3RpcmVf
Z2V0X3NvdXJjZV9leHRyYV9wcm9wZXJ0aWVzKCIke19zb3VyY2VGaWxlfSIgIl5bYS16QS1aMC05
X10rJCIgX3VuZGVmcyAke0FSR059KQorCWlmIChfdW5kZWZzKQorCQlsaXN0IChBUFBFTkQgX3Nv
dXJjZVVuZGVmcyAke191bmRlZnN9KQorCWVuZGlmKCkKKwlpZiAoQ09USVJFX0RFQlVHIEFORCBf
c291cmNlVW5kZWZzKQorCQltZXNzYWdlIChTVEFUVVMgIlNvdXJjZSAke19zb3VyY2VGaWxlfSAk
e19wcm9wZXJ0eX0gdW5kZWZzOiAke19zb3VyY2VVbmRlZnN9IikKKwllbmRpZigpCisJc2V0ICgk
e19zb3VyY2VVbmRlZnNWYXJ9ICR7X3NvdXJjZVVuZGVmc30gUEFSRU5UX1NDT1BFKQorZW5kZnVu
Y3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX2dldF9zb3VyY2VfZmlsZXNfdW5kZWZzIF9wcm9w
ZXJ0eSBfc291cmNlVW5kZWZzVmFyKQorCXNldCAoX3NvdXJjZVVuZGVmcyAiIikKKwlmb3JlYWNo
IChfc291cmNlRmlsZSAke0FSR059KQorCQljb3RpcmVfZ2V0X3NvdXJjZV91bmRlZnMoIiR7X3Nv
dXJjZUZpbGV9IiAke19wcm9wZXJ0eX0gX3VuZGVmcykKKwkJaWYgKF91bmRlZnMpCisJCQlsaXN0
IChBUFBFTkQgX3NvdXJjZVVuZGVmcyAiJHtfc291cmNlRmlsZX0iICR7X3VuZGVmc30gIi0iKQor
CQllbmRpZigpCisJZW5kZm9yZWFjaCgpCisJc2V0ICgke19zb3VyY2VVbmRlZnNWYXJ9ICR7X3Nv
dXJjZVVuZGVmc30gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCittYWNybyAoY290aXJl
X3NldF9jbWRfdG9fcHJvbG9ndWUgX2NtZFZhcikKKwlzZXQgKCR7X2NtZFZhcn0gIiR7Q01BS0Vf
Q09NTUFORH0iKQorCWlmIChDT1RJUkVfREVCVUcpCisJCWxpc3QgKEFQUEVORCAke19jbWRWYXJ9
ICItLXdhcm4tdW5pbml0aWFsaXplZCIpCisJZW5kaWYoKQorCWxpc3QgKEFQUEVORCAke19jbWRW
YXJ9ICItRENPVElSRV9CVUlMRF9UWVBFOlNUUklORz0kPENPTkZJR1VSQVRJT04+IikKKwlpZiAo
WENPREUpCisJCWxpc3QgKEFQUEVORCAke19jbWRWYXJ9ICItRFhDT0RFOkJPT0w9VFJVRSIpCisJ
ZW5kaWYoKQorCWlmIChDT1RJUkVfVkVSQk9TRSkKKwkJbGlzdCAoQVBQRU5EICR7X2NtZFZhcn0g
Ii1EQ09USVJFX1ZFUkJPU0U6Qk9PTD1PTiIpCisJZWxzZWlmKCIke0NNQUtFX0dFTkVSQVRPUn0i
IE1BVENIRVMgIk1ha2VmaWxlcyIpCisJCWxpc3QgKEFQUEVORCAke19jbWRWYXJ9ICItRENPVElS
RV9WRVJCT1NFOkJPT0w9JChWRVJCT1NFKSIpCisJZW5kaWYoKQorZW5kbWFjcm8oKQorCitmdW5j
dGlvbiAoY290aXJlX2luaXRfY29tcGlsZV9jbWQgX2NtZFZhciBfbGFuZ3VhZ2UgX2NvbXBpbGVy
TGF1bmNoZXIgX2NvbXBpbGVyRXhlIF9jb21waWxlckFyZzEpCisJaWYgKE5PVCBfY29tcGlsZXJM
YXVuY2hlcikKKwkJc2V0IChfY29tcGlsZXJMYXVuY2hlciAke0NNQUtFXyR7X2xhbmd1YWdlfV9D
T01QSUxFUl9MQVVOQ0hFUn0pCisJZW5kaWYoKQorCWlmIChOT1QgX2NvbXBpbGVyRXhlKQorCQlz
ZXQgKF9jb21waWxlckV4ZSAiJHtDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJ9IikKKwllbmRp
ZigpCisJaWYgKE5PVCBfY29tcGlsZXJBcmcxKQorCQlzZXQgKF9jb21waWxlckFyZzEgJHtDTUFL
RV8ke19sYW5ndWFnZX1fQ09NUElMRVJfQVJHMX0pCisJZW5kaWYoKQorCXN0cmluZyAoU1RSSVAg
IiR7X2NvbXBpbGVyQXJnMX0iIF9jb21waWxlckFyZzEpCisJaWYgKCIke0NNQUtFX0dFTkVSQVRP
Un0iIE1BVENIRVMgIk1ha2V8TmluamEiKQorCQkjIGNvbXBpbGVyIGxhdW5jaGVyIGlzIG9ubHkg
c3VwcG9ydGVkIGZvciBNYWtlZmlsZSBhbmQgTmluamEKKwkJc2V0ICgke19jbWRWYXJ9ICR7X2Nv
bXBpbGVyTGF1bmNoZXJ9ICIke19jb21waWxlckV4ZX0iICR7X2NvbXBpbGVyQXJnMX0gUEFSRU5U
X1NDT1BFKQorCWVsc2UoKQorCQlzZXQgKCR7X2NtZFZhcn0gIiR7X2NvbXBpbGVyRXhlfSIgJHtf
Y29tcGlsZXJBcmcxfSBQQVJFTlRfU0NPUEUpCisJZW5kaWYoKQorZW5kZnVuY3Rpb24oKQorCitt
YWNybyAoY290aXJlX2FkZF9kZWZpbml0aW9uc190b19jbWQgX2NtZFZhciBfbGFuZ3VhZ2UpCisJ
Zm9yZWFjaCAoX2RlZmluaXRpb24gJHtBUkdOfSkKKwkJaWYgKFdJTjMyIEFORCBDTUFLRV8ke19s
YW5ndWFnZX1fQ09NUElMRVJfSUQgTUFUQ0hFUyAiTVNWQ3xJbnRlbCIpCisJCQlsaXN0IChBUFBF
TkQgJHtfY21kVmFyfSAiL0Qke19kZWZpbml0aW9ufSIpCisJCWVsc2UoKQorCQkJbGlzdCAoQVBQ
RU5EICR7X2NtZFZhcn0gIi1EJHtfZGVmaW5pdGlvbn0iKQorCQllbmRpZigpCisJZW5kZm9yZWFj
aCgpCitlbmRtYWNybygpCisKK2Z1bmN0aW9uIChjb3RpcmVfYWRkX2luY2x1ZGVzX3RvX2NtZCBf
Y21kVmFyIF9sYW5ndWFnZSBfaW5jbHVkZXNWYXIgX3N5c3RlbUluY2x1ZGVzVmFyKQorCXNldCAo
X2luY2x1ZGVEaXJzICR7JHtfaW5jbHVkZXNWYXJ9fSAkeyR7X3N5c3RlbUluY2x1ZGVzVmFyfX0p
CisJaWYgKF9pbmNsdWRlRGlycykKKwkJbGlzdCAoUkVNT1ZFX0RVUExJQ0FURVMgX2luY2x1ZGVE
aXJzKQorCQlmb3JlYWNoIChfaW5jbHVkZSAke19pbmNsdWRlRGlyc30pCisJCQlpZiAoV0lOMzIg
QU5EIENNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9JRCBNQVRDSEVTICJNU1ZDfEludGVsIikK
KwkJCQlmaWxlIChUT19OQVRJVkVfUEFUSCAiJHtfaW5jbHVkZX0iIF9pbmNsdWRlKQorCQkJCWxp
c3QgKEFQUEVORCAke19jbWRWYXJ9ICIke0NNQUtFX0lOQ0xVREVfRkxBR18ke19sYW5ndWFnZX19
JHtDTUFLRV9JTkNMVURFX0ZMQUdfU0VQXyR7X2xhbmd1YWdlfX0ke19pbmNsdWRlfSIpCisJCQll
bHNlKCkKKwkJCQlzZXQgKF9pbmRleCAtMSkKKwkJCQlpZiAoIiR7Q01BS0VfSU5DTFVERV9TWVNU
RU1fRkxBR18ke19sYW5ndWFnZX19IiBNQVRDSEVTICIuKyIpCisJCQkJCWxpc3QgKEZJTkQgJHtf
c3lzdGVtSW5jbHVkZXNWYXJ9ICIke19pbmNsdWRlfSIgX2luZGV4KQorCQkJCWVuZGlmKCkKKwkJ
CQlpZiAoX2luZGV4IEdSRUFURVIgLTEpCisJCQkJCWxpc3QgKEFQUEVORCAke19jbWRWYXJ9ICIk
e0NNQUtFX0lOQ0xVREVfU1lTVEVNX0ZMQUdfJHtfbGFuZ3VhZ2V9fSR7Q01BS0VfSU5DTFVERV9G
TEFHX1NFUF8ke19sYW5ndWFnZX19JHtfaW5jbHVkZX0iKQorCQkJCWVsc2UoKQorCQkJCQlsaXN0
IChBUFBFTkQgJHtfY21kVmFyfSAiJHtDTUFLRV9JTkNMVURFX0ZMQUdfJHtfbGFuZ3VhZ2V9fSR7
Q01BS0VfSU5DTFVERV9GTEFHX1NFUF8ke19sYW5ndWFnZX19JHtfaW5jbHVkZX0iKQorCQkJCWVu
ZGlmKCkKKwkJCWVuZGlmKCkKKwkJZW5kZm9yZWFjaCgpCisJZW5kaWYoKQorCXNldCAoJHtfY21k
VmFyfSAkeyR7X2NtZFZhcn19IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rp
b24gKGNvdGlyZV9hZGRfZnJhbWV3b3Jrc190b19jbWQgX2NtZFZhciBfbGFuZ3VhZ2UgX2luY2x1
ZGVzVmFyIF9zeXN0ZW1JbmNsdWRlc1ZhcikKKwlpZiAoQVBQTEUpCisJCXNldCAoX2ZyYW1ld29y
a0RpcnMgIiIpCisJCWZvcmVhY2ggKF9pbmNsdWRlICR7JHtfaW5jbHVkZXNWYXJ9fSkKKwkJCWlm
IChJU19BQlNPTFVURSAiJHtfaW5jbHVkZX0iIEFORCBfaW5jbHVkZSBNQVRDSEVTICJcXC5mcmFt
ZXdvcmskIikKKwkJCQlnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9mcmFtZXdvcmtEaXIgIiR7X2lu
Y2x1ZGV9IiBESVJFQ1RPUlkpCisJCQkJbGlzdCAoQVBQRU5EIF9mcmFtZXdvcmtEaXJzICIke19m
cmFtZXdvcmtEaXJ9IikKKwkJCWVuZGlmKCkKKwkJZW5kZm9yZWFjaCgpCisJCXNldCAoX3N5c3Rl
bUZyYW1ld29ya0RpcnMgIiIpCisJCWZvcmVhY2ggKF9pbmNsdWRlICR7JHtfc3lzdGVtSW5jbHVk
ZXNWYXJ9fSkKKwkJCWlmIChJU19BQlNPTFVURSAiJHtfaW5jbHVkZX0iIEFORCBfaW5jbHVkZSBN
QVRDSEVTICJcXC5mcmFtZXdvcmskIikKKwkJCQlnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9mcmFt
ZXdvcmtEaXIgIiR7X2luY2x1ZGV9IiBESVJFQ1RPUlkpCisJCQkJbGlzdCAoQVBQRU5EIF9zeXN0
ZW1GcmFtZXdvcmtEaXJzICIke19mcmFtZXdvcmtEaXJ9IikKKwkJCWVuZGlmKCkKKwkJZW5kZm9y
ZWFjaCgpCisJCWlmIChfc3lzdGVtRnJhbWV3b3JrRGlycykKKwkJCWxpc3QgKEFQUEVORCBfZnJh
bWV3b3JrRGlycyAke19zeXN0ZW1GcmFtZXdvcmtEaXJzfSkKKwkJZW5kaWYoKQorCQlpZiAoX2Zy
YW1ld29ya0RpcnMpCisJCQlsaXN0IChSRU1PVkVfRFVQTElDQVRFUyBfZnJhbWV3b3JrRGlycykK
KwkJCWZvcmVhY2ggKF9mcmFtZXdvcmtEaXIgJHtfZnJhbWV3b3JrRGlyc30pCisJCQkJc2V0IChf
aW5kZXggLTEpCisJCQkJaWYgKCIke0NNQUtFXyR7X2xhbmd1YWdlfV9TWVNURU1fRlJBTUVXT1JL
X1NFQVJDSF9GTEFHfSIgTUFUQ0hFUyAiLisiKQorCQkJCQlsaXN0IChGSU5EIF9zeXN0ZW1GcmFt
ZXdvcmtEaXJzICIke19mcmFtZXdvcmtEaXJ9IiBfaW5kZXgpCisJCQkJZW5kaWYoKQorCQkJCWlm
IChfaW5kZXggR1JFQVRFUiAtMSkKKwkJCQkJbGlzdCAoQVBQRU5EICR7X2NtZFZhcn0gIiR7Q01B
S0VfJHtfbGFuZ3VhZ2V9X1NZU1RFTV9GUkFNRVdPUktfU0VBUkNIX0ZMQUd9JHtfZnJhbWV3b3Jr
RGlyfSIpCisJCQkJZWxzZSgpCisJCQkJCWxpc3QgKEFQUEVORCAke19jbWRWYXJ9ICIke0NNQUtF
XyR7X2xhbmd1YWdlfV9GUkFNRVdPUktfU0VBUkNIX0ZMQUd9JHtfZnJhbWV3b3JrRGlyfSIpCisJ
CQkJZW5kaWYoKQorCQkJZW5kZm9yZWFjaCgpCisJCWVuZGlmKCkKKwllbmRpZigpCisJc2V0ICgk
e19jbWRWYXJ9ICR7JHtfY21kVmFyfX0gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitt
YWNybyAoY290aXJlX2FkZF9jb21waWxlX2ZsYWdzX3RvX2NtZCBfY21kVmFyKQorCWZvcmVhY2gg
KF9mbGFnICR7QVJHTn0pCisJCWxpc3QgKEFQUEVORCAke19jbWRWYXJ9ICIke19mbGFnfSIpCisJ
ZW5kZm9yZWFjaCgpCitlbmRtYWNybygpCisKK2Z1bmN0aW9uIChjb3RpcmVfY2hlY2tfZmlsZV91
cF90b19kYXRlIF9maWxlSXNVcFRvRGF0ZVZhciBfZmlsZSkKKwlpZiAoRVhJU1RTICIke19maWxl
fSIpCisJCXNldCAoX3RyaWdnZXJGaWxlICIiKQorCQlmb3JlYWNoIChfZGVwZW5kZW5jeUZpbGUg
JHtBUkdOfSkKKwkJCWlmIChFWElTVFMgIiR7X2RlcGVuZGVuY3lGaWxlfSIpCisJCQkJIyBJU19O
RVdFUl9USEFOIHJldHVybnMgVFJVRSBpZiBib3RoIGZpbGVzIGhhdmUgdGhlIHNhbWUgdGltZXN0
YW1wCisJCQkJIyB0aHVzIHdlIGRvIHRoZSBjb21wYXJpc29uIGluIGJvdGggZGlyZWN0aW9ucyB0
byBleGNsdWRlIHRpZXMKKwkJCQlpZiAoIiR7X2RlcGVuZGVuY3lGaWxlfSIgSVNfTkVXRVJfVEhB
TiAiJHtfZmlsZX0iIEFORAorCQkJCQlOT1QgIiR7X2ZpbGV9IiBJU19ORVdFUl9USEFOICIke19k
ZXBlbmRlbmN5RmlsZX0iKQorCQkJCQlzZXQgKF90cmlnZ2VyRmlsZSAiJHtfZGVwZW5kZW5jeUZp
bGV9IikKKwkJCQkJYnJlYWsoKQorCQkJCWVuZGlmKCkKKwkJCWVuZGlmKCkKKwkJZW5kZm9yZWFj
aCgpCisJCWlmIChfdHJpZ2dlckZpbGUpCisJCQlpZiAoQ09USVJFX1ZFUkJPU0UpCisJCQkJZ2V0
X2ZpbGVuYW1lX2NvbXBvbmVudChfZmlsZU5hbWUgIiR7X2ZpbGV9IiBOQU1FKQorCQkJCW1lc3Nh
Z2UgKFNUQVRVUyAiJHtfZmlsZU5hbWV9IHVwZGF0ZSB0cmlnZ2VyZWQgYnkgJHtfdHJpZ2dlckZp
bGV9IGNoYW5nZS4iKQorCQkJZW5kaWYoKQorCQkJc2V0ICgke19maWxlSXNVcFRvRGF0ZVZhcn0g
RkFMU0UgUEFSRU5UX1NDT1BFKQorCQllbHNlKCkKKwkJCWlmIChDT1RJUkVfVkVSQk9TRSkKKwkJ
CQlnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9maWxlTmFtZSAiJHtfZmlsZX0iIE5BTUUpCisJCQkJ
bWVzc2FnZSAoU1RBVFVTICIke19maWxlTmFtZX0gaXMgdXAtdG8tZGF0ZS4iKQorCQkJZW5kaWYo
KQorCQkJc2V0ICgke19maWxlSXNVcFRvRGF0ZVZhcn0gVFJVRSBQQVJFTlRfU0NPUEUpCisJCWVu
ZGlmKCkKKwllbHNlKCkKKwkJaWYgKENPVElSRV9WRVJCT1NFKQorCQkJZ2V0X2ZpbGVuYW1lX2Nv
bXBvbmVudChfZmlsZU5hbWUgIiR7X2ZpbGV9IiBOQU1FKQorCQkJbWVzc2FnZSAoU1RBVFVTICIk
e19maWxlTmFtZX0gZG9lcyBub3QgZXhpc3QgeWV0LiIpCisJCWVuZGlmKCkKKwkJc2V0ICgke19m
aWxlSXNVcFRvRGF0ZVZhcn0gRkFMU0UgUEFSRU5UX1NDT1BFKQorCWVuZGlmKCkKK2VuZGZ1bmN0
aW9uKCkKKworbWFjcm8gKGNvdGlyZV9maW5kX2Nsb3Nlc3RfcmVsYXRpdmVfcGF0aCBfaGVhZGVy
RmlsZSBfaW5jbHVkZURpcnMgX3JlbFBhdGhWYXIpCisJc2V0ICgke19yZWxQYXRoVmFyfSAiIikK
Kwlmb3JlYWNoIChfaW5jbHVkZURpciAke19pbmNsdWRlRGlyc30pCisJCWlmIChJU19ESVJFQ1RP
UlkgIiR7X2luY2x1ZGVEaXJ9IikKKwkJCWZpbGUgKFJFTEFUSVZFX1BBVEggX3JlbFBhdGggIiR7
X2luY2x1ZGVEaXJ9IiAiJHtfaGVhZGVyRmlsZX0iKQorCQkJaWYgKE5PVCBJU19BQlNPTFVURSAi
JHtfcmVsUGF0aH0iIEFORCBOT1QgIiR7X3JlbFBhdGh9IiBNQVRDSEVTICJeXFwuXFwuIikKKwkJ
CQlzdHJpbmcgKExFTkdUSCAiJHske19yZWxQYXRoVmFyfX0iIF9jbG9zZXN0TGVuKQorCQkJCXN0
cmluZyAoTEVOR1RIICIke19yZWxQYXRofSIgX3JlbExlbikKKwkJCQlpZiAoX2Nsb3Nlc3RMZW4g
RVFVQUwgMCBPUiBfcmVsTGVuIExFU1MgX2Nsb3Nlc3RMZW4pCisJCQkJCXNldCAoJHtfcmVsUGF0
aFZhcn0gIiR7X3JlbFBhdGh9IikKKwkJCQllbmRpZigpCisJCQllbmRpZigpCisJCWVsc2VpZiAo
IiR7X2luY2x1ZGVEaXJ9IiBTVFJFUVVBTCAiJHtfaGVhZGVyRmlsZX0iKQorCQkJIyBpZiBwYXRo
IG1hdGNoZXMgZXhhY3RseSwgcmV0dXJuIHNob3J0IG5vbi1lbXB0eSBzdHJpbmcKKwkJCXNldCAo
JHtfcmVsUGF0aFZhcn0gIjEiKQorCQkJYnJlYWsoKQorCQllbmRpZigpCisJZW5kZm9yZWFjaCgp
CitlbmRtYWNybygpCisKK21hY3JvIChjb3RpcmVfY2hlY2tfaGVhZGVyX2ZpbGVfbG9jYXRpb24g
X2hlYWRlckZpbGUgX2luc2lkZUluY2x1ZGVEaXJzIF9vdXRzaWRlSW5jbHVkZURpcnMgX2hlYWRl
cklzSW5zaWRlKQorCSMgY2hlY2sgaGVhZGVyIHBhdGggYWdhaW5zdCBpZ25vcmVkIGFuZCBob25v
cmVkIGluY2x1ZGUgZGlyZWN0b3JpZXMKKwljb3RpcmVfZmluZF9jbG9zZXN0X3JlbGF0aXZlX3Bh
dGgoIiR7X2hlYWRlckZpbGV9IiAiJHtfaW5zaWRlSW5jbHVkZURpcnN9IiBfaW5zaWRlUmVsUGF0
aCkKKwlpZiAoX2luc2lkZVJlbFBhdGgpCisJCSMgaGVhZGVyIGlzIGluc2lkZSwgYnV0IGNvdWxk
IGJlIGJlY29tZSBvdXRzaWRlIGlmIHRoZXJlIGlzIGEgc2hvcnRlciBvdXRzaWRlIG1hdGNoCisJ
CWNvdGlyZV9maW5kX2Nsb3Nlc3RfcmVsYXRpdmVfcGF0aCgiJHtfaGVhZGVyRmlsZX0iICIke19v
dXRzaWRlSW5jbHVkZURpcnN9IiBfb3V0c2lkZVJlbFBhdGgpCisJCWlmIChfb3V0c2lkZVJlbFBh
dGgpCisJCQlzdHJpbmcgKExFTkdUSCAiJHtfaW5zaWRlUmVsUGF0aH0iIF9pbnNpZGVSZWxQYXRo
TGVuKQorCQkJc3RyaW5nIChMRU5HVEggIiR7X291dHNpZGVSZWxQYXRofSIgX291dHNpZGVSZWxQ
YXRoTGVuKQorCQkJaWYgKF9vdXRzaWRlUmVsUGF0aExlbiBMRVNTIF9pbnNpZGVSZWxQYXRoTGVu
KQorCQkJCXNldCAoJHtfaGVhZGVySXNJbnNpZGV9IEZBTFNFKQorCQkJZWxzZSgpCisJCQkJc2V0
ICgke19oZWFkZXJJc0luc2lkZX0gVFJVRSkKKwkJCWVuZGlmKCkKKwkJZWxzZSgpCisJCQlzZXQg
KCR7X2hlYWRlcklzSW5zaWRlfSBUUlVFKQorCQllbmRpZigpCisJZWxzZSgpCisJCSMgaGVhZGVy
IGlzIG91dHNpZGUKKwkJc2V0ICgke19oZWFkZXJJc0luc2lkZX0gRkFMU0UpCisJZW5kaWYoKQor
ZW5kbWFjcm8oKQorCittYWNybyAoY290aXJlX2NoZWNrX2lnbm9yZV9oZWFkZXJfZmlsZV9wYXRo
IF9oZWFkZXJGaWxlIF9oZWFkZXJJc0lnbm9yZWRWYXIpCisJaWYgKE5PVCBFWElTVFMgIiR7X2hl
YWRlckZpbGV9IikKKwkJc2V0ICgke19oZWFkZXJJc0lnbm9yZWRWYXJ9IFRSVUUpCisJZWxzZWlm
IChJU19ESVJFQ1RPUlkgIiR7X2hlYWRlckZpbGV9IikKKwkJc2V0ICgke19oZWFkZXJJc0lnbm9y
ZWRWYXJ9IFRSVUUpCisJZWxzZWlmICgiJHtfaGVhZGVyRmlsZX0iIE1BVENIRVMgIlxcLlxcLnxb
Xy1dZml4ZWQiIEFORCAiJHtfaGVhZGVyRmlsZX0iIE1BVENIRVMgIlxcLmgkIikKKwkJIyBoZXVy
aXN0aWM6IGlnbm9yZSBDIGhlYWRlcnMgd2l0aCBlbWJlZGRlZCBwYXJlbnQgZGlyZWN0b3J5IHJl
ZmVyZW5jZXMgb3IgIi1maXhlZCIgb3IgIl9maXhlZCIgaW4gcGF0aAorCQkjIHRoZXNlIG9mdGVu
IHN0ZW0gZnJvbSB1c2luZyBHQ0MgI2luY2x1ZGVfbmV4dCB0cmlja3MsIHdoaWNoIG1heSBicmVh
ayB0aGUgcHJlY29tcGlsZWQgaGVhZGVyIGNvbXBpbGF0aW9uCisJCSMgd2l0aCB0aGUgZXJyb3Ig
bWVzc2FnZSAiZXJyb3I6IG5vIGluY2x1ZGUgcGF0aCBpbiB3aGljaCB0byBzZWFyY2ggZm9yIGhl
YWRlci5oIgorCQlzZXQgKCR7X2hlYWRlcklzSWdub3JlZFZhcn0gVFJVRSkKKwllbHNlKCkKKwkJ
c2V0ICgke19oZWFkZXJJc0lnbm9yZWRWYXJ9IEZBTFNFKQorCWVuZGlmKCkKK2VuZG1hY3JvKCkK
KworbWFjcm8gKGNvdGlyZV9jaGVja19pZ25vcmVfaGVhZGVyX2ZpbGVfZXh0IF9oZWFkZXJGaWxl
IF9pZ25vcmVFeHRlbnNpb25zVmFyIF9oZWFkZXJJc0lnbm9yZWRWYXIpCisJIyBjaGVjayBoZWFk
ZXIgZmlsZSBleHRlbnNpb24KKwljb3RpcmVfZ2V0X3NvdXJjZV9maWxlX2V4dGVuc2lvbigiJHtf
aGVhZGVyRmlsZX0iIF9oZWFkZXJGaWxlRXh0KQorCXNldCAoJHtfaGVhZGVySXNJZ25vcmVkVmFy
fSBGQUxTRSkKKwlpZiAoX2hlYWRlckZpbGVFeHQpCisJCWxpc3QgKEZJTkQgJHtfaWdub3JlRXh0
ZW5zaW9uc1Zhcn0gIiR7X2hlYWRlckZpbGVFeHR9IiBfaW5kZXgpCisJCWlmIChfaW5kZXggR1JF
QVRFUiAtMSkKKwkJCXNldCAoJHtfaGVhZGVySXNJZ25vcmVkVmFyfSBUUlVFKQorCQllbmRpZigp
CisJZW5kaWYoKQorZW5kbWFjcm8oKQorCittYWNybyAoY290aXJlX3BhcnNlX2xpbmUgX2xpbmUg
X2hlYWRlckZpbGVWYXIgX2hlYWRlckRlcHRoVmFyKQorCWlmIChNU1ZDKQorCQkjIGNsLmV4ZSAv
c2hvd0luY2x1ZGVzIG91dHB1dCBsb29rcyBkaWZmZXJlbnQgZGVwZW5kaW5nIG9uIHRoZSBsYW5n
dWFnZSBwYWNrIHVzZWQsIGUuZy46CisJCSMgRW5nbGlzaDogIk5vdGU6IGluY2x1ZGluZyBmaWxl
OiAgIEM6XGRpcmVjdG9yeVxmaWxlIgorCQkjIEdlcm1hbjogIkhpbndlaXM6IEVpbmxlc2VuIGRl
ciBEYXRlaTogICBDOlxkaXJlY3RvcnlcZmlsZSIKKwkJIyBXZSB1c2UgYSB2ZXJ5IGdlbmVyYWwg
cmVndWxhciBleHByZXNzaW9uLCByZWx5aW5nIG9uIHRoZSBwcmVzZW5jZSBvZiB0aGUgOiBjaGFy
YWN0ZXJzCisJCWlmIChfbGluZSBNQVRDSEVTICIoICspKFthLXpBLVpdOlteOl0rKSQiKQorCQkJ
IyBWaXN1YWwgU3R1ZGlvIGNvbXBpbGVyIG91dHB1dAorCQkJc3RyaW5nIChMRU5HVEggIiR7Q01B
S0VfTUFUQ0hfMX0iICR7X2hlYWRlckRlcHRoVmFyfSkKKwkJCWdldF9maWxlbmFtZV9jb21wb25l
bnQoJHtfaGVhZGVyRmlsZVZhcn0gIiR7Q01BS0VfTUFUQ0hfMn0iIEFCU09MVVRFKQorCQllbHNl
KCkKKwkJCXNldCAoJHtfaGVhZGVyRmlsZVZhcn0gIiIpCisJCQlzZXQgKCR7X2hlYWRlckRlcHRo
VmFyfSAwKQorCQllbmRpZigpCisJZWxzZSgpCisJCWlmIChfbGluZSBNQVRDSEVTICJeKFxcLisp
ICguKikkIikKKwkJCSMgR0NDIGxpa2Ugb3V0cHV0CisJCQlzdHJpbmcgKExFTkdUSCAiJHtDTUFL
RV9NQVRDSF8xfSIgJHtfaGVhZGVyRGVwdGhWYXJ9KQorCQkJaWYgKElTX0FCU09MVVRFICIke0NN
QUtFX01BVENIXzJ9IikKKwkJCQlzZXQgKCR7X2hlYWRlckZpbGVWYXJ9ICIke0NNQUtFX01BVENI
XzJ9IikKKwkJCWVsc2UoKQorCQkJCWdldF9maWxlbmFtZV9jb21wb25lbnQoJHtfaGVhZGVyRmls
ZVZhcn0gIiR7Q01BS0VfTUFUQ0hfMn0iIFJFQUxQQVRIKQorCQkJZW5kaWYoKQorCQllbHNlKCkK
KwkJCXNldCAoJHtfaGVhZGVyRmlsZVZhcn0gIiIpCisJCQlzZXQgKCR7X2hlYWRlckRlcHRoVmFy
fSAwKQorCQllbmRpZigpCisJZW5kaWYoKQorZW5kbWFjcm8oKQorCitmdW5jdGlvbiAoY290aXJl
X3BhcnNlX2luY2x1ZGVzIF9sYW5ndWFnZSBfc2Nhbk91dHB1dCBfaWdub3JlZEluY2x1ZGVEaXJz
IF9ob25vcmVkSW5jbHVkZURpcnMgX2lnbm9yZWRFeHRlbnNpb25zIF9zZWxlY3RlZEluY2x1ZGVz
VmFyIF91bnBhcnNlZExpbmVzVmFyKQorCWlmIChXSU4zMikKKwkJIyBwcmV2ZW50IENNYWtlIG1h
Y3JvIGludm9jYXRpb24gZXJyb3JzIGR1ZSB0byBiYWNrc2xhc2ggY2hhcmFjdGVycyBpbiBXaW5k
b3dzIHBhdGhzCisJCXN0cmluZyAoUkVQTEFDRSAiXFwiICIvIiBfc2Nhbk91dHB1dCAiJHtfc2Nh
bk91dHB1dH0iKQorCWVuZGlmKCkKKwkjIGNhbm9uaXplIHNsYXNoZXMKKwlzdHJpbmcgKFJFUExB
Q0UgIi8vIiAiLyIgX3NjYW5PdXRwdXQgIiR7X3NjYW5PdXRwdXR9IikKKwkjIHByZXZlbnQgc2Vt
aWNvbG9uIGZyb20gYmVpbmcgaW50ZXJwcmV0ZWQgYXMgYSBsaW5lIHNlcGFyYXRvcgorCXN0cmlu
ZyAoUkVQTEFDRSAiOyIgIlxcOyIgX3NjYW5PdXRwdXQgIiR7X3NjYW5PdXRwdXR9IikKKwkjIHRo
ZW4gc2VwYXJhdGUgbGluZXMKKwlzdHJpbmcgKFJFR0VYIFJFUExBQ0UgIlxuIiAiOyIgX3NjYW5P
dXRwdXQgIiR7X3NjYW5PdXRwdXR9IikKKwlsaXN0IChMRU5HVEggX3NjYW5PdXRwdXQgX2xlbikK
KwkjIHJlbW92ZSBkdXBsaWNhdGUgbGluZXMgdG8gc3BlZWQgdXAgcGFyc2luZworCWxpc3QgKFJF
TU9WRV9EVVBMSUNBVEVTIF9zY2FuT3V0cHV0KQorCWxpc3QgKExFTkdUSCBfc2Nhbk91dHB1dCBf
dW5pcXVlTGVuKQorCWlmIChDT1RJUkVfVkVSQk9TRSBPUiBDT1RJUkVfREVCVUcpCisJCW1lc3Nh
Z2UgKFNUQVRVUyAiU2Nhbm5pbmcgJHtfdW5pcXVlTGVufSB1bmlxdWUgbGluZXMgb2YgJHtfbGVu
fSBmb3IgaW5jbHVkZXMiKQorCQlpZiAoX2lnbm9yZWRFeHRlbnNpb25zKQorCQkJbWVzc2FnZSAo
U1RBVFVTICJJZ25vcmVkIGV4dGVuc2lvbnM6ICR7X2lnbm9yZWRFeHRlbnNpb25zfSIpCisJCWVu
ZGlmKCkKKwkJaWYgKF9pZ25vcmVkSW5jbHVkZURpcnMpCisJCQltZXNzYWdlIChTVEFUVVMgIkln
bm9yZWQgcGF0aHM6ICR7X2lnbm9yZWRJbmNsdWRlRGlyc30iKQorCQllbmRpZigpCisJCWlmIChf
aG9ub3JlZEluY2x1ZGVEaXJzKQorCQkJbWVzc2FnZSAoU1RBVFVTICJJbmNsdWRlZCBwYXRoczog
JHtfaG9ub3JlZEluY2x1ZGVEaXJzfSIpCisJCWVuZGlmKCkKKwllbmRpZigpCisJc2V0IChfc291
cmNlRmlsZXMgJHtBUkdOfSkKKwlzZXQgKF9zZWxlY3RlZEluY2x1ZGVzICIiKQorCXNldCAoX3Vu
cGFyc2VkTGluZXMgIiIpCisJIyBzdGFjayBrZWVwcyB0cmFjayBvZiBpbnNpZGUvb3V0c2lkZSBw
cm9qZWN0IHN0YXR1cyBvZiBwcm9jZXNzZWQgaGVhZGVyIGZpbGVzCisJc2V0IChfaGVhZGVySXNJ
bnNpZGVTdGFjayAiIikKKwlmb3JlYWNoIChfbGluZSBJTiBMSVNUUyBfc2Nhbk91dHB1dCkKKwkJ
aWYgKF9saW5lKQorCQkJY290aXJlX3BhcnNlX2xpbmUoIiR7X2xpbmV9IiBfaGVhZGVyRmlsZSBf
aGVhZGVyRGVwdGgpCisJCQlpZiAoX2hlYWRlckZpbGUpCisJCQkJY290aXJlX2NoZWNrX2hlYWRl
cl9maWxlX2xvY2F0aW9uKCIke19oZWFkZXJGaWxlfSIgIiR7X2lnbm9yZWRJbmNsdWRlRGlyc30i
ICIke19ob25vcmVkSW5jbHVkZURpcnN9IiBfaGVhZGVySXNJbnNpZGUpCisJCQkJaWYgKENPVElS
RV9ERUJVRykKKwkJCQkJbWVzc2FnZSAoU1RBVFVTICIke19oZWFkZXJEZXB0aH06ICR7X2hlYWRl
ckZpbGV9ICR7X2hlYWRlcklzSW5zaWRlfSIpCisJCQkJZW5kaWYoKQorCQkJCSMgdXBkYXRlIHN0
YWNrCisJCQkJbGlzdCAoTEVOR1RIIF9oZWFkZXJJc0luc2lkZVN0YWNrIF9zdGFja0xlbikKKwkJ
CQlpZiAoX2hlYWRlckRlcHRoIEdSRUFURVIgX3N0YWNrTGVuKQorCQkJCQltYXRoIChFWFBSIF9z
dGFja0xlbiAiJHtfc3RhY2tMZW59ICsgMSIpCisJCQkJCWZvcmVhY2ggKF9pbmRleCBSQU5HRSAk
e19zdGFja0xlbn0gJHtfaGVhZGVyRGVwdGh9KQorCQkJCQkJbGlzdCAoQVBQRU5EIF9oZWFkZXJJ
c0luc2lkZVN0YWNrICR7X2hlYWRlcklzSW5zaWRlfSkKKwkJCQkJZW5kZm9yZWFjaCgpCisJCQkJ
ZWxzZSgpCisJCQkJCWZvcmVhY2ggKF9pbmRleCBSQU5HRSAke19oZWFkZXJEZXB0aH0gJHtfc3Rh
Y2tMZW59KQorCQkJCQkJbGlzdCAoUkVNT1ZFX0FUIF9oZWFkZXJJc0luc2lkZVN0YWNrIC0xKQor
CQkJCQllbmRmb3JlYWNoKCkKKwkJCQkJbGlzdCAoQVBQRU5EIF9oZWFkZXJJc0luc2lkZVN0YWNr
ICR7X2hlYWRlcklzSW5zaWRlfSkKKwkJCQllbmRpZigpCisJCQkJaWYgKENPVElSRV9ERUJVRykK
KwkJCQkJbWVzc2FnZSAoU1RBVFVTICIke19oZWFkZXJJc0luc2lkZVN0YWNrfSIpCisJCQkJZW5k
aWYoKQorCQkJCSMgaGVhZGVyIGlzIGEgY2FuZGlkYXRlIGlmIGl0IGlzIG91dHNpZGUgcHJvamVj
dAorCQkJCWlmIChOT1QgX2hlYWRlcklzSW5zaWRlKQorCQkJCQkjIGdldCBwYXJlbnQgaGVhZGVy
IGZpbGUncyBpbnNpZGUvb3V0c2lkZSBzdGF0dXMKKwkJCQkJaWYgKF9oZWFkZXJEZXB0aCBHUkVB
VEVSIDEpCisJCQkJCQltYXRoIChFWFBSIF9pbmRleCAiJHtfaGVhZGVyRGVwdGh9IC0gMiIpCisJ
CQkJCQlsaXN0IChHRVQgX2hlYWRlcklzSW5zaWRlU3RhY2sgJHtfaW5kZXh9IF9wYXJlbnRIZWFk
ZXJJc0luc2lkZSkKKwkJCQkJZWxzZSgpCisJCQkJCQlzZXQgKF9wYXJlbnRIZWFkZXJJc0luc2lk
ZSBUUlVFKQorCQkJCQllbmRpZigpCisJCQkJCSMgc2VsZWN0IGhlYWRlciBmaWxlIGlmIHBhcmVu
dCBoZWFkZXIgZmlsZSBpcyBpbnNpZGUgcHJvamVjdAorCQkJCQkjIChlLmcuLCBhIHByb2plY3Qg
aGVhZGVyIGZpbGUgdGhhdCBpbmNsdWRlcyBhIHN0YW5kYXJkIGhlYWRlciBmaWxlKQorCQkJCQlp
ZiAoX3BhcmVudEhlYWRlcklzSW5zaWRlKQorCQkJCQkJY290aXJlX2NoZWNrX2lnbm9yZV9oZWFk
ZXJfZmlsZV9wYXRoKCIke19oZWFkZXJGaWxlfSIgX2hlYWRlcklzSWdub3JlZCkKKwkJCQkJCWlm
IChOT1QgX2hlYWRlcklzSWdub3JlZCkKKwkJCQkJCQljb3RpcmVfY2hlY2tfaWdub3JlX2hlYWRl
cl9maWxlX2V4dCgiJHtfaGVhZGVyRmlsZX0iIF9pZ25vcmVkRXh0ZW5zaW9ucyBfaGVhZGVySXNJ
Z25vcmVkKQorCQkJCQkJCWlmIChOT1QgX2hlYWRlcklzSWdub3JlZCkKKwkJCQkJCQkJbGlzdCAo
QVBQRU5EIF9zZWxlY3RlZEluY2x1ZGVzICIke19oZWFkZXJGaWxlfSIpCisJCQkJCQkJZWxzZSgp
CisJCQkJCQkJCSMgZml4IGhlYWRlcidzIGluc2lkZSBzdGF0dXMgb24gc3RhY2ssIGl0IGlzIGln
bm9yZWQgYnkgZXh0ZW5zaW9uIG5vdworCQkJCQkJCQlsaXN0IChSRU1PVkVfQVQgX2hlYWRlcklz
SW5zaWRlU3RhY2sgLTEpCisJCQkJCQkJCWxpc3QgKEFQUEVORCBfaGVhZGVySXNJbnNpZGVTdGFj
ayBUUlVFKQorCQkJCQkJCWVuZGlmKCkKKwkJCQkJCWVuZGlmKCkKKwkJCQkJCWlmIChDT1RJUkVf
REVCVUcpCisJCQkJCQkJbWVzc2FnZSAoU1RBVFVTICIke19oZWFkZXJGaWxlfSAke19pZ25vcmVk
RXh0ZW5zaW9uc30gJHtfaGVhZGVySXNJZ25vcmVkfSIpCisJCQkJCQllbmRpZigpCisJCQkJCWVu
ZGlmKCkKKwkJCQllbmRpZigpCisJCQllbHNlKCkKKwkJCQlpZiAoTVNWQykKKwkJCQkJIyBmb3Ig
Y2wuZXhlIGRvIG5vdCBrZWVwIHVucGFyc2VkIGxpbmVzIHdoaWNoIHNvbGVseSBjb25zaXN0IG9m
IGEgc291cmNlIGZpbGUgbmFtZQorCQkJCQlzdHJpbmcgKEZJTkQgIiR7X3NvdXJjZUZpbGVzfSIg
IiR7X2xpbmV9IiBfaW5kZXgpCisJCQkJCWlmIChfaW5kZXggTEVTUyAwKQorCQkJCQkJbGlzdCAo
QVBQRU5EIF91bnBhcnNlZExpbmVzICIke19saW5lfSIpCisJCQkJCWVuZGlmKCkKKwkJCQllbHNl
KCkKKwkJCQkJbGlzdCAoQVBQRU5EIF91bnBhcnNlZExpbmVzICIke19saW5lfSIpCisJCQkJZW5k
aWYoKQorCQkJZW5kaWYoKQorCQllbmRpZigpCisJZW5kZm9yZWFjaCgpCisJbGlzdCAoUkVNT1ZF
X0RVUExJQ0FURVMgX3NlbGVjdGVkSW5jbHVkZXMpCisJc2V0ICgke19zZWxlY3RlZEluY2x1ZGVz
VmFyfSAke19zZWxlY3RlZEluY2x1ZGVzfSBQQVJFTlRfU0NPUEUpCisJc2V0ICgke191bnBhcnNl
ZExpbmVzVmFyfSAke191bnBhcnNlZExpbmVzfSBQQVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigp
CisKK2Z1bmN0aW9uIChjb3RpcmVfc2Nhbl9pbmNsdWRlcyBfaW5jbHVkZXNWYXIpCisJc2V0KF9v
cHRpb25zICIiKQorCXNldChfb25lVmFsdWVBcmdzIENPTVBJTEVSX0lEIENPTVBJTEVSX0VYRUNV
VEFCTEUgQ09NUElMRVJfQVJHMSBDT01QSUxFUl9WRVJTSU9OIExBTkdVQUdFIFVOUEFSU0VEX0xJ
TkVTIFNDQU5fUkVTVUxUKQorCXNldChfbXVsdGlWYWx1ZUFyZ3MgQ09NUElMRV9ERUZJTklUSU9O
UyBDT01QSUxFX0ZMQUdTIElOQ0xVREVfRElSRUNUT1JJRVMgU1lTVEVNX0lOQ0xVREVfRElSRUNU
T1JJRVMKKwkJSUdOT1JFX1BBVEggSU5DTFVERV9QQVRIIElHTk9SRV9FWFRFTlNJT05TIElOQ0xV
REVfUFJJT1JJVFlfUEFUSCBDT01QSUxFUl9MQVVOQ0hFUikKKwljbWFrZV9wYXJzZV9hcmd1bWVu
dHMoX29wdGlvbiAiJHtfb3B0aW9uc30iICIke19vbmVWYWx1ZUFyZ3N9IiAiJHtfbXVsdGlWYWx1
ZUFyZ3N9IiAke0FSR059KQorCXNldCAoX3NvdXJjZUZpbGVzICR7X29wdGlvbl9VTlBBUlNFRF9B
UkdVTUVOVFN9KQorCWlmIChOT1QgX29wdGlvbl9MQU5HVUFHRSkKKwkJc2V0IChfb3B0aW9uX0xB
TkdVQUdFICJDWFgiKQorCWVuZGlmKCkKKwlpZiAoTk9UIF9vcHRpb25fQ09NUElMRVJfSUQpCisJ
CXNldCAoX29wdGlvbl9DT01QSUxFUl9JRCAiJHtDTUFLRV8ke19vcHRpb25fTEFOR1VBR0V9X0lE
fSIpCisJZW5kaWYoKQorCWlmIChOT1QgX29wdGlvbl9DT01QSUxFUl9WRVJTSU9OKQorCQlzZXQg
KF9vcHRpb25fQ09NUElMRVJfVkVSU0lPTiAiJHtDTUFLRV8ke19vcHRpb25fTEFOR1VBR0V9X0NP
TVBJTEVSX1ZFUlNJT059IikKKwllbmRpZigpCisJY290aXJlX2luaXRfY29tcGlsZV9jbWQoX2Nt
ZCAiJHtfb3B0aW9uX0xBTkdVQUdFfSIgIiR7X29wdGlvbl9DT01QSUxFUl9MQVVOQ0hFUn0iICIk
e19vcHRpb25fQ09NUElMRVJfRVhFQ1VUQUJMRX0iICIke19vcHRpb25fQ09NUElMRVJfQVJHMX0i
KQorCWNvdGlyZV9hZGRfZGVmaW5pdGlvbnNfdG9fY21kKF9jbWQgIiR7X29wdGlvbl9MQU5HVUFH
RX0iICR7X29wdGlvbl9DT01QSUxFX0RFRklOSVRJT05TfSkKKwljb3RpcmVfYWRkX2NvbXBpbGVf
ZmxhZ3NfdG9fY21kKF9jbWQgJHtfb3B0aW9uX0NPTVBJTEVfRkxBR1N9KQorCWNvdGlyZV9hZGRf
aW5jbHVkZXNfdG9fY21kKF9jbWQgIiR7X29wdGlvbl9MQU5HVUFHRX0iIF9vcHRpb25fSU5DTFVE
RV9ESVJFQ1RPUklFUyBfb3B0aW9uX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTKQorCWNvdGly
ZV9hZGRfZnJhbWV3b3Jrc190b19jbWQoX2NtZCAiJHtfb3B0aW9uX0xBTkdVQUdFfSIgX29wdGlv
bl9JTkNMVURFX0RJUkVDVE9SSUVTIF9vcHRpb25fU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVMp
CisJY290aXJlX2FkZF9tYWtlZGVwX2ZsYWdzKCIke19vcHRpb25fTEFOR1VBR0V9IiAiJHtfb3B0
aW9uX0NPTVBJTEVSX0lEfSIgIiR7X29wdGlvbl9DT01QSUxFUl9WRVJTSU9OfSIgX2NtZCkKKwkj
IG9ubHkgY29uc2lkZXIgZXhpc3Rpbmcgc291cmNlIGZpbGVzIGZvciBzY2FubmluZworCXNldCAo
X2V4aXN0aW5nU291cmNlRmlsZXMgIiIpCisJZm9yZWFjaCAoX3NvdXJjZUZpbGUgJHtfc291cmNl
RmlsZXN9KQorCQlpZiAoRVhJU1RTICIke19zb3VyY2VGaWxlfSIpCisJCQlsaXN0IChBUFBFTkQg
X2V4aXN0aW5nU291cmNlRmlsZXMgIiR7X3NvdXJjZUZpbGV9IikKKwkJZW5kaWYoKQorCWVuZGZv
cmVhY2goKQorCWlmIChOT1QgX2V4aXN0aW5nU291cmNlRmlsZXMpCisJCXNldCAoJHtfaW5jbHVk
ZXNWYXJ9ICIiIFBBUkVOVF9TQ09QRSkKKwkJcmV0dXJuKCkKKwllbmRpZigpCisJbGlzdCAoQVBQ
RU5EIF9jbWQgJHtfZXhpc3RpbmdTb3VyY2VGaWxlc30pCisJaWYgKENPVElSRV9WRVJCT1NFKQor
CQltZXNzYWdlIChTVEFUVVMgImV4ZWN1dGVfcHJvY2VzczogJHtfY21kfSIpCisJZW5kaWYoKQor
CWlmIChfb3B0aW9uX0NPTVBJTEVSX0lEIE1BVENIRVMgIk1TVkMiKQorCQkjIGNsLmV4ZSBtZXNz
ZXMgd2l0aCB0aGUgb3V0cHV0IHN0cmVhbXMgdW5sZXNzIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJs
ZSBWU19VTklDT0RFX09VVFBVVCBpcyBjbGVhcmVkCisJCXVuc2V0IChFTlZ7VlNfVU5JQ09ERV9P
VVRQVVR9KQorCWVuZGlmKCkKKwlleGVjdXRlX3Byb2Nlc3MoCisJCUNPTU1BTkQgJHtfY21kfQor
CQlXT1JLSU5HX0RJUkVDVE9SWSAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9IgorCQlSRVNV
TFRfVkFSSUFCTEUgX3Jlc3VsdAorCQlPVVRQVVRfUVVJRVQKKwkJRVJST1JfVkFSSUFCTEUgX291
dHB1dCkKKwlpZiAoX3Jlc3VsdCkKKwkJbWVzc2FnZSAoU1RBVFVTICJSZXN1bHQgJHtfcmVzdWx0
fSBzY2FubmluZyBpbmNsdWRlcyBvZiAke19leGlzdGluZ1NvdXJjZUZpbGVzfS4iKQorCWVuZGlm
KCkKKwljb3RpcmVfcGFyc2VfaW5jbHVkZXMoCisJCSIke19vcHRpb25fTEFOR1VBR0V9IiAiJHtf
b3V0cHV0fSIKKwkJIiR7X29wdGlvbl9JR05PUkVfUEFUSH0iICIke19vcHRpb25fSU5DTFVERV9Q
QVRIfSIKKwkJIiR7X29wdGlvbl9JR05PUkVfRVhURU5TSU9OU30iCisJCV9pbmNsdWRlcyBfdW5w
YXJzZWRMaW5lcworCQkke19zb3VyY2VGaWxlc30pCisJaWYgKF9vcHRpb25fSU5DTFVERV9QUklP
UklUWV9QQVRIKQorCQlzZXQgKF9zb3J0ZWRJbmNsdWRlcyAiIikKKwkJZm9yZWFjaCAoX3ByaW9y
aXR5UGF0aCAke19vcHRpb25fSU5DTFVERV9QUklPUklUWV9QQVRIfSkKKwkJCWZvcmVhY2ggKF9p
bmNsdWRlICR7X2luY2x1ZGVzfSkKKwkJCQlzdHJpbmcgKEZJTkQgJHtfaW5jbHVkZX0gJHtfcHJp
b3JpdHlQYXRofSBfcG9zaXRpb24pCisJCQkJaWYgKF9wb3NpdGlvbiBHUkVBVEVSIC0xKQorCQkJ
CQlsaXN0IChBUFBFTkQgX3NvcnRlZEluY2x1ZGVzICR7X2luY2x1ZGV9KQorCQkJCWVuZGlmKCkK
KwkJCWVuZGZvcmVhY2goKQorCQllbmRmb3JlYWNoKCkKKwkJaWYgKF9zb3J0ZWRJbmNsdWRlcykK
KwkJCWxpc3QgKElOU0VSVCBfaW5jbHVkZXMgMCAke19zb3J0ZWRJbmNsdWRlc30pCisJCQlsaXN0
IChSRU1PVkVfRFVQTElDQVRFUyBfaW5jbHVkZXMpCisJCWVuZGlmKCkKKwllbmRpZigpCisJc2V0
ICgke19pbmNsdWRlc1Zhcn0gJHtfaW5jbHVkZXN9IFBBUkVOVF9TQ09QRSkKKwlpZiAoX29wdGlv
bl9VTlBBUlNFRF9MSU5FUykKKwkJc2V0ICgke19vcHRpb25fVU5QQVJTRURfTElORVN9ICR7X3Vu
cGFyc2VkTGluZXN9IFBBUkVOVF9TQ09QRSkKKwllbmRpZigpCisJaWYgKF9vcHRpb25fU0NBTl9S
RVNVTFQpCisJCXNldCAoJHtfb3B0aW9uX1NDQU5fUkVTVUxUfSAke19yZXN1bHR9IFBBUkVOVF9T
Q09QRSkKKwllbmRpZigpCitlbmRmdW5jdGlvbigpCisKK21hY3JvIChjb3RpcmVfYXBwZW5kX3Vu
ZGVmcyBfY29udGVudHNWYXIpCisJc2V0IChfdW5kZWZzICR7QVJHTn0pCisJaWYgKF91bmRlZnMp
CisJCWxpc3QgKFJFTU9WRV9EVVBMSUNBVEVTIF91bmRlZnMpCisJCWZvcmVhY2ggKF9kZWZpbml0
aW9uICR7X3VuZGVmc30pCisJCQlsaXN0IChBUFBFTkQgJHtfY29udGVudHNWYXJ9ICIjdW5kZWYg
JHtfZGVmaW5pdGlvbn0iKQorCQllbmRmb3JlYWNoKCkKKwllbmRpZigpCitlbmRtYWNybygpCisK
K21hY3JvIChjb3RpcmVfY29tbWVudF9zdHIgX2xhbmd1YWdlIF9jb21tZW50VGV4dCBfY29tbWVu
dFZhcikKKwlpZiAoIiR7X2xhbmd1YWdlfSIgU1RSRVFVQUwgIkNNQUtFIikKKwkJc2V0ICgke19j
b21tZW50VmFyfSAiIyAke19jb21tZW50VGV4dH0iKQorCWVsc2UoKQorCQlzZXQgKCR7X2NvbW1l
bnRWYXJ9ICIvKiAke19jb21tZW50VGV4dH0gKi8iKQorCWVuZGlmKCkKK2VuZG1hY3JvKCkKKwor
ZnVuY3Rpb24gKGNvdGlyZV93cml0ZV9maWxlIF9sYW5ndWFnZSBfZmlsZSBfY29udGVudHMgX2Zv
cmNlKQorCWdldF9maWxlbmFtZV9jb21wb25lbnQoX21vZHVsZU5hbWUgIiR7Q09USVJFX0NNQUtF
X01PRFVMRV9GSUxFfSIgTkFNRSkKKwljb3RpcmVfY29tbWVudF9zdHIoIiR7X2xhbmd1YWdlfSIg
IiR7X21vZHVsZU5hbWV9ICR7Q09USVJFX0NNQUtFX01PRFVMRV9WRVJTSU9OfSBnZW5lcmF0ZWQg
ZmlsZSIgX2hlYWRlcjEpCisJY290aXJlX2NvbW1lbnRfc3RyKCIke19sYW5ndWFnZX0iICIke19m
aWxlfSIgX2hlYWRlcjIpCisJc2V0IChfY29udGVudHMgIiR7X2hlYWRlcjF9XG4ke19oZWFkZXIy
fVxuJHtfY29udGVudHN9IikKKwlpZiAoQ09USVJFX0RFQlVHKQorCQltZXNzYWdlIChTVEFUVVMg
IiR7X2NvbnRlbnRzfSIpCisJZW5kaWYoKQorCWlmIChfZm9yY2UgT1IgTk9UIEVYSVNUUyAiJHtf
ZmlsZX0iKQorCQlmaWxlIChXUklURSAiJHtfZmlsZX0iICIke19jb250ZW50c30iKQorCWVsc2Uo
KQorCQlmaWxlIChSRUFEICIke19maWxlfSIgX29sZENvbnRlbnRzKQorCQlpZiAoTk9UICIke19v
bGRDb250ZW50c30iIFNUUkVRVUFMICIke19jb250ZW50c30iKQorCQkJZmlsZSAoV1JJVEUgIiR7
X2ZpbGV9IiAiJHtfY29udGVudHN9IikKKwkJZWxzZSgpCisJCQlpZiAoQ09USVJFX0RFQlVHKQor
CQkJCW1lc3NhZ2UgKFNUQVRVUyAiJHtfZmlsZX0gdW5jaGFuZ2VkIikKKwkJCWVuZGlmKCkKKwkJ
ZW5kaWYoKQorCWVuZGlmKCkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9nZW5l
cmF0ZV91bml0eV9zb3VyY2UgX3VuaXR5RmlsZSkKKwlzZXQoX29wdGlvbnMgIiIpCisJc2V0KF9v
bmVWYWx1ZUFyZ3MgTEFOR1VBR0UpCisJc2V0KF9tdWx0aVZhbHVlQXJncworCQlERVBFTkRTIFNP
VVJDRVNfQ09NUElMRV9ERUZJTklUSU9OUworCQlQUkVfVU5ERUZTIFNPVVJDRVNfUFJFX1VOREVG
UyBQT1NUX1VOREVGUyBTT1VSQ0VTX1BPU1RfVU5ERUZTIFBST0xPR1VFIEVQSUxPR1VFKQorCWNt
YWtlX3BhcnNlX2FyZ3VtZW50cyhfb3B0aW9uICIke19vcHRpb25zfSIgIiR7X29uZVZhbHVlQXJn
c30iICIke19tdWx0aVZhbHVlQXJnc30iICR7QVJHTn0pCisJaWYgKF9vcHRpb25fREVQRU5EUykK
KwkJY290aXJlX2NoZWNrX2ZpbGVfdXBfdG9fZGF0ZShfdW5pdHlGaWxlSXNVcFRvRGF0ZSAiJHtf
dW5pdHlGaWxlfSIgJHtfb3B0aW9uX0RFUEVORFN9KQorCQlpZiAoX3VuaXR5RmlsZUlzVXBUb0Rh
dGUpCisJCQlyZXR1cm4oKQorCQllbmRpZigpCisJZW5kaWYoKQorCXNldCAoX3NvdXJjZUZpbGVz
ICR7X29wdGlvbl9VTlBBUlNFRF9BUkdVTUVOVFN9KQorCWlmIChOT1QgX29wdGlvbl9QUkVfVU5E
RUZTKQorCQlzZXQgKF9vcHRpb25fUFJFX1VOREVGUyAiIikKKwllbmRpZigpCisJaWYgKE5PVCBf
b3B0aW9uX1NPVVJDRVNfUFJFX1VOREVGUykKKwkJc2V0IChfb3B0aW9uX1NPVVJDRVNfUFJFX1VO
REVGUyAiIikKKwllbmRpZigpCisJaWYgKE5PVCBfb3B0aW9uX1BPU1RfVU5ERUZTKQorCQlzZXQg
KF9vcHRpb25fUE9TVF9VTkRFRlMgIiIpCisJZW5kaWYoKQorCWlmIChOT1QgX29wdGlvbl9TT1VS
Q0VTX1BPU1RfVU5ERUZTKQorCQlzZXQgKF9vcHRpb25fU09VUkNFU19QT1NUX1VOREVGUyAiIikK
KwllbmRpZigpCisJc2V0IChfY29udGVudHMgIiIpCisJaWYgKF9vcHRpb25fUFJPTE9HVUUpCisJ
CWxpc3QgKEFQUEVORCBfY29udGVudHMgJHtfb3B0aW9uX1BST0xPR1VFfSkKKwllbmRpZigpCisJ
aWYgKF9vcHRpb25fTEFOR1VBR0UgQU5EIF9zb3VyY2VGaWxlcykKKwkJaWYgKCIke19vcHRpb25f
TEFOR1VBR0V9IiBTVFJFUVVBTCAiQ1hYIikKKwkJCWxpc3QgKEFQUEVORCBfY29udGVudHMgIiNp
ZmRlZiBfX2NwbHVzcGx1cyIpCisJCWVsc2VpZiAoIiR7X29wdGlvbl9MQU5HVUFHRX0iIFNUUkVR
VUFMICJDIikKKwkJCWxpc3QgKEFQUEVORCBfY29udGVudHMgIiNpZm5kZWYgX19jcGx1c3BsdXMi
KQorCQllbmRpZigpCisJZW5kaWYoKQorCXNldCAoX2NvbXBpbGVVbmRlZmluaXRpb25zICIiKQor
CWZvcmVhY2ggKF9zb3VyY2VGaWxlICR7X3NvdXJjZUZpbGVzfSkKKwkJY290aXJlX2dldF9zb3Vy
Y2VfY29tcGlsZV9kZWZpbml0aW9ucygKKwkJCSIke19vcHRpb25fQ09ORklHVVJBVElPTn0iICIk
e19vcHRpb25fTEFOR1VBR0V9IiAiJHtfc291cmNlRmlsZX0iIF9jb21waWxlRGVmaW5pdGlvbnMK
KwkJCSR7X29wdGlvbl9TT1VSQ0VTX0NPTVBJTEVfREVGSU5JVElPTlN9KQorCQljb3RpcmVfZ2V0
X3NvdXJjZV91bmRlZnMoIiR7X3NvdXJjZUZpbGV9IiBDT1RJUkVfVU5JVFlfU09VUkNFX1BSRV9V
TkRFRlMgX3NvdXJjZVByZVVuZGVmcyAke19vcHRpb25fU09VUkNFU19QUkVfVU5ERUZTfSkKKwkJ
Y290aXJlX2dldF9zb3VyY2VfdW5kZWZzKCIke19zb3VyY2VGaWxlfSIgQ09USVJFX1VOSVRZX1NP
VVJDRV9QT1NUX1VOREVGUyBfc291cmNlUG9zdFVuZGVmcyAke19vcHRpb25fU09VUkNFU19QT1NU
X1VOREVGU30pCisJCWlmIChfb3B0aW9uX1BSRV9VTkRFRlMpCisJCQlsaXN0IChBUFBFTkQgX2Nv
bXBpbGVVbmRlZmluaXRpb25zICR7X29wdGlvbl9QUkVfVU5ERUZTfSkKKwkJZW5kaWYoKQorCQlp
ZiAoX3NvdXJjZVByZVVuZGVmcykKKwkJCWxpc3QgKEFQUEVORCBfY29tcGlsZVVuZGVmaW5pdGlv
bnMgJHtfc291cmNlUHJlVW5kZWZzfSkKKwkJZW5kaWYoKQorCQlpZiAoX2NvbXBpbGVVbmRlZmlu
aXRpb25zKQorCQkJY290aXJlX2FwcGVuZF91bmRlZnMoX2NvbnRlbnRzICR7X2NvbXBpbGVVbmRl
ZmluaXRpb25zfSkKKwkJCXNldCAoX2NvbXBpbGVVbmRlZmluaXRpb25zICIiKQorCQllbmRpZigp
CisJCWlmIChfc291cmNlUG9zdFVuZGVmcykKKwkJCWxpc3QgKEFQUEVORCBfY29tcGlsZVVuZGVm
aW5pdGlvbnMgJHtfc291cmNlUG9zdFVuZGVmc30pCisJCWVuZGlmKCkKKwkJaWYgKF9vcHRpb25f
UE9TVF9VTkRFRlMpCisJCQlsaXN0IChBUFBFTkQgX2NvbXBpbGVVbmRlZmluaXRpb25zICR7X29w
dGlvbl9QT1NUX1VOREVGU30pCisJCWVuZGlmKCkKKwkJZm9yZWFjaCAoX2RlZmluaXRpb24gJHtf
Y29tcGlsZURlZmluaXRpb25zfSkKKwkJCWlmIChfZGVmaW5pdGlvbiBNQVRDSEVTICJeKFthLXpB
LVowLTlfXSspPSguKykkIikKKwkJCQlsaXN0IChBUFBFTkQgX2NvbnRlbnRzICIjZGVmaW5lICR7
Q01BS0VfTUFUQ0hfMX0gJHtDTUFLRV9NQVRDSF8yfSIpCisJCQkJbGlzdCAoSU5TRVJUIF9jb21w
aWxlVW5kZWZpbml0aW9ucyAwICIke0NNQUtFX01BVENIXzF9IikKKwkJCWVsc2UoKQorCQkJCWxp
c3QgKEFQUEVORCBfY29udGVudHMgIiNkZWZpbmUgJHtfZGVmaW5pdGlvbn0iKQorCQkJCWxpc3Qg
KElOU0VSVCBfY29tcGlsZVVuZGVmaW5pdGlvbnMgMCAiJHtfZGVmaW5pdGlvbn0iKQorCQkJZW5k
aWYoKQorCQllbmRmb3JlYWNoKCkKKwkJIyB1c2UgYWJzb2x1dGUgcGF0aCBhcyBzb3VyY2UgZmls
ZSBsb2NhdGlvbgorCQlnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9zb3VyY2VGaWxlTG9jYXRpb24g
IiR7X3NvdXJjZUZpbGV9IiBBQlNPTFVURSkKKwkJaWYgKFdJTjMyKQorCQkJZmlsZSAoVE9fTkFU
SVZFX1BBVEggIiR7X3NvdXJjZUZpbGVMb2NhdGlvbn0iIF9zb3VyY2VGaWxlTG9jYXRpb24pCisJ
CWVuZGlmKCkKKwkJbGlzdCAoQVBQRU5EIF9jb250ZW50cyAiI2luY2x1ZGUgXCIke19zb3VyY2VG
aWxlTG9jYXRpb259XCIiKQorCWVuZGZvcmVhY2goKQorCWlmIChfY29tcGlsZVVuZGVmaW5pdGlv
bnMpCisJCWNvdGlyZV9hcHBlbmRfdW5kZWZzKF9jb250ZW50cyAke19jb21waWxlVW5kZWZpbml0
aW9uc30pCisJCXNldCAoX2NvbXBpbGVVbmRlZmluaXRpb25zICIiKQorCWVuZGlmKCkKKwlpZiAo
X29wdGlvbl9MQU5HVUFHRSBBTkQgX3NvdXJjZUZpbGVzKQorCQlsaXN0IChBUFBFTkQgX2NvbnRl
bnRzICIjZW5kaWYiKQorCWVuZGlmKCkKKwlpZiAoX29wdGlvbl9FUElMT0dVRSkKKwkJbGlzdCAo
QVBQRU5EIF9jb250ZW50cyAke19vcHRpb25fRVBJTE9HVUV9KQorCWVuZGlmKCkKKwlsaXN0IChB
UFBFTkQgX2NvbnRlbnRzICIiKQorCXN0cmluZyAoUkVQTEFDRSAiOyIgIlxuIiBfY29udGVudHMg
IiR7X2NvbnRlbnRzfSIpCisJaWYgKENPVElSRV9WRVJCT1NFKQorCQltZXNzYWdlICgiJHtfY29u
dGVudHN9IikKKwllbmRpZigpCisJY290aXJlX3dyaXRlX2ZpbGUoIiR7X29wdGlvbl9MQU5HVUFH
RX0iICIke191bml0eUZpbGV9IiAiJHtfY29udGVudHN9IiBUUlVFKQorZW5kZnVuY3Rpb24oKQor
CitmdW5jdGlvbiAoY290aXJlX2dlbmVyYXRlX3ByZWZpeF9oZWFkZXIgX3ByZWZpeEZpbGUpCisJ
c2V0KF9vcHRpb25zICIiKQorCXNldChfb25lVmFsdWVBcmdzIExBTkdVQUdFIENPTVBJTEVSX0VY
RUNVVEFCTEUgQ09NUElMRVJfQVJHMSBDT01QSUxFUl9JRCBDT01QSUxFUl9WRVJTSU9OKQorCXNl
dChfbXVsdGlWYWx1ZUFyZ3MgREVQRU5EUyBDT01QSUxFX0RFRklOSVRJT05TIENPTVBJTEVfRkxB
R1MKKwkJSU5DTFVERV9ESVJFQ1RPUklFUyBTWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUyBJR05P
UkVfUEFUSCBJTkNMVURFX1BBVEgKKwkJSUdOT1JFX0VYVEVOU0lPTlMgSU5DTFVERV9QUklPUklU
WV9QQVRIIENPTVBJTEVSX0xBVU5DSEVSKQorCWNtYWtlX3BhcnNlX2FyZ3VtZW50cyhfb3B0aW9u
ICIke19vcHRpb25zfSIgIiR7X29uZVZhbHVlQXJnc30iICIke19tdWx0aVZhbHVlQXJnc30iICR7
QVJHTn0pCisJaWYgKE5PVCBfb3B0aW9uX0NPTVBJTEVSX0lEKQorCQlzZXQgKF9vcHRpb25fQ09N
UElMRVJfSUQgIiR7Q01BS0VfJHtfb3B0aW9uX0xBTkdVQUdFfV9JRH0iKQorCWVuZGlmKCkKKwlp
ZiAoTk9UIF9vcHRpb25fQ09NUElMRVJfVkVSU0lPTikKKwkJc2V0IChfb3B0aW9uX0NPTVBJTEVS
X1ZFUlNJT04gIiR7Q01BS0VfJHtfb3B0aW9uX0xBTkdVQUdFfV9DT01QSUxFUl9WRVJTSU9OfSIp
CisJZW5kaWYoKQorCWlmIChfb3B0aW9uX0RFUEVORFMpCisJCWNvdGlyZV9jaGVja19maWxlX3Vw
X3RvX2RhdGUoX3ByZWZpeEZpbGVJc1VwVG9EYXRlICIke19wcmVmaXhGaWxlfSIgJHtfb3B0aW9u
X0RFUEVORFN9KQorCQlpZiAoX3ByZWZpeEZpbGVJc1VwVG9EYXRlKQorCQkJIyBjcmVhdGUgZW1w
dHkgbG9nIGZpbGUKKwkJCXNldCAoX3VucGFyc2VkTGluZXNGaWxlICIke19wcmVmaXhGaWxlfS5s
b2ciKQorCQkJZmlsZSAoV1JJVEUgIiR7X3VucGFyc2VkTGluZXNGaWxlfSIgIiIpCisJCQlyZXR1
cm4oKQorCQllbmRpZigpCisJZW5kaWYoKQorCXNldCAoX3Byb2xvZ3VlICIiKQorCXNldCAoX2Vw
aWxvZ3VlICIiKQorCWlmIChfb3B0aW9uX0NPTVBJTEVSX0lEIE1BVENIRVMgIkNsYW5nIikKKwkJ
c2V0IChfcHJvbG9ndWUgIiNwcmFnbWEgY2xhbmcgc3lzdGVtX2hlYWRlciIpCisJZWxzZWlmIChf
b3B0aW9uX0NPTVBJTEVSX0lEIE1BVENIRVMgIkdOVSIpCisJCXNldCAoX3Byb2xvZ3VlICIjcHJh
Z21hIEdDQyBzeXN0ZW1faGVhZGVyIikKKwllbHNlaWYgKF9vcHRpb25fQ09NUElMRVJfSUQgTUFU
Q0hFUyAiTVNWQyIpCisJCXNldCAoX3Byb2xvZ3VlICIjcHJhZ21hIHdhcm5pbmcocHVzaCwgMCki
KQorCQlzZXQgKF9lcGlsb2d1ZSAiI3ByYWdtYSB3YXJuaW5nKHBvcCkiKQorCWVsc2VpZiAoX29w
dGlvbl9DT01QSUxFUl9JRCBNQVRDSEVTICJJbnRlbCIpCisJCSMgSW50ZWwgY29tcGlsZXIgcmVx
dWlyZXMgaGRyc3RvcCBwcmFnbWEgdG8gc3RvcCBnZW5lcmF0aW5nIFBDSCBmaWxlCisJCXNldCAo
X2VwaWxvZ3VlICIjcHJhZ21hIGhkcnN0b3AiKQorCWVuZGlmKCkKKwlzZXQgKF9zb3VyY2VGaWxl
cyAke19vcHRpb25fVU5QQVJTRURfQVJHVU1FTlRTfSkKKwljb3RpcmVfc2Nhbl9pbmNsdWRlcyhf
c2VsZWN0ZWRIZWFkZXJzICR7X3NvdXJjZUZpbGVzfQorCQlMQU5HVUFHRSAiJHtfb3B0aW9uX0xB
TkdVQUdFfSIKKwkJQ09NUElMRVJfTEFVTkNIRVIgIiR7X29wdGlvbl9DT01QSUxFUl9MQVVOQ0hF
Un0iCisJCUNPTVBJTEVSX0VYRUNVVEFCTEUgIiR7X29wdGlvbl9DT01QSUxFUl9FWEVDVVRBQkxF
fSIKKwkJQ09NUElMRVJfQVJHMSAiJHtfb3B0aW9uX0NPTVBJTEVSX0FSRzF9IgorCQlDT01QSUxF
Ul9JRCAiJHtfb3B0aW9uX0NPTVBJTEVSX0lEfSIKKwkJQ09NUElMRVJfVkVSU0lPTiAiJHtfb3B0
aW9uX0NPTVBJTEVSX1ZFUlNJT059IgorCQlDT01QSUxFX0RFRklOSVRJT05TICR7X29wdGlvbl9D
T01QSUxFX0RFRklOSVRJT05TfQorCQlDT01QSUxFX0ZMQUdTICR7X29wdGlvbl9DT01QSUxFX0ZM
QUdTfQorCQlJTkNMVURFX0RJUkVDVE9SSUVTICR7X29wdGlvbl9JTkNMVURFX0RJUkVDVE9SSUVT
fQorCQlTWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUyAke19vcHRpb25fU1lTVEVNX0lOQ0xVREVf
RElSRUNUT1JJRVN9CisJCUlHTk9SRV9QQVRIICR7X29wdGlvbl9JR05PUkVfUEFUSH0KKwkJSU5D
TFVERV9QQVRIICR7X29wdGlvbl9JTkNMVURFX1BBVEh9CisJCUlHTk9SRV9FWFRFTlNJT05TICR7
X29wdGlvbl9JR05PUkVfRVhURU5TSU9OU30KKwkJSU5DTFVERV9QUklPUklUWV9QQVRIICR7X29w
dGlvbl9JTkNMVURFX1BSSU9SSVRZX1BBVEh9CisJCVVOUEFSU0VEX0xJTkVTIF91bnBhcnNlZExp
bmVzCisJCVNDQU5fUkVTVUxUIF9zY2FuUmVzdWx0KQorCWNvdGlyZV9nZW5lcmF0ZV91bml0eV9z
b3VyY2UoIiR7X3ByZWZpeEZpbGV9IgorCQlQUk9MT0dVRSAke19wcm9sb2d1ZX0gRVBJTE9HVUUg
JHtfZXBpbG9ndWV9IExBTkdVQUdFICIke19vcHRpb25fTEFOR1VBR0V9IiAke19zZWxlY3RlZEhl
YWRlcnN9KQorCXNldCAoX3VucGFyc2VkTGluZXNGaWxlICIke19wcmVmaXhGaWxlfS5sb2ciKQor
CWlmIChfdW5wYXJzZWRMaW5lcykKKwkJaWYgKENPVElSRV9WRVJCT1NFIE9SIF9zY2FuUmVzdWx0
IE9SIE5PVCBfc2VsZWN0ZWRIZWFkZXJzKQorCQkJbGlzdCAoTEVOR1RIIF91bnBhcnNlZExpbmVz
IF9za2lwcGVkTGluZUNvdW50KQorCQkJbWVzc2FnZSAoU1RBVFVTICIke19za2lwcGVkTGluZUNv
dW50fSBsaW5lKHMpIHNraXBwZWQsIHNlZSAke191bnBhcnNlZExpbmVzRmlsZX0iKQorCQllbmRp
ZigpCisJCXN0cmluZyAoUkVQTEFDRSAiOyIgIlxuIiBfdW5wYXJzZWRMaW5lcyAiJHtfdW5wYXJz
ZWRMaW5lc30iKQorCWVuZGlmKCkKKwlmaWxlIChXUklURSAiJHtfdW5wYXJzZWRMaW5lc0ZpbGV9
IiAiJHtfdW5wYXJzZWRMaW5lc30iKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJl
X2FkZF9tYWtlZGVwX2ZsYWdzIF9sYW5ndWFnZSBfY29tcGlsZXJJRCBfY29tcGlsZXJWZXJzaW9u
IF9mbGFnc1ZhcikKKwlzZXQgKF9mbGFncyAkeyR7X2ZsYWdzVmFyfX0pCisJaWYgKF9jb21waWxl
cklEIE1BVENIRVMgIk1TVkMiKQorCQkjIGNsLmV4ZSBvcHRpb25zIHVzZWQKKwkJIyAvbm9sb2dv
IHN1cHByZXNzZXMgZGlzcGxheSBvZiBzaWduLW9uIGJhbm5lcgorCQkjIC9UQyB0cmVhdCBhbGwg
ZmlsZXMgbmFtZWQgb24gdGhlIGNvbW1hbmQgbGluZSBhcyBDIHNvdXJjZSBmaWxlcworCQkjIC9U
UCB0cmVhdCBhbGwgZmlsZXMgbmFtZWQgb24gdGhlIGNvbW1hbmQgbGluZSBhcyBDKysgc291cmNl
IGZpbGVzCisJCSMgL0VQIHByZXByb2Nlc3MgdG8gc3Rkb3V0IHdpdGhvdXQgI2xpbmUgZGlyZWN0
aXZlcworCQkjIC9zaG93SW5jbHVkZXMgbGlzdCBpbmNsdWRlIGZpbGVzCisJCXNldCAoX3NvdXJj
ZUZpbGVUeXBlQyAiL1RDIikKKwkJc2V0IChfc291cmNlRmlsZVR5cGVDWFggIi9UUCIpCisJCWlm
IChfZmxhZ3MpCisJCQkjIGFwcGVuZCB0byBsaXN0CisJCQlsaXN0IChBUFBFTkQgX2ZsYWdzIC9u
b2xvZ28gIiR7X3NvdXJjZUZpbGVUeXBlJHtfbGFuZ3VhZ2V9fSIgL0VQIC9zaG93SW5jbHVkZXMp
CisJCWVsc2UoKQorCQkJIyByZXR1cm4gYXMgYSBmbGFnIHN0cmluZworCQkJc2V0IChfZmxhZ3Mg
IiR7X3NvdXJjZUZpbGVUeXBlJHtfbGFuZ3VhZ2V9fSAvRVAgL3Nob3dJbmNsdWRlcyIpCisJCWVu
ZGlmKCkKKwllbHNlaWYgKF9jb21waWxlcklEIE1BVENIRVMgIkdOVSIpCisJCSMgR0NDIG9wdGlv
bnMgdXNlZAorCQkjIC1IIHByaW50IHRoZSBuYW1lIG9mIGVhY2ggaGVhZGVyIGZpbGUgdXNlZAor
CQkjIC1FIGludm9rZSBwcmVwcm9jZXNzb3IKKwkJIyAtZmRpcmVjdGl2ZXMtb25seSBkbyBub3Qg
ZXhwYW5kIG1hY3JvcywgcmVxdWlyZXMgR0NDID49IDQuMworCQlpZiAoX2ZsYWdzKQorCQkJIyBh
cHBlbmQgdG8gbGlzdAorCQkJbGlzdCAoQVBQRU5EIF9mbGFncyAtSCAtRSkKKwkJCWlmIChOT1Qg
IiR7X2NvbXBpbGVyVmVyc2lvbn0iIFZFUlNJT05fTEVTUyAiNC4zLjAiKQorCQkJCWxpc3QgKEFQ
UEVORCBfZmxhZ3MgIi1mZGlyZWN0aXZlcy1vbmx5IikKKwkJCWVuZGlmKCkKKwkJZWxzZSgpCisJ
CQkjIHJldHVybiBhcyBhIGZsYWcgc3RyaW5nCisJCQlzZXQgKF9mbGFncyAiLUggLUUiKQorCQkJ
aWYgKE5PVCAiJHtfY29tcGlsZXJWZXJzaW9ufSIgVkVSU0lPTl9MRVNTICI0LjMuMCIpCisJCQkJ
c2V0IChfZmxhZ3MgIiR7X2ZsYWdzfSAtZmRpcmVjdGl2ZXMtb25seSIpCisJCQllbmRpZigpCisJ
CWVuZGlmKCkKKwllbHNlaWYgKF9jb21waWxlcklEIE1BVENIRVMgIkNsYW5nIikKKwkJIyBDbGFu
ZyBvcHRpb25zIHVzZWQKKwkJIyAtSCBwcmludCB0aGUgbmFtZSBvZiBlYWNoIGhlYWRlciBmaWxl
IHVzZWQKKwkJIyAtRSBpbnZva2UgcHJlcHJvY2Vzc29yCisJCSMgLWZuby1jb2xvci1kaWFnbm9z
dGljcyBkb24ndCBwcmludHMgZGlhZ25vc3RpY3MgaW4gY29sb3IKKwkJaWYgKF9mbGFncykKKwkJ
CSMgYXBwZW5kIHRvIGxpc3QKKwkJCWxpc3QgKEFQUEVORCBfZmxhZ3MgLUggLUUgLWZuby1jb2xv
ci1kaWFnbm9zdGljcykKKwkJZWxzZSgpCisJCQkjIHJldHVybiBhcyBhIGZsYWcgc3RyaW5nCisJ
CQlzZXQgKF9mbGFncyAiLUggLUUgLWZuby1jb2xvci1kaWFnbm9zdGljcyIpCisJCWVuZGlmKCkK
KwllbHNlaWYgKF9jb21waWxlcklEIE1BVENIRVMgIkludGVsIikKKwkJaWYgKFdJTjMyKQorCQkJ
IyBXaW5kb3dzIEludGVsIG9wdGlvbnMgdXNlZAorCQkJIyAvbm9sb2dvIGRvIG5vdCBkaXNwbGF5
IGNvbXBpbGVyIHZlcnNpb24gaW5mb3JtYXRpb24KKwkJCSMgL1FIIGRpc3BsYXkgdGhlIGluY2x1
ZGUgZmlsZSBvcmRlcgorCQkJIyAvRVAgcHJlcHJvY2VzcyB0byBzdGRvdXQsIG9taXR0aW5nICNs
aW5lIGRpcmVjdGl2ZXMKKwkJCSMgL1RDIHByb2Nlc3MgYWxsIHNvdXJjZSBvciB1bnJlY29nbml6
ZWQgZmlsZSB0eXBlcyBhcyBDIHNvdXJjZSBmaWxlcworCQkJIyAvVFAgcHJvY2VzcyBhbGwgc291
cmNlIG9yIHVucmVjb2duaXplZCBmaWxlIHR5cGVzIGFzIEMrKyBzb3VyY2UgZmlsZXMKKwkJCXNl
dCAoX3NvdXJjZUZpbGVUeXBlQyAiL1RDIikKKwkJCXNldCAoX3NvdXJjZUZpbGVUeXBlQ1hYICIv
VFAiKQorCQkJaWYgKF9mbGFncykKKwkJCQkjIGFwcGVuZCB0byBsaXN0CisJCQkJbGlzdCAoQVBQ
RU5EIF9mbGFncyAvbm9sb2dvICIke19zb3VyY2VGaWxlVHlwZSR7X2xhbmd1YWdlfX0iIC9FUCAv
UUgpCisJCQllbHNlKCkKKwkJCQkjIHJldHVybiBhcyBhIGZsYWcgc3RyaW5nCisJCQkJc2V0IChf
ZmxhZ3MgIiR7X3NvdXJjZUZpbGVUeXBlJHtfbGFuZ3VhZ2V9fSAvRVAgL1FIIikKKwkJCWVuZGlm
KCkKKwkJZWxzZSgpCisJCQkjIExpbnV4IC8gTWFjIE9TIFggSW50ZWwgb3B0aW9ucyB1c2VkCisJ
CQkjIC1IIHByaW50IHRoZSBuYW1lIG9mIGVhY2ggaGVhZGVyIGZpbGUgdXNlZAorCQkJIyAtRVAg
cHJlcHJvY2VzcyB0byBzdGRvdXQsIG9taXR0aW5nICNsaW5lIGRpcmVjdGl2ZXMKKwkJCSMgLUtj
KysgcHJvY2VzcyBhbGwgc291cmNlIG9yIHVucmVjb2duaXplZCBmaWxlIHR5cGVzIGFzIEMrKyBz
b3VyY2UgZmlsZXMKKwkJCWlmIChfZmxhZ3MpCisJCQkJIyBhcHBlbmQgdG8gbGlzdAorCQkJCWlm
ICgiJHtfbGFuZ3VhZ2V9IiBTVFJFUVVBTCAiQ1hYIikKKwkJCQkJbGlzdCAoQVBQRU5EIF9mbGFn
cyAtS2MrKykKKwkJCQllbmRpZigpCisJCQkJbGlzdCAoQVBQRU5EIF9mbGFncyAtSCAtRVApCisJ
CQllbHNlKCkKKwkJCQkjIHJldHVybiBhcyBhIGZsYWcgc3RyaW5nCisJCQkJaWYgKCIke19sYW5n
dWFnZX0iIFNUUkVRVUFMICJDWFgiKQorCQkJCQlzZXQgKF9mbGFncyAiLUtjKysgIikKKwkJCQll
bmRpZigpCisJCQkJc2V0IChfZmxhZ3MgIiR7X2ZsYWdzfS1IIC1FUCIpCisJCQllbmRpZigpCisJ
CWVuZGlmKCkKKwllbHNlKCkKKwkJbWVzc2FnZSAoRkFUQUxfRVJST1IgImNvdGlyZTogdW5zdXBw
b3J0ZWQgJHtfbGFuZ3VhZ2V9IGNvbXBpbGVyICR7X2NvbXBpbGVySUR9IHZlcnNpb24gJHtfY29t
cGlsZXJWZXJzaW9ufS4iKQorCWVuZGlmKCkKKwlzZXQgKCR7X2ZsYWdzVmFyfSAke19mbGFnc30g
UEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX2FkZF9wY2hf
Y29tcGlsYXRpb25fZmxhZ3MgX2xhbmd1YWdlIF9jb21waWxlcklEIF9jb21waWxlclZlcnNpb24g
X3ByZWZpeEZpbGUgX3BjaEZpbGUgX2hvc3RGaWxlIF9mbGFnc1ZhcikKKwlzZXQgKF9mbGFncyAk
eyR7X2ZsYWdzVmFyfX0pCisJaWYgKF9jb21waWxlcklEIE1BVENIRVMgIk1TVkMiKQorCQlmaWxl
IChUT19OQVRJVkVfUEFUSCAiJHtfcHJlZml4RmlsZX0iIF9wcmVmaXhGaWxlTmF0aXZlKQorCQlm
aWxlIChUT19OQVRJVkVfUEFUSCAiJHtfcGNoRmlsZX0iIF9wY2hGaWxlTmF0aXZlKQorCQlmaWxl
IChUT19OQVRJVkVfUEFUSCAiJHtfaG9zdEZpbGV9IiBfaG9zdEZpbGVOYXRpdmUpCisJCSMgY2wu
ZXhlIG9wdGlvbnMgdXNlZAorCQkjIC9ZYyBjcmVhdGVzIGEgcHJlY29tcGlsZWQgaGVhZGVyIGZp
bGUKKwkJIyAvRnAgc3BlY2lmaWVzIHByZWNvbXBpbGVkIGhlYWRlciBiaW5hcnkgZmlsZSBuYW1l
CisJCSMgL0ZJIGZvcmNlcyBpbmNsdXNpb24gb2YgZmlsZQorCQkjIC9UQyB0cmVhdCBhbGwgZmls
ZXMgbmFtZWQgb24gdGhlIGNvbW1hbmQgbGluZSBhcyBDIHNvdXJjZSBmaWxlcworCQkjIC9UUCB0
cmVhdCBhbGwgZmlsZXMgbmFtZWQgb24gdGhlIGNvbW1hbmQgbGluZSBhcyBDKysgc291cmNlIGZp
bGVzCisJCSMgL1pzIHN5bnRheCBjaGVjayBvbmx5CisJCSMgL1ptIHByZWNvbXBpbGVkIGhlYWRl
ciBtZW1vcnkgYWxsb2NhdGlvbiBzY2FsaW5nIGZhY3RvcgorCQlzZXQgKF9zb3VyY2VGaWxlVHlw
ZUMgIi9UQyIpCisJCXNldCAoX3NvdXJjZUZpbGVUeXBlQ1hYICIvVFAiKQorCQlpZiAoX2ZsYWdz
KQorCQkJIyBhcHBlbmQgdG8gbGlzdAorCQkJbGlzdCAoQVBQRU5EIF9mbGFncyAvbm9sb2dvICIk
e19zb3VyY2VGaWxlVHlwZSR7X2xhbmd1YWdlfX0iCisJCQkJIi9ZYyR7X3ByZWZpeEZpbGVOYXRp
dmV9IiAiL0ZwJHtfcGNoRmlsZU5hdGl2ZX0iICIvRkkke19wcmVmaXhGaWxlTmF0aXZlfSIgL1pz
ICIke19ob3N0RmlsZU5hdGl2ZX0iKQorCQkJaWYgKENPVElSRV9QQ0hfTUVNT1JZX1NDQUxJTkdf
RkFDVE9SKQorCQkJCWxpc3QgKEFQUEVORCBfZmxhZ3MgIi9abSR7Q09USVJFX1BDSF9NRU1PUllf
U0NBTElOR19GQUNUT1J9IikKKwkJCWVuZGlmKCkKKwkJZWxzZSgpCisJCQkjIHJldHVybiBhcyBh
IGZsYWcgc3RyaW5nCisJCQlzZXQgKF9mbGFncyAiL1ljXCIke19wcmVmaXhGaWxlTmF0aXZlfVwi
IC9GcFwiJHtfcGNoRmlsZU5hdGl2ZX1cIiAvRklcIiR7X3ByZWZpeEZpbGVOYXRpdmV9XCIiKQor
CQkJaWYgKENPVElSRV9QQ0hfTUVNT1JZX1NDQUxJTkdfRkFDVE9SKQorCQkJCXNldCAoX2ZsYWdz
ICIke19mbGFnc30gL1ptJHtDT1RJUkVfUENIX01FTU9SWV9TQ0FMSU5HX0ZBQ1RPUn0iKQorCQkJ
ZW5kaWYoKQorCQllbmRpZigpCisJZWxzZWlmIChfY29tcGlsZXJJRCBNQVRDSEVTICJHTlV8Q2xh
bmciKQorCQkjIEdDQyAvIENsYW5nIG9wdGlvbnMgdXNlZAorCQkjIC14IHNwZWNpZnkgdGhlIHNv
dXJjZSBsYW5ndWFnZQorCQkjIC1jIGNvbXBpbGUgYnV0IGRvIG5vdCBsaW5rCisJCSMgLW8gcGxh
Y2Ugb3V0cHV0IGluIGZpbGUKKwkJIyBub3RlIHRoYXQgd2UgY2Fubm90IHVzZSAtdyB0byBzdXBw
cmVzcyBhbGwgd2FybmluZ3MgdXBvbiBwcmUtY29tcGlsaW5nLCBiZWNhdXNlIHR1cm5pbmcgb2Zm
IGEgd2FybmluZyBtYXkKKwkJIyBhbHRlciBjb21waWxlIGZsYWdzIGFzIGEgc2lkZSBlZmZlY3Qg
KGUuZy4sIC1Xd3JpdGUtc3RyaW5nIGltcGxpZXMgLWZjb25zdC1zdHJpbmdzKQorCQlzZXQgKF94
TGFuZ3VhZ2VfQyAiYy1oZWFkZXIiKQorCQlzZXQgKF94TGFuZ3VhZ2VfQ1hYICJjKystaGVhZGVy
IikKKwkJaWYgKF9mbGFncykKKwkJCSMgYXBwZW5kIHRvIGxpc3QKKwkJCWxpc3QgKEFQUEVORCBf
ZmxhZ3MgIi14IiAiJHtfeExhbmd1YWdlXyR7X2xhbmd1YWdlfX0iICItYyIgIiR7X3ByZWZpeEZp
bGV9IiAtbyAiJHtfcGNoRmlsZX0iKQorCQllbHNlKCkKKwkJCSMgcmV0dXJuIGFzIGEgZmxhZyBz
dHJpbmcKKwkJCXNldCAoX2ZsYWdzICIteCAke194TGFuZ3VhZ2VfJHtfbGFuZ3VhZ2V9fSAtYyBc
IiR7X3ByZWZpeEZpbGV9XCIgLW8gXCIke19wY2hGaWxlfVwiIikKKwkJZW5kaWYoKQorCWVsc2Vp
ZiAoX2NvbXBpbGVySUQgTUFUQ0hFUyAiSW50ZWwiKQorCQlpZiAoV0lOMzIpCisJCQlmaWxlIChU
T19OQVRJVkVfUEFUSCAiJHtfcHJlZml4RmlsZX0iIF9wcmVmaXhGaWxlTmF0aXZlKQorCQkJZmls
ZSAoVE9fTkFUSVZFX1BBVEggIiR7X3BjaEZpbGV9IiBfcGNoRmlsZU5hdGl2ZSkKKwkJCWZpbGUg
KFRPX05BVElWRV9QQVRIICIke19ob3N0RmlsZX0iIF9ob3N0RmlsZU5hdGl2ZSkKKwkJCSMgV2lu
ZG93cyBJbnRlbCBvcHRpb25zIHVzZWQKKwkJCSMgL25vbG9nbyBkbyBub3QgZGlzcGxheSBjb21w
aWxlciB2ZXJzaW9uIGluZm9ybWF0aW9uCisJCQkjIC9ZYyBjcmVhdGUgYSBwcmVjb21waWxlZCBo
ZWFkZXIgKFBDSCkgZmlsZQorCQkJIyAvRnAgc3BlY2lmeSBhIHBhdGggb3IgZmlsZSBuYW1lIGZv
ciBwcmVjb21waWxlZCBoZWFkZXIgZmlsZXMKKwkJCSMgL0ZJIHRlbGxzIHRoZSBwcmVwcm9jZXNz
b3IgdG8gaW5jbHVkZSBhIHNwZWNpZmllZCBmaWxlIG5hbWUgYXMgdGhlIGhlYWRlciBmaWxlCisJ
CQkjIC9UQyBwcm9jZXNzIGFsbCBzb3VyY2Ugb3IgdW5yZWNvZ25pemVkIGZpbGUgdHlwZXMgYXMg
QyBzb3VyY2UgZmlsZXMKKwkJCSMgL1RQIHByb2Nlc3MgYWxsIHNvdXJjZSBvciB1bnJlY29nbml6
ZWQgZmlsZSB0eXBlcyBhcyBDKysgc291cmNlIGZpbGVzCisJCQkjIC9acyBzeW50YXggY2hlY2sg
b25seQorCQkJIyAvV3BjaC1tZXNzYWdlcyBlbmFibGUgZGlhZ25vc3RpY3MgcmVsYXRlZCB0byBw
cmUtY29tcGlsZWQgaGVhZGVycyAocmVxdWlyZXMgSW50ZWwgWEUgMjAxMyBVcGRhdGUgMikKKwkJ
CXNldCAoX3NvdXJjZUZpbGVUeXBlQyAiL1RDIikKKwkJCXNldCAoX3NvdXJjZUZpbGVUeXBlQ1hY
ICIvVFAiKQorCQkJaWYgKF9mbGFncykKKwkJCQkjIGFwcGVuZCB0byBsaXN0CisJCQkJbGlzdCAo
QVBQRU5EIF9mbGFncyAvbm9sb2dvICIke19zb3VyY2VGaWxlVHlwZSR7X2xhbmd1YWdlfX0iCisJ
CQkJCSIvWWMiICIvRnAke19wY2hGaWxlTmF0aXZlfSIgIi9GSSR7X3ByZWZpeEZpbGVOYXRpdmV9
IiAvWnMgIiR7X2hvc3RGaWxlTmF0aXZlfSIpCisJCQkJaWYgKE5PVCAiJHtfY29tcGlsZXJWZXJz
aW9ufSIgVkVSU0lPTl9MRVNTICIxMy4xLjAiKQorCQkJCQlsaXN0IChBUFBFTkQgX2ZsYWdzICIv
V3BjaC1tZXNzYWdlcyIpCisJCQkJZW5kaWYoKQorCQkJZWxzZSgpCisJCQkJIyByZXR1cm4gYXMg
YSBmbGFnIHN0cmluZworCQkJCXNldCAoX2ZsYWdzICIvWWMgL0ZwXCIke19wY2hGaWxlTmF0aXZl
fVwiIC9GSVwiJHtfcHJlZml4RmlsZU5hdGl2ZX1cIiIpCisJCQkJaWYgKE5PVCAiJHtfY29tcGls
ZXJWZXJzaW9ufSIgVkVSU0lPTl9MRVNTICIxMy4xLjAiKQorCQkJCQlzZXQgKF9mbGFncyAiJHtf
ZmxhZ3N9IC9XcGNoLW1lc3NhZ2VzIikKKwkJCQllbmRpZigpCisJCQllbmRpZigpCisJCWVsc2Uo
KQorCQkJIyBMaW51eCAvIE1hYyBPUyBYIEludGVsIG9wdGlvbnMgdXNlZAorCQkJIyAtcGNoLWRp
ciBsb2NhdGlvbiBmb3IgcHJlY29tcGlsZWQgaGVhZGVyIGZpbGVzCisJCQkjIC1wY2gtY3JlYXRl
IG5hbWUgb2YgdGhlIHByZWNvbXBpbGVkIGhlYWRlciAoUENIKSB0byBjcmVhdGUKKwkJCSMgLUtj
KysgcHJvY2VzcyBhbGwgc291cmNlIG9yIHVucmVjb2duaXplZCBmaWxlIHR5cGVzIGFzIEMrKyBz
b3VyY2UgZmlsZXMKKwkJCSMgLWZzeW50YXgtb25seSBjaGVjayBvbmx5IGZvciBjb3JyZWN0IHN5
bnRheAorCQkJIyAtV3BjaC1tZXNzYWdlcyBlbmFibGUgZGlhZ25vc3RpY3MgcmVsYXRlZCB0byBw
cmUtY29tcGlsZWQgaGVhZGVycyAocmVxdWlyZXMgSW50ZWwgWEUgMjAxMyBVcGRhdGUgMikKKwkJ
CWdldF9maWxlbmFtZV9jb21wb25lbnQoX3BjaERpciAiJHtfcGNoRmlsZX0iIERJUkVDVE9SWSkK
KwkJCWdldF9maWxlbmFtZV9jb21wb25lbnQoX3BjaE5hbWUgIiR7X3BjaEZpbGV9IiBOQU1FKQor
CQkJc2V0IChfeExhbmd1YWdlX0MgImMtaGVhZGVyIikKKwkJCXNldCAoX3hMYW5ndWFnZV9DWFgg
ImMrKy1oZWFkZXIiKQorCQkJc2V0IChfcGNoU3VwcHJlc3NNZXNzYWdlcyBGQUxTRSkKKwkJCWlm
ICgiJHtDTUFLRV8ke19sYW5ndWFnZX1fRkxBR1N9IiBNQVRDSEVTICIuKi1Xbm8tcGNoLW1lc3Nh
Z2VzLioiKQorCQkJCXNldChfcGNoU3VwcHJlc3NNZXNzYWdlcyBUUlVFKQorCQkJZW5kaWYoKQor
CQkJaWYgKF9mbGFncykKKwkJCQkjIGFwcGVuZCB0byBsaXN0CisJCQkJaWYgKCIke19sYW5ndWFn
ZX0iIFNUUkVRVUFMICJDWFgiKQorCQkJCQlsaXN0IChBUFBFTkQgX2ZsYWdzIC1LYysrKQorCQkJ
CWVuZGlmKCkKKwkJCQlsaXN0IChBUFBFTkQgX2ZsYWdzICItaW5jbHVkZSIgIiR7X3ByZWZpeEZp
bGV9IiAiLXBjaC1kaXIiICIke19wY2hEaXJ9IiAiLXBjaC1jcmVhdGUiICIke19wY2hOYW1lfSIg
Ii1mc3ludGF4LW9ubHkiICIke19ob3N0RmlsZX0iKQorCQkJCWlmIChOT1QgIiR7X2NvbXBpbGVy
VmVyc2lvbn0iIFZFUlNJT05fTEVTUyAiMTMuMS4wIikKKwkJCQkJaWYgKE5PVCBfcGNoU3VwcHJl
c3NNZXNzYWdlcykKKwkJCQkJCWxpc3QgKEFQUEVORCBfZmxhZ3MgIi1XcGNoLW1lc3NhZ2VzIikK
KwkJCQkJZW5kaWYoKQorCQkJCWVuZGlmKCkKKwkJCWVsc2UoKQorCQkJCSMgcmV0dXJuIGFzIGEg
ZmxhZyBzdHJpbmcKKwkJCQlzZXQgKF9mbGFncyAiLWluY2x1ZGUgXCIke19wcmVmaXhGaWxlfVwi
IC1wY2gtZGlyIFwiJHtfcGNoRGlyfVwiIC1wY2gtY3JlYXRlIFwiJHtfcGNoTmFtZX1cIiIpCisJ
CQkJaWYgKE5PVCAiJHtfY29tcGlsZXJWZXJzaW9ufSIgVkVSU0lPTl9MRVNTICIxMy4xLjAiKQor
CQkJCQlpZiAoTk9UIF9wY2hTdXBwcmVzc01lc3NhZ2VzKQorCQkJCQkJc2V0IChfZmxhZ3MgIiR7
X2ZsYWdzfSAtV3BjaC1tZXNzYWdlcyIpCisJCQkJCWVuZGlmKCkKKwkJCQllbmRpZigpCisJCQll
bmRpZigpCisJCWVuZGlmKCkKKwllbHNlKCkKKwkJbWVzc2FnZSAoRkFUQUxfRVJST1IgImNvdGly
ZTogdW5zdXBwb3J0ZWQgJHtfbGFuZ3VhZ2V9IGNvbXBpbGVyICR7X2NvbXBpbGVySUR9IHZlcnNp
b24gJHtfY29tcGlsZXJWZXJzaW9ufS4iKQorCWVuZGlmKCkKKwlzZXQgKCR7X2ZsYWdzVmFyfSAk
e19mbGFnc30gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJl
X2FkZF9wcmVmaXhfcGNoX2luY2x1c2lvbl9mbGFncyBfbGFuZ3VhZ2UgX2NvbXBpbGVySUQgX2Nv
bXBpbGVyVmVyc2lvbiBfcHJlZml4RmlsZSBfcGNoRmlsZSBfZmxhZ3NWYXIpCisJc2V0IChfZmxh
Z3MgJHske19mbGFnc1Zhcn19KQorCWlmIChfY29tcGlsZXJJRCBNQVRDSEVTICJNU1ZDIikKKwkJ
ZmlsZSAoVE9fTkFUSVZFX1BBVEggIiR7X3ByZWZpeEZpbGV9IiBfcHJlZml4RmlsZU5hdGl2ZSkK
KwkJIyBjbC5leGUgb3B0aW9ucyB1c2VkCisJCSMgL1l1IHVzZXMgYSBwcmVjb21waWxlZCBoZWFk
ZXIgZmlsZSBkdXJpbmcgYnVpbGQKKwkJIyAvRnAgc3BlY2lmaWVzIHByZWNvbXBpbGVkIGhlYWRl
ciBiaW5hcnkgZmlsZSBuYW1lCisJCSMgL0ZJIGZvcmNlcyBpbmNsdXNpb24gb2YgZmlsZQorCQkj
IC9abSBwcmVjb21waWxlZCBoZWFkZXIgbWVtb3J5IGFsbG9jYXRpb24gc2NhbGluZyBmYWN0b3IK
KwkJaWYgKF9wY2hGaWxlKQorCQkJZmlsZSAoVE9fTkFUSVZFX1BBVEggIiR7X3BjaEZpbGV9IiBf
cGNoRmlsZU5hdGl2ZSkKKwkJCWlmIChfZmxhZ3MpCisJCQkJIyBhcHBlbmQgdG8gbGlzdAorCQkJ
CWxpc3QgKEFQUEVORCBfZmxhZ3MgIi9ZdSR7X3ByZWZpeEZpbGVOYXRpdmV9IiAiL0ZwJHtfcGNo
RmlsZU5hdGl2ZX0iICIvRkkke19wcmVmaXhGaWxlTmF0aXZlfSIpCisJCQkJaWYgKENPVElSRV9Q
Q0hfTUVNT1JZX1NDQUxJTkdfRkFDVE9SKQorCQkJCQlsaXN0IChBUFBFTkQgX2ZsYWdzICIvWm0k
e0NPVElSRV9QQ0hfTUVNT1JZX1NDQUxJTkdfRkFDVE9SfSIpCisJCQkJZW5kaWYoKQorCQkJZWxz
ZSgpCisJCQkJIyByZXR1cm4gYXMgYSBmbGFnIHN0cmluZworCQkJCXNldCAoX2ZsYWdzICIvWXVc
IiR7X3ByZWZpeEZpbGVOYXRpdmV9XCIgL0ZwXCIke19wY2hGaWxlTmF0aXZlfVwiIC9GSVwiJHtf
cHJlZml4RmlsZU5hdGl2ZX1cIiIpCisJCQkJaWYgKENPVElSRV9QQ0hfTUVNT1JZX1NDQUxJTkdf
RkFDVE9SKQorCQkJCQlzZXQgKF9mbGFncyAiJHtfZmxhZ3N9IC9abSR7Q09USVJFX1BDSF9NRU1P
UllfU0NBTElOR19GQUNUT1J9IikKKwkJCQllbmRpZigpCisJCQllbmRpZigpCisJCWVsc2UoKQor
CQkJIyBubyBwcmVjb21waWxlZCBoZWFkZXIsIGZvcmNlIGluY2x1c2lvbiBvZiBwcmVmaXggaGVh
ZGVyCisJCQlpZiAoX2ZsYWdzKQorCQkJCSMgYXBwZW5kIHRvIGxpc3QKKwkJCQlsaXN0IChBUFBF
TkQgX2ZsYWdzICIvRkkke19wcmVmaXhGaWxlTmF0aXZlfSIpCisJCQllbHNlKCkKKwkJCQkjIHJl
dHVybiBhcyBhIGZsYWcgc3RyaW5nCisJCQkJc2V0IChfZmxhZ3MgIi9GSVwiJHtfcHJlZml4Rmls
ZU5hdGl2ZX1cIiIpCisJCQllbmRpZigpCisJCWVuZGlmKCkKKwllbHNlaWYgKF9jb21waWxlcklE
IE1BVENIRVMgIkdOVSIpCisJCSMgR0NDIG9wdGlvbnMgdXNlZAorCQkjIC1pbmNsdWRlIHByb2Nl
c3MgaW5jbHVkZSBmaWxlIGFzIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBwcmltYXJ5IHNvdXJjZSBm
aWxlCisJCSMgLVdpbnZhbGlkLXBjaCB3YXJucyBpZiBwcmVjb21waWxlZCBoZWFkZXIgaXMgZm91
bmQgYnV0IGNhbm5vdCBiZSB1c2VkCisJCSMgbm90ZTogY2NhY2hlIHJlcXVpcmVzIHRoZSAtaW5j
bHVkZSBmbGFnIHRvIGJlIHVzZWQgaW4gb3JkZXIgdG8gcHJvY2VzcyBwcmVjb21waWxlZCBoZWFk
ZXIgY29ycmVjdGx5CisJCWlmIChfZmxhZ3MpCisJCQkjIGFwcGVuZCB0byBsaXN0CisJCQlsaXN0
IChBUFBFTkQgX2ZsYWdzICItV2ludmFsaWQtcGNoIiAiLWluY2x1ZGUiICIke19wcmVmaXhGaWxl
fSIpCisJCWVsc2UoKQorCQkJIyByZXR1cm4gYXMgYSBmbGFnIHN0cmluZworCQkJc2V0IChfZmxh
Z3MgIi1XaW52YWxpZC1wY2ggLWluY2x1ZGUgXCIke19wcmVmaXhGaWxlfVwiIikKKwkJZW5kaWYo
KQorCWVsc2VpZiAoX2NvbXBpbGVySUQgTUFUQ0hFUyAiQ2xhbmciKQorCQkjIENsYW5nIG9wdGlv
bnMgdXNlZAorCQkjIC1pbmNsdWRlIHByb2Nlc3MgaW5jbHVkZSBmaWxlIGFzIHRoZSBmaXJzdCBs
aW5lIG9mIHRoZSBwcmltYXJ5IHNvdXJjZSBmaWxlCisJCSMgLWluY2x1ZGUtcGNoIGluY2x1ZGUg
cHJlY29tcGlsZWQgaGVhZGVyIGZpbGUKKwkJIyAtUXVudXNlZC1hcmd1bWVudHMgZG9uJ3QgZW1p
dCB3YXJuaW5nIGZvciB1bnVzZWQgZHJpdmVyIGFyZ3VtZW50cworCQkjIG5vdGU6IGNjYWNoZSBy
ZXF1aXJlcyB0aGUgLWluY2x1ZGUgZmxhZyB0byBiZSB1c2VkIGluIG9yZGVyIHRvIHByb2Nlc3Mg
cHJlY29tcGlsZWQgaGVhZGVyIGNvcnJlY3RseQorCQlpZiAoX2ZsYWdzKQorCQkJIyBhcHBlbmQg
dG8gbGlzdAorCQkJbGlzdCAoQVBQRU5EIF9mbGFncyAiLVF1bnVzZWQtYXJndW1lbnRzIiAiLWlu
Y2x1ZGUiICIke19wcmVmaXhGaWxlfSIpCisJCWVsc2UoKQorCQkJIyByZXR1cm4gYXMgYSBmbGFn
IHN0cmluZworCQkJc2V0IChfZmxhZ3MgIi1RdW51c2VkLWFyZ3VtZW50cyAtaW5jbHVkZSBcIiR7
X3ByZWZpeEZpbGV9XCIiKQorCQllbmRpZigpCisJZWxzZWlmIChfY29tcGlsZXJJRCBNQVRDSEVT
ICJJbnRlbCIpCisJCWlmIChXSU4zMikKKwkJCWZpbGUgKFRPX05BVElWRV9QQVRIICIke19wcmVm
aXhGaWxlfSIgX3ByZWZpeEZpbGVOYXRpdmUpCisJCQkjIFdpbmRvd3MgSW50ZWwgb3B0aW9ucyB1
c2VkCisJCQkjIC9ZdSB1c2UgYSBwcmVjb21waWxlZCBoZWFkZXIgKFBDSCkgZmlsZQorCQkJIyAv
RnAgc3BlY2lmeSBhIHBhdGggb3IgZmlsZSBuYW1lIGZvciBwcmVjb21waWxlZCBoZWFkZXIgZmls
ZXMKKwkJCSMgL0ZJIHRlbGxzIHRoZSBwcmVwcm9jZXNzb3IgdG8gaW5jbHVkZSBhIHNwZWNpZmll
ZCBmaWxlIG5hbWUgYXMgdGhlIGhlYWRlciBmaWxlCisJCQkjIC9XcGNoLW1lc3NhZ2VzIGVuYWJs
ZSBkaWFnbm9zdGljcyByZWxhdGVkIHRvIHByZS1jb21waWxlZCBoZWFkZXJzIChyZXF1aXJlcyBJ
bnRlbCBYRSAyMDEzIFVwZGF0ZSAyKQorCQkJaWYgKF9wY2hGaWxlKQorCQkJCWZpbGUgKFRPX05B
VElWRV9QQVRIICIke19wY2hGaWxlfSIgX3BjaEZpbGVOYXRpdmUpCisJCQkJaWYgKF9mbGFncykK
KwkJCQkJIyBhcHBlbmQgdG8gbGlzdAorCQkJCQlsaXN0IChBUFBFTkQgX2ZsYWdzICIvWXUiICIv
RnAke19wY2hGaWxlTmF0aXZlfSIgIi9GSSR7X3ByZWZpeEZpbGVOYXRpdmV9IikKKwkJCQkJaWYg
KE5PVCAiJHtfY29tcGlsZXJWZXJzaW9ufSIgVkVSU0lPTl9MRVNTICIxMy4xLjAiKQorCQkJCQkJ
bGlzdCAoQVBQRU5EIF9mbGFncyAiL1dwY2gtbWVzc2FnZXMiKQorCQkJCQllbmRpZigpCisJCQkJ
ZWxzZSgpCisJCQkJCSMgcmV0dXJuIGFzIGEgZmxhZyBzdHJpbmcKKwkJCQkJc2V0IChfZmxhZ3Mg
Ii9ZdSAvRnBcIiR7X3BjaEZpbGVOYXRpdmV9XCIgL0ZJXCIke19wcmVmaXhGaWxlTmF0aXZlfVwi
IikKKwkJCQkJaWYgKE5PVCAiJHtfY29tcGlsZXJWZXJzaW9ufSIgVkVSU0lPTl9MRVNTICIxMy4x
LjAiKQorCQkJCQkJc2V0IChfZmxhZ3MgIiR7X2ZsYWdzfSAvV3BjaC1tZXNzYWdlcyIpCisJCQkJ
CWVuZGlmKCkKKwkJCQllbmRpZigpCisJCQllbHNlKCkKKwkJCQkjIG5vIHByZWNvbXBpbGVkIGhl
YWRlciwgZm9yY2UgaW5jbHVzaW9uIG9mIHByZWZpeCBoZWFkZXIKKwkJCQlpZiAoX2ZsYWdzKQor
CQkJCQkjIGFwcGVuZCB0byBsaXN0CisJCQkJCWxpc3QgKEFQUEVORCBfZmxhZ3MgIi9GSSR7X3By
ZWZpeEZpbGVOYXRpdmV9IikKKwkJCQllbHNlKCkKKwkJCQkJIyByZXR1cm4gYXMgYSBmbGFnIHN0
cmluZworCQkJCQlzZXQgKF9mbGFncyAiL0ZJXCIke19wcmVmaXhGaWxlTmF0aXZlfVwiIikKKwkJ
CQllbmRpZigpCisJCQllbmRpZigpCisJCWVsc2UoKQorCQkJIyBMaW51eCAvIE1hYyBPUyBYIElu
dGVsIG9wdGlvbnMgdXNlZAorCQkJIyAtcGNoLWRpciBsb2NhdGlvbiBmb3IgcHJlY29tcGlsZWQg
aGVhZGVyIGZpbGVzCisJCQkjIC1wY2gtdXNlIG5hbWUgb2YgdGhlIHByZWNvbXBpbGVkIGhlYWRl
ciAoUENIKSB0byB1c2UKKwkJCSMgLWluY2x1ZGUgcHJvY2VzcyBpbmNsdWRlIGZpbGUgYXMgdGhl
IGZpcnN0IGxpbmUgb2YgdGhlIHByaW1hcnkgc291cmNlIGZpbGUKKwkJCSMgLVdwY2gtbWVzc2Fn
ZXMgZW5hYmxlIGRpYWdub3N0aWNzIHJlbGF0ZWQgdG8gcHJlLWNvbXBpbGVkIGhlYWRlcnMgKHJl
cXVpcmVzIEludGVsIFhFIDIwMTMgVXBkYXRlIDIpCisJCQlpZiAoX3BjaEZpbGUpCisJCQkJZ2V0
X2ZpbGVuYW1lX2NvbXBvbmVudChfcGNoRGlyICIke19wY2hGaWxlfSIgRElSRUNUT1JZKQorCQkJ
CWdldF9maWxlbmFtZV9jb21wb25lbnQoX3BjaE5hbWUgIiR7X3BjaEZpbGV9IiBOQU1FKQorCQkJ
CXNldCAoX3BjaFN1cHByZXNzTWVzc2FnZXMgRkFMU0UpCisJCQkJaWYgKCIke0NNQUtFXyR7X2xh
bmd1YWdlfV9GTEFHU30iIE1BVENIRVMgIi4qLVduby1wY2gtbWVzc2FnZXMuKiIpCisJCQkJCXNl
dChfcGNoU3VwcHJlc3NNZXNzYWdlcyBUUlVFKQorCQkJCWVuZGlmKCkKKwkJCQlpZiAoX2ZsYWdz
KQorCQkJCQkjIGFwcGVuZCB0byBsaXN0CisJCQkJCWxpc3QgKEFQUEVORCBfZmxhZ3MgIi1pbmNs
dWRlIiAiJHtfcHJlZml4RmlsZX0iICItcGNoLWRpciIgIiR7X3BjaERpcn0iICItcGNoLXVzZSIg
IiR7X3BjaE5hbWV9IikKKwkJCQkJaWYgKE5PVCAiJHtfY29tcGlsZXJWZXJzaW9ufSIgVkVSU0lP
Tl9MRVNTICIxMy4xLjAiKQorCQkJCQkJaWYgKE5PVCBfcGNoU3VwcHJlc3NNZXNzYWdlcykKKwkJ
CQkJCQlsaXN0IChBUFBFTkQgX2ZsYWdzICItV3BjaC1tZXNzYWdlcyIpCisJCQkJCQllbmRpZigp
CisJCQkJCWVuZGlmKCkKKwkJCQllbHNlKCkKKwkJCQkJIyByZXR1cm4gYXMgYSBmbGFnIHN0cmlu
ZworCQkJCQlzZXQgKF9mbGFncyAiLWluY2x1ZGUgXCIke19wcmVmaXhGaWxlfVwiIC1wY2gtZGly
IFwiJHtfcGNoRGlyfVwiIC1wY2gtdXNlIFwiJHtfcGNoTmFtZX1cIiIpCisJCQkJCWlmIChOT1Qg
IiR7X2NvbXBpbGVyVmVyc2lvbn0iIFZFUlNJT05fTEVTUyAiMTMuMS4wIikKKwkJCQkJCWlmIChO
T1QgX3BjaFN1cHByZXNzTWVzc2FnZXMpCisJCQkJCQkJc2V0IChfZmxhZ3MgIiR7X2ZsYWdzfSAt
V3BjaC1tZXNzYWdlcyIpCisJCQkJCQllbmRpZigpCisJCQkJCWVuZGlmKCkKKwkJCQllbmRpZigp
CisJCQllbHNlKCkKKwkJCQkjIG5vIHByZWNvbXBpbGVkIGhlYWRlciwgZm9yY2UgaW5jbHVzaW9u
IG9mIHByZWZpeCBoZWFkZXIKKwkJCQlpZiAoX2ZsYWdzKQorCQkJCQkjIGFwcGVuZCB0byBsaXN0
CisJCQkJCWxpc3QgKEFQUEVORCBfZmxhZ3MgIi1pbmNsdWRlIiAiJHtfcHJlZml4RmlsZX0iKQor
CQkJCWVsc2UoKQorCQkJCQkjIHJldHVybiBhcyBhIGZsYWcgc3RyaW5nCisJCQkJCXNldCAoX2Zs
YWdzICItaW5jbHVkZSBcIiR7X3ByZWZpeEZpbGV9XCIiKQorCQkJCWVuZGlmKCkKKwkJCWVuZGlm
KCkKKwkJZW5kaWYoKQorCWVsc2UoKQorCQltZXNzYWdlIChGQVRBTF9FUlJPUiAiY290aXJlOiB1
bnN1cHBvcnRlZCAke19sYW5ndWFnZX0gY29tcGlsZXIgJHtfY29tcGlsZXJJRH0gdmVyc2lvbiAk
e19jb21waWxlclZlcnNpb259LiIpCisJZW5kaWYoKQorCXNldCAoJHtfZmxhZ3NWYXJ9ICR7X2Zs
YWdzfSBQQVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfcHJl
Y29tcGlsZV9wcmVmaXhfaGVhZGVyIF9wcmVmaXhGaWxlIF9wY2hGaWxlIF9ob3N0RmlsZSkKKwlz
ZXQoX29wdGlvbnMgIiIpCisJc2V0KF9vbmVWYWx1ZUFyZ3MgQ09NUElMRVJfRVhFQ1VUQUJMRSBD
T01QSUxFUl9BUkcxIENPTVBJTEVSX0lEIENPTVBJTEVSX1ZFUlNJT04gTEFOR1VBR0UpCisJc2V0
KF9tdWx0aVZhbHVlQXJncyBDT01QSUxFX0RFRklOSVRJT05TIENPTVBJTEVfRkxBR1MgSU5DTFVE
RV9ESVJFQ1RPUklFUyBTWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUyBTWVMgQ09NUElMRVJfTEFV
TkNIRVIpCisJY21ha2VfcGFyc2VfYXJndW1lbnRzKF9vcHRpb24gIiR7X29wdGlvbnN9IiAiJHtf
b25lVmFsdWVBcmdzfSIgIiR7X211bHRpVmFsdWVBcmdzfSIgJHtBUkdOfSkKKwlpZiAoTk9UIF9v
cHRpb25fTEFOR1VBR0UpCisJCXNldCAoX29wdGlvbl9MQU5HVUFHRSAiQ1hYIikKKwllbmRpZigp
CisJaWYgKE5PVCBfb3B0aW9uX0NPTVBJTEVSX0lEKQorCQlzZXQgKF9vcHRpb25fQ09NUElMRVJf
SUQgIiR7Q01BS0VfJHtfb3B0aW9uX0xBTkdVQUdFfV9JRH0iKQorCWVuZGlmKCkKKwlpZiAoTk9U
IF9vcHRpb25fQ09NUElMRVJfVkVSU0lPTikKKwkJc2V0IChfb3B0aW9uX0NPTVBJTEVSX1ZFUlNJ
T04gIiR7Q01BS0VfJHtfb3B0aW9uX0xBTkdVQUdFfV9DT01QSUxFUl9WRVJTSU9OfSIpCisJZW5k
aWYoKQorCWNvdGlyZV9pbml0X2NvbXBpbGVfY21kKF9jbWQgIiR7X29wdGlvbl9MQU5HVUFHRX0i
ICIke19vcHRpb25fQ09NUElMRVJfTEFVTkNIRVJ9IiAiJHtfb3B0aW9uX0NPTVBJTEVSX0VYRUNV
VEFCTEV9IiAiJHtfb3B0aW9uX0NPTVBJTEVSX0FSRzF9IikKKwljb3RpcmVfYWRkX2RlZmluaXRp
b25zX3RvX2NtZChfY21kICIke19vcHRpb25fTEFOR1VBR0V9IiAke19vcHRpb25fQ09NUElMRV9E
RUZJTklUSU9OU30pCisJY290aXJlX2FkZF9jb21waWxlX2ZsYWdzX3RvX2NtZChfY21kICR7X29w
dGlvbl9DT01QSUxFX0ZMQUdTfSkKKwljb3RpcmVfYWRkX2luY2x1ZGVzX3RvX2NtZChfY21kICIk
e19vcHRpb25fTEFOR1VBR0V9IiBfb3B0aW9uX0lOQ0xVREVfRElSRUNUT1JJRVMgX29wdGlvbl9T
WVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUykKKwljb3RpcmVfYWRkX2ZyYW1ld29ya3NfdG9fY21k
KF9jbWQgIiR7X29wdGlvbl9MQU5HVUFHRX0iIF9vcHRpb25fSU5DTFVERV9ESVJFQ1RPUklFUyBf
b3B0aW9uX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTKQorCWNvdGlyZV9hZGRfcGNoX2NvbXBp
bGF0aW9uX2ZsYWdzKAorCQkiJHtfb3B0aW9uX0xBTkdVQUdFfSIgIiR7X29wdGlvbl9DT01QSUxF
Ul9JRH0iICIke19vcHRpb25fQ09NUElMRVJfVkVSU0lPTn0iCisJCSIke19wcmVmaXhGaWxlfSIg
IiR7X3BjaEZpbGV9IiAiJHtfaG9zdEZpbGV9IiBfY21kKQorCWlmIChDT1RJUkVfVkVSQk9TRSkK
KwkJbWVzc2FnZSAoU1RBVFVTICJleGVjdXRlX3Byb2Nlc3M6ICR7X2NtZH0iKQorCWVuZGlmKCkK
KwlpZiAoX29wdGlvbl9DT01QSUxFUl9JRCBNQVRDSEVTICJNU1ZDIikKKwkJIyBjbC5leGUgbWVz
c2VzIHdpdGggdGhlIG91dHB1dCBzdHJlYW1zIHVubGVzcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFi
bGUgVlNfVU5JQ09ERV9PVVRQVVQgaXMgY2xlYXJlZAorCQl1bnNldCAoRU5We1ZTX1VOSUNPREVf
T1VUUFVUfSkKKwllbHNlaWYgKF9vcHRpb25fQ09NUElMRVJfSUQgTUFUQ0hFUyAiR05VfENsYW5n
IikKKwkJaWYgKF9vcHRpb25fQ09NUElMRVJfTEFVTkNIRVIgTUFUQ0hFUyAiY2NhY2hlIiBPUgor
CQkJX29wdGlvbl9DT01QSUxFUl9FWEVDVVRBQkxFIE1BVENIRVMgImNjYWNoZSIpCisJCQkjIE5l
d2VyIHZlcnNpb25zIG9mIENsYW5nIGFuZCBHQ0Mgc2VlbSB0byBlbWJlZCBhIGNvbXBpbGF0aW9u
IHRpbWVzdGFtcCBpbnRvIHRoZSBwcmVjb21waWxlZCBoZWFkZXIgYmluYXJ5LAorCQkJIyB3aGlj
aCByZXN1bHRzIGluICJmaWxlIGhhcyBiZWVuIG1vZGlmaWVkIHNpbmNlIHRoZSBwcmVjb21waWxl
ZCBoZWFkZXIgd2FzIGJ1aWx0IiBlcnJvcnMgaWYgY2NhY2hlIGlzIHVzZWQuCisJCQkjIFdlIHdv
cmsgYXJvdW5kIHRoZSBwcm9ibGVtIGJ5IGRpc2FibGluZyBjY2FjaGUgdXBvbiBwcmUtY29tcGls
aW5nIHRoZSBwcmVmaXggaGVhZGVyLgorCQkJc2V0IChFTlZ7Q0NBQ0hFX0RJU0FCTEV9ICJ0cnVl
IikKKwkJZW5kaWYoKQorCWVuZGlmKCkKKwlleGVjdXRlX3Byb2Nlc3MoCisJCUNPTU1BTkQgJHtf
Y21kfQorCQlXT1JLSU5HX0RJUkVDVE9SWSAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Igor
CQlSRVNVTFRfVkFSSUFCTEUgX3Jlc3VsdCkKKwlpZiAoX3Jlc3VsdCkKKwkJbWVzc2FnZSAoRkFU
QUxfRVJST1IgImNvdGlyZTogZXJyb3IgJHtfcmVzdWx0fSBwcmVjb21waWxpbmcgJHtfcHJlZml4
RmlsZX0uIikKKwllbmRpZigpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfY2hl
Y2tfcHJlY29tcGlsZWRfaGVhZGVyX3N1cHBvcnQgX2xhbmd1YWdlIF90YXJnZXQgX21zZ1ZhcikK
KwlzZXQgKF91bnN1cHBvcnRlZENvbXBpbGVyCisJCSJQcmVjb21waWxlZCBoZWFkZXJzIG5vdCBz
dXBwb3J0ZWQgZm9yICR7X2xhbmd1YWdlfSBjb21waWxlciAke0NNQUtFXyR7X2xhbmd1YWdlfV9D
T01QSUxFUl9JRH0iKQorCWlmIChDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfSUQgTUFUQ0hF
UyAiTVNWQyIpCisJCSMgc3VwcG9ydGVkIHNpbmNlIFZpc3VhbCBTdHVkaW8gQysrIDYuMAorCQkj
IGFuZCBDTWFrZSBkb2VzIG5vdCBzdXBwb3J0IGFuIGVhcmxpZXIgdmVyc2lvbgorCQlzZXQgKCR7
X21zZ1Zhcn0gIiIgUEFSRU5UX1NDT1BFKQorCWVsc2VpZiAoQ01BS0VfJHtfbGFuZ3VhZ2V9X0NP
TVBJTEVSX0lEIE1BVENIRVMgIkdOVSIpCisJCSMgR0NDIFBDSCBzdXBwb3J0IHJlcXVpcmVzIHZl
cnNpb24gPj0gMy40CisJCWlmICgiJHtDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfVkVSU0lP
Tn0iIFZFUlNJT05fTEVTUyAiMy40LjAiKQorCQkJc2V0ICgke19tc2dWYXJ9ICIke191bnN1cHBv
cnRlZENvbXBpbGVyfSB2ZXJzaW9uICR7Q01BS0VfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVSX1ZFUlNJ
T059LiIgUEFSRU5UX1NDT1BFKQorCQllbHNlKCkKKwkJCXNldCAoJHtfbXNnVmFyfSAiIiBQQVJF
TlRfU0NPUEUpCisJCWVuZGlmKCkKKwllbHNlaWYgKENNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxF
Ul9JRCBNQVRDSEVTICJDbGFuZyIpCisJCSMgYWxsIENsYW5nIHZlcnNpb25zIGhhdmUgUENIIHN1
cHBvcnQKKwkJc2V0ICgke19tc2dWYXJ9ICIiIFBBUkVOVF9TQ09QRSkKKwllbHNlaWYgKENNQUtF
XyR7X2xhbmd1YWdlfV9DT01QSUxFUl9JRCBNQVRDSEVTICJJbnRlbCIpCisJCSMgSW50ZWwgUENI
IHN1cHBvcnQgcmVxdWlyZXMgdmVyc2lvbiA+PSA4LjAuMAorCQlpZiAoIiR7Q01BS0VfJHtfbGFu
Z3VhZ2V9X0NPTVBJTEVSX1ZFUlNJT059IiBWRVJTSU9OX0xFU1MgIjguMC4wIikKKwkJCXNldCAo
JHtfbXNnVmFyfSAiJHtfdW5zdXBwb3J0ZWRDb21waWxlcn0gdmVyc2lvbiAke0NNQUtFXyR7X2xh
bmd1YWdlfV9DT01QSUxFUl9WRVJTSU9OfS4iIFBBUkVOVF9TQ09QRSkKKwkJZWxzZSgpCisJCQlz
ZXQgKCR7X21zZ1Zhcn0gIiIgUEFSRU5UX1NDT1BFKQorCQllbmRpZigpCisJZWxzZSgpCisJCXNl
dCAoJHtfbXNnVmFyfSAiJHtfdW5zdXBwb3J0ZWRDb21waWxlcn0uIiBQQVJFTlRfU0NPUEUpCisJ
ZW5kaWYoKQorCWdldF90YXJnZXRfcHJvcGVydHkoX2xhdW5jaGVyICR7X3RhcmdldH0gJHtfbGFu
Z3VhZ2V9X0NPTVBJTEVSX0xBVU5DSEVSKQorCWlmIChDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElM
RVIgTUFUQ0hFUyAiY2NhY2hlIiBPUiBfbGF1bmNoZXIgTUFUQ0hFUyAiY2NhY2hlIikKKwkJaWYg
KERFRklORUQgRU5We0NDQUNIRV9TTE9QUElORVNTfSkKKwkJCWlmIChOT1QgIiRFTlZ7Q0NBQ0hF
X1NMT1BQSU5FU1N9IiBNQVRDSEVTICJwY2hfZGVmaW5lcyIgT1IgTk9UICIkRU5We0NDQUNIRV9T
TE9QUElORVNTfSIgTUFUQ0hFUyAidGltZV9tYWNyb3MiKQorCQkJCXNldCAoJHtfbXNnVmFyfQor
CQkJCQkiY2NhY2hlIHJlcXVpcmVzIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBDQ0FDSEVfU0xP
UFBJTkVTUyB0byBiZSBzZXQgdG8gXCJwY2hfZGVmaW5lcyx0aW1lX21hY3Jvc1wiLiIKKwkJCQkJ
UEFSRU5UX1NDT1BFKQorCQkJZW5kaWYoKQorCQllbHNlKCkKKwkJCWlmIChfbGF1bmNoZXIgTUFU
Q0hFUyAiY2NhY2hlIikKKwkJCQlnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9jY2FjaGVFeGUgIiR7
X2xhdW5jaGVyfSIgUkVBTFBBVEgpCisJCQllbHNlKCkKKwkJCQlnZXRfZmlsZW5hbWVfY29tcG9u
ZW50KF9jY2FjaGVFeGUgIiR7Q01BS0VfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVSfSIgUkVBTFBBVEgp
CisJCQllbmRpZigpCisJCQlleGVjdXRlX3Byb2Nlc3MoCisJCQkJQ09NTUFORCAiJHtfY2NhY2hl
RXhlfSIgIi0tcHJpbnQtY29uZmlnIgorCQkJCVdPUktJTkdfRElSRUNUT1JZICIke0NNQUtFX0NV
UlJFTlRfQklOQVJZX0RJUn0iCisJCQkJUkVTVUxUX1ZBUklBQkxFIF9yZXN1bHQKKwkJCQlPVVRQ
VVRfVkFSSUFCTEUgX2NjYWNoZUNvbmZpZyBPVVRQVVRfU1RSSVBfVFJBSUxJTkdfV0hJVEVTUEFD
RQorCQkJCUVSUk9SX1FVSUVUKQorCQkJaWYgKF9yZXN1bHQgT1IgTk9UCisJCQkJX2NjYWNoZUNv
bmZpZyBNQVRDSEVTICJzbG9wcGluZXNzLio9Lip0aW1lX21hY3JvcyIgT1IgTk9UCisJCQkJX2Nj
YWNoZUNvbmZpZyBNQVRDSEVTICJzbG9wcGluZXNzLio9LipwY2hfZGVmaW5lcyIpCisJCQkJc2V0
ICgke19tc2dWYXJ9CisJCQkJCSJjY2FjaGUgcmVxdWlyZXMgY29uZmlndXJhdGlvbiBzZXR0aW5n
IFwic2xvcHBpbmVzc1wiIHRvIGJlIHNldCB0byBcInBjaF9kZWZpbmVzLHRpbWVfbWFjcm9zXCIu
IgorCQkJCQlQQVJFTlRfU0NPUEUpCisJCQllbmRpZigpCisJCWVuZGlmKCkKKwllbmRpZigpCisJ
aWYgKEFQUExFKQorCQkjIFBDSCBjb21waWxhdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IEdDQyAvIENs
YW5nIGZvciBtdWx0aS1hcmNoaXRlY3R1cmUgYnVpbGRzIChlLmcuLCBpMzg2LCB4ODZfNjQpCisJ
CWNvdGlyZV9nZXRfY29uZmlndXJhdGlvbl90eXBlcyhfY29uZmlncykKKwkJZm9yZWFjaCAoX2Nv
bmZpZyAke19jb25maWdzfSkKKwkJCXNldCAoX3RhcmdldEZsYWdzICIiKQorCQkJY290aXJlX2dl
dF90YXJnZXRfY29tcGlsZV9mbGFncygiJHtfY29uZmlnfSIgIiR7X2xhbmd1YWdlfSIgIiR7X3Rh
cmdldH0iIF90YXJnZXRGbGFncykKKwkJCWNvdGlyZV9maWx0ZXJfY29tcGlsZV9mbGFncygiJHtf
bGFuZ3VhZ2V9IiAiYXJjaCIgX2FyY2hpdGVjdHVyZXMgX2lnbm9yZSAke190YXJnZXRGbGFnc30p
CisJCQlsaXN0IChMRU5HVEggX2FyY2hpdGVjdHVyZXMgX251bWJlck9mQXJjaGl0ZWN0dXJlcykK
KwkJCWlmIChfbnVtYmVyT2ZBcmNoaXRlY3R1cmVzIEdSRUFURVIgMSkKKwkJCQlzdHJpbmcgKFJF
UExBQ0UgIjsiICIsICIgX2FyY2hpdGVjdHVyZVN0ciAiJHtfYXJjaGl0ZWN0dXJlc30iKQorCQkJ
CXNldCAoJHtfbXNnVmFyfQorCQkJCQkiUHJlY29tcGlsZWQgaGVhZGVycyBub3Qgc3VwcG9ydGVk
IG9uIERhcndpbiBmb3IgbXVsdGktYXJjaGl0ZWN0dXJlIGJ1aWxkcyAoJHtfYXJjaGl0ZWN0dXJl
U3RyfSkuIgorCQkJCQlQQVJFTlRfU0NPUEUpCisJCQkJYnJlYWsoKQorCQkJZW5kaWYoKQorCQll
bmRmb3JlYWNoKCkKKwllbmRpZigpCitlbmRmdW5jdGlvbigpCisKK21hY3JvIChjb3RpcmVfZ2V0
X2ludGVybWVkaWF0ZV9kaXIgX2NvdGlyZURpcikKKwkjICR7Q01BS0VfQ0ZHX0lOVERJUn0gbWF5
IHJlZmVyZW5jZSBhIGJ1aWxkLXRpbWUgdmFyaWFibGUgd2hlbiB1c2luZyBhIGdlbmVyYXRvciB3
aGljaCBzdXBwb3J0cyBjb25maWd1cmF0aW9uIHR5cGVzCisJZ2V0X2ZpbGVuYW1lX2NvbXBvbmVu
dCgke19jb3RpcmVEaXJ9ICIke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vJHtDTUFLRV9DRkdf
SU5URElSfS8ke0NPVElSRV9JTlRESVJ9IiBBQlNPTFVURSkKK2VuZG1hY3JvKCkKKworbWFjcm8g
KGNvdGlyZV9zZXR1cF9maWxlX2V4dGVuc2lvbl92YXJpYWJsZXMpCisJc2V0IChfdW5pdHlGaWxl
RXh0X0MgIi5jIikKKwlzZXQgKF91bml0eUZpbGVFeHRfQ1hYICIuY3h4IikKKwlzZXQgKF9wcmVm
aXhGaWxlRXh0X0MgIi5oIikKKwlzZXQgKF9wcmVmaXhGaWxlRXh0X0NYWCAiLmh4eCIpCisJc2V0
IChfcHJlZml4U291cmNlRmlsZUV4dF9DICIuYyIpCisJc2V0IChfcHJlZml4U291cmNlRmlsZUV4
dF9DWFggIi5jeHgiKQorZW5kbWFjcm8oKQorCitmdW5jdGlvbiAoY290aXJlX21ha2Vfc2luZ2xl
X3VuaXR5X3NvdXJjZV9maWxlX3BhdGggX2xhbmd1YWdlIF90YXJnZXQgX3VuaXR5RmlsZVZhcikK
Kwljb3RpcmVfc2V0dXBfZmlsZV9leHRlbnNpb25fdmFyaWFibGVzKCkKKwlpZiAoTk9UIERFRklO
RUQgX3VuaXR5RmlsZUV4dF8ke19sYW5ndWFnZX0pCisJCXNldCAoJHtfdW5pdHlGaWxlVmFyfSAi
IiBQQVJFTlRfU0NPUEUpCisJCXJldHVybigpCisJZW5kaWYoKQorCXNldCAoX3VuaXR5RmlsZUJh
c2VOYW1lICIke190YXJnZXR9XyR7X2xhbmd1YWdlfSR7Q09USVJFX1VOSVRZX1NPVVJDRV9GSUxF
TkFNRV9TVUZGSVh9IikKKwlzZXQgKF91bml0eUZpbGVOYW1lICIke191bml0eUZpbGVCYXNlTmFt
ZX0ke191bml0eUZpbGVFeHRfJHtfbGFuZ3VhZ2V9fSIpCisJY290aXJlX2dldF9pbnRlcm1lZGlh
dGVfZGlyKF9iYXNlRGlyKQorCXNldCAoX3VuaXR5RmlsZSAiJHtfYmFzZURpcn0vJHtfdW5pdHlG
aWxlTmFtZX0iKQorCXNldCAoJHtfdW5pdHlGaWxlVmFyfSAiJHtfdW5pdHlGaWxlfSIgUEFSRU5U
X1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX21ha2VfdW5pdHlfc291
cmNlX2ZpbGVfcGF0aHMgX2xhbmd1YWdlIF90YXJnZXQgX21heEluY2x1ZGVzIF91bml0eUZpbGVz
VmFyKQorCWNvdGlyZV9zZXR1cF9maWxlX2V4dGVuc2lvbl92YXJpYWJsZXMoKQorCWlmIChOT1Qg
REVGSU5FRCBfdW5pdHlGaWxlRXh0XyR7X2xhbmd1YWdlfSkKKwkJc2V0ICgke191bml0eUZpbGVW
YXJ9ICIiIFBBUkVOVF9TQ09QRSkKKwkJcmV0dXJuKCkKKwllbmRpZigpCisJc2V0IChfdW5pdHlG
aWxlQmFzZU5hbWUgIiR7X3RhcmdldH1fJHtfbGFuZ3VhZ2V9JHtDT1RJUkVfVU5JVFlfU09VUkNF
X0ZJTEVOQU1FX1NVRkZJWH0iKQorCWNvdGlyZV9nZXRfaW50ZXJtZWRpYXRlX2RpcihfYmFzZURp
cikKKwlzZXQgKF9zdGFydEluZGV4IDApCisJc2V0IChfaW5kZXggMCkKKwlzZXQgKF91bml0eUZp
bGVzICIiKQorCXNldCAoX3NvdXJjZUZpbGVzICR7QVJHTn0pCisJZm9yZWFjaCAoX3NvdXJjZUZp
bGUgJHtfc291cmNlRmlsZXN9KQorCQlnZXRfc291cmNlX2ZpbGVfcHJvcGVydHkoX3N0YXJ0TmV3
ICIke19zb3VyY2VGaWxlfSIgQ09USVJFX1NUQVJUX05FV19VTklUWV9TT1VSQ0UpCisJCW1hdGgg
KEVYUFIgX3VuaXR5RmlsZUNvdW50ICIke19pbmRleH0gLSAke19zdGFydEluZGV4fSIpCisJCWlm
IChfc3RhcnROZXcgT1IgKF9tYXhJbmNsdWRlcyBHUkVBVEVSIDAgQU5EIE5PVCBfdW5pdHlGaWxl
Q291bnQgTEVTUyBfbWF4SW5jbHVkZXMpKQorCQkJaWYgKF9pbmRleCBHUkVBVEVSIDApCisJCQkJ
IyBzdGFydCBuZXcgdW5pdHkgZmlsZSBzZWdtZW50CisJCQkJbWF0aCAoRVhQUiBfZW5kSW5kZXgg
IiR7X2luZGV4fSAtIDEiKQorCQkJCXNldCAoX3VuaXR5RmlsZU5hbWUgIiR7X3VuaXR5RmlsZUJh
c2VOYW1lfV8ke19zdGFydEluZGV4fV8ke19lbmRJbmRleH0ke191bml0eUZpbGVFeHRfJHtfbGFu
Z3VhZ2V9fSIpCisJCQkJbGlzdCAoQVBQRU5EIF91bml0eUZpbGVzICIke19iYXNlRGlyfS8ke191
bml0eUZpbGVOYW1lfSIpCisJCQllbmRpZigpCisJCQlzZXQgKF9zdGFydEluZGV4ICR7X2luZGV4
fSkKKwkJZW5kaWYoKQorCQltYXRoIChFWFBSIF9pbmRleCAiJHtfaW5kZXh9ICsgMSIpCisJZW5k
Zm9yZWFjaCgpCisJbGlzdCAoTEVOR1RIIF9zb3VyY2VGaWxlcyBfbnVtYmVyT2ZTb3VyY2VzKQor
CWlmIChfc3RhcnRJbmRleCBFUVVBTCAwKQorCQkjIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdW5p
dHkgZmlsZQorCQljb3RpcmVfbWFrZV9zaW5nbGVfdW5pdHlfc291cmNlX2ZpbGVfcGF0aCgke19s
YW5ndWFnZX0gJHtfdGFyZ2V0fSBfdW5pdHlGaWxlcykKKwllbHNlaWYgKF9zdGFydEluZGV4IExF
U1MgX251bWJlck9mU291cmNlcykKKwkJIyBlbmQgd2l0aCBmaW5hbCB1bml0eSBmaWxlIHNlZ21l
bnQKKwkJbWF0aCAoRVhQUiBfZW5kSW5kZXggIiR7X2luZGV4fSAtIDEiKQorCQlzZXQgKF91bml0
eUZpbGVOYW1lICIke191bml0eUZpbGVCYXNlTmFtZX1fJHtfc3RhcnRJbmRleH1fJHtfZW5kSW5k
ZXh9JHtfdW5pdHlGaWxlRXh0XyR7X2xhbmd1YWdlfX0iKQorCQlsaXN0IChBUFBFTkQgX3VuaXR5
RmlsZXMgIiR7X2Jhc2VEaXJ9LyR7X3VuaXR5RmlsZU5hbWV9IikKKwllbmRpZigpCisJc2V0ICgk
e191bml0eUZpbGVzVmFyfSAke191bml0eUZpbGVzfSBQQVJFTlRfU0NPUEUpCisJaWYgKENPVElS
RV9ERUJVRyBBTkQgX3VuaXR5RmlsZXMpCisJCW1lc3NhZ2UgKFNUQVRVUyAidW5pdHkgZmlsZXM6
ICR7X3VuaXR5RmlsZXN9IikKKwllbmRpZigpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChj
b3RpcmVfdW5pdHlfdG9fcHJlZml4X2ZpbGVfcGF0aCBfbGFuZ3VhZ2UgX3RhcmdldCBfdW5pdHlG
aWxlIF9wcmVmaXhGaWxlVmFyKQorCWNvdGlyZV9zZXR1cF9maWxlX2V4dGVuc2lvbl92YXJpYWJs
ZXMoKQorCWlmIChOT1QgREVGSU5FRCBfdW5pdHlGaWxlRXh0XyR7X2xhbmd1YWdlfSkKKwkJc2V0
ICgke19wcmVmaXhGaWxlVmFyfSAiIiBQQVJFTlRfU0NPUEUpCisJCXJldHVybigpCisJZW5kaWYo
KQorCXNldCAoX3VuaXR5RmlsZUJhc2VOYW1lICIke190YXJnZXR9XyR7X2xhbmd1YWdlfSR7Q09U
SVJFX1VOSVRZX1NPVVJDRV9GSUxFTkFNRV9TVUZGSVh9IikKKwlzZXQgKF9wcmVmaXhGaWxlQmFz
ZU5hbWUgIiR7X3RhcmdldH1fJHtfbGFuZ3VhZ2V9JHtDT1RJUkVfUFJFRklYX0hFQURFUl9GSUxF
TkFNRV9TVUZGSVh9IikKKwlzdHJpbmcgKFJFUExBQ0UgIiR7X3VuaXR5RmlsZUJhc2VOYW1lfSIg
IiR7X3ByZWZpeEZpbGVCYXNlTmFtZX0iIF9wcmVmaXhGaWxlICIke191bml0eUZpbGV9IikKKwlz
dHJpbmcgKFJFR0VYIFJFUExBQ0UgIiR7X3VuaXR5RmlsZUV4dF8ke19sYW5ndWFnZX19JCIgIiR7
X3ByZWZpeEZpbGVFeHRfJHtfbGFuZ3VhZ2V9fSIgX3ByZWZpeEZpbGUgIiR7X3ByZWZpeEZpbGV9
IikKKwlzZXQgKCR7X3ByZWZpeEZpbGVWYXJ9ICIke19wcmVmaXhGaWxlfSIgUEFSRU5UX1NDT1BF
KQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX3ByZWZpeF9oZWFkZXJfdG9fc291
cmNlX2ZpbGVfcGF0aCBfbGFuZ3VhZ2UgX3ByZWZpeEhlYWRlckZpbGUgX3ByZWZpeFNvdXJjZUZp
bGVWYXIpCisJY290aXJlX3NldHVwX2ZpbGVfZXh0ZW5zaW9uX3ZhcmlhYmxlcygpCisJaWYgKE5P
VCBERUZJTkVEIF9wcmVmaXhTb3VyY2VGaWxlRXh0XyR7X2xhbmd1YWdlfSkKKwkJc2V0ICgke19w
cmVmaXhTb3VyY2VGaWxlVmFyfSAiIiBQQVJFTlRfU0NPUEUpCisJCXJldHVybigpCisJZW5kaWYo
KQorCXN0cmluZyAoUkVHRVggUkVQTEFDRSAiJHtfcHJlZml4RmlsZUV4dF8ke19sYW5ndWFnZX19
JCIgIiR7X3ByZWZpeFNvdXJjZUZpbGVFeHRfJHtfbGFuZ3VhZ2V9fSIgX3ByZWZpeFNvdXJjZUZp
bGUgIiR7X3ByZWZpeEhlYWRlckZpbGV9IikKKwlzZXQgKCR7X3ByZWZpeFNvdXJjZUZpbGVWYXJ9
ICIke19wcmVmaXhTb3VyY2VGaWxlfSIgUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitm
dW5jdGlvbiAoY290aXJlX21ha2VfcHJlZml4X2ZpbGVfbmFtZSBfbGFuZ3VhZ2UgX3RhcmdldCBf
cHJlZml4RmlsZUJhc2VOYW1lVmFyIF9wcmVmaXhGaWxlTmFtZVZhcikKKwljb3RpcmVfc2V0dXBf
ZmlsZV9leHRlbnNpb25fdmFyaWFibGVzKCkKKwlpZiAoTk9UIF9sYW5ndWFnZSkKKwkJc2V0IChf
cHJlZml4RmlsZUJhc2VOYW1lICIke190YXJnZXR9JHtDT1RJUkVfUFJFRklYX0hFQURFUl9GSUxF
TkFNRV9TVUZGSVh9IikKKwkJc2V0IChfcHJlZml4RmlsZU5hbWUgIiR7X3ByZWZpeEZpbGVCYXNl
TmFtZX0ke19wcmVmaXhGaWxlRXh0X0N9IikKKwllbHNlaWYgKERFRklORUQgX3ByZWZpeEZpbGVF
eHRfJHtfbGFuZ3VhZ2V9KQorCQlzZXQgKF9wcmVmaXhGaWxlQmFzZU5hbWUgIiR7X3RhcmdldH1f
JHtfbGFuZ3VhZ2V9JHtDT1RJUkVfUFJFRklYX0hFQURFUl9GSUxFTkFNRV9TVUZGSVh9IikKKwkJ
c2V0IChfcHJlZml4RmlsZU5hbWUgIiR7X3ByZWZpeEZpbGVCYXNlTmFtZX0ke19wcmVmaXhGaWxl
RXh0XyR7X2xhbmd1YWdlfX0iKQorCWVsc2UoKQorCQlzZXQgKF9wcmVmaXhGaWxlQmFzZU5hbWUg
IiIpCisJCXNldCAoX3ByZWZpeEZpbGVOYW1lICIiKQorCWVuZGlmKCkKKwlzZXQgKCR7X3ByZWZp
eEZpbGVCYXNlTmFtZVZhcn0gIiR7X3ByZWZpeEZpbGVCYXNlTmFtZX0iIFBBUkVOVF9TQ09QRSkK
KwlzZXQgKCR7X3ByZWZpeEZpbGVOYW1lVmFyfSAiJHtfcHJlZml4RmlsZU5hbWV9IiBQQVJFTlRf
U0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfbWFrZV9wcmVmaXhfZmls
ZV9wYXRoIF9sYW5ndWFnZSBfdGFyZ2V0IF9wcmVmaXhGaWxlVmFyKQorCWNvdGlyZV9tYWtlX3By
ZWZpeF9maWxlX25hbWUoIiR7X2xhbmd1YWdlfSIgIiR7X3RhcmdldH0iIF9wcmVmaXhGaWxlQmFz
ZU5hbWUgX3ByZWZpeEZpbGVOYW1lKQorCXNldCAoJHtfcHJlZml4RmlsZVZhcn0gIiIgUEFSRU5U
X1NDT1BFKQorCWlmIChfcHJlZml4RmlsZU5hbWUpCisJCWlmIChOT1QgX2xhbmd1YWdlKQorCQkJ
c2V0IChfbGFuZ3VhZ2UgIkMiKQorCQllbmRpZigpCisJCWlmIChDTUFLRV8ke19sYW5ndWFnZX1f
Q09NUElMRVJfSUQgTUFUQ0hFUyAiR05VfENsYW5nfEludGVsfE1TVkMiKQorCQkJY290aXJlX2dl
dF9pbnRlcm1lZGlhdGVfZGlyKF9iYXNlRGlyKQorCQkJc2V0ICgke19wcmVmaXhGaWxlVmFyfSAi
JHtfYmFzZURpcn0vJHtfcHJlZml4RmlsZU5hbWV9IiBQQVJFTlRfU0NPUEUpCisJCWVuZGlmKCkK
KwllbmRpZigpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfbWFrZV9wY2hfZmls
ZV9wYXRoIF9sYW5ndWFnZSBfdGFyZ2V0IF9wY2hGaWxlVmFyKQorCWNvdGlyZV9tYWtlX3ByZWZp
eF9maWxlX25hbWUoIiR7X2xhbmd1YWdlfSIgIiR7X3RhcmdldH0iIF9wcmVmaXhGaWxlQmFzZU5h
bWUgX3ByZWZpeEZpbGVOYW1lKQorCXNldCAoJHtfcGNoRmlsZVZhcn0gIiIgUEFSRU5UX1NDT1BF
KQorCWlmIChfcHJlZml4RmlsZUJhc2VOYW1lIEFORCBfcHJlZml4RmlsZU5hbWUpCisJCWNvdGly
ZV9jaGVja19wcmVjb21waWxlZF9oZWFkZXJfc3VwcG9ydCgiJHtfbGFuZ3VhZ2V9IiAiJHtfdGFy
Z2V0fSIgX21zZykKKwkJaWYgKE5PVCBfbXNnKQorCQkJaWYgKFhDT0RFKQorCQkJCSMgRm9yIFhj
b2RlLCB3ZSBjb21wbGV0ZWx5IGhhbmQgb2ZmIHRoZSBjb21waWxhdGlvbiBvZiB0aGUgcHJlZml4
IGhlYWRlciB0byB0aGUgSURFCisJCQkJcmV0dXJuKCkKKwkJCWVuZGlmKCkKKwkJCWNvdGlyZV9n
ZXRfaW50ZXJtZWRpYXRlX2RpcihfYmFzZURpcikKKwkJCWlmIChDTUFLRV8ke19sYW5ndWFnZX1f
Q09NUElMRVJfSUQgTUFUQ0hFUyAiTVNWQyIpCisJCQkJIyBNU1ZDIHVzZXMgdGhlIGV4dGVuc2lv
biAucGNoIGFkZGVkIHRvIHRoZSBwcmVmaXggaGVhZGVyIGJhc2UgbmFtZQorCQkJCXNldCAoJHtf
cGNoRmlsZVZhcn0gIiR7X2Jhc2VEaXJ9LyR7X3ByZWZpeEZpbGVCYXNlTmFtZX0ucGNoIiBQQVJF
TlRfU0NPUEUpCisJCQllbHNlaWYgKENNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9JRCBNQVRD
SEVTICJDbGFuZyIpCisJCQkJIyBDbGFuZyBsb29rcyBmb3IgYSBwcmVjb21waWxlZCBoZWFkZXIg
Y29ycmVzcG9uZGluZyB0byB0aGUgcHJlZml4IGhlYWRlciB3aXRoIHRoZSBleHRlbnNpb24gLnBj
aCBhcHBlbmRlZAorCQkJCXNldCAoJHtfcGNoRmlsZVZhcn0gIiR7X2Jhc2VEaXJ9LyR7X3ByZWZp
eEZpbGVOYW1lfS5wY2giIFBBUkVOVF9TQ09QRSkKKwkJCWVsc2VpZiAoQ01BS0VfJHtfbGFuZ3Vh
Z2V9X0NPTVBJTEVSX0lEIE1BVENIRVMgIkdOVSIpCisJCQkJIyBHQ0MgbG9va3MgZm9yIGEgcHJl
Y29tcGlsZWQgaGVhZGVyIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHByZWZpeCBoZWFkZXIgd2l0aCB0
aGUgZXh0ZW5zaW9uIC5nY2ggYXBwZW5kZWQKKwkJCQlzZXQgKCR7X3BjaEZpbGVWYXJ9ICIke19i
YXNlRGlyfS8ke19wcmVmaXhGaWxlTmFtZX0uZ2NoIiBQQVJFTlRfU0NPUEUpCisJCQllbHNlaWYg
KENNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9JRCBNQVRDSEVTICJJbnRlbCIpCisJCQkJIyBJ
bnRlbCB1c2VzIHRoZSBleHRlbnNpb24gLnBjaGkgYWRkZWQgdG8gdGhlIHByZWZpeCBoZWFkZXIg
YmFzZSBuYW1lCisJCQkJc2V0ICgke19wY2hGaWxlVmFyfSAiJHtfYmFzZURpcn0vJHtfcHJlZml4
RmlsZUJhc2VOYW1lfS5wY2hpIiBQQVJFTlRfU0NPUEUpCisJCQllbmRpZigpCisJCWVuZGlmKCkK
KwllbmRpZigpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfc2VsZWN0X3VuaXR5
X3NvdXJjZV9maWxlcyBfdW5pdHlGaWxlIF9zb3VyY2VzVmFyKQorCXNldCAoX3NvdXJjZUZpbGVz
ICR7QVJHTn0pCisJaWYgKF9zb3VyY2VGaWxlcyBBTkQgIiR7X3VuaXR5RmlsZX0iIE1BVENIRVMg
IiR7Q09USVJFX1VOSVRZX1NPVVJDRV9GSUxFTkFNRV9TVUZGSVh9XyhbMC05XSspXyhbMC05XSsp
IikKKwkJc2V0IChfc3RhcnRJbmRleCAke0NNQUtFX01BVENIXzF9KQorCQlzZXQgKF9lbmRJbmRl
eCAke0NNQUtFX01BVENIXzJ9KQorCQlsaXN0IChMRU5HVEggX3NvdXJjZUZpbGVzIF9udW1iZXJP
ZlNvdXJjZXMpCisJCWlmIChOT1QgX3N0YXJ0SW5kZXggTEVTUyBfbnVtYmVyT2ZTb3VyY2VzKQor
CQkJbWF0aCAoRVhQUiBfc3RhcnRJbmRleCAiJHtfbnVtYmVyT2ZTb3VyY2VzfSAtIDEiKQorCQll
bmRpZigpCisJCWlmIChOT1QgX2VuZEluZGV4IExFU1MgX251bWJlck9mU291cmNlcykKKwkJCW1h
dGggKEVYUFIgX2VuZEluZGV4ICIke19udW1iZXJPZlNvdXJjZXN9IC0gMSIpCisJCWVuZGlmKCkK
KwkJc2V0IChfZmlsZXMgIiIpCisJCWZvcmVhY2ggKF9pbmRleCBSQU5HRSAke19zdGFydEluZGV4
fSAke19lbmRJbmRleH0pCisJCQlsaXN0IChHRVQgX3NvdXJjZUZpbGVzICR7X2luZGV4fSBfZmls
ZSkKKwkJCWxpc3QgKEFQUEVORCBfZmlsZXMgIiR7X2ZpbGV9IikKKwkJZW5kZm9yZWFjaCgpCisJ
ZWxzZSgpCisJCXNldCAoX2ZpbGVzICR7X3NvdXJjZUZpbGVzfSkKKwllbmRpZigpCisJc2V0ICgk
e19zb3VyY2VzVmFyfSAke19maWxlc30gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitm
dW5jdGlvbiAoY290aXJlX2dldF91bml0eV9zb3VyY2VfZGVwZW5kZW5jaWVzIF9sYW5ndWFnZSBf
dGFyZ2V0IF9kZXBlbmRlbmN5U291cmNlc1ZhcikKKwlzZXQgKF9kZXBlbmRlbmN5U291cmNlcyAi
IikKKwkjIGRlcGVuZCBvbiB0YXJnZXQncyBnZW5lcmF0ZWQgc291cmNlIGZpbGVzCisJZ2V0X3Rh
cmdldF9wcm9wZXJ0eShfdGFyZ2V0U291cmNlRmlsZXMgJHtfdGFyZ2V0fSBTT1VSQ0VTKQorCWNv
dGlyZV9nZXRfb2JqZWN0c193aXRoX3Byb3BlcnR5X29uKF9nZW5lcmF0ZWRTb3VyY2VzIEdFTkVS
QVRFRCBTT1VSQ0UgJHtfdGFyZ2V0U291cmNlRmlsZXN9KQorCWlmIChfZ2VuZXJhdGVkU291cmNl
cykKKwkJIyBidXQgb21pdCBhbGwgZ2VuZXJhdGVkIHNvdXJjZSBmaWxlcyB0aGF0IGhhdmUgdGhl
IENPVElSRV9FWENMVURFRCBwcm9wZXJ0eSBzZXQgdG8gdHJ1ZQorCQljb3RpcmVfZ2V0X29iamVj
dHNfd2l0aF9wcm9wZXJ0eV9vbihfZXhjbHVkZWRHZW5lcmF0ZWRTb3VyY2VzIENPVElSRV9FWENM
VURFRCBTT1VSQ0UgJHtfZ2VuZXJhdGVkU291cmNlc30pCisJCWlmIChfZXhjbHVkZWRHZW5lcmF0
ZWRTb3VyY2VzKQorCQkJbGlzdCAoUkVNT1ZFX0lURU0gX2dlbmVyYXRlZFNvdXJjZXMgJHtfZXhj
bHVkZWRHZW5lcmF0ZWRTb3VyY2VzfSkKKwkJZW5kaWYoKQorCQkjIGFuZCBvbWl0IGFsbCBnZW5l
cmF0ZWQgc291cmNlIGZpbGVzIHRoYXQgaGF2ZSB0aGUgQ09USVJFX0RFUEVOREVOQ1kgcHJvcGVy
dHkgc2V0IHRvIGZhbHNlIGV4cGxpY2l0bHkKKwkJY290aXJlX2dldF9vYmplY3RzX3dpdGhfcHJv
cGVydHlfb2ZmKF9leGNsdWRlZE5vbkRlcGVuZGVuY3lTb3VyY2VzIENPVElSRV9ERVBFTkRFTkNZ
IFNPVVJDRSAke19nZW5lcmF0ZWRTb3VyY2VzfSkKKwkJaWYgKF9leGNsdWRlZE5vbkRlcGVuZGVu
Y3lTb3VyY2VzKQorCQkJbGlzdCAoUkVNT1ZFX0lURU0gX2dlbmVyYXRlZFNvdXJjZXMgJHtfZXhj
bHVkZWROb25EZXBlbmRlbmN5U291cmNlc30pCisJCWVuZGlmKCkKKwkJaWYgKF9nZW5lcmF0ZWRT
b3VyY2VzKQorCQkJbGlzdCAoQVBQRU5EIF9kZXBlbmRlbmN5U291cmNlcyAke19nZW5lcmF0ZWRT
b3VyY2VzfSkKKwkJZW5kaWYoKQorCWVuZGlmKCkKKwlpZiAoQ09USVJFX0RFQlVHIEFORCBfZGVw
ZW5kZW5jeVNvdXJjZXMpCisJCW1lc3NhZ2UgKFNUQVRVUyAiJHtfbGFuZ3VhZ2V9ICR7X3Rhcmdl
dH0gdW5pdHkgc291cmNlIGRlcGVuZGVuY2llczogJHtfZGVwZW5kZW5jeVNvdXJjZXN9IikKKwll
bmRpZigpCisJc2V0ICgke19kZXBlbmRlbmN5U291cmNlc1Zhcn0gJHtfZGVwZW5kZW5jeVNvdXJj
ZXN9IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9nZXRf
cHJlZml4X2hlYWRlcl9kZXBlbmRlbmNpZXMgX2xhbmd1YWdlIF90YXJnZXQgX2RlcGVuZGVuY3lT
b3VyY2VzVmFyKQorCXNldCAoX2RlcGVuZGVuY3lTb3VyY2VzICIiKQorCSMgZGVwZW5kIG9uIHRh
cmdldCBzb3VyY2UgZmlsZXMgbWFya2VkIHdpdGggY3VzdG9tIENPVElSRV9ERVBFTkRFTkNZIHBy
b3BlcnR5CisJZ2V0X3RhcmdldF9wcm9wZXJ0eShfdGFyZ2V0U291cmNlRmlsZXMgJHtfdGFyZ2V0
fSBTT1VSQ0VTKQorCWNvdGlyZV9nZXRfb2JqZWN0c193aXRoX3Byb3BlcnR5X29uKF9kZXBlbmRl
bmN5U291cmNlcyBDT1RJUkVfREVQRU5ERU5DWSBTT1VSQ0UgJHtfdGFyZ2V0U291cmNlRmlsZXN9
KQorCWlmIChDT1RJUkVfREVCVUcgQU5EIF9kZXBlbmRlbmN5U291cmNlcykKKwkJbWVzc2FnZSAo
U1RBVFVTICIke19sYW5ndWFnZX0gJHtfdGFyZ2V0fSBwcmVmaXggaGVhZGVyIGRlcGVuZGVuY2ll
czogJHtfZGVwZW5kZW5jeVNvdXJjZXN9IikKKwllbmRpZigpCisJc2V0ICgke19kZXBlbmRlbmN5
U291cmNlc1Zhcn0gJHtfZGVwZW5kZW5jeVNvdXJjZXN9IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0
aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9nZW5lcmF0ZV90YXJnZXRfc2NyaXB0IF9sYW5ndWFn
ZSBfY29uZmlndXJhdGlvbnMgX3RhcmdldCBfdGFyZ2V0U2NyaXB0VmFyIF90YXJnZXRDb25maWdT
Y3JpcHRWYXIpCisJc2V0IChfdGFyZ2V0U291cmNlcyAke0FSR059KQorCWNvdGlyZV9nZXRfcHJl
Zml4X2hlYWRlcl9kZXBlbmRlbmNpZXMoJHtfbGFuZ3VhZ2V9ICR7X3RhcmdldH0gQ09USVJFX1RB
UkdFVF9QUkVGSVhfREVQRU5EUyAke190YXJnZXRTb3VyY2VzfSkKKwljb3RpcmVfZ2V0X3VuaXR5
X3NvdXJjZV9kZXBlbmRlbmNpZXMoJHtfbGFuZ3VhZ2V9ICR7X3RhcmdldH0gQ09USVJFX1RBUkdF
VF9VTklUWV9ERVBFTkRTICR7X3RhcmdldFNvdXJjZXN9KQorCSMgc2V0IHVwIHZhcmlhYmxlcyB0
byBiZSBjb25maWd1cmVkCisJc2V0IChDT1RJUkVfVEFSR0VUX0xBTkdVQUdFICIke19sYW5ndWFn
ZX0iKQorCWdldF90YXJnZXRfcHJvcGVydHkoQ09USVJFX1RBUkdFVF9JR05PUkVfUEFUSCAke190
YXJnZXR9IENPVElSRV9QUkVGSVhfSEVBREVSX0lHTk9SRV9QQVRIKQorCWNvdGlyZV9hZGRfc3lz
X3Jvb3RfcGF0aHMoQ09USVJFX1RBUkdFVF9JR05PUkVfUEFUSCkKKwlnZXRfdGFyZ2V0X3Byb3Bl
cnR5KENPVElSRV9UQVJHRVRfSU5DTFVERV9QQVRIICR7X3RhcmdldH0gQ09USVJFX1BSRUZJWF9I
RUFERVJfSU5DTFVERV9QQVRIKQorCWNvdGlyZV9hZGRfc3lzX3Jvb3RfcGF0aHMoQ09USVJFX1RB
UkdFVF9JTkNMVURFX1BBVEgpCisJZ2V0X3RhcmdldF9wcm9wZXJ0eShDT1RJUkVfVEFSR0VUX1BS
RV9VTkRFRlMgJHtfdGFyZ2V0fSBDT1RJUkVfVU5JVFlfU09VUkNFX1BSRV9VTkRFRlMpCisJZ2V0
X3RhcmdldF9wcm9wZXJ0eShDT1RJUkVfVEFSR0VUX1BPU1RfVU5ERUZTICR7X3RhcmdldH0gQ09U
SVJFX1VOSVRZX1NPVVJDRV9QT1NUX1VOREVGUykKKwlnZXRfdGFyZ2V0X3Byb3BlcnR5KENPVElS
RV9UQVJHRVRfTUFYSU1VTV9OVU1CRVJfT0ZfSU5DTFVERVMgJHtfdGFyZ2V0fSBDT1RJUkVfVU5J
VFlfU09VUkNFX01BWElNVU1fTlVNQkVSX09GX0lOQ0xVREVTKQorCWdldF90YXJnZXRfcHJvcGVy
dHkoQ09USVJFX1RBUkdFVF9JTkNMVURFX1BSSU9SSVRZX1BBVEggJHtfdGFyZ2V0fSBDT1RJUkVf
UFJFRklYX0hFQURFUl9JTkNMVURFX1BSSU9SSVRZX1BBVEgpCisJY290aXJlX2dldF9zb3VyY2Vf
ZmlsZXNfdW5kZWZzKENPVElSRV9VTklUWV9TT1VSQ0VfUFJFX1VOREVGUyBDT1RJUkVfVEFSR0VU
X1NPVVJDRVNfUFJFX1VOREVGUyAke190YXJnZXRTb3VyY2VzfSkKKwljb3RpcmVfZ2V0X3NvdXJj
ZV9maWxlc191bmRlZnMoQ09USVJFX1VOSVRZX1NPVVJDRV9QT1NUX1VOREVGUyBDT1RJUkVfVEFS
R0VUX1NPVVJDRVNfUE9TVF9VTkRFRlMgJHtfdGFyZ2V0U291cmNlc30pCisJc2V0IChDT1RJUkVf
VEFSR0VUX0NPTkZJR1VSQVRJT05fVFlQRVMgIiR7X2NvbmZpZ3VyYXRpb25zfSIpCisJZm9yZWFj
aCAoX2NvbmZpZyAke19jb25maWd1cmF0aW9uc30pCisJCXN0cmluZyAoVE9VUFBFUiAiJHtfY29u
ZmlnfSIgX3VwcGVyQ29uZmlnKQorCQljb3RpcmVfZ2V0X3RhcmdldF9pbmNsdWRlX2RpcmVjdG9y
aWVzKAorCQkJIiR7X2NvbmZpZ30iICIke19sYW5ndWFnZX0iICIke190YXJnZXR9IiBDT1RJUkVf
VEFSR0VUX0lOQ0xVREVfRElSRUNUT1JJRVNfJHtfdXBwZXJDb25maWd9IENPVElSRV9UQVJHRVRf
U1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVNfJHtfdXBwZXJDb25maWd9KQorCQljb3RpcmVfZ2V0
X3RhcmdldF9jb21waWxlX2RlZmluaXRpb25zKAorCQkJIiR7X2NvbmZpZ30iICIke19sYW5ndWFn
ZX0iICIke190YXJnZXR9IiBDT1RJUkVfVEFSR0VUX0NPTVBJTEVfREVGSU5JVElPTlNfJHtfdXBw
ZXJDb25maWd9KQorCQljb3RpcmVfZ2V0X3RhcmdldF9jb21waWxlcl9mbGFncygKKwkJCSIke19j
b25maWd9IiAiJHtfbGFuZ3VhZ2V9IiAiJHtfdGFyZ2V0fSIgQ09USVJFX1RBUkdFVF9DT01QSUxF
X0ZMQUdTXyR7X3VwcGVyQ29uZmlnfSkKKwkJY290aXJlX2dldF9zb3VyY2VfZmlsZXNfY29tcGls
ZV9kZWZpbml0aW9ucygKKwkJCSIke19jb25maWd9IiAiJHtfbGFuZ3VhZ2V9IiBDT1RJUkVfVEFS
R0VUX1NPVVJDRVNfQ09NUElMRV9ERUZJTklUSU9OU18ke191cHBlckNvbmZpZ30gJHtfdGFyZ2V0
U291cmNlc30pCisJZW5kZm9yZWFjaCgpCisJZ2V0X3RhcmdldF9wcm9wZXJ0eShDT1RJUkVfVEFS
R0VUXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9MQVVOQ0hFUiAke190YXJnZXR9ICR7X2xhbmd1YWdl
fV9DT01QSUxFUl9MQVVOQ0hFUikKKwkjIHNldCB1cCBDT1RJUkVfVEFSR0VUX1NPVVJDRVMKKwlz
ZXQgKENPVElSRV9UQVJHRVRfU09VUkNFUyAiIikKKwlmb3JlYWNoIChfc291cmNlRmlsZSAke190
YXJnZXRTb3VyY2VzfSkKKwkJZ2V0X3NvdXJjZV9maWxlX3Byb3BlcnR5KF9nZW5lcmF0ZWQgIiR7
X3NvdXJjZUZpbGV9IiBHRU5FUkFURUQpCisJCWlmIChfZ2VuZXJhdGVkKQorCQkJIyB1c2UgYWJz
b2x1dGUgcGF0aHMgZm9yIGdlbmVyYXRlZCBmaWxlcyBvbmx5LCByZXRyaWV2aW5nIHRoZSBMT0NB
VElPTiBwcm9wZXJ0eSBpcyBhbiBleHBlbnNpdmUgb3BlcmF0aW9uCisJCQlnZXRfc291cmNlX2Zp
bGVfcHJvcGVydHkoX3NvdXJjZUxvY2F0aW9uICIke19zb3VyY2VGaWxlfSIgTE9DQVRJT04pCisJ
CQlsaXN0IChBUFBFTkQgQ09USVJFX1RBUkdFVF9TT1VSQ0VTICIke19zb3VyY2VMb2NhdGlvbn0i
KQorCQllbHNlKCkKKwkJCWxpc3QgKEFQUEVORCBDT1RJUkVfVEFSR0VUX1NPVVJDRVMgIiR7X3Nv
dXJjZUZpbGV9IikKKwkJZW5kaWYoKQorCWVuZGZvcmVhY2goKQorCSMgY29weSB2YXJpYWJsZSBk
ZWZpbml0aW9ucyB0byBjb3RpcmUgdGFyZ2V0IHNjcmlwdAorCWdldF9jbWFrZV9wcm9wZXJ0eShf
dmFycyBWQVJJQUJMRVMpCisJc3RyaW5nIChSRUdFWCBNQVRDSEFMTCAiQ09USVJFX1tBLVphLXow
LTlfXSsiIF9tYXRjaFZhcnMgIiR7X3ZhcnN9IikKKwkjIG9taXQgQ09USVJFXypfSU5JVCB2YXJp
YWJsZXMKKwlzdHJpbmcgKFJFR0VYIE1BVENIQUxMICJDT1RJUkVfW0EtWmEtejAtOV9dK19JTklU
IiBfaW5pdFZhcnMgIiR7X21hdGNoVmFyc30iKQorCWlmIChfaW5pdFZhcnMpCisJCWxpc3QgKFJF
TU9WRV9JVEVNIF9tYXRjaFZhcnMgJHtfaW5pdFZhcnN9KQorCWVuZGlmKCkKKwkjIG9taXQgQ09U
SVJFX1ZFUkJPU0Ugd2hpY2ggaXMgcGFzc2VkIGFzIGEgQ01ha2UgZGVmaW5lIG9uIGNvbW1hbmQg
bGluZQorCWxpc3QgKFJFTU9WRV9JVEVNIF9tYXRjaFZhcnMgQ09USVJFX1ZFUkJPU0UpCisJc2V0
IChfY29udGVudHMgIiIpCisJc2V0IChfY29udGVudHNIYXNHZW5lcmF0b3JFeHByZXNzaW9ucyBG
QUxTRSkKKwlmb3JlYWNoIChfdmFyIElOIExJU1RTIF9tYXRjaFZhcnMgSVRFTVMKKwkJWENPREUg
TVNWQyBDTUFLRV9HRU5FUkFUT1IgQ01BS0VfQlVJTERfVFlQRSBDTUFLRV9DT05GSUdVUkFUSU9O
X1RZUEVTCisJCUNNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9JRCBDTUFLRV8ke19sYW5ndWFn
ZX1fQ09NUElMRVJfVkVSU0lPTgorCQlDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfTEFVTkNI
RVIgQ01BS0VfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVSIENNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxF
Ul9BUkcxCisJCUNNQUtFX0lOQ0xVREVfRkxBR18ke19sYW5ndWFnZX0gQ01BS0VfSU5DTFVERV9G
TEFHX1NFUF8ke19sYW5ndWFnZX0KKwkJQ01BS0VfSU5DTFVERV9TWVNURU1fRkxBR18ke19sYW5n
dWFnZX0KKwkJQ01BS0VfJHtfbGFuZ3VhZ2V9X0ZSQU1FV09SS19TRUFSQ0hfRkxBRworCQlDTUFL
RV8ke19sYW5ndWFnZX1fU1lTVEVNX0ZSQU1FV09SS19TRUFSQ0hfRkxBRworCQlDTUFLRV8ke19s
YW5ndWFnZX1fU09VUkNFX0ZJTEVfRVhURU5TSU9OUykKKwkJaWYgKERFRklORUQgJHtfdmFyfSkK
KwkJCXN0cmluZyAoUkVQTEFDRSAiXCIiICJcXFwiIiBfdmFsdWUgIiR7JHtfdmFyfX0iKQorCQkJ
c2V0IChfY29udGVudHMgIiR7X2NvbnRlbnRzfXNldCAoJHtfdmFyfSBcIiR7X3ZhbHVlfVwiKVxu
IikKKwkJCWlmIChOT1QgX2NvbnRlbnRzSGFzR2VuZXJhdG9yRXhwcmVzc2lvbnMpCisJCQkJaWYg
KCIke192YWx1ZX0iIE1BVENIRVMgIlxcJDwuKj4iKQorCQkJCQlzZXQgKF9jb250ZW50c0hhc0dl
bmVyYXRvckV4cHJlc3Npb25zIFRSVUUpCisJCQkJZW5kaWYoKQorCQkJZW5kaWYoKQorCQllbmRp
ZigpCisJZW5kZm9yZWFjaCgpCisJIyBnZW5lcmF0ZSB0YXJnZXQgc2NyaXB0IGZpbGUKKwlnZXRf
ZmlsZW5hbWVfY29tcG9uZW50KF9tb2R1bGVOYW1lICIke0NPVElSRV9DTUFLRV9NT0RVTEVfRklM
RX0iIE5BTUUpCisJc2V0IChfdGFyZ2V0Q290aXJlU2NyaXB0ICIke0NNQUtFX0NVUlJFTlRfQklO
QVJZX0RJUn0vJHtfdGFyZ2V0fV8ke19sYW5ndWFnZX1fJHtfbW9kdWxlTmFtZX0iKQorCWNvdGly
ZV93cml0ZV9maWxlKCJDTUFLRSIgIiR7X3RhcmdldENvdGlyZVNjcmlwdH0iICIke19jb250ZW50
c30iIEZBTFNFKQorCWlmIChfY29udGVudHNIYXNHZW5lcmF0b3JFeHByZXNzaW9ucykKKwkJIyB1
c2UgZmlsZShHRU5FUkFURSAuLi4pIHRvIGV4cGFuZCBnZW5lcmF0b3IgZXhwcmVzc2lvbnMgaW4g
dGhlIHRhcmdldCBzY3JpcHQgYXQgQ01ha2UgZ2VuZXJhdGUtdGltZQorCQlzZXQgKF9jb25maWdO
YW1lT3JOb25lR2VuZXJhdG9yRXhwcmVzc2lvbiAiJDwkPENPTkZJRzo+Ok5vbmU+JDwkPE5PVDok
PENPTkZJRzo+PjokPENPTkZJR1VSQVRJT04+PiIpCisJCXNldCAoX3RhcmdldENvdGlyZUNvbmZp
Z1NjcmlwdCAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7X3RhcmdldH1fJHtfbGFuZ3Vh
Z2V9XyR7X2NvbmZpZ05hbWVPck5vbmVHZW5lcmF0b3JFeHByZXNzaW9ufV8ke19tb2R1bGVOYW1l
fSIpCisJCWZpbGUgKEdFTkVSQVRFIE9VVFBVVCAiJHtfdGFyZ2V0Q290aXJlQ29uZmlnU2NyaXB0
fSIgSU5QVVQgIiR7X3RhcmdldENvdGlyZVNjcmlwdH0iKQorCWVsc2UoKQorCQlzZXQgKF90YXJn
ZXRDb3RpcmVDb25maWdTY3JpcHQgIiR7X3RhcmdldENvdGlyZVNjcmlwdH0iKQorCWVuZGlmKCkK
KwlzZXQgKCR7X3RhcmdldFNjcmlwdFZhcn0gIiR7X3RhcmdldENvdGlyZVNjcmlwdH0iIFBBUkVO
VF9TQ09QRSkKKwlzZXQgKCR7X3RhcmdldENvbmZpZ1NjcmlwdFZhcn0gIiR7X3RhcmdldENvdGly
ZUNvbmZpZ1NjcmlwdH0iIFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24g
KGNvdGlyZV9zZXR1cF9wY2hfZmlsZV9jb21waWxhdGlvbiBfbGFuZ3VhZ2UgX3RhcmdldCBfdGFy
Z2V0U2NyaXB0IF9wcmVmaXhGaWxlIF9wY2hGaWxlIF9ob3N0RmlsZSkKKwlzZXQgKF9zb3VyY2VG
aWxlcyAke0FSR059KQorCWlmIChDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfSUQgTUFUQ0hF
UyAiTVNWQ3xJbnRlbCIpCisJCSMgZm9yIFZpc3VhbCBTdHVkaW8gYW5kIEludGVsLCB3ZSBhdHRh
Y2ggdGhlIHByZWNvbXBpbGVkIGhlYWRlciBjb21waWxhdGlvbiB0byB0aGUgaG9zdCBmaWxlCisJ
CSMgdGhlIHJlbWFpbmluZyBmaWxlcyBpbmNsdWRlIHRoZSBwcmVjb21waWxlZCBoZWFkZXIsIHNl
ZSBjb3RpcmVfc2V0dXBfcGNoX2ZpbGVfaW5jbHVzaW9uCisJCWlmIChfc291cmNlRmlsZXMpCisJ
CQlzZXQgKF9mbGFncyAiIikKKwkJCWNvdGlyZV9hZGRfcGNoX2NvbXBpbGF0aW9uX2ZsYWdzKAor
CQkJCSIke19sYW5ndWFnZX0iICIke0NNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9JRH0iICIk
e0NNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9WRVJTSU9OfSIKKwkJCQkiJHtfcHJlZml4Rmls
ZX0iICIke19wY2hGaWxlfSIgIiR7X2hvc3RGaWxlfSIgX2ZsYWdzKQorCQkJc2V0X3Byb3BlcnR5
IChTT1VSQ0UgJHtfaG9zdEZpbGV9IEFQUEVORF9TVFJJTkcgUFJPUEVSVFkgQ09NUElMRV9GTEFH
UyAiICR7X2ZsYWdzfSAiKQorCQkJc2V0X3Byb3BlcnR5IChTT1VSQ0UgJHtfaG9zdEZpbGV9IEFQ
UEVORCBQUk9QRVJUWSBPQkpFQ1RfT1VUUFVUUyAiJHtfcGNoRmlsZX0iKQorCQkJIyBtYWtlIG9i
amVjdCBmaWxlIGdlbmVyYXRlZCBmcm9tIGhvc3QgZmlsZSBkZXBlbmQgb24gcHJlZml4IGhlYWRl
cgorCQkJc2V0X3Byb3BlcnR5IChTT1VSQ0UgJHtfaG9zdEZpbGV9IEFQUEVORCBQUk9QRVJUWSBP
QkpFQ1RfREVQRU5EUyAiJHtfcHJlZml4RmlsZX0iKQorCQkJIyBtYXJrIGhvc3QgZmlsZSBhcyBj
b3RpcmVkIHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZyB1c2VkIGluIGFub3RoZXIgY290aXJlZCB0
YXJnZXQKKwkJCXNldF9wcm9wZXJ0eSAoU09VUkNFICR7X2hvc3RGaWxlfSBQUk9QRVJUWSBDT1RJ
UkVfVEFSR0VUICIke190YXJnZXR9IikKKwkJZW5kaWYoKQorCWVsc2VpZiAoIiR7Q01BS0VfR0VO
RVJBVE9SfSIgTUFUQ0hFUyAiTWFrZXxOaW5qYSIpCisJCSMgZm9yIG1ha2VmaWxlIGJhc2VkIGdl
bmVyYXRvciwgd2UgYWRkIGEgY3VzdG9tIGNvbW1hbmQgdG8gcHJlY29tcGlsZSB0aGUgcHJlZml4
IGhlYWRlcgorCQlpZiAoX3RhcmdldFNjcmlwdCkKKwkJCWNvdGlyZV9zZXRfY21kX3RvX3Byb2xv
Z3VlKF9jbWRzKQorCQkJbGlzdCAoQVBQRU5EIF9jbWRzIC1QICIke0NPVElSRV9DTUFLRV9NT0RV
TEVfRklMRX0iICJwcmVjb21waWxlIiAiJHtfdGFyZ2V0U2NyaXB0fSIgIiR7X3ByZWZpeEZpbGV9
IiAiJHtfcGNoRmlsZX0iICIke19ob3N0RmlsZX0iKQorCQkJaWYgKE1TVkNfSURFKQorCQkJCWZp
bGUgKFRPX05BVElWRV9QQVRIICIke19wY2hGaWxlfSIgX3BjaEZpbGVMb2dQYXRoKQorCQkJZWxz
ZSgpCisJCQkJZmlsZSAoUkVMQVRJVkVfUEFUSCBfcGNoRmlsZUxvZ1BhdGggIiR7Q01BS0VfQklO
QVJZX0RJUn0iICIke19wY2hGaWxlfSIpCisJCQllbmRpZigpCisJCQkjIG1ha2UgcHJlY29tcGls
ZWQgaGVhZGVyIGNvbXBpbGF0aW9uIGRlcGVuZCBvbiB0aGUgYWN0dWFsIGNvbXBpbGVyIGV4ZWN1
dGFibGUgdXNlZCB0byBmb3JjZQorCQkJIyByZS1jb21waWxhdGlvbiB3aGVuIHRoZSBjb21waWxl
ciBleGVjdXRhYmxlIGlzIHVwZGF0ZWQuIFRoaXMgcHJldmVudHMgImNyZWF0ZWQgYnkgYSBkaWZm
ZXJlbnQgR0NDIGV4ZWN1dGFibGUiCisJCQkjIHdhcm5pbmdzIHdoZW4gdGhlIHByZWNvbXBpbGVk
IGhlYWRlciBpcyBpbmNsdWRlZC4KKwkJCWdldF9maWxlbmFtZV9jb21wb25lbnQoX3JlYWxDb21w
aWxlckV4ZSAiJHtDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJ9IiBBQlNPTFVURSkKKwkJCWlm
IChDT1RJUkVfREVCVUcpCisJCQkJbWVzc2FnZSAoU1RBVFVTICJhZGRfY3VzdG9tX2NvbW1hbmQ6
IE9VVFBVVCAke19wY2hGaWxlfSAke19jbWRzfSBERVBFTkRTICR7X3ByZWZpeEZpbGV9ICR7X3Jl
YWxDb21waWxlckV4ZX0gSU1QTElDSVRfREVQRU5EUyAke19sYW5ndWFnZX0gJHtfcHJlZml4Rmls
ZX0iKQorCQkJZW5kaWYoKQorCQkJc2V0X3Byb3BlcnR5IChTT1VSQ0UgIiR7X3BjaEZpbGV9IiBQ
Uk9QRVJUWSBHRU5FUkFURUQgVFJVRSkKKwkJCWFkZF9jdXN0b21fY29tbWFuZCgKKwkJCQlPVVRQ
VVQgIiR7X3BjaEZpbGV9IgorCQkJCUNPTU1BTkQgJHtfY21kc30KKwkJCQlERVBFTkRTICIke19w
cmVmaXhGaWxlfSIgIiR7X3JlYWxDb21waWxlckV4ZX0iCisJCQkJSU1QTElDSVRfREVQRU5EUyAk
e19sYW5ndWFnZX0gIiR7X3ByZWZpeEZpbGV9IgorCQkJCVdPUktJTkdfRElSRUNUT1JZICIke0NN
QUtFX0NVUlJFTlRfU09VUkNFX0RJUn0iCisJCQkJQ09NTUVOVCAiQnVpbGRpbmcgJHtfbGFuZ3Vh
Z2V9IHByZWNvbXBpbGVkIGhlYWRlciAke19wY2hGaWxlTG9nUGF0aH0iCisJCQkJVkVSQkFUSU0p
CisJCWVuZGlmKCkKKwllbmRpZigpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVf
c2V0dXBfcGNoX2ZpbGVfaW5jbHVzaW9uIF9sYW5ndWFnZSBfdGFyZ2V0IF93aG9sZVRhcmdldCBf
cHJlZml4RmlsZSBfcGNoRmlsZSBfaG9zdEZpbGUpCisJaWYgKENNQUtFXyR7X2xhbmd1YWdlfV9D
T01QSUxFUl9JRCBNQVRDSEVTICJNU1ZDfEludGVsIikKKwkJIyBmb3IgVmlzdWFsIFN0dWRpbyBh
bmQgSW50ZWwsIHdlIGluY2x1ZGUgdGhlIHByZWNvbXBpbGVkIGhlYWRlciBpbiBhbGwgYnV0IHRo
ZSBob3N0IGZpbGUKKwkJIyB0aGUgaG9zdCBmaWxlIGRvZXMgdGhlIHByZWNvbXBpbGVkIGhlYWRl
ciBjb21waWxhdGlvbiwgc2VlIGNvdGlyZV9zZXR1cF9wY2hfZmlsZV9jb21waWxhdGlvbgorCQlz
ZXQgKF9zb3VyY2VGaWxlcyAke0FSR059KQorCQlsaXN0IChMRU5HVEggX3NvdXJjZUZpbGVzIF9u
dW1iZXJPZlNvdXJjZUZpbGVzKQorCQlpZiAoX251bWJlck9mU291cmNlRmlsZXMgR1JFQVRFUiAw
KQorCQkJIyBtYXJrIHNvdXJjZXMgYXMgY290aXJlZCB0byBwcmV2ZW50IHRoZW0gZnJvbSBiZWlu
ZyB1c2VkIGluIGFub3RoZXIgY290aXJlZCB0YXJnZXQKKwkJCXNldF9zb3VyY2VfZmlsZXNfcHJv
cGVydGllcygke19zb3VyY2VGaWxlc30gUFJPUEVSVElFUyBDT1RJUkVfVEFSR0VUICIke190YXJn
ZXR9IikKKwkJCXNldCAoX2ZsYWdzICIiKQorCQkJY290aXJlX2FkZF9wcmVmaXhfcGNoX2luY2x1
c2lvbl9mbGFncygKKwkJCQkiJHtfbGFuZ3VhZ2V9IiAiJHtDTUFLRV8ke19sYW5ndWFnZX1fQ09N
UElMRVJfSUR9IiAiJHtDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfVkVSU0lPTn0iCisJCQkJ
IiR7X3ByZWZpeEZpbGV9IiAiJHtfcGNoRmlsZX0iIF9mbGFncykKKwkJCXNldF9wcm9wZXJ0eSAo
U09VUkNFICR7X3NvdXJjZUZpbGVzfSBBUFBFTkRfU1RSSU5HIFBST1BFUlRZIENPTVBJTEVfRkxB
R1MgIiAke19mbGFnc30gIikKKwkJCSMgbWFrZSBvYmplY3QgZmlsZXMgZ2VuZXJhdGVkIGZyb20g
c291cmNlIGZpbGVzIGRlcGVuZCBvbiBwcmVjb21waWxlZCBoZWFkZXIKKwkJCXNldF9wcm9wZXJ0
eSAoU09VUkNFICR7X3NvdXJjZUZpbGVzfSBBUFBFTkQgUFJPUEVSVFkgT0JKRUNUX0RFUEVORFMg
IiR7X3BjaEZpbGV9IikKKwkJZW5kaWYoKQorCWVsc2VpZiAoIiR7Q01BS0VfR0VORVJBVE9SfSIg
TUFUQ0hFUyAiTWFrZXxOaW5qYSIpCisJCXNldCAoX3NvdXJjZUZpbGVzICR7X2hvc3RGaWxlfSAk
e0FSR059KQorCQlpZiAoTk9UIF93aG9sZVRhcmdldCkKKwkJCSMgZm9yIG1ha2VmaWxlIGJhc2Vk
IGdlbmVyYXRvciwgd2UgZm9yY2UgdGhlIGluY2x1c2lvbiBvZiB0aGUgcHJlZml4IGhlYWRlciBm
b3IgYSBzdWJzZXQKKwkJCSMgb2YgdGhlIHNvdXJjZSBmaWxlcywgaWYgdGhpcyBpcyBhIG11bHRp
LWxhbmd1YWdlIHRhcmdldCBvciBoYXMgZXhjbHVkZWQgZmlsZXMKKwkJCXNldCAoX2ZsYWdzICIi
KQorCQkJY290aXJlX2FkZF9wcmVmaXhfcGNoX2luY2x1c2lvbl9mbGFncygKKwkJCQkiJHtfbGFu
Z3VhZ2V9IiAiJHtDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfSUR9IiAiJHtDTUFLRV8ke19s
YW5ndWFnZX1fQ09NUElMRVJfVkVSU0lPTn0iCisJCQkJIiR7X3ByZWZpeEZpbGV9IiAiJHtfcGNo
RmlsZX0iIF9mbGFncykKKwkJCXNldF9wcm9wZXJ0eSAoU09VUkNFICR7X3NvdXJjZUZpbGVzfSBB
UFBFTkRfU1RSSU5HIFBST1BFUlRZIENPTVBJTEVfRkxBR1MgIiAke19mbGFnc30gIikKKwkJCSMg
bWFyayBzb3VyY2VzIGFzIGNvdGlyZWQgdG8gcHJldmVudCB0aGVtIGZyb20gYmVpbmcgdXNlZCBp
biBhbm90aGVyIGNvdGlyZWQgdGFyZ2V0CisJCQlzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMo
JHtfc291cmNlRmlsZXN9IFBST1BFUlRJRVMgQ09USVJFX1RBUkdFVCAiJHtfdGFyZ2V0fSIpCisJ
CWVuZGlmKCkKKwkJIyBtYWtlIG9iamVjdCBmaWxlcyBnZW5lcmF0ZWQgZnJvbSBzb3VyY2UgZmls
ZXMgZGVwZW5kIG9uIHByZWNvbXBpbGVkIGhlYWRlcgorCQlzZXRfcHJvcGVydHkgKFNPVVJDRSAk
e19zb3VyY2VGaWxlc30gQVBQRU5EIFBST1BFUlRZIE9CSkVDVF9ERVBFTkRTICIke19wY2hGaWxl
fSIpCisJZW5kaWYoKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX3NldHVwX3By
ZWZpeF9maWxlX2luY2x1c2lvbiBfbGFuZ3VhZ2UgX3RhcmdldCBfcHJlZml4RmlsZSkKKwlzZXQg
KF9zb3VyY2VGaWxlcyAke0FSR059KQorCSMgZm9yY2UgdGhlIGluY2x1c2lvbiBvZiB0aGUgcHJl
Zml4IGhlYWRlciBmb3IgdGhlIGdpdmVuIHNvdXJjZSBmaWxlcworCXNldCAoX2ZsYWdzICIiKQor
CXNldCAoX3BjaEZpbGUgIiIpCisJY290aXJlX2FkZF9wcmVmaXhfcGNoX2luY2x1c2lvbl9mbGFn
cygKKwkJIiR7X2xhbmd1YWdlfSIgIiR7Q01BS0VfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVSX0lEfSIg
IiR7Q01BS0VfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVSX1ZFUlNJT059IgorCQkiJHtfcHJlZml4Rmls
ZX0iICIke19wY2hGaWxlfSIgX2ZsYWdzKQorCXNldF9wcm9wZXJ0eSAoU09VUkNFICR7X3NvdXJj
ZUZpbGVzfSBBUFBFTkRfU1RSSU5HIFBST1BFUlRZIENPTVBJTEVfRkxBR1MgIiAke19mbGFnc30g
IikKKwkjIG1hcmsgc291cmNlcyBhcyBjb3RpcmVkIHRvIHByZXZlbnQgdGhlbSBmcm9tIGJlaW5n
IHVzZWQgaW4gYW5vdGhlciBjb3RpcmVkIHRhcmdldAorCXNldF9zb3VyY2VfZmlsZXNfcHJvcGVy
dGllcygke19zb3VyY2VGaWxlc30gUFJPUEVSVElFUyBDT1RJUkVfVEFSR0VUICIke190YXJnZXR9
IikKKwkjIG1ha2Ugb2JqZWN0IGZpbGVzIGdlbmVyYXRlZCBmcm9tIHNvdXJjZSBmaWxlcyBkZXBl
bmQgb24gcHJlZml4IGhlYWRlcgorCXNldF9wcm9wZXJ0eSAoU09VUkNFICR7X3NvdXJjZUZpbGVz
fSBBUFBFTkQgUFJPUEVSVFkgT0JKRUNUX0RFUEVORFMgIiR7X3ByZWZpeEZpbGV9IikKK2VuZGZ1
bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9nZXRfZmlyc3Rfc2V0X3Byb3BlcnR5X3ZhbHVl
IF9wcm9wZXJ0eVZhbHVlVmFyIF90eXBlIF9vYmplY3QpCisJc2V0IChfcHJvcGVydGllcyAke0FS
R059KQorCWZvcmVhY2ggKF9wcm9wZXJ0eSAke19wcm9wZXJ0aWVzfSkKKwkJZ2V0X3Byb3BlcnR5
KF9wcm9wZXJ0eVZhbHVlICR7X3R5cGV9ICIke19vYmplY3R9IiBQUk9QRVJUWSAke19wcm9wZXJ0
eX0pCisJCWlmIChfcHJvcGVydHlWYWx1ZSkKKwkJCXNldCAoJHtfcHJvcGVydHlWYWx1ZVZhcn0g
JHtfcHJvcGVydHlWYWx1ZX0gUEFSRU5UX1NDT1BFKQorCQkJcmV0dXJuKCkKKwkJZW5kaWYoKQor
CWVuZGZvcmVhY2goKQorCXNldCAoJHtfcHJvcGVydHlWYWx1ZVZhcn0gIiIgUEFSRU5UX1NDT1BF
KQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX3NldHVwX2NvbWJpbmVfY29tbWFu
ZCBfbGFuZ3VhZ2UgX3RhcmdldFNjcmlwdCBfam9pbmVkRmlsZSBfY21kc1ZhcikKKwlzZXQgKF9m
aWxlcyAke0FSR059KQorCXNldCAoX2ZpbGVzUGF0aHMgIiIpCisJZm9yZWFjaCAoX2ZpbGUgJHtf
ZmlsZXN9KQorCQlnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9maWxlUGF0aCAiJHtfZmlsZX0iIEFC
U09MVVRFKQorCQlsaXN0IChBUFBFTkQgX2ZpbGVzUGF0aHMgIiR7X2ZpbGVQYXRofSIpCisJZW5k
Zm9yZWFjaCgpCisJY290aXJlX3NldF9jbWRfdG9fcHJvbG9ndWUoX3ByZWZpeENtZCkKKwlsaXN0
IChBUFBFTkQgX3ByZWZpeENtZCAtUCAiJHtDT1RJUkVfQ01BS0VfTU9EVUxFX0ZJTEV9IiAiY29t
YmluZSIpCisJaWYgKF90YXJnZXRTY3JpcHQpCisJCWxpc3QgKEFQUEVORCBfcHJlZml4Q21kICIk
e190YXJnZXRTY3JpcHR9IikKKwllbmRpZigpCisJbGlzdCAoQVBQRU5EIF9wcmVmaXhDbWQgIiR7
X2pvaW5lZEZpbGV9IiAke19maWxlc1BhdGhzfSkKKwlpZiAoQ09USVJFX0RFQlVHKQorCQltZXNz
YWdlIChTVEFUVVMgImFkZF9jdXN0b21fY29tbWFuZDogT1VUUFVUICR7X2pvaW5lZEZpbGV9IENP
TU1BTkQgJHtfcHJlZml4Q21kfSBERVBFTkRTICR7X2ZpbGVzfSIpCisJZW5kaWYoKQorCXNldF9w
cm9wZXJ0eSAoU09VUkNFICIke19qb2luZWRGaWxlfSIgUFJPUEVSVFkgR0VORVJBVEVEIFRSVUUp
CisJaWYgKE1TVkNfSURFKQorCQlmaWxlIChUT19OQVRJVkVfUEFUSCAiJHtfam9pbmVkRmlsZX0i
IF9qb2luZWRGaWxlTG9nUGF0aCkKKwllbHNlKCkKKwkJZmlsZSAoUkVMQVRJVkVfUEFUSCBfam9p
bmVkRmlsZUxvZ1BhdGggIiR7Q01BS0VfQklOQVJZX0RJUn0iICIke19qb2luZWRGaWxlfSIpCisJ
ZW5kaWYoKQorCWdldF9maWxlbmFtZV9jb21wb25lbnQoX2pvaW5lZEZpbGVCYXNlTmFtZSAiJHtf
am9pbmVkRmlsZX0iIE5BTUVfV0UpCisJZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChfam9pbmVkRmls
ZUV4dCAiJHtfam9pbmVkRmlsZX0iIEVYVCkKKwlpZiAoX2xhbmd1YWdlIEFORCBfam9pbmVkRmls
ZUJhc2VOYW1lIE1BVENIRVMgIiR7Q09USVJFX1VOSVRZX1NPVVJDRV9GSUxFTkFNRV9TVUZGSVh9
JCIpCisJCXNldCAoX2NvbW1lbnQgIkdlbmVyYXRpbmcgJHtfbGFuZ3VhZ2V9IHVuaXR5IHNvdXJj
ZSAke19qb2luZWRGaWxlTG9nUGF0aH0iKQorCWVsc2VpZiAoX2xhbmd1YWdlIEFORCBfam9pbmVk
RmlsZUJhc2VOYW1lIE1BVENIRVMgIiR7Q09USVJFX1BSRUZJWF9IRUFERVJfRklMRU5BTUVfU1VG
RklYfSQiKQorCQlpZiAoX2pvaW5lZEZpbGVFeHQgTUFUQ0hFUyAiXlxcLmMiKQorCQkJc2V0IChf
Y29tbWVudCAiR2VuZXJhdGluZyAke19sYW5ndWFnZX0gcHJlZml4IHNvdXJjZSAke19qb2luZWRG
aWxlTG9nUGF0aH0iKQorCQllbHNlKCkKKwkJCXNldCAoX2NvbW1lbnQgIkdlbmVyYXRpbmcgJHtf
bGFuZ3VhZ2V9IHByZWZpeCBoZWFkZXIgJHtfam9pbmVkRmlsZUxvZ1BhdGh9IikKKwkJZW5kaWYo
KQorCWVsc2UoKQorCQlzZXQgKF9jb21tZW50ICJHZW5lcmF0aW5nICR7X2pvaW5lZEZpbGVMb2dQ
YXRofSIpCisJZW5kaWYoKQorCWFkZF9jdXN0b21fY29tbWFuZCgKKwkJT1VUUFVUICIke19qb2lu
ZWRGaWxlfSIKKwkJQ09NTUFORCAke19wcmVmaXhDbWR9CisJCURFUEVORFMgJHtfZmlsZXN9CisJ
CUNPTU1FTlQgIiR7X2NvbW1lbnR9IgorCQlXT1JLSU5HX0RJUkVDVE9SWSAiJHtDTUFLRV9CSU5B
UllfRElSfSIKKwkJVkVSQkFUSU0pCisJbGlzdCAoQVBQRU5EICR7X2NtZHNWYXJ9IENPTU1BTkQg
JHtfcHJlZml4Q21kfSkKKwlzZXQgKCR7X2NtZHNWYXJ9ICR7JHtfY21kc1Zhcn19IFBBUkVOVF9T
Q09QRSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9zZXR1cF90YXJnZXRfcGNo
X3VzYWdlIF9sYW5ndWFnZXMgX3RhcmdldCBfd2hvbGVUYXJnZXQpCisJaWYgKFhDT0RFKQorCQkj
IGZvciBYY29kZSwgd2UgYXR0YWNoIGEgcHJlLWJ1aWxkIGFjdGlvbiB0byBnZW5lcmF0ZSB0aGUg
dW5pdHkgc291cmNlcyBhbmQgcHJlZml4IGhlYWRlcnMKKwkJc2V0IChfcHJlZml4RmlsZXMgIiIp
CisJCWZvcmVhY2ggKF9sYW5ndWFnZSAke19sYW5ndWFnZXN9KQorCQkJZ2V0X3Byb3BlcnR5KF9w
cmVmaXhGaWxlIFRBUkdFVCAke190YXJnZXR9IFBST1BFUlRZIENPVElSRV8ke19sYW5ndWFnZX1f
UFJFRklYX0hFQURFUikKKwkJCWlmIChfcHJlZml4RmlsZSkKKwkJCQlsaXN0IChBUFBFTkQgX3By
ZWZpeEZpbGVzICIke19wcmVmaXhGaWxlfSIpCisJCQllbmRpZigpCisJCWVuZGZvcmVhY2goKQor
CQlzZXQgKF9jbWRzICR7QVJHTn0pCisJCWxpc3QgKExFTkdUSCBfcHJlZml4RmlsZXMgX251bWJl
ck9mUHJlZml4RmlsZXMpCisJCWlmIChfbnVtYmVyT2ZQcmVmaXhGaWxlcyBHUkVBVEVSIDEpCisJ
CQkjIHdlIGFsc28gZ2VuZXJhdGUgYSBnZW5lcmljLCBzaW5nbGUgcHJlZml4IGhlYWRlciB3aGlj
aCBpbmNsdWRlcyBhbGwgbGFuZ3VhZ2Ugc3BlY2lmaWMgcHJlZml4IGhlYWRlcnMKKwkJCXNldCAo
X2xhbmd1YWdlICIiKQorCQkJc2V0IChfdGFyZ2V0U2NyaXB0ICIiKQorCQkJY290aXJlX21ha2Vf
cHJlZml4X2ZpbGVfcGF0aCgiJHtfbGFuZ3VhZ2V9IiAke190YXJnZXR9IF9wcmVmaXhIZWFkZXIp
CisJCQljb3RpcmVfc2V0dXBfY29tYmluZV9jb21tYW5kKCIke19sYW5ndWFnZX0iICIke190YXJn
ZXRTY3JpcHR9IiAiJHtfcHJlZml4SGVhZGVyfSIgX2NtZHMgJHtfcHJlZml4RmlsZXN9KQorCQll
bHNlKCkKKwkJCXNldCAoX3ByZWZpeEhlYWRlciAiJHtfcHJlZml4RmlsZXN9IikKKwkJZW5kaWYo
KQorCQlpZiAoQ09USVJFX0RFQlVHKQorCQkJbWVzc2FnZSAoU1RBVFVTICJhZGRfY3VzdG9tX2Nv
bW1hbmQ6IFRBUkdFVCAke190YXJnZXR9IFBSRV9CVUlMRCAke19jbWRzfSIpCisJCWVuZGlmKCkK
KwkJIyBiZWNhdXNlIENNYWtlIFBSRV9CVUlMRCBjb21tYW5kIGRvZXMgbm90IHN1cHBvcnQgZGVw
ZW5kZW5jaWVzLAorCQkjIHdlIGNoZWNrIGRlcGVuZGVuY2llcyBleHBsaWNpdHkgaW4gY290aXJl
IHNjcmlwdCBtb2RlIHdoZW4gdGhlIHByZS1idWlsZCBhY3Rpb24gaXMgcnVuCisJCWFkZF9jdXN0
b21fY29tbWFuZCgKKwkJCVRBUkdFVCAiJHtfdGFyZ2V0fSIKKwkJCVBSRV9CVUlMRCAke19jbWRz
fQorCQkJV09SS0lOR19ESVJFQ1RPUlkgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfSIKKwkJ
CUNPTU1FTlQgIlVwZGF0aW5nIHRhcmdldCAke190YXJnZXR9IHByZWZpeCBoZWFkZXJzIgorCQkJ
VkVSQkFUSU0pCisJCSMgbWFrZSBYY29kZSBwcmVjb21waWxlIHRoZSBnZW5lcmF0ZWQgcHJlZml4
IGhlYWRlciB3aXRoIFByb2Nlc3NQQ0ggYW5kIFByb2Nlc3NQQ0grKworCQlzZXRfdGFyZ2V0X3By
b3BlcnRpZXMoJHtfdGFyZ2V0fSBQUk9QRVJUSUVTIFhDT0RFX0FUVFJJQlVURV9HQ0NfUFJFQ09N
UElMRV9QUkVGSVhfSEVBREVSICJZRVMiKQorCQlzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtfdGFy
Z2V0fSBQUk9QRVJUSUVTIFhDT0RFX0FUVFJJQlVURV9HQ0NfUFJFRklYX0hFQURFUiAiJHtfcHJl
Zml4SGVhZGVyfSIpCisJZWxzZWlmICgiJHtDTUFLRV9HRU5FUkFUT1J9IiBNQVRDSEVTICJNYWtl
fE5pbmphIikKKwkJIyBmb3IgbWFrZWZpbGUgYmFzZWQgZ2VuZXJhdG9yLCB3ZSBmb3JjZSBpbmNs
dXNpb24gb2YgdGhlIHByZWZpeCBoZWFkZXIgZm9yIGFsbCB0YXJnZXQgc291cmNlIGZpbGVzCisJ
CSMgaWYgdGhpcyBpcyBhIHNpbmdsZS1sYW5ndWFnZSB0YXJnZXQgd2l0aG91dCBhbnkgZXhjbHVk
ZWQgZmlsZXMKKwkJaWYgKF93aG9sZVRhcmdldCkKKwkJCXNldCAoX2xhbmd1YWdlICIke19sYW5n
dWFnZXN9IikKKwkJCSMgZm9yIFZpc3VhbCBTdHVkaW8gYW5kIEludGVsLCBwcmVjb21waWxlZCBo
ZWFkZXIgaW5jbHVzaW9uIGlzIGFsd2F5cyBkb25lIG9uIHRoZSBzb3VyY2UgZmlsZSBsZXZlbAor
CQkJIyBzZWUgY290aXJlX3NldHVwX3BjaF9maWxlX2luY2x1c2lvbgorCQkJaWYgKE5PVCBDTUFL
RV8ke19sYW5ndWFnZX1fQ09NUElMRVJfSUQgTUFUQ0hFUyAiTVNWQ3xJbnRlbCIpCisJCQkJZ2V0
X3Byb3BlcnR5KF9wcmVmaXhGaWxlIFRBUkdFVCAke190YXJnZXR9IFBST1BFUlRZIENPVElSRV8k
e19sYW5ndWFnZX1fUFJFRklYX0hFQURFUikKKwkJCQlpZiAoX3ByZWZpeEZpbGUpCisJCQkJCWdl
dF9wcm9wZXJ0eShfcGNoRmlsZSBUQVJHRVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJUkVfJHtf
bGFuZ3VhZ2V9X1BSRUNPTVBJTEVEX0hFQURFUikKKwkJCQkJc2V0IChfb3B0aW9ucyBDT01QSUxF
X09QVElPTlMpCisJCQkJCWNvdGlyZV9hZGRfcHJlZml4X3BjaF9pbmNsdXNpb25fZmxhZ3MoCisJ
CQkJCQkiJHtfbGFuZ3VhZ2V9IiAiJHtDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfSUR9IiAi
JHtDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfVkVSU0lPTn0iCisJCQkJCQkiJHtfcHJlZml4
RmlsZX0iICIke19wY2hGaWxlfSIgX29wdGlvbnMpCisJCQkJCXNldF9wcm9wZXJ0eShUQVJHRVQg
JHtfdGFyZ2V0fSBBUFBFTkQgUFJPUEVSVFkgJHtfb3B0aW9uc30pCisJCQkJZW5kaWYoKQorCQkJ
ZW5kaWYoKQorCQllbmRpZigpCisJZW5kaWYoKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAo
Y290aXJlX3NldHVwX3VuaXR5X2dlbmVyYXRpb25fY29tbWFuZHMgX2xhbmd1YWdlIF90YXJnZXQg
X3RhcmdldFNjcmlwdCBfdGFyZ2V0Q29uZmlnU2NyaXB0IF91bml0eUZpbGVzIF9jbWRzVmFyKQor
CXNldCAoX2RlcGVuZGVuY3lTb3VyY2VzICIiKQorCWNvdGlyZV9nZXRfdW5pdHlfc291cmNlX2Rl
cGVuZGVuY2llcygke19sYW5ndWFnZX0gJHtfdGFyZ2V0fSBfZGVwZW5kZW5jeVNvdXJjZXMgJHtB
UkdOfSkKKwlmb3JlYWNoIChfdW5pdHlGaWxlICR7X3VuaXR5RmlsZXN9KQorCQlzZXRfcHJvcGVy
dHkgKFNPVVJDRSAiJHtfdW5pdHlGaWxlfSIgUFJPUEVSVFkgR0VORVJBVEVEIFRSVUUpCisJCSMg
c2V0IHVwIGNvbXBpbGVkIHVuaXR5IHNvdXJjZSBkZXBlbmRlbmNpZXMgdmlhIE9CSkVDVF9ERVBF
TkRTCisJCSMgdGhpcyBlbnN1cmVzIHRoYXQgbWlzc2luZyBzb3VyY2UgZmlsZXMgYXJlIGdlbmVy
YXRlZCBiZWZvcmUgdGhlIHVuaXR5IGZpbGUgaXMgY29tcGlsZWQKKwkJaWYgKENPVElSRV9ERUJV
RyBBTkQgX2RlcGVuZGVuY3lTb3VyY2VzKQorCQkJbWVzc2FnZSAoU1RBVFVTICIke191bml0eUZp
bGV9IE9CSkVDVF9ERVBFTkRTICR7X2RlcGVuZGVuY3lTb3VyY2VzfSIpCisJCWVuZGlmKCkKKwkJ
aWYgKF9kZXBlbmRlbmN5U291cmNlcykKKwkJCSMgdGhlIE9CSkVDVF9ERVBFTkRTIHByb3BlcnR5
IHJlcXVpcmVzIGEgbGlzdCBvZiBmdWxsIHBhdGhzCisJCQlzZXQgKF9vYmplY3REZXBlbmRzUGF0
aHMgIiIpCisJCQlmb3JlYWNoIChfc291cmNlRmlsZSAke19kZXBlbmRlbmN5U291cmNlc30pCisJ
CQkJZ2V0X3NvdXJjZV9maWxlX3Byb3BlcnR5KF9zb3VyY2VMb2NhdGlvbiAiJHtfc291cmNlRmls
ZX0iIExPQ0FUSU9OKQorCQkJCWxpc3QgKEFQUEVORCBfb2JqZWN0RGVwZW5kc1BhdGhzICIke19z
b3VyY2VMb2NhdGlvbn0iKQorCQkJZW5kZm9yZWFjaCgpCisJCQlzZXRfcHJvcGVydHkgKFNPVVJD
RSAiJHtfdW5pdHlGaWxlfSIgUFJPUEVSVFkgT0JKRUNUX0RFUEVORFMgJHtfb2JqZWN0RGVwZW5k
c1BhdGhzfSkKKwkJZW5kaWYoKQorCQlpZiAoV0lOMzIgQU5EIENNQUtFXyR7X2xhbmd1YWdlfV9D
T01QSUxFUl9JRCBNQVRDSEVTICJNU1ZDfEludGVsIikKKwkJCSMgdW5pdHkgZmlsZSBjb21waWxh
dGlvbiByZXN1bHRzIGluIHBvdGVudGlhbGx5IGh1Z2Ugb2JqZWN0IGZpbGUsIHRodXMgdXNlIC9i
aWdvYmogYnkgZGVmYXVsdCB1bnRlciBNU1ZDIGFuZCBXaW5kb3dzIEludGVsCisJCQlzZXRfcHJv
cGVydHkgKFNPVVJDRSAiJHtfdW5pdHlGaWxlfSIgQVBQRU5EX1NUUklORyBQUk9QRVJUWSBDT01Q
SUxFX0ZMQUdTICIvYmlnb2JqIikKKwkJZW5kaWYoKQorCQljb3RpcmVfc2V0X2NtZF90b19wcm9s
b2d1ZShfdW5pdHlDbWQpCisJCWxpc3QgKEFQUEVORCBfdW5pdHlDbWQgLVAgIiR7Q09USVJFX0NN
QUtFX01PRFVMRV9GSUxFfSIgInVuaXR5IiAiJHtfdGFyZ2V0Q29uZmlnU2NyaXB0fSIgIiR7X3Vu
aXR5RmlsZX0iKQorCQlpZiAoQ01BS0VfVkVSU0lPTiBWRVJTSU9OX0xFU1MgIjMuMS4wIikKKwkJ
CXNldCAoX3VuaXR5Q21kRGVwZW5kcyAiJHtfdGFyZ2V0U2NyaXB0fSIpCisJCWVsc2UoKQorCQkJ
IyBDTWFrZSAzLjEuMCBzdXBwb3J0cyBnZW5lcmF0b3IgZXhwcmVzc2lvbnMgaW4gYXJndW1lbnRz
IHRvIERFUEVORFMKKwkJCXNldCAoX3VuaXR5Q21kRGVwZW5kcyAiJHtfdGFyZ2V0Q29uZmlnU2Ny
aXB0fSIpCisJCWVuZGlmKCkKKwkJaWYgKE1TVkNfSURFKQorCQkJZmlsZSAoVE9fTkFUSVZFX1BB
VEggIiR7X3VuaXR5RmlsZX0iIF91bml0eUZpbGVMb2dQYXRoKQorCQllbHNlKCkKKwkJCWZpbGUg
KFJFTEFUSVZFX1BBVEggX3VuaXR5RmlsZUxvZ1BhdGggIiR7Q01BS0VfQklOQVJZX0RJUn0iICIk
e191bml0eUZpbGV9IikKKwkJZW5kaWYoKQorCQlpZiAoQ09USVJFX0RFQlVHKQorCQkJbWVzc2Fn
ZSAoU1RBVFVTICJhZGRfY3VzdG9tX2NvbW1hbmQ6IE9VVFBVVCAke191bml0eUZpbGV9IENPTU1B
TkQgJHtfdW5pdHlDbWR9IERFUEVORFMgJHtfdW5pdHlDbWREZXBlbmRzfSIpCisJCWVuZGlmKCkK
KwkJYWRkX2N1c3RvbV9jb21tYW5kKAorCQkJT1VUUFVUICIke191bml0eUZpbGV9IgorCQkJQ09N
TUFORCAke191bml0eUNtZH0KKwkJCURFUEVORFMgJHtfdW5pdHlDbWREZXBlbmRzfQorCQkJQ09N
TUVOVCAiR2VuZXJhdGluZyAke19sYW5ndWFnZX0gdW5pdHkgc291cmNlICR7X3VuaXR5RmlsZUxv
Z1BhdGh9IgorCQkJV09SS0lOR19ESVJFQ1RPUlkgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElS
fSIKKwkJCVZFUkJBVElNKQorCQlsaXN0IChBUFBFTkQgJHtfY21kc1Zhcn0gQ09NTUFORCAke191
bml0eUNtZH0pCisJZW5kZm9yZWFjaCgpCisJc2V0ICgke19jbWRzVmFyfSAkeyR7X2NtZHNWYXJ9
fSBQQVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfc2V0dXBf
cHJlZml4X2dlbmVyYXRpb25fY29tbWFuZCBfbGFuZ3VhZ2UgX3RhcmdldCBfdGFyZ2V0U2NyaXB0
IF9wcmVmaXhGaWxlIF91bml0eUZpbGVzIF9jbWRzVmFyKQorCXNldCAoX3NvdXJjZUZpbGVzICR7
QVJHTn0pCisJc2V0IChfZGVwZW5kZW5jeVNvdXJjZXMgIiIpCisJY290aXJlX2dldF9wcmVmaXhf
aGVhZGVyX2RlcGVuZGVuY2llcygke19sYW5ndWFnZX0gJHtfdGFyZ2V0fSBfZGVwZW5kZW5jeVNv
dXJjZXMgJHtfc291cmNlRmlsZXN9KQorCWNvdGlyZV9zZXRfY21kX3RvX3Byb2xvZ3VlKF9wcmVm
aXhDbWQpCisJbGlzdCAoQVBQRU5EIF9wcmVmaXhDbWQgLVAgIiR7Q09USVJFX0NNQUtFX01PRFVM
RV9GSUxFfSIgInByZWZpeCIgIiR7X3RhcmdldFNjcmlwdH0iICIke19wcmVmaXhGaWxlfSIgJHtf
dW5pdHlGaWxlc30pCisJc2V0X3Byb3BlcnR5IChTT1VSQ0UgIiR7X3ByZWZpeEZpbGV9IiBQUk9Q
RVJUWSBHRU5FUkFURUQgVFJVRSkKKwkjIG1ha2UgcHJlZml4IGhlYWRlciBnZW5lcmF0aW9uIGRl
cGVuZCBvbiB0aGUgYWN0dWFsIGNvbXBpbGVyIGV4ZWN1dGFibGUgdXNlZCB0byBmb3JjZQorCSMg
cmUtZ2VuZXJhdGlvbiB3aGVuIHRoZSBjb21waWxlciBleGVjdXRhYmxlIGlzIHVwZGF0ZWQuIFRo
aXMgcHJldmVudHMgImZpbGUgbm90IGZvdW5kIgorCSMgZXJyb3JzIGZvciBjb21waWxlciB2ZXJz
aW9uIHNwZWNpZmljIHN5c3RlbSBoZWFkZXIgZmlsZXMuCisJZ2V0X2ZpbGVuYW1lX2NvbXBvbmVu
dChfcmVhbENvbXBpbGVyRXhlICIke0NNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUn0iIEFCU09M
VVRFKQorCWlmIChDT1RJUkVfREVCVUcpCisJCW1lc3NhZ2UgKFNUQVRVUyAiYWRkX2N1c3RvbV9j
b21tYW5kOiBPVVRQVVQgJHtfcHJlZml4RmlsZX0gQ09NTUFORCAke19wcmVmaXhDbWR9IERFUEVO
RFMgJHtfdW5pdHlGaWxlfSAke19kZXBlbmRlbmN5U291cmNlc30gJHtfcmVhbENvbXBpbGVyRXhl
fSIpCisJZW5kaWYoKQorCWlmIChNU1ZDX0lERSkKKwkJZmlsZSAoVE9fTkFUSVZFX1BBVEggIiR7
X3ByZWZpeEZpbGV9IiBfcHJlZml4RmlsZUxvZ1BhdGgpCisJZWxzZSgpCisJCWZpbGUgKFJFTEFU
SVZFX1BBVEggX3ByZWZpeEZpbGVMb2dQYXRoICIke0NNQUtFX0JJTkFSWV9ESVJ9IiAiJHtfcHJl
Zml4RmlsZX0iKQorCWVuZGlmKCkKKwlnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9wcmVmaXhGaWxl
RXh0ICIke19wcmVmaXhGaWxlfSIgRVhUKQorCWlmIChfcHJlZml4RmlsZUV4dCBNQVRDSEVTICJe
XFwuYyIpCisJCXNldCAoX2NvbW1lbnQgIkdlbmVyYXRpbmcgJHtfbGFuZ3VhZ2V9IHByZWZpeCBz
b3VyY2UgJHtfcHJlZml4RmlsZUxvZ1BhdGh9IikKKwllbHNlKCkKKwkJc2V0IChfY29tbWVudCAi
R2VuZXJhdGluZyAke19sYW5ndWFnZX0gcHJlZml4IGhlYWRlciAke19wcmVmaXhGaWxlTG9nUGF0
aH0iKQorCWVuZGlmKCkKKwkjIHByZXZlbnQgcHJlLXByb2Nlc3NpbmcgZXJyb3JzIHVwb24gZ2Vu
ZXJhdGluZyB0aGUgcHJlZml4IGhlYWRlciB3aGVuIGEgdGFyZ2V0J3MgZ2VuZXJhdGVkIGluY2x1
ZGUgZmlsZSBkb2VzIG5vdCB5ZXQgZXhpc3QKKwkjIHdlIGRvIG5vdCBhZGQgYSBmaWxlLWxldmVs
IGRlcGVuZGVuY3kgZm9yIHRoZSB0YXJnZXQncyBnZW5lcmF0ZWQgZmlsZXMgdGhvdWdoLCBiZWNh
dXNlIHdlIG9ubHkgd2FudCB0byBkZXBlbmQgb24gdGhlaXIgZXhpc3RlbmNlCisJIyB0aHVzIHdl
IG1ha2UgdGhlIHByZWZpeCBoZWFkZXIgZ2VuZXJhdGlvbiBkZXBlbmQgb24gYSBjdXN0b20gaGVs
cGVyIHRhcmdldCB3aGljaCB0cmlnZ2VycyB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgZmlsZXMKKwlz
ZXQgKF9wcmVUYXJnZXROYW1lICIke190YXJnZXR9JHtDT1RJUkVfUENIX1RBUkdFVF9TVUZGSVh9
X3ByZSIpCisJaWYgKFRBUkdFVCAke19wcmVUYXJnZXROYW1lfSkKKwkJIyBjdXN0b20gaGVscGVy
IHRhcmdldCBoYXMgYWxyZWFkeSBiZWVuIGdlbmVyYXRlZCB3aGlsZSBwcm9jZXNzaW5nIGEgZGlm
ZmVyZW50IGxhbmd1YWdlCisJCWxpc3QgKEFQUEVORCBfZGVwZW5kZW5jeVNvdXJjZXMgJHtfcHJl
VGFyZ2V0TmFtZX0pCisJZWxzZSgpCisJCWdldF90YXJnZXRfcHJvcGVydHkoX3RhcmdldFNvdXJj
ZUZpbGVzICR7X3RhcmdldH0gU09VUkNFUykKKwkJY290aXJlX2dldF9vYmplY3RzX3dpdGhfcHJv
cGVydHlfb24oX2dlbmVyYXRlZFNvdXJjZXMgR0VORVJBVEVEIFNPVVJDRSAke190YXJnZXRTb3Vy
Y2VGaWxlc30pCisJCWlmIChfZ2VuZXJhdGVkU291cmNlcykKKwkJCWFkZF9jdXN0b21fdGFyZ2V0
KCIke19wcmVUYXJnZXROYW1lfSIgREVQRU5EUyAke19nZW5lcmF0ZWRTb3VyY2VzfSkKKwkJCWNv
dGlyZV9pbml0X3RhcmdldCgiJHtfcHJlVGFyZ2V0TmFtZX0iKQorCQkJbGlzdCAoQVBQRU5EIF9k
ZXBlbmRlbmN5U291cmNlcyAke19wcmVUYXJnZXROYW1lfSkKKwkJZW5kaWYoKQorCWVuZGlmKCkK
KwlhZGRfY3VzdG9tX2NvbW1hbmQoCisJCU9VVFBVVCAiJHtfcHJlZml4RmlsZX0iICIke19wcmVm
aXhGaWxlfS5sb2ciCisJCUNPTU1BTkQgJHtfcHJlZml4Q21kfQorCQlERVBFTkRTICR7X3VuaXR5
RmlsZXN9ICR7X2RlcGVuZGVuY3lTb3VyY2VzfSAiJHtfcmVhbENvbXBpbGVyRXhlfSIKKwkJQ09N
TUVOVCAiJHtfY29tbWVudH0iCisJCVdPUktJTkdfRElSRUNUT1JZICIke0NNQUtFX0NVUlJFTlRf
U09VUkNFX0RJUn0iCisJCVZFUkJBVElNKQorCWxpc3QgKEFQUEVORCAke19jbWRzVmFyfSBDT01N
QU5EICR7X3ByZWZpeENtZH0pCisJc2V0ICgke19jbWRzVmFyfSAkeyR7X2NtZHNWYXJ9fSBQQVJF
TlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChjb3RpcmVfc2V0dXBfcHJlZml4
X2dlbmVyYXRpb25fZnJvbV91bml0eV9jb21tYW5kIF9sYW5ndWFnZSBfdGFyZ2V0IF90YXJnZXRT
Y3JpcHQgX3ByZWZpeEZpbGUgX3VuaXR5RmlsZXMgX2NtZHNWYXIpCisJc2V0IChfc291cmNlRmls
ZXMgJHtBUkdOfSkKKwlpZiAoQ01BS0VfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVSX0lEIE1BVENIRVMg
IkdOVXxDbGFuZyIpCisJCSMgR05VIGFuZCBDbGFuZyByZXF1aXJlIGluZGlyZWN0IGNvbXBpbGF0
aW9uIG9mIHRoZSBwcmVmaXggaGVhZGVyIHRvIG1ha2UgdGhlbSBob25vciB0aGUgc3lzdGVtX2hl
YWRlciBwcmFnbWEKKwkJY290aXJlX3ByZWZpeF9oZWFkZXJfdG9fc291cmNlX2ZpbGVfcGF0aCgk
e19sYW5ndWFnZX0gIiR7X3ByZWZpeEZpbGV9IiBfcHJlZml4U291cmNlRmlsZSkKKwllbHNlKCkK
KwkJc2V0IChfcHJlZml4U291cmNlRmlsZSAiJHtfcHJlZml4RmlsZX0iKQorCWVuZGlmKCkKKwlj
b3RpcmVfc2V0dXBfcHJlZml4X2dlbmVyYXRpb25fY29tbWFuZCgKKwkJJHtfbGFuZ3VhZ2V9ICR7
X3RhcmdldH0gIiR7X3RhcmdldFNjcmlwdH0iCisJCSIke19wcmVmaXhTb3VyY2VGaWxlfSIgIiR7
X3VuaXR5RmlsZXN9IiAke19jbWRzVmFyfSAke19zb3VyY2VGaWxlc30pCisJaWYgKENNQUtFXyR7
X2xhbmd1YWdlfV9DT01QSUxFUl9JRCBNQVRDSEVTICJHTlV8Q2xhbmciKQorCQkjIHNldCB1cCBn
ZW5lcmF0aW9uIG9mIGEgcHJlZml4IHNvdXJjZSBmaWxlIHdoaWNoIGluY2x1ZGVzIHRoZSBwcmVm
aXggaGVhZGVyCisJCWNvdGlyZV9zZXR1cF9jb21iaW5lX2NvbW1hbmQoJHtfbGFuZ3VhZ2V9ICIk
e190YXJnZXRTY3JpcHR9IiAiJHtfcHJlZml4RmlsZX0iIF9jbWRzICR7X3ByZWZpeFNvdXJjZUZp
bGV9KQorCWVuZGlmKCkKKwlzZXQgKCR7X2NtZHNWYXJ9ICR7JHtfY21kc1Zhcn19IFBBUkVOVF9T
Q09QRSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9zZXR1cF9wcmVmaXhfZ2Vu
ZXJhdGlvbl9mcm9tX3Byb3ZpZGVkX2NvbW1hbmQgX2xhbmd1YWdlIF90YXJnZXQgX3RhcmdldFNj
cmlwdCBfcHJlZml4RmlsZSBfY21kc1ZhcikKKwlzZXQgKF9wcmVmaXhIZWFkZXJGaWxlcyAke0FS
R059KQorCWlmIChDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfSUQgTUFUQ0hFUyAiR05VfENs
YW5nIikKKwkJIyBHTlUgYW5kIENsYW5nIHJlcXVpcmUgaW5kaXJlY3QgY29tcGlsYXRpb24gb2Yg
dGhlIHByZWZpeCBoZWFkZXIgdG8gbWFrZSB0aGVtIGhvbm9yIHRoZSBzeXN0ZW1faGVhZGVyIHBy
YWdtYQorCQljb3RpcmVfcHJlZml4X2hlYWRlcl90b19zb3VyY2VfZmlsZV9wYXRoKCR7X2xhbmd1
YWdlfSAiJHtfcHJlZml4RmlsZX0iIF9wcmVmaXhTb3VyY2VGaWxlKQorCWVsc2UoKQorCQlzZXQg
KF9wcmVmaXhTb3VyY2VGaWxlICIke19wcmVmaXhGaWxlfSIpCisJZW5kaWYoKQorCWNvdGlyZV9z
ZXR1cF9jb21iaW5lX2NvbW1hbmQoJHtfbGFuZ3VhZ2V9ICIke190YXJnZXRTY3JpcHR9IiAiJHtf
cHJlZml4U291cmNlRmlsZX0iIF9jbWRzICR7X3ByZWZpeEhlYWRlckZpbGVzfSkKKwlpZiAoQ01B
S0VfJHtfbGFuZ3VhZ2V9X0NPTVBJTEVSX0lEIE1BVENIRVMgIkdOVXxDbGFuZyIpCisJCSMgc2V0
IHVwIGdlbmVyYXRpb24gb2YgYSBwcmVmaXggc291cmNlIGZpbGUgd2hpY2ggaW5jbHVkZXMgdGhl
IHByZWZpeCBoZWFkZXIKKwkJY290aXJlX3NldHVwX2NvbWJpbmVfY29tbWFuZCgke19sYW5ndWFn
ZX0gIiR7X3RhcmdldFNjcmlwdH0iICIke19wcmVmaXhGaWxlfSIgX2NtZHMgJHtfcHJlZml4U291
cmNlRmlsZX0pCisJZW5kaWYoKQorCXNldCAoJHtfY21kc1Zhcn0gJHske19jbWRzVmFyfX0gUEFS
RU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX2luaXRfY290aXJl
X3RhcmdldF9wcm9wZXJ0aWVzIF90YXJnZXQpCisJZ2V0X3Byb3BlcnR5KF9pc1NldCBUQVJHRVQg
JHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJUkVfRU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUiBTRVQp
CisJaWYgKE5PVCBfaXNTZXQpCisJCXNldF9wcm9wZXJ0eShUQVJHRVQgJHtfdGFyZ2V0fSBQUk9Q
RVJUWSBDT1RJUkVfRU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUiBUUlVFKQorCWVuZGlmKCkKKwln
ZXRfcHJvcGVydHkoX2lzU2V0IFRBUkdFVCAke190YXJnZXR9IFBST1BFUlRZIENPVElSRV9BRERf
VU5JVFlfQlVJTEQgU0VUKQorCWlmIChOT1QgX2lzU2V0KQorCQlzZXRfcHJvcGVydHkoVEFSR0VU
ICR7X3RhcmdldH0gUFJPUEVSVFkgQ09USVJFX0FERF9VTklUWV9CVUlMRCBUUlVFKQorCWVuZGlm
KCkKKwlnZXRfcHJvcGVydHkoX2lzU2V0IFRBUkdFVCAke190YXJnZXR9IFBST1BFUlRZIENPVElS
RV9BRERfQ0xFQU4gU0VUKQorCWlmIChOT1QgX2lzU2V0KQorCQlzZXRfcHJvcGVydHkoVEFSR0VU
ICR7X3RhcmdldH0gUFJPUEVSVFkgQ09USVJFX0FERF9DTEVBTiBGQUxTRSkKKwllbmRpZigpCisJ
Z2V0X3Byb3BlcnR5KF9pc1NldCBUQVJHRVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJUkVfUFJF
RklYX0hFQURFUl9JR05PUkVfUEFUSCBTRVQpCisJaWYgKE5PVCBfaXNTZXQpCisJCXNldF9wcm9w
ZXJ0eShUQVJHRVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJUkVfUFJFRklYX0hFQURFUl9JR05P
UkVfUEFUSCAiJHtDTUFLRV9TT1VSQ0VfRElSfSIpCisJCWNvdGlyZV9jaGVja19pc19wYXRoX3Jl
bGF0aXZlX3RvKCIke0NNQUtFX0JJTkFSWV9ESVJ9IiBfaXNSZWxhdGl2ZSAiJHtDTUFLRV9TT1VS
Q0VfRElSfSIpCisJCWlmIChOT1QgX2lzUmVsYXRpdmUpCisJCQlzZXRfcHJvcGVydHkoVEFSR0VU
ICR7X3RhcmdldH0gQVBQRU5EIFBST1BFUlRZIENPVElSRV9QUkVGSVhfSEVBREVSX0lHTk9SRV9Q
QVRIICIke0NNQUtFX0JJTkFSWV9ESVJ9IikKKwkJZW5kaWYoKQorCWVuZGlmKCkKKwlnZXRfcHJv
cGVydHkoX2lzU2V0IFRBUkdFVCAke190YXJnZXR9IFBST1BFUlRZIENPVElSRV9QUkVGSVhfSEVB
REVSX0lOQ0xVREVfUEFUSCBTRVQpCisJaWYgKE5PVCBfaXNTZXQpCisJCXNldF9wcm9wZXJ0eShU
QVJHRVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJUkVfUFJFRklYX0hFQURFUl9JTkNMVURFX1BB
VEggIiIpCisJZW5kaWYoKQorCWdldF9wcm9wZXJ0eShfaXNTZXQgVEFSR0VUICR7X3RhcmdldH0g
UFJPUEVSVFkgQ09USVJFX1BSRUZJWF9IRUFERVJfSU5DTFVERV9QUklPUklUWV9QQVRIIFNFVCkK
KwlpZiAoTk9UIF9pc1NldCkKKwkJc2V0X3Byb3BlcnR5KFRBUkdFVCAke190YXJnZXR9IFBST1BF
UlRZIENPVElSRV9QUkVGSVhfSEVBREVSX0lOQ0xVREVfUFJJT1JJVFlfUEFUSCAiIikKKwllbmRp
ZigpCisJZ2V0X3Byb3BlcnR5KF9pc1NldCBUQVJHRVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJ
UkVfVU5JVFlfU09VUkNFX1BSRV9VTkRFRlMgU0VUKQorCWlmIChOT1QgX2lzU2V0KQorCQlzZXRf
cHJvcGVydHkoVEFSR0VUICR7X3RhcmdldH0gUFJPUEVSVFkgQ09USVJFX1VOSVRZX1NPVVJDRV9Q
UkVfVU5ERUZTICIiKQorCWVuZGlmKCkKKwlnZXRfcHJvcGVydHkoX2lzU2V0IFRBUkdFVCAke190
YXJnZXR9IFBST1BFUlRZIENPVElSRV9VTklUWV9TT1VSQ0VfUE9TVF9VTkRFRlMgU0VUKQorCWlm
IChOT1QgX2lzU2V0KQorCQlzZXRfcHJvcGVydHkoVEFSR0VUICR7X3RhcmdldH0gUFJPUEVSVFkg
Q09USVJFX1VOSVRZX1NPVVJDRV9QT1NUX1VOREVGUyAiIikKKwllbmRpZigpCisJZ2V0X3Byb3Bl
cnR5KF9pc1NldCBUQVJHRVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJUkVfVU5JVFlfTElOS19M
SUJSQVJJRVNfSU5JVCBTRVQpCisJaWYgKE5PVCBfaXNTZXQpCisJCXNldF9wcm9wZXJ0eShUQVJH
RVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJUkVfVU5JVFlfTElOS19MSUJSQVJJRVNfSU5JVCAi
Q09QWV9VTklUWSIpCisJZW5kaWYoKQorCWdldF9wcm9wZXJ0eShfaXNTZXQgVEFSR0VUICR7X3Rh
cmdldH0gUFJPUEVSVFkgQ09USVJFX1VOSVRZX1NPVVJDRV9NQVhJTVVNX05VTUJFUl9PRl9JTkNM
VURFUyBTRVQpCisJaWYgKE5PVCBfaXNTZXQpCisJCWlmIChDT1RJUkVfTUFYSU1VTV9OVU1CRVJf
T0ZfVU5JVFlfSU5DTFVERVMpCisJCQlzZXRfcHJvcGVydHkoVEFSR0VUICR7X3RhcmdldH0gUFJP
UEVSVFkgQ09USVJFX1VOSVRZX1NPVVJDRV9NQVhJTVVNX05VTUJFUl9PRl9JTkNMVURFUyAiJHtD
T1RJUkVfTUFYSU1VTV9OVU1CRVJfT0ZfVU5JVFlfSU5DTFVERVN9IikKKwkJZWxzZSgpCisJCQlz
ZXRfcHJvcGVydHkoVEFSR0VUICR7X3RhcmdldH0gUFJPUEVSVFkgQ09USVJFX1VOSVRZX1NPVVJD
RV9NQVhJTVVNX05VTUJFUl9PRl9JTkNMVURFUyAiIikKKwkJZW5kaWYoKQorCWVuZGlmKCkKK2Vu
ZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9tYWtlX3RhcmdldF9tZXNzYWdlIF90YXJn
ZXQgX2xhbmd1YWdlcyBfZGlzYWJsZU1zZyBfdGFyZ2V0TXNnVmFyKQorCWdldF90YXJnZXRfcHJv
cGVydHkoX3RhcmdldFVzZVBDSCAke190YXJnZXR9IENPVElSRV9FTkFCTEVfUFJFQ09NUElMRURf
SEVBREVSKQorCWdldF90YXJnZXRfcHJvcGVydHkoX3RhcmdldEFkZFNDVSAke190YXJnZXR9IENP
VElSRV9BRERfVU5JVFlfQlVJTEQpCisJc3RyaW5nIChSRVBMQUNFICI7IiAiICIgX2xhbmd1YWdl
c1N0ciAiJHtfbGFuZ3VhZ2VzfSIpCisJbWF0aCAoRVhQUiBfbnVtYmVyT2ZFeGNsdWRlZEZpbGVz
ICIke0FSR0N9IC0gNCIpCisJaWYgKF9udW1iZXJPZkV4Y2x1ZGVkRmlsZXMgRVFVQUwgMCkKKwkJ
c2V0IChfZXhjbHVkZWRTdHIgIiIpCisJZWxzZWlmIChDT1RJUkVfVkVSQk9TRSBPUiBfbnVtYmVy
T2ZFeGNsdWRlZEZpbGVzIExFU1MgNCkKKwkJc3RyaW5nIChSRVBMQUNFICI7IiAiLCAiIF9leGNs
dWRlZFN0ciAiZXhjbHVkaW5nICR7QVJHTn0iKQorCWVsc2UoKQorCQlzZXQgKF9leGNsdWRlZFN0
ciAiZXhjbHVkaW5nICR7X251bWJlck9mRXhjbHVkZWRGaWxlc30gZmlsZXMiKQorCWVuZGlmKCkK
KwlzZXQgKF90YXJnZXRNc2cgIiIpCisJaWYgKE5PVCBfbGFuZ3VhZ2VzKQorCQlzZXQgKF90YXJn
ZXRNc2cgIlRhcmdldCAke190YXJnZXR9IGNhbm5vdCBiZSBjb3RpcmVkLiIpCisJCWlmIChfZGlz
YWJsZU1zZykKKwkJCXNldCAoX3RhcmdldE1zZyAiJHtfdGFyZ2V0TXNnfSAke19kaXNhYmxlTXNn
fSIpCisJCWVuZGlmKCkKKwllbHNlaWYgKE5PVCBfdGFyZ2V0VXNlUENIIEFORCBOT1QgX3Rhcmdl
dEFkZFNDVSkKKwkJc2V0IChfdGFyZ2V0TXNnICIke19sYW5ndWFnZXNTdHJ9IHRhcmdldCAke190
YXJnZXR9IGNvdGlyZWQgd2l0aG91dCB1bml0eSBidWlsZCBhbmQgcHJlY29tcGlsZWQgaGVhZGVy
LiIpCisJCWlmIChfZGlzYWJsZU1zZykKKwkJCXNldCAoX3RhcmdldE1zZyAiJHtfdGFyZ2V0TXNn
fSAke19kaXNhYmxlTXNnfSIpCisJCWVuZGlmKCkKKwllbHNlaWYgKE5PVCBfdGFyZ2V0VXNlUENI
KQorCQlpZiAoX2V4Y2x1ZGVkU3RyKQorCQkJc2V0IChfdGFyZ2V0TXNnICIke19sYW5ndWFnZXNT
dHJ9IHRhcmdldCAke190YXJnZXR9IGNvdGlyZWQgd2l0aG91dCBwcmVjb21waWxlZCBoZWFkZXIg
JHtfZXhjbHVkZWRTdHJ9LiIpCisJCWVsc2UoKQorCQkJc2V0IChfdGFyZ2V0TXNnICIke19sYW5n
dWFnZXNTdHJ9IHRhcmdldCAke190YXJnZXR9IGNvdGlyZWQgd2l0aG91dCBwcmVjb21waWxlZCBo
ZWFkZXIuIikKKwkJZW5kaWYoKQorCQlpZiAoX2Rpc2FibGVNc2cpCisJCQlzZXQgKF90YXJnZXRN
c2cgIiR7X3RhcmdldE1zZ30gJHtfZGlzYWJsZU1zZ30iKQorCQllbmRpZigpCisJZWxzZWlmIChO
T1QgX3RhcmdldEFkZFNDVSkKKwkJaWYgKF9leGNsdWRlZFN0cikKKwkJCXNldCAoX3RhcmdldE1z
ZyAiJHtfbGFuZ3VhZ2VzU3RyfSB0YXJnZXQgJHtfdGFyZ2V0fSBjb3RpcmVkIHdpdGhvdXQgdW5p
dHkgYnVpbGQgJHtfZXhjbHVkZWRTdHJ9LiIpCisJCWVsc2UoKQorCQkJc2V0IChfdGFyZ2V0TXNn
ICIke19sYW5ndWFnZXNTdHJ9IHRhcmdldCAke190YXJnZXR9IGNvdGlyZWQgd2l0aG91dCB1bml0
eSBidWlsZC4iKQorCQllbmRpZigpCisJZWxzZSgpCisJCWlmIChfZXhjbHVkZWRTdHIpCisJCQlz
ZXQgKF90YXJnZXRNc2cgIiR7X2xhbmd1YWdlc1N0cn0gdGFyZ2V0ICR7X3RhcmdldH0gY290aXJl
ZCAke19leGNsdWRlZFN0cn0uIikKKwkJZWxzZSgpCisJCQlzZXQgKF90YXJnZXRNc2cgIiR7X2xh
bmd1YWdlc1N0cn0gdGFyZ2V0ICR7X3RhcmdldH0gY290aXJlZC4iKQorCQllbmRpZigpCisJZW5k
aWYoKQorCXNldCAoJHtfdGFyZ2V0TXNnVmFyfSAiJHtfdGFyZ2V0TXNnfSIgUEFSRU5UX1NDT1BF
KQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX2Nob29zZV90YXJnZXRfbGFuZ3Vh
Z2VzIF90YXJnZXQgX3RhcmdldExhbmd1YWdlc1ZhciBfd2hvbGVUYXJnZXRWYXIpCisJc2V0IChf
bGFuZ3VhZ2VzICR7QVJHTn0pCisJc2V0IChfYWxsU291cmNlRmlsZXMgIiIpCisJc2V0IChfYWxs
RXhjbHVkZWRTb3VyY2VGaWxlcyAiIikKKwlzZXQgKF9hbGxDb3RpcmVkU291cmNlRmlsZXMgIiIp
CisJc2V0IChfdGFyZ2V0TGFuZ3VhZ2VzICIiKQorCXNldCAoX3BjaEVsaWdpYmxlVGFyZ2V0TGFu
Z3VhZ2VzICIiKQorCWdldF90YXJnZXRfcHJvcGVydHkoX3RhcmdldFR5cGUgJHtfdGFyZ2V0fSBU
WVBFKQorCWdldF90YXJnZXRfcHJvcGVydHkoX3RhcmdldFNvdXJjZUZpbGVzICR7X3RhcmdldH0g
U09VUkNFUykKKwlnZXRfdGFyZ2V0X3Byb3BlcnR5KF90YXJnZXRVc2VQQ0ggJHtfdGFyZ2V0fSBD
T1RJUkVfRU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUikKKwlnZXRfdGFyZ2V0X3Byb3BlcnR5KF90
YXJnZXRBZGRTQ1UgJHtfdGFyZ2V0fSBDT1RJUkVfQUREX1VOSVRZX0JVSUxEKQorCXNldCAoX2Rp
c2FibGVNc2cgIiIpCisJZm9yZWFjaCAoX2xhbmd1YWdlICR7X2xhbmd1YWdlc30pCisJCWdldF90
YXJnZXRfcHJvcGVydHkoX3ByZWZpeEhlYWRlciAke190YXJnZXR9IENPVElSRV8ke19sYW5ndWFn
ZX1fUFJFRklYX0hFQURFUikKKwkJZ2V0X3RhcmdldF9wcm9wZXJ0eShfdW5pdHlCdWlsZEZpbGUg
JHtfdGFyZ2V0fSBDT1RJUkVfJHtfbGFuZ3VhZ2V9X1VOSVRZX1NPVVJDRSkKKwkJaWYgKF9wcmVm
aXhIZWFkZXIgT1IgX3VuaXR5QnVpbGRGaWxlKQorCQkJbWVzc2FnZSAoU1RBVFVTICJjb3RpcmU6
IHRhcmdldCAke190YXJnZXR9IGhhcyBhbHJlYWR5IGJlZW4gY290aXJlZC4iKQorCQkJc2V0ICgk
e190YXJnZXRMYW5ndWFnZXNWYXJ9ICIiIFBBUkVOVF9TQ09QRSkKKwkJCXJldHVybigpCisJCWVu
ZGlmKCkKKwkJaWYgKF90YXJnZXRVc2VQQ0ggQU5EICIke19sYW5ndWFnZX0iIE1BVENIRVMgIl5D
fENYWCQiIEFORCBERUZJTkVEIENNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9JRCkKKwkJCWlm
IChDTUFLRV8ke19sYW5ndWFnZX1fQ09NUElMRVJfSUQpCisJCQkJY290aXJlX2NoZWNrX3ByZWNv
bXBpbGVkX2hlYWRlcl9zdXBwb3J0KCIke19sYW5ndWFnZX0iICIke190YXJnZXR9IiBfZGlzYWJs
ZU1zZykKKwkJCQlpZiAoX2Rpc2FibGVNc2cpCisJCQkJCXNldCAoX3RhcmdldFVzZVBDSCBGQUxT
RSkKKwkJCQllbmRpZigpCisJCQllbmRpZigpCisJCWVuZGlmKCkKKwkJc2V0IChfc291cmNlRmls
ZXMgIiIpCisJCXNldCAoX2V4Y2x1ZGVkU291cmNlcyAiIikKKwkJc2V0IChfY290aXJlZFNvdXJj
ZXMgIiIpCisJCWNvdGlyZV9maWx0ZXJfbGFuZ3VhZ2Vfc291cmNlX2ZpbGVzKCR7X2xhbmd1YWdl
fSAke190YXJnZXR9IF9zb3VyY2VGaWxlcyBfZXhjbHVkZWRTb3VyY2VzIF9jb3RpcmVkU291cmNl
cyAke190YXJnZXRTb3VyY2VGaWxlc30pCisJCWlmIChfc291cmNlRmlsZXMgT1IgX2V4Y2x1ZGVk
U291cmNlcyBPUiBfY290aXJlZFNvdXJjZXMpCisJCQlsaXN0IChBUFBFTkQgX3RhcmdldExhbmd1
YWdlcyAke19sYW5ndWFnZX0pCisJCWVuZGlmKCkKKwkJaWYgKF9zb3VyY2VGaWxlcykKKwkJCWxp
c3QgKEFQUEVORCBfYWxsU291cmNlRmlsZXMgJHtfc291cmNlRmlsZXN9KQorCQllbmRpZigpCisJ
CWxpc3QgKExFTkdUSCBfc291cmNlRmlsZXMgX251bWJlck9mU291cmNlcykKKwkJaWYgKE5PVCBf
bnVtYmVyT2ZTb3VyY2VzIExFU1MgJHtDT1RJUkVfTUlOSU1VTV9OVU1CRVJfT0ZfVEFSR0VUX1NP
VVJDRVN9KQorCQkJbGlzdCAoQVBQRU5EIF9wY2hFbGlnaWJsZVRhcmdldExhbmd1YWdlcyAke19s
YW5ndWFnZX0pCisJCWVuZGlmKCkKKwkJaWYgKF9leGNsdWRlZFNvdXJjZXMpCisJCQlsaXN0IChB
UFBFTkQgX2FsbEV4Y2x1ZGVkU291cmNlRmlsZXMgJHtfZXhjbHVkZWRTb3VyY2VzfSkKKwkJZW5k
aWYoKQorCQlpZiAoX2NvdGlyZWRTb3VyY2VzKQorCQkJbGlzdCAoQVBQRU5EIF9hbGxDb3RpcmVk
U291cmNlRmlsZXMgJHtfY290aXJlZFNvdXJjZXN9KQorCQllbmRpZigpCisJZW5kZm9yZWFjaCgp
CisJc2V0IChfdGFyZ2V0TXNnTGV2ZWwgU1RBVFVTKQorCWlmIChOT1QgX3RhcmdldExhbmd1YWdl
cykKKwkJc3RyaW5nIChSRVBMQUNFICI7IiAiIG9yICIgX2xhbmd1YWdlc1N0ciAiJHtfbGFuZ3Vh
Z2VzfSIpCisJCXNldCAoX2Rpc2FibGVNc2cgIk5vICR7X2xhbmd1YWdlc1N0cn0gc291cmNlIGZp
bGVzLiIpCisJCXNldCAoX3RhcmdldFVzZVBDSCBGQUxTRSkKKwkJc2V0IChfdGFyZ2V0QWRkU0NV
IEZBTFNFKQorCWVuZGlmKCkKKwlpZiAoX3RhcmdldFVzZVBDSCkKKwkJaWYgKF9hbGxDb3RpcmVk
U291cmNlRmlsZXMpCisJCQljb3RpcmVfZ2V0X3NvdXJjZV9maWxlX3Byb3BlcnR5X3ZhbHVlcyhf
Y290aXJlVGFyZ2V0cyBDT1RJUkVfVEFSR0VUICR7X2FsbENvdGlyZWRTb3VyY2VGaWxlc30pCisJ
CQlsaXN0IChSRU1PVkVfRFVQTElDQVRFUyBfY290aXJlVGFyZ2V0cykKKwkJCXN0cmluZyAoUkVQ
TEFDRSAiOyIgIiwgIiBfY290aXJlVGFyZ2V0c1N0ciAiJHtfY290aXJlVGFyZ2V0c30iKQorCQkJ
c2V0IChfZGlzYWJsZU1zZyAiVGFyZ2V0IHNvdXJjZXMgYWxyZWFkeSBpbmNsdWRlIGEgcHJlY29t
cGlsZWQgaGVhZGVyIGZvciB0YXJnZXQocykgJHtfY290aXJlVGFyZ2V0c30uIikKKwkJCXNldCAo
X2Rpc2FibGVNc2cgIiR7X2Rpc2FibGVNc2d9IFNldCB0YXJnZXQgcHJvcGVydHkgQ09USVJFX0VO
QUJMRV9QUkVDT01QSUxFRF9IRUFERVIgdG8gRkFMU0UgZm9yIHRhcmdldHMgJHtfdGFyZ2V0fSwi
KQorCQkJc2V0IChfZGlzYWJsZU1zZyAiJHtfZGlzYWJsZU1zZ30gJHtfY290aXJlVGFyZ2V0c1N0
cn0gdG8gZ2V0IGEgd29ya2FibGUgYnVpbGQgc3lzdGVtLiIpCisJCQlzZXQgKF90YXJnZXRNc2dM
ZXZlbCBTRU5EX0VSUk9SKQorCQkJc2V0IChfdGFyZ2V0VXNlUENIIEZBTFNFKQorCQllbHNlaWYg
KE5PVCBfcGNoRWxpZ2libGVUYXJnZXRMYW5ndWFnZXMpCisJCQlzZXQgKF9kaXNhYmxlTXNnICJU
b28gZmV3IGFwcGxpY2FibGUgc291cmNlcy4iKQorCQkJc2V0IChfdGFyZ2V0VXNlUENIIEZBTFNF
KQorCQllbHNlaWYgKFhDT0RFIEFORCBfYWxsRXhjbHVkZWRTb3VyY2VGaWxlcykKKwkJCSMgZm9y
IFhjb2RlLCB3ZSBjYW5ub3QgYXBwbHkgdGhlIHByZWNvbXBpbGVkIGhlYWRlciB0byBpbmRpdmlk
dWFsIHNvdXJjZXMsIG9ubHkgdG8gdGhlIHdob2xlIHRhcmdldAorCQkJc2V0IChfZGlzYWJsZU1z
ZyAiRXhjbHVzaW9uIG9mIHNvdXJjZSBmaWxlcyBub3Qgc3VwcG9ydGVkIGZvciBnZW5lcmF0b3Ig
WGNvZGUuIikKKwkJCXNldCAoX3RhcmdldFVzZVBDSCBGQUxTRSkKKwkJZWxzZWlmIChYQ09ERSBB
TkQgIiR7X3RhcmdldFR5cGV9IiBTVFJFUVVBTCAiT0JKRUNUX0xJQlJBUlkiKQorCQkJIyBmb3Ig
WGNvZGUsIHdlIGNhbm5vdCBhcHBseSB0aGUgcmVxdWlyZWQgUFJFX0JVSUxEIGFjdGlvbiB0byBn
ZW5lcmF0ZSB0aGUgcHJlZml4IGhlYWRlciB0byBhbiBPQkpFQ1RfTElCUkFSWSB0YXJnZXQKKwkJ
CXNldCAoX2Rpc2FibGVNc2cgIlJlcXVpcmVkIFBSRV9CVUlMRCBhY3Rpb24gbm90IHN1cHBvcnRl
ZCBmb3IgT0JKRUNUX0xJQlJBUlkgdGFyZ2V0cyBmb3IgZ2VuZXJhdG9yIFhjb2RlLiIpCisJCQlz
ZXQgKF90YXJnZXRVc2VQQ0ggRkFMU0UpCisJCWVuZGlmKCkKKwllbmRpZigpCisJc2V0X3Byb3Bl
cnR5KFRBUkdFVCAke190YXJnZXR9IFBST1BFUlRZIENPVElSRV9FTkFCTEVfUFJFQ09NUElMRURf
SEVBREVSICR7X3RhcmdldFVzZVBDSH0pCisJc2V0X3Byb3BlcnR5KFRBUkdFVCAke190YXJnZXR9
IFBST1BFUlRZIENPVElSRV9BRERfVU5JVFlfQlVJTEQgJHtfdGFyZ2V0QWRkU0NVfSkKKwljb3Rp
cmVfbWFrZV90YXJnZXRfbWVzc2FnZSgke190YXJnZXR9ICIke190YXJnZXRMYW5ndWFnZXN9IiAi
JHtfZGlzYWJsZU1zZ30iIF90YXJnZXRNc2cgJHtfYWxsRXhjbHVkZWRTb3VyY2VGaWxlc30pCisJ
aWYgKF90YXJnZXRNc2cpCisJCWlmIChOT1QgREVGSU5FRCBDT1RJUkVNU0dfJHtfdGFyZ2V0fSkK
KwkJCXNldCAoQ09USVJFTVNHXyR7X3RhcmdldH0gIiIpCisJCWVuZGlmKCkKKwkJaWYgKENPVElS
RV9WRVJCT1NFIE9SIE5PVCAiJHtfdGFyZ2V0TXNnTGV2ZWx9IiBTVFJFUVVBTCAiU1RBVFVTIiBP
UgorCQkJTk9UICIke0NPVElSRU1TR18ke190YXJnZXR9fSIgU1RSRVFVQUwgIiR7X3RhcmdldE1z
Z30iKQorCQkJIyBjYWNoZSBtZXNzYWdlIHRvIGF2b2lkIHJlZHVuZGFudCBtZXNzYWdlcyBvbiBy
ZS1jb25maWd1cmUKKwkJCXNldCAoQ09USVJFTVNHXyR7X3RhcmdldH0gIiR7X3RhcmdldE1zZ30i
IENBQ0hFIElOVEVSTkFMICIke190YXJnZXR9IGNvdGlyZSBtZXNzYWdlLiIpCisJCQltZXNzYWdl
ICgke190YXJnZXRNc2dMZXZlbH0gIiR7X3RhcmdldE1zZ30iKQorCQllbmRpZigpCisJZW5kaWYo
KQorCWxpc3QgKExFTkdUSCBfdGFyZ2V0TGFuZ3VhZ2VzIF9udW1iZXJPZkxhbmd1YWdlcykKKwlp
ZiAoX251bWJlck9mTGFuZ3VhZ2VzIEdSRUFURVIgMSBPUiBfYWxsRXhjbHVkZWRTb3VyY2VGaWxl
cykKKwkJc2V0ICgke193aG9sZVRhcmdldFZhcn0gRkFMU0UgUEFSRU5UX1NDT1BFKQorCWVsc2Uo
KQorCQlzZXQgKCR7X3dob2xlVGFyZ2V0VmFyfSBUUlVFIFBBUkVOVF9TQ09QRSkKKwllbmRpZigp
CisJc2V0ICgke190YXJnZXRMYW5ndWFnZXNWYXJ9ICR7X3RhcmdldExhbmd1YWdlc30gUEFSRU5U
X1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX2NvbXB1dGVfdW5pdHlf
bWF4X251bWJlcl9vZl9pbmNsdWRlcyBfdGFyZ2V0IF9tYXhJbmNsdWRlc1ZhcikKKwlzZXQgKF9z
b3VyY2VGaWxlcyAke0FSR059KQorCWdldF90YXJnZXRfcHJvcGVydHkoX21heEluY2x1ZGVzICR7
X3RhcmdldH0gQ09USVJFX1VOSVRZX1NPVVJDRV9NQVhJTVVNX05VTUJFUl9PRl9JTkNMVURFUykK
KwlpZiAoX21heEluY2x1ZGVzIE1BVENIRVMgIigtanwtLXBhcmFsbGVsfC0tam9icykgPyhbMC05
XSopIikKKwkJc2V0IChfbnVtYmVyT2ZUaHJlYWRzICIke0NNQUtFX01BVENIXzJ9IikKKwkJaWYg
KE5PVCBfbnVtYmVyT2ZUaHJlYWRzKQorCQkJIyB1c2UgYWxsIGF2YWlsYWJsZSBjb3JlcworCQkJ
UHJvY2Vzc29yQ291bnQoX251bWJlck9mVGhyZWFkcykKKwkJZW5kaWYoKQorCQlsaXN0IChMRU5H
VEggX3NvdXJjZUZpbGVzIF9udW1iZXJPZlNvdXJjZXMpCisJCW1hdGggKEVYUFIgX21heEluY2x1
ZGVzICIoJHtfbnVtYmVyT2ZTb3VyY2VzfSArICR7X251bWJlck9mVGhyZWFkc30gLSAxKSAvICR7
X251bWJlck9mVGhyZWFkc30iKQorCWVsc2VpZiAoTk9UIF9tYXhJbmNsdWRlcyBNQVRDSEVTICJb
MC05XSsiKQorCQlzZXQgKF9tYXhJbmNsdWRlcyAwKQorCWVuZGlmKCkKKwlpZiAoQ09USVJFX0RF
QlVHKQorCQltZXNzYWdlIChTVEFUVVMgIiR7X3RhcmdldH0gdW5pdHkgc291cmNlIG1heCBpbmNs
dWRlczogJHtfbWF4SW5jbHVkZXN9IikKKwllbmRpZigpCisJc2V0ICgke19tYXhJbmNsdWRlc1Zh
cn0gJHtfbWF4SW5jbHVkZXN9IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rp
b24gKGNvdGlyZV9wcm9jZXNzX3RhcmdldF9sYW5ndWFnZSBfbGFuZ3VhZ2UgX2NvbmZpZ3VyYXRp
b25zIF90YXJnZXQgX3dob2xlVGFyZ2V0IF9jbWRzVmFyKQorCXNldCAoJHtfY21kc1Zhcn0gIiIg
UEFSRU5UX1NDT1BFKQorCWdldF90YXJnZXRfcHJvcGVydHkoX3RhcmdldFNvdXJjZUZpbGVzICR7
X3RhcmdldH0gU09VUkNFUykKKwlzZXQgKF9zb3VyY2VGaWxlcyAiIikKKwlzZXQgKF9leGNsdWRl
ZFNvdXJjZXMgIiIpCisJc2V0IChfY290aXJlZFNvdXJjZXMgIiIpCisJY290aXJlX2ZpbHRlcl9s
YW5ndWFnZV9zb3VyY2VfZmlsZXMoJHtfbGFuZ3VhZ2V9ICR7X3RhcmdldH0gX3NvdXJjZUZpbGVz
IF9leGNsdWRlZFNvdXJjZXMgX2NvdGlyZWRTb3VyY2VzICR7X3RhcmdldFNvdXJjZUZpbGVzfSkK
KwlpZiAoTk9UIF9zb3VyY2VGaWxlcyBBTkQgTk9UIF9jb3RpcmVkU291cmNlcykKKwkJcmV0dXJu
KCkKKwllbmRpZigpCisJc2V0IChfY21kcyAiIikKKwkjIGNoZWNrIGZvciB1c2VyIHByb3ZpZGVk
IHVuaXR5IHNvdXJjZSBmaWxlIGxpc3QKKwlnZXRfcHJvcGVydHkoX3VuaXR5U291cmNlRmlsZXMg
VEFSR0VUICR7X3RhcmdldH0gUFJPUEVSVFkgQ09USVJFXyR7X2xhbmd1YWdlfV9VTklUWV9TT1VS
Q0VfSU5JVCkKKwlpZiAoTk9UIF91bml0eVNvdXJjZUZpbGVzKQorCQlzZXQgKF91bml0eVNvdXJj
ZUZpbGVzICR7X3NvdXJjZUZpbGVzfSAke19jb3RpcmVkU291cmNlc30pCisJZW5kaWYoKQorCWNv
dGlyZV9nZW5lcmF0ZV90YXJnZXRfc2NyaXB0KAorCQkke19sYW5ndWFnZX0gIiR7X2NvbmZpZ3Vy
YXRpb25zfSIgJHtfdGFyZ2V0fSBfdGFyZ2V0U2NyaXB0IF90YXJnZXRDb25maWdTY3JpcHQgJHtf
dW5pdHlTb3VyY2VGaWxlc30pCisJIyBzZXQgdXAgdW5pdHkgZmlsZXMgZm9yIHBhcmFsbGVsIGNv
bXBpbGF0aW9uCisJY290aXJlX2NvbXB1dGVfdW5pdHlfbWF4X251bWJlcl9vZl9pbmNsdWRlcygk
e190YXJnZXR9IF9tYXhJbmNsdWRlcyAke191bml0eVNvdXJjZUZpbGVzfSkKKwljb3RpcmVfbWFr
ZV91bml0eV9zb3VyY2VfZmlsZV9wYXRocygke19sYW5ndWFnZX0gJHtfdGFyZ2V0fSAke19tYXhJ
bmNsdWRlc30gX3VuaXR5RmlsZXMgJHtfdW5pdHlTb3VyY2VGaWxlc30pCisJbGlzdCAoTEVOR1RI
IF91bml0eUZpbGVzIF9udW1iZXJPZlVuaXR5RmlsZXMpCisJaWYgKF9udW1iZXJPZlVuaXR5Rmls
ZXMgRVFVQUwgMCkKKwkJcmV0dXJuKCkKKwllbHNlaWYgKF9udW1iZXJPZlVuaXR5RmlsZXMgR1JF
QVRFUiAxKQorCQljb3RpcmVfc2V0dXBfdW5pdHlfZ2VuZXJhdGlvbl9jb21tYW5kcygKKwkJCSR7
X2xhbmd1YWdlfSAke190YXJnZXR9ICIke190YXJnZXRTY3JpcHR9IiAiJHtfdGFyZ2V0Q29uZmln
U2NyaXB0fSIgIiR7X3VuaXR5RmlsZXN9IiBfY21kcyAke191bml0eVNvdXJjZUZpbGVzfSkKKwll
bmRpZigpCisJIyBzZXQgdXAgc2luZ2xlIHVuaXR5IGZpbGUgZm9yIHByZWZpeCBoZWFkZXIgZ2Vu
ZXJhdGlvbgorCWNvdGlyZV9tYWtlX3NpbmdsZV91bml0eV9zb3VyY2VfZmlsZV9wYXRoKCR7X2xh
bmd1YWdlfSAke190YXJnZXR9IF91bml0eUZpbGUpCisJY290aXJlX3NldHVwX3VuaXR5X2dlbmVy
YXRpb25fY29tbWFuZHMoCisJCSR7X2xhbmd1YWdlfSAke190YXJnZXR9ICIke190YXJnZXRTY3Jp
cHR9IiAiJHtfdGFyZ2V0Q29uZmlnU2NyaXB0fSIgIiR7X3VuaXR5RmlsZX0iIF9jbWRzICR7X3Vu
aXR5U291cmNlRmlsZXN9KQorCWNvdGlyZV9tYWtlX3ByZWZpeF9maWxlX3BhdGgoJHtfbGFuZ3Vh
Z2V9ICR7X3RhcmdldH0gX3ByZWZpeEZpbGUpCisJIyBzZXQgdXAgcHJlZml4IGhlYWRlcgorCWlm
IChfcHJlZml4RmlsZSkKKwkJIyBjaGVjayBmb3IgdXNlciBwcm92aWRlZCBwcmVmaXggaGVhZGVy
IGZpbGVzCisJCWdldF9wcm9wZXJ0eShfcHJlZml4SGVhZGVyRmlsZXMgVEFSR0VUICR7X3Rhcmdl
dH0gUFJPUEVSVFkgQ09USVJFXyR7X2xhbmd1YWdlfV9QUkVGSVhfSEVBREVSX0lOSVQpCisJCWlm
IChfcHJlZml4SGVhZGVyRmlsZXMpCisJCQljb3RpcmVfc2V0dXBfcHJlZml4X2dlbmVyYXRpb25f
ZnJvbV9wcm92aWRlZF9jb21tYW5kKAorCQkJCSR7X2xhbmd1YWdlfSAke190YXJnZXR9ICIke190
YXJnZXRDb25maWdTY3JpcHR9IiAiJHtfcHJlZml4RmlsZX0iIF9jbWRzICR7X3ByZWZpeEhlYWRl
ckZpbGVzfSkKKwkJZWxzZSgpCisJCQljb3RpcmVfc2V0dXBfcHJlZml4X2dlbmVyYXRpb25fZnJv
bV91bml0eV9jb21tYW5kKAorCQkJCSR7X2xhbmd1YWdlfSAke190YXJnZXR9ICIke190YXJnZXRD
b25maWdTY3JpcHR9IiAiJHtfcHJlZml4RmlsZX0iICIke191bml0eUZpbGV9IiBfY21kcyAke191
bml0eVNvdXJjZUZpbGVzfSkKKwkJZW5kaWYoKQorCQkjIGNoZWNrIGlmIHNlbGVjdGVkIGxhbmd1
YWdlIGhhcyBlbm91Z2ggc291cmNlcyBhdCBhbGwKKwkJbGlzdCAoTEVOR1RIIF9zb3VyY2VGaWxl
cyBfbnVtYmVyT2ZTb3VyY2VzKQorCQlpZiAoX251bWJlck9mU291cmNlcyBMRVNTICR7Q09USVJF
X01JTklNVU1fTlVNQkVSX09GX1RBUkdFVF9TT1VSQ0VTfSkKKwkJCXNldCAoX3RhcmdldFVzZVBD
SCBGQUxTRSkKKwkJZWxzZSgpCisJCQlnZXRfdGFyZ2V0X3Byb3BlcnR5KF90YXJnZXRVc2VQQ0gg
JHtfdGFyZ2V0fSBDT1RJUkVfRU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUikKKwkJZW5kaWYoKQor
CQlpZiAoX3RhcmdldFVzZVBDSCkKKwkJCWNvdGlyZV9tYWtlX3BjaF9maWxlX3BhdGgoJHtfbGFu
Z3VhZ2V9ICR7X3RhcmdldH0gX3BjaEZpbGUpCisJCQlpZiAoX3BjaEZpbGUpCisJCQkJIyBmaXJz
dCBmaWxlIGluIF9zb3VyY2VGaWxlcyBpcyBwYXNzZWQgYXMgdGhlIGhvc3QgZmlsZQorCQkJCWNv
dGlyZV9zZXR1cF9wY2hfZmlsZV9jb21waWxhdGlvbigKKwkJCQkJJHtfbGFuZ3VhZ2V9ICR7X3Rh
cmdldH0gIiR7X3RhcmdldENvbmZpZ1NjcmlwdH0iICIke19wcmVmaXhGaWxlfSIgIiR7X3BjaEZp
bGV9IiAke19zb3VyY2VGaWxlc30pCisJCQkJY290aXJlX3NldHVwX3BjaF9maWxlX2luY2x1c2lv
bigKKwkJCQkJJHtfbGFuZ3VhZ2V9ICR7X3RhcmdldH0gJHtfd2hvbGVUYXJnZXR9ICIke19wcmVm
aXhGaWxlfSIgIiR7X3BjaEZpbGV9IiAke19zb3VyY2VGaWxlc30pCisJCQllbmRpZigpCisJCWVs
c2VpZiAoX3ByZWZpeEhlYWRlckZpbGVzKQorCQkJIyB1c2VyIHByb3ZpZGVkIHByZWZpeCBoZWFk
ZXIgbXVzdCBiZSBpbmNsdWRlZCB1bmNvbmRpdGlvbmFsbHkKKwkJCWNvdGlyZV9zZXR1cF9wcmVm
aXhfZmlsZV9pbmNsdXNpb24oJHtfbGFuZ3VhZ2V9ICR7X3RhcmdldH0gIiR7X3ByZWZpeEZpbGV9
IiAke19zb3VyY2VGaWxlc30pCisJCWVuZGlmKCkKKwllbmRpZigpCisJIyBtYXJrIHRhcmdldCBh
cyBjb3RpcmVkIGZvciBsYW5ndWFnZQorCXNldF9wcm9wZXJ0eShUQVJHRVQgJHtfdGFyZ2V0fSBQ
Uk9QRVJUWSBDT1RJUkVfJHtfbGFuZ3VhZ2V9X1VOSVRZX1NPVVJDRSAiJHtfdW5pdHlGaWxlc30i
KQorCWlmIChfcHJlZml4RmlsZSkKKwkJc2V0X3Byb3BlcnR5KFRBUkdFVCAke190YXJnZXR9IFBS
T1BFUlRZIENPVElSRV8ke19sYW5ndWFnZX1fUFJFRklYX0hFQURFUiAiJHtfcHJlZml4RmlsZX0i
KQorCQlpZiAoX3RhcmdldFVzZVBDSCBBTkQgX3BjaEZpbGUpCisJCQlzZXRfcHJvcGVydHkoVEFS
R0VUICR7X3RhcmdldH0gUFJPUEVSVFkgQ09USVJFXyR7X2xhbmd1YWdlfV9QUkVDT01QSUxFRF9I
RUFERVIgIiR7X3BjaEZpbGV9IikKKwkJZW5kaWYoKQorCWVuZGlmKCkKKwlzZXQgKCR7X2NtZHNW
YXJ9ICR7X2NtZHN9IFBBUkVOVF9TQ09QRSkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNv
dGlyZV9zZXR1cF9jbGVhbl90YXJnZXQgX3RhcmdldCkKKwlzZXQgKF9jbGVhblRhcmdldE5hbWUg
IiR7X3RhcmdldH0ke0NPVElSRV9DTEVBTl9UQVJHRVRfU1VGRklYfSIpCisJaWYgKE5PVCBUQVJH
RVQgIiR7X2NsZWFuVGFyZ2V0TmFtZX0iKQorCQljb3RpcmVfc2V0X2NtZF90b19wcm9sb2d1ZShf
Y21kcykKKwkJZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChfb3V0cHV0RGlyICIke0NNQUtFX0NVUlJF
TlRfQklOQVJZX0RJUn0vJHtDTUFLRV9DRkdfSU5URElSfSIgQUJTT0xVVEUpCisJCWxpc3QgKEFQ
UEVORCBfY21kcyAtUCAiJHtDT1RJUkVfQ01BS0VfTU9EVUxFX0ZJTEV9IiAiY2xlYW51cCIgIiR7
X291dHB1dERpcn0iICIke0NPVElSRV9JTlRESVJ9IiAiJHtfdGFyZ2V0fSIpCisJCWFkZF9jdXN0
b21fdGFyZ2V0KCR7X2NsZWFuVGFyZ2V0TmFtZX0KKwkJCUNPTU1BTkQgJHtfY21kc30KKwkJCVdP
UktJTkdfRElSRUNUT1JZICIke0NNQUtFX0JJTkFSWV9ESVJ9IgorCQkJQ09NTUVOVCAiQ2xlYW5p
bmcgdXAgdGFyZ2V0ICR7X3RhcmdldH0gY290aXJlIGdlbmVyYXRlZCBmaWxlcyIKKwkJCVZFUkJB
VElNKQorCQljb3RpcmVfaW5pdF90YXJnZXQoIiR7X2NsZWFuVGFyZ2V0TmFtZX0iKQorCWVuZGlm
KCkKK2VuZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9zZXR1cF9wY2hfdGFyZ2V0IF9s
YW5ndWFnZXMgX2NvbmZpZ3VyYXRpb25zIF90YXJnZXQpCisJaWYgKCIke0NNQUtFX0dFTkVSQVRP
Un0iIE1BVENIRVMgIk1ha2V8TmluamEiKQorCQkjIGZvciBtYWtlZmlsZSBiYXNlZCBnZW5lcmF0
b3JzLCB3ZSBhZGQgYSBjdXN0b20gdGFyZ2V0IHRvIHRyaWdnZXIgdGhlIGdlbmVyYXRpb24gb2Yg
dGhlIGNvdGlyZSByZWxhdGVkIGZpbGVzCisJCXNldCAoX2RlcGVuZHNGaWxlcyAiIikKKwkJZm9y
ZWFjaCAoX2xhbmd1YWdlICR7X2xhbmd1YWdlc30pCisJCQlzZXQgKF9wcm9wcyBDT1RJUkVfJHtf
bGFuZ3VhZ2V9X1BSRUZJWF9IRUFERVIgQ09USVJFXyR7X2xhbmd1YWdlfV9VTklUWV9TT1VSQ0Up
CisJCQlpZiAoTk9UIENNQUtFXyR7X2xhbmd1YWdlfV9DT01QSUxFUl9JRCBNQVRDSEVTICJNU1ZD
fEludGVsIikKKwkJCQkjIFZpc3VhbCBTdHVkaW8gYW5kIEludGVsIG9ubHkgY3JlYXRlIHByZWNv
bXBpbGVkIGhlYWRlciBhcyBhIHNpZGUgZWZmZWN0CisJCQkJbGlzdCAoSU5TRVJUIF9wcm9wcyAw
IENPVElSRV8ke19sYW5ndWFnZX1fUFJFQ09NUElMRURfSEVBREVSKQorCQkJZW5kaWYoKQorCQkJ
Y290aXJlX2dldF9maXJzdF9zZXRfcHJvcGVydHlfdmFsdWUoX2RlcGVuZHNGaWxlIFRBUkdFVCAk
e190YXJnZXR9ICR7X3Byb3BzfSkKKwkJCWlmIChfZGVwZW5kc0ZpbGUpCisJCQkJbGlzdCAoQVBQ
RU5EIF9kZXBlbmRzRmlsZXMgIiR7X2RlcGVuZHNGaWxlfSIpCisJCQllbmRpZigpCisJCWVuZGZv
cmVhY2goKQorCQlpZiAoX2RlcGVuZHNGaWxlcykKKwkJCXNldCAoX3BjaFRhcmdldE5hbWUgIiR7
X3RhcmdldH0ke0NPVElSRV9QQ0hfVEFSR0VUX1NVRkZJWH0iKQorCQkJYWRkX2N1c3RvbV90YXJn
ZXQoIiR7X3BjaFRhcmdldE5hbWV9IiBERVBFTkRTICR7X2RlcGVuZHNGaWxlc30pCisJCQljb3Rp
cmVfaW5pdF90YXJnZXQoIiR7X3BjaFRhcmdldE5hbWV9IikKKwkJCWNvdGlyZV9hZGRfdG9fcGNo
X2FsbF90YXJnZXQoJHtfcGNoVGFyZ2V0TmFtZX0pCisJCWVuZGlmKCkKKwllbHNlKCkKKwkJIyBm
b3Igb3RoZXIgZ2VuZXJhdG9ycywgd2UgYWRkIHRoZSAiY2xlYW4gYWxsIiB0YXJnZXQgdG8gY2xl
YW4gdXAgdGhlIHByZWNvbXBpbGVkIGhlYWRlcgorCQljb3RpcmVfc2V0dXBfY2xlYW5fYWxsX3Rh
cmdldCgpCisJZW5kaWYoKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX2ZpbHRl
cl9vYmplY3RfbGlicmFyaWVzIF90YXJnZXQgX29iamVjdExpYnJhcmllc1ZhcikKKwlzZXQgKF9v
YmplY3RMaWJyYXJpZXMgIiIpCisJZm9yZWFjaCAoX3NvdXJjZSAke0FSR059KQorCQlpZiAoX3Nv
dXJjZSBNQVRDSEVTICJeXFwkPFRBUkdFVF9PQkpFQ1RTOi4rPiQiKQorCQkJbGlzdCAoQVBQRU5E
IF9vYmplY3RMaWJyYXJpZXMgIiR7X3NvdXJjZX0iKQorCQllbmRpZigpCisJZW5kZm9yZWFjaCgp
CisJc2V0ICgke19vYmplY3RMaWJyYXJpZXNWYXJ9ICR7X29iamVjdExpYnJhcmllc30gUEFSRU5U
X1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX2NvbGxlY3RfdW5pdHlf
dGFyZ2V0X3NvdXJjZXMgX3RhcmdldCBfbGFuZ3VhZ2VzIF91bml0eVRhcmdldFNvdXJjZXNWYXIp
CisJZ2V0X3RhcmdldF9wcm9wZXJ0eShfdGFyZ2V0U291cmNlRmlsZXMgJHtfdGFyZ2V0fSBTT1VS
Q0VTKQorCXNldCAoX3VuaXR5VGFyZ2V0U291cmNlcyAke190YXJnZXRTb3VyY2VGaWxlc30pCisJ
Zm9yZWFjaCAoX2xhbmd1YWdlICR7X2xhbmd1YWdlc30pCisJCWdldF9wcm9wZXJ0eShfdW5pdHlG
aWxlcyBUQVJHRVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSBDT1RJUkVfJHtfbGFuZ3VhZ2V9X1VOSVRZ
X1NPVVJDRSkKKwkJaWYgKF91bml0eUZpbGVzKQorCQkJIyByZW1vdmUgc291cmNlIGZpbGVzIHRo
YXQgYXJlIGluY2x1ZGVkIGluIHRoZSB1bml0eSBzb3VyY2UKKwkJCXNldCAoX3NvdXJjZUZpbGVz
ICIiKQorCQkJc2V0IChfZXhjbHVkZWRTb3VyY2VzICIiKQorCQkJc2V0IChfY290aXJlZFNvdXJj
ZXMgIiIpCisJCQljb3RpcmVfZmlsdGVyX2xhbmd1YWdlX3NvdXJjZV9maWxlcygke19sYW5ndWFn
ZX0gJHtfdGFyZ2V0fSBfc291cmNlRmlsZXMgX2V4Y2x1ZGVkU291cmNlcyBfY290aXJlZFNvdXJj
ZXMgJHtfdGFyZ2V0U291cmNlRmlsZXN9KQorCQkJaWYgKF9zb3VyY2VGaWxlcyBPUiBfY290aXJl
ZFNvdXJjZXMpCisJCQkJbGlzdCAoUkVNT1ZFX0lURU0gX3VuaXR5VGFyZ2V0U291cmNlcyAke19z
b3VyY2VGaWxlc30gJHtfY290aXJlZFNvdXJjZXN9KQorCQkJZW5kaWYoKQorCQkJIyBhZGQgdW5p
dHkgc291cmNlIGZpbGVzIGluc3RlYWQKKwkJCWxpc3QgKEFQUEVORCBfdW5pdHlUYXJnZXRTb3Vy
Y2VzICR7X3VuaXR5RmlsZXN9KQorCQllbmRpZigpCisJZW5kZm9yZWFjaCgpCisJZ2V0X3Rhcmdl
dF9wcm9wZXJ0eShfbGlua0xpYnJhcmllc1N0cmF0ZWd5ICR7X3RhcmdldH0gQ09USVJFX1VOSVRZ
X0xJTktfTElCUkFSSUVTX0lOSVQpCisJaWYgKCIke19saW5rTGlicmFyaWVzU3RyYXRlZ3l9IiBN
QVRDSEVTICJeQ09QWV9VTklUWSQiKQorCQljb3RpcmVfZmlsdGVyX29iamVjdF9saWJyYXJpZXMo
JHtfdGFyZ2V0fSBfb2JqZWN0TGlicmFyaWVzICR7X3RhcmdldFNvdXJjZUZpbGVzfSkKKwkJaWYg
KF9vYmplY3RMaWJyYXJpZXMpCisJCQljb3RpcmVfbWFwX2xpYnJhcmllcygiJHtfbGlua0xpYnJh
cmllc1N0cmF0ZWd5fSIgX3VuaXR5T2JqZWN0TGlicmFyaWVzICR7X29iamVjdExpYnJhcmllc30p
CisJCQlsaXN0IChSRU1PVkVfSVRFTSBfdW5pdHlUYXJnZXRTb3VyY2VzICR7X29iamVjdExpYnJh
cmllc30pCisJCQlsaXN0IChBUFBFTkQgX3VuaXR5VGFyZ2V0U291cmNlcyAke191bml0eU9iamVj
dExpYnJhcmllc30pCisJCWVuZGlmKCkKKwllbmRpZigpCisJc2V0ICgke191bml0eVRhcmdldFNv
dXJjZXNWYXJ9ICR7X3VuaXR5VGFyZ2V0U291cmNlc30gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rp
b24oKQorCitmdW5jdGlvbiAoY290aXJlX3NldHVwX3VuaXR5X3RhcmdldF9wY2hfdXNhZ2UgX2xh
bmd1YWdlcyBfdGFyZ2V0KQorCWZvcmVhY2ggKF9sYW5ndWFnZSAke19sYW5ndWFnZXN9KQorCQln
ZXRfcHJvcGVydHkoX3VuaXR5RmlsZXMgVEFSR0VUICR7X3RhcmdldH0gUFJPUEVSVFkgQ09USVJF
XyR7X2xhbmd1YWdlfV9VTklUWV9TT1VSQ0UpCisJCWlmIChfdW5pdHlGaWxlcykKKwkJCWdldF9w
cm9wZXJ0eShfdXNlclByZWZpeEZpbGUgVEFSR0VUICR7X3RhcmdldH0gUFJPUEVSVFkgQ09USVJF
XyR7X2xhbmd1YWdlfV9QUkVGSVhfSEVBREVSX0lOSVQpCisJCQlnZXRfcHJvcGVydHkoX3ByZWZp
eEZpbGUgVEFSR0VUICR7X3RhcmdldH0gUFJPUEVSVFkgQ09USVJFXyR7X2xhbmd1YWdlfV9QUkVG
SVhfSEVBREVSKQorCQkJaWYgKF91c2VyUHJlZml4RmlsZSBBTkQgX3ByZWZpeEZpbGUpCisJCQkJ
IyB1c2VyIHByb3ZpZGVkIHByZWZpeCBoZWFkZXIgbXVzdCBiZSBpbmNsdWRlZCB1bmNvbmRpdGlv
bmFsbHkgYnkgdW5pdHkgc291cmNlcworCQkJCWNvdGlyZV9zZXR1cF9wcmVmaXhfZmlsZV9pbmNs
dXNpb24oJHtfbGFuZ3VhZ2V9ICR7X3RhcmdldH0gIiR7X3ByZWZpeEZpbGV9IiAke191bml0eUZp
bGVzfSkKKwkJCWVuZGlmKCkKKwkJZW5kaWYoKQorCWVuZGZvcmVhY2goKQorZW5kZnVuY3Rpb24o
KQorCitmdW5jdGlvbiAoY290aXJlX3NldHVwX3VuaXR5X2J1aWxkX3RhcmdldCBfbGFuZ3VhZ2Vz
IF9jb25maWd1cmF0aW9ucyBfdGFyZ2V0KQorCWdldF90YXJnZXRfcHJvcGVydHkoX3VuaXR5VGFy
Z2V0TmFtZSAke190YXJnZXR9IENPVElSRV9VTklUWV9UQVJHRVRfTkFNRSkKKwlpZiAoTk9UIF91
bml0eVRhcmdldE5hbWUpCisJCXNldCAoX3VuaXR5VGFyZ2V0TmFtZSAiJHtfdGFyZ2V0fSR7Q09U
SVJFX1VOSVRZX0JVSUxEX1RBUkdFVF9TVUZGSVh9IikKKwllbmRpZigpCisJIyBkZXRlcm1pbmUg
dW5pdHkgdGFyZ2V0IHN1YiB0eXBlCisJZ2V0X3RhcmdldF9wcm9wZXJ0eShfdGFyZ2V0VHlwZSAk
e190YXJnZXR9IFRZUEUpCisJaWYgKCIke190YXJnZXRUeXBlfSIgU1RSRVFVQUwgIkVYRUNVVEFC
TEUiKQorCQlzZXQgKF91bml0eVRhcmdldFN1YlR5cGUgIiIpCisJZWxzZWlmIChfdGFyZ2V0VHlw
ZSBNQVRDSEVTICIoU1RBVElDfFNIQVJFRHxNT0RVTEV8T0JKRUNUKV9MSUJSQVJZIikKKwkJc2V0
IChfdW5pdHlUYXJnZXRTdWJUeXBlICIke0NNQUtFX01BVENIXzF9IikKKwllbHNlKCkKKwkJbWVz
c2FnZSAoV0FSTklORyAiY290aXJlOiB0YXJnZXQgJHtfdGFyZ2V0fSBoYXMgdW5rbm93biB0YXJn
ZXQgdHlwZSAke190YXJnZXRUeXBlfS4iKQorCQlyZXR1cm4oKQorCWVuZGlmKCkKKwkjIGRldGVy
bWluZSB1bml0eSB0YXJnZXQgc291cmNlcworCXNldCAoX3VuaXR5VGFyZ2V0U291cmNlcyAiIikK
Kwljb3RpcmVfY29sbGVjdF91bml0eV90YXJnZXRfc291cmNlcygke190YXJnZXR9ICIke19sYW5n
dWFnZXN9IiBfdW5pdHlUYXJnZXRTb3VyY2VzKQorCSMgaGFuZGxlIGF1dG9tYXRpYyBRdCBwcm9j
ZXNzaW5nCisJZ2V0X3RhcmdldF9wcm9wZXJ0eShfdGFyZ2V0QXV0b01vYyAke190YXJnZXR9IEFV
VE9NT0MpCisJZ2V0X3RhcmdldF9wcm9wZXJ0eShfdGFyZ2V0QXV0b1VpYyAke190YXJnZXR9IEFV
VE9VSUMpCisJZ2V0X3RhcmdldF9wcm9wZXJ0eShfdGFyZ2V0QXV0b1JjYyAke190YXJnZXR9IEFV
VE9SQ0MpCisJaWYgKF90YXJnZXRBdXRvTW9jIE9SIF90YXJnZXRBdXRvVWljIE9SIF90YXJnZXRB
dXRvUmNjKQorCQkjIGlmIHRoZSBvcmlnaW5hbCB0YXJnZXQgc291cmNlcyBhcmUgc3ViamVjdCB0
byBDTWFrZSdzIGF1dG9tYXRpYyBRdCBwcm9jZXNzaW5nLAorCQkjIGFsc28gaW5jbHVkZSBpbXBs
aWNpdGx5IGdlbmVyYXRlZCA8dGFyZ2V0bmFtZT5fYXV0b21vYy5jcHAgZmlsZQorCQlpZiAoQ01B
S0VfVkVSU0lPTiBWRVJTSU9OX0xFU1MgIjMuOC4wIikKKwkJCWxpc3QgKEFQUEVORCBfdW5pdHlU
YXJnZXRTb3VyY2VzICIke190YXJnZXR9X2F1dG9tb2MuY3BwIikKKwkJCXNldF9wcm9wZXJ0eSAo
U09VUkNFICIke190YXJnZXR9X2F1dG9tb2MuY3BwIiBQUk9QRVJUWSBHRU5FUkFURUQgVFJVRSkK
KwkJZWxzZSgpCisJCQlsaXN0IChBUFBFTkQgX3VuaXR5VGFyZ2V0U291cmNlcyAiJHtfdGFyZ2V0
fV9hdXRvZ2VuL21vY19jb21waWxhdGlvbi5jcHAiKQorCQkJc2V0X3Byb3BlcnR5IChTT1VSQ0Ug
IiR7X3RhcmdldH1fYXV0b2dlbi9tb2NfY29tcGlsYXRpb24uY3BwIiBQUk9QRVJUWSBHRU5FUkFU
RUQgVFJVRSkKKwkJZW5kaWYoKQorCWVuZGlmKCkKKwkjIHByZXZlbnQgQVVUT01PQywgQVVUT1VJ
QyBhbmQgQVVUT1JDQyBwcm9wZXJ0aWVzIGZyb20gYmVpbmcgc2V0IHdoZW4gdGhlIHVuaXR5IHRh
cmdldCBpcyBjcmVhdGVkCisJc2V0IChDTUFLRV9BVVRPTU9DIE9GRikKKwlzZXQgKENNQUtFX0FV
VE9VSUMgT0ZGKQorCXNldCAoQ01BS0VfQVVUT1JDQyBPRkYpCisJaWYgKENPVElSRV9ERUJVRykK
KwkJbWVzc2FnZSAoU1RBVFVTICJhZGQgdGFyZ2V0ICR7X3RhcmdldFR5cGV9ICR7X3VuaXR5VGFy
Z2V0TmFtZX0gJHtfdW5pdHlUYXJnZXRTdWJUeXBlfSBFWENMVURFX0ZST01fQUxMICR7X3VuaXR5
VGFyZ2V0U291cmNlc30iKQorCWVuZGlmKCkKKwkjIGdlbmVyYXRlIHVuaXR5IHRhcmdldAorCWlm
ICgiJHtfdGFyZ2V0VHlwZX0iIFNUUkVRVUFMICJFWEVDVVRBQkxFIikKKwkJYWRkX2V4ZWN1dGFi
bGUoJHtfdW5pdHlUYXJnZXROYW1lfSAke191bml0eVRhcmdldFN1YlR5cGV9IEVYQ0xVREVfRlJP
TV9BTEwgJHtfdW5pdHlUYXJnZXRTb3VyY2VzfSkKKwllbHNlKCkKKwkJYWRkX2xpYnJhcnkoJHtf
dW5pdHlUYXJnZXROYW1lfSAke191bml0eVRhcmdldFN1YlR5cGV9IEVYQ0xVREVfRlJPTV9BTEwg
JHtfdW5pdHlUYXJnZXRTb3VyY2VzfSkKKwllbmRpZigpCisJaWYgKCIke0NNQUtFX0dFTkVSQVRP
Un0iIE1BVENIRVMgIlZpc3VhbCBTdHVkaW8iKQorCQkjIGRlcGVuZCBvbiBvcmlnaW5hbCB0YXJn
ZXQncyBhdXRvbW9jIHRhcmdldCwgaWYgaXQgZXhpc3RzCisJCWlmIChUQVJHRVQgJHtfdGFyZ2V0
fV9hdXRvbW9jKQorCQkJYWRkX2RlcGVuZGVuY2llcygke191bml0eVRhcmdldE5hbWV9ICR7X3Rh
cmdldH1fYXV0b21vYykKKwkJZW5kaWYoKQorCWVsc2UoKQorCQlpZiAoX3RhcmdldEF1dG9Nb2Mg
T1IgX3RhcmdldEF1dG9VaWMgT1IgX3RhcmdldEF1dG9SY2MpCisJCQkjIGRlcGVuZCBvbiB0aGUg
b3JpZ2luYWwgdGFyZ2V0J3MgaW1wbGljaXR5IGdlbmVyYXRlZCA8dGFyZ2V0bmFtZT5fYXV0b21v
YyB0YXJnZXQKKwkJCWlmIChDTUFLRV9WRVJTSU9OIFZFUlNJT05fTEVTUyAiMy44LjAiKQorCQkJ
CWFkZF9kZXBlbmRlbmNpZXMoJHtfdW5pdHlUYXJnZXROYW1lfSAke190YXJnZXR9X2F1dG9tb2Mp
CisJCQllbHNlKCkKKwkJCQlhZGRfZGVwZW5kZW5jaWVzKCR7X3VuaXR5VGFyZ2V0TmFtZX0gJHtf
dGFyZ2V0fV9hdXRvZ2VuKQorCQkJZW5kaWYoKQorCQllbmRpZigpCisJZW5kaWYoKQorCSMgY29w
eSBvdXRwdXQgbG9jYXRpb24gcHJvcGVydGllcworCXNldCAoX291dHB1dERpclByb3BlcnRpZXMK
KwkJQVJDSElWRV9PVVRQVVRfRElSRUNUT1JZIEFSQ0hJVkVfT1VUUFVUX0RJUkVDVE9SWV88Q09O
RklHPgorCQlMSUJSQVJZX09VVFBVVF9ESVJFQ1RPUlkgTElCUkFSWV9PVVRQVVRfRElSRUNUT1JZ
XzxDT05GSUc+CisJCVJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSBSVU5USU1FX09VVFBVVF9ESVJF
Q1RPUllfPENPTkZJRz4pCisJaWYgKENPVElSRV9VTklUWV9PVVRQVVRfRElSRUNUT1JZKQorCQlz
ZXQgKF9zZXREZWZhdWx0T3V0cHV0RGlyIFRSVUUpCisJCWlmIChJU19BQlNPTFVURSAiJHtDT1RJ
UkVfVU5JVFlfT1VUUFVUX0RJUkVDVE9SWX0iKQorCQkJc2V0IChfb3V0cHV0RGlyICIke0NPVElS
RV9VTklUWV9PVVRQVVRfRElSRUNUT1JZfSIpCisJCWVsc2UoKQorCQkJIyBhcHBlbmQgcmVsYXRp
dmUgQ09USVJFX1VOSVRZX09VVFBVVF9ESVJFQ1RPUlkgdG8gdGFyZ2V0J3MgYWN0dWFsIG91dHB1
dCBkaXJlY3RvcnkKKwkJCWNvdGlyZV9jb3B5X3NldF9wcm9wZXJ0aWVzKCIke19jb25maWd1cmF0
aW9uc30iIFRBUkdFVCAke190YXJnZXR9ICR7X3VuaXR5VGFyZ2V0TmFtZX0gJHtfb3V0cHV0RGly
UHJvcGVydGllc30pCisJCQljb3RpcmVfcmVzb2x2ZV9jb25maWdfcHJvcGVydGllcygiJHtfY29u
ZmlndXJhdGlvbnN9IiBfcHJvcGVydGllcyAke19vdXRwdXREaXJQcm9wZXJ0aWVzfSkKKwkJCWZv
cmVhY2ggKF9wcm9wZXJ0eSAke19wcm9wZXJ0aWVzfSkKKwkJCQlnZXRfcHJvcGVydHkoX291dHB1
dERpciBUQVJHRVQgJHtfdGFyZ2V0fSBQUk9QRVJUWSAke19wcm9wZXJ0eX0pCisJCQkJaWYgKF9v
dXRwdXREaXIpCisJCQkJCWdldF9maWxlbmFtZV9jb21wb25lbnQoX291dHB1dERpciAiJHtfb3V0
cHV0RGlyfS8ke0NPVElSRV9VTklUWV9PVVRQVVRfRElSRUNUT1JZfSIgQUJTT0xVVEUpCisJCQkJ
CXNldF9wcm9wZXJ0eShUQVJHRVQgJHtfdW5pdHlUYXJnZXROYW1lfSBQUk9QRVJUWSAke19wcm9w
ZXJ0eX0gIiR7X291dHB1dERpcn0iKQorCQkJCQlzZXQgKF9zZXREZWZhdWx0T3V0cHV0RGlyIEZB
TFNFKQorCQkJCWVuZGlmKCkKKwkJCWVuZGZvcmVhY2goKQorCQkJaWYgKF9zZXREZWZhdWx0T3V0
cHV0RGlyKQorCQkJCWdldF9maWxlbmFtZV9jb21wb25lbnQoX291dHB1dERpciAiJHtDTUFLRV9D
VVJSRU5UX0JJTkFSWV9ESVJ9LyR7Q09USVJFX1VOSVRZX09VVFBVVF9ESVJFQ1RPUll9IiBBQlNP
TFVURSkKKwkJCWVuZGlmKCkKKwkJZW5kaWYoKQorCQlpZiAoX3NldERlZmF1bHRPdXRwdXREaXIp
CisJCQlzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtfdW5pdHlUYXJnZXROYW1lfSBQUk9QRVJUSUVT
CisJCQkJQVJDSElWRV9PVVRQVVRfRElSRUNUT1JZICIke19vdXRwdXREaXJ9IgorCQkJCUxJQlJB
UllfT1VUUFVUX0RJUkVDVE9SWSAiJHtfb3V0cHV0RGlyfSIKKwkJCQlSVU5USU1FX09VVFBVVF9E
SVJFQ1RPUlkgIiR7X291dHB1dERpcn0iKQorCQllbmRpZigpCisJZWxzZSgpCisJCWNvdGlyZV9j
b3B5X3NldF9wcm9wZXJ0aWVzKCIke19jb25maWd1cmF0aW9uc30iIFRBUkdFVCAke190YXJnZXR9
ICR7X3VuaXR5VGFyZ2V0TmFtZX0KKwkJCSR7X291dHB1dERpclByb3BlcnRpZXN9KQorCWVuZGlm
KCkKKwkjIGNvcHkgb3V0cHV0IG5hbWUKKwljb3RpcmVfY29weV9zZXRfcHJvcGVydGllcygiJHtf
Y29uZmlndXJhdGlvbnN9IiBUQVJHRVQgJHtfdGFyZ2V0fSAke191bml0eVRhcmdldE5hbWV9CisJ
CUFSQ0hJVkVfT1VUUFVUX05BTUUgQVJDSElWRV9PVVRQVVRfTkFNRV88Q09ORklHPgorCQlMSUJS
QVJZX09VVFBVVF9OQU1FIExJQlJBUllfT1VUUFVUX05BTUVfPENPTkZJRz4KKwkJT1VUUFVUX05B
TUUgT1VUUFVUX05BTUVfPENPTkZJRz4KKwkJUlVOVElNRV9PVVRQVVRfTkFNRSBSVU5USU1FX09V
VFBVVF9OQU1FXzxDT05GSUc+CisJCVBSRUZJWCA8Q09ORklHPl9QT1NURklYIFNVRkZJWAorCQlJ
TVBPUlRfUFJFRklYIElNUE9SVF9TVUZGSVgpCisJIyBjb3B5IGNvbXBpbGUgc3R1ZmYKKwljb3Rp
cmVfY29weV9zZXRfcHJvcGVydGllcygiJHtfY29uZmlndXJhdGlvbnN9IiBUQVJHRVQgJHtfdGFy
Z2V0fSAke191bml0eVRhcmdldE5hbWV9CisJCUNPTVBJTEVfREVGSU5JVElPTlMgQ09NUElMRV9E
RUZJTklUSU9OU188Q09ORklHPgorCQlDT01QSUxFX0ZMQUdTIENPTVBJTEVfT1BUSU9OUworCQlG
b3J0cmFuX0ZPUk1BVCBGb3J0cmFuX01PRFVMRV9ESVJFQ1RPUlkKKwkJSU5DTFVERV9ESVJFQ1RP
UklFUworCQlJTlRFUlBST0NFRFVSQUxfT1BUSU1JWkFUSU9OIElOVEVSUFJPQ0VEVVJBTF9PUFRJ
TUlaQVRJT05fPENPTkZJRz4KKwkJUE9TSVRJT05fSU5ERVBFTkRFTlRfQ09ERQorCQlDX0NPTVBJ
TEVSX0xBVU5DSEVSIENYWF9DT01QSUxFUl9MQVVOQ0hFUgorCQlDX0lOQ0xVREVfV0hBVF9ZT1Vf
VVNFIENYWF9JTkNMVURFX1dIQVRfWU9VX1VTRQorCQlDX1ZJU0lCSUxJVFlfUFJFU0VUIENYWF9W
SVNJQklMSVRZX1BSRVNFVCBWSVNJQklMSVRZX0lOTElORVNfSElEREVOCisJCUNfQ0xBTkdfVElE
WSBDWFhfQ0xBTkdfVElEWSkKKwkjIGNvcHkgY29tcGlsZSBmZWF0dXJlcworCWNvdGlyZV9jb3B5
X3NldF9wcm9wZXJ0aWVzKCIke19jb25maWd1cmF0aW9uc30iIFRBUkdFVCAke190YXJnZXR9ICR7
X3VuaXR5VGFyZ2V0TmFtZX0KKwkJQ19FWFRFTlNJT05TIENfU1RBTkRBUkQgQ19TVEFOREFSRF9S
RVFVSVJFRAorCQlDWFhfRVhURU5TSU9OUyBDWFhfU1RBTkRBUkQgQ1hYX1NUQU5EQVJEX1JFUVVJ
UkVECisJCUNPTVBJTEVfRkVBVFVSRVMpCisJIyBjb3B5IGludGVyZmFjZSBzdHVmZgorCWNvdGly
ZV9jb3B5X3NldF9wcm9wZXJ0aWVzKCIke19jb25maWd1cmF0aW9uc30iIFRBUkdFVCAke190YXJn
ZXR9ICR7X3VuaXR5VGFyZ2V0TmFtZX0KKwkJQ09NUEFUSUJMRV9JTlRFUkZBQ0VfQk9PTCBDT01Q
QVRJQkxFX0lOVEVSRkFDRV9OVU1CRVJfTUFYIENPTVBBVElCTEVfSU5URVJGQUNFX05VTUJFUl9N
SU4KKwkJQ09NUEFUSUJMRV9JTlRFUkZBQ0VfU1RSSU5HCisJCUlOVEVSRkFDRV9DT01QSUxFX0RF
RklOSVRJT05TIElOVEVSRkFDRV9DT01QSUxFX0ZFQVRVUkVTIElOVEVSRkFDRV9DT01QSUxFX09Q
VElPTlMKKwkJSU5URVJGQUNFX0lOQ0xVREVfRElSRUNUT1JJRVMgSU5URVJGQUNFX1NPVVJDRVMK
KwkJSU5URVJGQUNFX1BPU0lUSU9OX0lOREVQRU5ERU5UX0NPREUgSU5URVJGQUNFX1NZU1RFTV9J
TkNMVURFX0RJUkVDVE9SSUVTCisJCUlOVEVSRkFDRV9BVVRPVUlDX09QVElPTlMgTk9fU1lTVEVN
X0ZST01fSU1QT1JURUQpCisJIyBjb3B5IGxpbmsgc3R1ZmYKKwljb3RpcmVfY29weV9zZXRfcHJv
cGVydGllcygiJHtfY29uZmlndXJhdGlvbnN9IiBUQVJHRVQgJHtfdGFyZ2V0fSAke191bml0eVRh
cmdldE5hbWV9CisJCUJVSUxEX1dJVEhfSU5TVEFMTF9SUEFUSCBJTlNUQUxMX1JQQVRIIElOU1RB
TExfUlBBVEhfVVNFX0xJTktfUEFUSCBTS0lQX0JVSUxEX1JQQVRICisJCUxJTktFUl9MQU5HVUFH
RSBMSU5LX0RFUEVORFMgTElOS19ERVBFTkRTX05PX1NIQVJFRAorCQlMSU5LX0ZMQUdTIExJTktf
RkxBR1NfPENPTkZJRz4KKwkJTElOS19JTlRFUkZBQ0VfTElCUkFSSUVTIExJTktfSU5URVJGQUNF
X0xJQlJBUklFU188Q09ORklHPgorCQlMSU5LX0lOVEVSRkFDRV9NVUxUSVBMSUNJVFkgTElOS19J
TlRFUkZBQ0VfTVVMVElQTElDSVRZXzxDT05GSUc+CisJCUxJTktfU0VBUkNIX1NUQVJUX1NUQVRJ
QyBMSU5LX1NFQVJDSF9FTkRfU1RBVElDCisJCVNUQVRJQ19MSUJSQVJZX0ZMQUdTIFNUQVRJQ19M
SUJSQVJZX0ZMQUdTXzxDT05GSUc+CisJCU5PX1NPTkFNRSBTT1ZFUlNJT04gVkVSU0lPTgorCQlM
SU5LX1dIQVRfWU9VX1VTRSBCVUlMRF9SUEFUSCkKKwkjIGNvcHkgY21ha2Ugc3R1ZmYKKwljb3Rp
cmVfY29weV9zZXRfcHJvcGVydGllcygiJHtfY29uZmlndXJhdGlvbnN9IiBUQVJHRVQgJHtfdGFy
Z2V0fSAke191bml0eVRhcmdldE5hbWV9CisJCUlNUExJQ0lUX0RFUEVORFNfSU5DTFVERV9UUkFO
U0ZPUk0gUlVMRV9MQVVOQ0hfQ09NUElMRSBSVUxFX0xBVU5DSF9DVVNUT00gUlVMRV9MQVVOQ0hf
TElOSykKKwkjIGNvcHkgQXBwbGUgcGxhdGZvcm0gc3BlY2lmaWMgc3R1ZmYKKwljb3RpcmVfY29w
eV9zZXRfcHJvcGVydGllcygiJHtfY29uZmlndXJhdGlvbnN9IiBUQVJHRVQgJHtfdGFyZ2V0fSAk
e191bml0eVRhcmdldE5hbWV9CisJCUJVTkRMRSBCVU5ETEVfRVhURU5TSU9OIEZSQU1FV09SSyBG
UkFNRVdPUktfVkVSU0lPTiBJTlNUQUxMX05BTUVfRElSCisJCU1BQ09TWF9CVU5ETEUgTUFDT1NY
X0JVTkRMRV9JTkZPX1BMSVNUIE1BQ09TWF9GUkFNRVdPUktfSU5GT19QTElTVCBNQUNPU1hfUlBB
VEgKKwkJT1NYX0FSQ0hJVEVDVFVSRVMgT1NYX0FSQ0hJVEVDVFVSRVNfPENPTkZJRz4gUFJJVkFU
RV9IRUFERVIgUFVCTElDX0hFQURFUiBSRVNPVVJDRSBYQ1RFU1QKKwkJSU9TX0lOU1RBTExfQ09N
QklORUQgWENPREVfRVhQTElDSVRfRklMRV9UWVBFIFhDT0RFX1BST0RVQ1RfVFlQRSkKKwkjIGNv
cHkgV2luZG93cyBwbGF0Zm9ybSBzcGVjaWZpYyBzdHVmZgorCWNvdGlyZV9jb3B5X3NldF9wcm9w
ZXJ0aWVzKCIke19jb25maWd1cmF0aW9uc30iIFRBUkdFVCAke190YXJnZXR9ICR7X3VuaXR5VGFy
Z2V0TmFtZX0KKwkJR05VdG9NUworCQlDT01QSUxFX1BEQl9OQU1FIENPTVBJTEVfUERCX05BTUVf
PENPTkZJRz4KKwkJQ09NUElMRV9QREJfT1VUUFVUX0RJUkVDVE9SWSBDT01QSUxFX1BEQl9PVVRQ
VVRfRElSRUNUT1JZXzxDT05GSUc+CisJCVBEQl9OQU1FIFBEQl9OQU1FXzxDT05GSUc+IFBEQl9P
VVRQVVRfRElSRUNUT1JZIFBEQl9PVVRQVVRfRElSRUNUT1JZXzxDT05GSUc+CisJCVZTX0RFU0tU
T1BfRVhURU5TSU9OU19WRVJTSU9OIFZTX0RPVE5FVF9SRUZFUkVOQ0VTIFZTX0RPVE5FVF9UQVJH
RVRfRlJBTUVXT1JLX1ZFUlNJT04KKwkJVlNfR0xPQkFMX0tFWVdPUkQgVlNfR0xPQkFMX1BST0pF
Q1RfVFlQRVMgVlNfR0xPQkFMX1JPT1ROQU1FU1BBQ0UKKwkJVlNfSU9UX0VYVEVOU0lPTlNfVkVS
U0lPTiBWU19JT1RfU1RBUlRVUF9UQVNLCisJCVZTX0tFWVdPUkQgVlNfTU9CSUxFX0VYVEVOU0lP
TlNfVkVSU0lPTgorCQlWU19TQ0NfQVVYUEFUSCBWU19TQ0NfTE9DQUxQQVRIIFZTX1NDQ19QUk9K
RUNUTkFNRSBWU19TQ0NfUFJPVklERVIKKwkJVlNfV0lORE9XU19UQVJHRVRfUExBVEZPUk1fTUlO
X1ZFUlNJT04KKwkJVlNfV0lOUlRfQ09NUE9ORU5UIFZTX1dJTlJUX0VYVEVOU0lPTlMgVlNfV0lO
UlRfUkVGRVJFTkNFUworCQlXSU4zMl9FWEVDVVRBQkxFIFdJTkRPV1NfRVhQT1JUX0FMTF9TWU1C
T0xTCisJCURFUExPWU1FTlRfUkVNT1RFX0RJUkVDVE9SWSBWU19DT05GSUdVUkFUSU9OX1RZUEUK
KwkJVlNfU0RLX1JFRkVSRU5DRVMgVlNfVVNFUl9QUk9QUyBWU19ERUJVR0dFUl9XT1JLSU5HX0RJ
UkVDVE9SWSkKKwkjIGNvcHkgQW5kcm9pZCBwbGF0Zm9ybSBzcGVjaWZpYyBzdHVmZgorCWNvdGly
ZV9jb3B5X3NldF9wcm9wZXJ0aWVzKCIke19jb25maWd1cmF0aW9uc30iIFRBUkdFVCAke190YXJn
ZXR9ICR7X3VuaXR5VGFyZ2V0TmFtZX0KKwkJQU5EUk9JRF9BUEkgQU5EUk9JRF9BUElfTUlOIEFO
RFJPSURfR1VJCisJCUFORFJPSURfQU5UX0FERElUSU9OQUxfT1BUSU9OUyBBTkRST0lEX0FSQ0gg
QU5EUk9JRF9BU1NFVFNfRElSRUNUT1JJRVMKKwkJQU5EUk9JRF9KQVJfREVQRU5ERU5DSUVTIEFO
RFJPSURfSkFSX0RJUkVDVE9SSUVTIEFORFJPSURfSkFWQV9TT1VSQ0VfRElSCisJCUFORFJPSURf
TkFUSVZFX0xJQl9ERVBFTkRFTkNJRVMgQU5EUk9JRF9OQVRJVkVfTElCX0RJUkVDVE9SSUVTCisJ
CUFORFJPSURfUFJPQ0VTU19NQVggQU5EUk9JRF9QUk9HVUFSRCBBTkRST0lEX1BST0dVQVJEX0NP
TkZJR19QQVRICisJCUFORFJPSURfU0VDVVJFX1BST1BTX1BBVEggQU5EUk9JRF9TS0lQX0FOVF9T
VEVQIEFORFJPSURfU1RMX1RZUEUpCisJIyB1c2Ugb3V0cHV0IG5hbWUgZnJvbSBvcmlnaW5hbCB0
YXJnZXQKKwlnZXRfdGFyZ2V0X3Byb3BlcnR5KF90YXJnZXRPdXRwdXROYW1lICR7X3VuaXR5VGFy
Z2V0TmFtZX0gT1VUUFVUX05BTUUpCisJaWYgKE5PVCBfdGFyZ2V0T3V0cHV0TmFtZSkKKwkJc2V0
X3Byb3BlcnR5KFRBUkdFVCAke191bml0eVRhcmdldE5hbWV9IFBST1BFUlRZIE9VVFBVVF9OQU1F
ICIke190YXJnZXR9IikKKwllbmRpZigpCisJIyB1c2UgZXhwb3J0IHN5bWJvbCBmcm9tIG9yaWdp
bmFsIHRhcmdldAorCWNvdGlyZV9nZXRfdGFyZ2V0X2V4cG9ydF9zeW1ib2woIiR7X3RhcmdldH0i
IF9kZWZpbmVTeW1ib2wpCisJaWYgKF9kZWZpbmVTeW1ib2wpCisJCXNldF9wcm9wZXJ0eShUQVJH
RVQgJHtfdW5pdHlUYXJnZXROYW1lfSBQUk9QRVJUWSBERUZJTkVfU1lNQk9MICIke19kZWZpbmVT
eW1ib2x9IikKKwkJaWYgKCIke190YXJnZXRUeXBlfSIgU1RSRVFVQUwgIkVYRUNVVEFCTEUiKQor
CQkJc2V0X3Byb3BlcnR5KFRBUkdFVCAke191bml0eVRhcmdldE5hbWV9IFBST1BFUlRZIEVOQUJM
RV9FWFBPUlRTIFRSVUUpCisJCWVuZGlmKCkKKwllbmRpZigpCisJY290aXJlX2luaXRfdGFyZ2V0
KCR7X3VuaXR5VGFyZ2V0TmFtZX0pCisJY290aXJlX2FkZF90b191bml0eV9hbGxfdGFyZ2V0KCR7
X3VuaXR5VGFyZ2V0TmFtZX0pCisJc2V0X3Byb3BlcnR5KFRBUkdFVCAke190YXJnZXR9IFBST1BF
UlRZIENPVElSRV9VTklUWV9UQVJHRVRfTkFNRSAiJHtfdW5pdHlUYXJnZXROYW1lfSIpCitlbmRm
dW5jdGlvbihjb3RpcmVfc2V0dXBfdW5pdHlfYnVpbGRfdGFyZ2V0KQorCitmdW5jdGlvbiAoY290
aXJlX3RhcmdldCBfdGFyZ2V0KQorCXNldChfb3B0aW9ucyAiIikKKwlzZXQoX29uZVZhbHVlQXJn
cyAiIikKKwlzZXQoX211bHRpVmFsdWVBcmdzIExBTkdVQUdFUyBDT05GSUdVUkFUSU9OUykKKwlj
bWFrZV9wYXJzZV9hcmd1bWVudHMoX29wdGlvbiAiJHtfb3B0aW9uc30iICIke19vbmVWYWx1ZUFy
Z3N9IiAiJHtfbXVsdGlWYWx1ZUFyZ3N9IiAke0FSR059KQorCWlmIChOT1QgX29wdGlvbl9MQU5H
VUFHRVMpCisJCWdldF9wcm9wZXJ0eSAoX29wdGlvbl9MQU5HVUFHRVMgR0xPQkFMIFBST1BFUlRZ
IEVOQUJMRURfTEFOR1VBR0VTKQorCWVuZGlmKCkKKwlpZiAoTk9UIF9vcHRpb25fQ09ORklHVVJB
VElPTlMpCisJCWNvdGlyZV9nZXRfY29uZmlndXJhdGlvbl90eXBlcyhfb3B0aW9uX0NPTkZJR1VS
QVRJT05TKQorCWVuZGlmKCkKKwkjIGNoZWNrIGlmIGNvdGlyZSBjYW4gYmUgYXBwbGllZCB0byB0
YXJnZXQgYXQgYWxsCisJY290aXJlX2lzX3RhcmdldF9zdXBwb3J0ZWQoJHtfdGFyZ2V0fSBfaXNT
dXBwb3J0ZWQpCisJaWYgKE5PVCBfaXNTdXBwb3J0ZWQpCisJCWdldF90YXJnZXRfcHJvcGVydHko
X2ltcG9ydGVkICR7X3RhcmdldH0gSU1QT1JURUQpCisJCWdldF90YXJnZXRfcHJvcGVydHkoX3Rh
cmdldFR5cGUgJHtfdGFyZ2V0fSBUWVBFKQorCQlpZiAoX2ltcG9ydGVkKQorCQkJbWVzc2FnZSAo
V0FSTklORyAiY290aXJlOiBpbXBvcnRlZCAke190YXJnZXRUeXBlfSB0YXJnZXQgJHtfdGFyZ2V0
fSBjYW5ub3QgYmUgY290aXJlZC4iKQorCQllbHNlKCkKKwkJCW1lc3NhZ2UgKFNUQVRVUyAiY290
aXJlOiAke190YXJnZXRUeXBlfSB0YXJnZXQgJHtfdGFyZ2V0fSBjYW5ub3QgYmUgY290aXJlZC4i
KQorCQllbmRpZigpCisJCXJldHVybigpCisJZW5kaWYoKQorCSMgcmVzb2x2ZSBhbGlhcworCWdl
dF90YXJnZXRfcHJvcGVydHkoX2FsaWFzTmFtZSAke190YXJnZXR9IEFMSUFTRURfVEFSR0VUKQor
CWlmIChfYWxpYXNOYW1lKQorCQlpZiAoQ09USVJFX0RFQlVHKQorCQkJbWVzc2FnZSAoU1RBVFVT
ICIke190YXJnZXR9IGlzIGFuIGFsaWFzLiBBcHBseWluZyBjb3RpcmUgdG8gYWxpYXNlZCB0YXJn
ZXQgJHtfYWxpYXNOYW1lfSBpbnN0ZWFkLiIpCisJCWVuZGlmKCkKKwkJc2V0IChfdGFyZ2V0ICR7
X2FsaWFzTmFtZX0pCisJZW5kaWYoKQorCSMgY2hlY2sgaWYgdGFyZ2V0IG5lZWRzIHRvIGJlIGNv
dGlyZWQgZm9yIGJ1aWxkIHR5cGUKKwkjIHdoZW4gdXNpbmcgY29uZmlndXJhdGlvbiB0eXBlcywg
dGhlIHRlc3QgaXMgcGVyZm9ybWVkIGF0IGJ1aWxkIHRpbWUKKwljb3RpcmVfaW5pdF9jb3RpcmVf
dGFyZ2V0X3Byb3BlcnRpZXMoJHtfdGFyZ2V0fSkKKwlpZiAoTk9UIENNQUtFX0NPTkZJR1VSQVRJ
T05fVFlQRVMpCisJCWlmIChDTUFLRV9CVUlMRF9UWVBFKQorCQkJbGlzdCAoRklORCBfb3B0aW9u
X0NPTkZJR1VSQVRJT05TICIke0NNQUtFX0JVSUxEX1RZUEV9IiBfaW5kZXgpCisJCWVsc2UoKQor
CQkJbGlzdCAoRklORCBfb3B0aW9uX0NPTkZJR1VSQVRJT05TICJOb25lIiBfaW5kZXgpCisJCWVu
ZGlmKCkKKwkJaWYgKF9pbmRleCBFUVVBTCAtMSkKKwkJCWlmIChDT1RJUkVfREVCVUcpCisJCQkJ
bWVzc2FnZSAoU1RBVFVTICJDTUFLRV9CVUlMRF9UWVBFPSR7Q01BS0VfQlVJTERfVFlQRX0gbm90
IGNvdGlyZWQgKCR7X29wdGlvbl9DT05GSUdVUkFUSU9OU30pIikKKwkJCWVuZGlmKCkKKwkJCXJl
dHVybigpCisJCWVuZGlmKCkKKwllbmRpZigpCisJIyB3aGVuIG5vdCB1c2luZyBjb25maWd1cmF0
aW9uIHR5cGVzLCBpbW1lZGlhdGVseSBjcmVhdGUgY290aXJlIGludGVybWVkaWF0ZSBkaXIKKwlp
ZiAoTk9UIENNQUtFX0NPTkZJR1VSQVRJT05fVFlQRVMpCisJCWNvdGlyZV9nZXRfaW50ZXJtZWRp
YXRlX2RpcihfYmFzZURpcikKKwkJZmlsZSAoTUFLRV9ESVJFQ1RPUlkgIiR7X2Jhc2VEaXJ9IikK
KwllbmRpZigpCisJIyBjaG9vc2UgbGFuZ3VhZ2VzIHRoYXQgYXBwbHkgdG8gdGhlIHRhcmdldAor
CWNvdGlyZV9jaG9vc2VfdGFyZ2V0X2xhbmd1YWdlcygiJHtfdGFyZ2V0fSIgX3RhcmdldExhbmd1
YWdlcyBfd2hvbGVUYXJnZXQgJHtfb3B0aW9uX0xBTkdVQUdFU30pCisJaWYgKE5PVCBfdGFyZ2V0
TGFuZ3VhZ2VzKQorCQlyZXR1cm4oKQorCWVuZGlmKCkKKwlzZXQgKF9jbWRzICIiKQorCWZvcmVh
Y2ggKF9sYW5ndWFnZSAke190YXJnZXRMYW5ndWFnZXN9KQorCQljb3RpcmVfcHJvY2Vzc190YXJn
ZXRfbGFuZ3VhZ2UoIiR7X2xhbmd1YWdlfSIgIiR7X29wdGlvbl9DT05GSUdVUkFUSU9OU30iICR7
X3RhcmdldH0gJHtfd2hvbGVUYXJnZXR9IF9jbWQpCisJCWlmIChfY21kKQorCQkJbGlzdCAoQVBQ
RU5EIF9jbWRzICR7X2NtZH0pCisJCWVuZGlmKCkKKwllbmRmb3JlYWNoKCkKKwlnZXRfdGFyZ2V0
X3Byb3BlcnR5KF90YXJnZXRBZGRTQ1UgJHtfdGFyZ2V0fSBDT1RJUkVfQUREX1VOSVRZX0JVSUxE
KQorCWlmIChfdGFyZ2V0QWRkU0NVKQorCQljb3RpcmVfc2V0dXBfdW5pdHlfYnVpbGRfdGFyZ2V0
KCIke190YXJnZXRMYW5ndWFnZXN9IiAiJHtfb3B0aW9uX0NPTkZJR1VSQVRJT05TfSIgJHtfdGFy
Z2V0fSkKKwllbmRpZigpCisJZ2V0X3RhcmdldF9wcm9wZXJ0eShfdGFyZ2V0VXNlUENIICR7X3Rh
cmdldH0gQ09USVJFX0VOQUJMRV9QUkVDT01QSUxFRF9IRUFERVIpCisJaWYgKF90YXJnZXRVc2VQ
Q0gpCisJCWNvdGlyZV9zZXR1cF90YXJnZXRfcGNoX3VzYWdlKCIke190YXJnZXRMYW5ndWFnZXN9
IiAke190YXJnZXR9ICR7X3dob2xlVGFyZ2V0fSAke19jbWRzfSkKKwkJY290aXJlX3NldHVwX3Bj
aF90YXJnZXQoIiR7X3RhcmdldExhbmd1YWdlc30iICIke19vcHRpb25fQ09ORklHVVJBVElPTlN9
IiAke190YXJnZXR9KQorCQlpZiAoX3RhcmdldEFkZFNDVSkKKwkJCWNvdGlyZV9zZXR1cF91bml0
eV90YXJnZXRfcGNoX3VzYWdlKCIke190YXJnZXRMYW5ndWFnZXN9IiAke190YXJnZXR9KQorCQll
bmRpZigpCisJZW5kaWYoKQorCWdldF90YXJnZXRfcHJvcGVydHkoX3RhcmdldEFkZENsZWFuVGFy
Z2V0ICR7X3RhcmdldH0gQ09USVJFX0FERF9DTEVBTikKKwlpZiAoX3RhcmdldEFkZENsZWFuVGFy
Z2V0KQorCQljb3RpcmVfc2V0dXBfY2xlYW5fdGFyZ2V0KCR7X3RhcmdldH0pCisJZW5kaWYoKQor
ZW5kZnVuY3Rpb24oY290aXJlX3RhcmdldCkKKworZnVuY3Rpb24gKGNvdGlyZV9tYXBfbGlicmFy
aWVzIF9zdHJhdGVneSBfbWFwcGVkTGlicmFyaWVzVmFyKQorCXNldCAoX21hcHBlZExpYnJhcmll
cyAiIikKKwlmb3JlYWNoIChfbGlicmFyeSAke0FSR059KQorCQlpZiAoX2xpYnJhcnkgTUFUQ0hF
UyAiXlxcJDxMSU5LX09OTFk6KC4rKT4kIikKKwkJCXNldCAoX2xpYnJhcnlOYW1lICIke0NNQUtF
X01BVENIXzF9IikKKwkJCXNldCAoX2xpbmtPbmx5IFRSVUUpCisJCQlzZXQgKF9vYmplY3RMaWJy
YXJ5IEZBTFNFKQorCQllbHNlaWYgKF9saWJyYXJ5IE1BVENIRVMgIl5cXCQ8VEFSR0VUX09CSkVD
VFM6KC4rKT4kIikKKwkJCXNldCAoX2xpYnJhcnlOYW1lICIke0NNQUtFX01BVENIXzF9IikKKwkJ
CXNldCAoX2xpbmtPbmx5IEZBTFNFKQorCQkJc2V0IChfb2JqZWN0TGlicmFyeSBUUlVFKQorCQll
bHNlKCkKKwkJCXNldCAoX2xpYnJhcnlOYW1lICIke19saWJyYXJ5fSIpCisJCQlzZXQgKF9saW5r
T25seSBGQUxTRSkKKwkJCXNldCAoX29iamVjdExpYnJhcnkgRkFMU0UpCisJCWVuZGlmKCkKKwkJ
aWYgKCIke19zdHJhdGVneX0iIE1BVENIRVMgIkNPUFlfVU5JVFkiKQorCQkJY290aXJlX2lzX3Rh
cmdldF9zdXBwb3J0ZWQoJHtfbGlicmFyeU5hbWV9IF9pc1N1cHBvcnRlZCkKKwkJCWlmIChfaXNT
dXBwb3J0ZWQpCisJCQkJIyB1c2UgdGFyZ2V0J3MgY29ycmVzcG9uZGluZyB1bml0eSB0YXJnZXQs
IGlmIGF2YWlsYWJsZQorCQkJCWdldF90YXJnZXRfcHJvcGVydHkoX2xpYnJhcnlVbml0eVRhcmdl
dE5hbWUgJHtfbGlicmFyeU5hbWV9IENPVElSRV9VTklUWV9UQVJHRVRfTkFNRSkKKwkJCQlpZiAo
VEFSR0VUICIke19saWJyYXJ5VW5pdHlUYXJnZXROYW1lfSIpCisJCQkJCWlmIChfbGlua09ubHkp
CisJCQkJCQlsaXN0IChBUFBFTkQgX21hcHBlZExpYnJhcmllcyAiJDxMSU5LX09OTFk6JHtfbGli
cmFyeVVuaXR5VGFyZ2V0TmFtZX0+IikKKwkJCQkJZWxzZWlmIChfb2JqZWN0TGlicmFyeSkKKwkJ
CQkJCWxpc3QgKEFQUEVORCBfbWFwcGVkTGlicmFyaWVzICIkPFRBUkdFVF9PQkpFQ1RTOiR7X2xp
YnJhcnlVbml0eVRhcmdldE5hbWV9PiIpCisJCQkJCWVsc2UoKQorCQkJCQkJbGlzdCAoQVBQRU5E
IF9tYXBwZWRMaWJyYXJpZXMgIiR7X2xpYnJhcnlVbml0eVRhcmdldE5hbWV9IikKKwkJCQkJZW5k
aWYoKQorCQkJCWVsc2UoKQorCQkJCQlsaXN0IChBUFBFTkQgX21hcHBlZExpYnJhcmllcyAiJHtf
bGlicmFyeX0iKQorCQkJCWVuZGlmKCkKKwkJCWVsc2UoKQorCQkJCWxpc3QgKEFQUEVORCBfbWFw
cGVkTGlicmFyaWVzICIke19saWJyYXJ5fSIpCisJCQllbmRpZigpCisJCWVsc2UoKQorCQkJbGlz
dCAoQVBQRU5EIF9tYXBwZWRMaWJyYXJpZXMgIiR7X2xpYnJhcnl9IikKKwkJZW5kaWYoKQorCWVu
ZGZvcmVhY2goKQorCWxpc3QgKFJFTU9WRV9EVVBMSUNBVEVTIF9tYXBwZWRMaWJyYXJpZXMpCisJ
c2V0ICgke19tYXBwZWRMaWJyYXJpZXNWYXJ9ICR7X21hcHBlZExpYnJhcmllc30gUEFSRU5UX1ND
T1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX3RhcmdldF9saW5rX2xpYnJh
cmllcyBfdGFyZ2V0KQorCWNvdGlyZV9pc190YXJnZXRfc3VwcG9ydGVkKCR7X3RhcmdldH0gX2lz
U3VwcG9ydGVkKQorCWlmIChOT1QgX2lzU3VwcG9ydGVkKQorCQlyZXR1cm4oKQorCWVuZGlmKCkK
KwlnZXRfdGFyZ2V0X3Byb3BlcnR5KF91bml0eVRhcmdldE5hbWUgJHtfdGFyZ2V0fSBDT1RJUkVf
VU5JVFlfVEFSR0VUX05BTUUpCisJaWYgKFRBUkdFVCAiJHtfdW5pdHlUYXJnZXROYW1lfSIpCisJ
CWdldF90YXJnZXRfcHJvcGVydHkoX2xpbmtMaWJyYXJpZXNTdHJhdGVneSAke190YXJnZXR9IENP
VElSRV9VTklUWV9MSU5LX0xJQlJBUklFU19JTklUKQorCQlpZiAoQ09USVJFX0RFQlVHKQorCQkJ
bWVzc2FnZSAoU1RBVFVTICJ1bml0eSB0YXJnZXQgJHtfdW5pdHlUYXJnZXROYW1lfSBsaW5rIHN0
cmF0ZWd5OiAke19saW5rTGlicmFyaWVzU3RyYXRlZ3l9IikKKwkJZW5kaWYoKQorCQlpZiAoIiR7
X2xpbmtMaWJyYXJpZXNTdHJhdGVneX0iIE1BVENIRVMgIl4oQ09QWXxDT1BZX1VOSVRZKSQiKQor
CQkJZ2V0X3RhcmdldF9wcm9wZXJ0eShfbGlua0xpYnJhcmllcyAke190YXJnZXR9IExJTktfTElC
UkFSSUVTKQorCQkJaWYgKF9saW5rTGlicmFyaWVzKQorCQkJCWNvdGlyZV9tYXBfbGlicmFyaWVz
KCIke19saW5rTGlicmFyaWVzU3RyYXRlZ3l9IiBfdW5pdHlMaW5rTGlicmFyaWVzICR7X2xpbmtM
aWJyYXJpZXN9KQorCQkJCXNldF90YXJnZXRfcHJvcGVydGllcygke191bml0eVRhcmdldE5hbWV9
IFBST1BFUlRJRVMgTElOS19MSUJSQVJJRVMgIiR7X3VuaXR5TGlua0xpYnJhcmllc30iKQorCQkJ
CWlmIChDT1RJUkVfREVCVUcpCisJCQkJCW1lc3NhZ2UgKFNUQVRVUyAidW5pdHkgdGFyZ2V0ICR7
X3VuaXR5VGFyZ2V0TmFtZX0gbGluayBsaWJyYXJpZXM6ICR7X3VuaXR5TGlua0xpYnJhcmllc30i
KQorCQkJCWVuZGlmKCkKKwkJCWVuZGlmKCkKKwkJCWdldF90YXJnZXRfcHJvcGVydHkoX2ludGVy
ZmFjZUxpbmtMaWJyYXJpZXMgJHtfdGFyZ2V0fSBJTlRFUkZBQ0VfTElOS19MSUJSQVJJRVMpCisJ
CQlpZiAoX2ludGVyZmFjZUxpbmtMaWJyYXJpZXMpCisJCQkJY290aXJlX21hcF9saWJyYXJpZXMo
IiR7X2xpbmtMaWJyYXJpZXNTdHJhdGVneX0iIF91bml0eUxpbmtJbnRlcmZhY2VMaWJyYXJpZXMg
JHtfaW50ZXJmYWNlTGlua0xpYnJhcmllc30pCisJCQkJc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7
X3VuaXR5VGFyZ2V0TmFtZX0gUFJPUEVSVElFUyBJTlRFUkZBQ0VfTElOS19MSUJSQVJJRVMgIiR7
X3VuaXR5TGlua0ludGVyZmFjZUxpYnJhcmllc30iKQorCQkJCWlmIChDT1RJUkVfREVCVUcpCisJ
CQkJCW1lc3NhZ2UgKFNUQVRVUyAidW5pdHkgdGFyZ2V0ICR7X3VuaXR5VGFyZ2V0TmFtZX0gaW50
ZXJmYWNlIGxpbmsgbGlicmFyaWVzOiAke191bml0eUxpbmtJbnRlcmZhY2VMaWJyYXJpZXN9IikK
KwkJCQllbmRpZigpCisJCQllbmRpZigpCisJCWVuZGlmKCkKKwllbmRpZigpCitlbmRmdW5jdGlv
bihjb3RpcmVfdGFyZ2V0X2xpbmtfbGlicmFyaWVzKQorCitmdW5jdGlvbiAoY290aXJlX2NsZWFu
dXAgX2JpbmFyeURpciBfY290aXJlSW50ZXJtZWRpYXRlRGlyTmFtZSBfdGFyZ2V0TmFtZSkKKwlp
ZiAoX3RhcmdldE5hbWUpCisJCWZpbGUgKEdMT0JfUkVDVVJTRSBfY290aXJlRmlsZXMgIiR7X2Jp
bmFyeURpcn0vJHtfdGFyZ2V0TmFtZX0qLioiKQorCWVsc2UoKQorCQlmaWxlIChHTE9CX1JFQ1VS
U0UgX2NvdGlyZUZpbGVzICIke19iaW5hcnlEaXJ9LyouKiIpCisJZW5kaWYoKQorCSMgZmlsdGVy
IGZpbGVzIGluIGludGVybWVkaWF0ZSBkaXJlY3RvcnkKKwlzZXQgKF9maWxlc1RvUmVtb3ZlICIi
KQorCWZvcmVhY2ggKF9maWxlICR7X2NvdGlyZUZpbGVzfSkKKwkJZ2V0X2ZpbGVuYW1lX2NvbXBv
bmVudChfZGlyICIke19maWxlfSIgRElSRUNUT1JZKQorCQlnZXRfZmlsZW5hbWVfY29tcG9uZW50
KF9kaXJOYW1lICIke19kaXJ9IiBOQU1FKQorCQlpZiAoIiR7X2Rpck5hbWV9IiBTVFJFUVVBTCAi
JHtfY290aXJlSW50ZXJtZWRpYXRlRGlyTmFtZX0iKQorCQkJbGlzdCAoQVBQRU5EIF9maWxlc1Rv
UmVtb3ZlICIke19maWxlfSIpCisJCWVuZGlmKCkKKwllbmRmb3JlYWNoKCkKKwlpZiAoX2ZpbGVz
VG9SZW1vdmUpCisJCWlmIChDT1RJUkVfVkVSQk9TRSkKKwkJCW1lc3NhZ2UgKFNUQVRVUyAiY2xl
YW5pbmcgdXAgJHtfZmlsZXNUb1JlbW92ZX0iKQorCQllbmRpZigpCisJCWZpbGUgKFJFTU9WRSAk
e19maWxlc1RvUmVtb3ZlfSkKKwllbmRpZigpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uIChj
b3RpcmVfaW5pdF90YXJnZXQgX3RhcmdldE5hbWUpCisJaWYgKENPVElSRV9UQVJHRVRTX0ZPTERF
UikKKwkJc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7X3RhcmdldE5hbWV9IFBST1BFUlRJRVMgRk9M
REVSICIke0NPVElSRV9UQVJHRVRTX0ZPTERFUn0iKQorCWVuZGlmKCkKKwlzZXRfdGFyZ2V0X3By
b3BlcnRpZXMoJHtfdGFyZ2V0TmFtZX0gUFJPUEVSVElFUyBFWENMVURFX0ZST01fQUxMIFRSVUUp
CisJaWYgKE1TVkNfSURFKQorCQlzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtfdGFyZ2V0TmFtZX0g
UFJPUEVSVElFUyBFWENMVURFX0ZST01fREVGQVVMVF9CVUlMRCBUUlVFKQorCWVuZGlmKCkKK2Vu
ZGZ1bmN0aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9hZGRfdG9fcGNoX2FsbF90YXJnZXQgX3Bj
aFRhcmdldE5hbWUpCisJc2V0IChfdGFyZ2V0TmFtZSAiJHtDT1RJUkVfUENIX0FMTF9UQVJHRVRf
TkFNRX0iKQorCWlmIChOT1QgVEFSR0VUICIke190YXJnZXROYW1lfSIpCisJCWFkZF9jdXN0b21f
dGFyZ2V0KCIke190YXJnZXROYW1lfSIKKwkJCVdPUktJTkdfRElSRUNUT1JZICIke0NNQUtFX0JJ
TkFSWV9ESVJ9IgorCQkJVkVSQkFUSU0pCisJCWNvdGlyZV9pbml0X3RhcmdldCgiJHtfdGFyZ2V0
TmFtZX0iKQorCWVuZGlmKCkKKwljb3RpcmVfc2V0dXBfY2xlYW5fYWxsX3RhcmdldCgpCisJYWRk
X2RlcGVuZGVuY2llcygke190YXJnZXROYW1lfSAke19wY2hUYXJnZXROYW1lfSkKK2VuZGZ1bmN0
aW9uKCkKKworZnVuY3Rpb24gKGNvdGlyZV9hZGRfdG9fdW5pdHlfYWxsX3RhcmdldCBfdW5pdHlU
YXJnZXROYW1lKQorCXNldCAoX3RhcmdldE5hbWUgIiR7Q09USVJFX1VOSVRZX0JVSUxEX0FMTF9U
QVJHRVRfTkFNRX0iKQorCWlmIChOT1QgVEFSR0VUICIke190YXJnZXROYW1lfSIpCisJCWFkZF9j
dXN0b21fdGFyZ2V0KCIke190YXJnZXROYW1lfSIKKwkJCVdPUktJTkdfRElSRUNUT1JZICIke0NN
QUtFX0JJTkFSWV9ESVJ9IgorCQkJVkVSQkFUSU0pCisJCWNvdGlyZV9pbml0X3RhcmdldCgiJHtf
dGFyZ2V0TmFtZX0iKQorCWVuZGlmKCkKKwljb3RpcmVfc2V0dXBfY2xlYW5fYWxsX3RhcmdldCgp
CisJYWRkX2RlcGVuZGVuY2llcygke190YXJnZXROYW1lfSAke191bml0eVRhcmdldE5hbWV9KQor
ZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlX3NldHVwX2NsZWFuX2FsbF90YXJnZXQp
CisJc2V0IChfdGFyZ2V0TmFtZSAiJHtDT1RJUkVfQ0xFQU5fQUxMX1RBUkdFVF9OQU1FfSIpCisJ
aWYgKE5PVCBUQVJHRVQgIiR7X3RhcmdldE5hbWV9IikKKwkJY290aXJlX3NldF9jbWRfdG9fcHJv
bG9ndWUoX2NtZHMpCisJCWxpc3QgKEFQUEVORCBfY21kcyAtUCAiJHtDT1RJUkVfQ01BS0VfTU9E
VUxFX0ZJTEV9IiAiY2xlYW51cCIgIiR7Q01BS0VfQklOQVJZX0RJUn0iICIke0NPVElSRV9JTlRE
SVJ9IikKKwkJYWRkX2N1c3RvbV90YXJnZXQoJHtfdGFyZ2V0TmFtZX0KKwkJCUNPTU1BTkQgJHtf
Y21kc30KKwkJCVdPUktJTkdfRElSRUNUT1JZICIke0NNQUtFX0JJTkFSWV9ESVJ9IgorCQkJQ09N
TUVOVCAiQ2xlYW5pbmcgdXAgYWxsIGNvdGlyZSBnZW5lcmF0ZWQgZmlsZXMiCisJCQlWRVJCQVRJ
TSkKKwkJY290aXJlX2luaXRfdGFyZ2V0KCIke190YXJnZXROYW1lfSIpCisJZW5kaWYoKQorZW5k
ZnVuY3Rpb24oKQorCitmdW5jdGlvbiAoY290aXJlKQorCXNldChfb3B0aW9ucyAiIikKKwlzZXQo
X29uZVZhbHVlQXJncyAiIikKKwlzZXQoX211bHRpVmFsdWVBcmdzIExBTkdVQUdFUyBDT05GSUdV
UkFUSU9OUykKKwljbWFrZV9wYXJzZV9hcmd1bWVudHMoX29wdGlvbiAiJHtfb3B0aW9uc30iICIk
e19vbmVWYWx1ZUFyZ3N9IiAiJHtfbXVsdGlWYWx1ZUFyZ3N9IiAke0FSR059KQorCXNldCAoX3Rh
cmdldHMgJHtfb3B0aW9uX1VOUEFSU0VEX0FSR1VNRU5UU30pCisJZm9yZWFjaCAoX3RhcmdldCAk
e190YXJnZXRzfSkKKwkJaWYgKFRBUkdFVCAke190YXJnZXR9KQorCQkJY290aXJlX3RhcmdldCgk
e190YXJnZXR9IExBTkdVQUdFUyAke19vcHRpb25fTEFOR1VBR0VTfSBDT05GSUdVUkFUSU9OUyAk
e19vcHRpb25fQ09ORklHVVJBVElPTlN9KQorCQllbHNlKCkKKwkJCW1lc3NhZ2UgKFdBUk5JTkcg
ImNvdGlyZTogJHtfdGFyZ2V0fSBpcyBub3QgYSB0YXJnZXQuIikKKwkJZW5kaWYoKQorCWVuZGZv
cmVhY2goKQorCWZvcmVhY2ggKF90YXJnZXQgJHtfdGFyZ2V0c30pCisJCWlmIChUQVJHRVQgJHtf
dGFyZ2V0fSkKKwkJCWNvdGlyZV90YXJnZXRfbGlua19saWJyYXJpZXMoJHtfdGFyZ2V0fSkKKwkJ
ZW5kaWYoKQorCWVuZGZvcmVhY2goKQorZW5kZnVuY3Rpb24oKQorCitpZiAoQ01BS0VfU0NSSVBU
X01PREVfRklMRSkKKworCSMgY290aXJlIGlzIGJlaW5nIHJ1biBpbiBzY3JpcHQgbW9kZQorCSMg
bG9jYXRlIC1QIG9uIGNvbW1hbmQgYXJncworCXNldCAoQ09USVJFX0FSR0MgLTEpCisJZm9yZWFj
aCAoX2luZGV4IFJBTkdFICR7Q01BS0VfQVJHQ30pCisJCWlmIChDT1RJUkVfQVJHQyBHUkVBVEVS
IC0xKQorCQkJc2V0IChDT1RJUkVfQVJHViR7Q09USVJFX0FSR0N9ICIke0NNQUtFX0FSR1Yke19p
bmRleH19IikKKwkJCW1hdGggKEVYUFIgQ09USVJFX0FSR0MgIiR7Q09USVJFX0FSR0N9ICsgMSIp
CisJCWVsc2VpZiAoIiR7Q01BS0VfQVJHViR7X2luZGV4fX0iIFNUUkVRVUFMICItUCIpCisJCQlz
ZXQgKENPVElSRV9BUkdDIDApCisJCWVuZGlmKCkKKwllbmRmb3JlYWNoKCkKKworCSMgaW5jbHVk
ZSB0YXJnZXQgc2NyaXB0IGlmIGF2YWlsYWJsZQorCWlmICgiJHtDT1RJUkVfQVJHVjJ9IiBNQVRD
SEVTICJcXC5jbWFrZSQiKQorCQkjIHRoZSBpbmNsdWRlZCB0YXJnZXQgc2NyaXB0cyBzZXRzIHVw
IGFkZGl0aW9uYWwgdmFyaWFibGVzIHJlbGF0aW5nIHRvIHRoZSB0YXJnZXQgKGUuZy4sIENPVElS
RV9UQVJHRVRfU09VUkNFUykKKwkJaW5jbHVkZSgiJHtDT1RJUkVfQVJHVjJ9IikKKwllbmRpZigp
CisKKwlpZiAoQ09USVJFX0RFQlVHKQorCQltZXNzYWdlIChTVEFUVVMgIiR7Q09USVJFX0FSR1Yw
fSAke0NPVElSRV9BUkdWMX0gJHtDT1RJUkVfQVJHVjJ9ICR7Q09USVJFX0FSR1YzfSAke0NPVElS
RV9BUkdWNH0gJHtDT1RJUkVfQVJHVjV9IikKKwllbmRpZigpCisKKwlpZiAoTk9UIENPVElSRV9C
VUlMRF9UWVBFKQorCQlzZXQgKENPVElSRV9CVUlMRF9UWVBFICJOb25lIikKKwllbmRpZigpCisJ
c3RyaW5nIChUT1VQUEVSICIke0NPVElSRV9CVUlMRF9UWVBFfSIgX3VwcGVyQ29uZmlnKQorCXNl
dCAoX2luY2x1ZGVEaXJzICR7Q09USVJFX1RBUkdFVF9JTkNMVURFX0RJUkVDVE9SSUVTXyR7X3Vw
cGVyQ29uZmlnfX0pCisJc2V0IChfc3lzdGVtSW5jbHVkZURpcnMgJHtDT1RJUkVfVEFSR0VUX1NZ
U1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTXyR7X3VwcGVyQ29uZmlnfX0pCisJc2V0IChfY29tcGls
ZURlZmluaXRpb25zICR7Q09USVJFX1RBUkdFVF9DT01QSUxFX0RFRklOSVRJT05TXyR7X3VwcGVy
Q29uZmlnfX0pCisJc2V0IChfY29tcGlsZUZsYWdzICR7Q09USVJFX1RBUkdFVF9DT01QSUxFX0ZM
QUdTXyR7X3VwcGVyQ29uZmlnfX0pCisJIyBjaGVjayBpZiB0YXJnZXQgaGFzIGJlZW4gY290aXJl
ZCBmb3IgYWN0dWFsIGJ1aWxkIHR5cGUgQ09USVJFX0JVSUxEX1RZUEUKKwlsaXN0IChGSU5EIENP
VElSRV9UQVJHRVRfQ09ORklHVVJBVElPTl9UWVBFUyAiJHtDT1RJUkVfQlVJTERfVFlQRX0iIF9p
bmRleCkKKwlpZiAoX2luZGV4IEdSRUFURVIgLTEpCisJCXNldCAoX3NvdXJjZXMgJHtDT1RJUkVf
VEFSR0VUX1NPVVJDRVN9KQorCQlzZXQgKF9zb3VyY2VzRGVmaW5pdGlvbnMgJHtDT1RJUkVfVEFS
R0VUX1NPVVJDRVNfQ09NUElMRV9ERUZJTklUSU9OU18ke191cHBlckNvbmZpZ319KQorCWVsc2Uo
KQorCQlpZiAoQ09USVJFX0RFQlVHKQorCQkJbWVzc2FnZSAoU1RBVFVTICJDT1RJUkVfQlVJTERf
VFlQRT0ke0NPVElSRV9CVUlMRF9UWVBFfSBub3QgY290aXJlZCAoJHtDT1RJUkVfVEFSR0VUX0NP
TkZJR1VSQVRJT05fVFlQRVN9KSIpCisJCWVuZGlmKCkKKwkJc2V0IChfc291cmNlcyAiIikKKwkJ
c2V0IChfc291cmNlc0RlZmluaXRpb25zICIiKQorCWVuZGlmKCkKKwlzZXQgKF90YXJnZXRQcmVV
bmRlZnMgJHtDT1RJUkVfVEFSR0VUX1BSRV9VTkRFRlN9KQorCXNldCAoX3RhcmdldFBvc3RVbmRl
ZnMgJHtDT1RJUkVfVEFSR0VUX1BPU1RfVU5ERUZTfSkKKwlzZXQgKF9zb3VyY2VzUHJlVW5kZWZz
ICR7Q09USVJFX1RBUkdFVF9TT1VSQ0VTX1BSRV9VTkRFRlN9KQorCXNldCAoX3NvdXJjZXNQb3N0
VW5kZWZzICR7Q09USVJFX1RBUkdFVF9TT1VSQ0VTX1BPU1RfVU5ERUZTfSkKKworCWlmICgiJHtD
T1RJUkVfQVJHVjF9IiBTVFJFUVVBTCAidW5pdHkiKQorCisJCWlmIChYQ09ERSkKKwkJCSMgZXhl
Y3V0aW5nIHByZS1idWlsZCBhY3Rpb24gdW5kZXIgWGNvZGUsIGNoZWNrIGRlcGVuZGVuY3kgb24g
dGFyZ2V0IHNjcmlwdAorCQkJc2V0IChfZGVwZW5kc09wdGlvbiBERVBFTkRTICIke0NPVElSRV9B
UkdWMn0iKQorCQllbHNlKCkKKwkJCSMgZXhlY3V0aW5nIGN1c3RvbSBjb21tYW5kLCBubyBuZWVk
IHRvIHJlLWNoZWNrIGZvciBkZXBlbmRlbmNpZXMKKwkJCXNldCAoX2RlcGVuZHNPcHRpb24gIiIp
CisJCWVuZGlmKCkKKworCQljb3RpcmVfc2VsZWN0X3VuaXR5X3NvdXJjZV9maWxlcygiJHtDT1RJ
UkVfQVJHVjN9IiBfc291cmNlcyAke19zb3VyY2VzfSkKKworCQljb3RpcmVfZ2VuZXJhdGVfdW5p
dHlfc291cmNlKAorCQkJIiR7Q09USVJFX0FSR1YzfSIgJHtfc291cmNlc30KKwkJCUxBTkdVQUdF
ICIke0NPVElSRV9UQVJHRVRfTEFOR1VBR0V9IgorCQkJU09VUkNFU19DT01QSUxFX0RFRklOSVRJ
T05TICR7X3NvdXJjZXNEZWZpbml0aW9uc30KKwkJCVBSRV9VTkRFRlMgJHtfdGFyZ2V0UHJlVW5k
ZWZzfQorCQkJUE9TVF9VTkRFRlMgJHtfdGFyZ2V0UG9zdFVuZGVmc30KKwkJCVNPVVJDRVNfUFJF
X1VOREVGUyAke19zb3VyY2VzUHJlVW5kZWZzfQorCQkJU09VUkNFU19QT1NUX1VOREVGUyAke19z
b3VyY2VzUG9zdFVuZGVmc30KKwkJCSR7X2RlcGVuZHNPcHRpb259KQorCisJZWxzZWlmICgiJHtD
T1RJUkVfQVJHVjF9IiBTVFJFUVVBTCAicHJlZml4IikKKworCQlpZiAoWENPREUpCisJCQkjIGV4
ZWN1dGluZyBwcmUtYnVpbGQgYWN0aW9uIHVuZGVyIFhjb2RlLCBjaGVjayBkZXBlbmRlbmN5IG9u
IHVuaXR5IGZpbGUgYW5kIHByZWZpeCBkZXBlbmRlbmNpZXMKKwkJCXNldCAoX2RlcGVuZHNPcHRp
b24gREVQRU5EUyAiJHtDT1RJUkVfQVJHVjR9IiAke0NPVElSRV9UQVJHRVRfUFJFRklYX0RFUEVO
RFN9KQorCQllbHNlKCkKKwkJCSMgZXhlY3V0aW5nIGN1c3RvbSBjb21tYW5kLCBubyBuZWVkIHRv
IHJlLWNoZWNrIGZvciBkZXBlbmRlbmNpZXMKKwkJCXNldCAoX2RlcGVuZHNPcHRpb24gIiIpCisJ
CWVuZGlmKCkKKworCQlzZXQgKF9maWxlcyAiIikKKwkJZm9yZWFjaCAoX2luZGV4IFJBTkdFIDQg
JHtDT1RJUkVfQVJHQ30pCisJCQlpZiAoQ09USVJFX0FSR1Yke19pbmRleH0pCisJCQkJbGlzdCAo
QVBQRU5EIF9maWxlcyAiJHtDT1RJUkVfQVJHViR7X2luZGV4fX0iKQorCQkJZW5kaWYoKQorCQll
bmRmb3JlYWNoKCkKKworCQljb3RpcmVfZ2VuZXJhdGVfcHJlZml4X2hlYWRlcigKKwkJCSIke0NP
VElSRV9BUkdWM30iICR7X2ZpbGVzfQorCQkJQ09NUElMRVJfTEFVTkNIRVIgIiR7Q09USVJFX1RB
UkdFVF8ke0NPVElSRV9UQVJHRVRfTEFOR1VBR0V9X0NPTVBJTEVSX0xBVU5DSEVSfSIKKwkJCUNP
TVBJTEVSX0VYRUNVVEFCTEUgIiR7Q01BS0VfJHtDT1RJUkVfVEFSR0VUX0xBTkdVQUdFfV9DT01Q
SUxFUn0iCisJCQlDT01QSUxFUl9BUkcxICR7Q01BS0VfJHtDT1RJUkVfVEFSR0VUX0xBTkdVQUdF
fV9DT01QSUxFUl9BUkcxfQorCQkJQ09NUElMRVJfSUQgIiR7Q01BS0VfJHtDT1RJUkVfVEFSR0VU
X0xBTkdVQUdFfV9DT01QSUxFUl9JRH0iCisJCQlDT01QSUxFUl9WRVJTSU9OICIke0NNQUtFXyR7
Q09USVJFX1RBUkdFVF9MQU5HVUFHRX1fQ09NUElMRVJfVkVSU0lPTn0iCisJCQlMQU5HVUFHRSAi
JHtDT1RJUkVfVEFSR0VUX0xBTkdVQUdFfSIKKwkJCUlHTk9SRV9QQVRIICIke0NPVElSRV9UQVJH
RVRfSUdOT1JFX1BBVEh9OyR7Q09USVJFX0FERElUSU9OQUxfUFJFRklYX0hFQURFUl9JR05PUkVf
UEFUSH0iCisJCQlJTkNMVURFX1BBVEggJHtDT1RJUkVfVEFSR0VUX0lOQ0xVREVfUEFUSH0KKwkJ
CUlHTk9SRV9FWFRFTlNJT05TICIke0NNQUtFXyR7Q09USVJFX1RBUkdFVF9MQU5HVUFHRX1fU09V
UkNFX0ZJTEVfRVhURU5TSU9OU307JHtDT1RJUkVfQURESVRJT05BTF9QUkVGSVhfSEVBREVSX0lH
Tk9SRV9FWFRFTlNJT05TfSIKKwkJCUlOQ0xVREVfUFJJT1JJVFlfUEFUSCAke0NPVElSRV9UQVJH
RVRfSU5DTFVERV9QUklPUklUWV9QQVRIfQorCQkJSU5DTFVERV9ESVJFQ1RPUklFUyAke19pbmNs
dWRlRGlyc30KKwkJCVNZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTICR7X3N5c3RlbUluY2x1ZGVE
aXJzfQorCQkJQ09NUElMRV9ERUZJTklUSU9OUyAke19jb21waWxlRGVmaW5pdGlvbnN9CisJCQlD
T01QSUxFX0ZMQUdTICR7X2NvbXBpbGVGbGFnc30KKwkJCSR7X2RlcGVuZHNPcHRpb259KQorCisJ
ZWxzZWlmICgiJHtDT1RJUkVfQVJHVjF9IiBTVFJFUVVBTCAicHJlY29tcGlsZSIpCisKKwkJc2V0
IChfZmlsZXMgIiIpCisJCWZvcmVhY2ggKF9pbmRleCBSQU5HRSA1ICR7Q09USVJFX0FSR0N9KQor
CQkJaWYgKENPVElSRV9BUkdWJHtfaW5kZXh9KQorCQkJCWxpc3QgKEFQUEVORCBfZmlsZXMgIiR7
Q09USVJFX0FSR1Yke19pbmRleH19IikKKwkJCWVuZGlmKCkKKwkJZW5kZm9yZWFjaCgpCisKKwkJ
Y290aXJlX3ByZWNvbXBpbGVfcHJlZml4X2hlYWRlcigKKwkJCSIke0NPVElSRV9BUkdWM30iICIk
e0NPVElSRV9BUkdWNH0iICIke0NPVElSRV9BUkdWNX0iCisJCQlDT01QSUxFUl9MQVVOQ0hFUiAi
JHtDT1RJUkVfVEFSR0VUXyR7Q09USVJFX1RBUkdFVF9MQU5HVUFHRX1fQ09NUElMRVJfTEFVTkNI
RVJ9IgorCQkJQ09NUElMRVJfRVhFQ1VUQUJMRSAiJHtDTUFLRV8ke0NPVElSRV9UQVJHRVRfTEFO
R1VBR0V9X0NPTVBJTEVSfSIKKwkJCUNPTVBJTEVSX0FSRzEgJHtDTUFLRV8ke0NPVElSRV9UQVJH
RVRfTEFOR1VBR0V9X0NPTVBJTEVSX0FSRzF9CisJCQlDT01QSUxFUl9JRCAiJHtDTUFLRV8ke0NP
VElSRV9UQVJHRVRfTEFOR1VBR0V9X0NPTVBJTEVSX0lEfSIKKwkJCUNPTVBJTEVSX1ZFUlNJT04g
IiR7Q01BS0VfJHtDT1RJUkVfVEFSR0VUX0xBTkdVQUdFfV9DT01QSUxFUl9WRVJTSU9OfSIKKwkJ
CUxBTkdVQUdFICIke0NPVElSRV9UQVJHRVRfTEFOR1VBR0V9IgorCQkJSU5DTFVERV9ESVJFQ1RP
UklFUyAke19pbmNsdWRlRGlyc30KKwkJCVNZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTICR7X3N5
c3RlbUluY2x1ZGVEaXJzfQorCQkJQ09NUElMRV9ERUZJTklUSU9OUyAke19jb21waWxlRGVmaW5p
dGlvbnN9CisJCQlDT01QSUxFX0ZMQUdTICR7X2NvbXBpbGVGbGFnc30pCisKKwllbHNlaWYgKCIk
e0NPVElSRV9BUkdWMX0iIFNUUkVRVUFMICJjb21iaW5lIikKKworCQlpZiAoQ09USVJFX1RBUkdF
VF9MQU5HVUFHRSkKKwkJCXNldCAoX2NvbWJpbmVkRmlsZSAiJHtDT1RJUkVfQVJHVjN9IikKKwkJ
CXNldCAoX3N0YXJ0SW5kZXggNCkKKwkJZWxzZSgpCisJCQlzZXQgKF9jb21iaW5lZEZpbGUgIiR7
Q09USVJFX0FSR1YyfSIpCisJCQlzZXQgKF9zdGFydEluZGV4IDMpCisJCWVuZGlmKCkKKwkJc2V0
IChfZmlsZXMgIiIpCisJCWZvcmVhY2ggKF9pbmRleCBSQU5HRSAke19zdGFydEluZGV4fSAke0NP
VElSRV9BUkdDfSkKKwkJCWlmIChDT1RJUkVfQVJHViR7X2luZGV4fSkKKwkJCQlsaXN0IChBUFBF
TkQgX2ZpbGVzICIke0NPVElSRV9BUkdWJHtfaW5kZXh9fSIpCisJCQllbmRpZigpCisJCWVuZGZv
cmVhY2goKQorCisJCWlmIChYQ09ERSkKKwkJCSMgZXhlY3V0aW5nIHByZS1idWlsZCBhY3Rpb24g
dW5kZXIgWGNvZGUsIGNoZWNrIGRlcGVuZGVuY3kgb24gZmlsZXMgdG8gYmUgY29tYmluZWQKKwkJ
CXNldCAoX2RlcGVuZHNPcHRpb24gREVQRU5EUyAke19maWxlc30pCisJCWVsc2UoKQorCQkJIyBl
eGVjdXRpbmcgY3VzdG9tIGNvbW1hbmQsIG5vIG5lZWQgdG8gcmUtY2hlY2sgZm9yIGRlcGVuZGVu
Y2llcworCQkJc2V0IChfZGVwZW5kc09wdGlvbiAiIikKKwkJZW5kaWYoKQorCisJCWlmIChDT1RJ
UkVfVEFSR0VUX0xBTkdVQUdFKQorCQkJY290aXJlX2dlbmVyYXRlX3VuaXR5X3NvdXJjZSgKKwkJ
CQkiJHtfY29tYmluZWRGaWxlfSIgJHtfZmlsZXN9CisJCQkJTEFOR1VBR0UgIiR7Q09USVJFX1RB
UkdFVF9MQU5HVUFHRX0iCisJCQkJJHtfZGVwZW5kc09wdGlvbn0pCisJCWVsc2UoKQorCQkJY290
aXJlX2dlbmVyYXRlX3VuaXR5X3NvdXJjZSgiJHtfY29tYmluZWRGaWxlfSIgJHtfZmlsZXN9ICR7
X2RlcGVuZHNPcHRpb259KQorCQllbmRpZigpCisKKwllbHNlaWYgKCIke0NPVElSRV9BUkdWMX0i
IFNUUkVRVUFMICJjbGVhbnVwIikKKworCQljb3RpcmVfY2xlYW51cCgiJHtDT1RJUkVfQVJHVjJ9
IiAiJHtDT1RJUkVfQVJHVjN9IiAiJHtDT1RJUkVfQVJHVjR9IikKKworCWVsc2UoKQorCQltZXNz
YWdlIChGQVRBTF9FUlJPUiAiY290aXJlOiB1bmtub3duIGNvbW1hbmQgXCIke0NPVElSRV9BUkdW
MX1cIi4iKQorCWVuZGlmKCkKKworZWxzZSgpCisKKwkjIGNvdGlyZSBpcyBiZWluZyBydW4gaW4g
aW5jbHVkZSBtb2RlCisJIyBzZXQgdXAgYWxsIHZhcmlhYmxlIGFuZCBwcm9wZXJ0eSBkZWZpbml0
aW9ucworCisJaWYgKE5PVCBERUZJTkVEIENPVElSRV9ERUJVR19JTklUKQorCQlpZiAoREVGSU5F
RCBDT1RJUkVfREVCVUcpCisJCQlzZXQgKENPVElSRV9ERUJVR19JTklUICR7Q09USVJFX0RFQlVH
fSkKKwkJZWxzZSgpCisJCQlzZXQgKENPVElSRV9ERUJVR19JTklUIEZBTFNFKQorCQllbmRpZigp
CisJZW5kaWYoKQorCW9wdGlvbiAoQ09USVJFX0RFQlVHICJFbmFibGUgY290aXJlIGRlYnVnZ2lu
ZyBvdXRwdXQ/IiAke0NPVElSRV9ERUJVR19JTklUfSkKKworCWlmIChOT1QgREVGSU5FRCBDT1RJ
UkVfVkVSQk9TRV9JTklUKQorCQlpZiAoREVGSU5FRCBDT1RJUkVfVkVSQk9TRSkKKwkJCXNldCAo
Q09USVJFX1ZFUkJPU0VfSU5JVCAke0NPVElSRV9WRVJCT1NFfSkKKwkJZWxzZSgpCisJCQlzZXQg
KENPVElSRV9WRVJCT1NFX0lOSVQgRkFMU0UpCisJCWVuZGlmKCkKKwllbmRpZigpCisJb3B0aW9u
IChDT1RJUkVfVkVSQk9TRSAiRW5hYmxlIGNvdGlyZSB2ZXJib3NlIG91dHB1dD8iICR7Q09USVJF
X1ZFUkJPU0VfSU5JVH0pCisKKwlzZXQgKENPVElSRV9BRERJVElPTkFMX1BSRUZJWF9IRUFERVJf
SUdOT1JFX0VYVEVOU0lPTlMgImluYztpbmw7aXBwIiBDQUNIRSBTVFJJTkcKKwkJIklnbm9yZSBo
ZWFkZXJzIHdpdGggdGhlIGxpc3RlZCBmaWxlIGV4dGVuc2lvbnMgZnJvbSB0aGUgZ2VuZXJhdGVk
IHByZWZpeCBoZWFkZXIuIikKKworCXNldCAoQ09USVJFX0FERElUSU9OQUxfUFJFRklYX0hFQURF
Ul9JR05PUkVfUEFUSCAiIiBDQUNIRSBTVFJJTkcKKwkJIklnbm9yZSBoZWFkZXJzIGZyb20gdGhl
c2UgZGlyZWN0b3JpZXMgd2hlbiBnZW5lcmF0aW5nIHRoZSBwcmVmaXggaGVhZGVyLiIpCisKKwlz
ZXQgKENPVElSRV9VTklUWV9TT1VSQ0VfRVhDTFVERV9FWFRFTlNJT05TICJtO21tIiBDQUNIRSBT
VFJJTkcKKwkJIklnbm9yZSBzb3VyY2VzIHdpdGggdGhlIGxpc3RlZCBmaWxlIGV4dGVuc2lvbnMg
ZnJvbSB0aGUgZ2VuZXJhdGVkIHVuaXR5IHNvdXJjZS4iKQorCisJc2V0IChDT1RJUkVfTUlOSU1V
TV9OVU1CRVJfT0ZfVEFSR0VUX1NPVVJDRVMgIjMiIENBQ0hFIFNUUklORworCQkiTWluaW11bSBu
dW1iZXIgb2Ygc291cmNlcyBpbiB0YXJnZXQgcmVxdWlyZWQgdG8gZW5hYmxlIHVzZSBvZiBwcmVj
b21waWxlZCBoZWFkZXIuIikKKworCWlmIChOT1QgREVGSU5FRCBDT1RJUkVfTUFYSU1VTV9OVU1C
RVJfT0ZfVU5JVFlfSU5DTFVERVNfSU5JVCkKKwkJaWYgKERFRklORUQgQ09USVJFX01BWElNVU1f
TlVNQkVSX09GX1VOSVRZX0lOQ0xVREVTKQorCQkJc2V0IChDT1RJUkVfTUFYSU1VTV9OVU1CRVJf
T0ZfVU5JVFlfSU5DTFVERVNfSU5JVCAke0NPVElSRV9NQVhJTVVNX05VTUJFUl9PRl9VTklUWV9J
TkNMVURFU30pCisJCWVsc2VpZiAoIiR7Q01BS0VfR0VORVJBVE9SfSIgTUFUQ0hFUyAiSk9NfE5p
bmphfFZpc3VhbCBTdHVkaW8iKQorCQkJIyBlbmFibGUgcGFyYWxsZWxpemF0aW9uIGZvciBnZW5l
cmF0b3JzIHRoYXQgcnVuIG11bHRpcGxlIGpvYnMgYnkgZGVmYXVsdAorCQkJc2V0IChDT1RJUkVf
TUFYSU1VTV9OVU1CRVJfT0ZfVU5JVFlfSU5DTFVERVNfSU5JVCAiLWoiKQorCQllbHNlKCkKKwkJ
CXNldCAoQ09USVJFX01BWElNVU1fTlVNQkVSX09GX1VOSVRZX0lOQ0xVREVTX0lOSVQgIjAiKQor
CQllbmRpZigpCisJZW5kaWYoKQorCXNldCAoQ09USVJFX01BWElNVU1fTlVNQkVSX09GX1VOSVRZ
X0lOQ0xVREVTICIke0NPVElSRV9NQVhJTVVNX05VTUJFUl9PRl9VTklUWV9JTkNMVURFU19JTklU
fSIgQ0FDSEUgU1RSSU5HCisJCSJNYXhpbXVtIG51bWJlciBvZiBzb3VyY2UgZmlsZXMgdG8gaW5j
bHVkZSBpbiBhIHNpbmdsZSB1bml0eSBzb3VyY2UgZmlsZS4iKQorCisJaWYgKE5PVCBDT1RJUkVf
UFJFRklYX0hFQURFUl9GSUxFTkFNRV9TVUZGSVgpCisJCXNldCAoQ09USVJFX1BSRUZJWF9IRUFE
RVJfRklMRU5BTUVfU1VGRklYICJfcHJlZml4IikKKwllbmRpZigpCisJaWYgKE5PVCBDT1RJUkVf
VU5JVFlfU09VUkNFX0ZJTEVOQU1FX1NVRkZJWCkKKwkJc2V0IChDT1RJUkVfVU5JVFlfU09VUkNF
X0ZJTEVOQU1FX1NVRkZJWCAiX3VuaXR5IikKKwllbmRpZigpCisJaWYgKE5PVCBDT1RJUkVfSU5U
RElSKQorCQlzZXQgKENPVElSRV9JTlRESVIgImNvdGlyZSIpCisJZW5kaWYoKQorCWlmIChOT1Qg
Q09USVJFX1BDSF9BTExfVEFSR0VUX05BTUUpCisJCXNldCAoQ09USVJFX1BDSF9BTExfVEFSR0VU
X05BTUUgImFsbF9wY2giKQorCWVuZGlmKCkKKwlpZiAoTk9UIENPVElSRV9VTklUWV9CVUlMRF9B
TExfVEFSR0VUX05BTUUpCisJCXNldCAoQ09USVJFX1VOSVRZX0JVSUxEX0FMTF9UQVJHRVRfTkFN
RSAiYWxsX3VuaXR5IikKKwllbmRpZigpCisJaWYgKE5PVCBDT1RJUkVfQ0xFQU5fQUxMX1RBUkdF
VF9OQU1FKQorCQlzZXQgKENPVElSRV9DTEVBTl9BTExfVEFSR0VUX05BTUUgImNsZWFuX2NvdGly
ZSIpCisJZW5kaWYoKQorCWlmIChOT1QgQ09USVJFX0NMRUFOX1RBUkdFVF9TVUZGSVgpCisJCXNl
dCAoQ09USVJFX0NMRUFOX1RBUkdFVF9TVUZGSVggIl9jbGVhbl9jb3RpcmUiKQorCWVuZGlmKCkK
KwlpZiAoTk9UIENPVElSRV9QQ0hfVEFSR0VUX1NVRkZJWCkKKwkJc2V0IChDT1RJUkVfUENIX1RB
UkdFVF9TVUZGSVggIl9wY2giKQorCWVuZGlmKCkKKwlpZiAoTVNWQykKKwkJIyBNU1ZDIGRlZmF1
bHQgUENIIG1lbW9yeSBzY2FsaW5nIGZhY3RvciBvZiAxMDAgcGVyY2VudCAoNzUgTUIpIGlzIHRv
byBzbWFsbCBmb3IgdGVtcGxhdGUgaGVhdnkgQysrIGNvZGUKKwkJIyB1c2UgYSBiaWdnZXIgZGVm
YXVsdCBmYWN0b3Igb2YgMTcwIHBlcmNlbnQgKDEyOCBNQikKKwkJaWYgKE5PVCBERUZJTkVEIENP
VElSRV9QQ0hfTUVNT1JZX1NDQUxJTkdfRkFDVE9SKQorCQkJc2V0IChDT1RJUkVfUENIX01FTU9S
WV9TQ0FMSU5HX0ZBQ1RPUiAiMTcwIikKKwkJZW5kaWYoKQorCWVuZGlmKCkKKwlpZiAoTk9UIENP
VElSRV9VTklUWV9CVUlMRF9UQVJHRVRfU1VGRklYKQorCQlzZXQgKENPVElSRV9VTklUWV9CVUlM
RF9UQVJHRVRfU1VGRklYICJfdW5pdHkiKQorCWVuZGlmKCkKKwlpZiAoTk9UIERFRklORUQgQ09U
SVJFX1RBUkdFVFNfRk9MREVSKQorCQlzZXQgKENPVElSRV9UQVJHRVRTX0ZPTERFUiAiY290aXJl
IikKKwllbmRpZigpCisJaWYgKE5PVCBERUZJTkVEIENPVElSRV9VTklUWV9PVVRQVVRfRElSRUNU
T1JZKQorCQlpZiAoIiR7Q01BS0VfR0VORVJBVE9SfSIgTUFUQ0hFUyAiTmluamEiKQorCQkJIyBn
ZW5lcmF0ZWQgTmluamEgYnVpbGQgZmlsZXMgZG8gbm90IHdvcmsgaWYgdGhlIHVuaXR5IHRhcmdl
dCBwcm9kdWNlcyB0aGUgc2FtZSBvdXRwdXQgZmlsZSBhcyB0aGUgY290aXJlZCB0YXJnZXQKKwkJ
CXNldCAoQ09USVJFX1VOSVRZX09VVFBVVF9ESVJFQ1RPUlkgInVuaXR5IikKKwkJZWxzZSgpCisJ
CQlzZXQgKENPVElSRV9VTklUWV9PVVRQVVRfRElSRUNUT1JZICIiKQorCQllbmRpZigpCisJZW5k
aWYoKQorCisJIyBkZWZpbmUgY290aXJlIGNhY2hlIHZhcmlhYmxlcworCisJZGVmaW5lX3Byb3Bl
cnR5KAorCQlDQUNIRURfVkFSSUFCTEUgUFJPUEVSVFkgIkNPVElSRV9BRERJVElPTkFMX1BSRUZJ
WF9IRUFERVJfSUdOT1JFX1BBVEgiCisJCUJSSUVGX0RPQ1MgIklnbm9yZSBoZWFkZXJzIGZyb20g
dGhlc2UgZGlyZWN0b3JpZXMgd2hlbiBnZW5lcmF0aW5nIHRoZSBwcmVmaXggaGVhZGVyLiIKKwkJ
RlVMTF9ET0NTCisJCQkiVGhlIHZhcmlhYmxlIGNhbiBiZSBzZXQgdG8gYSBzZW1pY29sb24gc2Vw
YXJhdGVkIGxpc3Qgb2YgaW5jbHVkZSBkaXJlY3Rvcmllcy4iCisJCQkiSWYgYSBoZWFkZXIgZmls
ZSBpcyBmb3VuZCBpbiBvbmUgb2YgdGhlc2UgZGlyZWN0b3JpZXMgb3Igc3ViLWRpcmVjdG9yaWVz
LCBpdCB3aWxsIGJlIGV4Y2x1ZGVkIGZyb20gdGhlIGdlbmVyYXRlZCBwcmVmaXggaGVhZGVyLiIK
KwkJCSJJZiBub3QgZGVmaW5lZCwgZGVmYXVsdHMgdG8gZW1wdHkgbGlzdC4iCisJKQorCisJZGVm
aW5lX3Byb3BlcnR5KAorCQlDQUNIRURfVkFSSUFCTEUgUFJPUEVSVFkgIkNPVElSRV9BRERJVElP
TkFMX1BSRUZJWF9IRUFERVJfSUdOT1JFX0VYVEVOU0lPTlMiCisJCUJSSUVGX0RPQ1MgIklnbm9y
ZSBpbmNsdWRlcyB3aXRoIHRoZSBsaXN0ZWQgZmlsZSBleHRlbnNpb25zIGZyb20gdGhlIGdlbmVy
YXRlZCBwcmVmaXggaGVhZGVyLiIKKwkJRlVMTF9ET0NTCisJCQkiVGhlIHZhcmlhYmxlIGNhbiBi
ZSBzZXQgdG8gYSBzZW1pY29sb24gc2VwYXJhdGVkIGxpc3Qgb2YgZmlsZSBleHRlbnNpb25zLiIK
KwkJCSJJZiBhIGhlYWRlciBmaWxlIGV4dGVuc2lvbiBtYXRjaGVzIG9uZSBpbiB0aGUgbGlzdCwg
aXQgd2lsbCBiZSBleGNsdWRlZCBmcm9tIHRoZSBnZW5lcmF0ZWQgcHJlZml4IGhlYWRlci4iCisJ
CQkiSW5jbHVkZXMgd2l0aCBhbiBleHRlbnNpb24gaW4gQ01BS0VfPExBTkc+X1NPVVJDRV9GSUxF
X0VYVEVOU0lPTlMgYXJlIGFsd2F5cyBpZ25vcmVkLiIKKwkJCSJJZiBub3QgZGVmaW5lZCwgZGVm
YXVsdHMgdG8gaW5jO2lubDtpcHAuIgorCSkKKworCWRlZmluZV9wcm9wZXJ0eSgKKwkJQ0FDSEVE
X1ZBUklBQkxFIFBST1BFUlRZICJDT1RJUkVfVU5JVFlfU09VUkNFX0VYQ0xVREVfRVhURU5TSU9O
UyIKKwkJQlJJRUZfRE9DUyAiRXhjbHVkZSBzb3VyY2VzIHdpdGggdGhlIGxpc3RlZCBmaWxlIGV4
dGVuc2lvbnMgZnJvbSB0aGUgZ2VuZXJhdGVkIHVuaXR5IHNvdXJjZS4iCisJCUZVTExfRE9DUwor
CQkJIlRoZSB2YXJpYWJsZSBjYW4gYmUgc2V0IHRvIGEgc2VtaWNvbG9uIHNlcGFyYXRlZCBsaXN0
IG9mIGZpbGUgZXh0ZW5zaW9ucy4iCisJCQkiSWYgYSBzb3VyY2UgZmlsZSBleHRlbnNpb24gbWF0
Y2hlcyBvbmUgaW4gdGhlIGxpc3QsIGl0IHdpbGwgYmUgZXhjbHVkZWQgZnJvbSB0aGUgZ2VuZXJh
dGVkIHVuaXR5IHNvdXJjZSBmaWxlLiIKKwkJCSJTb3VyY2UgZmlsZXMgd2l0aCBhbiBleHRlbnNp
b24gaW4gQ01BS0VfPExBTkc+X0lHTk9SRV9FWFRFTlNJT05TIGFyZSBhbHdheXMgZXhjbHVkZWQu
IgorCQkJIklmIG5vdCBkZWZpbmVkLCBkZWZhdWx0cyB0byBtO21tLiIKKwkpCisKKwlkZWZpbmVf
cHJvcGVydHkoCisJCUNBQ0hFRF9WQVJJQUJMRSBQUk9QRVJUWSAiQ09USVJFX01JTklNVU1fTlVN
QkVSX09GX1RBUkdFVF9TT1VSQ0VTIgorCQlCUklFRl9ET0NTICJNaW5pbXVtIG51bWJlciBvZiBz
b3VyY2VzIGluIHRhcmdldCByZXF1aXJlZCB0byBlbmFibGUgdXNlIG9mIHByZWNvbXBpbGVkIGhl
YWRlci4iCisJCUZVTExfRE9DUworCQkJIlRoZSB2YXJpYWJsZSBjYW4gYmUgc2V0IHRvIGFuIGlu
dGVnZXIgPiAwLiIKKwkJCSJJZiBhIHRhcmdldCBjb250YWlucyBsZXNzIHRoYW4gdGhhdCBudW1i
ZXIgb2Ygc291cmNlIGZpbGVzLCBjb3RpcmUgd2lsbCBub3QgZW5hYmxlIHRoZSB1c2Ugb2YgdGhl
IHByZWNvbXBpbGVkIGhlYWRlciBmb3IgdGhlIHRhcmdldC4iCisJCQkiSWYgbm90IGRlZmluZWQs
IGRlZmF1bHRzIHRvIDMuIgorCSkKKworCWRlZmluZV9wcm9wZXJ0eSgKKwkJQ0FDSEVEX1ZBUklB
QkxFIFBST1BFUlRZICJDT1RJUkVfTUFYSU1VTV9OVU1CRVJfT0ZfVU5JVFlfSU5DTFVERVMiCisJ
CUJSSUVGX0RPQ1MgIk1heGltdW0gbnVtYmVyIG9mIHNvdXJjZSBmaWxlcyB0byBpbmNsdWRlIGlu
IGEgc2luZ2xlIHVuaXR5IHNvdXJjZSBmaWxlLiIKKwkJRlVMTF9ET0NTCisJCQkiVGhpcyBtYXkg
YmUgc2V0IHRvIGFuIGludGVnZXIgPj0gMC4iCisJCQkiSWYgMCwgY290aXJlIHdpbGwgb25seSBj
cmVhdGUgYSBzaW5nbGUgdW5pdHkgc291cmNlIGZpbGUuIgorCQkJIklmIGEgdGFyZ2V0IGNvbnRh
aW5zIG1vcmUgdGhhbiB0aGF0IG51bWJlciBvZiBzb3VyY2UgZmlsZXMsIGNvdGlyZSB3aWxsIGNy
ZWF0ZSBtdWx0aXBsZSB1bml0eSBzb3VyY2UgZmlsZXMgZm9yIGl0LiIKKwkJCSJDYW4gYmUgc2V0
IHRvIFwiLWpcIiB0byBvcHRpbWl6ZSB0aGUgY291bnQgb2YgdW5pdHkgc291cmNlIGZpbGVzIGZv
ciB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBwcm9jZXNzb3IgY29yZXMuIgorCQkJIkNhbiBiZSBz
ZXQgdG8gXCItaiBqb2JzXCIgdG8gb3B0aW1pemUgdGhlIG51bWJlciBvZiB1bml0eSBzb3VyY2Ug
ZmlsZXMgZm9yIHRoZSBnaXZlbiBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGpvYnMuIgorCQkJIklz
IHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgdGFyZ2V0IHByb3BlcnR5IENPVElSRV9VTklUWV9TT1VS
Q0VfTUFYSU1VTV9OVU1CRVJfT0ZfSU5DTFVERVMuIgorCQkJIkRlZmF1bHRzIHRvIFwiLWpcIiBm
b3IgdGhlIGdlbmVyYXRvcnMgVmlzdWFsIFN0dWRpbywgSk9NIG9yIE5pbmphLiBEZWZhdWx0cyB0
byAwIG90aGVyd2lzZS4iCisJKQorCisJIyBkZWZpbmUgY290aXJlIGRpcmVjdG9yeSBwcm9wZXJ0
aWVzCisKKwlkZWZpbmVfcHJvcGVydHkoCisJCURJUkVDVE9SWSBQUk9QRVJUWSAiQ09USVJFX0VO
QUJMRV9QUkVDT01QSUxFRF9IRUFERVIiCisJCUJSSUVGX0RPQ1MgIk1vZGlmeSBidWlsZCBjb21t
YW5kIG9mIGNvdGlyZWQgdGFyZ2V0cyBhZGRlZCBpbiB0aGlzIGRpcmVjdG9yeSB0byBtYWtlIHVz
ZSBvZiB0aGUgZ2VuZXJhdGVkIHByZWNvbXBpbGVkIGhlYWRlci4iCisJCUZVTExfRE9DUworCQkJ
IlNlZSB0YXJnZXQgcHJvcGVydHkgQ09USVJFX0VOQUJMRV9QUkVDT01QSUxFRF9IRUFERVIuIgor
CSkKKworCWRlZmluZV9wcm9wZXJ0eSgKKwkJRElSRUNUT1JZIFBST1BFUlRZICJDT1RJUkVfQURE
X1VOSVRZX0JVSUxEIgorCQlCUklFRl9ET0NTICJBZGQgYSBuZXcgdGFyZ2V0IHRoYXQgcGVyZm9y
bXMgYSB1bml0eSBidWlsZCBmb3IgY290aXJlZCB0YXJnZXRzIGFkZGVkIGluIHRoaXMgZGlyZWN0
b3J5LiIKKwkJRlVMTF9ET0NTCisJCQkiU2VlIHRhcmdldCBwcm9wZXJ0eSBDT1RJUkVfQUREX1VO
SVRZX0JVSUxELiIKKwkpCisKKwlkZWZpbmVfcHJvcGVydHkoCisJCURJUkVDVE9SWSBQUk9QRVJU
WSAiQ09USVJFX0FERF9DTEVBTiIKKwkJQlJJRUZfRE9DUyAiQWRkIGEgbmV3IHRhcmdldCB0aGF0
IGNsZWFucyBhbGwgY290aXJlIGdlbmVyYXRlZCBmaWxlcyBmb3IgY290aXJlZCB0YXJnZXRzIGFk
ZGVkIGluIHRoaXMgZGlyZWN0b3J5LiIKKwkJRlVMTF9ET0NTCisJCQkiU2VlIHRhcmdldCBwcm9w
ZXJ0eSBDT1RJUkVfQUREX0NMRUFOLiIKKwkpCisKKwlkZWZpbmVfcHJvcGVydHkoCisJCURJUkVD
VE9SWSBQUk9QRVJUWSAiQ09USVJFX1BSRUZJWF9IRUFERVJfSUdOT1JFX1BBVEgiCisJCUJSSUVG
X0RPQ1MgIklnbm9yZSBoZWFkZXJzIGZyb20gdGhlc2UgZGlyZWN0b3JpZXMgd2hlbiBnZW5lcmF0
aW5nIHRoZSBwcmVmaXggaGVhZGVyLiIKKwkJRlVMTF9ET0NTCisJCQkiU2VlIHRhcmdldCBwcm9w
ZXJ0eSBDT1RJUkVfUFJFRklYX0hFQURFUl9JR05PUkVfUEFUSC4iCisJKQorCisJZGVmaW5lX3By
b3BlcnR5KAorCQlESVJFQ1RPUlkgUFJPUEVSVFkgIkNPVElSRV9QUkVGSVhfSEVBREVSX0lOQ0xV
REVfUEFUSCIKKwkJQlJJRUZfRE9DUyAiSG9ub3IgaGVhZGVycyBmcm9tIHRoZXNlIGRpcmVjdG9y
aWVzIHdoZW4gZ2VuZXJhdGluZyB0aGUgcHJlZml4IGhlYWRlci4iCisJCUZVTExfRE9DUworCQkJ
IlNlZSB0YXJnZXQgcHJvcGVydHkgQ09USVJFX1BSRUZJWF9IRUFERVJfSU5DTFVERV9QQVRILiIK
KwkpCisKKwlkZWZpbmVfcHJvcGVydHkoCisJCURJUkVDVE9SWSBQUk9QRVJUWSAiQ09USVJFX1BS
RUZJWF9IRUFERVJfSU5DTFVERV9QUklPUklUWV9QQVRIIgorCQlCUklFRl9ET0NTICJIZWFkZXIg
cGF0aHMgbWF0Y2hpbmcgb25lIG9mIHRoZXNlIGRpcmVjdG9yaWVzIGFyZSBwdXQgYXQgdGhlIHRv
cCBvZiB0aGUgcHJlZml4IGhlYWRlci4iCisJCUZVTExfRE9DUworCQkJIlNlZSB0YXJnZXQgcHJv
cGVydHkgQ09USVJFX1BSRUZJWF9IRUFERVJfSU5DTFVERV9QUklPUklUWV9QQVRILiIKKwkpCisK
KwlkZWZpbmVfcHJvcGVydHkoCisJCURJUkVDVE9SWSBQUk9QRVJUWSAiQ09USVJFX1VOSVRZX1NP
VVJDRV9QUkVfVU5ERUZTIgorCQlCUklFRl9ET0NTICJQcmVwcm9jZXNzb3IgdW5kZWZzIHRvIHBs
YWNlIGluIHRoZSBnZW5lcmF0ZWQgdW5pdHkgc291cmNlIGZpbGUgYmVmb3JlIHRoZSBpbmNsdXNp
b24gb2YgZWFjaCBzb3VyY2UgZmlsZS4iCisJCUZVTExfRE9DUworCQkJIlNlZSB0YXJnZXQgcHJv
cGVydHkgQ09USVJFX1VOSVRZX1NPVVJDRV9QUkVfVU5ERUZTLiIKKwkpCisKKwlkZWZpbmVfcHJv
cGVydHkoCisJCURJUkVDVE9SWSBQUk9QRVJUWSAiQ09USVJFX1VOSVRZX1NPVVJDRV9QT1NUX1VO
REVGUyIKKwkJQlJJRUZfRE9DUyAiUHJlcHJvY2Vzc29yIHVuZGVmcyB0byBwbGFjZSBpbiB0aGUg
Z2VuZXJhdGVkIHVuaXR5IHNvdXJjZSBmaWxlIGFmdGVyIHRoZSBpbmNsdXNpb24gb2YgZWFjaCBz
b3VyY2UgZmlsZS4iCisJCUZVTExfRE9DUworCQkJIlNlZSB0YXJnZXQgcHJvcGVydHkgQ09USVJF
X1VOSVRZX1NPVVJDRV9QT1NUX1VOREVGUy4iCisJKQorCisJZGVmaW5lX3Byb3BlcnR5KAorCQlE
SVJFQ1RPUlkgUFJPUEVSVFkgIkNPVElSRV9VTklUWV9TT1VSQ0VfTUFYSU1VTV9OVU1CRVJfT0Zf
SU5DTFVERVMiCisJCUJSSUVGX0RPQ1MgIk1heGltdW0gbnVtYmVyIG9mIHNvdXJjZSBmaWxlcyB0
byBpbmNsdWRlIGluIGEgc2luZ2xlIHVuaXR5IHNvdXJjZSBmaWxlLiIKKwkJRlVMTF9ET0NTCisJ
CQkiU2VlIHRhcmdldCBwcm9wZXJ0eSBDT1RJUkVfVU5JVFlfU09VUkNFX01BWElNVU1fTlVNQkVS
X09GX0lOQ0xVREVTLiIKKwkpCisKKwlkZWZpbmVfcHJvcGVydHkoCisJCURJUkVDVE9SWSBQUk9Q
RVJUWSAiQ09USVJFX1VOSVRZX0xJTktfTElCUkFSSUVTX0lOSVQiCisJCUJSSUVGX0RPQ1MgIkRl
ZmluZSBzdHJhdGVneSBmb3Igc2V0dGluZyB1cCB0aGUgdW5pdHkgdGFyZ2V0J3MgbGluayBsaWJy
YXJpZXMuIgorCQlGVUxMX0RPQ1MKKwkJCSJTZWUgdGFyZ2V0IHByb3BlcnR5IENPVElSRV9VTklU
WV9MSU5LX0xJQlJBUklFU19JTklULiIKKwkpCisKKwkjIGRlZmluZSBjb3RpcmUgdGFyZ2V0IHBy
b3BlcnRpZXMKKworCWRlZmluZV9wcm9wZXJ0eSgKKwkJVEFSR0VUIFBST1BFUlRZICJDT1RJUkVf
RU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUiIgSU5IRVJJVEVECisJCUJSSUVGX0RPQ1MgIk1vZGlm
eSB0aGlzIHRhcmdldCdzIGJ1aWxkIGNvbW1hbmQgdG8gbWFrZSB1c2Ugb2YgdGhlIGdlbmVyYXRl
ZCBwcmVjb21waWxlZCBoZWFkZXIuIgorCQlGVUxMX0RPQ1MKKwkJCSJJZiB0aGlzIHByb3BlcnR5
IGlzIHNldCB0byBUUlVFLCBjb3RpcmUgd2lsbCBtb2RpZnkgdGhlIGJ1aWxkIGNvbW1hbmQgdG8g
bWFrZSB1c2Ugb2YgdGhlIGdlbmVyYXRlZCBwcmVjb21waWxlZCBoZWFkZXIuIgorCQkJIklycmVz
cGVjdGl2ZSBvZiB0aGUgdmFsdWUgb2YgdGhpcyBwcm9wZXJ0eSwgY290aXJlIHdpbGwgc2V0dXAg
Y3VzdG9tIGNvbW1hbmRzIHRvIGdlbmVyYXRlIHRoZSB1bml0eSBzb3VyY2UgYW5kIHByZWZpeCBo
ZWFkZXIgZm9yIHRoZSB0YXJnZXQuIgorCQkJIkZvciBtYWtlZmlsZSBiYXNlZCBnZW5lcmF0b3Jz
IGNvdGlyZSB3aWxsIGFsc28gc2V0IHVwIGEgY3VzdG9tIHRhcmdldCB0byBtYW51YWxseSBpbnZv
a2UgdGhlIGdlbmVyYXRpb24gb2YgdGhlIHByZWNvbXBpbGVkIGhlYWRlci4iCisJCQkiVGhlIHRh
cmdldCBuYW1lIHdpbGwgYmUgc2V0IHRvIHRoaXMgdGFyZ2V0J3MgbmFtZSB3aXRoIHRoZSBzdWZm
aXggX3BjaCBhcHBlbmRlZC4iCisJCQkiSW5oZXJpdGVkIGZyb20gZGlyZWN0b3J5LiIKKwkJCSJE
ZWZhdWx0cyB0byBUUlVFLiIKKwkpCisKKwlkZWZpbmVfcHJvcGVydHkoCisJCVRBUkdFVCBQUk9Q
RVJUWSAiQ09USVJFX0FERF9VTklUWV9CVUlMRCIgSU5IRVJJVEVECisJCUJSSUVGX0RPQ1MgIkFk
ZCBhIG5ldyB0YXJnZXQgdGhhdCBwZXJmb3JtcyBhIHVuaXR5IGJ1aWxkIGZvciB0aGlzIHRhcmdl
dC4iCisJCUZVTExfRE9DUworCQkJIklmIHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvIFRSVUUsIGNv
dGlyZSBjcmVhdGVzIGEgbmV3IHRhcmdldCBvZiB0aGUgc2FtZSB0eXBlIHRoYXQgdXNlcyB0aGUg
Z2VuZXJhdGVkIHVuaXR5IHNvdXJjZSBmaWxlIGluc3RlYWQgb2YgdGhlIHRhcmdldCBzb3VyY2Vz
LiIKKwkJCSJNb3N0IG9mIHRoZSByZWxldmFudCB0YXJnZXQgcHJvcGVydGllcyB3aWxsIGJlIGNv
cGllZCBmcm9tIHRoaXMgdGFyZ2V0IHRvIHRoZSBuZXcgdW5pdHkgYnVpbGQgdGFyZ2V0LiIKKwkJ
CSJUYXJnZXQgZGVwZW5kZW5jaWVzIGFuZCBsaW5rZWQgbGlicmFyaWVzIGhhdmUgdG8gYmUgbWFu
dWFsbHkgc2V0IHVwIGZvciB0aGUgbmV3IHVuaXR5IGJ1aWxkIHRhcmdldC4iCisJCQkiVGhlIHVu
aXR5IHRhcmdldCBuYW1lIHdpbGwgYmUgc2V0IHRvIHRoaXMgdGFyZ2V0J3MgbmFtZSB3aXRoIHRo
ZSBzdWZmaXggX3VuaXR5IGFwcGVuZGVkLiIKKwkJCSJJbmhlcml0ZWQgZnJvbSBkaXJlY3Rvcnku
IgorCQkJIkRlZmF1bHRzIHRvIFRSVUUuIgorCSkKKworCWRlZmluZV9wcm9wZXJ0eSgKKwkJVEFS
R0VUIFBST1BFUlRZICJDT1RJUkVfQUREX0NMRUFOIiBJTkhFUklURUQKKwkJQlJJRUZfRE9DUyAi
QWRkIGEgbmV3IHRhcmdldCB0aGF0IGNsZWFucyBhbGwgY290aXJlIGdlbmVyYXRlZCBmaWxlcyBm
b3IgdGhpcyB0YXJnZXQuIgorCQlGVUxMX0RPQ1MKKwkJCSJJZiB0aGlzIHByb3BlcnR5IGlzIHNl
dCB0byBUUlVFLCBjb3RpcmUgY3JlYXRlcyBhIG5ldyB0YXJnZXQgdGhhdCBjbGVhbiBhbGwgZmls
ZXMgKHVuaXR5IHNvdXJjZSwgcHJlZml4IGhlYWRlciwgcHJlY29tcGlsZWQgaGVhZGVyKS4iCisJ
CQkiVGhlIGNsZWFuIHRhcmdldCBuYW1lIHdpbGwgYmUgc2V0IHRvIHRoaXMgdGFyZ2V0J3MgbmFt
ZSB3aXRoIHRoZSBzdWZmaXggX2NsZWFuX2NvdGlyZSBhcHBlbmRlZC4iCisJCQkiSW5oZXJpdGVk
IGZyb20gZGlyZWN0b3J5LiIKKwkJCSJEZWZhdWx0cyB0byBGQUxTRS4iCisJKQorCisJZGVmaW5l
X3Byb3BlcnR5KAorCQlUQVJHRVQgUFJPUEVSVFkgIkNPVElSRV9QUkVGSVhfSEVBREVSX0lHTk9S
RV9QQVRIIiBJTkhFUklURUQKKwkJQlJJRUZfRE9DUyAiSWdub3JlIGhlYWRlcnMgZnJvbSB0aGVz
ZSBkaXJlY3RvcmllcyB3aGVuIGdlbmVyYXRpbmcgdGhlIHByZWZpeCBoZWFkZXIuIgorCQlGVUxM
X0RPQ1MKKwkJCSJUaGUgcHJvcGVydHkgY2FuIGJlIHNldCB0byBhIGxpc3Qgb2YgZGlyZWN0b3Jp
ZXMuIgorCQkJIklmIGEgaGVhZGVyIGZpbGUgaXMgZm91bmQgaW4gb25lIG9mIHRoZXNlIGRpcmVj
dG9yaWVzIG9yIHN1Yi1kaXJlY3RvcmllcywgaXQgd2lsbCBiZSBleGNsdWRlZCBmcm9tIHRoZSBn
ZW5lcmF0ZWQgcHJlZml4IGhlYWRlci4iCisJCQkiSW5oZXJpdGVkIGZyb20gZGlyZWN0b3J5LiIK
KwkJCSJJZiBub3Qgc2V0LCB0aGlzIHByb3BlcnR5IGlzIGluaXRpYWxpemVkIHRvIFwke0NNQUtF
X1NPVVJDRV9ESVJ9O1wke0NNQUtFX0JJTkFSWV9ESVJ9LiIKKwkpCisKKwlkZWZpbmVfcHJvcGVy
dHkoCisJCVRBUkdFVCBQUk9QRVJUWSAiQ09USVJFX1BSRUZJWF9IRUFERVJfSU5DTFVERV9QQVRI
IiBJTkhFUklURUQKKwkJQlJJRUZfRE9DUyAiSG9ub3IgaGVhZGVycyBmcm9tIHRoZXNlIGRpcmVj
dG9yaWVzIHdoZW4gZ2VuZXJhdGluZyB0aGUgcHJlZml4IGhlYWRlci4iCisJCUZVTExfRE9DUwor
CQkJIlRoZSBwcm9wZXJ0eSBjYW4gYmUgc2V0IHRvIGEgbGlzdCBvZiBkaXJlY3Rvcmllcy4iCisJ
CQkiSWYgYSBoZWFkZXIgZmlsZSBpcyBmb3VuZCBpbiBvbmUgb2YgdGhlc2UgZGlyZWN0b3JpZXMg
b3Igc3ViLWRpcmVjdG9yaWVzLCBpdCB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBnZW5lcmF0ZWQg
cHJlZml4IGhlYWRlci4iCisJCQkiSWYgYSBoZWFkZXIgZmlsZSBpcyBib3RoIHNlbGVjdGVkIGJ5
IENPVElSRV9QUkVGSVhfSEVBREVSX0lHTk9SRV9QQVRIIGFuZCBDT1RJUkVfUFJFRklYX0hFQURF
Ul9JTkNMVURFX1BBVEgsIgorCQkJInRoZSBvcHRpb24gd2hpY2ggeWllbGRzIHRoZSBjbG9zZXIg
cmVsYXRpdmUgcGF0aCBtYXRjaCB3aW5zLiIKKwkJCSJJbmhlcml0ZWQgZnJvbSBkaXJlY3Rvcnku
IgorCQkJIklmIG5vdCBzZXQsIHRoaXMgcHJvcGVydHkgaXMgaW5pdGlhbGl6ZWQgdG8gdGhlIGVt
cHR5IGxpc3QuIgorCSkKKworCWRlZmluZV9wcm9wZXJ0eSgKKwkJVEFSR0VUIFBST1BFUlRZICJD
T1RJUkVfUFJFRklYX0hFQURFUl9JTkNMVURFX1BSSU9SSVRZX1BBVEgiIElOSEVSSVRFRAorCQlC
UklFRl9ET0NTICJIZWFkZXIgcGF0aHMgbWF0Y2hpbmcgb25lIG9mIHRoZXNlIGRpcmVjdG9yaWVz
IGFyZSBwdXQgYXQgdGhlIHRvcCBvZiBwcmVmaXggaGVhZGVyLiIKKwkJRlVMTF9ET0NTCisJCQki
VGhlIHByb3BlcnR5IGNhbiBiZSBzZXQgdG8gYSBsaXN0IG9mIGRpcmVjdG9yaWVzLiIKKwkJCSJI
ZWFkZXIgZmlsZSBwYXRocyBtYXRjaGluZyBvbmUgb2YgdGhlc2UgZGlyZWN0b3JpZXMgd2lsbCBi
ZSBpbnNlcnRlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBnZW5lcmF0ZWQgcHJlZml4IGhlYWRl
ci4iCisJCQkiSGVhZGVyIGZpbGVzIGFyZSBzb3J0ZWQgYWNjb3JkaW5nIHRvIHRoZSBvcmRlciBv
ZiB0aGUgZGlyZWN0b3JpZXMgaW4gdGhlIHByb3BlcnR5LiIKKwkJCSJJZiBub3Qgc2V0LCB0aGlz
IHByb3BlcnR5IGlzIGluaXRpYWxpemVkIHRvIHRoZSBlbXB0eSBsaXN0LiIKKwkpCisKKwlkZWZp
bmVfcHJvcGVydHkoCisJCVRBUkdFVCBQUk9QRVJUWSAiQ09USVJFX1VOSVRZX1NPVVJDRV9QUkVf
VU5ERUZTIiBJTkhFUklURUQKKwkJQlJJRUZfRE9DUyAiUHJlcHJvY2Vzc29yIHVuZGVmcyB0byBw
bGFjZSBpbiB0aGUgZ2VuZXJhdGVkIHVuaXR5IHNvdXJjZSBmaWxlIGJlZm9yZSB0aGUgaW5jbHVz
aW9uIG9mIGVhY2ggdGFyZ2V0IHNvdXJjZSBmaWxlLiIKKwkJRlVMTF9ET0NTCisJCQkiVGhpcyBt
YXkgYmUgc2V0IHRvIGEgc2VtaWNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mIHByZXByb2Nlc3NvciBz
eW1ib2xzLiIKKwkJCSJjb3RpcmUgd2lsbCBhZGQgY29ycmVzcG9uZGluZyAjdW5kZWYgZGlyZWN0
aXZlcyB0byB0aGUgZ2VuZXJhdGVkIHVuaXQgc291cmNlIGZpbGUgYmVmb3JlIGVhY2ggdGFyZ2V0
IHNvdXJjZSBmaWxlLiIKKwkJCSJJbmhlcml0ZWQgZnJvbSBkaXJlY3RvcnkuIgorCQkJIkRlZmF1
bHRzIHRvIGVtcHR5IHN0cmluZy4iCisJKQorCisJZGVmaW5lX3Byb3BlcnR5KAorCQlUQVJHRVQg
UFJPUEVSVFkgIkNPVElSRV9VTklUWV9TT1VSQ0VfUE9TVF9VTkRFRlMiIElOSEVSSVRFRAorCQlC
UklFRl9ET0NTICJQcmVwcm9jZXNzb3IgdW5kZWZzIHRvIHBsYWNlIGluIHRoZSBnZW5lcmF0ZWQg
dW5pdHkgc291cmNlIGZpbGUgYWZ0ZXIgdGhlIGluY2x1c2lvbiBvZiBlYWNoIHRhcmdldCBzb3Vy
Y2UgZmlsZS4iCisJCUZVTExfRE9DUworCQkJIlRoaXMgbWF5IGJlIHNldCB0byBhIHNlbWljb2xv
bi1zZXBhcmF0ZWQgbGlzdCBvZiBwcmVwcm9jZXNzb3Igc3ltYm9scy4iCisJCQkiY290aXJlIHdp
bGwgYWRkIGNvcnJlc3BvbmRpbmcgI3VuZGVmIGRpcmVjdGl2ZXMgdG8gdGhlIGdlbmVyYXRlZCB1
bml0IHNvdXJjZSBmaWxlIGFmdGVyIGVhY2ggdGFyZ2V0IHNvdXJjZSBmaWxlLiIKKwkJCSJJbmhl
cml0ZWQgZnJvbSBkaXJlY3RvcnkuIgorCQkJIkRlZmF1bHRzIHRvIGVtcHR5IHN0cmluZy4iCisJ
KQorCisJZGVmaW5lX3Byb3BlcnR5KAorCQlUQVJHRVQgUFJPUEVSVFkgIkNPVElSRV9VTklUWV9T
T1VSQ0VfTUFYSU1VTV9OVU1CRVJfT0ZfSU5DTFVERVMiIElOSEVSSVRFRAorCQlCUklFRl9ET0NT
ICJNYXhpbXVtIG51bWJlciBvZiBzb3VyY2UgZmlsZXMgdG8gaW5jbHVkZSBpbiBhIHNpbmdsZSB1
bml0eSBzb3VyY2UgZmlsZS4iCisJCUZVTExfRE9DUworCQkJIlRoaXMgbWF5IGJlIHNldCB0byBh
biBpbnRlZ2VyID4gMC4iCisJCQkiSWYgYSB0YXJnZXQgY29udGFpbnMgbW9yZSB0aGFuIHRoYXQg
bnVtYmVyIG9mIHNvdXJjZSBmaWxlcywgY290aXJlIHdpbGwgY3JlYXRlIG11bHRpcGxlIHVuaXR5
IGJ1aWxkIGZpbGVzIGZvciBpdC4iCisJCQkiSWYgbm90IHNldCwgY290aXJlIHdpbGwgb25seSBj
cmVhdGUgYSBzaW5nbGUgdW5pdHkgc291cmNlIGZpbGUuIgorCQkJIkluaGVyaXRlZCBmcm9tIGRp
cmVjdG9yeS4iCisJCQkiRGVmYXVsdHMgdG8gZW1wdHkuIgorCSkKKworCWRlZmluZV9wcm9wZXJ0
eSgKKwkJVEFSR0VUIFBST1BFUlRZICJDT1RJUkVfPExBTkc+X1VOSVRZX1NPVVJDRV9JTklUIgor
CQlCUklFRl9ET0NTICJVc2VyIHByb3ZpZGVkIHVuaXR5IHNvdXJjZSBmaWxlIHRvIGJlIHVzZWQg
aW5zdGVhZCBvZiB0aGUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgb25lLiIKKwkJRlVMTF9ET0NT
CisJCQkiSWYgc2V0LCBjb3RpcmUgd2lsbCBvbmx5IGFkZCB0aGUgZ2l2ZW4gZmlsZShzKSB0byB0
aGUgZ2VuZXJhdGVkIHVuaXR5IHNvdXJjZSBmaWxlLiIKKwkJCSJJZiBub3Qgc2V0LCBjb3RpcmUg
d2lsbCBhZGQgYWxsIHRoZSB0YXJnZXQgc291cmNlIGZpbGVzIHRvIHRoZSBnZW5lcmF0ZWQgdW5p
dHkgc291cmNlIGZpbGUuIgorCQkJIlRoZSBwcm9wZXJ0eSBjYW4gYmUgc2V0IHRvIGEgdXNlciBw
cm92aWRlZCB1bml0eSBzb3VyY2UgZmlsZS4iCisJCQkiRGVmYXVsdHMgdG8gZW1wdHkuIgorCSkK
KworCWRlZmluZV9wcm9wZXJ0eSgKKwkJVEFSR0VUIFBST1BFUlRZICJDT1RJUkVfPExBTkc+X1BS
RUZJWF9IRUFERVJfSU5JVCIKKwkJQlJJRUZfRE9DUyAiVXNlciBwcm92aWRlZCBwcmVmaXggaGVh
ZGVyIGZpbGUgdG8gYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRl
ZCBvbmUuIgorCQlGVUxMX0RPQ1MKKwkJCSJJZiBzZXQsIGNvdGlyZSB3aWxsIGFkZCB0aGUgZ2l2
ZW4gaGVhZGVyIGZpbGUocykgdG8gdGhlIGdlbmVyYXRlZCBwcmVmaXggaGVhZGVyIGZpbGUuIgor
CQkJIklmIG5vdCBzZXQsIGNvdGlyZSB3aWxsIGdlbmVyYXRlIGEgcHJlZml4IGhlYWRlciBieSB0
cmFja2luZyB0aGUgaGVhZGVyIGZpbGVzIGluY2x1ZGVkIGJ5IHRoZSB1bml0eSBzb3VyY2UgZmls
ZS4iCisJCQkiVGhlIHByb3BlcnR5IGNhbiBiZSBzZXQgdG8gYSB1c2VyIHByb3ZpZGVkIHByZWZp
eCBoZWFkZXIgZmlsZSAoZS5nLiwgc3RkYWZ4LmgpLiIKKwkJCSJEZWZhdWx0cyB0byBlbXB0eS4i
CisJKQorCisJZGVmaW5lX3Byb3BlcnR5KAorCQlUQVJHRVQgUFJPUEVSVFkgIkNPVElSRV9VTklU
WV9MSU5LX0xJQlJBUklFU19JTklUIiBJTkhFUklURUQKKwkJQlJJRUZfRE9DUyAiRGVmaW5lIHN0
cmF0ZWd5IGZvciBzZXR0aW5nIHVwIHVuaXR5IHRhcmdldCdzIGxpbmsgbGlicmFyaWVzLiIKKwkJ
RlVMTF9ET0NTCisJCQkiSWYgdGhpcyBwcm9wZXJ0eSBpcyBlbXB0eSBvciBzZXQgdG8gTk9ORSwg
dGhlIGdlbmVyYXRlZCB1bml0eSB0YXJnZXQncyBsaW5rIGxpYnJhcmllcyBoYXZlIHRvIGJlIHNl
dCB1cCBtYW51YWxseS4iCisJCQkiSWYgdGhpcyBwcm9wZXJ0eSBpcyBzZXQgdG8gQ09QWSwgdGhl
IHVuaXR5IHRhcmdldCdzIGxpbmsgbGlicmFyaWVzIHdpbGwgYmUgY29waWVkIGZyb20gdGhpcyB0
YXJnZXQuIgorCQkJIklmIHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvIENPUFlfVU5JVFksIHRoZSB1
bml0eSB0YXJnZXQncyBsaW5rIGxpYnJhcmllcyB3aWxsIGJlIGNvcGllZCBmcm9tIHRoaXMgdGFy
Z2V0IHdpdGggY29uc2lkZXJpbmcgZXhpc3RpbmcgdW5pdHkgdGFyZ2V0cy4iCisJCQkiSW5oZXJp
dGVkIGZyb20gZGlyZWN0b3J5LiIKKwkJCSJEZWZhdWx0cyB0byBlbXB0eS4iCisJKQorCisJZGVm
aW5lX3Byb3BlcnR5KAorCQlUQVJHRVQgUFJPUEVSVFkgIkNPVElSRV88TEFORz5fVU5JVFlfU09V
UkNFIgorCQlCUklFRl9ET0NTICJSZWFkLW9ubHkgcHJvcGVydHkuIFRoZSBnZW5lcmF0ZWQgPExB
Tkc+IHVuaXR5IHNvdXJjZSBmaWxlKHMpLiIKKwkJRlVMTF9ET0NTCisJCQkiY290aXJlIHNldHMg
dGhpcyBwcm9wZXJ0eSB0byB0aGUgcGF0aCBvZiB0aGUgZ2VuZXJhdGVkIDxMQU5HPiBzaW5nbGUg
Y29tcHV0YXRpb24gdW5pdCBzb3VyY2UgZmlsZSBmb3IgdGhlIHRhcmdldC4iCisJCQkiRGVmYXVs
dHMgdG8gZW1wdHkgc3RyaW5nLiIKKwkpCisKKwlkZWZpbmVfcHJvcGVydHkoCisJCVRBUkdFVCBQ
Uk9QRVJUWSAiQ09USVJFXzxMQU5HPl9QUkVGSVhfSEVBREVSIgorCQlCUklFRl9ET0NTICJSZWFk
LW9ubHkgcHJvcGVydHkuIFRoZSBnZW5lcmF0ZWQgPExBTkc+IHByZWZpeCBoZWFkZXIgZmlsZS4i
CisJCUZVTExfRE9DUworCQkJImNvdGlyZSBzZXRzIHRoaXMgcHJvcGVydHkgdG8gdGhlIGZ1bGwg
cGF0aCBvZiB0aGUgZ2VuZXJhdGVkIDxMQU5HPiBsYW5ndWFnZSBwcmVmaXggaGVhZGVyIGZvciB0
aGUgdGFyZ2V0LiIKKwkJCSJEZWZhdWx0cyB0byBlbXB0eSBzdHJpbmcuIgorCSkKKworCWRlZmlu
ZV9wcm9wZXJ0eSgKKwkJVEFSR0VUIFBST1BFUlRZICJDT1RJUkVfPExBTkc+X1BSRUNPTVBJTEVE
X0hFQURFUiIKKwkJQlJJRUZfRE9DUyAiUmVhZC1vbmx5IHByb3BlcnR5LiBUaGUgZ2VuZXJhdGVk
IDxMQU5HPiBwcmVjb21waWxlZCBoZWFkZXIgZmlsZS4iCisJCUZVTExfRE9DUworCQkJImNvdGly
ZSBzZXRzIHRoaXMgcHJvcGVydHkgdG8gdGhlIGZ1bGwgcGF0aCBvZiB0aGUgZ2VuZXJhdGVkIDxM
QU5HPiBsYW5ndWFnZSBwcmVjb21waWxlZCBoZWFkZXIgYmluYXJ5IGZvciB0aGUgdGFyZ2V0LiIK
KwkJCSJEZWZhdWx0cyB0byBlbXB0eSBzdHJpbmcuIgorCSkKKworCWRlZmluZV9wcm9wZXJ0eSgK
KwkJVEFSR0VUIFBST1BFUlRZICJDT1RJUkVfVU5JVFlfVEFSR0VUX05BTUUiCisJCUJSSUVGX0RP
Q1MgIlRoZSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgdW5pdHkgYnVpbGQgdGFyZ2V0IGNvcnJlc3Bv
bmRpbmcgdG8gdGhpcyB0YXJnZXQuIgorCQlGVUxMX0RPQ1MKKwkJCSJUaGlzIHByb3BlcnR5IGNh
biBiZSBzZXQgdG8gdGhlIGRlc2lyZWQgbmFtZSBvZiB0aGUgdW5pdHkgdGFyZ2V0IHRoYXQgd2ls
bCBiZSBjcmVhdGVkIGJ5IGNvdGlyZS4iCisJCQkiSWYgbm90IHNldCwgdGhlIHVuaXR5IHRhcmdl
dCBuYW1lIHdpbGwgYmUgc2V0IHRvIHRoaXMgdGFyZ2V0J3MgbmFtZSB3aXRoIHRoZSBzdWZmaXgg
X3VuaXR5IGFwcGVuZGVkLiIKKwkJCSJBZnRlciB0aGlzIHRhcmdldCBoYXMgYmVlbiBwcm9jZXNz
ZWQgYnkgY290aXJlLCB0aGUgcHJvcGVydHkgaXMgc2V0IHRvIHRoZSBhY3R1YWwgbmFtZSBvZiB0
aGUgZ2VuZXJhdGVkIHVuaXR5IHRhcmdldC4iCisJCQkiRGVmYXVsdHMgdG8gZW1wdHkgc3RyaW5n
LiIKKwkpCisKKwkjIGRlZmluZSBjb3RpcmUgc291cmNlIHByb3BlcnRpZXMKKworCWRlZmluZV9w
cm9wZXJ0eSgKKwkJU09VUkNFIFBST1BFUlRZICJDT1RJUkVfRVhDTFVERUQiCisJCUJSSUVGX0RP
Q1MgIkRvIG5vdCBtb2RpZnkgc291cmNlIGZpbGUncyBidWlsZCBjb21tYW5kLiIKKwkJRlVMTF9E
T0NTCisJCQkiSWYgdGhpcyBwcm9wZXJ0eSBpcyBzZXQgdG8gVFJVRSwgdGhlIHNvdXJjZSBmaWxl
J3MgYnVpbGQgY29tbWFuZCB3aWxsIG5vdCBiZSBtb2RpZmllZCB0byBtYWtlIHVzZSBvZiB0aGUg
cHJlY29tcGlsZWQgaGVhZGVyLiIKKwkJCSJUaGUgc291cmNlIGZpbGUgd2lsbCBhbHNvIGJlIGV4
Y2x1ZGVkIGZyb20gdGhlIGdlbmVyYXRlZCB1bml0eSBzb3VyY2UgZmlsZS4iCisJCQkiU291cmNl
IGZpbGVzIHRoYXQgaGF2ZSB0aGVpciBDT01QSUxFX0ZMQUdTIHByb3BlcnR5IHNldCB3aWxsIGJl
IGV4Y2x1ZGVkIGJ5IGRlZmF1bHQuIgorCQkJIkRlZmF1bHRzIHRvIEZBTFNFLiIKKwkpCisKKwlk
ZWZpbmVfcHJvcGVydHkoCisJCVNPVVJDRSBQUk9QRVJUWSAiQ09USVJFX0RFUEVOREVOQ1kiCisJ
CUJSSUVGX0RPQ1MgIkFkZCB0aGlzIHNvdXJjZSBmaWxlIHRvIGRlcGVuZGVuY2llcyBvZiB0aGUg
YXV0b21hdGljYWxseSBnZW5lcmF0ZWQgcHJlZml4IGhlYWRlciBmaWxlLiIKKwkJRlVMTF9ET0NT
CisJCQkiSWYgdGhpcyBwcm9wZXJ0eSBpcyBzZXQgdG8gVFJVRSwgdGhlIHNvdXJjZSBmaWxlIGlz
IGFkZGVkIHRvIGRlcGVuZGVuY2llcyBvZiB0aGUgZ2VuZXJhdGVkIHByZWZpeCBoZWFkZXIgZmls
ZS4iCisJCQkiSWYgdGhlIGZpbGUgaXMgbW9kaWZpZWQsIGNvdGlyZSB3aWxsIHJlLWdlbmVyYXRl
IHRoZSBwcmVmaXggaGVhZGVyIHNvdXJjZSB1cG9uIGJ1aWxkLiIKKwkJCSJEZWZhdWx0cyB0byBG
QUxTRS4iCisJKQorCisJZGVmaW5lX3Byb3BlcnR5KAorCQlTT1VSQ0UgUFJPUEVSVFkgIkNPVElS
RV9VTklUWV9TT1VSQ0VfUFJFX1VOREVGUyIKKwkJQlJJRUZfRE9DUyAiUHJlcHJvY2Vzc29yIHVu
ZGVmcyB0byBwbGFjZSBpbiB0aGUgZ2VuZXJhdGVkIHVuaXR5IHNvdXJjZSBmaWxlIGJlZm9yZSB0
aGUgaW5jbHVzaW9uIG9mIHRoaXMgc291cmNlIGZpbGUuIgorCQlGVUxMX0RPQ1MKKwkJCSJUaGlz
IG1heSBiZSBzZXQgdG8gYSBzZW1pY29sb24tc2VwYXJhdGVkIGxpc3Qgb2YgcHJlcHJvY2Vzc29y
IHN5bWJvbHMuIgorCQkJImNvdGlyZSB3aWxsIGFkZCBjb3JyZXNwb25kaW5nICN1bmRlZiBkaXJl
Y3RpdmVzIHRvIHRoZSBnZW5lcmF0ZWQgdW5pdCBzb3VyY2UgZmlsZSBiZWZvcmUgdGhpcyBmaWxl
IGlzIGluY2x1ZGVkLiIKKwkJCSJEZWZhdWx0cyB0byBlbXB0eSBzdHJpbmcuIgorCSkKKworCWRl
ZmluZV9wcm9wZXJ0eSgKKwkJU09VUkNFIFBST1BFUlRZICJDT1RJUkVfVU5JVFlfU09VUkNFX1BP
U1RfVU5ERUZTIgorCQlCUklFRl9ET0NTICJQcmVwcm9jZXNzb3IgdW5kZWZzIHRvIHBsYWNlIGlu
IHRoZSBnZW5lcmF0ZWQgdW5pdHkgc291cmNlIGZpbGUgYWZ0ZXIgdGhlIGluY2x1c2lvbiBvZiB0
aGlzIHNvdXJjZSBmaWxlLiIKKwkJRlVMTF9ET0NTCisJCQkiVGhpcyBtYXkgYmUgc2V0IHRvIGEg
c2VtaWNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mIHByZXByb2Nlc3NvciBzeW1ib2xzLiIKKwkJCSJj
b3RpcmUgd2lsbCBhZGQgY29ycmVzcG9uZGluZyAjdW5kZWYgZGlyZWN0aXZlcyB0byB0aGUgZ2Vu
ZXJhdGVkIHVuaXQgc291cmNlIGZpbGUgYWZ0ZXIgdGhpcyBmaWxlIGlzIGluY2x1ZGVkLiIKKwkJ
CSJEZWZhdWx0cyB0byBlbXB0eSBzdHJpbmcuIgorCSkKKworCWRlZmluZV9wcm9wZXJ0eSgKKwkJ
U09VUkNFIFBST1BFUlRZICJDT1RJUkVfU1RBUlRfTkVXX1VOSVRZX1NPVVJDRSIKKwkJQlJJRUZf
RE9DUyAiU3RhcnQgYSBuZXcgdW5pdHkgc291cmNlIGZpbGUgd2hpY2ggaW5jbHVkZXMgdGhpcyBz
b3VyY2UgZmlsZSBhcyB0aGUgZmlyc3Qgb25lLiIKKwkJRlVMTF9ET0NTCisJCQkiSWYgdGhpcyBw
cm9wZXJ0eSBpcyBzZXQgdG8gVFJVRSwgY290aXJlIHdpbGwgY29tcGxldGUgdGhlIGN1cnJlbnQg
dW5pdHkgZmlsZSBhbmQgc3RhcnQgYSBuZXcgb25lLiIKKwkJCSJUaGUgbmV3IHVuaXR5IHNvdXJj
ZSBmaWxlIHdpbGwgaW5jbHVkZSB0aGlzIHNvdXJjZSBmaWxlIGFzIHRoZSBmaXJzdCBvbmUuIgor
CQkJIlRoaXMgcHJvcGVydHkgZXNzZW50aWFsbHkgd29ya3MgYXMgYSBzZXBhcmF0b3IgZm9yIHVu
aXR5IHNvdXJjZSBmaWxlcy4iCisJCQkiRGVmYXVsdHMgdG8gRkFMU0UuIgorCSkKKworCWRlZmlu
ZV9wcm9wZXJ0eSgKKwkJU09VUkNFIFBST1BFUlRZICJDT1RJUkVfVEFSR0VUIgorCQlCUklFRl9E
T0NTICJSZWFkLW9ubHkgcHJvcGVydHkuIE1hcmsgdGhpcyBzb3VyY2UgZmlsZSBhcyBjb3RpcmVk
IGZvciB0aGUgZ2l2ZW4gdGFyZ2V0LiIKKwkJRlVMTF9ET0NTCisJCQkiY290aXJlIHNldHMgdGhp
cyBwcm9wZXJ0eSB0byB0aGUgbmFtZSBvZiB0YXJnZXQsIHRoYXQgdGhlIHNvdXJjZSBmaWxlJ3Mg
YnVpbGQgY29tbWFuZCBoYXMgYmVlbiBhbHRlcmVkIGZvci4iCisJCQkiRGVmYXVsdHMgdG8gZW1w
dHkgc3RyaW5nLiIKKwkpCisKKwltZXNzYWdlIChTVEFUVVMgImNvdGlyZSAke0NPVElSRV9DTUFL
RV9NT0RVTEVfVkVSU0lPTn0gbG9hZGVkLiIpCisKK2VuZGlmKCkKZGlmZiAtLWdpdCBhL0NNYWtl
TGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggMWRiZDE2ZTY0MjUxMzk0YTZlNGMzYzIw
ZTM1OTQ5NGY5NWZjY2M4Yi4uNmNiYTU5NmZkOTMxYmI1NzI2MGFlZDM3N2E4OTFkNmQ3YmMyYmJl
MSAxMDA2NDQKLS0tIGEvQ01ha2VMaXN0cy50eHQKKysrIGIvQ01ha2VMaXN0cy50eHQKQEAgLTMs
NiArMywxMCBAQCBwcm9qZWN0KFdlYktpdCkKIAogc2V0KENNQUtFX01PRFVMRV9QQVRIICIke0NN
QUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9jbWFrZSIpCiAKK2lmIChERUZJTkVEIEVOQUJMRV9QUkVD
T01QSUxFRF9IRUFERVJTIEFORCBFTkFCTEVfUFJFQ09NUElMRURfSEVBREVSUykKKyAgICBpbmNs
dWRlKGNvdGlyZSkKK2VuZGlmICgpCisKIHNldChFTkFCTEVfV0VCQ09SRSBPTikKIAogaWYgKE5P
VCBERUZJTkVEIEVOQUJMRV9XRUJLSVQpCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VM
b2cKaW5kZXggMmI2YTQ0NGQwMjYzOWMxYTJiOTg2M2JlZDAxOGUxZGE2NzYzMTA3Ni4uZGEyYTFk
ZjQxMjllNWU1MjIxZGQxMDhjYjNmMjZlY2RhYTFhOWU3NyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9n
CisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTA5LTAxICBBZHJpYW4gUGVy
ZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0NNYWtlXSBFbmFi
bGUgcHJlLWNvbXBpbGVkIGhlYWRlcnMgKFBDSCkgKGNvdGlyZSkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQzOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB1c2lu
ZyBDb3RpcmUgKGh0dHBzOi8vZ2l0aHViLmNvbS9zYWtyYS9jb3RpcmUvKSB0byBnZW5lcmF0ZSBh
bmQKKyAgICAgICAgdXNlIHByZWNvbXBpbGVkIGhlYWRlcnMgd2hpbGUgYnVpbGRpbmcuIFRoZSBm
ZWF0dXJlIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuIEluIG9yZGVyCisgICAgICAgIHRvIGVuYWJs
ZSwgcGFzcyAiLURFTkFCTEVfUFJFQ09NUElMRURfSEVBREVSUz1UUlVFIiB0byBDTWFrZSwgZWl0
aGVyIGRpcmVjdGx5IG9yIHVzaW5nCisgICAgICAgICJ3ZWJraXQtYnVpbGQgLS1jbWFrZWFyZ3M9
Jy1ERU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUlM9VFJVRSciIGZvciBkZXZlbG9wbWVudCBidWls
ZHMuCisKKyAgICAgICAgUHJlY29tcGlsZWQgaGVhZGVyIGFyZSBnZW5lcmF0ZWQgZm9yIEphdmFT
Y3JpcHRDb3JlIGFuZCBXZWJDb3JlIGZyb20gdGhlIHByZXByb2Nlc3NlZAorICAgICAgICBvdXRw
dXQgb2YgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmggYW5kIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaCwKKyAgICAgICAgcmVzcGVjdGl2ZWx5LiBUaGlz
IGFwcHJvYWNoIGlzIHByZWZlcnJlZCBvdmVyIGxldHRpbmcgQ290aXJlIGdlbmVyYXRlIG9uZSBh
dXRvbWF0aWNhbGx5LAorICAgICAgICB3aGljaCBpcyBmZWVibGUgYW5kIHJlc3VsdHMgaW4gYnVp
bGQgZmFpbHVyZXMgaW4gV2ViQ29yZS4gVGhlIHByZWZpeCBoZWFkZXJzIGluY2x1ZGUKKyAgICAg
ICAgb3RoZXIgaGVhZGVycyB3aGljaCBhcmUgdW5saWtlbHkgdG8gY2hhbmdlOiBzeXN0ZW0gaGVh
ZGVycywgYW5kIHRob3NlIGluIHRoZSBKSEJ1aWxkCisgICAgICAgIGlmIHByZXNlbnQuIFRoYXQg
bWVhbnMgdGhhdCBzdWJwcm9qZWN0IGhlYWRlcnMgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgcHJl
Y29tcGlsZWQKKyAgICAgICAgaGVhZGVyIChlLmcuIHRoZSBwcmVjb21waWxlZCBoZWFkZXIgdXNl
ZCBmb3IgV2ViQ29yZSBkb2VzIG5vdCAjaW5jbHVkZSBoZWFkZXJzIGZyb20KKyAgICAgICAgSmF2
YVNjcmlwdENvcmUpLCB3aGljaCBpcyBzb21ldGhpbmcgbGVmdCB0byBpbnZlc3RpZ2F0ZSBpbiBh
IHBvdGVudGlhbCBmb2xsb3ctdXAgcGF0Y2guCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDog
SW5jbHVkZSB0aGUgY290aXJlLmNtYWtlIHNuaXBwZXQuCisgICAgICAgICogU291cmNlL2NtYWtl
L2NvdGlyZS5jbWFrZTogQWRkZWQuCisKIDIwMTctMDgtMzEgIERvbiBPbG1zdGVhZCAgPGRvbi5v
bG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBbQ01ha2VdIE1ha2UgVVNFX0NGIGNvbmRpdGlv
bmFsIHdpdGhpbiBXaW5kb3dzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319687</attachid>
            <date>2017-09-01 20:30:03 -0700</date>
            <delta_ts>2017-09-02 07:14:59 -0700</delta_ts>
            <desc>Alternative take, reusing existing macro</desc>
            <filename>bug-139438-20170902063001.patch</filename>
            <type>text/plain</type>
            <size>11238</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MjJkY2Q5NGU4ZWZjMTQ3YTUyYzFmODJmMjQzOTE4MjFhYWMwNDMxLi44NjdjNDcxYTU3MTgyN2Y2
YmYyYzFjODI2MmY2MTExNjMxZjg1ZWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wOS0wMSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJz
IChQQ0gpIChjb3RpcmUpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBVc2UgSmF2YVNjcmlwdENvcmVQcmVmaXguaCB0byBn
ZW5lcmF0ZSBhIHByZWNvbXBpbGVkIGhlYWRlci4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlUHJlZml4LmNwcDogQWRkZWQuCisKIDIwMTctMDkt
MDEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0ZU
TF0gRlRMIGFsbG9jYXRpb24gZm9yIGFzeW5jIEZ1bmN0aW9uIGlzIGluY29ycmVjdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDcxMzI3ZDQ3MGE0MTRhMDdlNDE4NWZhZDliNzYxNzFhOTAwZWQxOGYuLjUwYjFjYmJk
MWQ3YWY5N2M1MDcwYzNkM2E1OWJmMjAwNGQwMDI1YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxNy0wOS0wMSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gp
IChjb3RpcmUpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgbmVlZGVkLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IFVzZSBX
ZWJDb3JlUHJlZml4LmggdG8gZ2VuZXJhdGUgYSBwcmVjb21waWxlZCBoZWFkZXIuCisgICAgICAg
ICogV2ViQ29yZVByZWZpeC5oOiBBZGQgaW5jbHVkZXMgZm9yIHRoZSBHVEsgYW5kIFdQRSBwb3J0
cywgZ3VhcmRlZCBhY2NvcmRpbmdseS4KKwogMjAxNy0wOS0wMSAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICB0cmFuc2Zvcm1DYW5MaWtlbHlVc2VGYXN0
UGF0aCgpIGNhbiByZWFkIG9mZiB0aGUgZW5kIG9mIGEgc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk5OWE5
OGRiZmU2ZGM3NTAwZWU0MmUxYTA2NjEwODk2OGY3MjAzYmEuLmNlNjZjYzViZGMwNzFlMzM4ZGYy
Njg1ZTU5MjAxODRhYWYxMTNmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDkt
MDEgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbQ01ha2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKSAoY290aXJlKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBXZWJLaXQyUHJlZml4Lmg6CisKIDIwMTctMDktMDEgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXBsYWNlIFdL
VUlEZWxlZ2F0ZVByaXZhdGUncyBpc1BsYXlpbmdNZWRpYURpZENoYW5nZSB3aXRoIEtWTyBfaXNQ
bGF5aW5nQXVkaW8gb24gV0tXZWJWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggZGExYmExZDliZTE1N2I1ODNjODEwNzhiYWRiZWZkZWFkNWJiMjBmYS4uOThkNzZjNzE3
ZWZkYmVhNGMyM2ZiNjJjOTljYjY2N2IwODExZmIyYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtMTYwMywzICsxNjAzLDUgQEAgaWYgKE1TVkMpCiAgICAgICAgIENPTU1B
TkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCS0lUX0xJQlJBUklFU19ESVJ9L3Rvb2xzL3Njcmlw
dHMvdmVyc2lvbi1zdGFtcC5wbCAke0RFUklWRURfU09VUkNFU19ESVJ9ICQ8VEFSR0VUX0ZJTEU6
SmF2YVNjcmlwdENvcmU+CiAgICAgICAgIFZFUkJBVElNKQogZW5kaWYgKCkKKworV0VCS0lUX0FE
RF9QUkVDT01QSUxFRF9IRUFERVIoIkphdmFTY3JpcHRDb3JlUHJlZml4LmgiICJKYXZhU2NyaXB0
Q29yZVByZWZpeC5jcHAiIEphdmFTY3JpcHRDb3JlX1NPVVJDRVMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXguY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjc1NTBmYjQz
YjA4OGViMzc0NTEwMGQwNWZkZmEzYzk3YmZiYTM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmNwcApAQCAtMCwwICsxIEBACisj
aW5jbHVkZSAiSmF2YVNjcmlwdENvcmVQcmVmaXguaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
ZDI0Nzg2M2I1Y2MyMmM0YmUyNzFhZWZkMmRhN2FkMjQzOTMxNzk3ZS4uZjhkOWEzMTQ4M2JjMzdj
NDEzNDZhYmUwMWNhNGIyNDQ4MzQwMDViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQwMDEs
MTAgKzQwMDEsOCBAQCBXRUJLSVRfV1JBUF9TT1VSQ0VMSVNUKCR7V2ViQ29yZV9JRExfRklMRVN9
ICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVN9KQogV0VCS0lUX1dSQVBfU09VUkNFTElTVCgke1dl
YkNvcmVfU09VUkNFU30pCiBXRUJLSVRfV1JBUF9TT1VSQ0VMSVNUKCR7V2ViQ29yZVRlc3RTdXBw
b3J0X0lETF9GSUxFU30gJHtXZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNFU30pCiAKLWlmIChNU1ZD
KQotICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJDb3JlUHJlZml4LmgiICJX
ZWJDb3JlUHJlZml4LmNwcCIgV2ViQ29yZV9TT1VSQ0VTKQotICAgIFdFQktJVF9BRERfUFJFQ09N
UElMRURfSEVBREVSKCJXZWJDb3JlUHJlZml4LmgiICJXZWJDb3JlRGVyaXZlZFNvdXJjZXNQcmVm
aXguY3BwIiBXZWJDb3JlX0RFUklWRURfU09VUkNFUykKLWVuZGlmICgpCitXRUJLSVRfQUREX1BS
RUNPTVBJTEVEX0hFQURFUigiV2ViQ29yZVByZWZpeC5oIiAiV2ViQ29yZVByZWZpeC5jcHAiIFdl
YkNvcmVfU09VUkNFUykKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJDb3JlUHJl
Zml4LmgiICJXZWJDb3JlRGVyaXZlZFNvdXJjZXNQcmVmaXguY3BwIiBXZWJDb3JlX0RFUklWRURf
U09VUkNFUykKIAogIyBUaGlzIGlzIHNwbGl0IGludG8gYSBzZXBhcmF0ZSBsaWJyYXJ5IGFzIGEg
d29ya2Fyb3VuZCBmb3IgY29tbWFuZCBsaW5lIGxlbmd0aAogIyBsaW1pdHMuIFRoaXMgc2hvdWxk
IG5vIGxvbmdlciBiZSBuZWVkZWQgd2hlbiBDTWFrZSBzdXBwb3J0cyBOaW5qYSByZXNwb25zZQpA
QCAtNDAzOCw5ICs0MDM2LDcgQEAgaWYgKENNQUtFX0NPTVBJTEVSX0lTX0dOVUNYWCBBTkQgIiR7
TE9XRVJDQVNFX0NNQUtFX0hPU1RfU1lTVEVNX1BST0NFU1NPUn0iIE1BVEMKICAgICBXRUJLSVRf
QUREX1RBUkdFVF9DWFhfRkxBR1MoV2ViQ29yZSAtZm5vLXRyZWUtc3JhKQogZW5kaWYgKCkKIAot
aWYgKE1TVkMpCi0gICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYkNvcmVUZXN0
U3VwcG9ydFByZWZpeC5oIiAidGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguY3Bw
IiBXZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNFUykKLWVuZGlmICgpCitXRUJLSVRfQUREX1BSRUNP
TVBJTEVEX0hFQURFUigiV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgiICJ0ZXN0aW5nL2pzL1dl
YkNvcmVUZXN0U3VwcG9ydFByZWZpeC5jcHAiIFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTKQog
CiBhZGRfbGlicmFyeShXZWJDb3JlVGVzdFN1cHBvcnQgJHtXZWJDb3JlVGVzdFN1cHBvcnRfTElC
UkFSWV9UWVBFfSAke1dlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTfSkKIGFkZF9kZXBlbmRlbmNp
ZXMoV2ViQ29yZVRlc3RTdXBwb3J0IFdlYkNvcmUgV2ViQ29yZVRlc3RTdXBwb3J0QmluZGluZ3Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmggYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlUHJlZml4LmgKaW5kZXggNjFhNTlhNWQxNDRhYzU2MzcyNDI5NDE1MTVkZDFm
ZDI0MGVjY2MwZC4uYzFjZTZmM2NmNTMxZGZmYWZmODY0NmFhOWRkZmNkODNhODUxOWUwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmVQcmVmaXguaApAQCAtMTI1LDYgKzEyNSwyOSBAQAogCiAjaWYgUExBVEZPUk0o
V0lOX0NBSVJPKQogI2luY2x1ZGUgPHdpbmRvd3MuaD4KKworI2VsaWYgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCisKKyNpZiBVU0UoQ0FJUk8pCisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8u
aD4KKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8Z2xpYi5oPgorI2VuZGlmCisK
KyNpZiBVU0UoU09VUCkKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNlbmRpZgorCisjaWYg
VVNFKExJQkVQT1hZKQorI2luY2x1ZGUgPGVwb3h5Lmg+CisjZW5kaWYKKworI2lmIFVTRShHU1RS
RUFNRVIpCisjaW5jbHVkZSA8Z3N0L2dzdC5oPgorI2VuZGlmCisKICNlbHNlCiAKICNpZiBPUyhX
SU5ET1dTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggOTZhYTRkNDIyN2FhMDFhNzA5ZWYxM2M3NGZm
ZWY5ODVmZWJjMDhkNC4uY2NlMzJlMDBhNWUwN2E1MTJiMmI0OGYyNmFmN2ZiNThlYjZmNDlkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0NNYWtlTGlzdHMudHh0CkBAIC05OTcsMyArOTk3LDcgQEAgZWxzZSAoKQogICAgICAgICBS
VU5USU1FIERFU1RJTkFUSU9OICIke0xJQkVYRUNfSU5TVEFMTF9ESVJ9IgogICAgICkKIGVuZGlm
ICgpCisKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXQyUHJlZml4LmgiICJX
ZWJLaXQyUHJlZml4LmNwcCIgV2ViS2l0Ml9TT1VSQ0VTKQorV0VCS0lUX0FERF9QUkVDT01QSUxF
RF9IRUFERVIoIldlYktpdDJQcmVmaXguaCIgIldlYktpdDJQcmVmaXguY3BwIiBXZWJQcm9jZXNz
X1NPVVJDRVMpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0MlByZWZpeC5o
IiAiV2ViS2l0MlByZWZpeC5jcHAiIE5ldHdvcmtQcm9jZXNzX1NPVVJDRVMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaCBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0MlBy
ZWZpeC5oCmluZGV4IDcyMWNiZDViNGU2OTdmYTBiNzNjMDU2OTM0MmMxOTQ0OTM0NzcwNjcuLjNi
OWRkNzFlNzg3Y2I3MzllZDFkN2RiNTU5YjUxZjFmMWIzZDBhYjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0MlByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0MlByZWZp
eC5oCkBAIC01Nyw2ICs1NywzMSBAQAogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
UEUpCiAjZGVmaW5lIEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UgMQorCisjaWYgVVNFKENBSVJP
KQorI2luY2x1ZGUgPGNhaXJvL2NhaXJvLmg+CisjZW5kaWYKKworI2lmIFVTRShHTElCKQorI2lu
Y2x1ZGUgPGdsaWIuaD4KKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisjaW5jbHVkZSA8bGlic291
cC9zb3VwLmg+CisjZW5kaWYKKworI2lmIFVTRShMSUJFUE9YWSkKKyNpbmNsdWRlIDxlcG94eS5o
PgorI2VuZGlmCisKKyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNl
bmRpZgorCisjaWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNlbmRpZgor
CiAjZW5kaWYKIAogLyogV2hlbiBDKysgZXhjZXB0aW9ucyBhcmUgZGlzYWJsZWQsIHRoZSBDKysg
bGlicmFyeSBkZWZpbmVzIHx0cnl8IGFuZCB8Y2F0Y2h8CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21h
a2UvV2ViS2l0TWFjcm9zLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQpp
bmRleCA3YmM4OTU0MzhmMWJkYmI5ZWViZmQ1YzdlYzNkZTIxN2I3NjVlMjRiLi40YWY4MGJkNzU3
MTg5M2ZkZDJkN2NkMzNlNGVhZGU3OTUwMWU0MTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2Uv
V2ViS2l0TWFjcm9zLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UK
QEAgLTI5LDEyICsyOSwxMiBAQCBtYWNybyhXRUJLSVRfQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMg
X3NvdXJjZSBfZGVwcykKIGVuZG1hY3JvKCkKIAogbWFjcm8oV0VCS0lUX0FERF9QUkVDT01QSUxF
RF9IRUFERVIgX2hlYWRlciBfY3BwIF9zb3VyY2UpCisgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVu
dChQcmVjb21waWxlZEJhc2VuYW1lICR7X2NwcH0gTkFNRV9XRSkKKyAgICBmaWxlKE1BS0VfRElS
RUNUT1JZICIke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vJHtfc291cmNlfSIpCisgICAgc2V0
KF9zb3VyY2VzICR7JHtfc291cmNlfX0pCisKICAgICBpZiAoTVNWQykKLSAgICAgICAgZ2V0X2Zp
bGVuYW1lX2NvbXBvbmVudChQcmVjb21waWxlZEJhc2VuYW1lICR7X2NwcH0gTkFNRV9XRSkKLSAg
ICAgICAgZmlsZShNQUtFX0RJUkVDVE9SWSAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7
X3NvdXJjZX0iKQogICAgICAgICBzZXQoUHJlY29tcGlsZWRCaW5hcnkgIiR7Q01BS0VfQ1VSUkVO
VF9CSU5BUllfRElSfS8ke19zb3VyY2V9LyR7UHJlY29tcGlsZWRCYXNlbmFtZX0ucGNoIikKLSAg
ICAgICAgc2V0KF9zb3VyY2VzICR7JHtfc291cmNlfX0pCi0KICAgICAgICAgIyBjbGFuZy1jbCBy
ZXF1aXJlcyAvRkkgd2l0aCAvWWMKICAgICAgICAgaWYgKENPTVBJTEVSX0lTX0NMQU5HX0NMKQog
ICAgICAgICAgICAgc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7X2NwcH0KQEAgLTUzLDYg
KzUzLDMzIEBAIG1hY3JvKFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSIF9oZWFkZXIgX2Nw
cCBfc291cmNlKQogICAgICAgICBlbmRmb3JlYWNoICgpCiAKICAgICAgICAgbGlzdChBUFBFTkQg
JHtfc291cmNlfSAke19jcHB9KQorICAgIGVsc2VpZiAoREVGSU5FRCBFTkFCTEVfUFJFQ09NUElM
RURfSEVBREVSUyBBTkQgRU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUlMgQU5EIENPTVBJTEVSX0lT
X0dDQ19PUl9DTEFORykKKyAgICAgICAgaWYgKENPTVBJTEVSX0lTX0NMQU5HKQorICAgICAgICAg
ICAgc2V0KFByZWNvbXBpbGVkQmluYXJ5ICIke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vJHtQ
cmVjb21waWxlZEJhc2VuYW1lfS5oLnBjaCIpCisgICAgICAgIGVsc2UgKCkKKyAgICAgICAgICAg
IHNldChQcmVjb21waWxlZEJpbmFyeSAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7UHJl
Y29tcGlsZWRCYXNlbmFtZX0uaC5nY2giKQorICAgICAgICBlbmRpZiAoKQorCisgICAgICAgIG1l
c3NhZ2UoU1RBVFVTICJDb25maWd1cmluZyBQQ0g6ICR7X2hlYWRlcn0iKQorCisgICAgICAgIHNl
dF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygke19jcHB9CisgICAgICAgICAgICBQUk9QRVJUSUVT
IENPTVBJTEVfRkxBR1MgIi1pbmNsdWRlIFwiJHtfaGVhZGVyfVwiIgorICAgICAgICAgICAgT0JK
RUNUX09VVFBVVFMgIiR7UHJlY29tcGlsZWRCaW5hcnl9IikKKyAgICAgICAgc2V0X3NvdXJjZV9m
aWxlc19wcm9wZXJ0aWVzKCR7X3NvdXJjZXN9CisgICAgICAgICAgICBQUk9QRVJUSUVTIENPTVBJ
TEVfRkxBR1MgIi1pbmNsdWRlIFwiJHtfaGVhZGVyfVwiIikKKworICAgICAgICBmb3JlYWNoIChf
c3JjICR7X3NvdXJjZXN9KQorICAgICAgICAgICAgV0VCS0lUX0FERF9TT1VSQ0VfREVQRU5ERU5D
SUVTKCR7X3NyY30gJHtQcmVjb21waWxlZEJpbmFyeX0pCisgICAgICAgIGVuZGZvcmVhY2ggKCkK
KworICAgICAgICBXRUJLSVRfUFJFUEVORF9HTE9CQUxfQ09NUElMRVJfRkxBR1MoLVdpbnZhbGlk
LXBjaCkKKworICAgICAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgICAgICAgICBPVVRQVVQg
IiR7UHJlY29tcGlsZWRCaW5hcnl9IgorICAgICAgICAgICAgTUFJTl9ERVBFTkRFTkNZICIke19j
cHB9IgorICAgICAgICAgICAgQ09NTUVOVCAiQ29tcGlsaW5nIFBDSCAke1ByZWNvbXBpbGVkQmlu
YXJ5fSIKKyAgICAgICAgICAgIENPTU1BTkQgIiR7Q01BS0VfQ1hYX0NPTVBJTEVSfSIgLXggYysr
LWhlYWRlcgorICAgICAgICAgICAgICAgIC1vICIke1ByZWNvbXBpbGVkQmluYXJ5fSIgIiR7Q01B
S0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8ke19jcHB9IikKICAgICBlbmRpZiAoKQogICAgICNGSVhN
RTogQWRkIHN1cHBvcnQgZm9yIFhjb2RlLgogZW5kbWFjcm8oKQpkaWZmIC0tZ2l0IGEvQ2hhbmdl
TG9nIGIvQ2hhbmdlTG9nCmluZGV4IDJiNmE0NDRkMDI2MzljMWEyYjk4NjNiZWQwMThlMWRhNjc2
MzEwNzYuLjVkOGU0MzQ0YWJjMjUyNDZiMGIxNDJlNDIxY2MwYzk0MzkxZmVmZGQgMTAwNjQ0Ci0t
LSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxNy0wOS0w
MSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAg
IFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpIChjb3RpcmUpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9jbWFr
ZS9XZWJLaXRNYWNyb3MuY21ha2U6CisKKzIwMTctMDktMDEgIEFkcmlhbiBQZXJleiBkZSBDYXN0
cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2VdIEVuYWJsZSBwcmUtY29t
cGlsZWQgaGVhZGVycyAoUENIKSAoY290aXJlKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIHVzaW5nIENvdGlyZSAo
aHR0cHM6Ly9naXRodWIuY29tL3Nha3JhL2NvdGlyZS8pIHRvIGdlbmVyYXRlIGFuZAorICAgICAg
ICB1c2UgcHJlY29tcGlsZWQgaGVhZGVycyB3aGlsZSBidWlsZGluZy4gVGhlIGZlYXR1cmUgaXMg
ZGlzYWJsZWQgYnkgZGVmYXVsdC4gSW4gb3JkZXIKKyAgICAgICAgdG8gZW5hYmxlLCBwYXNzICIt
REVOQUJMRV9QUkVDT01QSUxFRF9IRUFERVJTPVRSVUUiIHRvIENNYWtlLCBlaXRoZXIgZGlyZWN0
bHkgb3IgdXNpbmcKKyAgICAgICAgIndlYmtpdC1idWlsZCAtLWNtYWtlYXJncz0nLURFTkFCTEVf
UFJFQ09NUElMRURfSEVBREVSUz1UUlVFJyIgZm9yIGRldmVsb3BtZW50IGJ1aWxkcy4KKworICAg
ICAgICBQcmVjb21waWxlZCBoZWFkZXIgYXJlIGdlbmVyYXRlZCBmb3IgSmF2YVNjcmlwdENvcmUg
YW5kIFdlYkNvcmUgZnJvbSB0aGUgcHJlcHJvY2Vzc2VkCisgICAgICAgIG91dHB1dCBvZiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXguaCBhbmQgU291cmNlL1dlYkNv
cmUvV2ViQ29yZVByZWZpeC5oLAorICAgICAgICByZXNwZWN0aXZlbHkuIFRoaXMgYXBwcm9hY2gg
aXMgcHJlZmVycmVkIG92ZXIgbGV0dGluZyBDb3RpcmUgZ2VuZXJhdGUgb25lIGF1dG9tYXRpY2Fs
bHksCisgICAgICAgIHdoaWNoIGlzIGZlZWJsZSBhbmQgcmVzdWx0cyBpbiBidWlsZCBmYWlsdXJl
cyBpbiBXZWJDb3JlLiBUaGUgcHJlZml4IGhlYWRlcnMgaW5jbHVkZQorICAgICAgICBvdGhlciBo
ZWFkZXJzIHdoaWNoIGFyZSB1bmxpa2VseSB0byBjaGFuZ2U6IHN5c3RlbSBoZWFkZXJzLCBhbmQg
dGhvc2UgaW4gdGhlIEpIQnVpbGQKKyAgICAgICAgaWYgcHJlc2VudC4gVGhhdCBtZWFucyB0aGF0
IHN1YnByb2plY3QgaGVhZGVycyBhcmUgbm90IGluY2x1ZGVkIGluIHRoZSBwcmVjb21waWxlZAor
ICAgICAgICBoZWFkZXIgKGUuZy4gdGhlIHByZWNvbXBpbGVkIGhlYWRlciB1c2VkIGZvciBXZWJD
b3JlIGRvZXMgbm90ICNpbmNsdWRlIGhlYWRlcnMgZnJvbQorICAgICAgICBKYXZhU2NyaXB0Q29y
ZSksIHdoaWNoIGlzIHNvbWV0aGluZyBsZWZ0IHRvIGludmVzdGlnYXRlIGluIGEgcG90ZW50aWFs
IGZvbGxvdy11cCBwYXRjaC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBJbmNsdWRlIHRo
ZSBjb3RpcmUuY21ha2Ugc25pcHBldC4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvY290aXJlLmNt
YWtlOiBBZGRlZC4KKwogMjAxNy0wOC0zMSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNv
bnkuY29tPgogCiAgICAgICAgIFtDTWFrZV0gTWFrZSBVU0VfQ0YgY29uZGl0aW9uYWwgd2l0aGlu
IFdpbmRvd3MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319715</attachid>
            <date>2017-09-02 07:15:03 -0700</date>
            <delta_ts>2017-09-02 08:55:52 -0700</delta_ts>
            <desc>Simple approach, now with include paths and defines passed when building PCHs</desc>
            <filename>bug-139438-20170902171502.patch</filename>
            <type>text/plain</type>
            <size>14769</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ZDJlMjE0MTExOGIwMTJjZGExZGJkMGFjNmUyZjI1NzU5ODI0ZDlhLi40ZTUxNzNhZmRiODc0Mzlk
NTQyZTM3M2ViNDc1YjFmYjczOWQzM2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wOS0wMSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJz
IChQQ0gpIChjb3RpcmUpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBVc2UgSmF2YVNjcmlwdENvcmVQcmVmaXguaCB0byBn
ZW5lcmF0ZSBhIHByZWNvbXBpbGVkIGhlYWRlci4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlUHJlZml4LmNwcDogQWRkZWQuCisKIDIwMTctMDkt
MDIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0RG
R10gUmVsYXggYXJpdHkgcmVxdWlyZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5ZmY5NDQ3MTE1NmEzNjkz
ZmNjMmUzYzRhZDk0ZDg1YTYzMzc1YjJlLi45MmY0YTEwYzI5ODZmNzdiZjg0MDQ3NmU1MjZjNjJi
ZTFhMTE1M2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDktMDEgIEFkcmlh
biBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2Vd
IEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKSAoY290aXJlKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBVc2UgV2ViQ29yZVByZWZpeC5oIHRvIGdlbmVy
YXRlIGEgcHJlY29tcGlsZWQgaGVhZGVyLgorICAgICAgICAqIFdlYkNvcmVQcmVmaXguaDogQWRk
IGluY2x1ZGVzIGZvciB0aGUgR1RLIGFuZCBXUEUgcG9ydHMsIGd1YXJkZWQgYWNjb3JkaW5nbHku
CisKIDIwMTctMDktMDIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdW1dheWxhbmRdIFVzZSBmYXN0IG1hbGxvYyB0byBhbGxvY2F0ZSBi
YWNraW5nIHN0b3JlIGNhaXJvIHN1cmZhY2VzIGRhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggN2FlOWE4OWU1Nzhj
NzY5MDE1ZWFhYmFkZTU3Y2I0N2YwNTUwOTE2Mi4uZjgzYTU5ZmUzYWFmYWJiZTYxZDQ5ZDlkODE2
NDQyNWQ5ODAzYzg0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wOS0wMSAgQWRy
aWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDTWFr
ZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpIChjb3RpcmUpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIFdlYktpdDJQcmVmaXguaDoKKwogMjAxNy0wOS0wMiAgVGltIEhvcnRvbiAgPHRp
bW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggc29tZSBzdHlsZSBpc3N1ZXMg
aW4gdGhlIFdlYiBQcm9jZXNzIHBhcnQgb2YgdGhlIFJlbW90ZSBMYXllciBUcmVlIGNvZGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkYTFiYTFkOWJlMTU3YjU4M2M4MTA3
OGJhZGJlZmRlYWQ1YmIyMGZhLi4wZDE2YmMwZGIyNzE5YjNlN2RjZGNlMjllZDljYzZhNzlhZDVl
MTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjAzLDMgKzE2MDMs
NiBAQCBpZiAoTVNWQykKICAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJL
SVRfTElCUkFSSUVTX0RJUn0vdG9vbHMvc2NyaXB0cy92ZXJzaW9uLXN0YW1wLnBsICR7REVSSVZF
RF9TT1VSQ0VTX0RJUn0gJDxUQVJHRVRfRklMRTpKYXZhU2NyaXB0Q29yZT4KICAgICAgICAgVkVS
QkFUSU0pCiBlbmRpZiAoKQorCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiSmF2YVNj
cmlwdENvcmVQcmVmaXguaCIgIkphdmFTY3JpcHRDb3JlUHJlZml4LmNwcCIKKyAgICBKYXZhU2Ny
aXB0Q29yZV9TT1VSQ0VTIEphdmFTY3JpcHRDb3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZVByZWZpeC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY3NTUwZmI0M2IwODhlYjM3
NDUxMDBkMDVmZGZhM2M5N2JmYmEzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZVByZWZpeC5jcHAKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUg
IkphdmFTY3JpcHRDb3JlUHJlZml4LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDIwMjRmODkz
MzZmMzkzZGQzZGFlYjAzYmRiOWI5YThlN2MzOTkxYTQuLmM4MmQ4NGU4MmIzYjY3Y2RiMWVlODZi
M2E1NDg2OTkwM2ZmN2RiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MDA0LDEwICs0MDA0
LDEwIEBAIFdFQktJVF9XUkFQX1NPVVJDRUxJU1QoJHtXZWJDb3JlX0lETF9GSUxFU30gJHtXZWJD
b3JlX0RFUklWRURfU09VUkNFU30pCiBXRUJLSVRfV1JBUF9TT1VSQ0VMSVNUKCR7V2ViQ29yZV9T
T1VSQ0VTfSkKIFdFQktJVF9XUkFQX1NPVVJDRUxJU1QoJHtXZWJDb3JlVGVzdFN1cHBvcnRfSURM
X0ZJTEVTfSAke1dlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTfSkKIAotaWYgKE1TVkMpCi0gICAg
V0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYkNvcmVQcmVmaXguaCIgIldlYkNvcmVQ
cmVmaXguY3BwIiBXZWJDb3JlX1NPVVJDRVMpCi0gICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9I
RUFERVIoIldlYkNvcmVQcmVmaXguaCIgIldlYkNvcmVEZXJpdmVkU291cmNlc1ByZWZpeC5jcHAi
IFdlYkNvcmVfREVSSVZFRF9TT1VSQ0VTKQotZW5kaWYgKCkKK1dFQktJVF9BRERfUFJFQ09NUElM
RURfSEVBREVSKCJXZWJDb3JlUHJlZml4LmgiICJXZWJDb3JlUHJlZml4LmNwcCIKKyAgICBXZWJD
b3JlX1NPVVJDRVMgV2ViQ29yZSkKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJD
b3JlRGVyaXZlZFNvdXJjZXNQcmVmaXguaCIgIldlYkNvcmVEZXJpdmVkU291cmNlc1ByZWZpeC5j
cHAiCisgICAgV2ViQ29yZV9ERVJJVkVEX1NPVVJDRVMgV2ViQ29yZSkKIAogIyBUaGlzIGlzIHNw
bGl0IGludG8gYSBzZXBhcmF0ZSBsaWJyYXJ5IGFzIGEgd29ya2Fyb3VuZCBmb3IgY29tbWFuZCBs
aW5lIGxlbmd0aAogIyBsaW1pdHMuIFRoaXMgc2hvdWxkIG5vIGxvbmdlciBiZSBuZWVkZWQgd2hl
biBDTWFrZSBzdXBwb3J0cyBOaW5qYSByZXNwb25zZQpAQCAtNDA0MSw5ICs0MDQxLDggQEAgaWYg
KENNQUtFX0NPTVBJTEVSX0lTX0dOVUNYWCBBTkQgIiR7TE9XRVJDQVNFX0NNQUtFX0hPU1RfU1lT
VEVNX1BST0NFU1NPUn0iIE1BVEMKICAgICBXRUJLSVRfQUREX1RBUkdFVF9DWFhfRkxBR1MoV2Vi
Q29yZSAtZm5vLXRyZWUtc3JhKQogZW5kaWYgKCkKIAotaWYgKE1TVkMpCi0gICAgV0VCS0lUX0FE
RF9QUkVDT01QSUxFRF9IRUFERVIoIldlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oIiAidGVzdGlu
Zy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguY3BwIiBXZWJDb3JlVGVzdFN1cHBvcnRfU09V
UkNFUykKLWVuZGlmICgpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViQ29yZVRl
c3RTdXBwb3J0UHJlZml4LmgiICJ0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5j
cHAiCisgICAgV2ViQ29yZVRlc3RTdXBwb3J0X1NPVVJDRVMgV2ViQ29yZVRlc3RTdXBwb3J0KQog
CiBhZGRfbGlicmFyeShXZWJDb3JlVGVzdFN1cHBvcnQgJHtXZWJDb3JlVGVzdFN1cHBvcnRfTElC
UkFSWV9UWVBFfSAke1dlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTfSkKIGFkZF9kZXBlbmRlbmNp
ZXMoV2ViQ29yZVRlc3RTdXBwb3J0IFdlYkNvcmUgV2ViQ29yZVRlc3RTdXBwb3J0QmluZGluZ3Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmggYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlUHJlZml4LmgKaW5kZXggNjFhNTlhNWQxNDRhYzU2MzcyNDI5NDE1MTVkZDFm
ZDI0MGVjY2MwZC4uYzFjZTZmM2NmNTMxZGZmYWZmODY0NmFhOWRkZmNkODNhODUxOWUwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmVQcmVmaXguaApAQCAtMTI1LDYgKzEyNSwyOSBAQAogCiAjaWYgUExBVEZPUk0o
V0lOX0NBSVJPKQogI2luY2x1ZGUgPHdpbmRvd3MuaD4KKworI2VsaWYgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCisKKyNpZiBVU0UoQ0FJUk8pCisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8u
aD4KKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8Z2xpYi5oPgorI2VuZGlmCisK
KyNpZiBVU0UoU09VUCkKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNlbmRpZgorCisjaWYg
VVNFKExJQkVQT1hZKQorI2luY2x1ZGUgPGVwb3h5Lmg+CisjZW5kaWYKKworI2lmIFVTRShHU1RS
RUFNRVIpCisjaW5jbHVkZSA8Z3N0L2dzdC5oPgorI2VuZGlmCisKICNlbHNlCiAKICNpZiBPUyhX
SU5ET1dTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVz
dFN1cHBvcnRQcmVmaXguaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RT
dXBwb3J0UHJlZml4LmgKaW5kZXggZmUzYTdmNWM2MGFmOWIwNWU5NjE3YWJmZjEwNTE4YjA0NGYx
MDBhYi4uZDZhNGM3ZDAxMTQ1NjU2MmZjNzEyZGFhYTA2ZWVkNTlkZDFkNjljYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5o
CkBAIC0xMDEsNiArMTAxLDI5IEBACiAKICNpZiBQTEFURk9STShXSU5fQ0FJUk8pCiAjaW5jbHVk
ZSA8d2luZG93cy5oPgorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisKKyNp
ZiBVU0UoQ0FJUk8pCisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KKyNlbmRpZgorCisjaWYgVVNF
KEdMSUIpCisjaW5jbHVkZSA8Z2xpYi5oPgorI2VuZGlmCisKKyNpZiBVU0UoU09VUCkKKyNpbmNs
dWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNlbmRpZgorCisjaWYgVVNFKExJQkVQT1hZKQorI2luY2x1
ZGUgPGVwb3h5Lmg+CisjZW5kaWYKKworI2lmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVkZSA8Z3N0
L2dzdC5oPgorI2VuZGlmCisKKwogI2Vsc2UKIAogI2lmIE9TKFdJTkRPV1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3Rz
LnR4dAppbmRleCA5NmFhNGQ0MjI3YWEwMWE3MDllZjEzYzc0ZmZlZjk4NWZlYmMwOGQ0Li4zNWY1
NDJjY2Q3ODk2NmJjZDU5NTE1YmU2YmZkN2NiNjkzZmYzOWYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQK
QEAgLTk5NywzICs5OTcsNyBAQCBlbHNlICgpCiAgICAgICAgIFJVTlRJTUUgREVTVElOQVRJT04g
IiR7TElCRVhFQ19JTlNUQUxMX0RJUn0iCiAgICAgKQogZW5kaWYgKCkKKworV0VCS0lUX0FERF9Q
UkVDT01QSUxFRF9IRUFERVIoIldlYktpdDJQcmVmaXguaCIgIldlYktpdDJQcmVmaXguY3BwIiBX
ZWJLaXQyX1NPVVJDRVMgV2ViS2l0MikKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJX
ZWJLaXQyUHJlZml4LmgiICJXZWJLaXQyUHJlZml4LmNwcCIgV2ViUHJvY2Vzc19TT1VSQ0VTIFdl
YktpdDIpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0MlByZWZpeC5oIiAi
V2ViS2l0MlByZWZpeC5jcHAiIE5ldHdvcmtQcm9jZXNzX1NPVVJDRVMgV2ViS2l0MikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0MlByZWZpeC5oIGIvU291cmNlL1dlYktpdC9XZWJL
aXQyUHJlZml4LmgKaW5kZXggNzIxY2JkNWI0ZTY5N2ZhMGI3M2MwNTY5MzQyYzE5NDQ5MzQ3NzA2
Ny4uM2I5ZGQ3MWU3ODdjYjczOWVkMWQ3ZGI1NTliNTFmMWYxYjNkMGFiOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQy
UHJlZml4LmgKQEAgLTU3LDYgKzU3LDMxIEBACiAKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdQRSkKICNkZWZpbmUgRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSAxCisKKyNpZiBVU0Uo
Q0FJUk8pCisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KKyNlbmRpZgorCisjaWYgVVNFKEdMSUIp
CisjaW5jbHVkZSA8Z2xpYi5oPgorI2VuZGlmCisKKyNpZiBVU0UoU09VUCkKKyNpbmNsdWRlIDxs
aWJzb3VwL3NvdXAuaD4KKyNlbmRpZgorCisjaWYgVVNFKExJQkVQT1hZKQorI2luY2x1ZGUgPGVw
b3h5Lmg+CisjZW5kaWYKKworI2lmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVkZSA8Z3N0L2dzdC5o
PgorI2VuZGlmCisKKyNpZiBQTEFURk9STShHVEspCisjaW5jbHVkZSA8Z3RrL2d0ay5oPgorI2Vu
ZGlmCisKICNlbmRpZgogCiAvKiBXaGVuIEMrKyBleGNlcHRpb25zIGFyZSBkaXNhYmxlZCwgdGhl
IEMrKyBsaWJyYXJ5IGRlZmluZXMgfHRyeXwgYW5kIHxjYXRjaHwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtl
TGlzdHMudHh0CmluZGV4IGI3NGExMDM3NzlhNzc3OWRiOTVkNjdiMDliNjZiOWNiOTliMTI0YjUu
LmJlODVmZGFlN2RjZWRhZmMwYmQ3N2RhMWU1Y2Y2OTY1NWY0YzA3NjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9DTWFrZUxpc3RzLnR4dApAQCAtMzksNyArMzksNyBAQCBXRUJLSVRfRlJBTUVXT1JLX0RFQ0xB
UkUoV2ViS2l0KQogV0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJTEVTX0lGX0VYSVNUUygpCiAKIGlm
IChNU1ZDKQotICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXRQcmVmaXgu
aCIgIndpbi9XZWJLaXRQcmVmaXguY3BwIiBXZWJLaXRfU09VUkNFUykKKyAgICBXRUJLSVRfQURE
X1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0UHJlZml4LmgiICJ3aW4vV2ViS2l0UHJlZml4LmNw
cCIgV2ViS2l0X1NPVVJDRVMgV2ViS2l0KQogICAgIGxpc3QoQVBQRU5EIFdlYktpdF9TT1VSQ0VT
IHdpbi9XZWJLaXQucmVzb3VyY2VzL1dlYktpdC5yYykKICAgICBhZGRfZGVmaW5pdGlvbnMoL0RX
RUJLSVRfRVhQT1JUUyAvREZSQU1FV09SS19OQU1FPVdlYktpdCkKIGVuZGlmICgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktp
dE1hY3Jvcy5jbWFrZQppbmRleCA3YmM4OTU0MzhmMWJkYmI5ZWViZmQ1YzdlYzNkZTIxN2I3NjVl
MjRiLi4wYTgzMWNjYWNmOTFlOThkODkzM2I5NzljNTgzMDlhMjAwMTAxZDQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJL
aXRNYWNyb3MuY21ha2UKQEAgLTI4LDEzICsyOCwxMyBAQCBtYWNybyhXRUJLSVRfQUREX1NPVVJD
RV9ERVBFTkRFTkNJRVMgX3NvdXJjZSBfZGVwcykKICAgICB1bnNldChfdG1wKQogZW5kbWFjcm8o
KQogCi1tYWNybyhXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUiBfaGVhZGVyIF9jcHAgX3Nv
dXJjZSkKK21hY3JvKFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSIF9oZWFkZXIgX2NwcCBf
c291cmNlIF90YXJnZXQpCisgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChQcmVjb21waWxlZEJh
c2VuYW1lICR7X2NwcH0gTkFNRV9XRSkKKyAgICBmaWxlKE1BS0VfRElSRUNUT1JZICIke0NNQUtF
X0NVUlJFTlRfQklOQVJZX0RJUn0vJHtfc291cmNlfSIpCisgICAgc2V0KF9zb3VyY2VzICR7JHtf
c291cmNlfX0pCisKICAgICBpZiAoTVNWQykKLSAgICAgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVu
dChQcmVjb21waWxlZEJhc2VuYW1lICR7X2NwcH0gTkFNRV9XRSkKLSAgICAgICAgZmlsZShNQUtF
X0RJUkVDVE9SWSAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7X3NvdXJjZX0iKQogICAg
ICAgICBzZXQoUHJlY29tcGlsZWRCaW5hcnkgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8k
e19zb3VyY2V9LyR7UHJlY29tcGlsZWRCYXNlbmFtZX0ucGNoIikKLSAgICAgICAgc2V0KF9zb3Vy
Y2VzICR7JHtfc291cmNlfX0pCi0KICAgICAgICAgIyBjbGFuZy1jbCByZXF1aXJlcyAvRkkgd2l0
aCAvWWMKICAgICAgICAgaWYgKENPTVBJTEVSX0lTX0NMQU5HX0NMKQogICAgICAgICAgICAgc2V0
X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7X2NwcH0KQEAgLTUzLDYgKzUzLDU3IEBAIG1hY3Jv
KFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSIF9oZWFkZXIgX2NwcCBfc291cmNlKQogICAg
ICAgICBlbmRmb3JlYWNoICgpCiAKICAgICAgICAgbGlzdChBUFBFTkQgJHtfc291cmNlfSAke19j
cHB9KQorICAgIGVsc2VpZiAoREVGSU5FRCBFTkFCTEVfUFJFQ09NUElMRURfSEVBREVSUyBBTkQg
RU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUlMgQU5EIENPTVBJTEVSX0lTX0dDQ19PUl9DTEFORykK
KyAgICAgICAgV0VCS0lUX1BSRVBFTkRfR0xPQkFMX0NPTVBJTEVSX0ZMQUdTKC1XaW52YWxpZC1w
Y2gpCisKKyAgICAgICAgaWYgKENPTVBJTEVSX0lTX0NMQU5HKQorICAgICAgICAgICAgc2V0KFBy
ZWNvbXBpbGVkQmluYXJ5ICIke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vJHtQcmVjb21waWxl
ZEJhc2VuYW1lfS5oLnBjaCIpCisgICAgICAgIGVsc2UgKCkKKyAgICAgICAgICAgIHNldChQcmVj
b21waWxlZEJpbmFyeSAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7UHJlY29tcGlsZWRC
YXNlbmFtZX0uaC5nY2giKQorICAgICAgICBlbmRpZiAoKQorCisgICAgICAgIHNldF9zb3VyY2Vf
ZmlsZXNfcHJvcGVydGllcygke19jcHB9CisgICAgICAgICAgICBQUk9QRVJUSUVTIENPTVBJTEVf
RkxBR1MgIi1pbmNsdWRlIFwiJHtfaGVhZGVyfVwiIgorICAgICAgICAgICAgT0JKRUNUX09VVFBV
VFMgIiR7UHJlY29tcGlsZWRCaW5hcnl9IikKKyAgICAgICAgc2V0X3NvdXJjZV9maWxlc19wcm9w
ZXJ0aWVzKCR7X3NvdXJjZXN9CisgICAgICAgICAgICBQUk9QRVJUSUVTIENPTVBJTEVfRkxBR1Mg
Ii1pbmNsdWRlIFwiJHtfaGVhZGVyfVwiIikKKworICAgICAgICBmb3JlYWNoIChfc3JjICR7X3Nv
dXJjZXN9KQorICAgICAgICAgICAgV0VCS0lUX0FERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7X3Ny
Y30gJHtQcmVjb21waWxlZEJpbmFyeX0pCisgICAgICAgIGVuZGZvcmVhY2ggKCkKKworICAgICAg
ICBpZiAoTk9UIFRBUkdFVCBwY2guYWxsKQorICAgICAgICAgICAgYWRkX2N1c3RvbV90YXJnZXQo
cGNoLmFsbCBXT1JLSU5HX0RJUkVDVE9SWSAiJHtDTUFLRV9CSU5BUllfRElSfSIgVkVSQkFUSU0p
CisgICAgICAgIGVuZGlmICgpCisKKyAgICAgICAgaWYgKE5PVCBUQVJHRVQgcGNoLiR7UHJlY29t
cGlsZWRCYXNlbmFtZX0pCisgICAgICAgICAgICBpZiAoVU5JWCkKKyAgICAgICAgICAgICAgICBz
ZXBhcmF0ZV9hcmd1bWVudHMoX3BjaF9jeHhfZmxhZ3MgVU5JWF9DT01NQU5EICIke0NNQUtFX0NY
WF9GTEFHU30iKQorICAgICAgICAgICAgZWxzZWlmIChXSU4zMikKKyAgICAgICAgICAgICAgICBz
ZXBhcmF0ZV9hcmd1bWVudHMoX3BjaF9jeHhfZmxhZ3MgV0lORE9XU19DT01NQU5EICIke0NNQUtF
X0NYWF9GTEFHU30iKQorICAgICAgICAgICAgZWxzZSAoKQorICAgICAgICAgICAgICAgIHNldChf
cGNoX2N4eF9mbGFncyAiJHtDTUFLRV9DWFhfRkxBR1N9IikKKyAgICAgICAgICAgICAgICBzZXBh
cmF0ZV9hcmd1bWVudHMoX3BjaF9jeHhfZmxhZ3MpCisgICAgICAgICAgICBlbmRpZiAoKQorCisg
ICAgICAgICAgICBmaWxlKEdFTkVSQVRFIE9VVFBVVCAiJHtQcmVjb21waWxlZEJpbmFyeX0uZmxh
Z3MiIENPTlRFTlQKKyAgICAgICAgICAgICAgICAiLUkkPEpPSU46JDxUQVJHRVRfUFJPUEVSVFk6
JHtfdGFyZ2V0fSxJTkNMVURFX0RJUkVDVE9SSUVTPixcbi1JPlxuLUQkPEpPSU46JDxUQVJHRVRf
UFJPUEVSVFk6JHtfdGFyZ2V0fSxDT01QSUxFX0RFRklOSVRJT05TPixcbi1EPlxuJDxKT0lOOiQ8
VEFSR0VUX1BST1BFUlRZOiR7X3RhcmdldH0sQ09NUElMRV9GTEFHUz4sXG4+IikKKworICAgICAg
ICAgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAgICAgICAgICAgICAgIE9VVFBVVCAiJHtQcmVj
b21waWxlZEJpbmFyeX0iCisgICAgICAgICAgICAgICAgTUFJTl9ERVBFTkRFTkNZICIke19jcHB9
IgorICAgICAgICAgICAgICAgIERFUEVORFMgIiR7UHJlY29tcGlsZWRCaW5hcnl9LmZsYWdzIgor
ICAgICAgICAgICAgICAgIENPTU1FTlQgIkNvbXBpbGluZyBQQ0ggJHtQcmVjb21waWxlZEJpbmFy
eX0iCisgICAgICAgICAgICAgICAgQ09NTUFORCAiJHtDTUFLRV9DWFhfQ09NUElMRVJ9IiAiQCR7
UHJlY29tcGlsZWRCaW5hcnl9LmZsYWdzIgorICAgICAgICAgICAgICAgICAgICAteCBjKystaGVh
ZGVyICR7X3BjaF9jeHhfZmxhZ3N9IC1vICIke1ByZWNvbXBpbGVkQmluYXJ5fSIKKyAgICAgICAg
ICAgICAgICAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8ke19jcHB9IikKKworICAg
ICAgICAgICAgYWRkX2N1c3RvbV90YXJnZXQocGNoLiR7UHJlY29tcGlsZWRCYXNlbmFtZX0KKyAg
ICAgICAgICAgICAgICBXT1JLSU5HX0RJUkVDVE9SWSAiJHtDTUFLRV9CSU5BUllfRElSfSIKKyAg
ICAgICAgICAgICAgICBERVBFTkRTICIke1ByZWNvbXBpbGVkQmluYXJ5fSIKKyAgICAgICAgICAg
ICAgICBWRVJCQVRJTSkKKyAgICAgICAgICAgIGFkZF9kZXBlbmRlbmNpZXMocGNoLmFsbCBwY2gu
JHtQcmVjb21waWxlZEJhc2VuYW1lfSkKKyAgICAgICAgZW5kaWYgKCkKICAgICBlbmRpZiAoKQog
ICAgICNGSVhNRTogQWRkIHN1cHBvcnQgZm9yIFhjb2RlLgogZW5kbWFjcm8oKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2UgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCA2ODUxOGQyMTgxYjIxMDE2NjY4OTgzYzY3
MTRlOGQxYmVmZDQ4N2Q4Li42MzM4ZWZkMjkxZmUxMTdmMmNkNWJjMjNjNGMyZjEzYjk5NTA5MzVj
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtMTA0LDcgKzEwNCw4
IEBAIGVsc2UgKCkKICAgICApCiBlbmRpZiAoKQogCi1XRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hF
QURFUigiRHVtcFJlbmRlclRyZWVQcmVmaXguaCIgIndpbi9EdW1wUmVuZGVyVHJlZVByZWZpeC5j
cHAiIER1bXBSZW5kZXJUcmVlTGliX1NPVVJDRVMpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hF
QURFUigiRHVtcFJlbmRlclRyZWVQcmVmaXguaCIKKyAgICAid2luL0R1bXBSZW5kZXJUcmVlUHJl
Zml4LmNwcCIgRHVtcFJlbmRlclRyZWVMaWJfU09VUkNFUyBEdW1wUmVuZGVyVHJlZUxpYikKIHNl
dChDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICIke0NNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1N9
IC9OT0RFRkFVTFRMSUI6TVNWQ1JUIC9OT0RFRkFVTFRMSUI6TVNWQ1JURCIpCiBhZGRfZGVmaW5p
dGlvbnMoLURVU0VfQ09OU09MRV9FTlRSWV9QT0lOVCkKIApkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9n
IGIvQ2hhbmdlTG9nCmluZGV4IDJiNmE0NDRkMDI2MzljMWEyYjk4NjNiZWQwMThlMWRhNjc2MzEw
NzYuLjVkOGU0MzQ0YWJjMjUyNDZiMGIxNDJlNDIxY2MwYzk0MzkxZmVmZGQgMTAwNjQ0Ci0tLSBh
L0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxNy0wOS0wMSAg
QWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtD
TWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpIChjb3RpcmUpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9X
ZWJLaXRNYWNyb3MuY21ha2U6CisKKzIwMTctMDktMDEgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8g
IDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2VdIEVuYWJsZSBwcmUtY29tcGls
ZWQgaGVhZGVycyAoUENIKSAoY290aXJlKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIHVzaW5nIENvdGlyZSAoaHR0
cHM6Ly9naXRodWIuY29tL3Nha3JhL2NvdGlyZS8pIHRvIGdlbmVyYXRlIGFuZAorICAgICAgICB1
c2UgcHJlY29tcGlsZWQgaGVhZGVycyB3aGlsZSBidWlsZGluZy4gVGhlIGZlYXR1cmUgaXMgZGlz
YWJsZWQgYnkgZGVmYXVsdC4gSW4gb3JkZXIKKyAgICAgICAgdG8gZW5hYmxlLCBwYXNzICItREVO
QUJMRV9QUkVDT01QSUxFRF9IRUFERVJTPVRSVUUiIHRvIENNYWtlLCBlaXRoZXIgZGlyZWN0bHkg
b3IgdXNpbmcKKyAgICAgICAgIndlYmtpdC1idWlsZCAtLWNtYWtlYXJncz0nLURFTkFCTEVfUFJF
Q09NUElMRURfSEVBREVSUz1UUlVFJyIgZm9yIGRldmVsb3BtZW50IGJ1aWxkcy4KKworICAgICAg
ICBQcmVjb21waWxlZCBoZWFkZXIgYXJlIGdlbmVyYXRlZCBmb3IgSmF2YVNjcmlwdENvcmUgYW5k
IFdlYkNvcmUgZnJvbSB0aGUgcHJlcHJvY2Vzc2VkCisgICAgICAgIG91dHB1dCBvZiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXguaCBhbmQgU291cmNlL1dlYkNvcmUv
V2ViQ29yZVByZWZpeC5oLAorICAgICAgICByZXNwZWN0aXZlbHkuIFRoaXMgYXBwcm9hY2ggaXMg
cHJlZmVycmVkIG92ZXIgbGV0dGluZyBDb3RpcmUgZ2VuZXJhdGUgb25lIGF1dG9tYXRpY2FsbHks
CisgICAgICAgIHdoaWNoIGlzIGZlZWJsZSBhbmQgcmVzdWx0cyBpbiBidWlsZCBmYWlsdXJlcyBp
biBXZWJDb3JlLiBUaGUgcHJlZml4IGhlYWRlcnMgaW5jbHVkZQorICAgICAgICBvdGhlciBoZWFk
ZXJzIHdoaWNoIGFyZSB1bmxpa2VseSB0byBjaGFuZ2U6IHN5c3RlbSBoZWFkZXJzLCBhbmQgdGhv
c2UgaW4gdGhlIEpIQnVpbGQKKyAgICAgICAgaWYgcHJlc2VudC4gVGhhdCBtZWFucyB0aGF0IHN1
YnByb2plY3QgaGVhZGVycyBhcmUgbm90IGluY2x1ZGVkIGluIHRoZSBwcmVjb21waWxlZAorICAg
ICAgICBoZWFkZXIgKGUuZy4gdGhlIHByZWNvbXBpbGVkIGhlYWRlciB1c2VkIGZvciBXZWJDb3Jl
IGRvZXMgbm90ICNpbmNsdWRlIGhlYWRlcnMgZnJvbQorICAgICAgICBKYXZhU2NyaXB0Q29yZSks
IHdoaWNoIGlzIHNvbWV0aGluZyBsZWZ0IHRvIGludmVzdGlnYXRlIGluIGEgcG90ZW50aWFsIGZv
bGxvdy11cCBwYXRjaC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBJbmNsdWRlIHRoZSBj
b3RpcmUuY21ha2Ugc25pcHBldC4KKyAgICAgICAgKiBTb3VyY2UvY21ha2UvY290aXJlLmNtYWtl
OiBBZGRlZC4KKwogMjAxNy0wOC0zMSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnku
Y29tPgogCiAgICAgICAgIFtDTWFrZV0gTWFrZSBVU0VfQ0YgY29uZGl0aW9uYWwgd2l0aGluIFdp
bmRvd3MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319716</attachid>
            <date>2017-09-02 08:55:56 -0700</date>
            <delta_ts>2017-09-09 10:15:34 -0700</delta_ts>
            <desc>WIP, fixes WebCoreDerivedSourcesPrefix; the style checker will still fail.</desc>
            <filename>bug-139438-20170902185555.patch</filename>
            <type>text/plain</type>
            <size>14755</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ZDJlMjE0MTExOGIwMTJjZGExZGJkMGFjNmUyZjI1NzU5ODI0ZDlhLi40ZTUxNzNhZmRiODc0Mzlk
NTQyZTM3M2ViNDc1YjFmYjczOWQzM2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wOS0wMSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJz
IChQQ0gpIChjb3RpcmUpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBVc2UgSmF2YVNjcmlwdENvcmVQcmVmaXguaCB0byBn
ZW5lcmF0ZSBhIHByZWNvbXBpbGVkIGhlYWRlci4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlUHJlZml4LmNwcDogQWRkZWQuCisKIDIwMTctMDkt
MDIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0RG
R10gUmVsYXggYXJpdHkgcmVxdWlyZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5ZmY5NDQ3MTE1NmEzNjkz
ZmNjMmUzYzRhZDk0ZDg1YTYzMzc1YjJlLi45MmY0YTEwYzI5ODZmNzdiZjg0MDQ3NmU1MjZjNjJi
ZTFhMTE1M2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDktMDEgIEFkcmlh
biBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2Vd
IEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKSAoY290aXJlKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBVc2UgV2ViQ29yZVByZWZpeC5oIHRvIGdlbmVy
YXRlIGEgcHJlY29tcGlsZWQgaGVhZGVyLgorICAgICAgICAqIFdlYkNvcmVQcmVmaXguaDogQWRk
IGluY2x1ZGVzIGZvciB0aGUgR1RLIGFuZCBXUEUgcG9ydHMsIGd1YXJkZWQgYWNjb3JkaW5nbHku
CisKIDIwMTctMDktMDIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdW1dheWxhbmRdIFVzZSBmYXN0IG1hbGxvYyB0byBhbGxvY2F0ZSBi
YWNraW5nIHN0b3JlIGNhaXJvIHN1cmZhY2VzIGRhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggN2FlOWE4OWU1Nzhj
NzY5MDE1ZWFhYmFkZTU3Y2I0N2YwNTUwOTE2Mi4uZjgzYTU5ZmUzYWFmYWJiZTYxZDQ5ZDlkODE2
NDQyNWQ5ODAzYzg0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wOS0wMSAgQWRy
aWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDTWFr
ZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpIChjb3RpcmUpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIFdlYktpdDJQcmVmaXguaDoKKwogMjAxNy0wOS0wMiAgVGltIEhvcnRvbiAgPHRp
bW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggc29tZSBzdHlsZSBpc3N1ZXMg
aW4gdGhlIFdlYiBQcm9jZXNzIHBhcnQgb2YgdGhlIFJlbW90ZSBMYXllciBUcmVlIGNvZGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkYTFiYTFkOWJlMTU3YjU4M2M4MTA3
OGJhZGJlZmRlYWQ1YmIyMGZhLi4wZDE2YmMwZGIyNzE5YjNlN2RjZGNlMjllZDljYzZhNzlhZDVl
MTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjAzLDMgKzE2MDMs
NiBAQCBpZiAoTVNWQykKICAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJL
SVRfTElCUkFSSUVTX0RJUn0vdG9vbHMvc2NyaXB0cy92ZXJzaW9uLXN0YW1wLnBsICR7REVSSVZF
RF9TT1VSQ0VTX0RJUn0gJDxUQVJHRVRfRklMRTpKYXZhU2NyaXB0Q29yZT4KICAgICAgICAgVkVS
QkFUSU0pCiBlbmRpZiAoKQorCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiSmF2YVNj
cmlwdENvcmVQcmVmaXguaCIgIkphdmFTY3JpcHRDb3JlUHJlZml4LmNwcCIKKyAgICBKYXZhU2Ny
aXB0Q29yZV9TT1VSQ0VTIEphdmFTY3JpcHRDb3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZVByZWZpeC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY3NTUwZmI0M2IwODhlYjM3
NDUxMDBkMDVmZGZhM2M5N2JmYmEzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZVByZWZpeC5jcHAKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUg
IkphdmFTY3JpcHRDb3JlUHJlZml4LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDIwMjRmODkz
MzZmMzkzZGQzZGFlYjAzYmRiOWI5YThlN2MzOTkxYTQuLmYxN2U5NDZhYTI0Y2ZkMTIyZjllMzZl
OWU3ODE5ZjU1MmQ1YmNmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MDA0LDEwICs0MDA0
LDEwIEBAIFdFQktJVF9XUkFQX1NPVVJDRUxJU1QoJHtXZWJDb3JlX0lETF9GSUxFU30gJHtXZWJD
b3JlX0RFUklWRURfU09VUkNFU30pCiBXRUJLSVRfV1JBUF9TT1VSQ0VMSVNUKCR7V2ViQ29yZV9T
T1VSQ0VTfSkKIFdFQktJVF9XUkFQX1NPVVJDRUxJU1QoJHtXZWJDb3JlVGVzdFN1cHBvcnRfSURM
X0ZJTEVTfSAke1dlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTfSkKIAotaWYgKE1TVkMpCi0gICAg
V0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYkNvcmVQcmVmaXguaCIgIldlYkNvcmVQ
cmVmaXguY3BwIiBXZWJDb3JlX1NPVVJDRVMpCi0gICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9I
RUFERVIoIldlYkNvcmVQcmVmaXguaCIgIldlYkNvcmVEZXJpdmVkU291cmNlc1ByZWZpeC5jcHAi
IFdlYkNvcmVfREVSSVZFRF9TT1VSQ0VTKQotZW5kaWYgKCkKK1dFQktJVF9BRERfUFJFQ09NUElM
RURfSEVBREVSKCJXZWJDb3JlUHJlZml4LmgiICJXZWJDb3JlUHJlZml4LmNwcCIKKyAgICBXZWJD
b3JlX1NPVVJDRVMgV2ViQ29yZSkKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJD
b3JlUHJlZml4LmgiICJXZWJDb3JlRGVyaXZlZFNvdXJjZXNQcmVmaXguY3BwIgorICAgIFdlYkNv
cmVfREVSSVZFRF9TT1VSQ0VTIFdlYkNvcmUpCiAKICMgVGhpcyBpcyBzcGxpdCBpbnRvIGEgc2Vw
YXJhdGUgbGlicmFyeSBhcyBhIHdvcmthcm91bmQgZm9yIGNvbW1hbmQgbGluZSBsZW5ndGgKICMg
bGltaXRzLiBUaGlzIHNob3VsZCBubyBsb25nZXIgYmUgbmVlZGVkIHdoZW4gQ01ha2Ugc3VwcG9y
dHMgTmluamEgcmVzcG9uc2UKQEAgLTQwNDEsOSArNDA0MSw4IEBAIGlmIChDTUFLRV9DT01QSUxF
Ul9JU19HTlVDWFggQU5EICIke0xPV0VSQ0FTRV9DTUFLRV9IT1NUX1NZU1RFTV9QUk9DRVNTT1J9
IiBNQVRDCiAgICAgV0VCS0lUX0FERF9UQVJHRVRfQ1hYX0ZMQUdTKFdlYkNvcmUgLWZuby10cmVl
LXNyYSkKIGVuZGlmICgpCiAKLWlmIChNU1ZDKQotICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURf
SEVBREVSKCJXZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaCIgInRlc3RpbmcvanMvV2ViQ29yZVRl
c3RTdXBwb3J0UHJlZml4LmNwcCIgV2ViQ29yZVRlc3RTdXBwb3J0X1NPVVJDRVMpCi1lbmRpZiAo
KQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYkNvcmVUZXN0U3VwcG9ydFByZWZp
eC5oIiAidGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguY3BwIgorICAgIFdlYkNv
cmVUZXN0U3VwcG9ydF9TT1VSQ0VTIFdlYkNvcmVUZXN0U3VwcG9ydCkKIAogYWRkX2xpYnJhcnko
V2ViQ29yZVRlc3RTdXBwb3J0ICR7V2ViQ29yZVRlc3RTdXBwb3J0X0xJQlJBUllfVFlQRX0gJHtX
ZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNFU30pCiBhZGRfZGVwZW5kZW5jaWVzKFdlYkNvcmVUZXN0
U3VwcG9ydCBXZWJDb3JlIFdlYkNvcmVUZXN0U3VwcG9ydEJpbmRpbmdzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZVBy
ZWZpeC5oCmluZGV4IDYxYTU5YTVkMTQ0YWM1NjM3MjQyOTQxNTE1ZGQxZmQyNDBlY2NjMGQuLmMx
Y2U2ZjNjZjUzMWRmZmFmZjg2NDZhYTlkZGZjZDgzYTg1MTllMDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJl
Zml4LmgKQEAgLTEyNSw2ICsxMjUsMjkgQEAKIAogI2lmIFBMQVRGT1JNKFdJTl9DQUlSTykKICNp
bmNsdWRlIDx3aW5kb3dzLmg+CisKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BF
KQorCisjaWYgVVNFKENBSVJPKQorI2luY2x1ZGUgPGNhaXJvL2NhaXJvLmg+CisjZW5kaWYKKwor
I2lmIFVTRShHTElCKQorI2luY2x1ZGUgPGdsaWIuaD4KKyNlbmRpZgorCisjaWYgVVNFKFNPVVAp
CisjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CisjZW5kaWYKKworI2lmIFVTRShMSUJFUE9YWSkK
KyNpbmNsdWRlIDxlcG94eS5oPgorI2VuZGlmCisKKyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1
ZGUgPGdzdC9nc3QuaD4KKyNlbmRpZgorCiAjZWxzZQogCiAjaWYgT1MoV0lORE9XUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4
LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5o
CmluZGV4IGZlM2E3ZjVjNjBhZjliMDVlOTYxN2FiZmYxMDUxOGIwNDRmMTAwYWIuLmQ2YTRjN2Qw
MTE0NTY1NjJmYzcxMmRhYWEwNmVlZDU5ZGQxZDY5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaApAQCAtMTAxLDYgKzEw
MSwyOSBAQAogCiAjaWYgUExBVEZPUk0oV0lOX0NBSVJPKQogI2luY2x1ZGUgPHdpbmRvd3MuaD4K
KyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorCisjaWYgVVNFKENBSVJPKQor
I2luY2x1ZGUgPGNhaXJvL2NhaXJvLmg+CisjZW5kaWYKKworI2lmIFVTRShHTElCKQorI2luY2x1
ZGUgPGdsaWIuaD4KKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisjaW5jbHVkZSA8bGlic291cC9z
b3VwLmg+CisjZW5kaWYKKworI2lmIFVTRShMSUJFUE9YWSkKKyNpbmNsdWRlIDxlcG94eS5oPgor
I2VuZGlmCisKKyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNlbmRp
ZgorCisKICNlbHNlCiAKICNpZiBPUyhXSU5ET1dTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggOTZh
YTRkNDIyN2FhMDFhNzA5ZWYxM2M3NGZmZWY5ODVmZWJjMDhkNC4uMzVmNTQyY2NkNzg5NjZiY2Q1
OTUxNWJlNmJmZDdjYjY5M2ZmMzlmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC05OTcsMyArOTk3
LDcgQEAgZWxzZSAoKQogICAgICAgICBSVU5USU1FIERFU1RJTkFUSU9OICIke0xJQkVYRUNfSU5T
VEFMTF9ESVJ9IgogICAgICkKIGVuZGlmICgpCisKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVB
REVSKCJXZWJLaXQyUHJlZml4LmgiICJXZWJLaXQyUHJlZml4LmNwcCIgV2ViS2l0Ml9TT1VSQ0VT
IFdlYktpdDIpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0MlByZWZpeC5o
IiAiV2ViS2l0MlByZWZpeC5jcHAiIFdlYlByb2Nlc3NfU09VUkNFUyBXZWJLaXQyKQorV0VCS0lU
X0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktpdDJQcmVmaXguaCIgIldlYktpdDJQcmVmaXgu
Y3BwIiBOZXR3b3JrUHJvY2Vzc19TT1VSQ0VTIFdlYktpdDIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdDJQcmVmaXguaCBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0MlByZWZpeC5oCmlu
ZGV4IDcyMWNiZDViNGU2OTdmYTBiNzNjMDU2OTM0MmMxOTQ0OTM0NzcwNjcuLjNiOWRkNzFlNzg3
Y2I3MzllZDFkN2RiNTU5YjUxZjFmMWIzZDBhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0MlByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0MlByZWZpeC5oCkBAIC01
Nyw2ICs1NywzMSBAQAogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVm
aW5lIEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UgMQorCisjaWYgVVNFKENBSVJPKQorI2luY2x1
ZGUgPGNhaXJvL2NhaXJvLmg+CisjZW5kaWYKKworI2lmIFVTRShHTElCKQorI2luY2x1ZGUgPGds
aWIuaD4KKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+
CisjZW5kaWYKKworI2lmIFVTRShMSUJFUE9YWSkKKyNpbmNsdWRlIDxlcG94eS5oPgorI2VuZGlm
CisKKyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNlbmRpZgorCisj
aWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNlbmRpZgorCiAjZW5kaWYK
IAogLyogV2hlbiBDKysgZXhjZXB0aW9ucyBhcmUgZGlzYWJsZWQsIHRoZSBDKysgbGlicmFyeSBk
ZWZpbmVzIHx0cnl8IGFuZCB8Y2F0Y2h8CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4dAppbmRl
eCBiNzRhMTAzNzc5YTc3NzlkYjk1ZDY3YjA5YjY2YjljYjk5YjEyNGI1Li5iZTg1ZmRhZTdkY2Vk
YWZjMGJkNzdkYTFlNWNmNjk2NTVmNGMwNzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ01ha2VMaXN0cy50
eHQKQEAgLTM5LDcgKzM5LDcgQEAgV0VCS0lUX0ZSQU1FV09SS19ERUNMQVJFKFdlYktpdCkKIFdF
QktJVF9JTkNMVURFX0NPTkZJR19GSUxFU19JRl9FWElTVFMoKQogCiBpZiAoTVNWQykKLSAgICBX
RUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0UHJlZml4LmgiICJ3aW4vV2ViS2l0
UHJlZml4LmNwcCIgV2ViS2l0X1NPVVJDRVMpCisgICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9I
RUFERVIoIldlYktpdFByZWZpeC5oIiAid2luL1dlYktpdFByZWZpeC5jcHAiIFdlYktpdF9TT1VS
Q0VTIFdlYktpdCkKICAgICBsaXN0KEFQUEVORCBXZWJLaXRfU09VUkNFUyB3aW4vV2ViS2l0LnJl
c291cmNlcy9XZWJLaXQucmMpCiAgICAgYWRkX2RlZmluaXRpb25zKC9EV0VCS0lUX0VYUE9SVFMg
L0RGUkFNRVdPUktfTkFNRT1XZWJLaXQpCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL2Nt
YWtlL1dlYktpdE1hY3Jvcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UK
aW5kZXggN2JjODk1NDM4ZjFiZGJiOWVlYmZkNWM3ZWMzZGUyMTdiNzY1ZTI0Yi4uMGE4MzFjY2Fj
ZjkxZTk4ZDg5MzNiOTc5YzU4MzA5YTIwMDEwMWQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtl
L1dlYktpdE1hY3Jvcy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtl
CkBAIC0yOCwxMyArMjgsMTMgQEAgbWFjcm8oV0VCS0lUX0FERF9TT1VSQ0VfREVQRU5ERU5DSUVT
IF9zb3VyY2UgX2RlcHMpCiAgICAgdW5zZXQoX3RtcCkKIGVuZG1hY3JvKCkKIAotbWFjcm8oV0VC
S0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIgX2hlYWRlciBfY3BwIF9zb3VyY2UpCittYWNybyhX
RUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUiBfaGVhZGVyIF9jcHAgX3NvdXJjZSBfdGFyZ2V0
KQorICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoUHJlY29tcGlsZWRCYXNlbmFtZSAke19jcHB9
IE5BTUVfV0UpCisgICAgZmlsZShNQUtFX0RJUkVDVE9SWSAiJHtDTUFLRV9DVVJSRU5UX0JJTkFS
WV9ESVJ9LyR7X3NvdXJjZX0iKQorICAgIHNldChfc291cmNlcyAkeyR7X3NvdXJjZX19KQorCiAg
ICAgaWYgKE1TVkMpCi0gICAgICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoUHJlY29tcGlsZWRC
YXNlbmFtZSAke19jcHB9IE5BTUVfV0UpCi0gICAgICAgIGZpbGUoTUFLRV9ESVJFQ1RPUlkgIiR7
Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8ke19zb3VyY2V9IikKICAgICAgICAgc2V0KFByZWNv
bXBpbGVkQmluYXJ5ICIke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vJHtfc291cmNlfS8ke1By
ZWNvbXBpbGVkQmFzZW5hbWV9LnBjaCIpCi0gICAgICAgIHNldChfc291cmNlcyAkeyR7X3NvdXJj
ZX19KQotCiAgICAgICAgICMgY2xhbmctY2wgcmVxdWlyZXMgL0ZJIHdpdGggL1ljCiAgICAgICAg
IGlmIChDT01QSUxFUl9JU19DTEFOR19DTCkKICAgICAgICAgICAgIHNldF9zb3VyY2VfZmlsZXNf
cHJvcGVydGllcygke19jcHB9CkBAIC01Myw2ICs1Myw1NyBAQCBtYWNybyhXRUJLSVRfQUREX1BS
RUNPTVBJTEVEX0hFQURFUiBfaGVhZGVyIF9jcHAgX3NvdXJjZSkKICAgICAgICAgZW5kZm9yZWFj
aCAoKQogCiAgICAgICAgIGxpc3QoQVBQRU5EICR7X3NvdXJjZX0gJHtfY3BwfSkKKyAgICBlbHNl
aWYgKERFRklORUQgRU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUlMgQU5EIEVOQUJMRV9QUkVDT01Q
SUxFRF9IRUFERVJTIEFORCBDT01QSUxFUl9JU19HQ0NfT1JfQ0xBTkcpCisgICAgICAgIFdFQktJ
VF9QUkVQRU5EX0dMT0JBTF9DT01QSUxFUl9GTEFHUygtV2ludmFsaWQtcGNoKQorCisgICAgICAg
IGlmIChDT01QSUxFUl9JU19DTEFORykKKyAgICAgICAgICAgIHNldChQcmVjb21waWxlZEJpbmFy
eSAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7UHJlY29tcGlsZWRCYXNlbmFtZX0uaC5w
Y2giKQorICAgICAgICBlbHNlICgpCisgICAgICAgICAgICBzZXQoUHJlY29tcGlsZWRCaW5hcnkg
IiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8ke1ByZWNvbXBpbGVkQmFzZW5hbWV9LmguZ2No
IikKKyAgICAgICAgZW5kaWYgKCkKKworICAgICAgICBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRp
ZXMoJHtfY3BwfQorICAgICAgICAgICAgUFJPUEVSVElFUyBDT01QSUxFX0ZMQUdTICItaW5jbHVk
ZSBcIiR7X2hlYWRlcn1cIiIKKyAgICAgICAgICAgIE9CSkVDVF9PVVRQVVRTICIke1ByZWNvbXBp
bGVkQmluYXJ5fSIpCisgICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygke19zb3Vy
Y2VzfQorICAgICAgICAgICAgUFJPUEVSVElFUyBDT01QSUxFX0ZMQUdTICItaW5jbHVkZSBcIiR7
X2hlYWRlcn1cIiIpCisKKyAgICAgICAgZm9yZWFjaCAoX3NyYyAke19zb3VyY2VzfSkKKyAgICAg
ICAgICAgIFdFQktJVF9BRERfU09VUkNFX0RFUEVOREVOQ0lFUygke19zcmN9ICR7UHJlY29tcGls
ZWRCaW5hcnl9KQorICAgICAgICBlbmRmb3JlYWNoICgpCisKKyAgICAgICAgaWYgKE5PVCBUQVJH
RVQgcGNoLmFsbCkKKyAgICAgICAgICAgIGFkZF9jdXN0b21fdGFyZ2V0KHBjaC5hbGwgV09SS0lO
R19ESVJFQ1RPUlkgIiR7Q01BS0VfQklOQVJZX0RJUn0iIFZFUkJBVElNKQorICAgICAgICBlbmRp
ZiAoKQorCisgICAgICAgIGlmIChOT1QgVEFSR0VUIHBjaC4ke1ByZWNvbXBpbGVkQmFzZW5hbWV9
KQorICAgICAgICAgICAgaWYgKFVOSVgpCisgICAgICAgICAgICAgICAgc2VwYXJhdGVfYXJndW1l
bnRzKF9wY2hfY3h4X2ZsYWdzIFVOSVhfQ09NTUFORCAiJHtDTUFLRV9DWFhfRkxBR1N9IikKKyAg
ICAgICAgICAgIGVsc2VpZiAoV0lOMzIpCisgICAgICAgICAgICAgICAgc2VwYXJhdGVfYXJndW1l
bnRzKF9wY2hfY3h4X2ZsYWdzIFdJTkRPV1NfQ09NTUFORCAiJHtDTUFLRV9DWFhfRkxBR1N9IikK
KyAgICAgICAgICAgIGVsc2UgKCkKKyAgICAgICAgICAgICAgICBzZXQoX3BjaF9jeHhfZmxhZ3Mg
IiR7Q01BS0VfQ1hYX0ZMQUdTfSIpCisgICAgICAgICAgICAgICAgc2VwYXJhdGVfYXJndW1lbnRz
KF9wY2hfY3h4X2ZsYWdzKQorICAgICAgICAgICAgZW5kaWYgKCkKKworICAgICAgICAgICAgZmls
ZShHRU5FUkFURSBPVVRQVVQgIiR7UHJlY29tcGlsZWRCaW5hcnl9LmZsYWdzIiBDT05URU5UCisg
ICAgICAgICAgICAgICAgIi1JJDxKT0lOOiQ8VEFSR0VUX1BST1BFUlRZOiR7X3RhcmdldH0sSU5D
TFVERV9ESVJFQ1RPUklFUz4sXG4tST5cbi1EJDxKT0lOOiQ8VEFSR0VUX1BST1BFUlRZOiR7X3Rh
cmdldH0sQ09NUElMRV9ERUZJTklUSU9OUz4sXG4tRD5cbiQ8Sk9JTjokPFRBUkdFVF9QUk9QRVJU
WToke190YXJnZXR9LENPTVBJTEVfRkxBR1M+LFxuPiIpCisKKyAgICAgICAgICAgIGFkZF9jdXN0
b21fY29tbWFuZCgKKyAgICAgICAgICAgICAgICBPVVRQVVQgIiR7UHJlY29tcGlsZWRCaW5hcnl9
IgorICAgICAgICAgICAgICAgIE1BSU5fREVQRU5ERU5DWSAiJHtfY3BwfSIKKyAgICAgICAgICAg
ICAgICBERVBFTkRTICIke1ByZWNvbXBpbGVkQmluYXJ5fS5mbGFncyIKKyAgICAgICAgICAgICAg
ICBDT01NRU5UICJDb21waWxpbmcgUENIICR7UHJlY29tcGlsZWRCaW5hcnl9IgorICAgICAgICAg
ICAgICAgIENPTU1BTkQgIiR7Q01BS0VfQ1hYX0NPTVBJTEVSfSIgIkAke1ByZWNvbXBpbGVkQmlu
YXJ5fS5mbGFncyIKKyAgICAgICAgICAgICAgICAgICAgLXggYysrLWhlYWRlciAke19wY2hfY3h4
X2ZsYWdzfSAtbyAiJHtQcmVjb21waWxlZEJpbmFyeX0iCisgICAgICAgICAgICAgICAgICAgICIk
e0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vJHtfY3BwfSIpCisKKyAgICAgICAgICAgIGFkZF9j
dXN0b21fdGFyZ2V0KHBjaC4ke1ByZWNvbXBpbGVkQmFzZW5hbWV9CisgICAgICAgICAgICAgICAg
V09SS0lOR19ESVJFQ1RPUlkgIiR7Q01BS0VfQklOQVJZX0RJUn0iCisgICAgICAgICAgICAgICAg
REVQRU5EUyAiJHtQcmVjb21waWxlZEJpbmFyeX0iCisgICAgICAgICAgICAgICAgVkVSQkFUSU0p
CisgICAgICAgICAgICBhZGRfZGVwZW5kZW5jaWVzKHBjaC5hbGwgcGNoLiR7UHJlY29tcGlsZWRC
YXNlbmFtZX0pCisgICAgICAgIGVuZGlmICgpCiAgICAgZW5kaWYgKCkKICAgICAjRklYTUU6IEFk
ZCBzdXBwb3J0IGZvciBYY29kZS4KIGVuZG1hY3JvKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtlIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvUGxhdGZv
cm1XaW4uY21ha2UKaW5kZXggNjg1MThkMjE4MWIyMTAxNjY2ODk4M2M2NzE0ZThkMWJlZmQ0ODdk
OC4uNjMzOGVmZDI5MWZlMTE3ZjJjZDViYzIzYzRjMmYxM2I5OTUwOTM1YyAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTEwNCw3ICsxMDQsOCBAQCBlbHNlICgpCiAg
ICAgKQogZW5kaWYgKCkKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIkR1bXBSZW5k
ZXJUcmVlUHJlZml4LmgiICJ3aW4vRHVtcFJlbmRlclRyZWVQcmVmaXguY3BwIiBEdW1wUmVuZGVy
VHJlZUxpYl9TT1VSQ0VTKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIkR1bXBSZW5k
ZXJUcmVlUHJlZml4LmgiCisgICAgIndpbi9EdW1wUmVuZGVyVHJlZVByZWZpeC5jcHAiIER1bXBS
ZW5kZXJUcmVlTGliX1NPVVJDRVMgRHVtcFJlbmRlclRyZWVMaWIpCiBzZXQoQ01BS0VfU0hBUkVE
X0xJTktFUl9GTEFHUyAiJHtDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTfSAvTk9ERUZBVUxUTElC
Ok1TVkNSVCAvTk9ERUZBVUxUTElCOk1TVkNSVEQiKQogYWRkX2RlZmluaXRpb25zKC1EVVNFX0NP
TlNPTEVfRU5UUllfUE9JTlQpCiAKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwpp
bmRleCAyYjZhNDQ0ZDAyNjM5YzFhMmI5ODYzYmVkMDE4ZTFkYTY3NjMxMDc2Li41ZDhlNDM0NGFi
YzI1MjQ2YjBiMTQyZTQyMWNjMGM5NDM5MWZlZmRkIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysr
IGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTctMDktMDEgIEFkcmlhbiBQZXJleiBk
ZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2VdIEVuYWJsZSBw
cmUtY29tcGlsZWQgaGVhZGVycyAoUENIKSAoY290aXJlKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNt
YWtlOgorCisyMDE3LTA5LTAxICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0NNYWtlXSBFbmFibGUgcHJlLWNvbXBpbGVkIGhlYWRlcnMgKFBD
SCkgKGNvdGlyZSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzOTQzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB1c2luZyBDb3RpcmUgKGh0dHBzOi8vZ2l0aHViLmNv
bS9zYWtyYS9jb3RpcmUvKSB0byBnZW5lcmF0ZSBhbmQKKyAgICAgICAgdXNlIHByZWNvbXBpbGVk
IGhlYWRlcnMgd2hpbGUgYnVpbGRpbmcuIFRoZSBmZWF0dXJlIGlzIGRpc2FibGVkIGJ5IGRlZmF1
bHQuIEluIG9yZGVyCisgICAgICAgIHRvIGVuYWJsZSwgcGFzcyAiLURFTkFCTEVfUFJFQ09NUElM
RURfSEVBREVSUz1UUlVFIiB0byBDTWFrZSwgZWl0aGVyIGRpcmVjdGx5IG9yIHVzaW5nCisgICAg
ICAgICJ3ZWJraXQtYnVpbGQgLS1jbWFrZWFyZ3M9Jy1ERU5BQkxFX1BSRUNPTVBJTEVEX0hFQURF
UlM9VFJVRSciIGZvciBkZXZlbG9wbWVudCBidWlsZHMuCisKKyAgICAgICAgUHJlY29tcGlsZWQg
aGVhZGVyIGFyZSBnZW5lcmF0ZWQgZm9yIEphdmFTY3JpcHRDb3JlIGFuZCBXZWJDb3JlIGZyb20g
dGhlIHByZXByb2Nlc3NlZAorICAgICAgICBvdXRwdXQgb2YgU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlUHJlZml4LmggYW5kIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXgu
aCwKKyAgICAgICAgcmVzcGVjdGl2ZWx5LiBUaGlzIGFwcHJvYWNoIGlzIHByZWZlcnJlZCBvdmVy
IGxldHRpbmcgQ290aXJlIGdlbmVyYXRlIG9uZSBhdXRvbWF0aWNhbGx5LAorICAgICAgICB3aGlj
aCBpcyBmZWVibGUgYW5kIHJlc3VsdHMgaW4gYnVpbGQgZmFpbHVyZXMgaW4gV2ViQ29yZS4gVGhl
IHByZWZpeCBoZWFkZXJzIGluY2x1ZGUKKyAgICAgICAgb3RoZXIgaGVhZGVycyB3aGljaCBhcmUg
dW5saWtlbHkgdG8gY2hhbmdlOiBzeXN0ZW0gaGVhZGVycywgYW5kIHRob3NlIGluIHRoZSBKSEJ1
aWxkCisgICAgICAgIGlmIHByZXNlbnQuIFRoYXQgbWVhbnMgdGhhdCBzdWJwcm9qZWN0IGhlYWRl
cnMgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgcHJlY29tcGlsZWQKKyAgICAgICAgaGVhZGVyIChl
LmcuIHRoZSBwcmVjb21waWxlZCBoZWFkZXIgdXNlZCBmb3IgV2ViQ29yZSBkb2VzIG5vdCAjaW5j
bHVkZSBoZWFkZXJzIGZyb20KKyAgICAgICAgSmF2YVNjcmlwdENvcmUpLCB3aGljaCBpcyBzb21l
dGhpbmcgbGVmdCB0byBpbnZlc3RpZ2F0ZSBpbiBhIHBvdGVudGlhbCBmb2xsb3ctdXAgcGF0Y2gu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogSW5jbHVkZSB0aGUgY290aXJlLmNtYWtlIHNu
aXBwZXQuCisgICAgICAgICogU291cmNlL2NtYWtlL2NvdGlyZS5jbWFrZTogQWRkZWQuCisKIDIw
MTctMDgtMzEgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAg
ICBbQ01ha2VdIE1ha2UgVVNFX0NGIGNvbmRpdGlvbmFsIHdpdGhpbiBXaW5kb3dzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320349</attachid>
            <date>2017-09-09 10:15:38 -0700</date>
            <delta_ts>2017-09-09 14:46:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139438-20170909201536.patch</filename>
            <type>text/plain</type>
            <size>19981</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxODIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggZGExYmExZDliZTE1N2I1ODNjODEwNzhiYWRiZWZkZWFkNWJiMjBmYS4uMjQyYmZj
NGU3MDMyMWU0ZjAwOWRiYmE0Yzk5ZDUwNmE3YjU3ZWNjYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMTYwMywzICsxNjAzLDUgQEAgaWYgKE1TVkMpCiAgICAgICAgIENP
TU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCS0lUX0xJQlJBUklFU19ESVJ9L3Rvb2xzL3Nj
cmlwdHMvdmVyc2lvbi1zdGFtcC5wbCAke0RFUklWRURfU09VUkNFU19ESVJ9ICQ8VEFSR0VUX0ZJ
TEU6SmF2YVNjcmlwdENvcmU+CiAgICAgICAgIFZFUkJBVElNKQogZW5kaWYgKCkKKworV0VCS0lU
X0FERF9QUkVDT01QSUxFRF9IRUFERVIoSmF2YVNjcmlwdENvcmUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXguY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGYzZjQ1OGNm
NDNkZmM1YmJmMzBhZjZkYjBkNGJmMGM1ZTJjOTFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmNwcApAQCAtMCwwICsxLDI2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
IkphdmFTY3JpcHRDb3JlUHJlZml4LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDcwZTFhN2Zk
MDJiNWM2NGViZDRhYzkwZGYxZjEzNGY0ZTA1NmRjNWEuLmUwYmNhMzExMjYyZGI1YWJkZWNiOGUz
MDgyYWM2NTI4NWFiNWJiMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MDIzLDEwICs0MDIz
LDggQEAgV0VCS0lUX1dSQVBfU09VUkNFTElTVCgke1dlYkNvcmVfSURMX0ZJTEVTfSAke1dlYkNv
cmVfREVSSVZFRF9TT1VSQ0VTfSkKIFdFQktJVF9XUkFQX1NPVVJDRUxJU1QoJHtXZWJDb3JlX1NP
VVJDRVN9KQogV0VCS0lUX1dSQVBfU09VUkNFTElTVCgke1dlYkNvcmVUZXN0U3VwcG9ydF9JRExf
RklMRVN9ICR7V2ViQ29yZVRlc3RTdXBwb3J0X1NPVVJDRVN9KQogCi1pZiAoTVNWQykKLSAgICBX
RUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViQ29yZVByZWZpeC5oIiAiV2ViQ29yZVBy
ZWZpeC5jcHAiIFdlYkNvcmVfU09VUkNFUykKLSAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hF
QURFUigiV2ViQ29yZVByZWZpeC5oIiAiV2ViQ29yZURlcml2ZWRTb3VyY2VzUHJlZml4LmNwcCIg
V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVMpCi1lbmRpZiAoKQorV0VCS0lUX0FERF9QUkVDT01QSUxF
RF9IRUFERVIoV2ViQ29yZSkKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKFdlYkNvcmUg
Q1BQICJXZWJDb3JlRGVyaXZlZFNvdXJjZXNQcmVmaXguY3BwIiBTT1VSQ0VTIFdlYkNvcmVfREVS
SVZFRF9TT1VSQ0VTKQogCiAjIFRoaXMgaXMgc3BsaXQgaW50byBhIHNlcGFyYXRlIGxpYnJhcnkg
YXMgYSB3b3JrYXJvdW5kIGZvciBjb21tYW5kIGxpbmUgbGVuZ3RoCiAjIGxpbWl0cy4gVGhpcyBz
aG91bGQgbm8gbG9uZ2VyIGJlIG5lZWRlZCB3aGVuIENNYWtlIHN1cHBvcnRzIE5pbmphIHJlc3Bv
bnNlCkBAIC00MDYwLDkgKzQwNTgsOSBAQCBpZiAoQ01BS0VfQ09NUElMRVJfSVNfR05VQ1hYIEFO
RCAiJHtMT1dFUkNBU0VfQ01BS0VfSE9TVF9TWVNURU1fUFJPQ0VTU09SfSIgTUFUQwogICAgIFdF
QktJVF9BRERfVEFSR0VUX0NYWF9GTEFHUyhXZWJDb3JlIC1mbm8tdHJlZS1zcmEpCiBlbmRpZiAo
KQogCi1pZiAoTVNWQykKLSAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViQ29y
ZVRlc3RTdXBwb3J0UHJlZml4LmgiICJ0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZp
eC5jcHAiIFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTKQotZW5kaWYgKCkKK1dFQktJVF9BRERf
UFJFQ09NUElMRURfSEVBREVSKFdlYkNvcmVUZXN0U3VwcG9ydAorICAgIEhFQURFUiAidGVzdGlu
Zy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaCIKKyAgICBDUFAgInRlc3RpbmcvanMvV2Vi
Q29yZVRlc3RTdXBwb3J0UHJlZml4LmNwcCIpCiAKIGFkZF9saWJyYXJ5KFdlYkNvcmVUZXN0U3Vw
cG9ydCAke1dlYkNvcmVUZXN0U3VwcG9ydF9MSUJSQVJZX1RZUEV9ICR7V2ViQ29yZVRlc3RTdXBw
b3J0X1NPVVJDRVN9KQogYWRkX2RlcGVuZGVuY2llcyhXZWJDb3JlVGVzdFN1cHBvcnQgV2ViQ29y
ZSBXZWJDb3JlVGVzdFN1cHBvcnRCaW5kaW5ncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmVQcmVmaXguaCBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaAppbmRleCA2
MWE1OWE1ZDE0NGFjNTYzNzI0Mjk0MTUxNWRkMWZkMjQwZWNjYzBkLi5jNDA4NDQyMDA4OGIwZmVi
NDFkMTQzOWU1ZTk5ZjA2OTY5NjQ2MDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlUHJlZml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oCkBAIC0xMjUs
NiArMTI1LDI5IEBACiAKICNpZiBQTEFURk9STShXSU5fQ0FJUk8pCiAjaW5jbHVkZSA8d2luZG93
cy5oPgorCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKKworI2lmIFVTRShD
QUlSTykKKyNpbmNsdWRlIDxjYWlyby9jYWlyby5oPgorI2VuZGlmCisKKyNpZiBVU0UoSEFSRkJV
WlopCisjaW5jbHVkZSA8aGIuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8
Z2xpYi5oPgorI2VuZGlmCisKKyNpZiBVU0UoU09VUCkKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAu
aD4KKyNlbmRpZgorCisjaWYgVVNFKEdTVFJFQU1FUikKKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+Cisj
ZW5kaWYKKwogI2Vsc2UKIAogI2lmIE9TKFdJTkRPV1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaAppbmRleCBmZTNhN2Y1YzYw
YWY5YjA1ZTk2MTdhYmZmMTA1MThiMDQ0ZjEwMGFiLi5kNmE0YzdkMDExNDU2NTYyZmM3MTJkYWFh
MDZlZWQ1OWRkMWQ2OWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dl
YkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMv
V2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgKQEAgLTEwMSw2ICsxMDEsMjkgQEAKIAogI2lmIFBM
QVRGT1JNKFdJTl9DQUlSTykKICNpbmNsdWRlIDx3aW5kb3dzLmg+CisjZWxpZiBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkKKworI2lmIFVTRShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby9j
YWlyby5oPgorI2VuZGlmCisKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDxnbGliLmg+CisjZW5k
aWYKKworI2lmIFVTRShTT1VQKQorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2VuZGlmCisK
KyNpZiBVU0UoTElCRVBPWFkpCisjaW5jbHVkZSA8ZXBveHkuaD4KKyNlbmRpZgorCisjaWYgVVNF
KEdTVFJFQU1FUikKKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjZW5kaWYKKworCiAjZWxzZQogCiAj
aWYgT1MoV0lORE9XUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDk2YWE0ZDQyMjdhYTAxYTcwOWVm
MTNjNzRmZmVmOTg1ZmViYzA4ZDQuLjMyZTQ2ODI2NjZlMTc2ZWFhNTBjYzE2MWZiZTEzOTFmM2Zl
ZGU4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtOTM2LDYgKzkzNiw4IEBAIGlmIChOT1QgIiR7
UE9SVH0iIFNUUkVRVUFMICJNYWMiKQogICAgIGlmIChXZWJLaXQyX1N0b3JhZ2VQcm9jZXNzX09V
VFBVVF9OQU1FKQogICAgICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoU3RvcmFnZVByb2Nlc3Mg
UFJPUEVSVElFUyBPVVRQVVRfTkFNRSAke1dlYktpdDJfU3RvcmFnZVByb2Nlc3NfT1VUUFVUX05B
TUV9KQogICAgIGVuZGlmICgpCisKKyAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihT
dG9yYWdlUHJvY2VzcyBIRUFERVIgIldlYktpdDJQcmVmaXguaCIgQ1BQICJXZWJLaXQyUHJlZml4
LmNwcCIpCiBlbmRpZiAoKQogCiAjIFN1cHByZXNzIHVudXNlZCBwYXJhbWV0ZXIgd2FybmluZ3Mg
Zm9yIHNvdXJjZXMgaW4gV2ViS2l0Mi4KQEAgLTk5NywzICs5OTksNyBAQCBlbHNlICgpCiAgICAg
ICAgIFJVTlRJTUUgREVTVElOQVRJT04gIiR7TElCRVhFQ19JTlNUQUxMX0RJUn0iCiAgICAgKQog
ZW5kaWYgKCkKKworV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViS2l0MikKK1dFQktJ
VF9BRERfUFJFQ09NUElMRURfSEVBREVSKFdlYlByb2Nlc3MgSEVBREVSICJXZWJLaXQyUHJlZml4
LmgiIENQUCAiV2ViS2l0MlByZWZpeC5jcHAiKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFE
RVIoTmV0d29ya1Byb2Nlc3MgSEVBREVSICJXZWJLaXQyUHJlZml4LmgiIENQUCAiV2ViS2l0MlBy
ZWZpeC5jcHAiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmggYi9T
b3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaAppbmRleCA3MjFjYmQ1YjRlNjk3ZmEwYjczYzA1
NjkzNDJjMTk0NDkzNDc3MDY3Li41ZGFjZTliY2NmNDNkMDk1N2I2MzlkMzRjNDI2ZjZiMmYwOGI1
ZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaApAQCAtNTcsNiArNTcsMzEgQEAKIAogI2lmIFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogI2RlZmluZSBFTkFCTEVfU0hBUkVBQkxFX1JFU09V
UkNFIDEKKworI2lmIFVTRShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby9jYWlyby5oPgorI2VuZGlm
CisKKyNpZiBVU0UoSEFSRkJVWlopCisjaW5jbHVkZSA8aGIuaD4KKyNlbmRpZgorCisjaWYgVVNF
KEdMSUIpCisjaW5jbHVkZSA8Z2xpYi5oPgorI2VuZGlmCisKKyNpZiBVU0UoU09VUCkKKyNpbmNs
dWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdTVFJFQU1FUikKKyNpbmNs
dWRlIDxnc3QvZ3N0Lmg+CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlIDxn
dGsvZ3RrLmg+CisjZW5kaWYKKwogI2VuZGlmCiAKIC8qIFdoZW4gQysrIGV4Y2VwdGlvbnMgYXJl
IGRpc2FibGVkLCB0aGUgQysrIGxpYnJhcnkgZGVmaW5lcyB8dHJ5fCBhbmQgfGNhdGNofApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvQ01ha2VMaXN0cy50eHQKaW5kZXggYjc0YTEwMzc3OWE3Nzc5ZGI5NWQ2N2IwOWI2
NmI5Y2I5OWIxMjRiNS4uMjY2M2E4ZmI5NDBlYzkxMTQwYWJkN2MzNmRiMWY3MDlmZDM2ZDc2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlzdHMudHh0CkBAIC0zOSw3ICszOSw3IEBAIFdFQktJVF9G
UkFNRVdPUktfREVDTEFSRShXZWJLaXQpCiBXRUJLSVRfSU5DTFVERV9DT05GSUdfRklMRVNfSUZf
RVhJU1RTKCkKIAogaWYgKE1TVkMpCi0gICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIo
IldlYktpdFByZWZpeC5oIiAid2luL1dlYktpdFByZWZpeC5jcHAiIFdlYktpdF9TT1VSQ0VTKQor
ICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKFdlYktpdCBDUFAgIndpbi9XZWJLaXRQ
cmVmaXguY3BwIikKICAgICBsaXN0KEFQUEVORCBXZWJLaXRfU09VUkNFUyB3aW4vV2ViS2l0LnJl
c291cmNlcy9XZWJLaXQucmMpCiAgICAgYWRkX2RlZmluaXRpb25zKC9EV0VCS0lUX0VYUE9SVFMg
L0RGUkFNRVdPUktfTkFNRT1XZWJLaXQpCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL2Nt
YWtlL1dlYktpdE1hY3Jvcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UK
aW5kZXggN2JjODk1NDM4ZjFiZGJiOWVlYmZkNWM3ZWMzZGUyMTdiNzY1ZTI0Yi4uZmQ0NmM3MWJl
YTRjMDI3YWRmMjJkNjk5YmQ3ZThkMTA4MmY1Mzk3NCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtl
L1dlYktpdE1hY3Jvcy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtl
CkBAIC0xMiw2ICsxMiw1OSBAQCBtYWNybyhXRUJLSVRfSU5DTFVERV9DT05GSUdfRklMRVNfSUZf
RVhJU1RTKQogICAgIGVuZGlmICgpCiBlbmRtYWNybygpCiAKK2Z1bmN0aW9uKFdFQktJVF9UQVJH
RVRfR0VUX0VYVFJBX0NPTVBJTEVSX0ZMQUdTIF90YXJnZXQgX291dHB1dF92YXJpYWJsZV9uYW1l
KQorICAgIHN0cmluZyhUT1VQUEVSICIke0NNQUtFX0JVSUxEX1RZUEV9IiBfYnVpbGRfdHlwZSkK
KworICAgIHNldChfZXh0cmFfZmxhZ3MgIiIpICAjIExpc3Qgb2YgZ2F0aGVyZWQgZXh0cmEgZmxh
Z3MuCisgICAgaWYgKENNQUtFX0NYWF9GTEFHUykKKyAgICAgICAgc2V0KF9leHRyYV9mbGFncyAi
JHtfZXh0cmFfZmxhZ3N9ICR7Q01BS0VfQ1hYX0ZMQUdTfSIpCisgICAgZW5kaWYgKCkKKyAgICBp
ZiAoQ01BS0VfQ1hYX0ZMQUdTXyR7X2J1aWxkX3R5cGV9KQorICAgICAgICBzZXQoX2V4dHJhX2Zs
YWdzICIke19leHRyYV9mbGFnc30gJHtDTUFLRV9DWFhfRkxBR1NfJHtfYnVpbGRfdHlwZX19IikK
KyAgICBlbmRpZiAoKQorCisgICAgIyBDb252ZXJ0IHRoZSBzdHJpbmcgaW50byBhIGxpc3QsIGZv
ciBlYXNpZXIgaGFuZGxpbmcgZnJvbSB0aGlzIHBvaW50LgorICAgIGlmIChVTklYKQorICAgICAg
ICBzZXBhcmF0ZV9hcmd1bWVudHMoX2V4dHJhX2ZsYWdzIFVOSVhfQ09NTUFORCAiJHtfZXh0cmFf
ZmxhZ3N9IikKKyAgICBlbHNlaWYgKFdJTjMyKQorICAgICAgICBzZXBhcmF0ZV9hcmd1bWVudHMo
X2V4dHJhX2ZsYWdzIFdJTkRPV1NfQ09NTUFORCAiJHtfZXh0cmFfZmxhZ3N9IikKKyAgICBlbHNl
ICgpCisgICAgICAgIHNlcGFyYXRlX2FyZ3VtZW50cyhfZXh0cmFfZmxhZ3MpCisgICAgZW5kaWYg
KCkKKworICAgICMgTGFuZ3VhZ2Ugc3RhbmRhcmQgcHJvcGVydGllcy4KKyAgICBpZiAoQ01BS0Vf
Q1hYX1NUQU5EQVJEX0RFRkFVTFQpCisgICAgICAgICMgQ29tcGlsZXIgc3VwcG9ydHMgc2V0dGlu
ZyAtc3RkPS4uLgorICAgICAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5KF90YXJnZXRfbGFuZ3N0ZCAk
e190YXJnZXR9IENYWF9TVEFOREFSRCkKKyAgICAgICAgaWYgKF90YXJnZXRfbGFuZ3N0ZCkKKyAg
ICAgICAgICAgIHNldChfdHlwZSAiRVhURU5TSU9OIikKKyAgICAgICAgICAgIGdldF9wcm9wZXJ0
eShfY3h4X2V4dGVuc2lvbnNfc2V0IFRBUkdFVCAke190YXJnZXR9IFBST1BFUlRZIENYWF9FWFRF
TlNJT05TIFNFVCkKKyAgICAgICAgICAgIGlmIChfY3h4X2V4dGVuc2lvbnNfc2V0KQorICAgICAg
ICAgICAgICAgIGdldF90YXJnZXRfcHJvcGVydHkoX3RhcmdldF91c2VfZXh0ZW5zaW9ucyAke190
YXJnZXR9IENYWF9FWFRFTlNJT05TKQorICAgICAgICAgICAgICAgIGlmIChOT1QgX3RhcmdldF91
c2VfZXh0ZW5zaW9ucykKKyAgICAgICAgICAgICAgICAgICAgc2V0KF90eXBlICJTVEFOREFSRCIp
CisgICAgICAgICAgICAgICAgZW5kaWYgKCkKKyAgICAgICAgICAgIGVuZGlmICgpCisgICAgICAg
ICAgICBpZiAoQ01BS0VfQ1hYJHtfdGFyZ2V0X2xhbmdzdGR9XyR7X3R5cGV9X0NPTVBJTEVfT1BU
SU9OKQorICAgICAgICAgICAgICAgIGxpc3QoQVBQRU5EIF9leHRyYV9mbGFncyAiJHtDTUFLRV9D
WFgke190YXJnZXRfbGFuZ3N0ZH1fJHtfdHlwZX1fQ09NUElMRV9PUFRJT059IikKKyAgICAgICAg
ICAgIGVuZGlmICgpCisgICAgICAgIGVuZGlmICgpCisgICAgZW5kaWYgKCkKKworICAgICMgSGFu
ZGxlIFBJQy9QSUUgY29tcGlsZXIgZmxhZ3MuCisgICAgZ2V0X3RhcmdldF9wcm9wZXJ0eShfdGFy
Z2V0X3BpYyAke190YXJnZXR9IFBPU0lUSU9OX0lOREVQRU5ERU5UX0NPREUpCisgICAgaWYgKF90
YXJnZXRfcGljKQorICAgICAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5KF90eXBlICR7X3RhcmdldH0g
VFlQRSkKKyAgICAgICAgaWYgKF90eXBlIFNUUkVRVUFMICJFWEVDVVRBQkxFIiBBTkQgQ01BS0Vf
Q1hYX0NPTVBJTEVfT1BUSU9OU19QSUUpCisgICAgICAgICAgICBsaXN0KEFQUEVORCBfZXh0cmFf
ZmxhZ3MgIiR7Q01BS0VfQ1hYX0NPTVBJTEVfT1BUSU9OU19QSUV9IikKKyAgICAgICAgZWxzZWlm
IChDTUFLRV9DWFhfQ09NUElMRV9PUFRJT05TX1BJQykKKyAgICAgICAgICAgIGxpc3QoQVBQRU5E
IF9leHRyYV9mbGFncyAiJHtDTUFLRV9DWFhfQ09NUElMRV9PUFRJT05TX1BJQ30iKQorICAgICAg
ICBlbmRpZiAoKQorICAgIGVuZGlmICgpCisKKyAgICBzZXQoJHtfb3V0cHV0X3ZhcmlhYmxlX25h
bWV9ICR7X2V4dHJhX2ZsYWdzfSBQQVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCisKICMgQXBw
ZW5kIHRoZSBnaXZlbiBkZXBlbmRlbmNpZXMgdG8gdGhlIHNvdXJjZSBmaWxlCiBtYWNybyhXRUJL
SVRfQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMgX3NvdXJjZSBfZGVwcykKICAgICBzZXQoX3RtcCkK
QEAgLTI4LDMxICs4MSwxNDkgQEAgbWFjcm8oV0VCS0lUX0FERF9TT1VSQ0VfREVQRU5ERU5DSUVT
IF9zb3VyY2UgX2RlcHMpCiAgICAgdW5zZXQoX3RtcCkKIGVuZG1hY3JvKCkKIAotbWFjcm8oV0VC
S0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIgX2hlYWRlciBfY3BwIF9zb3VyY2UpCitmdW5jdGlv
bihXRUJLSVRfV1JJVEVfVEFSR0VUX0ZMQUdTX1RPX1JFU1BPTlNFX0ZJTEUgX3RhcmdldCBfZmls
ZW5hbWUpCisgICAgV0VCS0lUX1RBUkdFVF9HRVRfRVhUUkFfQ09NUElMRVJfRkxBR1MoJHtfdGFy
Z2V0fSBfZXh0cmFfZmxhZ3MpCisgICAgc2V0KF9pbnRlcmZhY2Vfc3lzdGVtX2luY2x1ZGVfZGly
ZWN0b3JpZXMgIiQ8VEFSR0VUX1BST1BFUlRZOiR7X3RhcmdldH0sSU5URVJGQUNFX1NZU1RFTV9J
TkNMVURFX0RJUkVDVE9SSUVTPiIpCisgICAgc2V0KF9pbnRlcmZhY2VfaW5jbHVkZV9kaXJlY3Rv
cmllcyAiJDxUQVJHRVRfUFJPUEVSVFk6JHtfdGFyZ2V0fSxJTlRFUkZBQ0VfSU5DTFVERV9ESVJF
Q1RPUklFUz4iKQorICAgIHNldChfc3lzdGVtX2luY2x1ZGVfZGlyZWN0b3JpZXMgIiQ8VEFSR0VU
X1BST1BFUlRZOiR7X3RhcmdldH0sU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVM+IikKKyAgICBz
ZXQoX3RhcmdldF9zeXN0ZW1faW5jbHVkZV9kaXJlY3RvcmllcyAiJHske190YXJnZXR9X1NZU1RF
TV9JTkNMVURFX0RJUkVDVE9SSUVTfSIpCisgICAgc2V0KF90YXJnZXRfaW5jbHVkZV9kaXJlY3Rv
cmllcyAiJHske190YXJnZXR9X0lOQ0xVREVfRElSRUNUT1JJRVN9IikKKyAgICBzZXQoX2luY2x1
ZGVfZGlyZWN0b3JpZXMgIiQ8VEFSR0VUX1BST1BFUlRZOiR7X3RhcmdldH0sSU5DTFVERV9ESVJF
Q1RPUklFUz4iKQorICAgIHNldChfY29tcGlsZV9kZWZpbml0aW9ucyAiJDxUQVJHRVRfUFJPUEVS
VFk6JHtfdGFyZ2V0fSxDT01QSUxFX0RFRklOSVRJT05TPiIpCisgICAgc2V0KF9jb21waWxlX2Zs
YWdzICIkPFRBUkdFVF9QUk9QRVJUWToke190YXJnZXR9LENPTVBJTEVfRkxBR1M+IikKKyAgICBz
ZXQoX2NvbXBpbGVfb3B0aW9ucyAiJDxUQVJHRVRfUFJPUEVSVFk6JHtfdGFyZ2V0fSxDT01QSUxF
X09QVElPTlM+IikKKyAgICBzZXQoX2ludGVyZmFjZV9zeXN0ZW1faW5jbHVkZV9kaXJlY3Rvcmll
cyAiJDwkPEJPT0w6JHtfaW50ZXJmYWNlX3N5c3RlbV9pbmNsdWRlX2RpcmVjdG9yaWVzfT46LWlz
eXN0ZW0gJDxKT0lOOiR7X2ludGVyZmFjZV9zeXN0ZW1faW5jbHVkZV9kaXJlY3Rvcmllc30sXG4t
aXN5c3RlbSA+XG4+IikKKyAgICBzZXQoX2ludGVyZmFjZV9pbmNsdWRlX2RpcmVjdG9yaWVzICIk
PCQ8Qk9PTDoke19pbnRlcmZhY2VfaW5jbHVkZV9kaXJlY3Rvcmllc30+Oi1JJDxKT0lOOiR7X2lu
dGVyZmFjZV9pbmNsdWRlX2RpcmVjdG9yaWVzfSxcbi1JPlxuPiIpCisgICAgc2V0KF90YXJnZXRf
c3lzdGVtX2luY2x1ZGVfZGlyZWN0b3JpZXMgIiQ8JDxCT09MOiR7X3RhcmdldF9zeXN0ZW1faW5j
bHVkZV9kaXJlY3Rvcmllc30+Oi1pc3lzdGVtICQ8Sk9JTjoke190YXJnZXRfc3lzdGVtX2luY2x1
ZGVfZGlyZWN0b3JpZXN9LFxuLWlzeXN0ZW0gPlxuPiIpCisgICAgc2V0KF90YXJnZXRfaW5jbHVk
ZV9kaXJlY3RvcmllcyAiJDwkPEJPT0w6JHtfdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXN9Pjot
SSQ8Sk9JTjoke190YXJnZXRfaW5jbHVkZV9kaXJlY3Rvcmllc30sXG4tST5cbj4iKQorICAgIHNl
dChfc3lzdGVtX2luY2x1ZGVfZGlyZWN0b3JpZXMgIiQ8JDxCT09MOiR7X3N5c3RlbV9pbmNsdWRl
X2RpcmVjdG9yaWVzfT46LWlzeXN0ZW0gJDxKT0lOOiR7X3N5c3RlbV9pbmNsdWRlX2RpcmVjdG9y
aWVzfSxcbi1pc3lzdGVtID5cbj4iKQorICAgIHNldChfaW5jbHVkZV9kaXJlY3RvcmllcyAiJDwk
PEJPT0w6JHtfaW5jbHVkZV9kaXJlY3Rvcmllc30+Oi1JJDxKT0lOOiR7X2luY2x1ZGVfZGlyZWN0
b3JpZXN9LFxuLUk+XG4+IikKKyAgICBzZXQoX2NvbXBpbGVfZGVmaW5pdGlvbnMgIiQ8JDxCT09M
OiR7X2NvbXBpbGVfZGVmaW5pdGlvbnN9PjotRCQ8Sk9JTjoke19jb21waWxlX2RlZmluaXRpb25z
fSxcbi1EPlxuPiIpCisgICAgc2V0KF9jb21waWxlX2ZsYWdzICIkPCQ8Qk9PTDoke19jb21waWxl
X2ZsYWdzfT46JDxKT0lOOiR7X2NvbXBpbGVfZmxhZ3N9LFxuPlxuPiIpCisgICAgc2V0KF9jb21w
aWxlX29wdGlvbnMgIiQ8JDxCT09MOiR7X2NvbXBpbGVfb3B0aW9uc30+OiQ8Sk9JTjoke19jb21w
aWxlX29wdGlvbnN9LFxuPlxuPiIpCisgICAgc2V0KF9leHRyYV9mbGFncyAiJDwkPEJPT0w6JHtf
ZXh0cmFfZmxhZ3N9PjokPEpPSU46JHtfZXh0cmFfZmxhZ3N9LFxuPlxuPiIpCisgICAgZmlsZShH
RU5FUkFURSBPVVRQVVQgIiR7X2ZpbGVuYW1lfSIgQ09OVEVOVCAiJHtfY29tcGlsZV9kZWZpbml0
aW9uc30ke19pbnRlcmZhY2Vfc3lzdGVtX2luY2x1ZGVfZGlyZWN0b3JpZXN9JHtfaW50ZXJmYWNl
X2luY2x1ZGVfZGlyZWN0b3JpZXN9JHtfdGFyZ2V0X3N5c3RlbV9pbmNsdWRlX2RpcmVjdG9yaWVz
fSR7X3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzfSR7X3N5c3RlbV9pbmNsdWRlX2RpcmVjdG9y
aWVzfSR7X2luY2x1ZGVfZGlyZWN0b3JpZXN9JHtfY29tcGlsZV9mbGFnc30ke19jb21waWxlX29w
dGlvbnN9JHtfZXh0cmFfZmxhZ3N9XG4iKQorZW5kZnVuY3Rpb24oKQorCittYWNybyhXRUJLSVRf
QUREX1BSRUNPTVBJTEVEX0hFQURFUiBfdGFyZ2V0KQorICAgIGNtYWtlX3BhcnNlX2FyZ3VtZW50
cyhfUENIICIiICJIRUFERVI7Q1BQIiAiU09VUkNFUyIgJHtBUkdOfSkKKworICAgIGlmIChOT1Qg
X1BDSF9IRUFERVIpCisgICAgICAgIHNldChfUENIX0hFQURFUiAiJHtfdGFyZ2V0fVByZWZpeC5o
IikKKyAgICBlbmRpZiAoKQorCisgICAgaWYgKE5PVCBfUENIX0NQUCkKKyAgICAgICAgZ2V0X2Zp
bGVuYW1lX2NvbXBvbmVudChfUENIX0NQUCAiJHtfUENIX0hFQURFUn0iIE5BTUVfV0UpCisgICAg
ICAgIHNldChfUENIX0NQUCAiJHtfUENIX0NQUH0uY3BwIikKKyAgICBlbmRpZiAoKQorCisgICAg
aWYgKE5PVCBfUENIX1NPVVJDRVMpCisgICAgICAgIHNldChfUENIX1NPVVJDRVMgJHtfdGFyZ2V0
fV9TT1VSQ0VTKQorICAgIGVuZGlmICgpCisKKyAgICBtZXNzYWdlKFNUQVRVUyAiUENIIGZvciAk
e19QQ0hfU09VUkNFU306ICR7X1BDSF9IRUFERVJ9LCBDUFA6ICR7X1BDSF9DUFB9IikKKworICAg
IGdldF9maWxlbmFtZV9jb21wb25lbnQoUHJlY29tcGlsZWRCYXNlbmFtZSAiJHtfUENIX0NQUH0i
IE5BTUVfV0UpCisgICAgc2V0KF9wY2hfZGlyICIke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0v
JHtfUENIX1NPVVJDRVN9IikKKyAgICBzZXQoX3NvdXJjZXMgJHske19QQ0hfU09VUkNFU319KQor
ICAgIGZpbGUoTUFLRV9ESVJFQ1RPUlkgIiR7X3BjaF9kaXJ9IikKKwogICAgIGlmIChNU1ZDKQot
ICAgICAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KFByZWNvbXBpbGVkQmFzZW5hbWUgJHtfY3Bw
fSBOQU1FX1dFKQotICAgICAgICBmaWxlKE1BS0VfRElSRUNUT1JZICIke0NNQUtFX0NVUlJFTlRf
QklOQVJZX0RJUn0vJHtfc291cmNlfSIpCi0gICAgICAgIHNldChQcmVjb21waWxlZEJpbmFyeSAi
JHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7X3NvdXJjZX0vJHtQcmVjb21waWxlZEJhc2Vu
YW1lfS5wY2giKQotICAgICAgICBzZXQoX3NvdXJjZXMgJHske19zb3VyY2V9fSkKLQorICAgICAg
ICBzZXQoUHJlY29tcGlsZWRCaW5hcnkgIiR7X3BjaF9kaXJ9LyR7UHJlY29tcGlsZWRCYXNlbmFt
ZX0ucGNoIikKICAgICAgICAgIyBjbGFuZy1jbCByZXF1aXJlcyAvRkkgd2l0aCAvWWMKICAgICAg
ICAgaWYgKENPTVBJTEVSX0lTX0NMQU5HX0NMKQotICAgICAgICAgICAgc2V0X3NvdXJjZV9maWxl
c19wcm9wZXJ0aWVzKCR7X2NwcH0KLSAgICAgICAgICAgICAgICBQUk9QRVJUSUVTIENPTVBJTEVf
RkxBR1MgIi9ZY1wiJHtfaGVhZGVyfVwiIC9GcFwiJHtQcmVjb21waWxlZEJpbmFyeX1cIiAvRklc
IiR7X2hlYWRlcn1cIiIKKyAgICAgICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygk
e19QQ0hfQ1BQfQorICAgICAgICAgICAgICAgIFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAiL1lj
XCIke19QQ0hfSEVBREVSfVwiIC9GcFwiJHtQcmVjb21waWxlZEJpbmFyeX1cIiAvRklcIiR7X1BD
SF9IRUFERVJ9XCIiCiAgICAgICAgICAgICAgICAgT0JKRUNUX09VVFBVVFMgIiR7UHJlY29tcGls
ZWRCaW5hcnl9IikKICAgICAgICAgZWxzZSAoKQotICAgICAgICAgICAgc2V0X3NvdXJjZV9maWxl
c19wcm9wZXJ0aWVzKCR7X2NwcH0KLSAgICAgICAgICAgICAgICBQUk9QRVJUSUVTIENPTVBJTEVf
RkxBR1MgIi9ZY1wiJHtfaGVhZGVyfVwiIC9GcFwiJHtQcmVjb21waWxlZEJpbmFyeX1cIiIKKyAg
ICAgICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygke19QQ0hfQ1BQfQorICAgICAg
ICAgICAgICAgIFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAiL1ljXCIke19QQ0hfSEVBREVSfVwi
IC9GcFwiJHtQcmVjb21waWxlZEJpbmFyeX1cIiIKICAgICAgICAgICAgICAgICBPQkpFQ1RfT1VU
UFVUUyAiJHtQcmVjb21waWxlZEJpbmFyeX0iKQogICAgICAgICBlbmRpZiAoKQogICAgICAgICBz
ZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtfc291cmNlc30KLSAgICAgICAgICAgIFBST1BF
UlRJRVMgQ09NUElMRV9GTEFHUyAiL1l1XCIke19oZWFkZXJ9XCIgL0ZJXCIke19oZWFkZXJ9XCIg
L0ZwXCIke1ByZWNvbXBpbGVkQmluYXJ5fVwiIikKKyAgICAgICAgICAgIFBST1BFUlRJRVMgQ09N
UElMRV9GTEFHUyAiL1l1XCIke19QQ0hfSEVBREVSfVwiIC9GSVwiJHtfUENIX0hFQURFUn1cIiAv
RnBcIiR7UHJlY29tcGlsZWRCaW5hcnl9XCIiKQogCiAgICAgICAgIGZvcmVhY2ggKF9zcmMgJHtf
c291cmNlc30pCiAgICAgICAgICAgICBXRUJLSVRfQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtf
c3JjfSAke1ByZWNvbXBpbGVkQmluYXJ5fSkKICAgICAgICAgZW5kZm9yZWFjaCAoKQogCi0gICAg
ICAgIGxpc3QoQVBQRU5EICR7X3NvdXJjZX0gJHtfY3BwfSkKKyAgICAgICAgbGlzdChBUFBFTkQg
JHtfUENIX1NPVVJDRVN9ICR7X1BDSF9DUFB9KQorICAgIGVsc2VpZiAoREVGSU5FRCBFTkFCTEVf
UFJFQ09NUElMRURfSEVBREVSUyBBTkQgRU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUlMKKyAgICAg
ICAgICAgIEFORCBDT01QSUxFUl9JU19HQ0NfT1JfQ0xBTkcgQU5EIFRBUkdFVCAke190YXJnZXR9
KQorICAgICAgICAjCisgICAgICAgICMgT25seSBhZGQgdGhlIFBDSCBjb21waWxhdGlvbiB0YXJn
ZXQgaWYgaXQgZG9lcyBub3QgeWV0IGV4aXN0LgorICAgICAgICAjIFhYWDogU2hvdWxkIHdlIHdh
cm4gaGVyZSBpZiB0aGUgdXNlciBpcyB0cnlpbmcgdG8gcmUtYWRkIGEgUENIPworICAgICAgICAj
CisgICAgICAgIGlmIChOT1QgVEFSR0VUIHBjaC4ke19QQ0hfU09VUkNFU30pCisgICAgICAgICAg
ICAjIEZvciBhZGRlZCByb2J1c3RuZXNzLCB1c2UgZnVsbCBwYXRocy4KKyAgICAgICAgICAgIGdl
dF9maWxlbmFtZV9jb21wb25lbnQoX2hlYWRlcl9wYXRoICIke19wY2hfZGlyfS9wY2guaCIgUkVB
TFBBVEgpCisKKyAgICAgICAgICAgIGlmIChDT01QSUxFUl9JU19DTEFORykKKyAgICAgICAgICAg
ICAgICBzZXQoX2luY2x1ZGVfcGNoX2ZsYWdzICItaW5jbHVkZS1wY2ggJHtfaGVhZGVyX3BhdGh9
LmdjaCIpCisgICAgICAgICAgICBlbHNlICgpCisgICAgICAgICAgICAgICAgc2V0KF9pbmNsdWRl
X3BjaF9mbGFncyAiLWluY2x1ZGUgJHtfaGVhZGVyX3BhdGh9IikKKyAgICAgICAgICAgIGVuZGlm
ICgpCisKKyAgICAgICAgICAgICMgTWFrZSBlYWNoIHNvdXJjZSBmaWxlIGRlcGVuZCBvbiB0aGUg
UENILgorICAgICAgICAgICAgZm9yZWFjaCAoX3NyYyAke19zb3VyY2VzfSkKKyAgICAgICAgICAg
ICAgICBpZiAoX3NyYyBNQVRDSEVTIFxcLlwoY2N8Y3h4fGNwcFwpJCkKKyAgICAgICAgICAgICAg
ICAgICAgZ2V0X3NvdXJjZV9maWxlX3Byb3BlcnR5KF9zcmNfZGVwZW5kZW5jaWVzICIke19zcmN9
IiBPQkpFQ1RfREVQRU5EUykKKyAgICAgICAgICAgICAgICAgICAgaWYgKE5PVCBfc3JjX2RlcGVu
ZGVuY2llcykKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldChfc3JjX2RlcGVuZGVuY2llcyAi
IikKKyAgICAgICAgICAgICAgICAgICAgZW5kaWYgKCkKKyAgICAgICAgICAgICAgICAgICAgbGlz
dChBUFBFTkQgX3NyY19kZXBlbmRlbmNpZXMgIiR7X2hlYWRlcl9wYXRofS5nY2giKQorCisgICAg
ICAgICAgICAgICAgICAgIGdldF9zb3VyY2VfZmlsZV9wcm9wZXJ0eShfc3JjX2NvbXBpbGVfZmxh
Z3MgIiR7X3NyY30iIENPTVBJTEVfRkxBR1MpCisgICAgICAgICAgICAgICAgICAgIGlmIChOT1Qg
X3NyY19jb21waWxlX2ZsYWdzXykKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldChfc3JjX2Nv
bXBpbGVfZmxhZ3MgIiIpCisgICAgICAgICAgICAgICAgICAgIGVuZGlmICgpCisgICAgICAgICAg
ICAgICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygke19zcmN9IFBST1BFUlRJRVMK
KyAgICAgICAgICAgICAgICAgICAgICAgIE9CSkVDVF9ERVBFTkRTICIke19zcmNfZGVwZW5kZW5j
aWVzfSIKKyAgICAgICAgICAgICAgICAgICAgICAgIENPTVBJTEVfRkxBR1MgIi1XaW52YWxpZC1w
Y2ggJHtfaW5jbHVkZV9wY2hfZmxhZ3N9ICR7X3NyY19jb21waWxlX2ZsYWdzfSIpCisgICAgICAg
ICAgICAgICAgZW5kaWYgKCkKKyAgICAgICAgICAgIGVuZGZvcmVhY2ggKCkKKworICAgICAgICAg
ICAgIyBXcml0ZSBhbGwgdGhlIGNvbXBpbGVyIGZsYWdzIHVzZWQgZm9yIHRoZSB0YXJnZXQgdG8g
YSByZXNwb25zZSBmaWxlLgorICAgICAgICAgICAgV0VCS0lUX1dSSVRFX1RBUkdFVF9GTEFHU19U
T19SRVNQT05TRV9GSUxFKCR7X3RhcmdldH0gIiR7X3BjaF9kaXJ9L2ZsYWdzLmluIikKKworICAg
ICAgICAgICAgIyBQb3N0LXByb2Nlc3MgdGhlIHJlc3BvbnNlIGZpbGUgdG8gZml4IHF1b3Rpbmcg
b2YgLURGT089InN0cmluZyIgZmxhZ3MsIGFuZAorICAgICAgICAgICAgIyBjb252ZXJ0IHRoZW0g
aW50byAtREZPTz1cInN0cmluZ1wiOyB0aGUgcmVzdCBvZiB0aGUgbGluZXMgYXJlIGxlZnQgdW50
b3VjaGVkLgorICAgICAgICAgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAgICAgICAgICAgICAg
IE9VVFBVVCAiJHtfcGNoX2Rpcn0vZmxhZ3MiCisgICAgICAgICAgICAgICAgTUFJTl9ERVBFTkRF
TkNZICIke19wY2hfZGlyfS9mbGFncy5pbiIKKyAgICAgICAgICAgICAgICBDT01NRU5UICJQcm9j
ZXNzaW5nICR7X3BjaF9kaXJ9L2ZsYWdzIgorICAgICAgICAgICAgICAgIENPTU1BTkQgc2VkIC1l
ICIvXiQkL2QiIC1lICInL14tRFtbOmFsbnVtOl1fXVxcKz1cIi4qXCIkJC9zL14tRFxcKFtbOmFs
bnVtOl1fXVxcK1xcKT1cIlxcKC4qXFwpXCIkJC8tRFxcMT1cXFxcXCJcXDJcXFxcXCIvJyIKKyAg
ICAgICAgICAgICAgICAgICAgIiR7X3BjaF9kaXJ9L2ZsYWdzLmluIiB8IHNvcnQgLXUgPiAiJHtf
cGNoX2Rpcn0vZmxhZ3MiCisgICAgICAgICAgICApCisKKyAgICAgICAgICAgICMgTWFrZSBhIGdl
bmVyYXRlZCBoZWFkZXIgaW5jbHVkZSB0aGUgcHJlZml4IGhlYWRlciBmcm9tIGl0cyBvcmlnaW5h
bCBsb2NhdGlvbi4KKyAgICAgICAgICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoX3ByZWZpeF9o
ZWFkZXJfcGF0aCAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LyR7X1BDSF9IRUFERVJ9IiBS
RUFMUEFUSCkKKyAgICAgICAgICAgIGZpbGUoV1JJVEUgIiR7X2hlYWRlcl9wYXRofSIgIiNpbmNs
dWRlIFwiJHtfcHJlZml4X2hlYWRlcl9wYXRofVwiIikKKworICAgICAgICAgICAgIyBDb21waWxl
IHRoZSBQQ0ggYXQgdGhlIHNhbWUgbG9jYXRpb24sIHdpdGggdGhlIHN1ZmZpeCBhZGRlZC4KKyAg
ICAgICAgICAgIGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgICAgICAgICBPVVRQVVQgIiR7
X2hlYWRlcl9wYXRofS5nY2giCisgICAgICAgICAgICAgICAgTUFJTl9ERVBFTkRFTkNZICIke19o
ZWFkZXJfcGF0aH0iCisgICAgICAgICAgICAgICAgSU1QTElDSVRfREVQRU5EUyBDWFggIiR7X2hl
YWRlcl9wYXRofSIKKyAgICAgICAgICAgICAgICBERVBFTkRTICIke19wY2hfZGlyfS9mbGFncyIK
KyAgICAgICAgICAgICAgICBDT01NRU5UICJQcmVjb21waWxpbmcgJHtfUENIX0hFQURFUn0gZm9y
ICR7X3RhcmdldH0iCisgICAgICAgICAgICAgICAgQ09NTUFORCAiJHtDTUFLRV9DWFhfQ09NUElM
RVJ9IiAiQCR7X3BjaF9kaXJ9L2ZsYWdzIgorICAgICAgICAgICAgICAgICAgICAteCBjKystaGVh
ZGVyIC1vICIke19oZWFkZXJfcGF0aH0uZ2NoIiAiJHtfaGVhZGVyX3BhdGh9IgorICAgICAgICAg
ICAgKQorCisgICAgICAgICAgICAjIEFkZCBhIG5ldyBjb252ZW5pZW5jZSBwY2guPGZvbz4gdGFy
Z2V0LgorICAgICAgICAgICAgYWRkX2N1c3RvbV90YXJnZXQocGNoLiR7X1BDSF9TT1VSQ0VTfQor
ICAgICAgICAgICAgICAgIFdPUktJTkdfRElSRUNUT1JZICIke0NNQUtFX0JJTkFSWV9ESVJ9Igor
ICAgICAgICAgICAgICAgIERFUEVORFMgIiR7X2hlYWRlcl9wYXRofS5nY2giCisgICAgICAgICAg
ICAgICAgVkVSQkFUSU0KKyAgICAgICAgICAgICkKKworICAgICAgICAgICAgIyBBZGQgdGhlIGNv
bnZlbmllbmNlIHRhcmdldCB0byB0aGUgcGNoLmFsbCBvbmUuCisgICAgICAgICAgICBpZiAoTk9U
IFRBUkdFVCBwY2guYWxsKQorICAgICAgICAgICAgICAgIGFkZF9jdXN0b21fdGFyZ2V0KHBjaC5h
bGwgV09SS0lOR19ESVJFQ1RPUlkgIiR7Q01BS0VfQklOQVJZX0RJUn0iIFZFUkJBVElNKQorICAg
ICAgICAgICAgZW5kaWYgKCkKKyAgICAgICAgICAgIGFkZF9kZXBlbmRlbmNpZXMocGNoLmFsbCBw
Y2guJHtfUENIX1NPVVJDRVN9KQorICAgICAgICBlbmRpZiAoKQogICAgIGVuZGlmICgpCiAgICAg
I0ZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgWGNvZGUuCiBlbmRtYWNybygpCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZSBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IDY4NTE4ZDIxODFiMjEwMTY2Njg5ODNjNjcxNGU4
ZDFiZWZkNDg3ZDguLjYzMzhlZmQyOTFmZTExN2YyY2Q1YmMyM2M0YzJmMTNiOTk1MDkzNWMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtlCkBAIC0xMDQsNyArMTA0LDggQEAg
ZWxzZSAoKQogICAgICkKIGVuZGlmICgpCiAKLVdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVS
KCJEdW1wUmVuZGVyVHJlZVByZWZpeC5oIiAid2luL0R1bXBSZW5kZXJUcmVlUHJlZml4LmNwcCIg
RHVtcFJlbmRlclRyZWVMaWJfU09VUkNFUykKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVS
KCJEdW1wUmVuZGVyVHJlZVByZWZpeC5oIgorICAgICJ3aW4vRHVtcFJlbmRlclRyZWVQcmVmaXgu
Y3BwIiBEdW1wUmVuZGVyVHJlZUxpYl9TT1VSQ0VTIER1bXBSZW5kZXJUcmVlTGliKQogc2V0KENN
QUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHU30gL05P
REVGQVVMVExJQjpNU1ZDUlQgL05PREVGQVVMVExJQjpNU1ZDUlREIikKIGFkZF9kZWZpbml0aW9u
cygtRFVTRV9DT05TT0xFX0VOVFJZX1BPSU5UKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320359</attachid>
            <date>2017-09-09 14:47:00 -0700</date>
            <delta_ts>2021-10-18 02:28:02 -0700</delta_ts>
            <desc>Patch (not for landing)</desc>
            <filename>bug-139438-20170910004658.patch</filename>
            <type>text/plain</type>
            <size>29830</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxODI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ZDYxN2QwNTQxYzUwNTNkZTEwZDI1OGYyYTYyZDMzM2RlODI3YTc5Li45NWQ2NzcyNmRiNDg2MmNj
ZWQzNGZhNjJmMGQ4ZjYzODQ0OTJiMDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAxNy0wOS0wOSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJz
IChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworCisgICAgICAg
IFRoaXMgcmV1c2VkIHRoZSBleGlzdGluZyBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigp
IG1hY3JvLCBhZGRpbmcKKyAgICAgICAgc3VwcG9ydCBmb3IgQ2xhbmcvR0NDIGFuZCBtYWtpbmcg
aXQgbW9yZSBjb252ZW5pZW50IHRvIHVzZS4gSW4gcGFydGljdWxhcjoKKworICAgICAgICAtIEZy
b20gdGhlIHBhc3NlZCB0YXJnZXQgbmFtZSwgdGhlIG1hY3JvIG5vdyBkZXJpdmVzIHRoZSBuYW1l
cyBvZiB0aGUKKyAgICAgICAgcHJlY29tcGlsZWQgaGVhZGVyLCB0aGUgbmFtZSBvZiB0aGUgY29y
cmVzcG9uZGluZyAuY3BwIGZpbGUgKG5lZWRlZAorICAgICAgICBmb3IgTVNWQyksIGFuZCB0aGUg
bmFtZSBvZiB0aGUgQ01ha2UgdmFyaWFibGUgd2hpY2ggY29udGFpbnMgdGhlIGxpc3QKKyAgICAg
ICAgb2Ygc291cmNlIGZpbGVzIHRoZSBQQ0ggYXBwbGllcyB0by4KKworICAgICAgICAtIEVhY2gg
b2YgdGhlIHBhcmFtZXRlcnMgY2FuIGJlIG92ZXJyaWRlbiB1c2luZyBrZXl3b3JkIGFyZ3VtZW50
cy4gVGhpcworICAgICAgICBpcyBuZWVkZWQgZm9yIHNldHMgb2Ygc291cmNlIGZpbGVzIHdoaWNo
IHJldXNlIHByZWZpeCBoZWFkZXJzIHVzZWQgZm9yCisgICAgICAgIG90aGVyIHRhcmdldHMgYXMg
d2VsbC4KKworICAgICAgICBJbnZvY2F0aW9ucyBvZiBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hF
QURFUigpIHdlcmUgaW52b2tlZCBvbmx5IGZvcgorICAgICAgICBNU1ZDLCBhbmQgd2VyZSByZW1v
dmVkIGJlY2F1c2UgYSBjaGVjayBmb3IgdGhlIGNvbXBpbGVyIGlzIGRvbmUgaW5zaWRlCisgICAg
ICAgIHRoZSBtYWNybyBhbnl3YXkuCisKKyAgICAgICAgTGFzdCBidXQgbm90IGxlYXN0LCB0aGUg
cHJlZml4IGhlYWRlcnMgbmVlZGVkIHNvbWUgZml4aW5nIHRvIG1ha2UgaXQKKyAgICAgICAgcG9z
c2libGUgdG8gdXNlIHRoZW0gZm9yIHRoZSBHVEsrIGFuZCBXUEUgcG9ydHMuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDogVXNlIG5ldyBjYWxsaW5nIGNvbnZlbnRpb24gZm9yIFdFQktJVF9B
RERfUFJFQ09NUElMRURfSEVBREVSKCkuCisgICAgICAgICogSmF2YVNjcmlwdENvcmVQcmVmaXgu
Y3BwOiBBZGRlZC4KKwogMjAxNy0wOS0wOSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjIxNzc0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDgyZWNlZTE0ZTVjZDc3ZDUzYTIxN2VjYmRlMmM1NTJlMzFkODZmNjYuLmZjY2FlZjk4
MzYyMmJiNDRlZWZiZjcxNjNmNmExYjBkNjBlOTg0ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NSBAQAorMjAxNy0wOS0wOSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQQ0ggc3Vw
cG9ydC4KKworICAgICAgICBUaGlzIHJldXNlZCB0aGUgZXhpc3RpbmcgV0VCS0lUX0FERF9QUkVD
T01QSUxFRF9IRUFERVIoKSBtYWNybywgYWRkaW5nCisgICAgICAgIHN1cHBvcnQgZm9yIENsYW5n
L0dDQyBhbmQgbWFraW5nIGl0IG1vcmUgY29udmVuaWVudCB0byB1c2UuIEluIHBhcnRpY3VsYXI6
CisKKyAgICAgICAgLSBGcm9tIHRoZSBwYXNzZWQgdGFyZ2V0IG5hbWUsIHRoZSBtYWNybyBub3cg
ZGVyaXZlcyB0aGUgbmFtZXMgb2YgdGhlCisgICAgICAgICAgcHJlY29tcGlsZWQgaGVhZGVyLCB0
aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyAuY3BwIGZpbGUgKG5lZWRlZAorICAgICAgICAg
IGZvciBNU1ZDKSwgYW5kIHRoZSBuYW1lIG9mIHRoZSBDTWFrZSB2YXJpYWJsZSB3aGljaCBjb250
YWlucyB0aGUgbGlzdAorICAgICAgICAgIG9mIHNvdXJjZSBmaWxlcyB0aGUgUENIIGFwcGxpZXMg
dG8uCisKKyAgICAgICAgLSBFYWNoIG9mIHRoZSBwYXJhbWV0ZXJzIGNhbiBiZSBvdmVycmlkZW4g
dXNpbmcga2V5d29yZCBhcmd1bWVudHMuIFRoaXMKKyAgICAgICAgICBpcyBuZWVkZWQgZm9yIHNl
dHMgb2Ygc291cmNlIGZpbGVzIHdoaWNoIHJldXNlIHByZWZpeCBoZWFkZXJzIHVzZWQgZm9yCisg
ICAgICAgICAgb3RoZXIgdGFyZ2V0cyBhcyB3ZWxsLgorCisgICAgICAgIEludm9jYXRpb25zIG9m
IFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCkgd2VyZSBpbnZva2VkIG9ubHkgZm9yCisg
ICAgICAgIE1TVkMsIGFuZCB3ZXJlIHJlbW92ZWQgYmVjYXVzZSBhIGNoZWNrIGZvciB0aGUgY29t
cGlsZXIgaXMgZG9uZSBpbnNpZGUKKyAgICAgICAgdGhlIG1hY3JvIGFueXdheS4KKworICAgICAg
ICBMYXN0IGJ1dCBub3QgbGVhc3QsIHRoZSBwcmVmaXggaGVhZGVycyBuZWVkZWQgc29tZSBmaXhp
bmcgdG8gbWFrZSBpdAorICAgICAgICBwb3NzaWJsZSB0byB1c2UgdGhlbSBmb3IgdGhlIEdUSysg
YW5kIFdQRSBwb3J0cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBVc2UgbmV3IGNhbGxp
bmcgY29udmVudGlvbiBmb3IgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoKS4KKyAgICAg
ICAgKiBXZWJDb3JlUHJlZml4Lmg6IFVwZGF0ZSBmb3IgdGhlIEdUSysgJiBXUEUgcG9ydHMuCisg
ICAgICAgICogdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaDogRGl0dG8uCisK
IDIwMTctMDktMDkgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEF2
b2lkIGR1cGxpY2F0ZSBjb21wdXRhdGlvbnMgb2YgRXhlY1N0YXRlOjp2bSgpLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCAyZjVlNjNhMzY2ZjkyODU3ODk5ZjgzOTE0ZWYzMWQ2MDRlYWZkYmMzLi5hYmQ5NjY0YzliOWZh
YTkzMTU5YTc4MTE3NDNmYmRlZDYxM2FlNWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisy
MDE3LTA5LTA5ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0NNYWtlXSBFbmFibGUgcHJlLWNvbXBpbGVkIGhlYWRlcnMgKFBDSCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQzOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBDSCBzdXBwb3J0Lgor
CisgICAgICAgIFRoaXMgcmV1c2VkIHRoZSBleGlzdGluZyBXRUJLSVRfQUREX1BSRUNPTVBJTEVE
X0hFQURFUigpIG1hY3JvLCBhZGRpbmcKKyAgICAgICAgc3VwcG9ydCBmb3IgQ2xhbmcvR0NDIGFu
ZCBtYWtpbmcgaXQgbW9yZSBjb252ZW5pZW50IHRvIHVzZS4gSW4gcGFydGljdWxhcjoKKworICAg
ICAgICAtIEZyb20gdGhlIHBhc3NlZCB0YXJnZXQgbmFtZSwgdGhlIG1hY3JvIG5vdyBkZXJpdmVz
IHRoZSBuYW1lcyBvZiB0aGUKKyAgICAgICAgICBwcmVjb21waWxlZCBoZWFkZXIsIHRoZSBuYW1l
IG9mIHRoZSBjb3JyZXNwb25kaW5nIC5jcHAgZmlsZSAobmVlZGVkCisgICAgICAgICAgZm9yIE1T
VkMpLCBhbmQgdGhlIG5hbWUgb2YgdGhlIENNYWtlIHZhcmlhYmxlIHdoaWNoIGNvbnRhaW5zIHRo
ZSBsaXN0CisgICAgICAgICAgb2Ygc291cmNlIGZpbGVzIHRoZSBQQ0ggYXBwbGllcyB0by4KKwor
ICAgICAgICAtIEVhY2ggb2YgdGhlIHBhcmFtZXRlcnMgY2FuIGJlIG92ZXJyaWRlbiB1c2luZyBr
ZXl3b3JkIGFyZ3VtZW50cy4gVGhpcworICAgICAgICAgIGlzIG5lZWRlZCBmb3Igc2V0cyBvZiBz
b3VyY2UgZmlsZXMgd2hpY2ggcmV1c2UgcHJlZml4IGhlYWRlcnMgdXNlZCBmb3IKKyAgICAgICAg
ICBvdGhlciB0YXJnZXRzIGFzIHdlbGwuCisKKyAgICAgICAgSW52b2NhdGlvbnMgb2YgV0VCS0lU
X0FERF9QUkVDT01QSUxFRF9IRUFERVIoKSB3ZXJlIGludm9rZWQgb25seSBmb3IKKyAgICAgICAg
TVNWQywgYW5kIHdlcmUgcmVtb3ZlZCBiZWNhdXNlIGEgY2hlY2sgZm9yIHRoZSBjb21waWxlciBp
cyBkb25lIGluc2lkZQorICAgICAgICB0aGUgbWFjcm8gYW55d2F5LgorCisgICAgICAgIExhc3Qg
YnV0IG5vdCBsZWFzdCwgdGhlIHByZWZpeCBoZWFkZXJzIG5lZWRlZCBzb21lIGZpeGluZyB0byBt
YWtlIGl0CisgICAgICAgIHBvc3NpYmxlIHRvIHVzZSB0aGVtIGZvciB0aGUgR1RLKyBhbmQgV1BF
IHBvcnRzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IFVzZSBuZXcgY2FsbGluZyBjb252
ZW50aW9uIGZvciBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigpLgorICAgICAgICAqIFdl
YktpdDJQcmVmaXguaDogVXBkYXRlIGZvciB0aGUgR1RLKyAmIFdQRSBwb3J0cy4KKwogMjAxNy0w
OS0wOSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgZHVw
bGljYXRlIGNvbXB1dGF0aW9ucyBvZiBFeGVjU3RhdGU6OnZtKCkuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9n
CmluZGV4IDVkY2Y1MTkzMDE1ZGZjY2NmNWM1OTZlZDQ0YzVjYmE4Mzc5MWIxMTcuLjAxYjdjMzI1
N2E1MzMwYzY1MjVkMzljMWMxN2NlOTgwYThiZmQ2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTctMDktMDkgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVy
ZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVh
ZGVycyAoUENIKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyByZXVzZWQgdGhlIGV4aXN0aW5nIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVS
KCkgbWFjcm8sIGFkZGluZworICAgICAgICBzdXBwb3J0IGZvciBDbGFuZy9HQ0MgYW5kIG1ha2lu
ZyBpdCBtb3JlIGNvbnZlbmllbnQgdG8gdXNlLiBJbiBwYXJ0aWN1bGFyOgorCisgICAgICAgIC0g
RnJvbSB0aGUgcGFzc2VkIHRhcmdldCBuYW1lLCB0aGUgbWFjcm8gbm93IGRlcml2ZXMgdGhlIG5h
bWVzIG9mIHRoZQorICAgICAgICBwcmVjb21waWxlZCBoZWFkZXIsIHRoZSBuYW1lIG9mIHRoZSBj
b3JyZXNwb25kaW5nIC5jcHAgZmlsZSAobmVlZGVkCisgICAgICAgIGZvciBNU1ZDKSwgYW5kIHRo
ZSBuYW1lIG9mIHRoZSBDTWFrZSB2YXJpYWJsZSB3aGljaCBjb250YWlucyB0aGUgbGlzdAorICAg
ICAgICBvZiBzb3VyY2UgZmlsZXMgdGhlIFBDSCBhcHBsaWVzIHRvLgorCisgICAgICAgIC0gRWFj
aCBvZiB0aGUgcGFyYW1ldGVycyBjYW4gYmUgb3ZlcnJpZGVuIHVzaW5nIGtleXdvcmQgYXJndW1l
bnRzLiBUaGlzCisgICAgICAgIGlzIG5lZWRlZCBmb3Igc2V0cyBvZiBzb3VyY2UgZmlsZXMgd2hp
Y2ggcmV1c2UgcHJlZml4IGhlYWRlcnMgdXNlZCBmb3IKKyAgICAgICAgb3RoZXIgdGFyZ2V0cyBh
cyB3ZWxsLgorCisgICAgICAgIEludm9jYXRpb25zIG9mIFdFQktJVF9BRERfUFJFQ09NUElMRURf
SEVBREVSKCkgd2VyZSBpbnZva2VkIG9ubHkgZm9yCisgICAgICAgIE1TVkMsIGFuZCB3ZXJlIHJl
bW92ZWQgYmVjYXVzZSBhIGNoZWNrIGZvciB0aGUgY29tcGlsZXIgaXMgZG9uZSBpbnNpZGUKKyAg
ICAgICAgdGhlIG1hY3JvIGFueXdheS4KKworICAgICAgICBMYXN0IGJ1dCBub3QgbGVhc3QsIHRo
ZSBwcmVmaXggaGVhZGVycyBuZWVkZWQgc29tZSBmaXhpbmcgdG8gbWFrZSBpdAorICAgICAgICBw
b3NzaWJsZSB0byB1c2UgdGhlbSBmb3IgdGhlIEdUSysgYW5kIFdQRSBwb3J0cy4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OiBVc2UgbmV3IGNhbGxpbmcgY29udmVudGlvbiBmb3IgV0VCS0lU
X0FERF9QUkVDT01QSUxFRF9IRUFERVIoKS4KKwogMjAxNy0wOC0zMSAgRG9uIE9sbXN0ZWFkICA8
ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtDTWFrZV0gTWFrZSBVU0VfQ0YgY29u
ZGl0aW9uYWwgd2l0aGluIFdpbmRvd3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCBkYTFiYTFkOWJlMTU3YjU4M2M4MTA3OGJhZGJlZmRlYWQ1YmIyMGZhLi4yNDJiZmM0ZTcw
MzIxZTRmMDA5ZGJiYTRjOTlkNTA2YTdiNTdlY2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0xNjAzLDMgKzE2MDMsNSBAQCBpZiAoTVNWQykKICAgICAgICAgQ09NTUFO
RCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVRfTElCUkFSSUVTX0RJUn0vdG9vbHMvc2NyaXB0
cy92ZXJzaW9uLXN0YW1wLnBsICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0gJDxUQVJHRVRfRklMRTpK
YXZhU2NyaXB0Q29yZT4KICAgICAgICAgVkVSQkFUSU0pCiBlbmRpZiAoKQorCitXRUJLSVRfQURE
X1BSRUNPTVBJTEVEX0hFQURFUihKYXZhU2NyaXB0Q29yZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZVByZWZpeC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0ZjNmNDU4Y2Y0M2Rm
YzViYmYzMGFmNmRiMGQ0YmYwYzVlMmM5MWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXguY3BwCkBAIC0wLDAgKzEsMjYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiSmF2
YVNjcmlwdENvcmVQcmVmaXguaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNzBlMWE3ZmQwMmI1
YzY0ZWJkNGFjOTBkZjFmMTM0ZjRlMDU2ZGM1YS4uNTg2YThjZGNjMzIyMzk5Yzc1NjA3MzBmZjc2
NWYxZGNkOTNiNmYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQwMjMsMTAgKzQwMjMsOCBA
QCBXRUJLSVRfV1JBUF9TT1VSQ0VMSVNUKCR7V2ViQ29yZV9JRExfRklMRVN9ICR7V2ViQ29yZV9E
RVJJVkVEX1NPVVJDRVN9KQogV0VCS0lUX1dSQVBfU09VUkNFTElTVCgke1dlYkNvcmVfU09VUkNF
U30pCiBXRUJLSVRfV1JBUF9TT1VSQ0VMSVNUKCR7V2ViQ29yZVRlc3RTdXBwb3J0X0lETF9GSUxF
U30gJHtXZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNFU30pCiAKLWlmIChNU1ZDKQotICAgIFdFQktJ
VF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJDb3JlUHJlZml4LmgiICJXZWJDb3JlUHJlZml4
LmNwcCIgV2ViQ29yZV9TT1VSQ0VTKQotICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVS
KCJXZWJDb3JlUHJlZml4LmgiICJXZWJDb3JlRGVyaXZlZFNvdXJjZXNQcmVmaXguY3BwIiBXZWJD
b3JlX0RFUklWRURfU09VUkNFUykKLWVuZGlmICgpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hF
QURFUihXZWJDb3JlKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViQ29yZSBDUFAg
IldlYkNvcmVEZXJpdmVkU291cmNlc1ByZWZpeC5jcHAiIFNPVVJDRVMgV2ViQ29yZV9ERVJJVkVE
X1NPVVJDRVMpCiAKICMgVGhpcyBpcyBzcGxpdCBpbnRvIGEgc2VwYXJhdGUgbGlicmFyeSBhcyBh
IHdvcmthcm91bmQgZm9yIGNvbW1hbmQgbGluZSBsZW5ndGgKICMgbGltaXRzLiBUaGlzIHNob3Vs
ZCBubyBsb25nZXIgYmUgbmVlZGVkIHdoZW4gQ01ha2Ugc3VwcG9ydHMgTmluamEgcmVzcG9uc2UK
QEAgLTQwNjAsOSArNDA1OCw5IEBAIGlmIChDTUFLRV9DT01QSUxFUl9JU19HTlVDWFggQU5EICIk
e0xPV0VSQ0FTRV9DTUFLRV9IT1NUX1NZU1RFTV9QUk9DRVNTT1J9IiBNQVRDCiAgICAgV0VCS0lU
X0FERF9UQVJHRVRfQ1hYX0ZMQUdTKFdlYkNvcmUgLWZuby10cmVlLXNyYSkKIGVuZGlmICgpCiAK
LWlmIChNU1ZDKQotICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJDb3JlVGVz
dFN1cHBvcnRQcmVmaXguaCIgInRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmNw
cCIgV2ViQ29yZVRlc3RTdXBwb3J0X1NPVVJDRVMpCi1lbmRpZiAoKQorV0VCS0lUX0FERF9QUkVD
T01QSUxFRF9IRUFERVIoV2ViQ29yZVRlc3RTdXBwb3J0CisgICAgSEVBREVSICJXZWJDb3JlVGVz
dFN1cHBvcnRQcmVmaXguaCIKKyAgICBDUFAgInRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0
UHJlZml4LmNwcCIpCiAKIGFkZF9saWJyYXJ5KFdlYkNvcmVUZXN0U3VwcG9ydCAke1dlYkNvcmVU
ZXN0U3VwcG9ydF9MSUJSQVJZX1RZUEV9ICR7V2ViQ29yZVRlc3RTdXBwb3J0X1NPVVJDRVN9KQog
YWRkX2RlcGVuZGVuY2llcyhXZWJDb3JlVGVzdFN1cHBvcnQgV2ViQ29yZSBXZWJDb3JlVGVzdFN1
cHBvcnRCaW5kaW5ncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXgu
aCBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaAppbmRleCA2MWE1OWE1ZDE0NGFjNTYz
NzI0Mjk0MTUxNWRkMWZkMjQwZWNjYzBkLi5jNDA4NDQyMDA4OGIwZmViNDFkMTQzOWU1ZTk5ZjA2
OTY5NjQ2MDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oCkBAIC0xMjUsNiArMTI1LDI5IEBACiAK
ICNpZiBQTEFURk9STShXSU5fQ0FJUk8pCiAjaW5jbHVkZSA8d2luZG93cy5oPgorCisjZWxpZiBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKKworI2lmIFVTRShDQUlSTykKKyNpbmNsdWRl
IDxjYWlyby9jYWlyby5oPgorI2VuZGlmCisKKyNpZiBVU0UoSEFSRkJVWlopCisjaW5jbHVkZSA8
aGIuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8Z2xpYi5oPgorI2VuZGlm
CisKKyNpZiBVU0UoU09VUCkKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNlbmRpZgorCisj
aWYgVVNFKEdTVFJFQU1FUikKKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjZW5kaWYKKwogI2Vsc2UK
IAogI2lmIE9TKFdJTkRPV1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pz
L1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9X
ZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaAppbmRleCBmZTNhN2Y1YzYwYWY5YjA1ZTk2MTdhYmZm
MTA1MThiMDQ0ZjEwMGFiLi5kNmE0YzdkMDExNDU2NTYyZmM3MTJkYWFhMDZlZWQ1OWRkMWQ2OWNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9y
dFByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBw
b3J0UHJlZml4LmgKQEAgLTEwMSw2ICsxMDEsMjkgQEAKIAogI2lmIFBMQVRGT1JNKFdJTl9DQUlS
TykKICNpbmNsdWRlIDx3aW5kb3dzLmg+CisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFdQRSkKKworI2lmIFVTRShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby9jYWlyby5oPgorI2VuZGlm
CisKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDxnbGliLmg+CisjZW5kaWYKKworI2lmIFVTRShT
T1VQKQorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2VuZGlmCisKKyNpZiBVU0UoTElCRVBP
WFkpCisjaW5jbHVkZSA8ZXBveHkuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdTVFJFQU1FUikKKyNp
bmNsdWRlIDxnc3QvZ3N0Lmg+CisjZW5kaWYKKworCiAjZWxzZQogCiAjaWYgT1MoV0lORE9XUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CmluZGV4IDk2YWE0ZDQyMjdhYTAxYTcwOWVmMTNjNzRmZmVmOTg1ZmVi
YzA4ZDQuLjMyZTQ2ODI2NjZlMTc2ZWFhNTBjYzE2MWZiZTEzOTFmM2ZlZGU4NjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFr
ZUxpc3RzLnR4dApAQCAtOTM2LDYgKzkzNiw4IEBAIGlmIChOT1QgIiR7UE9SVH0iIFNUUkVRVUFM
ICJNYWMiKQogICAgIGlmIChXZWJLaXQyX1N0b3JhZ2VQcm9jZXNzX09VVFBVVF9OQU1FKQogICAg
ICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoU3RvcmFnZVByb2Nlc3MgUFJPUEVSVElFUyBPVVRQ
VVRfTkFNRSAke1dlYktpdDJfU3RvcmFnZVByb2Nlc3NfT1VUUFVUX05BTUV9KQogICAgIGVuZGlm
ICgpCisKKyAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihTdG9yYWdlUHJvY2VzcyBI
RUFERVIgIldlYktpdDJQcmVmaXguaCIgQ1BQICJXZWJLaXQyUHJlZml4LmNwcCIpCiBlbmRpZiAo
KQogCiAjIFN1cHByZXNzIHVudXNlZCBwYXJhbWV0ZXIgd2FybmluZ3MgZm9yIHNvdXJjZXMgaW4g
V2ViS2l0Mi4KQEAgLTk5NywzICs5OTksNyBAQCBlbHNlICgpCiAgICAgICAgIFJVTlRJTUUgREVT
VElOQVRJT04gIiR7TElCRVhFQ19JTlNUQUxMX0RJUn0iCiAgICAgKQogZW5kaWYgKCkKKworV0VC
S0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViS2l0MikKK1dFQktJVF9BRERfUFJFQ09NUElM
RURfSEVBREVSKFdlYlByb2Nlc3MgSEVBREVSICJXZWJLaXQyUHJlZml4LmgiIENQUCAiV2ViS2l0
MlByZWZpeC5jcHAiKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoTmV0d29ya1Byb2Nl
c3MgSEVBREVSICJXZWJLaXQyUHJlZml4LmgiIENQUCAiV2ViS2l0MlByZWZpeC5jcHAiKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdDJQcmVmaXguaAppbmRleCA3MjFjYmQ1YjRlNjk3ZmEwYjczYzA1NjkzNDJjMTk0NDkzNDc3
MDY3Li41ZGFjZTliY2NmNDNkMDk1N2I2MzlkMzRjNDI2ZjZiMmYwOGI1ZmU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dDJQcmVmaXguaApAQCAtNTcsNiArNTcsMzEgQEAKIAogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2RlZmluZSBFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFIDEKKworI2lmIFVT
RShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby9jYWlyby5oPgorI2VuZGlmCisKKyNpZiBVU0UoSEFS
RkJVWlopCisjaW5jbHVkZSA8aGIuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVk
ZSA8Z2xpYi5oPgorI2VuZGlmCisKKyNpZiBVU0UoU09VUCkKKyNpbmNsdWRlIDxsaWJzb3VwL3Nv
dXAuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdTVFJFQU1FUikKKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+
CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlIDxndGsvZ3RrLmg+CisjZW5k
aWYKKwogI2VuZGlmCiAKIC8qIFdoZW4gQysrIGV4Y2VwdGlvbnMgYXJlIGRpc2FibGVkLCB0aGUg
QysrIGxpYnJhcnkgZGVmaW5lcyB8dHJ5fCBhbmQgfGNhdGNofApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ01ha2VM
aXN0cy50eHQKaW5kZXggYjc0YTEwMzc3OWE3Nzc5ZGI5NWQ2N2IwOWI2NmI5Y2I5OWIxMjRiNS4u
MjY2M2E4ZmI5NDBlYzkxMTQwYWJkN2MzNmRiMWY3MDlmZDM2ZDc2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L0NNYWtlTGlzdHMudHh0CkBAIC0zOSw3ICszOSw3IEBAIFdFQktJVF9GUkFNRVdPUktfREVDTEFS
RShXZWJLaXQpCiBXRUJLSVRfSU5DTFVERV9DT05GSUdfRklMRVNfSUZfRVhJU1RTKCkKIAogaWYg
KE1TVkMpCi0gICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktpdFByZWZpeC5o
IiAid2luL1dlYktpdFByZWZpeC5jcHAiIFdlYktpdF9TT1VSQ0VTKQorICAgIFdFQktJVF9BRERf
UFJFQ09NUElMRURfSEVBREVSKFdlYktpdCBDUFAgIndpbi9XZWJLaXRQcmVmaXguY3BwIikKICAg
ICBsaXN0KEFQUEVORCBXZWJLaXRfU09VUkNFUyB3aW4vV2ViS2l0LnJlc291cmNlcy9XZWJLaXQu
cmMpCiAgICAgYWRkX2RlZmluaXRpb25zKC9EV0VCS0lUX0VYUE9SVFMgL0RGUkFNRVdPUktfTkFN
RT1XZWJLaXQpCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jv
cy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKaW5kZXggN2JjODk1NDM4
ZjFiZGJiOWVlYmZkNWM3ZWMzZGUyMTdiNzY1ZTI0Yi4uYWRiMTdlMjVlMjg3MGUzOTA3YmViZDcz
YjgwNWRlM2ExYzljOTQxMyAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5j
bWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCkBAIC0xMiw2ICsxMiw1
NCBAQCBtYWNybyhXRUJLSVRfSU5DTFVERV9DT05GSUdfRklMRVNfSUZfRVhJU1RTKQogICAgIGVu
ZGlmICgpCiBlbmRtYWNybygpCiAKK2Z1bmN0aW9uKFdFQktJVF9UQVJHRVRfR0VUX0VYVFJBX0NP
TVBJTEVSX0ZMQUdTIF90YXJnZXQgX291dHB1dF92YXJpYWJsZV9uYW1lKQorICAgIHN0cmluZyhU
T1VQUEVSICIke0NNQUtFX0JVSUxEX1RZUEV9IiBfYnVpbGRfdHlwZSkKKworICAgIHNldChfZXh0
cmFfZmxhZ3MgIiIpICAjIExpc3Qgb2YgZ2F0aGVyZWQgZXh0cmEgZmxhZ3MuCisgICAgaWYgKENN
QUtFX0NYWF9GTEFHUykKKyAgICAgICAgc2V0KF9leHRyYV9mbGFncyAiJHtfZXh0cmFfZmxhZ3N9
ICR7Q01BS0VfQ1hYX0ZMQUdTfSIpCisgICAgZW5kaWYgKCkKKyAgICBpZiAoQ01BS0VfQ1hYX0ZM
QUdTXyR7X2J1aWxkX3R5cGV9KQorICAgICAgICBzZXQoX2V4dHJhX2ZsYWdzICIke19leHRyYV9m
bGFnc30gJHtDTUFLRV9DWFhfRkxBR1NfJHtfYnVpbGRfdHlwZX19IikKKyAgICBlbmRpZiAoKQor
CisgICAgIyBDb252ZXJ0IHRoZSBzdHJpbmcgaW50byBhIGxpc3QsIGZvciBlYXNpZXIgaGFuZGxp
bmcgZnJvbSB0aGlzIHBvaW50LgorICAgIGlmIChVTklYKQorICAgICAgICBzZXBhcmF0ZV9hcmd1
bWVudHMoX2V4dHJhX2ZsYWdzIFVOSVhfQ09NTUFORCAiJHtfZXh0cmFfZmxhZ3N9IikKKyAgICBl
bHNlaWYgKFdJTjMyKQorICAgICAgICBzZXBhcmF0ZV9hcmd1bWVudHMoX2V4dHJhX2ZsYWdzIFdJ
TkRPV1NfQ09NTUFORCAiJHtfZXh0cmFfZmxhZ3N9IikKKyAgICBlbHNlICgpCisgICAgICAgIHNl
cGFyYXRlX2FyZ3VtZW50cyhfZXh0cmFfZmxhZ3MpCisgICAgZW5kaWYgKCkKKworICAgICMgTGFu
Z3VhZ2Ugc3RhbmRhcmQgcHJvcGVydGllcy4KKyAgICBpZiAoQ01BS0VfQ1hYX1NUQU5EQVJEX0RF
RkFVTFQpCisgICAgICAgICMgQ29tcGlsZXIgc3VwcG9ydHMgc2V0dGluZyAtc3RkPS4uLgorICAg
ICAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5KF90YXJnZXRfbGFuZ3N0ZCAke190YXJnZXR9IENYWF9T
VEFOREFSRCkKKyAgICAgICAgaWYgKF90YXJnZXRfbGFuZ3N0ZCkKKyAgICAgICAgICAgIHNldChf
dHlwZSAiRVhURU5TSU9OIikKKyAgICAgICAgICAgIGdldF9wcm9wZXJ0eShfY3h4X2V4dGVuc2lv
bnNfc2V0IFRBUkdFVCAke190YXJnZXR9IFBST1BFUlRZIENYWF9FWFRFTlNJT05TIFNFVCkKKyAg
ICAgICAgICAgIGlmIChfY3h4X2V4dGVuc2lvbnNfc2V0KQorICAgICAgICAgICAgICAgIGdldF90
YXJnZXRfcHJvcGVydHkoX3RhcmdldF91c2VfZXh0ZW5zaW9ucyAke190YXJnZXR9IENYWF9FWFRF
TlNJT05TKQorICAgICAgICAgICAgICAgIGlmIChOT1QgX3RhcmdldF91c2VfZXh0ZW5zaW9ucykK
KyAgICAgICAgICAgICAgICAgICAgc2V0KF90eXBlICJTVEFOREFSRCIpCisgICAgICAgICAgICAg
ICAgZW5kaWYgKCkKKyAgICAgICAgICAgIGVuZGlmICgpCisgICAgICAgICAgICBpZiAoQ01BS0Vf
Q1hYJHtfdGFyZ2V0X2xhbmdzdGR9XyR7X3R5cGV9X0NPTVBJTEVfT1BUSU9OKQorICAgICAgICAg
ICAgICAgIGxpc3QoQVBQRU5EIF9leHRyYV9mbGFncyAiJHtDTUFLRV9DWFgke190YXJnZXRfbGFu
Z3N0ZH1fJHtfdHlwZX1fQ09NUElMRV9PUFRJT059IikKKyAgICAgICAgICAgIGVuZGlmICgpCisg
ICAgICAgIGVuZGlmICgpCisgICAgZW5kaWYgKCkKKworICAgICMgSGFuZGxlIFBJQy9QSUUgY29t
cGlsZXIgZmxhZ3MuCisgICAgZ2V0X3RhcmdldF9wcm9wZXJ0eShfdGFyZ2V0X3BpYyAke190YXJn
ZXR9IFBPU0lUSU9OX0lOREVQRU5ERU5UX0NPREUpCisgICAgaWYgKF90YXJnZXRfcGljKQorICAg
ICAgICBsaXN0KEFQUEVORCBfZXh0cmFfZmxhZ3MgIiR7Q01BS0VfQ1hYX0NPTVBJTEVfT1BUSU9O
U19QSUN9IikKKyAgICBlbmRpZiAoKQorCisgICAgc2V0KCR7X291dHB1dF92YXJpYWJsZV9uYW1l
fSAke19leHRyYV9mbGFnc30gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCiAjIEFwcGVu
ZCB0aGUgZ2l2ZW4gZGVwZW5kZW5jaWVzIHRvIHRoZSBzb3VyY2UgZmlsZQogbWFjcm8oV0VCS0lU
X0FERF9TT1VSQ0VfREVQRU5ERU5DSUVTIF9zb3VyY2UgX2RlcHMpCiAgICAgc2V0KF90bXApCkBA
IC0yOCwzMSArNzYsMTUzIEBAIG1hY3JvKFdFQktJVF9BRERfU09VUkNFX0RFUEVOREVOQ0lFUyBf
c291cmNlIF9kZXBzKQogICAgIHVuc2V0KF90bXApCiBlbmRtYWNybygpCiAKLW1hY3JvKFdFQktJ
VF9BRERfUFJFQ09NUElMRURfSEVBREVSIF9oZWFkZXIgX2NwcCBfc291cmNlKQorZnVuY3Rpb24o
V0VCS0lUX1dSSVRFX1RBUkdFVF9GTEFHU19UT19SRVNQT05TRV9GSUxFIF90YXJnZXQgX2ZpbGVu
YW1lKQorICAgIFdFQktJVF9UQVJHRVRfR0VUX0VYVFJBX0NPTVBJTEVSX0ZMQUdTKCR7X3Rhcmdl
dH0gX2V4dHJhX2ZsYWdzKQorICAgIHNldChfaW50ZXJmYWNlX3N5c3RlbV9pbmNsdWRlX2RpcmVj
dG9yaWVzICIkPFRBUkdFVF9QUk9QRVJUWToke190YXJnZXR9LElOVEVSRkFDRV9TWVNURU1fSU5D
TFVERV9ESVJFQ1RPUklFUz4iKQorICAgIHNldChfaW50ZXJmYWNlX2luY2x1ZGVfZGlyZWN0b3Jp
ZXMgIiQ8VEFSR0VUX1BST1BFUlRZOiR7X3RhcmdldH0sSU5URVJGQUNFX0lOQ0xVREVfRElSRUNU
T1JJRVM+IikKKyAgICBzZXQoX3N5c3RlbV9pbmNsdWRlX2RpcmVjdG9yaWVzICIkPFRBUkdFVF9Q
Uk9QRVJUWToke190YXJnZXR9LFNZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTPiIpCisgICAgc2V0
KF90YXJnZXRfc3lzdGVtX2luY2x1ZGVfZGlyZWN0b3JpZXMgIiR7JHtfdGFyZ2V0fV9TWVNURU1f
SU5DTFVERV9ESVJFQ1RPUklFU30iKQorICAgIHNldChfdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3Jp
ZXMgIiR7JHtfdGFyZ2V0fV9JTkNMVURFX0RJUkVDVE9SSUVTfSIpCisgICAgc2V0KF9pbmNsdWRl
X2RpcmVjdG9yaWVzICIkPFRBUkdFVF9QUk9QRVJUWToke190YXJnZXR9LElOQ0xVREVfRElSRUNU
T1JJRVM+IikKKyAgICBzZXQoX2NvbXBpbGVfZGVmaW5pdGlvbnMgIiQ8VEFSR0VUX1BST1BFUlRZ
OiR7X3RhcmdldH0sQ09NUElMRV9ERUZJTklUSU9OUz4iKQorICAgIHNldChfY29tcGlsZV9mbGFn
cyAiJDxUQVJHRVRfUFJPUEVSVFk6JHtfdGFyZ2V0fSxDT01QSUxFX0ZMQUdTPiIpCisgICAgc2V0
KF9jb21waWxlX29wdGlvbnMgIiQ8VEFSR0VUX1BST1BFUlRZOiR7X3RhcmdldH0sQ09NUElMRV9P
UFRJT05TPiIpCisgICAgc2V0KF9pbnRlcmZhY2Vfc3lzdGVtX2luY2x1ZGVfZGlyZWN0b3JpZXMg
IiQ8JDxCT09MOiR7X2ludGVyZmFjZV9zeXN0ZW1faW5jbHVkZV9kaXJlY3Rvcmllc30+Oi1pc3lz
dGVtICQ8Sk9JTjoke19pbnRlcmZhY2Vfc3lzdGVtX2luY2x1ZGVfZGlyZWN0b3JpZXN9LFxuLWlz
eXN0ZW0gPlxuPiIpCisgICAgc2V0KF9pbnRlcmZhY2VfaW5jbHVkZV9kaXJlY3RvcmllcyAiJDwk
PEJPT0w6JHtfaW50ZXJmYWNlX2luY2x1ZGVfZGlyZWN0b3JpZXN9PjotSSQ8Sk9JTjoke19pbnRl
cmZhY2VfaW5jbHVkZV9kaXJlY3Rvcmllc30sXG4tST5cbj4iKQorICAgIHNldChfdGFyZ2V0X3N5
c3RlbV9pbmNsdWRlX2RpcmVjdG9yaWVzICIkPCQ8Qk9PTDoke190YXJnZXRfc3lzdGVtX2luY2x1
ZGVfZGlyZWN0b3JpZXN9PjotaXN5c3RlbSAkPEpPSU46JHtfdGFyZ2V0X3N5c3RlbV9pbmNsdWRl
X2RpcmVjdG9yaWVzfSxcbi1pc3lzdGVtID5cbj4iKQorICAgIHNldChfdGFyZ2V0X2luY2x1ZGVf
ZGlyZWN0b3JpZXMgIiQ8JDxCT09MOiR7X3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzfT46LUkk
PEpPSU46JHtfdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXN9LFxuLUk+XG4+IikKKyAgICBzZXQo
X3N5c3RlbV9pbmNsdWRlX2RpcmVjdG9yaWVzICIkPCQ8Qk9PTDoke19zeXN0ZW1faW5jbHVkZV9k
aXJlY3Rvcmllc30+Oi1pc3lzdGVtICQ8Sk9JTjoke19zeXN0ZW1faW5jbHVkZV9kaXJlY3Rvcmll
c30sXG4taXN5c3RlbSA+XG4+IikKKyAgICBzZXQoX2luY2x1ZGVfZGlyZWN0b3JpZXMgIiQ8JDxC
T09MOiR7X2luY2x1ZGVfZGlyZWN0b3JpZXN9PjotSSQ8Sk9JTjoke19pbmNsdWRlX2RpcmVjdG9y
aWVzfSxcbi1JPlxuPiIpCisgICAgc2V0KF9jb21waWxlX2RlZmluaXRpb25zICIkPCQ8Qk9PTDok
e19jb21waWxlX2RlZmluaXRpb25zfT46LUQkPEpPSU46JHtfY29tcGlsZV9kZWZpbml0aW9uc30s
XG4tRD5cbj4iKQorICAgIHNldChfY29tcGlsZV9mbGFncyAiJDwkPEJPT0w6JHtfY29tcGlsZV9m
bGFnc30+OiQ8Sk9JTjoke19jb21waWxlX2ZsYWdzfSxcbj5cbj4iKQorICAgIHNldChfY29tcGls
ZV9vcHRpb25zICIkPCQ8Qk9PTDoke19jb21waWxlX29wdGlvbnN9PjokPEpPSU46JHtfY29tcGls
ZV9vcHRpb25zfSxcbj5cbj4iKQorICAgIHNldChfZXh0cmFfZmxhZ3MgIiQ8JDxCT09MOiR7X2V4
dHJhX2ZsYWdzfT46JDxKT0lOOiR7X2V4dHJhX2ZsYWdzfSxcbj5cbj4iKQorICAgIGZpbGUoR0VO
RVJBVEUgT1VUUFVUICIke19maWxlbmFtZX0iIENPTlRFTlQgIiR7X2NvbXBpbGVfZGVmaW5pdGlv
bnN9JHtfaW50ZXJmYWNlX3N5c3RlbV9pbmNsdWRlX2RpcmVjdG9yaWVzfSR7X2ludGVyZmFjZV9p
bmNsdWRlX2RpcmVjdG9yaWVzfSR7X3RhcmdldF9zeXN0ZW1faW5jbHVkZV9kaXJlY3Rvcmllc30k
e190YXJnZXRfaW5jbHVkZV9kaXJlY3Rvcmllc30ke19zeXN0ZW1faW5jbHVkZV9kaXJlY3Rvcmll
c30ke19pbmNsdWRlX2RpcmVjdG9yaWVzfSR7X2NvbXBpbGVfZmxhZ3N9JHtfY29tcGlsZV9vcHRp
b25zfSR7X2V4dHJhX2ZsYWdzfVxuIikKK2VuZGZ1bmN0aW9uKCkKKworbWFjcm8oV0VCS0lUX0FE
RF9QUkVDT01QSUxFRF9IRUFERVIgX3RhcmdldCkKKyAgICBjbWFrZV9wYXJzZV9hcmd1bWVudHMo
X1BDSCAiIiAiSEVBREVSO0NQUCIgIlNPVVJDRVMiICR7QVJHTn0pCisKKyAgICBpZiAoTk9UIF9Q
Q0hfSEVBREVSKQorICAgICAgICBzZXQoX1BDSF9IRUFERVIgIiR7X3RhcmdldH1QcmVmaXguaCIp
CisgICAgZW5kaWYgKCkKKworICAgIGlmIChOT1QgX1BDSF9DUFApCisgICAgICAgIGdldF9maWxl
bmFtZV9jb21wb25lbnQoX1BDSF9DUFAgIiR7X1BDSF9IRUFERVJ9IiBOQU1FX1dFKQorICAgICAg
ICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9wY2hfY3BwX2RpciAiJHtfUENIX0hFQURFUn0iIERJ
UkVDVE9SWSkKKyAgICAgICAgaWYgKF9wY2hfY3BwX2RpcikKKyAgICAgICAgICAgIHNldChfUENI
X0NQUCAiJHtfcGNoX2NwcF9kaXJ9LyR7X1BDSF9DUFB9IikKKyAgICAgICAgICAgIHVuc2V0KF9w
Y2hfY3BwX2RpcikKKyAgICAgICAgZW5kaWYgKCkKKyAgICAgICAgc2V0KF9QQ0hfQ1BQICIke19Q
Q0hfQ1BQfS5jcHAiKQorICAgIGVuZGlmICgpCisKKyAgICBpZiAoTk9UIF9QQ0hfU09VUkNFUykK
KyAgICAgICAgc2V0KF9QQ0hfU09VUkNFUyAke190YXJnZXR9X1NPVVJDRVMpCisgICAgZW5kaWYg
KCkKKworICAgIG1lc3NhZ2UoU1RBVFVTICJQQ0ggZm9yICR7X1BDSF9TT1VSQ0VTfTogJHtfUENI
X0hFQURFUn0sIENQUDogJHtfUENIX0NQUH0iKQorCisgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVu
dChQcmVjb21waWxlZEJhc2VuYW1lICIke19QQ0hfQ1BQfSIgTkFNRV9XRSkKKyAgICBzZXQoX3Bj
aF9kaXIgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8ke19QQ0hfU09VUkNFU30iKQorICAg
IHNldChfc291cmNlcyAkeyR7X1BDSF9TT1VSQ0VTfX0pCisgICAgZmlsZShNQUtFX0RJUkVDVE9S
WSAiJHtfcGNoX2Rpcn0iKQorCiAgICAgaWYgKE1TVkMpCi0gICAgICAgIGdldF9maWxlbmFtZV9j
b21wb25lbnQoUHJlY29tcGlsZWRCYXNlbmFtZSAke19jcHB9IE5BTUVfV0UpCi0gICAgICAgIGZp
bGUoTUFLRV9ESVJFQ1RPUlkgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8ke19zb3VyY2V9
IikKLSAgICAgICAgc2V0KFByZWNvbXBpbGVkQmluYXJ5ICIke0NNQUtFX0NVUlJFTlRfQklOQVJZ
X0RJUn0vJHtfc291cmNlfS8ke1ByZWNvbXBpbGVkQmFzZW5hbWV9LnBjaCIpCi0gICAgICAgIHNl
dChfc291cmNlcyAkeyR7X3NvdXJjZX19KQotCisgICAgICAgIHNldChQcmVjb21waWxlZEJpbmFy
eSAiJHtfcGNoX2Rpcn0vJHtQcmVjb21waWxlZEJhc2VuYW1lfS5wY2giKQogICAgICAgICAjIGNs
YW5nLWNsIHJlcXVpcmVzIC9GSSB3aXRoIC9ZYwogICAgICAgICBpZiAoQ09NUElMRVJfSVNfQ0xB
TkdfQ0wpCi0gICAgICAgICAgICBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtfY3BwfQot
ICAgICAgICAgICAgICAgIFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAiL1ljXCIke19oZWFkZXJ9
XCIgL0ZwXCIke1ByZWNvbXBpbGVkQmluYXJ5fVwiIC9GSVwiJHtfaGVhZGVyfVwiIgorICAgICAg
ICAgICAgc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7X1BDSF9DUFB9CisgICAgICAgICAg
ICAgICAgUFJPUEVSVElFUyBDT01QSUxFX0ZMQUdTICIvWWNcIiR7X1BDSF9IRUFERVJ9XCIgL0Zw
XCIke1ByZWNvbXBpbGVkQmluYXJ5fVwiIC9GSVwiJHtfUENIX0hFQURFUn1cIiIKICAgICAgICAg
ICAgICAgICBPQkpFQ1RfT1VUUFVUUyAiJHtQcmVjb21waWxlZEJpbmFyeX0iKQogICAgICAgICBl
bHNlICgpCi0gICAgICAgICAgICBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtfY3BwfQot
ICAgICAgICAgICAgICAgIFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAiL1ljXCIke19oZWFkZXJ9
XCIgL0ZwXCIke1ByZWNvbXBpbGVkQmluYXJ5fVwiIgorICAgICAgICAgICAgc2V0X3NvdXJjZV9m
aWxlc19wcm9wZXJ0aWVzKCR7X1BDSF9DUFB9CisgICAgICAgICAgICAgICAgUFJPUEVSVElFUyBD
T01QSUxFX0ZMQUdTICIvWWNcIiR7X1BDSF9IRUFERVJ9XCIgL0ZwXCIke1ByZWNvbXBpbGVkQmlu
YXJ5fVwiIgogICAgICAgICAgICAgICAgIE9CSkVDVF9PVVRQVVRTICIke1ByZWNvbXBpbGVkQmlu
YXJ5fSIpCiAgICAgICAgIGVuZGlmICgpCiAgICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVy
dGllcygke19zb3VyY2VzfQotICAgICAgICAgICAgUFJPUEVSVElFUyBDT01QSUxFX0ZMQUdTICIv
WXVcIiR7X2hlYWRlcn1cIiAvRklcIiR7X2hlYWRlcn1cIiAvRnBcIiR7UHJlY29tcGlsZWRCaW5h
cnl9XCIiKQorICAgICAgICAgICAgUFJPUEVSVElFUyBDT01QSUxFX0ZMQUdTICIvWXVcIiR7X1BD
SF9IRUFERVJ9XCIgL0ZJXCIke19QQ0hfSEVBREVSfVwiIC9GcFwiJHtQcmVjb21waWxlZEJpbmFy
eX1cIiIpCiAKICAgICAgICAgZm9yZWFjaCAoX3NyYyAke19zb3VyY2VzfSkKICAgICAgICAgICAg
IFdFQktJVF9BRERfU09VUkNFX0RFUEVOREVOQ0lFUygke19zcmN9ICR7UHJlY29tcGlsZWRCaW5h
cnl9KQogICAgICAgICBlbmRmb3JlYWNoICgpCiAKLSAgICAgICAgbGlzdChBUFBFTkQgJHtfc291
cmNlfSAke19jcHB9KQorICAgICAgICBsaXN0KEFQUEVORCAke19QQ0hfU09VUkNFU30gJHtfUENI
X0NQUH0pCisgICAgZWxzZWlmIChDT01QSUxFUl9JU19HQ0NfT1JfQ0xBTkcgQU5EIFRBUkdFVCAk
e190YXJnZXR9KQorICAgICAgICAjCisgICAgICAgICMgT25seSBhZGQgdGhlIFBDSCBjb21waWxh
dGlvbiB0YXJnZXQgaWYgaXQgZG9lcyBub3QgeWV0IGV4aXN0LgorICAgICAgICAjIFhYWDogU2hv
dWxkIHdlIHdhcm4gaGVyZSBpZiB0aGUgdXNlciBpcyB0cnlpbmcgdG8gcmUtYWRkIGEgUENIPwor
ICAgICAgICAjCisgICAgICAgIGlmIChOT1QgVEFSR0VUIHBjaC4ke19QQ0hfU09VUkNFU30pCisg
ICAgICAgICAgICAjIEZvciBhZGRlZCByb2J1c3RuZXNzLCB1c2UgZnVsbCBwYXRocy4KKyAgICAg
ICAgICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoX2hlYWRlcl9wYXRoICIke19wY2hfZGlyfS9w
Y2guaCIgUkVBTFBBVEgpCisKKyAgICAgICAgICAgIGlmIChDT01QSUxFUl9JU19DTEFORykKKyAg
ICAgICAgICAgICAgICBzZXQoX2luY2x1ZGVfcGNoX2ZsYWdzICItaW5jbHVkZS1wY2ggJHtfaGVh
ZGVyX3BhdGh9LmdjaCIpCisgICAgICAgICAgICBlbHNlICgpCisgICAgICAgICAgICAgICAgc2V0
KF9pbmNsdWRlX3BjaF9mbGFncyAiLWluY2x1ZGUgJHtfaGVhZGVyX3BhdGh9IikKKyAgICAgICAg
ICAgIGVuZGlmICgpCisKKyAgICAgICAgICAgICMgTWFrZSBlYWNoIHNvdXJjZSBmaWxlIGRlcGVu
ZCBvbiB0aGUgUENILgorICAgICAgICAgICAgZm9yZWFjaCAoX3NyYyAke19zb3VyY2VzfSkKKyAg
ICAgICAgICAgICAgICBpZiAoX3NyYyBNQVRDSEVTIFxcLlwoY2N8Y3h4fGNwcFwpJCkKKyAgICAg
ICAgICAgICAgICAgICAgZ2V0X3NvdXJjZV9maWxlX3Byb3BlcnR5KF9zcmNfZGVwZW5kZW5jaWVz
ICIke19zcmN9IiBPQkpFQ1RfREVQRU5EUykKKyAgICAgICAgICAgICAgICAgICAgaWYgKE5PVCBf
c3JjX2RlcGVuZGVuY2llcykKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldChfc3JjX2RlcGVu
ZGVuY2llcyAiIikKKyAgICAgICAgICAgICAgICAgICAgZW5kaWYgKCkKKyAgICAgICAgICAgICAg
ICAgICAgbGlzdChBUFBFTkQgX3NyY19kZXBlbmRlbmNpZXMgIiR7X2hlYWRlcl9wYXRofS5nY2gi
KQorCisgICAgICAgICAgICAgICAgICAgIGdldF9zb3VyY2VfZmlsZV9wcm9wZXJ0eShfc3JjX2Nv
bXBpbGVfZmxhZ3MgIiR7X3NyY30iIENPTVBJTEVfRkxBR1MpCisgICAgICAgICAgICAgICAgICAg
IGlmIChOT1QgX3NyY19jb21waWxlX2ZsYWdzXykKKyAgICAgICAgICAgICAgICAgICAgICAgIHNl
dChfc3JjX2NvbXBpbGVfZmxhZ3MgIiIpCisgICAgICAgICAgICAgICAgICAgIGVuZGlmICgpCisg
ICAgICAgICAgICAgICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygke19zcmN9IFBS
T1BFUlRJRVMKKyAgICAgICAgICAgICAgICAgICAgICAgIE9CSkVDVF9ERVBFTkRTICIke19zcmNf
ZGVwZW5kZW5jaWVzfSIKKyAgICAgICAgICAgICAgICAgICAgICAgIENPTVBJTEVfRkxBR1MgIi1X
aW52YWxpZC1wY2ggJHtfaW5jbHVkZV9wY2hfZmxhZ3N9ICR7X3NyY19jb21waWxlX2ZsYWdzfSIp
CisgICAgICAgICAgICAgICAgZW5kaWYgKCkKKyAgICAgICAgICAgIGVuZGZvcmVhY2ggKCkKKwor
ICAgICAgICAgICAgIyBXcml0ZSBhbGwgdGhlIGNvbXBpbGVyIGZsYWdzIHVzZWQgZm9yIHRoZSB0
YXJnZXQgdG8gYSByZXNwb25zZSBmaWxlLgorICAgICAgICAgICAgV0VCS0lUX1dSSVRFX1RBUkdF
VF9GTEFHU19UT19SRVNQT05TRV9GSUxFKCR7X3RhcmdldH0gIiR7X3BjaF9kaXJ9L2ZsYWdzLmlu
IikKKworICAgICAgICAgICAgIyBQb3N0LXByb2Nlc3MgdGhlIHJlc3BvbnNlIGZpbGUgdG8gZml4
IHF1b3Rpbmcgb2YgLURGT089InN0cmluZyIgZmxhZ3MsIGFuZAorICAgICAgICAgICAgIyBjb252
ZXJ0IHRoZW0gaW50byAtREZPTz1cInN0cmluZ1wiOyB0aGUgcmVzdCBvZiB0aGUgbGluZXMgYXJl
IGxlZnQgdW50b3VjaGVkLgorICAgICAgICAgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAgICAg
ICAgICAgICAgIE9VVFBVVCAiJHtfcGNoX2Rpcn0vZmxhZ3MiCisgICAgICAgICAgICAgICAgTUFJ
Tl9ERVBFTkRFTkNZICIke19wY2hfZGlyfS9mbGFncy5pbiIKKyAgICAgICAgICAgICAgICBDT01N
RU5UICJQcm9jZXNzaW5nICR7X3BjaF9kaXJ9L2ZsYWdzIgorICAgICAgICAgICAgICAgIENPTU1B
TkQgc2VkIC1lICIvXiQkL2QiIC1lICInL14tRFtbOmFsbnVtOl1fXVxcKz1cIi4qXCIkJC9zL14t
RFxcKFtbOmFsbnVtOl1fXVxcK1xcKT1cIlxcKC4qXFwpXCIkJC8tRFxcMT1cXFxcXCJcXDJcXFxc
XCIvJyIKKyAgICAgICAgICAgICAgICAgICAgIiR7X3BjaF9kaXJ9L2ZsYWdzLmluIiB8IHNvcnQg
LXUgPiAiJHtfcGNoX2Rpcn0vZmxhZ3MiCisgICAgICAgICAgICApCisKKyAgICAgICAgICAgICMg
TWFrZSBhIGdlbmVyYXRlZCBoZWFkZXIgaW5jbHVkZSB0aGUgcHJlZml4IGhlYWRlciBmcm9tIGl0
cyBvcmlnaW5hbCBsb2NhdGlvbi4KKyAgICAgICAgICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQo
X3ByZWZpeF9oZWFkZXJfcGF0aCAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LyR7X1BDSF9I
RUFERVJ9IiBSRUFMUEFUSCkKKyAgICAgICAgICAgIGZpbGUoV1JJVEUgIiR7X2hlYWRlcl9wYXRo
fSIgIiNpbmNsdWRlIFwiJHtfcHJlZml4X2hlYWRlcl9wYXRofVwiIikKKworICAgICAgICAgICAg
IyBDb21waWxlIHRoZSBQQ0ggYXQgdGhlIHNhbWUgbG9jYXRpb24sIHdpdGggdGhlIHN1ZmZpeCBh
ZGRlZC4KKyAgICAgICAgICAgIGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgICAgICAgICBP
VVRQVVQgIiR7X2hlYWRlcl9wYXRofS5nY2giCisgICAgICAgICAgICAgICAgTUFJTl9ERVBFTkRF
TkNZICIke19oZWFkZXJfcGF0aH0iCisgICAgICAgICAgICAgICAgSU1QTElDSVRfREVQRU5EUyBD
WFggIiR7X2hlYWRlcl9wYXRofSIKKyAgICAgICAgICAgICAgICBERVBFTkRTICIke19wY2hfZGly
fS9mbGFncyIKKyAgICAgICAgICAgICAgICBDT01NRU5UICJQcmVjb21waWxpbmcgJHtfUENIX0hF
QURFUn0gZm9yICR7X3RhcmdldH0iCisgICAgICAgICAgICAgICAgQ09NTUFORCAiJHtDTUFLRV9D
WFhfQ09NUElMRVJ9IiAiQCR7X3BjaF9kaXJ9L2ZsYWdzIgorICAgICAgICAgICAgICAgICAgICAt
eCBjKystaGVhZGVyIC1vICIke19oZWFkZXJfcGF0aH0uZ2NoIiAiJHtfaGVhZGVyX3BhdGh9Igor
ICAgICAgICAgICAgKQorCisgICAgICAgICAgICAjIEFkZCBhIG5ldyBjb252ZW5pZW5jZSBwY2gu
PGZvbz4gdGFyZ2V0LgorICAgICAgICAgICAgYWRkX2N1c3RvbV90YXJnZXQocGNoLiR7X1BDSF9T
T1VSQ0VTfQorICAgICAgICAgICAgICAgIFdPUktJTkdfRElSRUNUT1JZICIke0NNQUtFX0JJTkFS
WV9ESVJ9IgorICAgICAgICAgICAgICAgIERFUEVORFMgIiR7X2hlYWRlcl9wYXRofS5nY2giCisg
ICAgICAgICAgICAgICAgVkVSQkFUSU0KKyAgICAgICAgICAgICkKKworICAgICAgICAgICAgIyBB
ZGQgdGhlIGNvbnZlbmllbmNlIHRhcmdldCB0byB0aGUgcGNoLmFsbCBvbmUuCisgICAgICAgICAg
ICBpZiAoTk9UIFRBUkdFVCBwY2guYWxsKQorICAgICAgICAgICAgICAgIGFkZF9jdXN0b21fdGFy
Z2V0KHBjaC5hbGwgV09SS0lOR19ESVJFQ1RPUlkgIiR7Q01BS0VfQklOQVJZX0RJUn0iIFZFUkJB
VElNKQorICAgICAgICAgICAgZW5kaWYgKCkKKyAgICAgICAgICAgIGFkZF9kZXBlbmRlbmNpZXMo
cGNoLmFsbCBwY2guJHtfUENIX1NPVVJDRVN9KQorICAgICAgICBlbmRpZiAoKQogICAgIGVuZGlm
ICgpCiAgICAgI0ZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgWGNvZGUuCiBlbmRtYWNybygpCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTdjOWIzZDU3
MjkzMDMyZjkzMTVjODRkNGUzZTBiYzBkNWZmNjQ1ZC4uOGVlOGMxNTFlMmE5N2Y4ZjNiYmU0ZmIy
OTY4YjUzMzdkNTIwY2UzNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE3LTA5LTA5ICBBZHJpYW4gUGVyZXogZGUg
Q2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0NNYWtlXSBFbmFibGUgcHJl
LWNvbXBpbGVkIGhlYWRlcnMgKFBDSCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzOTQzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisKKyAgICAgICAgVGhpcyByZXVzZWQgdGhlIGV4aXN0aW5nIFdFQktJVF9BRERfUFJF
Q09NUElMRURfSEVBREVSKCkgbWFjcm8sIGFkZGluZworICAgICAgICBzdXBwb3J0IGZvciBDbGFu
Zy9HQ0MgYW5kIG1ha2luZyBpdCBtb3JlIGNvbnZlbmllbnQgdG8gdXNlLiBJbiBwYXJ0aWN1bGFy
OgorCisgICAgICAgIC0gRnJvbSB0aGUgcGFzc2VkIHRhcmdldCBuYW1lLCB0aGUgbWFjcm8gbm93
IGRlcml2ZXMgdGhlIG5hbWVzIG9mIHRoZQorICAgICAgICBwcmVjb21waWxlZCBoZWFkZXIsIHRo
ZSBuYW1lIG9mIHRoZSBjb3JyZXNwb25kaW5nIC5jcHAgZmlsZSAobmVlZGVkCisgICAgICAgIGZv
ciBNU1ZDKSwgYW5kIHRoZSBuYW1lIG9mIHRoZSBDTWFrZSB2YXJpYWJsZSB3aGljaCBjb250YWlu
cyB0aGUgbGlzdAorICAgICAgICBvZiBzb3VyY2UgZmlsZXMgdGhlIFBDSCBhcHBsaWVzIHRvLgor
CisgICAgICAgIC0gRWFjaCBvZiB0aGUgcGFyYW1ldGVycyBjYW4gYmUgb3ZlcnJpZGVuIHVzaW5n
IGtleXdvcmQgYXJndW1lbnRzLiBUaGlzCisgICAgICAgIGlzIG5lZWRlZCBmb3Igc2V0cyBvZiBz
b3VyY2UgZmlsZXMgd2hpY2ggcmV1c2UgcHJlZml4IGhlYWRlcnMgdXNlZCBmb3IKKyAgICAgICAg
b3RoZXIgdGFyZ2V0cyBhcyB3ZWxsLgorCisgICAgICAgIEludm9jYXRpb25zIG9mIFdFQktJVF9B
RERfUFJFQ09NUElMRURfSEVBREVSKCkgd2VyZSBpbnZva2VkIG9ubHkgZm9yCisgICAgICAgIE1T
VkMsIGFuZCB3ZXJlIHJlbW92ZWQgYmVjYXVzZSBhIGNoZWNrIGZvciB0aGUgY29tcGlsZXIgaXMg
ZG9uZSBpbnNpZGUKKyAgICAgICAgdGhlIG1hY3JvIGFueXdheS4KKworICAgICAgICBMYXN0IGJ1
dCBub3QgbGVhc3QsIHRoZSBwcmVmaXggaGVhYWRlcnMgbmVlZGVkIHNvbWUgZml4aW5nIHRvIG1h
a2UgaXQKKyAgICAgICAgcG9zc2libGUgdG8gdXNlIHRoZW0gZm9yIHRoZSBHVEsrIGFuZCBXUEUg
cG9ydHMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZTogVXNl
IG5ldyBjYWxsaW5nIGNvbnZlbnRpb24gZm9yCisgICAgICAgIFdFQktJVF9BRERfUFJFQ09NUElM
RURfSEVBREVSKCkuCisKIDIwMTctMDktMDkgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFy
b0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVucmV2aWV3ZWQsIGZpeCB0eXBvIGZvcndh
ZCAtPiBmb3J3YXJkCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdp
bi5jbWFrZSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IDY4
NTE4ZDIxODFiMjEwMTY2Njg5ODNjNjcxNGU4ZDFiZWZkNDg3ZDguLmMxNTc2MzRiNGVmNjNhNjU0
MjgxOGUzODY3NDE0MzEzOWE4M2JmNTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2lu
LmNtYWtlCkBAIC0xMDQsNyArMTA0LDkgQEAgZWxzZSAoKQogICAgICkKIGVuZGlmICgpCiAKLVdF
QktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJEdW1wUmVuZGVyVHJlZVByZWZpeC5oIiAid2lu
L0R1bXBSZW5kZXJUcmVlUHJlZml4LmNwcCIgRHVtcFJlbmRlclRyZWVMaWJfU09VUkNFUykKK1dF
QktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKER1bXBSZW5kZXJUcmVlTGliCisgICAgSEVBREVS
ICJEdW1wUmVuZGVyVHJlZVByZWZpeC5oIgorICAgIENQUCAid2luL0R1bXBSZW5kZXJUcmVlUHJl
Zml4LmNwcCIpCiBzZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9GTEFHUyAiJHtDTUFLRV9TSEFSRURf
TElOS0VSX0ZMQUdTfSAvTk9ERUZBVUxUTElCOk1TVkNSVCAvTk9ERUZBVUxUTElCOk1TVkNSVEQi
KQogYWRkX2RlZmluaXRpb25zKC1EVVNFX0NPTlNPTEVfRU5UUllfUE9JTlQpCiAKZGlmZiAtLWdp
dCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5NmM3Y2VkODcwYzNjYTIwOTU1OWY2NjY5
MjEzYzFhY2U2ZDc0MjI3Li4zZDhhOWQ2OTM0NmM2ODI5ZDJhMzk5YmE4YzM3YzhlZTk4MmRlMGRj
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAK
KzIwMTctMDktMDkgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4K
KworICAgICAgICBbQ01ha2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyByZXVzZWQg
dGhlIGV4aXN0aW5nIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCkgbWFjcm8sIGFkZGlu
ZworICAgICAgICBzdXBwb3J0IGZvciBDbGFuZy9HQ0MgYW5kIG1ha2luZyBpdCBtb3JlIGNvbnZl
bmllbnQgdG8gdXNlLiBJbiBwYXJ0aWN1bGFyOgorCisgICAgICAgIC0gRnJvbSB0aGUgcGFzc2Vk
IHRhcmdldCBuYW1lLCB0aGUgbWFjcm8gbm93IGRlcml2ZXMgdGhlIG5hbWVzIG9mIHRoZQorICAg
ICAgICBwcmVjb21waWxlZCBoZWFkZXIsIHRoZSBuYW1lIG9mIHRoZSBjb3JyZXNwb25kaW5nIC5j
cHAgZmlsZSAobmVlZGVkCisgICAgICAgIGZvciBNU1ZDKSwgYW5kIHRoZSBuYW1lIG9mIHRoZSBD
TWFrZSB2YXJpYWJsZSB3aGljaCBjb250YWlucyB0aGUgbGlzdAorICAgICAgICBvZiBzb3VyY2Ug
ZmlsZXMgdGhlIFBDSCBhcHBsaWVzIHRvLgorCisgICAgICAgIC0gRWFjaCBvZiB0aGUgcGFyYW1l
dGVycyBjYW4gYmUgb3ZlcnJpZGVuIHVzaW5nIGtleXdvcmQgYXJndW1lbnRzLiBUaGlzCisgICAg
ICAgIGlzIG5lZWRlZCBmb3Igc2V0cyBvZiBzb3VyY2UgZmlsZXMgd2hpY2ggcmV1c2UgcHJlZml4
IGhlYWRlcnMgdXNlZCBmb3IKKyAgICAgICAgb3RoZXIgdGFyZ2V0cyBhcyB3ZWxsLgorCisgICAg
ICAgIEludm9jYXRpb25zIG9mIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCkgd2VyZSBp
bnZva2VkIG9ubHkgZm9yCisgICAgICAgIE1TVkMsIGFuZCB3ZXJlIHJlbW92ZWQgYmVjYXVzZSBh
IGNoZWNrIGZvciB0aGUgY29tcGlsZXIgaXMgZG9uZSBpbnNpZGUKKyAgICAgICAgdGhlIG1hY3Jv
IGFueXdheS4KKworICAgICAgICBMYXN0IGJ1dCBub3QgbGVhc3QsIHRoZSBwcmVmaXggaGVhYWRl
cnMgbmVlZGVkIHNvbWUgZml4aW5nIHRvIG1ha2UgaXQKKyAgICAgICAgcG9zc2libGUgdG8gdXNl
IHRoZW0gZm9yIHRoZSBHVEsrIGFuZCBXUEUgcG9ydHMuCisKKyAgICAgICAgKiBTb3VyY2UvY21h
a2UvV2ViS2l0TWFjcm9zLmNtYWtlOiBBZGQgQ2xhbmcgYW5kIEdDQyBzdXBwb3J0IHRvCisgICAg
ICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCksIG1ha2UgbWFjcm8gbW9yZSBjb252
ZW5pZW50IHRvIHVzZS4KKwogMjAxNy0wOS0wNyAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFw
ZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdW0NNYWtlXSBBZGQgImRpc3QiIGFuZCAi
ZGlzdGNoZWNrIiB0YXJnZXRzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441574</attachid>
            <date>2021-10-18 02:28:09 -0700</date>
            <delta_ts>2021-10-18 03:02:05 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>bug-139438-20211018112807.patch</filename>
            <type>text/plain</type>
            <size>16448</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
MDhkMDc0YTY0OGY1NDgyMzU0YWFlYzFhY2I3MjliNmUxNmRlY2Y4Li44MDYwZjcxZTU1MzBlNGYy
YTU5OGY5ODM1ZDk3OGJhNWMzYTgwYTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJz
IChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3
aXAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDIxLTEwLTE2ICBNYXJrIExhbSAg
PG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIExMSW50QXNzZW1ibHkuaCBtb3Jl
IHJlYWRhYmxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY1NzQwMGY3N2Y5ODkxZjMzMGFiYjkxMWFiMDBjZDQw
NGY2MTYyNDAuLjMxZDkwMDUwMzlhZjY5ZGEyN2E3MGE2ZDg5OGNlNDQyNmY3NTQ1NmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3Ry
byAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21w
aWxlZCBoZWFkZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICB3aXAKKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmVQcmVmaXguaDoKKyAgICAgICAg
KiB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oOgorCiAyMDIxLTEwLTE3ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04gKHIyNzA4NTApOiBSZWZlcmVuY2UgY2xpcCBwYXRoIGNsaXBzIGluIHRoZSB3cm9uZyBwbGFj
ZSB3aGVuIGluc2lkZSBub24tdmlzaWJsZSBvdmVyZmxvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzZDk4NDc4ZGIz
YzRjNTY1NWVjZjk1NjhkMDcxMWY0ZWJhODU3ZWQxLi5mMmU3MzI1ZjJmOTMwZDZkYzAyNDhjNjIx
MGJhNjcwYTg0NzM3YzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTEwLTE4ICBB
ZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0NN
YWtlXSBFbmFibGUgcHJlLWNvbXBpbGVkIGhlYWRlcnMgKFBDSCkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQzOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdpcAorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogV2ViS2l0MlByZWZpeC5oOgorCiAyMDIxLTEwLTE3ICBCSiBCdXJn
ICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3RvcjogcmVt
b3ZlIF9XS0luc3BlY3RvckV4dGVuc2lvblByaXZhdGVGb3JUZXN0aW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdl
TG9nCmluZGV4IDdiZTQ5OGM4YTE1YjRhMjBiODQwZmY3MWE1ZGE5MWI3NWU5ZmVkMGMuLjA1ZjRl
YmY5MzQ4ZjRhYjI4ZDhjOTliYmNiMTM5YmFmYjkwMjE0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxh
cGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2VdIEVuYWJsZSBwcmUtY29tcGlsZWQg
aGVhZGVycyAoUENIKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgd2lwCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKwogMjAyMS0xMC0xNCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCB1
cCBwcmV2aW91cyBjb21taXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggNDgyZjdi
MTczZDNlODJlMmRmZmM3OTc3MjljYzZjZTlmZGYyN2FlMy4uZTI3YjBlZGQzNzg4OGI5MDA3M2Yx
YmVmNzU4YWM1YmJiMGE2ZTVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDIxLTEwLTE4ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGln
YWxpYS5jb20+CisKKyAgICAgICAgW0NNYWtlXSBFbmFibGUgcHJlLWNvbXBpbGVkIGhlYWRlcnMg
KFBDSCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
OTQzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdp
cAorCisgICAgICAgICogV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9DTWFrZUxpc3RzLnR4dDoK
KwogMjAyMS0xMC0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IERPTVRpbWVTdGFtcCBpcyBub3cgRXBvY2hUaW1lU3RhbXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCBkNzBiYTUyZDYxZmRmMDk5NWNiMWEyMmIwZGZhZmQ4ZTJlMGJkM2Rj
Li42OWQ0NzFlY2YzM2ZjM2Q0MDdmN2M5MDJlMzEwMDI4NTUzYWVjYWUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNTAyLDYgKzE1MDIsNyBAQCBlbmRpZiAoKQogV0VC
S0lUX0NPTVBVVEVfU09VUkNFUyhKYXZhU2NyaXB0Q29yZSkKIFdFQktJVF9GUkFNRVdPUksoSmF2
YVNjcmlwdENvcmUpCiBXRUJLSVRfRlJBTUVXT1JLX1RBUkdFVChKYXZhU2NyaXB0Q29yZSkKK1dF
QktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKEphdmFTY3JpcHRDb3JlICJKYXZhU2NyaXB0Q29y
ZVByZWZpeC5oIiAiSmF2YVNjcmlwdENvcmVQcmVmaXguY3BwIikKIAogaWYgKE5PVCAiJHtQT1JU
fSIgU1RSRVFVQUwgIk1hYyIpCiAgICAgaWYgKCR7SmF2YVNjcmlwdENvcmVfTElCUkFSWV9UWVBF
fSBTVFJFUVVBTCAiU0hBUkVEIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNzliZDg1YzQwOWZi
YjUyMjBjZjM4MGRmN2ZmNmEzZWNlMzkxODBiNy4uOTU0YWZkMDA3MTljZTUyMWQ5NjZhYTVjZTlk
MWViMGRlY2RmMWViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIyMzksMTAgKzIyMzksNiBA
QCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKIAogV0VCS0lUX0NPTVBVVEVfU09VUkNFUyhX
ZWJDb3JlKQogCi1pZiAoTVNWQykKLSAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigi
V2ViQ29yZVByZWZpeC5oIiAiV2ViQ29yZVByZWZpeC5jcHAiIFdlYkNvcmVfU09VUkNFUykKLWVu
ZGlmICgpCi0KIFdFQktJVF9DT1BZX0ZJTEVTKFdlYkNvcmVfQ29weVByaXZhdGVIZWFkZXJzCiAg
ICAgREVTVElOQVRJT04gJHtXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlNfRElSfS9X
ZWJDb3JlCiAgICAgRklMRVMgJHtXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlN9CkBA
IC0yMjU5LDYgKzIyNTUsNyBAQCBlbmRpZiAoKQogCiBXRUJLSVRfRlJBTUVXT1JLKFdlYkNvcmUp
CiBXRUJLSVRfRlJBTUVXT1JLX1RBUkdFVChXZWJDb3JlKQorV0VCS0lUX0FERF9QUkVDT01QSUxF
RF9IRUFERVIoV2ViQ29yZSAiV2ViQ29yZVByZWZpeC5oIiAiV2ViQ29yZVByZWZpeC5jcHAiKQog
CiBpZiAoQVBQTEUpCiAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFdlYkNvcmUgUFJPUEVSVElF
UyBMSU5LX0ZMQUdTICItc3ViX2xpYnJhcnkgbGlib2JqYyAtdW1icmVsbGEgV2ViS2l0IC1hbGxv
d2FibGVfY2xpZW50IFdlYkNvcmVUZXN0U3VwcG9ydCAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXQy
IC1hbGxvd2FibGVfY2xpZW50IFdlYktpdExlZ2FjeSIpCkBAIC0yMjcyLDEwICsyMjY5LDYgQEAg
aWYgKENNQUtFX0NPTVBJTEVSX0lTX0dOVUNYWCBBTkQgIiR7TE9XRVJDQVNFX0NNQUtFX0hPU1Rf
U1lTVEVNX1BST0NFU1NPUn0iIE1BVEMKICAgICBXRUJLSVRfQUREX1RBUkdFVF9DWFhfRkxBR1Mo
V2ViQ29yZSAtZm5vLXRyZWUtc3JhKQogZW5kaWYgKCkKIAotaWYgKE1TVkMpCi0gICAgV0VCS0lU
X0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oIiAidGVz
dGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguY3BwIiBXZWJDb3JlVGVzdFN1cHBvcnRf
U09VUkNFUykKLWVuZGlmICgpCi0KIFdFQktJVF9DT1BZX0ZJTEVTKENvcHlfV2ViQ29yZVRlc3RT
dXBwb3J0UHJpdmF0ZUhlYWRlcnMKICAgICBERVNUSU5BVElPTiAke1dlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSU19ESVJ9L1dlYkNvcmVUZXN0U3VwcG9ydAogICAgIEZJTEVTIHRlc3Rp
bmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmggdGVzdGluZy9jb2NvYS9XZWJBcmNoaXZlRHVtcFN1
cHBvcnQuaApAQCAtMjI5Nyw2ICsyMjkwLDcgQEAgZW5kaWYgKCkKIAogV0VCS0lUX0ZSQU1FV09S
SyhXZWJDb3JlVGVzdFN1cHBvcnQpCiBXRUJLSVRfRlJBTUVXT1JLX1RBUkdFVChXZWJDb3JlVGVz
dFN1cHBvcnQpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihXZWJDb3JlVGVzdFN1cHBv
cnQgInRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgiICJ0ZXN0aW5nL2pzL1dl
YkNvcmVUZXN0U3VwcG9ydFByZWZpeC5jcHAiKQogCiBpZiAoJHtXZWJDb3JlX0xJQlJBUllfVFlQ
RX0gTUFUQ0hFUyAiU0hBUkVEIikKICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoV2ViQ29yZSBQ
Uk9QRVJUSUVTIFZFUlNJT04gJHtQUk9KRUNUX1ZFUlNJT059IFNPVkVSU0lPTiAke1BST0pFQ1Rf
VkVSU0lPTl9NQUpPUn0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4
LmggYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKaW5kZXggZDBjNDVmNjYyZGU3NWQy
NjBhYzZlYTY0YWI1ZDAwYzViYzg0OTk4Zi4uZjZkZjQ2NjFhZDZhOTU0YTMxM2JlNjQxOWNmNDVi
MTA3NmU2ZTNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaApAQCAtMTE2LDYgKzExNiwyOSBAQAog
CiAjaWYgUExBVEZPUk0oV0lOX0NBSVJPKQogI2luY2x1ZGUgPHdpbmRvd3MuaD4KKworI2VsaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisKKyNpZiBVU0UoQ0FJUk8pCisjaW5jbHVk
ZSA8Y2Fpcm8uaD4KKyNlbmRpZgorCisjaWYgVVNFKEhBUkZCVVpaKQorI2luY2x1ZGUgPGhiLmg+
CisjZW5kaWYKKworI2lmIFVTRShHTElCKQorI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjZW5k
aWYKKworI2lmIFVTRShTT1VQKQorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2VuZGlmCisK
KyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNlbmRpZgorCiAjZWxz
ZQogCiAjaWYgT1MoV0lORE9XUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
anMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pz
L1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oCmluZGV4IDc1YmEyNDA3ZWU0MTU4NWFiOWJhYTMy
NDdjMjhkMTQ0N2VlYzI0MTIuLmEwNmFjNDFlNGY0ZTM4YWIzNzM4YjcyY2MyZmZmNDUxZmFjYTc1
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBw
b3J0UHJlZml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1
cHBvcnRQcmVmaXguaApAQCAtODgsNiArODgsMjggQEAKIAogI2lmIFBMQVRGT1JNKFdJTl9DQUlS
TykKICNpbmNsdWRlIDx3aW5kb3dzLmg+CisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFdQRSkKKworI2lmIFVTRShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby9jYWlyby5oPgorI2VuZGlm
CisKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2VuZGlmCisKKyNp
ZiBVU0UoU09VUCkKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNlbmRpZgorCisjaWYgVVNF
KExJQkVQT1hZKQorI2luY2x1ZGUgPGVwb3h5Lmg+CisjZW5kaWYKKworI2lmIFVTRShHU1RSRUFN
RVIpCisjaW5jbHVkZSA8Z3N0L2dzdC5oPgorI2VuZGlmCisKICNlbHNlCiAKICNpZiBPUyhXSU5E
T1dTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggY2FiNGJlMGNlMjAxZjE2MGIwMjIyZmExMjcyNzAx
MDUwZTAzMmIxMi4uOWU2ZGZmNTE1ODE0ZmVmMjRmNjdhMTQwZDE5YzBjNzEyM2Y3ODdjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CkBAIC0zODcsMTEgKzM4Nyw3IEBAIGVuZGlmICgpCiAKIG1hY3JvKEFE
RF9XRUJLSVRfUFJFRklYX0hFQURFUiBfdGFyZ2V0KQogICAgIGlmIChXZWJLaXRfVVNFX1BSRUZJ
WF9IRUFERVIpCi0gICAgICAgIGdldF90YXJnZXRfcHJvcGVydHkoT0xEX0NPTVBJTEVfRkxBR1Mg
JHtfdGFyZ2V0fSBDT01QSUxFX0ZMQUdTKQotICAgICAgICBpZiAoJHtPTERfQ09NUElMRV9GTEFH
U30gU1RSRVFVQUwgIk9MRF9DT01QSUxFX0ZMQUdTLU5PVEZPVU5EIikKLSAgICAgICAgICAgIHNl
dChPTERfQ09NUElMRV9GTEFHUyAiIikKLSAgICAgICAgZW5kaWYgKCkKLSAgICAgICAgc2V0X3Rh
cmdldF9wcm9wZXJ0aWVzKCR7X3RhcmdldH0gUFJPUEVSVElFUyBDT01QSUxFX0ZMQUdTICIke09M
RF9DT01QSUxFX0ZMQUdTfSAtaW5jbHVkZSAke1dFQktJVF9ESVJ9L1dlYktpdDJQcmVmaXguaCIp
CisgICAgICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCR7X3RhcmdldH0gIldlYktp
dDJQcmVmaXguaCIgIldlYktpdDJQcmVmaXguY3BwIikKICAgICBlbmRpZiAoKQogZW5kbWFjcm8o
KQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0MlByZWZpeC5oCmluZGV4IDQwNmFhODExOGZhNjZkYWRmYzM1YjhlYmU0YmYy
NDA5M2FjZjYxYWYuLjZiMjliOTk4MmUzMjM1YzgxNjI3YjRkNzlmMTA2NGU0MTM4YjcyMGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0MlByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0MlByZWZpeC5oCkBAIC02Myw2ICs2MywzNCBAQAogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oQ09DT0EpCiAKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKKworI2lmIFVT
RShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby9jYWlyby5oPgorI2VuZGlmCisKKyNpZiBVU0UoSEFS
RkJVWlopCisjaW5jbHVkZSA8aGIuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVk
ZSA8Z2xpYi1vYmplY3QuaD4KKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisjaW5jbHVkZSA8bGli
c291cC9zb3VwLmg+CisjZW5kaWYKKworI2lmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVkZSA8Z3N0
L2dzdC5oPgorI2VuZGlmCisKKyNpZiBQTEFURk9STShHVEspCisjaW5jbHVkZSA8Z3RrL2d0ay5o
PgorI2VuZGlmCisKKyNlbmRpZiAvLyBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKKwog
LyogV2hlbiBDKysgZXhjZXB0aW9ucyBhcmUgZGlzYWJsZWQsIHRoZSBDKysgbGlicmFyeSBkZWZp
bmVzIHx0cnl8IGFuZCB8Y2F0Y2h8CiAqIHRvIGFsbG93IEMrKyBjb2RlIHRoYXQgZXhwZWN0cyBl
eGNlcHRpb25zIHRvIGJ1aWxkLiBUaGVzZSBkZWZpbml0aW9ucwogKiBpbnRlcmZlcmUgd2l0aCBP
YmplY3RpdmUtQysrIHVzZXMgb2YgT2JqZWN0aXZlLUMgZXhjZXB0aW9uIGhhbmRsZXJzLCB3aGlj
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvQ01ha2VMaXN0cy50eHQKaW5kZXggNjU4OTY3Njk1MmMzZDUwZjJmYjcw
NWQyNDM4M2I2YzJlOGYxZjI2MC4uZTFjMWRkODJhMGYyMDVjNGMwYWY4ZDI5OTUxY2M4MTg3ZTBl
NzY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlzdHMudHh0CkBAIC00MiwxMiArNDIsMTIgQEAg
V0VCS0lUX0ZSQU1FV09SS19ERUNMQVJFKFdlYktpdExlZ2FjeSkKIFdFQktJVF9JTkNMVURFX0NP
TkZJR19GSUxFU19JRl9FWElTVFMoKQogCiBpZiAoTVNWQykKLSAgICBXRUJLSVRfQUREX1BSRUNP
TVBJTEVEX0hFQURFUigiV2ViS2l0UHJlZml4LmgiICJ3aW4vV2ViS2l0UHJlZml4LmNwcCIgV2Vi
S2l0TGVnYWN5X1NPVVJDRVMpCiAgICAgbGlzdChBUFBFTkQgV2ViS2l0TGVnYWN5X1NPVVJDRVMg
d2luL1dlYktpdC5yZXNvdXJjZXMvV2ViS2l0LnJjKQogICAgIGFkZF9kZWZpbml0aW9ucygvRFdF
QktJVF9FWFBPUlRTIC9ERlJBTUVXT1JLX05BTUU9V2ViS2l0TGVnYWN5KQogZW5kaWYgKCkKIAog
V0VCS0lUX0ZSQU1FV09SSyhXZWJLaXRMZWdhY3kpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hF
QURFUihXZWJLaXRMZWdhY3kgIldlYktpdFByZWZpeC5oIiAid2luL1dlYktpdFByZWZpeC5jcHAi
KQogCiBpZiAoVEFSR0VUIFdlYktpdExlZ2FjeUdVSUQpCiAgICAgYWRkX2RlcGVuZGVuY2llcyhX
ZWJLaXRMZWdhY3kgV2ViS2l0TGVnYWN5R1VJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlzdHMu
dHh0CmluZGV4IGJjMDk3OThiOGIwMmFmMjljMzgzYjc4N2U2ZjE3NmZhMjJlZmQ3M2IuLjUzMDc0
MjUwM2JiN2MzMTMwMTQ4ZGQ5MmRhZDI1ODUxM2IwZDUyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9D
TWFrZUxpc3RzLnR4dApAQCAtNDEsOCArNDEsNiBAQCBmaWxlKENPUFkgJHtDTUFLRV9DVVJSRU5U
X1NPVVJDRV9ESVJ9L0FQSS9XS0NBQ0ZJbWFnZUludGVybmFsLmggREVTVElOQVRJT04gJHtERQog
ZmlsZShDT1BZICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9BUEkvV0tDQUNGVmlldy5oIERF
U1RJTkFUSU9OICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9u
cykKIGZpbGUoQ09QWSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vQVBJL1dLQ0FDRlZpZXdQ
cml2YXRlLmggREVTVElOQVRJT04gJHtERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJLaXRRdWFydHpD
b3JlQWRkaXRpb25zKQogCi1XRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0UXVh
cnR6Q29yZUFkZGl0aW9uc1ByZWZpeC5oIiAiV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9uc1ByZWZp
eC5jcHAiIFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNfU09VUkNFUykKLQogaW5jbHVkZV9kaXJl
Y3RvcmllcygKICAgICAuCiAgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hl
YWRlcnMiCkBAIC01OSwzICs1Nyw0IEBAIHRhcmdldF9saW5rX2xpYnJhcmllcyhXZWJLaXRRdWFy
dHpDb3JlQWRkaXRpb25zCiAgICAgQ29yZUdyYXBoaWNzJHtERUJVR19TVUZGSVh9CiAgICAgUXVh
cnR6Q29yZSR7REVCVUdfU1VGRklYfQogKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIo
V2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucyAiV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9uc1ByZWZp
eC5oIiAiV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9uc1ByZWZpeC5jcHAiKQpkaWZmIC0tZ2l0IGEv
U291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNy
b3MuY21ha2UKaW5kZXggMjAwY2U0ODE4ODliN2UyMWVjODZjYzY1ZWFhM2FlMGU5Yzg3ZTczZC4u
MmM4NmEwYzIzMTI4NWFjMDBhYzlkNWE5MDM0YmY3YjBhMWVjMmNmMyAxMDA2NDQKLS0tIGEvU291
cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFj
cm9zLmNtYWtlCkBAIC05MCwxMiArOTAsMTQgQEAgbWFjcm8oV0VCS0lUX0FERF9TT1VSQ0VfREVQ
RU5ERU5DSUVTIF9zb3VyY2UgX2RlcHMpCiAgICAgdW5zZXQoX3RtcCkKIGVuZG1hY3JvKCkKIAot
bWFjcm8oV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIgX2hlYWRlciBfY3BwIF9zb3VyY2Up
Ci0gICAgaWYgKE1TVkMpCittYWNybyhXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUiBfdGFy
Z2V0IF9oZWFkZXIgX2NwcCkKKyAgICBpZiAoQ01BS0VfVkVSU0lPTiBWRVJTSU9OX0dSRUFURVJf
RVFVQUwgMy4xNykKKyAgICAgICAgdGFyZ2V0X3ByZWNvbXBpbGVfaGVhZGVycygke190YXJnZXR9
IFBSSVZBVEUgJHtfaGVhZGVyfSkKKyAgICBlbHNlaWYgKE1TVkMpCiAgICAgICAgIGdldF9maWxl
bmFtZV9jb21wb25lbnQoUHJlY29tcGlsZWRCYXNlbmFtZSAke19jcHB9IE5BTUVfV0UpCi0gICAg
ICAgIGZpbGUoTUFLRV9ESVJFQ1RPUlkgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8ke19z
b3VyY2V9IikKLSAgICAgICAgc2V0KFByZWNvbXBpbGVkQmluYXJ5ICIke0NNQUtFX0NVUlJFTlRf
QklOQVJZX0RJUn0vJHtfc291cmNlfS8ke1ByZWNvbXBpbGVkQmFzZW5hbWV9LnBjaCIpCi0gICAg
ICAgIHNldChfc291cmNlcyAkeyR7X3NvdXJjZX19KQorICAgICAgICBmaWxlKE1BS0VfRElSRUNU
T1JZICIke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vJHtfdGFyZ2V0fSIpCisgICAgICAgIHNl
dChQcmVjb21waWxlZEJpbmFyeSAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7X3Rhcmdl
dH0vJHtQcmVjb21waWxlZEJhc2VuYW1lfS5wY2giKQorICAgICAgICBzZXQoX3NvdXJjZXMgJHsk
e190YXJnZXR9X1NPVVJDRVN9KQogCiAgICAgICAgICMgY2xhbmctY2wgcmVxdWlyZXMgL0ZJIHdp
dGggL1ljCiAgICAgICAgIGlmIChDT01QSUxFUl9JU19DTEFOR19DTCkKQEAgLTExNCw5ICsxMTYs
OCBAQCBtYWNybyhXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUiBfaGVhZGVyIF9jcHAgX3Nv
dXJjZSkKICAgICAgICAgICAgIFdFQktJVF9BRERfU09VUkNFX0RFUEVOREVOQ0lFUygke19zcmN9
ICR7UHJlY29tcGlsZWRCaW5hcnl9KQogICAgICAgICBlbmRmb3JlYWNoICgpCiAKLSAgICAgICAg
bGlzdChBUFBFTkQgJHtfc291cmNlfSAke19jcHB9KQorICAgICAgICBsaXN0KEFQUEVORCAke190
YXJnZXR9X1NPVVJDRVMgJHtfY3BwfSkKICAgICBlbmRpZiAoKQotICAgICNGSVhNRTogQWRkIHN1
cHBvcnQgZm9yIFhjb2RlLgogZW5kbWFjcm8oKQogCiBtYWNybyhXRUJLSVRfRlJBTUVXT1JLX0RF
Q0xBUkUgX3RhcmdldCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCAxYjlhOTVkNjI2NWYwMDM2YmU3ZWNmMGE2MWY4NjJmMGQ5NzEwNjZjLi5jMDZj
NjZlZTg1Yzc4Yzg0ZDVkNjMyNjhiMDI5ZjI0OGNhYjA3MDYwIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAt
MTggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbQ01ha2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1BsYXRmb3JtRlRXLmNtYWtlOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1X
aW4uY21ha2U6CisKIDIwMjEtMTAtMTcgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgdGVzdHMgZm9yIFdURjo6T1NPYmplY3RQdHIvYWRvcHRPU09iamVj
dCBpbiBDb2NvYSB3aXRoIGFuZCB3aXRob3V0IEFSQwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2UgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9y
bVdpbi5jbWFrZQppbmRleCBmZDA2NTJiNDNmNWMwYjllMjE5YzNmZDc1YTkzM2YxMDA1OTA2ODBh
Li4zMzA5YTg2NjM0OWZiZjc3MGZmNjFiNGYwYmJhYzQ5MTk0ZjYzZjI0IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtNzIsMTEgKzcyLDExIEBAIGVsc2UgKCkKICAg
ICBlbmRpZiAoKQogZW5kaWYgKCkKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIkR1
bXBSZW5kZXJUcmVlUHJlZml4LmgiICJ3aW4vRHVtcFJlbmRlclRyZWVQcmVmaXguY3BwIiBEdW1w
UmVuZGVyVHJlZV9TT1VSQ0VTKQogc2V0KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01B
S0VfU0hBUkVEX0xJTktFUl9GTEFHU30gJHtNU1ZDX1JVTlRJTUVfTElOS0VSX0ZMQUdTfSIpCiAK
IFdFQktJVF9XUkFQX0VYRUNVVEFCTEUoRHVtcFJlbmRlclRyZWUKICAgICBTT1VSQ0VTICR7VE9P
TFNfRElSfS93aW4vRExMTGF1bmNoZXIvRExMTGF1bmNoZXJNYWluLmNwcAogICAgIExJQlJBUklF
UyBzaGx3YXBpCiApCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihEdW1wUmVuZGVyVHJl
ZSAiRHVtcFJlbmRlclRyZWVQcmVmaXguaCIgIndpbi9EdW1wUmVuZGVyVHJlZVByZWZpeC5jcHAi
KQogdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMoRHVtcFJlbmRlclRyZWUgUFJJVkFURSAke3dy
YXBwZXJfREVGSU5JVElPTlN9KQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Q
bGF0Zm9ybUZUVy5jbWFrZSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1GVFcuY21h
a2UKaW5kZXggNmYxYzk2NzNiM2JmZjMzY2I4NDE3ZmFjYTVjNzNmNTZjZmFkOGQ2Ny4uYWY2ZDRh
NjNjNmRjNjg2NDdlNzRhMDk4MTI0NjQ2M2JjMGU3MmQ0MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1BsYXRmb3JtRlRXLmNtYWtlCkBAIC0yOSwxMiArMjksMTEgQEAgbGlzdChBUFBFTkQgV2Vi
S2l0VGVzdFJ1bm5lcl9MSUJSQVJJRVMKICAgICBPbGVhY2MKICkKIAotV0VCS0lUX0FERF9QUkVD
T01QSUxFRF9IRUFERVIoIldlYktpdFRlc3RSdW5uZXJQcmVmaXguaCIgIndpbi9XZWJLaXRUZXN0
UnVubmVyUHJlZml4LmNwcCIgV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTKQotCiBzZXQoQ01BS0Vf
U0hBUkVEX0xJTktFUl9GTEFHUyAiJHtDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTfSAke01TVkNf
UlVOVElNRV9MSU5LRVJfRkxBR1N9IikKIAogV0VCS0lUX1dSQVBfRVhFQ1VUQUJMRShXZWJLaXRU
ZXN0UnVubmVyCiAgICAgU09VUkNFUyAke1RPT0xTX0RJUn0vd2luL0RMTExhdW5jaGVyL0RMTExh
dW5jaGVyTWFpbi5jcHAKICAgICBMSUJSQVJJRVMgc2hsd2FwaQogKQorV0VCS0lUX0FERF9QUkVD
T01QSUxFRF9IRUFERVIoV2ViS2l0VGVzdFJ1bm5lciAiV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5o
IiAid2luL1dlYktpdFRlc3RSdW5uZXJQcmVmaXguY3BwIikKIHRhcmdldF9jb21waWxlX2RlZmlu
aXRpb25zKFdlYktpdFRlc3RSdW5uZXIgUFJJVkFURSAke3dyYXBwZXJfREVGSU5JVElPTlN9KQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdpbi5jbWFrZSBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggY2E0OTc5MmU5ZGQx
ZGJkNGVkNGNhMjI2OTRjNWNjYjgzNjhhOGRlYS4uYjliMDFlYWYwMGNkZGZlOWIxZjJlYjJkMmM4
ZTZhYjIwYzIyOTlhZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9y
bVdpbi5jbWFrZQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2luLmNtYWtl
CkBAIC0zNCwxMiArMzQsMTEgQEAgbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5lckluamVjdGVk
QnVuZGxlX0xJQlJBUklFUwogICAgICQ8VEFSR0VUX09CSkVDVFM6V2ViQ29yZVRlc3RTdXBwb3J0
PgogKQogCi1XRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0VGVzdFJ1bm5lclBy
ZWZpeC5oIiAid2luL1dlYktpdFRlc3RSdW5uZXJQcmVmaXguY3BwIiBXZWJLaXRUZXN0UnVubmVy
X1NPVVJDRVMpCi0KIHNldChDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICIke0NNQUtFX1NIQVJF
RF9MSU5LRVJfRkxBR1N9ICR7TVNWQ19SVU5USU1FX0xJTktFUl9GTEFHU30iKQogCiBXRUJLSVRf
V1JBUF9FWEVDVVRBQkxFKFdlYktpdFRlc3RSdW5uZXIKICAgICBTT1VSQ0VTICR7VE9PTFNfRElS
fS93aW4vRExMTGF1bmNoZXIvRExMTGF1bmNoZXJNYWluLmNwcAogICAgIExJQlJBUklFUyBzaGx3
YXBpCiApCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihXZWJLaXRUZXN0UnVubmVyICJX
ZWJLaXRUZXN0UnVubmVyUHJlZml4LmgiICJ3aW4vV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5jcHAi
KQogdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMoV2ViS2l0VGVzdFJ1bm5lciBQUklWQVRFICR7
d3JhcHBlcl9ERUZJTklUSU9OU30pCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cK
aW5kZXggYmYwYTRjMGY5N2IwNTQ0Y2ZhN2IzODNjM2Y1YjQxMzU5NWNkODA5OC4uMTE2ZmFmZGU4
MzZmM2ZhYjUxYjRiN2MxYjM0NDU5YjMyYjdkOTUxMCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisr
KyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTEwLTE4ICBBZHJpYW4gUGVyZXog
ZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0NNYWtlXSBFbmFibGUg
cHJlLWNvbXBpbGVkIGhlYWRlcnMgKFBDSCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzOTQzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIHdpcAorCisgICAgICAgICogU291cmNlL2NtYWtlL1dlYktpdE1h
Y3Jvcy5jbWFrZToKKwogMjAyMS0xMC0xNiAgVGV0c3VoYXJ1IE9oemVraSAgPHRldHN1aGFydS5v
aHpla2lAZ21haWwuY29tPgogCiAgICAgICAgIEFkZCBnaXRodWIgdXNlcm5hbWUgZm9yIHRldHN1
aGFydW9oemVraSB0byBjb250cmlidXRvcnMuanNvbgo=
</data>
<flag name="commit-queue"
          id="465891"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441576</attachid>
            <date>2021-10-18 02:44:42 -0700</date>
            <delta_ts>2021-10-18 04:47:12 -0700</delta_ts>
            <desc>WIP Patch v2</desc>
            <filename>bug-139438-20211018114441.patch</filename>
            <type>text/plain</type>
            <size>17179</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZWYwZTQ0YjcyYTFhOGNjMTkwZTE4ZWRmMTg2NWZlOTFkY2M5YzYzLi44ZWEzM2I5N2ZhMGQzYzFj
ZDY1MjVhNzNlZTc4MDdiYTUwZTQ5ZTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJz
IChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3
aXAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDIxLTEwLTE4ICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUHV0QnlWYWwncyBjaGls
ZDUgc2hvdWxkIGJlIEtub3duSW50MzJVc2UgLyBJbnQ1MlJlcFVzZSBpbiBGVEwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA5ZWQ4ZmQ3YmZmYWVmODNkMzRmMzUwZjU0OThmOWVlMDM2NmFkM2U1Li5mYjdhYmM2OTkx
ODk0OWJiMjY0ZGI3NGM5NGU0NTI3OTMwOGMxODZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNv
bT4KKworICAgICAgICBbQ01ha2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBXZWJDb3JlUHJlZml4Lmg6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJDb3Jl
VGVzdFN1cHBvcnRQcmVmaXguaDoKKwogMjAyMS0xMC0xNyAgRGVhbiBKYWNrc29uICA8ZGlub0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYlhSXSBTdHVicyBmb3IgV2ViWFIgSGFuZCBJbnB1dCBN
b2R1bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggMTMxZTNhMDkwMzUzMTcwMTdlNDZkODRiNjFkOGVhNGYxZTJmMmZm
Ni4uMjJiNzc3ZGI5OTgyMjQyZmM3ZGJjOGIyYjEzNWJkZjFiZWJmOGZmYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJl
ekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFk
ZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICB3aXAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYktpdDJQcmVm
aXguaDoKKwogMjAyMS0xMC0xOCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFVzZS1hZnRlci1tb3ZlIG9mIG1fc29ja2V0cyBpbiBOZXR3b3JrUlRDUHJvdmlk
ZXI6OmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggN2JlNDk4YzhhMTViNGEyMGI4NDBm
ZjcxYTVkYTkxYjc1ZTlmZWQwYy4uMDVmNGViZjkzNDhmNGFiMjhkOGM5OWJiY2IxMzliYWZiOTAy
MTQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMC0xOCAg
QWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtD
TWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aXAKKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorCiAyMDIxLTEwLTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHVwIHByZXZpb3VzIGNvbW1pdC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZwppbmRleCA0ODJmN2IxNzNkM2U4MmUyZGZmYzc5NzcyOWNjNmNlOWZkZjI3
YWUzLi5lMjdiMGVkZDM3ODg4YjkwMDczZjFiZWY3NThhYzViYmIwYTZlNWViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2VdIEVu
YWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAgICAgICAgKiBXZWJLaXRRdWFydHpDb3Jl
QWRkaXRpb25zL0NNYWtlTGlzdHMudHh0OgorCiAyMDIxLTEwLTExICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRE9NVGltZVN0YW1wIGlzIG5vdyBFcG9jaFRpbWVT
dGFtcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ3MGJhNTJkNjFmZGYw
OTk1Y2IxYTIyYjBkZmFmZDhlMmUwYmQzZGMuLjY5ZDQ3MWVjZjMzZmMzZDQwN2Y3YzkwMmUzMTAw
Mjg1NTNhZWNhZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE1MDIs
NiArMTUwMiw3IEBAIGVuZGlmICgpCiBXRUJLSVRfQ09NUFVURV9TT1VSQ0VTKEphdmFTY3JpcHRD
b3JlKQogV0VCS0lUX0ZSQU1FV09SSyhKYXZhU2NyaXB0Q29yZSkKIFdFQktJVF9GUkFNRVdPUktf
VEFSR0VUKEphdmFTY3JpcHRDb3JlKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoSmF2
YVNjcmlwdENvcmUgIkphdmFTY3JpcHRDb3JlUHJlZml4LmgiICJKYXZhU2NyaXB0Q29yZVByZWZp
eC5jcHAiKQogCiBpZiAoTk9UICIke1BPUlR9IiBTVFJFUVVBTCAiTWFjIikKICAgICBpZiAoJHtK
YXZhU2NyaXB0Q29yZV9MSUJSQVJZX1RZUEV9IFNUUkVRVUFMICJTSEFSRUQiKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXguaAppbmRleCBjYjc1YTE4NDUwN2Nl
NTQ5NmZjMDg0OGU2NWYxZTcyNTg1MjAwMzIyLi4zZTBmY2NhODE2MDVlNGI3MDEwMThmMjY5YmM2
YjlhYWJhNmUwYTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmVQcmVmaXguaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQ
cmVmaXguaApAQCAtMjMsNiArMjMsMTIgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorI2lmIGRl
ZmluZWQoSEFWRV9DT05GSUdfSCkgJiYgSEFWRV9DT05GSUdfSCAmJiBkZWZpbmVkKEJVSUxESU5H
X1dJVEhfQ01BS0UpCisjaW5jbHVkZSAiY21ha2Vjb25maWcuaCIKKyNlbmRpZgorCisjaW5jbHVk
ZSA8d3RmL1BsYXRmb3JtLmg+CisKICNpZmRlZiBfX2NwbHVzcGx1cwogI2RlZmluZSBOVUxMIF9f
bnVsbAogI2Vsc2UKQEAgLTM2LDcgKzQyLDExIEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNs
dWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2lmICFPUyhXSU5ET1dTKQog
I2luY2x1ZGUgPHN0cmluZ3MuaD4KKyNlbmRpZgorCiAjaW5jbHVkZSA8dGltZS5oPgogI2luY2x1
ZGUgPHN5cy9wYXJhbS5oPgogI2luY2x1ZGUgPHN5cy90aW1lLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IGYxN2VhMzdlYzdiYWY0M2U4MmE2M2UwODFiNGNmMDNjZTljNjQ0NTUuLjAxYmQ1ZWJm
NTIyYzFmOTUxYjg5YjVlMDg2MjIxNTU0YjdmYTI3NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0yMjQ1LDEwICsyMjQ1LDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAKIFdFQktJ
VF9DT01QVVRFX1NPVVJDRVMoV2ViQ29yZSkKIAotaWYgKE1TVkMpCi0gICAgV0VCS0lUX0FERF9Q
UkVDT01QSUxFRF9IRUFERVIoIldlYkNvcmVQcmVmaXguaCIgIldlYkNvcmVQcmVmaXguY3BwIiBX
ZWJDb3JlX1NPVVJDRVMpCi1lbmRpZiAoKQotCiBXRUJLSVRfQ09QWV9GSUxFUyhXZWJDb3JlX0Nv
cHlQcml2YXRlSGVhZGVycwogICAgIERFU1RJTkFUSU9OICR7V2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTX0RJUn0vV2ViQ29yZQogICAgIEZJTEVTICR7V2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTfQpAQCAtMjI2NSw2ICsyMjYxLDcgQEAgZW5kaWYgKCkKIAogV0VCS0lU
X0ZSQU1FV09SSyhXZWJDb3JlKQogV0VCS0lUX0ZSQU1FV09SS19UQVJHRVQoV2ViQ29yZSkKK1dF
QktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKFdlYkNvcmUgIldlYkNvcmVQcmVmaXguaCIgIldl
YkNvcmVQcmVmaXguY3BwIikKIAogaWYgKEFQUExFKQogICAgIHNldF90YXJnZXRfcHJvcGVydGll
cyhXZWJDb3JlIFBST1BFUlRJRVMgTElOS19GTEFHUyAiLXN1Yl9saWJyYXJ5IGxpYm9iamMgLXVt
YnJlbGxhIFdlYktpdCAtYWxsb3dhYmxlX2NsaWVudCBXZWJDb3JlVGVzdFN1cHBvcnQgLWFsbG93
YWJsZV9jbGllbnQgV2ViS2l0MiAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRMZWdhY3kiKQpAQCAt
MjI3OCwxMCArMjI3NSw2IEBAIGlmIChDTUFLRV9DT01QSUxFUl9JU19HTlVDWFggQU5EICIke0xP
V0VSQ0FTRV9DTUFLRV9IT1NUX1NZU1RFTV9QUk9DRVNTT1J9IiBNQVRDCiAgICAgV0VCS0lUX0FE
RF9UQVJHRVRfQ1hYX0ZMQUdTKFdlYkNvcmUgLWZuby10cmVlLXNyYSkKIGVuZGlmICgpCiAKLWlm
IChNU1ZDKQotICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJDb3JlVGVzdFN1
cHBvcnRQcmVmaXguaCIgInRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmNwcCIg
V2ViQ29yZVRlc3RTdXBwb3J0X1NPVVJDRVMpCi1lbmRpZiAoKQotCiBXRUJLSVRfQ09QWV9GSUxF
UyhDb3B5X1dlYkNvcmVUZXN0U3VwcG9ydFByaXZhdGVIZWFkZXJzCiAgICAgREVTVElOQVRJT04g
JHtXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlNfRElSfS9XZWJDb3JlVGVzdFN1cHBv
cnQKICAgICBGSUxFUyB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5oIHRlc3RpbmcvY29j
b2EvV2ViQXJjaGl2ZUR1bXBTdXBwb3J0LmgKQEAgLTIzMDMsNiArMjI5Niw3IEBAIGVuZGlmICgp
CiAKIFdFQktJVF9GUkFNRVdPUksoV2ViQ29yZVRlc3RTdXBwb3J0KQogV0VCS0lUX0ZSQU1FV09S
S19UQVJHRVQoV2ViQ29yZVRlc3RTdXBwb3J0KQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFE
RVIoV2ViQ29yZVRlc3RTdXBwb3J0ICJ0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZp
eC5oIiAidGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguY3BwIikKIAogaWYgKCR7
V2ViQ29yZV9MSUJSQVJZX1RZUEV9IE1BVENIRVMgIlNIQVJFRCIpCiAgICAgc2V0X3RhcmdldF9w
cm9wZXJ0aWVzKFdlYkNvcmUgUFJPUEVSVElFUyBWRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OfSBT
T1ZFUlNJT04gJHtQUk9KRUNUX1ZFUlNJT05fTUFKT1J9KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZVByZWZpeC5oIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oCmlu
ZGV4IGQwYzQ1ZjY2MmRlNzVkMjYwYWM2ZWE2NGFiNWQwMGM1YmM4NDk5OGYuLmY2ZGY0NjYxYWQ2
YTk1NGEzMTNiZTY0MTljZjQ1YjEwNzZlNmUzYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmVQcmVmaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKQEAg
LTExNiw2ICsxMTYsMjkgQEAKIAogI2lmIFBMQVRGT1JNKFdJTl9DQUlSTykKICNpbmNsdWRlIDx3
aW5kb3dzLmg+CisKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorCisjaWYg
VVNFKENBSVJPKQorI2luY2x1ZGUgPGNhaXJvLmg+CisjZW5kaWYKKworI2lmIFVTRShIQVJGQlVa
WikKKyNpbmNsdWRlIDxoYi5oPgorI2VuZGlmCisKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDxn
bGliLW9iamVjdC5oPgorI2VuZGlmCisKKyNpZiBVU0UoU09VUCkKKyNpbmNsdWRlIDxsaWJzb3Vw
L3NvdXAuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdTVFJFQU1FUikKKyNpbmNsdWRlIDxnc3QvZ3N0
Lmg+CisjZW5kaWYKKwogI2Vsc2UKIAogI2lmIE9TKFdJTkRPV1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaAppbmRleCA3NWJh
MjQwN2VlNDE1ODVhYjliYWEzMjQ3YzI4ZDE0NDdlZWMyNDEyLi5hMDZhYzQxZTRmNGUzOGFiMzcz
OGI3MmNjMmZmZjQ1MWZhY2E3NWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgKQEAgLTg4LDYgKzg4LDI4IEBACiAKICNp
ZiBQTEFURk9STShXSU5fQ0FJUk8pCiAjaW5jbHVkZSA8d2luZG93cy5oPgorI2VsaWYgUExBVEZP
Uk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisKKyNpZiBVU0UoQ0FJUk8pCisjaW5jbHVkZSA8Y2Fp
cm8vY2Fpcm8uaD4KKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8Z2xpYi1vYmpl
Y3QuaD4KKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+
CisjZW5kaWYKKworI2lmIFVTRShMSUJFUE9YWSkKKyNpbmNsdWRlIDxlcG94eS5oPgorI2VuZGlm
CisKKyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNlbmRpZgorCiAj
ZWxzZQogCiAjaWYgT1MoV0lORE9XUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGNhYjRiZTBjZTIw
MWYxNjBiMDIyMmZhMTI3MjcwMTA1MGUwMzJiMTIuLjllNmRmZjUxNTgxNGZlZjI0ZjY3YTE0MGQx
OWMwYzcxMjNmNzg3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMzg3LDExICszODcsNyBAQCBl
bmRpZiAoKQogCiBtYWNybyhBRERfV0VCS0lUX1BSRUZJWF9IRUFERVIgX3RhcmdldCkKICAgICBp
ZiAoV2ViS2l0X1VTRV9QUkVGSVhfSEVBREVSKQotICAgICAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5
KE9MRF9DT01QSUxFX0ZMQUdTICR7X3RhcmdldH0gQ09NUElMRV9GTEFHUykKLSAgICAgICAgaWYg
KCR7T0xEX0NPTVBJTEVfRkxBR1N9IFNUUkVRVUFMICJPTERfQ09NUElMRV9GTEFHUy1OT1RGT1VO
RCIpCi0gICAgICAgICAgICBzZXQoT0xEX0NPTVBJTEVfRkxBR1MgIiIpCi0gICAgICAgIGVuZGlm
ICgpCi0gICAgICAgIHNldF90YXJnZXRfcHJvcGVydGllcygke190YXJnZXR9IFBST1BFUlRJRVMg
Q09NUElMRV9GTEFHUyAiJHtPTERfQ09NUElMRV9GTEFHU30gLWluY2x1ZGUgJHtXRUJLSVRfRElS
fS9XZWJLaXQyUHJlZml4LmgiKQorICAgICAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURF
Uigke190YXJnZXR9ICJXZWJLaXQyUHJlZml4LmgiICJXZWJLaXQyUHJlZml4LmNwcCIpCiAgICAg
ZW5kaWYgKCkKIGVuZG1hY3JvKCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQy
UHJlZml4LmggYi9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaAppbmRleCA0MDZhYTgxMThm
YTY2ZGFkZmMzNWI4ZWJlNGJmMjQwOTNhY2Y2MWFmLi42YjI5Yjk5ODJlMzIzNWM4MTYyN2I0ZDc5
ZjEwNjRlNDEzOGI3MjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXgu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaApAQCAtNjMsNiArNjMsMzQgQEAK
IAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXUEUpCisKKyNpZiBVU0UoQ0FJUk8pCisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KKyNl
bmRpZgorCisjaWYgVVNFKEhBUkZCVVpaKQorI2luY2x1ZGUgPGhiLmg+CisjZW5kaWYKKworI2lm
IFVTRShHTElCKQorI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjZW5kaWYKKworI2lmIFVTRShT
T1VQKQorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2VuZGlmCisKKyNpZiBVU0UoR1NUUkVB
TUVSKQorI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RLKQor
I2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNlbmRpZgorCisjZW5kaWYgLy8gUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCisKIC8qIFdoZW4gQysrIGV4Y2VwdGlvbnMgYXJlIGRpc2FibGVkLCB0
aGUgQysrIGxpYnJhcnkgZGVmaW5lcyB8dHJ5fCBhbmQgfGNhdGNofAogKiB0byBhbGxvdyBDKysg
Y29kZSB0aGF0IGV4cGVjdHMgZXhjZXB0aW9ucyB0byBidWlsZC4gVGhlc2UgZGVmaW5pdGlvbnMK
ICogaW50ZXJmZXJlIHdpdGggT2JqZWN0aXZlLUMrKyB1c2VzIG9mIE9iamVjdGl2ZS1DIGV4Y2Vw
dGlvbiBoYW5kbGVycywgd2hpY2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlzdHMudHh0CmluZGV4IDY1
ODk2NzY5NTJjM2Q1MGYyZmI3MDVkMjQzODNiNmMyZThmMWYyNjAuLmUxYzFkZDgyYTBmMjA1YzRj
MGFmOGQyOTk1MWNjODE4N2UwZTc2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4dApA
QCAtNDIsMTIgKzQyLDEyIEBAIFdFQktJVF9GUkFNRVdPUktfREVDTEFSRShXZWJLaXRMZWdhY3kp
CiBXRUJLSVRfSU5DTFVERV9DT05GSUdfRklMRVNfSUZfRVhJU1RTKCkKIAogaWYgKE1TVkMpCi0g
ICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktpdFByZWZpeC5oIiAid2luL1dl
YktpdFByZWZpeC5jcHAiIFdlYktpdExlZ2FjeV9TT1VSQ0VTKQogICAgIGxpc3QoQVBQRU5EIFdl
YktpdExlZ2FjeV9TT1VSQ0VTIHdpbi9XZWJLaXQucmVzb3VyY2VzL1dlYktpdC5yYykKICAgICBh
ZGRfZGVmaW5pdGlvbnMoL0RXRUJLSVRfRVhQT1JUUyAvREZSQU1FV09SS19OQU1FPVdlYktpdExl
Z2FjeSkKIGVuZGlmICgpCiAKIFdFQktJVF9GUkFNRVdPUksoV2ViS2l0TGVnYWN5KQorV0VCS0lU
X0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViS2l0TGVnYWN5ICJXZWJLaXRQcmVmaXguaCIgIndp
bi9XZWJLaXRQcmVmaXguY3BwIikKIAogaWYgKFRBUkdFVCBXZWJLaXRMZWdhY3lHVUlEKQogICAg
IGFkZF9kZXBlbmRlbmNpZXMoV2ViS2l0TGVnYWN5IFdlYktpdExlZ2FjeUdVSUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UXVhcnR6Q29yZUFk
ZGl0aW9ucy9DTWFrZUxpc3RzLnR4dAppbmRleCBiYzA5Nzk4YjhiMDJhZjI5YzM4M2I3ODdlNmYx
NzZmYTIyZWZkNzNiLi41MzA3NDI1MDNiYjdjMzEzMDE0OGRkOTJkYWQyNTg1MTNiMGQ1MjRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRp
b25zL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1
YXJ0ekNvcmVBZGRpdGlvbnMvQ01ha2VMaXN0cy50eHQKQEAgLTQxLDggKzQxLDYgQEAgZmlsZShD
T1BZICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9BUEkvV0tDQUNGSW1hZ2VJbnRlcm5hbC5o
IERFU1RJTkFUSU9OICR7REUKIGZpbGUoQ09QWSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0v
QVBJL1dLQ0FDRlZpZXcuaCBERVNUSU5BVElPTiAke0RFUklWRURfU09VUkNFU19ESVJ9L1dlYktp
dFF1YXJ0ekNvcmVBZGRpdGlvbnMpCiBmaWxlKENPUFkgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9E
SVJ9L0FQSS9XS0NBQ0ZWaWV3UHJpdmF0ZS5oIERFU1RJTkFUSU9OICR7REVSSVZFRF9TT1VSQ0VT
X0RJUn0vV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucykKIAotV0VCS0lUX0FERF9QUkVDT01QSUxF
RF9IRUFERVIoIldlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNQcmVmaXguaCIgIldlYktpdFF1YXJ0
ekNvcmVBZGRpdGlvbnNQcmVmaXguY3BwIiBXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zX1NPVVJD
RVMpCi0KIGluY2x1ZGVfZGlyZWN0b3JpZXMoCiAgICAgLgogICAgICIke0RFUklWRURfU09VUkNF
U19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzIgpAQCAtNTksMyArNTcsNCBAQCB0YXJnZXRfbGlua19s
aWJyYXJpZXMoV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucwogICAgIENvcmVHcmFwaGljcyR7REVC
VUdfU1VGRklYfQogICAgIFF1YXJ0ekNvcmUke0RFQlVHX1NVRkZJWH0KICkKK1dFQktJVF9BRERf
UFJFQ09NUElMRURfSEVBREVSKFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMgIldlYktpdFF1YXJ0
ekNvcmVBZGRpdGlvbnNQcmVmaXguaCIgIldlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNQcmVmaXgu
Y3BwIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UgYi9Tb3Vy
Y2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCmluZGV4IDIwMGNlNDgxODg5YjdlMjFlYzg2Y2M2
NWVhYTNhZTBlOWM4N2U3M2QuLjJjODZhMGMyMzEyODVhYzAwYWM5ZDVhOTAzNGJmN2IwYTFlYzJj
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKKysrIGIvU291
cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQpAQCAtOTAsMTIgKzkwLDE0IEBAIG1hY3JvKFdF
QktJVF9BRERfU09VUkNFX0RFUEVOREVOQ0lFUyBfc291cmNlIF9kZXBzKQogICAgIHVuc2V0KF90
bXApCiBlbmRtYWNybygpCiAKLW1hY3JvKFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSIF9o
ZWFkZXIgX2NwcCBfc291cmNlKQotICAgIGlmIChNU1ZDKQorbWFjcm8oV0VCS0lUX0FERF9QUkVD
T01QSUxFRF9IRUFERVIgX3RhcmdldCBfaGVhZGVyIF9jcHApCisgICAgaWYgKENNQUtFX1ZFUlNJ
T04gVkVSU0lPTl9HUkVBVEVSX0VRVUFMIDMuMTcpCisgICAgICAgIHRhcmdldF9wcmVjb21waWxl
X2hlYWRlcnMoJHtfdGFyZ2V0fSBQUklWQVRFICR7X2hlYWRlcn0pCisgICAgZWxzZWlmIChNU1ZD
KQogICAgICAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KFByZWNvbXBpbGVkQmFzZW5hbWUgJHtf
Y3BwfSBOQU1FX1dFKQotICAgICAgICBmaWxlKE1BS0VfRElSRUNUT1JZICIke0NNQUtFX0NVUlJF
TlRfQklOQVJZX0RJUn0vJHtfc291cmNlfSIpCi0gICAgICAgIHNldChQcmVjb21waWxlZEJpbmFy
eSAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7X3NvdXJjZX0vJHtQcmVjb21waWxlZEJh
c2VuYW1lfS5wY2giKQotICAgICAgICBzZXQoX3NvdXJjZXMgJHske19zb3VyY2V9fSkKKyAgICAg
ICAgZmlsZShNQUtFX0RJUkVDVE9SWSAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7X3Rh
cmdldH0iKQorICAgICAgICBzZXQoUHJlY29tcGlsZWRCaW5hcnkgIiR7Q01BS0VfQ1VSUkVOVF9C
SU5BUllfRElSfS8ke190YXJnZXR9LyR7UHJlY29tcGlsZWRCYXNlbmFtZX0ucGNoIikKKyAgICAg
ICAgc2V0KF9zb3VyY2VzICR7JHtfdGFyZ2V0fV9TT1VSQ0VTfSkKIAogICAgICAgICAjIGNsYW5n
LWNsIHJlcXVpcmVzIC9GSSB3aXRoIC9ZYwogICAgICAgICBpZiAoQ09NUElMRVJfSVNfQ0xBTkdf
Q0wpCkBAIC0xMTQsOSArMTE2LDggQEAgbWFjcm8oV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFE
RVIgX2hlYWRlciBfY3BwIF9zb3VyY2UpCiAgICAgICAgICAgICBXRUJLSVRfQUREX1NPVVJDRV9E
RVBFTkRFTkNJRVMoJHtfc3JjfSAke1ByZWNvbXBpbGVkQmluYXJ5fSkKICAgICAgICAgZW5kZm9y
ZWFjaCAoKQogCi0gICAgICAgIGxpc3QoQVBQRU5EICR7X3NvdXJjZX0gJHtfY3BwfSkKKyAgICAg
ICAgbGlzdChBUFBFTkQgJHtfdGFyZ2V0fV9TT1VSQ0VTICR7X2NwcH0pCiAgICAgZW5kaWYgKCkK
LSAgICAjRklYTUU6IEFkZCBzdXBwb3J0IGZvciBYY29kZS4KIGVuZG1hY3JvKCkKIAogbWFjcm8o
V0VCS0lUX0ZSQU1FV09SS19ERUNMQVJFIF90YXJnZXQpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWI5YTk1ZDYyNjVmMDAzNmJlN2VjZjBhNjFm
ODYyZjBkOTcxMDY2Yy4uYzA2YzY2ZWU4NWM3OGM4NGQ1ZDYzMjY4YjAyOWYyNDhjYWIwNzA2MCAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIxLTEwLTE4ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGln
YWxpYS5jb20+CisKKyAgICAgICAgW0NNYWtlXSBFbmFibGUgcHJlLWNvbXBpbGVkIGhlYWRlcnMg
KFBDSCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
OTQzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdp
cAorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1BsYXRmb3JtV2luLmNtYWtlOgorCiAyMDIxLTEwLTE3ICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHRlc3RzIGZvciBXVEY6Ok9TT2Jq
ZWN0UHRyL2Fkb3B0T1NPYmplY3QgaW4gQ29jb2Egd2l0aCBhbmQgd2l0aG91dCBBUkMKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtlIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggZmQwNjUyYjQzZjVjMGI5ZTIxOWMz
ZmQ3NWE5MzNmMTAwNTkwNjgwYS4uMzMwOWE4NjYzNDlmYmY3NzBmZjYxYjRmMGJiYWM0OTE5NGY2
M2YyNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2UK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTcyLDExICs3
MiwxMSBAQCBlbHNlICgpCiAgICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKLVdFQktJVF9BRERfUFJF
Q09NUElMRURfSEVBREVSKCJEdW1wUmVuZGVyVHJlZVByZWZpeC5oIiAid2luL0R1bXBSZW5kZXJU
cmVlUHJlZml4LmNwcCIgRHVtcFJlbmRlclRyZWVfU09VUkNFUykKIHNldChDTUFLRV9TSEFSRURf
TElOS0VSX0ZMQUdTICIke0NNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1N9ICR7TVNWQ19SVU5USU1F
X0xJTktFUl9GTEFHU30iKQogCiBXRUJLSVRfV1JBUF9FWEVDVVRBQkxFKER1bXBSZW5kZXJUcmVl
CiAgICAgU09VUkNFUyAke1RPT0xTX0RJUn0vd2luL0RMTExhdW5jaGVyL0RMTExhdW5jaGVyTWFp
bi5jcHAKICAgICBMSUJSQVJJRVMgc2hsd2FwaQogKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9I
RUFERVIoRHVtcFJlbmRlclRyZWUgIkR1bXBSZW5kZXJUcmVlUHJlZml4LmgiICJ3aW4vRHVtcFJl
bmRlclRyZWVQcmVmaXguY3BwIikKIHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKER1bXBSZW5k
ZXJUcmVlIFBSSVZBVEUgJHt3cmFwcGVyX0RFRklOSVRJT05TfSkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1GVFcuY21ha2UgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1BsYXRmb3JtRlRXLmNtYWtlCmluZGV4IDZmMWM5NjczYjNiZmYzM2NiODQxN2ZhY2E1Yzcz
ZjU2Y2ZhZDhkNjcuLmFmNmQ0YTYzYzZkYzY4NjQ3ZTc0YTA5ODEyNDY0NjNiYzBlNzJkNDAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1GVFcuY21ha2UKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZQpAQCAtMjksMTIgKzI5LDEx
IEBAIGxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfTElCUkFSSUVTCiAgICAgT2xlYWNjCiAp
CiAKLVdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXRUZXN0UnVubmVyUHJlZml4
LmgiICJ3aW4vV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5jcHAiIFdlYktpdFRlc3RSdW5uZXJfU09V
UkNFUykKLQogc2V0KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hBUkVEX0xJ
TktFUl9GTEFHU30gJHtNU1ZDX1JVTlRJTUVfTElOS0VSX0ZMQUdTfSIpCiAKIFdFQktJVF9XUkFQ
X0VYRUNVVEFCTEUoV2ViS2l0VGVzdFJ1bm5lcgogICAgIFNPVVJDRVMgJHtUT09MU19ESVJ9L3dp
bi9ETExMYXVuY2hlci9ETExMYXVuY2hlck1haW4uY3BwCiAgICAgTElCUkFSSUVTIHNobHdhcGkK
ICkKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKFdlYktpdFRlc3RSdW5uZXIgIldlYktp
dFRlc3RSdW5uZXJQcmVmaXguaCIgIndpbi9XZWJLaXRUZXN0UnVubmVyUHJlZml4LmNwcCIpCiB0
YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhXZWJLaXRUZXN0UnVubmVyIFBSSVZBVEUgJHt3cmFw
cGVyX0RFRklOSVRJT05TfSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxh
dGZvcm1XaW4uY21ha2UgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2luLmNtYWtl
CmluZGV4IGNhNDk3OTJlOWRkMWRiZDRlZDRjYTIyNjk0YzVjY2I4MzY4YThkZWEuLmI5YjAxZWFm
MDBjZGRmZTliMWYyZWIyZDJjOGU2YWIyMGMyMjk5YWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtMzQsMTIgKzM0LDExIEBAIGxpc3QoQVBQRU5EIFdlYktp
dFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9MSUJSQVJJRVMKICAgICAkPFRBUkdFVF9PQkpFQ1RT
OldlYkNvcmVUZXN0U3VwcG9ydD4KICkKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIo
IldlYktpdFRlc3RSdW5uZXJQcmVmaXguaCIgIndpbi9XZWJLaXRUZXN0UnVubmVyUHJlZml4LmNw
cCIgV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTKQotCiBzZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9G
TEFHUyAiJHtDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTfSAke01TVkNfUlVOVElNRV9MSU5LRVJf
RkxBR1N9IikKIAogV0VCS0lUX1dSQVBfRVhFQ1VUQUJMRShXZWJLaXRUZXN0UnVubmVyCiAgICAg
U09VUkNFUyAke1RPT0xTX0RJUn0vd2luL0RMTExhdW5jaGVyL0RMTExhdW5jaGVyTWFpbi5jcHAK
ICAgICBMSUJSQVJJRVMgc2hsd2FwaQogKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIo
V2ViS2l0VGVzdFJ1bm5lciAiV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oIiAid2luL1dlYktpdFRl
c3RSdW5uZXJQcmVmaXguY3BwIikKIHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKFdlYktpdFRl
c3RSdW5uZXIgUFJJVkFURSAke3dyYXBwZXJfREVGSU5JVElPTlN9KQpkaWZmIC0tZ2l0IGEvQ2hh
bmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDdhMDFlMjE2NDQ0YWU1YWE0MWQ4NWZkZmY5NzZjOWY4
MWZmZGM3YjIuLmEzNTZhNWRhNGE4ZTNlODllM2FjZTdlZWU3Y2NlYzM2MzE1MTc0MTQgMTAwNjQ0
Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0x
MC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAg
ICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aXAKKworICAgICAgICAqIFNv
dXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2U6CisKIDIwMjEtMTAtMTggIE1pZ3VlbCBHb21l
eiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgbXkgZ2l0aHViIHVzZXJuYW1l
IHRvIGNvbnRyaWJ1dG9ycy5qc29uCg==
</data>
<flag name="commit-queue"
          id="465901"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441585</attachid>
            <date>2021-10-18 04:44:17 -0700</date>
            <delta_ts>2021-10-18 05:38:18 -0700</delta_ts>
            <desc>WIP Patch v3</desc>
            <filename>bug-139438-20211018134416.patch</filename>
            <type>text/plain</type>
            <size>17315</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZWYwZTQ0YjcyYTFhOGNjMTkwZTE4ZWRmMTg2NWZlOTFkY2M5YzYzLi44ZWEzM2I5N2ZhMGQzYzFj
ZDY1MjVhNzNlZTc4MDdiYTUwZTQ5ZTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJz
IChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3
aXAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDIxLTEwLTE4ICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUHV0QnlWYWwncyBjaGls
ZDUgc2hvdWxkIGJlIEtub3duSW50MzJVc2UgLyBJbnQ1MlJlcFVzZSBpbiBGVEwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA5ZWQ4ZmQ3YmZmYWVmODNkMzRmMzUwZjU0OThmOWVlMDM2NmFkM2U1Li5mYjdhYmM2OTkx
ODk0OWJiMjY0ZGI3NGM5NGU0NTI3OTMwOGMxODZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNv
bT4KKworICAgICAgICBbQ01ha2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBXZWJDb3JlUHJlZml4Lmg6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJDb3Jl
VGVzdFN1cHBvcnRQcmVmaXguaDoKKwogMjAyMS0xMC0xNyAgRGVhbiBKYWNrc29uICA8ZGlub0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYlhSXSBTdHVicyBmb3IgV2ViWFIgSGFuZCBJbnB1dCBN
b2R1bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggMTMxZTNhMDkwMzUzMTcwMTdlNDZkODRiNjFkOGVhNGYxZTJmMmZm
Ni4uMjJiNzc3ZGI5OTgyMjQyZmM3ZGJjOGIyYjEzNWJkZjFiZWJmOGZmYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJl
ekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFk
ZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICB3aXAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYktpdDJQcmVm
aXguaDoKKwogMjAyMS0xMC0xOCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFVzZS1hZnRlci1tb3ZlIG9mIG1fc29ja2V0cyBpbiBOZXR3b3JrUlRDUHJvdmlk
ZXI6OmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggN2JlNDk4YzhhMTViNGEyMGI4NDBm
ZjcxYTVkYTkxYjc1ZTlmZWQwYy4uMDVmNGViZjkzNDhmNGFiMjhkOGM5OWJiY2IxMzliYWZiOTAy
MTQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMC0xOCAg
QWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtD
TWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aXAKKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorCiAyMDIxLTEwLTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHVwIHByZXZpb3VzIGNvbW1pdC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZwppbmRleCA0ODJmN2IxNzNkM2U4MmUyZGZmYzc5NzcyOWNjNmNlOWZkZjI3
YWUzLi5lMjdiMGVkZDM3ODg4YjkwMDczZjFiZWY3NThhYzViYmIwYTZlNWViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2VdIEVu
YWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAgICAgICAgKiBXZWJLaXRRdWFydHpDb3Jl
QWRkaXRpb25zL0NNYWtlTGlzdHMudHh0OgorCiAyMDIxLTEwLTExICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRE9NVGltZVN0YW1wIGlzIG5vdyBFcG9jaFRpbWVT
dGFtcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ3MGJhNTJkNjFmZGYw
OTk1Y2IxYTIyYjBkZmFmZDhlMmUwYmQzZGMuLjY5ZDQ3MWVjZjMzZmMzZDQwN2Y3YzkwMmUzMTAw
Mjg1NTNhZWNhZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE1MDIs
NiArMTUwMiw3IEBAIGVuZGlmICgpCiBXRUJLSVRfQ09NUFVURV9TT1VSQ0VTKEphdmFTY3JpcHRD
b3JlKQogV0VCS0lUX0ZSQU1FV09SSyhKYXZhU2NyaXB0Q29yZSkKIFdFQktJVF9GUkFNRVdPUktf
VEFSR0VUKEphdmFTY3JpcHRDb3JlKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoSmF2
YVNjcmlwdENvcmUgIkphdmFTY3JpcHRDb3JlUHJlZml4LmgiICJKYXZhU2NyaXB0Q29yZVByZWZp
eC5jcHAiKQogCiBpZiAoTk9UICIke1BPUlR9IiBTVFJFUVVBTCAiTWFjIikKICAgICBpZiAoJHtK
YXZhU2NyaXB0Q29yZV9MSUJSQVJZX1RZUEV9IFNUUkVRVUFMICJTSEFSRUQiKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXguaAppbmRleCBjYjc1YTE4NDUwN2Nl
NTQ5NmZjMDg0OGU2NWYxZTcyNTg1MjAwMzIyLi44NjkwNGMzMzcxN2JjMmY1YzBmZGU1ZTQ5YjE0
MDMyYjUyZjg4ZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmVQcmVmaXguaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQ
cmVmaXguaApAQCAtMjMsNiArMjMsMTIgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorI2lmIGRl
ZmluZWQoSEFWRV9DT05GSUdfSCkgJiYgSEFWRV9DT05GSUdfSCAmJiBkZWZpbmVkKEJVSUxESU5H
X1dJVEhfQ01BS0UpCisjaW5jbHVkZSAiY21ha2Vjb25maWcuaCIKKyNlbmRpZgorCisjaW5jbHVk
ZSA8d3RmL1BsYXRmb3JtLmg+CisKICNpZmRlZiBfX2NwbHVzcGx1cwogI2RlZmluZSBOVUxMIF9f
bnVsbAogI2Vsc2UKQEAgLTM2LDEzICs0MiwxNyBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5j
bHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3RyaW5ncy5o
PgorCiAjaW5jbHVkZSA8dGltZS5oPgotI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgogI2luY2x1ZGUg
PHN5cy90aW1lLmg+CiAjaW5jbHVkZSA8c3lzL3RpbWViLmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVz
Lmg+CiAKKyNpZiAhT1MoV0lORE9XUykKKyNpbmNsdWRlIDxzdHJpbmdzLmg+CisjaW5jbHVkZSA8
c3lzL3BhcmFtLmg+CisjZW5kaWYKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiAKICNpbmNsdWRlIDxs
aXN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmMTdlYTM3ZWM3YmFmNDNlODJhNjNlMDgxYjRj
ZjAzY2U5YzY0NDU1Li4wMWJkNWViZjUyMmMxZjk1MWI4OWI1ZTA4NjIyMTU1NGI3ZmEyNzQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjI0NSwxMCArMjI0NSw2IEBAIGxpc3QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUwogCiBXRUJLSVRfQ09NUFVURV9TT1VSQ0VTKFdlYkNvcmUpCiAKLWlmIChN
U1ZDKQotICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJDb3JlUHJlZml4Lmgi
ICJXZWJDb3JlUHJlZml4LmNwcCIgV2ViQ29yZV9TT1VSQ0VTKQotZW5kaWYgKCkKLQogV0VCS0lU
X0NPUFlfRklMRVMoV2ViQ29yZV9Db3B5UHJpdmF0ZUhlYWRlcnMKICAgICBERVNUSU5BVElPTiAk
e1dlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSU19ESVJ9L1dlYkNvcmUKICAgICBGSUxF
UyAke1dlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSU30KQEAgLTIyNjUsNiArMjI2MSw3
IEBAIGVuZGlmICgpCiAKIFdFQktJVF9GUkFNRVdPUksoV2ViQ29yZSkKIFdFQktJVF9GUkFNRVdP
UktfVEFSR0VUKFdlYkNvcmUpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihXZWJDb3Jl
ICJXZWJDb3JlUHJlZml4LmgiICJXZWJDb3JlUHJlZml4LmNwcCIpCiAKIGlmIChBUFBMRSkKICAg
ICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoV2ViQ29yZSBQUk9QRVJUSUVTIExJTktfRkxBR1MgIi1z
dWJfbGlicmFyeSBsaWJvYmpjIC11bWJyZWxsYSBXZWJLaXQgLWFsbG93YWJsZV9jbGllbnQgV2Vi
Q29yZVRlc3RTdXBwb3J0IC1hbGxvd2FibGVfY2xpZW50IFdlYktpdDIgLWFsbG93YWJsZV9jbGll
bnQgV2ViS2l0TGVnYWN5IikKQEAgLTIyNzgsMTAgKzIyNzUsNiBAQCBpZiAoQ01BS0VfQ09NUElM
RVJfSVNfR05VQ1hYIEFORCAiJHtMT1dFUkNBU0VfQ01BS0VfSE9TVF9TWVNURU1fUFJPQ0VTU09S
fSIgTUFUQwogICAgIFdFQktJVF9BRERfVEFSR0VUX0NYWF9GTEFHUyhXZWJDb3JlIC1mbm8tdHJl
ZS1zcmEpCiBlbmRpZiAoKQogCi1pZiAoTVNWQykKLSAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVE
X0hFQURFUigiV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgiICJ0ZXN0aW5nL2pzL1dlYkNvcmVU
ZXN0U3VwcG9ydFByZWZpeC5jcHAiIFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTKQotZW5kaWYg
KCkKLQogV0VCS0lUX0NPUFlfRklMRVMoQ29weV9XZWJDb3JlVGVzdFN1cHBvcnRQcml2YXRlSGVh
ZGVycwogICAgIERFU1RJTkFUSU9OICR7V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
X0RJUn0vV2ViQ29yZVRlc3RTdXBwb3J0CiAgICAgRklMRVMgdGVzdGluZy9qcy9XZWJDb3JlVGVz
dFN1cHBvcnQuaCB0ZXN0aW5nL2NvY29hL1dlYkFyY2hpdmVEdW1wU3VwcG9ydC5oCkBAIC0yMzAz
LDYgKzIyOTYsNyBAQCBlbmRpZiAoKQogCiBXRUJLSVRfRlJBTUVXT1JLKFdlYkNvcmVUZXN0U3Vw
cG9ydCkKIFdFQktJVF9GUkFNRVdPUktfVEFSR0VUKFdlYkNvcmVUZXN0U3VwcG9ydCkKK1dFQktJ
VF9BRERfUFJFQ09NUElMRURfSEVBREVSKFdlYkNvcmVUZXN0U3VwcG9ydCAidGVzdGluZy9qcy9X
ZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaCIgInRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0
UHJlZml4LmNwcCIpCiAKIGlmICgke1dlYkNvcmVfTElCUkFSWV9UWVBFfSBNQVRDSEVTICJTSEFS
RUQiKQogICAgIHNldF90YXJnZXRfcHJvcGVydGllcyhXZWJDb3JlIFBST1BFUlRJRVMgVkVSU0lP
TiAke1BST0pFQ1RfVkVSU0lPTn0gU09WRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OX01BSk9SfSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaCBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmVQcmVmaXguaAppbmRleCBkMGM0NWY2NjJkZTc1ZDI2MGFjNmVhNjRhYjVkMDBj
NWJjODQ5OThmLi5mNmRmNDY2MWFkNmE5NTRhMzEzYmU2NDE5Y2Y0NWIxMDc2ZTZlM2JhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZVByZWZpeC5oCkBAIC0xMTYsNiArMTE2LDI5IEBACiAKICNpZiBQTEFURk9STShX
SU5fQ0FJUk8pCiAjaW5jbHVkZSA8d2luZG93cy5oPgorCisjZWxpZiBQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdQRSkKKworI2lmIFVTRShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby5oPgorI2Vu
ZGlmCisKKyNpZiBVU0UoSEFSRkJVWlopCisjaW5jbHVkZSA8aGIuaD4KKyNlbmRpZgorCisjaWYg
VVNFKEdMSUIpCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNlbmRpZgorCisjaWYgVVNFKFNP
VVApCisjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CisjZW5kaWYKKworI2lmIFVTRShHU1RSRUFN
RVIpCisjaW5jbHVkZSA8Z3N0L2dzdC5oPgorI2VuZGlmCisKICNlbHNlCiAKICNpZiBPUyhXSU5E
T1dTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1
cHBvcnRQcmVmaXguaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBw
b3J0UHJlZml4LmgKaW5kZXggNzViYTI0MDdlZTQxNTg1YWI5YmFhMzI0N2MyOGQxNDQ3ZWVjMjQx
Mi4uYTA2YWM0MWU0ZjRlMzhhYjM3MzhiNzJjYzJmZmY0NTFmYWNhNzViYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oCkBA
IC04OCw2ICs4OCwyOCBAQAogCiAjaWYgUExBVEZPUk0oV0lOX0NBSVJPKQogI2luY2x1ZGUgPHdp
bmRvd3MuaD4KKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorCisjaWYgVVNF
KENBSVJPKQorI2luY2x1ZGUgPGNhaXJvL2NhaXJvLmg+CisjZW5kaWYKKworI2lmIFVTRShHTElC
KQorI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjZW5kaWYKKworI2lmIFVTRShTT1VQKQorI2lu
Y2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2VuZGlmCisKKyNpZiBVU0UoTElCRVBPWFkpCisjaW5j
bHVkZSA8ZXBveHkuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdTVFJFQU1FUikKKyNpbmNsdWRlIDxn
c3QvZ3N0Lmg+CisjZW5kaWYKKwogI2Vsc2UKIAogI2lmIE9TKFdJTkRPV1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3Rz
LnR4dAppbmRleCBjYWI0YmUwY2UyMDFmMTYwYjAyMjJmYTEyNzI3MDEwNTBlMDMyYjEyLi45ZTZk
ZmY1MTU4MTRmZWYyNGY2N2ExNDBkMTljMGM3MTIzZjc4N2M5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQK
QEAgLTM4NywxMSArMzg3LDcgQEAgZW5kaWYgKCkKIAogbWFjcm8oQUREX1dFQktJVF9QUkVGSVhf
SEVBREVSIF90YXJnZXQpCiAgICAgaWYgKFdlYktpdF9VU0VfUFJFRklYX0hFQURFUikKLSAgICAg
ICAgZ2V0X3RhcmdldF9wcm9wZXJ0eShPTERfQ09NUElMRV9GTEFHUyAke190YXJnZXR9IENPTVBJ
TEVfRkxBR1MpCi0gICAgICAgIGlmICgke09MRF9DT01QSUxFX0ZMQUdTfSBTVFJFUVVBTCAiT0xE
X0NPTVBJTEVfRkxBR1MtTk9URk9VTkQiKQotICAgICAgICAgICAgc2V0KE9MRF9DT01QSUxFX0ZM
QUdTICIiKQotICAgICAgICBlbmRpZiAoKQotICAgICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMo
JHtfdGFyZ2V0fSBQUk9QRVJUSUVTIENPTVBJTEVfRkxBR1MgIiR7T0xEX0NPTVBJTEVfRkxBR1N9
IC1pbmNsdWRlICR7V0VCS0lUX0RJUn0vV2ViS2l0MlByZWZpeC5oIikKKyAgICAgICAgV0VCS0lU
X0FERF9QUkVDT01QSUxFRF9IRUFERVIoJHtfdGFyZ2V0fSAiV2ViS2l0MlByZWZpeC5oIiAiV2Vi
S2l0MlByZWZpeC5jcHAiKQogICAgIGVuZGlmICgpCiBlbmRtYWNybygpCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0MlByZWZpeC5oIGIvU291cmNlL1dlYktpdC9XZWJLaXQyUHJl
Zml4LmgKaW5kZXggNDA2YWE4MTE4ZmE2NmRhZGZjMzViOGViZTRiZjI0MDkzYWNmNjFhZi4uNmIy
OWI5OTgyZTMyMzVjODE2MjdiNGQ3OWYxMDY0ZTQxMzhiNzIwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQyUHJlZml4LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4
LmgKQEAgLTYzLDYgKzYzLDM0IEBACiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAorI2lm
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorCisjaWYgVVNFKENBSVJPKQorI2luY2x1
ZGUgPGNhaXJvL2NhaXJvLmg+CisjZW5kaWYKKworI2lmIFVTRShIQVJGQlVaWikKKyNpbmNsdWRl
IDxoYi5oPgorI2VuZGlmCisKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5o
PgorI2VuZGlmCisKKyNpZiBVU0UoU09VUCkKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNl
bmRpZgorCisjaWYgVVNFKEdTVFJFQU1FUikKKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjZW5kaWYK
KworI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlIDxndGsvZ3RrLmg+CisjZW5kaWYKKworI2Vu
ZGlmIC8vIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorCiAvKiBXaGVuIEMrKyBleGNl
cHRpb25zIGFyZSBkaXNhYmxlZCwgdGhlIEMrKyBsaWJyYXJ5IGRlZmluZXMgfHRyeXwgYW5kIHxj
YXRjaHwKICogdG8gYWxsb3cgQysrIGNvZGUgdGhhdCBleHBlY3RzIGV4Y2VwdGlvbnMgdG8gYnVp
bGQuIFRoZXNlIGRlZmluaXRpb25zCiAqIGludGVyZmVyZSB3aXRoIE9iamVjdGl2ZS1DKysgdXNl
cyBvZiBPYmplY3RpdmUtQyBleGNlcHRpb24gaGFuZGxlcnMsIHdoaWNoCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdExlZ2FjeS9D
TWFrZUxpc3RzLnR4dAppbmRleCA2NTg5Njc2OTUyYzNkNTBmMmZiNzA1ZDI0MzgzYjZjMmU4ZjFm
MjYwLi5lMWMxZGQ4MmEwZjIwNWM0YzBhZjhkMjk5NTFjYzgxODdlMGU3NjRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvQ01ha2VMaXN0cy50eHQKQEAgLTQyLDEyICs0MiwxMiBAQCBXRUJLSVRfRlJBTUVXT1JL
X0RFQ0xBUkUoV2ViS2l0TGVnYWN5KQogV0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJTEVTX0lGX0VY
SVNUUygpCiAKIGlmIChNU1ZDKQotICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJX
ZWJLaXRQcmVmaXguaCIgIndpbi9XZWJLaXRQcmVmaXguY3BwIiBXZWJLaXRMZWdhY3lfU09VUkNF
UykKICAgICBsaXN0KEFQUEVORCBXZWJLaXRMZWdhY3lfU09VUkNFUyB3aW4vV2ViS2l0LnJlc291
cmNlcy9XZWJLaXQucmMpCiAgICAgYWRkX2RlZmluaXRpb25zKC9EV0VCS0lUX0VYUE9SVFMgL0RG
UkFNRVdPUktfTkFNRT1XZWJLaXRMZWdhY3kpCiBlbmRpZiAoKQogCiBXRUJLSVRfRlJBTUVXT1JL
KFdlYktpdExlZ2FjeSkKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKFdlYktpdExlZ2Fj
eSAiV2ViS2l0UHJlZml4LmgiICJ3aW4vV2ViS2l0UHJlZml4LmNwcCIpCiAKIGlmIChUQVJHRVQg
V2ViS2l0TGVnYWN5R1VJRCkKICAgICBhZGRfZGVwZW5kZW5jaWVzKFdlYktpdExlZ2FjeSBXZWJL
aXRMZWdhY3lHVUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0
UXVhcnR6Q29yZUFkZGl0aW9ucy9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvQ01ha2VMaXN0cy50eHQKaW5kZXggYmMwOTc5
OGI4YjAyYWYyOWMzODNiNzg3ZTZmMTc2ZmEyMmVmZDczYi4uNTMwNzQyNTAzYmI3YzMxMzAxNDhk
ZDkyZGFkMjU4NTEzYjBkNTI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlzdHMudHh0CkBA
IC00MSw4ICs0MSw2IEBAIGZpbGUoQ09QWSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vQVBJ
L1dLQ0FDRkltYWdlSW50ZXJuYWwuaCBERVNUSU5BVElPTiAke0RFCiBmaWxlKENPUFkgJHtDTUFL
RV9DVVJSRU5UX1NPVVJDRV9ESVJ9L0FQSS9XS0NBQ0ZWaWV3LmggREVTVElOQVRJT04gJHtERVJJ
VkVEX1NPVVJDRVNfRElSfS9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zKQogZmlsZShDT1BZICR7
Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9BUEkvV0tDQUNGVmlld1ByaXZhdGUuaCBERVNUSU5B
VElPTiAke0RFUklWRURfU09VUkNFU19ESVJ9L1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMpCiAK
LVdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25z
UHJlZml4LmgiICJXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zUHJlZml4LmNwcCIgV2ViS2l0UXVh
cnR6Q29yZUFkZGl0aW9uc19TT1VSQ0VTKQotCiBpbmNsdWRlX2RpcmVjdG9yaWVzKAogICAgIC4K
ICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycyIKQEAgLTU5LDMg
KzU3LDQgQEAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMK
ICAgICBDb3JlR3JhcGhpY3Mke0RFQlVHX1NVRkZJWH0KICAgICBRdWFydHpDb3JlJHtERUJVR19T
VUZGSVh9CiApCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihXZWJLaXRRdWFydHpDb3Jl
QWRkaXRpb25zICJXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zUHJlZml4LmgiICJXZWJLaXRRdWFy
dHpDb3JlQWRkaXRpb25zUHJlZml4LmNwcCIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2Vi
S2l0TWFjcm9zLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQppbmRleCAy
MDBjZTQ4MTg4OWI3ZTIxZWM4NmNjNjVlYWEzYWUwZTljODdlNzNkLi4yYzg2YTBjMjMxMjg1YWMw
MGFjOWQ1YTkwMzRiZjdiMGExZWMyY2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0
TWFjcm9zLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKQEAgLTkw
LDEyICs5MCwxNCBAQCBtYWNybyhXRUJLSVRfQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMgX3NvdXJj
ZSBfZGVwcykKICAgICB1bnNldChfdG1wKQogZW5kbWFjcm8oKQogCi1tYWNybyhXRUJLSVRfQURE
X1BSRUNPTVBJTEVEX0hFQURFUiBfaGVhZGVyIF9jcHAgX3NvdXJjZSkKLSAgICBpZiAoTVNWQykK
K21hY3JvKFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSIF90YXJnZXQgX2hlYWRlciBfY3Bw
KQorICAgIGlmIChDTUFLRV9WRVJTSU9OIFZFUlNJT05fR1JFQVRFUl9FUVVBTCAzLjE3KQorICAg
ICAgICB0YXJnZXRfcHJlY29tcGlsZV9oZWFkZXJzKCR7X3RhcmdldH0gUFJJVkFURSAke19oZWFk
ZXJ9KQorICAgIGVsc2VpZiAoTVNWQykKICAgICAgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChQ
cmVjb21waWxlZEJhc2VuYW1lICR7X2NwcH0gTkFNRV9XRSkKLSAgICAgICAgZmlsZShNQUtFX0RJ
UkVDVE9SWSAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7X3NvdXJjZX0iKQotICAgICAg
ICBzZXQoUHJlY29tcGlsZWRCaW5hcnkgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8ke19z
b3VyY2V9LyR7UHJlY29tcGlsZWRCYXNlbmFtZX0ucGNoIikKLSAgICAgICAgc2V0KF9zb3VyY2Vz
ICR7JHtfc291cmNlfX0pCisgICAgICAgIGZpbGUoTUFLRV9ESVJFQ1RPUlkgIiR7Q01BS0VfQ1VS
UkVOVF9CSU5BUllfRElSfS8ke190YXJnZXR9IikKKyAgICAgICAgc2V0KFByZWNvbXBpbGVkQmlu
YXJ5ICIke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vJHtfdGFyZ2V0fS8ke1ByZWNvbXBpbGVk
QmFzZW5hbWV9LnBjaCIpCisgICAgICAgIHNldChfc291cmNlcyAkeyR7X3RhcmdldH1fU09VUkNF
U30pCiAKICAgICAgICAgIyBjbGFuZy1jbCByZXF1aXJlcyAvRkkgd2l0aCAvWWMKICAgICAgICAg
aWYgKENPTVBJTEVSX0lTX0NMQU5HX0NMKQpAQCAtMTE0LDkgKzExNiw4IEBAIG1hY3JvKFdFQktJ
VF9BRERfUFJFQ09NUElMRURfSEVBREVSIF9oZWFkZXIgX2NwcCBfc291cmNlKQogICAgICAgICAg
ICAgV0VCS0lUX0FERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7X3NyY30gJHtQcmVjb21waWxlZEJp
bmFyeX0pCiAgICAgICAgIGVuZGZvcmVhY2ggKCkKIAotICAgICAgICBsaXN0KEFQUEVORCAke19z
b3VyY2V9ICR7X2NwcH0pCisgICAgICAgIGxpc3QoQVBQRU5EICR7X3RhcmdldH1fU09VUkNFUyAk
e19jcHB9KQogICAgIGVuZGlmICgpCi0gICAgI0ZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgWGNvZGUu
CiBlbmRtYWNybygpCiAKIG1hY3JvKFdFQktJVF9GUkFNRVdPUktfREVDTEFSRSBfdGFyZ2V0KQpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDFiOWE5
NWQ2MjY1ZjAwMzZiZTdlY2YwYTYxZjg2MmYwZDk3MTA2NmMuLmMwNmM2NmVlODVjNzhjODRkNWQ2
MzI2OGIwMjlmMjQ4Y2FiMDcwNjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6
IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxl
IHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICB3aXAKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1BsYXRm
b3JtV2luLmNtYWtlOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1GVFcuY21h
a2U6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdpbi5jbWFrZToKKwogMjAy
MS0xMC0xNyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCB0ZXN0cyBmb3IgV1RGOjpPU09iamVjdFB0ci9hZG9wdE9TT2JqZWN0IGluIENvY29hIHdpdGgg
YW5kIHdpdGhvdXQgQVJDCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9y
bVdpbi5jbWFrZSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtlCmluZGV4
IGZkMDY1MmI0M2Y1YzBiOWUyMTljM2ZkNzVhOTMzZjEwMDU5MDY4MGEuLjMzMDlhODY2MzQ5ZmJm
NzcwZmY2MWI0ZjBiYmFjNDkxOTRmNjNmMjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRmb3Jt
V2luLmNtYWtlCkBAIC03MiwxMSArNzIsMTEgQEAgZWxzZSAoKQogICAgIGVuZGlmICgpCiBlbmRp
ZiAoKQogCi1XRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiRHVtcFJlbmRlclRyZWVQcmVm
aXguaCIgIndpbi9EdW1wUmVuZGVyVHJlZVByZWZpeC5jcHAiIER1bXBSZW5kZXJUcmVlX1NPVVJD
RVMpCiBzZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9GTEFHUyAiJHtDTUFLRV9TSEFSRURfTElOS0VS
X0ZMQUdTfSAke01TVkNfUlVOVElNRV9MSU5LRVJfRkxBR1N9IikKIAogV0VCS0lUX1dSQVBfRVhF
Q1VUQUJMRShEdW1wUmVuZGVyVHJlZQogICAgIFNPVVJDRVMgJHtUT09MU19ESVJ9L3dpbi9ETExM
YXVuY2hlci9ETExMYXVuY2hlck1haW4uY3BwCiAgICAgTElCUkFSSUVTIHNobHdhcGkKICkKK1dF
QktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKER1bXBSZW5kZXJUcmVlICJEdW1wUmVuZGVyVHJl
ZVByZWZpeC5oIiAid2luL0R1bXBSZW5kZXJUcmVlUHJlZml4LmNwcCIpCiB0YXJnZXRfY29tcGls
ZV9kZWZpbml0aW9ucyhEdW1wUmVuZGVyVHJlZSBQUklWQVRFICR7d3JhcHBlcl9ERUZJTklUSU9O
U30pCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtRlRXLmNtYWtl
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZQppbmRleCA2ZjFjOTY3
M2IzYmZmMzNjYjg0MTdmYWNhNWM3M2Y1NmNmYWQ4ZDY3Li5hZjZkNGE2M2M2ZGM2ODY0N2U3NGEw
OTgxMjQ2NDYzYmMwZTcyZDQwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Bs
YXRmb3JtRlRXLmNtYWtlCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1GVFcu
Y21ha2UKQEAgLTI5LDEyICsyOSwxMSBAQCBsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVyX0xJ
QlJBUklFUwogICAgIE9sZWFjYwogKQogCi1XRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigi
V2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oIiAid2luL1dlYktpdFRlc3RSdW5uZXJQcmVmaXguY3Bw
IiBXZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMpCi0KIHNldChDTUFLRV9TSEFSRURfTElOS0VSX0ZM
QUdTICIke0NNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1N9ICR7TVNWQ19SVU5USU1FX0xJTktFUl9G
TEFHU30iKQogCiBXRUJLSVRfV1JBUF9FWEVDVVRBQkxFKFdlYktpdFRlc3RSdW5uZXIKICAgICBT
T1VSQ0VTICR7VE9PTFNfRElSfS93aW4vRExMTGF1bmNoZXIvRExMTGF1bmNoZXJNYWluLmNwcAog
ICAgIExJQlJBUklFUyBzaGx3YXBpCiApCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihX
ZWJLaXRUZXN0UnVubmVyICJXZWJLaXRUZXN0UnVubmVyUHJlZml4LmgiICJ3aW4vV2ViS2l0VGVz
dFJ1bm5lclByZWZpeC5jcHAiKQogdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMoV2ViS2l0VGVz
dFJ1bm5lciBQUklWQVRFICR7d3JhcHBlcl9ERUZJTklUSU9OU30pCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2luLmNtYWtlIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCBjYTQ5NzkyZTlkZDFkYmQ0ZWQ0Y2EyMjY5NGM1
Y2NiODM2OGE4ZGVhLi5iOWIwMWVhZjAwY2RkZmU5YjFmMmViMmQyYzhlNmFiMjBjMjI5OWFmIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2luLmNtYWtlCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTM0LDEyICszNCwx
MSBAQCBsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfTElCUkFSSUVT
CiAgICAgJDxUQVJHRVRfT0JKRUNUUzpXZWJDb3JlVGVzdFN1cHBvcnQ+CiApCiAKLVdFQktJVF9B
RERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXRUZXN0UnVubmVyUHJlZml4LmgiICJ3aW4vV2Vi
S2l0VGVzdFJ1bm5lclByZWZpeC5jcHAiIFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUykKLQogc2V0
KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHU30g
JHtNU1ZDX1JVTlRJTUVfTElOS0VSX0ZMQUdTfSIpCiAKIFdFQktJVF9XUkFQX0VYRUNVVEFCTEUo
V2ViS2l0VGVzdFJ1bm5lcgogICAgIFNPVVJDRVMgJHtUT09MU19ESVJ9L3dpbi9ETExMYXVuY2hl
ci9ETExMYXVuY2hlck1haW4uY3BwCiAgICAgTElCUkFSSUVTIHNobHdhcGkKICkKK1dFQktJVF9B
RERfUFJFQ09NUElMRURfSEVBREVSKFdlYktpdFRlc3RSdW5uZXIgIldlYktpdFRlc3RSdW5uZXJQ
cmVmaXguaCIgIndpbi9XZWJLaXRUZXN0UnVubmVyUHJlZml4LmNwcCIpCiB0YXJnZXRfY29tcGls
ZV9kZWZpbml0aW9ucyhXZWJLaXRUZXN0UnVubmVyIFBSSVZBVEUgJHt3cmFwcGVyX0RFRklOSVRJ
T05TfSkKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA3YTAxZTIxNjQ0
NGFlNWFhNDFkODVmZGZmOTc2YzlmODFmZmRjN2IyLi5hMzU2YTVkYTRhOGUzZTg5ZTNhY2U3ZWVl
N2NjZWMzNjMxNTE3NDE0IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVy
ZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVh
ZGVycyAoUENIKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgd2lwCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlOgorCiAy
MDIxLTEwLTE4ICBNaWd1ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAg
QWRkIG15IGdpdGh1YiB1c2VybmFtZSB0byBjb250cmlidXRvcnMuanNvbgo=
</data>
<flag name="commit-queue"
          id="465907"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441593</attachid>
            <date>2021-10-18 05:32:48 -0700</date>
            <delta_ts>2021-10-18 12:09:12 -0700</delta_ts>
            <desc>WIP Patch v4</desc>
            <filename>bug-139438-20211018143246.patch</filename>
            <type>text/plain</type>
            <size>17338</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZWYwZTQ0YjcyYTFhOGNjMTkwZTE4ZWRmMTg2NWZlOTFkY2M5YzYzLi44ZWEzM2I5N2ZhMGQzYzFj
ZDY1MjVhNzNlZTc4MDdiYTUwZTQ5ZTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJz
IChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3
aXAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDIxLTEwLTE4ICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUHV0QnlWYWwncyBjaGls
ZDUgc2hvdWxkIGJlIEtub3duSW50MzJVc2UgLyBJbnQ1MlJlcFVzZSBpbiBGVEwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA5ZWQ4ZmQ3YmZmYWVmODNkMzRmMzUwZjU0OThmOWVlMDM2NmFkM2U1Li5mYjdhYmM2OTkx
ODk0OWJiMjY0ZGI3NGM5NGU0NTI3OTMwOGMxODZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNv
bT4KKworICAgICAgICBbQ01ha2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBXZWJDb3JlUHJlZml4Lmg6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJDb3Jl
VGVzdFN1cHBvcnRQcmVmaXguaDoKKwogMjAyMS0xMC0xNyAgRGVhbiBKYWNrc29uICA8ZGlub0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYlhSXSBTdHVicyBmb3IgV2ViWFIgSGFuZCBJbnB1dCBN
b2R1bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggMTMxZTNhMDkwMzUzMTcwMTdlNDZkODRiNjFkOGVhNGYxZTJmMmZm
Ni4uMjJiNzc3ZGI5OTgyMjQyZmM3ZGJjOGIyYjEzNWJkZjFiZWJmOGZmYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJl
ekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFk
ZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICB3aXAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYktpdDJQcmVm
aXguaDoKKwogMjAyMS0xMC0xOCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFVzZS1hZnRlci1tb3ZlIG9mIG1fc29ja2V0cyBpbiBOZXR3b3JrUlRDUHJvdmlk
ZXI6OmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggN2JlNDk4YzhhMTViNGEyMGI4NDBm
ZjcxYTVkYTkxYjc1ZTlmZWQwYy4uMDVmNGViZjkzNDhmNGFiMjhkOGM5OWJiY2IxMzliYWZiOTAy
MTQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMC0xOCAg
QWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtD
TWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aXAKKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorCiAyMDIxLTEwLTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHVwIHByZXZpb3VzIGNvbW1pdC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZwppbmRleCA0ODJmN2IxNzNkM2U4MmUyZGZmYzc5NzcyOWNjNmNlOWZkZjI3
YWUzLi5lMjdiMGVkZDM3ODg4YjkwMDczZjFiZWY3NThhYzViYmIwYTZlNWViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2VdIEVu
YWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAgICAgICAgKiBXZWJLaXRRdWFydHpDb3Jl
QWRkaXRpb25zL0NNYWtlTGlzdHMudHh0OgorCiAyMDIxLTEwLTExICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRE9NVGltZVN0YW1wIGlzIG5vdyBFcG9jaFRpbWVT
dGFtcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ3MGJhNTJkNjFmZGYw
OTk1Y2IxYTIyYjBkZmFmZDhlMmUwYmQzZGMuLjY5ZDQ3MWVjZjMzZmMzZDQwN2Y3YzkwMmUzMTAw
Mjg1NTNhZWNhZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE1MDIs
NiArMTUwMiw3IEBAIGVuZGlmICgpCiBXRUJLSVRfQ09NUFVURV9TT1VSQ0VTKEphdmFTY3JpcHRD
b3JlKQogV0VCS0lUX0ZSQU1FV09SSyhKYXZhU2NyaXB0Q29yZSkKIFdFQktJVF9GUkFNRVdPUktf
VEFSR0VUKEphdmFTY3JpcHRDb3JlKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoSmF2
YVNjcmlwdENvcmUgIkphdmFTY3JpcHRDb3JlUHJlZml4LmgiICJKYXZhU2NyaXB0Q29yZVByZWZp
eC5jcHAiKQogCiBpZiAoTk9UICIke1BPUlR9IiBTVFJFUVVBTCAiTWFjIikKICAgICBpZiAoJHtK
YXZhU2NyaXB0Q29yZV9MSUJSQVJZX1RZUEV9IFNUUkVRVUFMICJTSEFSRUQiKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXguaAppbmRleCBjYjc1YTE4NDUwN2Nl
NTQ5NmZjMDg0OGU2NWYxZTcyNTg1MjAwMzIyLi4xOGEwNzIyMDBmODNjYzlmNDFhNjE5YmYyMzI5
NjZjY2QzNjRmM2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmVQcmVmaXguaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQ
cmVmaXguaApAQCAtMjMsNiArMjMsMTIgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorI2lmIGRl
ZmluZWQoSEFWRV9DT05GSUdfSCkgJiYgSEFWRV9DT05GSUdfSCAmJiBkZWZpbmVkKEJVSUxESU5H
X1dJVEhfQ01BS0UpCisjaW5jbHVkZSAiY21ha2Vjb25maWcuaCIKKyNlbmRpZgorCisjaW5jbHVk
ZSA8d3RmL1BsYXRmb3JtLmg+CisKICNpZmRlZiBfX2NwbHVzcGx1cwogI2RlZmluZSBOVUxMIF9f
bnVsbAogI2Vsc2UKQEAgLTM2LDEzICs0MiwxNyBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5j
bHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3RyaW5ncy5o
PgorCiAjaW5jbHVkZSA8dGltZS5oPgotI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgotI2luY2x1ZGUg
PHN5cy90aW1lLmg+CiAjaW5jbHVkZSA8c3lzL3RpbWViLmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVz
Lmg+CiAKKyNpZiAhT1MoV0lORE9XUykKKyNpbmNsdWRlIDxzdHJpbmdzLmg+CisjaW5jbHVkZSA8
c3lzL3BhcmFtLmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNlbmRpZgorCiAjaWZkZWYgX19j
cGx1c3BsdXMKIAogI2luY2x1ZGUgPGxpc3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGYxN2Vh
MzdlYzdiYWY0M2U4MmE2M2UwODFiNGNmMDNjZTljNjQ0NTUuLjAxYmQ1ZWJmNTIyYzFmOTUxYjg5
YjVlMDg2MjIxNTU0YjdmYTI3NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMjQ1LDEwICsy
MjQ1LDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAKIFdFQktJVF9DT01QVVRFX1NP
VVJDRVMoV2ViQ29yZSkKIAotaWYgKE1TVkMpCi0gICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9I
RUFERVIoIldlYkNvcmVQcmVmaXguaCIgIldlYkNvcmVQcmVmaXguY3BwIiBXZWJDb3JlX1NPVVJD
RVMpCi1lbmRpZiAoKQotCiBXRUJLSVRfQ09QWV9GSUxFUyhXZWJDb3JlX0NvcHlQcml2YXRlSGVh
ZGVycwogICAgIERFU1RJTkFUSU9OICR7V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
X0RJUn0vV2ViQ29yZQogICAgIEZJTEVTICR7V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFE
RVJTfQpAQCAtMjI2NSw2ICsyMjYxLDcgQEAgZW5kaWYgKCkKIAogV0VCS0lUX0ZSQU1FV09SSyhX
ZWJDb3JlKQogV0VCS0lUX0ZSQU1FV09SS19UQVJHRVQoV2ViQ29yZSkKK1dFQktJVF9BRERfUFJF
Q09NUElMRURfSEVBREVSKFdlYkNvcmUgIldlYkNvcmVQcmVmaXguaCIgIldlYkNvcmVQcmVmaXgu
Y3BwIikKIAogaWYgKEFQUExFKQogICAgIHNldF90YXJnZXRfcHJvcGVydGllcyhXZWJDb3JlIFBS
T1BFUlRJRVMgTElOS19GTEFHUyAiLXN1Yl9saWJyYXJ5IGxpYm9iamMgLXVtYnJlbGxhIFdlYktp
dCAtYWxsb3dhYmxlX2NsaWVudCBXZWJDb3JlVGVzdFN1cHBvcnQgLWFsbG93YWJsZV9jbGllbnQg
V2ViS2l0MiAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRMZWdhY3kiKQpAQCAtMjI3OCwxMCArMjI3
NSw2IEBAIGlmIChDTUFLRV9DT01QSUxFUl9JU19HTlVDWFggQU5EICIke0xPV0VSQ0FTRV9DTUFL
RV9IT1NUX1NZU1RFTV9QUk9DRVNTT1J9IiBNQVRDCiAgICAgV0VCS0lUX0FERF9UQVJHRVRfQ1hY
X0ZMQUdTKFdlYkNvcmUgLWZuby10cmVlLXNyYSkKIGVuZGlmICgpCiAKLWlmIChNU1ZDKQotICAg
IFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXgu
aCIgInRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmNwcCIgV2ViQ29yZVRlc3RT
dXBwb3J0X1NPVVJDRVMpCi1lbmRpZiAoKQotCiBXRUJLSVRfQ09QWV9GSUxFUyhDb3B5X1dlYkNv
cmVUZXN0U3VwcG9ydFByaXZhdGVIZWFkZXJzCiAgICAgREVTVElOQVRJT04gJHtXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlNfRElSfS9XZWJDb3JlVGVzdFN1cHBvcnQKICAgICBGSUxF
UyB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5oIHRlc3RpbmcvY29jb2EvV2ViQXJjaGl2
ZUR1bXBTdXBwb3J0LmgKQEAgLTIzMDMsNiArMjI5Niw3IEBAIGVuZGlmICgpCiAKIFdFQktJVF9G
UkFNRVdPUksoV2ViQ29yZVRlc3RTdXBwb3J0KQogV0VCS0lUX0ZSQU1FV09SS19UQVJHRVQoV2Vi
Q29yZVRlc3RTdXBwb3J0KQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViQ29yZVRl
c3RTdXBwb3J0ICJ0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oIiAidGVzdGlu
Zy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguY3BwIikKIAogaWYgKCR7V2ViQ29yZV9MSUJS
QVJZX1RZUEV9IE1BVENIRVMgIlNIQVJFRCIpCiAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFdl
YkNvcmUgUFJPUEVSVElFUyBWRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OfSBTT1ZFUlNJT04gJHtQ
Uk9KRUNUX1ZFUlNJT05fTUFKT1J9KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZVByZWZpeC5oIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oCmluZGV4IGQwYzQ1ZjY2
MmRlNzVkMjYwYWM2ZWE2NGFiNWQwMGM1YmM4NDk5OGYuLmY2ZGY0NjYxYWQ2YTk1NGEzMTNiZTY0
MTljZjQ1YjEwNzZlNmUzYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVm
aXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKQEAgLTExNiw2ICsxMTYs
MjkgQEAKIAogI2lmIFBMQVRGT1JNKFdJTl9DQUlSTykKICNpbmNsdWRlIDx3aW5kb3dzLmg+CisK
KyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorCisjaWYgVVNFKENBSVJPKQor
I2luY2x1ZGUgPGNhaXJvLmg+CisjZW5kaWYKKworI2lmIFVTRShIQVJGQlVaWikKKyNpbmNsdWRl
IDxoYi5oPgorI2VuZGlmCisKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5o
PgorI2VuZGlmCisKKyNpZiBVU0UoU09VUCkKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNl
bmRpZgorCisjaWYgVVNFKEdTVFJFQU1FUikKKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjZW5kaWYK
KwogI2Vsc2UKIAogI2lmIE9TKFdJTkRPV1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaAppbmRleCA3NWJhMjQwN2VlNDE1ODVh
YjliYWEzMjQ3YzI4ZDE0NDdlZWMyNDEyLi5hMDZhYzQxZTRmNGUzOGFiMzczOGI3MmNjMmZmZjQ1
MWZhY2E3NWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVU
ZXN0U3VwcG9ydFByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29y
ZVRlc3RTdXBwb3J0UHJlZml4LmgKQEAgLTg4LDYgKzg4LDI4IEBACiAKICNpZiBQTEFURk9STShX
SU5fQ0FJUk8pCiAjaW5jbHVkZSA8d2luZG93cy5oPgorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShXUEUpCisKKyNpZiBVU0UoQ0FJUk8pCisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4K
KyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNlbmRp
ZgorCisjaWYgVVNFKFNPVVApCisjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CisjZW5kaWYKKwor
I2lmIFVTRShMSUJFUE9YWSkKKyNpbmNsdWRlIDxlcG94eS5oPgorI2VuZGlmCisKKyNpZiBVU0Uo
R1NUUkVBTUVSKQorI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNlbmRpZgorCiAjZWxzZQogCiAjaWYg
T1MoV0lORE9XUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGNhYjRiZTBjZTIwMWYxNjBiMDIyMmZh
MTI3MjcwMTA1MGUwMzJiMTIuLjllNmRmZjUxNTgxNGZlZjI0ZjY3YTE0MGQxOWMwYzcxMjNmNzg3
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMzg3LDExICszODcsNyBAQCBlbmRpZiAoKQogCiBt
YWNybyhBRERfV0VCS0lUX1BSRUZJWF9IRUFERVIgX3RhcmdldCkKICAgICBpZiAoV2ViS2l0X1VT
RV9QUkVGSVhfSEVBREVSKQotICAgICAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5KE9MRF9DT01QSUxF
X0ZMQUdTICR7X3RhcmdldH0gQ09NUElMRV9GTEFHUykKLSAgICAgICAgaWYgKCR7T0xEX0NPTVBJ
TEVfRkxBR1N9IFNUUkVRVUFMICJPTERfQ09NUElMRV9GTEFHUy1OT1RGT1VORCIpCi0gICAgICAg
ICAgICBzZXQoT0xEX0NPTVBJTEVfRkxBR1MgIiIpCi0gICAgICAgIGVuZGlmICgpCi0gICAgICAg
IHNldF90YXJnZXRfcHJvcGVydGllcygke190YXJnZXR9IFBST1BFUlRJRVMgQ09NUElMRV9GTEFH
UyAiJHtPTERfQ09NUElMRV9GTEFHU30gLWluY2x1ZGUgJHtXRUJLSVRfRElSfS9XZWJLaXQyUHJl
Zml4LmgiKQorICAgICAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigke190YXJnZXR9
ICJXZWJLaXQyUHJlZml4LmgiICJXZWJLaXQyUHJlZml4LmNwcCIpCiAgICAgZW5kaWYgKCkKIGVu
ZG1hY3JvKCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmggYi9T
b3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaAppbmRleCA0MDZhYTgxMThmYTY2ZGFkZmMzNWI4
ZWJlNGJmMjQwOTNhY2Y2MWFmLi42YjI5Yjk5ODJlMzIzNWM4MTYyN2I0ZDc5ZjEwNjRlNDEzOGI3
MjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaApAQCAtNjMsNiArNjMsMzQgQEAKIAogI2VuZGlmIC8v
IFBMQVRGT1JNKENPQ09BKQogCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisK
KyNpZiBVU0UoQ0FJUk8pCisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KKyNlbmRpZgorCisjaWYg
VVNFKEhBUkZCVVpaKQorI2luY2x1ZGUgPGhiLmg+CisjZW5kaWYKKworI2lmIFVTRShHTElCKQor
I2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjZW5kaWYKKworI2lmIFVTRShTT1VQKQorI2luY2x1
ZGUgPGxpYnNvdXAvc291cC5oPgorI2VuZGlmCisKKyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1
ZGUgPGdzdC9nc3QuaD4KKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgPGd0
ay9ndGsuaD4KKyNlbmRpZgorCisjZW5kaWYgLy8gUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
UEUpCisKIC8qIFdoZW4gQysrIGV4Y2VwdGlvbnMgYXJlIGRpc2FibGVkLCB0aGUgQysrIGxpYnJh
cnkgZGVmaW5lcyB8dHJ5fCBhbmQgfGNhdGNofAogKiB0byBhbGxvdyBDKysgY29kZSB0aGF0IGV4
cGVjdHMgZXhjZXB0aW9ucyB0byBidWlsZC4gVGhlc2UgZGVmaW5pdGlvbnMKICogaW50ZXJmZXJl
IHdpdGggT2JqZWN0aXZlLUMrKyB1c2VzIG9mIE9iamVjdGl2ZS1DIGV4Y2VwdGlvbiBoYW5kbGVy
cywgd2hpY2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlzdHMudHh0CmluZGV4IDY1ODk2NzY5NTJjM2Q1
MGYyZmI3MDVkMjQzODNiNmMyZThmMWYyNjAuLmUxYzFkZDgyYTBmMjA1YzRjMGFmOGQyOTk1MWNj
ODE4N2UwZTc2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4dApAQCAtNDIsMTIgKzQy
LDEyIEBAIFdFQktJVF9GUkFNRVdPUktfREVDTEFSRShXZWJLaXRMZWdhY3kpCiBXRUJLSVRfSU5D
TFVERV9DT05GSUdfRklMRVNfSUZfRVhJU1RTKCkKIAogaWYgKE1TVkMpCi0gICAgV0VCS0lUX0FE
RF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktpdFByZWZpeC5oIiAid2luL1dlYktpdFByZWZpeC5j
cHAiIFdlYktpdExlZ2FjeV9TT1VSQ0VTKQogICAgIGxpc3QoQVBQRU5EIFdlYktpdExlZ2FjeV9T
T1VSQ0VTIHdpbi9XZWJLaXQucmVzb3VyY2VzL1dlYktpdC5yYykKICAgICBhZGRfZGVmaW5pdGlv
bnMoL0RXRUJLSVRfRVhQT1JUUyAvREZSQU1FV09SS19OQU1FPVdlYktpdExlZ2FjeSkKIGVuZGlm
ICgpCiAKIFdFQktJVF9GUkFNRVdPUksoV2ViS2l0TGVnYWN5KQorV0VCS0lUX0FERF9QUkVDT01Q
SUxFRF9IRUFERVIoV2ViS2l0TGVnYWN5ICJXZWJLaXRQcmVmaXguaCIgIndpbi9XZWJLaXRQcmVm
aXguY3BwIikKIAogaWYgKFRBUkdFVCBXZWJLaXRMZWdhY3lHVUlEKQogICAgIGFkZF9kZXBlbmRl
bmNpZXMoV2ViS2l0TGVnYWN5IFdlYktpdExlZ2FjeUdVSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9DTWFr
ZUxpc3RzLnR4dAppbmRleCBiYzA5Nzk4YjhiMDJhZjI5YzM4M2I3ODdlNmYxNzZmYTIyZWZkNzNi
Li41MzA3NDI1MDNiYjdjMzEzMDE0OGRkOTJkYWQyNTg1MTNiMGQ1MjRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRp
dGlvbnMvQ01ha2VMaXN0cy50eHQKQEAgLTQxLDggKzQxLDYgQEAgZmlsZShDT1BZICR7Q01BS0Vf
Q1VSUkVOVF9TT1VSQ0VfRElSfS9BUEkvV0tDQUNGSW1hZ2VJbnRlcm5hbC5oIERFU1RJTkFUSU9O
ICR7REUKIGZpbGUoQ09QWSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vQVBJL1dLQ0FDRlZp
ZXcuaCBERVNUSU5BVElPTiAke0RFUklWRURfU09VUkNFU19ESVJ9L1dlYktpdFF1YXJ0ekNvcmVB
ZGRpdGlvbnMpCiBmaWxlKENPUFkgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L0FQSS9XS0NB
Q0ZWaWV3UHJpdmF0ZS5oIERFU1RJTkFUSU9OICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViS2l0
UXVhcnR6Q29yZUFkZGl0aW9ucykKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldl
YktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNQcmVmaXguaCIgIldlYktpdFF1YXJ0ekNvcmVBZGRpdGlv
bnNQcmVmaXguY3BwIiBXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zX1NPVVJDRVMpCi0KIGluY2x1
ZGVfZGlyZWN0b3JpZXMoCiAgICAgLgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0Zvcndh
cmRpbmdIZWFkZXJzIgpAQCAtNTksMyArNTcsNCBAQCB0YXJnZXRfbGlua19saWJyYXJpZXMoV2Vi
S2l0UXVhcnR6Q29yZUFkZGl0aW9ucwogICAgIENvcmVHcmFwaGljcyR7REVCVUdfU1VGRklYfQog
ICAgIFF1YXJ0ekNvcmUke0RFQlVHX1NVRkZJWH0KICkKK1dFQktJVF9BRERfUFJFQ09NUElMRURf
SEVBREVSKFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMgIldlYktpdFF1YXJ0ekNvcmVBZGRpdGlv
bnNQcmVmaXguaCIgIldlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNQcmVmaXguY3BwIikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2Vi
S2l0TWFjcm9zLmNtYWtlCmluZGV4IDIwMGNlNDgxODg5YjdlMjFlYzg2Y2M2NWVhYTNhZTBlOWM4
N2U3M2QuLjJjODZhMGMyMzEyODVhYzAwYWM5ZDVhOTAzNGJmN2IwYTFlYzJjZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dl
YktpdE1hY3Jvcy5jbWFrZQpAQCAtOTAsMTIgKzkwLDE0IEBAIG1hY3JvKFdFQktJVF9BRERfU09V
UkNFX0RFUEVOREVOQ0lFUyBfc291cmNlIF9kZXBzKQogICAgIHVuc2V0KF90bXApCiBlbmRtYWNy
bygpCiAKLW1hY3JvKFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSIF9oZWFkZXIgX2NwcCBf
c291cmNlKQotICAgIGlmIChNU1ZDKQorbWFjcm8oV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFE
RVIgX3RhcmdldCBfaGVhZGVyIF9jcHApCisgICAgaWYgKENNQUtFX1ZFUlNJT04gVkVSU0lPTl9H
UkVBVEVSX0VRVUFMIDMuMTcpCisgICAgICAgIHRhcmdldF9wcmVjb21waWxlX2hlYWRlcnMoJHtf
dGFyZ2V0fSBQUklWQVRFICR7X2hlYWRlcn0pCisgICAgZWxzZWlmIChNU1ZDKQogICAgICAgICBn
ZXRfZmlsZW5hbWVfY29tcG9uZW50KFByZWNvbXBpbGVkQmFzZW5hbWUgJHtfY3BwfSBOQU1FX1dF
KQotICAgICAgICBmaWxlKE1BS0VfRElSRUNUT1JZICIke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJ
Un0vJHtfc291cmNlfSIpCi0gICAgICAgIHNldChQcmVjb21waWxlZEJpbmFyeSAiJHtDTUFLRV9D
VVJSRU5UX0JJTkFSWV9ESVJ9LyR7X3NvdXJjZX0vJHtQcmVjb21waWxlZEJhc2VuYW1lfS5wY2gi
KQotICAgICAgICBzZXQoX3NvdXJjZXMgJHske19zb3VyY2V9fSkKKyAgICAgICAgZmlsZShNQUtF
X0RJUkVDVE9SWSAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7X3RhcmdldH0iKQorICAg
ICAgICBzZXQoUHJlY29tcGlsZWRCaW5hcnkgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8k
e190YXJnZXR9LyR7UHJlY29tcGlsZWRCYXNlbmFtZX0ucGNoIikKKyAgICAgICAgc2V0KF9zb3Vy
Y2VzICR7JHtfdGFyZ2V0fV9TT1VSQ0VTfSkKIAogICAgICAgICAjIGNsYW5nLWNsIHJlcXVpcmVz
IC9GSSB3aXRoIC9ZYwogICAgICAgICBpZiAoQ09NUElMRVJfSVNfQ0xBTkdfQ0wpCkBAIC0xMTQs
OSArMTE2LDggQEAgbWFjcm8oV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIgX2hlYWRlciBf
Y3BwIF9zb3VyY2UpCiAgICAgICAgICAgICBXRUJLSVRfQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMo
JHtfc3JjfSAke1ByZWNvbXBpbGVkQmluYXJ5fSkKICAgICAgICAgZW5kZm9yZWFjaCAoKQogCi0g
ICAgICAgIGxpc3QoQVBQRU5EICR7X3NvdXJjZX0gJHtfY3BwfSkKKyAgICAgICAgbGlzdChBUFBF
TkQgJHtfdGFyZ2V0fV9TT1VSQ0VTICR7X2NwcH0pCiAgICAgZW5kaWYgKCkKLSAgICAjRklYTUU6
IEFkZCBzdXBwb3J0IGZvciBYY29kZS4KIGVuZG1hY3JvKCkKIAogbWFjcm8oV0VCS0lUX0ZSQU1F
V09SS19ERUNMQVJFIF90YXJnZXQpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggMWI5YTk1ZDYyNjVmMDAzNmJlN2VjZjBhNjFmODYyZjBkOTcxMDY2
Yy4uYzA2YzY2ZWU4NWM3OGM4NGQ1ZDYzMjY4YjAyOWYyNDhjYWIwNzA2MCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDIxLTEwLTE4ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0NNYWtlXSBFbmFibGUgcHJlLWNvbXBpbGVkIGhlYWRlcnMgKFBDSCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQzOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdpcAorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Bs
YXRmb3JtV2luLmNtYWtlOgorCiAyMDIxLTEwLTE3ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIHRlc3RzIGZvciBXVEY6Ok9TT2JqZWN0UHRyL2Fkb3B0
T1NPYmplY3QgaW4gQ29jb2Egd2l0aCBhbmQgd2l0aG91dCBBUkMKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtlIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
UGxhdGZvcm1XaW4uY21ha2UKaW5kZXggZmQwNjUyYjQzZjVjMGI5ZTIxOWMzZmQ3NWE5MzNmMTAw
NTkwNjgwYS4uMzMwOWE4NjYzNDlmYmY3NzBmZjYxYjRmMGJiYWM0OTE5NGY2M2YyNCAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTcyLDExICs3MiwxMSBAQCBlbHNl
ICgpCiAgICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKLVdFQktJVF9BRERfUFJFQ09NUElMRURfSEVB
REVSKCJEdW1wUmVuZGVyVHJlZVByZWZpeC5oIiAid2luL0R1bXBSZW5kZXJUcmVlUHJlZml4LmNw
cCIgRHVtcFJlbmRlclRyZWVfU09VUkNFUykKIHNldChDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdT
ICIke0NNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1N9ICR7TVNWQ19SVU5USU1FX0xJTktFUl9GTEFH
U30iKQogCiBXRUJLSVRfV1JBUF9FWEVDVVRBQkxFKER1bXBSZW5kZXJUcmVlCiAgICAgU09VUkNF
UyAke1RPT0xTX0RJUn0vd2luL0RMTExhdW5jaGVyL0RMTExhdW5jaGVyTWFpbi5jcHAKICAgICBM
SUJSQVJJRVMgc2hsd2FwaQogKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoRHVtcFJl
bmRlclRyZWUgIkR1bXBSZW5kZXJUcmVlUHJlZml4LmgiICJ3aW4vRHVtcFJlbmRlclRyZWVQcmVm
aXguY3BwIikKIHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKER1bXBSZW5kZXJUcmVlIFBSSVZB
VEUgJHt3cmFwcGVyX0RFRklOSVRJT05TfSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvUGxhdGZvcm1GVFcuY21ha2UgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3Jt
RlRXLmNtYWtlCmluZGV4IDZmMWM5NjczYjNiZmYzM2NiODQxN2ZhY2E1YzczZjU2Y2ZhZDhkNjcu
LmFmNmQ0YTYzYzZkYzY4NjQ3ZTc0YTA5ODEyNDY0NjNiYzBlNzJkNDAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1GVFcuY21ha2UKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZQpAQCAtMjksMTIgKzI5LDExIEBAIGxpc3QoQVBQ
RU5EIFdlYktpdFRlc3RSdW5uZXJfTElCUkFSSUVTCiAgICAgT2xlYWNjCiApCiAKLVdFQktJVF9B
RERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXRUZXN0UnVubmVyUHJlZml4LmgiICJ3aW4vV2Vi
S2l0VGVzdFJ1bm5lclByZWZpeC5jcHAiIFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUykKLQogc2V0
KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHU30g
JHtNU1ZDX1JVTlRJTUVfTElOS0VSX0ZMQUdTfSIpCiAKIFdFQktJVF9XUkFQX0VYRUNVVEFCTEUo
V2ViS2l0VGVzdFJ1bm5lcgogICAgIFNPVVJDRVMgJHtUT09MU19ESVJ9L3dpbi9ETExMYXVuY2hl
ci9ETExMYXVuY2hlck1haW4uY3BwCiAgICAgTElCUkFSSUVTIHNobHdhcGkKICkKK1dFQktJVF9B
RERfUFJFQ09NUElMRURfSEVBREVSKFdlYktpdFRlc3RSdW5uZXIgIldlYktpdFRlc3RSdW5uZXJQ
cmVmaXguaCIgIndpbi9XZWJLaXRUZXN0UnVubmVyUHJlZml4LmNwcCIpCiB0YXJnZXRfY29tcGls
ZV9kZWZpbml0aW9ucyhXZWJLaXRUZXN0UnVubmVyIFBSSVZBVEUgJHt3cmFwcGVyX0RFRklOSVRJ
T05TfSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4uY21h
a2UgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IGNhNDk3
OTJlOWRkMWRiZDRlZDRjYTIyNjk0YzVjY2I4MzY4YThkZWEuLmI5YjAxZWFmMDBjZGRmZTliMWYy
ZWIyZDJjOGU2YWIyMGMyMjk5YWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
UGxhdGZvcm1XaW4uY21ha2UKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdp
bi5jbWFrZQpAQCAtMzQsMTIgKzM0LDExIEBAIGxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJJ
bmplY3RlZEJ1bmRsZV9MSUJSQVJJRVMKICAgICAkPFRBUkdFVF9PQkpFQ1RTOldlYkNvcmVUZXN0
U3VwcG9ydD4KICkKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktpdFRlc3RS
dW5uZXJQcmVmaXguaCIgIndpbi9XZWJLaXRUZXN0UnVubmVyUHJlZml4LmNwcCIgV2ViS2l0VGVz
dFJ1bm5lcl9TT1VSQ0VTKQotCiBzZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9GTEFHUyAiJHtDTUFL
RV9TSEFSRURfTElOS0VSX0ZMQUdTfSAke01TVkNfUlVOVElNRV9MSU5LRVJfRkxBR1N9IikKIAog
V0VCS0lUX1dSQVBfRVhFQ1VUQUJMRShXZWJLaXRUZXN0UnVubmVyCiAgICAgU09VUkNFUyAke1RP
T0xTX0RJUn0vd2luL0RMTExhdW5jaGVyL0RMTExhdW5jaGVyTWFpbi5jcHAKICAgICBMSUJSQVJJ
RVMgc2hsd2FwaQogKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViS2l0VGVzdFJ1
bm5lciAiV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oIiAid2luL1dlYktpdFRlc3RSdW5uZXJQcmVm
aXguY3BwIikKIHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKFdlYktpdFRlc3RSdW5uZXIgUFJJ
VkFURSAke3dyYXBwZXJfREVGSU5JVElPTlN9KQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hh
bmdlTG9nCmluZGV4IDdhMDFlMjE2NDQ0YWU1YWE0MWQ4NWZkZmY5NzZjOWY4MWZmZGM3YjIuLmEz
NTZhNWRhNGE4ZTNlODllM2FjZTdlZWU3Y2NlYzM2MzE1MTc0MTQgMTAwNjQ0Ci0tLSBhL0NoYW5n
ZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMC0xOCAgQWRyaWFu
IFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0g
RW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aXAKKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9X
ZWJLaXRNYWNyb3MuY21ha2U6CisKIDIwMjEtMTAtMTggIE1pZ3VlbCBHb21leiAgPG1hZ29tZXpA
aWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgbXkgZ2l0aHViIHVzZXJuYW1lIHRvIGNvbnRyaWJ1
dG9ycy5qc29uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441627</attachid>
            <date>2021-10-18 12:09:20 -0700</date>
            <delta_ts>2021-10-18 12:11:17 -0700</delta_ts>
            <desc>WIP Patch v5</desc>
            <filename>bug-139438-20211018210918.patch</filename>
            <type>text/plain</type>
            <size>18154</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZWYwZTQ0YjcyYTFhOGNjMTkwZTE4ZWRmMTg2NWZlOTFkY2M5YzYzLi44ZWEzM2I5N2ZhMGQzYzFj
ZDY1MjVhNzNlZTc4MDdiYTUwZTQ5ZTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJz
IChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3
aXAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDIxLTEwLTE4ICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUHV0QnlWYWwncyBjaGls
ZDUgc2hvdWxkIGJlIEtub3duSW50MzJVc2UgLyBJbnQ1MlJlcFVzZSBpbiBGVEwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA5ZWQ4ZmQ3YmZmYWVmODNkMzRmMzUwZjU0OThmOWVlMDM2NmFkM2U1Li5mYjdhYmM2OTkx
ODk0OWJiMjY0ZGI3NGM5NGU0NTI3OTMwOGMxODZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNv
bT4KKworICAgICAgICBbQ01ha2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBXZWJDb3JlUHJlZml4Lmg6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJDb3Jl
VGVzdFN1cHBvcnRQcmVmaXguaDoKKwogMjAyMS0xMC0xNyAgRGVhbiBKYWNrc29uICA8ZGlub0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYlhSXSBTdHVicyBmb3IgV2ViWFIgSGFuZCBJbnB1dCBN
b2R1bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggMTMxZTNhMDkwMzUzMTcwMTdlNDZkODRiNjFkOGVhNGYxZTJmMmZm
Ni4uMjJiNzc3ZGI5OTgyMjQyZmM3ZGJjOGIyYjEzNWJkZjFiZWJmOGZmYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJl
ekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFk
ZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICB3aXAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYktpdDJQcmVm
aXguaDoKKwogMjAyMS0xMC0xOCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFVzZS1hZnRlci1tb3ZlIG9mIG1fc29ja2V0cyBpbiBOZXR3b3JrUlRDUHJvdmlk
ZXI6OmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggN2JlNDk4YzhhMTViNGEyMGI4NDBm
ZjcxYTVkYTkxYjc1ZTlmZWQwYy4uMDVmNGViZjkzNDhmNGFiMjhkOGM5OWJiY2IxMzliYWZiOTAy
MTQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMC0xOCAg
QWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtD
TWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aXAKKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorCiAyMDIxLTEwLTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHVwIHByZXZpb3VzIGNvbW1pdC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZwppbmRleCA0ODJmN2IxNzNkM2U4MmUyZGZmYzc5NzcyOWNjNmNlOWZkZjI3
YWUzLi5lMjdiMGVkZDM3ODg4YjkwMDczZjFiZWY3NThhYzViYmIwYTZlNWViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2VdIEVu
YWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAgICAgICAgKiBXZWJLaXRRdWFydHpDb3Jl
QWRkaXRpb25zL0NNYWtlTGlzdHMudHh0OgorCiAyMDIxLTEwLTExICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRE9NVGltZVN0YW1wIGlzIG5vdyBFcG9jaFRpbWVT
dGFtcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ3MGJhNTJkNjFmZGYw
OTk1Y2IxYTIyYjBkZmFmZDhlMmUwYmQzZGMuLjE1NDYyOGZlMzRkYTg2YmIyNzEwMmI3MmQzODAz
NzYwYWY5MzI3MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE1MDIs
NiArMTUwMiw3IEBAIGVuZGlmICgpCiBXRUJLSVRfQ09NUFVURV9TT1VSQ0VTKEphdmFTY3JpcHRD
b3JlKQogV0VCS0lUX0ZSQU1FV09SSyhKYXZhU2NyaXB0Q29yZSkKIFdFQktJVF9GUkFNRVdPUktf
VEFSR0VUKEphdmFTY3JpcHRDb3JlKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoSmF2
YVNjcmlwdENvcmUgSmF2YVNjcmlwdENvcmVQcmVmaXguaCkKIAogaWYgKE5PVCAiJHtQT1JUfSIg
U1RSRVFVQUwgIk1hYyIpCiAgICAgaWYgKCR7SmF2YVNjcmlwdENvcmVfTElCUkFSWV9UWVBFfSBT
VFJFUVVBTCAiU0hBUkVEIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZVByZWZpeC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
UHJlZml4LmgKaW5kZXggY2I3NWExODQ1MDdjZTU0OTZmYzA4NDhlNjVmMWU3MjU4NTIwMDMyMi4u
MThhMDcyMjAwZjgzY2M5ZjQxYTYxOWJmMjMyOTY2Y2NkMzY0ZjNiNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmgKQEAgLTIzLDYgKzIzLDEyIEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKKyNpZiBkZWZpbmVkKEhBVkVfQ09ORklHX0gpICYmIEhBVkVf
Q09ORklHX0ggJiYgZGVmaW5lZChCVUlMRElOR19XSVRIX0NNQUtFKQorI2luY2x1ZGUgImNtYWtl
Y29uZmlnLmgiCisjZW5kaWYKKworI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgorCiAjaWZkZWYg
X19jcGx1c3BsdXMKICNkZWZpbmUgTlVMTCBfX251bGwKICNlbHNlCkBAIC0zNiwxMyArNDIsMTcg
QEAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0
cmluZy5oPgotI2luY2x1ZGUgPHN0cmluZ3MuaD4KKwogI2luY2x1ZGUgPHRpbWUuaD4KLSNpbmNs
dWRlIDxzeXMvcGFyYW0uaD4KLSNpbmNsdWRlIDxzeXMvdGltZS5oPgogI2luY2x1ZGUgPHN5cy90
aW1lYi5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogCisjaWYgIU9TKFdJTkRPV1MpCisjaW5j
bHVkZSA8c3RyaW5ncy5oPgorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy90
aW1lLmg+CisjZW5kaWYKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiAKICNpbmNsdWRlIDxsaXN0Pgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmMTdlYTM3ZWM3YmFmNDNlODJhNjNlMDgxYjRjZjAzY2U5
YzY0NDU1Li4wMmMwYzQ5MWM5YzkwNTgxNzZhOTlhNzBiMGMxOTc2MTdjOWZjMTU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMjI0NSwxMCArMjI0NSw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVf
U09VUkNFUwogCiBXRUJLSVRfQ09NUFVURV9TT1VSQ0VTKFdlYkNvcmUpCiAKLWlmIChNU1ZDKQot
ICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJDb3JlUHJlZml4LmgiICJXZWJD
b3JlUHJlZml4LmNwcCIgV2ViQ29yZV9TT1VSQ0VTKQotZW5kaWYgKCkKLQogV0VCS0lUX0NPUFlf
RklMRVMoV2ViQ29yZV9Db3B5UHJpdmF0ZUhlYWRlcnMKICAgICBERVNUSU5BVElPTiAke1dlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSU19ESVJ9L1dlYkNvcmUKICAgICBGSUxFUyAke1dl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSU30KQEAgLTIyNjUsNiArMjI2MSw3IEBAIGVu
ZGlmICgpCiAKIFdFQktJVF9GUkFNRVdPUksoV2ViQ29yZSkKIFdFQktJVF9GUkFNRVdPUktfVEFS
R0VUKFdlYkNvcmUpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihXZWJDb3JlIFdlYkNv
cmVQcmVmaXguaCkKIAogaWYgKEFQUExFKQogICAgIHNldF90YXJnZXRfcHJvcGVydGllcyhXZWJD
b3JlIFBST1BFUlRJRVMgTElOS19GTEFHUyAiLXN1Yl9saWJyYXJ5IGxpYm9iamMgLXVtYnJlbGxh
IFdlYktpdCAtYWxsb3dhYmxlX2NsaWVudCBXZWJDb3JlVGVzdFN1cHBvcnQgLWFsbG93YWJsZV9j
bGllbnQgV2ViS2l0MiAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRMZWdhY3kiKQpAQCAtMjI3OCwx
MCArMjI3NSw2IEBAIGlmIChDTUFLRV9DT01QSUxFUl9JU19HTlVDWFggQU5EICIke0xPV0VSQ0FT
RV9DTUFLRV9IT1NUX1NZU1RFTV9QUk9DRVNTT1J9IiBNQVRDCiAgICAgV0VCS0lUX0FERF9UQVJH
RVRfQ1hYX0ZMQUdTKFdlYkNvcmUgLWZuby10cmVlLXNyYSkKIGVuZGlmICgpCiAKLWlmIChNU1ZD
KQotICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJDb3JlVGVzdFN1cHBvcnRQ
cmVmaXguaCIgInRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmNwcCIgV2ViQ29y
ZVRlc3RTdXBwb3J0X1NPVVJDRVMpCi1lbmRpZiAoKQotCiBXRUJLSVRfQ09QWV9GSUxFUyhDb3B5
X1dlYkNvcmVUZXN0U3VwcG9ydFByaXZhdGVIZWFkZXJzCiAgICAgREVTVElOQVRJT04gJHtXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlNfRElSfS9XZWJDb3JlVGVzdFN1cHBvcnQKICAg
ICBGSUxFUyB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5oIHRlc3RpbmcvY29jb2EvV2Vi
QXJjaGl2ZUR1bXBTdXBwb3J0LmgKQEAgLTIzMDMsNiArMjI5Niw3IEBAIGVuZGlmICgpCiAKIFdF
QktJVF9GUkFNRVdPUksoV2ViQ29yZVRlc3RTdXBwb3J0KQogV0VCS0lUX0ZSQU1FV09SS19UQVJH
RVQoV2ViQ29yZVRlc3RTdXBwb3J0KQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2Vi
Q29yZVRlc3RTdXBwb3J0IHRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgpCiAK
IGlmICgke1dlYkNvcmVfTElCUkFSWV9UWVBFfSBNQVRDSEVTICJTSEFSRUQiKQogICAgIHNldF90
YXJnZXRfcHJvcGVydGllcyhXZWJDb3JlIFBST1BFUlRJRVMgVkVSU0lPTiAke1BST0pFQ1RfVkVS
U0lPTn0gU09WRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OX01BSk9SfSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaCBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVm
aXguaAppbmRleCBkMGM0NWY2NjJkZTc1ZDI2MGFjNmVhNjRhYjVkMDBjNWJjODQ5OThmLi5mNmRm
NDY2MWFkNmE5NTRhMzEzYmU2NDE5Y2Y0NWIxMDc2ZTZlM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZp
eC5oCkBAIC0xMTYsNiArMTE2LDI5IEBACiAKICNpZiBQTEFURk9STShXSU5fQ0FJUk8pCiAjaW5j
bHVkZSA8d2luZG93cy5oPgorCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkK
KworI2lmIFVTRShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby5oPgorI2VuZGlmCisKKyNpZiBVU0Uo
SEFSRkJVWlopCisjaW5jbHVkZSA8aGIuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5j
bHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisjaW5jbHVkZSA8
bGlic291cC9zb3VwLmg+CisjZW5kaWYKKworI2lmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVkZSA8
Z3N0L2dzdC5oPgorI2VuZGlmCisKICNlbHNlCiAKICNpZiBPUyhXSU5ET1dTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgKaW5k
ZXggNzViYTI0MDdlZTQxNTg1YWI5YmFhMzI0N2MyOGQxNDQ3ZWVjMjQxMi4uYTA2YWM0MWU0ZjRl
MzhhYjM3MzhiNzJjYzJmZmY0NTFmYWNhNzViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oCkBAIC04OCw2ICs4OCwyOCBA
QAogCiAjaWYgUExBVEZPUk0oV0lOX0NBSVJPKQogI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNlbGlm
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorCisjaWYgVVNFKENBSVJPKQorI2luY2x1
ZGUgPGNhaXJvL2NhaXJvLmg+CisjZW5kaWYKKworI2lmIFVTRShHTElCKQorI2luY2x1ZGUgPGds
aWItb2JqZWN0Lmg+CisjZW5kaWYKKworI2lmIFVTRShTT1VQKQorI2luY2x1ZGUgPGxpYnNvdXAv
c291cC5oPgorI2VuZGlmCisKKyNpZiBVU0UoTElCRVBPWFkpCisjaW5jbHVkZSA8ZXBveHkuaD4K
KyNlbmRpZgorCisjaWYgVVNFKEdTVFJFQU1FUikKKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjZW5k
aWYKKwogI2Vsc2UKIAogI2lmIE9TKFdJTkRPV1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBjYWI0
YmUwY2UyMDFmMTYwYjAyMjJmYTEyNzI3MDEwNTBlMDMyYjEyLi5iMTBiZTY0Y2NkYzU1ODFiZjU4
ZjM5YTUwY2JlMmM4Nzg4YWZhNjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTM4NywxMSArMzg3
LDcgQEAgZW5kaWYgKCkKIAogbWFjcm8oQUREX1dFQktJVF9QUkVGSVhfSEVBREVSIF90YXJnZXQp
CiAgICAgaWYgKFdlYktpdF9VU0VfUFJFRklYX0hFQURFUikKLSAgICAgICAgZ2V0X3RhcmdldF9w
cm9wZXJ0eShPTERfQ09NUElMRV9GTEFHUyAke190YXJnZXR9IENPTVBJTEVfRkxBR1MpCi0gICAg
ICAgIGlmICgke09MRF9DT01QSUxFX0ZMQUdTfSBTVFJFUVVBTCAiT0xEX0NPTVBJTEVfRkxBR1Mt
Tk9URk9VTkQiKQotICAgICAgICAgICAgc2V0KE9MRF9DT01QSUxFX0ZMQUdTICIiKQotICAgICAg
ICBlbmRpZiAoKQotICAgICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtfdGFyZ2V0fSBQUk9Q
RVJUSUVTIENPTVBJTEVfRkxBR1MgIiR7T0xEX0NPTVBJTEVfRkxBR1N9IC1pbmNsdWRlICR7V0VC
S0lUX0RJUn0vV2ViS2l0MlByZWZpeC5oIikKKyAgICAgICAgV0VCS0lUX0FERF9QUkVDT01QSUxF
RF9IRUFERVIoJHtfdGFyZ2V0fSBXZWJLaXQyUHJlZml4LmgpCiAgICAgZW5kaWYgKCkKIGVuZG1h
Y3JvKCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaAppbmRleCA0MDZhYTgxMThmYTY2ZGFkZmMzNWI4ZWJl
NGJmMjQwOTNhY2Y2MWFmLi42YjI5Yjk5ODJlMzIzNWM4MTYyN2I0ZDc5ZjEwNjRlNDEzOGI3MjBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdDJQcmVmaXguaApAQCAtNjMsNiArNjMsMzQgQEAKIAogI2VuZGlmIC8vIFBM
QVRGT1JNKENPQ09BKQogCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisKKyNp
ZiBVU0UoQ0FJUk8pCisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KKyNlbmRpZgorCisjaWYgVVNF
KEhBUkZCVVpaKQorI2luY2x1ZGUgPGhiLmg+CisjZW5kaWYKKworI2lmIFVTRShHTElCKQorI2lu
Y2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjZW5kaWYKKworI2lmIFVTRShTT1VQKQorI2luY2x1ZGUg
PGxpYnNvdXAvc291cC5oPgorI2VuZGlmCisKKyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1ZGUg
PGdzdC9nc3QuaD4KKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgPGd0ay9n
dGsuaD4KKyNlbmRpZgorCisjZW5kaWYgLy8gUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
CisKIC8qIFdoZW4gQysrIGV4Y2VwdGlvbnMgYXJlIGRpc2FibGVkLCB0aGUgQysrIGxpYnJhcnkg
ZGVmaW5lcyB8dHJ5fCBhbmQgfGNhdGNofAogKiB0byBhbGxvdyBDKysgY29kZSB0aGF0IGV4cGVj
dHMgZXhjZXB0aW9ucyB0byBidWlsZC4gVGhlc2UgZGVmaW5pdGlvbnMKICogaW50ZXJmZXJlIHdp
dGggT2JqZWN0aXZlLUMrKyB1c2VzIG9mIE9iamVjdGl2ZS1DIGV4Y2VwdGlvbiBoYW5kbGVycywg
d2hpY2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlzdHMudHh0CmluZGV4IDY1ODk2NzY5NTJjM2Q1MGYy
ZmI3MDVkMjQzODNiNmMyZThmMWYyNjAuLjViYWY1YTZiNmNlNDA1ZWE5YjgyNWRkYzE0MDkyMGY4
OTg5Y2FhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4dApAQCAtNDIsMTIgKzQyLDEy
IEBAIFdFQktJVF9GUkFNRVdPUktfREVDTEFSRShXZWJLaXRMZWdhY3kpCiBXRUJLSVRfSU5DTFVE
RV9DT05GSUdfRklMRVNfSUZfRVhJU1RTKCkKIAogaWYgKE1TVkMpCi0gICAgV0VCS0lUX0FERF9Q
UkVDT01QSUxFRF9IRUFERVIoIldlYktpdFByZWZpeC5oIiAid2luL1dlYktpdFByZWZpeC5jcHAi
IFdlYktpdExlZ2FjeV9TT1VSQ0VTKQogICAgIGxpc3QoQVBQRU5EIFdlYktpdExlZ2FjeV9TT1VS
Q0VTIHdpbi9XZWJLaXQucmVzb3VyY2VzL1dlYktpdC5yYykKICAgICBhZGRfZGVmaW5pdGlvbnMo
L0RXRUJLSVRfRVhQT1JUUyAvREZSQU1FV09SS19OQU1FPVdlYktpdExlZ2FjeSkKIGVuZGlmICgp
CiAKIFdFQktJVF9GUkFNRVdPUksoV2ViS2l0TGVnYWN5KQorV0VCS0lUX0FERF9QUkVDT01QSUxF
RF9IRUFERVIoV2ViS2l0TGVnYWN5IFdlYktpdFByZWZpeC5oKQogCiBpZiAoVEFSR0VUIFdlYktp
dExlZ2FjeUdVSUQpCiAgICAgYWRkX2RlcGVuZGVuY2llcyhXZWJLaXRMZWdhY3kgV2ViS2l0TGVn
YWN5R1VJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0
ekNvcmVBZGRpdGlvbnMvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlzdHMudHh0CmluZGV4IGJjMDk3OThiOGIw
MmFmMjljMzgzYjc4N2U2ZjE3NmZhMjJlZmQ3M2IuLjdhZTdjMWMwMDczMTkwYjliMDBhYzdjMTU0
OTBhZjVmNTIwMGMyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktp
dFF1YXJ0ekNvcmVBZGRpdGlvbnMvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9DTWFrZUxpc3RzLnR4dApAQCAtNDEs
OCArNDEsNiBAQCBmaWxlKENPUFkgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L0FQSS9XS0NB
Q0ZJbWFnZUludGVybmFsLmggREVTVElOQVRJT04gJHtERQogZmlsZShDT1BZICR7Q01BS0VfQ1VS
UkVOVF9TT1VSQ0VfRElSfS9BUEkvV0tDQUNGVmlldy5oIERFU1RJTkFUSU9OICR7REVSSVZFRF9T
T1VSQ0VTX0RJUn0vV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucykKIGZpbGUoQ09QWSAke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0vQVBJL1dLQ0FDRlZpZXdQcml2YXRlLmggREVTVElOQVRJT04g
JHtERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zKQogCi1XRUJL
SVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9uc1ByZWZp
eC5oIiAiV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9uc1ByZWZpeC5jcHAiIFdlYktpdFF1YXJ0ekNv
cmVBZGRpdGlvbnNfU09VUkNFUykKLQogaW5jbHVkZV9kaXJlY3RvcmllcygKICAgICAuCiAgICAg
IiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMiCkBAIC01OSwzICs1Nyw0
IEBAIHRhcmdldF9saW5rX2xpYnJhcmllcyhXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zCiAgICAg
Q29yZUdyYXBoaWNzJHtERUJVR19TVUZGSVh9CiAgICAgUXVhcnR6Q29yZSR7REVCVUdfU1VGRklY
fQogKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViS2l0UXVhcnR6Q29yZUFkZGl0
aW9ucyBXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zUHJlZml4LmgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5j
bWFrZQppbmRleCAyMDBjZTQ4MTg4OWI3ZTIxZWM4NmNjNjVlYWEzYWUwZTljODdlNzNkLi40YjU0
ZWYyMGQwMjU5Mjg3ZWNhNTlkOWQ1NGVkZTAxYTZmNjJhOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
Y21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3Mu
Y21ha2UKQEAgLTkwLDM0ICs5MCwxNyBAQCBtYWNybyhXRUJLSVRfQUREX1NPVVJDRV9ERVBFTkRF
TkNJRVMgX3NvdXJjZSBfZGVwcykKICAgICB1bnNldChfdG1wKQogZW5kbWFjcm8oKQogCi1tYWNy
byhXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUiBfaGVhZGVyIF9jcHAgX3NvdXJjZSkKLSAg
ICBpZiAoTVNWQykKLSAgICAgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChQcmVjb21waWxlZEJh
c2VuYW1lICR7X2NwcH0gTkFNRV9XRSkKLSAgICAgICAgZmlsZShNQUtFX0RJUkVDVE9SWSAiJHtD
TUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7X3NvdXJjZX0iKQotICAgICAgICBzZXQoUHJlY29t
cGlsZWRCaW5hcnkgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8ke19zb3VyY2V9LyR7UHJl
Y29tcGlsZWRCYXNlbmFtZX0ucGNoIikKLSAgICAgICAgc2V0KF9zb3VyY2VzICR7JHtfc291cmNl
fX0pCiAKLSAgICAgICAgIyBjbGFuZy1jbCByZXF1aXJlcyAvRkkgd2l0aCAvWWMKLSAgICAgICAg
aWYgKENPTVBJTEVSX0lTX0NMQU5HX0NMKQotICAgICAgICAgICAgc2V0X3NvdXJjZV9maWxlc19w
cm9wZXJ0aWVzKCR7X2NwcH0KLSAgICAgICAgICAgICAgICBQUk9QRVJUSUVTIENPTVBJTEVfRkxB
R1MgIi9ZY1wiJHtfaGVhZGVyfVwiIC9GcFwiJHtQcmVjb21waWxlZEJpbmFyeX1cIiAvRklcIiR7
X2hlYWRlcn1cIiIKLSAgICAgICAgICAgICAgICBPQkpFQ1RfT1VUUFVUUyAiJHtQcmVjb21waWxl
ZEJpbmFyeX0iKQotICAgICAgICBlbHNlICgpCi0gICAgICAgICAgICBzZXRfc291cmNlX2ZpbGVz
X3Byb3BlcnRpZXMoJHtfY3BwfQotICAgICAgICAgICAgICAgIFBST1BFUlRJRVMgQ09NUElMRV9G
TEFHUyAiL1ljXCIke19oZWFkZXJ9XCIgL0ZwXCIke1ByZWNvbXBpbGVkQmluYXJ5fVwiIgotICAg
ICAgICAgICAgICAgIE9CSkVDVF9PVVRQVVRTICIke1ByZWNvbXBpbGVkQmluYXJ5fSIpCi0gICAg
ICAgIGVuZGlmICgpCi0gICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygke19zb3Vy
Y2VzfQotICAgICAgICAgICAgUFJPUEVSVElFUyBDT01QSUxFX0ZMQUdTICIvWXVcIiR7X2hlYWRl
cn1cIiAvRklcIiR7X2hlYWRlcn1cIiAvRnBcIiR7UHJlY29tcGlsZWRCaW5hcnl9XCIiKQotCi0g
ICAgICAgIGZvcmVhY2ggKF9zcmMgJHtfc291cmNlc30pCi0gICAgICAgICAgICBXRUJLSVRfQURE
X1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtfc3JjfSAke1ByZWNvbXBpbGVkQmluYXJ5fSkKLSAgICAg
ICAgZW5kZm9yZWFjaCAoKQotCi0gICAgICAgIGxpc3QoQVBQRU5EICR7X3NvdXJjZX0gJHtfY3Bw
fSkKLSAgICBlbmRpZiAoKQotICAgICNGSVhNRTogQWRkIHN1cHBvcnQgZm9yIFhjb2RlLgotZW5k
bWFjcm8oKQoraWYgKENNQUtFX1ZFUlNJT04gVkVSU0lPTl9HUkVBVEVSX0VRVUFMIDMuMTcpCisg
ICAgbWFjcm8oV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIgX3RhcmdldCBfaGVhZGVyKQor
ICAgICAgICB0YXJnZXRfcHJlY29tcGlsZV9oZWFkZXJzKCR7X3RhcmdldH0gUFJJVkFURSAke19o
ZWFkZXJ9KQorICAgIGVuZG1hY3JvKCkKK2Vsc2UgKCkKKyAgICBtZXNzYWdlKFdBUk5JTkcgIlBy
ZWNvbXBpbGVkIGhlYWRlcnMgZGlzYWJsZWQsIENNYWtlIDMuMTcgb3IgbmV3ZXIgcmVxdWlyZWQi
KQorICAgIG1hY3JvKFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSIF90YXJnZXQgX2hlYWRl
cikKKyAgICAgICAgIyBOby1vcAorICAgIGVuZG1hY3JvKCkKK2VuZGlmICgpCiAKIG1hY3JvKFdF
QktJVF9GUkFNRVdPUktfREVDTEFSRSBfdGFyZ2V0KQogICAgICMgYWRkX2xpYnJhcnkoKSB3aXRo
b3V0IGFueSBzb3VyY2UgZmlsZXMgdHJpZ2dlcnMgQ01ha2Ugd2FybmluZwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDFiOWE5NWQ2MjY1ZjAwMzZi
ZTdlY2YwYTYxZjg2MmYwZDk3MTA2NmMuLmMwNmM2NmVlODVjNzhjODRkNWQ2MzI2OGIwMjlmMjQ4
Y2FiMDcwNjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAg
PGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxl
ZCBoZWFkZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICB3aXAKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtl
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1GVFcuY21ha2U6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdpbi5jbWFrZToKKwogMjAyMS0xMC0xNyAgRGF2
aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCB0ZXN0cyBmb3Ig
V1RGOjpPU09iamVjdFB0ci9hZG9wdE9TT2JqZWN0IGluIENvY29hIHdpdGggYW5kIHdpdGhvdXQg
QVJDCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9DTWFrZUxpc3RzLnR4dCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0CmluZGV4IGUyNDEwMTAzN2I2ZWE4ODkx
NmUxZDg5MWJiNmM3NjBhMzQyNTA4ZmEuLjQ2MjE1MGRiMDM1ZjAwNmI1NGNiMzE1NGY3ODI5Mzdm
ZjBiYzNhMmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0CkBAIC02Nyw2ICs2Nyw3
IEBAIGxpc3QoQVBQRU5EIER1bXBSZW5kZXJUcmVlX1NPVVJDRVMKIFdFQktJVF9FWEVDVVRBQkxF
X0RFQ0xBUkUoRHVtcFJlbmRlclRyZWUpCiBXRUJLSVRfSU5DTFVERV9DT05GSUdfRklMRVNfSUZf
RVhJU1RTKCkKIFdFQktJVF9FWEVDVVRBQkxFKER1bXBSZW5kZXJUcmVlKQorV0VCS0lUX0FERF9Q
UkVDT01QSUxFRF9IRUFERVIoRHVtcFJlbmRlclRyZWUgRHVtcFJlbmRlclRyZWVQcmVmaXguaCkK
IAogaWYgKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIGFkZF9zdWJkaXJlY3Rvcnko
VGVzdE5ldHNjYXBlUGx1Z0luKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvUGxh
dGZvcm1XaW4uY21ha2UgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQpp
bmRleCBmZDA2NTJiNDNmNWMwYjllMjE5YzNmZDc1YTkzM2YxMDA1OTA2ODBhLi5iNTI0ZTIwYTM2
NGZkZjRlNDAyNDRhODQ1YWMyYzg1Y2ZmNDJiYzAxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0
Zm9ybVdpbi5jbWFrZQpAQCAtNzIsNyArNzIsNiBAQCBlbHNlICgpCiAgICAgZW5kaWYgKCkKIGVu
ZGlmICgpCiAKLVdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJEdW1wUmVuZGVyVHJlZVBy
ZWZpeC5oIiAid2luL0R1bXBSZW5kZXJUcmVlUHJlZml4LmNwcCIgRHVtcFJlbmRlclRyZWVfU09V
UkNFUykKIHNldChDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICIke0NNQUtFX1NIQVJFRF9MSU5L
RVJfRkxBR1N9ICR7TVNWQ19SVU5USU1FX0xJTktFUl9GTEFHU30iKQogCiBXRUJLSVRfV1JBUF9F
WEVDVVRBQkxFKER1bXBSZW5kZXJUcmVlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4
dAppbmRleCBlOWM0NTE4YTVmNGZlNGUyZTRiOWMzNTlhMTNhOTU1MmRlYzBjNTI1Li41ZWY5MTA2
ZGIwZDdhOTJiNDk5ZTNmYmM1MWUzMDFmMjRhNjQzMGEwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Q01ha2VMaXN0cy50eHQKQEAgLTE0MSw2ICsxNDEsNyBAQCB0YXJnZXRfbGlua19saWJyYXJpZXMo
VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlIFBSSVZBVEUgJHtXZWJLaXRUZXN0UnVubmVySW5qZWN0
ZQogYWRkX2RlcGVuZGVuY2llcyhUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUgV2ViS2l0VGVzdFJ1
bm5lckluamVjdGVkQnVuZGxlQmluZGluZ3MpCiAKIFdFQktJVF9FWEVDVVRBQkxFKFdlYktpdFRl
c3RSdW5uZXIpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihXZWJLaXRUZXN0UnVubmVy
IFdlYktpdFRlc3RSdW5uZXJQcmVmaXguaCkKIAogaWYgKENPTVBJTEVSX0lTX0dDQ19PUl9DTEFO
RykKICAgICBXRUJLSVRfQUREX1RBUkdFVF9DWFhfRkxBR1MoVGVzdFJ1bm5lckluamVjdGVkQnVu
ZGxlIC1Xbm8tdW51c2VkLXBhcmFtZXRlcikKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvUGxhdGZvcm1GVFcuY21ha2UgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3Jt
RlRXLmNtYWtlCmluZGV4IDZmMWM5NjczYjNiZmYzM2NiODQxN2ZhY2E1YzczZjU2Y2ZhZDhkNjcu
LjE0ZWM1NzMwZDJmY2UyMzQzYTFhNzFjYTk5ODcyNmQzOTFjNGIxZTkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1GVFcuY21ha2UKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZQpAQCAtMjksOCArMjksNiBAQCBsaXN0KEFQUEVO
RCBXZWJLaXRUZXN0UnVubmVyX0xJQlJBUklFUwogICAgIE9sZWFjYwogKQogCi1XRUJLSVRfQURE
X1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oIiAid2luL1dlYktp
dFRlc3RSdW5uZXJQcmVmaXguY3BwIiBXZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMpCi0KIHNldChD
TUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICIke0NNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1N9ICR7
TVNWQ19SVU5USU1FX0xJTktFUl9GTEFHU30iKQogCiBXRUJLSVRfV1JBUF9FWEVDVVRBQkxFKFdl
YktpdFRlc3RSdW5uZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZv
cm1XaW4uY21ha2UgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2luLmNtYWtlCmlu
ZGV4IGNhNDk3OTJlOWRkMWRiZDRlZDRjYTIyNjk0YzVjY2I4MzY4YThkZWEuLmFiNjY0NmEwNzM2
YjQzYzMzMGFkYzhlNGZmYWE2YmQ5YmM1ZDhiNzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Q
bGF0Zm9ybVdpbi5jbWFrZQpAQCAtMzQsOCArMzQsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXRUZXN0
UnVubmVySW5qZWN0ZWRCdW5kbGVfTElCUkFSSUVTCiAgICAgJDxUQVJHRVRfT0JKRUNUUzpXZWJD
b3JlVGVzdFN1cHBvcnQ+CiApCiAKLVdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJL
aXRUZXN0UnVubmVyUHJlZml4LmgiICJ3aW4vV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5jcHAiIFdl
YktpdFRlc3RSdW5uZXJfU09VUkNFUykKLQogc2V0KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1Mg
IiR7Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHU30gJHtNU1ZDX1JVTlRJTUVfTElOS0VSX0ZMQUdT
fSIpCiAKIFdFQktJVF9XUkFQX0VYRUNVVEFCTEUoV2ViS2l0VGVzdFJ1bm5lcgpkaWZmIC0tZ2l0
IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDdhMDFlMjE2NDQ0YWU1YWE0MWQ4NWZkZmY5
NzZjOWY4MWZmZGM3YjIuLmEzNTZhNWRhNGE4ZTNlODllM2FjZTdlZWU3Y2NlYzM2MzE1MTc0MTQg
MTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aXAKKworICAgICAg
ICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2U6CisKIDIwMjEtMTAtMTggIE1pZ3Vl
bCBHb21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgbXkgZ2l0aHViIHVz
ZXJuYW1lIHRvIGNvbnRyaWJ1dG9ycy5qc29uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441628</attachid>
            <date>2021-10-18 12:11:25 -0700</date>
            <delta_ts>2021-10-18 14:06:38 -0700</delta_ts>
            <desc>WIP Patch v6</desc>
            <filename>bug-139438-20211018211124.patch</filename>
            <type>text/plain</type>
            <size>18105</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZWYwZTQ0YjcyYTFhOGNjMTkwZTE4ZWRmMTg2NWZlOTFkY2M5YzYzLi44ZWEzM2I5N2ZhMGQzYzFj
ZDY1MjVhNzNlZTc4MDdiYTUwZTQ5ZTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJz
IChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3
aXAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDIxLTEwLTE4ICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUHV0QnlWYWwncyBjaGls
ZDUgc2hvdWxkIGJlIEtub3duSW50MzJVc2UgLyBJbnQ1MlJlcFVzZSBpbiBGVEwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA5ZWQ4ZmQ3YmZmYWVmODNkMzRmMzUwZjU0OThmOWVlMDM2NmFkM2U1Li5mYjdhYmM2OTkx
ODk0OWJiMjY0ZGI3NGM5NGU0NTI3OTMwOGMxODZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNv
bT4KKworICAgICAgICBbQ01ha2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBXZWJDb3JlUHJlZml4Lmg6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJDb3Jl
VGVzdFN1cHBvcnRQcmVmaXguaDoKKwogMjAyMS0xMC0xNyAgRGVhbiBKYWNrc29uICA8ZGlub0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYlhSXSBTdHVicyBmb3IgV2ViWFIgSGFuZCBJbnB1dCBN
b2R1bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggMTMxZTNhMDkwMzUzMTcwMTdlNDZkODRiNjFkOGVhNGYxZTJmMmZm
Ni4uMjJiNzc3ZGI5OTgyMjQyZmM3ZGJjOGIyYjEzNWJkZjFiZWJmOGZmYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJl
ekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFk
ZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICB3aXAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYktpdDJQcmVm
aXguaDoKKwogMjAyMS0xMC0xOCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFVzZS1hZnRlci1tb3ZlIG9mIG1fc29ja2V0cyBpbiBOZXR3b3JrUlRDUHJvdmlk
ZXI6OmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggN2JlNDk4YzhhMTViNGEyMGI4NDBm
ZjcxYTVkYTkxYjc1ZTlmZWQwYy4uMDVmNGViZjkzNDhmNGFiMjhkOGM5OWJiY2IxMzliYWZiOTAy
MTQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMC0xOCAg
QWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtD
TWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aXAKKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorCiAyMDIxLTEwLTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHVwIHByZXZpb3VzIGNvbW1pdC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZwppbmRleCA0ODJmN2IxNzNkM2U4MmUyZGZmYzc5NzcyOWNjNmNlOWZkZjI3
YWUzLi5lMjdiMGVkZDM3ODg4YjkwMDczZjFiZWY3NThhYzViYmIwYTZlNWViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2VdIEVu
YWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAgICAgICAgKiBXZWJLaXRRdWFydHpDb3Jl
QWRkaXRpb25zL0NNYWtlTGlzdHMudHh0OgorCiAyMDIxLTEwLTExICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRE9NVGltZVN0YW1wIGlzIG5vdyBFcG9jaFRpbWVT
dGFtcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ3MGJhNTJkNjFmZGYw
OTk1Y2IxYTIyYjBkZmFmZDhlMmUwYmQzZGMuLjE1NDYyOGZlMzRkYTg2YmIyNzEwMmI3MmQzODAz
NzYwYWY5MzI3MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE1MDIs
NiArMTUwMiw3IEBAIGVuZGlmICgpCiBXRUJLSVRfQ09NUFVURV9TT1VSQ0VTKEphdmFTY3JpcHRD
b3JlKQogV0VCS0lUX0ZSQU1FV09SSyhKYXZhU2NyaXB0Q29yZSkKIFdFQktJVF9GUkFNRVdPUktf
VEFSR0VUKEphdmFTY3JpcHRDb3JlKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoSmF2
YVNjcmlwdENvcmUgSmF2YVNjcmlwdENvcmVQcmVmaXguaCkKIAogaWYgKE5PVCAiJHtQT1JUfSIg
U1RSRVFVQUwgIk1hYyIpCiAgICAgaWYgKCR7SmF2YVNjcmlwdENvcmVfTElCUkFSWV9UWVBFfSBT
VFJFUVVBTCAiU0hBUkVEIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZVByZWZpeC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
UHJlZml4LmgKaW5kZXggY2I3NWExODQ1MDdjZTU0OTZmYzA4NDhlNjVmMWU3MjU4NTIwMDMyMi4u
MThhMDcyMjAwZjgzY2M5ZjQxYTYxOWJmMjMyOTY2Y2NkMzY0ZjNiNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmgKQEAgLTIzLDYgKzIzLDEyIEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKKyNpZiBkZWZpbmVkKEhBVkVfQ09ORklHX0gpICYmIEhBVkVf
Q09ORklHX0ggJiYgZGVmaW5lZChCVUlMRElOR19XSVRIX0NNQUtFKQorI2luY2x1ZGUgImNtYWtl
Y29uZmlnLmgiCisjZW5kaWYKKworI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgorCiAjaWZkZWYg
X19jcGx1c3BsdXMKICNkZWZpbmUgTlVMTCBfX251bGwKICNlbHNlCkBAIC0zNiwxMyArNDIsMTcg
QEAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0
cmluZy5oPgotI2luY2x1ZGUgPHN0cmluZ3MuaD4KKwogI2luY2x1ZGUgPHRpbWUuaD4KLSNpbmNs
dWRlIDxzeXMvcGFyYW0uaD4KLSNpbmNsdWRlIDxzeXMvdGltZS5oPgogI2luY2x1ZGUgPHN5cy90
aW1lYi5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogCisjaWYgIU9TKFdJTkRPV1MpCisjaW5j
bHVkZSA8c3RyaW5ncy5oPgorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy90
aW1lLmg+CisjZW5kaWYKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiAKICNpbmNsdWRlIDxsaXN0Pgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmMTdlYTM3ZWM3YmFmNDNlODJhNjNlMDgxYjRjZjAzY2U5
YzY0NDU1Li4wMmMwYzQ5MWM5YzkwNTgxNzZhOTlhNzBiMGMxOTc2MTdjOWZjMTU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMjI0NSwxMCArMjI0NSw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVf
U09VUkNFUwogCiBXRUJLSVRfQ09NUFVURV9TT1VSQ0VTKFdlYkNvcmUpCiAKLWlmIChNU1ZDKQot
ICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJDb3JlUHJlZml4LmgiICJXZWJD
b3JlUHJlZml4LmNwcCIgV2ViQ29yZV9TT1VSQ0VTKQotZW5kaWYgKCkKLQogV0VCS0lUX0NPUFlf
RklMRVMoV2ViQ29yZV9Db3B5UHJpdmF0ZUhlYWRlcnMKICAgICBERVNUSU5BVElPTiAke1dlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSU19ESVJ9L1dlYkNvcmUKICAgICBGSUxFUyAke1dl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSU30KQEAgLTIyNjUsNiArMjI2MSw3IEBAIGVu
ZGlmICgpCiAKIFdFQktJVF9GUkFNRVdPUksoV2ViQ29yZSkKIFdFQktJVF9GUkFNRVdPUktfVEFS
R0VUKFdlYkNvcmUpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihXZWJDb3JlIFdlYkNv
cmVQcmVmaXguaCkKIAogaWYgKEFQUExFKQogICAgIHNldF90YXJnZXRfcHJvcGVydGllcyhXZWJD
b3JlIFBST1BFUlRJRVMgTElOS19GTEFHUyAiLXN1Yl9saWJyYXJ5IGxpYm9iamMgLXVtYnJlbGxh
IFdlYktpdCAtYWxsb3dhYmxlX2NsaWVudCBXZWJDb3JlVGVzdFN1cHBvcnQgLWFsbG93YWJsZV9j
bGllbnQgV2ViS2l0MiAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRMZWdhY3kiKQpAQCAtMjI3OCwx
MCArMjI3NSw2IEBAIGlmIChDTUFLRV9DT01QSUxFUl9JU19HTlVDWFggQU5EICIke0xPV0VSQ0FT
RV9DTUFLRV9IT1NUX1NZU1RFTV9QUk9DRVNTT1J9IiBNQVRDCiAgICAgV0VCS0lUX0FERF9UQVJH
RVRfQ1hYX0ZMQUdTKFdlYkNvcmUgLWZuby10cmVlLXNyYSkKIGVuZGlmICgpCiAKLWlmIChNU1ZD
KQotICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJDb3JlVGVzdFN1cHBvcnRQ
cmVmaXguaCIgInRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmNwcCIgV2ViQ29y
ZVRlc3RTdXBwb3J0X1NPVVJDRVMpCi1lbmRpZiAoKQotCiBXRUJLSVRfQ09QWV9GSUxFUyhDb3B5
X1dlYkNvcmVUZXN0U3VwcG9ydFByaXZhdGVIZWFkZXJzCiAgICAgREVTVElOQVRJT04gJHtXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlNfRElSfS9XZWJDb3JlVGVzdFN1cHBvcnQKICAg
ICBGSUxFUyB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5oIHRlc3RpbmcvY29jb2EvV2Vi
QXJjaGl2ZUR1bXBTdXBwb3J0LmgKQEAgLTIzMDMsNiArMjI5Niw3IEBAIGVuZGlmICgpCiAKIFdF
QktJVF9GUkFNRVdPUksoV2ViQ29yZVRlc3RTdXBwb3J0KQogV0VCS0lUX0ZSQU1FV09SS19UQVJH
RVQoV2ViQ29yZVRlc3RTdXBwb3J0KQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2Vi
Q29yZVRlc3RTdXBwb3J0IHRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgpCiAK
IGlmICgke1dlYkNvcmVfTElCUkFSWV9UWVBFfSBNQVRDSEVTICJTSEFSRUQiKQogICAgIHNldF90
YXJnZXRfcHJvcGVydGllcyhXZWJDb3JlIFBST1BFUlRJRVMgVkVSU0lPTiAke1BST0pFQ1RfVkVS
U0lPTn0gU09WRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OX01BSk9SfSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaCBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVm
aXguaAppbmRleCBkMGM0NWY2NjJkZTc1ZDI2MGFjNmVhNjRhYjVkMDBjNWJjODQ5OThmLi5mNmRm
NDY2MWFkNmE5NTRhMzEzYmU2NDE5Y2Y0NWIxMDc2ZTZlM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZp
eC5oCkBAIC0xMTYsNiArMTE2LDI5IEBACiAKICNpZiBQTEFURk9STShXSU5fQ0FJUk8pCiAjaW5j
bHVkZSA8d2luZG93cy5oPgorCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkK
KworI2lmIFVTRShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby5oPgorI2VuZGlmCisKKyNpZiBVU0Uo
SEFSRkJVWlopCisjaW5jbHVkZSA8aGIuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5j
bHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisjaW5jbHVkZSA8
bGlic291cC9zb3VwLmg+CisjZW5kaWYKKworI2lmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVkZSA8
Z3N0L2dzdC5oPgorI2VuZGlmCisKICNlbHNlCiAKICNpZiBPUyhXSU5ET1dTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgKaW5k
ZXggNzViYTI0MDdlZTQxNTg1YWI5YmFhMzI0N2MyOGQxNDQ3ZWVjMjQxMi4uMTFjZTBmZjQ1Zjk3
OTY3ODlmYTEzMzc4ZjY5ZWVmMGJjNmJjNWE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oCkBAIC04OCw2ICs4OCwyNCBA
QAogCiAjaWYgUExBVEZPUk0oV0lOX0NBSVJPKQogI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNlbGlm
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorCisjaWYgVVNFKENBSVJPKQorI2luY2x1
ZGUgPGNhaXJvL2NhaXJvLmg+CisjZW5kaWYKKworI2lmIFVTRShHTElCKQorI2luY2x1ZGUgPGds
aWItb2JqZWN0Lmg+CisjZW5kaWYKKworI2lmIFVTRShTT1VQKQorI2luY2x1ZGUgPGxpYnNvdXAv
c291cC5oPgorI2VuZGlmCisKKyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1ZGUgPGdzdC9nc3Qu
aD4KKyNlbmRpZgorCiAjZWxzZQogCiAjaWYgT1MoV0lORE9XUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGNhYjRiZTBjZTIwMWYxNjBiMDIyMmZhMTI3MjcwMTA1MGUwMzJiMTIuLmIxMGJlNjRjY2Rj
NTU4MWJmNThmMzlhNTBjYmUyYzg3ODhhZmE2N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMzg3
LDExICszODcsNyBAQCBlbmRpZiAoKQogCiBtYWNybyhBRERfV0VCS0lUX1BSRUZJWF9IRUFERVIg
X3RhcmdldCkKICAgICBpZiAoV2ViS2l0X1VTRV9QUkVGSVhfSEVBREVSKQotICAgICAgICBnZXRf
dGFyZ2V0X3Byb3BlcnR5KE9MRF9DT01QSUxFX0ZMQUdTICR7X3RhcmdldH0gQ09NUElMRV9GTEFH
UykKLSAgICAgICAgaWYgKCR7T0xEX0NPTVBJTEVfRkxBR1N9IFNUUkVRVUFMICJPTERfQ09NUElM
RV9GTEFHUy1OT1RGT1VORCIpCi0gICAgICAgICAgICBzZXQoT0xEX0NPTVBJTEVfRkxBR1MgIiIp
Ci0gICAgICAgIGVuZGlmICgpCi0gICAgICAgIHNldF90YXJnZXRfcHJvcGVydGllcygke190YXJn
ZXR9IFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAiJHtPTERfQ09NUElMRV9GTEFHU30gLWluY2x1
ZGUgJHtXRUJLSVRfRElSfS9XZWJLaXQyUHJlZml4LmgiKQorICAgICAgICBXRUJLSVRfQUREX1BS
RUNPTVBJTEVEX0hFQURFUigke190YXJnZXR9IFdlYktpdDJQcmVmaXguaCkKICAgICBlbmRpZiAo
KQogZW5kbWFjcm8oKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXgu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0MlByZWZpeC5oCmluZGV4IDQwNmFhODExOGZhNjZkYWRm
YzM1YjhlYmU0YmYyNDA5M2FjZjYxYWYuLjZiMjliOTk4MmUzMjM1YzgxNjI3YjRkNzlmMTA2NGU0
MTM4YjcyMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0MlByZWZpeC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0MlByZWZpeC5oCkBAIC02Myw2ICs2MywzNCBAQAogCiAjZW5k
aWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQ
RSkKKworI2lmIFVTRShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby9jYWlyby5oPgorI2VuZGlmCisK
KyNpZiBVU0UoSEFSRkJVWlopCisjaW5jbHVkZSA8aGIuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdM
SUIpCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisj
aW5jbHVkZSA8bGlic291cC9zb3VwLmg+CisjZW5kaWYKKworI2lmIFVTRShHU1RSRUFNRVIpCisj
aW5jbHVkZSA8Z3N0L2dzdC5oPgorI2VuZGlmCisKKyNpZiBQTEFURk9STShHVEspCisjaW5jbHVk
ZSA8Z3RrL2d0ay5oPgorI2VuZGlmCisKKyNlbmRpZiAvLyBQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdQRSkKKwogLyogV2hlbiBDKysgZXhjZXB0aW9ucyBhcmUgZGlzYWJsZWQsIHRoZSBDKysg
bGlicmFyeSBkZWZpbmVzIHx0cnl8IGFuZCB8Y2F0Y2h8CiAqIHRvIGFsbG93IEMrKyBjb2RlIHRo
YXQgZXhwZWN0cyBleGNlcHRpb25zIHRvIGJ1aWxkLiBUaGVzZSBkZWZpbml0aW9ucwogKiBpbnRl
cmZlcmUgd2l0aCBPYmplY3RpdmUtQysrIHVzZXMgb2YgT2JqZWN0aXZlLUMgZXhjZXB0aW9uIGhh
bmRsZXJzLCB3aGljaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ01ha2VMaXN0cy50eHQKaW5kZXggNjU4OTY3Njk1
MmMzZDUwZjJmYjcwNWQyNDM4M2I2YzJlOGYxZjI2MC4uNWJhZjVhNmI2Y2U0MDVlYTliODI1ZGRj
MTQwOTIwZjg5ODljYWE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlzdHMudHh0CkBAIC00Miwx
MiArNDIsMTIgQEAgV0VCS0lUX0ZSQU1FV09SS19ERUNMQVJFKFdlYktpdExlZ2FjeSkKIFdFQktJ
VF9JTkNMVURFX0NPTkZJR19GSUxFU19JRl9FWElTVFMoKQogCiBpZiAoTVNWQykKLSAgICBXRUJL
SVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0UHJlZml4LmgiICJ3aW4vV2ViS2l0UHJl
Zml4LmNwcCIgV2ViS2l0TGVnYWN5X1NPVVJDRVMpCiAgICAgbGlzdChBUFBFTkQgV2ViS2l0TGVn
YWN5X1NPVVJDRVMgd2luL1dlYktpdC5yZXNvdXJjZXMvV2ViS2l0LnJjKQogICAgIGFkZF9kZWZp
bml0aW9ucygvRFdFQktJVF9FWFBPUlRTIC9ERlJBTUVXT1JLX05BTUU9V2ViS2l0TGVnYWN5KQog
ZW5kaWYgKCkKIAogV0VCS0lUX0ZSQU1FV09SSyhXZWJLaXRMZWdhY3kpCitXRUJLSVRfQUREX1BS
RUNPTVBJTEVEX0hFQURFUihXZWJLaXRMZWdhY3kgV2ViS2l0UHJlZml4LmgpCiAKIGlmIChUQVJH
RVQgV2ViS2l0TGVnYWN5R1VJRCkKICAgICBhZGRfZGVwZW5kZW5jaWVzKFdlYktpdExlZ2FjeSBX
ZWJLaXRMZWdhY3lHVUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
S2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvQ01ha2VMaXN0cy50eHQKaW5kZXggYmMw
OTc5OGI4YjAyYWYyOWMzODNiNzg3ZTZmMTc2ZmEyMmVmZDczYi4uN2FlN2MxYzAwNzMxOTBiOWIw
MGFjN2MxNTQ5MGFmNWY1MjAwYzIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlzdHMudHh0
CkBAIC00MSw4ICs0MSw2IEBAIGZpbGUoQ09QWSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0v
QVBJL1dLQ0FDRkltYWdlSW50ZXJuYWwuaCBERVNUSU5BVElPTiAke0RFCiBmaWxlKENPUFkgJHtD
TUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L0FQSS9XS0NBQ0ZWaWV3LmggREVTVElOQVRJT04gJHtE
RVJJVkVEX1NPVVJDRVNfRElSfS9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zKQogZmlsZShDT1BZ
ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9BUEkvV0tDQUNGVmlld1ByaXZhdGUuaCBERVNU
SU5BVElPTiAke0RFUklWRURfU09VUkNFU19ESVJ9L1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMp
CiAKLVdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXRRdWFydHpDb3JlQWRkaXRp
b25zUHJlZml4LmgiICJXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zUHJlZml4LmNwcCIgV2ViS2l0
UXVhcnR6Q29yZUFkZGl0aW9uc19TT1VSQ0VTKQotCiBpbmNsdWRlX2RpcmVjdG9yaWVzKAogICAg
IC4KICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycyIKQEAgLTU5
LDMgKzU3LDQgQEAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlv
bnMKICAgICBDb3JlR3JhcGhpY3Mke0RFQlVHX1NVRkZJWH0KICAgICBRdWFydHpDb3JlJHtERUJV
R19TVUZGSVh9CiApCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihXZWJLaXRRdWFydHpD
b3JlQWRkaXRpb25zIFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNQcmVmaXguaCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0
TWFjcm9zLmNtYWtlCmluZGV4IDIwMGNlNDgxODg5YjdlMjFlYzg2Y2M2NWVhYTNhZTBlOWM4N2U3
M2QuLjRiNTRlZjIwZDAyNTkyODdlY2E1OWQ5ZDU0ZWRlMDFhNmY2MmE4YzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktp
dE1hY3Jvcy5jbWFrZQpAQCAtOTAsMzQgKzkwLDE3IEBAIG1hY3JvKFdFQktJVF9BRERfU09VUkNF
X0RFUEVOREVOQ0lFUyBfc291cmNlIF9kZXBzKQogICAgIHVuc2V0KF90bXApCiBlbmRtYWNybygp
CiAKLW1hY3JvKFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSIF9oZWFkZXIgX2NwcCBfc291
cmNlKQotICAgIGlmIChNU1ZDKQotICAgICAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KFByZWNv
bXBpbGVkQmFzZW5hbWUgJHtfY3BwfSBOQU1FX1dFKQotICAgICAgICBmaWxlKE1BS0VfRElSRUNU
T1JZICIke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vJHtfc291cmNlfSIpCi0gICAgICAgIHNl
dChQcmVjb21waWxlZEJpbmFyeSAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7X3NvdXJj
ZX0vJHtQcmVjb21waWxlZEJhc2VuYW1lfS5wY2giKQotICAgICAgICBzZXQoX3NvdXJjZXMgJHsk
e19zb3VyY2V9fSkKIAotICAgICAgICAjIGNsYW5nLWNsIHJlcXVpcmVzIC9GSSB3aXRoIC9ZYwot
ICAgICAgICBpZiAoQ09NUElMRVJfSVNfQ0xBTkdfQ0wpCi0gICAgICAgICAgICBzZXRfc291cmNl
X2ZpbGVzX3Byb3BlcnRpZXMoJHtfY3BwfQotICAgICAgICAgICAgICAgIFBST1BFUlRJRVMgQ09N
UElMRV9GTEFHUyAiL1ljXCIke19oZWFkZXJ9XCIgL0ZwXCIke1ByZWNvbXBpbGVkQmluYXJ5fVwi
IC9GSVwiJHtfaGVhZGVyfVwiIgotICAgICAgICAgICAgICAgIE9CSkVDVF9PVVRQVVRTICIke1By
ZWNvbXBpbGVkQmluYXJ5fSIpCi0gICAgICAgIGVsc2UgKCkKLSAgICAgICAgICAgIHNldF9zb3Vy
Y2VfZmlsZXNfcHJvcGVydGllcygke19jcHB9Ci0gICAgICAgICAgICAgICAgUFJPUEVSVElFUyBD
T01QSUxFX0ZMQUdTICIvWWNcIiR7X2hlYWRlcn1cIiAvRnBcIiR7UHJlY29tcGlsZWRCaW5hcnl9
XCIiCi0gICAgICAgICAgICAgICAgT0JKRUNUX09VVFBVVFMgIiR7UHJlY29tcGlsZWRCaW5hcnl9
IikKLSAgICAgICAgZW5kaWYgKCkKLSAgICAgICAgc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVz
KCR7X3NvdXJjZXN9Ci0gICAgICAgICAgICBQUk9QRVJUSUVTIENPTVBJTEVfRkxBR1MgIi9ZdVwi
JHtfaGVhZGVyfVwiIC9GSVwiJHtfaGVhZGVyfVwiIC9GcFwiJHtQcmVjb21waWxlZEJpbmFyeX1c
IiIpCi0KLSAgICAgICAgZm9yZWFjaCAoX3NyYyAke19zb3VyY2VzfSkKLSAgICAgICAgICAgIFdF
QktJVF9BRERfU09VUkNFX0RFUEVOREVOQ0lFUygke19zcmN9ICR7UHJlY29tcGlsZWRCaW5hcnl9
KQotICAgICAgICBlbmRmb3JlYWNoICgpCi0KLSAgICAgICAgbGlzdChBUFBFTkQgJHtfc291cmNl
fSAke19jcHB9KQotICAgIGVuZGlmICgpCi0gICAgI0ZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgWGNv
ZGUuCi1lbmRtYWNybygpCitpZiAoQ01BS0VfVkVSU0lPTiBWRVJTSU9OX0dSRUFURVJfRVFVQUwg
My4xNykKKyAgICBtYWNybyhXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUiBfdGFyZ2V0IF9o
ZWFkZXIpCisgICAgICAgIHRhcmdldF9wcmVjb21waWxlX2hlYWRlcnMoJHtfdGFyZ2V0fSBQUklW
QVRFICR7X2hlYWRlcn0pCisgICAgZW5kbWFjcm8oKQorZWxzZSAoKQorICAgIG1lc3NhZ2UoV0FS
TklORyAiUHJlY29tcGlsZWQgaGVhZGVycyBkaXNhYmxlZCwgQ01ha2UgMy4xNyBvciBuZXdlciBy
ZXF1aXJlZCIpCisgICAgbWFjcm8oV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIgX3Rhcmdl
dCBfaGVhZGVyKQorICAgICAgICAjIE5vLW9wCisgICAgZW5kbWFjcm8oKQorZW5kaWYgKCkKIAog
bWFjcm8oV0VCS0lUX0ZSQU1FV09SS19ERUNMQVJFIF90YXJnZXQpCiAgICAgIyBhZGRfbGlicmFy
eSgpIHdpdGhvdXQgYW55IHNvdXJjZSBmaWxlcyB0cmlnZ2VycyBDTWFrZSB3YXJuaW5nCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWI5YTk1ZDYy
NjVmMDAzNmJlN2VjZjBhNjFmODYyZjBkOTcxMDY2Yy4uYzA2YzY2ZWU4NWM3OGM4NGQ1ZDYzMjY4
YjAyOWYyNDhjYWIwNzA2MCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEwLTE4ICBBZHJpYW4gUGVyZXogZGUg
Q2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0NNYWtlXSBFbmFibGUgcHJl
LWNvbXBpbGVkIGhlYWRlcnMgKFBDSCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzOTQzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIHdpcAorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1X
aW4uY21ha2U6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2luLmNtYWtlOgorCiAyMDIxLTEw
LTE3ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHRl
c3RzIGZvciBXVEY6Ok9TT2JqZWN0UHRyL2Fkb3B0T1NPYmplY3QgaW4gQ29jb2Egd2l0aCBhbmQg
d2l0aG91dCBBUkMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMu
dHh0IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTI0MTAxMDM3
YjZlYTg4OTE2ZTFkODkxYmI2Yzc2MGEzNDI1MDhmYS4uNDYyMTUwZGIwMzVmMDA2YjU0Y2IzMTU0
Zjc4MjkzN2ZmMGJjM2EyZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VM
aXN0cy50eHQKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKQEAgLTY3
LDYgKzY3LDcgQEAgbGlzdChBUFBFTkQgRHVtcFJlbmRlclRyZWVfU09VUkNFUwogV0VCS0lUX0VY
RUNVVEFCTEVfREVDTEFSRShEdW1wUmVuZGVyVHJlZSkKIFdFQktJVF9JTkNMVURFX0NPTkZJR19G
SUxFU19JRl9FWElTVFMoKQogV0VCS0lUX0VYRUNVVEFCTEUoRHVtcFJlbmRlclRyZWUpCitXRUJL
SVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihEdW1wUmVuZGVyVHJlZSBEdW1wUmVuZGVyVHJlZVBy
ZWZpeC5oKQogCiBpZiAoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgYWRkX3N1YmRp
cmVjdG9yeShUZXN0TmV0c2NhcGVQbHVnSW4pCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9QbGF0Zm9ybVdpbi5jbWFrZSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2lu
LmNtYWtlCmluZGV4IGZkMDY1MmI0M2Y1YzBiOWUyMTljM2ZkNzVhOTMzZjEwMDU5MDY4MGEuLmI1
MjRlMjBhMzY0ZmRmNGU0MDI0NGE4NDVhYzJjODVjZmY0MmJjMDEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1BsYXRmb3JtV2luLmNtYWtlCkBAIC03Miw3ICs3Miw2IEBAIGVsc2UgKCkKICAgICBlbmRp
ZiAoKQogZW5kaWYgKCkKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIkR1bXBSZW5k
ZXJUcmVlUHJlZml4LmgiICJ3aW4vRHVtcFJlbmRlclRyZWVQcmVmaXguY3BwIiBEdW1wUmVuZGVy
VHJlZV9TT1VSQ0VTKQogc2V0KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hB
UkVEX0xJTktFUl9GTEFHU30gJHtNU1ZDX1JVTlRJTUVfTElOS0VSX0ZMQUdTfSIpCiAKIFdFQktJ
VF9XUkFQX0VYRUNVVEFCTEUoRHVtcFJlbmRlclRyZWUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtl
TGlzdHMudHh0CmluZGV4IGU5YzQ1MThhNWY0ZmU0ZTJlNGI5YzM1OWExM2E5NTUyZGVjMGM1MjUu
LjVlZjkxMDZkYjBkN2E5MmI0OTllM2ZiYzUxZTMwMWYyNGE2NDMwYTAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9DTWFrZUxpc3RzLnR4dApAQCAtMTQxLDYgKzE0MSw3IEBAIHRhcmdldF9saW5rX2xp
YnJhcmllcyhUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUgUFJJVkFURSAke1dlYktpdFRlc3RSdW5u
ZXJJbmplY3RlCiBhZGRfZGVwZW5kZW5jaWVzKFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZSBXZWJL
aXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVCaW5kaW5ncykKIAogV0VCS0lUX0VYRUNVVEFCTEUo
V2ViS2l0VGVzdFJ1bm5lcikKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKFdlYktpdFRl
c3RSdW5uZXIgV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oKQogCiBpZiAoQ09NUElMRVJfSVNfR0ND
X09SX0NMQU5HKQogICAgIFdFQktJVF9BRERfVEFSR0VUX0NYWF9GTEFHUyhUZXN0UnVubmVySW5q
ZWN0ZWRCdW5kbGUgLVduby11bnVzZWQtcGFyYW1ldGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
UGxhdGZvcm1GVFcuY21ha2UKaW5kZXggNmYxYzk2NzNiM2JmZjMzY2I4NDE3ZmFjYTVjNzNmNTZj
ZmFkOGQ2Ny4uMTRlYzU3MzBkMmZjZTIzNDNhMWE3MWNhOTk4NzI2ZDM5MWM0YjFlOSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZQorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtRlRXLmNtYWtlCkBAIC0yOSw4ICsyOSw2IEBAIGxp
c3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfTElCUkFSSUVTCiAgICAgT2xlYWNjCiApCiAKLVdF
QktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXRUZXN0UnVubmVyUHJlZml4LmgiICJ3
aW4vV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5jcHAiIFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUykK
LQogc2V0KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hBUkVEX0xJTktFUl9G
TEFHU30gJHtNU1ZDX1JVTlRJTUVfTElOS0VSX0ZMQUdTfSIpCiAKIFdFQktJVF9XUkFQX0VYRUNV
VEFCTEUoV2ViS2l0VGVzdFJ1bm5lcgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9QbGF0Zm9ybVdpbi5jbWFrZSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4u
Y21ha2UKaW5kZXggY2E0OTc5MmU5ZGQxZGJkNGVkNGNhMjI2OTRjNWNjYjgzNjhhOGRlYS4uYWI2
NjQ2YTA3MzZiNDNjMzMwYWRjOGU0ZmZhYTZiZDliYzVkOGI3MSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1BsYXRmb3JtV2luLmNtYWtlCkBAIC0zNCw4ICszNCw2IEBAIGxpc3QoQVBQRU5EIFdl
YktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9MSUJSQVJJRVMKICAgICAkPFRBUkdFVF9PQkpF
Q1RTOldlYkNvcmVUZXN0U3VwcG9ydD4KICkKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFE
RVIoIldlYktpdFRlc3RSdW5uZXJQcmVmaXguaCIgIndpbi9XZWJLaXRUZXN0UnVubmVyUHJlZml4
LmNwcCIgV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTKQotCiBzZXQoQ01BS0VfU0hBUkVEX0xJTktF
Ul9GTEFHUyAiJHtDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTfSAke01TVkNfUlVOVElNRV9MSU5L
RVJfRkxBR1N9IikKIAogV0VCS0lUX1dSQVBfRVhFQ1VUQUJMRShXZWJLaXRUZXN0UnVubmVyCmRp
ZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggN2EwMWUyMTY0NDRhZTVhYTQx
ZDg1ZmRmZjk3NmM5ZjgxZmZkYzdiMi4uYTM1NmE1ZGE0YThlM2U4OWUzYWNlN2VlZTdjY2VjMzYz
MTUxNzQxNCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDIxLTEwLTE4ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0NNYWtlXSBFbmFibGUgcHJlLWNvbXBpbGVkIGhlYWRlcnMgKFBD
SCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQz
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdpcAor
CisgICAgICAgICogU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZToKKwogMjAyMS0xMC0x
OCAgTWlndWVsIEdvbWV6ICA8bWFnb21lekBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBteSBn
aXRodWIgdXNlcm5hbWUgdG8gY29udHJpYnV0b3JzLmpzb24K
</data>
<flag name="commit-queue"
          id="465956"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441636</attachid>
            <date>2021-10-18 13:17:12 -0700</date>
            <delta_ts>2021-10-18 15:34:13 -0700</delta_ts>
            <desc>WIP Patch v7</desc>
            <filename>bug-139438-20211018221710.patch</filename>
            <type>text/plain</type>
            <size>18670</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZWYwZTQ0YjcyYTFhOGNjMTkwZTE4ZWRmMTg2NWZlOTFkY2M5YzYzLi44ZWEzM2I5N2ZhMGQzYzFj
ZDY1MjVhNzNlZTc4MDdiYTUwZTQ5ZTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJz
IChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3
aXAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDIxLTEwLTE4ICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUHV0QnlWYWwncyBjaGls
ZDUgc2hvdWxkIGJlIEtub3duSW50MzJVc2UgLyBJbnQ1MlJlcFVzZSBpbiBGVEwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA5ZWQ4ZmQ3YmZmYWVmODNkMzRmMzUwZjU0OThmOWVlMDM2NmFkM2U1Li5mYjdhYmM2OTkx
ODk0OWJiMjY0ZGI3NGM5NGU0NTI3OTMwOGMxODZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNv
bT4KKworICAgICAgICBbQ01ha2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBXZWJDb3JlUHJlZml4Lmg6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJDb3Jl
VGVzdFN1cHBvcnRQcmVmaXguaDoKKwogMjAyMS0xMC0xNyAgRGVhbiBKYWNrc29uICA8ZGlub0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYlhSXSBTdHVicyBmb3IgV2ViWFIgSGFuZCBJbnB1dCBN
b2R1bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggMTMxZTNhMDkwMzUzMTcwMTdlNDZkODRiNjFkOGVhNGYxZTJmMmZm
Ni4uMjJiNzc3ZGI5OTgyMjQyZmM3ZGJjOGIyYjEzNWJkZjFiZWJmOGZmYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJl
ekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFk
ZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICB3aXAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYktpdDJQcmVm
aXguaDoKKwogMjAyMS0xMC0xOCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFVzZS1hZnRlci1tb3ZlIG9mIG1fc29ja2V0cyBpbiBOZXR3b3JrUlRDUHJvdmlk
ZXI6OmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggN2JlNDk4YzhhMTViNGEyMGI4NDBm
ZjcxYTVkYTkxYjc1ZTlmZWQwYy4uMDVmNGViZjkzNDhmNGFiMjhkOGM5OWJiY2IxMzliYWZiOTAy
MTQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMC0xOCAg
QWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtD
TWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aXAKKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorCiAyMDIxLTEwLTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHVwIHByZXZpb3VzIGNvbW1pdC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZwppbmRleCA0ODJmN2IxNzNkM2U4MmUyZGZmYzc5NzcyOWNjNmNlOWZkZjI3
YWUzLi5lMjdiMGVkZDM3ODg4YjkwMDczZjFiZWY3NThhYzViYmIwYTZlNWViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2VdIEVu
YWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAgICAgICAgKiBXZWJLaXRRdWFydHpDb3Jl
QWRkaXRpb25zL0NNYWtlTGlzdHMudHh0OgorCiAyMDIxLTEwLTExICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRE9NVGltZVN0YW1wIGlzIG5vdyBFcG9jaFRpbWVT
dGFtcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ3MGJhNTJkNjFmZGYw
OTk1Y2IxYTIyYjBkZmFmZDhlMmUwYmQzZGMuLjE1NDYyOGZlMzRkYTg2YmIyNzEwMmI3MmQzODAz
NzYwYWY5MzI3MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE1MDIs
NiArMTUwMiw3IEBAIGVuZGlmICgpCiBXRUJLSVRfQ09NUFVURV9TT1VSQ0VTKEphdmFTY3JpcHRD
b3JlKQogV0VCS0lUX0ZSQU1FV09SSyhKYXZhU2NyaXB0Q29yZSkKIFdFQktJVF9GUkFNRVdPUktf
VEFSR0VUKEphdmFTY3JpcHRDb3JlKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoSmF2
YVNjcmlwdENvcmUgSmF2YVNjcmlwdENvcmVQcmVmaXguaCkKIAogaWYgKE5PVCAiJHtQT1JUfSIg
U1RSRVFVQUwgIk1hYyIpCiAgICAgaWYgKCR7SmF2YVNjcmlwdENvcmVfTElCUkFSWV9UWVBFfSBT
VFJFUVVBTCAiU0hBUkVEIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZVByZWZpeC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
UHJlZml4LmgKaW5kZXggY2I3NWExODQ1MDdjZTU0OTZmYzA4NDhlNjVmMWU3MjU4NTIwMDMyMi4u
MThhMDcyMjAwZjgzY2M5ZjQxYTYxOWJmMjMyOTY2Y2NkMzY0ZjNiNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmgKQEAgLTIzLDYgKzIzLDEyIEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKKyNpZiBkZWZpbmVkKEhBVkVfQ09ORklHX0gpICYmIEhBVkVf
Q09ORklHX0ggJiYgZGVmaW5lZChCVUlMRElOR19XSVRIX0NNQUtFKQorI2luY2x1ZGUgImNtYWtl
Y29uZmlnLmgiCisjZW5kaWYKKworI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgorCiAjaWZkZWYg
X19jcGx1c3BsdXMKICNkZWZpbmUgTlVMTCBfX251bGwKICNlbHNlCkBAIC0zNiwxMyArNDIsMTcg
QEAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0
cmluZy5oPgotI2luY2x1ZGUgPHN0cmluZ3MuaD4KKwogI2luY2x1ZGUgPHRpbWUuaD4KLSNpbmNs
dWRlIDxzeXMvcGFyYW0uaD4KLSNpbmNsdWRlIDxzeXMvdGltZS5oPgogI2luY2x1ZGUgPHN5cy90
aW1lYi5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogCisjaWYgIU9TKFdJTkRPV1MpCisjaW5j
bHVkZSA8c3RyaW5ncy5oPgorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy90
aW1lLmg+CisjZW5kaWYKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiAKICNpbmNsdWRlIDxsaXN0Pgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmMTdlYTM3ZWM3YmFmNDNlODJhNjNlMDgxYjRjZjAzY2U5
YzY0NDU1Li4wMmMwYzQ5MWM5YzkwNTgxNzZhOTlhNzBiMGMxOTc2MTdjOWZjMTU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMjI0NSwxMCArMjI0NSw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVf
U09VUkNFUwogCiBXRUJLSVRfQ09NUFVURV9TT1VSQ0VTKFdlYkNvcmUpCiAKLWlmIChNU1ZDKQot
ICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJDb3JlUHJlZml4LmgiICJXZWJD
b3JlUHJlZml4LmNwcCIgV2ViQ29yZV9TT1VSQ0VTKQotZW5kaWYgKCkKLQogV0VCS0lUX0NPUFlf
RklMRVMoV2ViQ29yZV9Db3B5UHJpdmF0ZUhlYWRlcnMKICAgICBERVNUSU5BVElPTiAke1dlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSU19ESVJ9L1dlYkNvcmUKICAgICBGSUxFUyAke1dl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSU30KQEAgLTIyNjUsNiArMjI2MSw3IEBAIGVu
ZGlmICgpCiAKIFdFQktJVF9GUkFNRVdPUksoV2ViQ29yZSkKIFdFQktJVF9GUkFNRVdPUktfVEFS
R0VUKFdlYkNvcmUpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihXZWJDb3JlIFdlYkNv
cmVQcmVmaXguaCkKIAogaWYgKEFQUExFKQogICAgIHNldF90YXJnZXRfcHJvcGVydGllcyhXZWJD
b3JlIFBST1BFUlRJRVMgTElOS19GTEFHUyAiLXN1Yl9saWJyYXJ5IGxpYm9iamMgLXVtYnJlbGxh
IFdlYktpdCAtYWxsb3dhYmxlX2NsaWVudCBXZWJDb3JlVGVzdFN1cHBvcnQgLWFsbG93YWJsZV9j
bGllbnQgV2ViS2l0MiAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRMZWdhY3kiKQpAQCAtMjI3OCwx
MCArMjI3NSw2IEBAIGlmIChDTUFLRV9DT01QSUxFUl9JU19HTlVDWFggQU5EICIke0xPV0VSQ0FT
RV9DTUFLRV9IT1NUX1NZU1RFTV9QUk9DRVNTT1J9IiBNQVRDCiAgICAgV0VCS0lUX0FERF9UQVJH
RVRfQ1hYX0ZMQUdTKFdlYkNvcmUgLWZuby10cmVlLXNyYSkKIGVuZGlmICgpCiAKLWlmIChNU1ZD
KQotICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJDb3JlVGVzdFN1cHBvcnRQ
cmVmaXguaCIgInRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmNwcCIgV2ViQ29y
ZVRlc3RTdXBwb3J0X1NPVVJDRVMpCi1lbmRpZiAoKQotCiBXRUJLSVRfQ09QWV9GSUxFUyhDb3B5
X1dlYkNvcmVUZXN0U3VwcG9ydFByaXZhdGVIZWFkZXJzCiAgICAgREVTVElOQVRJT04gJHtXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlNfRElSfS9XZWJDb3JlVGVzdFN1cHBvcnQKICAg
ICBGSUxFUyB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5oIHRlc3RpbmcvY29jb2EvV2Vi
QXJjaGl2ZUR1bXBTdXBwb3J0LmgKQEAgLTIzMDMsNiArMjI5Niw3IEBAIGVuZGlmICgpCiAKIFdF
QktJVF9GUkFNRVdPUksoV2ViQ29yZVRlc3RTdXBwb3J0KQogV0VCS0lUX0ZSQU1FV09SS19UQVJH
RVQoV2ViQ29yZVRlc3RTdXBwb3J0KQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2Vi
Q29yZVRlc3RTdXBwb3J0IHRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgpCiAK
IGlmICgke1dlYkNvcmVfTElCUkFSWV9UWVBFfSBNQVRDSEVTICJTSEFSRUQiKQogICAgIHNldF90
YXJnZXRfcHJvcGVydGllcyhXZWJDb3JlIFBST1BFUlRJRVMgVkVSU0lPTiAke1BST0pFQ1RfVkVS
U0lPTn0gU09WRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OX01BSk9SfSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaCBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVm
aXguaAppbmRleCBkMGM0NWY2NjJkZTc1ZDI2MGFjNmVhNjRhYjVkMDBjNWJjODQ5OThmLi5mNmRm
NDY2MWFkNmE5NTRhMzEzYmU2NDE5Y2Y0NWIxMDc2ZTZlM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZp
eC5oCkBAIC0xMTYsNiArMTE2LDI5IEBACiAKICNpZiBQTEFURk9STShXSU5fQ0FJUk8pCiAjaW5j
bHVkZSA8d2luZG93cy5oPgorCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkK
KworI2lmIFVTRShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby5oPgorI2VuZGlmCisKKyNpZiBVU0Uo
SEFSRkJVWlopCisjaW5jbHVkZSA8aGIuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5j
bHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisjaW5jbHVkZSA8
bGlic291cC9zb3VwLmg+CisjZW5kaWYKKworI2lmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVkZSA8
Z3N0L2dzdC5oPgorI2VuZGlmCisKICNlbHNlCiAKICNpZiBPUyhXSU5ET1dTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgKaW5k
ZXggNzViYTI0MDdlZTQxNTg1YWI5YmFhMzI0N2MyOGQxNDQ3ZWVjMjQxMi4uMTFjZTBmZjQ1Zjk3
OTY3ODlmYTEzMzc4ZjY5ZWVmMGJjNmJjNWE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oCkBAIC04OCw2ICs4OCwyNCBA
QAogCiAjaWYgUExBVEZPUk0oV0lOX0NBSVJPKQogI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNlbGlm
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorCisjaWYgVVNFKENBSVJPKQorI2luY2x1
ZGUgPGNhaXJvL2NhaXJvLmg+CisjZW5kaWYKKworI2lmIFVTRShHTElCKQorI2luY2x1ZGUgPGds
aWItb2JqZWN0Lmg+CisjZW5kaWYKKworI2lmIFVTRShTT1VQKQorI2luY2x1ZGUgPGxpYnNvdXAv
c291cC5oPgorI2VuZGlmCisKKyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1ZGUgPGdzdC9nc3Qu
aD4KKyNlbmRpZgorCiAjZWxzZQogCiAjaWYgT1MoV0lORE9XUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGNhYjRiZTBjZTIwMWYxNjBiMDIyMmZhMTI3MjcwMTA1MGUwMzJiMTIuLmIxMGJlNjRjY2Rj
NTU4MWJmNThmMzlhNTBjYmUyYzg3ODhhZmE2N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMzg3
LDExICszODcsNyBAQCBlbmRpZiAoKQogCiBtYWNybyhBRERfV0VCS0lUX1BSRUZJWF9IRUFERVIg
X3RhcmdldCkKICAgICBpZiAoV2ViS2l0X1VTRV9QUkVGSVhfSEVBREVSKQotICAgICAgICBnZXRf
dGFyZ2V0X3Byb3BlcnR5KE9MRF9DT01QSUxFX0ZMQUdTICR7X3RhcmdldH0gQ09NUElMRV9GTEFH
UykKLSAgICAgICAgaWYgKCR7T0xEX0NPTVBJTEVfRkxBR1N9IFNUUkVRVUFMICJPTERfQ09NUElM
RV9GTEFHUy1OT1RGT1VORCIpCi0gICAgICAgICAgICBzZXQoT0xEX0NPTVBJTEVfRkxBR1MgIiIp
Ci0gICAgICAgIGVuZGlmICgpCi0gICAgICAgIHNldF90YXJnZXRfcHJvcGVydGllcygke190YXJn
ZXR9IFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAiJHtPTERfQ09NUElMRV9GTEFHU30gLWluY2x1
ZGUgJHtXRUJLSVRfRElSfS9XZWJLaXQyUHJlZml4LmgiKQorICAgICAgICBXRUJLSVRfQUREX1BS
RUNPTVBJTEVEX0hFQURFUigke190YXJnZXR9IFdlYktpdDJQcmVmaXguaCkKICAgICBlbmRpZiAo
KQogZW5kbWFjcm8oKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS05hdGl2ZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2
ZUV2ZW50LmgKaW5kZXggNDRkNmU3NzlhMzZhN2YyNGRhNjg2MmJkOTRiNGViMmM0NzljMzI5MC4u
YzMyZDllNmJlYWU5MzY2NWIwNWU1NjE0Y2FkYjNmODZjZmU2ZTEzMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaApAQCAtNDQsNiArNDQsNyBAQCBz
dHJ1Y3QgTlNFdmVudDsKICNlbmRpZgogdHlwZWRlZiBOU0V2ZW50ICpXS05hdGl2ZUV2ZW50UHRy
OwogI2VsaWYgZGVmaW5lZChCVUlMRElOR19HVEtfXykKK3R5cGVkZWYgc3RydWN0IF9HZGtFdmVu
dCBHZGtFdmVudDsKIHR5cGVkZWYgY29uc3QgR2RrRXZlbnQqIFdLTmF0aXZlRXZlbnRQdHI7CiAj
ZWxpZiBkZWZpbmVkKFdJTjMyKQogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgdGFnTVNHKiBXS05hdGl2
ZUV2ZW50UHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmggYi9T
b3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaAppbmRleCA0MDZhYTgxMThmYTY2ZGFkZmMzNWI4
ZWJlNGJmMjQwOTNhY2Y2MWFmLi42YjI5Yjk5ODJlMzIzNWM4MTYyN2I0ZDc5ZjEwNjRlNDEzOGI3
MjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaApAQCAtNjMsNiArNjMsMzQgQEAKIAogI2VuZGlmIC8v
IFBMQVRGT1JNKENPQ09BKQogCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisK
KyNpZiBVU0UoQ0FJUk8pCisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KKyNlbmRpZgorCisjaWYg
VVNFKEhBUkZCVVpaKQorI2luY2x1ZGUgPGhiLmg+CisjZW5kaWYKKworI2lmIFVTRShHTElCKQor
I2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjZW5kaWYKKworI2lmIFVTRShTT1VQKQorI2luY2x1
ZGUgPGxpYnNvdXAvc291cC5oPgorI2VuZGlmCisKKyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1
ZGUgPGdzdC9nc3QuaD4KKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgPGd0
ay9ndGsuaD4KKyNlbmRpZgorCisjZW5kaWYgLy8gUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
UEUpCisKIC8qIFdoZW4gQysrIGV4Y2VwdGlvbnMgYXJlIGRpc2FibGVkLCB0aGUgQysrIGxpYnJh
cnkgZGVmaW5lcyB8dHJ5fCBhbmQgfGNhdGNofAogKiB0byBhbGxvdyBDKysgY29kZSB0aGF0IGV4
cGVjdHMgZXhjZXB0aW9ucyB0byBidWlsZC4gVGhlc2UgZGVmaW5pdGlvbnMKICogaW50ZXJmZXJl
IHdpdGggT2JqZWN0aXZlLUMrKyB1c2VzIG9mIE9iamVjdGl2ZS1DIGV4Y2VwdGlvbiBoYW5kbGVy
cywgd2hpY2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlzdHMudHh0CmluZGV4IDY1ODk2NzY5NTJjM2Q1
MGYyZmI3MDVkMjQzODNiNmMyZThmMWYyNjAuLjViYWY1YTZiNmNlNDA1ZWE5YjgyNWRkYzE0MDky
MGY4OTg5Y2FhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4dApAQCAtNDIsMTIgKzQy
LDEyIEBAIFdFQktJVF9GUkFNRVdPUktfREVDTEFSRShXZWJLaXRMZWdhY3kpCiBXRUJLSVRfSU5D
TFVERV9DT05GSUdfRklMRVNfSUZfRVhJU1RTKCkKIAogaWYgKE1TVkMpCi0gICAgV0VCS0lUX0FE
RF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktpdFByZWZpeC5oIiAid2luL1dlYktpdFByZWZpeC5j
cHAiIFdlYktpdExlZ2FjeV9TT1VSQ0VTKQogICAgIGxpc3QoQVBQRU5EIFdlYktpdExlZ2FjeV9T
T1VSQ0VTIHdpbi9XZWJLaXQucmVzb3VyY2VzL1dlYktpdC5yYykKICAgICBhZGRfZGVmaW5pdGlv
bnMoL0RXRUJLSVRfRVhQT1JUUyAvREZSQU1FV09SS19OQU1FPVdlYktpdExlZ2FjeSkKIGVuZGlm
ICgpCiAKIFdFQktJVF9GUkFNRVdPUksoV2ViS2l0TGVnYWN5KQorV0VCS0lUX0FERF9QUkVDT01Q
SUxFRF9IRUFERVIoV2ViS2l0TGVnYWN5IFdlYktpdFByZWZpeC5oKQogCiBpZiAoVEFSR0VUIFdl
YktpdExlZ2FjeUdVSUQpCiAgICAgYWRkX2RlcGVuZGVuY2llcyhXZWJLaXRMZWdhY3kgV2ViS2l0
TGVnYWN5R1VJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1
YXJ0ekNvcmVBZGRpdGlvbnMvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlzdHMudHh0CmluZGV4IGJjMDk3OThi
OGIwMmFmMjljMzgzYjc4N2U2ZjE3NmZhMjJlZmQ3M2IuLjdhZTdjMWMwMDczMTkwYjliMDBhYzdj
MTU0OTBhZjVmNTIwMGMyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9DTWFrZUxpc3RzLnR4dApAQCAt
NDEsOCArNDEsNiBAQCBmaWxlKENPUFkgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L0FQSS9X
S0NBQ0ZJbWFnZUludGVybmFsLmggREVTVElOQVRJT04gJHtERQogZmlsZShDT1BZICR7Q01BS0Vf
Q1VSUkVOVF9TT1VSQ0VfRElSfS9BUEkvV0tDQUNGVmlldy5oIERFU1RJTkFUSU9OICR7REVSSVZF
RF9TT1VSQ0VTX0RJUn0vV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucykKIGZpbGUoQ09QWSAke0NN
QUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vQVBJL1dLQ0FDRlZpZXdQcml2YXRlLmggREVTVElOQVRJ
T04gJHtERVJJVkVEX1NPVVJDRVNfRElSfS9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zKQogCi1X
RUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9uc1By
ZWZpeC5oIiAiV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9uc1ByZWZpeC5jcHAiIFdlYktpdFF1YXJ0
ekNvcmVBZGRpdGlvbnNfU09VUkNFUykKLQogaW5jbHVkZV9kaXJlY3RvcmllcygKICAgICAuCiAg
ICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMiCkBAIC01OSwzICs1
Nyw0IEBAIHRhcmdldF9saW5rX2xpYnJhcmllcyhXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zCiAg
ICAgQ29yZUdyYXBoaWNzJHtERUJVR19TVUZGSVh9CiAgICAgUXVhcnR6Q29yZSR7REVCVUdfU1VG
RklYfQogKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViS2l0UXVhcnR6Q29yZUFk
ZGl0aW9ucyBXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zUHJlZml4LmgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jv
cy5jbWFrZQppbmRleCAyMDBjZTQ4MTg4OWI3ZTIxZWM4NmNjNjVlYWEzYWUwZTljODdlNzNkLi40
YjU0ZWYyMGQwMjU5Mjg3ZWNhNTlkOWQ1NGVkZTAxYTZmNjJhOGMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNy
b3MuY21ha2UKQEAgLTkwLDM0ICs5MCwxNyBAQCBtYWNybyhXRUJLSVRfQUREX1NPVVJDRV9ERVBF
TkRFTkNJRVMgX3NvdXJjZSBfZGVwcykKICAgICB1bnNldChfdG1wKQogZW5kbWFjcm8oKQogCi1t
YWNybyhXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUiBfaGVhZGVyIF9jcHAgX3NvdXJjZSkK
LSAgICBpZiAoTVNWQykKLSAgICAgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChQcmVjb21waWxl
ZEJhc2VuYW1lICR7X2NwcH0gTkFNRV9XRSkKLSAgICAgICAgZmlsZShNQUtFX0RJUkVDVE9SWSAi
JHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7X3NvdXJjZX0iKQotICAgICAgICBzZXQoUHJl
Y29tcGlsZWRCaW5hcnkgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8ke19zb3VyY2V9LyR7
UHJlY29tcGlsZWRCYXNlbmFtZX0ucGNoIikKLSAgICAgICAgc2V0KF9zb3VyY2VzICR7JHtfc291
cmNlfX0pCiAKLSAgICAgICAgIyBjbGFuZy1jbCByZXF1aXJlcyAvRkkgd2l0aCAvWWMKLSAgICAg
ICAgaWYgKENPTVBJTEVSX0lTX0NMQU5HX0NMKQotICAgICAgICAgICAgc2V0X3NvdXJjZV9maWxl
c19wcm9wZXJ0aWVzKCR7X2NwcH0KLSAgICAgICAgICAgICAgICBQUk9QRVJUSUVTIENPTVBJTEVf
RkxBR1MgIi9ZY1wiJHtfaGVhZGVyfVwiIC9GcFwiJHtQcmVjb21waWxlZEJpbmFyeX1cIiAvRklc
IiR7X2hlYWRlcn1cIiIKLSAgICAgICAgICAgICAgICBPQkpFQ1RfT1VUUFVUUyAiJHtQcmVjb21w
aWxlZEJpbmFyeX0iKQotICAgICAgICBlbHNlICgpCi0gICAgICAgICAgICBzZXRfc291cmNlX2Zp
bGVzX3Byb3BlcnRpZXMoJHtfY3BwfQotICAgICAgICAgICAgICAgIFBST1BFUlRJRVMgQ09NUElM
RV9GTEFHUyAiL1ljXCIke19oZWFkZXJ9XCIgL0ZwXCIke1ByZWNvbXBpbGVkQmluYXJ5fVwiIgot
ICAgICAgICAgICAgICAgIE9CSkVDVF9PVVRQVVRTICIke1ByZWNvbXBpbGVkQmluYXJ5fSIpCi0g
ICAgICAgIGVuZGlmICgpCi0gICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygke19z
b3VyY2VzfQotICAgICAgICAgICAgUFJPUEVSVElFUyBDT01QSUxFX0ZMQUdTICIvWXVcIiR7X2hl
YWRlcn1cIiAvRklcIiR7X2hlYWRlcn1cIiAvRnBcIiR7UHJlY29tcGlsZWRCaW5hcnl9XCIiKQot
Ci0gICAgICAgIGZvcmVhY2ggKF9zcmMgJHtfc291cmNlc30pCi0gICAgICAgICAgICBXRUJLSVRf
QUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtfc3JjfSAke1ByZWNvbXBpbGVkQmluYXJ5fSkKLSAg
ICAgICAgZW5kZm9yZWFjaCAoKQotCi0gICAgICAgIGxpc3QoQVBQRU5EICR7X3NvdXJjZX0gJHtf
Y3BwfSkKLSAgICBlbmRpZiAoKQotICAgICNGSVhNRTogQWRkIHN1cHBvcnQgZm9yIFhjb2RlLgot
ZW5kbWFjcm8oKQoraWYgKENNQUtFX1ZFUlNJT04gVkVSU0lPTl9HUkVBVEVSX0VRVUFMIDMuMTcp
CisgICAgbWFjcm8oV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIgX3RhcmdldCBfaGVhZGVy
KQorICAgICAgICB0YXJnZXRfcHJlY29tcGlsZV9oZWFkZXJzKCR7X3RhcmdldH0gUFJJVkFURSAk
e19oZWFkZXJ9KQorICAgIGVuZG1hY3JvKCkKK2Vsc2UgKCkKKyAgICBtZXNzYWdlKFdBUk5JTkcg
IlByZWNvbXBpbGVkIGhlYWRlcnMgZGlzYWJsZWQsIENNYWtlIDMuMTcgb3IgbmV3ZXIgcmVxdWly
ZWQiKQorICAgIG1hY3JvKFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSIF90YXJnZXQgX2hl
YWRlcikKKyAgICAgICAgIyBOby1vcAorICAgIGVuZG1hY3JvKCkKK2VuZGlmICgpCiAKIG1hY3Jv
KFdFQktJVF9GUkFNRVdPUktfREVDTEFSRSBfdGFyZ2V0KQogICAgICMgYWRkX2xpYnJhcnkoKSB3
aXRob3V0IGFueSBzb3VyY2UgZmlsZXMgdHJpZ2dlcnMgQ01ha2Ugd2FybmluZwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDFiOWE5NWQ2MjY1ZjAw
MzZiZTdlY2YwYTYxZjg2MmYwZDk3MTA2NmMuLmMwNmM2NmVlODVjNzhjODRkNWQ2MzI2OGIwMjlm
MjQ4Y2FiMDcwNjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3Ry
byAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21w
aWxlZCBoZWFkZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICB3aXAKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNt
YWtlOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1GVFcuY21ha2U6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdpbi5jbWFrZToKKwogMjAyMS0xMC0xNyAg
RGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCB0ZXN0cyBm
b3IgV1RGOjpPU09iamVjdFB0ci9hZG9wdE9TT2JqZWN0IGluIENvY29hIHdpdGggYW5kIHdpdGhv
dXQgQVJDCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9DTWFrZUxpc3RzLnR4dCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0CmluZGV4IGUyNDEwMTAzN2I2ZWE4
ODkxNmUxZDg5MWJiNmM3NjBhMzQyNTA4ZmEuLjQ2MjE1MGRiMDM1ZjAwNmI1NGNiMzE1NGY3ODI5
MzdmZjBiYzNhMmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0CkBAIC02Nyw2ICs2
Nyw3IEBAIGxpc3QoQVBQRU5EIER1bXBSZW5kZXJUcmVlX1NPVVJDRVMKIFdFQktJVF9FWEVDVVRB
QkxFX0RFQ0xBUkUoRHVtcFJlbmRlclRyZWUpCiBXRUJLSVRfSU5DTFVERV9DT05GSUdfRklMRVNf
SUZfRVhJU1RTKCkKIFdFQktJVF9FWEVDVVRBQkxFKER1bXBSZW5kZXJUcmVlKQorV0VCS0lUX0FE
RF9QUkVDT01QSUxFRF9IRUFERVIoRHVtcFJlbmRlclRyZWUgRHVtcFJlbmRlclRyZWVQcmVmaXgu
aCkKIAogaWYgKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIGFkZF9zdWJkaXJlY3Rv
cnkoVGVzdE5ldHNjYXBlUGx1Z0luKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
UGxhdGZvcm1XaW4uY21ha2UgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFr
ZQppbmRleCBmZDA2NTJiNDNmNWMwYjllMjE5YzNmZDc1YTkzM2YxMDA1OTA2ODBhLi5iNTI0ZTIw
YTM2NGZkZjRlNDAyNDRhODQ1YWMyYzg1Y2ZmNDJiYzAxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9Q
bGF0Zm9ybVdpbi5jbWFrZQpAQCAtNzIsNyArNzIsNiBAQCBlbHNlICgpCiAgICAgZW5kaWYgKCkK
IGVuZGlmICgpCiAKLVdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJEdW1wUmVuZGVyVHJl
ZVByZWZpeC5oIiAid2luL0R1bXBSZW5kZXJUcmVlUHJlZml4LmNwcCIgRHVtcFJlbmRlclRyZWVf
U09VUkNFUykKIHNldChDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICIke0NNQUtFX1NIQVJFRF9M
SU5LRVJfRkxBR1N9ICR7TVNWQ19SVU5USU1FX0xJTktFUl9GTEFHU30iKQogCiBXRUJLSVRfV1JB
UF9FWEVDVVRBQkxFKER1bXBSZW5kZXJUcmVlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3Rz
LnR4dAppbmRleCBlOWM0NTE4YTVmNGZlNGUyZTRiOWMzNTlhMTNhOTU1MmRlYzBjNTI1Li41ZWY5
MTA2ZGIwZDdhOTJiNDk5ZTNmYmM1MWUzMDFmMjRhNjQzMGEwIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvQ01ha2VMaXN0cy50eHQKQEAgLTE0MSw2ICsxNDEsNyBAQCB0YXJnZXRfbGlua19saWJyYXJp
ZXMoVGVzdFJ1bm5lckluamVjdGVkQnVuZGxlIFBSSVZBVEUgJHtXZWJLaXRUZXN0UnVubmVySW5q
ZWN0ZQogYWRkX2RlcGVuZGVuY2llcyhUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUgV2ViS2l0VGVz
dFJ1bm5lckluamVjdGVkQnVuZGxlQmluZGluZ3MpCiAKIFdFQktJVF9FWEVDVVRBQkxFKFdlYktp
dFRlc3RSdW5uZXIpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihXZWJLaXRUZXN0UnVu
bmVyIFdlYktpdFRlc3RSdW5uZXJQcmVmaXguaCkKIAogaWYgKENPTVBJTEVSX0lTX0dDQ19PUl9D
TEFORykKICAgICBXRUJLSVRfQUREX1RBUkdFVF9DWFhfRkxBR1MoVGVzdFJ1bm5lckluamVjdGVk
QnVuZGxlIC1Xbm8tdW51c2VkLXBhcmFtZXRlcikKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvUGxhdGZvcm1GVFcuY21ha2UgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRm
b3JtRlRXLmNtYWtlCmluZGV4IDZmMWM5NjczYjNiZmYzM2NiODQxN2ZhY2E1YzczZjU2Y2ZhZDhk
NjcuLjE0ZWM1NzMwZDJmY2UyMzQzYTFhNzFjYTk5ODcyNmQzOTFjNGIxZTkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1GVFcuY21ha2UKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZQpAQCAtMjksOCArMjksNiBAQCBsaXN0KEFQ
UEVORCBXZWJLaXRUZXN0UnVubmVyX0xJQlJBUklFUwogICAgIE9sZWFjYwogKQogCi1XRUJLSVRf
QUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oIiAid2luL1dl
YktpdFRlc3RSdW5uZXJQcmVmaXguY3BwIiBXZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMpCi0KIHNl
dChDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICIke0NNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1N9
ICR7TVNWQ19SVU5USU1FX0xJTktFUl9GTEFHU30iKQogCiBXRUJLSVRfV1JBUF9FWEVDVVRBQkxF
KFdlYktpdFRlc3RSdW5uZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxh
dGZvcm1XaW4uY21ha2UgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2luLmNtYWtl
CmluZGV4IGNhNDk3OTJlOWRkMWRiZDRlZDRjYTIyNjk0YzVjY2I4MzY4YThkZWEuLmFiNjY0NmEw
NzM2YjQzYzMzMGFkYzhlNGZmYWE2YmQ5YmM1ZDhiNzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtMzQsOCArMzQsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXRU
ZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfTElCUkFSSUVTCiAgICAgJDxUQVJHRVRfT0JKRUNUUzpX
ZWJDb3JlVGVzdFN1cHBvcnQ+CiApCiAKLVdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJX
ZWJLaXRUZXN0UnVubmVyUHJlZml4LmgiICJ3aW4vV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5jcHAi
IFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUykKLQogc2V0KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxB
R1MgIiR7Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHU30gJHtNU1ZDX1JVTlRJTUVfTElOS0VSX0ZM
QUdTfSIpCiAKIFdFQktJVF9XUkFQX0VYRUNVVEFCTEUoV2ViS2l0VGVzdFJ1bm5lcgpkaWZmIC0t
Z2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDdhMDFlMjE2NDQ0YWU1YWE0MWQ4NWZk
ZmY5NzZjOWY4MWZmZGM3YjIuLmEzNTZhNWRhNGE4ZTNlODllM2FjZTdlZWU3Y2NlYzM2MzE1MTc0
MTQgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aXAKKworICAg
ICAgICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2U6CisKIDIwMjEtMTAtMTggIE1p
Z3VlbCBHb21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgbXkgZ2l0aHVi
IHVzZXJuYW1lIHRvIGNvbnRyaWJ1dG9ycy5qc29uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441649</attachid>
            <date>2021-10-18 15:34:20 -0700</date>
            <delta_ts>2021-10-19 12:27:27 -0700</delta_ts>
            <desc>WIP Patch v8</desc>
            <filename>bug-139438-20211019013419.patch</filename>
            <type>text/plain</type>
            <size>18669</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZWYwZTQ0YjcyYTFhOGNjMTkwZTE4ZWRmMTg2NWZlOTFkY2M5YzYzLi44ZWEzM2I5N2ZhMGQzYzFj
ZDY1MjVhNzNlZTc4MDdiYTUwZTQ5ZTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJz
IChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3
aXAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDIxLTEwLTE4ICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUHV0QnlWYWwncyBjaGls
ZDUgc2hvdWxkIGJlIEtub3duSW50MzJVc2UgLyBJbnQ1MlJlcFVzZSBpbiBGVEwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA5ZWQ4ZmQ3YmZmYWVmODNkMzRmMzUwZjU0OThmOWVlMDM2NmFkM2U1Li5mYjdhYmM2OTkx
ODk0OWJiMjY0ZGI3NGM5NGU0NTI3OTMwOGMxODZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNv
bT4KKworICAgICAgICBbQ01ha2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBXZWJDb3JlUHJlZml4Lmg6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJDb3Jl
VGVzdFN1cHBvcnRQcmVmaXguaDoKKwogMjAyMS0xMC0xNyAgRGVhbiBKYWNrc29uICA8ZGlub0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYlhSXSBTdHVicyBmb3IgV2ViWFIgSGFuZCBJbnB1dCBN
b2R1bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggMTMxZTNhMDkwMzUzMTcwMTdlNDZkODRiNjFkOGVhNGYxZTJmMmZm
Ni4uMjJiNzc3ZGI5OTgyMjQyZmM3ZGJjOGIyYjEzNWJkZjFiZWJmOGZmYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJl
ekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFk
ZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICB3aXAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYktpdDJQcmVm
aXguaDoKKwogMjAyMS0xMC0xOCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFVzZS1hZnRlci1tb3ZlIG9mIG1fc29ja2V0cyBpbiBOZXR3b3JrUlRDUHJvdmlk
ZXI6OmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggN2JlNDk4YzhhMTViNGEyMGI4NDBm
ZjcxYTVkYTkxYjc1ZTlmZWQwYy4uMDVmNGViZjkzNDhmNGFiMjhkOGM5OWJiY2IxMzliYWZiOTAy
MTQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMC0xOCAg
QWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtD
TWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aXAKKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorCiAyMDIxLTEwLTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHVwIHByZXZpb3VzIGNvbW1pdC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZwppbmRleCA0ODJmN2IxNzNkM2U4MmUyZGZmYzc5NzcyOWNjNmNlOWZkZjI3
YWUzLi5lMjdiMGVkZDM3ODg4YjkwMDczZjFiZWY3NThhYzViYmIwYTZlNWViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2VdIEVu
YWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAgICAgICAgKiBXZWJLaXRRdWFydHpDb3Jl
QWRkaXRpb25zL0NNYWtlTGlzdHMudHh0OgorCiAyMDIxLTEwLTExICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRE9NVGltZVN0YW1wIGlzIG5vdyBFcG9jaFRpbWVT
dGFtcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ3MGJhNTJkNjFmZGYw
OTk1Y2IxYTIyYjBkZmFmZDhlMmUwYmQzZGMuLjE1NDYyOGZlMzRkYTg2YmIyNzEwMmI3MmQzODAz
NzYwYWY5MzI3MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE1MDIs
NiArMTUwMiw3IEBAIGVuZGlmICgpCiBXRUJLSVRfQ09NUFVURV9TT1VSQ0VTKEphdmFTY3JpcHRD
b3JlKQogV0VCS0lUX0ZSQU1FV09SSyhKYXZhU2NyaXB0Q29yZSkKIFdFQktJVF9GUkFNRVdPUktf
VEFSR0VUKEphdmFTY3JpcHRDb3JlKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoSmF2
YVNjcmlwdENvcmUgSmF2YVNjcmlwdENvcmVQcmVmaXguaCkKIAogaWYgKE5PVCAiJHtQT1JUfSIg
U1RSRVFVQUwgIk1hYyIpCiAgICAgaWYgKCR7SmF2YVNjcmlwdENvcmVfTElCUkFSWV9UWVBFfSBT
VFJFUVVBTCAiU0hBUkVEIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZVByZWZpeC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
UHJlZml4LmgKaW5kZXggY2I3NWExODQ1MDdjZTU0OTZmYzA4NDhlNjVmMWU3MjU4NTIwMDMyMi4u
MThhMDcyMjAwZjgzY2M5ZjQxYTYxOWJmMjMyOTY2Y2NkMzY0ZjNiNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmgKQEAgLTIzLDYgKzIzLDEyIEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKKyNpZiBkZWZpbmVkKEhBVkVfQ09ORklHX0gpICYmIEhBVkVf
Q09ORklHX0ggJiYgZGVmaW5lZChCVUlMRElOR19XSVRIX0NNQUtFKQorI2luY2x1ZGUgImNtYWtl
Y29uZmlnLmgiCisjZW5kaWYKKworI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgorCiAjaWZkZWYg
X19jcGx1c3BsdXMKICNkZWZpbmUgTlVMTCBfX251bGwKICNlbHNlCkBAIC0zNiwxMyArNDIsMTcg
QEAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0
cmluZy5oPgotI2luY2x1ZGUgPHN0cmluZ3MuaD4KKwogI2luY2x1ZGUgPHRpbWUuaD4KLSNpbmNs
dWRlIDxzeXMvcGFyYW0uaD4KLSNpbmNsdWRlIDxzeXMvdGltZS5oPgogI2luY2x1ZGUgPHN5cy90
aW1lYi5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogCisjaWYgIU9TKFdJTkRPV1MpCisjaW5j
bHVkZSA8c3RyaW5ncy5oPgorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy90
aW1lLmg+CisjZW5kaWYKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiAKICNpbmNsdWRlIDxsaXN0Pgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmMTdlYTM3ZWM3YmFmNDNlODJhNjNlMDgxYjRjZjAzY2U5
YzY0NDU1Li4wMmMwYzQ5MWM5YzkwNTgxNzZhOTlhNzBiMGMxOTc2MTdjOWZjMTU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMjI0NSwxMCArMjI0NSw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVf
U09VUkNFUwogCiBXRUJLSVRfQ09NUFVURV9TT1VSQ0VTKFdlYkNvcmUpCiAKLWlmIChNU1ZDKQot
ICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJDb3JlUHJlZml4LmgiICJXZWJD
b3JlUHJlZml4LmNwcCIgV2ViQ29yZV9TT1VSQ0VTKQotZW5kaWYgKCkKLQogV0VCS0lUX0NPUFlf
RklMRVMoV2ViQ29yZV9Db3B5UHJpdmF0ZUhlYWRlcnMKICAgICBERVNUSU5BVElPTiAke1dlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSU19ESVJ9L1dlYkNvcmUKICAgICBGSUxFUyAke1dl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSU30KQEAgLTIyNjUsNiArMjI2MSw3IEBAIGVu
ZGlmICgpCiAKIFdFQktJVF9GUkFNRVdPUksoV2ViQ29yZSkKIFdFQktJVF9GUkFNRVdPUktfVEFS
R0VUKFdlYkNvcmUpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihXZWJDb3JlIFdlYkNv
cmVQcmVmaXguaCkKIAogaWYgKEFQUExFKQogICAgIHNldF90YXJnZXRfcHJvcGVydGllcyhXZWJD
b3JlIFBST1BFUlRJRVMgTElOS19GTEFHUyAiLXN1Yl9saWJyYXJ5IGxpYm9iamMgLXVtYnJlbGxh
IFdlYktpdCAtYWxsb3dhYmxlX2NsaWVudCBXZWJDb3JlVGVzdFN1cHBvcnQgLWFsbG93YWJsZV9j
bGllbnQgV2ViS2l0MiAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRMZWdhY3kiKQpAQCAtMjI3OCwx
MCArMjI3NSw2IEBAIGlmIChDTUFLRV9DT01QSUxFUl9JU19HTlVDWFggQU5EICIke0xPV0VSQ0FT
RV9DTUFLRV9IT1NUX1NZU1RFTV9QUk9DRVNTT1J9IiBNQVRDCiAgICAgV0VCS0lUX0FERF9UQVJH
RVRfQ1hYX0ZMQUdTKFdlYkNvcmUgLWZuby10cmVlLXNyYSkKIGVuZGlmICgpCiAKLWlmIChNU1ZD
KQotICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJDb3JlVGVzdFN1cHBvcnRQ
cmVmaXguaCIgInRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmNwcCIgV2ViQ29y
ZVRlc3RTdXBwb3J0X1NPVVJDRVMpCi1lbmRpZiAoKQotCiBXRUJLSVRfQ09QWV9GSUxFUyhDb3B5
X1dlYkNvcmVUZXN0U3VwcG9ydFByaXZhdGVIZWFkZXJzCiAgICAgREVTVElOQVRJT04gJHtXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlNfRElSfS9XZWJDb3JlVGVzdFN1cHBvcnQKICAg
ICBGSUxFUyB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5oIHRlc3RpbmcvY29jb2EvV2Vi
QXJjaGl2ZUR1bXBTdXBwb3J0LmgKQEAgLTIzMDMsNiArMjI5Niw3IEBAIGVuZGlmICgpCiAKIFdF
QktJVF9GUkFNRVdPUksoV2ViQ29yZVRlc3RTdXBwb3J0KQogV0VCS0lUX0ZSQU1FV09SS19UQVJH
RVQoV2ViQ29yZVRlc3RTdXBwb3J0KQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2Vi
Q29yZVRlc3RTdXBwb3J0IHRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgpCiAK
IGlmICgke1dlYkNvcmVfTElCUkFSWV9UWVBFfSBNQVRDSEVTICJTSEFSRUQiKQogICAgIHNldF90
YXJnZXRfcHJvcGVydGllcyhXZWJDb3JlIFBST1BFUlRJRVMgVkVSU0lPTiAke1BST0pFQ1RfVkVS
U0lPTn0gU09WRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OX01BSk9SfSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaCBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVm
aXguaAppbmRleCBkMGM0NWY2NjJkZTc1ZDI2MGFjNmVhNjRhYjVkMDBjNWJjODQ5OThmLi5mNmRm
NDY2MWFkNmE5NTRhMzEzYmU2NDE5Y2Y0NWIxMDc2ZTZlM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZp
eC5oCkBAIC0xMTYsNiArMTE2LDI5IEBACiAKICNpZiBQTEFURk9STShXSU5fQ0FJUk8pCiAjaW5j
bHVkZSA8d2luZG93cy5oPgorCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkK
KworI2lmIFVTRShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby5oPgorI2VuZGlmCisKKyNpZiBVU0Uo
SEFSRkJVWlopCisjaW5jbHVkZSA8aGIuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5j
bHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisjaW5jbHVkZSA8
bGlic291cC9zb3VwLmg+CisjZW5kaWYKKworI2lmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVkZSA8
Z3N0L2dzdC5oPgorI2VuZGlmCisKICNlbHNlCiAKICNpZiBPUyhXSU5ET1dTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgKaW5k
ZXggNzViYTI0MDdlZTQxNTg1YWI5YmFhMzI0N2MyOGQxNDQ3ZWVjMjQxMi4uMTFjZTBmZjQ1Zjk3
OTY3ODlmYTEzMzc4ZjY5ZWVmMGJjNmJjNWE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oCkBAIC04OCw2ICs4OCwyNCBA
QAogCiAjaWYgUExBVEZPUk0oV0lOX0NBSVJPKQogI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNlbGlm
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorCisjaWYgVVNFKENBSVJPKQorI2luY2x1
ZGUgPGNhaXJvL2NhaXJvLmg+CisjZW5kaWYKKworI2lmIFVTRShHTElCKQorI2luY2x1ZGUgPGds
aWItb2JqZWN0Lmg+CisjZW5kaWYKKworI2lmIFVTRShTT1VQKQorI2luY2x1ZGUgPGxpYnNvdXAv
c291cC5oPgorI2VuZGlmCisKKyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1ZGUgPGdzdC9nc3Qu
aD4KKyNlbmRpZgorCiAjZWxzZQogCiAjaWYgT1MoV0lORE9XUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGNhYjRiZTBjZTIwMWYxNjBiMDIyMmZhMTI3MjcwMTA1MGUwMzJiMTIuLmIxMGJlNjRjY2Rj
NTU4MWJmNThmMzlhNTBjYmUyYzg3ODhhZmE2N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMzg3
LDExICszODcsNyBAQCBlbmRpZiAoKQogCiBtYWNybyhBRERfV0VCS0lUX1BSRUZJWF9IRUFERVIg
X3RhcmdldCkKICAgICBpZiAoV2ViS2l0X1VTRV9QUkVGSVhfSEVBREVSKQotICAgICAgICBnZXRf
dGFyZ2V0X3Byb3BlcnR5KE9MRF9DT01QSUxFX0ZMQUdTICR7X3RhcmdldH0gQ09NUElMRV9GTEFH
UykKLSAgICAgICAgaWYgKCR7T0xEX0NPTVBJTEVfRkxBR1N9IFNUUkVRVUFMICJPTERfQ09NUElM
RV9GTEFHUy1OT1RGT1VORCIpCi0gICAgICAgICAgICBzZXQoT0xEX0NPTVBJTEVfRkxBR1MgIiIp
Ci0gICAgICAgIGVuZGlmICgpCi0gICAgICAgIHNldF90YXJnZXRfcHJvcGVydGllcygke190YXJn
ZXR9IFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAiJHtPTERfQ09NUElMRV9GTEFHU30gLWluY2x1
ZGUgJHtXRUJLSVRfRElSfS9XZWJLaXQyUHJlZml4LmgiKQorICAgICAgICBXRUJLSVRfQUREX1BS
RUNPTVBJTEVEX0hFQURFUigke190YXJnZXR9IFdlYktpdDJQcmVmaXguaCkKICAgICBlbmRpZiAo
KQogZW5kbWFjcm8oKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS05hdGl2ZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2
ZUV2ZW50LmgKaW5kZXggNDRkNmU3NzlhMzZhN2YyNGRhNjg2MmJkOTRiNGViMmM0NzljMzI5MC4u
OWNhMGFiM2QwZGFkODI3M2ViOThhM2ZmODU2OWRjMDc2NGQzNWRmOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaApAQCAtNDQsNiArNDQsNyBAQCBz
dHJ1Y3QgTlNFdmVudDsKICNlbmRpZgogdHlwZWRlZiBOU0V2ZW50ICpXS05hdGl2ZUV2ZW50UHRy
OwogI2VsaWYgZGVmaW5lZChCVUlMRElOR19HVEtfXykKK3R5cGVkZWYgdW5pb24gX0dka0V2ZW50
IEdka0V2ZW50OwogdHlwZWRlZiBjb25zdCBHZGtFdmVudCogV0tOYXRpdmVFdmVudFB0cjsKICNl
bGlmIGRlZmluZWQoV0lOMzIpCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCB0YWdNU0cqIFdLTmF0aXZl
RXZlbnRQdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0MlByZWZpeC5oCmluZGV4IDQwNmFhODExOGZhNjZkYWRmYzM1Yjhl
YmU0YmYyNDA5M2FjZjYxYWYuLjZiMjliOTk4MmUzMjM1YzgxNjI3YjRkNzlmMTA2NGU0MTM4Yjcy
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0MlByZWZpeC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0MlByZWZpeC5oCkBAIC02Myw2ICs2MywzNCBAQAogCiAjZW5kaWYgLy8g
UExBVEZPUk0oQ09DT0EpCiAKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKKwor
I2lmIFVTRShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby9jYWlyby5oPgorI2VuZGlmCisKKyNpZiBV
U0UoSEFSRkJVWlopCisjaW5jbHVkZSA8aGIuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisj
aW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisjaW5jbHVk
ZSA8bGlic291cC9zb3VwLmg+CisjZW5kaWYKKworI2lmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVk
ZSA8Z3N0L2dzdC5oPgorI2VuZGlmCisKKyNpZiBQTEFURk9STShHVEspCisjaW5jbHVkZSA8Z3Rr
L2d0ay5oPgorI2VuZGlmCisKKyNlbmRpZiAvLyBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQ
RSkKKwogLyogV2hlbiBDKysgZXhjZXB0aW9ucyBhcmUgZGlzYWJsZWQsIHRoZSBDKysgbGlicmFy
eSBkZWZpbmVzIHx0cnl8IGFuZCB8Y2F0Y2h8CiAqIHRvIGFsbG93IEMrKyBjb2RlIHRoYXQgZXhw
ZWN0cyBleGNlcHRpb25zIHRvIGJ1aWxkLiBUaGVzZSBkZWZpbml0aW9ucwogKiBpbnRlcmZlcmUg
d2l0aCBPYmplY3RpdmUtQysrIHVzZXMgb2YgT2JqZWN0aXZlLUMgZXhjZXB0aW9uIGhhbmRsZXJz
LCB3aGljaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvQ01ha2VMaXN0cy50eHQKaW5kZXggNjU4OTY3Njk1MmMzZDUw
ZjJmYjcwNWQyNDM4M2I2YzJlOGYxZjI2MC4uNWJhZjVhNmI2Y2U0MDVlYTliODI1ZGRjMTQwOTIw
Zjg5ODljYWE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlzdHMudHh0CkBAIC00MiwxMiArNDIs
MTIgQEAgV0VCS0lUX0ZSQU1FV09SS19ERUNMQVJFKFdlYktpdExlZ2FjeSkKIFdFQktJVF9JTkNM
VURFX0NPTkZJR19GSUxFU19JRl9FWElTVFMoKQogCiBpZiAoTVNWQykKLSAgICBXRUJLSVRfQURE
X1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0UHJlZml4LmgiICJ3aW4vV2ViS2l0UHJlZml4LmNw
cCIgV2ViS2l0TGVnYWN5X1NPVVJDRVMpCiAgICAgbGlzdChBUFBFTkQgV2ViS2l0TGVnYWN5X1NP
VVJDRVMgd2luL1dlYktpdC5yZXNvdXJjZXMvV2ViS2l0LnJjKQogICAgIGFkZF9kZWZpbml0aW9u
cygvRFdFQktJVF9FWFBPUlRTIC9ERlJBTUVXT1JLX05BTUU9V2ViS2l0TGVnYWN5KQogZW5kaWYg
KCkKIAogV0VCS0lUX0ZSQU1FV09SSyhXZWJLaXRMZWdhY3kpCitXRUJLSVRfQUREX1BSRUNPTVBJ
TEVEX0hFQURFUihXZWJLaXRMZWdhY3kgV2ViS2l0UHJlZml4LmgpCiAKIGlmIChUQVJHRVQgV2Vi
S2l0TGVnYWN5R1VJRCkKICAgICBhZGRfZGVwZW5kZW5jaWVzKFdlYktpdExlZ2FjeSBXZWJLaXRM
ZWdhY3lHVUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UXVh
cnR6Q29yZUFkZGl0aW9ucy9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvQ01ha2VMaXN0cy50eHQKaW5kZXggYmMwOTc5OGI4
YjAyYWYyOWMzODNiNzg3ZTZmMTc2ZmEyMmVmZDczYi4uN2FlN2MxYzAwNzMxOTBiOWIwMGFjN2Mx
NTQ5MGFmNWY1MjAwYzIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
S2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlzdHMudHh0CkBAIC00
MSw4ICs0MSw2IEBAIGZpbGUoQ09QWSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vQVBJL1dL
Q0FDRkltYWdlSW50ZXJuYWwuaCBERVNUSU5BVElPTiAke0RFCiBmaWxlKENPUFkgJHtDTUFLRV9D
VVJSRU5UX1NPVVJDRV9ESVJ9L0FQSS9XS0NBQ0ZWaWV3LmggREVTVElOQVRJT04gJHtERVJJVkVE
X1NPVVJDRVNfRElSfS9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zKQogZmlsZShDT1BZICR7Q01B
S0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9BUEkvV0tDQUNGVmlld1ByaXZhdGUuaCBERVNUSU5BVElP
TiAke0RFUklWRURfU09VUkNFU19ESVJ9L1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMpCiAKLVdF
QktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zUHJl
Zml4LmgiICJXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zUHJlZml4LmNwcCIgV2ViS2l0UXVhcnR6
Q29yZUFkZGl0aW9uc19TT1VSQ0VTKQotCiBpbmNsdWRlX2RpcmVjdG9yaWVzKAogICAgIC4KICAg
ICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycyIKQEAgLTU5LDMgKzU3
LDQgQEAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMKICAg
ICBDb3JlR3JhcGhpY3Mke0RFQlVHX1NVRkZJWH0KICAgICBRdWFydHpDb3JlJHtERUJVR19TVUZG
SVh9CiApCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihXZWJLaXRRdWFydHpDb3JlQWRk
aXRpb25zIFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNQcmVmaXguaCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9z
LmNtYWtlCmluZGV4IDIwMGNlNDgxODg5YjdlMjFlYzg2Y2M2NWVhYTNhZTBlOWM4N2U3M2QuLjRi
NTRlZjIwZDAyNTkyODdlY2E1OWQ5ZDU0ZWRlMDFhNmY2MmE4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jv
cy5jbWFrZQpAQCAtOTAsMzQgKzkwLDE3IEBAIG1hY3JvKFdFQktJVF9BRERfU09VUkNFX0RFUEVO
REVOQ0lFUyBfc291cmNlIF9kZXBzKQogICAgIHVuc2V0KF90bXApCiBlbmRtYWNybygpCiAKLW1h
Y3JvKFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSIF9oZWFkZXIgX2NwcCBfc291cmNlKQot
ICAgIGlmIChNU1ZDKQotICAgICAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KFByZWNvbXBpbGVk
QmFzZW5hbWUgJHtfY3BwfSBOQU1FX1dFKQotICAgICAgICBmaWxlKE1BS0VfRElSRUNUT1JZICIk
e0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vJHtfc291cmNlfSIpCi0gICAgICAgIHNldChQcmVj
b21waWxlZEJpbmFyeSAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7X3NvdXJjZX0vJHtQ
cmVjb21waWxlZEJhc2VuYW1lfS5wY2giKQotICAgICAgICBzZXQoX3NvdXJjZXMgJHske19zb3Vy
Y2V9fSkKIAotICAgICAgICAjIGNsYW5nLWNsIHJlcXVpcmVzIC9GSSB3aXRoIC9ZYwotICAgICAg
ICBpZiAoQ09NUElMRVJfSVNfQ0xBTkdfQ0wpCi0gICAgICAgICAgICBzZXRfc291cmNlX2ZpbGVz
X3Byb3BlcnRpZXMoJHtfY3BwfQotICAgICAgICAgICAgICAgIFBST1BFUlRJRVMgQ09NUElMRV9G
TEFHUyAiL1ljXCIke19oZWFkZXJ9XCIgL0ZwXCIke1ByZWNvbXBpbGVkQmluYXJ5fVwiIC9GSVwi
JHtfaGVhZGVyfVwiIgotICAgICAgICAgICAgICAgIE9CSkVDVF9PVVRQVVRTICIke1ByZWNvbXBp
bGVkQmluYXJ5fSIpCi0gICAgICAgIGVsc2UgKCkKLSAgICAgICAgICAgIHNldF9zb3VyY2VfZmls
ZXNfcHJvcGVydGllcygke19jcHB9Ci0gICAgICAgICAgICAgICAgUFJPUEVSVElFUyBDT01QSUxF
X0ZMQUdTICIvWWNcIiR7X2hlYWRlcn1cIiAvRnBcIiR7UHJlY29tcGlsZWRCaW5hcnl9XCIiCi0g
ICAgICAgICAgICAgICAgT0JKRUNUX09VVFBVVFMgIiR7UHJlY29tcGlsZWRCaW5hcnl9IikKLSAg
ICAgICAgZW5kaWYgKCkKLSAgICAgICAgc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7X3Nv
dXJjZXN9Ci0gICAgICAgICAgICBQUk9QRVJUSUVTIENPTVBJTEVfRkxBR1MgIi9ZdVwiJHtfaGVh
ZGVyfVwiIC9GSVwiJHtfaGVhZGVyfVwiIC9GcFwiJHtQcmVjb21waWxlZEJpbmFyeX1cIiIpCi0K
LSAgICAgICAgZm9yZWFjaCAoX3NyYyAke19zb3VyY2VzfSkKLSAgICAgICAgICAgIFdFQktJVF9B
RERfU09VUkNFX0RFUEVOREVOQ0lFUygke19zcmN9ICR7UHJlY29tcGlsZWRCaW5hcnl9KQotICAg
ICAgICBlbmRmb3JlYWNoICgpCi0KLSAgICAgICAgbGlzdChBUFBFTkQgJHtfc291cmNlfSAke19j
cHB9KQotICAgIGVuZGlmICgpCi0gICAgI0ZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgWGNvZGUuCi1l
bmRtYWNybygpCitpZiAoQ01BS0VfVkVSU0lPTiBWRVJTSU9OX0dSRUFURVJfRVFVQUwgMy4xNykK
KyAgICBtYWNybyhXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUiBfdGFyZ2V0IF9oZWFkZXIp
CisgICAgICAgIHRhcmdldF9wcmVjb21waWxlX2hlYWRlcnMoJHtfdGFyZ2V0fSBQUklWQVRFICR7
X2hlYWRlcn0pCisgICAgZW5kbWFjcm8oKQorZWxzZSAoKQorICAgIG1lc3NhZ2UoV0FSTklORyAi
UHJlY29tcGlsZWQgaGVhZGVycyBkaXNhYmxlZCwgQ01ha2UgMy4xNyBvciBuZXdlciByZXF1aXJl
ZCIpCisgICAgbWFjcm8oV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIgX3RhcmdldCBfaGVh
ZGVyKQorICAgICAgICAjIE5vLW9wCisgICAgZW5kbWFjcm8oKQorZW5kaWYgKCkKIAogbWFjcm8o
V0VCS0lUX0ZSQU1FV09SS19ERUNMQVJFIF90YXJnZXQpCiAgICAgIyBhZGRfbGlicmFyeSgpIHdp
dGhvdXQgYW55IHNvdXJjZSBmaWxlcyB0cmlnZ2VycyBDTWFrZSB3YXJuaW5nCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWI5YTk1ZDYyNjVmMDAz
NmJlN2VjZjBhNjFmODYyZjBkOTcxMDY2Yy4uYzA2YzY2ZWU4NWM3OGM4NGQ1ZDYzMjY4YjAyOWYy
NDhjYWIwNzA2MCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEwLTE4ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJv
ICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0NNYWtlXSBFbmFibGUgcHJlLWNvbXBp
bGVkIGhlYWRlcnMgKFBDSCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzOTQzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIHdpcAorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21h
a2U6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2luLmNtYWtlOgorCiAyMDIxLTEwLTE3ICBE
YXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHRlc3RzIGZv
ciBXVEY6Ok9TT2JqZWN0UHRyL2Fkb3B0T1NPYmplY3QgaW4gQ29jb2Egd2l0aCBhbmQgd2l0aG91
dCBBUkMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0IGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTI0MTAxMDM3YjZlYTg4
OTE2ZTFkODkxYmI2Yzc2MGEzNDI1MDhmYS4uNDYyMTUwZGIwMzVmMDA2YjU0Y2IzMTU0Zjc4Mjkz
N2ZmMGJjM2EyZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50
eHQKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKQEAgLTY3LDYgKzY3
LDcgQEAgbGlzdChBUFBFTkQgRHVtcFJlbmRlclRyZWVfU09VUkNFUwogV0VCS0lUX0VYRUNVVEFC
TEVfREVDTEFSRShEdW1wUmVuZGVyVHJlZSkKIFdFQktJVF9JTkNMVURFX0NPTkZJR19GSUxFU19J
Rl9FWElTVFMoKQogV0VCS0lUX0VYRUNVVEFCTEUoRHVtcFJlbmRlclRyZWUpCitXRUJLSVRfQURE
X1BSRUNPTVBJTEVEX0hFQURFUihEdW1wUmVuZGVyVHJlZSBEdW1wUmVuZGVyVHJlZVByZWZpeC5o
KQogCiBpZiAoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgYWRkX3N1YmRpcmVjdG9y
eShUZXN0TmV0c2NhcGVQbHVnSW4pCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9Q
bGF0Zm9ybVdpbi5jbWFrZSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtl
CmluZGV4IGZkMDY1MmI0M2Y1YzBiOWUyMTljM2ZkNzVhOTMzZjEwMDU5MDY4MGEuLmI1MjRlMjBh
MzY0ZmRmNGU0MDI0NGE4NDVhYzJjODVjZmY0MmJjMDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Bs
YXRmb3JtV2luLmNtYWtlCkBAIC03Miw3ICs3Miw2IEBAIGVsc2UgKCkKICAgICBlbmRpZiAoKQog
ZW5kaWYgKCkKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIkR1bXBSZW5kZXJUcmVl
UHJlZml4LmgiICJ3aW4vRHVtcFJlbmRlclRyZWVQcmVmaXguY3BwIiBEdW1wUmVuZGVyVHJlZV9T
T1VSQ0VTKQogc2V0KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hBUkVEX0xJ
TktFUl9GTEFHU30gJHtNU1ZDX1JVTlRJTUVfTElOS0VSX0ZMQUdTfSIpCiAKIFdFQktJVF9XUkFQ
X0VYRUNVVEFCTEUoRHVtcFJlbmRlclRyZWUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMu
dHh0CmluZGV4IGU5YzQ1MThhNWY0ZmU0ZTJlNGI5YzM1OWExM2E5NTUyZGVjMGM1MjUuLjVlZjkx
MDZkYjBkN2E5MmI0OTllM2ZiYzUxZTMwMWYyNGE2NDMwYTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9DTWFrZUxpc3RzLnR4dApAQCAtMTQxLDYgKzE0MSw3IEBAIHRhcmdldF9saW5rX2xpYnJhcmll
cyhUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUgUFJJVkFURSAke1dlYktpdFRlc3RSdW5uZXJJbmpl
Y3RlCiBhZGRfZGVwZW5kZW5jaWVzKFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZSBXZWJLaXRUZXN0
UnVubmVySW5qZWN0ZWRCdW5kbGVCaW5kaW5ncykKIAogV0VCS0lUX0VYRUNVVEFCTEUoV2ViS2l0
VGVzdFJ1bm5lcikKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKFdlYktpdFRlc3RSdW5u
ZXIgV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oKQogCiBpZiAoQ09NUElMRVJfSVNfR0NDX09SX0NM
QU5HKQogICAgIFdFQktJVF9BRERfVEFSR0VUX0NYWF9GTEFHUyhUZXN0UnVubmVySW5qZWN0ZWRC
dW5kbGUgLVduby11bnVzZWQtcGFyYW1ldGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZv
cm1GVFcuY21ha2UKaW5kZXggNmYxYzk2NzNiM2JmZjMzY2I4NDE3ZmFjYTVjNzNmNTZjZmFkOGQ2
Ny4uMTRlYzU3MzBkMmZjZTIzNDNhMWE3MWNhOTk4NzI2ZDM5MWM0YjFlOSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZQorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1BsYXRmb3JtRlRXLmNtYWtlCkBAIC0yOSw4ICsyOSw2IEBAIGxpc3QoQVBQ
RU5EIFdlYktpdFRlc3RSdW5uZXJfTElCUkFSSUVTCiAgICAgT2xlYWNjCiApCiAKLVdFQktJVF9B
RERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXRUZXN0UnVubmVyUHJlZml4LmgiICJ3aW4vV2Vi
S2l0VGVzdFJ1bm5lclByZWZpeC5jcHAiIFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUykKLQogc2V0
KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHU30g
JHtNU1ZDX1JVTlRJTUVfTElOS0VSX0ZMQUdTfSIpCiAKIFdFQktJVF9XUkFQX0VYRUNVVEFCTEUo
V2ViS2l0VGVzdFJ1bm5lcgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0
Zm9ybVdpbi5jbWFrZSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4uY21ha2UK
aW5kZXggY2E0OTc5MmU5ZGQxZGJkNGVkNGNhMjI2OTRjNWNjYjgzNjhhOGRlYS4uYWI2NjQ2YTA3
MzZiNDNjMzMwYWRjOGU0ZmZhYTZiZDliYzVkOGI3MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1BsYXRmb3JtV2luLmNtYWtlCkBAIC0zNCw4ICszNCw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdFRl
c3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9MSUJSQVJJRVMKICAgICAkPFRBUkdFVF9PQkpFQ1RTOldl
YkNvcmVUZXN0U3VwcG9ydD4KICkKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldl
YktpdFRlc3RSdW5uZXJQcmVmaXguaCIgIndpbi9XZWJLaXRUZXN0UnVubmVyUHJlZml4LmNwcCIg
V2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTKQotCiBzZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9GTEFH
UyAiJHtDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTfSAke01TVkNfUlVOVElNRV9MSU5LRVJfRkxB
R1N9IikKIAogV0VCS0lUX1dSQVBfRVhFQ1VUQUJMRShXZWJLaXRUZXN0UnVubmVyCmRpZmYgLS1n
aXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggN2EwMWUyMTY0NDRhZTVhYTQxZDg1ZmRm
Zjk3NmM5ZjgxZmZkYzdiMi4uYTM1NmE1ZGE0YThlM2U4OWUzYWNlN2VlZTdjY2VjMzYzMTUxNzQx
NCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIxLTEwLTE4ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+
CisKKyAgICAgICAgW0NNYWtlXSBFbmFibGUgcHJlLWNvbXBpbGVkIGhlYWRlcnMgKFBDSCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQzOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdpcAorCisgICAg
ICAgICogU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZToKKwogMjAyMS0xMC0xOCAgTWln
dWVsIEdvbWV6ICA8bWFnb21lekBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBteSBnaXRodWIg
dXNlcm5hbWUgdG8gY29udHJpYnV0b3JzLmpzb24K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441769</attachid>
            <date>2021-10-19 12:27:34 -0700</date>
            <delta_ts>2021-10-19 14:03:54 -0700</delta_ts>
            <desc>WIP Patch v9</desc>
            <filename>bug-139438-20211019222732.patch</filename>
            <type>text/plain</type>
            <size>18001</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NDlhNTc2MzMxOWU5ZGIyMDBhN2VlOTBkMDhjNTZhYWEzMTRjMmQ5Li45Y2YzZDEyNmViMWRmODQw
Njc3YjAyNWExYjUwMTJmOTI5MDk0NWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJz
IChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3
aXAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDIxLTEwLTE4ICBTYWFtIEJhcmF0
aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IGxvYWQgbWV0YWRhdGEgYmFz
ZSBwb2ludGVyIGluIEVYVFJBX0NUSV9USFVOS1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NDBjZTViODk4YmIz
NzU3NWM5OWYxNThhOWNiOTY3YmJkNjE2Y2ZlLi45N2UzOGU0YTIyZDJkMzBiMzU0MTE2OGMxZDhh
NDA4YjNkMzQ5ZTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMTAtMTggIEFk
cmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01h
a2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
UHJlZml4Lmg6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXgu
aDoKKwogMjAyMS0xMC0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBhIGNhbGxiYWNrIHRvIGtub3cgd2hlbiB0aGUgc2VydmljZSB3b3JrZXIgbG9hZHMg
dmlhIC1bV0tXZWJWaWV3IF9sb2FkU2VydmljZVdvcmtlcjpdCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1OGJiN2Vj
ZWIxNTUxM2ZjNjAwNjNjMmRjOTIyNzVjMzYxZWM0MDYuLmM1ZWMxMmMyZWRlYzBhMDliYzgzYTQy
MzI2ZWIxYjJmZWUyN2YwOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMTgg
IEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBb
Q01ha2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQyUHJlZml4Lmg6CisKIDIwMjEtMTAtMTggIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBjYWxsYmFjayB0byBr
bm93IHdoZW4gdGhlIHNlcnZpY2Ugd29ya2VyIGxvYWRzIHZpYSAtW1dLV2ViVmlldyBfbG9hZFNl
cnZpY2VXb3JrZXI6XQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwppbmRleCA3YmU0OThjOGExNWI0YTIwYjg0
MGZmNzFhNWRhOTFiNzVlOWZlZDBjLi4wNWY0ZWJmOTM0OGY0YWIyOGQ4Yzk5YmJjYjEzOWJhZmI5
MDIxNDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTEwLTE4
ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0NNYWtlXSBFbmFibGUgcHJlLWNvbXBpbGVkIGhlYWRlcnMgKFBDSCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQzOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdpcAorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisKIDIwMjEtMTAtMTQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCBmaXggdXAgcHJldmlvdXMgY29tbWl0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCmluZGV4IDQ4MmY3YjE3M2QzZTgyZTJkZmZjNzk3NzI5Y2M2Y2U5ZmRm
MjdhZTMuLmUyN2IwZWRkMzc4ODhiOTAwNzNmMWJlZjc1OGFjNWJiYjBhNmU1ZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMC0xOCAgQWRyaWFu
IFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0g
RW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aXAKKworICAgICAgICAqIFdlYktpdFF1YXJ0ekNv
cmVBZGRpdGlvbnMvQ01ha2VMaXN0cy50eHQ6CisKIDIwMjEtMTAtMTEgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBET01UaW1lU3RhbXAgaXMgbm93IEVwb2NoVGlt
ZVN0YW1wCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDcwYmE1MmQ2MWZk
ZjA5OTVjYjFhMjJiMGRmYWZkOGUyZTBiZDNkYy4uYjQzNWIzNmNmNjMyZjE1YjExMmU0N2M1NGRm
OWIzNTEyNjMzMmI4OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTUw
Myw2ICsxNTAzLDExIEBAIFdFQktJVF9DT01QVVRFX1NPVVJDRVMoSmF2YVNjcmlwdENvcmUpCiBX
RUJLSVRfRlJBTUVXT1JLKEphdmFTY3JpcHRDb3JlKQogV0VCS0lUX0ZSQU1FV09SS19UQVJHRVQo
SmF2YVNjcmlwdENvcmUpCiAKK2lmIChOT1QgV1RGX09TX1dJTkRPV1MpCisgICAgIyBUT0RPOiBU
aGUgcHJlZml4IGhlYWRlciBoYXMgVW5peGlzbXMsIG5lZWRzIHR3ZWFraW5nIHRvIGJlIHVzYWJs
ZSBvbiBXaW5kb3dzCisgICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoSmF2YVNjcmlw
dENvcmUgSmF2YVNjcmlwdENvcmVQcmVmaXguaCkKK2VuZGlmICgpCisKIGlmIChOT1QgIiR7UE9S
VH0iIFNUUkVRVUFMICJNYWMiKQogICAgIGlmICgke0phdmFTY3JpcHRDb3JlX0xJQlJBUllfVFlQ
RX0gU1RSRVFVQUwgIlNIQVJFRCIpCiAgICAgICAgIFdFQktJVF9QT1BVTEFURV9MSUJSQVJZX1ZF
UlNJT04oSkFWQVNDUklQVENPUkUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGU1ZTIyMmQ0YzMz
NGUyYzJiMjhlODk2OTIwZGQ2OGUyOGNlY2VkODguLmNiYTAwMTQ4Yzg5NjBiZTQ3NDk3MDdlYjhh
MmJkNjNmYjIzZjNlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMjI4LDEwICsyMjI4LDYg
QEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNf
RElSfS9YTUxOYW1lcy5jcHApCiAKIFdFQktJVF9DT01QVVRFX1NPVVJDRVMoV2ViQ29yZSkKIAot
aWYgKE1TVkMpCi0gICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYkNvcmVQcmVm
aXguaCIgIldlYkNvcmVQcmVmaXguY3BwIiBXZWJDb3JlX1NPVVJDRVMpCi1lbmRpZiAoKQotCiBX
RUJLSVRfQ09QWV9GSUxFUyhXZWJDb3JlX0NvcHlQcml2YXRlSGVhZGVycwogICAgIERFU1RJTkFU
SU9OICR7V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0vV2ViQ29yZQogICAg
IEZJTEVTICR7V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTfQpAQCAtMjI0OCw2ICsy
MjQ0LDcgQEAgZW5kaWYgKCkKIAogV0VCS0lUX0ZSQU1FV09SSyhXZWJDb3JlKQogV0VCS0lUX0ZS
QU1FV09SS19UQVJHRVQoV2ViQ29yZSkKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKFdl
YkNvcmUgV2ViQ29yZVByZWZpeC5oKQogCiBpZiAoQVBQTEUpCiAgICAgc2V0X3RhcmdldF9wcm9w
ZXJ0aWVzKFdlYkNvcmUgUFJPUEVSVElFUyBMSU5LX0ZMQUdTICItc3ViX2xpYnJhcnkgbGlib2Jq
YyAtdW1icmVsbGEgV2ViS2l0IC1hbGxvd2FibGVfY2xpZW50IFdlYkNvcmVUZXN0U3VwcG9ydCAt
YWxsb3dhYmxlX2NsaWVudCBXZWJLaXQyIC1hbGxvd2FibGVfY2xpZW50IFdlYktpdExlZ2FjeSIp
CkBAIC0yMjYxLDEwICsyMjU4LDYgQEAgaWYgKENNQUtFX0NPTVBJTEVSX0lTX0dOVUNYWCBBTkQg
IiR7TE9XRVJDQVNFX0NNQUtFX0hPU1RfU1lTVEVNX1BST0NFU1NPUn0iIE1BVEMKICAgICBXRUJL
SVRfQUREX1RBUkdFVF9DWFhfRkxBR1MoV2ViQ29yZSAtZm5vLXRyZWUtc3JhKQogZW5kaWYgKCkK
IAotaWYgKE1TVkMpCi0gICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYkNvcmVU
ZXN0U3VwcG9ydFByZWZpeC5oIiAidGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXgu
Y3BwIiBXZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNFUykKLWVuZGlmICgpCi0KIFdFQktJVF9DT1BZ
X0ZJTEVTKENvcHlfV2ViQ29yZVRlc3RTdXBwb3J0UHJpdmF0ZUhlYWRlcnMKICAgICBERVNUSU5B
VElPTiAke1dlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSU19ESVJ9L1dlYkNvcmVUZXN0
U3VwcG9ydAogICAgIEZJTEVTIHRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmggdGVzdGlu
Zy9jb2NvYS9XZWJBcmNoaXZlRHVtcFN1cHBvcnQuaApAQCAtMjI4Niw2ICsyMjc5LDcgQEAgZW5k
aWYgKCkKIAogV0VCS0lUX0ZSQU1FV09SSyhXZWJDb3JlVGVzdFN1cHBvcnQpCiBXRUJLSVRfRlJB
TUVXT1JLX1RBUkdFVChXZWJDb3JlVGVzdFN1cHBvcnQpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVE
X0hFQURFUihXZWJDb3JlVGVzdFN1cHBvcnQgdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQ
cmVmaXguaCkKIAogaWYgKCR7V2ViQ29yZV9MSUJSQVJZX1RZUEV9IE1BVENIRVMgIlNIQVJFRCIp
CiAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFdlYkNvcmUgUFJPUEVSVElFUyBWRVJTSU9OICR7
UFJPSkVDVF9WRVJTSU9OfSBTT1ZFUlNJT04gJHtQUk9KRUNUX1ZFUlNJT05fTUFKT1J9KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZVByZWZpeC5oCmluZGV4IGQwYzQ1ZjY2MmRlNzVkMjYwYWM2ZWE2NGFiNWQwMGM1YmM4
NDk5OGYuLmY2ZGY0NjYxYWQ2YTk1NGEzMTNiZTY0MTljZjQ1YjEwNzZlNmUzYmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlUHJlZml4LmgKQEAgLTExNiw2ICsxMTYsMjkgQEAKIAogI2lmIFBMQVRGT1JNKFdJTl9D
QUlSTykKICNpbmNsdWRlIDx3aW5kb3dzLmg+CisKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQorCisjaWYgVVNFKENBSVJPKQorI2luY2x1ZGUgPGNhaXJvLmg+CisjZW5kaWYK
KworI2lmIFVTRShIQVJGQlVaWikKKyNpbmNsdWRlIDxoYi5oPgorI2VuZGlmCisKKyNpZiBVU0Uo
R0xJQikKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2VuZGlmCisKKyNpZiBVU0UoU09VUCkK
KyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdTVFJFQU1FUikK
KyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjZW5kaWYKKwogI2Vsc2UKIAogI2lmIE9TKFdJTkRPV1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9y
dFByZWZpeC5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQ
cmVmaXguaAppbmRleCA3NWJhMjQwN2VlNDE1ODVhYjliYWEzMjQ3YzI4ZDE0NDdlZWMyNDEyLi4x
MWNlMGZmNDVmOTc5Njc4OWZhMTMzNzhmNjllZWYwYmM2YmM1YTgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgKQEAgLTg4
LDYgKzg4LDI0IEBACiAKICNpZiBQTEFURk9STShXSU5fQ0FJUk8pCiAjaW5jbHVkZSA8d2luZG93
cy5oPgorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisKKyNpZiBVU0UoQ0FJ
Uk8pCisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisj
aW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisjaW5jbHVk
ZSA8bGlic291cC9zb3VwLmg+CisjZW5kaWYKKworI2lmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVk
ZSA8Z3N0L2dzdC5oPgorI2VuZGlmCisKICNlbHNlCiAKICNpZiBPUyhXSU5ET1dTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VM
aXN0cy50eHQKaW5kZXggY2FiNGJlMGNlMjAxZjE2MGIwMjIyZmExMjcyNzAxMDUwZTAzMmIxMi4u
YjEwYmU2NGNjZGM1NTgxYmY1OGYzOWE1MGNiZTJjODc4OGFmYTY3YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMu
dHh0CkBAIC0zODcsMTEgKzM4Nyw3IEBAIGVuZGlmICgpCiAKIG1hY3JvKEFERF9XRUJLSVRfUFJF
RklYX0hFQURFUiBfdGFyZ2V0KQogICAgIGlmIChXZWJLaXRfVVNFX1BSRUZJWF9IRUFERVIpCi0g
ICAgICAgIGdldF90YXJnZXRfcHJvcGVydHkoT0xEX0NPTVBJTEVfRkxBR1MgJHtfdGFyZ2V0fSBD
T01QSUxFX0ZMQUdTKQotICAgICAgICBpZiAoJHtPTERfQ09NUElMRV9GTEFHU30gU1RSRVFVQUwg
Ik9MRF9DT01QSUxFX0ZMQUdTLU5PVEZPVU5EIikKLSAgICAgICAgICAgIHNldChPTERfQ09NUElM
RV9GTEFHUyAiIikKLSAgICAgICAgZW5kaWYgKCkKLSAgICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0
aWVzKCR7X3RhcmdldH0gUFJPUEVSVElFUyBDT01QSUxFX0ZMQUdTICIke09MRF9DT01QSUxFX0ZM
QUdTfSAtaW5jbHVkZSAke1dFQktJVF9ESVJ9L1dlYktpdDJQcmVmaXguaCIpCisgICAgICAgIFdF
QktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCR7X3RhcmdldH0gV2ViS2l0MlByZWZpeC5oKQog
ICAgIGVuZGlmICgpCiBlbmRtYWNybygpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLTmF0aXZlRXZlbnQuaAppbmRleCA0NGQ2ZTc3OWEzNmE3ZjI0ZGE2ODYyYmQ5NGI0ZWIy
YzQ3OWMzMjkwLi45Y2EwYWIzZDBkYWQ4MjczZWI5OGEzZmY4NTY5ZGMwNzY0ZDM1ZGY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oCkBAIC00NCw2
ICs0NCw3IEBAIHN0cnVjdCBOU0V2ZW50OwogI2VuZGlmCiB0eXBlZGVmIE5TRXZlbnQgKldLTmF0
aXZlRXZlbnRQdHI7CiAjZWxpZiBkZWZpbmVkKEJVSUxESU5HX0dUS19fKQordHlwZWRlZiB1bmlv
biBfR2RrRXZlbnQgR2RrRXZlbnQ7CiB0eXBlZGVmIGNvbnN0IEdka0V2ZW50KiBXS05hdGl2ZUV2
ZW50UHRyOwogI2VsaWYgZGVmaW5lZChXSU4zMikKIHR5cGVkZWYgY29uc3Qgc3RydWN0IHRhZ01T
RyogV0tOYXRpdmVFdmVudFB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0MlBy
ZWZpeC5oIGIvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmgKaW5kZXggNDA2YWE4MTE4ZmE2
NmRhZGZjMzViOGViZTRiZjI0MDkzYWNmNjFhZi4uNmIyOWI5OTgyZTMyMzVjODE2MjdiNGQ3OWYx
MDY0ZTQxMzhiNzIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmgKQEAgLTYzLDYgKzYzLDM0IEBACiAK
ICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQorCisjaWYgVVNFKENBSVJPKQorI2luY2x1ZGUgPGNhaXJvL2NhaXJvLmg+CisjZW5k
aWYKKworI2lmIFVTRShIQVJGQlVaWikKKyNpbmNsdWRlIDxoYi5oPgorI2VuZGlmCisKKyNpZiBV
U0UoR0xJQikKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2VuZGlmCisKKyNpZiBVU0UoU09V
UCkKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdTVFJFQU1F
UikKKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdUSykKKyNp
bmNsdWRlIDxndGsvZ3RrLmg+CisjZW5kaWYKKworI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oV1BFKQorCiAvKiBXaGVuIEMrKyBleGNlcHRpb25zIGFyZSBkaXNhYmxlZCwgdGhl
IEMrKyBsaWJyYXJ5IGRlZmluZXMgfHRyeXwgYW5kIHxjYXRjaHwKICogdG8gYWxsb3cgQysrIGNv
ZGUgdGhhdCBleHBlY3RzIGV4Y2VwdGlvbnMgdG8gYnVpbGQuIFRoZXNlIGRlZmluaXRpb25zCiAq
IGludGVyZmVyZSB3aXRoIE9iamVjdGl2ZS1DKysgdXNlcyBvZiBPYmplY3RpdmUtQyBleGNlcHRp
b24gaGFuZGxlcnMsIHdoaWNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4dAppbmRleCA2NTg5
Njc2OTUyYzNkNTBmMmZiNzA1ZDI0MzgzYjZjMmU4ZjFmMjYwLi41YmFmNWE2YjZjZTQwNWVhOWI4
MjVkZGMxNDA5MjBmODk4OWNhYTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ01ha2VMaXN0cy50eHQKQEAg
LTQyLDEyICs0MiwxMiBAQCBXRUJLSVRfRlJBTUVXT1JLX0RFQ0xBUkUoV2ViS2l0TGVnYWN5KQog
V0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJTEVTX0lGX0VYSVNUUygpCiAKIGlmIChNU1ZDKQotICAg
IFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXRQcmVmaXguaCIgIndpbi9XZWJL
aXRQcmVmaXguY3BwIiBXZWJLaXRMZWdhY3lfU09VUkNFUykKICAgICBsaXN0KEFQUEVORCBXZWJL
aXRMZWdhY3lfU09VUkNFUyB3aW4vV2ViS2l0LnJlc291cmNlcy9XZWJLaXQucmMpCiAgICAgYWRk
X2RlZmluaXRpb25zKC9EV0VCS0lUX0VYUE9SVFMgL0RGUkFNRVdPUktfTkFNRT1XZWJLaXRMZWdh
Y3kpCiBlbmRpZiAoKQogCiBXRUJLSVRfRlJBTUVXT1JLKFdlYktpdExlZ2FjeSkKK1dFQktJVF9B
RERfUFJFQ09NUElMRURfSEVBREVSKFdlYktpdExlZ2FjeSBXZWJLaXRQcmVmaXguaCkKIAogaWYg
KFRBUkdFVCBXZWJLaXRMZWdhY3lHVUlEKQogICAgIGFkZF9kZXBlbmRlbmNpZXMoV2ViS2l0TGVn
YWN5IFdlYktpdExlZ2FjeUdVSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9DTWFrZUxpc3RzLnR4dAppbmRl
eCBiYzA5Nzk4YjhiMDJhZjI5YzM4M2I3ODdlNmYxNzZmYTIyZWZkNzNiLi43YWU3YzFjMDA3MzE5
MGI5YjAwYWM3YzE1NDkwYWY1ZjUyMDBjMjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvQ01ha2VMaXN0
cy50eHQKQEAgLTQxLDggKzQxLDYgQEAgZmlsZShDT1BZICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0Vf
RElSfS9BUEkvV0tDQUNGSW1hZ2VJbnRlcm5hbC5oIERFU1RJTkFUSU9OICR7REUKIGZpbGUoQ09Q
WSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vQVBJL1dLQ0FDRlZpZXcuaCBERVNUSU5BVElP
TiAke0RFUklWRURfU09VUkNFU19ESVJ9L1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMpCiBmaWxl
KENPUFkgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L0FQSS9XS0NBQ0ZWaWV3UHJpdmF0ZS5o
IERFU1RJTkFUSU9OICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViS2l0UXVhcnR6Q29yZUFkZGl0
aW9ucykKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktpdFF1YXJ0ekNvcmVB
ZGRpdGlvbnNQcmVmaXguaCIgIldlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNQcmVmaXguY3BwIiBX
ZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zX1NPVVJDRVMpCi0KIGluY2x1ZGVfZGlyZWN0b3JpZXMo
CiAgICAgLgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzIgpA
QCAtNTksMyArNTcsNCBAQCB0YXJnZXRfbGlua19saWJyYXJpZXMoV2ViS2l0UXVhcnR6Q29yZUFk
ZGl0aW9ucwogICAgIENvcmVHcmFwaGljcyR7REVCVUdfU1VGRklYfQogICAgIFF1YXJ0ekNvcmUk
e0RFQlVHX1NVRkZJWH0KICkKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKFdlYktpdFF1
YXJ0ekNvcmVBZGRpdGlvbnMgV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9uc1ByZWZpeC5oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9X
ZWJLaXRNYWNyb3MuY21ha2UKaW5kZXggMjAwY2U0ODE4ODliN2UyMWVjODZjYzY1ZWFhM2FlMGU5
Yzg3ZTczZC4uNGI1NGVmMjBkMDI1OTI4N2VjYTU5ZDlkNTRlZGUwMWE2ZjYyYThjMCAxMDA2NDQK
LS0tIGEvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2Uv
V2ViS2l0TWFjcm9zLmNtYWtlCkBAIC05MCwzNCArOTAsMTcgQEAgbWFjcm8oV0VCS0lUX0FERF9T
T1VSQ0VfREVQRU5ERU5DSUVTIF9zb3VyY2UgX2RlcHMpCiAgICAgdW5zZXQoX3RtcCkKIGVuZG1h
Y3JvKCkKIAotbWFjcm8oV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIgX2hlYWRlciBfY3Bw
IF9zb3VyY2UpCi0gICAgaWYgKE1TVkMpCi0gICAgICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQo
UHJlY29tcGlsZWRCYXNlbmFtZSAke19jcHB9IE5BTUVfV0UpCi0gICAgICAgIGZpbGUoTUFLRV9E
SVJFQ1RPUlkgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8ke19zb3VyY2V9IikKLSAgICAg
ICAgc2V0KFByZWNvbXBpbGVkQmluYXJ5ICIke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vJHtf
c291cmNlfS8ke1ByZWNvbXBpbGVkQmFzZW5hbWV9LnBjaCIpCi0gICAgICAgIHNldChfc291cmNl
cyAkeyR7X3NvdXJjZX19KQogCi0gICAgICAgICMgY2xhbmctY2wgcmVxdWlyZXMgL0ZJIHdpdGgg
L1ljCi0gICAgICAgIGlmIChDT01QSUxFUl9JU19DTEFOR19DTCkKLSAgICAgICAgICAgIHNldF9z
b3VyY2VfZmlsZXNfcHJvcGVydGllcygke19jcHB9Ci0gICAgICAgICAgICAgICAgUFJPUEVSVElF
UyBDT01QSUxFX0ZMQUdTICIvWWNcIiR7X2hlYWRlcn1cIiAvRnBcIiR7UHJlY29tcGlsZWRCaW5h
cnl9XCIgL0ZJXCIke19oZWFkZXJ9XCIiCi0gICAgICAgICAgICAgICAgT0JKRUNUX09VVFBVVFMg
IiR7UHJlY29tcGlsZWRCaW5hcnl9IikKLSAgICAgICAgZWxzZSAoKQotICAgICAgICAgICAgc2V0
X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7X2NwcH0KLSAgICAgICAgICAgICAgICBQUk9QRVJU
SUVTIENPTVBJTEVfRkxBR1MgIi9ZY1wiJHtfaGVhZGVyfVwiIC9GcFwiJHtQcmVjb21waWxlZEJp
bmFyeX1cIiIKLSAgICAgICAgICAgICAgICBPQkpFQ1RfT1VUUFVUUyAiJHtQcmVjb21waWxlZEJp
bmFyeX0iKQotICAgICAgICBlbmRpZiAoKQotICAgICAgICBzZXRfc291cmNlX2ZpbGVzX3Byb3Bl
cnRpZXMoJHtfc291cmNlc30KLSAgICAgICAgICAgIFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAi
L1l1XCIke19oZWFkZXJ9XCIgL0ZJXCIke19oZWFkZXJ9XCIgL0ZwXCIke1ByZWNvbXBpbGVkQmlu
YXJ5fVwiIikKLQotICAgICAgICBmb3JlYWNoIChfc3JjICR7X3NvdXJjZXN9KQotICAgICAgICAg
ICAgV0VCS0lUX0FERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7X3NyY30gJHtQcmVjb21waWxlZEJp
bmFyeX0pCi0gICAgICAgIGVuZGZvcmVhY2ggKCkKLQotICAgICAgICBsaXN0KEFQUEVORCAke19z
b3VyY2V9ICR7X2NwcH0pCi0gICAgZW5kaWYgKCkKLSAgICAjRklYTUU6IEFkZCBzdXBwb3J0IGZv
ciBYY29kZS4KLWVuZG1hY3JvKCkKK2lmIChDTUFLRV9WRVJTSU9OIFZFUlNJT05fR1JFQVRFUl9F
UVVBTCAzLjE3KQorICAgIG1hY3JvKFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSIF90YXJn
ZXQgX2hlYWRlcikKKyAgICAgICAgdGFyZ2V0X3ByZWNvbXBpbGVfaGVhZGVycygke190YXJnZXR9
IFBSSVZBVEUgJHtfaGVhZGVyfSkKKyAgICBlbmRtYWNybygpCitlbHNlICgpCisgICAgbWVzc2Fn
ZShXQVJOSU5HICJQcmVjb21waWxlZCBoZWFkZXJzIGRpc2FibGVkLCBDTWFrZSAzLjE3IG9yIG5l
d2VyIHJlcXVpcmVkIikKKyAgICBtYWNybyhXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUiBf
dGFyZ2V0IF9oZWFkZXIpCisgICAgICAgICMgTm8tb3AKKyAgICBlbmRtYWNybygpCitlbmRpZiAo
KQogCiBtYWNybyhXRUJLSVRfRlJBTUVXT1JLX0RFQ0xBUkUgX3RhcmdldCkKICAgICAjIGFkZF9s
aWJyYXJ5KCkgd2l0aG91dCBhbnkgc291cmNlIGZpbGVzIHRyaWdnZXJzIENNYWtlIHdhcm5pbmcK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhZTIy
YWIwNjIxNjRkYzA5ZWRmNjVjMWFiYTQ2ZmQ1Y2FiODNiOTBkLi5jMDYxMTY0YWU3MWMyZDcwZDdk
NDUzMmJhYTZhNzllZGFjZjQwNDhmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQZXJl
eiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2VdIEVuYWJs
ZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9QbGF0
Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtRlRXLmNt
YWtlOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4uY21ha2U6CisKIDIw
MjEtMTAtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
YSBjYWxsYmFjayB0byBrbm93IHdoZW4gdGhlIHNlcnZpY2Ugd29ya2VyIGxvYWRzIHZpYSAtW1dL
V2ViVmlldyBfbG9hZFNlcnZpY2VXb3JrZXI6XQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9DTWFrZUxpc3RzLnR4
dAppbmRleCBlMjQxMDEwMzdiNmVhODg5MTZlMWQ4OTFiYjZjNzYwYTM0MjUwOGZhLi40NjIxNTBk
YjAzNWYwMDZiNTRjYjMxNTRmNzgyOTM3ZmYwYmMzYTJkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9DTWFr
ZUxpc3RzLnR4dApAQCAtNjcsNiArNjcsNyBAQCBsaXN0KEFQUEVORCBEdW1wUmVuZGVyVHJlZV9T
T1VSQ0VTCiBXRUJLSVRfRVhFQ1VUQUJMRV9ERUNMQVJFKER1bXBSZW5kZXJUcmVlKQogV0VCS0lU
X0lOQ0xVREVfQ09ORklHX0ZJTEVTX0lGX0VYSVNUUygpCiBXRUJLSVRfRVhFQ1VUQUJMRShEdW1w
UmVuZGVyVHJlZSkKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKER1bXBSZW5kZXJUcmVl
IER1bXBSZW5kZXJUcmVlUHJlZml4LmgpCiAKIGlmIChFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQ
SSkKICAgICBhZGRfc3ViZGlyZWN0b3J5KFRlc3ROZXRzY2FwZVBsdWdJbikKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtlIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggZmQwNjUyYjQzZjVjMGI5ZTIxOWMzZmQ3NWE5
MzNmMTAwNTkwNjgwYS4uYjUyNGUyMGEzNjRmZGY0ZTQwMjQ0YTg0NWFjMmM4NWNmZjQyYmMwMSAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTcyLDcgKzcyLDYgQEAg
ZWxzZSAoKQogICAgIGVuZGlmICgpCiBlbmRpZiAoKQogCi1XRUJLSVRfQUREX1BSRUNPTVBJTEVE
X0hFQURFUigiRHVtcFJlbmRlclRyZWVQcmVmaXguaCIgIndpbi9EdW1wUmVuZGVyVHJlZVByZWZp
eC5jcHAiIER1bXBSZW5kZXJUcmVlX1NPVVJDRVMpCiBzZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9G
TEFHUyAiJHtDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTfSAke01TVkNfUlVOVElNRV9MSU5LRVJf
RkxBR1N9IikKIAogV0VCS0lUX1dSQVBfRVhFQ1VUQUJMRShEdW1wUmVuZGVyVHJlZQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQKaW5kZXggZTljNDUxOGE1ZjRmZTRlMmU0YjljMzU5
YTEzYTk1NTJkZWMwYzUyNS4uNWVmOTEwNmRiMGQ3YTkyYjQ5OWUzZmJjNTFlMzAxZjI0YTY0MzBh
MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0CkBAIC0xNDEsNiArMTQxLDcg
QEAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZSBQUklWQVRF
ICR7V2ViS2l0VGVzdFJ1bm5lckluamVjdGUKIGFkZF9kZXBlbmRlbmNpZXMoVGVzdFJ1bm5lcklu
amVjdGVkQnVuZGxlIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZUJpbmRpbmdzKQogCiBX
RUJLSVRfRVhFQ1VUQUJMRShXZWJLaXRUZXN0UnVubmVyKQorV0VCS0lUX0FERF9QUkVDT01QSUxF
RF9IRUFERVIoV2ViS2l0VGVzdFJ1bm5lciBXZWJLaXRUZXN0UnVubmVyUHJlZml4LmgpCiAKIGlm
IChDT01QSUxFUl9JU19HQ0NfT1JfQ0xBTkcpCiAgICAgV0VCS0lUX0FERF9UQVJHRVRfQ1hYX0ZM
QUdTKFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZSAtV25vLXVudXNlZC1wYXJhbWV0ZXIpCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtRlRXLmNtYWtlIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZQppbmRleCA2ZjFjOTY3M2IzYmZmMzNj
Yjg0MTdmYWNhNWM3M2Y1NmNmYWQ4ZDY3Li4xNGVjNTczMGQyZmNlMjM0M2ExYTcxY2E5OTg3MjZk
MzkxYzRiMWU5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtRlRX
LmNtYWtlCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1GVFcuY21ha2UKQEAg
LTI5LDggKzI5LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5lcl9MSUJSQVJJRVMKICAg
ICBPbGVhY2MKICkKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktpdFRlc3RS
dW5uZXJQcmVmaXguaCIgIndpbi9XZWJLaXRUZXN0UnVubmVyUHJlZml4LmNwcCIgV2ViS2l0VGVz
dFJ1bm5lcl9TT1VSQ0VTKQotCiBzZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9GTEFHUyAiJHtDTUFL
RV9TSEFSRURfTElOS0VSX0ZMQUdTfSAke01TVkNfUlVOVElNRV9MSU5LRVJfRkxBR1N9IikKIAog
V0VCS0lUX1dSQVBfRVhFQ1VUQUJMRShXZWJLaXRUZXN0UnVubmVyCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2luLmNtYWtlIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCBjYTQ5NzkyZTlkZDFkYmQ0ZWQ0Y2EyMjY5NGM1
Y2NiODM2OGE4ZGVhLi5hYjY2NDZhMDczNmI0M2MzMzBhZGM4ZTRmZmFhNmJkOWJjNWQ4YjcxIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2luLmNtYWtlCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTM0LDggKzM0LDYg
QEAgbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlX0xJQlJBUklFUwog
ICAgICQ8VEFSR0VUX09CSkVDVFM6V2ViQ29yZVRlc3RTdXBwb3J0PgogKQogCi1XRUJLSVRfQURE
X1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oIiAid2luL1dlYktp
dFRlc3RSdW5uZXJQcmVmaXguY3BwIiBXZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMpCi0KIHNldChD
TUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICIke0NNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1N9ICR7
TVNWQ19SVU5USU1FX0xJTktFUl9GTEFHU30iKQogCiBXRUJLSVRfV1JBUF9FWEVDVVRBQkxFKFdl
YktpdFRlc3RSdW5uZXIKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBh
MTZkNmNlZWYzZTFjMzEyZTdjZjM3NDhiYWFiZTg3NzlhZGQ0ZWQ3Li4xN2ZkNWY5MzA0YjgzZDA2
ZDFhYTFiMGY5NWNiMGU1YjJjMTFhOGI2IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQZXJleiBkZSBDYXN0
cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2VdIEVuYWJsZSBwcmUtY29t
cGlsZWQgaGVhZGVycyAoUENIKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgd2lwCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNt
YWtlOgorCiAyMDIxLTEwLTE4ICBNczJnZXIgIDxNczJnZXJAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBBZGQgbXkgZ2l0aHViIHVzZXJuYW1lIHRvIGNvbnRyaWJ1dG9ycy5qc29uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441792</attachid>
            <date>2021-10-19 14:04:01 -0700</date>
            <delta_ts>2021-10-25 15:48:18 -0700</delta_ts>
            <desc>WIP Patch v10</desc>
            <filename>bug-139438-20211020000359.patch</filename>
            <type>text/plain</type>
            <size>33259</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NDlhNTc2MzMxOWU5ZGIyMDBhN2VlOTBkMDhjNTZhYWEzMTRjMmQ5Li45Y2YzZDEyNmViMWRmODQw
Njc3YjAyNWExYjUwMTJmOTI5MDk0NWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMS0xMC0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0gRW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJz
IChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3
aXAKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDIxLTEwLTE4ICBTYWFtIEJhcmF0
aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IGxvYWQgbWV0YWRhdGEgYmFz
ZSBwb2ludGVyIGluIEVYVFJBX0NUSV9USFVOS1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NDBjZTViODk4YmIz
NzU3NWM5OWYxNThhOWNiOTY3YmJkNjE2Y2ZlLi45N2UzOGU0YTIyZDJkMzBiMzU0MTE2OGMxZDhh
NDA4YjNkMzQ5ZTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMTAtMTggIEFk
cmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01h
a2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
UHJlZml4Lmg6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXgu
aDoKKwogMjAyMS0xMC0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBhIGNhbGxiYWNrIHRvIGtub3cgd2hlbiB0aGUgc2VydmljZSB3b3JrZXIgbG9hZHMg
dmlhIC1bV0tXZWJWaWV3IF9sb2FkU2VydmljZVdvcmtlcjpdCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1OGJiN2Vj
ZWIxNTUxM2ZjNjAwNjNjMmRjOTIyNzVjMzYxZWM0MDYuLmM1ZWMxMmMyZWRlYzBhMDliYzgzYTQy
MzI2ZWIxYjJmZWUyN2YwOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMTgg
IEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBb
Q01ha2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENIKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQyUHJlZml4Lmg6CisKIDIwMjEtMTAtMTggIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBjYWxsYmFjayB0byBr
bm93IHdoZW4gdGhlIHNlcnZpY2Ugd29ya2VyIGxvYWRzIHZpYSAtW1dLV2ViVmlldyBfbG9hZFNl
cnZpY2VXb3JrZXI6XQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwppbmRleCA3YmU0OThjOGExNWI0YTIwYjg0
MGZmNzFhNWRhOTFiNzVlOWZlZDBjLi4wNWY0ZWJmOTM0OGY0YWIyOGQ4Yzk5YmJjYjEzOWJhZmI5
MDIxNDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTEwLTE4
ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0NNYWtlXSBFbmFibGUgcHJlLWNvbXBpbGVkIGhlYWRlcnMgKFBDSCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQzOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdpcAorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisKIDIwMjEtMTAtMTQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCBmaXggdXAgcHJldmlvdXMgY29tbWl0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCmluZGV4IDQ4MmY3YjE3M2QzZTgyZTJkZmZjNzk3NzI5Y2M2Y2U5ZmRm
MjdhZTMuLmUyN2IwZWRkMzc4ODhiOTAwNzNmMWJlZjc1OGFjNWJiYjBhNmU1ZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMC0xOCAgQWRyaWFu
IFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDTWFrZV0g
RW5hYmxlIHByZS1jb21waWxlZCBoZWFkZXJzIChQQ0gpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aXAKKworICAgICAgICAqIFdlYktpdFF1YXJ0ekNv
cmVBZGRpdGlvbnMvQ01ha2VMaXN0cy50eHQ6CisKIDIwMjEtMTAtMTEgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBET01UaW1lU3RhbXAgaXMgbm93IEVwb2NoVGlt
ZVN0YW1wCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDcwYmE1MmQ2MWZk
ZjA5OTVjYjFhMjJiMGRmYWZkOGUyZTBiZDNkYy4uYjQzNWIzNmNmNjMyZjE1YjExMmU0N2M1NGRm
OWIzNTEyNjMzMmI4OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTUw
Myw2ICsxNTAzLDExIEBAIFdFQktJVF9DT01QVVRFX1NPVVJDRVMoSmF2YVNjcmlwdENvcmUpCiBX
RUJLSVRfRlJBTUVXT1JLKEphdmFTY3JpcHRDb3JlKQogV0VCS0lUX0ZSQU1FV09SS19UQVJHRVQo
SmF2YVNjcmlwdENvcmUpCiAKK2lmIChOT1QgV1RGX09TX1dJTkRPV1MpCisgICAgIyBUT0RPOiBU
aGUgcHJlZml4IGhlYWRlciBoYXMgVW5peGlzbXMsIG5lZWRzIHR3ZWFraW5nIHRvIGJlIHVzYWJs
ZSBvbiBXaW5kb3dzCisgICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoSmF2YVNjcmlw
dENvcmUgSmF2YVNjcmlwdENvcmVQcmVmaXguaCkKK2VuZGlmICgpCisKIGlmIChOT1QgIiR7UE9S
VH0iIFNUUkVRVUFMICJNYWMiKQogICAgIGlmICgke0phdmFTY3JpcHRDb3JlX0xJQlJBUllfVFlQ
RX0gU1RSRVFVQUwgIlNIQVJFRCIpCiAgICAgICAgIFdFQktJVF9QT1BVTEFURV9MSUJSQVJZX1ZF
UlNJT04oSkFWQVNDUklQVENPUkUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGU1ZTIyMmQ0YzMz
NGUyYzJiMjhlODk2OTIwZGQ2OGUyOGNlY2VkODguLmNiYTAwMTQ4Yzg5NjBiZTQ3NDk3MDdlYjhh
MmJkNjNmYjIzZjNlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMjI4LDEwICsyMjI4LDYg
QEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNf
RElSfS9YTUxOYW1lcy5jcHApCiAKIFdFQktJVF9DT01QVVRFX1NPVVJDRVMoV2ViQ29yZSkKIAot
aWYgKE1TVkMpCi0gICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYkNvcmVQcmVm
aXguaCIgIldlYkNvcmVQcmVmaXguY3BwIiBXZWJDb3JlX1NPVVJDRVMpCi1lbmRpZiAoKQotCiBX
RUJLSVRfQ09QWV9GSUxFUyhXZWJDb3JlX0NvcHlQcml2YXRlSGVhZGVycwogICAgIERFU1RJTkFU
SU9OICR7V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0vV2ViQ29yZQogICAg
IEZJTEVTICR7V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTfQpAQCAtMjI0OCw2ICsy
MjQ0LDcgQEAgZW5kaWYgKCkKIAogV0VCS0lUX0ZSQU1FV09SSyhXZWJDb3JlKQogV0VCS0lUX0ZS
QU1FV09SS19UQVJHRVQoV2ViQ29yZSkKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKFdl
YkNvcmUgV2ViQ29yZVByZWZpeC5oKQogCiBpZiAoQVBQTEUpCiAgICAgc2V0X3RhcmdldF9wcm9w
ZXJ0aWVzKFdlYkNvcmUgUFJPUEVSVElFUyBMSU5LX0ZMQUdTICItc3ViX2xpYnJhcnkgbGlib2Jq
YyAtdW1icmVsbGEgV2ViS2l0IC1hbGxvd2FibGVfY2xpZW50IFdlYkNvcmVUZXN0U3VwcG9ydCAt
YWxsb3dhYmxlX2NsaWVudCBXZWJLaXQyIC1hbGxvd2FibGVfY2xpZW50IFdlYktpdExlZ2FjeSIp
CkBAIC0yMjYxLDEwICsyMjU4LDYgQEAgaWYgKENNQUtFX0NPTVBJTEVSX0lTX0dOVUNYWCBBTkQg
IiR7TE9XRVJDQVNFX0NNQUtFX0hPU1RfU1lTVEVNX1BST0NFU1NPUn0iIE1BVEMKICAgICBXRUJL
SVRfQUREX1RBUkdFVF9DWFhfRkxBR1MoV2ViQ29yZSAtZm5vLXRyZWUtc3JhKQogZW5kaWYgKCkK
IAotaWYgKE1TVkMpCi0gICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYkNvcmVU
ZXN0U3VwcG9ydFByZWZpeC5oIiAidGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXgu
Y3BwIiBXZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNFUykKLWVuZGlmICgpCi0KIFdFQktJVF9DT1BZ
X0ZJTEVTKENvcHlfV2ViQ29yZVRlc3RTdXBwb3J0UHJpdmF0ZUhlYWRlcnMKICAgICBERVNUSU5B
VElPTiAke1dlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSU19ESVJ9L1dlYkNvcmVUZXN0
U3VwcG9ydAogICAgIEZJTEVTIHRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmggdGVzdGlu
Zy9jb2NvYS9XZWJBcmNoaXZlRHVtcFN1cHBvcnQuaApAQCAtMjI4Niw2ICsyMjc5LDcgQEAgZW5k
aWYgKCkKIAogV0VCS0lUX0ZSQU1FV09SSyhXZWJDb3JlVGVzdFN1cHBvcnQpCiBXRUJLSVRfRlJB
TUVXT1JLX1RBUkdFVChXZWJDb3JlVGVzdFN1cHBvcnQpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVE
X0hFQURFUihXZWJDb3JlVGVzdFN1cHBvcnQgdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQ
cmVmaXguaCkKIAogaWYgKCR7V2ViQ29yZV9MSUJSQVJZX1RZUEV9IE1BVENIRVMgIlNIQVJFRCIp
CiAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFdlYkNvcmUgUFJPUEVSVElFUyBWRVJTSU9OICR7
UFJPSkVDVF9WRVJTSU9OfSBTT1ZFUlNJT04gJHtQUk9KRUNUX1ZFUlNJT05fTUFKT1J9KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZURlcml2ZWRTb3VyY2VzUHJlZml4LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVEZXJpdmVkU291cmNlc1ByZWZpeC5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwYzJkNzg5NWE3ZTc4NTJjMWI3ZDEyN2E0YmYxM2QzMThi
NjZiM2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZURlcml2ZWRTb3VyY2VzUHJlZml4LmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
Ci0gKi8KLQotI2luY2x1ZGUgIldlYkNvcmVQcmVmaXguaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmVQcmVmaXguY3BwIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5j
cHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwYzJkNzg5NWE3ZTc4NTJjMWI3ZDEy
N2E0YmYxM2QzMThiNjZiM2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSwyNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpbmNsdWRlICJXZWJDb3JlUHJlZml4LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlUHJlZml4LmggYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKaW5k
ZXggZDBjNDVmNjYyZGU3NWQyNjBhYzZlYTY0YWI1ZDAwYzViYzg0OTk4Zi4uZjZkZjQ2NjFhZDZh
OTU0YTMxM2JlNjQxOWNmNDViMTA3NmU2ZTNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZVByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaApAQCAt
MTE2LDYgKzExNiwyOSBAQAogCiAjaWYgUExBVEZPUk0oV0lOX0NBSVJPKQogI2luY2x1ZGUgPHdp
bmRvd3MuaD4KKworI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisKKyNpZiBV
U0UoQ0FJUk8pCisjaW5jbHVkZSA8Y2Fpcm8uaD4KKyNlbmRpZgorCisjaWYgVVNFKEhBUkZCVVpa
KQorI2luY2x1ZGUgPGhiLmg+CisjZW5kaWYKKworI2lmIFVTRShHTElCKQorI2luY2x1ZGUgPGds
aWItb2JqZWN0Lmg+CisjZW5kaWYKKworI2lmIFVTRShTT1VQKQorI2luY2x1ZGUgPGxpYnNvdXAv
c291cC5oPgorI2VuZGlmCisKKyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1ZGUgPGdzdC9nc3Qu
aD4KKyNlbmRpZgorCiAjZWxzZQogCiAjaWYgT1MoV0lORE9XUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzBlYWEzM2M0ZDYwYTU5Mjg3ZjI0ZWNhMjU0NmEyZjk4
ZWVlMTA2NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJXZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0
UHJlZml4LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFBy
ZWZpeC5oCmluZGV4IDc1YmEyNDA3ZWU0MTU4NWFiOWJhYTMyNDdjMjhkMTQ0N2VlYzI0MTIuLjEx
Y2UwZmY0NWY5Nzk2Nzg5ZmExMzM3OGY2OWVlZjBiYzZiYzVhODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaApAQCAtODgs
NiArODgsMjQgQEAKIAogI2lmIFBMQVRGT1JNKFdJTl9DQUlSTykKICNpbmNsdWRlIDx3aW5kb3dz
Lmg+CisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKKworI2lmIFVTRShDQUlS
TykKKyNpbmNsdWRlIDxjYWlyby9jYWlyby5oPgorI2VuZGlmCisKKyNpZiBVU0UoR0xJQikKKyNp
bmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2VuZGlmCisKKyNpZiBVU0UoU09VUCkKKyNpbmNsdWRl
IDxsaWJzb3VwL3NvdXAuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdTVFJFQU1FUikKKyNpbmNsdWRl
IDxnc3QvZ3N0Lmg+CisjZW5kaWYKKwogI2Vsc2UKIAogI2lmIE9TKFdJTkRPV1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dAppbmRleCBjYWI0YmUwY2UyMDFmMTYwYjAyMjJmYTEyNzI3MDEwNTBlMDMyYjEyLi5i
MTBiZTY0Y2NkYzU1ODFiZjU4ZjM5YTUwY2JlMmM4Nzg4YWZhNjdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQKQEAgLTM4NywxMSArMzg3LDcgQEAgZW5kaWYgKCkKIAogbWFjcm8oQUREX1dFQktJVF9QUkVG
SVhfSEVBREVSIF90YXJnZXQpCiAgICAgaWYgKFdlYktpdF9VU0VfUFJFRklYX0hFQURFUikKLSAg
ICAgICAgZ2V0X3RhcmdldF9wcm9wZXJ0eShPTERfQ09NUElMRV9GTEFHUyAke190YXJnZXR9IENP
TVBJTEVfRkxBR1MpCi0gICAgICAgIGlmICgke09MRF9DT01QSUxFX0ZMQUdTfSBTVFJFUVVBTCAi
T0xEX0NPTVBJTEVfRkxBR1MtTk9URk9VTkQiKQotICAgICAgICAgICAgc2V0KE9MRF9DT01QSUxF
X0ZMQUdTICIiKQotICAgICAgICBlbmRpZiAoKQotICAgICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRp
ZXMoJHtfdGFyZ2V0fSBQUk9QRVJUSUVTIENPTVBJTEVfRkxBR1MgIiR7T0xEX0NPTVBJTEVfRkxB
R1N9IC1pbmNsdWRlICR7V0VCS0lUX0RJUn0vV2ViS2l0MlByZWZpeC5oIikKKyAgICAgICAgV0VC
S0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoJHtfdGFyZ2V0fSBXZWJLaXQyUHJlZml4LmgpCiAg
ICAgZW5kaWYgKCkKIGVuZG1hY3JvKCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tOYXRpdmVFdmVudC5oCmluZGV4IDQ0ZDZlNzc5YTM2YTdmMjRkYTY4NjJiZDk0YjRlYjJj
NDc5YzMyOTAuLjljYTBhYjNkMGRhZDgyNzNlYjk4YTNmZjg1NjlkYzA3NjRkMzVkZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmgKQEAgLTQ0LDYg
KzQ0LDcgQEAgc3RydWN0IE5TRXZlbnQ7CiAjZW5kaWYKIHR5cGVkZWYgTlNFdmVudCAqV0tOYXRp
dmVFdmVudFB0cjsKICNlbGlmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCit0eXBlZGVmIHVuaW9u
IF9HZGtFdmVudCBHZGtFdmVudDsKIHR5cGVkZWYgY29uc3QgR2RrRXZlbnQqIFdLTmF0aXZlRXZl
bnRQdHI7CiAjZWxpZiBkZWZpbmVkKFdJTjMyKQogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgdGFnTVNH
KiBXS05hdGl2ZUV2ZW50UHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQyUHJl
Zml4LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0MlByZWZpeC5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDEyYjRhOTAxYzdjYjQyYWFmMzFjZjYyZGJlNzY3N2NkNGRmNmRjNTUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJLaXQyUHJlZml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiV2ViS2l0MlByZWZpeC5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQyUHJlZml4LmggYi9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaApp
bmRleCA0MDZhYTgxMThmYTY2ZGFkZmMzNWI4ZWJlNGJmMjQwOTNhY2Y2MWFmLi42YjI5Yjk5ODJl
MzIzNWM4MTYyN2I0ZDc5ZjEwNjRlNDEzOGI3MjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdDJQcmVmaXguaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaApAQCAt
NjMsNiArNjMsMzQgQEAKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCisjaWYgUExBVEZP
Uk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisKKyNpZiBVU0UoQ0FJUk8pCisjaW5jbHVkZSA8Y2Fp
cm8vY2Fpcm8uaD4KKyNlbmRpZgorCisjaWYgVVNFKEhBUkZCVVpaKQorI2luY2x1ZGUgPGhiLmg+
CisjZW5kaWYKKworI2lmIFVTRShHTElCKQorI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjZW5k
aWYKKworI2lmIFVTRShTT1VQKQorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2VuZGlmCisK
KyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNlbmRpZgorCisjaWYg
UExBVEZPUk0oR1RLKQorI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNlbmRpZgorCisjZW5kaWYgLy8g
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisKIC8qIFdoZW4gQysrIGV4Y2VwdGlvbnMg
YXJlIGRpc2FibGVkLCB0aGUgQysrIGxpYnJhcnkgZGVmaW5lcyB8dHJ5fCBhbmQgfGNhdGNofAog
KiB0byBhbGxvdyBDKysgY29kZSB0aGF0IGV4cGVjdHMgZXhjZXB0aW9ucyB0byBidWlsZC4gVGhl
c2UgZGVmaW5pdGlvbnMKICogaW50ZXJmZXJlIHdpdGggT2JqZWN0aXZlLUMrKyB1c2VzIG9mIE9i
amVjdGl2ZS1DIGV4Y2VwdGlvbiBoYW5kbGVycywgd2hpY2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlz
dHMudHh0CmluZGV4IDY1ODk2NzY5NTJjM2Q1MGYyZmI3MDVkMjQzODNiNmMyZThmMWYyNjAuLmQ4
M2I0Y2U0NTMxYzYyMjYzNTNjYzNiNGQxODgzZmNkY2YzMGYyOTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9D
TWFrZUxpc3RzLnR4dApAQCAtNDIsNyArNDIsNiBAQCBXRUJLSVRfRlJBTUVXT1JLX0RFQ0xBUkUo
V2ViS2l0TGVnYWN5KQogV0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJTEVTX0lGX0VYSVNUUygpCiAK
IGlmIChNU1ZDKQotICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXRQcmVm
aXguaCIgIndpbi9XZWJLaXRQcmVmaXguY3BwIiBXZWJLaXRMZWdhY3lfU09VUkNFUykKICAgICBs
aXN0KEFQUEVORCBXZWJLaXRMZWdhY3lfU09VUkNFUyB3aW4vV2ViS2l0LnJlc291cmNlcy9XZWJL
aXQucmMpCiAgICAgYWRkX2RlZmluaXRpb25zKC9EV0VCS0lUX0VYUE9SVFMgL0RGUkFNRVdPUktf
TkFNRT1XZWJLaXRMZWdhY3kpCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9QbGF0Zm9ybU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1NYWMu
Y21ha2UKaW5kZXggYjUzZTYyMmRjNmYzMzdjYzc0Mzg2ZjY2NmFjY2UzNzI3NGRmZmZiMC4uZjc2
Y2YzNWMzYTJlMDJkMTdiMGVjMzFlY2NkMTlkMWRhN2I1ZjAyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L1BsYXRmb3JtTWFjLmNtYWtlCkBAIC03MTUsMyArNzE1LDUgQEAgV0VCS0lUX01BS0VfRk9SV0FS
RElOR19IRUFERVJTKFdlYktpdExlZ2FjeQogc2V0KFdlYktpdExlZ2FjeV9PVVRQVVRfTkFNRSBX
ZWJLaXRMZWdhY3kpCiAKIHNldChDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICR7Q01BS0VfU0hB
UkVEX0xJTktFUl9GTEFHU30gIi1jb21wYXRpYmlsaXR5X3ZlcnNpb24gMSAtY3VycmVudF92ZXJz
aW9uICR7V0VCS0lUX01BQ19WRVJTSU9OfSAtZnJhbWV3b3JrIFNlY3VyaXR5SW50ZXJmYWNlIikK
KworV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViS2l0TGVnYWN5IG1hYy9XZWJLaXRQ
cmVmaXguaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1XaW4uY21h
a2UgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IGJjYzY2Y2Ni
YWY3NzE3ZmNlOTExYWFhYjg1Y2YxNjhlMWEzMDJjMzcuLmE2MTVjNzE3MWMwY2Q4NTg2ODcxMmU2
MzE5Y2ZlOTYyZTdjODg5MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZv
cm1XaW4uY21ha2UKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9ybVdpbi5jbWFrZQpA
QCAtNDg5LDMgKzQ4OSw1IEBAIGxpc3QoQVBQRU5EIFdlYktpdExlZ2FjeV9QUklWQVRFX0RFRklO
SVRJT05TCiAgICAgU1RBVElDQUxMWV9MSU5LRURfV0lUSF9QQUwKICAgICBTVEFUSUNBTExZX0xJ
TktFRF9XSVRIX1dlYkNvcmUKICkKKworV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2Vi
S2l0TGVnYWN5IHdpbi9XZWJLaXRQcmVmaXguaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYktpdFByZWZpeC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJL
aXRQcmVmaXguY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMDY3ZTk2YzgyN2U1
ZDE4MDc0MDJmYzEzMDY0NTI1ZDY3NmQyZTg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFByZWZpeC5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
IDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0jaW5jbHVkZSAiV2ViS2l0UHJlZml4LmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UXVhcnR6Q29yZUFk
ZGl0aW9ucy9DTWFrZUxpc3RzLnR4dAppbmRleCBiYzA5Nzk4YjhiMDJhZjI5YzM4M2I3ODdlNmYx
NzZmYTIyZWZkNzNiLi43YWU3YzFjMDA3MzE5MGI5YjAwYWM3YzE1NDkwYWY1ZjUyMDBjMjA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRp
b25zL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1
YXJ0ekNvcmVBZGRpdGlvbnMvQ01ha2VMaXN0cy50eHQKQEAgLTQxLDggKzQxLDYgQEAgZmlsZShD
T1BZICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9BUEkvV0tDQUNGSW1hZ2VJbnRlcm5hbC5o
IERFU1RJTkFUSU9OICR7REUKIGZpbGUoQ09QWSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0v
QVBJL1dLQ0FDRlZpZXcuaCBERVNUSU5BVElPTiAke0RFUklWRURfU09VUkNFU19ESVJ9L1dlYktp
dFF1YXJ0ekNvcmVBZGRpdGlvbnMpCiBmaWxlKENPUFkgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9E
SVJ9L0FQSS9XS0NBQ0ZWaWV3UHJpdmF0ZS5oIERFU1RJTkFUSU9OICR7REVSSVZFRF9TT1VSQ0VT
X0RJUn0vV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucykKIAotV0VCS0lUX0FERF9QUkVDT01QSUxF
RF9IRUFERVIoIldlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNQcmVmaXguaCIgIldlYktpdFF1YXJ0
ekNvcmVBZGRpdGlvbnNQcmVmaXguY3BwIiBXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zX1NPVVJD
RVMpCi0KIGluY2x1ZGVfZGlyZWN0b3JpZXMoCiAgICAgLgogICAgICIke0RFUklWRURfU09VUkNF
U19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzIgpAQCAtNTksMyArNTcsNCBAQCB0YXJnZXRfbGlua19s
aWJyYXJpZXMoV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucwogICAgIENvcmVHcmFwaGljcyR7REVC
VUdfU1VGRklYfQogICAgIFF1YXJ0ekNvcmUke0RFQlVHX1NVRkZJWH0KICkKK1dFQktJVF9BRERf
UFJFQ09NUElMRURfSEVBREVSKFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMgV2ViS2l0UXVhcnR6
Q29yZUFkZGl0aW9uc1ByZWZpeC5oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zUHJl
Zml4LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlv
bnMvV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9uc1ByZWZpeC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDE2OWVkOTNjMWU0MDBhNTg3NzZjNmY3ZTk2MmM0OWI5NTc5Yzk0MTQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9XZWJLaXRRdWFydHpDb3JlQWRk
aXRpb25zUHJlZml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8qCi0qIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0qCi0qIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSogYXJlIG1ldDoKLSogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0qICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0qCi0qIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0qIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0qIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0qIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0qIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0qIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotKi8KLQotI2luY2x1ZGUgIldlYktpdFF1
YXJ0ekNvcmVBZGRpdGlvbnNQcmVmaXguaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJL
aXRNYWNyb3MuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCmluZGV4IDIw
MGNlNDgxODg5YjdlMjFlYzg2Y2M2NWVhYTNhZTBlOWM4N2U3M2QuLjRiNTRlZjIwZDAyNTkyODdl
Y2E1OWQ5ZDU0ZWRlMDFhNmY2MmE4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRN
YWNyb3MuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQpAQCAtOTAs
MzQgKzkwLDE3IEBAIG1hY3JvKFdFQktJVF9BRERfU09VUkNFX0RFUEVOREVOQ0lFUyBfc291cmNl
IF9kZXBzKQogICAgIHVuc2V0KF90bXApCiBlbmRtYWNybygpCiAKLW1hY3JvKFdFQktJVF9BRERf
UFJFQ09NUElMRURfSEVBREVSIF9oZWFkZXIgX2NwcCBfc291cmNlKQotICAgIGlmIChNU1ZDKQot
ICAgICAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KFByZWNvbXBpbGVkQmFzZW5hbWUgJHtfY3Bw
fSBOQU1FX1dFKQotICAgICAgICBmaWxlKE1BS0VfRElSRUNUT1JZICIke0NNQUtFX0NVUlJFTlRf
QklOQVJZX0RJUn0vJHtfc291cmNlfSIpCi0gICAgICAgIHNldChQcmVjb21waWxlZEJpbmFyeSAi
JHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7X3NvdXJjZX0vJHtQcmVjb21waWxlZEJhc2Vu
YW1lfS5wY2giKQotICAgICAgICBzZXQoX3NvdXJjZXMgJHske19zb3VyY2V9fSkKIAotICAgICAg
ICAjIGNsYW5nLWNsIHJlcXVpcmVzIC9GSSB3aXRoIC9ZYwotICAgICAgICBpZiAoQ09NUElMRVJf
SVNfQ0xBTkdfQ0wpCi0gICAgICAgICAgICBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtf
Y3BwfQotICAgICAgICAgICAgICAgIFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAiL1ljXCIke19o
ZWFkZXJ9XCIgL0ZwXCIke1ByZWNvbXBpbGVkQmluYXJ5fVwiIC9GSVwiJHtfaGVhZGVyfVwiIgot
ICAgICAgICAgICAgICAgIE9CSkVDVF9PVVRQVVRTICIke1ByZWNvbXBpbGVkQmluYXJ5fSIpCi0g
ICAgICAgIGVsc2UgKCkKLSAgICAgICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygk
e19jcHB9Ci0gICAgICAgICAgICAgICAgUFJPUEVSVElFUyBDT01QSUxFX0ZMQUdTICIvWWNcIiR7
X2hlYWRlcn1cIiAvRnBcIiR7UHJlY29tcGlsZWRCaW5hcnl9XCIiCi0gICAgICAgICAgICAgICAg
T0JKRUNUX09VVFBVVFMgIiR7UHJlY29tcGlsZWRCaW5hcnl9IikKLSAgICAgICAgZW5kaWYgKCkK
LSAgICAgICAgc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7X3NvdXJjZXN9Ci0gICAgICAg
ICAgICBQUk9QRVJUSUVTIENPTVBJTEVfRkxBR1MgIi9ZdVwiJHtfaGVhZGVyfVwiIC9GSVwiJHtf
aGVhZGVyfVwiIC9GcFwiJHtQcmVjb21waWxlZEJpbmFyeX1cIiIpCi0KLSAgICAgICAgZm9yZWFj
aCAoX3NyYyAke19zb3VyY2VzfSkKLSAgICAgICAgICAgIFdFQktJVF9BRERfU09VUkNFX0RFUEVO
REVOQ0lFUygke19zcmN9ICR7UHJlY29tcGlsZWRCaW5hcnl9KQotICAgICAgICBlbmRmb3JlYWNo
ICgpCi0KLSAgICAgICAgbGlzdChBUFBFTkQgJHtfc291cmNlfSAke19jcHB9KQotICAgIGVuZGlm
ICgpCi0gICAgI0ZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgWGNvZGUuCi1lbmRtYWNybygpCitpZiAo
Q01BS0VfVkVSU0lPTiBWRVJTSU9OX0dSRUFURVJfRVFVQUwgMy4xNykKKyAgICBtYWNybyhXRUJL
SVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUiBfdGFyZ2V0IF9oZWFkZXIpCisgICAgICAgIHRhcmdl
dF9wcmVjb21waWxlX2hlYWRlcnMoJHtfdGFyZ2V0fSBQUklWQVRFICR7X2hlYWRlcn0pCisgICAg
ZW5kbWFjcm8oKQorZWxzZSAoKQorICAgIG1lc3NhZ2UoV0FSTklORyAiUHJlY29tcGlsZWQgaGVh
ZGVycyBkaXNhYmxlZCwgQ01ha2UgMy4xNyBvciBuZXdlciByZXF1aXJlZCIpCisgICAgbWFjcm8o
V0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIgX3RhcmdldCBfaGVhZGVyKQorICAgICAgICAj
IE5vLW9wCisgICAgZW5kbWFjcm8oKQorZW5kaWYgKCkKIAogbWFjcm8oV0VCS0lUX0ZSQU1FV09S
S19ERUNMQVJFIF90YXJnZXQpCiAgICAgIyBhZGRfbGlicmFyeSgpIHdpdGhvdXQgYW55IHNvdXJj
ZSBmaWxlcyB0cmlnZ2VycyBDTWFrZSB3YXJuaW5nCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWUyMmFiMDYyMTY0ZGMwOWVkZjY1YzFhYmE0NmZk
NWNhYjgzYjkwZC4uYzA2MTE2NGFlNzFjMmQ3MGQ3ZDQ1MzJiYWE2YTc5ZWRhY2Y0MDQ4ZiAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDIxLTEwLTE4ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0NNYWtlXSBFbmFibGUgcHJlLWNvbXBpbGVkIGhlYWRlcnMgKFBD
SCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQz
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdpcAor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1BsYXRmb3JtV2luLmNtYWtlOgorCiAyMDIxLTEwLTE4ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgY2FsbGJhY2sgdG8ga25vdyB3aGVuIHRo
ZSBzZXJ2aWNlIHdvcmtlciBsb2FkcyB2aWEgLVtXS1dlYlZpZXcgX2xvYWRTZXJ2aWNlV29ya2Vy
Ol0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0IGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTI0MTAxMDM3YjZlYTg4OTE2
ZTFkODkxYmI2Yzc2MGEzNDI1MDhmYS4uNDYyMTUwZGIwMzVmMDA2YjU0Y2IzMTU0Zjc4MjkzN2Zm
MGJjM2EyZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKQEAgLTY3LDYgKzY3LDcg
QEAgbGlzdChBUFBFTkQgRHVtcFJlbmRlclRyZWVfU09VUkNFUwogV0VCS0lUX0VYRUNVVEFCTEVf
REVDTEFSRShEdW1wUmVuZGVyVHJlZSkKIFdFQktJVF9JTkNMVURFX0NPTkZJR19GSUxFU19JRl9F
WElTVFMoKQogV0VCS0lUX0VYRUNVVEFCTEUoRHVtcFJlbmRlclRyZWUpCitXRUJLSVRfQUREX1BS
RUNPTVBJTEVEX0hFQURFUihEdW1wUmVuZGVyVHJlZSBEdW1wUmVuZGVyVHJlZVByZWZpeC5oKQog
CiBpZiAoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgYWRkX3N1YmRpcmVjdG9yeShU
ZXN0TmV0c2NhcGVQbHVnSW4pCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0
Zm9ybVdpbi5jbWFrZSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtlCmlu
ZGV4IGZkMDY1MmI0M2Y1YzBiOWUyMTljM2ZkNzVhOTMzZjEwMDU5MDY4MGEuLmI1MjRlMjBhMzY0
ZmRmNGU0MDI0NGE4NDVhYzJjODVjZmY0MmJjMDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRm
b3JtV2luLmNtYWtlCkBAIC03Miw3ICs3Miw2IEBAIGVsc2UgKCkKICAgICBlbmRpZiAoKQogZW5k
aWYgKCkKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIkR1bXBSZW5kZXJUcmVlUHJl
Zml4LmgiICJ3aW4vRHVtcFJlbmRlclRyZWVQcmVmaXguY3BwIiBEdW1wUmVuZGVyVHJlZV9TT1VS
Q0VTKQogc2V0KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hBUkVEX0xJTktF
Ul9GTEFHU30gJHtNU1ZDX1JVTlRJTUVfTElOS0VSX0ZMQUdTfSIpCiAKIFdFQktJVF9XUkFQX0VY
RUNVVEFCTEUoRHVtcFJlbmRlclRyZWUKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9EdW1wUmVuZGVyVHJlZVByZWZpeC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
RHVtcFJlbmRlclRyZWVQcmVmaXguY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1
Yzc1ZDRhMzYwMmRlN2JjMGRhMTYxOGMxZDA4ZGNjNmYyOTUzN2Y4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9E
dW1wUmVuZGVyVHJlZVByZWZpeC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4g
KCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0jaW5jbHVkZSAiRHVt
cFJlbmRlclRyZWVQcmVmaXguaCIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Q01ha2VMaXN0cy50eHQgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGU5YzQ1MThhNWY0ZmU0ZTJlNGI5YzM1OWExM2E5NTUyZGVjMGM1MjUuLjVlZjkxMDZkYjBk
N2E5MmI0OTllM2ZiYzUxZTMwMWYyNGE2NDMwYTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFr
ZUxpc3RzLnR4dApAQCAtMTQxLDYgKzE0MSw3IEBAIHRhcmdldF9saW5rX2xpYnJhcmllcyhUZXN0
UnVubmVySW5qZWN0ZWRCdW5kbGUgUFJJVkFURSAke1dlYktpdFRlc3RSdW5uZXJJbmplY3RlCiBh
ZGRfZGVwZW5kZW5jaWVzKFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZSBXZWJLaXRUZXN0UnVubmVy
SW5qZWN0ZWRCdW5kbGVCaW5kaW5ncykKIAogV0VCS0lUX0VYRUNVVEFCTEUoV2ViS2l0VGVzdFJ1
bm5lcikKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKFdlYktpdFRlc3RSdW5uZXIgV2Vi
S2l0VGVzdFJ1bm5lclByZWZpeC5oKQogCiBpZiAoQ09NUElMRVJfSVNfR0NDX09SX0NMQU5HKQog
ICAgIFdFQktJVF9BRERfVEFSR0VUX0NYWF9GTEFHUyhUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUg
LVduby11bnVzZWQtcGFyYW1ldGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9QbGF0Zm9ybUZUVy5jbWFrZSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1GVFcu
Y21ha2UKaW5kZXggNmYxYzk2NzNiM2JmZjMzY2I4NDE3ZmFjYTVjNzNmNTZjZmFkOGQ2Ny4uMTRl
YzU3MzBkMmZjZTIzNDNhMWE3MWNhOTk4NzI2ZDM5MWM0YjFlOSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZQorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1BsYXRmb3JtRlRXLmNtYWtlCkBAIC0yOSw4ICsyOSw2IEBAIGxpc3QoQVBQRU5EIFdl
YktpdFRlc3RSdW5uZXJfTElCUkFSSUVTCiAgICAgT2xlYWNjCiApCiAKLVdFQktJVF9BRERfUFJF
Q09NUElMRURfSEVBREVSKCJXZWJLaXRUZXN0UnVubmVyUHJlZml4LmgiICJ3aW4vV2ViS2l0VGVz
dFJ1bm5lclByZWZpeC5jcHAiIFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUykKLQogc2V0KENNQUtF
X1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHU30gJHtNU1ZD
X1JVTlRJTUVfTElOS0VSX0ZMQUdTfSIpCiAKIFdFQktJVF9XUkFQX0VYRUNVVEFCTEUoV2ViS2l0
VGVzdFJ1bm5lcgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdp
bi5jbWFrZSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXgg
Y2E0OTc5MmU5ZGQxZGJkNGVkNGNhMjI2OTRjNWNjYjgzNjhhOGRlYS4uYWI2NjQ2YTA3MzZiNDNj
MzMwYWRjOGU0ZmZhYTZiZDliYzVkOGI3MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRm
b3JtV2luLmNtYWtlCkBAIC0zNCw4ICszNCw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5u
ZXJJbmplY3RlZEJ1bmRsZV9MSUJSQVJJRVMKICAgICAkPFRBUkdFVF9PQkpFQ1RTOldlYkNvcmVU
ZXN0U3VwcG9ydD4KICkKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktpdFRl
c3RSdW5uZXJQcmVmaXguaCIgIndpbi9XZWJLaXRUZXN0UnVubmVyUHJlZml4LmNwcCIgV2ViS2l0
VGVzdFJ1bm5lcl9TT1VSQ0VTKQotCiBzZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9GTEFHUyAiJHtD
TUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTfSAke01TVkNfUlVOVElNRV9MSU5LRVJfRkxBR1N9IikK
IAogV0VCS0lUX1dSQVBfRVhFQ1VUQUJMRShXZWJLaXRUZXN0UnVubmVyCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9XZWJLaXRUZXN0UnVubmVyUHJlZml4LmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1dlYktpdFRlc3RSdW5uZXJQcmVmaXguY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NGM3NGNlOTVjYTA5NGI1OGZjZTA3ZTQ5YTEzZjY0
NmJhM2M4ZWFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1dlYktpdFRlc3RSdW5uZXJQcmVmaXguY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
Ci0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgot
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotI2luY2x1ZGUgIldlYktpdFRlc3RSdW5uZXJQcmVmaXguaCIKZGlm
ZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBhMTZkNmNlZWYzZTFjMzEyZTdj
ZjM3NDhiYWFiZTg3NzlhZGQ0ZWQ3Li4xN2ZkNWY5MzA0YjgzZDA2ZDFhYTFiMGY5NWNiMGU1YjJj
MTFhOGI2IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMjEtMTAtMTggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlh
LmNvbT4KKworICAgICAgICBbQ01ha2VdIEVuYWJsZSBwcmUtY29tcGlsZWQgaGVhZGVycyAoUENI
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2lwCisK
KyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlOgorCiAyMDIxLTEwLTE4
ICBNczJnZXIgIDxNczJnZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgbXkgZ2l0aHViIHVz
ZXJuYW1lIHRvIGNvbnRyaWJ1dG9ycy5qc29uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441957</attachid>
            <date>2021-10-20 17:00:53 -0700</date>
            <delta_ts>2021-10-21 13:28:05 -0700</delta_ts>
            <desc>Windows fixes</desc>
            <filename>bug-139438.diff</filename>
            <type>text/plain</type>
            <size>29314</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA4YjkxODJjZWQxMDEuLjA0MWJh
ZDhmNWEwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTUwNiw2ICsx
NTA2LDcgQEAgZW5kaWYgKCkKIFdFQktJVF9DT01QVVRFX1NPVVJDRVMoSmF2YVNjcmlwdENvcmUp
CiBXRUJLSVRfRlJBTUVXT1JLKEphdmFTY3JpcHRDb3JlKQogV0VCS0lUX0ZSQU1FV09SS19UQVJH
RVQoSmF2YVNjcmlwdENvcmUpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihKYXZhU2Ny
aXB0Q29yZSBKYXZhU2NyaXB0Q29yZVByZWZpeC5oKQogCiBpZiAoTk9UICIke1BPUlR9IiBTVFJF
UVVBTCAiTWFjIikKICAgICBpZiAoJHtKYXZhU2NyaXB0Q29yZV9MSUJSQVJZX1RZUEV9IFNUUkVR
VUFMICJTSEFSRUQiKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlUHJlZml4LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVm
aXguaAppbmRleCBjYjc1YTE4NDUwN2MuLjQ5YTE3NWZmZTRkNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmgKQEAgLTIzLDExICsyMywxNyBAQAogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCisjaWYgZGVmaW5lZChIQVZFX0NPTkZJR19IKSAmJiBIQVZFX0NP
TkZJR19IICYmIGRlZmluZWQoQlVJTERJTkdfV0lUSF9DTUFLRSkKKyNpbmNsdWRlICJjbWFrZWNv
bmZpZy5oIgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fQVBQTEVfXykKICNpZmRlZiBfX2NwbHVz
cGx1cwogI2RlZmluZSBOVUxMIF9fbnVsbAogI2Vsc2UKICNkZWZpbmUgTlVMTCAoKHZvaWQgKikw
KQogI2VuZGlmCisjZW5kaWYKIAogI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8ZmxvYXQu
aD4KQEAgLTM2LDE4ICs0MiwxOSBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3Rk
bGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3RyaW5ncy5oPgogI2luY2x1
ZGUgPHRpbWUuaD4KKworI2lmIGRlZmluZWQoX19BUFBMRV9fKQorI2luY2x1ZGUgPHN0cmluZ3Mu
aD4KICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KICNpbmNsdWRlIDxzeXMvdGltZS5oPgogI2luY2x1
ZGUgPHN5cy90aW1lYi5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2VuZGlmCiAKICNpZmRl
ZiBfX2NwbHVzcGx1cwotCiAjaW5jbHVkZSA8bGlzdD4KICNpbmNsdWRlIDx0eXBlaW5mbz4KLQog
I2VuZGlmCiAKICNpZmRlZiBfX2NwbHVzcGx1cwpAQCAtNTUsNyArNjIsMTEgQEAKICNkZWZpbmUg
ZGVsZXRlICgiaWYgeW91IHVzZSBuZXcvZGVsZXRlIG1ha2Ugc3VyZSB0byBpbmNsdWRlIGNvbmZp
Zy5oIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUiKCkpIAogI2VuZGlmCiAKLS8qIFdvcmsgYXJvdW5k
IGJ1ZyB3aXRoIEMrKyBsaWJyYXJ5IHRoYXQgc2NyZXdzIHVwIE9iamVjdGl2ZS1DKysgd2hlbiBl
eGNlcHRpb24gc3VwcG9ydCBpcyBkaXNhYmxlZC4gKi8KKy8qIFdoZW4gQysrIGV4Y2VwdGlvbnMg
YXJlIGRpc2FibGVkLCB0aGUgQysrIGxpYnJhcnkgZGVmaW5lcyB8dHJ5fCBhbmQgfGNhdGNofAor
ICogdG8gYWxsb3cgQysrIGNvZGUgdGhhdCBleHBlY3RzIGV4Y2VwdGlvbnMgdG8gYnVpbGQuIFRo
ZXNlIGRlZmluaXRpb25zCisgKiBpbnRlcmZlcmUgd2l0aCBPYmplY3RpdmUtQysrIHVzZXMgb2Yg
T2JqZWN0aXZlLUMgZXhjZXB0aW9uIGhhbmRsZXJzLCB3aGljaAorICogdXNlIHxAdHJ5fCBhbmQg
fEBjYXRjaHwuIEFzIGEgd29ya2Fyb3VuZCwgdW5kZWZpbmUgdGhlc2UgbWFjcm9zLiAqLworI2lm
ZGVmIF9fT0JKQ19fCiAjdW5kZWYgdHJ5CiAjdW5kZWYgY2F0Y2gKLQorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IGJjYzgxOGY5NzhjOC4uMTk3MDFlNzYxZGNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMjIzMiwxMCArMjIzMiw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UyAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vWE1MTmFtZXMuY3BwKQogCiBXRUJLSVRf
Q09NUFVURV9TT1VSQ0VTKFdlYkNvcmUpCiAKLWlmIChNU1ZDKQotICAgIFdFQktJVF9BRERfUFJF
Q09NUElMRURfSEVBREVSKCJXZWJDb3JlUHJlZml4LmgiICJXZWJDb3JlUHJlZml4LmNwcCIgV2Vi
Q29yZV9TT1VSQ0VTKQotZW5kaWYgKCkKLQogV0VCS0lUX0NPUFlfRklMRVMoV2ViQ29yZV9Db3B5
UHJpdmF0ZUhlYWRlcnMKICAgICBERVNUSU5BVElPTiAke1dlYkNvcmVfUFJJVkFURV9GUkFNRVdP
UktfSEVBREVSU19ESVJ9L1dlYkNvcmUKICAgICBGSUxFUyAke1dlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSU30KQEAgLTIyNTIsNiArMjI0OCw3IEBAIGVuZGlmICgpCiAKIFdFQktJVF9G
UkFNRVdPUksoV2ViQ29yZSkKIFdFQktJVF9GUkFNRVdPUktfVEFSR0VUKFdlYkNvcmUpCitXRUJL
SVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihXZWJDb3JlIFdlYkNvcmVQcmVmaXguaCkKIAogaWYg
KEFQUExFKQogICAgIHNldF90YXJnZXRfcHJvcGVydGllcyhXZWJDb3JlIFBST1BFUlRJRVMgTElO
S19GTEFHUyAiLXN1Yl9saWJyYXJ5IGxpYm9iamMgLXVtYnJlbGxhIFdlYktpdCAtYWxsb3dhYmxl
X2NsaWVudCBXZWJDb3JlVGVzdFN1cHBvcnQgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0MiAtYWxs
b3dhYmxlX2NsaWVudCBXZWJLaXRMZWdhY3kiKQpAQCAtMjI2NSwxMCArMjI2Miw2IEBAIGlmIChD
TUFLRV9DT01QSUxFUl9JU19HTlVDWFggQU5EICIke0xPV0VSQ0FTRV9DTUFLRV9IT1NUX1NZU1RF
TV9QUk9DRVNTT1J9IiBNQVRDCiAgICAgV0VCS0lUX0FERF9UQVJHRVRfQ1hYX0ZMQUdTKFdlYkNv
cmUgLWZuby10cmVlLXNyYSkKIGVuZGlmICgpCiAKLWlmIChNU1ZDKQotICAgIFdFQktJVF9BRERf
UFJFQ09NUElMRURfSEVBREVSKCJXZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaCIgInRlc3Rpbmcv
anMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmNwcCIgV2ViQ29yZVRlc3RTdXBwb3J0X1NPVVJD
RVMpCi1lbmRpZiAoKQotCiBXRUJLSVRfQ09QWV9GSUxFUyhDb3B5X1dlYkNvcmVUZXN0U3VwcG9y
dFByaXZhdGVIZWFkZXJzCiAgICAgREVTVElOQVRJT04gJHtXZWJDb3JlX1BSSVZBVEVfRlJBTUVX
T1JLX0hFQURFUlNfRElSfS9XZWJDb3JlVGVzdFN1cHBvcnQKICAgICBGSUxFUyB0ZXN0aW5nL2pz
L1dlYkNvcmVUZXN0U3VwcG9ydC5oIHRlc3RpbmcvY29jb2EvV2ViQXJjaGl2ZUR1bXBTdXBwb3J0
LmgKQEAgLTIyOTAsNiArMjI4Myw3IEBAIGVuZGlmICgpCiAKIFdFQktJVF9GUkFNRVdPUksoV2Vi
Q29yZVRlc3RTdXBwb3J0KQogV0VCS0lUX0ZSQU1FV09SS19UQVJHRVQoV2ViQ29yZVRlc3RTdXBw
b3J0KQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViQ29yZVRlc3RTdXBwb3J0IHRl
c3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgpCiAKIGlmICgke1dlYkNvcmVfTElC
UkFSWV9UWVBFfSBNQVRDSEVTICJTSEFSRUQiKQogICAgIHNldF90YXJnZXRfcHJvcGVydGllcyhX
ZWJDb3JlIFBST1BFUlRJRVMgVkVSU0lPTiAke1BST0pFQ1RfVkVSU0lPTn0gU09WRVJTSU9OICR7
UFJPSkVDVF9WRVJTSU9OX01BSk9SfSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmVEZXJpdmVkU291cmNlc1ByZWZpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlRGVyaXZl
ZFNvdXJjZXNQcmVmaXguY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMGMyZDc4
OTVhN2UuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlRGVyaXZlZFNv
dXJjZXNQcmVmaXguY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiV2ViQ29yZVBy
ZWZpeC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjBjMmQ3ODk1YTdlLi4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZVByZWZpeC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJXZWJDb3JlUHJl
Zml4LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKaW5kZXggZDBjNDVmNjYyZGU3Li5mNmRmNDY2MWFk
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKQEAgLTExNiw2ICsxMTYsMjkgQEAKIAogI2lmIFBM
QVRGT1JNKFdJTl9DQUlSTykKICNpbmNsdWRlIDx3aW5kb3dzLmg+CisKKyNlbGlmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV1BFKQorCisjaWYgVVNFKENBSVJPKQorI2luY2x1ZGUgPGNhaXJv
Lmg+CisjZW5kaWYKKworI2lmIFVTRShIQVJGQlVaWikKKyNpbmNsdWRlIDxoYi5oPgorI2VuZGlm
CisKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2VuZGlmCisKKyNp
ZiBVU0UoU09VUCkKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNlbmRpZgorCisjaWYgVVNF
KEdTVFJFQU1FUikKKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjZW5kaWYKKwogI2Vsc2UKIAogI2lm
IE9TKFdJTkRPV1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNv
cmVUZXN0U3VwcG9ydFByZWZpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNv
cmVUZXN0U3VwcG9ydFByZWZpeC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMw
ZWFhMzNjNGQ2MC4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMv
V2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1
ZGUgIldlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgKaW5kZXggNzViYTI0MDdlZTQx
Li4xMWNlMGZmNDVmOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2Vi
Q29yZVRlc3RTdXBwb3J0UHJlZml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9X
ZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaApAQCAtODgsNiArODgsMjQgQEAKIAogI2lmIFBMQVRG
T1JNKFdJTl9DQUlSTykKICNpbmNsdWRlIDx3aW5kb3dzLmg+CisjZWxpZiBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdQRSkKKworI2lmIFVTRShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby9jYWly
by5oPgorI2VuZGlmCisKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgor
I2VuZGlmCisKKyNpZiBVU0UoU09VUCkKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNlbmRp
ZgorCisjaWYgVVNFKEdTVFJFQU1FUikKKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjZW5kaWYKKwog
I2Vsc2UKIAogI2lmIE9TKFdJTkRPV1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBlMGNkMGNkMjhh
ZDkuLmVkMWUxYTQ1MGZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0zODcsMTEgKzM4Nyw3IEBA
IGVuZGlmICgpCiAKIG1hY3JvKEFERF9XRUJLSVRfUFJFRklYX0hFQURFUiBfdGFyZ2V0KQogICAg
IGlmIChXZWJLaXRfVVNFX1BSRUZJWF9IRUFERVIpCi0gICAgICAgIGdldF90YXJnZXRfcHJvcGVy
dHkoT0xEX0NPTVBJTEVfRkxBR1MgJHtfdGFyZ2V0fSBDT01QSUxFX0ZMQUdTKQotICAgICAgICBp
ZiAoJHtPTERfQ09NUElMRV9GTEFHU30gU1RSRVFVQUwgIk9MRF9DT01QSUxFX0ZMQUdTLU5PVEZP
VU5EIikKLSAgICAgICAgICAgIHNldChPTERfQ09NUElMRV9GTEFHUyAiIikKLSAgICAgICAgZW5k
aWYgKCkKLSAgICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7X3RhcmdldH0gUFJPUEVSVElF
UyBDT01QSUxFX0ZMQUdTICIke09MRF9DT01QSUxFX0ZMQUdTfSAtaW5jbHVkZSAke1dFQktJVF9E
SVJ9L1dlYktpdDJQcmVmaXguaCIpCisgICAgICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVB
REVSKCR7X3RhcmdldH0gV2ViS2l0MlByZWZpeC5oKQogICAgIGVuZGlmICgpCiBlbmRtYWNybygp
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZl
bnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaAppbmRl
eCA0NGQ2ZTc3OWEzNmEuLjljYTBhYjNkMGRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaApAQCAtNDQsNiArNDQsNyBAQCBzdHJ1Y3QgTlNFdmVu
dDsKICNlbmRpZgogdHlwZWRlZiBOU0V2ZW50ICpXS05hdGl2ZUV2ZW50UHRyOwogI2VsaWYgZGVm
aW5lZChCVUlMRElOR19HVEtfXykKK3R5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50Owog
dHlwZWRlZiBjb25zdCBHZGtFdmVudCogV0tOYXRpdmVFdmVudFB0cjsKICNlbGlmIGRlZmluZWQo
V0lOMzIpCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCB0YWdNU0cqIFdLTmF0aXZlRXZlbnRQdHI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguY3BwIGIvU291cmNlL1dlYktp
dC9XZWJLaXQyUHJlZml4LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTJiNGE5
MDFjN2NiLi4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
V2ViS2l0MlByZWZpeC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaAppbmRleCA0MDZhYTgxMThmYTYuLjZi
MjliOTk4MmUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmgKQEAgLTYzLDYgKzYzLDM0IEBACiAKICNl
bmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
V1BFKQorCisjaWYgVVNFKENBSVJPKQorI2luY2x1ZGUgPGNhaXJvL2NhaXJvLmg+CisjZW5kaWYK
KworI2lmIFVTRShIQVJGQlVaWikKKyNpbmNsdWRlIDxoYi5oPgorI2VuZGlmCisKKyNpZiBVU0Uo
R0xJQikKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2VuZGlmCisKKyNpZiBVU0UoU09VUCkK
KyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdTVFJFQU1FUikK
KyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNs
dWRlIDxndGsvZ3RrLmg+CisjZW5kaWYKKworI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQorCiAvKiBXaGVuIEMrKyBleGNlcHRpb25zIGFyZSBkaXNhYmxlZCwgdGhlIEMr
KyBsaWJyYXJ5IGRlZmluZXMgfHRyeXwgYW5kIHxjYXRjaHwKICogdG8gYWxsb3cgQysrIGNvZGUg
dGhhdCBleHBlY3RzIGV4Y2VwdGlvbnMgdG8gYnVpbGQuIFRoZXNlIGRlZmluaXRpb25zCiAqIGlu
dGVyZmVyZSB3aXRoIE9iamVjdGl2ZS1DKysgdXNlcyBvZiBPYmplY3RpdmUtQyBleGNlcHRpb24g
aGFuZGxlcnMsIHdoaWNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4dAppbmRleCA2NTg5Njc2
OTUyYzMuLmQ4M2I0Y2U0NTMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlzdHMudHh0CkBAIC00
Miw3ICs0Miw2IEBAIFdFQktJVF9GUkFNRVdPUktfREVDTEFSRShXZWJLaXRMZWdhY3kpCiBXRUJL
SVRfSU5DTFVERV9DT05GSUdfRklMRVNfSUZfRVhJU1RTKCkKIAogaWYgKE1TVkMpCi0gICAgV0VC
S0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktpdFByZWZpeC5oIiAid2luL1dlYktpdFBy
ZWZpeC5jcHAiIFdlYktpdExlZ2FjeV9TT1VSQ0VTKQogICAgIGxpc3QoQVBQRU5EIFdlYktpdExl
Z2FjeV9TT1VSQ0VTIHdpbi9XZWJLaXQucmVzb3VyY2VzL1dlYktpdC5yYykKICAgICBhZGRfZGVm
aW5pdGlvbnMoL0RXRUJLSVRfRVhQT1JUUyAvREZSQU1FV09SS19OQU1FPVdlYktpdExlZ2FjeSkK
IGVuZGlmICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1BsYXRmb3JtTWFjLmNt
YWtlIGIvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCBiNTNlNjIy
ZGM2ZjMuLmY3NmNmMzVjM2EyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0
Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1BsYXRmb3JtTWFjLmNtYWtl
CkBAIC03MTUsMyArNzE1LDUgQEAgV0VCS0lUX01BS0VfRk9SV0FSRElOR19IRUFERVJTKFdlYktp
dExlZ2FjeQogc2V0KFdlYktpdExlZ2FjeV9PVVRQVVRfTkFNRSBXZWJLaXRMZWdhY3kpCiAKIHNl
dChDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICR7Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHU30g
Ii1jb21wYXRpYmlsaXR5X3ZlcnNpb24gMSAtY3VycmVudF92ZXJzaW9uICR7V0VCS0lUX01BQ19W
RVJTSU9OfSAtZnJhbWV3b3JrIFNlY3VyaXR5SW50ZXJmYWNlIikKKworV0VCS0lUX0FERF9QUkVD
T01QSUxFRF9IRUFERVIoV2ViS2l0TGVnYWN5IG1hYy9XZWJLaXRQcmVmaXguaCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IGJjYzY2Y2NiYWY3Ny4uYTYxNWM3MTcxYzBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1BsYXRmb3JtV2luLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTQ4OSwzICs0ODksNSBA
QCBsaXN0KEFQUEVORCBXZWJLaXRMZWdhY3lfUFJJVkFURV9ERUZJTklUSU9OUwogICAgIFNUQVRJ
Q0FMTFlfTElOS0VEX1dJVEhfUEFMCiAgICAgU1RBVElDQUxMWV9MSU5LRURfV0lUSF9XZWJDb3Jl
CiApCisKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKFdlYktpdExlZ2FjeSB3aW4vV2Vi
S2l0UHJlZml4LmgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRQ
cmVmaXguY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UHJlZml4LmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDA2N2U5NmM4MjdlLi4wMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UHJlZml4LmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDI4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0
cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLSNpbmNsdWRlICJXZWJLaXRQcmVmaXguaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlz
dHMudHh0CmluZGV4IGJjMDk3OThiOGIwMi4uN2FlN2MxYzAwNzMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlv
bnMvQ01ha2VMaXN0cy50eHQKQEAgLTQxLDggKzQxLDYgQEAgZmlsZShDT1BZICR7Q01BS0VfQ1VS
UkVOVF9TT1VSQ0VfRElSfS9BUEkvV0tDQUNGSW1hZ2VJbnRlcm5hbC5oIERFU1RJTkFUSU9OICR7
REUKIGZpbGUoQ09QWSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vQVBJL1dLQ0FDRlZpZXcu
aCBERVNUSU5BVElPTiAke0RFUklWRURfU09VUkNFU19ESVJ9L1dlYktpdFF1YXJ0ekNvcmVBZGRp
dGlvbnMpCiBmaWxlKENPUFkgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L0FQSS9XS0NBQ0ZW
aWV3UHJpdmF0ZS5oIERFU1RJTkFUSU9OICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViS2l0UXVh
cnR6Q29yZUFkZGl0aW9ucykKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktp
dFF1YXJ0ekNvcmVBZGRpdGlvbnNQcmVmaXguaCIgIldlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNQ
cmVmaXguY3BwIiBXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zX1NPVVJDRVMpCi0KIGluY2x1ZGVf
ZGlyZWN0b3JpZXMoCiAgICAgLgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRp
bmdIZWFkZXJzIgpAQCAtNTksMyArNTcsNCBAQCB0YXJnZXRfbGlua19saWJyYXJpZXMoV2ViS2l0
UXVhcnR6Q29yZUFkZGl0aW9ucwogICAgIENvcmVHcmFwaGljcyR7REVCVUdfU1VGRklYfQogICAg
IFF1YXJ0ekNvcmUke0RFQlVHX1NVRkZJWH0KICkKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVB
REVSKFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMgV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9uc1By
ZWZpeC5oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UXVhcnR6
Q29yZUFkZGl0aW9ucy9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zUHJlZml4LmNwcCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvV2ViS2l0UXVhcnR6
Q29yZUFkZGl0aW9uc1ByZWZpeC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2
OWVkOTNjMWU0MC4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9uc1ByZWZpeC5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0vKgotKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKgotKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0qIGFyZSBtZXQ6Ci0qIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0qICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotKgotKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0q
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0qIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0qIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0qIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0qIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSovCi0KLSNpbmNsdWRlICJXZWJLaXRRdWFydHpDb3JlQWRkaXRp
b25zUHJlZml4LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtl
IGIvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQppbmRleCAyMDBjZTQ4MTg4OWIuLjRi
NTRlZjIwZDAyNSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQor
KysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCkBAIC05MCwzNCArOTAsMTcgQEAg
bWFjcm8oV0VCS0lUX0FERF9TT1VSQ0VfREVQRU5ERU5DSUVTIF9zb3VyY2UgX2RlcHMpCiAgICAg
dW5zZXQoX3RtcCkKIGVuZG1hY3JvKCkKIAotbWFjcm8oV0VCS0lUX0FERF9QUkVDT01QSUxFRF9I
RUFERVIgX2hlYWRlciBfY3BwIF9zb3VyY2UpCi0gICAgaWYgKE1TVkMpCi0gICAgICAgIGdldF9m
aWxlbmFtZV9jb21wb25lbnQoUHJlY29tcGlsZWRCYXNlbmFtZSAke19jcHB9IE5BTUVfV0UpCi0g
ICAgICAgIGZpbGUoTUFLRV9ESVJFQ1RPUlkgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8k
e19zb3VyY2V9IikKLSAgICAgICAgc2V0KFByZWNvbXBpbGVkQmluYXJ5ICIke0NNQUtFX0NVUlJF
TlRfQklOQVJZX0RJUn0vJHtfc291cmNlfS8ke1ByZWNvbXBpbGVkQmFzZW5hbWV9LnBjaCIpCi0g
ICAgICAgIHNldChfc291cmNlcyAkeyR7X3NvdXJjZX19KQotCi0gICAgICAgICMgY2xhbmctY2wg
cmVxdWlyZXMgL0ZJIHdpdGggL1ljCi0gICAgICAgIGlmIChDT01QSUxFUl9JU19DTEFOR19DTCkK
LSAgICAgICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygke19jcHB9Ci0gICAgICAg
ICAgICAgICAgUFJPUEVSVElFUyBDT01QSUxFX0ZMQUdTICIvWWNcIiR7X2hlYWRlcn1cIiAvRnBc
IiR7UHJlY29tcGlsZWRCaW5hcnl9XCIgL0ZJXCIke19oZWFkZXJ9XCIiCi0gICAgICAgICAgICAg
ICAgT0JKRUNUX09VVFBVVFMgIiR7UHJlY29tcGlsZWRCaW5hcnl9IikKLSAgICAgICAgZWxzZSAo
KQotICAgICAgICAgICAgc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7X2NwcH0KLSAgICAg
ICAgICAgICAgICBQUk9QRVJUSUVTIENPTVBJTEVfRkxBR1MgIi9ZY1wiJHtfaGVhZGVyfVwiIC9G
cFwiJHtQcmVjb21waWxlZEJpbmFyeX1cIiIKLSAgICAgICAgICAgICAgICBPQkpFQ1RfT1VUUFVU
UyAiJHtQcmVjb21waWxlZEJpbmFyeX0iKQotICAgICAgICBlbmRpZiAoKQotICAgICAgICBzZXRf
c291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtfc291cmNlc30KLSAgICAgICAgICAgIFBST1BFUlRJ
RVMgQ09NUElMRV9GTEFHUyAiL1l1XCIke19oZWFkZXJ9XCIgL0ZJXCIke19oZWFkZXJ9XCIgL0Zw
XCIke1ByZWNvbXBpbGVkQmluYXJ5fVwiIikKLQotICAgICAgICBmb3JlYWNoIChfc3JjICR7X3Nv
dXJjZXN9KQotICAgICAgICAgICAgV0VCS0lUX0FERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7X3Ny
Y30gJHtQcmVjb21waWxlZEJpbmFyeX0pCi0gICAgICAgIGVuZGZvcmVhY2ggKCkKIAotICAgICAg
ICBsaXN0KEFQUEVORCAke19zb3VyY2V9ICR7X2NwcH0pCi0gICAgZW5kaWYgKCkKLSAgICAjRklY
TUU6IEFkZCBzdXBwb3J0IGZvciBYY29kZS4KLWVuZG1hY3JvKCkKK2lmIChDTUFLRV9WRVJTSU9O
IFZFUlNJT05fR1JFQVRFUl9FUVVBTCAzLjE3KQorICAgIG1hY3JvKFdFQktJVF9BRERfUFJFQ09N
UElMRURfSEVBREVSIF90YXJnZXQgX2hlYWRlcikKKyAgICAgICAgdGFyZ2V0X3ByZWNvbXBpbGVf
aGVhZGVycygke190YXJnZXR9IFBSSVZBVEUgJHtfaGVhZGVyfSkKKyAgICBlbmRtYWNybygpCitl
bHNlICgpCisgICAgbWVzc2FnZShXQVJOSU5HICJQcmVjb21waWxlZCBoZWFkZXJzIGRpc2FibGVk
LCBDTWFrZSAzLjE3IG9yIG5ld2VyIHJlcXVpcmVkIikKKyAgICBtYWNybyhXRUJLSVRfQUREX1BS
RUNPTVBJTEVEX0hFQURFUiBfdGFyZ2V0IF9oZWFkZXIpCisgICAgICAgICMgTm8tb3AKKyAgICBl
bmRtYWNybygpCitlbmRpZiAoKQogCiBtYWNybyhXRUJLSVRfRlJBTUVXT1JLX0RFQ0xBUkUgX3Rh
cmdldCkKICAgICAjIGFkZF9saWJyYXJ5KCkgd2l0aG91dCBhbnkgc291cmNlIGZpbGVzIHRyaWdn
ZXJzIENNYWtlIHdhcm5pbmcKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtl
TGlzdHMudHh0IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTI0
MTAxMDM3YjZlLi5iNDczY2RkN2ZmOGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0
CkBAIC02Nyw2ICs2Nyw5IEBAIGxpc3QoQVBQRU5EIER1bXBSZW5kZXJUcmVlX1NPVVJDRVMKIFdF
QktJVF9FWEVDVVRBQkxFX0RFQ0xBUkUoRHVtcFJlbmRlclRyZWUpCiBXRUJLSVRfSU5DTFVERV9D
T05GSUdfRklMRVNfSUZfRVhJU1RTKCkKIFdFQktJVF9FWEVDVVRBQkxFKER1bXBSZW5kZXJUcmVl
KQoraWYgKE5PVCBXSU4zMikKKyAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihEdW1w
UmVuZGVyVHJlZSBEdW1wUmVuZGVyVHJlZVByZWZpeC5oKQorZW5kaWYgKCkKIAogaWYgKEVOQUJM
RV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIGFkZF9zdWJkaXJlY3RvcnkoVGVzdE5ldHNjYXBl
UGx1Z0luKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21h
a2UgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCBmZDA2NTJi
NDNmNWMuLjJkNTA5YzIzYzJmMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvUGxh
dGZvcm1XaW4uY21ha2UKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21h
a2UKQEAgLTcyLDcgKzcyLDYgQEAgZWxzZSAoKQogICAgIGVuZGlmICgpCiBlbmRpZiAoKQogCi1X
RUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiRHVtcFJlbmRlclRyZWVQcmVmaXguaCIgIndp
bi9EdW1wUmVuZGVyVHJlZVByZWZpeC5jcHAiIER1bXBSZW5kZXJUcmVlX1NPVVJDRVMpCiBzZXQo
Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHUyAiJHtDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTfSAk
e01TVkNfUlVOVElNRV9MSU5LRVJfRkxBR1N9IikKIAogV0VCS0lUX1dSQVBfRVhFQ1VUQUJMRShE
dW1wUmVuZGVyVHJlZQpAQCAtODAsMyArNzksNiBAQCBXRUJLSVRfV1JBUF9FWEVDVVRBQkxFKER1
bXBSZW5kZXJUcmVlCiAgICAgTElCUkFSSUVTIHNobHdhcGkKICkKIHRhcmdldF9jb21waWxlX2Rl
ZmluaXRpb25zKER1bXBSZW5kZXJUcmVlIFBSSVZBVEUgJHt3cmFwcGVyX0RFRklOSVRJT05TfSkK
KworIyBBZGQgcHJlY29tcGlsZWQgaGVhZGVycyB0byB3cmFwcGVyIGxpYnJhcnkKK1dFQktJVF9B
RERfUFJFQ09NUElMRURfSEVBREVSKER1bXBSZW5kZXJUcmVlTGliIER1bXBSZW5kZXJUcmVlUHJl
Zml4LmgpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRy
ZWVQcmVmaXguY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlUHJl
Zml4LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWM3NWQ0YTM2MDJkLi4wMDAw
MDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlUHJl
Zml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRo
ZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZVByZWZp
eC5oIgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQKaW5kZXggNjljMjk0YzgyOGMw
Li5kNWI2ZDJlOWM1MTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VM
aXN0cy50eHQKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dApAQCAt
MTQwLDYgKzE0MCw5IEBAIHRhcmdldF9saW5rX2xpYnJhcmllcyhUZXN0UnVubmVySW5qZWN0ZWRC
dW5kbGUgUFJJVkFURSAke1dlYktpdFRlc3RSdW5uZXJJbmplY3RlCiBhZGRfZGVwZW5kZW5jaWVz
KFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZSBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVC
aW5kaW5ncykKIAogV0VCS0lUX0VYRUNVVEFCTEUoV2ViS2l0VGVzdFJ1bm5lcikKK2lmIChOT1Qg
V0lOMzIpCisgICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViS2l0VGVzdFJ1bm5l
ciBXZWJLaXRUZXN0UnVubmVyUHJlZml4LmgpCitlbmRpZiAoKQogCiBpZiAoQ09NUElMRVJfSVNf
R0NDX09SX0NMQU5HKQogICAgIFdFQktJVF9BRERfVEFSR0VUX0NYWF9GTEFHUyhUZXN0UnVubmVy
SW5qZWN0ZWRCdW5kbGUgLVduby11bnVzZWQtcGFyYW1ldGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvUGxhdGZvcm1GVFcuY21ha2UKaW5kZXggNmYxYzk2NzNiM2JmLi4xNGVjNTczMGQyZmMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1GVFcuY21ha2UKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZQpAQCAtMjksOCArMjksNiBA
QCBsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVyX0xJQlJBUklFUwogICAgIE9sZWFjYwogKQog
Ci1XRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5o
IiAid2luL1dlYktpdFRlc3RSdW5uZXJQcmVmaXguY3BwIiBXZWJLaXRUZXN0UnVubmVyX1NPVVJD
RVMpCi0KIHNldChDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICIke0NNQUtFX1NIQVJFRF9MSU5L
RVJfRkxBR1N9ICR7TVNWQ19SVU5USU1FX0xJTktFUl9GTEFHU30iKQogCiBXRUJLSVRfV1JBUF9F
WEVDVVRBQkxFKFdlYktpdFRlc3RSdW5uZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvUGxhdGZvcm1XaW4uY21ha2UgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3Jt
V2luLmNtYWtlCmluZGV4IDQ1M2YyYzdhMzg0Mi4uMTE5OTlmNTRhY2U5IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTM4LDggKzM4LDYgQEAgbGlzdChBUFBF
TkQgV2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlX0xJQlJBUklFUwogICAgICQ8VEFSR0VU
X09CSkVDVFM6V2ViQ29yZVRlc3RTdXBwb3J0PgogKQogCi1XRUJLSVRfQUREX1BSRUNPTVBJTEVE
X0hFQURFUigiV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oIiAid2luL1dlYktpdFRlc3RSdW5uZXJQ
cmVmaXguY3BwIiBXZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMpCi0KIHNldChDTUFLRV9TSEFSRURf
TElOS0VSX0ZMQUdTICIke0NNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1N9ICR7TVNWQ19SVU5USU1F
X0xJTktFUl9GTEFHU30iKQogCiBXRUJLSVRfV1JBUF9FWEVDVVRBQkxFKFdlYktpdFRlc3RSdW5u
ZXIKQEAgLTQ3LDMgKzQ1LDYgQEAgV0VCS0lUX1dSQVBfRVhFQ1VUQUJMRShXZWJLaXRUZXN0UnVu
bmVyCiAgICAgTElCUkFSSUVTIHNobHdhcGkKICkKIHRhcmdldF9jb21waWxlX2RlZmluaXRpb25z
KFdlYktpdFRlc3RSdW5uZXIgUFJJVkFURSAke3dyYXBwZXJfREVGSU5JVElPTlN9KQorCisjIEFk
ZCBwcmVjb21waWxlZCBoZWFkZXJzIHRvIHdyYXBwZXIgbGlicmFyeQorV0VCS0lUX0FERF9QUkVD
T01QSUxFRF9IRUFERVIoV2ViS2l0VGVzdFJ1bm5lckxpYiBXZWJLaXRUZXN0UnVubmVyUHJlZml4
LmgpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9XZWJLaXRUZXN0UnVu
bmVyUHJlZml4LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1dlYktpdFRlc3RSdW5u
ZXJQcmVmaXguY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NGM3NGNlOTVjYTAu
LjAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9XZWJLaXRUZXN0
UnVubmVyUHJlZml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
LSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNpbmNsdWRlICJXZWJLaXRUZXN0
UnVubmVyUHJlZml4LmgiCg==
</data>
<flag name="commit-queue"
          id="466355"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442060</attachid>
            <date>2021-10-21 13:28:05 -0700</date>
            <delta_ts>2021-10-25 15:48:23 -0700</delta_ts>
            <desc>Windows and PlayStation fixes</desc>
            <filename>bug-139438.diff</filename>
            <type>text/plain</type>
            <size>30283</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA4YjkxODJjZWQxMDEuLjA0MWJh
ZDhmNWEwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTUwNiw2ICsx
NTA2LDcgQEAgZW5kaWYgKCkKIFdFQktJVF9DT01QVVRFX1NPVVJDRVMoSmF2YVNjcmlwdENvcmUp
CiBXRUJLSVRfRlJBTUVXT1JLKEphdmFTY3JpcHRDb3JlKQogV0VCS0lUX0ZSQU1FV09SS19UQVJH
RVQoSmF2YVNjcmlwdENvcmUpCitXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihKYXZhU2Ny
aXB0Q29yZSBKYXZhU2NyaXB0Q29yZVByZWZpeC5oKQogCiBpZiAoTk9UICIke1BPUlR9IiBTVFJF
UVVBTCAiTWFjIikKICAgICBpZiAoJHtKYXZhU2NyaXB0Q29yZV9MSUJSQVJZX1RZUEV9IFNUUkVR
VUFMICJTSEFSRUQiKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlUHJlZml4LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVm
aXguaAppbmRleCBjYjc1YTE4NDUwN2MuLjQ5YTE3NWZmZTRkNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmgKQEAgLTIzLDExICsyMywxNyBAQAogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCisjaWYgZGVmaW5lZChIQVZFX0NPTkZJR19IKSAmJiBIQVZFX0NP
TkZJR19IICYmIGRlZmluZWQoQlVJTERJTkdfV0lUSF9DTUFLRSkKKyNpbmNsdWRlICJjbWFrZWNv
bmZpZy5oIgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fQVBQTEVfXykKICNpZmRlZiBfX2NwbHVz
cGx1cwogI2RlZmluZSBOVUxMIF9fbnVsbAogI2Vsc2UKICNkZWZpbmUgTlVMTCAoKHZvaWQgKikw
KQogI2VuZGlmCisjZW5kaWYKIAogI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8ZmxvYXQu
aD4KQEAgLTM2LDE4ICs0MiwxOSBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3Rk
bGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3RyaW5ncy5oPgogI2luY2x1
ZGUgPHRpbWUuaD4KKworI2lmIGRlZmluZWQoX19BUFBMRV9fKQorI2luY2x1ZGUgPHN0cmluZ3Mu
aD4KICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KICNpbmNsdWRlIDxzeXMvdGltZS5oPgogI2luY2x1
ZGUgPHN5cy90aW1lYi5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2VuZGlmCiAKICNpZmRl
ZiBfX2NwbHVzcGx1cwotCiAjaW5jbHVkZSA8bGlzdD4KICNpbmNsdWRlIDx0eXBlaW5mbz4KLQog
I2VuZGlmCiAKICNpZmRlZiBfX2NwbHVzcGx1cwpAQCAtNTUsNyArNjIsMTEgQEAKICNkZWZpbmUg
ZGVsZXRlICgiaWYgeW91IHVzZSBuZXcvZGVsZXRlIG1ha2Ugc3VyZSB0byBpbmNsdWRlIGNvbmZp
Zy5oIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUiKCkpIAogI2VuZGlmCiAKLS8qIFdvcmsgYXJvdW5k
IGJ1ZyB3aXRoIEMrKyBsaWJyYXJ5IHRoYXQgc2NyZXdzIHVwIE9iamVjdGl2ZS1DKysgd2hlbiBl
eGNlcHRpb24gc3VwcG9ydCBpcyBkaXNhYmxlZC4gKi8KKy8qIFdoZW4gQysrIGV4Y2VwdGlvbnMg
YXJlIGRpc2FibGVkLCB0aGUgQysrIGxpYnJhcnkgZGVmaW5lcyB8dHJ5fCBhbmQgfGNhdGNofAor
ICogdG8gYWxsb3cgQysrIGNvZGUgdGhhdCBleHBlY3RzIGV4Y2VwdGlvbnMgdG8gYnVpbGQuIFRo
ZXNlIGRlZmluaXRpb25zCisgKiBpbnRlcmZlcmUgd2l0aCBPYmplY3RpdmUtQysrIHVzZXMgb2Yg
T2JqZWN0aXZlLUMgZXhjZXB0aW9uIGhhbmRsZXJzLCB3aGljaAorICogdXNlIHxAdHJ5fCBhbmQg
fEBjYXRjaHwuIEFzIGEgd29ya2Fyb3VuZCwgdW5kZWZpbmUgdGhlc2UgbWFjcm9zLiAqLworI2lm
ZGVmIF9fT0JKQ19fCiAjdW5kZWYgdHJ5CiAjdW5kZWYgY2F0Y2gKLQorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IGJjYzgxOGY5NzhjOC4uMTk3MDFlNzYxZGNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMjIzMiwxMCArMjIzMiw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UyAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vWE1MTmFtZXMuY3BwKQogCiBXRUJLSVRf
Q09NUFVURV9TT1VSQ0VTKFdlYkNvcmUpCiAKLWlmIChNU1ZDKQotICAgIFdFQktJVF9BRERfUFJF
Q09NUElMRURfSEVBREVSKCJXZWJDb3JlUHJlZml4LmgiICJXZWJDb3JlUHJlZml4LmNwcCIgV2Vi
Q29yZV9TT1VSQ0VTKQotZW5kaWYgKCkKLQogV0VCS0lUX0NPUFlfRklMRVMoV2ViQ29yZV9Db3B5
UHJpdmF0ZUhlYWRlcnMKICAgICBERVNUSU5BVElPTiAke1dlYkNvcmVfUFJJVkFURV9GUkFNRVdP
UktfSEVBREVSU19ESVJ9L1dlYkNvcmUKICAgICBGSUxFUyAke1dlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSU30KQEAgLTIyNTIsNiArMjI0OCw3IEBAIGVuZGlmICgpCiAKIFdFQktJVF9G
UkFNRVdPUksoV2ViQ29yZSkKIFdFQktJVF9GUkFNRVdPUktfVEFSR0VUKFdlYkNvcmUpCitXRUJL
SVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihXZWJDb3JlIFdlYkNvcmVQcmVmaXguaCkKIAogaWYg
KEFQUExFKQogICAgIHNldF90YXJnZXRfcHJvcGVydGllcyhXZWJDb3JlIFBST1BFUlRJRVMgTElO
S19GTEFHUyAiLXN1Yl9saWJyYXJ5IGxpYm9iamMgLXVtYnJlbGxhIFdlYktpdCAtYWxsb3dhYmxl
X2NsaWVudCBXZWJDb3JlVGVzdFN1cHBvcnQgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0MiAtYWxs
b3dhYmxlX2NsaWVudCBXZWJLaXRMZWdhY3kiKQpAQCAtMjI2NSwxMCArMjI2Miw2IEBAIGlmIChD
TUFLRV9DT01QSUxFUl9JU19HTlVDWFggQU5EICIke0xPV0VSQ0FTRV9DTUFLRV9IT1NUX1NZU1RF
TV9QUk9DRVNTT1J9IiBNQVRDCiAgICAgV0VCS0lUX0FERF9UQVJHRVRfQ1hYX0ZMQUdTKFdlYkNv
cmUgLWZuby10cmVlLXNyYSkKIGVuZGlmICgpCiAKLWlmIChNU1ZDKQotICAgIFdFQktJVF9BRERf
UFJFQ09NUElMRURfSEVBREVSKCJXZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaCIgInRlc3Rpbmcv
anMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmNwcCIgV2ViQ29yZVRlc3RTdXBwb3J0X1NPVVJD
RVMpCi1lbmRpZiAoKQotCiBXRUJLSVRfQ09QWV9GSUxFUyhDb3B5X1dlYkNvcmVUZXN0U3VwcG9y
dFByaXZhdGVIZWFkZXJzCiAgICAgREVTVElOQVRJT04gJHtXZWJDb3JlX1BSSVZBVEVfRlJBTUVX
T1JLX0hFQURFUlNfRElSfS9XZWJDb3JlVGVzdFN1cHBvcnQKICAgICBGSUxFUyB0ZXN0aW5nL2pz
L1dlYkNvcmVUZXN0U3VwcG9ydC5oIHRlc3RpbmcvY29jb2EvV2ViQXJjaGl2ZUR1bXBTdXBwb3J0
LmgKQEAgLTIyOTAsNiArMjI4Myw3IEBAIGVuZGlmICgpCiAKIFdFQktJVF9GUkFNRVdPUksoV2Vi
Q29yZVRlc3RTdXBwb3J0KQogV0VCS0lUX0ZSQU1FV09SS19UQVJHRVQoV2ViQ29yZVRlc3RTdXBw
b3J0KQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViQ29yZVRlc3RTdXBwb3J0IHRl
c3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgpCiAKIGlmICgke1dlYkNvcmVfTElC
UkFSWV9UWVBFfSBNQVRDSEVTICJTSEFSRUQiKQogICAgIHNldF90YXJnZXRfcHJvcGVydGllcyhX
ZWJDb3JlIFBST1BFUlRJRVMgVkVSU0lPTiAke1BST0pFQ1RfVkVSU0lPTn0gU09WRVJTSU9OICR7
UFJPSkVDVF9WRVJTSU9OX01BSk9SfSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmVEZXJpdmVkU291cmNlc1ByZWZpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlRGVyaXZl
ZFNvdXJjZXNQcmVmaXguY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMGMyZDc4
OTVhN2UuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlRGVyaXZlZFNv
dXJjZXNQcmVmaXguY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiV2ViQ29yZVBy
ZWZpeC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjBjMmQ3ODk1YTdlLi4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZVByZWZpeC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJXZWJDb3JlUHJl
Zml4LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKaW5kZXggZDBjNDVmNjYyZGU3Li5mNmRmNDY2MWFk
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmgKQEAgLTExNiw2ICsxMTYsMjkgQEAKIAogI2lmIFBM
QVRGT1JNKFdJTl9DQUlSTykKICNpbmNsdWRlIDx3aW5kb3dzLmg+CisKKyNlbGlmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV1BFKQorCisjaWYgVVNFKENBSVJPKQorI2luY2x1ZGUgPGNhaXJv
Lmg+CisjZW5kaWYKKworI2lmIFVTRShIQVJGQlVaWikKKyNpbmNsdWRlIDxoYi5oPgorI2VuZGlm
CisKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2VuZGlmCisKKyNp
ZiBVU0UoU09VUCkKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNlbmRpZgorCisjaWYgVVNF
KEdTVFJFQU1FUikKKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjZW5kaWYKKwogI2Vsc2UKIAogI2lm
IE9TKFdJTkRPV1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNv
cmVUZXN0U3VwcG9ydFByZWZpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNv
cmVUZXN0U3VwcG9ydFByZWZpeC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMw
ZWFhMzNjNGQ2MC4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMv
V2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1
ZGUgIldlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmgKaW5kZXggNzViYTI0MDdlZTQx
Li5mMGZiMTNlMTcyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2Vi
Q29yZVRlc3RTdXBwb3J0UHJlZml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9X
ZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaApAQCAtNDMsOSArNDMsNiBAQAogCiAjaWYgIU9TKFdJ
TkRPV1MpCiAjaW5jbHVkZSA8cHRocmVhZC5oPgotCi0jZGVmaW5lIFdFQkNPUkVfVEVTVFNVUFBP
UlRfRVhQT1JUIFdFQkNPUkVfRVhQT1JUCi0KICNlbmRpZiAvLyBPUyhXSU5ET1dTKQogCiAjaW5j
bHVkZSA8ZmNudGwuaD4KQEAgLTg4LDExICs4NSwyNyBAQAogCiAjaWYgUExBVEZPUk0oV0lOX0NB
SVJPKQogI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNlbHNlCisjZWxpZiBQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdQRSkKIAotI2lmIE9TKFdJTkRPV1MpCi0jaWYgVVNFKENHKQorI2lmIFVTRShD
QUlSTykKKyNpbmNsdWRlIDxjYWlyby9jYWlyby5oPgorI2VuZGlmCisKKyNpZiBVU0UoR0xJQikK
KyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2VuZGlmCisKKyNpZiBVU0UoU09VUCkKKyNpbmNs
dWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdTVFJFQU1FUikKKyNpbmNs
dWRlIDxnc3QvZ3N0Lmg+CisjZW5kaWYKIAorI2VsaWYgT1MoV0lORE9XUykKKworI2lmIFVTRShD
RykKIC8vIEZJWE1FIDxyZGFyOi8vcHJvYmxlbS84MjA4ODY4PiBSZW1vdmUgc3VwcG9ydCBmb3Ig
b2Jzb2xldGUgQ29sb3JTeW5jIEFQSSwgQ29yZVNlcnZpY2VzIGhlYWRlciBpbiBDb3JlR3JhcGhp
Y3MKIC8vIFdlIGNhbiByZW1vdmUgdGhpcyBvbmNlIHRoZSBuZXcgQ29sb3JTeW5jIEFQSXMgYXJl
IGF2YWlsYWJsZSBpbiBhbiBpbnRlcm5hbCBTYWZhcmkgU0RLLgogI2luY2x1ZGUgPENvbG9yU3lu
Yy9Db2xvclN5bmMuaD4KQEAgLTEwMSwxOCArMTE0LDIwIEBACiAjZGVmaW5lIE9CU09MRVRFX0NP
TE9SU1lOQ19BUEkKICNlbmRpZgogI2VuZGlmCisKICNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQog
I2luY2x1ZGUgPENGTmV0d29yay9DRk5ldHdvcmsuaD4KIC8vIE9uIFdpbmRvd3MsIGRpc3BhdGNo
LmggbmVlZHMgdG8gYmUgaW5jbHVkZWQgYmVmb3JlIGNlcnRhaW4gQ0ZOZXR3b3JrIGhlYWRlcnMu
CiAjaW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KICNlbmRpZgorCiAjaW5jbHVkZSA8d2lu
ZG93cy5oPgotI2Vsc2UKKworI2VsaWYgZGVmaW5lZChfX0FQUExFX18pCisKICNpZiAhUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICNpbmNsdWRlIDxDb3JlU2VydmljZXMvQ29yZVNlcnZpY2VzLmg+CiAj
ZW5kaWYgLy8gIVBMQVRGT1JNKElPU19GQU1JTFkpCi0jZW5kaWYgLy8gT1MoV0lORE9XUykKLQog
I2VuZGlmCiAKICNpZmRlZiBfX09CSkNfXwpAQCAtMTM2LDQgKzE1MSwzIEBACiAjdW5kZWYgdHJ5
CiAjdW5kZWYgY2F0Y2gKICNlbmRpZgotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA3ZTZhYTI3ZDg1
ZTQuLmE4YjI1ZDc4YzkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0zOTEsMTEgKzM5MSw3IEBA
IGVuZGlmICgpCiAKIG1hY3JvKEFERF9XRUJLSVRfUFJFRklYX0hFQURFUiBfdGFyZ2V0KQogICAg
IGlmIChXZWJLaXRfVVNFX1BSRUZJWF9IRUFERVIpCi0gICAgICAgIGdldF90YXJnZXRfcHJvcGVy
dHkoT0xEX0NPTVBJTEVfRkxBR1MgJHtfdGFyZ2V0fSBDT01QSUxFX0ZMQUdTKQotICAgICAgICBp
ZiAoJHtPTERfQ09NUElMRV9GTEFHU30gU1RSRVFVQUwgIk9MRF9DT01QSUxFX0ZMQUdTLU5PVEZP
VU5EIikKLSAgICAgICAgICAgIHNldChPTERfQ09NUElMRV9GTEFHUyAiIikKLSAgICAgICAgZW5k
aWYgKCkKLSAgICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7X3RhcmdldH0gUFJPUEVSVElF
UyBDT01QSUxFX0ZMQUdTICIke09MRF9DT01QSUxFX0ZMQUdTfSAtaW5jbHVkZSAke1dFQktJVF9E
SVJ9L1dlYktpdDJQcmVmaXguaCIpCisgICAgICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVB
REVSKCR7X3RhcmdldH0gV2ViS2l0MlByZWZpeC5oKQogICAgIGVuZGlmICgpCiBlbmRtYWNybygp
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZl
bnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaAppbmRl
eCA0NGQ2ZTc3OWEzNmEuLjljYTBhYjNkMGRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaApAQCAtNDQsNiArNDQsNyBAQCBzdHJ1Y3QgTlNFdmVu
dDsKICNlbmRpZgogdHlwZWRlZiBOU0V2ZW50ICpXS05hdGl2ZUV2ZW50UHRyOwogI2VsaWYgZGVm
aW5lZChCVUlMRElOR19HVEtfXykKK3R5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50Owog
dHlwZWRlZiBjb25zdCBHZGtFdmVudCogV0tOYXRpdmVFdmVudFB0cjsKICNlbGlmIGRlZmluZWQo
V0lOMzIpCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCB0YWdNU0cqIFdLTmF0aXZlRXZlbnRQdHI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguY3BwIGIvU291cmNlL1dlYktp
dC9XZWJLaXQyUHJlZml4LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTJiNGE5
MDFjN2NiLi4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
V2ViS2l0MlByZWZpeC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaAppbmRleCA0MDZhYTgxMThmYTYuLjZi
MjliOTk4MmUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmgKQEAgLTYzLDYgKzYzLDM0IEBACiAKICNl
bmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
V1BFKQorCisjaWYgVVNFKENBSVJPKQorI2luY2x1ZGUgPGNhaXJvL2NhaXJvLmg+CisjZW5kaWYK
KworI2lmIFVTRShIQVJGQlVaWikKKyNpbmNsdWRlIDxoYi5oPgorI2VuZGlmCisKKyNpZiBVU0Uo
R0xJQikKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2VuZGlmCisKKyNpZiBVU0UoU09VUCkK
KyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdTVFJFQU1FUikK
KyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNs
dWRlIDxndGsvZ3RrLmg+CisjZW5kaWYKKworI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQorCiAvKiBXaGVuIEMrKyBleGNlcHRpb25zIGFyZSBkaXNhYmxlZCwgdGhlIEMr
KyBsaWJyYXJ5IGRlZmluZXMgfHRyeXwgYW5kIHxjYXRjaHwKICogdG8gYWxsb3cgQysrIGNvZGUg
dGhhdCBleHBlY3RzIGV4Y2VwdGlvbnMgdG8gYnVpbGQuIFRoZXNlIGRlZmluaXRpb25zCiAqIGlu
dGVyZmVyZSB3aXRoIE9iamVjdGl2ZS1DKysgdXNlcyBvZiBPYmplY3RpdmUtQyBleGNlcHRpb24g
aGFuZGxlcnMsIHdoaWNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4dAppbmRleCA2NTg5Njc2
OTUyYzMuLmQ4M2I0Y2U0NTMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlzdHMudHh0CkBAIC00
Miw3ICs0Miw2IEBAIFdFQktJVF9GUkFNRVdPUktfREVDTEFSRShXZWJLaXRMZWdhY3kpCiBXRUJL
SVRfSU5DTFVERV9DT05GSUdfRklMRVNfSUZfRVhJU1RTKCkKIAogaWYgKE1TVkMpCi0gICAgV0VC
S0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktpdFByZWZpeC5oIiAid2luL1dlYktpdFBy
ZWZpeC5jcHAiIFdlYktpdExlZ2FjeV9TT1VSQ0VTKQogICAgIGxpc3QoQVBQRU5EIFdlYktpdExl
Z2FjeV9TT1VSQ0VTIHdpbi9XZWJLaXQucmVzb3VyY2VzL1dlYktpdC5yYykKICAgICBhZGRfZGVm
aW5pdGlvbnMoL0RXRUJLSVRfRVhQT1JUUyAvREZSQU1FV09SS19OQU1FPVdlYktpdExlZ2FjeSkK
IGVuZGlmICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1BsYXRmb3JtTWFjLmNt
YWtlIGIvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCBiNTNlNjIy
ZGM2ZjMuLmY3NmNmMzVjM2EyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0
Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1BsYXRmb3JtTWFjLmNtYWtl
CkBAIC03MTUsMyArNzE1LDUgQEAgV0VCS0lUX01BS0VfRk9SV0FSRElOR19IRUFERVJTKFdlYktp
dExlZ2FjeQogc2V0KFdlYktpdExlZ2FjeV9PVVRQVVRfTkFNRSBXZWJLaXRMZWdhY3kpCiAKIHNl
dChDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICR7Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHU30g
Ii1jb21wYXRpYmlsaXR5X3ZlcnNpb24gMSAtY3VycmVudF92ZXJzaW9uICR7V0VCS0lUX01BQ19W
RVJTSU9OfSAtZnJhbWV3b3JrIFNlY3VyaXR5SW50ZXJmYWNlIikKKworV0VCS0lUX0FERF9QUkVD
T01QSUxFRF9IRUFERVIoV2ViS2l0TGVnYWN5IG1hYy9XZWJLaXRQcmVmaXguaCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IGJjYzY2Y2NiYWY3Ny4uYTYxNWM3MTcxYzBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1BsYXRmb3JtV2luLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTQ4OSwzICs0ODksNSBA
QCBsaXN0KEFQUEVORCBXZWJLaXRMZWdhY3lfUFJJVkFURV9ERUZJTklUSU9OUwogICAgIFNUQVRJ
Q0FMTFlfTElOS0VEX1dJVEhfUEFMCiAgICAgU1RBVElDQUxMWV9MSU5LRURfV0lUSF9XZWJDb3Jl
CiApCisKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKFdlYktpdExlZ2FjeSB3aW4vV2Vi
S2l0UHJlZml4LmgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRQ
cmVmaXguY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UHJlZml4LmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDA2N2U5NmM4MjdlLi4wMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UHJlZml4LmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDI4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0
cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLSNpbmNsdWRlICJXZWJLaXRQcmVmaXguaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlz
dHMudHh0CmluZGV4IGJjMDk3OThiOGIwMi4uN2FlN2MxYzAwNzMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlv
bnMvQ01ha2VMaXN0cy50eHQKQEAgLTQxLDggKzQxLDYgQEAgZmlsZShDT1BZICR7Q01BS0VfQ1VS
UkVOVF9TT1VSQ0VfRElSfS9BUEkvV0tDQUNGSW1hZ2VJbnRlcm5hbC5oIERFU1RJTkFUSU9OICR7
REUKIGZpbGUoQ09QWSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vQVBJL1dLQ0FDRlZpZXcu
aCBERVNUSU5BVElPTiAke0RFUklWRURfU09VUkNFU19ESVJ9L1dlYktpdFF1YXJ0ekNvcmVBZGRp
dGlvbnMpCiBmaWxlKENPUFkgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L0FQSS9XS0NBQ0ZW
aWV3UHJpdmF0ZS5oIERFU1RJTkFUSU9OICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViS2l0UXVh
cnR6Q29yZUFkZGl0aW9ucykKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktp
dFF1YXJ0ekNvcmVBZGRpdGlvbnNQcmVmaXguaCIgIldlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNQ
cmVmaXguY3BwIiBXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zX1NPVVJDRVMpCi0KIGluY2x1ZGVf
ZGlyZWN0b3JpZXMoCiAgICAgLgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRp
bmdIZWFkZXJzIgpAQCAtNTksMyArNTcsNCBAQCB0YXJnZXRfbGlua19saWJyYXJpZXMoV2ViS2l0
UXVhcnR6Q29yZUFkZGl0aW9ucwogICAgIENvcmVHcmFwaGljcyR7REVCVUdfU1VGRklYfQogICAg
IFF1YXJ0ekNvcmUke0RFQlVHX1NVRkZJWH0KICkKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVB
REVSKFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMgV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9uc1By
ZWZpeC5oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UXVhcnR6
Q29yZUFkZGl0aW9ucy9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zUHJlZml4LmNwcCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvV2ViS2l0UXVhcnR6
Q29yZUFkZGl0aW9uc1ByZWZpeC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2
OWVkOTNjMWU0MC4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9uc1ByZWZpeC5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0vKgotKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKgotKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0qIGFyZSBtZXQ6Ci0qIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0qICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotKgotKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0q
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0qIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0qIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0qIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0qIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSovCi0KLSNpbmNsdWRlICJXZWJLaXRRdWFydHpDb3JlQWRkaXRp
b25zUHJlZml4LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtl
IGIvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQppbmRleCAyMDBjZTQ4MTg4OWIuLjRi
NTRlZjIwZDAyNSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQor
KysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCkBAIC05MCwzNCArOTAsMTcgQEAg
bWFjcm8oV0VCS0lUX0FERF9TT1VSQ0VfREVQRU5ERU5DSUVTIF9zb3VyY2UgX2RlcHMpCiAgICAg
dW5zZXQoX3RtcCkKIGVuZG1hY3JvKCkKIAotbWFjcm8oV0VCS0lUX0FERF9QUkVDT01QSUxFRF9I
RUFERVIgX2hlYWRlciBfY3BwIF9zb3VyY2UpCi0gICAgaWYgKE1TVkMpCi0gICAgICAgIGdldF9m
aWxlbmFtZV9jb21wb25lbnQoUHJlY29tcGlsZWRCYXNlbmFtZSAke19jcHB9IE5BTUVfV0UpCi0g
ICAgICAgIGZpbGUoTUFLRV9ESVJFQ1RPUlkgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8k
e19zb3VyY2V9IikKLSAgICAgICAgc2V0KFByZWNvbXBpbGVkQmluYXJ5ICIke0NNQUtFX0NVUlJF
TlRfQklOQVJZX0RJUn0vJHtfc291cmNlfS8ke1ByZWNvbXBpbGVkQmFzZW5hbWV9LnBjaCIpCi0g
ICAgICAgIHNldChfc291cmNlcyAkeyR7X3NvdXJjZX19KQotCi0gICAgICAgICMgY2xhbmctY2wg
cmVxdWlyZXMgL0ZJIHdpdGggL1ljCi0gICAgICAgIGlmIChDT01QSUxFUl9JU19DTEFOR19DTCkK
LSAgICAgICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygke19jcHB9Ci0gICAgICAg
ICAgICAgICAgUFJPUEVSVElFUyBDT01QSUxFX0ZMQUdTICIvWWNcIiR7X2hlYWRlcn1cIiAvRnBc
IiR7UHJlY29tcGlsZWRCaW5hcnl9XCIgL0ZJXCIke19oZWFkZXJ9XCIiCi0gICAgICAgICAgICAg
ICAgT0JKRUNUX09VVFBVVFMgIiR7UHJlY29tcGlsZWRCaW5hcnl9IikKLSAgICAgICAgZWxzZSAo
KQotICAgICAgICAgICAgc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7X2NwcH0KLSAgICAg
ICAgICAgICAgICBQUk9QRVJUSUVTIENPTVBJTEVfRkxBR1MgIi9ZY1wiJHtfaGVhZGVyfVwiIC9G
cFwiJHtQcmVjb21waWxlZEJpbmFyeX1cIiIKLSAgICAgICAgICAgICAgICBPQkpFQ1RfT1VUUFVU
UyAiJHtQcmVjb21waWxlZEJpbmFyeX0iKQotICAgICAgICBlbmRpZiAoKQotICAgICAgICBzZXRf
c291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtfc291cmNlc30KLSAgICAgICAgICAgIFBST1BFUlRJ
RVMgQ09NUElMRV9GTEFHUyAiL1l1XCIke19oZWFkZXJ9XCIgL0ZJXCIke19oZWFkZXJ9XCIgL0Zw
XCIke1ByZWNvbXBpbGVkQmluYXJ5fVwiIikKLQotICAgICAgICBmb3JlYWNoIChfc3JjICR7X3Nv
dXJjZXN9KQotICAgICAgICAgICAgV0VCS0lUX0FERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7X3Ny
Y30gJHtQcmVjb21waWxlZEJpbmFyeX0pCi0gICAgICAgIGVuZGZvcmVhY2ggKCkKIAotICAgICAg
ICBsaXN0KEFQUEVORCAke19zb3VyY2V9ICR7X2NwcH0pCi0gICAgZW5kaWYgKCkKLSAgICAjRklY
TUU6IEFkZCBzdXBwb3J0IGZvciBYY29kZS4KLWVuZG1hY3JvKCkKK2lmIChDTUFLRV9WRVJTSU9O
IFZFUlNJT05fR1JFQVRFUl9FUVVBTCAzLjE3KQorICAgIG1hY3JvKFdFQktJVF9BRERfUFJFQ09N
UElMRURfSEVBREVSIF90YXJnZXQgX2hlYWRlcikKKyAgICAgICAgdGFyZ2V0X3ByZWNvbXBpbGVf
aGVhZGVycygke190YXJnZXR9IFBSSVZBVEUgJHtfaGVhZGVyfSkKKyAgICBlbmRtYWNybygpCitl
bHNlICgpCisgICAgbWVzc2FnZShXQVJOSU5HICJQcmVjb21waWxlZCBoZWFkZXJzIGRpc2FibGVk
LCBDTWFrZSAzLjE3IG9yIG5ld2VyIHJlcXVpcmVkIikKKyAgICBtYWNybyhXRUJLSVRfQUREX1BS
RUNPTVBJTEVEX0hFQURFUiBfdGFyZ2V0IF9oZWFkZXIpCisgICAgICAgICMgTm8tb3AKKyAgICBl
bmRtYWNybygpCitlbmRpZiAoKQogCiBtYWNybyhXRUJLSVRfRlJBTUVXT1JLX0RFQ0xBUkUgX3Rh
cmdldCkKICAgICAjIGFkZF9saWJyYXJ5KCkgd2l0aG91dCBhbnkgc291cmNlIGZpbGVzIHRyaWdn
ZXJzIENNYWtlIHdhcm5pbmcKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtl
TGlzdHMudHh0IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTI0
MTAxMDM3YjZlLi5iNDczY2RkN2ZmOGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0
CkBAIC02Nyw2ICs2Nyw5IEBAIGxpc3QoQVBQRU5EIER1bXBSZW5kZXJUcmVlX1NPVVJDRVMKIFdF
QktJVF9FWEVDVVRBQkxFX0RFQ0xBUkUoRHVtcFJlbmRlclRyZWUpCiBXRUJLSVRfSU5DTFVERV9D
T05GSUdfRklMRVNfSUZfRVhJU1RTKCkKIFdFQktJVF9FWEVDVVRBQkxFKER1bXBSZW5kZXJUcmVl
KQoraWYgKE5PVCBXSU4zMikKKyAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihEdW1w
UmVuZGVyVHJlZSBEdW1wUmVuZGVyVHJlZVByZWZpeC5oKQorZW5kaWYgKCkKIAogaWYgKEVOQUJM
RV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIGFkZF9zdWJkaXJlY3RvcnkoVGVzdE5ldHNjYXBl
UGx1Z0luKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21h
a2UgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCBmZDA2NTJi
NDNmNWMuLjJkNTA5YzIzYzJmMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvUGxh
dGZvcm1XaW4uY21ha2UKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21h
a2UKQEAgLTcyLDcgKzcyLDYgQEAgZWxzZSAoKQogICAgIGVuZGlmICgpCiBlbmRpZiAoKQogCi1X
RUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiRHVtcFJlbmRlclRyZWVQcmVmaXguaCIgIndp
bi9EdW1wUmVuZGVyVHJlZVByZWZpeC5jcHAiIER1bXBSZW5kZXJUcmVlX1NPVVJDRVMpCiBzZXQo
Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHUyAiJHtDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTfSAk
e01TVkNfUlVOVElNRV9MSU5LRVJfRkxBR1N9IikKIAogV0VCS0lUX1dSQVBfRVhFQ1VUQUJMRShE
dW1wUmVuZGVyVHJlZQpAQCAtODAsMyArNzksNiBAQCBXRUJLSVRfV1JBUF9FWEVDVVRBQkxFKER1
bXBSZW5kZXJUcmVlCiAgICAgTElCUkFSSUVTIHNobHdhcGkKICkKIHRhcmdldF9jb21waWxlX2Rl
ZmluaXRpb25zKER1bXBSZW5kZXJUcmVlIFBSSVZBVEUgJHt3cmFwcGVyX0RFRklOSVRJT05TfSkK
KworIyBBZGQgcHJlY29tcGlsZWQgaGVhZGVycyB0byB3cmFwcGVyIGxpYnJhcnkKK1dFQktJVF9B
RERfUFJFQ09NUElMRURfSEVBREVSKER1bXBSZW5kZXJUcmVlTGliIER1bXBSZW5kZXJUcmVlUHJl
Zml4LmgpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRy
ZWVQcmVmaXguY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlUHJl
Zml4LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWM3NWQ0YTM2MDJkLi4wMDAw
MDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlUHJl
Zml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRo
ZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZVByZWZp
eC5oIgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQKaW5kZXggNjljMjk0YzgyOGMw
Li5kNWI2ZDJlOWM1MTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VM
aXN0cy50eHQKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dApAQCAt
MTQwLDYgKzE0MCw5IEBAIHRhcmdldF9saW5rX2xpYnJhcmllcyhUZXN0UnVubmVySW5qZWN0ZWRC
dW5kbGUgUFJJVkFURSAke1dlYktpdFRlc3RSdW5uZXJJbmplY3RlCiBhZGRfZGVwZW5kZW5jaWVz
KFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZSBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVC
aW5kaW5ncykKIAogV0VCS0lUX0VYRUNVVEFCTEUoV2ViS2l0VGVzdFJ1bm5lcikKK2lmIChOT1Qg
V0lOMzIpCisgICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViS2l0VGVzdFJ1bm5l
ciBXZWJLaXRUZXN0UnVubmVyUHJlZml4LmgpCitlbmRpZiAoKQogCiBpZiAoQ09NUElMRVJfSVNf
R0NDX09SX0NMQU5HKQogICAgIFdFQktJVF9BRERfVEFSR0VUX0NYWF9GTEFHUyhUZXN0UnVubmVy
SW5qZWN0ZWRCdW5kbGUgLVduby11bnVzZWQtcGFyYW1ldGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvUGxhdGZvcm1GVFcuY21ha2UKaW5kZXggNmYxYzk2NzNiM2JmLi4xNGVjNTczMGQyZmMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1GVFcuY21ha2UKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZQpAQCAtMjksOCArMjksNiBA
QCBsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVyX0xJQlJBUklFUwogICAgIE9sZWFjYwogKQog
Ci1XRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5o
IiAid2luL1dlYktpdFRlc3RSdW5uZXJQcmVmaXguY3BwIiBXZWJLaXRUZXN0UnVubmVyX1NPVVJD
RVMpCi0KIHNldChDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICIke0NNQUtFX1NIQVJFRF9MSU5L
RVJfRkxBR1N9ICR7TVNWQ19SVU5USU1FX0xJTktFUl9GTEFHU30iKQogCiBXRUJLSVRfV1JBUF9F
WEVDVVRBQkxFKFdlYktpdFRlc3RSdW5uZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvUGxhdGZvcm1XaW4uY21ha2UgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3Jt
V2luLmNtYWtlCmluZGV4IDQ1M2YyYzdhMzg0Mi4uMTE5OTlmNTRhY2U5IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTM4LDggKzM4LDYgQEAgbGlzdChBUFBF
TkQgV2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlX0xJQlJBUklFUwogICAgICQ8VEFSR0VU
X09CSkVDVFM6V2ViQ29yZVRlc3RTdXBwb3J0PgogKQogCi1XRUJLSVRfQUREX1BSRUNPTVBJTEVE
X0hFQURFUigiV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oIiAid2luL1dlYktpdFRlc3RSdW5uZXJQ
cmVmaXguY3BwIiBXZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMpCi0KIHNldChDTUFLRV9TSEFSRURf
TElOS0VSX0ZMQUdTICIke0NNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1N9ICR7TVNWQ19SVU5USU1F
X0xJTktFUl9GTEFHU30iKQogCiBXRUJLSVRfV1JBUF9FWEVDVVRBQkxFKFdlYktpdFRlc3RSdW5u
ZXIKQEAgLTQ3LDMgKzQ1LDYgQEAgV0VCS0lUX1dSQVBfRVhFQ1VUQUJMRShXZWJLaXRUZXN0UnVu
bmVyCiAgICAgTElCUkFSSUVTIHNobHdhcGkKICkKIHRhcmdldF9jb21waWxlX2RlZmluaXRpb25z
KFdlYktpdFRlc3RSdW5uZXIgUFJJVkFURSAke3dyYXBwZXJfREVGSU5JVElPTlN9KQorCisjIEFk
ZCBwcmVjb21waWxlZCBoZWFkZXJzIHRvIHdyYXBwZXIgbGlicmFyeQorV0VCS0lUX0FERF9QUkVD
T01QSUxFRF9IRUFERVIoV2ViS2l0VGVzdFJ1bm5lckxpYiBXZWJLaXRUZXN0UnVubmVyUHJlZml4
LmgpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9XZWJLaXRUZXN0UnVu
bmVyUHJlZml4LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1dlYktpdFRlc3RSdW5u
ZXJQcmVmaXguY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NGM3NGNlOTVjYTAu
LjAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9XZWJLaXRUZXN0
UnVubmVyUHJlZml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
LSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNpbmNsdWRlICJXZWJLaXRUZXN0
UnVubmVyUHJlZml4LmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442431</attachid>
            <date>2021-10-25 15:48:28 -0700</date>
            <delta_ts>2021-10-25 15:54:09 -0700</delta_ts>
            <desc>WIP Patch v11</desc>
            <filename>bug-139438-20211026014827.patch</filename>
            <type>text/plain</type>
            <size>7073</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0Nzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAppbmRleCBkZDczNjYyOGI4YWM2OWM2MTZiNWU5
NjNlYzMwY2E3N2M3ZmFjZDIwLi5iOTlkZTg4NDkyZDViYjlmM2QwYTUyYTMwYTA5ZmVmMTZhMzEy
NjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHAKQEAgLTc1LDYgKzc1LDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisjaW5jbHVkZSAiSlNXZWJBc3NlbWJs
eUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiV2FzbUNvbnRleHRJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
V2ViQXNzZW1ibHlGdW5jdGlvbi5oIgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCmluZGV4IDFmMzRjM2QxZGNm
ZjUyZTA2YTI4MjE1NzExODJmOTJmZmZlOGMwMjEuLmY3ZDk1MWZhNjFmZWY3NWYzZTg2MWUxZGE5
ZmY1ZGIxODZlZjYxMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
SW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAi
Q2FjaGVhYmxlSWRlbnRpZmllcklubGluZXMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNp
bmNsdWRlICJJbmxpbmVBY2Nlc3MuaCIKLSNpbmNsdWRlICJKSVQuaCIKKyNpbmNsdWRlICJKSVRJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVN0
dWJJbmZvLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dEV4Y2VwdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RXhjZXB0
aW9ucy5jcHAKaW5kZXggNmQ4NjdmMjZlYWFhMmNlOGFiOTllZGFlYzBmMGFhMjM2ZGM5MmNkMC4u
NGJiYmM4Yzc2ZGE3MDQ3ZWY0ZDIwZTE3OWI2MzMyMmM2MTRhMGJkZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RXhjZXB0aW9ucy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RXhjZXB0aW9ucy5jcHAKQEAgLTI5LDcgKzI5LDcg
QEAKICNpbmNsdWRlICJMTEludENvbW1vbi5oIgogI2luY2x1ZGUgIkxMSW50RGF0YS5oIgogI2lu
Y2x1ZGUgIkxMSW50VGh1bmtzLmgiCi0jaW5jbHVkZSAiV2FzbUNvbnRleHQuaCIKKyNpbmNsdWRl
ICJXYXNtQ29udGV4dElubGluZXMuaCIKIAogI2lmIExMSU5UX1RSQUNJTkcKICNpbmNsdWRlICJD
YXRjaFNjb3BlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
aGFkb3dSZWFsbU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFk
b3dSZWFsbU9iamVjdC5jcHAKaW5kZXggMjU0NDdhNzFlZTE1MDg1MzdiNDU2ZmEzNmI0YmYxYWNj
MzQ4ZGI0NC4uZGY4ZWJjYmE2ZmRkOTQzNTE4MDY4YjQ3ZmU3OGExNjgyYmY2MTQ2MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1PYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmNw
cApAQCAtMjYsNiArMjYsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNoYWRv
d1JlYWxtT2JqZWN0LmgiCiAKKyNpbmNsdWRlICJBdXhpbGlhcnlCYXJyaWVySW5saW5lcy5oIgor
I2luY2x1ZGUgIlN0cnVjdHVyZUlubGluZXMuaCIKKwogbmFtZXNwYWNlIEpTQyB7CiAKIFNUQVRJ
Q19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShTaGFkb3dSZWFsbU9iamVjdCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbVByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaGFkb3dSZWFsbVByb3Rv
dHlwZS5jcHAKaW5kZXggNDVkOThlM2I5YmNjMjExNWQzNGQ5YzVhYzlmMWIyZjY0NDg3ZmRjYi4u
ZTQ1NWY4YWIwOGI2NjY1YzhmNzJhMTYxZDcwMDYzNGNhMDFkYjIzYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2hhZG93UmVhbG1Qcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NoYWRvd1JlYWxtUHJvdG90eXBlLmNwcApA
QCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jl
YWxtUHJvdG90eXBlLmgiCiAKKyNpbmNsdWRlICJBdXhpbGlhcnlCYXJyaWVySW5saW5lcy5oIgog
I2luY2x1ZGUgIkluZGlyZWN0RXZhbEV4ZWN1dGFibGUuaCIKICNpbmNsdWRlICJJbnRlcnByZXRl
ci5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtU3RyZWFtaW5nQ29tcGlsZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVN0cmVhbWluZ0NvbXBpbGVyLmNwcAppbmRleCA0ZmM0ODE0NzFl
MmJmMDhhZmU0YTBjYzUxZWY4NDhjMjUyNmE3MGVmLi43YzhlZDgwYWU1NWQwMDM2ZGYzM2NlNjE3
ZjI1OTUxMzY4MTY4MjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtU3RyZWFtaW5nQ29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21TdHJlYW1pbmdDb21waWxlci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJX
YXNtU3RyZWFtaW5nQ29tcGlsZXIuaCIKIAogI2luY2x1ZGUgIkRlZmVycmVkV29ya1RpbWVyLmgi
CisjaW5jbHVkZSAiSlNCaWdJbnQuaCIKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5LmgiCiAjaW5j
bHVkZSAiSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1i
bHlIZWxwZXJzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9K
U1dlYkFzc2VtYmx5RXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlFeGNlcHRpb24uY3BwCmluZGV4IDEwM2Q0MzAzM2NlYWQ1ZjFiNDNiNmNk
NjUxZjM2YTc4NTJmZjAxODguLmY1ZmU5Y2JmMTU0Njg3YmVhMWU5NzEzZmEyODNlY2U1N2VmMjk0
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1i
bHlFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2Vi
QXNzZW1ibHlFeGNlcHRpb24uY3BwCkBAIC0yOCw2ICsyOCwxMCBAQAogCiAjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQogCisjaW5jbHVkZSAiQXV4aWxpYXJ5QmFycmllcklubGluZXMuaCIKKyNpbmNs
dWRlICJKU0JpZ0ludC5oIgorI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKKyNpbmNsdWRlICJK
U0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlIZWxwZXJzLmgiCiAK
IG5hbWVzcGFjZSBKU0MgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseUV4Y2VwdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseUV4Y2VwdGlvbi5oCmluZGV4IGE5MmQzNzgyZmExNTZkYmUwNjQ1YjBh
Yzg3ZDc3MWFmZDJlNDNlYjIuLjE5NDBiNjU4NTc5YWU4ZjUzODY4NTdmNTYyOTdkNzU0OTlkMDk3
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1i
bHlFeGNlcHRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFz
c2VtYmx5RXhjZXB0aW9uLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShXRUJBU1NF
TUJMWSkKIAorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiV2FzbVRhZy5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlUYWcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseVRhZy5jcHAKaW5kZXggODNmYzJiMzhhYzBmOWZiN2U1YzFjYzc2NzBjNGNkZGQw
MTYwYmRmZS4uZDZjMmZiMTVjNDAwZWQxODAwMTg0MzlkNjAzMjZiYjdiZjE0MDFhOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhZy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhZy5jcHAK
QEAgLTI4LDYgKzI4LDkgQEAKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKIAorI2luY2x1ZGUg
IkpTQ2VsbElubGluZXMuaCIKKyNpbmNsdWRlICJKU09iamVjdElubGluZXMuaCIKKyNpbmNsdWRl
ICJTdHJ1Y3R1cmVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2FzbVRhZy5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNz
ZW1ibHlUYWcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlU
YWcuaAppbmRleCAzMDNiNWQ1NmUzZDllNzUzODZhZmMzN2ViMGNhNDBlZDJhMmFiNDZkLi42MDUw
NTY4NWRiNGVhNGUxMTUyMzFlZjc3MWMwOThhYjNkNTJkMWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5VGFnLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVRhZy5oCkBAIC0yNyw2ICsyNyw3IEBA
CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKKyNpbmNsdWRlICJKU09iamVjdC5oIgogI2lu
Y2x1ZGUgIldhc21UYWcuaCIKIAogbmFtZXNwYWNlIEpTQyB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUV4Y2VwdGlvbkNvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RXhjZXB0aW9uQ29u
c3RydWN0b3IuY3BwCmluZGV4IDVmNGE1ZjQ0ODZiNGYxN2M4ZmZmYzg3MDc0MTE1MDJiODY3ZTY5
ZjEuLmE2MTQwOWJkODc3ODM0N2Q3M2ExM2I3MmJkMGMwM2Y2YzEwMzgwYzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RXhjZXB0aW9uQ29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
RXhjZXB0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSlND
SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlFeGNlcHRpb24uaCIKICNpbmNsdWRl
ICJKU1dlYkFzc2VtYmx5SGVscGVycy5oIgorI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlUYWcuaCIK
ICNpbmNsdWRlICJXZWJBc3NlbWJseUV4Y2VwdGlvblByb3RvdHlwZS5oIgogCiAjaW5jbHVkZSAi
V2ViQXNzZW1ibHlFeGNlcHRpb25Db25zdHJ1Y3Rvci5sdXQuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RXhjZXB0aW9uUHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RXhjZXB0aW9uUHJv
dG90eXBlLmNwcAppbmRleCAzYzM2YzQ3OTg1YTMyNGMxYjM4OTkzNWVmMWExYjkxMWFhZjVmOGU1
Li4wMTViNzE1YmYwODA5ZWExNTVhODA3NWYzZWNjODM5N2VmNGIwMDI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUV4Y2VwdGlvblByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlFeGNl
cHRpb25Qcm90b3R5cGUuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNsdWRlICJBdXhpbGlh
cnlCYXJyaWVySW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNsdWRlICJK
U1dlYkFzc2VtYmx5RXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiSlNXZWJBc3NlbWJseVRhZy5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFz
c2VtYmx5RXhjZXB0aW9uUHJvdG9GdW5jR2V0QXJnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFnUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFnUHJvdG90eXBlLmNwcAppbmRleCA0
OTNkNDE3YzE4YWM4NGE3Mjk0ZDJlOTE0MmE1NDMzMWYyNjMwNDA3Li45NjQ5NGE3YzIyNTE2NGZl
MDk5ZjU2YTI1NGY3NzFjZmUzNWE0Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhZ1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWdQcm90b3R5cGUuY3BwCkBAIC0yOCw3ICsy
OCwxMSBAQAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCisjaW5jbHVkZSAiSlNDZWxsSW5s
aW5lcy5oIgorI2luY2x1ZGUgIkpTT2JqZWN0SW5saW5lcy5oIgorI2luY2x1ZGUgIkpTV2ViQXNz
ZW1ibHlUYWcuaCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIlN0
cnVjdHVyZUlubGluZXMuaCIKICNpbmNsdWRlICJXYXNtRm9ybWF0LmgiCiAKIG5hbWVzcGFjZSBK
U0Mgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442432</attachid>
            <date>2021-10-25 15:54:14 -0700</date>
            <delta_ts>2021-11-03 14:57:26 -0700</delta_ts>
            <desc>WIP Patch v12</desc>
            <filename>bug-139438-20211026015412.patch</filename>
            <type>text/plain</type>
            <size>31756</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0ODQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggOGI5MTgyY2VkMTAxOTUxYThkMDA1YjA2YjdlMTdjMTk2MWFkYTA3Ni4uMDQxYmFk
OGY1YTBiMTg1ODM1MGUyZjNmNGVjYTJiOTRhYzRiZjliYSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMTUwNiw2ICsxNTA2LDcgQEAgZW5kaWYgKCkKIFdFQktJVF9DT01Q
VVRFX1NPVVJDRVMoSmF2YVNjcmlwdENvcmUpCiBXRUJLSVRfRlJBTUVXT1JLKEphdmFTY3JpcHRD
b3JlKQogV0VCS0lUX0ZSQU1FV09SS19UQVJHRVQoSmF2YVNjcmlwdENvcmUpCitXRUJLSVRfQURE
X1BSRUNPTVBJTEVEX0hFQURFUihKYXZhU2NyaXB0Q29yZSBKYXZhU2NyaXB0Q29yZVByZWZpeC5o
KQogCiBpZiAoTk9UICIke1BPUlR9IiBTVFJFUVVBTCAiTWFjIikKICAgICBpZiAoJHtKYXZhU2Ny
aXB0Q29yZV9MSUJSQVJZX1RZUEV9IFNUUkVRVUFMICJTSEFSRUQiKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXguaAppbmRleCBjYjc1YTE4NDUwN2NlNTQ5NmZj
MDg0OGU2NWYxZTcyNTg1MjAwMzIyLi40OWExNzVmZmU0ZDYwMWJjYjgxM2JlOTcyZDY2ZmVmY2Vi
MzVmNTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQ
cmVmaXguaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXgu
aApAQCAtMjMsMTEgKzIzLDE3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKyNpZiBkZWZpbmVk
KEhBVkVfQ09ORklHX0gpICYmIEhBVkVfQ09ORklHX0ggJiYgZGVmaW5lZChCVUlMRElOR19XSVRI
X0NNQUtFKQorI2luY2x1ZGUgImNtYWtlY29uZmlnLmgiCisjZW5kaWYKKworI2lmIGRlZmluZWQo
X19BUFBMRV9fKQogI2lmZGVmIF9fY3BsdXNwbHVzCiAjZGVmaW5lIE5VTEwgX19udWxsCiAjZWxz
ZQogI2RlZmluZSBOVUxMICgodm9pZCAqKTApCiAjZW5kaWYKKyNlbmRpZgogCiAjaW5jbHVkZSA8
Y3R5cGUuaD4KICNpbmNsdWRlIDxmbG9hdC5oPgpAQCAtMzYsMTggKzQyLDE5IEBACiAjaW5jbHVk
ZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KLSNp
bmNsdWRlIDxzdHJpbmdzLmg+CiAjaW5jbHVkZSA8dGltZS5oPgorCisjaWYgZGVmaW5lZChfX0FQ
UExFX18pCisjaW5jbHVkZSA8c3RyaW5ncy5oPgogI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgogI2lu
Y2x1ZGUgPHN5cy90aW1lLmg+CiAjaW5jbHVkZSA8c3lzL3RpbWViLmg+CiAjaW5jbHVkZSA8c3lz
L3R5cGVzLmg+CisjZW5kaWYKIAogI2lmZGVmIF9fY3BsdXNwbHVzCi0KICNpbmNsdWRlIDxsaXN0
PgogI2luY2x1ZGUgPHR5cGVpbmZvPgotCiAjZW5kaWYKIAogI2lmZGVmIF9fY3BsdXNwbHVzCkBA
IC01NSw3ICs2MiwxMSBAQAogI2RlZmluZSBkZWxldGUgKCJpZiB5b3UgdXNlIG5ldy9kZWxldGUg
bWFrZSBzdXJlIHRvIGluY2x1ZGUgY29uZmlnLmggYXQgdGhlIHRvcCBvZiB0aGUgZmlsZSIoKSkg
CiAjZW5kaWYKIAotLyogV29yayBhcm91bmQgYnVnIHdpdGggQysrIGxpYnJhcnkgdGhhdCBzY3Jl
d3MgdXAgT2JqZWN0aXZlLUMrKyB3aGVuIGV4Y2VwdGlvbiBzdXBwb3J0IGlzIGRpc2FibGVkLiAq
LworLyogV2hlbiBDKysgZXhjZXB0aW9ucyBhcmUgZGlzYWJsZWQsIHRoZSBDKysgbGlicmFyeSBk
ZWZpbmVzIHx0cnl8IGFuZCB8Y2F0Y2h8CisgKiB0byBhbGxvdyBDKysgY29kZSB0aGF0IGV4cGVj
dHMgZXhjZXB0aW9ucyB0byBidWlsZC4gVGhlc2UgZGVmaW5pdGlvbnMKKyAqIGludGVyZmVyZSB3
aXRoIE9iamVjdGl2ZS1DKysgdXNlcyBvZiBPYmplY3RpdmUtQyBleGNlcHRpb24gaGFuZGxlcnMs
IHdoaWNoCisgKiB1c2UgfEB0cnl8IGFuZCB8QGNhdGNofC4gQXMgYSB3b3JrYXJvdW5kLCB1bmRl
ZmluZSB0aGVzZSBtYWNyb3MuICovCisjaWZkZWYgX19PQkpDX18KICN1bmRlZiB0cnkKICN1bmRl
ZiBjYXRjaAotCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYmNjODE4Zjk3OGM4YzRi
Yjk1M2ZlMjI5ZGI4YzIxOGNkYWJiNmMxOS4uMTk3MDFlNzYxZGNmODA3ZjgxMzQ3NTA1ZmI2Mjc3
NzA0Yjk2YzMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIyMzIsMTAgKzIyMzIsNiBAQCBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9
L1hNTE5hbWVzLmNwcCkKIAogV0VCS0lUX0NPTVBVVEVfU09VUkNFUyhXZWJDb3JlKQogCi1pZiAo
TVNWQykKLSAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViQ29yZVByZWZpeC5o
IiAiV2ViQ29yZVByZWZpeC5jcHAiIFdlYkNvcmVfU09VUkNFUykKLWVuZGlmICgpCi0KIFdFQktJ
VF9DT1BZX0ZJTEVTKFdlYkNvcmVfQ29weVByaXZhdGVIZWFkZXJzCiAgICAgREVTVElOQVRJT04g
JHtXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlNfRElSfS9XZWJDb3JlCiAgICAgRklM
RVMgJHtXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlN9CkBAIC0yMjUyLDYgKzIyNDgs
NyBAQCBlbmRpZiAoKQogCiBXRUJLSVRfRlJBTUVXT1JLKFdlYkNvcmUpCiBXRUJLSVRfRlJBTUVX
T1JLX1RBUkdFVChXZWJDb3JlKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViQ29y
ZSBXZWJDb3JlUHJlZml4LmgpCiAKIGlmIChBUFBMRSkKICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRp
ZXMoV2ViQ29yZSBQUk9QRVJUSUVTIExJTktfRkxBR1MgIi1zdWJfbGlicmFyeSBsaWJvYmpjIC11
bWJyZWxsYSBXZWJLaXQgLWFsbG93YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxv
d2FibGVfY2xpZW50IFdlYktpdDIgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0TGVnYWN5IikKQEAg
LTIyNjUsMTAgKzIyNjIsNiBAQCBpZiAoQ01BS0VfQ09NUElMRVJfSVNfR05VQ1hYIEFORCAiJHtM
T1dFUkNBU0VfQ01BS0VfSE9TVF9TWVNURU1fUFJPQ0VTU09SfSIgTUFUQwogICAgIFdFQktJVF9B
RERfVEFSR0VUX0NYWF9GTEFHUyhXZWJDb3JlIC1mbm8tdHJlZS1zcmEpCiBlbmRpZiAoKQogCi1p
ZiAoTVNWQykKLSAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViQ29yZVRlc3RT
dXBwb3J0UHJlZml4LmgiICJ0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5jcHAi
IFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTKQotZW5kaWYgKCkKLQogV0VCS0lUX0NPUFlfRklM
RVMoQ29weV9XZWJDb3JlVGVzdFN1cHBvcnRQcml2YXRlSGVhZGVycwogICAgIERFU1RJTkFUSU9O
ICR7V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0vV2ViQ29yZVRlc3RTdXBw
b3J0CiAgICAgRklMRVMgdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuaCB0ZXN0aW5nL2Nv
Y29hL1dlYkFyY2hpdmVEdW1wU3VwcG9ydC5oCkBAIC0yMjkwLDYgKzIyODMsNyBAQCBlbmRpZiAo
KQogCiBXRUJLSVRfRlJBTUVXT1JLKFdlYkNvcmVUZXN0U3VwcG9ydCkKIFdFQktJVF9GUkFNRVdP
UktfVEFSR0VUKFdlYkNvcmVUZXN0U3VwcG9ydCkKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVB
REVSKFdlYkNvcmVUZXN0U3VwcG9ydCB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZp
eC5oKQogCiBpZiAoJHtXZWJDb3JlX0xJQlJBUllfVFlQRX0gTUFUQ0hFUyAiU0hBUkVEIikKICAg
ICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoV2ViQ29yZSBQUk9QRVJUSUVTIFZFUlNJT04gJHtQUk9K
RUNUX1ZFUlNJT059IFNPVkVSU0lPTiAke1BST0pFQ1RfVkVSU0lPTl9NQUpPUn0pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlRGVyaXZlZFNvdXJjZXNQcmVmaXguY3BwIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZURlcml2ZWRTb3VyY2VzUHJlZml4LmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYjBjMmQ3ODk1YTdlNzg1MmMxYjdkMTI3YTRiZjEzZDMxOGI2NmIz
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlRGVyaXZlZFNvdXJjZXNQcmVmaXguY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsMjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotCi0jaW5jbHVkZSAiV2ViQ29yZVByZWZpeC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZVByZWZpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjBjMmQ3ODk1YTdlNzg1MmMxYjdkMTI3YTRi
ZjEzZDMxOGI2NmIzYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2luY2x1ZGUgIldlYkNvcmVQcmVmaXguaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmVQcmVmaXguaCBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaAppbmRleCBk
MGM0NWY2NjJkZTc1ZDI2MGFjNmVhNjRhYjVkMDBjNWJjODQ5OThmLi5mNmRmNDY2MWFkNmE5NTRh
MzEzYmU2NDE5Y2Y0NWIxMDc2ZTZlM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlUHJlZml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oCkBAIC0xMTYs
NiArMTE2LDI5IEBACiAKICNpZiBQTEFURk9STShXSU5fQ0FJUk8pCiAjaW5jbHVkZSA8d2luZG93
cy5oPgorCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKKworI2lmIFVTRShD
QUlSTykKKyNpbmNsdWRlIDxjYWlyby5oPgorI2VuZGlmCisKKyNpZiBVU0UoSEFSRkJVWlopCisj
aW5jbHVkZSA8aGIuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8Z2xpYi1v
YmplY3QuaD4KKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisjaW5jbHVkZSA8bGlic291cC9zb3Vw
Lmg+CisjZW5kaWYKKworI2lmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVkZSA8Z3N0L2dzdC5oPgor
I2VuZGlmCisKICNlbHNlCiAKICNpZiBPUyhXSU5ET1dTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzMGVhYTMzYzRkNjBhNTkyODdmMjRlY2EyNTQ2YTJmOThlZWUx
MDY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgIldlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVm
aXguaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4
LmgKaW5kZXggNzViYTI0MDdlZTQxNTg1YWI5YmFhMzI0N2MyOGQxNDQ3ZWVjMjQxMi4uZjBmYjEz
ZTE3MmM2MDY3ODZiMzRlZTVmN2Y3NTViMWM0YzBkZmI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oCkBAIC00Myw5ICs0
Myw2IEBACiAKICNpZiAhT1MoV0lORE9XUykKICNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0KLSNkZWZp
bmUgV0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQgV0VCQ09SRV9FWFBPUlQKLQogI2VuZGlmIC8v
IE9TKFdJTkRPV1MpCiAKICNpbmNsdWRlIDxmY250bC5oPgpAQCAtODgsMTEgKzg1LDI3IEBACiAK
ICNpZiBQTEFURk9STShXSU5fQ0FJUk8pCiAjaW5jbHVkZSA8d2luZG93cy5oPgotI2Vsc2UKKyNl
bGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorCisjaWYgVVNFKENBSVJPKQorI2lu
Y2x1ZGUgPGNhaXJvL2NhaXJvLmg+CisjZW5kaWYKKworI2lmIFVTRShHTElCKQorI2luY2x1ZGUg
PGdsaWItb2JqZWN0Lmg+CisjZW5kaWYKKworI2lmIFVTRShTT1VQKQorI2luY2x1ZGUgPGxpYnNv
dXAvc291cC5oPgorI2VuZGlmCisKKyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1ZGUgPGdzdC9n
c3QuaD4KKyNlbmRpZgorCisjZWxpZiBPUyhXSU5ET1dTKQogCi0jaWYgT1MoV0lORE9XUykKICNp
ZiBVU0UoQ0cpCi0KIC8vIEZJWE1FIDxyZGFyOi8vcHJvYmxlbS84MjA4ODY4PiBSZW1vdmUgc3Vw
cG9ydCBmb3Igb2Jzb2xldGUgQ29sb3JTeW5jIEFQSSwgQ29yZVNlcnZpY2VzIGhlYWRlciBpbiBD
b3JlR3JhcGhpY3MKIC8vIFdlIGNhbiByZW1vdmUgdGhpcyBvbmNlIHRoZSBuZXcgQ29sb3JTeW5j
IEFQSXMgYXJlIGF2YWlsYWJsZSBpbiBhbiBpbnRlcm5hbCBTYWZhcmkgU0RLLgogI2luY2x1ZGUg
PENvbG9yU3luYy9Db2xvclN5bmMuaD4KQEAgLTEwMSwxOCArMTE0LDIwIEBACiAjZGVmaW5lIE9C
U09MRVRFX0NPTE9SU1lOQ19BUEkKICNlbmRpZgogI2VuZGlmCisKICNpZiBVU0UoQ0ZVUkxDT05O
RUNUSU9OKQogI2luY2x1ZGUgPENGTmV0d29yay9DRk5ldHdvcmsuaD4KIC8vIE9uIFdpbmRvd3Ms
IGRpc3BhdGNoLmggbmVlZHMgdG8gYmUgaW5jbHVkZWQgYmVmb3JlIGNlcnRhaW4gQ0ZOZXR3b3Jr
IGhlYWRlcnMuCiAjaW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KICNlbmRpZgorCiAjaW5j
bHVkZSA8d2luZG93cy5oPgotI2Vsc2UKKworI2VsaWYgZGVmaW5lZChfX0FQUExFX18pCisKICNp
ZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpbmNsdWRlIDxDb3JlU2VydmljZXMvQ29yZVNlcnZp
Y2VzLmg+CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPU19GQU1JTFkpCi0jZW5kaWYgLy8gT1MoV0lO
RE9XUykKLQogI2VuZGlmCiAKICNpZmRlZiBfX09CSkNfXwpAQCAtMTM2LDQgKzE1MSwzIEBACiAj
dW5kZWYgdHJ5CiAjdW5kZWYgY2F0Y2gKICNlbmRpZgotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA3
ZTZhYTI3ZDg1ZTQ3ZmVlZTI1YmNmMjk2NjAwNzdlMjIyOTEyNWRkLi5hOGIyNWQ3OGM5MjI5ZTI5
MDg0Y2NhNmRlM2I2OGU2YTZiOTUwNDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTM5MSwxMSAr
MzkxLDcgQEAgZW5kaWYgKCkKIAogbWFjcm8oQUREX1dFQktJVF9QUkVGSVhfSEVBREVSIF90YXJn
ZXQpCiAgICAgaWYgKFdlYktpdF9VU0VfUFJFRklYX0hFQURFUikKLSAgICAgICAgZ2V0X3Rhcmdl
dF9wcm9wZXJ0eShPTERfQ09NUElMRV9GTEFHUyAke190YXJnZXR9IENPTVBJTEVfRkxBR1MpCi0g
ICAgICAgIGlmICgke09MRF9DT01QSUxFX0ZMQUdTfSBTVFJFUVVBTCAiT0xEX0NPTVBJTEVfRkxB
R1MtTk9URk9VTkQiKQotICAgICAgICAgICAgc2V0KE9MRF9DT01QSUxFX0ZMQUdTICIiKQotICAg
ICAgICBlbmRpZiAoKQotICAgICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtfdGFyZ2V0fSBQ
Uk9QRVJUSUVTIENPTVBJTEVfRkxBR1MgIiR7T0xEX0NPTVBJTEVfRkxBR1N9IC1pbmNsdWRlICR7
V0VCS0lUX0RJUn0vV2ViS2l0MlByZWZpeC5oIikKKyAgICAgICAgV0VCS0lUX0FERF9QUkVDT01Q
SUxFRF9IRUFERVIoJHtfdGFyZ2V0fSBXZWJLaXQyUHJlZml4LmgpCiAgICAgZW5kaWYgKCkKIGVu
ZG1hY3JvKCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tO
YXRpdmVFdmVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVu
dC5oCmluZGV4IDQ0ZDZlNzc5YTM2YTdmMjRkYTY4NjJiZDk0YjRlYjJjNDc5YzMyOTAuLjljYTBh
YjNkMGRhZDgyNzNlYjk4YTNmZjg1NjlkYzA3NjRkMzVkZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgc3RydWN0
IE5TRXZlbnQ7CiAjZW5kaWYKIHR5cGVkZWYgTlNFdmVudCAqV0tOYXRpdmVFdmVudFB0cjsKICNl
bGlmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCit0eXBlZGVmIHVuaW9uIF9HZGtFdmVudCBHZGtF
dmVudDsKIHR5cGVkZWYgY29uc3QgR2RrRXZlbnQqIFdLTmF0aXZlRXZlbnRQdHI7CiAjZWxpZiBk
ZWZpbmVkKFdJTjMyKQogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgdGFnTVNHKiBXS05hdGl2ZUV2ZW50
UHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0MlByZWZpeC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDEyYjRhOTAxYzdjYjQyYWFmMzFjZjYyZGJlNzY3N2NkNGRmNmRjNTUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQyUHJl
Zml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiV2ViS2l0MlByZWZpeC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQy
UHJlZml4LmggYi9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaAppbmRleCA0MDZhYTgxMThm
YTY2ZGFkZmMzNWI4ZWJlNGJmMjQwOTNhY2Y2MWFmLi42YjI5Yjk5ODJlMzIzNWM4MTYyN2I0ZDc5
ZjEwNjRlNDEzOGI3MjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXgu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaApAQCAtNjMsNiArNjMsMzQgQEAK
IAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXUEUpCisKKyNpZiBVU0UoQ0FJUk8pCisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KKyNl
bmRpZgorCisjaWYgVVNFKEhBUkZCVVpaKQorI2luY2x1ZGUgPGhiLmg+CisjZW5kaWYKKworI2lm
IFVTRShHTElCKQorI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjZW5kaWYKKworI2lmIFVTRShT
T1VQKQorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2VuZGlmCisKKyNpZiBVU0UoR1NUUkVB
TUVSKQorI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RLKQor
I2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNlbmRpZgorCisjZW5kaWYgLy8gUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCisKIC8qIFdoZW4gQysrIGV4Y2VwdGlvbnMgYXJlIGRpc2FibGVkLCB0
aGUgQysrIGxpYnJhcnkgZGVmaW5lcyB8dHJ5fCBhbmQgfGNhdGNofAogKiB0byBhbGxvdyBDKysg
Y29kZSB0aGF0IGV4cGVjdHMgZXhjZXB0aW9ucyB0byBidWlsZC4gVGhlc2UgZGVmaW5pdGlvbnMK
ICogaW50ZXJmZXJlIHdpdGggT2JqZWN0aXZlLUMrKyB1c2VzIG9mIE9iamVjdGl2ZS1DIGV4Y2Vw
dGlvbiBoYW5kbGVycywgd2hpY2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlzdHMudHh0CmluZGV4IDY1
ODk2NzY5NTJjM2Q1MGYyZmI3MDVkMjQzODNiNmMyZThmMWYyNjAuLmQ4M2I0Y2U0NTMxYzYyMjYz
NTNjYzNiNGQxODgzZmNkY2YzMGYyOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4dApA
QCAtNDIsNyArNDIsNiBAQCBXRUJLSVRfRlJBTUVXT1JLX0RFQ0xBUkUoV2ViS2l0TGVnYWN5KQog
V0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJTEVTX0lGX0VYSVNUUygpCiAKIGlmIChNU1ZDKQotICAg
IFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXRQcmVmaXguaCIgIndpbi9XZWJL
aXRQcmVmaXguY3BwIiBXZWJLaXRMZWdhY3lfU09VUkNFUykKICAgICBsaXN0KEFQUEVORCBXZWJL
aXRMZWdhY3lfU09VUkNFUyB3aW4vV2ViS2l0LnJlc291cmNlcy9XZWJLaXQucmMpCiAgICAgYWRk
X2RlZmluaXRpb25zKC9EV0VCS0lUX0VYUE9SVFMgL0RGUkFNRVdPUktfTkFNRT1XZWJLaXRMZWdh
Y3kpCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9ybU1h
Yy5jbWFrZSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggYjUz
ZTYyMmRjNmYzMzdjYzc0Mzg2ZjY2NmFjY2UzNzI3NGRmZmZiMC4uZjc2Y2YzNWMzYTJlMDJkMTdi
MGVjMzFlY2NkMTlkMWRhN2I1ZjAyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9Q
bGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1BsYXRmb3JtTWFjLmNt
YWtlCkBAIC03MTUsMyArNzE1LDUgQEAgV0VCS0lUX01BS0VfRk9SV0FSRElOR19IRUFERVJTKFdl
YktpdExlZ2FjeQogc2V0KFdlYktpdExlZ2FjeV9PVVRQVVRfTkFNRSBXZWJLaXRMZWdhY3kpCiAK
IHNldChDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICR7Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFH
U30gIi1jb21wYXRpYmlsaXR5X3ZlcnNpb24gMSAtY3VycmVudF92ZXJzaW9uICR7V0VCS0lUX01B
Q19WRVJTSU9OfSAtZnJhbWV3b3JrIFNlY3VyaXR5SW50ZXJmYWNlIikKKworV0VCS0lUX0FERF9Q
UkVDT01QSUxFRF9IRUFERVIoV2ViS2l0TGVnYWN5IG1hYy9XZWJLaXRQcmVmaXguaCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IGJjYzY2Y2NiYWY3NzE3ZmNlOTExYWFh
Yjg1Y2YxNjhlMWEzMDJjMzcuLmE2MTVjNzE3MWMwY2Q4NTg2ODcxMmU2MzE5Y2ZlOTYyZTdjODg5
MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1XaW4uY21ha2UKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtNDg5LDMgKzQ4OSw1
IEBAIGxpc3QoQVBQRU5EIFdlYktpdExlZ2FjeV9QUklWQVRFX0RFRklOSVRJT05TCiAgICAgU1RB
VElDQUxMWV9MSU5LRURfV0lUSF9QQUwKICAgICBTVEFUSUNBTExZX0xJTktFRF9XSVRIX1dlYkNv
cmUKICkKKworV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViS2l0TGVnYWN5IHdpbi9X
ZWJLaXRQcmVmaXguaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktp
dFByZWZpeC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRQcmVmaXguY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMDY3ZTk2YzgyN2U1ZDE4MDc0MDJmYzEzMDY0
NTI1ZDY3NmQyZTg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFByZWZpeC5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSwyOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0jaW5jbHVkZSAiV2ViS2l0UHJlZml4LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9DTWFrZUxp
c3RzLnR4dAppbmRleCBiYzA5Nzk4YjhiMDJhZjI5YzM4M2I3ODdlNmYxNzZmYTIyZWZkNzNiLi43
YWU3YzFjMDA3MzE5MGI5YjAwYWM3YzE1NDkwYWY1ZjUyMDBjMjA3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlv
bnMvQ01ha2VMaXN0cy50eHQKQEAgLTQxLDggKzQxLDYgQEAgZmlsZShDT1BZICR7Q01BS0VfQ1VS
UkVOVF9TT1VSQ0VfRElSfS9BUEkvV0tDQUNGSW1hZ2VJbnRlcm5hbC5oIERFU1RJTkFUSU9OICR7
REUKIGZpbGUoQ09QWSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vQVBJL1dLQ0FDRlZpZXcu
aCBERVNUSU5BVElPTiAke0RFUklWRURfU09VUkNFU19ESVJ9L1dlYktpdFF1YXJ0ekNvcmVBZGRp
dGlvbnMpCiBmaWxlKENPUFkgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L0FQSS9XS0NBQ0ZW
aWV3UHJpdmF0ZS5oIERFU1RJTkFUSU9OICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViS2l0UXVh
cnR6Q29yZUFkZGl0aW9ucykKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktp
dFF1YXJ0ekNvcmVBZGRpdGlvbnNQcmVmaXguaCIgIldlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNQ
cmVmaXguY3BwIiBXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zX1NPVVJDRVMpCi0KIGluY2x1ZGVf
ZGlyZWN0b3JpZXMoCiAgICAgLgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRp
bmdIZWFkZXJzIgpAQCAtNTksMyArNTcsNCBAQCB0YXJnZXRfbGlua19saWJyYXJpZXMoV2ViS2l0
UXVhcnR6Q29yZUFkZGl0aW9ucwogICAgIENvcmVHcmFwaGljcyR7REVCVUdfU1VGRklYfQogICAg
IFF1YXJ0ekNvcmUke0RFQlVHX1NVRkZJWH0KICkKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVB
REVSKFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMgV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9uc1By
ZWZpeC5oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UXVhcnR6
Q29yZUFkZGl0aW9ucy9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zUHJlZml4LmNwcCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvV2ViS2l0UXVhcnR6
Q29yZUFkZGl0aW9uc1ByZWZpeC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2
OWVkOTNjMWU0MDBhNTg3NzZjNmY3ZTk2MmM0OWI5NTc5Yzk0MTQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
S2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zUHJlZml4LmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8qCi0qIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0qCi0qIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSogYXJlIG1ldDoKLSogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0qICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0qCi0qIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0qIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0qIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0qIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0qIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0qIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotKi8KLQotI2luY2x1ZGUgIldlYktpdFF1YXJ0ekNvcmVBZGRpdGlv
bnNQcmVmaXguaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2Ug
Yi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCmluZGV4IDIwMGNlNDgxODg5YjdlMjFl
Yzg2Y2M2NWVhYTNhZTBlOWM4N2U3M2QuLjRiNTRlZjIwZDAyNTkyODdlY2E1OWQ5ZDU0ZWRlMDFh
NmY2MmE4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKKysr
IGIvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQpAQCAtOTAsMzQgKzkwLDE3IEBAIG1h
Y3JvKFdFQktJVF9BRERfU09VUkNFX0RFUEVOREVOQ0lFUyBfc291cmNlIF9kZXBzKQogICAgIHVu
c2V0KF90bXApCiBlbmRtYWNybygpCiAKLW1hY3JvKFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVB
REVSIF9oZWFkZXIgX2NwcCBfc291cmNlKQotICAgIGlmIChNU1ZDKQotICAgICAgICBnZXRfZmls
ZW5hbWVfY29tcG9uZW50KFByZWNvbXBpbGVkQmFzZW5hbWUgJHtfY3BwfSBOQU1FX1dFKQotICAg
ICAgICBmaWxlKE1BS0VfRElSRUNUT1JZICIke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vJHtf
c291cmNlfSIpCi0gICAgICAgIHNldChQcmVjb21waWxlZEJpbmFyeSAiJHtDTUFLRV9DVVJSRU5U
X0JJTkFSWV9ESVJ9LyR7X3NvdXJjZX0vJHtQcmVjb21waWxlZEJhc2VuYW1lfS5wY2giKQotICAg
ICAgICBzZXQoX3NvdXJjZXMgJHske19zb3VyY2V9fSkKIAotICAgICAgICAjIGNsYW5nLWNsIHJl
cXVpcmVzIC9GSSB3aXRoIC9ZYwotICAgICAgICBpZiAoQ09NUElMRVJfSVNfQ0xBTkdfQ0wpCi0g
ICAgICAgICAgICBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtfY3BwfQotICAgICAgICAg
ICAgICAgIFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAiL1ljXCIke19oZWFkZXJ9XCIgL0ZwXCIk
e1ByZWNvbXBpbGVkQmluYXJ5fVwiIC9GSVwiJHtfaGVhZGVyfVwiIgotICAgICAgICAgICAgICAg
IE9CSkVDVF9PVVRQVVRTICIke1ByZWNvbXBpbGVkQmluYXJ5fSIpCi0gICAgICAgIGVsc2UgKCkK
LSAgICAgICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygke19jcHB9Ci0gICAgICAg
ICAgICAgICAgUFJPUEVSVElFUyBDT01QSUxFX0ZMQUdTICIvWWNcIiR7X2hlYWRlcn1cIiAvRnBc
IiR7UHJlY29tcGlsZWRCaW5hcnl9XCIiCi0gICAgICAgICAgICAgICAgT0JKRUNUX09VVFBVVFMg
IiR7UHJlY29tcGlsZWRCaW5hcnl9IikKLSAgICAgICAgZW5kaWYgKCkKLSAgICAgICAgc2V0X3Nv
dXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7X3NvdXJjZXN9Ci0gICAgICAgICAgICBQUk9QRVJUSUVT
IENPTVBJTEVfRkxBR1MgIi9ZdVwiJHtfaGVhZGVyfVwiIC9GSVwiJHtfaGVhZGVyfVwiIC9GcFwi
JHtQcmVjb21waWxlZEJpbmFyeX1cIiIpCi0KLSAgICAgICAgZm9yZWFjaCAoX3NyYyAke19zb3Vy
Y2VzfSkKLSAgICAgICAgICAgIFdFQktJVF9BRERfU09VUkNFX0RFUEVOREVOQ0lFUygke19zcmN9
ICR7UHJlY29tcGlsZWRCaW5hcnl9KQotICAgICAgICBlbmRmb3JlYWNoICgpCi0KLSAgICAgICAg
bGlzdChBUFBFTkQgJHtfc291cmNlfSAke19jcHB9KQotICAgIGVuZGlmICgpCi0gICAgI0ZJWE1F
OiBBZGQgc3VwcG9ydCBmb3IgWGNvZGUuCi1lbmRtYWNybygpCitpZiAoQ01BS0VfVkVSU0lPTiBW
RVJTSU9OX0dSRUFURVJfRVFVQUwgMy4xNykKKyAgICBtYWNybyhXRUJLSVRfQUREX1BSRUNPTVBJ
TEVEX0hFQURFUiBfdGFyZ2V0IF9oZWFkZXIpCisgICAgICAgIHRhcmdldF9wcmVjb21waWxlX2hl
YWRlcnMoJHtfdGFyZ2V0fSBQUklWQVRFICR7X2hlYWRlcn0pCisgICAgZW5kbWFjcm8oKQorZWxz
ZSAoKQorICAgIG1lc3NhZ2UoV0FSTklORyAiUHJlY29tcGlsZWQgaGVhZGVycyBkaXNhYmxlZCwg
Q01ha2UgMy4xNyBvciBuZXdlciByZXF1aXJlZCIpCisgICAgbWFjcm8oV0VCS0lUX0FERF9QUkVD
T01QSUxFRF9IRUFERVIgX3RhcmdldCBfaGVhZGVyKQorICAgICAgICAjIE5vLW9wCisgICAgZW5k
bWFjcm8oKQorZW5kaWYgKCkKIAogbWFjcm8oV0VCS0lUX0ZSQU1FV09SS19ERUNMQVJFIF90YXJn
ZXQpCiAgICAgIyBhZGRfbGlicmFyeSgpIHdpdGhvdXQgYW55IHNvdXJjZSBmaWxlcyB0cmlnZ2Vy
cyBDTWFrZSB3YXJuaW5nCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9DTWFrZUxp
c3RzLnR4dCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0CmluZGV4IGUyNDEw
MTAzN2I2ZWE4ODkxNmUxZDg5MWJiNmM3NjBhMzQyNTA4ZmEuLmI0NzNjZGQ3ZmY4ZWUxZWEzZDhk
YmM2N2Y0Mzc3YjAyNDBjNThkOWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0CkBA
IC02Nyw2ICs2Nyw5IEBAIGxpc3QoQVBQRU5EIER1bXBSZW5kZXJUcmVlX1NPVVJDRVMKIFdFQktJ
VF9FWEVDVVRBQkxFX0RFQ0xBUkUoRHVtcFJlbmRlclRyZWUpCiBXRUJLSVRfSU5DTFVERV9DT05G
SUdfRklMRVNfSUZfRVhJU1RTKCkKIFdFQktJVF9FWEVDVVRBQkxFKER1bXBSZW5kZXJUcmVlKQor
aWYgKE5PVCBXSU4zMikKKyAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihEdW1wUmVu
ZGVyVHJlZSBEdW1wUmVuZGVyVHJlZVByZWZpeC5oKQorZW5kaWYgKCkKIAogaWYgKEVOQUJMRV9O
RVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIGFkZF9zdWJkaXJlY3RvcnkoVGVzdE5ldHNjYXBlUGx1
Z0luKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvUGxhdGZvcm1XaW4uY21ha2Ug
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCBmZDA2NTJiNDNm
NWMwYjllMjE5YzNmZDc1YTkzM2YxMDA1OTA2ODBhLi4yZDUwOWMyM2MyZjE0Y2QxZWE3OTA5ZjBi
MDdmZDk3ZDk5NTYyN2Q1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9y
bVdpbi5jbWFrZQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQpA
QCAtNzIsNyArNzIsNiBAQCBlbHNlICgpCiAgICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKLVdFQktJ
VF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJEdW1wUmVuZGVyVHJlZVByZWZpeC5oIiAid2luL0R1
bXBSZW5kZXJUcmVlUHJlZml4LmNwcCIgRHVtcFJlbmRlclRyZWVfU09VUkNFUykKIHNldChDTUFL
RV9TSEFSRURfTElOS0VSX0ZMQUdTICIke0NNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1N9ICR7TVNW
Q19SVU5USU1FX0xJTktFUl9GTEFHU30iKQogCiBXRUJLSVRfV1JBUF9FWEVDVVRBQkxFKER1bXBS
ZW5kZXJUcmVlCkBAIC04MCwzICs3OSw2IEBAIFdFQktJVF9XUkFQX0VYRUNVVEFCTEUoRHVtcFJl
bmRlclRyZWUKICAgICBMSUJSQVJJRVMgc2hsd2FwaQogKQogdGFyZ2V0X2NvbXBpbGVfZGVmaW5p
dGlvbnMoRHVtcFJlbmRlclRyZWUgUFJJVkFURSAke3dyYXBwZXJfREVGSU5JVElPTlN9KQorCisj
IEFkZCBwcmVjb21waWxlZCBoZWFkZXJzIHRvIHdyYXBwZXIgbGlicmFyeQorV0VCS0lUX0FERF9Q
UkVDT01QSUxFRF9IRUFERVIoRHVtcFJlbmRlclRyZWVMaWIgRHVtcFJlbmRlclRyZWVQcmVmaXgu
aCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZVBy
ZWZpeC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWVQcmVmaXgu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1Yzc1ZDRhMzYwMmRlN2JjMGRhMTYx
OGMxZDA4ZGNjNmYyOTUzN2Y4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZVByZWZpeC5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
IDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0jaW5jbHVkZSAiRHVtcFJlbmRlclRyZWVQcmVmaXguaCIK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0CmluZGV4IDY5YzI5NGM4MjhjMDMwYjU2
YzBhM2YyOGU3MjdjNDQ5N2FlOThkOGQuLmQ1YjZkMmU5YzUxOWU4MjY4YzVkMDU4Y2NjOGVlMzRm
M2E5ZDg5MmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50
eHQKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dApAQCAtMTQwLDYg
KzE0MCw5IEBAIHRhcmdldF9saW5rX2xpYnJhcmllcyhUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUg
UFJJVkFURSAke1dlYktpdFRlc3RSdW5uZXJJbmplY3RlCiBhZGRfZGVwZW5kZW5jaWVzKFRlc3RS
dW5uZXJJbmplY3RlZEJ1bmRsZSBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVCaW5kaW5n
cykKIAogV0VCS0lUX0VYRUNVVEFCTEUoV2ViS2l0VGVzdFJ1bm5lcikKK2lmIChOT1QgV0lOMzIp
CisgICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViS2l0VGVzdFJ1bm5lciBXZWJL
aXRUZXN0UnVubmVyUHJlZml4LmgpCitlbmRpZiAoKQogCiBpZiAoQ09NUElMRVJfSVNfR0NDX09S
X0NMQU5HKQogICAgIFdFQktJVF9BRERfVEFSR0VUX0NYWF9GTEFHUyhUZXN0UnVubmVySW5qZWN0
ZWRCdW5kbGUgLVduby11bnVzZWQtcGFyYW1ldGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxh
dGZvcm1GVFcuY21ha2UKaW5kZXggNmYxYzk2NzNiM2JmZjMzY2I4NDE3ZmFjYTVjNzNmNTZjZmFk
OGQ2Ny4uMTRlYzU3MzBkMmZjZTIzNDNhMWE3MWNhOTk4NzI2ZDM5MWM0YjFlOSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZQorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtRlRXLmNtYWtlCkBAIC0yOSw4ICsyOSw2IEBAIGxpc3Qo
QVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfTElCUkFSSUVTCiAgICAgT2xlYWNjCiApCiAKLVdFQktJ
VF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXRUZXN0UnVubmVyUHJlZml4LmgiICJ3aW4v
V2ViS2l0VGVzdFJ1bm5lclByZWZpeC5jcHAiIFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUykKLQog
c2V0KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFH
U30gJHtNU1ZDX1JVTlRJTUVfTElOS0VSX0ZMQUdTfSIpCiAKIFdFQktJVF9XUkFQX0VYRUNVVEFC
TEUoV2ViS2l0VGVzdFJ1bm5lcgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Q
bGF0Zm9ybVdpbi5jbWFrZSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XaW4uY21h
a2UKaW5kZXggNDUzZjJjN2EzODQyNjFkNDE0NGY1ZTU5OTNkZDVhMTQ5Y2Q3NGZkMy4uMTE5OTlm
NTRhY2U5MDkyM2MxOTI2ODQ2NTlhZDQ0YzdhM2ZmMDliYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1BsYXRmb3JtV2luLmNtYWtlCkBAIC0zOCw4ICszOCw2IEBAIGxpc3QoQVBQRU5EIFdlYktp
dFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9MSUJSQVJJRVMKICAgICAkPFRBUkdFVF9PQkpFQ1RT
OldlYkNvcmVUZXN0U3VwcG9ydD4KICkKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIo
IldlYktpdFRlc3RSdW5uZXJQcmVmaXguaCIgIndpbi9XZWJLaXRUZXN0UnVubmVyUHJlZml4LmNw
cCIgV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTKQotCiBzZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9G
TEFHUyAiJHtDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTfSAke01TVkNfUlVOVElNRV9MSU5LRVJf
RkxBR1N9IikKIAogV0VCS0lUX1dSQVBfRVhFQ1VUQUJMRShXZWJLaXRUZXN0UnVubmVyCkBAIC00
NywzICs0NSw2IEBAIFdFQktJVF9XUkFQX0VYRUNVVEFCTEUoV2ViS2l0VGVzdFJ1bm5lcgogICAg
IExJQlJBUklFUyBzaGx3YXBpCiApCiB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhXZWJLaXRU
ZXN0UnVubmVyIFBSSVZBVEUgJHt3cmFwcGVyX0RFRklOSVRJT05TfSkKKworIyBBZGQgcHJlY29t
cGlsZWQgaGVhZGVycyB0byB3cmFwcGVyIGxpYnJhcnkKK1dFQktJVF9BRERfUFJFQ09NUElMRURf
SEVBREVSKFdlYktpdFRlc3RSdW5uZXJMaWIgV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vV2ViS2l0VGVzdFJ1bm5lclByZWZp
eC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9XZWJLaXRUZXN0UnVubmVyUHJlZml4
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzRjNzRjZTk1Y2EwOTRiNThmY2Uw
N2U0OWExM2Y2NDZiYTNjOGVhYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9XZWJLaXRUZXN0UnVubmVyUHJl
Zml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRo
ZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNpbmNsdWRlICJXZWJLaXRUZXN0UnVubmVyUHJl
Zml4LmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443247</attachid>
            <date>2021-11-03 14:57:31 -0700</date>
            <delta_ts>2021-12-20 11:32:27 -0800</delta_ts>
            <desc>WIP Patch v13</desc>
            <filename>bug-139438-20211103235730.patch</filename>
            <type>text/plain</type>
            <size>32952</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggYTVkZWQ2MjA3NGE4NTIyZjFkNTVjNzIyNmVlOTBkMDIwNDNjODI1MS4uYzUxMTJk
YjI3ZDQyYjgyYmExMjQ2MmMxZTkwMmEzYWVjMmExNjZmMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMTUxMiw2ICsxNTEyLDcgQEAgZW5kaWYgKCkKIFdFQktJVF9DT01Q
VVRFX1NPVVJDRVMoSmF2YVNjcmlwdENvcmUpCiBXRUJLSVRfRlJBTUVXT1JLKEphdmFTY3JpcHRD
b3JlKQogV0VCS0lUX0ZSQU1FV09SS19UQVJHRVQoSmF2YVNjcmlwdENvcmUpCitXRUJLSVRfQURE
X1BSRUNPTVBJTEVEX0hFQURFUihKYXZhU2NyaXB0Q29yZSBKYXZhU2NyaXB0Q29yZVByZWZpeC5o
KQogCiBpZiAoTk9UICIke1BPUlR9IiBTVFJFUVVBTCAiTWFjIikKICAgICBpZiAoJHtKYXZhU2Ny
aXB0Q29yZV9MSUJSQVJZX1RZUEV9IFNUUkVRVUFMICJTSEFSRUQiKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXguaAppbmRleCBjYjc1YTE4NDUwN2NlNTQ5NmZj
MDg0OGU2NWYxZTcyNTg1MjAwMzIyLi40OWExNzVmZmU0ZDYwMWJjYjgxM2JlOTcyZDY2ZmVmY2Vi
MzVmNTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQ
cmVmaXguaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXgu
aApAQCAtMjMsMTEgKzIzLDE3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKyNpZiBkZWZpbmVk
KEhBVkVfQ09ORklHX0gpICYmIEhBVkVfQ09ORklHX0ggJiYgZGVmaW5lZChCVUlMRElOR19XSVRI
X0NNQUtFKQorI2luY2x1ZGUgImNtYWtlY29uZmlnLmgiCisjZW5kaWYKKworI2lmIGRlZmluZWQo
X19BUFBMRV9fKQogI2lmZGVmIF9fY3BsdXNwbHVzCiAjZGVmaW5lIE5VTEwgX19udWxsCiAjZWxz
ZQogI2RlZmluZSBOVUxMICgodm9pZCAqKTApCiAjZW5kaWYKKyNlbmRpZgogCiAjaW5jbHVkZSA8
Y3R5cGUuaD4KICNpbmNsdWRlIDxmbG9hdC5oPgpAQCAtMzYsMTggKzQyLDE5IEBACiAjaW5jbHVk
ZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KLSNp
bmNsdWRlIDxzdHJpbmdzLmg+CiAjaW5jbHVkZSA8dGltZS5oPgorCisjaWYgZGVmaW5lZChfX0FQ
UExFX18pCisjaW5jbHVkZSA8c3RyaW5ncy5oPgogI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgogI2lu
Y2x1ZGUgPHN5cy90aW1lLmg+CiAjaW5jbHVkZSA8c3lzL3RpbWViLmg+CiAjaW5jbHVkZSA8c3lz
L3R5cGVzLmg+CisjZW5kaWYKIAogI2lmZGVmIF9fY3BsdXNwbHVzCi0KICNpbmNsdWRlIDxsaXN0
PgogI2luY2x1ZGUgPHR5cGVpbmZvPgotCiAjZW5kaWYKIAogI2lmZGVmIF9fY3BsdXNwbHVzCkBA
IC01NSw3ICs2MiwxMSBAQAogI2RlZmluZSBkZWxldGUgKCJpZiB5b3UgdXNlIG5ldy9kZWxldGUg
bWFrZSBzdXJlIHRvIGluY2x1ZGUgY29uZmlnLmggYXQgdGhlIHRvcCBvZiB0aGUgZmlsZSIoKSkg
CiAjZW5kaWYKIAotLyogV29yayBhcm91bmQgYnVnIHdpdGggQysrIGxpYnJhcnkgdGhhdCBzY3Jl
d3MgdXAgT2JqZWN0aXZlLUMrKyB3aGVuIGV4Y2VwdGlvbiBzdXBwb3J0IGlzIGRpc2FibGVkLiAq
LworLyogV2hlbiBDKysgZXhjZXB0aW9ucyBhcmUgZGlzYWJsZWQsIHRoZSBDKysgbGlicmFyeSBk
ZWZpbmVzIHx0cnl8IGFuZCB8Y2F0Y2h8CisgKiB0byBhbGxvdyBDKysgY29kZSB0aGF0IGV4cGVj
dHMgZXhjZXB0aW9ucyB0byBidWlsZC4gVGhlc2UgZGVmaW5pdGlvbnMKKyAqIGludGVyZmVyZSB3
aXRoIE9iamVjdGl2ZS1DKysgdXNlcyBvZiBPYmplY3RpdmUtQyBleGNlcHRpb24gaGFuZGxlcnMs
IHdoaWNoCisgKiB1c2UgfEB0cnl8IGFuZCB8QGNhdGNofC4gQXMgYSB3b3JrYXJvdW5kLCB1bmRl
ZmluZSB0aGVzZSBtYWNyb3MuICovCisjaWZkZWYgX19PQkpDX18KICN1bmRlZiB0cnkKICN1bmRl
ZiBjYXRjaAotCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMzRhN2UxYWFlYjdkMDJk
YjNlMDQ0YmJmNWE3YTUzMDljOGZjZTM5MS4uZWFjZmM1YWJlZGYwZDdmZDYyMzI1OTI1Mjk5YzE4
ZmM1MDZhNzVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIyMzYsMTAgKzIyMzYsNiBAQCBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9
L1hNTE5hbWVzLmNwcCkKIAogV0VCS0lUX0NPTVBVVEVfU09VUkNFUyhXZWJDb3JlKQogCi1pZiAo
TVNWQykKLSAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViQ29yZVByZWZpeC5o
IiAiV2ViQ29yZVByZWZpeC5jcHAiIFdlYkNvcmVfU09VUkNFUykKLWVuZGlmICgpCi0KIFdFQktJ
VF9DT1BZX0ZJTEVTKFdlYkNvcmVfQ29weVByaXZhdGVIZWFkZXJzCiAgICAgREVTVElOQVRJT04g
JHtXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlNfRElSfS9XZWJDb3JlCiAgICAgRklM
RVMgJHtXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlN9CkBAIC0yMjU2LDYgKzIyNTIs
NyBAQCBlbmRpZiAoKQogCiBXRUJLSVRfRlJBTUVXT1JLKFdlYkNvcmUpCiBXRUJLSVRfRlJBTUVX
T1JLX1RBUkdFVChXZWJDb3JlKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViQ29y
ZSBXZWJDb3JlUHJlZml4LmgpCiAKIGlmIChBUFBMRSkKICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRp
ZXMoV2ViQ29yZSBQUk9QRVJUSUVTIExJTktfRkxBR1MgIi1zdWJfbGlicmFyeSBsaWJvYmpjIC11
bWJyZWxsYSBXZWJLaXQgLWFsbG93YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxv
d2FibGVfY2xpZW50IFdlYktpdDIgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0TGVnYWN5IikKQEAg
LTIyNjksMTAgKzIyNjYsNiBAQCBpZiAoQ01BS0VfQ09NUElMRVJfSVNfR05VQ1hYIEFORCAiJHtM
T1dFUkNBU0VfQ01BS0VfSE9TVF9TWVNURU1fUFJPQ0VTU09SfSIgTUFUQwogICAgIFdFQktJVF9B
RERfVEFSR0VUX0NYWF9GTEFHUyhXZWJDb3JlIC1mbm8tdHJlZS1zcmEpCiBlbmRpZiAoKQogCi1p
ZiAoTVNWQykKLSAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViQ29yZVRlc3RT
dXBwb3J0UHJlZml4LmgiICJ0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5jcHAi
IFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTKQotZW5kaWYgKCkKLQogV0VCS0lUX0NPUFlfRklM
RVMoQ29weV9XZWJDb3JlVGVzdFN1cHBvcnRQcml2YXRlSGVhZGVycwogICAgIERFU1RJTkFUSU9O
ICR7V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0vV2ViQ29yZVRlc3RTdXBw
b3J0CiAgICAgRklMRVMgdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuaCB0ZXN0aW5nL2Nv
Y29hL1dlYkFyY2hpdmVEdW1wU3VwcG9ydC5oCkBAIC0yMjk0LDYgKzIyODcsNyBAQCBlbmRpZiAo
KQogCiBXRUJLSVRfRlJBTUVXT1JLKFdlYkNvcmVUZXN0U3VwcG9ydCkKIFdFQktJVF9GUkFNRVdP
UktfVEFSR0VUKFdlYkNvcmVUZXN0U3VwcG9ydCkKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVB
REVSKFdlYkNvcmVUZXN0U3VwcG9ydCB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZp
eC5oKQogCiBpZiAoJHtXZWJDb3JlX0xJQlJBUllfVFlQRX0gTUFUQ0hFUyAiU0hBUkVEIikKICAg
ICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoV2ViQ29yZSBQUk9QRVJUSUVTIFZFUlNJT04gJHtQUk9K
RUNUX1ZFUlNJT059IFNPVkVSU0lPTiAke1BST0pFQ1RfVkVSU0lPTl9NQUpPUn0pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlRGVyaXZlZFNvdXJjZXNQcmVmaXguY3BwIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZURlcml2ZWRTb3VyY2VzUHJlZml4LmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYjBjMmQ3ODk1YTdlNzg1MmMxYjdkMTI3YTRiZjEzZDMxOGI2NmIz
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlRGVyaXZlZFNvdXJjZXNQcmVmaXguY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsMjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotCi0jaW5jbHVkZSAiV2ViQ29yZVByZWZpeC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZVByZWZpeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjBjMmQ3ODk1YTdlNzg1MmMxYjdkMTI3YTRi
ZjEzZDMxOGI2NmIzYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2luY2x1ZGUgIldlYkNvcmVQcmVmaXguaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmVQcmVmaXguaCBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaAppbmRleCBk
MGM0NWY2NjJkZTc1ZDI2MGFjNmVhNjRhYjVkMDBjNWJjODQ5OThmLi5mNmRmNDY2MWFkNmE5NTRh
MzEzYmU2NDE5Y2Y0NWIxMDc2ZTZlM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlUHJlZml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oCkBAIC0xMTYs
NiArMTE2LDI5IEBACiAKICNpZiBQTEFURk9STShXSU5fQ0FJUk8pCiAjaW5jbHVkZSA8d2luZG93
cy5oPgorCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKKworI2lmIFVTRShD
QUlSTykKKyNpbmNsdWRlIDxjYWlyby5oPgorI2VuZGlmCisKKyNpZiBVU0UoSEFSRkJVWlopCisj
aW5jbHVkZSA8aGIuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSA8Z2xpYi1v
YmplY3QuaD4KKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisjaW5jbHVkZSA8bGlic291cC9zb3Vw
Lmg+CisjZW5kaWYKKworI2lmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVkZSA8Z3N0L2dzdC5oPgor
I2VuZGlmCisKICNlbHNlCiAKICNpZiBPUyhXSU5ET1dTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzMGVhYTMzYzRkNjBhNTkyODdmMjRlY2EyNTQ2YTJmOThlZWUx
MDY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgIldlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVm
aXguaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4
LmgKaW5kZXggNzViYTI0MDdlZTQxNTg1YWI5YmFhMzI0N2MyOGQxNDQ3ZWVjMjQxMi4uZjBmYjEz
ZTE3MmM2MDY3ODZiMzRlZTVmN2Y3NTViMWM0YzBkZmI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oCkBAIC00Myw5ICs0
Myw2IEBACiAKICNpZiAhT1MoV0lORE9XUykKICNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0KLSNkZWZp
bmUgV0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQgV0VCQ09SRV9FWFBPUlQKLQogI2VuZGlmIC8v
IE9TKFdJTkRPV1MpCiAKICNpbmNsdWRlIDxmY250bC5oPgpAQCAtODgsMTEgKzg1LDI3IEBACiAK
ICNpZiBQTEFURk9STShXSU5fQ0FJUk8pCiAjaW5jbHVkZSA8d2luZG93cy5oPgotI2Vsc2UKKyNl
bGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorCisjaWYgVVNFKENBSVJPKQorI2lu
Y2x1ZGUgPGNhaXJvL2NhaXJvLmg+CisjZW5kaWYKKworI2lmIFVTRShHTElCKQorI2luY2x1ZGUg
PGdsaWItb2JqZWN0Lmg+CisjZW5kaWYKKworI2lmIFVTRShTT1VQKQorI2luY2x1ZGUgPGxpYnNv
dXAvc291cC5oPgorI2VuZGlmCisKKyNpZiBVU0UoR1NUUkVBTUVSKQorI2luY2x1ZGUgPGdzdC9n
c3QuaD4KKyNlbmRpZgorCisjZWxpZiBPUyhXSU5ET1dTKQogCi0jaWYgT1MoV0lORE9XUykKICNp
ZiBVU0UoQ0cpCi0KIC8vIEZJWE1FIDxyZGFyOi8vcHJvYmxlbS84MjA4ODY4PiBSZW1vdmUgc3Vw
cG9ydCBmb3Igb2Jzb2xldGUgQ29sb3JTeW5jIEFQSSwgQ29yZVNlcnZpY2VzIGhlYWRlciBpbiBD
b3JlR3JhcGhpY3MKIC8vIFdlIGNhbiByZW1vdmUgdGhpcyBvbmNlIHRoZSBuZXcgQ29sb3JTeW5j
IEFQSXMgYXJlIGF2YWlsYWJsZSBpbiBhbiBpbnRlcm5hbCBTYWZhcmkgU0RLLgogI2luY2x1ZGUg
PENvbG9yU3luYy9Db2xvclN5bmMuaD4KQEAgLTEwMSwxOCArMTE0LDIwIEBACiAjZGVmaW5lIE9C
U09MRVRFX0NPTE9SU1lOQ19BUEkKICNlbmRpZgogI2VuZGlmCisKICNpZiBVU0UoQ0ZVUkxDT05O
RUNUSU9OKQogI2luY2x1ZGUgPENGTmV0d29yay9DRk5ldHdvcmsuaD4KIC8vIE9uIFdpbmRvd3Ms
IGRpc3BhdGNoLmggbmVlZHMgdG8gYmUgaW5jbHVkZWQgYmVmb3JlIGNlcnRhaW4gQ0ZOZXR3b3Jr
IGhlYWRlcnMuCiAjaW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KICNlbmRpZgorCiAjaW5j
bHVkZSA8d2luZG93cy5oPgotI2Vsc2UKKworI2VsaWYgZGVmaW5lZChfX0FQUExFX18pCisKICNp
ZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpbmNsdWRlIDxDb3JlU2VydmljZXMvQ29yZVNlcnZp
Y2VzLmg+CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPU19GQU1JTFkpCi0jZW5kaWYgLy8gT1MoV0lO
RE9XUykKLQogI2VuZGlmCiAKICNpZmRlZiBfX09CSkNfXwpAQCAtMTM2LDQgKzE1MSwzIEBACiAj
dW5kZWYgdHJ5CiAjdW5kZWYgY2F0Y2gKICNlbmRpZgotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBk
ZTFkMTM1MWI2ZGVjY2VlMjEwOTcxYTI4YTYwMDM4MjI2NDVkMWUzLi5hNzQ1ODc5MWQ4NjhhNDI1
MmFhMzM4ZmUwYjQzODljYjk2ZWUzNjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTM3OSwxMSAr
Mzc5LDcgQEAgZW5kaWYgKCkKIAogbWFjcm8oQUREX1dFQktJVF9QUkVGSVhfSEVBREVSIF90YXJn
ZXQpCiAgICAgaWYgKFdlYktpdF9VU0VfUFJFRklYX0hFQURFUikKLSAgICAgICAgZ2V0X3Rhcmdl
dF9wcm9wZXJ0eShPTERfQ09NUElMRV9GTEFHUyAke190YXJnZXR9IENPTVBJTEVfRkxBR1MpCi0g
ICAgICAgIGlmICgke09MRF9DT01QSUxFX0ZMQUdTfSBTVFJFUVVBTCAiT0xEX0NPTVBJTEVfRkxB
R1MtTk9URk9VTkQiKQotICAgICAgICAgICAgc2V0KE9MRF9DT01QSUxFX0ZMQUdTICIiKQotICAg
ICAgICBlbmRpZiAoKQotICAgICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtfdGFyZ2V0fSBQ
Uk9QRVJUSUVTIENPTVBJTEVfRkxBR1MgIiR7T0xEX0NPTVBJTEVfRkxBR1N9IC1pbmNsdWRlICR7
V0VCS0lUX0RJUn0vV2ViS2l0MlByZWZpeC5oIikKKyAgICAgICAgV0VCS0lUX0FERF9QUkVDT01Q
SUxFRF9IRUFERVIoJHtfdGFyZ2V0fSBXZWJLaXQyUHJlZml4LmgpCiAgICAgZW5kaWYgKCkKIGVu
ZG1hY3JvKCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tO
YXRpdmVFdmVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVu
dC5oCmluZGV4IDQ0ZDZlNzc5YTM2YTdmMjRkYTY4NjJiZDk0YjRlYjJjNDc5YzMyOTAuLjljYTBh
YjNkMGRhZDgyNzNlYjk4YTNmZjg1NjlkYzA3NjRkMzVkZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgc3RydWN0
IE5TRXZlbnQ7CiAjZW5kaWYKIHR5cGVkZWYgTlNFdmVudCAqV0tOYXRpdmVFdmVudFB0cjsKICNl
bGlmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCit0eXBlZGVmIHVuaW9uIF9HZGtFdmVudCBHZGtF
dmVudDsKIHR5cGVkZWYgY29uc3QgR2RrRXZlbnQqIFdLTmF0aXZlRXZlbnRQdHI7CiAjZWxpZiBk
ZWZpbmVkKFdJTjMyKQogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgdGFnTVNHKiBXS05hdGl2ZUV2ZW50
UHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0MlByZWZpeC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDEyYjRhOTAxYzdjYjQyYWFmMzFjZjYyZGJlNzY3N2NkNGRmNmRjNTUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQyUHJl
Zml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiV2ViS2l0MlByZWZpeC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQy
UHJlZml4LmggYi9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaAppbmRleCA0MDZhYTgxMThm
YTY2ZGFkZmMzNWI4ZWJlNGJmMjQwOTNhY2Y2MWFmLi42YjI5Yjk5ODJlMzIzNWM4MTYyN2I0ZDc5
ZjEwNjRlNDEzOGI3MjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXgu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguaApAQCAtNjMsNiArNjMsMzQgQEAK
IAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXUEUpCisKKyNpZiBVU0UoQ0FJUk8pCisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KKyNl
bmRpZgorCisjaWYgVVNFKEhBUkZCVVpaKQorI2luY2x1ZGUgPGhiLmg+CisjZW5kaWYKKworI2lm
IFVTRShHTElCKQorI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjZW5kaWYKKworI2lmIFVTRShT
T1VQKQorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2VuZGlmCisKKyNpZiBVU0UoR1NUUkVB
TUVSKQorI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RLKQor
I2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNlbmRpZgorCisjZW5kaWYgLy8gUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCisKIC8qIFdoZW4gQysrIGV4Y2VwdGlvbnMgYXJlIGRpc2FibGVkLCB0
aGUgQysrIGxpYnJhcnkgZGVmaW5lcyB8dHJ5fCBhbmQgfGNhdGNofAogKiB0byBhbGxvdyBDKysg
Y29kZSB0aGF0IGV4cGVjdHMgZXhjZXB0aW9ucyB0byBidWlsZC4gVGhlc2UgZGVmaW5pdGlvbnMK
ICogaW50ZXJmZXJlIHdpdGggT2JqZWN0aXZlLUMrKyB1c2VzIG9mIE9iamVjdGl2ZS1DIGV4Y2Vw
dGlvbiBoYW5kbGVycywgd2hpY2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlzdHMudHh0CmluZGV4IDY1
ODk2NzY5NTJjM2Q1MGYyZmI3MDVkMjQzODNiNmMyZThmMWYyNjAuLmQ4M2I0Y2U0NTMxYzYyMjYz
NTNjYzNiNGQxODgzZmNkY2YzMGYyOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DTWFrZUxpc3RzLnR4dApA
QCAtNDIsNyArNDIsNiBAQCBXRUJLSVRfRlJBTUVXT1JLX0RFQ0xBUkUoV2ViS2l0TGVnYWN5KQog
V0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJTEVTX0lGX0VYSVNUUygpCiAKIGlmIChNU1ZDKQotICAg
IFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXRQcmVmaXguaCIgIndpbi9XZWJL
aXRQcmVmaXguY3BwIiBXZWJLaXRMZWdhY3lfU09VUkNFUykKICAgICBsaXN0KEFQUEVORCBXZWJL
aXRMZWdhY3lfU09VUkNFUyB3aW4vV2ViS2l0LnJlc291cmNlcy9XZWJLaXQucmMpCiAgICAgYWRk
X2RlZmluaXRpb25zKC9EV0VCS0lUX0VYUE9SVFMgL0RGUkFNRVdPUktfTkFNRT1XZWJLaXRMZWdh
Y3kpCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9ybU1h
Yy5jbWFrZSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggMzAw
YjAwYjQ1MTRkMzU2OTIxMTNlN2YyMjE2YWJmMTAxZjYyZjRmMy4uMmNlZDNhNGZkMjgzZDNlOWE1
OTI2MzE4YjViNWJjNTU2YTYyYTc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9Q
bGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1BsYXRmb3JtTWFjLmNt
YWtlCkBAIC02MzYsMyArNjM2LDUgQEAgV0VCS0lUX01BS0VfRk9SV0FSRElOR19IRUFERVJTKFdl
YktpdExlZ2FjeQogc2V0KFdlYktpdExlZ2FjeV9PVVRQVVRfTkFNRSBXZWJLaXRMZWdhY3kpCiAK
IHNldChDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICR7Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFH
U30gIi1jb21wYXRpYmlsaXR5X3ZlcnNpb24gMSAtY3VycmVudF92ZXJzaW9uICR7V0VCS0lUX01B
Q19WRVJTSU9OfSAtZnJhbWV3b3JrIFNlY3VyaXR5SW50ZXJmYWNlIikKKworV0VCS0lUX0FERF9Q
UkVDT01QSUxFRF9IRUFERVIoV2ViS2l0TGVnYWN5IG1hYy9XZWJLaXRQcmVmaXguaCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IGJjYzY2Y2NiYWY3NzE3ZmNlOTExYWFh
Yjg1Y2YxNjhlMWEzMDJjMzcuLmE2MTVjNzE3MWMwY2Q4NTg2ODcxMmU2MzE5Y2ZlOTYyZTdjODg5
MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1XaW4uY21ha2UKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtNDg5LDMgKzQ4OSw1
IEBAIGxpc3QoQVBQRU5EIFdlYktpdExlZ2FjeV9QUklWQVRFX0RFRklOSVRJT05TCiAgICAgU1RB
VElDQUxMWV9MSU5LRURfV0lUSF9QQUwKICAgICBTVEFUSUNBTExZX0xJTktFRF9XSVRIX1dlYkNv
cmUKICkKKworV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViS2l0TGVnYWN5IHdpbi9X
ZWJLaXRQcmVmaXguaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktp
dFByZWZpeC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRQcmVmaXguY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMDY3ZTk2YzgyN2U1ZDE4MDc0MDJmYzEzMDY0
NTI1ZDY3NmQyZTg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFByZWZpeC5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSwyOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0jaW5jbHVkZSAiV2ViS2l0UHJlZml4LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9DTWFrZUxp
c3RzLnR4dAppbmRleCBiYzA5Nzk4YjhiMDJhZjI5YzM4M2I3ODdlNmYxNzZmYTIyZWZkNzNiLi43
YWU3YzFjMDA3MzE5MGI5YjAwYWM3YzE1NDkwYWY1ZjUyMDBjMjA3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlv
bnMvQ01ha2VMaXN0cy50eHQKQEAgLTQxLDggKzQxLDYgQEAgZmlsZShDT1BZICR7Q01BS0VfQ1VS
UkVOVF9TT1VSQ0VfRElSfS9BUEkvV0tDQUNGSW1hZ2VJbnRlcm5hbC5oIERFU1RJTkFUSU9OICR7
REUKIGZpbGUoQ09QWSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vQVBJL1dLQ0FDRlZpZXcu
aCBERVNUSU5BVElPTiAke0RFUklWRURfU09VUkNFU19ESVJ9L1dlYktpdFF1YXJ0ekNvcmVBZGRp
dGlvbnMpCiBmaWxlKENPUFkgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L0FQSS9XS0NBQ0ZW
aWV3UHJpdmF0ZS5oIERFU1RJTkFUSU9OICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vV2ViS2l0UXVh
cnR6Q29yZUFkZGl0aW9ucykKIAotV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktp
dFF1YXJ0ekNvcmVBZGRpdGlvbnNQcmVmaXguaCIgIldlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNQ
cmVmaXguY3BwIiBXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zX1NPVVJDRVMpCi0KIGluY2x1ZGVf
ZGlyZWN0b3JpZXMoCiAgICAgLgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRp
bmdIZWFkZXJzIgpAQCAtNTksMyArNTcsNCBAQCB0YXJnZXRfbGlua19saWJyYXJpZXMoV2ViS2l0
UXVhcnR6Q29yZUFkZGl0aW9ucwogICAgIENvcmVHcmFwaGljcyR7REVCVUdfU1VGRklYfQogICAg
IFF1YXJ0ekNvcmUke0RFQlVHX1NVRkZJWH0KICkKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVB
REVSKFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMgV2ViS2l0UXVhcnR6Q29yZUFkZGl0aW9uc1By
ZWZpeC5oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UXVhcnR6
Q29yZUFkZGl0aW9ucy9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zUHJlZml4LmNwcCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvV2ViS2l0UXVhcnR6
Q29yZUFkZGl0aW9uc1ByZWZpeC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2
OWVkOTNjMWU0MDBhNTg3NzZjNmY3ZTk2MmM0OWI5NTc5Yzk0MTQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
S2l0UXVhcnR6Q29yZUFkZGl0aW9ucy9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zUHJlZml4LmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8qCi0qIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0qCi0qIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSogYXJlIG1ldDoKLSogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0qICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0qCi0qIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0qIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0qIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0qIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0qIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0qIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotKi8KLQotI2luY2x1ZGUgIldlYktpdFF1YXJ0ekNvcmVBZGRpdGlv
bnNQcmVmaXguaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFr
ZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQppbmRleCA3NDFhNTkzODE1MGZk
NzRhYmVmYzIwMTBjZjg2MTJkNjY0ZDMyOWUyLi5mZTYxZTMzNDcxNzg2ODczY2Q4YzAyN2JjOTZj
OGIyNDhiMTcyMmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21h
a2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCkBAIC0xOTMsNiArMTkz
LDcgQEAgbWFjcm8oV0VCS0lUX09QVElPTl9CRUdJTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklO
RShFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSSAiVG9nZ2xlIFBpY3R1cmUtaW4tUGljdHVy
ZSBBUEkgc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5B
QkxFX1BPSU5URVJfTE9DSyAiVG9nZ2xlIHBvaW50ZXIgbG9jayBzdXBwb3J0IiBQUklWQVRFIE9G
RikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUICJU
b2dnbGUgcHVibGljIHN1ZmZpeCBsaXN0IHN1cHBvcnQiIFBSSVZBVEUgT04pCisgICAgV0VCS0lU
X09QVElPTl9ERUZJTkUoRU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUlMgIlRvZ2dsZSBwcmVjb21w
aWxlZCBoZWFkZXJzIGR1cmluZyBidWlsZCIgUFJJVkFURSBPTikKICAgICBXRUJLSVRfT1BUSU9O
X0RFRklORShFTkFCTEVfUkVMRUFTRV9MT0cgIlRvZ2dsZSByZWxlYXNlIGxvZyBzdXBwb3J0IiBQ
UklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfUkVNT1RFX0lOU1BF
Q1RPUiAiVG9nZ2xlIHJlbW90ZSBpbnNwZWN0b3Igc3VwcG9ydCIgUFJJVkFURSBPTikKICAgICBX
RUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfUkVTT1VSQ0VfVVNBR0UgIlRvZ2dsZSByZXNvdXJj
ZSB1c2FnZSBzdXBwb3J0IiBQUklWQVRFIE9GRikKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9X
ZWJLaXRNYWNyb3MuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCmluZGV4
IDIwMGNlNDgxODg5YjdlMjFlYzg2Y2M2NWVhYTNhZTBlOWM4N2U3M2QuLmE2ZmI0YTBlNTZmNjM5
NTdkYTdiYTBjYTc4ODQwNDY2MzQ5MWIxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJL
aXRNYWNyb3MuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQpAQCAt
OTAsMzQgKzkwLDI1IEBAIG1hY3JvKFdFQktJVF9BRERfU09VUkNFX0RFUEVOREVOQ0lFUyBfc291
cmNlIF9kZXBzKQogICAgIHVuc2V0KF90bXApCiBlbmRtYWNybygpCiAKLW1hY3JvKFdFQktJVF9B
RERfUFJFQ09NUElMRURfSEVBREVSIF9oZWFkZXIgX2NwcCBfc291cmNlKQotICAgIGlmIChNU1ZD
KQotICAgICAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KFByZWNvbXBpbGVkQmFzZW5hbWUgJHtf
Y3BwfSBOQU1FX1dFKQotICAgICAgICBmaWxlKE1BS0VfRElSRUNUT1JZICIke0NNQUtFX0NVUlJF
TlRfQklOQVJZX0RJUn0vJHtfc291cmNlfSIpCi0gICAgICAgIHNldChQcmVjb21waWxlZEJpbmFy
eSAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7X3NvdXJjZX0vJHtQcmVjb21waWxlZEJh
c2VuYW1lfS5wY2giKQotICAgICAgICBzZXQoX3NvdXJjZXMgJHske19zb3VyY2V9fSkKIAotICAg
ICAgICAjIGNsYW5nLWNsIHJlcXVpcmVzIC9GSSB3aXRoIC9ZYwotICAgICAgICBpZiAoQ09NUElM
RVJfSVNfQ0xBTkdfQ0wpCi0gICAgICAgICAgICBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMo
JHtfY3BwfQotICAgICAgICAgICAgICAgIFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAiL1ljXCIk
e19oZWFkZXJ9XCIgL0ZwXCIke1ByZWNvbXBpbGVkQmluYXJ5fVwiIC9GSVwiJHtfaGVhZGVyfVwi
IgotICAgICAgICAgICAgICAgIE9CSkVDVF9PVVRQVVRTICIke1ByZWNvbXBpbGVkQmluYXJ5fSIp
Ci0gICAgICAgIGVsc2UgKCkKLSAgICAgICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGll
cygke19jcHB9Ci0gICAgICAgICAgICAgICAgUFJPUEVSVElFUyBDT01QSUxFX0ZMQUdTICIvWWNc
IiR7X2hlYWRlcn1cIiAvRnBcIiR7UHJlY29tcGlsZWRCaW5hcnl9XCIiCi0gICAgICAgICAgICAg
ICAgT0JKRUNUX09VVFBVVFMgIiR7UHJlY29tcGlsZWRCaW5hcnl9IikKK2lmIChFTkFCTEVfUFJF
Q09NUElMRURfSEVBREVSUyBBTkQgQ01BS0VfVkVSU0lPTiBWRVJTSU9OX0xFU1MgMy4xNykKKyAg
ICBtZXNzYWdlKFdBUk5JTkcgIlByZWNvbXBpbGVkIGhlYWRlcnMgZGlzYWJsZWQsIENNYWtlIDMu
MTcgb3IgbmV3ZXIgcmVxdWlyZWQiKQorICAgIHNldChFTkFCTEVfUFJFQ09NUElMRURfSEVBREVS
UyBPRkYpCitlbmRpZiAoKQorCitpZiAoRU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUlMpCisgICAg
ZnVuY3Rpb24oV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIgX3RhcmdldCBfaGVhZGVyKQor
ICAgICAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5KHR5cGUgJHtfdGFyZ2V0fSBUWVBFKQorICAgICAg
ICBpZiAoTk9UIHR5cGUgU1RSRVFVQUwgT0JKRUNUX0xJQlJBUlkpCisgICAgICAgICAgICBtZXNz
YWdlKFNUQVRVUyAiICAgLS0tPiAke190YXJnZXR9IC0+ICR7X2hlYWRlcn0iKQorICAgICAgICAg
ICAgdGFyZ2V0X3ByZWNvbXBpbGVfaGVhZGVycygke190YXJnZXR9IFBSSVZBVEUgJHtfaGVhZGVy
fSkKICAgICAgICAgZW5kaWYgKCkKLSAgICAgICAgc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVz
KCR7X3NvdXJjZXN9Ci0gICAgICAgICAgICBQUk9QRVJUSUVTIENPTVBJTEVfRkxBR1MgIi9ZdVwi
JHtfaGVhZGVyfVwiIC9GSVwiJHtfaGVhZGVyfVwiIC9GcFwiJHtQcmVjb21waWxlZEJpbmFyeX1c
IiIpCi0KLSAgICAgICAgZm9yZWFjaCAoX3NyYyAke19zb3VyY2VzfSkKLSAgICAgICAgICAgIFdF
QktJVF9BRERfU09VUkNFX0RFUEVOREVOQ0lFUygke19zcmN9ICR7UHJlY29tcGlsZWRCaW5hcnl9
KQotICAgICAgICBlbmRmb3JlYWNoICgpCi0KLSAgICAgICAgbGlzdChBUFBFTkQgJHtfc291cmNl
fSAke19jcHB9KQotICAgIGVuZGlmICgpCi0gICAgI0ZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgWGNv
ZGUuCi1lbmRtYWNybygpCisgICAgZW5kZnVuY3Rpb24oKQorZWxzZSAoKQorICAgIGZ1bmN0aW9u
KFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSIF90YXJnZXQgX2hlYWRlcikKKyAgICAgICAg
IyBOby1vcAorICAgIGVuZGZ1bmN0aW9uKCkKK2VuZGlmICgpCiAKIG1hY3JvKFdFQktJVF9GUkFN
RVdPUktfREVDTEFSRSBfdGFyZ2V0KQogICAgICMgYWRkX2xpYnJhcnkoKSB3aXRob3V0IGFueSBz
b3VyY2UgZmlsZXMgdHJpZ2dlcnMgQ01ha2Ugd2FybmluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9DTWFrZUxp
c3RzLnR4dAppbmRleCBmNmNmMzcyYmRkZGQ4ZGJlMWNiM2E3ZjQyMTU2MDg0NDRkZTMxZjY1Li4x
MGQ5YTAyNzYyMjUwMjhmNGQ3NWUxZjM0ZjIwZTc3Y2E3N2VhZjQ5IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9DTWFrZUxpc3RzLnR4dApAQCAtNjcsMyArNjcsNiBAQCBsaXN0KEFQUEVORCBEdW1wUmVuZGVy
VHJlZV9TT1VSQ0VTCiBXRUJLSVRfRVhFQ1VUQUJMRV9ERUNMQVJFKER1bXBSZW5kZXJUcmVlKQog
V0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJTEVTX0lGX0VYSVNUUygpCiBXRUJLSVRfRVhFQ1VUQUJM
RShEdW1wUmVuZGVyVHJlZSkKK2lmIChOT1QgV0lOMzIpCisgICAgV0VCS0lUX0FERF9QUkVDT01Q
SUxFRF9IRUFERVIoRHVtcFJlbmRlclRyZWUgRHVtcFJlbmRlclRyZWVQcmVmaXguaCkKK2VuZGlm
ICgpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZSBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IGZkMDY1MmI0M2Y1
YzBiOWUyMTljM2ZkNzVhOTMzZjEwMDU5MDY4MGEuLjJkNTA5YzIzYzJmMTRjZDFlYTc5MDlmMGIw
N2ZkOTdkOTk1NjI3ZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRmb3Jt
V2luLmNtYWtlCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1BsYXRmb3JtV2luLmNtYWtlCkBA
IC03Miw3ICs3Miw2IEBAIGVsc2UgKCkKICAgICBlbmRpZiAoKQogZW5kaWYgKCkKIAotV0VCS0lU
X0FERF9QUkVDT01QSUxFRF9IRUFERVIoIkR1bXBSZW5kZXJUcmVlUHJlZml4LmgiICJ3aW4vRHVt
cFJlbmRlclRyZWVQcmVmaXguY3BwIiBEdW1wUmVuZGVyVHJlZV9TT1VSQ0VTKQogc2V0KENNQUtF
X1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHU30gJHtNU1ZD
X1JVTlRJTUVfTElOS0VSX0ZMQUdTfSIpCiAKIFdFQktJVF9XUkFQX0VYRUNVVEFCTEUoRHVtcFJl
bmRlclRyZWUKQEAgLTgwLDMgKzc5LDYgQEAgV0VCS0lUX1dSQVBfRVhFQ1VUQUJMRShEdW1wUmVu
ZGVyVHJlZQogICAgIExJQlJBUklFUyBzaGx3YXBpCiApCiB0YXJnZXRfY29tcGlsZV9kZWZpbml0
aW9ucyhEdW1wUmVuZGVyVHJlZSBQUklWQVRFICR7d3JhcHBlcl9ERUZJTklUSU9OU30pCisKKyMg
QWRkIHByZWNvbXBpbGVkIGhlYWRlcnMgdG8gd3JhcHBlciBsaWJyYXJ5CitXRUJLSVRfQUREX1BS
RUNPTVBJTEVEX0hFQURFUihEdW1wUmVuZGVyVHJlZUxpYiBEdW1wUmVuZGVyVHJlZVByZWZpeC5o
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlUHJl
Zml4LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZVByZWZpeC5j
cHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjNzVkNGEzNjAyZGU3YmMwZGExNjE4
YzFkMDhkY2M2ZjI5NTM3ZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlUHJlZml4LmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICog
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1l
cyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZVByZWZpeC5oIgpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQKaW5kZXggNjljMjk0YzgyOGMwMzBiNTZj
MGEzZjI4ZTcyN2M0NDk3YWU5OGQ4ZC4uZDViNmQyZTljNTE5ZTgyNjhjNWQwNThjY2M4ZWUzNGYz
YTlkODkyZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4
dAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0CkBAIC0xNDAsNiAr
MTQwLDkgQEAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZSBQ
UklWQVRFICR7V2ViS2l0VGVzdFJ1bm5lckluamVjdGUKIGFkZF9kZXBlbmRlbmNpZXMoVGVzdFJ1
bm5lckluamVjdGVkQnVuZGxlIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZUJpbmRpbmdz
KQogCiBXRUJLSVRfRVhFQ1VUQUJMRShXZWJLaXRUZXN0UnVubmVyKQoraWYgKE5PVCBXSU4zMikK
KyAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihXZWJLaXRUZXN0UnVubmVyIFdlYktp
dFRlc3RSdW5uZXJQcmVmaXguaCkKK2VuZGlmICgpCiAKIGlmIChDT01QSUxFUl9JU19HQ0NfT1Jf
Q0xBTkcpCiAgICAgV0VCS0lUX0FERF9UQVJHRVRfQ1hYX0ZMQUdTKFRlc3RSdW5uZXJJbmplY3Rl
ZEJ1bmRsZSAtV25vLXVudXNlZC1wYXJhbWV0ZXIpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1BsYXRmb3JtRlRXLmNtYWtlIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0
Zm9ybUZUVy5jbWFrZQppbmRleCA2ZjFjOTY3M2IzYmZmMzNjYjg0MTdmYWNhNWM3M2Y1NmNmYWQ4
ZDY3Li4xNGVjNTczMGQyZmNlMjM0M2ExYTcxY2E5OTg3MjZkMzkxYzRiMWU5IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtRlRXLmNtYWtlCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvUGxhdGZvcm1GVFcuY21ha2UKQEAgLTI5LDggKzI5LDYgQEAgbGlzdChB
UFBFTkQgV2ViS2l0VGVzdFJ1bm5lcl9MSUJSQVJJRVMKICAgICBPbGVhY2MKICkKIAotV0VCS0lU
X0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktpdFRlc3RSdW5uZXJQcmVmaXguaCIgIndpbi9X
ZWJLaXRUZXN0UnVubmVyUHJlZml4LmNwcCIgV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTKQotCiBz
ZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9GTEFHUyAiJHtDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdT
fSAke01TVkNfUlVOVElNRV9MSU5LRVJfRkxBR1N9IikKIAogV0VCS0lUX1dSQVBfRVhFQ1VUQUJM
RShXZWJLaXRUZXN0UnVubmVyCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Bs
YXRmb3JtV2luLmNtYWtlIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdpbi5jbWFr
ZQppbmRleCA0NTNmMmM3YTM4NDI2MWQ0MTQ0ZjVlNTk5M2RkNWExNDljZDc0ZmQzLi4xMTk5OWY1
NGFjZTkwOTIzYzE5MjY4NDY1OWFkNDRjN2EzZmYwOWJjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTM4LDggKzM4LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0
VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlX0xJQlJBUklFUwogICAgICQ8VEFSR0VUX09CSkVDVFM6
V2ViQ29yZVRlc3RTdXBwb3J0PgogKQogCi1XRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigi
V2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oIiAid2luL1dlYktpdFRlc3RSdW5uZXJQcmVmaXguY3Bw
IiBXZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMpCi0KIHNldChDTUFLRV9TSEFSRURfTElOS0VSX0ZM
QUdTICIke0NNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1N9ICR7TVNWQ19SVU5USU1FX0xJTktFUl9G
TEFHU30iKQogCiBXRUJLSVRfV1JBUF9FWEVDVVRBQkxFKFdlYktpdFRlc3RSdW5uZXIKQEAgLTQ3
LDMgKzQ1LDYgQEAgV0VCS0lUX1dSQVBfRVhFQ1VUQUJMRShXZWJLaXRUZXN0UnVubmVyCiAgICAg
TElCUkFSSUVTIHNobHdhcGkKICkKIHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKFdlYktpdFRl
c3RSdW5uZXIgUFJJVkFURSAke3dyYXBwZXJfREVGSU5JVElPTlN9KQorCisjIEFkZCBwcmVjb21w
aWxlZCBoZWFkZXJzIHRvIHdyYXBwZXIgbGlicmFyeQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9I
RUFERVIoV2ViS2l0VGVzdFJ1bm5lckxpYiBXZWJLaXRUZXN0UnVubmVyUHJlZml4LmgpCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9XZWJLaXRUZXN0UnVubmVyUHJlZml4
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1dlYktpdFRlc3RSdW5uZXJQcmVmaXgu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NGM3NGNlOTVjYTA5NGI1OGZjZTA3
ZTQ5YTEzZjY0NmJhM2M4ZWFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1dlYktpdFRlc3RSdW5uZXJQcmVm
aXguY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
LSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotI2luY2x1ZGUgIldlYktpdFRlc3RSdW5uZXJQcmVm
aXguaCIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447615</attachid>
            <date>2021-12-20 11:32:33 -0800</date>
            <delta_ts>2021-12-20 12:35:03 -0800</delta_ts>
            <desc>Patch v14</desc>
            <filename>bug-139438-20211220213231.patch</filename>
            <type>text/plain</type>
            <size>32920</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggZjQ4YjdhYzkxN2Y5YmY4NDUwNDk0ZDVhYzdhNTQ4NTJiYTNhOWJmMy4uZWZkZTNh
MTg3YzQ1OWFkNTc5NDRkMjk2OTllMGRkYmE4NGU2ODJiMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMTUyNCw2ICsxNTI0LDcgQEAgZW5kaWYgKCkKIFdFQktJVF9DT01Q
VVRFX1NPVVJDRVMoSmF2YVNjcmlwdENvcmUpCiBXRUJLSVRfRlJBTUVXT1JLKEphdmFTY3JpcHRD
b3JlKQogV0VCS0lUX0ZSQU1FV09SS19UQVJHRVQoSmF2YVNjcmlwdENvcmUpCitXRUJLSVRfQURE
X1BSRUNPTVBJTEVEX0hFQURFUihKYXZhU2NyaXB0Q29yZSBKYXZhU2NyaXB0Q29yZVByZWZpeC5o
KQogCiBpZiAoTk9UICIke1BPUlR9IiBTVFJFUVVBTCAiTWFjIikKICAgICBpZiAoJHtKYXZhU2Ny
aXB0Q29yZV9MSUJSQVJZX1RZUEV9IFNUUkVRVUFMICJTSEFSRUQiKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXguaAppbmRleCBjYjc1YTE4NDUwN2NlNTQ5NmZj
MDg0OGU2NWYxZTcyNTg1MjAwMzIyLi40OWExNzVmZmU0ZDYwMWJjYjgxM2JlOTcyZDY2ZmVmY2Vi
MzVmNTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQ
cmVmaXguaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVQcmVmaXgu
aApAQCAtMjMsMTEgKzIzLDE3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKyNpZiBkZWZpbmVk
KEhBVkVfQ09ORklHX0gpICYmIEhBVkVfQ09ORklHX0ggJiYgZGVmaW5lZChCVUlMRElOR19XSVRI
X0NNQUtFKQorI2luY2x1ZGUgImNtYWtlY29uZmlnLmgiCisjZW5kaWYKKworI2lmIGRlZmluZWQo
X19BUFBMRV9fKQogI2lmZGVmIF9fY3BsdXNwbHVzCiAjZGVmaW5lIE5VTEwgX19udWxsCiAjZWxz
ZQogI2RlZmluZSBOVUxMICgodm9pZCAqKTApCiAjZW5kaWYKKyNlbmRpZgogCiAjaW5jbHVkZSA8
Y3R5cGUuaD4KICNpbmNsdWRlIDxmbG9hdC5oPgpAQCAtMzYsMTggKzQyLDE5IEBACiAjaW5jbHVk
ZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KLSNp
bmNsdWRlIDxzdHJpbmdzLmg+CiAjaW5jbHVkZSA8dGltZS5oPgorCisjaWYgZGVmaW5lZChfX0FQ
UExFX18pCisjaW5jbHVkZSA8c3RyaW5ncy5oPgogI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgogI2lu
Y2x1ZGUgPHN5cy90aW1lLmg+CiAjaW5jbHVkZSA8c3lzL3RpbWViLmg+CiAjaW5jbHVkZSA8c3lz
L3R5cGVzLmg+CisjZW5kaWYKIAogI2lmZGVmIF9fY3BsdXNwbHVzCi0KICNpbmNsdWRlIDxsaXN0
PgogI2luY2x1ZGUgPHR5cGVpbmZvPgotCiAjZW5kaWYKIAogI2lmZGVmIF9fY3BsdXNwbHVzCkBA
IC01NSw3ICs2MiwxMSBAQAogI2RlZmluZSBkZWxldGUgKCJpZiB5b3UgdXNlIG5ldy9kZWxldGUg
bWFrZSBzdXJlIHRvIGluY2x1ZGUgY29uZmlnLmggYXQgdGhlIHRvcCBvZiB0aGUgZmlsZSIoKSkg
CiAjZW5kaWYKIAotLyogV29yayBhcm91bmQgYnVnIHdpdGggQysrIGxpYnJhcnkgdGhhdCBzY3Jl
d3MgdXAgT2JqZWN0aXZlLUMrKyB3aGVuIGV4Y2VwdGlvbiBzdXBwb3J0IGlzIGRpc2FibGVkLiAq
LworLyogV2hlbiBDKysgZXhjZXB0aW9ucyBhcmUgZGlzYWJsZWQsIHRoZSBDKysgbGlicmFyeSBk
ZWZpbmVzIHx0cnl8IGFuZCB8Y2F0Y2h8CisgKiB0byBhbGxvdyBDKysgY29kZSB0aGF0IGV4cGVj
dHMgZXhjZXB0aW9ucyB0byBidWlsZC4gVGhlc2UgZGVmaW5pdGlvbnMKKyAqIGludGVyZmVyZSB3
aXRoIE9iamVjdGl2ZS1DKysgdXNlcyBvZiBPYmplY3RpdmUtQyBleGNlcHRpb24gaGFuZGxlcnMs
IHdoaWNoCisgKiB1c2UgfEB0cnl8IGFuZCB8QGNhdGNofC4gQXMgYSB3b3JrYXJvdW5kLCB1bmRl
ZmluZSB0aGVzZSBtYWNyb3MuICovCisjaWZkZWYgX19PQkpDX18KICN1bmRlZiB0cnkKICN1bmRl
ZiBjYXRjaAotCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOWM5NjlkZDZmYTk3OTg2
NDIyMTk0OTcwY2M5N2U2OTA4ZDgwMDE5Zi4uNzliYWY5MmNlMjNhYzQ4N2U5ZDIxNDYzMjRlNjZj
MGQzODAxYTQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI0MTIsMTAgKzI0MTIsNiBAQCBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9
L1hNTE5hbWVzLmNwcCkKIAogV0VCS0lUX0NPTVBVVEVfU09VUkNFUyhXZWJDb3JlKQogCi1pZiAo
TVNWQykKLSAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViQ29yZVByZWZpeC5o
IiAiV2ViQ29yZVByZWZpeC5jcHAiIFdlYkNvcmVfU09VUkNFUykKLWVuZGlmICgpCi0KIFdFQktJ
VF9DT1BZX0ZJTEVTKFdlYkNvcmVfQ29weVByaXZhdGVIZWFkZXJzCiAgICAgREVTVElOQVRJT04g
JHtXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlNfRElSfS9XZWJDb3JlCiAgICAgRklM
RVMgJHtXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlN9CkBAIC0yNDMyLDYgKzI0Mjgs
NyBAQCBlbmRpZiAoKQogCiBXRUJLSVRfRlJBTUVXT1JLKFdlYkNvcmUpCiBXRUJLSVRfRlJBTUVX
T1JLX1RBUkdFVChXZWJDb3JlKQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoV2ViQ29y
ZSBXZWJDb3JlUHJlZml4LmgpCiAKIGlmIChBUFBMRSkKICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRp
ZXMoV2ViQ29yZSBQUk9QRVJUSUVTIExJTktfRkxBR1MgIi1zdWJfbGlicmFyeSBsaWJvYmpjIC11
bWJyZWxsYSBXZWJLaXQgLWFsbG93YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxv
d2FibGVfY2xpZW50IFdlYktpdDIgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0TGVnYWN5IikKQEAg
LTI0NDUsMTAgKzI0NDIsNiBAQCBpZiAoQ01BS0VfQ09NUElMRVJfSVNfR05VQ1hYIEFORCAiJHtM
T1dFUkNBU0VfQ01BS0VfSE9TVF9TWVNURU1fUFJPQ0VTU09SfSIgTUFUQwogICAgIFdFQktJVF9B
RERfVEFSR0VUX0NYWF9GTEFHUyhXZWJDb3JlIC1mbm8tdHJlZS1zcmEpCiBlbmRpZiAoKQogCi1p
ZiAoTVNWQykKLSAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigiV2ViQ29yZVRlc3RT
dXBwb3J0UHJlZml4LmgiICJ0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5jcHAi
IFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTKQotZW5kaWYgKCkKLQogV0VCS0lUX0NPUFlfRklM
RVMoQ29weV9XZWJDb3JlVGVzdFN1cHBvcnRQcml2YXRlSGVhZGVycwogICAgIERFU1RJTkFUSU9O
ICR7V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTX0RJUn0vV2ViQ29yZVRlc3RTdXBw
b3J0CiAgICAgRklMRVMgJHtXZWJDb3JlVGVzdFN1cHBvcnRfUFJJVkFURV9IRUFERVJTfQpAQCAt
MjQ3MCw2ICsyNDYzLDcgQEAgZW5kaWYgKCkKIAogV0VCS0lUX0ZSQU1FV09SSyhXZWJDb3JlVGVz
dFN1cHBvcnQpCiBXRUJLSVRfRlJBTUVXT1JLX1RBUkdFVChXZWJDb3JlVGVzdFN1cHBvcnQpCitX
RUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihXZWJDb3JlVGVzdFN1cHBvcnQgdGVzdGluZy9q
cy9XZWJDb3JlVGVzdFN1cHBvcnRQcmVmaXguaCkKIAogaWYgKCR7V2ViQ29yZV9MSUJSQVJZX1RZ
UEV9IE1BVENIRVMgIlNIQVJFRCIpCiAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFdlYkNvcmUg
UFJPUEVSVElFUyBWRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OfSBTT1ZFUlNJT04gJHtQUk9KRUNU
X1ZFUlNJT05fTUFKT1J9KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZURlcml2
ZWRTb3VyY2VzUHJlZml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVEZXJpdmVkU291cmNl
c1ByZWZpeC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwYzJkNzg5NWE3ZTc4
NTJjMWI3ZDEyN2E0YmYxM2QzMThiNjZiM2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZURlcml2ZWRTb3VyY2VzUHJl
Zml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgIldlYkNvcmVQcmVmaXguaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguY3BwIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZVByZWZpeC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIw
YzJkNzg5NWE3ZTc4NTJjMWI3ZDEyN2E0YmYxM2QzMThiNjZiM2IuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZp
eC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJXZWJDb3JlUHJlZml4LmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlUHJlZml4LmggYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlUHJlZml4LmgKaW5kZXggZDBjNDVmNjYyZGU3NWQyNjBhYzZlYTY0YWI1ZDAwYzVi
Yzg0OTk4Zi4uZjZkZjQ2NjFhZDZhOTU0YTMxM2JlNjQxOWNmNDViMTA3NmU2ZTNiYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmVQcmVmaXguaApAQCAtMTE2LDYgKzExNiwyOSBAQAogCiAjaWYgUExBVEZPUk0oV0lO
X0NBSVJPKQogI2luY2x1ZGUgPHdpbmRvd3MuaD4KKworI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShXUEUpCisKKyNpZiBVU0UoQ0FJUk8pCisjaW5jbHVkZSA8Y2Fpcm8uaD4KKyNlbmRp
ZgorCisjaWYgVVNFKEhBUkZCVVpaKQorI2luY2x1ZGUgPGhiLmg+CisjZW5kaWYKKworI2lmIFVT
RShHTElCKQorI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjZW5kaWYKKworI2lmIFVTRShTT1VQ
KQorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorI2VuZGlmCisKKyNpZiBVU0UoR1NUUkVBTUVS
KQorI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyNlbmRpZgorCiAjZWxzZQogCiAjaWYgT1MoV0lORE9X
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBw
b3J0UHJlZml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBw
b3J0UHJlZml4LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzBlYWEzM2M0ZDYw
YTU5Mjg3ZjI0ZWNhMjU0NmEyZjk4ZWVlMTA2NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0
U3VwcG9ydFByZWZpeC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJXZWJDb3Jl
VGVzdFN1cHBvcnRQcmVmaXguaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
anMvV2ViQ29yZVRlc3RTdXBwb3J0UHJlZml4LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pz
L1dlYkNvcmVUZXN0U3VwcG9ydFByZWZpeC5oCmluZGV4IDc1YmEyNDA3ZWU0MTU4NWFiOWJhYTMy
NDdjMjhkMTQ0N2VlYzI0MTIuLmYwZmIxM2UxNzJjNjA2Nzg2YjM0ZWU1ZjdmNzU1YjFjNGMwZGZi
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBw
b3J0UHJlZml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1
cHBvcnRQcmVmaXguaApAQCAtNDMsOSArNDMsNiBAQAogCiAjaWYgIU9TKFdJTkRPV1MpCiAjaW5j
bHVkZSA8cHRocmVhZC5oPgotCi0jZGVmaW5lIFdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JUIFdF
QkNPUkVfRVhQT1JUCi0KICNlbmRpZiAvLyBPUyhXSU5ET1dTKQogCiAjaW5jbHVkZSA8ZmNudGwu
aD4KQEAgLTg4LDExICs4NSwyNyBAQAogCiAjaWYgUExBVEZPUk0oV0lOX0NBSVJPKQogI2luY2x1
ZGUgPHdpbmRvd3MuaD4KLSNlbHNlCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQ
RSkKKworI2lmIFVTRShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby9jYWlyby5oPgorI2VuZGlmCisK
KyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2VuZGlmCisKKyNpZiBV
U0UoU09VUCkKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKyNlbmRpZgorCisjaWYgVVNFKEdT
VFJFQU1FUikKKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjZW5kaWYKKworI2VsaWYgT1MoV0lORE9X
UykKIAotI2lmIE9TKFdJTkRPV1MpCiAjaWYgVVNFKENHKQotCiAvLyBGSVhNRSA8cmRhcjovL3By
b2JsZW0vODIwODg2OD4gUmVtb3ZlIHN1cHBvcnQgZm9yIG9ic29sZXRlIENvbG9yU3luYyBBUEks
IENvcmVTZXJ2aWNlcyBoZWFkZXIgaW4gQ29yZUdyYXBoaWNzCiAvLyBXZSBjYW4gcmVtb3ZlIHRo
aXMgb25jZSB0aGUgbmV3IENvbG9yU3luYyBBUElzIGFyZSBhdmFpbGFibGUgaW4gYW4gaW50ZXJu
YWwgU2FmYXJpIFNESy4KICNpbmNsdWRlIDxDb2xvclN5bmMvQ29sb3JTeW5jLmg+CkBAIC0xMDEs
MTggKzExNCwyMCBAQAogI2RlZmluZSBPQlNPTEVURV9DT0xPUlNZTkNfQVBJCiAjZW5kaWYKICNl
bmRpZgorCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKICNpbmNsdWRlIDxDRk5ldHdvcmsvQ0ZO
ZXR3b3JrLmg+CiAvLyBPbiBXaW5kb3dzLCBkaXNwYXRjaC5oIG5lZWRzIHRvIGJlIGluY2x1ZGVk
IGJlZm9yZSBjZXJ0YWluIENGTmV0d29yayBoZWFkZXJzLgogI2luY2x1ZGUgPGRpc3BhdGNoL2Rp
c3BhdGNoLmg+CiAjZW5kaWYKKwogI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNlbHNlCisKKyNlbGlm
IGRlZmluZWQoX19BUFBMRV9fKQorCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW5jbHVk
ZSA8Q29yZVNlcnZpY2VzL0NvcmVTZXJ2aWNlcy5oPgogI2VuZGlmIC8vICFQTEFURk9STShJT1Nf
RkFNSUxZKQotI2VuZGlmIC8vIE9TKFdJTkRPV1MpCi0KICNlbmRpZgogCiAjaWZkZWYgX19PQkpD
X18KQEAgLTEzNiw0ICsxNTEsMyBAQAogI3VuZGVmIHRyeQogI3VuZGVmIGNhdGNoCiAjZW5kaWYK
LQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQKaW5kZXggMjU5ZTQ3MmI1N2QwYzY0ZmY3NDM3OWYyYzkyOWM4NzJj
ZmVmZTA4MS4uNWExN2RmOTM3Y2U0YmE3MGI1N2VjODY5Y2I2NjU5ZDg4MDVkY2E1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NN
YWtlTGlzdHMudHh0CkBAIC00MTIsMTEgKzQxMiw3IEBAIGVuZGlmICgpCiAKIG1hY3JvKEFERF9X
RUJLSVRfUFJFRklYX0hFQURFUiBfdGFyZ2V0KQogICAgIGlmIChXZWJLaXRfVVNFX1BSRUZJWF9I
RUFERVIpCi0gICAgICAgIGdldF90YXJnZXRfcHJvcGVydHkoT0xEX0NPTVBJTEVfRkxBR1MgJHtf
dGFyZ2V0fSBDT01QSUxFX0ZMQUdTKQotICAgICAgICBpZiAoJHtPTERfQ09NUElMRV9GTEFHU30g
U1RSRVFVQUwgIk9MRF9DT01QSUxFX0ZMQUdTLU5PVEZPVU5EIikKLSAgICAgICAgICAgIHNldChP
TERfQ09NUElMRV9GTEFHUyAiIikKLSAgICAgICAgZW5kaWYgKCkKLSAgICAgICAgc2V0X3Rhcmdl
dF9wcm9wZXJ0aWVzKCR7X3RhcmdldH0gUFJPUEVSVElFUyBDT01QSUxFX0ZMQUdTICIke09MRF9D
T01QSUxFX0ZMQUdTfSAtaW5jbHVkZSAke1dFQktJVF9ESVJ9L1dlYktpdDJQcmVmaXguaCIpCisg
ICAgICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCR7X3RhcmdldH0gV2ViS2l0MlBy
ZWZpeC5oKQogICAgIGVuZGlmICgpCiBlbmRtYWNybygpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaAppbmRleCA0NGQ2ZTc3OWEzNmE3ZjI0ZGE2ODYy
YmQ5NGI0ZWIyYzQ3OWMzMjkwLi45Y2EwYWIzZDBkYWQ4MjczZWI5OGEzZmY4NTY5ZGMwNzY0ZDM1
ZGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2ZUV2
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5o
CkBAIC00NCw2ICs0NCw3IEBAIHN0cnVjdCBOU0V2ZW50OwogI2VuZGlmCiB0eXBlZGVmIE5TRXZl
bnQgKldLTmF0aXZlRXZlbnRQdHI7CiAjZWxpZiBkZWZpbmVkKEJVSUxESU5HX0dUS19fKQordHlw
ZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7CiB0eXBlZGVmIGNvbnN0IEdka0V2ZW50KiBX
S05hdGl2ZUV2ZW50UHRyOwogI2VsaWYgZGVmaW5lZChXSU4zMikKIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IHRhZ01TRyogV0tOYXRpdmVFdmVudFB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0MlByZWZpeC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdDJQcmVmaXguY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMmI0YTkwMWM3Y2I0MmFhZjMxY2Y2MmRiZTc2Nzdj
ZDRkZjZkYzU1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0MlByZWZpeC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIldlYktpdDJQcmVmaXguaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0MlByZWZpeC5oIGIvU291cmNlL1dlYktpdC9XZWJLaXQy
UHJlZml4LmgKaW5kZXggNDA2YWE4MTE4ZmE2NmRhZGZjMzViOGViZTRiZjI0MDkzYWNmNjFhZi4u
NmIyOWI5OTgyZTMyMzVjODE2MjdiNGQ3OWYxMDY0ZTQxMzhiNzIwZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJLaXQyUHJlZml4LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQyUHJl
Zml4LmgKQEAgLTYzLDYgKzYzLDM0IEBACiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAor
I2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorCisjaWYgVVNFKENBSVJPKQorI2lu
Y2x1ZGUgPGNhaXJvL2NhaXJvLmg+CisjZW5kaWYKKworI2lmIFVTRShIQVJGQlVaWikKKyNpbmNs
dWRlIDxoYi5oPgorI2VuZGlmCisKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlIDxnbGliLW9iamVj
dC5oPgorI2VuZGlmCisKKyNpZiBVU0UoU09VUCkKKyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4K
KyNlbmRpZgorCisjaWYgVVNFKEdTVFJFQU1FUikKKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CisjZW5k
aWYKKworI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlIDxndGsvZ3RrLmg+CisjZW5kaWYKKwor
I2VuZGlmIC8vIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorCiAvKiBXaGVuIEMrKyBl
eGNlcHRpb25zIGFyZSBkaXNhYmxlZCwgdGhlIEMrKyBsaWJyYXJ5IGRlZmluZXMgfHRyeXwgYW5k
IHxjYXRjaHwKICogdG8gYWxsb3cgQysrIGNvZGUgdGhhdCBleHBlY3RzIGV4Y2VwdGlvbnMgdG8g
YnVpbGQuIFRoZXNlIGRlZmluaXRpb25zCiAqIGludGVyZmVyZSB3aXRoIE9iamVjdGl2ZS1DKysg
dXNlcyBvZiBPYmplY3RpdmUtQyBleGNlcHRpb24gaGFuZGxlcnMsIHdoaWNoCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdExlZ2Fj
eS9DTWFrZUxpc3RzLnR4dAppbmRleCA2NTg5Njc2OTUyYzNkNTBmMmZiNzA1ZDI0MzgzYjZjMmU4
ZjFmMjYwLi5kODNiNGNlNDUzMWM2MjI2MzUzY2MzYjRkMTg4M2ZjZGNmMzBmMjk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvQ01ha2VMaXN0cy50eHQKQEAgLTQyLDcgKzQyLDYgQEAgV0VCS0lUX0ZSQU1FV09S
S19ERUNMQVJFKFdlYktpdExlZ2FjeSkKIFdFQktJVF9JTkNMVURFX0NPTkZJR19GSUxFU19JRl9F
WElTVFMoKQogCiBpZiAoTVNWQykKLSAgICBXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUigi
V2ViS2l0UHJlZml4LmgiICJ3aW4vV2ViS2l0UHJlZml4LmNwcCIgV2ViS2l0TGVnYWN5X1NPVVJD
RVMpCiAgICAgbGlzdChBUFBFTkQgV2ViS2l0TGVnYWN5X1NPVVJDRVMgd2luL1dlYktpdC5yZXNv
dXJjZXMvV2ViS2l0LnJjKQogICAgIGFkZF9kZWZpbml0aW9ucygvRFdFQktJVF9FWFBPUlRTIC9E
RlJBTUVXT1JLX05BTUU9V2ViS2l0TGVnYWN5KQogZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1Bs
YXRmb3JtTWFjLmNtYWtlCmluZGV4IDMwMGIwMGI0NTE0ZDM1NjkyMTEzZTdmMjIxNmFiZjEwMWY2
MmY0ZjMuLjJjZWQzYTRmZDI4M2QzZTlhNTkyNjMxOGI1YjViYzU1NmE2MmE3OWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtNjM2LDMgKzYzNiw1IEBAIFdFQktJVF9N
QUtFX0ZPUldBUkRJTkdfSEVBREVSUyhXZWJLaXRMZWdhY3kKIHNldChXZWJLaXRMZWdhY3lfT1VU
UFVUX05BTUUgV2ViS2l0TGVnYWN5KQogCiBzZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9GTEFHUyAk
e0NNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1N9ICItY29tcGF0aWJpbGl0eV92ZXJzaW9uIDEgLWN1
cnJlbnRfdmVyc2lvbiAke1dFQktJVF9NQUNfVkVSU0lPTn0gLWZyYW1ld29yayBTZWN1cml0eUlu
dGVyZmFjZSIpCisKK1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKFdlYktpdExlZ2FjeSBt
YWMvV2ViS2l0UHJlZml4LmgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1BsYXRm
b3JtV2luLmNtYWtlIGIvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRl
eCBiY2M2NmNjYmFmNzcxN2ZjZTkxMWFhYWI4NWNmMTY4ZTFhMzAyYzM3Li5hNjE1YzcxNzFjMGNk
ODU4Njg3MTJlNjMxOWNmZTk2MmU3Yzg4OTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1X
aW4uY21ha2UKQEAgLTQ4OSwzICs0ODksNSBAQCBsaXN0KEFQUEVORCBXZWJLaXRMZWdhY3lfUFJJ
VkFURV9ERUZJTklUSU9OUwogICAgIFNUQVRJQ0FMTFlfTElOS0VEX1dJVEhfUEFMCiAgICAgU1RB
VElDQUxMWV9MSU5LRURfV0lUSF9XZWJDb3JlCiApCisKK1dFQktJVF9BRERfUFJFQ09NUElMRURf
SEVBREVSKFdlYktpdExlZ2FjeSB3aW4vV2ViS2l0UHJlZml4LmgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRQcmVmaXguY3BwIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViS2l0UHJlZml4LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDA2
N2U5NmM4MjdlNWQxODA3NDAyZmMxMzA2NDUyNWQ2NzZkMmU4OC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJL
aXRQcmVmaXguY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBu
b3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotI2luY2x1ZGUgIldlYktpdFByZWZpeC5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UXVhcnR6Q29yZUFk
ZGl0aW9ucy9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1
YXJ0ekNvcmVBZGRpdGlvbnMvQ01ha2VMaXN0cy50eHQKaW5kZXggYmMwOTc5OGI4YjAyYWYyOWMz
ODNiNzg3ZTZmMTc2ZmEyMmVmZDczYi4uN2FlN2MxYzAwNzMxOTBiOWIwMGFjN2MxNTQ5MGFmNWY1
MjAwYzIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0UXVhcnR6
Q29yZUFkZGl0aW9ucy9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zL0NNYWtlTGlzdHMudHh0CkBAIC00MSw4ICs0MSw2
IEBAIGZpbGUoQ09QWSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vQVBJL1dLQ0FDRkltYWdl
SW50ZXJuYWwuaCBERVNUSU5BVElPTiAke0RFCiBmaWxlKENPUFkgJHtDTUFLRV9DVVJSRU5UX1NP
VVJDRV9ESVJ9L0FQSS9XS0NBQ0ZWaWV3LmggREVTVElOQVRJT04gJHtERVJJVkVEX1NPVVJDRVNf
RElSfS9XZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zKQogZmlsZShDT1BZICR7Q01BS0VfQ1VSUkVO
VF9TT1VSQ0VfRElSfS9BUEkvV0tDQUNGVmlld1ByaXZhdGUuaCBERVNUSU5BVElPTiAke0RFUklW
RURfU09VUkNFU19ESVJ9L1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMpCiAKLVdFQktJVF9BRERf
UFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zUHJlZml4LmgiICJX
ZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zUHJlZml4LmNwcCIgV2ViS2l0UXVhcnR6Q29yZUFkZGl0
aW9uc19TT1VSQ0VTKQotCiBpbmNsdWRlX2RpcmVjdG9yaWVzKAogICAgIC4KICAgICAiJHtERVJJ
VkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycyIKQEAgLTU5LDMgKzU3LDQgQEAgdGFy
Z2V0X2xpbmtfbGlicmFyaWVzKFdlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMKICAgICBDb3JlR3Jh
cGhpY3Mke0RFQlVHX1NVRkZJWH0KICAgICBRdWFydHpDb3JlJHtERUJVR19TVUZGSVh9CiApCitX
RUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUihXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zIFdl
YktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNQcmVmaXguaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvV2ViS2l0UXVhcnR6Q29yZUFk
ZGl0aW9uc1ByZWZpeC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRRdWFydHpD
b3JlQWRkaXRpb25zL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnNQcmVmaXguY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjllZDkzYzFlNDAwYTU4Nzc2YzZmN2U5NjJjNDliOTU3
OWM5NDE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFF1YXJ0ekNvcmVBZGRpdGlvbnMvV2ViS2l0UXVh
cnR6Q29yZUFkZGl0aW9uc1ByZWZpeC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBA
Ci0vKgotKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotKgotKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0qIGFyZSBtZXQ6Ci0qIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0q
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotKgotKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0qIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0q
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0qIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0qIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0qIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSovCi0KLSNpbmNsdWRl
ICJXZWJLaXRRdWFydHpDb3JlQWRkaXRpb25zUHJlZml4LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
Y21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMu
Y21ha2UKaW5kZXggZmQ0YzgyMjQzMDgwODA1YWI2YzUzMmM1YTYyMzNlMjFlODAxOGJhOS4uOTc1
YmM1Y2M0Zjg1MzVhODlmNzRiNzEzZGUwMWUxNDVlNWZmNTM5NCAxMDA2NDQKLS0tIGEvU291cmNl
L2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0
dXJlcy5jbWFrZQpAQCAtMTk0LDYgKzE5NCw3IEBAIG1hY3JvKFdFQktJVF9PUFRJT05fQkVHSU4p
CiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUEkg
IlRvZ2dsZSBQaWN0dXJlLWluLVBpY3R1cmUgQVBJIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAg
IFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9QT0lOVEVSX0xPQ0sgIlRvZ2dsZSBwb2ludGVy
IGxvY2sgc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5B
QkxFX1BVQkxJQ19TVUZGSVhfTElTVCAiVG9nZ2xlIHB1YmxpYyBzdWZmaXggbGlzdCBzdXBwb3J0
IiBQUklWQVRFIE9OKQorICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9QUkVDT01QSUxF
RF9IRUFERVJTICJUb2dnbGUgcHJlY29tcGlsZWQgaGVhZGVycyBkdXJpbmcgYnVpbGQiIFBSSVZB
VEUgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1JFTEVBU0VfTE9HICJUb2dn
bGUgcmVsZWFzZSBsb2cgc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9E
RUZJTkUoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IgIlRvZ2dsZSByZW1vdGUgaW5zcGVjdG9yIHN1
cHBvcnQiIFBSSVZBVEUgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1JFU09V
UkNFX1VTQUdFICJUb2dnbGUgcmVzb3VyY2UgdXNhZ2Ugc3VwcG9ydCIgUFJJVkFURSBPRkYpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlIGIvU291cmNlL2NtYWtl
L1dlYktpdE1hY3Jvcy5jbWFrZQppbmRleCAyMDBjZTQ4MTg4OWI3ZTIxZWM4NmNjNjVlYWEzYWUw
ZTljODdlNzNkLi5hNmZiNGEwZTU2ZjYzOTU3ZGE3YmEwY2E3ODg0MDQ2NjM0OTFiMTc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFr
ZS9XZWJLaXRNYWNyb3MuY21ha2UKQEAgLTkwLDM0ICs5MCwyNSBAQCBtYWNybyhXRUJLSVRfQURE
X1NPVVJDRV9ERVBFTkRFTkNJRVMgX3NvdXJjZSBfZGVwcykKICAgICB1bnNldChfdG1wKQogZW5k
bWFjcm8oKQogCi1tYWNybyhXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUiBfaGVhZGVyIF9j
cHAgX3NvdXJjZSkKLSAgICBpZiAoTVNWQykKLSAgICAgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVu
dChQcmVjb21waWxlZEJhc2VuYW1lICR7X2NwcH0gTkFNRV9XRSkKLSAgICAgICAgZmlsZShNQUtF
X0RJUkVDVE9SWSAiJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9LyR7X3NvdXJjZX0iKQotICAg
ICAgICBzZXQoUHJlY29tcGlsZWRCaW5hcnkgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8k
e19zb3VyY2V9LyR7UHJlY29tcGlsZWRCYXNlbmFtZX0ucGNoIikKLSAgICAgICAgc2V0KF9zb3Vy
Y2VzICR7JHtfc291cmNlfX0pCiAKLSAgICAgICAgIyBjbGFuZy1jbCByZXF1aXJlcyAvRkkgd2l0
aCAvWWMKLSAgICAgICAgaWYgKENPTVBJTEVSX0lTX0NMQU5HX0NMKQotICAgICAgICAgICAgc2V0
X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7X2NwcH0KLSAgICAgICAgICAgICAgICBQUk9QRVJU
SUVTIENPTVBJTEVfRkxBR1MgIi9ZY1wiJHtfaGVhZGVyfVwiIC9GcFwiJHtQcmVjb21waWxlZEJp
bmFyeX1cIiAvRklcIiR7X2hlYWRlcn1cIiIKLSAgICAgICAgICAgICAgICBPQkpFQ1RfT1VUUFVU
UyAiJHtQcmVjb21waWxlZEJpbmFyeX0iKQotICAgICAgICBlbHNlICgpCi0gICAgICAgICAgICBz
ZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtfY3BwfQotICAgICAgICAgICAgICAgIFBST1BF
UlRJRVMgQ09NUElMRV9GTEFHUyAiL1ljXCIke19oZWFkZXJ9XCIgL0ZwXCIke1ByZWNvbXBpbGVk
QmluYXJ5fVwiIgotICAgICAgICAgICAgICAgIE9CSkVDVF9PVVRQVVRTICIke1ByZWNvbXBpbGVk
QmluYXJ5fSIpCitpZiAoRU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUlMgQU5EIENNQUtFX1ZFUlNJ
T04gVkVSU0lPTl9MRVNTIDMuMTcpCisgICAgbWVzc2FnZShXQVJOSU5HICJQcmVjb21waWxlZCBo
ZWFkZXJzIGRpc2FibGVkLCBDTWFrZSAzLjE3IG9yIG5ld2VyIHJlcXVpcmVkIikKKyAgICBzZXQo
RU5BQkxFX1BSRUNPTVBJTEVEX0hFQURFUlMgT0ZGKQorZW5kaWYgKCkKKworaWYgKEVOQUJMRV9Q
UkVDT01QSUxFRF9IRUFERVJTKQorICAgIGZ1bmN0aW9uKFdFQktJVF9BRERfUFJFQ09NUElMRURf
SEVBREVSIF90YXJnZXQgX2hlYWRlcikKKyAgICAgICAgZ2V0X3RhcmdldF9wcm9wZXJ0eSh0eXBl
ICR7X3RhcmdldH0gVFlQRSkKKyAgICAgICAgaWYgKE5PVCB0eXBlIFNUUkVRVUFMIE9CSkVDVF9M
SUJSQVJZKQorICAgICAgICAgICAgbWVzc2FnZShTVEFUVVMgIiAgIC0tLT4gJHtfdGFyZ2V0fSAt
PiAke19oZWFkZXJ9IikKKyAgICAgICAgICAgIHRhcmdldF9wcmVjb21waWxlX2hlYWRlcnMoJHtf
dGFyZ2V0fSBQUklWQVRFICR7X2hlYWRlcn0pCiAgICAgICAgIGVuZGlmICgpCi0gICAgICAgIHNl
dF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygke19zb3VyY2VzfQotICAgICAgICAgICAgUFJPUEVS
VElFUyBDT01QSUxFX0ZMQUdTICIvWXVcIiR7X2hlYWRlcn1cIiAvRklcIiR7X2hlYWRlcn1cIiAv
RnBcIiR7UHJlY29tcGlsZWRCaW5hcnl9XCIiKQotCi0gICAgICAgIGZvcmVhY2ggKF9zcmMgJHtf
c291cmNlc30pCi0gICAgICAgICAgICBXRUJLSVRfQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtf
c3JjfSAke1ByZWNvbXBpbGVkQmluYXJ5fSkKLSAgICAgICAgZW5kZm9yZWFjaCAoKQotCi0gICAg
ICAgIGxpc3QoQVBQRU5EICR7X3NvdXJjZX0gJHtfY3BwfSkKLSAgICBlbmRpZiAoKQotICAgICNG
SVhNRTogQWRkIHN1cHBvcnQgZm9yIFhjb2RlLgotZW5kbWFjcm8oKQorICAgIGVuZGZ1bmN0aW9u
KCkKK2Vsc2UgKCkKKyAgICBmdW5jdGlvbihXRUJLSVRfQUREX1BSRUNPTVBJTEVEX0hFQURFUiBf
dGFyZ2V0IF9oZWFkZXIpCisgICAgICAgICMgTm8tb3AKKyAgICBlbmRmdW5jdGlvbigpCitlbmRp
ZiAoKQogCiBtYWNybyhXRUJLSVRfRlJBTUVXT1JLX0RFQ0xBUkUgX3RhcmdldCkKICAgICAjIGFk
ZF9saWJyYXJ5KCkgd2l0aG91dCBhbnkgc291cmNlIGZpbGVzIHRyaWdnZXJzIENNYWtlIHdhcm5p
bmcKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0IGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKaW5kZXggZjZjZjM3MmJkZGRkOGRiZTFj
YjNhN2Y0MjE1NjA4NDQ0ZGUzMWY2NS4uMTBkOWEwMjc2MjI1MDI4ZjRkNzVlMWYzNGYyMGU3N2Nh
NzdlYWY0OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKQEAgLTY3LDMgKzY3LDYg
QEAgbGlzdChBUFBFTkQgRHVtcFJlbmRlclRyZWVfU09VUkNFUwogV0VCS0lUX0VYRUNVVEFCTEVf
REVDTEFSRShEdW1wUmVuZGVyVHJlZSkKIFdFQktJVF9JTkNMVURFX0NPTkZJR19GSUxFU19JRl9F
WElTVFMoKQogV0VCS0lUX0VYRUNVVEFCTEUoRHVtcFJlbmRlclRyZWUpCitpZiAoTk9UIFdJTjMy
KQorICAgIFdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKER1bXBSZW5kZXJUcmVlIER1bXBS
ZW5kZXJUcmVlUHJlZml4LmgpCitlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvUGxhdGZvcm1XaW4uY21ha2UgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdp
bi5jbWFrZQppbmRleCBmZDA2NTJiNDNmNWMwYjllMjE5YzNmZDc1YTkzM2YxMDA1OTA2ODBhLi4y
ZDUwOWMyM2MyZjE0Y2QxZWE3OTA5ZjBiMDdmZDk3ZDk5NTYyN2Q1IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtNzIsNyArNzIsNiBAQCBlbHNlICgpCiAgICAgZW5k
aWYgKCkKIGVuZGlmICgpCiAKLVdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJEdW1wUmVu
ZGVyVHJlZVByZWZpeC5oIiAid2luL0R1bXBSZW5kZXJUcmVlUHJlZml4LmNwcCIgRHVtcFJlbmRl
clRyZWVfU09VUkNFUykKIHNldChDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdTICIke0NNQUtFX1NI
QVJFRF9MSU5LRVJfRkxBR1N9ICR7TVNWQ19SVU5USU1FX0xJTktFUl9GTEFHU30iKQogCiBXRUJL
SVRfV1JBUF9FWEVDVVRBQkxFKER1bXBSZW5kZXJUcmVlCkBAIC04MCwzICs3OSw2IEBAIFdFQktJ
VF9XUkFQX0VYRUNVVEFCTEUoRHVtcFJlbmRlclRyZWUKICAgICBMSUJSQVJJRVMgc2hsd2FwaQog
KQogdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMoRHVtcFJlbmRlclRyZWUgUFJJVkFURSAke3dy
YXBwZXJfREVGSU5JVElPTlN9KQorCisjIEFkZCBwcmVjb21waWxlZCBoZWFkZXJzIHRvIHdyYXBw
ZXIgbGlicmFyeQorV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFERVIoRHVtcFJlbmRlclRyZWVM
aWIgRHVtcFJlbmRlclRyZWVQcmVmaXguaCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZVByZWZpeC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWVQcmVmaXguY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1Yzc1ZDRhMzYwMmRlN2JjMGRhMTYxOGMxZDA4ZGNjNmYyOTUzN2Y4Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9EdW1wUmVuZGVyVHJlZVByZWZpeC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIElu
Yy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0jaW5jbHVkZSAi
RHVtcFJlbmRlclRyZWVQcmVmaXguaCIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0
CmluZGV4IDY5YzI5NGM4MjhjMDMwYjU2YzBhM2YyOGU3MjdjNDQ5N2FlOThkOGQuLmQ1YjZkMmU5
YzUxOWU4MjY4YzVkMDU4Y2NjOGVlMzRmM2E5ZDg5MmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9D
TWFrZUxpc3RzLnR4dApAQCAtMTQwLDYgKzE0MCw5IEBAIHRhcmdldF9saW5rX2xpYnJhcmllcyhU
ZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUgUFJJVkFURSAke1dlYktpdFRlc3RSdW5uZXJJbmplY3Rl
CiBhZGRfZGVwZW5kZW5jaWVzKFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZSBXZWJLaXRUZXN0UnVu
bmVySW5qZWN0ZWRCdW5kbGVCaW5kaW5ncykKIAogV0VCS0lUX0VYRUNVVEFCTEUoV2ViS2l0VGVz
dFJ1bm5lcikKK2lmIChOT1QgV0lOMzIpCisgICAgV0VCS0lUX0FERF9QUkVDT01QSUxFRF9IRUFE
RVIoV2ViS2l0VGVzdFJ1bm5lciBXZWJLaXRUZXN0UnVubmVyUHJlZml4LmgpCitlbmRpZiAoKQog
CiBpZiAoQ09NUElMRVJfSVNfR0NDX09SX0NMQU5HKQogICAgIFdFQktJVF9BRERfVEFSR0VUX0NY
WF9GTEFHUyhUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUgLVduby11bnVzZWQtcGFyYW1ldGVyKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUZUVy5jbWFrZSBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1GVFcuY21ha2UKaW5kZXggNmYxYzk2NzNiM2Jm
ZjMzY2I4NDE3ZmFjYTVjNzNmNTZjZmFkOGQ2Ny4uMTRlYzU3MzBkMmZjZTIzNDNhMWE3MWNhOTk4
NzI2ZDM5MWM0YjFlOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9y
bUZUVy5jbWFrZQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtRlRXLmNtYWtl
CkBAIC0yOSw4ICsyOSw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfTElCUkFSSUVT
CiAgICAgT2xlYWNjCiApCiAKLVdFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKCJXZWJLaXRU
ZXN0UnVubmVyUHJlZml4LmgiICJ3aW4vV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5jcHAiIFdlYktp
dFRlc3RSdW5uZXJfU09VUkNFUykKLQogc2V0KENNQUtFX1NIQVJFRF9MSU5LRVJfRkxBR1MgIiR7
Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHU30gJHtNU1ZDX1JVTlRJTUVfTElOS0VSX0ZMQUdTfSIp
CiAKIFdFQktJVF9XUkFQX0VYRUNVVEFCTEUoV2ViS2l0VGVzdFJ1bm5lcgpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdpbi5jbWFrZSBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggNDUzZjJjN2EzODQyNjFkNDE0NGY1ZTU5
OTNkZDVhMTQ5Y2Q3NGZkMy4uMTE5OTlmNTRhY2U5MDkyM2MxOTI2ODQ2NTlhZDQ0YzdhM2ZmMDli
YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdpbi5jbWFrZQor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2luLmNtYWtlCkBAIC0zOCw4ICsz
OCw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9MSUJSQVJJ
RVMKICAgICAkPFRBUkdFVF9PQkpFQ1RTOldlYkNvcmVUZXN0U3VwcG9ydD4KICkKIAotV0VCS0lU
X0FERF9QUkVDT01QSUxFRF9IRUFERVIoIldlYktpdFRlc3RSdW5uZXJQcmVmaXguaCIgIndpbi9X
ZWJLaXRUZXN0UnVubmVyUHJlZml4LmNwcCIgV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTKQotCiBz
ZXQoQ01BS0VfU0hBUkVEX0xJTktFUl9GTEFHUyAiJHtDTUFLRV9TSEFSRURfTElOS0VSX0ZMQUdT
fSAke01TVkNfUlVOVElNRV9MSU5LRVJfRkxBR1N9IikKIAogV0VCS0lUX1dSQVBfRVhFQ1VUQUJM
RShXZWJLaXRUZXN0UnVubmVyCkBAIC00NywzICs0NSw2IEBAIFdFQktJVF9XUkFQX0VYRUNVVEFC
TEUoV2ViS2l0VGVzdFJ1bm5lcgogICAgIExJQlJBUklFUyBzaGx3YXBpCiApCiB0YXJnZXRfY29t
cGlsZV9kZWZpbml0aW9ucyhXZWJLaXRUZXN0UnVubmVyIFBSSVZBVEUgJHt3cmFwcGVyX0RFRklO
SVRJT05TfSkKKworIyBBZGQgcHJlY29tcGlsZWQgaGVhZGVycyB0byB3cmFwcGVyIGxpYnJhcnkK
K1dFQktJVF9BRERfUFJFQ09NUElMRURfSEVBREVSKFdlYktpdFRlc3RSdW5uZXJMaWIgV2ViS2l0
VGVzdFJ1bm5lclByZWZpeC5oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93
aW4vV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dp
bi9XZWJLaXRUZXN0UnVubmVyUHJlZml4LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzRjNzRjZTk1Y2EwOTRiNThmY2UwN2U0OWExM2Y2NDZiYTNjOGVhYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L3dpbi9XZWJLaXRUZXN0UnVubmVyUHJlZml4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoK
LSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBw
bGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
Ci0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNpbmNs
dWRlICJXZWJLaXRUZXN0UnVubmVyUHJlZml4LmgiCg==
</data>
<flag name="review"
          id="473294"
          type_id="1"
          status="?"
          setter="aperez"
    />
    <flag name="commit-queue"
          id="473300"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>