<?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>217991</bug_id>
          
          <creation_ts>2020-10-20 15:03:41 -0700</creation_ts>
          <short_desc>[GLIB] MediaSession is not enabled</short_desc>
          <delta_ts>2021-10-25 13:43:59 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=232264</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Diego Pino">dpino</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>alicem</cc>
    
    <cc>annulen</cc>
    
    <cc>aperez</cc>
    
    <cc>benjamin</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jbedard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>pgriffis</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>sonny</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1699940</commentid>
    <comment_count>0</comment_count>
    <who name="Diego Pino">dpino</who>
    <bug_when>2020-10-20 15:03:41 -0700</bug_when>
    <thetext>The following tests are failing:
  imported/w3c/web-platform-tests/mediasession/idlharness.window.html [ Failure ]
  imported/w3c/web-platform-tests/mediasession/mediametadata.html [ Failure ]
  imported/w3c/web-platform-tests/mediasession/playbackstate.html [ Failure ]
  imported/w3c/web-platform-tests/mediasession/positionstate.html [ Failure ]
  imported/w3c/web-platform-tests/mediasession/setactionhandler.html [ Failure ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699941</commentid>
    <comment_count>1</comment_count>
      <attachid>411921</attachid>
    <who name="Diego Pino">dpino</who>
    <bug_when>2020-10-20 15:04:33 -0700</bug_when>
    <thetext>Created attachment 411921
Diff for each reported test failing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699945</commentid>
    <comment_count>2</comment_count>
      <attachid>411922</attachid>
    <who name="Diego Pino">dpino</who>
    <bug_when>2020-10-20 15:06:45 -0700</bug_when>
    <thetext>Created attachment 411922
Diff for each reported test failing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700076</commentid>
    <comment_count>3</comment_count>
    <who name="Diego Pino">dpino</who>
    <bug_when>2020-10-20 22:57:10 -0700</bug_when>
    <thetext>Two more MediaSession tests are failing:

  media/media-session/mock-currentPosition.html [ Failure ]
  media/media-session/mock-actionHandlers.html [ Timeout ]

At this moment MediaSession is an experimental feature not enabled for GTK or WPE, so I will skip MediaSession tests for those platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702122</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-27 15:04:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/70740119&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760740</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-05-17 07:28:17 -0700</bug_when>
    <thetext>Should this be implemented as a MPRIS2 dbus object? Seems like this is what Chromium on Linux does.

Spec: https://specifications.freedesktop.org/mpris-spec/latest/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780156</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-07-28 12:21:38 -0700</bug_when>
    <thetext>WIP branch: https://github.com/philn/webkit/commits/media-session

TODO: actual backend...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781265</commentid>
    <comment_count>7</comment_count>
      <attachid>434760</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-08-02 09:30:29 -0700</bug_when>
    <thetext>Created attachment 434760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781266</commentid>
    <comment_count>8</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-08-02 09:31:15 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781273</commentid>
    <comment_count>9</comment_count>
      <attachid>434761</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-08-02 09:39:47 -0700</bug_when>
    <thetext>Created attachment 434761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781291</commentid>
    <comment_count>10</comment_count>
      <attachid>434761</attachid>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2021-08-02 10:10:03 -0700</bug_when>
    <thetext>Comment on attachment 434761
Patch

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

&gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:283
&gt; +    auto instanceId = makeString(&quot;org.mpris.MediaPlayer2.webkit.instance&quot;, getpid());

If this is changed to `org.mpris.MediaPlayer2.$APP_ID.webkit.instance` (where APP_ID is g_application_get_application_id()). Then this will work in flatpak without granting any extra permissions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781292</commentid>
    <comment_count>11</comment_count>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2021-08-02 10:10:09 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=434761&amp;action=review

&gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:283
&gt; +    auto instanceId = makeString(&quot;org.mpris.MediaPlayer2.webkit.instance&quot;, getpid());

If this is changed to `org.mpris.MediaPlayer2.$APP_ID.webkit.instance` (where APP_ID is g_application_get_application_id()). Then this will work in flatpak without granting any extra permissions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781303</commentid>
    <comment_count>12</comment_count>
      <attachid>434761</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-08-02 10:30:37 -0700</bug_when>
    <thetext>Comment on attachment 434761
Patch

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

&gt;&gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:283
&gt;&gt; +    auto instanceId = makeString(&quot;org.mpris.MediaPlayer2.webkit.instance&quot;, getpid());
&gt; 
&gt; If this is changed to `org.mpris.MediaPlayer2.$APP_ID.webkit.instance` (where APP_ID is g_application_get_application_id()). Then this will work in flatpak without granting any extra permissions.

This runs in the WebProcess currently, so I&apos;m not sure g_application_get_application_id() would return anything useful? I can test anyway, thanks for the tip :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781324</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-08-02 11:16:35 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #12)
&gt; This runs in the WebProcess currently, so I&apos;m not sure
&gt; g_application_get_application_id() would return anything useful? I can test
&gt; anyway, thanks for the tip :)

It won&apos;t, because the web process does not run a GApplication instance. We&apos;ll need to pass the app ID from the UI process to the web process.

I asked Patrick to look because I saw --own-name. Extra permissions like --talk-name or --own-name will sooner or later cause applications to be displayed as &quot;unsafe,&quot; and most applications won&apos;t use them anyway. It would be better to get this right from the beginning and figure out how to do it without requiring extra permissions in the flatpak manifest. In this case, it seems like passing the app ID to the web process should suffice for flatpak.

The next question is: does the web process have permission to own that name when running under the bubblewrap sandbox? Probably it requires changes in BubblewrapLauncher.cpp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781333</commentid>
    <comment_count>14</comment_count>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2021-08-02 11:38:46 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #13)
 
&gt; The next question is: does the web process have permission to own that name
&gt; when running under the bubblewrap sandbox? Probably it requires changes in
&gt; BubblewrapLauncher.cpp?

It should not have permission and would require changes.

Ideally just following the same as flatpak where it allows app-id matched ownership.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781337</commentid>
    <comment_count>15</comment_count>
      <attachid>434761</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-08-02 11:42:21 -0700</bug_when>
    <thetext>Comment on attachment 434761
Patch

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

&gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:109
&gt; +#define DBUS_MPRIS_SERVICE_NAME &quot;org.mpris.MediaPlayer2.webkit&quot;

This one is unused.

&gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:111
&gt; +#define DBUS_MPRIS_INTERFACE &quot;org.mpris.MediaPlayer2&quot;

This one too.

&gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:248
&gt; +        // FIXME: Would be nice to get UIProcess name, somehow.
&gt; +        return g_variant_new_string(&quot;WebKit&quot;);

What we want here is g_get_application_name(), but this has the same problem as the app ID. I doubt this is the first time we&apos;ve wanted this stuff in the web process. I bet we could send both in the WebProcessCreationParameters.

&gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:301
&gt; +        WTFLogAlways(&quot;Failed at parsing XML Interface definition: %s&quot;, error ? error-&gt;message : &quot;Unknown Error&quot;);

Nit: I prefer to use g_warning() for unexpected errors in platform-specific code like this. A nice benefit is that in the unlikely event that it somehow breaks, it will fail API tests.

Bonus: can get rid of the ternary here, because you don&apos;t actually need to check if error is set. The API guarantees that error will be set if m_mprisInterface is NULL. &quot;Error must be set if function fails&quot; is convention for all GLib-style APIs, unless otherwise stated. Occasionally this will lead to crashes when the error is missing, but if so that would be a bug in the function you&apos;re calling.

In this case, there&apos;s actually an explicit guarantee in the docs for g_dbus_node_info_new_for_xml() -- it returns &quot;[a] GDBusNodeInfo structure or NULL if error is set&quot; -- but it&apos;s still guaranteed even if it&apos;s not written out.

&gt; Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp:1559
&gt; +     * Enable or disable support for media session on pages. This feature allows web-pages to

web pages

&gt; Source/WebKit/UIProcess/API/gtk/WebKitSettings.h:521
&gt; +WEBKIT_API gboolean
&gt; +webkit_settings_get_enable_media_session                       (WebKitSettings *settings);
&gt; +
&gt; +WEBKIT_API void
&gt; +webkit_settings_set_enable_media_session                       (WebKitSettings *settings,
&gt; +                                                                gboolean        enabled);

My concern here is that these APIs will be public, but they won&apos;t do anything in releases until it no longer depends on ${ENABLE_EXPERIMENTAL_FEATURES}. Reminds me of the broken webkit_settings_[g,s]et_media_stream() API, which has been exposed since WebKitGTK 2.4, but has never worked in releases because media stream is still disabled at build time. What I would do instead is enable the setting at runtime so that the public API isn&apos;t required for testing it. Then in the future when we&apos;re finally ready to enable media session in releases, that&apos;s when we would want to add these APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1784398</commentid>
    <comment_count>16</comment_count>
      <attachid>435570</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-08-15 11:20:46 -0700</bug_when>
    <thetext>Created attachment 435570
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785431</commentid>
    <comment_count>17</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-08-19 05:24:59 -0700</bug_when>
    <thetext>Ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786560</commentid>
    <comment_count>18</comment_count>
      <attachid>435570</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-08-23 14:27:25 -0700</bug_when>
    <thetext>Comment on attachment 435570
Patch

Patch LGTM with a couple of comments below, and also it&apos;s probably
a good idea that somebody who knows their way better around D-Bus
takes a look as well.


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

&gt; Source/WTF/wtf/glib/GRefPtr.h:28
&gt; +#include &lt;gio/gio.h&gt;

Maybe we could typedef the GDBusNodeInfo type to avoid including all
of &lt;gio/gio.h&gt;, which will increase build times:

  extern &quot;C&quot; {
  typedef struct _GDBusNodeInfo GDBusNodeInfo;
  };

WDYT?

(Technically the same could be done for all the rest of types pulled
from &lt;glib/glib.h&gt;, but that would be a side quest for another day :)

&gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:33
&gt; +static const char s_mprisInterface[] =

I would add a comment next before this with a link to the spec

  https://specifications.freedesktop.org/mpris-spec/latest/

:)

&gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:143
&gt; +    }());

It seems a bit of overkill to create an std::unordered_map for only seven elements,
it&apos;s a waste of memory. This asks for WTF::SortedArrayMap, which uses linear search
below a certain size threshold, or binary search otherwise.

(And yes, we should probably use WTF::SortedArrayMap in more places to save some
memory!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786690</commentid>
    <comment_count>19</comment_count>
      <attachid>436268</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-08-24 02:12:51 -0700</bug_when>
    <thetext>Created attachment 436268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786725</commentid>
    <comment_count>20</comment_count>
      <attachid>436268</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-08-24 06:36:48 -0700</bug_when>
    <thetext>Comment on attachment 436268
Patch

Patch LGTM, it would be nice if someone else could rubber-stamp as well :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790741</commentid>
    <comment_count>21</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-09-06 10:58:52 -0700</bug_when>
    <thetext>Ping reviewers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790777</commentid>
    <comment_count>22</comment_count>
      <attachid>436268</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-06 14:00:27 -0700</bug_when>
    <thetext>Comment on attachment 436268
Patch

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

Perhaps overly cynical, but I like to assume that any code that involves D-Bus is plagued with problems that we won&apos;t notice until users complain about crashes. But I didn&apos;t spot any myself, and there&apos;s only one way to find out. ;)

&gt; Source/WebCore/ChangeLog:9
&gt; +
&gt; +

Extra blank line here

&gt; Source/WTF/wtf/glib/GRefPtr.h:34
&gt; +    GDBusNodeInfo* g_dbus_node_info_ref(GDBusNodeInfo*);
&gt; +    void g_dbus_node_info_unref(GDBusNodeInfo*);

These two should be declared in the .cpp file, since that&apos;s where they&apos;re used.

&gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:135
&gt; +static inline std::optional&lt;PlatformMediaSession::RemoteControlCommandType&gt; getCommand(const char* name)

Why inline?

&gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:173
&gt; +enum class Property : uint8_t {

This is such a generic name, I would be worried about potential ODR violations if any other file has anything named &quot;Property,&quot; especially now that distros are building with LTO enabled. Simplest solution is to name it something else, or you could enclose it in an anonymous namespace to restrict it to file scope:

namespace {

enum class Property : uint8_t {
    // ...
};

} // anonymous namespace

&gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:234
&gt; +    auto&amp; manager = *reinterpret_cast&lt;MediaSessionManagerGLib*&gt;(userData);
&gt; +    switch (property.value()) {
&gt; +    case Property::NoProperty:
&gt; +        ASSERT_NOT_REACHED();

I don&apos;t think this ASSERT is correct because it shouldn&apos;t be possible to trigger an assert by passing invalid input over D-Bus. ASSERT should mean programmer error in WebKit itself.

&gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:319
&gt; +        g_warning(&quot;Failed at root registration: %s&quot;, error-&gt;message);

Maybe &quot;Failed to register MPRIS D-Bus object: %s&quot; or something like that. &quot;root registration&quot; sounds meaningless to me.

&gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:327
&gt; +        g_warning(&quot;Failed at object registration: %s&quot;, error-&gt;message);

Could mention MPRIS here too? Same for the two warnings in MediaSessionManagerGLib::nameLost.

&gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:484
&gt; +    // FIXME: Fix this layering violation.
&gt; +    if (auto element = HTMLMediaElement::bestMediaElementForRemoteControls(MediaElementSession::PlaybackControlsPurpose::NowPlaying))
&gt; +        return &amp;element-&gt;mediaSession();

The right way to do this without making Carlos Garcia sad is to add a &quot;client&quot; (delegate) interface outside WebCore/platform and then implement it here. It&apos;s a bit annoying to do, though. I guess you know all that already. I haven&apos;t seen any serious action on platform layering violations in a long time, so you probably won&apos;t be tarred and feathered if you leave it like this. I&apos;d never have noticed had you not added the FIXME comment.

&gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:537
&gt; +    g_variant_builder_init(&amp;builder, G_VARIANT_TYPE(&quot;a{sv}&quot;));

Important: all of your calls to g_variant_builder_init() need to be paired with a g_variant_builder_clear(), otherwise they will leak. Same in MediaSessionManagerGLib::sessionStateChanged.

&gt; Source/WebCore/platform/glib/RemoteCommandListenerGLib.h:30
&gt; +    RemoteCommandListenerGLib(RemoteCommandListenerClient&amp;);

explicit

&gt; Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp:227
&gt; +            g_error(&quot;Unable to own DBus MPRIS name in the WebKit sandbox: %s&quot;, error-&gt;message);

Don&apos;t you think crashing is pretty harsh? The code up above is fatal because there are going to be a *lot* of problems (e.g. broken fonts) if xdg-desktop-portal isn&apos;t working at all. But MPRIS? I think we can survive without MPRIS. So I would print a warning and move on if this isn&apos;t working.

Also: DBus -&gt; D-Bus</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790778</commentid>
    <comment_count>23</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-06 14:03:45 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #22)
&gt; &gt; Source/WTF/wtf/glib/GRefPtr.h:34
&gt; &gt; +    GDBusNodeInfo* g_dbus_node_info_ref(GDBusNodeInfo*);
&gt; &gt; +    void g_dbus_node_info_unref(GDBusNodeInfo*);
&gt; 
&gt; These two should be declared in the .cpp file, since that&apos;s where they&apos;re
&gt; used.

Actually, in the .cpp file you would have #included the gio header already, so you won&apos;t need the forward declarations after all, and you can drop the style check exception.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790939</commentid>
    <comment_count>24</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-09-07 04:11:21 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #23)
&gt; (In reply to Michael Catanzaro from comment #22)
&gt; &gt; &gt; Source/WTF/wtf/glib/GRefPtr.h:34
&gt; &gt; &gt; +    GDBusNodeInfo* g_dbus_node_info_ref(GDBusNodeInfo*);
&gt; &gt; &gt; +    void g_dbus_node_info_unref(GDBusNodeInfo*);
&gt; &gt; 
&gt; &gt; These two should be declared in the .cpp file, since that&apos;s where they&apos;re
&gt; &gt; used.
&gt; 
&gt; Actually, in the .cpp file you would have #included the gio header already,
&gt; so you won&apos;t need the forward declarations after all, and you can drop the
&gt; style check exception.

Are you sure about that? What about the many others cpp units where we include GRefPtr.h? I&apos;d rather keep the forward declarations. It&apos;s simpler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790951</commentid>
    <comment_count>25</comment_count>
      <attachid>436268</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-09-07 04:28:38 -0700</bug_when>
    <thetext>Comment on attachment 436268
Patch

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

&gt;&gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:537
&gt;&gt; +    g_variant_builder_init(&amp;builder, G_VARIANT_TYPE(&quot;a{sv}&quot;));
&gt; 
&gt; Important: all of your calls to g_variant_builder_init() need to be paired with a g_variant_builder_clear(), otherwise they will leak. Same in MediaSessionManagerGLib::sessionStateChanged.

Only in the cases where g_variant_builder_end() is not called IIUC? See https://docs.gtk.org/glib/method.VariantBuilder.end.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790974</commentid>
    <comment_count>26</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-07 06:27:07 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #24)
&gt; Are you sure about that? What about the many others cpp units where we
&gt; include GRefPtr.h? I&apos;d rather keep the forward declarations. It&apos;s simpler.

I think I was very confused yesterday. Of course you are right. I was thinking the declarations were not actually used in the header, but they are.

(In reply to Philippe Normand from comment #25)
&gt; Only in the cases where g_variant_builder_end() is not called IIUC? See
&gt; https://docs.gtk.org/glib/method.VariantBuilder.end.html

You&apos;re right about this too!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792679</commentid>
    <comment_count>27</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-09-11 04:35:07 -0700</bug_when>
    <thetext>Committed r282307 (241579@main): &lt;https://commits.webkit.org/241579@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794783</commentid>
    <comment_count>28</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-09-18 11:15:04 -0700</bug_when>
    <thetext>*** Bug 219341 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794858</commentid>
    <comment_count>29</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-09-19 03:41:12 -0700</bug_when>
    <thetext>(In reply to Patrick Griffis from comment #11)
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=434761&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:283
&gt; &gt; +    auto instanceId = makeString(&quot;org.mpris.MediaPlayer2.webkit.instance&quot;, getpid());
&gt; 
&gt; If this is changed to `org.mpris.MediaPlayer2.$APP_ID.webkit.instance`
&gt; (where APP_ID is g_application_get_application_id()). Then this will work in
&gt; flatpak without granting any extra permissions.

Trying in Ephy Canary:

flatpak run --user org.gnome.Epiphany.Canary -p https://googlechrome.github.io/samples/media-session/video.html

** (WebKitWebProcess:2): WARNING **: 11:37:52.791: Unable to acquire MPRIS D-Bus session ownership for name org.mpris.MediaPlayer2.org.gnome.Epiphany.Canary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794859</commentid>
    <comment_count>30</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-09-19 03:44:59 -0700</bug_when>
    <thetext>Probably this is because our SDK doesn&apos;t provide bwrap, so the bwrap launcher is disabled. I&apos;ll try to fix that...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794876</commentid>
    <comment_count>31</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-09-19 07:54:48 -0700</bug_when>
    <thetext>The bubblewrap launcher is disabled under flatpak regardless. You get the flatpak-spawn subsandbox instead. Sounds like that D-Bus name might not be automatically exposed after all?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794881</commentid>
    <comment_count>32</comment_count>
    <who name="Patrick Griffis">pgriffis</who>
    <bug_when>2021-09-19 09:43:48 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #31)
&gt; The bubblewrap launcher is disabled under flatpak regardless. You get the
&gt; flatpak-spawn subsandbox instead. Sounds like that D-Bus name might not be
&gt; automatically exposed after all?

To subsandboxes, probably not. But the main sandbox has the permission which means we can extend `flatpak-spawn` to expose it in them.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>411921</attachid>
            <date>2020-10-20 15:04:33 -0700</date>
            <delta_ts>2020-10-20 15:06:45 -0700</delta_ts>
            <desc>Diff for each reported test failing</desc>
            <filename>mediasource-crashes.tar.gz</filename>
            <type>application/gzip</type>
            <size>127915</size>
            <attacher name="Diego Pino">dpino</attacher>
            
              <data encoding="base64">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
SkfIACAXAA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>411922</attachid>
            <date>2020-10-20 15:06:45 -0700</date>
            <delta_ts>2020-10-20 15:06:45 -0700</delta_ts>
            <desc>Diff for each reported test failing</desc>
            <filename>mediasession-failures.tar.gz</filename>
            <type>application/gzip</type>
            <size>2478</size>
            <attacher name="Diego Pino">dpino</attacher>
            
              <data encoding="base64">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
Sy211FJLLbXUUksttdRSy7byf7m5KoAAeAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434760</attachid>
            <date>2021-08-02 09:30:29 -0700</date>
            <delta_ts>2021-08-02 09:39:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217991-20210802093027.patch</filename>
            <type>text/plain</type>
            <size>62578</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUwMmRkMmY1ZTQwOWY4ZmM0ZjRiYzMw
NjE0MTEyYzQ5MDZiODBjMDYuLjk5YzM1Yjc3NmI2ZGFiMmQ4NjllN2U0ZDE0MTk4MWI4ODQxZTRk
MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDgtMDIgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHTElCXSBNZWRpYVNlc3Npb24gaXMgbm90
IGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzk5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3NDAxMTk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJpdmUtYnkgWDExIHVuZGVmcyBu
ZWVkZWQgYWZ0ZXIgR1RLIHVuaWZpZWQgc291cmNlcyBzaGlmdGVkLCBkdWUgdG8gbmV3IGZpbGVz
IGJlaW5nIGFkZGVkCisgICAgICAgIHRvIHRoZSBidWlsZC4gQWxzbyBhZGRlZCBHUmVmUHRyIHRl
bXBsYXRlIHNwZWNpYWxpemF0aW9uIGZvciBHREJ1c05vZGVJbmZvLgorCisgICAgICAgICogd3Rm
L1RocmVhZFNwZWNpZmljLmg6CisgICAgICAgICogd3RmL1RocmVhZGluZy5oOgorICAgICAgICAq
IHd0Zi9nbGliL0dSZWZQdHIuY3BwOgorICAgICAgICAoV1RGOjpyZWZHUHRyKToKKyAgICAgICAg
KFdURjo6ZGVyZWZHUHRyKToKKyAgICAgICAgKiB3dGYvZ2xpYi9HUmVmUHRyLmg6CisKIDIwMjEt
MDgtMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJv
ZHVjZSBhbiBleHBlcmltZW50YWwgZmVhdHVyZSB0byB0b2dnbGUgV2ViUlRDIHNvY2tldCBwcm94
eWluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDMyOWU3Njc0ODZlZTAzNDNjZDlkYjY1NmJkNGMwZjQxZWY4MDA4
ZWEuLmE1NGFiYWFjZjBiNWUwYjg0YTAxZjViZDZhY2FkZTU1MDY0NThlMTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw2NiBAQAorMjAyMS0wOC0wMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5k
QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dMSUJdIE1lZGlhU2Vzc2lvbiBpcyBub3QgZW5hYmxl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3OTkx
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDc0MDExOT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnRhdGlvbiBvZiBhIEdMaWIgTWVk
aWFTZXNzaW9uTWFuYWdlciwgYWJsZSB0byBwcm92aWRlIGEgTVBSSVMgREJ1cyBzZXJ2aWNlLCBz
byB0aGF0CisgICAgICAgIHRoaXJkLXBhcnR5IGhvc3QgdG9vbHMgY2FuIHF1ZXJ5IHRoZSBtZWRp
YSBwbGF5YmFjayBzdGF0dXMgYW5kIHBvdGVudGlhbGx5IGVtaXQgcmVtb3RlCisgICAgICAgIGNv
bnRyb2wgY29tbWFuZHMgYXMgd2VsbC4KKworICAgICAgICBDb3ZlcmVkIGJ5IG1lZGlhLXNlc3Np
b24gbGF5b3V0IHRlc3RzIG5vdyB1bnNraXBwZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYUltYWdlLmg6CisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAg
ICAgICogUGxhdGZvcm1XUEUuY21ha2U6CisgICAgICAgICogcGxhdGZvcm0vUmVtb3RlQ29tbWFu
ZExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6
cmVzZXRDcmVhdGlvbkZ1bmN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Tb3VyY2VzR0xpYi50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nbGliL01lZGlhU2Vzc2lvbk1hbmFnZXJH
TGliLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xp
Yjo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uTWFuYWdlckdMaWI6On5NZWRpYVNlc3Npb25NYW5hZ2VyR0xpYik6CisgICAgICAgIChXZWJD
b3JlOjpnZXRDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZU1ldGhvZENhbGwpOgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6aGFuZGxl
R2V0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6aGFuZGxlU2V0UHJvcGVydHkpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnNldHVwTXByaXMpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OmJ1c0FjcXVpcmVkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpuYW1lTG9zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6YmVnaW5JbnRlcnJ1cHRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnNjaGVkdWxlU2Vz
c2lvblN0YXR1c1VwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2Vy
R0xpYjo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbk1hbmFnZXJHTGliOjpzZXNzaW9uRGlkRW5kUmVtb3RlU2NydWJiaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjphZGRTZXNzaW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpyZW1vdmVTZXNzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpzZXRDdXJyZW50U2Vzc2lv
bik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6c2Vzc2lvbldp
bGxFbmRQbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xp
Yjo6c2Vzc2lvblN0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25N
YW5hZ2VyR0xpYjo6Y2xpZW50Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6c2Vzc2lvbkNhblByb2R1Y2VBdWRpb0NoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OmFkZFN1cHBv
cnRlZENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6
OnJlbW92ZVN1cHBvcnRlZENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
TWFuYWdlckdMaWI6Om5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpnZXRQbGF5YmFja1N0YXR1c0Fz
R1ZhcmlhbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6Omdl
dEFjdGl2ZVNlc3Npb25Qb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25N
YW5hZ2VyR0xpYjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFu
YWdlckdMaWI6OmVtaXRQcm9wZXJ0aWVzQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vZ2xpYi9NZWRpYVNlc3Npb25NYW5hZ2VyR0xpYi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpuYW1lQWNxdWlyZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OmdldE1ldGFkYXRhQXNHVmFyaWFudCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6cHJvdmlkZVBy
ZXNlbnRpbmdBcHBsaWNhdGlvblBJRElmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
bGliL1JlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliOjp1cGRhdGVTdXBwb3J0ZWRDb21tYW5kcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliOjpSZW1vdGVDb21tYW5k
TGlzdGVuZXJHTGliKToKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL1JlbW90ZUNvbW1hbmRMaXN0
ZW5lckdMaWIuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmll
bnRhdGlvbi5oOgorCiAyMDIxLTA4LTAyICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbY3NzLXNjcm9sbC1zbmFwXSBDb25zaWRlciBhbGwgc25hcCBh
cmVhcyBhdCBhIGdpdmVuIHNuYXAgb2Zmc2V0IHdoZW4gc25hcHBpbmcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzlk
Yjc1NjRmMzcyOTc2NDQ0MWNlZTE3ZDA5MGIxY2I0MzIwODM1OC4uZmFjMWExOTY0N2YyODQwYmFk
NWUzMGQ2NjdlNDE0MDYyMjY5YzBjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMS0w
OC0wMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0dMSUJdIE1lZGlhU2Vzc2lvbiBpcyBub3QgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3OTkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83MDc0MDExOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSBydW50aW1lIHNldHRpbmcgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyBNZWRpYVNl
c3Npb24gc3VwcG9ydC4gVGhpcyBpcyBlbmFibGVkIGJ5CisgICAgICAgIGRlZmF1bHQsIGJ1dCBv
bmx5IGlmIEVOQUJMRV9NRURJQV9TRVNTSU9OIHdhcyBlbmFibGVkIGF0IGJ1aWxkIHRpbWUuIEl0
IGlzIGN1cnJlbnRseSBmbGFnZ2VkCisgICAgICAgIGFzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJl
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcDoKKyAg
ICAgICAgKHdlYktpdFNldHRpbmdzU2V0UHJvcGVydHkpOgorICAgICAgICAod2ViS2l0U2V0dGlu
Z3NHZXRQcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdCk6Cisg
ICAgICAgICh3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9tZWRpYV9zZXNzaW9uKToKKyAgICAg
ICAgKHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhX3Nlc3Npb24pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQ6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS93cGUvV2ViS2l0U2V0dGluZ3MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0OgorCiAyMDIxLTA4LTAyICBNYXJ0aW4gUm9i
aW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLXNjcm9sbC1zbmFw
XSBDb25zaWRlciBhbGwgc25hcCBhcmVhcyBhdCBhIGdpdmVuIHNuYXAgb2Zmc2V0IHdoZW4gc25h
cHBpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZFNwZWNpZmljLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWRTcGVjaWZpYy5oCmluZGV4IGQ3YjBlNmYxZGQ1NWJlMmM1OWZlNjQ1
ODZiM2YzZTkwNDFmZWZmMzQuLjdiNDJkMGNhZjRjMWQ1YTg5YTc0MjIzMjZmYmYxNGFlNmZjNTJi
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZFNwZWNpZmljLmgKKysrIGIvU291
cmNlL1dURi93dGYvVGhyZWFkU3BlY2lmaWMuaApAQCAtNDYsNiArNDYsMTUgQEAKICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCisjaWYg
VVNFKEdMSUIpCisjaWYgZGVmaW5lZChUcnVlKQorI3VuZGVmIFRydWUKKyNlbmRpZgorI2lmIGRl
ZmluZWQoRmFsc2UpCisjdW5kZWYgRmFsc2UKKyNlbmRpZgorI2VuZGlmCisKIG5hbWVzcGFjZSBX
VEYgewogCiBlbnVtIGNsYXNzIENhbkJlR0NUaHJlYWQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvVGhyZWFkaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAppbmRleCBjZmFl
NDJhNDQxN2EwMTY3MjBiMDNjZTYzYzFkNzNmMmRkOTkzMmZlLi4zMWVhYjQ3YjQwNmMwMjYyMjA5
YWZkMjk0YzBkM2NiOWE2Zjk4MjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRp
bmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaApAQCAtNjEsNiArNjEsMTIgQEAK
ICNpbmNsdWRlIDxkaXNwYXRjaC9kaXNwYXRjaC5oPgogI2VuZGlmCiAKKyNpZiBVU0UoR0xJQikK
KyNpZiBkZWZpbmVkKE5vbmUpCisjdW5kZWYgTm9uZQorI2VuZGlmCisjZW5kaWYKKwogbmFtZXNw
YWNlIFdURiB7CiAKIGNsYXNzIEFic3RyYWN0TG9ja2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvZ2xpYi9HUmVmUHRyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1JlZlB0ci5jcHAK
aW5kZXggYTBlNTJkZjVmNzVmY2Y4MzA4ZGU2MGEzNDZlYjlmODk2YzAyOWFjYS4uMWI5YWRlM2Y5
MzZlZTU2NGQzODJjMDdlZjk2NjU3NmFiNjYxOWI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvZ2xpYi9HUmVmUHRyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dSZWZQdHIuY3Bw
CkBAIC0xOTUsNiArMTk1LDE5IEBAIHRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdEYXRlVGlt
ZSogcHRyKQogICAgICAgICBnX2RhdGVfdGltZV91bnJlZihwdHIpOwogfQogCit0ZW1wbGF0ZSA8
PiBHREJ1c05vZGVJbmZvKiByZWZHUHRyKEdEQnVzTm9kZUluZm8qIHB0cikKK3sKKyAgICBpZiAo
cHRyKQorICAgICAgICBnX2RidXNfbm9kZV9pbmZvX3JlZihwdHIpOworICAgIHJldHVybiBwdHI7
Cit9CisKK3RlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdEQnVzTm9kZUluZm8qIHB0cikKK3sK
KyAgICBpZiAocHRyKQorICAgICAgICBnX2RidXNfbm9kZV9pbmZvX3VucmVmKHB0cik7Cit9CisK
ICNpZiBIQVZFKEdVUkkpCiB0ZW1wbGF0ZSA8PiBHVXJpKiByZWZHUHRyKEdVcmkqIHB0cikKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1JlZlB0ci5oIGIvU291cmNlL1dURi93
dGYvZ2xpYi9HUmVmUHRyLmgKaW5kZXggZmQyZjYwNWFjNDE1YjljMjA4MmFiOTI3MjI0YWMzZDBk
NjI3ZWIwMS4uODI5NGI1NTc3NTVhOTNjNmZhMzA4ZDQ3YzdhM2Y1ZTgzMTdiMjMwYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvZ2xpYi9HUmVmUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYv
Z2xpYi9HUmVmUHRyLmgKQEAgLTI0LDkgKzI0LDEwIEBACiAKICNpZiBVU0UoR0xJQikKIAotI2lu
Y2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUg
PGdpby9naW8uaD4KICNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hUcmFpdHMu
aD4KIAogZXh0ZXJuICJDIiB2b2lkIGdfb2JqZWN0X3VucmVmKGdwb2ludGVyKTsKIGV4dGVybiAi
QyIgZ3BvaW50ZXIgZ19vYmplY3RfcmVmX3NpbmsoZ3BvaW50ZXIpOwpAQCAtMjQyLDYgKzI0Myw4
IEBAIHRlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSBHTWFwcGVkRmlsZSogcmVmR1B0cihH
TWFwcGVkRmlsZSopOwogdGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVyZWZH
UHRyKEdNYXBwZWRGaWxlKik7CiB0ZW1wbGF0ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUgR0RhdGVU
aW1lKiByZWZHUHRyKEdEYXRlVGltZSogcHRyKTsKIHRlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGRlcmVmR1B0cihHRGF0ZVRpbWUqIHB0cik7Cit0ZW1wbGF0ZSA8PiBXVEZfRVhQ
T1JUX1BSSVZBVEUgR0RCdXNOb2RlSW5mbyogcmVmR1B0cihHREJ1c05vZGVJbmZvKiBwdHIpOwor
dGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVyZWZHUHRyKEdEQnVzTm9kZUlu
Zm8qIHB0cik7CiAKICNpZiBIQVZFKEdVUkkpCiB0ZW1wbGF0ZSA8PiBXVEZfRVhQT1JUX1BSSVZB
VEUgR1VyaSogcmVmR1B0cihHVXJpKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYUltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYUltYWdlLmgKaW5kZXggYTI2YTA1MDdiMzMwYWZjNDJhYjRiM2NlMGE1
N2QwNTBlMzg1ZTg5NS4uY2I0MTI5MjFlMjM4ZmRmNjQyMjM5Mzg5ZjE1MzkwYWU5Nzk4ZTMxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFJbWFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhSW1hZ2Uu
aApAQCAtMjcsNiArMjcsOSBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAKKyNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBNZWRpYUltYWdlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1H
VEsuY21ha2UKaW5kZXggNDFjZDZhNmNhMTA3NTYzYjQwZTNhOGE4Njg5YjI0MjNlMWU2Y2M3MC4u
MTExM2E3NDRjNDRmMTc1MzNmNTM4MjFhMWVmNjRjY2MyYjA2NWQ4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1HVEsuY21ha2UKQEAgLTE5LDcgKzE5LDkgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRF
X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vZWRpdGluZy9hdGsiCiAg
ICAgIiR7V0VCQ09SRV9ESVJ9L3BhZ2UvZ3RrIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9hZHdhaXRhIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9hdWRpby9nbGliIgogICAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9nZW5lcmljIgorICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS9nbGliIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ndGsiCiAgICAgIiR7
V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2VnbCIKICAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vZ3JhcGhpY3MvZ2x4IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCBiYzEz
ZDU2NGVkYWFlY2UyNmM0ODhiNGQ3YTZmNjhlODU2OGRmNDY3Li42MzcwNjliZGRhN2I4ZWU4YzY2
NTdiNjlhMjFhYTExYjMwYjYzOGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bVdQRS5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMTks
NiArMTksOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1VOSUZJRURfU09VUkNFX0xJU1RfRklMRVMK
IGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7
V0VCQ09SRV9ESVJ9L2FjY2Vzc2liaWxpdHkvYXRrIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS9hZHdhaXRhIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9hdWRpby9nbGliIgor
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9nbGliIgogICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS9ncmFwaGljcy9lZ2wiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBo
aWNzL2Vwb3h5IgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcApp
bmRleCBjZTE0NTc2NTBlMzIzMDUzNGZjNmJkZjNiZjJkMTMxZjIzMjU1YmQ1Li5jYzc5Yzg1ZmI4
ZDUxMDliNWQyNjY0NDUyNmQ0YmYwOGNjOGNjOThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKQEAgLTMwLDYgKzMwLDEwIEBACiAj
aW5jbHVkZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVyQ29jb2EuaCIKICNlbmRpZgogCisjaWYgVVNF
KEdMSUIpCisjaW5jbHVkZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYi5oIgorI2VuZGlmCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6Q3Jl
YXRpb25GdW5jdGlvbiYgcmVtb3RlQ29tbWFuZExpc3RlbmVyQ3JlYXRpb25GdW5jdGlvbigpCkBA
IC00OCw4ICs1MiwxMSBAQCB2b2lkIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6cmVzZXRDcmVhdGlv
bkZ1bmN0aW9uKCkKICAgICByZW1vdGVDb21tYW5kTGlzdGVuZXJDcmVhdGlvbkZ1bmN0aW9uKCkg
PSBbXSAoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50JiBjbGllbnQpIHsKICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICAgICAgcmV0dXJuIFJlbW90ZUNvbW1hbmRMaXN0ZW5lckNvY29hOjpjcmVh
dGUoY2xpZW50KTsKKyNlbGlmIFVTRShHTElCKQorICAgICAgICByZXR1cm4gUmVtb3RlQ29tbWFu
ZExpc3RlbmVyR0xpYjo6Y3JlYXRlKGNsaWVudCk7CiAjZWxzZQotICAgICAgICByZXR1cm4gUmVt
b3RlQ29tbWFuZExpc3RlbmVyOjpjcmVhdGUoY2xpZW50KTsKKyAgICAgICAgVU5VU0VEX1BBUkFN
KGNsaWVudCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogI2VuZGlmCiAgICAgfTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NvdXJjZXNHTGliLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NvdXJjZXNHTGliLnR4dAppbmRleCBkZjI3M2U1OGFkZmE2MWM2
ZDI1MzMyYjMyMWY2ZjdkNzc3NWM2MTY3Li4yNTA5OTQ2NDA4NzU4MmNhMDE1NzQzNmRiMTYwZjlm
YmNkYzc5MTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Tb3VyY2VzR0xp
Yi50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU291cmNlc0dMaWIudHh0CkBAIC0y
MiwxMSArMjIsMTMgQEAKIC8vIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogcGxh
dGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dMaWIuY3BwCitwbGF0Zm9ybS9hdWRpby9nbGliL01l
ZGlhU2Vzc2lvbk1hbmFnZXJHTGliLmNwcAogCiBwbGF0Zm9ybS9nbGliL0ZpbGVNb25pdG9yR0xp
Yi5jcHAKIHBsYXRmb3JtL2dsaWIvS2V5ZWREZWNvZGVyR2xpYi5jcHAKIHBsYXRmb3JtL2dsaWIv
S2V5ZWRFbmNvZGVyR2xpYi5jcHAKIHBsYXRmb3JtL2dsaWIvTG93UG93ZXJNb2RlTm90aWZpZXJH
TGliLmNwcAorcGxhdGZvcm0vZ2xpYi9SZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliLmNwcAogcGxh
dGZvcm0vZ2xpYi9TaGFyZWRCdWZmZXJHbGliLmNwcAogcGxhdGZvcm0vZ2xpYi9Vc2VyQWdlbnRH
TGliLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAppbmRleCAxODExZDliNmNjMzU2MmFi
NGZjZWFhMzJhNjhjNDFkNjlkZTkyNDY3Li5mZTQ3NTcyNDk5YzAzNWVlYmNiMTNiNTNiYmFjODJl
YmU2ZjU1ZWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTc0LDEyICs3NCwxMiBA
QCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIqIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cjo6c2hhcmVkTWFuYWdlcklmRXhpc3RzKAogICAgIHJldHVybiBzaGFyZWRQbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIoKS5nZXQoKTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkKKyNpZiAh
UExBVEZPUk0oQ09DT0EpICYmICFVU0UoR0xJQikKIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXI+IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y3JlYXRlKCkK
IHsKICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cj4obmV3IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcik7CiB9Ci0jZW5kaWYgLy8gIVBMQVRG
T1JNKENPQ09BKQorI2VuZGlmIC8vICFQTEFURk9STShDT0NPQSkgJiYgIVVTRShHTElCKQogCiB2
b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlTm93UGxheWluZ0luZm9JZk5l
Y2Vzc2FyeSgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9n
bGliL01lZGlhU2Vzc2lvbk1hbmFnZXJHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dsaWIvTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NDRi
NTAxODZhNjY4ZDQ0NTBlZDJmNmZiZmU3ODFiN2NmNDRkZDAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL01lZGlhU2Vzc2lvbk1hbmFnZXJHTGli
LmNwcApAQCAtMCwwICsxLDU4OSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlh
IFMuTAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliLmgiCisKKyNpZiBVU0UoR0xJQikK
KworI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgorI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKKyNpbmNs
dWRlICJNZWRpYVN0cmF0ZWd5LmgiCisjaW5jbHVkZSAiTm93UGxheWluZ0luZm8uaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2ll
cy5oIgorCitzdGF0aWMgY29uc3QgY2hhciBzX21wcmlzSW50ZXJmYWNlW10gPQorICAgICI8bm9k
ZT4iCisgICAgICAgICI8aW50ZXJmYWNlIG5hbWU9XCJvcmcubXByaXMuTWVkaWFQbGF5ZXIyXCI+
IgorICAgICAgICAgICAgIjxhbm5vdGF0aW9uIG5hbWU9XCJvcmcuZnJlZWRlc2t0b3AuREJ1cy5Q
cm9wZXJ0eS5FbWl0c0NoYW5nZWRTaWduYWxcIiB2YWx1ZT1cInRydWVcIi8+IgorICAgICAgICAg
ICAgIjxtZXRob2QgbmFtZT1cIlJhaXNlXCIvPiIKKyAgICAgICAgICAgICI8bWV0aG9kIG5hbWU9
XCJRdWl0XCIvPiIKKyAgICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIkNhblF1aXRcIiB0eXBl
PVwiYlwiIGFjY2Vzcz1cInJlYWRcIi8+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwi
Q2FuUmFpc2VcIiB0eXBlPVwiYlwiIGFjY2Vzcz1cInJlYWRcIi8+IgorICAgICAgICAgICAgIjxw
cm9wZXJ0eSBuYW1lPVwiSGFzVHJhY2tMaXN0XCIgdHlwZT1cImJcIiBhY2Nlc3M9XCJyZWFkXCIv
PiIKKyAgICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIklkZW50aXR5XCIgdHlwZT1cInNcIiBh
Y2Nlc3M9XCJyZWFkXCIvPiIKKyAgICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIkRlc2t0b3BF
bnRyeVwiIHR5cGU9XCJzXCIgYWNjZXNzPVwicmVhZFwiLz4iCisgICAgICAgICAgICAiPHByb3Bl
cnR5IG5hbWU9XCJTdXBwb3J0ZWRVcmlTY2hlbWVzXCIgdHlwZT1cImFzXCIgYWNjZXNzPVwicmVh
ZFwiLz4iCisgICAgICAgICAgICAiPHByb3BlcnR5IG5hbWU9XCJTdXBwb3J0ZWRNaW1lVHlwZXNc
IiB0eXBlPVwiYXNcIiBhY2Nlc3M9XCJyZWFkXCIvPiIKKyAgICAgICAgIjwvaW50ZXJmYWNlPiIK
KyAgICAgICAgIjxpbnRlcmZhY2UgbmFtZT1cIm9yZy5tcHJpcy5NZWRpYVBsYXllcjIuUGxheWVy
XCI+IgorICAgICAgICAgICAgIjxtZXRob2QgbmFtZT1cIk5leHRcIi8+IgorICAgICAgICAgICAg
IjxtZXRob2QgbmFtZT1cIlByZXZpb3VzXCIvPiIKKyAgICAgICAgICAgICI8bWV0aG9kIG5hbWU9
XCJQYXVzZVwiLz4iCisgICAgICAgICAgICAiPG1ldGhvZCBuYW1lPVwiUGxheVBhdXNlXCIvPiIK
KyAgICAgICAgICAgICI8bWV0aG9kIG5hbWU9XCJTdG9wXCIvPiIKKyAgICAgICAgICAgICI8bWV0
aG9kIG5hbWU9XCJQbGF5XCIvPiIKKyAgICAgICAgICAgICI8bWV0aG9kIG5hbWU9XCJTZWVrXCI+
IgorICAgICAgICAgICAgICAgICI8YXJnIGRpcmVjdGlvbj1cImluXCIgdHlwZT1cInhcIiBuYW1l
PVwiT2Zmc2V0XCIvPiIKKyAgICAgICAgICAgICI8L21ldGhvZD4iCisgICAgICAgICAgICAiPG1l
dGhvZCBuYW1lPVwiU2V0UG9zaXRpb25cIj4iCisgICAgICAgICAgICAgICAgIjxhcmcgZGlyZWN0
aW9uPVwiaW5cIiB0eXBlPVwib1wiIG5hbWU9XCJUcmFja0lkXCIvPiIKKyAgICAgICAgICAgICAg
ICAiPGFyZyBkaXJlY3Rpb249XCJpblwiIHR5cGU9XCJ4XCIgbmFtZT1cIlBvc2l0aW9uXCIvPiIK
KyAgICAgICAgICAgICI8L21ldGhvZD4iCisgICAgICAgICAgICAiPG1ldGhvZCBuYW1lPVwiT3Bl
blVyaVwiPiIKKyAgICAgICAgICAgICAgICAiPGFyZyBkaXJlY3Rpb249XCJpblwiIHR5cGU9XCJz
XCIgbmFtZT1cIlVyaVwiLz4iCisgICAgICAgICAgICAiPC9tZXRob2Q+IgorICAgICAgICAgICAg
Ijxwcm9wZXJ0eSBuYW1lPVwiUGxheWJhY2tTdGF0dXNcIiB0eXBlPVwic1wiIGFjY2Vzcz1cInJl
YWRcIj4iCisgICAgICAgICAgICAgICAgIjxhbm5vdGF0aW9uIG5hbWU9XCJvcmcuZnJlZWRlc2t0
b3AuREJ1cy5Qcm9wZXJ0eS5FbWl0c0NoYW5nZWRTaWduYWxcIiB2YWx1ZT1cInRydWVcIi8+Igor
ICAgICAgICAgICAgIjwvcHJvcGVydHk+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwi
UmF0ZVwiIHR5cGU9XCJkXCIgYWNjZXNzPVwicmVhZHdyaXRlXCI+IgorICAgICAgICAgICAgICAg
ICI8YW5ub3RhdGlvbiBuYW1lPVwib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydHkuRW1pdHND
aGFuZ2VkU2lnbmFsXCIgdmFsdWU9XCJ0cnVlXCIvPiIKKyAgICAgICAgICAgICI8L3Byb3BlcnR5
PiIKKyAgICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIk1ldGFkYXRhXCIgdHlwZT1cImF7c3Z9
XCIgYWNjZXNzPVwicmVhZFwiPiIKKyAgICAgICAgICAgICAgICAiPGFubm90YXRpb24gbmFtZT1c
Im9yZy5mcmVlZGVza3RvcC5EQnVzLlByb3BlcnR5LkVtaXRzQ2hhbmdlZFNpZ25hbFwiIHZhbHVl
PVwidHJ1ZVwiLz4iCisgICAgICAgICAgICAiPC9wcm9wZXJ0eT4iCisgICAgICAgICAgICAiPHBy
b3BlcnR5IG5hbWU9XCJWb2x1bWVcIiB0eXBlPVwiZFwiIGFjY2Vzcz1cInJlYWR3cml0ZVwiPiIK
KyAgICAgICAgICAgICAgICAiPGFubm90YXRpb24gbmFtZT1cIm9yZy5mcmVlZGVza3RvcC5EQnVz
LlByb3BlcnR5LkVtaXRzQ2hhbmdlZFNpZ25hbFwiIHZhbHVlPVwidHJ1ZVwiLz4iCisgICAgICAg
ICAgICAiPC9wcm9wZXJ0eT4iCisgICAgICAgICAgICAiPHByb3BlcnR5IG5hbWU9XCJQb3NpdGlv
blwiIHR5cGU9XCJ4XCIgYWNjZXNzPVwicmVhZFwiPiIKKyAgICAgICAgICAgICAgICAiPGFubm90
YXRpb24gbmFtZT1cIm9yZy5mcmVlZGVza3RvcC5EQnVzLlByb3BlcnR5LkVtaXRzQ2hhbmdlZFNp
Z25hbFwiIHZhbHVlPVwiZmFsc2VcIi8+IgorICAgICAgICAgICAgIjwvcHJvcGVydHk+IgorICAg
ICAgICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwiTWluaW11bVJhdGVcIiB0eXBlPVwiZFwiIGFjY2Vz
cz1cInJlYWRcIj4iCisgICAgICAgICAgICAgICAgIjxhbm5vdGF0aW9uIG5hbWU9XCJvcmcuZnJl
ZWRlc2t0b3AuREJ1cy5Qcm9wZXJ0eS5FbWl0c0NoYW5nZWRTaWduYWxcIiB2YWx1ZT1cInRydWVc
Ii8+IgorICAgICAgICAgICAgIjwvcHJvcGVydHk+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBu
YW1lPVwiTWF4aW11bVJhdGVcIiB0eXBlPVwiZFwiIGFjY2Vzcz1cInJlYWRcIj4iCisgICAgICAg
ICAgICAgICAgIjxhbm5vdGF0aW9uIG5hbWU9XCJvcmcuZnJlZWRlc2t0b3AuREJ1cy5Qcm9wZXJ0
eS5FbWl0c0NoYW5nZWRTaWduYWxcIiB2YWx1ZT1cInRydWVcIi8+IgorICAgICAgICAgICAgIjwv
cHJvcGVydHk+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwiQ2FuR29OZXh0XCIgdHlw
ZT1cImJcIiBhY2Nlc3M9XCJyZWFkXCI+IgorICAgICAgICAgICAgICAgICI8YW5ub3RhdGlvbiBu
YW1lPVwib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydHkuRW1pdHNDaGFuZ2VkU2lnbmFsXCIg
dmFsdWU9XCJ0cnVlXCIvPiIKKyAgICAgICAgICAgICI8L3Byb3BlcnR5PiIKKyAgICAgICAgICAg
ICI8cHJvcGVydHkgbmFtZT1cIkNhbkdvUHJldmlvdXNcIiB0eXBlPVwiYlwiIGFjY2Vzcz1cInJl
YWRcIj4iCisgICAgICAgICAgICAgICAgIjxhbm5vdGF0aW9uIG5hbWU9XCJvcmcuZnJlZWRlc2t0
b3AuREJ1cy5Qcm9wZXJ0eS5FbWl0c0NoYW5nZWRTaWduYWxcIiB2YWx1ZT1cInRydWVcIi8+Igor
ICAgICAgICAgICAgIjwvcHJvcGVydHk+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwi
Q2FuUGxheVwiIHR5cGU9XCJiXCIgYWNjZXNzPVwicmVhZFwiPiIKKyAgICAgICAgICAgICAgICAi
PGFubm90YXRpb24gbmFtZT1cIm9yZy5mcmVlZGVza3RvcC5EQnVzLlByb3BlcnR5LkVtaXRzQ2hh
bmdlZFNpZ25hbFwiIHZhbHVlPVwidHJ1ZVwiLz4iCisgICAgICAgICAgICAiPC9wcm9wZXJ0eT4i
CisgICAgICAgICAgICAiPHByb3BlcnR5IG5hbWU9XCJDYW5QYXVzZVwiIHR5cGU9XCJiXCIgYWNj
ZXNzPVwicmVhZFwiPiIKKyAgICAgICAgICAgICAgICAiPGFubm90YXRpb24gbmFtZT1cIm9yZy5m
cmVlZGVza3RvcC5EQnVzLlByb3BlcnR5LkVtaXRzQ2hhbmdlZFNpZ25hbFwiIHZhbHVlPVwidHJ1
ZVwiLz4iCisgICAgICAgICAgICAiPC9wcm9wZXJ0eT4iCisgICAgICAgICAgICAiPHByb3BlcnR5
IG5hbWU9XCJDYW5TZWVrXCIgdHlwZT1cImJcIiBhY2Nlc3M9XCJyZWFkXCI+IgorICAgICAgICAg
ICAgICAgICI8YW5ub3RhdGlvbiBuYW1lPVwib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydHku
RW1pdHNDaGFuZ2VkU2lnbmFsXCIgdmFsdWU9XCJ0cnVlXCIvPiIKKyAgICAgICAgICAgICI8L3By
b3BlcnR5PiIKKyAgICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIkNhbkNvbnRyb2xcIiB0eXBl
PVwiYlwiIGFjY2Vzcz1cInJlYWRcIj4iCisgICAgICAgICAgICAgICAgIjxhbm5vdGF0aW9uIG5h
bWU9XCJvcmcuZnJlZWRlc2t0b3AuREJ1cy5Qcm9wZXJ0eS5FbWl0c0NoYW5nZWRTaWduYWxcIiB2
YWx1ZT1cImZhbHNlXCIvPiIKKyAgICAgICAgICAgICI8L3Byb3BlcnR5PiIKKyAgICAgICAgICAg
ICI8c2lnbmFsIG5hbWU9XCJTZWVrZWRcIj4iCisgICAgICAgICAgICAgICAgIjxhcmcgbmFtZT1c
IlBvc2l0aW9uXCIgdHlwZT1cInhcIi8+IgorICAgICAgICAgICAgIjwvc2lnbmFsPiIKKyAgICAg
ICAgIjwvaW50ZXJmYWNlPiIKKyAgICAiPC9ub2RlPiI7CisKKyNkZWZpbmUgREJVU19NUFJJU19T
RVJWSUNFX05BTUUgIm9yZy5tcHJpcy5NZWRpYVBsYXllcjIud2Via2l0IgorI2RlZmluZSBEQlVT
X01QUklTX09CSkVDVF9QQVRIICIvb3JnL21wcmlzL01lZGlhUGxheWVyMiIKKyNkZWZpbmUgREJV
U19NUFJJU19JTlRFUkZBQ0UgIm9yZy5tcHJpcy5NZWRpYVBsYXllcjIiCisjZGVmaW5lIERCVVNf
TVBSSVNfUExBWUVSX0lOVEVSRkFDRSAib3JnLm1wcmlzLk1lZGlhUGxheWVyMi5QbGF5ZXIiCisj
ZGVmaW5lIERCVVNfTVBSSVNfVFJBQ0tfUEFUSCAiL29yZy9tcHJpcy9NZWRpYVBsYXllcjIvd2Vi
a2l0IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXI+IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y3JlYXRlKCkK
K3sKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYj4oKTsKK30K
KworTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliKCkKKyAg
ICA6IG1fbm93UGxheWluZ01hbmFnZXIocGxhdGZvcm1TdHJhdGVnaWVzKCktPm1lZGlhU3RyYXRl
Z3koKS5jcmVhdGVOb3dQbGF5aW5nTWFuYWdlcigpKQoreworfQorCitNZWRpYVNlc3Npb25NYW5h
Z2VyR0xpYjo6fk1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliKCkKK3sKKyAgICBpZiAobV9vd25lcklk
KQorICAgICAgICBnX2J1c191bm93bl9uYW1lKG1fb3duZXJJZCk7Cit9CisKK3N0YXRpYyBpbmxp
bmUgc3RkOjpvcHRpb25hbDxQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1h
bmRUeXBlPiBnZXRDb21tYW5kKGNvbnN0IGNoYXIqIG5hbWUpCit7CisgICAgc3RhdGljIGNvbnN0
IGF1dG8gbWFwID0gbWFrZU5ldmVyRGVzdHJveWVkKFtdIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6
dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNv
bnRyb2xDb21tYW5kVHlwZT4geworICAgICAgICAgICAgeyAiTmV4dCIsIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpOZXh0VHJhY2tDb21tYW5kIH0sCisgICAgICAgICAgICB7ICJQYXVzZSIsIFBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpQYXVzZUNvbW1hbmQgfSwKKyAgICAgICAgICAgIHsgIlBsYXkiLCBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxheUNvbW1hbmQgfSwKKyAgICAgICAgICAgIHsgIlBsYXlQ
YXVzZSIsIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpUb2dnbGVQbGF5UGF1c2VDb21tYW5kIH0sCisg
ICAgICAgICAgICB7ICJQcmV2aW91cyIsIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpQcmV2aW91c1Ry
YWNrQ29tbWFuZCB9LAorICAgICAgICAgICAgeyAiU2VlayIsIFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpTZWVrVG9QbGF5YmFja1Bvc2l0aW9uQ29tbWFuZCB9LAorICAgICAgICAgICAgeyAiU3RvcCIs
IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdG9wQ29tbWFuZCB9CisgICAgICAgIH07CisgICAgfSgp
KTsKKworICAgIGF1dG8gaXQgPSBtYXAtPmZpbmQobmFtZSk7CisgICAgaWYgKGl0ID09IG1hcC0+
ZW5kKCkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIGl0LT5zZWNvbmQ7Cit9CisK
K3N0YXRpYyB2b2lkIGhhbmRsZU1ldGhvZENhbGwoR0RCdXNDb25uZWN0aW9uKiAvKiBjb25uZWN0
aW9uICovLCBjb25zdCBjaGFyKiAvKiBzZW5kZXIgKi8sIGNvbnN0IGNoYXIqIG9iamVjdFBhdGgs
IGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIG1ldGhvZE5hbWUsIEdWYXJp
YW50KiBwYXJhbWV0ZXJzLCBHREJ1c01ldGhvZEludm9jYXRpb24qIGludm9jYXRpb24sIGdwb2lu
dGVyIHVzZXJEYXRhKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgYXV0byBj
b21tYW5kID0gZ2V0Q29tbWFuZChtZXRob2ROYW1lKTsKKyAgICBpZiAoIWNvbW1hbmQpIHsKKyAg
ICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl9lcnJvcihpbnZvY2F0aW9uLCBH
X0RCVVNfRVJST1IsIEdfREJVU19FUlJPUl9GQUlMRUQsICIlcy4lcy4lcyBpcyBub3QgYXZhaWxh
YmxlIG5vdyIsIG9iamVjdFBhdGgsIGludGVyZmFjZU5hbWUsIG1ldGhvZE5hbWUpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIGF1dG8mIG1hbmFnZXIgPSAqcmVpbnRlcnByZXRfY2FzdDxN
ZWRpYVNlc3Npb25NYW5hZ2VyR0xpYio+KHVzZXJEYXRhKTsKKyAgICBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6UmVtb3RlQ29tbWFuZEFyZ3VtZW50IGFyZ3VtZW50OworICAgIGlmICgqY29tbWFuZCA9
PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U2Vla1RvUGxheWJhY2tQb3NpdGlvbkNvbW1hbmQpIHsK
KyAgICAgICAgaW50NjRfdCBvZmZzZXQ7CisgICAgICAgIGdfdmFyaWFudF9nZXQocGFyYW1ldGVy
cywgIih4KSIsICZvZmZzZXQpOworICAgICAgICBhcmd1bWVudC50aW1lID0gb2Zmc2V0IC8gMTAw
MDAwMDsKKyAgICB9CisgICAgbWFuYWdlci5kaXNwYXRjaCgqY29tbWFuZCwgYXJndW1lbnQpOwor
ICAgIGdfZGJ1c19tZXRob2RfaW52b2NhdGlvbl9yZXR1cm5fdmFsdWUoaW52b2NhdGlvbiwgbnVs
bHB0cik7Cit9CisKK2VudW0gY2xhc3MgUHJvcGVydHkgOiB1aW50OF90IHsKKyAgICBDYW5Db250
cm9sLAorICAgIENhbkdvTmV4dCwKKyAgICBDYW5Hb1ByZXZpb3VzLAorICAgIENhblBhdXNlLAor
ICAgIENhblBsYXksCisgICAgQ2FuUXVpdCwKKyAgICBDYW5SYWlzZSwKKyAgICBDYW5TZWVrLAor
ICAgIERlc2t0b3BFbnRyeSwKKyAgICBHZXRNZXRhZGF0YSwKKyAgICBHZXRQbGF5YmFja1N0YXR1
cywKKyAgICBHZXRQb3NpdGlvbiwKKyAgICBIYXNUcmFja0xpc3QsCisgICAgSWRlbnRpdHksCisg
ICAgU3VwcG9ydGVkTWltZVR5cGVzLAorICAgIFN1cHBvcnRlZFVyaVNjaGVtZXMsCit9OworCitz
dGF0aWMgaW5saW5lIHN0ZDo6b3B0aW9uYWw8UHJvcGVydHk+IGdldFByb3BlcnR5KGNvbnN0IGNo
YXIqIHByb3BlcnR5TmFtZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgYXV0byBtYXAgPSBtYWtlTmV2
ZXJEZXN0cm95ZWQoW10geworICAgICAgICByZXR1cm4gc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6
c3RyaW5nLCBQcm9wZXJ0eT4geworICAgICAgICAgICAgLy8gb3JnLm1wcmlzLk1lZGlhUGxheWVy
MiBwcm9wZXJ0aWVzCisgICAgICAgICAgICB7ICJJZGVudGl0eSIsIFByb3BlcnR5OjpJZGVudGl0
eSB9LAorICAgICAgICAgICAgeyAiRGVza3RvcEVudHJ5IiwgUHJvcGVydHk6OkRlc2t0b3BFbnRy
eSB9LAorICAgICAgICAgICAgeyAiSGFzVHJhY2tMaXN0IiwgUHJvcGVydHk6Okhhc1RyYWNrTGlz
dCB9LAorICAgICAgICAgICAgeyAiQ2FuUmFpc2UiLCBQcm9wZXJ0eTo6Q2FuUmFpc2UgfSwKKyAg
ICAgICAgICAgIHsgIkNhblF1aXQiLCBQcm9wZXJ0eTo6Q2FuUXVpdCB9LAorICAgICAgICAgICAg
eyAiU3VwcG9ydGVkVXJpU2NoZW1lcyIsIFByb3BlcnR5OjpTdXBwb3J0ZWRVcmlTY2hlbWVzIH0s
CisgICAgICAgICAgICB7ICJTdXBwb3J0ZWRNaW1lVHlwZXMiLCBQcm9wZXJ0eTo6U3VwcG9ydGVk
TWltZVR5cGVzIH0sCisgICAgICAgICAgICAvLyBvcmcubXByaXMuTWVkaWFQbGF5ZXIyLlBsYXll
ciBwcm9wZXJ0aWVzCisgICAgICAgICAgICB7ICJDYW5Hb05leHQiLCBQcm9wZXJ0eTo6Q2FuR29O
ZXh0IH0sCisgICAgICAgICAgICB7ICJDYW5Hb1ByZXZpb3VzIiwgUHJvcGVydHk6OkNhbkdvUHJl
dmlvdXMgfSwKKyAgICAgICAgICAgIHsgIkNhblBsYXkiLCBQcm9wZXJ0eTo6Q2FuUGxheSB9LAor
ICAgICAgICAgICAgeyAiQ2FuUGF1c2UiLCBQcm9wZXJ0eTo6Q2FuUGF1c2UgfSwKKyAgICAgICAg
ICAgIHsgIkNhblNlZWsiLCBQcm9wZXJ0eTo6Q2FuU2VlayB9LAorICAgICAgICAgICAgeyAiQ2Fu
Q29udHJvbCIsIFByb3BlcnR5OjpDYW5Db250cm9sIH0sCisgICAgICAgICAgICB7ICJQbGF5YmFj
a1N0YXR1cyIsIFByb3BlcnR5OjpHZXRQbGF5YmFja1N0YXR1cyB9LAorICAgICAgICAgICAgeyAi
UG9zaXRpb24iLCBQcm9wZXJ0eTo6R2V0UG9zaXRpb259LAorICAgICAgICAgICAgeyAiTWV0YWRh
dGEiLCBQcm9wZXJ0eTo6R2V0TWV0YWRhdGEgfQorICAgICAgICB9OworICAgIH0oKSk7CisKKyAg
ICBhdXRvIGl0ID0gbWFwLT5maW5kKHByb3BlcnR5TmFtZSk7CisgICAgaWYgKGl0ID09IG1hcC0+
ZW5kKCkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIGl0LT5zZWNvbmQ7Cit9CisK
K3N0YXRpYyBHVmFyaWFudCogaGFuZGxlR2V0UHJvcGVydHkoR0RCdXNDb25uZWN0aW9uKiwgY29u
c3QgY2hhciogLyogc2VuZGVyICovLCBjb25zdCBjaGFyKiBvYmplY3RQYXRoLCBjb25zdCBjaGFy
KiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIEdFcnJvcioqIGVycm9y
LCBncG9pbnRlciB1c2VyRGF0YSkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IGF1dG8gcHJvcGVydHkgPSBnZXRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUpOworICAgIGlmICghcHJv
cGVydHkpIHsKKyAgICAgICAgZ19zZXRfZXJyb3IoZXJyb3IsIEdfREJVU19FUlJPUiwgR19EQlVT
X0VSUk9SX05PVF9TVVBQT1JURUQsICIlcy4lcyAlcyBpcyBub3Qgc3VwcG9ydGVkIiwgb2JqZWN0
UGF0aCwgaW50ZXJmYWNlTmFtZSwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfQorCisgICAgYXV0byYgbWFuYWdlciA9ICpyZWludGVycHJldF9jYXN0PE1lZGlh
U2Vzc2lvbk1hbmFnZXJHTGliKj4odXNlckRhdGEpOworICAgIHN3aXRjaCAocHJvcGVydHkudmFs
dWUoKSkgeworICAgIGNhc2UgUHJvcGVydHk6OlN1cHBvcnRlZFVyaVNjaGVtZXM6CisgICAgY2Fz
ZSBQcm9wZXJ0eTo6U3VwcG9ydGVkTWltZVR5cGVzOgorICAgICAgICByZXR1cm4gZ192YXJpYW50
X25ld19zdHJ2KG51bGxwdHIsIDApOworICAgIGNhc2UgUHJvcGVydHk6OkdldFBsYXliYWNrU3Rh
dHVzOgorICAgICAgICByZXR1cm4gbWFuYWdlci5nZXRQbGF5YmFja1N0YXR1c0FzR1ZhcmlhbnQo
KTsKKyAgICBjYXNlIFByb3BlcnR5OjpHZXRNZXRhZGF0YTogeworICAgICAgICBhdXRvKiB2YXJp
YW50ID0gbWFuYWdlci5nZXRNZXRhZGF0YUFzR1ZhcmlhbnQoKTsKKyAgICAgICAgaWYgKCF2YXJp
YW50KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBnX3Zhcmlh
bnRfcmVmKHZhcmlhbnQpOworICAgIH0KKyAgICBjYXNlIFByb3BlcnR5OjpHZXRQb3NpdGlvbjoK
KyAgICAgICAgcmV0dXJuIG1hbmFnZXIuZ2V0QWN0aXZlU2Vzc2lvblBvc2l0aW9uKCk7CisgICAg
Y2FzZSBQcm9wZXJ0eTo6SWRlbnRpdHk6CisgICAgICAgIC8vIEZJWE1FOiBXb3VsZCBiZSBuaWNl
IHRvIGdldCBVSVByb2Nlc3MgbmFtZSwgc29tZWhvdy4KKyAgICAgICAgcmV0dXJuIGdfdmFyaWFu
dF9uZXdfc3RyaW5nKCJXZWJLaXQiKTsKKyAgICBjYXNlIFByb3BlcnR5OjpEZXNrdG9wRW50cnk6
CisgICAgICAgIHJldHVybiBnX3ZhcmlhbnRfbmV3X3N0cmluZygiIik7CisgICAgY2FzZSBQcm9w
ZXJ0eTo6SGFzVHJhY2tMaXN0OgorICAgIGNhc2UgUHJvcGVydHk6OkNhblF1aXQ6CisgICAgY2Fz
ZSBQcm9wZXJ0eTo6Q2FuUmFpc2U6CisgICAgICAgIHJldHVybiBnX3ZhcmlhbnRfbmV3X2Jvb2xl
YW4oZmFsc2UpOworICAgIGNhc2UgUHJvcGVydHk6OkNhblNlZWs6CisgICAgY2FzZSBQcm9wZXJ0
eTo6Q2FuQ29udHJvbDoKKyAgICBjYXNlIFByb3BlcnR5OjpDYW5Hb05leHQ6CisgICAgY2FzZSBQ
cm9wZXJ0eTo6Q2FuR29QcmV2aW91czoKKyAgICBjYXNlIFByb3BlcnR5OjpDYW5QbGF5OgorICAg
IGNhc2UgUHJvcGVydHk6OkNhblBhdXNlOgorICAgICAgICByZXR1cm4gZ192YXJpYW50X25ld19i
b29sZWFuKHRydWUpOworICAgIH0KKworICAgIHJldHVybiBudWxscHRyOworfQorCitzdGF0aWMg
Z2Jvb2xlYW4gaGFuZGxlU2V0UHJvcGVydHkoR0RCdXNDb25uZWN0aW9uKiwgY29uc3QgY2hhciog
Lyogc2VuZGVyICovLCBjb25zdCBjaGFyKiAvKiBvYmplY3RQYXRoICovLCBjb25zdCBjaGFyKiBp
bnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIEdWYXJpYW50KiwgR0Vycm9y
KiogZXJyb3IsIGdwb2ludGVyKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
Z19zZXRfZXJyb3IoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfRkFJTEVELCAiJXM6JXMg
c2V0dGluZyBpcyBub3Qgc3VwcG9ydGVkIiwgaW50ZXJmYWNlTmFtZSwgcHJvcGVydHlOYW1lKTsK
KyAgICByZXR1cm4gRkFMU0U7Cit9CisKK3N0YXRpYyBjb25zdCBHREJ1c0ludGVyZmFjZVZUYWJs
ZSBnSW50ZXJmYWNlVlRhYmxlID0geworICAgIGhhbmRsZU1ldGhvZENhbGwsIGhhbmRsZUdldFBy
b3BlcnR5LCBoYW5kbGVTZXRQcm9wZXJ0eSwgeyBudWxscHRyIH0KK307CisKK2Jvb2wgTWVkaWFT
ZXNzaW9uTWFuYWdlckdMaWI6OnNldHVwTXByaXMoKQoreworICAgIGlmIChtX2Nvbm5lY3Rpb24p
CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgYXV0byBpbnN0YW5jZUlkID0gbWFrZVN0cmlu
Zygib3JnLm1wcmlzLk1lZGlhUGxheWVyMi53ZWJraXQuaW5zdGFuY2UiLCBnZXRwaWQoKSk7Cisg
ICAgbV9vd25lcklkID0gZ19idXNfb3duX25hbWUoR19CVVNfVFlQRV9TRVNTSU9OLCBpbnN0YW5j
ZUlkLmFzY2lpKCkuZGF0YSgpLAorICAgICAgICBHX0JVU19OQU1FX09XTkVSX0ZMQUdTX05PTkUs
IHJlaW50ZXJwcmV0X2Nhc3Q8R0J1c0FjcXVpcmVkQ2FsbGJhY2s+KCtbXShHREJ1c0Nvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIGNvbnN0IGdjaGFyKiwgZ3BvaW50ZXIgdXNlckRhdGEpIHsKKyAgICAg
ICAgICAgIGF1dG8mIG1hbmFnZXIgPSAqcmVpbnRlcnByZXRfY2FzdDxNZWRpYVNlc3Npb25NYW5h
Z2VyR0xpYio+KHVzZXJEYXRhKTsKKyAgICAgICAgICAgIG1hbmFnZXIuYnVzQWNxdWlyZWQoY29u
bmVjdGlvbik7CisgICAgICAgIH0pLAorICAgICAgICByZWludGVycHJldF9jYXN0PEdCdXNOYW1l
QWNxdWlyZWRDYWxsYmFjaz4oK1tdKEdEQnVzQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29uc3Qg
Y2hhciosIGdwb2ludGVyIHVzZXJEYXRhKSB7CisgICAgICAgICAgICBhdXRvJiBtYW5hZ2VyID0g
KnJlaW50ZXJwcmV0X2Nhc3Q8TWVkaWFTZXNzaW9uTWFuYWdlckdMaWIqPih1c2VyRGF0YSk7Cisg
ICAgICAgICAgICBtYW5hZ2VyLm5hbWVBY3F1aXJlZChjb25uZWN0aW9uKTsKKyAgICAgICAgfSks
CisgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8R0J1c05hbWVMb3N0Q2FsbGJhY2s+KCtbXShHREJ1
c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IGNoYXIqLCBncG9pbnRlciB1c2VyRGF0YSkg
eworICAgICAgICAgICAgYXV0byYgbWFuYWdlciA9ICpyZWludGVycHJldF9jYXN0PE1lZGlhU2Vz
c2lvbk1hbmFnZXJHTGliKj4odXNlckRhdGEpOworICAgICAgICAgICAgbWFuYWdlci5uYW1lTG9z
dChjb25uZWN0aW9uKTsKKyAgICAgICAgfSksIHRoaXMsIG51bGxwdHIpOworCisgICAgR1VuaXF1
ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgIG1fbXByaXNJbnRlcmZhY2UgPSBhZG9wdEdSZWYo
Z19kYnVzX25vZGVfaW5mb19uZXdfZm9yX3htbChzX21wcmlzSW50ZXJmYWNlLCAmZXJyb3Iub3V0
UHRyKCkpKTsKKyAgICBpZiAoIW1fbXByaXNJbnRlcmZhY2UpIHsKKyAgICAgICAgV1RGTG9nQWx3
YXlzKCJGYWlsZWQgYXQgcGFyc2luZyBYTUwgSW50ZXJmYWNlIGRlZmluaXRpb246ICVzIiwgZXJy
b3IgPyBlcnJvci0+bWVzc2FnZSA6ICJVbmtub3duIEVycm9yIik7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25N
YW5hZ2VyR0xpYjo6YnVzQWNxdWlyZWQoR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9uKQorewor
ICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKKyAgICBtX3Jvb3RSZWdpc3RyYXRpb25J
ZCA9IGdfZGJ1c19jb25uZWN0aW9uX3JlZ2lzdGVyX29iamVjdChjb25uZWN0aW9uLCBEQlVTX01Q
UklTX09CSkVDVF9QQVRILCBtX21wcmlzSW50ZXJmYWNlLT5pbnRlcmZhY2VzWzBdLAorICAgICAg
ICAmZ0ludGVyZmFjZVZUYWJsZSwgdGhpcywgbnVsbHB0ciwgJmVycm9yLm91dFB0cigpKTsKKwor
ICAgIGlmICghbV9yb290UmVnaXN0cmF0aW9uSWQpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJG
YWlsZWQgYXQgcm9vdCByZWdpc3RyYXRpb246ICVzIiwgZXJyb3IgPyBlcnJvci0+bWVzc2FnZSA6
ICJVbmtub3duIEVycm9yIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3BsYXll
clJlZ2lzdHJhdGlvbklkID0gZ19kYnVzX2Nvbm5lY3Rpb25fcmVnaXN0ZXJfb2JqZWN0KGNvbm5l
Y3Rpb24sIERCVVNfTVBSSVNfT0JKRUNUX1BBVEgsIG1fbXByaXNJbnRlcmZhY2UtPmludGVyZmFj
ZXNbMV0sCisgICAgICAgICZnSW50ZXJmYWNlVlRhYmxlLCB0aGlzLCBudWxscHRyLCAmZXJyb3Iu
b3V0UHRyKCkpOworCisgICAgaWYgKCFtX3BsYXllclJlZ2lzdHJhdGlvbklkKQorICAgICAgICBX
VEZMb2dBbHdheXMoIkZhaWxlZCBhdCBvYmplY3QgcmVnaXN0cmF0aW9uOiAlcyIsIGVycm9yID8g
ZXJyb3ItPm1lc3NhZ2UgOiAiVW5rbm93biBFcnJvciIpOworfQorCit2b2lkIE1lZGlhU2Vzc2lv
bk1hbmFnZXJHTGliOjpuYW1lTG9zdChHREJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCit7Cisg
ICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKKyAgICBpZiAoIW1fcm9vdFJlZ2lzdHJhdGlvbklk
KQorICAgICAgICByZXR1cm47CisgICAgaWYgKGdfZGJ1c19jb25uZWN0aW9uX3VucmVnaXN0ZXJf
b2JqZWN0KGNvbm5lY3Rpb24sIG1fcm9vdFJlZ2lzdHJhdGlvbklkKSkKKyAgICAgICAgbV9yb290
UmVnaXN0cmF0aW9uSWQgPSAwOworICAgIGVsc2UKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJVbmFi
bGUgdG8gdW5yZWdpc3RlciByb290IG9iamVjdC4iKTsKKworICAgIGlmICghbV9wbGF5ZXJSZWdp
c3RyYXRpb25JZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGdfZGJ1c19jb25uZWN0aW9u
X3VucmVnaXN0ZXJfb2JqZWN0KGNvbm5lY3Rpb24sIG1fcGxheWVyUmVnaXN0cmF0aW9uSWQpKQor
ICAgICAgICBtX3BsYXllclJlZ2lzdHJhdGlvbklkID0gMDsKKyAgICBlbHNlCisgICAgICAgIFdU
RkxvZ0Fsd2F5cygiVW5hYmxlIHRvIHVucmVnaXN0ZXIgcGxheWVyIG9iamVjdC4iKTsKK30KKwor
dm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6YmVnaW5JbnRlcnJ1cHRpb24oUGxhdGZvcm1N
ZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUgdHlwZSkKK3sKKyAgICBpZiAodHlwZSA9PSBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3lzdGVtSW50ZXJydXB0aW9u
KSB7CisgICAgICAgIGZvckVhY2hTZXNzaW9uKFtdIChhdXRvJiBzZXNzaW9uKSB7CisgICAgICAg
ICAgICBzZXNzaW9uLmNsZWFySGFzUGxheWVkU2luY2VMYXN0SW50ZXJydXB0aW9uKCk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6YmVnaW5J
bnRlcnJ1cHRpb24odHlwZSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnNj
aGVkdWxlU2Vzc2lvblN0YXR1c1VwZGF0ZSgpCit7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhp
c10gKCkgbXV0YWJsZSB7CisgICAgICAgIG1fbm93UGxheWluZ01hbmFnZXItPnNldFN1cHBvcnRz
U2Vla2luZyhjb21wdXRlU3VwcG9ydHNTZWVraW5nKCkpOworICAgICAgICB1cGRhdGVOb3dQbGF5
aW5nSW5mbygpOworCisgICAgICAgIGZvckVhY2hTZXNzaW9uKFtdIChhdXRvJiBzZXNzaW9uKSB7
CisgICAgICAgICAgICBzZXNzaW9uLnVwZGF0ZU1lZGlhVXNhZ2VJZkNoYW5nZWQoKTsKKyAgICAg
ICAgfSk7CisgICAgfSk7Cit9CisKK2Jvb2wgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnNlc3Np
b25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAg
ICBpZiAoIVBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxCZWdpblBsYXli
YWNrKHNlc3Npb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzY2hlZHVsZVNlc3Np
b25TdGF0dXNVcGRhdGUoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBNZWRpYVNlc3Np
b25NYW5hZ2VyR0xpYjo6c2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyhQbGF0Zm9ybU1lZGlh
U2Vzc2lvbiYpCit7CisgICAgc2NoZWR1bGVTZXNzaW9uU3RhdHVzVXBkYXRlKCk7CisgICAgV1RG
TG9nQWx3YXlzKCJTZWVrZWQiKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6
YWRkU2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICBpZiAoIXNl
dHVwTXByaXMoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fbm93UGxheWluZ01hbmFnZXItPmFk
ZENsaWVudCgqdGhpcyk7CisKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OmFkZFNl
c3Npb24oc2Vzc2lvbik7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnJlbW92
ZVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCit7CisgICAgUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpyZW1vdmVTZXNzaW9uKHNlc3Npb24pOworCisgICAgaWYgKGhh
c05vU2Vzc2lvbigpKQorICAgICAgICBtX25vd1BsYXlpbmdNYW5hZ2VyLT5yZW1vdmVDbGllbnQo
KnRoaXMpOworCisgICAgc2NoZWR1bGVTZXNzaW9uU3RhdHVzVXBkYXRlKCk7Cit9CisKK3ZvaWQg
TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnNldEN1cnJlbnRTZXNzaW9uKFBsYXRmb3JtTWVkaWFT
ZXNzaW9uJiBzZXNzaW9uKQoreworICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2V0
Q3VycmVudFNlc3Npb24oc2Vzc2lvbik7CisKKyAgICBtX25vd1BsYXlpbmdNYW5hZ2VyLT51cGRh
dGVTdXBwb3J0ZWRDb21tYW5kcygpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGli
OjpzZXNzaW9uV2lsbEVuZFBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uLCBE
ZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5nIGRlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcp
Cit7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEVuZFBsYXli
YWNrKHNlc3Npb24sIGRlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcpOworCisgICAgY2FsbE9u
TWFpblRocmVhZChbd2Vha1Nlc3Npb24gPSBtYWtlV2Vha1B0cihzZXNzaW9uKV0geworICAgICAg
ICBpZiAod2Vha1Nlc3Npb24pCisgICAgICAgICAgICB3ZWFrU2Vzc2lvbi0+dXBkYXRlTWVkaWFV
c2FnZUlmQ2hhbmdlZCgpOworICAgIH0pOworCisgICAgaWYgKGRlbGF5Q2FsbGluZ1VwZGF0ZU5v
d1BsYXlpbmcgPT0gRGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZzo6Tm8pCisgICAgICAgIHVw
ZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CisgICAgZWxzZSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoW3RoaXNdIHsKKyAgICAgICAgICAgIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CisgICAgICAg
IH0pOworICAgIH0KK30KKwordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6c2Vzc2lvblN0
YXRlQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25TdGF0ZUNoYW5nZWQoc2Vzc2lvbik7CisKKyAg
ICBHVmFyaWFudEJ1aWxkZXIgYnVpbGRlcjsKKyAgICBnX3ZhcmlhbnRfYnVpbGRlcl9pbml0KCZi
dWlsZGVyLCBHX1ZBUklBTlRfVFlQRSgiYXtzdn0iKSk7CisgICAgZ192YXJpYW50X2J1aWxkZXJf
YWRkKCZidWlsZGVyLCAie3N2fSIsICJQbGF5YmFja1N0YXR1cyIsIGdldFBsYXliYWNrU3RhdHVz
QXNHVmFyaWFudCgpKTsKKyAgICBlbWl0UHJvcGVydGllc0NoYW5nZWQoZ192YXJpYW50X25ldygi
KHNhe3N2fWFzKSIsIERCVVNfTVBSSVNfUExBWUVSX0lOVEVSRkFDRSwgJmJ1aWxkZXIsIG51bGxw
dHIpKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6Y2xpZW50Q2hhcmFjdGVy
aXN0aWNzQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICBBTFdB
WVNfTE9HKExPR0lERU5USUZJRVIsIHNlc3Npb24ubG9nSWRlbnRpZmllcigpKTsKKyAgICBpZiAo
bV9pc1NlZWtpbmcpIHsKKyAgICAgICAgbV9pc1NlZWtpbmcgPSBmYWxzZTsKKyAgICAgICAgR1Vu
aXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgICAgICBpbnQ2NF90IHBvc2l0aW9uID0gc2Vz
c2lvbi5ub3dQbGF5aW5nSW5mbygpLT5jdXJyZW50VGltZSAqIDEwMDAwMDA7CisgICAgICAgIGlm
ICghZ19kYnVzX2Nvbm5lY3Rpb25fZW1pdF9zaWduYWwobV9jb25uZWN0aW9uLmdldCgpLCBudWxs
cHRyLCBEQlVTX01QUklTX09CSkVDVF9QQVRILCBEQlVTX01QUklTX1BMQVlFUl9JTlRFUkZBQ0Us
ICJTZWVrZWQiLCBnX3ZhcmlhbnRfbmV3KCIoeCkiLCBwb3NpdGlvbiksICZlcnJvci5vdXRQdHIo
KSkpCisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byBlbWl0IE1QUklTIFNlZWtl
ZCBzaWduYWw6ICVzIiwgZXJyb3IgPyBlcnJvci0+bWVzc2FnZSA6ICJVbmtub3duIEVycm9yIik7
CisgICAgfQorICAgIHNjaGVkdWxlU2Vzc2lvblN0YXR1c1VwZGF0ZSgpOworfQorCit2b2lkIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpCit7
CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKCk7CisgICAgc2NoZWR1bGVT
ZXNzaW9uU3RhdHVzVXBkYXRlKCk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6
OmFkZFN1cHBvcnRlZENvbW1hbmQoUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xD
b21tYW5kVHlwZSBjb21tYW5kKQoreworICAgIG1fbm93UGxheWluZ01hbmFnZXItPmFkZFN1cHBv
cnRlZENvbW1hbmQoY29tbWFuZCk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6
OnJlbW92ZVN1cHBvcnRlZENvbW1hbmQoUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZSBjb21tYW5kKQoreworICAgIG1fbm93UGxheWluZ01hbmFnZXItPnJlbW92
ZVN1cHBvcnRlZENvbW1hbmQoY29tbWFuZCk7Cit9CisKK1BsYXRmb3JtTWVkaWFTZXNzaW9uKiBN
ZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6bm93UGxheWluZ0VsaWdpYmxlU2Vzc2lvbigpCit7Cisg
ICAgLy8gRklYTUU6IEZpeCB0aGlzIGxheWVyaW5nIHZpb2xhdGlvbi4KKyAgICBpZiAoYXV0byBl
bGVtZW50ID0gSFRNTE1lZGlhRWxlbWVudDo6YmVzdE1lZGlhRWxlbWVudEZvclJlbW90ZUNvbnRy
b2xzKE1lZGlhRWxlbWVudFNlc3Npb246OlBsYXliYWNrQ29udHJvbHNQdXJwb3NlOjpOb3dQbGF5
aW5nKSkKKyAgICAgICAgcmV0dXJuICZlbGVtZW50LT5tZWRpYVNlc3Npb24oKTsKKworICAgIHJl
dHVybiBudWxscHRyOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjp1cGRhdGVO
b3dQbGF5aW5nSW5mbygpCit7CisgICAgc3RkOjpvcHRpb25hbDxOb3dQbGF5aW5nSW5mbz4gbm93
UGxheWluZ0luZm87CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBub3dQbGF5aW5nRWxpZ2libGVT
ZXNzaW9uKCkpCisgICAgICAgIG5vd1BsYXlpbmdJbmZvID0gc2Vzc2lvbi0+bm93UGxheWluZ0lu
Zm8oKTsKKworICAgIGlmICghbm93UGxheWluZ0luZm8pIHsKKyAgICAgICAgaWYgKG1fcmVnaXN0
ZXJlZEFzTm93UGxheWluZ0FwcGxpY2F0aW9uKSB7CisgICAgICAgICAgICBBTFdBWVNfTE9HKExP
R0lERU5USUZJRVIsICJjbGVhcmluZyBub3cgcGxheWluZyBpbmZvIik7CisgICAgICAgICAgICBt
X25vd1BsYXlpbmdNYW5hZ2VyLT5jbGVhck5vd1BsYXlpbmdJbmZvKCk7CisgICAgICAgIH0KKwor
ICAgICAgICBtX3JlZ2lzdGVyZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbiA9IGZhbHNlOworICAg
ICAgICBtX25vd1BsYXlpbmdBY3RpdmUgPSBmYWxzZTsKKyAgICAgICAgbV9sYXN0VXBkYXRlZE5v
d1BsYXlpbmdUaXRsZSA9IGVtcHR5U3RyaW5nKCk7CisgICAgICAgIG1fbGFzdFVwZGF0ZWROb3dQ
bGF5aW5nRHVyYXRpb24gPSBOQU47CisgICAgICAgIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nRWxh
cHNlZFRpbWUgPSBOQU47CisgICAgICAgIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nSW5mb1VuaXF1
ZUlkZW50aWZpZXIgPSB7IH07CisgICAgICAgIG1fbm93UGxheWluZ0luZm8uY2xlYXIoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1faGF2ZUV2ZXJSZWdpc3RlcmVkQXNOb3dQbGF5
aW5nQXBwbGljYXRpb24gPSB0cnVlOworCisgICAgaWYgKG1fbm93UGxheWluZ01hbmFnZXItPnNl
dE5vd1BsYXlpbmdJbmZvKCpub3dQbGF5aW5nSW5mbykpCisgICAgICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUiwgInRpdGxlID0gXCIiLCBub3dQbGF5aW5nSW5mby0+dGl0bGUsICJcIiwgaXNQ
bGF5aW5nID0gIiwgbm93UGxheWluZ0luZm8tPmlzUGxheWluZywgIiwgZHVyYXRpb24gPSAiLCBu
b3dQbGF5aW5nSW5mby0+ZHVyYXRpb24sICIsIG5vdyA9ICIsIG5vd1BsYXlpbmdJbmZvLT5jdXJy
ZW50VGltZSwgIiwgaWQgPSAiLCBub3dQbGF5aW5nSW5mby0+dW5pcXVlSWRlbnRpZmllci50b1VJ
bnQ2NCgpLCAiLCByZWdpc3RlcmVkID0gIiwgbV9yZWdpc3RlcmVkQXNOb3dQbGF5aW5nQXBwbGlj
YXRpb24sICIsIHNyYyA9IFwiIiwgbm93UGxheWluZ0luZm8tPmFydHdvcmsgPyBub3dQbGF5aW5n
SW5mby0+YXJ0d29yay0+c3JjIDogU3RyaW5nKCksICJcIiIpOworCisgICAgaWYgKCFtX3JlZ2lz
dGVyZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbikgeworICAgICAgICBtX3JlZ2lzdGVyZWRBc05v
d1BsYXlpbmdBcHBsaWNhdGlvbiA9IHRydWU7CisgICAgICAgIHByb3ZpZGVQcmVzZW50aW5nQXBw
bGljYXRpb25QSURJZk5lY2Vzc2FyeSgpOworICAgIH0KKworICAgIGlmICghbm93UGxheWluZ0lu
Zm8tPnRpdGxlLmlzRW1wdHkoKSkKKyAgICAgICAgbV9sYXN0VXBkYXRlZE5vd1BsYXlpbmdUaXRs
ZSA9IG5vd1BsYXlpbmdJbmZvLT50aXRsZTsKKworICAgIGRvdWJsZSBkdXJhdGlvbiA9IG5vd1Bs
YXlpbmdJbmZvLT5kdXJhdGlvbjsKKyAgICBpZiAoc3RkOjppc2Zpbml0ZShkdXJhdGlvbikgJiYg
ZHVyYXRpb24gIT0gTWVkaWFQbGF5ZXI6OmludmFsaWRUaW1lKCkpCisgICAgICAgIG1fbGFzdFVw
ZGF0ZWROb3dQbGF5aW5nRHVyYXRpb24gPSBkdXJhdGlvbjsKKworICAgIG1fbGFzdFVwZGF0ZWRO
b3dQbGF5aW5nSW5mb1VuaXF1ZUlkZW50aWZpZXIgPSBub3dQbGF5aW5nSW5mby0+dW5pcXVlSWRl
bnRpZmllcjsKKworICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IG5vd1BsYXlpbmdJbmZvLT5jdXJy
ZW50VGltZTsKKyAgICBpZiAoc3RkOjppc2Zpbml0ZShjdXJyZW50VGltZSkgJiYgY3VycmVudFRp
bWUgIT0gTWVkaWFQbGF5ZXI6OmludmFsaWRUaW1lKCkgJiYgbm93UGxheWluZ0luZm8tPnN1cHBv
cnRzU2Vla2luZykKKyAgICAgICAgbV9sYXN0VXBkYXRlZE5vd1BsYXlpbmdFbGFwc2VkVGltZSA9
IGN1cnJlbnRUaW1lOworCisgICAgbV9ub3dQbGF5aW5nQWN0aXZlID0gbm93UGxheWluZ0luZm8t
PmFsbG93c05vd1BsYXlpbmdDb250cm9sc1Zpc2liaWxpdHk7CisKKyAgICBHVmFyaWFudEJ1aWxk
ZXIgYnVpbGRlcjsKKyAgICBnX3ZhcmlhbnRfYnVpbGRlcl9pbml0KCZidWlsZGVyLCBHX1ZBUklB
TlRfVFlQRSgiYXtzdn0iKSk7CisgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAi
e3N2fSIsICJtcHJpczp0cmFja2lkIiwgZ192YXJpYW50X25ldygibyIsIERCVVNfTVBSSVNfVFJB
Q0tfUEFUSCkpOworICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAi
bXByaXM6bGVuZ3RoIiwgZ192YXJpYW50X25ld19pbnQ2NChub3dQbGF5aW5nSW5mby0+ZHVyYXRp
b24gKiAxMDAwMDAwKSk7CisgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2
fSIsICJ4ZXNhbTp0aXRsZSIsIGdfdmFyaWFudF9uZXdfc3RyaW5nKG5vd1BsYXlpbmdJbmZvLT50
aXRsZS51dGY4KCkuZGF0YSgpKSk7CisgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVy
LCAie3N2fSIsICJ4ZXNhbTphbGJ1bSIsIGdfdmFyaWFudF9uZXdfc3RyaW5nKG5vd1BsYXlpbmdJ
bmZvLT5hbGJ1bS51dGY4KCkuZGF0YSgpKSk7CisgICAgaWYgKG5vd1BsYXlpbmdJbmZvLT5hcnR3
b3JrKQorICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgIm1w
cmlzOmFydFVybCIsIGdfdmFyaWFudF9uZXdfc3RyaW5nKG5vd1BsYXlpbmdJbmZvLT5hcnR3b3Jr
LT5zcmMudXRmOCgpLmRhdGEoKSkpOworCisgICAgR1ZhcmlhbnRCdWlsZGVyIGFydGlzdEJ1aWxk
ZXI7CisgICAgZ192YXJpYW50X2J1aWxkZXJfaW5pdCgmYXJ0aXN0QnVpbGRlciwgR19WQVJJQU5U
X1RZUEUoImFzIikpOworICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYXJ0aXN0QnVpbGRlciwg
InMiLCBub3dQbGF5aW5nSW5mby0+YXJ0aXN0LnV0ZjgoKS5kYXRhKCkpOworICAgIGdfdmFyaWFu
dF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAieGVzYW06YXJ0aXN0IiwgZ192YXJpYW50
X2J1aWxkZXJfZW5kKCZhcnRpc3RCdWlsZGVyKSk7CisKKyAgICBtX25vd1BsYXlpbmdJbmZvID0g
Z192YXJpYW50X2J1aWxkZXJfZW5kKCZidWlsZGVyKTsKKworICAgIEdWYXJpYW50QnVpbGRlciBw
cm9wZXJ0aWVzQnVpbGRlcjsKKyAgICBnX3ZhcmlhbnRfYnVpbGRlcl9pbml0KCZwcm9wZXJ0aWVz
QnVpbGRlciwgR19WQVJJQU5UX1RZUEUoImF7c3Z9IikpOworICAgIGdfdmFyaWFudF9idWlsZGVy
X2FkZCgmcHJvcGVydGllc0J1aWxkZXIsICJ7c3Z9IiwgIk1ldGFkYXRhIiwgbV9ub3dQbGF5aW5n
SW5mby5nZXQoKSk7CisgICAgZW1pdFByb3BlcnRpZXNDaGFuZ2VkKGdfdmFyaWFudF9uZXcoIihz
YXtzdn1hcykiLCBEQlVTX01QUklTX1BMQVlFUl9JTlRFUkZBQ0UsICZwcm9wZXJ0aWVzQnVpbGRl
ciwgbnVsbHB0cikpOworfQorCitHVmFyaWFudCogTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6Omdl
dFBsYXliYWNrU3RhdHVzQXNHVmFyaWFudCgpCit7CisgICAgYXV0byogc2Vzc2lvbiA9IG5vd1Bs
YXlpbmdFbGlnaWJsZVNlc3Npb24oKTsKKyAgICBpZiAoIXNlc3Npb24pCisgICAgICAgIHJldHVy
biBnX3ZhcmlhbnRfbmV3X3N0cmluZygiU3RvcHBlZCIpOworCisgICAgc3dpdGNoIChzZXNzaW9u
LT5zdGF0ZSgpKSB7CisgICAgY2FzZSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU6OkF1dG9w
bGF5aW5nOgorICAgIGNhc2UgUGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpQbGF5aW5nOgor
ICAgICAgICByZXR1cm4gZ192YXJpYW50X25ld19zdHJpbmcoIlBsYXlpbmciKTsKKyAgICBjYXNl
IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6UGF1c2VkOgorICAgICAgICByZXR1cm4gZ192
YXJpYW50X25ld19zdHJpbmcoIlBhdXNlZCIpOworICAgIGNhc2UgUGxhdGZvcm1NZWRpYVNlc3Np
b246OlN0YXRlOjpJZGxlOgorICAgIGNhc2UgUGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpJ
bnRlcnJ1cHRlZDoKKyAgICAgICAgcmV0dXJuIGdfdmFyaWFudF9uZXdfc3RyaW5nKCJTdG9wcGVk
Iik7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitHVmFyaWFudCogTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OmdldEFjdGl2ZVNlc3Np
b25Qb3NpdGlvbigpCit7CisgICAgYXV0byogc2Vzc2lvbiA9IG5vd1BsYXlpbmdFbGlnaWJsZVNl
c3Npb24oKTsKKyAgICByZXR1cm4gZ192YXJpYW50X25ld19pbnQ2NChzZXNzaW9uID8gc2Vzc2lv
bi0+bm93UGxheWluZ0luZm8oKS0+Y3VycmVudFRpbWUgKiAxMDAwMDAwIDogMCk7Cit9CisKK3Zv
aWQgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OmRpc3BhdGNoKFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUgcGxhdGZvcm1Db21tYW5kLCBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6UmVtb3RlQ29tbWFuZEFyZ3VtZW50IGFyZ3VtZW50KQoreworICAgIG1faXNTZWVr
aW5nID0gcGxhdGZvcm1Db21tYW5kID09IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTZWVrVG9QbGF5
YmFja1Bvc2l0aW9uQ29tbWFuZDsKKyAgICBtX25vd1BsYXlpbmdNYW5hZ2VyLT5kaWRSZWNlaXZl
UmVtb3RlQ29udHJvbENvbW1hbmQocGxhdGZvcm1Db21tYW5kLCBhcmd1bWVudCk7Cit9CisKK3Zv
aWQgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OmVtaXRQcm9wZXJ0aWVzQ2hhbmdlZChHVmFyaWFu
dCogcGFyYW1ldGVycykKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJu
OworCisgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgIGlmICghZ19kYnVzX2Nv
bm5lY3Rpb25fZW1pdF9zaWduYWwobV9jb25uZWN0aW9uLmdldCgpLCBudWxscHRyLCBEQlVTX01Q
UklTX09CSkVDVF9QQVRILCAib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydGllcyIsICJQcm9w
ZXJ0aWVzQ2hhbmdlZCIsIHBhcmFtZXRlcnMsICZlcnJvci5vdXRQdHIoKSkpCisgICAgICAgIFdU
RkxvZ0Fsd2F5cygiRmFpbGVkIHRvIGVtaXQgTVBSSVMgcHJvcGVydHkgY2hhbmdlczogJXMiLCBl
cnJvciA/IGVycm9yLT5tZXNzYWdlIDogIlVua25vd24gRXJyb3IiKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKEdMSUIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL01lZGlhU2Vzc2lvbk1hbmFnZXJHTGliLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL01lZGlhU2Vzc2lvbk1hbmFnZXJHTGli
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjJmYzg0ZGQwMjRkZTg5NWVhZWQ4NWViY2I2YjI0M2IwOWU5MmFkNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvTWVk
aWFTZXNzaW9uTWFuYWdlckdMaWIuaApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqICBDb3B5cmln
aHQgKEMpIDIwMjEgSWdhbGlhIFMuTAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExl
c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRl
IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBVU0UoR0xJQikKKworI2luY2x1ZGUgIk5vd1BsYXlpbmdNYW5h
Z2VyLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCisjaW5jbHVk
ZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBO
b3dQbGF5aW5nSW5mbzsKKworY2xhc3MgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIKKyAgICA6IHB1
YmxpYyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIKKyAgICAsIHByaXZhdGUgTm93UGxheWlu
Z01hbmFnZXI6OkNsaWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIoKTsKKyAgICB+TWVkaWFTZXNzaW9uTWFuYWdl
ckdMaWIoKTsKKworICAgIGJvb2wgc2V0dXBNcHJpcygpOworCisgICAgdm9pZCBiZWdpbkludGVy
cnVwdGlvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSkgZmluYWw7CisK
KyAgICBib29sIGhhc0FjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9ub3dQbGF5aW5nQWN0aXZlOyB9CisgICAgU3RyaW5nIGxhc3RVcGRhdGVkTm93UGxheWlu
Z1RpdGxlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sYXN0VXBkYXRlZE5vd1BsYXlpbmdUaXRs
ZTsgfQorICAgIGRvdWJsZSBsYXN0VXBkYXRlZE5vd1BsYXlpbmdEdXJhdGlvbigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nRHVyYXRpb247IH0KKyAgICBkb3Vi
bGUgbGFzdFVwZGF0ZWROb3dQbGF5aW5nRWxhcHNlZFRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2xhc3RVcGRhdGVkTm93UGxheWluZ0VsYXBzZWRUaW1lOyB9CisgICAgTWVkaWFVbmlxdWVJ
ZGVudGlmaWVyIGxhc3RVcGRhdGVkTm93UGxheWluZ0luZm9VbmlxdWVJZGVudGlmaWVyKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9sYXN0VXBkYXRlZE5vd1BsYXlpbmdJbmZvVW5pcXVlSWRlbnRp
ZmllcjsgfQorICAgIGJvb2wgcmVnaXN0ZXJlZEFzTm93UGxheWluZ0FwcGxpY2F0aW9uKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9yZWdpc3RlcmVkQXNOb3dQbGF5aW5nQXBwbGljYXRpb247IH0K
KyAgICBib29sIGhhdmVFdmVyUmVnaXN0ZXJlZEFzTm93UGxheWluZ0FwcGxpY2F0aW9uKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9oYXZlRXZlclJlZ2lzdGVyZWRBc05vd1BsYXlpbmdBcHBsaWNh
dGlvbjsgfQorCisgICAgdm9pZCBidXNBY3F1aXJlZChHREJ1c0Nvbm5lY3Rpb24qKTsKKyAgICB2
b2lkIG5hbWVBY3F1aXJlZChHREJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24pIHsgbV9jb25uZWN0
aW9uID0gY29ubmVjdGlvbjsgfQorICAgIHZvaWQgbmFtZUxvc3QoR0RCdXNDb25uZWN0aW9uKik7
CisgICAgR1ZhcmlhbnQqIGdldE1ldGFkYXRhQXNHVmFyaWFudCgpIGNvbnN0IHsgcmV0dXJuIG1f
bm93UGxheWluZ0luZm8uZ2V0KCk7IH0KKyAgICBHVmFyaWFudCogZ2V0UGxheWJhY2tTdGF0dXNB
c0dWYXJpYW50KCk7CisgICAgR1ZhcmlhbnQqIGdldEFjdGl2ZVNlc3Npb25Qb3NpdGlvbigpOwor
ICAgIHZvaWQgZGlzcGF0Y2goUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21t
YW5kVHlwZSwgUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbW1hbmRBcmd1bWVudCk7CisK
K3Byb3RlY3RlZDoKKyAgICB2b2lkIHNjaGVkdWxlU2Vzc2lvblN0YXR1c1VwZGF0ZSgpIGZpbmFs
OworICAgIHZvaWQgdXBkYXRlTm93UGxheWluZ0luZm8oKTsKKworICAgIHZvaWQgcmVtb3ZlU2Vz
c2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIGZpbmFsOworICAgIHZvaWQgYWRkU2Vzc2lvbihQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIGZpbmFsOworICAgIHZvaWQgc2V0Q3VycmVudFNlc3Npb24o
UGxhdGZvcm1NZWRpYVNlc3Npb24mKSBmaW5hbDsKKworICAgIGJvb2wgc2Vzc2lvbldpbGxCZWdp
blBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXNz
aW9uV2lsbEVuZFBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiwgRGVsYXlDYWxsaW5nVXBk
YXRlTm93UGxheWluZykgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXNzaW9uU3RhdGVDaGFuZ2VkKFBs
YXRmb3JtTWVkaWFTZXNzaW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXNzaW9uRGlkRW5kUmVt
b3RlU2NydWJiaW5nKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikgZmluYWw7CisgICAgdm9pZCBjbGll
bnRDaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikgZmluYWw7Cisg
ICAgdm9pZCBzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpIGZpbmFsOworCisgICAgdmly
dHVhbCB2b2lkIHByb3ZpZGVQcmVzZW50aW5nQXBwbGljYXRpb25QSURJZk5lY2Vzc2FyeSgpIHsg
fQorCisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb24qIG5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24o
KTsKKworICAgIHZvaWQgYWRkU3VwcG9ydGVkQ29tbWFuZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZVN1cHBvcnRl
ZENvbW1hbmQoUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSkg
ZmluYWw7CisKKyAgICB2b2lkIHJlc2V0SGF2ZUV2ZXJSZWdpc3RlcmVkQXNOb3dQbGF5aW5nQXBw
bGljYXRpb25Gb3JUZXN0aW5nKCkgZmluYWwgeyBtX2hhdmVFdmVyUmVnaXN0ZXJlZEFzTm93UGxh
eWluZ0FwcGxpY2F0aW9uID0gZmFsc2U7IH07CisKK3ByaXZhdGU6CisgICAgdm9pZCBlbWl0UHJv
cGVydGllc0NoYW5nZWQoR1ZhcmlhbnQqKTsKKworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAor
ICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJN
ZWRpYVNlc3Npb25NYW5hZ2VyR0xpYiI7IH0KKyNlbmRpZgorCisgICAgLy8gTm93UGxheWluZ01h
bmFnZXI6OkNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUgdHlwZSwgY29uc3Qg
UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbW1hbmRBcmd1bWVudCYgYXJndW1lbnQpIGZp
bmFsIHsgcHJvY2Vzc0RpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZCh0eXBlLCBhcmd1bWVu
dCk7IH0KKworICAgIHVuc2lnbmVkIG1fb3duZXJJZCB7IDAgfTsKKyAgICB1bnNpZ25lZCBtX3Jv
b3RSZWdpc3RyYXRpb25JZCB7IDAgfTsKKyAgICB1bnNpZ25lZCBtX3BsYXllclJlZ2lzdHJhdGlv
bklkIHsgMCB9OworICAgIGJvb2wgbV9pc1NlZWtpbmcgeyBmYWxzZSB9OworICAgIEdSZWZQdHI8
R0RCdXNDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgR1JlZlB0cjxHREJ1c05vZGVJbmZv
PiBtX21wcmlzSW50ZXJmYWNlOworICAgIEdSZWZQdHI8R1ZhcmlhbnQ+IG1fbm93UGxheWluZ0lu
Zm87CisKKyAgICBib29sIG1fbm93UGxheWluZ0FjdGl2ZSB7IGZhbHNlIH07CisgICAgYm9vbCBt
X3JlZ2lzdGVyZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbiB7IGZhbHNlIH07CisgICAgYm9vbCBt
X2hhdmVFdmVyUmVnaXN0ZXJlZEFzTm93UGxheWluZ0FwcGxpY2F0aW9uIHsgZmFsc2UgfTsKKwor
ICAgIC8vIEZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkuCisgICAgU3RyaW5nIG1fbGFzdFVwZGF0
ZWROb3dQbGF5aW5nVGl0bGU7CisgICAgZG91YmxlIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nRHVy
YXRpb24geyBOQU4gfTsKKyAgICBkb3VibGUgbV9sYXN0VXBkYXRlZE5vd1BsYXlpbmdFbGFwc2Vk
VGltZSB7IE5BTiB9OworICAgIE1lZGlhVW5pcXVlSWRlbnRpZmllciBtX2xhc3RVcGRhdGVkTm93
UGxheWluZ0luZm9VbmlxdWVJZGVudGlmaWVyOworCisgICAgY29uc3Qgc3RkOjp1bmlxdWVfcHRy
PE5vd1BsYXlpbmdNYW5hZ2VyPiBtX25vd1BsYXlpbmdNYW5hZ2VyOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKEdMSUIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nbGliL1JlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9SZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xMzMxZGMyY2RiOWIwYTEzZDI0ZWQyM2JiMjdkNzY2NTEwZmU0ZGNiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9SZW1vdGVDb21tYW5k
TGlzdGVuZXJHTGliLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogIENvcHlyaWdodCAoQykg
MjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWIuaCIKKwor
I2lmIFVTRShHTElCKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliPiBSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliOjpjcmVh
dGUoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50JiBjbGllbnQpCit7CisgICAgcmV0dXJuIG1h
a2VVbmlxdWU8UmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYj4oY2xpZW50KTsKK30KKwordm9pZCBS
ZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliOjp1cGRhdGVTdXBwb3J0ZWRDb21tYW5kcygpCit7Cisg
ICAgLy8gUmVtb3RlIGNvbW1hbmRzIGFyZSBoYW5kbGVkIGFzIHVzZXItdHJpZ2dlcmVkIE1QUklT
IGFjdGlvbnMgaW4gTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIuCit9CisKK1JlbW90ZUNvbW1hbmRM
aXN0ZW5lckdMaWI6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWIoUmVtb3RlQ29tbWFuZExpc3Rl
bmVyQ2xpZW50JiBjbGllbnQpCisgICAgOiBSZW1vdGVDb21tYW5kTGlzdGVuZXIoY2xpZW50KQor
eworfQorCitSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliOjp+UmVtb3RlQ29tbWFuZExpc3RlbmVy
R0xpYigpID0gZGVmYXVsdDsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dsaWIvUmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ2xpYi9SZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTFiN2Q2MjljMzVlNmMxZDI4YWE5MmI2ZTNhYzZkOWU5YzMwY2Q0ZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvUmVtb3RlQ29tbWFuZExpc3RlbmVy
R0xpYi5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDIxIElnYWxp
YSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m
dHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIlJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oIgorCisjaWYgVVNFKEdMSUIpCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYiA6IHB1
YmxpYyBSZW1vdGVDb21tYW5kTGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYj4gY3JlYXRlKFJlbW90ZUNvbW1hbmRM
aXN0ZW5lckNsaWVudCYpOworICAgIFJlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWIoUmVtb3RlQ29t
bWFuZExpc3RlbmVyQ2xpZW50Jik7CisgICAgdmlydHVhbCB+UmVtb3RlQ29tbWFuZExpc3RlbmVy
R0xpYigpOworCitwcml2YXRlOgorICAgIHZvaWQgdXBkYXRlU3VwcG9ydGVkQ29tbWFuZHMoKSBm
aW5hbDsKKworICAgIGNvbnN0IFJlbW90ZUNvbW1hbmRzU2V0JiBkZWZhdWx0Q29tbWFuZHMoKTsK
K307CisKK30KKworI2VuZGlmIC8vIFVTRShHTElCKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5oCmluZGV4IGQ5OTBhM2RjNTU1ZmNk
ZGI2MTM3NGRiN2QwY2Q3NWRhOGRmNDk4OGYuLmQ0ZDkyZWRjYTdlZGVjNmFjNDcyZDRlYTJlOGMz
ZmJmYThlZmQxZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlT3JpZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZU9yaWVudGF0aW9uLmgKQEAgLTMwLDYgKzMwLDEyIEBACiAjaW5jbHVkZSAiRmxvYXRT
aXplLmgiCiAjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KIAorI2lmIFVTRShHTElCKQorI2lm
IGRlZmluZWQoTm9uZSkKKyN1bmRlZiBOb25lCisjZW5kaWYKKyNlbmRpZgorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHN0cnVjdCBJbWFnZU9yaWVudGF0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcAppbmRleCA5ZmEyNGJi
YzcwZTAxMGVlNjczM2Q3OTJmODZjYjY1YzcyYTU2YzBlLi4xODg2ODMzMTJiNDdiOGEyZTdkNGFi
NWY4NmIxNjJkMGM0NDJlOTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCkBAIC0xNzEsNiArMTcxLDcgQEAgZW51bSB7CiAg
ICAgUFJPUF9FTkFCTEVfSkFWQVNDUklQVF9NQVJLVVAsCiAgICAgUFJPUF9FTkFCTEVfTUVESUEs
CiAgICAgUFJPUF9NRURJQV9DT05URU5UX1RZUEVTX1JFUVVJUklOR19IQVJEV0FSRV9TVVBQT1JU
LAorICAgIFBST1BfRU5BQkxFX01FRElBX1NFU1NJT04sCiAgICAgTl9QUk9QRVJUSUVTLAogfTsK
IApAQCAtMzkwLDYgKzM5MSw5IEBAIHN0YXRpYyB2b2lkIHdlYktpdFNldHRpbmdzU2V0UHJvcGVy
dHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIGNvbnN0IEdWYWx1CiAgICAgY2FzZSBQ
Uk9QX01FRElBX0NPTlRFTlRfVFlQRVNfUkVRVUlSSU5HX0hBUkRXQVJFX1NVUFBPUlQ6CiAgICAg
ICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFy
ZHdhcmVfc3VwcG9ydChzZXR0aW5ncywgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSk7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9FTkFCTEVfTUVESUFfU0VTU0lPTjoKKyAgICAgICAg
d2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWFfc2Vzc2lvbihzZXR0aW5ncywgZ192YWx1
ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAg
ICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBh
cmFtU3BlYyk7CiAgICAgICAgIGJyZWFrOwpAQCAtNTg2LDYgKzU5MCw5IEBAIHN0YXRpYyB2b2lk
IHdlYktpdFNldHRpbmdzR2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQs
IEdWYWx1ZSogdmFsCiAgICAgY2FzZSBQUk9QX01FRElBX0NPTlRFTlRfVFlQRVNfUkVRVUlSSU5H
X0hBUkRXQVJFX1NVUFBPUlQ6CiAgICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1ZSwgd2Vi
a2l0X3NldHRpbmdzX2dldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9z
dXBwb3J0KHNldHRpbmdzKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9FTkFCTEVf
TUVESUFfU0VTU0lPTjoKKyAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0
X3NldHRpbmdzX2dldF9lbmFibGVfbWVkaWFfc2Vzc2lvbihzZXR0aW5ncykpOworICAgICAgICBi
cmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVS
VFlfSUQob2JqZWN0LCBwcm9wSWQsIHBhcmFtU3BlYyk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTU0
Niw2ICsxNTUzLDI0IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0KFdl
YktpdFNldHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAgICAgICAgbnVsbHB0ciwgLy8gQSBudWxs
IHN0cmluZyBmb3JjZXMgdGhlIGRlZmF1bHQgdmFsdWUuCiAgICAgICAgICAgICByZWFkV3JpdGVD
b25zdHJ1Y3RQYXJhbUZsYWdzKTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdFNldHRpbmdzOmVu
YWJsZS1tZWRpYS1zZXNzaW9uOgorICAgICAqCisgICAgICogRW5hYmxlIG9yIGRpc2FibGUgc3Vw
cG9ydCBmb3IgbWVkaWEgc2Vzc2lvbiBvbiBwYWdlcy4gVGhpcyBmZWF0dXJlIGFsbG93cyB3ZWIt
cGFnZXMgdG8KKyAgICAgKiBwcm92aWRlIGhpZ2ggbGV2ZWwgbWVkaWEgcGxheWJhY2sgZmVhdHVy
ZXMgc3VjaCBhcyBwbGF5bGlzdHMsIGN1c3RvbSBtZXRhZGF0YSBoYW5kbGluZyBhbmQKKyAgICAg
KiBwcmVzZW50YXRpb24gb3IgZXZlbiByZW1vdGUgY29udHJvbCBvZiBtZWRpYSBwbGF5ZXJzLgor
ICAgICAqCisgICAgICogU2VlIGFsc28gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhc2Vzc2lv
bi8KKyAgICAgKgorICAgICAqIFNpbmNlOiAyLjM0CisgICAgICovCisgICAgc09ialByb3BlcnRp
ZXNbUFJPUF9FTkFCTEVfTUVESUFfU0VTU0lPTl0gPSBnX3BhcmFtX3NwZWNfYm9vbGVhbigKKyAg
ICAgICAgImVuYWJsZS1tZWRpYS1zZXNzaW9uIiwKKyAgICAgICAgXygiRW5hYmxlIG1lZGlhIHNl
c3Npb24iKSwKKyAgICAgICAgXygiV2hldGhlciBtZWRpYSBzZXNzaW9uIHNob3VsZCBiZSBoYW5k
bGVkIiksCisgICAgICAgIFRSVUUsCisgICAgICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxh
Z3MpOworCiAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0aWVzKGdPYmplY3RDbGFz
cywgTl9QUk9QRVJUSUVTLCBzT2JqUHJvcGVydGllcyk7CiB9CiAKQEAgLTM4NTgsMyArMzg4Myw0
NCBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJp
bmdfaGFyZHdhcmVfc3VwcG9ydChXZWJLaXRTZQogICAgIHByaXYtPm1lZGlhQ29udGVudFR5cGVz
UmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0ID0gbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnRTdHJpbmcudXRmOCgpOwogICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhH
X09CSkVDVChzZXR0aW5ncyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfTUVESUFfQ09OVEVOVF9UWVBF
U19SRVFVSVJJTkdfSEFSRFdBUkVfU1VQUE9SVF0pOwogfQorCisvKioKKyAqIHdlYmtpdF9zZXR0
aW5nc19nZXRfZW5hYmxlX21lZGlhX3Nlc3Npb246CisgKiBAc2V0dGluZ3M6IGEgI1dlYktpdFNl
dHRpbmdzCisgKgorICogR2V0IHRoZSAjV2ViS2l0U2V0dGluZ3M6ZW5hYmxlLW1lZGlhLXNlc3Np
b24gcHJvcGVydHkuCisgKgorICogUmV0dXJuczogJVRSVUUgaWYgbWVkaWEgc2Vzc2lvbiBpcyBl
bmFibGVkIG9yICVGQUxTRSBvdGhlcndpc2UuCisgKgorICogU2luY2U6IDIuMzQKKyAqLworZ2Jv
b2xlYW4gd2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfbWVkaWFfc2Vzc2lvbihXZWJLaXRTZXR0
aW5ncyogc2V0dGluZ3MpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1NF
VFRJTkdTKHNldHRpbmdzKSwgRkFMU0UpOworCisgICAgcmV0dXJuIHNldHRpbmdzLT5wcml2LT5w
cmVmZXJlbmNlcy0+bWVkaWFTZXNzaW9uRW5hYmxlZCgpOworfQorCisvKioKKyAqIHdlYmtpdF9z
ZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhX3Nlc3Npb246CisgKiBAc2V0dGluZ3M6IGEgI1dlYktp
dFNldHRpbmdzCisgKiBAZW5hYmxlZDogVmFsdWUgdG8gYmUgc2V0CisgKgorICogU2V0IHRoZSAj
V2ViS2l0U2V0dGluZ3M6ZW5hYmxlLW1lZGlhLXNlc3Npb24gcHJvcGVydHkuCisgKgorICogU2lu
Y2U6IDIuMzQKKyAqLwordm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9zZXNz
aW9uKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncywgZ2Jvb2xlYW4gZW5hYmxlZCkKK3sKKyAgICBn
X3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19TRVRUSU5HUyhzZXR0aW5ncykpOworCisgICAgV2Vi
S2l0U2V0dGluZ3NQcml2YXRlKiBwcml2ID0gc2V0dGluZ3MtPnByaXY7CisgICAgYm9vbCBjdXJy
ZW50VmFsdWUgPSBwcml2LT5wcmVmZXJlbmNlcy0+bWVkaWFTZXNzaW9uRW5hYmxlZCgpOworICAg
IGlmIChjdXJyZW50VmFsdWUgPT0gZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJp
di0+cHJlZmVyZW5jZXMtPnNldE1lZGlhU2Vzc2lvbkVuYWJsZWQoZW5hYmxlZCk7CisgICAgcHJp
di0+cHJlZmVyZW5jZXMtPnNldE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRW5hYmxlZChlbmFibGVk
KTsKKyAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0TWVkaWFTZXNzaW9uUGxheWxpc3RFbmFibGVk
KGVuYWJsZWQpOworICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVChzZXR0aW5n
cyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfRU5BQkxFX01FRElBX1NFU1NJT05dKTsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuaAppbmRleCBk
Y2I1Y2UxYmZiMDUzZWYwMjAzZDZkYWNlODdmZTlhODI3YWQ1YmNmLi4xZjE4N2ZjMTgzOTQ3YWJk
ZjExZTFlMDY1NTk1MjM2MDg1NTlkODRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5oCkBAIC01MTMsNiArNTEzLDEzIEBAIFdFQktJVF9B
UEkgdm9pZAogd2Via2l0X3NldHRpbmdzX3NldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmlu
Z19oYXJkd2FyZV9zdXBwb3J0IChXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGdjaGFyICpjb250ZW50X3R5cGVzKTsKIAorV0VCS0lUX0FQSSBnYm9vbGVhbgord2Vi
a2l0X3NldHRpbmdzX2dldF9lbmFibGVfbWVkaWFfc2Vzc2lvbiAgICAgICAgICAgICAgICAgICAg
ICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0
X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWFfc2Vzc2lvbiAgICAgICAgICAgICAgICAgICAgICAg
KFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgZW5hYmxl
ZCk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiBXZWJLaXRTZXR0aW5nc19oICovCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00
LjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dl
YmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCA2NWViNWQ4YWE1NThiZTUwNWE5NDI4NDE2
MzI1ZTdmNTEwY2IxN2I4Li43NDI5M2FkNzZlMGQzOGM3NmU5MjdhZDY3NTYzM2M2OGI2ZmM4OWNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay00LjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKQEAgLTU3Miw2ICs1NzIsOCBAQCB3
ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9tZWRpYQogd2Via2l0X3NldHRpbmdzX3NldF9lbmFi
bGVfbWVkaWEKIHdlYmtpdF9zZXR0aW5nc19nZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJp
bmdfaGFyZHdhcmVfc3VwcG9ydAogd2Via2l0X3NldHRpbmdzX3NldF9tZWRpYV9jb250ZW50X3R5
cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0Cit3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJs
ZV9tZWRpYV9zZXNzaW9uCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9zZXNzaW9u
CiAKIDxTVUJTRUNUSU9OIFN0YW5kYXJkPgogV2ViS2l0U2V0dGluZ3NDbGFzcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRTZXR0aW5ncy5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRTZXR0aW5ncy5oCmluZGV4IDUzZDU1
Nzc1ZTdmMjg2YTIyMTAwNmJhMTE2OWVmNTgxYjU2ODFmMTcuLjE3ZGUzZTgzYjk4MTVmNTA1OTI5
NmZhODU3ZmQ5OTMyNmMxNzJhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvV2ViS2l0U2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdFNldHRpbmdzLmgKQEAgLTQ3MCw2ICs0NzAsMTMgQEAgV0VCS0lUX0FQSSB2
b2lkCiB3ZWJraXRfc2V0dGluZ3Nfc2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hh
cmR3YXJlX3N1cHBvcnQgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgZ2NoYXIgKmNvbnRlbnRfdHlwZXMpOwogCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRf
c2V0dGluZ3NfZ2V0X2VuYWJsZV9tZWRpYV9zZXNzaW9uICAgICAgICAgICAgICAgICAgICAgICAo
V2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfc2V0
dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9zZXNzaW9uICAgICAgICAgICAgICAgICAgICAgICAoV2Vi
S2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICBlbmFibGVkKTsK
KwogR19FTkRfREVDTFMKIAogI2VuZGlmIC8qIFdlYktpdFNldHRpbmdzX2ggKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25z
LnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rp
b25zLnR4dAppbmRleCAxM2NmYjA0ZjNjNDdiNjViMzE3ZTk4NzcyMTQwYjhhNWE0ODE2YzUwLi5m
ZDUyN2UzZTAwMzcyYjEzMTNiNjk3OGU1ODg5OTZmNmVjYThlYmVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMu
dHh0CkBAIC01NjYsNiArNTY2LDggQEAgd2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfbWVkaWEK
IHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhCiB3ZWJraXRfc2V0dGluZ3NfZ2V0X21l
ZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQKIHdlYmtpdF9zZXR0
aW5nc19zZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydAor
d2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfbWVkaWFfc2Vzc2lvbgord2Via2l0X3NldHRpbmdz
X3NldF9lbmFibGVfbWVkaWFfc2Vzc2lvbgogCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KIFdlYktp
dFNldHRpbmdzQ2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtl
IGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKaW5kZXggNDc2NjBjYjNjODU1YjUyZTI4
NWMzY2QzZDYwOTU3ODQ2N2YxOGQ2Mi4uZTI1YjUxNDAwNjk4OGM2YmJkNDY2YWQzODcwNzk4OWVm
Y2U0YmVlNiAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKKysrIGIv
U291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKQEAgLTE1Nyw2ICsxNTcsOCBAQCBXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5QVVRfVFlQRV9NT05USCBQUklWQVRF
IE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOUFVUX1RZUEVf
VElNRSBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X0lOUFVUX1RZUEVfV0VFSyBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQgUFJJVkFURSAke0VOQUJMRV9F
WFBFUklNRU5UQUxfRkVBVFVSRVN9KQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUo
RU5BQkxFX01FRElBX1NFU1NJT04gUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVS
RVN9KQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01FRElBX1NFU1NJ
T05fUExBWUxJU1QgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQogV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01FRElBX1NUUkVBTSBQUklWQVRF
ICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfTUhUTUwgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUgUFJJVkFURSBPTikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlv
bnNXUEUuY21ha2UKaW5kZXggZDU2ZGViODk2MjFjNTU1OTE1YmQ2M2FhZmU4OWYxOTM4ZGUxZDky
MC4uMzg4ODkyM2Q0NjExOGIwZWQ3MWY2NGRkYjk2OTJhNDFjMTlmYTM3YiAxMDA2NDQKLS0tIGEv
U291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNX
UEUuY21ha2UKQEAgLTUxLDYgKzUxLDggQEAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX0RBUktfTU9ERV9DU1MgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIgUFJJVkFURSBPTikKIFdFQktJVF9P
UFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9HUFVfUFJPQ0VTUyBQUklWQVRFIE9GRikK
IFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9MQVlPVVRfRk9STUFUVElO
R19DT05URVhUIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKK1dFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9TRVNTSU9OIFBSSVZBVEUg
JHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKK1dFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9TRVNTSU9OX1BMQVlMSVNUIFBSSVZBVEUgJHtFTkFCTEVf
RVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9NRURJQV9TVFJFQU0gUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVS
RVN9KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01IVE1MIFBSSVZB
VEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTkVUU0NBUEVf
UExVR0lOX0FQSSBQUklWQVRFIE9GRikKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRG
ZWF0dXJlcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQppbmRleCBk
NzhlNmQzNDVhMDAyNWI3MDNhYzhmMDM2MjIzZWVkM2E0NzUzOGY1Li45MjRjMGNiMWYyY2EwZmQ2
NzU4ZDNjYWRlYmE3NWYwZjQ3Y2U5YTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0
RmVhdHVyZXMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCkBA
IC0xNjksNiArMTY5LDkgQEAgbWFjcm8oV0VCS0lUX09QVElPTl9CRUdJTikKICAgICBXRUJLSVRf
T1BUSU9OX0RFRklORShFTkFCTEVfTUFUSE1MICJUb2dnbGUgTWF0aE1MIHN1cHBvcnQiIFBSSVZB
VEUgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX01FRElBX0NBUFRVUkUgIlRv
Z2dsZSBNZWRpYSBDYXB0dXJlIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJ
T05fREVGSU5FKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQgIlRvZ2dsZSBkZWZpbml0aW9u
IG9mIG1lZGlhIGNvbnRyb2xzIGluIEphdmFzY3JpcHQiIFBSSVZBVEUgT04pCisgICAgV0VCS0lU
X09QVElPTl9ERUZJTkUoRU5BQkxFX01FRElBX1NFU1NJT04gIlRvZ2dsZSBNZWRpYSBTZXNzaW9u
IHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQorICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9N
RURJQV9TRVNTSU9OX0NPT1JESU5BVE9SICJUb2dnbGUgTWVkaWEgU2Vzc2lvbiBDb29yZGluYXRv
ciBzdXBwb3J0IiBQUklWQVRFIE9GRikKKyAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVf
TUVESUFfU0VTU0lPTl9QTEFZTElTVCAiVG9nZ2xlIE1lZGlhIFNlc3Npb24gUGxheWxpc3Qgc3Vw
cG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX01FRElB
X1NPVVJDRSAiVG9nZ2xlIE1lZGlhIFNvdXJjZSBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBX
RUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfTUVESUFfU1RBVElTVElDUyAiVG9nZ2xlIE1lZGlh
IFN0YXRpc3RpY3Mgc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJ
TkUoRU5BQkxFX01FRElBX1NUUkVBTSAiVG9nZ2xlIE1lZGlhIFN0cmVhbSBzdXBwb3J0IiBQUklW
QVRFIE9GRikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBiNWU1Y2ExYjM4YmQ4M2VlMDY3NjE3NjlkOWMzYTk5MGIzMzg0MjgwLi5hZTMxYTVlMTFh
YmFjYjE1ZTY0NWVkNDQxNmFjYmQ3YmZiNTI2Yzk1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDgtMDIgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHTElCXSBN
ZWRpYVNlc3Npb24gaXMgbm90IGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNzk5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3NDAx
MTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFNldHRpbmdzLmNwcDoKKyAg
ICAgICAgKHRlc3RXZWJLaXRTZXR0aW5ncyk6IEFkZCB0ZXN0IGZvciBuZXcgc2V0dGluZy4KKyAg
ICAgICAgKiBmbGF0cGFrL2ZsYXRwYWt1dGlscy5weToKKyAgICAgICAgKFdlYmtpdEZsYXRwYWsu
cnVuX2luX3NhbmRib3gpOiBBbGxvdyBVSSBwcm9jZXNzIHRvIG93biBhIE1QUklTIERCdXMgbmFt
ZS4KKwogMjAyMS0wOC0wMSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNv
bT4KIAogICAgICAgICBbV2luXVtEdW1wUmVuZGVyVHJlZV0gQ2xlYW4gdXAgSW5kZXhlZERCIGZp
bGVzIGJldHdlZW4gdGVzdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggOWM5NjE3MjNlZGY3
M2U2OWNkYjJlOTQyYTlhYjgxNjRkM2IzNmZiMy4uYmExMjM5NGNjNTdmMmM0ZmJlMWZjNGY5Y2Rh
OTdmZjM0Yjc2NDhjNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHAKQEAgLTMxMSw2ICszMTEsMTEg
QEAgc3RhdGljIHZvaWQgdGVzdFdlYktpdFNldHRpbmdzKFRlc3QqLCBnY29uc3Rwb2ludGVyKQog
ICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhX2NhcGFiaWxpdGllcyhzZXR0aW5n
cywgVFJVRSk7CiAgICAgZ19hc3NlcnRfdHJ1ZSh3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9t
ZWRpYV9jYXBhYmlsaXRpZXMoc2V0dGluZ3MpKTsKIAorICAgIC8vIE1lZGlhIFNlc3Npb24gaXMg
ZW5hYmxlZCBieSBkZWZhdWx0CisgICAgZ19hc3NlcnRfdHJ1ZSh3ZWJraXRfc2V0dGluZ3NfZ2V0
X2VuYWJsZV9tZWRpYV9zZXNzaW9uKHNldHRpbmdzKSk7CisgICAgd2Via2l0X3NldHRpbmdzX3Nl
dF9lbmFibGVfbWVkaWFfc2Vzc2lvbihzZXR0aW5ncywgRkFMU0UpOworICAgIGdfYXNzZXJ0X2Zh
bHNlKHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX21lZGlhX3Nlc3Npb24oc2V0dGluZ3MpKTsK
KwogICAgIC8vIEZpbGUgYWNjZXNzIGZyb20gZmlsZSBVUkxzIGlzIG5vdCBhbGxvd2VkIGJ5IGRl
ZmF1bHQuCiAgICAgZ19hc3NlcnRfZmFsc2Uod2Via2l0X3NldHRpbmdzX2dldF9hbGxvd19maWxl
X2FjY2Vzc19mcm9tX2ZpbGVfdXJscyhzZXR0aW5ncykpOwogICAgIHdlYmtpdF9zZXR0aW5nc19z
ZXRfYWxsb3dfZmlsZV9hY2Nlc3NfZnJvbV9maWxlX3VybHMoc2V0dGluZ3MsIFRSVUUpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvZmxhdHBhay9mbGF0cGFrdXRpbHMucHkgYi9Ub29scy9mbGF0cGFrL2Zs
YXRwYWt1dGlscy5weQppbmRleCBiNGQxOWYwOTA3ZTEyMjg2NDI1MWEwNGNhM2JmNmIzYWZiZDE5
MTExLi44N2M1NDBhZTYyYWYyYzZkMjQ2NjA4NzdmY2NmMWQxYjNhM2I5MDVhIDEwMDY0NAotLS0g
YS9Ub29scy9mbGF0cGFrL2ZsYXRwYWt1dGlscy5weQorKysgYi9Ub29scy9mbGF0cGFrL2ZsYXRw
YWt1dGlscy5weQpAQCAtNzc0LDYgKzc3NCw3IEBAIGNsYXNzIFdlYmtpdEZsYXRwYWs6CiAgICAg
ICAgICAgICBmbGF0cGFrX2NvbW1hbmQuZXh0ZW5kKFsKICAgICAgICAgICAgICAgICAiLS1kZXZp
Y2U9YWxsIiwKICAgICAgICAgICAgICAgICAiLS1kZXZpY2U9ZHJpIiwKKyAgICAgICAgICAgICAg
ICAiLS1vd24tbmFtZT1vcmcubXByaXMuTWVkaWFQbGF5ZXIyLndlYmtpdCIsCiAgICAgICAgICAg
ICAgICAgIi0tc2hhcmU9aXBjIiwKICAgICAgICAgICAgICAgICAiLS1zaGFyZT1uZXR3b3JrIiwK
ICAgICAgICAgICAgICAgICAiLS1zb2NrZXQ9cHVsc2VhdWRpbyIsCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDNjNjU5OTM1
MjhkYmU5MzFiZjk2ZTQ2ZDZlMmQ2ZTBhNjIxOTM1OC4uZDA1Yzk4N2YxNGUzZDVmYzg3NGIzN2Y1
NWRkMTRkMjBlYjQwODM0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA4LTAyICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR0xJQl0gTWVk
aWFTZXNzaW9uIGlzIG5vdCBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTc5OTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNzQwMTE5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxh
dGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zOiBVbnNraXAgbWVkaWEtc2Vzc2lvbiB0ZXN0cy4K
KwogMjAyMS0wOC0wMSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4K
IAogICAgICAgICBbV2luQ2Fpcm9dIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjZWI1ZTM0OWMwZmU3Yjdm
MGZhYWI4ZDg4YjE5ZDIzN2IzOWVjYWYwLi44NzFkZjQ0MzI1MzY0MjM3ZDNmNWQzZWYzODYwYWM0
Y2Q1MTMyZGFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25z
CkBAIC0xMzI4LDExICsxMzI4LDYgQEAgd2Via2l0Lm9yZy9iLzIxNjM1OSBmYXN0L3RleHQvZW1v
amktc3ludGhlc2lzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KICMgRmFpbGluZyBzaW5jZSBh
ZGRlZCBpbiByMjY4MTM4Lgogd2Via2l0Lm9yZy9iLzIxNzgxNSBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtbWFza2luZy9jbGlwLXBhdGgvY2xpcC1wYXRoLWZpbHRlci1v
cmRlci5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLSMgTWVkaWFTZXNzaW9uIGlzIG5vdCBl
bmFibGVkIGluIEdUSy9XUEUuCi13ZWJraXQub3JnL2IvMjE3OTkxIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uLyBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzIxNzk5
MSBtZWRpYS9tZWRpYS1zZXNzaW9uLyBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzIxNzk5MSBmYXN0
L21lZGlhc2Vzc2lvbi8gWyBTa2lwIF0KLQogIyBUaGlzIHRlc3QgdXNlcyBhbiBNUEVHLTQgdmlk
ZW8KIG1lZGlhL3ZpZGVvLXNlZWstdG8tY3VycmVudC10aW1lLmh0bWwgWyBTa2lwIF0KIApkaWZm
IC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGQ4ODVjZjNjNTg2NjJkNjQ2ZTc5
Y2JkM2Y0YmMzM2IxMmY2NTdkMGYuLmJkOTJiNDM0ZTEyZjZmNGQzMzU4MmUwOTg1MzcyODkwMjE4
MTUwZTYgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAyMS0wOC0wMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+
CisKKyAgICAgICAgW0dMSUJdIE1lZGlhU2Vzc2lvbiBpcyBub3QgZW5hYmxlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3OTkxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MDc0MDExOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFbmFibGUgTWVkaWFTZXNzaW9uIGFzIGFuIGV4cGVyaW1lbnRhbCBi
dWlsZCBmZWF0dXJlIGluIENNYWtlIHBvcnRzLiBUaGUgc3BlYyBzdGF0dXMgaXMKKyAgICAgICAg
Y3VycmVudGx5IERyYWZ0LgorCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21h
a2U6CisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2U6CisgICAgICAgICog
U291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlOgorCiAyMDIxLTA3LTMwICBBZHJpYW4g
UGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBG
aXggZmFsbGJhY2sgbWV0aG9kcyBpbiB0aGUgbGliZ2NyeXB0IGZpbmQgbW9kdWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434761</attachid>
            <date>2021-08-02 09:39:47 -0700</date>
            <delta_ts>2021-08-15 11:20:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217991-20210802093945.patch</filename>
            <type>text/plain</type>
            <size>62551</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUwMmRkMmY1ZTQwOWY4ZmM0ZjRiYzMw
NjE0MTEyYzQ5MDZiODBjMDYuLjk5YzM1Yjc3NmI2ZGFiMmQ4NjllN2U0ZDE0MTk4MWI4ODQxZTRk
MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDgtMDIgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHTElCXSBNZWRpYVNlc3Npb24gaXMgbm90
IGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzk5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3NDAxMTk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJpdmUtYnkgWDExIHVuZGVmcyBu
ZWVkZWQgYWZ0ZXIgR1RLIHVuaWZpZWQgc291cmNlcyBzaGlmdGVkLCBkdWUgdG8gbmV3IGZpbGVz
IGJlaW5nIGFkZGVkCisgICAgICAgIHRvIHRoZSBidWlsZC4gQWxzbyBhZGRlZCBHUmVmUHRyIHRl
bXBsYXRlIHNwZWNpYWxpemF0aW9uIGZvciBHREJ1c05vZGVJbmZvLgorCisgICAgICAgICogd3Rm
L1RocmVhZFNwZWNpZmljLmg6CisgICAgICAgICogd3RmL1RocmVhZGluZy5oOgorICAgICAgICAq
IHd0Zi9nbGliL0dSZWZQdHIuY3BwOgorICAgICAgICAoV1RGOjpyZWZHUHRyKToKKyAgICAgICAg
KFdURjo6ZGVyZWZHUHRyKToKKyAgICAgICAgKiB3dGYvZ2xpYi9HUmVmUHRyLmg6CisKIDIwMjEt
MDgtMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJv
ZHVjZSBhbiBleHBlcmltZW50YWwgZmVhdHVyZSB0byB0b2dnbGUgV2ViUlRDIHNvY2tldCBwcm94
eWluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDMyOWU3Njc0ODZlZTAzNDNjZDlkYjY1NmJkNGMwZjQxZWY4MDA4
ZWEuLmE1NGFiYWFjZjBiNWUwYjg0YTAxZjViZDZhY2FkZTU1MDY0NThlMTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw2NiBAQAorMjAyMS0wOC0wMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5k
QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dMSUJdIE1lZGlhU2Vzc2lvbiBpcyBub3QgZW5hYmxl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3OTkx
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDc0MDExOT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnRhdGlvbiBvZiBhIEdMaWIgTWVk
aWFTZXNzaW9uTWFuYWdlciwgYWJsZSB0byBwcm92aWRlIGEgTVBSSVMgREJ1cyBzZXJ2aWNlLCBz
byB0aGF0CisgICAgICAgIHRoaXJkLXBhcnR5IGhvc3QgdG9vbHMgY2FuIHF1ZXJ5IHRoZSBtZWRp
YSBwbGF5YmFjayBzdGF0dXMgYW5kIHBvdGVudGlhbGx5IGVtaXQgcmVtb3RlCisgICAgICAgIGNv
bnRyb2wgY29tbWFuZHMgYXMgd2VsbC4KKworICAgICAgICBDb3ZlcmVkIGJ5IG1lZGlhLXNlc3Np
b24gbGF5b3V0IHRlc3RzIG5vdyB1bnNraXBwZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYUltYWdlLmg6CisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAg
ICAgICogUGxhdGZvcm1XUEUuY21ha2U6CisgICAgICAgICogcGxhdGZvcm0vUmVtb3RlQ29tbWFu
ZExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6
cmVzZXRDcmVhdGlvbkZ1bmN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Tb3VyY2VzR0xpYi50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nbGliL01lZGlhU2Vzc2lvbk1hbmFnZXJH
TGliLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xp
Yjo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uTWFuYWdlckdMaWI6On5NZWRpYVNlc3Npb25NYW5hZ2VyR0xpYik6CisgICAgICAgIChXZWJD
b3JlOjpnZXRDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZU1ldGhvZENhbGwpOgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6aGFuZGxl
R2V0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6aGFuZGxlU2V0UHJvcGVydHkpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnNldHVwTXByaXMpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OmJ1c0FjcXVpcmVkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpuYW1lTG9zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6YmVnaW5JbnRlcnJ1cHRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnNjaGVkdWxlU2Vz
c2lvblN0YXR1c1VwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2Vy
R0xpYjo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbk1hbmFnZXJHTGliOjpzZXNzaW9uRGlkRW5kUmVtb3RlU2NydWJiaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjphZGRTZXNzaW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpyZW1vdmVTZXNzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpzZXRDdXJyZW50U2Vzc2lv
bik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6c2Vzc2lvbldp
bGxFbmRQbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xp
Yjo6c2Vzc2lvblN0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25N
YW5hZ2VyR0xpYjo6Y2xpZW50Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6c2Vzc2lvbkNhblByb2R1Y2VBdWRpb0NoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OmFkZFN1cHBv
cnRlZENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6
OnJlbW92ZVN1cHBvcnRlZENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
TWFuYWdlckdMaWI6Om5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpnZXRQbGF5YmFja1N0YXR1c0Fz
R1ZhcmlhbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6Omdl
dEFjdGl2ZVNlc3Npb25Qb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25N
YW5hZ2VyR0xpYjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFu
YWdlckdMaWI6OmVtaXRQcm9wZXJ0aWVzQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vZ2xpYi9NZWRpYVNlc3Npb25NYW5hZ2VyR0xpYi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpuYW1lQWNxdWlyZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OmdldE1ldGFkYXRhQXNHVmFyaWFudCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6cHJvdmlkZVBy
ZXNlbnRpbmdBcHBsaWNhdGlvblBJRElmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
bGliL1JlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliOjp1cGRhdGVTdXBwb3J0ZWRDb21tYW5kcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliOjpSZW1vdGVDb21tYW5k
TGlzdGVuZXJHTGliKToKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL1JlbW90ZUNvbW1hbmRMaXN0
ZW5lckdMaWIuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmll
bnRhdGlvbi5oOgorCiAyMDIxLTA4LTAyICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbY3NzLXNjcm9sbC1zbmFwXSBDb25zaWRlciBhbGwgc25hcCBh
cmVhcyBhdCBhIGdpdmVuIHNuYXAgb2Zmc2V0IHdoZW4gc25hcHBpbmcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzlk
Yjc1NjRmMzcyOTc2NDQ0MWNlZTE3ZDA5MGIxY2I0MzIwODM1OC4uZmFjMWExOTY0N2YyODQwYmFk
NWUzMGQ2NjdlNDE0MDYyMjY5YzBjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMS0w
OC0wMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0dMSUJdIE1lZGlhU2Vzc2lvbiBpcyBub3QgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3OTkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83MDc0MDExOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSBydW50aW1lIHNldHRpbmcgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyBNZWRpYVNl
c3Npb24gc3VwcG9ydC4gVGhpcyBpcyBlbmFibGVkIGJ5CisgICAgICAgIGRlZmF1bHQsIGJ1dCBv
bmx5IGlmIEVOQUJMRV9NRURJQV9TRVNTSU9OIHdhcyBlbmFibGVkIGF0IGJ1aWxkIHRpbWUuIEl0
IGlzIGN1cnJlbnRseSBmbGFnZ2VkCisgICAgICAgIGFzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJl
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcDoKKyAg
ICAgICAgKHdlYktpdFNldHRpbmdzU2V0UHJvcGVydHkpOgorICAgICAgICAod2ViS2l0U2V0dGlu
Z3NHZXRQcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3NfY2xhc3NfaW5pdCk6Cisg
ICAgICAgICh3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9tZWRpYV9zZXNzaW9uKToKKyAgICAg
ICAgKHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhX3Nlc3Npb24pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQ6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS93cGUvV2ViS2l0U2V0dGluZ3MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0OgorCiAyMDIxLTA4LTAyICBNYXJ0aW4gUm9i
aW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLXNjcm9sbC1zbmFw
XSBDb25zaWRlciBhbGwgc25hcCBhcmVhcyBhdCBhIGdpdmVuIHNuYXAgb2Zmc2V0IHdoZW4gc25h
cHBpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZFNwZWNpZmljLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWRTcGVjaWZpYy5oCmluZGV4IGQ3YjBlNmYxZGQ1NWJlMmM1OWZlNjQ1
ODZiM2YzZTkwNDFmZWZmMzQuLjdiNDJkMGNhZjRjMWQ1YTg5YTc0MjIzMjZmYmYxNGFlNmZjNTJi
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZFNwZWNpZmljLmgKKysrIGIvU291
cmNlL1dURi93dGYvVGhyZWFkU3BlY2lmaWMuaApAQCAtNDYsNiArNDYsMTUgQEAKICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCisjaWYg
VVNFKEdMSUIpCisjaWYgZGVmaW5lZChUcnVlKQorI3VuZGVmIFRydWUKKyNlbmRpZgorI2lmIGRl
ZmluZWQoRmFsc2UpCisjdW5kZWYgRmFsc2UKKyNlbmRpZgorI2VuZGlmCisKIG5hbWVzcGFjZSBX
VEYgewogCiBlbnVtIGNsYXNzIENhbkJlR0NUaHJlYWQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvVGhyZWFkaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAppbmRleCBjZmFl
NDJhNDQxN2EwMTY3MjBiMDNjZTYzYzFkNzNmMmRkOTkzMmZlLi4zMWVhYjQ3YjQwNmMwMjYyMjA5
YWZkMjk0YzBkM2NiOWE2Zjk4MjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRp
bmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaApAQCAtNjEsNiArNjEsMTIgQEAK
ICNpbmNsdWRlIDxkaXNwYXRjaC9kaXNwYXRjaC5oPgogI2VuZGlmCiAKKyNpZiBVU0UoR0xJQikK
KyNpZiBkZWZpbmVkKE5vbmUpCisjdW5kZWYgTm9uZQorI2VuZGlmCisjZW5kaWYKKwogbmFtZXNw
YWNlIFdURiB7CiAKIGNsYXNzIEFic3RyYWN0TG9ja2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvZ2xpYi9HUmVmUHRyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1JlZlB0ci5jcHAK
aW5kZXggYTBlNTJkZjVmNzVmY2Y4MzA4ZGU2MGEzNDZlYjlmODk2YzAyOWFjYS4uMWI5YWRlM2Y5
MzZlZTU2NGQzODJjMDdlZjk2NjU3NmFiNjYxOWI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvZ2xpYi9HUmVmUHRyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dSZWZQdHIuY3Bw
CkBAIC0xOTUsNiArMTk1LDE5IEBAIHRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdEYXRlVGlt
ZSogcHRyKQogICAgICAgICBnX2RhdGVfdGltZV91bnJlZihwdHIpOwogfQogCit0ZW1wbGF0ZSA8
PiBHREJ1c05vZGVJbmZvKiByZWZHUHRyKEdEQnVzTm9kZUluZm8qIHB0cikKK3sKKyAgICBpZiAo
cHRyKQorICAgICAgICBnX2RidXNfbm9kZV9pbmZvX3JlZihwdHIpOworICAgIHJldHVybiBwdHI7
Cit9CisKK3RlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdEQnVzTm9kZUluZm8qIHB0cikKK3sK
KyAgICBpZiAocHRyKQorICAgICAgICBnX2RidXNfbm9kZV9pbmZvX3VucmVmKHB0cik7Cit9CisK
ICNpZiBIQVZFKEdVUkkpCiB0ZW1wbGF0ZSA8PiBHVXJpKiByZWZHUHRyKEdVcmkqIHB0cikKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1JlZlB0ci5oIGIvU291cmNlL1dURi93
dGYvZ2xpYi9HUmVmUHRyLmgKaW5kZXggZmQyZjYwNWFjNDE1YjljMjA4MmFiOTI3MjI0YWMzZDBk
NjI3ZWIwMS4uODI5NGI1NTc3NTVhOTNjNmZhMzA4ZDQ3YzdhM2Y1ZTgzMTdiMjMwYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvZ2xpYi9HUmVmUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYv
Z2xpYi9HUmVmUHRyLmgKQEAgLTI0LDkgKzI0LDEwIEBACiAKICNpZiBVU0UoR0xJQikKIAotI2lu
Y2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUg
PGdpby9naW8uaD4KICNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hUcmFpdHMu
aD4KIAogZXh0ZXJuICJDIiB2b2lkIGdfb2JqZWN0X3VucmVmKGdwb2ludGVyKTsKIGV4dGVybiAi
QyIgZ3BvaW50ZXIgZ19vYmplY3RfcmVmX3NpbmsoZ3BvaW50ZXIpOwpAQCAtMjQyLDYgKzI0Myw4
IEBAIHRlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSBHTWFwcGVkRmlsZSogcmVmR1B0cihH
TWFwcGVkRmlsZSopOwogdGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVyZWZH
UHRyKEdNYXBwZWRGaWxlKik7CiB0ZW1wbGF0ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUgR0RhdGVU
aW1lKiByZWZHUHRyKEdEYXRlVGltZSogcHRyKTsKIHRlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGRlcmVmR1B0cihHRGF0ZVRpbWUqIHB0cik7Cit0ZW1wbGF0ZSA8PiBXVEZfRVhQ
T1JUX1BSSVZBVEUgR0RCdXNOb2RlSW5mbyogcmVmR1B0cihHREJ1c05vZGVJbmZvKiBwdHIpOwor
dGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVyZWZHUHRyKEdEQnVzTm9kZUlu
Zm8qIHB0cik7CiAKICNpZiBIQVZFKEdVUkkpCiB0ZW1wbGF0ZSA8PiBXVEZfRVhQT1JUX1BSSVZB
VEUgR1VyaSogcmVmR1B0cihHVXJpKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYUltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYUltYWdlLmgKaW5kZXggYTI2YTA1MDdiMzMwYWZjNDJhYjRiM2NlMGE1
N2QwNTBlMzg1ZTg5NS4uY2I0MTI5MjFlMjM4ZmRmNjQyMjM5Mzg5ZjE1MzkwYWU5Nzk4ZTMxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFJbWFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhSW1hZ2Uu
aApAQCAtMjcsNiArMjcsOSBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAKKyNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBNZWRpYUltYWdlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1H
VEsuY21ha2UKaW5kZXggNDFjZDZhNmNhMTA3NTYzYjQwZTNhOGE4Njg5YjI0MjNlMWU2Y2M3MC4u
MTExM2E3NDRjNDRmMTc1MzNmNTM4MjFhMWVmNjRjY2MyYjA2NWQ4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1HVEsuY21ha2UKQEAgLTE5LDcgKzE5LDkgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRF
X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vZWRpdGluZy9hdGsiCiAg
ICAgIiR7V0VCQ09SRV9ESVJ9L3BhZ2UvZ3RrIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9hZHdhaXRhIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9hdWRpby9nbGliIgogICAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9nZW5lcmljIgorICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS9nbGliIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ndGsiCiAgICAgIiR7
V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2VnbCIKICAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vZ3JhcGhpY3MvZ2x4IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCBiYzEz
ZDU2NGVkYWFlY2UyNmM0ODhiNGQ3YTZmNjhlODU2OGRmNDY3Li42MzcwNjliZGRhN2I4ZWU4YzY2
NTdiNjlhMjFhYTExYjMwYjYzOGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bVdQRS5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMTks
NiArMTksOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1VOSUZJRURfU09VUkNFX0xJU1RfRklMRVMK
IGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7
V0VCQ09SRV9ESVJ9L2FjY2Vzc2liaWxpdHkvYXRrIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS9hZHdhaXRhIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9hdWRpby9nbGliIgor
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9nbGliIgogICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS9ncmFwaGljcy9lZ2wiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBo
aWNzL2Vwb3h5IgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcApp
bmRleCBjZTE0NTc2NTBlMzIzMDUzNGZjNmJkZjNiZjJkMTMxZjIzMjU1YmQ1Li5jYzc5Yzg1ZmI4
ZDUxMDliNWQyNjY0NDUyNmQ0YmYwOGNjOGNjOThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKQEAgLTMwLDYgKzMwLDEwIEBACiAj
aW5jbHVkZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVyQ29jb2EuaCIKICNlbmRpZgogCisjaWYgVVNF
KEdMSUIpCisjaW5jbHVkZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYi5oIgorI2VuZGlmCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6Q3Jl
YXRpb25GdW5jdGlvbiYgcmVtb3RlQ29tbWFuZExpc3RlbmVyQ3JlYXRpb25GdW5jdGlvbigpCkBA
IC00OCw4ICs1MiwxMSBAQCB2b2lkIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6cmVzZXRDcmVhdGlv
bkZ1bmN0aW9uKCkKICAgICByZW1vdGVDb21tYW5kTGlzdGVuZXJDcmVhdGlvbkZ1bmN0aW9uKCkg
PSBbXSAoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50JiBjbGllbnQpIHsKICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICAgICAgcmV0dXJuIFJlbW90ZUNvbW1hbmRMaXN0ZW5lckNvY29hOjpjcmVh
dGUoY2xpZW50KTsKKyNlbGlmIFVTRShHTElCKQorICAgICAgICByZXR1cm4gUmVtb3RlQ29tbWFu
ZExpc3RlbmVyR0xpYjo6Y3JlYXRlKGNsaWVudCk7CiAjZWxzZQotICAgICAgICByZXR1cm4gUmVt
b3RlQ29tbWFuZExpc3RlbmVyOjpjcmVhdGUoY2xpZW50KTsKKyAgICAgICAgVU5VU0VEX1BBUkFN
KGNsaWVudCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogI2VuZGlmCiAgICAgfTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NvdXJjZXNHTGliLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NvdXJjZXNHTGliLnR4dAppbmRleCBkZjI3M2U1OGFkZmE2MWM2
ZDI1MzMyYjMyMWY2ZjdkNzc3NWM2MTY3Li4yNTA5OTQ2NDA4NzU4MmNhMDE1NzQzNmRiMTYwZjlm
YmNkYzc5MTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Tb3VyY2VzR0xp
Yi50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU291cmNlc0dMaWIudHh0CkBAIC0y
MiwxMSArMjIsMTMgQEAKIC8vIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogcGxh
dGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dMaWIuY3BwCitwbGF0Zm9ybS9hdWRpby9nbGliL01l
ZGlhU2Vzc2lvbk1hbmFnZXJHTGliLmNwcAogCiBwbGF0Zm9ybS9nbGliL0ZpbGVNb25pdG9yR0xp
Yi5jcHAKIHBsYXRmb3JtL2dsaWIvS2V5ZWREZWNvZGVyR2xpYi5jcHAKIHBsYXRmb3JtL2dsaWIv
S2V5ZWRFbmNvZGVyR2xpYi5jcHAKIHBsYXRmb3JtL2dsaWIvTG93UG93ZXJNb2RlTm90aWZpZXJH
TGliLmNwcAorcGxhdGZvcm0vZ2xpYi9SZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliLmNwcAogcGxh
dGZvcm0vZ2xpYi9TaGFyZWRCdWZmZXJHbGliLmNwcAogcGxhdGZvcm0vZ2xpYi9Vc2VyQWdlbnRH
TGliLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAppbmRleCAxODExZDliNmNjMzU2MmFi
NGZjZWFhMzJhNjhjNDFkNjlkZTkyNDY3Li5mZTQ3NTcyNDk5YzAzNWVlYmNiMTNiNTNiYmFjODJl
YmU2ZjU1ZWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTc0LDEyICs3NCwxMiBA
QCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIqIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cjo6c2hhcmVkTWFuYWdlcklmRXhpc3RzKAogICAgIHJldHVybiBzaGFyZWRQbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIoKS5nZXQoKTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkKKyNpZiAh
UExBVEZPUk0oQ09DT0EpICYmICFVU0UoR0xJQikKIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXI+IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y3JlYXRlKCkK
IHsKICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cj4obmV3IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcik7CiB9Ci0jZW5kaWYgLy8gIVBMQVRG
T1JNKENPQ09BKQorI2VuZGlmIC8vICFQTEFURk9STShDT0NPQSkgJiYgIVVTRShHTElCKQogCiB2
b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlTm93UGxheWluZ0luZm9JZk5l
Y2Vzc2FyeSgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9n
bGliL01lZGlhU2Vzc2lvbk1hbmFnZXJHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dsaWIvTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlNzFl
OWQyZGMyZDA1NjI4N2E4YzE0ZWFkZjY3YzczNDdhOTNhODAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL01lZGlhU2Vzc2lvbk1hbmFnZXJHTGli
LmNwcApAQCAtMCwwICsxLDU4OCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlh
IFMuTAorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliLmgiCisKKyNpZiBVU0UoR0xJQikK
KworI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgorI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKKyNpbmNs
dWRlICJNZWRpYVN0cmF0ZWd5LmgiCisjaW5jbHVkZSAiTm93UGxheWluZ0luZm8uaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2ll
cy5oIgorCitzdGF0aWMgY29uc3QgY2hhciBzX21wcmlzSW50ZXJmYWNlW10gPQorICAgICI8bm9k
ZT4iCisgICAgICAgICI8aW50ZXJmYWNlIG5hbWU9XCJvcmcubXByaXMuTWVkaWFQbGF5ZXIyXCI+
IgorICAgICAgICAgICAgIjxhbm5vdGF0aW9uIG5hbWU9XCJvcmcuZnJlZWRlc2t0b3AuREJ1cy5Q
cm9wZXJ0eS5FbWl0c0NoYW5nZWRTaWduYWxcIiB2YWx1ZT1cInRydWVcIi8+IgorICAgICAgICAg
ICAgIjxtZXRob2QgbmFtZT1cIlJhaXNlXCIvPiIKKyAgICAgICAgICAgICI8bWV0aG9kIG5hbWU9
XCJRdWl0XCIvPiIKKyAgICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIkNhblF1aXRcIiB0eXBl
PVwiYlwiIGFjY2Vzcz1cInJlYWRcIi8+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwi
Q2FuUmFpc2VcIiB0eXBlPVwiYlwiIGFjY2Vzcz1cInJlYWRcIi8+IgorICAgICAgICAgICAgIjxw
cm9wZXJ0eSBuYW1lPVwiSGFzVHJhY2tMaXN0XCIgdHlwZT1cImJcIiBhY2Nlc3M9XCJyZWFkXCIv
PiIKKyAgICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIklkZW50aXR5XCIgdHlwZT1cInNcIiBh
Y2Nlc3M9XCJyZWFkXCIvPiIKKyAgICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIkRlc2t0b3BF
bnRyeVwiIHR5cGU9XCJzXCIgYWNjZXNzPVwicmVhZFwiLz4iCisgICAgICAgICAgICAiPHByb3Bl
cnR5IG5hbWU9XCJTdXBwb3J0ZWRVcmlTY2hlbWVzXCIgdHlwZT1cImFzXCIgYWNjZXNzPVwicmVh
ZFwiLz4iCisgICAgICAgICAgICAiPHByb3BlcnR5IG5hbWU9XCJTdXBwb3J0ZWRNaW1lVHlwZXNc
IiB0eXBlPVwiYXNcIiBhY2Nlc3M9XCJyZWFkXCIvPiIKKyAgICAgICAgIjwvaW50ZXJmYWNlPiIK
KyAgICAgICAgIjxpbnRlcmZhY2UgbmFtZT1cIm9yZy5tcHJpcy5NZWRpYVBsYXllcjIuUGxheWVy
XCI+IgorICAgICAgICAgICAgIjxtZXRob2QgbmFtZT1cIk5leHRcIi8+IgorICAgICAgICAgICAg
IjxtZXRob2QgbmFtZT1cIlByZXZpb3VzXCIvPiIKKyAgICAgICAgICAgICI8bWV0aG9kIG5hbWU9
XCJQYXVzZVwiLz4iCisgICAgICAgICAgICAiPG1ldGhvZCBuYW1lPVwiUGxheVBhdXNlXCIvPiIK
KyAgICAgICAgICAgICI8bWV0aG9kIG5hbWU9XCJTdG9wXCIvPiIKKyAgICAgICAgICAgICI8bWV0
aG9kIG5hbWU9XCJQbGF5XCIvPiIKKyAgICAgICAgICAgICI8bWV0aG9kIG5hbWU9XCJTZWVrXCI+
IgorICAgICAgICAgICAgICAgICI8YXJnIGRpcmVjdGlvbj1cImluXCIgdHlwZT1cInhcIiBuYW1l
PVwiT2Zmc2V0XCIvPiIKKyAgICAgICAgICAgICI8L21ldGhvZD4iCisgICAgICAgICAgICAiPG1l
dGhvZCBuYW1lPVwiU2V0UG9zaXRpb25cIj4iCisgICAgICAgICAgICAgICAgIjxhcmcgZGlyZWN0
aW9uPVwiaW5cIiB0eXBlPVwib1wiIG5hbWU9XCJUcmFja0lkXCIvPiIKKyAgICAgICAgICAgICAg
ICAiPGFyZyBkaXJlY3Rpb249XCJpblwiIHR5cGU9XCJ4XCIgbmFtZT1cIlBvc2l0aW9uXCIvPiIK
KyAgICAgICAgICAgICI8L21ldGhvZD4iCisgICAgICAgICAgICAiPG1ldGhvZCBuYW1lPVwiT3Bl
blVyaVwiPiIKKyAgICAgICAgICAgICAgICAiPGFyZyBkaXJlY3Rpb249XCJpblwiIHR5cGU9XCJz
XCIgbmFtZT1cIlVyaVwiLz4iCisgICAgICAgICAgICAiPC9tZXRob2Q+IgorICAgICAgICAgICAg
Ijxwcm9wZXJ0eSBuYW1lPVwiUGxheWJhY2tTdGF0dXNcIiB0eXBlPVwic1wiIGFjY2Vzcz1cInJl
YWRcIj4iCisgICAgICAgICAgICAgICAgIjxhbm5vdGF0aW9uIG5hbWU9XCJvcmcuZnJlZWRlc2t0
b3AuREJ1cy5Qcm9wZXJ0eS5FbWl0c0NoYW5nZWRTaWduYWxcIiB2YWx1ZT1cInRydWVcIi8+Igor
ICAgICAgICAgICAgIjwvcHJvcGVydHk+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwi
UmF0ZVwiIHR5cGU9XCJkXCIgYWNjZXNzPVwicmVhZHdyaXRlXCI+IgorICAgICAgICAgICAgICAg
ICI8YW5ub3RhdGlvbiBuYW1lPVwib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydHkuRW1pdHND
aGFuZ2VkU2lnbmFsXCIgdmFsdWU9XCJ0cnVlXCIvPiIKKyAgICAgICAgICAgICI8L3Byb3BlcnR5
PiIKKyAgICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIk1ldGFkYXRhXCIgdHlwZT1cImF7c3Z9
XCIgYWNjZXNzPVwicmVhZFwiPiIKKyAgICAgICAgICAgICAgICAiPGFubm90YXRpb24gbmFtZT1c
Im9yZy5mcmVlZGVza3RvcC5EQnVzLlByb3BlcnR5LkVtaXRzQ2hhbmdlZFNpZ25hbFwiIHZhbHVl
PVwidHJ1ZVwiLz4iCisgICAgICAgICAgICAiPC9wcm9wZXJ0eT4iCisgICAgICAgICAgICAiPHBy
b3BlcnR5IG5hbWU9XCJWb2x1bWVcIiB0eXBlPVwiZFwiIGFjY2Vzcz1cInJlYWR3cml0ZVwiPiIK
KyAgICAgICAgICAgICAgICAiPGFubm90YXRpb24gbmFtZT1cIm9yZy5mcmVlZGVza3RvcC5EQnVz
LlByb3BlcnR5LkVtaXRzQ2hhbmdlZFNpZ25hbFwiIHZhbHVlPVwidHJ1ZVwiLz4iCisgICAgICAg
ICAgICAiPC9wcm9wZXJ0eT4iCisgICAgICAgICAgICAiPHByb3BlcnR5IG5hbWU9XCJQb3NpdGlv
blwiIHR5cGU9XCJ4XCIgYWNjZXNzPVwicmVhZFwiPiIKKyAgICAgICAgICAgICAgICAiPGFubm90
YXRpb24gbmFtZT1cIm9yZy5mcmVlZGVza3RvcC5EQnVzLlByb3BlcnR5LkVtaXRzQ2hhbmdlZFNp
Z25hbFwiIHZhbHVlPVwiZmFsc2VcIi8+IgorICAgICAgICAgICAgIjwvcHJvcGVydHk+IgorICAg
ICAgICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwiTWluaW11bVJhdGVcIiB0eXBlPVwiZFwiIGFjY2Vz
cz1cInJlYWRcIj4iCisgICAgICAgICAgICAgICAgIjxhbm5vdGF0aW9uIG5hbWU9XCJvcmcuZnJl
ZWRlc2t0b3AuREJ1cy5Qcm9wZXJ0eS5FbWl0c0NoYW5nZWRTaWduYWxcIiB2YWx1ZT1cInRydWVc
Ii8+IgorICAgICAgICAgICAgIjwvcHJvcGVydHk+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBu
YW1lPVwiTWF4aW11bVJhdGVcIiB0eXBlPVwiZFwiIGFjY2Vzcz1cInJlYWRcIj4iCisgICAgICAg
ICAgICAgICAgIjxhbm5vdGF0aW9uIG5hbWU9XCJvcmcuZnJlZWRlc2t0b3AuREJ1cy5Qcm9wZXJ0
eS5FbWl0c0NoYW5nZWRTaWduYWxcIiB2YWx1ZT1cInRydWVcIi8+IgorICAgICAgICAgICAgIjwv
cHJvcGVydHk+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwiQ2FuR29OZXh0XCIgdHlw
ZT1cImJcIiBhY2Nlc3M9XCJyZWFkXCI+IgorICAgICAgICAgICAgICAgICI8YW5ub3RhdGlvbiBu
YW1lPVwib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydHkuRW1pdHNDaGFuZ2VkU2lnbmFsXCIg
dmFsdWU9XCJ0cnVlXCIvPiIKKyAgICAgICAgICAgICI8L3Byb3BlcnR5PiIKKyAgICAgICAgICAg
ICI8cHJvcGVydHkgbmFtZT1cIkNhbkdvUHJldmlvdXNcIiB0eXBlPVwiYlwiIGFjY2Vzcz1cInJl
YWRcIj4iCisgICAgICAgICAgICAgICAgIjxhbm5vdGF0aW9uIG5hbWU9XCJvcmcuZnJlZWRlc2t0
b3AuREJ1cy5Qcm9wZXJ0eS5FbWl0c0NoYW5nZWRTaWduYWxcIiB2YWx1ZT1cInRydWVcIi8+Igor
ICAgICAgICAgICAgIjwvcHJvcGVydHk+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwi
Q2FuUGxheVwiIHR5cGU9XCJiXCIgYWNjZXNzPVwicmVhZFwiPiIKKyAgICAgICAgICAgICAgICAi
PGFubm90YXRpb24gbmFtZT1cIm9yZy5mcmVlZGVza3RvcC5EQnVzLlByb3BlcnR5LkVtaXRzQ2hh
bmdlZFNpZ25hbFwiIHZhbHVlPVwidHJ1ZVwiLz4iCisgICAgICAgICAgICAiPC9wcm9wZXJ0eT4i
CisgICAgICAgICAgICAiPHByb3BlcnR5IG5hbWU9XCJDYW5QYXVzZVwiIHR5cGU9XCJiXCIgYWNj
ZXNzPVwicmVhZFwiPiIKKyAgICAgICAgICAgICAgICAiPGFubm90YXRpb24gbmFtZT1cIm9yZy5m
cmVlZGVza3RvcC5EQnVzLlByb3BlcnR5LkVtaXRzQ2hhbmdlZFNpZ25hbFwiIHZhbHVlPVwidHJ1
ZVwiLz4iCisgICAgICAgICAgICAiPC9wcm9wZXJ0eT4iCisgICAgICAgICAgICAiPHByb3BlcnR5
IG5hbWU9XCJDYW5TZWVrXCIgdHlwZT1cImJcIiBhY2Nlc3M9XCJyZWFkXCI+IgorICAgICAgICAg
ICAgICAgICI8YW5ub3RhdGlvbiBuYW1lPVwib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydHku
RW1pdHNDaGFuZ2VkU2lnbmFsXCIgdmFsdWU9XCJ0cnVlXCIvPiIKKyAgICAgICAgICAgICI8L3By
b3BlcnR5PiIKKyAgICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIkNhbkNvbnRyb2xcIiB0eXBl
PVwiYlwiIGFjY2Vzcz1cInJlYWRcIj4iCisgICAgICAgICAgICAgICAgIjxhbm5vdGF0aW9uIG5h
bWU9XCJvcmcuZnJlZWRlc2t0b3AuREJ1cy5Qcm9wZXJ0eS5FbWl0c0NoYW5nZWRTaWduYWxcIiB2
YWx1ZT1cImZhbHNlXCIvPiIKKyAgICAgICAgICAgICI8L3Byb3BlcnR5PiIKKyAgICAgICAgICAg
ICI8c2lnbmFsIG5hbWU9XCJTZWVrZWRcIj4iCisgICAgICAgICAgICAgICAgIjxhcmcgbmFtZT1c
IlBvc2l0aW9uXCIgdHlwZT1cInhcIi8+IgorICAgICAgICAgICAgIjwvc2lnbmFsPiIKKyAgICAg
ICAgIjwvaW50ZXJmYWNlPiIKKyAgICAiPC9ub2RlPiI7CisKKyNkZWZpbmUgREJVU19NUFJJU19T
RVJWSUNFX05BTUUgIm9yZy5tcHJpcy5NZWRpYVBsYXllcjIud2Via2l0IgorI2RlZmluZSBEQlVT
X01QUklTX09CSkVDVF9QQVRIICIvb3JnL21wcmlzL01lZGlhUGxheWVyMiIKKyNkZWZpbmUgREJV
U19NUFJJU19JTlRFUkZBQ0UgIm9yZy5tcHJpcy5NZWRpYVBsYXllcjIiCisjZGVmaW5lIERCVVNf
TVBSSVNfUExBWUVSX0lOVEVSRkFDRSAib3JnLm1wcmlzLk1lZGlhUGxheWVyMi5QbGF5ZXIiCisj
ZGVmaW5lIERCVVNfTVBSSVNfVFJBQ0tfUEFUSCAiL29yZy9tcHJpcy9NZWRpYVBsYXllcjIvd2Vi
a2l0IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXI+IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y3JlYXRlKCkK
K3sKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYj4oKTsKK30K
KworTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliKCkKKyAg
ICA6IG1fbm93UGxheWluZ01hbmFnZXIocGxhdGZvcm1TdHJhdGVnaWVzKCktPm1lZGlhU3RyYXRl
Z3koKS5jcmVhdGVOb3dQbGF5aW5nTWFuYWdlcigpKQoreworfQorCitNZWRpYVNlc3Npb25NYW5h
Z2VyR0xpYjo6fk1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliKCkKK3sKKyAgICBpZiAobV9vd25lcklk
KQorICAgICAgICBnX2J1c191bm93bl9uYW1lKG1fb3duZXJJZCk7Cit9CisKK3N0YXRpYyBpbmxp
bmUgc3RkOjpvcHRpb25hbDxQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1h
bmRUeXBlPiBnZXRDb21tYW5kKGNvbnN0IGNoYXIqIG5hbWUpCit7CisgICAgc3RhdGljIGNvbnN0
IGF1dG8gbWFwID0gbWFrZU5ldmVyRGVzdHJveWVkKFtdIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6
dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNv
bnRyb2xDb21tYW5kVHlwZT4geworICAgICAgICAgICAgeyAiTmV4dCIsIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpOZXh0VHJhY2tDb21tYW5kIH0sCisgICAgICAgICAgICB7ICJQYXVzZSIsIFBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpQYXVzZUNvbW1hbmQgfSwKKyAgICAgICAgICAgIHsgIlBsYXkiLCBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxheUNvbW1hbmQgfSwKKyAgICAgICAgICAgIHsgIlBsYXlQ
YXVzZSIsIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpUb2dnbGVQbGF5UGF1c2VDb21tYW5kIH0sCisg
ICAgICAgICAgICB7ICJQcmV2aW91cyIsIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpQcmV2aW91c1Ry
YWNrQ29tbWFuZCB9LAorICAgICAgICAgICAgeyAiU2VlayIsIFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpTZWVrVG9QbGF5YmFja1Bvc2l0aW9uQ29tbWFuZCB9LAorICAgICAgICAgICAgeyAiU3RvcCIs
IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdG9wQ29tbWFuZCB9CisgICAgICAgIH07CisgICAgfSgp
KTsKKworICAgIGF1dG8gaXQgPSBtYXAtPmZpbmQobmFtZSk7CisgICAgaWYgKGl0ID09IG1hcC0+
ZW5kKCkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIGl0LT5zZWNvbmQ7Cit9CisK
K3N0YXRpYyB2b2lkIGhhbmRsZU1ldGhvZENhbGwoR0RCdXNDb25uZWN0aW9uKiAvKiBjb25uZWN0
aW9uICovLCBjb25zdCBjaGFyKiAvKiBzZW5kZXIgKi8sIGNvbnN0IGNoYXIqIG9iamVjdFBhdGgs
IGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIG1ldGhvZE5hbWUsIEdWYXJp
YW50KiBwYXJhbWV0ZXJzLCBHREJ1c01ldGhvZEludm9jYXRpb24qIGludm9jYXRpb24sIGdwb2lu
dGVyIHVzZXJEYXRhKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgYXV0byBj
b21tYW5kID0gZ2V0Q29tbWFuZChtZXRob2ROYW1lKTsKKyAgICBpZiAoIWNvbW1hbmQpIHsKKyAg
ICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl9lcnJvcihpbnZvY2F0aW9uLCBH
X0RCVVNfRVJST1IsIEdfREJVU19FUlJPUl9GQUlMRUQsICIlcy4lcy4lcyBpcyBub3QgYXZhaWxh
YmxlIG5vdyIsIG9iamVjdFBhdGgsIGludGVyZmFjZU5hbWUsIG1ldGhvZE5hbWUpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIGF1dG8mIG1hbmFnZXIgPSAqcmVpbnRlcnByZXRfY2FzdDxN
ZWRpYVNlc3Npb25NYW5hZ2VyR0xpYio+KHVzZXJEYXRhKTsKKyAgICBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6UmVtb3RlQ29tbWFuZEFyZ3VtZW50IGFyZ3VtZW50OworICAgIGlmICgqY29tbWFuZCA9
PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U2Vla1RvUGxheWJhY2tQb3NpdGlvbkNvbW1hbmQpIHsK
KyAgICAgICAgaW50NjRfdCBvZmZzZXQ7CisgICAgICAgIGdfdmFyaWFudF9nZXQocGFyYW1ldGVy
cywgIih4KSIsICZvZmZzZXQpOworICAgICAgICBhcmd1bWVudC50aW1lID0gb2Zmc2V0IC8gMTAw
MDAwMDsKKyAgICB9CisgICAgbWFuYWdlci5kaXNwYXRjaCgqY29tbWFuZCwgYXJndW1lbnQpOwor
ICAgIGdfZGJ1c19tZXRob2RfaW52b2NhdGlvbl9yZXR1cm5fdmFsdWUoaW52b2NhdGlvbiwgbnVs
bHB0cik7Cit9CisKK2VudW0gY2xhc3MgUHJvcGVydHkgOiB1aW50OF90IHsKKyAgICBDYW5Db250
cm9sLAorICAgIENhbkdvTmV4dCwKKyAgICBDYW5Hb1ByZXZpb3VzLAorICAgIENhblBhdXNlLAor
ICAgIENhblBsYXksCisgICAgQ2FuUXVpdCwKKyAgICBDYW5SYWlzZSwKKyAgICBDYW5TZWVrLAor
ICAgIERlc2t0b3BFbnRyeSwKKyAgICBHZXRNZXRhZGF0YSwKKyAgICBHZXRQbGF5YmFja1N0YXR1
cywKKyAgICBHZXRQb3NpdGlvbiwKKyAgICBIYXNUcmFja0xpc3QsCisgICAgSWRlbnRpdHksCisg
ICAgU3VwcG9ydGVkTWltZVR5cGVzLAorICAgIFN1cHBvcnRlZFVyaVNjaGVtZXMsCit9OworCitz
dGF0aWMgaW5saW5lIHN0ZDo6b3B0aW9uYWw8UHJvcGVydHk+IGdldFByb3BlcnR5KGNvbnN0IGNo
YXIqIHByb3BlcnR5TmFtZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgYXV0byBtYXAgPSBtYWtlTmV2
ZXJEZXN0cm95ZWQoW10geworICAgICAgICByZXR1cm4gc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6
c3RyaW5nLCBQcm9wZXJ0eT4geworICAgICAgICAgICAgLy8gb3JnLm1wcmlzLk1lZGlhUGxheWVy
MiBwcm9wZXJ0aWVzCisgICAgICAgICAgICB7ICJJZGVudGl0eSIsIFByb3BlcnR5OjpJZGVudGl0
eSB9LAorICAgICAgICAgICAgeyAiRGVza3RvcEVudHJ5IiwgUHJvcGVydHk6OkRlc2t0b3BFbnRy
eSB9LAorICAgICAgICAgICAgeyAiSGFzVHJhY2tMaXN0IiwgUHJvcGVydHk6Okhhc1RyYWNrTGlz
dCB9LAorICAgICAgICAgICAgeyAiQ2FuUmFpc2UiLCBQcm9wZXJ0eTo6Q2FuUmFpc2UgfSwKKyAg
ICAgICAgICAgIHsgIkNhblF1aXQiLCBQcm9wZXJ0eTo6Q2FuUXVpdCB9LAorICAgICAgICAgICAg
eyAiU3VwcG9ydGVkVXJpU2NoZW1lcyIsIFByb3BlcnR5OjpTdXBwb3J0ZWRVcmlTY2hlbWVzIH0s
CisgICAgICAgICAgICB7ICJTdXBwb3J0ZWRNaW1lVHlwZXMiLCBQcm9wZXJ0eTo6U3VwcG9ydGVk
TWltZVR5cGVzIH0sCisgICAgICAgICAgICAvLyBvcmcubXByaXMuTWVkaWFQbGF5ZXIyLlBsYXll
ciBwcm9wZXJ0aWVzCisgICAgICAgICAgICB7ICJDYW5Hb05leHQiLCBQcm9wZXJ0eTo6Q2FuR29O
ZXh0IH0sCisgICAgICAgICAgICB7ICJDYW5Hb1ByZXZpb3VzIiwgUHJvcGVydHk6OkNhbkdvUHJl
dmlvdXMgfSwKKyAgICAgICAgICAgIHsgIkNhblBsYXkiLCBQcm9wZXJ0eTo6Q2FuUGxheSB9LAor
ICAgICAgICAgICAgeyAiQ2FuUGF1c2UiLCBQcm9wZXJ0eTo6Q2FuUGF1c2UgfSwKKyAgICAgICAg
ICAgIHsgIkNhblNlZWsiLCBQcm9wZXJ0eTo6Q2FuU2VlayB9LAorICAgICAgICAgICAgeyAiQ2Fu
Q29udHJvbCIsIFByb3BlcnR5OjpDYW5Db250cm9sIH0sCisgICAgICAgICAgICB7ICJQbGF5YmFj
a1N0YXR1cyIsIFByb3BlcnR5OjpHZXRQbGF5YmFja1N0YXR1cyB9LAorICAgICAgICAgICAgeyAi
UG9zaXRpb24iLCBQcm9wZXJ0eTo6R2V0UG9zaXRpb259LAorICAgICAgICAgICAgeyAiTWV0YWRh
dGEiLCBQcm9wZXJ0eTo6R2V0TWV0YWRhdGEgfQorICAgICAgICB9OworICAgIH0oKSk7CisKKyAg
ICBhdXRvIGl0ID0gbWFwLT5maW5kKHByb3BlcnR5TmFtZSk7CisgICAgaWYgKGl0ID09IG1hcC0+
ZW5kKCkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIGl0LT5zZWNvbmQ7Cit9CisK
K3N0YXRpYyBHVmFyaWFudCogaGFuZGxlR2V0UHJvcGVydHkoR0RCdXNDb25uZWN0aW9uKiwgY29u
c3QgY2hhciogLyogc2VuZGVyICovLCBjb25zdCBjaGFyKiBvYmplY3RQYXRoLCBjb25zdCBjaGFy
KiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIEdFcnJvcioqIGVycm9y
LCBncG9pbnRlciB1c2VyRGF0YSkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IGF1dG8gcHJvcGVydHkgPSBnZXRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUpOworICAgIGlmICghcHJv
cGVydHkpIHsKKyAgICAgICAgZ19zZXRfZXJyb3IoZXJyb3IsIEdfREJVU19FUlJPUiwgR19EQlVT
X0VSUk9SX05PVF9TVVBQT1JURUQsICIlcy4lcyAlcyBpcyBub3Qgc3VwcG9ydGVkIiwgb2JqZWN0
UGF0aCwgaW50ZXJmYWNlTmFtZSwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfQorCisgICAgYXV0byYgbWFuYWdlciA9ICpyZWludGVycHJldF9jYXN0PE1lZGlh
U2Vzc2lvbk1hbmFnZXJHTGliKj4odXNlckRhdGEpOworICAgIHN3aXRjaCAocHJvcGVydHkudmFs
dWUoKSkgeworICAgIGNhc2UgUHJvcGVydHk6OlN1cHBvcnRlZFVyaVNjaGVtZXM6CisgICAgY2Fz
ZSBQcm9wZXJ0eTo6U3VwcG9ydGVkTWltZVR5cGVzOgorICAgICAgICByZXR1cm4gZ192YXJpYW50
X25ld19zdHJ2KG51bGxwdHIsIDApOworICAgIGNhc2UgUHJvcGVydHk6OkdldFBsYXliYWNrU3Rh
dHVzOgorICAgICAgICByZXR1cm4gbWFuYWdlci5nZXRQbGF5YmFja1N0YXR1c0FzR1ZhcmlhbnQo
KTsKKyAgICBjYXNlIFByb3BlcnR5OjpHZXRNZXRhZGF0YTogeworICAgICAgICBhdXRvKiB2YXJp
YW50ID0gbWFuYWdlci5nZXRNZXRhZGF0YUFzR1ZhcmlhbnQoKTsKKyAgICAgICAgaWYgKCF2YXJp
YW50KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBnX3Zhcmlh
bnRfcmVmKHZhcmlhbnQpOworICAgIH0KKyAgICBjYXNlIFByb3BlcnR5OjpHZXRQb3NpdGlvbjoK
KyAgICAgICAgcmV0dXJuIG1hbmFnZXIuZ2V0QWN0aXZlU2Vzc2lvblBvc2l0aW9uKCk7CisgICAg
Y2FzZSBQcm9wZXJ0eTo6SWRlbnRpdHk6CisgICAgICAgIC8vIEZJWE1FOiBXb3VsZCBiZSBuaWNl
IHRvIGdldCBVSVByb2Nlc3MgbmFtZSwgc29tZWhvdy4KKyAgICAgICAgcmV0dXJuIGdfdmFyaWFu
dF9uZXdfc3RyaW5nKCJXZWJLaXQiKTsKKyAgICBjYXNlIFByb3BlcnR5OjpEZXNrdG9wRW50cnk6
CisgICAgICAgIHJldHVybiBnX3ZhcmlhbnRfbmV3X3N0cmluZygiIik7CisgICAgY2FzZSBQcm9w
ZXJ0eTo6SGFzVHJhY2tMaXN0OgorICAgIGNhc2UgUHJvcGVydHk6OkNhblF1aXQ6CisgICAgY2Fz
ZSBQcm9wZXJ0eTo6Q2FuUmFpc2U6CisgICAgICAgIHJldHVybiBnX3ZhcmlhbnRfbmV3X2Jvb2xl
YW4oZmFsc2UpOworICAgIGNhc2UgUHJvcGVydHk6OkNhblNlZWs6CisgICAgY2FzZSBQcm9wZXJ0
eTo6Q2FuQ29udHJvbDoKKyAgICBjYXNlIFByb3BlcnR5OjpDYW5Hb05leHQ6CisgICAgY2FzZSBQ
cm9wZXJ0eTo6Q2FuR29QcmV2aW91czoKKyAgICBjYXNlIFByb3BlcnR5OjpDYW5QbGF5OgorICAg
IGNhc2UgUHJvcGVydHk6OkNhblBhdXNlOgorICAgICAgICByZXR1cm4gZ192YXJpYW50X25ld19i
b29sZWFuKHRydWUpOworICAgIH0KKworICAgIHJldHVybiBudWxscHRyOworfQorCitzdGF0aWMg
Z2Jvb2xlYW4gaGFuZGxlU2V0UHJvcGVydHkoR0RCdXNDb25uZWN0aW9uKiwgY29uc3QgY2hhciog
Lyogc2VuZGVyICovLCBjb25zdCBjaGFyKiAvKiBvYmplY3RQYXRoICovLCBjb25zdCBjaGFyKiBp
bnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIEdWYXJpYW50KiwgR0Vycm9y
KiogZXJyb3IsIGdwb2ludGVyKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
Z19zZXRfZXJyb3IoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfRkFJTEVELCAiJXM6JXMg
c2V0dGluZyBpcyBub3Qgc3VwcG9ydGVkIiwgaW50ZXJmYWNlTmFtZSwgcHJvcGVydHlOYW1lKTsK
KyAgICByZXR1cm4gRkFMU0U7Cit9CisKK3N0YXRpYyBjb25zdCBHREJ1c0ludGVyZmFjZVZUYWJs
ZSBnSW50ZXJmYWNlVlRhYmxlID0geworICAgIGhhbmRsZU1ldGhvZENhbGwsIGhhbmRsZUdldFBy
b3BlcnR5LCBoYW5kbGVTZXRQcm9wZXJ0eSwgeyBudWxscHRyIH0KK307CisKK2Jvb2wgTWVkaWFT
ZXNzaW9uTWFuYWdlckdMaWI6OnNldHVwTXByaXMoKQoreworICAgIGlmIChtX2Nvbm5lY3Rpb24p
CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgYXV0byBpbnN0YW5jZUlkID0gbWFrZVN0cmlu
Zygib3JnLm1wcmlzLk1lZGlhUGxheWVyMi53ZWJraXQuaW5zdGFuY2UiLCBnZXRwaWQoKSk7Cisg
ICAgbV9vd25lcklkID0gZ19idXNfb3duX25hbWUoR19CVVNfVFlQRV9TRVNTSU9OLCBpbnN0YW5j
ZUlkLmFzY2lpKCkuZGF0YSgpLAorICAgICAgICBHX0JVU19OQU1FX09XTkVSX0ZMQUdTX05PTkUs
IHJlaW50ZXJwcmV0X2Nhc3Q8R0J1c0FjcXVpcmVkQ2FsbGJhY2s+KCtbXShHREJ1c0Nvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIGNvbnN0IGdjaGFyKiwgZ3BvaW50ZXIgdXNlckRhdGEpIHsKKyAgICAg
ICAgICAgIGF1dG8mIG1hbmFnZXIgPSAqcmVpbnRlcnByZXRfY2FzdDxNZWRpYVNlc3Npb25NYW5h
Z2VyR0xpYio+KHVzZXJEYXRhKTsKKyAgICAgICAgICAgIG1hbmFnZXIuYnVzQWNxdWlyZWQoY29u
bmVjdGlvbik7CisgICAgICAgIH0pLAorICAgICAgICByZWludGVycHJldF9jYXN0PEdCdXNOYW1l
QWNxdWlyZWRDYWxsYmFjaz4oK1tdKEdEQnVzQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29uc3Qg
Y2hhciosIGdwb2ludGVyIHVzZXJEYXRhKSB7CisgICAgICAgICAgICBhdXRvJiBtYW5hZ2VyID0g
KnJlaW50ZXJwcmV0X2Nhc3Q8TWVkaWFTZXNzaW9uTWFuYWdlckdMaWIqPih1c2VyRGF0YSk7Cisg
ICAgICAgICAgICBtYW5hZ2VyLm5hbWVBY3F1aXJlZChjb25uZWN0aW9uKTsKKyAgICAgICAgfSks
CisgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8R0J1c05hbWVMb3N0Q2FsbGJhY2s+KCtbXShHREJ1
c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IGNoYXIqLCBncG9pbnRlciB1c2VyRGF0YSkg
eworICAgICAgICAgICAgYXV0byYgbWFuYWdlciA9ICpyZWludGVycHJldF9jYXN0PE1lZGlhU2Vz
c2lvbk1hbmFnZXJHTGliKj4odXNlckRhdGEpOworICAgICAgICAgICAgbWFuYWdlci5uYW1lTG9z
dChjb25uZWN0aW9uKTsKKyAgICAgICAgfSksIHRoaXMsIG51bGxwdHIpOworCisgICAgR1VuaXF1
ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgIG1fbXByaXNJbnRlcmZhY2UgPSBhZG9wdEdSZWYo
Z19kYnVzX25vZGVfaW5mb19uZXdfZm9yX3htbChzX21wcmlzSW50ZXJmYWNlLCAmZXJyb3Iub3V0
UHRyKCkpKTsKKyAgICBpZiAoIW1fbXByaXNJbnRlcmZhY2UpIHsKKyAgICAgICAgV1RGTG9nQWx3
YXlzKCJGYWlsZWQgYXQgcGFyc2luZyBYTUwgSW50ZXJmYWNlIGRlZmluaXRpb246ICVzIiwgZXJy
b3IgPyBlcnJvci0+bWVzc2FnZSA6ICJVbmtub3duIEVycm9yIik7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25N
YW5hZ2VyR0xpYjo6YnVzQWNxdWlyZWQoR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9uKQorewor
ICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKKyAgICBtX3Jvb3RSZWdpc3RyYXRpb25J
ZCA9IGdfZGJ1c19jb25uZWN0aW9uX3JlZ2lzdGVyX29iamVjdChjb25uZWN0aW9uLCBEQlVTX01Q
UklTX09CSkVDVF9QQVRILCBtX21wcmlzSW50ZXJmYWNlLT5pbnRlcmZhY2VzWzBdLAorICAgICAg
ICAmZ0ludGVyZmFjZVZUYWJsZSwgdGhpcywgbnVsbHB0ciwgJmVycm9yLm91dFB0cigpKTsKKwor
ICAgIGlmICghbV9yb290UmVnaXN0cmF0aW9uSWQpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJG
YWlsZWQgYXQgcm9vdCByZWdpc3RyYXRpb246ICVzIiwgZXJyb3IgPyBlcnJvci0+bWVzc2FnZSA6
ICJVbmtub3duIEVycm9yIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3BsYXll
clJlZ2lzdHJhdGlvbklkID0gZ19kYnVzX2Nvbm5lY3Rpb25fcmVnaXN0ZXJfb2JqZWN0KGNvbm5l
Y3Rpb24sIERCVVNfTVBSSVNfT0JKRUNUX1BBVEgsIG1fbXByaXNJbnRlcmZhY2UtPmludGVyZmFj
ZXNbMV0sCisgICAgICAgICZnSW50ZXJmYWNlVlRhYmxlLCB0aGlzLCBudWxscHRyLCAmZXJyb3Iu
b3V0UHRyKCkpOworCisgICAgaWYgKCFtX3BsYXllclJlZ2lzdHJhdGlvbklkKQorICAgICAgICBX
VEZMb2dBbHdheXMoIkZhaWxlZCBhdCBvYmplY3QgcmVnaXN0cmF0aW9uOiAlcyIsIGVycm9yID8g
ZXJyb3ItPm1lc3NhZ2UgOiAiVW5rbm93biBFcnJvciIpOworfQorCit2b2lkIE1lZGlhU2Vzc2lv
bk1hbmFnZXJHTGliOjpuYW1lTG9zdChHREJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCit7Cisg
ICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKKyAgICBpZiAoIW1fcm9vdFJlZ2lzdHJhdGlvbklk
KQorICAgICAgICByZXR1cm47CisgICAgaWYgKGdfZGJ1c19jb25uZWN0aW9uX3VucmVnaXN0ZXJf
b2JqZWN0KGNvbm5lY3Rpb24sIG1fcm9vdFJlZ2lzdHJhdGlvbklkKSkKKyAgICAgICAgbV9yb290
UmVnaXN0cmF0aW9uSWQgPSAwOworICAgIGVsc2UKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJVbmFi
bGUgdG8gdW5yZWdpc3RlciByb290IG9iamVjdC4iKTsKKworICAgIGlmICghbV9wbGF5ZXJSZWdp
c3RyYXRpb25JZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGdfZGJ1c19jb25uZWN0aW9u
X3VucmVnaXN0ZXJfb2JqZWN0KGNvbm5lY3Rpb24sIG1fcGxheWVyUmVnaXN0cmF0aW9uSWQpKQor
ICAgICAgICBtX3BsYXllclJlZ2lzdHJhdGlvbklkID0gMDsKKyAgICBlbHNlCisgICAgICAgIFdU
RkxvZ0Fsd2F5cygiVW5hYmxlIHRvIHVucmVnaXN0ZXIgcGxheWVyIG9iamVjdC4iKTsKK30KKwor
dm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6YmVnaW5JbnRlcnJ1cHRpb24oUGxhdGZvcm1N
ZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUgdHlwZSkKK3sKKyAgICBpZiAodHlwZSA9PSBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3lzdGVtSW50ZXJydXB0aW9u
KSB7CisgICAgICAgIGZvckVhY2hTZXNzaW9uKFtdIChhdXRvJiBzZXNzaW9uKSB7CisgICAgICAg
ICAgICBzZXNzaW9uLmNsZWFySGFzUGxheWVkU2luY2VMYXN0SW50ZXJydXB0aW9uKCk7CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6YmVnaW5J
bnRlcnJ1cHRpb24odHlwZSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnNj
aGVkdWxlU2Vzc2lvblN0YXR1c1VwZGF0ZSgpCit7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhp
c10gKCkgbXV0YWJsZSB7CisgICAgICAgIG1fbm93UGxheWluZ01hbmFnZXItPnNldFN1cHBvcnRz
U2Vla2luZyhjb21wdXRlU3VwcG9ydHNTZWVraW5nKCkpOworICAgICAgICB1cGRhdGVOb3dQbGF5
aW5nSW5mbygpOworCisgICAgICAgIGZvckVhY2hTZXNzaW9uKFtdIChhdXRvJiBzZXNzaW9uKSB7
CisgICAgICAgICAgICBzZXNzaW9uLnVwZGF0ZU1lZGlhVXNhZ2VJZkNoYW5nZWQoKTsKKyAgICAg
ICAgfSk7CisgICAgfSk7Cit9CisKK2Jvb2wgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnNlc3Np
b25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAg
ICBpZiAoIVBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxCZWdpblBsYXli
YWNrKHNlc3Npb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzY2hlZHVsZVNlc3Np
b25TdGF0dXNVcGRhdGUoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBNZWRpYVNlc3Np
b25NYW5hZ2VyR0xpYjo6c2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyhQbGF0Zm9ybU1lZGlh
U2Vzc2lvbiYpCit7CisgICAgc2NoZWR1bGVTZXNzaW9uU3RhdHVzVXBkYXRlKCk7Cit9CisKK3Zv
aWQgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OmFkZFNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Np
b24mIHNlc3Npb24pCit7CisgICAgaWYgKCFzZXR1cE1wcmlzKCkpCisgICAgICAgIHJldHVybjsK
KyAgICBtX25vd1BsYXlpbmdNYW5hZ2VyLT5hZGRDbGllbnQoKnRoaXMpOworCisgICAgUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyOjphZGRTZXNzaW9uKHNlc3Npb24pOworfQorCit2b2lkIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpyZW1vdmVTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9u
JiBzZXNzaW9uKQoreworICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6cmVtb3ZlU2Vz
c2lvbihzZXNzaW9uKTsKKworICAgIGlmIChoYXNOb1Nlc3Npb24oKSkKKyAgICAgICAgbV9ub3dQ
bGF5aW5nTWFuYWdlci0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKKworICAgIHNjaGVkdWxlU2Vzc2lv
blN0YXR1c1VwZGF0ZSgpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpzZXRD
dXJyZW50U2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldEN1cnJlbnRTZXNzaW9uKHNlc3Npb24pOworCisg
ICAgbV9ub3dQbGF5aW5nTWFuYWdlci0+dXBkYXRlU3VwcG9ydGVkQ29tbWFuZHMoKTsKK30KKwor
dm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0
Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbiwgRGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyBk
ZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5nKQoreworICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlcjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayhzZXNzaW9uLCBkZWxheUNhbGxpbmdVcGRh
dGVOb3dQbGF5aW5nKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtTZXNzaW9uID0gbWFr
ZVdlYWtQdHIoc2Vzc2lvbildIHsKKyAgICAgICAgaWYgKHdlYWtTZXNzaW9uKQorICAgICAgICAg
ICAgd2Vha1Nlc3Npb24tPnVwZGF0ZU1lZGlhVXNhZ2VJZkNoYW5nZWQoKTsKKyAgICB9KTsKKwor
ICAgIGlmIChkZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5nID09IERlbGF5Q2FsbGluZ1VwZGF0
ZU5vd1BsYXlpbmc6Ok5vKQorICAgICAgICB1cGRhdGVOb3dQbGF5aW5nSW5mbygpOworICAgIGVs
c2UgeworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzXSB7CisgICAgICAgICAgICB1cGRh
dGVOb3dQbGF5aW5nSW5mbygpOworICAgICAgICB9KTsKKyAgICB9Cit9CisKK3ZvaWQgTWVkaWFT
ZXNzaW9uTWFuYWdlckdMaWI6OnNlc3Npb25TdGF0ZUNoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Np
b24mIHNlc3Npb24pCit7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9u
U3RhdGVDaGFuZ2VkKHNlc3Npb24pOworCisgICAgR1ZhcmlhbnRCdWlsZGVyIGJ1aWxkZXI7Cisg
ICAgZ192YXJpYW50X2J1aWxkZXJfaW5pdCgmYnVpbGRlciwgR19WQVJJQU5UX1RZUEUoImF7c3Z9
IikpOworICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAiUGxheWJh
Y2tTdGF0dXMiLCBnZXRQbGF5YmFja1N0YXR1c0FzR1ZhcmlhbnQoKSk7CisgICAgZW1pdFByb3Bl
cnRpZXNDaGFuZ2VkKGdfdmFyaWFudF9uZXcoIihzYXtzdn1hcykiLCBEQlVTX01QUklTX1BMQVlF
Ul9JTlRFUkZBQ0UsICZidWlsZGVyLCBudWxscHRyKSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9u
TWFuYWdlckdMaWI6OmNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQoUGxhdGZvcm1NZWRpYVNl
c3Npb24mIHNlc3Npb24pCit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBzZXNzaW9u
LmxvZ0lkZW50aWZpZXIoKSk7CisgICAgaWYgKG1faXNTZWVraW5nKSB7CisgICAgICAgIG1faXNT
ZWVraW5nID0gZmFsc2U7CisgICAgICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKKyAg
ICAgICAgaW50NjRfdCBwb3NpdGlvbiA9IHNlc3Npb24ubm93UGxheWluZ0luZm8oKS0+Y3VycmVu
dFRpbWUgKiAxMDAwMDAwOworICAgICAgICBpZiAoIWdfZGJ1c19jb25uZWN0aW9uX2VtaXRfc2ln
bmFsKG1fY29ubmVjdGlvbi5nZXQoKSwgbnVsbHB0ciwgREJVU19NUFJJU19PQkpFQ1RfUEFUSCwg
REJVU19NUFJJU19QTEFZRVJfSU5URVJGQUNFLCAiU2Vla2VkIiwgZ192YXJpYW50X25ldygiKHgp
IiwgcG9zaXRpb24pLCAmZXJyb3Iub3V0UHRyKCkpKQorICAgICAgICAgICAgV1RGTG9nQWx3YXlz
KCJGYWlsZWQgdG8gZW1pdCBNUFJJUyBTZWVrZWQgc2lnbmFsOiAlcyIsIGVycm9yID8gZXJyb3It
Pm1lc3NhZ2UgOiAiVW5rbm93biBFcnJvciIpOworICAgIH0KKyAgICBzY2hlZHVsZVNlc3Npb25T
dGF0dXNVcGRhdGUoKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6c2Vzc2lv
bkNhblByb2R1Y2VBdWRpb0NoYW5nZWQoKQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
Uik7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uQ2FuUHJvZHVjZUF1
ZGlvQ2hhbmdlZCgpOworICAgIHNjaGVkdWxlU2Vzc2lvblN0YXR1c1VwZGF0ZSgpOworfQorCit2
b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjphZGRTdXBwb3J0ZWRDb21tYW5kKFBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUgY29tbWFuZCkKK3sKKyAgICBt
X25vd1BsYXlpbmdNYW5hZ2VyLT5hZGRTdXBwb3J0ZWRDb21tYW5kKGNvbW1hbmQpOworfQorCit2
b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpyZW1vdmVTdXBwb3J0ZWRDb21tYW5kKFBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUgY29tbWFuZCkKK3sKKyAg
ICBtX25vd1BsYXlpbmdNYW5hZ2VyLT5yZW1vdmVTdXBwb3J0ZWRDb21tYW5kKGNvbW1hbmQpOwor
fQorCitQbGF0Zm9ybU1lZGlhU2Vzc2lvbiogTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6Om5vd1Bs
YXlpbmdFbGlnaWJsZVNlc3Npb24oKQoreworICAgIC8vIEZJWE1FOiBGaXggdGhpcyBsYXllcmlu
ZyB2aW9sYXRpb24uCisgICAgaWYgKGF1dG8gZWxlbWVudCA9IEhUTUxNZWRpYUVsZW1lbnQ6OmJl
c3RNZWRpYUVsZW1lbnRGb3JSZW1vdGVDb250cm9scyhNZWRpYUVsZW1lbnRTZXNzaW9uOjpQbGF5
YmFja0NvbnRyb2xzUHVycG9zZTo6Tm93UGxheWluZykpCisgICAgICAgIHJldHVybiAmZWxlbWVu
dC0+bWVkaWFTZXNzaW9uKCk7CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBNZWRp
YVNlc3Npb25NYW5hZ2VyR0xpYjo6dXBkYXRlTm93UGxheWluZ0luZm8oKQoreworICAgIHN0ZDo6
b3B0aW9uYWw8Tm93UGxheWluZ0luZm8+IG5vd1BsYXlpbmdJbmZvOworICAgIGlmIChhdXRvKiBz
ZXNzaW9uID0gbm93UGxheWluZ0VsaWdpYmxlU2Vzc2lvbigpKQorICAgICAgICBub3dQbGF5aW5n
SW5mbyA9IHNlc3Npb24tPm5vd1BsYXlpbmdJbmZvKCk7CisKKyAgICBpZiAoIW5vd1BsYXlpbmdJ
bmZvKSB7CisgICAgICAgIGlmIChtX3JlZ2lzdGVyZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbikg
eworICAgICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiY2xlYXJpbmcgbm93IHBs
YXlpbmcgaW5mbyIpOworICAgICAgICAgICAgbV9ub3dQbGF5aW5nTWFuYWdlci0+Y2xlYXJOb3dQ
bGF5aW5nSW5mbygpOworICAgICAgICB9CisKKyAgICAgICAgbV9yZWdpc3RlcmVkQXNOb3dQbGF5
aW5nQXBwbGljYXRpb24gPSBmYWxzZTsKKyAgICAgICAgbV9ub3dQbGF5aW5nQWN0aXZlID0gZmFs
c2U7CisgICAgICAgIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nVGl0bGUgPSBlbXB0eVN0cmluZygp
OworICAgICAgICBtX2xhc3RVcGRhdGVkTm93UGxheWluZ0R1cmF0aW9uID0gTkFOOworICAgICAg
ICBtX2xhc3RVcGRhdGVkTm93UGxheWluZ0VsYXBzZWRUaW1lID0gTkFOOworICAgICAgICBtX2xh
c3RVcGRhdGVkTm93UGxheWluZ0luZm9VbmlxdWVJZGVudGlmaWVyID0geyB9OworICAgICAgICBt
X25vd1BsYXlpbmdJbmZvLmNsZWFyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBt
X2hhdmVFdmVyUmVnaXN0ZXJlZEFzTm93UGxheWluZ0FwcGxpY2F0aW9uID0gdHJ1ZTsKKworICAg
IGlmIChtX25vd1BsYXlpbmdNYW5hZ2VyLT5zZXROb3dQbGF5aW5nSW5mbygqbm93UGxheWluZ0lu
Zm8pKQorICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJ0aXRsZSA9IFwiIiwgbm93
UGxheWluZ0luZm8tPnRpdGxlLCAiXCIsIGlzUGxheWluZyA9ICIsIG5vd1BsYXlpbmdJbmZvLT5p
c1BsYXlpbmcsICIsIGR1cmF0aW9uID0gIiwgbm93UGxheWluZ0luZm8tPmR1cmF0aW9uLCAiLCBu
b3cgPSAiLCBub3dQbGF5aW5nSW5mby0+Y3VycmVudFRpbWUsICIsIGlkID0gIiwgbm93UGxheWlu
Z0luZm8tPnVuaXF1ZUlkZW50aWZpZXIudG9VSW50NjQoKSwgIiwgcmVnaXN0ZXJlZCA9ICIsIG1f
cmVnaXN0ZXJlZEFzTm93UGxheWluZ0FwcGxpY2F0aW9uLCAiLCBzcmMgPSBcIiIsIG5vd1BsYXlp
bmdJbmZvLT5hcnR3b3JrID8gbm93UGxheWluZ0luZm8tPmFydHdvcmstPnNyYyA6IFN0cmluZygp
LCAiXCIiKTsKKworICAgIGlmICghbV9yZWdpc3RlcmVkQXNOb3dQbGF5aW5nQXBwbGljYXRpb24p
IHsKKyAgICAgICAgbV9yZWdpc3RlcmVkQXNOb3dQbGF5aW5nQXBwbGljYXRpb24gPSB0cnVlOwor
ICAgICAgICBwcm92aWRlUHJlc2VudGluZ0FwcGxpY2F0aW9uUElESWZOZWNlc3NhcnkoKTsKKyAg
ICB9CisKKyAgICBpZiAoIW5vd1BsYXlpbmdJbmZvLT50aXRsZS5pc0VtcHR5KCkpCisgICAgICAg
IG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nVGl0bGUgPSBub3dQbGF5aW5nSW5mby0+dGl0bGU7CisK
KyAgICBkb3VibGUgZHVyYXRpb24gPSBub3dQbGF5aW5nSW5mby0+ZHVyYXRpb247CisgICAgaWYg
KHN0ZDo6aXNmaW5pdGUoZHVyYXRpb24pICYmIGR1cmF0aW9uICE9IE1lZGlhUGxheWVyOjppbnZh
bGlkVGltZSgpKQorICAgICAgICBtX2xhc3RVcGRhdGVkTm93UGxheWluZ0R1cmF0aW9uID0gZHVy
YXRpb247CisKKyAgICBtX2xhc3RVcGRhdGVkTm93UGxheWluZ0luZm9VbmlxdWVJZGVudGlmaWVy
ID0gbm93UGxheWluZ0luZm8tPnVuaXF1ZUlkZW50aWZpZXI7CisKKyAgICBkb3VibGUgY3VycmVu
dFRpbWUgPSBub3dQbGF5aW5nSW5mby0+Y3VycmVudFRpbWU7CisgICAgaWYgKHN0ZDo6aXNmaW5p
dGUoY3VycmVudFRpbWUpICYmIGN1cnJlbnRUaW1lICE9IE1lZGlhUGxheWVyOjppbnZhbGlkVGlt
ZSgpICYmIG5vd1BsYXlpbmdJbmZvLT5zdXBwb3J0c1NlZWtpbmcpCisgICAgICAgIG1fbGFzdFVw
ZGF0ZWROb3dQbGF5aW5nRWxhcHNlZFRpbWUgPSBjdXJyZW50VGltZTsKKworICAgIG1fbm93UGxh
eWluZ0FjdGl2ZSA9IG5vd1BsYXlpbmdJbmZvLT5hbGxvd3NOb3dQbGF5aW5nQ29udHJvbHNWaXNp
YmlsaXR5OworCisgICAgR1ZhcmlhbnRCdWlsZGVyIGJ1aWxkZXI7CisgICAgZ192YXJpYW50X2J1
aWxkZXJfaW5pdCgmYnVpbGRlciwgR19WQVJJQU5UX1RZUEUoImF7c3Z9IikpOworICAgIGdfdmFy
aWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAibXByaXM6dHJhY2tpZCIsIGdfdmFy
aWFudF9uZXcoIm8iLCBEQlVTX01QUklTX1RSQUNLX1BBVEgpKTsKKyAgICBnX3ZhcmlhbnRfYnVp
bGRlcl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgIm1wcmlzOmxlbmd0aCIsIGdfdmFyaWFudF9uZXdf
aW50NjQobm93UGxheWluZ0luZm8tPmR1cmF0aW9uICogMTAwMDAwMCkpOworICAgIGdfdmFyaWFu
dF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAieGVzYW06dGl0bGUiLCBnX3ZhcmlhbnRf
bmV3X3N0cmluZyhub3dQbGF5aW5nSW5mby0+dGl0bGUudXRmOCgpLmRhdGEoKSkpOworICAgIGdf
dmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAieGVzYW06YWxidW0iLCBnX3Zh
cmlhbnRfbmV3X3N0cmluZyhub3dQbGF5aW5nSW5mby0+YWxidW0udXRmOCgpLmRhdGEoKSkpOwor
ICAgIGlmIChub3dQbGF5aW5nSW5mby0+YXJ0d29yaykKKyAgICAgICAgZ192YXJpYW50X2J1aWxk
ZXJfYWRkKCZidWlsZGVyLCAie3N2fSIsICJtcHJpczphcnRVcmwiLCBnX3ZhcmlhbnRfbmV3X3N0
cmluZyhub3dQbGF5aW5nSW5mby0+YXJ0d29yay0+c3JjLnV0ZjgoKS5kYXRhKCkpKTsKKworICAg
IEdWYXJpYW50QnVpbGRlciBhcnRpc3RCdWlsZGVyOworICAgIGdfdmFyaWFudF9idWlsZGVyX2lu
aXQoJmFydGlzdEJ1aWxkZXIsIEdfVkFSSUFOVF9UWVBFKCJhcyIpKTsKKyAgICBnX3ZhcmlhbnRf
YnVpbGRlcl9hZGQoJmFydGlzdEJ1aWxkZXIsICJzIiwgbm93UGxheWluZ0luZm8tPmFydGlzdC51
dGY4KCkuZGF0YSgpKTsKKyAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7c3Z9
IiwgInhlc2FtOmFydGlzdCIsIGdfdmFyaWFudF9idWlsZGVyX2VuZCgmYXJ0aXN0QnVpbGRlcikp
OworCisgICAgbV9ub3dQbGF5aW5nSW5mbyA9IGdfdmFyaWFudF9idWlsZGVyX2VuZCgmYnVpbGRl
cik7CisKKyAgICBHVmFyaWFudEJ1aWxkZXIgcHJvcGVydGllc0J1aWxkZXI7CisgICAgZ192YXJp
YW50X2J1aWxkZXJfaW5pdCgmcHJvcGVydGllc0J1aWxkZXIsIEdfVkFSSUFOVF9UWVBFKCJhe3N2
fSIpKTsKKyAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJnByb3BlcnRpZXNCdWlsZGVyLCAie3N2
fSIsICJNZXRhZGF0YSIsIG1fbm93UGxheWluZ0luZm8uZ2V0KCkpOworICAgIGVtaXRQcm9wZXJ0
aWVzQ2hhbmdlZChnX3ZhcmlhbnRfbmV3KCIoc2F7c3Z9YXMpIiwgREJVU19NUFJJU19QTEFZRVJf
SU5URVJGQUNFLCAmcHJvcGVydGllc0J1aWxkZXIsIG51bGxwdHIpKTsKK30KKworR1ZhcmlhbnQq
IE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpnZXRQbGF5YmFja1N0YXR1c0FzR1ZhcmlhbnQoKQor
eworICAgIGF1dG8qIHNlc3Npb24gPSBub3dQbGF5aW5nRWxpZ2libGVTZXNzaW9uKCk7CisgICAg
aWYgKCFzZXNzaW9uKQorICAgICAgICByZXR1cm4gZ192YXJpYW50X25ld19zdHJpbmcoIlN0b3Bw
ZWQiKTsKKworICAgIHN3aXRjaCAoc2Vzc2lvbi0+c3RhdGUoKSkgeworICAgIGNhc2UgUGxhdGZv
cm1NZWRpYVNlc3Npb246OlN0YXRlOjpBdXRvcGxheWluZzoKKyAgICBjYXNlIFBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpTdGF0ZTo6UGxheWluZzoKKyAgICAgICAgcmV0dXJuIGdfdmFyaWFudF9uZXdf
c3RyaW5nKCJQbGF5aW5nIik7CisgICAgY2FzZSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU6
OlBhdXNlZDoKKyAgICAgICAgcmV0dXJuIGdfdmFyaWFudF9uZXdfc3RyaW5nKCJQYXVzZWQiKTsK
KyAgICBjYXNlIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6SWRsZToKKyAgICBjYXNlIFBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6SW50ZXJydXB0ZWQ6CisgICAgICAgIHJldHVybiBn
X3ZhcmlhbnRfbmV3X3N0cmluZygiU3RvcHBlZCIpOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworR1ZhcmlhbnQqIE1lZGlhU2Vzc2lv
bk1hbmFnZXJHTGliOjpnZXRBY3RpdmVTZXNzaW9uUG9zaXRpb24oKQoreworICAgIGF1dG8qIHNl
c3Npb24gPSBub3dQbGF5aW5nRWxpZ2libGVTZXNzaW9uKCk7CisgICAgcmV0dXJuIGdfdmFyaWFu
dF9uZXdfaW50NjQoc2Vzc2lvbiA/IHNlc3Npb24tPm5vd1BsYXlpbmdJbmZvKCktPmN1cnJlbnRU
aW1lICogMTAwMDAwMCA6IDApOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpk
aXNwYXRjaChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIHBs
YXRmb3JtQ29tbWFuZCwgUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbW1hbmRBcmd1bWVu
dCBhcmd1bWVudCkKK3sKKyAgICBtX2lzU2Vla2luZyA9IHBsYXRmb3JtQ29tbWFuZCA9PSBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbjo6U2Vla1RvUGxheWJhY2tQb3NpdGlvbkNvbW1hbmQ7CisgICAgbV9u
b3dQbGF5aW5nTWFuYWdlci0+ZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKHBsYXRmb3Jt
Q29tbWFuZCwgYXJndW1lbnQpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpl
bWl0UHJvcGVydGllc0NoYW5nZWQoR1ZhcmlhbnQqIHBhcmFtZXRlcnMpCit7CisgICAgaWYgKCFt
X2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9y
PiBlcnJvcjsKKyAgICBpZiAoIWdfZGJ1c19jb25uZWN0aW9uX2VtaXRfc2lnbmFsKG1fY29ubmVj
dGlvbi5nZXQoKSwgbnVsbHB0ciwgREJVU19NUFJJU19PQkpFQ1RfUEFUSCwgIm9yZy5mcmVlZGVz
a3RvcC5EQnVzLlByb3BlcnRpZXMiLCAiUHJvcGVydGllc0NoYW5nZWQiLCBwYXJhbWV0ZXJzLCAm
ZXJyb3Iub3V0UHRyKCkpKQorICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxlZCB0byBlbWl0IE1Q
UklTIHByb3BlcnRpZXMgY2hhbmdlZDogJXMiLCBlcnJvciA/IGVycm9yLT5tZXNzYWdlIDogIlVu
a25vd24gRXJyb3IiKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
VVNFKEdMSUIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nbGli
L01lZGlhU2Vzc2lvbk1hbmFnZXJHTGliLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nbGliL01lZGlhU2Vzc2lvbk1hbmFnZXJHTGliLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjJmYzg0ZGQwMjRk
ZTg5NWVhZWQ4NWViY2I2YjI0M2IwOWU5MmFkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIuaApAQCAt
MCwwICsxLDExNiBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTAorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u
LCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBVU0UoR0xJ
QikKKworI2luY2x1ZGUgIk5vd1BsYXlpbmdNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyLmgiCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBOb3dQbGF5aW5nSW5mbzsKKworY2xhc3MgTWVk
aWFTZXNzaW9uTWFuYWdlckdMaWIKKyAgICA6IHB1YmxpYyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIKKyAgICAsIHByaXZhdGUgTm93UGxheWluZ01hbmFnZXI6OkNsaWVudCB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgTWVkaWFTZXNzaW9uTWFuYWdlckdM
aWIoKTsKKyAgICB+TWVkaWFTZXNzaW9uTWFuYWdlckdMaWIoKTsKKworICAgIGJvb2wgc2V0dXBN
cHJpcygpOworCisgICAgdm9pZCBiZWdpbkludGVycnVwdGlvbihQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6SW50ZXJydXB0aW9uVHlwZSkgZmluYWw7CisKKyAgICBib29sIGhhc0FjdGl2ZU5vd1BsYXlp
bmdTZXNzaW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9ub3dQbGF5aW5nQWN0aXZlOyB9Cisg
ICAgU3RyaW5nIGxhc3RVcGRhdGVkTm93UGxheWluZ1RpdGxlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9sYXN0VXBkYXRlZE5vd1BsYXlpbmdUaXRsZTsgfQorICAgIGRvdWJsZSBsYXN0VXBkYXRl
ZE5vd1BsYXlpbmdEdXJhdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbGFzdFVwZGF0ZWRO
b3dQbGF5aW5nRHVyYXRpb247IH0KKyAgICBkb3VibGUgbGFzdFVwZGF0ZWROb3dQbGF5aW5nRWxh
cHNlZFRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xhc3RVcGRhdGVkTm93UGxheWluZ0Vs
YXBzZWRUaW1lOyB9CisgICAgTWVkaWFVbmlxdWVJZGVudGlmaWVyIGxhc3RVcGRhdGVkTm93UGxh
eWluZ0luZm9VbmlxdWVJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sYXN0VXBk
YXRlZE5vd1BsYXlpbmdJbmZvVW5pcXVlSWRlbnRpZmllcjsgfQorICAgIGJvb2wgcmVnaXN0ZXJl
ZEFzTm93UGxheWluZ0FwcGxpY2F0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9yZWdpc3Rl
cmVkQXNOb3dQbGF5aW5nQXBwbGljYXRpb247IH0KKyAgICBib29sIGhhdmVFdmVyUmVnaXN0ZXJl
ZEFzTm93UGxheWluZ0FwcGxpY2F0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9oYXZlRXZl
clJlZ2lzdGVyZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbjsgfQorCisgICAgdm9pZCBidXNBY3F1
aXJlZChHREJ1c0Nvbm5lY3Rpb24qKTsKKyAgICB2b2lkIG5hbWVBY3F1aXJlZChHREJ1c0Nvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24pIHsgbV9jb25uZWN0aW9uID0gY29ubmVjdGlvbjsgfQorICAgIHZv
aWQgbmFtZUxvc3QoR0RCdXNDb25uZWN0aW9uKik7CisgICAgR1ZhcmlhbnQqIGdldE1ldGFkYXRh
QXNHVmFyaWFudCgpIGNvbnN0IHsgcmV0dXJuIG1fbm93UGxheWluZ0luZm8uZ2V0KCk7IH0KKyAg
ICBHVmFyaWFudCogZ2V0UGxheWJhY2tTdGF0dXNBc0dWYXJpYW50KCk7CisgICAgR1ZhcmlhbnQq
IGdldEFjdGl2ZVNlc3Npb25Qb3NpdGlvbigpOworICAgIHZvaWQgZGlzcGF0Y2goUGxhdGZvcm1N
ZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSwgUGxhdGZvcm1NZWRpYVNlc3Np
b246OlJlbW90ZUNvbW1hbmRBcmd1bWVudCk7CisKK3Byb3RlY3RlZDoKKyAgICB2b2lkIHNjaGVk
dWxlU2Vzc2lvblN0YXR1c1VwZGF0ZSgpIGZpbmFsOworICAgIHZvaWQgdXBkYXRlTm93UGxheWlu
Z0luZm8oKTsKKworICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYp
IGZpbmFsOworICAgIHZvaWQgYWRkU2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIGZpbmFs
OworICAgIHZvaWQgc2V0Q3VycmVudFNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mKSBmaW5h
bDsKKworICAgIGJvb2wgc2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNz
aW9uJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXNzaW9uV2lsbEVuZFBsYXliYWNrKFBsYXRmb3Jt
TWVkaWFTZXNzaW9uJiwgRGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZykgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBzZXNzaW9uU3RhdGVDaGFuZ2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzZXNzaW9uRGlkRW5kUmVtb3RlU2NydWJiaW5nKFBsYXRmb3JtTWVkaWFT
ZXNzaW9uJikgZmluYWw7CisgICAgdm9pZCBjbGllbnRDaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKFBs
YXRmb3JtTWVkaWFTZXNzaW9uJikgZmluYWw7CisgICAgdm9pZCBzZXNzaW9uQ2FuUHJvZHVjZUF1
ZGlvQ2hhbmdlZCgpIGZpbmFsOworCisgICAgdmlydHVhbCB2b2lkIHByb3ZpZGVQcmVzZW50aW5n
QXBwbGljYXRpb25QSURJZk5lY2Vzc2FyeSgpIHsgfQorCisgICAgUGxhdGZvcm1NZWRpYVNlc3Np
b24qIG5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24oKTsKKworICAgIHZvaWQgYWRkU3VwcG9ydGVk
Q29tbWFuZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlKSBm
aW5hbDsKKyAgICB2b2lkIHJlbW92ZVN1cHBvcnRlZENvbW1hbmQoUGxhdGZvcm1NZWRpYVNlc3Np
b246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSkgZmluYWw7CisKKyAgICB2b2lkIHJlc2V0SGF2
ZUV2ZXJSZWdpc3RlcmVkQXNOb3dQbGF5aW5nQXBwbGljYXRpb25Gb3JUZXN0aW5nKCkgZmluYWwg
eyBtX2hhdmVFdmVyUmVnaXN0ZXJlZEFzTm93UGxheWluZ0FwcGxpY2F0aW9uID0gZmFsc2U7IH07
CisKK3ByaXZhdGU6CisgICAgdm9pZCBlbWl0UHJvcGVydGllc0NoYW5nZWQoR1ZhcmlhbnQqKTsK
KworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFt
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYiI7IH0K
KyNlbmRpZgorCisgICAgLy8gTm93UGxheWluZ01hbmFnZXI6OkNsaWVudAorICAgIHZvaWQgZGlk
UmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVD
b250cm9sQ29tbWFuZFR5cGUgdHlwZSwgY29uc3QgUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90
ZUNvbW1hbmRBcmd1bWVudCYgYXJndW1lbnQpIGZpbmFsIHsgcHJvY2Vzc0RpZFJlY2VpdmVSZW1v
dGVDb250cm9sQ29tbWFuZCh0eXBlLCBhcmd1bWVudCk7IH0KKworICAgIHVuc2lnbmVkIG1fb3du
ZXJJZCB7IDAgfTsKKyAgICB1bnNpZ25lZCBtX3Jvb3RSZWdpc3RyYXRpb25JZCB7IDAgfTsKKyAg
ICB1bnNpZ25lZCBtX3BsYXllclJlZ2lzdHJhdGlvbklkIHsgMCB9OworICAgIGJvb2wgbV9pc1Nl
ZWtpbmcgeyBmYWxzZSB9OworICAgIEdSZWZQdHI8R0RCdXNDb25uZWN0aW9uPiBtX2Nvbm5lY3Rp
b247CisgICAgR1JlZlB0cjxHREJ1c05vZGVJbmZvPiBtX21wcmlzSW50ZXJmYWNlOworICAgIEdS
ZWZQdHI8R1ZhcmlhbnQ+IG1fbm93UGxheWluZ0luZm87CisKKyAgICBib29sIG1fbm93UGxheWlu
Z0FjdGl2ZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX3JlZ2lzdGVyZWRBc05vd1BsYXlpbmdBcHBs
aWNhdGlvbiB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhdmVFdmVyUmVnaXN0ZXJlZEFzTm93UGxh
eWluZ0FwcGxpY2F0aW9uIHsgZmFsc2UgfTsKKworICAgIC8vIEZvciB0ZXN0aW5nIHB1cnBvc2Vz
IG9ubHkuCisgICAgU3RyaW5nIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nVGl0bGU7CisgICAgZG91
YmxlIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nRHVyYXRpb24geyBOQU4gfTsKKyAgICBkb3VibGUg
bV9sYXN0VXBkYXRlZE5vd1BsYXlpbmdFbGFwc2VkVGltZSB7IE5BTiB9OworICAgIE1lZGlhVW5p
cXVlSWRlbnRpZmllciBtX2xhc3RVcGRhdGVkTm93UGxheWluZ0luZm9VbmlxdWVJZGVudGlmaWVy
OworCisgICAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPE5vd1BsYXlpbmdNYW5hZ2VyPiBtX25vd1Bs
YXlpbmdNYW5hZ2VyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
VVNFKEdMSUIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL1JlbW90
ZUNvbW1hbmRMaXN0ZW5lckdMaWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9S
ZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzMxZGMyY2RiOWIwYTEz
ZDI0ZWQyM2JiMjdkNzY2NTEwZmU0ZGNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ2xpYi9SZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliLmNwcApAQCAtMCwwICsx
LDQ1IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAg
MDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJl
bW90ZUNvbW1hbmRMaXN0ZW5lckdMaWIuaCIKKworI2lmIFVTRShHTElCKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliPiBS
ZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliOjpjcmVhdGUoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xp
ZW50JiBjbGllbnQpCit7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8UmVtb3RlQ29tbWFuZExpc3Rl
bmVyR0xpYj4oY2xpZW50KTsKK30KKwordm9pZCBSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliOjp1
cGRhdGVTdXBwb3J0ZWRDb21tYW5kcygpCit7CisgICAgLy8gUmVtb3RlIGNvbW1hbmRzIGFyZSBo
YW5kbGVkIGFzIHVzZXItdHJpZ2dlcmVkIE1QUklTIGFjdGlvbnMgaW4gTWVkaWFTZXNzaW9uTWFu
YWdlckdMaWIuCit9CisKK1JlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWI6OlJlbW90ZUNvbW1hbmRM
aXN0ZW5lckdMaWIoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50JiBjbGllbnQpCisgICAgOiBS
ZW1vdGVDb21tYW5kTGlzdGVuZXIoY2xpZW50KQoreworfQorCitSZW1vdGVDb21tYW5kTGlzdGVu
ZXJHTGliOjp+UmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYigpID0gZGVmYXVsdDsKKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvUmVtb3RlQ29t
bWFuZExpc3RlbmVyR0xpYi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9SZW1vdGVD
b21tYW5kTGlzdGVuZXJHTGliLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTFiN2Q2MjljMzVlNmMxZDI4YWE5MmI2
ZTNhYzZkOWU5YzMwY2Q0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dsaWIvUmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYi5oCkBAIC0wLDAgKzEsNDEgQEAKKy8q
CisgKiAgQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAx
ICBVU0EKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlJlbW90ZUNvbW1hbmRMaXN0
ZW5lci5oIgorCisjaWYgVVNFKEdMSUIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
UmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYiA6IHB1YmxpYyBSZW1vdGVDb21tYW5kTGlzdGVuZXIg
eworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3Rl
bmVyR0xpYj4gY3JlYXRlKFJlbW90ZUNvbW1hbmRMaXN0ZW5lckNsaWVudCYpOworICAgIFJlbW90
ZUNvbW1hbmRMaXN0ZW5lckdMaWIoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50Jik7CisgICAg
dmlydHVhbCB+UmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYigpOworCitwcml2YXRlOgorICAgIHZv
aWQgdXBkYXRlU3VwcG9ydGVkQ29tbWFuZHMoKSBmaW5hbDsKKworICAgIGNvbnN0IFJlbW90ZUNv
bW1hbmRzU2V0JiBkZWZhdWx0Q29tbWFuZHMoKTsKK307CisKK30KKworI2VuZGlmIC8vIFVTRShH
TElCKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VP
cmllbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmll
bnRhdGlvbi5oCmluZGV4IGQ5OTBhM2RjNTU1ZmNkZGI2MTM3NGRiN2QwY2Q3NWRhOGRmNDk4OGYu
LmQ0ZDkyZWRjYTdlZGVjNmFjNDcyZDRlYTJlOGMzZmJmYThlZmQxZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT3JpZW50YXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9yaWVudGF0aW9uLmgKQEAgLTMw
LDYgKzMwLDEyIEBACiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVkZSA8d3RmL0VudW1U
cmFpdHMuaD4KIAorI2lmIFVTRShHTElCKQorI2lmIGRlZmluZWQoTm9uZSkKKyN1bmRlZiBOb25l
CisjZW5kaWYKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBJbWFnZU9y
aWVudGF0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFNldHRpbmdzLmNwcAppbmRleCA5ZmEyNGJiYzcwZTAxMGVlNjczM2Q3OTJmODZjYjY1Yzcy
YTU2YzBlLi4xODg2ODMzMTJiNDdiOGEyZTdkNGFiNWY4NmIxNjJkMGM0NDJlOTQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3Bw
CkBAIC0xNzEsNiArMTcxLDcgQEAgZW51bSB7CiAgICAgUFJPUF9FTkFCTEVfSkFWQVNDUklQVF9N
QVJLVVAsCiAgICAgUFJPUF9FTkFCTEVfTUVESUEsCiAgICAgUFJPUF9NRURJQV9DT05URU5UX1RZ
UEVTX1JFUVVJUklOR19IQVJEV0FSRV9TVVBQT1JULAorICAgIFBST1BfRU5BQkxFX01FRElBX1NF
U1NJT04sCiAgICAgTl9QUk9QRVJUSUVTLAogfTsKIApAQCAtMzkwLDYgKzM5MSw5IEBAIHN0YXRp
YyB2b2lkIHdlYktpdFNldHRpbmdzU2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBw
cm9wSWQsIGNvbnN0IEdWYWx1CiAgICAgY2FzZSBQUk9QX01FRElBX0NPTlRFTlRfVFlQRVNfUkVR
VUlSSU5HX0hBUkRXQVJFX1NVUFBPUlQ6CiAgICAgICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfbWVk
aWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydChzZXR0aW5ncywgZ192
YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9F
TkFCTEVfTUVESUFfU0VTU0lPTjoKKyAgICAgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVf
bWVkaWFfc2Vzc2lvbihzZXR0aW5ncywgZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOworICAg
ICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURf
UFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBhcmFtU3BlYyk7CiAgICAgICAgIGJyZWFrOwpA
QCAtNTg2LDYgKzU5MCw5IEBAIHN0YXRpYyB2b2lkIHdlYktpdFNldHRpbmdzR2V0UHJvcGVydHko
R09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIEdWYWx1ZSogdmFsCiAgICAgY2FzZSBQUk9Q
X01FRElBX0NPTlRFTlRfVFlQRVNfUkVRVUlSSU5HX0hBUkRXQVJFX1NVUFBPUlQ6CiAgICAgICAg
IGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1ZSwgd2Via2l0X3NldHRpbmdzX2dldF9tZWRpYV9jb250
ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0KHNldHRpbmdzKSk7CiAgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUFJPUF9FTkFCTEVfTUVESUFfU0VTU0lPTjoKKyAgICAgICAgZ192
YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfbWVkaWFf
c2Vzc2lvbihzZXR0aW5ncykpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAg
ICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBhcmFt
U3BlYyk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTU0Niw2ICsxNTUzLDI0IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF9zZXR0aW5nc19jbGFzc19pbml0KFdlYktpdFNldHRpbmdzQ2xhc3MqIGtsYXNzKQog
ICAgICAgICAgICAgbnVsbHB0ciwgLy8gQSBudWxsIHN0cmluZyBmb3JjZXMgdGhlIGRlZmF1bHQg
dmFsdWUuCiAgICAgICAgICAgICByZWFkV3JpdGVDb25zdHJ1Y3RQYXJhbUZsYWdzKTsKIAorICAg
IC8qKgorICAgICAqIFdlYktpdFNldHRpbmdzOmVuYWJsZS1tZWRpYS1zZXNzaW9uOgorICAgICAq
CisgICAgICogRW5hYmxlIG9yIGRpc2FibGUgc3VwcG9ydCBmb3IgbWVkaWEgc2Vzc2lvbiBvbiBw
YWdlcy4gVGhpcyBmZWF0dXJlIGFsbG93cyB3ZWItcGFnZXMgdG8KKyAgICAgKiBwcm92aWRlIGhp
Z2ggbGV2ZWwgbWVkaWEgcGxheWJhY2sgZmVhdHVyZXMgc3VjaCBhcyBwbGF5bGlzdHMsIGN1c3Rv
bSBtZXRhZGF0YSBoYW5kbGluZyBhbmQKKyAgICAgKiBwcmVzZW50YXRpb24gb3IgZXZlbiByZW1v
dGUgY29udHJvbCBvZiBtZWRpYSBwbGF5ZXJzLgorICAgICAqCisgICAgICogU2VlIGFsc28gaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhc2Vzc2lvbi8KKyAgICAgKgorICAgICAqIFNpbmNlOiAy
LjM0CisgICAgICovCisgICAgc09ialByb3BlcnRpZXNbUFJPUF9FTkFCTEVfTUVESUFfU0VTU0lP
Tl0gPSBnX3BhcmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAgImVuYWJsZS1tZWRpYS1zZXNzaW9u
IiwKKyAgICAgICAgXygiRW5hYmxlIG1lZGlhIHNlc3Npb24iKSwKKyAgICAgICAgXygiV2hldGhl
ciBtZWRpYSBzZXNzaW9uIHNob3VsZCBiZSBoYW5kbGVkIiksCisgICAgICAgIFRSVUUsCisgICAg
ICAgIHJlYWRXcml0ZUNvbnN0cnVjdFBhcmFtRmxhZ3MpOworCiAgICAgZ19vYmplY3RfY2xhc3Nf
aW5zdGFsbF9wcm9wZXJ0aWVzKGdPYmplY3RDbGFzcywgTl9QUk9QRVJUSUVTLCBzT2JqUHJvcGVy
dGllcyk7CiB9CiAKQEAgLTM4NTgsMyArMzg4Myw0NCBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19z
ZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydChXZWJLaXRT
ZQogICAgIHByaXYtPm1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0ID0g
bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRTdHJpbmcudXRmOCgpOwog
ICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVDVChzZXR0aW5ncyksIHNPYmpQcm9w
ZXJ0aWVzW1BST1BfTUVESUFfQ09OVEVOVF9UWVBFU19SRVFVSVJJTkdfSEFSRFdBUkVfU1VQUE9S
VF0pOwogfQorCisvKioKKyAqIHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX21lZGlhX3Nlc3Np
b246CisgKiBAc2V0dGluZ3M6IGEgI1dlYktpdFNldHRpbmdzCisgKgorICogR2V0IHRoZSAjV2Vi
S2l0U2V0dGluZ3M6ZW5hYmxlLW1lZGlhLXNlc3Npb24gcHJvcGVydHkuCisgKgorICogUmV0dXJu
czogJVRSVUUgaWYgbWVkaWEgc2Vzc2lvbiBpcyBlbmFibGVkIG9yICVGQUxTRSBvdGhlcndpc2Uu
CisgKgorICogU2luY2U6IDIuMzQKKyAqLworZ2Jvb2xlYW4gd2Via2l0X3NldHRpbmdzX2dldF9l
bmFibGVfbWVkaWFfc2Vzc2lvbihXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MpCit7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSwgRkFMU0UpOwor
CisgICAgcmV0dXJuIHNldHRpbmdzLT5wcml2LT5wcmVmZXJlbmNlcy0+bWVkaWFTZXNzaW9uRW5h
YmxlZCgpOworfQorCisvKioKKyAqIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX21lZGlhX3Nl
c3Npb246CisgKiBAc2V0dGluZ3M6IGEgI1dlYktpdFNldHRpbmdzCisgKiBAZW5hYmxlZDogVmFs
dWUgdG8gYmUgc2V0CisgKgorICogU2V0IHRoZSAjV2ViS2l0U2V0dGluZ3M6ZW5hYmxlLW1lZGlh
LXNlc3Npb24gcHJvcGVydHkuCisgKgorICogU2luY2U6IDIuMzQKKyAqLwordm9pZCB3ZWJraXRf
c2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9zZXNzaW9uKFdlYktpdFNldHRpbmdzKiBzZXR0aW5n
cywgZ2Jvb2xlYW4gZW5hYmxlZCkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19T
RVRUSU5HUyhzZXR0aW5ncykpOworCisgICAgV2ViS2l0U2V0dGluZ3NQcml2YXRlKiBwcml2ID0g
c2V0dGluZ3MtPnByaXY7CisgICAgYm9vbCBjdXJyZW50VmFsdWUgPSBwcml2LT5wcmVmZXJlbmNl
cy0+bWVkaWFTZXNzaW9uRW5hYmxlZCgpOworICAgIGlmIChjdXJyZW50VmFsdWUgPT0gZW5hYmxl
ZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldE1lZGlhU2Vz
c2lvbkVuYWJsZWQoZW5hYmxlZCk7CisgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yRW5hYmxlZChlbmFibGVkKTsKKyAgICBwcml2LT5wcmVmZXJlbmNlcy0+
c2V0TWVkaWFTZXNzaW9uUGxheWxpc3RFbmFibGVkKGVuYWJsZWQpOworICAgIGdfb2JqZWN0X25v
dGlmeV9ieV9wc3BlYyhHX09CSkVDVChzZXR0aW5ncyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfRU5B
QkxFX01FRElBX1NFU1NJT05dKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0U2V0dGluZ3MuaAppbmRleCBkY2I1Y2UxYmZiMDUzZWYwMjAzZDZkYWNlODdm
ZTlhODI3YWQ1YmNmLi4xZjE4N2ZjMTgzOTQ3YWJkZjExZTFlMDY1NTk1MjM2MDg1NTlkODRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdz
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5o
CkBAIC01MTMsNiArNTEzLDEzIEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3NldHRpbmdzX3Nl
dF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBwb3J0IChXZWJLaXRT
ZXR0aW5ncyAqc2V0dGluZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpjb250ZW50X3R5cGVz
KTsKIAorV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfbWVk
aWFfc2Vzc2lvbiAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5n
cyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWFf
c2Vzc2lvbiAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNldHRpbmdzICpzZXR0aW5ncywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnYm9vbGVhbiAgICAgICAgZW5hYmxlZCk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRp
ZiAvKiBXZWJLaXRTZXR0aW5nc19oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dApp
bmRleCA2NWViNWQ4YWE1NThiZTUwNWE5NDI4NDE2MzI1ZTdmNTEwY2IxN2I4Li43NDI5M2FkNzZl
MGQzOGM3NmU5MjdhZDY3NTYzM2M2OGI2ZmM4OWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0
aW9ucy50eHQKQEAgLTU3Miw2ICs1NzIsOCBAQCB3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9t
ZWRpYQogd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWEKIHdlYmtpdF9zZXR0aW5nc19n
ZXRfbWVkaWFfY29udGVudF90eXBlc19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydAogd2Via2l0
X3NldHRpbmdzX3NldF9tZWRpYV9jb250ZW50X3R5cGVzX3JlcXVpcmluZ19oYXJkd2FyZV9zdXBw
b3J0Cit3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9tZWRpYV9zZXNzaW9uCit3ZWJraXRfc2V0
dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9zZXNzaW9uCiAKIDxTVUJTRUNUSU9OIFN0YW5kYXJkPgog
V2ViS2l0U2V0dGluZ3NDbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXRTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9XZWJLaXRTZXR0aW5ncy5oCmluZGV4IDUzZDU1Nzc1ZTdmMjg2YTIyMTAwNmJhMTE2OWVmNTgx
YjU2ODFmMTcuLjE3ZGUzZTgzYjk4MTVmNTA1OTI5NmZhODU3ZmQ5OTMyNmMxNzJhZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0U2V0dGluZ3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFNldHRpbmdzLmgKQEAg
LTQ3MCw2ICs0NzAsMTMgQEAgV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfc2V0dGluZ3Nfc2V0X21l
ZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5nX2hhcmR3YXJlX3N1cHBvcnQgKFdlYktpdFNldHRp
bmdzICpzZXR0aW5ncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKmNvbnRlbnRfdHlwZXMpOwog
CitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9tZWRpYV9z
ZXNzaW9uICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzKTsK
KworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9tZWRpYV9zZXNz
aW9uICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U2V0dGluZ3MgKnNldHRpbmdzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdib29sZWFuICAgICAgICBlbmFibGVkKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmIC8q
IFdlYktpdFNldHRpbmdzX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dAppbmRleCAxM2NmYjA0ZjNjNDdi
NjViMzE3ZTk4NzcyMTQwYjhhNWE0ODE2YzUwLi5mZDUyN2UzZTAwMzcyYjEzMTNiNjk3OGU1ODg5
OTZmNmVjYThlYmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3Bl
L2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CkBAIC01NjYsNiArNTY2LDggQEAgd2Vi
a2l0X3NldHRpbmdzX2dldF9lbmFibGVfbWVkaWEKIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxl
X21lZGlhCiB3ZWJraXRfc2V0dGluZ3NfZ2V0X21lZGlhX2NvbnRlbnRfdHlwZXNfcmVxdWlyaW5n
X2hhcmR3YXJlX3N1cHBvcnQKIHdlYmtpdF9zZXR0aW5nc19zZXRfbWVkaWFfY29udGVudF90eXBl
c19yZXF1aXJpbmdfaGFyZHdhcmVfc3VwcG9ydAord2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVf
bWVkaWFfc2Vzc2lvbgord2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWFfc2Vzc2lvbgog
CiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KIFdlYktpdFNldHRpbmdzQ2xhc3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsu
Y21ha2UKaW5kZXggNDc2NjBjYjNjODU1YjUyZTI4NWMzY2QzZDYwOTU3ODQ2N2YxOGQ2Mi4uZTI1
YjUxNDAwNjk4OGM2YmJkNDY2YWQzODcwNzk4OWVmY2U0YmVlNiAxMDA2NDQKLS0tIGEvU291cmNl
L2NtYWtlL09wdGlvbnNHVEsuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21h
a2UKQEAgLTE1Nyw2ICsxNTcsOCBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfSU5QVVRfVFlQRV9NT05USCBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSBQUklWQVRFIE9OKQogV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSyBQUklWQVRFIE9O
KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0xBWU9VVF9GT1JNQVRU
SU5HX0NPTlRFWFQgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQorV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01FRElBX1NFU1NJT04gUFJJVkFU
RSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQorV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX01FRElBX1NFU1NJT05fUExBWUxJU1QgUFJJVkFURSAke0VOQUJM
RV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX01FRElBX1NUUkVBTSBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFU
VVJFU30pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUhUTUwgUFJJ
VkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NT1VTRV9D
VVJTT1JfU0NBTEUgUFJJVkFURSBPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25z
V1BFLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKaW5kZXggZDU2ZGViODk2
MjFjNTU1OTE1YmQ2M2FhZmU4OWYxOTM4ZGUxZDkyMC4uMzg4ODkyM2Q0NjExOGIwZWQ3MWY2NGRk
Yjk2OTJhNDFjMTlmYTM3YiAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21h
a2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKQEAgLTUxLDYgKzUxLDggQEAg
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0RBUktfTU9ERV9DU1MgUFJJ
VkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9GSUxURVJT
X0xFVkVMXzIgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVO
QUJMRV9HUFVfUFJPQ0VTUyBQUklWQVRFIE9GRikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUIFBSSVZBVEUgJHtFTkFCTEVf
RVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9NRURJQV9TRVNTSU9OIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRV
UkVTfSkKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9TRVNT
SU9OX1BMQVlMSVNUIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9TVFJFQU0gUFJJVkFU
RSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQogV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX01IVE1MIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFV
TFRfUE9SVF9WQUxVRShFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSBQUklWQVRFIE9GRikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZSBiL1NvdXJjZS9jbWFr
ZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQppbmRleCBkNzhlNmQzNDVhMDAyNWI3MDNhYzhmMDM2MjIz
ZWVkM2E0NzUzOGY1Li45MjRjMGNiMWYyY2EwZmQ2NzU4ZDNjYWRlYmE3NWYwZjQ3Y2U5YTkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKKysrIGIvU291cmNl
L2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCkBAIC0xNjksNiArMTY5LDkgQEAgbWFjcm8oV0VC
S0lUX09QVElPTl9CRUdJTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfTUFUSE1M
ICJUb2dnbGUgTWF0aE1MIHN1cHBvcnQiIFBSSVZBVEUgT04pCiAgICAgV0VCS0lUX09QVElPTl9E
RUZJTkUoRU5BQkxFX01FRElBX0NBUFRVUkUgIlRvZ2dsZSBNZWRpYSBDYXB0dXJlIHN1cHBvcnQi
IFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9NRURJQV9DT05U
Uk9MU19TQ1JJUFQgIlRvZ2dsZSBkZWZpbml0aW9uIG9mIG1lZGlhIGNvbnRyb2xzIGluIEphdmFz
Y3JpcHQiIFBSSVZBVEUgT04pCisgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX01FRElB
X1NFU1NJT04gIlRvZ2dsZSBNZWRpYSBTZXNzaW9uIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQorICAg
IFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SICJU
b2dnbGUgTWVkaWEgU2Vzc2lvbiBDb29yZGluYXRvciBzdXBwb3J0IiBQUklWQVRFIE9GRikKKyAg
ICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVCAiVG9n
Z2xlIE1lZGlhIFNlc3Npb24gUGxheWxpc3Qgc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VC
S0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX01FRElBX1NPVVJDRSAiVG9nZ2xlIE1lZGlhIFNvdXJj
ZSBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVf
TUVESUFfU1RBVElTVElDUyAiVG9nZ2xlIE1lZGlhIFN0YXRpc3RpY3Mgc3VwcG9ydCIgUFJJVkFU
RSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX01FRElBX1NUUkVBTSAiVG9n
Z2xlIE1lZGlhIFN0cmVhbSBzdXBwb3J0IiBQUklWQVRFIE9GRikKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiNWU1Y2ExYjM4YmQ4M2VlMDY3NjE3
NjlkOWMzYTk5MGIzMzg0MjgwLi5hZTMxYTVlMTFhYmFjYjE1ZTY0NWVkNDQxNmFjYmQ3YmZiNTI2
Yzk1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMjEtMDgtMDIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtHTElCXSBNZWRpYVNlc3Npb24gaXMgbm90IGVuYWJsZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzk5MQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3NDAxMTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdFdlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHRlc3RXZWJLaXRTZXR0aW5ncyk6
IEFkZCB0ZXN0IGZvciBuZXcgc2V0dGluZy4KKyAgICAgICAgKiBmbGF0cGFrL2ZsYXRwYWt1dGls
cy5weToKKyAgICAgICAgKFdlYmtpdEZsYXRwYWsucnVuX2luX3NhbmRib3gpOiBBbGxvdyBVSSBw
cm9jZXNzIHRvIG93biBhIE1QUklTIERCdXMgbmFtZS4KKwogMjAyMS0wOC0wMSAgRnVqaWkgSGly
b25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luXVtEdW1wUmVu
ZGVyVHJlZV0gQ2xlYW4gdXAgSW5kZXhlZERCIGZpbGVzIGJldHdlZW4gdGVzdHMKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0dGlu
Z3MuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRT
ZXR0aW5ncy5jcHAKaW5kZXggOWM5NjE3MjNlZGY3M2U2OWNkYjJlOTQyYTlhYjgxNjRkM2IzNmZi
My4uYmExMjM5NGNjNTdmMmM0ZmJlMWZjNGY5Y2RhOTdmZjM0Yjc2NDhjNyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRTZXR0aW5ncy5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRT
ZXR0aW5ncy5jcHAKQEAgLTMxMSw2ICszMTEsMTEgQEAgc3RhdGljIHZvaWQgdGVzdFdlYktpdFNl
dHRpbmdzKFRlc3QqLCBnY29uc3Rwb2ludGVyKQogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5h
YmxlX21lZGlhX2NhcGFiaWxpdGllcyhzZXR0aW5ncywgVFJVRSk7CiAgICAgZ19hc3NlcnRfdHJ1
ZSh3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9tZWRpYV9jYXBhYmlsaXRpZXMoc2V0dGluZ3Mp
KTsKIAorICAgIC8vIE1lZGlhIFNlc3Npb24gaXMgZW5hYmxlZCBieSBkZWZhdWx0CisgICAgZ19h
c3NlcnRfdHJ1ZSh3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9tZWRpYV9zZXNzaW9uKHNldHRp
bmdzKSk7CisgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfbWVkaWFfc2Vzc2lvbihzZXR0
aW5ncywgRkFMU0UpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHdlYmtpdF9zZXR0aW5nc19nZXRfZW5h
YmxlX21lZGlhX3Nlc3Npb24oc2V0dGluZ3MpKTsKKwogICAgIC8vIEZpbGUgYWNjZXNzIGZyb20g
ZmlsZSBVUkxzIGlzIG5vdCBhbGxvd2VkIGJ5IGRlZmF1bHQuCiAgICAgZ19hc3NlcnRfZmFsc2Uo
d2Via2l0X3NldHRpbmdzX2dldF9hbGxvd19maWxlX2FjY2Vzc19mcm9tX2ZpbGVfdXJscyhzZXR0
aW5ncykpOwogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfYWxsb3dfZmlsZV9hY2Nlc3NfZnJvbV9m
aWxlX3VybHMoc2V0dGluZ3MsIFRSVUUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvZmxhdHBhay9mbGF0
cGFrdXRpbHMucHkgYi9Ub29scy9mbGF0cGFrL2ZsYXRwYWt1dGlscy5weQppbmRleCBiNGQxOWYw
OTA3ZTEyMjg2NDI1MWEwNGNhM2JmNmIzYWZiZDE5MTExLi44N2M1NDBhZTYyYWYyYzZkMjQ2NjA4
NzdmY2NmMWQxYjNhM2I5MDVhIDEwMDY0NAotLS0gYS9Ub29scy9mbGF0cGFrL2ZsYXRwYWt1dGls
cy5weQorKysgYi9Ub29scy9mbGF0cGFrL2ZsYXRwYWt1dGlscy5weQpAQCAtNzc0LDYgKzc3NCw3
IEBAIGNsYXNzIFdlYmtpdEZsYXRwYWs6CiAgICAgICAgICAgICBmbGF0cGFrX2NvbW1hbmQuZXh0
ZW5kKFsKICAgICAgICAgICAgICAgICAiLS1kZXZpY2U9YWxsIiwKICAgICAgICAgICAgICAgICAi
LS1kZXZpY2U9ZHJpIiwKKyAgICAgICAgICAgICAgICAiLS1vd24tbmFtZT1vcmcubXByaXMuTWVk
aWFQbGF5ZXIyLndlYmtpdCIsCiAgICAgICAgICAgICAgICAgIi0tc2hhcmU9aXBjIiwKICAgICAg
ICAgICAgICAgICAiLS1zaGFyZT1uZXR3b3JrIiwKICAgICAgICAgICAgICAgICAiLS1zb2NrZXQ9
cHVsc2VhdWRpbyIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDNjNjU5OTM1MjhkYmU5MzFiZjk2ZTQ2ZDZlMmQ2ZTBhNjIx
OTM1OC4uZDA1Yzk4N2YxNGUzZDVmYzg3NGIzN2Y1NWRkMTRkMjBlYjQwODM0OSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDIxLTA4LTAyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KKworICAgICAgICBbR0xJQl0gTWVkaWFTZXNzaW9uIGlzIG5vdCBlbmFibGVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc5OTEKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNzQwMTE5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25z
OiBVbnNraXAgbWVkaWEtc2Vzc2lvbiB0ZXN0cy4KKwogMjAyMS0wOC0wMSAgRnVqaWkgSGlyb25v
cmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dIFVucmV2
aWV3ZWQgdGVzdCBnYXJkZW5pbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2ds
aWIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBjZWI1ZTM0OWMwZmU3YjdmMGZhYWI4ZDg4YjE5ZDIzN2IzOWVjYWYwLi44
NzFkZjQ0MzI1MzY0MjM3ZDNmNWQzZWYzODYwYWM0Y2Q1MTMyZGFlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzI4LDExICsxMzI4LDYgQEAgd2Vi
a2l0Lm9yZy9iLzIxNjM1OSBmYXN0L3RleHQvZW1vamktc3ludGhlc2lzLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KICMgRmFpbGluZyBzaW5jZSBhZGRlZCBpbiByMjY4MTM4Lgogd2Via2l0Lm9y
Zy9iLzIxNzgxNSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbWFza2lu
Zy9jbGlwLXBhdGgvY2xpcC1wYXRoLWZpbHRlci1vcmRlci5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCiAKLSMgTWVkaWFTZXNzaW9uIGlzIG5vdCBlbmFibGVkIGluIEdUSy9XUEUuCi13ZWJraXQu
b3JnL2IvMjE3OTkxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9u
LyBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzIxNzk5MSBtZWRpYS9tZWRpYS1zZXNzaW9uLyBbIFNr
aXAgXQotd2Via2l0Lm9yZy9iLzIxNzk5MSBmYXN0L21lZGlhc2Vzc2lvbi8gWyBTa2lwIF0KLQog
IyBUaGlzIHRlc3QgdXNlcyBhbiBNUEVHLTQgdmlkZW8KIG1lZGlhL3ZpZGVvLXNlZWstdG8tY3Vy
cmVudC10aW1lLmh0bWwgWyBTa2lwIF0KIApkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdl
TG9nCmluZGV4IGQ4ODVjZjNjNTg2NjJkNjQ2ZTc5Y2JkM2Y0YmMzM2IxMmY2NTdkMGYuLmJkOTJi
NDM0ZTEyZjZmNGQzMzU4MmUwOTg1MzcyODkwMjE4MTUwZTYgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxv
ZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0wOC0wMiAgUGhpbGlwcGUg
Tm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dMSUJdIE1lZGlhU2Vz
c2lvbiBpcyBub3QgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE3OTkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDc0MDExOT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGUgTWVk
aWFTZXNzaW9uIGFzIGFuIGV4cGVyaW1lbnRhbCBidWlsZCBmZWF0dXJlIGluIENNYWtlIHBvcnRz
LiBUaGUgc3BlYyBzdGF0dXMgaXMKKyAgICAgICAgY3VycmVudGx5IERyYWZ0LgorCisgICAgICAg
ICogU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtl
L09wdGlvbnNXUEUuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVz
LmNtYWtlOgorCiAyMDIxLTA3LTMwICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGln
YWxpYS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBGaXggZmFsbGJhY2sgbWV0aG9kcyBpbiB0aGUg
bGliZ2NyeXB0IGZpbmQgbW9kdWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435570</attachid>
            <date>2021-08-15 11:20:46 -0700</date>
            <delta_ts>2021-08-24 02:12:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217991-20210815112044.patch</filename>
            <type>text/plain</type>
            <size>67750</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdhMTZmNTE2YTUzMTUzODFkOTM4MGM1
ZGMyMWZhNGM2NmJiZDA1MmIuLmY4ZmViODVkNDBhMDlkMTlhNjI2MTQ0ZWMxZDRkNDJlYjRjZDJj
Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDgtMTUgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHTElCXSBNZWRpYVNlc3Npb24gaXMgbm90
IGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzk5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3NDAxMTk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR1JlZlB0ciB0ZW1wbGF0ZSBzcGVj
aWFsaXphdGlvbiBmb3IgR0RCdXNOb2RlSW5mby4KKworICAgICAgICAqIHd0Zi9nbGliL0dSZWZQ
dHIuY3BwOgorICAgICAgICAoV1RGOjpyZWZHUHRyKToKKyAgICAgICAgKFdURjo6ZGVyZWZHUHRy
KToKKyAgICAgICAgKiB3dGYvZ2xpYi9HUmVmUHRyLmg6CisKIDIwMjEtMDgtMTEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZv
ciBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IChDT0VQKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNhODhi
Mjc3NmJiNTMxOTdmZTNiZGZhOTMxYmY0YzM0MjJlYWY3YmQuLjJhMDhlOTY0NjAyZGM1NzM5YmFl
YWU0ZDI5ZDMxNWRlM2JkMTA2MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MSBAQAorMjAyMS0w
OC0xNSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0dMSUJdIE1lZGlhU2Vzc2lvbiBpcyBub3QgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3OTkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83MDc0MDExOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworCisg
ICAgICAgIEltcGxlbWVudGF0aW9uIG9mIGEgR0xpYiBNZWRpYVNlc3Npb25NYW5hZ2VyLCBhYmxl
IHRvIHByb3ZpZGUgYSBNUFJJUyBEQnVzIHNlcnZpY2UsIHNvIHRoYXQKKyAgICAgICAgdGhpcmQt
cGFydHkgaG9zdCB0b29scyBjYW4gcXVlcnkgdGhlIG1lZGlhIHBsYXliYWNrIHN0YXR1cyBhbmQg
cG90ZW50aWFsbHkgZW1pdCByZW1vdGUKKyAgICAgICAgY29udHJvbCBjb21tYW5kcyBhcyB3ZWxs
LgorCisgICAgICAgIENvdmVyZWQgYnkgbWVkaWEtc2Vzc2lvbiBsYXlvdXQgdGVzdHMgbm93IHVu
c2tpcHBlZC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhSW1hZ2UuaDoK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6bG9nQ2hhbm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpsb2dDbGFzc05hbWUp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oOgorICAgICAg
ICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV1BFLmNtYWtlOgorICAg
ICAgICAqIHBsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmdldExvZ0NoYW5uZWwpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6cmVzZXRDcmVhdGlvbkZ1bmN0aW9uKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9Tb3VyY2VzR0xpYi50eHQ6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9nbGliL01lZGlhU2Vzc2lvbk1hbmFnZXJHTGliLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWIp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6On5NZWRpYVNlc3Np
b25NYW5hZ2VyR0xpYik6CisgICAgICAgIChXZWJDb3JlOjpnZXRDb21tYW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OmhhbmRsZU1ldGhvZENhbGwpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0UHJvcGVy
dHkpOgorICAgICAgICAoV2ViQ29yZTo6aGFuZGxlR2V0UHJvcGVydHkpOgorICAgICAgICAoV2Vi
Q29yZTo6aGFuZGxlU2V0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
TWFuYWdlckdMaWI6OnNldHVwTXByaXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
TWFuYWdlckdMaWI6OmJ1c0FjcXVpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bk1hbmFnZXJHTGliOjpuYW1lTG9zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25N
YW5hZ2VyR0xpYjo6YmVnaW5JbnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uTWFuYWdlckdMaWI6OnNjaGVkdWxlU2Vzc2lvblN0YXR1c1VwZGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6c2Vzc2lvbldpbGxCZWdpblBsYXli
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpzZXNzaW9u
RGlkRW5kUmVtb3RlU2NydWJiaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1h
bmFnZXJHTGliOjphZGRTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1h
bmFnZXJHTGliOjpyZW1vdmVTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bk1hbmFnZXJHTGliOjpzZXRDdXJyZW50U2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25NYW5hZ2VyR0xpYjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6c2Vzc2lvblN0YXRlQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6Y2xpZW50Q2hhcmFjdGVy
aXN0aWNzQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xp
Yjo6c2Vzc2lvbkNhblByb2R1Y2VBdWRpb0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uTWFuYWdlckdMaWI6OmFkZFN1cHBvcnRlZENvbW1hbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnJlbW92ZVN1cHBvcnRlZENvbW1hbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6Om5vd1BsYXlpbmdFbGln
aWJsZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6
OnVwZGF0ZU5vd1BsYXlpbmdJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1h
bmFnZXJHTGliOjpnZXRQbGF5YmFja1N0YXR1c0FzR1ZhcmlhbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OmdldEFjdGl2ZVNlc3Npb25Qb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6ZGlzcGF0Y2gpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OmVtaXRQcm9wZXJ0aWVzQ2hh
bmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ2xpYi9NZWRpYVNlc3Npb25NYW5hZ2Vy
R0xpYi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGli
OjpuYW1lQWNxdWlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdM
aWI6OmdldE1ldGFkYXRhQXNHVmFyaWFudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25NYW5hZ2VyR0xpYjo6cHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJRElmTmVj
ZXNzYXJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL0FwcGxpY2F0aW9uR0xpYi5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6c2V0QXBwbGljYXRpb25OYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OmdldEFwcGxpY2F0aW9uTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRBcHBsaWNh
dGlvbklEKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEFwcGxpY2F0aW9uSUQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dsaWIvQXBwbGljYXRpb25HTGliLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dsaWIvUmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYi5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWI6OnVwZGF0ZVN1cHBvcnRlZENvbW1hbmRz
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWI6OlJlbW90ZUNv
bW1hbmRMaXN0ZW5lckdMaWIpOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvUmVtb3RlQ29tbWFu
ZExpc3RlbmVyR0xpYi5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUZyYW1lLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5o
OgorCiAyMDIxLTA4LTE1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFtMRkMgRGlzcGxheV0gSW50cm9kdWNlIHR5cGUtc2FmZSByZWN0IHR5cGVzIGZv
ciB0aGUgZGlzcGxheSB0cmVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE5ZWFkN2ZiM2QxNjRhMGNjYmY2NzI1YWZj
NzI2NGI3ZDFmMzgxOGEuLjQzMmFkZjU3NGIwNWViZmRmYThmMmU5MDliOTVhNmRkNGM0MzZkYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjEtMDgtMTUgIFBoaWxpcHBlIE5vcm1hbmQg
IDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHTElCXSBNZWRpYVNlc3Npb24gaXMg
bm90IGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNzk5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3NDAxMTk+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFzcyBBcHBsaWNhdGlvbiBu
YW1lIGFuZCB1bmlxdWUgSUQgZnJvbSB0aGUgVUlQcm9jZXNzIHRvIHRoZSBXZWJQcm9jZXNzIGlu
IFdQRSBhbmQgR1RLCisgICAgICAgIHBvcnRzLiBUaGUgQnViYmxld3JhcCBsYXVuY2hlciB3YXMg
YWxzbyBhZGFwdGVkIHRvIGFsbG93IERCdXMgTVBSSVMgbmFtZSBvd25lcnNoaXAgaW4gdGhlCisg
ICAgICAgIHNhbmRib3hlZCBXZWJQcm9jZXNzLgorCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYktpdFNldHRpbmdzQ29uc3RydWN0ZWQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0J1YmJsZXdyYXBMYXVuY2hlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OmFwcGxpY2F0aW9uSWQpOgorICAgICAgICAoV2ViS2l0OjpjcmVh
dGVGbGF0cGFrSW5mbyk6CisgICAgICAgIChXZWJLaXQ6OlhER0RCdXNQcm94eUxhdW5jaGVyOjps
YXVuY2gpOgorICAgICAgICAqIFVJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KToKKwogMjAyMS0wOC0xNCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdIFJFR1JFU1NJT046IFdlYkNvbnRlbnQgb2Z0ZW4gY3Jhc2hl
cyB3aGVuIG9wZW5pbmcgYSBHb29nbGUgc3ByZWFkc2hlZXQgd2l0aCBjaGFydHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1JlZlB0ci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nbGli
L0dSZWZQdHIuY3BwCmluZGV4IGEwZTUyZGY1Zjc1ZmNmODMwOGRlNjBhMzQ2ZWI5Zjg5NmMwMjlh
Y2EuLjFiOWFkZTNmOTM2ZWU1NjRkMzgyYzA3ZWY5NjY1NzZhYjY2MTliNDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL2dsaWIvR1JlZlB0ci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZ2xp
Yi9HUmVmUHRyLmNwcApAQCAtMTk1LDYgKzE5NSwxOSBAQCB0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVm
R1B0cihHRGF0ZVRpbWUqIHB0cikKICAgICAgICAgZ19kYXRlX3RpbWVfdW5yZWYocHRyKTsKIH0K
IAordGVtcGxhdGUgPD4gR0RCdXNOb2RlSW5mbyogcmVmR1B0cihHREJ1c05vZGVJbmZvKiBwdHIp
Cit7CisgICAgaWYgKHB0cikKKyAgICAgICAgZ19kYnVzX25vZGVfaW5mb19yZWYocHRyKTsKKyAg
ICByZXR1cm4gcHRyOworfQorCit0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmR1B0cihHREJ1c05vZGVJ
bmZvKiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAgICAgZ19kYnVzX25vZGVfaW5mb191bnJl
ZihwdHIpOworfQorCiAjaWYgSEFWRShHVVJJKQogdGVtcGxhdGUgPD4gR1VyaSogcmVmR1B0cihH
VXJpKiBwdHIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dSZWZQdHIuaCBi
L1NvdXJjZS9XVEYvd3RmL2dsaWIvR1JlZlB0ci5oCmluZGV4IGZkMmY2MDVhYzQxNWI5YzIwODJh
YjkyNzIyNGFjM2QwZDYyN2ViMDEuLjgyOTRiNTU3NzU1YTkzYzZmYTMwOGQ0N2M3YTNmNWU4MzE3
YjIzMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvR1JlZlB0ci5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL2dsaWIvR1JlZlB0ci5oCkBAIC0yNCw5ICsyNCwxMCBAQAogCiAjaWYgVVNF
KEdMSUIpCiAKLSNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgogI2luY2x1ZGUgPGFsZ29yaXRo
bT4KKyNpbmNsdWRlIDxnaW8vZ2lvLmg+CiAjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0
Zi9IYXNoVHJhaXRzLmg+CiAKIGV4dGVybiAiQyIgdm9pZCBnX29iamVjdF91bnJlZihncG9pbnRl
cik7CiBleHRlcm4gIkMiIGdwb2ludGVyIGdfb2JqZWN0X3JlZl9zaW5rKGdwb2ludGVyKTsKQEAg
LTI0Miw2ICsyNDMsOCBAQCB0ZW1wbGF0ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUgR01hcHBlZEZp
bGUqIHJlZkdQdHIoR01hcHBlZEZpbGUqKTsKIHRlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFU
RSB2b2lkIGRlcmVmR1B0cihHTWFwcGVkRmlsZSopOwogdGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9Q
UklWQVRFIEdEYXRlVGltZSogcmVmR1B0cihHRGF0ZVRpbWUqIHB0cik7CiB0ZW1wbGF0ZSA8PiBX
VEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZXJlZkdQdHIoR0RhdGVUaW1lKiBwdHIpOwordGVtcGxh
dGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIEdEQnVzTm9kZUluZm8qIHJlZkdQdHIoR0RCdXNOb2Rl
SW5mbyogcHRyKTsKK3RlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRlcmVmR1B0
cihHREJ1c05vZGVJbmZvKiBwdHIpOwogCiAjaWYgSEFWRShHVVJJKQogdGVtcGxhdGUgPD4gV1RG
X0VYUE9SVF9QUklWQVRFIEdVcmkqIHJlZkdQdHIoR1VyaSopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFJbWFnZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFJbWFnZS5oCmluZGV4IGEyNmEwNTA3YjMzMGFm
YzQyYWI0YjNjZTBhNTdkMDUwZTM4NWU4OTUuLmNiNDEyOTIxZTIzOGZkZjY0MjIzOTM4OWYxNTM5
MGFlOTc5OGUzMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYUltYWdlLmgKQEAgLTI3LDYgKzI3LDkgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OKQogCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgTWVkaWFJbWFnZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
LmNwcAppbmRleCBhYzkwNzhlMzhiYzNhNzVjYWMxZDUxZjhmZTQwZWIyNDIzMmQ2NjAyLi41N2E4
YmNiNThmNDcxZjIwOTY5ZDc2N2U4ZDgxODI3YzI0NzExMDY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKQEAgLTUxLDgg
KzUxLDE3IEBAIHN0YXRpYyBjb25zdCB2b2lkKiBuZXh0TG9nSWRlbnRpZmllcigpCiAgICAgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KCsrbG9nSWRlbnRpZmllcik7CiB9CiAK
LXN0YXRpYyBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgeyByZXR1cm4gTG9nTWVkaWE7IH0K
LXN0YXRpYyBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSB7IHJldHVybiAiTWVkaWFTZXNzaW9u
IjsgfQorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorc3RhdGljIFdURkxvZ0NoYW5uZWwmIGxv
Z0NoYW5uZWwoKQoreworICAgIHJldHVybiBMb2dNZWRpYTsKK30KKworc3RhdGljIGNvbnN0IGNo
YXIqIGxvZ0NsYXNzTmFtZSgpCit7CisgICAgcmV0dXJuICJNZWRpYVNlc3Npb24iOworfQorI2Vu
ZGlmCiAKIHN0YXRpYyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRU
eXBlIHBsYXRmb3JtQ29tbWFuZEZvck1lZGlhU2Vzc2lvbkFjdGlvbihNZWRpYVNlc3Npb25BY3Rp
b24gYWN0aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb24uaAppbmRleCAzMDM5Njk5YjRjMTEzMTQ4MzdlNWRlMGYxYTg0YThmMjQ0
YjVjYzE2Li5hMWRlN2NkMzE1MDAwZTMwOGE0ZjQ4ODU0MTgwMTIxYWE0MWZlYmEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaApA
QCAtOTMsNyArOTMsOSBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGNhbGxBY3Rpb25IYW5kbGVyKGNvbnN0IE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMmLCBUcmln
Z2VyR2VzdHVyZUluZGljYXRvciA9IFRyaWdnZXJHZXN0dXJlSW5kaWNhdG9yOjpZZXMpOwogCisj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25z
dCB7IHJldHVybiAqbV9sb2dnZXIuZ2V0KCk7IH0KKyNlbmRpZgogCiAgICAgY2xhc3MgT2JzZXJ2
ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8T2JzZXJ2ZXI+IHsKICAgICBwdWJsaWM6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDQxY2Q2YTZjYTEwNzU2M2I0MGUzYThhODY4OWIyNDIz
ZTFlNmNjNzAuLjFjMjI5ZTRkODExMDQ5Y2Y3OTAyNzczMTVkYzBkZGUxNmUwZGIwYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xOSw3ICsxOSw5IEBAIGxpc3QoQVBQRU5EIFdlYkNv
cmVfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2VkaXRp
bmcvYXRrIgogICAgICIke1dFQkNPUkVfRElSfS9wYWdlL2d0ayIKICAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vYWR3YWl0YSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vYXVkaW8v
Z2xpYiIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ2VuZXJpYyIKKyAgICAiJHtXRUJD
T1JFX0RJUn0vcGxhdGZvcm0vZ2xpYiIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3Rr
IgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wiCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2dseCIKQEAgLTQ2LDYgKzQ4LDggQEAgZW5kaWYg
KCkKIGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBs
YXRmb3JtL2Fkd2FpdGEvU2Nyb2xsYmFyVGhlbWVBZHdhaXRhLmgKIAorICAgIHBsYXRmb3JtL2ds
aWIvQXBwbGljYXRpb25HTGliLmgKKwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9y
bURpc3BsYXlYMTEuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3gxMS9YRXJyb3JUcmFwcGVyLmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy94MTEvWFVuaXF1ZVB0ci5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV1BF
LmNtYWtlCmluZGV4IGJjMTNkNTY0ZWRhYWVjZTI2YzQ4OGI0ZDdhNmY2OGU4NTY4ZGY0NjcuLjlm
NGRhZWZjZDM4NWQ1MzQxNDlmMGE1YTZjZTBlODAxNmUyNTYzOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
V1BFLmNtYWtlCkBAIC0xOSw2ICsxOSw4IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfVU5JRklFRF9T
T1VSQ0VfTElTVF9GSUxFUwogbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElS
RUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vYWNjZXNzaWJpbGl0eS9hdGsiCiAgICAgIiR7
V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2Fkd2FpdGEiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2F1ZGlvL2dsaWIiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dsaWIiCiAgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2VnbCIKICAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3MvZXBveHkiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3Jt
L2dyYXBoaWNzL2dseCIKQEAgLTM2LDYgKzM4LDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9QUklW
QVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICkKIAogbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCisgICAgcGxhdGZvcm0vZ2xpYi9BcHBsaWNhdGlvbkdMaWIuaAor
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1dsVW5pcXVlUHRyLmgKICkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ0luaXRpYWxpemF0aW9uLmNwcAppbmRleCA3NWI3MDdiYTBj
NzM3ZWVmMmZkZDdmOGQ1ZDQzMWI0MjQ3YWI0ZDA1Li5mZmUwMzJhMzlkNThiYzIyNjNjN2IyNzcw
Y2ZiOGRlMDYwZjNiOGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dJ
bml0aWFsaXphdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nSW5pdGlh
bGl6YXRpb24uY3BwCkBAIC02NSw2ICs2NSw3IEBAIFdURkxvZ0NoYW5uZWwqIGdldExvZ0NoYW5u
ZWwoY29uc3QgU3RyaW5nJiBuYW1lKQogCiBXVEZMb2dDaGFubmVsKiBnZXRMb2dDaGFubmVsKGNv
bnN0IFN0cmluZyYgbmFtZSkKIHsKKyAgICBVTlVTRURfUEFSQU0obmFtZSk7CiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtU2NyZWVuLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCmlu
ZGV4IGQzZjEyYTY1MzhiODQzZGZlZmUxZTk1N2M2M2JjN2QzMmYxMjNkYjcuLmQ0N2QxOTNlOGJl
ZTg1YzJkMmEzNWUyMThkZWNkZDg0YjcyMTJkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1TY3JlZW4uaApAQCAtNDgsNiArNDgsMTIgQEAgT0JKQ19DTEFTUyBVSVNjcmVlbjsK
IHR5cGVkZWYgc3RydWN0IENHQ29sb3JTcGFjZSAqQ0dDb2xvclNwYWNlUmVmOwogI2VuZGlmCiAK
Ky8vIFgxMSBoZWFkZXJzIGRlZmluZSBhIGJ1bmNoIG9mIG1hY3JvcyB3aXRoIGNvbW1vbiB0ZXJt
cywgaW50ZXJmZXJpbmcgd2l0aCBXZWJDb3JlIGFuZCBXVEYgZW51bSB2YWx1ZXMuCisvLyBBcyBh
IHdvcmthcm91bmQsIHdlIGV4cGxpY2l0bHkgdW5kZWYgdGhlbSBoZXJlLgorI2lmIGRlZmluZWQo
Tm9uZSkKKyN1bmRlZiBOb25lCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBEZXN0aW5hdGlvbkNvbG9yU3BhY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAppbmRleCBjZTE0NTc2NTBlMzIzMDUzNGZjNmJkZjNi
ZjJkMTMxZjIzMjU1YmQ1Li5jYzc5Yzg1ZmI4ZDUxMDliNWQyNjY0NDUyNmQ0YmYwOGNjOGNjOThm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVu
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5l
ci5jcHAKQEAgLTMwLDYgKzMwLDEwIEBACiAjaW5jbHVkZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVy
Q29jb2EuaCIKICNlbmRpZgogCisjaWYgVVNFKEdMSUIpCisjaW5jbHVkZSAiUmVtb3RlQ29tbWFu
ZExpc3RlbmVyR0xpYi5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGlj
IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6Q3JlYXRpb25GdW5jdGlvbiYgcmVtb3RlQ29tbWFuZExp
c3RlbmVyQ3JlYXRpb25GdW5jdGlvbigpCkBAIC00OCw4ICs1MiwxMSBAQCB2b2lkIFJlbW90ZUNv
bW1hbmRMaXN0ZW5lcjo6cmVzZXRDcmVhdGlvbkZ1bmN0aW9uKCkKICAgICByZW1vdGVDb21tYW5k
TGlzdGVuZXJDcmVhdGlvbkZ1bmN0aW9uKCkgPSBbXSAoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xp
ZW50JiBjbGllbnQpIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgcmV0dXJuIFJlbW90
ZUNvbW1hbmRMaXN0ZW5lckNvY29hOjpjcmVhdGUoY2xpZW50KTsKKyNlbGlmIFVTRShHTElCKQor
ICAgICAgICByZXR1cm4gUmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYjo6Y3JlYXRlKGNsaWVudCk7
CiAjZWxzZQotICAgICAgICByZXR1cm4gUmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVhdGUoY2xp
ZW50KTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGNsaWVudCk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogI2VuZGlmCiAgICAgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NvdXJjZXNHTGliLnR4dCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NvdXJjZXNHTGli
LnR4dAppbmRleCBkZjI3M2U1OGFkZmE2MWM2ZDI1MzMyYjMyMWY2ZjdkNzc3NWM2MTY3Li5kYzk1
ZGUyYjMxN2E1ZGVlMGVjNzhmNWJmMDBiMDU2N2EzNTkxODUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Tb3VyY2VzR0xpYi50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU291cmNlc0dMaWIudHh0CkBAIC0yMiwxMSArMjIsMTQgQEAKIC8vIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KIAogcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dMaWIu
Y3BwCitwbGF0Zm9ybS9hdWRpby9nbGliL01lZGlhU2Vzc2lvbk1hbmFnZXJHTGliLmNwcAogCitw
bGF0Zm9ybS9nbGliL0FwcGxpY2F0aW9uR0xpYi5jcHAKIHBsYXRmb3JtL2dsaWIvRmlsZU1vbml0
b3JHTGliLmNwcAogcGxhdGZvcm0vZ2xpYi9LZXllZERlY29kZXJHbGliLmNwcAogcGxhdGZvcm0v
Z2xpYi9LZXllZEVuY29kZXJHbGliLmNwcAogcGxhdGZvcm0vZ2xpYi9Mb3dQb3dlck1vZGVOb3Rp
ZmllckdMaWIuY3BwCitwbGF0Zm9ybS9nbGliL1JlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWIuY3Bw
CiBwbGF0Zm9ybS9nbGliL1NoYXJlZEJ1ZmZlckdsaWIuY3BwCiBwbGF0Zm9ybS9nbGliL1VzZXJB
Z2VudEdMaWIuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmluZGV4IDdiY2VjOWNhN2Y4
NzUwZDcyMWRhOWZjNDgyZWRkNmEzNmRiN2Y5ODkuLjNhZTRmYjhlYWI1NWY0Nzk2MTA5OGRjNjcw
ZWZmYTVjY2JkNzE4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcApAQCAtNzQsMTIgKzc0
LDEyIEBAIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciogUGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyOjpzaGFyZWRNYW5hZ2VySWZFeGlzdHMoCiAgICAgcmV0dXJuIHNoYXJlZFBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlcigpLmdldCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQor
I2lmICFQTEFURk9STShDT0NPQSkgJiYgIVVTRShHTElCKQogc3RkOjp1bmlxdWVfcHRyPFBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlcj4gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpjcmVh
dGUoKQogewogICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyPihuZXcgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyKTsKIH0KLSNlbmRpZiAvLyAh
UExBVEZPUk0oQ09DT0EpCisjZW5kaWYgLy8gIVBMQVRGT1JNKENPQ09BKSAmJiAhVVNFKEdMSUIp
CiAKIHZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp1cGRhdGVOb3dQbGF5aW5nSW5m
b0lmTmVjZXNzYXJ5KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dsaWIvTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vZ2xpYi9NZWRpYVNlc3Npb25NYW5hZ2VyR0xpYi5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OWQ2MmVkM2I0YTU5NzA4YmRiZWMzNmY3YTQ1OGNmYmE1ZDkzOTQ0OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvTWVkaWFTZXNzaW9uTWFuYWdl
ckdMaWIuY3BwCkBAIC0wLDAgKzEsNjA0IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAyMSBJ
Z2FsaWEgUy5MCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIuaCIKKworI2lmIFVTRShH
TElCKQorCisjaW5jbHVkZSAiQXBwbGljYXRpb25HTGliLmgiCisjaW5jbHVkZSAiQXVkaW9TZXNz
aW9uLmgiCisjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgorI2luY2x1ZGUgIk1lZGlhUGxh
eWVyLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJhdGVneS5oIgorI2luY2x1ZGUgIk5vd1BsYXlpbmdJ
bmZvLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb24uaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaCIKKworc3RhdGljIGNvbnN0IGNoYXIgc19tcHJpc0ludGVyZmFjZVtd
ID0KKyAgICAiPG5vZGU+IgorICAgICAgICAiPGludGVyZmFjZSBuYW1lPVwib3JnLm1wcmlzLk1l
ZGlhUGxheWVyMlwiPiIKKyAgICAgICAgICAgICI8YW5ub3RhdGlvbiBuYW1lPVwib3JnLmZyZWVk
ZXNrdG9wLkRCdXMuUHJvcGVydHkuRW1pdHNDaGFuZ2VkU2lnbmFsXCIgdmFsdWU9XCJ0cnVlXCIv
PiIKKyAgICAgICAgICAgICI8bWV0aG9kIG5hbWU9XCJSYWlzZVwiLz4iCisgICAgICAgICAgICAi
PG1ldGhvZCBuYW1lPVwiUXVpdFwiLz4iCisgICAgICAgICAgICAiPHByb3BlcnR5IG5hbWU9XCJD
YW5RdWl0XCIgdHlwZT1cImJcIiBhY2Nlc3M9XCJyZWFkXCIvPiIKKyAgICAgICAgICAgICI8cHJv
cGVydHkgbmFtZT1cIkNhblJhaXNlXCIgdHlwZT1cImJcIiBhY2Nlc3M9XCJyZWFkXCIvPiIKKyAg
ICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIkhhc1RyYWNrTGlzdFwiIHR5cGU9XCJiXCIgYWNj
ZXNzPVwicmVhZFwiLz4iCisgICAgICAgICAgICAiPHByb3BlcnR5IG5hbWU9XCJJZGVudGl0eVwi
IHR5cGU9XCJzXCIgYWNjZXNzPVwicmVhZFwiLz4iCisgICAgICAgICAgICAiPHByb3BlcnR5IG5h
bWU9XCJEZXNrdG9wRW50cnlcIiB0eXBlPVwic1wiIGFjY2Vzcz1cInJlYWRcIi8+IgorICAgICAg
ICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwiU3VwcG9ydGVkVXJpU2NoZW1lc1wiIHR5cGU9XCJhc1wi
IGFjY2Vzcz1cInJlYWRcIi8+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwiU3VwcG9y
dGVkTWltZVR5cGVzXCIgdHlwZT1cImFzXCIgYWNjZXNzPVwicmVhZFwiLz4iCisgICAgICAgICI8
L2ludGVyZmFjZT4iCisgICAgICAgICI8aW50ZXJmYWNlIG5hbWU9XCJvcmcubXByaXMuTWVkaWFQ
bGF5ZXIyLlBsYXllclwiPiIKKyAgICAgICAgICAgICI8bWV0aG9kIG5hbWU9XCJOZXh0XCIvPiIK
KyAgICAgICAgICAgICI8bWV0aG9kIG5hbWU9XCJQcmV2aW91c1wiLz4iCisgICAgICAgICAgICAi
PG1ldGhvZCBuYW1lPVwiUGF1c2VcIi8+IgorICAgICAgICAgICAgIjxtZXRob2QgbmFtZT1cIlBs
YXlQYXVzZVwiLz4iCisgICAgICAgICAgICAiPG1ldGhvZCBuYW1lPVwiU3RvcFwiLz4iCisgICAg
ICAgICAgICAiPG1ldGhvZCBuYW1lPVwiUGxheVwiLz4iCisgICAgICAgICAgICAiPG1ldGhvZCBu
YW1lPVwiU2Vla1wiPiIKKyAgICAgICAgICAgICAgICAiPGFyZyBkaXJlY3Rpb249XCJpblwiIHR5
cGU9XCJ4XCIgbmFtZT1cIk9mZnNldFwiLz4iCisgICAgICAgICAgICAiPC9tZXRob2Q+IgorICAg
ICAgICAgICAgIjxtZXRob2QgbmFtZT1cIlNldFBvc2l0aW9uXCI+IgorICAgICAgICAgICAgICAg
ICI8YXJnIGRpcmVjdGlvbj1cImluXCIgdHlwZT1cIm9cIiBuYW1lPVwiVHJhY2tJZFwiLz4iCisg
ICAgICAgICAgICAgICAgIjxhcmcgZGlyZWN0aW9uPVwiaW5cIiB0eXBlPVwieFwiIG5hbWU9XCJQ
b3NpdGlvblwiLz4iCisgICAgICAgICAgICAiPC9tZXRob2Q+IgorICAgICAgICAgICAgIjxtZXRo
b2QgbmFtZT1cIk9wZW5VcmlcIj4iCisgICAgICAgICAgICAgICAgIjxhcmcgZGlyZWN0aW9uPVwi
aW5cIiB0eXBlPVwic1wiIG5hbWU9XCJVcmlcIi8+IgorICAgICAgICAgICAgIjwvbWV0aG9kPiIK
KyAgICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIlBsYXliYWNrU3RhdHVzXCIgdHlwZT1cInNc
IiBhY2Nlc3M9XCJyZWFkXCI+IgorICAgICAgICAgICAgICAgICI8YW5ub3RhdGlvbiBuYW1lPVwi
b3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydHkuRW1pdHNDaGFuZ2VkU2lnbmFsXCIgdmFsdWU9
XCJ0cnVlXCIvPiIKKyAgICAgICAgICAgICI8L3Byb3BlcnR5PiIKKyAgICAgICAgICAgICI8cHJv
cGVydHkgbmFtZT1cIlJhdGVcIiB0eXBlPVwiZFwiIGFjY2Vzcz1cInJlYWR3cml0ZVwiPiIKKyAg
ICAgICAgICAgICAgICAiPGFubm90YXRpb24gbmFtZT1cIm9yZy5mcmVlZGVza3RvcC5EQnVzLlBy
b3BlcnR5LkVtaXRzQ2hhbmdlZFNpZ25hbFwiIHZhbHVlPVwidHJ1ZVwiLz4iCisgICAgICAgICAg
ICAiPC9wcm9wZXJ0eT4iCisgICAgICAgICAgICAiPHByb3BlcnR5IG5hbWU9XCJNZXRhZGF0YVwi
IHR5cGU9XCJhe3N2fVwiIGFjY2Vzcz1cInJlYWRcIj4iCisgICAgICAgICAgICAgICAgIjxhbm5v
dGF0aW9uIG5hbWU9XCJvcmcuZnJlZWRlc2t0b3AuREJ1cy5Qcm9wZXJ0eS5FbWl0c0NoYW5nZWRT
aWduYWxcIiB2YWx1ZT1cInRydWVcIi8+IgorICAgICAgICAgICAgIjwvcHJvcGVydHk+IgorICAg
ICAgICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwiVm9sdW1lXCIgdHlwZT1cImRcIiBhY2Nlc3M9XCJy
ZWFkd3JpdGVcIj4iCisgICAgICAgICAgICAgICAgIjxhbm5vdGF0aW9uIG5hbWU9XCJvcmcuZnJl
ZWRlc2t0b3AuREJ1cy5Qcm9wZXJ0eS5FbWl0c0NoYW5nZWRTaWduYWxcIiB2YWx1ZT1cInRydWVc
Ii8+IgorICAgICAgICAgICAgIjwvcHJvcGVydHk+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBu
YW1lPVwiUG9zaXRpb25cIiB0eXBlPVwieFwiIGFjY2Vzcz1cInJlYWRcIj4iCisgICAgICAgICAg
ICAgICAgIjxhbm5vdGF0aW9uIG5hbWU9XCJvcmcuZnJlZWRlc2t0b3AuREJ1cy5Qcm9wZXJ0eS5F
bWl0c0NoYW5nZWRTaWduYWxcIiB2YWx1ZT1cImZhbHNlXCIvPiIKKyAgICAgICAgICAgICI8L3By
b3BlcnR5PiIKKyAgICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIk1pbmltdW1SYXRlXCIgdHlw
ZT1cImRcIiBhY2Nlc3M9XCJyZWFkXCI+IgorICAgICAgICAgICAgICAgICI8YW5ub3RhdGlvbiBu
YW1lPVwib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydHkuRW1pdHNDaGFuZ2VkU2lnbmFsXCIg
dmFsdWU9XCJ0cnVlXCIvPiIKKyAgICAgICAgICAgICI8L3Byb3BlcnR5PiIKKyAgICAgICAgICAg
ICI8cHJvcGVydHkgbmFtZT1cIk1heGltdW1SYXRlXCIgdHlwZT1cImRcIiBhY2Nlc3M9XCJyZWFk
XCI+IgorICAgICAgICAgICAgICAgICI8YW5ub3RhdGlvbiBuYW1lPVwib3JnLmZyZWVkZXNrdG9w
LkRCdXMuUHJvcGVydHkuRW1pdHNDaGFuZ2VkU2lnbmFsXCIgdmFsdWU9XCJ0cnVlXCIvPiIKKyAg
ICAgICAgICAgICI8L3Byb3BlcnR5PiIKKyAgICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIkNh
bkdvTmV4dFwiIHR5cGU9XCJiXCIgYWNjZXNzPVwicmVhZFwiPiIKKyAgICAgICAgICAgICAgICAi
PGFubm90YXRpb24gbmFtZT1cIm9yZy5mcmVlZGVza3RvcC5EQnVzLlByb3BlcnR5LkVtaXRzQ2hh
bmdlZFNpZ25hbFwiIHZhbHVlPVwidHJ1ZVwiLz4iCisgICAgICAgICAgICAiPC9wcm9wZXJ0eT4i
CisgICAgICAgICAgICAiPHByb3BlcnR5IG5hbWU9XCJDYW5Hb1ByZXZpb3VzXCIgdHlwZT1cImJc
IiBhY2Nlc3M9XCJyZWFkXCI+IgorICAgICAgICAgICAgICAgICI8YW5ub3RhdGlvbiBuYW1lPVwi
b3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydHkuRW1pdHNDaGFuZ2VkU2lnbmFsXCIgdmFsdWU9
XCJ0cnVlXCIvPiIKKyAgICAgICAgICAgICI8L3Byb3BlcnR5PiIKKyAgICAgICAgICAgICI8cHJv
cGVydHkgbmFtZT1cIkNhblBsYXlcIiB0eXBlPVwiYlwiIGFjY2Vzcz1cInJlYWRcIj4iCisgICAg
ICAgICAgICAgICAgIjxhbm5vdGF0aW9uIG5hbWU9XCJvcmcuZnJlZWRlc2t0b3AuREJ1cy5Qcm9w
ZXJ0eS5FbWl0c0NoYW5nZWRTaWduYWxcIiB2YWx1ZT1cInRydWVcIi8+IgorICAgICAgICAgICAg
IjwvcHJvcGVydHk+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwiQ2FuUGF1c2VcIiB0
eXBlPVwiYlwiIGFjY2Vzcz1cInJlYWRcIj4iCisgICAgICAgICAgICAgICAgIjxhbm5vdGF0aW9u
IG5hbWU9XCJvcmcuZnJlZWRlc2t0b3AuREJ1cy5Qcm9wZXJ0eS5FbWl0c0NoYW5nZWRTaWduYWxc
IiB2YWx1ZT1cInRydWVcIi8+IgorICAgICAgICAgICAgIjwvcHJvcGVydHk+IgorICAgICAgICAg
ICAgIjxwcm9wZXJ0eSBuYW1lPVwiQ2FuU2Vla1wiIHR5cGU9XCJiXCIgYWNjZXNzPVwicmVhZFwi
PiIKKyAgICAgICAgICAgICAgICAiPGFubm90YXRpb24gbmFtZT1cIm9yZy5mcmVlZGVza3RvcC5E
QnVzLlByb3BlcnR5LkVtaXRzQ2hhbmdlZFNpZ25hbFwiIHZhbHVlPVwidHJ1ZVwiLz4iCisgICAg
ICAgICAgICAiPC9wcm9wZXJ0eT4iCisgICAgICAgICAgICAiPHByb3BlcnR5IG5hbWU9XCJDYW5D
b250cm9sXCIgdHlwZT1cImJcIiBhY2Nlc3M9XCJyZWFkXCI+IgorICAgICAgICAgICAgICAgICI8
YW5ub3RhdGlvbiBuYW1lPVwib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydHkuRW1pdHNDaGFu
Z2VkU2lnbmFsXCIgdmFsdWU9XCJmYWxzZVwiLz4iCisgICAgICAgICAgICAiPC9wcm9wZXJ0eT4i
CisgICAgICAgICAgICAiPHNpZ25hbCBuYW1lPVwiU2Vla2VkXCI+IgorICAgICAgICAgICAgICAg
ICI8YXJnIG5hbWU9XCJQb3NpdGlvblwiIHR5cGU9XCJ4XCIvPiIKKyAgICAgICAgICAgICI8L3Np
Z25hbD4iCisgICAgICAgICI8L2ludGVyZmFjZT4iCisgICAgIjwvbm9kZT4iOworCisjZGVmaW5l
IERCVVNfTVBSSVNfT0JKRUNUX1BBVEggIi9vcmcvbXByaXMvTWVkaWFQbGF5ZXIyIgorI2RlZmlu
ZSBEQlVTX01QUklTX1BMQVlFUl9JTlRFUkZBQ0UgIm9yZy5tcHJpcy5NZWRpYVBsYXllcjIuUGxh
eWVyIgorI2RlZmluZSBEQlVTX01QUklTX1RSQUNLX1BBVEggIi9vcmcvbXByaXMvTWVkaWFQbGF5
ZXIyL3dlYmtpdCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGQ6OnVuaXF1ZV9wdHI8UGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyPiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNy
ZWF0ZSgpCit7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI+
KCk7Cit9CisKK01lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xp
YigpCisgICAgOiBtX25vd1BsYXlpbmdNYW5hZ2VyKHBsYXRmb3JtU3RyYXRlZ2llcygpLT5tZWRp
YVN0cmF0ZWd5KCkuY3JlYXRlTm93UGxheWluZ01hbmFnZXIoKSkKK3sKK30KKworTWVkaWFTZXNz
aW9uTWFuYWdlckdMaWI6On5NZWRpYVNlc3Npb25NYW5hZ2VyR0xpYigpCit7CisgICAgaWYgKG1f
b3duZXJJZCkKKyAgICAgICAgZ19idXNfdW5vd25fbmFtZShtX293bmVySWQpOworfQorCitzdGF0
aWMgaW5saW5lIHN0ZDo6b3B0aW9uYWw8UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRy
b2xDb21tYW5kVHlwZT4gZ2V0Q29tbWFuZChjb25zdCBjaGFyKiBuYW1lKQoreworICAgIHN0YXRp
YyBjb25zdCBhdXRvIG1hcCA9IG1ha2VOZXZlckRlc3Ryb3llZChbXSB7CisgICAgICAgIHJldHVy
biBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpS
ZW1vdGVDb250cm9sQ29tbWFuZFR5cGU+IHsKKyAgICAgICAgICAgIHsgIk5leHQiLCBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6TmV4dFRyYWNrQ29tbWFuZCB9LAorICAgICAgICAgICAgeyAiUGF1c2Ui
LCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGF1c2VDb21tYW5kIH0sCisgICAgICAgICAgICB7ICJQ
bGF5IiwgUGxhdGZvcm1NZWRpYVNlc3Npb246OlBsYXlDb21tYW5kIH0sCisgICAgICAgICAgICB7
ICJQbGF5UGF1c2UiLCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VG9nZ2xlUGxheVBhdXNlQ29tbWFu
ZCB9LAorICAgICAgICAgICAgeyAiUHJldmlvdXMiLCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UHJl
dmlvdXNUcmFja0NvbW1hbmQgfSwKKyAgICAgICAgICAgIHsgIlNlZWsiLCBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6U2Vla1RvUGxheWJhY2tQb3NpdGlvbkNvbW1hbmQgfSwKKyAgICAgICAgICAgIHsg
IlN0b3AiLCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RvcENvbW1hbmQgfQorICAgICAgICB9Owor
ICAgIH0oKSk7CisKKyAgICBhdXRvIGl0ID0gbWFwLT5maW5kKG5hbWUpOworICAgIGlmIChpdCA9
PSBtYXAtPmVuZCgpKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBpdC0+c2Vjb25k
OworfQorCitzdGF0aWMgdm9pZCBoYW5kbGVNZXRob2RDYWxsKEdEQnVzQ29ubmVjdGlvbiogLyog
Y29ubmVjdGlvbiAqLywgY29uc3QgY2hhciogLyogc2VuZGVyICovLCBjb25zdCBjaGFyKiBvYmpl
Y3RQYXRoLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBtZXRob2ROYW1l
LCBHVmFyaWFudCogcGFyYW1ldGVycywgR0RCdXNNZXRob2RJbnZvY2F0aW9uKiBpbnZvY2F0aW9u
LCBncG9pbnRlciB1c2VyRGF0YSkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IGF1dG8gY29tbWFuZCA9IGdldENvbW1hbmQobWV0aG9kTmFtZSk7CisgICAgaWYgKCFjb21tYW5k
KSB7CisgICAgICAgIGdfZGJ1c19tZXRob2RfaW52b2NhdGlvbl9yZXR1cm5fZXJyb3IoaW52b2Nh
dGlvbiwgR19EQlVTX0VSUk9SLCBHX0RCVVNfRVJST1JfRkFJTEVELCAiJXMuJXMuJXMgaXMgbm90
IGF2YWlsYWJsZSBub3ciLCBvYmplY3RQYXRoLCBpbnRlcmZhY2VOYW1lLCBtZXRob2ROYW1lKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBhdXRvJiBtYW5hZ2VyID0gKnJlaW50ZXJwcmV0
X2Nhc3Q8TWVkaWFTZXNzaW9uTWFuYWdlckdMaWIqPih1c2VyRGF0YSk7CisgICAgUGxhdGZvcm1N
ZWRpYVNlc3Npb246OlJlbW90ZUNvbW1hbmRBcmd1bWVudCBhcmd1bWVudDsKKyAgICBpZiAoKmNv
bW1hbmQgPT0gUGxhdGZvcm1NZWRpYVNlc3Npb246OlNlZWtUb1BsYXliYWNrUG9zaXRpb25Db21t
YW5kKSB7CisgICAgICAgIGludDY0X3Qgb2Zmc2V0OworICAgICAgICBnX3ZhcmlhbnRfZ2V0KHBh
cmFtZXRlcnMsICIoeCkiLCAmb2Zmc2V0KTsKKyAgICAgICAgYXJndW1lbnQudGltZSA9IG9mZnNl
dCAvIDEwMDAwMDA7CisgICAgfQorICAgIG1hbmFnZXIuZGlzcGF0Y2goKmNvbW1hbmQsIGFyZ3Vt
ZW50KTsKKyAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlKGludm9jYXRp
b24sIG51bGxwdHIpOworfQorCitlbnVtIGNsYXNzIFByb3BlcnR5IDogdWludDhfdCB7CisgICAg
Q2FuQ29udHJvbCwKKyAgICBDYW5Hb05leHQsCisgICAgQ2FuR29QcmV2aW91cywKKyAgICBDYW5Q
YXVzZSwKKyAgICBDYW5QbGF5LAorICAgIENhblF1aXQsCisgICAgQ2FuUmFpc2UsCisgICAgQ2Fu
U2VlaywKKyAgICBEZXNrdG9wRW50cnksCisgICAgR2V0TWV0YWRhdGEsCisgICAgR2V0UGxheWJh
Y2tTdGF0dXMsCisgICAgR2V0UG9zaXRpb24sCisgICAgSGFzVHJhY2tMaXN0LAorICAgIElkZW50
aXR5LAorICAgIFN1cHBvcnRlZE1pbWVUeXBlcywKKyAgICBTdXBwb3J0ZWRVcmlTY2hlbWVzLAor
fTsKKworc3RhdGljIGlubGluZSBzdGQ6Om9wdGlvbmFsPFByb3BlcnR5PiBnZXRQcm9wZXJ0eShj
b25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUpCit7CisgICAgc3RhdGljIGNvbnN0IGF1dG8gbWFwID0g
bWFrZU5ldmVyRGVzdHJveWVkKFtdIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6dW5vcmRlcmVkX21h
cDxzdGQ6OnN0cmluZywgUHJvcGVydHk+IHsKKyAgICAgICAgICAgIC8vIG9yZy5tcHJpcy5NZWRp
YVBsYXllcjIgcHJvcGVydGllcworICAgICAgICAgICAgeyAiSWRlbnRpdHkiLCBQcm9wZXJ0eTo6
SWRlbnRpdHkgfSwKKyAgICAgICAgICAgIHsgIkRlc2t0b3BFbnRyeSIsIFByb3BlcnR5OjpEZXNr
dG9wRW50cnkgfSwKKyAgICAgICAgICAgIHsgIkhhc1RyYWNrTGlzdCIsIFByb3BlcnR5OjpIYXNU
cmFja0xpc3QgfSwKKyAgICAgICAgICAgIHsgIkNhblJhaXNlIiwgUHJvcGVydHk6OkNhblJhaXNl
IH0sCisgICAgICAgICAgICB7ICJDYW5RdWl0IiwgUHJvcGVydHk6OkNhblF1aXQgfSwKKyAgICAg
ICAgICAgIHsgIlN1cHBvcnRlZFVyaVNjaGVtZXMiLCBQcm9wZXJ0eTo6U3VwcG9ydGVkVXJpU2No
ZW1lcyB9LAorICAgICAgICAgICAgeyAiU3VwcG9ydGVkTWltZVR5cGVzIiwgUHJvcGVydHk6OlN1
cHBvcnRlZE1pbWVUeXBlcyB9LAorICAgICAgICAgICAgLy8gb3JnLm1wcmlzLk1lZGlhUGxheWVy
Mi5QbGF5ZXIgcHJvcGVydGllcworICAgICAgICAgICAgeyAiQ2FuR29OZXh0IiwgUHJvcGVydHk6
OkNhbkdvTmV4dCB9LAorICAgICAgICAgICAgeyAiQ2FuR29QcmV2aW91cyIsIFByb3BlcnR5OjpD
YW5Hb1ByZXZpb3VzIH0sCisgICAgICAgICAgICB7ICJDYW5QbGF5IiwgUHJvcGVydHk6OkNhblBs
YXkgfSwKKyAgICAgICAgICAgIHsgIkNhblBhdXNlIiwgUHJvcGVydHk6OkNhblBhdXNlIH0sCisg
ICAgICAgICAgICB7ICJDYW5TZWVrIiwgUHJvcGVydHk6OkNhblNlZWsgfSwKKyAgICAgICAgICAg
IHsgIkNhbkNvbnRyb2wiLCBQcm9wZXJ0eTo6Q2FuQ29udHJvbCB9LAorICAgICAgICAgICAgeyAi
UGxheWJhY2tTdGF0dXMiLCBQcm9wZXJ0eTo6R2V0UGxheWJhY2tTdGF0dXMgfSwKKyAgICAgICAg
ICAgIHsgIlBvc2l0aW9uIiwgUHJvcGVydHk6OkdldFBvc2l0aW9ufSwKKyAgICAgICAgICAgIHsg
Ik1ldGFkYXRhIiwgUHJvcGVydHk6OkdldE1ldGFkYXRhIH0KKyAgICAgICAgfTsKKyAgICB9KCkp
OworCisgICAgYXV0byBpdCA9IG1hcC0+ZmluZChwcm9wZXJ0eU5hbWUpOworICAgIGlmIChpdCA9
PSBtYXAtPmVuZCgpKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBpdC0+c2Vjb25k
OworfQorCitzdGF0aWMgR1ZhcmlhbnQqIGhhbmRsZUdldFByb3BlcnR5KEdEQnVzQ29ubmVjdGlv
biosIGNvbnN0IGNoYXIqIC8qIHNlbmRlciAqLywgY29uc3QgY2hhciogb2JqZWN0UGF0aCwgY29u
c3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogcHJvcGVydHlOYW1lLCBHRXJyb3Iq
KiBlcnJvciwgZ3BvaW50ZXIgdXNlckRhdGEpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKyAgICBhdXRvIHByb3BlcnR5ID0gZ2V0UHJvcGVydHkocHJvcGVydHlOYW1lKTsKKyAgICBp
ZiAoIXByb3BlcnR5KSB7CisgICAgICAgIGdfc2V0X2Vycm9yKGVycm9yLCBHX0RCVVNfRVJST1Is
IEdfREJVU19FUlJPUl9OT1RfU1VQUE9SVEVELCAiJXMuJXMgJXMgaXMgbm90IHN1cHBvcnRlZCIs
IG9iamVjdFBhdGgsIGludGVyZmFjZU5hbWUsIHByb3BlcnR5TmFtZSk7CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KKworICAgIGF1dG8mIG1hbmFnZXIgPSAqcmVpbnRlcnByZXRfY2Fz
dDxNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYio+KHVzZXJEYXRhKTsKKyAgICBzd2l0Y2ggKHByb3Bl
cnR5LnZhbHVlKCkpIHsKKyAgICBjYXNlIFByb3BlcnR5OjpTdXBwb3J0ZWRVcmlTY2hlbWVzOgor
ICAgIGNhc2UgUHJvcGVydHk6OlN1cHBvcnRlZE1pbWVUeXBlczoKKyAgICAgICAgcmV0dXJuIGdf
dmFyaWFudF9uZXdfc3RydihudWxscHRyLCAwKTsKKyAgICBjYXNlIFByb3BlcnR5OjpHZXRQbGF5
YmFja1N0YXR1czoKKyAgICAgICAgcmV0dXJuIG1hbmFnZXIuZ2V0UGxheWJhY2tTdGF0dXNBc0dW
YXJpYW50KHsgfSk7CisgICAgY2FzZSBQcm9wZXJ0eTo6R2V0TWV0YWRhdGE6IHsKKyAgICAgICAg
YXV0byogdmFyaWFudCA9IG1hbmFnZXIuZ2V0TWV0YWRhdGFBc0dWYXJpYW50KCk7CisgICAgICAg
IGlmICghdmFyaWFudCkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1
cm4gZ192YXJpYW50X3JlZih2YXJpYW50KTsKKyAgICB9CisgICAgY2FzZSBQcm9wZXJ0eTo6R2V0
UG9zaXRpb246CisgICAgICAgIHJldHVybiBtYW5hZ2VyLmdldEFjdGl2ZVNlc3Npb25Qb3NpdGlv
bigpOworICAgIGNhc2UgUHJvcGVydHk6OklkZW50aXR5OgorICAgICAgICByZXR1cm4gZ192YXJp
YW50X25ld19zdHJpbmcoZ2V0QXBwbGljYXRpb25OYW1lKCkpOworICAgIGNhc2UgUHJvcGVydHk6
OkRlc2t0b3BFbnRyeToKKyAgICAgICAgcmV0dXJuIGdfdmFyaWFudF9uZXdfc3RyaW5nKCIiKTsK
KyAgICBjYXNlIFByb3BlcnR5OjpIYXNUcmFja0xpc3Q6CisgICAgY2FzZSBQcm9wZXJ0eTo6Q2Fu
UXVpdDoKKyAgICBjYXNlIFByb3BlcnR5OjpDYW5SYWlzZToKKyAgICAgICAgcmV0dXJuIGdfdmFy
aWFudF9uZXdfYm9vbGVhbihmYWxzZSk7CisgICAgY2FzZSBQcm9wZXJ0eTo6Q2FuU2VlazoKKyAg
ICBjYXNlIFByb3BlcnR5OjpDYW5Db250cm9sOgorICAgIGNhc2UgUHJvcGVydHk6OkNhbkdvTmV4
dDoKKyAgICBjYXNlIFByb3BlcnR5OjpDYW5Hb1ByZXZpb3VzOgorICAgIGNhc2UgUHJvcGVydHk6
OkNhblBsYXk6CisgICAgY2FzZSBQcm9wZXJ0eTo6Q2FuUGF1c2U6CisgICAgICAgIHJldHVybiBn
X3ZhcmlhbnRfbmV3X2Jvb2xlYW4odHJ1ZSk7CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK3N0YXRpYyBnYm9vbGVhbiBoYW5kbGVTZXRQcm9wZXJ0eShHREJ1c0Nvbm5lY3Rpb24q
LCBjb25zdCBjaGFyKiAvKiBzZW5kZXIgKi8sIGNvbnN0IGNoYXIqIC8qIG9iamVjdFBhdGggKi8s
IGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgR1Zh
cmlhbnQqLCBHRXJyb3IqKiBlcnJvciwgZ3BvaW50ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKyAgICBnX3NldF9lcnJvcihlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9G
QUlMRUQsICIlczolcyBzZXR0aW5nIGlzIG5vdCBzdXBwb3J0ZWQiLCBpbnRlcmZhY2VOYW1lLCBw
cm9wZXJ0eU5hbWUpOworICAgIHJldHVybiBGQUxTRTsKK30KKworc3RhdGljIGNvbnN0IEdEQnVz
SW50ZXJmYWNlVlRhYmxlIGdJbnRlcmZhY2VWVGFibGUgPSB7CisgICAgaGFuZGxlTWV0aG9kQ2Fs
bCwgaGFuZGxlR2V0UHJvcGVydHksIGhhbmRsZVNldFByb3BlcnR5LCB7IG51bGxwdHIgfQorfTsK
KworYm9vbCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6c2V0dXBNcHJpcygpCit7CisgICAgaWYg
KG1fb3duZXJJZCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBjb25zdCBhdXRvJiBhcHBs
aWNhdGlvbklEID0gZ2V0QXBwbGljYXRpb25JRCgpOworICAgIG1faW5zdGFuY2VJZCA9IGFwcGxp
Y2F0aW9uSUQuaXNFbXB0eSgpID8gbWFrZVN0cmluZygib3JnLm1wcmlzLk1lZGlhUGxheWVyMi53
ZWJraXQuaW5zdGFuY2UiLCBnZXRwaWQoKSkgOiBtYWtlU3RyaW5nKCJvcmcubXByaXMuTWVkaWFQ
bGF5ZXIyLiIsIGFwcGxpY2F0aW9uSUQuYXNjaWkoKS5kYXRhKCkpOworCisgICAgbV9vd25lcklk
ID0gZ19idXNfb3duX25hbWUoR19CVVNfVFlQRV9TRVNTSU9OLCBtX2luc3RhbmNlSWQuYXNjaWko
KS5kYXRhKCksCisgICAgICAgIEdfQlVTX05BTUVfT1dORVJfRkxBR1NfTk9ORSwgcmVpbnRlcnBy
ZXRfY2FzdDxHQnVzQWNxdWlyZWRDYWxsYmFjaz4oK1tdKEdEQnVzQ29ubmVjdGlvbiogY29ubmVj
dGlvbiwgY29uc3QgZ2NoYXIqLCBncG9pbnRlciB1c2VyRGF0YSkgeworICAgICAgICAgICAgYXV0
byYgbWFuYWdlciA9ICpyZWludGVycHJldF9jYXN0PE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliKj4o
dXNlckRhdGEpOworICAgICAgICAgICAgbWFuYWdlci5idXNBY3F1aXJlZChjb25uZWN0aW9uKTsK
KyAgICAgICAgfSksCisgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8R0J1c05hbWVBY3F1aXJlZENh
bGxiYWNrPigrW10oR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBjaGFyKiwgZ3Bv
aW50ZXIgdXNlckRhdGEpIHsKKyAgICAgICAgICAgIGF1dG8mIG1hbmFnZXIgPSAqcmVpbnRlcnBy
ZXRfY2FzdDxNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYio+KHVzZXJEYXRhKTsKKyAgICAgICAgICAg
IG1hbmFnZXIubmFtZUFjcXVpcmVkKGNvbm5lY3Rpb24pOworICAgICAgICB9KSwKKyAgICAgICAg
cmVpbnRlcnByZXRfY2FzdDxHQnVzTmFtZUxvc3RDYWxsYmFjaz4oK1tdKEdEQnVzQ29ubmVjdGlv
biogY29ubmVjdGlvbiwgY29uc3QgY2hhciosIGdwb2ludGVyIHVzZXJEYXRhKSB7CisgICAgICAg
ICAgICBhdXRvJiBtYW5hZ2VyID0gKnJlaW50ZXJwcmV0X2Nhc3Q8TWVkaWFTZXNzaW9uTWFuYWdl
ckdMaWIqPih1c2VyRGF0YSk7CisgICAgICAgICAgICBtYW5hZ2VyLm5hbWVMb3N0KGNvbm5lY3Rp
b24pOworICAgICAgICB9KSwgdGhpcywgbnVsbHB0cik7CisKKyAgICBHVW5pcXVlT3V0UHRyPEdF
cnJvcj4gZXJyb3I7CisgICAgbV9tcHJpc0ludGVyZmFjZSA9IGFkb3B0R1JlZihnX2RidXNfbm9k
ZV9pbmZvX25ld19mb3JfeG1sKHNfbXByaXNJbnRlcmZhY2UsICZlcnJvci5vdXRQdHIoKSkpOwor
ICAgIGlmICghbV9tcHJpc0ludGVyZmFjZSkgeworICAgICAgICBnX3dhcm5pbmcoIkZhaWxlZCBh
dCBwYXJzaW5nIFhNTCBJbnRlcmZhY2UgZGVmaW5pdGlvbjogJXMiLCBlcnJvci0+bWVzc2FnZSk7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
dm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6YnVzQWNxdWlyZWQoR0RCdXNDb25uZWN0aW9u
KiBjb25uZWN0aW9uKQoreworICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKKyAgICBt
X3Jvb3RSZWdpc3RyYXRpb25JZCA9IGdfZGJ1c19jb25uZWN0aW9uX3JlZ2lzdGVyX29iamVjdChj
b25uZWN0aW9uLCBEQlVTX01QUklTX09CSkVDVF9QQVRILCBtX21wcmlzSW50ZXJmYWNlLT5pbnRl
cmZhY2VzWzBdLAorICAgICAgICAmZ0ludGVyZmFjZVZUYWJsZSwgdGhpcywgbnVsbHB0ciwgJmVy
cm9yLm91dFB0cigpKTsKKworICAgIGlmICghbV9yb290UmVnaXN0cmF0aW9uSWQpIHsKKyAgICAg
ICAgZ193YXJuaW5nKCJGYWlsZWQgYXQgcm9vdCByZWdpc3RyYXRpb246ICVzIiwgZXJyb3ItPm1l
c3NhZ2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9wbGF5ZXJSZWdpc3RyYXRp
b25JZCA9IGdfZGJ1c19jb25uZWN0aW9uX3JlZ2lzdGVyX29iamVjdChjb25uZWN0aW9uLCBEQlVT
X01QUklTX09CSkVDVF9QQVRILCBtX21wcmlzSW50ZXJmYWNlLT5pbnRlcmZhY2VzWzFdLAorICAg
ICAgICAmZ0ludGVyZmFjZVZUYWJsZSwgdGhpcywgbnVsbHB0ciwgJmVycm9yLm91dFB0cigpKTsK
KworICAgIGlmICghbV9wbGF5ZXJSZWdpc3RyYXRpb25JZCkKKyAgICAgICAgZ193YXJuaW5nKCJG
YWlsZWQgYXQgb2JqZWN0IHJlZ2lzdHJhdGlvbjogJXMiLCBlcnJvci0+bWVzc2FnZSk7Cit9CisK
K3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6Om5hbWVMb3N0KEdEQnVzQ29ubmVjdGlvbiog
Y29ubmVjdGlvbikKK3sKKyAgICBpZiAoVU5MSUtFTFkoIW1fY29ubmVjdGlvbikpIHsKKyAgICAg
ICAgZ193YXJuaW5nKCJVbmFibGUgdG8gYWNxdWlyZSBEQnVzIHNlc3Npb24gb3duZXJzaGlwIGZv
ciBuYW1lICVzIiwgbV9pbnN0YW5jZUlkLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7CisgICAgaWYgKCFtX3Jvb3RS
ZWdpc3RyYXRpb25JZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGdfZGJ1c19jb25uZWN0
aW9uX3VucmVnaXN0ZXJfb2JqZWN0KGNvbm5lY3Rpb24sIG1fcm9vdFJlZ2lzdHJhdGlvbklkKSkK
KyAgICAgICAgbV9yb290UmVnaXN0cmF0aW9uSWQgPSAwOworICAgIGVsc2UKKyAgICAgICAgZ193
YXJuaW5nKCJVbmFibGUgdG8gdW5yZWdpc3RlciByb290IG9iamVjdC4iKTsKKworICAgIGlmICgh
bV9wbGF5ZXJSZWdpc3RyYXRpb25JZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGdfZGJ1
c19jb25uZWN0aW9uX3VucmVnaXN0ZXJfb2JqZWN0KGNvbm5lY3Rpb24sIG1fcGxheWVyUmVnaXN0
cmF0aW9uSWQpKQorICAgICAgICBtX3BsYXllclJlZ2lzdHJhdGlvbklkID0gMDsKKyAgICBlbHNl
CisgICAgICAgIGdfd2FybmluZygiVW5hYmxlIHRvIHVucmVnaXN0ZXIgcGxheWVyIG9iamVjdC4i
KTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6YmVnaW5JbnRlcnJ1cHRpb24o
UGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUgdHlwZSkKK3sKKyAgICBpZiAo
dHlwZSA9PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZTo6U3lzdGVtSW50
ZXJydXB0aW9uKSB7CisgICAgICAgIGZvckVhY2hTZXNzaW9uKFtdIChhdXRvJiBzZXNzaW9uKSB7
CisgICAgICAgICAgICBzZXNzaW9uLmNsZWFySGFzUGxheWVkU2luY2VMYXN0SW50ZXJydXB0aW9u
KCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cjo6YmVnaW5JbnRlcnJ1cHRpb24odHlwZSk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdl
ckdMaWI6OnNjaGVkdWxlU2Vzc2lvblN0YXR1c1VwZGF0ZSgpCit7CisgICAgY2FsbE9uTWFpblRo
cmVhZChbdGhpc10gKCkgbXV0YWJsZSB7CisgICAgICAgIG1fbm93UGxheWluZ01hbmFnZXItPnNl
dFN1cHBvcnRzU2Vla2luZyhjb21wdXRlU3VwcG9ydHNTZWVraW5nKCkpOworICAgICAgICB1cGRh
dGVOb3dQbGF5aW5nSW5mbygpOworCisgICAgICAgIGZvckVhY2hTZXNzaW9uKFtdIChhdXRvJiBz
ZXNzaW9uKSB7CisgICAgICAgICAgICBzZXNzaW9uLnVwZGF0ZU1lZGlhVXNhZ2VJZkNoYW5nZWQo
KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK2Jvb2wgTWVkaWFTZXNzaW9uTWFuYWdlckdM
aWI6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lv
bikKK3sKKyAgICBpZiAoIVBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxC
ZWdpblBsYXliYWNrKHNlc3Npb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzY2hl
ZHVsZVNlc3Npb25TdGF0dXNVcGRhdGUoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBN
ZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6c2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyhQbGF0
Zm9ybU1lZGlhU2Vzc2lvbiYpCit7CisgICAgc2NoZWR1bGVTZXNzaW9uU3RhdHVzVXBkYXRlKCk7
Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OmFkZFNlc3Npb24oUGxhdGZvcm1N
ZWRpYVNlc3Npb24mIHNlc3Npb24pCit7CisgICAgaWYgKCFzZXR1cE1wcmlzKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fbm93UGxheWluZ01hbmFnZXItPmFkZENsaWVudCgqdGhpcyk7CisK
KyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OmFkZFNlc3Npb24oc2Vzc2lvbik7Cit9
CisKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnJlbW92ZVNlc3Npb24oUGxhdGZvcm1N
ZWRpYVNlc3Npb24mIHNlc3Npb24pCit7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
OjpyZW1vdmVTZXNzaW9uKHNlc3Npb24pOworCisgICAgaWYgKGhhc05vU2Vzc2lvbigpKSB7Cisg
ICAgICAgIG1fbm93UGxheWluZ01hbmFnZXItPnJlbW92ZUNsaWVudCgqdGhpcyk7CisgICAgICAg
IGlmIChtX293bmVySWQpCisgICAgICAgICAgICBnX2J1c191bm93bl9uYW1lKG1fb3duZXJJZCk7
CisgICAgICAgIG1fb3duZXJJZCA9IDA7CisgICAgfQorICAgIHNjaGVkdWxlU2Vzc2lvblN0YXR1
c1VwZGF0ZSgpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpzZXRDdXJyZW50
U2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICBQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnNldEN1cnJlbnRTZXNzaW9uKHNlc3Npb24pOworCisgICAgbV9u
b3dQbGF5aW5nTWFuYWdlci0+dXBkYXRlU3VwcG9ydGVkQ29tbWFuZHMoKTsKK30KKwordm9pZCBN
ZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbiYgc2Vzc2lvbiwgRGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyBkZWxheUNh
bGxpbmdVcGRhdGVOb3dQbGF5aW5nKQoreworICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cjo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayhzZXNzaW9uLCBkZWxheUNhbGxpbmdVcGRhdGVOb3dQ
bGF5aW5nKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtTZXNzaW9uID0gbWFrZVdlYWtQ
dHIoc2Vzc2lvbildIHsKKyAgICAgICAgaWYgKHdlYWtTZXNzaW9uKQorICAgICAgICAgICAgd2Vh
a1Nlc3Npb24tPnVwZGF0ZU1lZGlhVXNhZ2VJZkNoYW5nZWQoKTsKKyAgICB9KTsKKworICAgIGlm
IChkZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5nID09IERlbGF5Q2FsbGluZ1VwZGF0ZU5vd1Bs
YXlpbmc6Ok5vKQorICAgICAgICB1cGRhdGVOb3dQbGF5aW5nSW5mbygpOworICAgIGVsc2Ugewor
ICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzXSB7CisgICAgICAgICAgICB1cGRhdGVOb3dQ
bGF5aW5nSW5mbygpOworICAgICAgICB9KTsKKyAgICB9Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9u
TWFuYWdlckdMaWI6OnNlc3Npb25TdGF0ZUNoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNl
c3Npb24pCit7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uU3RhdGVD
aGFuZ2VkKHNlc3Npb24pOworCisgICAgR1ZhcmlhbnRCdWlsZGVyIGJ1aWxkZXI7CisgICAgZ192
YXJpYW50X2J1aWxkZXJfaW5pdCgmYnVpbGRlciwgR19WQVJJQU5UX1RZUEUoImF7c3Z9IikpOwor
ICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAiUGxheWJhY2tTdGF0
dXMiLCBnZXRQbGF5YmFja1N0YXR1c0FzR1ZhcmlhbnQoJnNlc3Npb24pKTsKKyAgICBlbWl0UHJv
cGVydGllc0NoYW5nZWQoZ192YXJpYW50X25ldygiKHNhe3N2fWFzKSIsIERCVVNfTVBSSVNfUExB
WUVSX0lOVEVSRkFDRSwgJmJ1aWxkZXIsIG51bGxwdHIpKTsKK30KKwordm9pZCBNZWRpYVNlc3Np
b25NYW5hZ2VyR0xpYjo6Y2xpZW50Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZChQbGF0Zm9ybU1lZGlh
U2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHNlc3Np
b24ubG9nSWRlbnRpZmllcigpKTsKKyAgICBpZiAobV9pc1NlZWtpbmcpIHsKKyAgICAgICAgbV9p
c1NlZWtpbmcgPSBmYWxzZTsKKyAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOwor
ICAgICAgICBpbnQ2NF90IHBvc2l0aW9uID0gc2Vzc2lvbi5ub3dQbGF5aW5nSW5mbygpLT5jdXJy
ZW50VGltZSAqIDEwMDAwMDA7CisgICAgICAgIGlmICghZ19kYnVzX2Nvbm5lY3Rpb25fZW1pdF9z
aWduYWwobV9jb25uZWN0aW9uLmdldCgpLCBudWxscHRyLCBEQlVTX01QUklTX09CSkVDVF9QQVRI
LCBEQlVTX01QUklTX1BMQVlFUl9JTlRFUkZBQ0UsICJTZWVrZWQiLCBnX3ZhcmlhbnRfbmV3KCIo
eCkiLCBwb3NpdGlvbiksICZlcnJvci5vdXRQdHIoKSkpCisgICAgICAgICAgICBnX3dhcm5pbmco
IkZhaWxlZCB0byBlbWl0IE1QUklTIFNlZWtlZCBzaWduYWw6ICVzIiwgZXJyb3ItPm1lc3NhZ2Up
OworICAgIH0KKyAgICBzY2hlZHVsZVNlc3Npb25TdGF0dXNVcGRhdGUoKTsKK30KKwordm9pZCBN
ZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6c2Vzc2lvbkNhblByb2R1Y2VBdWRpb0NoYW5nZWQoKQor
eworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyOjpzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpOworICAgIHNjaGVkdWxl
U2Vzc2lvblN0YXR1c1VwZGF0ZSgpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGli
OjphZGRTdXBwb3J0ZWRDb21tYW5kKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9s
Q29tbWFuZFR5cGUgY29tbWFuZCkKK3sKKyAgICBtX25vd1BsYXlpbmdNYW5hZ2VyLT5hZGRTdXBw
b3J0ZWRDb21tYW5kKGNvbW1hbmQpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGli
OjpyZW1vdmVTdXBwb3J0ZWRDb21tYW5kKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250
cm9sQ29tbWFuZFR5cGUgY29tbWFuZCkKK3sKKyAgICBtX25vd1BsYXlpbmdNYW5hZ2VyLT5yZW1v
dmVTdXBwb3J0ZWRDb21tYW5kKGNvbW1hbmQpOworfQorCitQbGF0Zm9ybU1lZGlhU2Vzc2lvbiog
TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6Om5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24oKQorewor
ICAgIC8vIEZJWE1FOiBGaXggdGhpcyBsYXllcmluZyB2aW9sYXRpb24uCisgICAgaWYgKGF1dG8g
ZWxlbWVudCA9IEhUTUxNZWRpYUVsZW1lbnQ6OmJlc3RNZWRpYUVsZW1lbnRGb3JSZW1vdGVDb250
cm9scyhNZWRpYUVsZW1lbnRTZXNzaW9uOjpQbGF5YmFja0NvbnRyb2xzUHVycG9zZTo6Tm93UGxh
eWluZykpCisgICAgICAgIHJldHVybiAmZWxlbWVudC0+bWVkaWFTZXNzaW9uKCk7CisKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6dXBkYXRl
Tm93UGxheWluZ0luZm8oKQoreworICAgIHN0ZDo6b3B0aW9uYWw8Tm93UGxheWluZ0luZm8+IG5v
d1BsYXlpbmdJbmZvOworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbm93UGxheWluZ0VsaWdpYmxl
U2Vzc2lvbigpKQorICAgICAgICBub3dQbGF5aW5nSW5mbyA9IHNlc3Npb24tPm5vd1BsYXlpbmdJ
bmZvKCk7CisKKyAgICBpZiAoIW5vd1BsYXlpbmdJbmZvKSB7CisgICAgICAgIGlmIChtX3JlZ2lz
dGVyZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbikgeworICAgICAgICAgICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSLCAiY2xlYXJpbmcgbm93IHBsYXlpbmcgaW5mbyIpOworICAgICAgICAgICAg
bV9ub3dQbGF5aW5nTWFuYWdlci0+Y2xlYXJOb3dQbGF5aW5nSW5mbygpOworICAgICAgICB9CisK
KyAgICAgICAgbV9yZWdpc3RlcmVkQXNOb3dQbGF5aW5nQXBwbGljYXRpb24gPSBmYWxzZTsKKyAg
ICAgICAgbV9ub3dQbGF5aW5nQWN0aXZlID0gZmFsc2U7CisgICAgICAgIG1fbGFzdFVwZGF0ZWRO
b3dQbGF5aW5nVGl0bGUgPSBlbXB0eVN0cmluZygpOworICAgICAgICBtX2xhc3RVcGRhdGVkTm93
UGxheWluZ0R1cmF0aW9uID0gTkFOOworICAgICAgICBtX2xhc3RVcGRhdGVkTm93UGxheWluZ0Vs
YXBzZWRUaW1lID0gTkFOOworICAgICAgICBtX2xhc3RVcGRhdGVkTm93UGxheWluZ0luZm9Vbmlx
dWVJZGVudGlmaWVyID0geyB9OworICAgICAgICBtX25vd1BsYXlpbmdJbmZvLmNsZWFyKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2hhdmVFdmVyUmVnaXN0ZXJlZEFzTm93UGxh
eWluZ0FwcGxpY2F0aW9uID0gdHJ1ZTsKKworICAgIGlmIChtX25vd1BsYXlpbmdNYW5hZ2VyLT5z
ZXROb3dQbGF5aW5nSW5mbygqbm93UGxheWluZ0luZm8pKQorICAgICAgICBBTFdBWVNfTE9HKExP
R0lERU5USUZJRVIsICJ0aXRsZSA9IFwiIiwgbm93UGxheWluZ0luZm8tPnRpdGxlLCAiXCIsIGlz
UGxheWluZyA9ICIsIG5vd1BsYXlpbmdJbmZvLT5pc1BsYXlpbmcsICIsIGR1cmF0aW9uID0gIiwg
bm93UGxheWluZ0luZm8tPmR1cmF0aW9uLCAiLCBub3cgPSAiLCBub3dQbGF5aW5nSW5mby0+Y3Vy
cmVudFRpbWUsICIsIGlkID0gIiwgbm93UGxheWluZ0luZm8tPnVuaXF1ZUlkZW50aWZpZXIudG9V
SW50NjQoKSwgIiwgcmVnaXN0ZXJlZCA9ICIsIG1fcmVnaXN0ZXJlZEFzTm93UGxheWluZ0FwcGxp
Y2F0aW9uLCAiLCBzcmMgPSBcIiIsIG5vd1BsYXlpbmdJbmZvLT5hcnR3b3JrID8gbm93UGxheWlu
Z0luZm8tPmFydHdvcmstPnNyYyA6IFN0cmluZygpLCAiXCIiKTsKKworICAgIGlmICghbV9yZWdp
c3RlcmVkQXNOb3dQbGF5aW5nQXBwbGljYXRpb24pIHsKKyAgICAgICAgbV9yZWdpc3RlcmVkQXNO
b3dQbGF5aW5nQXBwbGljYXRpb24gPSB0cnVlOworICAgICAgICBwcm92aWRlUHJlc2VudGluZ0Fw
cGxpY2F0aW9uUElESWZOZWNlc3NhcnkoKTsKKyAgICB9CisKKyAgICBpZiAoIW5vd1BsYXlpbmdJ
bmZvLT50aXRsZS5pc0VtcHR5KCkpCisgICAgICAgIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nVGl0
bGUgPSBub3dQbGF5aW5nSW5mby0+dGl0bGU7CisKKyAgICBkb3VibGUgZHVyYXRpb24gPSBub3dQ
bGF5aW5nSW5mby0+ZHVyYXRpb247CisgICAgaWYgKHN0ZDo6aXNmaW5pdGUoZHVyYXRpb24pICYm
IGR1cmF0aW9uICE9IE1lZGlhUGxheWVyOjppbnZhbGlkVGltZSgpKQorICAgICAgICBtX2xhc3RV
cGRhdGVkTm93UGxheWluZ0R1cmF0aW9uID0gZHVyYXRpb247CisKKyAgICBtX2xhc3RVcGRhdGVk
Tm93UGxheWluZ0luZm9VbmlxdWVJZGVudGlmaWVyID0gbm93UGxheWluZ0luZm8tPnVuaXF1ZUlk
ZW50aWZpZXI7CisKKyAgICBkb3VibGUgY3VycmVudFRpbWUgPSBub3dQbGF5aW5nSW5mby0+Y3Vy
cmVudFRpbWU7CisgICAgaWYgKHN0ZDo6aXNmaW5pdGUoY3VycmVudFRpbWUpICYmIGN1cnJlbnRU
aW1lICE9IE1lZGlhUGxheWVyOjppbnZhbGlkVGltZSgpICYmIG5vd1BsYXlpbmdJbmZvLT5zdXBw
b3J0c1NlZWtpbmcpCisgICAgICAgIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nRWxhcHNlZFRpbWUg
PSBjdXJyZW50VGltZTsKKworICAgIG1fbm93UGxheWluZ0FjdGl2ZSA9IG5vd1BsYXlpbmdJbmZv
LT5hbGxvd3NOb3dQbGF5aW5nQ29udHJvbHNWaXNpYmlsaXR5OworCisgICAgR1ZhcmlhbnRCdWls
ZGVyIGJ1aWxkZXI7CisgICAgZ192YXJpYW50X2J1aWxkZXJfaW5pdCgmYnVpbGRlciwgR19WQVJJ
QU5UX1RZUEUoImF7c3Z9IikpOworICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwg
Intzdn0iLCAibXByaXM6dHJhY2tpZCIsIGdfdmFyaWFudF9uZXcoIm8iLCBEQlVTX01QUklTX1RS
QUNLX1BBVEgpKTsKKyAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7c3Z9Iiwg
Im1wcmlzOmxlbmd0aCIsIGdfdmFyaWFudF9uZXdfaW50NjQobm93UGxheWluZ0luZm8tPmR1cmF0
aW9uICogMTAwMDAwMCkpOworICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntz
dn0iLCAieGVzYW06dGl0bGUiLCBnX3ZhcmlhbnRfbmV3X3N0cmluZyhub3dQbGF5aW5nSW5mby0+
dGl0bGUudXRmOCgpLmRhdGEoKSkpOworICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRl
ciwgIntzdn0iLCAieGVzYW06YWxidW0iLCBnX3ZhcmlhbnRfbmV3X3N0cmluZyhub3dQbGF5aW5n
SW5mby0+YWxidW0udXRmOCgpLmRhdGEoKSkpOworICAgIGlmIChub3dQbGF5aW5nSW5mby0+YXJ0
d29yaykKKyAgICAgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIsICJt
cHJpczphcnRVcmwiLCBnX3ZhcmlhbnRfbmV3X3N0cmluZyhub3dQbGF5aW5nSW5mby0+YXJ0d29y
ay0+c3JjLnV0ZjgoKS5kYXRhKCkpKTsKKworICAgIEdWYXJpYW50QnVpbGRlciBhcnRpc3RCdWls
ZGVyOworICAgIGdfdmFyaWFudF9idWlsZGVyX2luaXQoJmFydGlzdEJ1aWxkZXIsIEdfVkFSSUFO
VF9UWVBFKCJhcyIpKTsKKyAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmFydGlzdEJ1aWxkZXIs
ICJzIiwgbm93UGxheWluZ0luZm8tPmFydGlzdC51dGY4KCkuZGF0YSgpKTsKKyAgICBnX3Zhcmlh
bnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgInhlc2FtOmFydGlzdCIsIGdfdmFyaWFu
dF9idWlsZGVyX2VuZCgmYXJ0aXN0QnVpbGRlcikpOworCisgICAgbV9ub3dQbGF5aW5nSW5mbyA9
IGdfdmFyaWFudF9idWlsZGVyX2VuZCgmYnVpbGRlcik7CisKKyAgICBHVmFyaWFudEJ1aWxkZXIg
cHJvcGVydGllc0J1aWxkZXI7CisgICAgZ192YXJpYW50X2J1aWxkZXJfaW5pdCgmcHJvcGVydGll
c0J1aWxkZXIsIEdfVkFSSUFOVF9UWVBFKCJhe3N2fSIpKTsKKyAgICBnX3ZhcmlhbnRfYnVpbGRl
cl9hZGQoJnByb3BlcnRpZXNCdWlsZGVyLCAie3N2fSIsICJNZXRhZGF0YSIsIG1fbm93UGxheWlu
Z0luZm8uZ2V0KCkpOworICAgIGVtaXRQcm9wZXJ0aWVzQ2hhbmdlZChnX3ZhcmlhbnRfbmV3KCIo
c2F7c3Z9YXMpIiwgREJVU19NUFJJU19QTEFZRVJfSU5URVJGQUNFLCAmcHJvcGVydGllc0J1aWxk
ZXIsIG51bGxwdHIpKTsKK30KKworR1ZhcmlhbnQqIE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpn
ZXRQbGF5YmFja1N0YXR1c0FzR1ZhcmlhbnQoc3RkOjpvcHRpb25hbDxjb25zdCBQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbio+IHNlc3Npb24pCit7CisgICAgYXV0byBzdGF0ZSA9IFt0aGlzLCBzZXNzaW9u
ID0gV1RGTW92ZShzZXNzaW9uKV0oKSAtPiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGUgewor
ICAgICAgICBpZiAoc2Vzc2lvbikKKyAgICAgICAgICAgIHJldHVybiBzZXNzaW9uLnZhbHVlKCkt
PnN0YXRlKCk7CisKKyAgICAgICAgYXV0byogbm93UGxheWluZ1Nlc3Npb24gPSBub3dQbGF5aW5n
RWxpZ2libGVTZXNzaW9uKCk7CisgICAgICAgIGlmIChub3dQbGF5aW5nU2Vzc2lvbikKKyAgICAg
ICAgICAgIHJldHVybiBub3dQbGF5aW5nU2Vzc2lvbi0+c3RhdGUoKTsKKworICAgICAgICByZXR1
cm4gUGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpJZGxlOworICAgIH0oKTsKKworICAgIHN3
aXRjaCAoc3RhdGUpIHsKKyAgICBjYXNlIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6QXV0
b3BsYXlpbmc6CisgICAgY2FzZSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU6OlBsYXlpbmc6
CisgICAgICAgIHJldHVybiBnX3ZhcmlhbnRfbmV3X3N0cmluZygiUGxheWluZyIpOworICAgIGNh
c2UgUGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpQYXVzZWQ6CisgICAgICAgIHJldHVybiBn
X3ZhcmlhbnRfbmV3X3N0cmluZygiUGF1c2VkIik7CisgICAgY2FzZSBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbjo6U3RhdGU6OklkbGU6CisgICAgY2FzZSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU6
OkludGVycnVwdGVkOgorICAgICAgICByZXR1cm4gZ192YXJpYW50X25ld19zdHJpbmcoIlN0b3Bw
ZWQiKTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK0dWYXJpYW50KiBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6Z2V0QWN0aXZlU2Vz
c2lvblBvc2l0aW9uKCkKK3sKKyAgICBhdXRvKiBzZXNzaW9uID0gbm93UGxheWluZ0VsaWdpYmxl
U2Vzc2lvbigpOworICAgIHJldHVybiBnX3ZhcmlhbnRfbmV3X2ludDY0KHNlc3Npb24gPyBzZXNz
aW9uLT5ub3dQbGF5aW5nSW5mbygpLT5jdXJyZW50VGltZSAqIDEwMDAwMDAgOiAwKTsKK30KKwor
dm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6ZGlzcGF0Y2goUGxhdGZvcm1NZWRpYVNlc3Np
b246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSBwbGF0Zm9ybUNvbW1hbmQsIFBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpSZW1vdGVDb21tYW5kQXJndW1lbnQgYXJndW1lbnQpCit7CisgICAgbV9pc1Nl
ZWtpbmcgPSBwbGF0Zm9ybUNvbW1hbmQgPT0gUGxhdGZvcm1NZWRpYVNlc3Npb246OlNlZWtUb1Bs
YXliYWNrUG9zaXRpb25Db21tYW5kOworICAgIG1fbm93UGxheWluZ01hbmFnZXItPmRpZFJlY2Vp
dmVSZW1vdGVDb250cm9sQ29tbWFuZChwbGF0Zm9ybUNvbW1hbmQsIGFyZ3VtZW50KTsKK30KKwor
dm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6ZW1pdFByb3BlcnRpZXNDaGFuZ2VkKEdWYXJp
YW50KiBwYXJhbWV0ZXJzKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1
cm47CisKKyAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CisgICAgaWYgKCFnX2RidXNf
Y29ubmVjdGlvbl9lbWl0X3NpZ25hbChtX2Nvbm5lY3Rpb24uZ2V0KCksIG51bGxwdHIsIERCVVNf
TVBSSVNfT0JKRUNUX1BBVEgsICJvcmcuZnJlZWRlc2t0b3AuREJ1cy5Qcm9wZXJ0aWVzIiwgIlBy
b3BlcnRpZXNDaGFuZ2VkIiwgcGFyYW1ldGVycywgJmVycm9yLm91dFB0cigpKSkKKyAgICAgICAg
Z193YXJuaW5nKCJGYWlsZWQgdG8gZW1pdCBNUFJJUyBwcm9wZXJ0aWVzIGNoYW5nZWQ6ICVzIiwg
ZXJyb3ItPm1lc3NhZ2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBVU0UoR0xJQikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2ds
aWIvTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dsaWIvTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzllNjgxMmRk
ZGQ0MjI4ZjI0MjRhNGU3MDdkYzk3ZTBmNmZmMDU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9NZWRpYVNlc3Npb25NYW5hZ2VyR0xpYi5oCkBA
IC0wLDAgKzEsMTE3IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MCisg
KgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAq
ICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0
b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShH
TElCKQorCisjaW5jbHVkZSAiTm93UGxheWluZ01hbmFnZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKKyNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IE5vd1BsYXlpbmdJbmZvOworCitjbGFzcyBN
ZWRpYVNlc3Npb25NYW5hZ2VyR0xpYgorICAgIDogcHVibGljIFBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlcgorICAgICwgcHJpdmF0ZSBOb3dQbGF5aW5nTWFuYWdlcjo6Q2xpZW50IHsKKyAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBNZWRpYVNlc3Npb25NYW5hZ2Vy
R0xpYigpOworICAgIH5NZWRpYVNlc3Npb25NYW5hZ2VyR0xpYigpOworCisgICAgYm9vbCBzZXR1
cE1wcmlzKCk7CisKKyAgICB2b2lkIGJlZ2luSW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpJbnRlcnJ1cHRpb25UeXBlKSBmaW5hbDsKKworICAgIGJvb2wgaGFzQWN0aXZlTm93UGxh
eWluZ1Nlc3Npb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX25vd1BsYXlpbmdBY3RpdmU7IH0K
KyAgICBTdHJpbmcgbGFzdFVwZGF0ZWROb3dQbGF5aW5nVGl0bGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2xhc3RVcGRhdGVkTm93UGxheWluZ1RpdGxlOyB9CisgICAgZG91YmxlIGxhc3RVcGRh
dGVkTm93UGxheWluZ0R1cmF0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sYXN0VXBkYXRl
ZE5vd1BsYXlpbmdEdXJhdGlvbjsgfQorICAgIGRvdWJsZSBsYXN0VXBkYXRlZE5vd1BsYXlpbmdF
bGFwc2VkVGltZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5n
RWxhcHNlZFRpbWU7IH0KKyAgICBNZWRpYVVuaXF1ZUlkZW50aWZpZXIgbGFzdFVwZGF0ZWROb3dQ
bGF5aW5nSW5mb1VuaXF1ZUlkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xhc3RV
cGRhdGVkTm93UGxheWluZ0luZm9VbmlxdWVJZGVudGlmaWVyOyB9CisgICAgYm9vbCByZWdpc3Rl
cmVkQXNOb3dQbGF5aW5nQXBwbGljYXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3JlZ2lz
dGVyZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbjsgfQorICAgIGJvb2wgaGF2ZUV2ZXJSZWdpc3Rl
cmVkQXNOb3dQbGF5aW5nQXBwbGljYXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2hhdmVF
dmVyUmVnaXN0ZXJlZEFzTm93UGxheWluZ0FwcGxpY2F0aW9uOyB9CisKKyAgICB2b2lkIGJ1c0Fj
cXVpcmVkKEdEQnVzQ29ubmVjdGlvbiopOworICAgIHZvaWQgbmFtZUFjcXVpcmVkKEdEQnVzQ29u
bmVjdGlvbiogY29ubmVjdGlvbikgeyBtX2Nvbm5lY3Rpb24gPSBjb25uZWN0aW9uOyB9CisgICAg
dm9pZCBuYW1lTG9zdChHREJ1c0Nvbm5lY3Rpb24qKTsKKyAgICBHVmFyaWFudCogZ2V0TWV0YWRh
dGFBc0dWYXJpYW50KCkgY29uc3QgeyByZXR1cm4gbV9ub3dQbGF5aW5nSW5mby5nZXQoKTsgfQor
ICAgIEdWYXJpYW50KiBnZXRQbGF5YmFja1N0YXR1c0FzR1ZhcmlhbnQoc3RkOjpvcHRpb25hbDxj
b25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbio+KTsKKyAgICBHVmFyaWFudCogZ2V0QWN0aXZlU2Vz
c2lvblBvc2l0aW9uKCk7CisgICAgdm9pZCBkaXNwYXRjaChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlLCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29t
bWFuZEFyZ3VtZW50KTsKKworcHJvdGVjdGVkOgorICAgIHZvaWQgc2NoZWR1bGVTZXNzaW9uU3Rh
dHVzVXBkYXRlKCkgZmluYWw7CisgICAgdm9pZCB1cGRhdGVOb3dQbGF5aW5nSW5mbygpOworCisg
ICAgdm9pZCByZW1vdmVTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikgZmluYWw7CisgICAg
dm9pZCBhZGRTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikgZmluYWw7CisgICAgdm9pZCBz
ZXRDdXJyZW50U2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIGZpbmFsOworCisgICAgYm9v
bCBzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24mKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHNlc3Npb25XaWxsRW5kUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24m
LCBEZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHNlc3Np
b25TdGF0ZUNoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Npb24mKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNlc3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb24mKSBmaW5h
bDsKKyAgICB2b2lkIGNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQoUGxhdGZvcm1NZWRpYVNl
c3Npb24mKSBmaW5hbDsKKyAgICB2b2lkIHNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKCkg
ZmluYWw7CisKKyAgICB2aXJ0dWFsIHZvaWQgcHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJ
RElmTmVjZXNzYXJ5KCkgeyB9CisKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiogbm93UGxheWlu
Z0VsaWdpYmxlU2Vzc2lvbigpOworCisgICAgdm9pZCBhZGRTdXBwb3J0ZWRDb21tYW5kKFBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUpIGZpbmFsOworICAgIHZv
aWQgcmVtb3ZlU3VwcG9ydGVkQ29tbWFuZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29u
dHJvbENvbW1hbmRUeXBlKSBmaW5hbDsKKworICAgIHZvaWQgcmVzZXRIYXZlRXZlclJlZ2lzdGVy
ZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbkZvclRlc3RpbmcoKSBmaW5hbCB7IG1faGF2ZUV2ZXJS
ZWdpc3RlcmVkQXNOb3dQbGF5aW5nQXBwbGljYXRpb24gPSBmYWxzZTsgfTsKKworcHJpdmF0ZToK
KyAgICB2b2lkIGVtaXRQcm9wZXJ0aWVzQ2hhbmdlZChHVmFyaWFudCopOworCisjaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECisgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gIk1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliIjsgfQorI2VuZGlmCisKKyAg
ICAvLyBOb3dQbGF5aW5nTWFuYWdlcjo6Q2xpZW50CisgICAgdm9pZCBkaWRSZWNlaXZlUmVtb3Rl
Q29udHJvbENvbW1hbmQoUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5k
VHlwZSB0eXBlLCBjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29tbWFuZEFyZ3Vt
ZW50JiBhcmd1bWVudCkgZmluYWwgeyBwcm9jZXNzRGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21t
YW5kKHR5cGUsIGFyZ3VtZW50KTsgfQorCisgICAgU3RyaW5nIG1faW5zdGFuY2VJZDsKKyAgICB1
bnNpZ25lZCBtX293bmVySWQgeyAwIH07CisgICAgdW5zaWduZWQgbV9yb290UmVnaXN0cmF0aW9u
SWQgeyAwIH07CisgICAgdW5zaWduZWQgbV9wbGF5ZXJSZWdpc3RyYXRpb25JZCB7IDAgfTsKKyAg
ICBib29sIG1faXNTZWVraW5nIHsgZmFsc2UgfTsKKyAgICBHUmVmUHRyPEdEQnVzQ29ubmVjdGlv
bj4gbV9jb25uZWN0aW9uOworICAgIEdSZWZQdHI8R0RCdXNOb2RlSW5mbz4gbV9tcHJpc0ludGVy
ZmFjZTsKKyAgICBHUmVmUHRyPEdWYXJpYW50PiBtX25vd1BsYXlpbmdJbmZvOworCisgICAgYm9v
bCBtX25vd1BsYXlpbmdBY3RpdmUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9yZWdpc3RlcmVkQXNO
b3dQbGF5aW5nQXBwbGljYXRpb24geyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXZlRXZlclJlZ2lz
dGVyZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbiB7IGZhbHNlIH07CisKKyAgICAvLyBGb3IgdGVz
dGluZyBwdXJwb3NlcyBvbmx5LgorICAgIFN0cmluZyBtX2xhc3RVcGRhdGVkTm93UGxheWluZ1Rp
dGxlOworICAgIGRvdWJsZSBtX2xhc3RVcGRhdGVkTm93UGxheWluZ0R1cmF0aW9uIHsgTkFOIH07
CisgICAgZG91YmxlIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nRWxhcHNlZFRpbWUgeyBOQU4gfTsK
KyAgICBNZWRpYVVuaXF1ZUlkZW50aWZpZXIgbV9sYXN0VXBkYXRlZE5vd1BsYXlpbmdJbmZvVW5p
cXVlSWRlbnRpZmllcjsKKworICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxOb3dQbGF5aW5nTWFu
YWdlcj4gbV9ub3dQbGF5aW5nTWFuYWdlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIFVTRShHTElCKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ2xpYi9BcHBsaWNhdGlvbkdMaWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xp
Yi9BcHBsaWNhdGlvbkdMaWIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0ZmZjZjQ1ZDFiZmI4YzNjNjYyMWFh
NDQ2YmQ1MDczNDI1Zjk2MzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9nbGliL0FwcGxpY2F0aW9uR0xpYi5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqICBD
b3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBcHBsaWNhdGlvbkdMaWIuaCIK
KworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3N0YXRpYyBTdHJpbmcgZ0FwcGxpY2F0aW9uTmFtZTsKK3N0YXRpYyBTdHJpbmcgZ0FwcGxp
Y2F0aW9uSUQ7CisKK3ZvaWQgc2V0QXBwbGljYXRpb25OYW1lKGNvbnN0IFN0cmluZyYgYXBwbGlj
YXRpb25OYW1lKQoreworICAgIGdBcHBsaWNhdGlvbk5hbWUgPSBhcHBsaWNhdGlvbk5hbWU7Cit9
CisKK2NvbnN0IGNoYXIqIGdldEFwcGxpY2F0aW9uTmFtZSgpCit7CisgICAgaWYgKCFnQXBwbGlj
YXRpb25OYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGdBcHBsaWNhdGlvbk5hbWUuYXNj
aWkoKS5kYXRhKCk7CisgICAgcmV0dXJuICJXZWJLaXQiOworfQorCit2b2lkIHNldEFwcGxpY2F0
aW9uSUQoY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbklEKQoreworICAgIGdBcHBsaWNhdGlvbklE
ID0gYXBwbGljYXRpb25JRDsKK30KKworY29uc3QgU3RyaW5nJiBnZXRBcHBsaWNhdGlvbklEKCkK
K3sKKyAgICByZXR1cm4gZ0FwcGxpY2F0aW9uSUQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvQXBwbGljYXRpb25H
TGliLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0FwcGxpY2F0aW9uR0xpYi5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU4Y2JhZTZjMDhkMTk0NmQ4MzYwMDg0ZjJjNzM4MDQ1YjQ2ZWI0MDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0FwcGxpY2F0aW9uR0xp
Yi5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBT
LkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IFVTRShHTElCKQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFwcGxpY2F0aW9uTmFtZShjb25zdCBTdHJp
bmcmKTsKK1dFQkNPUkVfRVhQT1JUIGNvbnN0IGNoYXIqIGdldEFwcGxpY2F0aW9uTmFtZSgpOwor
CitXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFwcGxpY2F0aW9uSUQoY29uc3QgU3RyaW5nJik7CitX
RUJDT1JFX0VYUE9SVCBjb25zdCBTdHJpbmcmIGdldEFwcGxpY2F0aW9uSUQoKTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKEdMSUIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL1JlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9SZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xMzMxZGMyY2RiOWIwYTEzZDI0ZWQyM2JiMjdkNzY2NTEwZmU0ZGNiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9SZW1vdGVDb21t
YW5kTGlzdGVuZXJHTGliLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogIENvcHlyaWdodCAo
QykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRv
IHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWIuaCIK
KworI2lmIFVTRShHTElCKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0
cjxSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliPiBSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliOjpj
cmVhdGUoUmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50JiBjbGllbnQpCit7CisgICAgcmV0dXJu
IG1ha2VVbmlxdWU8UmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYj4oY2xpZW50KTsKK30KKwordm9p
ZCBSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliOjp1cGRhdGVTdXBwb3J0ZWRDb21tYW5kcygpCit7
CisgICAgLy8gUmVtb3RlIGNvbW1hbmRzIGFyZSBoYW5kbGVkIGFzIHVzZXItdHJpZ2dlcmVkIE1Q
UklTIGFjdGlvbnMgaW4gTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIuCit9CisKK1JlbW90ZUNvbW1h
bmRMaXN0ZW5lckdMaWI6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWIoUmVtb3RlQ29tbWFuZExp
c3RlbmVyQ2xpZW50JiBjbGllbnQpCisgICAgOiBSZW1vdGVDb21tYW5kTGlzdGVuZXIoY2xpZW50
KQoreworfQorCitSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliOjp+UmVtb3RlQ29tbWFuZExpc3Rl
bmVyR0xpYigpID0gZGVmYXVsdDsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dsaWIvUmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9SZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTFiN2Q2MjljMzVlNmMxZDI4YWE5MmI2ZTNhYzZkOWU5YzMwY2Q0ZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvUmVtb3RlQ29tbWFuZExpc3Rl
bmVyR0xpYi5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDIxIEln
YWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIlJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oIgorCisjaWYgVVNFKEdMSUIpCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYiA6
IHB1YmxpYyBSZW1vdGVDb21tYW5kTGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYj4gY3JlYXRlKFJlbW90ZUNvbW1h
bmRMaXN0ZW5lckNsaWVudCYpOworICAgIFJlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWIoUmVtb3Rl
Q29tbWFuZExpc3RlbmVyQ2xpZW50Jik7CisgICAgdmlydHVhbCB+UmVtb3RlQ29tbWFuZExpc3Rl
bmVyR0xpYigpOworCitwcml2YXRlOgorICAgIHZvaWQgdXBkYXRlU3VwcG9ydGVkQ29tbWFuZHMo
KSBmaW5hbDsKKworICAgIGNvbnN0IFJlbW90ZUNvbW1hbmRzU2V0JiBkZWZhdWx0Q29tbWFuZHMo
KTsKK307CisKK30KKworI2VuZGlmIC8vIFVTRShHTElCKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZS5oCmluZGV4IDk4NDNhYWM0MGViNGMxNzhiNmZiMDk0
MTYzZmI2ODg1N2FmNWQxMzIuLjkyZTFkNDQ4NmM1Zjk1ODQ0MTZjYTcwMmNkNDViMWE2ZWE4YzYy
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJh
bWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmgK
QEAgLTMzLDYgKzMzLDEyIEBACiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNpbmNsdWRlIDx3
dGYvU2Vjb25kcy5oPgogCisvLyBYMTEgaGVhZGVycyBkZWZpbmUgYSBidW5jaCBvZiBtYWNyb3Mg
d2l0aCBjb21tb24gdGVybXMsIGludGVyZmVyaW5nIHdpdGggV2ViQ29yZSBhbmQgV1RGIGVudW0g
dmFsdWVzLgorLy8gQXMgYSB3b3JrYXJvdW5kLCB3ZSBleHBsaWNpdGx5IHVuZGVmIHRoZW0gaGVy
ZS4KKyNpZiBkZWZpbmVkKE5vbmUpCisjdW5kZWYgTm9uZQorI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgSW1hZ2VGcmFtZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9yaWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9yaWVudGF0aW9uLmgKaW5kZXggZDk5MGEzZGM1NTVmY2Rk
YjYxMzc0ZGI3ZDBjZDc1ZGE4ZGY0OTg4Zi4uNWRlMjcxZTUyMzUyNzYyYWUxYTNjMzM4YTUzNTU3
MGRlOWNkNTljNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VPcmllbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlT3JpZW50YXRpb24uaApAQCAtMzAsNiArMzAsMTIgQEAKICNpbmNsdWRlICJGbG9hdFNp
emUuaCIKICNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCisvLyBYMTEgaGVhZGVycyBkZWZp
bmUgYSBidW5jaCBvZiBtYWNyb3Mgd2l0aCBjb21tb24gdGVybXMsIGludGVyZmVyaW5nIHdpdGgg
V2ViQ29yZSBhbmQgV1RGIGVudW0gdmFsdWVzLgorLy8gQXMgYSB3b3JrYXJvdW5kLCB3ZSBleHBs
aWNpdGx5IHVuZGVmIHRoZW0gaGVyZS4KKyNpZiBkZWZpbmVkKE5vbmUpCisjdW5kZWYgTm9uZQor
I2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEltYWdlT3JpZW50YXRpb24g
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAppbmRleCBkY2E1NWUxYzkzMDUxNjYwZjliYzkyNDJhM2ZiZTFiNDRmMzhlNzVl
Li4yNmMwYWE5NTVjMTNmOWZlOWFkNTNiNjk3MThmYmEyNjdjZDY0NjA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApA
QCAtMjEzLDYgKzIxMywxMCBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVu
Y29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShXUEUpCiAgICAgZW5jb2RlciA8PCBtZW1vcnlQcmVzc3VyZUhhbmRsZXJDb25maWd1
cmF0aW9uOwogI2VuZGlmCisjaWYgVVNFKEdMSUIpCisgICAgZW5jb2RlciA8PCBhcHBsaWNhdGlv
bklEOworICAgIGVuY29kZXIgPDwgYXBwbGljYXRpb25OYW1lOworI2VuZGlmCiB9CiAKIGJvb2wg
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rl
ciwgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKQEAgLTU4NCw2ICs1
ODgsMTMgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXQKICAgICBwYXJhbWV0ZXJzLm1lbW9yeVBy
ZXNzdXJlSGFuZGxlckNvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKCptZW1vcnlQcmVzc3VyZUhhbmRs
ZXJDb25maWd1cmF0aW9uKTsKICNlbmRpZgogCisjaWYgVVNFKEdMSUIpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uSUQpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uTmFtZSkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaAppbmRleCA1M2IxYTgxZDA3NWQ1NjNhMDk2ZDhkMmE4N2QwNjE5NzQ4YTQ5M2FjLi5kYTc0
ZGMzNjBhNzcwZTVkNzhkMWQ2Y2ZiMmI2YjE4N2NhNDNlZTE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0yNTgsNiAr
MjU4LDExIEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICNpZiBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICBzdGQ6Om9wdGlvbmFsPE1lbW9yeVByZXNz
dXJlSGFuZGxlcjo6Q29uZmlndXJhdGlvbj4gbWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29uZmlndXJh
dGlvbjsKICNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisgICAgU3RyaW5nIGFwcGxpY2F0aW9uSUQ7
CisgICAgU3RyaW5nIGFwcGxpY2F0aW9uTmFtZTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRTZXR0aW5ncy5jcHAKaW5kZXggOWZhMjRiYmM3MGUwMTBlZTY3MzNkNzkyZjg2Y2I2NWM3MmE1
NmMwZS4uODhiZDIyNzdkYTU5MGI2YjFiY2IwM2RiODBkY2ZlNjBhZDE3ZmI3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcApA
QCAtMTkyLDYgKzE5MiwxMyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRTZXR0aW5nc0NvbnN0cnVjdGVk
KEdPYmplY3QqIG9iamVjdCkKICAgICBib29sIG1lZGlhU3RyZWFtRW5hYmxlZCA9IHByZWZzLT5t
ZWRpYVN0cmVhbUVuYWJsZWQoKTsKICAgICBwcmVmcy0+c2V0TWVkaWFEZXZpY2VzRW5hYmxlZCht
ZWRpYVN0cmVhbUVuYWJsZWQpOwogICAgIHByZWZzLT5zZXRQZWVyQ29ubmVjdGlvbkVuYWJsZWQo
bWVkaWFTdHJlYW1FbmFibGVkKTsKKworICAgIC8vIEZJWE1FOiBFeHBvc2UgQVBJIGZvciB0aGlz
IHdoZW4gdGhpcyBmZWF0dXJlIGlzIG9mZmljaWFsbHkgbm9uLWV4cGVyaW1lbnRhbC4KKyNpZiBF
TkFCTEUoTUVESUFfU0VTU0lPTikKKyAgICBwcmVmcy0+c2V0TWVkaWFTZXNzaW9uRW5hYmxlZCh0
cnVlKTsKKyAgICBwcmVmcy0+c2V0TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JFbmFibGVkKHRydWUp
OworICAgIHByZWZzLT5zZXRNZWRpYVNlc3Npb25QbGF5bGlzdEVuYWJsZWQodHJ1ZSk7CisjZW5k
aWYKIH0KIAogc3RhdGljIHZvaWQgd2ViS2l0U2V0dGluZ3NTZXRQcm9wZXJ0eShHT2JqZWN0KiBv
YmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcGFy
YW1TcGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvZ2xp
Yi9CdWJibGV3cmFwTGF1bmNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNo
ZXIvZ2xpYi9CdWJibGV3cmFwTGF1bmNoZXIuY3BwCmluZGV4IDNhZGE2MzgwZDljZWY4NjBkNThh
MGVlY2M0NWNlZTc2Y2JhNWE5ZDguLmM3YTcyZWExMzljOTAxMzEzZjY0NjhiYTg5MWEyYjZiMzdl
MGM5OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIv
QnViYmxld3JhcExhdW5jaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9nbGliL0J1YmJsZXdyYXBMYXVuY2hlci5jcHAKQEAgLTEzMCw2ICsxMzAsMjIgQEAgYXJn
c1RvRmQoY29uc3QgVmVjdG9yPENTdHJpbmc+JiBhcmdzLCBjb25zdCBjaGFyICpuYW1lKQogICAg
IHJldHVybiBtZW1mZDsKIH0KIAorc3RhdGljIGNvbnN0IGNoYXIqIGFwcGxpY2F0aW9uSWQoR0Vy
cm9yKiogZXJyb3IpCit7CisgICAgR0FwcGxpY2F0aW9uKiBhcHAgPSBnX2FwcGxpY2F0aW9uX2dl
dF9kZWZhdWx0KCk7CisgICAgaWYgKCFhcHApIHsKKyAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJh
bChlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9JTlZBTElEX0RBVEEsICJHQXBwbGljYXRp
b24gaXMgcmVxdWlyZWQuIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAg
IGNvbnN0IGNoYXIqIGFwcElEID0gZ19hcHBsaWNhdGlvbl9nZXRfYXBwbGljYXRpb25faWQoYXBw
KTsKKyAgICBpZiAoIWFwcElEKSB7CisgICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3Is
IEdfSU9fRVJST1IsIEdfSU9fRVJST1JfSU5WQUxJRF9EQVRBLCAiR0FwcGxpY2F0aW9uIG11c3Qg
aGF2ZSBhIHZhbGlkIElELiIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAg
cmV0dXJuIGFwcElEOworfQorCiBzdGF0aWMgaW50IGNyZWF0ZUZsYXRwYWtJbmZvKCkKIHsKICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8R1VuaXF1ZVB0cjxjaGFyPj4gZGF0YTsKQEAgLTEzOCwx
MyArMTU0LDEwIEBAIHN0YXRpYyBpbnQgY3JlYXRlRmxhdHBha0luZm8oKQogICAgIGlmICghZGF0
YS5nZXQoKSkgewogICAgICAgICAvLyB4ZGctZGVza3RvcC1wb3J0YWwgcmVsYXRlcyB5b3VyIG5h
bWUgdG8gY2VydGFpbiBwZXJtaXNzaW9ucyBzbyB3ZSB3YW50CiAgICAgICAgIC8vIHRoZW0gdG8g
YmUgYXBwbGljYXRpb24gdW5pcXVlIHdoaWNoIGlzIGJlc3QgZG9uZSB2aWEgR0FwcGxpY2F0aW9u
LgotICAgICAgICBHQXBwbGljYXRpb24qIGFwcCA9IGdfYXBwbGljYXRpb25fZ2V0X2RlZmF1bHQo
KTsKLSAgICAgICAgaWYgKCFhcHApCi0gICAgICAgICAgICBnX2Vycm9yKCJHQXBwbGljYXRpb24g
aXMgcmVxdWlyZWQgZm9yIHhkZy1kZXNrdG9wLXBvcnRhbCBhY2Nlc3MgaW4gdGhlIFdlYktpdCBz
YW5kYm94LiIpOwotCi0gICAgICAgIGNvbnN0IGNoYXIqIGFwcElEID0gZ19hcHBsaWNhdGlvbl9n
ZXRfYXBwbGljYXRpb25faWQoYXBwKTsKKyAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVy
cm9yOworICAgICAgICBjb25zdCBjaGFyKiBhcHBJRCA9IGFwcGxpY2F0aW9uSWQoJmVycm9yLm91
dFB0cigpKTsKICAgICAgICAgaWYgKCFhcHBJRCkKLSAgICAgICAgICAgIGdfZXJyb3IoIkdBcHBs
aWNhdGlvbiBtdXN0IGhhdmUgYSB2YWxpZCBJRCBmb3IgeGRnLWRlc2t0b3AtcG9ydGFsIGFjY2Vz
cyBpbiB0aGUgV2ViS2l0IHNhbmRib3guIik7CisgICAgICAgICAgICBnX2Vycm9yKCJVbmFibGUg
dG8gY29uZmlndXJlIHhkZy1kZXNrdG9wLXBvcnRhbCBhY2Nlc3MgaW4gdGhlIFdlYktpdCBzYW5k
Ym94OiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKIAogICAgICAgICBHVW5pcXVlUHRyPEdLZXlGaWxl
PiBrZXlGaWxlKGdfa2V5X2ZpbGVfbmV3KCkpOwogICAgICAgICBnX2tleV9maWxlX3NldF9zdHJp
bmcoa2V5RmlsZS5nZXQoKSwgIkFwcGxpY2F0aW9uIiwgIm5hbWUiLCBhcHBJRCk7CkBAIC0yMDcs
NiArMjIwLDE2IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGVuYWJsZUxvZ2dpbmcpCiAgICAgICAg
ICAgICBwcm94eUFyZ3MuYXBwZW5kKCItLWxvZyIpOwogCisgICAgICAgIEdVbmlxdWVPdXRQdHI8
R0Vycm9yPiBlcnJvcjsKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKyAgICAgICAgY29uc3Qg
Y2hhciogYXBwSUQgPSBhcHBsaWNhdGlvbklkKCZlcnJvci5vdXRQdHIoKSk7CisgICAgICAgIGlm
ICghYXBwSUQpCisgICAgICAgICAgICBnX2Vycm9yKCJVbmFibGUgdG8gb3duIERCdXMgTVBSSVMg
bmFtZSBpbiB0aGUgV2ViS2l0IHNhbmRib3g6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworCisgICAg
ICAgIGF1dG8gbXByaXNTZXNzaW9uSUQgPSBtYWtlU3RyaW5nKCItLW93bj1vcmcubXByaXMuTWVk
aWFQbGF5ZXIyLiIsIGFwcElEKTsKKyAgICAgICAgcHJveHlBcmdzLmFwcGVuZChtcHJpc1Nlc3Np
b25JRC5hc2NpaSgpLmRhdGEoKSk7CisjZW5kaWYKKwogICAgICAgICBwcm94eUFyZ3MuYXBwZW5k
VmVjdG9yKG1fcGVybWlzc2lvbnMpOwogCiAgICAgICAgIGludCBwcm94eUZkID0gYXJnc1RvRmQo
cHJveHlBcmdzLCAiZGJ1cy1wcm94eSIpOwpAQCAtMjM2LDcgKzI1OSw2IEBAIHB1YmxpYzoKIAog
ICAgICAgICBQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMgbGF1bmNoT3B0aW9uczsKICAg
ICAgICAgbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9IFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vz
c1R5cGU6OkRCdXNQcm94eTsKLSAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOwog
ICAgICAgICBHUmVmUHRyPEdTdWJwcm9jZXNzPiBwcm9jZXNzID0gYnViYmxld3JhcFNwYXduKGxh
dW5jaGVyLmdldCgpLCBsYXVuY2hPcHRpb25zLCBhcmd2LCAmZXJyb3Iub3V0UHRyKCkpOwogICAg
ICAgICBpZiAoIXByb2Nlc3MuZ2V0KCkpCiAgICAgICAgICAgICBnX2Vycm9yKCJGYWlsZWQgdG8g
c3RhcnQgZGJ1cyBwcm94eTogJXMiLCBlcnJvci0+bWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKaW5kZXggMTYwM2M5
YjJmMzQ5NmM1ZjNmZTFlYmQ2OTYxYTZjMDlmNGNiNzZjZi4uZDM3MmVkMzEyNDEzZmM4YzZmNTFm
OTZiNDQxMTI3ODk2Zjc0ZjNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcApAQCAtMTA5LDYgKzEwOSwxMSBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzcwogI2VuZGlmCiAKICAgICBwYXJhbWV0ZXJzLm1lbW9yeVByZXNzdXJl
SGFuZGxlckNvbmZpZ3VyYXRpb24gPSBtX2NvbmZpZ3VyYXRpb24tPm1lbW9yeVByZXNzdXJlSGFu
ZGxlckNvbmZpZ3VyYXRpb24oKTsKKworICAgIEdBcHBsaWNhdGlvbiogYXBwID0gZ19hcHBsaWNh
dGlvbl9nZXRfZGVmYXVsdCgpOworICAgIGlmIChhcHApCisgICAgICAgIHBhcmFtZXRlcnMuYXBw
bGljYXRpb25JRCA9IGdfYXBwbGljYXRpb25fZ2V0X2FwcGxpY2F0aW9uX2lkKGFwcCk7CisgICAg
cGFyYW1ldGVycy5hcHBsaWNhdGlvbk5hbWUgPSBnX2dldF9hcHBsaWNhdGlvbl9uYW1lKCk7CiB9
CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwCmluZGV4
IGNkNzMyMTkzZTgzMTkwNjlkOWQzMGE3MjZhMjYzZGM1MTYxMDY4YmEuLjFkYzA0NTY1MWU0ZWE5
YTljMjRhMjczYzQ5NWQ4YmRiZDBlNjRiMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvZ2xpYi9XZWJQcm9jZXNzR0xpYi5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL0dTdHJlYW1lckNvbW1vbi5oPgogI2VuZGlmCiAKKyNpbmNsdWRlIDxXZWJDb3Jl
L0FwcGxpY2F0aW9uR0xpYi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KIAog
I2lmIFBMQVRGT1JNKFdBWUxBTkQpCkBAIC0xMDgsNiArMTA5LDEyIEBAIHZvaWQgV2ViUHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJiBwYXJhCiAKICAgICBpZiAocGFyYW1ldGVycy5tZW1vcnlQcmVzc3VyZUhhbmRsZXJDb25m
aWd1cmF0aW9uKQogICAgICAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLnNl
dENvbmZpZ3VyYXRpb24oV1RGTW92ZSgqcGFyYW1ldGVycy5tZW1vcnlQcmVzc3VyZUhhbmRsZXJD
b25maWd1cmF0aW9uKSk7CisKKyAgICBpZiAoIXBhcmFtZXRlcnMuYXBwbGljYXRpb25JRC5pc0Vt
cHR5KCkpCisgICAgICAgIFdlYkNvcmU6OnNldEFwcGxpY2F0aW9uSUQocGFyYW1ldGVycy5hcHBs
aWNhdGlvbklEKTsKKworICAgIGlmICghcGFyYW1ldGVycy5hcHBsaWNhdGlvbk5hbWUuaXNFbXB0
eSgpKQorICAgICAgICBXZWJDb3JlOjpzZXRBcHBsaWNhdGlvbk5hbWUocGFyYW1ldGVycy5hcHBs
aWNhdGlvbk5hbWUpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtU2V0V2Vic2l0ZURh
dGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMmJikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlv
bnNHVEsuY21ha2UKaW5kZXggNDc2NjBjYjNjODU1YjUyZTI4NWMzY2QzZDYwOTU3ODQ2N2YxOGQ2
Mi4uZTI1YjUxNDAwNjk4OGM2YmJkNDY2YWQzODcwNzk4OWVmY2U0YmVlNiAxMDA2NDQKLS0tIGEv
U291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNH
VEsuY21ha2UKQEAgLTE1Nyw2ICsxNTcsOCBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfSU5QVVRfVFlQRV9NT05USCBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSBQUklWQVRFIE9OKQogV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSyBQUklW
QVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0xBWU9VVF9G
T1JNQVRUSU5HX0NPTlRFWFQgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9
KQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01FRElBX1NFU1NJT04g
UFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQorV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01FRElBX1NFU1NJT05fUExBWUxJU1QgUFJJVkFURSAk
e0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX01FRElBX1NUUkVBTSBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRB
TF9GRUFUVVJFU30pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUhU
TUwgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9N
T1VTRV9DVVJTT1JfU0NBTEUgUFJJVkFURSBPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9P
cHRpb25zV1BFLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKaW5kZXggZDU2
ZGViODk2MjFjNTU1OTE1YmQ2M2FhZmU4OWYxOTM4ZGUxZDkyMC4uMzg4ODkyM2Q0NjExOGIwZWQ3
MWY2NGRkYjk2OTJhNDFjMTlmYTM3YiAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNX
UEUuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKQEAgLTUxLDYgKzUx
LDggQEAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0RBUktfTU9ERV9D
U1MgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9G
SUxURVJTX0xFVkVMXzIgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZB
TFVFKEVOQUJMRV9HUFVfUFJPQ0VTUyBQUklWQVRFIE9GRikKIFdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUIFBSSVZBVEUgJHtF
TkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9NRURJQV9TRVNTSU9OIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFM
X0ZFQVRVUkVTfSkKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJ
QV9TRVNTSU9OX1BMQVlMSVNUIFBSSVZBVEUgJHtFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVT
fSkKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9TVFJFQU0g
UFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQogV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01IVE1MIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSBQUklWQVRFIE9G
RikKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZSBiL1NvdXJj
ZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQppbmRleCBkNzhlNmQzNDVhMDAyNWI3MDNhYzhm
MDM2MjIzZWVkM2E0NzUzOGY1Li45MjRjMGNiMWYyY2EwZmQ2NzU4ZDNjYWRlYmE3NWYwZjQ3Y2U5
YTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKKysrIGIv
U291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCkBAIC0xNjksNiArMTY5LDkgQEAgbWFj
cm8oV0VCS0lUX09QVElPTl9CRUdJTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVf
TUFUSE1MICJUb2dnbGUgTWF0aE1MIHN1cHBvcnQiIFBSSVZBVEUgT04pCiAgICAgV0VCS0lUX09Q
VElPTl9ERUZJTkUoRU5BQkxFX01FRElBX0NBUFRVUkUgIlRvZ2dsZSBNZWRpYSBDYXB0dXJlIHN1
cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9NRURJ
QV9DT05UUk9MU19TQ1JJUFQgIlRvZ2dsZSBkZWZpbml0aW9uIG9mIG1lZGlhIGNvbnRyb2xzIGlu
IEphdmFzY3JpcHQiIFBSSVZBVEUgT04pCisgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxF
X01FRElBX1NFU1NJT04gIlRvZ2dsZSBNZWRpYSBTZXNzaW9uIHN1cHBvcnQiIFBSSVZBVEUgT0ZG
KQorICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9NRURJQV9TRVNTSU9OX0NPT1JESU5B
VE9SICJUb2dnbGUgTWVkaWEgU2Vzc2lvbiBDb29yZGluYXRvciBzdXBwb3J0IiBQUklWQVRFIE9G
RikKKyAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElT
VCAiVG9nZ2xlIE1lZGlhIFNlc3Npb24gUGxheWxpc3Qgc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAg
ICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX01FRElBX1NPVVJDRSAiVG9nZ2xlIE1lZGlh
IFNvdXJjZSBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShF
TkFCTEVfTUVESUFfU1RBVElTVElDUyAiVG9nZ2xlIE1lZGlhIFN0YXRpc3RpY3Mgc3VwcG9ydCIg
UFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX01FRElBX1NUUkVB
TSAiVG9nZ2xlIE1lZGlhIFN0cmVhbSBzdXBwb3J0IiBQUklWQVRFIE9GRikKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiOGRj
Yzk1NmQxMWRkZDllODBiMDcyN2Y4NGI5M2M1ZTM5MjdiOTk2Li5kMTQ1OGM2ZTdjMWJkYjBmZGQ2
ZjkyNTI1YTUwNTliYWMwYWNlMTI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDgtMTUg
IFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHTElC
XSBNZWRpYVNlc3Npb24gaXMgbm90IGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzk5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3
NDAxMTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnM6IFVuc2tpcCBtZWRpYS1zZXNzaW9uIHRl
c3RzLgorCiAyMDIxLTA4LTE0ICBBcmNhZHkgR29sZG1pbnRzLU9ybG92ICA8YWdvbGRtaW50c0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHTElCXSBVcGRhdGUgYmFzZWxpbmVzIGFmdGVyIHIyODEw
MTIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhZmZi
ZTY2MmI5Yjc4Y2ZiYmE1ZWRmYzE5OWNlNmEyMDIwNzZiOGFjLi43NDNhYTZhNDc4NWI2M2Q3ZjNk
YzY3OTI2OTA1YTY0NGYwYzg4NzdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
bGliL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0
RXhwZWN0YXRpb25zCkBAIC0xMzU4LDExICsxMzU4LDYgQEAgd2Via2l0Lm9yZy9iLzIxNjM1OSBm
YXN0L3RleHQvZW1vamktc3ludGhlc2lzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KICMgRmFp
bGluZyBzaW5jZSBhZGRlZCBpbiByMjY4MTM4Lgogd2Via2l0Lm9yZy9iLzIxNzgxNSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbWFza2luZy9jbGlwLXBhdGgvY2xpcC1w
YXRoLWZpbHRlci1vcmRlci5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLSMgTWVkaWFTZXNz
aW9uIGlzIG5vdCBlbmFibGVkIGluIEdUSy9XUEUuCi13ZWJraXQub3JnL2IvMjE3OTkxIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFzZXNzaW9uLyBbIFNraXAgXQotd2Via2l0
Lm9yZy9iLzIxNzk5MSBtZWRpYS9tZWRpYS1zZXNzaW9uLyBbIFNraXAgXQotd2Via2l0Lm9yZy9i
LzIxNzk5MSBmYXN0L21lZGlhc2Vzc2lvbi8gWyBTa2lwIF0KLQogIyBUaGlzIHRlc3QgdXNlcyBh
biBNUEVHLTQgdmlkZW8KIG1lZGlhL3ZpZGVvLXNlZWstdG8tY3VycmVudC10aW1lLmh0bWwgWyBT
a2lwIF0KIApkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDlmYjZlYTU0
NTAwMjE2ZGNlNDdjNzEwZmU1MWZhMmE4ODc2NGEyM2MuLjUzYThiMjVmZWViZGNmNDAyNWY2ZmIw
N2YyMjc1ODQ2MzQyZmQxNmIgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAyMS0wOC0xNSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5k
QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dMSUJdIE1lZGlhU2Vzc2lvbiBpcyBub3QgZW5hYmxl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3OTkx
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDc0MDExOT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGUgTWVkaWFTZXNzaW9uIGFzIGFuIGV4
cGVyaW1lbnRhbCBidWlsZCBmZWF0dXJlIGluIENNYWtlIHBvcnRzLiBUaGUgc3BlYyBzdGF0dXMg
aXMKKyAgICAgICAgY3VycmVudGx5IERyYWZ0LgorCisgICAgICAgICogU291cmNlL2NtYWtlL09w
dGlvbnNHVEsuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2U6
CisgICAgICAgICogU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlOgorCiAyMDIxLTA4
LTA5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAg
VXBkYXRlIGxvZ2dpbmcgZG9jcyBhZnRlciByMjgwNzU4Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436268</attachid>
            <date>2021-08-24 02:12:51 -0700</date>
            <delta_ts>2021-09-06 14:00:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217991-20210824021249.patch</filename>
            <type>text/plain</type>
            <size>68832</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY0NmExZjc0Y2M5ODAxZTkxZmQwY2Y3
ZGY1NWNmNDViOTNiYzEzYWUuLjllYjA0NjRjZjMzOTBiZTQ1MWZkYWJkNWI1NDNlMGM4ODZkZjIz
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDgtMTUgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHTElCXSBNZWRpYVNlc3Npb24gaXMgbm90
IGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzk5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3NDAxMTk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR1JlZlB0ciB0ZW1wbGF0ZSBzcGVj
aWFsaXphdGlvbiBmb3IgR0RCdXNOb2RlSW5mby4KKworICAgICAgICAqIHd0Zi9nbGliL0dSZWZQ
dHIuY3BwOgorICAgICAgICAoV1RGOjpyZWZHUHRyKToKKyAgICAgICAgKFdURjo6ZGVyZWZHUHRy
KToKKyAgICAgICAgKiB3dGYvZ2xpYi9HUmVmUHRyLmg6CisKIDIwMjEtMDgtMjEgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBvdmVyd3JpdGVDb2Rl
UG9pbnQoKSBpbiBjcmVhdGVBbmRGaWxsR2x5cGhQYWdlKCkgaXMgd3JvbmcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBiNjNlZjFlZDRjMmJmMjhlOTMzYmQ4ZmVmYTUyNzRiZjM0MTMwZDk3Li5lZmZjNTliNjkwZDVk
MGI5MTAwZTgzNmNjYjdmNTlhNjE1NWNjZmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEgQEAK
KzIwMjEtMDgtMTUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFtHTElCXSBNZWRpYVNlc3Npb24gaXMgbm90IGVuYWJsZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzk5MQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzA3NDAxMTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKworICAgICAgICBJbXBsZW1lbnRhdGlvbiBvZiBhIEdMaWIgTWVkaWFTZXNzaW9uTWFuYWdl
ciwgYWJsZSB0byBwcm92aWRlIGEgTVBSSVMgREJ1cyBzZXJ2aWNlLCBzbyB0aGF0CisgICAgICAg
IHRoaXJkLXBhcnR5IGhvc3QgdG9vbHMgY2FuIHF1ZXJ5IHRoZSBtZWRpYSBwbGF5YmFjayBzdGF0
dXMgYW5kIHBvdGVudGlhbGx5IGVtaXQgcmVtb3RlCisgICAgICAgIGNvbnRyb2wgY29tbWFuZHMg
YXMgd2VsbC4KKworICAgICAgICBDb3ZlcmVkIGJ5IG1lZGlhLXNlc3Npb24gbGF5b3V0IHRlc3Rz
IG5vdyB1bnNraXBwZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYUlt
YWdlLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmxvZ0NoYW5uZWwpOgorICAgICAgICAoV2ViQ29yZTo6bG9nQ2xh
c3NOYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaDoK
KyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybVdQRS5jbWFr
ZToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dJbml0aWFsaXphdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpnZXRMb2dDaGFubmVsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVNjcmVl
bi5oOgorICAgICAgICAqIHBsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXI6OnJlc2V0Q3JlYXRpb25GdW5jdGlv
bik6CisgICAgICAgICogcGxhdGZvcm0vU291cmNlc0dMaWIudHh0OgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vZ2xpYi9NZWRpYVNlc3Npb25NYW5hZ2VyR0xpYi5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6Ok1lZGlhU2Vzc2lvbk1hbmFn
ZXJHTGliKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjp+TWVk
aWFTZXNzaW9uTWFuYWdlckdMaWIpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpoYW5kbGVNZXRob2RDYWxsKToKKyAgICAgICAgKFdlYkNvcmU6Omdl
dFByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OmhhbmRsZUdldFByb3BlcnR5KToKKyAgICAg
ICAgKFdlYkNvcmU6OmhhbmRsZVNldFByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbk1hbmFnZXJHTGliOjpzZXR1cE1wcmlzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbk1hbmFnZXJHTGliOjpidXNBY3F1aXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25NYW5hZ2VyR0xpYjo6bmFtZUxvc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uTWFuYWdlckdMaWI6OmJlZ2luSW50ZXJydXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpzY2hlZHVsZVNlc3Npb25TdGF0dXNVcGRhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnNlc3Npb25XaWxsQmVn
aW5QbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6
c2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNl
c3Npb25NYW5hZ2VyR0xpYjo6YWRkU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNl
c3Npb25NYW5hZ2VyR0xpYjo6cmVtb3ZlU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25NYW5hZ2VyR0xpYjo6c2V0Q3VycmVudFNlc3Npb24pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnNlc3Npb25XaWxsRW5kUGxheWJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnNlc3Npb25TdGF0ZUNoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OmNsaWVudENo
YXJhY3RlcmlzdGljc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFu
YWdlckdMaWI6OnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjphZGRTdXBwb3J0ZWRDb21tYW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpyZW1vdmVTdXBwb3J0ZWRDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpub3dQbGF5
aW5nRWxpZ2libGVTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFn
ZXJHTGliOjp1cGRhdGVOb3dQbGF5aW5nSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNl
c3Npb25NYW5hZ2VyR0xpYjo6Z2V0UGxheWJhY2tTdGF0dXNBc0dWYXJpYW50KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpnZXRBY3RpdmVTZXNzaW9uUG9zaXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OmRpc3BhdGNo
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjplbWl0UHJvcGVy
dGllc0NoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dsaWIvTWVkaWFTZXNzaW9u
TWFuYWdlckdMaWIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5h
Z2VyR0xpYjo6bmFtZUFjcXVpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1h
bmFnZXJHTGliOjpnZXRNZXRhZGF0YUFzR1ZhcmlhbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnByb3ZpZGVQcmVzZW50aW5nQXBwbGljYXRpb25Q
SURJZk5lY2Vzc2FyeSk6CisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9BcHBsaWNhdGlvbkdMaWIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNldEFwcGxpY2F0aW9uTmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpnZXRBcHBsaWNhdGlvbk5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
QXBwbGljYXRpb25JRCk6CisgICAgICAgIChXZWJDb3JlOjpnZXRBcHBsaWNhdGlvbklEKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9nbGliL0FwcGxpY2F0aW9uR0xpYi5oOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9nbGliL1JlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWI6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliOjp1cGRhdGVTdXBwb3J0ZWRD
b21tYW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliOjpS
ZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliKToKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL1JlbW90
ZUNvbW1hbmRMaXN0ZW5lckdMaWIuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VGcmFtZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT3JpZW50
YXRpb24uaDoKKwogMjAyMS0wOC0yMyAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUu
Y29tPgogCiAgICAgICAgIEF2b2lkIHVubmVjZXNzYXJ5IENHQ29sb3IgY3JlYXRpb24gaW4gR3Jh
ZGllbnQ6OmNyZWF0ZUNHR3JhZGllbnQgZm9yIGNvbW1vbiBzUkdCLW9ubHkgY2FzZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggNmJlNWZkMTU4YWY4Njg0YzZmM2JjNDA4YmViYjM3ZGUyMGQ4MjhhYS4uMTRjNWM5OTc5
NWI0NWZmMmIyYjFjODg5ZmQzMmFmMjZjOWZmZjc5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBA
QAorMjAyMS0wOC0xNSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0dMSUJdIE1lZGlhU2Vzc2lvbiBpcyBub3QgZW5hYmxlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3OTkxCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83MDc0MDExOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQYXNzIEFwcGxpY2F0aW9uIG5hbWUgYW5kIHVuaXF1ZSBJRCBmcm9tIHRo
ZSBVSVByb2Nlc3MgdG8gdGhlIFdlYlByb2Nlc3MgaW4gV1BFIGFuZCBHVEsKKyAgICAgICAgcG9y
dHMuIFRoZSBCdWJibGV3cmFwIGxhdW5jaGVyIHdhcyBhbHNvIGFkYXB0ZWQgdG8gYWxsb3cgREJ1
cyBNUFJJUyBuYW1lIG93bmVyc2hpcCBpbiB0aGUKKyAgICAgICAgc2FuZGJveGVkIFdlYlByb2Nl
c3MuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwOgorICAgICAg
ICAod2ViS2l0U2V0dGluZ3NDb25zdHJ1Y3RlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5j
aGVyL2dsaWIvQnViYmxld3JhcExhdW5jaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6YXBwbGlj
YXRpb25JZCk6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZUZsYXRwYWtJbmZvKToKKyAgICAgICAg
KFdlYktpdDo6WERHREJ1c1Byb3h5TGF1bmNoZXI6OmxhdW5jaCk6CisgICAgICAgICogVUlQcm9j
ZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvZ2xpYi9XZWJQcm9jZXNzR0xpYi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIxLTA4LTIzICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gU2hv
dyBUTFMgcHJvdG9jb2wgdmVyc2lvbiBhbmQgY2lwaGVyc3VpdGUgbmFtZSBpbiB0aGUgaW5zcGVj
dG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dSZWZQdHIuY3BwIGIvU291cmNl
L1dURi93dGYvZ2xpYi9HUmVmUHRyLmNwcAppbmRleCBhMGU1MmRmNWY3NWZjZjgzMDhkZTYwYTM0
NmViOWY4OTZjMDI5YWNhLi4xYjlhZGUzZjkzNmVlNTY0ZDM4MmMwN2VmOTY2NTc2YWI2NjE5YjQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dSZWZQdHIuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL2dsaWIvR1JlZlB0ci5jcHAKQEAgLTE5NSw2ICsxOTUsMTkgQEAgdGVtcGxhdGUg
PD4gdm9pZCBkZXJlZkdQdHIoR0RhdGVUaW1lKiBwdHIpCiAgICAgICAgIGdfZGF0ZV90aW1lX3Vu
cmVmKHB0cik7CiB9CiAKK3RlbXBsYXRlIDw+IEdEQnVzTm9kZUluZm8qIHJlZkdQdHIoR0RCdXNO
b2RlSW5mbyogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdfZGJ1c19ub2RlX2luZm9f
cmVmKHB0cik7CisgICAgcmV0dXJuIHB0cjsKK30KKwordGVtcGxhdGUgPD4gdm9pZCBkZXJlZkdQ
dHIoR0RCdXNOb2RlSW5mbyogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdfZGJ1c19u
b2RlX2luZm9fdW5yZWYocHRyKTsKK30KKwogI2lmIEhBVkUoR1VSSSkKIHRlbXBsYXRlIDw+IEdV
cmkqIHJlZkdQdHIoR1VyaSogcHRyKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2xp
Yi9HUmVmUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dSZWZQdHIuaAppbmRleCBmZDJmNjA1
YWM0MTViOWMyMDgyYWI5MjcyMjRhYzNkMGQ2MjdlYjAxLi4xN2NlZmIzMWQ0NjI2YTAzM2E3Zjgz
ZmU2NjkxOTc5Y2M1ZWY5ZDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dSZWZQ
dHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0dSZWZQdHIuaApAQCAtMjQsMTAgKzI0LDE1
IEBACiAKICNpZiBVU0UoR0xJQikKIAotI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CiAjaW5j
bHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFRy
YWl0cy5oPgogCitleHRlcm4gIkMiIHsKKyAgICB0eXBlZGVmIHN0cnVjdCBfR0RCdXNOb2RlSW5m
byBHREJ1c05vZGVJbmZvOworICAgIEdEQnVzTm9kZUluZm8qIGdfZGJ1c19ub2RlX2luZm9fcmVm
KEdEQnVzTm9kZUluZm8qKTsKKyAgICB2b2lkIGdfZGJ1c19ub2RlX2luZm9fdW5yZWYoR0RCdXNO
b2RlSW5mbyopOworfTsKIGV4dGVybiAiQyIgdm9pZCBnX29iamVjdF91bnJlZihncG9pbnRlcik7
CiBleHRlcm4gIkMiIGdwb2ludGVyIGdfb2JqZWN0X3JlZl9zaW5rKGdwb2ludGVyKTsKIApAQCAt
MjQyLDYgKzI0Nyw4IEBAIHRlbXBsYXRlIDw+IFdURl9FWFBPUlRfUFJJVkFURSBHTWFwcGVkRmls
ZSogcmVmR1B0cihHTWFwcGVkRmlsZSopOwogdGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgZGVyZWZHUHRyKEdNYXBwZWRGaWxlKik7CiB0ZW1wbGF0ZSA8PiBXVEZfRVhQT1JUX1BS
SVZBVEUgR0RhdGVUaW1lKiByZWZHUHRyKEdEYXRlVGltZSogcHRyKTsKIHRlbXBsYXRlIDw+IFdU
Rl9FWFBPUlRfUFJJVkFURSB2b2lkIGRlcmVmR1B0cihHRGF0ZVRpbWUqIHB0cik7Cit0ZW1wbGF0
ZSA8PiBXVEZfRVhQT1JUX1BSSVZBVEUgR0RCdXNOb2RlSW5mbyogcmVmR1B0cihHREJ1c05vZGVJ
bmZvKiBwdHIpOwordGVtcGxhdGUgPD4gV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGVyZWZHUHRy
KEdEQnVzTm9kZUluZm8qIHB0cik7CiAKICNpZiBIQVZFKEdVUkkpCiB0ZW1wbGF0ZSA8PiBXVEZf
RVhQT1JUX1BSSVZBVEUgR1VyaSogcmVmR1B0cihHVXJpKik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYUltYWdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYUltYWdlLmgKaW5kZXggYTI2YTA1MDdiMzMwYWZj
NDJhYjRiM2NlMGE1N2QwNTBlMzg1ZTg5NS4uY2I0MTI5MjFlMjM4ZmRmNjQyMjM5Mzg5ZjE1Mzkw
YWU5Nzk4ZTMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhSW1hZ2UuaApAQCAtMjcsNiArMjcsOSBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJ
T04pCiAKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBNZWRpYUltYWdlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24u
Y3BwCmluZGV4IGFjOTA3OGUzOGJjM2E3NWNhYzFkNTFmOGZlNDBlYjI0MjMyZDY2MDIuLjU3YThi
Y2I1OGY0NzFmMjA5NjlkNzY3ZThkODE4MjdjMjQ3MTEwNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcApAQCAtNTEsOCAr
NTEsMTcgQEAgc3RhdGljIGNvbnN0IHZvaWQqIG5leHRMb2dJZGVudGlmaWVyKCkKICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oKytsb2dJZGVudGlmaWVyKTsKIH0KIAot
c3RhdGljIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSB7IHJldHVybiBMb2dNZWRpYTsgfQot
c3RhdGljIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIHsgcmV0dXJuICJNZWRpYVNlc3Npb24i
OyB9CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitzdGF0aWMgV1RGTG9nQ2hhbm5lbCYgbG9n
Q2hhbm5lbCgpCit7CisgICAgcmV0dXJuIExvZ01lZGlhOworfQorCitzdGF0aWMgY29uc3QgY2hh
ciogbG9nQ2xhc3NOYW1lKCkKK3sKKyAgICByZXR1cm4gIk1lZGlhU2Vzc2lvbiI7Cit9CisjZW5k
aWYKIAogc3RhdGljIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5
cGUgcGxhdGZvcm1Db21tYW5kRm9yTWVkaWFTZXNzaW9uQWN0aW9uKE1lZGlhU2Vzc2lvbkFjdGlv
biBhY3Rpb24pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbi5oCmluZGV4IDMwMzk2OTliNGMxMTMxNDgzN2U1ZGUwZjFhODRhOGYyNDRi
NWNjMTYuLmExZGU3Y2QzMTUwMDBlMzA4YTRmNDg4NTQxODAxMjFhYTQxZmViYTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCkBA
IC05Myw3ICs5Myw5IEBAIHB1YmxpYzoKICAgICB9OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
Y2FsbEFjdGlvbkhhbmRsZXIoY29uc3QgTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscyYsIFRyaWdn
ZXJHZXN0dXJlSW5kaWNhdG9yID0gVHJpZ2dlckdlc3R1cmVJbmRpY2F0b3I6Olllcyk7CiAKKyNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0
IHsgcmV0dXJuICptX2xvZ2dlci5nZXQoKTsgfQorI2VuZGlmCiAKICAgICBjbGFzcyBPYnNlcnZl
ciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxPYnNlcnZlcj4gewogICAgIHB1YmxpYzoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYmY0YzI3YjY2OGNkM2QxYjU3YThjNDFkNGM2OTU5ODlk
Y2JkM2E3YS4uZGZmOTg1MjJkZDQ1YWQ1MWQxNTU3MzExYzkxMDhiZTkxMGMxNTY3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTI2LDcgKzI2LDkgQEAgbGlzdChBUFBFTkQgV2ViQ29y
ZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vZWRpdGlu
Zy9hdGsiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BhZ2UvZ3RrIgogICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9hZHdhaXRhIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9hdWRpby9n
bGliIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9nZW5lcmljIgorICAgICIke1dFQkNP
UkVfRElSfS9wbGF0Zm9ybS9nbGliIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ndGsi
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2VnbCIKICAgICAiJHtXRUJD
T1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4IgpAQCAtNTMsNiArNTUsOCBAQCBlbmRpZiAo
KQogbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxh
dGZvcm0vYWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEuaAogCisgICAgcGxhdGZvcm0vZ2xp
Yi9BcHBsaWNhdGlvbkdMaWIuaAorCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3Jt
RGlzcGxheVgxMS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MveDExL1hFcnJvclRyYXBwZXIuaAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL3gxMS9YVW5pcXVlUHRyLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUu
Y21ha2UKaW5kZXggYmMxM2Q1NjRlZGFhZWNlMjZjNDg4YjRkN2E2ZjY4ZTg1NjhkZjQ2Ny4uOWY0
ZGFlZmNkMzg1ZDUzNDE0OWYwYTVhNmNlMGU4MDE2ZTI1NjM4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1X
UEUuY21ha2UKQEAgLTE5LDYgKzE5LDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9VTklGSUVEX1NP
VVJDRV9MSVNUX0ZJTEVTCiBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJF
Q1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9hY2Nlc3NpYmlsaXR5L2F0ayIKICAgICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vYWR3YWl0YSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vYXVkaW8vZ2xpYiIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ2xpYiIKICAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZWdsIgogICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9ncmFwaGljcy9lcG94eSIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
Z3JhcGhpY3MvZ2x4IgpAQCAtMzYsNiArMzgsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZB
VEVfSU5DTFVERV9ESVJFQ1RPUklFUwogKQogCiBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKKyAgICBwbGF0Zm9ybS9nbGliL0FwcGxpY2F0aW9uR0xpYi5oCisK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuaAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvV2xVbmlxdWVQdHIuaAogKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9nSW5pdGlhbGl6YXRpb24uY3BwCmluZGV4IDc1YjcwN2JhMGM3
MzdlZWYyZmRkN2Y4ZDVkNDMxYjQyNDdhYjRkMDUuLmZmZTAzMmEzOWQ1OGJjMjI2M2M3YjI3NzBj
ZmI4ZGUwNjBmM2I4YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ0lu
aXRpYWxpemF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dJbml0aWFs
aXphdGlvbi5jcHAKQEAgLTY1LDYgKzY1LDcgQEAgV1RGTG9nQ2hhbm5lbCogZ2V0TG9nQ2hhbm5l
bChjb25zdCBTdHJpbmcmIG5hbWUpCiAKIFdURkxvZ0NoYW5uZWwqIGdldExvZ0NoYW5uZWwoY29u
c3QgU3RyaW5nJiBuYW1lKQogeworICAgIFVOVVNFRF9QQVJBTShuYW1lKTsKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1TY3JlZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKaW5k
ZXggZDNmMTJhNjUzOGI4NDNkZmVmZTFlOTU3YzYzYmM3ZDMyZjEyM2RiNy4uZDQ3ZDE5M2U4YmVl
ODVjMmQyYTM1ZTIxOGRlY2RkODRiNzIxMmRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVNjcmVlbi5oCkBAIC00OCw2ICs0OCwxMiBAQCBPQkpDX0NMQVNTIFVJU2NyZWVuOwog
dHlwZWRlZiBzdHJ1Y3QgQ0dDb2xvclNwYWNlICpDR0NvbG9yU3BhY2VSZWY7CiAjZW5kaWYKIAor
Ly8gWDExIGhlYWRlcnMgZGVmaW5lIGEgYnVuY2ggb2YgbWFjcm9zIHdpdGggY29tbW9uIHRlcm1z
LCBpbnRlcmZlcmluZyB3aXRoIFdlYkNvcmUgYW5kIFdURiBlbnVtIHZhbHVlcy4KKy8vIEFzIGEg
d29ya2Fyb3VuZCwgd2UgZXhwbGljaXRseSB1bmRlZiB0aGVtIGhlcmUuCisjaWYgZGVmaW5lZChO
b25lKQorI3VuZGVmIE5vbmUKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IERlc3RpbmF0aW9uQ29sb3JTcGFjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9S
ZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwCmluZGV4IGNlMTQ1NzY1MGUzMjMwNTM0ZmM2YmRmM2Jm
MmQxMzFmMjMyNTViZDUuLmNjNzljODVmYjhkNTEwOWI1ZDI2NjQ0NTI2ZDRiZjA4Y2M4Y2M5OGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVy
LmNwcApAQCAtMzAsNiArMzAsMTAgQEAKICNpbmNsdWRlICJSZW1vdGVDb21tYW5kTGlzdGVuZXJD
b2NvYS5oIgogI2VuZGlmCiAKKyNpZiBVU0UoR0xJQikKKyNpbmNsdWRlICJSZW1vdGVDb21tYW5k
TGlzdGVuZXJHTGliLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMg
UmVtb3RlQ29tbWFuZExpc3RlbmVyOjpDcmVhdGlvbkZ1bmN0aW9uJiByZW1vdGVDb21tYW5kTGlz
dGVuZXJDcmVhdGlvbkZ1bmN0aW9uKCkKQEAgLTQ4LDggKzUyLDExIEBAIHZvaWQgUmVtb3RlQ29t
bWFuZExpc3RlbmVyOjpyZXNldENyZWF0aW9uRnVuY3Rpb24oKQogICAgIHJlbW90ZUNvbW1hbmRM
aXN0ZW5lckNyZWF0aW9uRnVuY3Rpb24oKSA9IFtdIChSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGll
bnQmIGNsaWVudCkgewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICByZXR1cm4gUmVtb3Rl
Q29tbWFuZExpc3RlbmVyQ29jb2E6OmNyZWF0ZShjbGllbnQpOworI2VsaWYgVVNFKEdMSUIpCisg
ICAgICAgIHJldHVybiBSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliOjpjcmVhdGUoY2xpZW50KTsK
ICNlbHNlCi0gICAgICAgIHJldHVybiBSZW1vdGVDb21tYW5kTGlzdGVuZXI6OmNyZWF0ZShjbGll
bnQpOworICAgICAgICBVTlVTRURfUEFSQU0oY2xpZW50KTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAjZW5kaWYKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU291cmNlc0dMaWIudHh0IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU291cmNlc0dMaWIu
dHh0CmluZGV4IGRmMjczZTU4YWRmYTYxYzZkMjUzMzJiMzIxZjZmN2Q3Nzc1YzYxNjcuLmRjOTVk
ZTJiMzE3YTVkZWUwZWM3OGY1YmYwMGIwNTY3YTM1OTE4NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1NvdXJjZXNHTGliLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Tb3VyY2VzR0xpYi50eHQKQEAgLTIyLDExICsyMiwxNCBAQAogLy8gVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCiBwbGF0Zm9ybS9hdWRpby9nbGliL0F1ZGlvQnVzR0xpYi5j
cHAKK3BsYXRmb3JtL2F1ZGlvL2dsaWIvTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIuY3BwCiAKK3Bs
YXRmb3JtL2dsaWIvQXBwbGljYXRpb25HTGliLmNwcAogcGxhdGZvcm0vZ2xpYi9GaWxlTW9uaXRv
ckdMaWIuY3BwCiBwbGF0Zm9ybS9nbGliL0tleWVkRGVjb2RlckdsaWIuY3BwCiBwbGF0Zm9ybS9n
bGliL0tleWVkRW5jb2RlckdsaWIuY3BwCiBwbGF0Zm9ybS9nbGliL0xvd1Bvd2VyTW9kZU5vdGlm
aWVyR0xpYi5jcHAKK3BsYXRmb3JtL2dsaWIvUmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYi5jcHAK
IHBsYXRmb3JtL2dsaWIvU2hhcmVkQnVmZmVyR2xpYi5jcHAKIHBsYXRmb3JtL2dsaWIvVXNlckFn
ZW50R0xpYi5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKaW5kZXggN2JjZWM5Y2E3Zjg3
NTBkNzIxZGE5ZmM0ODJlZGQ2YTM2ZGI3Zjk4OS4uM2FlNGZiOGVhYjU1ZjQ3OTYxMDk4ZGM2NzBl
ZmZhNWNjYmQ3MTg5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC03NCwxMiArNzQs
MTIgQEAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXI6OnNoYXJlZE1hbmFnZXJJZkV4aXN0cygKICAgICByZXR1cm4gc2hhcmVkUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyKCkuZ2V0KCk7CiB9CiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCisj
aWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhVVNFKEdMSUIpCiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyPiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OmNyZWF0
ZSgpCiB7CiAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXI+KG5ldyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIpOwogfQotI2VuZGlmIC8vICFQ
TEFURk9STShDT0NPQSkKKyNlbmRpZiAvLyAhUExBVEZPUk0oQ09DT0EpICYmICFVU0UoR0xJQikK
IAogdm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnVwZGF0ZU5vd1BsYXlpbmdJbmZv
SWZOZWNlc3NhcnkoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ2xpYi9NZWRpYVNlc3Npb25NYW5hZ2VyR0xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9nbGliL01lZGlhU2Vzc2lvbk1hbmFnZXJHTGliLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MmYxMzk3YzZhNDNiMDI4MDdkNjVkNjczMjM5NGRjZmM1Y2JkZTkwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9NZWRpYVNlc3Npb25NYW5hZ2Vy
R0xpYi5jcHAKQEAgLTAsMCArMSw2MDkgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDIxIEln
YWxpYSBTLkwKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYi5oIgorCisjaWYgVVNFKEdM
SUIpCisKKyNpbmNsdWRlICJBcHBsaWNhdGlvbkdMaWIuaCIKKyNpbmNsdWRlICJBdWRpb1Nlc3Np
b24uaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5
ZXIuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmF0ZWd5LmgiCisjaW5jbHVkZSAiTm93UGxheWluZ0lu
Zm8uaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlBsYXRm
b3JtU3RyYXRlZ2llcy5oIgorCisjaW5jbHVkZSA8Z2lvL2dpby5oPgorI2luY2x1ZGUgPHd0Zi9T
b3J0ZWRBcnJheU1hcC5oPgorCisvLyBodHRwczovL3NwZWNpZmljYXRpb25zLmZyZWVkZXNrdG9w
Lm9yZy9tcHJpcy1zcGVjL2xhdGVzdC8KK3N0YXRpYyBjb25zdCBjaGFyIHNfbXByaXNJbnRlcmZh
Y2VbXSA9CisgICAgIjxub2RlPiIKKyAgICAgICAgIjxpbnRlcmZhY2UgbmFtZT1cIm9yZy5tcHJp
cy5NZWRpYVBsYXllcjJcIj4iCisgICAgICAgICAgICAiPGFubm90YXRpb24gbmFtZT1cIm9yZy5m
cmVlZGVza3RvcC5EQnVzLlByb3BlcnR5LkVtaXRzQ2hhbmdlZFNpZ25hbFwiIHZhbHVlPVwidHJ1
ZVwiLz4iCisgICAgICAgICAgICAiPG1ldGhvZCBuYW1lPVwiUmFpc2VcIi8+IgorICAgICAgICAg
ICAgIjxtZXRob2QgbmFtZT1cIlF1aXRcIi8+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBuYW1l
PVwiQ2FuUXVpdFwiIHR5cGU9XCJiXCIgYWNjZXNzPVwicmVhZFwiLz4iCisgICAgICAgICAgICAi
PHByb3BlcnR5IG5hbWU9XCJDYW5SYWlzZVwiIHR5cGU9XCJiXCIgYWNjZXNzPVwicmVhZFwiLz4i
CisgICAgICAgICAgICAiPHByb3BlcnR5IG5hbWU9XCJIYXNUcmFja0xpc3RcIiB0eXBlPVwiYlwi
IGFjY2Vzcz1cInJlYWRcIi8+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwiSWRlbnRp
dHlcIiB0eXBlPVwic1wiIGFjY2Vzcz1cInJlYWRcIi8+IgorICAgICAgICAgICAgIjxwcm9wZXJ0
eSBuYW1lPVwiRGVza3RvcEVudHJ5XCIgdHlwZT1cInNcIiBhY2Nlc3M9XCJyZWFkXCIvPiIKKyAg
ICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIlN1cHBvcnRlZFVyaVNjaGVtZXNcIiB0eXBlPVwi
YXNcIiBhY2Nlc3M9XCJyZWFkXCIvPiIKKyAgICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIlN1
cHBvcnRlZE1pbWVUeXBlc1wiIHR5cGU9XCJhc1wiIGFjY2Vzcz1cInJlYWRcIi8+IgorICAgICAg
ICAiPC9pbnRlcmZhY2U+IgorICAgICAgICAiPGludGVyZmFjZSBuYW1lPVwib3JnLm1wcmlzLk1l
ZGlhUGxheWVyMi5QbGF5ZXJcIj4iCisgICAgICAgICAgICAiPG1ldGhvZCBuYW1lPVwiTmV4dFwi
Lz4iCisgICAgICAgICAgICAiPG1ldGhvZCBuYW1lPVwiUHJldmlvdXNcIi8+IgorICAgICAgICAg
ICAgIjxtZXRob2QgbmFtZT1cIlBhdXNlXCIvPiIKKyAgICAgICAgICAgICI8bWV0aG9kIG5hbWU9
XCJQbGF5UGF1c2VcIi8+IgorICAgICAgICAgICAgIjxtZXRob2QgbmFtZT1cIlN0b3BcIi8+Igor
ICAgICAgICAgICAgIjxtZXRob2QgbmFtZT1cIlBsYXlcIi8+IgorICAgICAgICAgICAgIjxtZXRo
b2QgbmFtZT1cIlNlZWtcIj4iCisgICAgICAgICAgICAgICAgIjxhcmcgZGlyZWN0aW9uPVwiaW5c
IiB0eXBlPVwieFwiIG5hbWU9XCJPZmZzZXRcIi8+IgorICAgICAgICAgICAgIjwvbWV0aG9kPiIK
KyAgICAgICAgICAgICI8bWV0aG9kIG5hbWU9XCJTZXRQb3NpdGlvblwiPiIKKyAgICAgICAgICAg
ICAgICAiPGFyZyBkaXJlY3Rpb249XCJpblwiIHR5cGU9XCJvXCIgbmFtZT1cIlRyYWNrSWRcIi8+
IgorICAgICAgICAgICAgICAgICI8YXJnIGRpcmVjdGlvbj1cImluXCIgdHlwZT1cInhcIiBuYW1l
PVwiUG9zaXRpb25cIi8+IgorICAgICAgICAgICAgIjwvbWV0aG9kPiIKKyAgICAgICAgICAgICI8
bWV0aG9kIG5hbWU9XCJPcGVuVXJpXCI+IgorICAgICAgICAgICAgICAgICI8YXJnIGRpcmVjdGlv
bj1cImluXCIgdHlwZT1cInNcIiBuYW1lPVwiVXJpXCIvPiIKKyAgICAgICAgICAgICI8L21ldGhv
ZD4iCisgICAgICAgICAgICAiPHByb3BlcnR5IG5hbWU9XCJQbGF5YmFja1N0YXR1c1wiIHR5cGU9
XCJzXCIgYWNjZXNzPVwicmVhZFwiPiIKKyAgICAgICAgICAgICAgICAiPGFubm90YXRpb24gbmFt
ZT1cIm9yZy5mcmVlZGVza3RvcC5EQnVzLlByb3BlcnR5LkVtaXRzQ2hhbmdlZFNpZ25hbFwiIHZh
bHVlPVwidHJ1ZVwiLz4iCisgICAgICAgICAgICAiPC9wcm9wZXJ0eT4iCisgICAgICAgICAgICAi
PHByb3BlcnR5IG5hbWU9XCJSYXRlXCIgdHlwZT1cImRcIiBhY2Nlc3M9XCJyZWFkd3JpdGVcIj4i
CisgICAgICAgICAgICAgICAgIjxhbm5vdGF0aW9uIG5hbWU9XCJvcmcuZnJlZWRlc2t0b3AuREJ1
cy5Qcm9wZXJ0eS5FbWl0c0NoYW5nZWRTaWduYWxcIiB2YWx1ZT1cInRydWVcIi8+IgorICAgICAg
ICAgICAgIjwvcHJvcGVydHk+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwiTWV0YWRh
dGFcIiB0eXBlPVwiYXtzdn1cIiBhY2Nlc3M9XCJyZWFkXCI+IgorICAgICAgICAgICAgICAgICI8
YW5ub3RhdGlvbiBuYW1lPVwib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydHkuRW1pdHNDaGFu
Z2VkU2lnbmFsXCIgdmFsdWU9XCJ0cnVlXCIvPiIKKyAgICAgICAgICAgICI8L3Byb3BlcnR5PiIK
KyAgICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIlZvbHVtZVwiIHR5cGU9XCJkXCIgYWNjZXNz
PVwicmVhZHdyaXRlXCI+IgorICAgICAgICAgICAgICAgICI8YW5ub3RhdGlvbiBuYW1lPVwib3Jn
LmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydHkuRW1pdHNDaGFuZ2VkU2lnbmFsXCIgdmFsdWU9XCJ0
cnVlXCIvPiIKKyAgICAgICAgICAgICI8L3Byb3BlcnR5PiIKKyAgICAgICAgICAgICI8cHJvcGVy
dHkgbmFtZT1cIlBvc2l0aW9uXCIgdHlwZT1cInhcIiBhY2Nlc3M9XCJyZWFkXCI+IgorICAgICAg
ICAgICAgICAgICI8YW5ub3RhdGlvbiBuYW1lPVwib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVy
dHkuRW1pdHNDaGFuZ2VkU2lnbmFsXCIgdmFsdWU9XCJmYWxzZVwiLz4iCisgICAgICAgICAgICAi
PC9wcm9wZXJ0eT4iCisgICAgICAgICAgICAiPHByb3BlcnR5IG5hbWU9XCJNaW5pbXVtUmF0ZVwi
IHR5cGU9XCJkXCIgYWNjZXNzPVwicmVhZFwiPiIKKyAgICAgICAgICAgICAgICAiPGFubm90YXRp
b24gbmFtZT1cIm9yZy5mcmVlZGVza3RvcC5EQnVzLlByb3BlcnR5LkVtaXRzQ2hhbmdlZFNpZ25h
bFwiIHZhbHVlPVwidHJ1ZVwiLz4iCisgICAgICAgICAgICAiPC9wcm9wZXJ0eT4iCisgICAgICAg
ICAgICAiPHByb3BlcnR5IG5hbWU9XCJNYXhpbXVtUmF0ZVwiIHR5cGU9XCJkXCIgYWNjZXNzPVwi
cmVhZFwiPiIKKyAgICAgICAgICAgICAgICAiPGFubm90YXRpb24gbmFtZT1cIm9yZy5mcmVlZGVz
a3RvcC5EQnVzLlByb3BlcnR5LkVtaXRzQ2hhbmdlZFNpZ25hbFwiIHZhbHVlPVwidHJ1ZVwiLz4i
CisgICAgICAgICAgICAiPC9wcm9wZXJ0eT4iCisgICAgICAgICAgICAiPHByb3BlcnR5IG5hbWU9
XCJDYW5Hb05leHRcIiB0eXBlPVwiYlwiIGFjY2Vzcz1cInJlYWRcIj4iCisgICAgICAgICAgICAg
ICAgIjxhbm5vdGF0aW9uIG5hbWU9XCJvcmcuZnJlZWRlc2t0b3AuREJ1cy5Qcm9wZXJ0eS5FbWl0
c0NoYW5nZWRTaWduYWxcIiB2YWx1ZT1cInRydWVcIi8+IgorICAgICAgICAgICAgIjwvcHJvcGVy
dHk+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwiQ2FuR29QcmV2aW91c1wiIHR5cGU9
XCJiXCIgYWNjZXNzPVwicmVhZFwiPiIKKyAgICAgICAgICAgICAgICAiPGFubm90YXRpb24gbmFt
ZT1cIm9yZy5mcmVlZGVza3RvcC5EQnVzLlByb3BlcnR5LkVtaXRzQ2hhbmdlZFNpZ25hbFwiIHZh
bHVlPVwidHJ1ZVwiLz4iCisgICAgICAgICAgICAiPC9wcm9wZXJ0eT4iCisgICAgICAgICAgICAi
PHByb3BlcnR5IG5hbWU9XCJDYW5QbGF5XCIgdHlwZT1cImJcIiBhY2Nlc3M9XCJyZWFkXCI+Igor
ICAgICAgICAgICAgICAgICI8YW5ub3RhdGlvbiBuYW1lPVwib3JnLmZyZWVkZXNrdG9wLkRCdXMu
UHJvcGVydHkuRW1pdHNDaGFuZ2VkU2lnbmFsXCIgdmFsdWU9XCJ0cnVlXCIvPiIKKyAgICAgICAg
ICAgICI8L3Byb3BlcnR5PiIKKyAgICAgICAgICAgICI8cHJvcGVydHkgbmFtZT1cIkNhblBhdXNl
XCIgdHlwZT1cImJcIiBhY2Nlc3M9XCJyZWFkXCI+IgorICAgICAgICAgICAgICAgICI8YW5ub3Rh
dGlvbiBuYW1lPVwib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydHkuRW1pdHNDaGFuZ2VkU2ln
bmFsXCIgdmFsdWU9XCJ0cnVlXCIvPiIKKyAgICAgICAgICAgICI8L3Byb3BlcnR5PiIKKyAgICAg
ICAgICAgICI8cHJvcGVydHkgbmFtZT1cIkNhblNlZWtcIiB0eXBlPVwiYlwiIGFjY2Vzcz1cInJl
YWRcIj4iCisgICAgICAgICAgICAgICAgIjxhbm5vdGF0aW9uIG5hbWU9XCJvcmcuZnJlZWRlc2t0
b3AuREJ1cy5Qcm9wZXJ0eS5FbWl0c0NoYW5nZWRTaWduYWxcIiB2YWx1ZT1cInRydWVcIi8+Igor
ICAgICAgICAgICAgIjwvcHJvcGVydHk+IgorICAgICAgICAgICAgIjxwcm9wZXJ0eSBuYW1lPVwi
Q2FuQ29udHJvbFwiIHR5cGU9XCJiXCIgYWNjZXNzPVwicmVhZFwiPiIKKyAgICAgICAgICAgICAg
ICAiPGFubm90YXRpb24gbmFtZT1cIm9yZy5mcmVlZGVza3RvcC5EQnVzLlByb3BlcnR5LkVtaXRz
Q2hhbmdlZFNpZ25hbFwiIHZhbHVlPVwiZmFsc2VcIi8+IgorICAgICAgICAgICAgIjwvcHJvcGVy
dHk+IgorICAgICAgICAgICAgIjxzaWduYWwgbmFtZT1cIlNlZWtlZFwiPiIKKyAgICAgICAgICAg
ICAgICAiPGFyZyBuYW1lPVwiUG9zaXRpb25cIiB0eXBlPVwieFwiLz4iCisgICAgICAgICAgICAi
PC9zaWduYWw+IgorICAgICAgICAiPC9pbnRlcmZhY2U+IgorICAgICI8L25vZGU+IjsKKworI2Rl
ZmluZSBEQlVTX01QUklTX09CSkVDVF9QQVRIICIvb3JnL21wcmlzL01lZGlhUGxheWVyMiIKKyNk
ZWZpbmUgREJVU19NUFJJU19QTEFZRVJfSU5URVJGQUNFICJvcmcubXByaXMuTWVkaWFQbGF5ZXIy
LlBsYXllciIKKyNkZWZpbmUgREJVU19NUFJJU19UUkFDS19QQVRIICIvb3JnL21wcmlzL01lZGlh
UGxheWVyMi93ZWJraXQiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjp1bmlxdWVfcHRy
PFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcj4gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
OjpjcmVhdGUoKQoreworICAgIHJldHVybiBtYWtlVW5pcXVlPE1lZGlhU2Vzc2lvbk1hbmFnZXJH
TGliPigpOworfQorCitNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6TWVkaWFTZXNzaW9uTWFuYWdl
ckdMaWIoKQorICAgIDogbV9ub3dQbGF5aW5nTWFuYWdlcihwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
bWVkaWFTdHJhdGVneSgpLmNyZWF0ZU5vd1BsYXlpbmdNYW5hZ2VyKCkpCit7Cit9CisKK01lZGlh
U2Vzc2lvbk1hbmFnZXJHTGliOjp+TWVkaWFTZXNzaW9uTWFuYWdlckdMaWIoKQoreworICAgIGlm
IChtX293bmVySWQpCisgICAgICAgIGdfYnVzX3Vub3duX25hbWUobV9vd25lcklkKTsKK30KKwor
c3RhdGljIGlubGluZSBzdGQ6Om9wdGlvbmFsPFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVD
b250cm9sQ29tbWFuZFR5cGU+IGdldENvbW1hbmQoY29uc3QgY2hhciogbmFtZSkKK3sKKyAgICBz
dGF0aWMgY29uc3RleHByIHN0ZDo6cGFpcjxDb21wYXJhYmxlQVNDSUlMaXRlcmFsLCBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlPiBjb21tYW5kTGlzdFtdID0g
eworICAgICAgICB7ICJOZXh0IiwgUGxhdGZvcm1NZWRpYVNlc3Npb246Ok5leHRUcmFja0NvbW1h
bmQgfSwKKyAgICAgICAgeyAiUGF1c2UiLCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGF1c2VDb21t
YW5kIH0sCisgICAgICAgIHsgIlBsYXkiLCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxheUNvbW1h
bmQgfSwKKyAgICAgICAgeyAiUGxheVBhdXNlIiwgUGxhdGZvcm1NZWRpYVNlc3Npb246OlRvZ2ds
ZVBsYXlQYXVzZUNvbW1hbmQgfSwKKyAgICAgICAgeyAiUHJldmlvdXMiLCBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbjo6UHJldmlvdXNUcmFja0NvbW1hbmQgfSwKKyAgICAgICAgeyAiU2VlayIsIFBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpTZWVrVG9QbGF5YmFja1Bvc2l0aW9uQ29tbWFuZCB9LAorICAgICAg
ICB7ICJTdG9wIiwgUGxhdGZvcm1NZWRpYVNlc3Npb246OlN0b3BDb21tYW5kIH0KKyAgICB9Owor
CisgICAgc3RhdGljIGNvbnN0ZXhwciBTb3J0ZWRBcnJheU1hcCBtYXAgeyBjb21tYW5kTGlzdCB9
OworICAgIGF1dG8gdmFsdWUgPSBtYXAuZ2V0KG5hbWUsIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpS
ZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6Ok5vQ29tbWFuZCk7CisgICAgaWYgKHZhbHVlID09IFBs
YXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGU6Ok5vQ29tbWFuZCkK
KyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK3N0YXRpYyB2b2lk
IGhhbmRsZU1ldGhvZENhbGwoR0RCdXNDb25uZWN0aW9uKiAvKiBjb25uZWN0aW9uICovLCBjb25z
dCBjaGFyKiAvKiBzZW5kZXIgKi8sIGNvbnN0IGNoYXIqIG9iamVjdFBhdGgsIGNvbnN0IGNoYXIq
IGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIG1ldGhvZE5hbWUsIEdWYXJpYW50KiBwYXJhbWV0
ZXJzLCBHREJ1c01ldGhvZEludm9jYXRpb24qIGludm9jYXRpb24sIGdwb2ludGVyIHVzZXJEYXRh
KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgYXV0byBjb21tYW5kID0gZ2V0
Q29tbWFuZChtZXRob2ROYW1lKTsKKyAgICBpZiAoIWNvbW1hbmQpIHsKKyAgICAgICAgZ19kYnVz
X21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl9lcnJvcihpbnZvY2F0aW9uLCBHX0RCVVNfRVJST1Is
IEdfREJVU19FUlJPUl9GQUlMRUQsICIlcy4lcy4lcyBpcyBub3QgYXZhaWxhYmxlIG5vdyIsIG9i
amVjdFBhdGgsIGludGVyZmFjZU5hbWUsIG1ldGhvZE5hbWUpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGF1dG8mIG1hbmFnZXIgPSAqcmVpbnRlcnByZXRfY2FzdDxNZWRpYVNlc3Npb25N
YW5hZ2VyR0xpYio+KHVzZXJEYXRhKTsKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3Rl
Q29tbWFuZEFyZ3VtZW50IGFyZ3VtZW50OworICAgIGlmICgqY29tbWFuZCA9PSBQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6U2Vla1RvUGxheWJhY2tQb3NpdGlvbkNvbW1hbmQpIHsKKyAgICAgICAgaW50
NjRfdCBvZmZzZXQ7CisgICAgICAgIGdfdmFyaWFudF9nZXQocGFyYW1ldGVycywgIih4KSIsICZv
ZmZzZXQpOworICAgICAgICBhcmd1bWVudC50aW1lID0gb2Zmc2V0IC8gMTAwMDAwMDsKKyAgICB9
CisgICAgbWFuYWdlci5kaXNwYXRjaCgqY29tbWFuZCwgYXJndW1lbnQpOworICAgIGdfZGJ1c19t
ZXRob2RfaW52b2NhdGlvbl9yZXR1cm5fdmFsdWUoaW52b2NhdGlvbiwgbnVsbHB0cik7Cit9CisK
K2VudW0gY2xhc3MgUHJvcGVydHkgOiB1aW50OF90IHsKKyAgICBOb1Byb3BlcnR5LAorICAgIENh
bkNvbnRyb2wsCisgICAgQ2FuR29OZXh0LAorICAgIENhbkdvUHJldmlvdXMsCisgICAgQ2FuUGF1
c2UsCisgICAgQ2FuUGxheSwKKyAgICBDYW5RdWl0LAorICAgIENhblJhaXNlLAorICAgIENhblNl
ZWssCisgICAgRGVza3RvcEVudHJ5LAorICAgIEdldE1ldGFkYXRhLAorICAgIEdldFBsYXliYWNr
U3RhdHVzLAorICAgIEdldFBvc2l0aW9uLAorICAgIEhhc1RyYWNrTGlzdCwKKyAgICBJZGVudGl0
eSwKKyAgICBTdXBwb3J0ZWRNaW1lVHlwZXMsCisgICAgU3VwcG9ydGVkVXJpU2NoZW1lcywKK307
CisKK3N0YXRpYyBpbmxpbmUgc3RkOjpvcHRpb25hbDxQcm9wZXJ0eT4gZ2V0UHJvcGVydHkoY29u
c3QgY2hhciogcHJvcGVydHlOYW1lKQoreworICAgIHN0YXRpYyBjb25zdGV4cHIgc3RkOjpwYWly
PENvbXBhcmFibGVBU0NJSUxpdGVyYWwsIFByb3BlcnR5PiBwcm9wZXJ0aWVzTGlzdFtdIHsKKyAg
ICAgICAgLy8gb3JnLm1wcmlzLk1lZGlhUGxheWVyMiBwcm9wZXJ0aWVzCisgICAgICAgIHsgIklk
ZW50aXR5IiwgUHJvcGVydHk6OklkZW50aXR5IH0sCisgICAgICAgIHsgIkRlc2t0b3BFbnRyeSIs
IFByb3BlcnR5OjpEZXNrdG9wRW50cnkgfSwKKyAgICAgICAgeyAiSGFzVHJhY2tMaXN0IiwgUHJv
cGVydHk6Okhhc1RyYWNrTGlzdCB9LAorICAgICAgICB7ICJDYW5SYWlzZSIsIFByb3BlcnR5OjpD
YW5SYWlzZSB9LAorICAgICAgICB7ICJDYW5RdWl0IiwgUHJvcGVydHk6OkNhblF1aXQgfSwKKyAg
ICAgICAgeyAiU3VwcG9ydGVkVXJpU2NoZW1lcyIsIFByb3BlcnR5OjpTdXBwb3J0ZWRVcmlTY2hl
bWVzIH0sCisgICAgICAgIHsgIlN1cHBvcnRlZE1pbWVUeXBlcyIsIFByb3BlcnR5OjpTdXBwb3J0
ZWRNaW1lVHlwZXMgfSwKKyAgICAgICAgLy8gb3JnLm1wcmlzLk1lZGlhUGxheWVyMi5QbGF5ZXIg
cHJvcGVydGllcworICAgICAgICB7ICJDYW5Hb05leHQiLCBQcm9wZXJ0eTo6Q2FuR29OZXh0IH0s
CisgICAgICAgIHsgIkNhbkdvUHJldmlvdXMiLCBQcm9wZXJ0eTo6Q2FuR29QcmV2aW91cyB9LAor
ICAgICAgICB7ICJDYW5QbGF5IiwgUHJvcGVydHk6OkNhblBsYXkgfSwKKyAgICAgICAgeyAiQ2Fu
UGF1c2UiLCBQcm9wZXJ0eTo6Q2FuUGF1c2UgfSwKKyAgICAgICAgeyAiQ2FuU2VlayIsIFByb3Bl
cnR5OjpDYW5TZWVrIH0sCisgICAgICAgIHsgIkNhbkNvbnRyb2wiLCBQcm9wZXJ0eTo6Q2FuQ29u
dHJvbCB9LAorICAgICAgICB7ICJQbGF5YmFja1N0YXR1cyIsIFByb3BlcnR5OjpHZXRQbGF5YmFj
a1N0YXR1cyB9LAorICAgICAgICB7ICJQb3NpdGlvbiIsIFByb3BlcnR5OjpHZXRQb3NpdGlvbiB9
LAorICAgICAgICB7ICJNZXRhZGF0YSIsIFByb3BlcnR5OjpHZXRNZXRhZGF0YSB9CisgICAgfTsK
KyAgICBzdGF0aWMgY29uc3RleHByIFNvcnRlZEFycmF5TWFwIG1hcCB7IHByb3BlcnRpZXNMaXN0
IH07CisgICAgYXV0byB2YWx1ZSA9IG1hcC5nZXQocHJvcGVydHlOYW1lLCBQcm9wZXJ0eTo6Tm9Q
cm9wZXJ0eSk7CisgICAgaWYgKHZhbHVlID09IFByb3BlcnR5OjpOb1Byb3BlcnR5KQorICAgICAg
ICByZXR1cm4geyB9OworICAgIHJldHVybiB2YWx1ZTsKK30KKworc3RhdGljIEdWYXJpYW50KiBo
YW5kbGVHZXRQcm9wZXJ0eShHREJ1c0Nvbm5lY3Rpb24qLCBjb25zdCBjaGFyKiAvKiBzZW5kZXIg
Ki8sIGNvbnN0IGNoYXIqIG9iamVjdFBhdGgsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNv
bnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgR0Vycm9yKiogZXJyb3IsIGdwb2ludGVyIHVzZXJEYXRh
KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgYXV0byBwcm9wZXJ0eSA9IGdl
dFByb3BlcnR5KHByb3BlcnR5TmFtZSk7CisgICAgaWYgKCFwcm9wZXJ0eSkgeworICAgICAgICBn
X3NldF9lcnJvcihlcnJvciwgR19EQlVTX0VSUk9SLCBHX0RCVVNfRVJST1JfTk9UX1NVUFBPUlRF
RCwgIiVzLiVzICVzIGlzIG5vdCBzdXBwb3J0ZWQiLCBvYmplY3RQYXRoLCBpbnRlcmZhY2VOYW1l
LCBwcm9wZXJ0eU5hbWUpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBh
dXRvJiBtYW5hZ2VyID0gKnJlaW50ZXJwcmV0X2Nhc3Q8TWVkaWFTZXNzaW9uTWFuYWdlckdMaWIq
Pih1c2VyRGF0YSk7CisgICAgc3dpdGNoIChwcm9wZXJ0eS52YWx1ZSgpKSB7CisgICAgY2FzZSBQ
cm9wZXJ0eTo6Tm9Qcm9wZXJ0eToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUHJvcGVydHk6OlN1cHBvcnRlZFVyaVNjaGVtZXM6CisgICAg
Y2FzZSBQcm9wZXJ0eTo6U3VwcG9ydGVkTWltZVR5cGVzOgorICAgICAgICByZXR1cm4gZ192YXJp
YW50X25ld19zdHJ2KG51bGxwdHIsIDApOworICAgIGNhc2UgUHJvcGVydHk6OkdldFBsYXliYWNr
U3RhdHVzOgorICAgICAgICByZXR1cm4gbWFuYWdlci5nZXRQbGF5YmFja1N0YXR1c0FzR1Zhcmlh
bnQoeyB9KTsKKyAgICBjYXNlIFByb3BlcnR5OjpHZXRNZXRhZGF0YTogeworICAgICAgICBhdXRv
KiB2YXJpYW50ID0gbWFuYWdlci5nZXRNZXRhZGF0YUFzR1ZhcmlhbnQoKTsKKyAgICAgICAgaWYg
KCF2YXJpYW50KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBn
X3ZhcmlhbnRfcmVmKHZhcmlhbnQpOworICAgIH0KKyAgICBjYXNlIFByb3BlcnR5OjpHZXRQb3Np
dGlvbjoKKyAgICAgICAgcmV0dXJuIG1hbmFnZXIuZ2V0QWN0aXZlU2Vzc2lvblBvc2l0aW9uKCk7
CisgICAgY2FzZSBQcm9wZXJ0eTo6SWRlbnRpdHk6CisgICAgICAgIHJldHVybiBnX3ZhcmlhbnRf
bmV3X3N0cmluZyhnZXRBcHBsaWNhdGlvbk5hbWUoKSk7CisgICAgY2FzZSBQcm9wZXJ0eTo6RGVz
a3RvcEVudHJ5OgorICAgICAgICByZXR1cm4gZ192YXJpYW50X25ld19zdHJpbmcoIiIpOworICAg
IGNhc2UgUHJvcGVydHk6Okhhc1RyYWNrTGlzdDoKKyAgICBjYXNlIFByb3BlcnR5OjpDYW5RdWl0
OgorICAgIGNhc2UgUHJvcGVydHk6OkNhblJhaXNlOgorICAgICAgICByZXR1cm4gZ192YXJpYW50
X25ld19ib29sZWFuKGZhbHNlKTsKKyAgICBjYXNlIFByb3BlcnR5OjpDYW5TZWVrOgorICAgIGNh
c2UgUHJvcGVydHk6OkNhbkNvbnRyb2w6CisgICAgY2FzZSBQcm9wZXJ0eTo6Q2FuR29OZXh0Ogor
ICAgIGNhc2UgUHJvcGVydHk6OkNhbkdvUHJldmlvdXM6CisgICAgY2FzZSBQcm9wZXJ0eTo6Q2Fu
UGxheToKKyAgICBjYXNlIFByb3BlcnR5OjpDYW5QYXVzZToKKyAgICAgICAgcmV0dXJuIGdfdmFy
aWFudF9uZXdfYm9vbGVhbih0cnVlKTsKKyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
Kworc3RhdGljIGdib29sZWFuIGhhbmRsZVNldFByb3BlcnR5KEdEQnVzQ29ubmVjdGlvbiosIGNv
bnN0IGNoYXIqIC8qIHNlbmRlciAqLywgY29uc3QgY2hhciogLyogb2JqZWN0UGF0aCAqLywgY29u
c3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogcHJvcGVydHlOYW1lLCBHVmFyaWFu
dCosIEdFcnJvcioqIGVycm9yLCBncG9pbnRlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworICAgIGdfc2V0X2Vycm9yKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0ZBSUxF
RCwgIiVzOiVzIHNldHRpbmcgaXMgbm90IHN1cHBvcnRlZCIsIGludGVyZmFjZU5hbWUsIHByb3Bl
cnR5TmFtZSk7CisgICAgcmV0dXJuIEZBTFNFOworfQorCitzdGF0aWMgY29uc3QgR0RCdXNJbnRl
cmZhY2VWVGFibGUgZ0ludGVyZmFjZVZUYWJsZSA9IHsKKyAgICBoYW5kbGVNZXRob2RDYWxsLCBo
YW5kbGVHZXRQcm9wZXJ0eSwgaGFuZGxlU2V0UHJvcGVydHksIHsgbnVsbHB0ciB9Cit9OworCiti
b29sIE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpzZXR1cE1wcmlzKCkKK3sKKyAgICBpZiAobV9v
d25lcklkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGNvbnN0IGF1dG8mIGFwcGxpY2F0
aW9uSUQgPSBnZXRBcHBsaWNhdGlvbklEKCk7CisgICAgbV9pbnN0YW5jZUlkID0gYXBwbGljYXRp
b25JRC5pc0VtcHR5KCkgPyBtYWtlU3RyaW5nKCJvcmcubXByaXMuTWVkaWFQbGF5ZXIyLndlYmtp
dC5pbnN0YW5jZSIsIGdldHBpZCgpKSA6IG1ha2VTdHJpbmcoIm9yZy5tcHJpcy5NZWRpYVBsYXll
cjIuIiwgYXBwbGljYXRpb25JRC5hc2NpaSgpLmRhdGEoKSk7CisKKyAgICBtX293bmVySWQgPSBn
X2J1c19vd25fbmFtZShHX0JVU19UWVBFX1NFU1NJT04sIG1faW5zdGFuY2VJZC5hc2NpaSgpLmRh
dGEoKSwKKyAgICAgICAgR19CVVNfTkFNRV9PV05FUl9GTEFHU19OT05FLCByZWludGVycHJldF9j
YXN0PEdCdXNBY3F1aXJlZENhbGxiYWNrPigrW10oR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9u
LCBjb25zdCBnY2hhciosIGdwb2ludGVyIHVzZXJEYXRhKSB7CisgICAgICAgICAgICBhdXRvJiBt
YW5hZ2VyID0gKnJlaW50ZXJwcmV0X2Nhc3Q8TWVkaWFTZXNzaW9uTWFuYWdlckdMaWIqPih1c2Vy
RGF0YSk7CisgICAgICAgICAgICBtYW5hZ2VyLmJ1c0FjcXVpcmVkKGNvbm5lY3Rpb24pOworICAg
ICAgICB9KSwKKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxHQnVzTmFtZUFjcXVpcmVkQ2FsbGJh
Y2s+KCtbXShHREJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IGNoYXIqLCBncG9pbnRl
ciB1c2VyRGF0YSkgeworICAgICAgICAgICAgYXV0byYgbWFuYWdlciA9ICpyZWludGVycHJldF9j
YXN0PE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliKj4odXNlckRhdGEpOworICAgICAgICAgICAgbWFu
YWdlci5uYW1lQWNxdWlyZWQoY29ubmVjdGlvbik7CisgICAgICAgIH0pLAorICAgICAgICByZWlu
dGVycHJldF9jYXN0PEdCdXNOYW1lTG9zdENhbGxiYWNrPigrW10oR0RCdXNDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBjb25zdCBjaGFyKiwgZ3BvaW50ZXIgdXNlckRhdGEpIHsKKyAgICAgICAgICAg
IGF1dG8mIG1hbmFnZXIgPSAqcmVpbnRlcnByZXRfY2FzdDxNZWRpYVNlc3Npb25NYW5hZ2VyR0xp
Yio+KHVzZXJEYXRhKTsKKyAgICAgICAgICAgIG1hbmFnZXIubmFtZUxvc3QoY29ubmVjdGlvbik7
CisgICAgICAgIH0pLCB0aGlzLCBudWxscHRyKTsKKworICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9y
PiBlcnJvcjsKKyAgICBtX21wcmlzSW50ZXJmYWNlID0gYWRvcHRHUmVmKGdfZGJ1c19ub2RlX2lu
Zm9fbmV3X2Zvcl94bWwoc19tcHJpc0ludGVyZmFjZSwgJmVycm9yLm91dFB0cigpKSk7CisgICAg
aWYgKCFtX21wcmlzSW50ZXJmYWNlKSB7CisgICAgICAgIGdfd2FybmluZygiRmFpbGVkIGF0IHBh
cnNpbmcgWE1MIEludGVyZmFjZSBkZWZpbml0aW9uOiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lk
IE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpidXNBY3F1aXJlZChHREJ1c0Nvbm5lY3Rpb24qIGNv
bm5lY3Rpb24pCit7CisgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgIG1fcm9v
dFJlZ2lzdHJhdGlvbklkID0gZ19kYnVzX2Nvbm5lY3Rpb25fcmVnaXN0ZXJfb2JqZWN0KGNvbm5l
Y3Rpb24sIERCVVNfTVBSSVNfT0JKRUNUX1BBVEgsIG1fbXByaXNJbnRlcmZhY2UtPmludGVyZmFj
ZXNbMF0sCisgICAgICAgICZnSW50ZXJmYWNlVlRhYmxlLCB0aGlzLCBudWxscHRyLCAmZXJyb3Iu
b3V0UHRyKCkpOworCisgICAgaWYgKCFtX3Jvb3RSZWdpc3RyYXRpb25JZCkgeworICAgICAgICBn
X3dhcm5pbmcoIkZhaWxlZCBhdCByb290IHJlZ2lzdHJhdGlvbjogJXMiLCBlcnJvci0+bWVzc2Fn
ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3BsYXllclJlZ2lzdHJhdGlvbklk
ID0gZ19kYnVzX2Nvbm5lY3Rpb25fcmVnaXN0ZXJfb2JqZWN0KGNvbm5lY3Rpb24sIERCVVNfTVBS
SVNfT0JKRUNUX1BBVEgsIG1fbXByaXNJbnRlcmZhY2UtPmludGVyZmFjZXNbMV0sCisgICAgICAg
ICZnSW50ZXJmYWNlVlRhYmxlLCB0aGlzLCBudWxscHRyLCAmZXJyb3Iub3V0UHRyKCkpOworCisg
ICAgaWYgKCFtX3BsYXllclJlZ2lzdHJhdGlvbklkKQorICAgICAgICBnX3dhcm5pbmcoIkZhaWxl
ZCBhdCBvYmplY3QgcmVnaXN0cmF0aW9uOiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKK30KKwordm9p
ZCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6bmFtZUxvc3QoR0RCdXNDb25uZWN0aW9uKiBjb25u
ZWN0aW9uKQoreworICAgIGlmIChVTkxJS0VMWSghbV9jb25uZWN0aW9uKSkgeworICAgICAgICBn
X3dhcm5pbmcoIlVuYWJsZSB0byBhY3F1aXJlIERCdXMgc2Vzc2lvbiBvd25lcnNoaXAgZm9yIG5h
bWUgJXMiLCBtX2luc3RhbmNlSWQuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKKyAgICBpZiAoIW1fcm9vdFJlZ2lz
dHJhdGlvbklkKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZ19kYnVzX2Nvbm5lY3Rpb25f
dW5yZWdpc3Rlcl9vYmplY3QoY29ubmVjdGlvbiwgbV9yb290UmVnaXN0cmF0aW9uSWQpKQorICAg
ICAgICBtX3Jvb3RSZWdpc3RyYXRpb25JZCA9IDA7CisgICAgZWxzZQorICAgICAgICBnX3dhcm5p
bmcoIlVuYWJsZSB0byB1bnJlZ2lzdGVyIHJvb3Qgb2JqZWN0LiIpOworCisgICAgaWYgKCFtX3Bs
YXllclJlZ2lzdHJhdGlvbklkKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZ19kYnVzX2Nv
bm5lY3Rpb25fdW5yZWdpc3Rlcl9vYmplY3QoY29ubmVjdGlvbiwgbV9wbGF5ZXJSZWdpc3RyYXRp
b25JZCkpCisgICAgICAgIG1fcGxheWVyUmVnaXN0cmF0aW9uSWQgPSAwOworICAgIGVsc2UKKyAg
ICAgICAgZ193YXJuaW5nKCJVbmFibGUgdG8gdW5yZWdpc3RlciBwbGF5ZXIgb2JqZWN0LiIpOwor
fQorCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpiZWdpbkludGVycnVwdGlvbihQbGF0
Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSB0eXBlKQoreworICAgIGlmICh0eXBl
ID09IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlOjpTeXN0ZW1JbnRlcnJ1
cHRpb24pIHsKKyAgICAgICAgZm9yRWFjaFNlc3Npb24oW10gKGF1dG8mIHNlc3Npb24pIHsKKyAg
ICAgICAgICAgIHNlc3Npb24uY2xlYXJIYXNQbGF5ZWRTaW5jZUxhc3RJbnRlcnJ1cHRpb24oKTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpi
ZWdpbkludGVycnVwdGlvbih0eXBlKTsKK30KKwordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xp
Yjo6c2NoZWR1bGVTZXNzaW9uU3RhdHVzVXBkYXRlKCkKK3sKKyAgICBjYWxsT25NYWluVGhyZWFk
KFt0aGlzXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgbV9ub3dQbGF5aW5nTWFuYWdlci0+c2V0U3Vw
cG9ydHNTZWVraW5nKGNvbXB1dGVTdXBwb3J0c1NlZWtpbmcoKSk7CisgICAgICAgIHVwZGF0ZU5v
d1BsYXlpbmdJbmZvKCk7CisKKyAgICAgICAgZm9yRWFjaFNlc3Npb24oW10gKGF1dG8mIHNlc3Np
b24pIHsKKyAgICAgICAgICAgIHNlc3Npb24udXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpOwor
ICAgICAgICB9KTsKKyAgICB9KTsKK30KKworYm9vbCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6
c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQor
eworICAgIGlmICghUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2lu
UGxheWJhY2soc2Vzc2lvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHNjaGVkdWxl
U2Vzc2lvblN0YXR1c1VwZGF0ZSgpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIE1lZGlh
U2Vzc2lvbk1hbmFnZXJHTGliOjpzZXNzaW9uRGlkRW5kUmVtb3RlU2NydWJiaW5nKFBsYXRmb3Jt
TWVkaWFTZXNzaW9uJikKK3sKKyAgICBzY2hlZHVsZVNlc3Npb25TdGF0dXNVcGRhdGUoKTsKK30K
Kwordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6YWRkU2Vzc2lvbihQbGF0Zm9ybU1lZGlh
U2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICBpZiAoIXNldHVwTXByaXMoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9ub3dQbGF5aW5nTWFuYWdlci0+YWRkQ2xpZW50KCp0aGlzKTsKKworICAg
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6YWRkU2Vzc2lvbihzZXNzaW9uKTsKK30KKwor
dm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYjo6cmVtb3ZlU2Vzc2lvbihQbGF0Zm9ybU1lZGlh
U2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnJl
bW92ZVNlc3Npb24oc2Vzc2lvbik7CisKKyAgICBpZiAoaGFzTm9TZXNzaW9uKCkpIHsKKyAgICAg
ICAgbV9ub3dQbGF5aW5nTWFuYWdlci0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKKyAgICAgICAgaWYg
KG1fb3duZXJJZCkKKyAgICAgICAgICAgIGdfYnVzX3Vub3duX25hbWUobV9vd25lcklkKTsKKyAg
ICAgICAgbV9vd25lcklkID0gMDsKKyAgICB9CisgICAgc2NoZWR1bGVTZXNzaW9uU3RhdHVzVXBk
YXRlKCk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnNldEN1cnJlbnRTZXNz
aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQoreworICAgIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6c2V0Q3VycmVudFNlc3Npb24oc2Vzc2lvbik7CisKKyAgICBtX25vd1Bs
YXlpbmdNYW5hZ2VyLT51cGRhdGVTdXBwb3J0ZWRDb21tYW5kcygpOworfQorCit2b2lkIE1lZGlh
U2Vzc2lvbk1hbmFnZXJHTGliOjpzZXNzaW9uV2lsbEVuZFBsYXliYWNrKFBsYXRmb3JtTWVkaWFT
ZXNzaW9uJiBzZXNzaW9uLCBEZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5nIGRlbGF5Q2FsbGlu
Z1VwZGF0ZU5vd1BsYXlpbmcpCit7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpz
ZXNzaW9uV2lsbEVuZFBsYXliYWNrKHNlc3Npb24sIGRlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlp
bmcpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1Nlc3Npb24gPSBtYWtlV2Vha1B0cihz
ZXNzaW9uKV0geworICAgICAgICBpZiAod2Vha1Nlc3Npb24pCisgICAgICAgICAgICB3ZWFrU2Vz
c2lvbi0+dXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpOworICAgIH0pOworCisgICAgaWYgKGRl
bGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcgPT0gRGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWlu
Zzo6Tm8pCisgICAgICAgIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CisgICAgZWxzZSB7CisgICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXNdIHsKKyAgICAgICAgICAgIHVwZGF0ZU5vd1BsYXlp
bmdJbmZvKCk7CisgICAgICAgIH0pOworICAgIH0KK30KKwordm9pZCBNZWRpYVNlc3Npb25NYW5h
Z2VyR0xpYjo6c2Vzc2lvblN0YXRlQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lv
bikKK3sKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25TdGF0ZUNoYW5n
ZWQoc2Vzc2lvbik7CisKKyAgICBHVmFyaWFudEJ1aWxkZXIgYnVpbGRlcjsKKyAgICBnX3Zhcmlh
bnRfYnVpbGRlcl9pbml0KCZidWlsZGVyLCBHX1ZBUklBTlRfVFlQRSgiYXtzdn0iKSk7CisgICAg
Z192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIsICJQbGF5YmFja1N0YXR1cyIs
IGdldFBsYXliYWNrU3RhdHVzQXNHVmFyaWFudCgmc2Vzc2lvbikpOworICAgIGVtaXRQcm9wZXJ0
aWVzQ2hhbmdlZChnX3ZhcmlhbnRfbmV3KCIoc2F7c3Z9YXMpIiwgREJVU19NUFJJU19QTEFZRVJf
SU5URVJGQUNFLCAmYnVpbGRlciwgbnVsbHB0cikpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbk1h
bmFnZXJHTGliOjpjbGllbnRDaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKFBsYXRmb3JtTWVkaWFTZXNz
aW9uJiBzZXNzaW9uKQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgc2Vzc2lvbi5s
b2dJZGVudGlmaWVyKCkpOworICAgIGlmIChtX2lzU2Vla2luZykgeworICAgICAgICBtX2lzU2Vl
a2luZyA9IGZhbHNlOworICAgICAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CisgICAg
ICAgIGludDY0X3QgcG9zaXRpb24gPSBzZXNzaW9uLm5vd1BsYXlpbmdJbmZvKCktPmN1cnJlbnRU
aW1lICogMTAwMDAwMDsKKyAgICAgICAgaWYgKCFnX2RidXNfY29ubmVjdGlvbl9lbWl0X3NpZ25h
bChtX2Nvbm5lY3Rpb24uZ2V0KCksIG51bGxwdHIsIERCVVNfTVBSSVNfT0JKRUNUX1BBVEgsIERC
VVNfTVBSSVNfUExBWUVSX0lOVEVSRkFDRSwgIlNlZWtlZCIsIGdfdmFyaWFudF9uZXcoIih4KSIs
IHBvc2l0aW9uKSwgJmVycm9yLm91dFB0cigpKSkKKyAgICAgICAgICAgIGdfd2FybmluZygiRmFp
bGVkIHRvIGVtaXQgTVBSSVMgU2Vla2VkIHNpZ25hbDogJXMiLCBlcnJvci0+bWVzc2FnZSk7Cisg
ICAgfQorICAgIHNjaGVkdWxlU2Vzc2lvblN0YXR1c1VwZGF0ZSgpOworfQorCit2b2lkIE1lZGlh
U2Vzc2lvbk1hbmFnZXJHTGliOjpzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpCit7Cisg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXI6OnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKCk7CisgICAgc2NoZWR1bGVTZXNz
aW9uU3RhdHVzVXBkYXRlKCk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OmFk
ZFN1cHBvcnRlZENvbW1hbmQoUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21t
YW5kVHlwZSBjb21tYW5kKQoreworICAgIG1fbm93UGxheWluZ01hbmFnZXItPmFkZFN1cHBvcnRl
ZENvbW1hbmQoY29tbWFuZCk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OnJl
bW92ZVN1cHBvcnRlZENvbW1hbmQoUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xD
b21tYW5kVHlwZSBjb21tYW5kKQoreworICAgIG1fbm93UGxheWluZ01hbmFnZXItPnJlbW92ZVN1
cHBvcnRlZENvbW1hbmQoY29tbWFuZCk7Cit9CisKK1BsYXRmb3JtTWVkaWFTZXNzaW9uKiBNZWRp
YVNlc3Npb25NYW5hZ2VyR0xpYjo6bm93UGxheWluZ0VsaWdpYmxlU2Vzc2lvbigpCit7CisgICAg
Ly8gRklYTUU6IEZpeCB0aGlzIGxheWVyaW5nIHZpb2xhdGlvbi4KKyAgICBpZiAoYXV0byBlbGVt
ZW50ID0gSFRNTE1lZGlhRWxlbWVudDo6YmVzdE1lZGlhRWxlbWVudEZvclJlbW90ZUNvbnRyb2xz
KE1lZGlhRWxlbWVudFNlc3Npb246OlBsYXliYWNrQ29udHJvbHNQdXJwb3NlOjpOb3dQbGF5aW5n
KSkKKyAgICAgICAgcmV0dXJuICZlbGVtZW50LT5tZWRpYVNlc3Npb24oKTsKKworICAgIHJldHVy
biBudWxscHRyOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjp1cGRhdGVOb3dQ
bGF5aW5nSW5mbygpCit7CisgICAgc3RkOjpvcHRpb25hbDxOb3dQbGF5aW5nSW5mbz4gbm93UGxh
eWluZ0luZm87CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBub3dQbGF5aW5nRWxpZ2libGVTZXNz
aW9uKCkpCisgICAgICAgIG5vd1BsYXlpbmdJbmZvID0gc2Vzc2lvbi0+bm93UGxheWluZ0luZm8o
KTsKKworICAgIGlmICghbm93UGxheWluZ0luZm8pIHsKKyAgICAgICAgaWYgKG1fcmVnaXN0ZXJl
ZEFzTm93UGxheWluZ0FwcGxpY2F0aW9uKSB7CisgICAgICAgICAgICBBTFdBWVNfTE9HKExPR0lE
RU5USUZJRVIsICJjbGVhcmluZyBub3cgcGxheWluZyBpbmZvIik7CisgICAgICAgICAgICBtX25v
d1BsYXlpbmdNYW5hZ2VyLT5jbGVhck5vd1BsYXlpbmdJbmZvKCk7CisgICAgICAgIH0KKworICAg
ICAgICBtX3JlZ2lzdGVyZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbiA9IGZhbHNlOworICAgICAg
ICBtX25vd1BsYXlpbmdBY3RpdmUgPSBmYWxzZTsKKyAgICAgICAgbV9sYXN0VXBkYXRlZE5vd1Bs
YXlpbmdUaXRsZSA9IGVtcHR5U3RyaW5nKCk7CisgICAgICAgIG1fbGFzdFVwZGF0ZWROb3dQbGF5
aW5nRHVyYXRpb24gPSBOQU47CisgICAgICAgIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nRWxhcHNl
ZFRpbWUgPSBOQU47CisgICAgICAgIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nSW5mb1VuaXF1ZUlk
ZW50aWZpZXIgPSB7IH07CisgICAgICAgIG1fbm93UGxheWluZ0luZm8uY2xlYXIoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIG1faGF2ZUV2ZXJSZWdpc3RlcmVkQXNOb3dQbGF5aW5n
QXBwbGljYXRpb24gPSB0cnVlOworCisgICAgaWYgKG1fbm93UGxheWluZ01hbmFnZXItPnNldE5v
d1BsYXlpbmdJbmZvKCpub3dQbGF5aW5nSW5mbykpCisgICAgICAgIEFMV0FZU19MT0coTE9HSURF
TlRJRklFUiwgInRpdGxlID0gXCIiLCBub3dQbGF5aW5nSW5mby0+dGl0bGUsICJcIiwgaXNQbGF5
aW5nID0gIiwgbm93UGxheWluZ0luZm8tPmlzUGxheWluZywgIiwgZHVyYXRpb24gPSAiLCBub3dQ
bGF5aW5nSW5mby0+ZHVyYXRpb24sICIsIG5vdyA9ICIsIG5vd1BsYXlpbmdJbmZvLT5jdXJyZW50
VGltZSwgIiwgaWQgPSAiLCBub3dQbGF5aW5nSW5mby0+dW5pcXVlSWRlbnRpZmllci50b1VJbnQ2
NCgpLCAiLCByZWdpc3RlcmVkID0gIiwgbV9yZWdpc3RlcmVkQXNOb3dQbGF5aW5nQXBwbGljYXRp
b24sICIsIHNyYyA9IFwiIiwgbm93UGxheWluZ0luZm8tPmFydHdvcmsgPyBub3dQbGF5aW5nSW5m
by0+YXJ0d29yay0+c3JjIDogU3RyaW5nKCksICJcIiIpOworCisgICAgaWYgKCFtX3JlZ2lzdGVy
ZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbikgeworICAgICAgICBtX3JlZ2lzdGVyZWRBc05vd1Bs
YXlpbmdBcHBsaWNhdGlvbiA9IHRydWU7CisgICAgICAgIHByb3ZpZGVQcmVzZW50aW5nQXBwbGlj
YXRpb25QSURJZk5lY2Vzc2FyeSgpOworICAgIH0KKworICAgIGlmICghbm93UGxheWluZ0luZm8t
PnRpdGxlLmlzRW1wdHkoKSkKKyAgICAgICAgbV9sYXN0VXBkYXRlZE5vd1BsYXlpbmdUaXRsZSA9
IG5vd1BsYXlpbmdJbmZvLT50aXRsZTsKKworICAgIGRvdWJsZSBkdXJhdGlvbiA9IG5vd1BsYXlp
bmdJbmZvLT5kdXJhdGlvbjsKKyAgICBpZiAoc3RkOjppc2Zpbml0ZShkdXJhdGlvbikgJiYgZHVy
YXRpb24gIT0gTWVkaWFQbGF5ZXI6OmludmFsaWRUaW1lKCkpCisgICAgICAgIG1fbGFzdFVwZGF0
ZWROb3dQbGF5aW5nRHVyYXRpb24gPSBkdXJhdGlvbjsKKworICAgIG1fbGFzdFVwZGF0ZWROb3dQ
bGF5aW5nSW5mb1VuaXF1ZUlkZW50aWZpZXIgPSBub3dQbGF5aW5nSW5mby0+dW5pcXVlSWRlbnRp
ZmllcjsKKworICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IG5vd1BsYXlpbmdJbmZvLT5jdXJyZW50
VGltZTsKKyAgICBpZiAoc3RkOjppc2Zpbml0ZShjdXJyZW50VGltZSkgJiYgY3VycmVudFRpbWUg
IT0gTWVkaWFQbGF5ZXI6OmludmFsaWRUaW1lKCkgJiYgbm93UGxheWluZ0luZm8tPnN1cHBvcnRz
U2Vla2luZykKKyAgICAgICAgbV9sYXN0VXBkYXRlZE5vd1BsYXlpbmdFbGFwc2VkVGltZSA9IGN1
cnJlbnRUaW1lOworCisgICAgbV9ub3dQbGF5aW5nQWN0aXZlID0gbm93UGxheWluZ0luZm8tPmFs
bG93c05vd1BsYXlpbmdDb250cm9sc1Zpc2liaWxpdHk7CisKKyAgICBHVmFyaWFudEJ1aWxkZXIg
YnVpbGRlcjsKKyAgICBnX3ZhcmlhbnRfYnVpbGRlcl9pbml0KCZidWlsZGVyLCBHX1ZBUklBTlRf
VFlQRSgiYXtzdn0iKSk7CisgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2
fSIsICJtcHJpczp0cmFja2lkIiwgZ192YXJpYW50X25ldygibyIsIERCVVNfTVBSSVNfVFJBQ0tf
UEFUSCkpOworICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAibXBy
aXM6bGVuZ3RoIiwgZ192YXJpYW50X25ld19pbnQ2NChub3dQbGF5aW5nSW5mby0+ZHVyYXRpb24g
KiAxMDAwMDAwKSk7CisgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIs
ICJ4ZXNhbTp0aXRsZSIsIGdfdmFyaWFudF9uZXdfc3RyaW5nKG5vd1BsYXlpbmdJbmZvLT50aXRs
ZS51dGY4KCkuZGF0YSgpKSk7CisgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAi
e3N2fSIsICJ4ZXNhbTphbGJ1bSIsIGdfdmFyaWFudF9uZXdfc3RyaW5nKG5vd1BsYXlpbmdJbmZv
LT5hbGJ1bS51dGY4KCkuZGF0YSgpKSk7CisgICAgaWYgKG5vd1BsYXlpbmdJbmZvLT5hcnR3b3Jr
KQorICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgIm1wcmlz
OmFydFVybCIsIGdfdmFyaWFudF9uZXdfc3RyaW5nKG5vd1BsYXlpbmdJbmZvLT5hcnR3b3JrLT5z
cmMudXRmOCgpLmRhdGEoKSkpOworCisgICAgR1ZhcmlhbnRCdWlsZGVyIGFydGlzdEJ1aWxkZXI7
CisgICAgZ192YXJpYW50X2J1aWxkZXJfaW5pdCgmYXJ0aXN0QnVpbGRlciwgR19WQVJJQU5UX1RZ
UEUoImFzIikpOworICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYXJ0aXN0QnVpbGRlciwgInMi
LCBub3dQbGF5aW5nSW5mby0+YXJ0aXN0LnV0ZjgoKS5kYXRhKCkpOworICAgIGdfdmFyaWFudF9i
dWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAieGVzYW06YXJ0aXN0IiwgZ192YXJpYW50X2J1
aWxkZXJfZW5kKCZhcnRpc3RCdWlsZGVyKSk7CisKKyAgICBtX25vd1BsYXlpbmdJbmZvID0gZ192
YXJpYW50X2J1aWxkZXJfZW5kKCZidWlsZGVyKTsKKworICAgIEdWYXJpYW50QnVpbGRlciBwcm9w
ZXJ0aWVzQnVpbGRlcjsKKyAgICBnX3ZhcmlhbnRfYnVpbGRlcl9pbml0KCZwcm9wZXJ0aWVzQnVp
bGRlciwgR19WQVJJQU5UX1RZUEUoImF7c3Z9IikpOworICAgIGdfdmFyaWFudF9idWlsZGVyX2Fk
ZCgmcHJvcGVydGllc0J1aWxkZXIsICJ7c3Z9IiwgIk1ldGFkYXRhIiwgbV9ub3dQbGF5aW5nSW5m
by5nZXQoKSk7CisgICAgZW1pdFByb3BlcnRpZXNDaGFuZ2VkKGdfdmFyaWFudF9uZXcoIihzYXtz
dn1hcykiLCBEQlVTX01QUklTX1BMQVlFUl9JTlRFUkZBQ0UsICZwcm9wZXJ0aWVzQnVpbGRlciwg
bnVsbHB0cikpOworfQorCitHVmFyaWFudCogTWVkaWFTZXNzaW9uTWFuYWdlckdMaWI6OmdldFBs
YXliYWNrU3RhdHVzQXNHVmFyaWFudChzdGQ6Om9wdGlvbmFsPGNvbnN0IFBsYXRmb3JtTWVkaWFT
ZXNzaW9uKj4gc2Vzc2lvbikKK3sKKyAgICBhdXRvIHN0YXRlID0gW3RoaXMsIHNlc3Npb24gPSBX
VEZNb3ZlKHNlc3Npb24pXSgpIC0+IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZSB7CisgICAg
ICAgIGlmIChzZXNzaW9uKQorICAgICAgICAgICAgcmV0dXJuIHNlc3Npb24udmFsdWUoKS0+c3Rh
dGUoKTsKKworICAgICAgICBhdXRvKiBub3dQbGF5aW5nU2Vzc2lvbiA9IG5vd1BsYXlpbmdFbGln
aWJsZVNlc3Npb24oKTsKKyAgICAgICAgaWYgKG5vd1BsYXlpbmdTZXNzaW9uKQorICAgICAgICAg
ICAgcmV0dXJuIG5vd1BsYXlpbmdTZXNzaW9uLT5zdGF0ZSgpOworCisgICAgICAgIHJldHVybiBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU6OklkbGU7CisgICAgfSgpOworCisgICAgc3dpdGNo
IChzdGF0ZSkgeworICAgIGNhc2UgUGxhdGZvcm1NZWRpYVNlc3Npb246OlN0YXRlOjpBdXRvcGxh
eWluZzoKKyAgICBjYXNlIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6UGxheWluZzoKKyAg
ICAgICAgcmV0dXJuIGdfdmFyaWFudF9uZXdfc3RyaW5nKCJQbGF5aW5nIik7CisgICAgY2FzZSBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U3RhdGU6OlBhdXNlZDoKKyAgICAgICAgcmV0dXJuIGdfdmFy
aWFudF9uZXdfc3RyaW5nKCJQYXVzZWQiKTsKKyAgICBjYXNlIFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpTdGF0ZTo6SWRsZToKKyAgICBjYXNlIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpTdGF0ZTo6SW50
ZXJydXB0ZWQ6CisgICAgICAgIHJldHVybiBnX3ZhcmlhbnRfbmV3X3N0cmluZygiU3RvcHBlZCIp
OworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworR1ZhcmlhbnQqIE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpnZXRBY3RpdmVTZXNzaW9u
UG9zaXRpb24oKQoreworICAgIGF1dG8qIHNlc3Npb24gPSBub3dQbGF5aW5nRWxpZ2libGVTZXNz
aW9uKCk7CisgICAgcmV0dXJuIGdfdmFyaWFudF9uZXdfaW50NjQoc2Vzc2lvbiA/IHNlc3Npb24t
Pm5vd1BsYXlpbmdJbmZvKCktPmN1cnJlbnRUaW1lICogMTAwMDAwMCA6IDApOworfQorCit2b2lk
IE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjpkaXNwYXRjaChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlIHBsYXRmb3JtQ29tbWFuZCwgUGxhdGZvcm1NZWRpYVNl
c3Npb246OlJlbW90ZUNvbW1hbmRBcmd1bWVudCBhcmd1bWVudCkKK3sKKyAgICBtX2lzU2Vla2lu
ZyA9IHBsYXRmb3JtQ29tbWFuZCA9PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6U2Vla1RvUGxheWJh
Y2tQb3NpdGlvbkNvbW1hbmQ7CisgICAgbV9ub3dQbGF5aW5nTWFuYWdlci0+ZGlkUmVjZWl2ZVJl
bW90ZUNvbnRyb2xDb21tYW5kKHBsYXRmb3JtQ29tbWFuZCwgYXJndW1lbnQpOworfQorCit2b2lk
IE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliOjplbWl0UHJvcGVydGllc0NoYW5nZWQoR1ZhcmlhbnQq
IHBhcmFtZXRlcnMpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsK
KworICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKKyAgICBpZiAoIWdfZGJ1c19jb25u
ZWN0aW9uX2VtaXRfc2lnbmFsKG1fY29ubmVjdGlvbi5nZXQoKSwgbnVsbHB0ciwgREJVU19NUFJJ
U19PQkpFQ1RfUEFUSCwgIm9yZy5mcmVlZGVza3RvcC5EQnVzLlByb3BlcnRpZXMiLCAiUHJvcGVy
dGllc0NoYW5nZWQiLCBwYXJhbWV0ZXJzLCAmZXJyb3Iub3V0UHRyKCkpKQorICAgICAgICBnX3dh
cm5pbmcoIkZhaWxlZCB0byBlbWl0IE1QUklTIHByb3BlcnRpZXMgY2hhbmdlZDogJXMiLCBlcnJv
ci0+bWVzc2FnZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVT
RShHTElCKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9N
ZWRpYVNlc3Npb25NYW5hZ2VyR0xpYi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z2xpYi9NZWRpYVNlc3Npb25NYW5hZ2VyR0xpYi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3OWU2ODEyZGRkZDQy
MjhmMjQyNGE0ZTcwN2RjOTdlMGY2ZmYwNTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL01lZGlhU2Vzc2lvbk1hbmFnZXJHTGliLmgKQEAgLTAs
MCArMSwxMTcgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwKKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rvbiwg
TUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKEdMSUIp
CisKKyNpbmNsdWRlICJOb3dQbGF5aW5nTWFuYWdlci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlci5oIgorI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgTm93UGxheWluZ0luZm87CisKK2NsYXNzIE1lZGlh
U2Vzc2lvbk1hbmFnZXJHTGliCisgICAgOiBwdWJsaWMgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyCisgICAgLCBwcml2YXRlIE5vd1BsYXlpbmdNYW5hZ2VyOjpDbGllbnQgeworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIE1lZGlhU2Vzc2lvbk1hbmFnZXJHTGli
KCk7CisgICAgfk1lZGlhU2Vzc2lvbk1hbmFnZXJHTGliKCk7CisKKyAgICBib29sIHNldHVwTXBy
aXMoKTsKKworICAgIHZvaWQgYmVnaW5JbnRlcnJ1cHRpb24oUGxhdGZvcm1NZWRpYVNlc3Npb246
OkludGVycnVwdGlvblR5cGUpIGZpbmFsOworCisgICAgYm9vbCBoYXNBY3RpdmVOb3dQbGF5aW5n
U2Vzc2lvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbm93UGxheWluZ0FjdGl2ZTsgfQorICAg
IFN0cmluZyBsYXN0VXBkYXRlZE5vd1BsYXlpbmdUaXRsZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nVGl0bGU7IH0KKyAgICBkb3VibGUgbGFzdFVwZGF0ZWRO
b3dQbGF5aW5nRHVyYXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xhc3RVcGRhdGVkTm93
UGxheWluZ0R1cmF0aW9uOyB9CisgICAgZG91YmxlIGxhc3RVcGRhdGVkTm93UGxheWluZ0VsYXBz
ZWRUaW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sYXN0VXBkYXRlZE5vd1BsYXlpbmdFbGFw
c2VkVGltZTsgfQorICAgIE1lZGlhVW5pcXVlSWRlbnRpZmllciBsYXN0VXBkYXRlZE5vd1BsYXlp
bmdJbmZvVW5pcXVlSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbGFzdFVwZGF0
ZWROb3dQbGF5aW5nSW5mb1VuaXF1ZUlkZW50aWZpZXI7IH0KKyAgICBib29sIHJlZ2lzdGVyZWRB
c05vd1BsYXlpbmdBcHBsaWNhdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcmVnaXN0ZXJl
ZEFzTm93UGxheWluZ0FwcGxpY2F0aW9uOyB9CisgICAgYm9vbCBoYXZlRXZlclJlZ2lzdGVyZWRB
c05vd1BsYXlpbmdBcHBsaWNhdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faGF2ZUV2ZXJS
ZWdpc3RlcmVkQXNOb3dQbGF5aW5nQXBwbGljYXRpb247IH0KKworICAgIHZvaWQgYnVzQWNxdWly
ZWQoR0RCdXNDb25uZWN0aW9uKik7CisgICAgdm9pZCBuYW1lQWNxdWlyZWQoR0RCdXNDb25uZWN0
aW9uKiBjb25uZWN0aW9uKSB7IG1fY29ubmVjdGlvbiA9IGNvbm5lY3Rpb247IH0KKyAgICB2b2lk
IG5hbWVMb3N0KEdEQnVzQ29ubmVjdGlvbiopOworICAgIEdWYXJpYW50KiBnZXRNZXRhZGF0YUFz
R1ZhcmlhbnQoKSBjb25zdCB7IHJldHVybiBtX25vd1BsYXlpbmdJbmZvLmdldCgpOyB9CisgICAg
R1ZhcmlhbnQqIGdldFBsYXliYWNrU3RhdHVzQXNHVmFyaWFudChzdGQ6Om9wdGlvbmFsPGNvbnN0
IFBsYXRmb3JtTWVkaWFTZXNzaW9uKj4pOworICAgIEdWYXJpYW50KiBnZXRBY3RpdmVTZXNzaW9u
UG9zaXRpb24oKTsKKyAgICB2b2lkIGRpc3BhdGNoKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1v
dGVDb250cm9sQ29tbWFuZFR5cGUsIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb21tYW5k
QXJndW1lbnQpOworCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBzY2hlZHVsZVNlc3Npb25TdGF0dXNV
cGRhdGUoKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CisKKyAgICB2
b2lkIHJlbW92ZVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mKSBmaW5hbDsKKyAgICB2b2lk
IGFkZFNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mKSBmaW5hbDsKKyAgICB2b2lkIHNldEN1
cnJlbnRTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikgZmluYWw7CisKKyAgICBib29sIHNl
c3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgc2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYsIERl
bGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2Vzc2lvblN0
YXRlQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOworICAgIHZvaWQgc2Vz
c2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIGZpbmFsOwor
ICAgIHZvaWQgY2xpZW50Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lv
biYpIGZpbmFsOworICAgIHZvaWQgc2Vzc2lvbkNhblByb2R1Y2VBdWRpb0NoYW5nZWQoKSBmaW5h
bDsKKworICAgIHZpcnR1YWwgdm9pZCBwcm92aWRlUHJlc2VudGluZ0FwcGxpY2F0aW9uUElESWZO
ZWNlc3NhcnkoKSB7IH0KKworICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uKiBub3dQbGF5aW5nRWxp
Z2libGVTZXNzaW9uKCk7CisKKyAgICB2b2lkIGFkZFN1cHBvcnRlZENvbW1hbmQoUGxhdGZvcm1N
ZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSkgZmluYWw7CisgICAgdm9pZCBy
ZW1vdmVTdXBwb3J0ZWRDb21tYW5kKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9s
Q29tbWFuZFR5cGUpIGZpbmFsOworCisgICAgdm9pZCByZXNldEhhdmVFdmVyUmVnaXN0ZXJlZEFz
Tm93UGxheWluZ0FwcGxpY2F0aW9uRm9yVGVzdGluZygpIGZpbmFsIHsgbV9oYXZlRXZlclJlZ2lz
dGVyZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbiA9IGZhbHNlOyB9OworCitwcml2YXRlOgorICAg
IHZvaWQgZW1pdFByb3BlcnRpZXNDaGFuZ2VkKEdWYXJpYW50Kik7CisKKyNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKKyAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAiTWVkaWFTZXNzaW9uTWFuYWdlckdMaWIiOyB9CisjZW5kaWYKKworICAgIC8v
IE5vd1BsYXlpbmdNYW5hZ2VyOjpDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVSZW1vdGVDb250
cm9sQ29tbWFuZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBl
IHR5cGUsIGNvbnN0IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb21tYW5kQXJndW1lbnQm
IGFyZ3VtZW50KSBmaW5hbCB7IHByb2Nlc3NEaWRSZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmQo
dHlwZSwgYXJndW1lbnQpOyB9CisKKyAgICBTdHJpbmcgbV9pbnN0YW5jZUlkOworICAgIHVuc2ln
bmVkIG1fb3duZXJJZCB7IDAgfTsKKyAgICB1bnNpZ25lZCBtX3Jvb3RSZWdpc3RyYXRpb25JZCB7
IDAgfTsKKyAgICB1bnNpZ25lZCBtX3BsYXllclJlZ2lzdHJhdGlvbklkIHsgMCB9OworICAgIGJv
b2wgbV9pc1NlZWtpbmcgeyBmYWxzZSB9OworICAgIEdSZWZQdHI8R0RCdXNDb25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247CisgICAgR1JlZlB0cjxHREJ1c05vZGVJbmZvPiBtX21wcmlzSW50ZXJmYWNl
OworICAgIEdSZWZQdHI8R1ZhcmlhbnQ+IG1fbm93UGxheWluZ0luZm87CisKKyAgICBib29sIG1f
bm93UGxheWluZ0FjdGl2ZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX3JlZ2lzdGVyZWRBc05vd1Bs
YXlpbmdBcHBsaWNhdGlvbiB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhdmVFdmVyUmVnaXN0ZXJl
ZEFzTm93UGxheWluZ0FwcGxpY2F0aW9uIHsgZmFsc2UgfTsKKworICAgIC8vIEZvciB0ZXN0aW5n
IHB1cnBvc2VzIG9ubHkuCisgICAgU3RyaW5nIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nVGl0bGU7
CisgICAgZG91YmxlIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nRHVyYXRpb24geyBOQU4gfTsKKyAg
ICBkb3VibGUgbV9sYXN0VXBkYXRlZE5vd1BsYXlpbmdFbGFwc2VkVGltZSB7IE5BTiB9OworICAg
IE1lZGlhVW5pcXVlSWRlbnRpZmllciBtX2xhc3RVcGRhdGVkTm93UGxheWluZ0luZm9VbmlxdWVJ
ZGVudGlmaWVyOworCisgICAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPE5vd1BsYXlpbmdNYW5hZ2Vy
PiBtX25vd1BsYXlpbmdNYW5hZ2VyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gVVNFKEdMSUIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
bGliL0FwcGxpY2F0aW9uR0xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0Fw
cGxpY2F0aW9uR0xpYi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRmZmNmNDVkMWJmYjhjM2M2NjIxYWE0NDZi
ZDUwNzM0MjVmOTYzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dsaWIvQXBwbGljYXRpb25HTGliLmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICogIENvcHly
aWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdy
aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFwcGxpY2F0aW9uR0xpYi5oIgorCisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
c3RhdGljIFN0cmluZyBnQXBwbGljYXRpb25OYW1lOworc3RhdGljIFN0cmluZyBnQXBwbGljYXRp
b25JRDsKKwordm9pZCBzZXRBcHBsaWNhdGlvbk5hbWUoY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlv
bk5hbWUpCit7CisgICAgZ0FwcGxpY2F0aW9uTmFtZSA9IGFwcGxpY2F0aW9uTmFtZTsKK30KKwor
Y29uc3QgY2hhciogZ2V0QXBwbGljYXRpb25OYW1lKCkKK3sKKyAgICBpZiAoIWdBcHBsaWNhdGlv
bk5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZ0FwcGxpY2F0aW9uTmFtZS5hc2NpaSgp
LmRhdGEoKTsKKyAgICByZXR1cm4gIldlYktpdCI7Cit9CisKK3ZvaWQgc2V0QXBwbGljYXRpb25J
RChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uSUQpCit7CisgICAgZ0FwcGxpY2F0aW9uSUQgPSBh
cHBsaWNhdGlvbklEOworfQorCitjb25zdCBTdHJpbmcmIGdldEFwcGxpY2F0aW9uSUQoKQorewor
ICAgIHJldHVybiBnQXBwbGljYXRpb25JRDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9BcHBsaWNhdGlvbkdMaWIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvQXBwbGljYXRpb25HTGliLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNThjYmFlNmMwOGQxOTQ2ZDgzNjAwODRmMmM3MzgwNDViNDZlYjQwNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvQXBwbGljYXRpb25HTGliLmgK
QEAgLTAsMCArMSwzNSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4K
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor
ICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv
c3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNF
KEdMSUIpCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1dFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXBwbGljYXRpb25OYW1lKGNvbnN0IFN0cmluZyYp
OworV0VCQ09SRV9FWFBPUlQgY29uc3QgY2hhciogZ2V0QXBwbGljYXRpb25OYW1lKCk7CisKK1dF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0QXBwbGljYXRpb25JRChjb25zdCBTdHJpbmcmKTsKK1dFQkNP
UkVfRVhQT1JUIGNvbnN0IFN0cmluZyYgZ2V0QXBwbGljYXRpb25JRCgpOworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoR0xJQikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dsaWIvUmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL1JlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWIuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjEzMzFkYzJjZGI5YjBhMTNkMjRlZDIzYmIyN2Q3NjY1MTBmZTRkY2IKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL1JlbW90ZUNvbW1hbmRM
aXN0ZW5lckdMaWIuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAy
MDIxIElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl
IEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYi5oIgorCisj
aWYgVVNFKEdMSUIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjp1bmlxdWVfcHRyPFJl
bW90ZUNvbW1hbmRMaXN0ZW5lckdMaWI+IFJlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWI6OmNyZWF0
ZShSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICByZXR1cm4gbWFr
ZVVuaXF1ZTxSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliPihjbGllbnQpOworfQorCit2b2lkIFJl
bW90ZUNvbW1hbmRMaXN0ZW5lckdMaWI6OnVwZGF0ZVN1cHBvcnRlZENvbW1hbmRzKCkKK3sKKyAg
ICAvLyBSZW1vdGUgY29tbWFuZHMgYXJlIGhhbmRsZWQgYXMgdXNlci10cmlnZ2VyZWQgTVBSSVMg
YWN0aW9ucyBpbiBNZWRpYVNlc3Npb25NYW5hZ2VyR0xpYi4KK30KKworUmVtb3RlQ29tbWFuZExp
c3RlbmVyR0xpYjo6UmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYihSZW1vdGVDb21tYW5kTGlzdGVu
ZXJDbGllbnQmIGNsaWVudCkKKyAgICA6IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcihjbGllbnQpCit7
Cit9CisKK1JlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWI6On5SZW1vdGVDb21tYW5kTGlzdGVuZXJH
TGliKCkgPSBkZWZhdWx0OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ2xpYi9SZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9nbGliL1JlbW90ZUNvbW1hbmRMaXN0ZW5lckdMaWIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45MWI3ZDYyOWMzNWU2YzFkMjhhYTkyYjZlM2FjNmQ5ZTljMzBjZDRlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9SZW1vdGVDb21tYW5kTGlzdGVuZXJH
TGliLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlh
IFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5z
ZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0
d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiUmVtb3RlQ29tbWFuZExpc3RlbmVyLmgiCisKKyNpZiBVU0UoR0xJQikKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliIDogcHVi
bGljIFJlbW90ZUNvbW1hbmRMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxSZW1vdGVDb21tYW5kTGlzdGVuZXJHTGliPiBjcmVhdGUoUmVtb3RlQ29tbWFuZExp
c3RlbmVyQ2xpZW50Jik7CisgICAgUmVtb3RlQ29tbWFuZExpc3RlbmVyR0xpYihSZW1vdGVDb21t
YW5kTGlzdGVuZXJDbGllbnQmKTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVDb21tYW5kTGlzdGVuZXJH
TGliKCk7CisKK3ByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVTdXBwb3J0ZWRDb21tYW5kcygpIGZp
bmFsOworCisgICAgY29uc3QgUmVtb3RlQ29tbWFuZHNTZXQmIGRlZmF1bHRDb21tYW5kcygpOwor
fTsKKworfQorCisjZW5kaWYgLy8gVVNFKEdMSUIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUZyYW1lLmgKaW5kZXggOTg0M2FhYzQwZWI0YzE3OGI2ZmIwOTQxNjNm
YjY4ODU3YWY1ZDEzMi4uOTJlMWQ0NDg2YzVmOTU4NDQxNmNhNzAyY2Q0NWIxYTZlYThjNjJiYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWUuaApAQCAt
MzMsNiArMzMsMTIgQEAKICNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgogI2luY2x1ZGUgPHd0Zi9T
ZWNvbmRzLmg+CiAKKy8vIFgxMSBoZWFkZXJzIGRlZmluZSBhIGJ1bmNoIG9mIG1hY3JvcyB3aXRo
IGNvbW1vbiB0ZXJtcywgaW50ZXJmZXJpbmcgd2l0aCBXZWJDb3JlIGFuZCBXVEYgZW51bSB2YWx1
ZXMuCisvLyBBcyBhIHdvcmthcm91bmQsIHdlIGV4cGxpY2l0bHkgdW5kZWYgdGhlbSBoZXJlLgor
I2lmIGRlZmluZWQoTm9uZSkKKyN1bmRlZiBOb25lCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBJbWFnZUZyYW1lIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlT3JpZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlT3JpZW50YXRpb24uaAppbmRleCBkOTkwYTNkYzU1NWZjZGRiNjEz
NzRkYjdkMGNkNzVkYThkZjQ5ODhmLi41ZGUyNzFlNTIzNTI3NjJhZTFhM2MzMzhhNTM1NTcwZGU5
Y2Q1OWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZU9yaWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VPcmllbnRhdGlvbi5oCkBAIC0zMCw2ICszMCwxMiBAQAogI2luY2x1ZGUgIkZsb2F0U2l6ZS5o
IgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKKy8vIFgxMSBoZWFkZXJzIGRlZmluZSBh
IGJ1bmNoIG9mIG1hY3JvcyB3aXRoIGNvbW1vbiB0ZXJtcywgaW50ZXJmZXJpbmcgd2l0aCBXZWJD
b3JlIGFuZCBXVEYgZW51bSB2YWx1ZXMuCisvLyBBcyBhIHdvcmthcm91bmQsIHdlIGV4cGxpY2l0
bHkgdW5kZWYgdGhlbSBoZXJlLgorI2lmIGRlZmluZWQoTm9uZSkKKyN1bmRlZiBOb25lCisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgSW1hZ2VPcmllbnRhdGlvbiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCmluZGV4IGFmZmI1OGIyOTc0NDgyOTExN2QxN2QxZTJhNjE0N2UyMWJmOGI2YTEuLmZm
Y2M1YmVhOWVhN2I5YWJmNDg3MWZlY2ZmNTc1M2RlMTBhYWQzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0y
MTMsNiArMjEzLDEwIEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdQRSkKICAgICBlbmNvZGVyIDw8IG1lbW9yeVByZXNzdXJlSGFuZGxlckNvbmZpZ3VyYXRp
b247CiAjZW5kaWYKKyNpZiBVU0UoR0xJQikKKyAgICBlbmNvZGVyIDw8IGFwcGxpY2F0aW9uSUQ7
CisgICAgZW5jb2RlciA8PCBhcHBsaWNhdGlvbk5hbWU7CisjZW5kaWYKIH0KIAogYm9vbCBXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpAQCAtNTg0LDYgKzU4OCwx
MyBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29k
ZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgIHBhcmFtZXRlcnMubWVtb3J5UHJlc3N1
cmVIYW5kbGVyQ29uZmlndXJhdGlvbiA9IFdURk1vdmUoKm1lbW9yeVByZXNzdXJlSGFuZGxlckNv
bmZpZ3VyYXRpb24pOwogI2VuZGlmCiAKKyNpZiBVU0UoR0xJQikKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMuYXBwbGljYXRpb25JRCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYXBwbGljYXRpb25OYW1lKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CmluZGV4IGRjNmIyMjk3ZDJmOGFkOWE4MjUxZjIyODIyZDlkYWNkOGVjODkxNmYuLmEzNzlhMGI1
YzRmM2Y4NDA3MDAzZTE1YzBiMDE5NmJiMTUxN2IzMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTI1OCw2ICsyNTgs
MTEgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogI2lmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIHN0ZDo6b3B0aW9uYWw8TWVtb3J5UHJlc3N1cmVI
YW5kbGVyOjpDb25maWd1cmF0aW9uPiBtZW1vcnlQcmVzc3VyZUhhbmRsZXJDb25maWd1cmF0aW9u
OwogI2VuZGlmCisKKyNpZiBVU0UoR0xJQikKKyAgICBTdHJpbmcgYXBwbGljYXRpb25JRDsKKyAg
ICBTdHJpbmcgYXBwbGljYXRpb25OYW1lOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNl
dHRpbmdzLmNwcAppbmRleCA3NTdlNmQ5ODI3ZWE4MTEwN2JjOGM3ZmEyZThjMjlmZjJiMDA2YmM4
Li43YjUwM2MyOTc0MDAwOThkODIzMzRmNWQwOGYyY2Y3OGU1ZWRmNmJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCkBAIC0x
OTUsNiArMTk1LDEzIEBAIHN0YXRpYyB2b2lkIHdlYktpdFNldHRpbmdzQ29uc3RydWN0ZWQoR09i
amVjdCogb2JqZWN0KQogI2lmIEVOQUJMRShXRUJfUlRDKQogICAgIHByZWZzLT5zZXRQZWVyQ29u
bmVjdGlvbkVuYWJsZWQodHJ1ZSk7CiAjZW5kaWYKKyNlbmRpZgorCisgICAgLy8gRklYTUU6IEV4
cG9zZSBBUEkgZm9yIHRoaXMgd2hlbiB0aGlzIGZlYXR1cmUgaXMgb2ZmaWNpYWxseSBub24tZXhw
ZXJpbWVudGFsLgorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorICAgIHByZWZzLT5zZXRNZWRp
YVNlc3Npb25FbmFibGVkKHRydWUpOworICAgIHByZWZzLT5zZXRNZWRpYVNlc3Npb25Db29yZGlu
YXRvckVuYWJsZWQodHJ1ZSk7CisgICAgcHJlZnMtPnNldE1lZGlhU2Vzc2lvblBsYXlsaXN0RW5h
YmxlZCh0cnVlKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9MYXVuY2hlci9nbGliL0J1YmJsZXdyYXBMYXVuY2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0J1YmJsZXdyYXBMYXVuY2hlci5jcHAKaW5kZXggM2Fk
YTYzODBkOWNlZjg2MGQ1OGEwZWVjYzQ1Y2VlNzZjYmE1YTlkOC4uYzdhNzJlYTEzOWM5MDEzMTNm
NjQ2OGJhODkxYTJiNmIzN2UwYzk5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTGF1bmNoZXIvZ2xpYi9CdWJibGV3cmFwTGF1bmNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvQnViYmxld3JhcExhdW5jaGVyLmNwcApAQCAtMTMw
LDYgKzEzMCwyMiBAQCBhcmdzVG9GZChjb25zdCBWZWN0b3I8Q1N0cmluZz4mIGFyZ3MsIGNvbnN0
IGNoYXIgKm5hbWUpCiAgICAgcmV0dXJuIG1lbWZkOwogfQogCitzdGF0aWMgY29uc3QgY2hhciog
YXBwbGljYXRpb25JZChHRXJyb3IqKiBlcnJvcikKK3sKKyAgICBHQXBwbGljYXRpb24qIGFwcCA9
IGdfYXBwbGljYXRpb25fZ2V0X2RlZmF1bHQoKTsKKyAgICBpZiAoIWFwcCkgeworICAgICAgICBn
X3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0lOVkFMSURf
REFUQSwgIkdBcHBsaWNhdGlvbiBpcyByZXF1aXJlZC4iKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfQorCisgICAgY29uc3QgY2hhciogYXBwSUQgPSBnX2FwcGxpY2F0aW9uX2dldF9h
cHBsaWNhdGlvbl9pZChhcHApOworICAgIGlmICghYXBwSUQpIHsKKyAgICAgICAgZ19zZXRfZXJy
b3JfbGl0ZXJhbChlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9JTlZBTElEX0RBVEEsICJH
QXBwbGljYXRpb24gbXVzdCBoYXZlIGEgdmFsaWQgSUQuIik7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKyAgICByZXR1cm4gYXBwSUQ7Cit9CisKIHN0YXRpYyBpbnQgY3JlYXRlRmxh
dHBha0luZm8oKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxHVW5pcXVlUHRyPGNoYXI+
PiBkYXRhOwpAQCAtMTM4LDEzICsxNTQsMTAgQEAgc3RhdGljIGludCBjcmVhdGVGbGF0cGFrSW5m
bygpCiAgICAgaWYgKCFkYXRhLmdldCgpKSB7CiAgICAgICAgIC8vIHhkZy1kZXNrdG9wLXBvcnRh
bCByZWxhdGVzIHlvdXIgbmFtZSB0byBjZXJ0YWluIHBlcm1pc3Npb25zIHNvIHdlIHdhbnQKICAg
ICAgICAgLy8gdGhlbSB0byBiZSBhcHBsaWNhdGlvbiB1bmlxdWUgd2hpY2ggaXMgYmVzdCBkb25l
IHZpYSBHQXBwbGljYXRpb24uCi0gICAgICAgIEdBcHBsaWNhdGlvbiogYXBwID0gZ19hcHBsaWNh
dGlvbl9nZXRfZGVmYXVsdCgpOwotICAgICAgICBpZiAoIWFwcCkKLSAgICAgICAgICAgIGdfZXJy
b3IoIkdBcHBsaWNhdGlvbiBpcyByZXF1aXJlZCBmb3IgeGRnLWRlc2t0b3AtcG9ydGFsIGFjY2Vz
cyBpbiB0aGUgV2ViS2l0IHNhbmRib3guIik7Ci0KLSAgICAgICAgY29uc3QgY2hhciogYXBwSUQg
PSBnX2FwcGxpY2F0aW9uX2dldF9hcHBsaWNhdGlvbl9pZChhcHApOworICAgICAgICBHVW5pcXVl
T3V0UHRyPEdFcnJvcj4gZXJyb3I7CisgICAgICAgIGNvbnN0IGNoYXIqIGFwcElEID0gYXBwbGlj
YXRpb25JZCgmZXJyb3Iub3V0UHRyKCkpOwogICAgICAgICBpZiAoIWFwcElEKQotICAgICAgICAg
ICAgZ19lcnJvcigiR0FwcGxpY2F0aW9uIG11c3QgaGF2ZSBhIHZhbGlkIElEIGZvciB4ZGctZGVz
a3RvcC1wb3J0YWwgYWNjZXNzIGluIHRoZSBXZWJLaXQgc2FuZGJveC4iKTsKKyAgICAgICAgICAg
IGdfZXJyb3IoIlVuYWJsZSB0byBjb25maWd1cmUgeGRnLWRlc2t0b3AtcG9ydGFsIGFjY2VzcyBp
biB0aGUgV2ViS2l0IHNhbmRib3g6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOwogCiAgICAgICAgIEdV
bmlxdWVQdHI8R0tleUZpbGU+IGtleUZpbGUoZ19rZXlfZmlsZV9uZXcoKSk7CiAgICAgICAgIGdf
a2V5X2ZpbGVfc2V0X3N0cmluZyhrZXlGaWxlLmdldCgpLCAiQXBwbGljYXRpb24iLCAibmFtZSIs
IGFwcElEKTsKQEAgLTIwNyw2ICsyMjAsMTYgQEAgcHVibGljOgogICAgICAgICBpZiAoZW5hYmxl
TG9nZ2luZykKICAgICAgICAgICAgIHByb3h5QXJncy5hcHBlbmQoIi0tbG9nIik7CiAKKyAgICAg
ICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9O
KQorICAgICAgICBjb25zdCBjaGFyKiBhcHBJRCA9IGFwcGxpY2F0aW9uSWQoJmVycm9yLm91dFB0
cigpKTsKKyAgICAgICAgaWYgKCFhcHBJRCkKKyAgICAgICAgICAgIGdfZXJyb3IoIlVuYWJsZSB0
byBvd24gREJ1cyBNUFJJUyBuYW1lIGluIHRoZSBXZWJLaXQgc2FuZGJveDogJXMiLCBlcnJvci0+
bWVzc2FnZSk7CisKKyAgICAgICAgYXV0byBtcHJpc1Nlc3Npb25JRCA9IG1ha2VTdHJpbmcoIi0t
b3duPW9yZy5tcHJpcy5NZWRpYVBsYXllcjIuIiwgYXBwSUQpOworICAgICAgICBwcm94eUFyZ3Mu
YXBwZW5kKG1wcmlzU2Vzc2lvbklELmFzY2lpKCkuZGF0YSgpKTsKKyNlbmRpZgorCiAgICAgICAg
IHByb3h5QXJncy5hcHBlbmRWZWN0b3IobV9wZXJtaXNzaW9ucyk7CiAKICAgICAgICAgaW50IHBy
b3h5RmQgPSBhcmdzVG9GZChwcm94eUFyZ3MsICJkYnVzLXByb3h5Iik7CkBAIC0yMzYsNyArMjU5
LDYgQEAgcHVibGljOgogCiAgICAgICAgIFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyBs
YXVuY2hPcHRpb25zOwogICAgICAgICBsYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID0gUHJvY2Vz
c0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6REJ1c1Byb3h5OwotICAgICAgICBHVW5pcXVlT3V0UHRy
PEdFcnJvcj4gZXJyb3I7CiAgICAgICAgIEdSZWZQdHI8R1N1YnByb2Nlc3M+IHByb2Nlc3MgPSBi
dWJibGV3cmFwU3Bhd24obGF1bmNoZXIuZ2V0KCksIGxhdW5jaE9wdGlvbnMsIGFyZ3YsICZlcnJv
ci5vdXRQdHIoKSk7CiAgICAgICAgIGlmICghcHJvY2Vzcy5nZXQoKSkKICAgICAgICAgICAgIGdf
ZXJyb3IoIkZhaWxlZCB0byBzdGFydCBkYnVzIHByb3h5OiAlcyIsIGVycm9yLT5tZXNzYWdlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xH
TGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGli
LmNwcAppbmRleCAxNjAzYzliMmYzNDk2YzVmM2ZlMWViZDY5NjFhNmMwOWY0Y2I3NmNmLi5kMzcy
ZWQzMTI0MTNmYzhjNmY1MWY5NmI0NDExMjc4OTZmNzRmM2MyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCkBAIC0xMDksNiAr
MTA5LDExIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAjZW5kaWYKIAogICAgIHBhcmFtZXRl
cnMubWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29uZmlndXJhdGlvbiA9IG1fY29uZmlndXJhdGlvbi0+
bWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29uZmlndXJhdGlvbigpOworCisgICAgR0FwcGxpY2F0aW9u
KiBhcHAgPSBnX2FwcGxpY2F0aW9uX2dldF9kZWZhdWx0KCk7CisgICAgaWYgKGFwcCkKKyAgICAg
ICAgcGFyYW1ldGVycy5hcHBsaWNhdGlvbklEID0gZ19hcHBsaWNhdGlvbl9nZXRfYXBwbGljYXRp
b25faWQoYXBwKTsKKyAgICBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uTmFtZSA9IGdfZ2V0X2FwcGxp
Y2F0aW9uX25hbWUoKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1JbnZhbGlk
YXRlQ29udGV4dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9X
ZWJQcm9jZXNzR0xpYi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9XZWJQcm9j
ZXNzR0xpYi5jcHAKaW5kZXggY2Q3MzIxOTNlODMxOTA2OWQ5ZDMwYTcyNmEyNjNkYzUxNjEwNjhi
YS4uMWRjMDQ1NjUxZTRlYTlhOWMyNGEyNzNjNDk1ZDhiZGJkMGU2NGIwOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcApAQCAtMzUsNiAr
MzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvR1N0cmVhbWVyQ29tbW9uLmg+CiAjZW5kaWYKIAor
I2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25HTGliLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZW1vcnlDYWNoZS5oPgogCiAjaWYgUExBVEZPUk0oV0FZTEFORCkKQEAgLTEwOCw2ICsxMDksMTIg
QEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKIAogICAgIGlmIChwYXJhbWV0ZXJzLm1lbW9yeVBy
ZXNzdXJlSGFuZGxlckNvbmZpZ3VyYXRpb24pCiAgICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6c2luZ2xldG9uKCkuc2V0Q29uZmlndXJhdGlvbihXVEZNb3ZlKCpwYXJhbWV0ZXJzLm1lbW9y
eVByZXNzdXJlSGFuZGxlckNvbmZpZ3VyYXRpb24pKTsKKworICAgIGlmICghcGFyYW1ldGVycy5h
cHBsaWNhdGlvbklELmlzRW1wdHkoKSkKKyAgICAgICAgV2ViQ29yZTo6c2V0QXBwbGljYXRpb25J
RChwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uSUQpOworCisgICAgaWYgKCFwYXJhbWV0ZXJzLmFwcGxp
Y2F0aW9uTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIFdlYkNvcmU6OnNldEFwcGxpY2F0aW9uTmFt
ZShwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uTmFtZSk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxh
dGZvcm1TZXRXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFy
YW1ldGVycyYmKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UgYi9T
b3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQppbmRleCAzMDU2NWQ0ZmEwM2U2MThiOTVkNjNi
MmMyNWJlYTMxMmQ3YjJmOTMyLi5mNTlkMDgyMjJiOTk0NGQ1YWIwNjAzMjU5NDhlOTM1MzkzZTVi
YjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQorKysgYi9Tb3Vy
Y2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQpAQCAtMTUzLDYgKzE1Myw4IEBAIFdFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIIFBSSVZBVEUgT04p
CiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5QVVRfVFlQRV9USU1F
IFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5Q
VVRfVFlQRV9XRUVLIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxV
RShFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCBQUklWQVRFICR7RU5BQkxFX0VYUEVS
SU1FTlRBTF9GRUFUVVJFU30pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfTUVESUFfU0VTU0lPTiBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30p
CitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUVESUFfU0VTU0lPTl9Q
TEFZTElTVCBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCiBXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUVESUFfU1RSRUFNIFBSSVZBVEUgJHtF
TkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTfSkKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9NSFRNTCBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSBQUklWQVRFIE9OKQpkaWZmIC0tZ2l0
IGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQ
RS5jbWFrZQppbmRleCBkNTZkZWI4OTYyMWM1NTU5MTViZDYzYWFmZTg5ZjE5MzhkZTFkOTIwLi4z
ODg4OTIzZDQ2MTE4YjBlZDcxZjY0ZGRiOTY5MmE0MWMxOWZhMzdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5j
bWFrZQpAQCAtNTEsNiArNTEsOCBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfREFSS19NT0RFX0NTUyBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMiBQUklWQVRFIE9OKQogV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0dQVV9QUk9DRVNTIFBSSVZBVEUgT0ZGKQogV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NP
TlRFWFQgUFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQorV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01FRElBX1NFU1NJT04gUFJJVkFURSAke0VO
QUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVN9KQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX01FRElBX1NFU1NJT05fUExBWUxJU1QgUFJJVkFURSAke0VOQUJMRV9FWFBF
UklNRU5UQUxfRkVBVFVSRVN9KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX01FRElBX1NUUkVBTSBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30p
CiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUhUTUwgUFJJVkFURSBP
TikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9ORVRTQ0FQRV9QTFVH
SU5fQVBJIFBSSVZBVEUgT0ZGKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1
cmVzLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCmluZGV4IGQ3OGU2
ZDM0NWEwMDI1YjcwM2FjOGYwMzYyMjNlZWQzYTQ3NTM4ZjUuLjkyNGMwY2IxZjJjYTBmZDY3NThk
M2NhZGViYTc1ZjBmNDdjZTlhOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0
dXJlcy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKQEAgLTE2
OSw2ICsxNjksOSBAQCBtYWNybyhXRUJLSVRfT1BUSU9OX0JFR0lOKQogICAgIFdFQktJVF9PUFRJ
T05fREVGSU5FKEVOQUJMRV9NQVRITUwgIlRvZ2dsZSBNYXRoTUwgc3VwcG9ydCIgUFJJVkFURSBP
TikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfTUVESUFfQ0FQVFVSRSAiVG9nZ2xl
IE1lZGlhIENhcHR1cmUgc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9E
RUZJTkUoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCAiVG9nZ2xlIGRlZmluaXRpb24gb2Yg
bWVkaWEgY29udHJvbHMgaW4gSmF2YXNjcmlwdCIgUFJJVkFURSBPTikKKyAgICBXRUJLSVRfT1BU
SU9OX0RFRklORShFTkFCTEVfTUVESUFfU0VTU0lPTiAiVG9nZ2xlIE1lZGlhIFNlc3Npb24gc3Vw
cG9ydCIgUFJJVkFURSBPRkYpCisgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX01FRElB
X1NFU1NJT05fQ09PUkRJTkFUT1IgIlRvZ2dsZSBNZWRpYSBTZXNzaW9uIENvb3JkaW5hdG9yIHN1
cHBvcnQiIFBSSVZBVEUgT0ZGKQorICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9NRURJ
QV9TRVNTSU9OX1BMQVlMSVNUICJUb2dnbGUgTWVkaWEgU2Vzc2lvbiBQbGF5bGlzdCBzdXBwb3J0
IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfTUVESUFfU09V
UkNFICJUb2dnbGUgTWVkaWEgU291cmNlIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJ
VF9PUFRJT05fREVGSU5FKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTICJUb2dnbGUgTWVkaWEgU3Rh
dGlzdGljcyBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShF
TkFCTEVfTUVESUFfU1RSRUFNICJUb2dnbGUgTWVkaWEgU3RyZWFtIHN1cHBvcnQiIFBSSVZBVEUg
T0ZGKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CmluZGV4IGNhNjZjMTVk
NTExODJiYWM0N2Y0YzIzMDU3MTQzMWIxOGJkYmRkODIuLjkxMzJjNWIyNWMzMDJhMmZmZDNiYzA2
ODVjZmE5MTZhYzY3NTA5OTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIu
cHkKQEAgLTE4MCw2ICsxODAsMTEgQEAgX1BBVEhfUlVMRVNfU1BFQ0lGSUVSID0gWwogICAgICAg
b3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ1dlYlByb2Nlc3MnLCAnSW5qZWN0ZWRC
dW5kbGUnLCAnQVBJJywgJ3dwZScpXSwKICAgICAgWyItcmVhZGFiaWxpdHkvZW51bV9jYXNpbmci
XSksCiAKKyAgICAoWworICAgICAjIEZvcndhcmQgZGVjbGFyYXRpb25zIG9mIEdMaWIvR0lPIGZ1
bmN0aW9ucyB1c2UgdW5kZXJzY29yZXMuCisgICAgIG9zLnBhdGguam9pbignU291cmNlJywgJ1dU
RicsICd3dGYnLCAnZ2xpYicsICdHUmVmUHRyLmgnKV0sCisgICAgIFsiLXJlYWRhYmlsaXR5L25h
bWluZy91bmRlcnNjb3JlcyJdKSwKKwogICAgIChbCiAgICAgICAjIFRvIHVzZSBHU3RyZWFtZXIg
R0wgd2l0aG91dCBjb25mbGljdHMgb2YgR0wgc3ltYm9scywKICAgICAgICMgd2Ugc2hvdWxkIGlu
Y2x1ZGUgZ3N0L2dsL2dsLmggYmVmb3JlIGluY2x1ZGluZyBPcGVuR0xbRVNdU2hpbXMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA5YWQwNjI3YTQ2NTUwZGI2ZjNlNTA5NGQxZjE0MzdhNmI1NzRiN2JhLi4wOGJhNjU0NDJlNDBl
ZTBmYzNmNzFmMDA3OWU4ZGRjNDBjY2YyNThlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEt
MDgtMTUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAg
IFtHTElCXSBNZWRpYVNlc3Npb24gaXMgbm90IGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzk5MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzA3NDAxMTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnM6IFVuc2tpcCBtZWRpYS1zZXNz
aW9uIHRlc3RzLgorCiAyMDIxLTA4LTIzICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgTnVsbCBjaGVjayBzY3JpcHRFeGVjdXRpb25Db250ZXh0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYmMyOTJjYTNiNjk0Y2JlOWU5MDQy
MmFjYzI5ZGI4YTMwNDA3MTU5MC4uNjRiYTQzNWVhOWRjNzg4ZWNhMGQyMzAxNzlkMzEwOGU2MGNm
MTYxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MTQxMywxMSArMTQxMyw2IEBAIHdlYmtpdC5vcmcvYi8yMTYzNTkgZmFzdC90ZXh0L2Vtb2ppLXN5
bnRoZXNpcy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAjIEZhaWxpbmcgc2luY2UgYWRkZWQg
aW4gcjI2ODEzOC4KIHdlYmtpdC5vcmcvYi8yMTc4MTUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLW1hc2tpbmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1maWx0ZXItb3JkZXIu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCi0jIE1lZGlhU2Vzc2lvbiBpcyBub3QgZW5hYmxl
ZCBpbiBHVEsvV1BFLgotd2Via2l0Lm9yZy9iLzIxNzk5MSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21lZGlhc2Vzc2lvbi8gWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8yMTc5OTEgbWVk
aWEvbWVkaWEtc2Vzc2lvbi8gWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8yMTc5OTEgZmFzdC9tZWRp
YXNlc3Npb24vIFsgU2tpcCBdCi0KICMgVGhpcyB0ZXN0IHVzZXMgYW4gTVBFRy00IHZpZGVvCiBt
ZWRpYS92aWRlby1zZWVrLXRvLWN1cnJlbnQtdGltZS5odG1sIFsgU2tpcCBdCiAKZGlmZiAtLWdp
dCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA2MDY0MmQ3ZGRjZjk3MjBhYjJmMDRiMTI3
MmY1NmIxZWY5MmZmNDRlLi5hOTQ2NjY0ZTg2MjY5ZTc0YjY2ZjVkMzUxZDY0YzY1Y2MwMWM1ZTBm
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMjEtMDgtMTUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFtHTElCXSBNZWRpYVNlc3Npb24gaXMgbm90IGVuYWJsZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzk5MQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzA3NDAxMTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRW5hYmxlIE1lZGlhU2Vzc2lvbiBhcyBhbiBleHBlcmltZW50YWwgYnVpbGQg
ZmVhdHVyZSBpbiBDTWFrZSBwb3J0cy4gVGhlIHNwZWMgc3RhdHVzIGlzCisgICAgICAgIGN1cnJl
bnRseSBEcmFmdC4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlOgor
ICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlOgorICAgICAgICAqIFNvdXJj
ZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZToKKwogMjAyMS0wOC0yMCAgQ2FybG9zIEFsYmVy
dG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
KHIyNzQxNjYpOiBbR1RLXSBJdCBicm9rZSBydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMgY2F1c2lu
ZyBhbGwgdGVzdHMgdG8gdXNlIGxvdCBvZiBtZW1vcnkK
</data>
<flag name="review"
          id="459266"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>